UNPKG

19.2 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 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};
376export 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};