import React from 'react'; import { EnhancerOverrides, CommonInputProps } from '../form/types'; import { LogicalProps } from '../utils/logical-properties'; import { MQ } from '../utils/style'; import { Override } from '../utils/overrides'; import { ModalProps } from '../modal'; import { EventData } from '../instrumentation'; import { NewsKitIconProps } from '../icons'; import { Side } from '@floating-ui/react-dom-interactions/'; export type ButtonSelectSize = 'small' | 'medium' | 'large'; export type SelectButtonIcon = NewsKitIconProps & { isOpen: boolean; }; export interface SelectButtonOverrides extends EnhancerOverrides { width?: MQ; height?: MQ; minWidth?: MQ; minHeight?: MQ; maxWidth?: MQ; stylePreset?: MQ; /** * @deprecated This property is deprecated and will be removed in the next major release. Use `marginBlock` instead. */ spaceStack?: MQ; spaceInline?: MQ; typographyPreset?: MQ; loadingIndicator?: { stylePreset?: MQ; }; indicatorIcon?: Override; } export interface SelectPanelOverrides extends LogicalProps { maxHeight?: MQ; stylePreset?: MQ; /** * @deprecated This property is deprecated and will be removed in the next major release. Use `marginBlock` instead. */ spaceStack?: MQ; zIndex?: 'layer' | string; } export type SelectPropsOverrides = { button?: SelectButtonOverrides; panel?: SelectPanelOverrides; modal?: Override; }; export interface SelectProps extends CommonInputProps, EventData { loading?: boolean; children: Array>; validationIcon?: React.ReactNode; useModal?: MQ; overrides?: SelectPropsOverrides; virtualized?: number; onOpenChange?: (value: boolean) => void; controlled?: boolean; labelId?: string; panelPosition?: Side; } export interface SelectOptionProps { value: string; children: React.ReactNode; selected?: boolean; defaultSelected?: boolean; selectedIcon?: React.ReactNode; selectedDisplay?: React.ReactNode; overrides?: { minHeight?: MQ; stylePreset?: MQ; typographyPreset?: MQ; spaceInline?: MQ; } & LogicalProps; } //# sourceMappingURL=types.d.ts.map