jsx-framework-test-pb 0.0.7 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/runtime/component.d.ts +11 -0
- package/dist/runtime/component.js +39 -0
- package/dist/runtime/index.d.ts +3 -1
- package/dist/runtime/index.js +3 -1
- package/dist/runtime/reconciler.d.ts +9 -0
- package/dist/runtime/reconciler.js +103 -0
- package/dist/runtime/render.d.ts +1 -0
- package/dist/runtime/render.js +12 -5
- package/dist/types.d.ts +302 -2
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { render } from './runtime';
|
|
1
|
+
export { render, unmount } from './runtime';
|
|
2
2
|
export { Fragment } from './jsx-runtime';
|
|
3
3
|
export { isElement } from './utils';
|
|
4
4
|
export type { Element, ElementProps, ElementChild, DevElement, FC, HTMLAttributes, CSSProperties } from './types';
|
package/dist/index.js
CHANGED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface ComponentInstance {
|
|
2
|
+
element: any;
|
|
3
|
+
container: HTMLElement;
|
|
4
|
+
fibers: any[];
|
|
5
|
+
props: any;
|
|
6
|
+
state: any;
|
|
7
|
+
setState: (updater: any) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function mountComponent(element: any, container: HTMLElement): ComponentInstance;
|
|
10
|
+
export declare function unmountComponent(container: HTMLElement): void;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { reconcile } from './reconciler';
|
|
2
|
+
import { isElement } from '../utils';
|
|
3
|
+
const instances = new WeakMap();
|
|
4
|
+
export function mountComponent(element, container) {
|
|
5
|
+
const instance = {
|
|
6
|
+
element,
|
|
7
|
+
container,
|
|
8
|
+
fibers: [],
|
|
9
|
+
props: isElement(element) ? element.props : {},
|
|
10
|
+
state: {},
|
|
11
|
+
setState: (updater) => {
|
|
12
|
+
if (typeof updater === 'function') {
|
|
13
|
+
instance.state = updater(instance.state);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
instance.state = { ...instance.state, ...updater };
|
|
17
|
+
}
|
|
18
|
+
updateComponent(instance);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
instances.set(container, instance);
|
|
22
|
+
updateComponent(instance);
|
|
23
|
+
return instance;
|
|
24
|
+
}
|
|
25
|
+
function updateComponent(instance) {
|
|
26
|
+
const { element, container } = instance;
|
|
27
|
+
let children;
|
|
28
|
+
if (isElement(element) && typeof element.type === 'function') {
|
|
29
|
+
const result = element.type(element.props);
|
|
30
|
+
children = Array.isArray(result) ? result : [result];
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
children = [element];
|
|
34
|
+
}
|
|
35
|
+
instance.fibers = reconcile(container, children, instance.fibers);
|
|
36
|
+
}
|
|
37
|
+
export function unmountComponent(container) {
|
|
38
|
+
instances.delete(container);
|
|
39
|
+
}
|
package/dist/runtime/index.d.ts
CHANGED
package/dist/runtime/index.js
CHANGED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { createElement } from './createElement';
|
|
2
|
+
import { isElement } from '../utils';
|
|
3
|
+
const fiberMap = new WeakMap();
|
|
4
|
+
export function reconcile(parent, newElements, oldFibers = []) {
|
|
5
|
+
const newFibers = [];
|
|
6
|
+
const newElementsArray = Array.isArray(newElements) ? newElements : [newElements];
|
|
7
|
+
const oldFibersByKey = new Map();
|
|
8
|
+
const oldFibersByIndex = new Map();
|
|
9
|
+
oldFibers.forEach((fiber, index) => {
|
|
10
|
+
if (fiber.key !== null) {
|
|
11
|
+
oldFibersByKey.set(fiber.key, fiber);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
oldFibersByIndex.set(index, fiber);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
const anchor = document.createComment('anchor');
|
|
18
|
+
if (!parent.contains(anchor)) {
|
|
19
|
+
parent.appendChild(anchor);
|
|
20
|
+
}
|
|
21
|
+
newElementsArray.forEach((element, index) => {
|
|
22
|
+
const key = isElement(element) ? element.key : null;
|
|
23
|
+
let fiber;
|
|
24
|
+
let oldFiber;
|
|
25
|
+
if (key !== null) {
|
|
26
|
+
oldFiber = oldFibersByKey.get(key);
|
|
27
|
+
oldFibersByKey.delete(key);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
oldFiber = oldFibersByIndex.get(index);
|
|
31
|
+
oldFibersByIndex.delete(index);
|
|
32
|
+
}
|
|
33
|
+
if (oldFiber && canReuse(oldFiber.element, element)) {
|
|
34
|
+
fiber = {
|
|
35
|
+
element,
|
|
36
|
+
dom: oldFiber.dom,
|
|
37
|
+
parent: null,
|
|
38
|
+
key,
|
|
39
|
+
index
|
|
40
|
+
};
|
|
41
|
+
if (oldFiber.dom && isElement(element)) {
|
|
42
|
+
updateElement(oldFiber.dom, element);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
const dom = createElement(element);
|
|
47
|
+
fiber = {
|
|
48
|
+
element,
|
|
49
|
+
dom,
|
|
50
|
+
parent: null,
|
|
51
|
+
key,
|
|
52
|
+
index
|
|
53
|
+
};
|
|
54
|
+
if (dom) {
|
|
55
|
+
parent.insertBefore(dom, anchor);
|
|
56
|
+
}
|
|
57
|
+
if (oldFiber?.dom) {
|
|
58
|
+
parent.removeChild(oldFiber.dom);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
newFibers.push(fiber);
|
|
62
|
+
if (fiber.dom && fiber.dom.nextSibling !== anchor) {
|
|
63
|
+
parent.insertBefore(fiber.dom, anchor);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
[...oldFibersByKey.values(), ...oldFibersByIndex.values()].forEach(fiber => {
|
|
67
|
+
if (fiber.dom) {
|
|
68
|
+
parent.removeChild(fiber.dom);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
return newFibers;
|
|
72
|
+
}
|
|
73
|
+
function canReuse(oldElement, newElement) {
|
|
74
|
+
if (typeof oldElement !== typeof newElement) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
if (typeof oldElement !== 'object' || !isElement(oldElement) || !isElement(newElement)) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
return oldElement.type === newElement.type;
|
|
81
|
+
}
|
|
82
|
+
function updateElement(dom, element) {
|
|
83
|
+
if (!isElement(element))
|
|
84
|
+
return;
|
|
85
|
+
const { props } = element;
|
|
86
|
+
Object.keys(props).forEach(key => {
|
|
87
|
+
if (key === 'children') {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
else if (key.startsWith('on') && typeof props[key] === 'function') {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
else if (key === 'className') {
|
|
94
|
+
dom.setAttribute('class', props[key]);
|
|
95
|
+
}
|
|
96
|
+
else if (key === 'style' && typeof props[key] === 'object') {
|
|
97
|
+
Object.assign(dom.style, props[key]);
|
|
98
|
+
}
|
|
99
|
+
else if (key !== 'key' && props[key] != null) {
|
|
100
|
+
dom.setAttribute(key, String(props[key]));
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
package/dist/runtime/render.d.ts
CHANGED
package/dist/runtime/render.js
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { mountComponent } from './component';
|
|
2
|
+
const mountedContainers = new WeakMap();
|
|
2
3
|
export function render(element, container) {
|
|
3
4
|
if (!container) {
|
|
4
5
|
throw new Error('Container element is required');
|
|
5
6
|
}
|
|
6
|
-
container
|
|
7
|
-
|
|
8
|
-
if (domNode) {
|
|
9
|
-
container.appendChild(domNode);
|
|
7
|
+
if (!mountedContainers.has(container)) {
|
|
8
|
+
container.innerHTML = '';
|
|
10
9
|
}
|
|
10
|
+
const instance = mountComponent(element, container);
|
|
11
|
+
mountedContainers.set(container, instance);
|
|
12
|
+
}
|
|
13
|
+
export function unmount(container) {
|
|
14
|
+
if (!container)
|
|
15
|
+
return;
|
|
16
|
+
container.innerHTML = '';
|
|
17
|
+
mountedContainers.delete(container);
|
|
11
18
|
}
|
package/dist/types.d.ts
CHANGED
|
@@ -25,7 +25,307 @@ export interface HTMLAttributes<T = HTMLElement> {
|
|
|
25
25
|
className?: string;
|
|
26
26
|
id?: string;
|
|
27
27
|
style?: CSSProperties;
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
title?: string;
|
|
29
|
+
lang?: string;
|
|
30
|
+
dir?: 'ltr' | 'rtl' | 'auto';
|
|
31
|
+
hidden?: boolean;
|
|
32
|
+
tabIndex?: number;
|
|
30
33
|
class?: never;
|
|
34
|
+
[key: `data-${string}`]: string | number | boolean | undefined;
|
|
35
|
+
role?: string;
|
|
36
|
+
[key: `aria-${string}`]: string | number | boolean | undefined;
|
|
37
|
+
onClick?: (event: MouseEvent) => void;
|
|
38
|
+
onDoubleClick?: (event: MouseEvent) => void;
|
|
39
|
+
onMouseDown?: (event: MouseEvent) => void;
|
|
40
|
+
onMouseUp?: (event: MouseEvent) => void;
|
|
41
|
+
onMouseEnter?: (event: MouseEvent) => void;
|
|
42
|
+
onMouseLeave?: (event: MouseEvent) => void;
|
|
43
|
+
onMouseMove?: (event: MouseEvent) => void;
|
|
44
|
+
onMouseOver?: (event: MouseEvent) => void;
|
|
45
|
+
onMouseOut?: (event: MouseEvent) => void;
|
|
46
|
+
onChange?: (event: Event) => void;
|
|
47
|
+
onInput?: (event: Event) => void;
|
|
48
|
+
onSubmit?: (event: Event) => void;
|
|
49
|
+
onFocus?: (event: FocusEvent) => void;
|
|
50
|
+
onBlur?: (event: FocusEvent) => void;
|
|
51
|
+
onKeyDown?: (event: KeyboardEvent) => void;
|
|
52
|
+
onKeyUp?: (event: KeyboardEvent) => void;
|
|
53
|
+
onKeyPress?: (event: KeyboardEvent) => void;
|
|
54
|
+
onScroll?: (event: Event) => void;
|
|
55
|
+
onWheel?: (event: WheelEvent) => void;
|
|
56
|
+
onDrag?: (event: DragEvent) => void;
|
|
57
|
+
onDragEnd?: (event: DragEvent) => void;
|
|
58
|
+
onDragEnter?: (event: DragEvent) => void;
|
|
59
|
+
onDragLeave?: (event: DragEvent) => void;
|
|
60
|
+
onDragOver?: (event: DragEvent) => void;
|
|
61
|
+
onDragStart?: (event: DragEvent) => void;
|
|
62
|
+
onDrop?: (event: DragEvent) => void;
|
|
63
|
+
onTouchStart?: (event: TouchEvent) => void;
|
|
64
|
+
onTouchMove?: (event: TouchEvent) => void;
|
|
65
|
+
onTouchEnd?: (event: TouchEvent) => void;
|
|
66
|
+
onTouchCancel?: (event: TouchEvent) => void;
|
|
67
|
+
children?: ElementChild | ElementChild[];
|
|
68
|
+
}
|
|
69
|
+
export interface AnchorHTMLAttributes extends HTMLAttributes<HTMLAnchorElement> {
|
|
70
|
+
href?: string;
|
|
71
|
+
target?: '_blank' | '_self' | '_parent' | '_top';
|
|
72
|
+
rel?: string;
|
|
73
|
+
download?: string | boolean;
|
|
74
|
+
hrefLang?: string;
|
|
75
|
+
type?: string;
|
|
76
|
+
}
|
|
77
|
+
export interface ButtonHTMLAttributes extends HTMLAttributes<HTMLButtonElement> {
|
|
78
|
+
disabled?: boolean;
|
|
79
|
+
type?: 'button' | 'submit' | 'reset';
|
|
80
|
+
value?: string;
|
|
81
|
+
autoFocus?: boolean;
|
|
82
|
+
form?: string;
|
|
83
|
+
formAction?: string;
|
|
84
|
+
formEncType?: string;
|
|
85
|
+
formMethod?: string;
|
|
86
|
+
formNoValidate?: boolean;
|
|
87
|
+
formTarget?: string;
|
|
88
|
+
}
|
|
89
|
+
export interface FormHTMLAttributes extends HTMLAttributes<HTMLFormElement> {
|
|
90
|
+
action?: string;
|
|
91
|
+
method?: 'get' | 'post';
|
|
92
|
+
encType?: string;
|
|
93
|
+
target?: string;
|
|
94
|
+
noValidate?: boolean;
|
|
95
|
+
autoComplete?: 'on' | 'off';
|
|
96
|
+
}
|
|
97
|
+
export interface InputHTMLAttributes extends HTMLAttributes<HTMLInputElement> {
|
|
98
|
+
accept?: string;
|
|
99
|
+
alt?: string;
|
|
100
|
+
autoComplete?: string;
|
|
101
|
+
autoFocus?: boolean;
|
|
102
|
+
capture?: boolean | string;
|
|
103
|
+
checked?: boolean;
|
|
104
|
+
disabled?: boolean;
|
|
105
|
+
form?: string;
|
|
106
|
+
max?: number | string;
|
|
107
|
+
maxLength?: number;
|
|
108
|
+
min?: number | string;
|
|
109
|
+
minLength?: number;
|
|
110
|
+
multiple?: boolean;
|
|
111
|
+
name?: string;
|
|
112
|
+
pattern?: string;
|
|
113
|
+
placeholder?: string;
|
|
114
|
+
readOnly?: boolean;
|
|
115
|
+
required?: boolean;
|
|
116
|
+
size?: number;
|
|
117
|
+
src?: string;
|
|
118
|
+
step?: number | string;
|
|
119
|
+
type?: 'text' | 'password' | 'email' | 'number' | 'tel' | 'url' | 'search' | 'date' | 'time' | 'datetime-local' | 'month' | 'week' | 'checkbox' | 'radio' | 'file' | 'submit' | 'reset' | 'button' | 'hidden' | 'image' | 'color' | 'range';
|
|
120
|
+
value?: string | number;
|
|
121
|
+
}
|
|
122
|
+
export interface TextareaHTMLAttributes extends HTMLAttributes<HTMLTextAreaElement> {
|
|
123
|
+
autoComplete?: string;
|
|
124
|
+
autoFocus?: boolean;
|
|
125
|
+
cols?: number;
|
|
126
|
+
disabled?: boolean;
|
|
127
|
+
form?: string;
|
|
128
|
+
maxLength?: number;
|
|
129
|
+
minLength?: number;
|
|
130
|
+
name?: string;
|
|
131
|
+
placeholder?: string;
|
|
132
|
+
readOnly?: boolean;
|
|
133
|
+
required?: boolean;
|
|
134
|
+
rows?: number;
|
|
135
|
+
value?: string;
|
|
136
|
+
wrap?: 'hard' | 'soft' | 'off';
|
|
137
|
+
}
|
|
138
|
+
export interface SelectHTMLAttributes extends HTMLAttributes<HTMLSelectElement> {
|
|
139
|
+
autoComplete?: string;
|
|
140
|
+
autoFocus?: boolean;
|
|
141
|
+
disabled?: boolean;
|
|
142
|
+
form?: string;
|
|
143
|
+
multiple?: boolean;
|
|
144
|
+
name?: string;
|
|
145
|
+
required?: boolean;
|
|
146
|
+
size?: number;
|
|
147
|
+
value?: string | string[];
|
|
148
|
+
}
|
|
149
|
+
export interface OptionHTMLAttributes extends HTMLAttributes<HTMLOptionElement> {
|
|
150
|
+
disabled?: boolean;
|
|
151
|
+
label?: string;
|
|
152
|
+
selected?: boolean;
|
|
153
|
+
value?: string | number;
|
|
154
|
+
}
|
|
155
|
+
export interface ImgHTMLAttributes extends HTMLAttributes<HTMLImageElement> {
|
|
156
|
+
alt?: string;
|
|
157
|
+
crossOrigin?: 'anonymous' | 'use-credentials';
|
|
158
|
+
decoding?: 'async' | 'auto' | 'sync';
|
|
159
|
+
height?: number | string;
|
|
160
|
+
loading?: 'eager' | 'lazy';
|
|
161
|
+
sizes?: string;
|
|
162
|
+
src?: string;
|
|
163
|
+
srcSet?: string;
|
|
164
|
+
width?: number | string;
|
|
165
|
+
}
|
|
166
|
+
export interface LabelHTMLAttributes extends HTMLAttributes<HTMLLabelElement> {
|
|
167
|
+
htmlFor?: string;
|
|
168
|
+
form?: string;
|
|
169
|
+
}
|
|
170
|
+
export interface VideoHTMLAttributes extends HTMLAttributes<HTMLVideoElement> {
|
|
171
|
+
autoPlay?: boolean;
|
|
172
|
+
controls?: boolean;
|
|
173
|
+
crossOrigin?: string;
|
|
174
|
+
height?: number | string;
|
|
175
|
+
loop?: boolean;
|
|
176
|
+
muted?: boolean;
|
|
177
|
+
poster?: string;
|
|
178
|
+
preload?: string;
|
|
179
|
+
src?: string;
|
|
180
|
+
width?: number | string;
|
|
181
|
+
}
|
|
182
|
+
export interface AudioHTMLAttributes extends HTMLAttributes<HTMLAudioElement> {
|
|
183
|
+
autoPlay?: boolean;
|
|
184
|
+
controls?: boolean;
|
|
185
|
+
crossOrigin?: string;
|
|
186
|
+
loop?: boolean;
|
|
187
|
+
muted?: boolean;
|
|
188
|
+
preload?: string;
|
|
189
|
+
src?: string;
|
|
190
|
+
}
|
|
191
|
+
export interface TableHTMLAttributes extends HTMLAttributes<HTMLTableElement> {
|
|
192
|
+
cellPadding?: number | string;
|
|
193
|
+
cellSpacing?: number | string;
|
|
194
|
+
}
|
|
195
|
+
export interface TdHTMLAttributes extends HTMLAttributes<HTMLTableCellElement> {
|
|
196
|
+
colSpan?: number;
|
|
197
|
+
rowSpan?: number;
|
|
198
|
+
headers?: string;
|
|
199
|
+
}
|
|
200
|
+
export interface ThHTMLAttributes extends HTMLAttributes<HTMLTableCellElement> {
|
|
201
|
+
colSpan?: number;
|
|
202
|
+
rowSpan?: number;
|
|
203
|
+
scope?: 'col' | 'row' | 'colgroup' | 'rowgroup';
|
|
204
|
+
}
|
|
205
|
+
export interface IframeHTMLAttributes extends HTMLAttributes<HTMLIFrameElement> {
|
|
206
|
+
allow?: string;
|
|
207
|
+
allowFullScreen?: boolean;
|
|
208
|
+
height?: number | string;
|
|
209
|
+
loading?: 'eager' | 'lazy';
|
|
210
|
+
name?: string;
|
|
211
|
+
sandbox?: string;
|
|
212
|
+
src?: string;
|
|
213
|
+
srcDoc?: string;
|
|
214
|
+
width?: number | string;
|
|
215
|
+
}
|
|
216
|
+
export interface CanvasHTMLAttributes extends HTMLAttributes<HTMLCanvasElement> {
|
|
217
|
+
height?: number | string;
|
|
218
|
+
width?: number | string;
|
|
219
|
+
}
|
|
220
|
+
export interface SVGAttributes extends HTMLAttributes<SVGElement> {
|
|
221
|
+
viewBox?: string;
|
|
222
|
+
xmlns?: string;
|
|
223
|
+
fill?: string;
|
|
224
|
+
stroke?: string;
|
|
225
|
+
strokeWidth?: number | string;
|
|
226
|
+
strokeLinecap?: 'butt' | 'round' | 'square';
|
|
227
|
+
strokeLinejoin?: 'miter' | 'round' | 'bevel';
|
|
228
|
+
}
|
|
229
|
+
declare global {
|
|
230
|
+
namespace JSX {
|
|
231
|
+
type Element = import('./types').Element;
|
|
232
|
+
interface IntrinsicElements {
|
|
233
|
+
a: AnchorHTMLAttributes;
|
|
234
|
+
abbr: HTMLAttributes<HTMLElement>;
|
|
235
|
+
address: HTMLAttributes<HTMLElement>;
|
|
236
|
+
article: HTMLAttributes<HTMLElement>;
|
|
237
|
+
aside: HTMLAttributes<HTMLElement>;
|
|
238
|
+
b: HTMLAttributes<HTMLElement>;
|
|
239
|
+
blockquote: HTMLAttributes<HTMLQuoteElement>;
|
|
240
|
+
br: HTMLAttributes<HTMLBRElement>;
|
|
241
|
+
cite: HTMLAttributes<HTMLElement>;
|
|
242
|
+
code: HTMLAttributes<HTMLElement>;
|
|
243
|
+
del: HTMLAttributes<HTMLModElement>;
|
|
244
|
+
div: HTMLAttributes<HTMLDivElement>;
|
|
245
|
+
em: HTMLAttributes<HTMLElement>;
|
|
246
|
+
figcaption: HTMLAttributes<HTMLElement>;
|
|
247
|
+
figure: HTMLAttributes<HTMLElement>;
|
|
248
|
+
footer: HTMLAttributes<HTMLElement>;
|
|
249
|
+
h1: HTMLAttributes<HTMLHeadingElement>;
|
|
250
|
+
h2: HTMLAttributes<HTMLHeadingElement>;
|
|
251
|
+
h3: HTMLAttributes<HTMLHeadingElement>;
|
|
252
|
+
h4: HTMLAttributes<HTMLHeadingElement>;
|
|
253
|
+
h5: HTMLAttributes<HTMLHeadingElement>;
|
|
254
|
+
h6: HTMLAttributes<HTMLHeadingElement>;
|
|
255
|
+
header: HTMLAttributes<HTMLElement>;
|
|
256
|
+
hr: HTMLAttributes<HTMLHRElement>;
|
|
257
|
+
i: HTMLAttributes<HTMLElement>;
|
|
258
|
+
ins: HTMLAttributes<HTMLModElement>;
|
|
259
|
+
kbd: HTMLAttributes<HTMLElement>;
|
|
260
|
+
li: HTMLAttributes<HTMLLIElement>;
|
|
261
|
+
main: HTMLAttributes<HTMLElement>;
|
|
262
|
+
mark: HTMLAttributes<HTMLElement>;
|
|
263
|
+
nav: HTMLAttributes<HTMLElement>;
|
|
264
|
+
ol: HTMLAttributes<HTMLOListElement>;
|
|
265
|
+
p: HTMLAttributes<HTMLParagraphElement>;
|
|
266
|
+
pre: HTMLAttributes<HTMLPreElement>;
|
|
267
|
+
q: HTMLAttributes<HTMLQuoteElement>;
|
|
268
|
+
s: HTMLAttributes<HTMLElement>;
|
|
269
|
+
section: HTMLAttributes<HTMLElement>;
|
|
270
|
+
small: HTMLAttributes<HTMLElement>;
|
|
271
|
+
span: HTMLAttributes<HTMLSpanElement>;
|
|
272
|
+
strong: HTMLAttributes<HTMLElement>;
|
|
273
|
+
sub: HTMLAttributes<HTMLElement>;
|
|
274
|
+
sup: HTMLAttributes<HTMLElement>;
|
|
275
|
+
u: HTMLAttributes<HTMLElement>;
|
|
276
|
+
ul: HTMLAttributes<HTMLUListElement>;
|
|
277
|
+
button: ButtonHTMLAttributes;
|
|
278
|
+
datalist: HTMLAttributes<HTMLDataListElement>;
|
|
279
|
+
fieldset: HTMLAttributes<HTMLFieldSetElement>;
|
|
280
|
+
form: FormHTMLAttributes;
|
|
281
|
+
input: InputHTMLAttributes;
|
|
282
|
+
label: LabelHTMLAttributes;
|
|
283
|
+
legend: HTMLAttributes<HTMLLegendElement>;
|
|
284
|
+
meter: HTMLAttributes<HTMLMeterElement>;
|
|
285
|
+
optgroup: HTMLAttributes<HTMLOptGroupElement>;
|
|
286
|
+
option: OptionHTMLAttributes;
|
|
287
|
+
output: HTMLAttributes<HTMLOutputElement>;
|
|
288
|
+
progress: HTMLAttributes<HTMLProgressElement>;
|
|
289
|
+
select: SelectHTMLAttributes;
|
|
290
|
+
textarea: TextareaHTMLAttributes;
|
|
291
|
+
audio: AudioHTMLAttributes;
|
|
292
|
+
canvas: CanvasHTMLAttributes;
|
|
293
|
+
img: ImgHTMLAttributes;
|
|
294
|
+
picture: HTMLAttributes<HTMLPictureElement>;
|
|
295
|
+
video: VideoHTMLAttributes;
|
|
296
|
+
caption: HTMLAttributes<HTMLTableCaptionElement>;
|
|
297
|
+
col: HTMLAttributes<HTMLTableColElement>;
|
|
298
|
+
colgroup: HTMLAttributes<HTMLTableColElement>;
|
|
299
|
+
table: TableHTMLAttributes;
|
|
300
|
+
tbody: HTMLAttributes<HTMLTableSectionElement>;
|
|
301
|
+
td: TdHTMLAttributes;
|
|
302
|
+
tfoot: HTMLAttributes<HTMLTableSectionElement>;
|
|
303
|
+
th: ThHTMLAttributes;
|
|
304
|
+
thead: HTMLAttributes<HTMLTableSectionElement>;
|
|
305
|
+
tr: HTMLAttributes<HTMLTableRowElement>;
|
|
306
|
+
details: HTMLAttributes<HTMLDetailsElement>;
|
|
307
|
+
dialog: HTMLAttributes<HTMLDialogElement>;
|
|
308
|
+
iframe: IframeHTMLAttributes;
|
|
309
|
+
menu: HTMLAttributes<HTMLMenuElement>;
|
|
310
|
+
script: HTMLAttributes<HTMLScriptElement>;
|
|
311
|
+
style: HTMLAttributes<HTMLStyleElement>;
|
|
312
|
+
summary: HTMLAttributes<HTMLElement>;
|
|
313
|
+
template: HTMLAttributes<HTMLTemplateElement>;
|
|
314
|
+
svg: SVGAttributes;
|
|
315
|
+
circle: SVGAttributes;
|
|
316
|
+
ellipse: SVGAttributes;
|
|
317
|
+
line: SVGAttributes;
|
|
318
|
+
path: SVGAttributes;
|
|
319
|
+
polygon: SVGAttributes;
|
|
320
|
+
polyline: SVGAttributes;
|
|
321
|
+
rect: SVGAttributes;
|
|
322
|
+
g: SVGAttributes;
|
|
323
|
+
defs: SVGAttributes;
|
|
324
|
+
[elemName: string]: any;
|
|
325
|
+
}
|
|
326
|
+
interface ElementChildrenAttribute {
|
|
327
|
+
children: {};
|
|
328
|
+
}
|
|
329
|
+
}
|
|
31
330
|
}
|
|
331
|
+
export {};
|