import * as React from 'react'; import { ComponentSync } from '../../core/ComponentSync.js'; import './TS_Tabs.scss'; export type Tab = { title: React.ReactNode | (() => React.ReactNode); content: React.ReactNode | (() => React.ReactNode); uid: string; disabled?: boolean; }; export type Props_Tabs = { id?: string; persistSelection?: boolean; selectedTabId?: string; tabs: Tab[]; className?: string; tabsHeaderClass?: string; tabsContentClass?: string; /** * Called only after clicking on a tab. Not called when a default first tab is selected during render. * @param selected id of the selected tab. */ onSelected?: (selectedTabId: string) => void; scrollToSelected?: boolean; }; type State = { tabs: Tab[]; selectedTabId?: string; }; /** * Tabs made easy * * * SCSS: * ```scss * .ts-tabs { * .ts-tabs__tabs-header { * .ts-tabs__tab {} * .ts-tabs__focusedTabId {} * .unselectable {} * } * * .ts-tabs__content {} * } * ``` */ export declare class TS_Tabs extends ComponentSync { constructor(p: Props_Tabs); protected deriveStateFromProps(nextProps: Props_Tabs, state: State): State; componentDidUpdate(prevProps: Readonly, prevState: Readonly, snapshot?: any): void; private getStorageKey; selectOnClick: (e: React.MouseEvent, tab: Tab) => void; private scrollToSelectedTab; render(): "" | import("react/jsx-runtime").JSX.Element; } export {};