import { cn } from '@/lib/utils'; import * as React from 'react'; export declare type SegmentedValue = string | number; export declare type SegmentedRawOption = SegmentedValue; export interface SegmentedLabeledOption { className?: string; disabled?: boolean; label: React.ReactNode; value: SegmentedRawOption; /** * html `title` property for label */ title?: string; } declare type SegmentedOptions = (SegmentedRawOption | SegmentedLabeledOption)[]; export interface SegmentedProps extends Omit, 'onChange'> { options: SegmentedOptions; defaultValue?: SegmentedValue; value?: SegmentedValue; onChange?: (value: SegmentedValue) => void; disabled?: boolean; prefixCls?: string; direction?: 'ltr' | 'rtl'; motionName?: string; } export function Segmented({ options, value, onChange, className, }: SegmentedProps) { return (
{options.map((option) => { const isObject = typeof option === 'object'; const actualValue = isObject ? option.value : option; return (
onChange?.(actualValue)} > {isObject ? option.label : option}
); })}
); }