import { default as React } from 'react';
import { Direction } from '@wix/editor-react-types';
import { TransitionType, TransitionDirection } from './constants';
import { SdkFunctionClickableProps, SdkFunctionMouseHoverProps, SdkFunctionFocusableProps } from '../../../utils/functions/sdkFunctionCallbackProps';
type TabsViewerProps = {
/** DOM `id` on the root `
`. */
id: string;
/** Appended to the root. Use this for CSS-variable and per-element overrides. */
className?: string;
};
type TabsDataProps = SdkFunctionClickableProps & SdkFunctionMouseHoverProps & SdkFunctionFocusableProps & {
/** Animation applied when switching tabs. Default `'none'`. */
transitionType: TransitionType;
/** Transition length in seconds. Written to `--transition-duration` on the root. Default `0.3`. */
transitionDuration?: number;
/** Direction of the slide-in animation when `transitionType="slide"`. Default `'down'`. */
transitionDirection?: TransitionDirection;
/** Headers + bodies. `content` accepts any React node. In the editor it's a container slot managed via the "Manage tabs" action. */
tabs?: Array<{
name: string;
content: React.ReactNode;
}>;
/** Index of the active tab. Drives the editor's array-items display group and the initial selection on mount. */
activeTab: number;
/** Sets the writing direction on the menu. Defaults to the resolved environment direction. */
direction?: Direction;
/** Fires after the active tab changes. */
onChange?: (event?: React.SyntheticEvent) => void;
/** Fires on each tab-header click before the active tab updates. */
onTabItemClicked?: () => void;
};
export type TabsProps = TabsDataProps & TabsViewerProps;
declare const Tabs: (props: TabsProps) => React.JSX.Element;
export default Tabs;