@angular/aria 22.1.3 → 22.2.0-next.1

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 (44) hide show
  1. package/fesm2022/_accordion-chunk.mjs +2 -3
  2. package/fesm2022/_accordion-chunk.mjs.map +1 -1
  3. package/fesm2022/_deferred-content-chunk.mjs +6 -6
  4. package/fesm2022/_menu-chunk.mjs +4 -5
  5. package/fesm2022/_menu-chunk.mjs.map +1 -1
  6. package/fesm2022/_option-chunk.mjs +2 -4
  7. package/fesm2022/_option-chunk.mjs.map +1 -1
  8. package/fesm2022/_tabs-chunk.mjs +2 -4
  9. package/fesm2022/_tabs-chunk.mjs.map +1 -1
  10. package/fesm2022/_toolbar-widget-group-chunk.mjs +1 -2
  11. package/fesm2022/_toolbar-widget-group-chunk.mjs.map +1 -1
  12. package/fesm2022/_tree-chunk.mjs +2 -4
  13. package/fesm2022/_tree-chunk.mjs.map +1 -1
  14. package/fesm2022/_widget-chunk.mjs +8 -9
  15. package/fesm2022/_widget-chunk.mjs.map +1 -1
  16. package/fesm2022/accordion.mjs +13 -14
  17. package/fesm2022/accordion.mjs.map +1 -1
  18. package/fesm2022/aria.mjs +1 -1
  19. package/fesm2022/aria.mjs.map +1 -1
  20. package/fesm2022/combobox.mjs +10 -10
  21. package/fesm2022/combobox.mjs.map +1 -1
  22. package/fesm2022/grid.mjs +13 -14
  23. package/fesm2022/grid.mjs.map +1 -1
  24. package/fesm2022/listbox.mjs +7 -8
  25. package/fesm2022/listbox.mjs.map +1 -1
  26. package/fesm2022/menu.mjs +16 -17
  27. package/fesm2022/menu.mjs.map +1 -1
  28. package/fesm2022/private.mjs +3 -4
  29. package/fesm2022/private.mjs.map +1 -1
  30. package/fesm2022/tabs.mjs +17 -18
  31. package/fesm2022/tabs.mjs.map +1 -1
  32. package/fesm2022/toolbar.mjs +10 -11
  33. package/fesm2022/toolbar.mjs.map +1 -1
  34. package/fesm2022/tree.mjs +9 -10
  35. package/fesm2022/tree.mjs.map +1 -1
  36. package/package.json +3 -3
  37. package/types/accordion.d.ts +7 -4
  38. package/types/combobox.d.ts +5 -2
  39. package/types/grid.d.ts +11 -4
  40. package/types/listbox.d.ts +6 -4
  41. package/types/menu.d.ts +17 -14
  42. package/types/tabs.d.ts +9 -4
  43. package/types/toolbar.d.ts +7 -4
  44. package/types/tree.d.ts +4 -3
@@ -6,7 +6,6 @@ import { reportViolations, SortedCollection } from './_violations-chunk.mjs';
6
6
  import { AccordionGroupPattern, AccordionTriggerPattern } from './_accordion-chunk.mjs';
7
7
  import { _IdGenerator } from '@angular/cdk/a11y';
8
8
  import '@angular/core/primitives/signals';
9
- import '@angular/cdk/platform';
10
9
  import './_expansion-chunk.mjs';
11
10
  import './_list-navigation-chunk.mjs';
12
11
  import './_click-event-manager-chunk.mjs';
@@ -14,7 +13,7 @@ import './_click-event-manager-chunk.mjs';
14
13
  class AccordionContent {
15
14
  static ɵfac = i0.ɵɵngDeclareFactory({
16
15
  minVersion: "12.0.0",
17
- version: "22.1.2",
16
+ version: "22.2.0-next.1",
18
17
  ngImport: i0,
19
18
  type: AccordionContent,
20
19
  deps: [],
@@ -22,7 +21,7 @@ class AccordionContent {
22
21
  });
23
22
  static ɵdir = i0.ɵɵngDeclareDirective({
24
23
  minVersion: "14.0.0",
25
- version: "22.1.2",
24
+ version: "22.2.0-next.1",
26
25
  type: AccordionContent,
27
26
  isStandalone: true,
28
27
  selector: "ng-template[ngAccordionContent]",
@@ -34,7 +33,7 @@ class AccordionContent {
34
33
  }
35
34
  i0.ɵɵngDeclareClassMetadata({
36
35
  minVersion: "12.0.0",
37
- version: "22.1.2",
36
+ version: "22.2.0-next.1",
38
37
  ngImport: i0,
39
38
  type: AccordionContent,
40
39
  decorators: [{
@@ -92,7 +91,7 @@ class AccordionPanel {
92
91
  }
93
92
  static ɵfac = i0.ɵɵngDeclareFactory({
94
93
  minVersion: "12.0.0",
95
- version: "22.1.2",
94
+ version: "22.2.0-next.1",
96
95
  ngImport: i0,
97
96
  type: AccordionPanel,
98
97
  deps: [],
@@ -100,7 +99,7 @@ class AccordionPanel {
100
99
  });
101
100
  static ɵdir = i0.ɵɵngDeclareDirective({
102
101
  minVersion: "17.2.0",
103
- version: "22.1.2",
102
+ version: "22.2.0-next.1",
104
103
  type: AccordionPanel,
105
104
  isStandalone: true,
106
105
  selector: "[ngAccordionPanel]",
@@ -140,7 +139,7 @@ class AccordionPanel {
140
139
  }
141
140
  i0.ɵɵngDeclareClassMetadata({
142
141
  minVersion: "12.0.0",
143
- version: "22.1.2",
142
+ version: "22.2.0-next.1",
144
143
  ngImport: i0,
145
144
  type: AccordionPanel,
146
145
  decorators: [{
@@ -245,7 +244,7 @@ class AccordionGroup {
245
244
  }
246
245
  static ɵfac = i0.ɵɵngDeclareFactory({
247
246
  minVersion: "12.0.0",
248
- version: "22.1.2",
247
+ version: "22.2.0-next.1",
249
248
  ngImport: i0,
250
249
  type: AccordionGroup,
251
250
  deps: [],
@@ -253,7 +252,7 @@ class AccordionGroup {
253
252
  });
254
253
  static ɵdir = i0.ɵɵngDeclareDirective({
255
254
  minVersion: "17.1.0",
256
- version: "22.1.2",
255
+ version: "22.2.0-next.1",
257
256
  type: AccordionGroup,
258
257
  isStandalone: true,
259
258
  selector: "[ngAccordionGroup]",
@@ -304,7 +303,7 @@ class AccordionGroup {
304
303
  }
305
304
  i0.ɵɵngDeclareClassMetadata({
306
305
  minVersion: "12.0.0",
307
- version: "22.1.2",
306
+ version: "22.2.0-next.1",
308
307
  ngImport: i0,
309
308
  type: AccordionGroup,
310
309
  decorators: [{
@@ -430,7 +429,7 @@ class AccordionTrigger {
430
429
  }
431
430
  static ɵfac = i0.ɵɵngDeclareFactory({
432
431
  minVersion: "12.0.0",
433
- version: "22.1.2",
432
+ version: "22.2.0-next.1",
434
433
  ngImport: i0,
435
434
  type: AccordionTrigger,
436
435
  deps: [],
@@ -438,7 +437,7 @@ class AccordionTrigger {
438
437
  });
439
438
  static ɵdir = i0.ɵɵngDeclareDirective({
440
439
  minVersion: "17.1.0",
441
- version: "22.1.2",
440
+ version: "22.2.0-next.1",
442
441
  type: AccordionTrigger,
443
442
  isStandalone: true,
444
443
  selector: "[ngAccordionTrigger]",
@@ -495,7 +494,7 @@ class AccordionTrigger {
495
494
  }
496
495
  i0.ɵɵngDeclareClassMetadata({
497
496
  minVersion: "12.0.0",
498
- version: "22.1.2",
497
+ version: "22.2.0-next.1",
499
498
  ngImport: i0,
500
499
  type: AccordionTrigger,
501
500
  decorators: [{
@@ -555,5 +554,5 @@ i0.ɵɵngDeclareClassMetadata({
555
554
  }
556
555
  });
557
556
 
558
- export { AccordionContent, AccordionGroup, AccordionPanel, AccordionTrigger, DeferredContent as ɵɵDeferredContent, DeferredContentAware as ɵɵDeferredContentAware };
557
+ export { ACCORDION_GROUP, AccordionContent, AccordionGroup, AccordionPanel, AccordionTrigger, DeferredContent as ɵɵDeferredContent, DeferredContentAware as ɵɵDeferredContentAware };
559
558
  //# sourceMappingURL=accordion.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-content.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-panel.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-group.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-trigger.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive} from '@angular/core';\nimport {DeferredContent} from '../private';\n\n/**\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 * <div ngAccordionPanel>\n * <ng-template ngAccordionContent>\n * <p>This is the content that will be displayed inside the panel.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: 'ng-template[ngAccordionContent]',\n hostDirectives: [DeferredContent],\n})\nexport class AccordionContent {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Directive,\n ElementRef,\n afterRenderEffect,\n computed,\n contentChild,\n inject,\n input,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {DeferredContentAware, AccordionTriggerPattern, reportViolations} from '../private';\nimport {AccordionContent} from './accordion-content';\n\n/**\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 should\n * expose a template reference that will be used by the 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 * <div ngAccordionPanel #panel=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>This content is lazily rendered and will be shown when the panel is expanded.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionPanel]',\n exportAs: 'ngAccordionPanel',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n 'role': 'region',\n '[attr.id]': 'id()',\n '[attr.aria-labelledby]': '_pattern?.id()',\n '[attr.inert]': '!visible() ? true : null',\n },\n})\nexport class AccordionPanel {\n /** A reference to the trigger element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the trigger element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n private readonly _accordionContent = contentChild(AccordionContent);\n\n /** A global unique identifier for the panel. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-panel-', true));\n\n /** Whether the accordion panel is visible. True if the associated trigger is expanded. */\n readonly visible = computed(() => this._pattern?.expanded() === true);\n\n /**\n * The pattern for the accordion trigger that controls this panel.\n * This is set by the trigger when it initializes.\n * There is no need for a panel pattern, as the trigger has all the necessary logic.\n */\n _pattern?: AccordionTriggerPattern;\n\n constructor() {\n // Connect the panel's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect({\n write: () => {\n this._deferredContentAware.contentVisible.set(this.visible());\n },\n });\n\n // Check for any violations after the DOM has been updated.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n afterRenderEffect({\n read: () => {\n const violations: string[] = [];\n\n if (!this._accordionContent()) {\n violations.push('ngAccordionPanel must have an ngAccordionContent to render.');\n }\n if (!this._pattern) {\n violations.push('ngAccordionPanel must have an ngAccordionTrigger to control it.');\n }\n\n reportViolations(violations, this.element);\n },\n });\n }\n }\n\n /** Expands this item. */\n expand() {\n this._pattern?.open();\n }\n\n /** Collapses this item. */\n collapse() {\n this._pattern?.close();\n }\n\n /** Toggles the expansion state of this item. */\n toggle() {\n this._pattern?.toggle();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {InjectionToken} from '@angular/core';\nimport type {AccordionGroup} from './accordion-group';\n\n/** Token used to expose the accordion group. */\nexport const ACCORDION_GROUP = new InjectionToken<AccordionGroup>('ACCORDION_GROUP');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Directive,\n ElementRef,\n booleanAttribute,\n computed,\n inject,\n input,\n signal,\n afterNextRender,\n afterRenderEffect,\n OnDestroy,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {AccordionGroupPattern, SortedCollection, reportViolations} from '../private';\nimport {ACCORDION_GROUP} from './accordion-tokens';\nimport {AccordionTrigger} from './accordion-trigger';\n\n/**\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 * <div ngAccordionGroup [multiExpandable]=\"true\">\n * <div class=\"accordion-item\">\n * <h3>\n * <button ngAccordionTrigger [panel]=\"panel1\">Item 1</button>\n * </h3>\n * <div ngAccordionPanel #panel1=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>Content for Item 1.</p>\n * </ng-template>\n * </div>\n * </div>\n * <div class=\"accordion-item\">\n * <h3>\n * <button ngAccordionTrigger [panel]=\"panel2\">Item 2</button>\n * </h3>\n * <div ngAccordionPanel #panel2=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>Content for Item 2.</p>\n * </ng-template>\n * </div>\n * </div>\n * </div>\n * ```\n *\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionGroup]',\n exportAs: 'ngAccordionGroup',\n host: {\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocus($event)',\n },\n providers: [{provide: ACCORDION_GROUP, useExisting: AccordionGroup}],\n})\nexport class AccordionGroup implements OnDestroy {\n /** A reference to the group element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the group element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The collection of AccordionTriggers. */\n readonly _collection = new SortedCollection<AccordionTrigger>();\n\n /** The corresponding patterns for the accordion triggers. */\n private readonly _triggerPatterns = computed(() => {\n return this._collection.orderedItems().map(t => t._pattern);\n });\n\n /** The text direction (ltr or rtl). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the entire accordion group is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether multiple accordion items can be expanded simultaneously. */\n readonly multiExpandable = input(true, {transform: booleanAttribute});\n\n /**\n * Whether to allow disabled items to receive focus. When `true`, disabled items are\n * focusable but not interactive. When `false`, disabled items are skipped during navigation.\n */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether keyboard navigation should wrap around from the last item to the first, and vice-versa. */\n readonly wrap = input(false, {transform: booleanAttribute});\n\n /** The UI pattern instance for this accordion group. */\n readonly _pattern: AccordionGroupPattern = new AccordionGroupPattern({\n ...this,\n element: () => this.element,\n activeItem: signal(undefined),\n items: this._triggerPatterns,\n orientation: () => 'vertical',\n });\n\n constructor() {\n afterNextRender(() => {\n this._collection.startObserving(this.element);\n });\n\n // Check for any violations after the DOM has been updated.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n afterRenderEffect({\n read: () => {\n reportViolations(this._pattern.validate(), this.element);\n },\n });\n }\n }\n\n ngOnDestroy() {\n this._collection.stopObserving();\n }\n\n /** Expands all accordion panels if multi-expandable. */\n expandAll() {\n this._pattern.expandAll();\n }\n\n /** Collapses all accordion panels. */\n collapseAll() {\n this._pattern.collapseAll();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Directive,\n ElementRef,\n OnDestroy,\n OnInit,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n afterRenderEffect,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {AccordionTriggerPattern, reportViolations} from '../private';\nimport {ACCORDION_GROUP} from './accordion-tokens';\nimport {AccordionPanel} from './accordion-panel';\n\n/**\n * The trigger that toggles the visibility of its associated `ngAccordionPanel`.\n *\n * This directive requires the `panel` input be set to the template reference of the `ngAccordionPanel`\n * it 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 * <button ngAccordionTrigger [panel]=\"panel\">\n * Accordion Trigger Text\n * </button>\n * ```\n *\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionTrigger]',\n exportAs: 'ngAccordionTrigger',\n host: {\n '[attr.data-active]': 'active()',\n 'role': 'button',\n '[id]': 'id()',\n '[attr.aria-expanded]': 'expanded()',\n '[attr.aria-controls]': '_pattern.controls()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.disabled]': '_pattern.hardDisabled() ? true : null',\n '[attr.tabindex]': '_pattern.tabIndex()',\n },\n})\nexport class AccordionTrigger implements OnInit, OnDestroy {\n /** A reference to the trigger element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the trigger element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent AccordionGroup. */\n private readonly _accordionGroup = inject(ACCORDION_GROUP);\n\n /** The associated AccordionPanel. */\n readonly panel = input.required<AccordionPanel>();\n\n /** The unique identifier for the trigger. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-trigger-', true));\n\n /** The unique identifier for the corresponding trigger panel. */\n readonly panelId = computed(() => this.panel().id());\n\n /** Whether the trigger is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the corresponding panel is expanded. */\n readonly expanded = model<boolean>(false);\n\n /** Whether the trigger is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** The UI pattern instance for this trigger. */\n _pattern!: AccordionTriggerPattern;\n\n constructor() {\n // Automatically prevent form submission.\n if (this.element.tagName === 'BUTTON' && !this.element.hasAttribute('type')) {\n this.element.setAttribute('type', 'button');\n }\n\n // Check for any violations after the DOM has been updated.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n afterRenderEffect({\n read: () => {\n const violations: string[] = [];\n\n if (this.panel() && this.panel().element.contains(this.element)) {\n violations.push(\n 'ngAccordionTrigger must not be nested inside its controlled ngAccordionPanel, otherwise it will become unreachable when collapsed.',\n );\n }\n if (this.panel() && (this.panel() as any)._pattern !== this._pattern) {\n violations.push(\n 'ngAccordionPanel is already controlled by another ngAccordionTrigger.',\n );\n }\n\n reportViolations(violations, this.element);\n },\n });\n }\n }\n\n ngOnInit() {\n this._pattern = new AccordionTriggerPattern({\n ...this,\n element: () => this.element,\n accordionGroup: () => this._accordionGroup._pattern,\n accordionPanelId: this.panelId,\n });\n\n this.panel()._pattern = this._pattern;\n\n this._accordionGroup._collection.register(this);\n }\n\n ngOnDestroy() {\n this.panel()._pattern = undefined;\n\n this._accordionGroup._collection.unregister(this);\n }\n\n /** Expands this item. */\n expand() {\n this._pattern.open();\n }\n\n /** Collapses this item. */\n collapse() {\n this._pattern.close();\n }\n\n /** Toggles the expansion state of this item. */\n toggle() {\n this._pattern.toggle();\n }\n}\n"],"names":["i1.DeferredContent","i1.DeferredContentAware"],"mappings":"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"}
1
+ {"version":3,"file":"accordion.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-content.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-panel.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-group.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/accordion/accordion-trigger.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive} from '@angular/core';\nimport {DeferredContent} from '../private';\n\n/**\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 * <div ngAccordionPanel>\n * <ng-template ngAccordionContent>\n * <p>This is the content that will be displayed inside the panel.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: 'ng-template[ngAccordionContent]',\n hostDirectives: [DeferredContent],\n})\nexport class AccordionContent {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Directive,\n ElementRef,\n afterRenderEffect,\n computed,\n contentChild,\n inject,\n input,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {DeferredContentAware, AccordionTriggerPattern, reportViolations} from '../private';\nimport {AccordionContent} from './accordion-content';\n\n/**\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 should\n * expose a template reference that will be used by the 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 * <div ngAccordionPanel #panel=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>This content is lazily rendered and will be shown when the panel is expanded.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionPanel]',\n exportAs: 'ngAccordionPanel',\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n host: {\n 'role': 'region',\n '[attr.id]': 'id()',\n '[attr.aria-labelledby]': '_pattern?.id()',\n '[attr.inert]': '!visible() ? true : null',\n },\n})\nexport class AccordionPanel {\n /** A reference to the trigger element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the trigger element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n private readonly _accordionContent = contentChild(AccordionContent);\n\n /** A global unique identifier for the panel. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-panel-', true));\n\n /** Whether the accordion panel is visible. True if the associated trigger is expanded. */\n readonly visible = computed(() => this._pattern?.expanded() === true);\n\n /**\n * The pattern for the accordion trigger that controls this panel.\n * This is set by the trigger when it initializes.\n * There is no need for a panel pattern, as the trigger has all the necessary logic.\n */\n _pattern?: AccordionTriggerPattern;\n\n constructor() {\n // Connect the panel's hidden state to the DeferredContentAware's visibility.\n afterRenderEffect({\n write: () => {\n this._deferredContentAware.contentVisible.set(this.visible());\n },\n });\n\n // Check for any violations after the DOM has been updated.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n afterRenderEffect({\n read: () => {\n const violations: string[] = [];\n\n if (!this._accordionContent()) {\n violations.push('ngAccordionPanel must have an ngAccordionContent to render.');\n }\n if (!this._pattern) {\n violations.push('ngAccordionPanel must have an ngAccordionTrigger to control it.');\n }\n\n reportViolations(violations, this.element);\n },\n });\n }\n }\n\n /** Expands this item. */\n expand() {\n this._pattern?.open();\n }\n\n /** Collapses this item. */\n collapse() {\n this._pattern?.close();\n }\n\n /** Toggles the expansion state of this item. */\n toggle() {\n this._pattern?.toggle();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {InjectionToken} from '@angular/core';\nimport type {AccordionGroup} from './accordion-group';\n\n/** Token used to expose the accordion group. */\nexport const ACCORDION_GROUP = new InjectionToken<AccordionGroup>('ACCORDION_GROUP');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Directive,\n ElementRef,\n booleanAttribute,\n computed,\n inject,\n input,\n signal,\n afterNextRender,\n afterRenderEffect,\n OnDestroy,\n} from '@angular/core';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {AccordionGroupPattern, SortedCollection, reportViolations} from '../private';\nimport {ACCORDION_GROUP} from './accordion-tokens';\nimport {AccordionTrigger} from './accordion-trigger';\n\n/**\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 * <div ngAccordionGroup [multiExpandable]=\"true\">\n * <div class=\"accordion-item\">\n * <h3>\n * <button ngAccordionTrigger [panel]=\"panel1\">Item 1</button>\n * </h3>\n * <div ngAccordionPanel #panel1=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>Content for Item 1.</p>\n * </ng-template>\n * </div>\n * </div>\n * <div class=\"accordion-item\">\n * <h3>\n * <button ngAccordionTrigger [panel]=\"panel2\">Item 2</button>\n * </h3>\n * <div ngAccordionPanel #panel2=\"ngAccordionPanel\">\n * <ng-template ngAccordionContent>\n * <p>Content for Item 2.</p>\n * </ng-template>\n * </div>\n * </div>\n * </div>\n * ```\n *\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionGroup]',\n exportAs: 'ngAccordionGroup',\n host: {\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocus($event)',\n },\n providers: [{provide: ACCORDION_GROUP, useExisting: AccordionGroup}],\n})\nexport class AccordionGroup implements OnDestroy {\n /** A reference to the group element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the group element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The collection of AccordionTriggers. */\n readonly _collection = new SortedCollection<AccordionTrigger>();\n\n /** The corresponding patterns for the accordion triggers. */\n private readonly _triggerPatterns = computed(() => {\n return this._collection.orderedItems().map(t => t._pattern);\n });\n\n /** The text direction (ltr or rtl). */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether the entire accordion group is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether multiple accordion items can be expanded simultaneously. */\n readonly multiExpandable = input(true, {transform: booleanAttribute});\n\n /**\n * Whether to allow disabled items to receive focus. When `true`, disabled items are\n * focusable but not interactive. When `false`, disabled items are skipped during navigation.\n */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether keyboard navigation should wrap around from the last item to the first, and vice-versa. */\n readonly wrap = input(false, {transform: booleanAttribute});\n\n /** The UI pattern instance for this accordion group. */\n readonly _pattern: AccordionGroupPattern = new AccordionGroupPattern({\n ...this,\n element: () => this.element,\n activeItem: signal(undefined),\n items: this._triggerPatterns,\n orientation: () => 'vertical',\n });\n\n constructor() {\n afterNextRender(() => {\n this._collection.startObserving(this.element);\n });\n\n // Check for any violations after the DOM has been updated.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n afterRenderEffect({\n read: () => {\n reportViolations(this._pattern.validate(), this.element);\n },\n });\n }\n }\n\n ngOnDestroy() {\n this._collection.stopObserving();\n }\n\n /** Expands all accordion panels if multi-expandable. */\n expandAll() {\n this._pattern.expandAll();\n }\n\n /** Collapses all accordion panels. */\n collapseAll() {\n this._pattern.collapseAll();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Directive,\n ElementRef,\n OnDestroy,\n OnInit,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n afterRenderEffect,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {AccordionTriggerPattern, reportViolations} from '../private';\nimport {ACCORDION_GROUP} from './accordion-tokens';\nimport {AccordionPanel} from './accordion-panel';\n\n/**\n * The trigger that toggles the visibility of its associated `ngAccordionPanel`.\n *\n * This directive requires the `panel` input be set to the template reference of the `ngAccordionPanel`\n * it 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 * <button ngAccordionTrigger [panel]=\"panel\">\n * Accordion Trigger Text\n * </button>\n * ```\n *\n * @see [Accordion](guide/aria/accordion)\n */\n@Directive({\n selector: '[ngAccordionTrigger]',\n exportAs: 'ngAccordionTrigger',\n host: {\n '[attr.data-active]': 'active()',\n 'role': 'button',\n '[id]': 'id()',\n '[attr.aria-expanded]': 'expanded()',\n '[attr.aria-controls]': '_pattern.controls()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.disabled]': '_pattern.hardDisabled() ? true : null',\n '[attr.tabindex]': '_pattern.tabIndex()',\n },\n})\nexport class AccordionTrigger implements OnInit, OnDestroy {\n /** A reference to the trigger element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the trigger element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent AccordionGroup. */\n private readonly _accordionGroup = inject(ACCORDION_GROUP);\n\n /** The associated AccordionPanel. */\n readonly panel = input.required<AccordionPanel>();\n\n /** The unique identifier for the trigger. */\n readonly id = input(inject(_IdGenerator).getId('ng-accordion-trigger-', true));\n\n /** The unique identifier for the corresponding trigger panel. */\n readonly panelId = computed(() => this.panel().id());\n\n /** Whether the trigger is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the corresponding panel is expanded. */\n readonly expanded = model<boolean>(false);\n\n /** Whether the trigger is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** The UI pattern instance for this trigger. */\n _pattern!: AccordionTriggerPattern;\n\n constructor() {\n // Automatically prevent form submission.\n if (this.element.tagName === 'BUTTON' && !this.element.hasAttribute('type')) {\n this.element.setAttribute('type', 'button');\n }\n\n // Check for any violations after the DOM has been updated.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n afterRenderEffect({\n read: () => {\n const violations: string[] = [];\n\n if (this.panel() && this.panel().element.contains(this.element)) {\n violations.push(\n 'ngAccordionTrigger must not be nested inside its controlled ngAccordionPanel, otherwise it will become unreachable when collapsed.',\n );\n }\n if (this.panel() && (this.panel() as any)._pattern !== this._pattern) {\n violations.push(\n 'ngAccordionPanel is already controlled by another ngAccordionTrigger.',\n );\n }\n\n reportViolations(violations, this.element);\n },\n });\n }\n }\n\n ngOnInit() {\n this._pattern = new AccordionTriggerPattern({\n ...this,\n element: () => this.element,\n accordionGroup: () => this._accordionGroup._pattern,\n accordionPanelId: this.panelId,\n });\n\n this.panel()._pattern = this._pattern;\n\n this._accordionGroup._collection.register(this);\n }\n\n ngOnDestroy() {\n this.panel()._pattern = undefined;\n\n this._accordionGroup._collection.unregister(this);\n }\n\n /** Expands this item. */\n expand() {\n this._pattern.open();\n }\n\n /** Collapses this item. */\n collapse() {\n this._pattern.close();\n }\n\n /** Toggles the expansion state of this item. */\n toggle() {\n this._pattern.toggle();\n }\n}\n"],"names":["i1.DeferredContent","i1.DeferredContentAware"],"mappings":";;;;;;;;;;;;MAiCa,gBAAgB,CAAA;;;;;UAAhB,gBAAgB;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;UAAhB,gBAAgB;AAAA,IAAA,YAAA,EAAA,IAAA;AAAA,IAAA,QAAA,EAAA,iCAAA;AAAA,IAAA,cAAA,EAAA,CAAA;MAAA,SAAA,EAAAA;AAAA,KAAA,CAAA;AAAA,IAAA,QAAA,EAAA;AAAA,GAAA,CAAA;;;;;;QAAhB,gBAAgB;AAAA,EAAA,UAAA,EAAA,CAAA;UAJ5B,SAAS;AAAC,IAAA,IAAA,EAAA,CAAA;AACT,MAAA,QAAQ,EAAE,iCAAiC;MAC3C,cAAc,EAAE,CAAC,eAAe;KACjC;;;;MCyBY,cAAc,CAAA;AAER,EAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAGxC,EAAA,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAA4B;AAG/C,EAAA,qBAAqB,GAAG,MAAM,CAAC,oBAAoB,CAAC;EAEpD,iBAAiB,GAAG,YAAY,CAAC,gBAAgB;;WAAC;AAG1D,EAAA,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,qBAAqB,EAAE,IAAI,CAAC;;WAAC;AAGnE,EAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,IAAI;;WAAC;EAOrE,QAAQ;AAER,EAAA,WAAA,GAAA;AAEE,IAAA,iBAAiB,CAAC;AAChB,MAAA,KAAK,EAAE,MAAK;AACV,QAAA,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AAC/D,MAAA;AACD,KAAA,CAAC;AAGF,IAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;AACjD,MAAA,iBAAiB,CAAC;AAChB,QAAA,IAAI,EAAE,MAAK;UACT,MAAM,UAAU,GAAa,EAAE;AAE/B,UAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;AAC7B,YAAA,UAAU,CAAC,IAAI,CAAC,6DAA6D,CAAC;AAChF,UAAA;AACA,UAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,UAAU,CAAC,IAAI,CAAC,iEAAiE,CAAC;AACpF,UAAA;AAEA,UAAA,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC;AAC5C,QAAA;AACD,OAAA,CAAC;AACJ,IAAA;AACF,EAAA;AAGA,EAAA,MAAM,GAAA;AACJ,IAAA,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE;AACvB,EAAA;AAGA,EAAA,QAAQ,GAAA;AACN,IAAA,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE;AACxB,EAAA;AAGA,EAAA,MAAM,GAAA;AACJ,IAAA,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;AACzB,EAAA;;;;;UAjEW,cAAc;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;AAAd,EAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA;AAAA,IAAA,UAAA,EAAA,QAAA;AAAA,IAAA,OAAA,EAAA,eAAA;AAAA,IAAA,IAAA,EAAA,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;iBAUyB,gBAAgB;AAAA,MAAA,WAAA,EAAA,IAAA;AAAA,MAAA,QAAA,EAAA;AAAA,KAAA,CAAA;IAAA,QAAA,EAAA,CAAA,kBAAA,CAAA;AAAA,IAAA,cAAA,EAAA,CAAA;MAAA,SAAA,EAAAC,oBAAA;AAAA,MAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA;AAAA,KAAA,CAAA;AAAA,IAAA,QAAA,EAAA;AAAA,GAAA,CAAA;;;;;;QAVvD,cAAc;AAAA,EAAA,UAAA,EAAA,CAAA;UAhB1B,SAAS;AAAC,IAAA,IAAA,EAAA,CAAA;AACT,MAAA,QAAQ,EAAE,oBAAoB;AAC9B,MAAA,QAAQ,EAAE,kBAAkB;AAC5B,MAAA,cAAc,EAAE,CACd;AACE,QAAA,SAAS,EAAE,oBAAoB;QAC/B,MAAM,EAAE,CAAC,iBAAiB;AAC3B,OAAA,CACF;AACD,MAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,wBAAwB,EAAE,gBAAgB;AAC1C,QAAA,cAAc,EAAE;AACjB;KACF;;;;;;iCAWmD,gBAAgB,CAAA,EAAA;AAAA,QAAA,QAAA,EAAA;OAAA;AAAA,KAAA,CAAA;AAAA,IAAA,EAAA,EAAA,CAAA;MAAA,IAAA,EAAA,EAAA,CAAA,KAAA;AAAA,MAAA,IAAA,EAAA,CAAA;AAAA,QAAA,QAAA,EAAA,IAAA;AAAA,QAAA,KAAA,EAAA,IAAA;AAAA,QAAA,QAAA,EAAA;OAAA;KAAA;AAAA;AAAA,CAAA,CAAA;;MCvDvD,eAAe,GAAG,IAAI,cAAc,CAAiB,iBAAiB;;MC0DtE,cAAc,CAAA;AAER,EAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAGxC,EAAA,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAA4B;AAGvD,EAAA,WAAW,GAAG,IAAI,gBAAgB,EAAoB;EAG9C,gBAAgB,GAAG,QAAQ,CAAC,MAAK;AAChD,IAAA,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;AAC7D,EAAA,CAAC;;WAAC;AAGO,EAAA,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW;AAGlD,EAAA,QAAQ,GAAG,KAAK,CAAC,KAAK;;;;AAAG,IAAA,SAAS,EAAE;AAAgB,GAAA,CAAE;AAGtD,EAAA,eAAe,GAAG,KAAK,CAAC,IAAI;;;;AAAG,IAAA,SAAS,EAAE;AAAgB,GAAA,CAAE;AAM5D,EAAA,YAAY,GAAG,KAAK,CAAC,IAAI;;;;AAAG,IAAA,SAAS,EAAE;AAAgB,GAAA,CAAE;AAGzD,EAAA,IAAI,GAAG,KAAK,CAAC,KAAK;;;;AAAG,IAAA,SAAS,EAAE;AAAgB,GAAA,CAAE;EAGlD,QAAQ,GAA0B,IAAI,qBAAqB,CAAC;AACnE,IAAA,GAAG,IAAI;AACP,IAAA,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO;AAC3B,IAAA,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC;IAC7B,KAAK,EAAE,IAAI,CAAC,gBAAgB;AAC5B,IAAA,WAAW,EAAE,MAAM;AACpB,GAAA,CAAC;AAEF,EAAA,WAAA,GAAA;AACE,IAAA,eAAe,CAAC,MAAK;MACnB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/C,IAAA,CAAC,CAAC;AAGF,IAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;AACjD,MAAA,iBAAiB,CAAC;AAChB,QAAA,IAAI,EAAE,MAAK;AACT,UAAA,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;AAC1D,QAAA;AACD,OAAA,CAAC;AACJ,IAAA;AACF,EAAA;AAEA,EAAA,WAAW,GAAA;AACT,IAAA,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;AAClC,EAAA;AAGA,EAAA,SAAS,GAAA;AACP,IAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;AAC3B,EAAA;AAGA,EAAA,WAAW,GAAA;AACT,IAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AAC7B,EAAA;;;;;UArEW,cAAc;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;UAAd,cAAc;AAAA,IAAA,YAAA,EAAA,IAAA;AAAA,IAAA,QAAA,EAAA,oBAAA;AAAA,IAAA,MAAA,EAAA;AAAA,MAAA,QAAA,EAAA;AAAA,QAAA,iBAAA,EAAA,UAAA;AAAA,QAAA,UAAA,EAAA,UAAA;AAAA,QAAA,QAAA,EAAA,IAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,iBAAA,EAAA;OAAA;AAAA,MAAA,eAAA,EAAA;AAAA,QAAA,iBAAA,EAAA,iBAAA;AAAA,QAAA,UAAA,EAAA,iBAAA;AAAA,QAAA,QAAA,EAAA,IAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,iBAAA,EAAA;OAAA;AAAA,MAAA,YAAA,EAAA;AAAA,QAAA,iBAAA,EAAA,cAAA;AAAA,QAAA,UAAA,EAAA,cAAA;AAAA,QAAA,QAAA,EAAA,IAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,iBAAA,EAAA;OAAA;AAAA,MAAA,IAAA,EAAA;AAAA,QAAA,iBAAA,EAAA,MAAA;AAAA,QAAA,UAAA,EAAA,MAAA;AAAA,QAAA,QAAA,EAAA,IAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,iBAAA,EAAA;AAAA;KAAA;AAAA,IAAA,IAAA,EAAA;AAAA,MAAA,SAAA,EAAA;AAAA,QAAA,SAAA,EAAA,4BAAA;AAAA,QAAA,OAAA,EAAA,0BAAA;AAAA,QAAA,SAAA,EAAA;AAAA;KAAA;AAAA,IAAA,SAAA,EAFd,CAAC;AAAC,MAAA,OAAO,EAAE,eAAe;AAAE,MAAA,WAAW,EAAE;AAAc,KAAC,CAAC;IAAA,QAAA,EAAA,CAAA,kBAAA,CAAA;AAAA,IAAA,QAAA,EAAA;AAAA,GAAA,CAAA;;;;;;QAEzD,cAAc;AAAA,EAAA,UAAA,EAAA,CAAA;UAV1B,SAAS;AAAC,IAAA,IAAA,EAAA,CAAA;AACT,MAAA,QAAQ,EAAE,oBAAoB;AAC9B,MAAA,QAAQ,EAAE,kBAAkB;AAC5B,MAAA,IAAI,EAAE;AACJ,QAAA,WAAW,EAAE,4BAA4B;AACzC,QAAA,SAAS,EAAE,0BAA0B;AACrC,QAAA,WAAW,EAAE;OACd;AACD,MAAA,SAAS,EAAE,CAAC;AAAC,QAAA,OAAO,EAAE,eAAe;AAAE,QAAA,WAAW,EAAA;OAAiB;KACpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCbY,gBAAgB,CAAA;AAEV,EAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAGxC,EAAA,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAA4B;AAG/C,EAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;EAGjD,KAAK,GAAG,KAAK,CAAC,QAAQ;;WAAkB;AAGxC,EAAA,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,uBAAuB,EAAE,IAAI,CAAC;;WAAC;AAGrE,EAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;;WAAC;AAG3C,EAAA,QAAQ,GAAG,KAAK,CAAC,KAAK;;;;AAAG,IAAA,SAAS,EAAE;AAAgB,GAAA,CAAE;EAGtD,QAAQ,GAAG,KAAK,CAAU,KAAK;;WAAC;AAGhC,EAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;;WAAC;EAGxD,QAAQ;AAER,EAAA,WAAA,GAAA;AAEE,IAAA,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;MAC3E,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC7C,IAAA;AAGA,IAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;AACjD,MAAA,iBAAiB,CAAC;AAChB,QAAA,IAAI,EAAE,MAAK;UACT,MAAM,UAAU,GAAa,EAAE;UAE/B,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAC/D,YAAA,UAAU,CAAC,IAAI,CACb,oIAAoI,CACrI;AACH,UAAA;AACA,UAAA,IAAI,IAAI,CAAC,KAAK,EAAE,IAAK,IAAI,CAAC,KAAK,EAAU,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;AACpE,YAAA,UAAU,CAAC,IAAI,CACb,uEAAuE,CACxE;AACH,UAAA;AAEA,UAAA,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC;AAC5C,QAAA;AACD,OAAA,CAAC;AACJ,IAAA;AACF,EAAA;AAEA,EAAA,QAAQ,GAAA;AACN,IAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAuB,CAAC;AAC1C,MAAA,GAAG,IAAI;AACP,MAAA,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO;AAC3B,MAAA,cAAc,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ;MACnD,gBAAgB,EAAE,IAAI,CAAC;AACxB,KAAA,CAAC;IAEF,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;IAErC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjD,EAAA;AAEA,EAAA,WAAW,GAAA;AACT,IAAA,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,GAAG,SAAS;IAEjC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;AACnD,EAAA;AAGA,EAAA,MAAM,GAAA;AACJ,IAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACtB,EAAA;AAGA,EAAA,QAAQ,GAAA;AACN,IAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACvB,EAAA;AAGA,EAAA,MAAM,GAAA;AACJ,IAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACxB,EAAA;;;;;UA5FW,gBAAgB;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;UAAhB,gBAAgB;AAAA,IAAA,YAAA,EAAA,IAAA;AAAA,IAAA,QAAA,EAAA,sBAAA;AAAA,IAAA,MAAA,EAAA;AAAA,MAAA,KAAA,EAAA;AAAA,QAAA,iBAAA,EAAA,OAAA;AAAA,QAAA,UAAA,EAAA,OAAA;AAAA,QAAA,QAAA,EAAA,IAAA;AAAA,QAAA,UAAA,EAAA,IAAA;AAAA,QAAA,iBAAA,EAAA;OAAA;AAAA,MAAA,EAAA,EAAA;AAAA,QAAA,iBAAA,EAAA,IAAA;AAAA,QAAA,UAAA,EAAA,IAAA;AAAA,QAAA,QAAA,EAAA,IAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,iBAAA,EAAA;OAAA;AAAA,MAAA,QAAA,EAAA;AAAA,QAAA,iBAAA,EAAA,UAAA;AAAA,QAAA,UAAA,EAAA,UAAA;AAAA,QAAA,QAAA,EAAA,IAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,iBAAA,EAAA;OAAA;AAAA,MAAA,QAAA,EAAA;AAAA,QAAA,iBAAA,EAAA,UAAA;AAAA,QAAA,UAAA,EAAA,UAAA;AAAA,QAAA,QAAA,EAAA,IAAA;AAAA,QAAA,UAAA,EAAA,KAAA;AAAA,QAAA,iBAAA,EAAA;AAAA;KAAA;AAAA,IAAA,OAAA,EAAA;AAAA,MAAA,QAAA,EAAA;KAAA;AAAA,IAAA,IAAA,EAAA;AAAA,MAAA,UAAA,EAAA;AAAA,QAAA,MAAA,EAAA;OAAA;AAAA,MAAA,UAAA,EAAA;AAAA,QAAA,kBAAA,EAAA,UAAA;AAAA,QAAA,IAAA,EAAA,MAAA;AAAA,QAAA,oBAAA,EAAA,YAAA;AAAA,QAAA,oBAAA,EAAA,qBAAA;AAAA,QAAA,oBAAA,EAAA,qBAAA;AAAA,QAAA,eAAA,EAAA,uCAAA;AAAA,QAAA,eAAA,EAAA;AAAA;KAAA;IAAA,QAAA,EAAA,CAAA,oBAAA,CAAA;AAAA,IAAA,QAAA,EAAA;AAAA,GAAA,CAAA;;;;;;QAAhB,gBAAgB;AAAA,EAAA,UAAA,EAAA,CAAA;UAd5B,SAAS;AAAC,IAAA,IAAA,EAAA,CAAA;AACT,MAAA,QAAQ,EAAE,sBAAsB;AAChC,MAAA,QAAQ,EAAE,oBAAoB;AAC9B,MAAA,IAAI,EAAE;AACJ,QAAA,oBAAoB,EAAE,UAAU;AAChC,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,sBAAsB,EAAE,YAAY;AACpC,QAAA,sBAAsB,EAAE,qBAAqB;AAC7C,QAAA,sBAAsB,EAAE,qBAAqB;AAC7C,QAAA,iBAAiB,EAAE,uCAAuC;AAC1D,QAAA,iBAAiB,EAAE;AACpB;KACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/fesm2022/aria.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Version } from '@angular/core';
2
2
 
3
- const VERSION = new Version('22.1.3');
3
+ const VERSION = new Version('22.2.0-next.1');
4
4
 
5
5
  export { VERSION };
6
6
  //# sourceMappingURL=aria.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"aria.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/version.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Version} from '@angular/core';\n\n/** Current version of the Aria package. */\nexport const VERSION = new Version('22.1.3');\n"],"names":[],"mappings":";;MAWa,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB;;;;"}
1
+ {"version":3,"file":"aria.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/version.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Version} from '@angular/core';\n\n/** Current version of the Aria package. */\nexport const VERSION = new Version('22.2.0-next.1');\n"],"names":[],"mappings":";;MAWa,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB;;;;"}
@@ -89,7 +89,7 @@ class Combobox extends DeferredContentAware {
89
89
  }
90
90
  static ɵfac = i0.ɵɵngDeclareFactory({
91
91
  minVersion: "12.0.0",
92
- version: "22.1.2",
92
+ version: "22.2.0-next.1",
93
93
  ngImport: i0,
94
94
  type: Combobox,
95
95
  deps: [],
@@ -97,7 +97,7 @@ class Combobox extends DeferredContentAware {
97
97
  });
98
98
  static ɵdir = i0.ɵɵngDeclareDirective({
99
99
  minVersion: "17.1.0",
100
- version: "22.1.2",
100
+ version: "22.2.0-next.1",
101
101
  type: Combobox,
102
102
  isStandalone: true,
103
103
  selector: "[ngCombobox]",
@@ -194,7 +194,7 @@ class Combobox extends DeferredContentAware {
194
194
  }
195
195
  i0.ɵɵngDeclareClassMetadata({
196
196
  minVersion: "12.0.0",
197
- version: "22.1.2",
197
+ version: "22.2.0-next.1",
198
198
  ngImport: i0,
199
199
  type: Combobox,
200
200
  decorators: [{
@@ -337,7 +337,7 @@ class ComboboxPopup {
337
337
  }
338
338
  static ɵfac = i0.ɵɵngDeclareFactory({
339
339
  minVersion: "12.0.0",
340
- version: "22.1.2",
340
+ version: "22.2.0-next.1",
341
341
  ngImport: i0,
342
342
  type: ComboboxPopup,
343
343
  deps: [],
@@ -345,7 +345,7 @@ class ComboboxPopup {
345
345
  });
346
346
  static ɵdir = i0.ɵɵngDeclareDirective({
347
347
  minVersion: "17.1.0",
348
- version: "22.1.2",
348
+ version: "22.2.0-next.1",
349
349
  type: ComboboxPopup,
350
350
  isStandalone: true,
351
351
  selector: "ng-template[ngComboboxPopup]",
@@ -378,7 +378,7 @@ class ComboboxPopup {
378
378
  }
379
379
  i0.ɵɵngDeclareClassMetadata({
380
380
  minVersion: "12.0.0",
381
- version: "22.1.2",
381
+ version: "22.2.0-next.1",
382
382
  ngImport: i0,
383
383
  type: ComboboxPopup,
384
384
  decorators: [{
@@ -461,7 +461,7 @@ class ComboboxWidget {
461
461
  }
462
462
  static ɵfac = i0.ɵɵngDeclareFactory({
463
463
  minVersion: "12.0.0",
464
- version: "22.1.2",
464
+ version: "22.2.0-next.1",
465
465
  ngImport: i0,
466
466
  type: ComboboxWidget,
467
467
  deps: [],
@@ -469,7 +469,7 @@ class ComboboxWidget {
469
469
  });
470
470
  static ɵdir = i0.ɵɵngDeclareDirective({
471
471
  minVersion: "17.1.0",
472
- version: "22.1.2",
472
+ version: "22.2.0-next.1",
473
473
  type: ComboboxWidget,
474
474
  isStandalone: true,
475
475
  selector: "[ngComboboxWidget]",
@@ -494,7 +494,7 @@ class ComboboxWidget {
494
494
  }
495
495
  i0.ɵɵngDeclareClassMetadata({
496
496
  minVersion: "12.0.0",
497
- version: "22.1.2",
497
+ version: "22.2.0-next.1",
498
498
  ngImport: i0,
499
499
  type: ComboboxWidget,
500
500
  decorators: [{
@@ -521,5 +521,5 @@ i0.ɵɵngDeclareClassMetadata({
521
521
  }
522
522
  });
523
523
 
524
- export { Combobox, ComboboxPopup, ComboboxWidget };
524
+ export { COMBOBOX_POPUP, Combobox, ComboboxPopup, ComboboxWidget };
525
525
  //# sourceMappingURL=combobox.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-popup.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-widget.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n afterRenderEffect,\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n OnInit,\n signal,\n Renderer2,\n} from '@angular/core';\nimport {DeferredContentAware, ComboboxPattern, tabIndexTransform} from '@angular/aria/private';\nimport type {ComboboxPopup} from './combobox-popup';\n\n/**\n * A directive that coordinates a combobox trigger element and its associated popup widget.\n *\n * The `ngCombobox` directive is applied directly to the interactive trigger element, which can be\n * either an editable `<input>` (for search/autocomplete behaviors) or a non-editable element like\n * a `<div>` (for custom select dropdowns). It manages focus and expansion states, coordinates autocomplete\n * suggestions (if editable), and forwards navigation keys down into the active popup.\n *\n * ### Example 1: Editable Autocomplete Input\n * ```html\n * <input ngCombobox #combobox=\"ngCombobox\" [(value)]=\"searchQuery\" [(expanded)]=\"isExpanded\" />\n *\n * <ng-template ngComboboxPopup [combobox]=\"combobox\">\n * <div ngComboboxWidget #listbox=\"ngListbox\" ngListbox [(value)]=\"selectedValues\" [activeDescendant]=\"listbox.activeDescendant()\">\n * <div ngOption value=\"first\">First Option</div>\n * <div ngOption value=\"second\">Second Option</div>\n * </div>\n * </ng-template>\n * ```\n *\n * ### Example 2: Non-Editable Custom Select Dropdown\n * ```html\n * <div ngCombobox #combobox=\"ngCombobox\" [(expanded)]=\"isExpanded\" class=\"select-trigger\">\n * {{selectedValue}}\n * </div>\n *\n * <ng-template ngComboboxPopup [combobox]=\"combobox\">\n * <div ngComboboxWidget #listbox=\"ngListbox\" ngListbox [(value)]=\"selectedValues\" [activeDescendant]=\"listbox.activeDescendant()\">\n * <div ngOption value=\"first\">First Option</div>\n * <div ngOption value=\"second\">Second Option</div>\n * </div>\n * </ng-template>\n * ```\n */\n@Directive({\n selector: '[ngCombobox]',\n exportAs: 'ngCombobox',\n host: {\n 'role': 'combobox',\n '[attr.aria-autocomplete]': '_pattern.autocomplete()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-readonly]': '_pattern.ariaReadonly()',\n '[attr.aria-expanded]': '_pattern.isExpanded()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '[attr.aria-controls]': '_pattern.popupId()',\n '[attr.aria-haspopup]': '_pattern.popupType()',\n '[attr.tabindex]':\n 'disabled() && !softDisabled() ? -1 : (tabIndex() !== undefined ? tabIndex() : 0)',\n '[attr.disabled]': '_pattern.nativeDisabled()',\n '[attr.readonly]': '_pattern.nativeReadonly()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(focusin)': '_pattern.onFocusin()',\n '(focusout)': '_pattern.onFocusout()',\n '(click)': '_pattern.onClick($event)',\n '(input)': '_pattern.onInput($event)',\n },\n})\nexport class Combobox extends DeferredContentAware implements OnInit {\n private readonly _renderer = inject(Renderer2);\n\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** A reference to the input element. */\n readonly element = this._elementRef.nativeElement;\n\n /** The popup associated with the combobox. */\n readonly _popup = signal<ComboboxPopup | undefined>(undefined);\n\n /** Whether the combobox is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the combobox is readonly. */\n readonly readonly = input(false, {transform: booleanAttribute});\n\n /** Whether the combobox is soft disabled (remains focusable). */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether the combobox should always remain expanded. */\n readonly alwaysExpanded = input(false, {transform: booleanAttribute});\n\n /** The tabindex of the combobox. */\n readonly tabIndex = input(undefined, {\n alias: 'tabindex',\n transform: tabIndexTransform,\n });\n\n /** Whether the combobox is expanded. */\n readonly expanded = model<boolean>(false);\n\n /** The value of the combobox input. */\n readonly value = model<string>('');\n\n /** An inline suggestion to be displayed in the input. */\n readonly inlineSuggestion = input<string | undefined>(undefined);\n\n /** The combobox ui pattern. */\n readonly _pattern = new ComboboxPattern({\n ...this,\n readonly: () => this.readonly(),\n element: () => this.element,\n expandable: () => true,\n popup: computed(() => this._popup()?._pattern),\n });\n\n constructor() {\n super();\n\n afterRenderEffect({write: () => this._pattern.keyboardEventRelayEffect()});\n afterRenderEffect(() => {\n this.contentVisible.set(this._pattern.isExpanded());\n });\n\n if (this._pattern.isEditable()) {\n afterRenderEffect(() => {\n this._renderer.setProperty(this.element, 'value', this.value());\n });\n afterRenderEffect(() => {\n this._pattern.highlightEffect();\n });\n }\n }\n\n ngOnInit() {\n if (this.alwaysExpanded()) {\n this.expanded.set(true);\n }\n }\n\n /** Registers a popup with the combobox. */\n _registerPopup(popup: ComboboxPopup) {\n this._popup.set(popup);\n }\n\n /** Unregisters the popup from the combobox. */\n _unregisterPopup() {\n this._popup.set(undefined);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {InjectionToken} from '@angular/core';\nimport type {ComboboxPopup} from './combobox-popup';\n\n/** Token used to expose the combobox popup. */\nexport const COMBOBOX_POPUP = new InjectionToken<ComboboxPopup>('COMBOBOX_POPUP');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {computed, Directive, inject, input, OnDestroy, OnInit, signal} from '@angular/core';\nimport {DeferredContent, ComboboxPopupPattern} from '@angular/aria/private';\nimport type {Combobox} from './combobox';\nimport type {ComboboxWidget} from './combobox-widget';\nimport {COMBOBOX_POPUP} from './combobox-tokens';\n\n/**\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 any element with the `ngComboboxWidget` directive.\n *\n * ```html\n * <ng-template ngComboboxPopup>\n * <div ngComboboxWidget>\n * <!-- ... options ... -->\n * </div>\n * </ng-template>\n * ```\n */\n@Directive({\n selector: 'ng-template[ngComboboxPopup]',\n exportAs: 'ngComboboxPopup',\n hostDirectives: [DeferredContent],\n providers: [{provide: COMBOBOX_POPUP, useExisting: ComboboxPopup}],\n})\nexport class ComboboxPopup implements OnInit, OnDestroy {\n private readonly _deferredContent = inject(DeferredContent);\n\n /** The combobox that the popup belongs to. */\n readonly combobox = input.required<Combobox>();\n\n /** The widget contained within the popup. */\n readonly _widget = signal<ComboboxWidget | undefined>(undefined);\n\n /** The element that serves as the control target for the popup. */\n readonly controlTarget = computed(() => this._widget()?.element);\n\n /** The ID of the popup. */\n readonly popupId = computed(() => this._widget()?.popupId());\n\n /** The ID of the active descendant in the popup. */\n readonly activeDescendant = computed(() => this._widget()?.activeDescendant());\n\n /** The type of the popup (e.g., listbox, tree, grid, dialog). */\n readonly popupType = input<'listbox' | 'tree' | 'grid' | 'dialog'>('listbox');\n\n /** The popup pattern. */\n readonly _pattern = new ComboboxPopupPattern({\n ...this,\n });\n\n ngOnInit() {\n this.combobox()._registerPopup(this);\n this._deferredContent.deferredContentAware.set(this.combobox());\n }\n\n ngOnDestroy() {\n this.combobox()._unregisterPopup();\n }\n\n /** Registers a widget with the popup. */\n _registerWidget(widget: ComboboxWidget) {\n this._widget.set(widget);\n }\n\n /** Unregisters the widget from the popup. */\n _unregisterWidget() {\n this._widget.set(undefined);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n afterNextRender,\n Directive,\n ElementRef,\n inject,\n input,\n OnDestroy,\n OnInit,\n signal,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {COMBOBOX_POPUP} from './combobox-tokens';\n\n/**\n * Identifies an element as a widget within a combobox popup.\n *\n * This directive should be applied to the element that contains the options or content\n * of the popup. It handles the communication of ID and active descendant information\n * to the combobox.\n */\n@Directive({\n selector: '[ngComboboxWidget]',\n exportAs: 'ngComboboxWidget',\n host: {\n '(focusin)': 'onFocusin()',\n '(focusout)': 'onFocusout($event)',\n },\n})\nexport class ComboboxWidget implements OnInit, OnDestroy {\n /** The element that the popup widget is attached to. */\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _popup = inject(COMBOBOX_POPUP);\n private readonly _idGenerator = inject(_IdGenerator);\n\n /** A reference to the popup widget element. */\n readonly element = this._elementRef.nativeElement;\n\n /** The ID of the popup widget. */\n readonly popupId = signal<string | undefined>(undefined);\n\n /** The ID of the active descendant in the widget. */\n readonly activeDescendant = input<string | undefined>(undefined);\n\n private _observer: MutationObserver | undefined;\n\n constructor() {\n const el = this.element;\n this._observer = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'id') {\n this.popupId.set(el.id);\n }\n }\n });\n\n this._observer.observe(el, {\n attributes: true,\n attributeFilter: ['id'],\n });\n\n afterNextRender(() => {\n // Imperative, not a host binding: the element's id may already be owned by another\n // directive (e.g. Listbox, Tree, Grid), so this can't collide with it.\n if (!el.id) {\n el.id = this._idGenerator.getId('ng-combobox-widget-', true);\n }\n // Set synchronously; the MutationObserver above only fires on the next microtask.\n this.popupId.set(el.id);\n });\n }\n\n ngOnInit() {\n this.popupId.set(this.element.id);\n this._popup._registerWidget(this);\n }\n\n ngOnDestroy(): void {\n this._observer?.disconnect();\n this._popup._unregisterWidget();\n }\n\n /** Handles focus in events for the widget. */\n onFocusin() {\n this._popup._pattern.onFocusin();\n }\n\n /** Handles focus out events for the widget. */\n onFocusout(event: FocusEvent) {\n this._popup._pattern.onFocusout(event);\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"combobox.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-popup.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/combobox/combobox-widget.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n afterRenderEffect,\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n OnInit,\n signal,\n Renderer2,\n} from '@angular/core';\nimport {DeferredContentAware, ComboboxPattern, tabIndexTransform} from '@angular/aria/private';\nimport type {ComboboxPopup} from './combobox-popup';\n\n/**\n * A directive that coordinates a combobox trigger element and its associated popup widget.\n *\n * The `ngCombobox` directive is applied directly to the interactive trigger element, which can be\n * either an editable `<input>` (for search/autocomplete behaviors) or a non-editable element like\n * a `<div>` (for custom select dropdowns). It manages focus and expansion states, coordinates autocomplete\n * suggestions (if editable), and forwards navigation keys down into the active popup.\n *\n * ### Example 1: Editable Autocomplete Input\n * ```html\n * <input ngCombobox #combobox=\"ngCombobox\" [(value)]=\"searchQuery\" [(expanded)]=\"isExpanded\" />\n *\n * <ng-template ngComboboxPopup [combobox]=\"combobox\">\n * <div ngComboboxWidget #listbox=\"ngListbox\" ngListbox [(value)]=\"selectedValues\" [activeDescendant]=\"listbox.activeDescendant()\">\n * <div ngOption value=\"first\">First Option</div>\n * <div ngOption value=\"second\">Second Option</div>\n * </div>\n * </ng-template>\n * ```\n *\n * ### Example 2: Non-Editable Custom Select Dropdown\n * ```html\n * <div ngCombobox #combobox=\"ngCombobox\" [(expanded)]=\"isExpanded\" class=\"select-trigger\">\n * {{selectedValue}}\n * </div>\n *\n * <ng-template ngComboboxPopup [combobox]=\"combobox\">\n * <div ngComboboxWidget #listbox=\"ngListbox\" ngListbox [(value)]=\"selectedValues\" [activeDescendant]=\"listbox.activeDescendant()\">\n * <div ngOption value=\"first\">First Option</div>\n * <div ngOption value=\"second\">Second Option</div>\n * </div>\n * </ng-template>\n * ```\n */\n@Directive({\n selector: '[ngCombobox]',\n exportAs: 'ngCombobox',\n host: {\n 'role': 'combobox',\n '[attr.aria-autocomplete]': '_pattern.autocomplete()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-readonly]': '_pattern.ariaReadonly()',\n '[attr.aria-expanded]': '_pattern.isExpanded()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '[attr.aria-controls]': '_pattern.popupId()',\n '[attr.aria-haspopup]': '_pattern.popupType()',\n '[attr.tabindex]':\n 'disabled() && !softDisabled() ? -1 : (tabIndex() !== undefined ? tabIndex() : 0)',\n '[attr.disabled]': '_pattern.nativeDisabled()',\n '[attr.readonly]': '_pattern.nativeReadonly()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(focusin)': '_pattern.onFocusin()',\n '(focusout)': '_pattern.onFocusout()',\n '(click)': '_pattern.onClick($event)',\n '(input)': '_pattern.onInput($event)',\n },\n})\nexport class Combobox extends DeferredContentAware implements OnInit {\n private readonly _renderer = inject(Renderer2);\n\n /** The element that the combobox is attached to. */\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** A reference to the input element. */\n readonly element = this._elementRef.nativeElement;\n\n /** The popup associated with the combobox. */\n readonly _popup = signal<ComboboxPopup | undefined>(undefined);\n\n /** Whether the combobox is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the combobox is readonly. */\n readonly readonly = input(false, {transform: booleanAttribute});\n\n /** Whether the combobox is soft disabled (remains focusable). */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** Whether the combobox should always remain expanded. */\n readonly alwaysExpanded = input(false, {transform: booleanAttribute});\n\n /** The tabindex of the combobox. */\n readonly tabIndex = input(undefined, {\n alias: 'tabindex',\n transform: tabIndexTransform,\n });\n\n /** Whether the combobox is expanded. */\n readonly expanded = model<boolean>(false);\n\n /** The value of the combobox input. */\n readonly value = model<string>('');\n\n /** An inline suggestion to be displayed in the input. */\n readonly inlineSuggestion = input<string | undefined>(undefined);\n\n /** The combobox ui pattern. */\n readonly _pattern = new ComboboxPattern({\n ...this,\n readonly: () => this.readonly(),\n element: () => this.element,\n expandable: () => true,\n popup: computed(() => this._popup()?._pattern),\n });\n\n constructor() {\n super();\n\n afterRenderEffect({write: () => this._pattern.keyboardEventRelayEffect()});\n afterRenderEffect(() => {\n this.contentVisible.set(this._pattern.isExpanded());\n });\n\n if (this._pattern.isEditable()) {\n afterRenderEffect(() => {\n this._renderer.setProperty(this.element, 'value', this.value());\n });\n afterRenderEffect(() => {\n this._pattern.highlightEffect();\n });\n }\n }\n\n ngOnInit() {\n if (this.alwaysExpanded()) {\n this.expanded.set(true);\n }\n }\n\n /** Registers a popup with the combobox. */\n _registerPopup(popup: ComboboxPopup) {\n this._popup.set(popup);\n }\n\n /** Unregisters the popup from the combobox. */\n _unregisterPopup() {\n this._popup.set(undefined);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {InjectionToken} from '@angular/core';\nimport type {ComboboxPopup} from './combobox-popup';\n\n/** Token used to expose the combobox popup. */\nexport const COMBOBOX_POPUP = new InjectionToken<ComboboxPopup>('COMBOBOX_POPUP');\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {computed, Directive, inject, input, OnDestroy, OnInit, signal} from '@angular/core';\nimport {DeferredContent, ComboboxPopupPattern} from '@angular/aria/private';\nimport type {Combobox} from './combobox';\nimport type {ComboboxWidget} from './combobox-widget';\nimport {COMBOBOX_POPUP} from './combobox-tokens';\n\n/**\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 any element with the `ngComboboxWidget` directive.\n *\n * ```html\n * <ng-template ngComboboxPopup>\n * <div ngComboboxWidget>\n * <!-- ... options ... -->\n * </div>\n * </ng-template>\n * ```\n */\n@Directive({\n selector: 'ng-template[ngComboboxPopup]',\n exportAs: 'ngComboboxPopup',\n hostDirectives: [DeferredContent],\n providers: [{provide: COMBOBOX_POPUP, useExisting: ComboboxPopup}],\n})\nexport class ComboboxPopup implements OnInit, OnDestroy {\n private readonly _deferredContent = inject(DeferredContent);\n\n /** The combobox that the popup belongs to. */\n readonly combobox = input.required<Combobox>();\n\n /** The widget contained within the popup. */\n readonly _widget = signal<ComboboxWidget | undefined>(undefined);\n\n /** The element that serves as the control target for the popup. */\n readonly controlTarget = computed(() => this._widget()?.element);\n\n /** The ID of the popup. */\n readonly popupId = computed(() => this._widget()?.popupId());\n\n /** The ID of the active descendant in the popup. */\n readonly activeDescendant = computed(() => this._widget()?.activeDescendant());\n\n /** The type of the popup (e.g., listbox, tree, grid, dialog). */\n readonly popupType = input<'listbox' | 'tree' | 'grid' | 'dialog'>('listbox');\n\n /** The popup pattern. */\n readonly _pattern = new ComboboxPopupPattern({\n ...this,\n });\n\n ngOnInit() {\n this.combobox()._registerPopup(this);\n this._deferredContent.deferredContentAware.set(this.combobox());\n }\n\n ngOnDestroy() {\n this.combobox()._unregisterPopup();\n }\n\n /** Registers a widget with the popup. */\n _registerWidget(widget: ComboboxWidget) {\n this._widget.set(widget);\n }\n\n /** Unregisters the widget from the popup. */\n _unregisterWidget() {\n this._widget.set(undefined);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n afterNextRender,\n Directive,\n ElementRef,\n inject,\n input,\n OnDestroy,\n OnInit,\n signal,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {COMBOBOX_POPUP} from './combobox-tokens';\n\n/**\n * Identifies an element as a widget within a combobox popup.\n *\n * This directive should be applied to the element that contains the options or content\n * of the popup. It handles the communication of ID and active descendant information\n * to the combobox.\n */\n@Directive({\n selector: '[ngComboboxWidget]',\n exportAs: 'ngComboboxWidget',\n host: {\n '(focusin)': 'onFocusin()',\n '(focusout)': 'onFocusout($event)',\n },\n})\nexport class ComboboxWidget implements OnInit, OnDestroy {\n /** The element that the popup widget is attached to. */\n private readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly _popup = inject(COMBOBOX_POPUP);\n private readonly _idGenerator = inject(_IdGenerator);\n\n /** A reference to the popup widget element. */\n readonly element = this._elementRef.nativeElement;\n\n /** The ID of the popup widget. */\n readonly popupId = signal<string | undefined>(undefined);\n\n /** The ID of the active descendant in the widget. */\n readonly activeDescendant = input<string | undefined>(undefined);\n\n private _observer: MutationObserver | undefined;\n\n constructor() {\n const el = this.element;\n this._observer = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n if (mutation.attributeName === 'id') {\n this.popupId.set(el.id);\n }\n }\n });\n\n this._observer.observe(el, {\n attributes: true,\n attributeFilter: ['id'],\n });\n\n afterNextRender(() => {\n // Imperative, not a host binding: the element's id may already be owned by another\n // directive (e.g. Listbox, Tree, Grid), so this can't collide with it.\n if (!el.id) {\n el.id = this._idGenerator.getId('ng-combobox-widget-', true);\n }\n // Set synchronously; the MutationObserver above only fires on the next microtask.\n this.popupId.set(el.id);\n });\n }\n\n ngOnInit() {\n this.popupId.set(this.element.id);\n this._popup._registerWidget(this);\n }\n\n ngOnDestroy(): void {\n this._observer?.disconnect();\n this._popup._unregisterWidget();\n }\n\n /** Handles focus in events for the widget. */\n onFocusin() {\n this._popup._pattern.onFocusin();\n }\n\n /** Handles focus out events for the widget. */\n onFocusout(event: FocusEvent) {\n this._popup._pattern.onFocusout(event);\n }\n}\n"],"names":[],"mappings":"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"}
package/fesm2022/grid.mjs CHANGED
@@ -5,7 +5,6 @@ import { tabIndexTransform } from './_transforms-chunk.mjs';
5
5
  import { GridPattern, GridCellWidgetPattern, GridCellPattern, GridRowPattern } from './_widget-chunk.mjs';
6
6
  import { SortedCollection, reportViolations } from './_violations-chunk.mjs';
7
7
  import { _IdGenerator } from '@angular/cdk/a11y';
8
- import '@angular/cdk/platform';
9
8
  import './_click-event-manager-chunk.mjs';
10
9
  import '@angular/core/primitives/signals';
11
10
 
@@ -124,7 +123,7 @@ class Grid {
124
123
  }
125
124
  static ɵfac = i0.ɵɵngDeclareFactory({
126
125
  minVersion: "12.0.0",
127
- version: "22.1.2",
126
+ version: "22.2.0-next.1",
128
127
  ngImport: i0,
129
128
  type: Grid,
130
129
  deps: [],
@@ -132,7 +131,7 @@ class Grid {
132
131
  });
133
132
  static ɵdir = i0.ɵɵngDeclareDirective({
134
133
  minVersion: "17.1.0",
135
- version: "22.1.2",
134
+ version: "22.2.0-next.1",
136
135
  type: Grid,
137
136
  isStandalone: true,
138
137
  selector: "[ngGrid]",
@@ -228,7 +227,7 @@ class Grid {
228
227
  }
229
228
  i0.ɵɵngDeclareClassMetadata({
230
229
  minVersion: "12.0.0",
231
- version: "22.1.2",
230
+ version: "22.2.0-next.1",
232
231
  ngImport: i0,
233
232
  type: Grid,
234
233
  decorators: [{
@@ -386,7 +385,7 @@ class GridCellWidget {
386
385
  }
387
386
  static ɵfac = i0.ɵɵngDeclareFactory({
388
387
  minVersion: "12.0.0",
389
- version: "22.1.2",
388
+ version: "22.2.0-next.1",
390
389
  ngImport: i0,
391
390
  type: GridCellWidget,
392
391
  deps: [],
@@ -394,7 +393,7 @@ class GridCellWidget {
394
393
  });
395
394
  static ɵdir = i0.ɵɵngDeclareDirective({
396
395
  minVersion: "17.1.0",
397
- version: "22.1.2",
396
+ version: "22.2.0-next.1",
398
397
  type: GridCellWidget,
399
398
  isStandalone: true,
400
399
  selector: "[ngGridCellWidget]",
@@ -453,7 +452,7 @@ class GridCellWidget {
453
452
  }
454
453
  i0.ɵɵngDeclareClassMetadata({
455
454
  minVersion: "12.0.0",
456
- version: "22.1.2",
455
+ version: "22.2.0-next.1",
457
456
  ngImport: i0,
458
457
  type: GridCellWidget,
459
458
  decorators: [{
@@ -636,7 +635,7 @@ class GridCell {
636
635
  }
637
636
  static ɵfac = i0.ɵɵngDeclareFactory({
638
637
  minVersion: "12.0.0",
639
- version: "22.1.2",
638
+ version: "22.2.0-next.1",
640
639
  ngImport: i0,
641
640
  type: GridCell,
642
641
  deps: [],
@@ -644,7 +643,7 @@ class GridCell {
644
643
  });
645
644
  static ɵdir = i0.ɵɵngDeclareDirective({
646
645
  minVersion: "17.2.0",
647
- version: "22.1.2",
646
+ version: "22.2.0-next.1",
648
647
  type: GridCell,
649
648
  isStandalone: true,
650
649
  selector: "[ngGridCell]",
@@ -740,7 +739,7 @@ class GridCell {
740
739
  }
741
740
  i0.ɵɵngDeclareClassMetadata({
742
741
  minVersion: "12.0.0",
743
- version: "22.1.2",
742
+ version: "22.2.0-next.1",
744
743
  ngImport: i0,
745
744
  type: GridCell,
746
745
  decorators: [{
@@ -884,7 +883,7 @@ class GridRow {
884
883
  }
885
884
  static ɵfac = i0.ɵɵngDeclareFactory({
886
885
  minVersion: "12.0.0",
887
- version: "22.1.2",
886
+ version: "22.2.0-next.1",
888
887
  ngImport: i0,
889
888
  type: GridRow,
890
889
  deps: [],
@@ -892,7 +891,7 @@ class GridRow {
892
891
  });
893
892
  static ɵdir = i0.ɵɵngDeclareDirective({
894
893
  minVersion: "17.1.0",
895
- version: "22.1.2",
894
+ version: "22.2.0-next.1",
896
895
  type: GridRow,
897
896
  isStandalone: true,
898
897
  selector: "[ngGridRow]",
@@ -923,7 +922,7 @@ class GridRow {
923
922
  }
924
923
  i0.ɵɵngDeclareClassMetadata({
925
924
  minVersion: "12.0.0",
926
- version: "22.1.2",
925
+ version: "22.2.0-next.1",
927
926
  ngImport: i0,
928
927
  type: GridRow,
929
928
  decorators: [{
@@ -954,5 +953,5 @@ i0.ɵɵngDeclareClassMetadata({
954
953
  }
955
954
  });
956
955
 
957
- export { Grid, GridCell, GridCellWidget, GridRow };
956
+ export { GRID, GRID_CELL, GRID_ROW, Grid, GridCell, GridCellWidget, GridRow };
958
957
  //# sourceMappingURL=grid.mjs.map