import { cva } from 'class-variance-authority'; import * as React from 'react'; import { cn, ComponentAnatomy, defineStyleAnatomy } from '../core/styling'; import Link from 'next/link'; /* ------------------------------------------------------------------------------------------------- * Anatomy * -----------------------------------------------------------------------------------------------*/ export const StaticTabsAnatomy = defineStyleAnatomy({ root: cva([ 'UI-StaticTabs__root', 'flex w-full overflow-hidden overflow-x-auto', ]), trigger: cva([ 'UI-StaticTabs__trigger', 'group/staticTabs__trigger inline-flex flex-none shrink-0 basis-auto items-center font-medium text-sm transition outline-none min-w-0 justify-center', 'text-[--muted] hover:text-[--foreground]', 'h-10 px-4 rounded-full', 'data-[current=true]:bg-[--subtle] data-[current=true]:font-semibold data-[current=true]:text-[--foreground]', 'focus-visible:bg-[--subtle]', ]), icon: cva(['UI-StaticTabs__icon', '-ml-0.5 mr-2 h-4 w-4']), }); /* ------------------------------------------------------------------------------------------------- * StaticTabs * -----------------------------------------------------------------------------------------------*/ export type StaticTabsItem = { name: string; href?: string | null | undefined; iconType?: React.ElementType; onClick?: () => void; isCurrent: boolean; }; export type StaticTabsProps = React.ComponentPropsWithRef<'nav'> & ComponentAnatomy & { items: StaticTabsItem[]; }; export const StaticTabs = React.forwardRef( (props, ref) => { const { children, className, triggerClass, iconClass, items, ...rest } = props; return ( ); } ); StaticTabs.displayName = 'StaticTabs';