diff --git a/adev/src/content/aria/_build-info.json b/adev/src/content/aria/_build-info.json
index 9ff852dfcb4..bdba65d5773 100644
--- a/adev/src/content/aria/_build-info.json
+++ b/adev/src/content/aria/_build-info.json
@@ -1,4 +1,4 @@
{
"branchName": "refs/heads/21.0.x",
- "sha": "1d7b4eb287c0e29934b0e002aa68938381f451a9"
+ "sha": "e10738cca18ddd114d98d97c82414c9892c5fac7"
}
\ No newline at end of file
diff --git a/adev/src/content/aria/aria-accordion.json b/adev/src/content/aria/aria-accordion.json
index 5953af9ad15..71675212ee5 100755
--- a/adev/src/content/aria/aria-accordion.json
+++ b/adev/src/content/aria/aria-accordion.json
@@ -9,11 +9,23 @@
"isAbstract": false,
"entryType": "undecorated_class",
"members": [
+ {
+ "name": "id",
+ "type": "any",
+ "memberType": "property",
+ "memberTags": [
+ "readonly"
+ ],
+ "description": "A global unique identifier for the panel.",
+ "jsdocTags": []
+ },
{
"name": "panelId",
"type": "any",
"memberType": "property",
- "memberTags": [],
+ "memberTags": [
+ "readonly"
+ ],
"description": "A local unique identifier for the panel, used to match with its trigger's `panelId`.",
"jsdocTags": []
},
@@ -138,19 +150,19 @@
}
],
"generics": [],
- "description": "Represents the content panel of an accordion item. It is controlled by an\nassociated `AccordionTrigger`.",
+ "description": "The content panel of an accordion item that is conditionally visible.\n\nThis directive is a container for the content that is shown or hidden. It requires\na `panelId` that must match the `panelId` of its corresponding `ngAccordionTrigger`.\nThe content within the panel should be provided using an `ng-template` with the\n`ngAccordionContent` directive so that the content is not rendered on the page until the trigger\nis expanded. It applies `role=\"region\"` for accessibility and uses the `inert` attribute to hide\nits content from assistive technologies when not visible.\n\n```html\n
\n \n
This content is lazily rendered and will be shown when the panel is expanded.
\n \n
\n```",
"jsdocTags": [
{
"name": "developerPreview",
"comment": "21.0"
}
],
- "rawComment": "/**\n * Represents the content panel of an accordion item. It is controlled by an\n * associated `AccordionTrigger`.\n *\n * @developerPreview 21.0\n */",
+ "rawComment": "/**\n * The content panel of an accordion item that is conditionally visible.\n *\n * This directive is a container for the content that is shown or hidden. It requires\n * a `panelId` that must match the `panelId` of its corresponding `ngAccordionTrigger`.\n * The content within the panel should be provided using an `ng-template` with the\n * `ngAccordionContent` directive so that the content is not rendered on the page until the trigger\n * is expanded. It applies `role=\"region\"` for accessibility and uses the `inert` attribute to hide\n * its content from assistive technologies when not visible.\n *\n * ```html\n *
\n * \n *
This content is lazily rendered and will be shown when the panel is expanded.
\n * \n *
\n * ```\n *\n * @developerPreview 21.0\n */",
"implements": [],
"source": {
"filePath": "src/aria/accordion/accordion.ts",
- "startLine": 38,
- "endLine": 100
+ "startLine": 52,
+ "endLine": 113
}
},
{
@@ -158,11 +170,35 @@
"isAbstract": false,
"entryType": "directive",
"members": [
+ {
+ "name": "id",
+ "type": "any",
+ "memberType": "property",
+ "memberTags": [
+ "readonly",
+ "input"
+ ],
+ "description": "A unique identifier for the widget.",
+ "jsdocTags": [],
+ "inputAlias": "id",
+ "isRequiredInput": false
+ },
+ {
+ "name": "element",
+ "type": "any",
+ "memberType": "property",
+ "memberTags": [
+ "readonly"
+ ],
+ "description": "The host native element.",
+ "jsdocTags": []
+ },
{
"name": "panelId",
"type": "any",
"memberType": "property",
"memberTags": [
+ "readonly",
"input"
],
"description": "A local unique identifier for the trigger, used to match with its panel's `panelId`.",
@@ -175,6 +211,7 @@
"type": "any",
"memberType": "property",
"memberTags": [
+ "readonly",
"input"
],
"description": "Whether the trigger is disabled.",
@@ -182,6 +219,21 @@
"inputAlias": "disabled",
"isRequiredInput": false
},
+ {
+ "name": "expanded",
+ "type": "any",
+ "memberType": "property",
+ "memberTags": [
+ "readonly",
+ "input",
+ "output"
+ ],
+ "description": "Whether the corresponding panel is expanded.",
+ "jsdocTags": [],
+ "inputAlias": "expanded",
+ "isRequiredInput": false,
+ "outputAlias": "expandedChange"
+ },
{
"name": "active",
"type": "any",
@@ -192,36 +244,6 @@
"description": "Whether the trigger is active.",
"jsdocTags": []
},
- {
- "name": "expanded",
- "type": "any",
- "memberType": "property",
- "memberTags": [
- "readonly"
- ],
- "description": "Whether the trigger is expanded.",
- "jsdocTags": []
- },
- {
- "name": "hardDisabled",
- "type": "any",
- "memberType": "property",
- "memberTags": [
- "readonly"
- ],
- "description": "Whether this trigger is completely inaccessible.\n\nTODO(ok7sai): Consider move this to UI patterns.",
- "jsdocTags": []
- },
- {
- "name": "accordionPanel",
- "type": "WritableSignal",
- "memberType": "property",
- "memberTags": [
- "readonly"
- ],
- "description": "The accordion panel pattern controlled by this trigger. This is set by AccordionGroup.",
- "jsdocTags": []
- },
{
"name": "expand",
"signatures": [
@@ -323,14 +345,14 @@
}
],
"generics": [],
- "description": "Represents the trigger button for an accordion item. It controls the expansion\nstate of an associated `AccordionPanel`.",
+ "description": "The trigger that toggles the visibility of its associated `ngAccordionPanel`.\n\nThis directive requires a `panelId` that must match the `panelId` of the `ngAccordionPanel` it\ncontrols. When clicked, it will expand or collapse the panel. It also handles keyboard\ninteractions for navigation within the `ngAccordionGroup`. It applies `role=\"button\"` and manages\n`aria-expanded`, `aria-controls`, and `aria-disabled` attributes for accessibility.\nThe `disabled` input can be used to disable the trigger.\n\n```html\n\n```",
"jsdocTags": [
{
"name": "developerPreview",
"comment": "21.0"
}
],
- "rawComment": "/**\n * Represents the trigger button for an accordion item. It controls the expansion\n * state of an associated `AccordionPanel`.\n *\n * @developerPreview 21.0\n */",
+ "rawComment": "/**\n * The trigger that toggles the visibility of its associated `ngAccordionPanel`.\n *\n * This directive requires a `panelId` that must match the `panelId` of the `ngAccordionPanel` it\n * controls. When clicked, it will expand or collapse the panel. It also handles keyboard\n * interactions for navigation within the `ngAccordionGroup`. It applies `role=\"button\"` and manages\n * `aria-expanded`, `aria-controls`, and `aria-disabled` attributes for accessibility.\n * The `disabled` input can be used to disable the trigger.\n *\n * ```html\n * \n * ```\n *\n * @developerPreview 21.0\n */",
"implements": [],
"isStandalone": true,
"selector": "[ngAccordionTrigger]",
@@ -339,8 +361,8 @@
],
"source": {
"filePath": "src/aria/accordion/accordion.ts",
- "startLine": 108,
- "endLine": 182
+ "startLine": 132,
+ "endLine": 195
}
},
{
@@ -348,6 +370,16 @@
"isAbstract": false,
"entryType": "directive",
"members": [
+ {
+ "name": "element",
+ "type": "any",
+ "memberType": "property",
+ "memberTags": [
+ "readonly"
+ ],
+ "description": "The host native element.",
+ "jsdocTags": []
+ },
{
"name": "textDirection",
"type": "any",
@@ -363,6 +395,7 @@
"type": "any",
"memberType": "property",
"memberTags": [
+ "readonly",
"input"
],
"description": "Whether the entire accordion group is disabled.",
@@ -375,6 +408,7 @@
"type": "any",
"memberType": "property",
"memberTags": [
+ "readonly",
"input"
],
"description": "Whether multiple accordion items can be expanded simultaneously.",
@@ -382,28 +416,15 @@
"inputAlias": "multiExpandable",
"isRequiredInput": false
},
- {
- "name": "expandedPanels",
- "type": "any",
- "memberType": "property",
- "memberTags": [
- "input",
- "output"
- ],
- "description": "The ids of the current expanded accordion panels.",
- "jsdocTags": [],
- "inputAlias": "expandedPanels",
- "isRequiredInput": false,
- "outputAlias": "expandedPanelsChange"
- },
{
"name": "softDisabled",
"type": "any",
"memberType": "property",
"memberTags": [
+ "readonly",
"input"
],
- "description": "Whether to allow disabled items to receive focus.",
+ "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": [],
"inputAlias": "softDisabled",
"isRequiredInput": false
@@ -413,6 +434,7 @@
"type": "any",
"memberType": "property",
"memberTags": [
+ "readonly",
"input"
],
"description": "Whether keyboard navigation should wrap around from the last item to the first, and vice-versa.",
@@ -488,14 +510,14 @@
}
],
"generics": [],
- "description": "Container for a group of accordion items. It manages the overall state and\ninteractions of the accordion, such as keyboard navigation and expansion mode.",
+ "description": "A container for a group of accordion items. It manages the overall state and\ninteractions of the accordion, such as keyboard navigation and expansion mode.\n\nThe `ngAccordionGroup` serves as the root of a group of accordion triggers and panels,\ncoordinating the behavior of the `ngAccordionTrigger` and `ngAccordionPanel` elements within it.\nIt supports both single and multiple expansion modes.\n\n```html\n
\n
\n
\n \n
\n
\n \n
Content for Item 1.
\n \n
\n
\n
\n
\n \n
\n
\n \n
Content for Item 2.
\n \n
\n
\n
\n```",
"jsdocTags": [
{
"name": "developerPreview",
"comment": "21.0"
}
],
- "rawComment": "/**\n * Container for a group of accordion items. It manages the overall state and\n * interactions of the accordion, such as keyboard navigation and expansion mode.\n *\n * @developerPreview 21.0\n */",
+ "rawComment": "/**\n * A container for a group of accordion items. It manages the overall state and\n * interactions of the accordion, such as keyboard navigation and expansion mode.\n *\n * The `ngAccordionGroup` serves as the root of a group of accordion triggers and panels,\n * coordinating the behavior of the `ngAccordionTrigger` and `ngAccordionPanel` elements within it.\n * It supports both single and multiple expansion modes.\n *\n * ```html\n *
\n *
\n *
\n * \n *
\n *
\n * \n *
Content for Item 1.
\n * \n *
\n *
\n *
\n *
\n * \n *
\n *
\n * \n *
Content for Item 2.
\n * \n *
\n *
\n *
\n * ```\n *\n * @developerPreview 21.0\n */",
"implements": [],
"isStandalone": true,
"selector": "[ngAccordionGroup]",
@@ -504,8 +526,8 @@
],
"source": {
"filePath": "src/aria/accordion/accordion.ts",
- "startLine": 190,
- "endLine": 263
+ "startLine": 232,
+ "endLine": 326
}
},
{
@@ -514,19 +536,19 @@
"entryType": "undecorated_class",
"members": [],
"generics": [],
- "description": "A structural directive that marks the `ng-template` to be used as the content\nfor a `AccordionPanel`. This content can be lazily loaded.",
+ "description": "A structural directive that provides a mechanism for lazily rendering the content for an\n`ngAccordionPanel`.\n\nThis directive should be applied to an `ng-template` inside an `ngAccordionPanel`.\nIt allows the content of the panel to be lazily rendered, improving performance\nby only creating the content when the panel is first expanded.\n\n```html\n
\n \n
This is the content that will be displayed inside the panel.
\n \n
\n```",
"jsdocTags": [
{
"name": "developerPreview",
"comment": "21.0"
}
],
- "rawComment": "/**\n * A structural directive that marks the `ng-template` to be used as the content\n * for a `AccordionPanel`. This content can be lazily loaded.\n *\n * @developerPreview 21.0\n */",
+ "rawComment": "/**\n * A structural directive that provides a mechanism for lazily rendering the content for an\n * `ngAccordionPanel`.\n *\n * This directive should be applied to an `ng-template` inside an `ngAccordionPanel`.\n * It allows the content of the panel to be lazily rendered, improving performance\n * by only creating the content when the panel is first expanded.\n *\n * ```html\n *
\n * \n *
This is the content that will be displayed inside the panel.
\n * \n *
\n * ```\n *\n * @developerPreview 21.0\n */",
"implements": [],
"source": {
"filePath": "src/aria/accordion/accordion.ts",
- "startLine": 271,
- "endLine": 275
+ "startLine": 346,
+ "endLine": 350
}
}
],
@@ -623,6 +645,10 @@
"AccordionPanel",
"@angular/aria/accordion"
],
+ [
+ "AccordionPanel.id",
+ "@angular/aria/accordion"
+ ],
[
"AccordionPanel.panelId",
"@angular/aria/accordion"
@@ -651,6 +677,14 @@
"AccordionTrigger",
"@angular/aria/accordion"
],
+ [
+ "AccordionTrigger.id",
+ "@angular/aria/accordion"
+ ],
+ [
+ "AccordionTrigger.element",
+ "@angular/aria/accordion"
+ ],
[
"AccordionTrigger.panelId",
"@angular/aria/accordion"
@@ -659,20 +693,12 @@
"AccordionTrigger.disabled",
"@angular/aria/accordion"
],
- [
- "AccordionTrigger.active",
- "@angular/aria/accordion"
- ],
[
"AccordionTrigger.expanded",
"@angular/aria/accordion"
],
[
- "AccordionTrigger.hardDisabled",
- "@angular/aria/accordion"
- ],
- [
- "AccordionTrigger.accordionPanel",
+ "AccordionTrigger.active",
"@angular/aria/accordion"
],
[
@@ -691,6 +717,10 @@
"AccordionGroup",
"@angular/aria/accordion"
],
+ [
+ "AccordionGroup.element",
+ "@angular/aria/accordion"
+ ],
[
"AccordionGroup.textDirection",
"@angular/aria/accordion"
@@ -703,10 +733,6 @@
"AccordionGroup.multiExpandable",
"@angular/aria/accordion"
],
- [
- "AccordionGroup.expandedPanels",
- "@angular/aria/accordion"
- ],
[
"AccordionGroup.softDisabled",
"@angular/aria/accordion"
diff --git a/adev/src/content/aria/aria-combobox.json b/adev/src/content/aria/aria-combobox.json
index 9268858f46d..2089cf8945b 100755
--- a/adev/src/content/aria/aria-combobox.json
+++ b/adev/src/content/aria/aria-combobox.json
@@ -34,7 +34,7 @@
"type": "any",
"memberType": "property",
"memberTags": [],
- "description": "The filter mode for the combobox.",
+ "description": "The filter mode for the combobox.\n- `manual`: The consumer is responsible for filtering the options.\n- `auto-select`: The combobox automatically selects the first matching option.\n- `highlight`: The combobox highlights matching text in the options without changing selection.",
"jsdocTags": []
},
{
@@ -84,7 +84,7 @@
"memberTags": [
"readonly"
],
- "description": "Whether the combobox popup is always expanded.",
+ "description": "Whether the combobox popup should always be expanded, regardless of user interaction.",
"jsdocTags": []
},
{
@@ -235,19 +235,23 @@
"name": "V"
}
],
- "description": "",
+ "description": "The container element that wraps a combobox input and popup, and orchestrates its behavior.\n\nThe `ngCombobox` directive is the main entry point for creating a combobox and customizing its\nbehavior. It coordinates the interactions between the `ngComboboxInput` and the popup, which\nis defined by a `ng-template` with the `ngComboboxPopupContainer` directive. If using the\n`CdkOverlay`, the `cdkConnectedOverlay` directive takes the place of `ngComboboxPopupContainer`.\n\n```html\n
\n```"
+ },
{
"name": "developerPreview",
"comment": "21.0"
}
],
- "rawComment": "/**\n * @developerPreview 21.0\n */",
+ "rawComment": "/**\n * The container element that wraps a combobox input and popup, and orchestrates its behavior.\n *\n * The `ngCombobox` directive is the main entry point for creating a combobox and customizing its\n * behavior. It coordinates the interactions between the `ngComboboxInput` and the popup, which\n * is defined by a `ng-template` with the `ngComboboxPopupContainer` directive. If using the\n * `CdkOverlay`, the `cdkConnectedOverlay` directive takes the place of `ngComboboxPopupContainer`.\n *\n * ```html\n *
\n * \n *\n * \n *
\n * @for (option of filteredOptions(); track option) {\n *
\n * {{option}}\n *
\n * }\n *
\n * \n *
\n * ```\n *\n * @developerPreview 21.0\n */",
"implements": [],
"source": {
"filePath": "src/aria/combobox/combobox.ts",
- "startLine": 37,
- "endLine": 145
+ "startLine": 64,
+ "endLine": 177
}
},
{
@@ -281,14 +285,14 @@
}
],
"generics": [],
- "description": "",
+ "description": "An input that is part of a combobox. It is responsible for displaying the\ncurrent value and handling user input for filtering and selection.\n\nThis directive should be applied to an `` element within an `ngCombobox`\ncontainer. It automatically handles keyboard interactions, such as opening the\npopup and navigating through the options.\n\n```html\n\n```",
"jsdocTags": [
{
"name": "developerPreview",
"comment": "21.0"
}
],
- "rawComment": "/**\n * @developerPreview 21.0\n */",
+ "rawComment": "/**\n * An input that is part of a combobox. It is responsible for displaying the\n * current value and handling user input for filtering and selection.\n *\n * This directive should be applied to an `` element within an `ngCombobox`\n * container. It automatically handles keyboard interactions, such as opening the\n * popup and navigating through the options.\n *\n * ```html\n * \n * ```\n *\n * @developerPreview 21.0\n */",
"implements": [],
"isStandalone": true,
"selector": "input[ngComboboxInput]",
@@ -297,8 +301,8 @@
],
"source": {
"filePath": "src/aria/combobox/combobox.ts",
- "startLine": 150,
- "endLine": 193
+ "startLine": 197,
+ "endLine": 240
}
},
{
@@ -307,19 +311,19 @@
"entryType": "undecorated_class",
"members": [],
"generics": [],
- "description": "",
+ "description": "A structural directive that marks the `ng-template` to be used as the popup\nfor a combobox. This content is conditionally rendered.\n\nThe content of the popup can be a `ngListbox`, `ngTree`, or `role=\"dialog\"`, allowing for\nflexible and complex combobox implementations. The consumer is responsible for\nimplementing the filtering logic based on the `ngComboboxInput`'s value.\n\n```html\n\n
\n \n
\n\n```\n\nWhen using CdkOverlay, this directive can be replaced by `cdkConnectedOverlay`.\n\n```html\n\n
\n \n
\n\n```",
"jsdocTags": [
{
"name": "developerPreview",
"comment": "21.0"
}
],
- "rawComment": "/**\n * @developerPreview 21.0\n */",
+ "rawComment": "/**\n * A structural directive that marks the `ng-template` to be used as the popup\n * for a combobox. This content is conditionally rendered.\n *\n * The content of the popup can be a `ngListbox`, `ngTree`, or `role=\"dialog\"`, allowing for\n * flexible and complex combobox implementations. The consumer is responsible for\n * implementing the filtering logic based on the `ngComboboxInput`'s value.\n *\n * ```html\n * \n *
\n * \n *
\n * \n * ```\n *\n * When using CdkOverlay, this directive can be replaced by `cdkConnectedOverlay`.\n *\n * ```html\n * \n *
\n * \n *
\n * \n * ```\n *\n * @developerPreview 21.0\n */",
"implements": [],
"source": {
"filePath": "src/aria/combobox/combobox.ts",
- "startLine": 198,
- "endLine": 203
+ "startLine": 272,
+ "endLine": 277
}
},
{
@@ -344,7 +348,7 @@
"memberTags": [
"readonly"
],
- "description": "The controls the popup exposes to the combobox.",
+ "description": "The popup controls exposed to the combobox.",
"jsdocTags": []
}
],
@@ -353,14 +357,14 @@
"name": "V"
}
],
- "description": "",
+ "description": "Identifies an element as a popup for an `ngCombobox`.\n\nThis directive acts as a bridge, allowing the `ngCombobox` to discover and interact\nwith the underlying control (e.g., `ngListbox`, `ngTree`, or `ngComboboxDialog`) that\nmanages the options. It's primarily used as a host directive and is responsible for\nexposing the popup's control pattern to the parent combobox.",
"jsdocTags": [
{
"name": "developerPreview",
"comment": "21.0"
}
],
- "rawComment": "/**\n * @developerPreview 21.0\n */",
+ "rawComment": "/**\n * Identifies an element as a popup for an `ngCombobox`.\n *\n * This directive acts as a bridge, allowing the `ngCombobox` to discover and interact\n * with the underlying control (e.g., `ngListbox`, `ngTree`, or `ngComboboxDialog`) that\n * manages the options. It's primarily used as a host directive and is responsible for\n * exposing the popup's control pattern to the parent combobox.\n *\n * @developerPreview 21.0\n */",
"implements": [],
"isStandalone": true,
"selector": "[ngComboboxPopup]",
@@ -369,8 +373,8 @@
],
"source": {
"filePath": "src/aria/combobox/combobox.ts",
- "startLine": 208,
- "endLine": 223
+ "startLine": 289,
+ "endLine": 304
}
},
{
@@ -433,14 +437,14 @@
}
],
"generics": [],
- "description": "",
+ "description": "Integrates a native `