From 382f3e365889105febbef50731e07a58889767ba Mon Sep 17 00:00:00 2001 From: Wagner Maciel Date: Sat, 15 Nov 2025 09:16:13 -0500 Subject: [PATCH 1/3] docs(aria/toolbar): expose selected values model --- src/aria/private/toolbar/toolbar.ts | 3 +-- src/aria/toolbar/toolbar.ts | 5 +++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/aria/private/toolbar/toolbar.ts b/src/aria/private/toolbar/toolbar.ts index 68d63af0a53a..65fd018919a0 100644 --- a/src/aria/private/toolbar/toolbar.ts +++ b/src/aria/private/toolbar/toolbar.ts @@ -15,7 +15,7 @@ import {ToolbarWidgetPattern} from './toolbar-widget'; /** Represents the required inputs for a toolbar. */ export type ToolbarInputs = Omit< ListInputs, V>, - 'multi' | 'typeaheadDelay' | 'values' | 'selectionMode' | 'focusMode' + 'multi' | 'typeaheadDelay' | 'selectionMode' | 'focusMode' > & { /** A function that returns the toolbar item associated with a given element. */ getItem: (e: Element) => ToolbarWidgetPattern | undefined; @@ -160,7 +160,6 @@ export class ToolbarPattern { multi: () => true, focusMode: () => 'roving', selectionMode: () => 'explicit', - values: signal([] as V[]), typeaheadDelay: () => 0, // Toolbar widgets do not support typeahead. }); } diff --git a/src/aria/toolbar/toolbar.ts b/src/aria/toolbar/toolbar.ts index b58ee19e0faa..35a5701f2d27 100644 --- a/src/aria/toolbar/toolbar.ts +++ b/src/aria/toolbar/toolbar.ts @@ -18,6 +18,7 @@ import { OnInit, OnDestroy, contentChildren, + model, } from '@angular/core'; import { ToolbarPattern, @@ -108,6 +109,9 @@ export class Toolbar { /** Whether focus should wrap when navigating. */ readonly wrap = input(true, {transform: booleanAttribute}); + /** The values of the selected widgets within the toolbar. */ + readonly values = model([]); + /** The toolbar UIPattern. */ readonly _pattern: ToolbarPattern = new ToolbarPattern({ ...this, @@ -116,6 +120,7 @@ export class Toolbar { textDirection: this.textDirection, element: () => this._elementRef.nativeElement, getItem: e => this._getItem(e), + values: this.values, }); /** Whether the toolbar has received focus yet. */ From bc7fc4e5fca10f0c739b02484b327ea49de868e5 Mon Sep 17 00:00:00 2001 From: Wagner Maciel Date: Sat, 15 Nov 2025 09:20:27 -0500 Subject: [PATCH 2/3] fixup! docs(aria/toolbar): expose selected values model --- src/aria/private/toolbar/toolbar.spec.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/aria/private/toolbar/toolbar.spec.ts b/src/aria/private/toolbar/toolbar.spec.ts index df5616b4baa7..23b77d4360ee 100644 --- a/src/aria/private/toolbar/toolbar.spec.ts +++ b/src/aria/private/toolbar/toolbar.spec.ts @@ -75,6 +75,7 @@ function getToolbarPattern( element, items, activeItem, + values: signal([]), wrap: signal(inputs.wrap ?? true), disabled: signal(inputs.disabled ?? false), softDisabled: signal(inputs.softDisabled ?? true), From 95a57f2df4d7d46b4087a0c06a71bc8715f575ee Mon Sep 17 00:00:00 2001 From: Wagner Maciel Date: Sat, 15 Nov 2025 17:09:19 -0500 Subject: [PATCH 3/3] fixup! docs(aria/toolbar): expose selected values model --- src/aria/private/toolbar/toolbar.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/aria/private/toolbar/toolbar.ts b/src/aria/private/toolbar/toolbar.ts index 65fd018919a0..2886d37bfd1d 100644 --- a/src/aria/private/toolbar/toolbar.ts +++ b/src/aria/private/toolbar/toolbar.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import {computed, signal} from '@angular/core'; +import {computed} from '@angular/core'; import {SignalLike} from '../behaviors/signal-like/signal-like'; import {KeyboardEventManager} from '../behaviors/event-manager'; import {List, ListInputs} from '../behaviors/list/list';