UNPKG

react-lightning-design-system

Version:

Salesforce Lightning Design System components built with React

70 lines (69 loc) 1.88 kB
import React, { FC, ComponentType, HTMLAttributes, ReactElement, ReactNode, Ref } from 'react'; import { DropdownButtonProps } from './DropdownButton'; import { Bivariant } from './typeUtils'; /** * */ type TabKey = string | number; export type TabType = 'default' | 'scoped'; /** * */ export type TabContentProps = { active?: boolean; } & HTMLAttributes<HTMLDivElement>; /** * */ export type TabMenuProps = DropdownButtonProps; /** * */ export type TabItemRendererProps = { type?: TabType; title?: string; alt?: string; menu?: ReactElement; menuItems?: ReactElement[]; menuIcon?: string; eventKey?: TabKey; activeKey?: TabKey; activeTabRef?: Ref<HTMLAnchorElement>; children?: ReactNode; onTabClick?: Bivariant<(eventKey: TabKey) => void>; onTabKeyDown?: Bivariant<(eventKey: TabKey, e: React.KeyboardEvent<HTMLAnchorElement>) => void>; tooltip?: ReactNode; tooltipIcon?: string; }; /** * */ export type TabItemProps<RendererProps extends TabItemRendererProps> = { tabItemRenderer?: ComponentType<RendererProps>; rendererProps?: Omit<RendererProps, keyof TabItemRendererProps>; } & Omit<TabItemRendererProps, 'type' | 'activeKey' | 'activeTabRef' | 'onTabClick' | 'onTabKeyDown'>; /** * */ export type TabProps<RendererProps extends TabItemRendererProps> = { className?: string; eventKey?: TabKey; children?: ReactNode; } & TabItemProps<RendererProps>; export declare const Tab: <RendererProps extends TabItemRendererProps = TabItemRendererProps>(props: TabProps<RendererProps>) => React.JSX.Element; /** * */ export type TabsProps = { className?: string; type?: TabType; defaultActiveKey?: TabKey; activeKey?: TabKey; children?: ReactNode; onSelect?: Bivariant<(tabKey: TabKey) => void>; }; /** * */ export declare const Tabs: FC<TabsProps>; export {};