SPB Git forge

spb/fetcha

Public
11commits 1branches 0releases
1.5 MBsize
maindefault branch
16 days agolast push
TypeScript 97.5% SQL 1.4% Python 0.8%
2.2 KB · 43 lines tsx
Raw Blame History
1"use client";2import * as React from "react";3import * as TabsPrimitive from "@radix-ui/react-tabs";4import { cn } from "@/lib/utils";56export const Tabs = TabsPrimitive.Root;78export const TabsList = React.forwardRef<React.ElementRef<typeof TabsPrimitive.List>, React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> & { variant?: "pill" | "underline" }>(9  ({ className, variant = "pill", ...props }, ref) => (10    <TabsPrimitive.List11      ref={ref}12      className={cn(13        variant === "pill"14          ? "inline-flex h-9 items-center gap-0.5 rounded-md bg-bg-muted p-1 text-fg-muted"15          : "flex items-center gap-4 border-b border-border text-fg-muted overflow-x-auto no-scrollbar",16        className,17      )}18      data-variant={variant}19      {...props}20    />21  ),22);23TabsList.displayName = "TabsList";2425export const TabsTrigger = React.forwardRef<React.ElementRef<typeof TabsPrimitive.Trigger>, React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>>(({ className, ...props }, ref) => (26  <TabsPrimitive.Trigger27    ref={ref}28    className={cn(29      "inline-flex items-center justify-center gap-1.5 whitespace-nowrap text-[13px] font-medium transition-all disabled:pointer-events-none disabled:opacity-50",30      "[[data-variant=pill]_&]:rounded-[5px] [[data-variant=pill]_&]:px-3 [[data-variant=pill]_&]:h-7 [[data-variant=pill]_&]:data-[state=active]:bg-bg [[data-variant=pill]_&]:data-[state=active]:text-fg [[data-variant=pill]_&]:data-[state=active]:shadow-xs",31      "[[data-variant=underline]_&]:-mb-px [[data-variant=underline]_&]:border-b-2 [[data-variant=underline]_&]:border-transparent [[data-variant=underline]_&]:pb-2.5 [[data-variant=underline]_&]:pt-1 [[data-variant=underline]_&]:data-[state=active]:border-fg [[data-variant=underline]_&]:data-[state=active]:text-fg hover:text-fg",32      className,33    )}34    {...props}35  />36));37TabsTrigger.displayName = "TabsTrigger";3839export const TabsContent = React.forwardRef<React.ElementRef<typeof TabsPrimitive.Content>, React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>>(({ className, ...props }, ref) => (40  <TabsPrimitive.Content ref={ref} className={cn("mt-4 focus-visible:outline-none", className)} {...props} />41));42TabsContent.displayName = "TabsContent";43