verstak 0.24.269 → 0.24.270

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.
@@ -1,6 +1,10 @@
1
1
  import { RxNode, Mode } from "reactronic";
2
- import { Constants, CursorCommandDriver, ElKind, ElDriver } from "./El.js";
3
- import { HtmlElementDriver } from "./HtmlDriver.js";
2
+ import { Constants, CursorCommandDriver, ElKind, ElDriver, SplitView, ElLayoutInfo, InitialElLayoutInfo } from "./El.js";
3
+ import { getPrioritiesForEmptySpaceDistribution, relayout, relayoutUsingSplitter } from "./SplitViewMath.js";
4
+ import { Axis, BodyFontSize, Dimension, toPx } from "./Sizes.js";
5
+ import { HtmlDriver } from "./HtmlDriver.js";
6
+ import { OnResize } from "./Handlers.js";
7
+ import { clamp } from "./ElUtils.js";
4
8
  export function Section(declaration, preset) {
5
9
  return RxNode.declare(Drivers.section, declaration, preset);
6
10
  }
@@ -11,8 +15,73 @@ export function row(builder, shiftCursorDown) {
11
15
  rowBreak(shiftCursorDown);
12
16
  builder === null || builder === void 0 ? void 0 : builder();
13
17
  }
18
+ export function Splitter(declaration, preset) {
19
+ return RxNode.declare(Drivers.splitter, declaration, preset);
20
+ }
14
21
  export function rowBreak(shiftCursorDown) {
15
- RxNode.declare(Drivers.partition);
22
+ RxNode.declare(Drivers.partition, {
23
+ onChange: el => {
24
+ const ownerEl = el.node.owner.element;
25
+ if (ownerEl.splitView !== undefined) {
26
+ el.style.display = "grid";
27
+ }
28
+ else {
29
+ }
30
+ },
31
+ });
32
+ }
33
+ export function declareSplitter(index, splitViewNode) {
34
+ const key = `splitter-${index}`;
35
+ return (Splitter({
36
+ key,
37
+ mode: Mode.independentUpdate,
38
+ onChange: b => {
39
+ const e = b.native;
40
+ const model = b.model;
41
+ const dataForSensor = e.dataForSensor;
42
+ dataForSensor.draggable = key;
43
+ dataForSensor.drag = key;
44
+ Handling(() => {
45
+ var _a, _b, _c, _d;
46
+ const pointer = e.sensors.pointer;
47
+ if (pointer.dragSource === key) {
48
+ if (pointer.dragStarted) {
49
+ if (pointer.draggingOver) {
50
+ pointer.dropAllowed = true;
51
+ const initialSizesPx = pointer.getData();
52
+ const deltaPx = Math.floor(splitViewNode.element.splitView === SplitView.horizontal
53
+ ? pointer.positionX - pointer.startX : pointer.positionY - pointer.startY);
54
+ const clonedSizesPx = [];
55
+ for (const item of initialSizesPx) {
56
+ clonedSizesPx.push({ node: item.node, sizePx: item.sizePx });
57
+ }
58
+ relayoutUsingSplitter(splitViewNode, deltaPx, index, clonedSizesPx);
59
+ if (pointer.dropped) {
60
+ (_a = model === null || model === void 0 ? void 0 : model.droppedAction) === null || _a === void 0 ? void 0 : _a.call(model, pointer);
61
+ }
62
+ }
63
+ else {
64
+ e.setAttribute("rx-dragging", "true");
65
+ const initialSizesPx = [];
66
+ for (const item of splitViewNode.children.items()) {
67
+ const child = item.instance;
68
+ if (isSplitViewPartition(child.driver)) {
69
+ const sizePx = (_c = (_b = child.element.layoutInfo) === null || _b === void 0 ? void 0 : _b.effectiveSizePx) !== null && _c !== void 0 ? _c : 0;
70
+ initialSizesPx.push({ node: child, sizePx });
71
+ }
72
+ }
73
+ console.log("initial", initialSizesPx.map(x => x.sizePx).join(", "));
74
+ pointer.setData(initialSizesPx);
75
+ }
76
+ if (pointer.dragFinished) {
77
+ (_d = model === null || model === void 0 ? void 0 : model.dragFinishedAction) === null || _d === void 0 ? void 0 : _d.call(model, pointer);
78
+ e.setAttribute("rx-dragging", "false");
79
+ }
80
+ }
81
+ }
82
+ });
83
+ },
84
+ }));
16
85
  }
17
86
  export function cursor(areaParams) {
18
87
  RxNode.declare(Drivers.cursor, {
@@ -28,7 +97,7 @@ export function Note(content, formatted, declaration) {
28
97
  el.native.innerHTML = content;
29
98
  else
30
99
  el.native.innerText = content;
31
- }
100
+ },
32
101
  });
33
102
  }
34
103
  export function Group(declaration, preset) {
@@ -40,20 +109,108 @@ export function Handling(onChange) {
40
109
  export function SyntheticElement(declaration, preset) {
41
110
  return RxNode.declare(Drivers.synthetic, declaration, preset);
42
111
  }
43
- export class VerstakElementDriver extends HtmlElementDriver {
112
+ export class SectionDriver extends HtmlDriver {
44
113
  update(node) {
45
- const element = node.element;
46
- if (element.kind === ElKind.section)
47
- rowBreak();
48
- return super.update(node);
114
+ rowBreak();
115
+ const result = super.update(node);
116
+ const el = node.element;
117
+ if (el.splitView !== undefined) {
118
+ const native = el.native;
119
+ OnResize(native, x => {
120
+ var _a;
121
+ if (el.layoutInfo === undefined)
122
+ el.layoutInfo = new ElLayoutInfo(InitialElLayoutInfo);
123
+ const rect = x.contentRect;
124
+ const contentBoxPx = x.contentBoxSize[0];
125
+ const containerSizeXpx = contentBoxPx.inlineSize;
126
+ const containerSizeYpx = contentBoxPx.blockSize;
127
+ el.layoutInfo.offsetXpx = rect.left;
128
+ el.layoutInfo.offsetYpx = rect.top;
129
+ el.layoutInfo.containerSizeXpx = containerSizeXpx;
130
+ el.layoutInfo.containerSizeYpx = containerSizeYpx;
131
+ const isHorizontal = el.splitView === SplitView.horizontal;
132
+ const wrapper = (_a = node.children.firstMergedItem()) === null || _a === void 0 ? void 0 : _a.instance;
133
+ if (wrapper !== undefined) {
134
+ const wrapperEl = wrapper.element;
135
+ if (isHorizontal)
136
+ wrapperEl.style.width = wrapperEl.style.maxWidth = `${containerSizeXpx}px`;
137
+ else {
138
+ wrapperEl.style.height = wrapperEl.style.maxHeight = `${containerSizeYpx}px`;
139
+ }
140
+ }
141
+ const surroundingXpx = x.borderBoxSize[0].inlineSize - containerSizeXpx;
142
+ const surroundingYpx = x.borderBoxSize[0].blockSize - containerSizeYpx;
143
+ const sizesPx = [];
144
+ for (const child of node.children.items()) {
145
+ const partEl = child.instance.element;
146
+ if (isSplitViewPartition(child.instance.driver) && partEl !== undefined) {
147
+ const size = isHorizontal ? partEl.width : partEl.height;
148
+ const options = {
149
+ axis: isHorizontal ? Axis.X : Axis.Y, lineSizePx: Dimension.lineSizePx, fontSizePx: BodyFontSize,
150
+ containerSizeXpx: native.scrollWidth - surroundingXpx, containerSizeYpx: native.scrollHeight - surroundingYpx,
151
+ };
152
+ const minPx = size.min ? toPx(Dimension.parse(size.min), options) : 0;
153
+ let maxPx = size.max ? toPx(Dimension.parse(size.max), options) : Number.POSITIVE_INFINITY;
154
+ maxPx = Math.max(minPx, maxPx);
155
+ if (partEl.layoutInfo === undefined)
156
+ partEl.layoutInfo = new ElLayoutInfo(InitialElLayoutInfo);
157
+ if (isHorizontal)
158
+ partEl.widthPx = { minPx, maxPx };
159
+ else
160
+ partEl.heightPx = { minPx, maxPx };
161
+ const sizePx = partEl.layoutInfo.effectiveSizePx = clamp(partEl.layoutInfo.effectiveSizePx, minPx, maxPx);
162
+ sizesPx.push({ node: child.instance, sizePx });
163
+ }
164
+ }
165
+ relayout(node, getPrioritiesForEmptySpaceDistribution(node.children), sizesPx);
166
+ });
167
+ }
168
+ return result;
169
+ }
170
+ child(ownerNode, childDriver, childDeclaration, childPreset) {
171
+ var _a;
172
+ let result = undefined;
173
+ const el = ownerNode.element;
174
+ if (el.splitView !== undefined && isSplitViewPartition(childDriver)) {
175
+ let partCount = 0;
176
+ for (const child of ownerNode.children.items()) {
177
+ if (isSplitViewPartition(child.instance.driver))
178
+ partCount++;
179
+ }
180
+ const isHorizontal = el.splitView === SplitView.horizontal;
181
+ if (childDeclaration !== undefined) {
182
+ const onCreate = childDeclaration.onCreate;
183
+ childDeclaration.onCreate = (el, basis) => {
184
+ onCreate === null || onCreate === void 0 ? void 0 : onCreate(el, basis);
185
+ if (isHorizontal)
186
+ el.style.gridColumn = `${partCount + 1}`;
187
+ else
188
+ el.style.gridRow = `${partCount + 1}`;
189
+ };
190
+ }
191
+ if (partCount > 0)
192
+ declareSplitter(partCount - 1, ownerNode);
193
+ }
194
+ else {
195
+ if (childDriver.isPartition) {
196
+ const last = ownerNode.children.lastMergedItem();
197
+ if (((_a = last === null || last === void 0 ? void 0 : last.instance) === null || _a === void 0 ? void 0 : _a.driver) === childDriver)
198
+ result = last;
199
+ }
200
+ }
201
+ return result;
49
202
  }
50
203
  }
51
- const Drivers = {
52
- section: new VerstakElementDriver(Constants.element, false, el => el.kind = ElKind.section),
53
- table: new VerstakElementDriver(Constants.element, false, el => el.kind = ElKind.table),
54
- note: new VerstakElementDriver(Constants.element, false, el => el.kind = ElKind.note),
55
- group: new VerstakElementDriver(Constants.group, false, el => el.kind = ElKind.group),
56
- partition: new VerstakElementDriver(Constants.partition, true, el => el.kind = ElKind.part),
204
+ export function isSplitViewPartition(childDriver) {
205
+ return !childDriver.isPartition && childDriver !== Drivers.splitter && childDriver !== Drivers.synthetic;
206
+ }
207
+ export const Drivers = {
208
+ section: new SectionDriver(Constants.element, false, el => el.kind = ElKind.section),
209
+ table: new HtmlDriver(Constants.element, false, el => el.kind = ElKind.table),
210
+ note: new HtmlDriver(Constants.element, false, el => el.kind = ElKind.note),
211
+ group: new HtmlDriver(Constants.group, false, el => el.kind = ElKind.group),
212
+ partition: new HtmlDriver(Constants.partition, true, el => el.kind = ElKind.part),
213
+ splitter: new HtmlDriver(Constants.splitter, false, el => el.kind = ElKind.splitter),
57
214
  cursor: new CursorCommandDriver(),
58
215
  synthetic: new ElDriver("synthetic", false, el => el.kind = ElKind.group),
59
216
  };
@@ -16,9 +16,9 @@ export declare class StaticDriver<T extends HTMLElement> extends WebDriver<T> {
16
16
  constructor(native: T, name: string, isRow: boolean, predefine?: SimpleDelegate<El<T>>);
17
17
  setNativeElement(node: RxNode<El<T>>): void;
18
18
  }
19
- export declare class HtmlElementDriver<T extends HTMLElement, M = any> extends WebDriver<T, M> {
19
+ export declare class HtmlDriver<T extends HTMLElement, M = any> extends WebDriver<T, M> {
20
20
  setNativeElement(node: RxNode<El<T, M>>): void;
21
21
  }
22
- export declare class SvgElementDriver<T extends SVGElement, M = any> extends WebDriver<T, M> {
22
+ export declare class SvgDriver<T extends SVGElement, M = any> extends WebDriver<T, M> {
23
23
  setNativeElement(node: RxNode<El<T, M>>): void;
24
24
  }
@@ -88,12 +88,12 @@ export class StaticDriver extends WebDriver {
88
88
  node.element.native = this.native;
89
89
  }
90
90
  }
91
- export class HtmlElementDriver extends WebDriver {
91
+ export class HtmlDriver extends WebDriver {
92
92
  setNativeElement(node) {
93
93
  node.element.native = document.createElement(node.driver.name);
94
94
  }
95
95
  }
96
- export class SvgElementDriver extends WebDriver {
96
+ export class SvgDriver extends WebDriver {
97
97
  setNativeElement(node) {
98
98
  node.element.native = document.createElementNS("http://www.w3.org/2000/svg", node.driver.name);
99
99
  }
@@ -1,6 +1,6 @@
1
1
  import { RxNode } from "reactronic";
2
2
  import { ElKind } from "./El.js";
3
- import { HtmlElementDriver, StaticDriver, SvgElementDriver } from "./HtmlDriver.js";
3
+ import { StaticDriver, HtmlDriver, SvgDriver } from "./HtmlDriver.js";
4
4
  export function Page(declaration, preset) {
5
5
  const driver = new StaticDriver(global.document.body, "Page", false, el => el.kind = ElKind.section);
6
6
  return RxNode.declare(driver, declaration, preset);
@@ -179,179 +179,179 @@ export function TSpan(declaration, preset) { return RxNode.declare(SvgTags.tspan
179
179
  export function Use(declaration, preset) { return RxNode.declare(SvgTags.use, declaration, preset); }
180
180
  export function View(declaration, preset) { return RxNode.declare(SvgTags.view, declaration, preset); }
181
181
  const HtmlTags = {
182
- a: new HtmlElementDriver("a", false, el => el.kind = ElKind.native),
183
- abbr: new HtmlElementDriver("abbr", false, el => el.kind = ElKind.native),
184
- address: new HtmlElementDriver("address", false, el => el.kind = ElKind.native),
185
- area: new HtmlElementDriver("area", false, el => el.kind = ElKind.native),
186
- article: new HtmlElementDriver("article", false, el => el.kind = ElKind.native),
187
- aside: new HtmlElementDriver("aside", false, el => el.kind = ElKind.native),
188
- audio: new HtmlElementDriver("audio", false, el => el.kind = ElKind.native),
189
- b: new HtmlElementDriver("b", false, el => el.kind = ElKind.native),
190
- base: new HtmlElementDriver("base", false, el => el.kind = ElKind.native),
191
- bdi: new HtmlElementDriver("bdi", false, el => el.kind = ElKind.native),
192
- bdo: new HtmlElementDriver("bdo", false, el => el.kind = ElKind.native),
193
- big: new HtmlElementDriver("big", false, el => el.kind = ElKind.native),
194
- blockquote: new HtmlElementDriver("blockquote", false, el => el.kind = ElKind.native),
195
- body: new HtmlElementDriver("body", false, el => el.kind = ElKind.native),
196
- br: new HtmlElementDriver("br", false, el => el.kind = ElKind.native),
197
- button: new HtmlElementDriver("button", false, el => el.kind = ElKind.native),
198
- canvas: new HtmlElementDriver("canvas", false, el => el.kind = ElKind.native),
199
- caption: new HtmlElementDriver("caption", false, el => el.kind = ElKind.native),
200
- cite: new HtmlElementDriver("cite", false, el => el.kind = ElKind.native),
201
- code: new HtmlElementDriver("code", false, el => el.kind = ElKind.native),
202
- col: new HtmlElementDriver("col", false, el => el.kind = ElKind.native),
203
- colgroup: new HtmlElementDriver("colgroup", false, el => el.kind = ElKind.native),
204
- data: new HtmlElementDriver("data", false, el => el.kind = ElKind.native),
205
- datalist: new HtmlElementDriver("datalist", false, el => el.kind = ElKind.native),
206
- dd: new HtmlElementDriver("dd", false, el => el.kind = ElKind.native),
207
- del: new HtmlElementDriver("del", false, el => el.kind = ElKind.native),
208
- details: new HtmlElementDriver("details", false, el => el.kind = ElKind.native),
209
- dfn: new HtmlElementDriver("dfn", false, el => el.kind = ElKind.native),
210
- div: new HtmlElementDriver("div", false, el => el.kind = ElKind.native),
211
- dl: new HtmlElementDriver("dl", false, el => el.kind = ElKind.native),
212
- dt: new HtmlElementDriver("dt", false, el => el.kind = ElKind.native),
213
- em: new HtmlElementDriver("em", false, el => el.kind = ElKind.native),
214
- embed: new HtmlElementDriver("embed", false, el => el.kind = ElKind.native),
215
- fieldset: new HtmlElementDriver("fieldset", false, el => el.kind = ElKind.native),
216
- figcaption: new HtmlElementDriver("figcaption", false, el => el.kind = ElKind.native),
217
- figure: new HtmlElementDriver("figure", false, el => el.kind = ElKind.native),
218
- footer: new HtmlElementDriver("footer", false, el => el.kind = ElKind.native),
219
- form: new HtmlElementDriver("form", false, el => el.kind = ElKind.native),
220
- h1: new HtmlElementDriver("h1", false, el => el.kind = ElKind.native),
221
- h2: new HtmlElementDriver("h2", false, el => el.kind = ElKind.native),
222
- h3: new HtmlElementDriver("h3", false, el => el.kind = ElKind.native),
223
- h4: new HtmlElementDriver("h4", false, el => el.kind = ElKind.native),
224
- h5: new HtmlElementDriver("h5", false, el => el.kind = ElKind.native),
225
- h6: new HtmlElementDriver("h6", false, el => el.kind = ElKind.native),
226
- head: new HtmlElementDriver("head", false, el => el.kind = ElKind.native),
227
- header: new HtmlElementDriver("header", false, el => el.kind = ElKind.native),
228
- hgroup: new HtmlElementDriver("hgroup", false, el => el.kind = ElKind.native),
229
- hr: new HtmlElementDriver("hr", false, el => el.kind = ElKind.native),
230
- html: new HtmlElementDriver("html", false, el => el.kind = ElKind.native),
231
- i: new HtmlElementDriver("i", false, el => el.kind = ElKind.native),
232
- iframe: new HtmlElementDriver("iframe", false, el => el.kind = ElKind.native),
233
- img: new HtmlElementDriver("img", false, el => el.kind = ElKind.native),
234
- input: new HtmlElementDriver("input", false, el => el.kind = ElKind.native),
235
- ins: new HtmlElementDriver("ins", false, el => el.kind = ElKind.native),
236
- kbd: new HtmlElementDriver("kbd", false, el => el.kind = ElKind.native),
237
- keygen: new HtmlElementDriver("keygen", false, el => el.kind = ElKind.native),
238
- label: new HtmlElementDriver("label", false, el => el.kind = ElKind.native),
239
- legend: new HtmlElementDriver("legend", false, el => el.kind = ElKind.native),
240
- li: new HtmlElementDriver("li", false, el => el.kind = ElKind.native),
241
- link: new HtmlElementDriver("link", false, el => el.kind = ElKind.native),
242
- main: new HtmlElementDriver("main", false, el => el.kind = ElKind.native),
243
- map: new HtmlElementDriver("map", false, el => el.kind = ElKind.native),
244
- mark: new HtmlElementDriver("mark", false, el => el.kind = ElKind.native),
245
- menu: new HtmlElementDriver("menu", false, el => el.kind = ElKind.native),
246
- menuitem: new HtmlElementDriver("menuitem", false, el => el.kind = ElKind.native),
247
- meta: new HtmlElementDriver("meta", false, el => el.kind = ElKind.native),
248
- meter: new HtmlElementDriver("meter", false, el => el.kind = ElKind.native),
249
- nav: new HtmlElementDriver("nav", false, el => el.kind = ElKind.native),
250
- noindex: new HtmlElementDriver("noindex", false, el => el.kind = ElKind.native),
251
- noscript: new HtmlElementDriver("noscript", false, el => el.kind = ElKind.native),
252
- object: new HtmlElementDriver("object", false, el => el.kind = ElKind.native),
253
- ol: new HtmlElementDriver("ol", false, el => el.kind = ElKind.native),
254
- optgroup: new HtmlElementDriver("optgroup", false, el => el.kind = ElKind.native),
255
- option: new HtmlElementDriver("option", false, el => el.kind = ElKind.native),
256
- output: new HtmlElementDriver("output", false, el => el.kind = ElKind.native),
257
- p: new HtmlElementDriver("p", false, el => el.kind = ElKind.native),
258
- param: new HtmlElementDriver("param", false, el => el.kind = ElKind.native),
259
- picture: new HtmlElementDriver("picture", false, el => el.kind = ElKind.native),
260
- pre: new HtmlElementDriver("pre", false, el => el.kind = ElKind.native),
261
- progress: new HtmlElementDriver("progress", false, el => el.kind = ElKind.native),
262
- q: new HtmlElementDriver("q", false, el => el.kind = ElKind.native),
263
- rp: new HtmlElementDriver("rp", false, el => el.kind = ElKind.native),
264
- rt: new HtmlElementDriver("rt", false, el => el.kind = ElKind.native),
265
- ruby: new HtmlElementDriver("ruby", false, el => el.kind = ElKind.native),
266
- s: new HtmlElementDriver("s", false, el => el.kind = ElKind.native),
267
- samp: new HtmlElementDriver("samp", false, el => el.kind = ElKind.native),
268
- script: new HtmlElementDriver("script", false, el => el.kind = ElKind.native),
269
- section: new HtmlElementDriver("section", false, el => el.kind = ElKind.native),
270
- select: new HtmlElementDriver("select", false, el => el.kind = ElKind.native),
271
- small: new HtmlElementDriver("small", false, el => el.kind = ElKind.native),
272
- source: new HtmlElementDriver("source", false, el => el.kind = ElKind.native),
273
- span: new HtmlElementDriver("span", false, el => el.kind = ElKind.native),
274
- strong: new HtmlElementDriver("strong", false, el => el.kind = ElKind.native),
275
- style: new HtmlElementDriver("style", false, el => el.kind = ElKind.native),
276
- sub: new HtmlElementDriver("sub", false, el => el.kind = ElKind.native),
277
- summary: new HtmlElementDriver("summary", false, el => el.kind = ElKind.native),
278
- sup: new HtmlElementDriver("sup", false, el => el.kind = ElKind.native),
279
- table: new HtmlElementDriver("table", false, el => el.kind = ElKind.native),
280
- template: new HtmlElementDriver("template", false, el => el.kind = ElKind.native),
281
- tbody: new HtmlElementDriver("tbody", false, el => el.kind = ElKind.native),
282
- td: new HtmlElementDriver("td", false, el => el.kind = ElKind.native),
283
- textarea: new HtmlElementDriver("textarea", false, el => el.kind = ElKind.native),
284
- tfoot: new HtmlElementDriver("tfoot", false, el => el.kind = ElKind.native),
285
- th: new HtmlElementDriver("th", false, el => el.kind = ElKind.native),
286
- thead: new HtmlElementDriver("thead", false, el => el.kind = ElKind.native),
287
- time: new HtmlElementDriver("time", false, el => el.kind = ElKind.native),
288
- title: new HtmlElementDriver("title", false, el => el.kind = ElKind.native),
289
- tr: new HtmlElementDriver("tr", false, el => el.kind = ElKind.native),
290
- track: new HtmlElementDriver("track", false, el => el.kind = ElKind.native),
291
- u: new HtmlElementDriver("u", false, el => el.kind = ElKind.native),
292
- ul: new HtmlElementDriver("ul", false, el => el.kind = ElKind.native),
293
- var: new HtmlElementDriver("var", false, el => el.kind = ElKind.native),
294
- video: new HtmlElementDriver("video", false, el => el.kind = ElKind.native),
295
- wbr: new HtmlElementDriver("wbr", false, el => el.kind = ElKind.native),
182
+ a: new HtmlDriver("a", false, el => el.kind = ElKind.native),
183
+ abbr: new HtmlDriver("abbr", false, el => el.kind = ElKind.native),
184
+ address: new HtmlDriver("address", false, el => el.kind = ElKind.native),
185
+ area: new HtmlDriver("area", false, el => el.kind = ElKind.native),
186
+ article: new HtmlDriver("article", false, el => el.kind = ElKind.native),
187
+ aside: new HtmlDriver("aside", false, el => el.kind = ElKind.native),
188
+ audio: new HtmlDriver("audio", false, el => el.kind = ElKind.native),
189
+ b: new HtmlDriver("b", false, el => el.kind = ElKind.native),
190
+ base: new HtmlDriver("base", false, el => el.kind = ElKind.native),
191
+ bdi: new HtmlDriver("bdi", false, el => el.kind = ElKind.native),
192
+ bdo: new HtmlDriver("bdo", false, el => el.kind = ElKind.native),
193
+ big: new HtmlDriver("big", false, el => el.kind = ElKind.native),
194
+ blockquote: new HtmlDriver("blockquote", false, el => el.kind = ElKind.native),
195
+ body: new HtmlDriver("body", false, el => el.kind = ElKind.native),
196
+ br: new HtmlDriver("br", false, el => el.kind = ElKind.native),
197
+ button: new HtmlDriver("button", false, el => el.kind = ElKind.native),
198
+ canvas: new HtmlDriver("canvas", false, el => el.kind = ElKind.native),
199
+ caption: new HtmlDriver("caption", false, el => el.kind = ElKind.native),
200
+ cite: new HtmlDriver("cite", false, el => el.kind = ElKind.native),
201
+ code: new HtmlDriver("code", false, el => el.kind = ElKind.native),
202
+ col: new HtmlDriver("col", false, el => el.kind = ElKind.native),
203
+ colgroup: new HtmlDriver("colgroup", false, el => el.kind = ElKind.native),
204
+ data: new HtmlDriver("data", false, el => el.kind = ElKind.native),
205
+ datalist: new HtmlDriver("datalist", false, el => el.kind = ElKind.native),
206
+ dd: new HtmlDriver("dd", false, el => el.kind = ElKind.native),
207
+ del: new HtmlDriver("del", false, el => el.kind = ElKind.native),
208
+ details: new HtmlDriver("details", false, el => el.kind = ElKind.native),
209
+ dfn: new HtmlDriver("dfn", false, el => el.kind = ElKind.native),
210
+ div: new HtmlDriver("div", false, el => el.kind = ElKind.native),
211
+ dl: new HtmlDriver("dl", false, el => el.kind = ElKind.native),
212
+ dt: new HtmlDriver("dt", false, el => el.kind = ElKind.native),
213
+ em: new HtmlDriver("em", false, el => el.kind = ElKind.native),
214
+ embed: new HtmlDriver("embed", false, el => el.kind = ElKind.native),
215
+ fieldset: new HtmlDriver("fieldset", false, el => el.kind = ElKind.native),
216
+ figcaption: new HtmlDriver("figcaption", false, el => el.kind = ElKind.native),
217
+ figure: new HtmlDriver("figure", false, el => el.kind = ElKind.native),
218
+ footer: new HtmlDriver("footer", false, el => el.kind = ElKind.native),
219
+ form: new HtmlDriver("form", false, el => el.kind = ElKind.native),
220
+ h1: new HtmlDriver("h1", false, el => el.kind = ElKind.native),
221
+ h2: new HtmlDriver("h2", false, el => el.kind = ElKind.native),
222
+ h3: new HtmlDriver("h3", false, el => el.kind = ElKind.native),
223
+ h4: new HtmlDriver("h4", false, el => el.kind = ElKind.native),
224
+ h5: new HtmlDriver("h5", false, el => el.kind = ElKind.native),
225
+ h6: new HtmlDriver("h6", false, el => el.kind = ElKind.native),
226
+ head: new HtmlDriver("head", false, el => el.kind = ElKind.native),
227
+ header: new HtmlDriver("header", false, el => el.kind = ElKind.native),
228
+ hgroup: new HtmlDriver("hgroup", false, el => el.kind = ElKind.native),
229
+ hr: new HtmlDriver("hr", false, el => el.kind = ElKind.native),
230
+ html: new HtmlDriver("html", false, el => el.kind = ElKind.native),
231
+ i: new HtmlDriver("i", false, el => el.kind = ElKind.native),
232
+ iframe: new HtmlDriver("iframe", false, el => el.kind = ElKind.native),
233
+ img: new HtmlDriver("img", false, el => el.kind = ElKind.native),
234
+ input: new HtmlDriver("input", false, el => el.kind = ElKind.native),
235
+ ins: new HtmlDriver("ins", false, el => el.kind = ElKind.native),
236
+ kbd: new HtmlDriver("kbd", false, el => el.kind = ElKind.native),
237
+ keygen: new HtmlDriver("keygen", false, el => el.kind = ElKind.native),
238
+ label: new HtmlDriver("label", false, el => el.kind = ElKind.native),
239
+ legend: new HtmlDriver("legend", false, el => el.kind = ElKind.native),
240
+ li: new HtmlDriver("li", false, el => el.kind = ElKind.native),
241
+ link: new HtmlDriver("link", false, el => el.kind = ElKind.native),
242
+ main: new HtmlDriver("main", false, el => el.kind = ElKind.native),
243
+ map: new HtmlDriver("map", false, el => el.kind = ElKind.native),
244
+ mark: new HtmlDriver("mark", false, el => el.kind = ElKind.native),
245
+ menu: new HtmlDriver("menu", false, el => el.kind = ElKind.native),
246
+ menuitem: new HtmlDriver("menuitem", false, el => el.kind = ElKind.native),
247
+ meta: new HtmlDriver("meta", false, el => el.kind = ElKind.native),
248
+ meter: new HtmlDriver("meter", false, el => el.kind = ElKind.native),
249
+ nav: new HtmlDriver("nav", false, el => el.kind = ElKind.native),
250
+ noindex: new HtmlDriver("noindex", false, el => el.kind = ElKind.native),
251
+ noscript: new HtmlDriver("noscript", false, el => el.kind = ElKind.native),
252
+ object: new HtmlDriver("object", false, el => el.kind = ElKind.native),
253
+ ol: new HtmlDriver("ol", false, el => el.kind = ElKind.native),
254
+ optgroup: new HtmlDriver("optgroup", false, el => el.kind = ElKind.native),
255
+ option: new HtmlDriver("option", false, el => el.kind = ElKind.native),
256
+ output: new HtmlDriver("output", false, el => el.kind = ElKind.native),
257
+ p: new HtmlDriver("p", false, el => el.kind = ElKind.native),
258
+ param: new HtmlDriver("param", false, el => el.kind = ElKind.native),
259
+ picture: new HtmlDriver("picture", false, el => el.kind = ElKind.native),
260
+ pre: new HtmlDriver("pre", false, el => el.kind = ElKind.native),
261
+ progress: new HtmlDriver("progress", false, el => el.kind = ElKind.native),
262
+ q: new HtmlDriver("q", false, el => el.kind = ElKind.native),
263
+ rp: new HtmlDriver("rp", false, el => el.kind = ElKind.native),
264
+ rt: new HtmlDriver("rt", false, el => el.kind = ElKind.native),
265
+ ruby: new HtmlDriver("ruby", false, el => el.kind = ElKind.native),
266
+ s: new HtmlDriver("s", false, el => el.kind = ElKind.native),
267
+ samp: new HtmlDriver("samp", false, el => el.kind = ElKind.native),
268
+ script: new HtmlDriver("script", false, el => el.kind = ElKind.native),
269
+ section: new HtmlDriver("section", false, el => el.kind = ElKind.native),
270
+ select: new HtmlDriver("select", false, el => el.kind = ElKind.native),
271
+ small: new HtmlDriver("small", false, el => el.kind = ElKind.native),
272
+ source: new HtmlDriver("source", false, el => el.kind = ElKind.native),
273
+ span: new HtmlDriver("span", false, el => el.kind = ElKind.native),
274
+ strong: new HtmlDriver("strong", false, el => el.kind = ElKind.native),
275
+ style: new HtmlDriver("style", false, el => el.kind = ElKind.native),
276
+ sub: new HtmlDriver("sub", false, el => el.kind = ElKind.native),
277
+ summary: new HtmlDriver("summary", false, el => el.kind = ElKind.native),
278
+ sup: new HtmlDriver("sup", false, el => el.kind = ElKind.native),
279
+ table: new HtmlDriver("table", false, el => el.kind = ElKind.native),
280
+ template: new HtmlDriver("template", false, el => el.kind = ElKind.native),
281
+ tbody: new HtmlDriver("tbody", false, el => el.kind = ElKind.native),
282
+ td: new HtmlDriver("td", false, el => el.kind = ElKind.native),
283
+ textarea: new HtmlDriver("textarea", false, el => el.kind = ElKind.native),
284
+ tfoot: new HtmlDriver("tfoot", false, el => el.kind = ElKind.native),
285
+ th: new HtmlDriver("th", false, el => el.kind = ElKind.native),
286
+ thead: new HtmlDriver("thead", false, el => el.kind = ElKind.native),
287
+ time: new HtmlDriver("time", false, el => el.kind = ElKind.native),
288
+ title: new HtmlDriver("title", false, el => el.kind = ElKind.native),
289
+ tr: new HtmlDriver("tr", false, el => el.kind = ElKind.native),
290
+ track: new HtmlDriver("track", false, el => el.kind = ElKind.native),
291
+ u: new HtmlDriver("u", false, el => el.kind = ElKind.native),
292
+ ul: new HtmlDriver("ul", false, el => el.kind = ElKind.native),
293
+ var: new HtmlDriver("var", false, el => el.kind = ElKind.native),
294
+ video: new HtmlDriver("video", false, el => el.kind = ElKind.native),
295
+ wbr: new HtmlDriver("wbr", false, el => el.kind = ElKind.native),
296
296
  };
297
297
  const SvgTags = {
298
- svg: new SvgElementDriver("svg", false, el => el.kind = ElKind.native),
299
- a: new SvgElementDriver("a", false, el => el.kind = ElKind.native),
300
- animate: new SvgElementDriver("animate", false, el => el.kind = ElKind.native),
301
- animateMotion: new SvgElementDriver("animateMotion", false, el => el.kind = ElKind.native),
302
- animateTransform: new SvgElementDriver("animateTransform", false, el => el.kind = ElKind.native),
303
- circle: new SvgElementDriver("circle", false, el => el.kind = ElKind.native),
304
- clipPath: new SvgElementDriver("clipPath", false, el => el.kind = ElKind.native),
305
- defs: new SvgElementDriver("defs", false, el => el.kind = ElKind.native),
306
- desc: new SvgElementDriver("desc", false, el => el.kind = ElKind.native),
307
- ellipse: new SvgElementDriver("ellipse", false, el => el.kind = ElKind.native),
308
- feBlend: new SvgElementDriver("feBlend", false, el => el.kind = ElKind.native),
309
- feColorMatrix: new SvgElementDriver("feColorMatrix", false, el => el.kind = ElKind.native),
310
- feComponentTransfer: new SvgElementDriver("feComponentTransfer", false, el => el.kind = ElKind.native),
311
- feComposite: new SvgElementDriver("feComposite", false, el => el.kind = ElKind.native),
312
- feConvolveMatrix: new SvgElementDriver("feConvolveMatrix", false, el => el.kind = ElKind.native),
313
- feDiffuseLighting: new SvgElementDriver("feDiffuseLighting", false, el => el.kind = ElKind.native),
314
- feDisplacementMap: new SvgElementDriver("feDisplacementMap", false, el => el.kind = ElKind.native),
315
- feDistantLight: new SvgElementDriver("feDistantLight", false, el => el.kind = ElKind.native),
316
- feDropShadow: new SvgElementDriver("feDropShadow", false, el => el.kind = ElKind.native),
317
- feFlood: new SvgElementDriver("feFlood", false, el => el.kind = ElKind.native),
318
- feFuncA: new SvgElementDriver("feFuncA", false, el => el.kind = ElKind.native),
319
- feFuncB: new SvgElementDriver("feFuncB", false, el => el.kind = ElKind.native),
320
- feFuncG: new SvgElementDriver("feFuncG", false, el => el.kind = ElKind.native),
321
- feFuncR: new SvgElementDriver("feFuncR", false, el => el.kind = ElKind.native),
322
- feGaussianBlur: new SvgElementDriver("feGaussianBlur", false, el => el.kind = ElKind.native),
323
- feImage: new SvgElementDriver("feImage", false, el => el.kind = ElKind.native),
324
- feMerge: new SvgElementDriver("feMerge", false, el => el.kind = ElKind.native),
325
- feMergeNode: new SvgElementDriver("feMergeNode", false, el => el.kind = ElKind.native),
326
- feMorphology: new SvgElementDriver("feMorphology", false, el => el.kind = ElKind.native),
327
- feOffset: new SvgElementDriver("feOffset", false, el => el.kind = ElKind.native),
328
- fePointLight: new SvgElementDriver("fePointLight", false, el => el.kind = ElKind.native),
329
- feSpecularLighting: new SvgElementDriver("feSpecularLighting", false, el => el.kind = ElKind.native),
330
- feSpotLight: new SvgElementDriver("feSpotLight", false, el => el.kind = ElKind.native),
331
- feTile: new SvgElementDriver("feTile", false, el => el.kind = ElKind.native),
332
- feTurbulence: new SvgElementDriver("feTurbulence", false, el => el.kind = ElKind.native),
333
- filter: new SvgElementDriver("filter", false, el => el.kind = ElKind.native),
334
- foreignObject: new SvgElementDriver("foreignObject", false, el => el.kind = ElKind.native),
335
- g: new SvgElementDriver("g", false, el => el.kind = ElKind.native),
336
- image: new SvgElementDriver("image", false, el => el.kind = ElKind.native),
337
- line: new SvgElementDriver("line", false, el => el.kind = ElKind.native),
338
- linearGradient: new SvgElementDriver("linearGradient", false, el => el.kind = ElKind.native),
339
- marker: new SvgElementDriver("marker", false, el => el.kind = ElKind.native),
340
- mask: new SvgElementDriver("mask", false, el => el.kind = ElKind.native),
341
- metadata: new SvgElementDriver("metadata", false, el => el.kind = ElKind.native),
342
- mpath: new SvgElementDriver("mpath", false, el => el.kind = ElKind.native),
343
- path: new SvgElementDriver("path", false, el => el.kind = ElKind.native),
344
- pattern: new SvgElementDriver("pattern", false, el => el.kind = ElKind.native),
345
- polygon: new SvgElementDriver("polygon", false, el => el.kind = ElKind.native),
346
- polyline: new SvgElementDriver("polyline", false, el => el.kind = ElKind.native),
347
- radialGradient: new SvgElementDriver("radialGradient", false, el => el.kind = ElKind.native),
348
- rect: new SvgElementDriver("rect", false, el => el.kind = ElKind.native),
349
- stop: new SvgElementDriver("stop", false, el => el.kind = ElKind.native),
350
- switch: new SvgElementDriver("switch", false, el => el.kind = ElKind.native),
351
- symbol: new SvgElementDriver("symbol", false, el => el.kind = ElKind.native),
352
- text: new SvgElementDriver("text", false, el => el.kind = ElKind.native),
353
- textPath: new SvgElementDriver("textPath", false, el => el.kind = ElKind.native),
354
- tspan: new SvgElementDriver("tspan", false, el => el.kind = ElKind.native),
355
- use: new SvgElementDriver("use", false, el => el.kind = ElKind.native),
356
- view: new SvgElementDriver("view", false, el => el.kind = ElKind.native),
298
+ svg: new SvgDriver("svg", false, el => el.kind = ElKind.native),
299
+ a: new SvgDriver("a", false, el => el.kind = ElKind.native),
300
+ animate: new SvgDriver("animate", false, el => el.kind = ElKind.native),
301
+ animateMotion: new SvgDriver("animateMotion", false, el => el.kind = ElKind.native),
302
+ animateTransform: new SvgDriver("animateTransform", false, el => el.kind = ElKind.native),
303
+ circle: new SvgDriver("circle", false, el => el.kind = ElKind.native),
304
+ clipPath: new SvgDriver("clipPath", false, el => el.kind = ElKind.native),
305
+ defs: new SvgDriver("defs", false, el => el.kind = ElKind.native),
306
+ desc: new SvgDriver("desc", false, el => el.kind = ElKind.native),
307
+ ellipse: new SvgDriver("ellipse", false, el => el.kind = ElKind.native),
308
+ feBlend: new SvgDriver("feBlend", false, el => el.kind = ElKind.native),
309
+ feColorMatrix: new SvgDriver("feColorMatrix", false, el => el.kind = ElKind.native),
310
+ feComponentTransfer: new SvgDriver("feComponentTransfer", false, el => el.kind = ElKind.native),
311
+ feComposite: new SvgDriver("feComposite", false, el => el.kind = ElKind.native),
312
+ feConvolveMatrix: new SvgDriver("feConvolveMatrix", false, el => el.kind = ElKind.native),
313
+ feDiffuseLighting: new SvgDriver("feDiffuseLighting", false, el => el.kind = ElKind.native),
314
+ feDisplacementMap: new SvgDriver("feDisplacementMap", false, el => el.kind = ElKind.native),
315
+ feDistantLight: new SvgDriver("feDistantLight", false, el => el.kind = ElKind.native),
316
+ feDropShadow: new SvgDriver("feDropShadow", false, el => el.kind = ElKind.native),
317
+ feFlood: new SvgDriver("feFlood", false, el => el.kind = ElKind.native),
318
+ feFuncA: new SvgDriver("feFuncA", false, el => el.kind = ElKind.native),
319
+ feFuncB: new SvgDriver("feFuncB", false, el => el.kind = ElKind.native),
320
+ feFuncG: new SvgDriver("feFuncG", false, el => el.kind = ElKind.native),
321
+ feFuncR: new SvgDriver("feFuncR", false, el => el.kind = ElKind.native),
322
+ feGaussianBlur: new SvgDriver("feGaussianBlur", false, el => el.kind = ElKind.native),
323
+ feImage: new SvgDriver("feImage", false, el => el.kind = ElKind.native),
324
+ feMerge: new SvgDriver("feMerge", false, el => el.kind = ElKind.native),
325
+ feMergeNode: new SvgDriver("feMergeNode", false, el => el.kind = ElKind.native),
326
+ feMorphology: new SvgDriver("feMorphology", false, el => el.kind = ElKind.native),
327
+ feOffset: new SvgDriver("feOffset", false, el => el.kind = ElKind.native),
328
+ fePointLight: new SvgDriver("fePointLight", false, el => el.kind = ElKind.native),
329
+ feSpecularLighting: new SvgDriver("feSpecularLighting", false, el => el.kind = ElKind.native),
330
+ feSpotLight: new SvgDriver("feSpotLight", false, el => el.kind = ElKind.native),
331
+ feTile: new SvgDriver("feTile", false, el => el.kind = ElKind.native),
332
+ feTurbulence: new SvgDriver("feTurbulence", false, el => el.kind = ElKind.native),
333
+ filter: new SvgDriver("filter", false, el => el.kind = ElKind.native),
334
+ foreignObject: new SvgDriver("foreignObject", false, el => el.kind = ElKind.native),
335
+ g: new SvgDriver("g", false, el => el.kind = ElKind.native),
336
+ image: new SvgDriver("image", false, el => el.kind = ElKind.native),
337
+ line: new SvgDriver("line", false, el => el.kind = ElKind.native),
338
+ linearGradient: new SvgDriver("linearGradient", false, el => el.kind = ElKind.native),
339
+ marker: new SvgDriver("marker", false, el => el.kind = ElKind.native),
340
+ mask: new SvgDriver("mask", false, el => el.kind = ElKind.native),
341
+ metadata: new SvgDriver("metadata", false, el => el.kind = ElKind.native),
342
+ mpath: new SvgDriver("mpath", false, el => el.kind = ElKind.native),
343
+ path: new SvgDriver("path", false, el => el.kind = ElKind.native),
344
+ pattern: new SvgDriver("pattern", false, el => el.kind = ElKind.native),
345
+ polygon: new SvgDriver("polygon", false, el => el.kind = ElKind.native),
346
+ polyline: new SvgDriver("polyline", false, el => el.kind = ElKind.native),
347
+ radialGradient: new SvgDriver("radialGradient", false, el => el.kind = ElKind.native),
348
+ rect: new SvgDriver("rect", false, el => el.kind = ElKind.native),
349
+ stop: new SvgDriver("stop", false, el => el.kind = ElKind.native),
350
+ switch: new SvgDriver("switch", false, el => el.kind = ElKind.native),
351
+ symbol: new SvgDriver("symbol", false, el => el.kind = ElKind.native),
352
+ text: new SvgDriver("text", false, el => el.kind = ElKind.native),
353
+ textPath: new SvgDriver("textPath", false, el => el.kind = ElKind.native),
354
+ tspan: new SvgDriver("tspan", false, el => el.kind = ElKind.native),
355
+ use: new SvgDriver("use", false, el => el.kind = ElKind.native),
356
+ view: new SvgDriver("view", false, el => el.kind = ElKind.native),
357
357
  };