@ecopages/radiant 0.3.0-alpha.6 → 0.3.0-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/dist/controller-registry.d.ts +10 -0
- package/dist/controller-registry.js +2 -2
- package/dist/controller-registry.js.map +3 -3
- package/dist/core/radiant-element.d.ts +23 -0
- package/dist/core/radiant-element.js +2 -2
- package/dist/core/radiant-element.js.map +3 -3
- package/dist/decorators/controller.js +2 -2
- package/dist/decorators/controller.js.map +3 -3
- package/dist/decorators/legacy/query-slot.d.ts +1 -1
- package/dist/decorators/legacy/query-slot.js.map +3 -3
- package/dist/decorators/query-slot.d.ts +4 -8
- package/dist/decorators/query-slot.js +2 -2
- package/dist/decorators/query-slot.js.map +6 -6
- package/dist/decorators/standard/query-slot.d.ts +1 -1
- package/dist/decorators/standard/query-slot.js +2 -2
- package/dist/decorators/standard/query-slot.js.map +4 -4
- package/dist/helpers/create-query-slot.d.ts +2 -2
- package/dist/helpers/create-query-slot.js.map +2 -2
- package/dist/helpers/index.js.map +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -2
- package/dist/index.js.map +14 -9
- package/dist/server/render-controller.js +2 -2
- package/dist/server/render-controller.js.map +3 -3
- package/dist/tools/index.d.ts +0 -1
- package/dist/tools/index.js +2 -2
- package/dist/tools/index.js.map +4 -5
- package/package.json +2 -7
- package/size-budget.json +2 -2
- package/dist/tools/stringify-typed.d.ts +0 -16
- package/dist/tools/stringify-typed.js +0 -3
- package/dist/tools/stringify-typed.js.map +0 -10
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var _P=((P)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(P,{get:($,j)=>(typeof require<"u"?require:$)[j]}):P)(function(P){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+P+'" is not supported')});var m=Symbol.for("@ecopages/radiant.component-ssr-runtime");function I(){return globalThis[m]}function r(P){globalThis[m]=P}function n(P){switch(P){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function VP(P){switch(typeof P){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(P))return"array";if(Object.prototype.toString.call(P)==="[object Object]")return"object"}function gP(P){switch(P){case Number:return 0;case String:return"";case Boolean:return!1;default:return null}}function zP(P){try{return JSON.parse(P)}catch{throw TypeError("Invalid JSON string")}}var CP={array(P){let $=zP(P);if(!Array.isArray($))throw TypeError(`Expected an array but got a value of type "${typeof $}"`);return $},boolean(P){return!(P==="0"||String(P).toLowerCase()==="false")},number(P){return Number(P.replace(/_/g,""))},object(P){let $=JSON.parse(P);if($===null||typeof $!=="object"||Array.isArray($))throw TypeError(`expected value of type "object" but instead got value "${P}" of type "${VP($)}"`);return $},string(P){return P}},a={default:l,array:t,object:t};function t(P){return JSON.stringify(P)}function l(P){return`${P}`}function o(P,$){let j=n($);if(!j)throw TypeError(`[radiant-element] Unknown type "${$}"`);return CP[j](P)}function e(P,$){let j=n($);if(!j)throw TypeError(`[radiant-element] Unknown type "${$}"`);return(a[j]??a.default??l)(P)}function EP(P){return typeof P==="boolean"}function NP(P){return typeof P==="number"}function SP(P){return typeof P==="string"}function OP(P){return Array.isArray(P)}function cP(P){return typeof P==="object"&&!Array.isArray(P)&&P!==null}function _1(P,$){switch(P){case Boolean:return EP($);case Number:return NP($);case String:return SP($);case Array:return OP($);case Object:return cP($);default:return!1}}var V1=(P,$,j,q)=>{if($===Boolean){let Q=P.getAttribute(j);if(Q===null)return q;return Q===""?!0:o(Q,$)}let H=P.getAttribute(j);return H!==null?o(H,$):q??gP($)};var PP=Symbol.for("@ecopages/radiant.controllerIdentifier");function C(P,$){P[PP]=$}function $P(P){return P[PP]}var J="data-controller",jP=Symbol.for("@ecopages/radiant.controller-registry-state");function MP(){let P=globalThis,$=P[jP];if($)return $;let j={activeRuntimes:new Set,controllerRegistrationStrategy:"keep-current",controllerRegistry:new Map};return P[jP]=j,j}var k=MP(),D=k.controllerRegistry,R=k.activeRuntimes;function qP(P){let $=P.getAttribute(J);if(!$)return[];return $.split(/\s+/).map((j)=>j.trim()).filter((j)=>j.length>0)}function x(P,$){if(P instanceof Element&&P.hasAttribute(J))$(P);for(let j of Array.from(P.querySelectorAll(`[${J}]`)))$(j)}class HP{root;controllersByElement=new Map;observer;stopped=!1;constructor(P=document){this.root=P;this.start()}stop(){if(this.stopped)return;this.stopped=!0,this.observer?.disconnect(),this.observer=void 0;for(let[P,$]of this.controllersByElement)for(let[j]of $)this.disconnectController(P,j);R.delete(this)}reconcileRegisteredController(P){x(this.root,($)=>{if(!qP($).includes(P))return;this.connectController($,P)})}replaceRegisteredController(P){for(let[$,j]of Array.from(this.controllersByElement.entries())){if(!j.has(P))continue;this.disconnectController($,P)}this.reconcileRegisteredController(P)}start(){if(x(this.root,($)=>{this.reconcileElement($)}),typeof MutationObserver>"u"){R.add(this);return}this.observer=new MutationObserver(($)=>{for(let j of $){if(j.type==="attributes"&&j.target instanceof Element){this.reconcileElement(j.target);continue}for(let q of Array.from(j.removedNodes)){if(!(q instanceof Element))continue;x(q,(H)=>{this.disconnectElementControllers(H)})}for(let q of Array.from(j.addedNodes)){if(!(q instanceof Element))continue;x(q,(H)=>{this.reconcileElement(H)})}}});let P=this.root instanceof Document?this.root.documentElement:this.root;this.observer.observe(P,{attributeFilter:[J],attributes:!0,childList:!0,subtree:!0}),R.add(this)}reconcileElement(P){let $=new Set(qP(P)),j=this.controllersByElement.get(P);if(j){for(let q of j.keys())if(!$.has(q))this.disconnectController(P,q)}for(let q of $)this.connectController(P,q)}connectController(P,$){let j=D.get($);if(!j)return;let q=this.controllersByElement.get(P);if(!q)q=new Map,this.controllersByElement.set(P,q);if(q.has($))return;let H=new j(P);q.set($,H),H.connect()}disconnectController(P,$){let j=this.controllersByElement.get(P);if(!j)return;let q=j.get($);if(!q)return;if(q.disconnect(),j.delete($),j.size===0)this.controllersByElement.delete(P)}disconnectElementControllers(P){let $=this.controllersByElement.get(P);if(!$)return;for(let j of Array.from($.keys()))this.disconnectController(P,j)}}function sP(P,$){let j=D.get(P);if(j)return j;C($,P),D.set(P,$);for(let q of Array.from(R))q.reconcileRegisteredController(P);return $}function E1(P){return D.has(P)}function uP(P,$){if(D.get(P)===$)return $;C($,P),D.set(P,$);for(let q of Array.from(R))q.replaceRegisteredController(P);return $}function QP(P){k.controllerRegistrationStrategy=P}function N1(){QP("replace")}function S1(){QP("keep-current")}function O1(P,$){if(k.controllerRegistrationStrategy==="replace")return uP(P,$);return sP(P,$)}function c1(P=document){return new HP(P)}function M1(){for(let P of Array.from(R))P.stop()}var ZP=Symbol.for("@ecopages/radiant.customElementTagName");function u1(P,$){P[ZP]=$}function A(P){return P[ZP]}var E=Symbol.for("@ecopages/radiant.reactivePropDefinitions");function p1(P,$,j){let q=P.constructor,H=q[E]??[];if(H.some((Q)=>Q.name===$))return;H.push({name:$,options:j}),q[E]=H}function FP(P){return(P.constructor[E]??[]).slice()}var yP=Symbol.for("@ecopages/radiant.ssr-context-provider-resolver");function JP(){return globalThis}function WP(P){JP()[yP]=P}function i1(P){return JP()[yP]?.(P)}var Y;function RP(){if(Y!==void 0)return Y;try{let{AsyncLocalStorage:P}=(()=>{throw new Error("Cannot require module "+"node:async_hooks");})();return Y=new P,Y}catch{return Y=null,null}}var hP=Symbol.for("@ecopages/radiant.ssr-context-fallback-stack");function DP(){let P=globalThis;return P[hP]??=[],P[hP]}function b(P){if(P.length===0)return()=>{return};let $=new Map;for(let H of P)$.set(H.getContextKey(),H);let j=RP();if(j){let H=j.getStore()??[],Q=[...H,$];return j.enterWith(Q),()=>{j.enterWith(H)}}let q=DP();return q.push($),()=>{let H=q.lastIndexOf($);if(H>=0)q.splice(H,1)}}function GP(P){let $=RP()?.getStore()??DP();for(let j=$.length-1;j>=0;j-=1){let q=$[j]?.get(P);if(q)return q}return}function a1(P){let $=GP(P);if(!$)return;return $.getContext()}WP((P)=>GP(P));class N{host;constructor(P){this.host=P}renderHost(){return{nodeType:1,outerHTML:this.renderHostToString({mode:"hydrate"})}}renderHostToString(P={},$=this.getHostAttributes()){let j=this.getTagName(),q=b(this.host.getContextProviders());try{return`<${j}${vP($)}>${this.renderHostContent(P)}</${j}>`}finally{q()}}renderHostContent(P){let $=this.host.renderToString(P),j=this.host.getAuthoredHydrationScriptMarkup?.()??"",q=this.host.getSlotProjectionScriptTag?.()??"";if(!(P.mode==="hydrate"||P.mode===void 0&&P.hydrate===!0))return`${$}${j}${q}`;let Q=this.host.getHydrationBindings().map((Z)=>Z.renderHydrationScriptTag()).filter((Z)=>typeof Z==="string").join("");return`${$}${q}${Q}`}getHostAttributes(){let P={},$=new Set;for(let j of this.host.getReactiveProperties()){let q=this.host.getPropertyValue(j.name);if(q===void 0||q===null||q===!1)continue;P[j.attribute]=String(j.converter.toAttribute(q)),$.add(j.attribute)}for(let j of this.host.getReactivePropDefinitions()){let q=j.options.attribute??j.name;if($.has(q))continue;let H=this.host.getPropertyValue(j.name);if(H===void 0||H===null||H===!1)continue;P[q]=String(e(H,j.options.type)),$.add(q)}for(let j of this.host.listAttributeNames()){let q=this.host.getAttributeValue(j);if(q!==null)P[j]=q}return P}getTagName(){let P=A(this.host.constructor);if(!P)throw Error(`${this.host.constructor.name} is missing @customElement metadata.`);return P}}function vP(P){return Object.entries(P).map(([$,j])=>` ${$}="${pP(j)}"`).join("")}function pP(P){return P.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}import{renderToString as dP}from"@ecopages/jsx/server";import{withServerCustomElementRenderHook as iP}from"@ecopages/jsx/server";var mP=Symbol.for("@ecopages/jsx.active-ssr-hydrate"),S=new WeakSet;function rP(P){return{nodeType:1,outerHTML:UP(P,{mode:"hydrate"})}}function UP(P,$={}){return YP(P).renderHostToString($,XP(P))}function XP(P){let $=P;if(S.has(P))return YP(P).getHostAttributes();S.add(P);try{return $.getHostSsrAttributes()}finally{S.delete(P)}}function YP(P){let $=P;return new N({constructor:$.constructor,getAuthoredHydrationScriptMarkup:()=>$.getAuthoredHydrationScriptMarkup(),getHydrationBindings:()=>$.getHydrationBindings(),getSlotProjectionScriptTag:()=>$.getSlotProjectionScriptTag(),renderToString:(j)=>$.renderToString(j),getContextProviders:()=>$.getContextProviders(),getReactiveProperties:()=>$.getReactiveProperties(),getReactivePropDefinitions:()=>FP(P),getPropertyValue:(j)=>$[j],listAttributeNames:()=>typeof $.getAttributeNames==="function"?$.getAttributeNames():[],getAttributeValue:(j)=>$.getAttribute(j)})}function aP(P){return iP(({instance:$})=>{let j=fP($);if(!j?.renderHostToString)return;let q=j.renderHostToString;return{nodeType:1,get outerHTML(){let H=tP();return q({hydrate:H,mode:H?"hydrate":"plain"})}}},P)}function fP(P){return P.resolveSsrRenderBridge?.()}function tP(){return globalThis[mP]===!0}function G(){let P=I();if(P)return P;let $={getHostAttributes:XP,renderHost:rP,renderHostToString:UP,resolveRenderBridge:fP,renderView:(j,q={})=>{let H=j;return aP(()=>dP(H.resolveTrackedRenderOutput().value,q))}};return r($),$}G();var B=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]);function KP(P){let $=[],j=0;while(j<P.length){let q=j;if(P.startsWith("<!--",j)){let Z=P.indexOf("-->",j+4);j=Z===-1?P.length:Z+3,$.push(P.slice(q,j));continue}if(P[j]!=="<"){let Z=P.indexOf("<",j);j=Z===-1?P.length:Z,$.push(P.slice(q,j));continue}let H=f(P,j);if(!H){$.push(P.slice(q));break}if(H.type!=="open"||H.selfClosing||B.has(H.tagName)){j=H.end,$.push(P.slice(q,j));continue}j=H.end;let Q=1;while(j<P.length&&Q>0){let Z=P.indexOf("<",j);if(Z===-1){j=P.length;break}let F=f(P,Z);if(!F){j=P.length;break}if(j=F.end,F.type==="comment"||F.type==="declaration")continue;if(F.type==="open"&&!F.selfClosing&&!B.has(F.tagName)){Q+=1;continue}if(F.type==="close")Q-=1}$.push(P.slice(q,j))}return $.filter((q)=>q!=="")}function oP(P,$){let j;for(let q=$+1;q<P.length;q+=1){let H=P[q];if(j){if(H===j)j=void 0;continue}if(H==='"'||H==="'"){j=H;continue}if(H===">")return q+1}return P.length}function nP(P){let $={},j=/([:^@A-Za-z0-9_.-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>/]+)))?/g;for(let q of P.matchAll(j)){let[,H,Q,Z,F]=q;if(!H)continue;$[H]=Q??Z??F??""}return $}function f(P,$){if(P.startsWith("<!--",$)){let h=P.indexOf("-->",$+4);return{end:h===-1?P.length:h+3,type:"comment"}}let j=oP(P,$),q=P.slice($+1,j-1).trim();if(q==="")return;if(q.startsWith("!")||q.startsWith("?"))return{end:j,type:"declaration"};if(q.startsWith("/"))return{end:j,type:"close"};let H=/\/\s*$/.test(q),Q=H?q.replace(/\/\s*$/,"").trim():q,Z=Q.split(/[\s/>]/,1)[0]?.toLowerCase()??"",F=Z.length,W=Q.slice(F).trim(),U=H||B.has(Z)?"":lP(P,$,j,Z);return{attributes:nP(W),end:j,innerHtml:U,selfClosing:H,tagName:Z,type:"open"}}function lP(P,$,j,q){let H=j,Q=1;while(H<P.length&&Q>0){let Z=P.indexOf("<",H);if(Z===-1)return P.slice(j);let F=f(P,Z);if(!F)return P.slice(j);if(F.type==="open"&&F.tagName===q&&!F.selfClosing&&!B.has(q))Q+=1;if(F.type==="close"){if(P.slice(Z+2,F.end-1).trim().toLowerCase()===q){if(Q-=1,Q===0)return P.slice(j,Z)}}H=F.end}return P.slice(j)}class y extends EventTarget{nodeType;static ELEMENT_NODE=1;static TEXT_NODE=3;childNodes=[];parentNode=null;constructor(P){super();this.nodeType=P}append(...P){for(let $ of P)this.appendChild(typeof $==="string"?O($):$)}appendChild(P){if("parentNode"in P&&P.parentNode&&"removeChild"in P.parentNode)P.parentNode.removeChild(P);return this.childNodes.push(P),P.parentNode=this,P}removeChild(P){let $=this.childNodes.indexOf(P);if($===-1)return P;return this.childNodes.splice($,1),P.parentNode=null,P}replaceChildren(...P){for(let $ of this.childNodes)$.parentNode=null;this.childNodes=[],this.append(...P)}get textContent(){return this.childNodes.map((P)=>P.textContent??"").join("")}set textContent(P){this.replaceChildren(P??"")}}class wP extends y{value;constructor(P){super(y.TEXT_NODE);this.value=P}get textContent(){return this.value}set textContent(P){this.value=P??""}}class L extends y{attributes=new Map;fragmentHtml;fragmentText;localName;tagName;constructor(P="div"){super(y.ELEMENT_NODE);this.localName=P.toLowerCase(),this.tagName=this.localName.toUpperCase()}hasAttribute(P){return this.attributes.has(P)}getAttribute(P){return this.attributes.get(P)??null}getAttributeNames(){return Array.from(this.attributes.keys())}setAttribute(P,$){this.fragmentHtml=void 0,this.attributes.set(P,String($))}removeAttribute(P){this.fragmentHtml=void 0,this.attributes.delete(P)}querySelector(){return null}querySelectorAll(){return[]}matches(){return!1}get outerHTML(){if(this.fragmentHtml!==void 0)return this.fragmentHtml;let P=Array.from(this.attributes.entries()).map(([$,j])=>` ${$}="${$1(j)}"`).join("");return`<${this.localName}${P}>${this.innerHTML}</${this.localName}>`}get innerHTML(){return this.childNodes.map((P)=>q1(P)).join("")}set innerHTML(P){this.fragmentHtml=void 0,this.fragmentText=void 0,this.replaceChildren(...AP(P))}get textContent(){return this.fragmentText??super.textContent??""}set textContent(P){this.fragmentHtml=void 0,this.fragmentText=P??"",super.textContent=P}setSerializedFragment(P,$,j){this.fragmentHtml=P,this.fragmentText=$,this.attributes=new Map(Object.entries(j)),this.replaceChildren()}}class _{bubbles;cancelable;composed;type;constructor(P,$={}){this.type=P,this.bubbles=$.bubbles??!1,this.cancelable=$.cancelable??!1,this.composed=$.composed??!1}}class c extends _{detail;constructor(P,$={}){super(P,$);this.detail=$.detail}}class w extends L{isConnected=!1;constructor(P="div"){super(P)}insertAdjacentHTML(P,$){this.append(...AP($))}}class T extends w{constructor(){super("script")}}class IP{definitions=new Map;define(P,$){if(this.definitions.has(P))return;this.definitions.set(P,$)}get(P){return this.definitions.get(P)}}var K;function O(P){return new wP(P)}function xP(){let P=globalThis,$=P.customElements;if(typeof P.Node>"u"||typeof P.Element>"u"||typeof P.HTMLElement>"u"||!$||typeof $.define!=="function"||typeof $.get!=="function")return;return P.window??{CustomEvent:P.CustomEvent??c,Element:P.Element,Event:P.Event??_,EventTarget:P.EventTarget??EventTarget,HTMLScriptElement:P.HTMLScriptElement??P.HTMLElement,HTMLElement:P.HTMLElement,Node:P.Node,customElements:$}}function M(){let P=xP();if(P)return P;return eP()}function kP(){return M(),{prepareHost(P,$={}){if($.authoredContent!==void 0)P.innerHTML=$.authoredContent}}}function eP(){let P=xP();if(P)return P;if(K)return K;let $=new IP,j=globalThis.Event??_,q=globalThis.CustomEvent??c,H=globalThis.EventTarget??EventTarget;return K={CustomEvent:q,Element:L,Event:j,EventTarget:H,HTMLScriptElement:T,HTMLElement:w,Node:y,customElements:$},Object.assign(globalThis,{CustomEvent:q,Element:L,Event:j,EventTarget:H,HTMLScriptElement:T,HTMLElement:w,Node:y,customElements:$,window:K}),K}function P1(P,$){let j=$.tagName==="script"?new T:new w($.tagName);return j.setSerializedFragment(P,j1($.innerHtml),$.attributes),j}function $1(P){return P.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function j1(P){return P.replace(/<!--.*?-->/gs,"").replace(/<[^>]+>/g,"")}function AP(P){return KP(P).map(($)=>{if(!$.startsWith("<"))return O($);let j=f($,0);if(!j||j.type!=="open")return O($);return P1($,j)})}function q1(P){if(P.nodeType===y.TEXT_NODE)return P.textContent??"";return"outerHTML"in P&&typeof P.outerHTML==="string"?P.outerHTML:P.textContent??""}G();function H1(P,$="hydrate"){return{kind:"script-module",src:P,stage:$}}function G$(P){return{kind:"modulepreload",href:P}}function U$(P,$){return $?{kind:"style",href:P,media:$}:{kind:"style",href:P}}async function X$(P,$){return(await V(g(P,$))).markup}async function Y$(P,$){return V(g(P,$))}async function f$(P,$){return s(await V(g(P,$)))}async function K$(P,$){return J1(await V(g(P,$)))}async function V(P){G();let $=P.environment??kP(),j=b(y1(P.ssrContext));try{let q="component"in P?P.component:await P.load(),H=new q;F1($,H,P.authoredContent,P.prepareHost),P.initialize?.(H);let Q=P.clientModuleSrc??await P.resolveClientModuleSrc?.(q),Z=P.assets??await P.resolveAssets?.(q)??[],F=u(Z,Q),W=v(F)??Q,U=P.tagName??D1(q),h=(P.now??W1)().toISOString(),X=p(P.renderOptions),d=Q1(H),i=d?.renderHostToString?.(X)??H.renderHostToString(X),TP=Z1(H,d,i);return{markup:i,metadata:{assets:F,clientModuleUrl:W,generatedAt:h,tagName:U},preview:TP}}finally{j()}}function Q1(P){return I()?.resolveRenderBridge(P)}function Z1(P,$,j){if(!$)return P.renderHost?.()??{nodeType:1,outerHTML:j};if(!$.renderHostToString&&$.renderHost)return{nodeType:1,outerHTML:j};return $.renderHost?.()??P.renderHost?.()??{nodeType:1,outerHTML:j}}function F1(P,$,j,q){if(!R1($)){if(j===void 0&&q===void 0)return;throw Error(`${$.constructor.name} cannot prepare SSR host content because it does not expose an innerHTML host surface.`)}P.prepareHost($,{authoredContent:j}),q?.($,P)}function y1(P){if(!P||P.length===0)return[];return P.map(($)=>({getContext:()=>$.value,getContextKey:()=>$.context,renderHydrationScript:()=>{return},renderHydrationScriptTag:()=>{return}}))}function s(P){if("metadata"in P)return{assets:P.metadata.assets,clientModuleSrc:P.metadata.clientModuleUrl,generatedAt:P.metadata.generatedAt,markup:P.markup,tagName:P.metadata.tagName};let{preview:$,...j}=P;return j}function J1(P){return{assets:P.metadata.assets,clientModuleSrc:P.metadata.clientModuleUrl,generatedAt:P.metadata.generatedAt,markup:P.markup,preview:P.preview,tagName:P.metadata.tagName}}function W1(){return new Date}function h1(P){if(!P)return[];return[H1(P)]}function u(P,$){if(!$)return P;if(P.some((j)=>j.kind==="script-module"&&j.src===$))return P;return[...h1($),...P]}function v(P){return P.find(($)=>$.kind==="script-module")?.src}function g(P,$){if(typeof P==="function")return{...$,component:P};return P}function p(P){if(P?.mode!==void 0||P?.hydrate!==void 0)return P;return{...P,mode:"hydrate"}}function R1(P){return"innerHTML"in P}function D1(P){let $=A(P);if(!$)throw Error(`${P.name} is missing @customElement metadata.`);return $}import{renderToString as G1}from"@ecopages/jsx/server";async function L$(P,$){return(await z(P,$)).markup}async function T$(P,$){return z(P,$)}async function _$(P,$){return s(await z(P,$))}async function V$(P,$){return U1(await z(P,$))}async function z(P,$){G();let j=Y1($.tagName),q=f1(j,K1(P,$)),H=new P(q);try{$.initialize?.(H),H.connectForSsrRender();let Q=$.clientModuleSrc??await $.resolveClientModuleSrc?.(P),Z=$.assets??await $.resolveAssets?.(P)??[],F=u(Z,Q),W=v(F)??Q,U=($.now??X1)().toISOString(),h=p($.renderOptions),X=k1(H,j,h);return{markup:X,metadata:{assets:F,clientModuleUrl:W,generatedAt:U,tagName:j},preview:{nodeType:1,outerHTML:X}}}finally{H.disconnectForSsrRender()}}function U1(P){return{assets:P.metadata.assets,clientModuleSrc:P.metadata.clientModuleUrl,generatedAt:P.metadata.generatedAt,markup:P.markup,preview:P.preview,tagName:P.metadata.tagName}}function X1(){return new Date}function Y1(P){let $=P.trim().toLowerCase();if(!$)throw Error("Controller SSR host tagName is required.");return $}function f1(P,$){M();let j=globalThis.document,q=j?j.createElement(P):new globalThis.HTMLElement(P);for(let[H,Q]of Object.entries($)){if(Q===void 0||Q===null||Q===!1)continue;q.setAttribute(H,Q===!0?"":String(Q))}return q}function K1(P,$){let j={},q=$.host,H=I1($.attributes?.class,q?.class,q?.classes);if(H!==void 0)j.class=H;bP(j,"data",q?.data),bP(j,"aria",q?.aria),w1(j,$.attributes);let Q=$P(P);if(Q&&j[J]==null)j[J]=Q;return j}function bP(P,$,j){if(!LP(j))return;for(let[q,H]of Object.entries(j))P[`${$}-${x1(q)}`]=H}function w1(P,$){if(!$)return;for(let[j,q]of Object.entries($))P[j]=q}function I1(...P){let $=[];for(let j of P)BP($,j);return $.length===0?void 0:$.join(" ")}function BP(P,$){if($===void 0||$===null||$===!1||$===!0)return;if(typeof $==="string"){if($!=="")P.push($);return}if(typeof $==="number"||typeof $==="bigint"){P.push(String($));return}if(Array.isArray($)){for(let j of $)BP(P,j);return}if(!LP($))return;for(let[j,q]of Object.entries($))if(q)P.push(j)}function LP(P){return Object.prototype.toString.call(P)==="[object Object]"}function x1(P){return P.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/[_\s]+/g,"-").toLowerCase()}function k1(P,$,j){return`<${$}${A1(P.host)}>${G1(P.render(),j)}</${$}>`}function A1(P){return P.getAttributeNames().map(($)=>b1($,P.getAttribute($))).join("")}function b1(P,$){if($==="")return` ${P}`;return` ${P}="${B1($??"")}"`}function B1(P){return P.replaceAll("&","&").replaceAll('"',""").replaceAll("<","<").replaceAll(">",">")}export{V$ as renderControllerWithPreview,L$ as renderControllerToString,_$ as renderControllerToPayload,T$ as renderController};
|
|
1
|
+
var _P=((P)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(P,{get:($,j)=>(typeof require<"u"?require:$)[j]}):P)(function(P){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+P+'" is not supported')});var i=Symbol.for("@ecopages/radiant.component-ssr-runtime");function I(){return globalThis[i]}function r(P){globalThis[i]=P}function n(P){switch(P){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function VP(P){switch(typeof P){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(P))return"array";if(Object.prototype.toString.call(P)==="[object Object]")return"object"}function gP(P){switch(P){case Number:return 0;case String:return"";case Boolean:return!1;default:return null}}function zP(P){try{return JSON.parse(P)}catch{throw TypeError("Invalid JSON string")}}var CP={array(P){let $=zP(P);if(!Array.isArray($))throw TypeError(`Expected an array but got a value of type "${typeof $}"`);return $},boolean(P){return!(P==="0"||String(P).toLowerCase()==="false")},number(P){return Number(P.replace(/_/g,""))},object(P){let $=JSON.parse(P);if($===null||typeof $!=="object"||Array.isArray($))throw TypeError(`expected value of type "object" but instead got value "${P}" of type "${VP($)}"`);return $},string(P){return P}},a={default:l,array:t,object:t};function t(P){return JSON.stringify(P)}function l(P){return`${P}`}function o(P,$){let j=n($);if(!j)throw TypeError(`[radiant-element] Unknown type "${$}"`);return CP[j](P)}function e(P,$){let j=n($);if(!j)throw TypeError(`[radiant-element] Unknown type "${$}"`);return(a[j]??a.default??l)(P)}function EP(P){return typeof P==="boolean"}function NP(P){return typeof P==="number"}function SP(P){return typeof P==="string"}function OP(P){return Array.isArray(P)}function cP(P){return typeof P==="object"&&!Array.isArray(P)&&P!==null}function _1(P,$){switch(P){case Boolean:return EP($);case Number:return NP($);case String:return SP($);case Array:return OP($);case Object:return cP($);default:return!1}}var V1=(P,$,j,q)=>{if($===Boolean){let Q=P.getAttribute(j);if(Q===null)return q;return Q===""?!0:o(Q,$)}let H=P.getAttribute(j);return H!==null?o(H,$):q??gP($)};var PP=Symbol.for("@ecopages/radiant.controllerIdentifier");function C(P,$){P[PP]=$}function $P(P){return P[PP]}var J="data-controller",jP=Symbol.for("@ecopages/radiant.controller-registry-state");function MP(){let P=globalThis,$=P[jP];if($)return $;let j={activeRuntimes:new Set,controllerRegistrationStrategy:"keep-current",controllerRegistry:new Map};return P[jP]=j,j}var k=MP(),W=k.controllerRegistry,D=k.activeRuntimes;function qP(P){let $=P.getAttribute(J);if(!$)return[];return $.split(/\s+/).map((j)=>j.trim()).filter((j)=>j.length>0)}function x(P,$){if(P instanceof Element&&P.hasAttribute(J))$(P);for(let j of Array.from(P.querySelectorAll(`[${J}]`)))$(j)}class HP{root;controllersByElement=new Map;observer;stopped=!1;constructor(P=document){this.root=P;this.start()}stop(){if(this.stopped)return;this.stopped=!0,this.observer?.disconnect(),this.observer=void 0;for(let[P,$]of this.controllersByElement)for(let[j]of $)this.disconnectController(P,j);D.delete(this)}reconcileRegisteredController(P){x(this.root,($)=>{if(!qP($).includes(P))return;this.connectController($,P)})}replaceRegisteredController(P){for(let[$,j]of Array.from(this.controllersByElement.entries())){if(!j.has(P))continue;this.disconnectController($,P)}this.reconcileRegisteredController(P)}start(){if(x(this.root,($)=>{this.reconcileElement($)}),typeof MutationObserver>"u"){D.add(this);return}this.observer=new MutationObserver(($)=>{for(let j of $){if(j.type==="attributes"&&j.target instanceof Element){this.reconcileElement(j.target);continue}for(let q of Array.from(j.removedNodes)){if(!(q instanceof Element))continue;x(q,(H)=>{this.disconnectElementControllers(H)})}for(let q of Array.from(j.addedNodes)){if(!(q instanceof Element))continue;x(q,(H)=>{this.reconcileElement(H)})}}});let P=this.root instanceof Document?this.root.documentElement:this.root;this.observer.observe(P,{attributeFilter:[J],attributes:!0,childList:!0,subtree:!0}),D.add(this)}reconcileElement(P){let $=new Set(qP(P)),j=this.controllersByElement.get(P);if(j){for(let q of j.keys())if(!$.has(q))this.disconnectController(P,q)}for(let q of $)this.connectController(P,q)}connectController(P,$){let j=W.get($);if(!j)return;let q=this.controllersByElement.get(P);if(!q)q=new Map,this.controllersByElement.set(P,q);if(q.has($))return;let H=new j(P);q.set($,H),H.connect()}disconnectController(P,$){let j=this.controllersByElement.get(P);if(!j)return;let q=j.get($);if(!q)return;if(q.disconnect(),j.delete($),j.size===0)this.controllersByElement.delete(P)}disconnectElementControllers(P){let $=this.controllersByElement.get(P);if(!$)return;for(let j of Array.from($.keys()))this.disconnectController(P,j)}}function sP(P,$){let j=W.get(P);if(j)return j;C($,P),W.set(P,$);for(let q of Array.from(D))q.reconcileRegisteredController(P);return $}function E1(P){return W.has(P)}function N1(P){return W.get(P)}function uP(P,$){if(W.get(P)===$)return $;C($,P),W.set(P,$);for(let q of Array.from(D))q.replaceRegisteredController(P);return $}function QP(P){k.controllerRegistrationStrategy=P}function S1(){QP("replace")}function O1(){QP("keep-current")}function c1(P,$){if(k.controllerRegistrationStrategy==="replace")return uP(P,$);return sP(P,$)}function M1(P=document){return new HP(P)}function s1(){for(let P of Array.from(D))P.stop()}var ZP=Symbol.for("@ecopages/radiant.customElementTagName");function v1(P,$){P[ZP]=$}function A(P){return P[ZP]}var E=Symbol.for("@ecopages/radiant.reactivePropDefinitions");function d1(P,$,j){let q=P.constructor,H=q[E]??[];if(H.some((Q)=>Q.name===$))return;H.push({name:$,options:j}),q[E]=H}function FP(P){return(P.constructor[E]??[]).slice()}var yP=Symbol.for("@ecopages/radiant.ssr-context-provider-resolver");function JP(){return globalThis}function WP(P){JP()[yP]=P}function i1(P){return JP()[yP]?.(P)}var Y;function RP(){if(Y!==void 0)return Y;try{let{AsyncLocalStorage:P}=(()=>{throw new Error("Cannot require module "+"node:async_hooks");})();return Y=new P,Y}catch{return Y=null,null}}var hP=Symbol.for("@ecopages/radiant.ssr-context-fallback-stack");function DP(){let P=globalThis;return P[hP]??=[],P[hP]}function b(P){if(P.length===0)return()=>{return};let $=new Map;for(let H of P)$.set(H.getContextKey(),H);let j=RP();if(j){let H=j.getStore()??[],Q=[...H,$];return j.enterWith(Q),()=>{j.enterWith(H)}}let q=DP();return q.push($),()=>{let H=q.lastIndexOf($);if(H>=0)q.splice(H,1)}}function GP(P){let $=RP()?.getStore()??DP();for(let j=$.length-1;j>=0;j-=1){let q=$[j]?.get(P);if(q)return q}return}function t1(P){let $=GP(P);if(!$)return;return $.getContext()}WP((P)=>GP(P));class N{host;constructor(P){this.host=P}renderHost(){return{nodeType:1,outerHTML:this.renderHostToString({mode:"hydrate"})}}renderHostToString(P={},$=this.getHostAttributes()){let j=this.getTagName(),q=b(this.host.getContextProviders());try{return`<${j}${vP($)}>${this.renderHostContent(P)}</${j}>`}finally{q()}}renderHostContent(P){let $=this.host.renderToString(P),j=this.host.getAuthoredHydrationScriptMarkup?.()??"",q=this.host.getSlotProjectionScriptTag?.()??"";if(!(P.mode==="hydrate"||P.mode===void 0&&P.hydrate===!0))return`${$}${j}${q}`;let Q=this.host.getHydrationBindings().map((Z)=>Z.renderHydrationScriptTag()).filter((Z)=>typeof Z==="string").join("");return`${$}${q}${Q}`}getHostAttributes(){let P={},$=new Set;for(let j of this.host.getReactiveProperties()){let q=this.host.getPropertyValue(j.name);if(q===void 0||q===null||q===!1)continue;P[j.attribute]=String(j.converter.toAttribute(q)),$.add(j.attribute)}for(let j of this.host.getReactivePropDefinitions()){let q=j.options.attribute??j.name;if($.has(q))continue;let H=this.host.getPropertyValue(j.name);if(H===void 0||H===null||H===!1)continue;P[q]=String(e(H,j.options.type)),$.add(q)}for(let j of this.host.listAttributeNames()){let q=this.host.getAttributeValue(j);if(q!==null)P[j]=q}return P}getTagName(){let P=A(this.host.constructor);if(!P)throw Error(`${this.host.constructor.name} is missing @customElement metadata.`);return P}}function vP(P){return Object.entries(P).map(([$,j])=>` ${$}="${pP(j)}"`).join("")}function pP(P){return P.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}import{renderToString as dP}from"@ecopages/jsx/server";import{withServerCustomElementRenderHook as mP}from"@ecopages/jsx/server";var iP=Symbol.for("@ecopages/jsx.active-ssr-hydrate"),S=new WeakSet;function rP(P){return{nodeType:1,outerHTML:UP(P,{mode:"hydrate"})}}function UP(P,$={}){return YP(P).renderHostToString($,XP(P))}function XP(P){let $=P;if(S.has(P))return YP(P).getHostAttributes();S.add(P);try{return $.getHostSsrAttributes()}finally{S.delete(P)}}function YP(P){let $=P;return new N({constructor:$.constructor,getAuthoredHydrationScriptMarkup:()=>$.getAuthoredHydrationScriptMarkup(),getHydrationBindings:()=>$.getHydrationBindings(),getSlotProjectionScriptTag:()=>$.getSlotProjectionScriptTag(),renderToString:(j)=>$.renderToString(j),getContextProviders:()=>$.getContextProviders(),getReactiveProperties:()=>$.getReactiveProperties(),getReactivePropDefinitions:()=>FP(P),getPropertyValue:(j)=>$[j],listAttributeNames:()=>typeof $.getAttributeNames==="function"?$.getAttributeNames():[],getAttributeValue:(j)=>$.getAttribute(j)})}function aP(P){return mP(({instance:$})=>{let j=KP($);if(!j?.renderHostToString)return;let q=j.renderHostToString;return{nodeType:1,get outerHTML(){let H=tP();return q({hydrate:H,mode:H?"hydrate":"plain"})}}},P)}function KP(P){return P.resolveSsrRenderBridge?.()}function tP(){return globalThis[iP]===!0}function G(){let P=I();if(P)return P;let $={getHostAttributes:XP,renderHost:rP,renderHostToString:UP,resolveRenderBridge:KP,renderView:(j,q={})=>{let H=j;return aP(()=>dP(H.resolveTrackedRenderOutput().value,q))}};return r($),$}G();var B=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]);function fP(P){let $=[],j=0;while(j<P.length){let q=j;if(P.startsWith("<!--",j)){let Z=P.indexOf("-->",j+4);j=Z===-1?P.length:Z+3,$.push(P.slice(q,j));continue}if(P[j]!=="<"){let Z=P.indexOf("<",j);j=Z===-1?P.length:Z,$.push(P.slice(q,j));continue}let H=K(P,j);if(!H){$.push(P.slice(q));break}if(H.type!=="open"||H.selfClosing||B.has(H.tagName)){j=H.end,$.push(P.slice(q,j));continue}j=H.end;let Q=1;while(j<P.length&&Q>0){let Z=P.indexOf("<",j);if(Z===-1){j=P.length;break}let F=K(P,Z);if(!F){j=P.length;break}if(j=F.end,F.type==="comment"||F.type==="declaration")continue;if(F.type==="open"&&!F.selfClosing&&!B.has(F.tagName)){Q+=1;continue}if(F.type==="close")Q-=1}$.push(P.slice(q,j))}return $.filter((q)=>q!=="")}function oP(P,$){let j;for(let q=$+1;q<P.length;q+=1){let H=P[q];if(j){if(H===j)j=void 0;continue}if(H==='"'||H==="'"){j=H;continue}if(H===">")return q+1}return P.length}function nP(P){let $={},j=/([:^@A-Za-z0-9_.-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>/]+)))?/g;for(let q of P.matchAll(j)){let[,H,Q,Z,F]=q;if(!H)continue;$[H]=Q??Z??F??""}return $}function K(P,$){if(P.startsWith("<!--",$)){let R=P.indexOf("-->",$+4);return{end:R===-1?P.length:R+3,type:"comment"}}let j=oP(P,$),q=P.slice($+1,j-1).trim();if(q==="")return;if(q.startsWith("!")||q.startsWith("?"))return{end:j,type:"declaration"};if(q.startsWith("/"))return{end:j,type:"close"};let H=/\/\s*$/.test(q),Q=H?q.replace(/\/\s*$/,"").trim():q,Z=Q.split(/[\s/>]/,1)[0]?.toLowerCase()??"",F=Z.length,h=Q.slice(F).trim(),U=H||B.has(Z)?"":lP(P,$,j,Z);return{attributes:nP(h),end:j,innerHtml:U,selfClosing:H,tagName:Z,type:"open"}}function lP(P,$,j,q){let H=j,Q=1;while(H<P.length&&Q>0){let Z=P.indexOf("<",H);if(Z===-1)return P.slice(j);let F=K(P,Z);if(!F)return P.slice(j);if(F.type==="open"&&F.tagName===q&&!F.selfClosing&&!B.has(q))Q+=1;if(F.type==="close"){if(P.slice(Z+2,F.end-1).trim().toLowerCase()===q){if(Q-=1,Q===0)return P.slice(j,Z)}}H=F.end}return P.slice(j)}class y extends EventTarget{nodeType;static ELEMENT_NODE=1;static TEXT_NODE=3;childNodes=[];parentNode=null;constructor(P){super();this.nodeType=P}append(...P){for(let $ of P)this.appendChild(typeof $==="string"?O($):$)}appendChild(P){if("parentNode"in P&&P.parentNode&&"removeChild"in P.parentNode)P.parentNode.removeChild(P);return this.childNodes.push(P),P.parentNode=this,P}removeChild(P){let $=this.childNodes.indexOf(P);if($===-1)return P;return this.childNodes.splice($,1),P.parentNode=null,P}replaceChildren(...P){for(let $ of this.childNodes)$.parentNode=null;this.childNodes=[],this.append(...P)}get textContent(){return this.childNodes.map((P)=>P.textContent??"").join("")}set textContent(P){this.replaceChildren(P??"")}}class wP extends y{value;constructor(P){super(y.TEXT_NODE);this.value=P}get textContent(){return this.value}set textContent(P){this.value=P??""}}class L extends y{attributes=new Map;fragmentHtml;fragmentText;localName;tagName;constructor(P="div"){super(y.ELEMENT_NODE);this.localName=P.toLowerCase(),this.tagName=this.localName.toUpperCase()}hasAttribute(P){return this.attributes.has(P)}getAttribute(P){return this.attributes.get(P)??null}getAttributeNames(){return Array.from(this.attributes.keys())}setAttribute(P,$){this.fragmentHtml=void 0,this.attributes.set(P,String($))}removeAttribute(P){this.fragmentHtml=void 0,this.attributes.delete(P)}querySelector(){return null}querySelectorAll(){return[]}matches(){return!1}get outerHTML(){if(this.fragmentHtml!==void 0)return this.fragmentHtml;let P=Array.from(this.attributes.entries()).map(([$,j])=>` ${$}="${$1(j)}"`).join("");return`<${this.localName}${P}>${this.innerHTML}</${this.localName}>`}get innerHTML(){return this.childNodes.map((P)=>q1(P)).join("")}set innerHTML(P){this.fragmentHtml=void 0,this.fragmentText=void 0,this.replaceChildren(...AP(P))}get textContent(){return this.fragmentText??super.textContent??""}set textContent(P){this.fragmentHtml=void 0,this.fragmentText=P??"",super.textContent=P}setSerializedFragment(P,$,j){this.fragmentHtml=P,this.fragmentText=$,this.attributes=new Map(Object.entries(j)),this.replaceChildren()}}class _{bubbles;cancelable;composed;type;constructor(P,$={}){this.type=P,this.bubbles=$.bubbles??!1,this.cancelable=$.cancelable??!1,this.composed=$.composed??!1}}class c extends _{detail;constructor(P,$={}){super(P,$);this.detail=$.detail}}class w extends L{isConnected=!1;constructor(P="div"){super(P)}insertAdjacentHTML(P,$){this.append(...AP($))}}class T extends w{constructor(){super("script")}}class IP{definitions=new Map;define(P,$){if(this.definitions.has(P))return;this.definitions.set(P,$)}get(P){return this.definitions.get(P)}}var f;function O(P){return new wP(P)}function xP(){let P=globalThis,$=P.customElements;if(typeof P.Node>"u"||typeof P.Element>"u"||typeof P.HTMLElement>"u"||!$||typeof $.define!=="function"||typeof $.get!=="function")return;return P.window??{CustomEvent:P.CustomEvent??c,Element:P.Element,Event:P.Event??_,EventTarget:P.EventTarget??EventTarget,HTMLScriptElement:P.HTMLScriptElement??P.HTMLElement,HTMLElement:P.HTMLElement,Node:P.Node,customElements:$}}function M(){let P=xP();if(P)return P;return eP()}function kP(){return M(),{prepareHost(P,$={}){if($.authoredContent!==void 0)P.innerHTML=$.authoredContent}}}function eP(){let P=xP();if(P)return P;if(f)return f;let $=new IP,j=globalThis.Event??_,q=globalThis.CustomEvent??c,H=globalThis.EventTarget??EventTarget;return f={CustomEvent:q,Element:L,Event:j,EventTarget:H,HTMLScriptElement:T,HTMLElement:w,Node:y,customElements:$},Object.assign(globalThis,{CustomEvent:q,Element:L,Event:j,EventTarget:H,HTMLScriptElement:T,HTMLElement:w,Node:y,customElements:$,window:f}),f}function P1(P,$){let j=$.tagName==="script"?new T:new w($.tagName);return j.setSerializedFragment(P,j1($.innerHtml),$.attributes),j}function $1(P){return P.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function j1(P){return P.replace(/<!--.*?-->/gs,"").replace(/<[^>]+>/g,"")}function AP(P){return fP(P).map(($)=>{if(!$.startsWith("<"))return O($);let j=K($,0);if(!j||j.type!=="open")return O($);return P1($,j)})}function q1(P){if(P.nodeType===y.TEXT_NODE)return P.textContent??"";return"outerHTML"in P&&typeof P.outerHTML==="string"?P.outerHTML:P.textContent??""}G();function H1(P,$="hydrate"){return{kind:"script-module",src:P,stage:$}}function U$(P){return{kind:"modulepreload",href:P}}function X$(P,$){return $?{kind:"style",href:P,media:$}:{kind:"style",href:P}}async function Y$(P,$){return(await V(g(P,$))).markup}async function K$(P,$){return V(g(P,$))}async function f$(P,$){return s(await V(g(P,$)))}async function w$(P,$){return J1(await V(g(P,$)))}async function V(P){G();let $=P.environment??kP(),j=b(y1(P.ssrContext));try{let q="component"in P?P.component:await P.load(),H=new q;F1($,H,P.authoredContent,P.prepareHost),P.initialize?.(H);let Q=P.clientModuleSrc??await P.resolveClientModuleSrc?.(q),Z=P.assets??await P.resolveAssets?.(q)??[],F=u(Z,Q),h=v(F)??Q,U=P.tagName??D1(q),R=(P.now??W1)().toISOString(),X=p(P.renderOptions),d=Q1(H),m=d?.renderHostToString?.(X)??H.renderHostToString(X),TP=Z1(H,d,m);return{markup:m,metadata:{assets:F,clientModuleUrl:h,generatedAt:R,tagName:U},preview:TP}}finally{j()}}function Q1(P){return I()?.resolveRenderBridge(P)}function Z1(P,$,j){if(!$)return P.renderHost?.()??{nodeType:1,outerHTML:j};if(!$.renderHostToString&&$.renderHost)return{nodeType:1,outerHTML:j};return $.renderHost?.()??P.renderHost?.()??{nodeType:1,outerHTML:j}}function F1(P,$,j,q){if(!R1($)){if(j===void 0&&q===void 0)return;throw Error(`${$.constructor.name} cannot prepare SSR host content because it does not expose an innerHTML host surface.`)}P.prepareHost($,{authoredContent:j}),q?.($,P)}function y1(P){if(!P||P.length===0)return[];return P.map(($)=>({getContext:()=>$.value,getContextKey:()=>$.context,renderHydrationScript:()=>{return},renderHydrationScriptTag:()=>{return}}))}function s(P){if("metadata"in P)return{assets:P.metadata.assets,clientModuleSrc:P.metadata.clientModuleUrl,generatedAt:P.metadata.generatedAt,markup:P.markup,tagName:P.metadata.tagName};let{preview:$,...j}=P;return j}function J1(P){return{assets:P.metadata.assets,clientModuleSrc:P.metadata.clientModuleUrl,generatedAt:P.metadata.generatedAt,markup:P.markup,preview:P.preview,tagName:P.metadata.tagName}}function W1(){return new Date}function h1(P){if(!P)return[];return[H1(P)]}function u(P,$){if(!$)return P;if(P.some((j)=>j.kind==="script-module"&&j.src===$))return P;return[...h1($),...P]}function v(P){return P.find(($)=>$.kind==="script-module")?.src}function g(P,$){if(typeof P==="function")return{...$,component:P};return P}function p(P){if(P?.mode!==void 0||P?.hydrate!==void 0)return P;return{...P,mode:"hydrate"}}function R1(P){return"innerHTML"in P}function D1(P){let $=A(P);if(!$)throw Error(`${P.name} is missing @customElement metadata.`);return $}import{renderToString as G1}from"@ecopages/jsx/server";async function T$(P,$){return(await z(P,$)).markup}async function _$(P,$){return z(P,$)}async function V$(P,$){return s(await z(P,$))}async function g$(P,$){return U1(await z(P,$))}async function z(P,$){G();let j=Y1($.tagName),q=K1(j,f1(P,$)),H=new P(q);try{$.initialize?.(H),H.connectForSsrRender();let Q=$.clientModuleSrc??await $.resolveClientModuleSrc?.(P),Z=$.assets??await $.resolveAssets?.(P)??[],F=u(Z,Q),h=v(F)??Q,U=($.now??X1)().toISOString(),R=p($.renderOptions),X=k1(H,j,R);return{markup:X,metadata:{assets:F,clientModuleUrl:h,generatedAt:U,tagName:j},preview:{nodeType:1,outerHTML:X}}}finally{H.disconnectForSsrRender()}}function U1(P){return{assets:P.metadata.assets,clientModuleSrc:P.metadata.clientModuleUrl,generatedAt:P.metadata.generatedAt,markup:P.markup,preview:P.preview,tagName:P.metadata.tagName}}function X1(){return new Date}function Y1(P){let $=P.trim().toLowerCase();if(!$)throw Error("Controller SSR host tagName is required.");return $}function K1(P,$){M();let j=globalThis.document,q=j?j.createElement(P):new globalThis.HTMLElement(P);for(let[H,Q]of Object.entries($)){if(Q===void 0||Q===null||Q===!1)continue;q.setAttribute(H,Q===!0?"":String(Q))}return q}function f1(P,$){let j={},q=$.host,H=I1($.attributes?.class,q?.class,q?.classes);if(H!==void 0)j.class=H;bP(j,"data",q?.data),bP(j,"aria",q?.aria),w1(j,$.attributes);let Q=$P(P);if(Q&&j[J]==null)j[J]=Q;return j}function bP(P,$,j){if(!LP(j))return;for(let[q,H]of Object.entries(j))P[`${$}-${x1(q)}`]=H}function w1(P,$){if(!$)return;for(let[j,q]of Object.entries($))P[j]=q}function I1(...P){let $=[];for(let j of P)BP($,j);return $.length===0?void 0:$.join(" ")}function BP(P,$){if($===void 0||$===null||$===!1||$===!0)return;if(typeof $==="string"){if($!=="")P.push($);return}if(typeof $==="number"||typeof $==="bigint"){P.push(String($));return}if(Array.isArray($)){for(let j of $)BP(P,j);return}if(!LP($))return;for(let[j,q]of Object.entries($))if(q)P.push(j)}function LP(P){return Object.prototype.toString.call(P)==="[object Object]"}function x1(P){return P.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/[_\s]+/g,"-").toLowerCase()}function k1(P,$,j){return`<${$}${A1(P.host)}>${G1(P.render(),j)}</${$}>`}function A1(P){return P.getAttributeNames().map(($)=>b1($,P.getAttribute($))).join("")}function b1(P,$){if($==="")return` ${P}`;return` ${P}="${B1($??"")}"`}function B1(P){return P.replaceAll("&","&").replaceAll('"',""").replaceAll("<","<").replaceAll(">",">")}export{g$ as renderControllerWithPreview,T$ as renderControllerToString,V$ as renderControllerToPayload,_$ as renderController};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=AB315E2E5DCB1B9264756E2164756E21
|
|
@@ -5,7 +5,7 @@
|
|
|
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
7
|
"export const CONTROLLER_IDENTIFIER = Symbol.for('@ecopages/radiant.controllerIdentifier');\n\ntype ControllerConstructorWithMetadata = CustomElementConstructor & {\n\t[CONTROLLER_IDENTIFIER]?: string;\n};\n\nexport function setControllerIdentifier(target: CustomElementConstructor, identifier: string): void {\n\t(target as ControllerConstructorWithMetadata)[CONTROLLER_IDENTIFIER] = identifier;\n}\n\nexport function getControllerIdentifier(target: CustomElementConstructor): string | undefined {\n\treturn (target as ControllerConstructorWithMetadata)[CONTROLLER_IDENTIFIER];\n}\n",
|
|
8
|
-
"import type { RadiantController } from './core/radiant-controller';\nimport { setControllerIdentifier } from './core/controller-metadata';\n\nexport const CONTROLLER_ATTRIBUTE = 'data-controller';\n\nexport type ControllerConstructor<TController extends RadiantController = RadiantController> = new (\n\thost: Element,\n) => TController;\n\nexport type ControllerRegistrationStrategy = 'keep-current' | 'replace';\n\ntype ControllerRegistryGlobalState = {\n\tactiveRuntimes: Set<ControllerRegistryRuntime>;\n\tcontrollerRegistrationStrategy: ControllerRegistrationStrategy;\n\tcontrollerRegistry: Map<string, ControllerConstructor>;\n};\n\
|
|
8
|
+
"import type { RadiantController } from './core/radiant-controller';\nimport { setControllerIdentifier } from './core/controller-metadata';\n\nexport const CONTROLLER_ATTRIBUTE = 'data-controller';\n\nexport type ControllerConstructor<TController extends RadiantController = RadiantController> = new (\n\thost: Element,\n) => TController;\n\nexport type ControllerRegistrationStrategy = 'keep-current' | 'replace';\n\ntype ControllerRegistryGlobalState = {\n\tactiveRuntimes: Set<ControllerRegistryRuntime>;\n\tcontrollerRegistrationStrategy: ControllerRegistrationStrategy;\n\tcontrollerRegistry: Map<string, ControllerConstructor>;\n};\n\nexport const CONTROLLER_REGISTRY_STATE_KEY = Symbol.for('@ecopages/radiant.controller-registry-state');\n\nfunction getControllerRegistryGlobalState(): ControllerRegistryGlobalState {\n\tconst globalScope = globalThis as typeof globalThis & Record<PropertyKey, unknown>;\n\tconst existingState = globalScope[CONTROLLER_REGISTRY_STATE_KEY];\n\n\tif (existingState) {\n\t\treturn existingState as ControllerRegistryGlobalState;\n\t}\n\n\tconst nextState: ControllerRegistryGlobalState = {\n\t\tactiveRuntimes: new Set<ControllerRegistryRuntime>(),\n\t\tcontrollerRegistrationStrategy: 'keep-current',\n\t\tcontrollerRegistry: new Map<string, ControllerConstructor>(),\n\t};\n\n\tglobalScope[CONTROLLER_REGISTRY_STATE_KEY] = nextState;\n\n\treturn nextState;\n}\n\nconst controllerRegistryState = getControllerRegistryGlobalState();\nconst controllerRegistry = controllerRegistryState.controllerRegistry;\nconst activeRuntimes = controllerRegistryState.activeRuntimes;\n\nexport function parseControllerIdentifiers(element: Element): string[] {\n\tconst value = element.getAttribute(CONTROLLER_ATTRIBUTE);\n\n\tif (!value) {\n\t\treturn [];\n\t}\n\n\treturn value\n\t\t.split(/\\s+/)\n\t\t.map((identifier) => identifier.trim())\n\t\t.filter((identifier) => identifier.length > 0);\n}\n\nexport function visitControllerElements(root: ParentNode, visit: (element: Element) => void): void {\n\tif (root instanceof Element && root.hasAttribute(CONTROLLER_ATTRIBUTE)) {\n\t\tvisit(root);\n\t}\n\n\tfor (const element of Array.from(root.querySelectorAll(`[${CONTROLLER_ATTRIBUTE}]`))) {\n\t\tvisit(element);\n\t}\n}\n\nexport class ControllerRegistryRuntime {\n\tprivate readonly controllersByElement = new Map<Element, Map<string, RadiantController>>();\n\tprivate observer?: MutationObserver;\n\tprivate stopped = false;\n\n\tconstructor(private readonly root: ParentNode = document) {\n\t\tthis.start();\n\t}\n\n\tpublic stop(): void {\n\t\tif (this.stopped) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.stopped = true;\n\t\tthis.observer?.disconnect();\n\t\tthis.observer = undefined;\n\n\t\tfor (const [element, controllers] of this.controllersByElement) {\n\t\t\tfor (const [identifier] of controllers) {\n\t\t\t\tthis.disconnectController(element, identifier);\n\t\t\t}\n\t\t}\n\n\t\tactiveRuntimes.delete(this);\n\t}\n\n\tpublic reconcileRegisteredController(identifier: string): void {\n\t\tvisitControllerElements(this.root, (element) => {\n\t\t\tif (!parseControllerIdentifiers(element).includes(identifier)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.connectController(element, identifier);\n\t\t});\n\t}\n\n\tpublic replaceRegisteredController(identifier: string): void {\n\t\tfor (const [element, controllers] of Array.from(this.controllersByElement.entries())) {\n\t\t\tif (!controllers.has(identifier)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tthis.disconnectController(element, identifier);\n\t\t}\n\n\t\tthis.reconcileRegisteredController(identifier);\n\t}\n\n\tprivate start(): void {\n\t\tvisitControllerElements(this.root, (element) => {\n\t\t\tthis.reconcileElement(element);\n\t\t});\n\n\t\tif (typeof MutationObserver === 'undefined') {\n\t\t\tactiveRuntimes.add(this);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.observer = new MutationObserver((records) => {\n\t\t\tfor (const record of records) {\n\t\t\t\tif (record.type === 'attributes' && record.target instanceof Element) {\n\t\t\t\t\tthis.reconcileElement(record.target);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (const removedNode of Array.from(record.removedNodes)) {\n\t\t\t\t\tif (!(removedNode instanceof Element)) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tvisitControllerElements(removedNode, (element) => {\n\t\t\t\t\t\tthis.disconnectElementControllers(element);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tfor (const addedNode of Array.from(record.addedNodes)) {\n\t\t\t\t\tif (!(addedNode instanceof Element)) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tvisitControllerElements(addedNode, (element) => {\n\t\t\t\t\t\tthis.reconcileElement(element);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tconst observerRoot = this.root instanceof Document ? this.root.documentElement : this.root;\n\n\t\tthis.observer.observe(observerRoot, {\n\t\t\tattributeFilter: [CONTROLLER_ATTRIBUTE],\n\t\t\tattributes: true,\n\t\t\tchildList: true,\n\t\t\tsubtree: true,\n\t\t});\n\n\t\tactiveRuntimes.add(this);\n\t}\n\n\tprivate reconcileElement(element: Element): void {\n\t\tconst nextIdentifiers = new Set(parseControllerIdentifiers(element));\n\t\tconst currentControllers = this.controllersByElement.get(element);\n\n\t\tif (currentControllers) {\n\t\t\tfor (const identifier of currentControllers.keys()) {\n\t\t\t\tif (!nextIdentifiers.has(identifier)) {\n\t\t\t\t\tthis.disconnectController(element, identifier);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (const identifier of nextIdentifiers) {\n\t\t\tthis.connectController(element, identifier);\n\t\t}\n\t}\n\n\tprivate connectController(element: Element, identifier: string): void {\n\t\tconst controllerConstructor = controllerRegistry.get(identifier);\n\n\t\tif (!controllerConstructor) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet controllers = this.controllersByElement.get(element);\n\n\t\tif (!controllers) {\n\t\t\tcontrollers = new Map();\n\t\t\tthis.controllersByElement.set(element, controllers);\n\t\t}\n\n\t\tif (controllers.has(identifier)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst controller = new controllerConstructor(element);\n\t\tcontrollers.set(identifier, controller);\n\t\tcontroller.connect();\n\t}\n\n\tprivate disconnectController(element: Element, identifier: string): void {\n\t\tconst controllers = this.controllersByElement.get(element);\n\n\t\tif (!controllers) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst controller = controllers.get(identifier);\n\n\t\tif (!controller) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontroller.disconnect();\n\t\tcontrollers.delete(identifier);\n\n\t\tif (controllers.size === 0) {\n\t\t\tthis.controllersByElement.delete(element);\n\t\t}\n\t}\n\n\tprivate disconnectElementControllers(element: Element): void {\n\t\tconst controllers = this.controllersByElement.get(element);\n\n\t\tif (!controllers) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const identifier of Array.from(controllers.keys())) {\n\t\t\tthis.disconnectController(element, identifier);\n\t\t}\n\t}\n}\n\nexport function registerController<\n\tTController extends RadiantController,\n\tTConstructor extends ControllerConstructor<TController>,\n>(identifier: string, controller: TConstructor): TConstructor {\n\tconst existingController = controllerRegistry.get(identifier);\n\n\tif (existingController) {\n\t\treturn existingController as TConstructor;\n\t}\n\n\tsetControllerIdentifier(controller as unknown as CustomElementConstructor, identifier);\n\tcontrollerRegistry.set(identifier, controller);\n\n\tfor (const runtime of Array.from(activeRuntimes)) {\n\t\truntime.reconcileRegisteredController(identifier);\n\t}\n\n\treturn controller;\n}\n\nexport function hasRegisteredController(identifier: string): boolean {\n\treturn controllerRegistry.has(identifier);\n}\n\n/**\n * Returns the registered controller constructor for an identifier, if one is available.\n *\n * This is primarily used by SSR adapters that need to render controller-owned\n * authored hosts before the browser registry attaches controllers at runtime.\n */\nexport function resolveRegisteredController(identifier: string): ControllerConstructor | undefined {\n\treturn controllerRegistry.get(identifier);\n}\n\nexport function replaceController<\n\tTController extends RadiantController,\n\tTConstructor extends ControllerConstructor<TController>,\n>(identifier: string, controller: TConstructor): TConstructor {\n\tconst existingController = controllerRegistry.get(identifier);\n\n\tif (existingController === controller) {\n\t\treturn controller;\n\t}\n\n\tsetControllerIdentifier(controller as unknown as CustomElementConstructor, identifier);\n\tcontrollerRegistry.set(identifier, controller);\n\n\tfor (const runtime of Array.from(activeRuntimes)) {\n\t\truntime.replaceRegisteredController(identifier);\n\t}\n\n\treturn controller;\n}\n\nexport function setControllerRegistrationStrategy(strategy: ControllerRegistrationStrategy): void {\n\tcontrollerRegistryState.controllerRegistrationStrategy = strategy;\n}\n\nexport function enableControllerReplacementForHmr(): void {\n\tsetControllerRegistrationStrategy('replace');\n}\n\nexport function disableControllerReplacementForHmr(): void {\n\tsetControllerRegistrationStrategy('keep-current');\n}\n\nexport function registerControllerWithConfiguredStrategy<\n\tTController extends RadiantController,\n\tTConstructor extends ControllerConstructor<TController>,\n>(identifier: string, controller: TConstructor): TConstructor {\n\tif (controllerRegistryState.controllerRegistrationStrategy === 'replace') {\n\t\treturn replaceController(identifier, controller);\n\t}\n\n\treturn registerController(identifier, controller);\n}\n\nexport function startControllers(root: ParentNode = document): ControllerRegistryRuntime {\n\treturn new ControllerRegistryRuntime(root);\n}\n\nexport function stopControllers(): void {\n\tfor (const runtime of Array.from(activeRuntimes)) {\n\t\truntime.stop();\n\t}\n}\n",
|
|
9
9
|
"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",
|
|
10
10
|
"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",
|
|
11
11
|
"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",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"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",
|
|
18
18
|
"import { renderToString as renderJsxToString, type RenderToStringOptions } from '@ecopages/jsx/server';\nimport { getControllerIdentifier } from '../core/controller-metadata';\nimport type { RadiantController } from '../core/radiant-controller';\nimport { CONTROLLER_ATTRIBUTE } from '../controller-registry';\nimport { ensureLightDomShim } from './light-dom-shim';\nimport {\n\tmergeRenderedComponentAssets,\n\tnormalizeRenderOptions,\n\tresolvePrimaryClientModuleSrc,\n\ttoRenderedComponentPayload,\n\ttype RenderedComponent,\n\ttype RenderedComponentAsset,\n\ttype RenderedComponentPayload,\n\ttype RenderedComponentWithPreview,\n} from './render-component';\nimport { ensureRadiantElementSsrRuntimeRegistered } from './radiant-component-ssr-runtime';\n\n/** Constructor shape for a server-renderable controller. */\nexport type ServerRenderableControllerConstructor<TController extends RadiantController = RadiantController> = new (\n\thost: Element,\n) => TController;\n\n/** Serializable controller host attribute values accepted by `renderController()`. */\nexport type RenderedControllerHostAttributeValue = boolean | number | string | null | undefined;\n\n/** JSX-like class value accepted by `renderController({ host })`. */\nexport type RenderedControllerHostClassValue =\n\t| bigint\n\t| boolean\n\t| number\n\t| string\n\t| null\n\t| undefined\n\t| readonly RenderedControllerHostClassValue[]\n\t| Record<string, unknown>;\n\n/** Declarative controller host attributes accepted by `renderController()`. */\nexport type RenderedControllerHostAttributes = Record<string, RenderedControllerHostAttributeValue>;\n\n/** JSX-like host options accepted by `renderController()`. */\nexport type RenderedControllerHostOptions = {\n\taria?: Record<string, RenderedControllerHostAttributeValue>;\n\tclass?: RenderedControllerHostClassValue;\n\tclasses?: RenderedControllerHostClassValue;\n\tdata?: Record<string, RenderedControllerHostAttributeValue>;\n};\n\n/**\n * Resolves the browser-importable client module URL for a controller constructor.\n */\nexport type ResolveRenderedControllerClientModule<TController extends RadiantController> = (\n\tcontroller: ServerRenderableControllerConstructor<TController>,\n) => string | undefined | Promise<string | undefined>;\n\n/**\n * Resolves fragment assets for a controller constructor.\n */\nexport type ResolveRenderedControllerAssets<TController extends RadiantController> = (\n\tcontroller: ServerRenderableControllerConstructor<TController>,\n) => readonly RenderedComponentAsset[] | undefined | Promise<readonly RenderedComponentAsset[] | undefined>;\n\n/** Call-site options used by the controller SSR helpers. */\nexport type RenderControllerCallOptions<TController extends RadiantController> = {\n\t/** Asset dependencies required by the rendered fragment. */\n\tassets?: readonly RenderedComponentAsset[];\n\t/** Low-level flat host attributes serialized onto the rendered controller host. */\n\tattributes?: RenderedControllerHostAttributes;\n\t/** JSX-like host config with `data` and `aria` object expansion. */\n\thost?: RenderedControllerHostOptions;\n\t/** Browser-importable client module URL used to register the controller before hydration. */\n\tclientModuleSrc?: string;\n\t/** Initializes the controller instance before render. */\n\tinitialize?: (controller: TController) => void;\n\t/** Clock override used by tests and adapters that need deterministic timestamps. */\n\tnow?: () => Date;\n\t/** JSX server-renderer options forwarded to the controller view render. */\n\trenderOptions?: RenderToStringOptions;\n\t/** Lazy asset resolver used when `assets` are not provided directly. */\n\tresolveAssets?: ResolveRenderedControllerAssets<TController>;\n\t/** Lazy client-module resolver used when `clientModuleSrc` is not provided directly. */\n\tresolveClientModuleSrc?: ResolveRenderedControllerClientModule<TController>;\n\t/** Explicit host tag emitted at the fragment root. */\n\ttagName: string;\n};\n\n/** Serializes a controller host into HTML using an explicit host tag and attributes. */\nexport async function renderControllerToString<TController extends RadiantController>(\n\tcontroller: ServerRenderableControllerConstructor<TController>,\n\toptions: RenderControllerCallOptions<TController>,\n): Promise<string> {\n\treturn (await renderResolvedController(controller, options)).markup;\n}\n\n/** Renders a controller host into the canonical portable server-rendered shape. */\nexport async function renderController<TController extends RadiantController>(\n\tcontroller: ServerRenderableControllerConstructor<TController>,\n\toptions: RenderControllerCallOptions<TController>,\n): Promise<RenderedComponent> {\n\treturn renderResolvedController(controller, options);\n}\n\n/** Serializes a controller host into a fragment payload that frameworks can attach to any response shape. */\nexport async function renderControllerToPayload<TController extends RadiantController>(\n\tcontroller: ServerRenderableControllerConstructor<TController>,\n\toptions: RenderControllerCallOptions<TController>,\n): Promise<RenderedComponentPayload> {\n\treturn toRenderedComponentPayload(await renderResolvedController(controller, options));\n}\n\n/** Renders a controller host into payload fields plus a JSX-compatible preview value. */\nexport async function renderControllerWithPreview<TController extends RadiantController>(\n\tcontroller: ServerRenderableControllerConstructor<TController>,\n\toptions: RenderControllerCallOptions<TController>,\n): Promise<RenderedComponentWithPreview> {\n\treturn toRenderedComponentWithPreview(await renderResolvedController(controller, options));\n}\n\nasync function renderResolvedController<TController extends RadiantController>(\n\tController: ServerRenderableControllerConstructor<TController>,\n\toptions: RenderControllerCallOptions<TController>,\n): Promise<RenderedComponent> {\n\tensureRadiantElementSsrRuntimeRegistered();\n\n\tconst tagName = normalizeRenderedControllerTagName(options.tagName);\n\tconst host = createRenderedControllerHost(tagName, normalizeRenderedControllerHostAttributes(Controller, options));\n\tconst controller = new Controller(host);\n\n\ttry {\n\t\toptions.initialize?.(controller);\n\t\tcontroller.connectForSsrRender();\n\n\t\tconst resolvedClientModuleSrc = options.clientModuleSrc ?? (await options.resolveClientModuleSrc?.(Controller));\n\t\tconst resolvedAssets = options.assets ?? (await options.resolveAssets?.(Controller)) ?? [];\n\t\tconst assets = mergeRenderedComponentAssets(resolvedAssets, resolvedClientModuleSrc);\n\t\tconst clientModuleSrc = resolvePrimaryClientModuleSrc(assets) ?? resolvedClientModuleSrc;\n\t\tconst generatedAt = (options.now ?? createDefaultRenderTimestamp)().toISOString();\n\t\tconst renderOptions = normalizeRenderOptions(options.renderOptions);\n\t\tconst markup = renderRenderedControllerHost(controller, tagName, renderOptions);\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: { nodeType: 1, outerHTML: markup },\n\t\t};\n\t} finally {\n\t\tcontroller.disconnectForSsrRender();\n\t}\n}\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 normalizeRenderedControllerTagName(tagName: string): string {\n\tconst normalizedTagName = tagName.trim().toLowerCase();\n\n\tif (!normalizedTagName) {\n\t\tthrow new Error('Controller SSR host tagName is required.');\n\t}\n\n\treturn normalizedTagName;\n}\n\nfunction createRenderedControllerHost(tagName: string, attributes: RenderedControllerHostAttributes): Element {\n\tensureLightDomShim();\n\tconst documentLike = (globalThis as typeof globalThis & { document?: Document }).document;\n\tconst host = documentLike\n\t\t? documentLike.createElement(tagName)\n\t\t: new (globalThis as typeof globalThis & { HTMLElement: new (tagName?: string) => HTMLElement }).HTMLElement(\n\t\t\t\ttagName,\n\t\t\t);\n\n\tfor (const [name, value] of Object.entries(attributes)) {\n\t\tif (value === undefined || value === null || value === false) {\n\t\t\tcontinue;\n\t\t}\n\n\t\thost.setAttribute(name, value === true ? '' : String(value));\n\t}\n\n\treturn host;\n}\n\nfunction normalizeRenderedControllerHostAttributes<TController extends RadiantController>(\n\tController: ServerRenderableControllerConstructor<TController>,\n\toptions: RenderControllerCallOptions<TController>,\n): RenderedControllerHostAttributes {\n\tconst normalizedAttributes: RenderedControllerHostAttributes = {};\n\tconst host = options.host;\n\n\tconst mergedClassValue = normalizeRenderedControllerClassValue(\n\t\toptions.attributes?.class,\n\t\thost?.class,\n\t\thost?.classes,\n\t);\n\n\tif (mergedClassValue !== undefined) {\n\t\tnormalizedAttributes.class = mergedClassValue;\n\t}\n\n\tappendRenderedControllerStructuredAttributes(normalizedAttributes, 'data', host?.data);\n\tappendRenderedControllerStructuredAttributes(normalizedAttributes, 'aria', host?.aria);\n\tappendRenderedControllerFlatAttributes(normalizedAttributes, options.attributes);\n\n\tconst controllerIdentifier = getControllerIdentifier(Controller as unknown as CustomElementConstructor);\n\n\tif (controllerIdentifier && normalizedAttributes[CONTROLLER_ATTRIBUTE] == null) {\n\t\tnormalizedAttributes[CONTROLLER_ATTRIBUTE] = controllerIdentifier;\n\t}\n\n\treturn normalizedAttributes;\n}\n\nfunction appendRenderedControllerStructuredAttributes(\n\tattributes: RenderedControllerHostAttributes,\n\tprefix: 'aria' | 'data',\n\tvalue: Record<string, RenderedControllerHostAttributeValue> | undefined,\n): void {\n\tif (!isPlainRenderedControllerAttributeObject(value)) {\n\t\treturn;\n\t}\n\n\tfor (const [name, entryValue] of Object.entries(value)) {\n\t\tattributes[`${prefix}-${toKebabCaseRenderedControllerAttribute(name)}`] = entryValue;\n\t}\n}\n\nfunction appendRenderedControllerFlatAttributes(\n\tattributes: RenderedControllerHostAttributes,\n\tvalue: RenderedControllerHostAttributes | undefined,\n): void {\n\tif (!value) {\n\t\treturn;\n\t}\n\n\tfor (const [name, entryValue] of Object.entries(value)) {\n\t\tattributes[name] = entryValue;\n\t}\n}\n\nfunction normalizeRenderedControllerClassValue(...values: unknown[]): string | undefined {\n\tconst tokens: string[] = [];\n\n\tfor (const value of values) {\n\t\tappendRenderedControllerClassTokens(tokens, value);\n\t}\n\n\treturn tokens.length === 0 ? undefined : tokens.join(' ');\n}\n\nfunction appendRenderedControllerClassTokens(tokens: string[], value: unknown): void {\n\tif (value === undefined || value === null || value === false || value === true) {\n\t\treturn;\n\t}\n\n\tif (typeof value === 'string') {\n\t\tif (value !== '') {\n\t\t\ttokens.push(value);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (typeof value === 'number' || typeof value === 'bigint') {\n\t\ttokens.push(String(value));\n\t\treturn;\n\t}\n\n\tif (Array.isArray(value)) {\n\t\tfor (const entry of value) {\n\t\t\tappendRenderedControllerClassTokens(tokens, entry);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (!isPlainRenderedControllerAttributeObject(value)) {\n\t\treturn;\n\t}\n\n\tfor (const [name, enabled] of Object.entries(value)) {\n\t\tif (enabled) {\n\t\t\ttokens.push(name);\n\t\t}\n\t}\n}\n\nfunction isPlainRenderedControllerAttributeObject(value: unknown): value is Record<string, unknown> {\n\treturn Object.prototype.toString.call(value) === '[object Object]';\n}\n\nfunction toKebabCaseRenderedControllerAttribute(value: string): string {\n\treturn value\n\t\t.replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n\t\t.replace(/[_\\s]+/g, '-')\n\t\t.toLowerCase();\n}\n\nfunction renderRenderedControllerHost(\n\tcontroller: RadiantController,\n\ttagName: string,\n\toptions: RenderToStringOptions,\n): string {\n\treturn `<${tagName}${serializeRenderedControllerHostAttributes(controller.host)}>${renderJsxToString(controller.render(), options)}</${tagName}>`;\n}\n\nfunction serializeRenderedControllerHostAttributes(host: Element): string {\n\treturn host\n\t\t.getAttributeNames()\n\t\t.map((attributeName) => serializeRenderedControllerAttribute(attributeName, host.getAttribute(attributeName)))\n\t\t.join('');\n}\n\nfunction serializeRenderedControllerAttribute(name: string, value: string | null): string {\n\tif (value === '') {\n\t\treturn ` ${name}`;\n\t}\n\n\treturn ` ${name}=\"${escapeRenderedControllerAttributeValue(value ?? '')}\"`;\n}\n\nfunction escapeRenderedControllerAttributeValue(value: string): string {\n\treturn value.replaceAll('&', '&').replaceAll('\"', '"').replaceAll('<', '<').replaceAll('>', '>');\n}\n"
|
|
19
19
|
],
|
|
20
|
-
"mappings": "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",
|
|
21
|
-
"debugId": "
|
|
20
|
+
"mappings": "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",
|
|
21
|
+
"debugId": "AB315E2E5DCB1B9264756E2164756E21",
|
|
22
22
|
"names": []
|
|
23
23
|
}
|
package/dist/tools/index.d.ts
CHANGED
package/dist/tools/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
1
|
+
var f=((r)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(u,c)=>(typeof require<"u"?require:u)[c]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});function H(r){return r.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}class p{host;eventConfig;constructor(r,u){this.host=r,this.eventConfig=u}emit(r){let u=new CustomEvent(this.eventConfig.name,{detail:r,bubbles:this.eventConfig.bubbles,cancelable:this.eventConfig.cancelable,composed:this.eventConfig.composed});this.host.dispatchEvent(u)}}import{render as x}from"@ecopages/jsx";function N(r,u){x(r,u)}export{N as renderJsxTemplate,H as escapeScriptJson,p as EventEmitter};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=829CAA7160F78EF264756E2164756E21
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/tools/escape-script-json.ts", "../src/tools/event-emitter.ts", "../src/tools/render-jsx-template.ts"
|
|
3
|
+
"sources": ["../src/tools/escape-script-json.ts", "../src/tools/event-emitter.ts", "../src/tools/render-jsx-template.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"/**\n * Escapes serialized JSON so it remains safe when embedded inside an HTML\n * `<script>` tag.\n */\nexport function escapeScriptJson(value: string): string {\n\treturn value\n\t\t.replace(/&/g, '\\\\u0026')\n\t\t.replace(/</g, '\\\\u003c')\n\t\t.replace(/>/g, '\\\\u003e')\n\t\t.replace(/\\u2028/g, '\\\\u2028')\n\t\t.replace(/\\u2029/g, '\\\\u2029');\n}\n",
|
|
6
6
|
"import type { RadiantElement } from '../core/radiant-element';\n\nexport interface EventEmitterConfig {\n\tname: string;\n\tbubbles?: boolean;\n\tcancelable?: boolean;\n\tcomposed?: boolean;\n}\n\n/**\n * A generic event emitter class that allows emitting custom events.\n *\n * @template T - The type of the event detail.\n */\nexport class EventEmitter<T = unknown> {\n\tprivate host: RadiantElement;\n\tprivate eventConfig: EventEmitterConfig;\n\n\t/**\n\t * Constructs a new instance of the EventEmitter class.\n\t *\n\t * @param host - The host element on which the events will be dispatched.\n\t * @param eventConfig - The configuration for the event.\n\t */\n\tconstructor(host: RadiantElement, eventConfig: EventEmitterConfig) {\n\t\tthis.host = host;\n\t\tthis.eventConfig = eventConfig;\n\t}\n\n\t/**\n\t * Emits a custom event with the specified detail.\n\t *\n\t * @param detail - The detail object to be passed along with the event.\n\t */\n\temit(detail?: T) {\n\t\tconst event = new CustomEvent(this.eventConfig.name, {\n\t\t\tdetail: detail,\n\t\t\tbubbles: this.eventConfig.bubbles,\n\t\t\tcancelable: this.eventConfig.cancelable,\n\t\t\tcomposed: this.eventConfig.composed,\n\t\t});\n\t\tthis.host.dispatchEvent(event);\n\t}\n}\n",
|
|
7
|
-
"import { render, type TemplateResultLike } from '@ecopages/jsx';\n\n/**\n * Renders a JSX template result into a target element by replacing its children.\n */\nexport function renderJsxTemplate(template: TemplateResultLike, target: HTMLElement): void {\n\trender(template, target);\n}\n"
|
|
8
|
-
"/**\n * Converts the given value to a JSON string representation or maintains the type based on the generic parameter.\n *\n * @param value - The value to be converted.\n * @returns The JSON string representation of the value or the value itself.\n * @template T - The type of the value.\n * @template R - The return type, defaults to T.\n *\n * @example\n * // For maintaining the type in JSX attributes\n * <my-app my-complex-attribute={stringifyTyped<MyType>(myData)}> // myData is of type MyType\n *\n * // For lower-level JSON string generation outside JSX text children\n * const hydrationPayload = stringifyTyped<Partial<MyContext>, string>({ value: 'Hello World' });\n */\nexport function stringifyTyped<T, R = T>(value: T): R extends string ? string : T {\n\treturn JSON.stringify(value) as unknown as R extends string ? string : T;\n}\n"
|
|
7
|
+
"import { render, type TemplateResultLike } from '@ecopages/jsx';\n\n/**\n * Renders a JSX template result into a target element by replacing its children.\n */\nexport function renderJsxTemplate(template: TemplateResultLike, target: HTMLElement): void {\n\trender(template, target);\n}\n"
|
|
9
8
|
],
|
|
10
|
-
"mappings": "2PAIO,SAAS,CAAgB,CAAC,EAAuB,CACvD,OAAO,EACL,QAAQ,KAAM,SAAS,EACvB,QAAQ,KAAM,SAAS,EACvB,QAAQ,KAAM,SAAS,EACvB,QAAQ,UAAW,SAAS,EAC5B,QAAQ,UAAW,SAAS,ECIxB,MAAM,CAA0B,CAC9B,KACA,YAQR,WAAW,CAAC,EAAsB,EAAiC,CAClE,KAAK,KAAO,EACZ,KAAK,YAAc,EAQpB,IAAI,CAAC,EAAY,CAChB,IAAM,EAAQ,IAAI,YAAY,KAAK,YAAY,KAAM,CACpD,OAAQ,EACR,QAAS,KAAK,YAAY,QAC1B,WAAY,KAAK,YAAY,WAC7B,SAAU,KAAK,YAAY,QAC5B,CAAC,EACD,KAAK,KAAK,cAAc,CAAK,EAE/B,CC3CA,iBAAS,sBAKF,SAAS,CAAiB,CAAC,EAA8B,EAA2B,CAC1F,EAAO,EAAU,CAAM
|
|
11
|
-
"debugId": "
|
|
9
|
+
"mappings": "2PAIO,SAAS,CAAgB,CAAC,EAAuB,CACvD,OAAO,EACL,QAAQ,KAAM,SAAS,EACvB,QAAQ,KAAM,SAAS,EACvB,QAAQ,KAAM,SAAS,EACvB,QAAQ,UAAW,SAAS,EAC5B,QAAQ,UAAW,SAAS,ECIxB,MAAM,CAA0B,CAC9B,KACA,YAQR,WAAW,CAAC,EAAsB,EAAiC,CAClE,KAAK,KAAO,EACZ,KAAK,YAAc,EAQpB,IAAI,CAAC,EAAY,CAChB,IAAM,EAAQ,IAAI,YAAY,KAAK,YAAY,KAAM,CACpD,OAAQ,EACR,QAAS,KAAK,YAAY,QAC1B,WAAY,KAAK,YAAY,WAC7B,SAAU,KAAK,YAAY,QAC5B,CAAC,EACD,KAAK,KAAK,cAAc,CAAK,EAE/B,CC3CA,iBAAS,sBAKF,SAAS,CAAiB,CAAC,EAA8B,EAA2B,CAC1F,EAAO,EAAU,CAAM",
|
|
10
|
+
"debugId": "829CAA7160F78EF264756E2164756E21",
|
|
12
11
|
"names": []
|
|
13
12
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ecopages/radiant",
|
|
3
|
-
"version": "0.3.0-alpha.
|
|
3
|
+
"version": "0.3.0-alpha.8",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/ecopages/radiant.git"
|
|
@@ -19,10 +19,9 @@
|
|
|
19
19
|
"watch:lib": "bun run ./build.ts --watch",
|
|
20
20
|
"size:check": "bun run ./check-size.ts",
|
|
21
21
|
"size:report": "bun run ./check-size.ts --report-only",
|
|
22
|
-
"test:dist": "bun run build:lib && node --test ./test-dist/*.test.mjs",
|
|
23
22
|
"test:standard": "vitest run",
|
|
24
23
|
"test:legacy": "vitest run -- --legacy",
|
|
25
|
-
"test:lib": "bun run test:standard && bun run test:legacy
|
|
24
|
+
"test:lib": "bun run test:standard && bun run test:legacy",
|
|
26
25
|
"test:lib:coverage": "bun run test:standard -- --coverage && bun run vitest run --coverage -- --legacy"
|
|
27
26
|
},
|
|
28
27
|
"dependencies": {},
|
|
@@ -216,10 +215,6 @@
|
|
|
216
215
|
"types": "./dist/decorators/state.d.ts",
|
|
217
216
|
"import": "./dist/decorators/state.js"
|
|
218
217
|
},
|
|
219
|
-
"./tools/stringify-typed": {
|
|
220
|
-
"types": "./dist/tools/stringify-typed.d.ts",
|
|
221
|
-
"import": "./dist/tools/stringify-typed.js"
|
|
222
|
-
},
|
|
223
218
|
"./tools/render-jsx-template": {
|
|
224
219
|
"types": "./dist/tools/render-jsx-template.d.ts",
|
|
225
220
|
"import": "./dist/tools/render-jsx-template.js"
|
package/size-budget.json
CHANGED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts the given value to a JSON string representation or maintains the type based on the generic parameter.
|
|
3
|
-
*
|
|
4
|
-
* @param value - The value to be converted.
|
|
5
|
-
* @returns The JSON string representation of the value or the value itself.
|
|
6
|
-
* @template T - The type of the value.
|
|
7
|
-
* @template R - The return type, defaults to T.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* // For maintaining the type in JSX attributes
|
|
11
|
-
* <my-app my-complex-attribute={stringifyTyped<MyType>(myData)}> // myData is of type MyType
|
|
12
|
-
*
|
|
13
|
-
* // For lower-level JSON string generation outside JSX text children
|
|
14
|
-
* const hydrationPayload = stringifyTyped<Partial<MyContext>, string>({ value: 'Hello World' });
|
|
15
|
-
*/
|
|
16
|
-
export declare function stringifyTyped<T, R = T>(value: T): R extends string ? string : T;
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
var r=((e)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});function i(e){return JSON.stringify(e)}export{i as stringifyTyped};
|
|
2
|
-
|
|
3
|
-
//# debugId=814F2BDEF827078064756E2164756E21
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/tools/stringify-typed.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"/**\n * Converts the given value to a JSON string representation or maintains the type based on the generic parameter.\n *\n * @param value - The value to be converted.\n * @returns The JSON string representation of the value or the value itself.\n * @template T - The type of the value.\n * @template R - The return type, defaults to T.\n *\n * @example\n * // For maintaining the type in JSX attributes\n * <my-app my-complex-attribute={stringifyTyped<MyType>(myData)}> // myData is of type MyType\n *\n * // For lower-level JSON string generation outside JSX text children\n * const hydrationPayload = stringifyTyped<Partial<MyContext>, string>({ value: 'Hello World' });\n */\nexport function stringifyTyped<T, R = T>(value: T): R extends string ? string : T {\n\treturn JSON.stringify(value) as unknown as R extends string ? string : T;\n}\n"
|
|
6
|
-
],
|
|
7
|
-
"mappings": "2PAeO,SAAS,CAAwB,CAAC,EAAyC,CACjF,OAAO,KAAK,UAAU,CAAK",
|
|
8
|
-
"debugId": "814F2BDEF827078064756E2164756E21",
|
|
9
|
-
"names": []
|
|
10
|
-
}
|