UNPKG

28.9 kBTypeScriptView Raw
1export interface IntrinsicElements {
2 a: JsxAElementProps;
3 abbr: JsxHtmlGlobalProps;
4 address: JsxHtmlGlobalProps;
5 area: JsxAreaElementProps;
6 article: JsxHtmlGlobalProps;
7 aside: JsxHtmlGlobalProps;
8 audio: JsxAudioElementProps;
9 b: JsxHtmlGlobalProps;
10 base: JsxBaseElementProps;
11 bdi: JsxHtmlGlobalProps;
12 bdo: JsxHtmlGlobalProps;
13 blockquote: JsxBlockquoteElementProps;
14 body: JsxHtmlGlobalProps;
15 br: JsxBrElementProps;
16 button: JsxButtonElementProps;
17 canvas: JsxCanvasElementProps;
18 caption: JsxHtmlGlobalProps;
19 cite: JsxHtmlGlobalProps;
20 code: JsxHtmlGlobalProps;
21 col: JsxColElementProps;
22 colgroup: JsxColgroupElementProps;
23 data: JsxDataElementProps;
24 datalist: JsxHtmlGlobalProps;
25 dd: JsxHtmlGlobalProps;
26 del: JsxDelElementProps;
27 details: JsxDetailsElementProps;
28 dfn: JsxHtmlGlobalProps;
29 dialog: JsxDialogElementProps;
30 div: JsxHtmlGlobalProps;
31 dl: JsxHtmlGlobalProps;
32 dt: JsxHtmlGlobalProps;
33 em: JsxHtmlGlobalProps;
34 embed: JsxEmbedElementProps;
35 fieldset: JsxFieldsetElementProps;
36 figcaption: JsxHtmlGlobalProps;
37 figure: JsxHtmlGlobalProps;
38 footer: JsxHtmlGlobalProps;
39 form: JsxFormElementProps;
40 h1: JsxFormElementProps;
41 h2: JsxFormElementProps;
42 h3: JsxFormElementProps;
43 h4: JsxFormElementProps;
44 h5: JsxFormElementProps;
45 h6: JsxFormElementProps;
46 head: JsxHtmlGlobalProps;
47 header: JsxHtmlGlobalProps;
48 hgroup: JsxHtmlGlobalProps;
49 hr: JsxHtmlGlobalProps;
50 html: JsxHtmlElementProps;
51 i: JsxHtmlGlobalProps;
52 iframe: JsxIframeElementProps;
53 img: JsxImgElementProps;
54 input: JsxInputElementProps;
55 ins: JsxInsElementProps;
56 kbd: JsxHtmlGlobalProps;
57 label: JsxLabelElementProps;
58 legend: JsxHtmlGlobalProps;
59 li: JsxLiElementProps;
60 link: JsxLinkElementProps;
61 main: JsxHtmlGlobalProps;
62 map: JsxMapElementProps;
63 mark: JsxHtmlGlobalProps;
64 meta: JsxMetaElementProps;
65 meter: JsxMeterElementProps;
66 nav: JsxHtmlGlobalProps;
67 noscript: JsxHtmlGlobalProps;
68 object: JsxObjectElementProps;
69 ol: JsxOlElementProps;
70 optgroup: JsxOptgroupElementProps;
71 option: JsxOptionElementProps;
72 output: JsxOutputElementProps;
73 p: JsxHtmlGlobalProps;
74 param: JsxParamElementProps;
75 picture: JsxHtmlGlobalProps;
76 portal: JsxPortalElementProps;
77 pre: JsxHtmlGlobalProps;
78 progress: JsxProgressElementProps;
79 q: JsxQElementProps;
80 rp: JsxHtmlGlobalProps;
81 rt: JsxHtmlGlobalProps;
82 ruby: JsxHtmlGlobalProps;
83 s: JsxHtmlGlobalProps;
84 samp: JsxHtmlGlobalProps;
85 script: JsxScriptElementProps;
86 section: JsxHtmlGlobalProps;
87 select: JsxSelectElementProps;
88 slot: JsxSlotElementProps;
89 small: JsxHtmlGlobalProps;
90 source: JsxSourceElementProps;
91 span: JsxHtmlGlobalProps;
92 strong: JsxHtmlGlobalProps;
93 style: JsxStyleElementProps;
94 sub: JsxHtmlGlobalProps;
95 summary: JsxHtmlGlobalProps;
96 sup: JsxHtmlGlobalProps;
97 table: JsxHtmlGlobalProps;
98 tbody: JsxHtmlGlobalProps;
99 td: JsxTdElementProps;
100 template: JsxHtmlGlobalProps;
101 textarea: JsxTextareaElementProps;
102 tfoot: JsxHtmlGlobalProps;
103 th: JsxThElementProps;
104 thead: JsxHtmlGlobalProps;
105 time: JsxTimeElementProps;
106 title: JsxHtmlGlobalProps;
107 tr: JsxHtmlGlobalProps;
108 track: JsxTrackElementProps;
109 u: JsxHtmlGlobalProps;
110 ul: JsxHtmlGlobalProps;
111 var: JsxHtmlGlobalProps;
112 video: JsxVideoElementProps;
113 wbr: JsxHtmlGlobalProps;
114 svg: JsxSvgElementProps;
115 g: JsxGElementProps;
116 path: JsxPathElementProps;
117 rect: JsxRectElementProps;
118 circle: JsxCircleElementProps;
119 ellipse: JsxEllipseElementProps;
120 polygon: JsxPolygonElementProps;
121 polyline: JsxPolylineElementProps;
122 line: JsxLineElementProps;
123 use: JsxUseElementProps;
124 text: JsxTextElementProps;
125}
126export declare const JsxFragment: unique symbol;
127export type JsxComponent<P> = (props: P) => JsxElement | null | undefined;
128export interface JsxElement {
129 tag: typeof JsxFragment | string | JsxComponent<any>;
130 props: object | null;
131 children: JsxChildren[];
132}
133export type JsxChildren = JsxElement | string | number | null | undefined | JsxChildren[];
134/**
135 * The common properties that may appear on any HTML element.
136 *
137 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#list_of_global_attributes
138 */
139export interface JsxHtmlGlobalProps {
140 accessKey?: string;
141 autocapitalize?: string;
142 children?: JsxChildren;
143 class?: string;
144 contentEditable?: string;
145 [data: `data-${string}`]: string;
146 dir?: string;
147 draggable?: boolean;
148 enterKeyHint?: string;
149 hidden?: boolean;
150 id?: string;
151 inputMode?: string;
152 is?: string;
153 itemId?: string;
154 itemProp?: string;
155 itemRef?: string;
156 itemScope?: string;
157 itemType?: string;
158 lang?: string;
159 nonce?: string;
160 part?: string;
161 role?: string;
162 slot?: string;
163 spellcheck?: boolean;
164 style?: string;
165 tabIndex?: number;
166 title?: string;
167 translate?: boolean;
168}
169/**
170 * Properties permitted on the `<a>` element.
171 *
172 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a
173 */
174export interface JsxAElementProps extends JsxHtmlGlobalProps {
175 download?: string;
176 href?: string;
177 hreflang?: string;
178 ping?: string;
179 referrerPolicy?: string;
180 rel?: string;
181 target?: string;
182 type?: string;
183}
184/**
185 * Properties permitted on the `<area>` element.
186 *
187 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/area
188 */
189export interface JsxAreaElementProps extends JsxHtmlGlobalProps {
190 alt?: string;
191 coords?: string;
192 download?: string;
193 href?: string;
194 hreflang?: string;
195 ping?: string;
196 referrerPolicy?: string;
197 rel?: string;
198 shape?: "rect" | "circle" | "poly" | "default";
199 target?: "_self" | "_blank" | "_parent" | "_top";
200}
201/**
202 * Properties permitted on the `<audio>` element.
203 *
204 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio
205 */
206export interface JsxAudioElementProps extends JsxHtmlGlobalProps {
207 autoplay?: boolean;
208 controls?: boolean;
209 crossOrigin?: "anonymous" | "use-credentials";
210 loop?: boolean;
211 muted?: boolean;
212 preload?: "none" | "metadata" | "auto" | "";
213 src?: string;
214}
215/**
216 * Properties permitted on the `<base>` element.
217 *
218 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
219 */
220export interface JsxBaseElementProps extends JsxHtmlGlobalProps {
221 href?: string;
222 target?: string;
223}
224/**
225 * Properties permitted on the `<blockquote>` element.
226 *
227 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blockquote
228 */
229export interface JsxBlockquoteElementProps extends JsxHtmlGlobalProps {
230 cite?: string;
231}
232/**
233 * Properties permitted on the `<br>` element.
234 *
235 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/br
236 */
237export interface JsxBrElementProps extends JsxHtmlGlobalProps {
238 clear?: string;
239}
240/**
241 * Properties permitted on the `<button>` element.
242 *
243 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button
244 */
245export interface JsxButtonElementProps extends JsxHtmlGlobalProps {
246 autofocus?: boolean;
247 disabled?: boolean;
248 form?: string;
249 formAction?: string;
250 formEnctype?: "application/x-www-form-urlencoded" | "multipart/form-data" | "text/plain";
251 formMethod?: "get" | "post";
252 formNoValidate?: boolean;
253 formTarget?: "_self" | "_blank" | "_parent" | "_top";
254 name?: string;
255 type?: "submit" | "reset" | "button";
256 value?: string;
257}
258/**
259 * Properties permitted on the `<canvas>` element.
260 *
261 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas
262 */
263export interface JsxCanvasElementProps extends JsxHtmlGlobalProps {
264 height?: number;
265 width?: number;
266}
267/**
268 * Properties permitted on the `<col>` element.
269 *
270 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col
271 */
272export interface JsxColElementProps extends JsxHtmlGlobalProps {
273 span?: number;
274}
275/**
276 * Properties permitted on the `<colgroup>` element.
277 *
278 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup
279 */
280export interface JsxColgroupElementProps extends JsxHtmlGlobalProps {
281 span?: number;
282}
283/**
284 * Properties permitted on the `<data>` element.
285 *
286 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/data
287 */
288export interface JsxDataElementProps extends JsxHtmlGlobalProps {
289 value?: string;
290}
291/**
292 * Properties permitted on the `<del>` element.
293 *
294 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/del
295 */
296export interface JsxDelElementProps extends JsxHtmlGlobalProps {
297 cite?: string;
298 dateTime?: string;
299}
300/**
301 * Properties permitted on the `<details>` element.
302 *
303 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details
304 */
305export interface JsxDetailsElementProps extends JsxHtmlGlobalProps {
306 open?: boolean;
307}
308/**
309 * Properties permitted on the `<dialog>` element.
310 *
311 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog
312 */
313export interface JsxDialogElementProps extends JsxHtmlGlobalProps {
314 open?: boolean;
315}
316/**
317 * Properties permitted on the `<embed>` element.
318 *
319 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/embed
320 */
321export interface JsxEmbedElementProps extends JsxHtmlGlobalProps {
322 height?: number;
323 src?: string;
324 type?: string;
325 width?: number;
326}
327/**
328 * Properties permitted on the `<fieldset>` element.
329 *
330 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset
331 */
332export interface JsxFieldsetElementProps extends JsxHtmlGlobalProps {
333 disabled?: boolean;
334 form?: string;
335 name?: string;
336}
337/**
338 * Properties permitted on the `<form>` element.
339 *
340 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form
341 */
342export interface JsxFormElementProps extends JsxHtmlGlobalProps {
343 "accept-charset"?: string;
344 action?: string;
345 enctype?: "application/x-www-form-urlencoded" | "multipart/form-data" | "text/plain";
346 autocomplete?: string;
347 method?: "get" | "post" | "dialog";
348 name?: string;
349 noValidate?: boolean;
350 rel?: string;
351 target?: "_self" | "_blank" | "_parent" | "_top";
352}
353/**
354 * Properties permitted on the `<html>` element.
355 *
356 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/html
357 */
358export interface JsxHtmlElementProps extends JsxHtmlGlobalProps {
359 xmlns?: string;
360}
361/**
362 * Properties permitted on the `<iframe>` element.
363 *
364 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe
365 */
366export interface JsxIframeElementProps extends JsxHtmlGlobalProps {
367 allow?: string;
368 height?: number;
369 name?: string;
370 referrerPolicy?: "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url";
371 sandbox?: string;
372 src?: string;
373 srcdoc?: string;
374 width?: number;
375}
376/**
377 * Properties permitted on the `<img>` element.
378 *
379 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img
380 */
381export interface JsxImgElementProps extends JsxHtmlGlobalProps {
382 alt?: string;
383 crossOrigin?: "anonymous" | "use-credentials";
384 decoding?: "async" | "sync" | "auto";
385 height?: number;
386 isMap?: boolean;
387 referrerPolicy?: "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url";
388 sizes?: string;
389 src: string;
390 srcset?: string;
391 width?: number;
392}
393/**
394 * Properties permitted on the `<input>` element.
395 *
396 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input
397 */
398export interface JsxInputElementProps extends JsxHtmlGlobalProps {
399 accept?: string;
400 alt?: string;
401 autocomplete?: string;
402 autofocus?: boolean;
403 capture?: string;
404 checked?: boolean;
405 dirName?: string;
406 disabled?: boolean;
407 form?: string;
408 formAction?: string;
409 formEnctype?: string;
410 formMethod?: string;
411 formNoValidate?: boolean;
412 formTarget?: string;
413 height?: number;
414 list?: string;
415 max?: number;
416 maxLength?: number;
417 min?: string;
418 minLength?: number;
419 multiple?: boolean;
420 name?: string;
421 pattern?: string;
422 placeholder?: string;
423 readOnly?: boolean;
424 required?: boolean;
425 size?: number;
426 src?: string;
427 step?: number;
428 type?: "button" | "checkbox" | "color" | "date" | "datetime-local" | "email" | "file" | "hidden" | "image" | "month" | "number" | "password" | "radio" | "range" | "reset" | "search" | "submit" | "tel" | "text" | "time" | "url" | "week";
429 value?: string;
430 width?: number;
431}
432/**
433 * Properties permitted on the `<ins>` element.
434 *
435 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ins
436 */
437export interface JsxInsElementProps extends JsxHtmlGlobalProps {
438 cite?: string;
439 dateTime?: string;
440}
441/**
442 * Properties permitted on the `<label>` element.
443 *
444 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label
445 */
446export interface JsxLabelElementProps extends JsxHtmlGlobalProps {
447 for?: string;
448}
449/**
450 * Properties permitted on the `<li>` element.
451 *
452 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li
453 */
454export interface JsxLiElementProps extends JsxHtmlGlobalProps {
455 value?: number;
456}
457/**
458 * Properties permitted on the `<link>` element.
459 *
460 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link
461 */
462export interface JsxLinkElementProps extends JsxHtmlGlobalProps {
463 as?: "audio" | "document" | "embed" | "fetch" | "font" | "image" | "object" | "script" | "style" | "track" | "video" | "worker";
464 crossOrigin?: "anonymous" | "use-credentials";
465 disabled?: boolean;
466 href?: string;
467 hreflang?: string;
468 imageSizes?: string;
469 imageSrcset?: string;
470 media?: string;
471 rel?: string;
472 sizes?: string;
473 type?: string;
474}
475/**
476 * Properties permitted on the `<map>` element.
477 *
478 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map
479 */
480export interface JsxMapElementProps extends JsxHtmlGlobalProps {
481 name?: string;
482}
483/**
484 * Properties permitted on the `<meta>` element.
485 *
486 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta
487 */
488export interface JsxMetaElementProps extends JsxHtmlGlobalProps {
489 "http-equiv"?: "content-security-policy" | "content-type" | "default-style" | "x-ua-compatible" | "refresh";
490 charset?: "utf-8";
491 content?: string;
492 name?: string;
493}
494/**
495 * Properties permitted on the `<meter>` element.
496 *
497 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meter
498 */
499export interface JsxMeterElementProps extends JsxHtmlGlobalProps {
500 form?: string;
501 high?: number;
502 low?: number;
503 max?: number;
504 min?: number;
505 optimum?: number;
506 value?: number;
507}
508/**
509 * Properties permitted on the `<object>` element.
510 *
511 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/object
512 */
513export interface JsxObjectElementProps extends JsxHtmlGlobalProps {
514 data?: string;
515 form?: string;
516 height?: number;
517 name?: string;
518 type?: string;
519 useMap?: string;
520 width?: number;
521}
522/**
523 * Properties permitted on the `<ol>` element.
524 *
525 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol
526 */
527export interface JsxOlElementProps extends JsxHtmlGlobalProps {
528 reversed?: boolean;
529 start?: number;
530 type?: "a" | "A" | "i" | "I" | "1";
531}
532/**
533 * Properties permitted on the `<optgroup>` element.
534 *
535 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/optgroup
536 */
537export interface JsxOptgroupElementProps extends JsxHtmlGlobalProps {
538 disabled?: boolean;
539 label: string;
540}
541/**
542 * Properties permitted on the `<option>` element.
543 *
544 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/option
545 */
546export interface JsxOptionElementProps extends JsxHtmlGlobalProps {
547 disabled?: boolean;
548 label?: string;
549 selected?: boolean;
550 value?: string;
551}
552/**
553 * Properties permitted on the `<output>` element.
554 *
555 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/output
556 */
557export interface JsxOutputElementProps extends JsxHtmlGlobalProps {
558 for?: string;
559 form?: string;
560 name?: string;
561}
562/**
563 * Properties permitted on the `<param>` element.
564 *
565 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/param
566 */
567export interface JsxParamElementProps extends JsxHtmlGlobalProps {
568 name?: string;
569 value?: string;
570}
571/**
572 * Properties permitted on the `<portal>` element.
573 *
574 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/portal
575 */
576export interface JsxPortalElementProps extends JsxHtmlGlobalProps {
577 referrerPolicy?: "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url";
578 src: string;
579}
580/**
581 * Properties permitted on the `<progress>` element.
582 *
583 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress
584 */
585export interface JsxProgressElementProps extends JsxHtmlGlobalProps {
586 max?: number;
587 value?: number;
588}
589/**
590 * Properties permitted on the `<q>` element.
591 *
592 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/q
593 */
594export interface JsxQElementProps extends JsxHtmlGlobalProps {
595 cite?: string;
596}
597/**
598 * Properties permitted on the `<script>` element.
599 *
600 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script
601 */
602export interface JsxScriptElementProps extends JsxHtmlGlobalProps {
603 async?: boolean;
604 crossOrigin?: "anonymous" | "use-credentials";
605 defer?: boolean;
606 integrity?: string;
607 noModule?: boolean;
608 referrerPolicy?: "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url";
609 src?: string;
610 type?: "module" | (string & {});
611}
612/**
613 * Properties permitted on the `<select>` element.
614 *
615 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select
616 */
617export interface JsxSelectElementProps extends JsxHtmlGlobalProps {
618 autocomplete?: string;
619 autofocus?: boolean;
620 disabled?: boolean;
621 form?: string;
622 multiple?: boolean;
623 name?: string;
624 required?: boolean;
625 size?: number;
626}
627/**
628 * Properties permitted on the `<slot>` element.
629 *
630 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/slot
631 */
632export interface JsxSlotElementProps extends JsxHtmlGlobalProps {
633 name?: string;
634}
635/**
636 * Properties permitted on the `<source>` element.
637 *
638 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source
639 */
640export interface JsxSourceElementProps extends JsxHtmlGlobalProps {
641 media?: string;
642 sizes?: string;
643 src?: string;
644 srcset?: string;
645 type?: string;
646}
647/**
648 * Properties permitted on the `<style>` element.
649 *
650 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/style
651 */
652export interface JsxStyleElementProps extends JsxHtmlGlobalProps {
653 media?: string;
654 type?: string;
655 nonce?: string;
656}
657/**
658 * Properties permitted on the `<td>` element.
659 *
660 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td
661 */
662export interface JsxTdElementProps extends JsxHtmlGlobalProps {
663 colSpan?: number;
664 headers?: string;
665 rowSpan?: number;
666}
667/**
668 * Properties permitted on the `<textarea>` element.
669 *
670 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea
671 */
672export interface JsxTextareaElementProps extends JsxHtmlGlobalProps {
673 autocomplete?: string;
674 autofocus?: boolean;
675 cols?: number;
676 disabled?: boolean;
677 maxLength?: number;
678 minLength?: number;
679 name?: string;
680 placeholder?: string;
681 readOnly?: boolean;
682 required?: boolean;
683 rows?: number;
684 wrap?: "hard" | "soft";
685}
686/**
687 * Properties permitted on the `<th>` element.
688 *
689 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th
690 */
691export interface JsxThElementProps extends JsxHtmlGlobalProps {
692 abbr?: string;
693 colSpan?: number;
694 headers?: string;
695 rowSpan?: number;
696 scope?: "row" | "col" | "rowgroup" | "colgroup";
697}
698/**
699 * Properties permitted on the `<time>` element.
700 *
701 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/time
702 */
703export interface JsxTimeElementProps extends JsxHtmlGlobalProps {
704 dateTime?: string;
705}
706/**
707 * Properties permitted on the `<track>` element.
708 *
709 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/track
710 */
711export interface JsxTrackElementProps extends JsxHtmlGlobalProps {
712 default?: boolean;
713 kind?: "subtitles" | "captions" | "descriptions" | "chapters" | "metadata";
714 label?: string;
715 src?: string;
716 srclang?: string;
717}
718/**
719 * Properties permitted on the `<video>` element.
720 *
721 * Reference: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video
722 */
723export interface JsxVideoElementProps extends JsxHtmlGlobalProps {
724 autoplay?: boolean;
725 controls?: boolean;
726 crossOrigin?: "anonymous" | "use-credentials";
727 height?: number;
728 loop?: boolean;
729 muted?: boolean;
730 playsInline?: boolean;
731 poster?: string;
732 preload?: string;
733 src?: string;
734 width?: number;
735}
736export interface JsxSvgCoreProps {
737 id?: string;
738 lang?: string;
739 tabindex?: string;
740 "xml:base"?: string;
741 xmlns?: string;
742}
743export interface JsxSvgStyleProps {
744 class?: string;
745 style?: string;
746}
747export interface JsxSvgConditionalProcessingProps {
748 systemLanguage?: string;
749}
750export interface JsxSvgPresentationProps {
751 "alignment-baseline"?: "baseline" | "text-bottom" | "text-before-edge" | "middle" | "central" | "text-after-edge" | "ideographic" | "alphabetic" | "hanging" | "mathematical" | "top" | "center" | "bottom";
752 "baseline-shift"?: number | "sub" | "super";
753 "clip-path"?: string;
754 "clip-rule"?: "nonzero" | "evenodd" | "inherit";
755 color?: string;
756 "color-interpolation"?: "auto" | "sRGB" | "linearRGB";
757 "color-interpolation-filters"?: "auto" | "sRGB" | "linearRGB";
758 cursor?: string;
759 direction?: "ltr" | "rtl";
760 display?: string;
761 "dominant-baseline"?: "auto" | "text-bottom" | "alphabetic" | "ideographic" | "middle" | "central" | "mathematical" | "hanging" | "text-top";
762 fill?: string;
763 "fill-opacity"?: number;
764 "fill-rule"?: "nonzero" | "evenodd";
765 filter?: string;
766 "flood-color"?: string;
767 "flood-opacity"?: number;
768 "font-family"?: string;
769 "font-size"?: string;
770 "font-size-adjust"?: "none" | number;
771 "font-stretch"?: string;
772 "font-style"?: "normal" | "italic" | "oblique" | string;
773 "font-variant"?: string;
774 "font-weight"?: "normal" | "bold" | "bolder" | "lighter" | number | string;
775 "image-rendering"?: "auto" | "optimizeSpeed" | "optimizeQuality";
776 "letter-spacing"?: string;
777 "lighting-color"?: string;
778 "marker-end"?: string;
779 "marker-mid"?: string;
780 "marker-start"?: string;
781 mask?: string;
782 opacity?: number;
783 overflow?: "visible" | "hidden" | "scroll" | "auto";
784 "pointer-events"?: "bounding-box" | "visiblePainted" | "visibleFill" | "visibleStroke" | "visible" | "painted" | "fill" | "stroke" | "all" | "none";
785 "shape-rendering"?: "auto" | "optimizeSpeed" | "crispEdges" | "geometricPrecision";
786 "stop-color"?: string;
787 "stop-opacity"?: string;
788 stroke?: string;
789 "stroke-dasharray"?: string;
790 "stroke-dashoffset"?: string;
791 "stroke-linecap"?: "butt" | "round" | "square";
792 "stroke-linejoin"?: "arcs" | "bevel |miter" | "miter-clip" | "round";
793 "stroke-miterlimit"?: number;
794 "stroke-opacity"?: string | number;
795 "stroke-width"?: string | number;
796 "text-anchor"?: "start" | "middle" | "end";
797 "text-decoration"?: string;
798 "text-rendering"?: "auto" | "optimizeSpeed" | "optimizeLegibility" | "geometricPrecision";
799 transform?: string;
800 "transform-origin"?: string;
801 "unicode-bidi"?: "normal" | "embed" | "isolate" | "bidi-override" | "isolate-override" | "plaintext";
802 "vector-effect"?: "none" | "non-scaling-stroke" | "non-scaling-size" | "non-rotation" | "fixed-position";
803 visibility?: "visible" | "hidden" | "collapse";
804 "word-spacing"?: string;
805 "writing-mode"?: "horizontal-tb" | "vertical-rl" | "vertical-lr";
806}
807/**
808 * Properties permitted on the `<svg>` element.
809 *
810 * Reference: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/svg
811 */
812export interface JsxSvgElementProps extends JsxSvgCoreProps, JsxSvgStyleProps, JsxSvgPresentationProps {
813 height?: string | number;
814 preserveAspectRatio?: `${"none" | "xMinYMin" | "xMaxYMin" | "xMinYMid" | "xMaxYMid" | "xMinYMax" | "xMidYMax" | "xMaxYMax"}${"" | " meet" | " slice"}`;
815 viewBox?: string;
816 width?: string | number;
817 x?: string | number;
818 y?: string | number;
819}
820/**
821 * Properties permitted on the `<g>` element.
822 *
823 * Reference: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/g
824 */
825export interface JsxGElementProps extends JsxSvgCoreProps, JsxSvgStyleProps, JsxSvgConditionalProcessingProps, JsxSvgPresentationProps {
826}
827/**
828 * Properties permitted on the `<path>` element.
829 *
830 * Reference: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/path
831 */
832export interface JsxPathElementProps extends JsxSvgCoreProps, JsxSvgStyleProps, JsxSvgConditionalProcessingProps, JsxSvgPresentationProps {
833 d: string;
834 pathLength?: number;
835}
836/**
837 * Properties permitted on the `<rect>` element.
838 *
839 * Reference: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/rect
840 */
841export interface JsxRectElementProps extends JsxSvgCoreProps, JsxSvgStyleProps, JsxSvgConditionalProcessingProps, JsxSvgPresentationProps {
842 height?: string | number;
843 pathLength?: number;
844 rx?: string | number;
845 ry?: string | number;
846 width?: string | number;
847 x?: string | number;
848 y?: string | number;
849}
850/**
851 * Properties permitted on the `<circle>` element.
852 *
853 * Reference: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/circle
854 */
855export interface JsxCircleElementProps extends JsxSvgCoreProps, JsxSvgStyleProps, JsxSvgConditionalProcessingProps, JsxSvgPresentationProps {
856 cx?: string | number;
857 cy?: string | number;
858 r?: string | number;
859 pathLength?: number;
860}
861/**
862 * Properties permitted on the `<ellipse>` element.
863 *
864 * Reference: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/ellipse
865 */
866export interface JsxEllipseElementProps extends JsxSvgCoreProps, JsxSvgStyleProps, JsxSvgConditionalProcessingProps, JsxSvgPresentationProps {
867 cx?: string | number;
868 cy?: string | number;
869 rx?: string | number;
870 ry?: string | number;
871 pathLength?: number;
872}
873/**
874 * Properties permitted on the `<polygon>` element.
875 *
876 * Reference: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polygon
877 */
878export interface JsxPolygonElementProps extends JsxSvgCoreProps, JsxSvgStyleProps, JsxSvgConditionalProcessingProps, JsxSvgPresentationProps {
879 points?: string;
880 pathLength?: number;
881}
882/** Properties permitted on the `<polyline>` element.
883 *
884 * Reference: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polyline
885 */
886export interface JsxPolylineElementProps extends JsxSvgCoreProps, JsxSvgStyleProps, JsxSvgConditionalProcessingProps, JsxSvgPresentationProps {
887 points?: string;
888 pathLength?: number;
889}
890/** Properties permitted on the `<line>` element.
891 *
892 * Reference: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/line
893 */
894export interface JsxLineElementProps extends JsxSvgCoreProps, JsxSvgStyleProps, JsxSvgConditionalProcessingProps, JsxSvgPresentationProps {
895 x1?: string | number;
896 y1?: string | number;
897 x2?: string | number;
898 y2?: string | number;
899 pathLength?: number;
900}
901/**
902 * Properties permitted on the `<use>` element.
903 *
904 * Reference: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/use
905 */
906export interface JsxUseElementProps extends JsxSvgCoreProps, JsxSvgStyleProps, JsxSvgConditionalProcessingProps, JsxSvgPresentationProps {
907 href: string;
908 x?: string | number;
909 y?: string | number;
910 width?: string | number;
911 height?: string | number;
912}
913/**
914 * Properties permitted on the `<text>` element.
915 *
916 * Reference: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/text
917 */
918export interface JsxTextElementProps extends JsxSvgCoreProps, JsxSvgStyleProps, JsxSvgPresentationProps {
919 x?: string | number;
920 y?: string | number;
921}