import * as _angular_core from '@angular/core'; import { InjectionToken, Signal, Provider } from '@angular/core'; import { HostRovingContext, HostRovingItemHandle, WritingDirection, RovingTabindex, ListNavigationAction } from 'forty-cdk/core'; import * as forty_cdk_toolbar from 'forty-cdk/toolbar'; /** * Per-item handle stored in the toolbar's `Collection`. Buttons, links, and * toggle-group items (when nested) register themselves on construction so the * toolbar can run roving-tabindex and arrow-key navigation in DOM order. * * Extends the lifted `HostRovingItemHandle` so any `_internal/` consumer * that registers against the toolbar via `FOR_HOST_ROVING_CONTEXT` works * without a toolbar-specific handle type. */ type ForToolbarItemHandle = HostRovingItemHandle; /** * Coordination contract owned by `ForToolbar`. * * Extends the neutral `HostRovingContext` (the lifted "host owns roving * navigation for embedded items" contract in `_internal/`) plus * toolbar-specific extras (`loop`). Toolbar provides both * `FOR_TOOLBAR_CONTEXT` and `FOR_HOST_ROVING_CONTEXT` from the same * instance via `useExisting`, so any neutral consumer (e.g. * `ForToggleGroupItem`) and any toolbar-specific consumer pull the same * object without taking a cross-primitive import. */ interface ForToolbarContext extends HostRovingContext { readonly loop: Signal; } declare const FOR_TOOLBAR_CONTEXT: InjectionToken; /** * Headless implementation of the * [WAI-ARIA Toolbar pattern](https://www.w3.org/WAI/ARIA/apg/patterns/toolbar/). * * Hosts buttons, links, separators, and (optionally) a `[forToggleGroup]` * for grouped toggles. Manages roving tabindex across all interactive * children so the toolbar takes a single Tab stop and arrow keys move * focus inside. * * Composition with `ForToggleGroup` is automatic: items inside a * `[forToggleGroup]` whose ancestor is `[forToolbar]` register with the * toolbar's roving and use its keyboard navigation, so arrow keys move * fluidly across the whole bar. * * @example * ```html *
* * * *
* * *
* * Help *
* ``` */ declare class ForToolbar implements ForToolbarContext { #private; /** * Manual `aria-label` for the toolbar. Use this when no visible label element * exists; otherwise prefer pointing `aria-labelledby` at one. A `null` * (default) or empty value emits no attribute. Matches the uniform labelling * input on `ForListbox` / `ForMenubar`. */ readonly ariaLabel: _angular_core.InputSignal; protected readonly resolvedAriaLabel: _angular_core.Signal; /** * Axis the arrow keys navigate. Reflected as `data-orientation`. */ readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">; /** * Writing direction. When unset (default `null`), the inherited ambient * direction is resolved from the nearest ancestor carrying a `dir` attribute * (or ``), defaulting to `'ltr'`. An explicit `[dir]` always wins. * The resolved value is reflected to the host `dir` attribute and swaps * ArrowLeft / ArrowRight semantics in RTL. */ readonly _dirInput: _angular_core.InputSignal; readonly dir: _angular_core.Signal; /** * Whether arrow navigation wraps around past the first / last enabled * item. Default `true`. The default is read from `provideForToolbarDefaults` * for the surrounding scope. */ readonly loop: _angular_core.InputSignalWithTransform; /** * Whether every item in the toolbar is disabled. Individual items may also disable themselves. */ readonly disabled: _angular_core.InputSignalWithTransform; /** * Roving-tabindex tracker shared by every toolbar item (buttons, links, and * nested toggle-group items). Items promote themselves to active on * `(focus)` and read `active()` in their tabindex computed, so re-entry * (Shift+Tab back into the toolbar) restores the last focused item — * matching Tabs / Tree. Before any focus, `active()` is `null` and the * tabindex falls back to the first-enabled entry point. */ readonly roving: RovingTabindex; navigate(currentItem: HTMLElement, action: ListNavigationAction): void; isFirstFocusableItem(el: HTMLElement): boolean; registerItem(handle: ForToolbarItemHandle): void; unregisterItem(handle: ForToolbarItemHandle): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } /** * Plain push button inside `[forToolbar]`. Apply on `