@angular/material 18.0.4 → 18.0.6

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 (145) hide show
  1. package/badge/index.d.ts +5 -2
  2. package/button/_button-base.scss +3 -1
  3. package/button/_fab-theme.scss +16 -16
  4. package/button/_icon-button-theme.scss +14 -20
  5. package/button/index.d.ts +7 -0
  6. package/button-toggle/index.d.ts +2 -2
  7. package/card/_card-theme.scss +25 -52
  8. package/checkbox/index.d.ts +4 -2
  9. package/chips/_chips-theme.scss +22 -24
  10. package/core/m2/_typography.scss +5 -2
  11. package/core/mdc-helpers/_mdc-helpers.scss +2 -2
  12. package/core/style/_elevation.scss +5 -0
  13. package/core/style/_vendor-prefixes.scss +5 -0
  14. package/core/tokens/_density.scss +1 -1
  15. package/core/tokens/_token-utils.scss +2 -2
  16. package/core/tokens/m2/_index.scss +2 -2
  17. package/core/tokens/m2/mat/_app.scss +1 -2
  18. package/core/tokens/m2/mat/_autocomplete.scss +2 -2
  19. package/core/tokens/m2/mat/_datepicker.scss +3 -3
  20. package/core/tokens/m2/mat/_dialog.scss +2 -2
  21. package/core/tokens/m2/mat/_fab-small.scss +3 -9
  22. package/core/tokens/m2/mat/_fab.scss +3 -9
  23. package/core/tokens/m2/mat/_filled-button.scss +3 -9
  24. package/core/tokens/m2/mat/_form-field.scss +9 -6
  25. package/core/tokens/m2/mat/_icon-button.scss +3 -9
  26. package/core/tokens/m2/mat/_outlined-button.scss +3 -9
  27. package/core/tokens/m2/mat/_paginator.scss +10 -6
  28. package/core/tokens/m2/mat/_protected-button.scss +3 -9
  29. package/core/tokens/m2/mat/_select.scss +2 -2
  30. package/core/tokens/m2/mat/_sidenav.scss +2 -2
  31. package/core/tokens/m2/mat/_text-button.scss +3 -9
  32. package/core/tokens/m2/mdc/_chip.scss +2 -14
  33. package/core/tokens/m2/mdc/_elevated-card.scss +3 -7
  34. package/core/tokens/m2/mdc/_extended-fab.scss +12 -8
  35. package/core/tokens/m2/mdc/_fab-small.scss +15 -13
  36. package/core/tokens/m2/mdc/_fab.scss +15 -13
  37. package/core/tokens/m2/mdc/_outlined-card.scss +2 -6
  38. package/core/tokens/m2/mdc/{_tab.scss → _secondary-navigation-tab.scss} +1 -1
  39. package/core/tokens/m3/_index.scss +2 -2
  40. package/core/tokens/m3/mat/_app.scss +2 -2
  41. package/core/tokens/m3/mat/_autocomplete.scss +2 -2
  42. package/core/tokens/m3/mat/_datepicker.scss +3 -3
  43. package/core/tokens/m3/mat/_select.scss +2 -2
  44. package/core/tokens/m3/mdc/_chip.scss +1 -4
  45. package/core/tokens/m3/mdc/_elevated-card.scss +9 -2
  46. package/core/tokens/m3/mdc/_extended-fab.scss +19 -2
  47. package/core/tokens/m3/mdc/_fab-small.scss +19 -2
  48. package/core/tokens/m3/mdc/_fab.scss +19 -2
  49. package/core/tokens/m3/mdc/_outlined-card.scss +9 -2
  50. package/core/tokens/m3/mdc/{_tab.scss → _secondary-navigation-tab.scss} +1 -1
  51. package/datepicker/index.d.ts +8 -4
  52. package/esm2022/badge/badge.mjs +6 -3
  53. package/esm2022/button/button-base.mjs +3 -3
  54. package/esm2022/button/button.mjs +4 -4
  55. package/esm2022/button/fab.mjs +9 -9
  56. package/esm2022/button/icon-button.mjs +4 -4
  57. package/esm2022/button-toggle/button-toggle.mjs +30 -21
  58. package/esm2022/card/card.mjs +2 -2
  59. package/esm2022/checkbox/checkbox-config.mjs +1 -1
  60. package/esm2022/chips/chip-grid.mjs +2 -2
  61. package/esm2022/chips/chip-listbox.mjs +2 -2
  62. package/esm2022/chips/chip-option.mjs +3 -3
  63. package/esm2022/chips/chip-row.mjs +3 -3
  64. package/esm2022/chips/chip-set.mjs +2 -2
  65. package/esm2022/chips/chip.mjs +3 -3
  66. package/esm2022/core/ripple/ripple-renderer.mjs +21 -3
  67. package/esm2022/core/version.mjs +1 -1
  68. package/esm2022/datepicker/calendar.mjs +6 -3
  69. package/esm2022/datepicker/datepicker-base.mjs +6 -4
  70. package/esm2022/dialog/dialog-container.mjs +3 -3
  71. package/esm2022/form-field/form-field.mjs +1 -1
  72. package/esm2022/list/list-option.mjs +8 -2
  73. package/esm2022/progress-bar/progress-bar.mjs +10 -4
  74. package/esm2022/progress-spinner/progress-spinner.mjs +8 -2
  75. package/esm2022/radio/radio.mjs +10 -4
  76. package/esm2022/sidenav/drawer.mjs +4 -1
  77. package/esm2022/slide-toggle/slide-toggle-config.mjs +1 -1
  78. package/esm2022/slide-toggle/slide-toggle.mjs +3 -3
  79. package/esm2022/slider/slider.mjs +1 -1
  80. package/esm2022/tabs/tab-group.mjs +9 -4
  81. package/esm2022/tabs/tab-header.mjs +3 -3
  82. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +12 -6
  83. package/esm2022/tooltip/tooltip.mjs +3 -3
  84. package/fesm2022/badge.mjs +5 -2
  85. package/fesm2022/badge.mjs.map +1 -1
  86. package/fesm2022/button-toggle.mjs +29 -20
  87. package/fesm2022/button-toggle.mjs.map +1 -1
  88. package/fesm2022/button.mjs +18 -18
  89. package/fesm2022/button.mjs.map +1 -1
  90. package/fesm2022/card.mjs +2 -2
  91. package/fesm2022/card.mjs.map +1 -1
  92. package/fesm2022/checkbox.mjs.map +1 -1
  93. package/fesm2022/chips.mjs +12 -12
  94. package/fesm2022/chips.mjs.map +1 -1
  95. package/fesm2022/core.mjs +21 -3
  96. package/fesm2022/core.mjs.map +1 -1
  97. package/fesm2022/datepicker.mjs +10 -5
  98. package/fesm2022/datepicker.mjs.map +1 -1
  99. package/fesm2022/dialog.mjs +2 -2
  100. package/fesm2022/dialog.mjs.map +1 -1
  101. package/fesm2022/form-field.mjs.map +1 -1
  102. package/fesm2022/list.mjs +7 -1
  103. package/fesm2022/list.mjs.map +1 -1
  104. package/fesm2022/progress-bar.mjs +9 -3
  105. package/fesm2022/progress-bar.mjs.map +1 -1
  106. package/fesm2022/progress-spinner.mjs +7 -1
  107. package/fesm2022/progress-spinner.mjs.map +1 -1
  108. package/fesm2022/radio.mjs +9 -3
  109. package/fesm2022/radio.mjs.map +1 -1
  110. package/fesm2022/sidenav.mjs +4 -1
  111. package/fesm2022/sidenav.mjs.map +1 -1
  112. package/fesm2022/slide-toggle.mjs +2 -2
  113. package/fesm2022/slide-toggle.mjs.map +1 -1
  114. package/fesm2022/slider.mjs.map +1 -1
  115. package/fesm2022/tabs.mjs +21 -10
  116. package/fesm2022/tabs.mjs.map +1 -1
  117. package/fesm2022/tooltip.mjs +2 -2
  118. package/fesm2022/tooltip.mjs.map +1 -1
  119. package/form-field/_form-field-subscript.scss +2 -2
  120. package/form-field/_mdc-text-field-structure-overrides.scss +2 -3
  121. package/form-field/index.d.ts +4 -2
  122. package/list/_list-option-trailing-avatar-compat.scss +26 -25
  123. package/list/index.d.ts +7 -1
  124. package/package.json +2 -2
  125. package/prebuilt-themes/azure-blue.css +1 -1
  126. package/prebuilt-themes/cyan-orange.css +1 -1
  127. package/prebuilt-themes/deeppurple-amber.css +1 -1
  128. package/prebuilt-themes/indigo-pink.css +1 -1
  129. package/prebuilt-themes/magenta-violet.css +1 -1
  130. package/prebuilt-themes/pink-bluegrey.css +1 -1
  131. package/prebuilt-themes/purple-green.css +1 -1
  132. package/prebuilt-themes/rose-red.css +1 -1
  133. package/progress-bar/_progress-bar-theme.scss +10 -7
  134. package/progress-bar/index.d.ts +14 -2
  135. package/progress-spinner/index.d.ts +14 -2
  136. package/radio/index.d.ts +14 -1
  137. package/schematics/ng-add/index.js +1 -1
  138. package/schematics/ng-add/index.mjs +1 -1
  139. package/sidenav/index.d.ts +1 -0
  140. package/slide-toggle/index.d.ts +7 -1
  141. package/slider/index.d.ts +7 -1
  142. package/tabs/_tabs-common.scss +94 -36
  143. package/tabs/_tabs-theme.scss +33 -25
  144. package/tabs/index.d.ts +20 -3
  145. package/tooltip/_tooltip-theme.scss +18 -16
package/fesm2022/core.mjs CHANGED
@@ -13,7 +13,7 @@ import { startWith } from 'rxjs/operators';
13
13
  import { ENTER, SPACE, hasModifierKey } from '@angular/cdk/keycodes';
14
14
 
15
15
  /** Current version of Angular Material. */
16
- const VERSION = new Version('18.0.4');
16
+ const VERSION = new Version('18.0.6');
17
17
 
18
18
  /** @docs-private */
19
19
  class AnimationCurves {
@@ -968,14 +968,29 @@ class RippleRenderer {
968
968
  // are set to zero. The events won't fire anyway and we can save resources here.
969
969
  if (!animationForciblyDisabledThroughCss && (enterDuration || animationConfig.exitDuration)) {
970
970
  this._ngZone.runOutsideAngular(() => {
971
- const onTransitionEnd = () => this._finishRippleTransition(rippleRef);
971
+ const onTransitionEnd = () => {
972
+ // Clear the fallback timer since the transition fired correctly.
973
+ if (eventListeners) {
974
+ eventListeners.fallbackTimer = null;
975
+ }
976
+ clearTimeout(fallbackTimer);
977
+ this._finishRippleTransition(rippleRef);
978
+ };
972
979
  const onTransitionCancel = () => this._destroyRipple(rippleRef);
980
+ // In some cases where there's a higher load on the browser, it can choose not to dispatch
981
+ // neither `transitionend` nor `transitioncancel` (see b/227356674). This timer serves as a
982
+ // fallback for such cases so that the ripple doesn't become stuck. We add a 100ms buffer
983
+ // because timers aren't precise. Note that another approach can be to transition the ripple
984
+ // to the `VISIBLE` state immediately above and to `FADING_IN` afterwards inside
985
+ // `transitionstart`. We go with the timer because it's one less event listener and
986
+ // it's less likely to break existing tests.
987
+ const fallbackTimer = setTimeout(onTransitionCancel, enterDuration + 100);
973
988
  ripple.addEventListener('transitionend', onTransitionEnd);
974
989
  // If the transition is cancelled (e.g. due to DOM removal), we destroy the ripple
975
990
  // directly as otherwise we would keep it part of the ripple container forever.
976
991
  // https://www.w3.org/TR/css-transitions-1/#:~:text=no%20longer%20in%20the%20document.
977
992
  ripple.addEventListener('transitioncancel', onTransitionCancel);
978
- eventListeners = { onTransitionEnd, onTransitionCancel };
993
+ eventListeners = { onTransitionEnd, onTransitionCancel, fallbackTimer };
979
994
  });
980
995
  }
981
996
  // Add the ripple reference to the list of all active ripples.
@@ -1106,6 +1121,9 @@ class RippleRenderer {
1106
1121
  if (eventListeners !== null) {
1107
1122
  rippleRef.element.removeEventListener('transitionend', eventListeners.onTransitionEnd);
1108
1123
  rippleRef.element.removeEventListener('transitioncancel', eventListeners.onTransitionCancel);
1124
+ if (eventListeners.fallbackTimer !== null) {
1125
+ clearTimeout(eventListeners.fallbackTimer);
1126
+ }
1109
1127
  }
1110
1128
  rippleRef.element.remove();
1111
1129
  }