import * as React from 'react' import * as TabsPrimitive from '@radix-ui/react-tabs' import { cva, type VariantProps } from 'class-variance-authority' import { cn } from '@/lib/utils' const Tabs = TabsPrimitive.Root const tabsListVariants = cva( 'inline-flex items-center justify-center text-text-secondary data-[orientation=horizontal]:flex-row data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch', { variants: { variant: { default: 'rounded-lg bg-fill-secondary p-0.5 gap-0.5', line: 'gap-6 border-b border-border-tertiary bg-transparent p-0', }, }, defaultVariants: { variant: 'default' }, } ) const tabsTriggerVariants = cva( 'inline-flex items-center justify-center gap-1.5 whitespace-nowrap text-sm font-medium transition-colors outline-none focus-visible:ring-2 focus-visible:ring-primary-border focus-visible:ring-offset-2 focus-visible:ring-offset-bg-base disabled:pointer-events-none disabled:opacity-50 data-[state=active]:text-text cursor-pointer data-[orientation=vertical]:justify-start data-[orientation=vertical]:rounded-md data-[orientation=vertical]:px-3 data-[orientation=vertical]:py-2', { variants: { variant: { default: 'rounded-md px-3 py-1.5 data-[state=active]:bg-bg-container data-[state=active]:shadow-sm', line: 'rounded-none border-b-2 border-transparent px-1 pb-2 pt-0 data-[state=active]:border-primary data-[state=active]:shadow-none', }, }, defaultVariants: { variant: 'default' }, } ) export interface TabsListProps extends React.ComponentPropsWithoutRef, VariantProps {} export interface TabsTriggerProps extends React.ComponentPropsWithoutRef, VariantProps {} const TabsList = React.forwardRef< React.ElementRef, TabsListProps >(({ className, variant = 'default', ...props }, ref) => ( )) TabsList.displayName = TabsPrimitive.List.displayName const TabsTrigger = React.forwardRef< React.ElementRef, TabsTriggerProps >(({ className, variant = 'default', ...props }, ref) => ( )) TabsTrigger.displayName = TabsPrimitive.Trigger.displayName const TabsContent = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, ...props }, ref) => ( )) TabsContent.displayName = TabsPrimitive.Content.displayName export type TabsContentProps = React.ComponentPropsWithoutRef export type TabsProps = React.ComponentPropsWithoutRef export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants, tabsTriggerVariants }