Path: blob/master/gate-controller/components/ui/tabs.tsx
1085 views
"use client"12import * as React from "react"3import * as TabsPrimitive from "@radix-ui/react-tabs"45import { cn } from "@/lib/utils"67function Tabs({8className,9...props10}: React.ComponentProps<typeof TabsPrimitive.Root>) {11return (12<TabsPrimitive.Root13data-slot="tabs"14className={cn("flex flex-col gap-2", className)}15{...props}16/>17)18}1920function TabsList({21className,22...props23}: React.ComponentProps<typeof TabsPrimitive.List>) {24return (25<TabsPrimitive.List26data-slot="tabs-list"27className={cn(28"bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",29className30)}31{...props}32/>33)34}3536function TabsTrigger({37className,38...props39}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {40return (41<TabsPrimitive.Trigger42data-slot="tabs-trigger"43className={cn(44"data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",45className46)}47{...props}48/>49)50}5152function TabsContent({53className,54...props55}: React.ComponentProps<typeof TabsPrimitive.Content>) {56return (57<TabsPrimitive.Content58data-slot="tabs-content"59className={cn("flex-1 outline-none", className)}60{...props}61/>62)63}6465export { Tabs, TabsList, TabsTrigger, TabsContent }666768