@angular/aria 22.0.0-next.5 → 22.0.0-next.7

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 (56) hide show
  1. package/fesm2022/_combobox-chunk.mjs +51 -2
  2. package/fesm2022/_combobox-chunk.mjs.map +1 -1
  3. package/fesm2022/_combobox-listbox-chunk.mjs +3 -0
  4. package/fesm2022/_combobox-listbox-chunk.mjs.map +1 -1
  5. package/fesm2022/_combobox-tree-chunk.mjs.map +1 -1
  6. package/fesm2022/_deferred-content-chunk.mjs +16 -14
  7. package/fesm2022/_deferred-content-chunk.mjs.map +1 -1
  8. package/fesm2022/_list-navigation-chunk.mjs +3 -1
  9. package/fesm2022/_list-navigation-chunk.mjs.map +1 -1
  10. package/fesm2022/_signal-like-chunk.mjs +0 -1
  11. package/fesm2022/_signal-like-chunk.mjs.map +1 -1
  12. package/fesm2022/_tabs-chunk.mjs +22 -47
  13. package/fesm2022/_tabs-chunk.mjs.map +1 -1
  14. package/fesm2022/_widget-chunk.mjs +55 -13
  15. package/fesm2022/_widget-chunk.mjs.map +1 -1
  16. package/fesm2022/accordion.mjs +16 -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 +59 -34
  21. package/fesm2022/combobox.mjs.map +1 -1
  22. package/fesm2022/grid-testing.mjs +72 -0
  23. package/fesm2022/grid-testing.mjs.map +1 -0
  24. package/fesm2022/grid.mjs +83 -37
  25. package/fesm2022/grid.mjs.map +1 -1
  26. package/fesm2022/listbox.mjs +58 -31
  27. package/fesm2022/listbox.mjs.map +1 -1
  28. package/fesm2022/menu.mjs +41 -35
  29. package/fesm2022/menu.mjs.map +1 -1
  30. package/fesm2022/private.mjs +156 -5
  31. package/fesm2022/private.mjs.map +1 -1
  32. package/fesm2022/simple-combobox.mjs +443 -0
  33. package/fesm2022/simple-combobox.mjs.map +1 -0
  34. package/fesm2022/tabs.mjs +243 -218
  35. package/fesm2022/tabs.mjs.map +1 -1
  36. package/fesm2022/toolbar.mjs +11 -11
  37. package/fesm2022/toolbar.mjs.map +1 -1
  38. package/fesm2022/tree.mjs +65 -33
  39. package/fesm2022/tree.mjs.map +1 -1
  40. package/package.json +10 -2
  41. package/types/_combobox-chunk.d.ts +32 -2
  42. package/types/_grid-chunk.d.ts +16 -8
  43. package/types/_tabs-chunk.d.ts +7 -42
  44. package/types/combobox.d.ts +4 -3
  45. package/types/grid-testing.d.ts +79 -0
  46. package/types/grid.d.ts +14 -6
  47. package/types/listbox.d.ts +8 -6
  48. package/types/menu.d.ts +7 -4
  49. package/types/private.d.ts +106 -10
  50. package/types/simple-combobox.d.ts +124 -0
  51. package/types/tabs.d.ts +79 -74
  52. package/types/tree.d.ts +5 -2
  53. package/fesm2022/_pointer-event-manager-chunk.mjs +0 -54
  54. package/fesm2022/_pointer-event-manager-chunk.mjs.map +0 -1
  55. package/resources/code-examples.db +0 -0
  56. package/types/_pointer-event-manager-chunk.d.ts +0 -34
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab-tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab-list.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab-panel.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tabs.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab-content.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 {InjectionToken} from '@angular/core';\nimport type {Tabs} from './tabs';\n\n/** Token used to expose the `Tabs` directive to child directives. */\nexport const TABS = new InjectionToken<Tabs>('TABS');\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 {Directionality} from '@angular/cdk/bidi';\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n signal,\n afterRenderEffect,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {TabListPattern, TabPattern, sortDirectives} from '../private';\nimport {TABS} from './tab-tokens';\nimport type {Tab} from './tab';\n\n/**\n * A TabList container.\n *\n * The `ngTabList` directive controls a list of `ngTab` elements. It manages keyboard\n * navigation, selection, and the overall orientation of the tabs. It should be placed\n * within an `ngTabs` container.\n *\n * ```html\n * <ul ngTabList [(selectedTab)]=\"mySelectedTab\" orientation=\"horizontal\" selectionMode=\"explicit\">\n * <li ngTab value=\"first\">First Tab</li>\n * <li ngTab value=\"second\">Second Tab</li>\n * </ul>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: '[ngTabList]',\n exportAs: 'ngTabList',\n host: {\n 'role': 'tablist',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocusIn()',\n },\n})\nexport class TabList implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Tabs. */\n private readonly _tabs = inject(TABS);\n\n /** The Tabs nested inside of the TabList. */\n private readonly _unorderedTabs = signal(new Set<Tab>());\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The Tab UIPatterns of the child Tabs. */\n readonly _tabPatterns = computed<TabPattern[]>(() =>\n [...this._unorderedTabs()].sort(sortDirectives).map(tab => tab._pattern),\n );\n\n /** Whether the tablist is vertically or horizontally oriented. */\n readonly orientation = input<'vertical' | 'horizontal'>('horizontal');\n\n /** Whether focus should wrap when navigating. */\n readonly wrap = 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 /**\n * The focus strategy used by the tablist.\n * - `roving`: Focus is moved to the active tab using `tabindex`.\n * - `activedescendant`: Focus remains on the tablist container, and `aria-activedescendant` is used to indicate the active tab.\n */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /**\n * The selection strategy used by the tablist.\n * - `follow`: The focused tab is automatically selected.\n * - `explicit`: Tabs are selected explicitly by the user (e.g., via click or spacebar).\n */\n readonly selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** The current selected tab. */\n readonly selectedTab = model<string | undefined>();\n\n /** Whether the tablist is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The TabList UIPattern. */\n readonly _pattern: TabListPattern = new TabListPattern({\n ...this,\n items: this._tabPatterns,\n activeItem: signal(undefined),\n element: () => this._elementRef.nativeElement,\n });\n\n constructor() {\n afterRenderEffect(() => {\n this._pattern.setDefaultStateEffect();\n });\n\n afterRenderEffect(() => {\n const tab = this._pattern.selectedTab();\n if (tab) {\n this.selectedTab.set(tab.value());\n }\n });\n\n afterRenderEffect(() => {\n const value = this.selectedTab();\n if (value) {\n this._tabPatterns().forEach(tab => tab.expanded.set(false));\n const tab = this._tabPatterns().find(t => t.value() === value);\n this._pattern.selectedTab.set(tab);\n tab?.expanded.set(true);\n }\n });\n }\n\n ngOnInit() {\n this._tabs._register(this);\n }\n\n ngOnDestroy() {\n this._tabs._unregister(this);\n }\n\n _register(child: Tab) {\n this._unorderedTabs().add(child);\n this._unorderedTabs.set(new Set(this._unorderedTabs()));\n }\n\n _unregister(child: Tab) {\n this._unorderedTabs().delete(child);\n this._unorderedTabs.set(new Set(this._unorderedTabs()));\n }\n\n /** Opens the tab panel with the specified value. */\n open(value: string): boolean {\n return this._pattern.open(value);\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 {_IdGenerator} from '@angular/cdk/a11y';\nimport {\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n afterRenderEffect,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {TabPanelPattern, DeferredContentAware} from '../private';\nimport {TABS} from './tab-tokens';\n\n/**\n * A TabPanel container for the resources of layered content associated with a tab.\n *\n * The `ngTabPanel` directive holds the content for a specific tab. It is linked to an\n * `ngTab` by a matching `value`. If a tab panel is hidden, the `inert` attribute will be\n * applied to remove it from the accessibility tree. Proper styling is required for visual hiding.\n *\n * ```html\n * <div ngTabPanel value=\"myTabId\">\n * <ng-template ngTabContent>\n * <!-- Content for the tab panel -->\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: '[ngTabPanel]',\n exportAs: 'ngTabPanel',\n host: {\n 'role': 'tabpanel',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.inert]': '!visible() ? true : null',\n '[attr.aria-labelledby]': '_pattern.labelledBy()',\n },\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n})\nexport class TabPanel implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n /** The parent Tabs. */\n private readonly _tabs = inject(TABS);\n\n /** A global unique identifier for the tab. */\n readonly id = input(inject(_IdGenerator).getId('ng-tabpanel-', true));\n\n /** The Tab UIPattern associated with the tabpanel */\n private readonly _tabPattern = computed(() =>\n this._tabs._tabPatterns()?.find(tab => tab.value() === this.value()),\n );\n\n /** A local unique identifier for the tabpanel. */\n readonly value = input.required<string>();\n\n /** Whether the tab panel is visible. */\n readonly visible = computed(() => !this._pattern.hidden());\n\n /** The TabPanel UIPattern. */\n readonly _pattern: TabPanelPattern = new TabPanelPattern({\n ...this,\n tab: this._tabPattern,\n });\n\n constructor() {\n afterRenderEffect(() => this._deferredContentAware.contentVisible.set(this.visible()));\n }\n\n ngOnInit() {\n this._tabs._register(this);\n }\n\n ngOnDestroy() {\n this._tabs._unregister(this);\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 {computed, Directive, ElementRef, inject, signal} from '@angular/core';\nimport {TabList} from './tab-list';\nimport {TabPanel} from './tab-panel';\nimport {TABS} from './tab-tokens';\nimport {TabPanelPattern, TabPattern} from '../private';\n\n/**\n * A Tabs container.\n *\n * The `ngTabs` directive represents a set of layered sections of content. It acts as the\n * overarching container for a tabbed interface, coordinating the behavior of `ngTabList`,\n * `ngTab`, and `ngTabPanel` directives.\n *\n * ```html\n * <div ngTabs>\n * <ul ngTabList [(selectedTab)]=\"selectedTabValue\">\n * <li ngTab value=\"tab1\">Tab 1</li>\n * <li ngTab value=\"tab2\">Tab 2</li>\n * <li ngTab value=\"tab3\">Tab 3</li>\n * </ul>\n *\n * <div ngTabPanel value=\"tab1\">\n * <ng-template ngTabContent>Content for Tab 1</ng-template>\n * </div>\n * <div ngTabPanel value=\"tab2\">\n * <ng-template ngTabContent>Content for Tab 2</ng-template>\n * </div>\n * <div ngTabPanel value=\"tab3\">\n * <ng-template ngTabContent>Content for Tab 3</ng-template>\n * </div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: '[ngTabs]',\n exportAs: 'ngTabs',\n providers: [{provide: TABS, useExisting: Tabs}],\n})\nexport class Tabs {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The TabList nested inside of the container. */\n private readonly _tablist = signal<TabList | undefined>(undefined);\n\n /** The TabPanels nested inside of the container. */\n private readonly _unorderedPanels = signal(new Set<TabPanel>());\n\n /** The Tab UIPattern of the child Tabs. */\n readonly _tabPatterns = computed<TabPattern[] | undefined>(() => this._tablist()?._tabPatterns());\n\n /** The TabPanel UIPattern of the child TabPanels. */\n readonly _unorderedTabpanelPatterns = computed<TabPanelPattern[]>(() =>\n [...this._unorderedPanels()].map(tabpanel => tabpanel._pattern),\n );\n\n _register(child: TabList | TabPanel) {\n if (child instanceof TabList) {\n this._tablist.set(child);\n }\n\n if (child instanceof TabPanel) {\n this._unorderedPanels().add(child);\n this._unorderedPanels.set(new Set(this._unorderedPanels()));\n }\n }\n\n _unregister(child: TabList | TabPanel) {\n if (child instanceof TabList) {\n this._tablist.set(undefined);\n }\n\n if (child instanceof TabPanel) {\n this._unorderedPanels().delete(child);\n this._unorderedPanels.set(new Set(this._unorderedPanels()));\n }\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 {_IdGenerator} from '@angular/cdk/a11y';\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n signal,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {TabPattern, HasElement} from '../private';\nimport {TabList} from './tab-list';\nimport {TABS} from './tab-tokens';\n\n/**\n * A selectable tab in a TabList.\n *\n * The `ngTab` directive represents an individual tab control within an `ngTabList`. It\n * requires a `value` that uniquely identifies it and links it to a corresponding `ngTabPanel`.\n *\n * ```html\n * <li ngTab value=\"myTabId\" [disabled]=\"isTabDisabled\">\n * My Tab Label\n * </li>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: '[ngTab]',\n exportAs: 'ngTab',\n host: {\n 'role': 'tab',\n '[attr.data-active]': 'active()',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-controls]': '_pattern.controls()',\n },\n})\nexport class Tab implements HasElement, OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Tabs. */\n private readonly _tabs = inject(TABS);\n\n /** The parent TabList. */\n private readonly _tabList = inject(TabList);\n\n /** A unique identifier for the widget. */\n readonly id = input(inject(_IdGenerator).getId('ng-tab-', true));\n\n /** The parent TabList UIPattern. */\n private readonly _tablistPattern = computed(() => this._tabList._pattern);\n\n /** The TabPanel UIPattern associated with the tab */\n private readonly _tabpanelPattern = computed(() =>\n this._tabs._unorderedTabpanelPatterns().find(tabpanel => tabpanel.value() === this.value()),\n );\n\n /** Whether a tab is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The remote tabpanel unique identifier. */\n readonly value = input.required<string>();\n\n /** Whether the tab is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** Whether the tab is selected. */\n readonly selected = computed(() => this._pattern.selected());\n\n /** The Tab UIPattern. */\n readonly _pattern: TabPattern = new TabPattern({\n ...this,\n tablist: this._tablistPattern,\n tabpanel: this._tabpanelPattern,\n expanded: signal(false),\n element: () => this.element,\n });\n\n /** Opens this tab panel. */\n open() {\n this._pattern.open();\n }\n\n ngOnInit() {\n this._tabList._register(this);\n }\n\n ngOnDestroy() {\n this._tabList._unregister(this);\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 {Directive} from '@angular/core';\nimport {DeferredContent} from '../private';\n\n/**\n * A TabContent container for the lazy-loaded content.\n *\n * This structural directive should be applied to an `ng-template` within an `ngTabPanel`.\n * It enables lazy loading of the tab's content, meaning the content is only rendered\n * when the tab is activated for the first time.\n *\n * ```html\n * <div ngTabPanel value=\"myTabId\">\n * <ng-template ngTabContent>\n * <p>This content will be loaded when 'myTabId' is selected.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: 'ng-template[ngTabContent]',\n exportAs: 'ngTabContent',\n hostDirectives: [DeferredContent],\n})\nexport class TabContent {}\n"],"names":["TABS","InjectionToken","TabList","_elementRef","inject","ElementRef","element","nativeElement","_tabs","_unorderedTabs","signal","Set","textDirection","Directionality","valueSignal","_tabPatterns","computed","sort","sortDirectives","map","tab","_pattern","orientation","input","wrap","transform","booleanAttribute","softDisabled","focusMode","selectionMode","selectedTab","model","disabled","TabListPattern","items","activeItem","undefined","constructor","afterRenderEffect","setDefaultStateEffect","set","value","forEach","expanded","find","t","ngOnInit","_register","ngOnDestroy","_unregister","child","add","delete","open","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","exportAs","ngImport","decorators","args","TabPanel","_deferredContentAware","DeferredContentAware","id","_IdGenerator","getId","_tabPattern","required","visible","hidden","TabPanelPattern","contentVisible","hostDirectives","directive","i1","Tabs","_tablist","_unorderedPanels","_unorderedTabpanelPatterns","tabpanel","providers","provide","useExisting","Tab","_tabList","_tablistPattern","_tabpanelPattern","active","selected","TabPattern","tablist","TabContent","DeferredContent"],"mappings":"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"}
1
+ {"version":3,"file":"tabs.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab-tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tabs.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab-list.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab-panel.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab-content.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 {InjectionToken} from '@angular/core';\nimport type {Tabs} from './tabs';\nimport type {TabList} from './tab-list';\n\n/** Token used to expose the `Tabs` directive to child directives. */\nexport const TABS = new InjectionToken<Tabs>('TABS');\n\n/** Token used to expose the tab list. */\nexport const TAB_LIST = new InjectionToken<TabList>('TAB_LIST');\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 {Directive, ElementRef, afterRenderEffect, computed, inject, signal} from '@angular/core';\nimport {TabList} from './tab-list';\nimport {TabPanel} from './tab-panel';\nimport {TABS} from './tab-tokens';\n\n/**\n * A Tabs container.\n *\n * The `ngTabs` directive represents a set of layered sections of content. It acts as the\n * overarching container for a tabbed interface, coordinating the behavior of `ngTabList`,\n * `ngTab`, and `ngTabPanel` directives.\n *\n * ```html\n * <div ngTabs>\n * <ul ngTabList [(selectedTab)]=\"selectedTabValue\">\n * <li ngTab value=\"tab1\">Tab 1</li>\n * <li ngTab value=\"tab2\">Tab 2</li>\n * <li ngTab value=\"tab3\">Tab 3</li>\n * </ul>\n *\n * <div ngTabPanel value=\"tab1\">\n * <ng-template ngTabContent>Content for Tab 1</ng-template>\n * </div>\n * <div ngTabPanel value=\"tab2\">\n * <ng-template ngTabContent>Content for Tab 2</ng-template>\n * </div>\n * <div ngTabPanel value=\"tab3\">\n * <ng-template ngTabContent>Content for Tab 3</ng-template>\n * </div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: '[ngTabs]',\n exportAs: 'ngTabs',\n providers: [{provide: TABS, useExisting: Tabs}],\n})\nexport class Tabs {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The TabList registered for this container. */\n private readonly _tabList = signal<TabList | undefined>(undefined);\n\n /** The TabPanels registered for this container. */\n private readonly _tabPanels = signal(new Set<TabPanel>());\n\n /** The TabPanels registered for this container. */\n private readonly _tabPanelsList = computed(() => [...this._tabPanels()]);\n\n constructor() {\n // This needs to be in an afterRenderEffect to ensure the tabs have all been initialized.\n // Otherwise, the lookup here can fail and it does not get re-run afterwards.\n afterRenderEffect({\n write: () => {\n if (this._tabList()) {\n for (const tab of this._tabList()!._sortedTabs()) {\n const panel = this._tabPanelsList().find(panel => panel === tab.panel());\n\n if (panel) {\n panel._tabPattern.set(tab._pattern);\n }\n }\n }\n },\n });\n }\n\n _registerList(list: TabList) {\n this._tabList.set(list);\n }\n\n _unregisterList(list: TabList) {\n this._tabList.set(undefined);\n }\n\n _registerPanel(panel: TabPanel) {\n this._tabPanels().add(panel);\n this._tabPanels.set(new Set(this._tabPanels()));\n }\n\n _unregisterPanel(panel: TabPanel) {\n this._tabPanels().delete(panel);\n this._tabPanels.set(new Set(this._tabPanels()));\n }\n\n findTabPanel(value?: string) {\n return value ? this._tabPanelsList().find(panel => panel.value() === value) : 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 {Directionality} from '@angular/cdk/bidi';\nimport {\n Directive,\n ElementRef,\n OnDestroy,\n OnInit,\n WritableSignal,\n afterRenderEffect,\n booleanAttribute,\n computed,\n inject,\n input,\n linkedSignal,\n model,\n signal,\n} from '@angular/core';\nimport {TabListPattern, TabPattern, sortDirectives} from '../private';\nimport {Tab} from './tab';\nimport {TABS, TAB_LIST} from './tab-tokens';\n\n/**\n * A TabList container.\n *\n * The `ngTabList` directive controls a list of `ngTab` elements. It manages keyboard\n * navigation, selection, and the overall orientation of the tabs. It should be placed\n * within an `ngTabs` container.\n *\n * ```html\n * <ul ngTabList [(selectedTab)]=\"mySelectedTab\" orientation=\"horizontal\" selectionMode=\"explicit\">\n * <li ngTab value=\"first\">First Tab</li>\n * <li ngTab value=\"second\">Second Tab</li>\n * </ul>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: '[ngTabList]',\n exportAs: 'ngTabList',\n host: {\n 'role': 'tablist',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(focusin)': '_pattern.onFocusIn()',\n },\n providers: [{provide: TAB_LIST, useExisting: TabList}],\n})\nexport class TabList implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Tabs container. */\n private readonly _tabsParent = inject(TABS);\n\n /** The Tabs registered for this TabList. */\n private readonly _tabs = signal(new Set<Tab>());\n\n /** The Tabs registered for this TabList. */\n readonly _sortedTabs = computed(() => [...this._tabs()].sort(sortDirectives));\n\n /** The Tab UIPatterns of the child Tabs. */\n private readonly _tabPatterns = computed(() => [...this._sortedTabs()].map(tab => tab._pattern));\n\n /** Whether the tablist is vertically or horizontally oriented. */\n readonly orientation = input<'vertical' | 'horizontal'>('horizontal');\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Whether focus should wrap when navigating. */\n readonly wrap = 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 /**\n * The focus strategy used by the tablist.\n * - `roving`: Focus is moved to the active tab using `tabindex`.\n * - `activedescendant`: Focus remains on the tablist container, and `aria-activedescendant` is used to indicate the active tab.\n */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /**\n * The selection strategy used by the tablist.\n * - `follow`: The focused tab is automatically selected.\n * - `explicit`: Tabs are selected explicitly by the user (e.g., via click or spacebar).\n */\n readonly selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** The current selected tab as a model input. */\n readonly selectedTab = model<string | undefined>();\n\n /** The current selected Tab pattern, passed to the List pattern. */\n private readonly _selectedTabPattern: WritableSignal<TabPattern | undefined> = linkedSignal(\n () => {\n const tab = this.findTab(this.selectedTab());\n\n return tab?._pattern;\n },\n );\n\n /** Whether the tablist is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The TabList UIPattern. */\n readonly _pattern: TabListPattern = new TabListPattern({\n ...this,\n element: () => this._elementRef.nativeElement,\n activeItem: signal(undefined),\n items: this._tabPatterns,\n selectedTab: this._selectedTabPattern,\n });\n\n constructor() {\n // This needs to be in an afterRenderEffect to ensure the tabs have all been initialized.\n // Otherwise, the lookup here can fail and it does not get re-run afterwards.\n afterRenderEffect({\n write: () => {\n const pattern = this._selectedTabPattern();\n const tab = this._sortedTabs().find(tab => tab._pattern == pattern);\n\n this.selectedTab.set(tab?.value());\n },\n });\n\n afterRenderEffect({write: () => this._pattern.setDefaultStateEffect()});\n }\n\n ngOnInit() {\n this._tabsParent._registerList(this);\n }\n\n ngOnDestroy() {\n this._tabsParent._registerList(this);\n }\n\n _registerTab(child: Tab) {\n this._tabs().add(child);\n this._tabs.set(new Set(this._tabs()));\n }\n\n _unregisterTab(child: Tab) {\n this._tabs().delete(child);\n this._tabs.set(new Set(this._tabs()));\n }\n\n /** Opens the tab panel with the specified value. */\n open(value: string): boolean {\n return this._pattern.open(this.findTab(value)?._pattern);\n }\n\n findTab(value?: string) {\n return value ? this._sortedTabs().find(tab => tab.value() === value) : 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 {_IdGenerator} from '@angular/cdk/a11y';\nimport {\n Directive,\n ElementRef,\n OnDestroy,\n OnInit,\n booleanAttribute,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport {TabPattern, HasElement} from '../private';\nimport {TABS, TAB_LIST} from './tab-tokens';\n\n/**\n * A selectable tab in a TabList.\n *\n * The `ngTab` directive represents an individual tab control within an `ngTabList`. It\n * requires a `value` that uniquely identifies it and links it to a corresponding `ngTabPanel`.\n *\n * ```html\n * <li ngTab value=\"myTabId\" [disabled]=\"isTabDisabled\">\n * My Tab Label\n * </li>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: '[ngTab]',\n exportAs: 'ngTab',\n host: {\n 'role': 'tab',\n '[attr.data-active]': 'active()',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-controls]': '_pattern.controls()',\n },\n})\nexport class Tab implements HasElement, OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Tabs wrapper. */\n private readonly _tabsWrapper = inject(TABS);\n\n /** The parent TabList. */\n private readonly _tabList = inject(TAB_LIST);\n\n /** A unique identifier for the widget. */\n readonly id = input(inject(_IdGenerator).getId('ng-tab-', true));\n\n /** The panel associated with this tab. */\n readonly panel = computed(() => this._tabsWrapper.findTabPanel(this.value()));\n\n /** Whether a tab is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The remote tabpanel unique identifier. */\n readonly value = input.required<string>();\n\n /** Whether the tab is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** Whether the tab is selected. */\n readonly selected = computed(() => this._pattern.selected());\n\n /** The Tab UIPattern. */\n readonly _pattern: TabPattern = new TabPattern({\n ...this,\n element: () => this.element,\n tabList: () => this._tabList._pattern,\n tabPanel: computed(() => this.panel()?._pattern),\n });\n\n /** Opens this tab panel. */\n open() {\n this._pattern.open();\n }\n\n ngOnInit() {\n this._tabList._registerTab(this);\n }\n\n ngOnDestroy() {\n this._tabList._unregisterTab(this);\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 {_IdGenerator} from '@angular/cdk/a11y';\nimport {\n Directive,\n ElementRef,\n OnDestroy,\n OnInit,\n WritableSignal,\n afterRenderEffect,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport {TabPattern, TabPanelPattern, DeferredContentAware} from '../private';\nimport {TABS} from './tab-tokens';\n\n/**\n * A TabPanel container for the resources of layered content associated with a tab.\n *\n * The `ngTabPanel` directive holds the content for a specific tab. It is linked to an\n * `ngTab` by a matching `value`. If a tab panel is hidden, the `inert` attribute will be\n * applied to remove it from the accessibility tree. Proper styling is required for visual hiding.\n *\n * ```html\n * <div ngTabPanel value=\"myTabId\">\n * <ng-template ngTabContent>\n * <!-- Content for the tab panel -->\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: '[ngTabPanel]',\n exportAs: 'ngTabPanel',\n host: {\n 'role': 'tabpanel',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.inert]': '!visible() ? true : null',\n '[attr.aria-labelledby]': '_pattern.labelledBy()',\n },\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n})\nexport class TabPanel implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n /** The parent Tabs. */\n private readonly _tabs = inject(TABS);\n\n /** A global unique identifier for the tab. */\n readonly id = input(inject(_IdGenerator).getId('ng-tabpanel-', true));\n\n /** The Tab UIPattern associated with the tabpanel */\n readonly _tabPattern: WritableSignal<TabPattern | undefined> = signal(undefined);\n\n /** A local unique identifier for the tabpanel. */\n readonly value = input.required<string>();\n\n /** Whether the tab panel is visible. */\n readonly visible = computed(() => !this._pattern.hidden());\n\n /** The TabPanel UIPattern. */\n readonly _pattern: TabPanelPattern = new TabPanelPattern({\n ...this,\n tab: this._tabPattern,\n });\n\n constructor() {\n afterRenderEffect({\n write: () => {\n this._deferredContentAware.contentVisible.set(this.visible());\n },\n });\n }\n\n ngOnInit() {\n this._tabs._registerPanel(this);\n }\n\n ngOnDestroy() {\n this._tabs._unregisterPanel(this);\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 {Directive} from '@angular/core';\nimport {DeferredContent} from '../private';\n\n/**\n * A TabContent container for the lazy-loaded content.\n *\n * This structural directive should be applied to an `ng-template` within an `ngTabPanel`.\n * It enables lazy loading of the tab's content, meaning the content is only rendered\n * when the tab is activated for the first time.\n *\n * ```html\n * <div ngTabPanel value=\"myTabId\">\n * <ng-template ngTabContent>\n * <p>This content will be loaded when 'myTabId' is selected.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Tabs](guide/aria/tabs)\n */\n@Directive({\n selector: 'ng-template[ngTabContent]',\n exportAs: 'ngTabContent',\n hostDirectives: [DeferredContent],\n})\nexport class TabContent {}\n"],"names":["TABS","InjectionToken","TAB_LIST","Tabs","_elementRef","inject","ElementRef","element","nativeElement","_tabList","signal","undefined","_tabPanels","Set","_tabPanelsList","computed","constructor","afterRenderEffect","write","tab","_sortedTabs","panel","find","_tabPattern","set","_pattern","_registerList","list","_unregisterList","_registerPanel","add","_unregisterPanel","delete","findTabPanel","value","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","providers","provide","useExisting","exportAs","ngImport","decorators","args","TabList","_tabsParent","_tabs","sort","sortDirectives","_tabPatterns","map","orientation","input","textDirection","Directionality","valueSignal","wrap","transform","booleanAttribute","softDisabled","focusMode","selectionMode","selectedTab","model","_selectedTabPattern","linkedSignal","findTab","disabled","TabListPattern","activeItem","items","pattern","setDefaultStateEffect","ngOnInit","ngOnDestroy","_registerTab","child","_unregisterTab","open","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","Tab","_tabsWrapper","id","_IdGenerator","getId","required","active","selected","TabPattern","tabList","tabPanel","TabPanel","_deferredContentAware","DeferredContentAware","visible","hidden","TabPanelPattern","contentVisible","hostDirectives","directive","i1","TabContent","DeferredContent"],"mappings":"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"}
@@ -54,8 +54,8 @@ class Toolbar {
54
54
  value: this.value
55
55
  });
56
56
  constructor() {
57
- afterRenderEffect(() => {
58
- this._pattern.setDefaultStateEffect();
57
+ afterRenderEffect({
58
+ write: () => this._pattern.setDefaultStateEffect()
59
59
  });
60
60
  }
61
61
  _register(widget) {
@@ -76,7 +76,7 @@ class Toolbar {
76
76
  }
77
77
  static ɵfac = i0.ɵɵngDeclareFactory({
78
78
  minVersion: "12.0.0",
79
- version: "22.0.0-next.6",
79
+ version: "22.0.0-next.9",
80
80
  ngImport: i0,
81
81
  type: Toolbar,
82
82
  deps: [],
@@ -84,7 +84,7 @@ class Toolbar {
84
84
  });
85
85
  static ɵdir = i0.ɵɵngDeclareDirective({
86
86
  minVersion: "17.1.0",
87
- version: "22.0.0-next.6",
87
+ version: "22.0.0-next.9",
88
88
  type: Toolbar,
89
89
  isStandalone: true,
90
90
  selector: "[ngToolbar]",
@@ -150,7 +150,7 @@ class Toolbar {
150
150
  }
151
151
  i0.ɵɵngDeclareClassMetadata({
152
152
  minVersion: "12.0.0",
153
- version: "22.0.0-next.6",
153
+ version: "22.0.0-next.9",
154
154
  ngImport: i0,
155
155
  type: Toolbar,
156
156
  decorators: [{
@@ -266,7 +266,7 @@ class ToolbarWidget {
266
266
  }
267
267
  static ɵfac = i0.ɵɵngDeclareFactory({
268
268
  minVersion: "12.0.0",
269
- version: "22.0.0-next.6",
269
+ version: "22.0.0-next.9",
270
270
  ngImport: i0,
271
271
  type: ToolbarWidget,
272
272
  deps: [],
@@ -274,7 +274,7 @@ class ToolbarWidget {
274
274
  });
275
275
  static ɵdir = i0.ɵɵngDeclareDirective({
276
276
  minVersion: "17.1.0",
277
- version: "22.0.0-next.6",
277
+ version: "22.0.0-next.9",
278
278
  type: ToolbarWidget,
279
279
  isStandalone: true,
280
280
  selector: "[ngToolbarWidget]",
@@ -320,7 +320,7 @@ class ToolbarWidget {
320
320
  }
321
321
  i0.ɵɵngDeclareClassMetadata({
322
322
  minVersion: "12.0.0",
323
- version: "22.0.0-next.6",
323
+ version: "22.0.0-next.9",
324
324
  ngImport: i0,
325
325
  type: ToolbarWidget,
326
326
  decorators: [{
@@ -402,7 +402,7 @@ class ToolbarWidgetGroup {
402
402
  });
403
403
  static ɵfac = i0.ɵɵngDeclareFactory({
404
404
  minVersion: "12.0.0",
405
- version: "22.0.0-next.6",
405
+ version: "22.0.0-next.9",
406
406
  ngImport: i0,
407
407
  type: ToolbarWidgetGroup,
408
408
  deps: [],
@@ -410,7 +410,7 @@ class ToolbarWidgetGroup {
410
410
  });
411
411
  static ɵdir = i0.ɵɵngDeclareDirective({
412
412
  minVersion: "17.2.0",
413
- version: "22.0.0-next.6",
413
+ version: "22.0.0-next.9",
414
414
  type: ToolbarWidgetGroup,
415
415
  isStandalone: true,
416
416
  selector: "[ngToolbarWidgetGroup]",
@@ -446,7 +446,7 @@ class ToolbarWidgetGroup {
446
446
  }
447
447
  i0.ɵɵngDeclareClassMetadata({
448
448
  minVersion: "12.0.0",
449
- version: "22.0.0-next.6",
449
+ version: "22.0.0-next.9",
450
450
  ngImport: i0,
451
451
  type: ToolbarWidgetGroup,
452
452
  decorators: [{
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/toolbar/toolbar.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/toolbar/toolbar-tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/toolbar/toolbar-widget.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/toolbar/toolbar-widget-group.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 Directive,\n ElementRef,\n inject,\n computed,\n input,\n booleanAttribute,\n signal,\n model,\n} from '@angular/core';\nimport {ToolbarPattern, ToolbarWidgetPattern, sortDirectives} from '../private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport type {ToolbarWidget} from './toolbar-widget';\n\n/**\n * A toolbar widget container for a group of interactive widgets, such as\n * buttons or radio groups. It provides a single point of reference for keyboard navigation\n * and focus management. It supports various orientations and disabled states.\n *\n * ```html\n * <div ngToolbar orientation=\"horizontal\" [wrap]=\"true\">\n * <button ngToolbarWidget value=\"save\">Save</button>\n * <button ngToolbarWidget value=\"print\">Print</button>\n *\n * <div ngToolbarWidgetGroup [(value)]=\"selectedAlignment\">\n * <button ngToolbarWidget value=\"left\">Left</button>\n * <button ngToolbarWidget value=\"center\">Center</button>\n * <button ngToolbarWidget value=\"right\">Right</button>\n * </div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Toolbar](guide/aria/toolbar)\n */\n@Directive({\n selector: '[ngToolbar]',\n exportAs: 'ngToolbar',\n host: {\n 'role': 'toolbar',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_pattern.onFocusIn()',\n },\n})\nexport class Toolbar<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The TabList nested inside of the container. */\n private readonly _widgets = signal(new Set<ToolbarWidget<V>>());\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Sorted UIPatterns of the child widgets */\n readonly _itemPatterns = computed<ToolbarWidgetPattern<V>[]>(() =>\n [...this._widgets()].sort(sortDirectives).map(widget => widget._pattern),\n );\n\n /** Whether the toolbar is vertically or horizontally oriented. */\n readonly orientation = input<'vertical' | 'horizontal'>('horizontal');\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 the toolbar is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether focus should wrap when navigating. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** The values of the selected widgets within the toolbar. */\n readonly value = model<V[]>([]);\n\n /** The toolbar UIPattern. */\n readonly _pattern: ToolbarPattern<V> = new ToolbarPattern<V>({\n ...this,\n items: this._itemPatterns,\n activeItem: signal(undefined),\n textDirection: this.textDirection,\n element: () => this._elementRef.nativeElement,\n getItem: e => this._getItem(e),\n value: this.value,\n });\n\n constructor() {\n afterRenderEffect(() => {\n this._pattern.setDefaultStateEffect();\n });\n }\n\n _register(widget: ToolbarWidget<V>) {\n const widgets = this._widgets();\n if (!widgets.has(widget)) {\n widgets.add(widget);\n this._widgets.set(new Set(widgets));\n }\n }\n\n _unregister(widget: ToolbarWidget<V>) {\n const widgets = this._widgets();\n if (widgets.delete(widget)) {\n this._widgets.set(new Set(widgets));\n }\n }\n\n /** Finds the toolbar item associated with a given element. */\n private _getItem(element: Element) {\n return this._itemPatterns().find(item => item.element()?.contains(element));\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 {ToolbarWidgetGroup} from './toolbar-widget-group';\n\n/** Token used to provide the `ToolbarWidgetGroup` directive. */\nexport const TOOLBAR_WIDGET_GROUP = new InjectionToken<ToolbarWidgetGroup<unknown>>(\n 'TOOLBAR_WIDGET_GROUP',\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 inject,\n computed,\n input,\n booleanAttribute,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {\n ToolbarWidgetPattern,\n ToolbarWidgetGroupPattern,\n SignalLike,\n ToolbarPattern,\n} from '../private';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Toolbar} from './toolbar';\nimport {TOOLBAR_WIDGET_GROUP} from './toolbar-tokens';\nimport type {ToolbarWidgetGroup} from './toolbar-widget-group';\n\n/**\n * A widget within a toolbar.\n *\n * The `ngToolbarWidget` directive should be applied to any native HTML element that acts\n * as an interactive widget within an `ngToolbar` or `ngToolbarWidgetGroup`. It enables\n * keyboard navigation and selection within the toolbar.\n *\n * ```html\n * <button ngToolbarWidget value=\"action-id\" [disabled]=\"isDisabled\">\n * Perform Action\n * </button>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Toolbar](guide/aria/toolbar)\n */\n@Directive({\n selector: '[ngToolbarWidget]',\n exportAs: 'ngToolbarWidget',\n host: {\n // Ensure the attribute is applied even when used as a host directive.\n 'ngToolbarWidget': '',\n '[attr.data-active]': 'active()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.inert]': 'hardDisabled() ? true : null',\n '[attr.disabled]': 'hardDisabled() ? true : null',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[id]': '_pattern.id()',\n },\n})\nexport class ToolbarWidget<V> implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Toolbar. */\n private readonly _toolbar = inject<Toolbar<V>>(Toolbar);\n\n /** A unique identifier for the widget. */\n readonly id = input(inject(_IdGenerator).getId('ng-toolbar-widget-', true));\n\n /** The parent Toolbar UIPattern. */\n readonly _toolbarPattern = computed<ToolbarPattern<V>>(() => this._toolbar._pattern);\n\n /** Whether the widget is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the widget is 'hard' disabled, which is different from `aria-disabled`. A hard disabled widget cannot receive focus. */\n readonly hardDisabled = computed(() => this._pattern.disabled() && !this._toolbar.softDisabled());\n\n /** The optional ToolbarWidgetGroup this widget belongs to. */\n readonly _group = inject<ToolbarWidgetGroup<V>>(TOOLBAR_WIDGET_GROUP, {optional: true});\n\n /** The value associated with the widget. */\n readonly value = input.required<V>();\n\n /** Whether the widget is currently active (focused). */\n readonly active = computed(() => this._pattern.active());\n\n /** Whether the widget is selected (only relevant in a selection group). */\n readonly selected = () => this._pattern.selected();\n\n private readonly _groupPattern: SignalLike<\n ToolbarWidgetGroupPattern<ToolbarWidgetPattern<V>, V> | undefined\n > = () => this._group?._pattern;\n\n /** The ToolbarWidget UIPattern. */\n readonly _pattern = new ToolbarWidgetPattern<V>({\n ...this,\n group: this._groupPattern,\n toolbar: this._toolbarPattern,\n id: this.id,\n value: this.value,\n element: () => this.element,\n });\n\n ngOnInit() {\n this._toolbar._register(this);\n }\n\n ngOnDestroy() {\n this._toolbar._unregister(this);\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 inject,\n computed,\n input,\n booleanAttribute,\n contentChildren,\n} from '@angular/core';\nimport {ToolbarWidgetPattern, ToolbarWidgetGroupPattern} from '../private';\nimport {Toolbar} from './toolbar';\nimport {ToolbarWidget} from './toolbar-widget';\nimport {TOOLBAR_WIDGET_GROUP} from './toolbar-tokens';\n\n/**\n * A directive that groups toolbar widgets, used for more complex widgets like radio groups\n * that have their own internal navigation.\n *\n * @developerPreview 21.0\n *\n * @see [Toolbar](guide/aria/toolbar)\n */\n@Directive({\n selector: '[ngToolbarWidgetGroup]',\n exportAs: 'ngToolbarWidgetGroup',\n providers: [{provide: TOOLBAR_WIDGET_GROUP, useExisting: ToolbarWidgetGroup}],\n})\nexport class ToolbarWidgetGroup<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Toolbar. */\n private readonly _toolbar = inject<Toolbar<V>>(Toolbar, {optional: true});\n\n /** The list of child widgets within the group. */\n private readonly _widgets = contentChildren(ToolbarWidget, {descendants: true});\n\n /** The parent Toolbar UIPattern. */\n private readonly _toolbarPattern = computed(() => this._toolbar?._pattern);\n\n /** Whether the widget group is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The list of toolbar items within the group. */\n private readonly _itemPatterns = () => this._widgets().map(w => w._pattern);\n\n /** Whether the group allows multiple widgets to be selected. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /** The ToolbarWidgetGroup UIPattern. */\n readonly _pattern = new ToolbarWidgetGroupPattern<ToolbarWidgetPattern<V>, V>({\n ...this,\n items: this._itemPatterns,\n toolbar: this._toolbarPattern,\n });\n}\n"],"names":["Toolbar","_elementRef","inject","ElementRef","element","nativeElement","_widgets","signal","Set","textDirection","Directionality","valueSignal","_itemPatterns","computed","sort","sortDirectives","map","widget","_pattern","orientation","input","softDisabled","transform","booleanAttribute","disabled","wrap","value","model","ToolbarPattern","items","activeItem","undefined","getItem","e","_getItem","constructor","afterRenderEffect","setDefaultStateEffect","_register","widgets","has","add","set","_unregister","delete","find","item","contains","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","exportAs","ngImport","decorators","args","TOOLBAR_WIDGET_GROUP","InjectionToken","ToolbarWidget","_toolbar","id","_IdGenerator","getId","_toolbarPattern","hardDisabled","_group","optional","required","active","selected","_groupPattern","ToolbarWidgetPattern","group","toolbar","ngOnInit","ngOnDestroy","ToolbarWidgetGroup","contentChildren","descendants","w","multi","ToolbarWidgetGroupPattern","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","providers","provide","useExisting","propDecorators","ContentChildren","forwardRef","Input","alias"],"mappings":"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"}
1
+ {"version":3,"file":"toolbar.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/toolbar/toolbar.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/toolbar/toolbar-tokens.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/toolbar/toolbar-widget.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/toolbar/toolbar-widget-group.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 Directive,\n ElementRef,\n inject,\n computed,\n input,\n booleanAttribute,\n signal,\n model,\n} from '@angular/core';\nimport {ToolbarPattern, ToolbarWidgetPattern, sortDirectives} from '../private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport type {ToolbarWidget} from './toolbar-widget';\n\n/**\n * A toolbar widget container for a group of interactive widgets, such as\n * buttons or radio groups. It provides a single point of reference for keyboard navigation\n * and focus management. It supports various orientations and disabled states.\n *\n * ```html\n * <div ngToolbar orientation=\"horizontal\" [wrap]=\"true\">\n * <button ngToolbarWidget value=\"save\">Save</button>\n * <button ngToolbarWidget value=\"print\">Print</button>\n *\n * <div ngToolbarWidgetGroup [(value)]=\"selectedAlignment\">\n * <button ngToolbarWidget value=\"left\">Left</button>\n * <button ngToolbarWidget value=\"center\">Center</button>\n * <button ngToolbarWidget value=\"right\">Right</button>\n * </div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Toolbar](guide/aria/toolbar)\n */\n@Directive({\n selector: '[ngToolbar]',\n exportAs: 'ngToolbar',\n host: {\n 'role': 'toolbar',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(click)': '_pattern.onClick($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_pattern.onFocusIn()',\n },\n})\nexport class Toolbar<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The TabList nested inside of the container. */\n private readonly _widgets = signal(new Set<ToolbarWidget<V>>());\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Sorted UIPatterns of the child widgets */\n readonly _itemPatterns = computed<ToolbarWidgetPattern<V>[]>(() =>\n [...this._widgets()].sort(sortDirectives).map(widget => widget._pattern),\n );\n\n /** Whether the toolbar is vertically or horizontally oriented. */\n readonly orientation = input<'vertical' | 'horizontal'>('horizontal');\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 the toolbar is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether focus should wrap when navigating. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /** The values of the selected widgets within the toolbar. */\n readonly value = model<V[]>([]);\n\n /** The toolbar UIPattern. */\n readonly _pattern: ToolbarPattern<V> = new ToolbarPattern<V>({\n ...this,\n items: this._itemPatterns,\n activeItem: signal(undefined),\n textDirection: this.textDirection,\n element: () => this._elementRef.nativeElement,\n getItem: e => this._getItem(e),\n value: this.value,\n });\n\n constructor() {\n afterRenderEffect({write: () => this._pattern.setDefaultStateEffect()});\n }\n\n _register(widget: ToolbarWidget<V>) {\n const widgets = this._widgets();\n if (!widgets.has(widget)) {\n widgets.add(widget);\n this._widgets.set(new Set(widgets));\n }\n }\n\n _unregister(widget: ToolbarWidget<V>) {\n const widgets = this._widgets();\n if (widgets.delete(widget)) {\n this._widgets.set(new Set(widgets));\n }\n }\n\n /** Finds the toolbar item associated with a given element. */\n private _getItem(element: Element) {\n return this._itemPatterns().find(item => item.element()?.contains(element));\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 {ToolbarWidgetGroup} from './toolbar-widget-group';\n\n/** Token used to provide the `ToolbarWidgetGroup` directive. */\nexport const TOOLBAR_WIDGET_GROUP = new InjectionToken<ToolbarWidgetGroup<unknown>>(\n 'TOOLBAR_WIDGET_GROUP',\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 inject,\n computed,\n input,\n booleanAttribute,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {\n ToolbarWidgetPattern,\n ToolbarWidgetGroupPattern,\n SignalLike,\n ToolbarPattern,\n} from '../private';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Toolbar} from './toolbar';\nimport {TOOLBAR_WIDGET_GROUP} from './toolbar-tokens';\nimport type {ToolbarWidgetGroup} from './toolbar-widget-group';\n\n/**\n * A widget within a toolbar.\n *\n * The `ngToolbarWidget` directive should be applied to any native HTML element that acts\n * as an interactive widget within an `ngToolbar` or `ngToolbarWidgetGroup`. It enables\n * keyboard navigation and selection within the toolbar.\n *\n * ```html\n * <button ngToolbarWidget value=\"action-id\" [disabled]=\"isDisabled\">\n * Perform Action\n * </button>\n * ```\n *\n * @developerPreview 21.0\n *\n * @see [Toolbar](guide/aria/toolbar)\n */\n@Directive({\n selector: '[ngToolbarWidget]',\n exportAs: 'ngToolbarWidget',\n host: {\n // Ensure the attribute is applied even when used as a host directive.\n 'ngToolbarWidget': '',\n '[attr.data-active]': 'active()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.inert]': 'hardDisabled() ? true : null',\n '[attr.disabled]': 'hardDisabled() ? true : null',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[id]': '_pattern.id()',\n },\n})\nexport class ToolbarWidget<V> implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Toolbar. */\n private readonly _toolbar = inject<Toolbar<V>>(Toolbar);\n\n /** A unique identifier for the widget. */\n readonly id = input(inject(_IdGenerator).getId('ng-toolbar-widget-', true));\n\n /** The parent Toolbar UIPattern. */\n readonly _toolbarPattern = computed<ToolbarPattern<V>>(() => this._toolbar._pattern);\n\n /** Whether the widget is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** Whether the widget is 'hard' disabled, which is different from `aria-disabled`. A hard disabled widget cannot receive focus. */\n readonly hardDisabled = computed(() => this._pattern.disabled() && !this._toolbar.softDisabled());\n\n /** The optional ToolbarWidgetGroup this widget belongs to. */\n readonly _group = inject<ToolbarWidgetGroup<V>>(TOOLBAR_WIDGET_GROUP, {optional: true});\n\n /** The value associated with the widget. */\n readonly value = input.required<V>();\n\n /** Whether the widget is currently active (focused). */\n readonly active = computed(() => this._pattern.active());\n\n /** Whether the widget is selected (only relevant in a selection group). */\n readonly selected = () => this._pattern.selected();\n\n private readonly _groupPattern: SignalLike<\n ToolbarWidgetGroupPattern<ToolbarWidgetPattern<V>, V> | undefined\n > = () => this._group?._pattern;\n\n /** The ToolbarWidget UIPattern. */\n readonly _pattern = new ToolbarWidgetPattern<V>({\n ...this,\n group: this._groupPattern,\n toolbar: this._toolbarPattern,\n id: this.id,\n value: this.value,\n element: () => this.element,\n });\n\n ngOnInit() {\n this._toolbar._register(this);\n }\n\n ngOnDestroy() {\n this._toolbar._unregister(this);\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 inject,\n computed,\n input,\n booleanAttribute,\n contentChildren,\n} from '@angular/core';\nimport {ToolbarWidgetPattern, ToolbarWidgetGroupPattern} from '../private';\nimport {Toolbar} from './toolbar';\nimport {ToolbarWidget} from './toolbar-widget';\nimport {TOOLBAR_WIDGET_GROUP} from './toolbar-tokens';\n\n/**\n * A directive that groups toolbar widgets, used for more complex widgets like radio groups\n * that have their own internal navigation.\n *\n * @developerPreview 21.0\n *\n * @see [Toolbar](guide/aria/toolbar)\n */\n@Directive({\n selector: '[ngToolbarWidgetGroup]',\n exportAs: 'ngToolbarWidgetGroup',\n providers: [{provide: TOOLBAR_WIDGET_GROUP, useExisting: ToolbarWidgetGroup}],\n})\nexport class ToolbarWidgetGroup<V> {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Toolbar. */\n private readonly _toolbar = inject<Toolbar<V>>(Toolbar, {optional: true});\n\n /** The list of child widgets within the group. */\n private readonly _widgets = contentChildren(ToolbarWidget, {descendants: true});\n\n /** The parent Toolbar UIPattern. */\n private readonly _toolbarPattern = computed(() => this._toolbar?._pattern);\n\n /** Whether the widget group is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The list of toolbar items within the group. */\n private readonly _itemPatterns = () => this._widgets().map(w => w._pattern);\n\n /** Whether the group allows multiple widgets to be selected. */\n readonly multi = input(false, {transform: booleanAttribute});\n\n /** The ToolbarWidgetGroup UIPattern. */\n readonly _pattern = new ToolbarWidgetGroupPattern<ToolbarWidgetPattern<V>, V>({\n ...this,\n items: this._itemPatterns,\n toolbar: this._toolbarPattern,\n });\n}\n"],"names":["Toolbar","_elementRef","inject","ElementRef","element","nativeElement","_widgets","signal","Set","textDirection","Directionality","valueSignal","_itemPatterns","computed","sort","sortDirectives","map","widget","_pattern","orientation","input","softDisabled","transform","booleanAttribute","disabled","wrap","value","model","ToolbarPattern","items","activeItem","undefined","getItem","e","_getItem","constructor","afterRenderEffect","write","setDefaultStateEffect","_register","widgets","has","add","set","_unregister","delete","find","item","contains","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","exportAs","ngImport","decorators","args","TOOLBAR_WIDGET_GROUP","InjectionToken","ToolbarWidget","_toolbar","id","_IdGenerator","getId","_toolbarPattern","hardDisabled","_group","optional","required","active","selected","_groupPattern","ToolbarWidgetPattern","group","toolbar","ngOnInit","ngOnDestroy","ToolbarWidgetGroup","contentChildren","descendants","w","multi","ToolbarWidgetGroupPattern","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","providers","provide","useExisting","propDecorators","ContentChildren","forwardRef","Input","alias"],"mappings":"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"}
package/fesm2022/tree.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, signal, input, booleanAttribute, model, computed, afterRenderEffect, untracked, Directive, afterNextRender } from '@angular/core';
2
+ import { inject, ElementRef, signal, input, booleanAttribute, numberAttribute, model, computed, afterRenderEffect, untracked, Directive, afterNextRender } from '@angular/core';
3
3
  import { _IdGenerator } from '@angular/cdk/a11y';
4
4
  import { Directionality } from '@angular/cdk/bidi';
5
5
  import { ComboboxPopup } from './combobox.mjs';
@@ -10,7 +10,6 @@ import { DeferredContentAware, DeferredContent } from './_deferred-content-chunk
10
10
  import './_combobox-chunk.mjs';
11
11
  import './_signal-like-chunk.mjs';
12
12
  import '@angular/core/primitives/signals';
13
- import './_pointer-event-manager-chunk.mjs';
14
13
  import './_expansion-chunk.mjs';
15
14
  import './_list-navigation-chunk.mjs';
16
15
  import './_list-typeahead-chunk.mjs';
@@ -64,6 +63,12 @@ class Tree {
64
63
  typeaheadDelay = input(500, ...(ngDevMode ? [{
65
64
  debugName: "typeaheadDelay"
66
65
  }] : []));
66
+ tabIndex = input(undefined, {
67
+ ...(ngDevMode ? {
68
+ debugName: "tabIndex"
69
+ } : {}),
70
+ transform: v => v === undefined ? undefined : numberAttribute(v)
71
+ });
67
72
  value = model([], ...(ngDevMode ? [{
68
73
  debugName: "value"
69
74
  }] : []));
@@ -78,6 +83,7 @@ class Tree {
78
83
  debugName: "currentType"
79
84
  }] : []));
80
85
  _pattern;
86
+ activeDescendant;
81
87
  constructor() {
82
88
  const inputs = {
83
89
  ...this,
@@ -88,33 +94,42 @@ class Tree {
88
94
  element: () => this.element
89
95
  };
90
96
  this._pattern = this._popup?.combobox ? new ComboboxTreePattern(inputs) : new TreePattern(inputs);
97
+ this.activeDescendant = computed(() => this._pattern.activeDescendant(), ...(ngDevMode ? [{
98
+ debugName: "activeDescendant"
99
+ }] : []));
91
100
  if (this._popup?.combobox) {
92
101
  this._popup?._controls?.set(this._pattern);
93
102
  }
94
- afterRenderEffect(() => {
95
- if (typeof ngDevMode === 'undefined' || ngDevMode) {
96
- const violations = this._pattern.validate();
97
- for (const violation of violations) {
98
- console.error(violation);
103
+ afterRenderEffect({
104
+ read: () => {
105
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
106
+ const violations = this._pattern.validate();
107
+ for (const violation of violations) {
108
+ console.error(violation);
109
+ }
99
110
  }
100
111
  }
101
112
  });
102
- afterRenderEffect(() => {
103
- this._pattern.setDefaultStateEffect();
113
+ afterRenderEffect({
114
+ write: () => this._pattern.setDefaultStateEffect()
104
115
  });
105
- afterRenderEffect(() => {
106
- const items = inputs.items();
107
- const activeItem = untracked(() => inputs.activeItem());
108
- if (!items.some(i => i === activeItem) && activeItem) {
109
- this._pattern.treeBehavior.unfocus();
116
+ afterRenderEffect({
117
+ write: () => {
118
+ const items = inputs.items();
119
+ const activeItem = untracked(() => inputs.activeItem());
120
+ if (!items.some(i => i === activeItem) && activeItem) {
121
+ this._pattern.treeBehavior.unfocus();
122
+ }
110
123
  }
111
124
  });
112
- afterRenderEffect(() => {
113
- if (!(this._pattern instanceof ComboboxTreePattern)) return;
114
- const items = inputs.items();
115
- const value = untracked(() => this.value());
116
- if (items && value.some(v => !items.some(i => i.value() === v))) {
117
- this.value.set(value.filter(v => items.some(i => i.value() === v)));
125
+ afterRenderEffect({
126
+ write: () => {
127
+ if (!(this._pattern instanceof ComboboxTreePattern)) return;
128
+ const items = inputs.items();
129
+ const value = untracked(() => this.value());
130
+ if (items && value.some(v => !items.some(i => i.value() === v))) {
131
+ this.value.set(value.filter(v => items.some(i => i.value() === v)));
132
+ }
118
133
  }
119
134
  });
120
135
  }
@@ -133,7 +148,7 @@ class Tree {
133
148
  }
134
149
  static ɵfac = i0.ɵɵngDeclareFactory({
135
150
  minVersion: "12.0.0",
136
- version: "22.0.0-next.6",
151
+ version: "22.0.0-next.9",
137
152
  ngImport: i0,
138
153
  type: Tree,
139
154
  deps: [],
@@ -141,7 +156,7 @@ class Tree {
141
156
  });
142
157
  static ɵdir = i0.ɵɵngDeclareDirective({
143
158
  minVersion: "17.1.0",
144
- version: "22.0.0-next.6",
159
+ version: "22.0.0-next.9",
145
160
  type: Tree,
146
161
  isStandalone: true,
147
162
  selector: "[ngTree]",
@@ -209,6 +224,13 @@ class Tree {
209
224
  isRequired: false,
210
225
  transformFunction: null
211
226
  },
227
+ tabIndex: {
228
+ classPropertyName: "tabIndex",
229
+ publicName: "tabIndex",
230
+ isSignal: true,
231
+ isRequired: false,
232
+ transformFunction: null
233
+ },
212
234
  value: {
213
235
  classPropertyName: "value",
214
236
  publicName: "value",
@@ -249,7 +271,7 @@ class Tree {
249
271
  "attr.aria-multiselectable": "_pattern.multi()",
250
272
  "attr.aria-disabled": "_pattern.disabled()",
251
273
  "attr.aria-activedescendant": "_pattern.activeDescendant()",
252
- "tabindex": "_pattern.tabIndex()"
274
+ "tabindex": "tabIndex() !== undefined ? tabIndex() : _pattern.tabIndex()"
253
275
  }
254
276
  },
255
277
  exportAs: ["ngTree"],
@@ -261,7 +283,7 @@ class Tree {
261
283
  }
262
284
  i0.ɵɵngDeclareClassMetadata({
263
285
  minVersion: "12.0.0",
264
- version: "22.0.0-next.6",
286
+ version: "22.0.0-next.9",
265
287
  ngImport: i0,
266
288
  type: Tree,
267
289
  decorators: [{
@@ -276,7 +298,7 @@ i0.ɵɵngDeclareClassMetadata({
276
298
  '[attr.aria-multiselectable]': '_pattern.multi()',
277
299
  '[attr.aria-disabled]': '_pattern.disabled()',
278
300
  '[attr.aria-activedescendant]': '_pattern.activeDescendant()',
279
- '[tabindex]': '_pattern.tabIndex()',
301
+ '[tabindex]': 'tabIndex() !== undefined ? tabIndex() : _pattern.tabIndex()',
280
302
  '(keydown)': '_pattern.onKeydown($event)',
281
303
  '(click)': '_pattern.onClick($event)',
282
304
  '(focusin)': '_pattern.onFocusIn()'
@@ -358,6 +380,14 @@ i0.ɵɵngDeclareClassMetadata({
358
380
  required: false
359
381
  }]
360
382
  }],
383
+ tabIndex: [{
384
+ type: i0.Input,
385
+ args: [{
386
+ isSignal: true,
387
+ alias: "tabIndex",
388
+ required: false
389
+ }]
390
+ }],
361
391
  value: [{
362
392
  type: i0.Input,
363
393
  args: [{
@@ -452,8 +482,10 @@ class TreeItem extends DeferredContentAware {
452
482
  this.preserveContent.set(true);
453
483
  }
454
484
  });
455
- afterRenderEffect(() => {
456
- this.tree()._pattern instanceof ComboboxTreePattern ? this.contentVisible.set(true) : this.contentVisible.set(this._pattern.expanded());
485
+ afterRenderEffect({
486
+ write: () => {
487
+ this.tree()._pattern instanceof ComboboxTreePattern ? this.contentVisible.set(true) : this.contentVisible.set(this._pattern.expanded());
488
+ }
457
489
  });
458
490
  }
459
491
  ngOnInit() {
@@ -492,7 +524,7 @@ class TreeItem extends DeferredContentAware {
492
524
  }
493
525
  static ɵfac = i0.ɵɵngDeclareFactory({
494
526
  minVersion: "12.0.0",
495
- version: "22.0.0-next.6",
527
+ version: "22.0.0-next.9",
496
528
  ngImport: i0,
497
529
  type: TreeItem,
498
530
  deps: [],
@@ -500,7 +532,7 @@ class TreeItem extends DeferredContentAware {
500
532
  });
501
533
  static ɵdir = i0.ɵɵngDeclareDirective({
502
534
  minVersion: "17.1.0",
503
- version: "22.0.0-next.6",
535
+ version: "22.0.0-next.9",
504
536
  type: TreeItem,
505
537
  isStandalone: true,
506
538
  selector: "[ngTreeItem]",
@@ -582,7 +614,7 @@ class TreeItem extends DeferredContentAware {
582
614
  }
583
615
  i0.ɵɵngDeclareClassMetadata({
584
616
  minVersion: "12.0.0",
585
- version: "22.0.0-next.6",
617
+ version: "22.0.0-next.9",
586
618
  ngImport: i0,
587
619
  type: TreeItem,
588
620
  decorators: [{
@@ -699,7 +731,7 @@ class TreeItemGroup {
699
731
  }
700
732
  static ɵfac = i0.ɵɵngDeclareFactory({
701
733
  minVersion: "12.0.0",
702
- version: "22.0.0-next.6",
734
+ version: "22.0.0-next.9",
703
735
  ngImport: i0,
704
736
  type: TreeItemGroup,
705
737
  deps: [],
@@ -707,7 +739,7 @@ class TreeItemGroup {
707
739
  });
708
740
  static ɵdir = i0.ɵɵngDeclareDirective({
709
741
  minVersion: "17.1.0",
710
- version: "22.0.0-next.6",
742
+ version: "22.0.0-next.9",
711
743
  type: TreeItemGroup,
712
744
  isStandalone: true,
713
745
  selector: "ng-template[ngTreeItemGroup]",
@@ -729,7 +761,7 @@ class TreeItemGroup {
729
761
  }
730
762
  i0.ɵɵngDeclareClassMetadata({
731
763
  minVersion: "12.0.0",
732
- version: "22.0.0-next.6",
764
+ version: "22.0.0-next.9",
733
765
  ngImport: i0,
734
766
  type: TreeItemGroup,
735
767
  decorators: [{