@vidact/runtime 0.2.0-beta.0
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/CHANGELOG.md +15 -0
- package/LICENSE +21 -0
- package/README.md +50 -0
- package/dist/actions.d.ts +37 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +295 -0
- package/dist/actions.js.map +1 -0
- package/dist/async.d.ts +22 -0
- package/dist/async.d.ts.map +1 -0
- package/dist/async.js +24 -0
- package/dist/async.js.map +1 -0
- package/dist/compiled/async-resource.d.ts +7 -0
- package/dist/compiled/async-resource.d.ts.map +1 -0
- package/dist/compiled/async-resource.js +89 -0
- package/dist/compiled/async-resource.js.map +1 -0
- package/dist/compiled/core.d.ts +183 -0
- package/dist/compiled/core.d.ts.map +1 -0
- package/dist/compiled/core.js +3170 -0
- package/dist/compiled/core.js.map +1 -0
- package/dist/compiled/types.d.ts +63 -0
- package/dist/compiled/types.d.ts.map +1 -0
- package/dist/compiled/types.js +7 -0
- package/dist/compiled/types.js.map +1 -0
- package/dist/compiled/validation.d.ts +2 -0
- package/dist/compiled/validation.d.ts.map +1 -0
- package/dist/compiled/validation.js +22 -0
- package/dist/compiled/validation.js.map +1 -0
- package/dist/component-spread.d.ts +6 -0
- package/dist/component-spread.d.ts.map +1 -0
- package/dist/component-spread.js +71 -0
- package/dist/component-spread.js.map +1 -0
- package/dist/concurrent.d.ts +26 -0
- package/dist/concurrent.d.ts.map +1 -0
- package/dist/concurrent.js +244 -0
- package/dist/concurrent.js.map +1 -0
- package/dist/direct-dom.d.ts +14 -0
- package/dist/direct-dom.d.ts.map +1 -0
- package/dist/direct-dom.js +239 -0
- package/dist/direct-dom.js.map +1 -0
- package/dist/dom/attributes.d.ts +7 -0
- package/dist/dom/attributes.d.ts.map +1 -0
- package/dist/dom/attributes.js +52 -0
- package/dist/dom/attributes.js.map +1 -0
- package/dist/dom/events.d.ts +3 -0
- package/dist/dom/events.d.ts.map +1 -0
- package/dist/dom/events.js +78 -0
- package/dist/dom/events.js.map +1 -0
- package/dist/dom/forms.d.ts +7 -0
- package/dist/dom/forms.d.ts.map +1 -0
- package/dist/dom/forms.js +217 -0
- package/dist/dom/forms.js.map +1 -0
- package/dist/dom/intrinsic.d.ts +19 -0
- package/dist/dom/intrinsic.d.ts.map +1 -0
- package/dist/dom/intrinsic.js +53 -0
- package/dist/dom/intrinsic.js.map +1 -0
- package/dist/dom/namespace.d.ts +3 -0
- package/dist/dom/namespace.d.ts.map +1 -0
- package/dist/dom/namespace.js +34 -0
- package/dist/dom/namespace.js.map +1 -0
- package/dist/dom/namespaces.d.ts +9 -0
- package/dist/dom/namespaces.d.ts.map +1 -0
- package/dist/dom/namespaces.js +14 -0
- package/dist/dom/namespaces.js.map +1 -0
- package/dist/dom/properties.d.ts +27 -0
- package/dist/dom/properties.d.ts.map +1 -0
- package/dist/dom/properties.js +333 -0
- package/dist/dom/properties.js.map +1 -0
- package/dist/dom/style-properties.d.ts +2 -0
- package/dist/dom/style-properties.d.ts.map +1 -0
- package/dist/dom/style-properties.js +47 -0
- package/dist/dom/style-properties.js.map +1 -0
- package/dist/dom/styles.d.ts +4 -0
- package/dist/dom/styles.d.ts.map +1 -0
- package/dist/dom/styles.js +77 -0
- package/dist/dom/styles.js.map +1 -0
- package/dist/dom-forms.d.ts +3 -0
- package/dist/dom-forms.d.ts.map +1 -0
- package/dist/dom-forms.js +17 -0
- package/dist/dom-forms.js.map +1 -0
- package/dist/dom-styles.d.ts +3 -0
- package/dist/dom-styles.d.ts.map +1 -0
- package/dist/dom-styles.js +11 -0
- package/dist/dom-styles.js.map +1 -0
- package/dist/env.d.ts +6 -0
- package/dist/framework-hydrate.d.ts +21 -0
- package/dist/framework-hydrate.d.ts.map +1 -0
- package/dist/framework-hydrate.js +165 -0
- package/dist/framework-hydrate.js.map +1 -0
- package/dist/framework-protocol.d.ts +33 -0
- package/dist/framework-protocol.d.ts.map +1 -0
- package/dist/framework-protocol.js +235 -0
- package/dist/framework-protocol.js.map +1 -0
- package/dist/framework.d.ts +39 -0
- package/dist/framework.d.ts.map +1 -0
- package/dist/framework.js +111 -0
- package/dist/framework.js.map +1 -0
- package/dist/hydrate.d.ts +9 -0
- package/dist/hydrate.d.ts.map +1 -0
- package/dist/hydrate.js +14 -0
- package/dist/hydrate.js.map +1 -0
- package/dist/hydration-bridge.d.ts +62 -0
- package/dist/hydration-bridge.d.ts.map +1 -0
- package/dist/hydration-bridge.js +95 -0
- package/dist/hydration-bridge.js.map +1 -0
- package/dist/hydration.d.ts +29 -0
- package/dist/hydration.d.ts.map +1 -0
- package/dist/hydration.js +489 -0
- package/dist/hydration.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/indexed-list.d.ts +12 -0
- package/dist/indexed-list.d.ts.map +1 -0
- package/dist/indexed-list.js +10 -0
- package/dist/indexed-list.js.map +1 -0
- package/dist/jsx-runtime.d.ts +12 -0
- package/dist/jsx-runtime.d.ts.map +1 -0
- package/dist/jsx-runtime.js +27 -0
- package/dist/jsx-runtime.js.map +1 -0
- package/dist/keyed-list.d.ts +17 -0
- package/dist/keyed-list.d.ts.map +1 -0
- package/dist/keyed-list.js +180 -0
- package/dist/keyed-list.js.map +1 -0
- package/dist/metadata.d.ts +4 -0
- package/dist/metadata.d.ts.map +1 -0
- package/dist/metadata.js +187 -0
- package/dist/metadata.js.map +1 -0
- package/dist/nested-prop.d.ts +4 -0
- package/dist/nested-prop.d.ts.map +1 -0
- package/dist/nested-prop.js +18 -0
- package/dist/nested-prop.js.map +1 -0
- package/dist/profiling.d.ts +10 -0
- package/dist/profiling.d.ts.map +1 -0
- package/dist/profiling.js +21 -0
- package/dist/profiling.js.map +1 -0
- package/dist/protocol.d.ts +3 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +7 -0
- package/dist/protocol.js.map +1 -0
- package/dist/raw-html.d.ts +3 -0
- package/dist/raw-html.d.ts.map +1 -0
- package/dist/raw-html.js +172 -0
- package/dist/raw-html.js.map +1 -0
- package/dist/ref.d.ts +6 -0
- package/dist/ref.d.ts.map +1 -0
- package/dist/ref.js +5 -0
- package/dist/ref.js.map +1 -0
- package/dist/renderable-protocol.d.ts +10 -0
- package/dist/renderable-protocol.d.ts.map +1 -0
- package/dist/renderable-protocol.js +12 -0
- package/dist/renderable-protocol.js.map +1 -0
- package/dist/renderable.d.ts +27 -0
- package/dist/renderable.d.ts.map +1 -0
- package/dist/renderable.js +147 -0
- package/dist/renderable.js.map +1 -0
- package/dist/retained-ui.d.ts +8 -0
- package/dist/retained-ui.d.ts.map +1 -0
- package/dist/retained-ui.js +12 -0
- package/dist/retained-ui.js.map +1 -0
- package/dist/root.d.ts +18 -0
- package/dist/root.d.ts.map +1 -0
- package/dist/root.js +94 -0
- package/dist/root.js.map +1 -0
- package/dist/scheduler.d.ts +10 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +124 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/server-framework.d.ts +52 -0
- package/dist/server-framework.d.ts.map +1 -0
- package/dist/server-framework.js +247 -0
- package/dist/server-framework.js.map +1 -0
- package/dist/server.d.ts +159 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +793 -0
- package/dist/server.js.map +1 -0
- package/dist/shared/promise.d.ts +4 -0
- package/dist/shared/promise.d.ts.map +1 -0
- package/dist/shared/promise.js +23 -0
- package/dist/shared/promise.js.map +1 -0
- package/dist/source-mask.d.ts +7 -0
- package/dist/source-mask.d.ts.map +1 -0
- package/dist/source-mask.js +74 -0
- package/dist/source-mask.js.map +1 -0
- package/dist/spread.d.ts +3 -0
- package/dist/spread.d.ts.map +1 -0
- package/dist/spread.js +103 -0
- package/dist/spread.js.map +1 -0
- package/dist/state-slot.d.ts +18 -0
- package/dist/state-slot.d.ts.map +1 -0
- package/dist/state-slot.js +46 -0
- package/dist/state-slot.js.map +1 -0
- package/dist/testing.d.ts +7 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +18 -0
- package/dist/testing.js.map +1 -0
- package/package.json +151 -0
|
@@ -0,0 +1,489 @@
|
|
|
1
|
+
import { HydrationMismatch, installHydrationOperations, } from './hydration-bridge.js';
|
|
2
|
+
const HYDRATION_PREFIX = 'vidact:v1';
|
|
3
|
+
let activeHydration;
|
|
4
|
+
let activeInsertionPoint;
|
|
5
|
+
const hydrationFragments = new WeakMap();
|
|
6
|
+
export function beginHydration(host) {
|
|
7
|
+
if (activeHydration !== undefined) {
|
|
8
|
+
throw new Error('a Vidact hydration is already active');
|
|
9
|
+
}
|
|
10
|
+
const ranges = scanRanges(host);
|
|
11
|
+
const root = ranges.roots[0];
|
|
12
|
+
if (root === undefined || ranges.roots.length !== 1) {
|
|
13
|
+
throw mismatch('expected exactly one vidact:v1 root marker range');
|
|
14
|
+
}
|
|
15
|
+
activeHydration = {
|
|
16
|
+
host,
|
|
17
|
+
root,
|
|
18
|
+
components: ranges.components,
|
|
19
|
+
claimedElements: new WeakSet(),
|
|
20
|
+
elementComponents: collectElementComponents(host),
|
|
21
|
+
elements: collectPostorderElements(root),
|
|
22
|
+
cursors: new WeakMap([[host, root[0].nextSibling]]),
|
|
23
|
+
slots: new WeakMap(),
|
|
24
|
+
componentIndex: 0,
|
|
25
|
+
claimedElementCount: 0,
|
|
26
|
+
pendingStructuralParents: 0,
|
|
27
|
+
activeComponentStart: undefined,
|
|
28
|
+
};
|
|
29
|
+
return () => {
|
|
30
|
+
activeHydration = undefined;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function finishHydration() {
|
|
34
|
+
const state = requireHydration();
|
|
35
|
+
if (state.componentIndex !== state.components.length) {
|
|
36
|
+
throw mismatch(`claimed ${state.componentIndex} of ${state.components.length} server component ranges`);
|
|
37
|
+
}
|
|
38
|
+
if (state.claimedElementCount !== state.elements.length) {
|
|
39
|
+
throw mismatch(`claimed ${state.claimedElementCount} of ${state.elements.length} server elements`);
|
|
40
|
+
}
|
|
41
|
+
const rootCursor = cursor(state, state.host);
|
|
42
|
+
if (rootCursor !== state.root[1]) {
|
|
43
|
+
throw mismatch(`compiled root did not consume the complete server root range; stopped at ${JSON.stringify(markerValue(rootCursor) ?? rootCursor?.nodeName ?? null)}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export function hydrationRootMarkers() {
|
|
47
|
+
return requireHydration().root;
|
|
48
|
+
}
|
|
49
|
+
export function isHydrating() {
|
|
50
|
+
return activeHydration !== undefined;
|
|
51
|
+
}
|
|
52
|
+
export function createHydrationFragment(children) {
|
|
53
|
+
const fragment = document.createDocumentFragment();
|
|
54
|
+
hydrationFragments.set(fragment, children);
|
|
55
|
+
return fragment;
|
|
56
|
+
}
|
|
57
|
+
export function hydrationFragmentChildren(fragment) {
|
|
58
|
+
return hydrationFragments.get(fragment);
|
|
59
|
+
}
|
|
60
|
+
export function isHydrationMismatch(error) {
|
|
61
|
+
return error instanceof HydrationMismatch;
|
|
62
|
+
}
|
|
63
|
+
export function claimHydrationElement(localName, namespace, matchesExpected) {
|
|
64
|
+
const state = activeHydration;
|
|
65
|
+
if (state === undefined)
|
|
66
|
+
return undefined;
|
|
67
|
+
const candidates = state.elements.filter((candidate) => !state.claimedElements.has(candidate) &&
|
|
68
|
+
(state.activeComponentStart === undefined ||
|
|
69
|
+
state.elementComponents.get(candidate) === state.activeComponentStart) &&
|
|
70
|
+
candidate.localName === localName &&
|
|
71
|
+
candidate.namespaceURI === namespace);
|
|
72
|
+
const expectedMatches = matchesExpected === undefined ? candidates : candidates.filter(matchesExpected);
|
|
73
|
+
const matches = expectedMatches.length === 0 ? candidates : expectedMatches;
|
|
74
|
+
const element = state.pendingStructuralParents > 0
|
|
75
|
+
? (matches.find(containsArrayMarker) ?? matches[0])
|
|
76
|
+
: matches[0];
|
|
77
|
+
if (element === undefined) {
|
|
78
|
+
throw mismatch(state.pendingStructuralParents > 0
|
|
79
|
+
? `missing server structural parent <${localName}>`
|
|
80
|
+
: `missing server element <${localName}>`);
|
|
81
|
+
}
|
|
82
|
+
if (state.pendingStructuralParents > 0)
|
|
83
|
+
state.pendingStructuralParents = 0;
|
|
84
|
+
state.claimedElements.add(element);
|
|
85
|
+
state.claimedElementCount += 1;
|
|
86
|
+
state.cursors.set(element, element.firstChild);
|
|
87
|
+
return element;
|
|
88
|
+
}
|
|
89
|
+
export function noteHydrationStructuralParent() {
|
|
90
|
+
if (activeHydration !== undefined)
|
|
91
|
+
activeHydration.pendingStructuralParents += 1;
|
|
92
|
+
}
|
|
93
|
+
export function claimHydrationComponentRange() {
|
|
94
|
+
const state = activeHydration;
|
|
95
|
+
if (state === undefined)
|
|
96
|
+
return undefined;
|
|
97
|
+
const range = state.components[state.componentIndex];
|
|
98
|
+
if (range === undefined)
|
|
99
|
+
throw mismatch('missing server component marker range');
|
|
100
|
+
state.componentIndex += 1;
|
|
101
|
+
const parent = range[0].parentNode;
|
|
102
|
+
if (parent === null || range[1].parentNode !== parent) {
|
|
103
|
+
throw mismatch('server component marker range is detached');
|
|
104
|
+
}
|
|
105
|
+
return range;
|
|
106
|
+
}
|
|
107
|
+
export function withHydrationComponentRange(range, operation) {
|
|
108
|
+
const state = activeHydration;
|
|
109
|
+
if (state === undefined)
|
|
110
|
+
return operation();
|
|
111
|
+
const previous = state.activeComponentStart;
|
|
112
|
+
state.activeComponentStart = range[0];
|
|
113
|
+
try {
|
|
114
|
+
return operation();
|
|
115
|
+
}
|
|
116
|
+
finally {
|
|
117
|
+
state.activeComponentStart = previous;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
export function withHydrationCursor(parent, value, operation) {
|
|
121
|
+
const state = activeHydration;
|
|
122
|
+
if (state === undefined)
|
|
123
|
+
return operation();
|
|
124
|
+
const hadCursor = state.cursors.has(parent);
|
|
125
|
+
const previous = state.cursors.get(parent) ?? null;
|
|
126
|
+
state.cursors.set(parent, value);
|
|
127
|
+
try {
|
|
128
|
+
return operation();
|
|
129
|
+
}
|
|
130
|
+
finally {
|
|
131
|
+
if (hadCursor)
|
|
132
|
+
state.cursors.set(parent, previous);
|
|
133
|
+
else
|
|
134
|
+
state.cursors.delete(parent);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
export function claimHydrationNode(parent, node) {
|
|
138
|
+
const state = activeHydration;
|
|
139
|
+
if (state === undefined)
|
|
140
|
+
return false;
|
|
141
|
+
enterHydrationSlot(state, parent);
|
|
142
|
+
const next = cursor(state, parent);
|
|
143
|
+
if (isMarker(next, `${HYDRATION_PREFIX}:s`)) {
|
|
144
|
+
const end = findClosingSibling(next, `${HYDRATION_PREFIX}:s`);
|
|
145
|
+
if (next.nextSibling !== node || node.nextSibling !== end) {
|
|
146
|
+
throw mismatch(`server node range does not contain exactly the expected ${node.nodeName}`);
|
|
147
|
+
}
|
|
148
|
+
setHydrationCursor(state, parent, end.nextSibling);
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
if (next !== node) {
|
|
152
|
+
throw mismatch(`expected existing ${node.nodeName} at the current hydration position`);
|
|
153
|
+
}
|
|
154
|
+
setHydrationCursor(state, parent, node.nextSibling);
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
export function claimHydrationComponentMount(parent, start, end) {
|
|
158
|
+
const state = activeHydration;
|
|
159
|
+
if (state === undefined)
|
|
160
|
+
return false;
|
|
161
|
+
enterHydrationSlot(state, parent);
|
|
162
|
+
const current = cursor(state, parent);
|
|
163
|
+
if ((current !== start && current !== end) ||
|
|
164
|
+
start.parentNode !== parent ||
|
|
165
|
+
end.parentNode !== parent) {
|
|
166
|
+
throw mismatch('server component range does not match the compiled child position');
|
|
167
|
+
}
|
|
168
|
+
setHydrationCursor(state, parent, end.nextSibling);
|
|
169
|
+
return true;
|
|
170
|
+
}
|
|
171
|
+
export function claimHydrationText(parent, expected) {
|
|
172
|
+
return claimHydrationTextRange(parent, expected)?.[2];
|
|
173
|
+
}
|
|
174
|
+
export function claimHydrationTextRange(parent, expected) {
|
|
175
|
+
const state = activeHydration;
|
|
176
|
+
if (state === undefined)
|
|
177
|
+
return undefined;
|
|
178
|
+
enterHydrationSlot(state, parent);
|
|
179
|
+
const start = cursor(state, parent);
|
|
180
|
+
if (!isMarker(start, `${HYDRATION_PREFIX}:t`)) {
|
|
181
|
+
throw mismatch('expected a vidact:v1 text marker');
|
|
182
|
+
}
|
|
183
|
+
const end = findClosingSibling(start, `${HYDRATION_PREFIX}:t`);
|
|
184
|
+
const nodes = [];
|
|
185
|
+
for (let node = start.nextSibling; node !== null && node !== end; node = node.nextSibling) {
|
|
186
|
+
nodes.push(node);
|
|
187
|
+
}
|
|
188
|
+
if (nodes.length > 1 || (nodes.length === 1 && !(nodes[0] instanceof Text))) {
|
|
189
|
+
throw mismatch('server text marker must contain at most one text node');
|
|
190
|
+
}
|
|
191
|
+
const text = nodes[0] ?? null;
|
|
192
|
+
if ((text?.data ?? '') !== expected) {
|
|
193
|
+
throw mismatch(`server text ${JSON.stringify(text?.data ?? '')} does not match ${JSON.stringify(expected)}`);
|
|
194
|
+
}
|
|
195
|
+
setHydrationCursor(state, parent, end.nextSibling);
|
|
196
|
+
return [start, end, text];
|
|
197
|
+
}
|
|
198
|
+
export function claimHydrationArrayRange(parent) {
|
|
199
|
+
const state = activeHydration;
|
|
200
|
+
if (state === undefined)
|
|
201
|
+
return undefined;
|
|
202
|
+
enterHydrationSlot(state, parent);
|
|
203
|
+
const start = cursor(state, parent);
|
|
204
|
+
if (!isMarker(start, `${HYDRATION_PREFIX}:a`)) {
|
|
205
|
+
throw mismatch(`expected a vidact:v1 array marker in ${parent.nodeName}; found ${JSON.stringify(markerValue(start) ?? start?.nodeName ?? null)}`);
|
|
206
|
+
}
|
|
207
|
+
const end = findClosingSibling(start, `${HYDRATION_PREFIX}:a`);
|
|
208
|
+
state.cursors.set(parent, start.nextSibling);
|
|
209
|
+
return [start, end];
|
|
210
|
+
}
|
|
211
|
+
export function finishHydrationArrayRange(parent, end) {
|
|
212
|
+
const state = requireHydration();
|
|
213
|
+
if (cursor(state, parent) !== end) {
|
|
214
|
+
throw mismatch('compiled collection did not consume its complete server array range');
|
|
215
|
+
}
|
|
216
|
+
setHydrationCursor(state, parent, end.nextSibling);
|
|
217
|
+
}
|
|
218
|
+
export function claimHydrationSlotRange(parent) {
|
|
219
|
+
const state = activeHydration;
|
|
220
|
+
if (state === undefined)
|
|
221
|
+
return undefined;
|
|
222
|
+
const start = cursor(state, parent);
|
|
223
|
+
if (!isMarker(start, `${HYDRATION_PREFIX}:b`)) {
|
|
224
|
+
throw mismatch(`expected a vidact:v1 child-slot marker in ${parent.nodeName}; found ${JSON.stringify(markerValue(start) ?? start?.nodeName ?? null)} after ${JSON.stringify(markerValue(start?.previousSibling) ?? start?.previousSibling?.nodeName ?? null)}; insertion=${JSON.stringify(markerValue(activeInsertionPoint?.[1]) ?? activeInsertionPoint?.[1]?.nodeName ?? null)}`);
|
|
225
|
+
}
|
|
226
|
+
const end = findClosingSibling(start, `${HYDRATION_PREFIX}:b`);
|
|
227
|
+
const slots = state.slots.get(parent) ?? [];
|
|
228
|
+
slots.push(end);
|
|
229
|
+
state.slots.set(parent, slots);
|
|
230
|
+
state.cursors.set(parent, start.nextSibling);
|
|
231
|
+
return [start, end];
|
|
232
|
+
}
|
|
233
|
+
export function borrowHydrationSlotRange(parent, current) {
|
|
234
|
+
const state = activeHydration;
|
|
235
|
+
if (state === undefined)
|
|
236
|
+
return undefined;
|
|
237
|
+
const start = (current ? cursor(state, parent) : cursor(state, parent)?.previousSibling);
|
|
238
|
+
if (!isMarker(start, `${HYDRATION_PREFIX}:b`))
|
|
239
|
+
return undefined;
|
|
240
|
+
if (!current &&
|
|
241
|
+
activeInsertionPoint?.[0] === parent &&
|
|
242
|
+
isMarker(activeInsertionPoint[1], `/${HYDRATION_PREFIX}:b`)) {
|
|
243
|
+
return [start, activeInsertionPoint[1]];
|
|
244
|
+
}
|
|
245
|
+
return [start, findClosingSibling(start, `${HYDRATION_PREFIX}:b`)];
|
|
246
|
+
}
|
|
247
|
+
export function claimHydrationSuspenseFallback(parent) {
|
|
248
|
+
const state = activeHydration;
|
|
249
|
+
if (state === undefined)
|
|
250
|
+
return undefined;
|
|
251
|
+
const marker = cursor(state, parent);
|
|
252
|
+
if (!isMarker(marker, `${HYDRATION_PREFIX}:p`))
|
|
253
|
+
return undefined;
|
|
254
|
+
setHydrationCursor(state, parent, marker.nextSibling);
|
|
255
|
+
return marker;
|
|
256
|
+
}
|
|
257
|
+
export function withoutHydration(operation) {
|
|
258
|
+
const previous = activeHydration;
|
|
259
|
+
activeHydration = undefined;
|
|
260
|
+
try {
|
|
261
|
+
return operation();
|
|
262
|
+
}
|
|
263
|
+
finally {
|
|
264
|
+
activeHydration = previous;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
export function withHydrationInsertion(parent, before, operation) {
|
|
268
|
+
if (activeHydration === undefined)
|
|
269
|
+
return operation();
|
|
270
|
+
const previous = activeInsertionPoint;
|
|
271
|
+
activeInsertionPoint = [parent, before];
|
|
272
|
+
try {
|
|
273
|
+
return operation();
|
|
274
|
+
}
|
|
275
|
+
finally {
|
|
276
|
+
activeInsertionPoint = previous;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
export function hydrationInsertionPoint() {
|
|
280
|
+
return activeInsertionPoint;
|
|
281
|
+
}
|
|
282
|
+
export function hydrationCursor(parent) {
|
|
283
|
+
const state = activeHydration;
|
|
284
|
+
return state === undefined ? undefined : cursor(state, parent);
|
|
285
|
+
}
|
|
286
|
+
export function hydrationRangeParent(start, end) {
|
|
287
|
+
if (activeHydration === undefined)
|
|
288
|
+
return undefined;
|
|
289
|
+
const parent = start.parentNode;
|
|
290
|
+
if (parent === null || end.parentNode !== parent)
|
|
291
|
+
throw mismatch('detached server marker range');
|
|
292
|
+
return parent;
|
|
293
|
+
}
|
|
294
|
+
function requireHydration() {
|
|
295
|
+
if (activeHydration === undefined)
|
|
296
|
+
throw new Error('no Vidact hydration is active');
|
|
297
|
+
return activeHydration;
|
|
298
|
+
}
|
|
299
|
+
function cursor(state, parent) {
|
|
300
|
+
if (!state.cursors.has(parent))
|
|
301
|
+
state.cursors.set(parent, parent.firstChild);
|
|
302
|
+
return state.cursors.get(parent) ?? null;
|
|
303
|
+
}
|
|
304
|
+
function enterHydrationSlot(state, parent) {
|
|
305
|
+
const slots = state.slots.get(parent) ?? [];
|
|
306
|
+
let start = cursor(state, parent);
|
|
307
|
+
while (isMarker(start, `${HYDRATION_PREFIX}:b`)) {
|
|
308
|
+
slots.push(findClosingSibling(start, `${HYDRATION_PREFIX}:b`));
|
|
309
|
+
start = start.nextSibling;
|
|
310
|
+
}
|
|
311
|
+
if (slots.length !== 0)
|
|
312
|
+
state.slots.set(parent, slots);
|
|
313
|
+
state.cursors.set(parent, start);
|
|
314
|
+
}
|
|
315
|
+
function setHydrationCursor(state, parent, value) {
|
|
316
|
+
const slots = state.slots.get(parent);
|
|
317
|
+
let next = value;
|
|
318
|
+
if (slots !== undefined) {
|
|
319
|
+
for (;;) {
|
|
320
|
+
const end = slots.at(-1);
|
|
321
|
+
if (end !== next)
|
|
322
|
+
break;
|
|
323
|
+
slots.pop();
|
|
324
|
+
next = end.nextSibling;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
state.cursors.set(parent, next);
|
|
328
|
+
}
|
|
329
|
+
function mismatch(message) {
|
|
330
|
+
return new HydrationMismatch(message);
|
|
331
|
+
}
|
|
332
|
+
function markerValue(node) {
|
|
333
|
+
return node instanceof Comment ? node.data : undefined;
|
|
334
|
+
}
|
|
335
|
+
function isMarker(node, value) {
|
|
336
|
+
return markerValue(node) === value;
|
|
337
|
+
}
|
|
338
|
+
function findClosingSibling(start, kind) {
|
|
339
|
+
let depth = 0;
|
|
340
|
+
for (let node = start.nextSibling; node !== null; node = node.nextSibling) {
|
|
341
|
+
if (isMarker(node, kind)) {
|
|
342
|
+
depth += 1;
|
|
343
|
+
continue;
|
|
344
|
+
}
|
|
345
|
+
if (!isMarker(node, `/${kind}`))
|
|
346
|
+
continue;
|
|
347
|
+
if (depth === 0)
|
|
348
|
+
return node;
|
|
349
|
+
depth -= 1;
|
|
350
|
+
}
|
|
351
|
+
throw mismatch(`missing closing ${kind} marker`);
|
|
352
|
+
}
|
|
353
|
+
function scanRanges(host) {
|
|
354
|
+
const roots = [];
|
|
355
|
+
const components = [];
|
|
356
|
+
const stacks = new Map();
|
|
357
|
+
const walker = document.createTreeWalker(host, NodeFilter.SHOW_COMMENT);
|
|
358
|
+
for (let node = walker.nextNode(); node !== null; node = walker.nextNode()) {
|
|
359
|
+
const comment = node;
|
|
360
|
+
const match = comment.data.match(/^\/?vidact:v1:([abchrst])$/);
|
|
361
|
+
if (match === null)
|
|
362
|
+
continue;
|
|
363
|
+
const kind = match[1];
|
|
364
|
+
if (!comment.data.startsWith('/')) {
|
|
365
|
+
const stack = stacks.get(kind) ?? [];
|
|
366
|
+
stack.push(comment);
|
|
367
|
+
stacks.set(kind, stack);
|
|
368
|
+
continue;
|
|
369
|
+
}
|
|
370
|
+
const start = stacks.get(kind)?.pop();
|
|
371
|
+
if (start === undefined)
|
|
372
|
+
throw mismatch(`orphan closing vidact:v1:${kind} marker`);
|
|
373
|
+
if (kind === 'r')
|
|
374
|
+
roots.push([start, comment]);
|
|
375
|
+
if (kind === 'c')
|
|
376
|
+
components.push([start, comment]);
|
|
377
|
+
}
|
|
378
|
+
if ([...stacks.values()].some((stack) => stack.length !== 0)) {
|
|
379
|
+
throw mismatch('unclosed vidact:v1 hydration marker');
|
|
380
|
+
}
|
|
381
|
+
components.sort(([left], [right]) => {
|
|
382
|
+
const position = left.compareDocumentPosition(right);
|
|
383
|
+
if (position & Node.DOCUMENT_POSITION_FOLLOWING)
|
|
384
|
+
return -1;
|
|
385
|
+
if (position & Node.DOCUMENT_POSITION_PRECEDING)
|
|
386
|
+
return 1;
|
|
387
|
+
return 0;
|
|
388
|
+
});
|
|
389
|
+
return { roots, components };
|
|
390
|
+
}
|
|
391
|
+
function collectPostorderElements(root) {
|
|
392
|
+
const elements = [];
|
|
393
|
+
const visit = (element) => {
|
|
394
|
+
visitChildren(element);
|
|
395
|
+
elements.push(element);
|
|
396
|
+
};
|
|
397
|
+
const visitChildren = (parent) => {
|
|
398
|
+
let opaqueDepth = 0;
|
|
399
|
+
for (const child of parent.childNodes) {
|
|
400
|
+
if (isMarker(child, `${HYDRATION_PREFIX}:h`)) {
|
|
401
|
+
opaqueDepth += 1;
|
|
402
|
+
continue;
|
|
403
|
+
}
|
|
404
|
+
if (isMarker(child, `/${HYDRATION_PREFIX}:h`)) {
|
|
405
|
+
opaqueDepth -= 1;
|
|
406
|
+
continue;
|
|
407
|
+
}
|
|
408
|
+
if (opaqueDepth === 0 && child instanceof Element)
|
|
409
|
+
visit(child);
|
|
410
|
+
}
|
|
411
|
+
if (opaqueDepth !== 0)
|
|
412
|
+
throw mismatch('unbalanced vidact:v1 raw HTML marker range');
|
|
413
|
+
};
|
|
414
|
+
let opaqueDepth = 0;
|
|
415
|
+
for (let node = root[0].nextSibling; node !== null && node !== root[1]; node = node.nextSibling) {
|
|
416
|
+
if (isMarker(node, `${HYDRATION_PREFIX}:h`)) {
|
|
417
|
+
opaqueDepth += 1;
|
|
418
|
+
continue;
|
|
419
|
+
}
|
|
420
|
+
if (isMarker(node, `/${HYDRATION_PREFIX}:h`)) {
|
|
421
|
+
opaqueDepth -= 1;
|
|
422
|
+
continue;
|
|
423
|
+
}
|
|
424
|
+
if (opaqueDepth === 0 && node instanceof Element)
|
|
425
|
+
visit(node);
|
|
426
|
+
}
|
|
427
|
+
if (opaqueDepth !== 0)
|
|
428
|
+
throw mismatch('unbalanced vidact:v1 raw HTML marker range');
|
|
429
|
+
return elements;
|
|
430
|
+
}
|
|
431
|
+
function collectElementComponents(host) {
|
|
432
|
+
const owners = new WeakMap();
|
|
433
|
+
const components = [];
|
|
434
|
+
const walker = document.createTreeWalker(host, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT);
|
|
435
|
+
for (let node = walker.nextNode(); node !== null; node = walker.nextNode()) {
|
|
436
|
+
if (isMarker(node, `${HYDRATION_PREFIX}:c`)) {
|
|
437
|
+
components.push(node);
|
|
438
|
+
continue;
|
|
439
|
+
}
|
|
440
|
+
if (isMarker(node, `/${HYDRATION_PREFIX}:c`)) {
|
|
441
|
+
components.pop();
|
|
442
|
+
continue;
|
|
443
|
+
}
|
|
444
|
+
if (node instanceof Element) {
|
|
445
|
+
const owner = components.at(-1);
|
|
446
|
+
if (owner !== undefined)
|
|
447
|
+
owners.set(node, owner);
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
return owners;
|
|
451
|
+
}
|
|
452
|
+
function containsArrayMarker(element) {
|
|
453
|
+
const walker = document.createTreeWalker(element, NodeFilter.SHOW_COMMENT);
|
|
454
|
+
for (let node = walker.nextNode(); node !== null; node = walker.nextNode()) {
|
|
455
|
+
if (isMarker(node, `${HYDRATION_PREFIX}:a`))
|
|
456
|
+
return true;
|
|
457
|
+
}
|
|
458
|
+
return false;
|
|
459
|
+
}
|
|
460
|
+
export function installHydration() {
|
|
461
|
+
installHydrationOperations({
|
|
462
|
+
begin: beginHydration,
|
|
463
|
+
finish: finishHydration,
|
|
464
|
+
rootMarkers: hydrationRootMarkers,
|
|
465
|
+
active: isHydrating,
|
|
466
|
+
createFragment: createHydrationFragment,
|
|
467
|
+
fragmentChildren: hydrationFragmentChildren,
|
|
468
|
+
claimElement: claimHydrationElement,
|
|
469
|
+
noteStructuralParent: noteHydrationStructuralParent,
|
|
470
|
+
claimComponentRange: claimHydrationComponentRange,
|
|
471
|
+
withComponentRange: withHydrationComponentRange,
|
|
472
|
+
withCursor: withHydrationCursor,
|
|
473
|
+
claimNode: claimHydrationNode,
|
|
474
|
+
claimComponentMount: claimHydrationComponentMount,
|
|
475
|
+
claimText: claimHydrationText,
|
|
476
|
+
claimTextRange: claimHydrationTextRange,
|
|
477
|
+
claimArrayRange: claimHydrationArrayRange,
|
|
478
|
+
finishArrayRange: finishHydrationArrayRange,
|
|
479
|
+
claimSlotRange: claimHydrationSlotRange,
|
|
480
|
+
borrowSlotRange: borrowHydrationSlotRange,
|
|
481
|
+
claimSuspenseFallback: claimHydrationSuspenseFallback,
|
|
482
|
+
withoutHydration,
|
|
483
|
+
withInsertion: withHydrationInsertion,
|
|
484
|
+
insertionPoint: hydrationInsertionPoint,
|
|
485
|
+
cursor: hydrationCursor,
|
|
486
|
+
rangeParent: hydrationRangeParent,
|
|
487
|
+
});
|
|
488
|
+
}
|
|
489
|
+
//# sourceMappingURL=hydration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hydration.js","sourceRoot":"","sources":["../src/hydration.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,0BAA0B,GAE3B,MAAM,uBAAuB,CAAA;AAE9B,MAAM,gBAAgB,GAAG,WAAW,CAAA;AAiBpC,IAAI,eAA2C,CAAA;AAC/C,IAAI,oBAAuE,CAAA;AAC3E,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAwC,CAAA;AAE9E,MAAM,UAAU,cAAc,CAAC,IAAgB;IAC7C,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;IACzD,CAAC;IACD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC5B,IAAI,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,QAAQ,CAAC,kDAAkD,CAAC,CAAA;IACpE,CAAC;IACD,eAAe,GAAG;QAChB,IAAI;QACJ,IAAI;QACJ,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,eAAe,EAAE,IAAI,OAAO,EAAE;QAC9B,iBAAiB,EAAE,wBAAwB,CAAC,IAAI,CAAC;QACjD,QAAQ,EAAE,wBAAwB,CAAC,IAAI,CAAC;QACxC,OAAO,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,IAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3D,KAAK,EAAE,IAAI,OAAO,EAAE;QACpB,cAAc,EAAE,CAAC;QACjB,mBAAmB,EAAE,CAAC;QACtB,wBAAwB,EAAE,CAAC;QAC3B,oBAAoB,EAAE,SAAS;KAChC,CAAA;IACD,OAAO,GAAG,EAAE;QACV,eAAe,GAAG,SAAS,CAAA;IAC7B,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAA;IAChC,IAAI,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACrD,MAAM,QAAQ,CACZ,WAAW,KAAK,CAAC,cAAc,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,0BAA0B,CACxF,CAAA;IACH,CAAC;IACD,IAAI,KAAK,CAAC,mBAAmB,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxD,MAAM,QAAQ,CACZ,WAAW,KAAK,CAAC,mBAAmB,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,kBAAkB,CACnF,CAAA;IACH,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAY,CAAC,CAAA;IACpD,IAAI,UAAU,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,MAAM,QAAQ,CACZ,4EAA4E,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,UAAkB,CAAC,IAAI,UAAU,EAAE,QAAQ,IAAI,IAAI,CAAC,EAAE,CAC9J,CAAA;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,gBAAgB,EAAE,CAAC,IAAI,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,eAAe,KAAK,SAAS,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,QAA4B;IAClE,MAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAA;IAClD,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC1C,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,QAA0B;IAE1B,OAAO,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,KAAK,YAAY,iBAAiB,CAAA;AAC3C,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,SAAiB,EACjB,SAAwB,EACxB,eAA+C;IAE/C,MAAM,KAAK,GAAG,eAAe,CAAA;IAC7B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CACtC,CAAC,SAAS,EAAE,EAAE,CACZ,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;QACrC,CAAC,KAAK,CAAC,oBAAoB,KAAK,SAAS;YACvC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,oBAAoB,CAAC;QACxE,SAAS,CAAC,SAAS,KAAK,SAAS;QACjC,SAAS,CAAC,YAAY,KAAK,SAAS,CACvC,CAAA;IACD,MAAM,eAAe,GACnB,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IACjF,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAA;IAC3E,MAAM,OAAO,GACX,KAAK,CAAC,wBAAwB,GAAG,CAAC;QAChC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAChB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,QAAQ,CACZ,KAAK,CAAC,wBAAwB,GAAG,CAAC;YAChC,CAAC,CAAC,qCAAqC,SAAS,GAAG;YACnD,CAAC,CAAC,2BAA2B,SAAS,GAAG,CAC5C,CAAA;IACH,CAAC;IACD,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAC;QAAE,KAAK,CAAC,wBAAwB,GAAG,CAAC,CAAA;IAC1E,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAClC,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAA;IAC9B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAC9C,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,IAAI,eAAe,KAAK,SAAS;QAAE,eAAe,CAAC,wBAAwB,IAAI,CAAC,CAAA;AAClF,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,MAAM,KAAK,GAAG,eAAe,CAAA;IAC7B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IACpD,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,QAAQ,CAAC,uCAAuC,CAAC,CAAA;IAChF,KAAK,CAAC,cAAc,IAAI,CAAC,CAAA;IACzB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;IAClC,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QACtD,MAAM,QAAQ,CAAC,2CAA2C,CAAC,CAAA;IAC7D,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,KAAqB,EACrB,SAAuB;IAEvB,MAAM,KAAK,GAAG,eAAe,CAAA;IAC7B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,EAAE,CAAA;IAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,oBAAoB,CAAA;IAC3C,KAAK,CAAC,oBAAoB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACrC,IAAI,CAAC;QACH,OAAO,SAAS,EAAE,CAAA;IACpB,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,oBAAoB,GAAG,QAAQ,CAAA;IACvC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAAY,EACZ,KAAkB,EAClB,SAAuB;IAEvB,MAAM,KAAK,GAAG,eAAe,CAAA;IAC7B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,EAAE,CAAA;IAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAA;IAClD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAChC,IAAI,CAAC;QACH,OAAO,SAAS,EAAE,CAAA;IACpB,CAAC;YAAS,CAAC;QACT,IAAI,SAAS;YAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;;YAC7C,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAY,EAAE,IAAU;IACzD,MAAM,KAAK,GAAG,eAAe,CAAA;IAC7B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACrC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAClC,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,gBAAgB,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,EAAE,GAAG,gBAAgB,IAAI,CAAC,CAAA;QAC7D,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;YAC1D,MAAM,QAAQ,CAAC,2DAA2D,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC5F,CAAC;QACD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;QAClD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,MAAM,QAAQ,CAAC,qBAAqB,IAAI,CAAC,QAAQ,oCAAoC,CAAC,CAAA;IACxF,CAAC;IACD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACnD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAAY,EAAE,KAAc,EAAE,GAAY;IACrF,MAAM,KAAK,GAAG,eAAe,CAAA;IAC7B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACrC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACjC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACrC,IACE,CAAC,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,GAAG,CAAC;QACtC,KAAK,CAAC,UAAU,KAAK,MAAM;QAC3B,GAAG,CAAC,UAAU,KAAK,MAAM,EACzB,CAAC;QACD,MAAM,QAAQ,CAAC,mEAAmE,CAAC,CAAA;IACrF,CAAC;IACD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;IAClD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAY,EAAE,QAAgB;IAC/D,OAAO,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACvD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,MAAY,EACZ,QAAgB;IAEhB,MAAM,KAAK,GAAG,eAAe,CAAA;IAC7B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACjC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACnC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,gBAAgB,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,QAAQ,CAAC,kCAAkC,CAAC,CAAA;IACpD,CAAC;IACD,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,gBAAgB,IAAI,CAAC,CAAA;IAC9D,MAAM,KAAK,GAAW,EAAE,CAAA;IACxB,KAAK,IAAI,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1F,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC;QAC5E,MAAM,QAAQ,CAAC,uDAAuD,CAAC,CAAA;IACzE,CAAC;IACD,MAAM,IAAI,GAAI,KAAK,CAAC,CAAC,CAAsB,IAAI,IAAI,CAAA;IACnD,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,QAAQ,CACZ,eAAe,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAC7F,CAAA;IACH,CAAC;IACD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;IAClD,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;AAC3B,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAAY;IACnD,MAAM,KAAK,GAAG,eAAe,CAAA;IAC7B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACjC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACnC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,gBAAgB,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,QAAQ,CACZ,wCAAwC,MAAM,CAAC,QAAQ,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAa,CAAC,IAAI,KAAK,EAAE,QAAQ,IAAI,IAAI,CAAC,EAAE,CAC1I,CAAA;IACH,CAAC;IACD,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,gBAAgB,IAAI,CAAC,CAAA;IAC9D,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;IAC5C,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAY,EAAE,GAAY;IAClE,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAA;IAChC,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QAClC,MAAM,QAAQ,CAAC,qEAAqE,CAAC,CAAA;IACvF,CAAC;IACD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAY;IAClD,MAAM,KAAK,GAAG,eAAe,CAAA;IAC7B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACnC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,gBAAgB,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,QAAQ,CACZ,6CAA6C,MAAM,CAAC,QAAQ,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAa,CAAC,IAAI,KAAK,EAAE,QAAQ,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,eAAuB,CAAC,IAAI,KAAK,EAAE,eAAe,EAAE,QAAQ,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAS,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,IAAI,CAAC,EAAE,CAC5X,CAAA;IACH,CAAC;IACD,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,gBAAgB,IAAI,CAAC,CAAA;IAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAC3C,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACf,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC9B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;IAC5C,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAAY,EACZ,OAAgB;IAEhB,MAAM,KAAK,GAAG,eAAe,CAAA;IAC7B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,KAAK,GAAG,CACZ,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,eAAe,CAC1D,CAAA;IAChB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,gBAAgB,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IAC/D,IACE,CAAC,OAAO;QACR,oBAAoB,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM;QACpC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,IAAI,gBAAgB,IAAI,CAAC,EAC3D,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAA;IACzC,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,GAAG,gBAAgB,IAAI,CAAC,CAAC,CAAA;AACpE,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,MAAY;IACzD,MAAM,KAAK,GAAG,eAAe,CAAA;IAC7B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,gBAAgB,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IAChE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;IACrD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAS,SAAuB;IAC9D,MAAM,QAAQ,GAAG,eAAe,CAAA;IAChC,eAAe,GAAG,SAAS,CAAA;IAC3B,IAAI,CAAC;QACH,OAAO,SAAS,EAAE,CAAA;IACpB,CAAC;YAAS,CAAC;QACT,eAAe,GAAG,QAAQ,CAAA;IAC5B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAAY,EACZ,MAAY,EACZ,SAAuB;IAEvB,IAAI,eAAe,KAAK,SAAS;QAAE,OAAO,SAAS,EAAE,CAAA;IACrD,MAAM,QAAQ,GAAG,oBAAoB,CAAA;IACrC,oBAAoB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,IAAI,CAAC;QACH,OAAO,SAAS,EAAE,CAAA;IACpB,CAAC;YAAS,CAAC;QACT,oBAAoB,GAAG,QAAQ,CAAA;IACjC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO,oBAAoB,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAY;IAC1C,MAAM,KAAK,GAAG,eAAe,CAAA;IAC7B,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAChE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc,EAAE,GAAY;IAC/D,IAAI,eAAe,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACnD,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAA;IAC/B,IAAI,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,KAAK,MAAM;QAAE,MAAM,QAAQ,CAAC,8BAA8B,CAAC,CAAA;IAChG,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,eAAe,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IACnF,OAAO,eAAe,CAAA;AACxB,CAAC;AAED,SAAS,MAAM,CAAC,KAAqB,EAAE,MAAY;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;IAC5E,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAA;AAC1C,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAqB,EAAE,MAAY;IAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAC3C,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACjC,OAAO,QAAQ,CAAC,KAAK,EAAE,GAAG,gBAAgB,IAAI,CAAC,EAAE,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,gBAAgB,IAAI,CAAC,CAAC,CAAA;QAC9D,KAAK,GAAG,KAAK,CAAC,WAAW,CAAA;IAC3B,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACtD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAqB,EAAE,MAAY,EAAE,KAAkB;IACjF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACrC,IAAI,IAAI,GAAG,KAAK,CAAA;IAChB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,SAAS,CAAC;YACR,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YACxB,IAAI,GAAG,KAAK,IAAI;gBAAE,MAAK;YACvB,KAAK,CAAC,GAAG,EAAE,CAAA;YACX,IAAI,GAAG,GAAG,CAAC,WAAW,CAAA;QACxB,CAAC;IACH,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AACjC,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe;IAC/B,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAA;AACvC,CAAC;AAED,SAAS,WAAW,CAAC,IAAU;IAC7B,OAAO,IAAI,YAAY,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACxD,CAAC;AAED,SAAS,QAAQ,CAAC,IAAiB,EAAE,KAAa;IAChD,OAAO,WAAW,CAAC,IAAY,CAAC,KAAK,KAAK,CAAA;AAC5C,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,IAAY;IACtD,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,IAAI,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1E,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACzB,KAAK,IAAI,CAAC,CAAA;YACV,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YAAE,SAAQ;QACzC,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QAC5B,KAAK,IAAI,CAAC,CAAA;IACZ,CAAC;IACD,MAAM,QAAQ,CAAC,mBAAmB,IAAI,SAAS,CAAC,CAAA;AAClD,CAAC;AAED,SAAS,UAAU,CAAC,IAAgB;IAIlC,MAAM,KAAK,GAAqB,EAAE,CAAA;IAClC,MAAM,UAAU,GAAqB,EAAE,CAAA;IACvC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAA;IAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,CAAA;IACvE,KAAK,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC3E,MAAM,OAAO,GAAG,IAAe,CAAA;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAC9D,IAAI,KAAK,KAAK,IAAI;YAAE,SAAQ;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAA4C,CAAA;QAChE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;YACpC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACnB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACvB,SAAQ;QACV,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACrC,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,QAAQ,CAAC,4BAA4B,IAAI,SAAS,CAAC,CAAA;QAClF,IAAI,IAAI,KAAK,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;QAC9C,IAAI,IAAI,KAAK,GAAG;YAAE,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;IACrD,CAAC;IACD,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAC7D,MAAM,QAAQ,CAAC,qCAAqC,CAAC,CAAA;IACvD,CAAC;IACD,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAA;QACpD,IAAI,QAAQ,GAAG,IAAI,CAAC,2BAA2B;YAAE,OAAO,CAAC,CAAC,CAAA;QAC1D,IAAI,QAAQ,GAAG,IAAI,CAAC,2BAA2B;YAAE,OAAO,CAAC,CAAA;QACzD,OAAO,CAAC,CAAA;IACV,CAAC,CAAC,CAAA;IACF,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;AAC9B,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAoB;IACpD,MAAM,QAAQ,GAAc,EAAE,CAAA;IAC9B,MAAM,KAAK,GAAG,CAAC,OAAgB,EAAQ,EAAE;QACvC,aAAa,CAAC,OAAO,CAAC,CAAA;QACtB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACxB,CAAC,CAAA;IACD,MAAM,aAAa,GAAG,CAAC,MAAY,EAAQ,EAAE;QAC3C,IAAI,WAAW,GAAG,CAAC,CAAA;QACnB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtC,IAAI,QAAQ,CAAC,KAAK,EAAE,GAAG,gBAAgB,IAAI,CAAC,EAAE,CAAC;gBAC7C,WAAW,IAAI,CAAC,CAAA;gBAChB,SAAQ;YACV,CAAC;YACD,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;gBAC9C,WAAW,IAAI,CAAC,CAAA;gBAChB,SAAQ;YACV,CAAC;YACD,IAAI,WAAW,KAAK,CAAC,IAAI,KAAK,YAAY,OAAO;gBAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QACjE,CAAC;QACD,IAAI,WAAW,KAAK,CAAC;YAAE,MAAM,QAAQ,CAAC,4CAA4C,CAAC,CAAA;IACrF,CAAC,CAAA;IACD,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChG,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,gBAAgB,IAAI,CAAC,EAAE,CAAC;YAC5C,WAAW,IAAI,CAAC,CAAA;YAChB,SAAQ;QACV,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;YAC7C,WAAW,IAAI,CAAC,CAAA;YAChB,SAAQ;QACV,CAAC;QACD,IAAI,WAAW,KAAK,CAAC,IAAI,IAAI,YAAY,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IAC/D,CAAC;IACD,IAAI,WAAW,KAAK,CAAC;QAAE,MAAM,QAAQ,CAAC,4CAA4C,CAAC,CAAA;IACnF,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAgB;IAChD,MAAM,MAAM,GAAG,IAAI,OAAO,EAAoB,CAAA;IAC9C,MAAM,UAAU,GAAc,EAAE,CAAA;IAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,CAAA;IACjG,KAAK,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC3E,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,gBAAgB,IAAI,CAAC,EAAE,CAAC;YAC5C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACrB,SAAQ;QACV,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;YAC7C,UAAU,CAAC,GAAG,EAAE,CAAA;YAChB,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,YAAY,OAAO,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YAC/B,IAAI,KAAK,KAAK,SAAS;gBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAClD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgB;IAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC,CAAA;IAC1E,KAAK,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC3E,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,gBAAgB,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;IAC1D,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,0BAA0B,CAAC;QACzB,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,eAAe;QACvB,WAAW,EAAE,oBAAoB;QACjC,MAAM,EAAE,WAAW;QACnB,cAAc,EAAE,uBAAuB;QACvC,gBAAgB,EAAE,yBAAyB;QAC3C,YAAY,EAAE,qBAAqB;QACnC,oBAAoB,EAAE,6BAA6B;QACnD,mBAAmB,EAAE,4BAA4B;QACjD,kBAAkB,EAAE,2BAA2B;QAC/C,UAAU,EAAE,mBAAmB;QAC/B,SAAS,EAAE,kBAAkB;QAC7B,mBAAmB,EAAE,4BAA4B;QACjD,SAAS,EAAE,kBAAkB;QAC7B,cAAc,EAAE,uBAAuB;QACvC,eAAe,EAAE,wBAAwB;QACzC,gBAAgB,EAAE,yBAAyB;QAC3C,cAAc,EAAE,uBAAuB;QACvC,eAAe,EAAE,wBAAwB;QACzC,qBAAqB,EAAE,8BAA8B;QACrD,gBAAgB;QAChB,aAAa,EAAE,sBAAsB;QACrC,cAAc,EAAE,uBAAuB;QACvC,MAAM,EAAE,eAAe;QACvB,WAAW,EAAE,oBAAoB;KAClC,CAAC,CAAA;AACJ,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { binding, choose, compiledEvent, compiledEffect, compiledImperativeHandle, compiledInsertionEffect, compiledLayoutEffect, compiledRoot, createCompiledContext, createCompiledEffectEvent, createCompiledExternalStore, createCompiledId, createCompiledMemo, createCompiledProp, createCompiledReducer, createCompiledRestProp, createCompiledScope, createCompiledState, createContext, createNarrowCompiledScope, createPortal, deferred, dispatch, errorBoundary, indexed, keyed, mountCompiled, mountCompiledRef, use, useCallback, useContext, useEffect, useEffectEvent, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useSyncExternalStore, when, type ChoiceMode, type MountCompiledOptions, } from './compiled/core.js';
|
|
2
|
+
export type { CompiledBinding, CompiledComponentResult, CompiledContext, CompiledErrorHandler, CompiledRenderValue, CompiledScope, OwnedBlock, StructuralBinding, } from './compiled/types.js';
|
|
3
|
+
export { compiledComponentSpread } from './component-spread.js';
|
|
4
|
+
export { createElement, Fragment, h, type DirectChild, type DirectComponent, type DirectProps, } from './direct-dom.js';
|
|
5
|
+
export { nestedProp } from './nested-prop.js';
|
|
6
|
+
export { assertRuntimeProtocol, VIDACT_RUNTIME_PROTOCOL } from './protocol.js';
|
|
7
|
+
export { useRef, type MutableRef } from './ref.js';
|
|
8
|
+
export { cloneRenderable, cloneRenderableComponent, createReactElement, createRenderable, dynamicIntrinsicComponent, forwardedRef, isRenderable, renderableChildren, renderableMarker, renderableProps, renderableRef, renderableToArray, type CompiledRenderable, type RenderablePropsInput, } from './renderable.js';
|
|
9
|
+
export { createRoot, mountHotRoot, type CompiledRoot, type HotContext } from './root.js';
|
|
10
|
+
export { combineSources, intersectsSources, source, type SourceMask } from './source-mask.js';
|
|
11
|
+
export { compiledSpread } from './spread.js';
|
|
12
|
+
export type { StateUpdate } from './state-slot.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,OAAO,EACP,MAAM,EACN,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,EACZ,qBAAqB,EACrB,yBAAyB,EACzB,2BAA2B,EAC3B,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,yBAAyB,EACzB,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,OAAO,EACP,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,GAAG,EACH,WAAW,EACX,UAAU,EACV,SAAS,EACT,cAAc,EACd,KAAK,EACL,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,OAAO,EACP,oBAAoB,EACpB,IAAI,EACJ,KAAK,UAAU,EACf,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,iBAAiB,GAClB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EACL,aAAa,EACb,QAAQ,EACR,CAAC,EACD,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAC9E,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA;AAClD,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAA;AACxF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// oxlint-disable-next-line typescript/triple-slash-reference -- Include the build define in consuming TypeScript programs.
|
|
2
|
+
/// <reference path="./env.d.ts" />
|
|
3
|
+
export { binding, choose, compiledEvent, compiledEffect, compiledImperativeHandle, compiledInsertionEffect, compiledLayoutEffect, compiledRoot, createCompiledContext, createCompiledEffectEvent, createCompiledExternalStore, createCompiledId, createCompiledMemo, createCompiledProp, createCompiledReducer, createCompiledRestProp, createCompiledScope, createCompiledState, createContext, createNarrowCompiledScope, createPortal, deferred, dispatch, errorBoundary, indexed, keyed, mountCompiled, mountCompiledRef, use, useCallback, useContext, useEffect, useEffectEvent, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useSyncExternalStore, when, } from './compiled/core.js';
|
|
4
|
+
export { compiledComponentSpread } from './component-spread.js';
|
|
5
|
+
export { createElement, Fragment, h, } from './direct-dom.js';
|
|
6
|
+
export { nestedProp } from './nested-prop.js';
|
|
7
|
+
export { assertRuntimeProtocol, VIDACT_RUNTIME_PROTOCOL } from './protocol.js';
|
|
8
|
+
export { useRef } from './ref.js';
|
|
9
|
+
export { cloneRenderable, cloneRenderableComponent, createReactElement, createRenderable, dynamicIntrinsicComponent, forwardedRef, isRenderable, renderableChildren, renderableMarker, renderableProps, renderableRef, renderableToArray, } from './renderable.js';
|
|
10
|
+
export { createRoot, mountHotRoot } from './root.js';
|
|
11
|
+
export { combineSources, intersectsSources, source } from './source-mask.js';
|
|
12
|
+
export { compiledSpread } from './spread.js';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2HAA2H;AAC3H,mCAAmC;AAEnC,OAAO,EACL,OAAO,EACP,MAAM,EACN,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,EACZ,qBAAqB,EACrB,yBAAyB,EACzB,2BAA2B,EAC3B,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,yBAAyB,EACzB,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,OAAO,EACP,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,GAAG,EACH,WAAW,EACX,UAAU,EACV,SAAS,EACT,cAAc,EACd,KAAK,EACL,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,OAAO,EACP,oBAAoB,EACpB,IAAI,GAGL,MAAM,oBAAoB,CAAA;AAW3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EACL,aAAa,EACb,QAAQ,EACR,CAAC,GAIF,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAC9E,OAAO,EAAE,MAAM,EAAmB,MAAM,UAAU,CAAA;AAClD,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,iBAAiB,GAGlB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAsC,MAAM,WAAW,CAAA;AACxF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,EAAmB,MAAM,kBAAkB,CAAA;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type KeyedList, type KeyedRenderResult } from './keyed-list.js';
|
|
2
|
+
export interface IndexedListOptions<T> {
|
|
3
|
+
readonly render: (value: T, index: number) => KeyedRenderResult<T>;
|
|
4
|
+
}
|
|
5
|
+
export type IndexedList<T> = KeyedList<T>;
|
|
6
|
+
/**
|
|
7
|
+
* Reconciles records by their current position. Existing owners are retained at
|
|
8
|
+
* an index and receive the new value at that index, matching React's unkeyed
|
|
9
|
+
* collection identity semantics.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createIndexedList<T>(parent: Node, options: IndexedListOptions<T>, before?: Node | null): IndexedList<T>;
|
|
12
|
+
//# sourceMappingURL=indexed-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexed-list.d.ts","sourceRoot":"","sources":["../src/indexed-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEzF,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAA;CACnE;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAA;AAEzC;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC9B,MAAM,GAAE,IAAI,GAAG,IAAW,GACzB,WAAW,CAAC,CAAC,CAAC,CAEhB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createKeyedList } from './keyed-list.js';
|
|
2
|
+
/**
|
|
3
|
+
* Reconciles records by their current position. Existing owners are retained at
|
|
4
|
+
* an index and receive the new value at that index, matching React's unkeyed
|
|
5
|
+
* collection identity semantics.
|
|
6
|
+
*/
|
|
7
|
+
export function createIndexedList(parent, options, before = null) {
|
|
8
|
+
return createKeyedList(parent, { key: (_value, index) => index, render: options.render }, before);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=indexed-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexed-list.js","sourceRoot":"","sources":["../src/indexed-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA0C,MAAM,iBAAiB,CAAA;AAQzF;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAY,EACZ,OAA8B,EAC9B,MAAM,GAAgB,IAAI;IAE1B,OAAO,eAAe,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAA;AACnG,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type DirectChild, type DirectComponent } from './direct-dom.js';
|
|
2
|
+
import { type CompiledRenderable } from './renderable.js';
|
|
3
|
+
export declare const Fragment: symbol;
|
|
4
|
+
type ElementType = string | typeof Fragment | DirectComponent | CompiledRenderable;
|
|
5
|
+
interface JsxProps extends Record<string, unknown> {
|
|
6
|
+
readonly children?: DirectChild | readonly DirectChild[];
|
|
7
|
+
}
|
|
8
|
+
export declare function jsx(type: ElementType, props: JsxProps | null, _key?: unknown): DirectChild;
|
|
9
|
+
export declare function jsxs(type: ElementType, props: JsxProps | null, _key?: unknown): DirectChild;
|
|
10
|
+
export declare function jsxDEV(type: ElementType, props: JsxProps | null, key?: unknown, isStaticChildren?: boolean): DirectChild;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=jsx-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx-runtime.d.ts","sourceRoot":"","sources":["../src/jsx-runtime.ts"],"names":[],"mappings":"AAGA,OAAO,EAAK,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,EAAiC,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAExF,eAAO,MAAM,QAAQ,EAAE,MAAyC,CAAA;AAEhE,KAAK,WAAW,GAAG,MAAM,GAAG,OAAO,QAAQ,GAAG,eAAe,GAAG,kBAAkB,CAAA;AAElF,UAAU,QAAS,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,SAAS,WAAW,EAAE,CAAA;CACzD;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,WAAW,CAM1F;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,WAAW,CAM3F;AAED,wBAAgB,MAAM,CACpB,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,QAAQ,GAAG,IAAI,EACtB,GAAG,CAAC,EAAE,OAAO,EACb,gBAAgB,UAAQ,GACvB,WAAW,CAEb"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// oxlint-disable-next-line typescript/triple-slash-reference -- Include the build define in consuming TypeScript programs.
|
|
2
|
+
/// <reference path="./env.d.ts" />
|
|
3
|
+
import { h } from './direct-dom.js';
|
|
4
|
+
import { cloneRenderable, isRenderable } from './renderable.js';
|
|
5
|
+
export const Fragment = Symbol.for('vidact.v1.Fragment');
|
|
6
|
+
export function jsx(type, props, _key) {
|
|
7
|
+
if (isRenderable(type))
|
|
8
|
+
return cloneRenderable(type, props ?? {});
|
|
9
|
+
const children = props?.children;
|
|
10
|
+
const hasChildren = props !== null && Object.hasOwn(props, 'children');
|
|
11
|
+
if (!hasChildren)
|
|
12
|
+
return h(type, props);
|
|
13
|
+
return h(type, props, children);
|
|
14
|
+
}
|
|
15
|
+
export function jsxs(type, props, _key) {
|
|
16
|
+
if (isRenderable(type))
|
|
17
|
+
return cloneRenderable(type, props ?? {});
|
|
18
|
+
const children = props?.children;
|
|
19
|
+
const hasChildren = props !== null && Object.hasOwn(props, 'children');
|
|
20
|
+
if (!hasChildren)
|
|
21
|
+
return h(type, props);
|
|
22
|
+
return Array.isArray(children) ? h(type, props, ...children) : h(type, props, children);
|
|
23
|
+
}
|
|
24
|
+
export function jsxDEV(type, props, key, isStaticChildren = false) {
|
|
25
|
+
return isStaticChildren ? jsxs(type, props, key) : jsx(type, props, key);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=jsx-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx-runtime.js","sourceRoot":"","sources":["../src/jsx-runtime.ts"],"names":[],"mappings":"AAAA,2HAA2H;AAC3H,mCAAmC;AAEnC,OAAO,EAAE,CAAC,EAA0C,MAAM,iBAAiB,CAAA;AAC3E,OAAO,EAAE,eAAe,EAAE,YAAY,EAA2B,MAAM,iBAAiB,CAAA;AAExF,MAAM,CAAC,MAAM,QAAQ,GAAW,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AAQhE,MAAM,UAAU,GAAG,CAAC,IAAiB,EAAE,KAAsB,EAAE,IAAc;IAC3E,IAAI,YAAY,CAAC,IAAI,CAAC;QAAE,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAA;IACjE,MAAM,QAAQ,GAAG,KAAK,EAAE,QAAQ,CAAA;IAChC,MAAM,WAAW,GAAG,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IACtE,IAAI,CAAC,WAAW;QAAE,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACvC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAiB,EAAE,KAAsB,EAAE,IAAc;IAC5E,IAAI,YAAY,CAAC,IAAI,CAAC;QAAE,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAA;IACjE,MAAM,QAAQ,GAAG,KAAK,EAAE,QAAQ,CAAA;IAChC,MAAM,WAAW,GAAG,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IACtE,IAAI,CAAC,WAAW;QAAE,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;AACzF,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,IAAiB,EACjB,KAAsB,EACtB,GAAa,EACb,gBAAgB,GAAG,KAAK;IAExB,OAAO,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;AAC1E,CAAC"}
|