@angular/material 18.0.0-next.4 → 18.0.0-next.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 (304) hide show
  1. package/_index.scss +67 -60
  2. package/autocomplete/_autocomplete-theme.scss +7 -0
  3. package/autocomplete/index.d.ts +4 -12
  4. package/badge/_badge-theme.scss +9 -0
  5. package/bottom-sheet/_bottom-sheet-theme.scss +7 -0
  6. package/button/_button-theme.scss +25 -0
  7. package/button/_fab-theme.scss +13 -0
  8. package/button/_icon-button-theme.scss +8 -0
  9. package/button-toggle/_button-toggle-theme.scss +12 -0
  10. package/card/_card-theme.scss +9 -0
  11. package/checkbox/_checkbox-theme.scss +2 -4
  12. package/chips/_chips-theme.scss +10 -0
  13. package/core/_core-theme.scss +17 -0
  14. package/core/m2/_index.scss +52 -0
  15. package/core/m2/_theming.scss +295 -0
  16. package/core/{typography/_property-getters.scss → m2/_typography-utils.scss} +14 -0
  17. package/core/{typography/_definition.scss → m2/_typography.scss} +1 -1
  18. package/core/option/_optgroup-theme.scss +7 -0
  19. package/core/option/_option-theme.scss +9 -0
  20. package/core/ripple/_ripple-theme.scss +7 -0
  21. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +13 -0
  22. package/core/style/_sass-utils.scss +14 -1
  23. package/core/theming/_color-api-backwards-compatibility.scss +128 -0
  24. package/core/theming/_config-validation.scss +173 -0
  25. package/core/theming/_definition.scss +113 -0
  26. package/core/theming/_m2-inspection.scss +23 -22
  27. package/core/theming/_palettes.scss +947 -0
  28. package/core/theming/_theming-deprecated.scss +9 -9
  29. package/core/theming/_theming.scss +73 -339
  30. package/core/tokens/_custom-tokens.scss +1918 -0
  31. package/core/tokens/_density.scss +191 -0
  32. package/core/tokens/_format-tokens.scss +5 -0
  33. package/core/tokens/_m3-tokens.scss +1252 -0
  34. package/core/tokens/_token-utils.scss +39 -49
  35. package/core/tokens/m2/mat/_chip.scss +3 -3
  36. package/core/tokens/m2/mat/_form-field.scss +3 -3
  37. package/core/tokens/m2/mdc/_checkbox.scss +3 -2
  38. package/core/tokens/m2/mdc/_chip.scss +3 -3
  39. package/core/tokens/m2/mdc/_radio.scss +3 -2
  40. package/core/typography/_all-typography.scss +3 -2
  41. package/core/typography/_typography-utils.scss +0 -26
  42. package/core/typography/_typography.scss +0 -2
  43. package/core/typography/_versioning.scss +3 -3
  44. package/datepicker/_datepicker-theme.scss +9 -0
  45. package/datepicker/index.d.ts +6 -4
  46. package/dialog/_dialog-theme.scss +8 -0
  47. package/divider/_divider-theme.scss +7 -0
  48. package/esm2022/autocomplete/autocomplete-origin.mjs +3 -3
  49. package/esm2022/autocomplete/autocomplete-trigger.mjs +13 -7
  50. package/esm2022/autocomplete/autocomplete.mjs +7 -36
  51. package/esm2022/autocomplete/module.mjs +4 -4
  52. package/esm2022/badge/badge-module.mjs +4 -4
  53. package/esm2022/badge/badge.mjs +6 -6
  54. package/esm2022/bottom-sheet/bottom-sheet-container.mjs +3 -3
  55. package/esm2022/bottom-sheet/bottom-sheet-module.mjs +4 -4
  56. package/esm2022/bottom-sheet/bottom-sheet.mjs +3 -3
  57. package/esm2022/button/button-base.mjs +6 -6
  58. package/esm2022/button/button.mjs +6 -6
  59. package/esm2022/button/fab.mjs +12 -12
  60. package/esm2022/button/icon-button.mjs +6 -6
  61. package/esm2022/button/module.mjs +4 -4
  62. package/esm2022/button-toggle/button-toggle-module.mjs +4 -4
  63. package/esm2022/button-toggle/button-toggle.mjs +6 -6
  64. package/esm2022/card/card.mjs +42 -42
  65. package/esm2022/card/module.mjs +4 -4
  66. package/esm2022/checkbox/checkbox-required-validator.mjs +3 -3
  67. package/esm2022/checkbox/checkbox.mjs +3 -3
  68. package/esm2022/checkbox/module.mjs +8 -8
  69. package/esm2022/chips/chip-action.mjs +3 -3
  70. package/esm2022/chips/chip-edit-input.mjs +3 -3
  71. package/esm2022/chips/chip-grid.mjs +3 -3
  72. package/esm2022/chips/chip-icons.mjs +9 -9
  73. package/esm2022/chips/chip-input.mjs +3 -3
  74. package/esm2022/chips/chip-listbox.mjs +3 -3
  75. package/esm2022/chips/chip-option.mjs +3 -3
  76. package/esm2022/chips/chip-row.mjs +3 -3
  77. package/esm2022/chips/chip-set.mjs +3 -3
  78. package/esm2022/chips/chip.mjs +3 -3
  79. package/esm2022/chips/module.mjs +4 -4
  80. package/esm2022/core/common-behaviors/common-module.mjs +4 -4
  81. package/esm2022/core/datetime/index.mjs +8 -8
  82. package/esm2022/core/datetime/native-date-adapter.mjs +3 -3
  83. package/esm2022/core/error/error-options.mjs +6 -6
  84. package/esm2022/core/internal-form-field/internal-form-field.mjs +3 -3
  85. package/esm2022/core/line/line.mjs +7 -7
  86. package/esm2022/core/option/index.mjs +4 -4
  87. package/esm2022/core/option/optgroup.mjs +3 -3
  88. package/esm2022/core/option/option.mjs +3 -3
  89. package/esm2022/core/private/ripple-loader.mjs +3 -3
  90. package/esm2022/core/ripple/index.mjs +4 -4
  91. package/esm2022/core/ripple/ripple.mjs +3 -3
  92. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +4 -4
  93. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +3 -3
  94. package/esm2022/core/version.mjs +1 -1
  95. package/esm2022/datepicker/calendar-body.mjs +3 -3
  96. package/esm2022/datepicker/calendar.mjs +6 -6
  97. package/esm2022/datepicker/date-range-input-parts.mjs +9 -9
  98. package/esm2022/datepicker/date-range-input.mjs +9 -4
  99. package/esm2022/datepicker/date-range-picker.mjs +3 -3
  100. package/esm2022/datepicker/date-range-selection-strategy.mjs +3 -3
  101. package/esm2022/datepicker/date-selection-model.mjs +9 -9
  102. package/esm2022/datepicker/datepicker-actions.mjs +9 -9
  103. package/esm2022/datepicker/datepicker-base.mjs +10 -13
  104. package/esm2022/datepicker/datepicker-input-base.mjs +3 -3
  105. package/esm2022/datepicker/datepicker-input.mjs +3 -3
  106. package/esm2022/datepicker/datepicker-intl.mjs +3 -3
  107. package/esm2022/datepicker/datepicker-module.mjs +4 -4
  108. package/esm2022/datepicker/datepicker-toggle.mjs +6 -6
  109. package/esm2022/datepicker/datepicker.mjs +3 -3
  110. package/esm2022/datepicker/month-view.mjs +3 -3
  111. package/esm2022/datepicker/multi-year-view.mjs +3 -3
  112. package/esm2022/datepicker/year-view.mjs +3 -3
  113. package/esm2022/dialog/dialog-container.mjs +3 -3
  114. package/esm2022/dialog/dialog-content-directives.mjs +15 -15
  115. package/esm2022/dialog/dialog.mjs +3 -3
  116. package/esm2022/dialog/module.mjs +4 -4
  117. package/esm2022/divider/divider-module.mjs +4 -4
  118. package/esm2022/divider/divider.mjs +3 -3
  119. package/esm2022/expansion/accordion.mjs +3 -3
  120. package/esm2022/expansion/expansion-module.mjs +4 -4
  121. package/esm2022/expansion/expansion-panel-content.mjs +3 -3
  122. package/esm2022/expansion/expansion-panel-header.mjs +9 -9
  123. package/esm2022/expansion/expansion-panel.mjs +6 -6
  124. package/esm2022/form-field/directives/error.mjs +3 -3
  125. package/esm2022/form-field/directives/floating-label.mjs +3 -3
  126. package/esm2022/form-field/directives/hint.mjs +3 -3
  127. package/esm2022/form-field/directives/label.mjs +3 -3
  128. package/esm2022/form-field/directives/line-ripple.mjs +3 -3
  129. package/esm2022/form-field/directives/notched-outline.mjs +3 -3
  130. package/esm2022/form-field/directives/prefix.mjs +3 -3
  131. package/esm2022/form-field/directives/suffix.mjs +3 -3
  132. package/esm2022/form-field/form-field-control.mjs +4 -4
  133. package/esm2022/form-field/form-field.mjs +6 -6
  134. package/esm2022/form-field/module.mjs +4 -4
  135. package/esm2022/grid-list/grid-list-module.mjs +4 -4
  136. package/esm2022/grid-list/grid-list.mjs +3 -3
  137. package/esm2022/grid-list/grid-tile.mjs +15 -15
  138. package/esm2022/icon/icon-module.mjs +4 -4
  139. package/esm2022/icon/icon-registry.mjs +3 -3
  140. package/esm2022/icon/icon.mjs +3 -3
  141. package/esm2022/icon/testing/fake-icon-registry.mjs +7 -7
  142. package/esm2022/input/input.mjs +3 -3
  143. package/esm2022/input/module.mjs +4 -4
  144. package/esm2022/list/action-list.mjs +3 -3
  145. package/esm2022/list/list-base.mjs +6 -6
  146. package/esm2022/list/list-item-sections.mjs +18 -18
  147. package/esm2022/list/list-module.mjs +4 -4
  148. package/esm2022/list/list-option.mjs +3 -3
  149. package/esm2022/list/list.mjs +6 -6
  150. package/esm2022/list/nav-list.mjs +3 -3
  151. package/esm2022/list/selection-list.mjs +3 -3
  152. package/esm2022/list/subheader.mjs +3 -3
  153. package/esm2022/menu/menu-content.mjs +3 -3
  154. package/esm2022/menu/menu-item.mjs +3 -3
  155. package/esm2022/menu/menu-trigger.mjs +3 -3
  156. package/esm2022/menu/menu.mjs +21 -16
  157. package/esm2022/menu/module.mjs +4 -4
  158. package/esm2022/paginator/module.mjs +4 -4
  159. package/esm2022/paginator/paginator-intl.mjs +3 -3
  160. package/esm2022/paginator/paginator.mjs +3 -3
  161. package/esm2022/progress-bar/module.mjs +4 -4
  162. package/esm2022/progress-bar/progress-bar.mjs +5 -5
  163. package/esm2022/progress-spinner/module.mjs +4 -4
  164. package/esm2022/progress-spinner/progress-spinner.mjs +3 -3
  165. package/esm2022/radio/module.mjs +4 -4
  166. package/esm2022/radio/radio.mjs +6 -6
  167. package/esm2022/select/module.mjs +4 -4
  168. package/esm2022/select/select.mjs +12 -7
  169. package/esm2022/sidenav/drawer.mjs +9 -9
  170. package/esm2022/sidenav/sidenav-module.mjs +4 -4
  171. package/esm2022/sidenav/sidenav.mjs +9 -9
  172. package/esm2022/slide-toggle/module.mjs +8 -8
  173. package/esm2022/slide-toggle/slide-toggle-required-validator.mjs +3 -3
  174. package/esm2022/slide-toggle/slide-toggle.mjs +3 -3
  175. package/esm2022/slider/module.mjs +4 -4
  176. package/esm2022/slider/slider-input.mjs +6 -6
  177. package/esm2022/slider/slider-thumb.mjs +3 -3
  178. package/esm2022/slider/slider.mjs +3 -3
  179. package/esm2022/snack-bar/module.mjs +4 -4
  180. package/esm2022/snack-bar/simple-snack-bar.mjs +3 -3
  181. package/esm2022/snack-bar/snack-bar-container.mjs +3 -3
  182. package/esm2022/snack-bar/snack-bar-content.mjs +9 -9
  183. package/esm2022/snack-bar/snack-bar.mjs +3 -3
  184. package/esm2022/sort/sort-header-intl.mjs +3 -3
  185. package/esm2022/sort/sort-header.mjs +3 -3
  186. package/esm2022/sort/sort-module.mjs +4 -4
  187. package/esm2022/sort/sort.mjs +3 -3
  188. package/esm2022/stepper/step-content.mjs +3 -3
  189. package/esm2022/stepper/step-header.mjs +3 -3
  190. package/esm2022/stepper/step-label.mjs +3 -3
  191. package/esm2022/stepper/stepper-button.mjs +6 -6
  192. package/esm2022/stepper/stepper-icon.mjs +3 -3
  193. package/esm2022/stepper/stepper-intl.mjs +3 -3
  194. package/esm2022/stepper/stepper-module.mjs +4 -4
  195. package/esm2022/stepper/stepper.mjs +6 -6
  196. package/esm2022/table/cell.mjs +21 -21
  197. package/esm2022/table/module.mjs +4 -4
  198. package/esm2022/table/row.mjs +21 -21
  199. package/esm2022/table/table.mjs +6 -6
  200. package/esm2022/table/text-column.mjs +3 -3
  201. package/esm2022/tabs/ink-bar.mjs +3 -3
  202. package/esm2022/tabs/module.mjs +4 -4
  203. package/esm2022/tabs/paginated-tab-header.mjs +3 -3
  204. package/esm2022/tabs/tab-body.mjs +6 -6
  205. package/esm2022/tabs/tab-content.mjs +3 -3
  206. package/esm2022/tabs/tab-group.mjs +6 -8
  207. package/esm2022/tabs/tab-header.mjs +3 -3
  208. package/esm2022/tabs/tab-label-wrapper.mjs +3 -3
  209. package/esm2022/tabs/tab-label.mjs +3 -3
  210. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +9 -9
  211. package/esm2022/tabs/tab.mjs +4 -4
  212. package/esm2022/toolbar/toolbar-module.mjs +4 -4
  213. package/esm2022/toolbar/toolbar.mjs +6 -6
  214. package/esm2022/tooltip/module.mjs +4 -4
  215. package/esm2022/tooltip/tooltip.mjs +6 -6
  216. package/esm2022/tree/node.mjs +9 -9
  217. package/esm2022/tree/outlet.mjs +3 -3
  218. package/esm2022/tree/padding.mjs +3 -3
  219. package/esm2022/tree/toggle.mjs +3 -3
  220. package/esm2022/tree/tree-module.mjs +4 -4
  221. package/esm2022/tree/tree.mjs +3 -3
  222. package/expansion/_expansion-theme.scss +7 -0
  223. package/fesm2022/autocomplete.mjs +26 -48
  224. package/fesm2022/autocomplete.mjs.map +1 -1
  225. package/fesm2022/badge.mjs +10 -10
  226. package/fesm2022/bottom-sheet.mjs +10 -10
  227. package/fesm2022/button-toggle.mjs +10 -10
  228. package/fesm2022/button.mjs +34 -34
  229. package/fesm2022/card.mjs +46 -46
  230. package/fesm2022/checkbox.mjs +14 -14
  231. package/fesm2022/chips.mjs +40 -40
  232. package/fesm2022/core.mjs +59 -59
  233. package/fesm2022/core.mjs.map +1 -1
  234. package/fesm2022/datepicker.mjs +89 -87
  235. package/fesm2022/datepicker.mjs.map +1 -1
  236. package/fesm2022/dialog.mjs +25 -25
  237. package/fesm2022/divider.mjs +7 -7
  238. package/fesm2022/expansion.mjs +25 -25
  239. package/fesm2022/form-field.mjs +36 -36
  240. package/fesm2022/form-field.mjs.map +1 -1
  241. package/fesm2022/grid-list.mjs +22 -22
  242. package/fesm2022/icon/testing.mjs +7 -7
  243. package/fesm2022/icon.mjs +10 -10
  244. package/fesm2022/input.mjs +7 -7
  245. package/fesm2022/list.mjs +49 -49
  246. package/fesm2022/menu.mjs +34 -28
  247. package/fesm2022/menu.mjs.map +1 -1
  248. package/fesm2022/paginator.mjs +10 -10
  249. package/fesm2022/progress-bar.mjs +8 -8
  250. package/fesm2022/progress-bar.mjs.map +1 -1
  251. package/fesm2022/progress-spinner.mjs +7 -7
  252. package/fesm2022/radio.mjs +10 -10
  253. package/fesm2022/select.mjs +15 -10
  254. package/fesm2022/select.mjs.map +1 -1
  255. package/fesm2022/sidenav.mjs +22 -22
  256. package/fesm2022/slide-toggle.mjs +14 -14
  257. package/fesm2022/slider.mjs +16 -16
  258. package/fesm2022/snack-bar.mjs +22 -22
  259. package/fesm2022/sort.mjs +13 -13
  260. package/fesm2022/stepper.mjs +31 -31
  261. package/fesm2022/table.mjs +55 -55
  262. package/fesm2022/tabs.mjs +46 -47
  263. package/fesm2022/tabs.mjs.map +1 -1
  264. package/fesm2022/toolbar.mjs +10 -10
  265. package/fesm2022/tooltip.mjs +10 -10
  266. package/fesm2022/tree.mjs +25 -25
  267. package/form-field/_form-field-theme.scss +15 -0
  268. package/form-field/index.d.ts +6 -0
  269. package/grid-list/_grid-list-theme.scss +7 -0
  270. package/icon/_icon-theme.scss +9 -0
  271. package/input/_input-theme.scss +8 -0
  272. package/list/_list-theme.scss +8 -0
  273. package/menu/_menu-theme.scss +7 -0
  274. package/menu/index.d.ts +1 -1
  275. package/package.json +3 -2
  276. package/paginator/_paginator-theme.scss +7 -0
  277. package/progress-bar/_progress-bar-theme.scss +11 -0
  278. package/progress-spinner/_progress-spinner-theme.scss +11 -0
  279. package/radio/_radio-theme.scss +10 -0
  280. package/schematics/collection.json +6 -0
  281. package/schematics/ng-add/index.js +1 -1
  282. package/schematics/ng-add/index.mjs +1 -1
  283. package/schematics/ng-add/theming/create-custom-theme.js +5 -6
  284. package/schematics/ng-add/theming/create-custom-theme.mjs +5 -6
  285. package/schematics/ng-generate/m3-theme/index_bundled.js +2682 -0
  286. package/schematics/ng-generate/m3-theme/index_bundled.js.map +7 -0
  287. package/schematics/ng-generate/m3-theme/schema.json +56 -0
  288. package/schematics/ng-update/index_bundled.js +215 -1
  289. package/schematics/ng-update/index_bundled.js.map +4 -4
  290. package/select/_select-theme.scss +9 -0
  291. package/select/index.d.ts +5 -0
  292. package/sidenav/_sidenav-theme.scss +7 -0
  293. package/slide-toggle/_slide-toggle-theme.scss +11 -0
  294. package/slider/_slider-theme.scss +10 -0
  295. package/snack-bar/_snack-bar-theme.scss +10 -0
  296. package/sort/_sort-theme.scss +7 -0
  297. package/stepper/_stepper-theme.scss +9 -0
  298. package/table/_table-theme.scss +7 -0
  299. package/tabs/_tabs-theme.scss +20 -0
  300. package/tabs/index.d.ts +2 -8
  301. package/toolbar/_toolbar-theme.scss +9 -0
  302. package/tooltip/_tooltip-theme.scss +8 -0
  303. package/tree/_tree-theme.scss +7 -0
  304. /package/core/{theming → m2}/_palette.scss +0 -0
package/fesm2022/menu.mjs CHANGED
@@ -5,7 +5,7 @@ import { FocusKeyManager, isFakeTouchstartFromScreenReader, isFakeMousedownFromS
5
5
  import { UP_ARROW, DOWN_ARROW, RIGHT_ARROW, LEFT_ARROW, ESCAPE, hasModifierKey, ENTER, SPACE } from '@angular/cdk/keycodes';
6
6
  import { Subject, merge, Subscription, of, asapScheduler } from 'rxjs';
7
7
  import { startWith, switchMap, takeUntil, filter, take, delay } from 'rxjs/operators';
8
- import { DOCUMENT, NgClass, CommonModule } from '@angular/common';
8
+ import { DOCUMENT, CommonModule } from '@angular/common';
9
9
  import { MatRipple, MatRippleModule, MatCommonModule } from '@angular/material/core';
10
10
  import { TemplatePortal, DomPortalOutlet } from '@angular/cdk/portal';
11
11
  import { trigger, state, style, transition, animate } from '@angular/animations';
@@ -120,10 +120,10 @@ class MatMenuItem {
120
120
  _hasFocus() {
121
121
  return this._document && this._document.activeElement === this._getHostElement();
122
122
  }
123
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: MatMenuItem, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }, { token: i1.FocusMonitor }, { token: MAT_MENU_PANEL, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
124
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-next.1", type: MatMenuItem, isStandalone: true, selector: "[mat-menu-item]", inputs: { role: "role", disabled: ["disabled", "disabled", booleanAttribute], disableRipple: ["disableRipple", "disableRipple", booleanAttribute] }, host: { listeners: { "click": "_checkDisabled($event)", "mouseenter": "_handleMouseEnter()" }, properties: { "attr.role": "role", "class.mat-mdc-menu-item-highlighted": "_highlighted", "class.mat-mdc-menu-item-submenu-trigger": "_triggersSubmenu", "attr.tabindex": "_getTabIndex()", "attr.aria-disabled": "disabled", "attr.disabled": "disabled || null" }, classAttribute: "mat-mdc-menu-item mat-mdc-focus-indicator" }, exportAs: ["matMenuItem"], ngImport: i0, template: "<ng-content select=\"mat-icon, [matMenuItemIcon]\"></ng-content>\n<span class=\"mat-mdc-menu-item-text\"><ng-content></ng-content></span>\n<div class=\"mat-mdc-menu-ripple\" matRipple\n [matRippleDisabled]=\"disableRipple || disabled\"\n [matRippleTrigger]=\"_getHostElement()\">\n</div>\n\n@if (_triggersSubmenu) {\n <svg\n class=\"mat-mdc-menu-submenu-icon\"\n viewBox=\"0 0 5 10\"\n focusable=\"false\"\n aria-hidden=\"true\"><polygon points=\"0,0 5,5 0,10\"/></svg>\n}\n", dependencies: [{ kind: "directive", type: MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
123
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.5", ngImport: i0, type: MatMenuItem, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }, { token: i1.FocusMonitor }, { token: MAT_MENU_PANEL, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
124
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-next.5", type: MatMenuItem, isStandalone: true, selector: "[mat-menu-item]", inputs: { role: "role", disabled: ["disabled", "disabled", booleanAttribute], disableRipple: ["disableRipple", "disableRipple", booleanAttribute] }, host: { listeners: { "click": "_checkDisabled($event)", "mouseenter": "_handleMouseEnter()" }, properties: { "attr.role": "role", "class.mat-mdc-menu-item-highlighted": "_highlighted", "class.mat-mdc-menu-item-submenu-trigger": "_triggersSubmenu", "attr.tabindex": "_getTabIndex()", "attr.aria-disabled": "disabled", "attr.disabled": "disabled || null" }, classAttribute: "mat-mdc-menu-item mat-mdc-focus-indicator" }, exportAs: ["matMenuItem"], ngImport: i0, template: "<ng-content select=\"mat-icon, [matMenuItemIcon]\"></ng-content>\n<span class=\"mat-mdc-menu-item-text\"><ng-content></ng-content></span>\n<div class=\"mat-mdc-menu-ripple\" matRipple\n [matRippleDisabled]=\"disableRipple || disabled\"\n [matRippleTrigger]=\"_getHostElement()\">\n</div>\n\n@if (_triggersSubmenu) {\n <svg\n class=\"mat-mdc-menu-submenu-icon\"\n viewBox=\"0 0 5 10\"\n focusable=\"false\"\n aria-hidden=\"true\"><polygon points=\"0,0 5,5 0,10\"/></svg>\n}\n", dependencies: [{ kind: "directive", type: MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
125
125
  }
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: MatMenuItem, decorators: [{
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.5", ngImport: i0, type: MatMenuItem, decorators: [{
127
127
  type: Component,
128
128
  args: [{ selector: '[mat-menu-item]', exportAs: 'matMenuItem', host: {
129
129
  '[attr.role]': 'role',
@@ -242,10 +242,10 @@ class MatMenuContent {
242
242
  this._outlet.dispose();
243
243
  }
244
244
  }
245
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: MatMenuContent, deps: [{ token: i0.TemplateRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }, { token: i0.ViewContainerRef }, { token: DOCUMENT }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
246
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.1", type: MatMenuContent, isStandalone: true, selector: "ng-template[matMenuContent]", providers: [{ provide: MAT_MENU_CONTENT, useExisting: MatMenuContent }], ngImport: i0 }); }
245
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.5", ngImport: i0, type: MatMenuContent, deps: [{ token: i0.TemplateRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }, { token: i0.ViewContainerRef }, { token: DOCUMENT }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
246
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.5", type: MatMenuContent, isStandalone: true, selector: "ng-template[matMenuContent]", providers: [{ provide: MAT_MENU_CONTENT, useExisting: MatMenuContent }], ngImport: i0 }); }
247
247
  }
248
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: MatMenuContent, decorators: [{
248
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.5", ngImport: i0, type: MatMenuContent, decorators: [{
249
249
  type: Directive,
250
250
  args: [{
251
251
  selector: 'ng-template[matMenuContent]',
@@ -358,18 +358,20 @@ class MatMenu {
358
358
  */
359
359
  set panelClass(classes) {
360
360
  const previousPanelClass = this._previousPanelClass;
361
+ const newClassList = { ...this._classList };
361
362
  if (previousPanelClass && previousPanelClass.length) {
362
363
  previousPanelClass.split(' ').forEach((className) => {
363
- this._classList[className] = false;
364
+ newClassList[className] = false;
364
365
  });
365
366
  }
366
367
  this._previousPanelClass = classes;
367
368
  if (classes && classes.length) {
368
369
  classes.split(' ').forEach((className) => {
369
- this._classList[className] = true;
370
+ newClassList[className] = true;
370
371
  });
371
372
  this._elementRef.nativeElement.className = '';
372
373
  }
374
+ this._classList = newClassList;
373
375
  }
374
376
  /**
375
377
  * This method takes classes set on the host mat-menu element and applies them on the
@@ -398,7 +400,7 @@ class MatMenu {
398
400
  this._baseElevation = 8;
399
401
  /** Only the direct descendant menu items. */
400
402
  this._directDescendantItems = new QueryList();
401
- /** Config object to be passed into the menu's ngClass */
403
+ /** Classes to be applied to the menu panel. */
402
404
  this._classList = {};
403
405
  /** Current state of the panel animation. */
404
406
  this._panelAnimationState = 'void';
@@ -561,11 +563,13 @@ class MatMenu {
561
563
  return className.startsWith(this._elevationPrefix);
562
564
  });
563
565
  if (!customElevation || customElevation === this._previousElevation) {
566
+ const newClassList = { ...this._classList };
564
567
  if (this._previousElevation) {
565
- this._classList[this._previousElevation] = false;
568
+ newClassList[this._previousElevation] = false;
566
569
  }
567
- this._classList[newElevation] = true;
570
+ newClassList[newElevation] = true;
568
571
  this._previousElevation = newElevation;
572
+ this._classList = newClassList;
569
573
  }
570
574
  }
571
575
  /**
@@ -576,11 +580,13 @@ class MatMenu {
576
580
  * @docs-private
577
581
  */
578
582
  setPositionClasses(posX = this.xPosition, posY = this.yPosition) {
579
- const classes = this._classList;
580
- classes['mat-menu-before'] = posX === 'before';
581
- classes['mat-menu-after'] = posX === 'after';
582
- classes['mat-menu-above'] = posY === 'above';
583
- classes['mat-menu-below'] = posY === 'below';
583
+ this._classList = {
584
+ ...this._classList,
585
+ ['mat-menu-before']: posX === 'before',
586
+ ['mat-menu-after']: posX === 'after',
587
+ ['mat-menu-above']: posY === 'above',
588
+ ['mat-menu-below']: posY === 'below',
589
+ };
584
590
  // @breaking-change 15.0.0 Remove null check for `_changeDetectorRef`.
585
591
  this._changeDetectorRef?.markForCheck();
586
592
  }
@@ -625,16 +631,16 @@ class MatMenu {
625
631
  this._directDescendantItems.notifyOnChanges();
626
632
  });
627
633
  }
628
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: MatMenu, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: MAT_MENU_DEFAULT_OPTIONS }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
629
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0-next.1", type: MatMenu, isStandalone: true, selector: "mat-menu", inputs: { backdropClass: "backdropClass", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], ariaDescribedby: ["aria-describedby", "ariaDescribedby"], xPosition: "xPosition", yPosition: "yPosition", overlapTrigger: ["overlapTrigger", "overlapTrigger", booleanAttribute], hasBackdrop: ["hasBackdrop", "hasBackdrop", (value) => (value == null ? null : booleanAttribute(value))], panelClass: ["class", "panelClass"], classList: "classList" }, outputs: { closed: "closed", close: "close" }, host: { properties: { "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null" } }, providers: [{ provide: MAT_MENU_PANEL, useExisting: MatMenu }], queries: [{ propertyName: "lazyContent", first: true, predicate: MAT_MENU_CONTENT, descendants: true }, { propertyName: "_allItems", predicate: MatMenuItem, descendants: true }, { propertyName: "items", predicate: MatMenuItem }], viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], exportAs: ["matMenu"], ngImport: i0, template: "<ng-template>\n <div\n class=\"mat-mdc-menu-panel mat-mdc-elevation-specific\"\n [id]=\"panelId\"\n [ngClass]=\"_classList\"\n (keydown)=\"_handleKeydown($event)\"\n (click)=\"closed.emit('click')\"\n [@transformMenu]=\"_panelAnimationState\"\n (@transformMenu.start)=\"_onAnimationStart($event)\"\n (@transformMenu.done)=\"_onAnimationDone($event)\"\n tabindex=\"-1\"\n role=\"menu\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby || null\"\n [attr.aria-describedby]=\"ariaDescribedby || null\">\n <div class=\"mat-mdc-menu-content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: ["mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font);line-height:var(--mat-menu-item-label-text-line-height);font-size:var(--mat-menu-item-label-text-size);letter-spacing:var(--mat-menu-item-label-text-tracking);font-weight:var(--mat-menu-item-label-text-weight)}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;outline:0;border-radius:var(--mat-menu-container-shape);background-color:var(--mat-menu-container-color);will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-divider{color:var(--mat-menu-divider-color);margin-bottom:var(--mat-menu-divider-bottom-spacing);margin-top:var(--mat-menu-divider-top-spacing)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:var(--mat-menu-item-leading-spacing);padding-right:var(--mat-menu-item-trailing-spacing);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;align-items:center;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:var(--mat-menu-item-trailing-spacing);padding-right:var(--mat-menu-item-leading-spacing)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing);padding-right:var(--mat-menu-item-with-icon-trailing-spacing)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]),.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon])[dir=rtl]{padding-left:var(--mat-menu-item-with-icon-trailing-spacing);padding-right:var(--mat-menu-item-with-icon-leading-spacing)}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color)}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color)}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:\"\";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing);height:var(--mat-menu-item-icon-size);width:var(--mat-menu-item-icon-size)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color)}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color)}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1)}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [matMenuAnimations.transformMenu, matMenuAnimations.fadeInItems], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
634
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.5", ngImport: i0, type: MatMenu, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: MAT_MENU_DEFAULT_OPTIONS }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
635
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0-next.5", type: MatMenu, isStandalone: true, selector: "mat-menu", inputs: { backdropClass: "backdropClass", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], ariaDescribedby: ["aria-describedby", "ariaDescribedby"], xPosition: "xPosition", yPosition: "yPosition", overlapTrigger: ["overlapTrigger", "overlapTrigger", booleanAttribute], hasBackdrop: ["hasBackdrop", "hasBackdrop", (value) => (value == null ? null : booleanAttribute(value))], panelClass: ["class", "panelClass"], classList: "classList" }, outputs: { closed: "closed", close: "close" }, host: { properties: { "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null" } }, providers: [{ provide: MAT_MENU_PANEL, useExisting: MatMenu }], queries: [{ propertyName: "lazyContent", first: true, predicate: MAT_MENU_CONTENT, descendants: true }, { propertyName: "_allItems", predicate: MatMenuItem, descendants: true }, { propertyName: "items", predicate: MatMenuItem }], viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], exportAs: ["matMenu"], ngImport: i0, template: "<ng-template>\n <div\n class=\"mat-mdc-menu-panel mat-mdc-elevation-specific\"\n [id]=\"panelId\"\n [class]=\"_classList\"\n (keydown)=\"_handleKeydown($event)\"\n (click)=\"closed.emit('click')\"\n [@transformMenu]=\"_panelAnimationState\"\n (@transformMenu.start)=\"_onAnimationStart($event)\"\n (@transformMenu.done)=\"_onAnimationDone($event)\"\n tabindex=\"-1\"\n role=\"menu\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby || null\"\n [attr.aria-describedby]=\"ariaDescribedby || null\">\n <div class=\"mat-mdc-menu-content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: ["mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font);line-height:var(--mat-menu-item-label-text-line-height);font-size:var(--mat-menu-item-label-text-size);letter-spacing:var(--mat-menu-item-label-text-tracking);font-weight:var(--mat-menu-item-label-text-weight)}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;outline:0;border-radius:var(--mat-menu-container-shape);background-color:var(--mat-menu-container-color);will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-divider{color:var(--mat-menu-divider-color);margin-bottom:var(--mat-menu-divider-bottom-spacing);margin-top:var(--mat-menu-divider-top-spacing)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:var(--mat-menu-item-leading-spacing);padding-right:var(--mat-menu-item-trailing-spacing);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;align-items:center;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:var(--mat-menu-item-trailing-spacing);padding-right:var(--mat-menu-item-leading-spacing)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing);padding-right:var(--mat-menu-item-with-icon-trailing-spacing)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]),.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon])[dir=rtl]{padding-left:var(--mat-menu-item-with-icon-trailing-spacing);padding-right:var(--mat-menu-item-with-icon-leading-spacing)}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color)}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color)}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:\"\";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing);height:var(--mat-menu-item-icon-size);width:var(--mat-menu-item-icon-size)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color)}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color)}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1)}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}"], animations: [matMenuAnimations.transformMenu, matMenuAnimations.fadeInItems], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
630
636
  }
631
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: MatMenu, decorators: [{
637
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.5", ngImport: i0, type: MatMenu, decorators: [{
632
638
  type: Component,
633
639
  args: [{ selector: 'mat-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'matMenu', host: {
634
640
  '[attr.aria-label]': 'null',
635
641
  '[attr.aria-labelledby]': 'null',
636
642
  '[attr.aria-describedby]': 'null',
637
- }, animations: [matMenuAnimations.transformMenu, matMenuAnimations.fadeInItems], providers: [{ provide: MAT_MENU_PANEL, useExisting: MatMenu }], standalone: true, imports: [NgClass], template: "<ng-template>\n <div\n class=\"mat-mdc-menu-panel mat-mdc-elevation-specific\"\n [id]=\"panelId\"\n [ngClass]=\"_classList\"\n (keydown)=\"_handleKeydown($event)\"\n (click)=\"closed.emit('click')\"\n [@transformMenu]=\"_panelAnimationState\"\n (@transformMenu.start)=\"_onAnimationStart($event)\"\n (@transformMenu.done)=\"_onAnimationDone($event)\"\n tabindex=\"-1\"\n role=\"menu\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby || null\"\n [attr.aria-describedby]=\"ariaDescribedby || null\">\n <div class=\"mat-mdc-menu-content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: ["mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font);line-height:var(--mat-menu-item-label-text-line-height);font-size:var(--mat-menu-item-label-text-size);letter-spacing:var(--mat-menu-item-label-text-tracking);font-weight:var(--mat-menu-item-label-text-weight)}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;outline:0;border-radius:var(--mat-menu-container-shape);background-color:var(--mat-menu-container-color);will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-divider{color:var(--mat-menu-divider-color);margin-bottom:var(--mat-menu-divider-bottom-spacing);margin-top:var(--mat-menu-divider-top-spacing)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:var(--mat-menu-item-leading-spacing);padding-right:var(--mat-menu-item-trailing-spacing);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;align-items:center;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:var(--mat-menu-item-trailing-spacing);padding-right:var(--mat-menu-item-leading-spacing)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing);padding-right:var(--mat-menu-item-with-icon-trailing-spacing)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]),.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon])[dir=rtl]{padding-left:var(--mat-menu-item-with-icon-trailing-spacing);padding-right:var(--mat-menu-item-with-icon-leading-spacing)}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color)}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color)}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:\"\";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing);height:var(--mat-menu-item-icon-size);width:var(--mat-menu-item-icon-size)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color)}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color)}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1)}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}"] }]
643
+ }, animations: [matMenuAnimations.transformMenu, matMenuAnimations.fadeInItems], providers: [{ provide: MAT_MENU_PANEL, useExisting: MatMenu }], standalone: true, template: "<ng-template>\n <div\n class=\"mat-mdc-menu-panel mat-mdc-elevation-specific\"\n [id]=\"panelId\"\n [class]=\"_classList\"\n (keydown)=\"_handleKeydown($event)\"\n (click)=\"closed.emit('click')\"\n [@transformMenu]=\"_panelAnimationState\"\n (@transformMenu.start)=\"_onAnimationStart($event)\"\n (@transformMenu.done)=\"_onAnimationDone($event)\"\n tabindex=\"-1\"\n role=\"menu\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby || null\"\n [attr.aria-describedby]=\"ariaDescribedby || null\">\n <div class=\"mat-mdc-menu-content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: ["mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font);line-height:var(--mat-menu-item-label-text-line-height);font-size:var(--mat-menu-item-label-text-size);letter-spacing:var(--mat-menu-item-label-text-tracking);font-weight:var(--mat-menu-item-label-text-weight)}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;outline:0;border-radius:var(--mat-menu-container-shape);background-color:var(--mat-menu-container-color);will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-divider{color:var(--mat-menu-divider-color);margin-bottom:var(--mat-menu-divider-bottom-spacing);margin-top:var(--mat-menu-divider-top-spacing)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:var(--mat-menu-item-leading-spacing);padding-right:var(--mat-menu-item-trailing-spacing);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;align-items:center;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:var(--mat-menu-item-trailing-spacing);padding-right:var(--mat-menu-item-leading-spacing)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing);padding-right:var(--mat-menu-item-with-icon-trailing-spacing)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]),.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon])[dir=rtl]{padding-left:var(--mat-menu-item-with-icon-trailing-spacing);padding-right:var(--mat-menu-item-with-icon-leading-spacing)}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color)}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color)}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:\"\";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing);height:var(--mat-menu-item-icon-size);width:var(--mat-menu-item-icon-size)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color)}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color)}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1)}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}"] }]
638
644
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
639
645
  type: Inject,
640
646
  args: [MAT_MENU_DEFAULT_OPTIONS]
@@ -1144,10 +1150,10 @@ class MatMenuTrigger {
1144
1150
  }
1145
1151
  return this._portal;
1146
1152
  }
1147
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: MatMenuTrigger, deps: [{ token: i1$1.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: MAT_MENU_SCROLL_STRATEGY }, { token: MAT_MENU_PANEL, optional: true }, { token: MatMenuItem, optional: true, self: true }, { token: i3.Directionality, optional: true }, { token: i1.FocusMonitor }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
1148
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.1", type: MatMenuTrigger, isStandalone: true, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: { _deprecatedMatMenuTriggerFor: ["mat-menu-trigger-for", "_deprecatedMatMenuTriggerFor"], menu: ["matMenuTriggerFor", "menu"], menuData: ["matMenuTriggerData", "menuData"], restoreFocus: ["matMenuTriggerRestoreFocus", "restoreFocus"] }, outputs: { menuOpened: "menuOpened", onMenuOpen: "onMenuOpen", menuClosed: "menuClosed", onMenuClose: "onMenuClose" }, host: { listeners: { "click": "_handleClick($event)", "mousedown": "_handleMousedown($event)", "keydown": "_handleKeydown($event)" }, properties: { "attr.aria-haspopup": "menu ? \"menu\" : null", "attr.aria-expanded": "menuOpen", "attr.aria-controls": "menuOpen ? menu.panelId : null" }, classAttribute: "mat-mdc-menu-trigger" }, exportAs: ["matMenuTrigger"], ngImport: i0 }); }
1153
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.5", ngImport: i0, type: MatMenuTrigger, deps: [{ token: i1$1.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: MAT_MENU_SCROLL_STRATEGY }, { token: MAT_MENU_PANEL, optional: true }, { token: MatMenuItem, optional: true, self: true }, { token: i3.Directionality, optional: true }, { token: i1.FocusMonitor }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
1154
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.5", type: MatMenuTrigger, isStandalone: true, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: { _deprecatedMatMenuTriggerFor: ["mat-menu-trigger-for", "_deprecatedMatMenuTriggerFor"], menu: ["matMenuTriggerFor", "menu"], menuData: ["matMenuTriggerData", "menuData"], restoreFocus: ["matMenuTriggerRestoreFocus", "restoreFocus"] }, outputs: { menuOpened: "menuOpened", onMenuOpen: "onMenuOpen", menuClosed: "menuClosed", onMenuClose: "onMenuClose" }, host: { listeners: { "click": "_handleClick($event)", "mousedown": "_handleMousedown($event)", "keydown": "_handleKeydown($event)" }, properties: { "attr.aria-haspopup": "menu ? \"menu\" : null", "attr.aria-expanded": "menuOpen", "attr.aria-controls": "menuOpen ? menu.panelId : null" }, classAttribute: "mat-mdc-menu-trigger" }, exportAs: ["matMenuTrigger"], ngImport: i0 }); }
1149
1155
  }
1150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: MatMenuTrigger, decorators: [{
1156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.5", ngImport: i0, type: MatMenuTrigger, decorators: [{
1151
1157
  type: Directive,
1152
1158
  args: [{
1153
1159
  selector: `[mat-menu-trigger-for], [matMenuTriggerFor]`,
@@ -1200,8 +1206,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1",
1200
1206
  }] } });
1201
1207
 
1202
1208
  class MatMenuModule {
1203
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: MatMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1204
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0-next.1", ngImport: i0, type: MatMenuModule, imports: [CommonModule,
1209
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.5", ngImport: i0, type: MatMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1210
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0-next.5", ngImport: i0, type: MatMenuModule, imports: [CommonModule,
1205
1211
  MatRippleModule,
1206
1212
  MatCommonModule,
1207
1213
  OverlayModule,
@@ -1214,13 +1220,13 @@ class MatMenuModule {
1214
1220
  MatMenuItem,
1215
1221
  MatMenuContent,
1216
1222
  MatMenuTrigger] }); }
1217
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: MatMenuModule, providers: [MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER], imports: [CommonModule,
1223
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0-next.5", ngImport: i0, type: MatMenuModule, providers: [MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER], imports: [CommonModule,
1218
1224
  MatRippleModule,
1219
1225
  MatCommonModule,
1220
1226
  OverlayModule, CdkScrollableModule,
1221
1227
  MatCommonModule] }); }
1222
1228
  }
1223
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: MatMenuModule, decorators: [{
1229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.5", ngImport: i0, type: MatMenuModule, decorators: [{
1224
1230
  type: NgModule,
1225
1231
  args: [{
1226
1232
  imports: [