@angular/material 18.0.0-next.2 → 18.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 (39) hide show
  1. package/button-toggle/index.d.ts +18 -5
  2. package/core/style/_menu-common.scss +7 -1
  3. package/core/tokens/m2/mat/_list.scss +1 -1
  4. package/esm2022/button-toggle/button-toggle.mjs +116 -14
  5. package/esm2022/button-toggle/testing/button-toggle-harness.mjs +8 -4
  6. package/esm2022/core/version.mjs +1 -1
  7. package/esm2022/list/action-list.mjs +2 -2
  8. package/esm2022/list/list.mjs +2 -2
  9. package/esm2022/list/nav-list.mjs +2 -2
  10. package/esm2022/list/selection-list.mjs +2 -2
  11. package/esm2022/menu/menu.mjs +3 -3
  12. package/esm2022/sort/sort-header.mjs +4 -1
  13. package/esm2022/tabs/paginated-tab-header.mjs +26 -14
  14. package/fesm2022/button-toggle/testing.mjs +7 -3
  15. package/fesm2022/button-toggle/testing.mjs.map +1 -1
  16. package/fesm2022/button-toggle.mjs +114 -13
  17. package/fesm2022/button-toggle.mjs.map +1 -1
  18. package/fesm2022/core.mjs +1 -1
  19. package/fesm2022/core.mjs.map +1 -1
  20. package/fesm2022/list.mjs +8 -8
  21. package/fesm2022/list.mjs.map +1 -1
  22. package/fesm2022/menu.mjs +2 -2
  23. package/fesm2022/menu.mjs.map +1 -1
  24. package/fesm2022/sort.mjs +3 -0
  25. package/fesm2022/sort.mjs.map +1 -1
  26. package/fesm2022/tabs.mjs +22 -10
  27. package/fesm2022/tabs.mjs.map +1 -1
  28. package/package.json +2 -2
  29. package/prebuilt-themes/deeppurple-amber.css +1 -1
  30. package/prebuilt-themes/indigo-pink.css +1 -1
  31. package/prebuilt-themes/pink-bluegrey.css +1 -1
  32. package/prebuilt-themes/purple-green.css +1 -1
  33. package/schematics/collection.json +0 -6
  34. package/schematics/ng-add/index.js +1 -1
  35. package/schematics/ng-add/index.mjs +1 -1
  36. package/tabs/index.d.ts +2 -0
  37. package/schematics/ng-generate/mdc-migration/index_bundled.js +0 -30606
  38. package/schematics/ng-generate/mdc-migration/index_bundled.js.map +0 -7
  39. package/schematics/ng-generate/mdc-migration/schema.json +0 -126
@@ -2,6 +2,8 @@ import { AfterContentInit } from '@angular/core';
2
2
  import { AfterViewInit } from '@angular/core';
3
3
  import { ChangeDetectorRef } from '@angular/core';
4
4
  import { ControlValueAccessor } from '@angular/forms';
5
+ import { Direction } from '@angular/cdk/bidi';
6
+ import { Directionality } from '@angular/cdk/bidi';
5
7
  import { ElementRef } from '@angular/core';
6
8
  import { EventEmitter } from '@angular/core';
7
9
  import { FocusMonitor } from '@angular/cdk/a11y';
@@ -76,8 +78,10 @@ export declare class MatButtonToggle implements OnInit, AfterViewInit, OnDestroy
76
78
  name: string;
77
79
  /** MatButtonToggleGroup reads this to assign its own value. */
78
80
  value: any;
79
- /** Tabindex for the toggle. */
80
- tabIndex: number | null;
81
+ /** Tabindex of the toggle. */
82
+ get tabIndex(): number | null;
83
+ set tabIndex(value: number | null);
84
+ private _tabIndex;
81
85
  /** Whether ripples are disabled on the button toggle. */
82
86
  disableRipple: boolean;
83
87
  /** The appearance style of the button. */
@@ -110,7 +114,7 @@ export declare class MatButtonToggle implements OnInit, AfterViewInit, OnDestroy
110
114
  /** Gets the name that should be assigned to the inner DOM node. */
111
115
  _getButtonName(): string | null;
112
116
  /** Whether the toggle is in single selection mode. */
113
- private _isSingleSelector;
117
+ isSingleSelector(): boolean;
114
118
  static ɵfac: i0.ɵɵFactoryDeclaration<MatButtonToggle, [{ optional: true; }, null, null, null, { attribute: "tabindex"; }, { optional: true; }]>;
115
119
  static ɵcmp: i0.ɵɵComponentDeclaration<MatButtonToggle, "mat-button-toggle", ["matButtonToggle"], { "ariaLabel": { "alias": "aria-label"; "required": false; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; }; "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "value": { "alias": "value"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "change": "change"; }, never, ["*"], true, never>;
116
120
  static ngAcceptInputType_disableRipple: unknown;
@@ -153,6 +157,7 @@ export declare interface MatButtonToggleDefaultOptions {
153
157
  /** Exclusive selection button toggle group that behaves like a radio-button group. */
154
158
  export declare class MatButtonToggleGroup implements ControlValueAccessor, OnInit, AfterContentInit {
155
159
  private _changeDetector;
160
+ private _dir?;
156
161
  private _multiple;
157
162
  private _disabled;
158
163
  private _selectionModel;
@@ -197,6 +202,8 @@ export declare class MatButtonToggleGroup implements ControlValueAccessor, OnIni
197
202
  /** Whether multiple button toggle group is disabled. */
198
203
  get disabled(): boolean;
199
204
  set disabled(value: boolean);
205
+ /** The layout direction of the toggle button group. */
206
+ get dir(): Direction;
200
207
  /** Event emitted when the group's value changes. */
201
208
  readonly change: EventEmitter<MatButtonToggleChange>;
202
209
  /** Whether checkmark indicator for single-selection button toggle groups is hidden. */
@@ -207,7 +214,7 @@ export declare class MatButtonToggleGroup implements ControlValueAccessor, OnIni
207
214
  get hideMultipleSelectionIndicator(): boolean;
208
215
  set hideMultipleSelectionIndicator(value: boolean);
209
216
  private _hideMultipleSelectionIndicator;
210
- constructor(_changeDetector: ChangeDetectorRef, defaultOptions?: MatButtonToggleDefaultOptions);
217
+ constructor(_changeDetector: ChangeDetectorRef, defaultOptions?: MatButtonToggleDefaultOptions, _dir?: Directionality | undefined);
211
218
  ngOnInit(): void;
212
219
  ngAfterContentInit(): void;
213
220
  /**
@@ -218,6 +225,8 @@ export declare class MatButtonToggleGroup implements ControlValueAccessor, OnIni
218
225
  registerOnChange(fn: (value: any) => void): void;
219
226
  registerOnTouched(fn: any): void;
220
227
  setDisabledState(isDisabled: boolean): void;
228
+ /** Handle keydown event calling to single-select button toggle. */
229
+ protected _keydown(event: KeyboardEvent): void;
221
230
  /** Dispatch change event with current selection and group value. */
222
231
  _emitChangeEvent(toggle: MatButtonToggle): void;
223
232
  /**
@@ -232,6 +241,10 @@ export declare class MatButtonToggleGroup implements ControlValueAccessor, OnIni
232
241
  _isSelected(toggle: MatButtonToggle): boolean;
233
242
  /** Determines whether a button toggle should be checked on init. */
234
243
  _isPrechecked(toggle: MatButtonToggle): boolean;
244
+ /** Initializes the tabindex attribute using the radio pattern. */
245
+ private _initializeTabIndex;
246
+ /** Obtain the subsequent index to which the focus shifts. */
247
+ private _getNextIndex;
235
248
  /** Updates the selection state of the toggles in the group based on a value. */
236
249
  private _setSelectionByValue;
237
250
  /** Clears the selected toggles. */
@@ -242,7 +255,7 @@ export declare class MatButtonToggleGroup implements ControlValueAccessor, OnIni
242
255
  private _updateModelValue;
243
256
  /** Marks all of the child button toggles to be checked. */
244
257
  private _markButtonsForCheck;
245
- static ɵfac: i0.ɵɵFactoryDeclaration<MatButtonToggleGroup, [null, { optional: true; }]>;
258
+ static ɵfac: i0.ɵɵFactoryDeclaration<MatButtonToggleGroup, [null, { optional: true; }, { optional: true; }]>;
246
259
  static ɵdir: i0.ɵɵDirectiveDeclaration<MatButtonToggleGroup, "mat-button-toggle-group", ["matButtonToggleGroup"], { "appearance": { "alias": "appearance"; "required": false; }; "name": { "alias": "name"; "required": false; }; "vertical": { "alias": "vertical"; "required": false; }; "value": { "alias": "value"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "hideSingleSelectionIndicator": { "alias": "hideSingleSelectionIndicator"; "required": false; }; "hideMultipleSelectionIndicator": { "alias": "hideMultipleSelectionIndicator"; "required": false; }; }, { "valueChange": "valueChange"; "change": "change"; }, ["_buttonToggles"], never, true, never>;
247
260
  static ngAcceptInputType_vertical: unknown;
248
261
  static ngAcceptInputType_multiple: unknown;
@@ -63,12 +63,18 @@ $icon-margin: 16px !default;
63
63
  width: $icon-size;
64
64
  height: 10px;
65
65
  fill: currentColor;
66
+
67
+ // We use `padding` here, because the margin can collapse depending on the other content.
66
68
  padding-left: $item-spacing;
67
69
 
68
70
  [dir='rtl'] & {
69
- right: auto;
70
71
  padding-right: $item-spacing;
71
72
  padding-left: 0;
73
+
74
+ // Invert the arrow direction.
75
+ polygon {
76
+ transform: scaleX(-1);
77
+ }
72
78
  }
73
79
 
74
80
  // Fix for Chromium-based browsers blending in the `currentColor` with the background.
@@ -10,7 +10,7 @@ $prefix: (mat, list);
10
10
  @return (
11
11
  // active indicator themable with M3
12
12
  active-indicator-color: transparent,
13
- active-indicator-shape: 0,
13
+ active-indicator-shape: 4px,
14
14
  );
15
15
  }
16
16