"use client"; import * as React from "react"; import { cva, type VariantProps } from "class-variance-authority"; import { Tabs as TabsPrimitive } from "radix-ui"; import { cn } from "@/lib/utils"; function Tabs({ className, orientation = "horizontal", ...props }: React.ComponentProps) { return ( ); } // v1.4.16 Wave-C MED — horizontal tab strips overflow viewport on // mobile when more than ~3 tabs render at typical label widths // (`/insights`, `/admin`, `/settings/*`). Tab labels are i18n-driven // so we cannot truncate them deterministically. Instead, the list // becomes horizontally scrollable on mobile via `overflow-x-auto` // plus `touch-pan-x` for the iOS PWA, and the wrapping tabs preserve // `whitespace-nowrap` so labels never word-wrap mid-tab. Desktop // looks identical because the inline-flex shrink-wraps inside the // wider container. // // v1.4.19 A7 — `overflow-y-hidden` clamps the y-axis. Browsers couple // the two overflow axes once one is `auto`: setting only // `overflow-x: auto` silently flips `overflow-y` to `auto` as well. // Combined with the fixed `h-9` strip and badge children that ride // ~1 px taller than the strip on some glyph stacks, a tiny painted // vertical scrollbar appeared on the right edge of short strips // (e.g. the admin feedback `Open / Acknowledged / Resolved / // Archived` tabs the maintainer reported in v1.4.19). Locking the y-axis hides // that bar without affecting horizontal swipe behaviour. // Padding sits at `p-1` (4 px) so the 3 px focus-visible ring // (`focus-visible:ring-[3px]`) on triggers stays inside the // `overflow-y-hidden` clamp without clipping the bottom of the ring. const tabsListVariants = cva( "rounded-lg p-1 group-data-[orientation=horizontal]/tabs:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit max-w-full items-center justify-center overflow-x-auto overflow-y-hidden touch-pan-x scrollbar-thin group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col group-data-[orientation=vertical]/tabs:overflow-x-visible group-data-[orientation=vertical]/tabs:overflow-y-visible", { variants: { variant: { default: "bg-muted", line: "gap-1 bg-transparent", }, }, defaultVariants: { variant: "default", }, }, ); function TabsList({ className, variant = "default", ...props }: React.ComponentProps & VariantProps) { return ( ); } function TabsTrigger({ className, ...props }: React.ComponentProps) { return ( ); } function TabsContent({ className, ...props }: React.ComponentProps) { return ( ); } export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };