import { type ComponentType, type ReactNode, forwardRef } from "react"; import * as Tabs from "@radix-ui/react-tabs"; import { type LucideProps } from "lucide-react"; import { cn } from "@/lib/cn"; import { useFocusVisible } from "@/hooks/useFocusVisible"; const Root = forwardRef>( function VerticalTabsRoot({ className, ...props }, ref) { return ( ); }, ); const List = forwardRef(function VerticalTabsList( { className, ...props }, ref, ) { return ( ); }); type TriggerProps = Tabs.TabsTriggerProps & { icon: ComponentType; title: string; iconSize?: number; adornment?: ReactNode; }; const Trigger = forwardRef(function VerticalTabsTrigger( { icon: Icon, title, iconSize = 16, adornment, className, ...props }, ref, ) { const isFocusVisible = useFocusVisible(); return ( {title} {adornment && (
{adornment}
)}
); }); const Content = forwardRef(function VerticalTabsContent( { className, ...props }, ref, ) { return ( ); }); export const VerticalTabs = Object.assign(Root, { List, Trigger, Content });