baseui
Version:
A React Component library implementing the Base design language
61 lines (60 loc) • 1.83 kB
TypeScript
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<HTMLButtonElement>;
overrides?: TabOverrides;
children?: React.ReactNode;
artwork?: React.ComponentType<{
size: IconProps['size'];
color: IconProps['color'];
} & IconProps>;
disabled?: boolean;
};