import { cn } from "@/libs/cn"; import type { PolymorphicProps } from "@kobalte/core/polymorphic"; import type { TabsContentProps, TabsIndicatorProps, TabsListProps, TabsRootProps, TabsTriggerProps, } from "@kobalte/core/tabs"; import { Tabs as TabsPrimitive } from "@kobalte/core/tabs"; import type { VariantProps } from "class-variance-authority"; import { cva } from "class-variance-authority"; import type { ValidComponent, VoidProps } from "solid-js"; import { splitProps } from "solid-js"; type tabsProps = TabsRootProps & { class?: string; }; export const Tabs = ( props: PolymorphicProps>, ) => { const [local, rest] = splitProps(props as tabsProps, ["class"]); return ( ); }; type tabsListProps = TabsListProps & { class?: string; }; export const TabsList = ( props: PolymorphicProps>, ) => { const [local, rest] = splitProps(props as tabsListProps, ["class"]); return ( ); }; type tabsContentProps = TabsContentProps & { class?: string; }; export const TabsContent = ( props: PolymorphicProps>, ) => { const [local, rest] = splitProps(props as tabsContentProps, ["class"]); return ( ); }; type tabsTriggerProps = TabsTriggerProps & { class?: string; }; export const TabsTrigger = ( props: PolymorphicProps>, ) => { const [local, rest] = splitProps(props as tabsTriggerProps, ["class"]); return ( ); }; const tabsIndicatorVariants = cva( "absolute transition-all duration-200 outline-none", { variants: { variant: { block: "data-[orientation=horizontal]:bottom-1 data-[orientation=horizontal]:left-0 data-[orientation=vertical]:right-1 data-[orientation=vertical]:top-0 data-[orientation=horizontal]:h-[calc(100%-0.5rem)] data-[orientation=vertical]:w-[calc(100%-0.5rem)] bg-background shadow rounded-md peer-focus-visible:ring-[1.5px] peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-background peer-focus-visible:outline-none", underline: "data-[orientation=horizontal]:-bottom-[1px] data-[orientation=horizontal]:left-0 data-[orientation=vertical]:-right-[1px] data-[orientation=vertical]:top-0 data-[orientation=horizontal]:h-[2px] data-[orientation=vertical]:w-[2px] bg-primary", }, }, defaultVariants: { variant: "block", }, }, ); type tabsIndicatorProps = VoidProps< TabsIndicatorProps & VariantProps & { class?: string; } >; export const TabsIndicator = ( props: PolymorphicProps>, ) => { const [local, rest] = splitProps(props as tabsIndicatorProps, [ "class", "variant", ]); return ( ); };