import { PropertyValues } from 'lit'; import { SpectrumElement } from '../../element/index.js'; /** * Base class for an individual tab within a tabbed interface. * * Manages the tab's selection state, disabled behavior, ARIA * attributes, and roving tabindex. Concrete classes supply the * stylesheet and render template. * * Disabled tabs use `aria-disabled="true"` and remain focusable via * arrow keys per the ARIA Authoring Practices Guide, but are not * activatable (Enter, Space, and click are guarded). * * @slot - Text label of the tab * @slot icon - Optional icon displayed before the label */ export declare abstract class TabBase extends SpectrumElement { /** * Whether this tab is disabled. Disabled tabs are announced as * unavailable by assistive technology and cannot be activated, * but remain focusable via arrow keys within the tablist. */ disabled: boolean; /** * Whether this tab is currently selected. Managed by the parent * `swc-tabs` container — consumers should not set this directly. * Use `swc-tabs[selected]` instead. */ selected: boolean; /** * Whether the tab is displayed in vertical orientation. * * Orientation is primarily driven by the parent `swc-tabs` `direction` * attribute; this property remains for styling and any consumers that read * it explicitly. We can remove it in a future major once vertical layout is * fully parent-driven only—track that cleanup in the component backlog if * it becomes redundant in practice. */ vertical: boolean; /** * Unique identifier for this tab. Used by the parent `swc-tabs` * to match this tab to its corresponding `swc-tab-panel`. */ tabId: string; protected firstUpdated(changes: PropertyValues): void; protected updated(changes: PropertyValues): void; private syncAriaSelected; private syncAriaDisabled; }