index.d.ts 1.2 KB

12345678910111213141516171819202122232425262728293031
  1. import * as React from 'react';
  2. export type SegmentedValue = string | number;
  3. export type SegmentedRawOption = SegmentedValue;
  4. export interface SegmentedLabeledOption<ValueType = SegmentedRawOption> {
  5. className?: string;
  6. disabled?: boolean;
  7. label: React.ReactNode;
  8. value: ValueType;
  9. /**
  10. * html `title` property for label
  11. */
  12. title?: string;
  13. }
  14. type SegmentedOptions<T = SegmentedRawOption> = (T | SegmentedLabeledOption<T>)[];
  15. export interface SegmentedProps<ValueType = SegmentedValue> extends Omit<React.HTMLProps<HTMLDivElement>, 'defaultValue' | 'value' | 'onChange'> {
  16. options: SegmentedOptions<ValueType>;
  17. defaultValue?: ValueType;
  18. value?: ValueType;
  19. onChange?: (value: ValueType) => void;
  20. disabled?: boolean;
  21. prefixCls?: string;
  22. direction?: 'ltr' | 'rtl';
  23. motionName?: string;
  24. vertical?: boolean;
  25. name?: string;
  26. }
  27. declare const Segmented: React.ForwardRefExoticComponent<Omit<SegmentedProps<SegmentedValue>, "ref"> & React.RefAttributes<HTMLDivElement>>;
  28. declare const TypedSegmented: <ValueType>(props: SegmentedProps<ValueType> & {
  29. ref?: React.ForwardedRef<HTMLDivElement> | undefined;
  30. }) => ReturnType<typeof Segmented>;
  31. export default TypedSegmented;