'use client'; import { VscChevronDown } from '@react-icons/all-files/vsc/VscChevronDown'; import { VscVersions } from '@react-icons/all-files/vsc/VscVersions'; import { Menu, MenuButton, MenuItem, useMenuState } from 'ariakit/menu'; import type { PropsWithChildren, ReactNode } from 'react'; import { useMemo, useState } from 'react'; export interface OverloadSwitcherProps { overloads: ReactNode[]; } export default function OverloadSwitcher({ overloads, children }: PropsWithChildren<{ overloads: ReactNode[] }>) { const [overloadIndex, setOverloadIndex] = useState(1); const overloadedNode = overloads[overloadIndex - 1]!; const menu = useMenuState({ gutter: 8, sameWidth: true, fitViewport: true }); const menuItems = useMemo( () => overloads.map((_, idx) => ( )), [overloads], ); return (