elements-kit 0.0.1 → 0.0.2
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/README.md +252 -16
- package/dist/attributes.d.mts +90 -0
- package/dist/attributes.mjs +82 -0
- package/dist/builder/dom.d.mts +213 -0
- package/dist/builder/dom.mjs +208 -0
- package/dist/builder/index.d.mts +89 -0
- package/dist/builder/index.mjs +115 -0
- package/dist/element-B3gwJmBr.mjs +277 -0
- package/dist/index.d.mts +36 -0
- package/dist/index.mjs +130 -0
- package/dist/jsx-runtime/index.d.mts +70 -0
- package/dist/jsx-runtime/index.mjs +4 -0
- package/dist/polyfill-Bvo2e52W.d.mts +14 -0
- package/dist/polyfill-DAalJpCO.mjs +20 -0
- package/dist/signals.d.mts +40 -3
- package/dist/signals.mjs +74 -3
- package/dist/slot.d.mts +74 -0
- package/dist/slot.mjs +143 -0
- package/package.json +40 -14
- package/dist/builder.d.mts +0 -11799
- package/dist/builder.mjs +0 -208
- package/dist/chunk-CFhWmker.mjs +0 -36
- package/dist/core.d.mts +0 -14
- package/dist/core.mjs +0 -74
- package/dist/signals-BGUPt0zl.mjs +0 -13
- package/dist/signals-BzhB4Ch2.d.mts +0 -10
package/README.md
CHANGED
|
@@ -1,22 +1,258 @@
|
|
|
1
|
-
#
|
|
1
|
+
# ElementsKit
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A lightweight reactive UI library built on JSX and native DOM APIs. No virtual DOM, no diffing — fine-grained reactivity that updates only what changes.
|
|
4
4
|
|
|
5
5
|
```tsx
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
6
|
+
import { signal, computed } from "elements-kit/signals";
|
|
7
|
+
|
|
8
|
+
class Counter {
|
|
9
|
+
#count = signal(0);
|
|
10
|
+
|
|
11
|
+
render() {
|
|
12
|
+
return (
|
|
13
|
+
<section>
|
|
14
|
+
<p>Count: <strong>{this.#count}</strong></p>
|
|
15
|
+
<button onClick={() => this.#count(this.#count() + 1)}>+1</button>
|
|
16
|
+
</section>
|
|
17
|
+
) as Element;
|
|
18
|
+
}
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
document.
|
|
21
|
+
document.getElementById("app")!.appendChild(new Counter().render());
|
|
22
22
|
```
|
|
23
|
+
|
|
24
|
+
## Principles
|
|
25
|
+
|
|
26
|
+
- **Direct DOM Manipulation** — Works with native HTMLElements, no virtual DOM or diffing overhead
|
|
27
|
+
- **Fine-Grained Reactivity** — Only the exact DOM nodes that depend on a changed signal update
|
|
28
|
+
- **JSX Without a Framework** — Standard JSX syntax compiled to real DOM nodes, no plugin required
|
|
29
|
+
- **Decorator-Driven** — `@reactive()` turns any class field into a signal transparently
|
|
30
|
+
- **Web Component Ready** — First-class support for custom elements and `attributeChangedCallback`
|
|
31
|
+
- **Type-Safe** — Full TypeScript support with comprehensive type inference
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Signals
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
import { signal, computed, effect, batch, untracked } from "elements-kit/signals";
|
|
39
|
+
|
|
40
|
+
const count = signal(0); // writable signal
|
|
41
|
+
const doubled = computed(() => count() * 2); // derived, read-only
|
|
42
|
+
|
|
43
|
+
effect(() => console.log(count())); // runs whenever count changes
|
|
44
|
+
|
|
45
|
+
count(count() + 1); // write by calling with a value
|
|
46
|
+
console.log(count()); // read by calling with no arguments
|
|
47
|
+
|
|
48
|
+
batch(() => { // defer updates until the batch ends
|
|
49
|
+
count(10);
|
|
50
|
+
count(20);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
const raw = untracked(() => count()); // read without subscribing
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Signals are the reactive primitive. Passing a signal directly as a JSX child or prop creates a live binding — no wrapper needed:
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
const name = signal("world");
|
|
60
|
+
|
|
61
|
+
// Both are equivalent live bindings:
|
|
62
|
+
<p>{name}</p>
|
|
63
|
+
<p>{() => name()}</p>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## JSX
|
|
69
|
+
|
|
70
|
+
Configure your `tsconfig.json` to use the built-in JSX runtime:
|
|
71
|
+
|
|
72
|
+
```json
|
|
73
|
+
{
|
|
74
|
+
"compilerOptions": {
|
|
75
|
+
"jsx": "react-jsx",
|
|
76
|
+
"jsxImportSource": "elements-kit"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Props
|
|
82
|
+
|
|
83
|
+
| Syntax | Effect |
|
|
84
|
+
| --- | --- |
|
|
85
|
+
| `value={signal}` | Live-bound — updates DOM when signal changes |
|
|
86
|
+
| `value={42}` | Set once at render time |
|
|
87
|
+
| `onClick={fn}` | Camel-case event listener (`onclick`) |
|
|
88
|
+
| `on:click={fn}` | Explicit event namespace |
|
|
89
|
+
| `style:color={signal}` | Reactive inline style property |
|
|
90
|
+
| `class:active={signal}` | Reactive `classList.toggle` |
|
|
91
|
+
| `prop:foo={val}` | Force property assignment (bypasses `setAttribute`) |
|
|
92
|
+
|
|
93
|
+
```tsx
|
|
94
|
+
const active = signal(false);
|
|
95
|
+
const label = signal("Submit");
|
|
96
|
+
|
|
97
|
+
<button
|
|
98
|
+
class:active={active}
|
|
99
|
+
style:opacity={computed(() => active() ? "1" : "0.5")}
|
|
100
|
+
onClick={() => (active(!active()))}
|
|
101
|
+
>
|
|
102
|
+
{label}
|
|
103
|
+
</button>
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Children
|
|
107
|
+
|
|
108
|
+
Any of the following are valid children:
|
|
109
|
+
|
|
110
|
+
- Primitive values (`string`, `number`, …)
|
|
111
|
+
- `Node` / `Element`
|
|
112
|
+
- A signal or `computed` — re-renders in place when it changes
|
|
113
|
+
- A plain function `() => value` — re-evaluated reactively
|
|
114
|
+
- Arrays of the above
|
|
115
|
+
|
|
116
|
+
```tsx
|
|
117
|
+
const show = signal(true);
|
|
118
|
+
|
|
119
|
+
<div>
|
|
120
|
+
<strong>Static text</strong>
|
|
121
|
+
{count} // signal — live
|
|
122
|
+
{() => count() * 2} // thunk — live
|
|
123
|
+
{() => show() && <span>Conditional</span>}
|
|
124
|
+
</div>
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## `@reactive()` Decorator
|
|
130
|
+
|
|
131
|
+
Makes any class field behave like a signal — reads subscribe, writes trigger updates.
|
|
132
|
+
|
|
133
|
+
```ts
|
|
134
|
+
import { computed, reactive } from "elements-kit/signals";
|
|
135
|
+
|
|
136
|
+
class Todo {
|
|
137
|
+
text: string;
|
|
138
|
+
@reactive() done: boolean;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
class TodoApp {
|
|
142
|
+
@reactive()
|
|
143
|
+
todos: Todo[] = [];
|
|
144
|
+
|
|
145
|
+
@reactive()
|
|
146
|
+
showDone = true;
|
|
147
|
+
|
|
148
|
+
// Bind to an existing computed
|
|
149
|
+
@reactive((self) => computed(() => self.todos.filter(t => !t.done)))
|
|
150
|
+
readonly pending: Todo[] = [];
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
`@reactive()` without arguments auto-wraps the field's initial value in a `signal`. Pass a factory `(self) => signal | computed` to bind the field to an existing reactive value.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## `@attributes` Decorator
|
|
159
|
+
|
|
160
|
+
Automatically wires `observedAttributes` and `attributeChangedCallback` for custom elements from a static `[ATTRIBUTES]` map.
|
|
161
|
+
|
|
162
|
+
```ts
|
|
163
|
+
import { attributes, ATTRIBUTES as attr } from "elements-kit/attributes";
|
|
164
|
+
import { signal, reactive } from "elements-kit/signals";
|
|
165
|
+
|
|
166
|
+
@attributes
|
|
167
|
+
class Counter extends HTMLElement {
|
|
168
|
+
static [attr] = {
|
|
169
|
+
count(this: Counter, value: string | null) {
|
|
170
|
+
this.count = Number(value); // calls the @reactive setter
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
#count = signal(0);
|
|
175
|
+
|
|
176
|
+
@reactive((s) => s.#count)
|
|
177
|
+
count: number = 0;
|
|
178
|
+
|
|
179
|
+
connectedCallback() {
|
|
180
|
+
const Host = this;
|
|
181
|
+
<Host>
|
|
182
|
+
<p>Count: <strong>{this.#count}</strong></p>
|
|
183
|
+
<button onClick={() => this.count++}>+1</button>
|
|
184
|
+
</Host>;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
customElements.define("x-counter", Counter);
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
Use `<x-counter count={signal(9)} />` to pass a reactive attribute from JSX.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## `For` — Keyed List Rendering
|
|
196
|
+
|
|
197
|
+
Efficiently reconciles a reactive array into the DOM. Each item is rendered once per unique key — no full re-renders on reorder, add, or remove.
|
|
198
|
+
|
|
199
|
+
```tsx
|
|
200
|
+
import { For } from "elements-kit";
|
|
201
|
+
|
|
202
|
+
const todos = computed(() => state.todos.filter(t => !t.done));
|
|
203
|
+
|
|
204
|
+
<ul>
|
|
205
|
+
<For each={todos} by={(todo) => todo.id}>
|
|
206
|
+
{(todo) => (
|
|
207
|
+
<li
|
|
208
|
+
style:text-decoration={computed(() => todo.done ? "line-through" : "none")}
|
|
209
|
+
>
|
|
210
|
+
<input
|
|
211
|
+
type="checkbox"
|
|
212
|
+
checked={computed(() => todo.done)}
|
|
213
|
+
on:change={() => (todo.done = !todo.done)}
|
|
214
|
+
/>{" "}
|
|
215
|
+
{todo.text}
|
|
216
|
+
</li>
|
|
217
|
+
)}
|
|
218
|
+
</For>
|
|
219
|
+
</ul>
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
| Prop | Type | Description |
|
|
223
|
+
| --- | --- | --- |
|
|
224
|
+
| `each` | `T[] \| (() => T[])` | Reactive array to render |
|
|
225
|
+
| `by` | `(item: T, index: number) => string \| number` | Key function — defaults to index |
|
|
226
|
+
| `children` | `(item: T, index: number) => Element` | Render function, called once per new key |
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Class Components
|
|
231
|
+
|
|
232
|
+
Any class with a `render()` method returning an `Element` or `DocumentFragment` works as a component. JSX instantiates it automatically:
|
|
233
|
+
|
|
234
|
+
```tsx
|
|
235
|
+
class App {
|
|
236
|
+
render() {
|
|
237
|
+
return (
|
|
238
|
+
<div style="max-width: 480px; margin: 40px auto">
|
|
239
|
+
<h1>My App</h1>
|
|
240
|
+
<x-counter count={signal(0)} />
|
|
241
|
+
<TodoApp />
|
|
242
|
+
</div>
|
|
243
|
+
) as Element;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
document.getElementById("app")!.appendChild(new App().render());
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## TO-DO
|
|
253
|
+
|
|
254
|
+
- [ ] Complete type safety
|
|
255
|
+
- [ ] Async signal
|
|
256
|
+
- [ ] URLPattern signal
|
|
257
|
+
- [ ] Context
|
|
258
|
+
- [ ] `Key` component (conditional key-gated subtrees)
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
//#region src/attributes.d.ts
|
|
2
|
+
interface AttrChangeHandler<T> {
|
|
3
|
+
(this: T, value: string | null, oldValue?: string | null): void;
|
|
4
|
+
}
|
|
5
|
+
declare const ATTRIBUTES: unique symbol;
|
|
6
|
+
/**
|
|
7
|
+
* Dispatches an attribute change to the matching handler in the static `attributes` map,
|
|
8
|
+
* walking the prototype chain for inherited handlers.
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* class MyElement extends HTMLElement {
|
|
12
|
+
* static [ATTRIBUTES]: Attributes<MyElement> = {
|
|
13
|
+
* count(value) {
|
|
14
|
+
* this.#count = Number(value);
|
|
15
|
+
* },
|
|
16
|
+
* };
|
|
17
|
+
* static observedAttributes: string[] = observedAttributes(MyElement);
|
|
18
|
+
*
|
|
19
|
+
* attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {
|
|
20
|
+
* dispatchAttrChange.call(this, name, oldValue, newValue);
|
|
21
|
+
* }
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
declare function dispatchAttrChange<T extends {
|
|
26
|
+
constructor: {
|
|
27
|
+
[ATTRIBUTES]: Record<string, AttrChangeHandler<T>>;
|
|
28
|
+
};
|
|
29
|
+
}>(this: T, name: string, oldValue: string | null, newValue: string | null): void;
|
|
30
|
+
type Attributes<T> = Record<string, AttrChangeHandler<T>>;
|
|
31
|
+
/**
|
|
32
|
+
* Returns a deduplicated array of all observed attribute names for a custom element class and its ancestors.
|
|
33
|
+
*
|
|
34
|
+
* Call after defining static `[ATTRIBUTES]`, and assign to static `observedAttributes`.
|
|
35
|
+
*
|
|
36
|
+
* Example:
|
|
37
|
+
* ```ts
|
|
38
|
+
* class MyElement extends HTMLElement {
|
|
39
|
+
* static [ATTRIBUTES]: Attributes<MyElement> = {
|
|
40
|
+
* count(value) {
|
|
41
|
+
* this.#count = Number(value);
|
|
42
|
+
* },
|
|
43
|
+
* };
|
|
44
|
+
* static observedAttributes: string[] = observedAttributes(MyElement);
|
|
45
|
+
* }
|
|
46
|
+
*
|
|
47
|
+
* class ChildElement extends MyElement {
|
|
48
|
+
* static [ATTRIBUTES]: Attributes<ChildElement> = {
|
|
49
|
+
* bar(value) {
|
|
50
|
+
* // ...
|
|
51
|
+
* },
|
|
52
|
+
* };
|
|
53
|
+
* static observedAttributes: string[] = observedAttributes(ChildElement);
|
|
54
|
+
* }
|
|
55
|
+
* // ChildElement.observedAttributes will include both 'count' and 'bar', deduplicated.
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* @param cls The custom element class constructor
|
|
59
|
+
* @returns Array of unique attribute names to observe
|
|
60
|
+
*/
|
|
61
|
+
declare function observedAttributes(cls: any): string[];
|
|
62
|
+
/**
|
|
63
|
+
* A class decorator that automatically wires up `observedAttributes` and `attributeChangedCallback`
|
|
64
|
+
* from a static `[ATTRIBUTES]` map.
|
|
65
|
+
*
|
|
66
|
+
* The `this` type inside attribute handlers is automatically inferred from the decorated class.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```ts
|
|
70
|
+
* @attributes
|
|
71
|
+
* class MyElement extends HTMLElement {
|
|
72
|
+
* static [ATTRIBUTES] = {
|
|
73
|
+
* count(this: MyElement, value: string | null) {
|
|
74
|
+
* this.count = Number(value);
|
|
75
|
+
* },
|
|
76
|
+
* };
|
|
77
|
+
* }
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
type AttributeTarget<T extends abstract new (...args: any[]) => HTMLElement> = T & {
|
|
81
|
+
[ATTRIBUTES]: Record<string, AttrChangeHandler<InstanceType<T>>>;
|
|
82
|
+
};
|
|
83
|
+
type AttributeDecorated<T extends abstract new (...args: any[]) => HTMLElement> = T & (new (...args: any[]) => InstanceType<T> & {
|
|
84
|
+
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
85
|
+
}) & {
|
|
86
|
+
observedAttributes: string[];
|
|
87
|
+
};
|
|
88
|
+
declare function attributes<T extends abstract new (...args: any[]) => HTMLElement>(target: AttributeTarget<T>, context: ClassDecoratorContext<T>): AttributeDecorated<T>;
|
|
89
|
+
//#endregion
|
|
90
|
+
export { ATTRIBUTES, AttrChangeHandler, AttributeDecorated, AttributeTarget, Attributes, attributes, dispatchAttrChange, observedAttributes };
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
//#region src/attributes.ts
|
|
2
|
+
const ATTRIBUTES = Symbol("attributes");
|
|
3
|
+
/**
|
|
4
|
+
* Dispatches an attribute change to the matching handler in the static `attributes` map,
|
|
5
|
+
* walking the prototype chain for inherited handlers.
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* class MyElement extends HTMLElement {
|
|
9
|
+
* static [ATTRIBUTES]: Attributes<MyElement> = {
|
|
10
|
+
* count(value) {
|
|
11
|
+
* this.#count = Number(value);
|
|
12
|
+
* },
|
|
13
|
+
* };
|
|
14
|
+
* static observedAttributes: string[] = observedAttributes(MyElement);
|
|
15
|
+
*
|
|
16
|
+
* attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {
|
|
17
|
+
* dispatchAttrChange.call(this, name, oldValue, newValue);
|
|
18
|
+
* }
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
function dispatchAttrChange(name, oldValue, newValue) {
|
|
23
|
+
let cls = this.constructor;
|
|
24
|
+
while (cls) {
|
|
25
|
+
if (cls[ATTRIBUTES] && name in cls[ATTRIBUTES]) {
|
|
26
|
+
cls[ATTRIBUTES][name].call(this, newValue, oldValue);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
cls = Object.getPrototypeOf(cls);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Returns a deduplicated array of all observed attribute names for a custom element class and its ancestors.
|
|
34
|
+
*
|
|
35
|
+
* Call after defining static `[ATTRIBUTES]`, and assign to static `observedAttributes`.
|
|
36
|
+
*
|
|
37
|
+
* Example:
|
|
38
|
+
* ```ts
|
|
39
|
+
* class MyElement extends HTMLElement {
|
|
40
|
+
* static [ATTRIBUTES]: Attributes<MyElement> = {
|
|
41
|
+
* count(value) {
|
|
42
|
+
* this.#count = Number(value);
|
|
43
|
+
* },
|
|
44
|
+
* };
|
|
45
|
+
* static observedAttributes: string[] = observedAttributes(MyElement);
|
|
46
|
+
* }
|
|
47
|
+
*
|
|
48
|
+
* class ChildElement extends MyElement {
|
|
49
|
+
* static [ATTRIBUTES]: Attributes<ChildElement> = {
|
|
50
|
+
* bar(value) {
|
|
51
|
+
* // ...
|
|
52
|
+
* },
|
|
53
|
+
* };
|
|
54
|
+
* static observedAttributes: string[] = observedAttributes(ChildElement);
|
|
55
|
+
* }
|
|
56
|
+
* // ChildElement.observedAttributes will include both 'count' and 'bar', deduplicated.
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* @param cls The custom element class constructor
|
|
60
|
+
* @returns Array of unique attribute names to observe
|
|
61
|
+
*/
|
|
62
|
+
function observedAttributes(cls) {
|
|
63
|
+
const s = new Set(Object.keys(cls[ATTRIBUTES] || {}));
|
|
64
|
+
let _cls = Object.getPrototypeOf(cls);
|
|
65
|
+
while (_cls) {
|
|
66
|
+
if (_cls.observedAttributes) _cls.observedAttributes.forEach((attr) => s.add(attr));
|
|
67
|
+
_cls = Object.getPrototypeOf(_cls);
|
|
68
|
+
}
|
|
69
|
+
return Array.from(s);
|
|
70
|
+
}
|
|
71
|
+
function attributes(target, context) {
|
|
72
|
+
context.addInitializer(function() {
|
|
73
|
+
target.observedAttributes = observedAttributes(target);
|
|
74
|
+
});
|
|
75
|
+
target.prototype.attributeChangedCallback = function(name, oldValue, newValue) {
|
|
76
|
+
dispatchAttrChange.call(this, name, oldValue, newValue);
|
|
77
|
+
};
|
|
78
|
+
return target;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
//#endregion
|
|
82
|
+
export { ATTRIBUTES, attributes, dispatchAttrChange, observedAttributes };
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import "../polyfill-Bvo2e52W.mjs";
|
|
2
|
+
import { ReactiveElementOf } from "./index.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/builder/dom.d.ts
|
|
5
|
+
interface Lifecycle {
|
|
6
|
+
connectedCallback?(): void;
|
|
7
|
+
disconnectedCallback?(): void;
|
|
8
|
+
attributeChangedCallback?(name: string, oldValue: string | null, newValue: string | null): void;
|
|
9
|
+
adoptedCallback?(): void;
|
|
10
|
+
}
|
|
11
|
+
declare const a: () => ReactiveElementOf<HTMLAnchorElement>;
|
|
12
|
+
declare const abbr: () => ReactiveElementOf<HTMLElement>;
|
|
13
|
+
declare const address: () => ReactiveElementOf<HTMLElement>;
|
|
14
|
+
declare const area: () => ReactiveElementOf<HTMLAreaElement>;
|
|
15
|
+
declare const article: () => ReactiveElementOf<HTMLElement>;
|
|
16
|
+
declare const aside: () => ReactiveElementOf<HTMLElement>;
|
|
17
|
+
declare const audio: () => ReactiveElementOf<HTMLAudioElement>;
|
|
18
|
+
declare const b: () => ReactiveElementOf<HTMLElement>;
|
|
19
|
+
declare const base: () => ReactiveElementOf<HTMLBaseElement>;
|
|
20
|
+
declare const bdi: () => ReactiveElementOf<HTMLElement>;
|
|
21
|
+
declare const bdo: () => ReactiveElementOf<HTMLElement>;
|
|
22
|
+
declare const blockquote: () => ReactiveElementOf<HTMLQuoteElement>;
|
|
23
|
+
declare const body: () => ReactiveElementOf<HTMLBodyElement>;
|
|
24
|
+
declare const br: () => ReactiveElementOf<HTMLBRElement>;
|
|
25
|
+
declare const button: () => ReactiveElementOf<HTMLButtonElement>;
|
|
26
|
+
declare const canvas: () => ReactiveElementOf<HTMLCanvasElement>;
|
|
27
|
+
declare const caption: () => ReactiveElementOf<HTMLTableCaptionElement>;
|
|
28
|
+
declare const cite: () => ReactiveElementOf<HTMLElement>;
|
|
29
|
+
declare const code: () => ReactiveElementOf<HTMLElement>;
|
|
30
|
+
declare const col: () => ReactiveElementOf<HTMLTableColElement>;
|
|
31
|
+
declare const colgroup: () => ReactiveElementOf<HTMLTableColElement>;
|
|
32
|
+
declare const data: () => ReactiveElementOf<HTMLDataElement>;
|
|
33
|
+
declare const datalist: () => ReactiveElementOf<HTMLDataListElement>;
|
|
34
|
+
declare const dd: () => ReactiveElementOf<HTMLElement>;
|
|
35
|
+
declare const del: () => ReactiveElementOf<HTMLModElement>;
|
|
36
|
+
declare const details: () => ReactiveElementOf<HTMLDetailsElement>;
|
|
37
|
+
declare const dfn: () => ReactiveElementOf<HTMLElement>;
|
|
38
|
+
declare const dialog: () => ReactiveElementOf<HTMLDialogElement>;
|
|
39
|
+
declare const div: () => ReactiveElementOf<HTMLDivElement>;
|
|
40
|
+
declare const dl: () => ReactiveElementOf<HTMLDListElement>;
|
|
41
|
+
declare const dt: () => ReactiveElementOf<HTMLElement>;
|
|
42
|
+
declare const em: () => ReactiveElementOf<HTMLElement>;
|
|
43
|
+
declare const embed: () => ReactiveElementOf<HTMLEmbedElement>;
|
|
44
|
+
declare const fieldset: () => ReactiveElementOf<HTMLFieldSetElement>;
|
|
45
|
+
declare const figcaption: () => ReactiveElementOf<HTMLElement>;
|
|
46
|
+
declare const figure: () => ReactiveElementOf<HTMLElement>;
|
|
47
|
+
declare const footer: () => ReactiveElementOf<HTMLElement>;
|
|
48
|
+
declare const form: () => ReactiveElementOf<HTMLFormElement>;
|
|
49
|
+
declare const h1: () => ReactiveElementOf<HTMLHeadingElement>;
|
|
50
|
+
declare const h2: () => ReactiveElementOf<HTMLHeadingElement>;
|
|
51
|
+
declare const h3: () => ReactiveElementOf<HTMLHeadingElement>;
|
|
52
|
+
declare const h4: () => ReactiveElementOf<HTMLHeadingElement>;
|
|
53
|
+
declare const h5: () => ReactiveElementOf<HTMLHeadingElement>;
|
|
54
|
+
declare const h6: () => ReactiveElementOf<HTMLHeadingElement>;
|
|
55
|
+
declare const head: () => ReactiveElementOf<HTMLHeadElement>;
|
|
56
|
+
declare const header: () => ReactiveElementOf<HTMLElement>;
|
|
57
|
+
declare const hgroup: () => ReactiveElementOf<HTMLElement>;
|
|
58
|
+
declare const hr: () => ReactiveElementOf<HTMLHRElement>;
|
|
59
|
+
declare const html: () => ReactiveElementOf<HTMLHtmlElement>;
|
|
60
|
+
declare const i: () => ReactiveElementOf<HTMLElement>;
|
|
61
|
+
declare const iframe: () => ReactiveElementOf<HTMLIFrameElement>;
|
|
62
|
+
declare const img: () => ReactiveElementOf<HTMLImageElement>;
|
|
63
|
+
declare const input: () => ReactiveElementOf<HTMLInputElement>;
|
|
64
|
+
declare const ins: () => ReactiveElementOf<HTMLModElement>;
|
|
65
|
+
declare const kbd: () => ReactiveElementOf<HTMLElement>;
|
|
66
|
+
declare const label: () => ReactiveElementOf<HTMLLabelElement>;
|
|
67
|
+
declare const legend: () => ReactiveElementOf<HTMLLegendElement>;
|
|
68
|
+
declare const li: () => ReactiveElementOf<HTMLLIElement>;
|
|
69
|
+
declare const link: () => ReactiveElementOf<HTMLLinkElement>;
|
|
70
|
+
declare const main: () => ReactiveElementOf<HTMLElement>;
|
|
71
|
+
declare const map: () => ReactiveElementOf<HTMLMapElement>;
|
|
72
|
+
declare const mark: () => ReactiveElementOf<HTMLElement>;
|
|
73
|
+
declare const menu: () => ReactiveElementOf<HTMLMenuElement>;
|
|
74
|
+
declare const meta: () => ReactiveElementOf<HTMLMetaElement>;
|
|
75
|
+
declare const meter: () => ReactiveElementOf<HTMLMeterElement>;
|
|
76
|
+
declare const nav: () => ReactiveElementOf<HTMLElement>;
|
|
77
|
+
declare const noscript: () => ReactiveElementOf<HTMLElement>;
|
|
78
|
+
declare const object: () => ReactiveElementOf<HTMLObjectElement>;
|
|
79
|
+
declare const ol: () => ReactiveElementOf<HTMLOListElement>;
|
|
80
|
+
declare const optgroup: () => ReactiveElementOf<HTMLOptGroupElement>;
|
|
81
|
+
declare const option: () => ReactiveElementOf<HTMLOptionElement>;
|
|
82
|
+
declare const output: () => ReactiveElementOf<HTMLOutputElement>;
|
|
83
|
+
declare const p: () => ReactiveElementOf<HTMLParagraphElement>;
|
|
84
|
+
declare const picture: () => ReactiveElementOf<HTMLPictureElement>;
|
|
85
|
+
declare const pre: () => ReactiveElementOf<HTMLPreElement>;
|
|
86
|
+
declare const progress: () => ReactiveElementOf<HTMLProgressElement>;
|
|
87
|
+
declare const q: () => ReactiveElementOf<HTMLQuoteElement>;
|
|
88
|
+
declare const rp: () => ReactiveElementOf<HTMLElement>;
|
|
89
|
+
declare const rt: () => ReactiveElementOf<HTMLElement>;
|
|
90
|
+
declare const ruby: () => ReactiveElementOf<HTMLElement>;
|
|
91
|
+
declare const s: () => ReactiveElementOf<HTMLElement>;
|
|
92
|
+
declare const samp: () => ReactiveElementOf<HTMLElement>;
|
|
93
|
+
declare const script: () => ReactiveElementOf<HTMLScriptElement>;
|
|
94
|
+
declare const search: () => ReactiveElementOf<HTMLElement>;
|
|
95
|
+
declare const section: () => ReactiveElementOf<HTMLElement>;
|
|
96
|
+
declare const select: () => ReactiveElementOf<HTMLSelectElement>;
|
|
97
|
+
declare const slot: () => ReactiveElementOf<HTMLSlotElement>;
|
|
98
|
+
declare const small: () => ReactiveElementOf<HTMLElement>;
|
|
99
|
+
declare const source: () => ReactiveElementOf<HTMLSourceElement>;
|
|
100
|
+
declare const span: () => ReactiveElementOf<HTMLSpanElement>;
|
|
101
|
+
declare const strong: () => ReactiveElementOf<HTMLElement>;
|
|
102
|
+
declare const style: () => ReactiveElementOf<HTMLStyleElement>;
|
|
103
|
+
declare const sub: () => ReactiveElementOf<HTMLElement>;
|
|
104
|
+
declare const summary: () => ReactiveElementOf<HTMLElement>;
|
|
105
|
+
declare const sup: () => ReactiveElementOf<HTMLElement>;
|
|
106
|
+
declare const table: () => ReactiveElementOf<HTMLTableElement>;
|
|
107
|
+
declare const tbody: () => ReactiveElementOf<HTMLTableSectionElement>;
|
|
108
|
+
declare const td: () => ReactiveElementOf<HTMLTableCellElement>;
|
|
109
|
+
declare const template: () => ReactiveElementOf<HTMLTemplateElement>;
|
|
110
|
+
declare const textarea: () => ReactiveElementOf<HTMLTextAreaElement>;
|
|
111
|
+
declare const tfoot: () => ReactiveElementOf<HTMLTableSectionElement>;
|
|
112
|
+
declare const th: () => ReactiveElementOf<HTMLTableCellElement>;
|
|
113
|
+
declare const thead: () => ReactiveElementOf<HTMLTableSectionElement>;
|
|
114
|
+
declare const time: () => ReactiveElementOf<HTMLTimeElement>;
|
|
115
|
+
declare const title: () => ReactiveElementOf<HTMLTitleElement>;
|
|
116
|
+
declare const tr: () => ReactiveElementOf<HTMLTableRowElement>;
|
|
117
|
+
declare const track: () => ReactiveElementOf<HTMLTrackElement>;
|
|
118
|
+
declare const u: () => ReactiveElementOf<HTMLElement>;
|
|
119
|
+
declare const ul: () => ReactiveElementOf<HTMLUListElement>;
|
|
120
|
+
declare const mathVar: () => ReactiveElementOf<HTMLElement>;
|
|
121
|
+
declare const video: () => ReactiveElementOf<HTMLVideoElement>;
|
|
122
|
+
declare const wbr: () => ReactiveElementOf<HTMLElement>;
|
|
123
|
+
declare const animate: () => ReactiveElementOf<SVGAnimateElement>;
|
|
124
|
+
declare const animateMotion: () => ReactiveElementOf<SVGAnimateMotionElement>;
|
|
125
|
+
declare const animateTransform: () => ReactiveElementOf<SVGAnimateTransformElement>;
|
|
126
|
+
declare const circle: () => ReactiveElementOf<SVGCircleElement>;
|
|
127
|
+
declare const clipPath: () => ReactiveElementOf<SVGClipPathElement>;
|
|
128
|
+
declare const defs: () => ReactiveElementOf<SVGDefsElement>;
|
|
129
|
+
declare const desc: () => ReactiveElementOf<SVGDescElement>;
|
|
130
|
+
declare const ellipse: () => ReactiveElementOf<SVGEllipseElement>;
|
|
131
|
+
declare const feBlend: () => ReactiveElementOf<SVGFEBlendElement>;
|
|
132
|
+
declare const feColorMatrix: () => ReactiveElementOf<SVGFEColorMatrixElement>;
|
|
133
|
+
declare const feComponentTransfer: () => ReactiveElementOf<SVGFEComponentTransferElement>;
|
|
134
|
+
declare const feComposite: () => ReactiveElementOf<SVGFECompositeElement>;
|
|
135
|
+
declare const feConvolveMatrix: () => ReactiveElementOf<SVGFEConvolveMatrixElement>;
|
|
136
|
+
declare const feDiffuseLighting: () => ReactiveElementOf<SVGFEDiffuseLightingElement>;
|
|
137
|
+
declare const feDisplacementMap: () => ReactiveElementOf<SVGFEDisplacementMapElement>;
|
|
138
|
+
declare const feDistantLight: () => ReactiveElementOf<SVGFEDistantLightElement>;
|
|
139
|
+
declare const feDropShadow: () => ReactiveElementOf<SVGFEDropShadowElement>;
|
|
140
|
+
declare const feFlood: () => ReactiveElementOf<SVGFEFloodElement>;
|
|
141
|
+
declare const feFuncA: () => ReactiveElementOf<SVGFEFuncAElement>;
|
|
142
|
+
declare const feFuncB: () => ReactiveElementOf<SVGFEFuncBElement>;
|
|
143
|
+
declare const feFuncG: () => ReactiveElementOf<SVGFEFuncGElement>;
|
|
144
|
+
declare const feFuncR: () => ReactiveElementOf<SVGFEFuncRElement>;
|
|
145
|
+
declare const feGaussianBlur: () => ReactiveElementOf<SVGFEGaussianBlurElement>;
|
|
146
|
+
declare const feImage: () => ReactiveElementOf<SVGFEImageElement>;
|
|
147
|
+
declare const feMerge: () => ReactiveElementOf<SVGFEMergeElement>;
|
|
148
|
+
declare const feMergeNode: () => ReactiveElementOf<SVGFEMergeNodeElement>;
|
|
149
|
+
declare const feMorphology: () => ReactiveElementOf<SVGFEMorphologyElement>;
|
|
150
|
+
declare const feOffset: () => ReactiveElementOf<SVGFEOffsetElement>;
|
|
151
|
+
declare const fePointLight: () => ReactiveElementOf<SVGFEPointLightElement>;
|
|
152
|
+
declare const feSpecularLighting: () => ReactiveElementOf<SVGFESpecularLightingElement>;
|
|
153
|
+
declare const feSpotLight: () => ReactiveElementOf<SVGFESpotLightElement>;
|
|
154
|
+
declare const feTile: () => ReactiveElementOf<SVGFETileElement>;
|
|
155
|
+
declare const feTurbulence: () => ReactiveElementOf<SVGFETurbulenceElement>;
|
|
156
|
+
declare const filter: () => ReactiveElementOf<SVGFilterElement>;
|
|
157
|
+
declare const foreignObject: () => ReactiveElementOf<SVGForeignObjectElement>;
|
|
158
|
+
declare const g: () => ReactiveElementOf<SVGGElement>;
|
|
159
|
+
declare const image: () => ReactiveElementOf<SVGImageElement>;
|
|
160
|
+
declare const line: () => ReactiveElementOf<SVGLineElement>;
|
|
161
|
+
declare const linearGradient: () => ReactiveElementOf<SVGLinearGradientElement>;
|
|
162
|
+
declare const marker: () => ReactiveElementOf<SVGMarkerElement>;
|
|
163
|
+
declare const mask: () => ReactiveElementOf<SVGMaskElement>;
|
|
164
|
+
declare const metadata: () => ReactiveElementOf<SVGMetadataElement>;
|
|
165
|
+
declare const mpath: () => ReactiveElementOf<SVGMPathElement>;
|
|
166
|
+
declare const path: () => ReactiveElementOf<SVGPathElement>;
|
|
167
|
+
declare const pattern: () => ReactiveElementOf<SVGPatternElement>;
|
|
168
|
+
declare const polygon: () => ReactiveElementOf<SVGPolygonElement>;
|
|
169
|
+
declare const polyline: () => ReactiveElementOf<SVGPolylineElement>;
|
|
170
|
+
declare const radialGradient: () => ReactiveElementOf<SVGRadialGradientElement>;
|
|
171
|
+
declare const rect: () => ReactiveElementOf<SVGRectElement>;
|
|
172
|
+
declare const set: () => ReactiveElementOf<SVGSetElement>;
|
|
173
|
+
declare const stop: () => ReactiveElementOf<SVGStopElement>;
|
|
174
|
+
declare const svg: () => ReactiveElementOf<SVGSVGElement>;
|
|
175
|
+
declare const svgSwitch: () => ReactiveElementOf<SVGSwitchElement>;
|
|
176
|
+
declare const symbol: () => ReactiveElementOf<SVGSymbolElement>;
|
|
177
|
+
declare const text: () => ReactiveElementOf<SVGTextElement>;
|
|
178
|
+
declare const textPath: () => ReactiveElementOf<SVGTextPathElement>;
|
|
179
|
+
declare const tspan: () => ReactiveElementOf<SVGTSpanElement>;
|
|
180
|
+
declare const use: () => ReactiveElementOf<SVGUseElement>;
|
|
181
|
+
declare const view: () => ReactiveElementOf<SVGViewElement>;
|
|
182
|
+
declare const annotation: () => ReactiveElementOf<MathMLElement>;
|
|
183
|
+
declare const annotationXml: () => ReactiveElementOf<MathMLElement>;
|
|
184
|
+
declare const maction: () => ReactiveElementOf<MathMLElement>;
|
|
185
|
+
declare const math: () => ReactiveElementOf<MathMLElement>;
|
|
186
|
+
declare const merror: () => ReactiveElementOf<MathMLElement>;
|
|
187
|
+
declare const mfrac: () => ReactiveElementOf<MathMLElement>;
|
|
188
|
+
declare const mi: () => ReactiveElementOf<MathMLElement>;
|
|
189
|
+
declare const mmultiscripts: () => ReactiveElementOf<MathMLElement>;
|
|
190
|
+
declare const mn: () => ReactiveElementOf<MathMLElement>;
|
|
191
|
+
declare const mo: () => ReactiveElementOf<MathMLElement>;
|
|
192
|
+
declare const mover: () => ReactiveElementOf<MathMLElement>;
|
|
193
|
+
declare const mpadded: () => ReactiveElementOf<MathMLElement>;
|
|
194
|
+
declare const mphantom: () => ReactiveElementOf<MathMLElement>;
|
|
195
|
+
declare const mprescripts: () => ReactiveElementOf<MathMLElement>;
|
|
196
|
+
declare const mroot: () => ReactiveElementOf<MathMLElement>;
|
|
197
|
+
declare const mrow: () => ReactiveElementOf<MathMLElement>;
|
|
198
|
+
declare const ms: () => ReactiveElementOf<MathMLElement>;
|
|
199
|
+
declare const mspace: () => ReactiveElementOf<MathMLElement>;
|
|
200
|
+
declare const msqrt: () => ReactiveElementOf<MathMLElement>;
|
|
201
|
+
declare const mstyle: () => ReactiveElementOf<MathMLElement>;
|
|
202
|
+
declare const msub: () => ReactiveElementOf<MathMLElement>;
|
|
203
|
+
declare const msubsup: () => ReactiveElementOf<MathMLElement>;
|
|
204
|
+
declare const msup: () => ReactiveElementOf<MathMLElement>;
|
|
205
|
+
declare const mtable: () => ReactiveElementOf<MathMLElement>;
|
|
206
|
+
declare const mtd: () => ReactiveElementOf<MathMLElement>;
|
|
207
|
+
declare const mtext: () => ReactiveElementOf<MathMLElement>;
|
|
208
|
+
declare const mtr: () => ReactiveElementOf<MathMLElement>;
|
|
209
|
+
declare const munder: () => ReactiveElementOf<MathMLElement>;
|
|
210
|
+
declare const munderover: () => ReactiveElementOf<MathMLElement>;
|
|
211
|
+
declare const semantics: () => ReactiveElementOf<MathMLElement>;
|
|
212
|
+
//#endregion
|
|
213
|
+
export { Lifecycle, a, abbr, address, animate, animateMotion, animateTransform, annotation, annotationXml, area, article, aside, audio, b, base, bdi, bdo, blockquote, body, br, button, canvas, caption, circle, cite, clipPath, code, col, colgroup, data, datalist, dd, defs, del, desc, details, dfn, dialog, div, dl, dt, ellipse, em, embed, feBlend, feColorMatrix, feComponentTransfer, feComposite, feConvolveMatrix, feDiffuseLighting, feDisplacementMap, feDistantLight, feDropShadow, feFlood, feFuncA, feFuncB, feFuncG, feFuncR, feGaussianBlur, feImage, feMerge, feMergeNode, feMorphology, feOffset, fePointLight, feSpecularLighting, feSpotLight, feTile, feTurbulence, fieldset, figcaption, figure, filter, footer, foreignObject, form, g, h1, h2, h3, h4, h5, h6, head, header, hgroup, hr, html, i, iframe, image, img, input, ins, kbd, label, legend, li, line, linearGradient, link, maction, main, map, mark, marker, mask, math, mathVar, menu, merror, meta, metadata, meter, mfrac, mi, mmultiscripts, mn, mo, mover, mpadded, mpath, mphantom, mprescripts, mroot, mrow, ms, mspace, msqrt, mstyle, msub, msubsup, msup, mtable, mtd, mtext, mtr, munder, munderover, nav, noscript, object, ol, optgroup, option, output, p, path, pattern, picture, polygon, polyline, pre, progress, q, radialGradient, rect, rp, rt, ruby, s, samp, script, search, section, select, semantics, set, slot, small, source, span, stop, strong, style, sub, summary, sup, svg, svgSwitch, symbol, table, tbody, td, template, text, textPath, textarea, tfoot, th, thead, time, title, tr, track, tspan, u, ul, use, video, view, wbr };
|