@angular/material 16.0.1 → 16.0.3

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 (115) hide show
  1. package/_index.scss +4 -4
  2. package/button/index.d.ts +3 -2
  3. package/checkbox/_checkbox-theme.scss +9 -3
  4. package/core/mdc-helpers/_mdc-helpers.scss +13 -28
  5. package/core/style/_sass-utils.scss +7 -0
  6. package/core/tokens/_token-utils.scss +2 -2
  7. package/core/tokens/m2/mdc/_linear-progress.scss +3 -5
  8. package/core/typography/_all-typography.scss +1 -154
  9. package/core/typography/_typography.scss +162 -0
  10. package/esm2022/autocomplete/autocomplete.mjs +3 -3
  11. package/esm2022/button/button-base.mjs +7 -11
  12. package/esm2022/button/button.mjs +3 -3
  13. package/esm2022/button/fab.mjs +5 -5
  14. package/esm2022/button/icon-button.mjs +3 -3
  15. package/esm2022/checkbox/checkbox.mjs +2 -2
  16. package/esm2022/chips/chip-grid.mjs +2 -2
  17. package/esm2022/chips/chip-listbox.mjs +5 -5
  18. package/esm2022/chips/chip-option.mjs +3 -3
  19. package/esm2022/chips/chip-set.mjs +2 -2
  20. package/esm2022/core/version.mjs +1 -1
  21. package/esm2022/datepicker/calendar-body.mjs +29 -16
  22. package/esm2022/datepicker/datepicker-toggle.mjs +3 -3
  23. package/esm2022/icon/testing/icon-harness.mjs +7 -2
  24. package/esm2022/legacy-autocomplete/autocomplete.mjs +3 -3
  25. package/esm2022/legacy-chips/chip-list.mjs +3 -3
  26. package/esm2022/legacy-core/option/optgroup.mjs +3 -3
  27. package/esm2022/legacy-form-field/form-field.mjs +3 -3
  28. package/esm2022/legacy-menu/menu-item.mjs +3 -3
  29. package/esm2022/legacy-menu/menu.mjs +3 -3
  30. package/esm2022/legacy-paginator/paginator.mjs +3 -3
  31. package/esm2022/legacy-select/select.mjs +3 -3
  32. package/esm2022/legacy-table/table.mjs +3 -3
  33. package/esm2022/legacy-tabs/tab-group.mjs +3 -3
  34. package/esm2022/list/list-base.mjs +2 -1
  35. package/esm2022/menu/menu-item.mjs +3 -3
  36. package/esm2022/menu/menu.mjs +3 -3
  37. package/esm2022/paginator/paginator.mjs +3 -3
  38. package/esm2022/progress-bar/progress-bar.mjs +2 -2
  39. package/esm2022/select/select.mjs +5 -5
  40. package/esm2022/sidenav/drawer.mjs +7 -7
  41. package/esm2022/sidenav/sidenav.mjs +7 -7
  42. package/esm2022/slide-toggle/slide-toggle.mjs +3 -3
  43. package/esm2022/slider/slider-input.mjs +21 -9
  44. package/esm2022/stepper/stepper.mjs +3 -3
  45. package/esm2022/table/row.mjs +2 -2
  46. package/esm2022/table/table.mjs +3 -3
  47. package/esm2022/tabs/tab-group.mjs +3 -3
  48. package/esm2022/tooltip/tooltip.mjs +5 -1
  49. package/fesm2022/autocomplete.mjs +2 -2
  50. package/fesm2022/autocomplete.mjs.map +1 -1
  51. package/fesm2022/button.mjs +14 -18
  52. package/fesm2022/button.mjs.map +1 -1
  53. package/fesm2022/checkbox.mjs +2 -2
  54. package/fesm2022/checkbox.mjs.map +1 -1
  55. package/fesm2022/chips.mjs +10 -10
  56. package/fesm2022/chips.mjs.map +1 -1
  57. package/fesm2022/core.mjs +1 -1
  58. package/fesm2022/core.mjs.map +1 -1
  59. package/fesm2022/datepicker.mjs +30 -17
  60. package/fesm2022/datepicker.mjs.map +1 -1
  61. package/fesm2022/icon/testing.mjs +6 -1
  62. package/fesm2022/icon/testing.mjs.map +1 -1
  63. package/fesm2022/legacy-autocomplete.mjs +2 -2
  64. package/fesm2022/legacy-autocomplete.mjs.map +1 -1
  65. package/fesm2022/legacy-chips.mjs +2 -2
  66. package/fesm2022/legacy-chips.mjs.map +1 -1
  67. package/fesm2022/legacy-core.mjs +2 -2
  68. package/fesm2022/legacy-core.mjs.map +1 -1
  69. package/fesm2022/legacy-form-field.mjs +2 -2
  70. package/fesm2022/legacy-form-field.mjs.map +1 -1
  71. package/fesm2022/legacy-menu.mjs +4 -4
  72. package/fesm2022/legacy-menu.mjs.map +1 -1
  73. package/fesm2022/legacy-paginator.mjs +2 -2
  74. package/fesm2022/legacy-paginator.mjs.map +1 -1
  75. package/fesm2022/legacy-select.mjs +2 -2
  76. package/fesm2022/legacy-select.mjs.map +1 -1
  77. package/fesm2022/legacy-table.mjs +2 -2
  78. package/fesm2022/legacy-table.mjs.map +1 -1
  79. package/fesm2022/legacy-tabs.mjs +2 -2
  80. package/fesm2022/legacy-tabs.mjs.map +1 -1
  81. package/fesm2022/list.mjs +1 -0
  82. package/fesm2022/list.mjs.map +1 -1
  83. package/fesm2022/menu.mjs +4 -4
  84. package/fesm2022/menu.mjs.map +1 -1
  85. package/fesm2022/paginator.mjs +2 -2
  86. package/fesm2022/paginator.mjs.map +1 -1
  87. package/fesm2022/progress-bar.mjs +2 -2
  88. package/fesm2022/progress-bar.mjs.map +1 -1
  89. package/fesm2022/select.mjs +4 -4
  90. package/fesm2022/select.mjs.map +1 -1
  91. package/fesm2022/sidenav.mjs +12 -12
  92. package/fesm2022/sidenav.mjs.map +1 -1
  93. package/fesm2022/slide-toggle.mjs +2 -2
  94. package/fesm2022/slide-toggle.mjs.map +1 -1
  95. package/fesm2022/slider.mjs +20 -8
  96. package/fesm2022/slider.mjs.map +1 -1
  97. package/fesm2022/stepper.mjs +2 -2
  98. package/fesm2022/stepper.mjs.map +1 -1
  99. package/fesm2022/table.mjs +3 -3
  100. package/fesm2022/table.mjs.map +1 -1
  101. package/fesm2022/tabs.mjs +2 -2
  102. package/fesm2022/tabs.mjs.map +1 -1
  103. package/fesm2022/tooltip.mjs +4 -0
  104. package/fesm2022/tooltip.mjs.map +1 -1
  105. package/list/index.d.ts +2 -1
  106. package/package.json +49 -49
  107. package/prebuilt-themes/deeppurple-amber.css +1 -1
  108. package/prebuilt-themes/indigo-pink.css +1 -1
  109. package/prebuilt-themes/pink-bluegrey.css +1 -1
  110. package/prebuilt-themes/purple-green.css +1 -1
  111. package/schematics/ng-add/index.js +1 -1
  112. package/schematics/ng-add/index.mjs +1 -1
  113. package/slider/index.d.ts +10 -1
  114. package/table/index.d.ts +1 -1
  115. package/tooltip/index.d.ts +4 -0
@@ -17,7 +17,7 @@ import { Subject, Subscription, merge, of } from 'rxjs';
17
17
  import { ESCAPE, hasModifierKey, SPACE, ENTER, PAGE_DOWN, PAGE_UP, END, HOME, DOWN_ARROW, UP_ARROW, RIGHT_ARROW, LEFT_ARROW, BACKSPACE } from '@angular/cdk/keycodes';
18
18
  import * as i2 from '@angular/cdk/bidi';
19
19
  import { Directionality } from '@angular/cdk/bidi';
20
- import { Platform, _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';
20
+ import { normalizePassiveListenerOptions, Platform, _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';
21
21
  import { take, startWith, filter } from 'rxjs/operators';
22
22
  import { coerceBooleanProperty, coerceStringArray } from '@angular/cdk/coercion';
23
23
  import { trigger, transition, animate, keyframes, style, state } from '@angular/animations';
@@ -108,6 +108,18 @@ class MatCalendarCell {
108
108
  }
109
109
  }
110
110
  let calendarBodyId = 1;
111
+ /** Event options that can be used to bind an active, capturing event. */
112
+ const activeCapturingEventOptions = normalizePassiveListenerOptions({
113
+ passive: false,
114
+ capture: true,
115
+ });
116
+ /** Event options that can be used to bind a passive, capturing event. */
117
+ const passiveCapturingEventOptions = normalizePassiveListenerOptions({
118
+ passive: true,
119
+ capture: true,
120
+ });
121
+ /** Event options that can be used to bind a passive, non-capturing event. */
122
+ const passiveEventOptions = normalizePassiveListenerOptions({ passive: true });
111
123
  /**
112
124
  * An internal component used to display calendar data in a table.
113
125
  * @docs-private
@@ -259,13 +271,14 @@ class MatCalendarBody {
259
271
  this._endDateLabelId = `${this._id}-end-date`;
260
272
  _ngZone.runOutsideAngular(() => {
261
273
  const element = _elementRef.nativeElement;
262
- element.addEventListener('mouseenter', this._enterHandler, true);
263
- element.addEventListener('touchmove', this._touchmoveHandler, true);
264
- element.addEventListener('focus', this._enterHandler, true);
265
- element.addEventListener('mouseleave', this._leaveHandler, true);
266
- element.addEventListener('blur', this._leaveHandler, true);
267
- element.addEventListener('mousedown', this._mousedownHandler);
268
- element.addEventListener('touchstart', this._mousedownHandler);
274
+ // `touchmove` is active since we need to call `preventDefault`.
275
+ element.addEventListener('touchmove', this._touchmoveHandler, activeCapturingEventOptions);
276
+ element.addEventListener('mouseenter', this._enterHandler, passiveCapturingEventOptions);
277
+ element.addEventListener('focus', this._enterHandler, passiveCapturingEventOptions);
278
+ element.addEventListener('mouseleave', this._leaveHandler, passiveCapturingEventOptions);
279
+ element.addEventListener('blur', this._leaveHandler, passiveCapturingEventOptions);
280
+ element.addEventListener('mousedown', this._mousedownHandler, passiveEventOptions);
281
+ element.addEventListener('touchstart', this._mousedownHandler, passiveEventOptions);
269
282
  if (this._platform.isBrowser) {
270
283
  window.addEventListener('mouseup', this._mouseupHandler);
271
284
  window.addEventListener('touchend', this._touchendHandler);
@@ -307,13 +320,13 @@ class MatCalendarBody {
307
320
  }
308
321
  ngOnDestroy() {
309
322
  const element = this._elementRef.nativeElement;
310
- element.removeEventListener('mouseenter', this._enterHandler, true);
311
- element.removeEventListener('touchmove', this._touchmoveHandler, true);
312
- element.removeEventListener('focus', this._enterHandler, true);
313
- element.removeEventListener('mouseleave', this._leaveHandler, true);
314
- element.removeEventListener('blur', this._leaveHandler, true);
315
- element.removeEventListener('mousedown', this._mousedownHandler);
316
- element.removeEventListener('touchstart', this._mousedownHandler);
323
+ element.removeEventListener('touchmove', this._touchmoveHandler, activeCapturingEventOptions);
324
+ element.removeEventListener('mouseenter', this._enterHandler, passiveCapturingEventOptions);
325
+ element.removeEventListener('focus', this._enterHandler, passiveCapturingEventOptions);
326
+ element.removeEventListener('mouseleave', this._leaveHandler, passiveCapturingEventOptions);
327
+ element.removeEventListener('blur', this._leaveHandler, passiveCapturingEventOptions);
328
+ element.removeEventListener('mousedown', this._mousedownHandler, passiveEventOptions);
329
+ element.removeEventListener('touchstart', this._mousedownHandler, passiveEventOptions);
317
330
  if (this._platform.isBrowser) {
318
331
  window.removeEventListener('mouseup', this._mouseupHandler);
319
332
  window.removeEventListener('touchend', this._touchendHandler);
@@ -3437,7 +3450,7 @@ class MatDatepickerToggle {
3437
3450
  this._stateChanges = merge(this._intl.changes, datepickerStateChanged, inputStateChanged, datepickerToggled).subscribe(() => this._changeDetectorRef.markForCheck());
3438
3451
  }
3439
3452
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: MatDatepickerToggle, deps: [{ token: MatDatepickerIntl }, { token: i0.ChangeDetectorRef }, { token: 'tabindex', attribute: true }], target: i0.ɵɵFactoryTarget.Component }); }
3440
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: { datepicker: ["for", "datepicker"], tabIndex: "tabIndex", ariaLabel: ["aria-label", "ariaLabel"], disabled: "disabled", disableRipple: "disableRipple" }, host: { listeners: { "click": "_open($event)" }, properties: { "attr.tabindex": "null", "class.mat-datepicker-toggle-active": "datepicker && datepicker.opened", "class.mat-accent": "datepicker && datepicker.color === \"accent\"", "class.mat-warn": "datepicker && datepicker.color === \"warn\"", "attr.data-mat-calendar": "datepicker ? datepicker.id : null" }, classAttribute: "mat-datepicker-toggle" }, queries: [{ propertyName: "_customIcon", first: true, predicate: MatDatepickerToggleIcon, descendants: true }], viewQueries: [{ propertyName: "_button", first: true, predicate: ["button"], descendants: true }], exportAs: ["matDatepickerToggle"], usesOnChanges: true, ngImport: i0, template: "<button\n #button\n mat-icon-button\n type=\"button\"\n [attr.aria-haspopup]=\"datepicker ? 'dialog' : null\"\n [attr.aria-label]=\"ariaLabel || _intl.openCalendarLabel\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\">\n\n <svg\n *ngIf=\"!_customIcon\"\n class=\"mat-datepicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n height=\"24px\"\n fill=\"currentColor\"\n focusable=\"false\">\n <path d=\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\"/>\n </svg>\n\n <ng-content select=\"[matDatepickerToggleIcon]\"></ng-content>\n</button>\n", styles: [".mat-datepicker-toggle{pointer-events:auto}.cdk-high-contrast-active .mat-datepicker-toggle-default-icon{color:CanvasText}"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3453
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: { datepicker: ["for", "datepicker"], tabIndex: "tabIndex", ariaLabel: ["aria-label", "ariaLabel"], disabled: "disabled", disableRipple: "disableRipple" }, host: { listeners: { "click": "_open($event)" }, properties: { "attr.tabindex": "null", "class.mat-datepicker-toggle-active": "datepicker && datepicker.opened", "class.mat-accent": "datepicker && datepicker.color === \"accent\"", "class.mat-warn": "datepicker && datepicker.color === \"warn\"", "attr.data-mat-calendar": "datepicker ? datepicker.id : null" }, classAttribute: "mat-datepicker-toggle" }, queries: [{ propertyName: "_customIcon", first: true, predicate: MatDatepickerToggleIcon, descendants: true }], viewQueries: [{ propertyName: "_button", first: true, predicate: ["button"], descendants: true }], exportAs: ["matDatepickerToggle"], usesOnChanges: true, ngImport: i0, template: "<button\n #button\n mat-icon-button\n type=\"button\"\n [attr.aria-haspopup]=\"datepicker ? 'dialog' : null\"\n [attr.aria-label]=\"ariaLabel || _intl.openCalendarLabel\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\">\n\n <svg\n *ngIf=\"!_customIcon\"\n class=\"mat-datepicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n height=\"24px\"\n fill=\"currentColor\"\n focusable=\"false\"\n aria-hidden=\"true\">\n <path d=\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\"/>\n </svg>\n\n <ng-content select=\"[matDatepickerToggleIcon]\"></ng-content>\n</button>\n", styles: [".mat-datepicker-toggle{pointer-events:auto}.cdk-high-contrast-active .mat-datepicker-toggle-default-icon{color:CanvasText}"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3441
3454
  }
3442
3455
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: MatDatepickerToggle, decorators: [{
3443
3456
  type: Component,
@@ -3453,7 +3466,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
3453
3466
  // `stopPropagation` on it without affecting the user's `click` handlers. We need to stop
3454
3467
  // it so that the input doesn't get focused automatically by the form field (See #21836).
3455
3468
  '(click)': '_open($event)',
3456
- }, exportAs: 'matDatepickerToggle', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n #button\n mat-icon-button\n type=\"button\"\n [attr.aria-haspopup]=\"datepicker ? 'dialog' : null\"\n [attr.aria-label]=\"ariaLabel || _intl.openCalendarLabel\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\">\n\n <svg\n *ngIf=\"!_customIcon\"\n class=\"mat-datepicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n height=\"24px\"\n fill=\"currentColor\"\n focusable=\"false\">\n <path d=\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\"/>\n </svg>\n\n <ng-content select=\"[matDatepickerToggleIcon]\"></ng-content>\n</button>\n", styles: [".mat-datepicker-toggle{pointer-events:auto}.cdk-high-contrast-active .mat-datepicker-toggle-default-icon{color:CanvasText}"] }]
3469
+ }, exportAs: 'matDatepickerToggle', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n #button\n mat-icon-button\n type=\"button\"\n [attr.aria-haspopup]=\"datepicker ? 'dialog' : null\"\n [attr.aria-label]=\"ariaLabel || _intl.openCalendarLabel\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\">\n\n <svg\n *ngIf=\"!_customIcon\"\n class=\"mat-datepicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n height=\"24px\"\n fill=\"currentColor\"\n focusable=\"false\"\n aria-hidden=\"true\">\n <path d=\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\"/>\n </svg>\n\n <ng-content select=\"[matDatepickerToggleIcon]\"></ng-content>\n</button>\n", styles: [".mat-datepicker-toggle{pointer-events:auto}.cdk-high-contrast-active .mat-datepicker-toggle-default-icon{color:CanvasText}"] }]
3457
3470
  }], ctorParameters: function () { return [{ type: MatDatepickerIntl }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
3458
3471
  type: Attribute,
3459
3472
  args: ['tabindex']