'use client' import * as TabsPrimitive from '@radix-ui/react-tabs' import { forwardRef } from 'react' import { tv } from 'tailwind-variants' const tabs = tv({ slots: { list: 'inline-flex h-9 items-center justify-center rounded-lg bg-bg--muted p-1', trigger: [ 'transition', 'inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1', 'text-sm font-medium text-fg-weak', 'disabled:pointer-events-none disabled:opacity-50', 'data-[state=active]:bg-bg--contrast data-[state=active]:text-fg data-[state=active]:shadow', ], content: 'mt-2', }, }) const TabsList = forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >((props, ref) => { const { list } = tabs() return ( ) }) TabsList.displayName = TabsPrimitive.List.displayName const TabsTrigger = forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >((props, ref) => { const { trigger } = tabs() return ( ) }) TabsTrigger.displayName = TabsPrimitive.Trigger.displayName const TabsContent = forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >((props, ref) => { const { content } = tabs() return ( ) }) TabsContent.displayName = TabsPrimitive.Content.displayName const Tabs = Object.assign(TabsPrimitive.Root, { List: TabsList, Trigger: TabsTrigger, Content: TabsContent, }) export default Tabs export { tabs, TabsPrimitive }