@angular/aria 21.0.0-rc.0 → 21.0.0-rc.2

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 +443 -59
  2. package/_adev_assets/aria-combobox.json +345 -37
  3. package/_adev_assets/aria-grid.json +408 -71
  4. package/_adev_assets/aria-listbox.json +115 -35
  5. package/_adev_assets/aria-menu.json +492 -167
  6. package/_adev_assets/aria-tabs.json +272 -88
  7. package/_adev_assets/aria-toolbar.json +151 -133
  8. package/_adev_assets/aria-tree.json +182 -35
  9. package/fesm2022/_widget-chunk.mjs +643 -190
  10. package/fesm2022/_widget-chunk.mjs.map +1 -1
  11. package/fesm2022/accordion.mjs +129 -77
  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 +140 -27
  16. package/fesm2022/combobox.mjs.map +1 -1
  17. package/fesm2022/grid.mjs +254 -68
  18. package/fesm2022/grid.mjs.map +1 -1
  19. package/fesm2022/listbox.mjs +54 -44
  20. package/fesm2022/listbox.mjs.map +1 -1
  21. package/fesm2022/menu.mjs +270 -108
  22. package/fesm2022/menu.mjs.map +1 -1
  23. package/fesm2022/private.mjs +752 -785
  24. package/fesm2022/private.mjs.map +1 -1
  25. package/fesm2022/tabs.mjs +101 -71
  26. package/fesm2022/tabs.mjs.map +1 -1
  27. package/fesm2022/toolbar.mjs +87 -64
  28. package/fesm2022/toolbar.mjs.map +1 -1
  29. package/fesm2022/tree.mjs +105 -60
  30. package/fesm2022/tree.mjs.map +1 -1
  31. package/package.json +2 -10
  32. package/types/_grid-chunk.d.ts +326 -83
  33. package/types/accordion.d.ts +134 -35
  34. package/types/combobox.d.ts +146 -13
  35. package/types/grid.d.ts +159 -32
  36. package/types/listbox.d.ts +59 -28
  37. package/types/menu.d.ts +151 -55
  38. package/types/private.d.ts +449 -567
  39. package/types/tabs.d.ts +121 -41
  40. package/types/toolbar.d.ts +74 -51
  41. package/types/tree.d.ts +116 -45
  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
@@ -1,14 +1,15 @@
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';
6
6
 
7
7
  function sortDirectives(a, b) {
8
- return (a.element().compareDocumentPosition(b.element()) & Node.DOCUMENT_POSITION_PRECEDING) > 0 ? 1 : -1;
8
+ return (a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_PRECEDING) > 0 ? 1 : -1;
9
9
  }
10
10
  class Toolbar {
11
11
  _elementRef = inject(ElementRef);
12
+ element = this._elementRef.nativeElement;
12
13
  _widgets = signal(new Set(), ...(ngDevMode ? [{
13
14
  debugName: "_widgets"
14
15
  }] : []));
@@ -19,8 +20,8 @@ class Toolbar {
19
20
  orientation = input('horizontal', ...(ngDevMode ? [{
20
21
  debugName: "orientation"
21
22
  }] : []));
22
- skipDisabled = input(false, ...(ngDevMode ? [{
23
- debugName: "skipDisabled",
23
+ softDisabled = input(true, ...(ngDevMode ? [{
24
+ debugName: "softDisabled",
24
25
  transform: booleanAttribute
25
26
  }] : [{
26
27
  transform: booleanAttribute
@@ -44,8 +45,8 @@ class Toolbar {
44
45
  element: () => this._elementRef.nativeElement,
45
46
  getItem: e => this._getItem(e)
46
47
  });
47
- _hasFocused = signal(false, ...(ngDevMode ? [{
48
- debugName: "_hasFocused"
48
+ _hasBeenFocused = signal(false, ...(ngDevMode ? [{
49
+ debugName: "_hasBeenFocused"
49
50
  }] : []));
50
51
  constructor() {
51
52
  afterRenderEffect(() => {
@@ -57,13 +58,13 @@ class Toolbar {
57
58
  }
58
59
  });
59
60
  afterRenderEffect(() => {
60
- if (!this._hasFocused()) {
61
+ if (!this._hasBeenFocused()) {
61
62
  this._pattern.setDefaultState();
62
63
  }
63
64
  });
64
65
  }
65
66
  onFocus() {
66
- this._hasFocused.set(true);
67
+ this._hasBeenFocused.set(true);
67
68
  }
68
69
  register(widget) {
69
70
  const widgets = this._widgets();
@@ -79,9 +80,8 @@ class Toolbar {
79
80
  }
80
81
  }
81
82
  _getItem(element) {
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
+ const widgetTarget = element.closest('[ngToolbarWidget]');
84
+ return this.items().find(widget => widget.element() === widgetTarget);
85
85
  }
86
86
  static ɵfac = i0.ɵɵngDeclareFactory({
87
87
  minVersion: "12.0.0",
@@ -105,9 +105,9 @@ class Toolbar {
105
105
  isRequired: false,
106
106
  transformFunction: null
107
107
  },
108
- skipDisabled: {
109
- classPropertyName: "skipDisabled",
110
- publicName: "skipDisabled",
108
+ softDisabled: {
109
+ classPropertyName: "softDisabled",
110
+ publicName: "softDisabled",
111
111
  isSignal: true,
112
112
  isRequired: false,
113
113
  transformFunction: null
@@ -133,15 +133,15 @@ class Toolbar {
133
133
  },
134
134
  listeners: {
135
135
  "keydown": "_pattern.onKeydown($event)",
136
+ "click": "_pattern.onClick($event)",
136
137
  "pointerdown": "_pattern.onPointerdown($event)",
137
138
  "focusin": "onFocus()"
138
139
  },
139
140
  properties: {
140
- "attr.tabindex": "_pattern.tabindex()",
141
+ "attr.tabindex": "_pattern.tabIndex()",
141
142
  "attr.aria-disabled": "_pattern.disabled()",
142
143
  "attr.aria-orientation": "_pattern.orientation()"
143
- },
144
- classAttribute: "ng-toolbar"
144
+ }
145
145
  },
146
146
  exportAs: ["ngToolbar"],
147
147
  ngImport: i0
@@ -159,11 +159,11 @@ i0.ɵɵngDeclareClassMetadata({
159
159
  exportAs: 'ngToolbar',
160
160
  host: {
161
161
  'role': 'toolbar',
162
- 'class': 'ng-toolbar',
163
- '[attr.tabindex]': '_pattern.tabindex()',
162
+ '[attr.tabindex]': '_pattern.tabIndex()',
164
163
  '[attr.aria-disabled]': '_pattern.disabled()',
165
164
  '[attr.aria-orientation]': '_pattern.orientation()',
166
165
  '(keydown)': '_pattern.onKeydown($event)',
166
+ '(click)': '_pattern.onClick($event)',
167
167
  '(pointerdown)': '_pattern.onPointerdown($event)',
168
168
  '(focusin)': 'onFocus()'
169
169
  }
@@ -173,31 +173,39 @@ i0.ɵɵngDeclareClassMetadata({
173
173
  });
174
174
  class ToolbarWidget {
175
175
  _elementRef = inject(ElementRef);
176
+ element = this._elementRef.nativeElement;
176
177
  _toolbar = inject(Toolbar);
177
- _generatedId = inject(_IdGenerator).getId('ng-toolbar-widget-');
178
- id = computed(() => this._generatedId, ...(ngDevMode ? [{
178
+ id = input(inject(_IdGenerator).getId('ng-toolbar-widget-', true), ...(ngDevMode ? [{
179
179
  debugName: "id"
180
180
  }] : []));
181
181
  toolbar = computed(() => this._toolbar._pattern, ...(ngDevMode ? [{
182
182
  debugName: "toolbar"
183
183
  }] : []));
184
- element = computed(() => this._elementRef.nativeElement, ...(ngDevMode ? [{
185
- debugName: "element"
186
- }] : []));
187
184
  disabled = input(false, ...(ngDevMode ? [{
188
185
  debugName: "disabled",
189
186
  transform: booleanAttribute
190
187
  }] : [{
191
188
  transform: booleanAttribute
192
189
  }]));
193
- hardDisabled = computed(() => this._pattern.disabled() && this._toolbar.skipDisabled(), ...(ngDevMode ? [{
190
+ hardDisabled = computed(() => this._pattern.disabled() && !this._toolbar.softDisabled(), ...(ngDevMode ? [{
194
191
  debugName: "hardDisabled"
195
192
  }] : []));
193
+ _group = inject(ToolbarWidgetGroup, {
194
+ optional: true
195
+ });
196
+ value = input.required(...(ngDevMode ? [{
197
+ debugName: "value"
198
+ }] : []));
199
+ active = computed(() => this._pattern.active(), ...(ngDevMode ? [{
200
+ debugName: "active"
201
+ }] : []));
202
+ selected = () => this._pattern.selected();
203
+ group = () => this._group?._pattern;
196
204
  _pattern = new ToolbarWidgetPattern({
197
205
  ...this,
198
206
  id: this.id,
199
- element: this.element,
200
- disabled: computed(() => this._toolbar.disabled() || this.disabled())
207
+ value: this.value,
208
+ element: () => this.element
201
209
  });
202
210
  ngOnInit() {
203
211
  this._toolbar.register(this);
@@ -220,24 +228,37 @@ class ToolbarWidget {
220
228
  isStandalone: true,
221
229
  selector: "[ngToolbarWidget]",
222
230
  inputs: {
231
+ id: {
232
+ classPropertyName: "id",
233
+ publicName: "id",
234
+ isSignal: true,
235
+ isRequired: false,
236
+ transformFunction: null
237
+ },
223
238
  disabled: {
224
239
  classPropertyName: "disabled",
225
240
  publicName: "disabled",
226
241
  isSignal: true,
227
242
  isRequired: false,
228
243
  transformFunction: null
244
+ },
245
+ value: {
246
+ classPropertyName: "value",
247
+ publicName: "value",
248
+ isSignal: true,
249
+ isRequired: true,
250
+ transformFunction: null
229
251
  }
230
252
  },
231
253
  host: {
232
254
  properties: {
233
- "attr.data-active": "_pattern.active()",
234
- "attr.tabindex": "_pattern.tabindex()",
255
+ "attr.data-active": "active()",
256
+ "attr.tabindex": "_pattern.tabIndex()",
235
257
  "attr.inert": "hardDisabled() ? true : null",
236
258
  "attr.disabled": "hardDisabled() ? true : null",
237
259
  "attr.aria-disabled": "_pattern.disabled()",
238
260
  "id": "_pattern.id()"
239
- },
240
- classAttribute: "ng-toolbar-widget"
261
+ }
241
262
  },
242
263
  exportAs: ["ngToolbarWidget"],
243
264
  ngImport: i0
@@ -254,9 +275,8 @@ i0.ɵɵngDeclareClassMetadata({
254
275
  selector: '[ngToolbarWidget]',
255
276
  exportAs: 'ngToolbarWidget',
256
277
  host: {
257
- 'class': 'ng-toolbar-widget',
258
- '[attr.data-active]': '_pattern.active()',
259
- '[attr.tabindex]': '_pattern.tabindex()',
278
+ '[attr.data-active]': 'active()',
279
+ '[attr.tabindex]': '_pattern.tabIndex()',
260
280
  '[attr.inert]': 'hardDisabled() ? true : null',
261
281
  '[attr.disabled]': 'hardDisabled() ? true : null',
262
282
  '[attr.aria-disabled]': '_pattern.disabled()',
@@ -267,39 +287,33 @@ i0.ɵɵngDeclareClassMetadata({
267
287
  });
268
288
  class ToolbarWidgetGroup {
269
289
  _elementRef = inject(ElementRef);
290
+ element = this._elementRef.nativeElement;
270
291
  _toolbar = inject(Toolbar, {
271
292
  optional: true
272
293
  });
273
- _generatedId = inject(_IdGenerator).getId('ng-toolbar-widget-group-');
274
- id = computed(() => this._generatedId, ...(ngDevMode ? [{
275
- debugName: "id"
276
- }] : []));
294
+ _widgets = contentChildren(ToolbarWidget, ...(ngDevMode ? [{
295
+ debugName: "_widgets",
296
+ descendants: true
297
+ }] : [{
298
+ descendants: true
299
+ }]));
277
300
  toolbar = computed(() => this._toolbar?._pattern, ...(ngDevMode ? [{
278
301
  debugName: "toolbar"
279
302
  }] : []));
280
- element = computed(() => this._elementRef.nativeElement, ...(ngDevMode ? [{
281
- debugName: "element"
282
- }] : []));
283
303
  disabled = input(false, ...(ngDevMode ? [{
284
304
  debugName: "disabled",
285
305
  transform: booleanAttribute
286
306
  }] : [{
287
307
  transform: booleanAttribute
288
308
  }]));
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
- }
309
+ items = () => this._widgets().map(w => w._pattern);
310
+ multi = input(false, ...(ngDevMode ? [{
311
+ debugName: "multi",
312
+ transform: booleanAttribute
313
+ }] : [{
314
+ transform: booleanAttribute
315
+ }]));
316
+ _pattern = new ToolbarWidgetGroupPattern(this);
303
317
  static ɵfac = i0.ɵɵngDeclareFactory({
304
318
  minVersion: "12.0.0",
305
319
  version: "20.2.0-next.2",
@@ -309,10 +323,11 @@ class ToolbarWidgetGroup {
309
323
  target: i0.ɵɵFactoryTarget.Directive
310
324
  });
311
325
  static ɵdir = i0.ɵɵngDeclareDirective({
312
- minVersion: "17.1.0",
326
+ minVersion: "17.2.0",
313
327
  version: "20.2.0-next.2",
314
328
  type: ToolbarWidgetGroup,
315
329
  isStandalone: true,
330
+ selector: "[ngToolbarWidgetGroup]",
316
331
  inputs: {
317
332
  disabled: {
318
333
  classPropertyName: "disabled",
@@ -320,13 +335,22 @@ class ToolbarWidgetGroup {
320
335
  isSignal: true,
321
336
  isRequired: false,
322
337
  transformFunction: null
338
+ },
339
+ multi: {
340
+ classPropertyName: "multi",
341
+ publicName: "multi",
342
+ isSignal: true,
343
+ isRequired: false,
344
+ transformFunction: null
323
345
  }
324
346
  },
325
- host: {
326
- properties: {
327
- "class.ng-toolbar-widget-group": "!!toolbar()"
328
- }
329
- },
347
+ queries: [{
348
+ propertyName: "_widgets",
349
+ predicate: ToolbarWidget,
350
+ descendants: true,
351
+ isSignal: true
352
+ }],
353
+ exportAs: ["ngToolbarWidgetGroup"],
330
354
  ngImport: i0
331
355
  });
332
356
  }
@@ -338,9 +362,8 @@ i0.ɵɵngDeclareClassMetadata({
338
362
  decorators: [{
339
363
  type: Directive,
340
364
  args: [{
341
- host: {
342
- '[class.ng-toolbar-widget-group]': '!!toolbar()'
343
- }
365
+ selector: '[ngToolbarWidgetGroup]',
366
+ exportAs: 'ngToolbarWidgetGroup'
344
367
  }]
345
368
  }]
346
369
  });
@@ -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":["../../../../../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 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: 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 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@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)': 'onFocus()',\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 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 /**\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 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('[ngToolbarWidget]');\n return this.items().find(widget => widget.element() === widgetTarget);\n }\n}\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@Directive({\n selector: '[ngToolbarWidget]',\n exportAs: 'ngToolbarWidget',\n host: {\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);\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 toolbar = computed(() => 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, {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\n * that have their own internal navigation.\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngToolbarWidgetGroup]',\n exportAs: 'ngToolbarWidgetGroup',\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, {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","nativeElement","_widgets","signal","Set","textDirection","Directionality","valueSignal","items","computed","sort","map","widget","_pattern","orientation","input","softDisabled","transform","booleanAttribute","disabled","wrap","ToolbarPattern","activeItem","undefined","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","exportAs","ngImport","decorators","args","ToolbarWidget","_toolbar","id","_IdGenerator","getId","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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"}