@fluixi/dom 1.0.0-alpha.83 → 1.0.0-alpha.85

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 (182) hide show
  1. package/dist/cdn/dom-client.cjs +1427 -1
  2. package/dist/cdn/dom-client.d.ts +2 -2
  3. package/dist/cdn/dom-client.global.js +2 -1
  4. package/dist/cdn/dom-client.js +3 -3
  5. package/dist/cdn/dom-client.mjs +1430 -1
  6. package/dist/cdn/dom.cjs +3127 -1
  7. package/dist/cdn/dom.d.ts +2 -2
  8. package/dist/cdn/dom.global.js +2 -1
  9. package/dist/cdn/dom.js +4 -4
  10. package/dist/cdn/dom.mjs +3133 -1
  11. package/dist/index.cjs +3155 -1
  12. package/dist/index.js +2 -2
  13. package/dist/index.mjs +3149 -1
  14. package/dist/lib/component/index.cjs +128 -1
  15. package/dist/lib/component/index.mjs +105 -1
  16. package/dist/lib/component/modifiers.cjs +126 -1
  17. package/dist/lib/component/modifiers.d.ts +12 -0
  18. package/dist/lib/component/modifiers.d.ts.map +1 -1
  19. package/dist/lib/component/modifiers.js +12 -84
  20. package/dist/lib/component/modifiers.mjs +105 -1
  21. package/dist/lib/dom/delegate.cjs +60 -1
  22. package/dist/lib/dom/delegate.js +1 -1
  23. package/dist/lib/dom/delegate.mjs +39 -1
  24. package/dist/lib/dom/dynamic-element.cjs +949 -1
  25. package/dist/lib/dom/dynamic-element.d.ts +3 -3
  26. package/dist/lib/dom/dynamic-element.js +2 -2
  27. package/dist/lib/dom/dynamic-element.mjs +928 -1
  28. package/dist/lib/dom/hydration-state.cjs +93 -1
  29. package/dist/lib/dom/hydration-state.d.ts +1 -1
  30. package/dist/lib/dom/hydration-state.js +1 -1
  31. package/dist/lib/dom/hydration-state.mjs +72 -1
  32. package/dist/lib/dom/hydration.cjs +685 -1
  33. package/dist/lib/dom/hydration.js +8 -8
  34. package/dist/lib/dom/hydration.mjs +664 -1
  35. package/dist/lib/dom/index.cjs +2040 -1
  36. package/dist/lib/dom/index.js +1 -1
  37. package/dist/lib/dom/index.mjs +2020 -1
  38. package/dist/lib/dom/integration.cjs +71 -1
  39. package/dist/lib/dom/integration.js +3 -3
  40. package/dist/lib/dom/integration.mjs +51 -1
  41. package/dist/lib/dom/island.cjs +790 -1
  42. package/dist/lib/dom/island.d.ts +1 -1
  43. package/dist/lib/dom/island.js +11 -11
  44. package/dist/lib/dom/island.mjs +769 -1
  45. package/dist/lib/dom/runtime.cjs +1432 -1
  46. package/dist/lib/dom/runtime.d.ts +60 -17
  47. package/dist/lib/dom/runtime.d.ts.map +1 -1
  48. package/dist/lib/dom/runtime.js +122 -79
  49. package/dist/lib/dom/runtime.mjs +1414 -1
  50. package/dist/lib/dom/server/fx-data.cjs +53 -1
  51. package/dist/lib/dom/server/fx-data.d.ts +5 -5
  52. package/dist/lib/dom/server/fx-data.js +6 -6
  53. package/dist/lib/dom/server/fx-data.mjs +32 -1
  54. package/dist/lib/dom/server/host.cjs +66 -1
  55. package/dist/lib/dom/server/host.d.ts +6 -0
  56. package/dist/lib/dom/server/host.d.ts.map +1 -1
  57. package/dist/lib/dom/server/host.js +7 -1
  58. package/dist/lib/dom/server/host.mjs +45 -1
  59. package/dist/lib/dom/server/index.cjs +759 -1
  60. package/dist/lib/dom/server/index.d.ts +1 -1
  61. package/dist/lib/dom/server/index.js +1 -1
  62. package/dist/lib/dom/server/index.mjs +743 -1
  63. package/dist/lib/dom/server/nodes.cjs +302 -1
  64. package/dist/lib/dom/server/nodes.d.ts +2 -2
  65. package/dist/lib/dom/server/nodes.d.ts.map +1 -1
  66. package/dist/lib/dom/server/nodes.js +4 -4
  67. package/dist/lib/dom/server/nodes.mjs +279 -1
  68. package/dist/lib/dom/server/parse-template.cjs +395 -1
  69. package/dist/lib/dom/server/parse-template.d.ts +1 -1
  70. package/dist/lib/dom/server/parse-template.js +4 -4
  71. package/dist/lib/dom/server/parse-template.mjs +372 -1
  72. package/dist/lib/dom/server/render.cjs +691 -1
  73. package/dist/lib/dom/server/render.d.ts +9 -1
  74. package/dist/lib/dom/server/render.d.ts.map +1 -1
  75. package/dist/lib/dom/server/render.js +23 -15
  76. package/dist/lib/dom/server/render.mjs +677 -1
  77. package/dist/lib/dom/server/request-context.cjs +110 -1
  78. package/dist/lib/dom/server/request-context.d.ts +29 -9
  79. package/dist/lib/dom/server/request-context.d.ts.map +1 -1
  80. package/dist/lib/dom/server/request-context.js +28 -8
  81. package/dist/lib/dom/server/request-context.mjs +89 -1
  82. package/dist/lib/dom/server/serialize.cjs +187 -1
  83. package/dist/lib/dom/server/serialize.js +3 -3
  84. package/dist/lib/dom/server/serialize.mjs +164 -1
  85. package/dist/lib/dom/server-renderer.cjs +760 -1
  86. package/dist/lib/dom/server-renderer.js +1 -1
  87. package/dist/lib/dom/server-renderer.mjs +745 -1
  88. package/dist/lib/dom/types.cjs +18 -1
  89. package/dist/lib/dom/utils.cjs +381 -1
  90. package/dist/lib/dom/utils.d.ts +1 -88
  91. package/dist/lib/dom/utils.d.ts.map +1 -1
  92. package/dist/lib/dom/utils.js +2 -99
  93. package/dist/lib/dom/utils.mjs +361 -1
  94. package/dist/lib/dom/versions.cjs +60 -1
  95. package/dist/lib/dom/versions.d.ts +3 -3
  96. package/dist/lib/dom/versions.d.ts.map +1 -1
  97. package/dist/lib/dom/versions.js +17 -5
  98. package/dist/lib/dom/versions.mjs +37 -1
  99. package/dist/lib/element/attributes.cjs +19 -1
  100. package/dist/lib/element/attributes.d.ts +7 -7
  101. package/dist/lib/element/attributes.js +1 -1
  102. package/dist/lib/element/attributes.mjs +1 -0
  103. package/dist/lib/element/index.cjs +19 -1
  104. package/dist/lib/element/index.mjs +1 -0
  105. package/dist/lib/element/types.cjs +18 -1
  106. package/dist/lib/element/types.d.ts +4 -5
  107. package/dist/lib/element/types.d.ts.map +1 -1
  108. package/dist/lib/element/types.js +0 -1
  109. package/dist/lib/flow/class-map.cjs +38 -1
  110. package/dist/lib/flow/class-map.d.ts +3 -3
  111. package/dist/lib/flow/class-map.js +2 -2
  112. package/dist/lib/flow/class-map.mjs +17 -1
  113. package/dist/lib/flow/client-only.cjs +57 -1
  114. package/dist/lib/flow/client-only.d.ts +4 -4
  115. package/dist/lib/flow/client-only.js +3 -3
  116. package/dist/lib/flow/client-only.mjs +36 -1
  117. package/dist/lib/flow/dynamic.cjs +53 -1
  118. package/dist/lib/flow/dynamic.d.ts +2 -2
  119. package/dist/lib/flow/dynamic.js +3 -3
  120. package/dist/lib/flow/dynamic.mjs +32 -1
  121. package/dist/lib/flow/error-boundary.cjs +43 -1
  122. package/dist/lib/flow/error-boundary.d.ts +2 -2
  123. package/dist/lib/flow/error-boundary.js +3 -3
  124. package/dist/lib/flow/error-boundary.mjs +22 -1
  125. package/dist/lib/flow/for.cjs +66 -1
  126. package/dist/lib/flow/for.d.ts +9 -9
  127. package/dist/lib/flow/for.d.ts.map +1 -1
  128. package/dist/lib/flow/for.js +2 -2
  129. package/dist/lib/flow/for.mjs +45 -1
  130. package/dist/lib/flow/index-flow.cjs +67 -1
  131. package/dist/lib/flow/index-flow.d.ts +5 -5
  132. package/dist/lib/flow/index-flow.js +4 -4
  133. package/dist/lib/flow/index-flow.mjs +46 -1
  134. package/dist/lib/flow/index.cjs +805 -1
  135. package/dist/lib/flow/index.mjs +792 -1
  136. package/dist/lib/flow/portal.cjs +538 -1
  137. package/dist/lib/flow/portal.mjs +519 -1
  138. package/dist/lib/flow/show.cjs +81 -1
  139. package/dist/lib/flow/show.d.ts +1 -1
  140. package/dist/lib/flow/show.d.ts.map +1 -1
  141. package/dist/lib/flow/show.js +4 -115
  142. package/dist/lib/flow/show.mjs +67 -1
  143. package/dist/lib/flow/style-map.cjs +43 -1
  144. package/dist/lib/flow/style-map.d.ts +3 -3
  145. package/dist/lib/flow/style-map.js +3 -3
  146. package/dist/lib/flow/style-map.mjs +22 -1
  147. package/dist/lib/flow/switch.cjs +91 -1
  148. package/dist/lib/flow/switch.d.ts +3 -3
  149. package/dist/lib/flow/switch.d.ts.map +1 -1
  150. package/dist/lib/flow/switch.js +6 -6
  151. package/dist/lib/flow/switch.mjs +70 -1
  152. package/dist/lib/flow/utils.cjs +44 -1
  153. package/dist/lib/flow/utils.d.ts +1 -1
  154. package/dist/lib/flow/utils.js +1 -1
  155. package/dist/lib/flow/utils.mjs +23 -1
  156. package/dist/lib/html.cjs +32 -1
  157. package/dist/lib/html.d.ts +6 -6
  158. package/dist/lib/html.js +5 -5
  159. package/dist/lib/html.mjs +11 -1
  160. package/dist/lib/index.cjs +3104 -1
  161. package/dist/lib/index.d.ts +0 -1
  162. package/dist/lib/index.d.ts.map +1 -1
  163. package/dist/lib/index.js +2 -3
  164. package/dist/lib/index.mjs +3097 -1
  165. package/dist/lib/shared/types.cjs +18 -1
  166. package/dist/lib/shared/types.d.ts +8 -8
  167. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  168. package/dist/version.generated.cjs +26 -1
  169. package/dist/version.generated.d.ts +1 -1
  170. package/dist/version.generated.js +2 -2
  171. package/dist/version.generated.mjs +5 -1
  172. package/package.json +7 -6
  173. package/dist/lib/jsx/control-flow/flow.cjs +0 -1
  174. package/dist/lib/jsx/control-flow/flow.d.ts +0 -2
  175. package/dist/lib/jsx/control-flow/flow.d.ts.map +0 -1
  176. package/dist/lib/jsx/control-flow/flow.js +0 -627
  177. package/dist/lib/jsx/control-flow/flow.mjs +0 -0
  178. package/dist/lib/jsx/control-flow/for-flow.cjs +0 -1
  179. package/dist/lib/jsx/control-flow/for-flow.d.ts +0 -2
  180. package/dist/lib/jsx/control-flow/for-flow.d.ts.map +0 -1
  181. package/dist/lib/jsx/control-flow/for-flow.js +0 -1
  182. package/dist/lib/jsx/control-flow/for-flow.mjs +0 -0
@@ -1 +1,53 @@
1
- "use strict";var u=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var _=Object.prototype.hasOwnProperty;var a=(e,n)=>{for(var t in n)u(e,t,{get:n[t],enumerable:!0})},l=(e,n,t,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of s(n))!_.call(e,r)&&r!==t&&u(e,r,{get:()=>n[r],enumerable:!(i=d(n,r))||i.enumerable});return e};var g=e=>l(u({},"__esModule",{value:!0}),e);var x={};a(x,{FX_DATA_ID:()=>c,escapeFxJson:()=>f,getServerData:()=>A,resetServerDataCache:()=>p});module.exports=g(x);var c="__FX_DATA__";function f(e){return e.replace(/[<>&\u2028\u2029]/g,n=>"\\u"+n.charCodeAt(0).toString(16).padStart(4,"0"))}var o;function p(){o=void 0}function A(){let e=globalThis.__FX_DATA__;if(e)return e;if(o!==void 0)return o;let n=null;if(typeof document<"u"){let t=document.getElementById(c)?.textContent;if(t)try{n=JSON.parse(t)}catch{n=null}}return o=n}
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/lib/dom/server/fx-data.ts
21
+ var fx_data_exports = {};
22
+ __export(fx_data_exports, {
23
+ FX_DATA_ID: () => FX_DATA_ID,
24
+ escapeFxJson: () => escapeFxJson,
25
+ getServerData: () => getServerData,
26
+ resetServerDataCache: () => resetServerDataCache
27
+ });
28
+ module.exports = __toCommonJS(fx_data_exports);
29
+ var FX_DATA_ID = "__FX_DATA__";
30
+ function escapeFxJson(json) {
31
+ return json.replace(/[<>&\u2028\u2029]/g, (c) => "\\u" + c.charCodeAt(0).toString(16).padStart(4, "0"));
32
+ }
33
+ var _scriptCache;
34
+ function resetServerDataCache() {
35
+ _scriptCache = void 0;
36
+ }
37
+ function getServerData() {
38
+ const g = globalThis.__FX_DATA__;
39
+ if (g) return g;
40
+ if (_scriptCache !== void 0) return _scriptCache;
41
+ let parsed = null;
42
+ if (typeof document !== "undefined") {
43
+ const text = document.getElementById(FX_DATA_ID)?.textContent;
44
+ if (text) {
45
+ try {
46
+ parsed = JSON.parse(text);
47
+ } catch {
48
+ parsed = null;
49
+ }
50
+ }
51
+ }
52
+ return _scriptCache = parsed;
53
+ }
@@ -1,15 +1,15 @@
1
1
  /**
2
- * The SSR data transport (`__FX_DATA__`) emission escaping + client reader.
2
+ * The SSR data transport (`__FX_DATA__`): emission escaping + client reader.
3
3
  *
4
4
  * The server collects resolved resource values + seeds (i18n locale, isomorphic state) and
5
5
  * embeds them in the page so the client hydrates without refetching. SECURITY MODEL:
6
6
  *
7
- * - It is NON-SECRET BY DESIGN it's in the page, readable by the user. Encrypting it buys
7
+ * - It is NON-SECRET BY DESIGN, it's in the page, readable by the user. Encrypting it buys
8
8
  * nothing (the client would need the key). Keep server-only fields OUT via setDataRedactor;
9
9
  * fetch truly sensitive data through a `"use server"` function instead. Don't obfuscate.
10
10
  *
11
11
  * - Emitted as a NON-EXECUTABLE `<script type="application/json">`, read via `JSON.parse` of
12
- * its `textContent`. So (a) a value can never execute as JS, and (b) it's CSP-friendly
12
+ * its `textContent`. So (a) a value can never execute as JS, and (b) it's CSP-friendly:
13
13
  * it works under a strict `script-src` that forbids inline executable scripts.
14
14
  *
15
15
  * - The JSON is escaped with the standard SSR-JSON set (`<`, `>`, `&`, U+2028, U+2029) so no
@@ -20,8 +20,8 @@
20
20
  export declare const FX_DATA_ID = "__FX_DATA__";
21
21
  /**
22
22
  * Escape a JSON string for safe embedding inside a `<script>` element.
23
- * `<`/`>` can't form `</script>`, `<!--` or `-->`; `&` no HTML-entity surprises;
24
- * U+2028/U+2029 JS line terminators that would break an inline-script read.
23
+ * `<`/`>` -> can't form `</script>`, `<!--` or `-->`; `&` -> no HTML-entity surprises;
24
+ * U+2028/U+2029 -> JS line terminators that would break an inline-script read.
25
25
  * JSON.parse decodes every `\uXXXX` back to the original character.
26
26
  */
27
27
  export declare function escapeFxJson(json: string): string;
@@ -1,15 +1,15 @@
1
1
  /**
2
- * The SSR data transport (`__FX_DATA__`) emission escaping + client reader.
2
+ * The SSR data transport (`__FX_DATA__`): emission escaping + client reader.
3
3
  *
4
4
  * The server collects resolved resource values + seeds (i18n locale, isomorphic state) and
5
5
  * embeds them in the page so the client hydrates without refetching. SECURITY MODEL:
6
6
  *
7
- * - It is NON-SECRET BY DESIGN it's in the page, readable by the user. Encrypting it buys
7
+ * - It is NON-SECRET BY DESIGN, it's in the page, readable by the user. Encrypting it buys
8
8
  * nothing (the client would need the key). Keep server-only fields OUT via setDataRedactor;
9
9
  * fetch truly sensitive data through a `"use server"` function instead. Don't obfuscate.
10
10
  *
11
11
  * - Emitted as a NON-EXECUTABLE `<script type="application/json">`, read via `JSON.parse` of
12
- * its `textContent`. So (a) a value can never execute as JS, and (b) it's CSP-friendly
12
+ * its `textContent`. So (a) a value can never execute as JS, and (b) it's CSP-friendly:
13
13
  * it works under a strict `script-src` that forbids inline executable scripts.
14
14
  *
15
15
  * - The JSON is escaped with the standard SSR-JSON set (`<`, `>`, `&`, U+2028, U+2029) so no
@@ -20,8 +20,8 @@
20
20
  export const FX_DATA_ID = '__FX_DATA__';
21
21
  /**
22
22
  * Escape a JSON string for safe embedding inside a `<script>` element.
23
- * `<`/`>` can't form `</script>`, `<!--` or `-->`; `&` no HTML-entity surprises;
24
- * U+2028/U+2029 JS line terminators that would break an inline-script read.
23
+ * `<`/`>` -> can't form `</script>`, `<!--` or `-->`; `&` -> no HTML-entity surprises;
24
+ * U+2028/U+2029 -> JS line terminators that would break an inline-script read.
25
25
  * JSON.parse decodes every `\uXXXX` back to the original character.
26
26
  */
27
27
  export function escapeFxJson(json) {
@@ -52,7 +52,7 @@ export function getServerData() {
52
52
  parsed = JSON.parse(text);
53
53
  }
54
54
  catch {
55
- parsed = null; // malformed transport behave as if not server-rendered (refetch)
55
+ parsed = null; // malformed transport -> behave as if not server-rendered (refetch)
56
56
  }
57
57
  }
58
58
  }
@@ -1 +1,32 @@
1
- var o="__FX_DATA__";function u(e){return e.replace(/[<>&\u2028\u2029]/g,n=>"\\u"+n.charCodeAt(0).toString(16).padStart(4,"0"))}var t;function i(){t=void 0}function c(){let e=globalThis.__FX_DATA__;if(e)return e;if(t!==void 0)return t;let n=null;if(typeof document<"u"){let r=document.getElementById(o)?.textContent;if(r)try{n=JSON.parse(r)}catch{n=null}}return t=n}export{o as FX_DATA_ID,u as escapeFxJson,c as getServerData,i as resetServerDataCache};
1
+ // src/lib/dom/server/fx-data.ts
2
+ var FX_DATA_ID = "__FX_DATA__";
3
+ function escapeFxJson(json) {
4
+ return json.replace(/[<>&\u2028\u2029]/g, (c) => "\\u" + c.charCodeAt(0).toString(16).padStart(4, "0"));
5
+ }
6
+ var _scriptCache;
7
+ function resetServerDataCache() {
8
+ _scriptCache = void 0;
9
+ }
10
+ function getServerData() {
11
+ const g = globalThis.__FX_DATA__;
12
+ if (g) return g;
13
+ if (_scriptCache !== void 0) return _scriptCache;
14
+ let parsed = null;
15
+ if (typeof document !== "undefined") {
16
+ const text = document.getElementById(FX_DATA_ID)?.textContent;
17
+ if (text) {
18
+ try {
19
+ parsed = JSON.parse(text);
20
+ } catch {
21
+ parsed = null;
22
+ }
23
+ }
24
+ }
25
+ return _scriptCache = parsed;
26
+ }
27
+ export {
28
+ FX_DATA_ID,
29
+ escapeFxJson,
30
+ getServerData,
31
+ resetServerDataCache
32
+ };
@@ -1 +1,66 @@
1
- "use strict";var i=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var f=(e,r)=>{for(var t in r)i(e,t,{get:r[t],enumerable:!0})},c=(e,r,t,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of d(r))!l.call(e,n)&&n!==t&&i(e,n,{get:()=>r[n],enumerable:!(a=u(r,n))||a.enumerable});return e};var y=e=>c(i({},"__esModule",{value:!0}),e);var g={};f(g,{SERVER_NODE:()=>s,getServerNodes:()=>b,isDomElement:()=>T,isDomNode:()=>N,isDomText:()=>E,isServer:()=>p,registerServerNodes:()=>x,setServerMode:()=>S});module.exports=y(g);var s=Symbol.for("fluixi.server-node"),m=Symbol.for("fluixi.dom.server-host"),v=globalThis,o=v[m]??={server:typeof document>"u",nodes:null};function p(){return o.server}function S(e){o.server=e}function x(e){o.nodes=e}function b(){if(!o.nodes)throw new Error("[fluixi] server render ran before @fluixi/dom/server loaded");return o.nodes}function N(e){return e!=null&&e[s]===!0?!0:typeof Node<"u"&&e instanceof Node}function T(e){return e!=null&&e[s]===!0?e.nodeType===1:typeof Element<"u"&&e instanceof Element}function E(e){return e!=null&&e[s]===!0?e.nodeType===3:typeof Text<"u"&&e instanceof Text}
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/lib/dom/server/host.ts
21
+ var host_exports = {};
22
+ __export(host_exports, {
23
+ SERVER_NODE: () => SERVER_NODE,
24
+ getServerNodes: () => getServerNodes,
25
+ isDomElement: () => isDomElement,
26
+ isDomNode: () => isDomNode,
27
+ isDomText: () => isDomText,
28
+ isServer: () => isServer,
29
+ registerServerNodes: () => registerServerNodes,
30
+ setServerMode: () => setServerMode
31
+ });
32
+ module.exports = __toCommonJS(host_exports);
33
+ var SERVER_NODE = /* @__PURE__ */ Symbol.for("fluixi.server-node");
34
+ var STATE = /* @__PURE__ */ Symbol.for("fluixi.dom.server-host");
35
+ var realm = globalThis;
36
+ var state = realm[STATE] ??= {
37
+ server: typeof document === "undefined",
38
+ nodes: null
39
+ };
40
+ function isServer() {
41
+ return state.server;
42
+ }
43
+ function setServerMode(on) {
44
+ state.server = on;
45
+ }
46
+ function registerServerNodes(factory) {
47
+ state.nodes = factory;
48
+ }
49
+ function getServerNodes() {
50
+ if (!state.nodes) {
51
+ throw new Error("[fluixi] server render ran before @fluixi/dom/server loaded");
52
+ }
53
+ return state.nodes;
54
+ }
55
+ function isDomNode(x) {
56
+ if (x != null && x[SERVER_NODE] === true) return true;
57
+ return typeof Node !== "undefined" && x instanceof Node;
58
+ }
59
+ function isDomElement(x) {
60
+ if (x != null && x[SERVER_NODE] === true) return x.nodeType === 1;
61
+ return typeof Element !== "undefined" && x instanceof Element;
62
+ }
63
+ function isDomText(x) {
64
+ if (x != null && x[SERVER_NODE] === true) return x.nodeType === 3;
65
+ return typeof Text !== "undefined" && x instanceof Text;
66
+ }
@@ -6,6 +6,12 @@ export declare const SERVER_NODE: unique symbol;
6
6
  * binding, and the two would disagree for the whole of a render.
7
7
  */
8
8
  export declare function isServer(): boolean;
9
+ /**
10
+ * Turn server mode on or off for this realm.
11
+ *
12
+ * `renderToString` owns this and restores the previous value, so it is rarely called
13
+ * directly. A test that needs to exercise a server path is the exception.
14
+ */
9
15
  export declare function setServerMode(on: boolean): void;
10
16
  export interface ServerNodeFactory {
11
17
  createElement(tag: string, isSVG: boolean): any;
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../../src/lib/dom/server/host.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,WAAW,EAAE,OAAO,MAAyC,CAAC;AAuB3E;;;;;GAKG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAE/C;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC;IAChD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;IAC/B,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;IAClC,0DAA0D;IAC1D,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;IAC7B,gFAAgF;IAChF,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC;CAClD;AAID,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAEpE;AAED,wBAAgB,cAAc,IAAI,iBAAiB,CAKlD;AAID,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,CAG3C;AACD,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,OAAO,CAGjD;AACD,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,CAG3C"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../../src/lib/dom/server/host.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,WAAW,EAAE,OAAO,MAAyC,CAAC;AAuB3E;;;;;GAKG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAE/C;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC;IAChD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;IAC/B,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;IAClC,0DAA0D;IAC1D,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;IAC7B,gFAAgF;IAChF,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC;CAClD;AAID,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAEpE;AAED,wBAAgB,cAAc,IAAI,iBAAiB,CAKlD;AAID,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,CAG3C;AACD,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,OAAO,CAGjD;AACD,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,CAG3C"}
@@ -1,5 +1,5 @@
1
1
  // The server seam the runtime imports from. Deliberately class-free so the
2
- // ServerNode classes in ./nodes.ts stay out of client bundles they get pulled
2
+ // ServerNode classes in ./nodes.ts stay out of client bundles, they get pulled
3
3
  // in (and registered) only when @fluixi/dom/server loads.
4
4
  // Stamped on every server node so the guards below can spot one without an
5
5
  // instanceof against the (unbundled) classes.
@@ -27,6 +27,12 @@ const state = (realm[STATE] ??= {
27
27
  export function isServer() {
28
28
  return state.server;
29
29
  }
30
+ /**
31
+ * Turn server mode on or off for this realm.
32
+ *
33
+ * `renderToString` owns this and restores the previous value, so it is rarely called
34
+ * directly. A test that needs to exercise a server path is the exception.
35
+ */
30
36
  export function setServerMode(on) {
31
37
  state.server = on;
32
38
  }
@@ -1 +1,45 @@
1
- var n=Symbol.for("fluixi.server-node"),o=Symbol.for("fluixi.dom.server-host"),t=globalThis,r=t[o]??={server:typeof document>"u",nodes:null};function s(){return r.server}function i(e){r.server=e}function a(e){r.nodes=e}function u(){if(!r.nodes)throw new Error("[fluixi] server render ran before @fluixi/dom/server loaded");return r.nodes}function d(e){return e!=null&&e[n]===!0?!0:typeof Node<"u"&&e instanceof Node}function l(e){return e!=null&&e[n]===!0?e.nodeType===1:typeof Element<"u"&&e instanceof Element}function f(e){return e!=null&&e[n]===!0?e.nodeType===3:typeof Text<"u"&&e instanceof Text}export{n as SERVER_NODE,u as getServerNodes,l as isDomElement,d as isDomNode,f as isDomText,s as isServer,a as registerServerNodes,i as setServerMode};
1
+ // src/lib/dom/server/host.ts
2
+ var SERVER_NODE = /* @__PURE__ */ Symbol.for("fluixi.server-node");
3
+ var STATE = /* @__PURE__ */ Symbol.for("fluixi.dom.server-host");
4
+ var realm = globalThis;
5
+ var state = realm[STATE] ??= {
6
+ server: typeof document === "undefined",
7
+ nodes: null
8
+ };
9
+ function isServer() {
10
+ return state.server;
11
+ }
12
+ function setServerMode(on) {
13
+ state.server = on;
14
+ }
15
+ function registerServerNodes(factory) {
16
+ state.nodes = factory;
17
+ }
18
+ function getServerNodes() {
19
+ if (!state.nodes) {
20
+ throw new Error("[fluixi] server render ran before @fluixi/dom/server loaded");
21
+ }
22
+ return state.nodes;
23
+ }
24
+ function isDomNode(x) {
25
+ if (x != null && x[SERVER_NODE] === true) return true;
26
+ return typeof Node !== "undefined" && x instanceof Node;
27
+ }
28
+ function isDomElement(x) {
29
+ if (x != null && x[SERVER_NODE] === true) return x.nodeType === 1;
30
+ return typeof Element !== "undefined" && x instanceof Element;
31
+ }
32
+ function isDomText(x) {
33
+ if (x != null && x[SERVER_NODE] === true) return x.nodeType === 3;
34
+ return typeof Text !== "undefined" && x instanceof Text;
35
+ }
36
+ export {
37
+ SERVER_NODE,
38
+ getServerNodes,
39
+ isDomElement,
40
+ isDomNode,
41
+ isDomText,
42
+ isServer,
43
+ registerServerNodes,
44
+ setServerMode
45
+ };