@remix-run/ui 0.1.1 → 0.2.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/README.md +33 -10
- package/dist/animation/animate-layout-mixin.js +66 -66
- package/dist/animation/animate-layout-mixin.js.map +1 -1
- package/dist/animation/spring.d.ts +6 -35
- package/dist/animation/spring.js +9 -8
- package/dist/animation/spring.js.map +1 -1
- package/dist/components/accordion/accordion.d.ts +7 -7
- package/dist/components/accordion/accordion.js +0 -2
- package/dist/components/accordion/accordion.js.map +1 -1
- package/dist/components/accordion/demos/card.demo.d.ts +6 -0
- package/dist/components/accordion/demos/card.demo.js +58 -0
- package/dist/components/accordion/demos/card.demo.js.map +1 -0
- package/dist/components/accordion/demos/multiple.demo.d.ts +6 -0
- package/dist/components/accordion/demos/multiple.demo.js +19 -0
- package/dist/components/accordion/demos/multiple.demo.js.map +1 -0
- package/dist/components/accordion/demos/overview.demo.d.ts +6 -0
- package/dist/components/accordion/demos/overview.demo.js +19 -0
- package/dist/components/accordion/demos/overview.demo.js.map +1 -0
- package/dist/components/breadcrumbs/breadcrumbs.d.ts +1 -1
- package/dist/components/breadcrumbs/breadcrumbs.js +0 -2
- package/dist/components/breadcrumbs/breadcrumbs.js.map +1 -1
- package/dist/components/breadcrumbs/demos/basic.demo.d.ts +5 -0
- package/dist/components/breadcrumbs/demos/basic.demo.js +14 -0
- package/dist/components/breadcrumbs/demos/basic.demo.js.map +1 -0
- package/dist/components/breadcrumbs/demos/separator.demo.d.ts +5 -0
- package/dist/components/breadcrumbs/demos/separator.demo.js +14 -0
- package/dist/components/breadcrumbs/demos/separator.demo.js.map +1 -0
- package/dist/components/button/button.d.ts +86 -4
- package/dist/components/button/button.js +63 -3
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/button/demos/aliases.demo.d.ts +6 -0
- package/dist/components/button/demos/aliases.demo.js +18 -0
- package/dist/components/button/demos/aliases.demo.js.map +1 -0
- package/dist/components/button/demos/basic.demo.d.ts +6 -0
- package/dist/components/button/demos/basic.demo.js +19 -0
- package/dist/components/button/demos/basic.demo.js.map +1 -0
- package/dist/components/button/demos/states.demo.d.ts +6 -0
- package/dist/components/button/demos/states.demo.js +29 -0
- package/dist/components/button/demos/states.demo.js.map +1 -0
- package/dist/components/combobox/combobox.d.ts +11 -11
- package/dist/components/combobox/combobox.js +0 -2
- package/dist/components/combobox/combobox.js.map +1 -1
- package/dist/components/combobox/demos/overview.demo.d.ts +6 -0
- package/dist/components/combobox/demos/overview.demo.js +153 -0
- package/dist/components/combobox/demos/overview.demo.js.map +1 -0
- package/dist/components/listbox/demos/overview.demo.d.ts +6 -0
- package/dist/components/listbox/demos/overview.demo.js +64 -0
- package/dist/components/listbox/demos/overview.demo.js.map +1 -0
- package/dist/components/listbox/listbox.d.ts +4 -9
- package/dist/components/listbox/listbox.js +21 -33
- package/dist/components/listbox/listbox.js.map +1 -1
- package/dist/components/menu/demos/bubbling.demo.d.ts +5 -0
- package/dist/components/menu/demos/bubbling.demo.js +15 -0
- package/dist/components/menu/demos/bubbling.demo.js.map +1 -0
- package/dist/components/menu/demos/overview.demo.d.ts +6 -0
- package/dist/components/menu/demos/overview.demo.js +32 -0
- package/dist/components/menu/demos/overview.demo.js.map +1 -0
- package/dist/components/menu/menu.d.ts +15 -24
- package/dist/components/menu/menu.js +23 -38
- package/dist/components/menu/menu.js.map +1 -1
- package/dist/components/popover/demos/overview.demo.d.ts +6 -0
- package/dist/components/popover/demos/overview.demo.js +64 -0
- package/dist/components/popover/demos/overview.demo.js.map +1 -0
- package/dist/components/popover/popover.d.ts +5 -5
- package/dist/components/popover/popover.js.map +1 -1
- package/dist/components/select/demos/deconstructed.demo.d.ts +6 -0
- package/dist/components/select/demos/deconstructed.demo.js +53 -0
- package/dist/components/select/demos/deconstructed.demo.js.map +1 -0
- package/dist/components/select/demos/overview.demo.d.ts +5 -0
- package/dist/components/select/demos/overview.demo.js +27 -0
- package/dist/components/select/demos/overview.demo.js.map +1 -0
- package/dist/components/select/select.d.ts +11 -11
- package/dist/components/select/select.js +17 -26
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/tabs/tabs.d.ts +6 -6
- package/dist/components/tabs/tabs.js +0 -2
- package/dist/components/tabs/tabs.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js.map +1 -1
- package/dist/interactions/keydown/keydown.d.ts +1 -1
- package/dist/interactions/outside-click/outside-click-mixin.d.ts +2 -1
- package/dist/interactions/typeahead/typeahead-mixin.d.ts +3 -1
- package/dist/runtime/component.d.ts +18 -12
- package/dist/runtime/component.js +93 -80
- package/dist/runtime/component.js.map +1 -1
- package/dist/runtime/core/attributes.d.ts +14 -0
- package/dist/runtime/core/attributes.js +103 -0
- package/dist/runtime/core/attributes.js.map +1 -0
- package/dist/runtime/core/children.d.ts +7 -0
- package/dist/runtime/core/children.js +30 -0
- package/dist/runtime/core/children.js.map +1 -0
- package/dist/runtime/core/props.d.ts +9 -0
- package/dist/runtime/core/props.js +170 -0
- package/dist/runtime/core/props.js.map +1 -0
- package/dist/runtime/core/vnode.d.ts +3 -0
- package/dist/runtime/core/vnode.js +39 -0
- package/dist/runtime/core/vnode.js.map +1 -0
- package/dist/runtime/create-element.js +2 -1
- package/dist/runtime/create-element.js.map +1 -1
- package/dist/runtime/diff-dom.js +47 -14
- package/dist/runtime/diff-dom.js.map +1 -1
- package/dist/runtime/diff-props.d.ts +1 -2
- package/dist/runtime/diff-props.js +2 -181
- package/dist/runtime/diff-props.js.map +1 -1
- package/dist/runtime/dom.d.ts +20 -9
- package/dist/runtime/frame.d.ts +23 -2
- package/dist/runtime/frame.js +41 -47
- package/dist/runtime/frame.js.map +1 -1
- package/dist/runtime/jsx.d.ts +1 -1
- package/dist/runtime/jsx.js +2 -28
- package/dist/runtime/jsx.js.map +1 -1
- package/dist/runtime/mixins/link-mixin.d.ts +5 -1
- package/dist/runtime/mixins/link-mixin.js.map +1 -1
- package/dist/runtime/mixins/mixin.d.ts +2 -1
- package/dist/runtime/mixins/mixin.js +9 -4
- package/dist/runtime/mixins/mixin.js.map +1 -1
- package/dist/runtime/mixins/on-mixin.d.ts +15 -4
- package/dist/runtime/mixins/on-mixin.js +9 -2
- package/dist/runtime/mixins/on-mixin.js.map +1 -1
- package/dist/runtime/mixins/ref-mixin.d.ts +2 -1
- package/dist/runtime/mixins/ref-mixin.js.map +1 -1
- package/dist/runtime/navigation.js +9 -1
- package/dist/runtime/navigation.js.map +1 -1
- package/dist/runtime/reconcile.d.ts +1 -1
- package/dist/runtime/reconcile.js +452 -197
- package/dist/runtime/reconcile.js.map +1 -1
- package/dist/runtime/run.d.ts +17 -2
- package/dist/runtime/run.js.map +1 -1
- package/dist/runtime/scheduler.d.ts +10 -10
- package/dist/runtime/scheduler.js +1 -1
- package/dist/runtime/scheduler.js.map +1 -1
- package/dist/runtime/stream-protocol.d.ts +8 -0
- package/dist/runtime/stream-protocol.js +20 -0
- package/dist/runtime/stream-protocol.js.map +1 -0
- package/dist/runtime/svg-attributes.js +1 -0
- package/dist/runtime/svg-attributes.js.map +1 -1
- package/dist/runtime/to-vnode.js +7 -11
- package/dist/runtime/to-vnode.js.map +1 -1
- package/dist/runtime/vnode.d.ts +11 -5
- package/dist/runtime/vnode.js +6 -3
- package/dist/runtime/vnode.js.map +1 -1
- package/dist/server/stream.d.ts +2 -0
- package/dist/server/stream.js +154 -114
- package/dist/server/stream.js.map +1 -1
- package/dist/style/css-mixin.d.ts +2 -1
- package/dist/style/css-mixin.js.map +1 -1
- package/dist/style/index.d.ts +1 -1
- package/dist/style/layers.d.ts +2 -0
- package/dist/style/layers.js +3 -0
- package/dist/style/layers.js.map +1 -0
- package/dist/style/stylesheet.d.ts +13 -11
- package/dist/style/stylesheet.js +69 -8
- package/dist/style/stylesheet.js.map +1 -1
- package/dist/theme/contract.d.ts +24 -222
- package/dist/theme/contract.js +2 -2
- package/dist/theme/contract.js.map +1 -1
- package/dist/theme/glyph-contract.d.ts +1 -3
- package/dist/theme/glyph-contract.js.map +1 -1
- package/dist/theme/presets/rmx-01/index.d.ts +4 -2
- package/dist/theme/presets/rmx-01/index.js.map +1 -1
- package/dist/theme/runtime.js +4 -1
- package/dist/theme/runtime.js.map +1 -1
- package/dist/utils/scroll-lock.d.ts +3 -3
- package/dist/utils/scroll-lock.js.map +1 -1
- package/package.json +3 -3
- package/src/animation/README.md +316 -0
- package/src/animation/animate-layout-mixin.ts +79 -71
- package/src/animation/spring.ts +21 -9
- package/src/components/accordion/README.md +166 -0
- package/src/components/accordion/accordion.tsx +14 -14
- package/src/components/accordion/demos/card.demo.tsx +113 -0
- package/src/components/accordion/demos/multiple.demo.tsx +56 -0
- package/src/components/accordion/demos/overview.demo.tsx +56 -0
- package/src/components/anchor/README.md +153 -0
- package/src/components/anchor/anchor.ts +1 -1
- package/src/components/breadcrumbs/README.md +55 -0
- package/src/components/breadcrumbs/breadcrumbs.tsx +1 -3
- package/src/components/breadcrumbs/demos/basic.demo.tsx +17 -0
- package/src/components/breadcrumbs/demos/separator.demo.tsx +18 -0
- package/src/components/button/README.md +4 -4
- package/src/components/button/button.tsx +118 -20
- package/src/components/button/demos/aliases.demo.tsx +27 -0
- package/src/components/button/demos/basic.demo.tsx +30 -0
- package/src/components/button/demos/states.demo.tsx +52 -0
- package/src/components/combobox/README.md +1 -1
- package/src/components/combobox/combobox.tsx +37 -21
- package/src/components/combobox/demos/overview.demo.tsx +199 -0
- package/src/components/glyph/README.md +72 -0
- package/src/components/glyph/glyph.tsx +2 -2
- package/src/components/listbox/README.md +115 -0
- package/src/components/listbox/demos/overview.demo.tsx +101 -0
- package/src/components/listbox/listbox.ts +106 -110
- package/src/components/menu/README.md +96 -0
- package/src/components/menu/demos/bubbling.demo.tsx +34 -0
- package/src/components/menu/demos/overview.demo.tsx +76 -0
- package/src/components/menu/menu.tsx +61 -55
- package/src/components/popover/README.md +3 -3
- package/src/components/popover/demos/overview.demo.tsx +143 -0
- package/src/components/popover/popover.ts +90 -79
- package/src/components/select/README.md +107 -0
- package/src/components/select/demos/deconstructed.demo.tsx +95 -0
- package/src/components/select/demos/overview.demo.tsx +51 -0
- package/src/components/select/select.tsx +53 -36
- package/src/components/tabs/tabs.tsx +10 -5
- package/src/index.ts +2 -1
- package/src/runtime/component.ts +122 -88
- package/src/runtime/core/attributes.ts +118 -0
- package/src/runtime/core/children.ts +42 -0
- package/src/runtime/core/props.ts +187 -0
- package/src/runtime/core/vnode.ts +48 -0
- package/src/runtime/create-element.ts +2 -1
- package/src/runtime/diff-dom.ts +59 -12
- package/src/runtime/diff-props.ts +2 -187
- package/src/runtime/dom.ts +20 -9
- package/src/runtime/frame.ts +71 -55
- package/src/runtime/jsx.ts +3 -30
- package/src/runtime/mixins/link-mixin.ts +88 -86
- package/src/runtime/mixins/mixin.ts +18 -5
- package/src/runtime/mixins/on-mixin.ts +20 -12
- package/src/runtime/mixins/ref-mixin.ts +4 -5
- package/src/runtime/navigation.ts +10 -1
- package/src/runtime/reconcile.ts +563 -223
- package/src/runtime/run.ts +17 -1
- package/src/runtime/scheduler.ts +20 -20
- package/src/runtime/stream-protocol.ts +27 -0
- package/src/runtime/svg-attributes.ts +1 -0
- package/src/runtime/to-vnode.ts +7 -10
- package/src/runtime/vnode.ts +16 -9
- package/src/server/README.md +90 -0
- package/src/server/stream.ts +176 -124
- package/src/style/css-mixin.ts +6 -1
- package/src/style/index.ts +1 -2
- package/src/style/layers.ts +2 -0
- package/src/style/stylesheet.ts +88 -11
- package/src/test/README.md +107 -0
- package/src/test/utils.ts +3 -1
- package/src/theme/README.md +103 -0
- package/src/theme/contract.ts +37 -5
- package/src/theme/glyph-contract.ts +3 -1
- package/src/theme/presets/rmx-01/index.ts +4 -2
- package/src/theme/runtime.ts +4 -1
- package/src/utils/scroll-lock/README.md +33 -0
- package/src/utils/scroll-lock.ts +7 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-dom.js","sourceRoot":"","sources":["../../src/runtime/diff-dom.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diff-dom.js","sourceRoot":"","sources":["../../src/runtime/diff-dom.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { StyleManager } from '../style/index.ts';
|
|
2
|
-
import type { ElementProps } from './jsx.ts';
|
|
3
2
|
export { type StyleManager };
|
|
3
|
+
export { patchHostProps as diffHostProps } from './core/props.ts';
|
|
4
4
|
export declare let defaultStyleManager: StyleManager;
|
|
5
|
-
export declare function diffHostProps(curr: ElementProps, next: ElementProps, dom: Element): void;
|
|
6
5
|
/**
|
|
7
6
|
* Reset the global style state. For testing only - not exported from index.ts.
|
|
8
7
|
*/
|
|
@@ -1,188 +1,9 @@
|
|
|
1
1
|
import { invariant } from "./invariant.js";
|
|
2
|
-
import { createStyleManager
|
|
3
|
-
import { normalizeSvgAttribute } from "./svg-attributes.js";
|
|
4
|
-
const SVG_NS = 'http://www.w3.org/2000/svg';
|
|
2
|
+
import { createStyleManager } from "../style/index.js";
|
|
5
3
|
let globalStyleManager = typeof window !== 'undefined' ? createStyleManager() : null;
|
|
6
4
|
export {};
|
|
5
|
+
export { patchHostProps as diffHostProps } from "./core/props.js";
|
|
7
6
|
export let defaultStyleManager = globalStyleManager;
|
|
8
|
-
// Preact excludes certain attributes from the property path due to browser quirks
|
|
9
|
-
const ATTRIBUTE_FALLBACK_NAMES = new Set([
|
|
10
|
-
'width',
|
|
11
|
-
'height',
|
|
12
|
-
'href',
|
|
13
|
-
'list',
|
|
14
|
-
'form',
|
|
15
|
-
'tabIndex',
|
|
16
|
-
'download',
|
|
17
|
-
'rowSpan',
|
|
18
|
-
'colSpan',
|
|
19
|
-
'role',
|
|
20
|
-
'popover',
|
|
21
|
-
]);
|
|
22
|
-
// Determine if we should use the property path for a given name.
|
|
23
|
-
// Also acts as a type guard to allow bracket assignment without casts.
|
|
24
|
-
function canUseProperty(dom, name, isSvg) {
|
|
25
|
-
if (isSvg)
|
|
26
|
-
return false;
|
|
27
|
-
if (ATTRIBUTE_FALLBACK_NAMES.has(name))
|
|
28
|
-
return false;
|
|
29
|
-
return name in dom;
|
|
30
|
-
}
|
|
31
|
-
function isFrameworkProp(name) {
|
|
32
|
-
return (name === 'children' ||
|
|
33
|
-
name === 'mix' ||
|
|
34
|
-
name === 'key' ||
|
|
35
|
-
name === 'animate' ||
|
|
36
|
-
name === 'innerHTML');
|
|
37
|
-
}
|
|
38
|
-
// TODO: would rather actually diff el.style object directly instead of writing
|
|
39
|
-
// to the style attribute
|
|
40
|
-
function serializeStyleObject(style) {
|
|
41
|
-
let parts = [];
|
|
42
|
-
for (let [key, value] of Object.entries(style)) {
|
|
43
|
-
if (value == null)
|
|
44
|
-
continue;
|
|
45
|
-
if (typeof value === 'boolean')
|
|
46
|
-
continue;
|
|
47
|
-
if (typeof value === 'number' && !Number.isFinite(value))
|
|
48
|
-
continue;
|
|
49
|
-
let cssKey = key.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);
|
|
50
|
-
let cssValue = Array.isArray(value)
|
|
51
|
-
? value.join(', ')
|
|
52
|
-
: normalizeCssValue(key, value);
|
|
53
|
-
parts.push(`${cssKey}: ${cssValue};`);
|
|
54
|
-
}
|
|
55
|
-
return parts.join(' ');
|
|
56
|
-
}
|
|
57
|
-
function normalizePropName(name, isSvg) {
|
|
58
|
-
// aria-/data- pass through
|
|
59
|
-
if (name.startsWith('aria-') || name.startsWith('data-'))
|
|
60
|
-
return { attr: name };
|
|
61
|
-
// DOM property -> HTML mappings
|
|
62
|
-
if (name === 'className')
|
|
63
|
-
return { attr: 'class' };
|
|
64
|
-
if (!isSvg) {
|
|
65
|
-
if (name === 'htmlFor')
|
|
66
|
-
return { attr: 'for' };
|
|
67
|
-
if (name === 'tabIndex')
|
|
68
|
-
return { attr: 'tabindex' };
|
|
69
|
-
if (name === 'acceptCharset')
|
|
70
|
-
return { attr: 'accept-charset' };
|
|
71
|
-
if (name === 'httpEquiv')
|
|
72
|
-
return { attr: 'http-equiv' };
|
|
73
|
-
return { attr: name.toLowerCase() };
|
|
74
|
-
}
|
|
75
|
-
return normalizeSvgAttribute(name);
|
|
76
|
-
}
|
|
77
|
-
function toLocalName(attrName) {
|
|
78
|
-
let separatorIndex = attrName.indexOf(':');
|
|
79
|
-
if (separatorIndex === -1)
|
|
80
|
-
return attrName;
|
|
81
|
-
return attrName.slice(separatorIndex + 1);
|
|
82
|
-
}
|
|
83
|
-
function clearRuntimePropertyOnRemoval(dom, name) {
|
|
84
|
-
try {
|
|
85
|
-
if (name === 'value' || name === 'defaultValue') {
|
|
86
|
-
dom[name] = '';
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
if (name === 'checked' || name === 'defaultChecked' || name === 'selected') {
|
|
90
|
-
dom[name] = false;
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
if (name === 'selectedIndex') {
|
|
94
|
-
dom[name] = -1;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
catch { }
|
|
98
|
-
}
|
|
99
|
-
function getMergedClassName(props) {
|
|
100
|
-
let classAttr = typeof props.class === 'string' ? props.class : '';
|
|
101
|
-
let className = typeof props.className === 'string' ? props.className : '';
|
|
102
|
-
let mergedClassName = classAttr && className ? `${classAttr} ${className}` : classAttr || className;
|
|
103
|
-
return mergedClassName || undefined;
|
|
104
|
-
}
|
|
105
|
-
export function diffHostProps(curr, next, dom) {
|
|
106
|
-
let isSvg = dom.namespaceURI === SVG_NS;
|
|
107
|
-
let currClassName = getMergedClassName(curr);
|
|
108
|
-
let nextClassName = getMergedClassName(next);
|
|
109
|
-
if (currClassName !== nextClassName) {
|
|
110
|
-
if (nextClassName) {
|
|
111
|
-
dom.setAttribute('class', nextClassName);
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
dom.removeAttribute('class');
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
// Removals
|
|
118
|
-
for (let name in curr) {
|
|
119
|
-
if (isFrameworkProp(name))
|
|
120
|
-
continue;
|
|
121
|
-
if (name === 'class' || name === 'className')
|
|
122
|
-
continue;
|
|
123
|
-
if (!(name in next) || next[name] == null) {
|
|
124
|
-
// Clear runtime state for form-like props where removing the attribute is not enough.
|
|
125
|
-
if (canUseProperty(dom, name, isSvg)) {
|
|
126
|
-
clearRuntimePropertyOnRemoval(dom, name);
|
|
127
|
-
}
|
|
128
|
-
let { ns, attr } = normalizePropName(name, isSvg);
|
|
129
|
-
if (ns)
|
|
130
|
-
dom.removeAttributeNS(ns, toLocalName(attr));
|
|
131
|
-
else
|
|
132
|
-
dom.removeAttribute(attr);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
// Additions/updates
|
|
136
|
-
for (let name in next) {
|
|
137
|
-
if (isFrameworkProp(name))
|
|
138
|
-
continue;
|
|
139
|
-
if (name === 'class' || name === 'className')
|
|
140
|
-
continue;
|
|
141
|
-
let nextValue = next[name];
|
|
142
|
-
if (nextValue == null)
|
|
143
|
-
continue;
|
|
144
|
-
let prevValue = curr[name];
|
|
145
|
-
if (prevValue !== nextValue) {
|
|
146
|
-
let { ns, attr } = normalizePropName(name, isSvg);
|
|
147
|
-
// Object style: serialize to attribute for now
|
|
148
|
-
if (attr === 'style' &&
|
|
149
|
-
typeof nextValue === 'object' &&
|
|
150
|
-
nextValue &&
|
|
151
|
-
!Array.isArray(nextValue)) {
|
|
152
|
-
dom.setAttribute('style', serializeStyleObject(nextValue));
|
|
153
|
-
continue;
|
|
154
|
-
}
|
|
155
|
-
// Prefer property assignment when possible (HTML only, not SVG)
|
|
156
|
-
if (canUseProperty(dom, name, isSvg)) {
|
|
157
|
-
try {
|
|
158
|
-
dom[name] = nextValue == null ? '' : nextValue;
|
|
159
|
-
continue;
|
|
160
|
-
}
|
|
161
|
-
catch { }
|
|
162
|
-
}
|
|
163
|
-
// Attribute path
|
|
164
|
-
if (typeof nextValue === 'function') {
|
|
165
|
-
// Never serialize functions as attribute values
|
|
166
|
-
continue;
|
|
167
|
-
}
|
|
168
|
-
let isAriaOrData = name.startsWith('aria-') || name.startsWith('data-');
|
|
169
|
-
if (nextValue != null && (nextValue !== false || isAriaOrData)) {
|
|
170
|
-
// Special-case popover: true => presence only
|
|
171
|
-
let attrValue = name === 'popover' && nextValue === true ? '' : String(nextValue);
|
|
172
|
-
if (ns)
|
|
173
|
-
dom.setAttributeNS(ns, attr, attrValue);
|
|
174
|
-
else
|
|
175
|
-
dom.setAttribute(attr, attrValue);
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
if (ns)
|
|
179
|
-
dom.removeAttributeNS(ns, toLocalName(attr));
|
|
180
|
-
else
|
|
181
|
-
dom.removeAttribute(attr);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
7
|
/**
|
|
187
8
|
* Reset the global style state. For testing only - not exported from index.ts.
|
|
188
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-props.js","sourceRoot":"","sources":["../../src/runtime/diff-props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"diff-props.js","sourceRoot":"","sources":["../../src/runtime/diff-props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAGtD,IAAI,kBAAkB,GACpB,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAE,IAAgC,CAAA;AAE1F,OAAO,EAAqB,CAAA;AAC5B,OAAO,EAAE,cAAc,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEjE,MAAM,CAAC,IAAI,mBAAmB,GAAiB,kBAAkB,CAAA;AAEjE;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,SAAS,CACP,OAAO,MAAM,KAAK,WAAW,EAC7B,8DAA8D,CAC/D,CAAA;IACD,kBAAkB,CAAC,OAAO,EAAE,CAAA;IAC5B,kBAAkB,GAAG,kBAAkB,EAAE,CAAA;IACzC,mBAAmB,GAAG,kBAAkB,CAAA;AAC1C,CAAC"}
|
package/dist/runtime/dom.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import type { MixInput } from './mixins/mixin.ts';
|
|
|
8
8
|
* - Copyright (c) 2015-present Jason Miller
|
|
9
9
|
*/
|
|
10
10
|
type Booleanish = boolean | 'true' | 'false';
|
|
11
|
+
type TranslateValue = 'yes' | 'no';
|
|
11
12
|
/**
|
|
12
13
|
* Layout animation configuration for FLIP-based position animations.
|
|
13
14
|
* All properties are optional - defaults are applied when `true` or `{}` is used.
|
|
@@ -73,6 +74,8 @@ export interface SVGProps<eventTarget extends EventTarget = SVGElement> extends
|
|
|
73
74
|
attributeName?: Trackable<string | undefined>;
|
|
74
75
|
/** The `attributeType` SVG attribute. */
|
|
75
76
|
attributeType?: Trackable<string | undefined>;
|
|
77
|
+
/** The `autoReverse` SVG attribute. */
|
|
78
|
+
autoReverse?: Trackable<Booleanish | undefined>;
|
|
76
79
|
/** The `azimuth` SVG attribute. */
|
|
77
80
|
azimuth?: Trackable<number | string | undefined>;
|
|
78
81
|
/** The `baseFrequency` SVG attribute. */
|
|
@@ -176,7 +179,7 @@ export interface SVGProps<eventTarget extends EventTarget = SVGElement> extends
|
|
|
176
179
|
/** The `exponent` SVG attribute. */
|
|
177
180
|
exponent?: Trackable<number | string | undefined>;
|
|
178
181
|
/** The `externalResourcesRequired` SVG attribute. */
|
|
179
|
-
externalResourcesRequired?: Trackable<
|
|
182
|
+
externalResourcesRequired?: Trackable<Booleanish | undefined>;
|
|
180
183
|
/** The `fill` SVG attribute. */
|
|
181
184
|
fill?: Trackable<string | undefined>;
|
|
182
185
|
/** The `fillOpacity` SVG attribute. */
|
|
@@ -202,7 +205,7 @@ export interface SVGProps<eventTarget extends EventTarget = SVGElement> extends
|
|
|
202
205
|
/** The `flood-opacity` SVG attribute. */
|
|
203
206
|
'flood-opacity'?: Trackable<number | string | undefined>;
|
|
204
207
|
/** The `focusable` SVG attribute. */
|
|
205
|
-
focusable?: Trackable<
|
|
208
|
+
focusable?: Trackable<Booleanish | undefined>;
|
|
206
209
|
/** The `fontFamily` SVG attribute. */
|
|
207
210
|
fontFamily?: Trackable<string | undefined>;
|
|
208
211
|
/** The `font-family` SVG attribute. */
|
|
@@ -410,7 +413,7 @@ export interface SVGProps<eventTarget extends EventTarget = SVGElement> extends
|
|
|
410
413
|
/** The `pointsAtZ` SVG attribute. */
|
|
411
414
|
pointsAtZ?: Trackable<number | string | undefined>;
|
|
412
415
|
/** The `preserveAlpha` SVG attribute. */
|
|
413
|
-
preserveAlpha?: Trackable<
|
|
416
|
+
preserveAlpha?: Trackable<Booleanish | undefined>;
|
|
414
417
|
/** The `preserveAspectRatio` SVG attribute. */
|
|
415
418
|
preserveAspectRatio?: Trackable<string | undefined>;
|
|
416
419
|
/** The `primitiveUnits` SVG attribute. */
|
|
@@ -1066,7 +1069,7 @@ export interface AllHTMLProps<eventTarget extends EventTarget = EventTarget> ext
|
|
|
1066
1069
|
/** The `decoding` HTML attribute. */
|
|
1067
1070
|
decoding?: Trackable<'sync' | 'async' | 'auto' | undefined>;
|
|
1068
1071
|
/** The `draggable` HTML attribute. */
|
|
1069
|
-
draggable?: Trackable<
|
|
1072
|
+
draggable?: Trackable<Booleanish | undefined>;
|
|
1070
1073
|
/** The `encType` HTML attribute. */
|
|
1071
1074
|
encType?: Trackable<string | undefined>;
|
|
1072
1075
|
/** The `enctype` HTML attribute. */
|
|
@@ -1278,7 +1281,9 @@ export interface AllHTMLProps<eventTarget extends EventTarget = EventTarget> ext
|
|
|
1278
1281
|
/** The `span` HTML attribute. */
|
|
1279
1282
|
span?: Trackable<number | undefined>;
|
|
1280
1283
|
/** The `spellcheck` HTML attribute. */
|
|
1281
|
-
spellcheck?: Trackable<
|
|
1284
|
+
spellcheck?: Trackable<Booleanish | undefined>;
|
|
1285
|
+
/** The `spellCheck` HTML attribute. */
|
|
1286
|
+
spellCheck?: Trackable<Booleanish | undefined>;
|
|
1282
1287
|
/** The `src` HTML attribute. */
|
|
1283
1288
|
src?: Trackable<string | undefined>;
|
|
1284
1289
|
/** The `srcDoc` HTML attribute. */
|
|
@@ -1336,7 +1341,7 @@ export interface AllHTMLProps<eventTarget extends EventTarget = EventTarget> ext
|
|
|
1336
1341
|
/** The `results` HTML attribute. */
|
|
1337
1342
|
results?: Trackable<number | undefined>;
|
|
1338
1343
|
/** The `translate` HTML attribute. */
|
|
1339
|
-
translate?: Trackable<
|
|
1344
|
+
translate?: Trackable<TranslateValue | undefined>;
|
|
1340
1345
|
/** The `about` HTML attribute. */
|
|
1341
1346
|
about?: Trackable<string | undefined>;
|
|
1342
1347
|
/** The `datatype` HTML attribute. */
|
|
@@ -1405,7 +1410,7 @@ export interface HTMLProps<eventTarget extends EventTarget = EventTarget> extend
|
|
|
1405
1410
|
/** The `dir` HTML attribute. */
|
|
1406
1411
|
dir?: Trackable<'auto' | 'rtl' | 'ltr' | undefined>;
|
|
1407
1412
|
/** The `draggable` HTML attribute. */
|
|
1408
|
-
draggable?: Trackable<
|
|
1413
|
+
draggable?: Trackable<Booleanish | undefined>;
|
|
1409
1414
|
/** The `enterkeyhint` HTML attribute. */
|
|
1410
1415
|
enterkeyhint?: Trackable<'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send' | undefined>;
|
|
1411
1416
|
/** The `exportparts` HTML attribute. */
|
|
@@ -1433,7 +1438,9 @@ export interface HTMLProps<eventTarget extends EventTarget = EventTarget> extend
|
|
|
1433
1438
|
/** The `slot` HTML attribute. */
|
|
1434
1439
|
slot?: Trackable<string | undefined>;
|
|
1435
1440
|
/** The `spellcheck` HTML attribute. */
|
|
1436
|
-
spellcheck?: Trackable<
|
|
1441
|
+
spellcheck?: Trackable<Booleanish | undefined>;
|
|
1442
|
+
/** The `spellCheck` HTML attribute. */
|
|
1443
|
+
spellCheck?: Trackable<Booleanish | undefined>;
|
|
1437
1444
|
/** The `style` HTML attribute. */
|
|
1438
1445
|
style?: Trackable<string | StyleProps | undefined>;
|
|
1439
1446
|
/** The `tabindex` HTML attribute. */
|
|
@@ -1443,7 +1450,7 @@ export interface HTMLProps<eventTarget extends EventTarget = EventTarget> extend
|
|
|
1443
1450
|
/** The `title` HTML attribute. */
|
|
1444
1451
|
title?: Trackable<string | undefined>;
|
|
1445
1452
|
/** The `translate` HTML attribute. */
|
|
1446
|
-
translate?: Trackable<
|
|
1453
|
+
translate?: Trackable<TranslateValue | undefined>;
|
|
1447
1454
|
/** The `role` HTML attribute. */
|
|
1448
1455
|
role?: Trackable<AriaRole | undefined>;
|
|
1449
1456
|
/** The `disablePictureInPicture` HTML attribute. */
|
|
@@ -2734,6 +2741,10 @@ export interface TemplateHTMLProps<eventTarget extends EventTarget = HTMLTemplat
|
|
|
2734
2741
|
* Props accepted by `<textarea>` elements.
|
|
2735
2742
|
*/
|
|
2736
2743
|
export interface TextareaHTMLProps<eventTarget extends EventTarget = HTMLTextAreaElement> extends HTMLProps<eventTarget> {
|
|
2744
|
+
/** Textarea content comes from `value` or `defaultValue`. */
|
|
2745
|
+
children?: never;
|
|
2746
|
+
/** Textarea content comes from `value` or `defaultValue`. */
|
|
2747
|
+
innerHTML?: never;
|
|
2737
2748
|
/** The `autocomplete` HTML attribute. */
|
|
2738
2749
|
autocomplete?: Trackable<string | undefined>;
|
|
2739
2750
|
/** The `autoComplete` HTML attribute. */
|
package/dist/runtime/frame.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import type { FrameHandle } from './component.ts';
|
|
|
4
4
|
import type { Scheduler } from './vdom.ts';
|
|
5
5
|
import { createRangeRoot } from './vdom.ts';
|
|
6
6
|
import { type StyleManager } from '../style/index.ts';
|
|
7
|
+
import { type FlushKind } from './stream-protocol.ts';
|
|
7
8
|
type FrameRoot = [Comment, Comment] | Element | Document | DocumentFragment;
|
|
8
9
|
type FrameData = {
|
|
9
10
|
status: 'pending' | 'resolved';
|
|
@@ -27,11 +28,30 @@ type FrameMarkerData = FrameData & {
|
|
|
27
28
|
};
|
|
28
29
|
type PendingClientEntries = Map<Comment, [Comment, RemixElement]>;
|
|
29
30
|
/**
|
|
30
|
-
* Loads a client
|
|
31
|
+
* Loads a named client-entry export for hydration.
|
|
32
|
+
*
|
|
33
|
+
* @param moduleUrl Browser-resolvable URL for the module that contains the client entry.
|
|
34
|
+
* @param exportName Named export to read from the loaded module.
|
|
35
|
+
* @returns The exported component function, or a promise for it.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* run({
|
|
40
|
+
* async loadModule(moduleUrl, exportName) {
|
|
41
|
+
* let mod = await import(moduleUrl)
|
|
42
|
+
* return mod[exportName]
|
|
43
|
+
* },
|
|
44
|
+
* })
|
|
45
|
+
* ```
|
|
31
46
|
*/
|
|
32
47
|
export type LoadModule = (moduleUrl: string, exportName: string) => Promise<Function> | Function;
|
|
33
48
|
/**
|
|
34
|
-
* Resolves
|
|
49
|
+
* Resolves content for a browser-loaded frame.
|
|
50
|
+
*
|
|
51
|
+
* @param src Source string from the `<Frame src>` prop.
|
|
52
|
+
* @param signal Abort signal for the active frame load or reload.
|
|
53
|
+
* @param target Optional name of the frame being reloaded.
|
|
54
|
+
* @returns HTML, a stream of HTML bytes, or Remix node content to render into the frame.
|
|
35
55
|
*/
|
|
36
56
|
export type ResolveFrame = (src: string, signal?: AbortSignal, target?: string) => Promise<FrameContent> | FrameContent;
|
|
37
57
|
type InternalFrameContent = FrameContent | DocumentFragment;
|
|
@@ -91,6 +111,7 @@ export type Frame = {
|
|
|
91
111
|
handle: FrameHandle;
|
|
92
112
|
};
|
|
93
113
|
type RenderOptions = {
|
|
114
|
+
flushKind?: FlushKind;
|
|
94
115
|
initialHydrationTracker?: InitialHydrationTracker;
|
|
95
116
|
signal?: AbortSignal;
|
|
96
117
|
};
|
package/dist/runtime/frame.js
CHANGED
|
@@ -5,6 +5,7 @@ import { invariant } from "./invariant.js";
|
|
|
5
5
|
import { createRangeRoot, createRoot } from "./vdom.js";
|
|
6
6
|
import { diffNodes } from "./diff-dom.js";
|
|
7
7
|
import { createStyleManager } from "../style/index.js";
|
|
8
|
+
import { findFlushMarker } from "./stream-protocol.js";
|
|
8
9
|
const bufferedFrameTemplates = new Map();
|
|
9
10
|
const frameTemplateListeners = new Map();
|
|
10
11
|
const DOCTYPE_PATTERN = /<!doctype(?:\s[^>]*)?>/gi;
|
|
@@ -90,10 +91,10 @@ export function createFrame(root, init) {
|
|
|
90
91
|
if (options?.signal?.aborted)
|
|
91
92
|
return;
|
|
92
93
|
if (content instanceof ReadableStream) {
|
|
93
|
-
await renderFrameStream(content, container.doc, async (html) => {
|
|
94
|
+
await renderFrameStream(content, container.doc, async (html, flushKind) => {
|
|
94
95
|
if (options?.signal?.aborted)
|
|
95
96
|
return;
|
|
96
|
-
await render(html, options);
|
|
97
|
+
await render(html, { ...options, flushKind });
|
|
97
98
|
});
|
|
98
99
|
return;
|
|
99
100
|
}
|
|
@@ -114,32 +115,34 @@ export function createFrame(root, init) {
|
|
|
114
115
|
contentRoot.dispose();
|
|
115
116
|
contentRoot = undefined;
|
|
116
117
|
}
|
|
118
|
+
if (typeof content === 'string') {
|
|
119
|
+
let flushed = await consumeFlushBatches(content, async (html, flushKind) => {
|
|
120
|
+
await render(html, { ...options, flushKind });
|
|
121
|
+
});
|
|
122
|
+
if (flushed.applied) {
|
|
123
|
+
if (flushed.remainder !== '') {
|
|
124
|
+
await render(flushed.remainder, { ...options, flushKind: 'fragment' });
|
|
125
|
+
}
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
117
129
|
let htmlContent = typeof content === 'string' ? stripDoctypeMarkup(content) : undefined;
|
|
118
130
|
let isFullDocumentReload = container.root instanceof Document &&
|
|
119
131
|
htmlContent !== undefined &&
|
|
120
|
-
|
|
132
|
+
options?.flushKind === 'document';
|
|
121
133
|
if (isFullDocumentReload && htmlContent !== undefined) {
|
|
122
|
-
// Full-document reload should tear down existing hydrated roots and subframes
|
|
123
|
-
// before diffing fresh HTML, otherwise stale component instances can survive
|
|
124
|
-
// on detached DOM nodes.
|
|
125
|
-
let previousBodyNodes = Array.from(container.doc.body.childNodes);
|
|
126
|
-
removeVirtualRoots(previousBodyNodes);
|
|
127
|
-
disposeSubFrames(previousBodyNodes, context);
|
|
128
134
|
let parsed = new DOMParser().parseFromString(htmlContent, 'text/html');
|
|
129
135
|
mergeRmxDataFromDocument(context.data, parsed);
|
|
130
|
-
context.styleManager.
|
|
131
|
-
context.styleManager.adoptServerStyles(collectFrameServerStyleTags(createElementContainer(parsed)));
|
|
136
|
+
context.styleManager.replaceServerStyles(collectFrameServerStyleTags(createElementContainer(parsed)));
|
|
132
137
|
syncElementAttributes(container.doc.documentElement, parsed.documentElement);
|
|
133
|
-
|
|
134
|
-
syncElementAttributes(container.doc.body, parsed.body);
|
|
135
|
-
diffNodes(Array.from(container.doc.head.childNodes), Array.from(parsed.head.childNodes), {
|
|
138
|
+
diffNodes([container.doc.head], [parsed.head], {
|
|
136
139
|
...context,
|
|
137
|
-
regionParent: container.doc.
|
|
140
|
+
regionParent: container.doc.documentElement,
|
|
138
141
|
regionTailRef: null,
|
|
139
142
|
});
|
|
140
|
-
diffNodes(
|
|
143
|
+
diffNodes([container.doc.body], [parsed.body], {
|
|
141
144
|
...context,
|
|
142
|
-
regionParent: container.doc.
|
|
145
|
+
regionParent: container.doc.documentElement,
|
|
143
146
|
regionTailRef: null,
|
|
144
147
|
});
|
|
145
148
|
let bodyContainer = createElementContainer(container.doc.body);
|
|
@@ -150,8 +153,7 @@ export function createFrame(root, init) {
|
|
|
150
153
|
return;
|
|
151
154
|
}
|
|
152
155
|
let fragment = htmlContent !== undefined ? createFragmentFromString(container.doc, htmlContent) : content;
|
|
153
|
-
context.styleManager.
|
|
154
|
-
context.styleManager.adoptServerStyles(collectFrameServerStyleTags(createElementContainer(fragment)));
|
|
156
|
+
context.styleManager.replaceServerStyles(collectFrameServerStyleTags(createElementContainer(fragment)));
|
|
155
157
|
removeEmptyHeads(fragment);
|
|
156
158
|
mergeRmxDataFromFragment(context.data, fragment);
|
|
157
159
|
let nextContainer = createContainer(fragment);
|
|
@@ -203,8 +205,7 @@ export function createFrame(root, init) {
|
|
|
203
205
|
}
|
|
204
206
|
async function hydrateInitial() {
|
|
205
207
|
let initialHydrationTracker = createInitialHydrationTracker();
|
|
206
|
-
context.styleManager.
|
|
207
|
-
context.styleManager.adoptServerStyles(collectFrameServerStyleTags(container));
|
|
208
|
+
context.styleManager.replaceServerStyles(collectFrameServerStyleTags(container));
|
|
208
209
|
createSubFrames(container.childNodes, context);
|
|
209
210
|
scheduleHydrationInContainer(container, context, initialHydrationTracker);
|
|
210
211
|
if (init.marker?.status === 'pending') {
|
|
@@ -742,7 +743,6 @@ async function renderFrameStream(stream, doc, applyHtml) {
|
|
|
742
743
|
let decoder = new TextDecoder();
|
|
743
744
|
let buffer = '';
|
|
744
745
|
let html = '';
|
|
745
|
-
let appliedLength = 0;
|
|
746
746
|
let appliedOnce = false;
|
|
747
747
|
try {
|
|
748
748
|
while (true) {
|
|
@@ -754,13 +754,9 @@ async function renderFrameStream(stream, doc, applyHtml) {
|
|
|
754
754
|
buffer = parsed.remainder;
|
|
755
755
|
if (parsed.html !== '') {
|
|
756
756
|
html += parsed.html;
|
|
757
|
-
let
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
}
|
|
761
|
-
await applyHtml(html);
|
|
762
|
-
appliedLength = html.length;
|
|
763
|
-
appliedOnce = true;
|
|
757
|
+
let flushed = await consumeFlushBatches(html, applyHtml);
|
|
758
|
+
appliedOnce = flushed.applied || appliedOnce;
|
|
759
|
+
html = flushed.remainder;
|
|
764
760
|
}
|
|
765
761
|
}
|
|
766
762
|
buffer += decoder.decode();
|
|
@@ -771,20 +767,33 @@ async function renderFrameStream(stream, doc, applyHtml) {
|
|
|
771
767
|
html += buffer;
|
|
772
768
|
buffer = '';
|
|
773
769
|
}
|
|
774
|
-
if (html !== ''
|
|
775
|
-
await applyHtml(html);
|
|
770
|
+
if (html !== '') {
|
|
771
|
+
await applyHtml(html, 'fragment');
|
|
776
772
|
appliedOnce = true;
|
|
777
773
|
}
|
|
778
774
|
// A frame stream can legitimately resolve to empty content. Ensure the
|
|
779
775
|
// existing frame region is cleared instead of treated as a no-op.
|
|
780
776
|
if (html === '' && !appliedOnce) {
|
|
781
|
-
await applyHtml('');
|
|
777
|
+
await applyHtml('', 'fragment');
|
|
782
778
|
}
|
|
783
779
|
}
|
|
784
780
|
finally {
|
|
785
781
|
reader.releaseLock();
|
|
786
782
|
}
|
|
787
783
|
}
|
|
784
|
+
async function consumeFlushBatches(html, applyHtml) {
|
|
785
|
+
let applied = false;
|
|
786
|
+
let cursor = 0;
|
|
787
|
+
let marker = findFlushMarker(html, cursor);
|
|
788
|
+
while (marker) {
|
|
789
|
+
let batch = html.slice(cursor, marker.index);
|
|
790
|
+
await applyHtml(batch, marker.kind);
|
|
791
|
+
applied = true;
|
|
792
|
+
cursor = marker.endIndex;
|
|
793
|
+
marker = findFlushMarker(html, cursor);
|
|
794
|
+
}
|
|
795
|
+
return { applied, remainder: html.slice(cursor) };
|
|
796
|
+
}
|
|
788
797
|
function createContainer(root) {
|
|
789
798
|
return Array.isArray(root) ? createCommentContainer(root) : createElementContainer(root);
|
|
790
799
|
}
|
|
@@ -832,10 +841,6 @@ function isRemixNodeFrameContent(content) {
|
|
|
832
841
|
content instanceof DocumentFragment ||
|
|
833
842
|
typeof content === 'string');
|
|
834
843
|
}
|
|
835
|
-
function isFullDocumentHtml(content) {
|
|
836
|
-
let trimmed = content.trimStart();
|
|
837
|
-
return /^<!doctype html\b/i.test(trimmed) || /^<html[\s>]/i.test(trimmed);
|
|
838
|
-
}
|
|
839
844
|
function findHydrationMarkers(container) {
|
|
840
845
|
let results = [];
|
|
841
846
|
forEachComment(container, (comment) => {
|
|
@@ -906,15 +911,4 @@ function findEndMarker(start, isStart, isEnd) {
|
|
|
906
911
|
}
|
|
907
912
|
throw new Error('End marker not found');
|
|
908
913
|
}
|
|
909
|
-
function collectHtmlMarkerSummary(html) {
|
|
910
|
-
return {
|
|
911
|
-
frameStarts: html.match(/<!--\s*rmx:f:/g)?.length ?? 0,
|
|
912
|
-
frameEnds: html.match(/<!--\s*\/rmx:f\s*-->/g)?.length ?? 0,
|
|
913
|
-
hydrationStarts: html.match(/<!--\s*rmx:h:/g)?.length ?? 0,
|
|
914
|
-
hydrationEnds: html.match(/<!--\s*\/rmx:h\s*-->/g)?.length ?? 0,
|
|
915
|
-
};
|
|
916
|
-
}
|
|
917
|
-
function hasBalancedMarkerSummary(summary) {
|
|
918
|
-
return (summary.frameStarts === summary.frameEnds && summary.hydrationStarts === summary.hydrationEnds);
|
|
919
|
-
}
|
|
920
914
|
//# sourceMappingURL=frame.js.map
|