|
import * as TabsPrimitive from '@radix-ui/react-tabs'; |
|
import { forwardRef } from 'react'; |
|
import { cn } from '~/lib/utils'; |
|
|
|
const Tabs = TabsPrimitive.Root; |
|
|
|
const TabsList = forwardRef< |
|
React.ElementRef<typeof TabsPrimitive.List>, |
|
React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> |
|
>(({ className, ...props }, ref) => ( |
|
<TabsPrimitive.List |
|
ref={ref} |
|
className={cn( |
|
'inline-flex h-10 items-center justify-center rounded-md bg-bolt-elements-background-depth-2 p-1', |
|
'text-bolt-elements-textSecondary', |
|
className, |
|
)} |
|
{...props} |
|
/> |
|
)); |
|
TabsList.displayName = TabsPrimitive.List.displayName; |
|
|
|
const TabsTrigger = forwardRef< |
|
React.ElementRef<typeof TabsPrimitive.Trigger>, |
|
React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger> |
|
>(({ className, ...props }, ref) => ( |
|
<TabsPrimitive.Trigger |
|
ref={ref} |
|
className={cn( |
|
'inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-bolt-elements-background-depth-1', |
|
'transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-purple-500/30 focus-visible:ring-offset-2', |
|
'disabled:pointer-events-none disabled:opacity-50', |
|
'data-[state=active]:bg-bolt-elements-background-depth-1 data-[state=active]:text-bolt-elements-textPrimary data-[state=active]:shadow-sm', |
|
className, |
|
)} |
|
{...props} |
|
/> |
|
)); |
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName; |
|
|
|
const TabsContent = forwardRef< |
|
React.ElementRef<typeof TabsPrimitive.Content>, |
|
React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content> |
|
>(({ className, ...props }, ref) => ( |
|
<TabsPrimitive.Content |
|
ref={ref} |
|
className={cn( |
|
'mt-2 ring-offset-bolt-elements-background-depth-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-purple-500/30 focus-visible:ring-offset-2', |
|
className, |
|
)} |
|
{...props} |
|
/> |
|
)); |
|
TabsContent.displayName = TabsPrimitive.Content.displayName; |
|
|
|
export { Tabs, TabsList, TabsTrigger, TabsContent }; |
|
|