UNPKG

97.2 kBTypeScriptView Raw
1/**
2 * Adapted from React’s TypeScript definition from DefinitelyTyped.
3 * @see https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react/index.d.ts
4 */
5
6declare module "jsx-dom" {
7 type TagMap = HTMLElementTagNameMap;
8
9 export function createElement<Tag extends keyof TagMap>(
10 tagName: Tag,
11 props?: any,
12 ...children: JSX.Child[]
13 ): TagMap[Tag];
14
15 export function createElement(
16 tagName: string,
17 props?: any,
18 ...children: JSX.Child[]
19 ): HTMLElement;
20
21 export function createElement<Result extends Element, Props>(
22 factory: (props: Props & { children: JSX.Child[] }) => Result | DocumentFragment | Result[],
23 props?: Props & { ref?: (instance: Result) => void; children?: any },
24 ...children: JSX.Child[]
25 ): Result;
26
27 export function createRef<T extends Element = Element>(): JSX.Ref<T>;
28
29 export const h: typeof createElement;
30
31 export function Fragment(props: { children: JSX.Child[] }): DocumentFragment;
32
33 // Utility functions
34 export function stopPropagation(event: Event): Event;
35 export function preventDefault(event: Event): Event;
36}
37
38declare namespace JSX {
39 export type Child = Node | Node[] | string | number;
40 export type Children = Child | Child[];
41
42 type NativeElement = HTMLElement;
43
44 interface IntrinsicAttributes {
45 ref?: (instance: Element) => void;
46 }
47
48 // TypeScript SVGElement has no `dataset` (Chrome 55+, Firefox 51+).
49 type Element = NativeElement & {
50 dataset: DOMStringMap;
51 };
52
53 interface Ref<T> {
54 current: null | T;
55 }
56
57 //
58 // Event Handler Types
59 // ----------------------------------------------------------------------
60 type EventHandler<E = Event> = (event: E) => any;
61
62 type ClipboardEventHandler = EventHandler<ClipboardEvent>;
63 type CompositionEventHandler = EventHandler<CompositionEvent>;
64 type DragEventHandler = EventHandler<DragEvent>;
65 type FocusEventHandler = EventHandler<FocusEvent>;
66 type FormEventHandler = EventHandler<Event>;
67 type ChangeEventHandler = EventHandler<Event>;
68 type KeyboardEventHandler = EventHandler<KeyboardEvent>;
69 type MouseEventHandler = EventHandler<MouseEvent>;
70 type TouchEventHandler = EventHandler<TouchEvent>;
71 type UIEventHandler = EventHandler<UIEvent>;
72 type WheelEventHandler = EventHandler<WheelEvent>;
73 type AnimationEventHandler = EventHandler<AnimationEvent>;
74 type TransitionEventHandler = EventHandler<TransitionEvent>;
75
76 type ClassNameBase = boolean | string | number | void | null;
77 type ClassName = string | (ClassNameBase | ClassNameBase[])[] | {
78 [key: string]: boolean
79 }
80
81 // See CSS 3 CSS-wide keywords https://www.w3.org/TR/css3-values/#common-keywords
82 // See CSS 3 Explicit Defaulting https://www.w3.org/TR/css-cascade-3/#defaulting-keywords
83 // "all CSS properties can accept these values"
84 type CSSWideKeyword = "initial" | "inherit" | "unset";
85
86 // See CSS 3 <percentage> type https://drafts.csswg.org/css-values-3/#percentages
87 type CSSPercentage = string;
88
89 // See CSS 3 <length> type https://drafts.csswg.org/css-values-3/#lengths
90 type CSSLength = number | string;
91
92 // This interface is not complete. Only properties accepting
93 // unit-less numbers are listed here (see CSSProperty.js in React)
94 interface CSSProperties {
95
96 /**
97 * Aligns a flex container’s lines within the flex container when there is extra space in
98 * the cross-axis, similar to how justify-content aligns individual items within the main-axis.
99 */
100 alignContent?: CSSWideKeyword | "flex-start" | "flex-end" | "center" | "space-between" |
101 "space-around" | "stretch";
102
103 /**
104 * Sets the default alignment in the cross axis for all of the flex container’s items,
105 * including anonymous flex items, similarly to how justify-content aligns items along the main
106 * axis.
107 */
108 alignItems?: CSSWideKeyword | "flex-start" | "flex-end" | "center" | "baseline" | "stretch";
109
110 /**
111 * Allows the default alignment to be overridden for individual flex items.
112 */
113 alignSelf?: CSSWideKeyword | "auto" | "flex-start" | "flex-end" | "center" | "baseline" |
114 "stretch";
115
116 /**
117 * This property allows precise alignment of elements, such as graphics, that do not have a
118 * baseline-table or lack the desired baseline in their baseline-table. With the
119 * alignment-adjust property, the position of the baseline identified by the alignment-baseline
120 * can be explicitly determined. It also determines precisely the alignment point for each
121 * glyph within a textual element.
122 */
123 alignmentAdjust?: CSSWideKeyword | any;
124
125 alignmentBaseline?: CSSWideKeyword | any;
126
127 /**
128 * Defines a length of time to elapse before an animation starts, allowing an animation to
129 * begin execution some time after it is applied.
130 */
131 animationDelay?: CSSWideKeyword | any;
132
133 /** Defines whether an animation should run in reverse on some or all cycles. */
134 animationDirection?: CSSWideKeyword | any;
135
136 /** Specifies how many times an animation cycle should play. */
137 animationIterationCount?: CSSWideKeyword | any;
138
139 /** Defines the list of animations that apply to the element. */
140 animationName?: CSSWideKeyword | any;
141
142 /** Defines whether an animation is running or paused. */
143 animationPlayState?: CSSWideKeyword | any;
144
145 /**
146 * Allows changing the style of any element to platform-based interface elements or vice versa.
147 */
148 appearance?: CSSWideKeyword | any;
149
150 /**
151 * Determines whether or not the “back” side of a transformed element is visible when facing
152 * the viewer.
153 */
154 backfaceVisibility?: CSSWideKeyword | any;
155
156 /**
157 * Shorthand property to set the values for one or more of:
158 * `background-clip`, `background-color`, `background-image`,
159 * `background-origin`, `background-position`, `background-repeat`,
160 * `background-size`, and `background-attachment`.
161 */
162 background?: CSSWideKeyword | any;
163
164 /**
165 * If a `background-image` is specified, this property determines
166 * whether that image’s position is fixed within the viewport,
167 * or scrolls along with its containing block.
168 * @see https://drafts.csswg.org/css-backgrounds-3/#the-background-attachment
169 */
170 backgroundAttachment?: CSSWideKeyword | "scroll" | "fixed" | "local";
171
172 /**
173 * This property describes how the element’s background images should blend with each other and
174 * the element’s background color.
175 *
176 * The value is a list of blend modes that corresponds to each background image. Each element
177 * in the list will apply to the corresponding element of background-image. If a property
178 * doesn’t have enough comma-separated values to match the number of layers, the UA must
179 * calculate its used value by repeating the list of values until there are enough.
180 */
181 backgroundBlendMode?: CSSWideKeyword | any;
182
183 /**
184 * Sets the background color of an element.
185 */
186 backgroundColor?: CSSWideKeyword | any;
187
188 backgroundComposite?: CSSWideKeyword | any;
189
190 /**
191 * Applies one or more background images to an element. These can be any valid CSS image,
192 * including url() paths to image files or CSS gradients.
193 */
194 backgroundImage?: CSSWideKeyword | any;
195
196 /**
197 * Specifies what the background-position property is relative to.
198 */
199 backgroundOrigin?: CSSWideKeyword | any;
200
201 /**
202 * Sets the position of a background image.
203 */
204 backgroundPosition?: CSSWideKeyword | any;
205
206 /**
207 * Background-repeat defines if and how background images will be repeated after they have been
208 * sized and positioned
209 */
210 backgroundRepeat?: CSSWideKeyword | any;
211
212 /**
213 * Obsolete - spec retired, not implemented.
214 */
215 baselineShift?: CSSWideKeyword | any;
216
217 /**
218 * Non standard. Sets or retrieves the location of the Dynamic HTML (DHTML) behavior.
219 */
220 behavior?: CSSWideKeyword | any;
221
222 /**
223 * Shorthand property that defines the different properties of all four sides of an
224 * element’s border in a single declaration. It can be used to set `border-width`,
225 * `border-style` and `border-color`, or a subset of these.
226 */
227 border?: CSSWideKeyword | any;
228
229 /**
230 * Shorthand that sets the values of `border-bottom-color`, `border-bottom-style`,
231 * and `border-bottom-width`.
232 */
233 borderBottom?: CSSWideKeyword | any;
234
235 /** Sets the color of the bottom border of an element. */
236 borderBottomColor?: CSSWideKeyword | any;
237
238 /** Defines the shape of the border of the bottom-left corner. */
239 borderBottomLeftRadius?: CSSWideKeyword | any;
240
241 /** Defines the shape of the border of the bottom-right corner. */
242 borderBottomRightRadius?: CSSWideKeyword | any;
243
244 /** Sets the line style of the bottom border of a box. */
245 borderBottomStyle?: CSSWideKeyword | any;
246
247 /**
248 * Sets the width of an element’s bottom border. To set all four borders, use the
249 * `border-width` shorthand property which sets the values simultaneously for
250 * `border-top-width`, `border-right-width`, `border-bottom-width`, and `border-left-width`.
251 */
252 borderBottomWidth?: CSSWideKeyword | any;
253
254 /**
255 * Border-collapse can be used for collapsing the borders between table cells
256 */
257 borderCollapse?: CSSWideKeyword | any;
258
259 /**
260 * The CSS `border-color` property sets the color of an element’s four borders. This property
261 * can have from one to four values, made up of the elementary properties:
262 *
263 * - `border-top-color`
264 * - `border-right-color`
265 * - `border-bottom-color`
266 * - `border-left-color` The default color is the `currentColor` of each of these values.
267 *
268 * If you provide one value, it sets the color for the element. Two values set the
269 * horizontal and vertical values, respectively. Providing three values sets the top, vertical,
270 * and bottom values, in that order. Four values set all for sides: top, right, bottom, and
271 * left, in that order.
272 */
273 borderColor?: CSSWideKeyword | any;
274
275 /**
276 * Specifies different corner clipping effects, such as scoop (inner curves), bevel (straight
277 * cuts) or notch (cut-off rectangles). Works along with border-radius to specify the size of
278 * each corner effect.
279 */
280 borderCornerShape?: CSSWideKeyword | any;
281
282 /**
283 * The property border-image-source is used to set the image to be used instead of the border
284 * style. If this is set to none the border-style is used instead.
285 */
286 borderImageSource?: CSSWideKeyword | any;
287
288 /**
289 * The border-image-width CSS property defines the offset to use for dividing the border image
290 * in nine parts, the top-left corner, central top edge, top-right-corner, central right edge,
291 * bottom-right corner, central bottom edge, bottom-left corner, and central right edge. They
292 * represent inward distance from the top, right, bottom, and left edges.
293 */
294 borderImageWidth?: CSSWideKeyword | any;
295
296 /**
297 * Shorthand property that defines the border-width, border-style and border-color of an
298 * element’s left border in a single declaration. Note that you can use the corresponding
299 * longhand properties to set specific individual properties of the left border:
300 * border-left-width, border-left-style and border-left-color.
301 */
302 borderLeft?: CSSWideKeyword | any;
303
304 /**
305 * The CSS border-left-color property sets the color of an element’s left border. This page
306 * explains the border-left-color value, but often you will find it more convenient to fix
307 * the border’s left color as part of a shorthand set, either border-left or border-color.
308 * Colors can be defined several ways. For more information, see Usage.
309 */
310 borderLeftColor?: CSSWideKeyword | any;
311
312 /**
313 * Sets the style of an element’s left border. To set all four borders, use the shorthand
314 * property, border-style. Otherwise, you can set the borders individually with
315 * border-top-style, border-right-style, border-bottom-style, border-left-style.
316 */
317 borderLeftStyle?: CSSWideKeyword | any;
318
319 /**
320 * Sets the width of an element’s left border. To set all four borders, use the
321 * border-width shorthand property which sets the values simultaneously for border-top-width,
322 * border-right-width, border-bottom-width, and border-left-width.
323 */
324 borderLeftWidth?: CSSWideKeyword | any;
325
326 /**
327 * Shorthand property that defines the border-width, border-style and border-color of an
328 * element’s right border in a single declaration. Note that you can use the corresponding
329 * longhand properties to set specific individual properties of the right border —
330 * border-right-width, border-right-style and border-right-color.
331 */
332 borderRight?: CSSWideKeyword | any;
333
334 /**
335 * Sets the color of an element’s right border. This page explains the border-right-color value,
336 * but often you will find it more convenient to fix the border’s right color as part of a
337 * shorthand set, either border-right or border-color.
338 * Colors can be defined several ways. For more information, see Usage.
339 */
340 borderRightColor?: CSSWideKeyword | any;
341
342 /**
343 * Sets the style of an element’s right border. To set all four borders, use the shorthand
344 * property, border-style. Otherwise, you can set the borders individually with
345 * border-top-style, border-right-style, border-bottom-style, border-left-style.
346 */
347 borderRightStyle?: CSSWideKeyword | any;
348
349 /**
350 * Sets the width of an element’s right border. To set all four borders, use the border-width
351 * shorthand property which sets the values simultaneously for border-top-width,
352 * border-right-width, border-bottom-width, and border-left-width.
353 */
354 borderRightWidth?: CSSWideKeyword | any;
355
356 /**
357 * Specifies the distance between the borders of adjacent cells.
358 */
359 borderSpacing?: CSSWideKeyword | any;
360
361 /**
362 * Sets the style of an element’s four borders. This property can have from one to four values.
363 * With only one value, the value will be applied to all four borders; otherwise, this works as
364 * a shorthand property for each of border-top-style, border-right-style, border-bottom-style,
365 * border-left-style, where each border style may be assigned a separate value.
366 */
367 borderStyle?: CSSWideKeyword | any;
368
369 /**
370 * Shorthand property that defines the border-width, border-style and border-color of an
371 * element’s top border in a single declaration. Note that you can use the corresponding
372 * longhand properties to set specific individual properties of the top border —
373 * border-top-width, border-top-style and border-top-color.
374 */
375 borderTop?: CSSWideKeyword | any;
376
377 /**
378 * Sets the color of an element’s top border. This page explains the border-top-color value,
379 * but often you will find it more convenient to fix the border’s top color as part of a
380 * shorthand set, either border-top or border-color.
381 * Colors can be defined several ways. For more information, see Usage.
382 */
383 borderTopColor?: CSSWideKeyword | any;
384
385 /**
386 * Sets the rounding of the top-left corner of the element.
387 */
388 borderTopLeftRadius?: CSSWideKeyword | any;
389
390 /**
391 * Sets the rounding of the top-right corner of the element.
392 */
393 borderTopRightRadius?: CSSWideKeyword | any;
394
395 /**
396 * Sets the style of an element’s top border. To set all four borders, use the shorthand
397 * property, border-style. Otherwise, you can set the borders individually with
398 * border-top-style, border-right-style, border-bottom-style, border-left-style.
399 */
400 borderTopStyle?: CSSWideKeyword | any;
401
402 /**
403 * Sets the width of an element’s top border. To set all four borders, use the border-width
404 * shorthand property which sets the values simultaneously for border-top-width,
405 * border-right-width, border-bottom-width, and border-left-width.
406 */
407 borderTopWidth?: CSSWideKeyword | any;
408
409 /**
410 * Sets the width of an element’s four borders. This property can have from one to four values.
411 * This is a shorthand property for setting values simultaneously for border-top-width,
412 * border-right-width, border-bottom-width, and border-left-width.
413 */
414 borderWidth?: CSSWideKeyword | any;
415
416 /**
417 * This property specifies how far an absolutely positioned box’s bottom margin edge is offset
418 * above the bottom edge of the box’s containing block. For relatively positioned boxes, the
419 * offset is with respect to the bottom edges of the box itself (i.e., the box is given a
420 * position in the normal flow, then offset from that position according to these properties).
421 */
422 bottom?: CSSWideKeyword | any;
423
424 /** @deprecated. */
425 boxAlign?: CSSWideKeyword | any;
426
427 /**
428 * Breaks a box into fragments creating new borders, padding and repeating backgrounds or
429 * lets it stay as a continuous box on a page break, column break, or, for inline elements,
430 * at a line break.
431 */
432 boxDecorationBreak?: CSSWideKeyword | any;
433
434 /** @deprecated. */
435 boxDirection?: CSSWideKeyword | any;
436
437 /** @deprecated. */
438 boxFlex?: CSSWideKeyword | number;
439
440 /** @deprecated. */
441 boxFlexGroup?: CSSWideKeyword | number;
442
443 /**
444 * Cast a drop shadow from the frame of almost any element.
445 * @see https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow
446 */
447 boxShadow?: CSSWideKeyword | any;
448
449 /**
450 * The CSS break-after property allows you to force a break on multi-column layouts. More
451 * specifically, it allows you to force a break after an element. It allows you to determine
452 * if a break should occur, and what type of break it should be. The break-after CSS property
453 * describes how the page, column or region break behaves after the generated box. If there
454 * is no generated box, the property is ignored.
455 */
456 breakAfter?: CSSWideKeyword | any;
457
458 /**
459 * Control page/column/region breaks that fall above a block of content
460 */
461 breakBefore?: CSSWideKeyword | any;
462
463 /**
464 * Control page/column/region breaks that fall within a block of content
465 */
466 breakInside?: CSSWideKeyword | any;
467
468 /**
469 * The clear CSS property specifies if an element can be positioned next to or must be
470 * positioned below the floating elements that precede it in the markup.
471 */
472 clear?: CSSWideKeyword | any;
473
474 /**
475 * @deprecated see clip-path.
476 * Lets you specify the dimensions of an absolutely positioned element that should be
477 * visible, and the element is clipped into this shape, and displayed.
478 */
479 clip?: CSSWideKeyword | any;
480
481 /**
482 * Clipping crops an graphic, so that only a portion of the graphic is rendered, or filled.
483 * This clip-rule property, when used with the clip-path property, defines which clip rule,
484 * or algorithm, to use when filling the different parts of a graphics.
485 */
486 clipRule?: CSSWideKeyword | any;
487
488 /**
489 * The color property sets the color of an element’s foreground content (usually text),
490 * accepting any standard CSS color from keywords and hex values to RGB(a) and HSL(a).
491 */
492 color?: CSSWideKeyword | any;
493
494 /**
495 * Describes the number of columns of the element.
496 * See CSS 3 column-count property https://www.w3.org/TR/css3-multicol/#cc
497 */
498 columnCount?: CSSWideKeyword | number | "auto";
499
500 /** Specifies how to fill columns (balanced or sequential). */
501 columnFill?: CSSWideKeyword | any;
502
503 /**
504 * The column-gap property controls the width of the gap between columns in multi-column
505 * elements.
506 */
507 columnGap?: CSSWideKeyword | any;
508
509 /** Sets the width, style, and color of the rule between columns. */
510 columnRule?: CSSWideKeyword | any;
511
512 /** Specifies the color of the rule between columns. */
513 columnRuleColor?: CSSWideKeyword | any;
514
515 /**
516 * Specifies the width of the rule between columns.
517 */
518 columnRuleWidth?: CSSWideKeyword | any;
519
520 /**
521 * The column-span CSS property makes it possible for an element to span across all
522 * columns when its value is set to all. An element that spans more than one column is
523 * called a spanning element.
524 */
525 columnSpan?: CSSWideKeyword | any;
526
527 /**
528 * Specifies the width of columns in multi-column elements.
529 */
530 columnWidth?: CSSWideKeyword | any;
531
532 /**
533 * This property is a shorthand property for setting column-width and/or column-count.
534 */
535 columns?: CSSWideKeyword | any;
536
537 /**
538 * The counter-increment property accepts one or more names of counters (identifiers),
539 * each one optionally followed by an integer which specifies the value by which the
540 * counter should be incremented (e.g. if the value is 2, the counter increases by 2
541 * each time it is invoked).
542 */
543 counterIncrement?: CSSWideKeyword | any;
544
545 /**
546 * The counter-reset property contains a list of one or more names of counters, each one
547 * optionally followed by an integer (otherwise, the integer defaults to 0.) Each time the
548 * given element is invoked, the counters specified by the property are set to the given
549 * integer.
550 */
551 counterReset?: CSSWideKeyword | any;
552
553 /**
554 * The cue property specifies sound files (known as an "auditory icon") to be played by speech
555 * media agents before and after presenting an element’s content; if only one file is
556 * specified, it is played both before and after. The volume at which the file(s) should be
557 * played, relative to the volume of the main element, may also be specified. The icon files
558 * may also be set separately with the cue-before and cue-after properties.
559 */
560 cue?: CSSWideKeyword | any;
561
562 /**
563 * The cue-after property specifies a sound file (known as an "auditory icon") to be played by
564 * speech media agents after presenting an element’s content; the volume at which the file
565 * should be played may also be specified. The shorthand property cue sets cue sounds for
566 * both before and after the element is presented.
567 */
568 cueAfter?: CSSWideKeyword | any;
569
570 /**
571 * Specifies the mouse cursor displayed when the mouse pointer is over an element.
572 */
573 cursor?: CSSWideKeyword | any;
574
575 /**
576 * The direction CSS property specifies the text direction/writing direction. The rtl is used
577 * for Hebrew or Arabic text, the ltr is for other languages.
578 */
579 direction?: CSSWideKeyword | any;
580
581 /**
582 * This property specifies the type of rendering box used for an element. It is a shorthand
583 * property for many other display properties.
584 */
585 display?: CSSWideKeyword | any;
586
587 /**
588 * The ‘fill’ property paints the interior of the given graphical element. The area to be
589 * painted consists of any areas inside the outline of the shape. To determine the inside of
590 * the shape, all subpaths are considered, and the interior is determined according to the
591 * rules associated with the current value of the ‘fill-rule’ property. The zero-width
592 * geometric outline of a shape is included in the area to be painted.
593 */
594 fill?: CSSWideKeyword | any;
595
596 /**
597 * SVG: Specifies the opacity of the color or the content the current object is filled with.
598 * See SVG 1.1 https://www.w3.org/TR/SVG/painting.html#FillOpacityProperty
599 */
600 fillOpacity?: CSSWideKeyword | number;
601
602 /**
603 * The ‘fill-rule’ property indicates the algorithm which is to be used to determine what
604 * parts of the canvas are included inside the shape. For a simple, non-intersecting path,
605 * it is intuitively clear what region lies "inside"; however, for a more complex path,
606 * such as a path that intersects itself or where one subpath encloses another, the
607 * interpretation of "inside" is not so obvious.
608 * The ‘fill-rule’ property provides two options for how the inside of a shape is determined:
609 */
610 fillRule?: CSSWideKeyword | any;
611
612 /**
613 * Applies various image processing effects. This property is largely unsupported.
614 * See Compatibility section for more information.
615 */
616 filter?: CSSWideKeyword | any;
617
618 /** Shorthand for `flex-grow`, `flex-shrink`, and `flex-basis`. */
619 flex?: CSSWideKeyword | number | string;
620
621 /**
622 * @deprecated Do not use. This property has been renamed to align-items.
623 * Specifies the alignment (perpendicular to the layout axis defined by the flex-direction
624 * property) of child elements of the object.
625 */
626 flexAlign?: CSSWideKeyword | any;
627
628 /**
629 * The `flex-basis` CSS property describes the initial main size of the flex item before any
630 * free space is distributed according to the flex factors described in the flex property
631 * (`flex-grow` and `flex-shrink`).
632 */
633 flexBasis?: CSSWideKeyword | any;
634
635 /**
636 * The `flex-direction` CSS property describes how flex items are placed in the flex container,
637 * by setting the direction of the flex container’s main axis.
638 */
639 flexDirection?: CSSWideKeyword | "row" | "row-reverse" | "column" | "column-reverse";
640
641 /**
642 * The `flex-flow` CSS property defines the flex container’s main and cross axis. It is a
643 * shorthand property for the `flex-direction` and `flex-wrap properties`.
644 */
645 flexFlow?: CSSWideKeyword | string;
646
647 /**
648 * Specifies the flex grow factor of a flex item.
649 * See CSS flex-grow property https://drafts.csswg.org/css-flexbox-1/#flex-grow-property
650 */
651 flexGrow?: CSSWideKeyword | number;
652
653 /**
654 * Gets or sets a value that specifies the ordinal group that a flexbox element belongs to.
655 * This ordinal value identifies the display order for the group.
656 */
657 flexOrder?: CSSWideKeyword | any;
658
659 /**
660 * Specifies the flex shrink factor of a flex item.
661 * See CSS flex-shrink property https://drafts.csswg.org/css-flexbox-1/#flex-shrink-property
662 */
663 flexShrink?: CSSWideKeyword | number;
664
665 /**
666 * Specifies whether flex items are forced into a single line or can be wrapped onto multiple
667 * lines. If wrapping is allowed, this property also enables you to control the direction in
668 * which lines are stacked.
669 * See CSS flex-wrap property https://drafts.csswg.org/css-flexbox-1/#flex-wrap-property
670 */
671 flexWrap?: CSSWideKeyword | "nowrap" | "wrap" | "wrap-reverse";
672
673 /**
674 * Elements which have the style float are floated horizontally. These elements can move as far
675 * to the left or right of the containing element. All elements after the floating element will
676 * flow around it, but elements before the floating element are not impacted. If several
677 * floating elements are placed after each other, they will float next to each other as long
678 * as there is room.
679 */
680 float?: CSSWideKeyword | any;
681
682 /**
683 * Flows content from a named flow (specified by a corresponding flow-into) through selected
684 * elements to form a dynamic chain of layout regions.
685 */
686 flowFrom?: CSSWideKeyword | any;
687
688 /**
689 * The font property is shorthand that allows you to do one of two things: you can either set
690 * up six of the most mature font properties in one line, or you can set one of a choice of
691 * keywords to adopt a system font setting.
692 */
693 font?: CSSWideKeyword | any;
694
695 /**
696 * The font-family property allows one or more font family names and/or generic family names
697 * to be specified for usage on the selected element(s)' text. The browser then goes through
698 * the list; for each character in the selection it applies the first font family that has an
699 * available glyph for that character.
700 */
701 fontFamily?: CSSWideKeyword | any;
702
703 /**
704 * The font-kerning property allows contextual adjustment of inter-glyph spacing, i.e. the
705 * spaces between the characters in text. This property controls <bold>metric kerning</bold> -
706 * that utilizes adjustment data contained in the font. Optical Kerning is not supported as yet.
707 */
708 fontKerning?: CSSWideKeyword | any;
709
710 /**
711 * Specifies the size of the font. Used to compute em and ex units.
712 * See CSS 3 font-size property https://www.w3.org/TR/css-fonts-3/#propdef-font-size
713 */
714 fontSize?: CSSWideKeyword |
715 "xx-small" | "x-small" | "small" | "medium" | "large" | "x-large" | "xx-large" |
716 "larger" | "smaller" |
717 CSSLength | CSSPercentage;
718
719 /**
720 * The font-size-adjust property adjusts the font-size of the fallback fonts defined with
721 * font-family, so that the x-height is the same no matter what font is used. This preserves
722 * the readability of the text when fallback happens.
723 * @see https://www.w3.org/TR/css-fonts-3/#propdef-font-size-adjust
724 */
725 fontSizeAdjust?: CSSWideKeyword | "none" | number;
726
727 /**
728 * Allows you to expand or condense the widths for a normal, condensed, or expanded font face.
729 * See CSS 3 font-stretch property https://drafts.csswg.org/css-fonts-3/#propdef-font-stretch
730 */
731 fontStretch?: CSSWideKeyword |
732 "normal" | "ultra-condensed" | "extra-condensed" | "condensed" | "semi-condensed" |
733 "semi-expanded" | "expanded" | "extra-expanded" | "ultra-expanded";
734
735 /**
736 * The font-style property allows normal, italic, or oblique faces to be selected. Italic
737 * forms are generally cursive in nature while oblique faces are typically sloped versions
738 * of the regular face. Oblique faces can be simulated by artificially sloping the glyphs of
739 * the regular face.
740 * See CSS 3 font-style property https://www.w3.org/TR/css-fonts-3/#propdef-font-style
741 */
742 fontStyle?: CSSWideKeyword | "normal" | "italic" | "oblique";
743
744 /**
745 * This value specifies whether the user agent is allowed to synthesize bold or oblique font
746 * faces when a font family lacks bold or italic faces.
747 */
748 fontSynthesis?: CSSWideKeyword | any;
749
750 /**
751 * The font-variant property enables you to select the small-caps font within a font family.
752 */
753 fontVariant?: CSSWideKeyword | any;
754
755 /**
756 * Fonts can provide alternate glyphs in addition to default glyph for a character. This
757 * property provides control over the selection of these alternate glyphs.
758 */
759 fontVariantAlternates?: CSSWideKeyword | any;
760
761 /**
762 * Specifies the weight or boldness of the font.
763 * @see https://www.w3.org/TR/css-fonts-3/#propdef-font-weight
764 */
765 fontWeight?: CSSWideKeyword | "normal" | "bold" | "bolder" | "lighter" | 100 | 200 |
766 300 | 400 | 500 | 600 | 700 | 800 | 900;
767
768 /**
769 * Lays out one or more grid items bound by 4 grid lines. Shorthand for setting
770 * `grid-column-start`, `grid-column-end`, `grid-row-start`, and `grid-row-end`
771 * in a single declaration.
772 */
773 gridArea?: CSSWideKeyword | any;
774
775 /**
776 * Controls a grid item’s placement in a grid area, particularly grid position and a grid span.
777 * Shorthand for setting grid-column-start and grid-column-end in a single declaration.
778 */
779 gridColumn?: CSSWideKeyword | any;
780
781 /**
782 * Controls a grid item’s placement in a grid area as well as grid position and a grid span.
783 * The grid-column-end property (with grid-row-start, grid-row-end, and grid-column-start)
784 * determines a grid item’s placement by specifying the grid lines of a grid item’s grid area.
785 */
786 gridColumnEnd?: CSSWideKeyword | any;
787
788 /**
789 * Determines a grid item’s placement by specifying the starting grid lines of a grid item’s
790 * grid area. A grid item’s placement in a grid area consists of a grid position and a grid
791 * span. See also ( grid-row-start, grid-row-end, and grid-column-end)
792 */
793 gridColumnStart?: CSSWideKeyword | any;
794
795 /**
796 * Gets or sets a value that indicates which row an element within a Grid should appear in.
797 * Shorthand for setting grid-row-start and grid-row-end in a single declaration.
798 */
799 gridRow?: CSSWideKeyword | any;
800
801 /**
802 * Determines a grid item’s placement by specifying the block-end. A grid item’s placement in a
803 * grid area consists of a grid position and a grid span. The grid-row-end property (with
804 * grid-row-start, grid-column-start, and grid-column-end) determines a grid item’s placement
805 * by specifying the grid lines of a grid item’s grid area.
806 */
807 gridRowEnd?: CSSWideKeyword | any;
808
809 /**
810 * Specifies a row position based upon an integer location, string value, or desired row size.
811 * css/properties/grid-row is used as short-hand for grid-row-position and grid-row-position
812 */
813 gridRowPosition?: CSSWideKeyword | any;
814
815 gridRowSpan?: CSSWideKeyword | any;
816
817 /**
818 * Specifies named grid areas which are not associated with any particular grid item, but can
819 * be referenced from the grid-placement properties. The syntax of the grid-template-areas
820 * property also provides a visualization of the structure of the grid, making the overall
821 * layout of the grid container easier to understand.
822 */
823 gridTemplateAreas?: CSSWideKeyword | any;
824
825 /**
826 * Specifies (with grid-template-rows) the line names and track sizing functions of the grid.
827 * Each sizing function can be specified as a length, a percentage of the grid container’s size,
828 * a measurement of the contents occupying the column or row, or a fraction of the free space
829 * in the grid.
830 */
831 gridTemplateColumns?: CSSWideKeyword | any;
832
833 /**
834 * Specifies (with grid-template-columns) the line names and track sizing functions of the grid.
835 * Each sizing function can be specified as a length, a percentage of the grid container’s size,
836 * a measurement of the contents occupying the column or row, or a fraction of the free space in
837 * the grid.
838 */
839 gridTemplateRows?: CSSWideKeyword | any;
840
841 /**
842 * Sets the height of an element. The content area of the element height does not include the
843 * padding, border, and margin of the element.
844 */
845 height?: CSSWideKeyword | any;
846
847 /**
848 * Specifies the minimum number of characters in a hyphenated word
849 */
850 hyphenateLimitChars?: CSSWideKeyword | any;
851
852 /**
853 * Indicates the maximum number of successive hyphenated lines in an element. The ‘no-limit’
854 * value means that there is no limit.
855 */
856 hyphenateLimitLines?: CSSWideKeyword | any;
857
858 /**
859 * Specifies the maximum amount of trailing whitespace (before justification) that may be left
860 * in a line before hyphenation is triggered to pull part of a word from the next line back
861 * up into the current one.
862 */
863 hyphenateLimitZone?: CSSWideKeyword | any;
864
865 /**
866 * Specifies whether or not words in a sentence can be split by the use of a manual or
867 * automatic hyphenation mechanism.
868 */
869 hyphens?: CSSWideKeyword | any;
870
871 imeMode?: CSSWideKeyword | any;
872
873 /**
874 * Defines how the browser distributes space between and around flex items
875 * along the main-axis of their container.
876 * @see https://www.w3.org/TR/css-flexbox-1/#justify-content-property
877 */
878 justifyContent?: CSSWideKeyword | "flex-start" | "flex-end" | "center" | "space-between" |
879 "space-around" | "space-evenly";
880
881 layoutGrid?: CSSWideKeyword | any;
882
883 layoutGridChar?: CSSWideKeyword | any;
884
885 layoutGridLine?: CSSWideKeyword | any;
886
887 layoutGridMode?: CSSWideKeyword | any;
888
889 layoutGridType?: CSSWideKeyword | any;
890
891 /**
892 * Sets the left edge of an element
893 */
894 left?: CSSWideKeyword | any;
895
896 /**
897 * The letter-spacing CSS property specifies the spacing behavior between text characters.
898 */
899 letterSpacing?: CSSWideKeyword | any;
900
901 /**
902 * @deprecated
903 * Gets or sets line-breaking rules for text in selected languages such as Japanese,
904 * Chinese, and Korean.
905 */
906 lineBreak?: CSSWideKeyword | any;
907
908 lineClamp?: CSSWideKeyword | number;
909
910 /**
911 * Specifies the height of an inline block level element.
912 * @see https://www.w3.org/TR/CSS21/visudet.html#propdef-line-height
913 */
914 lineHeight?: CSSWideKeyword | "normal" | number | CSSLength | CSSPercentage;
915
916 /**
917 * Shorthand property that sets the list-style-type, list-style-position and list-style-image
918 * properties in one declaration.
919 */
920 listStyle?: CSSWideKeyword | any;
921
922 /**
923 * This property sets the image that will be used as the list item marker. When the image is
924 * available, it will replace the marker set with the 'list-style-type' marker. That also
925 * means that if the image is not available, it will show the style specified by
926 * list-style-property
927 */
928 listStyleImage?: CSSWideKeyword | any;
929
930 /**
931 * Specifies if the list-item markers should appear inside or outside the content flow.
932 */
933 listStylePosition?: CSSWideKeyword | any;
934
935 /**
936 * Specifies the type of list-item marker in a list.
937 */
938 listStyleType?: CSSWideKeyword | any;
939
940 /**
941 * The margin property is shorthand to allow you to set all four margins of an element at once.
942 * Its equivalent longhand properties are margin-top, margin-right, margin-bottom and
943 * margin-left. Negative values are also allowed.
944 */
945 margin?: CSSWideKeyword | any;
946
947 /**
948 * margin-bottom sets the bottom margin of an element.
949 */
950 marginBottom?: CSSWideKeyword | any;
951
952 /**
953 * margin-left sets the left margin of an element.
954 */
955 marginLeft?: CSSWideKeyword | any;
956
957 /**
958 * margin-right sets the right margin of an element.
959 */
960 marginRight?: CSSWideKeyword | any;
961
962 /**
963 * margin-top sets the top margin of an element.
964 */
965 marginTop?: CSSWideKeyword | any;
966
967 /**
968 * The marquee-direction determines the initial direction in which the marquee content moves.
969 */
970 marqueeDirection?: CSSWideKeyword | any;
971
972 /**
973 * The 'marquee-style' property determines a marquee’s scrolling behavior.
974 */
975 marqueeStyle?: CSSWideKeyword | any;
976
977 /**
978 * This property is shorthand for setting mask-image, mask-mode, mask-repeat, mask-position,
979 * mask-clip, mask-origin, mask-composite and mask-size. Omitted values are set to their
980 * original properties’ initial values.
981 */
982 mask?: CSSWideKeyword | any;
983
984 /**
985 * This property is shorthand for setting mask-border-source, mask-border-slice,
986 * mask-border-width, mask-border-outset, and mask-border-repeat. Omitted values are set to
987 * their original properties' initial values.
988 */
989 maskBorder?: CSSWideKeyword | any;
990
991 /**
992 * This property specifies how the images for the sides and the middle part of the mask image
993 * are scaled and tiled. The first keyword applies to the horizontal sides, the second one
994 * applies to the vertical ones. If the second keyword is absent, it is assumed to be the
995 * same as the first, similar to the CSS border-image-repeat property.
996 */
997 maskBorderRepeat?: CSSWideKeyword | any;
998
999 /**
1000 * This property specifies inward offsets from the top, right, bottom, and left edges of the
1001 * mask image, dividing it into nine regions: four corners, four edges, and a middle. The
1002 * middle image part is discarded and treated as fully transparent black unless the fill
1003 * keyword is present. The four values set the top, right, bottom and left offsets in that
1004 * order, similar to the CSS border-image-slice property.
1005 */
1006 maskBorderSlice?: CSSWideKeyword | any;
1007
1008 /**
1009 * Specifies an image to be used as a mask. An image that is empty, fails to download, is
1010 * non-existent, or cannot be displayed is ignored and does not mask the element.
1011 */
1012 maskBorderSource?: CSSWideKeyword | any;
1013
1014 /**
1015 * This property sets the width of the mask box image, similar to the CSS `border-image-width`
1016 * property.
1017 */
1018 maskBorderWidth?: CSSWideKeyword | any;
1019
1020 /**
1021 * Determines the mask painting area, which defines the area that is affected by the mask.
1022 * The painted content of an element may be restricted to this area.
1023 */
1024 maskClip?: CSSWideKeyword | any;
1025
1026 /**
1027 * For elements rendered as a single box, specifies the mask positioning area. For elements
1028 * rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages)
1029 * specifies which boxes box-decoration-break operates on to determine the mask positioning
1030 * area(s).
1031 */
1032 maskOrigin?: CSSWideKeyword | any;
1033
1034 /**
1035 * This property must not be used. It is no longer included in any standard or standard track
1036 * specification, nor is it implemented in any browser. It is only used when the
1037 * `text-align-last` property is set to size. It controls allowed adjustments of `font-size` to
1038 * fit line content.
1039 */
1040 maxFontSize?: CSSWideKeyword | any;
1041
1042 /**
1043 * Sets the maximum height for an element. It prevents the height of the element to exceed the
1044 * specified value. If `min-height` is specified and is greater than `max-height`, `max-height`
1045 * is overridden.
1046 */
1047 maxHeight?: CSSWideKeyword | any;
1048
1049 /**
1050 * Sets the maximum width for an element. It limits the width property to be larger than the
1051 * value specified in max-width.
1052 */
1053 maxWidth?: CSSWideKeyword | any;
1054
1055 /**
1056 * Sets the minimum height for an element. It prevents the height of the element to be smaller
1057 * than the specified value. The value of min-height overrides both max-height and height.
1058 */
1059 minHeight?: CSSWideKeyword | any;
1060
1061 /**
1062 * Sets the minimum width of an element. It limits the width property to be not smaller than
1063 * the value specified in min-width.
1064 */
1065 minWidth?: CSSWideKeyword | any;
1066
1067 /**
1068 * Specifies the transparency of an element.
1069 * @see https://drafts.csswg.org/css-color-3/#opacity
1070 */
1071 opacity?: CSSWideKeyword | number;
1072
1073 /**
1074 * Specifies the order used to lay out flex items in their flex container.
1075 * Elements are laid out in the ascending order of the order value.
1076 * @see https://drafts.csswg.org/css-flexbox-1/#order-property
1077 */
1078 order?: CSSWideKeyword | number;
1079
1080 /**
1081 * In paged media, this property defines the minimum number of lines in
1082 * a block container that must be left at the bottom of the page.
1083 * @see https://drafts.csswg.org/css-break-3/#widows-orphans
1084 */
1085 orphans?: CSSWideKeyword | number;
1086
1087 /**
1088 * The CSS outline property is a shorthand property for setting one or more of the individual
1089 * outline properties outline-style, outline-width and outline-color in a single rule. In most
1090 * cases the use of this shortcut is preferable and more convenient.
1091 * Outlines differ from borders in the following ways:
1092 *
1093 * - Outlines do not take up space, they are drawn above the content.
1094 * - Outlines may be non-rectangular. They are rectangular in Gecko/Firefox.
1095 * Internet Explorer attempts to place the smallest contiguous outline around all
1096 * elements or shapes that are indicated to have an outline. Opera draws a
1097 * non-rectangular shape around a construct.
1098 */
1099 outline?: CSSWideKeyword | any;
1100
1101 /**
1102 * The outline-color property sets the color of the outline of an element. An outline is a
1103 * line that is drawn around elements, outside the border edge, to make the element stand out.
1104 */
1105 outlineColor?: CSSWideKeyword | any;
1106
1107 /**
1108 * The outline-offset property offsets the outline and draw it beyond the border edge.
1109 */
1110 outlineOffset?: CSSWideKeyword | any;
1111
1112 /**
1113 * The overflow property controls how extra content exceeding the bounding box of an element
1114 * is rendered. It can be used in conjunction with an element that has a fixed width and
1115 * height, to eliminate text-induced page distortion.
1116 */
1117 overflow?: CSSWideKeyword | "auto" | "hidden" | "scroll" | "visible";
1118
1119 /**
1120 * Specifies the preferred scrolling methods for elements that overflow.
1121 */
1122 overflowStyle?: CSSWideKeyword | any;
1123
1124 /**
1125 * Controls how extra content exceeding the x-axis of the bounding box of an element is
1126 * rendered.
1127 */
1128 overflowX?: CSSWideKeyword | "auto" | "hidden" | "scroll" | "visible";
1129
1130 /**
1131 * Controls how extra content exceeding the y-axis of the bounding box of an element is
1132 * rendered.
1133 */
1134 overflowY?: CSSWideKeyword | "auto" | "hidden" | "scroll" | "visible";
1135
1136 /**
1137 * The padding optional CSS property sets the required padding space on one to four sides of
1138 * an element. The padding area is the space between an element and its border. Negative
1139 * values are not allowed but decimal values are permitted. The element size is treated as
1140 * fixed, and the content of the element shifts toward the center as padding is increased.
1141 * The padding property is a shorthand to avoid setting each side separately
1142 * (padding-top, padding-right, padding-bottom, padding-left).
1143 */
1144 padding?: CSSWideKeyword | any;
1145
1146 /**
1147 * The padding-bottom CSS property of an element sets the padding space required on the
1148 * bottom of an element. The padding area is the space between the content of the element
1149 * and its border. Contrary to margin-bottom values, negative values of padding-bottom
1150 * are invalid.
1151 */
1152 paddingBottom?: CSSWideKeyword | any;
1153
1154 /**
1155 * The padding-left CSS property of an element sets the padding space required on the left
1156 * side of an element. The padding area is the space between the content of the element and
1157 * its border. Contrary to margin-left values, negative values of padding-left are invalid.
1158 */
1159 paddingLeft?: CSSWideKeyword | any;
1160
1161 /**
1162 * The padding-right CSS property of an element sets the padding space required on the
1163 * right side of an element. The padding area is the space between the content of the
1164 * element and its border. Contrary to margin-right values, negative values of
1165 * padding-right are invalid.
1166 */
1167 paddingRight?: CSSWideKeyword | any;
1168
1169 /**
1170 * The padding-top CSS property of an element sets the padding space required on the top of
1171 * an element. The padding area is the space between the content of the element and its
1172 * border. Contrary to margin-top values, negative values of padding-top are invalid.
1173 */
1174 paddingTop?: CSSWideKeyword | any;
1175
1176 /**
1177 * The `page-break-after` property is supported in all major browsers. With CSS3,
1178 * `page-break-*` properties are only aliases of the `break-*` properties. The CSS3
1179 * Fragmentation spec defines breaks for all CSS box fragmentation.
1180 */
1181 pageBreakAfter?: CSSWideKeyword | any;
1182
1183 /**
1184 * The page-break-before property sets the page-breaking behavior before an element.
1185 * With CSS3, page-break-* properties are only aliases of the break-* properties.
1186 * The CSS3 Fragmentation spec defines breaks for all CSS box fragmentation.
1187 */
1188 pageBreakBefore?: CSSWideKeyword | any;
1189
1190 /**
1191 * Sets the page-breaking behavior inside an element. With CSS3, page-break-* properties
1192 * are only aliases of the break-* properties. The CSS3 Fragmentation spec defines breaks
1193 * for all CSS box fragmentation.
1194 */
1195 pageBreakInside?: CSSWideKeyword | any;
1196
1197 /**
1198 * The pause property determines how long a speech media agent should pause before and after
1199 * presenting an element. It is a shorthand for the pause-before and pause-after properties.
1200 */
1201 pause?: CSSWideKeyword | any;
1202
1203 /**
1204 * The pause-after property determines how long a speech media agent should pause after
1205 * presenting an element. It may be replaced by the shorthand property pause, which sets
1206 * pause time before and after.
1207 */
1208 pauseAfter?: CSSWideKeyword | any;
1209
1210 /**
1211 * The pause-before property determines how long a speech media agent should pause before
1212 * presenting an element. It may be replaced by the shorthand property pause, which sets
1213 * pause time before and after.
1214 */
1215 pauseBefore?: CSSWideKeyword | any;
1216
1217 /**
1218 * The perspective property defines how far an element is placed from the view on the z-axis,
1219 * from the screen to the viewer.
1220 * Perspective defines how an object is viewed. In graphic arts, perspective is the
1221 * representation on a flat surface of what the viewer’s eye would see in a 3D space.
1222 * (See Wikipedia for more information about graphical perspective and for related
1223 * illustrations.)
1224 * The illusion of perspective on a flat surface, such as a computer screen, is created
1225 * by projecting points on the flat surface as they would appear if the flat surface were
1226 * a window through which the viewer was looking at the object. In discussion of virtual
1227 * environments, this flat surface is called a projection plane.
1228 */
1229 perspective?: CSSWideKeyword | any;
1230
1231 /**
1232 * The perspective-origin property establishes the origin for the perspective property.
1233 * It effectively sets the X and Y position at which the viewer appears to be looking at the
1234 * children of the element.
1235 * When used with perspective, perspective-origin changes the appearance of an object, as
1236 * if a viewer were looking at it from a different origin. An object appears differently if
1237 * a viewer is looking directly at it versus looking at it from below, above, or from the
1238 * side. Thus, the perspective-origin is like a vanishing point.
1239 * The default value of perspective-origin is 50% 50%. This displays an object as if the
1240 * viewer’s eye were positioned directly at the center of the screen, both top-to-bottom and
1241 * left-to-right. A value of 0% 0% changes the object as if the viewer was looking toward
1242 * the top left angle. A value of 100% 100% changes the appearance as if viewed toward the
1243 * bottom right angle.
1244 */
1245 perspectiveOrigin?: CSSWideKeyword | any;
1246
1247 /**
1248 * The pointer-events property allows you to control whether an element can be the target for
1249 * the pointing device (e.g, mouse, pen) events.
1250 */
1251 pointerEvents?: CSSWideKeyword | any;
1252
1253 /**
1254 * The position property controls the type of positioning used by an element within its parent
1255 * elements. The effect of the position property depends on a lot of factors, for example
1256 * the position property of parent elements.
1257 */
1258 position?: CSSWideKeyword | "static" | "relative" | "absolute" | "fixed" | "sticky";
1259
1260 /**
1261 * Obsolete: unsupported.
1262 * This property determines whether or not a full-width punctuation mark character should
1263 * be trimmed if it appears at the beginning of a line, so that its “ink” lines up with the
1264 * first glyph in the line above and below.
1265 */
1266 punctuationTrim?: CSSWideKeyword | any;
1267
1268 /**
1269 * Sets the type of quotation marks for embedded quotations.
1270 */
1271 quotes?: CSSWideKeyword | any;
1272
1273 /**
1274 * Controls whether the last region in a chain displays additional ‘overset’ content according
1275 * its default overflow property, or if it displays a fragment of content as if it were
1276 * flowing into a subsequent region.
1277 */
1278 regionFragment?: CSSWideKeyword | any;
1279
1280 /**
1281 * The rest-after property determines how long a speech media agent should pause after
1282 * presenting an element’s main content, before presenting that element’s exit cue sound.
1283 * It may be replaced by the shorthand property rest, which sets rest time before and after.
1284 */
1285 restAfter?: CSSWideKeyword | any;
1286
1287 /**
1288 * The rest-before property determines how long a speech media agent should pause after
1289 * presenting an intro cue sound for an element, before presenting that element’s main
1290 * content. It may be replaced by the shorthand property rest, which sets rest time
1291 * before and after.
1292 */
1293 restBefore?: CSSWideKeyword | any;
1294
1295 /**
1296 * Specifies the position an element in relation to the right side of the containing element.
1297 */
1298 right?: CSSWideKeyword | any;
1299
1300 rubyAlign?: CSSWideKeyword | any;
1301
1302 rubyPosition?: CSSWideKeyword | any;
1303
1304 /**
1305 * Defines the alpha channel threshold used to extract a shape from an image. Can be
1306 * thought of as a “minimum opacity” threshold; that is, a value of 0.5 means that the shape
1307 * will enclose all the pixels that are more than 50% opaque.
1308 */
1309 shapeImageThreshold?: CSSWideKeyword | any;
1310
1311 /**
1312 * A future level of CSS Shapes will define a shape-inside property, which will define a shape
1313 * to wrap content within the element. See [Editor’s Draft](http://dev.w3.org/csswg/css-shapes/)
1314 * and CSSWG wiki page on [next-level plans](http://wiki.csswg.org/spec/css-shapes)
1315 */
1316 shapeInside?: CSSWideKeyword | any;
1317
1318 /**
1319 * Adds a margin to a shape-outside. In effect, defines a new shape that is the smallest
1320 * contour around all the points that are the shape-margin distance outward perpendicular to
1321 * each point on the underlying shape. For points where a perpendicular direction is not
1322 * defined (e.g., a triangle corner), takes all points on a circle centered at the point
1323 * and with a radius of the shape-margin distance. This property accepts only non-negative
1324 * values.
1325 */
1326 shapeMargin?: CSSWideKeyword | any;
1327
1328 /**
1329 * Declares a shape around which text should be wrapped, with possible modifications from the
1330 * shape-margin property. The shape defined by shape-outside and shape-margin changes the
1331 * geometry of a float element’s float area.
1332 */
1333 shapeOutside?: CSSWideKeyword | any;
1334
1335 /**
1336 * The speak property determines whether or not a speech synthesizer will read aloud the
1337 * contents of an element.
1338 */
1339 speak?: CSSWideKeyword | any;
1340
1341 /**
1342 * The speak-as property determines how the speech synthesizer interprets the content: words
1343 * as whole words or as a sequence of letters, numbers as a numerical value or a sequence of
1344 * digits, punctuation as pauses in speech or named punctuation characters.
1345 */
1346 speakAs?: CSSWideKeyword | any;
1347
1348 /**
1349 * SVG: Specifies the opacity of the outline on the current object.
1350 * @see https://www.w3.org/TR/SVG/painting.html#StrokeOpacityProperty
1351 */
1352 strokeOpacity?: CSSWideKeyword | number;
1353
1354 /**
1355 * SVG: Specifies the width of the outline on the current object.
1356 * @see https://www.w3.org/TR/SVG/painting.html#StrokeWidthProperty
1357 */
1358 strokeWidth?: CSSWideKeyword | CSSPercentage | CSSLength;
1359
1360 /**
1361 * The tab-size CSS property is used to customize the width of a tab (U+0009) character.
1362 */
1363 tabSize?: CSSWideKeyword | any;
1364
1365 /**
1366 * The 'table-layout' property controls the algorithm used to lay out the table cells, rows,
1367 * and columns.
1368 */
1369 tableLayout?: CSSWideKeyword | any;
1370
1371 /**
1372 * The text-align CSS property describes how inline content like text is aligned in its parent
1373 * block element. text-align does not control the alignment of block elements itself, only
1374 * their inline content.
1375 */
1376 textAlign?: CSSWideKeyword | any;
1377
1378 /**
1379 * The text-align-last CSS property describes how the last line of a block element or a line
1380 * before line break is aligned in its parent block element.
1381 */
1382 textAlignLast?: CSSWideKeyword | any;
1383
1384 /**
1385 * The text-decoration CSS property is used to set the text formatting to underline, overline,
1386 * line-through or blink.
1387 * underline and overline decorations are positioned under the text, line-through over it.
1388 */
1389 textDecoration?: CSSWideKeyword | any;
1390
1391 /**
1392 * Sets the color of any text decoration, such as underlines, overlines, and strike-through.
1393 */
1394 textDecorationColor?: CSSWideKeyword | any;
1395
1396 /**
1397 * Sets what kind of line decorations are added to an element, such as underlines, overlines,
1398 * etc.
1399 */
1400 textDecorationLine?: CSSWideKeyword | any;
1401
1402 textDecorationLineThrough?: CSSWideKeyword | any;
1403
1404 textDecorationNone?: CSSWideKeyword | any;
1405
1406 textDecorationOverline?: CSSWideKeyword | any;
1407
1408 /**
1409 * Specifies what parts of an element’s content are skipped over when applying any text
1410 * decoration.
1411 */
1412 textDecorationSkip?: CSSWideKeyword | any;
1413
1414 /**
1415 * This property specifies the style of the text decoration line drawn on the specified
1416 * element. The intended meaning for the values are the same as those of the
1417 * `border-style-properties`.
1418 */
1419 textDecorationStyle?: CSSWideKeyword | any;
1420
1421 textDecorationUnderline?: CSSWideKeyword | any;
1422
1423 /**
1424 * The text-emphasis property will apply special emphasis marks to the elements text. Slightly
1425 * similar to the text-decoration property only that this property can have affect on the
1426 * line-height. It also is noted that this is shorthand for text-emphasis-style and for
1427 * text-emphasis-color.
1428 */
1429 textEmphasis?: CSSWideKeyword | any;
1430
1431 /**
1432 * The text-emphasis-color property specifies the foreground color of the emphasis marks.
1433 */
1434 textEmphasisColor?: CSSWideKeyword | any;
1435
1436 /**
1437 * The text-emphasis-style property applies special emphasis marks to an element’s text.
1438 */
1439 textEmphasisStyle?: CSSWideKeyword | any;
1440
1441 /**
1442 * This property helps determine an inline box’s block-progression dimension, derived from the
1443 * text-height and font-size properties for non-replaced elements, the height or the width for
1444 * replaced elements, and the stacked block-progression dimension for inline-block elements.
1445 * The block-progression dimension determines the position of the padding, border and margin
1446 * for the element.
1447 */
1448 textHeight?: CSSWideKeyword | any;
1449
1450 /**
1451 * Specifies the amount of space horizontally that should be left on the first line of the
1452 * text of an element. This horizontal spacing is at the beginning of the first line and is
1453 * in respect to the left edge of the containing block box.
1454 */
1455 textIndent?: CSSWideKeyword | any;
1456
1457 textJustifyTrim?: CSSWideKeyword | any;
1458
1459 textKashidaSpace?: CSSWideKeyword | any;
1460
1461 /**
1462 * @deprecated
1463 * The `text-line-through` property is a shorthand property for `text-line-through-style`,
1464 * `text-line-through-color` and `text-line-through-mode`. (Considered obsolete; use
1465 * `text-decoration` instead.)
1466 */
1467 textLineThrough?: CSSWideKeyword | any;
1468
1469 /**
1470 * Specifies the line colors for the line-through text decoration.
1471 * (Considered obsolete; use text-decoration-color instead.)
1472 */
1473 textLineThroughColor?: CSSWideKeyword | any;
1474
1475 /**
1476 * Sets the mode for the line-through text decoration, determining whether the text decoration
1477 * affects the space characters or not.
1478 * (Considered obsolete; use text-decoration-skip instead.)
1479 */
1480 textLineThroughMode?: CSSWideKeyword | any;
1481
1482 /**
1483 * Specifies the line style for line-through text decoration.
1484 * (Considered obsolete; use text-decoration-style instead.)
1485 */
1486 textLineThroughStyle?: CSSWideKeyword | any;
1487
1488 /**
1489 * Specifies the line width for the line-through text decoration.
1490 */
1491 textLineThroughWidth?: CSSWideKeyword | any;
1492
1493 /**
1494 * The `text-overflow` shorthand CSS property determines how overflowed content that is not
1495 * displayed is signaled to the users. It can be clipped, display an ellipsis (`…`, U+2026
1496 * HORIZONTAL ELLIPSIS) or a Web author-defined string. It covers the two long-hand properties
1497 * `text-overflow-mode` and `text-overflow-ellipsis`.
1498 */
1499 textOverflow?: CSSWideKeyword | any;
1500
1501 /**
1502 * The `text-overline` property is the shorthand for the `text-overline-style`,
1503 * `text-overline-width`, `text-overline-color`, and `text-overline-mode` properties.
1504 */
1505 textOverline?: CSSWideKeyword | any;
1506
1507 /**
1508 * Specifies the line color for the overline text decoration.
1509 */
1510 textOverlineColor?: CSSWideKeyword | any;
1511
1512 /**
1513 * Sets the mode for the overline text decoration, determining whether the text decoration
1514 * affects the space characters or not.
1515 */
1516 textOverlineMode?: CSSWideKeyword | any;
1517
1518 /**
1519 * Specifies the line style for overline text decoration.
1520 */
1521 textOverlineStyle?: CSSWideKeyword | any;
1522
1523 /**
1524 * Specifies the line width for the overline text decoration.
1525 */
1526 textOverlineWidth?: CSSWideKeyword | any;
1527
1528 /**
1529 * The text-rendering CSS property provides information to the browser about how to optimize
1530 * when rendering text. Options are: legibility, speed or geometric precision.
1531 */
1532 textRendering?: CSSWideKeyword | any;
1533
1534 /**
1535 * Obsolete: unsupported.
1536 */
1537 textScript?: CSSWideKeyword | any;
1538
1539 /**
1540 * The CSS text-shadow property applies one or more drop shadows to the text and
1541 * <text-decorations> of an element. Each shadow is specified as an offset from the text,
1542 * along with optional color and blur radius values.
1543 */
1544 textShadow?: CSSWideKeyword | any;
1545
1546 /**
1547 * This property transforms text for styling purposes. (It has no effect on the underlying
1548 * content.)
1549 */
1550 textTransform?: CSSWideKeyword | any;
1551
1552 /**
1553 * @unsupported
1554 * This property will add a underline position value to the element that has an underline
1555 * defined.
1556 */
1557 textUnderlinePosition?: CSSWideKeyword | any;
1558
1559 /**
1560 * After review this should be replaced by text-decoration should it not?
1561 * This property will set the underline style for text with a line value for underline,
1562 * overline, and line-through.
1563 */
1564 textUnderlineStyle?: CSSWideKeyword | any;
1565
1566 /**
1567 * This property specifies how far an absolutely positioned box’s top margin edge is offset
1568 * below the top edge of the box’s containing block. For relatively positioned boxes, the
1569 * offset is with respect to the top edges of the box itself (i.e., the box is given a
1570 * position in the normal flow, then offset from that position according to these properties).
1571 */
1572 top?: CSSWideKeyword | any;
1573
1574 /**
1575 * Determines whether touch input may trigger default behavior supplied by the user agent,
1576 * such as panning or zooming.
1577 */
1578 touchAction?: CSSWideKeyword | any;
1579
1580 /**
1581 * CSS transforms allow elements styled with CSS to be transformed in two-dimensional or
1582 * three-dimensional space. Using this property, elements can be translated, rotated, scaled,
1583 * and skewed. The value list may consist of 2D and/or 3D transform values.
1584 */
1585 transform?: CSSWideKeyword | any;
1586
1587 /**
1588 * This property defines the origin of the transformation axes relative to the element to
1589 * which the transformation is applied.
1590 */
1591 transformOrigin?: CSSWideKeyword | any;
1592
1593 /**
1594 * This property allows you to define the relative position of the origin of the transformation
1595 * grid along the z-axis.
1596 */
1597 transformOriginZ?: CSSWideKeyword | any;
1598
1599 /**
1600 * This property specifies how nested elements are rendered in 3D space relative to their
1601 * parent.
1602 */
1603 transformStyle?: CSSWideKeyword | any;
1604
1605 /**
1606 * The `transition` CSS property is a shorthand property for `transition-property`,
1607 * `transition-duration`, `transition-timing-function`, and `transition-delay`. It allows to
1608 * define the transition between two states of an element.
1609 */
1610 transition?: CSSWideKeyword | any;
1611
1612 /**
1613 * Defines when the transition will start. A value of ‘0s’ means the transition will execute as
1614 * soon as the property is changed. Otherwise, the value specifies an offset from the moment
1615 * the property is changed, and the transition will delay execution by that offset.
1616 */
1617 transitionDelay?: CSSWideKeyword | any;
1618
1619 /**
1620 * The `transition-duration` property specifies the length of time a transition animation
1621 * takes to complete.
1622 */
1623 transitionDuration?: CSSWideKeyword | any;
1624
1625 /**
1626 * The `transition-property` property specifies the name of the CSS property to which the
1627 * transition is applied.
1628 */
1629 transitionProperty?: CSSWideKeyword | any;
1630
1631 /**
1632 * Sets the pace of action within a transition
1633 */
1634 transitionTimingFunction?: CSSWideKeyword | any;
1635
1636 /**
1637 * The unicode-bidi CSS property specifies the level of embedding with respect to the
1638 * bidirectional algorithm.
1639 */
1640 unicodeBidi?: CSSWideKeyword | any;
1641
1642 /**
1643 * unicode-range allows you to set a specific range of characters to be downloaded from a
1644 * font (embedded using @font-face) and made available for use on the current page.
1645 */
1646 unicodeRange?: CSSWideKeyword | any;
1647
1648 /**
1649 * This is for all the high level UX stuff.
1650 */
1651 userFocus?: CSSWideKeyword | any;
1652
1653 /**
1654 * For input user content
1655 */
1656 userInput?: CSSWideKeyword | any;
1657
1658 /**
1659 * The `vertical-align` property controls how inline elements or text are vertically
1660 * aligned compared to the baseline. If this property is used on table-cells it controls
1661 * the vertical alignment of content of the table cell.
1662 */
1663 verticalAlign?: CSSWideKeyword | any;
1664
1665 /**
1666 * The visibility property specifies whether the boxes generated by an element are rendered.
1667 */
1668 visibility?: CSSWideKeyword | any;
1669
1670 /**
1671 * The voice-balance property sets the apparent position (in stereo sound) of the synthesized
1672 * voice for spoken media.
1673 */
1674 voiceBalance?: CSSWideKeyword | any;
1675
1676 /**
1677 * The `voice-duration` property allows the author to explicitly set the amount of time it
1678 * should take a speech synthesizer to read an element’s content, for example to allow the
1679 * speech to be synchronized with other media. With a value of auto (the default) the length
1680 * of time it takes to read the content is determined by the content itself and the `voice-rate`
1681 * property.
1682 */
1683 voiceDuration?: CSSWideKeyword | any;
1684
1685 /**
1686 * The `voice-family` property sets the speaker’s voice used by a speech media agent to read an
1687 * element. The speaker may be specified as a named character (to match a voice option in the
1688 * speech reading software) or as a generic description of the age and gender of the voice.
1689 * Similar to the font-family property for visual media, a comma-separated list of fallback
1690 * options may be given in case the speech reader does not recognize the character name or
1691 * cannot synthesize the requested combination of generic properties.
1692 */
1693 voiceFamily?: CSSWideKeyword | any;
1694
1695 /**
1696 * The voice-pitch property sets pitch or tone (high or low) for the synthesized speech when
1697 * reading an element; the pitch may be specified absolutely or relative to the normal pitch
1698 * for the voice-family used to read the text.
1699 */
1700 voicePitch?: CSSWideKeyword | any;
1701
1702 /**
1703 * The `voice-range` property determines how much variation in pitch or tone will be created by
1704 * the speech synthesize when reading an element. Emphasized text, grammatical structures and
1705 * punctuation may all be rendered as changes in pitch, this property determines how strong or
1706 * obvious those changes are; large ranges are associated with enthusiastic or emotional speech,
1707 * while small ranges are associated with flat or mechanical speech.
1708 */
1709 voiceRange?: CSSWideKeyword | any;
1710
1711 /**
1712 * The `voice-rate` property sets the speed at which the voice synthesized by a speech media
1713 * agent will read content.
1714 */
1715 voiceRate?: CSSWideKeyword | any;
1716
1717 /**
1718 * The `voice-stress` property sets the level of vocal emphasis to be used for synthesized
1719 * speech reading the element.
1720 */
1721 voiceStress?: CSSWideKeyword | any;
1722
1723 /**
1724 * The `voice-volume` property sets the volume for spoken content in speech media. It replaces
1725 * the deprecated volume property.
1726 */
1727 voiceVolume?: CSSWideKeyword | any;
1728
1729 /**
1730 * The white-space property controls whether and how white space inside the element is
1731 * collapsed, and whether lines may wrap at unforced “soft wrap” opportunities.
1732 */
1733 whiteSpace?: CSSWideKeyword | any;
1734
1735 /**
1736 * Obsolete: unsupported.
1737 */
1738 whiteSpaceTreatment?: CSSWideKeyword | any;
1739
1740 /**
1741 * In paged media, this property defines the minimum number of lines
1742 * that must be left at the top of the second page.
1743 * @see https://drafts.csswg.org/css-break-3/#widows-orphans
1744 */
1745 widows?: CSSWideKeyword | number;
1746
1747 /**
1748 * Specifies the width of the content area of an element. The content area of the element
1749 * width does not include the padding, border, and margin of the element.
1750 */
1751 width?: CSSWideKeyword | any;
1752
1753 /**
1754 * The word-break property is often used when there is long generated content that is strung
1755 * together without and spaces or hyphens to beak apart. A common case of this is when there
1756 * is a long URL that does not have any hyphens. This case could potentially cause the
1757 * breaking of the layout as it could extend past the parent element.
1758 */
1759 wordBreak?: CSSWideKeyword | any;
1760
1761 /**
1762 * The word-spacing CSS property specifies the spacing behavior between "words".
1763 */
1764 wordSpacing?: CSSWideKeyword | any;
1765
1766 /**
1767 * An alias of css/properties/overflow-wrap, word-wrap defines whether to break words when the
1768 * content exceeds the boundaries of its container.
1769 */
1770 wordWrap?: CSSWideKeyword | any;
1771
1772 /**
1773 * Specifies how exclusions affect inline content within block-level elements. Elements lay out
1774 * their inline content in their content area but wrap around exclusion areas.
1775 */
1776 wrapFlow?: CSSWideKeyword | any;
1777
1778 /**
1779 * Set the value that is used to offset the inner wrap shape from other shapes. Inline content
1780 * that intersects a shape with this property will be pushed by this shape’s margin.
1781 */
1782 wrapMargin?: CSSWideKeyword | any;
1783
1784 /**
1785 * @deprecated
1786 * This CSS property controls the text when it reaches the end of the block in which it is
1787 * enclosed.
1788 */
1789 wrapOption?: CSSWideKeyword | any;
1790
1791 /**
1792 * writing-mode specifies if lines of text are laid out horizontally or vertically, and the
1793 * direction which lines of text and blocks progress.
1794 */
1795 writingMode?: CSSWideKeyword | any;
1796
1797 /**
1798 * The z-index property specifies the z-order of an element and its descendants.
1799 * When elements overlap, z-order determines which one covers the other.
1800 * See CSS 2 z-index property https://www.w3.org/TR/CSS2/visuren.html#z-index
1801 */
1802 zIndex?: CSSWideKeyword | "auto" | number;
1803
1804 /**
1805 * Sets the initial zoom factor of a document defined by @viewport.
1806 * See CSS zoom descriptor https://drafts.csswg.org/css-device-adapt/#zoom-desc
1807 */
1808 zoom?: CSSWideKeyword | "auto" | number | CSSPercentage;
1809
1810 [propertyName: string]: any;
1811 }
1812
1813 interface DOMAttributes<T> {
1814 // jsx-dom specific
1815 children?: Children;
1816 innerHTML?: string;
1817 innerText?: string;
1818 textContent?: string;
1819 namespaceURI?: string;
1820 ref?: ((e: T) => void) | Ref<T>;
1821
1822 // Clipboard Events
1823 onCopy?: ClipboardEventHandler;
1824 onCopyCapture?: ClipboardEventHandler;
1825 onCut?: ClipboardEventHandler;
1826 onCutCapture?: ClipboardEventHandler;
1827 onPaste?: ClipboardEventHandler;
1828 onPasteCapture?: ClipboardEventHandler;
1829
1830 // Composition Events
1831 onCompositionEnd?: CompositionEventHandler;
1832 onCompositionEndCapture?: CompositionEventHandler;
1833 onCompositionStart?: CompositionEventHandler;
1834 onCompositionStartCapture?: CompositionEventHandler;
1835 onCompositionUpdate?: CompositionEventHandler;
1836 onCompositionUpdateCapture?: CompositionEventHandler;
1837
1838 // Focus Events
1839 onFocus?: FocusEventHandler;
1840 onFocusCapture?: FocusEventHandler;
1841 onBlur?: FocusEventHandler;
1842 onBlurCapture?: FocusEventHandler;
1843
1844 // Form Events
1845 onChange?: FormEventHandler;
1846 onChangeCapture?: FormEventHandler;
1847 onInput?: FormEventHandler;
1848 onInputCapture?: FormEventHandler;
1849 onReset?: FormEventHandler;
1850 onResetCapture?: FormEventHandler;
1851 onSubmit?: FormEventHandler;
1852 onSubmitCapture?: FormEventHandler;
1853
1854 // Image Events
1855 onLoad?: EventHandler;
1856 onLoadCapture?: EventHandler;
1857 onError?: EventHandler; // also a Media Event
1858 onErrorCapture?: EventHandler; // also a Media Event
1859
1860 // Keyboard Events
1861 onKeyDown?: KeyboardEventHandler;
1862 onKeyDownCapture?: KeyboardEventHandler;
1863 onKeyPress?: KeyboardEventHandler;
1864 onKeyPressCapture?: KeyboardEventHandler;
1865 onKeyUp?: KeyboardEventHandler;
1866 onKeyUpCapture?: KeyboardEventHandler;
1867
1868 // Media Events
1869 onAbort?: EventHandler;
1870 onAbortCapture?: EventHandler;
1871 onCanPlay?: EventHandler;
1872 onCanPlayCapture?: EventHandler;
1873 onCanPlayThrough?: EventHandler;
1874 onCanPlayThroughCapture?: EventHandler;
1875 onDurationChange?: EventHandler;
1876 onDurationChangeCapture?: EventHandler;
1877 onEmptied?: EventHandler;
1878 onEmptiedCapture?: EventHandler;
1879 onEncrypted?: EventHandler;
1880 onEncryptedCapture?: EventHandler;
1881 onEnded?: EventHandler;
1882 onEndedCapture?: EventHandler;
1883 onLoadedData?: EventHandler;
1884 onLoadedDataCapture?: EventHandler;
1885 onLoadedMetadata?: EventHandler;
1886 onLoadedMetadataCapture?: EventHandler;
1887 onLoadStart?: EventHandler;
1888 onLoadStartCapture?: EventHandler;
1889 onPause?: EventHandler;
1890 onPauseCapture?: EventHandler;
1891 onPlay?: EventHandler;
1892 onPlayCapture?: EventHandler;
1893 onPlaying?: EventHandler;
1894 onPlayingCapture?: EventHandler;
1895 onProgress?: EventHandler;
1896 onProgressCapture?: EventHandler;
1897 onRateChange?: EventHandler;
1898 onRateChangeCapture?: EventHandler;
1899 onSeeked?: EventHandler;
1900 onSeekedCapture?: EventHandler;
1901 onSeeking?: EventHandler;
1902 onSeekingCapture?: EventHandler;
1903 onStalled?: EventHandler;
1904 onStalledCapture?: EventHandler;
1905 onSuspend?: EventHandler;
1906 onSuspendCapture?: EventHandler;
1907 onTimeUpdate?: EventHandler;
1908 onTimeUpdateCapture?: EventHandler;
1909 onVolumeChange?: EventHandler;
1910 onVolumeChangeCapture?: EventHandler;
1911 onWaiting?: EventHandler;
1912 onWaitingCapture?: EventHandler;
1913
1914 // MouseEvents
1915 onClick?: MouseEventHandler;
1916 onClickCapture?: MouseEventHandler;
1917 onContextMenu?: MouseEventHandler;
1918 onContextMenuCapture?: MouseEventHandler;
1919 onDoubleClick?: MouseEventHandler;
1920 onDoubleClickCapture?: MouseEventHandler;
1921 onDrag?: DragEventHandler;
1922 onDragCapture?: DragEventHandler;
1923 onDragEnd?: DragEventHandler;
1924 onDragEndCapture?: DragEventHandler;
1925 onDragEnter?: DragEventHandler;
1926 onDragEnterCapture?: DragEventHandler;
1927 onDragExit?: DragEventHandler;
1928 onDragExitCapture?: DragEventHandler;
1929 onDragLeave?: DragEventHandler;
1930 onDragLeaveCapture?: DragEventHandler;
1931 onDragOver?: DragEventHandler;
1932 onDragOverCapture?: DragEventHandler;
1933 onDragStart?: DragEventHandler;
1934 onDragStartCapture?: DragEventHandler;
1935 onDrop?: DragEventHandler;
1936 onDropCapture?: DragEventHandler;
1937 onMouseDown?: MouseEventHandler;
1938 onMouseDownCapture?: MouseEventHandler;
1939 onMouseEnter?: MouseEventHandler;
1940 onMouseLeave?: MouseEventHandler;
1941 onMouseMove?: MouseEventHandler;
1942 onMouseMoveCapture?: MouseEventHandler;
1943 onMouseOut?: MouseEventHandler;
1944 onMouseOutCapture?: MouseEventHandler;
1945 onMouseOver?: MouseEventHandler;
1946 onMouseOverCapture?: MouseEventHandler;
1947 onMouseUp?: MouseEventHandler;
1948 onMouseUpCapture?: MouseEventHandler;
1949
1950 // Selection Events
1951 onSelect?: EventHandler;
1952 onSelectCapture?: EventHandler;
1953
1954 // Touch Events
1955 onTouchCancel?: TouchEventHandler;
1956 onTouchCancelCapture?: TouchEventHandler;
1957 onTouchEnd?: TouchEventHandler;
1958 onTouchEndCapture?: TouchEventHandler;
1959 onTouchMove?: TouchEventHandler;
1960 onTouchMoveCapture?: TouchEventHandler;
1961 onTouchStart?: TouchEventHandler;
1962 onTouchStartCapture?: TouchEventHandler;
1963
1964 // UI Events
1965 onScroll?: UIEventHandler;
1966 onScrollCapture?: UIEventHandler;
1967
1968 // Wheel Events
1969 onWheel?: WheelEventHandler;
1970 onWheelCapture?: WheelEventHandler;
1971
1972 // Animation Events
1973 onAnimationStart?: AnimationEventHandler;
1974 onAnimationStartCapture?: AnimationEventHandler;
1975 onAnimationEnd?: AnimationEventHandler;
1976 onAnimationEndCapture?: AnimationEventHandler;
1977 onAnimationIteration?: AnimationEventHandler;
1978 onAnimationIterationCapture?: AnimationEventHandler;
1979
1980 // Transition Events
1981 onTransitionEnd?: TransitionEventHandler;
1982 onTransitionEndCapture?: TransitionEventHandler;
1983 }
1984
1985 interface HTMLAttributes<T> extends DOMAttributes<T> {
1986 // jsx-dom-specific Attributes
1987 class?: ClassName;
1988 dataset?: object;
1989
1990 // Standard HTML Attributes
1991 accept?: string;
1992 acceptCharset?: string;
1993 accessKey?: string;
1994 action?: string;
1995 allowFullScreen?: boolean;
1996 allowTransparency?: boolean;
1997 alt?: string;
1998 async?: boolean;
1999 autoComplete?: string;
2000 autoFocus?: boolean;
2001 autoPlay?: boolean;
2002 capture?: boolean;
2003 cellPadding?: number | string;
2004 cellSpacing?: number | string;
2005 charSet?: string;
2006 challenge?: string;
2007 checked?: boolean;
2008 cite?: string;
2009 classID?: string;
2010 className?: ClassName;
2011 cols?: number;
2012 colSpan?: number;
2013 content?: string;
2014 contentEditable?: boolean;
2015 contextMenu?: string;
2016 controls?: boolean;
2017 coords?: string;
2018 crossOrigin?: string;
2019 data?: string;
2020 dateTime?: string;
2021 default?: boolean;
2022 defer?: boolean;
2023 dir?: string;
2024 disabled?: boolean;
2025 download?: any;
2026 draggable?: boolean;
2027 encType?: string;
2028 form?: string;
2029 formAction?: string;
2030 formEncType?: string;
2031 formMethod?: string;
2032 formNoValidate?: boolean;
2033 formTarget?: string;
2034 frameBorder?: number | string;
2035 headers?: string;
2036 height?: number | string;
2037 hidden?: boolean;
2038 high?: number;
2039 href?: string;
2040 hrefLang?: string;
2041 htmlFor?: string;
2042 httpEquiv?: string;
2043 id?: string;
2044 inputMode?: string;
2045 integrity?: string;
2046 is?: string;
2047 keyParams?: string;
2048 keyType?: string;
2049 kind?: string;
2050 label?: string;
2051 lang?: string;
2052 list?: string;
2053 loop?: boolean;
2054 low?: number;
2055 manifest?: string;
2056 marginHeight?: number;
2057 marginWidth?: number;
2058 max?: number | string;
2059 maxLength?: number;
2060 media?: string;
2061 mediaGroup?: string;
2062 method?: string;
2063 min?: number | string;
2064 minLength?: number;
2065 multiple?: boolean;
2066 muted?: boolean;
2067 name?: string;
2068 nonce?: string;
2069 noValidate?: boolean;
2070 open?: boolean;
2071 optimum?: number;
2072 pattern?: string;
2073 placeholder?: string;
2074 playsInline?: boolean;
2075 poster?: string;
2076 preload?: string;
2077 radioGroup?: string;
2078 readOnly?: boolean;
2079 rel?: string;
2080 required?: boolean;
2081 reversed?: boolean;
2082 role?: string;
2083 rows?: number;
2084 rowSpan?: number;
2085 sandbox?: string;
2086 scope?: string;
2087 scoped?: boolean;
2088 scrolling?: string;
2089 seamless?: boolean;
2090 selected?: boolean;
2091 shape?: string;
2092 size?: number;
2093 sizes?: string;
2094 slot?: string;
2095 span?: number;
2096 spellCheck?: boolean;
2097 src?: string;
2098 srcDoc?: string;
2099 srcLang?: string;
2100 srcSet?: string;
2101 start?: number;
2102 step?: number | string;
2103 style?: string | CSSProperties;
2104 summary?: string;
2105 tabIndex?: number;
2106 target?: string;
2107 title?: string;
2108 type?: string;
2109 useMap?: string;
2110 value?: string | string[] | number;
2111 width?: number | string;
2112 wmode?: string;
2113 wrap?: string;
2114
2115 // RDFa Attributes
2116 about?: string;
2117 datatype?: string;
2118 inlist?: any;
2119 prefix?: string;
2120 property?: string;
2121 resource?: string;
2122 typeof?: string;
2123 vocab?: string;
2124
2125 // Non-standard Attributes
2126 autoCapitalize?: string;
2127 autoCorrect?: string;
2128 autoSave?: string;
2129 color?: string;
2130 itemProp?: string;
2131 itemScope?: boolean;
2132 itemType?: string;
2133 itemID?: string;
2134 itemRef?: string;
2135 results?: number;
2136 security?: string;
2137 unselectable?: boolean;
2138 }
2139
2140 // this list is "complete" in that it contains every SVG attribute
2141 // that React supports, but the types can be improved.
2142 // Full list here: https://facebook.github.io/react/docs/dom-elements.html
2143 //
2144 // The three broad type categories are (in order of restrictiveness):
2145 // - "number | string"
2146 // - "string"
2147 // - union of string literals
2148 interface SVGAttributes<T> extends DOMAttributes<T> {
2149 // Attributes which also defined in HTMLAttributes
2150 className?: string;
2151 color?: string;
2152 height?: number | string;
2153 id?: string;
2154 lang?: string;
2155 max?: number | string;
2156 media?: string;
2157 method?: string;
2158 min?: number | string;
2159 name?: string;
2160 style?: CSSProperties;
2161 target?: string;
2162 type?: string;
2163 width?: number | string;
2164
2165 // SVG Specific attributes
2166 "accent-height"?: number | string;
2167 accumulate?: "none" | "sum";
2168 additive?: "replace" | "sum";
2169 "alignment-baseline"?: "auto" | "baseline" | "before-edge" | "text-before-edge" | "middle" |
2170 "central" | "after-edge" | "text-after-edge" | "ideographic" | "alphabetic" | "hanging" |
2171 "mathematical" | "inherit";
2172 allowReorder?: "no" | "yes";
2173 alphabetic?: number | string;
2174 amplitude?: number | string;
2175 "arabic-form"?: "initial" | "medial" | "terminal" | "isolated";
2176 ascent?: number | string;
2177 attributeName?: string;
2178 attributeType?: string;
2179 autoReverse?: number | string;
2180 azimuth?: number | string;
2181 baseFrequency?: number | string;
2182 "baseline-shift"?: number | string;
2183 baseProfile?: number | string;
2184 bbox?: number | string;
2185 begin?: number | string;
2186 bias?: number | string;
2187 by?: number | string;
2188 calcMode?: number | string;
2189 "cap-height"?: number | string;
2190 clip?: number | string;
2191 "clip-path"?: string;
2192 clipPathUnits?: number | string;
2193 "clip-rule"?: number | string;
2194 "color-interpolation"?: number | string;
2195 "color-interpolation-filters"?: "auto" | "sRGB" | "linearRGB" | "inherit";
2196 "color-profile"?: number | string;
2197 "color-rendering"?: number | string;
2198 contentScriptType?: number | string;
2199 contentStyleType?: number | string;
2200 cursor?: number | string;
2201 cx?: number | string;
2202 cy?: number | string;
2203 d?: string;
2204 decelerate?: number | string;
2205 descent?: number | string;
2206 diffuseConstant?: number | string;
2207 direction?: number | string;
2208 display?: number | string;
2209 divisor?: number | string;
2210 "dominant-baseline"?: number | string;
2211 dur?: number | string;
2212 dx?: number | string;
2213 dy?: number | string;
2214 edgeMode?: number | string;
2215 elevation?: number | string;
2216 "enable-background"?: number | string;
2217 end?: number | string;
2218 exponent?: number | string;
2219 externalResourcesRequired?: number | string;
2220 fill?: string;
2221 "fill-opacity"?: number | string;
2222 fillRule?: "nonzero" | "evenodd" | "inherit";
2223 filter?: string;
2224 filterRes?: number | string;
2225 filterUnits?: number | string;
2226 floodColor?: number | string;
2227 floodOpacity?: number | string;
2228 focusable?: number | string;
2229 "font-family"?: string;
2230 "font-size"?: number | string;
2231 "font-size-adjust"?: number | string;
2232 "font-stretch"?: number | string;
2233 "font-style"?: number | string;
2234 "font-variant"?: number | string;
2235 "font-weight"?: number | string;
2236 format?: number | string;
2237 from?: number | string;
2238 fx?: number | string;
2239 fy?: number | string;
2240 g1?: number | string;
2241 g2?: number | string;
2242 "glyph-name"?: number | string;
2243 "glyph-orientation-horizontal"?: number | string;
2244 "glyph-orientation-vertical"?: number | string;
2245 glyphRef?: number | string;
2246 gradientTransform?: string;
2247 gradientUnits?: string;
2248 hanging?: number | string;
2249 "horiz-adv-x"?: number | string;
2250 "horiz-origin-x"?: number | string;
2251 ideographic?: number | string;
2252 "image-rendering"?: number | string;
2253 in2?: number | string;
2254 in?: string;
2255 intercept?: number | string;
2256 k1?: number | string;
2257 k2?: number | string;
2258 k3?: number | string;
2259 k4?: number | string;
2260 k?: number | string;
2261 kernelMatrix?: number | string;
2262 kernelUnitLength?: number | string;
2263 kerning?: number | string;
2264 keyPoints?: number | string;
2265 keySplines?: number | string;
2266 keyTimes?: number | string;
2267 lengthAdjust?: number | string;
2268 "letter-spacing"?: number | string;
2269 "lighting-color"?: number | string;
2270 limitingConeAngle?: number | string;
2271 local?: number | string;
2272 "marker-end"?: string;
2273 markerHeight?: number | string;
2274 "marker-mid"?: string;
2275 "marker-start"?: string;
2276 markerUnits?: number | string;
2277 markerWidth?: number | string;
2278 mask?: string;
2279 maskContentUnits?: number | string;
2280 maskUnits?: number | string;
2281 mathematical?: number | string;
2282 mode?: number | string;
2283 numOctaves?: number | string;
2284 offset?: number | string;
2285 opacity?: number | string;
2286 operator?: number | string;
2287 order?: number | string;
2288 orient?: number | string;
2289 orientation?: number | string;
2290 origin?: number | string;
2291 overflow?: number | string;
2292 "overline-position"?: number | string;
2293 "overline-thickness"?: number | string;
2294 "paint-order"?: number | string;
2295 "panose-1"?: number | string;
2296 pathLength?: number | string;
2297 patternContentUnits?: string;
2298 patternTransform?: number | string;
2299 patternUnits?: string;
2300 "pointer-events"?: number | string;
2301 points?: string;
2302 pointsAtX?: number | string;
2303 pointsAtY?: number | string;
2304 pointsAtZ?: number | string;
2305 preserveAlpha?: number | string;
2306 preserveAspectRatio?: string;
2307 primitiveUnits?: number | string;
2308 r?: number | string;
2309 radius?: number | string;
2310 refX?: number | string;
2311 refY?: number | string;
2312 "rendering-intent"?: number | string;
2313 repeatCount?: number | string;
2314 repeatDur?: number | string;
2315 requiredExtensions?: number | string;
2316 requiredFeatures?: number | string;
2317 restart?: number | string;
2318 result?: string;
2319 rotate?: number | string;
2320 rx?: number | string;
2321 ry?: number | string;
2322 scale?: number | string;
2323 seed?: number | string;
2324 "shape-rendering"?: number | string;
2325 slope?: number | string;
2326 spacing?: number | string;
2327 specularConstant?: number | string;
2328 specularExponent?: number | string;
2329 speed?: number | string;
2330 spreadMethod?: string;
2331 startOffset?: number | string;
2332 stdDeviation?: number | string;
2333 stemh?: number | string;
2334 stemv?: number | string;
2335 stitchTiles?: number | string;
2336 "stop-color"?: string;
2337 "stop-opacity"?: number | string;
2338 "strikethrough-position"?: number | string;
2339 "strikethrough-thickness"?: number | string;
2340 string?: number | string;
2341 stroke?: string;
2342 "stroke-dasharray"?: string | number;
2343 "stroke-dashoffset"?: string | number;
2344 "stroke-linecap"?: "butt" | "round" | "square" | "inherit";
2345 "stroke-linejoin"?: "miter" | "round" | "bevel" | "inherit";
2346 "stroke-miterlimit"?: string;
2347 "stroke-opacity"?: number | string;
2348 "stroke-width"?: number | string;
2349 surfaceScale?: number | string;
2350 systemLanguage?: number | string;
2351 tableValues?: number | string;
2352 targetX?: number | string;
2353 targetY?: number | string;
2354 "text-anchor"?: string;
2355 "text-decoration"?: number | string;
2356 textLength?: number | string;
2357 "text-rendering"?: number | string;
2358 to?: number | string;
2359 transform?: string;
2360 u1?: number | string;
2361 u2?: number | string;
2362 "underline-position"?: number | string;
2363 "underline-thickness"?: number | string;
2364 unicode?: number | string;
2365 "unicode-bidi"?: number | string;
2366 "unicode-range"?: number | string;
2367 "units-per-em"?: number | string;
2368 "v-alphabetic"?: number | string;
2369 values?: string;
2370 "vector-effect"?: number | string;
2371 version?: string;
2372 "vert-adv-y"?: number | string;
2373 "vert-origin-x"?: number | string;
2374 "vert-origin-y"?: number | string;
2375 "v-hanging"?: number | string;
2376 "v-ideographic"?: number | string;
2377 viewBox?: string;
2378 viewTarget?: number | string;
2379 visibility?: number | string;
2380 "v-mathematical"?: number | string;
2381 widths?: number | string;
2382 "word-spacing"?: number | string;
2383 "writing-mode"?: number | string;
2384 x1?: number | string;
2385 x2?: number | string;
2386 x?: number | string;
2387 xChannelSelector?: string;
2388 "x-height"?: number | string;
2389 xlinkActuate?: string;
2390 xlinkArcrole?: string;
2391 xlinkHref?: string;
2392 xlinkRole?: string;
2393 xlinkShow?: string;
2394 xlinkTitle?: string;
2395 xlinkType?: string;
2396 xmlBase?: string;
2397 xmlLang?: string;
2398 xmlns?: string;
2399 xmlnsXlink?: string;
2400 xmlSpace?: string;
2401 y1?: number | string;
2402 y2?: number | string;
2403 y?: number | string;
2404 yChannelSelector?: string;
2405 z?: number | string;
2406 zoomAndPan?: string;
2407 }
2408
2409 interface HTMLProps<T> extends HTMLAttributes<T> {}
2410 interface SVGProps<T> extends SVGAttributes<T> {}
2411
2412 interface IntrinsicElements {
2413 // HTML
2414 a: HTMLProps<HTMLAnchorElement>;
2415 abbr: HTMLProps<HTMLElement>;
2416 address: HTMLProps<HTMLElement>;
2417 area: HTMLProps<HTMLAreaElement>;
2418 article: HTMLProps<HTMLElement>;
2419 aside: HTMLProps<HTMLElement>;
2420 audio: HTMLProps<HTMLAudioElement>;
2421 b: HTMLProps<HTMLElement>;
2422 base: HTMLProps<HTMLBaseElement>;
2423 bdi: HTMLProps<HTMLElement>;
2424 bdo: HTMLProps<HTMLElement>;
2425 big: HTMLProps<HTMLElement>;
2426 blockquote: HTMLProps<HTMLElement>;
2427 body: HTMLProps<HTMLBodyElement>;
2428 br: HTMLProps<HTMLBRElement>;
2429 button: HTMLProps<HTMLButtonElement>;
2430 canvas: HTMLProps<HTMLCanvasElement>;
2431 caption: HTMLProps<HTMLElement>;
2432 cite: HTMLProps<HTMLElement>;
2433 code: HTMLProps<HTMLElement>;
2434 col: HTMLProps<HTMLTableColElement>;
2435 colgroup: HTMLProps<HTMLTableColElement>;
2436 data: HTMLProps<HTMLElement>;
2437 datalist: HTMLProps<HTMLDataListElement>;
2438 dd: HTMLProps<HTMLElement>;
2439 del: HTMLProps<HTMLElement>;
2440 details: HTMLProps<HTMLElement>;
2441 dfn: HTMLProps<HTMLElement>;
2442 dialog: HTMLProps<HTMLElement>;
2443 div: HTMLProps<HTMLDivElement>;
2444 dl: HTMLProps<HTMLDListElement>;
2445 dt: HTMLProps<HTMLElement>;
2446 em: HTMLProps<HTMLElement>;
2447 embed: HTMLProps<HTMLEmbedElement>;
2448 fieldset: HTMLProps<HTMLFieldSetElement>;
2449 figcaption: HTMLProps<HTMLElement>;
2450 figure: HTMLProps<HTMLElement>;
2451 footer: HTMLProps<HTMLElement>;
2452 form: HTMLProps<HTMLFormElement>;
2453 h1: HTMLProps<HTMLHeadingElement>;
2454 h2: HTMLProps<HTMLHeadingElement>;
2455 h3: HTMLProps<HTMLHeadingElement>;
2456 h4: HTMLProps<HTMLHeadingElement>;
2457 h5: HTMLProps<HTMLHeadingElement>;
2458 h6: HTMLProps<HTMLHeadingElement>;
2459 head: HTMLProps<HTMLHeadElement>;
2460 header: HTMLProps<HTMLElement>;
2461 hgroup: HTMLProps<HTMLElement>;
2462 hr: HTMLProps<HTMLHRElement>;
2463 html: HTMLProps<HTMLHtmlElement>;
2464 i: HTMLProps<HTMLElement>;
2465 iframe: HTMLProps<HTMLIFrameElement>;
2466 img: HTMLProps<HTMLImageElement>;
2467 input: HTMLProps<HTMLInputElement>;
2468 ins: HTMLProps<HTMLModElement>;
2469 kbd: HTMLProps<HTMLElement>;
2470 keygen: HTMLProps<HTMLElement>;
2471 label: HTMLProps<HTMLLabelElement>;
2472 legend: HTMLProps<HTMLLegendElement>;
2473 li: HTMLProps<HTMLLIElement>;
2474 link: HTMLProps<HTMLLinkElement>;
2475 main: HTMLProps<HTMLElement>;
2476 map: HTMLProps<HTMLMapElement>;
2477 mark: HTMLProps<HTMLElement>;
2478 menu: HTMLProps<HTMLElement>;
2479 menuitem: HTMLProps<HTMLElement>;
2480 meta: HTMLProps<HTMLMetaElement>;
2481 meter: HTMLProps<HTMLElement>;
2482 nav: HTMLProps<HTMLElement>;
2483 noindex: HTMLProps<HTMLElement>;
2484 noscript: HTMLProps<HTMLElement>;
2485 object: HTMLProps<HTMLObjectElement>;
2486 ol: HTMLProps<HTMLOListElement>;
2487 optgroup: HTMLProps<HTMLOptGroupElement>;
2488 option: HTMLProps<HTMLOptionElement>;
2489 output: HTMLProps<HTMLElement>;
2490 p: HTMLProps<HTMLParagraphElement>;
2491 param: HTMLProps<HTMLParamElement>;
2492 picture: HTMLProps<HTMLElement>;
2493 pre: HTMLProps<HTMLPreElement>;
2494 progress: HTMLProps<HTMLProgressElement>;
2495 q: HTMLProps<HTMLQuoteElement>;
2496 rp: HTMLProps<HTMLElement>;
2497 rt: HTMLProps<HTMLElement>;
2498 ruby: HTMLProps<HTMLElement>;
2499 s: HTMLProps<HTMLElement>;
2500 samp: HTMLProps<HTMLElement>;
2501 script: HTMLProps<HTMLElement>;
2502 section: HTMLProps<HTMLElement>;
2503 select: HTMLProps<HTMLSelectElement>;
2504 small: HTMLProps<HTMLElement>;
2505 source: HTMLProps<HTMLSourceElement>;
2506 span: HTMLProps<HTMLSpanElement>;
2507 strong: HTMLProps<HTMLElement>;
2508 style: HTMLProps<HTMLStyleElement>;
2509 sub: HTMLProps<HTMLElement>;
2510 summary: HTMLProps<HTMLElement>;
2511 sup: HTMLProps<HTMLElement>;
2512 table: HTMLProps<HTMLTableElement>;
2513 tbody: HTMLProps<HTMLTableSectionElement>;
2514 td: HTMLProps<HTMLTableDataCellElement>;
2515 textarea: HTMLProps<HTMLTextAreaElement>;
2516 tfoot: HTMLProps<HTMLTableSectionElement>;
2517 th: HTMLProps<HTMLTableHeaderCellElement>;
2518 thead: HTMLProps<HTMLTableSectionElement>;
2519 time: HTMLProps<HTMLElement>;
2520 title: HTMLProps<HTMLTitleElement>;
2521 tr: HTMLProps<HTMLTableRowElement>;
2522 track: HTMLProps<HTMLTrackElement>;
2523 u: HTMLProps<HTMLElement>;
2524 ul: HTMLProps<HTMLUListElement>;
2525 var: HTMLProps<HTMLElement>;
2526 video: HTMLProps<HTMLVideoElement>;
2527 wbr: HTMLProps<HTMLElement>;
2528
2529 svg: SVGProps<SVGSVGElement>;
2530
2531 animate: SVGProps<SVGElement>; // @TODO: It is SVGAnimateElement but not in dom.d.ts for now.
2532 circle: SVGProps<SVGCircleElement>;
2533 clipPath: SVGProps<SVGClipPathElement>;
2534 defs: SVGProps<SVGDefsElement>;
2535 desc: SVGProps<SVGDescElement>;
2536 ellipse: SVGProps<SVGEllipseElement>;
2537 feBlend: SVGProps<SVGFEBlendElement>;
2538 feColorMatrix: SVGProps<SVGFEColorMatrixElement>;
2539 feComponentTransfer: SVGProps<SVGFEComponentTransferElement>;
2540 feComposite: SVGProps<SVGFECompositeElement>;
2541 feConvolveMatrix: SVGProps<SVGFEConvolveMatrixElement>;
2542 feDiffuseLighting: SVGProps<SVGFEDiffuseLightingElement>;
2543 feDisplacementMap: SVGProps<SVGFEDisplacementMapElement>;
2544 feDistantLight: SVGProps<SVGFEDistantLightElement>;
2545 feFlood: SVGProps<SVGFEFloodElement>;
2546 feFuncA: SVGProps<SVGFEFuncAElement>;
2547 feFuncB: SVGProps<SVGFEFuncBElement>;
2548 feFuncG: SVGProps<SVGFEFuncGElement>;
2549 feFuncR: SVGProps<SVGFEFuncRElement>;
2550 feGaussianBlur: SVGProps<SVGFEGaussianBlurElement>;
2551 feImage: SVGProps<SVGFEImageElement>;
2552 feMerge: SVGProps<SVGFEMergeElement>;
2553 feMergeNode: SVGProps<SVGFEMergeNodeElement>;
2554 feMorphology: SVGProps<SVGFEMorphologyElement>;
2555 feOffset: SVGProps<SVGFEOffsetElement>;
2556 fePointLight: SVGProps<SVGFEPointLightElement>;
2557 feSpecularLighting: SVGProps<SVGFESpecularLightingElement>;
2558 feSpotLight: SVGProps<SVGFESpotLightElement>;
2559 feTile: SVGProps<SVGFETileElement>;
2560 feTurbulence: SVGProps<SVGFETurbulenceElement>;
2561 filter: SVGProps<SVGFilterElement>;
2562 foreignObject: SVGProps<SVGForeignObjectElement>;
2563 g: SVGProps<SVGGElement>;
2564 image: SVGProps<SVGImageElement>;
2565 line: SVGProps<SVGLineElement>;
2566 linearGradient: SVGProps<SVGLinearGradientElement>;
2567 marker: SVGProps<SVGMarkerElement>;
2568 mask: SVGProps<SVGMaskElement>;
2569 metadata: SVGProps<SVGMetadataElement>;
2570 path: SVGProps<SVGPathElement>;
2571 pattern: SVGProps<SVGPatternElement>;
2572 polygon: SVGProps<SVGPolygonElement>;
2573 polyline: SVGProps<SVGPolylineElement>;
2574 radialGradient: SVGProps<SVGRadialGradientElement>;
2575 rect: SVGProps<SVGRectElement>;
2576 stop: SVGProps<SVGStopElement>;
2577 switch: SVGProps<SVGSwitchElement>;
2578 symbol: SVGProps<SVGSymbolElement>;
2579 text: SVGProps<SVGTextElement>;
2580 textPath: SVGProps<SVGTextPathElement>;
2581 tspan: SVGProps<SVGTSpanElement>;
2582 use: SVGProps<SVGUseElement>;
2583 view: SVGProps<SVGViewElement>;
2584 [name: string]: { [name: string]: any };
2585 }
2586}
\No newline at end of file