UNPKG

19.1 kBTypeScriptView Raw
1import PropTypes from 'prop-types';
2import React, { ComponentType, HTMLProps, MouseEvent, MouseEventHandler } from 'react';
3import { preventInputBlur } from '../utils';
4import { Option } from '../types';
5export interface UseItemProps<T> extends HTMLProps<T> {
6 onClick?: MouseEventHandler<T>;
7 option: Option;
8 position: number;
9}
10export 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};
375export 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};