docs: update cross-repo adev docs

Updated Angular adev cross repo docs files.
This commit is contained in:
Angular Robot 2026-05-07 22:40:55 +00:00 committed by Matthew Beck (Berry)
parent 932a163cb6
commit 28e7bfaf77
9 changed files with 1239 additions and 652 deletions

View file

@ -1,4 +1,4 @@
{
"branchName": "refs/heads/main",
"sha": "d6e798ec341c4951dcbbeeea2d8a5f00d3147cbf"
"sha": "16b1a95b15f329bbd575acb64d874d77ba19bba5"
}

File diff suppressed because it is too large Load diff

View file

@ -31,6 +31,72 @@
"jsdocTags": [],
"inputAlias": "rowIndex",
"isRequiredInput": false
},
{
"name": "ngOnInit",
"signatures": [
{
"name": "ngOnInit",
"entryType": "function",
"description": "",
"generics": [],
"isNewType": false,
"jsdocTags": [],
"params": [],
"rawComment": "",
"returnType": "void"
}
],
"implementation": {
"params": [],
"isNewType": false,
"returnType": "void",
"generics": [],
"name": "ngOnInit",
"description": "",
"entryType": "function",
"jsdocTags": [],
"rawComment": ""
},
"entryType": "function",
"description": "",
"jsdocTags": [],
"rawComment": "",
"memberType": "method",
"memberTags": []
},
{
"name": "ngOnDestroy",
"signatures": [
{
"name": "ngOnDestroy",
"entryType": "function",
"description": "",
"generics": [],
"isNewType": false,
"jsdocTags": [],
"params": [],
"rawComment": "",
"returnType": "void"
}
],
"implementation": {
"params": [],
"isNewType": false,
"returnType": "void",
"generics": [],
"name": "ngOnDestroy",
"description": "",
"entryType": "function",
"jsdocTags": [],
"rawComment": ""
},
"entryType": "function",
"description": "",
"jsdocTags": [],
"rawComment": "",
"memberType": "method",
"memberTags": []
}
],
"generics": [],
@ -46,7 +112,10 @@
}
],
"rawComment": "/**\n * Represents a row within a grid. It is a container for `ngGridCell` directives.\n *\n * ```html\n * <tr ngGridRow>\n * <!-- ... cells ... -->\n * </tr>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Grid](guide/aria/grid)\n */",
"implements": [],
"implements": [
"OnInit",
"OnDestroy"
],
"isStandalone": true,
"selector": "[ngGridRow]",
"exportAs": [
@ -57,8 +126,8 @@
],
"source": {
"filePath": "/src/aria/grid/grid-row.ts",
"startLine": 35,
"endLine": 74
"startLine": 37,
"endLine": 91
}
},
{
@ -275,7 +344,7 @@
"source": {
"filePath": "src/aria/grid/grid-cell-widget.ts",
"startLine": 42,
"endLine": 136
"endLine": 127
}
},
{
@ -430,6 +499,39 @@
"description": "The ID of the active descendant in the grid.",
"jsdocTags": []
},
{
"name": "ngOnDestroy",
"signatures": [
{
"name": "ngOnDestroy",
"entryType": "function",
"description": "",
"generics": [],
"isNewType": false,
"jsdocTags": [],
"params": [],
"rawComment": "",
"returnType": "void"
}
],
"implementation": {
"params": [],
"isNewType": false,
"returnType": "void",
"generics": [],
"name": "ngOnDestroy",
"description": "",
"entryType": "function",
"jsdocTags": [],
"rawComment": ""
},
"entryType": "function",
"description": "",
"jsdocTags": [],
"rawComment": "",
"memberType": "method",
"memberTags": []
},
{
"name": "scrollActiveCellIntoView",
"signatures": [
@ -493,7 +595,9 @@
}
],
"rawComment": "/**\n * The container for a grid. It provides keyboard navigation and focus management for the grid's\n * rows and cells. It manages the overall behavior of the grid, including focus\n * wrapping, selection, and disabled states.\n *\n * ```html\n * <table ngGrid [multi]=\"true\" [enableSelection]=\"true\">\n * @for (row of gridData; track row) {\n * <tr ngGridRow>\n * @for (cell of row; track cell) {\n * <td ngGridCell [disabled]=\"cell.disabled\">\n * {{cell.value}}\n * </td>\n * }\n * </tr>\n * }\n * </table>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Grid](guide/aria/grid)\n */",
"implements": [],
"implements": [
"OnDestroy"
],
"isStandalone": true,
"selector": "[ngGrid]",
"exportAs": [
@ -504,8 +608,8 @@
],
"source": {
"filePath": "/src/aria/grid/grid.ts",
"startLine": 47,
"endLine": 172
"startLine": 55,
"endLine": 191
}
},
{
@ -523,18 +627,6 @@
"description": "A reference to the host element.",
"jsdocTags": []
},
{
"name": "activated",
"type": "EventEmitter<KeyboardEvent>",
"memberType": "property",
"memberTags": [
"readonly",
"output"
],
"description": "Emits when the cell is activated via Enter/Space (simple widgets only).",
"jsdocTags": [],
"outputAlias": "activated"
},
{
"name": "active",
"type": "Signal<any>",
@ -686,6 +778,72 @@
"jsdocTags": [],
"inputAlias": "tabindex",
"isRequiredInput": false
},
{
"name": "ngOnInit",
"signatures": [
{
"name": "ngOnInit",
"entryType": "function",
"description": "",
"generics": [],
"isNewType": false,
"jsdocTags": [],
"params": [],
"rawComment": "",
"returnType": "void"
}
],
"implementation": {
"params": [],
"isNewType": false,
"returnType": "void",
"generics": [],
"name": "ngOnInit",
"description": "",
"entryType": "function",
"jsdocTags": [],
"rawComment": ""
},
"entryType": "function",
"description": "",
"jsdocTags": [],
"rawComment": "",
"memberType": "method",
"memberTags": []
},
{
"name": "ngOnDestroy",
"signatures": [
{
"name": "ngOnDestroy",
"entryType": "function",
"description": "",
"generics": [],
"isNewType": false,
"jsdocTags": [],
"params": [],
"rawComment": "",
"returnType": "void"
}
],
"implementation": {
"params": [],
"isNewType": false,
"returnType": "void",
"generics": [],
"name": "ngOnDestroy",
"description": "",
"entryType": "function",
"jsdocTags": [],
"rawComment": ""
},
"entryType": "function",
"description": "",
"jsdocTags": [],
"rawComment": "",
"memberType": "method",
"memberTags": []
}
],
"generics": [],
@ -701,7 +859,10 @@
}
],
"rawComment": "/**\n * Represents a cell within a grid row. It is the primary focusable element\n * within the grid. It can be disabled and can have its selection state managed\n * through the `selected` input.\n *\n * ```html\n * <td ngGridCell [disabled]=\"isDisabled\" [(selected)]=\"isSelected\">\n * Cell Content\n * </td>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Grid](guide/aria/grid)\n */",
"implements": [],
"implements": [
"OnInit",
"OnDestroy"
],
"isStandalone": true,
"selector": "[ngGridCell]",
"exportAs": [
@ -713,17 +874,17 @@
"source": {
"filePath": "/src/aria/grid/grid-cell.ts",
"startLine": 45,
"endLine": 177
"endLine": 181
}
}
],
"symbols": [
[
"computed",
"afterNextRender",
"@angular/core"
],
[
"contentChildren",
"computed",
"@angular/core"
],
[
@ -742,6 +903,14 @@
"input",
"@angular/core"
],
[
"OnDestroy",
"@angular/core"
],
[
"OnInit",
"@angular/core"
],
[
"Signal",
"@angular/core"
@ -770,18 +939,10 @@
"contentChild",
"@angular/core"
],
[
"EventEmitter",
"@angular/core"
],
[
"model",
"@angular/core"
],
[
"Output",
"@angular/core"
],
[
"Renderer2",
"@angular/core"
@ -814,6 +975,14 @@
"GridRow.rowIndex",
"@angular/aria/grid"
],
[
"GridRow.ngOnInit",
"@angular/aria/grid"
],
[
"GridRow.ngOnDestroy",
"@angular/aria/grid"
],
[
"GridCellWidget",
"@angular/aria/grid"
@ -918,6 +1087,10 @@
"Grid.activeDescendant",
"@angular/aria/grid"
],
[
"Grid.ngOnDestroy",
"@angular/aria/grid"
],
[
"Grid.scrollActiveCellIntoView",
"@angular/aria/grid"
@ -930,10 +1103,6 @@
"GridCell.element",
"@angular/aria/grid"
],
[
"GridCell.activated",
"@angular/aria/grid"
],
[
"GridCell.active",
"@angular/aria/grid"
@ -981,6 +1150,14 @@
[
"GridCell.tabindex",
"@angular/aria/grid"
],
[
"GridCell.ngOnInit",
"@angular/aria/grid"
],
[
"GridCell.ngOnDestroy",
"@angular/aria/grid"
]
]
}

View file

@ -208,17 +208,20 @@
{
"name": "Listbox",
"isAbstract": false,
"entryType": "undecorated_class",
"entryType": "directive",
"members": [
{
"name": "id",
"type": "InputSignal<any>",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "A unique identifier for the listbox.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "id",
"isRequiredInput": false
},
{
"name": "element",
@ -246,110 +249,145 @@
"type": "InputSignal<\"vertical\" | \"horizontal\">",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "Whether the list is vertically or horizontally oriented.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "orientation",
"isRequiredInput": false
},
{
"name": "multi",
"type": "InputSignalWithTransform<boolean, unknown>",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "Whether multiple items in the list can be selected at once.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "multi",
"isRequiredInput": false
},
{
"name": "wrap",
"type": "InputSignalWithTransform<boolean, unknown>",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "Whether focus should wrap when navigating.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "wrap",
"isRequiredInput": false
},
{
"name": "softDisabled",
"type": "InputSignalWithTransform<boolean, unknown>",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "Whether to allow disabled items to receive focus. When `true`, disabled items are\nfocusable but not interactive. When `false`, disabled items are skipped during navigation.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "softDisabled",
"isRequiredInput": false
},
{
"name": "focusMode",
"type": "InputSignal<\"roving\" | \"activedescendant\">",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "The focus strategy used by the list.\n- `roving`: Focus is moved to the active item using `tabindex`.\n- `activedescendant`: Focus remains on the listbox container, and `aria-activedescendant` is used to indicate the active item.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "focusMode",
"isRequiredInput": false
},
{
"name": "selectionMode",
"type": "InputSignal<\"follow\" | \"explicit\">",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "The selection strategy used by the list.\n- `follow`: The focused item is automatically selected.\n- `explicit`: Items are selected explicitly by the user (e.g., via click or spacebar).",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "selectionMode",
"isRequiredInput": false
},
{
"name": "typeaheadDelay",
"type": "InputSignal<number>",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "The amount of time before the typeahead search is reset.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "typeaheadDelay",
"isRequiredInput": false
},
{
"name": "disabled",
"type": "InputSignalWithTransform<boolean, unknown>",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "Whether the listbox is disabled.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "disabled",
"isRequiredInput": false
},
{
"name": "readonly",
"type": "InputSignalWithTransform<boolean, unknown>",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "Whether the listbox is readonly.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "readonly",
"isRequiredInput": false
},
{
"name": "tabIndex",
"type": "InputSignal<undefined>",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "The tabindex of the listbox.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "tabindex",
"isRequiredInput": false
},
{
"name": "value",
"type": "ModelSignal<V[]>",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input",
"output"
],
"description": "The values of the currently selected items.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "value",
"isRequiredInput": false,
"outputAlias": "valueChange"
},
{
"name": "activeDescendant",
@ -509,10 +547,18 @@
"implements": [
"OnDestroy"
],
"isStandalone": true,
"selector": "[ngListbox]",
"exportAs": [
"ngListbox"
],
"aliases": [
"ngListbox"
],
"source": {
"filePath": "/src/aria/listbox/listbox.ts",
"startLine": 60,
"endLine": 236
"startLine": 54,
"endLine": 218
}
}
],

View file

@ -256,7 +256,7 @@
"readonly",
"input"
],
"description": "The value of the menu item, used as the default aria-label",
"description": "The value of the menu item.",
"jsdocTags": [],
"inputAlias": "value",
"isRequiredInput": true
@ -342,6 +342,72 @@
"description": "Whether the menu item has a popup.",
"jsdocTags": []
},
{
"name": "ngOnInit",
"signatures": [
{
"name": "ngOnInit",
"entryType": "function",
"description": "",
"generics": [],
"isNewType": false,
"jsdocTags": [],
"params": [],
"rawComment": "",
"returnType": "void"
}
],
"implementation": {
"params": [],
"isNewType": false,
"returnType": "void",
"generics": [],
"name": "ngOnInit",
"description": "",
"entryType": "function",
"jsdocTags": [],
"rawComment": ""
},
"entryType": "function",
"description": "",
"jsdocTags": [],
"rawComment": "",
"memberType": "method",
"memberTags": []
},
{
"name": "ngOnDestroy",
"signatures": [
{
"name": "ngOnDestroy",
"entryType": "function",
"description": "",
"generics": [],
"isNewType": false,
"jsdocTags": [],
"params": [],
"rawComment": "",
"returnType": "void"
}
],
"implementation": {
"params": [],
"isNewType": false,
"returnType": "void",
"generics": [],
"name": "ngOnDestroy",
"description": "",
"entryType": "function",
"jsdocTags": [],
"rawComment": ""
},
"entryType": "function",
"description": "",
"jsdocTags": [],
"rawComment": "",
"memberType": "method",
"memberTags": []
},
{
"name": "open",
"signatures": [
@ -414,7 +480,7 @@
"name": "V"
}
],
"description": "An item in a Menu.\n\n`ngMenuItem` directives can be used in `ngMenu` and `ngMenuBar` to represent a choice\nor action a user can take. They can also act as triggers for sub-menus.\n\n```html\n<div ngMenu (itemSelected)=\"doAction()\">\n <div ngMenuItem >Action Item</div>\n <div ngMenuItem [submenu]=\"anotherMenu\">Submenu Trigger</div>\n</div>\n```",
"description": "An item in a Menu.\n\n`ngMenuItem` directives can be used in `ngMenu` and `ngMenuBar` to represent a choice\nor action a user can take. They can also act as triggers for sub-menus.\n\n```html\n<div ngMenu (itemSelected)=\"doAction()\">\n <div ngMenuItem>Action Item</div>\n <div ngMenuItem [submenu]=\"anotherMenu\">Submenu Trigger</div>\n</div>\n```",
"jsdocTags": [
{
"name": "developerPreview",
@ -429,8 +495,11 @@
"comment": "[MenuBar](guide/aria/menubar)"
}
],
"rawComment": "/**\n * An item in a Menu.\n *\n * `ngMenuItem` directives can be used in `ngMenu` and `ngMenuBar` to represent a choice\n * or action a user can take. They can also act as triggers for sub-menus.\n *\n * ```html\n * <div ngMenu (itemSelected)=\"doAction()\">\n * <div ngMenuItem >Action Item</div>\n * <div ngMenuItem [submenu]=\"anotherMenu\">Submenu Trigger</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */",
"implements": [],
"rawComment": "/**\n * An item in a Menu.\n *\n * `ngMenuItem` directives can be used in `ngMenu` and `ngMenuBar` to represent a choice\n * or action a user can take. They can also act as triggers for sub-menus.\n *\n * ```html\n * <div ngMenu (itemSelected)=\"doAction()\">\n * <div ngMenuItem>Action Item</div>\n * <div ngMenuItem [submenu]=\"anotherMenu\">Submenu Trigger</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */",
"implements": [
"OnInit",
"OnDestroy"
],
"isStandalone": true,
"selector": "[ngMenuItem]",
"exportAs": [
@ -441,8 +510,8 @@
],
"source": {
"filePath": "/src/aria/menu/menu-item.ts",
"startLine": 34,
"endLine": 107
"startLine": 44,
"endLine": 124
}
},
{
@ -549,6 +618,39 @@
"jsdocTags": [],
"outputAlias": "itemSelected"
},
{
"name": "ngOnDestroy",
"signatures": [
{
"name": "ngOnDestroy",
"entryType": "function",
"description": "",
"generics": [],
"isNewType": false,
"jsdocTags": [],
"params": [],
"rawComment": "",
"returnType": "void"
}
],
"implementation": {
"params": [],
"isNewType": false,
"returnType": "void",
"generics": [],
"name": "ngOnDestroy",
"description": "",
"entryType": "function",
"jsdocTags": [],
"rawComment": ""
},
"entryType": "function",
"description": "",
"jsdocTags": [],
"rawComment": "",
"memberType": "method",
"memberTags": []
},
{
"name": "close",
"signatures": [
@ -604,7 +706,9 @@
}
],
"rawComment": "/**\n * A menu bar of menu items.\n *\n * Like the `ngMenu`, a `ngMenuBar` is used to offer a list of menu item choices to users.\n * However, a menubar is used to display a persistent, top-level, always-visible set of\n * menu item choices, typically found at the top of an application window.\n *\n * ```html\n * <div ngMenuBar>\n * <button ngMenuTrigger [menu]=\"fileMenu\">File</button>\n * <button ngMenuTrigger [menu]=\"editMenu\">Edit</button>\n * </div>\n *\n * <div ngMenu #fileMenu=\"ngMenu\">\n * <div ngMenuItem>New</div>\n * <div ngMenuItem>Open</div>\n * </div>\n *\n * <div ngMenu #editMenu=\"ngMenu\">\n * <div ngMenuItem>Cut</div>\n * <div ngMenuItem>Copy</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */",
"implements": [],
"implements": [
"OnDestroy"
],
"isStandalone": true,
"selector": "[ngMenuBar]",
"exportAs": [
@ -615,8 +719,8 @@
],
"source": {
"filePath": "/src/aria/menu/menu-bar.ts",
"startLine": 56,
"endLine": 133
"startLine": 57,
"endLine": 142
}
},
{
@ -734,6 +838,39 @@
"description": "The delay in milliseconds before expanding sub-menus on hover.",
"jsdocTags": []
},
{
"name": "ngOnDestroy",
"signatures": [
{
"name": "ngOnDestroy",
"entryType": "function",
"description": "",
"generics": [],
"isNewType": false,
"jsdocTags": [],
"params": [],
"rawComment": "",
"returnType": "void"
}
],
"implementation": {
"params": [],
"isNewType": false,
"returnType": "void",
"generics": [],
"name": "ngOnDestroy",
"description": "",
"entryType": "function",
"jsdocTags": [],
"rawComment": ""
},
"entryType": "function",
"description": "",
"jsdocTags": [],
"rawComment": "",
"memberType": "method",
"memberTags": []
},
{
"name": "close",
"signatures": [
@ -789,11 +926,13 @@
}
],
"rawComment": "/**\n * A list of menu items.\n *\n * A `ngMenu` is used to offer a list of menu item choices to users. Menus can be nested\n * within other menus to create sub-menus. It works in conjunction with `ngMenuTrigger`\n * and `ngMenuItem` directives.\n *\n * ```html\n * <button ngMenuTrigger [menu]=\"myMenu\">Options</button>\n *\n * <div ngMenu #myMenu=\"ngMenu\">\n * <div ngMenuItem value=\"Star\">Star</div>\n * <div ngMenuItem value=\"Edit\">Edit</div>\n * <div ngMenuItem value=\"More\" [submenu]=\"subMenu\">More</div>\n * </div>\n *\n * <div ngMenu #subMenu=\"ngMenu\">\n * <div ngMenuItem value=\"Sub Item 1\">Sub Item 1</div>\n * <div ngMenuItem value=\"Sub Item 2\">Sub Item 2</div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Menu](guide/aria/menu)\n * @see [MenuBar](guide/aria/menubar)\n */",
"implements": [],
"implements": [
"OnDestroy"
],
"source": {
"filePath": "/src/aria/menu/menu.ts",
"startLine": 58,
"endLine": 197
"startLine": 59,
"endLine": 206
}
}
],
@ -834,16 +973,24 @@
"model",
"@angular/core"
],
[
"OnDestroy",
"@angular/core"
],
[
"OnInit",
"@angular/core"
],
[
"_IdGenerator",
"@angular/cdk/a11y"
],
[
"afterRenderEffect",
"afterNextRender",
"@angular/core"
],
[
"contentChildren",
"afterRenderEffect",
"@angular/core"
],
[
@ -970,6 +1117,14 @@
"MenuItem.hasPopup",
"@angular/aria/menu"
],
[
"MenuItem.ngOnInit",
"@angular/aria/menu"
],
[
"MenuItem.ngOnDestroy",
"@angular/aria/menu"
],
[
"MenuItem.open",
"@angular/aria/menu"
@ -1014,6 +1169,10 @@
"MenuBar.itemSelected",
"@angular/aria/menu"
],
[
"MenuBar.ngOnDestroy",
"@angular/aria/menu"
],
[
"MenuBar.close",
"@angular/aria/menu"
@ -1066,6 +1225,10 @@
"Menu.expansionDelay",
"@angular/aria/menu"
],
[
"Menu.ngOnDestroy",
"@angular/aria/menu"
],
[
"Menu.close",
"@angular/aria/menu"

View file

@ -4,6 +4,80 @@
"moduleName": "@angular/aria/toolbar",
"normalizedModuleName": "angular_aria_toolbar",
"entries": [
{
"name": "ToolbarWidgetGroup",
"isAbstract": false,
"entryType": "directive",
"members": [
{
"name": "element",
"type": "HTMLElement",
"memberType": "property",
"memberTags": [
"readonly"
],
"description": "A reference to the host element.",
"jsdocTags": []
},
{
"name": "disabled",
"type": "InputSignalWithTransform<boolean, unknown>",
"memberType": "property",
"memberTags": [
"readonly",
"input"
],
"description": "Whether the widget group is disabled.",
"jsdocTags": [],
"inputAlias": "disabled",
"isRequiredInput": false
},
{
"name": "multi",
"type": "InputSignalWithTransform<boolean, unknown>",
"memberType": "property",
"memberTags": [
"readonly",
"input"
],
"description": "Whether the group allows multiple widgets to be selected.",
"jsdocTags": [],
"inputAlias": "multi",
"isRequiredInput": false
}
],
"generics": [
{
"name": "V"
}
],
"description": "A directive that groups toolbar widgets, used for more complex widgets like radio groups\nthat have their own internal navigation.",
"jsdocTags": [
{
"name": "developerPreview",
"comment": "21.0"
},
{
"name": "see",
"comment": "[Toolbar](guide/aria/toolbar)"
}
],
"rawComment": "/**\n * A directive that groups toolbar widgets, used for more complex widgets like radio groups\n * that have their own internal navigation.\n *\n * @developerPreview 21.0\n *\n * @see [Toolbar](guide/aria/toolbar)\n */",
"implements": [],
"isStandalone": true,
"selector": "[ngToolbarWidgetGroup]",
"exportAs": [
"ngToolbarWidgetGroup"
],
"aliases": [
"ngToolbarWidgetGroup"
],
"source": {
"filePath": "/src/aria/toolbar/toolbar-widget-group.ts",
"startLine": 31,
"endLine": 67
}
},
{
"name": "Toolbar",
"isAbstract": false,
@ -95,6 +169,39 @@
"inputAlias": "value",
"isRequiredInput": false,
"outputAlias": "valueChange"
},
{
"name": "ngOnDestroy",
"signatures": [
{
"name": "ngOnDestroy",
"entryType": "function",
"description": "",
"generics": [],
"isNewType": false,
"jsdocTags": [],
"params": [],
"rawComment": "",
"returnType": "void"
}
],
"implementation": {
"params": [],
"isNewType": false,
"returnType": "void",
"generics": [],
"name": "ngOnDestroy",
"description": "",
"entryType": "function",
"jsdocTags": [],
"rawComment": ""
},
"entryType": "function",
"description": "",
"jsdocTags": [],
"rawComment": "",
"memberType": "method",
"memberTags": []
}
],
"generics": [
@ -114,7 +221,9 @@
}
],
"rawComment": "/**\n * A toolbar widget container for a group of interactive widgets, such as\n * buttons or radio groups. It provides a single point of reference for keyboard navigation\n * and focus management. It supports various orientations and disabled states.\n *\n * ```html\n * <div ngToolbar orientation=\"horizontal\" [wrap]=\"true\">\n * <button ngToolbarWidget value=\"save\">Save</button>\n * <button ngToolbarWidget value=\"print\">Print</button>\n *\n * <div ngToolbarWidgetGroup [(value)]=\"selectedAlignment\">\n * <button ngToolbarWidget value=\"left\">Left</button>\n * <button ngToolbarWidget value=\"center\">Center</button>\n * <button ngToolbarWidget value=\"right\">Right</button>\n * </div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Toolbar](guide/aria/toolbar)\n */",
"implements": [],
"implements": [
"OnDestroy"
],
"isStandalone": true,
"selector": "[ngToolbar]",
"exportAs": [
@ -125,82 +234,8 @@
],
"source": {
"filePath": "/src/aria/toolbar/toolbar.ts",
"startLine": 46,
"endLine": 130
}
},
{
"name": "ToolbarWidgetGroup",
"isAbstract": false,
"entryType": "directive",
"members": [
{
"name": "element",
"type": "HTMLElement",
"memberType": "property",
"memberTags": [
"readonly"
],
"description": "A reference to the host element.",
"jsdocTags": []
},
{
"name": "disabled",
"type": "InputSignalWithTransform<boolean, unknown>",
"memberType": "property",
"memberTags": [
"readonly",
"input"
],
"description": "Whether the widget group is disabled.",
"jsdocTags": [],
"inputAlias": "disabled",
"isRequiredInput": false
},
{
"name": "multi",
"type": "InputSignalWithTransform<boolean, unknown>",
"memberType": "property",
"memberTags": [
"readonly",
"input"
],
"description": "Whether the group allows multiple widgets to be selected.",
"jsdocTags": [],
"inputAlias": "multi",
"isRequiredInput": false
}
],
"generics": [
{
"name": "V"
}
],
"description": "A directive that groups toolbar widgets, used for more complex widgets like radio groups\nthat have their own internal navigation.",
"jsdocTags": [
{
"name": "developerPreview",
"comment": "21.0"
},
{
"name": "see",
"comment": "[Toolbar](guide/aria/toolbar)"
}
],
"rawComment": "/**\n * A directive that groups toolbar widgets, used for more complex widgets like radio groups\n * that have their own internal navigation.\n *\n * @developerPreview 21.0\n *\n * @see [Toolbar](guide/aria/toolbar)\n */",
"implements": [],
"isStandalone": true,
"selector": "[ngToolbarWidgetGroup]",
"exportAs": [
"ngToolbarWidgetGroup"
],
"aliases": [
"ngToolbarWidgetGroup"
],
"source": {
"filePath": "/src/aria/toolbar/toolbar-widget-group.ts",
"startLine": 31,
"endLine": 67
"startLine": 48,
"endLine": 125
}
},
{
@ -391,10 +426,6 @@
}
],
"symbols": [
[
"afterRenderEffect",
"@angular/core"
],
[
"Directive",
"@angular/core"
@ -420,43 +451,67 @@
"@angular/core"
],
[
"signal",
"contentChildren",
"@angular/core"
],
[
"afterNextRender",
"@angular/core"
],
[
"afterRenderEffect",
"@angular/core"
],
[
"model",
"@angular/core"
],
[
"OnDestroy",
"@angular/core"
],
[
"signal",
"@angular/core"
],
[
"Directionality",
"@angular/cdk/bidi"
],
[
"contentChildren",
"@angular/core"
],
[
"OnInit",
"@angular/core"
],
[
"OnDestroy",
"@angular/core"
],
[
"_IdGenerator",
"@angular/cdk/a11y"
],
[
"ToolbarWidgetGroup",
"@angular/aria/toolbar"
],
[
"Toolbar",
"@angular/aria/toolbar"
],
[
"ToolbarWidget",
"@angular/aria/toolbar"
],
[
"ToolbarWidgetGroup",
"@angular/aria/toolbar"
],
[
"ToolbarWidget",
"ToolbarWidgetGroup.element",
"@angular/aria/toolbar"
],
[
"ToolbarWidgetGroup.disabled",
"@angular/aria/toolbar"
],
[
"ToolbarWidgetGroup.multi",
"@angular/aria/toolbar"
],
[
@ -492,19 +547,7 @@
"@angular/aria/toolbar"
],
[
"ToolbarWidgetGroup",
"@angular/aria/toolbar"
],
[
"ToolbarWidgetGroup.element",
"@angular/aria/toolbar"
],
[
"ToolbarWidgetGroup.disabled",
"@angular/aria/toolbar"
],
[
"ToolbarWidgetGroup.multi",
"Toolbar.ngOnDestroy",
"@angular/aria/toolbar"
],
[

View file

@ -387,14 +387,14 @@
],
"source": {
"filePath": "/src/aria/tree/tree-item.ts",
"startLine": 44,
"endLine": 174
"startLine": 43,
"endLine": 169
}
},
{
"name": "Tree",
"isAbstract": false,
"entryType": "undecorated_class",
"entryType": "directive",
"members": [
{
"name": "element",
@ -411,110 +411,145 @@
"type": "InputSignal<any>",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "A unique identifier for the tree.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "id",
"isRequiredInput": false
},
{
"name": "orientation",
"type": "InputSignal<\"vertical\" | \"horizontal\">",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "Orientation of the tree.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "orientation",
"isRequiredInput": false
},
{
"name": "multi",
"type": "InputSignalWithTransform<boolean, unknown>",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "Whether multi-selection is allowed.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "multi",
"isRequiredInput": false
},
{
"name": "disabled",
"type": "InputSignalWithTransform<boolean, unknown>",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "Whether the tree is disabled.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "disabled",
"isRequiredInput": false
},
{
"name": "selectionMode",
"type": "InputSignal<\"explicit\" | \"follow\">",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "The selection strategy used by the tree.\n- `explicit`: Items are selected explicitly by the user (e.g., via click or spacebar).\n- `follow`: The focused item is automatically selected.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "selectionMode",
"isRequiredInput": false
},
{
"name": "focusMode",
"type": "InputSignal<\"roving\" | \"activedescendant\">",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "The focus strategy used by the tree.\n- `roving`: Focus is moved to the active item using `tabindex`.\n- `activedescendant`: Focus remains on the tree container, and `aria-activedescendant` is used to indicate the active item.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "focusMode",
"isRequiredInput": false
},
{
"name": "wrap",
"type": "InputSignalWithTransform<boolean, unknown>",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "Whether navigation wraps.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "wrap",
"isRequiredInput": false
},
{
"name": "softDisabled",
"type": "InputSignalWithTransform<boolean, unknown>",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "Whether to allow disabled items to receive focus. When `true`, disabled items are\nfocusable but not interactive. When `false`, disabled items are skipped during navigation.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "softDisabled",
"isRequiredInput": false
},
{
"name": "typeaheadDelay",
"type": "InputSignal<number>",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "The delay in seconds before the typeahead search is reset.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "typeaheadDelay",
"isRequiredInput": false
},
{
"name": "tabIndex",
"type": "InputSignal<undefined>",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "The tabindex of the tree.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "tabindex",
"isRequiredInput": false
},
{
"name": "value",
"type": "ModelSignal<V[]>",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input",
"output"
],
"description": "The values of the currently selected items.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "value",
"isRequiredInput": false,
"outputAlias": "valueChange"
},
{
"name": "textDirection",
@ -531,20 +566,26 @@
"type": "InputSignalWithTransform<boolean, unknown>",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "Whether the tree is in navigation mode.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "nav",
"isRequiredInput": false
},
{
"name": "currentType",
"type": "InputSignal<\"page\" | \"step\" | \"location\" | \"date\" | \"time\" | \"true\" | \"false\">",
"memberType": "property",
"memberTags": [
"readonly"
"readonly",
"input"
],
"description": "The `aria-current` type. It can be used in navigation trees to indicate the currently active item.\nSee https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Attributes/aria-current for more details.",
"jsdocTags": []
"jsdocTags": [],
"inputAlias": "currentType",
"isRequiredInput": false
},
{
"name": "activeDescendant",
@ -556,6 +597,39 @@
"description": "The ID of the active descendant in the tree.",
"jsdocTags": []
},
{
"name": "ngOnDestroy",
"signatures": [
{
"name": "ngOnDestroy",
"entryType": "function",
"description": "",
"generics": [],
"isNewType": false,
"jsdocTags": [],
"params": [],
"rawComment": "",
"returnType": "void"
}
],
"implementation": {
"params": [],
"isNewType": false,
"returnType": "void",
"generics": [],
"name": "ngOnDestroy",
"description": "",
"entryType": "function",
"jsdocTags": [],
"rawComment": ""
},
"entryType": "function",
"description": "",
"jsdocTags": [],
"rawComment": "",
"memberType": "method",
"memberTags": []
},
{
"name": "scrollActiveItemIntoView",
"signatures": [
@ -623,11 +697,21 @@
}
],
"rawComment": "/**\n * A container that transforms nested lists into an accessible, ARIA-compliant tree structure.\n * It manages the overall state of the tree, including selection, expansion, and keyboard\n * navigation.\n *\n * ```html\n * <ul ngTree [(value)]=\"selectedItems\" [multi]=\"true\">\n * <ng-template\n * [ngTemplateOutlet]=\"treeNodes\"\n * [ngTemplateOutletContext]=\"{nodes: treeData, parent: tree}\"\n * />\n * </ul>\n *\n * <ng-template #treeNodes let-nodes=\"nodes\" let-parent=\"parent\">\n * @for (node of nodes; track node.name) {\n * <li ngTreeItem [parent]=\"parent\" [value]=\"node.name\" [label]=\"node.name\">\n * {{ node.name }}\n * @if (node.children) {\n * <ul role=\"group\">\n * <ng-template ngTreeItemGroup [ownedBy]=\"treeItem\" #group=\"ngTreeItemGroup\">\n * <ng-template\n * [ngTemplateOutlet]=\"treeNodes\"\n * [ngTemplateOutletContext]=\"{nodes: node.children, parent: group}\"\n * />\n * </ng-template>\n * </ul>\n * }\n * </li>\n * }\n * </ng-template>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tree](guide/aria/tree)\n */",
"implements": [],
"implements": [
"OnDestroy"
],
"isStandalone": true,
"selector": "[ngTree]",
"exportAs": [
"ngTree"
],
"aliases": [
"ngTree"
],
"source": {
"filePath": "/src/aria/tree/tree.ts",
"startLine": 70,
"endLine": 244
"startLine": 65,
"endLine": 210
}
}
],
@ -680,14 +764,14 @@
"Signal",
"@angular/core"
],
[
"afterNextRender",
"@angular/core"
],
[
"_IdGenerator",
"@angular/cdk/a11y"
],
[
"afterNextRender",
"@angular/core"
],
[
"untracked",
"@angular/core"
@ -864,6 +948,10 @@
"Tree.activeDescendant",
"@angular/aria/tree"
],
[
"Tree.ngOnDestroy",
"@angular/aria/tree"
],
[
"Tree.scrollActiveItemIntoView",
"@angular/aria/tree"

View file

@ -1,4 +1,4 @@
{
"branchName": "refs/heads/main",
"sha": "ea8265eb7f44ecb3521004ec6c72dcc85a333e94"
"sha": "62f80d27ea10c10a00194db0bb286ad960281a0d"
}

View file

@ -1009,6 +1009,12 @@
"default": true,
"description": "Creates files at the top level of the project or the given path. If set to false, a new folder with the service's name will be created to contain the files."
},
{
"name": "injectable",
"type": "boolean",
"default": false,
"description": "When true, generates an `@Injectable` instead of `@Service`."
},
{
"name": "name",
"type": "string",