@angular/aria 21.0.0-rc.0 → 21.0.0-rc.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 (48) hide show
  1. package/_adev_assets/aria-accordion.json +14 -14
  2. package/_adev_assets/aria-combobox.json +10 -10
  3. package/_adev_assets/aria-grid.json +81 -12
  4. package/_adev_assets/aria-listbox.json +3 -3
  5. package/_adev_assets/aria-menu.json +174 -74
  6. package/_adev_assets/aria-tabs.json +22 -22
  7. package/_adev_assets/aria-toolbar.json +99 -120
  8. package/_adev_assets/aria-tree.json +20 -16
  9. package/fesm2022/_widget-chunk.mjs +266 -144
  10. package/fesm2022/_widget-chunk.mjs.map +1 -1
  11. package/fesm2022/accordion.mjs +12 -13
  12. package/fesm2022/accordion.mjs.map +1 -1
  13. package/fesm2022/aria.mjs +1 -1
  14. package/fesm2022/aria.mjs.map +1 -1
  15. package/fesm2022/combobox.mjs +9 -7
  16. package/fesm2022/combobox.mjs.map +1 -1
  17. package/fesm2022/grid.mjs +61 -12
  18. package/fesm2022/grid.mjs.map +1 -1
  19. package/fesm2022/listbox.mjs +14 -15
  20. package/fesm2022/listbox.mjs.map +1 -1
  21. package/fesm2022/menu.mjs +117 -61
  22. package/fesm2022/menu.mjs.map +1 -1
  23. package/fesm2022/private.mjs +390 -399
  24. package/fesm2022/private.mjs.map +1 -1
  25. package/fesm2022/tabs.mjs +16 -17
  26. package/fesm2022/tabs.mjs.map +1 -1
  27. package/fesm2022/toolbar.mjs +79 -44
  28. package/fesm2022/toolbar.mjs.map +1 -1
  29. package/fesm2022/tree.mjs +22 -19
  30. package/fesm2022/tree.mjs.map +1 -1
  31. package/package.json +2 -10
  32. package/types/_grid-chunk.d.ts +115 -53
  33. package/types/accordion.d.ts +4 -4
  34. package/types/combobox.d.ts +2 -2
  35. package/types/grid.d.ts +12 -3
  36. package/types/listbox.d.ts +3 -4
  37. package/types/menu.d.ts +33 -21
  38. package/types/private.d.ts +263 -341
  39. package/types/tabs.d.ts +4 -4
  40. package/types/toolbar.d.ts +29 -26
  41. package/types/tree.d.ts +5 -6
  42. package/_adev_assets/aria-radio-group.json +0 -389
  43. package/fesm2022/deferred-content.mjs +0 -99
  44. package/fesm2022/deferred-content.mjs.map +0 -1
  45. package/fesm2022/radio-group.mjs +0 -338
  46. package/fesm2022/radio-group.mjs.map +0 -1
  47. package/types/deferred-content.d.ts +0 -38
  48. package/types/radio-group.d.ts +0 -84
package/fesm2022/tabs.mjs CHANGED
@@ -1,10 +1,9 @@
1
- import * as i1 from '@angular/aria/deferred-content';
2
- import { DeferredContentAware, DeferredContent } from '@angular/aria/deferred-content';
3
1
  import { _IdGenerator } from '@angular/cdk/a11y';
4
2
  import { Directionality } from '@angular/cdk/bidi';
5
3
  import * as i0 from '@angular/core';
6
4
  import { signal, computed, Directive, inject, ElementRef, linkedSignal, input, booleanAttribute, model, afterRenderEffect } from '@angular/core';
7
- import { TabListPattern, TabPattern, TabPanelPattern } from '@angular/aria/private';
5
+ import * as i1 from '@angular/aria/private';
6
+ import { TabListPattern, TabPattern, DeferredContentAware, TabPanelPattern, DeferredContent } from '@angular/aria/private';
8
7
 
9
8
  function sortDirectives(a, b) {
10
9
  return (a.element().compareDocumentPosition(b.element()) & Node.DOCUMENT_POSITION_PRECEDING) > 0 ? 1 : -1;
@@ -97,8 +96,8 @@ class TabList {
97
96
  }] : [{
98
97
  transform: booleanAttribute
99
98
  }]));
100
- skipDisabled = input(true, ...(ngDevMode ? [{
101
- debugName: "skipDisabled",
99
+ softDisabled = input(true, ...(ngDevMode ? [{
100
+ debugName: "softDisabled",
102
101
  transform: booleanAttribute
103
102
  }] : [{
104
103
  transform: booleanAttribute
@@ -182,9 +181,9 @@ class TabList {
182
181
  isRequired: false,
183
182
  transformFunction: null
184
183
  },
185
- skipDisabled: {
186
- classPropertyName: "skipDisabled",
187
- publicName: "skipDisabled",
184
+ softDisabled: {
185
+ classPropertyName: "softDisabled",
186
+ publicName: "softDisabled",
188
187
  isSignal: true,
189
188
  isRequired: false,
190
189
  transformFunction: null
@@ -231,10 +230,10 @@ class TabList {
231
230
  "focusin": "onFocus()"
232
231
  },
233
232
  properties: {
234
- "attr.tabindex": "_pattern.tabindex()",
233
+ "attr.tabindex": "_pattern.tabIndex()",
235
234
  "attr.aria-disabled": "_pattern.disabled()",
236
235
  "attr.aria-orientation": "_pattern.orientation()",
237
- "attr.aria-activedescendant": "_pattern.activedescendant()"
236
+ "attr.aria-activedescendant": "_pattern.activeDescendant()"
238
237
  },
239
238
  classAttribute: "ng-tablist"
240
239
  },
@@ -255,10 +254,10 @@ i0.ɵɵngDeclareClassMetadata({
255
254
  host: {
256
255
  'role': 'tablist',
257
256
  'class': 'ng-tablist',
258
- '[attr.tabindex]': '_pattern.tabindex()',
257
+ '[attr.tabindex]': '_pattern.tabIndex()',
259
258
  '[attr.aria-disabled]': '_pattern.disabled()',
260
259
  '[attr.aria-orientation]': '_pattern.orientation()',
261
- '[attr.aria-activedescendant]': '_pattern.activedescendant()',
260
+ '[attr.aria-activedescendant]': '_pattern.activeDescendant()',
262
261
  '(keydown)': '_pattern.onKeydown($event)',
263
262
  '(pointerdown)': '_pattern.onPointerdown($event)',
264
263
  '(focusin)': 'onFocus()'
@@ -340,7 +339,7 @@ class Tab {
340
339
  properties: {
341
340
  "attr.data-active": "_pattern.active()",
342
341
  "attr.id": "_pattern.id()",
343
- "attr.tabindex": "_pattern.tabindex()",
342
+ "attr.tabindex": "_pattern.tabIndex()",
344
343
  "attr.aria-selected": "_pattern.selected()",
345
344
  "attr.aria-disabled": "_pattern.disabled()",
346
345
  "attr.aria-controls": "_pattern.controls()"
@@ -366,7 +365,7 @@ i0.ɵɵngDeclareClassMetadata({
366
365
  'class': 'ng-tab',
367
366
  '[attr.data-active]': '_pattern.active()',
368
367
  '[attr.id]': '_pattern.id()',
369
- '[attr.tabindex]': '_pattern.tabindex()',
368
+ '[attr.tabindex]': '_pattern.tabIndex()',
370
369
  '[attr.aria-selected]': '_pattern.selected()',
371
370
  '[attr.aria-disabled]': '_pattern.disabled()',
372
371
  '[attr.aria-controls]': '_pattern.controls()'
@@ -377,7 +376,7 @@ i0.ɵɵngDeclareClassMetadata({
377
376
  class TabPanel {
378
377
  _deferredContentAware = inject(DeferredContentAware);
379
378
  _Tabs = inject(Tabs);
380
- _id = inject(_IdGenerator).getId('ng-tabpanel-');
379
+ _id = inject(_IdGenerator).getId('ng-tabpanel-', true);
381
380
  tab = computed(() => this._Tabs.tabs()?.find(tab => tab.value() === this.value()), ...(ngDevMode ? [{
382
381
  debugName: "tab"
383
382
  }] : []));
@@ -427,7 +426,7 @@ class TabPanel {
427
426
  },
428
427
  properties: {
429
428
  "attr.id": "_pattern.id()",
430
- "attr.tabindex": "_pattern.tabindex()",
429
+ "attr.tabindex": "_pattern.tabIndex()",
431
430
  "attr.inert": "_pattern.hidden() ? true : null",
432
431
  "attr.aria-labelledby": "_pattern.labelledBy()"
433
432
  },
@@ -455,7 +454,7 @@ i0.ɵɵngDeclareClassMetadata({
455
454
  'role': 'tabpanel',
456
455
  'class': 'ng-tabpanel',
457
456
  '[attr.id]': '_pattern.id()',
458
- '[attr.tabindex]': '_pattern.tabindex()',
457
+ '[attr.tabindex]': '_pattern.tabIndex()',
459
458
  '[attr.inert]': '_pattern.hidden() ? true : null',
460
459
  '[attr.aria-labelledby]': '_pattern.labelledBy()'
461
460
  },
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/aria/tabs/tabs.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 {DeferredContent, DeferredContentAware} from '@angular/aria/deferred-content';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n linkedSignal,\n signal,\n Signal,\n afterRenderEffect,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {TabListPattern, TabPanelPattern, TabPattern} from '@angular/aria/private';\n\ninterface HasElement {\n element: Signal<HTMLElement>;\n}\n\n/**\n * Sort directives by their document order.\n */\nfunction sortDirectives(a: HasElement, b: HasElement) {\n return (a.element().compareDocumentPosition(b.element()) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\n}\n\n/**\n * A Tabs container.\n *\n * Represents a set of layered sections of content. The Tabs is a container meant to be used with\n * TabList, Tab, and TabPanel as follows:\n *\n * ```html\n * <div ngTabs>\n * <ul ngTabList>\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>Tab content 1</ng-template>\n * </div>\n * <div ngTabPanel value=\"tab2\">\n * <ng-template ngTabContent>Tab content 2</ng-template>\n * </div>\n * <div ngTabPanel value=\"tab3\">\n * <ng-template ngTabContent>Tab content 3</ng-template>\n * </div>\n * ```\n */\n@Directive({\n selector: '[ngTabs]',\n exportAs: 'ngTabs',\n host: {\n 'class': 'ng-tabs',\n },\n})\nexport class Tabs {\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 tabs = computed(() => this._tablist()?.tabs());\n\n /** The TabPanel UIPattern of the child TabPanels. */\n unorderedTabpanels = computed(() =>\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 deregister(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/**\n * A TabList container.\n *\n * Controls a list of Tab(s).\n */\n@Directive({\n selector: '[ngTabList]',\n exportAs: 'ngTabList',\n host: {\n 'role': 'tablist',\n 'class': 'ng-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 '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': 'onFocus()',\n },\n})\nexport class TabList implements OnInit, OnDestroy {\n /** A reference to the tab list element. */\n private readonly _elementRef = inject(ElementRef);\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 /** The internal tab selection state. */\n private readonly _selection = linkedSignal(() =>\n this.selectedTab() ? [this.selectedTab()!] : [],\n );\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The Tab UIPatterns of the child Tabs. */\n readonly tabs = computed(() =>\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 /** Whether disabled items in the list should be skipped when navigating. */\n readonly skipDisabled = input(true, {transform: booleanAttribute});\n\n /** The focus strategy used by the tablist. */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /** The selection strategy used by the tablist. */\n readonly selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** Whether the tablist is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The current selected tab. */\n readonly selectedTab = model<string | undefined>();\n\n /** The TabList UIPattern. */\n readonly _pattern: TabListPattern = new TabListPattern({\n ...this,\n items: this.tabs,\n value: this._selection,\n activeItem: signal(undefined),\n element: () => this._elementRef.nativeElement,\n });\n\n /** Whether the tree has received focus yet. */\n private _hasFocused = signal(false);\n\n constructor() {\n afterRenderEffect(() => this.selectedTab.set(this._selection()[0]));\n\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this._pattern.setDefaultState();\n }\n });\n }\n\n onFocus() {\n this._hasFocused.set(true);\n }\n\n ngOnInit() {\n this._tabs.register(this);\n }\n\n ngOnDestroy() {\n this._tabs.deregister(this);\n }\n\n register(child: Tab) {\n this._unorderedTabs().add(child);\n this._unorderedTabs.set(new Set(this._unorderedTabs()));\n }\n\n deregister(child: Tab) {\n this._unorderedTabs().delete(child);\n this._unorderedTabs.set(new Set(this._unorderedTabs()));\n }\n}\n\n/** A selectable tab in a TabList. */\n@Directive({\n selector: '[ngTab]',\n exportAs: 'ngTab',\n host: {\n 'role': 'tab',\n 'class': 'ng-tab',\n '[attr.data-active]': '_pattern.active()',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabindex()',\n '[attr.aria-selected]': '_pattern.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 tab element. */\n private readonly _elementRef = inject(ElementRef);\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 global unique identifier for the tab. */\n private readonly _id = inject(_IdGenerator).getId('ng-tab-');\n\n /** The host native element. */\n readonly element = computed(() => this._elementRef.nativeElement);\n\n /** The parent TabList UIPattern. */\n readonly tablist = computed(() => this._tabList._pattern);\n\n /** The TabPanel UIPattern associated with the tab */\n readonly tabpanel = computed(() =>\n this._tabs.unorderedTabpanels().find(tabpanel => tabpanel.value() === this.value()),\n );\n\n /** Whether a tab is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** A local unique identifier for the tab. */\n readonly value = input.required<string>();\n\n /** The Tab UIPattern. */\n readonly _pattern: TabPattern = new TabPattern({\n ...this,\n id: () => this._id,\n tablist: this.tablist,\n tabpanel: this.tabpanel,\n value: this.value,\n });\n\n ngOnInit() {\n this._tabList.register(this);\n }\n\n ngOnDestroy() {\n this._tabList.deregister(this);\n }\n}\n\n/**\n * A TabPanel container for the resources of layered content associated with a tab.\n *\n * If a tabpanel is hidden due to its corresponding tab is not activated, the `inert` attribute\n * will be applied to the tabpanel element to remove it from the accessibility tree and stop\n * all the keyboard and pointer interactions. Note that this does not visually hide the tabpenl\n * and a proper styling is required.\n */\n@Directive({\n selector: '[ngTabPanel]',\n exportAs: 'ngTabPanel',\n host: {\n 'role': 'tabpanel',\n 'class': 'ng-tabpanel',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabindex()',\n '[attr.inert]': '_pattern.hidden() ? 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 /** 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 private readonly _id = inject(_IdGenerator).getId('ng-tabpanel-');\n\n /** The Tab UIPattern associated with the tabpanel */\n readonly tab = computed(() => this._Tabs.tabs()?.find(tab => tab.value() === this.value()));\n\n /** A local unique identifier for the tabpanel. */\n readonly value = input.required<string>();\n\n /** The TabPanel UIPattern. */\n readonly _pattern: TabPanelPattern = new TabPanelPattern({\n ...this,\n id: () => this._id,\n tab: this.tab,\n });\n\n constructor() {\n afterRenderEffect(() => this._deferredContentAware.contentVisible.set(!this._pattern.hidden()));\n }\n\n ngOnInit() {\n this._Tabs.register(this);\n }\n\n ngOnDestroy() {\n this._Tabs.deregister(this);\n }\n}\n\n/**\n * A TabContent container for the lazy-loaded content.\n */\n@Directive({\n selector: 'ng-template[ngTabContent]',\n exportAs: 'ngTabContent',\n hostDirectives: [DeferredContent],\n})\nexport class TabContent {}\n"],"names":["sortDirectives","a","unorderedTabpanels","computed","_unorderedPanels","map","tabpanel","_pattern","ngDevMode","debugName","register","child","TabList","_tablist","set","Set","deregister","undefined","TabPanel","delete","i0","ɵɵngDeclareFactory","ɵdir","ɵɵngDeclareDirective","minVersion","version","type","Tabs","isStandalone","selector","host","classAttribute","exportAs","ngImport","Directive","args","selectedTab","Directionality","valueSignal","sort","tab","orientation","input","transform","booleanAttribute","focusMode","selectionMode","disabled","model","TabListPattern","items","tabs","value","_selection","element","_elementRef","nativeElement","signal","constructor","afterRenderEffect","_hasFocused","setDefaultState","onFocus","ngOnDestroy","_tabs","_unorderedTabs","add","ɵfac","deps","target","ɵɵFactoryTarget","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","wrap","skipDisabled","outputs","attributes","listeners","properties","decorators","ElementRef","_tabList","inject","find","required","TabPattern","tablist","ngOnInit","Tab","_id","_IdGenerator","getId"],"mappings":"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"}
1
+ {"version":3,"file":"tabs.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/aria/tabs/tabs.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 {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n linkedSignal,\n signal,\n Signal,\n afterRenderEffect,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {\n TabListPattern,\n TabPanelPattern,\n TabPattern,\n DeferredContent,\n DeferredContentAware,\n} from '@angular/aria/private';\n\ninterface HasElement {\n element: Signal<HTMLElement>;\n}\n\n/**\n * Sort directives by their document order.\n */\nfunction sortDirectives(a: HasElement, b: HasElement) {\n return (a.element().compareDocumentPosition(b.element()) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\n}\n\n/**\n * A Tabs container.\n *\n * Represents a set of layered sections of content. The Tabs is a container meant to be used with\n * TabList, Tab, and TabPanel as follows:\n *\n * ```html\n * <div ngTabs>\n * <ul ngTabList>\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>Tab content 1</ng-template>\n * </div>\n * <div ngTabPanel value=\"tab2\">\n * <ng-template ngTabContent>Tab content 2</ng-template>\n * </div>\n * <div ngTabPanel value=\"tab3\">\n * <ng-template ngTabContent>Tab content 3</ng-template>\n * </div>\n * ```\n */\n@Directive({\n selector: '[ngTabs]',\n exportAs: 'ngTabs',\n host: {\n 'class': 'ng-tabs',\n },\n})\nexport class Tabs {\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 tabs = computed(() => this._tablist()?.tabs());\n\n /** The TabPanel UIPattern of the child TabPanels. */\n unorderedTabpanels = computed(() =>\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 deregister(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/**\n * A TabList container.\n *\n * Controls a list of Tab(s).\n */\n@Directive({\n selector: '[ngTabList]',\n exportAs: 'ngTabList',\n host: {\n 'role': 'tablist',\n 'class': 'ng-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 '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': 'onFocus()',\n },\n})\nexport class TabList implements OnInit, OnDestroy {\n /** A reference to the tab list element. */\n private readonly _elementRef = inject(ElementRef);\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 /** The internal tab selection state. */\n private readonly _selection = linkedSignal(() =>\n this.selectedTab() ? [this.selectedTab()!] : [],\n );\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The Tab UIPatterns of the child Tabs. */\n readonly tabs = computed(() =>\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 /** Whether to allow disabled items to receive focus. */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /** The focus strategy used by the tablist. */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /** The selection strategy used by the tablist. */\n readonly selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** Whether the tablist is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The current selected tab. */\n readonly selectedTab = model<string | undefined>();\n\n /** The TabList UIPattern. */\n readonly _pattern: TabListPattern = new TabListPattern({\n ...this,\n items: this.tabs,\n value: this._selection,\n activeItem: signal(undefined),\n element: () => this._elementRef.nativeElement,\n });\n\n /** Whether the tree has received focus yet. */\n private _hasFocused = signal(false);\n\n constructor() {\n afterRenderEffect(() => this.selectedTab.set(this._selection()[0]));\n\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this._pattern.setDefaultState();\n }\n });\n }\n\n onFocus() {\n this._hasFocused.set(true);\n }\n\n ngOnInit() {\n this._tabs.register(this);\n }\n\n ngOnDestroy() {\n this._tabs.deregister(this);\n }\n\n register(child: Tab) {\n this._unorderedTabs().add(child);\n this._unorderedTabs.set(new Set(this._unorderedTabs()));\n }\n\n deregister(child: Tab) {\n this._unorderedTabs().delete(child);\n this._unorderedTabs.set(new Set(this._unorderedTabs()));\n }\n}\n\n/** A selectable tab in a TabList. */\n@Directive({\n selector: '[ngTab]',\n exportAs: 'ngTab',\n host: {\n 'role': 'tab',\n 'class': 'ng-tab',\n '[attr.data-active]': '_pattern.active()',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-selected]': '_pattern.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 tab element. */\n private readonly _elementRef = inject(ElementRef);\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 global unique identifier for the tab. */\n private readonly _id = inject(_IdGenerator).getId('ng-tab-');\n\n /** The host native element. */\n readonly element = computed(() => this._elementRef.nativeElement);\n\n /** The parent TabList UIPattern. */\n readonly tablist = computed(() => this._tabList._pattern);\n\n /** The TabPanel UIPattern associated with the tab */\n readonly tabpanel = computed(() =>\n this._tabs.unorderedTabpanels().find(tabpanel => tabpanel.value() === this.value()),\n );\n\n /** Whether a tab is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** A local unique identifier for the tab. */\n readonly value = input.required<string>();\n\n /** The Tab UIPattern. */\n readonly _pattern: TabPattern = new TabPattern({\n ...this,\n id: () => this._id,\n tablist: this.tablist,\n tabpanel: this.tabpanel,\n value: this.value,\n });\n\n ngOnInit() {\n this._tabList.register(this);\n }\n\n ngOnDestroy() {\n this._tabList.deregister(this);\n }\n}\n\n/**\n * A TabPanel container for the resources of layered content associated with a tab.\n *\n * If a tabpanel is hidden due to its corresponding tab is not activated, the `inert` attribute\n * will be applied to the tabpanel element to remove it from the accessibility tree and stop\n * all the keyboard and pointer interactions. Note that this does not visually hide the tabpenl\n * and a proper styling is required.\n */\n@Directive({\n selector: '[ngTabPanel]',\n exportAs: 'ngTabPanel',\n host: {\n 'role': 'tabpanel',\n 'class': 'ng-tabpanel',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.inert]': '_pattern.hidden() ? 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 /** 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 private readonly _id = inject(_IdGenerator).getId('ng-tabpanel-', true);\n\n /** The Tab UIPattern associated with the tabpanel */\n readonly tab = computed(() => this._Tabs.tabs()?.find(tab => tab.value() === this.value()));\n\n /** A local unique identifier for the tabpanel. */\n readonly value = input.required<string>();\n\n /** The TabPanel UIPattern. */\n readonly _pattern: TabPanelPattern = new TabPanelPattern({\n ...this,\n id: () => this._id,\n tab: this.tab,\n });\n\n constructor() {\n afterRenderEffect(() => this._deferredContentAware.contentVisible.set(!this._pattern.hidden()));\n }\n\n ngOnInit() {\n this._Tabs.register(this);\n }\n\n ngOnDestroy() {\n this._Tabs.deregister(this);\n }\n}\n\n/**\n * A TabContent container for the lazy-loaded content.\n */\n@Directive({\n selector: 'ng-template[ngTabContent]',\n exportAs: 'ngTabContent',\n hostDirectives: [DeferredContent],\n})\nexport class TabContent {}\n"],"names":["sortDirectives","a","b","element","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","Tabs","_tablist","signal","undefined","_unorderedPanels","Set","tabs","computed","unorderedTabpanels","map","tabpanel","_pattern","ngDevMode","debugName","register","child","TabList","set","TabPanel","add","deregister","delete","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","host","classAttribute","exportAs","ngImport","decorators","args","_elementRef","inject","ElementRef","_tabs","_unorderedTabs","_selection","linkedSignal","selectedTab","textDirection","Directionality","valueSignal","sort","tab","orientation","input","wrap","transform","booleanAttribute","softDisabled","focusMode","selectionMode","disabled","model","TabListPattern","items","value","activeItem","nativeElement","_hasFocused","constructor","afterRenderEffect","setDefaultState","onFocus","ngOnInit","ngOnDestroy","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","attributes","listeners","properties","Tab","_tabList","_id","_IdGenerator","getId","tablist","find","required","TabPattern","id","_deferredContentAware","DeferredContentAware","_Tabs","TabPanelPattern","contentVisible","hidden","hostDirectives","directive","i1","TabContent","DeferredContent"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, signal, computed, input, booleanAttribute, afterRenderEffect, Directive } from '@angular/core';
2
+ import { inject, ElementRef, signal, computed, input, booleanAttribute, afterRenderEffect, Directive, contentChildren } from '@angular/core';
3
3
  import { ToolbarPattern, ToolbarWidgetPattern, ToolbarWidgetGroupPattern } from '@angular/aria/private';
4
4
  import { Directionality } from '@angular/cdk/bidi';
5
5
  import { _IdGenerator } from '@angular/cdk/a11y';
@@ -19,8 +19,8 @@ class Toolbar {
19
19
  orientation = input('horizontal', ...(ngDevMode ? [{
20
20
  debugName: "orientation"
21
21
  }] : []));
22
- skipDisabled = input(false, ...(ngDevMode ? [{
23
- debugName: "skipDisabled",
22
+ softDisabled = input(true, ...(ngDevMode ? [{
23
+ debugName: "softDisabled",
24
24
  transform: booleanAttribute
25
25
  }] : [{
26
26
  transform: booleanAttribute
@@ -44,8 +44,8 @@ class Toolbar {
44
44
  element: () => this._elementRef.nativeElement,
45
45
  getItem: e => this._getItem(e)
46
46
  });
47
- _hasFocused = signal(false, ...(ngDevMode ? [{
48
- debugName: "_hasFocused"
47
+ _hasBeenFocused = signal(false, ...(ngDevMode ? [{
48
+ debugName: "_hasBeenFocused"
49
49
  }] : []));
50
50
  constructor() {
51
51
  afterRenderEffect(() => {
@@ -57,13 +57,13 @@ class Toolbar {
57
57
  }
58
58
  });
59
59
  afterRenderEffect(() => {
60
- if (!this._hasFocused()) {
60
+ if (!this._hasBeenFocused()) {
61
61
  this._pattern.setDefaultState();
62
62
  }
63
63
  });
64
64
  }
65
65
  onFocus() {
66
- this._hasFocused.set(true);
66
+ this._hasBeenFocused.set(true);
67
67
  }
68
68
  register(widget) {
69
69
  const widgets = this._widgets();
@@ -80,8 +80,7 @@ class Toolbar {
80
80
  }
81
81
  _getItem(element) {
82
82
  const widgetTarget = element.closest('.ng-toolbar-widget');
83
- const groupTarget = element.closest('.ng-toolbar-widget-group');
84
- return this.items().find(widget => widget.element() === widgetTarget || widget.element() === groupTarget);
83
+ return this.items().find(widget => widget.element() === widgetTarget);
85
84
  }
86
85
  static ɵfac = i0.ɵɵngDeclareFactory({
87
86
  minVersion: "12.0.0",
@@ -105,9 +104,9 @@ class Toolbar {
105
104
  isRequired: false,
106
105
  transformFunction: null
107
106
  },
108
- skipDisabled: {
109
- classPropertyName: "skipDisabled",
110
- publicName: "skipDisabled",
107
+ softDisabled: {
108
+ classPropertyName: "softDisabled",
109
+ publicName: "softDisabled",
111
110
  isSignal: true,
112
111
  isRequired: false,
113
112
  transformFunction: null
@@ -133,11 +132,12 @@ class Toolbar {
133
132
  },
134
133
  listeners: {
135
134
  "keydown": "_pattern.onKeydown($event)",
135
+ "click": "_pattern.onClick($event)",
136
136
  "pointerdown": "_pattern.onPointerdown($event)",
137
137
  "focusin": "onFocus()"
138
138
  },
139
139
  properties: {
140
- "attr.tabindex": "_pattern.tabindex()",
140
+ "attr.tabindex": "_pattern.tabIndex()",
141
141
  "attr.aria-disabled": "_pattern.disabled()",
142
142
  "attr.aria-orientation": "_pattern.orientation()"
143
143
  },
@@ -160,10 +160,11 @@ i0.ɵɵngDeclareClassMetadata({
160
160
  host: {
161
161
  'role': 'toolbar',
162
162
  'class': 'ng-toolbar',
163
- '[attr.tabindex]': '_pattern.tabindex()',
163
+ '[attr.tabindex]': '_pattern.tabIndex()',
164
164
  '[attr.aria-disabled]': '_pattern.disabled()',
165
165
  '[attr.aria-orientation]': '_pattern.orientation()',
166
166
  '(keydown)': '_pattern.onKeydown($event)',
167
+ '(click)': '_pattern.onClick($event)',
167
168
  '(pointerdown)': '_pattern.onPointerdown($event)',
168
169
  '(focusin)': 'onFocus()'
169
170
  }
@@ -174,8 +175,8 @@ i0.ɵɵngDeclareClassMetadata({
174
175
  class ToolbarWidget {
175
176
  _elementRef = inject(ElementRef);
176
177
  _toolbar = inject(Toolbar);
177
- _generatedId = inject(_IdGenerator).getId('ng-toolbar-widget-');
178
- id = computed(() => this._generatedId, ...(ngDevMode ? [{
178
+ _generatedId = inject(_IdGenerator).getId('ng-toolbar-widget-', true);
179
+ id = input(this._generatedId, ...(ngDevMode ? [{
179
180
  debugName: "id"
180
181
  }] : []));
181
182
  toolbar = computed(() => this._toolbar._pattern, ...(ngDevMode ? [{
@@ -190,14 +191,25 @@ class ToolbarWidget {
190
191
  }] : [{
191
192
  transform: booleanAttribute
192
193
  }]));
193
- hardDisabled = computed(() => this._pattern.disabled() && this._toolbar.skipDisabled(), ...(ngDevMode ? [{
194
+ hardDisabled = computed(() => this._pattern.disabled() && !this._toolbar.softDisabled(), ...(ngDevMode ? [{
194
195
  debugName: "hardDisabled"
195
196
  }] : []));
197
+ _group = inject(ToolbarWidgetGroup, {
198
+ optional: true
199
+ });
200
+ value = input.required(...(ngDevMode ? [{
201
+ debugName: "value"
202
+ }] : []));
203
+ active = computed(() => this._pattern.active(), ...(ngDevMode ? [{
204
+ debugName: "active"
205
+ }] : []));
206
+ selected = () => this._pattern.selected();
207
+ group = () => this._group?._pattern;
196
208
  _pattern = new ToolbarWidgetPattern({
197
209
  ...this,
198
210
  id: this.id,
199
- element: this.element,
200
- disabled: computed(() => this._toolbar.disabled() || this.disabled())
211
+ value: this.value,
212
+ element: this.element
201
213
  });
202
214
  ngOnInit() {
203
215
  this._toolbar.register(this);
@@ -220,18 +232,32 @@ class ToolbarWidget {
220
232
  isStandalone: true,
221
233
  selector: "[ngToolbarWidget]",
222
234
  inputs: {
235
+ id: {
236
+ classPropertyName: "id",
237
+ publicName: "id",
238
+ isSignal: true,
239
+ isRequired: false,
240
+ transformFunction: null
241
+ },
223
242
  disabled: {
224
243
  classPropertyName: "disabled",
225
244
  publicName: "disabled",
226
245
  isSignal: true,
227
246
  isRequired: false,
228
247
  transformFunction: null
248
+ },
249
+ value: {
250
+ classPropertyName: "value",
251
+ publicName: "value",
252
+ isSignal: true,
253
+ isRequired: true,
254
+ transformFunction: null
229
255
  }
230
256
  },
231
257
  host: {
232
258
  properties: {
233
259
  "attr.data-active": "_pattern.active()",
234
- "attr.tabindex": "_pattern.tabindex()",
260
+ "attr.tabindex": "_pattern.tabIndex()",
235
261
  "attr.inert": "hardDisabled() ? true : null",
236
262
  "attr.disabled": "hardDisabled() ? true : null",
237
263
  "attr.aria-disabled": "_pattern.disabled()",
@@ -256,7 +282,7 @@ i0.ɵɵngDeclareClassMetadata({
256
282
  host: {
257
283
  'class': 'ng-toolbar-widget',
258
284
  '[attr.data-active]': '_pattern.active()',
259
- '[attr.tabindex]': '_pattern.tabindex()',
285
+ '[attr.tabindex]': '_pattern.tabIndex()',
260
286
  '[attr.inert]': 'hardDisabled() ? true : null',
261
287
  '[attr.disabled]': 'hardDisabled() ? true : null',
262
288
  '[attr.aria-disabled]': '_pattern.disabled()',
@@ -266,40 +292,32 @@ i0.ɵɵngDeclareClassMetadata({
266
292
  }]
267
293
  });
268
294
  class ToolbarWidgetGroup {
269
- _elementRef = inject(ElementRef);
270
295
  _toolbar = inject(Toolbar, {
271
296
  optional: true
272
297
  });
273
- _generatedId = inject(_IdGenerator).getId('ng-toolbar-widget-group-');
274
- id = computed(() => this._generatedId, ...(ngDevMode ? [{
275
- debugName: "id"
276
- }] : []));
298
+ _widgets = contentChildren(ToolbarWidget, ...(ngDevMode ? [{
299
+ debugName: "_widgets",
300
+ descendants: true
301
+ }] : [{
302
+ descendants: true
303
+ }]));
277
304
  toolbar = computed(() => this._toolbar?._pattern, ...(ngDevMode ? [{
278
305
  debugName: "toolbar"
279
306
  }] : []));
280
- element = computed(() => this._elementRef.nativeElement, ...(ngDevMode ? [{
281
- debugName: "element"
282
- }] : []));
283
307
  disabled = input(false, ...(ngDevMode ? [{
284
308
  debugName: "disabled",
285
309
  transform: booleanAttribute
286
310
  }] : [{
287
311
  transform: booleanAttribute
288
312
  }]));
289
- controls = signal(undefined, ...(ngDevMode ? [{
290
- debugName: "controls"
291
- }] : []));
292
- _pattern = new ToolbarWidgetGroupPattern({
293
- ...this,
294
- id: this.id,
295
- element: this.element
296
- });
297
- ngOnInit() {
298
- this._toolbar?.register(this);
299
- }
300
- ngOnDestroy() {
301
- this._toolbar?.unregister(this);
302
- }
313
+ items = () => this._widgets().map(w => w._pattern);
314
+ multi = input(false, ...(ngDevMode ? [{
315
+ debugName: "multi",
316
+ transform: booleanAttribute
317
+ }] : [{
318
+ transform: booleanAttribute
319
+ }]));
320
+ _pattern = new ToolbarWidgetGroupPattern(this);
303
321
  static ɵfac = i0.ɵɵngDeclareFactory({
304
322
  minVersion: "12.0.0",
305
323
  version: "20.2.0-next.2",
@@ -309,10 +327,11 @@ class ToolbarWidgetGroup {
309
327
  target: i0.ɵɵFactoryTarget.Directive
310
328
  });
311
329
  static ɵdir = i0.ɵɵngDeclareDirective({
312
- minVersion: "17.1.0",
330
+ minVersion: "17.2.0",
313
331
  version: "20.2.0-next.2",
314
332
  type: ToolbarWidgetGroup,
315
333
  isStandalone: true,
334
+ selector: "[ngToolbarWidgetGroup]",
316
335
  inputs: {
317
336
  disabled: {
318
337
  classPropertyName: "disabled",
@@ -320,6 +339,13 @@ class ToolbarWidgetGroup {
320
339
  isSignal: true,
321
340
  isRequired: false,
322
341
  transformFunction: null
342
+ },
343
+ multi: {
344
+ classPropertyName: "multi",
345
+ publicName: "multi",
346
+ isSignal: true,
347
+ isRequired: false,
348
+ transformFunction: null
323
349
  }
324
350
  },
325
351
  host: {
@@ -327,6 +353,13 @@ class ToolbarWidgetGroup {
327
353
  "class.ng-toolbar-widget-group": "!!toolbar()"
328
354
  }
329
355
  },
356
+ queries: [{
357
+ propertyName: "_widgets",
358
+ predicate: ToolbarWidget,
359
+ descendants: true,
360
+ isSignal: true
361
+ }],
362
+ exportAs: ["ngToolbarWidgetGroup"],
330
363
  ngImport: i0
331
364
  });
332
365
  }
@@ -338,6 +371,8 @@ i0.ɵɵngDeclareClassMetadata({
338
371
  decorators: [{
339
372
  type: Directive,
340
373
  args: [{
374
+ selector: '[ngToolbarWidgetGroup]',
375
+ exportAs: 'ngToolbarWidgetGroup',
341
376
  host: {
342
377
  '[class.ng-toolbar-widget-group]': '!!toolbar()'
343
378
  }
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/aria/toolbar/toolbar.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 Signal,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {\n ToolbarPattern,\n ToolbarWidgetPattern,\n ToolbarWidgetGroupPattern,\n ToolbarWidgetGroupControls,\n} from '@angular/aria/private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {_IdGenerator} from '@angular/cdk/a11y';\n\ninterface HasElement {\n element: Signal<HTMLElement>;\n}\n\n/**\n * Sort directives by their document order.\n */\nfunction sortDirectives(a: HasElement, b: HasElement) {\n return (a.element().compareDocumentPosition(b.element()) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\n}\n\n/**\n * A toolbar widget container.\n *\n * Widgets such as radio groups or buttons are nested within a toolbar to allow for a single\n * place of reference for focus and navigation. The Toolbar is meant to be used in conjunction\n * with ToolbarWidget and RadioGroup as follows:\n *\n * ```html\n * <div ngToolbar>\n * <button ngToolbarWidget>Button</button>\n * <div ngRadioGroup>\n * <label ngRadioButton value=\"1\">Option 1</label>\n * <label ngRadioButton value=\"2\">Option 2</label>\n * <label ngRadioButton value=\"3\">Option 3</label>\n * </div>\n * </div>\n * ```\n */\n@Directive({\n selector: '[ngToolbar]',\n exportAs: 'ngToolbar',\n host: {\n 'role': 'toolbar',\n 'class': 'ng-toolbar',\n '[attr.tabindex]': '_pattern.tabindex()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': 'onFocus()',\n },\n})\nexport class Toolbar<V> {\n /** A reference to the toolbar element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The TabList nested inside of the container. */\n private readonly _widgets = signal(new Set<ToolbarWidget<V> | ToolbarWidgetGroup<V>>());\n\n /** A signal wrapper for directionality. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** Sorted UIPatterns of the child widgets */\n readonly items = computed(() =>\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 /** Whether disabled items in the group should be skipped when navigating. */\n readonly skipDisabled = input(false, {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 toolbar UIPattern. */\n readonly _pattern: ToolbarPattern<V> = new ToolbarPattern<V>({\n ...this,\n activeItem: signal(undefined),\n textDirection: this.textDirection,\n element: () => this._elementRef.nativeElement,\n getItem: e => this._getItem(e),\n });\n\n /** Whether the toolbar has received focus yet. */\n private _hasFocused = signal(false);\n\n constructor() {\n afterRenderEffect(() => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const violations = this._pattern.validate();\n for (const violation of violations) {\n console.error(violation);\n }\n }\n });\n\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this._pattern.setDefaultState();\n }\n });\n }\n\n onFocus() {\n this._hasFocused.set(true);\n }\n\n register(widget: ToolbarWidget<V> | ToolbarWidgetGroup<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> | ToolbarWidgetGroup<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 const widgetTarget = element.closest('.ng-toolbar-widget');\n const groupTarget = element.closest('.ng-toolbar-widget-group');\n return this.items().find(\n widget => widget.element() === widgetTarget || widget.element() === groupTarget,\n );\n }\n}\n\n/**\n * A widget within a toolbar.\n *\n * A widget is anything that is within a toolbar. It should be applied to any native HTML element\n * that has the purpose of acting as a widget navigatable within a toolbar.\n */\n@Directive({\n selector: '[ngToolbarWidget]',\n exportAs: 'ngToolbarWidget',\n host: {\n 'class': 'ng-toolbar-widget',\n '[attr.data-active]': '_pattern.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 widget element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The parent Toolbar. */\n private readonly _toolbar = inject(Toolbar);\n\n /** A unique identifier for the widget. */\n private readonly _generatedId = inject(_IdGenerator).getId('ng-toolbar-widget-');\n\n /** A unique identifier for the widget. */\n readonly id = computed(() => this._generatedId);\n\n /** The parent Toolbar UIPattern. */\n readonly toolbar = computed(() => this._toolbar._pattern);\n\n /** A reference to the widget element to be focused on navigation. */\n readonly element = computed(() => this._elementRef.nativeElement);\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.skipDisabled());\n\n /** The ToolbarWidget UIPattern. */\n readonly _pattern = new ToolbarWidgetPattern<V>({\n ...this,\n id: this.id,\n element: this.element,\n disabled: computed(() => this._toolbar.disabled() || this.disabled()),\n });\n\n ngOnInit() {\n this._toolbar.register(this);\n }\n\n ngOnDestroy() {\n this._toolbar.unregister(this);\n }\n}\n\n/**\n * A directive that groups toolbar widgets, used for more complex widgets like radio groups that\n * have their own internal navigation.\n */\n@Directive({\n host: {\n '[class.ng-toolbar-widget-group]': '!!toolbar()',\n },\n})\nexport class ToolbarWidgetGroup<V> implements OnInit, OnDestroy {\n /** A reference to the widget element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The parent Toolbar. */\n private readonly _toolbar = inject(Toolbar, {optional: true});\n\n /** A unique identifier for the widget. */\n private readonly _generatedId = inject(_IdGenerator).getId('ng-toolbar-widget-group-');\n\n /** A unique identifier for the widget. */\n readonly id = computed(() => this._generatedId);\n\n /** The parent Toolbar UIPattern. */\n readonly toolbar = computed(() => this._toolbar?._pattern);\n\n /** A reference to the widget element to be focused on navigation. */\n readonly element = computed(() => this._elementRef.nativeElement);\n\n /** Whether the widget group is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The controls that can be performed on the widget group. */\n readonly controls = signal<ToolbarWidgetGroupControls | undefined>(undefined);\n\n /** The ToolbarWidgetGroup UIPattern. */\n readonly _pattern = new ToolbarWidgetGroupPattern<V>({\n ...this,\n id: this.id,\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"],"names":["textDirection","inject","Directionality","valueSignal","items","computed","_widgets","sort","sortDirectives","map","widget","_pattern","ngDevMode","debugName","orientation","input","transform","booleanAttribute","disabled","wrap","getItem","e","_getItem","signal","constructor","afterRenderEffect","violations","validate","violation","console","error","onFocus","_hasFocused","set","widgets","has","Set","unregister","delete","element","widgetTarget","closest","groupTarget","find","version","type","Toolbar","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","skipDisabled","host","attributes","listeners","properties","classAttribute","exportAs","ngImport","i0","ctorParameters","_generatedId","_IdGenerator","getId","_toolbar","_elementRef","nativeElement","id","ɵfac","ɵɵngDeclareFactory","minVersion","ToolbarWidget","deps","target","ɵɵFactoryTarget","Directive","ɵdir","ɵɵngDeclareDirective"],"mappings":"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"}
1
+ {"version":3,"file":"toolbar.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/aria/toolbar/toolbar.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 Signal,\n OnInit,\n OnDestroy,\n contentChildren,\n} from '@angular/core';\nimport {\n ToolbarPattern,\n ToolbarWidgetPattern,\n ToolbarWidgetGroupPattern,\n SignalLike,\n} from '@angular/aria/private';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {_IdGenerator} from '@angular/cdk/a11y';\n\ninterface HasElement {\n element: Signal<HTMLElement>;\n}\n\n/**\n * Sort directives by their document order.\n */\nfunction sortDirectives(a: HasElement, b: HasElement) {\n return (a.element().compareDocumentPosition(b.element()) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\n}\n\n/**\n * A toolbar widget container.\n *\n * Widgets such as radio groups or buttons are nested within a toolbar to allow for a single\n * place of reference for focus and navigation. The Toolbar is meant to be used in conjunction\n * with ToolbarWidget and RadioGroup as follows:\n *\n * ```html\n * <div ngToolbar>\n * <button ngToolbarWidget>Button</button>\n * <div ngRadioGroup>\n * <label ngRadioButton value=\"1\">Option 1</label>\n * <label ngRadioButton value=\"2\">Option 2</label>\n * <label ngRadioButton value=\"3\">Option 3</label>\n * </div>\n * </div>\n * ```\n */\n@Directive({\n selector: '[ngToolbar]',\n exportAs: 'ngToolbar',\n host: {\n 'role': 'toolbar',\n 'class': 'ng-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)': 'onFocus()',\n },\n})\nexport class Toolbar<V> {\n /** A reference to the toolbar element. */\n private readonly _elementRef = inject(ElementRef);\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 items = computed(() =>\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 /** Whether to allow disabled items to receive focus. */\n 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 toolbar UIPattern. */\n readonly _pattern: ToolbarPattern<V> = new ToolbarPattern<V>({\n ...this,\n activeItem: signal(undefined),\n textDirection: this.textDirection,\n element: () => this._elementRef.nativeElement,\n getItem: e => this._getItem(e),\n });\n\n /** Whether the toolbar has received focus yet. */\n private _hasBeenFocused = signal(false);\n\n constructor() {\n afterRenderEffect(() => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const violations = this._pattern.validate();\n for (const violation of violations) {\n console.error(violation);\n }\n }\n });\n\n afterRenderEffect(() => {\n if (!this._hasBeenFocused()) {\n this._pattern.setDefaultState();\n }\n });\n }\n\n onFocus() {\n this._hasBeenFocused.set(true);\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 const widgetTarget = element.closest('.ng-toolbar-widget');\n return this.items().find(widget => widget.element() === widgetTarget);\n }\n}\n\n/**\n * A widget within a toolbar.\n *\n * A widget is anything that is within a toolbar. It should be applied to any native HTML element\n * that has the purpose of acting as a widget navigatable within a toolbar.\n */\n@Directive({\n selector: '[ngToolbarWidget]',\n exportAs: 'ngToolbarWidget',\n host: {\n 'class': 'ng-toolbar-widget',\n '[attr.data-active]': '_pattern.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 widget element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** The parent Toolbar. */\n private readonly _toolbar = inject(Toolbar);\n\n /** A unique identifier for the widget. */\n private readonly _generatedId = inject(_IdGenerator).getId('ng-toolbar-widget-', true);\n\n /** A unique identifier for the widget. */\n readonly id = input<string>(this._generatedId);\n\n /** The parent Toolbar UIPattern. */\n readonly toolbar = computed(() => this._toolbar._pattern);\n\n /** A reference to the widget element to be focused on navigation. */\n readonly element = computed(() => this._elementRef.nativeElement);\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, {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 readonly group: SignalLike<ToolbarWidgetGroupPattern<ToolbarWidgetPattern<V>, V> | undefined> =\n () => this._group?._pattern;\n\n /** The ToolbarWidget UIPattern. */\n readonly _pattern = new ToolbarWidgetPattern<V>({\n ...this,\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/**\n * A directive that groups toolbar widgets, used for more complex widgets like radio groups that\n * have their own internal navigation.\n */\n@Directive({\n selector: '[ngToolbarWidgetGroup]',\n exportAs: 'ngToolbarWidgetGroup',\n host: {\n '[class.ng-toolbar-widget-group]': '!!toolbar()',\n },\n})\nexport class ToolbarWidgetGroup<V> {\n /** The parent Toolbar. */\n private readonly _toolbar = inject(Toolbar, {optional: true});\n\n /** The list of child widgets within the group. */\n private readonly _widgets = contentChildren(ToolbarWidget<V>, {descendants: true});\n\n /** The parent Toolbar UIPattern. */\n readonly toolbar = 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 readonly items = () => 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>(this);\n}\n"],"names":["sortDirectives","a","b","element","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","Toolbar","_elementRef","inject","ElementRef","_widgets","signal","Set","textDirection","Directionality","valueSignal","items","computed","sort","map","widget","_pattern","orientation","input","softDisabled","transform","booleanAttribute","disabled","wrap","ToolbarPattern","activeItem","undefined","nativeElement","getItem","e","_getItem","_hasBeenFocused","constructor","afterRenderEffect","ngDevMode","violations","validate","violation","console","error","setDefaultState","onFocus","set","register","widgets","has","add","unregister","delete","widgetTarget","closest","find","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","attributes","listeners","properties","classAttribute","exportAs","ngImport","decorators","args","ToolbarWidget","_toolbar","_generatedId","_IdGenerator","getId","id","toolbar","debugName","hardDisabled","_group","ToolbarWidgetGroup","optional","value","required","active","selected","group","ToolbarWidgetPattern","ngOnInit","ngOnDestroy","contentChildren","descendants","w","multi","ToolbarWidgetGroupPattern","queries","propertyName","predicate"],"mappings":"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"}