@vidact/runtime 0.2.0-beta.0 → 0.2.0-beta.5

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.
Files changed (244) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +1 -1
  3. package/dist/actions.d.ts +32 -30
  4. package/dist/actions.d.ts.map +1 -1
  5. package/dist/actions.js +251 -266
  6. package/dist/actions.js.map +1 -1
  7. package/dist/async.d.ts +20 -17
  8. package/dist/async.d.ts.map +1 -1
  9. package/dist/async.js +18 -17
  10. package/dist/async.js.map +1 -1
  11. package/dist/compiled/async-resource.d.ts +9 -6
  12. package/dist/compiled/async-resource.d.ts.map +1 -1
  13. package/dist/compiled/async-resource.js +69 -77
  14. package/dist/compiled/async-resource.js.map +1 -1
  15. package/dist/compiled/core.d.ts +136 -147
  16. package/dist/compiled/core.d.ts.map +1 -1
  17. package/dist/compiled/core.js +2672 -2985
  18. package/dist/compiled/core.js.map +1 -1
  19. package/dist/compiled/types.d.ts +44 -56
  20. package/dist/compiled/types.d.ts.map +1 -1
  21. package/dist/compiled/types.js +10 -6
  22. package/dist/compiled/types.js.map +1 -1
  23. package/dist/compiled/validation.d.ts +4 -1
  24. package/dist/compiled/validation.d.ts.map +1 -1
  25. package/dist/compiled/validation.js +17 -20
  26. package/dist/compiled/validation.js.map +1 -1
  27. package/dist/component-spread.d.ts +5 -3
  28. package/dist/component-spread.d.ts.map +1 -1
  29. package/dist/component-spread.js +49 -67
  30. package/dist/component-spread.js.map +1 -1
  31. package/dist/concurrent.d.ts +20 -18
  32. package/dist/concurrent.d.ts.map +1 -1
  33. package/dist/concurrent.js +191 -210
  34. package/dist/concurrent.js.map +1 -1
  35. package/dist/direct-dom.d.ts +17 -12
  36. package/dist/direct-dom.d.ts.map +1 -1
  37. package/dist/direct-dom.js +187 -221
  38. package/dist/direct-dom.js.map +1 -1
  39. package/dist/dom/attributes.d.ts +9 -6
  40. package/dist/dom/attributes.d.ts.map +1 -1
  41. package/dist/dom/attributes.js +65 -47
  42. package/dist/dom/attributes.js.map +1 -1
  43. package/dist/dom/events.d.ts +5 -2
  44. package/dist/dom/events.d.ts.map +1 -1
  45. package/dist/dom/events.js +53 -65
  46. package/dist/dom/events.js.map +1 -1
  47. package/dist/dom/forms.d.ts +9 -6
  48. package/dist/dom/forms.d.ts.map +1 -1
  49. package/dist/dom/forms.js +152 -198
  50. package/dist/dom/forms.js.map +1 -1
  51. package/dist/dom/intrinsic.d.ts +17 -15
  52. package/dist/dom/intrinsic.d.ts.map +1 -1
  53. package/dist/dom/intrinsic.js +48 -50
  54. package/dist/dom/intrinsic.js.map +1 -1
  55. package/dist/dom/namespace.d.ts +4 -1
  56. package/dist/dom/namespace.d.ts.map +1 -1
  57. package/dist/dom/namespace.js +25 -28
  58. package/dist/dom/namespace.js.map +1 -1
  59. package/dist/dom/namespaces.d.ts +11 -8
  60. package/dist/dom/namespaces.d.ts.map +1 -1
  61. package/dist/dom/namespaces.js +14 -12
  62. package/dist/dom/namespaces.js.map +1 -1
  63. package/dist/dom/properties.d.ts +18 -16
  64. package/dist/dom/properties.d.ts.map +1 -1
  65. package/dist/dom/properties.js +273 -296
  66. package/dist/dom/properties.js.map +1 -1
  67. package/dist/dom/style-properties.d.ts +4 -1
  68. package/dist/dom/style-properties.d.ts.map +1 -1
  69. package/dist/dom/style-properties.js +49 -45
  70. package/dist/dom/style-properties.js.map +1 -1
  71. package/dist/dom/styles.d.ts +5 -2
  72. package/dist/dom/styles.d.ts.map +1 -1
  73. package/dist/dom/styles.js +47 -67
  74. package/dist/dom/styles.js.map +1 -1
  75. package/dist/dom-forms.d.ts +4 -1
  76. package/dist/dom-forms.d.ts.map +1 -1
  77. package/dist/dom-forms.js +16 -13
  78. package/dist/dom-forms.js.map +1 -1
  79. package/dist/dom-styles.d.ts +4 -1
  80. package/dist/dom-styles.d.ts.map +1 -1
  81. package/dist/dom-styles.js +10 -7
  82. package/dist/dom-styles.js.map +1 -1
  83. package/dist/framework-hydrate.d.ts +20 -17
  84. package/dist/framework-hydrate.d.ts.map +1 -1
  85. package/dist/framework-hydrate.js +128 -146
  86. package/dist/framework-hydrate.js.map +1 -1
  87. package/dist/framework-protocol.d.ts +27 -25
  88. package/dist/framework-protocol.d.ts.map +1 -1
  89. package/dist/framework-protocol.js +173 -211
  90. package/dist/framework-protocol.js.map +1 -1
  91. package/dist/framework.d.ts +34 -32
  92. package/dist/framework.d.ts.map +1 -1
  93. package/dist/framework.js +74 -93
  94. package/dist/framework.js.map +1 -1
  95. package/dist/hydrate.d.ts +11 -8
  96. package/dist/hydrate.d.ts.map +1 -1
  97. package/dist/hydrate.js +13 -9
  98. package/dist/hydrate.js.map +1 -1
  99. package/dist/hydration-bridge.d.ts +70 -58
  100. package/dist/hydration-bridge.d.ts.map +1 -1
  101. package/dist/hydration-bridge.js +77 -66
  102. package/dist/hydration-bridge.js.map +1 -1
  103. package/dist/hydration.d.ts +54 -28
  104. package/dist/hydration.d.ts.map +1 -1
  105. package/dist/hydration.js +450 -463
  106. package/dist/hydration.js.map +1 -1
  107. package/dist/index.d.ts +13 -13
  108. package/dist/index.js +11 -13
  109. package/dist/indexed-list.d.ts +8 -5
  110. package/dist/indexed-list.d.ts.map +1 -1
  111. package/dist/indexed-list.js +14 -7
  112. package/dist/indexed-list.js.map +1 -1
  113. package/dist/jsx-runtime.d.ts +10 -8
  114. package/dist/jsx-runtime.d.ts.map +1 -1
  115. package/dist/jsx-runtime.js +28 -23
  116. package/dist/jsx-runtime.js.map +1 -1
  117. package/dist/keyed-list.d.ts +13 -14
  118. package/dist/keyed-list.d.ts.map +1 -1
  119. package/dist/keyed-list.js +132 -160
  120. package/dist/keyed-list.js.map +1 -1
  121. package/dist/metadata.d.ts +6 -3
  122. package/dist/metadata.d.ts.map +1 -1
  123. package/dist/metadata.js +131 -164
  124. package/dist/metadata.js.map +1 -1
  125. package/dist/nested-prop.d.ts +4 -2
  126. package/dist/nested-prop.d.ts.map +1 -1
  127. package/dist/nested-prop.js +17 -16
  128. package/dist/nested-prop.js.map +1 -1
  129. package/dist/profiling.d.ts +11 -8
  130. package/dist/profiling.d.ts.map +1 -1
  131. package/dist/profiling.js +17 -17
  132. package/dist/profiling.js.map +1 -1
  133. package/dist/protocol.d.ts +5 -2
  134. package/dist/protocol.d.ts.map +1 -1
  135. package/dist/protocol.js +8 -5
  136. package/dist/protocol.js.map +1 -1
  137. package/dist/raw-html.d.ts +5 -2
  138. package/dist/raw-html.d.ts.map +1 -1
  139. package/dist/raw-html.js +86 -146
  140. package/dist/raw-html.js.map +1 -1
  141. package/dist/ref.d.ts +8 -3
  142. package/dist/ref.d.ts.map +1 -1
  143. package/dist/ref.js +10 -2
  144. package/dist/ref.js.map +1 -1
  145. package/dist/renderable-protocol.d.ts +26 -8
  146. package/dist/renderable-protocol.d.ts.map +1 -1
  147. package/dist/renderable-protocol.js +30 -9
  148. package/dist/renderable-protocol.js.map +1 -1
  149. package/dist/renderable.d.ts +27 -22
  150. package/dist/renderable.d.ts.map +1 -1
  151. package/dist/renderable.js +141 -133
  152. package/dist/renderable.js.map +1 -1
  153. package/dist/retained-ui.d.ts +9 -6
  154. package/dist/retained-ui.d.ts.map +1 -1
  155. package/dist/retained-ui.js +12 -10
  156. package/dist/retained-ui.js.map +1 -1
  157. package/dist/root.d.ts +18 -15
  158. package/dist/root.d.ts.map +1 -1
  159. package/dist/root.js +73 -85
  160. package/dist/root.js.map +1 -1
  161. package/dist/scheduler.d.ts +10 -8
  162. package/dist/scheduler.d.ts.map +1 -1
  163. package/dist/scheduler.js +97 -105
  164. package/dist/scheduler.js.map +1 -1
  165. package/dist/server-framework.d.ts +45 -42
  166. package/dist/server-framework.d.ts.map +1 -1
  167. package/dist/server-framework.js +209 -217
  168. package/dist/server-framework.js.map +1 -1
  169. package/dist/server.d.ts +130 -128
  170. package/dist/server.d.ts.map +1 -1
  171. package/dist/server.js +603 -710
  172. package/dist/server.js.map +1 -1
  173. package/dist/shared/promise.d.ts +6 -3
  174. package/dist/shared/promise.d.ts.map +1 -1
  175. package/dist/shared/promise.js +21 -19
  176. package/dist/shared/promise.js.map +1 -1
  177. package/dist/source-mask.d.ts +9 -6
  178. package/dist/source-mask.d.ts.map +1 -1
  179. package/dist/source-mask.js +45 -63
  180. package/dist/source-mask.js.map +1 -1
  181. package/dist/spread.d.ts +5 -2
  182. package/dist/spread.d.ts.map +1 -1
  183. package/dist/spread.js +79 -99
  184. package/dist/spread.js.map +1 -1
  185. package/dist/state-slot.d.ts +18 -15
  186. package/dist/state-slot.d.ts.map +1 -1
  187. package/dist/state-slot.js +43 -42
  188. package/dist/state-slot.js.map +1 -1
  189. package/dist/testing.d.ts +9 -6
  190. package/dist/testing.d.ts.map +1 -1
  191. package/dist/testing.js +16 -12
  192. package/dist/testing.js.map +1 -1
  193. package/package.json +8 -7
  194. package/src/actions.ts +415 -0
  195. package/src/async.ts +78 -0
  196. package/src/compiled/async-resource.ts +113 -0
  197. package/src/compiled/core.ts +4041 -0
  198. package/src/compiled/types.ts +96 -0
  199. package/src/compiled/validation.ts +23 -0
  200. package/src/component-spread.ts +86 -0
  201. package/src/concurrent.ts +310 -0
  202. package/src/direct-dom.ts +365 -0
  203. package/src/dom/attributes.ts +55 -0
  204. package/src/dom/events.ts +93 -0
  205. package/src/dom/forms.ts +220 -0
  206. package/src/dom/intrinsic.ts +94 -0
  207. package/src/dom/namespace.ts +30 -0
  208. package/src/dom/namespaces.ts +14 -0
  209. package/src/dom/properties.ts +355 -0
  210. package/src/dom/style-properties.ts +46 -0
  211. package/src/dom/styles.ts +86 -0
  212. package/src/dom-forms.ts +23 -0
  213. package/src/dom-styles.ts +11 -0
  214. package/src/env.d.ts +6 -0
  215. package/src/framework-hydrate.ts +224 -0
  216. package/src/framework-protocol.ts +335 -0
  217. package/src/framework.ts +161 -0
  218. package/src/hydrate.ts +38 -0
  219. package/src/hydration-bridge.ts +196 -0
  220. package/src/hydration.ts +642 -0
  221. package/src/index.ts +92 -0
  222. package/src/indexed-list.ts +20 -0
  223. package/src/jsx-runtime.ts +55 -0
  224. package/src/keyed-list.ts +233 -0
  225. package/src/metadata.ts +212 -0
  226. package/src/nested-prop.ts +27 -0
  227. package/src/profiling.ts +43 -0
  228. package/src/protocol.ts +8 -0
  229. package/src/raw-html.ts +206 -0
  230. package/src/ref.ts +13 -0
  231. package/src/renderable-protocol.ts +63 -0
  232. package/src/renderable.ts +283 -0
  233. package/src/retained-ui.ts +19 -0
  234. package/src/root.ts +122 -0
  235. package/src/scheduler.ts +136 -0
  236. package/src/server-framework.ts +397 -0
  237. package/src/server.ts +1160 -0
  238. package/src/shared/promise.ts +28 -0
  239. package/src/source-mask.ts +83 -0
  240. package/src/spread.ts +131 -0
  241. package/src/state-slot.ts +76 -0
  242. package/src/testing.ts +27 -0
  243. package/dist/index.d.ts.map +0 -1
  244. package/dist/index.js.map +0 -1
package/dist/raw-html.js CHANGED
@@ -1,172 +1,112 @@
1
- import { isCompiledBinding, mountCompiledPropTransition, } from './compiled/core.js';
2
- import { HydrationMismatch, isHydrating } from './hydration-bridge.js';
1
+ import { HydrationMismatch, isHydrating } from "./hydration-bridge.js";
2
+ import { isCompiledBinding, mountCompiledPropTransition } from "./compiled/core.js";
3
+ //#region src/raw-html.ts
3
4
  const RAW_HTML_PUBLICATION_PRIORITY = 100;
4
- const rawHtmlHosts = new WeakSet();
5
- const DEV = typeof __VIDACT_DEV__ === 'undefined' || __VIDACT_DEV__;
6
- export function mountRawHtmlProp(element, value, children) {
7
- if (value === null || value === undefined)
8
- return;
9
- if (isCompiledBinding(value)) {
10
- mountCompiledPropTransition(value, (initial) => mountRawHtml(element, initial, children), (next, previous) => prepareRawHtml(element, next, previous, children));
11
- return;
12
- }
13
- mountRawHtml(element, value, children);
5
+ const rawHtmlHosts = /* @__PURE__ */ new WeakSet();
6
+ const DEV = typeof __VIDACT_DEV__ === "undefined" || __VIDACT_DEV__;
7
+ function mountRawHtmlProp(element, value, children) {
8
+ if (value === null || value === void 0) return;
9
+ if (isCompiledBinding(value)) {
10
+ mountCompiledPropTransition(value, (initial) => mountRawHtml(element, initial, children), (next, previous) => prepareRawHtml(element, next, previous, children));
11
+ return;
12
+ }
13
+ mountRawHtml(element, value, children);
14
14
  }
15
15
  function mountRawHtml(element, value, children) {
16
- const html = readRawHtml(element, value, children);
17
- if (html === null || html === undefined)
18
- return;
19
- const container = rawHtmlContainer(element);
20
- const staged = parseRawHtml(element, html);
21
- if (isHydrating()) {
22
- if (!hasEqualHydrationRawChildren(container, staged)) {
23
- throw new HydrationMismatch('server raw HTML does not match the client value');
24
- }
25
- }
26
- else {
27
- container.replaceChildren(adoptRawHtml(element, staged));
28
- }
29
- rawHtmlHosts.add(element);
16
+ const html = readRawHtml(element, value, children);
17
+ if (html === null || html === void 0) return;
18
+ const container = rawHtmlContainer(element);
19
+ const staged = parseRawHtml(element, html);
20
+ if (isHydrating()) {
21
+ if (!hasEqualHydrationRawChildren(container, staged)) throw new HydrationMismatch("server raw HTML does not match the client value");
22
+ } else container.replaceChildren(adoptRawHtml(element, staged));
23
+ rawHtmlHosts.add(element);
30
24
  }
31
25
  function hasEqualHydrationRawChildren(container, expected) {
32
- const start = container.firstChild;
33
- const end = container.lastChild;
34
- if (!(start instanceof Comment) ||
35
- start.data !== 'vidact:v1:h' ||
36
- !(end instanceof Comment) ||
37
- end.data !== '/vidact:v1:h') {
38
- return false;
39
- }
40
- const actual = [];
41
- for (let node = start.nextSibling; node !== null && node !== end; node = node.nextSibling) {
42
- actual.push(node);
43
- }
44
- if (actual.length !== expected.childNodes.length)
45
- return false;
46
- for (let index = 0; index < actual.length; index += 1) {
47
- if (!actual[index]?.isEqualNode(expected.childNodes[index] ?? null))
48
- return false;
49
- }
50
- return true;
26
+ const start = container.firstChild;
27
+ const end = container.lastChild;
28
+ if (!(start instanceof Comment) || start.data !== `v2:h` || !(end instanceof Comment) || end.data !== `/v2:h`) return false;
29
+ const actual = [];
30
+ for (let node = start.nextSibling; node !== null && node !== end; node = node.nextSibling) actual.push(node);
31
+ if (actual.length !== expected.childNodes.length) return false;
32
+ for (let index = 0; index < actual.length; index += 1) if (!actual[index]?.isEqualNode(expected.childNodes[index] ?? null)) return false;
33
+ return true;
51
34
  }
52
35
  function prepareRawHtml(element, nextValue, previousValue, children) {
53
- const nextHtml = readRawHtml(element, nextValue, children);
54
- const previousHtml = readRawHtml(element, previousValue, children);
55
- if (nextHtml === null || nextHtml === undefined || nextHtml === previousHtml)
56
- return undefined;
57
- const staged = parseRawHtml(element, nextHtml);
58
- const container = rawHtmlContainer(element);
59
- const wasRawHtmlHost = rawHtmlHosts.has(element);
60
- let previousNodes;
61
- return [
62
- () => {
63
- // A reactive script `type` prop commits before the raw subtree.
64
- assertExecutableRawHtmlTarget(element);
65
- const adopted = adoptRawHtml(element, staged);
66
- previousNodes = [...container.childNodes];
67
- container.replaceChildren(adopted);
68
- rawHtmlHosts.add(element);
69
- },
70
- () => {
71
- if (previousNodes === undefined)
72
- return;
73
- container.replaceChildren(...previousNodes);
74
- if (!wasRawHtmlHost)
75
- rawHtmlHosts.delete(element);
76
- previousNodes = undefined;
77
- },
78
- undefined,
79
- undefined,
80
- RAW_HTML_PUBLICATION_PRIORITY,
81
- ];
36
+ const nextHtml = readRawHtml(element, nextValue, children);
37
+ const previousHtml = readRawHtml(element, previousValue, children);
38
+ if (nextHtml === null || nextHtml === void 0 || nextHtml === previousHtml) return void 0;
39
+ const staged = parseRawHtml(element, nextHtml);
40
+ const container = rawHtmlContainer(element);
41
+ const wasRawHtmlHost = rawHtmlHosts.has(element);
42
+ let previousNodes;
43
+ return [
44
+ () => {
45
+ assertExecutableRawHtmlTarget(element);
46
+ const adopted = adoptRawHtml(element, staged);
47
+ previousNodes = [...container.childNodes];
48
+ container.replaceChildren(adopted);
49
+ rawHtmlHosts.add(element);
50
+ },
51
+ () => {
52
+ if (previousNodes === void 0) return;
53
+ container.replaceChildren(...previousNodes);
54
+ if (!wasRawHtmlHost) rawHtmlHosts.delete(element);
55
+ previousNodes = void 0;
56
+ },
57
+ void 0,
58
+ void 0,
59
+ RAW_HTML_PUBLICATION_PRIORITY
60
+ ];
82
61
  }
83
- export function validateRawHtmlRelatedProp(element, name) {
84
- if (name === 'type' && rawHtmlHosts.has(element))
85
- assertExecutableRawHtmlTarget(element);
62
+ function validateRawHtmlRelatedProp(element, name) {
63
+ if (name === "type" && rawHtmlHosts.has(element)) assertExecutableRawHtmlTarget(element);
86
64
  }
87
65
  function readRawHtml(element, value, children) {
88
- if (value === null || value === undefined)
89
- return undefined;
90
- assertRawHtmlPropTarget(element);
91
- if (typeof value !== 'object' || !('__html' in value)) {
92
- throw new Error(DEV
93
- ? '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information.'
94
- : 'V601');
95
- }
96
- const html = value['__html'];
97
- if (html === null || html === undefined)
98
- return html;
99
- if (children.some((child) => child !== null && child !== undefined)) {
100
- throw new Error(DEV ? 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.' : 'V602');
101
- }
102
- assertExecutableRawHtmlTarget(element);
103
- return html;
66
+ if (value === null || value === void 0) return void 0;
67
+ assertRawHtmlPropTarget(element);
68
+ if (typeof value !== "object" || !("__html" in value)) throw new Error(DEV ? "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information." : "V601");
69
+ const html = value["__html"];
70
+ if (html === null || html === void 0) return html;
71
+ if (children.some((child) => child !== null && child !== void 0)) throw new Error(DEV ? "Can only set one of `children` or `props.dangerouslySetInnerHTML`." : "V602");
72
+ assertExecutableRawHtmlTarget(element);
73
+ return html;
104
74
  }
105
75
  function assertRawHtmlPropTarget(element) {
106
- const tag = element.localName;
107
- if (isVoidHtmlElement(tag)) {
108
- throw new Error(DEV
109
- ? `${tag} is a void element tag and must neither have \`children\` nor use \`dangerouslySetInnerHTML\`.`
110
- : 'V603');
111
- }
112
- if (tag === 'textarea') {
113
- throw new Error(DEV ? '`dangerouslySetInnerHTML` does not make sense on <textarea>.' : 'V604');
114
- }
76
+ const tag = element.localName;
77
+ if (isVoidHtmlElement(tag)) throw new Error(DEV ? `${tag} is a void element tag and must neither have \`children\` nor use \`dangerouslySetInnerHTML\`.` : "V603");
78
+ if (tag === "textarea") throw new Error(DEV ? "`dangerouslySetInnerHTML` does not make sense on <textarea>." : "V604");
115
79
  }
116
80
  function assertExecutableRawHtmlTarget(element) {
117
- const tag = element.localName;
118
- if (tag === 'script' && isExecutableScript(element)) {
119
- throw new Error(DEV
120
- ? 'dangerouslySetInnerHTML on an executable <script> is unsupported because direct-created scripts execute when connected; use a non-executable data MIME type'
121
- : 'V605');
122
- }
81
+ if (element.localName === "script" && isExecutableScript(element)) throw new Error(DEV ? "dangerouslySetInnerHTML on an executable <script> is unsupported because direct-created scripts execute when connected; use a non-executable data MIME type" : "V605");
123
82
  }
124
83
  function isVoidHtmlElement(tag) {
125
- return (tag === 'area' ||
126
- tag === 'base' ||
127
- tag === 'br' ||
128
- tag === 'col' ||
129
- tag === 'embed' ||
130
- tag === 'hr' ||
131
- tag === 'img' ||
132
- tag === 'input' ||
133
- tag === 'keygen' ||
134
- tag === 'link' ||
135
- tag === 'menuitem' ||
136
- tag === 'meta' ||
137
- tag === 'param' ||
138
- tag === 'source' ||
139
- tag === 'track' ||
140
- tag === 'wbr');
84
+ return tag === "area" || tag === "base" || tag === "br" || tag === "col" || tag === "embed" || tag === "hr" || tag === "img" || tag === "input" || tag === "keygen" || tag === "link" || tag === "menuitem" || tag === "meta" || tag === "param" || tag === "source" || tag === "track" || tag === "wbr";
141
85
  }
142
86
  function isExecutableScript(element) {
143
- const type = element.type.trim().toLowerCase().split(';', 1)[0] ?? '';
144
- if (type === '' || type === 'module' || type === 'importmap' || type === 'speculationrules') {
145
- return true;
146
- }
147
- return (/^(?:application|text)\/(?:x-)?(?:java|ecma)script(?:1\.[0-5])?$/.test(type) ||
148
- type === 'text/jscript' ||
149
- type === 'text/livescript');
87
+ const type = element.type.trim().toLowerCase().split(";", 1)[0] ?? "";
88
+ if (type === "" || type === "module" || type === "importmap" || type === "speculationrules") return true;
89
+ return /^(?:application|text)\/(?:x-)?(?:java|ecma)script(?:1\.[0-5])?$/.test(type) || type === "text/jscript" || type === "text/livescript";
150
90
  }
151
91
  function parseRawHtml(element, html) {
152
- const stagingDocument = element.ownerDocument.implementation.createHTMLDocument();
153
- const staging = element.localName === 'noscript'
154
- ? element.cloneNode(false)
155
- : stagingDocument.createElement(element.localName.includes('-') ? 'div' : element.localName);
156
- Reflect.set(staging, 'innerHTML', html);
157
- const fragment = staging.ownerDocument.createDocumentFragment();
158
- fragment.append(...rawHtmlContainer(staging).childNodes);
159
- return fragment;
92
+ const stagingDocument = element.ownerDocument.implementation.createHTMLDocument();
93
+ const staging = element.localName === "noscript" ? element.cloneNode(false) : stagingDocument.createElement(element.localName.includes("-") ? "div" : element.localName);
94
+ Reflect.set(staging, "innerHTML", html);
95
+ const fragment = staging.ownerDocument.createDocumentFragment();
96
+ fragment.append(...rawHtmlContainer(staging).childNodes);
97
+ return fragment;
160
98
  }
161
99
  function rawHtmlContainer(element) {
162
- return element instanceof HTMLTemplateElement ? element.content : element;
100
+ return element instanceof HTMLTemplateElement ? element.content : element;
163
101
  }
164
102
  function adoptRawHtml(element, staged) {
165
- if (staged.ownerDocument === element.ownerDocument)
166
- return staged;
167
- const adopted = element.ownerDocument.createDocumentFragment();
168
- adopted.append(...staged.childNodes);
169
- element.ownerDocument.defaultView?.customElements.upgrade(adopted);
170
- return adopted;
103
+ if (staged.ownerDocument === element.ownerDocument) return staged;
104
+ const adopted = element.ownerDocument.createDocumentFragment();
105
+ adopted.append(...staged.childNodes);
106
+ element.ownerDocument.defaultView?.customElements.upgrade(adopted);
107
+ return adopted;
171
108
  }
109
+ //#endregion
110
+ export { mountRawHtmlProp, validateRawHtmlRelatedProp };
111
+
172
112
  //# sourceMappingURL=raw-html.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"raw-html.js","sourceRoot":"","sources":["../src/raw-html.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"raw-html.js","names":[],"sources":["../src/raw-html.ts"],"mappings":"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"}
package/dist/ref.d.ts CHANGED
@@ -1,6 +1,11 @@
1
- export interface MutableRef<T> {
2
- current: T;
1
+ //#region src/ref.d.ts
2
+ interface MutableRef<T> {
3
+ current: T;
3
4
  }
5
+ /** Creates the plain ref object used by dependency initialization outside component hooks. */
6
+ declare function createRef<T>(): MutableRef<T | null>;
4
7
  /** Creates the stable ref cell captured by a component's one-time execution. */
5
- export declare function useRef<T>(initialValue: T): MutableRef<T>;
8
+ declare function useRef<T>(initialValue: T): MutableRef<T>;
9
+ //#endregion
10
+ export { MutableRef, createRef, useRef };
6
11
  //# sourceMappingURL=ref.d.ts.map
package/dist/ref.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../src/ref.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAA;CACX;AAED,gFAAgF;AAChF,wBAAgB,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAExD"}
1
+ {"version":3,"file":"ref.d.ts","names":[],"sources":["../src/ref.ts"],"mappings":";UAAiB,WAAW;EAC1B,SAAS;;;iBAIK,UAAU,MAAM,WAAW;;iBAK3B,OAAO,GAAG,cAAc,IAAI,WAAW"}
package/dist/ref.js CHANGED
@@ -1,5 +1,13 @@
1
+ //#region src/ref.ts
2
+ /** Creates the plain ref object used by dependency initialization outside component hooks. */
3
+ function createRef() {
4
+ return { current: null };
5
+ }
1
6
  /** Creates the stable ref cell captured by a component's one-time execution. */
2
- export function useRef(initialValue) {
3
- return { current: initialValue };
7
+ function useRef(initialValue) {
8
+ return { current: initialValue };
4
9
  }
10
+ //#endregion
11
+ export { createRef, useRef };
12
+
5
13
  //# sourceMappingURL=ref.js.map
package/dist/ref.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ref.js","sourceRoot":"","sources":["../src/ref.ts"],"names":[],"mappings":"AAIA,gFAAgF;AAChF,MAAM,UAAU,MAAM,CAAI,YAAe;IACvC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAA;AAClC,CAAC"}
1
+ {"version":3,"file":"ref.js","names":[],"sources":["../src/ref.ts"],"mappings":";;AAKA,SAAgB,YAAqC;CACnD,OAAO,EAAE,SAAS,KAAK;AACzB;;AAGA,SAAgB,OAAU,cAAgC;CACxD,OAAO,EAAE,SAAS,aAAa;AACjC"}
@@ -1,10 +1,28 @@
1
- export declare const RENDERABLE: unique symbol;
2
- export interface RenderableProtocol {
3
- readonly [RENDERABLE]: {
4
- readonly input: unknown;
5
- readonly construct: (input: never) => unknown;
6
- };
1
+ //#region src/renderable-protocol.d.ts
2
+ declare const RENDERABLE: unique symbol;
3
+ interface RenderableProtocol {
4
+ readonly [RENDERABLE]: {
5
+ readonly identity: unknown;
6
+ readonly input: unknown;
7
+ readonly reconcile: boolean;
8
+ readonly construct: (input: never) => unknown;
9
+ };
7
10
  }
8
- export declare function isRenderableProtocol(value: unknown): value is RenderableProtocol;
9
- export declare function materializeRenderable(value: RenderableProtocol): unknown;
11
+ /**
12
+ * Cloning a renderable pulls in the element-construction module, which most
13
+ * compiled apps never touch. The renderable module registers its clone the
14
+ * first time an element capability is created, so `jsx` can reach it without
15
+ * importing it, and bundles that never build elements leave it out.
16
+ */
17
+ type RenderableClone = (value: RenderableProtocol, overrides: Record<string, unknown>) => unknown;
18
+ declare function installRenderableClone(clone: RenderableClone): void;
19
+ declare function renderableCloneHandler(): RenderableClone | undefined;
20
+ declare function isRenderableProtocol(value: unknown): value is RenderableProtocol;
21
+ declare function materializeRenderable(value: RenderableProtocol): unknown;
22
+ declare function materializeRenderableWithInput(value: RenderableProtocol, input: unknown): unknown;
23
+ declare function renderableIdentity(value: RenderableProtocol): unknown;
24
+ declare function canReconcileRenderable(value: RenderableProtocol): boolean;
25
+ declare function renderablePropsSnapshot(value: RenderableProtocol): Record<PropertyKey, unknown>;
26
+ //#endregion
27
+ export { RENDERABLE, RenderableClone, RenderableProtocol, canReconcileRenderable, installRenderableClone, isRenderableProtocol, materializeRenderable, materializeRenderableWithInput, renderableCloneHandler, renderableIdentity, renderablePropsSnapshot };
10
28
  //# sourceMappingURL=renderable-protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderable-protocol.d.ts","sourceRoot":"","sources":["../src/renderable-protocol.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,eAAqC,CAAA;AAE5D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE;QACrB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;QACvB,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAA;KAC9C,CAAA;CACF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAOhF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAGxE"}
1
+ {"version":3,"file":"renderable-protocol.d.ts","names":[],"sources":["../src/renderable-protocol.ts"],"mappings":";cAAa;UAEI;YACL;aACC;aACA;aACA;aACA,YAAY;;;;;;;;;KAUb,mBACV,OAAO,oBACP,WAAW;iBAKG,uBAAuB,OAAO;iBAI9B,0BAA0B;iBAI1B,qBAAqB,iBAAiB,SAAS;iBAS/C,sBAAsB,OAAO;iBAK7B,+BAA+B,OAAO,oBAAoB;iBAI1D,mBAAmB,OAAO;iBAI1B,uBAAuB,OAAO;iBAI9B,wBAAwB,OAAO,qBAAqB,OAAO"}
@@ -1,12 +1,33 @@
1
- export const RENDERABLE = Symbol.for('vidact.v1.Renderable');
2
- export function isRenderableProtocol(value) {
3
- return (typeof value === 'object' &&
4
- value !== null &&
5
- Object.hasOwn(value, RENDERABLE) &&
6
- typeof value[RENDERABLE]?.construct === 'function');
1
+ //#region src/renderable-protocol.ts
2
+ const RENDERABLE = Symbol.for("vidact.v1.Renderable");
3
+ let renderableClone;
4
+ function installRenderableClone(clone) {
5
+ renderableClone = clone;
7
6
  }
8
- export function materializeRenderable(value) {
9
- const internals = value[RENDERABLE];
10
- return internals.construct(internals.input);
7
+ function renderableCloneHandler() {
8
+ return renderableClone;
11
9
  }
10
+ function isRenderableProtocol(value) {
11
+ return typeof value === "object" && value !== null && Object.hasOwn(value, RENDERABLE) && typeof value[RENDERABLE]?.construct === "function";
12
+ }
13
+ function materializeRenderable(value) {
14
+ const internals = value[RENDERABLE];
15
+ return internals.construct(internals.input);
16
+ }
17
+ function materializeRenderableWithInput(value, input) {
18
+ return value[RENDERABLE].construct(input);
19
+ }
20
+ function renderableIdentity(value) {
21
+ return value[RENDERABLE].identity;
22
+ }
23
+ function canReconcileRenderable(value) {
24
+ return value[RENDERABLE].reconcile;
25
+ }
26
+ function renderablePropsSnapshot(value) {
27
+ const props = value.props;
28
+ return Object.fromEntries(Reflect.ownKeys(props).map((name) => [name, Reflect.get(props, name)]));
29
+ }
30
+ //#endregion
31
+ export { RENDERABLE, canReconcileRenderable, installRenderableClone, isRenderableProtocol, materializeRenderable, materializeRenderableWithInput, renderableCloneHandler, renderableIdentity, renderablePropsSnapshot };
32
+
12
33
  //# sourceMappingURL=renderable-protocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderable-protocol.js","sourceRoot":"","sources":["../src/renderable-protocol.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;AAS5D,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC;QAChC,OAAQ,KAA4B,CAAC,UAAU,CAAC,EAAE,SAAS,KAAK,UAAU,CAC3E,CAAA;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAyB;IAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,CAAA;IACnC,OAAO,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,KAAc,CAAC,CAAA;AACtD,CAAC"}
1
+ {"version":3,"file":"renderable-protocol.js","names":[],"sources":["../src/renderable-protocol.ts"],"mappings":";AAAA,MAAa,aAAa,OAAO,IAAI,sBAAsB;AAsB3D,IAAI;AAEJ,SAAgB,uBAAuB,OAA8B;CACnE,kBAAkB;AACpB;AAEA,SAAgB,yBAAsD;CACpE,OAAO;AACT;AAEA,SAAgB,qBAAqB,OAA6C;CAChF,OACE,OAAO,UAAU,YACjB,UAAU,QACV,OAAO,OAAO,OAAO,UAAU,KAC/B,OAAQ,MAA6B,WAAW,EAAE,cAAc;AAEpE;AAEA,SAAgB,sBAAsB,OAAoC;CACxE,MAAM,YAAY,MAAM;CACxB,OAAO,UAAU,UAAU,UAAU,KAAc;AACrD;AAEA,SAAgB,+BAA+B,OAA2B,OAAyB;CACjG,OAAO,MAAM,WAAW,CAAC,UAAU,KAAc;AACnD;AAEA,SAAgB,mBAAmB,OAAoC;CACrE,OAAO,MAAM,WAAW,CAAC;AAC3B;AAEA,SAAgB,uBAAuB,OAAoC;CACzE,OAAO,MAAM,WAAW,CAAC;AAC3B;AAEA,SAAgB,wBAAwB,OAAyD;CAC/F,MAAM,QAAS,MACZ;CACH,OAAO,OAAO,YAAY,QAAQ,QAAQ,KAAK,CAAC,CAAC,KAAK,SAAS,CAAC,MAAM,QAAQ,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC;AAClG"}
@@ -1,27 +1,32 @@
1
- import type { CompiledBinding, CompiledRenderValue } from './compiled/types.js';
2
- import { Fragment, type DirectComponent } from './direct-dom.js';
3
- import { RENDERABLE } from './renderable-protocol.js';
1
+ import { RENDERABLE } from "./renderable-protocol.js";
2
+ import { CompiledBinding, CompiledRenderValue } from "./compiled/types.js";
3
+ import { DirectComponent, Fragment } from "./direct-dom.js";
4
+ //#region src/renderable.d.ts
4
5
  type Props = Record<string, unknown>;
5
- export type RenderablePropsInput = Props | CompiledBinding<Props>;
6
+ type RenderablePropsInput = Props | CompiledBinding<Props>;
6
7
  type RenderableInternals = {
7
- readonly input: RenderablePropsInput;
8
- readonly construct: (input: RenderablePropsInput) => CompiledRenderValue;
8
+ readonly identity: unknown;
9
+ readonly input: RenderablePropsInput;
10
+ readonly reconcile: boolean;
11
+ readonly construct: (input: RenderablePropsInput) => CompiledRenderValue;
9
12
  };
10
- export interface CompiledRenderable {
11
- readonly props: Props;
12
- readonly [RENDERABLE]: RenderableInternals;
13
+ interface CompiledRenderable {
14
+ readonly props: Props;
15
+ readonly [RENDERABLE]: RenderableInternals;
13
16
  }
14
- export declare function createRenderable(input: RenderablePropsInput, construct: (input: RenderablePropsInput) => CompiledRenderValue): CompiledRenderable;
15
- export declare function isRenderable(value: unknown): value is CompiledRenderable;
16
- export declare function createReactElement(type: string | typeof Fragment | DirectComponent | CompiledRenderable, props: Props | null, ...children: CompiledRenderValue[]): CompiledRenderable;
17
- export declare function renderableToArray(value: unknown): [CompiledRenderable];
18
- export declare function renderableMarker(value: unknown): undefined;
19
- export declare function cloneRenderable(value: unknown, overrides?: RenderablePropsInput): CompiledRenderValue;
20
- export declare function cloneRenderableComponent(props: Record<string, unknown>): CompiledRenderValue;
21
- export declare function renderableProps(input: RenderablePropsInput): Record<string, unknown>;
22
- export declare function renderableChildren(input: RenderablePropsInput): CompiledRenderValue;
23
- export declare function renderableRef(input: RenderablePropsInput): unknown;
24
- export declare function forwardedRef(props: Record<string, unknown>): unknown;
25
- export declare function dynamicIntrinsicComponent(props: Record<string, unknown>): CompiledRenderValue;
26
- export {};
17
+ declare function createRenderable(input: RenderablePropsInput, construct: (input: RenderablePropsInput) => CompiledRenderValue, identity?: unknown, reconcile?: boolean): CompiledRenderable;
18
+ declare function isRenderable(value: unknown): value is CompiledRenderable;
19
+ declare function createReactElement(type: string | typeof Fragment | DirectComponent | CompiledRenderable, props: Props | null, ...children: CompiledRenderValue[]): CompiledRenderable;
20
+ declare function renderableToArray(value: unknown): [CompiledRenderable];
21
+ declare function renderableMarker(value: unknown): undefined;
22
+ declare function cloneRenderable(value: unknown, overrides?: RenderablePropsInput | null, childrenOverride?: CompiledRenderValue | CompiledBinding<CompiledRenderValue>): CompiledRenderValue;
23
+ declare function cloneRenderableComponent(props: Record<string, unknown>): CompiledRenderValue;
24
+ declare function keyedFragmentComponent(props: Record<string, unknown>): CompiledRenderValue;
25
+ declare function renderableProps(input: RenderablePropsInput): Record<string, unknown>;
26
+ declare function renderableChildren(input: RenderablePropsInput): CompiledRenderValue;
27
+ declare function renderableRef(input: RenderablePropsInput): unknown;
28
+ declare function forwardedRef(props: Record<string, unknown>): unknown;
29
+ declare function dynamicIntrinsicComponent(props: Record<string, unknown>): CompiledRenderValue;
30
+ //#endregion
31
+ export { CompiledRenderable, RenderablePropsInput, cloneRenderable, cloneRenderableComponent, createReactElement, createRenderable, dynamicIntrinsicComponent, forwardedRef, isRenderable, keyedFragmentComponent, renderableChildren, renderableMarker, renderableProps, renderableRef, renderableToArray };
27
32
  //# sourceMappingURL=renderable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderable.d.ts","sourceRoot":"","sources":["../src/renderable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAiB,MAAM,qBAAqB,CAAA;AAC9F,OAAO,EAAE,QAAQ,EAAK,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACnE,OAAO,EAAwB,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAQ3E,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AACpC,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;AAEjE,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAA;IACpC,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,mBAAmB,CAAA;CACzE,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAA;CAC3C;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,oBAAoB,EAC3B,SAAS,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,mBAAmB,GAC9D,kBAAkB,CAWpB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAExE;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,GAAG,OAAO,QAAQ,GAAG,eAAe,GAAG,kBAAkB,EACrE,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,GAAG,QAAQ,EAAE,mBAAmB,EAAE,GACjC,kBAAkB,CAapB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,kBAAkB,CAAC,CAOtE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAO1D;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,EACd,SAAS,CAAC,EAAE,oBAAoB,GAC/B,mBAAmB,CAMrB;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB,CAG5F;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKpF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,GAAG,mBAAmB,CAEnF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAElE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAEpE;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB,CAO7F"}
1
+ {"version":3,"file":"renderable.d.ts","names":[],"sources":["../src/renderable.ts"],"mappings":";;;;KAgBK,QAAQ;KACD,uBAAuB,QAAQ,gBAAgB;KAEtD;WACM;WACA,OAAO;WACP;WACA,YAAY,OAAO,yBAAyB;;UAGtC;WACN,OAAO;YACN,aAAa;;iBAGT,iBACd,OAAO,sBACP,YAAY,OAAO,yBAAyB,qBAC5C,oBACA,sBACC;iBAca,aAAa,iBAAiB,SAAS;iBAIvC,mBACd,sBAAsB,WAAW,kBAAkB,oBACnD,OAAO,iBACJ,UAAU,wBACZ;iBAsBa,kBAAkB,kBAAkB;iBASpC,iBAAiB;iBASjB,gBACd,gBACA,YAAY,6BACZ,mBAAmB,sBAAsB,gBAAgB,uBACxD;iBAea,yBAAyB,OAAO,0BAA0B;iBAY1D,uBAAuB,OAAO,0BAA0B;iBAIxD,gBAAgB,OAAO,uBAAuB;iBAW9C,mBAAmB,OAAO,uBAAuB;iBAIjD,cAAc,OAAO;iBAIrB,aAAa,OAAO;iBAIpB,0BAA0B,OAAO,0BAA0B"}