@angular/aria 21.0.2 → 21.0.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 (81) hide show
  1. package/fesm2022/_accordion-chunk.mjs +108 -0
  2. package/fesm2022/_accordion-chunk.mjs.map +1 -0
  3. package/fesm2022/_combobox-chunk.mjs +425 -0
  4. package/fesm2022/_combobox-chunk.mjs.map +1 -0
  5. package/fesm2022/_combobox-listbox-chunk.mjs +240 -0
  6. package/fesm2022/_combobox-listbox-chunk.mjs.map +1 -0
  7. package/fesm2022/_combobox-tree-chunk.mjs +331 -0
  8. package/fesm2022/_combobox-tree-chunk.mjs.map +1 -0
  9. package/fesm2022/_deferred-content-chunk.mjs +124 -0
  10. package/fesm2022/_deferred-content-chunk.mjs.map +1 -0
  11. package/fesm2022/_expansion-chunk.mjs +41 -0
  12. package/fesm2022/_expansion-chunk.mjs.map +1 -0
  13. package/fesm2022/_list-chunk.mjs +287 -0
  14. package/fesm2022/_list-chunk.mjs.map +1 -0
  15. package/fesm2022/_list-navigation-chunk.mjs +116 -0
  16. package/fesm2022/_list-navigation-chunk.mjs.map +1 -0
  17. package/fesm2022/_menu-chunk.mjs +515 -0
  18. package/fesm2022/_menu-chunk.mjs.map +1 -0
  19. package/fesm2022/_pointer-event-manager-chunk.mjs +54 -0
  20. package/fesm2022/_pointer-event-manager-chunk.mjs.map +1 -0
  21. package/fesm2022/_signal-like-chunk.mjs +118 -0
  22. package/fesm2022/_signal-like-chunk.mjs.map +1 -0
  23. package/fesm2022/_tabs-chunk.mjs +159 -0
  24. package/fesm2022/_tabs-chunk.mjs.map +1 -0
  25. package/fesm2022/_toolbar-widget-group-chunk.mjs +148 -0
  26. package/fesm2022/_toolbar-widget-group-chunk.mjs.map +1 -0
  27. package/fesm2022/_widget-chunk.mjs +5 -246
  28. package/fesm2022/_widget-chunk.mjs.map +1 -1
  29. package/fesm2022/accordion.mjs +73 -55
  30. package/fesm2022/accordion.mjs.map +1 -1
  31. package/fesm2022/aria.mjs +1 -1
  32. package/fesm2022/aria.mjs.map +1 -1
  33. package/fesm2022/combobox.mjs +166 -153
  34. package/fesm2022/combobox.mjs.map +1 -1
  35. package/fesm2022/grid.mjs +287 -261
  36. package/fesm2022/grid.mjs.map +1 -1
  37. package/fesm2022/listbox.mjs +211 -197
  38. package/fesm2022/listbox.mjs.map +1 -1
  39. package/fesm2022/menu.mjs +308 -286
  40. package/fesm2022/menu.mjs.map +1 -1
  41. package/fesm2022/private.mjs +15 -2329
  42. package/fesm2022/private.mjs.map +1 -1
  43. package/fesm2022/tabs.mjs +221 -199
  44. package/fesm2022/tabs.mjs.map +1 -1
  45. package/fesm2022/toolbar.mjs +64 -48
  46. package/fesm2022/toolbar.mjs.map +1 -1
  47. package/fesm2022/tree.mjs +54 -44
  48. package/fesm2022/tree.mjs.map +1 -1
  49. package/package.json +2 -2
  50. package/types/_accordion-chunk.d.ts +100 -0
  51. package/types/_combobox-chunk.d.ts +194 -0
  52. package/types/_deferred-content-chunk.d.ts +42 -0
  53. package/types/_expansion-chunk.d.ts +40 -0
  54. package/types/_grid-chunk.d.ts +43 -250
  55. package/types/_keyboard-event-manager-chunk.d.ts +68 -0
  56. package/types/_list-chunk.d.ts +211 -0
  57. package/types/_list-navigation-chunk.d.ts +119 -0
  58. package/types/_listbox-chunk.d.ts +107 -0
  59. package/types/_menu-chunk.d.ts +267 -0
  60. package/types/_pointer-event-manager-chunk.d.ts +34 -0
  61. package/types/_tabs-chunk.d.ts +153 -0
  62. package/types/_toolbar-chunk.d.ts +124 -0
  63. package/types/_tree-chunk.d.ts +185 -0
  64. package/types/accordion.d.ts +65 -54
  65. package/types/aria.d.ts +1 -1
  66. package/types/combobox.d.ts +86 -56
  67. package/types/grid.d.ts +47 -32
  68. package/types/listbox.d.ts +22 -7
  69. package/types/menu.d.ts +135 -117
  70. package/types/private.d.ts +28 -1376
  71. package/types/tabs.d.ts +109 -88
  72. package/types/toolbar.d.ts +77 -66
  73. package/types/tree.d.ts +118 -104
  74. package/_adev_assets/aria-accordion.json +0 -743
  75. package/_adev_assets/aria-combobox.json +0 -603
  76. package/_adev_assets/aria-grid.json +0 -893
  77. package/_adev_assets/aria-listbox.json +0 -540
  78. package/_adev_assets/aria-menu.json +0 -1049
  79. package/_adev_assets/aria-tabs.json +0 -880
  80. package/_adev_assets/aria-toolbar.json +0 -545
  81. package/_adev_assets/aria-tree.json +0 -853
package/types/grid.d.ts CHANGED
@@ -1,7 +1,11 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { Signal, ElementRef } from '@angular/core';
3
3
  import * as _angular_cdk_bidi from '@angular/cdk/bidi';
4
- import { GridPattern, GridRowPattern, GridCellPattern, GridCellWidgetPattern } from './_grid-chunk.js';
4
+ import { GridPattern, GridCellPattern, GridRowPattern, GridCellWidgetPattern } from './_grid-chunk.js';
5
+ import * as _angular_aria_private_public_api from '@angular/aria/private/public-api';
6
+ import './_list-navigation-chunk.js';
7
+ import './_keyboard-event-manager-chunk.js';
8
+ import './_pointer-event-manager-chunk.js';
5
9
 
6
10
  /**
7
11
  * The container for a grid. It provides keyboard navigation and focus management for the grid's
@@ -23,6 +27,8 @@ import { GridPattern, GridRowPattern, GridCellPattern, GridCellWidgetPattern } f
23
27
  * ```
24
28
  *
25
29
  * @developerPreview 21.0
30
+ *
31
+ * @see [Grid](guide/aria/grid)
26
32
  */
27
33
  declare class Grid {
28
34
  /** A reference to the host element. */
@@ -82,37 +88,7 @@ declare class Grid {
82
88
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<Grid, never>;
83
89
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Grid, "[ngGrid]", ["ngGrid"], { "enableSelection": { "alias": "enableSelection"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "softDisabled": { "alias": "softDisabled"; "required": false; "isSignal": true; }; "focusMode": { "alias": "focusMode"; "required": false; "isSignal": true; }; "rowWrap": { "alias": "rowWrap"; "required": false; "isSignal": true; }; "colWrap": { "alias": "colWrap"; "required": false; "isSignal": true; }; "multi": { "alias": "multi"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "enableRangeSelection": { "alias": "enableRangeSelection"; "required": false; "isSignal": true; }; }, {}, ["_rows"], never, true, never>;
84
90
  }
85
- /**
86
- * Represents a row within a grid. It is a container for `ngGridCell` directives.
87
- *
88
- * ```html
89
- * <tr ngGridRow>
90
- * <!-- ... cells ... -->
91
- * </tr>
92
- * ```
93
- *
94
- * @developerPreview 21.0
95
- */
96
- declare class GridRow {
97
- /** A reference to the host element. */
98
- private readonly _elementRef;
99
- /** A reference to the host element. */
100
- readonly element: HTMLElement;
101
- /** The cells that make up this row. */
102
- private readonly _cells;
103
- /** The UI patterns for the cells in this row. */
104
- private readonly _cellPatterns;
105
- /** The parent grid. */
106
- private readonly _grid;
107
- /** The parent grid UI pattern. */
108
- readonly _gridPattern: Signal<GridPattern>;
109
- /** The index of this row within the grid. */
110
- readonly rowIndex: _angular_core.InputSignal<number | undefined>;
111
- /** The UI pattern for the grid row. */
112
- readonly _pattern: GridRowPattern;
113
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridRow, never>;
114
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridRow, "[ngGridRow]", ["ngGridRow"], { "rowIndex": { "alias": "rowIndex"; "required": false; "isSignal": true; }; }, {}, ["_cells"], never, true, never>;
115
- }
91
+
116
92
  /**
117
93
  * Represents a cell within a grid row. It is the primary focusable element
118
94
  * within the grid. It can be disabled and can have its selection state managed
@@ -125,6 +101,8 @@ declare class GridRow {
125
101
  * ```
126
102
  *
127
103
  * @developerPreview 21.0
104
+ *
105
+ * @see [Grid](guide/aria/grid)
128
106
  */
129
107
  declare class GridCell {
130
108
  /** A reference to the host element. */
@@ -178,6 +156,41 @@ declare class GridCell {
178
156
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridCell, never>;
179
157
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridCell, "[ngGridCell]", ["ngGridCell"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "rowSpan": { "alias": "rowSpan"; "required": false; "isSignal": true; }; "colSpan": { "alias": "colSpan"; "required": false; "isSignal": true; }; "rowIndex": { "alias": "rowIndex"; "required": false; "isSignal": true; }; "colIndex": { "alias": "colIndex"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "tabindex": { "alias": "tabindex"; "required": false; "isSignal": true; }; }, { "selected": "selectedChange"; }, ["_widgets"], never, true, never>;
180
158
  }
159
+
160
+ /**
161
+ * Represents a row within a grid. It is a container for `ngGridCell` directives.
162
+ *
163
+ * ```html
164
+ * <tr ngGridRow>
165
+ * <!-- ... cells ... -->
166
+ * </tr>
167
+ * ```
168
+ *
169
+ * @developerPreview 21.0
170
+ *
171
+ * @see [Grid](guide/aria/grid)
172
+ */
173
+ declare class GridRow {
174
+ /** A reference to the host element. */
175
+ private readonly _elementRef;
176
+ /** A reference to the host element. */
177
+ readonly element: HTMLElement;
178
+ /** The cells that make up this row. */
179
+ private readonly _cells;
180
+ /** The UI patterns for the cells in this row. */
181
+ private readonly _cellPatterns;
182
+ /** The parent grid. */
183
+ private readonly _grid;
184
+ /** The parent grid UI pattern. */
185
+ readonly _gridPattern: Signal<_angular_aria_private_public_api.GridPattern>;
186
+ /** The index of this row within the grid. */
187
+ readonly rowIndex: _angular_core.InputSignal<number | undefined>;
188
+ /** The UI pattern for the grid row. */
189
+ readonly _pattern: GridRowPattern;
190
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GridRow, never>;
191
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<GridRow, "[ngGridRow]", ["ngGridRow"], { "rowIndex": { "alias": "rowIndex"; "required": false; "isSignal": true; }; }, {}, ["_cells"], never, true, never>;
192
+ }
193
+
181
194
  /**
182
195
  * Represents an interactive element inside a `GridCell`. It allows for pausing grid navigation to
183
196
  * interact with the widget.
@@ -193,6 +206,8 @@ declare class GridCell {
193
206
  * ```
194
207
  *
195
208
  * @developerPreview 21.0
209
+ *
210
+ * @see [Grid](guide/aria/grid)
196
211
  */
197
212
  declare class GridCellWidget {
198
213
  /** A reference to the host element. */
@@ -1,7 +1,15 @@
1
+ import * as _angular_aria_private_public_api from '@angular/aria/private/public-api';
1
2
  import * as _angular_cdk_bidi from '@angular/cdk/bidi';
2
3
  import * as _angular_core from '@angular/core';
3
- import { ListboxPattern, OptionPattern } from '@angular/aria/private';
4
+ import { ListboxPattern, OptionPattern } from './_listbox-chunk.js';
4
5
  import { ComboboxPopup } from './combobox.js';
6
+ export { Combobox as ɵɵCombobox, ComboboxDialog as ɵɵComboboxDialog, ComboboxInput as ɵɵComboboxInput, ComboboxPopupContainer as ɵɵComboboxPopupContainer } from './combobox.js';
7
+ import './_list-navigation-chunk.js';
8
+ import './_list-chunk.js';
9
+ import './_keyboard-event-manager-chunk.js';
10
+ import './_pointer-event-manager-chunk.js';
11
+ import './_combobox-chunk.js';
12
+ import './_deferred-content-chunk.js';
5
13
 
6
14
  /**
7
15
  * Represents a container used to display a list of items for a user to select from.
@@ -21,6 +29,11 @@ import { ComboboxPopup } from './combobox.js';
21
29
  * ```
22
30
  *
23
31
  * @developerPreview 21.0
32
+ *
33
+ * @see [Listbox](guide/aria/listbox)
34
+ * @see [Autocomplete](guide/aria/autocomplete)
35
+ * @see [Select](guide/aria/select)
36
+ * @see [Multiselect](guide/aria/multiselect)
24
37
  */
25
38
  declare class Listbox<V> {
26
39
  /** A unique identifier for the listbox. */
@@ -31,14 +44,12 @@ declare class Listbox<V> {
31
44
  private readonly _elementRef;
32
45
  /** A reference to the host element. */
33
46
  readonly element: HTMLElement;
34
- /** The directionality (LTR / RTL) context for the application (or a subtree of it). */
35
- private readonly _directionality;
36
47
  /** The Options nested inside of the Listbox. */
37
48
  private readonly _options;
38
49
  /** A signal wrapper for directionality. */
39
50
  protected textDirection: _angular_core.Signal<_angular_cdk_bidi.Direction>;
40
51
  /** The Option UIPatterns of the child Options. */
41
- protected items: _angular_core.Signal<any[]>;
52
+ protected items: _angular_core.Signal<_angular_aria_private_public_api.OptionPattern<any>[]>;
42
53
  /** Whether the list is vertically or horizontally oriented. */
43
54
  orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
44
55
  /** Whether multiple items in the list can be selected at once. */
@@ -82,6 +93,7 @@ declare class Listbox<V> {
82
93
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<Listbox<any>, never>;
83
94
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Listbox<any>, "[ngListbox]", ["ngListbox"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "multi": { "alias": "multi"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "softDisabled": { "alias": "softDisabled"; "required": false; "isSignal": true; }; "focusMode": { "alias": "focusMode"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "typeaheadDelay": { "alias": "typeaheadDelay"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "values": { "alias": "values"; "required": false; "isSignal": true; }; }, { "values": "valuesChange"; }, ["_options"], never, true, [{ directive: typeof ComboboxPopup; inputs: {}; outputs: {}; }]>;
84
95
  }
96
+
85
97
  /**
86
98
  * A selectable option in an `ngListbox`.
87
99
  *
@@ -96,10 +108,13 @@ declare class Listbox<V> {
96
108
  * ```
97
109
  *
98
110
  * @developerPreview 21.0
111
+ *
112
+ * @see [Listbox](guide/aria/listbox)
113
+ * @see [Autocomplete](guide/aria/autocomplete)
114
+ * @see [Select](guide/aria/select)
115
+ * @see [Multiselect](guide/aria/multiselect)
99
116
  */
100
117
  declare class Option<V> {
101
- /** A reference to the host element. */
102
- private readonly _elementRef;
103
118
  /** A reference to the host element. */
104
119
  readonly element: HTMLElement;
105
120
  /** Whether the option is currently active (focused). */
@@ -126,4 +141,4 @@ declare class Option<V> {
126
141
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Option<any>, "[ngOption]", ["ngOption"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
127
142
  }
128
143
 
129
- export { Listbox, Option };
144
+ export { Listbox, Option, ComboboxPopup as ɵɵComboboxPopup };
package/types/menu.d.ts CHANGED
@@ -1,54 +1,125 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { Signal } from '@angular/core';
3
3
  import * as _angular_cdk_bidi from '@angular/cdk/bidi';
4
- import * as i1 from '@angular/aria/private';
5
- import { MenuTriggerPattern, MenuPattern, SignalLike, MenuBarPattern, MenuItemPattern } from '@angular/aria/private';
4
+ import { MenuBarPattern, MenuItemPattern, MenuPattern, MenuTriggerPattern } from './_menu-chunk.js';
5
+ import { DeferredContentAware, DeferredContent } from './_deferred-content-chunk.js';
6
+ import { SignalLike } from './_list-navigation-chunk.js';
7
+ import './_keyboard-event-manager-chunk.js';
8
+ import './_list-chunk.js';
6
9
 
7
10
  /**
8
- * A trigger for a menu.
11
+ * A menu bar of menu items.
9
12
  *
10
- * The `ngMenuTrigger` directive is used to open and close menus. It can be applied to
11
- * any interactive element (e.g., a button) to associate it with a `ngMenu` instance.
12
- * It also supports linking to sub-menus when applied to a `ngMenuItem`.
13
+ * Like the `ngMenu`, a `ngMenuBar` is used to offer a list of menu item choices to users.
14
+ * However, a menubar is used to display a persistent, top-level, always-visible set of
15
+ * menu item choices, typically found at the top of an application window.
13
16
  *
14
17
  * ```html
15
- * <button ngMenuTrigger [menu]="myMenu">Open Menu</button>
18
+ * <div ngMenuBar>
19
+ * <button ngMenuTrigger [menu]="fileMenu">File</button>
20
+ * <button ngMenuTrigger [menu]="editMenu">Edit</button>
21
+ * </div>
16
22
  *
17
- * <div ngMenu #myMenu="ngMenu">
18
- * <div ngMenuItem>Item 1</div>
19
- * <div ngMenuItem>Item 2</div>
23
+ * <div ngMenu #fileMenu="ngMenu">
24
+ * <div ngMenuItem>New</div>
25
+ * <div ngMenuItem>Open</div>
26
+ * </div>
27
+ *
28
+ * <div ngMenu #editMenu="ngMenu">
29
+ * <div ngMenuItem>Cut</div>
30
+ * <div ngMenuItem>Copy</div>
20
31
  * </div>
21
32
  * ```
22
33
  *
23
34
  * @developerPreview 21.0
35
+ *
36
+ * @see [Menu](guide/aria/menu)
37
+ * @see [MenuBar](guide/aria/menubar)
24
38
  */
25
- declare class MenuTrigger<V> {
39
+ declare class MenuBar<V> {
40
+ /** The menu items contained in the menubar. */
41
+ readonly _allItems: _angular_core.Signal<readonly MenuItem<V>[]>;
42
+ readonly _items: SignalLike<MenuItem<V>[]>;
26
43
  /** A reference to the host element. */
27
44
  private readonly _elementRef;
28
45
  /** A reference to the host element. */
29
46
  readonly element: HTMLElement;
47
+ /** Whether the menubar is disabled. */
48
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
49
+ /** Whether the menubar is soft disabled. */
50
+ readonly softDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
30
51
  /** The directionality (LTR / RTL) context for the application (or a subtree of it). */
31
52
  readonly textDirection: _angular_core.WritableSignal<_angular_cdk_bidi.Direction>;
32
- /** The menu associated with the trigger. */
33
- menu: _angular_core.InputSignal<Menu<V> | undefined>;
53
+ /** The values of the currently selected menu items. */
54
+ readonly values: _angular_core.ModelSignal<V[]>;
55
+ /** Whether the menu should wrap its items. */
56
+ readonly wrap: _angular_core.InputSignalWithTransform<boolean, unknown>;
57
+ /** The delay in milliseconds before the typeahead buffer is cleared. */
58
+ readonly typeaheadDelay: _angular_core.InputSignal<number>;
59
+ /** The menu ui pattern instance. */
60
+ readonly _pattern: MenuBarPattern<V>;
61
+ /** The menu items as a writable signal. */
62
+ private readonly _itemPatterns;
63
+ /** A callback function triggered when a menu item is selected. */
64
+ onSelect: _angular_core.OutputEmitterRef<V>;
65
+ constructor();
66
+ /** Closes the menubar. */
67
+ close(): void;
68
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuBar<any>, never>;
69
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuBar<any>, "[ngMenuBar]", ["ngMenuBar"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "softDisabled": { "alias": "softDisabled"; "required": false; "isSignal": true; }; "values": { "alias": "values"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "typeaheadDelay": { "alias": "typeaheadDelay"; "required": false; "isSignal": true; }; }, { "values": "valuesChange"; "onSelect": "onSelect"; }, ["_allItems"], never, true, never>;
70
+ }
71
+
72
+ /**
73
+ * An item in a Menu.
74
+ *
75
+ * `ngMenuItem` directives can be used in `ngMenu` and `ngMenuBar` to represent a choice
76
+ * or action a user can take. They can also act as triggers for sub-menus.
77
+ *
78
+ * ```html
79
+ * <div ngMenuItem (onSelect)="doAction()">Action Item</div>
80
+ *
81
+ * <div ngMenuItem [submenu]="anotherMenu">Submenu Trigger</div>
82
+ * ```
83
+ *
84
+ * @developerPreview 21.0
85
+ *
86
+ * @see [Menu](guide/aria/menu)
87
+ * @see [MenuBar](guide/aria/menubar)
88
+ */
89
+ declare class MenuItem<V> {
90
+ /** A reference to the host element. */
91
+ private readonly _elementRef;
92
+ /** A reference to the host element. */
93
+ readonly element: HTMLElement;
94
+ /** The unique ID of the menu item. */
95
+ readonly id: _angular_core.InputSignal<string>;
96
+ /** The value of the menu item. */
97
+ readonly value: _angular_core.InputSignal<V>;
98
+ /** Whether the menu item is disabled. */
99
+ readonly disabled: _angular_core.InputSignal<boolean>;
100
+ /** The search term associated with the menu item. */
101
+ readonly searchTerm: _angular_core.ModelSignal<string>;
102
+ /** A reference to the parent menu or menubar. */
103
+ readonly parent: Menu<V> | MenuBar<V> | null;
104
+ /** The submenu associated with the menu item. */
105
+ readonly submenu: _angular_core.InputSignal<Menu<V> | undefined>;
106
+ /** Whether the menu item is active. */
107
+ readonly active: _angular_core.Signal<boolean>;
34
108
  /** Whether the menu is expanded. */
35
- readonly expanded: Signal<boolean>;
36
- /** Whether the menu trigger has a popup. */
37
- readonly hasPopup: Signal<boolean>;
38
- /** Whether the menu trigger is disabled. */
39
- readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
40
- /** Whether the menu trigger is soft disabled. */
41
- readonly softDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
42
- /** The menu trigger ui pattern instance. */
43
- _pattern: MenuTriggerPattern<V>;
109
+ readonly expanded: _angular_core.Signal<boolean | null>;
110
+ /** Whether the menu item has a popup. */
111
+ readonly hasPopup: _angular_core.Signal<boolean>;
112
+ /** The menu item ui pattern instance. */
113
+ readonly _pattern: MenuItemPattern<V>;
44
114
  constructor();
45
- /** Opens the menu focusing on the first menu item. */
115
+ /** Opens the submenu focusing on the first menu item. */
46
116
  open(): void;
47
- /** Closes the menu. */
117
+ /** Closes the submenu. */
48
118
  close(): void;
49
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuTrigger<any>, never>;
50
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuTrigger<any>, "button[ngMenuTrigger]", ["ngMenuTrigger"], { "menu": { "alias": "menu"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "softDisabled": { "alias": "softDisabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
119
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuItem<any>, never>;
120
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuItem<any>, "[ngMenuItem]", ["ngMenuItem"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "searchTerm": { "alias": "searchTerm"; "required": false; "isSignal": true; }; "submenu": { "alias": "submenu"; "required": false; "isSignal": true; }; }, { "searchTerm": "searchTermChange"; }, never, never, true, never>;
51
121
  }
122
+
52
123
  /**
53
124
  * A list of menu items.
54
125
  *
@@ -72,6 +143,9 @@ declare class MenuTrigger<V> {
72
143
  * ```
73
144
  *
74
145
  * @developerPreview 21.0
146
+ *
147
+ * @see [Menu](guide/aria/menu)
148
+ * @see [MenuBar](guide/aria/menubar)
75
149
  */
76
150
  declare class Menu<V> {
77
151
  /** The DeferredContentAware host directive. */
@@ -118,117 +192,58 @@ declare class Menu<V> {
118
192
  /** Closes the menu. */
119
193
  close(): void;
120
194
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<Menu<any>, never>;
121
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Menu<any>, "[ngMenu]", ["ngMenu"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "typeaheadDelay": { "alias": "typeaheadDelay"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "expansionDelay": { "alias": "expansionDelay"; "required": false; "isSignal": true; }; }, { "onSelect": "onSelect"; }, ["_allItems"], never, true, [{ directive: typeof i1.DeferredContentAware; inputs: { "preserveContent": "preserveContent"; }; outputs: {}; }]>;
195
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Menu<any>, "[ngMenu]", ["ngMenu"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "typeaheadDelay": { "alias": "typeaheadDelay"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "expansionDelay": { "alias": "expansionDelay"; "required": false; "isSignal": true; }; }, { "onSelect": "onSelect"; }, ["_allItems"], never, true, [{ directive: typeof DeferredContentAware; inputs: { "preserveContent": "preserveContent"; }; outputs: {}; }]>;
122
196
  }
197
+
123
198
  /**
124
- * A menu bar of menu items.
199
+ * A trigger for a menu.
125
200
  *
126
- * Like the `ngMenu`, a `ngMenuBar` is used to offer a list of menu item choices to users.
127
- * However, a menubar is used to display a persistent, top-level, always-visible set of
128
- * menu item choices, typically found at the top of an application window.
201
+ * The `ngMenuTrigger` directive is used to open and close menus. It can be applied to
202
+ * any interactive element (e.g., a button) to associate it with a `ngMenu` instance.
203
+ * It also supports linking to sub-menus when applied to a `ngMenuItem`.
129
204
  *
130
205
  * ```html
131
- * <div ngMenuBar>
132
- * <button ngMenuTrigger [menu]="fileMenu">File</button>
133
- * <button ngMenuTrigger [menu]="editMenu">Edit</button>
134
- * </div>
135
- *
136
- * <div ngMenu #fileMenu="ngMenu">
137
- * <div ngMenuItem>New</div>
138
- * <div ngMenuItem>Open</div>
139
- * </div>
206
+ * <button ngMenuTrigger [menu]="myMenu">Open Menu</button>
140
207
  *
141
- * <div ngMenu #editMenu="ngMenu">
142
- * <div ngMenuItem>Cut</div>
143
- * <div ngMenuItem>Copy</div>
208
+ * <div ngMenu #myMenu="ngMenu">
209
+ * <div ngMenuItem>Item 1</div>
210
+ * <div ngMenuItem>Item 2</div>
144
211
  * </div>
145
212
  * ```
146
213
  *
147
214
  * @developerPreview 21.0
215
+ *
216
+ * @see [Menu](guide/aria/menu)
217
+ * @see [MenuBar](guide/aria/menubar)
148
218
  */
149
- declare class MenuBar<V> {
150
- /** The menu items contained in the menubar. */
151
- readonly _allItems: Signal<readonly MenuItem<V>[]>;
152
- readonly _items: SignalLike<MenuItem<V>[]>;
219
+ declare class MenuTrigger<V> {
153
220
  /** A reference to the host element. */
154
221
  private readonly _elementRef;
155
222
  /** A reference to the host element. */
156
223
  readonly element: HTMLElement;
157
- /** Whether the menubar is disabled. */
158
- readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
159
- /** Whether the menubar is soft disabled. */
160
- readonly softDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
161
224
  /** The directionality (LTR / RTL) context for the application (or a subtree of it). */
162
225
  readonly textDirection: _angular_core.WritableSignal<_angular_cdk_bidi.Direction>;
163
- /** The values of the currently selected menu items. */
164
- readonly values: _angular_core.ModelSignal<V[]>;
165
- /** Whether the menu should wrap its items. */
166
- readonly wrap: _angular_core.InputSignalWithTransform<boolean, unknown>;
167
- /** The delay in milliseconds before the typeahead buffer is cleared. */
168
- readonly typeaheadDelay: _angular_core.InputSignal<number>;
169
- /** The menu ui pattern instance. */
170
- readonly _pattern: MenuBarPattern<V>;
171
- /** The menu items as a writable signal. */
172
- private readonly _itemPatterns;
173
- /** A callback function triggered when a menu item is selected. */
174
- onSelect: _angular_core.OutputEmitterRef<V>;
175
- constructor();
176
- /** Closes the menubar. */
177
- close(): void;
178
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuBar<any>, never>;
179
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuBar<any>, "[ngMenuBar]", ["ngMenuBar"], { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "softDisabled": { "alias": "softDisabled"; "required": false; "isSignal": true; }; "values": { "alias": "values"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "typeaheadDelay": { "alias": "typeaheadDelay"; "required": false; "isSignal": true; }; }, { "values": "valuesChange"; "onSelect": "onSelect"; }, ["_allItems"], never, true, never>;
180
- }
181
- /**
182
- * An item in a Menu.
183
- *
184
- * `ngMenuItem` directives can be used in `ngMenu` and `ngMenuBar` to represent a choice
185
- * or action a user can take. They can also act as triggers for sub-menus.
186
- *
187
- * ```html
188
- * <div ngMenuItem (onSelect)="doAction()">Action Item</div>
189
- *
190
- * <div ngMenuItem [submenu]="anotherMenu">Submenu Trigger</div>
191
- * ```
192
- *
193
- * @developerPreview 21.0
194
- */
195
- declare class MenuItem<V> {
196
- /** A reference to the host element. */
197
- private readonly _elementRef;
198
- /** A reference to the host element. */
199
- readonly element: HTMLElement;
200
- /** The unique ID of the menu item. */
201
- readonly id: _angular_core.InputSignal<string>;
202
- /** The value of the menu item. */
203
- readonly value: _angular_core.InputSignal<V>;
204
- /** Whether the menu item is disabled. */
205
- readonly disabled: _angular_core.InputSignal<boolean>;
206
- /** The search term associated with the menu item. */
207
- readonly searchTerm: _angular_core.ModelSignal<string>;
208
- /** A reference to the parent menu. */
209
- private readonly _menu;
210
- /** A reference to the parent menu bar. */
211
- private readonly _menuBar;
212
- /** A reference to the parent menu or menubar. */
213
- readonly parent: Menu<V> | MenuBar<V> | null;
214
- /** The submenu associated with the menu item. */
215
- readonly submenu: _angular_core.InputSignal<Menu<V> | undefined>;
216
- /** Whether the menu item is active. */
217
- readonly active: Signal<boolean>;
226
+ /** The menu associated with the trigger. */
227
+ menu: _angular_core.InputSignal<Menu<V> | undefined>;
218
228
  /** Whether the menu is expanded. */
219
- readonly expanded: Signal<boolean | null>;
220
- /** Whether the menu item has a popup. */
221
- readonly hasPopup: Signal<boolean>;
222
- /** The menu item ui pattern instance. */
223
- readonly _pattern: MenuItemPattern<V>;
229
+ readonly expanded: _angular_core.Signal<boolean>;
230
+ /** Whether the menu trigger has a popup. */
231
+ readonly hasPopup: _angular_core.Signal<boolean>;
232
+ /** Whether the menu trigger is disabled. */
233
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
234
+ /** Whether the menu trigger is soft disabled. */
235
+ readonly softDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
236
+ /** The menu trigger ui pattern instance. */
237
+ _pattern: MenuTriggerPattern<V>;
224
238
  constructor();
225
- /** Opens the submenu focusing on the first menu item. */
239
+ /** Opens the menu focusing on the first menu item. */
226
240
  open(): void;
227
- /** Closes the submenu. */
241
+ /** Closes the menu. */
228
242
  close(): void;
229
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuItem<any>, never>;
230
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuItem<any>, "[ngMenuItem]", ["ngMenuItem"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "searchTerm": { "alias": "searchTerm"; "required": false; "isSignal": true; }; "submenu": { "alias": "submenu"; "required": false; "isSignal": true; }; }, { "searchTerm": "searchTermChange"; }, never, never, true, never>;
243
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuTrigger<any>, never>;
244
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuTrigger<any>, "button[ngMenuTrigger]", ["ngMenuTrigger"], { "menu": { "alias": "menu"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "softDisabled": { "alias": "softDisabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
231
245
  }
246
+
232
247
  /**
233
248
  * Defers the rendering of the menu content.
234
249
  *
@@ -245,10 +260,13 @@ declare class MenuItem<V> {
245
260
  * ```
246
261
  *
247
262
  * @developerPreview 21.0
263
+ *
264
+ * @see [Menu](guide/aria/menu)
265
+ * @see [MenuBar](guide/aria/menubar)
248
266
  */
249
267
  declare class MenuContent {
250
268
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MenuContent, never>;
251
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuContent, "ng-template[ngMenuContent]", ["ngMenuContent"], {}, {}, never, never, true, [{ directive: typeof i1.DeferredContent; inputs: {}; outputs: {}; }]>;
269
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MenuContent, "ng-template[ngMenuContent]", ["ngMenuContent"], {}, {}, never, never, true, [{ directive: typeof DeferredContent; inputs: {}; outputs: {}; }]>;
252
270
  }
253
271
 
254
- export { Menu, MenuBar, MenuContent, MenuItem, MenuTrigger };
272
+ export { Menu, MenuBar, MenuContent, MenuItem, MenuTrigger, DeferredContent as ɵɵDeferredContent, DeferredContentAware as ɵɵDeferredContentAware };