import { PropertyValues } from 'lit'; import { SpectrumElement } from '../../element/index.js'; /** * Base class for a tab panel that displays content associated with * a tab. * * Manages visibility, ARIA hidden state, tabindex, and the * focus-in/out behavior that prevents Tab-key trapping inside panel * content. * * In 1st-gen, `slot="tab-panel"` was * assigned programmatically in `firstUpdated` so consumers never * wrote it in markup. This behavior is preserved in 2nd-gen. * * The panel removes its own * `tabindex` on `focusin` so that Tab presses inside the panel * move to the next interactive element rather than being trapped. * On `focusout`, `tabindex` is restored so the panel remains * focusable from the tablist. * * @slot - Content displayed when the associated tab is selected */ export declare abstract class TabPanelBase extends SpectrumElement { /** * Whether this panel is currently visible (its associated tab is * selected). Managed by the parent `swc-tabs` — consumers should * not set this directly. */ selected: boolean; /** * Unique identifier linking this panel to its corresponding tab. * Must match the `tab-id` attribute on the associated `swc-tab`. */ tabId: string; /** * Removes the panel's `tabindex` while focus is inside the panel * so that Tab presses navigate to the next interactive element * rather than the panel container itself. */ protected handleFocusin(): void; /** * Restores `tabindex` when focus leaves the panel so the panel * remains directly focusable from the tablist via Tab key. */ protected handleFocusout(): void; protected firstUpdated(_changes: PropertyValues): void; protected updated(changes: PropertyValues): void; private syncVisibility; }