import type { Orientation } from "@kobalte/utils"; import { type Accessor, type Setter, createContext, useContext, } from "solid-js"; import type { SingleSelectListState } from "../list"; import type { TabsActivationMode } from "./types"; export interface TabsContextValue { isDisabled: Accessor; orientation: Accessor; activationMode: Accessor; triggerIdsMap: Accessor>; contentIdsMap: Accessor>; listState: Accessor; selectedTab: Accessor; setSelectedTab: Setter; generateTriggerId: (value: string) => string; generateContentId: (value: string) => string; } export const TabsContext = createContext(); export function useTabsContext() { const context = useContext(TabsContext); if (context === undefined) { throw new Error( "[kobalte]: `useTabsContext` must be used within a `Tabs` component", ); } return context; }