import { PropertyValues } from 'lit'; import { SpectrumElement } from '../../element/index.js'; import { ActionGroupOrientation, ActionGroupSize } from './ActionGroup.types.js'; declare const ActionGroupBase_base: typeof SpectrumElement & { new (...args: any[]): import('../../mixins/index.js').SizedElementInterface; prototype: import('../../mixins/index.js').SizedElementInterface; } & import('../../mixins/index.js').SizedElementConstructor; /** * An action group clusters related actions together with consistent * spacing, sizing, and orientation. It treats the whole strip as a single * stop in the keyboard sequence, with arrow keys moving between children. * * This base class owns the accessibility semantics, `accessible-label` → * `aria-label` management, `disabled` state contract, and child collection logic. * Rendering and styling live in the concrete SWC subclass. * * @slot - One or more `swc-action-button` or `swc-action-menu` elements. * * @attribute {ActionGroupSize} size - The size of the group and its children. */ export declare abstract class ActionGroupBase extends ActionGroupBase_base { static shadowRootOptions: { delegatesFocus: boolean; clonable?: boolean; customElementRegistry?: CustomElementRegistry; mode: ShadowRootMode; serializable?: boolean; slotAssignment?: SlotAssignmentMode; }; /** * The size of the action group. Propagated to all slotted children. */ size: ActionGroupSize; /** * @internal * * Valid orientation values for validation. */ static readonly ORIENTATIONS: readonly string[]; /** * @internal * * Valid static-color values for validation. */ static readonly STATIC_COLORS: readonly string[]; /** * The layout direction of the action group. * * When set to `"vertical"`, the group stacks children vertically and * `FocusgroupNavigationController` moves focus with the Up/Down arrow * keys instead of Left/Right. * * Note: this property does NOT set `aria-orientation` on the host. The * host's role is fixed to `role="group"`, and `aria-orientation` is only * a supported ARIA attribute on roles that expose it (`toolbar`, * `listbox`, `menu`, etc.), not `group`, regardless of this component's * roving-tabindex keyboard model. Setting it anyway fails axe's * `aria-allowed-attr` rule. * * @default horizontal */ orientation: ActionGroupOrientation; /** * Accessible label for the group. Reflected to `aria-label` on the host. * * Providing a label is recommended whenever the strip has a distinct * purpose (e.g., "Image adjustments" or "Edit"). An empty value removes * the `aria-label` attribute. */ accessibleLabel: string; /** * Whether the group and all of its children are disabled. * * Sets `aria-disabled="true"` on the host and propagates `aria-disabled` * to each managed child. Children remain keyboard-reachable so that screen * reader users can still discover the group. Native `disabled` is not * applied to children. */ disabled: boolean; /** * @internal * * The managed children: all `swc-action-button` and `swc-action-menu` * elements assigned to the default slot. Populated by the concrete * subclass via `@queryAssignedElements`. */ protected managedChildren: HTMLElement[]; /** * Focuses the first enabled child in the group. * * The SWC concrete class overrides this with `FocusgroupNavigationController`, * restoring focus to the last active item when memory is enabled. This * implementation serves as a fallback for non-SWC subclasses. */ focus(options?: FocusOptions): void; /** * @internal * * Handles slot-change events. Propagates `aria-disabled` to newly slotted * children when the group is disabled. Concrete subclasses call * `super.handleSlotchange()` and then propagate visual attributes. */ protected handleSlotchange(): void; protected firstUpdated(changed: PropertyValues): void; protected updated(changed: PropertyValues): void; private propagateDisabledToChildren; } export {};