1 | import PropTypes from 'prop-types';
|
2 | import React, { ComponentType, HTMLProps, MouseEvent, MouseEventHandler } from 'react';
|
3 | import { preventInputBlur } from '../utils';
|
4 | import { Option } from '../types';
|
5 | export interface UseItemProps<T> extends HTMLProps<T> {
|
6 | onClick?: MouseEventHandler<T>;
|
7 | option: Option;
|
8 | position: number;
|
9 | }
|
10 | export declare function useItem<T extends HTMLElement>({ label, onClick, option, position, ...props }: UseItemProps<T>): {
|
11 | active: boolean;
|
12 | 'aria-label': string | undefined;
|
13 | 'aria-selected': boolean;
|
14 | id: string;
|
15 | onClick: (e: MouseEvent<T>) => void;
|
16 | onMouseDown: typeof preventInputBlur;
|
17 | ref: React.RefObject<T>;
|
18 | role: string;
|
19 | accept?: string | undefined;
|
20 | acceptCharset?: string | undefined;
|
21 | action?: string | undefined;
|
22 | allowFullScreen?: boolean | undefined;
|
23 | allowTransparency?: boolean | undefined;
|
24 | alt?: string | undefined;
|
25 | as?: string | undefined;
|
26 | async?: boolean | undefined;
|
27 | autoComplete?: string | undefined;
|
28 | autoPlay?: boolean | undefined;
|
29 | capture?: boolean | "user" | "environment" | undefined;
|
30 | cellPadding?: string | number | undefined;
|
31 | cellSpacing?: string | number | undefined;
|
32 | charSet?: string | undefined;
|
33 | challenge?: string | undefined;
|
34 | checked?: boolean | undefined;
|
35 | cite?: string | undefined;
|
36 | classID?: string | undefined;
|
37 | cols?: number | undefined;
|
38 | colSpan?: number | undefined;
|
39 | controls?: boolean | undefined;
|
40 | coords?: string | undefined;
|
41 | crossOrigin?: "" | "anonymous" | "use-credentials" | undefined;
|
42 | data?: string | undefined;
|
43 | dateTime?: string | undefined;
|
44 | default?: boolean | undefined;
|
45 | defer?: boolean | undefined;
|
46 | disabled?: boolean | undefined;
|
47 | download?: any;
|
48 | encType?: string | undefined;
|
49 | form?: string | undefined;
|
50 | formAction?: string | undefined;
|
51 | formEncType?: string | undefined;
|
52 | formMethod?: string | undefined;
|
53 | formNoValidate?: boolean | undefined;
|
54 | formTarget?: string | undefined;
|
55 | frameBorder?: string | number | undefined;
|
56 | headers?: string | undefined;
|
57 | height?: string | number | undefined;
|
58 | high?: number | undefined;
|
59 | href?: string | undefined;
|
60 | hrefLang?: string | undefined;
|
61 | htmlFor?: string | undefined;
|
62 | httpEquiv?: string | undefined;
|
63 | integrity?: string | undefined;
|
64 | keyParams?: string | undefined;
|
65 | keyType?: string | undefined;
|
66 | kind?: string | undefined;
|
67 | list?: string | undefined;
|
68 | loop?: boolean | undefined;
|
69 | low?: number | undefined;
|
70 | manifest?: string | undefined;
|
71 | marginHeight?: number | undefined;
|
72 | marginWidth?: number | undefined;
|
73 | max?: string | number | undefined;
|
74 | maxLength?: number | undefined;
|
75 | media?: string | undefined;
|
76 | mediaGroup?: string | undefined;
|
77 | method?: string | undefined;
|
78 | min?: string | number | undefined;
|
79 | minLength?: number | undefined;
|
80 | multiple?: boolean | undefined;
|
81 | muted?: boolean | undefined;
|
82 | name?: string | undefined;
|
83 | noValidate?: boolean | undefined;
|
84 | open?: boolean | undefined;
|
85 | optimum?: number | undefined;
|
86 | pattern?: string | undefined;
|
87 | placeholder?: string | undefined;
|
88 | playsInline?: boolean | undefined;
|
89 | poster?: string | undefined;
|
90 | preload?: string | undefined;
|
91 | readOnly?: boolean | undefined;
|
92 | required?: boolean | undefined;
|
93 | reversed?: boolean | undefined;
|
94 | rows?: number | undefined;
|
95 | rowSpan?: number | undefined;
|
96 | sandbox?: string | undefined;
|
97 | scope?: string | undefined;
|
98 | scoped?: boolean | undefined;
|
99 | scrolling?: string | undefined;
|
100 | seamless?: boolean | undefined;
|
101 | selected?: boolean | undefined;
|
102 | shape?: string | undefined;
|
103 | size?: number | undefined;
|
104 | sizes?: string | undefined;
|
105 | span?: number | undefined;
|
106 | src?: string | undefined;
|
107 | srcDoc?: string | undefined;
|
108 | srcLang?: string | undefined;
|
109 | srcSet?: string | undefined;
|
110 | start?: number | undefined;
|
111 | step?: string | number | undefined;
|
112 | summary?: string | undefined;
|
113 | target?: string | undefined;
|
114 | type?: string | undefined;
|
115 | useMap?: string | undefined;
|
116 | value?: string | number | readonly string[] | undefined;
|
117 | width?: string | number | undefined;
|
118 | wmode?: string | undefined;
|
119 | wrap?: string | undefined;
|
120 | defaultChecked?: boolean | undefined;
|
121 | defaultValue?: string | number | readonly string[] | undefined;
|
122 | suppressContentEditableWarning?: boolean | undefined;
|
123 | suppressHydrationWarning?: boolean | undefined;
|
124 | accessKey?: string | undefined;
|
125 | autoFocus?: boolean | undefined;
|
126 | className?: string | undefined;
|
127 | contentEditable?: (boolean | "true" | "false") | "inherit" | undefined;
|
128 | contextMenu?: string | undefined;
|
129 | dir?: string | undefined;
|
130 | draggable?: (boolean | "true" | "false") | undefined;
|
131 | hidden?: boolean | undefined;
|
132 | lang?: string | undefined;
|
133 | nonce?: string | undefined;
|
134 | slot?: string | undefined;
|
135 | spellCheck?: (boolean | "true" | "false") | undefined;
|
136 | style?: React.CSSProperties | undefined;
|
137 | tabIndex?: number | undefined;
|
138 | title?: string | undefined;
|
139 | translate?: "yes" | "no" | undefined;
|
140 | radioGroup?: string | undefined;
|
141 | about?: string | undefined;
|
142 | content?: string | undefined;
|
143 | datatype?: string | undefined;
|
144 | inlist?: any;
|
145 | prefix?: string | undefined;
|
146 | property?: string | undefined;
|
147 | rel?: string | undefined;
|
148 | resource?: string | undefined;
|
149 | rev?: string | undefined;
|
150 | typeof?: string | undefined;
|
151 | vocab?: string | undefined;
|
152 | autoCapitalize?: string | undefined;
|
153 | autoCorrect?: string | undefined;
|
154 | autoSave?: string | undefined;
|
155 | color?: string | undefined;
|
156 | itemProp?: string | undefined;
|
157 | itemScope?: boolean | undefined;
|
158 | itemType?: string | undefined;
|
159 | itemID?: string | undefined;
|
160 | itemRef?: string | undefined;
|
161 | results?: number | undefined;
|
162 | security?: string | undefined;
|
163 | unselectable?: "off" | "on" | undefined;
|
164 | inputMode?: "text" | "none" | "search" | "email" | "tel" | "url" | "numeric" | "decimal" | undefined;
|
165 | is?: string | undefined;
|
166 | "aria-activedescendant"?: string | undefined;
|
167 | "aria-atomic"?: (boolean | "true" | "false") | undefined;
|
168 | "aria-autocomplete"?: "list" | "none" | "both" | "inline" | undefined;
|
169 | "aria-busy"?: (boolean | "true" | "false") | undefined;
|
170 | "aria-checked"?: boolean | "true" | "false" | "mixed" | undefined;
|
171 | "aria-colcount"?: number | undefined;
|
172 | "aria-colindex"?: number | undefined;
|
173 | "aria-colspan"?: number | undefined;
|
174 | "aria-controls"?: string | undefined;
|
175 | "aria-current"?: boolean | "step" | "time" | "date" | "true" | "false" | "page" | "location" | undefined;
|
176 | "aria-describedby"?: string | undefined;
|
177 | "aria-details"?: string | undefined;
|
178 | "aria-disabled"?: (boolean | "true" | "false") | undefined;
|
179 | "aria-dropeffect"?: "none" | "link" | "copy" | "execute" | "move" | "popup" | undefined;
|
180 | "aria-errormessage"?: string | undefined;
|
181 | "aria-expanded"?: (boolean | "true" | "false") | undefined;
|
182 | "aria-flowto"?: string | undefined;
|
183 | "aria-grabbed"?: (boolean | "true" | "false") | undefined;
|
184 | "aria-haspopup"?: boolean | "listbox" | "dialog" | "menu" | "true" | "false" | "grid" | "tree" | undefined;
|
185 | "aria-hidden"?: (boolean | "true" | "false") | undefined;
|
186 | "aria-invalid"?: boolean | "true" | "false" | "grammar" | "spelling" | undefined;
|
187 | "aria-keyshortcuts"?: string | undefined;
|
188 | "aria-labelledby"?: string | undefined;
|
189 | "aria-level"?: number | undefined;
|
190 | "aria-live"?: "off" | "assertive" | "polite" | undefined;
|
191 | "aria-modal"?: (boolean | "true" | "false") | undefined;
|
192 | "aria-multiline"?: (boolean | "true" | "false") | undefined;
|
193 | "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
|
194 | "aria-orientation"?: "horizontal" | "vertical" | undefined;
|
195 | "aria-owns"?: string | undefined;
|
196 | "aria-placeholder"?: string | undefined;
|
197 | "aria-posinset"?: number | undefined;
|
198 | "aria-pressed"?: boolean | "true" | "false" | "mixed" | undefined;
|
199 | "aria-readonly"?: (boolean | "true" | "false") | undefined;
|
200 | "aria-relevant"?: "text" | "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals" | undefined;
|
201 | "aria-required"?: (boolean | "true" | "false") | undefined;
|
202 | "aria-roledescription"?: string | undefined;
|
203 | "aria-rowcount"?: number | undefined;
|
204 | "aria-rowindex"?: number | undefined;
|
205 | "aria-rowspan"?: number | undefined;
|
206 | "aria-setsize"?: number | undefined;
|
207 | "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
|
208 | "aria-valuemax"?: number | undefined;
|
209 | "aria-valuemin"?: number | undefined;
|
210 | "aria-valuenow"?: number | undefined;
|
211 | "aria-valuetext"?: string | undefined;
|
212 | children?: React.ReactNode;
|
213 | dangerouslySetInnerHTML?: {
|
214 | __html: string | TrustedHTML;
|
215 | } | undefined;
|
216 | onCopy?: React.ClipboardEventHandler<T> | undefined;
|
217 | onCopyCapture?: React.ClipboardEventHandler<T> | undefined;
|
218 | onCut?: React.ClipboardEventHandler<T> | undefined;
|
219 | onCutCapture?: React.ClipboardEventHandler<T> | undefined;
|
220 | onPaste?: React.ClipboardEventHandler<T> | undefined;
|
221 | onPasteCapture?: React.ClipboardEventHandler<T> | undefined;
|
222 | onCompositionEnd?: React.CompositionEventHandler<T> | undefined;
|
223 | onCompositionEndCapture?: React.CompositionEventHandler<T> | undefined;
|
224 | onCompositionStart?: React.CompositionEventHandler<T> | undefined;
|
225 | onCompositionStartCapture?: React.CompositionEventHandler<T> | undefined;
|
226 | onCompositionUpdate?: React.CompositionEventHandler<T> | undefined;
|
227 | onCompositionUpdateCapture?: React.CompositionEventHandler<T> | undefined;
|
228 | onFocus?: React.FocusEventHandler<T> | undefined;
|
229 | onFocusCapture?: React.FocusEventHandler<T> | undefined;
|
230 | onBlur?: React.FocusEventHandler<T> | undefined;
|
231 | onBlurCapture?: React.FocusEventHandler<T> | undefined;
|
232 | onChange?: React.FormEventHandler<T> | undefined;
|
233 | onChangeCapture?: React.FormEventHandler<T> | undefined;
|
234 | onBeforeInput?: React.FormEventHandler<T> | undefined;
|
235 | onBeforeInputCapture?: React.FormEventHandler<T> | undefined;
|
236 | onInput?: React.FormEventHandler<T> | undefined;
|
237 | onInputCapture?: React.FormEventHandler<T> | undefined;
|
238 | onReset?: React.FormEventHandler<T> | undefined;
|
239 | onResetCapture?: React.FormEventHandler<T> | undefined;
|
240 | onSubmit?: React.FormEventHandler<T> | undefined;
|
241 | onSubmitCapture?: React.FormEventHandler<T> | undefined;
|
242 | onInvalid?: React.FormEventHandler<T> | undefined;
|
243 | onInvalidCapture?: React.FormEventHandler<T> | undefined;
|
244 | onLoad?: React.ReactEventHandler<T> | undefined;
|
245 | onLoadCapture?: React.ReactEventHandler<T> | undefined;
|
246 | onError?: React.ReactEventHandler<T> | undefined;
|
247 | onErrorCapture?: React.ReactEventHandler<T> | undefined;
|
248 | onKeyDown?: React.KeyboardEventHandler<T> | undefined;
|
249 | onKeyDownCapture?: React.KeyboardEventHandler<T> | undefined;
|
250 | onKeyPress?: React.KeyboardEventHandler<T> | undefined;
|
251 | onKeyPressCapture?: React.KeyboardEventHandler<T> | undefined;
|
252 | onKeyUp?: React.KeyboardEventHandler<T> | undefined;
|
253 | onKeyUpCapture?: React.KeyboardEventHandler<T> | undefined;
|
254 | onAbort?: React.ReactEventHandler<T> | undefined;
|
255 | onAbortCapture?: React.ReactEventHandler<T> | undefined;
|
256 | onCanPlay?: React.ReactEventHandler<T> | undefined;
|
257 | onCanPlayCapture?: React.ReactEventHandler<T> | undefined;
|
258 | onCanPlayThrough?: React.ReactEventHandler<T> | undefined;
|
259 | onCanPlayThroughCapture?: React.ReactEventHandler<T> | undefined;
|
260 | onDurationChange?: React.ReactEventHandler<T> | undefined;
|
261 | onDurationChangeCapture?: React.ReactEventHandler<T> | undefined;
|
262 | onEmptied?: React.ReactEventHandler<T> | undefined;
|
263 | onEmptiedCapture?: React.ReactEventHandler<T> | undefined;
|
264 | onEncrypted?: React.ReactEventHandler<T> | undefined;
|
265 | onEncryptedCapture?: React.ReactEventHandler<T> | undefined;
|
266 | onEnded?: React.ReactEventHandler<T> | undefined;
|
267 | onEndedCapture?: React.ReactEventHandler<T> | undefined;
|
268 | onLoadedData?: React.ReactEventHandler<T> | undefined;
|
269 | onLoadedDataCapture?: React.ReactEventHandler<T> | undefined;
|
270 | onLoadedMetadata?: React.ReactEventHandler<T> | undefined;
|
271 | onLoadedMetadataCapture?: React.ReactEventHandler<T> | undefined;
|
272 | onLoadStart?: React.ReactEventHandler<T> | undefined;
|
273 | onLoadStartCapture?: React.ReactEventHandler<T> | undefined;
|
274 | onPause?: React.ReactEventHandler<T> | undefined;
|
275 | onPauseCapture?: React.ReactEventHandler<T> | undefined;
|
276 | onPlay?: React.ReactEventHandler<T> | undefined;
|
277 | onPlayCapture?: React.ReactEventHandler<T> | undefined;
|
278 | onPlaying?: React.ReactEventHandler<T> | undefined;
|
279 | onPlayingCapture?: React.ReactEventHandler<T> | undefined;
|
280 | onProgress?: React.ReactEventHandler<T> | undefined;
|
281 | onProgressCapture?: React.ReactEventHandler<T> | undefined;
|
282 | onRateChange?: React.ReactEventHandler<T> | undefined;
|
283 | onRateChangeCapture?: React.ReactEventHandler<T> | undefined;
|
284 | onSeeked?: React.ReactEventHandler<T> | undefined;
|
285 | onSeekedCapture?: React.ReactEventHandler<T> | undefined;
|
286 | onSeeking?: React.ReactEventHandler<T> | undefined;
|
287 | onSeekingCapture?: React.ReactEventHandler<T> | undefined;
|
288 | onStalled?: React.ReactEventHandler<T> | undefined;
|
289 | onStalledCapture?: React.ReactEventHandler<T> | undefined;
|
290 | onSuspend?: React.ReactEventHandler<T> | undefined;
|
291 | onSuspendCapture?: React.ReactEventHandler<T> | undefined;
|
292 | onTimeUpdate?: React.ReactEventHandler<T> | undefined;
|
293 | onTimeUpdateCapture?: React.ReactEventHandler<T> | undefined;
|
294 | onVolumeChange?: React.ReactEventHandler<T> | undefined;
|
295 | onVolumeChangeCapture?: React.ReactEventHandler<T> | undefined;
|
296 | onWaiting?: React.ReactEventHandler<T> | undefined;
|
297 | onWaitingCapture?: React.ReactEventHandler<T> | undefined;
|
298 | onAuxClick?: React.MouseEventHandler<T> | undefined;
|
299 | onAuxClickCapture?: React.MouseEventHandler<T> | undefined;
|
300 | onClickCapture?: React.MouseEventHandler<T> | undefined;
|
301 | onContextMenu?: React.MouseEventHandler<T> | undefined;
|
302 | onContextMenuCapture?: React.MouseEventHandler<T> | undefined;
|
303 | onDoubleClick?: React.MouseEventHandler<T> | undefined;
|
304 | onDoubleClickCapture?: React.MouseEventHandler<T> | undefined;
|
305 | onDrag?: React.DragEventHandler<T> | undefined;
|
306 | onDragCapture?: React.DragEventHandler<T> | undefined;
|
307 | onDragEnd?: React.DragEventHandler<T> | undefined;
|
308 | onDragEndCapture?: React.DragEventHandler<T> | undefined;
|
309 | onDragEnter?: React.DragEventHandler<T> | undefined;
|
310 | onDragEnterCapture?: React.DragEventHandler<T> | undefined;
|
311 | onDragExit?: React.DragEventHandler<T> | undefined;
|
312 | onDragExitCapture?: React.DragEventHandler<T> | undefined;
|
313 | onDragLeave?: React.DragEventHandler<T> | undefined;
|
314 | onDragLeaveCapture?: React.DragEventHandler<T> | undefined;
|
315 | onDragOver?: React.DragEventHandler<T> | undefined;
|
316 | onDragOverCapture?: React.DragEventHandler<T> | undefined;
|
317 | onDragStart?: React.DragEventHandler<T> | undefined;
|
318 | onDragStartCapture?: React.DragEventHandler<T> | undefined;
|
319 | onDrop?: React.DragEventHandler<T> | undefined;
|
320 | onDropCapture?: React.DragEventHandler<T> | undefined;
|
321 | onMouseDownCapture?: React.MouseEventHandler<T> | undefined;
|
322 | onMouseEnter?: React.MouseEventHandler<T> | undefined;
|
323 | onMouseLeave?: React.MouseEventHandler<T> | undefined;
|
324 | onMouseMove?: React.MouseEventHandler<T> | undefined;
|
325 | onMouseMoveCapture?: React.MouseEventHandler<T> | undefined;
|
326 | onMouseOut?: React.MouseEventHandler<T> | undefined;
|
327 | onMouseOutCapture?: React.MouseEventHandler<T> | undefined;
|
328 | onMouseOver?: React.MouseEventHandler<T> | undefined;
|
329 | onMouseOverCapture?: React.MouseEventHandler<T> | undefined;
|
330 | onMouseUp?: React.MouseEventHandler<T> | undefined;
|
331 | onMouseUpCapture?: React.MouseEventHandler<T> | undefined;
|
332 | onSelect?: React.ReactEventHandler<T> | undefined;
|
333 | onSelectCapture?: React.ReactEventHandler<T> | undefined;
|
334 | onTouchCancel?: React.TouchEventHandler<T> | undefined;
|
335 | onTouchCancelCapture?: React.TouchEventHandler<T> | undefined;
|
336 | onTouchEnd?: React.TouchEventHandler<T> | undefined;
|
337 | onTouchEndCapture?: React.TouchEventHandler<T> | undefined;
|
338 | onTouchMove?: React.TouchEventHandler<T> | undefined;
|
339 | onTouchMoveCapture?: React.TouchEventHandler<T> | undefined;
|
340 | onTouchStart?: React.TouchEventHandler<T> | undefined;
|
341 | onTouchStartCapture?: React.TouchEventHandler<T> | undefined;
|
342 | onPointerDown?: React.PointerEventHandler<T> | undefined;
|
343 | onPointerDownCapture?: React.PointerEventHandler<T> | undefined;
|
344 | onPointerMove?: React.PointerEventHandler<T> | undefined;
|
345 | onPointerMoveCapture?: React.PointerEventHandler<T> | undefined;
|
346 | onPointerUp?: React.PointerEventHandler<T> | undefined;
|
347 | onPointerUpCapture?: React.PointerEventHandler<T> | undefined;
|
348 | onPointerCancel?: React.PointerEventHandler<T> | undefined;
|
349 | onPointerCancelCapture?: React.PointerEventHandler<T> | undefined;
|
350 | onPointerEnter?: React.PointerEventHandler<T> | undefined;
|
351 | onPointerEnterCapture?: React.PointerEventHandler<T> | undefined;
|
352 | onPointerLeave?: React.PointerEventHandler<T> | undefined;
|
353 | onPointerLeaveCapture?: React.PointerEventHandler<T> | undefined;
|
354 | onPointerOver?: React.PointerEventHandler<T> | undefined;
|
355 | onPointerOverCapture?: React.PointerEventHandler<T> | undefined;
|
356 | onPointerOut?: React.PointerEventHandler<T> | undefined;
|
357 | onPointerOutCapture?: React.PointerEventHandler<T> | undefined;
|
358 | onGotPointerCapture?: React.PointerEventHandler<T> | undefined;
|
359 | onGotPointerCaptureCapture?: React.PointerEventHandler<T> | undefined;
|
360 | onLostPointerCapture?: React.PointerEventHandler<T> | undefined;
|
361 | onLostPointerCaptureCapture?: React.PointerEventHandler<T> | undefined;
|
362 | onScroll?: React.UIEventHandler<T> | undefined;
|
363 | onScrollCapture?: React.UIEventHandler<T> | undefined;
|
364 | onWheel?: React.WheelEventHandler<T> | undefined;
|
365 | onWheelCapture?: React.WheelEventHandler<T> | undefined;
|
366 | onAnimationStart?: React.AnimationEventHandler<T> | undefined;
|
367 | onAnimationStartCapture?: React.AnimationEventHandler<T> | undefined;
|
368 | onAnimationEnd?: React.AnimationEventHandler<T> | undefined;
|
369 | onAnimationEndCapture?: React.AnimationEventHandler<T> | undefined;
|
370 | onAnimationIteration?: React.AnimationEventHandler<T> | undefined;
|
371 | onAnimationIterationCapture?: React.AnimationEventHandler<T> | undefined;
|
372 | onTransitionEnd?: React.TransitionEventHandler<T> | undefined;
|
373 | onTransitionEndCapture?: React.TransitionEventHandler<T> | undefined;
|
374 | key?: React.Key | null | undefined;
|
375 | };
|
376 | export declare function withItem<T extends UseItemProps<HTMLElement>>(Component: ComponentType<T>): {
|
377 | (props: T): React.JSX.Element;
|
378 | displayName: string;
|
379 | propTypes: {
|
380 | option: PropTypes.Validator<NonNullable<NonNullable<string | object | null | undefined>>>;
|
381 | position: PropTypes.Requireable<number>;
|
382 | };
|
383 | };
|