@angular/material 19.1.0-next.0 → 19.1.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/expansion/index.d.ts +9 -8
  2. package/fesm2022/autocomplete.mjs +13 -13
  3. package/fesm2022/autocomplete.mjs.map +1 -1
  4. package/fesm2022/badge.mjs +10 -10
  5. package/fesm2022/badge.mjs.map +1 -1
  6. package/fesm2022/bottom-sheet.mjs +10 -10
  7. package/fesm2022/bottom-sheet.mjs.map +1 -1
  8. package/fesm2022/button-toggle.mjs +38 -27
  9. package/fesm2022/button-toggle.mjs.map +1 -1
  10. package/fesm2022/button.mjs +34 -34
  11. package/fesm2022/button.mjs.map +1 -1
  12. package/fesm2022/card.mjs +46 -46
  13. package/fesm2022/card.mjs.map +1 -1
  14. package/fesm2022/checkbox.mjs +14 -14
  15. package/fesm2022/checkbox.mjs.map +1 -1
  16. package/fesm2022/chips.mjs +40 -40
  17. package/fesm2022/chips.mjs.map +1 -1
  18. package/fesm2022/core.mjs +66 -66
  19. package/fesm2022/core.mjs.map +1 -1
  20. package/fesm2022/datepicker.mjs +82 -82
  21. package/fesm2022/datepicker.mjs.map +1 -1
  22. package/fesm2022/dialog.mjs +25 -25
  23. package/fesm2022/dialog.mjs.map +1 -1
  24. package/fesm2022/divider.mjs +7 -7
  25. package/fesm2022/divider.mjs.map +1 -1
  26. package/fesm2022/expansion.mjs +112 -105
  27. package/fesm2022/expansion.mjs.map +1 -1
  28. package/fesm2022/form-field.mjs +34 -34
  29. package/fesm2022/form-field.mjs.map +1 -1
  30. package/fesm2022/grid-list.mjs +22 -22
  31. package/fesm2022/grid-list.mjs.map +1 -1
  32. package/fesm2022/icon/testing.mjs +7 -7
  33. package/fesm2022/icon/testing.mjs.map +1 -1
  34. package/fesm2022/icon.mjs +10 -10
  35. package/fesm2022/icon.mjs.map +1 -1
  36. package/fesm2022/input.mjs +7 -7
  37. package/fesm2022/input.mjs.map +1 -1
  38. package/fesm2022/list.mjs +49 -49
  39. package/fesm2022/list.mjs.map +1 -1
  40. package/fesm2022/menu.mjs +57 -72
  41. package/fesm2022/menu.mjs.map +1 -1
  42. package/fesm2022/paginator.mjs +40 -31
  43. package/fesm2022/paginator.mjs.map +1 -1
  44. package/fesm2022/progress-bar.mjs +7 -7
  45. package/fesm2022/progress-bar.mjs.map +1 -1
  46. package/fesm2022/progress-spinner.mjs +7 -7
  47. package/fesm2022/progress-spinner.mjs.map +1 -1
  48. package/fesm2022/radio.mjs +10 -10
  49. package/fesm2022/radio.mjs.map +1 -1
  50. package/fesm2022/select.mjs +24 -13
  51. package/fesm2022/select.mjs.map +1 -1
  52. package/fesm2022/sidenav.mjs +22 -22
  53. package/fesm2022/sidenav.mjs.map +1 -1
  54. package/fesm2022/slide-toggle.mjs +14 -14
  55. package/fesm2022/slide-toggle.mjs.map +1 -1
  56. package/fesm2022/slider.mjs +16 -16
  57. package/fesm2022/slider.mjs.map +1 -1
  58. package/fesm2022/snack-bar.mjs +22 -22
  59. package/fesm2022/snack-bar.mjs.map +1 -1
  60. package/fesm2022/sort.mjs +98 -210
  61. package/fesm2022/sort.mjs.map +1 -1
  62. package/fesm2022/stepper.mjs +31 -31
  63. package/fesm2022/stepper.mjs.map +1 -1
  64. package/fesm2022/table.mjs +55 -55
  65. package/fesm2022/table.mjs.map +1 -1
  66. package/fesm2022/tabs.mjs +44 -43
  67. package/fesm2022/tabs.mjs.map +1 -1
  68. package/fesm2022/timepicker.mjs +54 -39
  69. package/fesm2022/timepicker.mjs.map +1 -1
  70. package/fesm2022/toolbar.mjs +10 -10
  71. package/fesm2022/toolbar.mjs.map +1 -1
  72. package/fesm2022/tooltip.mjs +10 -10
  73. package/fesm2022/tooltip.mjs.map +1 -1
  74. package/fesm2022/tree.mjs +25 -25
  75. package/fesm2022/tree.mjs.map +1 -1
  76. package/menu/index.d.ts +6 -0
  77. package/package.json +2 -2
  78. package/paginator/index.d.ts +8 -0
  79. package/radio/index.d.ts +2 -2
  80. package/schematics/ng-add/index.js +1 -1
  81. package/schematics/ng-add/index.mjs +1 -1
  82. package/schematics/ng-generate/theme-color/index_bundled.js +2 -2
  83. package/schematics/ng-update/index_bundled.js +50 -41
  84. package/schematics/ng-update/index_bundled.js.map +2 -2
  85. package/select/index.d.ts +15 -2
  86. package/sort/index.d.ts +15 -48
  87. package/timepicker/index.d.ts +3 -0
package/select/index.d.ts CHANGED
@@ -100,6 +100,7 @@ export declare class MatSelect implements AfterContentInit, OnChanges, OnDestroy
100
100
  ngControl: NgControl;
101
101
  private _liveAnnouncer;
102
102
  protected _defaultOptions: MatSelectConfig | null;
103
+ private _initialized;
103
104
  /** All of the defined select options. */
104
105
  options: QueryList<MatOption>;
105
106
  /** All of the defined groups of options. */
@@ -249,7 +250,13 @@ export declare class MatSelect implements AfterContentInit, OnChanges, OnDestroy
249
250
  * If set to null or an empty string, the panel will grow to match the longest option's text.
250
251
  */
251
252
  panelWidth: string | number | null;
252
- private _initialized;
253
+ /**
254
+ * By default selecting an option with a `null` or `undefined` value will reset the select's
255
+ * value. Enable this option if the reset behavior doesn't match your requirements and instead
256
+ * the nullable options should become selected. The value of this input can be controlled app-wide
257
+ * using the `MAT_SELECT_CONFIG` injection token.
258
+ */
259
+ canSelectNullableOptions: boolean;
253
260
  /** Combined stream of all of the child options' change events. */
254
261
  readonly optionSelectionChanges: Observable<MatOptionSelectionChange>;
255
262
  /** Event emitted when the select panel has been toggled. */
@@ -427,7 +434,7 @@ export declare class MatSelect implements AfterContentInit, OnChanges, OnDestroy
427
434
  */
428
435
  get shouldLabelFloat(): boolean;
429
436
  static ɵfac: i0.ɵɵFactoryDeclaration<MatSelect, never>;
430
- static ɵcmp: i0.ɵɵComponentDeclaration<MatSelect, "mat-select", ["matSelect"], { "userAriaDescribedBy": { "alias": "aria-describedby"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "hideSingleSelectionIndicator": { "alias": "hideSingleSelectionIndicator"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "disableOptionCentering": { "alias": "disableOptionCentering"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "value": { "alias": "value"; "required": false; }; "ariaLabel": { "alias": "aria-label"; "required": false; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "typeaheadDebounceInterval": { "alias": "typeaheadDebounceInterval"; "required": false; }; "sortComparator": { "alias": "sortComparator"; "required": false; }; "id": { "alias": "id"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; }; }, { "openedChange": "openedChange"; "_openedStream": "opened"; "_closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["customTrigger", "options", "optionGroups"], ["mat-select-trigger", "*"], true, never>;
437
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatSelect, "mat-select", ["matSelect"], { "userAriaDescribedBy": { "alias": "aria-describedby"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "hideSingleSelectionIndicator": { "alias": "hideSingleSelectionIndicator"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "disableOptionCentering": { "alias": "disableOptionCentering"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "value": { "alias": "value"; "required": false; }; "ariaLabel": { "alias": "aria-label"; "required": false; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "typeaheadDebounceInterval": { "alias": "typeaheadDebounceInterval"; "required": false; }; "sortComparator": { "alias": "sortComparator"; "required": false; }; "id": { "alias": "id"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; }; "canSelectNullableOptions": { "alias": "canSelectNullableOptions"; "required": false; }; }, { "openedChange": "openedChange"; "_openedStream": "opened"; "_closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["customTrigger", "options", "optionGroups"], ["mat-select-trigger", "*"], true, never>;
431
438
  static ngAcceptInputType_disabled: unknown;
432
439
  static ngAcceptInputType_disableRipple: unknown;
433
440
  static ngAcceptInputType_tabIndex: unknown;
@@ -436,6 +443,7 @@ export declare class MatSelect implements AfterContentInit, OnChanges, OnDestroy
436
443
  static ngAcceptInputType_multiple: unknown;
437
444
  static ngAcceptInputType_disableOptionCentering: unknown;
438
445
  static ngAcceptInputType_typeaheadDebounceInterval: unknown;
446
+ static ngAcceptInputType_canSelectNullableOptions: unknown;
439
447
  }
440
448
 
441
449
  /**
@@ -482,6 +490,11 @@ export declare interface MatSelectConfig {
482
490
  * If set to null or an empty string, the panel will grow to match the longest option's text.
483
491
  */
484
492
  panelWidth?: string | number | null;
493
+ /**
494
+ * Whether nullable options can be selected by default.
495
+ * See `MatSelect.canSelectNullableOptions` for more information.
496
+ */
497
+ canSelectNullableOptions?: boolean;
485
498
  }
486
499
 
487
500
  export declare class MatSelectModule {
package/sort/index.d.ts CHANGED
@@ -10,6 +10,7 @@ import { OnDestroy } from '@angular/core';
10
10
  import { OnInit } from '@angular/core';
11
11
  import { Optional } from '@angular/core';
12
12
  import { Subject } from 'rxjs';
13
+ import { WritableSignal } from '@angular/core';
13
14
 
14
15
  /**
15
16
  * Valid positions for the arrow to be in for its opacity and translation. If the state is a
@@ -18,6 +19,8 @@ import { Subject } from 'rxjs';
18
19
  * be fully opaque in the center.
19
20
  *
20
21
  * @docs-private
22
+ * @deprecated No longer being used, to be removed.
23
+ * @breaking-change 21.0.0
21
24
  */
22
25
  export declare type ArrowViewState = SortDirection | 'hint' | 'active';
23
26
 
@@ -25,6 +28,8 @@ export declare type ArrowViewState = SortDirection | 'hint' | 'active';
25
28
  * States describing the arrow's animated position (animating fromState to toState).
26
29
  * If the fromState is not defined, there will be no animated transition to the toState.
27
30
  * @docs-private
31
+ * @deprecated No longer being used, to be removed.
32
+ * @breaking-change 21.0.0
28
33
  */
29
34
  export declare interface ArrowViewStateTransition {
30
35
  fromState?: ArrowViewState;
@@ -130,6 +135,8 @@ export declare interface MatSortable {
130
135
  /**
131
136
  * Animations used by MatSort.
132
137
  * @docs-private
138
+ * @deprecated No longer being used, to be removed.
139
+ * @breaking-change 21.0.0
133
140
  */
134
141
  export declare const matSortAnimations: {
135
142
  readonly indicator: AnimationTriggerMetadata;
@@ -159,35 +166,24 @@ export declare interface MatSortDefaultOptions {
159
166
  */
160
167
  export declare class MatSortHeader implements MatSortable, OnDestroy, OnInit, AfterViewInit {
161
168
  _intl: MatSortHeaderIntl;
162
- private _changeDetectorRef;
163
169
  _sort: MatSort;
164
170
  _columnDef: MatSortHeaderColumnDef | null;
171
+ private _changeDetectorRef;
165
172
  private _focusMonitor;
166
173
  private _elementRef;
167
174
  private _ariaDescriber;
168
- private _rerenderSubscription;
175
+ private _renderChanges;
176
+ protected _animationModule: "NoopAnimations" | "BrowserAnimations" | null;
177
+ /**
178
+ * Indicates which state was just cleared from the sort header.
179
+ * Will be reset on the next interaction. Used for coordinating animations.
180
+ */
181
+ protected _recentlyCleared: WritableSignal<SortDirection | null>;
169
182
  /**
170
183
  * The element with role="button" inside this component's view. We need this
171
184
  * in order to apply a description with AriaDescriber.
172
185
  */
173
186
  private _sortButton;
174
- /**
175
- * Flag set to true when the indicator should be displayed while the sort is not active. Used to
176
- * provide an affordance that the header is sortable by showing on focus and hover.
177
- */
178
- _showIndicatorHint: boolean;
179
- /**
180
- * The view transition state of the arrow (translation/ opacity) - indicates its `from` and `to`
181
- * position through the animation. If animations are currently disabled, the fromState is removed
182
- * so that there is no animation displayed.
183
- */
184
- _viewState: ArrowViewStateTransition;
185
- /** The direction the arrow should be facing according to the current state. */
186
- _arrowDirection: SortDirection;
187
- /**
188
- * Whether the view state animation should show the transition between the `from` and `to` states.
189
- */
190
- _disableViewStateAnimation: boolean;
191
187
  /**
192
188
  * ID of this sort header. If used within the context of a CdkColumnDef, this will default to
193
189
  * the column's name.
@@ -212,38 +208,11 @@ export declare class MatSortHeader implements MatSortable, OnDestroy, OnInit, Af
212
208
  ngOnInit(): void;
213
209
  ngAfterViewInit(): void;
214
210
  ngOnDestroy(): void;
215
- /**
216
- * Sets the "hint" state such that the arrow will be semi-transparently displayed as a hint to the
217
- * user showing what the active sort will become. If set to false, the arrow will fade away.
218
- */
219
- _setIndicatorHintVisible(visible: boolean): void;
220
- /**
221
- * Sets the animation transition view state for the arrow's position and opacity. If the
222
- * `disableViewStateAnimation` flag is set to true, the `fromState` will be ignored so that
223
- * no animation appears.
224
- */
225
- _setAnimationTransitionState(viewState: ArrowViewStateTransition): void;
226
211
  /** Triggers the sort on this sort header and removes the indicator hint. */
227
212
  _toggleOnInteraction(): void;
228
- _handleClick(): void;
229
213
  _handleKeydown(event: KeyboardEvent): void;
230
214
  /** Whether this MatSortHeader is currently sorted in either ascending or descending order. */
231
215
  _isSorted(): boolean;
232
- /** Returns the animation state for the arrow direction (indicator and pointers). */
233
- _getArrowDirectionState(): string;
234
- /** Returns the arrow position state (opacity, translation). */
235
- _getArrowViewState(): string;
236
- /**
237
- * Updates the direction the arrow should be pointing. If it is not sorted, the arrow should be
238
- * facing the start direction. Otherwise if it is sorted, the arrow should point in the currently
239
- * active sorted direction. The reason this is updated through a function is because the direction
240
- * should only be changed at specific times - when deactivated but the hint is displayed and when
241
- * the sort is active and the direction changes. Otherwise the arrow's direction should linger
242
- * in cases such as the sort becoming deactivated but we want to animate the arrow away while
243
- * preserving its direction, even though the next sort direction is actually different and should
244
- * only be changed once the arrow displays again (hint or activation).
245
- */
246
- _updateArrowDirection(): void;
247
216
  _isDisabled(): boolean;
248
217
  /**
249
218
  * Gets the aria-sort attribute that should be applied to this sort header. If this header
@@ -255,8 +224,6 @@ export declare class MatSortHeader implements MatSortable, OnDestroy, OnInit, Af
255
224
  /** Whether the arrow inside the sort header should be rendered. */
256
225
  _renderArrow(): boolean;
257
226
  private _updateSortActionDescription;
258
- /** Handles changes in the sorting state. */
259
- private _handleStateChanges;
260
227
  static ɵfac: i0.ɵɵFactoryDeclaration<MatSortHeader, never>;
261
228
  static ɵcmp: i0.ɵɵComponentDeclaration<MatSortHeader, "[mat-sort-header]", ["matSortHeader"], { "id": { "alias": "mat-sort-header"; "required": false; }; "arrowPosition": { "alias": "arrowPosition"; "required": false; }; "start": { "alias": "start"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "sortActionDescription": { "alias": "sortActionDescription"; "required": false; }; "disableClear": { "alias": "disableClear"; "required": false; }; }, {}, never, ["*"], true, never>;
262
229
  static ngAcceptInputType_disabled: unknown;
@@ -93,6 +93,8 @@ export declare class MatTimepicker<D> implements OnDestroy, MatOptionParentCompo
93
93
  readonly ariaLabel: InputSignal<string | null>;
94
94
  /** ID of the label element for the timepicker panel. */
95
95
  readonly ariaLabelledby: InputSignal<string | null>;
96
+ /** Whether the timepicker is currently disabled. */
97
+ readonly disabled: Signal<boolean>;
96
98
  constructor();
97
99
  /** Opens the timepicker. */
98
100
  open(): void;
@@ -281,6 +283,7 @@ export declare interface MatTimepickerSelected<D> {
281
283
  export declare class MatTimepickerToggle<D> {
282
284
  private _defaultConfig;
283
285
  private _defaultTabIndex;
286
+ protected _isDisabled: Signal<boolean>;
284
287
  /** Timepicker instance that the button will toggle. */
285
288
  readonly timepicker: InputSignal<MatTimepicker<D>>;
286
289
  /** Screen-reader label for the button. */