import type * as React from 'react'; import type { ORIENTATION, FILL, STATE_CHANGE_TYPE } from './constants'; import type { Override } from '../helpers/overrides'; import type { IconProps } from '../icon'; export type Orientation = (typeof ORIENTATION)[keyof typeof ORIENTATION]; export type Fill = (typeof FILL)[keyof typeof FILL]; export type StateChange = (typeof STATE_CHANGE_TYPE)[keyof typeof STATE_CHANGE_TYPE]; export type TabsOverrides = { Root?: Override; TabList?: Override; TabHighlight?: Override; TabBorder?: Override; EndEnhancerContainer?: Override; TabBar?: Override; }; export type TabOverrides = { Tab?: Override; ArtworkContainer?: Override; TabPanel?: Override; }; export type StatefulTabsState = { activeKey: React.Key; }; export type StatefulTabsAction = { type: StateChange; payload: React.Key; }; export type StatefulTabsReducer = (state: StatefulTabsState, action: StatefulTabsAction) => StatefulTabsState; export type onChange = (params: { activeKey: React.Key; }) => void; export type TabsProps = { children: React.ReactNode; activeKey?: React.Key; disabled?: boolean; fill?: Fill; orientation?: Orientation; activateOnFocus?: boolean; onChange?: onChange; overrides?: TabsOverrides; renderAll?: boolean; uid?: string; endEnhancer?: React.ReactNode; }; export type StatefulTabsProps = { initialState?: StatefulTabsState; stateReducer?: StatefulTabsReducer; } & TabsProps; export type TabProps = { title?: React.ReactNode; key?: React.Key; tabRef?: React.Ref; overrides?: TabOverrides; children?: React.ReactNode; artwork?: React.ComponentType<{ size: IconProps['size']; color: IconProps['color']; } & IconProps>; disabled?: boolean; };