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