import { Tabs as Kobalte } from "@kobalte/core/tabs" import { Show, splitProps, type JSX } from "solid-js" import type { ComponentProps, ParentProps } from "solid-js" export interface TabsProps extends ComponentProps {} export interface TabsListProps extends ComponentProps {} export interface TabsTriggerProps extends ComponentProps { hideCloseButton?: boolean closeButton?: JSX.Element } export interface TabsContentProps extends ComponentProps {} function TabsRoot(props: TabsProps) { const [split, rest] = splitProps(props, ["class", "classList"]) return ( ) } function TabsList(props: TabsListProps) { const [split, rest] = splitProps(props, ["class", "classList"]) return ( ) } function TabsTrigger(props: ParentProps) { const [split, rest] = splitProps(props, ["class", "classList", "children", "closeButton", "hideCloseButton"]) return (
{split.children} {(closeButton) => (
{closeButton()}
)}
) } function TabsContent(props: ParentProps) { const [split, rest] = splitProps(props, ["class", "classList", "children"]) return ( {split.children} ) } export const Tabs = Object.assign(TabsRoot, { List: TabsList, Trigger: TabsTrigger, Content: TabsContent, })