import clsx from 'clsx'; import { ReactNode } from 'react'; import { useId } from '@/react/hooks/useId'; import { Tabs } from '@@/primitives/Tabs/Tabs'; export interface SegmentItem { id: string; label: ReactNode; title?: string; disabled?: boolean; } export type SegmentedControlVariant = 'contained' | 'pill'; export type SegmentedControlSize = 'sm' | 'md'; interface Props { items: SegmentItem[]; activeId?: string; onChange?: (id: string) => void; size?: SegmentedControlSize; variant?: SegmentedControlVariant; className?: string; label: string; } export function SegmentedControl({ items, activeId, onChange, size = 'md', variant = 'contained', className, label, }: Props) { const groupName = useId(); return (
{label} {items.map((item) => ( ))}
); } interface ItemProps { item: SegmentItem; isActive: boolean; groupName: string; onChange?: (id: string) => void; } function SegmentedControlItem({ item, isActive, groupName, onChange, }: ItemProps) { return ( ); }