@angular/aria 21.0.0-next.9 → 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 (49) hide show
  1. package/_adev_assets/aria-accordion.json +373 -0
  2. package/_adev_assets/aria-combobox.json +383 -0
  3. package/_adev_assets/aria-grid.json +647 -0
  4. package/_adev_assets/aria-listbox.json +511 -0
  5. package/_adev_assets/aria-menu.json +852 -0
  6. package/_adev_assets/aria-tabs.json +987 -0
  7. package/_adev_assets/aria-toolbar.json +696 -0
  8. package/_adev_assets/aria-tree.json +1071 -0
  9. package/fesm2022/_widget-chunk.mjs +949 -0
  10. package/fesm2022/_widget-chunk.mjs.map +1 -0
  11. package/fesm2022/accordion.mjs +372 -174
  12. package/fesm2022/accordion.mjs.map +1 -1
  13. package/fesm2022/aria.mjs +1 -2
  14. package/fesm2022/aria.mjs.map +1 -1
  15. package/fesm2022/combobox.mjs +308 -116
  16. package/fesm2022/combobox.mjs.map +1 -1
  17. package/fesm2022/grid.mjs +566 -0
  18. package/fesm2022/grid.mjs.map +1 -0
  19. package/fesm2022/listbox.mjs +384 -184
  20. package/fesm2022/listbox.mjs.map +1 -1
  21. package/fesm2022/menu.mjs +591 -0
  22. package/fesm2022/menu.mjs.map +1 -0
  23. package/fesm2022/private.mjs +2338 -0
  24. package/fesm2022/private.mjs.map +1 -0
  25. package/fesm2022/tabs.mjs +484 -276
  26. package/fesm2022/tabs.mjs.map +1 -1
  27. package/fesm2022/toolbar.mjs +366 -200
  28. package/fesm2022/toolbar.mjs.map +1 -1
  29. package/fesm2022/tree.mjs +515 -267
  30. package/fesm2022/tree.mjs.map +1 -1
  31. package/package.json +12 -12
  32. package/types/_grid-chunk.d.ts +608 -0
  33. package/types/accordion.d.ts +8 -8
  34. package/types/combobox.d.ts +20 -7
  35. package/types/grid.d.ts +120 -0
  36. package/types/listbox.d.ts +9 -7
  37. package/types/menu.d.ts +170 -0
  38. package/types/{ui-patterns.d.ts → private.d.ts} +555 -433
  39. package/types/tabs.d.ts +8 -8
  40. package/types/toolbar.d.ts +31 -28
  41. package/types/tree.d.ts +11 -9
  42. package/fesm2022/deferred-content.mjs +0 -60
  43. package/fesm2022/deferred-content.mjs.map +0 -1
  44. package/fesm2022/radio-group.mjs +0 -197
  45. package/fesm2022/radio-group.mjs.map +0 -1
  46. package/fesm2022/ui-patterns.mjs +0 -2504
  47. package/fesm2022/ui-patterns.mjs.map +0 -1
  48. package/types/deferred-content.d.ts +0 -38
  49. package/types/radio-group.d.ts +0 -82
@@ -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/ui-patterns';\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":[],"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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"}