import type { ReactNode } from "react" import { useRouterLink } from "../RouterLink/RouterLinkProvider.tsx" import { getIsRoutedHref } from "../RouterLink/routerLink.ts" import { toClassName } from "../toClassName.ts" import { VisuallyHidden } from "../VisuallyHidden/VisuallyHidden.tsx" import type { TabLinkItem, TabsOrientation, } from "./tabItems.ts" import { toTabTriggerClass } from "./tabStyles.ts" export type TabLinkProps = { isCurrent: boolean item: TabLinkItem orientation: TabsOrientation } /** * One routed tab — and it is a real ``, through the same * `RouterLinkProvider` seam `NavLink` uses. * * ### It carries no `role="tab"`, and that is the whole point * * `role="tab"` on an anchor **overrides** the link role. A screen * reader then announces "tab", the reader expects a panel to appear * beside it, and instead the address changes and the page under it * is replaced. The APG tab pattern describes a disclosure inside one * document; it does not describe navigation, and `aria-controls` * has nothing to point at here because the section's content comes * from the router — an `` the app renders somewhere this * component cannot see. * * So a routed bar is what it actually is: a list of links inside a * named `