UNPKG

@wordpress/components

Version:
129 lines 3.47 kB
/** * External dependencies */ import type { FocusEventHandler, MouseEventHandler } from 'react'; /** * The object structure for the options array. */ export type CustomSelectOption = { key: string; name: string; style?: React.CSSProperties; className?: string; hint?: string; /** * Use the `hint` property instead * @deprecated * @ignore */ __experimentalHint?: string; [key: string]: any; }; /** * The object returned from the onChange event. */ type CustomSelectChangeObject<T extends CustomSelectOption> = { highlightedIndex?: number; inputValue?: string; isOpen?: boolean; type?: string; selectedItem: T; }; export type CustomSelectProps<T extends CustomSelectOption> = { /** * Optional classname for the component. */ className?: string; /** * Hide the label visually, while keeping available to assistive technology. */ hideLabelFromVision?: boolean; /** * Description for the select trigger button used by assistive technology. * If no value is passed, the text "Currently selected: selectedItem.name" * will be used fully translated. */ describedBy?: string; /** * Label for the control. */ label: string; /** * Function called with the control's internal state changes. The `selectedItem` * property contains the next selected item. */ onChange?: (newValue: CustomSelectChangeObject<NoInfer<T>>) => void; /** * A handler for `blur` events on the trigger button. * * @ignore */ onBlur?: FocusEventHandler<HTMLButtonElement>; /** * A handler for `focus` events on the trigger button. * * @ignore */ onFocus?: FocusEventHandler<HTMLButtonElement>; /** * A handler for `mouseout` events on the trigger button. * * @ignore */ onMouseOut?: MouseEventHandler<HTMLButtonElement>; /** * A handler for `mouseover` events on the trigger button. * * @ignore */ onMouseOver?: MouseEventHandler<HTMLButtonElement>; /** * The list of options that can be chosen from. */ options: ReadonlyArray<T>; /** * The size of the control. * * @default 'default' */ size?: 'default' | 'small' | '__unstable-large'; /** * Can be used to externally control the value of the control. */ value?: NoInfer<T>; /** * Use the `showSelectedHint` property instead. * @deprecated * @ignore */ __experimentalShowSelectedHint?: boolean; /** * Show the hint of the selected item in the trigger button. * * @default false */ showSelectedHint?: boolean; /** * Opt-in prop for an unconstrained width style which became the default in * WordPress 6.5. The prop is no longer needed and can be safely removed. * * @deprecated * @ignore */ __nextUnconstrainedWidth?: boolean; /** * Start opting into the larger default height that will become the default size in a future version. * * @default false */ __next40pxDefaultSize?: boolean; /** * Do not throw a warning for the deprecated 36px default size. * For internal components of other components that already throw the warning. * * @ignore */ __shouldNotWarnDeprecated36pxSize?: boolean; }; export {}; //# sourceMappingURL=types.d.ts.map