@ecopages/radiant 0.3.0-alpha.5 → 0.3.0-alpha.6

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 (57) hide show
  1. package/README.md +5 -3
  2. package/dist/context/context-consumer-bootstrap.js +2 -2
  3. package/dist/context/context-consumer-bootstrap.js.map +5 -5
  4. package/dist/context/context-consumer-runtime.js +2 -2
  5. package/dist/context/context-consumer-runtime.js.map +4 -4
  6. package/dist/context/context-provider.js +2 -2
  7. package/dist/context/context-provider.js.map +5 -5
  8. package/dist/context/decorators/consume-context.js +2 -2
  9. package/dist/context/decorators/consume-context.js.map +6 -6
  10. package/dist/context/decorators/context-selection-delivery.js +2 -2
  11. package/dist/context/decorators/context-selection-delivery.js.map +3 -3
  12. package/dist/context/decorators/context-selector.js +2 -2
  13. package/dist/context/decorators/context-selector.js.map +5 -5
  14. package/dist/context/decorators/legacy/consume-context.js +2 -2
  15. package/dist/context/decorators/legacy/consume-context.js.map +5 -5
  16. package/dist/context/decorators/legacy/context-selector-field.js +2 -2
  17. package/dist/context/decorators/legacy/context-selector-field.js.map +5 -5
  18. package/dist/context/decorators/legacy/context-selector.js +2 -2
  19. package/dist/context/decorators/legacy/context-selector.js.map +5 -5
  20. package/dist/context/decorators/legacy/provide-context.js +2 -2
  21. package/dist/context/decorators/legacy/provide-context.js.map +5 -5
  22. package/dist/context/decorators/on-context-update.js +2 -2
  23. package/dist/context/decorators/on-context-update.js.map +6 -6
  24. package/dist/context/decorators/provide-context.js +2 -2
  25. package/dist/context/decorators/provide-context.js.map +6 -6
  26. package/dist/context/decorators/standard/consume-context.js +2 -2
  27. package/dist/context/decorators/standard/consume-context.js.map +5 -5
  28. package/dist/context/decorators/standard/context-selector-field.js +2 -2
  29. package/dist/context/decorators/standard/context-selector-field.js.map +5 -5
  30. package/dist/context/decorators/standard/context-selector.js +2 -2
  31. package/dist/context/decorators/standard/context-selector.js.map +5 -5
  32. package/dist/context/decorators/standard/provide-context.js +2 -2
  33. package/dist/context/decorators/standard/provide-context.js.map +5 -5
  34. package/dist/context/index.d.ts +8 -0
  35. package/dist/context/index.js +3 -0
  36. package/dist/context/index.js.map +35 -0
  37. package/dist/core/radiant-component-ssr.js +2 -2
  38. package/dist/core/radiant-component-ssr.js.map +4 -4
  39. package/dist/core/radiant-element.js +2 -2
  40. package/dist/core/radiant-element.js.map +3 -3
  41. package/dist/core/ssr-preparation.js +2 -2
  42. package/dist/core/ssr-preparation.js.map +3 -3
  43. package/dist/decorators/legacy/query-slot.js +2 -2
  44. package/dist/decorators/legacy/query-slot.js.map +3 -3
  45. package/dist/decorators/query-slot.js +2 -2
  46. package/dist/decorators/query-slot.js.map +3 -3
  47. package/dist/index.d.ts +0 -9
  48. package/dist/index.js +2 -2
  49. package/dist/index.js.map +4 -31
  50. package/dist/server/radiant-component-ssr-runtime.js +2 -2
  51. package/dist/server/radiant-component-ssr-runtime.js.map +4 -4
  52. package/dist/server/render-component.js +2 -2
  53. package/dist/server/render-component.js.map +4 -4
  54. package/dist/server/render-controller.js +2 -2
  55. package/dist/server/render-controller.js.map +4 -4
  56. package/package.json +5 -1
  57. package/size-budget.json +2 -2
@@ -1,3 +1,3 @@
1
- var G=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(i,r)=>(typeof require<"u"?require:i)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var H=Symbol.for("@ecopages/radiant.component-ssr-runtime");function R(){return globalThis[H]}function $(t){globalThis[H]=t}function D(t){switch(t){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function U(t){switch(typeof t){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(t))return"array";if(Object.prototype.toString.call(t)==="[object Object]")return"object"}function X(t){switch(t){case Number:return 0;case String:return"";case Boolean:return!1;default:return null}}function A(t){try{return JSON.parse(t)}catch{throw TypeError("Invalid JSON string")}}var Y={array(t){let i=A(t);if(!Array.isArray(i))throw TypeError(`Expected an array but got a value of type "${typeof i}"`);return i},boolean(t){return!(t==="0"||String(t).toLowerCase()==="false")},number(t){return Number(t.replace(/_/g,""))},object(t){let i=JSON.parse(t);if(i===null||typeof i!=="object"||Array.isArray(i))throw TypeError(`expected value of type "object" but instead got value "${t}" of type "${U(i)}"`);return i},string(t){return t}},p={default:z,array:m,object:m};function m(t){return JSON.stringify(t)}function z(t){return`${t}`}function d(t,i){let r=D(i);if(!r)throw TypeError(`[radiant-element] Unknown type "${i}"`);return Y[r](t)}function j(t,i){let r=D(i);if(!r)throw TypeError(`[radiant-element] Unknown type "${i}"`);return(p[r]??p.default??z)(t)}function B(t){return typeof t==="boolean"}function K(t){return typeof t==="number"}function E(t){return typeof t==="string"}function N(t){return Array.isArray(t)}function M(t){return typeof t==="object"&&!Array.isArray(t)&&t!==null}function rt(t,i){switch(t){case Boolean:return B(i);case Number:return K(i);case String:return E(i);case Array:return N(i);case Object:return M(i);default:return!1}}var nt=(t,i,r,n)=>{if(i===Boolean){let s=t.getAttribute(r);if(s===null)return n;return s===""?!0:d(s,i)}let o=t.getAttribute(r);return o!==null?d(o,i):n??X(i)};var C=Symbol.for("@ecopages/radiant.ssr-context-provider-resolver");function W(){return globalThis}function I(t){W()[C]=t}function st(t){return W()[C]?.(t)}var q=Symbol.for("@ecopages/radiant.customElementTagName");function gt(t,i){t[q]=i}function x(t){return t[q]}var h=Symbol.for("@ecopages/radiant.reactivePropDefinitions");function Pt(t,i,r){let n=t.constructor,o=n[h]??[];if(o.some((s)=>s.name===i))return;o.push({name:i,options:r}),n[h]=o}function y(t){return(t.constructor[h]??[]).slice()}var c;function Q(){if(c!==void 0)return c;try{let{AsyncLocalStorage:t}=(()=>{throw new Error("Cannot require module "+"node:async_hooks");})();return c=new t,c}catch{return c=null,null}}var k=Symbol.for("@ecopages/radiant.ssr-context-fallback-stack");function Z(){let t=globalThis;return t[k]??=[],t[k]}function F(t){if(t.length===0)return()=>{return};let i=new Map;for(let o of t)i.set(o.getContextKey(),o);let r=Q();if(r){let o=r.getStore()??[],s=[...o,i];return r.enterWith(s),()=>{r.enterWith(o)}}let n=Z();return n.push(i),()=>{let o=n.lastIndexOf(i);if(o>=0)n.splice(o,1)}}function J(t){let i=Q()?.getStore()??Z();for(let r=i.length-1;r>=0;r-=1){let n=i[r]?.get(t);if(n)return n}return}function Rt(t){let i=J(t);if(!i)return;return i.getContext()}I((t)=>J(t));class P{host;constructor(t){this.host=t}renderHost(){return{nodeType:1,outerHTML:this.renderHostToString({mode:"hydrate"})}}renderHostToString(t={},i=this.getHostAttributes()){let r=this.getTagName(),n=F(this.host.getContextProviders());try{return`<${r}${O(i)}>${this.renderHostContent(t)}</${r}>`}finally{n()}}renderHostContent(t){let i=this.host.renderToString(t),r=this.host.getAuthoredHydrationScriptMarkup?.()??"",n=this.host.getSlotProjectionScriptTag?.()??"";if(!(t.mode==="hydrate"||t.mode===void 0&&t.hydrate===!0))return`${i}${r}${n}`;let s=this.host.getHydrationBindings().map((g)=>g.renderHydrationScriptTag()).filter((g)=>typeof g==="string").join("");return`${i}${n}${s}`}getHostAttributes(){let t={},i=new Set;for(let r of this.host.getReactiveProperties()){let n=this.host.getPropertyValue(r.name);if(n===void 0||n===null||n===!1)continue;t[r.attribute]=String(r.converter.toAttribute(n)),i.add(r.attribute)}for(let r of this.host.getReactivePropDefinitions()){let n=r.options.attribute??r.name;if(i.has(n))continue;let o=this.host.getPropertyValue(r.name);if(o===void 0||o===null||o===!1)continue;t[n]=String(j(o,r.options.type)),i.add(n)}for(let r of this.host.listAttributeNames()){let n=this.host.getAttributeValue(r);if(n!==null)t[r]=n}return t}getTagName(){let t=x(this.host.constructor);if(!t)throw Error(`${this.host.constructor.name} is missing @customElement metadata.`);return t}}function O(t){return Object.entries(t).map(([i,r])=>` ${i}="${T(r)}"`).join("")}function T(t){return t.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}import{renderToString as L}from"@ecopages/jsx/server";import{withServerCustomElementRenderHook as v}from"@ecopages/jsx/server";var V=Symbol.for("@ecopages/jsx.active-ssr-hydrate"),f=new WeakSet;function _(t){return{nodeType:1,outerHTML:S(t,{mode:"hydrate"})}}function S(t,i={}){return w(t).renderHostToString(i,e(t))}function e(t){let i=t;if(f.has(t))return w(t).getHostAttributes();f.add(t);try{return i.getHostSsrAttributes()}finally{f.delete(t)}}function w(t){let i=t;return new P({constructor:i.constructor,getAuthoredHydrationScriptMarkup:()=>i.getAuthoredHydrationScriptMarkup(),getHydrationBindings:()=>i.getHydrationBindings(),getSlotProjectionScriptTag:()=>i.getSlotProjectionScriptTag(),renderToString:(r)=>i.renderToString(r),getContextProviders:()=>i.getContextProviders(),getReactiveProperties:()=>i.getReactiveProperties(),getReactivePropDefinitions:()=>y(t),getPropertyValue:(r)=>i[r],listAttributeNames:()=>typeof i.getAttributeNames==="function"?i.getAttributeNames():[],getAttributeValue:(r)=>i.getAttribute(r)})}function a(t){return v(({instance:i})=>{let r=b(i);if(!r?.renderHostToString)return;let n=r.renderHostToString;return{nodeType:1,get outerHTML(){let o=u();return n({hydrate:o,mode:o?"hydrate":"plain"})}}},t)}function b(t){return t.resolveSsrRenderBridge?.()}function u(){return globalThis[V]===!0}function l(){let t=R();if(t)return t;let i={getHostAttributes:e,renderHost:_,renderHostToString:S,resolveRenderBridge:b,renderView:(r,n={})=>{let o=r;return a(()=>L(o.resolveTrackedRenderOutput().value,n))}};return $(i),i}l();export{l as ensureRadiantElementSsrRuntimeRegistered};
1
+ var G=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(i,r)=>(typeof require<"u"?require:i)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var H=Symbol.for("@ecopages/radiant.component-ssr-runtime");function R(){return globalThis[H]}function $(t){globalThis[H]=t}function D(t){switch(t){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function U(t){switch(typeof t){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(t))return"array";if(Object.prototype.toString.call(t)==="[object Object]")return"object"}function X(t){switch(t){case Number:return 0;case String:return"";case Boolean:return!1;default:return null}}function A(t){try{return JSON.parse(t)}catch{throw TypeError("Invalid JSON string")}}var Y={array(t){let i=A(t);if(!Array.isArray(i))throw TypeError(`Expected an array but got a value of type "${typeof i}"`);return i},boolean(t){return!(t==="0"||String(t).toLowerCase()==="false")},number(t){return Number(t.replace(/_/g,""))},object(t){let i=JSON.parse(t);if(i===null||typeof i!=="object"||Array.isArray(i))throw TypeError(`expected value of type "object" but instead got value "${t}" of type "${U(i)}"`);return i},string(t){return t}},p={default:z,array:m,object:m};function m(t){return JSON.stringify(t)}function z(t){return`${t}`}function d(t,i){let r=D(i);if(!r)throw TypeError(`[radiant-element] Unknown type "${i}"`);return Y[r](t)}function j(t,i){let r=D(i);if(!r)throw TypeError(`[radiant-element] Unknown type "${i}"`);return(p[r]??p.default??z)(t)}function B(t){return typeof t==="boolean"}function K(t){return typeof t==="number"}function E(t){return typeof t==="string"}function N(t){return Array.isArray(t)}function M(t){return typeof t==="object"&&!Array.isArray(t)&&t!==null}function rt(t,i){switch(t){case Boolean:return B(i);case Number:return K(i);case String:return E(i);case Array:return N(i);case Object:return M(i);default:return!1}}var nt=(t,i,r,n)=>{if(i===Boolean){let s=t.getAttribute(r);if(s===null)return n;return s===""?!0:d(s,i)}let o=t.getAttribute(r);return o!==null?d(o,i):n??X(i)};var C=Symbol.for("@ecopages/radiant.customElementTagName");function st(t,i){t[C]=i}function W(t){return t[C]}var h=Symbol.for("@ecopages/radiant.reactivePropDefinitions");function gt(t,i,r){let n=t.constructor,o=n[h]??[];if(o.some((s)=>s.name===i))return;o.push({name:i,options:r}),n[h]=o}function I(t){return(t.constructor[h]??[]).slice()}var q=Symbol.for("@ecopages/radiant.ssr-context-provider-resolver");function x(){return globalThis}function y(t){x()[q]=t}function Pt(t){return x()[q]?.(t)}var c;function Q(){if(c!==void 0)return c;try{let{AsyncLocalStorage:t}=(()=>{throw new Error("Cannot require module "+"node:async_hooks");})();return c=new t,c}catch{return c=null,null}}var k=Symbol.for("@ecopages/radiant.ssr-context-fallback-stack");function Z(){let t=globalThis;return t[k]??=[],t[k]}function F(t){if(t.length===0)return()=>{return};let i=new Map;for(let o of t)i.set(o.getContextKey(),o);let r=Q();if(r){let o=r.getStore()??[],s=[...o,i];return r.enterWith(s),()=>{r.enterWith(o)}}let n=Z();return n.push(i),()=>{let o=n.lastIndexOf(i);if(o>=0)n.splice(o,1)}}function J(t){let i=Q()?.getStore()??Z();for(let r=i.length-1;r>=0;r-=1){let n=i[r]?.get(t);if(n)return n}return}function Rt(t){let i=J(t);if(!i)return;return i.getContext()}y((t)=>J(t));class P{host;constructor(t){this.host=t}renderHost(){return{nodeType:1,outerHTML:this.renderHostToString({mode:"hydrate"})}}renderHostToString(t={},i=this.getHostAttributes()){let r=this.getTagName(),n=F(this.host.getContextProviders());try{return`<${r}${O(i)}>${this.renderHostContent(t)}</${r}>`}finally{n()}}renderHostContent(t){let i=this.host.renderToString(t),r=this.host.getAuthoredHydrationScriptMarkup?.()??"",n=this.host.getSlotProjectionScriptTag?.()??"";if(!(t.mode==="hydrate"||t.mode===void 0&&t.hydrate===!0))return`${i}${r}${n}`;let s=this.host.getHydrationBindings().map((g)=>g.renderHydrationScriptTag()).filter((g)=>typeof g==="string").join("");return`${i}${n}${s}`}getHostAttributes(){let t={},i=new Set;for(let r of this.host.getReactiveProperties()){let n=this.host.getPropertyValue(r.name);if(n===void 0||n===null||n===!1)continue;t[r.attribute]=String(r.converter.toAttribute(n)),i.add(r.attribute)}for(let r of this.host.getReactivePropDefinitions()){let n=r.options.attribute??r.name;if(i.has(n))continue;let o=this.host.getPropertyValue(r.name);if(o===void 0||o===null||o===!1)continue;t[n]=String(j(o,r.options.type)),i.add(n)}for(let r of this.host.listAttributeNames()){let n=this.host.getAttributeValue(r);if(n!==null)t[r]=n}return t}getTagName(){let t=W(this.host.constructor);if(!t)throw Error(`${this.host.constructor.name} is missing @customElement metadata.`);return t}}function O(t){return Object.entries(t).map(([i,r])=>` ${i}="${T(r)}"`).join("")}function T(t){return t.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}import{renderToString as L}from"@ecopages/jsx/server";import{withServerCustomElementRenderHook as v}from"@ecopages/jsx/server";var V=Symbol.for("@ecopages/jsx.active-ssr-hydrate"),f=new WeakSet;function _(t){return{nodeType:1,outerHTML:S(t,{mode:"hydrate"})}}function S(t,i={}){return w(t).renderHostToString(i,e(t))}function e(t){let i=t;if(f.has(t))return w(t).getHostAttributes();f.add(t);try{return i.getHostSsrAttributes()}finally{f.delete(t)}}function w(t){let i=t;return new P({constructor:i.constructor,getAuthoredHydrationScriptMarkup:()=>i.getAuthoredHydrationScriptMarkup(),getHydrationBindings:()=>i.getHydrationBindings(),getSlotProjectionScriptTag:()=>i.getSlotProjectionScriptTag(),renderToString:(r)=>i.renderToString(r),getContextProviders:()=>i.getContextProviders(),getReactiveProperties:()=>i.getReactiveProperties(),getReactivePropDefinitions:()=>I(t),getPropertyValue:(r)=>i[r],listAttributeNames:()=>typeof i.getAttributeNames==="function"?i.getAttributeNames():[],getAttributeValue:(r)=>i.getAttribute(r)})}function a(t){return v(({instance:i})=>{let r=b(i);if(!r?.renderHostToString)return;let n=r.renderHostToString;return{nodeType:1,get outerHTML(){let o=u();return n({hydrate:o,mode:o?"hydrate":"plain"})}}},t)}function b(t){return t.resolveSsrRenderBridge?.()}function u(){return globalThis[V]===!0}function l(){let t=R();if(t)return t;let i={getHostAttributes:e,renderHost:_,renderHostToString:S,resolveRenderBridge:b,renderView:(r,n={})=>{let o=r;return a(()=>L(o.resolveTrackedRenderOutput().value,n))}};return $(i),i}l();export{l as ensureRadiantElementSsrRuntimeRegistered};
2
2
 
3
- //# debugId=4237A73E8020A60964756E2164756E21
3
+ //# debugId=B689DC1F8CF2629364756E2164756E21
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/core/radiant-component-ssr-registry.ts", "../src/utils/attribute-utils.ts", "../src/context/context-ssr-bridge.ts", "../src/core/custom-element-metadata.ts", "../src/core/reactive-prop-metadata.ts", "../src/server/context-ssr.ts", "../src/core/radiant-component-ssr.ts", "../src/server/radiant-component-ssr-runtime.ts"],
3
+ "sources": ["../src/core/radiant-component-ssr-registry.ts", "../src/utils/attribute-utils.ts", "../src/core/custom-element-metadata.ts", "../src/core/reactive-prop-metadata.ts", "../src/context/context-ssr-bridge.ts", "../src/server/context-ssr.ts", "../src/core/radiant-component-ssr.ts", "../src/server/radiant-component-ssr-runtime.ts"],
4
4
  "sourcesContent": [
5
5
  "import type { JsxRenderable } from '@ecopages/jsx';\nimport type { RenderToStringOptions } from '@ecopages/jsx/server';\n\n/**\n * Optional SSR hooks exposed by `RadiantElement` instances to the shared\n * server runtime.\n *\n * The bridge lets the runtime detect whether a component is still using the\n * inherited host SSR implementation or has taken ownership of host rendering\n * through explicit overrides.\n */\nexport type RadiantElementRenderBridge = {\n\trenderHost?: () => JsxRenderable;\n\trenderHostToString?: (options?: RenderToStringOptions) => string;\n};\n\n/**\n * Runtime shape required by the shared Radiant SSR helpers.\n *\n * This is intentionally narrower than `RadiantElement` itself so the server\n * runtime can stay decoupled from the full client base-class implementation.\n */\nexport type RadiantElementSsrCapable = HTMLElement & {\n\tresolveSsrRenderBridge?: () => RadiantElementRenderBridge;\n\tgetHostSsrAttributes?: () => Record<string, string>;\n\trenderToString(options?: RenderToStringOptions): string;\n\trenderHost?(): JsxRenderable;\n\trenderHostToString(options?: RenderToStringOptions): string;\n};\n\n/**\n * Shared SSR runtime contract registered on `globalThis`.\n *\n * Server entrypoints install one implementation that both direct component SSR\n * and nested JSX custom-element SSR can reuse without importing client-only\n * internals into every call site.\n */\nexport type RadiantElementSsrRuntime = {\n\tgetHostAttributes(component: RadiantElementSsrCapable): Record<string, string>;\n\trenderHost(component: RadiantElementSsrCapable): JsxRenderable;\n\trenderHostToString(component: RadiantElementSsrCapable, options?: RenderToStringOptions): string;\n\tresolveRenderBridge(component: RadiantElementSsrCapable): RadiantElementRenderBridge | undefined;\n\trenderView(component: RadiantElementSsrCapable, options?: RenderToStringOptions): string;\n};\n\nconst RADIANT_COMPONENT_SSR_RUNTIME_SYMBOL = Symbol.for('@ecopages/radiant.component-ssr-runtime');\n\ntype GlobalSsrRuntimeState = typeof globalThis & {\n\t[RADIANT_COMPONENT_SSR_RUNTIME_SYMBOL]?: RadiantElementSsrRuntime;\n};\n\n/**\n * Reads the currently registered Radiant SSR runtime from `globalThis`.\n *\n * Returns `undefined` when no server entrypoint has installed the runtime yet.\n */\nexport function getRadiantElementSsrRuntime(): RadiantElementSsrRuntime | undefined {\n\treturn (globalThis as GlobalSsrRuntimeState)[RADIANT_COMPONENT_SSR_RUNTIME_SYMBOL];\n}\n\n/**\n * Registers the shared Radiant SSR runtime on `globalThis`.\n *\n * The latest registration wins, which keeps server adapters free to install\n * the runtime eagerly from their own explicit entrypoint.\n */\nexport function registerRadiantElementSsrRuntime(runtime: RadiantElementSsrRuntime): void {\n\t(globalThis as GlobalSsrRuntimeState)[RADIANT_COMPONENT_SSR_RUNTIME_SYMBOL] = runtime;\n}\n",
6
6
  "import type { RadiantElement } from '../core/radiant-element';\n\nexport type AttributeTypeConstant = typeof Array | typeof Boolean | typeof Number | typeof Object | typeof String;\n\nexport type AttributeTypeDefault = Array<unknown> | boolean | number | Record<string, unknown> | string;\n\n/**\n * Parses the given attribute type constant and returns its corresponding string representation.\n *\n * @param constant - The attribute type constant to parse.\n * @returns The string representation of the attribute type constant.\n */\nexport function parseAttributeTypeConstant(constant?: AttributeTypeConstant) {\n\tswitch (constant) {\n\t\tcase Array:\n\t\t\treturn 'array';\n\t\tcase Boolean:\n\t\t\treturn 'boolean';\n\t\tcase Number:\n\t\t\treturn 'number';\n\t\tcase Object:\n\t\t\treturn 'object';\n\t\tcase String:\n\t\t\treturn 'string';\n\t}\n}\n\n/**\n * Parses the attribute type default value and returns its type as a string.\n *\n * @param defaultValue - The default value of the attribute type.\n * @returns The type of the default value as a string.\n */\nexport function parseAttributeTypeDefault(defaultValue?: AttributeTypeDefault) {\n\tswitch (typeof defaultValue) {\n\t\tcase 'boolean':\n\t\t\treturn 'boolean';\n\t\tcase 'number':\n\t\t\treturn 'number';\n\t\tcase 'string':\n\t\t\treturn 'string';\n\t}\n\n\tif (Array.isArray(defaultValue)) return 'array';\n\tif (Object.prototype.toString.call(defaultValue) === '[object Object]') return 'object';\n}\n\n/**\n * Returns the default value for a given attribute type.\n *\n * @param type - The attribute type constant.\n * @returns The default value for the specified attribute type.\n */\nexport function defaultValueForType(type: AttributeTypeConstant): unknown {\n\tswitch (type) {\n\t\tcase Number:\n\t\t\treturn 0;\n\t\tcase String:\n\t\t\treturn '';\n\t\tcase Boolean:\n\t\t\treturn false;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\ntype Reader = (value: string) => number | string | boolean | object | unknown[];\n\n/**\n * Utility function to parse a JSON string safely\n */\nfunction parseJSON<T>(value: string): T {\n\ttry {\n\t\treturn JSON.parse(value);\n\t} catch {\n\t\tthrow new TypeError('Invalid JSON string');\n\t}\n}\n\n/**\n * Object that maps attribute types to reader functions.\n * @type {Object.<string, Reader>}\n */\nconst readers: { [type: string]: Reader } = {\n\tarray(value: string): unknown[] {\n\t\tconst array = parseJSON<unknown[]>(value);\n\t\tif (!Array.isArray(array)) {\n\t\t\tthrow new TypeError(`Expected an array but got a value of type \"${typeof array}\"`);\n\t\t}\n\t\treturn array;\n\t},\n\n\tboolean(value: string): boolean {\n\t\treturn !(value === '0' || String(value).toLowerCase() === 'false');\n\t},\n\n\tnumber(value: string): number {\n\t\tconst number = Number(value.replace(/_/g, ''));\n\t\treturn number;\n\t},\n\n\tobject(value: string): object {\n\t\tconst object = JSON.parse(value);\n\t\tif (object === null || typeof object !== 'object' || Array.isArray(object)) {\n\t\t\tthrow new TypeError(\n\t\t\t\t`expected value of type \"object\" but instead got value \"${value}\" of type \"${parseAttributeTypeDefault(\n\t\t\t\t\tobject,\n\t\t\t\t)}\"`,\n\t\t\t);\n\t\t}\n\t\treturn object;\n\t},\n\n\tstring(value: string): string {\n\t\treturn value;\n\t},\n};\n\ntype Writer = (value: unknown) => string;\n\n/**\n * Object that maps attribute types to writer functions.\n * @type {Object.<string, Writer>}\n */\nconst writers: { [type: string]: Writer } = {\n\tdefault: writeString,\n\tarray: writeJSON,\n\tobject: writeJSON,\n};\n\nfunction writeJSON(value: unknown) {\n\treturn JSON.stringify(value);\n}\n\nfunction writeString(value: unknown) {\n\treturn `${value}`;\n}\n\n/**\n * Reads the attribute value based on the provided type.\n * @param value - The attribute value to be read.\n * @param type - The type of the attribute.\n * @returns The parsed attribute value.\n * @throws {TypeError} If the provided type is unknown.\n */\nexport function readAttributeValue(value: string, type: AttributeTypeConstant) {\n\tconst readerType = parseAttributeTypeConstant(type);\n\tif (!readerType) throw new TypeError(`[radiant-element] Unknown type \"${type}\"`);\n\treturn readers[readerType]!(value);\n}\n\nexport type ReadAttributeValueReturnType = ReturnType<typeof readAttributeValue>;\n\n/**\n * Writes the attribute value based on the provided type.\n *\n * @param value - The value to be written.\n * @param type - The type of the attribute.\n * @returns The written attribute value.\n * @throws {TypeError} If the provided type is unknown.\n */\nexport function writeAttributeValue(value: unknown, type: AttributeTypeConstant) {\n\tconst writerType = parseAttributeTypeConstant(type);\n\tif (!writerType) throw new TypeError(`[radiant-element] Unknown type \"${type}\"`);\n\tconst writer: Writer = writers[writerType] ?? writers.default ?? writeString;\n\treturn writer(value);\n}\n\nexport type WriteAttributeValueReturnType = ReturnType<typeof writeAttributeValue>;\n\n/*\n * Type guard functions for each type in AttributeTypeConstant\n */\nfunction isBoolean(value: unknown): value is boolean {\n\treturn typeof value === 'boolean';\n}\n\nfunction isNumber(value: unknown): value is number {\n\treturn typeof value === 'number';\n}\n\nfunction isString(value: unknown): value is string {\n\treturn typeof value === 'string';\n}\n\nfunction isArray(value: unknown): value is Array<unknown> {\n\treturn Array.isArray(value);\n}\n\nfunction isObject(value: unknown): value is object {\n\treturn typeof value === 'object' && !Array.isArray(value) && value !== null;\n}\n\n/*\n * Check function to ensure defaultValue matches the type\n */\nexport function isValueOfType(type: AttributeTypeConstant, defaultValue: unknown): boolean {\n\tswitch (type) {\n\t\tcase Boolean:\n\t\t\treturn isBoolean(defaultValue);\n\t\tcase Number:\n\t\t\treturn isNumber(defaultValue);\n\t\tcase String:\n\t\t\treturn isString(defaultValue);\n\t\tcase Array:\n\t\t\treturn isArray(defaultValue);\n\t\tcase Object:\n\t\t\treturn isObject(defaultValue);\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\nexport const getInitialValue = (\n\ttarget: RadiantElement,\n\ttype: AttributeTypeConstant,\n\tattributeKey: string,\n\tdefaultValue: unknown,\n) => {\n\tif (type === Boolean) {\n\t\tconst attributeValue = target.getAttribute(attributeKey);\n\t\tif (attributeValue === null) {\n\t\t\treturn defaultValue;\n\t\t}\n\n\t\treturn attributeValue === '' ? true : readAttributeValue(attributeValue, type);\n\t}\n\n\tconst attributeValue = target.getAttribute(attributeKey);\n\treturn attributeValue !== null\n\t\t? readAttributeValue(attributeValue, type)\n\t\t: (defaultValue ?? (defaultValueForType(type) as typeof defaultValue));\n};\n",
7
- "import type { SsrSerializableContextProvider } from './context-provider';\nimport type { UnknownContext } from './types';\n\ntype SsrContextProviderResolver = (context: UnknownContext) => SsrSerializableContextProvider | undefined;\n\nconst SSR_CONTEXT_PROVIDER_RESOLVER_SYMBOL = Symbol.for('@ecopages/radiant.ssr-context-provider-resolver');\n\ntype GlobalResolverScope = typeof globalThis & {\n\t[SSR_CONTEXT_PROVIDER_RESOLVER_SYMBOL]?: SsrContextProviderResolver;\n};\n\nfunction getGlobalResolverScope(): GlobalResolverScope {\n\treturn globalThis as GlobalResolverScope;\n}\n\n/**\n * Installs the ambient SSR provider resolver used by shared context runtime helpers.\n *\n * Server-side rendering infrastructure owns the actual provider stack storage and\n * publishes a lookup function here so client/runtime code does not need to import\n * server-oriented modules.\n */\nexport function installSsrContextProviderResolver(resolver: SsrContextProviderResolver): void {\n\tgetGlobalResolverScope()[SSR_CONTEXT_PROVIDER_RESOLVER_SYMBOL] = resolver;\n}\n\n/**\n * Resolves an ambient SSR provider when a server render has published one.\n */\nexport function resolveAmbientSsrContextProvider(context: UnknownContext): SsrSerializableContextProvider | undefined {\n\treturn getGlobalResolverScope()[SSR_CONTEXT_PROVIDER_RESOLVER_SYMBOL]?.(context);\n}\n",
8
7
  "export const CUSTOM_ELEMENT_TAG_NAME = Symbol.for('@ecopages/radiant.customElementTagName');\n\ntype CustomElementConstructorWithMetadata = CustomElementConstructor & {\n\t[CUSTOM_ELEMENT_TAG_NAME]?: string;\n};\n\n/**\n * Sets the custom element tag name for a given constructor.\n * This is used internally to associate a class with its custom element tag, which is necessary for features like hydration and SSR support.\n * @param target The constructor of the custom element.\n * @param tagName The tag name to associate with the custom element.\n */\nexport function setCustomElementTagName(target: CustomElementConstructor, tagName: string): void {\n\t(target as CustomElementConstructorWithMetadata)[CUSTOM_ELEMENT_TAG_NAME] = tagName;\n}\n\n/**\n * Retrieves the custom element tag name associated with a given constructor.\n * @param target The constructor of the custom element.\n * @returns The tag name associated with the custom element, or `undefined` if not set.\n */\nexport function getCustomElementTagName(target: CustomElementConstructor): string | undefined {\n\treturn (target as CustomElementConstructorWithMetadata)[CUSTOM_ELEMENT_TAG_NAME];\n}\n",
9
8
  "import type { ReactivePropertyOptions } from './radiant-element';\n\nconst REACTIVE_PROP_DEFINITIONS = Symbol.for('@ecopages/radiant.reactivePropDefinitions');\n\nexport type ReactivePropDefinition = {\n\tname: string;\n\toptions: ReactivePropertyOptions<unknown>;\n};\n\ntype RadiantConstructorWithReactiveProps = CustomElementConstructor & {\n\t[REACTIVE_PROP_DEFINITIONS]?: ReactivePropDefinition[];\n};\n\nexport function registerReactivePropDefinition(\n\ttarget: object,\n\tpropertyName: string,\n\toptions: ReactivePropertyOptions<unknown>,\n): void {\n\tconst constructor = target.constructor as RadiantConstructorWithReactiveProps;\n\tconst definitions = constructor[REACTIVE_PROP_DEFINITIONS] ?? [];\n\n\tif (definitions.some((definition) => definition.name === propertyName)) {\n\t\treturn;\n\t}\n\n\tdefinitions.push({ name: propertyName, options });\n\tconstructor[REACTIVE_PROP_DEFINITIONS] = definitions;\n}\n\nexport function getReactivePropDefinitions(target: object): ReactivePropDefinition[] {\n\treturn ((target.constructor as RadiantConstructorWithReactiveProps)[REACTIVE_PROP_DEFINITIONS] ?? []).slice();\n}\n",
9
+ "import type { SsrSerializableContextProvider } from './context-provider';\nimport type { UnknownContext } from './types';\n\ntype SsrContextProviderResolver = (context: UnknownContext) => SsrSerializableContextProvider | undefined;\n\nconst SSR_CONTEXT_PROVIDER_RESOLVER_SYMBOL = Symbol.for('@ecopages/radiant.ssr-context-provider-resolver');\n\ntype GlobalResolverScope = typeof globalThis & {\n\t[SSR_CONTEXT_PROVIDER_RESOLVER_SYMBOL]?: SsrContextProviderResolver;\n};\n\nfunction getGlobalResolverScope(): GlobalResolverScope {\n\treturn globalThis as GlobalResolverScope;\n}\n\n/**\n * Installs the ambient SSR provider resolver used by shared context runtime helpers.\n *\n * Server-side rendering infrastructure owns the actual provider stack storage and\n * publishes a lookup function here so client/runtime code does not need to import\n * server-oriented modules.\n */\nexport function installSsrContextProviderResolver(resolver: SsrContextProviderResolver): void {\n\tgetGlobalResolverScope()[SSR_CONTEXT_PROVIDER_RESOLVER_SYMBOL] = resolver;\n}\n\n/**\n * Resolves an ambient SSR provider when a server render has published one.\n */\nexport function resolveAmbientSsrContextProvider(context: UnknownContext): SsrSerializableContextProvider | undefined {\n\treturn getGlobalResolverScope()[SSR_CONTEXT_PROVIDER_RESOLVER_SYMBOL]?.(context);\n}\n",
10
10
  "import type { AsyncLocalStorage } from 'node:async_hooks';\nimport type { SsrSerializableContextProvider } from '../context/context-provider';\nimport { installSsrContextProviderResolver } from '../context/context-ssr-bridge';\nimport type { ContextType, UnknownContext } from '../context/types';\n\ntype ProviderFrame = Map<UnknownContext, SsrSerializableContextProvider>;\ntype ProviderStack = ProviderFrame[];\n\nlet resolvedAsyncLocalStorage: AsyncLocalStorage<ProviderStack> | null | undefined;\n\n/**\n * Lazily resolves `AsyncLocalStorage` from `node:async_hooks`.\n *\n * The dynamic `require` is necessary because browser-based SSR tests import\n * this server-oriented module directly. A top-level static import would break\n * those browser bundles even though normal application SSR runs on the server.\n *\n * On the server (Node.js, Bun, Cloudflare Workers) the import always succeeds.\n * In browser test environments where SSR rendering is exercised without a real\n * server, the fallback global stack is used instead.\n */\nfunction getAsyncLocalStorage(): AsyncLocalStorage<ProviderStack> | null {\n\tif (resolvedAsyncLocalStorage !== undefined) {\n\t\treturn resolvedAsyncLocalStorage;\n\t}\n\n\ttry {\n\t\tconst { AsyncLocalStorage: ALS } = require('node:async_hooks') as typeof import('node:async_hooks');\n\t\tresolvedAsyncLocalStorage = new ALS<ProviderStack>();\n\t\treturn resolvedAsyncLocalStorage;\n\t} catch {\n\t\tresolvedAsyncLocalStorage = null;\n\t\treturn null;\n\t}\n}\n\nconst SSR_CONTEXT_FALLBACK_STACK_SYMBOL = Symbol.for('@ecopages/radiant.ssr-context-fallback-stack');\n\nfunction getFallbackStack(): ProviderStack {\n\tconst g = globalThis as typeof globalThis & { [SSR_CONTEXT_FALLBACK_STACK_SYMBOL]?: ProviderStack };\n\tg[SSR_CONTEXT_FALLBACK_STACK_SYMBOL] ??= [];\n\treturn g[SSR_CONTEXT_FALLBACK_STACK_SYMBOL];\n}\n\n/**\n * Pushes a temporary provider frame onto the SSR context stack.\n *\n * On the server, each call creates an isolated `AsyncLocalStorage` context so\n * concurrent renders cannot corrupt each other.\n *\n * In browser test environments where `AsyncLocalStorage` is unavailable, a\n * synchronous global stack is used as a fallback.\n */\nexport function withSsrContextProviders(providers: readonly SsrSerializableContextProvider[]): () => void {\n\tif (providers.length === 0) {\n\t\treturn () => undefined;\n\t}\n\n\tconst frame = new Map<UnknownContext, SsrSerializableContextProvider>();\n\n\tfor (const provider of providers) {\n\t\tframe.set(provider.getContextKey(), provider);\n\t}\n\n\tconst als = getAsyncLocalStorage();\n\n\tif (als) {\n\t\tconst parentStack = als.getStore() ?? [];\n\t\tconst childStack = [...parentStack, frame];\n\t\tals.enterWith(childStack);\n\n\t\treturn () => {\n\t\t\tals.enterWith(parentStack);\n\t\t};\n\t}\n\n\tconst stack = getFallbackStack();\n\tstack.push(frame);\n\n\treturn () => {\n\t\tconst index = stack.lastIndexOf(frame);\n\t\tif (index >= 0) stack.splice(index, 1);\n\t};\n}\n\n/**\n * Resolves the nearest SSR-visible provider for a given context token.\n *\n * Lookup walks the provider frames from innermost to outermost so nested host\n * serialization behaves the same way as runtime context resolution in the DOM.\n */\nexport function resolveSsrContextProvider<T extends UnknownContext>(\n\tcontext: T,\n): SsrSerializableContextProvider | undefined {\n\tconst store = getAsyncLocalStorage()?.getStore() ?? getFallbackStack();\n\n\tfor (let index = store.length - 1; index >= 0; index -= 1) {\n\t\tconst provider = store[index]?.get(context);\n\n\t\tif (provider) {\n\t\t\treturn provider;\n\t\t}\n\t}\n\n\treturn undefined;\n}\n\n/**\n * Resolves the current SSR-visible value for a given context token.\n *\n * This is the ergonomic helper consumed by SSR-aware decorators and component\n * render paths when they only need the context payload instead of the full\n * provider instance.\n */\nexport function resolveSsrContextValue<T extends UnknownContext>(context: T): ContextType<T> | undefined {\n\tconst provider = resolveSsrContextProvider(context);\n\n\tif (!provider) {\n\t\treturn undefined;\n\t}\n\n\treturn provider.getContext() as ContextType<T>;\n}\n\ninstallSsrContextProviderResolver((context) => resolveSsrContextProvider(context));\n",
11
11
  "import type { JsxRenderable } from '@ecopages/jsx';\nimport type { RenderToStringOptions } from '@ecopages/jsx/server';\nimport type { SsrSerializableContextProvider } from '../context/context-provider';\nimport { withSsrContextProviders } from '../server/context-ssr';\nimport { getCustomElementTagName } from './custom-element-metadata';\nimport type { ReactiveProperty } from './radiant-element';\nimport type { ReactivePropDefinition } from './reactive-prop-metadata';\nimport type { SsrSerializableHydrationBinding } from './ssr-hydration-binding';\nimport { writeAttributeValue } from '../utils/attribute-utils';\n\ntype RadiantElementSsrHost = {\n\tconstructor: CustomElementConstructor;\n\tgetAuthoredHydrationScriptMarkup?: () => string | undefined;\n\tgetContextProviders: () => SsrSerializableContextProvider[];\n\tgetHydrationBindings: () => SsrSerializableHydrationBinding[];\n\tgetSlotProjectionScriptTag?: () => string | undefined;\n\trenderToString: (options?: RenderToStringOptions) => string;\n\tgetReactiveProperties: () => ReactiveProperty[];\n\tgetReactivePropDefinitions: () => ReactivePropDefinition[];\n\tgetPropertyValue: (name: string) => unknown;\n\tlistAttributeNames: () => string[];\n\tgetAttributeValue: (name: string) => string | null;\n};\n\nexport class RadiantElementSsrService {\n\tconstructor(private readonly host: RadiantElementSsrHost) {}\n\n\tpublic renderHost(): JsxRenderable {\n\t\treturn {\n\t\t\tnodeType: 1,\n\t\t\touterHTML: this.renderHostToString({ mode: 'hydrate' }),\n\t\t};\n\t}\n\n\tpublic renderHostToString(options: RenderToStringOptions = {}, attributes = this.getHostAttributes()): string {\n\t\tconst tagName = this.getTagName();\n\t\tconst restoreSsrContexts = withSsrContextProviders(this.host.getContextProviders());\n\n\t\ttry {\n\t\t\treturn `<${tagName}${serializeHostAttributes(attributes)}>${this.renderHostContent(options)}</${tagName}>`;\n\t\t} finally {\n\t\t\trestoreSsrContexts();\n\t\t}\n\t}\n\n\tprivate renderHostContent(options: RenderToStringOptions): string {\n\t\tconst hostContent = this.host.renderToString(options);\n\t\tconst authoredHydrationMarkup = this.host.getAuthoredHydrationScriptMarkup?.() ?? '';\n\t\tconst slotProjectionScript = this.host.getSlotProjectionScriptTag?.() ?? '';\n\t\tconst hydrate = options.mode === 'hydrate' || (options.mode === undefined && options.hydrate === true);\n\n\t\tif (!hydrate) {\n\t\t\treturn `${hostContent}${authoredHydrationMarkup}${slotProjectionScript}`;\n\t\t}\n\n\t\tconst hydrationScripts = this.host\n\t\t\t.getHydrationBindings()\n\t\t\t.map((binding) => binding.renderHydrationScriptTag())\n\t\t\t.filter((markup): markup is string => typeof markup === 'string')\n\t\t\t.join('');\n\n\t\treturn `${hostContent}${slotProjectionScript}${hydrationScripts}`;\n\t}\n\n\tpublic getHostAttributes(): Record<string, string> {\n\t\tconst attributes: Record<string, string> = {};\n\t\tconst seenAttributes = new Set<string>();\n\n\t\tfor (const property of this.host.getReactiveProperties()) {\n\t\t\tconst currentValue = this.host.getPropertyValue(property.name);\n\t\t\tif (currentValue === undefined || currentValue === null || currentValue === false) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tattributes[property.attribute] = String(property.converter.toAttribute(currentValue));\n\t\t\tseenAttributes.add(property.attribute);\n\t\t}\n\n\t\tfor (const definition of this.host.getReactivePropDefinitions()) {\n\t\t\tconst attributeName = definition.options.attribute ?? definition.name;\n\n\t\t\tif (seenAttributes.has(attributeName)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst currentValue = this.host.getPropertyValue(definition.name);\n\n\t\t\tif (currentValue === undefined || currentValue === null || currentValue === false) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tattributes[attributeName] = String(writeAttributeValue(currentValue, definition.options.type));\n\t\t\tseenAttributes.add(attributeName);\n\t\t}\n\n\t\tfor (const attributeName of this.host.listAttributeNames()) {\n\t\t\tconst attributeValue = this.host.getAttributeValue(attributeName);\n\t\t\tif (attributeValue !== null) {\n\t\t\t\tattributes[attributeName] = attributeValue;\n\t\t\t}\n\t\t}\n\n\t\treturn attributes;\n\t}\n\n\tprivate getTagName(): string {\n\t\tconst tagName = getCustomElementTagName(this.host.constructor);\n\n\t\tif (!tagName) {\n\t\t\tthrow new Error(`${this.host.constructor.name} is missing @customElement metadata.`);\n\t\t}\n\n\t\treturn tagName;\n\t}\n}\n\nfunction serializeHostAttributes(attributes: Record<string, string>): string {\n\treturn Object.entries(attributes)\n\t\t.map(([name, value]) => ` ${name}=\"${escapeAttribute(value)}\"`)\n\t\t.join('');\n}\n\nfunction escapeAttribute(value: string): string {\n\treturn value.replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}\n",
12
12
  "import type { JsxRenderable } from '@ecopages/jsx';\nimport { renderToString as renderJsxToString } from '@ecopages/jsx/server';\nimport { withServerCustomElementRenderHook } from '@ecopages/jsx/server';\nimport type { RenderToStringOptions } from '@ecopages/jsx/server';\nimport { getReactivePropDefinitions } from '../core/reactive-prop-metadata';\nimport { RadiantElementSsrService } from '../core/radiant-component-ssr';\nimport {\n\tgetRadiantElementSsrRuntime,\n\tregisterRadiantElementSsrRuntime,\n\ttype RadiantElementRenderBridge,\n\ttype RadiantElementSsrCapable,\n\ttype RadiantElementSsrRuntime,\n} from '../core/radiant-component-ssr-registry';\nimport type { SsrSerializableContextProvider } from '../context/context-provider';\nimport type { ReactiveProperty } from '../core/radiant-element';\nimport type { SsrSerializableHydrationBinding } from '../core/ssr-hydration-binding';\n\ntype RadiantElementSsrHostBridge = Record<string, unknown> & {\n\tconstructor: CustomElementConstructor;\n\tgetAttribute(name: string): string | null;\n\tgetAttributeNames?(): string[];\n\tgetAuthoredHydrationScriptMarkup(): string | undefined;\n\tgetContextProviders(): SsrSerializableContextProvider[];\n\tgetHostSsrAttributes(): Record<string, string>;\n\tgetHydrationBindings(): SsrSerializableHydrationBinding[];\n\tgetReactiveProperties(): ReactiveProperty[];\n\tgetSlotProjectionScriptTag(): string | undefined;\n\tresolveTrackedRenderOutput(): { containsSlots: boolean; value: JsxRenderable };\n\trenderToString(options?: RenderToStringOptions): string;\n\tresolveSsrRenderBridge(): RadiantElementRenderBridge;\n};\n\nconst ACTIVE_SSR_HYDRATE_SYMBOL = Symbol.for('@ecopages/jsx.active-ssr-hydrate');\nconst hostAttributeResolutionInProgress = new WeakSet<object>();\n\n/**\n * Produces a JSX-compatible host preview for a Radiant element.\n *\n * The preview always serializes with hydration enabled because it is intended\n * for shell composition, where nested client islands must preserve hydration\n * markers when embedded into a larger SSR document.\n */\nfunction renderRadiantElementHost(component: RadiantElementSsrCapable): JsxRenderable {\n\treturn {\n\t\tnodeType: 1,\n\t\touterHTML: renderRadiantElementHostToString(component, { mode: 'hydrate' }),\n\t};\n}\n\n/**\n * Serializes a Radiant element host through the shared SSR service.\n *\n * This path centralizes host serialization so direct component renders and\n * nested JSX custom-element renders follow the same attribute and hydration\n * rules.\n */\nfunction renderRadiantElementHostToString(\n\tcomponent: RadiantElementSsrCapable,\n\toptions: RenderToStringOptions = {},\n): string {\n\treturn createRadiantElementSsrService(component).renderHostToString(\n\t\toptions,\n\t\tgetRadiantElementHostSsrAttributes(component),\n\t);\n}\n\n/**\n * Resolves the final host attribute map for a Radiant element.\n *\n * The recursion guard is required because `getHostSsrAttributes()` can itself\n * delegate back into the shared runtime. When that happens, the runtime falls\n * back to the raw SSR service attribute collector for the current call.\n */\nfunction getRadiantElementHostSsrAttributes(component: RadiantElementSsrCapable): Record<string, string> {\n\tconst bridge = component as unknown as RadiantElementSsrHostBridge;\n\n\tif (hostAttributeResolutionInProgress.has(component)) {\n\t\treturn createRadiantElementSsrService(component).getHostAttributes();\n\t}\n\n\thostAttributeResolutionInProgress.add(component);\n\n\ttry {\n\t\treturn bridge.getHostSsrAttributes();\n\t} finally {\n\t\thostAttributeResolutionInProgress.delete(component);\n\t}\n}\n\n/**\n * Adapts a `RadiantElement` instance to the shared `RadiantElementSsrService`\n * contract.\n *\n * Keeping this adapter local lets the base class shed its eager SSR service\n * instance while preserving the established host serialization behavior.\n */\nfunction createRadiantElementSsrService(component: RadiantElementSsrCapable): RadiantElementSsrService {\n\tconst bridge = component as unknown as RadiantElementSsrHostBridge;\n\n\treturn new RadiantElementSsrService({\n\t\tconstructor: bridge.constructor,\n\t\tgetAuthoredHydrationScriptMarkup: () => bridge.getAuthoredHydrationScriptMarkup(),\n\t\tgetHydrationBindings: () => bridge.getHydrationBindings(),\n\t\tgetSlotProjectionScriptTag: () => bridge.getSlotProjectionScriptTag(),\n\t\trenderToString: (options) => bridge.renderToString(options),\n\t\tgetContextProviders: () => bridge.getContextProviders(),\n\t\tgetReactiveProperties: () => bridge.getReactiveProperties(),\n\t\tgetReactivePropDefinitions: () => getReactivePropDefinitions(component),\n\t\tgetPropertyValue: (name) => bridge[name],\n\t\tlistAttributeNames: () => (typeof bridge.getAttributeNames === 'function' ? bridge.getAttributeNames() : []),\n\t\tgetAttributeValue: (name) => bridge.getAttribute(name),\n\t});\n}\n\n/**\n * Installs a temporary JSX custom-element render hook that understands\n * `RadiantElement` SSR bridges.\n *\n * This makes nested intrinsic custom-element renders honor explicit host SSR\n * overrides instead of always falling back to the inherited JSX runtime path.\n */\nfunction withRadiantServerCustomElementRenderBridge<T>(render: () => T): T {\n\treturn withServerCustomElementRenderHook(({ instance }) => {\n\t\tconst nestedBridge = resolveRadiantElementRenderBridge(instance as unknown as RadiantElementSsrCapable);\n\n\t\tif (!nestedBridge?.renderHostToString) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst renderHostToString = nestedBridge.renderHostToString;\n\n\t\treturn {\n\t\t\tnodeType: 1,\n\t\t\tget outerHTML() {\n\t\t\t\tconst hydrate = isActiveSsrHydrateMode();\n\t\t\t\treturn renderHostToString({ hydrate, mode: hydrate ? 'hydrate' : 'plain' });\n\t\t\t},\n\t\t};\n\t}, render);\n}\n\n/**\n * Resolves the SSR bridge exposed by a component instance, when present.\n */\nfunction resolveRadiantElementRenderBridge(\n\tcomponent: RadiantElementSsrCapable,\n): RadiantElementRenderBridge | undefined {\n\treturn component.resolveSsrRenderBridge?.();\n}\n\n/**\n * Reads the active JSX SSR hydrate flag from `globalThis`.\n *\n * Nested custom-element serialization mirrors the hydrate mode of the current\n * top-level render so host and child markup stay consistent.\n */\nfunction isActiveSsrHydrateMode(): boolean {\n\treturn (globalThis as typeof globalThis & Record<PropertyKey, unknown>)[ACTIVE_SSR_HYDRATE_SYMBOL] === true;\n}\n\n/**\n * Registers the shared Radiant SSR runtime if it is not already present.\n *\n * Server entrypoints call this eagerly so instance SSR methods, nested JSX\n * custom-element SSR, and portable server helpers all share one implementation\n * and one bridge-resolution strategy.\n */\nexport function ensureRadiantElementSsrRuntimeRegistered() {\n\tconst existingRuntime = getRadiantElementSsrRuntime();\n\n\tif (existingRuntime) {\n\t\treturn existingRuntime;\n\t}\n\n\tconst runtime: RadiantElementSsrRuntime = {\n\t\tgetHostAttributes: getRadiantElementHostSsrAttributes,\n\t\trenderHost: renderRadiantElementHost,\n\t\trenderHostToString: renderRadiantElementHostToString,\n\t\tresolveRenderBridge: resolveRadiantElementRenderBridge,\n\t\trenderView: (component, options = {}) => {\n\t\t\tconst bridge = component as unknown as RadiantElementSsrHostBridge;\n\n\t\t\treturn withRadiantServerCustomElementRenderBridge(() =>\n\t\t\t\trenderJsxToString(bridge.resolveTrackedRenderOutput().value, options),\n\t\t\t);\n\t\t},\n\t};\n\n\tregisterRadiantElementSsrRuntime(runtime);\n\treturn runtime;\n}\n\nensureRadiantElementSsrRuntimeRegistered();\n"
13
13
  ],
14
- "mappings": "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",
15
- "debugId": "4237A73E8020A60964756E2164756E21",
14
+ "mappings": "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",
15
+ "debugId": "B689DC1F8CF2629364756E2164756E21",
16
16
  "names": []
17
17
  }
@@ -1,3 +1,3 @@
1
- var Hf=((f)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(f,{get:(P,$)=>(typeof require<"u"?require:P)[$]}):f)(function(f){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+f+'" is not supported')});var _=Symbol.for("@ecopages/radiant.component-ssr-runtime");function R(){return globalThis[_]}function C(f){globalThis[_]=f}function u(f){switch(f){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function Qf(f){switch(typeof f){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(f))return"array";if(Object.prototype.toString.call(f)==="[object Object]")return"object"}function Zf(f){switch(f){case Number:return 0;case String:return"";case Boolean:return!1;default:return null}}function gf(f){try{return JSON.parse(f)}catch{throw TypeError("Invalid JSON string")}}var kf={array(f){let P=gf(f);if(!Array.isArray(P))throw TypeError(`Expected an array but got a value of type "${typeof P}"`);return P},boolean(f){return!(f==="0"||String(f).toLowerCase()==="false")},number(f){return Number(f.replace(/_/g,""))},object(f){let P=JSON.parse(f);if(P===null||typeof P!=="object"||Array.isArray(P))throw TypeError(`expected value of type "object" but instead got value "${f}" of type "${Qf(P)}"`);return P},string(f){return f}},N={default:E,array:r,object:r};function r(f){return JSON.stringify(f)}function E(f){return`${f}`}function S(f,P){let $=u(P);if(!$)throw TypeError(`[radiant-element] Unknown type "${P}"`);return kf[$](f)}function O(f,P){let $=u(P);if(!$)throw TypeError(`[radiant-element] Unknown type "${P}"`);return(N[$]??N.default??E)(f)}function Jf(f){return typeof f==="boolean"}function Ff(f){return typeof f==="number"}function Rf(f){return typeof f==="string"}function xf(f){return Array.isArray(f)}function Gf(f){return typeof f==="object"&&!Array.isArray(f)&&f!==null}function nf(f,P){switch(f){case Boolean:return Jf(P);case Number:return Ff(P);case String:return Rf(P);case Array:return xf(P);case Object:return Gf(P);default:return!1}}var ef=(f,P,$,h)=>{if(P===Boolean){let j=f.getAttribute($);if(j===null)return h;return j===""?!0:S(j,P)}let y=f.getAttribute($);return y!==null?S(y,P):h??Zf(P)};var i=Symbol.for("@ecopages/radiant.ssr-context-provider-resolver");function v(){return globalThis}function M(f){v()[i]=f}function PP(f){return v()[i]?.(f)}var p=Symbol.for("@ecopages/radiant.customElementTagName");function hP(f,P){f[p]=P}function x(f){return f[p]}var K=Symbol.for("@ecopages/radiant.reactivePropDefinitions");function jP(f,P,$){let h=f.constructor,y=h[K]??[];if(y.some((j)=>j.name===P))return;y.push({name:P,options:$}),h[K]=y}function t(f){return(f.constructor[K]??[]).slice()}var Q;function o(){if(Q!==void 0)return Q;try{let{AsyncLocalStorage:f}=(()=>{throw new Error("Cannot require module "+"node:async_hooks");})();return Q=new f,Q}catch{return Q=null,null}}var d=Symbol.for("@ecopages/radiant.ssr-context-fallback-stack");function a(){let f=globalThis;return f[d]??=[],f[d]}function G(f){if(f.length===0)return()=>{return};let P=new Map;for(let y of f)P.set(y.getContextKey(),y);let $=o();if($){let y=$.getStore()??[],j=[...y,P];return $.enterWith(j),()=>{$.enterWith(y)}}let h=a();return h.push(P),()=>{let y=h.lastIndexOf(P);if(y>=0)h.splice(y,1)}}function m(f){let P=o()?.getStore()??a();for(let $=P.length-1;$>=0;$-=1){let h=P[$]?.get(f);if(h)return h}return}function HP(f){let P=m(f);if(!P)return;return P.getContext()}M((f)=>m(f));class w{host;constructor(f){this.host=f}renderHost(){return{nodeType:1,outerHTML:this.renderHostToString({mode:"hydrate"})}}renderHostToString(f={},P=this.getHostAttributes()){let $=this.getTagName(),h=G(this.host.getContextProviders());try{return`<${$}${Uf(P)}>${this.renderHostContent(f)}</${$}>`}finally{h()}}renderHostContent(f){let P=this.host.renderToString(f),$=this.host.getAuthoredHydrationScriptMarkup?.()??"",h=this.host.getSlotProjectionScriptTag?.()??"";if(!(f.mode==="hydrate"||f.mode===void 0&&f.hydrate===!0))return`${P}${$}${h}`;let j=this.host.getHydrationBindings().map((b)=>b.renderHydrationScriptTag()).filter((b)=>typeof b==="string").join("");return`${P}${h}${j}`}getHostAttributes(){let f={},P=new Set;for(let $ of this.host.getReactiveProperties()){let h=this.host.getPropertyValue($.name);if(h===void 0||h===null||h===!1)continue;f[$.attribute]=String($.converter.toAttribute(h)),P.add($.attribute)}for(let $ of this.host.getReactivePropDefinitions()){let h=$.options.attribute??$.name;if(P.has(h))continue;let y=this.host.getPropertyValue($.name);if(y===void 0||y===null||y===!1)continue;f[h]=String(O(y,$.options.type)),P.add(h)}for(let $ of this.host.listAttributeNames()){let h=this.host.getAttributeValue($);if(h!==null)f[$]=h}return f}getTagName(){let f=x(this.host.constructor);if(!f)throw Error(`${this.host.constructor.name} is missing @customElement metadata.`);return f}}function Uf(f){return Object.entries(f).map(([P,$])=>` ${P}="${Wf($)}"`).join("")}function Wf(f){return f.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}import{renderToString as Xf}from"@ecopages/jsx/server";import{withServerCustomElementRenderHook as cf}from"@ecopages/jsx/server";var Df=Symbol.for("@ecopages/jsx.active-ssr-hydrate"),I=new WeakSet;function Yf(f){return{nodeType:1,outerHTML:l(f,{mode:"hydrate"})}}function l(f,P={}){return e(f).renderHostToString(P,n(f))}function n(f){let P=f;if(I.has(f))return e(f).getHostAttributes();I.add(f);try{return P.getHostSsrAttributes()}finally{I.delete(f)}}function e(f){let P=f;return new w({constructor:P.constructor,getAuthoredHydrationScriptMarkup:()=>P.getAuthoredHydrationScriptMarkup(),getHydrationBindings:()=>P.getHydrationBindings(),getSlotProjectionScriptTag:()=>P.getSlotProjectionScriptTag(),renderToString:($)=>P.renderToString($),getContextProviders:()=>P.getContextProviders(),getReactiveProperties:()=>P.getReactiveProperties(),getReactivePropDefinitions:()=>t(f),getPropertyValue:($)=>P[$],listAttributeNames:()=>typeof P.getAttributeNames==="function"?P.getAttributeNames():[],getAttributeValue:($)=>P.getAttribute($)})}function sf(f){return cf(({instance:P})=>{let $=ff(P);if(!$?.renderHostToString)return;let h=$.renderHostToString;return{nodeType:1,get outerHTML(){let y=Af();return h({hydrate:y,mode:y?"hydrate":"plain"})}}},f)}function ff(f){return f.resolveSsrRenderBridge?.()}function Af(){return globalThis[Df]===!0}function U(){let f=R();if(f)return f;let P={getHostAttributes:n,renderHost:Yf,renderHostToString:l,resolveRenderBridge:ff,renderView:($,h={})=>{let y=$;return sf(()=>Xf(y.resolveTrackedRenderOutput().value,h))}};return C(P),P}U();var W=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]);function Pf(f){let P=[],$=0;while($<f.length){let h=$;if(f.startsWith("<!--",$)){let b=f.indexOf("-->",$+4);$=b===-1?f.length:b+3,P.push(f.slice(h,$));continue}if(f[$]!=="<"){let b=f.indexOf("<",$);$=b===-1?f.length:b,P.push(f.slice(h,$));continue}let y=Z(f,$);if(!y){P.push(f.slice(h));break}if(y.type!=="open"||y.selfClosing||W.has(y.tagName)){$=y.end,P.push(f.slice(h,$));continue}$=y.end;let j=1;while($<f.length&&j>0){let b=f.indexOf("<",$);if(b===-1){$=f.length;break}let q=Z(f,b);if(!q){$=f.length;break}if($=q.end,q.type==="comment"||q.type==="declaration")continue;if(q.type==="open"&&!q.selfClosing&&!W.has(q.tagName)){j+=1;continue}if(q.type==="close")j-=1}P.push(f.slice(h,$))}return P.filter((h)=>h!=="")}function Kf(f,P){let $;for(let h=P+1;h<f.length;h+=1){let y=f[h];if($){if(y===$)$=void 0;continue}if(y==='"'||y==="'"){$=y;continue}if(y===">")return h+1}return f.length}function wf(f){let P={},$=/([:^@A-Za-z0-9_.-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>/]+)))?/g;for(let h of f.matchAll($)){let[,y,j,b,q]=h;if(!y)continue;P[y]=j??b??q??""}return P}function Z(f,P){if(f.startsWith("<!--",P)){let F=f.indexOf("-->",P+4);return{end:F===-1?f.length:F+3,type:"comment"}}let $=Kf(f,P),h=f.slice(P+1,$-1).trim();if(h==="")return;if(h.startsWith("!")||h.startsWith("?"))return{end:$,type:"declaration"};if(h.startsWith("/"))return{end:$,type:"close"};let y=/\/\s*$/.test(h),j=y?h.replace(/\/\s*$/,"").trim():h,b=j.split(/[\s/>]/,1)[0]?.toLowerCase()??"",q=b.length,J=j.slice(q).trim(),A=y||W.has(b)?"":If(f,P,$,b);return{attributes:wf(J),end:$,innerHtml:A,selfClosing:y,tagName:b,type:"open"}}function If(f,P,$,h){let y=$,j=1;while(y<f.length&&j>0){let b=f.indexOf("<",y);if(b===-1)return f.slice($);let q=Z(f,b);if(!q)return f.slice($);if(q.type==="open"&&q.tagName===h&&!q.selfClosing&&!W.has(h))j+=1;if(q.type==="close"){if(f.slice(b+2,q.end-1).trim().toLowerCase()===h){if(j-=1,j===0)return f.slice($,b)}}y=q.end}return f.slice($)}class H extends EventTarget{nodeType;static ELEMENT_NODE=1;static TEXT_NODE=3;childNodes=[];parentNode=null;constructor(f){super();this.nodeType=f}append(...f){for(let P of f)this.appendChild(typeof P==="string"?B(P):P)}appendChild(f){if("parentNode"in f&&f.parentNode&&"removeChild"in f.parentNode)f.parentNode.removeChild(f);return this.childNodes.push(f),f.parentNode=this,f}removeChild(f){let P=this.childNodes.indexOf(f);if(P===-1)return f;return this.childNodes.splice(P,1),f.parentNode=null,f}replaceChildren(...f){for(let P of this.childNodes)P.parentNode=null;this.childNodes=[],this.append(...f)}get textContent(){return this.childNodes.map((f)=>f.textContent??"").join("")}set textContent(f){this.replaceChildren(f??"")}}class $f extends H{value;constructor(f){super(H.TEXT_NODE);this.value=f}get textContent(){return this.value}set textContent(f){this.value=f??""}}class X extends H{attributes=new Map;fragmentHtml;fragmentText;localName;tagName;constructor(f="div"){super(H.ELEMENT_NODE);this.localName=f.toLowerCase(),this.tagName=this.localName.toUpperCase()}hasAttribute(f){return this.attributes.has(f)}getAttribute(f){return this.attributes.get(f)??null}getAttributeNames(){return Array.from(this.attributes.keys())}setAttribute(f,P){this.fragmentHtml=void 0,this.attributes.set(f,String(P))}removeAttribute(f){this.fragmentHtml=void 0,this.attributes.delete(f)}querySelector(){return null}querySelectorAll(){return[]}matches(){return!1}get outerHTML(){if(this.fragmentHtml!==void 0)return this.fragmentHtml;let f=Array.from(this.attributes.entries()).map(([P,$])=>` ${P}="${Lf($)}"`).join("");return`<${this.localName}${f}>${this.innerHTML}</${this.localName}>`}get innerHTML(){return this.childNodes.map((f)=>_f(f)).join("")}set innerHTML(f){this.fragmentHtml=void 0,this.fragmentText=void 0,this.replaceChildren(...bf(f))}get textContent(){return this.fragmentText??super.textContent??""}set textContent(f){this.fragmentHtml=void 0,this.fragmentText=f??"",super.textContent=f}setSerializedFragment(f,P,$){this.fragmentHtml=f,this.fragmentText=P,this.attributes=new Map(Object.entries($)),this.replaceChildren()}}class D{bubbles;cancelable;composed;type;constructor(f,P={}){this.type=f,this.bubbles=P.bubbles??!1,this.cancelable=P.cancelable??!1,this.composed=P.composed??!1}}class V extends D{detail;constructor(f,P={}){super(f,P);this.detail=P.detail}}class k extends X{isConnected=!1;constructor(f="div"){super(f)}insertAdjacentHTML(f,P){this.append(...bf(P))}}class c extends k{constructor(){super("script")}}class hf{definitions=new Map;define(f,P){if(this.definitions.has(f))return;this.definitions.set(f,P)}get(f){return this.definitions.get(f)}}var g;function B(f){return new $f(f)}function yf(){let f=globalThis,P=f.customElements;if(typeof f.Node>"u"||typeof f.Element>"u"||typeof f.HTMLElement>"u"||!P||typeof P.define!=="function"||typeof P.get!=="function")return;return f.window??{CustomEvent:f.CustomEvent??V,Element:f.Element,Event:f.Event??D,EventTarget:f.EventTarget??EventTarget,HTMLScriptElement:f.HTMLScriptElement??f.HTMLElement,HTMLElement:f.HTMLElement,Node:f.Node,customElements:P}}function Bf(){let f=yf();if(f)return f;return Vf()}function jf(){return Bf(),{prepareHost(f,P={}){if(P.authoredContent!==void 0)f.innerHTML=P.authoredContent}}}function Vf(){let f=yf();if(f)return f;if(g)return g;let P=new hf,$=globalThis.Event??D,h=globalThis.CustomEvent??V,y=globalThis.EventTarget??EventTarget;return g={CustomEvent:h,Element:X,Event:$,EventTarget:y,HTMLScriptElement:c,HTMLElement:k,Node:H,customElements:P},Object.assign(globalThis,{CustomEvent:h,Element:X,Event:$,EventTarget:y,HTMLScriptElement:c,HTMLElement:k,Node:H,customElements:P,window:g}),g}function Tf(f,P){let $=P.tagName==="script"?new c:new k(P.tagName);return $.setSerializedFragment(f,zf(P.innerHtml),P.attributes),$}function Lf(f){return f.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function zf(f){return f.replace(/<!--.*?-->/gs,"").replace(/<[^>]+>/g,"")}function bf(f){return Pf(f).map((P)=>{if(!P.startsWith("<"))return B(P);let $=Z(P,0);if(!$||$.type!=="open")return B(P);return Tf(P,$)})}function _f(f){if(f.nodeType===H.TEXT_NODE)return f.textContent??"";return"outerHTML"in f&&typeof f.outerHTML==="string"?f.outerHTML:f.textContent??""}U();function Cf(f,P="hydrate"){return{kind:"script-module",src:f,stage:P}}function IP(f){return{kind:"modulepreload",href:f}}function BP(f,P){return P?{kind:"style",href:f,media:P}:{kind:"style",href:f}}async function VP(f,P){return(await Y(s(f,P))).markup}async function TP(f,P){return Y(s(f,P))}async function LP(f,P){return Ef(await Y(s(f,P)))}async function zP(f,P){return Of(await Y(s(f,P)))}async function Y(f){U();let P=f.environment??jf(),$=G(uf(f.ssrContext));try{let h="component"in f?f.component:await f.load(),y=new h;Sf(P,y,f.authoredContent,f.prepareHost),f.initialize?.(y);let j=f.clientModuleSrc??await f.resolveClientModuleSrc?.(h),b=f.assets??await f.resolveAssets?.(h)??[],q=pf(b,j),J=tf(q)??j,A=f.tagName??af(h),F=(f.now??vf)().toISOString(),T=df(f.renderOptions),L=Nf(y),z=L?.renderHostToString?.(T)??y.renderHostToString(T),qf=rf(y,L,z);return{markup:z,metadata:{assets:q,clientModuleUrl:J,generatedAt:F,tagName:A},preview:qf}}finally{$()}}function Nf(f){return R()?.resolveRenderBridge(f)}function rf(f,P,$){if(!P)return f.renderHost?.()??{nodeType:1,outerHTML:$};if(!P.renderHostToString&&P.renderHost)return{nodeType:1,outerHTML:$};return P.renderHost?.()??f.renderHost?.()??{nodeType:1,outerHTML:$}}function Sf(f,P,$,h){if(!of(P)){if($===void 0&&h===void 0)return;throw Error(`${P.constructor.name} cannot prepare SSR host content because it does not expose an innerHTML host surface.`)}f.prepareHost(P,{authoredContent:$}),h?.(P,f)}function uf(f){if(!f||f.length===0)return[];return f.map((P)=>({getContext:()=>P.value,getContextKey:()=>P.context,renderHydrationScript:()=>{return},renderHydrationScriptTag:()=>{return}}))}function Ef(f){if("metadata"in f)return{assets:f.metadata.assets,clientModuleSrc:f.metadata.clientModuleUrl,generatedAt:f.metadata.generatedAt,markup:f.markup,tagName:f.metadata.tagName};let{preview:P,...$}=f;return $}function Of(f){return{assets:f.metadata.assets,clientModuleSrc:f.metadata.clientModuleUrl,generatedAt:f.metadata.generatedAt,markup:f.markup,preview:f.preview,tagName:f.metadata.tagName}}function vf(){return new Date}function Mf(f){if(!f)return[];return[Cf(f)]}function pf(f,P){if(!P)return f;if(f.some(($)=>$.kind==="script-module"&&$.src===P))return f;return[...Mf(P),...f]}function tf(f){return f.find((P)=>P.kind==="script-module")?.src}function s(f,P){if(typeof f==="function")return{...P,component:f};return f}function df(f){if(f?.mode!==void 0||f?.hydrate!==void 0)return f;return{...f,mode:"hydrate"}}function of(f){return"innerHTML"in f}function af(f){let P=x(f);if(!P)throw Error(`${f.name} is missing @customElement metadata.`);return P}export{Ef as toRenderedComponentPayload,BP as styleAsset,Cf as scriptModuleAsset,tf as resolvePrimaryClientModuleSrc,zP as renderComponentWithPreview,VP as renderComponentToString,LP as renderComponentToPayload,TP as renderComponent,df as normalizeRenderOptions,IP as modulePreloadAsset,pf as mergeRenderedComponentAssets};
1
+ var Hf=((f)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(f,{get:(P,$)=>(typeof require<"u"?require:P)[$]}):f)(function(f){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+f+'" is not supported')});var _=Symbol.for("@ecopages/radiant.component-ssr-runtime");function R(){return globalThis[_]}function C(f){globalThis[_]=f}function u(f){switch(f){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function Qf(f){switch(typeof f){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(f))return"array";if(Object.prototype.toString.call(f)==="[object Object]")return"object"}function Zf(f){switch(f){case Number:return 0;case String:return"";case Boolean:return!1;default:return null}}function gf(f){try{return JSON.parse(f)}catch{throw TypeError("Invalid JSON string")}}var kf={array(f){let P=gf(f);if(!Array.isArray(P))throw TypeError(`Expected an array but got a value of type "${typeof P}"`);return P},boolean(f){return!(f==="0"||String(f).toLowerCase()==="false")},number(f){return Number(f.replace(/_/g,""))},object(f){let P=JSON.parse(f);if(P===null||typeof P!=="object"||Array.isArray(P))throw TypeError(`expected value of type "object" but instead got value "${f}" of type "${Qf(P)}"`);return P},string(f){return f}},N={default:E,array:r,object:r};function r(f){return JSON.stringify(f)}function E(f){return`${f}`}function S(f,P){let $=u(P);if(!$)throw TypeError(`[radiant-element] Unknown type "${P}"`);return kf[$](f)}function O(f,P){let $=u(P);if(!$)throw TypeError(`[radiant-element] Unknown type "${P}"`);return(N[$]??N.default??E)(f)}function Jf(f){return typeof f==="boolean"}function Ff(f){return typeof f==="number"}function Rf(f){return typeof f==="string"}function xf(f){return Array.isArray(f)}function Gf(f){return typeof f==="object"&&!Array.isArray(f)&&f!==null}function nf(f,P){switch(f){case Boolean:return Jf(P);case Number:return Ff(P);case String:return Rf(P);case Array:return xf(P);case Object:return Gf(P);default:return!1}}var ef=(f,P,$,h)=>{if(P===Boolean){let j=f.getAttribute($);if(j===null)return h;return j===""?!0:S(j,P)}let y=f.getAttribute($);return y!==null?S(y,P):h??Zf(P)};var i=Symbol.for("@ecopages/radiant.customElementTagName");function PP(f,P){f[i]=P}function x(f){return f[i]}var K=Symbol.for("@ecopages/radiant.reactivePropDefinitions");function hP(f,P,$){let h=f.constructor,y=h[K]??[];if(y.some((j)=>j.name===P))return;y.push({name:P,options:$}),h[K]=y}function v(f){return(f.constructor[K]??[]).slice()}var M=Symbol.for("@ecopages/radiant.ssr-context-provider-resolver");function p(){return globalThis}function t(f){p()[M]=f}function jP(f){return p()[M]?.(f)}var Q;function o(){if(Q!==void 0)return Q;try{let{AsyncLocalStorage:f}=(()=>{throw new Error("Cannot require module "+"node:async_hooks");})();return Q=new f,Q}catch{return Q=null,null}}var d=Symbol.for("@ecopages/radiant.ssr-context-fallback-stack");function a(){let f=globalThis;return f[d]??=[],f[d]}function G(f){if(f.length===0)return()=>{return};let P=new Map;for(let y of f)P.set(y.getContextKey(),y);let $=o();if($){let y=$.getStore()??[],j=[...y,P];return $.enterWith(j),()=>{$.enterWith(y)}}let h=a();return h.push(P),()=>{let y=h.lastIndexOf(P);if(y>=0)h.splice(y,1)}}function m(f){let P=o()?.getStore()??a();for(let $=P.length-1;$>=0;$-=1){let h=P[$]?.get(f);if(h)return h}return}function HP(f){let P=m(f);if(!P)return;return P.getContext()}t((f)=>m(f));class w{host;constructor(f){this.host=f}renderHost(){return{nodeType:1,outerHTML:this.renderHostToString({mode:"hydrate"})}}renderHostToString(f={},P=this.getHostAttributes()){let $=this.getTagName(),h=G(this.host.getContextProviders());try{return`<${$}${Uf(P)}>${this.renderHostContent(f)}</${$}>`}finally{h()}}renderHostContent(f){let P=this.host.renderToString(f),$=this.host.getAuthoredHydrationScriptMarkup?.()??"",h=this.host.getSlotProjectionScriptTag?.()??"";if(!(f.mode==="hydrate"||f.mode===void 0&&f.hydrate===!0))return`${P}${$}${h}`;let j=this.host.getHydrationBindings().map((b)=>b.renderHydrationScriptTag()).filter((b)=>typeof b==="string").join("");return`${P}${h}${j}`}getHostAttributes(){let f={},P=new Set;for(let $ of this.host.getReactiveProperties()){let h=this.host.getPropertyValue($.name);if(h===void 0||h===null||h===!1)continue;f[$.attribute]=String($.converter.toAttribute(h)),P.add($.attribute)}for(let $ of this.host.getReactivePropDefinitions()){let h=$.options.attribute??$.name;if(P.has(h))continue;let y=this.host.getPropertyValue($.name);if(y===void 0||y===null||y===!1)continue;f[h]=String(O(y,$.options.type)),P.add(h)}for(let $ of this.host.listAttributeNames()){let h=this.host.getAttributeValue($);if(h!==null)f[$]=h}return f}getTagName(){let f=x(this.host.constructor);if(!f)throw Error(`${this.host.constructor.name} is missing @customElement metadata.`);return f}}function Uf(f){return Object.entries(f).map(([P,$])=>` ${P}="${Wf($)}"`).join("")}function Wf(f){return f.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}import{renderToString as Xf}from"@ecopages/jsx/server";import{withServerCustomElementRenderHook as cf}from"@ecopages/jsx/server";var Df=Symbol.for("@ecopages/jsx.active-ssr-hydrate"),I=new WeakSet;function Yf(f){return{nodeType:1,outerHTML:l(f,{mode:"hydrate"})}}function l(f,P={}){return e(f).renderHostToString(P,n(f))}function n(f){let P=f;if(I.has(f))return e(f).getHostAttributes();I.add(f);try{return P.getHostSsrAttributes()}finally{I.delete(f)}}function e(f){let P=f;return new w({constructor:P.constructor,getAuthoredHydrationScriptMarkup:()=>P.getAuthoredHydrationScriptMarkup(),getHydrationBindings:()=>P.getHydrationBindings(),getSlotProjectionScriptTag:()=>P.getSlotProjectionScriptTag(),renderToString:($)=>P.renderToString($),getContextProviders:()=>P.getContextProviders(),getReactiveProperties:()=>P.getReactiveProperties(),getReactivePropDefinitions:()=>v(f),getPropertyValue:($)=>P[$],listAttributeNames:()=>typeof P.getAttributeNames==="function"?P.getAttributeNames():[],getAttributeValue:($)=>P.getAttribute($)})}function sf(f){return cf(({instance:P})=>{let $=ff(P);if(!$?.renderHostToString)return;let h=$.renderHostToString;return{nodeType:1,get outerHTML(){let y=Af();return h({hydrate:y,mode:y?"hydrate":"plain"})}}},f)}function ff(f){return f.resolveSsrRenderBridge?.()}function Af(){return globalThis[Df]===!0}function U(){let f=R();if(f)return f;let P={getHostAttributes:n,renderHost:Yf,renderHostToString:l,resolveRenderBridge:ff,renderView:($,h={})=>{let y=$;return sf(()=>Xf(y.resolveTrackedRenderOutput().value,h))}};return C(P),P}U();var W=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]);function Pf(f){let P=[],$=0;while($<f.length){let h=$;if(f.startsWith("<!--",$)){let b=f.indexOf("-->",$+4);$=b===-1?f.length:b+3,P.push(f.slice(h,$));continue}if(f[$]!=="<"){let b=f.indexOf("<",$);$=b===-1?f.length:b,P.push(f.slice(h,$));continue}let y=Z(f,$);if(!y){P.push(f.slice(h));break}if(y.type!=="open"||y.selfClosing||W.has(y.tagName)){$=y.end,P.push(f.slice(h,$));continue}$=y.end;let j=1;while($<f.length&&j>0){let b=f.indexOf("<",$);if(b===-1){$=f.length;break}let q=Z(f,b);if(!q){$=f.length;break}if($=q.end,q.type==="comment"||q.type==="declaration")continue;if(q.type==="open"&&!q.selfClosing&&!W.has(q.tagName)){j+=1;continue}if(q.type==="close")j-=1}P.push(f.slice(h,$))}return P.filter((h)=>h!=="")}function Kf(f,P){let $;for(let h=P+1;h<f.length;h+=1){let y=f[h];if($){if(y===$)$=void 0;continue}if(y==='"'||y==="'"){$=y;continue}if(y===">")return h+1}return f.length}function wf(f){let P={},$=/([:^@A-Za-z0-9_.-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>/]+)))?/g;for(let h of f.matchAll($)){let[,y,j,b,q]=h;if(!y)continue;P[y]=j??b??q??""}return P}function Z(f,P){if(f.startsWith("<!--",P)){let F=f.indexOf("-->",P+4);return{end:F===-1?f.length:F+3,type:"comment"}}let $=Kf(f,P),h=f.slice(P+1,$-1).trim();if(h==="")return;if(h.startsWith("!")||h.startsWith("?"))return{end:$,type:"declaration"};if(h.startsWith("/"))return{end:$,type:"close"};let y=/\/\s*$/.test(h),j=y?h.replace(/\/\s*$/,"").trim():h,b=j.split(/[\s/>]/,1)[0]?.toLowerCase()??"",q=b.length,J=j.slice(q).trim(),A=y||W.has(b)?"":If(f,P,$,b);return{attributes:wf(J),end:$,innerHtml:A,selfClosing:y,tagName:b,type:"open"}}function If(f,P,$,h){let y=$,j=1;while(y<f.length&&j>0){let b=f.indexOf("<",y);if(b===-1)return f.slice($);let q=Z(f,b);if(!q)return f.slice($);if(q.type==="open"&&q.tagName===h&&!q.selfClosing&&!W.has(h))j+=1;if(q.type==="close"){if(f.slice(b+2,q.end-1).trim().toLowerCase()===h){if(j-=1,j===0)return f.slice($,b)}}y=q.end}return f.slice($)}class H extends EventTarget{nodeType;static ELEMENT_NODE=1;static TEXT_NODE=3;childNodes=[];parentNode=null;constructor(f){super();this.nodeType=f}append(...f){for(let P of f)this.appendChild(typeof P==="string"?B(P):P)}appendChild(f){if("parentNode"in f&&f.parentNode&&"removeChild"in f.parentNode)f.parentNode.removeChild(f);return this.childNodes.push(f),f.parentNode=this,f}removeChild(f){let P=this.childNodes.indexOf(f);if(P===-1)return f;return this.childNodes.splice(P,1),f.parentNode=null,f}replaceChildren(...f){for(let P of this.childNodes)P.parentNode=null;this.childNodes=[],this.append(...f)}get textContent(){return this.childNodes.map((f)=>f.textContent??"").join("")}set textContent(f){this.replaceChildren(f??"")}}class $f extends H{value;constructor(f){super(H.TEXT_NODE);this.value=f}get textContent(){return this.value}set textContent(f){this.value=f??""}}class X extends H{attributes=new Map;fragmentHtml;fragmentText;localName;tagName;constructor(f="div"){super(H.ELEMENT_NODE);this.localName=f.toLowerCase(),this.tagName=this.localName.toUpperCase()}hasAttribute(f){return this.attributes.has(f)}getAttribute(f){return this.attributes.get(f)??null}getAttributeNames(){return Array.from(this.attributes.keys())}setAttribute(f,P){this.fragmentHtml=void 0,this.attributes.set(f,String(P))}removeAttribute(f){this.fragmentHtml=void 0,this.attributes.delete(f)}querySelector(){return null}querySelectorAll(){return[]}matches(){return!1}get outerHTML(){if(this.fragmentHtml!==void 0)return this.fragmentHtml;let f=Array.from(this.attributes.entries()).map(([P,$])=>` ${P}="${Lf($)}"`).join("");return`<${this.localName}${f}>${this.innerHTML}</${this.localName}>`}get innerHTML(){return this.childNodes.map((f)=>_f(f)).join("")}set innerHTML(f){this.fragmentHtml=void 0,this.fragmentText=void 0,this.replaceChildren(...bf(f))}get textContent(){return this.fragmentText??super.textContent??""}set textContent(f){this.fragmentHtml=void 0,this.fragmentText=f??"",super.textContent=f}setSerializedFragment(f,P,$){this.fragmentHtml=f,this.fragmentText=P,this.attributes=new Map(Object.entries($)),this.replaceChildren()}}class D{bubbles;cancelable;composed;type;constructor(f,P={}){this.type=f,this.bubbles=P.bubbles??!1,this.cancelable=P.cancelable??!1,this.composed=P.composed??!1}}class V extends D{detail;constructor(f,P={}){super(f,P);this.detail=P.detail}}class k extends X{isConnected=!1;constructor(f="div"){super(f)}insertAdjacentHTML(f,P){this.append(...bf(P))}}class c extends k{constructor(){super("script")}}class hf{definitions=new Map;define(f,P){if(this.definitions.has(f))return;this.definitions.set(f,P)}get(f){return this.definitions.get(f)}}var g;function B(f){return new $f(f)}function yf(){let f=globalThis,P=f.customElements;if(typeof f.Node>"u"||typeof f.Element>"u"||typeof f.HTMLElement>"u"||!P||typeof P.define!=="function"||typeof P.get!=="function")return;return f.window??{CustomEvent:f.CustomEvent??V,Element:f.Element,Event:f.Event??D,EventTarget:f.EventTarget??EventTarget,HTMLScriptElement:f.HTMLScriptElement??f.HTMLElement,HTMLElement:f.HTMLElement,Node:f.Node,customElements:P}}function Bf(){let f=yf();if(f)return f;return Vf()}function jf(){return Bf(),{prepareHost(f,P={}){if(P.authoredContent!==void 0)f.innerHTML=P.authoredContent}}}function Vf(){let f=yf();if(f)return f;if(g)return g;let P=new hf,$=globalThis.Event??D,h=globalThis.CustomEvent??V,y=globalThis.EventTarget??EventTarget;return g={CustomEvent:h,Element:X,Event:$,EventTarget:y,HTMLScriptElement:c,HTMLElement:k,Node:H,customElements:P},Object.assign(globalThis,{CustomEvent:h,Element:X,Event:$,EventTarget:y,HTMLScriptElement:c,HTMLElement:k,Node:H,customElements:P,window:g}),g}function Tf(f,P){let $=P.tagName==="script"?new c:new k(P.tagName);return $.setSerializedFragment(f,zf(P.innerHtml),P.attributes),$}function Lf(f){return f.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function zf(f){return f.replace(/<!--.*?-->/gs,"").replace(/<[^>]+>/g,"")}function bf(f){return Pf(f).map((P)=>{if(!P.startsWith("<"))return B(P);let $=Z(P,0);if(!$||$.type!=="open")return B(P);return Tf(P,$)})}function _f(f){if(f.nodeType===H.TEXT_NODE)return f.textContent??"";return"outerHTML"in f&&typeof f.outerHTML==="string"?f.outerHTML:f.textContent??""}U();function Cf(f,P="hydrate"){return{kind:"script-module",src:f,stage:P}}function IP(f){return{kind:"modulepreload",href:f}}function BP(f,P){return P?{kind:"style",href:f,media:P}:{kind:"style",href:f}}async function VP(f,P){return(await Y(s(f,P))).markup}async function TP(f,P){return Y(s(f,P))}async function LP(f,P){return Ef(await Y(s(f,P)))}async function zP(f,P){return Of(await Y(s(f,P)))}async function Y(f){U();let P=f.environment??jf(),$=G(uf(f.ssrContext));try{let h="component"in f?f.component:await f.load(),y=new h;Sf(P,y,f.authoredContent,f.prepareHost),f.initialize?.(y);let j=f.clientModuleSrc??await f.resolveClientModuleSrc?.(h),b=f.assets??await f.resolveAssets?.(h)??[],q=pf(b,j),J=tf(q)??j,A=f.tagName??af(h),F=(f.now??vf)().toISOString(),T=df(f.renderOptions),L=Nf(y),z=L?.renderHostToString?.(T)??y.renderHostToString(T),qf=rf(y,L,z);return{markup:z,metadata:{assets:q,clientModuleUrl:J,generatedAt:F,tagName:A},preview:qf}}finally{$()}}function Nf(f){return R()?.resolveRenderBridge(f)}function rf(f,P,$){if(!P)return f.renderHost?.()??{nodeType:1,outerHTML:$};if(!P.renderHostToString&&P.renderHost)return{nodeType:1,outerHTML:$};return P.renderHost?.()??f.renderHost?.()??{nodeType:1,outerHTML:$}}function Sf(f,P,$,h){if(!of(P)){if($===void 0&&h===void 0)return;throw Error(`${P.constructor.name} cannot prepare SSR host content because it does not expose an innerHTML host surface.`)}f.prepareHost(P,{authoredContent:$}),h?.(P,f)}function uf(f){if(!f||f.length===0)return[];return f.map((P)=>({getContext:()=>P.value,getContextKey:()=>P.context,renderHydrationScript:()=>{return},renderHydrationScriptTag:()=>{return}}))}function Ef(f){if("metadata"in f)return{assets:f.metadata.assets,clientModuleSrc:f.metadata.clientModuleUrl,generatedAt:f.metadata.generatedAt,markup:f.markup,tagName:f.metadata.tagName};let{preview:P,...$}=f;return $}function Of(f){return{assets:f.metadata.assets,clientModuleSrc:f.metadata.clientModuleUrl,generatedAt:f.metadata.generatedAt,markup:f.markup,preview:f.preview,tagName:f.metadata.tagName}}function vf(){return new Date}function Mf(f){if(!f)return[];return[Cf(f)]}function pf(f,P){if(!P)return f;if(f.some(($)=>$.kind==="script-module"&&$.src===P))return f;return[...Mf(P),...f]}function tf(f){return f.find((P)=>P.kind==="script-module")?.src}function s(f,P){if(typeof f==="function")return{...P,component:f};return f}function df(f){if(f?.mode!==void 0||f?.hydrate!==void 0)return f;return{...f,mode:"hydrate"}}function of(f){return"innerHTML"in f}function af(f){let P=x(f);if(!P)throw Error(`${f.name} is missing @customElement metadata.`);return P}export{Ef as toRenderedComponentPayload,BP as styleAsset,Cf as scriptModuleAsset,tf as resolvePrimaryClientModuleSrc,zP as renderComponentWithPreview,VP as renderComponentToString,LP as renderComponentToPayload,TP as renderComponent,df as normalizeRenderOptions,IP as modulePreloadAsset,pf as mergeRenderedComponentAssets};
2
2
 
3
- //# debugId=80E164145B95929464756E2164756E21
3
+ //# debugId=BC8F51CFB11E55C164756E2164756E21
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/core/radiant-component-ssr-registry.ts", "../src/utils/attribute-utils.ts", "../src/context/context-ssr-bridge.ts", "../src/core/custom-element-metadata.ts", "../src/core/reactive-prop-metadata.ts", "../src/server/context-ssr.ts", "../src/core/radiant-component-ssr.ts", "../src/server/radiant-component-ssr-runtime.ts", "../src/server/html-parser.ts", "../src/server/light-dom-shim.ts", "../src/server/render-component.ts"],
3
+ "sources": ["../src/core/radiant-component-ssr-registry.ts", "../src/utils/attribute-utils.ts", "../src/core/custom-element-metadata.ts", "../src/core/reactive-prop-metadata.ts", "../src/context/context-ssr-bridge.ts", "../src/server/context-ssr.ts", "../src/core/radiant-component-ssr.ts", "../src/server/radiant-component-ssr-runtime.ts", "../src/server/html-parser.ts", "../src/server/light-dom-shim.ts", "../src/server/render-component.ts"],
4
4
  "sourcesContent": [
5
5
  "import type { JsxRenderable } from '@ecopages/jsx';\nimport type { RenderToStringOptions } from '@ecopages/jsx/server';\n\n/**\n * Optional SSR hooks exposed by `RadiantElement` instances to the shared\n * server runtime.\n *\n * The bridge lets the runtime detect whether a component is still using the\n * inherited host SSR implementation or has taken ownership of host rendering\n * through explicit overrides.\n */\nexport type RadiantElementRenderBridge = {\n\trenderHost?: () => JsxRenderable;\n\trenderHostToString?: (options?: RenderToStringOptions) => string;\n};\n\n/**\n * Runtime shape required by the shared Radiant SSR helpers.\n *\n * This is intentionally narrower than `RadiantElement` itself so the server\n * runtime can stay decoupled from the full client base-class implementation.\n */\nexport type RadiantElementSsrCapable = HTMLElement & {\n\tresolveSsrRenderBridge?: () => RadiantElementRenderBridge;\n\tgetHostSsrAttributes?: () => Record<string, string>;\n\trenderToString(options?: RenderToStringOptions): string;\n\trenderHost?(): JsxRenderable;\n\trenderHostToString(options?: RenderToStringOptions): string;\n};\n\n/**\n * Shared SSR runtime contract registered on `globalThis`.\n *\n * Server entrypoints install one implementation that both direct component SSR\n * and nested JSX custom-element SSR can reuse without importing client-only\n * internals into every call site.\n */\nexport type RadiantElementSsrRuntime = {\n\tgetHostAttributes(component: RadiantElementSsrCapable): Record<string, string>;\n\trenderHost(component: RadiantElementSsrCapable): JsxRenderable;\n\trenderHostToString(component: RadiantElementSsrCapable, options?: RenderToStringOptions): string;\n\tresolveRenderBridge(component: RadiantElementSsrCapable): RadiantElementRenderBridge | undefined;\n\trenderView(component: RadiantElementSsrCapable, options?: RenderToStringOptions): string;\n};\n\nconst RADIANT_COMPONENT_SSR_RUNTIME_SYMBOL = Symbol.for('@ecopages/radiant.component-ssr-runtime');\n\ntype GlobalSsrRuntimeState = typeof globalThis & {\n\t[RADIANT_COMPONENT_SSR_RUNTIME_SYMBOL]?: RadiantElementSsrRuntime;\n};\n\n/**\n * Reads the currently registered Radiant SSR runtime from `globalThis`.\n *\n * Returns `undefined` when no server entrypoint has installed the runtime yet.\n */\nexport function getRadiantElementSsrRuntime(): RadiantElementSsrRuntime | undefined {\n\treturn (globalThis as GlobalSsrRuntimeState)[RADIANT_COMPONENT_SSR_RUNTIME_SYMBOL];\n}\n\n/**\n * Registers the shared Radiant SSR runtime on `globalThis`.\n *\n * The latest registration wins, which keeps server adapters free to install\n * the runtime eagerly from their own explicit entrypoint.\n */\nexport function registerRadiantElementSsrRuntime(runtime: RadiantElementSsrRuntime): void {\n\t(globalThis as GlobalSsrRuntimeState)[RADIANT_COMPONENT_SSR_RUNTIME_SYMBOL] = runtime;\n}\n",
6
6
  "import type { RadiantElement } from '../core/radiant-element';\n\nexport type AttributeTypeConstant = typeof Array | typeof Boolean | typeof Number | typeof Object | typeof String;\n\nexport type AttributeTypeDefault = Array<unknown> | boolean | number | Record<string, unknown> | string;\n\n/**\n * Parses the given attribute type constant and returns its corresponding string representation.\n *\n * @param constant - The attribute type constant to parse.\n * @returns The string representation of the attribute type constant.\n */\nexport function parseAttributeTypeConstant(constant?: AttributeTypeConstant) {\n\tswitch (constant) {\n\t\tcase Array:\n\t\t\treturn 'array';\n\t\tcase Boolean:\n\t\t\treturn 'boolean';\n\t\tcase Number:\n\t\t\treturn 'number';\n\t\tcase Object:\n\t\t\treturn 'object';\n\t\tcase String:\n\t\t\treturn 'string';\n\t}\n}\n\n/**\n * Parses the attribute type default value and returns its type as a string.\n *\n * @param defaultValue - The default value of the attribute type.\n * @returns The type of the default value as a string.\n */\nexport function parseAttributeTypeDefault(defaultValue?: AttributeTypeDefault) {\n\tswitch (typeof defaultValue) {\n\t\tcase 'boolean':\n\t\t\treturn 'boolean';\n\t\tcase 'number':\n\t\t\treturn 'number';\n\t\tcase 'string':\n\t\t\treturn 'string';\n\t}\n\n\tif (Array.isArray(defaultValue)) return 'array';\n\tif (Object.prototype.toString.call(defaultValue) === '[object Object]') return 'object';\n}\n\n/**\n * Returns the default value for a given attribute type.\n *\n * @param type - The attribute type constant.\n * @returns The default value for the specified attribute type.\n */\nexport function defaultValueForType(type: AttributeTypeConstant): unknown {\n\tswitch (type) {\n\t\tcase Number:\n\t\t\treturn 0;\n\t\tcase String:\n\t\t\treturn '';\n\t\tcase Boolean:\n\t\t\treturn false;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\ntype Reader = (value: string) => number | string | boolean | object | unknown[];\n\n/**\n * Utility function to parse a JSON string safely\n */\nfunction parseJSON<T>(value: string): T {\n\ttry {\n\t\treturn JSON.parse(value);\n\t} catch {\n\t\tthrow new TypeError('Invalid JSON string');\n\t}\n}\n\n/**\n * Object that maps attribute types to reader functions.\n * @type {Object.<string, Reader>}\n */\nconst readers: { [type: string]: Reader } = {\n\tarray(value: string): unknown[] {\n\t\tconst array = parseJSON<unknown[]>(value);\n\t\tif (!Array.isArray(array)) {\n\t\t\tthrow new TypeError(`Expected an array but got a value of type \"${typeof array}\"`);\n\t\t}\n\t\treturn array;\n\t},\n\n\tboolean(value: string): boolean {\n\t\treturn !(value === '0' || String(value).toLowerCase() === 'false');\n\t},\n\n\tnumber(value: string): number {\n\t\tconst number = Number(value.replace(/_/g, ''));\n\t\treturn number;\n\t},\n\n\tobject(value: string): object {\n\t\tconst object = JSON.parse(value);\n\t\tif (object === null || typeof object !== 'object' || Array.isArray(object)) {\n\t\t\tthrow new TypeError(\n\t\t\t\t`expected value of type \"object\" but instead got value \"${value}\" of type \"${parseAttributeTypeDefault(\n\t\t\t\t\tobject,\n\t\t\t\t)}\"`,\n\t\t\t);\n\t\t}\n\t\treturn object;\n\t},\n\n\tstring(value: string): string {\n\t\treturn value;\n\t},\n};\n\ntype Writer = (value: unknown) => string;\n\n/**\n * Object that maps attribute types to writer functions.\n * @type {Object.<string, Writer>}\n */\nconst writers: { [type: string]: Writer } = {\n\tdefault: writeString,\n\tarray: writeJSON,\n\tobject: writeJSON,\n};\n\nfunction writeJSON(value: unknown) {\n\treturn JSON.stringify(value);\n}\n\nfunction writeString(value: unknown) {\n\treturn `${value}`;\n}\n\n/**\n * Reads the attribute value based on the provided type.\n * @param value - The attribute value to be read.\n * @param type - The type of the attribute.\n * @returns The parsed attribute value.\n * @throws {TypeError} If the provided type is unknown.\n */\nexport function readAttributeValue(value: string, type: AttributeTypeConstant) {\n\tconst readerType = parseAttributeTypeConstant(type);\n\tif (!readerType) throw new TypeError(`[radiant-element] Unknown type \"${type}\"`);\n\treturn readers[readerType]!(value);\n}\n\nexport type ReadAttributeValueReturnType = ReturnType<typeof readAttributeValue>;\n\n/**\n * Writes the attribute value based on the provided type.\n *\n * @param value - The value to be written.\n * @param type - The type of the attribute.\n * @returns The written attribute value.\n * @throws {TypeError} If the provided type is unknown.\n */\nexport function writeAttributeValue(value: unknown, type: AttributeTypeConstant) {\n\tconst writerType = parseAttributeTypeConstant(type);\n\tif (!writerType) throw new TypeError(`[radiant-element] Unknown type \"${type}\"`);\n\tconst writer: Writer = writers[writerType] ?? writers.default ?? writeString;\n\treturn writer(value);\n}\n\nexport type WriteAttributeValueReturnType = ReturnType<typeof writeAttributeValue>;\n\n/*\n * Type guard functions for each type in AttributeTypeConstant\n */\nfunction isBoolean(value: unknown): value is boolean {\n\treturn typeof value === 'boolean';\n}\n\nfunction isNumber(value: unknown): value is number {\n\treturn typeof value === 'number';\n}\n\nfunction isString(value: unknown): value is string {\n\treturn typeof value === 'string';\n}\n\nfunction isArray(value: unknown): value is Array<unknown> {\n\treturn Array.isArray(value);\n}\n\nfunction isObject(value: unknown): value is object {\n\treturn typeof value === 'object' && !Array.isArray(value) && value !== null;\n}\n\n/*\n * Check function to ensure defaultValue matches the type\n */\nexport function isValueOfType(type: AttributeTypeConstant, defaultValue: unknown): boolean {\n\tswitch (type) {\n\t\tcase Boolean:\n\t\t\treturn isBoolean(defaultValue);\n\t\tcase Number:\n\t\t\treturn isNumber(defaultValue);\n\t\tcase String:\n\t\t\treturn isString(defaultValue);\n\t\tcase Array:\n\t\t\treturn isArray(defaultValue);\n\t\tcase Object:\n\t\t\treturn isObject(defaultValue);\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\nexport const getInitialValue = (\n\ttarget: RadiantElement,\n\ttype: AttributeTypeConstant,\n\tattributeKey: string,\n\tdefaultValue: unknown,\n) => {\n\tif (type === Boolean) {\n\t\tconst attributeValue = target.getAttribute(attributeKey);\n\t\tif (attributeValue === null) {\n\t\t\treturn defaultValue;\n\t\t}\n\n\t\treturn attributeValue === '' ? true : readAttributeValue(attributeValue, type);\n\t}\n\n\tconst attributeValue = target.getAttribute(attributeKey);\n\treturn attributeValue !== null\n\t\t? readAttributeValue(attributeValue, type)\n\t\t: (defaultValue ?? (defaultValueForType(type) as typeof defaultValue));\n};\n",
7
- "import type { SsrSerializableContextProvider } from './context-provider';\nimport type { UnknownContext } from './types';\n\ntype SsrContextProviderResolver = (context: UnknownContext) => SsrSerializableContextProvider | undefined;\n\nconst SSR_CONTEXT_PROVIDER_RESOLVER_SYMBOL = Symbol.for('@ecopages/radiant.ssr-context-provider-resolver');\n\ntype GlobalResolverScope = typeof globalThis & {\n\t[SSR_CONTEXT_PROVIDER_RESOLVER_SYMBOL]?: SsrContextProviderResolver;\n};\n\nfunction getGlobalResolverScope(): GlobalResolverScope {\n\treturn globalThis as GlobalResolverScope;\n}\n\n/**\n * Installs the ambient SSR provider resolver used by shared context runtime helpers.\n *\n * Server-side rendering infrastructure owns the actual provider stack storage and\n * publishes a lookup function here so client/runtime code does not need to import\n * server-oriented modules.\n */\nexport function installSsrContextProviderResolver(resolver: SsrContextProviderResolver): void {\n\tgetGlobalResolverScope()[SSR_CONTEXT_PROVIDER_RESOLVER_SYMBOL] = resolver;\n}\n\n/**\n * Resolves an ambient SSR provider when a server render has published one.\n */\nexport function resolveAmbientSsrContextProvider(context: UnknownContext): SsrSerializableContextProvider | undefined {\n\treturn getGlobalResolverScope()[SSR_CONTEXT_PROVIDER_RESOLVER_SYMBOL]?.(context);\n}\n",
8
7
  "export const CUSTOM_ELEMENT_TAG_NAME = Symbol.for('@ecopages/radiant.customElementTagName');\n\ntype CustomElementConstructorWithMetadata = CustomElementConstructor & {\n\t[CUSTOM_ELEMENT_TAG_NAME]?: string;\n};\n\n/**\n * Sets the custom element tag name for a given constructor.\n * This is used internally to associate a class with its custom element tag, which is necessary for features like hydration and SSR support.\n * @param target The constructor of the custom element.\n * @param tagName The tag name to associate with the custom element.\n */\nexport function setCustomElementTagName(target: CustomElementConstructor, tagName: string): void {\n\t(target as CustomElementConstructorWithMetadata)[CUSTOM_ELEMENT_TAG_NAME] = tagName;\n}\n\n/**\n * Retrieves the custom element tag name associated with a given constructor.\n * @param target The constructor of the custom element.\n * @returns The tag name associated with the custom element, or `undefined` if not set.\n */\nexport function getCustomElementTagName(target: CustomElementConstructor): string | undefined {\n\treturn (target as CustomElementConstructorWithMetadata)[CUSTOM_ELEMENT_TAG_NAME];\n}\n",
9
8
  "import type { ReactivePropertyOptions } from './radiant-element';\n\nconst REACTIVE_PROP_DEFINITIONS = Symbol.for('@ecopages/radiant.reactivePropDefinitions');\n\nexport type ReactivePropDefinition = {\n\tname: string;\n\toptions: ReactivePropertyOptions<unknown>;\n};\n\ntype RadiantConstructorWithReactiveProps = CustomElementConstructor & {\n\t[REACTIVE_PROP_DEFINITIONS]?: ReactivePropDefinition[];\n};\n\nexport function registerReactivePropDefinition(\n\ttarget: object,\n\tpropertyName: string,\n\toptions: ReactivePropertyOptions<unknown>,\n): void {\n\tconst constructor = target.constructor as RadiantConstructorWithReactiveProps;\n\tconst definitions = constructor[REACTIVE_PROP_DEFINITIONS] ?? [];\n\n\tif (definitions.some((definition) => definition.name === propertyName)) {\n\t\treturn;\n\t}\n\n\tdefinitions.push({ name: propertyName, options });\n\tconstructor[REACTIVE_PROP_DEFINITIONS] = definitions;\n}\n\nexport function getReactivePropDefinitions(target: object): ReactivePropDefinition[] {\n\treturn ((target.constructor as RadiantConstructorWithReactiveProps)[REACTIVE_PROP_DEFINITIONS] ?? []).slice();\n}\n",
9
+ "import type { SsrSerializableContextProvider } from './context-provider';\nimport type { UnknownContext } from './types';\n\ntype SsrContextProviderResolver = (context: UnknownContext) => SsrSerializableContextProvider | undefined;\n\nconst SSR_CONTEXT_PROVIDER_RESOLVER_SYMBOL = Symbol.for('@ecopages/radiant.ssr-context-provider-resolver');\n\ntype GlobalResolverScope = typeof globalThis & {\n\t[SSR_CONTEXT_PROVIDER_RESOLVER_SYMBOL]?: SsrContextProviderResolver;\n};\n\nfunction getGlobalResolverScope(): GlobalResolverScope {\n\treturn globalThis as GlobalResolverScope;\n}\n\n/**\n * Installs the ambient SSR provider resolver used by shared context runtime helpers.\n *\n * Server-side rendering infrastructure owns the actual provider stack storage and\n * publishes a lookup function here so client/runtime code does not need to import\n * server-oriented modules.\n */\nexport function installSsrContextProviderResolver(resolver: SsrContextProviderResolver): void {\n\tgetGlobalResolverScope()[SSR_CONTEXT_PROVIDER_RESOLVER_SYMBOL] = resolver;\n}\n\n/**\n * Resolves an ambient SSR provider when a server render has published one.\n */\nexport function resolveAmbientSsrContextProvider(context: UnknownContext): SsrSerializableContextProvider | undefined {\n\treturn getGlobalResolverScope()[SSR_CONTEXT_PROVIDER_RESOLVER_SYMBOL]?.(context);\n}\n",
10
10
  "import type { AsyncLocalStorage } from 'node:async_hooks';\nimport type { SsrSerializableContextProvider } from '../context/context-provider';\nimport { installSsrContextProviderResolver } from '../context/context-ssr-bridge';\nimport type { ContextType, UnknownContext } from '../context/types';\n\ntype ProviderFrame = Map<UnknownContext, SsrSerializableContextProvider>;\ntype ProviderStack = ProviderFrame[];\n\nlet resolvedAsyncLocalStorage: AsyncLocalStorage<ProviderStack> | null | undefined;\n\n/**\n * Lazily resolves `AsyncLocalStorage` from `node:async_hooks`.\n *\n * The dynamic `require` is necessary because browser-based SSR tests import\n * this server-oriented module directly. A top-level static import would break\n * those browser bundles even though normal application SSR runs on the server.\n *\n * On the server (Node.js, Bun, Cloudflare Workers) the import always succeeds.\n * In browser test environments where SSR rendering is exercised without a real\n * server, the fallback global stack is used instead.\n */\nfunction getAsyncLocalStorage(): AsyncLocalStorage<ProviderStack> | null {\n\tif (resolvedAsyncLocalStorage !== undefined) {\n\t\treturn resolvedAsyncLocalStorage;\n\t}\n\n\ttry {\n\t\tconst { AsyncLocalStorage: ALS } = require('node:async_hooks') as typeof import('node:async_hooks');\n\t\tresolvedAsyncLocalStorage = new ALS<ProviderStack>();\n\t\treturn resolvedAsyncLocalStorage;\n\t} catch {\n\t\tresolvedAsyncLocalStorage = null;\n\t\treturn null;\n\t}\n}\n\nconst SSR_CONTEXT_FALLBACK_STACK_SYMBOL = Symbol.for('@ecopages/radiant.ssr-context-fallback-stack');\n\nfunction getFallbackStack(): ProviderStack {\n\tconst g = globalThis as typeof globalThis & { [SSR_CONTEXT_FALLBACK_STACK_SYMBOL]?: ProviderStack };\n\tg[SSR_CONTEXT_FALLBACK_STACK_SYMBOL] ??= [];\n\treturn g[SSR_CONTEXT_FALLBACK_STACK_SYMBOL];\n}\n\n/**\n * Pushes a temporary provider frame onto the SSR context stack.\n *\n * On the server, each call creates an isolated `AsyncLocalStorage` context so\n * concurrent renders cannot corrupt each other.\n *\n * In browser test environments where `AsyncLocalStorage` is unavailable, a\n * synchronous global stack is used as a fallback.\n */\nexport function withSsrContextProviders(providers: readonly SsrSerializableContextProvider[]): () => void {\n\tif (providers.length === 0) {\n\t\treturn () => undefined;\n\t}\n\n\tconst frame = new Map<UnknownContext, SsrSerializableContextProvider>();\n\n\tfor (const provider of providers) {\n\t\tframe.set(provider.getContextKey(), provider);\n\t}\n\n\tconst als = getAsyncLocalStorage();\n\n\tif (als) {\n\t\tconst parentStack = als.getStore() ?? [];\n\t\tconst childStack = [...parentStack, frame];\n\t\tals.enterWith(childStack);\n\n\t\treturn () => {\n\t\t\tals.enterWith(parentStack);\n\t\t};\n\t}\n\n\tconst stack = getFallbackStack();\n\tstack.push(frame);\n\n\treturn () => {\n\t\tconst index = stack.lastIndexOf(frame);\n\t\tif (index >= 0) stack.splice(index, 1);\n\t};\n}\n\n/**\n * Resolves the nearest SSR-visible provider for a given context token.\n *\n * Lookup walks the provider frames from innermost to outermost so nested host\n * serialization behaves the same way as runtime context resolution in the DOM.\n */\nexport function resolveSsrContextProvider<T extends UnknownContext>(\n\tcontext: T,\n): SsrSerializableContextProvider | undefined {\n\tconst store = getAsyncLocalStorage()?.getStore() ?? getFallbackStack();\n\n\tfor (let index = store.length - 1; index >= 0; index -= 1) {\n\t\tconst provider = store[index]?.get(context);\n\n\t\tif (provider) {\n\t\t\treturn provider;\n\t\t}\n\t}\n\n\treturn undefined;\n}\n\n/**\n * Resolves the current SSR-visible value for a given context token.\n *\n * This is the ergonomic helper consumed by SSR-aware decorators and component\n * render paths when they only need the context payload instead of the full\n * provider instance.\n */\nexport function resolveSsrContextValue<T extends UnknownContext>(context: T): ContextType<T> | undefined {\n\tconst provider = resolveSsrContextProvider(context);\n\n\tif (!provider) {\n\t\treturn undefined;\n\t}\n\n\treturn provider.getContext() as ContextType<T>;\n}\n\ninstallSsrContextProviderResolver((context) => resolveSsrContextProvider(context));\n",
11
11
  "import type { JsxRenderable } from '@ecopages/jsx';\nimport type { RenderToStringOptions } from '@ecopages/jsx/server';\nimport type { SsrSerializableContextProvider } from '../context/context-provider';\nimport { withSsrContextProviders } from '../server/context-ssr';\nimport { getCustomElementTagName } from './custom-element-metadata';\nimport type { ReactiveProperty } from './radiant-element';\nimport type { ReactivePropDefinition } from './reactive-prop-metadata';\nimport type { SsrSerializableHydrationBinding } from './ssr-hydration-binding';\nimport { writeAttributeValue } from '../utils/attribute-utils';\n\ntype RadiantElementSsrHost = {\n\tconstructor: CustomElementConstructor;\n\tgetAuthoredHydrationScriptMarkup?: () => string | undefined;\n\tgetContextProviders: () => SsrSerializableContextProvider[];\n\tgetHydrationBindings: () => SsrSerializableHydrationBinding[];\n\tgetSlotProjectionScriptTag?: () => string | undefined;\n\trenderToString: (options?: RenderToStringOptions) => string;\n\tgetReactiveProperties: () => ReactiveProperty[];\n\tgetReactivePropDefinitions: () => ReactivePropDefinition[];\n\tgetPropertyValue: (name: string) => unknown;\n\tlistAttributeNames: () => string[];\n\tgetAttributeValue: (name: string) => string | null;\n};\n\nexport class RadiantElementSsrService {\n\tconstructor(private readonly host: RadiantElementSsrHost) {}\n\n\tpublic renderHost(): JsxRenderable {\n\t\treturn {\n\t\t\tnodeType: 1,\n\t\t\touterHTML: this.renderHostToString({ mode: 'hydrate' }),\n\t\t};\n\t}\n\n\tpublic renderHostToString(options: RenderToStringOptions = {}, attributes = this.getHostAttributes()): string {\n\t\tconst tagName = this.getTagName();\n\t\tconst restoreSsrContexts = withSsrContextProviders(this.host.getContextProviders());\n\n\t\ttry {\n\t\t\treturn `<${tagName}${serializeHostAttributes(attributes)}>${this.renderHostContent(options)}</${tagName}>`;\n\t\t} finally {\n\t\t\trestoreSsrContexts();\n\t\t}\n\t}\n\n\tprivate renderHostContent(options: RenderToStringOptions): string {\n\t\tconst hostContent = this.host.renderToString(options);\n\t\tconst authoredHydrationMarkup = this.host.getAuthoredHydrationScriptMarkup?.() ?? '';\n\t\tconst slotProjectionScript = this.host.getSlotProjectionScriptTag?.() ?? '';\n\t\tconst hydrate = options.mode === 'hydrate' || (options.mode === undefined && options.hydrate === true);\n\n\t\tif (!hydrate) {\n\t\t\treturn `${hostContent}${authoredHydrationMarkup}${slotProjectionScript}`;\n\t\t}\n\n\t\tconst hydrationScripts = this.host\n\t\t\t.getHydrationBindings()\n\t\t\t.map((binding) => binding.renderHydrationScriptTag())\n\t\t\t.filter((markup): markup is string => typeof markup === 'string')\n\t\t\t.join('');\n\n\t\treturn `${hostContent}${slotProjectionScript}${hydrationScripts}`;\n\t}\n\n\tpublic getHostAttributes(): Record<string, string> {\n\t\tconst attributes: Record<string, string> = {};\n\t\tconst seenAttributes = new Set<string>();\n\n\t\tfor (const property of this.host.getReactiveProperties()) {\n\t\t\tconst currentValue = this.host.getPropertyValue(property.name);\n\t\t\tif (currentValue === undefined || currentValue === null || currentValue === false) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tattributes[property.attribute] = String(property.converter.toAttribute(currentValue));\n\t\t\tseenAttributes.add(property.attribute);\n\t\t}\n\n\t\tfor (const definition of this.host.getReactivePropDefinitions()) {\n\t\t\tconst attributeName = definition.options.attribute ?? definition.name;\n\n\t\t\tif (seenAttributes.has(attributeName)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst currentValue = this.host.getPropertyValue(definition.name);\n\n\t\t\tif (currentValue === undefined || currentValue === null || currentValue === false) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tattributes[attributeName] = String(writeAttributeValue(currentValue, definition.options.type));\n\t\t\tseenAttributes.add(attributeName);\n\t\t}\n\n\t\tfor (const attributeName of this.host.listAttributeNames()) {\n\t\t\tconst attributeValue = this.host.getAttributeValue(attributeName);\n\t\t\tif (attributeValue !== null) {\n\t\t\t\tattributes[attributeName] = attributeValue;\n\t\t\t}\n\t\t}\n\n\t\treturn attributes;\n\t}\n\n\tprivate getTagName(): string {\n\t\tconst tagName = getCustomElementTagName(this.host.constructor);\n\n\t\tif (!tagName) {\n\t\t\tthrow new Error(`${this.host.constructor.name} is missing @customElement metadata.`);\n\t\t}\n\n\t\treturn tagName;\n\t}\n}\n\nfunction serializeHostAttributes(attributes: Record<string, string>): string {\n\treturn Object.entries(attributes)\n\t\t.map(([name, value]) => ` ${name}=\"${escapeAttribute(value)}\"`)\n\t\t.join('');\n}\n\nfunction escapeAttribute(value: string): string {\n\treturn value.replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}\n",
12
12
  "import type { JsxRenderable } from '@ecopages/jsx';\nimport { renderToString as renderJsxToString } from '@ecopages/jsx/server';\nimport { withServerCustomElementRenderHook } from '@ecopages/jsx/server';\nimport type { RenderToStringOptions } from '@ecopages/jsx/server';\nimport { getReactivePropDefinitions } from '../core/reactive-prop-metadata';\nimport { RadiantElementSsrService } from '../core/radiant-component-ssr';\nimport {\n\tgetRadiantElementSsrRuntime,\n\tregisterRadiantElementSsrRuntime,\n\ttype RadiantElementRenderBridge,\n\ttype RadiantElementSsrCapable,\n\ttype RadiantElementSsrRuntime,\n} from '../core/radiant-component-ssr-registry';\nimport type { SsrSerializableContextProvider } from '../context/context-provider';\nimport type { ReactiveProperty } from '../core/radiant-element';\nimport type { SsrSerializableHydrationBinding } from '../core/ssr-hydration-binding';\n\ntype RadiantElementSsrHostBridge = Record<string, unknown> & {\n\tconstructor: CustomElementConstructor;\n\tgetAttribute(name: string): string | null;\n\tgetAttributeNames?(): string[];\n\tgetAuthoredHydrationScriptMarkup(): string | undefined;\n\tgetContextProviders(): SsrSerializableContextProvider[];\n\tgetHostSsrAttributes(): Record<string, string>;\n\tgetHydrationBindings(): SsrSerializableHydrationBinding[];\n\tgetReactiveProperties(): ReactiveProperty[];\n\tgetSlotProjectionScriptTag(): string | undefined;\n\tresolveTrackedRenderOutput(): { containsSlots: boolean; value: JsxRenderable };\n\trenderToString(options?: RenderToStringOptions): string;\n\tresolveSsrRenderBridge(): RadiantElementRenderBridge;\n};\n\nconst ACTIVE_SSR_HYDRATE_SYMBOL = Symbol.for('@ecopages/jsx.active-ssr-hydrate');\nconst hostAttributeResolutionInProgress = new WeakSet<object>();\n\n/**\n * Produces a JSX-compatible host preview for a Radiant element.\n *\n * The preview always serializes with hydration enabled because it is intended\n * for shell composition, where nested client islands must preserve hydration\n * markers when embedded into a larger SSR document.\n */\nfunction renderRadiantElementHost(component: RadiantElementSsrCapable): JsxRenderable {\n\treturn {\n\t\tnodeType: 1,\n\t\touterHTML: renderRadiantElementHostToString(component, { mode: 'hydrate' }),\n\t};\n}\n\n/**\n * Serializes a Radiant element host through the shared SSR service.\n *\n * This path centralizes host serialization so direct component renders and\n * nested JSX custom-element renders follow the same attribute and hydration\n * rules.\n */\nfunction renderRadiantElementHostToString(\n\tcomponent: RadiantElementSsrCapable,\n\toptions: RenderToStringOptions = {},\n): string {\n\treturn createRadiantElementSsrService(component).renderHostToString(\n\t\toptions,\n\t\tgetRadiantElementHostSsrAttributes(component),\n\t);\n}\n\n/**\n * Resolves the final host attribute map for a Radiant element.\n *\n * The recursion guard is required because `getHostSsrAttributes()` can itself\n * delegate back into the shared runtime. When that happens, the runtime falls\n * back to the raw SSR service attribute collector for the current call.\n */\nfunction getRadiantElementHostSsrAttributes(component: RadiantElementSsrCapable): Record<string, string> {\n\tconst bridge = component as unknown as RadiantElementSsrHostBridge;\n\n\tif (hostAttributeResolutionInProgress.has(component)) {\n\t\treturn createRadiantElementSsrService(component).getHostAttributes();\n\t}\n\n\thostAttributeResolutionInProgress.add(component);\n\n\ttry {\n\t\treturn bridge.getHostSsrAttributes();\n\t} finally {\n\t\thostAttributeResolutionInProgress.delete(component);\n\t}\n}\n\n/**\n * Adapts a `RadiantElement` instance to the shared `RadiantElementSsrService`\n * contract.\n *\n * Keeping this adapter local lets the base class shed its eager SSR service\n * instance while preserving the established host serialization behavior.\n */\nfunction createRadiantElementSsrService(component: RadiantElementSsrCapable): RadiantElementSsrService {\n\tconst bridge = component as unknown as RadiantElementSsrHostBridge;\n\n\treturn new RadiantElementSsrService({\n\t\tconstructor: bridge.constructor,\n\t\tgetAuthoredHydrationScriptMarkup: () => bridge.getAuthoredHydrationScriptMarkup(),\n\t\tgetHydrationBindings: () => bridge.getHydrationBindings(),\n\t\tgetSlotProjectionScriptTag: () => bridge.getSlotProjectionScriptTag(),\n\t\trenderToString: (options) => bridge.renderToString(options),\n\t\tgetContextProviders: () => bridge.getContextProviders(),\n\t\tgetReactiveProperties: () => bridge.getReactiveProperties(),\n\t\tgetReactivePropDefinitions: () => getReactivePropDefinitions(component),\n\t\tgetPropertyValue: (name) => bridge[name],\n\t\tlistAttributeNames: () => (typeof bridge.getAttributeNames === 'function' ? bridge.getAttributeNames() : []),\n\t\tgetAttributeValue: (name) => bridge.getAttribute(name),\n\t});\n}\n\n/**\n * Installs a temporary JSX custom-element render hook that understands\n * `RadiantElement` SSR bridges.\n *\n * This makes nested intrinsic custom-element renders honor explicit host SSR\n * overrides instead of always falling back to the inherited JSX runtime path.\n */\nfunction withRadiantServerCustomElementRenderBridge<T>(render: () => T): T {\n\treturn withServerCustomElementRenderHook(({ instance }) => {\n\t\tconst nestedBridge = resolveRadiantElementRenderBridge(instance as unknown as RadiantElementSsrCapable);\n\n\t\tif (!nestedBridge?.renderHostToString) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst renderHostToString = nestedBridge.renderHostToString;\n\n\t\treturn {\n\t\t\tnodeType: 1,\n\t\t\tget outerHTML() {\n\t\t\t\tconst hydrate = isActiveSsrHydrateMode();\n\t\t\t\treturn renderHostToString({ hydrate, mode: hydrate ? 'hydrate' : 'plain' });\n\t\t\t},\n\t\t};\n\t}, render);\n}\n\n/**\n * Resolves the SSR bridge exposed by a component instance, when present.\n */\nfunction resolveRadiantElementRenderBridge(\n\tcomponent: RadiantElementSsrCapable,\n): RadiantElementRenderBridge | undefined {\n\treturn component.resolveSsrRenderBridge?.();\n}\n\n/**\n * Reads the active JSX SSR hydrate flag from `globalThis`.\n *\n * Nested custom-element serialization mirrors the hydrate mode of the current\n * top-level render so host and child markup stay consistent.\n */\nfunction isActiveSsrHydrateMode(): boolean {\n\treturn (globalThis as typeof globalThis & Record<PropertyKey, unknown>)[ACTIVE_SSR_HYDRATE_SYMBOL] === true;\n}\n\n/**\n * Registers the shared Radiant SSR runtime if it is not already present.\n *\n * Server entrypoints call this eagerly so instance SSR methods, nested JSX\n * custom-element SSR, and portable server helpers all share one implementation\n * and one bridge-resolution strategy.\n */\nexport function ensureRadiantElementSsrRuntimeRegistered() {\n\tconst existingRuntime = getRadiantElementSsrRuntime();\n\n\tif (existingRuntime) {\n\t\treturn existingRuntime;\n\t}\n\n\tconst runtime: RadiantElementSsrRuntime = {\n\t\tgetHostAttributes: getRadiantElementHostSsrAttributes,\n\t\trenderHost: renderRadiantElementHost,\n\t\trenderHostToString: renderRadiantElementHostToString,\n\t\tresolveRenderBridge: resolveRadiantElementRenderBridge,\n\t\trenderView: (component, options = {}) => {\n\t\t\tconst bridge = component as unknown as RadiantElementSsrHostBridge;\n\n\t\t\treturn withRadiantServerCustomElementRenderBridge(() =>\n\t\t\t\trenderJsxToString(bridge.resolveTrackedRenderOutput().value, options),\n\t\t\t);\n\t\t},\n\t};\n\n\tregisterRadiantElementSsrRuntime(runtime);\n\treturn runtime;\n}\n\nensureRadiantElementSsrRuntimeRegistered();\n",
@@ -14,7 +14,7 @@
14
14
  "import { collectTopLevelHtmlFragments, parseHtmlTagToken, type ParsedHtmlTag } from './html-parser';\n\ntype MinimalCustomElementRegistry = {\n\tdefine(name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions): void;\n\tget(name: string): CustomElementConstructor | undefined;\n};\n\n/**\n * Minimal window-like runtime surface exposed by the SSR light-DOM shim.\n *\n * This is intentionally much smaller than a browser `window`; it only includes\n * the constructors and registry access that Radiant SSR currently needs.\n */\nexport type LightDomShimWindow = {\n\t/** Event constructor exposed to SSR-created components. */\n\tCustomEvent: typeof CustomEvent;\n\t/** Element constructor exposed to SSR-created components. */\n\tElement: typeof Element;\n\t/** Event constructor exposed to SSR-created components. */\n\tEvent: typeof Event;\n\t/** EventTarget constructor exposed to SSR-created components. */\n\tEventTarget: typeof EventTarget;\n\t/** HTMLScriptElement constructor used by slot projection payload parsing. */\n\tHTMLScriptElement: typeof HTMLScriptElement;\n\t/** HTMLElement constructor exposed to SSR-created components. */\n\tHTMLElement: typeof HTMLElement;\n\t/** Node constructor exposed to SSR-created components. */\n\tNode: typeof Node;\n\t/** Custom element registry used while rendering in SSR. */\n\tcustomElements: MinimalCustomElementRegistry;\n};\n\n/** Host preparation options accepted by the server render environment. */\nexport type PrepareServerRenderHostOptions = {\n\t/** Serialized light-DOM content to attach to the host before SSR. */\n\tauthoredContent?: string;\n};\n\n/** Reusable SSR environment used to prepare component hosts before rendering. */\nexport type ServerRenderEnvironment = {\n\t/** Prepares the host instance for rendering, including authored light-DOM content. */\n\tprepareHost(host: HTMLElement, options?: PrepareServerRenderHostOptions): void;\n};\n\ntype MinimalParentNode = Node & ParentNode;\n\nclass MinimalNode extends EventTarget {\n\tstatic readonly ELEMENT_NODE = 1;\n\tstatic readonly TEXT_NODE = 3;\n\n\tpublic childNodes: Node[] = [];\n\tpublic parentNode: MinimalParentNode | null = null;\n\n\tconstructor(public readonly nodeType: number) {\n\t\tsuper();\n\t}\n\n\tappend(...nodes: Array<Node | string>): void {\n\t\tfor (const node of nodes) {\n\t\t\tthis.appendChild(typeof node === 'string' ? createTextNode(node) : node);\n\t\t}\n\t}\n\n\tappendChild<TNode extends Node>(node: TNode): TNode {\n\t\tif ('parentNode' in node && node.parentNode && 'removeChild' in node.parentNode) {\n\t\t\t(node.parentNode as Node & { removeChild(node: Node): Node }).removeChild(node);\n\t\t}\n\n\t\tthis.childNodes.push(node);\n\t\t(node as Node & { parentNode: MinimalParentNode | null }).parentNode = this as unknown as MinimalParentNode;\n\t\treturn node;\n\t}\n\n\tremoveChild<TNode extends Node>(node: TNode): TNode {\n\t\tconst nodeIndex = this.childNodes.indexOf(node);\n\n\t\tif (nodeIndex === -1) {\n\t\t\treturn node;\n\t\t}\n\n\t\tthis.childNodes.splice(nodeIndex, 1);\n\t\t(node as Node & { parentNode: MinimalParentNode | null }).parentNode = null;\n\t\treturn node;\n\t}\n\n\treplaceChildren(...nodes: Array<Node | string>): void {\n\t\tfor (const child of this.childNodes) {\n\t\t\t(child as Node & { parentNode: MinimalParentNode | null }).parentNode = null;\n\t\t}\n\n\t\tthis.childNodes = [];\n\t\tthis.append(...nodes);\n\t}\n\n\tget textContent(): string | null {\n\t\treturn this.childNodes.map((child) => child.textContent ?? '').join('');\n\t}\n\n\tset textContent(value: string | null) {\n\t\tthis.replaceChildren(value ?? '');\n\t}\n}\n\nclass MinimalTextNode extends MinimalNode {\n\tconstructor(private value: string) {\n\t\tsuper(MinimalNode.TEXT_NODE);\n\t}\n\n\toverride get textContent(): string {\n\t\treturn this.value;\n\t}\n\n\toverride set textContent(value: string | null) {\n\t\tthis.value = value ?? '';\n\t}\n}\n\nclass MinimalElement extends MinimalNode {\n\tprivate attributes = new Map<string, string>();\n\tprivate fragmentHtml?: string;\n\tprivate fragmentText?: string;\n\n\tpublic readonly localName: string;\n\tpublic readonly tagName: string;\n\n\tconstructor(tagName = 'div') {\n\t\tsuper(MinimalNode.ELEMENT_NODE);\n\t\tthis.localName = tagName.toLowerCase();\n\t\tthis.tagName = this.localName.toUpperCase();\n\t}\n\n\thasAttribute(name: string): boolean {\n\t\treturn this.attributes.has(name);\n\t}\n\n\tgetAttribute(name: string): string | null {\n\t\treturn this.attributes.get(name) ?? null;\n\t}\n\n\tgetAttributeNames(): string[] {\n\t\treturn Array.from(this.attributes.keys());\n\t}\n\n\tsetAttribute(name: string, value: unknown): void {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.attributes.set(name, String(value));\n\t}\n\n\tremoveAttribute(name: string): void {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.attributes.delete(name);\n\t}\n\n\tquerySelector(): Element | null {\n\t\treturn null;\n\t}\n\n\tquerySelectorAll(): Element[] {\n\t\treturn [];\n\t}\n\n\tmatches(): boolean {\n\t\treturn false;\n\t}\n\n\tget outerHTML(): string {\n\t\tif (this.fragmentHtml !== undefined) {\n\t\t\treturn this.fragmentHtml;\n\t\t}\n\n\t\tconst attributes = Array.from(this.attributes.entries())\n\t\t\t.map(([name, value]) => ` ${name}=\"${escapeHtmlAttribute(value)}\"`)\n\t\t\t.join('');\n\n\t\treturn `<${this.localName}${attributes}>${this.innerHTML}</${this.localName}>`;\n\t}\n\n\tget innerHTML(): string {\n\t\treturn this.childNodes.map((child) => serializeNodeHtml(child)).join('');\n\t}\n\n\tset innerHTML(html: string) {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.fragmentText = undefined;\n\t\tthis.replaceChildren(...parseHtmlToNodes(html));\n\t}\n\n\toverride get textContent(): string {\n\t\treturn this.fragmentText ?? super.textContent ?? '';\n\t}\n\n\toverride set textContent(value: string | null) {\n\t\tthis.fragmentHtml = undefined;\n\t\tthis.fragmentText = value ?? '';\n\t\tsuper.textContent = value;\n\t}\n\n\tsetSerializedFragment(fragmentHtml: string, fragmentText: string, attributes: Record<string, string>): void {\n\t\tthis.fragmentHtml = fragmentHtml;\n\t\tthis.fragmentText = fragmentText;\n\t\tthis.attributes = new Map(Object.entries(attributes));\n\t\tthis.replaceChildren();\n\t}\n}\n\nclass MinimalEvent {\n\tpublic readonly bubbles: boolean;\n\tpublic readonly cancelable: boolean;\n\tpublic readonly composed: boolean;\n\tpublic readonly type: string;\n\n\tconstructor(type: string, eventInitDict: EventInit = {}) {\n\t\tthis.type = type;\n\t\tthis.bubbles = eventInitDict.bubbles ?? false;\n\t\tthis.cancelable = eventInitDict.cancelable ?? false;\n\t\tthis.composed = eventInitDict.composed ?? false;\n\t}\n}\n\nclass MinimalCustomEvent<T = unknown> extends MinimalEvent {\n\tpublic readonly detail: T;\n\n\tconstructor(type: string, eventInitDict: CustomEventInit<T> = {}) {\n\t\tsuper(type, eventInitDict);\n\t\tthis.detail = eventInitDict.detail as T;\n\t}\n}\n\nclass MinimalHTMLElement extends MinimalElement {\n\tpublic isConnected = false;\n\n\tconstructor(tagName = 'div') {\n\t\tsuper(tagName);\n\t}\n\n\tinsertAdjacentHTML(_position: InsertPosition, html: string): void {\n\t\tthis.append(...parseHtmlToNodes(html));\n\t}\n\n\tconnectedCallback?(): void;\n\tattributeChangedCallback?(name: string, oldValue: string | null, newValue: string | null): void;\n\tdisconnectedCallback?(): void;\n}\n\nclass MinimalHtmlScriptElement extends MinimalHTMLElement {\n\tconstructor() {\n\t\tsuper('script');\n\t}\n}\n\nclass MinimalCustomElementsRegistry implements MinimalCustomElementRegistry {\n\tprivate definitions = new Map<string, CustomElementConstructor>();\n\n\tdefine(name: string, constructor: CustomElementConstructor): void {\n\t\tif (this.definitions.has(name)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.definitions.set(name, constructor);\n\t}\n\n\tget(name: string): CustomElementConstructor | undefined {\n\t\treturn this.definitions.get(name);\n\t}\n}\n\nlet installedWindow: LightDomShimWindow | undefined;\n\nfunction createTextNode(value: string): Node {\n\treturn new MinimalTextNode(value) as unknown as Node;\n}\n\nfunction getExistingWindowLike(): LightDomShimWindow | undefined {\n\tconst globalScope = globalThis as typeof globalThis & {\n\t\tCustomEvent?: typeof CustomEvent;\n\t\tElement?: typeof Element;\n\t\tEvent?: typeof Event;\n\t\tEventTarget?: typeof EventTarget;\n\t\tHTMLScriptElement?: typeof HTMLScriptElement;\n\t\tHTMLElement?: typeof HTMLElement;\n\t\tNode?: typeof Node;\n\t\tcustomElements?: MinimalCustomElementRegistry;\n\t\twindow?: LightDomShimWindow;\n\t};\n\tconst existingCustomElements = globalScope.customElements;\n\n\tif (\n\t\ttypeof globalScope.Node === 'undefined' ||\n\t\ttypeof globalScope.Element === 'undefined' ||\n\t\ttypeof globalScope.HTMLElement === 'undefined' ||\n\t\t!existingCustomElements ||\n\t\ttypeof existingCustomElements.define !== 'function' ||\n\t\ttypeof existingCustomElements.get !== 'function'\n\t) {\n\t\treturn undefined;\n\t}\n\n\treturn (\n\t\tglobalScope.window ?? {\n\t\t\tCustomEvent: (globalScope.CustomEvent ?? MinimalCustomEvent) as typeof CustomEvent,\n\t\t\tElement: globalScope.Element,\n\t\t\tEvent: (globalScope.Event ?? MinimalEvent) as typeof Event,\n\t\t\tEventTarget: (globalScope.EventTarget ?? EventTarget) as typeof EventTarget,\n\t\t\tHTMLScriptElement: (globalScope.HTMLScriptElement ?? globalScope.HTMLElement) as typeof HTMLScriptElement,\n\t\t\tHTMLElement: globalScope.HTMLElement,\n\t\t\tNode: globalScope.Node,\n\t\t\tcustomElements: existingCustomElements,\n\t\t}\n\t);\n}\n\n/** Ensures that a minimal window-like SSR runtime is available and returns it. */\nexport function ensureLightDomShim(): LightDomShimWindow {\n\tconst existingWindow = getExistingWindowLike();\n\n\tif (existingWindow) {\n\t\treturn existingWindow;\n\t}\n\n\treturn installLightDomShim();\n}\n\n/**\n * Creates a reusable SSR environment that can prepare a component host with\n * authored light-DOM content before rendering.\n *\n * Adapters can reuse a single environment across multiple render calls when\n * they want a single host-preparation entrypoint backed by the installed shim.\n */\n\nexport function createServerRenderEnvironment(): ServerRenderEnvironment {\n\tensureLightDomShim();\n\n\treturn {\n\t\tprepareHost(host: HTMLElement, options: PrepareServerRenderHostOptions = {}): void {\n\t\t\tif (options.authoredContent !== undefined) {\n\t\t\t\thost.innerHTML = options.authoredContent;\n\t\t\t}\n\t\t},\n\t};\n}\n\n/**\n * Installs the smallest global surface needed to instantiate Radiant custom elements during SSR.\n */\nexport function installLightDomShim(): LightDomShimWindow {\n\tconst existingWindow = getExistingWindowLike();\n\n\tif (existingWindow) {\n\t\treturn existingWindow;\n\t}\n\n\tif (installedWindow) {\n\t\treturn installedWindow;\n\t}\n\n\tconst customElements = new MinimalCustomElementsRegistry();\n\tconst EventConstructor = (globalThis.Event ?? MinimalEvent) as typeof Event;\n\tconst CustomEventConstructor = (globalThis.CustomEvent ?? MinimalCustomEvent) as typeof CustomEvent;\n\tconst EventTargetConstructor = (globalThis.EventTarget ?? EventTarget) as typeof EventTarget;\n\tinstalledWindow = {\n\t\tCustomEvent: CustomEventConstructor,\n\t\tElement: MinimalElement as unknown as typeof Element,\n\t\tEvent: EventConstructor,\n\t\tEventTarget: EventTargetConstructor,\n\t\tHTMLScriptElement: MinimalHtmlScriptElement as unknown as typeof HTMLScriptElement,\n\t\tHTMLElement: MinimalHTMLElement as unknown as typeof HTMLElement,\n\t\tNode: MinimalNode as unknown as typeof Node,\n\t\tcustomElements,\n\t};\n\n\tObject.assign(globalThis, {\n\t\tCustomEvent: CustomEventConstructor,\n\t\tElement: MinimalElement,\n\t\tEvent: EventConstructor,\n\t\tEventTarget: EventTargetConstructor,\n\t\tHTMLScriptElement: MinimalHtmlScriptElement,\n\t\tHTMLElement: MinimalHTMLElement,\n\t\tNode: MinimalNode,\n\t\tcustomElements,\n\t\twindow: installedWindow,\n\t});\n\n\treturn installedWindow;\n}\n\nfunction createElementFromFragment(fragment: string, tag: ParsedHtmlTag): Node {\n\tconst element =\n\t\ttag.tagName === 'script'\n\t\t\t? (new MinimalHtmlScriptElement() as MinimalElement)\n\t\t\t: new MinimalHTMLElement(tag.tagName);\n\n\telement.setSerializedFragment(fragment, extractTextContent(tag.innerHtml), tag.attributes);\n\treturn element as unknown as Node;\n}\n\nfunction escapeHtmlAttribute(value: string): string {\n\treturn value.replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}\n\nfunction extractTextContent(html: string): string {\n\treturn html.replace(/<!--.*?-->/gs, '').replace(/<[^>]+>/g, '');\n}\n\nfunction parseHtmlToNodes(html: string): Node[] {\n\treturn collectTopLevelHtmlFragments(html).map((fragment) => {\n\t\tif (!fragment.startsWith('<')) {\n\t\t\treturn createTextNode(fragment);\n\t\t}\n\n\t\tconst tag = parseHtmlTagToken(fragment, 0);\n\n\t\tif (!tag || tag.type !== 'open') {\n\t\t\treturn createTextNode(fragment);\n\t\t}\n\n\t\treturn createElementFromFragment(fragment, tag);\n\t});\n}\n\nfunction serializeNodeHtml(node: Node): string {\n\tif (node.nodeType === MinimalNode.TEXT_NODE) {\n\t\treturn node.textContent ?? '';\n\t}\n\n\treturn 'outerHTML' in node && typeof node.outerHTML === 'string' ? node.outerHTML : (node.textContent ?? '');\n}\n",
15
15
  "import type { JsxRenderable } from '@ecopages/jsx';\nimport type { RenderToStringOptions } from '@ecopages/jsx/server';\nimport type { SsrSerializableContextProvider } from '../context/context-provider';\nimport {\n\tgetRadiantElementSsrRuntime,\n\ttype RadiantElementRenderBridge,\n\ttype RadiantElementSsrCapable,\n} from '../core/radiant-component-ssr-registry';\nimport { withSsrContextProviders } from './context-ssr';\nimport type { ContextType, UnknownContext } from '../context/types';\nimport { getCustomElementTagName } from '../core/custom-element-metadata';\nimport { createServerRenderEnvironment, type ServerRenderEnvironment } from './light-dom-shim';\nimport { ensureRadiantElementSsrRuntimeRegistered } from './radiant-component-ssr-runtime';\n\nensureRadiantElementSsrRuntimeRegistered();\n\n/** Asset dependency emitted by a rendered fragment. */\nexport type RenderedComponentAsset =\n\t| {\n\t\t\t/** Browser module specifier that must be loaded to activate the fragment. */\n\t\t\tkind: 'script-module';\n\t\t\t/** Runtime loading policy for the module. */\n\t\t\tstage?: 'hydrate' | 'idle' | 'immediate';\n\t\t\t/** Module specifier or browser-importable URL. */\n\t\t\tsrc: string;\n\t }\n\t| {\n\t\t\t/** Module graph preload hint for adapters that control the document head. */\n\t\t\tkind: 'modulepreload';\n\t\t\t/** Module specifier or browser-importable URL. */\n\t\t\thref: string;\n\t }\n\t| {\n\t\t\t/** Stylesheet dependency required by the rendered fragment. */\n\t\t\tkind: 'style';\n\t\t\t/** Browser-importable stylesheet URL. */\n\t\t\thref: string;\n\t\t\t/** Optional media query applied to the stylesheet link. */\n\t\t\tmedia?: string;\n\t };\n\n/** Creates a module asset entry for a rendered fragment. */\nexport function scriptModuleAsset(\n\tsrc: string,\n\tstage: 'hydrate' | 'idle' | 'immediate' = 'hydrate',\n): RenderedComponentAsset {\n\treturn { kind: 'script-module', src, stage };\n}\n\n/** Creates a modulepreload hint for a rendered fragment. */\nexport function modulePreloadAsset(href: string): RenderedComponentAsset {\n\treturn { kind: 'modulepreload', href };\n}\n\n/** Creates a stylesheet asset entry for a rendered fragment. */\nexport function styleAsset(href: string, media?: string): RenderedComponentAsset {\n\treturn media ? { kind: 'style', href, media } : { kind: 'style', href };\n}\n\n/** Portable metadata for a server-rendered custom-element fragment. */\nexport type RenderedComponentMetadata = {\n\t/** Asset dependencies required by the rendered fragment. */\n\tassets: readonly RenderedComponentAsset[];\n\t/** Browser-importable client module URL used to register the component before hydration. */\n\tclientModuleUrl?: string;\n\t/** ISO timestamp describing when the fragment was rendered. */\n\tgeneratedAt: string;\n\t/** Custom-element tag name emitted at the fragment root. */\n\ttagName: string;\n};\n\n/** Canonical server render result returned by `renderComponent()`. */\nexport type RenderedComponent = {\n\t/** Serialized custom-element host markup. */\n\tmarkup: string;\n\t/** Transport-agnostic metadata that adapters can map onto headers or JSON. */\n\tmetadata: RenderedComponentMetadata;\n\t/** JSX-compatible preview value that can be embedded into a larger SSR shell. */\n\tpreview: JsxRenderable;\n};\n\n/** Serializable metadata for a server-rendered custom-element fragment. */\nexport type RenderedComponentPayload = {\n\t/** Asset dependencies required by the rendered fragment. */\n\tassets?: readonly RenderedComponentAsset[];\n\t/** Browser-importable client module URL used to register the component before hydration. */\n\tclientModuleSrc?: string;\n\t/** ISO timestamp describing when the fragment was rendered. */\n\tgeneratedAt: string;\n\t/** Serialized custom-element host markup. */\n\tmarkup: string;\n\t/** Custom-element tag name emitted at the fragment root. */\n\ttagName: string;\n};\n\n/** Full SSR result including a JSX-compatible preview value for shell composition. */\nexport type RenderedComponentWithPreview = RenderedComponentPayload & {\n\t/** JSX-compatible preview value that can be embedded into a larger SSR shell. */\n\tpreview: JsxRenderable;\n};\n\n/** Minimal component contract needed for framework-agnostic SSR helpers. */\nexport type ServerRenderableComponent = {\n\trenderHost?: () => JsxRenderable;\n\trenderHostToString: (options?: RenderToStringOptions) => string;\n};\n\n/** Constructor shape for a server-renderable component. */\nexport type ServerRenderableComponentConstructor<TComponent extends ServerRenderableComponent> =\n\tCustomElementConstructor & {\n\t\tnew (): TComponent;\n\t};\n\n/**\n * Resolves the browser-importable client module URL for a component constructor.\n *\n * Use this when the server adapter can derive the client entry lazily instead of\n * hardcoding `clientModuleSrc` for every render call.\n */\nexport type ResolveRenderedComponentClientModule<TComponent extends ServerRenderableComponent> = (\n\tcomponent: ServerRenderableComponentConstructor<TComponent>,\n) => string | undefined | Promise<string | undefined>;\n\n/**\n * Resolves fragment assets for a component constructor.\n *\n * Prefer this over `resolveClientModuleSrc(...)` for new adapters so assets can\n * describe scripts, styles, and preload hints through one transport-agnostic shape.\n */\nexport type ResolveRenderedComponentAssets<TComponent extends ServerRenderableComponent> = (\n\tcomponent: ServerRenderableComponentConstructor<TComponent>,\n) => readonly RenderedComponentAsset[] | undefined | Promise<readonly RenderedComponentAsset[] | undefined>;\n\n/**\n * Prepares a component host before SSR so slot-aware logic can observe authored\n * light-DOM content during render.\n */\nexport type PrepareRenderedComponentHost<TComponent extends ServerRenderableComponent> = (\n\thost: TComponent & HTMLElement,\n\tenvironment: ServerRenderEnvironment,\n) => void;\n\n/**\n * Ambient SSR context value visible while a standalone component render runs.\n *\n * This lets adapters provide ancestor-like context to `consumeContext(...)` and\n * `contextSelector(...)` without needing to instantiate a real provider host.\n */\nexport type RenderComponentSsrContextEntry<TContext extends UnknownContext = UnknownContext> = {\n\tcontext: TContext;\n\tvalue: ContextType<TContext>;\n};\n\ntype RenderComponentSharedOptions<TComponent extends ServerRenderableComponent> = {\n\t/** Asset dependencies required by the rendered fragment. */\n\tassets?: readonly RenderedComponentAsset[];\n\t/** Serialized authored light-DOM content to attach to the host before rendering. */\n\tauthoredContent?: string;\n\t/** Browser-importable client module URL used to register the component before hydration. */\n\tclientModuleSrc?: string;\n\t/** Initializes the component instance before the host is rendered. */\n\tinitialize?: (component: TComponent) => void;\n\t/** SSR environment responsible for preparing the host runtime and authored content. */\n\tenvironment?: ServerRenderEnvironment;\n\t/**\n\t * Dedicated host-preparation hook for slot-aware SSR.\n\t *\n\t * Use this when the server needs to append or mutate authored light-DOM\n\t * nodes directly instead of passing `authoredContent` as a string.\n\t */\n\tprepareHost?: PrepareRenderedComponentHost<TComponent>;\n\t/**\n\t * Ambient SSR context entries that should be visible while the component is\n\t * instantiated and rendered.\n\t *\n\t * This solves standalone fragment renders that need to consume context from a\n\t * parent-like server environment.\n\t */\n\tssrContext?: readonly RenderComponentSsrContextEntry[];\n\t/** Clock override used by tests and adapters that need deterministic timestamps. */\n\tnow?: () => Date;\n\t/** JSX server-renderer options forwarded to `renderHostToString()`. */\n\trenderOptions?: RenderToStringOptions;\n\t/** Lazy asset resolver used when `assets` are not provided directly. */\n\tresolveAssets?: ResolveRenderedComponentAssets<TComponent>;\n\t/** Lazy client-module resolver used when `clientModuleSrc` is not provided directly. */\n\tresolveClientModuleSrc?: ResolveRenderedComponentClientModule<TComponent>;\n\t/** Explicit tag-name override when `@customElement(...)` metadata is not desired. */\n\ttagName?: string;\n};\n\n/** Options accepted by the reusable SSR component rendering helpers. */\nexport type RenderComponentOptions<TComponent extends ServerRenderableComponent> =\n\tRenderComponentSharedOptions<TComponent> &\n\t\t(\n\t\t\t| {\n\t\t\t\t\tcomponent: ServerRenderableComponentConstructor<TComponent>;\n\t\t\t }\n\t\t\t| {\n\t\t\t\t\tload: () => Promise<ServerRenderableComponentConstructor<TComponent>>;\n\t\t\t }\n\t\t);\n\n/** Call-site options used when the component constructor is passed directly. */\nexport type RenderComponentCallOptions<TComponent extends ServerRenderableComponent> =\n\tRenderComponentSharedOptions<TComponent>;\n\n/**\n * Serializes a custom element into HTML, inferring its tag name from\n * `@customElement(...)` metadata when the caller does not provide one.\n */\nexport function renderComponentToString<TComponent extends ServerRenderableComponent>(\n\tcomponent: ServerRenderableComponentConstructor<TComponent>,\n\toptions?: RenderComponentCallOptions<TComponent>,\n): Promise<string>;\n\nexport function renderComponentToString<TComponent extends ServerRenderableComponent>(\n\toptions: RenderComponentOptions<TComponent>,\n): Promise<string>;\n\nexport async function renderComponentToString<TComponent extends ServerRenderableComponent>(\n\tcomponentOrOptions: ServerRenderableComponentConstructor<TComponent> | RenderComponentOptions<TComponent>,\n\toptions?: RenderComponentCallOptions<TComponent>,\n): Promise<string> {\n\treturn (await renderResolvedComponent(normalizeRenderComponentOptions(componentOrOptions, options))).markup;\n}\n\n/**\n * Renders a custom element into the canonical portable server-rendered shape,\n * separating transport-agnostic metadata from any HTTP-specific adapter.\n */\nexport function renderComponent<TComponent extends ServerRenderableComponent>(\n\tcomponent: ServerRenderableComponentConstructor<TComponent>,\n\toptions?: RenderComponentCallOptions<TComponent>,\n): Promise<RenderedComponent>;\n\nexport function renderComponent<TComponent extends ServerRenderableComponent>(\n\toptions: RenderComponentOptions<TComponent>,\n): Promise<RenderedComponent>;\n\nexport async function renderComponent<TComponent extends ServerRenderableComponent>(\n\tcomponentOrOptions: ServerRenderableComponentConstructor<TComponent> | RenderComponentOptions<TComponent>,\n\toptions?: RenderComponentCallOptions<TComponent>,\n): Promise<RenderedComponent> {\n\treturn renderResolvedComponent(normalizeRenderComponentOptions(componentOrOptions, options));\n}\n\n/**\n * Serializes a custom element into a fragment payload that frameworks can\n * attach to any response shape they prefer.\n */\nexport function renderComponentToPayload<TComponent extends ServerRenderableComponent>(\n\tcomponent: ServerRenderableComponentConstructor<TComponent>,\n\toptions?: RenderComponentCallOptions<TComponent>,\n): Promise<RenderedComponentPayload>;\n\nexport function renderComponentToPayload<TComponent extends ServerRenderableComponent>(\n\toptions: RenderComponentOptions<TComponent>,\n): Promise<RenderedComponentPayload>;\n\nexport async function renderComponentToPayload<TComponent extends ServerRenderableComponent>(\n\tcomponentOrOptions: ServerRenderableComponentConstructor<TComponent> | RenderComponentOptions<TComponent>,\n\toptions?: RenderComponentCallOptions<TComponent>,\n): Promise<RenderedComponentPayload> {\n\treturn toRenderedComponentPayload(\n\t\tawait renderResolvedComponent(normalizeRenderComponentOptions(componentOrOptions, options)),\n\t);\n}\n\n/**\n * Renders a component into both fragment metadata and a JSX-compatible preview\n * value that can be embedded into a larger server-rendered shell.\n */\nexport function renderComponentWithPreview<TComponent extends ServerRenderableComponent>(\n\tcomponent: ServerRenderableComponentConstructor<TComponent>,\n\toptions?: RenderComponentCallOptions<TComponent>,\n): Promise<RenderedComponentWithPreview>;\n\nexport function renderComponentWithPreview<TComponent extends ServerRenderableComponent>(\n\toptions: RenderComponentOptions<TComponent>,\n): Promise<RenderedComponentWithPreview>;\n\nexport async function renderComponentWithPreview<TComponent extends ServerRenderableComponent>(\n\tcomponentOrOptions: ServerRenderableComponentConstructor<TComponent> | RenderComponentOptions<TComponent>,\n\toptions?: RenderComponentCallOptions<TComponent>,\n): Promise<RenderedComponentWithPreview> {\n\treturn toRenderedComponentWithPreview(\n\t\tawait renderResolvedComponent(normalizeRenderComponentOptions(componentOrOptions, options)),\n\t);\n}\n\nasync function renderResolvedComponent<TComponent extends ServerRenderableComponent>(\n\tnormalizedOptions: RenderComponentOptions<TComponent>,\n): Promise<RenderedComponent> {\n\tensureRadiantElementSsrRuntimeRegistered();\n\n\tconst environment = normalizedOptions.environment ?? createServerRenderEnvironment();\n\tconst restoreAmbientContext = withSsrContextProviders(\n\t\tcreateAmbientSsrContextProviders(normalizedOptions.ssrContext),\n\t);\n\n\ttry {\n\t\tconst Component =\n\t\t\t'component' in normalizedOptions ? normalizedOptions.component : await normalizedOptions.load();\n\t\tconst component = new Component();\n\t\tprepareRenderedComponentHost(\n\t\t\tenvironment,\n\t\t\tcomponent,\n\t\t\tnormalizedOptions.authoredContent,\n\t\t\tnormalizedOptions.prepareHost,\n\t\t);\n\t\tnormalizedOptions.initialize?.(component);\n\n\t\tconst resolvedClientModuleSrc =\n\t\t\tnormalizedOptions.clientModuleSrc ?? (await normalizedOptions.resolveClientModuleSrc?.(Component));\n\t\tconst resolvedAssets = normalizedOptions.assets ?? (await normalizedOptions.resolveAssets?.(Component)) ?? [];\n\t\tconst assets = mergeRenderedComponentAssets(resolvedAssets, resolvedClientModuleSrc);\n\t\tconst clientModuleSrc = resolvePrimaryClientModuleSrc(assets) ?? resolvedClientModuleSrc;\n\t\tconst tagName = normalizedOptions.tagName ?? resolveRenderedComponentTagName(Component);\n\t\tconst generatedAt = (normalizedOptions.now ?? createDefaultRenderTimestamp)().toISOString();\n\t\tconst renderOptions = normalizeRenderOptions(normalizedOptions.renderOptions);\n\t\tconst radiantSsrBridge = getRadiantElementRenderBridge(component as unknown as RadiantElementSsrCapable);\n\t\tconst markup =\n\t\t\tradiantSsrBridge?.renderHostToString?.(renderOptions) ?? component.renderHostToString(renderOptions);\n\t\tconst preview = resolveRenderedComponentPreview(component, radiantSsrBridge, markup);\n\n\t\treturn {\n\t\t\tmarkup,\n\t\t\tmetadata: {\n\t\t\t\tassets,\n\t\t\t\tclientModuleUrl: clientModuleSrc,\n\t\t\t\tgeneratedAt,\n\t\t\t\ttagName,\n\t\t\t},\n\t\t\tpreview,\n\t\t};\n\t} finally {\n\t\trestoreAmbientContext();\n\t}\n}\n\nfunction getRadiantElementRenderBridge(component: RadiantElementSsrCapable): RadiantElementRenderBridge | undefined {\n\treturn getRadiantElementSsrRuntime()?.resolveRenderBridge(component);\n}\n\n/**\n * Chooses the preview renderable returned by `renderComponent()`.\n *\n * When a component overrides only `renderHostToString()`, the inherited\n * `renderHost()` implementation would otherwise generate a different preview\n * tree than the final serialized markup. In that case the preview falls back to\n * the already-computed markup so shell composition stays aligned with the real\n * SSR output.\n */\nfunction resolveRenderedComponentPreview<TComponent extends ServerRenderableComponent>(\n\tcomponent: TComponent,\n\tradiantSsrBridge: RadiantElementRenderBridge | undefined,\n\tmarkup: string,\n): JsxRenderable {\n\tif (!radiantSsrBridge) {\n\t\treturn component.renderHost?.() ?? { nodeType: 1, outerHTML: markup };\n\t}\n\n\tif (!radiantSsrBridge.renderHostToString && radiantSsrBridge.renderHost) {\n\t\treturn { nodeType: 1, outerHTML: markup };\n\t}\n\n\treturn radiantSsrBridge.renderHost?.() ?? component.renderHost?.() ?? { nodeType: 1, outerHTML: markup };\n}\n\nfunction prepareRenderedComponentHost<TComponent extends ServerRenderableComponent>(\n\tenvironment: ServerRenderEnvironment,\n\tcomponent: TComponent,\n\tauthoredContent: string | undefined,\n\tprepareHost: PrepareRenderedComponentHost<TComponent> | undefined,\n): void {\n\tif (!canPrepareSsrHost(component)) {\n\t\tif (authoredContent === undefined && prepareHost === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tthrow new Error(\n\t\t\t`${component.constructor.name} cannot prepare SSR host content because it does not expose an innerHTML host surface.`,\n\t\t);\n\t}\n\n\tenvironment.prepareHost(component, { authoredContent });\n\tprepareHost?.(component, environment);\n}\n\n/**\n * Wraps ad-hoc `ssrContext` values in provider-like objects so the existing SSR\n * context stack can resolve them exactly like real ancestor providers.\n */\nfunction createAmbientSsrContextProviders(\n\tentries: readonly RenderComponentSsrContextEntry[] | undefined,\n): SsrSerializableContextProvider[] {\n\tif (!entries || entries.length === 0) {\n\t\treturn [];\n\t}\n\n\treturn entries.map((entry) => ({\n\t\tgetContext: () => entry.value,\n\t\tgetContextKey: () => entry.context,\n\t\trenderHydrationScript: () => undefined,\n\t\trenderHydrationScriptTag: () => undefined,\n\t}));\n}\n\n/**\n * Drops the preview renderable so the result can be sent through lightweight\n * framework adapters or JSON/HTML fragment endpoints.\n */\nexport function toRenderedComponentPayload(\n\trender: RenderedComponentWithPreview | RenderedComponent,\n): RenderedComponentPayload {\n\tif ('metadata' in render) {\n\t\treturn {\n\t\t\tassets: render.metadata.assets,\n\t\t\tclientModuleSrc: render.metadata.clientModuleUrl,\n\t\t\tgeneratedAt: render.metadata.generatedAt,\n\t\t\tmarkup: render.markup,\n\t\t\ttagName: render.metadata.tagName,\n\t\t};\n\t}\n\n\tconst { preview: _preview, ...payload } = render;\n\treturn payload;\n}\nfunction toRenderedComponentWithPreview(render: RenderedComponent): RenderedComponentWithPreview {\n\treturn {\n\t\tassets: render.metadata.assets,\n\t\tclientModuleSrc: render.metadata.clientModuleUrl,\n\t\tgeneratedAt: render.metadata.generatedAt,\n\t\tmarkup: render.markup,\n\t\tpreview: render.preview,\n\t\ttagName: render.metadata.tagName,\n\t};\n}\n\nfunction createDefaultRenderTimestamp(): Date {\n\treturn new Date();\n}\n\nfunction createRenderedComponentClientModuleAssets(\n\tclientModuleSrc: string | undefined,\n): readonly RenderedComponentAsset[] {\n\tif (!clientModuleSrc) {\n\t\treturn [];\n\t}\n\n\treturn [scriptModuleAsset(clientModuleSrc)];\n}\n\nexport function mergeRenderedComponentAssets(\n\tassets: readonly RenderedComponentAsset[],\n\tclientModuleSrc: string | undefined,\n): readonly RenderedComponentAsset[] {\n\tif (!clientModuleSrc) {\n\t\treturn assets;\n\t}\n\n\tif (assets.some((asset) => asset.kind === 'script-module' && asset.src === clientModuleSrc)) {\n\t\treturn assets;\n\t}\n\n\treturn [...createRenderedComponentClientModuleAssets(clientModuleSrc), ...assets];\n}\n\nexport function resolvePrimaryClientModuleSrc(assets: readonly RenderedComponentAsset[]): string | undefined {\n\treturn assets.find((asset) => asset.kind === 'script-module')?.src;\n}\n\nfunction normalizeRenderComponentOptions<TComponent extends ServerRenderableComponent>(\n\tcomponentOrOptions: ServerRenderableComponentConstructor<TComponent> | RenderComponentOptions<TComponent>,\n\toptions?: RenderComponentCallOptions<TComponent>,\n): RenderComponentOptions<TComponent> {\n\tif (typeof componentOrOptions === 'function') {\n\t\treturn {\n\t\t\t...options,\n\t\t\tcomponent: componentOrOptions,\n\t\t};\n\t}\n\n\treturn componentOrOptions;\n}\n\nexport function normalizeRenderOptions(options: RenderToStringOptions | undefined): RenderToStringOptions {\n\tif (options?.mode !== undefined || options?.hydrate !== undefined) {\n\t\treturn options;\n\t}\n\n\treturn {\n\t\t...options,\n\t\tmode: 'hydrate',\n\t};\n}\n\nfunction canPrepareSsrHost<TComponent extends ServerRenderableComponent>(\n\tcomponent: TComponent,\n): component is TComponent & HTMLElement {\n\treturn 'innerHTML' in component;\n}\n\nfunction resolveRenderedComponentTagName(target: CustomElementConstructor): string {\n\tconst tagName = getCustomElementTagName(target);\n\n\tif (!tagName) {\n\t\tthrow new Error(`${target.name} is missing @customElement metadata.`);\n\t}\n\n\treturn tagName;\n}\n"
16
16
  ],
17
- "mappings": "4PA6CA,IAAM,EAAuC,OAAO,IAAI,yCAAyC,EAW1F,SAAS,CAA2B,EAAyC,CACnF,OAAQ,WAAqC,GASvC,SAAS,CAAgC,CAAC,EAAyC,CACxF,WAAqC,GAAwC,ECvDxE,SAAS,CAA0B,CAAC,EAAkC,CAC5E,OAAQ,QACF,MACJ,MAAO,aACH,QACJ,MAAO,eACH,OACJ,MAAO,cACH,OACJ,MAAO,cACH,OACJ,MAAO,UAUH,SAAS,EAAyB,CAAC,EAAqC,CAC9E,OAAQ,OAAO,OACT,UACJ,MAAO,cACH,SACJ,MAAO,aACH,SACJ,MAAO,SAGT,GAAI,MAAM,QAAQ,CAAY,EAAG,MAAO,QACxC,GAAI,OAAO,UAAU,SAAS,KAAK,CAAY,IAAM,kBAAmB,MAAO,SASzE,SAAS,EAAmB,CAAC,EAAsC,CACzE,OAAQ,QACF,OACJ,MAAO,QACH,OACJ,MAAO,QACH,QACJ,MAAO,WAEP,OAAO,MASV,SAAS,EAAY,CAAC,EAAkB,CACvC,GAAI,CACH,OAAO,KAAK,MAAM,CAAK,EACtB,KAAM,CACP,MAAU,UAAU,qBAAqB,GAQ3C,IAAM,GAAsC,CAC3C,KAAK,CAAC,EAA0B,CAC/B,IAAM,EAAQ,GAAqB,CAAK,EACxC,GAAI,CAAC,MAAM,QAAQ,CAAK,EACvB,MAAU,UAAU,8CAA8C,OAAO,IAAQ,EAElF,OAAO,GAGR,OAAO,CAAC,EAAwB,CAC/B,MAAO,EAAE,IAAU,KAAO,OAAO,CAAK,EAAE,YAAY,IAAM,UAG3D,MAAM,CAAC,EAAuB,CAE7B,OADe,OAAO,EAAM,QAAQ,KAAM,EAAE,CAAC,GAI9C,MAAM,CAAC,EAAuB,CAC7B,IAAM,EAAS,KAAK,MAAM,CAAK,EAC/B,GAAI,IAAW,MAAQ,OAAO,IAAW,UAAY,MAAM,QAAQ,CAAM,EACxE,MAAU,UACT,0DAA0D,eAAmB,GAC5E,CACD,IACD,EAED,OAAO,GAGR,MAAM,CAAC,EAAuB,CAC7B,OAAO,EAET,EAQM,EAAsC,CAC3C,QAAS,EACT,MAAO,EACP,OAAQ,CACT,EAEA,SAAS,CAAS,CAAC,EAAgB,CAClC,OAAO,KAAK,UAAU,CAAK,EAG5B,SAAS,CAAW,CAAC,EAAgB,CACpC,MAAO,GAAG,IAUJ,SAAS,CAAkB,CAAC,EAAe,EAA6B,CAC9E,IAAM,EAAa,EAA2B,CAAI,EAClD,GAAI,CAAC,EAAY,MAAU,UAAU,mCAAmC,IAAO,EAC/E,OAAO,GAAQ,GAAa,CAAK,EAa3B,SAAS,CAAmB,CAAC,EAAgB,EAA6B,CAChF,IAAM,EAAa,EAA2B,CAAI,EAClD,GAAI,CAAC,EAAY,MAAU,UAAU,mCAAmC,IAAO,EAE/E,OADuB,EAAQ,IAAe,EAAQ,SAAW,GACnD,CAAK,EAQpB,SAAS,EAAS,CAAC,EAAkC,CACpD,OAAO,OAAO,IAAU,UAGzB,SAAS,EAAQ,CAAC,EAAiC,CAClD,OAAO,OAAO,IAAU,SAGzB,SAAS,EAAQ,CAAC,EAAiC,CAClD,OAAO,OAAO,IAAU,SAGzB,SAAS,EAAO,CAAC,EAAyC,CACzD,OAAO,MAAM,QAAQ,CAAK,EAG3B,SAAS,EAAQ,CAAC,EAAiC,CAClD,OAAO,OAAO,IAAU,UAAY,CAAC,MAAM,QAAQ,CAAK,GAAK,IAAU,KAMjE,SAAS,EAAa,CAAC,EAA6B,EAAgC,CAC1F,OAAQ,QACF,QACJ,OAAO,GAAU,CAAY,OACzB,OACJ,OAAO,GAAS,CAAY,OACxB,OACJ,OAAO,GAAS,CAAY,OACxB,MACJ,OAAO,GAAQ,CAAY,OACvB,OACJ,OAAO,GAAS,CAAY,UAE5B,MAAO,IAIH,IAAM,GAAkB,CAC9B,EACA,EACA,EACA,IACI,CACJ,GAAI,IAAS,QAAS,CACrB,IAAM,EAAiB,EAAO,aAAa,CAAY,EACvD,GAAI,IAAmB,KACtB,OAAO,EAGR,OAAO,IAAmB,GAAK,GAAO,EAAmB,EAAgB,CAAI,EAG9E,IAAM,EAAiB,EAAO,aAAa,CAAY,EACvD,OAAO,IAAmB,KACvB,EAAmB,EAAgB,CAAI,EACtC,GAAiB,GAAoB,CAAI,GClO9C,IAAM,EAAuC,OAAO,IAAI,iDAAiD,EAMzG,SAAS,CAAsB,EAAwB,CACtD,OAAO,WAUD,SAAS,CAAiC,CAAC,EAA4C,CAC7F,EAAuB,EAAE,GAAwC,EAM3D,SAAS,EAAgC,CAAC,EAAqE,CACrH,OAAO,EAAuB,EAAE,KAAwC,CAAO,EC9BzE,IAAM,EAA0B,OAAO,IAAI,wCAAwC,EAYnF,SAAS,EAAuB,CAAC,EAAkC,EAAuB,CAC/F,EAAgD,GAA2B,EAQtE,SAAS,CAAuB,CAAC,EAAsD,CAC7F,OAAQ,EAAgD,GCpBzD,IAAM,EAA4B,OAAO,IAAI,2CAA2C,EAWjF,SAAS,EAA8B,CAC7C,EACA,EACA,EACO,CACP,IAAM,EAAc,EAAO,YACrB,EAAc,EAAY,IAA8B,CAAC,EAE/D,GAAI,EAAY,KAAK,CAAC,IAAe,EAAW,OAAS,CAAY,EACpE,OAGD,EAAY,KAAK,CAAE,KAAM,EAAc,SAAQ,CAAC,EAChD,EAAY,GAA6B,EAGnC,SAAS,CAA0B,CAAC,EAA0C,CACpF,OAAS,EAAO,YAAoD,IAA8B,CAAC,GAAG,MAAM,ECtB7G,IAAI,EAaJ,SAAS,CAAoB,EAA4C,CACxE,GAAI,IAA8B,OACjC,OAAO,EAGR,GAAI,CACH,IAAQ,kBAAmB,2EAE3B,OADA,EAA4B,IAAI,EACzB,EACN,KAAM,CAEP,OADA,EAA4B,KACrB,MAIT,IAAM,EAAoC,OAAO,IAAI,8CAA8C,EAEnG,SAAS,CAAgB,EAAkB,CAC1C,IAAM,EAAI,WAEV,OADA,EAAE,KAAuC,CAAC,EACnC,EAAE,GAYH,SAAS,CAAuB,CAAC,EAAkE,CACzG,GAAI,EAAU,SAAW,EACxB,MAAO,IAAG,CAAG,QAGd,IAAM,EAAQ,IAAI,IAElB,QAAW,KAAY,EACtB,EAAM,IAAI,EAAS,cAAc,EAAG,CAAQ,EAG7C,IAAM,EAAM,EAAqB,EAEjC,GAAI,EAAK,CACR,IAAM,EAAc,EAAI,SAAS,GAAK,CAAC,EACjC,EAAa,CAAC,GAAG,EAAa,CAAK,EAGzC,OAFA,EAAI,UAAU,CAAU,EAEjB,IAAM,CACZ,EAAI,UAAU,CAAW,GAI3B,IAAM,EAAQ,EAAiB,EAG/B,OAFA,EAAM,KAAK,CAAK,EAET,IAAM,CACZ,IAAM,EAAQ,EAAM,YAAY,CAAK,EACrC,GAAI,GAAS,EAAG,EAAM,OAAO,EAAO,CAAC,GAUhC,SAAS,CAAmD,CAClE,EAC6C,CAC7C,IAAM,EAAQ,EAAqB,GAAG,SAAS,GAAK,EAAiB,EAErE,QAAS,EAAQ,EAAM,OAAS,EAAG,GAAS,EAAG,GAAS,EAAG,CAC1D,IAAM,EAAW,EAAM,IAAQ,IAAI,CAAO,EAE1C,GAAI,EACH,OAAO,EAIT,OAUM,SAAS,EAAgD,CAAC,EAAwC,CACxG,IAAM,EAAW,EAA0B,CAAO,EAElD,GAAI,CAAC,EACJ,OAGD,OAAO,EAAS,WAAW,EAG5B,EAAkC,CAAC,IAAY,EAA0B,CAAO,CAAC,ECpG1E,MAAM,CAAyB,CACR,KAA7B,WAAW,CAAkB,EAA6B,CAA7B,YAEtB,UAAU,EAAkB,CAClC,MAAO,CACN,SAAU,EACV,UAAW,KAAK,mBAAmB,CAAE,KAAM,SAAU,CAAC,CACvD,EAGM,kBAAkB,CAAC,EAAiC,CAAC,EAAG,EAAa,KAAK,kBAAkB,EAAW,CAC7G,IAAM,EAAU,KAAK,WAAW,EAC1B,EAAqB,EAAwB,KAAK,KAAK,oBAAoB,CAAC,EAElF,GAAI,CACH,MAAO,IAAI,IAAU,GAAwB,CAAU,KAAK,KAAK,kBAAkB,CAAO,MAAM,YAC/F,CACD,EAAmB,GAIb,iBAAiB,CAAC,EAAwC,CACjE,IAAM,EAAc,KAAK,KAAK,eAAe,CAAO,EAC9C,EAA0B,KAAK,KAAK,mCAAmC,GAAK,GAC5E,EAAuB,KAAK,KAAK,6BAA6B,GAAK,GAGzE,GAAI,EAFY,EAAQ,OAAS,WAAc,EAAQ,OAAS,QAAa,EAAQ,UAAY,IAGhG,MAAO,GAAG,IAAc,IAA0B,IAGnD,IAAM,EAAmB,KAAK,KAC5B,qBAAqB,EACrB,IAAI,CAAC,IAAY,EAAQ,yBAAyB,CAAC,EACnD,OAAO,CAAC,IAA6B,OAAO,IAAW,QAAQ,EAC/D,KAAK,EAAE,EAET,MAAO,GAAG,IAAc,IAAuB,IAGzC,iBAAiB,EAA2B,CAClD,IAAM,EAAqC,CAAC,EACtC,EAAiB,IAAI,IAE3B,QAAW,KAAY,KAAK,KAAK,sBAAsB,EAAG,CACzD,IAAM,EAAe,KAAK,KAAK,iBAAiB,EAAS,IAAI,EAC7D,GAAI,IAAiB,QAAa,IAAiB,MAAQ,IAAiB,GAC3E,SAGD,EAAW,EAAS,WAAa,OAAO,EAAS,UAAU,YAAY,CAAY,CAAC,EACpF,EAAe,IAAI,EAAS,SAAS,EAGtC,QAAW,KAAc,KAAK,KAAK,2BAA2B,EAAG,CAChE,IAAM,EAAgB,EAAW,QAAQ,WAAa,EAAW,KAEjE,GAAI,EAAe,IAAI,CAAa,EACnC,SAGD,IAAM,EAAe,KAAK,KAAK,iBAAiB,EAAW,IAAI,EAE/D,GAAI,IAAiB,QAAa,IAAiB,MAAQ,IAAiB,GAC3E,SAGD,EAAW,GAAiB,OAAO,EAAoB,EAAc,EAAW,QAAQ,IAAI,CAAC,EAC7F,EAAe,IAAI,CAAa,EAGjC,QAAW,KAAiB,KAAK,KAAK,mBAAmB,EAAG,CAC3D,IAAM,EAAiB,KAAK,KAAK,kBAAkB,CAAa,EAChE,GAAI,IAAmB,KACtB,EAAW,GAAiB,EAI9B,OAAO,EAGA,UAAU,EAAW,CAC5B,IAAM,EAAU,EAAwB,KAAK,KAAK,WAAW,EAE7D,GAAI,CAAC,EACJ,MAAU,MAAM,GAAG,KAAK,KAAK,YAAY,0CAA0C,EAGpF,OAAO,EAET,CAEA,SAAS,EAAuB,CAAC,EAA4C,CAC5E,OAAO,OAAO,QAAQ,CAAU,EAC9B,IAAI,EAAE,EAAM,KAAW,IAAI,MAAS,GAAgB,CAAK,IAAI,EAC7D,KAAK,EAAE,EAGV,SAAS,EAAe,CAAC,EAAuB,CAC/C,OAAO,EAAM,QAAQ,KAAM,OAAO,EAAE,QAAQ,KAAM,QAAQ,EAAE,QAAQ,KAAM,MAAM,EAAE,QAAQ,KAAM,MAAM,EC1HvG,yBAAS,8BACT,4CAAS,8BA8BT,IAAM,GAA4B,OAAO,IAAI,kCAAkC,EACzE,EAAoC,IAAI,QAS9C,SAAS,EAAwB,CAAC,EAAoD,CACrF,MAAO,CACN,SAAU,EACV,UAAW,EAAiC,EAAW,CAAE,KAAM,SAAU,CAAC,CAC3E,EAUD,SAAS,CAAgC,CACxC,EACA,EAAiC,CAAC,EACzB,CACT,OAAO,EAA+B,CAAS,EAAE,mBAChD,EACA,EAAmC,CAAS,CAC7C,EAUD,SAAS,CAAkC,CAAC,EAA6D,CACxG,IAAM,EAAS,EAEf,GAAI,EAAkC,IAAI,CAAS,EAClD,OAAO,EAA+B,CAAS,EAAE,kBAAkB,EAGpE,EAAkC,IAAI,CAAS,EAE/C,GAAI,CACH,OAAO,EAAO,qBAAqB,SAClC,CACD,EAAkC,OAAO,CAAS,GAWpD,SAAS,CAA8B,CAAC,EAA+D,CACtG,IAAM,EAAS,EAEf,OAAO,IAAI,EAAyB,CACnC,YAAa,EAAO,YACpB,iCAAkC,IAAM,EAAO,iCAAiC,EAChF,qBAAsB,IAAM,EAAO,qBAAqB,EACxD,2BAA4B,IAAM,EAAO,2BAA2B,EACpE,eAAgB,CAAC,IAAY,EAAO,eAAe,CAAO,EAC1D,oBAAqB,IAAM,EAAO,oBAAoB,EACtD,sBAAuB,IAAM,EAAO,sBAAsB,EAC1D,2BAA4B,IAAM,EAA2B,CAAS,EACtE,iBAAkB,CAAC,IAAS,EAAO,GACnC,mBAAoB,IAAO,OAAO,EAAO,oBAAsB,WAAa,EAAO,kBAAkB,EAAI,CAAC,EAC1G,kBAAmB,CAAC,IAAS,EAAO,aAAa,CAAI,CACtD,CAAC,EAUF,SAAS,EAA6C,CAAC,EAAoB,CAC1E,OAAO,GAAkC,EAAG,cAAe,CAC1D,IAAM,EAAe,GAAkC,CAA+C,EAEtG,GAAI,CAAC,GAAc,mBAClB,OAGD,IAAM,EAAqB,EAAa,mBAExC,MAAO,CACN,SAAU,KACN,UAAS,EAAG,CACf,IAAM,EAAU,GAAuB,EACvC,OAAO,EAAmB,CAAE,UAAS,KAAM,EAAU,UAAY,OAAQ,CAAC,EAE5E,GACE,CAAM,EAMV,SAAS,EAAiC,CACzC,EACyC,CACzC,OAAO,EAAU,yBAAyB,EAS3C,SAAS,EAAsB,EAAY,CAC1C,OAAQ,WAAgE,MAA+B,GAUjG,SAAS,CAAwC,EAAG,CAC1D,IAAM,EAAkB,EAA4B,EAEpD,GAAI,EACH,OAAO,EAGR,IAAM,EAAoC,CACzC,kBAAmB,EACnB,WAAY,GACZ,mBAAoB,EACpB,oBAAqB,GACrB,WAAY,CAAC,EAAW,EAAU,CAAC,IAAM,CACxC,IAAM,EAAS,EAEf,OAAO,GAA2C,IACjD,GAAkB,EAAO,2BAA2B,EAAE,MAAO,CAAO,CACrE,EAEF,EAGA,OADA,EAAiC,CAAO,EACjC,EAGR,EAAyC,EC5KlC,IAAM,EAAmB,IAAI,IAAI,CACvC,OACA,OACA,KACA,MACA,QACA,KACA,MACA,QACA,OACA,OACA,QACA,SACA,QACA,KACD,CAAC,EAEM,SAAS,EAA4B,CAAC,EAAwB,CACpE,IAAM,EAAsB,CAAC,EACzB,EAAQ,EAEZ,MAAO,EAAQ,EAAK,OAAQ,CAC3B,IAAM,EAAgB,EAEtB,GAAI,EAAK,WAAW,OAAQ,CAAK,EAAG,CACnC,IAAM,EAAa,EAAK,QAAQ,MAAO,EAAQ,CAAC,EAChD,EAAQ,IAAe,GAAK,EAAK,OAAS,EAAa,EACvD,EAAU,KAAK,EAAK,MAAM,EAAe,CAAK,CAAC,EAC/C,SAGD,GAAI,EAAK,KAAW,IAAK,CACxB,IAAM,EAAe,EAAK,QAAQ,IAAK,CAAK,EAC5C,EAAQ,IAAiB,GAAK,EAAK,OAAS,EAC5C,EAAU,KAAK,EAAK,MAAM,EAAe,CAAK,CAAC,EAC/C,SAGD,IAAM,EAAQ,EAAkB,EAAM,CAAK,EAE3C,GAAI,CAAC,EAAO,CACX,EAAU,KAAK,EAAK,MAAM,CAAa,CAAC,EACxC,MAGD,GAAI,EAAM,OAAS,QAAU,EAAM,aAAe,EAAiB,IAAI,EAAM,OAAO,EAAG,CACtF,EAAQ,EAAM,IACd,EAAU,KAAK,EAAK,MAAM,EAAe,CAAK,CAAC,EAC/C,SAGD,EAAQ,EAAM,IACd,IAAI,EAAQ,EAEZ,MAAO,EAAQ,EAAK,QAAU,EAAQ,EAAG,CACxC,IAAM,EAAe,EAAK,QAAQ,IAAK,CAAK,EAE5C,GAAI,IAAiB,GAAI,CACxB,EAAQ,EAAK,OACb,MAGD,IAAM,EAAc,EAAkB,EAAM,CAAY,EAExD,GAAI,CAAC,EAAa,CACjB,EAAQ,EAAK,OACb,MAKD,GAFA,EAAQ,EAAY,IAEhB,EAAY,OAAS,WAAa,EAAY,OAAS,cAC1D,SAGD,GAAI,EAAY,OAAS,QAAU,CAAC,EAAY,aAAe,CAAC,EAAiB,IAAI,EAAY,OAAO,EAAG,CAC1G,GAAS,EACT,SAGD,GAAI,EAAY,OAAS,QACxB,GAAS,EAIX,EAAU,KAAK,EAAK,MAAM,EAAe,CAAK,CAAC,EAGhD,OAAO,EAAU,OAAO,CAAC,IAAa,IAAa,EAAE,EAG/C,SAAS,EAAc,CAAC,EAAc,EAA4B,CACxE,IAAI,EAEJ,QAAS,EAAQ,EAAa,EAAG,EAAQ,EAAK,OAAQ,GAAS,EAAG,CACjE,IAAM,EAAY,EAAK,GAEvB,GAAI,EAAO,CACV,GAAI,IAAc,EACjB,EAAQ,OAET,SAGD,GAAI,IAAc,KAAO,IAAc,IAAK,CAC3C,EAAQ,EACR,SAGD,GAAI,IAAc,IACjB,OAAO,EAAQ,EAIjB,OAAO,EAAK,OAGN,SAAS,EAAe,CAAC,EAA+C,CAC9E,IAAM,EAAqC,CAAC,EACtC,EAAmB,wEAEzB,QAAW,KAAS,EAAc,SAAS,CAAgB,EAAG,CAC7D,KAAS,EAAM,EAAc,EAAc,GAAa,EAExD,GAAI,CAAC,EACJ,SAGD,EAAW,GAAQ,GAAgB,GAAgB,GAAa,GAGjE,OAAO,EAGD,SAAS,CAAiB,CAAC,EAAc,EAAiD,CAChG,GAAI,EAAK,WAAW,OAAQ,CAAU,EAAG,CACxC,IAAM,EAAW,EAAK,QAAQ,MAAO,EAAa,CAAC,EACnD,MAAO,CACN,IAAK,IAAa,GAAK,EAAK,OAAS,EAAW,EAChD,KAAM,SACP,EAGD,IAAM,EAAW,GAAe,EAAM,CAAU,EAC1C,EAAW,EAAK,MAAM,EAAa,EAAG,EAAW,CAAC,EAAE,KAAK,EAE/D,GAAI,IAAa,GAChB,OAGD,GAAI,EAAS,WAAW,GAAG,GAAK,EAAS,WAAW,GAAG,EACtD,MAAO,CACN,IAAK,EACL,KAAM,aACP,EAGD,GAAI,EAAS,WAAW,GAAG,EAC1B,MAAO,CACN,IAAK,EACL,KAAM,OACP,EAGD,IAAM,EAAc,SAAS,KAAK,CAAQ,EACpC,EAAU,EAAc,EAAS,QAAQ,SAAU,EAAE,EAAE,KAAK,EAAI,EAChE,EAAU,EAAQ,MAAM,SAAU,CAAC,EAAE,IAAI,YAAY,GAAK,GAC1D,EAAkB,EAAQ,OAC1B,EAAgB,EAAQ,MAAM,CAAe,EAAE,KAAK,EACpD,EACL,GAAe,EAAiB,IAAI,CAAO,EACxC,GACA,GAAyB,EAAM,EAAY,EAAU,CAAO,EAEhE,MAAO,CACN,WAAY,GAAgB,CAAa,EACzC,IAAK,EACL,YACA,cACA,UACA,KAAM,MACP,EAGM,SAAS,EAAwB,CACvC,EACA,EACA,EACA,EACS,CACT,IAAI,EAAQ,EACR,EAAQ,EAEZ,MAAO,EAAQ,EAAK,QAAU,EAAQ,EAAG,CACxC,IAAM,EAAe,EAAK,QAAQ,IAAK,CAAK,EAE5C,GAAI,IAAiB,GACpB,OAAO,EAAK,MAAM,CAAW,EAG9B,IAAM,EAAU,EAAkB,EAAM,CAAY,EAEpD,GAAI,CAAC,EACJ,OAAO,EAAK,MAAM,CAAW,EAG9B,GACC,EAAQ,OAAS,QACjB,EAAQ,UAAY,GACpB,CAAC,EAAQ,aACT,CAAC,EAAiB,IAAI,CAAO,EAE7B,GAAS,EAGV,GAAI,EAAQ,OAAS,SAMpB,GALoB,EAClB,MAAM,EAAe,EAAG,EAAQ,IAAM,CAAC,EACvC,KAAK,EACL,YAAY,IAEM,GAGnB,GAFA,GAAS,EAEL,IAAU,EACb,OAAO,EAAK,MAAM,EAAa,CAAY,GAK9C,EAAQ,EAAQ,IAGjB,OAAO,EAAK,MAAM,CAAW,EC/M9B,MAAM,UAAoB,WAAY,CAOT,eANZ,cAAe,QACf,WAAY,EAErB,WAAqB,CAAC,EACtB,WAAuC,KAE9C,WAAW,CAAiB,EAAkB,CAC7C,MAAM,EADqB,gBAI5B,MAAM,IAAI,EAAmC,CAC5C,QAAW,KAAQ,EAClB,KAAK,YAAY,OAAO,IAAS,SAAW,EAAe,CAAI,EAAI,CAAI,EAIzE,WAA+B,CAAC,EAAoB,CACnD,GAAI,eAAgB,GAAQ,EAAK,YAAc,gBAAiB,EAAK,WACnE,EAAK,WAAwD,YAAY,CAAI,EAK/E,OAFA,KAAK,WAAW,KAAK,CAAI,EACxB,EAAyD,WAAa,KAChE,EAGR,WAA+B,CAAC,EAAoB,CACnD,IAAM,EAAY,KAAK,WAAW,QAAQ,CAAI,EAE9C,GAAI,IAAc,GACjB,OAAO,EAKR,OAFA,KAAK,WAAW,OAAO,EAAW,CAAC,EAClC,EAAyD,WAAa,KAChE,EAGR,eAAe,IAAI,EAAmC,CACrD,QAAW,KAAS,KAAK,WACvB,EAA0D,WAAa,KAGzE,KAAK,WAAa,CAAC,EACnB,KAAK,OAAO,GAAG,CAAK,KAGjB,YAAW,EAAkB,CAChC,OAAO,KAAK,WAAW,IAAI,CAAC,IAAU,EAAM,aAAe,EAAE,EAAE,KAAK,EAAE,KAGnE,YAAW,CAAC,EAAsB,CACrC,KAAK,gBAAgB,GAAS,EAAE,EAElC,CAEA,MAAM,WAAwB,CAAY,CACrB,MAApB,WAAW,CAAS,EAAe,CAClC,MAAM,EAAY,SAAS,EADR,gBAIP,YAAW,EAAW,CAClC,OAAO,KAAK,SAGA,YAAW,CAAC,EAAsB,CAC9C,KAAK,MAAQ,GAAS,GAExB,CAEA,MAAM,UAAuB,CAAY,CAChC,WAAa,IAAI,IACjB,aACA,aAEQ,UACA,QAEhB,WAAW,CAAC,EAAU,MAAO,CAC5B,MAAM,EAAY,YAAY,EAC9B,KAAK,UAAY,EAAQ,YAAY,EACrC,KAAK,QAAU,KAAK,UAAU,YAAY,EAG3C,YAAY,CAAC,EAAuB,CACnC,OAAO,KAAK,WAAW,IAAI,CAAI,EAGhC,YAAY,CAAC,EAA6B,CACzC,OAAO,KAAK,WAAW,IAAI,CAAI,GAAK,KAGrC,iBAAiB,EAAa,CAC7B,OAAO,MAAM,KAAK,KAAK,WAAW,KAAK,CAAC,EAGzC,YAAY,CAAC,EAAc,EAAsB,CAChD,KAAK,aAAe,OACpB,KAAK,WAAW,IAAI,EAAM,OAAO,CAAK,CAAC,EAGxC,eAAe,CAAC,EAAoB,CACnC,KAAK,aAAe,OACpB,KAAK,WAAW,OAAO,CAAI,EAG5B,aAAa,EAAmB,CAC/B,OAAO,KAGR,gBAAgB,EAAc,CAC7B,MAAO,CAAC,EAGT,OAAO,EAAY,CAClB,MAAO,MAGJ,UAAS,EAAW,CACvB,GAAI,KAAK,eAAiB,OACzB,OAAO,KAAK,aAGb,IAAM,EAAa,MAAM,KAAK,KAAK,WAAW,QAAQ,CAAC,EACrD,IAAI,EAAE,EAAM,KAAW,IAAI,MAAS,GAAoB,CAAK,IAAI,EACjE,KAAK,EAAE,EAET,MAAO,IAAI,KAAK,YAAY,KAAc,KAAK,cAAc,KAAK,gBAG/D,UAAS,EAAW,CACvB,OAAO,KAAK,WAAW,IAAI,CAAC,IAAU,GAAkB,CAAK,CAAC,EAAE,KAAK,EAAE,KAGpE,UAAS,CAAC,EAAc,CAC3B,KAAK,aAAe,OACpB,KAAK,aAAe,OACpB,KAAK,gBAAgB,GAAG,GAAiB,CAAI,CAAC,KAGlC,YAAW,EAAW,CAClC,OAAO,KAAK,cAAgB,MAAM,aAAe,MAGrC,YAAW,CAAC,EAAsB,CAC9C,KAAK,aAAe,OACpB,KAAK,aAAe,GAAS,GAC7B,MAAM,YAAc,EAGrB,qBAAqB,CAAC,EAAsB,EAAsB,EAA0C,CAC3G,KAAK,aAAe,EACpB,KAAK,aAAe,EACpB,KAAK,WAAa,IAAI,IAAI,OAAO,QAAQ,CAAU,CAAC,EACpD,KAAK,gBAAgB,EAEvB,CAEA,MAAM,CAAa,CACF,QACA,WACA,SACA,KAEhB,WAAW,CAAC,EAAc,EAA2B,CAAC,EAAG,CACxD,KAAK,KAAO,EACZ,KAAK,QAAU,EAAc,SAAW,GACxC,KAAK,WAAa,EAAc,YAAc,GAC9C,KAAK,SAAW,EAAc,UAAY,GAE5C,CAEA,MAAM,UAAwC,CAAa,CAC1C,OAEhB,WAAW,CAAC,EAAc,EAAoC,CAAC,EAAG,CACjE,MAAM,EAAM,CAAa,EACzB,KAAK,OAAS,EAAc,OAE9B,CAEA,MAAM,UAA2B,CAAe,CACxC,YAAc,GAErB,WAAW,CAAC,EAAU,MAAO,CAC5B,MAAM,CAAO,EAGd,kBAAkB,CAAC,EAA2B,EAAoB,CACjE,KAAK,OAAO,GAAG,GAAiB,CAAI,CAAC,EAMvC,CAEA,MAAM,UAAiC,CAAmB,CACzD,WAAW,EAAG,CACb,MAAM,QAAQ,EAEhB,CAEA,MAAM,EAAsE,CACnE,YAAc,IAAI,IAE1B,MAAM,CAAC,EAAc,EAA6C,CACjE,GAAI,KAAK,YAAY,IAAI,CAAI,EAC5B,OAGD,KAAK,YAAY,IAAI,EAAM,CAAW,EAGvC,GAAG,CAAC,EAAoD,CACvD,OAAO,KAAK,YAAY,IAAI,CAAI,EAElC,CAEA,IAAI,EAEJ,SAAS,CAAc,CAAC,EAAqB,CAC5C,OAAO,IAAI,GAAgB,CAAK,EAGjC,SAAS,EAAqB,EAAmC,CAChE,IAAM,EAAc,WAWd,EAAyB,EAAY,eAE3C,GACC,OAAO,EAAY,KAAS,KAC5B,OAAO,EAAY,QAAY,KAC/B,OAAO,EAAY,YAAgB,KACnC,CAAC,GACD,OAAO,EAAuB,SAAW,YACzC,OAAO,EAAuB,MAAQ,WAEtC,OAGD,OACC,EAAY,QAAU,CACrB,YAAc,EAAY,aAAe,EACzC,QAAS,EAAY,QACrB,MAAQ,EAAY,OAAS,EAC7B,YAAc,EAAY,aAAe,YACzC,kBAAoB,EAAY,mBAAqB,EAAY,YACjE,YAAa,EAAY,YACzB,KAAM,EAAY,KAClB,eAAgB,CACjB,EAKK,SAAS,EAAkB,EAAuB,CACxD,IAAM,EAAiB,GAAsB,EAE7C,GAAI,EACH,OAAO,EAGR,OAAO,GAAoB,EAWrB,SAAS,EAA6B,EAA4B,CAGxE,OAFA,GAAmB,EAEZ,CACN,WAAW,CAAC,EAAmB,EAA0C,CAAC,EAAS,CAClF,GAAI,EAAQ,kBAAoB,OAC/B,EAAK,UAAY,EAAQ,gBAG5B,EAMM,SAAS,EAAmB,EAAuB,CACzD,IAAM,EAAiB,GAAsB,EAE7C,GAAI,EACH,OAAO,EAGR,GAAI,EACH,OAAO,EAGR,IAAM,EAAiB,IAAI,GACrB,EAAoB,WAAW,OAAS,EACxC,EAA0B,WAAW,aAAe,EACpD,EAA0B,WAAW,aAAe,YAwB1D,OAvBA,EAAkB,CACjB,YAAa,EACb,QAAS,EACT,MAAO,EACP,YAAa,EACb,kBAAmB,EACnB,YAAa,EACb,KAAM,EACN,gBACD,EAEA,OAAO,OAAO,WAAY,CACzB,YAAa,EACb,QAAS,EACT,MAAO,EACP,YAAa,EACb,kBAAmB,EACnB,YAAa,EACb,KAAM,EACN,iBACA,OAAQ,CACT,CAAC,EAEM,EAGR,SAAS,EAAyB,CAAC,EAAkB,EAA0B,CAC9E,IAAM,EACL,EAAI,UAAY,SACZ,IAAI,EACL,IAAI,EAAmB,EAAI,OAAO,EAGtC,OADA,EAAQ,sBAAsB,EAAU,GAAmB,EAAI,SAAS,EAAG,EAAI,UAAU,EAClF,EAGR,SAAS,EAAmB,CAAC,EAAuB,CACnD,OAAO,EAAM,QAAQ,KAAM,OAAO,EAAE,QAAQ,KAAM,QAAQ,EAAE,QAAQ,KAAM,MAAM,EAAE,QAAQ,KAAM,MAAM,EAGvG,SAAS,EAAkB,CAAC,EAAsB,CACjD,OAAO,EAAK,QAAQ,eAAgB,EAAE,EAAE,QAAQ,WAAY,EAAE,EAG/D,SAAS,EAAgB,CAAC,EAAsB,CAC/C,OAAO,GAA6B,CAAI,EAAE,IAAI,CAAC,IAAa,CAC3D,GAAI,CAAC,EAAS,WAAW,GAAG,EAC3B,OAAO,EAAe,CAAQ,EAG/B,IAAM,EAAM,EAAkB,EAAU,CAAC,EAEzC,GAAI,CAAC,GAAO,EAAI,OAAS,OACxB,OAAO,EAAe,CAAQ,EAG/B,OAAO,GAA0B,EAAU,CAAG,EAC9C,EAGF,SAAS,EAAiB,CAAC,EAAoB,CAC9C,GAAI,EAAK,WAAa,EAAY,UACjC,OAAO,EAAK,aAAe,GAG5B,MAAO,cAAe,GAAQ,OAAO,EAAK,YAAc,SAAW,EAAK,UAAa,EAAK,aAAe,GC3Z1G,EAAyC,EA4BlC,SAAS,EAAiB,CAChC,EACA,EAA0C,UACjB,CACzB,MAAO,CAAE,KAAM,gBAAiB,MAAK,OAAM,EAIrC,SAAS,EAAkB,CAAC,EAAsC,CACxE,MAAO,CAAE,KAAM,gBAAiB,MAAK,EAI/B,SAAS,EAAU,CAAC,EAAc,EAAwC,CAChF,OAAO,EAAQ,CAAE,KAAM,QAAS,OAAM,OAAM,EAAI,CAAE,KAAM,QAAS,MAAK,EAoKvE,eAAsB,EAAqE,CAC1F,EACA,EACkB,CAClB,OAAQ,MAAM,EAAwB,EAAgC,EAAoB,CAAO,CAAC,GAAG,OAgBtG,eAAsB,EAA6D,CAClF,EACA,EAC6B,CAC7B,OAAO,EAAwB,EAAgC,EAAoB,CAAO,CAAC,EAgB5F,eAAsB,EAAsE,CAC3F,EACA,EACoC,CACpC,OAAO,GACN,MAAM,EAAwB,EAAgC,EAAoB,CAAO,CAAC,CAC3F,EAgBD,eAAsB,EAAwE,CAC7F,EACA,EACwC,CACxC,OAAO,GACN,MAAM,EAAwB,EAAgC,EAAoB,CAAO,CAAC,CAC3F,EAGD,eAAe,CAAqE,CACnF,EAC6B,CAC7B,EAAyC,EAEzC,IAAM,EAAc,EAAkB,aAAe,GAA8B,EAC7E,EAAwB,EAC7B,GAAiC,EAAkB,UAAU,CAC9D,EAEA,GAAI,CACH,IAAM,EACL,cAAe,EAAoB,EAAkB,UAAY,MAAM,EAAkB,KAAK,EACzF,EAAY,IAAI,EACtB,GACC,EACA,EACA,EAAkB,gBAClB,EAAkB,WACnB,EACA,EAAkB,aAAa,CAAS,EAExC,IAAM,EACL,EAAkB,iBAAoB,MAAM,EAAkB,yBAAyB,CAAS,EAC3F,EAAiB,EAAkB,QAAW,MAAM,EAAkB,gBAAgB,CAAS,GAAM,CAAC,EACtG,EAAS,GAA6B,EAAgB,CAAuB,EAC7E,EAAkB,GAA8B,CAAM,GAAK,EAC3D,EAAU,EAAkB,SAAW,GAAgC,CAAS,EAChF,GAAe,EAAkB,KAAO,IAA8B,EAAE,YAAY,EACpF,EAAgB,GAAuB,EAAkB,aAAa,EACtE,EAAmB,GAA8B,CAAgD,EACjG,EACL,GAAkB,qBAAqB,CAAa,GAAK,EAAU,mBAAmB,CAAa,EAC9F,GAAU,GAAgC,EAAW,EAAkB,CAAM,EAEnF,MAAO,CACN,SACA,SAAU,CACT,SACA,gBAAiB,EACjB,cACA,SACD,EACA,UACD,SACC,CACD,EAAsB,GAIxB,SAAS,EAA6B,CAAC,EAA6E,CACnH,OAAO,EAA4B,GAAG,oBAAoB,CAAS,EAYpE,SAAS,EAA6E,CACrF,EACA,EACA,EACgB,CAChB,GAAI,CAAC,EACJ,OAAO,EAAU,aAAa,GAAK,CAAE,SAAU,EAAG,UAAW,CAAO,EAGrE,GAAI,CAAC,EAAiB,oBAAsB,EAAiB,WAC5D,MAAO,CAAE,SAAU,EAAG,UAAW,CAAO,EAGzC,OAAO,EAAiB,aAAa,GAAK,EAAU,aAAa,GAAK,CAAE,SAAU,EAAG,UAAW,CAAO,EAGxG,SAAS,EAA0E,CAClF,EACA,EACA,EACA,EACO,CACP,GAAI,CAAC,GAAkB,CAAS,EAAG,CAClC,GAAI,IAAoB,QAAa,IAAgB,OACpD,OAGD,MAAU,MACT,GAAG,EAAU,YAAY,4FAC1B,EAGD,EAAY,YAAY,EAAW,CAAE,iBAAgB,CAAC,EACtD,IAAc,EAAW,CAAW,EAOrC,SAAS,EAAgC,CACxC,EACmC,CACnC,GAAI,CAAC,GAAW,EAAQ,SAAW,EAClC,MAAO,CAAC,EAGT,OAAO,EAAQ,IAAI,CAAC,KAAW,CAC9B,WAAY,IAAM,EAAM,MACxB,cAAe,IAAM,EAAM,QAC3B,sBAAuB,IAAG,CAAG,QAC7B,yBAA0B,IAAG,CAAG,OACjC,EAAE,EAOI,SAAS,EAA0B,CACzC,EAC2B,CAC3B,GAAI,aAAc,EACjB,MAAO,CACN,OAAQ,EAAO,SAAS,OACxB,gBAAiB,EAAO,SAAS,gBACjC,YAAa,EAAO,SAAS,YAC7B,OAAQ,EAAO,OACf,QAAS,EAAO,SAAS,OAC1B,EAGD,IAAQ,QAAS,KAAa,GAAY,EAC1C,OAAO,EAER,SAAS,EAA8B,CAAC,EAAyD,CAChG,MAAO,CACN,OAAQ,EAAO,SAAS,OACxB,gBAAiB,EAAO,SAAS,gBACjC,YAAa,EAAO,SAAS,YAC7B,OAAQ,EAAO,OACf,QAAS,EAAO,QAChB,QAAS,EAAO,SAAS,OAC1B,EAGD,SAAS,EAA4B,EAAS,CAC7C,OAAO,IAAI,KAGZ,SAAS,EAAyC,CACjD,EACoC,CACpC,GAAI,CAAC,EACJ,MAAO,CAAC,EAGT,MAAO,CAAC,GAAkB,CAAe,CAAC,EAGpC,SAAS,EAA4B,CAC3C,EACA,EACoC,CACpC,GAAI,CAAC,EACJ,OAAO,EAGR,GAAI,EAAO,KAAK,CAAC,IAAU,EAAM,OAAS,iBAAmB,EAAM,MAAQ,CAAe,EACzF,OAAO,EAGR,MAAO,CAAC,GAAG,GAA0C,CAAe,EAAG,GAAG,CAAM,EAG1E,SAAS,EAA6B,CAAC,EAA+D,CAC5G,OAAO,EAAO,KAAK,CAAC,IAAU,EAAM,OAAS,eAAe,GAAG,IAGhE,SAAS,CAA6E,CACrF,EACA,EACqC,CACrC,GAAI,OAAO,IAAuB,WACjC,MAAO,IACH,EACH,UAAW,CACZ,EAGD,OAAO,EAGD,SAAS,EAAsB,CAAC,EAAmE,CACzG,GAAI,GAAS,OAAS,QAAa,GAAS,UAAY,OACvD,OAAO,EAGR,MAAO,IACH,EACH,KAAM,SACP,EAGD,SAAS,EAA+D,CACvE,EACwC,CACxC,MAAO,cAAe,EAGvB,SAAS,EAA+B,CAAC,EAA0C,CAClF,IAAM,EAAU,EAAwB,CAAM,EAE9C,GAAI,CAAC,EACJ,MAAU,MAAM,GAAG,EAAO,0CAA0C,EAGrE,OAAO",
18
- "debugId": "80E164145B95929464756E2164756E21",
17
+ "mappings": "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",
18
+ "debugId": "BC8F51CFB11E55C164756E2164756E21",
19
19
  "names": []
20
20
  }