import { createContext } from '@lit/context'

export interface TabsContext {
  /**
   * Whether arrow navigation is enabled (computed from arrowNav && !disableArrowNav)
   */
  useArrowNav: boolean

  /**
   * Register a tab item with the parent tabs container
   */
  registerTab: (element: HTMLElement, index: number, disabled?: boolean) => void

  /**
   * Handle click event from a tab item
   */
  handleClick: (index: number) => void

  /**
   * Handle keyboard event from a tab item
   */
  handleKeyUp: (event: KeyboardEvent, index: number) => void
}

export const tabsContext = createContext<TabsContext>(Symbol('pkt-tabs-context'))
