@youwen/ai-design-system
Version:
Enterprise AI-driven design system with comprehensive design tokens
48 lines (47 loc) • 2.27 kB
TypeScript
/**
* 企业级标签页组件
* 基于 Radix Tabs 实现的可访问性标签页
*/
import * as React from 'react';
import * as TabsPrimitive from '@radix-ui/react-tabs';
import type { EnterpriseTabsProps, TabItem } from './types';
declare const TabsRoot: React.ForwardRefExoticComponent<TabsPrimitive.TabsProps & React.RefAttributes<HTMLDivElement>>;
declare const TabsList: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
variant?: "default" | "vertical" | "underline" | "pills" | undefined;
size?: "default" | "sm" | "lg" | undefined;
} & React.RefAttributes<HTMLDivElement>>;
declare const TabsTrigger: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & {
variant?: "default" | "underline" | "pills" | undefined;
size?: "default" | "sm" | "lg" | undefined;
icon?: React.ReactNode;
} & React.RefAttributes<HTMLButtonElement>>;
declare const TabsContent: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
declare const EnterpriseTabs: React.FC<EnterpriseTabsProps>;
declare const ControlledTabs: React.FC<{
tabs: TabItem[];
defaultTab?: string;
onTabChange?: (value: string) => void;
variant?: 'default' | 'pills' | 'underline' | 'vertical';
size?: 'sm' | 'default' | 'lg';
className?: string;
}>;
declare const DynamicTabs: React.FC<{
tabs: TabItem[];
closable?: boolean;
addable?: boolean;
onTabClose?: (value: string) => void;
onTabAdd?: () => void;
variant?: 'default' | 'pills' | 'underline';
size?: 'sm' | 'default' | 'lg';
className?: string;
}>;
declare const useTabs: (initialTabs: TabItem[], defaultValue?: string) => {
tabs: TabItem[];
value: string;
setValue: React.Dispatch<React.SetStateAction<string>>;
addTab: (tab: TabItem) => void;
removeTab: (tabValue: string) => void;
updateTab: (tabValue: string, updates: Partial<TabItem>) => void;
getTab: (tabValue: string) => TabItem | undefined;
};
export { EnterpriseTabs, ControlledTabs, DynamicTabs, useTabs, TabsRoot, TabsList, TabsTrigger, TabsContent, };