"use client" import { motion } from "motion/react" import React, { ComponentPropsWithoutRef, ElementRef, forwardRef } from "react" import { tv, type VariantProps } from "tailwind-variants" import { classNames } from "../../utils/classNames" import { Item, ItemProps } from "../Item" import { NamespacedLayoutGroup } from "../NamespacedLayoutGroup" import { Text, TextBodyProps } from "../Text" export type TabMenuProps = ComponentPropsWithoutRef<"nav"> const TabMenuBase = forwardRef, TabMenuProps>( function TabMenu({ children, className, ...rest }, ref) { return ( ) }, ) const tabMenuItemVariants = tv({ base: "relative w-fit whitespace-nowrap pb-2 font-normal text-text-secondary hover:text-text-primary focus-visible:text-text-primary focus-visible:outline-hidden", variants: { size: { sm: "pt-1", md: "pt-1.5", }, active: { true: "font-medium text-text-primary", }, }, }) export type TabMenuItemProps = ItemProps & VariantProps const TabMenuItemBase = forwardRef, TabMenuItemProps>( function TabMenuItem( { className, active, size = "md", children, ...rest }, ref, ) { return ( {children} {active && ( )} ) }, ) const TabMenuItemTitle = forwardRef< ElementRef, TextBodyProps >(function TabMenuItemTitle({ className, ...rest }, ref) { return ( ) }) export const TabMenuItem = Object.assign(TabMenuItemBase, { Title: TabMenuItemTitle, }) export const TabMenu = Object.assign(TabMenuBase, { Item: TabMenuItem, })