@ecopages/radiant 0.3.0-alpha.20 → 0.3.0-alpha.22
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/core/radiant-element.js +2 -2
- package/core/radiant-element.js.map +3 -3
- package/index.js +2 -2
- package/index.js.map +3 -3
- package/package.json +1 -1
package/core/radiant-element.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var r0=(($)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy($,{get:(Q,X)=>(typeof require<"u"?require:Q)[X]}):$)(function($){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+$+'" is not supported')});var I=Symbol.for("@ecopages/radiant.legacy-instance-initializers"),R=Symbol.for("@ecopages/radiant.legacy-post-construction-initializers"),K0=Symbol.for("@ecopages/radiant.legacy-executed-post-construction-initializers");function e0($,Q){f($,I,Q)}function $2($,Q){f($,R,Q)}function T($){O($,I)}function H($){let Q=$;O($,R,Q[K0]??=new Set)}function f($,Q,X){let q=$,Z=Object.prototype.hasOwnProperty.call(q,Q)?q[Q]:void 0;if(Array.isArray(Z)){Z.push(X);return}Object.defineProperty(q,Q,{value:[X]})}function O($,Q,X,q=Object.getPrototypeOf($)){if(!q||q===Object.prototype)return;O($,Q,X,Object.getPrototypeOf(q));let Z=q[Q];if(!Array.isArray(Z))return;for(let W of Z){if(X?.has(W))continue;W($),X?.add(W)}}function V($){switch($){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function w0($){switch(typeof $){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray($))return"array";if(Object.prototype.toString.call($)==="[object Object]")return"object"}function D0($){switch($){case Number:return 0;case String:return"";case Boolean:return!1;default:return null}}function z0($){try{return JSON.parse($)}catch{throw TypeError("Invalid JSON string")}}var L0={array($){let Q=z0($);if(!Array.isArray(Q))throw TypeError(`Expected an array but got a value of type "${typeof Q}"`);return Q},boolean($){return!($==="0"||String($).toLowerCase()==="false")},number($){return Number($.replace(/_/g,""))},object($){let Q=JSON.parse($);if(Q===null||typeof Q!=="object"||Array.isArray(Q))throw TypeError(`expected value of type "object" but instead got value "${$}" of type "${w0(Q)}"`);return Q},string($){return $}},S={default:N,array:h,object:h};function h($){return JSON.stringify($)}function N($){return`${$}`}function K($,Q){let X=V(Q);if(!X)throw TypeError(`[radiant-element] Unknown type "${Q}"`);return L0[X]($)}function g($,Q){let X=V(Q);if(!X)throw TypeError(`[radiant-element] Unknown type "${Q}"`);return(S[X]??S.default??N)($)}function O0($){return typeof $==="boolean"}function P0($){return typeof $==="number"}function E0($){return typeof $==="string"}function j0($){return Array.isArray($)}function A0($){return typeof $==="object"&&!Array.isArray($)&&$!==null}function b($,Q){switch($){case Boolean:return O0(Q);case Number:return P0(Q);case String:return E0(Q);case Array:return j0(Q);case Object:return A0(Q);default:return!1}}var v=($,Q,X,q)=>{if(Q===Boolean){let W=$.getAttribute(X);if(W===null)return q;return W===""?!0:K(W,Q)}let Z=$.getAttribute(X);return Z!==null?K(Z,Q):q??D0(Q)};function m($,Q){if(Q!==void 0&&!b($,Q))throw Error(`defaultValue does not match the expected type for ${$.name}`)}function y($,Q,X,q){return{type:X,name:$,value:q,initialValue:q,attribute:Q,converter:{fromAttribute:(Z)=>K(Z,X),toAttribute:(Z)=>g(Z,X)}}}import{Computed as _0,subtle as k0,trackDependency as C0}from"@ecopages/signals";function I0($){return $}function c($){return $}var s={trackDependency($){C0(I0($))},createComputed($){return new _0($)},createWatcher($){let Q=new k0.Watcher($);return{watch(X){Q.watch(c(X))},unwatch(X){Q.unwatch(c(X))}}}};var u=s;function w(){return u}function R0($){u=$}function P($){w().trackDependency($)}function d($){return w().createComputed($)}function p($){return w().createWatcher($)}function i($){return $.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}var J="data-hydration",o="data-hydration-type",E="data-hydration-key";function Y2($){let Q=$.hydrationKey?` ${E}="${T0($.hydrationKey)}"`:"";return`<script type="application/json" ${J} ${o}="${$.type}"${Q}>${$.serializedValue}</script>`}function K2($){return i($)}function w2($,Q){let X=$.textContent;if(!X)return Q;try{return JSON.parse(X)}catch{if(typeof console<"u")console.warn(`[@ecopages/radiant] Failed to parse hydration payload from <script ${J}>:`,X.slice(0,120));return Q}}function D2($,Q,X){let q=$.children;if(!q||q.length===0){let Z=$.childNodes;if(!Z||Z.length===0)return null;for(let W=0;W<Z.length;W+=1){let G=Z[W];if(G.nodeType!==1)continue;let M=G;if(l(M,Q,X))return M}return null}for(let Z=0;Z<q.length;Z+=1)if(l(q[Z],Q,X))return q[Z];return null}function l($,Q,X){if($.tagName!=="SCRIPT"||!$.hasAttribute(J)||$.getAttribute(o)!==Q)return!1;if(X!==void 0)return $.getAttribute(E)===X;return!$.hasAttribute(E)}function T0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}import{createMarkupNodeLike as f0,isKeyedJsxValue as n,isSlotJsxValue as S0}from"@ecopages/jsx";var B="",z="data-radiant-slot-projection";function a($){let Q=new Map;for(let X of Array.from($.childNodes)){if(g0(X))continue;h0(Q,N0(X),X)}return Q}function r($){let Q;try{Q=JSON.parse($)}catch{if(typeof console<"u")console.warn("[@ecopages/radiant] Failed to parse slot projection payload:",$.slice(0,120));return new Map}let X=new Map;for(let[q,Z]of Object.entries(Q)){if(!Array.isArray(Z)||Z.length===0)continue;X.set(j(q),Z.map((W)=>f0(W)))}return X}function t($){let Q=Array.from($.childNodes).filter((X)=>Z0(X)).map((X)=>D(X)??"").filter((X)=>X!=="");return Q.length>0?Q.join(""):void 0}function e($){let Q={};for(let[X,q]of $.entries()){let Z=q.map((W)=>D(W)).filter((W)=>W!==void 0&&W!=="");if(Z.length>0)Q[X]=Z}return Object.keys(Q).length>0?JSON.stringify(Q):void 0}function $0($,Q){let X=!1,q=(W)=>{if(S0(W))return X=!0,v0(W,Q,q);if(n(W))return V0(W,q(W.value));if(b0(W))return{_$rType$:1,rootLocalName:W.rootLocalName,ssrIntrinsicProps:W.ssrIntrinsicProps,strings:W.strings,values:W.values.map((G)=>q(G))};if(X0(W))return Array.from(W,(G)=>q(G));return W},Z=q($);return{containsSlots:X,value:Z}}function Q0($){for(let Q of Array.from($.childNodes)){if(!q0(Q))continue;let X=Q.textContent??void 0;return Q.parentNode?.removeChild(Q),X}return}function h0($,Q,X){let q=$.get(Q);if(q){q.push(X);return}$.set(Q,[X])}function V0($,Q){return{...$,value:Q}}function N0($){if($ instanceof Element)return j($.getAttribute("slot"));return B}function X0($){return typeof $!=="string"&&typeof $==="object"&&$!==null&&Symbol.iterator in $}function q0($){return $ instanceof HTMLScriptElement&&$.hasAttribute(z)}function Z0($){return $ instanceof HTMLScriptElement&&$.hasAttribute(J)}function g0($){return q0($)||Z0($)}function b0($){return typeof $==="object"&&$!==null&&$._$rType$===1&&Array.isArray($.strings)&&Array.isArray($.values)}function j($){return $??B}function D($){if($===void 0||$===null||$===!1||$===!0)return;if(typeof Node<"u"&&$ instanceof Node){if($.nodeType===Node.TEXT_NODE)return $.textContent??"";return $.outerHTML??$.textContent??void 0}if(n($))return D($.value);if(typeof $==="string"||typeof $==="number"||typeof $==="bigint")return String($);if(typeof $==="object"&&$!==null&&"outerHTML"in $)return typeof $.outerHTML==="string"?$.outerHTML:$.textContent??void 0;if(X0($))return Array.from($,(Q)=>D(Q)??"").join("");return}function v0($,Q,X){let q=Q.get(j($.name));if(q&&q.length>0)return q.length===1?q[0]:q;if($.fallback===void 0)return"";return X($.fallback)}import{hydrate as m0,render as y0}from"@ecopages/jsx";class A{#$;#Q=new Map;#X;#Z;#q;#W=0;constructor($){this.#$=$,this.#Z=p(()=>{this.#$.requestUpdate()})}get slotProjectionVersion(){return this.#W}getSlotElements($){return this.ensureSlotProjectionState(),(this.#Q.get($??B)??[]).filter((Q)=>typeof Node<"u"&&Q instanceof Element)}getSlotProjectionScriptTag(){this.ensureSlotProjectionState();let $=e(this.#Q);if(!$)return;return`<script type="application/json" ${z}>${c0($)}</script>`}getAuthoredHydrationScriptMarkup(){return t(this.#$)??void 0}hydrate($){this.disconnectSlotProjectionObserver();try{m0(this.resolveTrackedRenderOutput().value,$)}finally{this.observeSlotProjection()}}render($){this.disconnectSlotProjectionObserver();try{y0(this.resolveTrackedRenderOutput().value,$)}finally{this.observeSlotProjection()}}observeSlotProjection(){if(typeof MutationObserver>"u"||this.#q||!this.#$.isConnected)return;this.#q=new MutationObserver(($)=>this.handleSlotProjectionMutations($)),this.#q.observe(this.#$,{childList:!0})}disconnectSlotProjectionObserver(){this.#q?.disconnect(),this.#q=void 0}disconnectRenderWatcher(){if(!this.#X)return;this.#Z.unwatch(this.#X),this.#X=void 0}resolveTrackedRenderOutput(){let $=d(()=>this.resolveRenderOutput()),Q=$.get();if(!this.#$.isConnected)return Q;if(this.#X)this.#Z.unwatch(this.#X);return this.#X=$,this.#Z.watch($),Q}dispose(){this.disconnectSlotProjectionObserver(),this.disconnectRenderWatcher()}ensureSlotProjectionState(){if(this.#Q.size>0)return;let $=this.#$.isConnected?Q0(this.#$):void 0;if(typeof $==="string"&&$!==""){this.#Q=r($),this.#W+=1;return}if(this.#$.childNodes.length>0)this.#Q=a(this.#$),this.#W+=1}handleSlotProjectionMutations($){let Q=!1;for(let X of $){for(let q of Array.from(X.removedNodes))if(this.removeProjectedSlotNode(q))Q=!0;for(let q of Array.from(X.addedNodes)){if(q.parentNode!==this.#$)continue;if(this.addProjectedSlotNode(q))Q=!0}}if(Q)this.#W+=1,this.#$.requestUpdate()}addProjectedSlotNode($){if($ instanceof HTMLScriptElement&&($.hasAttribute(z)||$.hasAttribute(J)))return!1;let Q=$ instanceof Element?$.getAttribute("slot")??B:B,X=this.#Q.get(Q);if(X){if(X.includes($))return!1;return X.push($),!0}return this.#Q.set(Q,[$]),!0}removeProjectedSlotNode($){for(let[Q,X]of this.#Q.entries()){let q=X.indexOf($);if(q===-1)continue;if(X.splice(q,1),X.length===0)this.#Q.delete(Q);return!0}return!1}resolveRenderOutput(){return this.ensureSlotProjectionState(),$0(this.#$.render(),this.#Q)}}function c0($){return $.replace(/</g,"\\u003c")}import{createSubscribableJsxValue as s0}from"@ecopages/jsx";class W0{read;subscribers=new Set;watcherListeners=new Set;version=0;constructor($){this.read=$}get(){return P(this),this.read()}subscribe($){return this.subscribers.add($),()=>{this.subscribers.delete($)}}addWatcher($){return this.watcherListeners.add($),()=>{this.watcherListeners.delete($)}}getVersion(){return this.version}notify($){this.version+=1;let Q;try{this.notifyWatchers()}catch(X){Q=X}if(this.publish($),Q)throw Q}publish($){for(let Q of this.subscribers)Q($)}notifyWatchers(){let $=[];for(let Q of this.watcherListeners)try{Q()}catch(X){$.push(X)}if($.length===1)throw $[0];if($.length>1)throw AggregateError($,"Multiple reactive dependency notifications failed.")}}function u0($){return typeof $==="object"&&$!==null&&typeof $.get==="function"}class _{host;access;shouldAutoBind;bindings;$;reactiveFields=new Map;reactiveDependencies=new Map;reactiveDependencyReaders=new Map;reactiveBindings=new Map;updateCallbacks=new Map;onConnectedCallbacks=[];onDisconnectedCallback=[];constructor($,Q,X){this.host=$;this.access=Q;this.shouldAutoBind=X;let q=this.createReactiveBindingNamespace();this.bindings=q,this.$=q}connectHost(){for(let $ of this.onConnectedCallbacks)$()}disconnectHost(){for(let $ of this.onDisconnectedCallback)$()}notifyUpdate($,Q,X){if(Q===X)return;this.reactiveDependencies.get($)?.notify(X);let q=this.updateCallbacks.get($);if(q)for(let Z of q)Z()}registerCleanupCallback($){this.onDisconnectedCallback.push($)}registerConnectedCallback($){this.onConnectedCallbacks.push($)}registerHydrationBinding($,Q){}registerReactiveDependencyReader($,Q){this.reactiveDependencyReaders.set($,Q)}registerUpdateCallback($,Q){if(!this.updateCallbacks.has($))this.updateCallbacks.set($,new Set);let X=this.updateCallbacks.get($);return X.add(Q),()=>{if(X.delete(Q),X.size===0)this.updateCallbacks.delete($)}}getReactiveBinding($){let Q=this.reactiveBindings.get($);if(Q)return Q;let X=s0({getValue:()=>this.readReactiveBindingValue($),subscribe:(q)=>this.registerUpdateCallback($,()=>{q(this.readReactiveBindingValue($))})});return this.reactiveBindings.set($,X),X}defineReactiveBinding($,Q=!0){let X=typeof Q==="string"?Q:Q?`$${$}`:void 0,q=this.access.getBindingTarget?.(this.host)??this.host;if(!X||this.access.hasProperty(this.host,X))return;this.access.defineProperty(q,X,{get:()=>this.getReactiveBinding($),enumerable:!1,configurable:!0})}trackReactiveRead($){P(this.getReactiveDependency($))}defineReactiveAccessor($,Q){let X=Q.bind??this.shouldAutoBind();if(this.defineReactiveBinding($,X),this.registerReactiveDependencyReader($,Q.getValue),this.access.defineProperty(this.host,$,{get:()=>{return this.trackReactiveRead($),Q.getValue()},set:(q)=>{let Z=Q.getValue();if(Z===q)return;Q.setValue(q),this.notifyUpdate($,Z,q)},enumerable:!0,configurable:!0}),Q.notifyInitialValue!==void 0)this.notifyUpdate($,void 0,Q.notifyInitialValue)}createReactiveField($,Q,X={}){let q={name:$,value:Q,initialValue:Q};this.reactiveFields.set($,q),this.defineReactiveAccessor($,{bind:X.bind,getValue:()=>this.reactiveFields.get($)?.value,setValue:(Z)=>{this.reactiveFields.set($,{...q,value:Z})},notifyInitialValue:Q})}createReactiveBindingNamespace(){return new Proxy(Object.create(null),{get:($,Q)=>{if(typeof Q!=="string")return;return this.getReactiveBinding(Q)}})}getReactiveDependency($){let Q=this.reactiveDependencies.get($);if(Q)return Q;let X=new W0(()=>this.readReactiveDependencyValue($));return this.reactiveDependencies.set($,X),X}readReactiveDependencyValue($){let Q=this.reactiveDependencyReaders.get($);if(Q)return Q();return this.readReactiveBindingValue($)}readReactiveBindingValue($){let Q=this.access.readProperty(this.host,$);if(u0(Q))return Q.get();return Q}}var k=Symbol.for("@ecopages/radiant.ssr-preparation-callbacks"),G0=Symbol.for("@ecopages/radiant.ssr-preparation-running");function T2($,Q){let q=$[k];if(Array.isArray(q)){q.push(Q);return}Object.defineProperty($,k,{value:[Q],configurable:!0})}function J0($){let Q=$,X=Q[k];if(!Array.isArray(X))return;Q[G0]=!0;try{for(let q of X)q()}finally{delete Q[G0]}}var C=Symbol.for("@ecopages/radiant.hydrator-installed");function S2(){globalThis[C]=!0}function h2(){delete globalThis[C]}function F0(){return globalThis[C]===!0}import{getActiveSsrScopeValue as d0,withActiveSsrScopeValue as p0}from"@ecopages/jsx/server";var x0=Symbol.for("@ecopages/radiant.element-ssr-runtime");function B0(){return d0(x0)}function g2($,Q){return p0(x0,$,Q)}import{hasHydrationMarkers as i0,jsx as l0}from"@ecopages/jsx";var o0=n0();function n0(){if(typeof HTMLElement<"u")return HTMLElement;throw Error("RadiantElement requires HTMLElement. Install '@ecopages/radiant/server/light-dom-shim' before SSR imports.")}class H0 extends o0{renderRootMode="light";bindings;$;reactiveHost;reactivePropertyState;contextProviders=new Map;hydrationBindings=new Map;eventSubscriptions=new Map;eventEmitters=new Map;elementReady=!1;isRendering=!1;isFirstConnectPending=!1;isRenderScheduled=!1;needsRender=!1;renderRuntime;constructor(){super();this.reactivePropertyState=new U0(this),this.reactiveHost=new _(this,{defineProperty:($,Q,X)=>Object.defineProperty($,Q,X),getBindingTarget:($)=>Object.getPrototypeOf($)??$,hasProperty:($,Q)=>(Q in $),readProperty:($,Q)=>$[Q]},()=>this.shouldAutoBindReactiveMembers()),this.bindings=this.reactiveHost.bindings,this.$=this.reactiveHost.$,T(this)}get slotProjectionVersion(){return this.renderRuntime?.slotProjectionVersion??0}connectedCallback(){H(this);let $=this.isFirstConnectPending;if(this.elementReady=!0,this.reactiveHost.connectHost(),$)return;this.isFirstConnectPending=!0,queueMicrotask(()=>{if(this.isFirstConnectPending=!1,!this.isConnected)return;if(!this.shouldRunRenderLifecycle())return;if(this.getOrCreateRenderRuntime().observeSlotProjection(),M0(this)){if(this.needsRender=!1,this.hydrate(),this.needsRender)this.update();return}this.update()})}connectedContextCallback($){}disconnectedCallback(){this.renderRuntime?.dispose(),this.renderRuntime=void 0,this.removeAllSubscribedEvents(),this.reactiveHost.disconnectHost()}notifyUpdate($,Q,X){this.reactiveHost.notifyUpdate($,Q,X)}attributeChangedCallback($,Q,X){if(Q===X||!this.elementReady)return;this.reactivePropertyState.applyAttributeChange($,Q,X)}renderTemplate({target:$=this,template:Q,insert:X="replace",sanitize:q}){let Z=q?q(Q):Q;switch(X){case"replace":$.innerHTML=Z;break;case"beforeend":$.insertAdjacentHTML("beforeend",Z);break;case"afterbegin":$.insertAdjacentHTML("afterbegin",Z);break;case"beforebegin":$.insertAdjacentHTML("beforebegin",Z);break;case"afterend":$.insertAdjacentHTML("afterend",Z);break}}render(){return l0("slot",{})}renderViewToString($={}){if(!this.shouldRunRenderLifecycle())return this.innerHTML;return H(this),this.prepareForSsr(),a0().renderView(this,$)}hydrate(){if(!this.shouldRunRenderLifecycle()||!this.isConnected||this.isRendering)return;let{renderTarget:$}=this.resolveRenderSurface(),Q=this.getOrCreateRenderRuntime();this.isRendering=!0;try{Q.hydrate($)}finally{this.isRendering=!1}}requestUpdate(){if(!this.shouldRunRenderLifecycle())return;if(this.needsRender=!0,this.isRenderScheduled)return;this.isRenderScheduled=!0,queueMicrotask(()=>{if(this.isRenderScheduled=!1,!this.needsRender)return;this.update()})}update(){if(!this.shouldRunRenderLifecycle())return;let{renderTarget:$}=this.resolveRenderSurface(),Q=this.getOrCreateRenderRuntime();if(this.needsRender=!0,!this.isConnected||this.isRendering)return;if(this.isFirstConnectPending&&M0(this))return;while(this.needsRender&&this.isConnected){this.needsRender=!1,this.isRendering=!0;try{Q.render($)}finally{this.isRendering=!1}}}registerReactiveProperty($){this.reactivePropertyState.register($)}getReactiveProperties(){return this.reactivePropertyState.getAll()}registerReactiveDependencyReader($,Q){this.reactiveHost.registerReactiveDependencyReader($,Q)}registerContextProvider($,Q){this.contextProviders.set($,Q),this.hydrationBindings.set($,Q)}registerHydrationBinding($,Q){this.hydrationBindings.set($,Q)}getContextProviders(){return H(this),[...this.contextProviders.values()]}getHydrationBindings(){return H(this),[...this.hydrationBindings.values()]}prepareForSsr(){J0(this)}shouldAutoBindReactiveMembers(){return!0}shouldRunRenderLifecycle(){return this.render!==H0.prototype.render}getRenderTarget(){if(this.renderRootMode!=="shadow")return this;if(this.shadowRoot)return this.shadowRoot;if(typeof this.attachShadow!=="function")throw Error("RadiantElement shadow render mode requires attachShadow().");return this.attachShadow({mode:"open"})}registerUpdateCallback($,Q){return this.reactiveHost.registerUpdateCallback($,Q)}getReactiveBinding($){return this.reactiveHost.getReactiveBinding($)}bind($){return this.reactiveHost.getReactiveBinding($)}defineReactiveBinding($,Q=!0){this.reactiveHost.defineReactiveBinding($,Q)}trackReactiveRead($){this.reactiveHost.trackReactiveRead($)}subscribeEvents($){let Q=[];for(let X of $)Q.push(this.subscribeEvent(X));return Q}subscribeEvent($){let{interactionTarget:Q}=this.resolveRenderSurface(),X=(Z)=>{if(Z.target&&Z.target.matches($.selector))$.listener.call(this,Z)},q=`${$.type}:${$.selector}`;return Q.addEventListener($.type,X,$.options),this.eventSubscriptions.set(q,{...$,listener:X,target:Q}),this.unsubscribeEvent.bind(this,q)}unsubscribeEvent($){let Q=this.eventSubscriptions.get($);if(Q)Q.target.removeEventListener(Q.type,Q.listener,Q.options),this.eventSubscriptions.delete($)}removeAllSubscribedEvents(){for(let $ of this.eventSubscriptions.values())$.target.removeEventListener($.type,$.listener,$.options);this.eventSubscriptions.clear()}registerCleanupCallback($){this.reactiveHost.registerCleanupCallback($)}registerConnectedCallback($){this.reactiveHost.registerConnectedCallback($)}registerEventEmitter($,Q){this.eventEmitters.set($,Q)}getRef($,Q=!1){let X=`[data-ref="${$}"]`,{queryRoot:q}=this.resolveRenderSurface();if(Q)return Array.from(q.querySelectorAll(X));return q.querySelector(X)??null}getSlotElement($){return this.getSlotElements($)[0]??null}getSlotElements($){return this.getOrCreateRenderRuntime().getSlotElements($)}createReactiveField($,Q,X={}){this.reactiveHost.createReactiveField($,Q,X)}createReactiveProp($,Q){this.reactivePropertyState.create($,Q,(X,q,Z)=>v(this,X,q,Z),(X,q)=>{this.reactiveHost.defineReactiveAccessor(X,q)})}getSlotProjectionScriptTag(){return this.getOrCreateRenderRuntime().getSlotProjectionScriptTag()}getAuthoredHydrationScriptMarkup(){return this.getOrCreateRenderRuntime().getAuthoredHydrationScriptMarkup()}resolveTrackedRenderOutput(){return this.getOrCreateRenderRuntime().resolveTrackedRenderOutput()}getOrCreateRenderRuntime(){if(this.renderRuntime)return this.renderRuntime;return this.renderRuntime=new A(this),this.renderRuntime}resolveRenderSurface(){let $=this.getRenderTarget(),Q=$ instanceof ShadowRoot?$:this;return{interactionTarget:Q,queryRoot:Q,renderTarget:$}}}function a0(){let $=B0();if(!$)throw Error("Radiant SSR runtime unavailable. Import `@ecopages/radiant/server/render-component` first.");return $}function M0($){return F0()&&i0($)}class U0{host;properties=new Map;preUpgradePropertyValues=new Map;constructor($){this.host=$;for(let Q of Object.getOwnPropertyNames($))this.preUpgradePropertyValues.set(Q,Reflect.get($,Q))}register($){this.properties.set($.name,$)}getAll(){return Array.from(this.properties.values())}applyAttributeChange($,Q,X){let q=this.properties.get($);if(!q)return;let Z=this.transformAttributeValue(X,q),W=this.transformAttributeValue(Q,q);Reflect.set(this.host,q.attribute,Z),this.host.notifyUpdate($,W,Z)}create($,Q,X,q){let{type:Z,attribute:W,reflect:G,defaultValue:M}=Q,F=W??$,L=this.preUpgradePropertyValues.has($),Y0=L?this.preUpgradePropertyValues.get($):void 0;m(Z,M);let U=L?Y0:X(Z,F,M);if(this.host.hasAttribute(F)&&(!G||U==null||U===""))this.host.removeAttribute(F);if(L&&Object.prototype.hasOwnProperty.call(this.host,$))Reflect.deleteProperty(this.host,$);let Y=y($,F,Z,U);if(this.register(Y),q($,{bind:Q.bind,getValue:()=>this.properties.get($)?.value,setValue:(x)=>{this.properties.set($,{...Y,value:x}),this.reflectValue(F,G,Y,x)}}),U!==void 0)queueMicrotask(()=>{let x=this.properties.get($)?.value;if(x===void 0)return;this.reflectValue(F,G,Y,x),this.host.notifyUpdate($,void 0,x)})}transformAttributeValue($,Q){return $!==null?Q.converter.fromAttribute($):$}reflectValue($,Q,X,q){if(!Q)return;if(q==null||q===""||q===!1){this.host.removeAttribute($);return}let Z=X.converter.toAttribute(q);this.host.setAttribute($,Z)}}export{H0 as RadiantElement};
|
|
1
|
+
var r0=(($)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy($,{get:(Q,X)=>(typeof require<"u"?require:Q)[X]}):$)(function($){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+$+'" is not supported')});var I=Symbol.for("@ecopages/radiant.legacy-instance-initializers"),R=Symbol.for("@ecopages/radiant.legacy-post-construction-initializers"),K0=Symbol.for("@ecopages/radiant.legacy-executed-post-construction-initializers");function e0($,Q){f($,I,Q)}function $2($,Q){f($,R,Q)}function T($){O($,I)}function H($){let Q=$;O($,R,Q[K0]??=new Set)}function f($,Q,X){let q=$,Z=Object.prototype.hasOwnProperty.call(q,Q)?q[Q]:void 0;if(Array.isArray(Z)){Z.push(X);return}Object.defineProperty(q,Q,{value:[X]})}function O($,Q,X,q=Object.getPrototypeOf($)){if(!q||q===Object.prototype)return;O($,Q,X,Object.getPrototypeOf(q));let Z=q[Q];if(!Array.isArray(Z))return;for(let W of Z){if(X?.has(W))continue;W($),X?.add(W)}}function V($){switch($){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function w0($){switch(typeof $){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray($))return"array";if(Object.prototype.toString.call($)==="[object Object]")return"object"}function D0($){switch($){case Number:return 0;case String:return"";case Boolean:return!1;default:return null}}function z0($){try{return JSON.parse($)}catch{throw TypeError("Invalid JSON string")}}var L0={array($){let Q=z0($);if(!Array.isArray(Q))throw TypeError(`Expected an array but got a value of type "${typeof Q}"`);return Q},boolean($){return!($==="0"||String($).toLowerCase()==="false")},number($){return Number($.replace(/_/g,""))},object($){let Q=JSON.parse($);if(Q===null||typeof Q!=="object"||Array.isArray(Q))throw TypeError(`expected value of type "object" but instead got value "${$}" of type "${w0(Q)}"`);return Q},string($){return $}},S={default:N,array:h,object:h};function h($){return JSON.stringify($)}function N($){return`${$}`}function K($,Q){let X=V(Q);if(!X)throw TypeError(`[radiant-element] Unknown type "${Q}"`);return L0[X]($)}function g($,Q){let X=V(Q);if(!X)throw TypeError(`[radiant-element] Unknown type "${Q}"`);return(S[X]??S.default??N)($)}function O0($){return typeof $==="boolean"}function P0($){return typeof $==="number"}function E0($){return typeof $==="string"}function j0($){return Array.isArray($)}function A0($){return typeof $==="object"&&!Array.isArray($)&&$!==null}function b($,Q){switch($){case Boolean:return O0(Q);case Number:return P0(Q);case String:return E0(Q);case Array:return j0(Q);case Object:return A0(Q);default:return!1}}var v=($,Q,X,q)=>{if(Q===Boolean){let W=$.getAttribute(X);if(W===null)return q;return W===""?!0:K(W,Q)}let Z=$.getAttribute(X);return Z!==null?K(Z,Q):q??D0(Q)};function m($,Q){if(Q!==void 0&&!b($,Q))throw Error(`defaultValue does not match the expected type for ${$.name}`)}function y($,Q,X,q){return{type:X,name:$,value:q,initialValue:q,attribute:Q,converter:{fromAttribute:(Z)=>K(Z,X),toAttribute:(Z)=>g(Z,X)}}}import{Computed as _0,subtle as k0,trackDependency as C0}from"@ecopages/signals";function I0($){return $}function c($){return $}var s={trackDependency($){C0(I0($))},createComputed($){return new _0($)},createWatcher($){let Q=new k0.Watcher($);return{watch(X){Q.watch(c(X))},unwatch(X){Q.unwatch(c(X))}}}};var u=s;function w(){return u}function R0($){u=$}function P($){w().trackDependency($)}function d($){return w().createComputed($)}function p($){return w().createWatcher($)}function i($){return $.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}var J="data-hydration",o="data-hydration-type",E="data-hydration-key";function Y2($){let Q=$.hydrationKey?` ${E}="${T0($.hydrationKey)}"`:"";return`<script type="application/json" ${J} ${o}="${$.type}"${Q}>${$.serializedValue}</script>`}function K2($){return i($)}function w2($,Q){let X=$.textContent;if(!X)return Q;try{return JSON.parse(X)}catch{if(typeof console<"u")console.warn(`[@ecopages/radiant] Failed to parse hydration payload from <script ${J}>:`,X.slice(0,120));return Q}}function D2($,Q,X){let q=$.children;if(!q||q.length===0){let Z=$.childNodes;if(!Z||Z.length===0)return null;for(let W=0;W<Z.length;W+=1){let G=Z[W];if(G.nodeType!==1)continue;let M=G;if(l(M,Q,X))return M}return null}for(let Z=0;Z<q.length;Z+=1)if(l(q[Z],Q,X))return q[Z];return null}function l($,Q,X){if($.tagName!=="SCRIPT"||!$.hasAttribute(J)||$.getAttribute(o)!==Q)return!1;if(X!==void 0)return $.getAttribute(E)===X;return!$.hasAttribute(E)}function T0($){return $.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}import{createMarkupNodeLike as f0,isKeyedJsxValue as n,isSlotJsxValue as S0}from"@ecopages/jsx";var B="",z="data-radiant-slot-projection";function a($){let Q=new Map;for(let X of Array.from($.childNodes)){if(g0(X))continue;h0(Q,N0(X),X)}return Q}function r($){let Q;try{Q=JSON.parse($)}catch{if(typeof console<"u")console.warn("[@ecopages/radiant] Failed to parse slot projection payload:",$.slice(0,120));return new Map}let X=new Map;for(let[q,Z]of Object.entries(Q)){if(!Array.isArray(Z)||Z.length===0)continue;X.set(j(q),Z.map((W)=>f0(W)))}return X}function t($){let Q=Array.from($.childNodes).filter((X)=>Z0(X)).map((X)=>D(X)??"").filter((X)=>X!=="");return Q.length>0?Q.join(""):void 0}function e($){let Q={};for(let[X,q]of $.entries()){let Z=q.map((W)=>D(W)).filter((W)=>W!==void 0&&W!=="");if(Z.length>0)Q[X]=Z}return Object.keys(Q).length>0?JSON.stringify(Q):void 0}function $0($,Q){let X=!1,q=(W)=>{if(S0(W))return X=!0,v0(W,Q,q);if(n(W))return V0(W,q(W.value));if(b0(W))return{_$rType$:1,rootLocalName:W.rootLocalName,ssrIntrinsicProps:W.ssrIntrinsicProps,strings:W.strings,values:W.values.map((G)=>q(G))};if(X0(W))return Array.from(W,(G)=>q(G));return W},Z=q($);return{containsSlots:X,value:Z}}function Q0($){for(let Q of Array.from($.childNodes)){if(!q0(Q))continue;let X=Q.textContent??void 0;return Q.parentNode?.removeChild(Q),X}return}function h0($,Q,X){let q=$.get(Q);if(q){q.push(X);return}$.set(Q,[X])}function V0($,Q){return{...$,value:Q}}function N0($){if($ instanceof Element)return j($.getAttribute("slot"));return B}function X0($){return typeof $!=="string"&&typeof $==="object"&&$!==null&&Symbol.iterator in $}function q0($){return $ instanceof HTMLScriptElement&&$.hasAttribute(z)}function Z0($){return $ instanceof HTMLScriptElement&&$.hasAttribute(J)}function g0($){return q0($)||Z0($)}function b0($){return typeof $==="object"&&$!==null&&$._$rType$===1&&Array.isArray($.strings)&&Array.isArray($.values)}function j($){return $??B}function D($){if($===void 0||$===null||$===!1||$===!0)return;if(typeof Node<"u"&&$ instanceof Node){if($.nodeType===Node.TEXT_NODE)return $.textContent??"";return $.outerHTML??$.textContent??void 0}if(n($))return D($.value);if(typeof $==="string"||typeof $==="number"||typeof $==="bigint")return String($);if(typeof $==="object"&&$!==null&&"outerHTML"in $)return typeof $.outerHTML==="string"?$.outerHTML:$.textContent??void 0;if(X0($))return Array.from($,(Q)=>D(Q)??"").join("");return}function v0($,Q,X){let q=Q.get(j($.name));if(q&&q.length>0)return q.length===1?q[0]:q;if($.fallback===void 0)return"";return X($.fallback)}import{hydrate as m0,render as y0}from"@ecopages/jsx";class A{#$;#Q=new Map;#X;#Z;#q;#W=0;constructor($){this.#$=$,this.#Z=p(()=>{this.#$.requestUpdate()})}get slotProjectionVersion(){return this.#W}getSlotElements($){return this.ensureSlotProjectionState(),(this.#Q.get($??B)??[]).filter((Q)=>typeof Node<"u"&&Q instanceof Element)}getSlotProjectionScriptTag(){this.ensureSlotProjectionState();let $=e(this.#Q);if(!$)return;return`<script type="application/json" ${z}>${c0($)}</script>`}getAuthoredHydrationScriptMarkup(){return t(this.#$)??void 0}hydrate($){this.disconnectSlotProjectionObserver();try{m0(this.resolveTrackedRenderOutput().value,$)}finally{this.observeSlotProjection()}}render($){this.disconnectSlotProjectionObserver();try{y0(this.resolveTrackedRenderOutput().value,$)}finally{this.observeSlotProjection()}}observeSlotProjection(){if(typeof MutationObserver>"u"||this.#q||!this.#$.isConnected)return;this.#q=new MutationObserver(($)=>this.handleSlotProjectionMutations($)),this.#q.observe(this.#$,{childList:!0})}disconnectSlotProjectionObserver(){this.#q?.disconnect(),this.#q=void 0}disconnectRenderWatcher(){if(!this.#X)return;this.#Z.unwatch(this.#X),this.#X=void 0}resolveTrackedRenderOutput(){let $=d(()=>this.resolveRenderOutput()),Q=$.get();if(!this.#$.isConnected)return Q;if(this.#X)this.#Z.unwatch(this.#X);return this.#X=$,this.#Z.watch($),Q}dispose(){this.disconnectSlotProjectionObserver(),this.disconnectRenderWatcher()}ensureSlotProjectionState(){if(this.#Q.size>0)return;let $=this.#$.isConnected?Q0(this.#$):void 0;if(typeof $==="string"&&$!==""){this.#Q=r($),this.#W+=1;return}if(this.#$.childNodes.length>0)this.#Q=a(this.#$),this.#W+=1}handleSlotProjectionMutations($){let Q=!1;for(let X of $){for(let q of Array.from(X.removedNodes))if(this.removeProjectedSlotNode(q))Q=!0;for(let q of Array.from(X.addedNodes)){if(q.parentNode!==this.#$)continue;if(this.addProjectedSlotNode(q))Q=!0}}if(Q)this.#W+=1,this.#$.requestUpdate()}addProjectedSlotNode($){if($ instanceof HTMLScriptElement&&($.hasAttribute(z)||$.hasAttribute(J)))return!1;let Q=$ instanceof Element?$.getAttribute("slot")??B:B,X=this.#Q.get(Q);if(X){if(X.includes($))return!1;return X.push($),!0}return this.#Q.set(Q,[$]),!0}removeProjectedSlotNode($){for(let[Q,X]of this.#Q.entries()){let q=X.indexOf($);if(q===-1)continue;if(X.splice(q,1),X.length===0)this.#Q.delete(Q);return!0}return!1}resolveRenderOutput(){return this.ensureSlotProjectionState(),$0(this.#$.render(),this.#Q)}}function c0($){return $.replace(/</g,"\\u003c")}import{createSubscribableJsxValue as s0}from"@ecopages/jsx";class W0{read;subscribers=new Set;watcherListeners=new Set;version=0;constructor($){this.read=$}get(){return P(this),this.read()}subscribe($){return this.subscribers.add($),()=>{this.subscribers.delete($)}}addWatcher($){return this.watcherListeners.add($),()=>{this.watcherListeners.delete($)}}getVersion(){return this.version}notify($){this.version+=1;let Q;try{this.notifyWatchers()}catch(X){Q=X}if(this.publish($),Q)throw Q}publish($){for(let Q of this.subscribers)Q($)}notifyWatchers(){let $=[];for(let Q of this.watcherListeners)try{Q()}catch(X){$.push(X)}if($.length===1)throw $[0];if($.length>1)throw AggregateError($,"Multiple reactive dependency notifications failed.")}}function u0($){return typeof $==="object"&&$!==null&&typeof $.get==="function"}class _{host;access;shouldAutoBind;bindings;$;reactiveFields=new Map;reactiveDependencies=new Map;reactiveDependencyReaders=new Map;reactiveBindings=new Map;updateCallbacks=new Map;onConnectedCallbacks=[];onDisconnectedCallback=[];constructor($,Q,X){this.host=$;this.access=Q;this.shouldAutoBind=X;let q=this.createReactiveBindingNamespace();this.bindings=q,this.$=q}connectHost(){for(let $ of this.onConnectedCallbacks)$()}disconnectHost(){for(let $ of this.onDisconnectedCallback)$()}notifyUpdate($,Q,X){if(Q===X)return;this.reactiveDependencies.get($)?.notify(X);let q=this.updateCallbacks.get($);if(q)for(let Z of q)Z()}registerCleanupCallback($){this.onDisconnectedCallback.push($)}registerConnectedCallback($){this.onConnectedCallbacks.push($)}registerHydrationBinding($,Q){}registerReactiveDependencyReader($,Q){this.reactiveDependencyReaders.set($,Q)}registerUpdateCallback($,Q){if(!this.updateCallbacks.has($))this.updateCallbacks.set($,new Set);let X=this.updateCallbacks.get($);return X.add(Q),()=>{if(X.delete(Q),X.size===0)this.updateCallbacks.delete($)}}getReactiveBinding($){let Q=this.reactiveBindings.get($);if(Q)return Q;let X=s0({getValue:()=>this.readReactiveBindingValue($),subscribe:(q)=>this.registerUpdateCallback($,()=>{q(this.readReactiveBindingValue($))})});return this.reactiveBindings.set($,X),X}defineReactiveBinding($,Q=!0){let X=typeof Q==="string"?Q:Q?`$${$}`:void 0,q=this.access.getBindingTarget?.(this.host)??this.host;if(!X||this.access.hasProperty(this.host,X))return;this.access.defineProperty(q,X,{get:()=>this.getReactiveBinding($),enumerable:!1,configurable:!0})}trackReactiveRead($){P(this.getReactiveDependency($))}defineReactiveAccessor($,Q){let X=Q.bind??this.shouldAutoBind();if(this.defineReactiveBinding($,X),this.registerReactiveDependencyReader($,Q.getValue),this.access.defineProperty(this.host,$,{get:()=>{return this.trackReactiveRead($),Q.getValue()},set:(q)=>{let Z=Q.getValue();if(Z===q)return;Q.setValue(q),this.notifyUpdate($,Z,q)},enumerable:!0,configurable:!0}),Q.notifyInitialValue!==void 0)this.notifyUpdate($,void 0,Q.notifyInitialValue)}createReactiveField($,Q,X={}){let q={name:$,value:Q,initialValue:Q};this.reactiveFields.set($,q),this.defineReactiveAccessor($,{bind:X.bind,getValue:()=>this.reactiveFields.get($)?.value,setValue:(Z)=>{this.reactiveFields.set($,{...q,value:Z})},notifyInitialValue:Q})}createReactiveBindingNamespace(){return new Proxy(Object.create(null),{get:($,Q)=>{if(typeof Q!=="string")return;return this.getReactiveBinding(Q)}})}getReactiveDependency($){let Q=this.reactiveDependencies.get($);if(Q)return Q;let X=new W0(()=>this.readReactiveDependencyValue($));return this.reactiveDependencies.set($,X),X}readReactiveDependencyValue($){let Q=this.reactiveDependencyReaders.get($);if(Q)return Q();return this.readReactiveBindingValue($)}readReactiveBindingValue($){let Q=this.access.readProperty(this.host,$);if(u0(Q))return Q.get();return Q}}var k=Symbol.for("@ecopages/radiant.ssr-preparation-callbacks"),G0=Symbol.for("@ecopages/radiant.ssr-preparation-running");function T2($,Q){let q=$[k];if(Array.isArray(q)){q.push(Q);return}Object.defineProperty($,k,{value:[Q],configurable:!0})}function J0($){let Q=$,X=Q[k];if(!Array.isArray(X))return;Q[G0]=!0;try{for(let q of X)q()}finally{delete Q[G0]}}var C=Symbol.for("@ecopages/radiant.hydrator-installed");function S2(){globalThis[C]=!0}function h2(){delete globalThis[C]}function F0(){return globalThis[C]===!0}import{getActiveSsrScopeValue as d0,withActiveSsrScopeValue as p0}from"@ecopages/jsx/server";var x0=Symbol.for("@ecopages/radiant.element-ssr-runtime");function B0(){return d0(x0)}function g2($,Q){return p0(x0,$,Q)}import{hasHydrationMarkers as i0,jsx as l0}from"@ecopages/jsx";var o0=n0();function n0(){if(typeof HTMLElement<"u")return HTMLElement;throw Error("RadiantElement requires HTMLElement. Install '@ecopages/radiant/server/light-dom-shim' before SSR imports.")}class H0 extends o0{renderRootMode="light";bindings;$;reactiveHost;reactivePropertyState;contextProviders=new Map;hydrationBindings=new Map;eventSubscriptions=new Map;eventEmitters=new Map;elementReady=!1;isRendering=!1;isFirstConnectPending=!1;isRenderScheduled=!1;needsRender=!1;renderRuntime;constructor(){super();this.reactivePropertyState=new U0(this),this.reactiveHost=new _(this,{defineProperty:($,Q,X)=>Object.defineProperty($,Q,X),getBindingTarget:($)=>Object.getPrototypeOf($)??$,hasProperty:($,Q)=>(Q in $),readProperty:($,Q)=>$[Q]},()=>this.shouldAutoBindReactiveMembers()),this.bindings=this.reactiveHost.bindings,this.$=this.reactiveHost.$,T(this)}get slotProjectionVersion(){return this.renderRuntime?.slotProjectionVersion??0}connectedCallback(){H(this);let $=this.isFirstConnectPending;if(this.elementReady=!0,this.reactiveHost.connectHost(),$)return;this.isFirstConnectPending=!0,queueMicrotask(()=>{if(this.isFirstConnectPending=!1,!this.isConnected)return;if(!this.shouldRunRenderLifecycle())return;if(this.getOrCreateRenderRuntime().observeSlotProjection(),M0(this)){if(this.needsRender=!1,this.hydrate(),this.needsRender)this.update();return}this.update()})}connectedContextCallback($){}disconnectedCallback(){this.renderRuntime?.dispose(),this.renderRuntime=void 0,this.removeAllSubscribedEvents(),this.reactiveHost.disconnectHost()}notifyUpdate($,Q,X){this.reactiveHost.notifyUpdate($,Q,X)}attributeChangedCallback($,Q,X){if(Q===X||!this.elementReady)return;this.reactivePropertyState.applyAttributeChange($,Q,X)}renderTemplate({target:$=this,template:Q,insert:X="replace",sanitize:q}){let Z=q?q(Q):Q;switch(X){case"replace":$.innerHTML=Z;break;case"beforeend":$.insertAdjacentHTML("beforeend",Z);break;case"afterbegin":$.insertAdjacentHTML("afterbegin",Z);break;case"beforebegin":$.insertAdjacentHTML("beforebegin",Z);break;case"afterend":$.insertAdjacentHTML("afterend",Z);break}}render(){return l0("slot",{})}renderViewToString($={}){if(!this.shouldRunRenderLifecycle())return this.innerHTML;return H(this),this.prepareForSsr(),a0().renderView(this,$)}hydrate(){if(!this.shouldRunRenderLifecycle()||!this.isConnected||this.isRendering)return;let{renderTarget:$}=this.resolveRenderSurface(),Q=this.getOrCreateRenderRuntime();this.isRendering=!0;try{Q.hydrate($)}finally{this.isRendering=!1}}requestUpdate(){if(!this.shouldRunRenderLifecycle())return;if(this.needsRender=!0,this.isRenderScheduled)return;this.isRenderScheduled=!0,queueMicrotask(()=>{if(this.isRenderScheduled=!1,!this.needsRender)return;this.update()})}update(){if(!this.shouldRunRenderLifecycle())return;let{renderTarget:$}=this.resolveRenderSurface(),Q=this.getOrCreateRenderRuntime();if(this.needsRender=!0,!this.isConnected||this.isRendering)return;if(this.isFirstConnectPending&&M0(this))return;while(this.needsRender&&this.isConnected){this.needsRender=!1,this.isRendering=!0;try{Q.render($)}finally{this.isRendering=!1}}}registerReactiveProperty($){this.reactivePropertyState.register($)}getReactiveProperties(){return this.reactivePropertyState.getAll()}registerReactiveDependencyReader($,Q){this.reactiveHost.registerReactiveDependencyReader($,Q)}registerContextProvider($,Q){this.contextProviders.set($,Q),this.hydrationBindings.set($,Q)}registerHydrationBinding($,Q){this.hydrationBindings.set($,Q)}getContextProviders(){return H(this),[...this.contextProviders.values()]}getHydrationBindings(){return H(this),[...this.hydrationBindings.values()]}prepareForSsr(){J0(this)}shouldAutoBindReactiveMembers(){return!0}shouldRunRenderLifecycle(){return this.render!==H0.prototype.render}getRenderTarget(){if(this.renderRootMode!=="shadow")return this;if(this.shadowRoot)return this.shadowRoot;if(typeof this.attachShadow!=="function")throw Error("RadiantElement shadow render mode requires attachShadow().");return this.attachShadow({mode:"open"})}registerUpdateCallback($,Q){return this.reactiveHost.registerUpdateCallback($,Q)}getReactiveBinding($){return this.reactiveHost.getReactiveBinding($)}bind($){return this.reactiveHost.getReactiveBinding($)}defineReactiveBinding($,Q=!0){this.reactiveHost.defineReactiveBinding($,Q)}trackReactiveRead($){this.reactiveHost.trackReactiveRead($)}subscribeEvents($){let Q=[];for(let X of $)Q.push(this.subscribeEvent(X));return Q}subscribeEvent($){let{interactionTarget:Q}=this.resolveRenderSurface(),X=(Z)=>{if(Z.target&&Z.target.matches($.selector))$.listener.call(this,Z)},q=`${$.type}:${$.selector}`;return Q.addEventListener($.type,X,$.options),this.eventSubscriptions.set(q,{...$,listener:X,target:Q}),this.unsubscribeEvent.bind(this,q)}unsubscribeEvent($){let Q=this.eventSubscriptions.get($);if(Q)Q.target.removeEventListener(Q.type,Q.listener,Q.options),this.eventSubscriptions.delete($)}removeAllSubscribedEvents(){for(let $ of this.eventSubscriptions.values())$.target.removeEventListener($.type,$.listener,$.options);this.eventSubscriptions.clear()}registerCleanupCallback($){this.reactiveHost.registerCleanupCallback($)}registerConnectedCallback($){this.reactiveHost.registerConnectedCallback($)}registerEventEmitter($,Q){this.eventEmitters.set($,Q)}getRef($,Q=!1){let X=`[data-ref="${$}"]`,{queryRoot:q}=this.resolveRenderSurface();if(Q)return Array.from(q.querySelectorAll(X));return q.querySelector(X)??null}getSlotElement($){return this.getSlotElements($)[0]??null}getSlotElements($){return this.getOrCreateRenderRuntime().getSlotElements($)}createReactiveField($,Q,X={}){this.reactiveHost.createReactiveField($,Q,X)}createReactiveProp($,Q){this.reactivePropertyState.create($,Q,(X,q,Z)=>v(this,X,q,Z),(X,q)=>{this.reactiveHost.defineReactiveAccessor(X,q)})}getSlotProjectionScriptTag(){return this.getOrCreateRenderRuntime().getSlotProjectionScriptTag()}getAuthoredHydrationScriptMarkup(){return this.getOrCreateRenderRuntime().getAuthoredHydrationScriptMarkup()}resolveTrackedRenderOutput(){return this.getOrCreateRenderRuntime().resolveTrackedRenderOutput()}getOrCreateRenderRuntime(){if(this.renderRuntime)return this.renderRuntime;return this.renderRuntime=new A(this),this.renderRuntime}resolveRenderSurface(){let $=this.getRenderTarget(),Q=typeof ShadowRoot<"u"&&$ instanceof ShadowRoot?$:this;return{interactionTarget:Q,queryRoot:Q,renderTarget:$}}}function a0(){let $=B0();if(!$)throw Error("Radiant SSR runtime unavailable. Import `@ecopages/radiant/server/render-component` first.");return $}function M0($){return F0()&&i0($)}class U0{host;properties=new Map;preUpgradePropertyValues=new Map;constructor($){this.host=$;for(let Q of Object.getOwnPropertyNames($))this.preUpgradePropertyValues.set(Q,Reflect.get($,Q))}register($){this.properties.set($.name,$)}getAll(){return Array.from(this.properties.values())}applyAttributeChange($,Q,X){let q=this.properties.get($);if(!q)return;let Z=this.transformAttributeValue(X,q),W=this.transformAttributeValue(Q,q);Reflect.set(this.host,q.attribute,Z),this.host.notifyUpdate($,W,Z)}create($,Q,X,q){let{type:Z,attribute:W,reflect:G,defaultValue:M}=Q,F=W??$,L=this.preUpgradePropertyValues.has($),Y0=L?this.preUpgradePropertyValues.get($):void 0;m(Z,M);let U=L?Y0:X(Z,F,M);if(this.host.hasAttribute(F)&&(!G||U==null||U===""))this.host.removeAttribute(F);if(L&&Object.prototype.hasOwnProperty.call(this.host,$))Reflect.deleteProperty(this.host,$);let Y=y($,F,Z,U);if(this.register(Y),q($,{bind:Q.bind,getValue:()=>this.properties.get($)?.value,setValue:(x)=>{this.properties.set($,{...Y,value:x}),this.reflectValue(F,G,Y,x)}}),U!==void 0)queueMicrotask(()=>{let x=this.properties.get($)?.value;if(x===void 0)return;this.reflectValue(F,G,Y,x),this.host.notifyUpdate($,void 0,x)})}transformAttributeValue($,Q){return $!==null?Q.converter.fromAttribute($):$}reflectValue($,Q,X,q){if(!Q)return;if(q==null||q===""||q===!1){this.host.removeAttribute($);return}let Z=X.converter.toAttribute(q);this.host.setAttribute($,Z)}}export{H0 as RadiantElement};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=E97EDD0E0382F89664756E2164756E21
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
"type SsrPreparationCallback = () => void;\n\nconst SSR_PREPARATION_CALLBACKS = Symbol.for('@ecopages/radiant.ssr-preparation-callbacks');\nexport const SSR_PREPARATION_RUNNING = Symbol.for('@ecopages/radiant.ssr-preparation-running');\n\n/**\n * Registers instance-local SSR preparation work that should run immediately\n * before a Radiant host serializes its first server render.\n *\n * Decorators use this to defer SSR-only setup until after class fields,\n * reactive props, and authored host content have all been applied.\n */\nexport function registerSsrPreparationCallback(host: object, callback: SsrPreparationCallback): void {\n\tconst target = host as Record<PropertyKey, unknown>;\n\tconst existingCallbacks = target[SSR_PREPARATION_CALLBACKS];\n\n\tif (Array.isArray(existingCallbacks)) {\n\t\texistingCallbacks.push(callback);\n\t\treturn;\n\t}\n\n\tObject.defineProperty(host, SSR_PREPARATION_CALLBACKS, {\n\t\tvalue: [callback],\n\t\tconfigurable: true,\n\t});\n}\n\n/**\n * Runs all registered SSR preparation callbacks for the provided host.\n *\n * The callbacks are intentionally retained so repeated SSR serializations stay\n * deterministic after later host mutations.\n */\nexport function runSsrPreparationCallbacks(host: object): void {\n\tconst target = host as Record<PropertyKey, unknown>;\n\tconst callbacks = target[SSR_PREPARATION_CALLBACKS];\n\n\tif (!Array.isArray(callbacks)) {\n\t\treturn;\n\t}\n\n\ttarget[SSR_PREPARATION_RUNNING] = true;\n\n\ttry {\n\t\tfor (const callback of callbacks as SsrPreparationCallback[]) {\n\t\t\tcallback();\n\t\t}\n\t} finally {\n\t\tdelete target[SSR_PREPARATION_RUNNING];\n\t}\n}\n",
|
|
17
17
|
"const RADIANT_HYDRATOR_INSTALLED_SYMBOL = Symbol.for('@ecopages/radiant.hydrator-installed');\n\ntype GlobalHydratorState = typeof globalThis & Record<PropertyKey, unknown>;\n\n/**\n * Marks the current JavaScript environment as hydration-enabled for first\n * custom-element connect.\n *\n * `RadiantElement` reads this flag before deciding whether SSR markup should\n * hydrate in place or be replaced by a fresh client render.\n */\nexport function installRadiantHydratorState(): void {\n\t(globalThis as GlobalHydratorState)[RADIANT_HYDRATOR_INSTALLED_SYMBOL] = true;\n}\n\n/**\n * Clears the explicit hydration-enabled flag from `globalThis`.\n *\n * This is mainly used by tests so they can assert both hydrated and non-\n * hydrated first-connect behavior deterministically.\n */\nexport function uninstallRadiantHydratorState(): void {\n\tdelete (globalThis as GlobalHydratorState)[RADIANT_HYDRATOR_INSTALLED_SYMBOL];\n}\n\n/**\n * Returns whether first-connect hydration is currently enabled for this\n * JavaScript environment.\n */\nexport function isRadiantHydratorInstalled(): boolean {\n\treturn (globalThis as GlobalHydratorState)[RADIANT_HYDRATOR_INSTALLED_SYMBOL] === true;\n}\n",
|
|
18
18
|
"import type { JsxRenderable } from '@ecopages/jsx';\nimport { getActiveSsrScopeValue, type RenderToStringOptions, withActiveSsrScopeValue } from '@ecopages/jsx/server';\n\nexport type RadiantElementRenderBridge = {\n\trenderHost?: () => JsxRenderable;\n\trenderHostToString?: (options?: RenderToStringOptions) => string;\n};\n\n/**\n * SSR host shape used by explicit server rendering entrypoints.\n *\n * Server-side attribute serialization is derived from ordinary host state in\n * the server pipeline rather than through a dedicated host SSR hook.\n */\nexport type RadiantElementServerRenderSsrCapable = object;\n\n/**\n * SSR host shape required when the server runtime renders the tracked component\n * view directly.\n */\nexport type RadiantElementTrackedRenderSsrCapable = object;\n\n/**\n * Shared SSR runtime contract carried on the active JSX SSR render scope.\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: RadiantElementServerRenderSsrCapable): Record<string, string>;\n\trenderHost(component: RadiantElementServerRenderSsrCapable): JsxRenderable;\n\trenderHostToString(component: RadiantElementServerRenderSsrCapable, options?: RenderToStringOptions): string;\n\tresolveRenderBridge(component: object): RadiantElementRenderBridge | undefined;\n\trenderView(component: RadiantElementTrackedRenderSsrCapable, options?: RenderToStringOptions): string;\n};\n\nconst RADIANT_ELEMENT_SSR_RUNTIME_SYMBOL = Symbol.for('@ecopages/radiant.element-ssr-runtime');\n\n/**\n * Reads the active Radiant SSR runtime from the current render scope.\n *\n * Returns `undefined` when no server render is currently in progress.\n */\nexport function getRadiantElementSsrRuntime(): RadiantElementSsrRuntime | undefined {\n\treturn getActiveSsrScopeValue<RadiantElementSsrRuntime>(RADIANT_ELEMENT_SSR_RUNTIME_SYMBOL);\n}\n\n/**\n * Runs work within an active Radiant SSR runtime scope.\n *\n * The runtime remains visible across built entrypoint boundaries through the\n * active JSX SSR render scope, but only for the duration of the active render call.\n */\nexport function withRadiantElementSsrRuntime<T>(runtime: RadiantElementSsrRuntime, render: () => T): T {\n\treturn withActiveSsrScopeValue(RADIANT_ELEMENT_SSR_RUNTIME_SYMBOL, runtime, render);\n}\n",
|
|
19
|
-
"import type { EventEmitter } from '../tools';\nimport { hasHydrationMarkers, jsx, type JsxRenderable, type SubscribableJsxValue } from '@ecopages/jsx';\nimport type { RenderToStringOptions } from '@ecopages/jsx/server';\nimport type { SsrSerializableContextProvider } from '../context/context-provider';\nimport type { UnknownContext } from '../context/types';\nimport {\n\trunLegacyInstanceInitializers,\n\trunLegacyPostConstructionInitializers,\n} from '../decorators/legacy/instance-initializers';\nimport {\n\tcreateReactivePropertyMapping,\n\ttype ReactiveAccessorDefinition,\n\ttype ReactiveBindingOption,\n\ttype ReactiveBindingValue,\n\ttype ReactiveBindings,\n\ttype ReactiveFieldOptions,\n\ttype ReactiveProperty,\n\ttype ReactivePropertyOptions,\n\tvalidateReactivePropertyDefault,\n} from './reactive-prop-core';\nimport { RenderRuntime, type RenderRuntimeHost } from './render-runtime';\nimport type { SsrSerializableHydrationBinding } from './ssr-hydration-binding';\nimport { ReactiveHost } from './reactive-host';\nimport { runSsrPreparationCallbacks } from './ssr-preparation';\nimport { isRadiantHydratorInstalled } from './radiant-hydrator-state';\nimport { getRadiantElementSsrRuntime } from './radiant-element-ssr-registry';\nimport { type AttributeTypeConstant, getInitialValue } from '../utils/attribute-utils';\n\nexport type {\n\tReactiveBindingOption,\n\tReactiveBindingValue,\n\tReactiveBindings,\n\tReactiveField,\n\tReactiveFieldOptions,\n\tReactiveProperty,\n\tReactivePropertyOptions,\n} from './reactive-prop-core';\n\nconst RadiantElementBase = resolveRadiantElementBase();\n\ntype RadiantRenderTarget = HTMLElement | ShadowRoot;\ntype RadiantInteractionTarget = HTMLElement | ShadowRoot;\ntype RadiantRenderSurface = {\n\trenderTarget: RadiantRenderTarget;\n\tinteractionTarget: RadiantInteractionTarget;\n\tqueryRoot: ParentNode;\n};\ntype ReactivePropertyStateHost = HTMLElement & {\n\tnotifyUpdate(changedProperty: string, oldValue: unknown, value: unknown): void;\n};\n\nfunction resolveRadiantElementBase(): typeof HTMLElement {\n\tif (typeof HTMLElement !== 'undefined') {\n\t\treturn HTMLElement;\n\t}\n\n\tthrow new Error(\n\t\t\"RadiantElement requires HTMLElement. Install '@ecopages/radiant/server/light-dom-shim' before SSR imports.\",\n\t);\n}\n\n/**\n * Possible positions to insert a rendered template.\n */\nexport type RenderInsertPosition = 'replace' | 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend';\n\n/**\n * Represents a Radiant element event listener.\n */\nexport type RadiantElementEventListener = {\n\tselector: string;\n\ttype: string;\n\tlistener: EventListener;\n\toptions?: AddEventListenerOptions;\n};\n\ntype RadiantElementEventSubscription = RadiantElementEventListener & {\n\ttarget: EventTarget;\n};\n\ntype StringPropertyKey<Value> = Extract<keyof Value, string>;\n\n/**\n * Represents an interface for a Radiant element.\n * @typeParam Bindings - Explicit internal bindable shape used to type `bind()` and `getReactiveBinding()`.\n *\n * This shape describes which reactive members are exposed through `bindings`,\n * `$`, and `bind(...)`. It does not automatically define the public JSX\n * attribute contract for the custom element.\n */\nexport interface IRadiantElement<Bindings extends object = {}> {\n\t/**\n\t * Namespace of cached JSX bindings keyed by the explicit bindable shape.\n\t */\n\treadonly bindings: ReactiveBindings<Bindings>;\n\n\t/**\n\t * Short alias for {@link bindings}.\n\t */\n\treadonly $: ReactiveBindings<Bindings>;\n\n\t/**\n\t * Called when a property of the element is updated.\n\t * @param changedProperty - The name of the changed property.\n\t * @param oldValue - The old value of the property.\n\t * @param newValue - The new value of the property.\n\t */\n\tnotifyUpdate(changedProperty: string, oldValue: unknown, newValue: unknown): void;\n\n\t/**\n\t * Subscribes to a Radiant element event.\n\t * @param event - The event listener to subscribe to.\n\t */\n\tsubscribeEvent(event: RadiantElementEventListener): void;\n\n\t/**\n\t * Registers a callback to be invoked when a reactive property or field changes.\n\t *\n\t * @returns A cleanup function that unregisters the callback.\n\t */\n\tregisterUpdateCallback(property: string, update: (...rest: any[]) => any): () => void;\n\n\t/**\n\t * Returns a subscribable JSX child binding for a reactive property or field.\n\t *\n\t * Prefer `this.bindings.key` or `this.$.key` in JSX render code when you want\n\t * property access syntax without string literals.\n\t */\n\tbind<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValue<ReactiveBindingValue<Bindings, Property>>;\n\n\t/**\n\t * Returns a subscribable JSX child binding for a reactive property or field.\n\t *\n\t * This is the primitive lookup used by `bind()`, `bindings.key`, and `$.key`.\n\t */\n\tgetReactiveBinding<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValue<ReactiveBindingValue<Bindings, Property>>;\n\n\t/**\n\t * Defines a stable JSX binding companion accessor for a reactive member.\n\t *\n\t * Companion bindings create properties such as `$count` directly on the host.\n\t * Prefer the `bindings` or `$` namespace for new code when you want typed,\n\t * explicit access to the configured bindable shape.\n\t */\n\tdefineReactiveBinding(property: string, bind?: ReactiveBindingOption): void;\n\n\t/**\n\t * Subscribes to multiple Radiant element events.\n\t * @param events - The array of event listeners to subscribe to.\n\t */\n\tsubscribeEvents(events: RadiantElementEventListener[]): void;\n\n\t/**\n\t * It adds a callback to be executed when the Radiant element is disconnected from the DOM.\n\t */\n\tregisterCleanupCallback(callback: () => void): void;\n\n\t/**\n\t * Registers a callback to run on each future host connection.\n\t *\n\t * The callback is only invoked from `connectedCallback()`. Registering it\n\t * after the host is already connected does not invoke it immediately.\n\t */\n\tregisterConnectedCallback(callback: () => void): void;\n\n\t/**\n\t * Registers a raw value reader for a reactive member so that tracked render\n\t * dependencies can read the underlying value without triggering the public\n\t * getter's dependency tracking.\n\t */\n\tregisterReactiveDependencyReader(property: string, read: () => unknown): void;\n\n\t/**\n\t * Records a tracked read of a reactive member during a component render,\n\t * allowing the signals runtime to re-render only the affected parts.\n\t */\n\ttrackReactiveRead(property: string): void;\n\n\t/**\n\t * Renders a trusted HTML template string into the specified target element.\n\t *\n\t * **Security:** The `template` string is written to the DOM via `innerHTML`\n\t * or `insertAdjacentHTML` without built-in sanitization. Callers are\n\t * responsible for ensuring the input is trusted. Supply a `sanitize`\n\t * function to transform the template before insertion.\n\t *\n\t * @param options - The rendering options.\n\t * @param options.target - The target element to render the template into.\n\t * @param options.template - The template string to render.\n\t * @param options.insert - The position to insert the rendered template. (optional)\n\t * @param options.sanitize - An optional function that transforms the template string before insertion.\n\t */\n\trenderTemplate(options: {\n\t\ttarget: HTMLElement;\n\t\ttemplate: string;\n\t\tinsert?: RenderInsertPosition;\n\t\tsanitize?: (html: string) => string;\n\t}): void;\n\n\t/**\n\t * Called when the Radiant element is connected to a context.\n\t * @param context - The connected context.\n\t */\n\tconnectedContextCallback(context: UnknownContext): void;\n\n\t/**\n\t * Gets a reference to a child element by its data-ref attribute.\n\t * @param ref - The data-ref attribute value of the element to get.\n\t * @param all - Whether to get all elements with the specified data-ref attribute value.\n\t * @returns The element with the specified data-ref attribute value, an array of elements or null if no element was found.\n\t */\n\tgetRef<T extends Element = Element>(ref: string, all: true): T[];\n\tgetRef<T extends Element = Element>(ref: string, all?: false): T | null;\n}\n\n/**\n * A base class for creating custom elements with reactive properties and event subscriptions.\n * @typeParam Bindings - Explicit internal bindable shape. Include only the\n * prop/state keys that JSX bindings should accept.\n *\n * Prefer a separate public props type for custom-element JSX declarations when\n * the external attribute contract differs from the component's internal\n * reactive state. Reuse the same type only when the public props and bindable\n * members are intentionally identical.\n * @extends HTMLElement\n * @implements IRadiantElement<Bindings>\n */\nexport class RadiantElement<Bindings extends object = {}>\n\textends RadiantElementBase\n\timplements IRadiantElement<Bindings>\n{\n\t/**\n\t * Controls where the JSX render lifecycle mounts the component view.\n\t *\n\t * Subclasses can override this with `'shadow'` to force an internal open\n\t * shadow root for client-side rendering. Host SSR helpers remain light-DOM\n\t * only and throw when shadow render mode is enabled.\n\t */\n\tprotected readonly renderRootMode: 'light' | 'shadow' = 'light';\n\tpublic readonly bindings: ReactiveBindings<Bindings>;\n\tpublic readonly $: ReactiveBindings<Bindings>;\n\tprivate readonly reactiveHost: ReactiveHost<this, Bindings>;\n\tprivate readonly reactivePropertyState: ReactivePropertyState;\n\n\t/**\n\t * Registered context providers keyed by decorated property name.\n\t */\n\tprivate contextProviders = new Map<string, SsrSerializableContextProvider>();\n\n\t/**\n\t * Registered keyed hydration payload producers appended to SSR host output.\n\t */\n\tprivate hydrationBindings = new Map<string, SsrSerializableHydrationBinding>();\n\n\t/**\n\t * A map of event subscriptions used to manage event listeners on the Radiant element.\n\t */\n\tprivate eventSubscriptions = new Map<string, RadiantElementEventSubscription>();\n\n\t/**\n\t * A map for event emitters\n\t */\n\tprivate eventEmitters = new Map<string, EventEmitter>();\n\n\t/**\n\t * A flag indicating whether the element has been connected to the DOM.\n\t */\n\tprivate elementReady = false;\n\tprivate isRendering = false;\n\tprivate isFirstConnectPending = false;\n\tprivate isRenderScheduled = false;\n\tprivate needsRender = false;\n\tprivate renderRuntime?: RenderRuntime;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.reactivePropertyState = new ReactivePropertyState(this);\n\n\t\tthis.reactiveHost = new ReactiveHost<this, Bindings>(\n\t\t\tthis,\n\t\t\t{\n\t\t\t\tdefineProperty: (target, property, descriptor) => Object.defineProperty(target, property, descriptor),\n\t\t\t\tgetBindingTarget: (target) => Object.getPrototypeOf(target) ?? target,\n\t\t\t\thasProperty: (target, property) => property in target,\n\t\t\t\treadProperty: (target, property) => (target as Record<string, unknown>)[property],\n\t\t\t},\n\t\t\t() => this.shouldAutoBindReactiveMembers(),\n\t\t);\n\t\tthis.bindings = this.reactiveHost.bindings;\n\t\tthis.$ = this.reactiveHost.$;\n\t\trunLegacyInstanceInitializers(this);\n\t}\n\n\tpublic get slotProjectionVersion(): number {\n\t\treturn this.renderRuntime?.slotProjectionVersion ?? 0;\n\t}\n\n\tconnectedCallback() {\n\t\trunLegacyPostConstructionInitializers(this);\n\t\tconst isReconnectDuringPendingFirstConnect = this.isFirstConnectPending;\n\n\t\tthis.elementReady = true;\n\n\t\tthis.reactiveHost.connectHost();\n\n\t\tif (isReconnectDuringPendingFirstConnect) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isFirstConnectPending = true;\n\n\t\tqueueMicrotask(() => {\n\t\t\tthis.isFirstConnectPending = false;\n\n\t\t\tif (!this.isConnected) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!this.shouldRunRenderLifecycle()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst renderRuntime = this.getOrCreateRenderRuntime();\n\t\t\trenderRuntime.observeSlotProjection();\n\n\t\t\tif (shouldHydrateOnConnect(this)) {\n\t\t\t\tthis.needsRender = false;\n\t\t\t\tthis.hydrate();\n\n\t\t\t\tif (this.needsRender) {\n\t\t\t\t\tthis.update();\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.update();\n\t\t});\n\t}\n\n\tconnectedContextCallback(_contextName: UnknownContext): void {}\n\n\tdisconnectedCallback() {\n\t\tthis.renderRuntime?.dispose();\n\t\tthis.renderRuntime = undefined;\n\t\tthis.removeAllSubscribedEvents();\n\t\tthis.reactiveHost.disconnectHost();\n\t}\n\n\tpublic notifyUpdate(changedProperty: string, oldValue: unknown, value: unknown) {\n\t\tthis.reactiveHost.notifyUpdate(changedProperty, oldValue, value);\n\t}\n\n\tattributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n\t\tif (oldValue === newValue || !this.elementReady) return;\n\n\t\tthis.reactivePropertyState.applyAttributeChange(name, oldValue, newValue);\n\t}\n\n\t/**\n\t * Renders a trusted HTML template string into the specified target element.\n\t *\n\t * **Security:** The `template` string is written to the DOM via `innerHTML`\n\t * or `insertAdjacentHTML` without built-in sanitization. Callers are\n\t * responsible for ensuring the input is trusted. Supply a `sanitize`\n\t * function to transform the template before insertion.\n\t */\n\tpublic renderTemplate({\n\t\ttarget = this,\n\t\ttemplate,\n\t\tinsert = 'replace',\n\t\tsanitize,\n\t}: {\n\t\ttarget: HTMLElement;\n\t\ttemplate: string;\n\t\tinsert?: RenderInsertPosition;\n\t\tsanitize?: (html: string) => string;\n\t}) {\n\t\tconst html = sanitize ? sanitize(template) : template;\n\t\tswitch (insert) {\n\t\t\tcase 'replace':\n\t\t\t\ttarget.innerHTML = html;\n\t\t\t\tbreak;\n\t\t\tcase 'beforeend':\n\t\t\t\ttarget.insertAdjacentHTML('beforeend', html);\n\t\t\t\tbreak;\n\t\t\tcase 'afterbegin':\n\t\t\t\ttarget.insertAdjacentHTML('afterbegin', html);\n\t\t\t\tbreak;\n\t\t\tcase 'beforebegin':\n\t\t\t\ttarget.insertAdjacentHTML('beforebegin', html);\n\t\t\t\tbreak;\n\t\t\tcase 'afterend':\n\t\t\t\ttarget.insertAdjacentHTML('afterend', html);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tpublic render(): JsxRenderable {\n\t\treturn jsx('slot', {});\n\t}\n\n\tpublic renderViewToString(options: RenderToStringOptions = {}): string {\n\t\tif (!this.shouldRunRenderLifecycle()) {\n\t\t\treturn this.innerHTML;\n\t\t}\n\n\t\trunLegacyPostConstructionInitializers(this);\n\t\tthis.prepareForSsr();\n\n\t\treturn requireRadiantElementSsrRuntime().renderView(this, options);\n\t}\n\n\tpublic hydrate(): void {\n\t\tif (!this.shouldRunRenderLifecycle() || !this.isConnected || this.isRendering) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { renderTarget } = this.resolveRenderSurface();\n\t\tconst renderRuntime = this.getOrCreateRenderRuntime();\n\n\t\tthis.isRendering = true;\n\n\t\ttry {\n\t\t\trenderRuntime.hydrate(renderTarget as HTMLElement);\n\t\t} finally {\n\t\t\tthis.isRendering = false;\n\t\t}\n\t}\n\n\tpublic requestUpdate(): void {\n\t\tif (!this.shouldRunRenderLifecycle()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.needsRender = true;\n\n\t\tif (this.isRenderScheduled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isRenderScheduled = true;\n\n\t\tqueueMicrotask(() => {\n\t\t\tthis.isRenderScheduled = false;\n\n\t\t\tif (!this.needsRender) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.update();\n\t\t});\n\t}\n\n\tpublic update(): void {\n\t\tif (!this.shouldRunRenderLifecycle()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { renderTarget } = this.resolveRenderSurface();\n\t\tconst renderRuntime = this.getOrCreateRenderRuntime();\n\n\t\tthis.needsRender = true;\n\n\t\tif (!this.isConnected || this.isRendering) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isFirstConnectPending && shouldHydrateOnConnect(this)) {\n\t\t\treturn;\n\t\t}\n\n\t\twhile (this.needsRender && this.isConnected) {\n\t\t\tthis.needsRender = false;\n\t\t\tthis.isRendering = true;\n\n\t\t\ttry {\n\t\t\t\trenderRuntime.render(renderTarget as HTMLElement);\n\t\t\t} finally {\n\t\t\t\tthis.isRendering = false;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic registerReactiveProperty(config: ReactiveProperty) {\n\t\tthis.reactivePropertyState.register(config);\n\t}\n\n\tpublic getReactiveProperties(): ReactiveProperty[] {\n\t\treturn this.reactivePropertyState.getAll();\n\t}\n\n\tpublic registerReactiveDependencyReader(property: string, read: () => unknown): void {\n\t\tthis.reactiveHost.registerReactiveDependencyReader(property, read);\n\t}\n\n\tpublic registerContextProvider(name: string, provider: SsrSerializableContextProvider): void {\n\t\tthis.contextProviders.set(name, provider);\n\t\tthis.hydrationBindings.set(name, provider);\n\t}\n\n\tpublic registerHydrationBinding(name: string, binding: SsrSerializableHydrationBinding): void {\n\t\tthis.hydrationBindings.set(name, binding);\n\t}\n\n\tpublic getContextProviders(): SsrSerializableContextProvider[] {\n\t\trunLegacyPostConstructionInitializers(this);\n\t\treturn [...this.contextProviders.values()];\n\t}\n\n\tpublic getHydrationBindings(): SsrSerializableHydrationBinding[] {\n\t\trunLegacyPostConstructionInitializers(this);\n\t\treturn [...this.hydrationBindings.values()];\n\t}\n\n\t/**\n\t * Flushes any deferred SSR-only preparation work before the host is\n\t * serialized.\n\t *\n\t * Radiant uses this to reapply SSR consumer state after construction so the\n\t * first server render sees finalized fields, props, and authored content.\n\t */\n\tprotected prepareForSsr(): void {\n\t\trunSsrPreparationCallbacks(this);\n\t}\n\n\t/**\n\t * Returns the default JSX binding policy for reactive members on this host.\n\t *\n\t * `RadiantElement` hosts default to automatic bindings for reactive members\n\t * when no explicit `bind` option is supplied.\n\t *\n\t * Lower-level hosts can override this hook to opt out when they want binding\n\t * creation to stay fully explicit across `@prop`, `@state`, and direct\n\t * `createReactiveProp`/`createReactiveField` calls.\n\t */\n\tprotected shouldAutoBindReactiveMembers(): boolean {\n\t\treturn true;\n\t}\n\n\tprotected shouldRunRenderLifecycle(): boolean {\n\t\treturn this.render !== RadiantElement.prototype.render;\n\t}\n\n\t/** Returns the DOM root used by client-side render and hydrate work. */\n\tprotected getRenderTarget(): RadiantRenderTarget {\n\t\tif (this.renderRootMode !== 'shadow') {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (this.shadowRoot) {\n\t\t\treturn this.shadowRoot;\n\t\t}\n\n\t\tif (typeof this.attachShadow !== 'function') {\n\t\t\tthrow new Error('RadiantElement shadow render mode requires attachShadow().');\n\t\t}\n\n\t\treturn this.attachShadow({ mode: 'open' });\n\t}\n\n\tpublic registerUpdateCallback(property: string, update: (...rest: any[]) => any): () => void {\n\t\treturn this.reactiveHost.registerUpdateCallback(property, update);\n\t}\n\n\tpublic getReactiveBinding<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValue<ReactiveBindingValue<Bindings, Property>> {\n\t\treturn this.reactiveHost.getReactiveBinding(property);\n\t}\n\n\tpublic bind<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValue<ReactiveBindingValue<Bindings, Property>> {\n\t\treturn this.reactiveHost.getReactiveBinding(property);\n\t}\n\n\tpublic defineReactiveBinding(property: string, bind: ReactiveBindingOption = true): void {\n\t\tthis.reactiveHost.defineReactiveBinding(property, bind);\n\t}\n\n\tpublic trackReactiveRead(property: string): void {\n\t\tthis.reactiveHost.trackReactiveRead(property);\n\t}\n\n\tpublic subscribeEvents(events: RadiantElementEventListener[]): Array<() => void> {\n\t\tconst unsubscribers: Array<() => void> = [];\n\t\tfor (const event of events) {\n\t\t\tunsubscribers.push(this.subscribeEvent(event));\n\t\t}\n\t\treturn unsubscribers;\n\t}\n\n\tpublic subscribeEvent(eventConfig: RadiantElementEventListener): () => void {\n\t\tconst { interactionTarget } = this.resolveRenderSurface();\n\t\tconst delegatedListener = (delegatedEvent: Event) => {\n\t\t\tif (delegatedEvent.target && (delegatedEvent.target as Element).matches(eventConfig.selector)) {\n\t\t\t\teventConfig.listener.call(this, delegatedEvent);\n\t\t\t}\n\t\t};\n\t\tconst subscriptionId = `${eventConfig.type}:${eventConfig.selector}`;\n\t\tinteractionTarget.addEventListener(eventConfig.type, delegatedListener, eventConfig.options);\n\t\tthis.eventSubscriptions.set(subscriptionId, {\n\t\t\t...eventConfig,\n\t\t\tlistener: delegatedListener,\n\t\t\ttarget: interactionTarget,\n\t\t});\n\n\t\treturn this.unsubscribeEvent.bind(this, subscriptionId);\n\t}\n\n\tprivate unsubscribeEvent(id: string): void {\n\t\tconst eventSubscription = this.eventSubscriptions.get(id);\n\t\tif (eventSubscription) {\n\t\t\teventSubscription.target.removeEventListener(\n\t\t\t\teventSubscription.type,\n\t\t\t\teventSubscription.listener,\n\t\t\t\teventSubscription.options,\n\t\t\t);\n\t\t\tthis.eventSubscriptions.delete(id);\n\t\t}\n\t}\n\n\tprivate removeAllSubscribedEvents(): void {\n\t\tfor (const eventSubscription of this.eventSubscriptions.values()) {\n\t\t\teventSubscription.target.removeEventListener(\n\t\t\t\teventSubscription.type,\n\t\t\t\teventSubscription.listener,\n\t\t\t\teventSubscription.options,\n\t\t\t);\n\t\t}\n\t\tthis.eventSubscriptions.clear();\n\t}\n\n\t/**\n\t * Registers a callback that runs on every future disconnect.\n\t */\n\tpublic registerCleanupCallback(callback: () => void): void {\n\t\tthis.reactiveHost.registerCleanupCallback(callback);\n\t}\n\n\t/**\n\t * Registers a callback that runs from `connectedCallback()` on future host\n\t * connections.\n\t *\n\t * Registering after the host is already connected does not invoke the\n\t * callback immediately.\n\t */\n\tpublic registerConnectedCallback(callback: () => void): void {\n\t\tthis.reactiveHost.registerConnectedCallback(callback);\n\t}\n\n\tpublic registerEventEmitter(name: string, emitter: EventEmitter) {\n\t\tthis.eventEmitters.set(name, emitter);\n\t}\n\n\tpublic getRef<T extends Element = Element>(ref: string, all: true): T[];\n\tpublic getRef<T extends Element = Element>(ref: string, all?: false): T | null;\n\tpublic getRef<T extends Element = Element>(ref: string, all = false): T | T[] | null {\n\t\tconst selector = `[data-ref=\"${ref}\"]`;\n\t\tconst { queryRoot } = this.resolveRenderSurface();\n\t\tif (all) {\n\t\t\treturn Array.from(queryRoot.querySelectorAll(selector)) as T[];\n\t\t}\n\t\treturn (queryRoot.querySelector(selector) as T) ?? null;\n\t}\n\n\tpublic getSlotElement<T extends Element = Element>(name?: string): T | null {\n\t\treturn (this.getSlotElements<T>(name)[0] ?? null) as T | null;\n\t}\n\n\tpublic getSlotElements<T extends Element = Element>(name?: string): T[] {\n\t\treturn this.getOrCreateRenderRuntime().getSlotElements<T>(name);\n\t}\n\n\tpublic createReactiveField<T>(propertyName: string, initialValue: T, options: ReactiveFieldOptions = {}): void {\n\t\tthis.reactiveHost.createReactiveField(propertyName, initialValue, options);\n\t}\n\n\t/**\n\t * Defines a reactive custom-element property backed by a Radiant accessor.\n\t *\n\t * When the host was assigned a value before upgrade, that pre-upgrade value is\n\t * preferred over attribute parsing and `defaultValue` so early `.prop = value`\n\t * writes survive into the reactive lifecycle.\n\t */\n\tpublic createReactiveProp<T = unknown>(propertyName: string, options: ReactivePropertyOptions<T>): void {\n\t\tthis.reactivePropertyState.create(\n\t\t\tpropertyName,\n\t\t\toptions,\n\t\t\t(type, attributeKey, defaultValue) => getInitialValue(this, type, attributeKey, defaultValue) as T,\n\t\t\t(name, config) => {\n\t\t\t\tthis.reactiveHost.defineReactiveAccessor(name, config);\n\t\t\t},\n\t\t);\n\t}\n\n\tpublic getSlotProjectionScriptTag(): string | undefined {\n\t\treturn this.getOrCreateRenderRuntime().getSlotProjectionScriptTag();\n\t}\n\n\tpublic getAuthoredHydrationScriptMarkup(): string | undefined {\n\t\treturn this.getOrCreateRenderRuntime().getAuthoredHydrationScriptMarkup();\n\t}\n\n\tpublic resolveTrackedRenderOutput(): { containsSlots: boolean; value: JsxRenderable } {\n\t\treturn this.getOrCreateRenderRuntime().resolveTrackedRenderOutput();\n\t}\n\n\tprivate getOrCreateRenderRuntime() {\n\t\tif (this.renderRuntime) {\n\t\t\treturn this.renderRuntime;\n\t\t}\n\n\t\tthis.renderRuntime = new RenderRuntime(this as RenderRuntimeHost);\n\t\treturn this.renderRuntime;\n\t}\n\n\tprivate resolveRenderSurface(): RadiantRenderSurface {\n\t\tconst renderTarget = this.getRenderTarget();\n\t\tconst interactionTarget = renderTarget instanceof ShadowRoot ? renderTarget : this;\n\n\t\treturn {\n\t\t\tinteractionTarget,\n\t\t\tqueryRoot: interactionTarget,\n\t\t\trenderTarget,\n\t\t};\n\t}\n}\n\nfunction requireRadiantElementSsrRuntime() {\n\tconst runtime = getRadiantElementSsrRuntime();\n\n\tif (!runtime) {\n\t\tthrow new Error('Radiant SSR runtime unavailable. Import `@ecopages/radiant/server/render-component` first.');\n\t}\n\n\treturn runtime;\n}\n\nfunction shouldHydrateOnConnect(component: HTMLElement): boolean {\n\treturn isRadiantHydratorInstalled() && hasHydrationMarkers(component);\n}\n\nclass ReactivePropertyState {\n\tprivate readonly properties = new Map<string, ReactiveProperty>();\n\tprivate readonly preUpgradePropertyValues = new Map<string, unknown>();\n\n\tconstructor(private readonly host: ReactivePropertyStateHost) {\n\t\tfor (const propertyName of Object.getOwnPropertyNames(host)) {\n\t\t\tthis.preUpgradePropertyValues.set(propertyName, Reflect.get(host, propertyName));\n\t\t}\n\t}\n\n\tpublic register(config: ReactiveProperty): void {\n\t\tthis.properties.set(config.name, config);\n\t}\n\n\tpublic getAll(): ReactiveProperty[] {\n\t\treturn Array.from(this.properties.values());\n\t}\n\n\tpublic applyAttributeChange(name: string, oldValue: string | null, newValue: string | null): void {\n\t\tconst config = this.properties.get(name);\n\n\t\tif (!config) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst transformedValue = this.transformAttributeValue(newValue, config);\n\t\tconst transformedOldValue = this.transformAttributeValue(oldValue, config);\n\n\t\tReflect.set(this.host, config.attribute, transformedValue);\n\t\tthis.host.notifyUpdate(name, transformedOldValue, transformedValue);\n\t}\n\n\tpublic create<T>(\n\t\tpropertyName: string,\n\t\toptions: ReactivePropertyOptions<T>,\n\t\tresolveInitialValue: (type: AttributeTypeConstant, attributeKey: string, defaultValue: unknown) => T,\n\t\tdefineReactiveAccessor: (propertyName: string, config: ReactiveAccessorDefinition<T>) => void,\n\t): void {\n\t\tconst { type, attribute, reflect, defaultValue } = options;\n\t\tconst attributeKey = attribute ?? propertyName;\n\t\tconst hasPreUpgradeValue = this.preUpgradePropertyValues.has(propertyName);\n\t\tconst preUpgradeValue = hasPreUpgradeValue ? (this.preUpgradePropertyValues.get(propertyName) as T) : undefined;\n\n\t\tvalidateReactivePropertyDefault(type, defaultValue);\n\n\t\tconst initialValue: T | undefined = hasPreUpgradeValue\n\t\t\t? preUpgradeValue\n\t\t\t: resolveInitialValue(type, attributeKey, defaultValue);\n\n\t\tif (this.host.hasAttribute(attributeKey) && (!reflect || initialValue == null || initialValue === '')) {\n\t\t\tthis.host.removeAttribute(attributeKey);\n\t\t}\n\n\t\tif (hasPreUpgradeValue && Object.prototype.hasOwnProperty.call(this.host, propertyName)) {\n\t\t\tReflect.deleteProperty(this.host, propertyName);\n\t\t}\n\n\t\tconst propertyMapping = createReactivePropertyMapping(propertyName, attributeKey, type, initialValue);\n\n\t\tthis.register(propertyMapping);\n\n\t\tdefineReactiveAccessor(propertyName, {\n\t\t\tbind: options.bind,\n\t\t\tgetValue: () => this.properties.get(propertyName)?.value as T | undefined,\n\t\t\tsetValue: (newValue: T) => {\n\t\t\t\tthis.properties.set(propertyName, { ...propertyMapping, value: newValue });\n\t\t\t\tthis.reflectValue(attributeKey, reflect, propertyMapping, newValue);\n\t\t\t},\n\t\t});\n\n\t\tif (initialValue !== undefined) {\n\t\t\tqueueMicrotask(() => {\n\t\t\t\tconst currentValue = this.properties.get(propertyName)?.value as T | undefined;\n\t\t\t\tif (currentValue === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.reflectValue(attributeKey, reflect, propertyMapping, currentValue);\n\t\t\t\tthis.host.notifyUpdate(propertyName, undefined, currentValue);\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate transformAttributeValue(value: string | null, config: ReactiveProperty): unknown {\n\t\treturn value !== null ? config.converter.fromAttribute(value) : value;\n\t}\n\n\tprivate reflectValue<T>(\n\t\tattributeKey: string,\n\t\treflect: boolean | undefined,\n\t\tproperty: ReactiveProperty<T>,\n\t\tvalue: T,\n\t): void {\n\t\tif (!reflect) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (value == null || value === '' || value === false) {\n\t\t\tthis.host.removeAttribute(attributeKey);\n\t\t\treturn;\n\t\t}\n\n\t\tconst attributeValue = property.converter.toAttribute(value);\n\t\tthis.host.setAttribute(attributeKey, attributeValue);\n\t}\n}\n"
|
|
19
|
+
"import type { EventEmitter } from '../tools';\nimport { hasHydrationMarkers, jsx, type JsxRenderable, type SubscribableJsxValue } from '@ecopages/jsx';\nimport type { RenderToStringOptions } from '@ecopages/jsx/server';\nimport type { SsrSerializableContextProvider } from '../context/context-provider';\nimport type { UnknownContext } from '../context/types';\nimport {\n\trunLegacyInstanceInitializers,\n\trunLegacyPostConstructionInitializers,\n} from '../decorators/legacy/instance-initializers';\nimport {\n\tcreateReactivePropertyMapping,\n\ttype ReactiveAccessorDefinition,\n\ttype ReactiveBindingOption,\n\ttype ReactiveBindingValue,\n\ttype ReactiveBindings,\n\ttype ReactiveFieldOptions,\n\ttype ReactiveProperty,\n\ttype ReactivePropertyOptions,\n\tvalidateReactivePropertyDefault,\n} from './reactive-prop-core';\nimport { RenderRuntime, type RenderRuntimeHost } from './render-runtime';\nimport type { SsrSerializableHydrationBinding } from './ssr-hydration-binding';\nimport { ReactiveHost } from './reactive-host';\nimport { runSsrPreparationCallbacks } from './ssr-preparation';\nimport { isRadiantHydratorInstalled } from './radiant-hydrator-state';\nimport { getRadiantElementSsrRuntime } from './radiant-element-ssr-registry';\nimport { type AttributeTypeConstant, getInitialValue } from '../utils/attribute-utils';\n\nexport type {\n\tReactiveBindingOption,\n\tReactiveBindingValue,\n\tReactiveBindings,\n\tReactiveField,\n\tReactiveFieldOptions,\n\tReactiveProperty,\n\tReactivePropertyOptions,\n} from './reactive-prop-core';\n\nconst RadiantElementBase = resolveRadiantElementBase();\n\ntype RadiantRenderTarget = HTMLElement | ShadowRoot;\ntype RadiantInteractionTarget = HTMLElement | ShadowRoot;\ntype RadiantRenderSurface = {\n\trenderTarget: RadiantRenderTarget;\n\tinteractionTarget: RadiantInteractionTarget;\n\tqueryRoot: ParentNode;\n};\ntype ReactivePropertyStateHost = HTMLElement & {\n\tnotifyUpdate(changedProperty: string, oldValue: unknown, value: unknown): void;\n};\n\nfunction resolveRadiantElementBase(): typeof HTMLElement {\n\tif (typeof HTMLElement !== 'undefined') {\n\t\treturn HTMLElement;\n\t}\n\n\tthrow new Error(\n\t\t\"RadiantElement requires HTMLElement. Install '@ecopages/radiant/server/light-dom-shim' before SSR imports.\",\n\t);\n}\n\n/**\n * Possible positions to insert a rendered template.\n */\nexport type RenderInsertPosition = 'replace' | 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend';\n\n/**\n * Represents a Radiant element event listener.\n */\nexport type RadiantElementEventListener = {\n\tselector: string;\n\ttype: string;\n\tlistener: EventListener;\n\toptions?: AddEventListenerOptions;\n};\n\ntype RadiantElementEventSubscription = RadiantElementEventListener & {\n\ttarget: EventTarget;\n};\n\ntype StringPropertyKey<Value> = Extract<keyof Value, string>;\n\n/**\n * Represents an interface for a Radiant element.\n * @typeParam Bindings - Explicit internal bindable shape used to type `bind()` and `getReactiveBinding()`.\n *\n * This shape describes which reactive members are exposed through `bindings`,\n * `$`, and `bind(...)`. It does not automatically define the public JSX\n * attribute contract for the custom element.\n */\nexport interface IRadiantElement<Bindings extends object = {}> {\n\t/**\n\t * Namespace of cached JSX bindings keyed by the explicit bindable shape.\n\t */\n\treadonly bindings: ReactiveBindings<Bindings>;\n\n\t/**\n\t * Short alias for {@link bindings}.\n\t */\n\treadonly $: ReactiveBindings<Bindings>;\n\n\t/**\n\t * Called when a property of the element is updated.\n\t * @param changedProperty - The name of the changed property.\n\t * @param oldValue - The old value of the property.\n\t * @param newValue - The new value of the property.\n\t */\n\tnotifyUpdate(changedProperty: string, oldValue: unknown, newValue: unknown): void;\n\n\t/**\n\t * Subscribes to a Radiant element event.\n\t * @param event - The event listener to subscribe to.\n\t */\n\tsubscribeEvent(event: RadiantElementEventListener): void;\n\n\t/**\n\t * Registers a callback to be invoked when a reactive property or field changes.\n\t *\n\t * @returns A cleanup function that unregisters the callback.\n\t */\n\tregisterUpdateCallback(property: string, update: (...rest: any[]) => any): () => void;\n\n\t/**\n\t * Returns a subscribable JSX child binding for a reactive property or field.\n\t *\n\t * Prefer `this.bindings.key` or `this.$.key` in JSX render code when you want\n\t * property access syntax without string literals.\n\t */\n\tbind<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValue<ReactiveBindingValue<Bindings, Property>>;\n\n\t/**\n\t * Returns a subscribable JSX child binding for a reactive property or field.\n\t *\n\t * This is the primitive lookup used by `bind()`, `bindings.key`, and `$.key`.\n\t */\n\tgetReactiveBinding<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValue<ReactiveBindingValue<Bindings, Property>>;\n\n\t/**\n\t * Defines a stable JSX binding companion accessor for a reactive member.\n\t *\n\t * Companion bindings create properties such as `$count` directly on the host.\n\t * Prefer the `bindings` or `$` namespace for new code when you want typed,\n\t * explicit access to the configured bindable shape.\n\t */\n\tdefineReactiveBinding(property: string, bind?: ReactiveBindingOption): void;\n\n\t/**\n\t * Subscribes to multiple Radiant element events.\n\t * @param events - The array of event listeners to subscribe to.\n\t */\n\tsubscribeEvents(events: RadiantElementEventListener[]): void;\n\n\t/**\n\t * It adds a callback to be executed when the Radiant element is disconnected from the DOM.\n\t */\n\tregisterCleanupCallback(callback: () => void): void;\n\n\t/**\n\t * Registers a callback to run on each future host connection.\n\t *\n\t * The callback is only invoked from `connectedCallback()`. Registering it\n\t * after the host is already connected does not invoke it immediately.\n\t */\n\tregisterConnectedCallback(callback: () => void): void;\n\n\t/**\n\t * Registers a raw value reader for a reactive member so that tracked render\n\t * dependencies can read the underlying value without triggering the public\n\t * getter's dependency tracking.\n\t */\n\tregisterReactiveDependencyReader(property: string, read: () => unknown): void;\n\n\t/**\n\t * Records a tracked read of a reactive member during a component render,\n\t * allowing the signals runtime to re-render only the affected parts.\n\t */\n\ttrackReactiveRead(property: string): void;\n\n\t/**\n\t * Renders a trusted HTML template string into the specified target element.\n\t *\n\t * **Security:** The `template` string is written to the DOM via `innerHTML`\n\t * or `insertAdjacentHTML` without built-in sanitization. Callers are\n\t * responsible for ensuring the input is trusted. Supply a `sanitize`\n\t * function to transform the template before insertion.\n\t *\n\t * @param options - The rendering options.\n\t * @param options.target - The target element to render the template into.\n\t * @param options.template - The template string to render.\n\t * @param options.insert - The position to insert the rendered template. (optional)\n\t * @param options.sanitize - An optional function that transforms the template string before insertion.\n\t */\n\trenderTemplate(options: {\n\t\ttarget: HTMLElement;\n\t\ttemplate: string;\n\t\tinsert?: RenderInsertPosition;\n\t\tsanitize?: (html: string) => string;\n\t}): void;\n\n\t/**\n\t * Called when the Radiant element is connected to a context.\n\t * @param context - The connected context.\n\t */\n\tconnectedContextCallback(context: UnknownContext): void;\n\n\t/**\n\t * Gets a reference to a child element by its data-ref attribute.\n\t * @param ref - The data-ref attribute value of the element to get.\n\t * @param all - Whether to get all elements with the specified data-ref attribute value.\n\t * @returns The element with the specified data-ref attribute value, an array of elements or null if no element was found.\n\t */\n\tgetRef<T extends Element = Element>(ref: string, all: true): T[];\n\tgetRef<T extends Element = Element>(ref: string, all?: false): T | null;\n}\n\n/**\n * A base class for creating custom elements with reactive properties and event subscriptions.\n * @typeParam Bindings - Explicit internal bindable shape. Include only the\n * prop/state keys that JSX bindings should accept.\n *\n * Prefer a separate public props type for custom-element JSX declarations when\n * the external attribute contract differs from the component's internal\n * reactive state. Reuse the same type only when the public props and bindable\n * members are intentionally identical.\n * @extends HTMLElement\n * @implements IRadiantElement<Bindings>\n */\nexport class RadiantElement<Bindings extends object = {}>\n\textends RadiantElementBase\n\timplements IRadiantElement<Bindings>\n{\n\t/**\n\t * Controls where the JSX render lifecycle mounts the component view.\n\t *\n\t * Subclasses can override this with `'shadow'` to force an internal open\n\t * shadow root for client-side rendering. Host SSR helpers remain light-DOM\n\t * only and throw when shadow render mode is enabled.\n\t */\n\tprotected readonly renderRootMode: 'light' | 'shadow' = 'light';\n\tpublic readonly bindings: ReactiveBindings<Bindings>;\n\tpublic readonly $: ReactiveBindings<Bindings>;\n\tprivate readonly reactiveHost: ReactiveHost<this, Bindings>;\n\tprivate readonly reactivePropertyState: ReactivePropertyState;\n\n\t/**\n\t * Registered context providers keyed by decorated property name.\n\t */\n\tprivate contextProviders = new Map<string, SsrSerializableContextProvider>();\n\n\t/**\n\t * Registered keyed hydration payload producers appended to SSR host output.\n\t */\n\tprivate hydrationBindings = new Map<string, SsrSerializableHydrationBinding>();\n\n\t/**\n\t * A map of event subscriptions used to manage event listeners on the Radiant element.\n\t */\n\tprivate eventSubscriptions = new Map<string, RadiantElementEventSubscription>();\n\n\t/**\n\t * A map for event emitters\n\t */\n\tprivate eventEmitters = new Map<string, EventEmitter>();\n\n\t/**\n\t * A flag indicating whether the element has been connected to the DOM.\n\t */\n\tprivate elementReady = false;\n\tprivate isRendering = false;\n\tprivate isFirstConnectPending = false;\n\tprivate isRenderScheduled = false;\n\tprivate needsRender = false;\n\tprivate renderRuntime?: RenderRuntime;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.reactivePropertyState = new ReactivePropertyState(this);\n\n\t\tthis.reactiveHost = new ReactiveHost<this, Bindings>(\n\t\t\tthis,\n\t\t\t{\n\t\t\t\tdefineProperty: (target, property, descriptor) => Object.defineProperty(target, property, descriptor),\n\t\t\t\tgetBindingTarget: (target) => Object.getPrototypeOf(target) ?? target,\n\t\t\t\thasProperty: (target, property) => property in target,\n\t\t\t\treadProperty: (target, property) => (target as Record<string, unknown>)[property],\n\t\t\t},\n\t\t\t() => this.shouldAutoBindReactiveMembers(),\n\t\t);\n\t\tthis.bindings = this.reactiveHost.bindings;\n\t\tthis.$ = this.reactiveHost.$;\n\t\trunLegacyInstanceInitializers(this);\n\t}\n\n\tpublic get slotProjectionVersion(): number {\n\t\treturn this.renderRuntime?.slotProjectionVersion ?? 0;\n\t}\n\n\tconnectedCallback() {\n\t\trunLegacyPostConstructionInitializers(this);\n\t\tconst isReconnectDuringPendingFirstConnect = this.isFirstConnectPending;\n\n\t\tthis.elementReady = true;\n\n\t\tthis.reactiveHost.connectHost();\n\n\t\tif (isReconnectDuringPendingFirstConnect) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isFirstConnectPending = true;\n\n\t\tqueueMicrotask(() => {\n\t\t\tthis.isFirstConnectPending = false;\n\n\t\t\tif (!this.isConnected) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!this.shouldRunRenderLifecycle()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst renderRuntime = this.getOrCreateRenderRuntime();\n\t\t\trenderRuntime.observeSlotProjection();\n\n\t\t\tif (shouldHydrateOnConnect(this)) {\n\t\t\t\tthis.needsRender = false;\n\t\t\t\tthis.hydrate();\n\n\t\t\t\tif (this.needsRender) {\n\t\t\t\t\tthis.update();\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.update();\n\t\t});\n\t}\n\n\tconnectedContextCallback(_contextName: UnknownContext): void {}\n\n\tdisconnectedCallback() {\n\t\tthis.renderRuntime?.dispose();\n\t\tthis.renderRuntime = undefined;\n\t\tthis.removeAllSubscribedEvents();\n\t\tthis.reactiveHost.disconnectHost();\n\t}\n\n\tpublic notifyUpdate(changedProperty: string, oldValue: unknown, value: unknown) {\n\t\tthis.reactiveHost.notifyUpdate(changedProperty, oldValue, value);\n\t}\n\n\tattributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n\t\tif (oldValue === newValue || !this.elementReady) return;\n\n\t\tthis.reactivePropertyState.applyAttributeChange(name, oldValue, newValue);\n\t}\n\n\t/**\n\t * Renders a trusted HTML template string into the specified target element.\n\t *\n\t * **Security:** The `template` string is written to the DOM via `innerHTML`\n\t * or `insertAdjacentHTML` without built-in sanitization. Callers are\n\t * responsible for ensuring the input is trusted. Supply a `sanitize`\n\t * function to transform the template before insertion.\n\t */\n\tpublic renderTemplate({\n\t\ttarget = this,\n\t\ttemplate,\n\t\tinsert = 'replace',\n\t\tsanitize,\n\t}: {\n\t\ttarget: HTMLElement;\n\t\ttemplate: string;\n\t\tinsert?: RenderInsertPosition;\n\t\tsanitize?: (html: string) => string;\n\t}) {\n\t\tconst html = sanitize ? sanitize(template) : template;\n\t\tswitch (insert) {\n\t\t\tcase 'replace':\n\t\t\t\ttarget.innerHTML = html;\n\t\t\t\tbreak;\n\t\t\tcase 'beforeend':\n\t\t\t\ttarget.insertAdjacentHTML('beforeend', html);\n\t\t\t\tbreak;\n\t\t\tcase 'afterbegin':\n\t\t\t\ttarget.insertAdjacentHTML('afterbegin', html);\n\t\t\t\tbreak;\n\t\t\tcase 'beforebegin':\n\t\t\t\ttarget.insertAdjacentHTML('beforebegin', html);\n\t\t\t\tbreak;\n\t\t\tcase 'afterend':\n\t\t\t\ttarget.insertAdjacentHTML('afterend', html);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tpublic render(): JsxRenderable {\n\t\treturn jsx('slot', {});\n\t}\n\n\tpublic renderViewToString(options: RenderToStringOptions = {}): string {\n\t\tif (!this.shouldRunRenderLifecycle()) {\n\t\t\treturn this.innerHTML;\n\t\t}\n\n\t\trunLegacyPostConstructionInitializers(this);\n\t\tthis.prepareForSsr();\n\n\t\treturn requireRadiantElementSsrRuntime().renderView(this, options);\n\t}\n\n\tpublic hydrate(): void {\n\t\tif (!this.shouldRunRenderLifecycle() || !this.isConnected || this.isRendering) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { renderTarget } = this.resolveRenderSurface();\n\t\tconst renderRuntime = this.getOrCreateRenderRuntime();\n\n\t\tthis.isRendering = true;\n\n\t\ttry {\n\t\t\trenderRuntime.hydrate(renderTarget as HTMLElement);\n\t\t} finally {\n\t\t\tthis.isRendering = false;\n\t\t}\n\t}\n\n\tpublic requestUpdate(): void {\n\t\tif (!this.shouldRunRenderLifecycle()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.needsRender = true;\n\n\t\tif (this.isRenderScheduled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isRenderScheduled = true;\n\n\t\tqueueMicrotask(() => {\n\t\t\tthis.isRenderScheduled = false;\n\n\t\t\tif (!this.needsRender) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.update();\n\t\t});\n\t}\n\n\tpublic update(): void {\n\t\tif (!this.shouldRunRenderLifecycle()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { renderTarget } = this.resolveRenderSurface();\n\t\tconst renderRuntime = this.getOrCreateRenderRuntime();\n\n\t\tthis.needsRender = true;\n\n\t\tif (!this.isConnected || this.isRendering) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isFirstConnectPending && shouldHydrateOnConnect(this)) {\n\t\t\treturn;\n\t\t}\n\n\t\twhile (this.needsRender && this.isConnected) {\n\t\t\tthis.needsRender = false;\n\t\t\tthis.isRendering = true;\n\n\t\t\ttry {\n\t\t\t\trenderRuntime.render(renderTarget as HTMLElement);\n\t\t\t} finally {\n\t\t\t\tthis.isRendering = false;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic registerReactiveProperty(config: ReactiveProperty) {\n\t\tthis.reactivePropertyState.register(config);\n\t}\n\n\tpublic getReactiveProperties(): ReactiveProperty[] {\n\t\treturn this.reactivePropertyState.getAll();\n\t}\n\n\tpublic registerReactiveDependencyReader(property: string, read: () => unknown): void {\n\t\tthis.reactiveHost.registerReactiveDependencyReader(property, read);\n\t}\n\n\tpublic registerContextProvider(name: string, provider: SsrSerializableContextProvider): void {\n\t\tthis.contextProviders.set(name, provider);\n\t\tthis.hydrationBindings.set(name, provider);\n\t}\n\n\tpublic registerHydrationBinding(name: string, binding: SsrSerializableHydrationBinding): void {\n\t\tthis.hydrationBindings.set(name, binding);\n\t}\n\n\tpublic getContextProviders(): SsrSerializableContextProvider[] {\n\t\trunLegacyPostConstructionInitializers(this);\n\t\treturn [...this.contextProviders.values()];\n\t}\n\n\tpublic getHydrationBindings(): SsrSerializableHydrationBinding[] {\n\t\trunLegacyPostConstructionInitializers(this);\n\t\treturn [...this.hydrationBindings.values()];\n\t}\n\n\t/**\n\t * Flushes any deferred SSR-only preparation work before the host is\n\t * serialized.\n\t *\n\t * Radiant uses this to reapply SSR consumer state after construction so the\n\t * first server render sees finalized fields, props, and authored content.\n\t */\n\tprotected prepareForSsr(): void {\n\t\trunSsrPreparationCallbacks(this);\n\t}\n\n\t/**\n\t * Returns the default JSX binding policy for reactive members on this host.\n\t *\n\t * `RadiantElement` hosts default to automatic bindings for reactive members\n\t * when no explicit `bind` option is supplied.\n\t *\n\t * Lower-level hosts can override this hook to opt out when they want binding\n\t * creation to stay fully explicit across `@prop`, `@state`, and direct\n\t * `createReactiveProp`/`createReactiveField` calls.\n\t */\n\tprotected shouldAutoBindReactiveMembers(): boolean {\n\t\treturn true;\n\t}\n\n\tprotected shouldRunRenderLifecycle(): boolean {\n\t\treturn this.render !== RadiantElement.prototype.render;\n\t}\n\n\t/** Returns the DOM root used by client-side render and hydrate work. */\n\tprotected getRenderTarget(): RadiantRenderTarget {\n\t\tif (this.renderRootMode !== 'shadow') {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (this.shadowRoot) {\n\t\t\treturn this.shadowRoot;\n\t\t}\n\n\t\tif (typeof this.attachShadow !== 'function') {\n\t\t\tthrow new Error('RadiantElement shadow render mode requires attachShadow().');\n\t\t}\n\n\t\treturn this.attachShadow({ mode: 'open' });\n\t}\n\n\tpublic registerUpdateCallback(property: string, update: (...rest: any[]) => any): () => void {\n\t\treturn this.reactiveHost.registerUpdateCallback(property, update);\n\t}\n\n\tpublic getReactiveBinding<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValue<ReactiveBindingValue<Bindings, Property>> {\n\t\treturn this.reactiveHost.getReactiveBinding(property);\n\t}\n\n\tpublic bind<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValue<ReactiveBindingValue<Bindings, Property>> {\n\t\treturn this.reactiveHost.getReactiveBinding(property);\n\t}\n\n\tpublic defineReactiveBinding(property: string, bind: ReactiveBindingOption = true): void {\n\t\tthis.reactiveHost.defineReactiveBinding(property, bind);\n\t}\n\n\tpublic trackReactiveRead(property: string): void {\n\t\tthis.reactiveHost.trackReactiveRead(property);\n\t}\n\n\tpublic subscribeEvents(events: RadiantElementEventListener[]): Array<() => void> {\n\t\tconst unsubscribers: Array<() => void> = [];\n\t\tfor (const event of events) {\n\t\t\tunsubscribers.push(this.subscribeEvent(event));\n\t\t}\n\t\treturn unsubscribers;\n\t}\n\n\tpublic subscribeEvent(eventConfig: RadiantElementEventListener): () => void {\n\t\tconst { interactionTarget } = this.resolveRenderSurface();\n\t\tconst delegatedListener = (delegatedEvent: Event) => {\n\t\t\tif (delegatedEvent.target && (delegatedEvent.target as Element).matches(eventConfig.selector)) {\n\t\t\t\teventConfig.listener.call(this, delegatedEvent);\n\t\t\t}\n\t\t};\n\t\tconst subscriptionId = `${eventConfig.type}:${eventConfig.selector}`;\n\t\tinteractionTarget.addEventListener(eventConfig.type, delegatedListener, eventConfig.options);\n\t\tthis.eventSubscriptions.set(subscriptionId, {\n\t\t\t...eventConfig,\n\t\t\tlistener: delegatedListener,\n\t\t\ttarget: interactionTarget,\n\t\t});\n\n\t\treturn this.unsubscribeEvent.bind(this, subscriptionId);\n\t}\n\n\tprivate unsubscribeEvent(id: string): void {\n\t\tconst eventSubscription = this.eventSubscriptions.get(id);\n\t\tif (eventSubscription) {\n\t\t\teventSubscription.target.removeEventListener(\n\t\t\t\teventSubscription.type,\n\t\t\t\teventSubscription.listener,\n\t\t\t\teventSubscription.options,\n\t\t\t);\n\t\t\tthis.eventSubscriptions.delete(id);\n\t\t}\n\t}\n\n\tprivate removeAllSubscribedEvents(): void {\n\t\tfor (const eventSubscription of this.eventSubscriptions.values()) {\n\t\t\teventSubscription.target.removeEventListener(\n\t\t\t\teventSubscription.type,\n\t\t\t\teventSubscription.listener,\n\t\t\t\teventSubscription.options,\n\t\t\t);\n\t\t}\n\t\tthis.eventSubscriptions.clear();\n\t}\n\n\t/**\n\t * Registers a callback that runs on every future disconnect.\n\t */\n\tpublic registerCleanupCallback(callback: () => void): void {\n\t\tthis.reactiveHost.registerCleanupCallback(callback);\n\t}\n\n\t/**\n\t * Registers a callback that runs from `connectedCallback()` on future host\n\t * connections.\n\t *\n\t * Registering after the host is already connected does not invoke the\n\t * callback immediately.\n\t */\n\tpublic registerConnectedCallback(callback: () => void): void {\n\t\tthis.reactiveHost.registerConnectedCallback(callback);\n\t}\n\n\tpublic registerEventEmitter(name: string, emitter: EventEmitter) {\n\t\tthis.eventEmitters.set(name, emitter);\n\t}\n\n\tpublic getRef<T extends Element = Element>(ref: string, all: true): T[];\n\tpublic getRef<T extends Element = Element>(ref: string, all?: false): T | null;\n\tpublic getRef<T extends Element = Element>(ref: string, all = false): T | T[] | null {\n\t\tconst selector = `[data-ref=\"${ref}\"]`;\n\t\tconst { queryRoot } = this.resolveRenderSurface();\n\t\tif (all) {\n\t\t\treturn Array.from(queryRoot.querySelectorAll(selector)) as T[];\n\t\t}\n\t\treturn (queryRoot.querySelector(selector) as T) ?? null;\n\t}\n\n\tpublic getSlotElement<T extends Element = Element>(name?: string): T | null {\n\t\treturn (this.getSlotElements<T>(name)[0] ?? null) as T | null;\n\t}\n\n\tpublic getSlotElements<T extends Element = Element>(name?: string): T[] {\n\t\treturn this.getOrCreateRenderRuntime().getSlotElements<T>(name);\n\t}\n\n\tpublic createReactiveField<T>(propertyName: string, initialValue: T, options: ReactiveFieldOptions = {}): void {\n\t\tthis.reactiveHost.createReactiveField(propertyName, initialValue, options);\n\t}\n\n\t/**\n\t * Defines a reactive custom-element property backed by a Radiant accessor.\n\t *\n\t * When the host was assigned a value before upgrade, that pre-upgrade value is\n\t * preferred over attribute parsing and `defaultValue` so early `.prop = value`\n\t * writes survive into the reactive lifecycle.\n\t */\n\tpublic createReactiveProp<T = unknown>(propertyName: string, options: ReactivePropertyOptions<T>): void {\n\t\tthis.reactivePropertyState.create(\n\t\t\tpropertyName,\n\t\t\toptions,\n\t\t\t(type, attributeKey, defaultValue) => getInitialValue(this, type, attributeKey, defaultValue) as T,\n\t\t\t(name, config) => {\n\t\t\t\tthis.reactiveHost.defineReactiveAccessor(name, config);\n\t\t\t},\n\t\t);\n\t}\n\n\tpublic getSlotProjectionScriptTag(): string | undefined {\n\t\treturn this.getOrCreateRenderRuntime().getSlotProjectionScriptTag();\n\t}\n\n\tpublic getAuthoredHydrationScriptMarkup(): string | undefined {\n\t\treturn this.getOrCreateRenderRuntime().getAuthoredHydrationScriptMarkup();\n\t}\n\n\tpublic resolveTrackedRenderOutput(): { containsSlots: boolean; value: JsxRenderable } {\n\t\treturn this.getOrCreateRenderRuntime().resolveTrackedRenderOutput();\n\t}\n\n\tprivate getOrCreateRenderRuntime() {\n\t\tif (this.renderRuntime) {\n\t\t\treturn this.renderRuntime;\n\t\t}\n\n\t\tthis.renderRuntime = new RenderRuntime(this as RenderRuntimeHost);\n\t\treturn this.renderRuntime;\n\t}\n\n\tprivate resolveRenderSurface(): RadiantRenderSurface {\n\t\tconst renderTarget = this.getRenderTarget();\n\t\tconst interactionTarget =\n\t\t\ttypeof ShadowRoot !== 'undefined' && renderTarget instanceof ShadowRoot ? renderTarget : this;\n\n\t\treturn {\n\t\t\tinteractionTarget,\n\t\t\tqueryRoot: interactionTarget,\n\t\t\trenderTarget,\n\t\t};\n\t}\n}\n\nfunction requireRadiantElementSsrRuntime() {\n\tconst runtime = getRadiantElementSsrRuntime();\n\n\tif (!runtime) {\n\t\tthrow new Error('Radiant SSR runtime unavailable. Import `@ecopages/radiant/server/render-component` first.');\n\t}\n\n\treturn runtime;\n}\n\nfunction shouldHydrateOnConnect(component: HTMLElement): boolean {\n\treturn isRadiantHydratorInstalled() && hasHydrationMarkers(component);\n}\n\nclass ReactivePropertyState {\n\tprivate readonly properties = new Map<string, ReactiveProperty>();\n\tprivate readonly preUpgradePropertyValues = new Map<string, unknown>();\n\n\tconstructor(private readonly host: ReactivePropertyStateHost) {\n\t\tfor (const propertyName of Object.getOwnPropertyNames(host)) {\n\t\t\tthis.preUpgradePropertyValues.set(propertyName, Reflect.get(host, propertyName));\n\t\t}\n\t}\n\n\tpublic register(config: ReactiveProperty): void {\n\t\tthis.properties.set(config.name, config);\n\t}\n\n\tpublic getAll(): ReactiveProperty[] {\n\t\treturn Array.from(this.properties.values());\n\t}\n\n\tpublic applyAttributeChange(name: string, oldValue: string | null, newValue: string | null): void {\n\t\tconst config = this.properties.get(name);\n\n\t\tif (!config) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst transformedValue = this.transformAttributeValue(newValue, config);\n\t\tconst transformedOldValue = this.transformAttributeValue(oldValue, config);\n\n\t\tReflect.set(this.host, config.attribute, transformedValue);\n\t\tthis.host.notifyUpdate(name, transformedOldValue, transformedValue);\n\t}\n\n\tpublic create<T>(\n\t\tpropertyName: string,\n\t\toptions: ReactivePropertyOptions<T>,\n\t\tresolveInitialValue: (type: AttributeTypeConstant, attributeKey: string, defaultValue: unknown) => T,\n\t\tdefineReactiveAccessor: (propertyName: string, config: ReactiveAccessorDefinition<T>) => void,\n\t): void {\n\t\tconst { type, attribute, reflect, defaultValue } = options;\n\t\tconst attributeKey = attribute ?? propertyName;\n\t\tconst hasPreUpgradeValue = this.preUpgradePropertyValues.has(propertyName);\n\t\tconst preUpgradeValue = hasPreUpgradeValue ? (this.preUpgradePropertyValues.get(propertyName) as T) : undefined;\n\n\t\tvalidateReactivePropertyDefault(type, defaultValue);\n\n\t\tconst initialValue: T | undefined = hasPreUpgradeValue\n\t\t\t? preUpgradeValue\n\t\t\t: resolveInitialValue(type, attributeKey, defaultValue);\n\n\t\tif (this.host.hasAttribute(attributeKey) && (!reflect || initialValue == null || initialValue === '')) {\n\t\t\tthis.host.removeAttribute(attributeKey);\n\t\t}\n\n\t\tif (hasPreUpgradeValue && Object.prototype.hasOwnProperty.call(this.host, propertyName)) {\n\t\t\tReflect.deleteProperty(this.host, propertyName);\n\t\t}\n\n\t\tconst propertyMapping = createReactivePropertyMapping(propertyName, attributeKey, type, initialValue);\n\n\t\tthis.register(propertyMapping);\n\n\t\tdefineReactiveAccessor(propertyName, {\n\t\t\tbind: options.bind,\n\t\t\tgetValue: () => this.properties.get(propertyName)?.value as T | undefined,\n\t\t\tsetValue: (newValue: T) => {\n\t\t\t\tthis.properties.set(propertyName, { ...propertyMapping, value: newValue });\n\t\t\t\tthis.reflectValue(attributeKey, reflect, propertyMapping, newValue);\n\t\t\t},\n\t\t});\n\n\t\tif (initialValue !== undefined) {\n\t\t\tqueueMicrotask(() => {\n\t\t\t\tconst currentValue = this.properties.get(propertyName)?.value as T | undefined;\n\t\t\t\tif (currentValue === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.reflectValue(attributeKey, reflect, propertyMapping, currentValue);\n\t\t\t\tthis.host.notifyUpdate(propertyName, undefined, currentValue);\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate transformAttributeValue(value: string | null, config: ReactiveProperty): unknown {\n\t\treturn value !== null ? config.converter.fromAttribute(value) : value;\n\t}\n\n\tprivate reflectValue<T>(\n\t\tattributeKey: string,\n\t\treflect: boolean | undefined,\n\t\tproperty: ReactiveProperty<T>,\n\t\tvalue: T,\n\t): void {\n\t\tif (!reflect) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (value == null || value === '' || value === false) {\n\t\t\tthis.host.removeAttribute(attributeKey);\n\t\t\treturn;\n\t\t}\n\n\t\tconst attributeValue = property.converter.toAttribute(value);\n\t\tthis.host.setAttribute(attributeKey, attributeValue);\n\t}\n}\n"
|
|
20
20
|
],
|
|
21
|
-
"mappings": "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",
|
|
22
|
-
"debugId": "
|
|
21
|
+
"mappings": "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",
|
|
22
|
+
"debugId": "E97EDD0E0382F89664756E2164756E21",
|
|
23
23
|
"names": []
|
|
24
24
|
}
|
package/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var SM=((F)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(F,{get:(M,x)=>(typeof require<"u"?require:M)[x]}):F)(function(F){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+F+'" is not supported')});var A0=Symbol.for("@ecopages/radiant.legacy-instance-initializers"),G0=Symbol.for("@ecopages/radiant.legacy-post-construction-initializers"),bF=Symbol.for("@ecopages/radiant.legacy-executed-post-construction-initializers");function Q(F,M){D0(F,A0,M)}function Q0(F,M){D0(F,G0,M)}function C(F){o(F,A0)}function j(F){let M=F;o(F,G0,M[bF]??=new Set)}function D0(F,M,x){let $=F,H=Object.prototype.hasOwnProperty.call($,M)?$[M]:void 0;if(Array.isArray(H)){H.push(x);return}Object.defineProperty($,M,{value:[x]})}function o(F,M,x,$=Object.getPrototypeOf(F)){if(!$||$===Object.prototype)return;o(F,M,x,Object.getPrototypeOf($));let H=$[M];if(!Array.isArray(H))return;for(let P of H){if(x?.has(P))continue;P(F),x?.add(P)}}function q0(F){switch(F){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function NF(F){switch(typeof F){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(F))return"array";if(Object.prototype.toString.call(F)==="[object Object]")return"object"}function K(F){switch(F){case Number:return 0;case String:return"";case Boolean:return!1;default:return null}}function vF(F){try{return JSON.parse(F)}catch{throw TypeError("Invalid JSON string")}}var hF={array(F){let M=vF(F);if(!Array.isArray(M))throw TypeError(`Expected an array but got a value of type "${typeof M}"`);return M},boolean(F){return!(F==="0"||String(F).toLowerCase()==="false")},number(F){return Number(F.replace(/_/g,""))},object(F){let M=JSON.parse(F);if(M===null||typeof M!=="object"||Array.isArray(M))throw TypeError(`expected value of type "object" but instead got value "${F}" of type "${NF(M)}"`);return M},string(F){return F}},R0={default:U0,array:J0,object:J0};function J0(F){return JSON.stringify(F)}function U0(F){return`${F}`}function _(F,M){let x=q0(M);if(!x)throw TypeError(`[radiant-element] Unknown type "${M}"`);return hF[x](F)}function O(F,M){let x=q0(M);if(!x)throw TypeError(`[radiant-element] Unknown type "${M}"`);return(R0[x]??R0.default??U0)(F)}function gF(F){return typeof F==="boolean"}function uF(F){return typeof F==="number"}function yF(F){return typeof F==="string"}function mF(F){return Array.isArray(F)}function cF(F){return typeof F==="object"&&!Array.isArray(F)&&F!==null}function j0(F,M){switch(F){case Boolean:return gF(M);case Number:return uF(M);case String:return yF(M);case Array:return mF(M);case Object:return cF(M);default:return!1}}var Y0=(F,M,x,$)=>{if(M===Boolean){let P=F.getAttribute(x);if(P===null)return $;return P===""?!0:_(P,M)}let H=F.getAttribute(x);return H!==null?_(H,M):$??K(M)};function q(F,M){if(M!==void 0&&!j0(F,M))throw Error(`defaultValue does not match the expected type for ${F.name}`)}function L0(F,M,x,$){return{type:x,name:F,value:$,initialValue:$,attribute:M,converter:{fromAttribute:(H)=>_(H,x),toAttribute:(H)=>O(H,x)}}}import{Computed as dF,subtle as sF,trackDependency as pF}from"@ecopages/signals";function iF(F){return F}function T0(F){return F}var _0={trackDependency(F){pF(iF(F))},createComputed(F){return new dF(F)},createWatcher(F){let M=new sF.Watcher(F);return{watch(x){M.watch(T0(x))},unwatch(x){M.unwatch(T0(x))}}}};var z0=_0;function S(){return z0}function lF(F){z0=F}function a(F){S().trackDependency(F)}function f(F){return S().createComputed(F)}function V(F){return S().createWatcher(F)}function k0(F){return F.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}var Y="data-hydration",E0="data-hydration-type",t="data-hydration-key";function I0(F){let M=F.hydrationKey?` ${t}="${nF(F.hydrationKey)}"`:"";return`<script type="application/json" ${Y} ${E0}="${F.type}"${M}>${F.serializedValue}</script>`}function w0(F){return k0(F)}function C0(F,M){let x=F.textContent;if(!x)return M;try{return JSON.parse(x)}catch{if(typeof console<"u")console.warn(`[@ecopages/radiant] Failed to parse hydration payload from <script ${Y}>:`,x.slice(0,120));return M}}function O0(F,M,x){let $=F.children;if(!$||$.length===0){let H=F.childNodes;if(!H||H.length===0)return null;for(let P=0;P<H.length;P+=1){let W=H[P];if(W.nodeType!==1)continue;let Z=W;if(K0(Z,M,x))return Z}return null}for(let H=0;H<$.length;H+=1)if(K0($[H],M,x))return $[H];return null}function K0(F,M,x){if(F.tagName!=="SCRIPT"||!F.hasAttribute(Y)||F.getAttribute(E0)!==M)return!1;if(x!==void 0)return F.getAttribute(t)===x;return!F.hasAttribute(t)}function nF(F){return F.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}import{createMarkupNodeLike as rF,isKeyedJsxValue as S0,isSlotJsxValue as oF}from"@ecopages/jsx";var z="",N="data-radiant-slot-projection";function f0(F){let M=new Map;for(let x of Array.from(F.childNodes)){if(FM(x))continue;aF(M,eF(x),x)}return M}function V0(F){let M;try{M=JSON.parse(F)}catch{if(typeof console<"u")console.warn("[@ecopages/radiant] Failed to parse slot projection payload:",F.slice(0,120));return new Map}let x=new Map;for(let[$,H]of Object.entries(M)){if(!Array.isArray(H)||H.length===0)continue;x.set(e($),H.map((P)=>rF(P)))}return x}function b0(F){let M=Array.from(F.childNodes).filter((x)=>y0(x)).map((x)=>b(x)??"").filter((x)=>x!=="");return M.length>0?M.join(""):void 0}function N0(F){let M={};for(let[x,$]of F.entries()){let H=$.map((P)=>b(P)).filter((P)=>P!==void 0&&P!=="");if(H.length>0)M[x]=H}return Object.keys(M).length>0?JSON.stringify(M):void 0}function v0(F,M){let x=!1,$=(P)=>{if(oF(P))return x=!0,xM(P,M,$);if(S0(P))return tF(P,$(P.value));if(MM(P))return{_$rType$:1,rootLocalName:P.rootLocalName,ssrIntrinsicProps:P.ssrIntrinsicProps,strings:P.strings,values:P.values.map((W)=>$(W))};if(g0(P))return Array.from(P,(W)=>$(W));return P},H=$(F);return{containsSlots:x,value:H}}function h0(F){for(let M of Array.from(F.childNodes)){if(!u0(M))continue;let x=M.textContent??void 0;return M.parentNode?.removeChild(M),x}return}function aF(F,M,x){let $=F.get(M);if($){$.push(x);return}F.set(M,[x])}function tF(F,M){return{...F,value:M}}function eF(F){if(F instanceof Element)return e(F.getAttribute("slot"));return z}function g0(F){return typeof F!=="string"&&typeof F==="object"&&F!==null&&Symbol.iterator in F}function u0(F){return F instanceof HTMLScriptElement&&F.hasAttribute(N)}function y0(F){return F instanceof HTMLScriptElement&&F.hasAttribute(Y)}function FM(F){return u0(F)||y0(F)}function MM(F){return typeof F==="object"&&F!==null&&F._$rType$===1&&Array.isArray(F.strings)&&Array.isArray(F.values)}function e(F){return F??z}function b(F){if(F===void 0||F===null||F===!1||F===!0)return;if(typeof Node<"u"&&F instanceof Node){if(F.nodeType===Node.TEXT_NODE)return F.textContent??"";return F.outerHTML??F.textContent??void 0}if(S0(F))return b(F.value);if(typeof F==="string"||typeof F==="number"||typeof F==="bigint")return String(F);if(typeof F==="object"&&F!==null&&"outerHTML"in F)return typeof F.outerHTML==="string"?F.outerHTML:F.textContent??void 0;if(g0(F))return Array.from(F,(M)=>b(M)??"").join("");return}function xM(F,M,x){let $=M.get(e(F.name));if($&&$.length>0)return $.length===1?$[0]:$;if(F.fallback===void 0)return"";return x(F.fallback)}import{hydrate as $M,render as HM}from"@ecopages/jsx";class F0{#F;#M=new Map;#x;#H;#$;#P=0;constructor(F){this.#F=F,this.#H=V(()=>{this.#F.requestUpdate()})}get slotProjectionVersion(){return this.#P}getSlotElements(F){return this.ensureSlotProjectionState(),(this.#M.get(F??z)??[]).filter((M)=>typeof Node<"u"&&M instanceof Element)}getSlotProjectionScriptTag(){this.ensureSlotProjectionState();let F=N0(this.#M);if(!F)return;return`<script type="application/json" ${N}>${PM(F)}</script>`}getAuthoredHydrationScriptMarkup(){return b0(this.#F)??void 0}hydrate(F){this.disconnectSlotProjectionObserver();try{$M(this.resolveTrackedRenderOutput().value,F)}finally{this.observeSlotProjection()}}render(F){this.disconnectSlotProjectionObserver();try{HM(this.resolveTrackedRenderOutput().value,F)}finally{this.observeSlotProjection()}}observeSlotProjection(){if(typeof MutationObserver>"u"||this.#$||!this.#F.isConnected)return;this.#$=new MutationObserver((F)=>this.handleSlotProjectionMutations(F)),this.#$.observe(this.#F,{childList:!0})}disconnectSlotProjectionObserver(){this.#$?.disconnect(),this.#$=void 0}disconnectRenderWatcher(){if(!this.#x)return;this.#H.unwatch(this.#x),this.#x=void 0}resolveTrackedRenderOutput(){let F=f(()=>this.resolveRenderOutput()),M=F.get();if(!this.#F.isConnected)return M;if(this.#x)this.#H.unwatch(this.#x);return this.#x=F,this.#H.watch(F),M}dispose(){this.disconnectSlotProjectionObserver(),this.disconnectRenderWatcher()}ensureSlotProjectionState(){if(this.#M.size>0)return;let F=this.#F.isConnected?h0(this.#F):void 0;if(typeof F==="string"&&F!==""){this.#M=V0(F),this.#P+=1;return}if(this.#F.childNodes.length>0)this.#M=f0(this.#F),this.#P+=1}handleSlotProjectionMutations(F){let M=!1;for(let x of F){for(let $ of Array.from(x.removedNodes))if(this.removeProjectedSlotNode($))M=!0;for(let $ of Array.from(x.addedNodes)){if($.parentNode!==this.#F)continue;if(this.addProjectedSlotNode($))M=!0}}if(M)this.#P+=1,this.#F.requestUpdate()}addProjectedSlotNode(F){if(F instanceof HTMLScriptElement&&(F.hasAttribute(N)||F.hasAttribute(Y)))return!1;let M=F instanceof Element?F.getAttribute("slot")??z:z,x=this.#M.get(M);if(x){if(x.includes(F))return!1;return x.push(F),!0}return this.#M.set(M,[F]),!0}removeProjectedSlotNode(F){for(let[M,x]of this.#M.entries()){let $=x.indexOf(F);if($===-1)continue;if(x.splice($,1),x.length===0)this.#M.delete(M);return!0}return!1}resolveRenderOutput(){return this.ensureSlotProjectionState(),v0(this.#F.render(),this.#M)}}function PM(F){return F.replace(/</g,"\\u003c")}import{createSubscribableJsxValue as WM}from"@ecopages/jsx";class m0{read;subscribers=new Set;watcherListeners=new Set;version=0;constructor(F){this.read=F}get(){return a(this),this.read()}subscribe(F){return this.subscribers.add(F),()=>{this.subscribers.delete(F)}}addWatcher(F){return this.watcherListeners.add(F),()=>{this.watcherListeners.delete(F)}}getVersion(){return this.version}notify(F){this.version+=1;let M;try{this.notifyWatchers()}catch(x){M=x}if(this.publish(F),M)throw M}publish(F){for(let M of this.subscribers)M(F)}notifyWatchers(){let F=[];for(let M of this.watcherListeners)try{M()}catch(x){F.push(x)}if(F.length===1)throw F[0];if(F.length>1)throw AggregateError(F,"Multiple reactive dependency notifications failed.")}}function ZM(F){return typeof F==="object"&&F!==null&&typeof F.get==="function"}class E{host;access;shouldAutoBind;bindings;$;reactiveFields=new Map;reactiveDependencies=new Map;reactiveDependencyReaders=new Map;reactiveBindings=new Map;updateCallbacks=new Map;onConnectedCallbacks=[];onDisconnectedCallback=[];constructor(F,M,x){this.host=F;this.access=M;this.shouldAutoBind=x;let $=this.createReactiveBindingNamespace();this.bindings=$,this.$=$}connectHost(){for(let F of this.onConnectedCallbacks)F()}disconnectHost(){for(let F of this.onDisconnectedCallback)F()}notifyUpdate(F,M,x){if(M===x)return;this.reactiveDependencies.get(F)?.notify(x);let $=this.updateCallbacks.get(F);if($)for(let H of $)H()}registerCleanupCallback(F){this.onDisconnectedCallback.push(F)}registerConnectedCallback(F){this.onConnectedCallbacks.push(F)}registerHydrationBinding(F,M){}registerReactiveDependencyReader(F,M){this.reactiveDependencyReaders.set(F,M)}registerUpdateCallback(F,M){if(!this.updateCallbacks.has(F))this.updateCallbacks.set(F,new Set);let x=this.updateCallbacks.get(F);return x.add(M),()=>{if(x.delete(M),x.size===0)this.updateCallbacks.delete(F)}}getReactiveBinding(F){let M=this.reactiveBindings.get(F);if(M)return M;let x=WM({getValue:()=>this.readReactiveBindingValue(F),subscribe:($)=>this.registerUpdateCallback(F,()=>{$(this.readReactiveBindingValue(F))})});return this.reactiveBindings.set(F,x),x}defineReactiveBinding(F,M=!0){let x=typeof M==="string"?M:M?`$${F}`:void 0,$=this.access.getBindingTarget?.(this.host)??this.host;if(!x||this.access.hasProperty(this.host,x))return;this.access.defineProperty($,x,{get:()=>this.getReactiveBinding(F),enumerable:!1,configurable:!0})}trackReactiveRead(F){a(this.getReactiveDependency(F))}defineReactiveAccessor(F,M){let x=M.bind??this.shouldAutoBind();if(this.defineReactiveBinding(F,x),this.registerReactiveDependencyReader(F,M.getValue),this.access.defineProperty(this.host,F,{get:()=>{return this.trackReactiveRead(F),M.getValue()},set:($)=>{let H=M.getValue();if(H===$)return;M.setValue($),this.notifyUpdate(F,H,$)},enumerable:!0,configurable:!0}),M.notifyInitialValue!==void 0)this.notifyUpdate(F,void 0,M.notifyInitialValue)}createReactiveField(F,M,x={}){let $={name:F,value:M,initialValue:M};this.reactiveFields.set(F,$),this.defineReactiveAccessor(F,{bind:x.bind,getValue:()=>this.reactiveFields.get(F)?.value,setValue:(H)=>{this.reactiveFields.set(F,{...$,value:H})},notifyInitialValue:M})}createReactiveBindingNamespace(){return new Proxy(Object.create(null),{get:(F,M)=>{if(typeof M!=="string")return;return this.getReactiveBinding(M)}})}getReactiveDependency(F){let M=this.reactiveDependencies.get(F);if(M)return M;let x=new m0(()=>this.readReactiveDependencyValue(F));return this.reactiveDependencies.set(F,x),x}readReactiveDependencyValue(F){let M=this.reactiveDependencyReaders.get(F);if(M)return M();return this.readReactiveBindingValue(F)}readReactiveBindingValue(F){let M=this.access.readProperty(this.host,F);if(ZM(M))return M.get();return M}}var M0=Symbol.for("@ecopages/radiant.ssr-preparation-callbacks"),c0=Symbol.for("@ecopages/radiant.ssr-preparation-running");function d0(F,M){let $=F[M0];if(Array.isArray($)){$.push(M);return}Object.defineProperty(F,M0,{value:[M],configurable:!0})}function s0(F){let M=F,x=M[M0];if(!Array.isArray(x))return;M[c0]=!0;try{for(let $ of x)$()}finally{delete M[c0]}}var x0=Symbol.for("@ecopages/radiant.hydrator-installed");function Px(){globalThis[x0]=!0}function Wx(){delete globalThis[x0]}function p0(){return globalThis[x0]===!0}import{getActiveSsrScopeValue as XM,withActiveSsrScopeValue as BM}from"@ecopages/jsx/server";var i0=Symbol.for("@ecopages/radiant.element-ssr-runtime");function l0(){return XM(i0)}function Bx(F,M){return BM(i0,F,M)}import{hasHydrationMarkers as AM,jsx as GM}from"@ecopages/jsx";var QM=DM();function DM(){if(typeof HTMLElement<"u")return HTMLElement;throw Error("RadiantElement requires HTMLElement. Install '@ecopages/radiant/server/light-dom-shim' before SSR imports.")}class r0 extends QM{renderRootMode="light";bindings;$;reactiveHost;reactivePropertyState;contextProviders=new Map;hydrationBindings=new Map;eventSubscriptions=new Map;eventEmitters=new Map;elementReady=!1;isRendering=!1;isFirstConnectPending=!1;isRenderScheduled=!1;needsRender=!1;renderRuntime;constructor(){super();this.reactivePropertyState=new o0(this),this.reactiveHost=new E(this,{defineProperty:(F,M,x)=>Object.defineProperty(F,M,x),getBindingTarget:(F)=>Object.getPrototypeOf(F)??F,hasProperty:(F,M)=>(M in F),readProperty:(F,M)=>F[M]},()=>this.shouldAutoBindReactiveMembers()),this.bindings=this.reactiveHost.bindings,this.$=this.reactiveHost.$,C(this)}get slotProjectionVersion(){return this.renderRuntime?.slotProjectionVersion??0}connectedCallback(){j(this);let F=this.isFirstConnectPending;if(this.elementReady=!0,this.reactiveHost.connectHost(),F)return;this.isFirstConnectPending=!0,queueMicrotask(()=>{if(this.isFirstConnectPending=!1,!this.isConnected)return;if(!this.shouldRunRenderLifecycle())return;if(this.getOrCreateRenderRuntime().observeSlotProjection(),n0(this)){if(this.needsRender=!1,this.hydrate(),this.needsRender)this.update();return}this.update()})}connectedContextCallback(F){}disconnectedCallback(){this.renderRuntime?.dispose(),this.renderRuntime=void 0,this.removeAllSubscribedEvents(),this.reactiveHost.disconnectHost()}notifyUpdate(F,M,x){this.reactiveHost.notifyUpdate(F,M,x)}attributeChangedCallback(F,M,x){if(M===x||!this.elementReady)return;this.reactivePropertyState.applyAttributeChange(F,M,x)}renderTemplate({target:F=this,template:M,insert:x="replace",sanitize:$}){let H=$?$(M):M;switch(x){case"replace":F.innerHTML=H;break;case"beforeend":F.insertAdjacentHTML("beforeend",H);break;case"afterbegin":F.insertAdjacentHTML("afterbegin",H);break;case"beforebegin":F.insertAdjacentHTML("beforebegin",H);break;case"afterend":F.insertAdjacentHTML("afterend",H);break}}render(){return GM("slot",{})}renderViewToString(F={}){if(!this.shouldRunRenderLifecycle())return this.innerHTML;return j(this),this.prepareForSsr(),RM().renderView(this,F)}hydrate(){if(!this.shouldRunRenderLifecycle()||!this.isConnected||this.isRendering)return;let{renderTarget:F}=this.resolveRenderSurface(),M=this.getOrCreateRenderRuntime();this.isRendering=!0;try{M.hydrate(F)}finally{this.isRendering=!1}}requestUpdate(){if(!this.shouldRunRenderLifecycle())return;if(this.needsRender=!0,this.isRenderScheduled)return;this.isRenderScheduled=!0,queueMicrotask(()=>{if(this.isRenderScheduled=!1,!this.needsRender)return;this.update()})}update(){if(!this.shouldRunRenderLifecycle())return;let{renderTarget:F}=this.resolveRenderSurface(),M=this.getOrCreateRenderRuntime();if(this.needsRender=!0,!this.isConnected||this.isRendering)return;if(this.isFirstConnectPending&&n0(this))return;while(this.needsRender&&this.isConnected){this.needsRender=!1,this.isRendering=!0;try{M.render(F)}finally{this.isRendering=!1}}}registerReactiveProperty(F){this.reactivePropertyState.register(F)}getReactiveProperties(){return this.reactivePropertyState.getAll()}registerReactiveDependencyReader(F,M){this.reactiveHost.registerReactiveDependencyReader(F,M)}registerContextProvider(F,M){this.contextProviders.set(F,M),this.hydrationBindings.set(F,M)}registerHydrationBinding(F,M){this.hydrationBindings.set(F,M)}getContextProviders(){return j(this),[...this.contextProviders.values()]}getHydrationBindings(){return j(this),[...this.hydrationBindings.values()]}prepareForSsr(){s0(this)}shouldAutoBindReactiveMembers(){return!0}shouldRunRenderLifecycle(){return this.render!==r0.prototype.render}getRenderTarget(){if(this.renderRootMode!=="shadow")return this;if(this.shadowRoot)return this.shadowRoot;if(typeof this.attachShadow!=="function")throw Error("RadiantElement shadow render mode requires attachShadow().");return this.attachShadow({mode:"open"})}registerUpdateCallback(F,M){return this.reactiveHost.registerUpdateCallback(F,M)}getReactiveBinding(F){return this.reactiveHost.getReactiveBinding(F)}bind(F){return this.reactiveHost.getReactiveBinding(F)}defineReactiveBinding(F,M=!0){this.reactiveHost.defineReactiveBinding(F,M)}trackReactiveRead(F){this.reactiveHost.trackReactiveRead(F)}subscribeEvents(F){let M=[];for(let x of F)M.push(this.subscribeEvent(x));return M}subscribeEvent(F){let{interactionTarget:M}=this.resolveRenderSurface(),x=(H)=>{if(H.target&&H.target.matches(F.selector))F.listener.call(this,H)},$=`${F.type}:${F.selector}`;return M.addEventListener(F.type,x,F.options),this.eventSubscriptions.set($,{...F,listener:x,target:M}),this.unsubscribeEvent.bind(this,$)}unsubscribeEvent(F){let M=this.eventSubscriptions.get(F);if(M)M.target.removeEventListener(M.type,M.listener,M.options),this.eventSubscriptions.delete(F)}removeAllSubscribedEvents(){for(let F of this.eventSubscriptions.values())F.target.removeEventListener(F.type,F.listener,F.options);this.eventSubscriptions.clear()}registerCleanupCallback(F){this.reactiveHost.registerCleanupCallback(F)}registerConnectedCallback(F){this.reactiveHost.registerConnectedCallback(F)}registerEventEmitter(F,M){this.eventEmitters.set(F,M)}getRef(F,M=!1){let x=`[data-ref="${F}"]`,{queryRoot:$}=this.resolveRenderSurface();if(M)return Array.from($.querySelectorAll(x));return $.querySelector(x)??null}getSlotElement(F){return this.getSlotElements(F)[0]??null}getSlotElements(F){return this.getOrCreateRenderRuntime().getSlotElements(F)}createReactiveField(F,M,x={}){this.reactiveHost.createReactiveField(F,M,x)}createReactiveProp(F,M){this.reactivePropertyState.create(F,M,(x,$,H)=>Y0(this,x,$,H),(x,$)=>{this.reactiveHost.defineReactiveAccessor(x,$)})}getSlotProjectionScriptTag(){return this.getOrCreateRenderRuntime().getSlotProjectionScriptTag()}getAuthoredHydrationScriptMarkup(){return this.getOrCreateRenderRuntime().getAuthoredHydrationScriptMarkup()}resolveTrackedRenderOutput(){return this.getOrCreateRenderRuntime().resolveTrackedRenderOutput()}getOrCreateRenderRuntime(){if(this.renderRuntime)return this.renderRuntime;return this.renderRuntime=new F0(this),this.renderRuntime}resolveRenderSurface(){let F=this.getRenderTarget(),M=F instanceof ShadowRoot?F:this;return{interactionTarget:M,queryRoot:M,renderTarget:F}}}function RM(){let F=l0();if(!F)throw Error("Radiant SSR runtime unavailable. Import `@ecopages/radiant/server/render-component` first.");return F}function n0(F){return p0()&&AM(F)}class o0{host;properties=new Map;preUpgradePropertyValues=new Map;constructor(F){this.host=F;for(let M of Object.getOwnPropertyNames(F))this.preUpgradePropertyValues.set(M,Reflect.get(F,M))}register(F){this.properties.set(F.name,F)}getAll(){return Array.from(this.properties.values())}applyAttributeChange(F,M,x){let $=this.properties.get(F);if(!$)return;let H=this.transformAttributeValue(x,$),P=this.transformAttributeValue(M,$);Reflect.set(this.host,$.attribute,H),this.host.notifyUpdate(F,P,H)}create(F,M,x,$){let{type:H,attribute:P,reflect:W,defaultValue:Z}=M,X=P??F,B=this.preUpgradePropertyValues.has(F),A=B?this.preUpgradePropertyValues.get(F):void 0;q(H,Z);let G=B?A:x(H,X,Z);if(this.host.hasAttribute(X)&&(!W||G==null||G===""))this.host.removeAttribute(X);if(B&&Object.prototype.hasOwnProperty.call(this.host,F))Reflect.deleteProperty(this.host,F);let R=L0(F,X,H,G);if(this.register(R),$(F,{bind:M.bind,getValue:()=>this.properties.get(F)?.value,setValue:(D)=>{this.properties.set(F,{...R,value:D}),this.reflectValue(X,W,R,D)}}),G!==void 0)queueMicrotask(()=>{let D=this.properties.get(F)?.value;if(D===void 0)return;this.reflectValue(X,W,R,D),this.host.notifyUpdate(F,void 0,D)})}transformAttributeValue(F,M){return F!==null?M.converter.fromAttribute(F):F}reflectValue(F,M,x,$){if(!M)return;if($==null||$===""||$===!1){this.host.removeAttribute(F);return}let H=x.converter.toAttribute($);this.host.setAttribute(F,H)}}import{render as JM}from"@ecopages/jsx";class a0{host;element;bindings;$;reactiveHost;connected=!1;isRendering=!1;isRenderScheduled=!1;isSsrLifecycle=!1;needsRender=!1;contextProviders=new Map;hydrationBindings=new Map;renderSignal;renderWatcher=V(()=>{this.requestUpdate()});constructor(F){this.host=F,this.element=F,this.reactiveHost=new E(this,{defineProperty:(M,x,$)=>Object.defineProperty(M,x,$),hasProperty:(M,x)=>(x in M),readProperty:(M,x)=>M[x]},()=>this.shouldAutoBindReactiveMembers()),this.bindings=this.reactiveHost.bindings,this.$=this.reactiveHost.$,C(this)}connect(){if(j(this),this.connected=!0,this.reactiveHost.connectHost(),this.shouldRunRenderLifecycle())this.update()}runWithSsrLifecycle(F){this.isSsrLifecycle=!0;try{return F()}finally{this.isSsrLifecycle=!1}}disconnect(){this.connected=!1,this.disconnectRenderWatcher(),this.reactiveHost.disconnectHost()}get isConnected(){return this.connected}render(){return null}requestUpdate(){if(!this.shouldRunRenderLifecycle())return;if(this.needsRender=!0,this.isRenderScheduled)return;this.isRenderScheduled=!0,queueMicrotask(()=>{if(this.isRenderScheduled=!1,!this.needsRender)return;this.update()})}update(){if(!this.shouldRunRenderLifecycle())return;let F=this.getRenderTarget();if(!F)return;if(this.needsRender=!0,!this.connected||this.isRendering)return;while(this.needsRender){this.needsRender=!1,this.isRendering=!0;try{JM(this.resolveTrackedRenderOutput(),F)}finally{this.isRendering=!1}}}bind(F){return this.reactiveHost.getReactiveBinding(F)}getReactiveBinding(F){return this.reactiveHost.getReactiveBinding(F)}createReactiveField(F,M,x={}){this.reactiveHost.createReactiveField(F,M,x)}createReactiveProp(F,M){let{type:x,defaultValue:$,bind:H}=M;q(x,$);let P=new t0(this.host,this,F),Z=P.getInitialValue()??$??K(x);this.reactiveHost.defineReactiveAccessor(F,{bind:H,getValue:()=>Z,setValue:(X)=>{Z=X},notifyInitialValue:Z}),P.install(),this.registerCleanupCallback(()=>{P.restore()})}defineReactiveBinding(F,M=!0){this.reactiveHost.defineReactiveBinding(F,M)}notifyUpdate(F,M,x){this.reactiveHost.notifyUpdate(F,M,x)}registerUpdateCallback(F,M){return this.reactiveHost.registerUpdateCallback(F,M)}connectedContextCallback(F){}registerContextProvider(F,M){this.contextProviders.set(F,M),this.hydrationBindings.set(F,M)}registerHydrationBinding(F,M){this.hydrationBindings.set(F,M)}getSsrContextProviders(){return[...this.contextProviders.values()]}getSsrHydrationBindings(){return[...this.hydrationBindings.values()]}registerCleanupCallback(F){this.reactiveHost.registerCleanupCallback(F)}registerConnectedCallback(F){this.reactiveHost.registerConnectedCallback(F)}registerReactiveDependencyReader(F,M){this.reactiveHost.registerReactiveDependencyReader(F,M)}trackReactiveRead(F){this.reactiveHost.trackReactiveRead(F)}addEventListener(F,M,x){this.host.addEventListener(F,M,x)}removeEventListener(F,M,x){this.host.removeEventListener(F,M,x)}dispatchEvent(F){return this.host.dispatchEvent(F)}getRef(F,M=!1){let x=`[data-ref="${F}"]`;if(M)return Array.from(this.host.querySelectorAll(x));return this.host.querySelector(x)??null}shouldAutoBindReactiveMembers(){return!0}shouldRunRenderLifecycle(){return!this.isSsrLifecycle&&this.render!==a0.prototype.render}getRenderTarget(){return this.host instanceof HTMLElement?this.host:null}disconnectRenderWatcher(){if(!this.renderSignal)return;this.renderWatcher.unwatch(this.renderSignal),this.renderSignal=void 0}resolveTrackedRenderOutput(){let F=f(()=>this.render()),M=F.get();if(!this.connected)return M;if(this.renderSignal)this.renderWatcher.unwatch(this.renderSignal);return this.renderSignal=F,this.renderWatcher.watch(F),M}}class t0{host;controller;propertyName;ownDescriptor;constructor(F,M,x){this.host=F;this.controller=M;this.propertyName=x;this.ownDescriptor=Object.getOwnPropertyDescriptor(this.host,this.propertyName)}getInitialValue(){return Reflect.get(this.host,this.propertyName)}install(){Object.defineProperty(this.host,this.propertyName,{get:()=>Reflect.get(this.controller,this.propertyName),set:(F)=>{Reflect.set(this.controller,this.propertyName,F)},enumerable:this.ownDescriptor?.enumerable??!0,configurable:!0})}restore(){let F=Reflect.get(this.controller,this.propertyName);if(this.ownDescriptor){if(Object.defineProperty(this.host,this.propertyName,this.ownDescriptor),"value"in this.ownDescriptor&&this.ownDescriptor.writable)Reflect.set(this.host,this.propertyName,F);return}Reflect.deleteProperty(this.host,this.propertyName);try{Reflect.set(this.host,this.propertyName,F)}catch{Object.defineProperty(this.host,this.propertyName,{value:F,writable:!0,enumerable:!0,configurable:!0})}}}var e0=Symbol.for("@ecopages/radiant.controllerIdentifier");function $0(F,M){F[e0]=M}function wx(F){return F[e0]}var h="data-controller",FF=Symbol.for("@ecopages/radiant.controller-registry-state");function qM(){let F=globalThis,M=F[FF];if(M)return M;let x={activeRuntimes:new Set,controllerRegistrationStrategy:"keep-current",controllerRegistry:new Map};return F[FF]=x,x}var g=qM(),L=g.controllerRegistry,k=g.activeRuntimes;function MF(F){let M=F.getAttribute(h);if(!M)return[];return M.split(/\s+/).map((x)=>x.trim()).filter((x)=>x.length>0)}function v(F,M){if(F instanceof Element&&F.hasAttribute(h))M(F);for(let x of Array.from(F.querySelectorAll(`[${h}]`)))M(x)}class xF{root;controllersByElement=new Map;observer;stopped=!1;constructor(F=document){this.root=F;this.start()}stop(){if(this.stopped)return;this.stopped=!0,this.observer?.disconnect(),this.observer=void 0;for(let[F,M]of this.controllersByElement)for(let[x]of M)this.disconnectController(F,x);k.delete(this)}reconcileRegisteredController(F){v(this.root,(M)=>{if(!MF(M).includes(F))return;this.connectController(M,F)})}replaceRegisteredController(F){for(let[M,x]of Array.from(this.controllersByElement.entries())){if(!x.has(F))continue;this.disconnectController(M,F)}this.reconcileRegisteredController(F)}start(){if(v(this.root,(M)=>{this.reconcileElement(M)}),typeof MutationObserver>"u"){k.add(this);return}this.observer=new MutationObserver((M)=>{for(let x of M){if(x.type==="attributes"&&x.target instanceof Element){this.reconcileElement(x.target);continue}for(let $ of Array.from(x.removedNodes)){if(!($ instanceof Element))continue;v($,(H)=>{this.disconnectElementControllers(H)})}for(let $ of Array.from(x.addedNodes)){if(!($ instanceof Element))continue;v($,(H)=>{this.reconcileElement(H)})}}});let F=this.root instanceof Document?this.root.documentElement:this.root;this.observer.observe(F,{attributeFilter:[h],attributes:!0,childList:!0,subtree:!0}),k.add(this)}reconcileElement(F){let M=new Set(MF(F)),x=this.controllersByElement.get(F);if(x){for(let $ of x.keys())if(!M.has($))this.disconnectController(F,$)}for(let $ of M)this.connectController(F,$)}connectController(F,M){let x=L.get(M);if(!x)return;let $=this.controllersByElement.get(F);if(!$)$=new Map,this.controllersByElement.set(F,$);if($.has(M))return;let H=new x(F);$.set(M,H),H.connect()}disconnectController(F,M){let x=this.controllersByElement.get(F);if(!x)return;let $=x.get(M);if(!$)return;if($.disconnect(),x.delete(M),x.size===0)this.controllersByElement.delete(F)}disconnectElementControllers(F){let M=this.controllersByElement.get(F);if(!M)return;for(let x of Array.from(M.keys()))this.disconnectController(F,x)}}function UM(F,M){let x=L.get(F);if(x)return x;$0(M,F),L.set(F,M);for(let $ of Array.from(k))$.reconcileRegisteredController(F);return M}function Sx(F){return L.has(F)}function fx(F){return L.get(F)}function jM(F,M){if(L.get(F)===M)return M;$0(M,F),L.set(F,M);for(let $ of Array.from(k))$.replaceRegisteredController(F);return M}function $F(F){g.controllerRegistrationStrategy=F}function Vx(){$F("replace")}function bx(){$F("keep-current")}function HF(F,M){if(g.controllerRegistrationStrategy==="replace")return jM(F,M);return UM(F,M)}function Nx(F=document){return new xF(F)}function vx(){for(let F of Array.from(k))F.stop()}function YM(F){return typeof F==="function"}function J(F,M,x,$){if(typeof $==="object")return F(void 0,$);return M(x,$)}function U(F,M,x,$,H){if(typeof $==="object"){if(!YM(x))throw TypeError("Standard method decorators require a method target");return F(x,$)}if(!H)throw TypeError("Legacy method decorators require a property descriptor");return M(x,$,H)}function H0(F){if(F instanceof Element)return F;if("host"in F)return F.host;return F.element}function LM(F){return F.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/_/g,"-").toLowerCase()}function TM(F,M){if(M.converter?.fromAttribute){let x=M.converter.fromAttribute(F);if(F===null&&x===void 0&&"defaultValue"in M)return M.defaultValue;return x}if(M.type){if(F===null)return M.defaultValue??K(M.type);if(M.type===Boolean&&F==="")return!0;return _(F,M.type)}if(F===null)return M.defaultValue;return F}function T(F,M,x){return TM(H0(F).getAttribute(M),x)}function _M(F,M,x,$){let H=$.converter?.toAttribute?$.converter.toAttribute(x):$.type?O(x,$.type):x==null?null:String(x);if(H===null){F.removeAttribute(M);return}F.setAttribute(M,H)}function u(F,M,x={}){if(x.type)q(x.type,x.defaultValue);let $=F,H=x.source??LM(M),P=Symbol(`@ecopages/radiant/attr:${M}:observer`),W=Symbol(`@ecopages/radiant/attr:${M}:last-value`),Z=x.bind??F.shouldAutoBindReactiveMembers?.()??!1;F.defineReactiveBinding(M,Z),F.registerReactiveDependencyReader(M,()=>T(F,H,x)),$[W]=T(F,H,x),Object.defineProperty(F,M,{get(){return F.trackReactiveRead(M),T(this,H,x)},set(A){let G=H0(this),R=T(this,H,x);_M(G,H,A,x);let D=T(this,H,x);if(Object.is(R,D))return;this[W]=D,F.notifyUpdate(M,R,D)},enumerable:!0,configurable:!0});let X=()=>{$[P]?.disconnect()},B=()=>{let A=T(F,H,x),G=$[W];if(!Object.is(G,A))$[W]=A,F.notifyUpdate(M,G,A);if(typeof MutationObserver>"u")return;let R=H0(F);X();let D=new MutationObserver(()=>{let r=T(F,H,x),B0=$[W];if(Object.is(B0,r))return;$[W]=r,F.notifyUpdate(M,B0,r)});D.observe(R,{attributeFilter:[H],attributes:!0}),$[P]=D};B(),F.registerConnectedCallback(B),F.registerCleanupCallback(X)}function PF(F={}){return(M,x)=>{let $=Symbol(`@ecopages/radiant/attr:${x}:installed`);Q(M,(H)=>{H.registerConnectedCallback(()=>{if(H[$])return;let P=H[x],W=F.defaultValue===void 0?P:F.defaultValue;u(H,x,{...F,defaultValue:W}),H[$]=!0})})}}function WF(F={}){return function(M,x){let $=String(x.name),H=Symbol(`@ecopages/radiant/attr:${$}:initializer`);return x.addInitializer(function(){let P=this[H],W=F.defaultValue===void 0?P:F.defaultValue;u(this,$,{...F,defaultValue:W})}),function(P){return this[H]=P,P}}}function ox(F={}){function M(x,$){return J(WF(F),PF(F),x,$)}return M}function ZF(F,M,x){let $=x.value;return{configurable:!0,get(){if(this===F.prototype||Object.prototype.hasOwnProperty.call(this,M))return $;let H=$.bind(this);return Object.defineProperty(this,M,{value:H,configurable:!0,writable:!0}),H}}}function XF(F,M){let x=String(M.name);if(M.private)throw Error(`'bound' cannot decorate private properties like ${x}.`);M.addInitializer(function(){this[x]=this[x].bind(this)})}function $2(F,M,x){return U(XF,ZF,F,M,x)}function W2(F){return function(M){return HF(F,M)}}var BF=Symbol.for("@ecopages/radiant.customElementTagName");function y(F,M){F[BF]=M}function X2(F){return F[BF]}function AF(F,M){return(x)=>{if(y(x,F),typeof customElements<"u"&&!customElements.get(F))customElements.define(F,x,M)}}function GF(F,M){return function(x,$){$.addInitializer(function(){if(y(this,F),typeof customElements<"u"&&!customElements.get(F))customElements.define(F,this,M)})}}function q2(F,M){function x($,H){if(typeof H<"u")return GF(F,M)($,H);return AF(F,M)($)}return x}function m(F,M){let x=null,$=null,H,P=()=>{if(x!==null)clearTimeout(x),x=null},W=()=>{if($===null)return H;let X=$;return $=null,P(),H=X(),H},Z=function(...X){$=()=>F.apply(this,X),P(),x=setTimeout(()=>{W()},M)};return Z.cancel=()=>{P(),$=null},Z.flush=()=>{if($===null)return H;return W()},Z.pending=()=>$!==null,Z}function QF(F){return(M,x,$)=>{let H=$.value,P=new WeakMap;return $.value=function(...Z){let X=P.get(this);if(!X)X=m((...B)=>{return H.apply(this,B)},F),P.set(this,X);X(...Z)},$}}function DF(F){return(M)=>{let x=new WeakMap;return function(...$){let H=x.get(this);if(!H)H=m((...P)=>{return M.apply(this,P)},F),x.set(this,H);H(...$)}}}function E2(F){function M(x,$,H){return U(DF(F),QF(F),x,$,H)}return M}class P0{host;eventConfig;constructor(F,M){this.host=F,this.eventConfig=M}emit(F){let M=new CustomEvent(this.eventConfig.name,{detail:F,bubbles:this.eventConfig.bubbles,cancelable:this.eventConfig.cancelable,composed:this.eventConfig.composed});this.host.dispatchEvent(M)}}function c(F,M){let x=new P0(F,M);return F.registerEventEmitter(M.name,x),x}function RF(F){return(M,x)=>{Q(M,($)=>{let H=c($,F);$.registerConnectedCallback(()=>{Object.defineProperty($,x,{get(){return H},enumerable:!0,configurable:!0})})})}}function JF(F){return function(M,x){x.addInitializer(function(){let $=c(this,F);Object.defineProperty(this,x.name,{get(){return $},enumerable:!0,configurable:!0})})}}function u2(F){function M(x,$){return J(JF(F),RF(F),x,$)}return M}function qF(F){let M=globalThis.CSS;if(typeof M?.escape==="function")return M.escape(F);let x="";for(let $=0;$<F.length;$+=1){let H=F[$]??"",P=H.codePointAt(0)??0;if(P===0){x+="�";continue}let W=P>=1&&P<=31||P===127,Z=$===0&&P>=48&&P<=57,X=$===1&&P>=48&&P<=57&&(F[0]??"")==="-",B=$===0&&H==="-"&&F.length===1;if(W||Z||X){x+=`\\${P.toString(16)} `;continue}if(P>=128||H==="-"||H==="_"||P>=48&&P<=57||P>=65&&P<=90||P>=97&&P<=122){x+=B?`\\${H}`:H;continue}x+=`\\${H}`}return x}var d=Symbol("radiant.shadowRootListenerHooks"),UF=Symbol("radiant.patchedAttachShadow");function YF(F){if(F instanceof Element)return F;if("host"in F)return F.host;return F.element}function zM(F){return!(F instanceof Element)}function jF(F,M,x,$){let H=(P)=>{if(P.target instanceof Element&&P.target.matches(x))$(P)};return F.addEventListener(M.type,H,M.options),()=>{F.removeEventListener(M.type,H,M.options)}}function kM(F,M){let x=YF(F);if(!x[d])x[d]=new Set;if(x[d].add(M),x[UF])return;let $=x.attachShadow;x.attachShadow=function(P){let W=$.call(this,P);for(let Z of x[d]??[])Z();return W},x[UF]=!0}function s(F,M,x){if(zM(F)&&"scope"in M&&M.scope&&M.scope!=="light")throw Error("RadiantController event listeners only support light DOM scope.");let $=YF(F),H=x.bind(F),P=null,W=null,Z=null,X=null,B=!1,A=()=>{P?.(),W?.(),Z?.(),X?.(),P=null,W=null,Z=null,X=null},G=()=>{if(B)return;if("window"in M&&!P)window.addEventListener(M.type,H,M.options),P=()=>{window.removeEventListener(M.type,H,M.options)};if("document"in M&&!W)document.addEventListener(M.type,H,M.options),W=()=>{document.removeEventListener(M.type,H,M.options)};if("selector"in M||"ref"in M){let R="selector"in M?M.selector:`[data-ref='${qF(M.ref)}']`;if(M.scope!=="shadow"&&!Z)Z=jF($,M,R,H);if(M.scope!=="light"&&$.shadowRoot&&!X)X=jF($.shadowRoot,M,R,H)}};if("selector"in M||"ref"in M){if(M.scope!=="light")kM(F,()=>{if(F.isConnected)G()})}if(F.registerConnectedCallback(G),F.registerCleanupCallback(A),F.isConnected)G();return()=>{B=!0,A()}}function LF(F){return(M,x,$)=>{let H=$.value;return Q(M,(P)=>{s(P,F,H.bind(P))}),$}}function TF(F){return function(M,x){x.addInitializer(function(){s(this,F,M.bind(this))})}}function t2(F){function M(x,$,H){return U(TF(F),LF(F),x,$,H)}return M}function _F(F){return(M,x)=>{let $=Symbol(`@ecopages/radiant/on-updated:${x}:cleanup`);Q(M,(H)=>{H.registerConnectedCallback(()=>{let P=H[x].bind(H),W=[];if(Array.isArray(F))for(let Z of F)W.push(H.registerUpdateCallback(Z,P));else if(typeof F==="string")W.push(H.registerUpdateCallback(F,P));H[$]=()=>{for(let Z of W)Z()}}),H.registerCleanupCallback(()=>{let P=H[$];if(typeof P==="function")P(),delete H[$]})})}}function zF(F){return function(M,x){x.addInitializer(function(){let $=M.bind(this);if(Object.defineProperty(this,x.name,{value:$,configurable:!0,writable:!0}),Array.isArray(F))for(let H of F)this.registerUpdateCallback(H,$);else if(typeof F==="string")this.registerUpdateCallback(F,$)})}}function W$(F){function M(x,$,H){return U(zF(F),_F(F),x,$,H)}return M}var W0=Symbol.for("@ecopages/radiant.reactivePropDefinitions");function p(F,M,x){let $=F.constructor,H=$[W0]??[];if(H.some((P)=>P.name===M))return;H.push({name:M,options:x}),$[W0]=H}function X$(F){return(F.constructor[W0]??[]).slice()}function kF({type:F,attribute:M,reflect:x,defaultValue:$,bind:H}){return q(F,$),(P,W)=>{let Z=M??W;p(P,W,{type:F,reflect:x,attribute:Z,defaultValue:$,bind:H});let X=Symbol.for(`@ecopages/radiant.ssr-prop:${W}`);Object.defineProperty(P,W,{get(){return this[X]??$},set(B){this[X]=B},configurable:!0,enumerable:!0}),Q(P,(B)=>{B.registerConnectedCallback(()=>{let A=B[W],G=$===void 0?A:$;B.createReactiveProp(W,{type:F,reflect:x,attribute:Z,defaultValue:G,bind:H})})})}}function KF({type:F,attribute:M,reflect:x,defaultValue:$,bind:H}){return q(F,$),function(P,W){let Z=String(W.name),X=M??Z,B=Symbol(`@ecopages/radiant/reactive-prop:${Z}:initializer`);return W.addInitializer(function(){let A=this[B],G=$===void 0?A:$;p(this,Z,{type:F,reflect:x,attribute:X,defaultValue:$,bind:H}),this.createReactiveProp(Z,{type:F,reflect:x,attribute:X,defaultValue:G,bind:H})}),function(A){return this[B]=A,A}}}function L$(F){function M(x,$){return J(KF(F),kF(F),x,$)}return M}function KM(F){return!(F instanceof Element)}function EM(F){return"shadowRoot"in F?F.shadowRoot??null:null}function IM(F){return F instanceof Element?F:F.host}function wM(F,M="light"){let x=EM(F);if(M==="shadow")return x?[x]:[];if(M==="both")return x?[F,x]:[F];return[F]}function i(F,M){if(KM(F)&&M.scope&&M.scope!=="light")throw Error("RadiantController queries only support light DOM scope.");let x=IM(F),$="selector"in M?M.selector:`[data-ref="${M.ref}"]`,H=null,P=()=>{let W=wM(x,M.scope);if(M.all)return W.flatMap((Z)=>Array.from(Z.querySelectorAll($)));for(let Z of W){let X=Z.querySelector($);if(X)return X}return null};return{get value(){if(M.cache){if(H===null||M.all&&Array.isArray(H)&&!H.length)H=P();return H}return P()}}}function EF({cache:F=!0,...M}){return(x,$)=>{Q(x,(H)=>{H.registerConnectedCallback(()=>{let P=i(H,{cache:F,...M});Object.defineProperty(H,$,{get(){return P.value},enumerable:!0,configurable:!0})})})}}function IF(F){return function(M,x){let $=String(x.name);x.addInitializer(function(){let H=i(this,F);Object.defineProperty(this,$,{get(){return H.value},enumerable:!0,configurable:!0})})}}function S$(F){function M(x,$){return J(IF(F),EF(F),x,$)}return M}function I(F,M={}){let x=null,$,H=()=>{if(M.all)return F.getSlotElements(M.name);return F.getSlotElements(M.name)[0]??null};return{get value(){if(M.cache===!1)return H();let P=F.slotProjectionVersion??0;if($!==P)x=H(),$=P;return x}}}function wF(F={}){return(M,x)=>{let $=(W)=>{return typeof Object.getOwnPropertyDescriptor(W,x)?.get==="function"},H=(W)=>{if($(W))return;let Z=I(W,F);Object.defineProperty(W,x,{get(){return Z.value},enumerable:!0,configurable:!0})},P=new WeakMap;Object.defineProperty(M,x,{get(){let W=P.get(this);if(!W)W=I(this,F),P.set(this,W);return W.value},enumerable:!0,configurable:!0}),Q(M,(W)=>{d0(W,()=>{H(W)}),W.registerConnectedCallback(()=>{H(W)})})}}function CF(F={}){return function(M,x){let $=String(x.name);x.addInitializer(function(){let H=I(this,F);Object.defineProperty(this,$,{get(){return H.value},enumerable:!0,configurable:!0})})}}function d$(F={}){function M(x,$){return J(CF(F),wF(F),x,$)}return M}function OF(F){return I0({type:"signal",...F})}function SF(F){return w0(F)}import{createMarkupNodeLike as CM}from"@ecopages/jsx";import{state as OM}from"@ecopages/signals";function l(F){return typeof F==="object"&&F!==null&&typeof F.get==="function"&&typeof F.set==="function"&&typeof F.subscribe==="function"&&typeof F.update==="function"}class w{host;hydrate;hydrationKey;property;source;currentValue;hasAppliedHostHydration=!1;sourceUnsubscribe;constructor(F){this.host=F.host,this.hydrate=F.hydrate,this.hydrationKey=F.hydrationKey,this.property=F.property,this.source=F.source??OM(this.resolveInitialValue(F.initialValue)),this.currentValue=this.source.get()}get(){return this.source.get()}set(F){this.source.set(F)}subscribe(F){return this.source.subscribe(F)}update(F){this.set(F(this.get()))}connectToSource(){if(this.sourceUnsubscribe)return;let F=this.source.get();if(!Object.is(this.currentValue,F)){let M=this.currentValue;this.currentValue=F,this.host.notifyUpdate(this.property,M,F)}this.sourceUnsubscribe=this.source.subscribe((M)=>{this.handleSourceChange(M)})}disconnectFromSource(){this.sourceUnsubscribe?.(),this.sourceUnsubscribe=void 0}hydrateFromHost(){if(!this.hydrate||this.hasAppliedHostHydration)return;this.hasAppliedHostHydration=!0;let F=this.source.get(),M=this.resolveInitialValue(F);if(!Object.is(F,M))this.source.set(M),this.currentValue=this.source.get(),this.host.notifyUpdate(this.property,F,this.currentValue)}renderHydrationScript(){let F=this.renderHydrationScriptTag();if(!F)return;return CM(F)}renderHydrationScriptTag(){let F=this.serializeHydrationValue();if(!F)return;return OF({hydrationKey:this.hydrationKey,serializedValue:F})}findHydrationScriptElement(){if(!(this.host instanceof Element))return null;return O0(this.host,"signal",this.hydrationKey)}isObject(F){return typeof F==="object"&&!Array.isArray(F)&&F!==null}resolveInitialValue(F){if(!this.hydrate)return F;let M=this.findHydrationScriptElement();if(!M)return F;let x=C0(M,F);if(this.hydrate===Object&&this.isObject(x)&&this.isObject(F))return{...F,...x};return x}serializeHydrationValue(){if(!this.hydrate)return;let F=JSON.stringify(this.get());if(typeof F!=="string")return;return SF(F)}handleSourceChange(F){let M=this.currentValue;if(this.currentValue=F,!Object.is(M,F))this.host.notifyUpdate(this.property,M,F)}}function n(F){return new w(F)}function Z0(F={}){return(M,x)=>{let $=(H)=>{let P=H[x];if(P instanceof w)return P;let W=typeof F.source==="function"?F.source(H):F.source??(l(P)?P:void 0),Z=F.bind??H.shouldAutoBindReactiveMembers?.()??!1,X=W!==void 0?F.initial:P===void 0?F.initial:P;H.defineReactiveBinding(x,Z);let B=n({host:H,hydrate:F.hydrate,hydrationKey:x,initialValue:X,property:x,source:W});if(H.registerConnectedCallback(()=>{B.hydrateFromHost(),B.connectToSource()}),H.registerCleanupCallback(()=>{B.disconnectFromSource()}),F.hydrate)H.registerHydrationBinding(x,B);return H[x]=B,B};Q0(M,(H)=>{let P=$(H);H.registerConnectedCallback(()=>{if(!(H[x]instanceof w))H[x]=P})})}}function X0(F={}){return function(M,x){let $=String(x.name);return function(H){let P=typeof F.source==="function"?F.source(this):F.source??(l(H)?H:void 0),W=P!==void 0?F.initial:H===void 0?F.initial:H,Z=F.bind??this.shouldAutoBindReactiveMembers?.()??!1;this.defineReactiveBinding($,Z);let X=n({host:this,hydrate:F.hydrate,hydrationKey:$,initialValue:W,property:$,source:P});if(this.registerConnectedCallback(()=>{X.hydrateFromHost(),X.connectToSource()}),this.registerCleanupCallback(()=>{X.disconnectFromSource()}),F.hydrate)this.registerHydrationBinding($,X);return X}}}function P1(F,M){if(typeof M<"u"){if(typeof M==="object"){if(F!==void 0)throw TypeError("@signal standard decorators require an undefined target");return X0()(void 0,M)}if(F===void 0)throw TypeError("@signal legacy decorators require a host target");return Z0()(F,M)}let x=F??{};function $(H,P){if(typeof P==="object"){if(H!==void 0)throw TypeError("@signal standard decorators require an undefined target");return X0(x)(void 0,P)}if(H===void 0)throw TypeError("@signal legacy decorators require a host target");return Z0(x)(H,P)}return $}function fF(F,M){Q(F,(x)=>{x.registerConnectedCallback(()=>{x.createReactiveField(M,x[M],{bind:x.shouldAutoBindReactiveMembers?.()??!1})})})}function VF(F,M){let x=Symbol(`__${String(M.name)}__value`),$=String(M.name);return M.addInitializer(function(){this.defineReactiveBinding($,this.shouldAutoBindReactiveMembers?.()??!1),this.registerReactiveDependencyReader($,()=>this[x]),Object.defineProperty(this,M.name,{get(){return this.trackReactiveRead($),this[x]},set(H){let P=this[x];if(P!==H)this[x]=H,this.notifyUpdate($,P,H)},enumerable:!0,configurable:!0})}),function(H){return this[x]=H,H}}function D1(F,M){return J(VF,fF,F,M)}export{v as visitControllerElements,vx as stopControllers,D1 as state,Nx as startControllers,P1 as signal,$F as setControllerRegistrationStrategy,fx as resolveRegisteredController,jM as replaceController,HF as registerControllerWithConfiguredStrategy,UM as registerController,d$ as querySlot,S$ as query,L$ as prop,MF as parseControllerIdentifiers,W$ as onUpdated,t2 as onEvent,Sx as hasRegisteredController,u2 as event,Vx as enableControllerReplacementForHmr,bx as disableControllerReplacementForHmr,E2 as debounce,q2 as customElement,W2 as controller,$2 as bound,ox as attr,r0 as RadiantElement,a0 as RadiantController,xF as ControllerRegistryRuntime,FF as CONTROLLER_REGISTRY_STATE_KEY,h as CONTROLLER_ATTRIBUTE};
|
|
1
|
+
var SM=((F)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(F,{get:(M,x)=>(typeof require<"u"?require:M)[x]}):F)(function(F){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+F+'" is not supported')});var A0=Symbol.for("@ecopages/radiant.legacy-instance-initializers"),G0=Symbol.for("@ecopages/radiant.legacy-post-construction-initializers"),bF=Symbol.for("@ecopages/radiant.legacy-executed-post-construction-initializers");function Q(F,M){D0(F,A0,M)}function Q0(F,M){D0(F,G0,M)}function C(F){o(F,A0)}function j(F){let M=F;o(F,G0,M[bF]??=new Set)}function D0(F,M,x){let $=F,H=Object.prototype.hasOwnProperty.call($,M)?$[M]:void 0;if(Array.isArray(H)){H.push(x);return}Object.defineProperty($,M,{value:[x]})}function o(F,M,x,$=Object.getPrototypeOf(F)){if(!$||$===Object.prototype)return;o(F,M,x,Object.getPrototypeOf($));let H=$[M];if(!Array.isArray(H))return;for(let P of H){if(x?.has(P))continue;P(F),x?.add(P)}}function q0(F){switch(F){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function NF(F){switch(typeof F){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(F))return"array";if(Object.prototype.toString.call(F)==="[object Object]")return"object"}function K(F){switch(F){case Number:return 0;case String:return"";case Boolean:return!1;default:return null}}function vF(F){try{return JSON.parse(F)}catch{throw TypeError("Invalid JSON string")}}var hF={array(F){let M=vF(F);if(!Array.isArray(M))throw TypeError(`Expected an array but got a value of type "${typeof M}"`);return M},boolean(F){return!(F==="0"||String(F).toLowerCase()==="false")},number(F){return Number(F.replace(/_/g,""))},object(F){let M=JSON.parse(F);if(M===null||typeof M!=="object"||Array.isArray(M))throw TypeError(`expected value of type "object" but instead got value "${F}" of type "${NF(M)}"`);return M},string(F){return F}},R0={default:U0,array:J0,object:J0};function J0(F){return JSON.stringify(F)}function U0(F){return`${F}`}function _(F,M){let x=q0(M);if(!x)throw TypeError(`[radiant-element] Unknown type "${M}"`);return hF[x](F)}function O(F,M){let x=q0(M);if(!x)throw TypeError(`[radiant-element] Unknown type "${M}"`);return(R0[x]??R0.default??U0)(F)}function gF(F){return typeof F==="boolean"}function uF(F){return typeof F==="number"}function yF(F){return typeof F==="string"}function mF(F){return Array.isArray(F)}function cF(F){return typeof F==="object"&&!Array.isArray(F)&&F!==null}function j0(F,M){switch(F){case Boolean:return gF(M);case Number:return uF(M);case String:return yF(M);case Array:return mF(M);case Object:return cF(M);default:return!1}}var Y0=(F,M,x,$)=>{if(M===Boolean){let P=F.getAttribute(x);if(P===null)return $;return P===""?!0:_(P,M)}let H=F.getAttribute(x);return H!==null?_(H,M):$??K(M)};function q(F,M){if(M!==void 0&&!j0(F,M))throw Error(`defaultValue does not match the expected type for ${F.name}`)}function L0(F,M,x,$){return{type:x,name:F,value:$,initialValue:$,attribute:M,converter:{fromAttribute:(H)=>_(H,x),toAttribute:(H)=>O(H,x)}}}import{Computed as dF,subtle as sF,trackDependency as pF}from"@ecopages/signals";function iF(F){return F}function T0(F){return F}var _0={trackDependency(F){pF(iF(F))},createComputed(F){return new dF(F)},createWatcher(F){let M=new sF.Watcher(F);return{watch(x){M.watch(T0(x))},unwatch(x){M.unwatch(T0(x))}}}};var z0=_0;function S(){return z0}function lF(F){z0=F}function a(F){S().trackDependency(F)}function f(F){return S().createComputed(F)}function V(F){return S().createWatcher(F)}function k0(F){return F.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}var Y="data-hydration",E0="data-hydration-type",t="data-hydration-key";function I0(F){let M=F.hydrationKey?` ${t}="${nF(F.hydrationKey)}"`:"";return`<script type="application/json" ${Y} ${E0}="${F.type}"${M}>${F.serializedValue}</script>`}function w0(F){return k0(F)}function C0(F,M){let x=F.textContent;if(!x)return M;try{return JSON.parse(x)}catch{if(typeof console<"u")console.warn(`[@ecopages/radiant] Failed to parse hydration payload from <script ${Y}>:`,x.slice(0,120));return M}}function O0(F,M,x){let $=F.children;if(!$||$.length===0){let H=F.childNodes;if(!H||H.length===0)return null;for(let P=0;P<H.length;P+=1){let W=H[P];if(W.nodeType!==1)continue;let Z=W;if(K0(Z,M,x))return Z}return null}for(let H=0;H<$.length;H+=1)if(K0($[H],M,x))return $[H];return null}function K0(F,M,x){if(F.tagName!=="SCRIPT"||!F.hasAttribute(Y)||F.getAttribute(E0)!==M)return!1;if(x!==void 0)return F.getAttribute(t)===x;return!F.hasAttribute(t)}function nF(F){return F.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}import{createMarkupNodeLike as rF,isKeyedJsxValue as S0,isSlotJsxValue as oF}from"@ecopages/jsx";var z="",N="data-radiant-slot-projection";function f0(F){let M=new Map;for(let x of Array.from(F.childNodes)){if(FM(x))continue;aF(M,eF(x),x)}return M}function V0(F){let M;try{M=JSON.parse(F)}catch{if(typeof console<"u")console.warn("[@ecopages/radiant] Failed to parse slot projection payload:",F.slice(0,120));return new Map}let x=new Map;for(let[$,H]of Object.entries(M)){if(!Array.isArray(H)||H.length===0)continue;x.set(e($),H.map((P)=>rF(P)))}return x}function b0(F){let M=Array.from(F.childNodes).filter((x)=>y0(x)).map((x)=>b(x)??"").filter((x)=>x!=="");return M.length>0?M.join(""):void 0}function N0(F){let M={};for(let[x,$]of F.entries()){let H=$.map((P)=>b(P)).filter((P)=>P!==void 0&&P!=="");if(H.length>0)M[x]=H}return Object.keys(M).length>0?JSON.stringify(M):void 0}function v0(F,M){let x=!1,$=(P)=>{if(oF(P))return x=!0,xM(P,M,$);if(S0(P))return tF(P,$(P.value));if(MM(P))return{_$rType$:1,rootLocalName:P.rootLocalName,ssrIntrinsicProps:P.ssrIntrinsicProps,strings:P.strings,values:P.values.map((W)=>$(W))};if(g0(P))return Array.from(P,(W)=>$(W));return P},H=$(F);return{containsSlots:x,value:H}}function h0(F){for(let M of Array.from(F.childNodes)){if(!u0(M))continue;let x=M.textContent??void 0;return M.parentNode?.removeChild(M),x}return}function aF(F,M,x){let $=F.get(M);if($){$.push(x);return}F.set(M,[x])}function tF(F,M){return{...F,value:M}}function eF(F){if(F instanceof Element)return e(F.getAttribute("slot"));return z}function g0(F){return typeof F!=="string"&&typeof F==="object"&&F!==null&&Symbol.iterator in F}function u0(F){return F instanceof HTMLScriptElement&&F.hasAttribute(N)}function y0(F){return F instanceof HTMLScriptElement&&F.hasAttribute(Y)}function FM(F){return u0(F)||y0(F)}function MM(F){return typeof F==="object"&&F!==null&&F._$rType$===1&&Array.isArray(F.strings)&&Array.isArray(F.values)}function e(F){return F??z}function b(F){if(F===void 0||F===null||F===!1||F===!0)return;if(typeof Node<"u"&&F instanceof Node){if(F.nodeType===Node.TEXT_NODE)return F.textContent??"";return F.outerHTML??F.textContent??void 0}if(S0(F))return b(F.value);if(typeof F==="string"||typeof F==="number"||typeof F==="bigint")return String(F);if(typeof F==="object"&&F!==null&&"outerHTML"in F)return typeof F.outerHTML==="string"?F.outerHTML:F.textContent??void 0;if(g0(F))return Array.from(F,(M)=>b(M)??"").join("");return}function xM(F,M,x){let $=M.get(e(F.name));if($&&$.length>0)return $.length===1?$[0]:$;if(F.fallback===void 0)return"";return x(F.fallback)}import{hydrate as $M,render as HM}from"@ecopages/jsx";class F0{#F;#M=new Map;#x;#H;#$;#P=0;constructor(F){this.#F=F,this.#H=V(()=>{this.#F.requestUpdate()})}get slotProjectionVersion(){return this.#P}getSlotElements(F){return this.ensureSlotProjectionState(),(this.#M.get(F??z)??[]).filter((M)=>typeof Node<"u"&&M instanceof Element)}getSlotProjectionScriptTag(){this.ensureSlotProjectionState();let F=N0(this.#M);if(!F)return;return`<script type="application/json" ${N}>${PM(F)}</script>`}getAuthoredHydrationScriptMarkup(){return b0(this.#F)??void 0}hydrate(F){this.disconnectSlotProjectionObserver();try{$M(this.resolveTrackedRenderOutput().value,F)}finally{this.observeSlotProjection()}}render(F){this.disconnectSlotProjectionObserver();try{HM(this.resolveTrackedRenderOutput().value,F)}finally{this.observeSlotProjection()}}observeSlotProjection(){if(typeof MutationObserver>"u"||this.#$||!this.#F.isConnected)return;this.#$=new MutationObserver((F)=>this.handleSlotProjectionMutations(F)),this.#$.observe(this.#F,{childList:!0})}disconnectSlotProjectionObserver(){this.#$?.disconnect(),this.#$=void 0}disconnectRenderWatcher(){if(!this.#x)return;this.#H.unwatch(this.#x),this.#x=void 0}resolveTrackedRenderOutput(){let F=f(()=>this.resolveRenderOutput()),M=F.get();if(!this.#F.isConnected)return M;if(this.#x)this.#H.unwatch(this.#x);return this.#x=F,this.#H.watch(F),M}dispose(){this.disconnectSlotProjectionObserver(),this.disconnectRenderWatcher()}ensureSlotProjectionState(){if(this.#M.size>0)return;let F=this.#F.isConnected?h0(this.#F):void 0;if(typeof F==="string"&&F!==""){this.#M=V0(F),this.#P+=1;return}if(this.#F.childNodes.length>0)this.#M=f0(this.#F),this.#P+=1}handleSlotProjectionMutations(F){let M=!1;for(let x of F){for(let $ of Array.from(x.removedNodes))if(this.removeProjectedSlotNode($))M=!0;for(let $ of Array.from(x.addedNodes)){if($.parentNode!==this.#F)continue;if(this.addProjectedSlotNode($))M=!0}}if(M)this.#P+=1,this.#F.requestUpdate()}addProjectedSlotNode(F){if(F instanceof HTMLScriptElement&&(F.hasAttribute(N)||F.hasAttribute(Y)))return!1;let M=F instanceof Element?F.getAttribute("slot")??z:z,x=this.#M.get(M);if(x){if(x.includes(F))return!1;return x.push(F),!0}return this.#M.set(M,[F]),!0}removeProjectedSlotNode(F){for(let[M,x]of this.#M.entries()){let $=x.indexOf(F);if($===-1)continue;if(x.splice($,1),x.length===0)this.#M.delete(M);return!0}return!1}resolveRenderOutput(){return this.ensureSlotProjectionState(),v0(this.#F.render(),this.#M)}}function PM(F){return F.replace(/</g,"\\u003c")}import{createSubscribableJsxValue as WM}from"@ecopages/jsx";class m0{read;subscribers=new Set;watcherListeners=new Set;version=0;constructor(F){this.read=F}get(){return a(this),this.read()}subscribe(F){return this.subscribers.add(F),()=>{this.subscribers.delete(F)}}addWatcher(F){return this.watcherListeners.add(F),()=>{this.watcherListeners.delete(F)}}getVersion(){return this.version}notify(F){this.version+=1;let M;try{this.notifyWatchers()}catch(x){M=x}if(this.publish(F),M)throw M}publish(F){for(let M of this.subscribers)M(F)}notifyWatchers(){let F=[];for(let M of this.watcherListeners)try{M()}catch(x){F.push(x)}if(F.length===1)throw F[0];if(F.length>1)throw AggregateError(F,"Multiple reactive dependency notifications failed.")}}function ZM(F){return typeof F==="object"&&F!==null&&typeof F.get==="function"}class E{host;access;shouldAutoBind;bindings;$;reactiveFields=new Map;reactiveDependencies=new Map;reactiveDependencyReaders=new Map;reactiveBindings=new Map;updateCallbacks=new Map;onConnectedCallbacks=[];onDisconnectedCallback=[];constructor(F,M,x){this.host=F;this.access=M;this.shouldAutoBind=x;let $=this.createReactiveBindingNamespace();this.bindings=$,this.$=$}connectHost(){for(let F of this.onConnectedCallbacks)F()}disconnectHost(){for(let F of this.onDisconnectedCallback)F()}notifyUpdate(F,M,x){if(M===x)return;this.reactiveDependencies.get(F)?.notify(x);let $=this.updateCallbacks.get(F);if($)for(let H of $)H()}registerCleanupCallback(F){this.onDisconnectedCallback.push(F)}registerConnectedCallback(F){this.onConnectedCallbacks.push(F)}registerHydrationBinding(F,M){}registerReactiveDependencyReader(F,M){this.reactiveDependencyReaders.set(F,M)}registerUpdateCallback(F,M){if(!this.updateCallbacks.has(F))this.updateCallbacks.set(F,new Set);let x=this.updateCallbacks.get(F);return x.add(M),()=>{if(x.delete(M),x.size===0)this.updateCallbacks.delete(F)}}getReactiveBinding(F){let M=this.reactiveBindings.get(F);if(M)return M;let x=WM({getValue:()=>this.readReactiveBindingValue(F),subscribe:($)=>this.registerUpdateCallback(F,()=>{$(this.readReactiveBindingValue(F))})});return this.reactiveBindings.set(F,x),x}defineReactiveBinding(F,M=!0){let x=typeof M==="string"?M:M?`$${F}`:void 0,$=this.access.getBindingTarget?.(this.host)??this.host;if(!x||this.access.hasProperty(this.host,x))return;this.access.defineProperty($,x,{get:()=>this.getReactiveBinding(F),enumerable:!1,configurable:!0})}trackReactiveRead(F){a(this.getReactiveDependency(F))}defineReactiveAccessor(F,M){let x=M.bind??this.shouldAutoBind();if(this.defineReactiveBinding(F,x),this.registerReactiveDependencyReader(F,M.getValue),this.access.defineProperty(this.host,F,{get:()=>{return this.trackReactiveRead(F),M.getValue()},set:($)=>{let H=M.getValue();if(H===$)return;M.setValue($),this.notifyUpdate(F,H,$)},enumerable:!0,configurable:!0}),M.notifyInitialValue!==void 0)this.notifyUpdate(F,void 0,M.notifyInitialValue)}createReactiveField(F,M,x={}){let $={name:F,value:M,initialValue:M};this.reactiveFields.set(F,$),this.defineReactiveAccessor(F,{bind:x.bind,getValue:()=>this.reactiveFields.get(F)?.value,setValue:(H)=>{this.reactiveFields.set(F,{...$,value:H})},notifyInitialValue:M})}createReactiveBindingNamespace(){return new Proxy(Object.create(null),{get:(F,M)=>{if(typeof M!=="string")return;return this.getReactiveBinding(M)}})}getReactiveDependency(F){let M=this.reactiveDependencies.get(F);if(M)return M;let x=new m0(()=>this.readReactiveDependencyValue(F));return this.reactiveDependencies.set(F,x),x}readReactiveDependencyValue(F){let M=this.reactiveDependencyReaders.get(F);if(M)return M();return this.readReactiveBindingValue(F)}readReactiveBindingValue(F){let M=this.access.readProperty(this.host,F);if(ZM(M))return M.get();return M}}var M0=Symbol.for("@ecopages/radiant.ssr-preparation-callbacks"),c0=Symbol.for("@ecopages/radiant.ssr-preparation-running");function d0(F,M){let $=F[M0];if(Array.isArray($)){$.push(M);return}Object.defineProperty(F,M0,{value:[M],configurable:!0})}function s0(F){let M=F,x=M[M0];if(!Array.isArray(x))return;M[c0]=!0;try{for(let $ of x)$()}finally{delete M[c0]}}var x0=Symbol.for("@ecopages/radiant.hydrator-installed");function Px(){globalThis[x0]=!0}function Wx(){delete globalThis[x0]}function p0(){return globalThis[x0]===!0}import{getActiveSsrScopeValue as XM,withActiveSsrScopeValue as BM}from"@ecopages/jsx/server";var i0=Symbol.for("@ecopages/radiant.element-ssr-runtime");function l0(){return XM(i0)}function Bx(F,M){return BM(i0,F,M)}import{hasHydrationMarkers as AM,jsx as GM}from"@ecopages/jsx";var QM=DM();function DM(){if(typeof HTMLElement<"u")return HTMLElement;throw Error("RadiantElement requires HTMLElement. Install '@ecopages/radiant/server/light-dom-shim' before SSR imports.")}class r0 extends QM{renderRootMode="light";bindings;$;reactiveHost;reactivePropertyState;contextProviders=new Map;hydrationBindings=new Map;eventSubscriptions=new Map;eventEmitters=new Map;elementReady=!1;isRendering=!1;isFirstConnectPending=!1;isRenderScheduled=!1;needsRender=!1;renderRuntime;constructor(){super();this.reactivePropertyState=new o0(this),this.reactiveHost=new E(this,{defineProperty:(F,M,x)=>Object.defineProperty(F,M,x),getBindingTarget:(F)=>Object.getPrototypeOf(F)??F,hasProperty:(F,M)=>(M in F),readProperty:(F,M)=>F[M]},()=>this.shouldAutoBindReactiveMembers()),this.bindings=this.reactiveHost.bindings,this.$=this.reactiveHost.$,C(this)}get slotProjectionVersion(){return this.renderRuntime?.slotProjectionVersion??0}connectedCallback(){j(this);let F=this.isFirstConnectPending;if(this.elementReady=!0,this.reactiveHost.connectHost(),F)return;this.isFirstConnectPending=!0,queueMicrotask(()=>{if(this.isFirstConnectPending=!1,!this.isConnected)return;if(!this.shouldRunRenderLifecycle())return;if(this.getOrCreateRenderRuntime().observeSlotProjection(),n0(this)){if(this.needsRender=!1,this.hydrate(),this.needsRender)this.update();return}this.update()})}connectedContextCallback(F){}disconnectedCallback(){this.renderRuntime?.dispose(),this.renderRuntime=void 0,this.removeAllSubscribedEvents(),this.reactiveHost.disconnectHost()}notifyUpdate(F,M,x){this.reactiveHost.notifyUpdate(F,M,x)}attributeChangedCallback(F,M,x){if(M===x||!this.elementReady)return;this.reactivePropertyState.applyAttributeChange(F,M,x)}renderTemplate({target:F=this,template:M,insert:x="replace",sanitize:$}){let H=$?$(M):M;switch(x){case"replace":F.innerHTML=H;break;case"beforeend":F.insertAdjacentHTML("beforeend",H);break;case"afterbegin":F.insertAdjacentHTML("afterbegin",H);break;case"beforebegin":F.insertAdjacentHTML("beforebegin",H);break;case"afterend":F.insertAdjacentHTML("afterend",H);break}}render(){return GM("slot",{})}renderViewToString(F={}){if(!this.shouldRunRenderLifecycle())return this.innerHTML;return j(this),this.prepareForSsr(),RM().renderView(this,F)}hydrate(){if(!this.shouldRunRenderLifecycle()||!this.isConnected||this.isRendering)return;let{renderTarget:F}=this.resolveRenderSurface(),M=this.getOrCreateRenderRuntime();this.isRendering=!0;try{M.hydrate(F)}finally{this.isRendering=!1}}requestUpdate(){if(!this.shouldRunRenderLifecycle())return;if(this.needsRender=!0,this.isRenderScheduled)return;this.isRenderScheduled=!0,queueMicrotask(()=>{if(this.isRenderScheduled=!1,!this.needsRender)return;this.update()})}update(){if(!this.shouldRunRenderLifecycle())return;let{renderTarget:F}=this.resolveRenderSurface(),M=this.getOrCreateRenderRuntime();if(this.needsRender=!0,!this.isConnected||this.isRendering)return;if(this.isFirstConnectPending&&n0(this))return;while(this.needsRender&&this.isConnected){this.needsRender=!1,this.isRendering=!0;try{M.render(F)}finally{this.isRendering=!1}}}registerReactiveProperty(F){this.reactivePropertyState.register(F)}getReactiveProperties(){return this.reactivePropertyState.getAll()}registerReactiveDependencyReader(F,M){this.reactiveHost.registerReactiveDependencyReader(F,M)}registerContextProvider(F,M){this.contextProviders.set(F,M),this.hydrationBindings.set(F,M)}registerHydrationBinding(F,M){this.hydrationBindings.set(F,M)}getContextProviders(){return j(this),[...this.contextProviders.values()]}getHydrationBindings(){return j(this),[...this.hydrationBindings.values()]}prepareForSsr(){s0(this)}shouldAutoBindReactiveMembers(){return!0}shouldRunRenderLifecycle(){return this.render!==r0.prototype.render}getRenderTarget(){if(this.renderRootMode!=="shadow")return this;if(this.shadowRoot)return this.shadowRoot;if(typeof this.attachShadow!=="function")throw Error("RadiantElement shadow render mode requires attachShadow().");return this.attachShadow({mode:"open"})}registerUpdateCallback(F,M){return this.reactiveHost.registerUpdateCallback(F,M)}getReactiveBinding(F){return this.reactiveHost.getReactiveBinding(F)}bind(F){return this.reactiveHost.getReactiveBinding(F)}defineReactiveBinding(F,M=!0){this.reactiveHost.defineReactiveBinding(F,M)}trackReactiveRead(F){this.reactiveHost.trackReactiveRead(F)}subscribeEvents(F){let M=[];for(let x of F)M.push(this.subscribeEvent(x));return M}subscribeEvent(F){let{interactionTarget:M}=this.resolveRenderSurface(),x=(H)=>{if(H.target&&H.target.matches(F.selector))F.listener.call(this,H)},$=`${F.type}:${F.selector}`;return M.addEventListener(F.type,x,F.options),this.eventSubscriptions.set($,{...F,listener:x,target:M}),this.unsubscribeEvent.bind(this,$)}unsubscribeEvent(F){let M=this.eventSubscriptions.get(F);if(M)M.target.removeEventListener(M.type,M.listener,M.options),this.eventSubscriptions.delete(F)}removeAllSubscribedEvents(){for(let F of this.eventSubscriptions.values())F.target.removeEventListener(F.type,F.listener,F.options);this.eventSubscriptions.clear()}registerCleanupCallback(F){this.reactiveHost.registerCleanupCallback(F)}registerConnectedCallback(F){this.reactiveHost.registerConnectedCallback(F)}registerEventEmitter(F,M){this.eventEmitters.set(F,M)}getRef(F,M=!1){let x=`[data-ref="${F}"]`,{queryRoot:$}=this.resolveRenderSurface();if(M)return Array.from($.querySelectorAll(x));return $.querySelector(x)??null}getSlotElement(F){return this.getSlotElements(F)[0]??null}getSlotElements(F){return this.getOrCreateRenderRuntime().getSlotElements(F)}createReactiveField(F,M,x={}){this.reactiveHost.createReactiveField(F,M,x)}createReactiveProp(F,M){this.reactivePropertyState.create(F,M,(x,$,H)=>Y0(this,x,$,H),(x,$)=>{this.reactiveHost.defineReactiveAccessor(x,$)})}getSlotProjectionScriptTag(){return this.getOrCreateRenderRuntime().getSlotProjectionScriptTag()}getAuthoredHydrationScriptMarkup(){return this.getOrCreateRenderRuntime().getAuthoredHydrationScriptMarkup()}resolveTrackedRenderOutput(){return this.getOrCreateRenderRuntime().resolveTrackedRenderOutput()}getOrCreateRenderRuntime(){if(this.renderRuntime)return this.renderRuntime;return this.renderRuntime=new F0(this),this.renderRuntime}resolveRenderSurface(){let F=this.getRenderTarget(),M=typeof ShadowRoot<"u"&&F instanceof ShadowRoot?F:this;return{interactionTarget:M,queryRoot:M,renderTarget:F}}}function RM(){let F=l0();if(!F)throw Error("Radiant SSR runtime unavailable. Import `@ecopages/radiant/server/render-component` first.");return F}function n0(F){return p0()&&AM(F)}class o0{host;properties=new Map;preUpgradePropertyValues=new Map;constructor(F){this.host=F;for(let M of Object.getOwnPropertyNames(F))this.preUpgradePropertyValues.set(M,Reflect.get(F,M))}register(F){this.properties.set(F.name,F)}getAll(){return Array.from(this.properties.values())}applyAttributeChange(F,M,x){let $=this.properties.get(F);if(!$)return;let H=this.transformAttributeValue(x,$),P=this.transformAttributeValue(M,$);Reflect.set(this.host,$.attribute,H),this.host.notifyUpdate(F,P,H)}create(F,M,x,$){let{type:H,attribute:P,reflect:W,defaultValue:Z}=M,X=P??F,B=this.preUpgradePropertyValues.has(F),A=B?this.preUpgradePropertyValues.get(F):void 0;q(H,Z);let G=B?A:x(H,X,Z);if(this.host.hasAttribute(X)&&(!W||G==null||G===""))this.host.removeAttribute(X);if(B&&Object.prototype.hasOwnProperty.call(this.host,F))Reflect.deleteProperty(this.host,F);let R=L0(F,X,H,G);if(this.register(R),$(F,{bind:M.bind,getValue:()=>this.properties.get(F)?.value,setValue:(D)=>{this.properties.set(F,{...R,value:D}),this.reflectValue(X,W,R,D)}}),G!==void 0)queueMicrotask(()=>{let D=this.properties.get(F)?.value;if(D===void 0)return;this.reflectValue(X,W,R,D),this.host.notifyUpdate(F,void 0,D)})}transformAttributeValue(F,M){return F!==null?M.converter.fromAttribute(F):F}reflectValue(F,M,x,$){if(!M)return;if($==null||$===""||$===!1){this.host.removeAttribute(F);return}let H=x.converter.toAttribute($);this.host.setAttribute(F,H)}}import{render as JM}from"@ecopages/jsx";class a0{host;element;bindings;$;reactiveHost;connected=!1;isRendering=!1;isRenderScheduled=!1;isSsrLifecycle=!1;needsRender=!1;contextProviders=new Map;hydrationBindings=new Map;renderSignal;renderWatcher=V(()=>{this.requestUpdate()});constructor(F){this.host=F,this.element=F,this.reactiveHost=new E(this,{defineProperty:(M,x,$)=>Object.defineProperty(M,x,$),hasProperty:(M,x)=>(x in M),readProperty:(M,x)=>M[x]},()=>this.shouldAutoBindReactiveMembers()),this.bindings=this.reactiveHost.bindings,this.$=this.reactiveHost.$,C(this)}connect(){if(j(this),this.connected=!0,this.reactiveHost.connectHost(),this.shouldRunRenderLifecycle())this.update()}runWithSsrLifecycle(F){this.isSsrLifecycle=!0;try{return F()}finally{this.isSsrLifecycle=!1}}disconnect(){this.connected=!1,this.disconnectRenderWatcher(),this.reactiveHost.disconnectHost()}get isConnected(){return this.connected}render(){return null}requestUpdate(){if(!this.shouldRunRenderLifecycle())return;if(this.needsRender=!0,this.isRenderScheduled)return;this.isRenderScheduled=!0,queueMicrotask(()=>{if(this.isRenderScheduled=!1,!this.needsRender)return;this.update()})}update(){if(!this.shouldRunRenderLifecycle())return;let F=this.getRenderTarget();if(!F)return;if(this.needsRender=!0,!this.connected||this.isRendering)return;while(this.needsRender){this.needsRender=!1,this.isRendering=!0;try{JM(this.resolveTrackedRenderOutput(),F)}finally{this.isRendering=!1}}}bind(F){return this.reactiveHost.getReactiveBinding(F)}getReactiveBinding(F){return this.reactiveHost.getReactiveBinding(F)}createReactiveField(F,M,x={}){this.reactiveHost.createReactiveField(F,M,x)}createReactiveProp(F,M){let{type:x,defaultValue:$,bind:H}=M;q(x,$);let P=new t0(this.host,this,F),Z=P.getInitialValue()??$??K(x);this.reactiveHost.defineReactiveAccessor(F,{bind:H,getValue:()=>Z,setValue:(X)=>{Z=X},notifyInitialValue:Z}),P.install(),this.registerCleanupCallback(()=>{P.restore()})}defineReactiveBinding(F,M=!0){this.reactiveHost.defineReactiveBinding(F,M)}notifyUpdate(F,M,x){this.reactiveHost.notifyUpdate(F,M,x)}registerUpdateCallback(F,M){return this.reactiveHost.registerUpdateCallback(F,M)}connectedContextCallback(F){}registerContextProvider(F,M){this.contextProviders.set(F,M),this.hydrationBindings.set(F,M)}registerHydrationBinding(F,M){this.hydrationBindings.set(F,M)}getSsrContextProviders(){return[...this.contextProviders.values()]}getSsrHydrationBindings(){return[...this.hydrationBindings.values()]}registerCleanupCallback(F){this.reactiveHost.registerCleanupCallback(F)}registerConnectedCallback(F){this.reactiveHost.registerConnectedCallback(F)}registerReactiveDependencyReader(F,M){this.reactiveHost.registerReactiveDependencyReader(F,M)}trackReactiveRead(F){this.reactiveHost.trackReactiveRead(F)}addEventListener(F,M,x){this.host.addEventListener(F,M,x)}removeEventListener(F,M,x){this.host.removeEventListener(F,M,x)}dispatchEvent(F){return this.host.dispatchEvent(F)}getRef(F,M=!1){let x=`[data-ref="${F}"]`;if(M)return Array.from(this.host.querySelectorAll(x));return this.host.querySelector(x)??null}shouldAutoBindReactiveMembers(){return!0}shouldRunRenderLifecycle(){return!this.isSsrLifecycle&&this.render!==a0.prototype.render}getRenderTarget(){return this.host instanceof HTMLElement?this.host:null}disconnectRenderWatcher(){if(!this.renderSignal)return;this.renderWatcher.unwatch(this.renderSignal),this.renderSignal=void 0}resolveTrackedRenderOutput(){let F=f(()=>this.render()),M=F.get();if(!this.connected)return M;if(this.renderSignal)this.renderWatcher.unwatch(this.renderSignal);return this.renderSignal=F,this.renderWatcher.watch(F),M}}class t0{host;controller;propertyName;ownDescriptor;constructor(F,M,x){this.host=F;this.controller=M;this.propertyName=x;this.ownDescriptor=Object.getOwnPropertyDescriptor(this.host,this.propertyName)}getInitialValue(){return Reflect.get(this.host,this.propertyName)}install(){Object.defineProperty(this.host,this.propertyName,{get:()=>Reflect.get(this.controller,this.propertyName),set:(F)=>{Reflect.set(this.controller,this.propertyName,F)},enumerable:this.ownDescriptor?.enumerable??!0,configurable:!0})}restore(){let F=Reflect.get(this.controller,this.propertyName);if(this.ownDescriptor){if(Object.defineProperty(this.host,this.propertyName,this.ownDescriptor),"value"in this.ownDescriptor&&this.ownDescriptor.writable)Reflect.set(this.host,this.propertyName,F);return}Reflect.deleteProperty(this.host,this.propertyName);try{Reflect.set(this.host,this.propertyName,F)}catch{Object.defineProperty(this.host,this.propertyName,{value:F,writable:!0,enumerable:!0,configurable:!0})}}}var e0=Symbol.for("@ecopages/radiant.controllerIdentifier");function $0(F,M){F[e0]=M}function wx(F){return F[e0]}var h="data-controller",FF=Symbol.for("@ecopages/radiant.controller-registry-state");function qM(){let F=globalThis,M=F[FF];if(M)return M;let x={activeRuntimes:new Set,controllerRegistrationStrategy:"keep-current",controllerRegistry:new Map};return F[FF]=x,x}var g=qM(),L=g.controllerRegistry,k=g.activeRuntimes;function MF(F){let M=F.getAttribute(h);if(!M)return[];return M.split(/\s+/).map((x)=>x.trim()).filter((x)=>x.length>0)}function v(F,M){if(F instanceof Element&&F.hasAttribute(h))M(F);for(let x of Array.from(F.querySelectorAll(`[${h}]`)))M(x)}class xF{root;controllersByElement=new Map;observer;stopped=!1;constructor(F=document){this.root=F;this.start()}stop(){if(this.stopped)return;this.stopped=!0,this.observer?.disconnect(),this.observer=void 0;for(let[F,M]of this.controllersByElement)for(let[x]of M)this.disconnectController(F,x);k.delete(this)}reconcileRegisteredController(F){v(this.root,(M)=>{if(!MF(M).includes(F))return;this.connectController(M,F)})}replaceRegisteredController(F){for(let[M,x]of Array.from(this.controllersByElement.entries())){if(!x.has(F))continue;this.disconnectController(M,F)}this.reconcileRegisteredController(F)}start(){if(v(this.root,(M)=>{this.reconcileElement(M)}),typeof MutationObserver>"u"){k.add(this);return}this.observer=new MutationObserver((M)=>{for(let x of M){if(x.type==="attributes"&&x.target instanceof Element){this.reconcileElement(x.target);continue}for(let $ of Array.from(x.removedNodes)){if(!($ instanceof Element))continue;v($,(H)=>{this.disconnectElementControllers(H)})}for(let $ of Array.from(x.addedNodes)){if(!($ instanceof Element))continue;v($,(H)=>{this.reconcileElement(H)})}}});let F=this.root instanceof Document?this.root.documentElement:this.root;this.observer.observe(F,{attributeFilter:[h],attributes:!0,childList:!0,subtree:!0}),k.add(this)}reconcileElement(F){let M=new Set(MF(F)),x=this.controllersByElement.get(F);if(x){for(let $ of x.keys())if(!M.has($))this.disconnectController(F,$)}for(let $ of M)this.connectController(F,$)}connectController(F,M){let x=L.get(M);if(!x)return;let $=this.controllersByElement.get(F);if(!$)$=new Map,this.controllersByElement.set(F,$);if($.has(M))return;let H=new x(F);$.set(M,H),H.connect()}disconnectController(F,M){let x=this.controllersByElement.get(F);if(!x)return;let $=x.get(M);if(!$)return;if($.disconnect(),x.delete(M),x.size===0)this.controllersByElement.delete(F)}disconnectElementControllers(F){let M=this.controllersByElement.get(F);if(!M)return;for(let x of Array.from(M.keys()))this.disconnectController(F,x)}}function UM(F,M){let x=L.get(F);if(x)return x;$0(M,F),L.set(F,M);for(let $ of Array.from(k))$.reconcileRegisteredController(F);return M}function Sx(F){return L.has(F)}function fx(F){return L.get(F)}function jM(F,M){if(L.get(F)===M)return M;$0(M,F),L.set(F,M);for(let $ of Array.from(k))$.replaceRegisteredController(F);return M}function $F(F){g.controllerRegistrationStrategy=F}function Vx(){$F("replace")}function bx(){$F("keep-current")}function HF(F,M){if(g.controllerRegistrationStrategy==="replace")return jM(F,M);return UM(F,M)}function Nx(F=document){return new xF(F)}function vx(){for(let F of Array.from(k))F.stop()}function YM(F){return typeof F==="function"}function J(F,M,x,$){if(typeof $==="object")return F(void 0,$);return M(x,$)}function U(F,M,x,$,H){if(typeof $==="object"){if(!YM(x))throw TypeError("Standard method decorators require a method target");return F(x,$)}if(!H)throw TypeError("Legacy method decorators require a property descriptor");return M(x,$,H)}function H0(F){if(F instanceof Element)return F;if("host"in F)return F.host;return F.element}function LM(F){return F.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/_/g,"-").toLowerCase()}function TM(F,M){if(M.converter?.fromAttribute){let x=M.converter.fromAttribute(F);if(F===null&&x===void 0&&"defaultValue"in M)return M.defaultValue;return x}if(M.type){if(F===null)return M.defaultValue??K(M.type);if(M.type===Boolean&&F==="")return!0;return _(F,M.type)}if(F===null)return M.defaultValue;return F}function T(F,M,x){return TM(H0(F).getAttribute(M),x)}function _M(F,M,x,$){let H=$.converter?.toAttribute?$.converter.toAttribute(x):$.type?O(x,$.type):x==null?null:String(x);if(H===null){F.removeAttribute(M);return}F.setAttribute(M,H)}function u(F,M,x={}){if(x.type)q(x.type,x.defaultValue);let $=F,H=x.source??LM(M),P=Symbol(`@ecopages/radiant/attr:${M}:observer`),W=Symbol(`@ecopages/radiant/attr:${M}:last-value`),Z=x.bind??F.shouldAutoBindReactiveMembers?.()??!1;F.defineReactiveBinding(M,Z),F.registerReactiveDependencyReader(M,()=>T(F,H,x)),$[W]=T(F,H,x),Object.defineProperty(F,M,{get(){return F.trackReactiveRead(M),T(this,H,x)},set(A){let G=H0(this),R=T(this,H,x);_M(G,H,A,x);let D=T(this,H,x);if(Object.is(R,D))return;this[W]=D,F.notifyUpdate(M,R,D)},enumerable:!0,configurable:!0});let X=()=>{$[P]?.disconnect()},B=()=>{let A=T(F,H,x),G=$[W];if(!Object.is(G,A))$[W]=A,F.notifyUpdate(M,G,A);if(typeof MutationObserver>"u")return;let R=H0(F);X();let D=new MutationObserver(()=>{let r=T(F,H,x),B0=$[W];if(Object.is(B0,r))return;$[W]=r,F.notifyUpdate(M,B0,r)});D.observe(R,{attributeFilter:[H],attributes:!0}),$[P]=D};B(),F.registerConnectedCallback(B),F.registerCleanupCallback(X)}function PF(F={}){return(M,x)=>{let $=Symbol(`@ecopages/radiant/attr:${x}:installed`);Q(M,(H)=>{H.registerConnectedCallback(()=>{if(H[$])return;let P=H[x],W=F.defaultValue===void 0?P:F.defaultValue;u(H,x,{...F,defaultValue:W}),H[$]=!0})})}}function WF(F={}){return function(M,x){let $=String(x.name),H=Symbol(`@ecopages/radiant/attr:${$}:initializer`);return x.addInitializer(function(){let P=this[H],W=F.defaultValue===void 0?P:F.defaultValue;u(this,$,{...F,defaultValue:W})}),function(P){return this[H]=P,P}}}function ox(F={}){function M(x,$){return J(WF(F),PF(F),x,$)}return M}function ZF(F,M,x){let $=x.value;return{configurable:!0,get(){if(this===F.prototype||Object.prototype.hasOwnProperty.call(this,M))return $;let H=$.bind(this);return Object.defineProperty(this,M,{value:H,configurable:!0,writable:!0}),H}}}function XF(F,M){let x=String(M.name);if(M.private)throw Error(`'bound' cannot decorate private properties like ${x}.`);M.addInitializer(function(){this[x]=this[x].bind(this)})}function $2(F,M,x){return U(XF,ZF,F,M,x)}function W2(F){return function(M){return HF(F,M)}}var BF=Symbol.for("@ecopages/radiant.customElementTagName");function y(F,M){F[BF]=M}function X2(F){return F[BF]}function AF(F,M){return(x)=>{if(y(x,F),typeof customElements<"u"&&!customElements.get(F))customElements.define(F,x,M)}}function GF(F,M){return function(x,$){$.addInitializer(function(){if(y(this,F),typeof customElements<"u"&&!customElements.get(F))customElements.define(F,this,M)})}}function q2(F,M){function x($,H){if(typeof H<"u")return GF(F,M)($,H);return AF(F,M)($)}return x}function m(F,M){let x=null,$=null,H,P=()=>{if(x!==null)clearTimeout(x),x=null},W=()=>{if($===null)return H;let X=$;return $=null,P(),H=X(),H},Z=function(...X){$=()=>F.apply(this,X),P(),x=setTimeout(()=>{W()},M)};return Z.cancel=()=>{P(),$=null},Z.flush=()=>{if($===null)return H;return W()},Z.pending=()=>$!==null,Z}function QF(F){return(M,x,$)=>{let H=$.value,P=new WeakMap;return $.value=function(...Z){let X=P.get(this);if(!X)X=m((...B)=>{return H.apply(this,B)},F),P.set(this,X);X(...Z)},$}}function DF(F){return(M)=>{let x=new WeakMap;return function(...$){let H=x.get(this);if(!H)H=m((...P)=>{return M.apply(this,P)},F),x.set(this,H);H(...$)}}}function E2(F){function M(x,$,H){return U(DF(F),QF(F),x,$,H)}return M}class P0{host;eventConfig;constructor(F,M){this.host=F,this.eventConfig=M}emit(F){let M=new CustomEvent(this.eventConfig.name,{detail:F,bubbles:this.eventConfig.bubbles,cancelable:this.eventConfig.cancelable,composed:this.eventConfig.composed});this.host.dispatchEvent(M)}}function c(F,M){let x=new P0(F,M);return F.registerEventEmitter(M.name,x),x}function RF(F){return(M,x)=>{Q(M,($)=>{let H=c($,F);$.registerConnectedCallback(()=>{Object.defineProperty($,x,{get(){return H},enumerable:!0,configurable:!0})})})}}function JF(F){return function(M,x){x.addInitializer(function(){let $=c(this,F);Object.defineProperty(this,x.name,{get(){return $},enumerable:!0,configurable:!0})})}}function u2(F){function M(x,$){return J(JF(F),RF(F),x,$)}return M}function qF(F){let M=globalThis.CSS;if(typeof M?.escape==="function")return M.escape(F);let x="";for(let $=0;$<F.length;$+=1){let H=F[$]??"",P=H.codePointAt(0)??0;if(P===0){x+="�";continue}let W=P>=1&&P<=31||P===127,Z=$===0&&P>=48&&P<=57,X=$===1&&P>=48&&P<=57&&(F[0]??"")==="-",B=$===0&&H==="-"&&F.length===1;if(W||Z||X){x+=`\\${P.toString(16)} `;continue}if(P>=128||H==="-"||H==="_"||P>=48&&P<=57||P>=65&&P<=90||P>=97&&P<=122){x+=B?`\\${H}`:H;continue}x+=`\\${H}`}return x}var d=Symbol("radiant.shadowRootListenerHooks"),UF=Symbol("radiant.patchedAttachShadow");function YF(F){if(F instanceof Element)return F;if("host"in F)return F.host;return F.element}function zM(F){return!(F instanceof Element)}function jF(F,M,x,$){let H=(P)=>{if(P.target instanceof Element&&P.target.matches(x))$(P)};return F.addEventListener(M.type,H,M.options),()=>{F.removeEventListener(M.type,H,M.options)}}function kM(F,M){let x=YF(F);if(!x[d])x[d]=new Set;if(x[d].add(M),x[UF])return;let $=x.attachShadow;x.attachShadow=function(P){let W=$.call(this,P);for(let Z of x[d]??[])Z();return W},x[UF]=!0}function s(F,M,x){if(zM(F)&&"scope"in M&&M.scope&&M.scope!=="light")throw Error("RadiantController event listeners only support light DOM scope.");let $=YF(F),H=x.bind(F),P=null,W=null,Z=null,X=null,B=!1,A=()=>{P?.(),W?.(),Z?.(),X?.(),P=null,W=null,Z=null,X=null},G=()=>{if(B)return;if("window"in M&&!P)window.addEventListener(M.type,H,M.options),P=()=>{window.removeEventListener(M.type,H,M.options)};if("document"in M&&!W)document.addEventListener(M.type,H,M.options),W=()=>{document.removeEventListener(M.type,H,M.options)};if("selector"in M||"ref"in M){let R="selector"in M?M.selector:`[data-ref='${qF(M.ref)}']`;if(M.scope!=="shadow"&&!Z)Z=jF($,M,R,H);if(M.scope!=="light"&&$.shadowRoot&&!X)X=jF($.shadowRoot,M,R,H)}};if("selector"in M||"ref"in M){if(M.scope!=="light")kM(F,()=>{if(F.isConnected)G()})}if(F.registerConnectedCallback(G),F.registerCleanupCallback(A),F.isConnected)G();return()=>{B=!0,A()}}function LF(F){return(M,x,$)=>{let H=$.value;return Q(M,(P)=>{s(P,F,H.bind(P))}),$}}function TF(F){return function(M,x){x.addInitializer(function(){s(this,F,M.bind(this))})}}function t2(F){function M(x,$,H){return U(TF(F),LF(F),x,$,H)}return M}function _F(F){return(M,x)=>{let $=Symbol(`@ecopages/radiant/on-updated:${x}:cleanup`);Q(M,(H)=>{H.registerConnectedCallback(()=>{let P=H[x].bind(H),W=[];if(Array.isArray(F))for(let Z of F)W.push(H.registerUpdateCallback(Z,P));else if(typeof F==="string")W.push(H.registerUpdateCallback(F,P));H[$]=()=>{for(let Z of W)Z()}}),H.registerCleanupCallback(()=>{let P=H[$];if(typeof P==="function")P(),delete H[$]})})}}function zF(F){return function(M,x){x.addInitializer(function(){let $=M.bind(this);if(Object.defineProperty(this,x.name,{value:$,configurable:!0,writable:!0}),Array.isArray(F))for(let H of F)this.registerUpdateCallback(H,$);else if(typeof F==="string")this.registerUpdateCallback(F,$)})}}function W$(F){function M(x,$,H){return U(zF(F),_F(F),x,$,H)}return M}var W0=Symbol.for("@ecopages/radiant.reactivePropDefinitions");function p(F,M,x){let $=F.constructor,H=$[W0]??[];if(H.some((P)=>P.name===M))return;H.push({name:M,options:x}),$[W0]=H}function X$(F){return(F.constructor[W0]??[]).slice()}function kF({type:F,attribute:M,reflect:x,defaultValue:$,bind:H}){return q(F,$),(P,W)=>{let Z=M??W;p(P,W,{type:F,reflect:x,attribute:Z,defaultValue:$,bind:H});let X=Symbol.for(`@ecopages/radiant.ssr-prop:${W}`);Object.defineProperty(P,W,{get(){return this[X]??$},set(B){this[X]=B},configurable:!0,enumerable:!0}),Q(P,(B)=>{B.registerConnectedCallback(()=>{let A=B[W],G=$===void 0?A:$;B.createReactiveProp(W,{type:F,reflect:x,attribute:Z,defaultValue:G,bind:H})})})}}function KF({type:F,attribute:M,reflect:x,defaultValue:$,bind:H}){return q(F,$),function(P,W){let Z=String(W.name),X=M??Z,B=Symbol(`@ecopages/radiant/reactive-prop:${Z}:initializer`);return W.addInitializer(function(){let A=this[B],G=$===void 0?A:$;p(this,Z,{type:F,reflect:x,attribute:X,defaultValue:$,bind:H}),this.createReactiveProp(Z,{type:F,reflect:x,attribute:X,defaultValue:G,bind:H})}),function(A){return this[B]=A,A}}}function L$(F){function M(x,$){return J(KF(F),kF(F),x,$)}return M}function KM(F){return!(F instanceof Element)}function EM(F){return"shadowRoot"in F?F.shadowRoot??null:null}function IM(F){return F instanceof Element?F:F.host}function wM(F,M="light"){let x=EM(F);if(M==="shadow")return x?[x]:[];if(M==="both")return x?[F,x]:[F];return[F]}function i(F,M){if(KM(F)&&M.scope&&M.scope!=="light")throw Error("RadiantController queries only support light DOM scope.");let x=IM(F),$="selector"in M?M.selector:`[data-ref="${M.ref}"]`,H=null,P=()=>{let W=wM(x,M.scope);if(M.all)return W.flatMap((Z)=>Array.from(Z.querySelectorAll($)));for(let Z of W){let X=Z.querySelector($);if(X)return X}return null};return{get value(){if(M.cache){if(H===null||M.all&&Array.isArray(H)&&!H.length)H=P();return H}return P()}}}function EF({cache:F=!0,...M}){return(x,$)=>{Q(x,(H)=>{H.registerConnectedCallback(()=>{let P=i(H,{cache:F,...M});Object.defineProperty(H,$,{get(){return P.value},enumerable:!0,configurable:!0})})})}}function IF(F){return function(M,x){let $=String(x.name);x.addInitializer(function(){let H=i(this,F);Object.defineProperty(this,$,{get(){return H.value},enumerable:!0,configurable:!0})})}}function S$(F){function M(x,$){return J(IF(F),EF(F),x,$)}return M}function I(F,M={}){let x=null,$,H=()=>{if(M.all)return F.getSlotElements(M.name);return F.getSlotElements(M.name)[0]??null};return{get value(){if(M.cache===!1)return H();let P=F.slotProjectionVersion??0;if($!==P)x=H(),$=P;return x}}}function wF(F={}){return(M,x)=>{let $=(W)=>{return typeof Object.getOwnPropertyDescriptor(W,x)?.get==="function"},H=(W)=>{if($(W))return;let Z=I(W,F);Object.defineProperty(W,x,{get(){return Z.value},enumerable:!0,configurable:!0})},P=new WeakMap;Object.defineProperty(M,x,{get(){let W=P.get(this);if(!W)W=I(this,F),P.set(this,W);return W.value},enumerable:!0,configurable:!0}),Q(M,(W)=>{d0(W,()=>{H(W)}),W.registerConnectedCallback(()=>{H(W)})})}}function CF(F={}){return function(M,x){let $=String(x.name);x.addInitializer(function(){let H=I(this,F);Object.defineProperty(this,$,{get(){return H.value},enumerable:!0,configurable:!0})})}}function d$(F={}){function M(x,$){return J(CF(F),wF(F),x,$)}return M}function OF(F){return I0({type:"signal",...F})}function SF(F){return w0(F)}import{createMarkupNodeLike as CM}from"@ecopages/jsx";import{state as OM}from"@ecopages/signals";function l(F){return typeof F==="object"&&F!==null&&typeof F.get==="function"&&typeof F.set==="function"&&typeof F.subscribe==="function"&&typeof F.update==="function"}class w{host;hydrate;hydrationKey;property;source;currentValue;hasAppliedHostHydration=!1;sourceUnsubscribe;constructor(F){this.host=F.host,this.hydrate=F.hydrate,this.hydrationKey=F.hydrationKey,this.property=F.property,this.source=F.source??OM(this.resolveInitialValue(F.initialValue)),this.currentValue=this.source.get()}get(){return this.source.get()}set(F){this.source.set(F)}subscribe(F){return this.source.subscribe(F)}update(F){this.set(F(this.get()))}connectToSource(){if(this.sourceUnsubscribe)return;let F=this.source.get();if(!Object.is(this.currentValue,F)){let M=this.currentValue;this.currentValue=F,this.host.notifyUpdate(this.property,M,F)}this.sourceUnsubscribe=this.source.subscribe((M)=>{this.handleSourceChange(M)})}disconnectFromSource(){this.sourceUnsubscribe?.(),this.sourceUnsubscribe=void 0}hydrateFromHost(){if(!this.hydrate||this.hasAppliedHostHydration)return;this.hasAppliedHostHydration=!0;let F=this.source.get(),M=this.resolveInitialValue(F);if(!Object.is(F,M))this.source.set(M),this.currentValue=this.source.get(),this.host.notifyUpdate(this.property,F,this.currentValue)}renderHydrationScript(){let F=this.renderHydrationScriptTag();if(!F)return;return CM(F)}renderHydrationScriptTag(){let F=this.serializeHydrationValue();if(!F)return;return OF({hydrationKey:this.hydrationKey,serializedValue:F})}findHydrationScriptElement(){if(!(this.host instanceof Element))return null;return O0(this.host,"signal",this.hydrationKey)}isObject(F){return typeof F==="object"&&!Array.isArray(F)&&F!==null}resolveInitialValue(F){if(!this.hydrate)return F;let M=this.findHydrationScriptElement();if(!M)return F;let x=C0(M,F);if(this.hydrate===Object&&this.isObject(x)&&this.isObject(F))return{...F,...x};return x}serializeHydrationValue(){if(!this.hydrate)return;let F=JSON.stringify(this.get());if(typeof F!=="string")return;return SF(F)}handleSourceChange(F){let M=this.currentValue;if(this.currentValue=F,!Object.is(M,F))this.host.notifyUpdate(this.property,M,F)}}function n(F){return new w(F)}function Z0(F={}){return(M,x)=>{let $=(H)=>{let P=H[x];if(P instanceof w)return P;let W=typeof F.source==="function"?F.source(H):F.source??(l(P)?P:void 0),Z=F.bind??H.shouldAutoBindReactiveMembers?.()??!1,X=W!==void 0?F.initial:P===void 0?F.initial:P;H.defineReactiveBinding(x,Z);let B=n({host:H,hydrate:F.hydrate,hydrationKey:x,initialValue:X,property:x,source:W});if(H.registerConnectedCallback(()=>{B.hydrateFromHost(),B.connectToSource()}),H.registerCleanupCallback(()=>{B.disconnectFromSource()}),F.hydrate)H.registerHydrationBinding(x,B);return H[x]=B,B};Q0(M,(H)=>{let P=$(H);H.registerConnectedCallback(()=>{if(!(H[x]instanceof w))H[x]=P})})}}function X0(F={}){return function(M,x){let $=String(x.name);return function(H){let P=typeof F.source==="function"?F.source(this):F.source??(l(H)?H:void 0),W=P!==void 0?F.initial:H===void 0?F.initial:H,Z=F.bind??this.shouldAutoBindReactiveMembers?.()??!1;this.defineReactiveBinding($,Z);let X=n({host:this,hydrate:F.hydrate,hydrationKey:$,initialValue:W,property:$,source:P});if(this.registerConnectedCallback(()=>{X.hydrateFromHost(),X.connectToSource()}),this.registerCleanupCallback(()=>{X.disconnectFromSource()}),F.hydrate)this.registerHydrationBinding($,X);return X}}}function P1(F,M){if(typeof M<"u"){if(typeof M==="object"){if(F!==void 0)throw TypeError("@signal standard decorators require an undefined target");return X0()(void 0,M)}if(F===void 0)throw TypeError("@signal legacy decorators require a host target");return Z0()(F,M)}let x=F??{};function $(H,P){if(typeof P==="object"){if(H!==void 0)throw TypeError("@signal standard decorators require an undefined target");return X0(x)(void 0,P)}if(H===void 0)throw TypeError("@signal legacy decorators require a host target");return Z0(x)(H,P)}return $}function fF(F,M){Q(F,(x)=>{x.registerConnectedCallback(()=>{x.createReactiveField(M,x[M],{bind:x.shouldAutoBindReactiveMembers?.()??!1})})})}function VF(F,M){let x=Symbol(`__${String(M.name)}__value`),$=String(M.name);return M.addInitializer(function(){this.defineReactiveBinding($,this.shouldAutoBindReactiveMembers?.()??!1),this.registerReactiveDependencyReader($,()=>this[x]),Object.defineProperty(this,M.name,{get(){return this.trackReactiveRead($),this[x]},set(H){let P=this[x];if(P!==H)this[x]=H,this.notifyUpdate($,P,H)},enumerable:!0,configurable:!0})}),function(H){return this[x]=H,H}}function D1(F,M){return J(VF,fF,F,M)}export{v as visitControllerElements,vx as stopControllers,D1 as state,Nx as startControllers,P1 as signal,$F as setControllerRegistrationStrategy,fx as resolveRegisteredController,jM as replaceController,HF as registerControllerWithConfiguredStrategy,UM as registerController,d$ as querySlot,S$ as query,L$ as prop,MF as parseControllerIdentifiers,W$ as onUpdated,t2 as onEvent,Sx as hasRegisteredController,u2 as event,Vx as enableControllerReplacementForHmr,bx as disableControllerReplacementForHmr,E2 as debounce,q2 as customElement,W2 as controller,$2 as bound,ox as attr,r0 as RadiantElement,a0 as RadiantController,xF as ControllerRegistryRuntime,FF as CONTROLLER_REGISTRY_STATE_KEY,h as CONTROLLER_ATTRIBUTE};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=3820119D5B87F3DB64756E2164756E21
|
package/index.js.map
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"type SsrPreparationCallback = () => void;\n\nconst SSR_PREPARATION_CALLBACKS = Symbol.for('@ecopages/radiant.ssr-preparation-callbacks');\nexport const SSR_PREPARATION_RUNNING = Symbol.for('@ecopages/radiant.ssr-preparation-running');\n\n/**\n * Registers instance-local SSR preparation work that should run immediately\n * before a Radiant host serializes its first server render.\n *\n * Decorators use this to defer SSR-only setup until after class fields,\n * reactive props, and authored host content have all been applied.\n */\nexport function registerSsrPreparationCallback(host: object, callback: SsrPreparationCallback): void {\n\tconst target = host as Record<PropertyKey, unknown>;\n\tconst existingCallbacks = target[SSR_PREPARATION_CALLBACKS];\n\n\tif (Array.isArray(existingCallbacks)) {\n\t\texistingCallbacks.push(callback);\n\t\treturn;\n\t}\n\n\tObject.defineProperty(host, SSR_PREPARATION_CALLBACKS, {\n\t\tvalue: [callback],\n\t\tconfigurable: true,\n\t});\n}\n\n/**\n * Runs all registered SSR preparation callbacks for the provided host.\n *\n * The callbacks are intentionally retained so repeated SSR serializations stay\n * deterministic after later host mutations.\n */\nexport function runSsrPreparationCallbacks(host: object): void {\n\tconst target = host as Record<PropertyKey, unknown>;\n\tconst callbacks = target[SSR_PREPARATION_CALLBACKS];\n\n\tif (!Array.isArray(callbacks)) {\n\t\treturn;\n\t}\n\n\ttarget[SSR_PREPARATION_RUNNING] = true;\n\n\ttry {\n\t\tfor (const callback of callbacks as SsrPreparationCallback[]) {\n\t\t\tcallback();\n\t\t}\n\t} finally {\n\t\tdelete target[SSR_PREPARATION_RUNNING];\n\t}\n}\n",
|
|
17
17
|
"const RADIANT_HYDRATOR_INSTALLED_SYMBOL = Symbol.for('@ecopages/radiant.hydrator-installed');\n\ntype GlobalHydratorState = typeof globalThis & Record<PropertyKey, unknown>;\n\n/**\n * Marks the current JavaScript environment as hydration-enabled for first\n * custom-element connect.\n *\n * `RadiantElement` reads this flag before deciding whether SSR markup should\n * hydrate in place or be replaced by a fresh client render.\n */\nexport function installRadiantHydratorState(): void {\n\t(globalThis as GlobalHydratorState)[RADIANT_HYDRATOR_INSTALLED_SYMBOL] = true;\n}\n\n/**\n * Clears the explicit hydration-enabled flag from `globalThis`.\n *\n * This is mainly used by tests so they can assert both hydrated and non-\n * hydrated first-connect behavior deterministically.\n */\nexport function uninstallRadiantHydratorState(): void {\n\tdelete (globalThis as GlobalHydratorState)[RADIANT_HYDRATOR_INSTALLED_SYMBOL];\n}\n\n/**\n * Returns whether first-connect hydration is currently enabled for this\n * JavaScript environment.\n */\nexport function isRadiantHydratorInstalled(): boolean {\n\treturn (globalThis as GlobalHydratorState)[RADIANT_HYDRATOR_INSTALLED_SYMBOL] === true;\n}\n",
|
|
18
18
|
"import type { JsxRenderable } from '@ecopages/jsx';\nimport { getActiveSsrScopeValue, type RenderToStringOptions, withActiveSsrScopeValue } from '@ecopages/jsx/server';\n\nexport type RadiantElementRenderBridge = {\n\trenderHost?: () => JsxRenderable;\n\trenderHostToString?: (options?: RenderToStringOptions) => string;\n};\n\n/**\n * SSR host shape used by explicit server rendering entrypoints.\n *\n * Server-side attribute serialization is derived from ordinary host state in\n * the server pipeline rather than through a dedicated host SSR hook.\n */\nexport type RadiantElementServerRenderSsrCapable = object;\n\n/**\n * SSR host shape required when the server runtime renders the tracked component\n * view directly.\n */\nexport type RadiantElementTrackedRenderSsrCapable = object;\n\n/**\n * Shared SSR runtime contract carried on the active JSX SSR render scope.\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: RadiantElementServerRenderSsrCapable): Record<string, string>;\n\trenderHost(component: RadiantElementServerRenderSsrCapable): JsxRenderable;\n\trenderHostToString(component: RadiantElementServerRenderSsrCapable, options?: RenderToStringOptions): string;\n\tresolveRenderBridge(component: object): RadiantElementRenderBridge | undefined;\n\trenderView(component: RadiantElementTrackedRenderSsrCapable, options?: RenderToStringOptions): string;\n};\n\nconst RADIANT_ELEMENT_SSR_RUNTIME_SYMBOL = Symbol.for('@ecopages/radiant.element-ssr-runtime');\n\n/**\n * Reads the active Radiant SSR runtime from the current render scope.\n *\n * Returns `undefined` when no server render is currently in progress.\n */\nexport function getRadiantElementSsrRuntime(): RadiantElementSsrRuntime | undefined {\n\treturn getActiveSsrScopeValue<RadiantElementSsrRuntime>(RADIANT_ELEMENT_SSR_RUNTIME_SYMBOL);\n}\n\n/**\n * Runs work within an active Radiant SSR runtime scope.\n *\n * The runtime remains visible across built entrypoint boundaries through the\n * active JSX SSR render scope, but only for the duration of the active render call.\n */\nexport function withRadiantElementSsrRuntime<T>(runtime: RadiantElementSsrRuntime, render: () => T): T {\n\treturn withActiveSsrScopeValue(RADIANT_ELEMENT_SSR_RUNTIME_SYMBOL, runtime, render);\n}\n",
|
|
19
|
-
"import type { EventEmitter } from '../tools';\nimport { hasHydrationMarkers, jsx, type JsxRenderable, type SubscribableJsxValue } from '@ecopages/jsx';\nimport type { RenderToStringOptions } from '@ecopages/jsx/server';\nimport type { SsrSerializableContextProvider } from '../context/context-provider';\nimport type { UnknownContext } from '../context/types';\nimport {\n\trunLegacyInstanceInitializers,\n\trunLegacyPostConstructionInitializers,\n} from '../decorators/legacy/instance-initializers';\nimport {\n\tcreateReactivePropertyMapping,\n\ttype ReactiveAccessorDefinition,\n\ttype ReactiveBindingOption,\n\ttype ReactiveBindingValue,\n\ttype ReactiveBindings,\n\ttype ReactiveFieldOptions,\n\ttype ReactiveProperty,\n\ttype ReactivePropertyOptions,\n\tvalidateReactivePropertyDefault,\n} from './reactive-prop-core';\nimport { RenderRuntime, type RenderRuntimeHost } from './render-runtime';\nimport type { SsrSerializableHydrationBinding } from './ssr-hydration-binding';\nimport { ReactiveHost } from './reactive-host';\nimport { runSsrPreparationCallbacks } from './ssr-preparation';\nimport { isRadiantHydratorInstalled } from './radiant-hydrator-state';\nimport { getRadiantElementSsrRuntime } from './radiant-element-ssr-registry';\nimport { type AttributeTypeConstant, getInitialValue } from '../utils/attribute-utils';\n\nexport type {\n\tReactiveBindingOption,\n\tReactiveBindingValue,\n\tReactiveBindings,\n\tReactiveField,\n\tReactiveFieldOptions,\n\tReactiveProperty,\n\tReactivePropertyOptions,\n} from './reactive-prop-core';\n\nconst RadiantElementBase = resolveRadiantElementBase();\n\ntype RadiantRenderTarget = HTMLElement | ShadowRoot;\ntype RadiantInteractionTarget = HTMLElement | ShadowRoot;\ntype RadiantRenderSurface = {\n\trenderTarget: RadiantRenderTarget;\n\tinteractionTarget: RadiantInteractionTarget;\n\tqueryRoot: ParentNode;\n};\ntype ReactivePropertyStateHost = HTMLElement & {\n\tnotifyUpdate(changedProperty: string, oldValue: unknown, value: unknown): void;\n};\n\nfunction resolveRadiantElementBase(): typeof HTMLElement {\n\tif (typeof HTMLElement !== 'undefined') {\n\t\treturn HTMLElement;\n\t}\n\n\tthrow new Error(\n\t\t\"RadiantElement requires HTMLElement. Install '@ecopages/radiant/server/light-dom-shim' before SSR imports.\",\n\t);\n}\n\n/**\n * Possible positions to insert a rendered template.\n */\nexport type RenderInsertPosition = 'replace' | 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend';\n\n/**\n * Represents a Radiant element event listener.\n */\nexport type RadiantElementEventListener = {\n\tselector: string;\n\ttype: string;\n\tlistener: EventListener;\n\toptions?: AddEventListenerOptions;\n};\n\ntype RadiantElementEventSubscription = RadiantElementEventListener & {\n\ttarget: EventTarget;\n};\n\ntype StringPropertyKey<Value> = Extract<keyof Value, string>;\n\n/**\n * Represents an interface for a Radiant element.\n * @typeParam Bindings - Explicit internal bindable shape used to type `bind()` and `getReactiveBinding()`.\n *\n * This shape describes which reactive members are exposed through `bindings`,\n * `$`, and `bind(...)`. It does not automatically define the public JSX\n * attribute contract for the custom element.\n */\nexport interface IRadiantElement<Bindings extends object = {}> {\n\t/**\n\t * Namespace of cached JSX bindings keyed by the explicit bindable shape.\n\t */\n\treadonly bindings: ReactiveBindings<Bindings>;\n\n\t/**\n\t * Short alias for {@link bindings}.\n\t */\n\treadonly $: ReactiveBindings<Bindings>;\n\n\t/**\n\t * Called when a property of the element is updated.\n\t * @param changedProperty - The name of the changed property.\n\t * @param oldValue - The old value of the property.\n\t * @param newValue - The new value of the property.\n\t */\n\tnotifyUpdate(changedProperty: string, oldValue: unknown, newValue: unknown): void;\n\n\t/**\n\t * Subscribes to a Radiant element event.\n\t * @param event - The event listener to subscribe to.\n\t */\n\tsubscribeEvent(event: RadiantElementEventListener): void;\n\n\t/**\n\t * Registers a callback to be invoked when a reactive property or field changes.\n\t *\n\t * @returns A cleanup function that unregisters the callback.\n\t */\n\tregisterUpdateCallback(property: string, update: (...rest: any[]) => any): () => void;\n\n\t/**\n\t * Returns a subscribable JSX child binding for a reactive property or field.\n\t *\n\t * Prefer `this.bindings.key` or `this.$.key` in JSX render code when you want\n\t * property access syntax without string literals.\n\t */\n\tbind<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValue<ReactiveBindingValue<Bindings, Property>>;\n\n\t/**\n\t * Returns a subscribable JSX child binding for a reactive property or field.\n\t *\n\t * This is the primitive lookup used by `bind()`, `bindings.key`, and `$.key`.\n\t */\n\tgetReactiveBinding<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValue<ReactiveBindingValue<Bindings, Property>>;\n\n\t/**\n\t * Defines a stable JSX binding companion accessor for a reactive member.\n\t *\n\t * Companion bindings create properties such as `$count` directly on the host.\n\t * Prefer the `bindings` or `$` namespace for new code when you want typed,\n\t * explicit access to the configured bindable shape.\n\t */\n\tdefineReactiveBinding(property: string, bind?: ReactiveBindingOption): void;\n\n\t/**\n\t * Subscribes to multiple Radiant element events.\n\t * @param events - The array of event listeners to subscribe to.\n\t */\n\tsubscribeEvents(events: RadiantElementEventListener[]): void;\n\n\t/**\n\t * It adds a callback to be executed when the Radiant element is disconnected from the DOM.\n\t */\n\tregisterCleanupCallback(callback: () => void): void;\n\n\t/**\n\t * Registers a callback to run on each future host connection.\n\t *\n\t * The callback is only invoked from `connectedCallback()`. Registering it\n\t * after the host is already connected does not invoke it immediately.\n\t */\n\tregisterConnectedCallback(callback: () => void): void;\n\n\t/**\n\t * Registers a raw value reader for a reactive member so that tracked render\n\t * dependencies can read the underlying value without triggering the public\n\t * getter's dependency tracking.\n\t */\n\tregisterReactiveDependencyReader(property: string, read: () => unknown): void;\n\n\t/**\n\t * Records a tracked read of a reactive member during a component render,\n\t * allowing the signals runtime to re-render only the affected parts.\n\t */\n\ttrackReactiveRead(property: string): void;\n\n\t/**\n\t * Renders a trusted HTML template string into the specified target element.\n\t *\n\t * **Security:** The `template` string is written to the DOM via `innerHTML`\n\t * or `insertAdjacentHTML` without built-in sanitization. Callers are\n\t * responsible for ensuring the input is trusted. Supply a `sanitize`\n\t * function to transform the template before insertion.\n\t *\n\t * @param options - The rendering options.\n\t * @param options.target - The target element to render the template into.\n\t * @param options.template - The template string to render.\n\t * @param options.insert - The position to insert the rendered template. (optional)\n\t * @param options.sanitize - An optional function that transforms the template string before insertion.\n\t */\n\trenderTemplate(options: {\n\t\ttarget: HTMLElement;\n\t\ttemplate: string;\n\t\tinsert?: RenderInsertPosition;\n\t\tsanitize?: (html: string) => string;\n\t}): void;\n\n\t/**\n\t * Called when the Radiant element is connected to a context.\n\t * @param context - The connected context.\n\t */\n\tconnectedContextCallback(context: UnknownContext): void;\n\n\t/**\n\t * Gets a reference to a child element by its data-ref attribute.\n\t * @param ref - The data-ref attribute value of the element to get.\n\t * @param all - Whether to get all elements with the specified data-ref attribute value.\n\t * @returns The element with the specified data-ref attribute value, an array of elements or null if no element was found.\n\t */\n\tgetRef<T extends Element = Element>(ref: string, all: true): T[];\n\tgetRef<T extends Element = Element>(ref: string, all?: false): T | null;\n}\n\n/**\n * A base class for creating custom elements with reactive properties and event subscriptions.\n * @typeParam Bindings - Explicit internal bindable shape. Include only the\n * prop/state keys that JSX bindings should accept.\n *\n * Prefer a separate public props type for custom-element JSX declarations when\n * the external attribute contract differs from the component's internal\n * reactive state. Reuse the same type only when the public props and bindable\n * members are intentionally identical.\n * @extends HTMLElement\n * @implements IRadiantElement<Bindings>\n */\nexport class RadiantElement<Bindings extends object = {}>\n\textends RadiantElementBase\n\timplements IRadiantElement<Bindings>\n{\n\t/**\n\t * Controls where the JSX render lifecycle mounts the component view.\n\t *\n\t * Subclasses can override this with `'shadow'` to force an internal open\n\t * shadow root for client-side rendering. Host SSR helpers remain light-DOM\n\t * only and throw when shadow render mode is enabled.\n\t */\n\tprotected readonly renderRootMode: 'light' | 'shadow' = 'light';\n\tpublic readonly bindings: ReactiveBindings<Bindings>;\n\tpublic readonly $: ReactiveBindings<Bindings>;\n\tprivate readonly reactiveHost: ReactiveHost<this, Bindings>;\n\tprivate readonly reactivePropertyState: ReactivePropertyState;\n\n\t/**\n\t * Registered context providers keyed by decorated property name.\n\t */\n\tprivate contextProviders = new Map<string, SsrSerializableContextProvider>();\n\n\t/**\n\t * Registered keyed hydration payload producers appended to SSR host output.\n\t */\n\tprivate hydrationBindings = new Map<string, SsrSerializableHydrationBinding>();\n\n\t/**\n\t * A map of event subscriptions used to manage event listeners on the Radiant element.\n\t */\n\tprivate eventSubscriptions = new Map<string, RadiantElementEventSubscription>();\n\n\t/**\n\t * A map for event emitters\n\t */\n\tprivate eventEmitters = new Map<string, EventEmitter>();\n\n\t/**\n\t * A flag indicating whether the element has been connected to the DOM.\n\t */\n\tprivate elementReady = false;\n\tprivate isRendering = false;\n\tprivate isFirstConnectPending = false;\n\tprivate isRenderScheduled = false;\n\tprivate needsRender = false;\n\tprivate renderRuntime?: RenderRuntime;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.reactivePropertyState = new ReactivePropertyState(this);\n\n\t\tthis.reactiveHost = new ReactiveHost<this, Bindings>(\n\t\t\tthis,\n\t\t\t{\n\t\t\t\tdefineProperty: (target, property, descriptor) => Object.defineProperty(target, property, descriptor),\n\t\t\t\tgetBindingTarget: (target) => Object.getPrototypeOf(target) ?? target,\n\t\t\t\thasProperty: (target, property) => property in target,\n\t\t\t\treadProperty: (target, property) => (target as Record<string, unknown>)[property],\n\t\t\t},\n\t\t\t() => this.shouldAutoBindReactiveMembers(),\n\t\t);\n\t\tthis.bindings = this.reactiveHost.bindings;\n\t\tthis.$ = this.reactiveHost.$;\n\t\trunLegacyInstanceInitializers(this);\n\t}\n\n\tpublic get slotProjectionVersion(): number {\n\t\treturn this.renderRuntime?.slotProjectionVersion ?? 0;\n\t}\n\n\tconnectedCallback() {\n\t\trunLegacyPostConstructionInitializers(this);\n\t\tconst isReconnectDuringPendingFirstConnect = this.isFirstConnectPending;\n\n\t\tthis.elementReady = true;\n\n\t\tthis.reactiveHost.connectHost();\n\n\t\tif (isReconnectDuringPendingFirstConnect) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isFirstConnectPending = true;\n\n\t\tqueueMicrotask(() => {\n\t\t\tthis.isFirstConnectPending = false;\n\n\t\t\tif (!this.isConnected) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!this.shouldRunRenderLifecycle()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst renderRuntime = this.getOrCreateRenderRuntime();\n\t\t\trenderRuntime.observeSlotProjection();\n\n\t\t\tif (shouldHydrateOnConnect(this)) {\n\t\t\t\tthis.needsRender = false;\n\t\t\t\tthis.hydrate();\n\n\t\t\t\tif (this.needsRender) {\n\t\t\t\t\tthis.update();\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.update();\n\t\t});\n\t}\n\n\tconnectedContextCallback(_contextName: UnknownContext): void {}\n\n\tdisconnectedCallback() {\n\t\tthis.renderRuntime?.dispose();\n\t\tthis.renderRuntime = undefined;\n\t\tthis.removeAllSubscribedEvents();\n\t\tthis.reactiveHost.disconnectHost();\n\t}\n\n\tpublic notifyUpdate(changedProperty: string, oldValue: unknown, value: unknown) {\n\t\tthis.reactiveHost.notifyUpdate(changedProperty, oldValue, value);\n\t}\n\n\tattributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n\t\tif (oldValue === newValue || !this.elementReady) return;\n\n\t\tthis.reactivePropertyState.applyAttributeChange(name, oldValue, newValue);\n\t}\n\n\t/**\n\t * Renders a trusted HTML template string into the specified target element.\n\t *\n\t * **Security:** The `template` string is written to the DOM via `innerHTML`\n\t * or `insertAdjacentHTML` without built-in sanitization. Callers are\n\t * responsible for ensuring the input is trusted. Supply a `sanitize`\n\t * function to transform the template before insertion.\n\t */\n\tpublic renderTemplate({\n\t\ttarget = this,\n\t\ttemplate,\n\t\tinsert = 'replace',\n\t\tsanitize,\n\t}: {\n\t\ttarget: HTMLElement;\n\t\ttemplate: string;\n\t\tinsert?: RenderInsertPosition;\n\t\tsanitize?: (html: string) => string;\n\t}) {\n\t\tconst html = sanitize ? sanitize(template) : template;\n\t\tswitch (insert) {\n\t\t\tcase 'replace':\n\t\t\t\ttarget.innerHTML = html;\n\t\t\t\tbreak;\n\t\t\tcase 'beforeend':\n\t\t\t\ttarget.insertAdjacentHTML('beforeend', html);\n\t\t\t\tbreak;\n\t\t\tcase 'afterbegin':\n\t\t\t\ttarget.insertAdjacentHTML('afterbegin', html);\n\t\t\t\tbreak;\n\t\t\tcase 'beforebegin':\n\t\t\t\ttarget.insertAdjacentHTML('beforebegin', html);\n\t\t\t\tbreak;\n\t\t\tcase 'afterend':\n\t\t\t\ttarget.insertAdjacentHTML('afterend', html);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tpublic render(): JsxRenderable {\n\t\treturn jsx('slot', {});\n\t}\n\n\tpublic renderViewToString(options: RenderToStringOptions = {}): string {\n\t\tif (!this.shouldRunRenderLifecycle()) {\n\t\t\treturn this.innerHTML;\n\t\t}\n\n\t\trunLegacyPostConstructionInitializers(this);\n\t\tthis.prepareForSsr();\n\n\t\treturn requireRadiantElementSsrRuntime().renderView(this, options);\n\t}\n\n\tpublic hydrate(): void {\n\t\tif (!this.shouldRunRenderLifecycle() || !this.isConnected || this.isRendering) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { renderTarget } = this.resolveRenderSurface();\n\t\tconst renderRuntime = this.getOrCreateRenderRuntime();\n\n\t\tthis.isRendering = true;\n\n\t\ttry {\n\t\t\trenderRuntime.hydrate(renderTarget as HTMLElement);\n\t\t} finally {\n\t\t\tthis.isRendering = false;\n\t\t}\n\t}\n\n\tpublic requestUpdate(): void {\n\t\tif (!this.shouldRunRenderLifecycle()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.needsRender = true;\n\n\t\tif (this.isRenderScheduled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isRenderScheduled = true;\n\n\t\tqueueMicrotask(() => {\n\t\t\tthis.isRenderScheduled = false;\n\n\t\t\tif (!this.needsRender) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.update();\n\t\t});\n\t}\n\n\tpublic update(): void {\n\t\tif (!this.shouldRunRenderLifecycle()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { renderTarget } = this.resolveRenderSurface();\n\t\tconst renderRuntime = this.getOrCreateRenderRuntime();\n\n\t\tthis.needsRender = true;\n\n\t\tif (!this.isConnected || this.isRendering) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isFirstConnectPending && shouldHydrateOnConnect(this)) {\n\t\t\treturn;\n\t\t}\n\n\t\twhile (this.needsRender && this.isConnected) {\n\t\t\tthis.needsRender = false;\n\t\t\tthis.isRendering = true;\n\n\t\t\ttry {\n\t\t\t\trenderRuntime.render(renderTarget as HTMLElement);\n\t\t\t} finally {\n\t\t\t\tthis.isRendering = false;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic registerReactiveProperty(config: ReactiveProperty) {\n\t\tthis.reactivePropertyState.register(config);\n\t}\n\n\tpublic getReactiveProperties(): ReactiveProperty[] {\n\t\treturn this.reactivePropertyState.getAll();\n\t}\n\n\tpublic registerReactiveDependencyReader(property: string, read: () => unknown): void {\n\t\tthis.reactiveHost.registerReactiveDependencyReader(property, read);\n\t}\n\n\tpublic registerContextProvider(name: string, provider: SsrSerializableContextProvider): void {\n\t\tthis.contextProviders.set(name, provider);\n\t\tthis.hydrationBindings.set(name, provider);\n\t}\n\n\tpublic registerHydrationBinding(name: string, binding: SsrSerializableHydrationBinding): void {\n\t\tthis.hydrationBindings.set(name, binding);\n\t}\n\n\tpublic getContextProviders(): SsrSerializableContextProvider[] {\n\t\trunLegacyPostConstructionInitializers(this);\n\t\treturn [...this.contextProviders.values()];\n\t}\n\n\tpublic getHydrationBindings(): SsrSerializableHydrationBinding[] {\n\t\trunLegacyPostConstructionInitializers(this);\n\t\treturn [...this.hydrationBindings.values()];\n\t}\n\n\t/**\n\t * Flushes any deferred SSR-only preparation work before the host is\n\t * serialized.\n\t *\n\t * Radiant uses this to reapply SSR consumer state after construction so the\n\t * first server render sees finalized fields, props, and authored content.\n\t */\n\tprotected prepareForSsr(): void {\n\t\trunSsrPreparationCallbacks(this);\n\t}\n\n\t/**\n\t * Returns the default JSX binding policy for reactive members on this host.\n\t *\n\t * `RadiantElement` hosts default to automatic bindings for reactive members\n\t * when no explicit `bind` option is supplied.\n\t *\n\t * Lower-level hosts can override this hook to opt out when they want binding\n\t * creation to stay fully explicit across `@prop`, `@state`, and direct\n\t * `createReactiveProp`/`createReactiveField` calls.\n\t */\n\tprotected shouldAutoBindReactiveMembers(): boolean {\n\t\treturn true;\n\t}\n\n\tprotected shouldRunRenderLifecycle(): boolean {\n\t\treturn this.render !== RadiantElement.prototype.render;\n\t}\n\n\t/** Returns the DOM root used by client-side render and hydrate work. */\n\tprotected getRenderTarget(): RadiantRenderTarget {\n\t\tif (this.renderRootMode !== 'shadow') {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (this.shadowRoot) {\n\t\t\treturn this.shadowRoot;\n\t\t}\n\n\t\tif (typeof this.attachShadow !== 'function') {\n\t\t\tthrow new Error('RadiantElement shadow render mode requires attachShadow().');\n\t\t}\n\n\t\treturn this.attachShadow({ mode: 'open' });\n\t}\n\n\tpublic registerUpdateCallback(property: string, update: (...rest: any[]) => any): () => void {\n\t\treturn this.reactiveHost.registerUpdateCallback(property, update);\n\t}\n\n\tpublic getReactiveBinding<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValue<ReactiveBindingValue<Bindings, Property>> {\n\t\treturn this.reactiveHost.getReactiveBinding(property);\n\t}\n\n\tpublic bind<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValue<ReactiveBindingValue<Bindings, Property>> {\n\t\treturn this.reactiveHost.getReactiveBinding(property);\n\t}\n\n\tpublic defineReactiveBinding(property: string, bind: ReactiveBindingOption = true): void {\n\t\tthis.reactiveHost.defineReactiveBinding(property, bind);\n\t}\n\n\tpublic trackReactiveRead(property: string): void {\n\t\tthis.reactiveHost.trackReactiveRead(property);\n\t}\n\n\tpublic subscribeEvents(events: RadiantElementEventListener[]): Array<() => void> {\n\t\tconst unsubscribers: Array<() => void> = [];\n\t\tfor (const event of events) {\n\t\t\tunsubscribers.push(this.subscribeEvent(event));\n\t\t}\n\t\treturn unsubscribers;\n\t}\n\n\tpublic subscribeEvent(eventConfig: RadiantElementEventListener): () => void {\n\t\tconst { interactionTarget } = this.resolveRenderSurface();\n\t\tconst delegatedListener = (delegatedEvent: Event) => {\n\t\t\tif (delegatedEvent.target && (delegatedEvent.target as Element).matches(eventConfig.selector)) {\n\t\t\t\teventConfig.listener.call(this, delegatedEvent);\n\t\t\t}\n\t\t};\n\t\tconst subscriptionId = `${eventConfig.type}:${eventConfig.selector}`;\n\t\tinteractionTarget.addEventListener(eventConfig.type, delegatedListener, eventConfig.options);\n\t\tthis.eventSubscriptions.set(subscriptionId, {\n\t\t\t...eventConfig,\n\t\t\tlistener: delegatedListener,\n\t\t\ttarget: interactionTarget,\n\t\t});\n\n\t\treturn this.unsubscribeEvent.bind(this, subscriptionId);\n\t}\n\n\tprivate unsubscribeEvent(id: string): void {\n\t\tconst eventSubscription = this.eventSubscriptions.get(id);\n\t\tif (eventSubscription) {\n\t\t\teventSubscription.target.removeEventListener(\n\t\t\t\teventSubscription.type,\n\t\t\t\teventSubscription.listener,\n\t\t\t\teventSubscription.options,\n\t\t\t);\n\t\t\tthis.eventSubscriptions.delete(id);\n\t\t}\n\t}\n\n\tprivate removeAllSubscribedEvents(): void {\n\t\tfor (const eventSubscription of this.eventSubscriptions.values()) {\n\t\t\teventSubscription.target.removeEventListener(\n\t\t\t\teventSubscription.type,\n\t\t\t\teventSubscription.listener,\n\t\t\t\teventSubscription.options,\n\t\t\t);\n\t\t}\n\t\tthis.eventSubscriptions.clear();\n\t}\n\n\t/**\n\t * Registers a callback that runs on every future disconnect.\n\t */\n\tpublic registerCleanupCallback(callback: () => void): void {\n\t\tthis.reactiveHost.registerCleanupCallback(callback);\n\t}\n\n\t/**\n\t * Registers a callback that runs from `connectedCallback()` on future host\n\t * connections.\n\t *\n\t * Registering after the host is already connected does not invoke the\n\t * callback immediately.\n\t */\n\tpublic registerConnectedCallback(callback: () => void): void {\n\t\tthis.reactiveHost.registerConnectedCallback(callback);\n\t}\n\n\tpublic registerEventEmitter(name: string, emitter: EventEmitter) {\n\t\tthis.eventEmitters.set(name, emitter);\n\t}\n\n\tpublic getRef<T extends Element = Element>(ref: string, all: true): T[];\n\tpublic getRef<T extends Element = Element>(ref: string, all?: false): T | null;\n\tpublic getRef<T extends Element = Element>(ref: string, all = false): T | T[] | null {\n\t\tconst selector = `[data-ref=\"${ref}\"]`;\n\t\tconst { queryRoot } = this.resolveRenderSurface();\n\t\tif (all) {\n\t\t\treturn Array.from(queryRoot.querySelectorAll(selector)) as T[];\n\t\t}\n\t\treturn (queryRoot.querySelector(selector) as T) ?? null;\n\t}\n\n\tpublic getSlotElement<T extends Element = Element>(name?: string): T | null {\n\t\treturn (this.getSlotElements<T>(name)[0] ?? null) as T | null;\n\t}\n\n\tpublic getSlotElements<T extends Element = Element>(name?: string): T[] {\n\t\treturn this.getOrCreateRenderRuntime().getSlotElements<T>(name);\n\t}\n\n\tpublic createReactiveField<T>(propertyName: string, initialValue: T, options: ReactiveFieldOptions = {}): void {\n\t\tthis.reactiveHost.createReactiveField(propertyName, initialValue, options);\n\t}\n\n\t/**\n\t * Defines a reactive custom-element property backed by a Radiant accessor.\n\t *\n\t * When the host was assigned a value before upgrade, that pre-upgrade value is\n\t * preferred over attribute parsing and `defaultValue` so early `.prop = value`\n\t * writes survive into the reactive lifecycle.\n\t */\n\tpublic createReactiveProp<T = unknown>(propertyName: string, options: ReactivePropertyOptions<T>): void {\n\t\tthis.reactivePropertyState.create(\n\t\t\tpropertyName,\n\t\t\toptions,\n\t\t\t(type, attributeKey, defaultValue) => getInitialValue(this, type, attributeKey, defaultValue) as T,\n\t\t\t(name, config) => {\n\t\t\t\tthis.reactiveHost.defineReactiveAccessor(name, config);\n\t\t\t},\n\t\t);\n\t}\n\n\tpublic getSlotProjectionScriptTag(): string | undefined {\n\t\treturn this.getOrCreateRenderRuntime().getSlotProjectionScriptTag();\n\t}\n\n\tpublic getAuthoredHydrationScriptMarkup(): string | undefined {\n\t\treturn this.getOrCreateRenderRuntime().getAuthoredHydrationScriptMarkup();\n\t}\n\n\tpublic resolveTrackedRenderOutput(): { containsSlots: boolean; value: JsxRenderable } {\n\t\treturn this.getOrCreateRenderRuntime().resolveTrackedRenderOutput();\n\t}\n\n\tprivate getOrCreateRenderRuntime() {\n\t\tif (this.renderRuntime) {\n\t\t\treturn this.renderRuntime;\n\t\t}\n\n\t\tthis.renderRuntime = new RenderRuntime(this as RenderRuntimeHost);\n\t\treturn this.renderRuntime;\n\t}\n\n\tprivate resolveRenderSurface(): RadiantRenderSurface {\n\t\tconst renderTarget = this.getRenderTarget();\n\t\tconst interactionTarget = renderTarget instanceof ShadowRoot ? renderTarget : this;\n\n\t\treturn {\n\t\t\tinteractionTarget,\n\t\t\tqueryRoot: interactionTarget,\n\t\t\trenderTarget,\n\t\t};\n\t}\n}\n\nfunction requireRadiantElementSsrRuntime() {\n\tconst runtime = getRadiantElementSsrRuntime();\n\n\tif (!runtime) {\n\t\tthrow new Error('Radiant SSR runtime unavailable. Import `@ecopages/radiant/server/render-component` first.');\n\t}\n\n\treturn runtime;\n}\n\nfunction shouldHydrateOnConnect(component: HTMLElement): boolean {\n\treturn isRadiantHydratorInstalled() && hasHydrationMarkers(component);\n}\n\nclass ReactivePropertyState {\n\tprivate readonly properties = new Map<string, ReactiveProperty>();\n\tprivate readonly preUpgradePropertyValues = new Map<string, unknown>();\n\n\tconstructor(private readonly host: ReactivePropertyStateHost) {\n\t\tfor (const propertyName of Object.getOwnPropertyNames(host)) {\n\t\t\tthis.preUpgradePropertyValues.set(propertyName, Reflect.get(host, propertyName));\n\t\t}\n\t}\n\n\tpublic register(config: ReactiveProperty): void {\n\t\tthis.properties.set(config.name, config);\n\t}\n\n\tpublic getAll(): ReactiveProperty[] {\n\t\treturn Array.from(this.properties.values());\n\t}\n\n\tpublic applyAttributeChange(name: string, oldValue: string | null, newValue: string | null): void {\n\t\tconst config = this.properties.get(name);\n\n\t\tif (!config) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst transformedValue = this.transformAttributeValue(newValue, config);\n\t\tconst transformedOldValue = this.transformAttributeValue(oldValue, config);\n\n\t\tReflect.set(this.host, config.attribute, transformedValue);\n\t\tthis.host.notifyUpdate(name, transformedOldValue, transformedValue);\n\t}\n\n\tpublic create<T>(\n\t\tpropertyName: string,\n\t\toptions: ReactivePropertyOptions<T>,\n\t\tresolveInitialValue: (type: AttributeTypeConstant, attributeKey: string, defaultValue: unknown) => T,\n\t\tdefineReactiveAccessor: (propertyName: string, config: ReactiveAccessorDefinition<T>) => void,\n\t): void {\n\t\tconst { type, attribute, reflect, defaultValue } = options;\n\t\tconst attributeKey = attribute ?? propertyName;\n\t\tconst hasPreUpgradeValue = this.preUpgradePropertyValues.has(propertyName);\n\t\tconst preUpgradeValue = hasPreUpgradeValue ? (this.preUpgradePropertyValues.get(propertyName) as T) : undefined;\n\n\t\tvalidateReactivePropertyDefault(type, defaultValue);\n\n\t\tconst initialValue: T | undefined = hasPreUpgradeValue\n\t\t\t? preUpgradeValue\n\t\t\t: resolveInitialValue(type, attributeKey, defaultValue);\n\n\t\tif (this.host.hasAttribute(attributeKey) && (!reflect || initialValue == null || initialValue === '')) {\n\t\t\tthis.host.removeAttribute(attributeKey);\n\t\t}\n\n\t\tif (hasPreUpgradeValue && Object.prototype.hasOwnProperty.call(this.host, propertyName)) {\n\t\t\tReflect.deleteProperty(this.host, propertyName);\n\t\t}\n\n\t\tconst propertyMapping = createReactivePropertyMapping(propertyName, attributeKey, type, initialValue);\n\n\t\tthis.register(propertyMapping);\n\n\t\tdefineReactiveAccessor(propertyName, {\n\t\t\tbind: options.bind,\n\t\t\tgetValue: () => this.properties.get(propertyName)?.value as T | undefined,\n\t\t\tsetValue: (newValue: T) => {\n\t\t\t\tthis.properties.set(propertyName, { ...propertyMapping, value: newValue });\n\t\t\t\tthis.reflectValue(attributeKey, reflect, propertyMapping, newValue);\n\t\t\t},\n\t\t});\n\n\t\tif (initialValue !== undefined) {\n\t\t\tqueueMicrotask(() => {\n\t\t\t\tconst currentValue = this.properties.get(propertyName)?.value as T | undefined;\n\t\t\t\tif (currentValue === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.reflectValue(attributeKey, reflect, propertyMapping, currentValue);\n\t\t\t\tthis.host.notifyUpdate(propertyName, undefined, currentValue);\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate transformAttributeValue(value: string | null, config: ReactiveProperty): unknown {\n\t\treturn value !== null ? config.converter.fromAttribute(value) : value;\n\t}\n\n\tprivate reflectValue<T>(\n\t\tattributeKey: string,\n\t\treflect: boolean | undefined,\n\t\tproperty: ReactiveProperty<T>,\n\t\tvalue: T,\n\t): void {\n\t\tif (!reflect) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (value == null || value === '' || value === false) {\n\t\t\tthis.host.removeAttribute(attributeKey);\n\t\t\treturn;\n\t\t}\n\n\t\tconst attributeValue = property.converter.toAttribute(value);\n\t\tthis.host.setAttribute(attributeKey, attributeValue);\n\t}\n}\n",
|
|
19
|
+
"import type { EventEmitter } from '../tools';\nimport { hasHydrationMarkers, jsx, type JsxRenderable, type SubscribableJsxValue } from '@ecopages/jsx';\nimport type { RenderToStringOptions } from '@ecopages/jsx/server';\nimport type { SsrSerializableContextProvider } from '../context/context-provider';\nimport type { UnknownContext } from '../context/types';\nimport {\n\trunLegacyInstanceInitializers,\n\trunLegacyPostConstructionInitializers,\n} from '../decorators/legacy/instance-initializers';\nimport {\n\tcreateReactivePropertyMapping,\n\ttype ReactiveAccessorDefinition,\n\ttype ReactiveBindingOption,\n\ttype ReactiveBindingValue,\n\ttype ReactiveBindings,\n\ttype ReactiveFieldOptions,\n\ttype ReactiveProperty,\n\ttype ReactivePropertyOptions,\n\tvalidateReactivePropertyDefault,\n} from './reactive-prop-core';\nimport { RenderRuntime, type RenderRuntimeHost } from './render-runtime';\nimport type { SsrSerializableHydrationBinding } from './ssr-hydration-binding';\nimport { ReactiveHost } from './reactive-host';\nimport { runSsrPreparationCallbacks } from './ssr-preparation';\nimport { isRadiantHydratorInstalled } from './radiant-hydrator-state';\nimport { getRadiantElementSsrRuntime } from './radiant-element-ssr-registry';\nimport { type AttributeTypeConstant, getInitialValue } from '../utils/attribute-utils';\n\nexport type {\n\tReactiveBindingOption,\n\tReactiveBindingValue,\n\tReactiveBindings,\n\tReactiveField,\n\tReactiveFieldOptions,\n\tReactiveProperty,\n\tReactivePropertyOptions,\n} from './reactive-prop-core';\n\nconst RadiantElementBase = resolveRadiantElementBase();\n\ntype RadiantRenderTarget = HTMLElement | ShadowRoot;\ntype RadiantInteractionTarget = HTMLElement | ShadowRoot;\ntype RadiantRenderSurface = {\n\trenderTarget: RadiantRenderTarget;\n\tinteractionTarget: RadiantInteractionTarget;\n\tqueryRoot: ParentNode;\n};\ntype ReactivePropertyStateHost = HTMLElement & {\n\tnotifyUpdate(changedProperty: string, oldValue: unknown, value: unknown): void;\n};\n\nfunction resolveRadiantElementBase(): typeof HTMLElement {\n\tif (typeof HTMLElement !== 'undefined') {\n\t\treturn HTMLElement;\n\t}\n\n\tthrow new Error(\n\t\t\"RadiantElement requires HTMLElement. Install '@ecopages/radiant/server/light-dom-shim' before SSR imports.\",\n\t);\n}\n\n/**\n * Possible positions to insert a rendered template.\n */\nexport type RenderInsertPosition = 'replace' | 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend';\n\n/**\n * Represents a Radiant element event listener.\n */\nexport type RadiantElementEventListener = {\n\tselector: string;\n\ttype: string;\n\tlistener: EventListener;\n\toptions?: AddEventListenerOptions;\n};\n\ntype RadiantElementEventSubscription = RadiantElementEventListener & {\n\ttarget: EventTarget;\n};\n\ntype StringPropertyKey<Value> = Extract<keyof Value, string>;\n\n/**\n * Represents an interface for a Radiant element.\n * @typeParam Bindings - Explicit internal bindable shape used to type `bind()` and `getReactiveBinding()`.\n *\n * This shape describes which reactive members are exposed through `bindings`,\n * `$`, and `bind(...)`. It does not automatically define the public JSX\n * attribute contract for the custom element.\n */\nexport interface IRadiantElement<Bindings extends object = {}> {\n\t/**\n\t * Namespace of cached JSX bindings keyed by the explicit bindable shape.\n\t */\n\treadonly bindings: ReactiveBindings<Bindings>;\n\n\t/**\n\t * Short alias for {@link bindings}.\n\t */\n\treadonly $: ReactiveBindings<Bindings>;\n\n\t/**\n\t * Called when a property of the element is updated.\n\t * @param changedProperty - The name of the changed property.\n\t * @param oldValue - The old value of the property.\n\t * @param newValue - The new value of the property.\n\t */\n\tnotifyUpdate(changedProperty: string, oldValue: unknown, newValue: unknown): void;\n\n\t/**\n\t * Subscribes to a Radiant element event.\n\t * @param event - The event listener to subscribe to.\n\t */\n\tsubscribeEvent(event: RadiantElementEventListener): void;\n\n\t/**\n\t * Registers a callback to be invoked when a reactive property or field changes.\n\t *\n\t * @returns A cleanup function that unregisters the callback.\n\t */\n\tregisterUpdateCallback(property: string, update: (...rest: any[]) => any): () => void;\n\n\t/**\n\t * Returns a subscribable JSX child binding for a reactive property or field.\n\t *\n\t * Prefer `this.bindings.key` or `this.$.key` in JSX render code when you want\n\t * property access syntax without string literals.\n\t */\n\tbind<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValue<ReactiveBindingValue<Bindings, Property>>;\n\n\t/**\n\t * Returns a subscribable JSX child binding for a reactive property or field.\n\t *\n\t * This is the primitive lookup used by `bind()`, `bindings.key`, and `$.key`.\n\t */\n\tgetReactiveBinding<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValue<ReactiveBindingValue<Bindings, Property>>;\n\n\t/**\n\t * Defines a stable JSX binding companion accessor for a reactive member.\n\t *\n\t * Companion bindings create properties such as `$count` directly on the host.\n\t * Prefer the `bindings` or `$` namespace for new code when you want typed,\n\t * explicit access to the configured bindable shape.\n\t */\n\tdefineReactiveBinding(property: string, bind?: ReactiveBindingOption): void;\n\n\t/**\n\t * Subscribes to multiple Radiant element events.\n\t * @param events - The array of event listeners to subscribe to.\n\t */\n\tsubscribeEvents(events: RadiantElementEventListener[]): void;\n\n\t/**\n\t * It adds a callback to be executed when the Radiant element is disconnected from the DOM.\n\t */\n\tregisterCleanupCallback(callback: () => void): void;\n\n\t/**\n\t * Registers a callback to run on each future host connection.\n\t *\n\t * The callback is only invoked from `connectedCallback()`. Registering it\n\t * after the host is already connected does not invoke it immediately.\n\t */\n\tregisterConnectedCallback(callback: () => void): void;\n\n\t/**\n\t * Registers a raw value reader for a reactive member so that tracked render\n\t * dependencies can read the underlying value without triggering the public\n\t * getter's dependency tracking.\n\t */\n\tregisterReactiveDependencyReader(property: string, read: () => unknown): void;\n\n\t/**\n\t * Records a tracked read of a reactive member during a component render,\n\t * allowing the signals runtime to re-render only the affected parts.\n\t */\n\ttrackReactiveRead(property: string): void;\n\n\t/**\n\t * Renders a trusted HTML template string into the specified target element.\n\t *\n\t * **Security:** The `template` string is written to the DOM via `innerHTML`\n\t * or `insertAdjacentHTML` without built-in sanitization. Callers are\n\t * responsible for ensuring the input is trusted. Supply a `sanitize`\n\t * function to transform the template before insertion.\n\t *\n\t * @param options - The rendering options.\n\t * @param options.target - The target element to render the template into.\n\t * @param options.template - The template string to render.\n\t * @param options.insert - The position to insert the rendered template. (optional)\n\t * @param options.sanitize - An optional function that transforms the template string before insertion.\n\t */\n\trenderTemplate(options: {\n\t\ttarget: HTMLElement;\n\t\ttemplate: string;\n\t\tinsert?: RenderInsertPosition;\n\t\tsanitize?: (html: string) => string;\n\t}): void;\n\n\t/**\n\t * Called when the Radiant element is connected to a context.\n\t * @param context - The connected context.\n\t */\n\tconnectedContextCallback(context: UnknownContext): void;\n\n\t/**\n\t * Gets a reference to a child element by its data-ref attribute.\n\t * @param ref - The data-ref attribute value of the element to get.\n\t * @param all - Whether to get all elements with the specified data-ref attribute value.\n\t * @returns The element with the specified data-ref attribute value, an array of elements or null if no element was found.\n\t */\n\tgetRef<T extends Element = Element>(ref: string, all: true): T[];\n\tgetRef<T extends Element = Element>(ref: string, all?: false): T | null;\n}\n\n/**\n * A base class for creating custom elements with reactive properties and event subscriptions.\n * @typeParam Bindings - Explicit internal bindable shape. Include only the\n * prop/state keys that JSX bindings should accept.\n *\n * Prefer a separate public props type for custom-element JSX declarations when\n * the external attribute contract differs from the component's internal\n * reactive state. Reuse the same type only when the public props and bindable\n * members are intentionally identical.\n * @extends HTMLElement\n * @implements IRadiantElement<Bindings>\n */\nexport class RadiantElement<Bindings extends object = {}>\n\textends RadiantElementBase\n\timplements IRadiantElement<Bindings>\n{\n\t/**\n\t * Controls where the JSX render lifecycle mounts the component view.\n\t *\n\t * Subclasses can override this with `'shadow'` to force an internal open\n\t * shadow root for client-side rendering. Host SSR helpers remain light-DOM\n\t * only and throw when shadow render mode is enabled.\n\t */\n\tprotected readonly renderRootMode: 'light' | 'shadow' = 'light';\n\tpublic readonly bindings: ReactiveBindings<Bindings>;\n\tpublic readonly $: ReactiveBindings<Bindings>;\n\tprivate readonly reactiveHost: ReactiveHost<this, Bindings>;\n\tprivate readonly reactivePropertyState: ReactivePropertyState;\n\n\t/**\n\t * Registered context providers keyed by decorated property name.\n\t */\n\tprivate contextProviders = new Map<string, SsrSerializableContextProvider>();\n\n\t/**\n\t * Registered keyed hydration payload producers appended to SSR host output.\n\t */\n\tprivate hydrationBindings = new Map<string, SsrSerializableHydrationBinding>();\n\n\t/**\n\t * A map of event subscriptions used to manage event listeners on the Radiant element.\n\t */\n\tprivate eventSubscriptions = new Map<string, RadiantElementEventSubscription>();\n\n\t/**\n\t * A map for event emitters\n\t */\n\tprivate eventEmitters = new Map<string, EventEmitter>();\n\n\t/**\n\t * A flag indicating whether the element has been connected to the DOM.\n\t */\n\tprivate elementReady = false;\n\tprivate isRendering = false;\n\tprivate isFirstConnectPending = false;\n\tprivate isRenderScheduled = false;\n\tprivate needsRender = false;\n\tprivate renderRuntime?: RenderRuntime;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.reactivePropertyState = new ReactivePropertyState(this);\n\n\t\tthis.reactiveHost = new ReactiveHost<this, Bindings>(\n\t\t\tthis,\n\t\t\t{\n\t\t\t\tdefineProperty: (target, property, descriptor) => Object.defineProperty(target, property, descriptor),\n\t\t\t\tgetBindingTarget: (target) => Object.getPrototypeOf(target) ?? target,\n\t\t\t\thasProperty: (target, property) => property in target,\n\t\t\t\treadProperty: (target, property) => (target as Record<string, unknown>)[property],\n\t\t\t},\n\t\t\t() => this.shouldAutoBindReactiveMembers(),\n\t\t);\n\t\tthis.bindings = this.reactiveHost.bindings;\n\t\tthis.$ = this.reactiveHost.$;\n\t\trunLegacyInstanceInitializers(this);\n\t}\n\n\tpublic get slotProjectionVersion(): number {\n\t\treturn this.renderRuntime?.slotProjectionVersion ?? 0;\n\t}\n\n\tconnectedCallback() {\n\t\trunLegacyPostConstructionInitializers(this);\n\t\tconst isReconnectDuringPendingFirstConnect = this.isFirstConnectPending;\n\n\t\tthis.elementReady = true;\n\n\t\tthis.reactiveHost.connectHost();\n\n\t\tif (isReconnectDuringPendingFirstConnect) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isFirstConnectPending = true;\n\n\t\tqueueMicrotask(() => {\n\t\t\tthis.isFirstConnectPending = false;\n\n\t\t\tif (!this.isConnected) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!this.shouldRunRenderLifecycle()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst renderRuntime = this.getOrCreateRenderRuntime();\n\t\t\trenderRuntime.observeSlotProjection();\n\n\t\t\tif (shouldHydrateOnConnect(this)) {\n\t\t\t\tthis.needsRender = false;\n\t\t\t\tthis.hydrate();\n\n\t\t\t\tif (this.needsRender) {\n\t\t\t\t\tthis.update();\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.update();\n\t\t});\n\t}\n\n\tconnectedContextCallback(_contextName: UnknownContext): void {}\n\n\tdisconnectedCallback() {\n\t\tthis.renderRuntime?.dispose();\n\t\tthis.renderRuntime = undefined;\n\t\tthis.removeAllSubscribedEvents();\n\t\tthis.reactiveHost.disconnectHost();\n\t}\n\n\tpublic notifyUpdate(changedProperty: string, oldValue: unknown, value: unknown) {\n\t\tthis.reactiveHost.notifyUpdate(changedProperty, oldValue, value);\n\t}\n\n\tattributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n\t\tif (oldValue === newValue || !this.elementReady) return;\n\n\t\tthis.reactivePropertyState.applyAttributeChange(name, oldValue, newValue);\n\t}\n\n\t/**\n\t * Renders a trusted HTML template string into the specified target element.\n\t *\n\t * **Security:** The `template` string is written to the DOM via `innerHTML`\n\t * or `insertAdjacentHTML` without built-in sanitization. Callers are\n\t * responsible for ensuring the input is trusted. Supply a `sanitize`\n\t * function to transform the template before insertion.\n\t */\n\tpublic renderTemplate({\n\t\ttarget = this,\n\t\ttemplate,\n\t\tinsert = 'replace',\n\t\tsanitize,\n\t}: {\n\t\ttarget: HTMLElement;\n\t\ttemplate: string;\n\t\tinsert?: RenderInsertPosition;\n\t\tsanitize?: (html: string) => string;\n\t}) {\n\t\tconst html = sanitize ? sanitize(template) : template;\n\t\tswitch (insert) {\n\t\t\tcase 'replace':\n\t\t\t\ttarget.innerHTML = html;\n\t\t\t\tbreak;\n\t\t\tcase 'beforeend':\n\t\t\t\ttarget.insertAdjacentHTML('beforeend', html);\n\t\t\t\tbreak;\n\t\t\tcase 'afterbegin':\n\t\t\t\ttarget.insertAdjacentHTML('afterbegin', html);\n\t\t\t\tbreak;\n\t\t\tcase 'beforebegin':\n\t\t\t\ttarget.insertAdjacentHTML('beforebegin', html);\n\t\t\t\tbreak;\n\t\t\tcase 'afterend':\n\t\t\t\ttarget.insertAdjacentHTML('afterend', html);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tpublic render(): JsxRenderable {\n\t\treturn jsx('slot', {});\n\t}\n\n\tpublic renderViewToString(options: RenderToStringOptions = {}): string {\n\t\tif (!this.shouldRunRenderLifecycle()) {\n\t\t\treturn this.innerHTML;\n\t\t}\n\n\t\trunLegacyPostConstructionInitializers(this);\n\t\tthis.prepareForSsr();\n\n\t\treturn requireRadiantElementSsrRuntime().renderView(this, options);\n\t}\n\n\tpublic hydrate(): void {\n\t\tif (!this.shouldRunRenderLifecycle() || !this.isConnected || this.isRendering) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { renderTarget } = this.resolveRenderSurface();\n\t\tconst renderRuntime = this.getOrCreateRenderRuntime();\n\n\t\tthis.isRendering = true;\n\n\t\ttry {\n\t\t\trenderRuntime.hydrate(renderTarget as HTMLElement);\n\t\t} finally {\n\t\t\tthis.isRendering = false;\n\t\t}\n\t}\n\n\tpublic requestUpdate(): void {\n\t\tif (!this.shouldRunRenderLifecycle()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.needsRender = true;\n\n\t\tif (this.isRenderScheduled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isRenderScheduled = true;\n\n\t\tqueueMicrotask(() => {\n\t\t\tthis.isRenderScheduled = false;\n\n\t\t\tif (!this.needsRender) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.update();\n\t\t});\n\t}\n\n\tpublic update(): void {\n\t\tif (!this.shouldRunRenderLifecycle()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { renderTarget } = this.resolveRenderSurface();\n\t\tconst renderRuntime = this.getOrCreateRenderRuntime();\n\n\t\tthis.needsRender = true;\n\n\t\tif (!this.isConnected || this.isRendering) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isFirstConnectPending && shouldHydrateOnConnect(this)) {\n\t\t\treturn;\n\t\t}\n\n\t\twhile (this.needsRender && this.isConnected) {\n\t\t\tthis.needsRender = false;\n\t\t\tthis.isRendering = true;\n\n\t\t\ttry {\n\t\t\t\trenderRuntime.render(renderTarget as HTMLElement);\n\t\t\t} finally {\n\t\t\t\tthis.isRendering = false;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic registerReactiveProperty(config: ReactiveProperty) {\n\t\tthis.reactivePropertyState.register(config);\n\t}\n\n\tpublic getReactiveProperties(): ReactiveProperty[] {\n\t\treturn this.reactivePropertyState.getAll();\n\t}\n\n\tpublic registerReactiveDependencyReader(property: string, read: () => unknown): void {\n\t\tthis.reactiveHost.registerReactiveDependencyReader(property, read);\n\t}\n\n\tpublic registerContextProvider(name: string, provider: SsrSerializableContextProvider): void {\n\t\tthis.contextProviders.set(name, provider);\n\t\tthis.hydrationBindings.set(name, provider);\n\t}\n\n\tpublic registerHydrationBinding(name: string, binding: SsrSerializableHydrationBinding): void {\n\t\tthis.hydrationBindings.set(name, binding);\n\t}\n\n\tpublic getContextProviders(): SsrSerializableContextProvider[] {\n\t\trunLegacyPostConstructionInitializers(this);\n\t\treturn [...this.contextProviders.values()];\n\t}\n\n\tpublic getHydrationBindings(): SsrSerializableHydrationBinding[] {\n\t\trunLegacyPostConstructionInitializers(this);\n\t\treturn [...this.hydrationBindings.values()];\n\t}\n\n\t/**\n\t * Flushes any deferred SSR-only preparation work before the host is\n\t * serialized.\n\t *\n\t * Radiant uses this to reapply SSR consumer state after construction so the\n\t * first server render sees finalized fields, props, and authored content.\n\t */\n\tprotected prepareForSsr(): void {\n\t\trunSsrPreparationCallbacks(this);\n\t}\n\n\t/**\n\t * Returns the default JSX binding policy for reactive members on this host.\n\t *\n\t * `RadiantElement` hosts default to automatic bindings for reactive members\n\t * when no explicit `bind` option is supplied.\n\t *\n\t * Lower-level hosts can override this hook to opt out when they want binding\n\t * creation to stay fully explicit across `@prop`, `@state`, and direct\n\t * `createReactiveProp`/`createReactiveField` calls.\n\t */\n\tprotected shouldAutoBindReactiveMembers(): boolean {\n\t\treturn true;\n\t}\n\n\tprotected shouldRunRenderLifecycle(): boolean {\n\t\treturn this.render !== RadiantElement.prototype.render;\n\t}\n\n\t/** Returns the DOM root used by client-side render and hydrate work. */\n\tprotected getRenderTarget(): RadiantRenderTarget {\n\t\tif (this.renderRootMode !== 'shadow') {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (this.shadowRoot) {\n\t\t\treturn this.shadowRoot;\n\t\t}\n\n\t\tif (typeof this.attachShadow !== 'function') {\n\t\t\tthrow new Error('RadiantElement shadow render mode requires attachShadow().');\n\t\t}\n\n\t\treturn this.attachShadow({ mode: 'open' });\n\t}\n\n\tpublic registerUpdateCallback(property: string, update: (...rest: any[]) => any): () => void {\n\t\treturn this.reactiveHost.registerUpdateCallback(property, update);\n\t}\n\n\tpublic getReactiveBinding<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValue<ReactiveBindingValue<Bindings, Property>> {\n\t\treturn this.reactiveHost.getReactiveBinding(property);\n\t}\n\n\tpublic bind<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValue<ReactiveBindingValue<Bindings, Property>> {\n\t\treturn this.reactiveHost.getReactiveBinding(property);\n\t}\n\n\tpublic defineReactiveBinding(property: string, bind: ReactiveBindingOption = true): void {\n\t\tthis.reactiveHost.defineReactiveBinding(property, bind);\n\t}\n\n\tpublic trackReactiveRead(property: string): void {\n\t\tthis.reactiveHost.trackReactiveRead(property);\n\t}\n\n\tpublic subscribeEvents(events: RadiantElementEventListener[]): Array<() => void> {\n\t\tconst unsubscribers: Array<() => void> = [];\n\t\tfor (const event of events) {\n\t\t\tunsubscribers.push(this.subscribeEvent(event));\n\t\t}\n\t\treturn unsubscribers;\n\t}\n\n\tpublic subscribeEvent(eventConfig: RadiantElementEventListener): () => void {\n\t\tconst { interactionTarget } = this.resolveRenderSurface();\n\t\tconst delegatedListener = (delegatedEvent: Event) => {\n\t\t\tif (delegatedEvent.target && (delegatedEvent.target as Element).matches(eventConfig.selector)) {\n\t\t\t\teventConfig.listener.call(this, delegatedEvent);\n\t\t\t}\n\t\t};\n\t\tconst subscriptionId = `${eventConfig.type}:${eventConfig.selector}`;\n\t\tinteractionTarget.addEventListener(eventConfig.type, delegatedListener, eventConfig.options);\n\t\tthis.eventSubscriptions.set(subscriptionId, {\n\t\t\t...eventConfig,\n\t\t\tlistener: delegatedListener,\n\t\t\ttarget: interactionTarget,\n\t\t});\n\n\t\treturn this.unsubscribeEvent.bind(this, subscriptionId);\n\t}\n\n\tprivate unsubscribeEvent(id: string): void {\n\t\tconst eventSubscription = this.eventSubscriptions.get(id);\n\t\tif (eventSubscription) {\n\t\t\teventSubscription.target.removeEventListener(\n\t\t\t\teventSubscription.type,\n\t\t\t\teventSubscription.listener,\n\t\t\t\teventSubscription.options,\n\t\t\t);\n\t\t\tthis.eventSubscriptions.delete(id);\n\t\t}\n\t}\n\n\tprivate removeAllSubscribedEvents(): void {\n\t\tfor (const eventSubscription of this.eventSubscriptions.values()) {\n\t\t\teventSubscription.target.removeEventListener(\n\t\t\t\teventSubscription.type,\n\t\t\t\teventSubscription.listener,\n\t\t\t\teventSubscription.options,\n\t\t\t);\n\t\t}\n\t\tthis.eventSubscriptions.clear();\n\t}\n\n\t/**\n\t * Registers a callback that runs on every future disconnect.\n\t */\n\tpublic registerCleanupCallback(callback: () => void): void {\n\t\tthis.reactiveHost.registerCleanupCallback(callback);\n\t}\n\n\t/**\n\t * Registers a callback that runs from `connectedCallback()` on future host\n\t * connections.\n\t *\n\t * Registering after the host is already connected does not invoke the\n\t * callback immediately.\n\t */\n\tpublic registerConnectedCallback(callback: () => void): void {\n\t\tthis.reactiveHost.registerConnectedCallback(callback);\n\t}\n\n\tpublic registerEventEmitter(name: string, emitter: EventEmitter) {\n\t\tthis.eventEmitters.set(name, emitter);\n\t}\n\n\tpublic getRef<T extends Element = Element>(ref: string, all: true): T[];\n\tpublic getRef<T extends Element = Element>(ref: string, all?: false): T | null;\n\tpublic getRef<T extends Element = Element>(ref: string, all = false): T | T[] | null {\n\t\tconst selector = `[data-ref=\"${ref}\"]`;\n\t\tconst { queryRoot } = this.resolveRenderSurface();\n\t\tif (all) {\n\t\t\treturn Array.from(queryRoot.querySelectorAll(selector)) as T[];\n\t\t}\n\t\treturn (queryRoot.querySelector(selector) as T) ?? null;\n\t}\n\n\tpublic getSlotElement<T extends Element = Element>(name?: string): T | null {\n\t\treturn (this.getSlotElements<T>(name)[0] ?? null) as T | null;\n\t}\n\n\tpublic getSlotElements<T extends Element = Element>(name?: string): T[] {\n\t\treturn this.getOrCreateRenderRuntime().getSlotElements<T>(name);\n\t}\n\n\tpublic createReactiveField<T>(propertyName: string, initialValue: T, options: ReactiveFieldOptions = {}): void {\n\t\tthis.reactiveHost.createReactiveField(propertyName, initialValue, options);\n\t}\n\n\t/**\n\t * Defines a reactive custom-element property backed by a Radiant accessor.\n\t *\n\t * When the host was assigned a value before upgrade, that pre-upgrade value is\n\t * preferred over attribute parsing and `defaultValue` so early `.prop = value`\n\t * writes survive into the reactive lifecycle.\n\t */\n\tpublic createReactiveProp<T = unknown>(propertyName: string, options: ReactivePropertyOptions<T>): void {\n\t\tthis.reactivePropertyState.create(\n\t\t\tpropertyName,\n\t\t\toptions,\n\t\t\t(type, attributeKey, defaultValue) => getInitialValue(this, type, attributeKey, defaultValue) as T,\n\t\t\t(name, config) => {\n\t\t\t\tthis.reactiveHost.defineReactiveAccessor(name, config);\n\t\t\t},\n\t\t);\n\t}\n\n\tpublic getSlotProjectionScriptTag(): string | undefined {\n\t\treturn this.getOrCreateRenderRuntime().getSlotProjectionScriptTag();\n\t}\n\n\tpublic getAuthoredHydrationScriptMarkup(): string | undefined {\n\t\treturn this.getOrCreateRenderRuntime().getAuthoredHydrationScriptMarkup();\n\t}\n\n\tpublic resolveTrackedRenderOutput(): { containsSlots: boolean; value: JsxRenderable } {\n\t\treturn this.getOrCreateRenderRuntime().resolveTrackedRenderOutput();\n\t}\n\n\tprivate getOrCreateRenderRuntime() {\n\t\tif (this.renderRuntime) {\n\t\t\treturn this.renderRuntime;\n\t\t}\n\n\t\tthis.renderRuntime = new RenderRuntime(this as RenderRuntimeHost);\n\t\treturn this.renderRuntime;\n\t}\n\n\tprivate resolveRenderSurface(): RadiantRenderSurface {\n\t\tconst renderTarget = this.getRenderTarget();\n\t\tconst interactionTarget =\n\t\t\ttypeof ShadowRoot !== 'undefined' && renderTarget instanceof ShadowRoot ? renderTarget : this;\n\n\t\treturn {\n\t\t\tinteractionTarget,\n\t\t\tqueryRoot: interactionTarget,\n\t\t\trenderTarget,\n\t\t};\n\t}\n}\n\nfunction requireRadiantElementSsrRuntime() {\n\tconst runtime = getRadiantElementSsrRuntime();\n\n\tif (!runtime) {\n\t\tthrow new Error('Radiant SSR runtime unavailable. Import `@ecopages/radiant/server/render-component` first.');\n\t}\n\n\treturn runtime;\n}\n\nfunction shouldHydrateOnConnect(component: HTMLElement): boolean {\n\treturn isRadiantHydratorInstalled() && hasHydrationMarkers(component);\n}\n\nclass ReactivePropertyState {\n\tprivate readonly properties = new Map<string, ReactiveProperty>();\n\tprivate readonly preUpgradePropertyValues = new Map<string, unknown>();\n\n\tconstructor(private readonly host: ReactivePropertyStateHost) {\n\t\tfor (const propertyName of Object.getOwnPropertyNames(host)) {\n\t\t\tthis.preUpgradePropertyValues.set(propertyName, Reflect.get(host, propertyName));\n\t\t}\n\t}\n\n\tpublic register(config: ReactiveProperty): void {\n\t\tthis.properties.set(config.name, config);\n\t}\n\n\tpublic getAll(): ReactiveProperty[] {\n\t\treturn Array.from(this.properties.values());\n\t}\n\n\tpublic applyAttributeChange(name: string, oldValue: string | null, newValue: string | null): void {\n\t\tconst config = this.properties.get(name);\n\n\t\tif (!config) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst transformedValue = this.transformAttributeValue(newValue, config);\n\t\tconst transformedOldValue = this.transformAttributeValue(oldValue, config);\n\n\t\tReflect.set(this.host, config.attribute, transformedValue);\n\t\tthis.host.notifyUpdate(name, transformedOldValue, transformedValue);\n\t}\n\n\tpublic create<T>(\n\t\tpropertyName: string,\n\t\toptions: ReactivePropertyOptions<T>,\n\t\tresolveInitialValue: (type: AttributeTypeConstant, attributeKey: string, defaultValue: unknown) => T,\n\t\tdefineReactiveAccessor: (propertyName: string, config: ReactiveAccessorDefinition<T>) => void,\n\t): void {\n\t\tconst { type, attribute, reflect, defaultValue } = options;\n\t\tconst attributeKey = attribute ?? propertyName;\n\t\tconst hasPreUpgradeValue = this.preUpgradePropertyValues.has(propertyName);\n\t\tconst preUpgradeValue = hasPreUpgradeValue ? (this.preUpgradePropertyValues.get(propertyName) as T) : undefined;\n\n\t\tvalidateReactivePropertyDefault(type, defaultValue);\n\n\t\tconst initialValue: T | undefined = hasPreUpgradeValue\n\t\t\t? preUpgradeValue\n\t\t\t: resolveInitialValue(type, attributeKey, defaultValue);\n\n\t\tif (this.host.hasAttribute(attributeKey) && (!reflect || initialValue == null || initialValue === '')) {\n\t\t\tthis.host.removeAttribute(attributeKey);\n\t\t}\n\n\t\tif (hasPreUpgradeValue && Object.prototype.hasOwnProperty.call(this.host, propertyName)) {\n\t\t\tReflect.deleteProperty(this.host, propertyName);\n\t\t}\n\n\t\tconst propertyMapping = createReactivePropertyMapping(propertyName, attributeKey, type, initialValue);\n\n\t\tthis.register(propertyMapping);\n\n\t\tdefineReactiveAccessor(propertyName, {\n\t\t\tbind: options.bind,\n\t\t\tgetValue: () => this.properties.get(propertyName)?.value as T | undefined,\n\t\t\tsetValue: (newValue: T) => {\n\t\t\t\tthis.properties.set(propertyName, { ...propertyMapping, value: newValue });\n\t\t\t\tthis.reflectValue(attributeKey, reflect, propertyMapping, newValue);\n\t\t\t},\n\t\t});\n\n\t\tif (initialValue !== undefined) {\n\t\t\tqueueMicrotask(() => {\n\t\t\t\tconst currentValue = this.properties.get(propertyName)?.value as T | undefined;\n\t\t\t\tif (currentValue === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.reflectValue(attributeKey, reflect, propertyMapping, currentValue);\n\t\t\t\tthis.host.notifyUpdate(propertyName, undefined, currentValue);\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate transformAttributeValue(value: string | null, config: ReactiveProperty): unknown {\n\t\treturn value !== null ? config.converter.fromAttribute(value) : value;\n\t}\n\n\tprivate reflectValue<T>(\n\t\tattributeKey: string,\n\t\treflect: boolean | undefined,\n\t\tproperty: ReactiveProperty<T>,\n\t\tvalue: T,\n\t): void {\n\t\tif (!reflect) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (value == null || value === '' || value === false) {\n\t\t\tthis.host.removeAttribute(attributeKey);\n\t\t\treturn;\n\t\t}\n\n\t\tconst attributeValue = property.converter.toAttribute(value);\n\t\tthis.host.setAttribute(attributeKey, attributeValue);\n\t}\n}\n",
|
|
20
20
|
"import { render as renderJsx, type JsxRenderable, type SubscribableJsxValue } from '@ecopages/jsx';\nimport { createReactiveComputed, createReactiveWatcher, type ReactiveComputed } from './reactivity-adapter';\nimport type { SsrSerializableContextProvider } from '../context/context-provider';\nimport type { UnknownContext } from '../context/types';\nimport {\n\trunLegacyInstanceInitializers,\n\trunLegacyPostConstructionInitializers,\n} from '../decorators/legacy/instance-initializers';\nimport { ReactiveHost, type ReactiveHostLike } from './reactive-host';\nimport type {\n\tReactiveBindingOption,\n\tReactivePropertyOptions,\n\tReactiveBindingValue,\n\tReactiveBindings,\n\tReactiveFieldOptions,\n} from './reactive-prop-core';\nimport type { SsrSerializableHydrationBinding } from './ssr-hydration-binding';\nimport { defaultValueForType } from '../utils/attribute-utils';\nimport { validateReactivePropertyDefault } from './reactive-prop-core';\n\ntype StringPropertyKey<Value> = Extract<keyof Value, string>;\n\n/**\n * Attaches Radiant reactivity to an existing DOM element without defining a\n * custom element.\n *\n * `RadiantController` is the controller-host counterpart to `RadiantElement`.\n * It can enhance authored DOM, or it can take over the host's inner DOM by\n * overriding `render()`.\n *\n * When used with the controller registry, the attached host is typically an\n * element carrying `data-controller=\"...\"`.\n *\n * @typeParam Bindings - Explicit internal bindable shape. Include only the\n * reactive keys that JSX bindings should accept.\n */\nexport class RadiantController<Bindings extends object = {}> implements ReactiveHostLike<Bindings> {\n\tpublic readonly host: Element;\n\tpublic readonly element: Element;\n\tpublic readonly bindings: ReactiveBindings<Bindings>;\n\tpublic readonly $: ReactiveBindings<Bindings>;\n\n\tprivate readonly reactiveHost: ReactiveHost<this, Bindings>;\n\tprivate connected = false;\n\tprivate isRendering = false;\n\tprivate isRenderScheduled = false;\n\tprivate isSsrLifecycle = false;\n\tprivate needsRender = false;\n\tprivate contextProviders = new Map<string, SsrSerializableContextProvider>();\n\tprivate hydrationBindings = new Map<string, SsrSerializableHydrationBinding>();\n\tprivate renderSignal?: ReactiveComputed<JsxRenderable>;\n\tprivate readonly renderWatcher = createReactiveWatcher(() => {\n\t\tthis.requestUpdate();\n\t});\n\n\tconstructor(host: Element) {\n\t\tthis.host = host;\n\t\tthis.element = host;\n\t\tthis.reactiveHost = new ReactiveHost<this, Bindings>(\n\t\t\tthis,\n\t\t\t{\n\t\t\t\tdefineProperty: (target, property, descriptor) => Object.defineProperty(target, property, descriptor),\n\t\t\t\thasProperty: (target, property) => property in target,\n\t\t\t\treadProperty: (target, property) => (target as Record<string, unknown>)[property],\n\t\t\t},\n\t\t\t() => this.shouldAutoBindReactiveMembers(),\n\t\t);\n\t\tthis.bindings = this.reactiveHost.bindings;\n\t\tthis.$ = this.reactiveHost.$;\n\t\trunLegacyInstanceInitializers(this);\n\t}\n\n\t/**\n\t * Connects the controller to its host and starts reactive subscriptions.\n\t *\n\t * If the controller owns a render lifecycle by overriding `render()`, the\n\t * first update runs immediately after connection.\n\t */\n\tpublic connect(): void {\n\t\trunLegacyPostConstructionInitializers(this);\n\t\tthis.connected = true;\n\t\tthis.reactiveHost.connectHost();\n\n\t\tif (this.shouldRunRenderLifecycle()) {\n\t\t\tthis.update();\n\t\t}\n\t}\n\n\t/**\n\t * Runs controller lifecycle work in SSR mode so `connect()` skips the client\n\t * render/update path even when subclasses override it.\n\t */\n\tpublic runWithSsrLifecycle<T>(work: () => T): T {\n\t\tthis.isSsrLifecycle = true;\n\n\t\ttry {\n\t\t\treturn work();\n\t\t} finally {\n\t\t\tthis.isSsrLifecycle = false;\n\t\t}\n\t}\n\n\t/**\n\t * Disconnects the controller from its host and tears down reactive work.\n\t */\n\tpublic disconnect(): void {\n\t\tthis.connected = false;\n\t\tthis.disconnectRenderWatcher();\n\t\tthis.reactiveHost.disconnectHost();\n\t}\n\n\tpublic get isConnected(): boolean {\n\t\treturn this.connected;\n\t}\n\n\t/**\n\t * Returns the JSX tree rendered into the attached host.\n\t *\n\t * The base implementation renders nothing. Override this method when the\n\t * controller should own the host's inner DOM instead of only enhancing\n\t * authored markup.\n\t */\n\tpublic render(): JsxRenderable {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Schedules a render pass for render-owning controllers.\n\t *\n\t * Multiple calls in the same microtask are coalesced into a single update.\n\t */\n\tpublic requestUpdate(): void {\n\t\tif (!this.shouldRunRenderLifecycle()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.needsRender = true;\n\n\t\tif (this.isRenderScheduled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isRenderScheduled = true;\n\n\t\tqueueMicrotask(() => {\n\t\t\tthis.isRenderScheduled = false;\n\n\t\t\tif (!this.needsRender) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.update();\n\t\t});\n\t}\n\n\t/**\n\t * Flushes the current render output into the attached host element.\n\t *\n\t * This is a no-op unless the controller overrides `render()`.\n\t */\n\tpublic update(): void {\n\t\tif (!this.shouldRunRenderLifecycle()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst renderTarget = this.getRenderTarget();\n\n\t\tif (!renderTarget) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.needsRender = true;\n\n\t\tif (!this.connected || this.isRendering) {\n\t\t\treturn;\n\t\t}\n\n\t\twhile (this.needsRender) {\n\t\t\tthis.needsRender = false;\n\t\t\tthis.isRendering = true;\n\n\t\t\ttry {\n\t\t\t\trenderJsx(this.resolveTrackedRenderOutput(), renderTarget);\n\t\t\t} finally {\n\t\t\t\tthis.isRendering = false;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns a subscribable JSX binding for a selected reactive member.\n\t */\n\tpublic bind<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValue<ReactiveBindingValue<Bindings, Property>> {\n\t\treturn this.reactiveHost.getReactiveBinding(property);\n\t}\n\n\t/**\n\t * Returns the cached binding object for a selected reactive member.\n\t */\n\tpublic getReactiveBinding<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValue<ReactiveBindingValue<Bindings, Property>> {\n\t\treturn this.reactiveHost.getReactiveBinding(property);\n\t}\n\n\t/**\n\t * Defines a reactive field directly on the controller instance.\n\t */\n\tpublic createReactiveField<T>(propertyName: string, initialValue: T, options: ReactiveFieldOptions = {}): void {\n\t\tthis.reactiveHost.createReactiveField(propertyName, initialValue, options);\n\t}\n\n\t/**\n\t * Defines a controller prop backed by the attached host element's property\n\t * channel instead of attribute serialization.\n\t *\n\t * This gives controller-based integrations the same reactive field surface as\n\t * `@prop(...)` on `RadiantElement`, while allowing external code to assign\n\t * structured values such as arrays or objects directly on `controller.host`.\n\t */\n\tpublic createReactiveProp<T = unknown>(propertyName: string, options: ReactivePropertyOptions<T>): void {\n\t\tconst { type, defaultValue, bind } = options;\n\n\t\tvalidateReactivePropertyDefault(type, defaultValue);\n\n\t\tconst hostPropertyBridge = new ControllerHostPropertyBridge<T>(this.host, this, propertyName);\n\t\tconst initialHostValue = hostPropertyBridge.getInitialValue();\n\t\tlet currentValue = (initialHostValue ?? defaultValue ?? defaultValueForType(type)) as T;\n\n\t\tthis.reactiveHost.defineReactiveAccessor(propertyName, {\n\t\t\tbind,\n\t\t\tgetValue: () => currentValue,\n\t\t\tsetValue: (newValue: T) => {\n\t\t\t\tcurrentValue = newValue;\n\t\t\t},\n\t\t\tnotifyInitialValue: currentValue,\n\t\t});\n\n\t\thostPropertyBridge.install();\n\n\t\tthis.registerCleanupCallback(() => {\n\t\t\thostPropertyBridge.restore();\n\t\t});\n\t}\n\n\t/**\n\t * Defines a JSX binding companion such as `$count` for a reactive member.\n\t */\n\tpublic defineReactiveBinding(property: string, bind: ReactiveBindingOption = true): void {\n\t\tthis.reactiveHost.defineReactiveBinding(property, bind);\n\t}\n\n\tpublic notifyUpdate(changedProperty: string, oldValue: unknown, value: unknown): void {\n\t\tthis.reactiveHost.notifyUpdate(changedProperty, oldValue, value);\n\t}\n\n\tpublic registerUpdateCallback(property: string, update: (...rest: any[]) => any): () => void {\n\t\treturn this.reactiveHost.registerUpdateCallback(property, update);\n\t}\n\n\t/**\n\t * Notifies context decorators that a provider or consumer for `contextName`\n\t * finished connecting on this controller host.\n\t *\n\t * Controllers currently rely on the shared client-side context event flow, so\n\t * the base implementation does not need extra bookkeeping here.\n\t */\n\tpublic connectedContextCallback(_contextName: UnknownContext): void {}\n\n\t/**\n\t * Registers a decorated context provider on the controller host.\n\t *\n\t * Controller providers participate in the same client-side event-based context\n\t * flow as `RadiantElement` providers. During SSR, the registered providers are\n\t * also exposed to descendant consumers and hydration payload collection.\n\t */\n\tpublic registerContextProvider(name: string, provider: SsrSerializableContextProvider): void {\n\t\tthis.contextProviders.set(name, provider);\n\t\tthis.hydrationBindings.set(name, provider);\n\t}\n\n\t/**\n\t * Registers a keyed SSR hydration binding for the controller host.\n\t */\n\tpublic registerHydrationBinding(name: string, binding: SsrSerializableHydrationBinding): void {\n\t\tthis.hydrationBindings.set(name, binding);\n\t}\n\n\t/**\n\t * Returns SSR-visible context providers registered on this controller.\n\t */\n\tpublic getSsrContextProviders(): SsrSerializableContextProvider[] {\n\t\treturn [...this.contextProviders.values()];\n\t}\n\n\t/**\n\t * Returns keyed hydration payload producers registered on this controller.\n\t */\n\tpublic getSsrHydrationBindings(): SsrSerializableHydrationBinding[] {\n\t\treturn [...this.hydrationBindings.values()];\n\t}\n\n\tpublic registerCleanupCallback(callback: () => void): void {\n\t\tthis.reactiveHost.registerCleanupCallback(callback);\n\t}\n\n\tpublic registerConnectedCallback(callback: () => void): void {\n\t\tthis.reactiveHost.registerConnectedCallback(callback);\n\t}\n\n\tpublic registerReactiveDependencyReader(property: string, read: () => unknown): void {\n\t\tthis.reactiveHost.registerReactiveDependencyReader(property, read);\n\t}\n\n\tpublic trackReactiveRead(property: string): void {\n\t\tthis.reactiveHost.trackReactiveRead(property);\n\t}\n\n\tpublic addEventListener(\n\t\ttype: string,\n\t\tlistener: EventListenerOrEventListenerObject,\n\t\toptions?: boolean | AddEventListenerOptions,\n\t): void {\n\t\tthis.host.addEventListener(type, listener, options);\n\t}\n\n\tpublic removeEventListener(\n\t\ttype: string,\n\t\tlistener: EventListenerOrEventListenerObject,\n\t\toptions?: boolean | EventListenerOptions,\n\t): void {\n\t\tthis.host.removeEventListener(type, listener, options);\n\t}\n\n\tpublic dispatchEvent(event: Event): boolean {\n\t\treturn this.host.dispatchEvent(event);\n\t}\n\n\t/**\n\t * Finds one or more elements inside the attached host by `data-ref`.\n\t *\n\t * Prefer `@query(...)` for stable, decorator-backed refs and use `getRef(...)`\n\t * for one-off lookups.\n\t */\n\tpublic getRef<T extends Element = Element>(ref: string, all: true): T[];\n\tpublic getRef<T extends Element = Element>(ref: string, all?: false): T | null;\n\tpublic getRef<T extends Element = Element>(ref: string, all = false): T | T[] | null {\n\t\tconst selector = `[data-ref=\"${ref}\"]`;\n\n\t\tif (all) {\n\t\t\treturn Array.from(this.host.querySelectorAll(selector)) as T[];\n\t\t}\n\n\t\treturn (this.host.querySelector(selector) as T) ?? null;\n\t}\n\n\tprotected shouldAutoBindReactiveMembers(): boolean {\n\t\treturn true;\n\t}\n\n\tprotected shouldRunRenderLifecycle(): boolean {\n\t\treturn !this.isSsrLifecycle && this.render !== RadiantController.prototype.render;\n\t}\n\n\tprivate getRenderTarget(): HTMLElement | null {\n\t\treturn this.host instanceof HTMLElement ? this.host : null;\n\t}\n\n\tprivate disconnectRenderWatcher(): void {\n\t\tif (!this.renderSignal) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.renderWatcher.unwatch(this.renderSignal);\n\t\tthis.renderSignal = undefined;\n\t}\n\n\tprivate resolveTrackedRenderOutput(): JsxRenderable {\n\t\tconst nextRenderSignal = createReactiveComputed(() => this.render());\n\t\tconst output = nextRenderSignal.get();\n\n\t\tif (!this.connected) {\n\t\t\treturn output;\n\t\t}\n\n\t\tif (this.renderSignal) {\n\t\t\tthis.renderWatcher.unwatch(this.renderSignal);\n\t\t}\n\n\t\tthis.renderSignal = nextRenderSignal;\n\t\tthis.renderWatcher.watch(nextRenderSignal);\n\t\treturn output;\n\t}\n}\n\nclass ControllerHostPropertyBridge<T> {\n\tprivate readonly ownDescriptor: PropertyDescriptor | undefined;\n\n\tconstructor(\n\t\tprivate readonly host: Element,\n\t\tprivate readonly controller: object,\n\t\tprivate readonly propertyName: string,\n\t) {\n\t\tthis.ownDescriptor = Object.getOwnPropertyDescriptor(this.host, this.propertyName);\n\t}\n\n\tpublic getInitialValue(): T | undefined {\n\t\treturn Reflect.get(this.host, this.propertyName) as T | undefined;\n\t}\n\n\tpublic install(): void {\n\t\tObject.defineProperty(this.host, this.propertyName, {\n\t\t\tget: () => Reflect.get(this.controller, this.propertyName),\n\t\t\tset: (newValue: T) => {\n\t\t\t\tReflect.set(this.controller, this.propertyName, newValue);\n\t\t\t},\n\t\t\tenumerable: this.ownDescriptor?.enumerable ?? true,\n\t\t\tconfigurable: true,\n\t\t});\n\t}\n\n\tpublic restore(): void {\n\t\tconst finalValue = Reflect.get(this.controller, this.propertyName);\n\n\t\tif (this.ownDescriptor) {\n\t\t\tObject.defineProperty(this.host, this.propertyName, this.ownDescriptor);\n\n\t\t\tif ('value' in this.ownDescriptor && this.ownDescriptor.writable) {\n\t\t\t\tReflect.set(this.host, this.propertyName, finalValue);\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tReflect.deleteProperty(this.host, this.propertyName);\n\n\t\ttry {\n\t\t\tReflect.set(this.host, this.propertyName, finalValue);\n\t\t} catch {\n\t\t\tObject.defineProperty(this.host, this.propertyName, {\n\t\t\t\tvalue: finalValue,\n\t\t\t\twritable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t});\n\t\t}\n\t}\n}\n",
|
|
21
21
|
"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",
|
|
22
22
|
"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",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"import type { ReactiveHostLike } from '../../core/reactive-host';\n\nexport function reactiveField<T extends ReactiveHostLike, V>(_: undefined, context: ClassFieldDecoratorContext<T, V>) {\n\tconst privatePropertyKey = Symbol(`__${String(context.name)}__value`);\n\n\tconst contextName = String(context.name);\n\n\tcontext.addInitializer(function (this: T) {\n\t\tthis.defineReactiveBinding(\n\t\t\tcontextName,\n\t\t\t(this as unknown as { shouldAutoBindReactiveMembers?: () => boolean }).shouldAutoBindReactiveMembers?.() ??\n\t\t\t\tfalse,\n\t\t);\n\t\tthis.registerReactiveDependencyReader(\n\t\t\tcontextName,\n\t\t\t() => (this as unknown as Record<PropertyKey, unknown>)[privatePropertyKey],\n\t\t);\n\n\t\tObject.defineProperty(this, context.name, {\n\t\t\tget() {\n\t\t\t\t(this as ReactiveHostLike).trackReactiveRead(contextName);\n\t\t\t\treturn (this as unknown as Record<PropertyKey, unknown>)[privatePropertyKey];\n\t\t\t},\n\t\t\tset(newValue: unknown) {\n\t\t\t\tconst oldValue = (this as unknown as Record<PropertyKey, unknown>)[privatePropertyKey];\n\t\t\t\tif (oldValue !== newValue) {\n\t\t\t\t\t(this as unknown as Record<PropertyKey, unknown>)[privatePropertyKey] = newValue;\n\t\t\t\t\t(this as ReactiveHostLike).notifyUpdate(contextName, oldValue, newValue);\n\t\t\t\t}\n\t\t\t},\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t});\n\t});\n\n\treturn function (this: T, value: V) {\n\t\t(this as any)[privatePropertyKey] = value;\n\t\treturn value;\n\t};\n}\n",
|
|
72
72
|
"import type { ReactiveHostLike } from '../core/reactive-host';\nimport { reactiveField as legacyReactiveField } from './legacy/reactive-field';\nimport { reactiveField as standardReactiveField } from './standard/reactive-field';\nimport { fieldDecoratorBridge } from './bridge';\n\n/**\n * Declares internal mutable component state.\n *\n * Each write triggers `notifyUpdate` so update callbacks, bindings, and\n * `RadiantElement` renders stay in sync. When no explicit binding option\n * is supplied, `RadiantElement` hosts expose a JSX companion binding\n * accessor automatically while plain imperative hosts keep binding\n * opt-in.\n */\nexport function state<THost extends ReactiveHostLike, TValue>(\n\tprotoOrTarget: undefined,\n\tnameOrContext: ClassFieldDecoratorContext<THost, TValue>,\n): (this: THost, value: TValue) => TValue;\nexport function state(protoOrTarget: ReactiveHostLike, nameOrContext: string): void;\nexport function state(\n\tprotoOrTarget: ReactiveHostLike | undefined,\n\tnameOrContext: string | ClassFieldDecoratorContext<ReactiveHostLike, unknown>,\n): ((this: ReactiveHostLike, value: unknown) => unknown) | void {\n\treturn fieldDecoratorBridge(standardReactiveField, legacyReactiveField, protoOrTarget, nameOrContext);\n}\n"
|
|
73
73
|
],
|
|
74
|
-
"mappings": "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",
|
|
75
|
-
"debugId": "
|
|
74
|
+
"mappings": "4PAEA,IAAM,GAA+B,OAAO,IAAI,gDAAgD,EAC1F,GAAwC,OAAO,IAAI,yDAAyD,EAC5G,GAAiD,OAAO,IAC7D,kEACD,EAQO,SAAS,CAAmD,CAClE,EACA,EACO,CACP,GAAoB,EAAO,GAA8B,CAAW,EAU9D,SAAS,EAA2D,CAC1E,EACA,EACO,CACP,GAAoB,EAAO,GAAuC,CAAW,EASvE,SAAS,CAA+C,CAAC,EAAmB,CAClF,EAAsB,EAAU,EAA4B,EAUtD,SAAS,CAAuD,CAAC,EAAmB,CAC1F,IAAM,EAAS,EAEf,EACC,EACA,GACC,EAAO,MAAoD,IAAI,GACjE,EAGD,SAAS,EAAqC,CAAC,EAAU,EAAa,EAAiD,CACtH,IAAM,EAAS,EACT,EAAkB,OAAO,UAAU,eAAe,KAAK,EAAQ,CAAG,EAAI,EAAO,GAAO,OAE1F,GAAI,MAAM,QAAQ,CAAe,EAAG,CACnC,EAAgB,KAAK,CAAW,EAChC,OAGD,OAAO,eAAe,EAAQ,EAAK,CAClC,MAAO,CAAC,CAAW,CACpB,CAAC,EAGF,SAAS,CAAuC,CAC/C,EACA,EACA,EACA,EAA2B,OAAO,eAAe,CAAQ,EAClD,CACP,GAAI,CAAC,GAAa,IAAc,OAAO,UACtC,OAGD,EAAsB,EAAU,EAAK,EAAsB,OAAO,eAAe,CAAS,CAAC,EAE3F,IAAM,EAAgB,EAA2C,GAEjE,GAAI,CAAC,MAAM,QAAQ,CAAY,EAC9B,OAGD,QAAW,KAAe,EAAc,CACvC,GAAI,GAAsB,IAAI,CAAW,EACxC,SAGD,EAAY,CAAQ,EACpB,GAAsB,IAAI,CAAW,GCxFhC,SAAS,EAA0B,CAAC,EAAkC,CAC5E,OAAQ,QACF,MACJ,MAAO,aACH,QACJ,MAAO,eACH,OACJ,MAAO,cACH,OACJ,MAAO,cACH,OACJ,MAAO,UAUH,SAAS,EAAyB,CAAC,EAAqC,CAC9E,OAAQ,OAAO,OACT,UACJ,MAAO,cACH,SACJ,MAAO,aACH,SACJ,MAAO,SAGT,GAAI,MAAM,QAAQ,CAAY,EAAG,MAAO,QACxC,GAAI,OAAO,UAAU,SAAS,KAAK,CAAY,IAAM,kBAAmB,MAAO,SASzE,SAAS,CAAmB,CAAC,EAAsC,CACzE,OAAQ,QACF,OACJ,MAAO,QACH,OACJ,MAAO,QACH,QACJ,MAAO,WAEP,OAAO,MASV,SAAS,EAAY,CAAC,EAAkB,CACvC,GAAI,CACH,OAAO,KAAK,MAAM,CAAK,EACtB,KAAM,CACP,MAAU,UAAU,qBAAqB,GAQ3C,IAAM,GAAsC,CAC3C,KAAK,CAAC,EAA0B,CAC/B,IAAM,EAAQ,GAAqB,CAAK,EACxC,GAAI,CAAC,MAAM,QAAQ,CAAK,EACvB,MAAU,UAAU,8CAA8C,OAAO,IAAQ,EAElF,OAAO,GAGR,OAAO,CAAC,EAAwB,CAC/B,MAAO,EAAE,IAAU,KAAO,OAAO,CAAK,EAAE,YAAY,IAAM,UAG3D,MAAM,CAAC,EAAuB,CAE7B,OADe,OAAO,EAAM,QAAQ,KAAM,EAAE,CAAC,GAI9C,MAAM,CAAC,EAAuB,CAC7B,IAAM,EAAS,KAAK,MAAM,CAAK,EAC/B,GAAI,IAAW,MAAQ,OAAO,IAAW,UAAY,MAAM,QAAQ,CAAM,EACxE,MAAU,UACT,0DAA0D,eAAmB,GAC5E,CACD,IACD,EAED,OAAO,GAGR,MAAM,CAAC,EAAuB,CAC7B,OAAO,EAET,EAQM,GAAsC,CAC3C,QAAS,GACT,MAAO,GACP,OAAQ,EACT,EAEA,SAAS,EAAS,CAAC,EAAgB,CAClC,OAAO,KAAK,UAAU,CAAK,EAG5B,SAAS,EAAW,CAAC,EAAgB,CACpC,MAAO,GAAG,IAUJ,SAAS,CAAkB,CAAC,EAAe,EAA6B,CAC9E,IAAM,EAAa,GAA2B,CAAI,EAClD,GAAI,CAAC,EAAY,MAAU,UAAU,mCAAmC,IAAO,EAC/E,OAAO,GAAQ,GAAa,CAAK,EAa3B,SAAS,CAAmB,CAAC,EAAgB,EAA6B,CAChF,IAAM,EAAa,GAA2B,CAAI,EAClD,GAAI,CAAC,EAAY,MAAU,UAAU,mCAAmC,IAAO,EAE/E,OADuB,GAAQ,IAAe,GAAQ,SAAW,IACnD,CAAK,EAQpB,SAAS,EAAS,CAAC,EAAkC,CACpD,OAAO,OAAO,IAAU,UAGzB,SAAS,EAAQ,CAAC,EAAiC,CAClD,OAAO,OAAO,IAAU,SAGzB,SAAS,EAAQ,CAAC,EAAiC,CAClD,OAAO,OAAO,IAAU,SAGzB,SAAS,EAAO,CAAC,EAAyC,CACzD,OAAO,MAAM,QAAQ,CAAK,EAG3B,SAAS,EAAQ,CAAC,EAAiC,CAClD,OAAO,OAAO,IAAU,UAAY,CAAC,MAAM,QAAQ,CAAK,GAAK,IAAU,KAMjE,SAAS,EAAa,CAAC,EAA6B,EAAgC,CAC1F,OAAQ,QACF,QACJ,OAAO,GAAU,CAAY,OACzB,OACJ,OAAO,GAAS,CAAY,OACxB,OACJ,OAAO,GAAS,CAAY,OACxB,MACJ,OAAO,GAAQ,CAAY,OACvB,OACJ,OAAO,GAAS,CAAY,UAE5B,MAAO,IAIH,IAAM,GAAkB,CAC9B,EACA,EACA,EACA,IACI,CACJ,GAAI,IAAS,QAAS,CACrB,IAAM,EAAiB,EAAO,aAAa,CAAY,EACvD,GAAI,IAAmB,KACtB,OAAO,EAGR,OAAO,IAAmB,GAAK,GAAO,EAAmB,EAAgB,CAAI,EAG9E,IAAM,EAAiB,EAAO,aAAa,CAAY,EACvD,OAAO,IAAmB,KACvB,EAAmB,EAAgB,CAAI,EACtC,GAAiB,EAAoB,CAAI,GC5KvC,SAAS,CAA+B,CAAC,EAA6B,EAA6B,CACzG,GAAI,IAAiB,QAAa,CAAC,GAAc,EAAM,CAAY,EAClE,MAAU,MAAM,qDAAqD,EAAK,MAAM,EAI3E,SAAS,EAAgC,CAC/C,EACA,EACA,EACA,EACsB,CACtB,MAAO,CACN,OACA,KAAM,EACN,MAAO,EACP,eACA,UAAW,EACX,UAAW,CACV,cAAe,CAAC,IAAU,EAAmB,EAAO,CAAI,EACxD,YAAa,CAAC,IAAU,EAAoB,EAAO,CAAI,CACxD,CACD,ECjFD,mBACC,aACA,sBACA,2BAKD,SAAS,EAAuB,CAAC,EAAqD,CACrF,OAAO,EAGR,SAAS,EAAiB,CAAC,EAA6D,CACvF,OAAO,EAWD,IAAM,GAA0C,CACtD,eAAe,CAAC,EAAM,CACrB,GAAgB,GAAwB,CAAI,CAAC,GAE9C,cAAiB,CAAC,EAAoC,CACrD,OAAO,IAAI,GAAgB,CAAI,GAEhC,aAAa,CAAC,EAAqC,CAClD,IAAM,EAAU,IAAI,GAAO,QAAQ,CAAM,EAEzC,MAAO,CACN,KAAK,CAAC,EAAQ,CACb,EAAQ,MAAM,GAAkB,CAAM,CAAC,GAExC,OAAO,CAAC,EAAQ,CACf,EAAQ,QAAQ,GAAkB,CAAM,CAAC,EAE3C,EAEF,ECxCA,IAAI,GAAyC,GAUtC,SAAS,CAAkB,EAAoB,CACrD,OAAO,GAUD,SAAS,EAAkB,CAAC,EAAgC,CAClE,GAAwB,ECdlB,SAAS,CAAuB,CAAC,EAAoE,CAC3G,EAAmB,EAAE,gBAAgB,CAAI,EAInC,SAAS,CAAyB,CAAC,EAAoE,CAC7G,OAAO,EAAmB,EAAE,eAAe,CAAI,EAIzC,SAAS,CAAqB,CAAC,EAAqE,CAC1G,OAAO,EAAmB,EAAE,cAAc,CAAM,EClB1C,SAAS,EAAgB,CAAC,EAAuB,CACvD,OAAO,EACL,QAAQ,KAAM,SAAS,EACvB,QAAQ,KAAM,SAAS,EACvB,QAAQ,KAAM,SAAS,EACvB,QAAQ,UAAW,SAAS,EAC5B,QAAQ,UAAW,SAAS,ECPxB,IAAM,EAAsB,iBAEtB,GAA2B,sBAE3B,EAA0B,qBAUhC,SAAS,EAAwB,CAAC,EAI9B,CACV,IAAM,EAAe,EAAQ,aAC1B,IAAI,MAA4B,GAAoB,EAAQ,YAAY,KACxE,GAEH,MAAO,mCAAmC,KAAuB,OAA6B,EAAQ,QAAQ,KAAgB,EAAQ,2BAIhI,SAAS,EAAmB,CAAC,EAAuB,CAC1D,OAAO,GAAiB,CAAK,EAIvB,SAAS,EAAwB,CAAC,EAAkB,EAAgB,CAC1E,IAAM,EAAc,EAAQ,YAE5B,GAAI,CAAC,EACJ,OAAO,EAGR,GAAI,CACH,OAAO,KAAK,MAAM,CAAW,EAC5B,KAAM,CACP,GAAI,OAAO,QAAY,IACtB,QAAQ,KACP,sEAAsE,MACtE,EAAY,MAAM,EAAG,GAAG,CACzB,EAED,OAAO,GAUF,SAAS,EAAmB,CAClC,EACA,EACA,EACiB,CACjB,IAAM,EAAW,EAAK,SAEtB,GAAI,CAAC,GAAY,EAAS,SAAW,EAAG,CACvC,IAAM,EAAc,EAAkE,WAEtF,GAAI,CAAC,GAAc,EAAW,SAAW,EACxC,OAAO,KAGR,QAAS,EAAI,EAAG,EAAI,EAAW,OAAQ,GAAK,EAAG,CAC9C,IAAM,EAAO,EAAW,GAExB,GAAI,EAAK,WAAa,EACrB,SAGD,IAAM,EAAU,EAEhB,GAAI,GAAuB,EAAS,EAAM,CAAY,EACrD,OAAO,EAIT,OAAO,KAGR,QAAS,EAAI,EAAG,EAAI,EAAS,OAAQ,GAAK,EACzC,GAAI,GAAuB,EAAS,GAAK,EAAM,CAAY,EAC1D,OAAO,EAAS,GAIlB,OAAO,KAGR,SAAS,EAAsB,CAAC,EAAkB,EAA4B,EAAgC,CAC7G,GACC,EAAQ,UAAY,UACpB,CAAC,EAAQ,aAAa,CAAmB,GACzC,EAAQ,aAAa,EAAwB,IAAM,EAEnD,MAAO,GAGR,GAAI,IAAiB,OACpB,OAAO,EAAQ,aAAa,CAAuB,IAAM,EAG1D,MAAO,CAAC,EAAQ,aAAa,CAAuB,EAGrD,SAAS,EAAmB,CAAC,EAAuB,CACnD,OAAO,EAAM,QAAQ,KAAM,OAAO,EAAE,QAAQ,KAAM,QAAQ,EAAE,QAAQ,KAAM,MAAM,EAAE,QAAQ,KAAM,MAAM,ECtHvG,+BACC,sBACA,qBACA,uBASM,IAAM,EAAoB,GACpB,EAAmC,+BAOzC,SAAS,EAA+B,CAAC,EAAiD,CAChG,IAAM,EAAmB,IAAI,IAE7B,QAAW,KAAQ,MAAM,KAAK,EAAK,UAAU,EAAG,CAC/C,GAAI,GAAuB,CAAI,EAC9B,SAGD,GAA0B,EAAkB,GAAgB,CAAI,EAAG,CAAI,EAGxE,OAAO,EAGD,SAAS,EAAmC,CAAC,EAA+C,CAClG,IAAI,EAEJ,GAAI,CACH,EAAgB,KAAK,MAAM,CAAO,EACjC,KAAM,CACP,GAAI,OAAO,QAAY,IACtB,QAAQ,KAAK,+DAAgE,EAAQ,MAAM,EAAG,GAAG,CAAC,EAEnG,OAAO,IAAI,IAGZ,IAAM,EAAmB,IAAI,IAE7B,QAAY,EAAU,KAAc,OAAO,QAAQ,CAAa,EAAG,CAClE,GAAI,CAAC,MAAM,QAAQ,CAAS,GAAK,EAAU,SAAW,EACrD,SAGD,EAAiB,IAChB,EAAkB,CAAQ,EAC1B,EAAU,IAAI,CAAC,IAAa,GAAqB,CAAQ,CAAC,CAC3D,EAGD,OAAO,EAGD,SAAS,EAAoC,CAAC,EAAuC,CAC3F,IAAM,EAAY,MAAM,KAAK,EAAK,UAAU,EAC1C,OAAO,CAAC,IAAoC,GAAsB,CAAI,CAAC,EACvE,IAAI,CAAC,IAAS,EAAyB,CAAI,GAAK,EAAE,EAClD,OAAO,CAAC,IAAa,IAAa,EAAE,EAEtC,OAAO,EAAU,OAAS,EAAI,EAAU,KAAK,EAAE,EAAI,OAG7C,SAAS,EAAiC,CAChD,EACqB,CACrB,IAAM,EAAoC,CAAC,EAE3C,QAAY,EAAU,KAAgB,EAAiB,QAAQ,EAAG,CACjE,IAAM,EAAY,EAChB,IAAI,CAAC,IAAe,EAAyB,CAAU,CAAC,EACxD,OAAO,CAAC,IAAiC,IAAa,QAAa,IAAa,EAAE,EAEpF,GAAI,EAAU,OAAS,EACtB,EAAQ,GAAY,EAItB,OAAO,OAAO,KAAK,CAAO,EAAE,OAAS,EAAI,KAAK,UAAU,CAAO,EAAI,OAG7D,SAAS,EAAqB,CACpC,EACA,EACyB,CACzB,IAAI,EAAgB,GAEd,EAAe,CAAC,IAA+C,CACpE,GAAI,GAAe,CAAY,EAE9B,OADA,EAAgB,GACT,GAAiB,EAAc,EAAkB,CAAY,EAGrE,GAAI,GAAgB,CAAY,EAC/B,OAAO,GAAmB,EAAc,EAAa,EAAa,KAAK,CAAC,EAGzE,GAAI,GAAqB,CAAY,EACpC,MAAO,CACN,SAAU,EACV,cAAe,EAAa,cAC5B,kBAAmB,EAAa,kBAChC,QAAS,EAAa,QACtB,OAAQ,EAAa,OAAO,IAAI,CAAC,IAAU,EAAa,CAAsB,CAAC,CAChF,EAGD,GAAI,GAAqB,CAAY,EACpC,OAAO,MAAM,KAAK,EAAc,CAAC,IAAU,EAAa,CAAsB,CAAC,EAGhF,OAAO,GAGF,EAAgB,EAAa,CAAK,EAExC,MAAO,CACN,gBACA,MAAO,CACR,EAGM,SAAS,EAA+B,CAAC,EAAuC,CACtF,QAAW,KAAQ,MAAM,KAAK,EAAK,UAAU,EAAG,CAC/C,GAAI,CAAC,GAA2B,CAAI,EACnC,SAGD,IAAM,EAAU,EAAK,aAAe,OAEpC,OADA,EAAK,YAAY,YAAY,CAAI,EAC1B,EAGR,OAGD,SAAS,EAAyB,CACjC,EACA,EACA,EACO,CACP,IAAM,EAAsB,EAAiB,IAAI,CAAQ,EAEzD,GAAI,EAAqB,CACxB,EAAoB,KAAK,CAAU,EACnC,OAGD,EAAiB,IAAI,EAAU,CAAC,CAAU,CAAC,EAG5C,SAAS,EAAkB,CAAC,EAAsB,EAAyC,CAC1F,MAAO,IACH,EACH,MAAO,CACR,EAGD,SAAS,EAAe,CAAC,EAAoB,CAC5C,GAAI,aAAgB,QACnB,OAAO,EAAkB,EAAK,aAAa,MAAM,CAAC,EAGnD,OAAO,EAGR,SAAS,EAAoB,CAAC,EAAwD,CACrF,OAAO,OAAO,IAAU,UAAY,OAAO,IAAU,UAAY,IAAU,MAAQ,OAAO,YAAY,EAGvG,SAAS,EAA0B,CAAC,EAAuC,CAC1E,OAAO,aAAgB,mBAAqB,EAAK,aAAa,CAAgC,EAG/F,SAAS,EAAqB,CAAC,EAAuC,CACrE,OAAO,aAAgB,mBAAqB,EAAK,aAAa,CAAmB,EAGlF,SAAS,EAAsB,CAAC,EAAqB,CACpD,OAAO,GAA2B,CAAI,GAAK,GAAsB,CAAI,EAGtE,SAAS,EAAoB,CAAC,EAAmD,CAChF,OACC,OAAO,IAAU,UACjB,IAAU,MACT,EAAsC,WAAgB,GACvD,MAAM,QAAS,EAAsC,OAAO,GAC5D,MAAM,QAAS,EAAsC,MAAM,EAI7D,SAAS,CAAiB,CAAC,EAAyC,CACnE,OAAO,GAAQ,EAGhB,SAAS,CAAwB,CAAC,EAA+C,CAChF,GAAI,IAAe,QAAa,IAAe,MAAQ,IAAe,IAAS,IAAe,GAC7F,OAGD,GAAI,OAAO,KAAS,KAAe,aAAsB,KAAM,CAC9D,GAAI,EAAW,WAAa,KAAK,UAChC,OAAO,EAAW,aAAe,GAGlC,OAAQ,EAAuB,WAAa,EAAW,aAAe,OAGvE,GAAI,GAAgB,CAAU,EAC7B,OAAO,EAAyB,EAAW,KAAK,EAGjD,GAAI,OAAO,IAAe,UAAY,OAAO,IAAe,UAAY,OAAO,IAAe,SAC7F,OAAO,OAAO,CAAU,EAGzB,GAAI,OAAO,IAAe,UAAY,IAAe,MAAQ,cAAe,EAC3E,OAAO,OAAO,EAAW,YAAc,SAAW,EAAW,UAAa,EAAW,aAAe,OAGrG,GAAI,GAAqB,CAAU,EAClC,OAAO,MAAM,KAAK,EAAY,CAAC,IAAU,EAAyB,CAAsB,GAAK,EAAE,EAAE,KAAK,EAAE,EAGzG,OAGD,SAAS,EAAgB,CACxB,EACA,EACA,EACgB,CAChB,IAAM,EAAkB,EAAiB,IAAI,EAAkB,EAAM,IAAI,CAAC,EAE1E,GAAI,GAAmB,EAAgB,OAAS,EAC/C,OAAO,EAAgB,SAAW,EAAI,EAAgB,GAAM,EAG7D,GAAI,EAAM,WAAa,OACtB,MAAO,GAGR,OAAO,EAAa,EAAM,QAAQ,EC3PnC,kBAAS,aAAuB,uBAyBzB,MAAM,EAAc,CAC1B,GACA,GAAwB,IAAI,IAC5B,GACS,GACT,GACA,GAAyB,EAEzB,WAAW,CAAC,EAAyB,CACpC,KAAK,GAAQ,EACb,KAAK,GAAiB,EAAsB,IAAM,CACjD,KAAK,GAAM,cAAc,EACzB,KAGE,sBAAqB,EAAW,CACnC,OAAO,KAAK,GAGb,eAA4C,CAAC,EAAoB,CAGhE,OAFA,KAAK,0BAA0B,GAEvB,KAAK,GAAsB,IAAI,GAAQ,CAAiB,GAAK,CAAC,GAAG,OACxE,CAAC,IAAgC,OAAO,KAAS,KAAe,aAAsB,OACvF,EAGD,0BAA0B,EAAuB,CAChD,KAAK,0BAA0B,EAC/B,IAAM,EAAU,GAAkC,KAAK,EAAqB,EAE5E,GAAI,CAAC,EACJ,OAGD,MAAO,mCAAmC,KAAoC,GAAiB,CAAO,aAGvG,gCAAgC,EAAuB,CACtD,OAAO,GAAqC,KAAK,EAAK,GAAK,OAG5D,OAAO,CAAC,EAAiC,CACxC,KAAK,iCAAiC,EAEtC,GAAI,CACH,GAAW,KAAK,2BAA2B,EAAE,MAAO,CAAY,SAC/D,CACD,KAAK,sBAAsB,GAI7B,MAAM,CAAC,EAAiC,CACvC,KAAK,iCAAiC,EAEtC,GAAI,CACH,GAAU,KAAK,2BAA2B,EAAE,MAAO,CAAY,SAC9D,CACD,KAAK,sBAAsB,GAI7B,qBAAqB,EAAS,CAC7B,GAAI,OAAO,iBAAqB,KAAe,KAAK,IAA2B,CAAC,KAAK,GAAM,YAC1F,OAGD,KAAK,GAA0B,IAAI,iBAAiB,CAAC,IAAY,KAAK,8BAA8B,CAAO,CAAC,EAC5G,KAAK,GAAwB,QAAQ,KAAK,GAAO,CAAE,UAAW,EAAK,CAAC,EAGrE,gCAAgC,EAAS,CACxC,KAAK,IAAyB,WAAW,EACzC,KAAK,GAA0B,OAGhC,uBAAuB,EAAS,CAC/B,GAAI,CAAC,KAAK,GACT,OAGD,KAAK,GAAe,QAAQ,KAAK,EAAa,EAC9C,KAAK,GAAgB,OAGtB,0BAA0B,EAAqD,CAC9E,IAAM,EAAmB,EAAuB,IAAM,KAAK,oBAAoB,CAAC,EAC1E,EAAS,EAAiB,IAAI,EAEpC,GAAI,CAAC,KAAK,GAAM,YACf,OAAO,EAGR,GAAI,KAAK,GACR,KAAK,GAAe,QAAQ,KAAK,EAAa,EAK/C,OAFA,KAAK,GAAgB,EACrB,KAAK,GAAe,MAAM,CAAgB,EACnC,EAGR,OAAO,EAAS,CACf,KAAK,iCAAiC,EACtC,KAAK,wBAAwB,EAGtB,yBAAyB,EAAS,CACzC,GAAI,KAAK,GAAsB,KAAO,EACrC,OAGD,IAAM,EAAgB,KAAK,GAAM,YAAc,GAAgC,KAAK,EAAK,EAAI,OAE7F,GAAI,OAAO,IAAkB,UAAY,IAAkB,GAAI,CAC9D,KAAK,GAAwB,GAAoC,CAAa,EAC9E,KAAK,IAA0B,EAC/B,OAGD,GAAI,KAAK,GAAM,WAAW,OAAS,EAClC,KAAK,GAAwB,GAAgC,KAAK,EAAK,EACvE,KAAK,IAA0B,EAIzB,6BAA6B,CAAC,EAAiC,CACtE,IAAI,EAAuB,GAE3B,QAAW,KAAU,EAAS,CAC7B,QAAW,KAAe,MAAM,KAAK,EAAO,YAAY,EACvD,GAAI,KAAK,wBAAwB,CAAW,EAC3C,EAAuB,GAIzB,QAAW,KAAa,MAAM,KAAK,EAAO,UAAU,EAAG,CACtD,GAAI,EAAU,aAAe,KAAK,GACjC,SAGD,GAAI,KAAK,qBAAqB,CAAS,EACtC,EAAuB,IAK1B,GAAI,EACH,KAAK,IAA0B,EAC/B,KAAK,GAAM,cAAc,EAInB,oBAAoB,CAAC,EAAqB,CACjD,GACC,aAAgB,oBACf,EAAK,aAAa,CAAgC,GAAK,EAAK,aAAa,CAAmB,GAE7F,MAAO,GAGR,IAAM,EAAW,aAAgB,QAAW,EAAK,aAAa,MAAM,GAAK,EAAqB,EACxF,EAAS,KAAK,GAAsB,IAAI,CAAQ,EAEtD,GAAI,EAAQ,CACX,GAAI,EAAO,SAAS,CAAI,EACvB,MAAO,GAIR,OADA,EAAO,KAAK,CAAI,EACT,GAIR,OADA,KAAK,GAAsB,IAAI,EAAU,CAAC,CAAI,CAAC,EACxC,GAGA,uBAAuB,CAAC,EAAqB,CACpD,QAAY,EAAU,KAAW,KAAK,GAAsB,QAAQ,EAAG,CACtE,IAAM,EAAY,EAAO,QAAQ,CAAI,EAErC,GAAI,IAAc,GACjB,SAKD,GAFA,EAAO,OAAO,EAAW,CAAC,EAEtB,EAAO,SAAW,EACrB,KAAK,GAAsB,OAAO,CAAQ,EAG3C,MAAO,GAGR,MAAO,GAGA,mBAAmB,EAAqD,CAE/E,OADA,KAAK,0BAA0B,EACxB,GAAsB,KAAK,GAAM,OAAO,EAAG,KAAK,EAAqB,EAE9E,CAEA,SAAS,EAAgB,CAAC,EAAuB,CAChD,OAAO,EAAM,QAAQ,KAAM,SAAS,ECrOrC,qCAAS,uBA+DT,MAAM,EAAyD,CAKjC,KAJZ,YAAc,IAAI,IAClB,iBAAmB,IAAI,IAChC,QAAU,EAElB,WAAW,CAAkB,EAAgC,CAAhC,YAEtB,GAAG,EAAY,CAErB,OADA,EAAwB,IAAI,EACrB,KAAK,KAAK,EAGX,SAAS,CAAC,EAAiD,CAGjE,OAFA,KAAK,YAAY,IAAI,CAAM,EAEpB,IAAM,CACZ,KAAK,YAAY,OAAO,CAAM,GAIzB,UAAU,CAAC,EAAgC,CAGjD,OAFA,KAAK,iBAAiB,IAAI,CAAM,EAEzB,IAAM,CACZ,KAAK,iBAAiB,OAAO,CAAM,GAI9B,UAAU,EAAW,CAC3B,OAAO,KAAK,QAGN,MAAM,CAAC,EAA0B,CACvC,KAAK,SAAW,EAChB,IAAI,EAEJ,GAAI,CACH,KAAK,eAAe,EACnB,MAAO,EAAO,CACf,EAAe,EAKhB,GAFA,KAAK,QAAQ,CAAS,EAElB,EACH,MAAM,EAIA,OAAO,CAAC,EAA0B,CACzC,QAAW,KAAc,KAAK,YAC7B,EAAW,CAAS,EAId,cAAc,EAAS,CAC9B,IAAM,EAAoB,CAAC,EAE3B,QAAW,KAAY,KAAK,iBAC3B,GAAI,CACH,EAAS,EACR,MAAO,EAAO,CACf,EAAO,KAAK,CAAK,EAInB,GAAI,EAAO,SAAW,EACrB,MAAM,EAAO,GAGd,GAAI,EAAO,OAAS,EACnB,MAAU,eAAe,EAAQ,oDAAoD,EAGxF,CAEA,SAAS,EAAwB,CAAC,EAA6C,CAC9E,OAAO,OAAO,IAAU,UAAY,IAAU,MAAQ,OAAQ,EAA4B,MAAQ,WAgB5F,MAAM,CAAgE,CAa1D,KACA,OACA,eAdF,SACA,EAER,eAAiB,IAAI,IACrB,qBAAuB,IAAI,IAC3B,0BAA4B,IAAI,IAChC,iBAAmB,IAAI,IACvB,gBAAkB,IAAI,IACtB,qBAAuC,CAAC,EACxC,uBAAyC,CAAC,EAElD,WAAW,CACO,EACA,EACA,EAChB,CAHgB,YACA,cACA,sBAEjB,IAAM,EAAmB,KAAK,+BAA+B,EAC7D,KAAK,SAAW,EAChB,KAAK,EAAI,EAMH,WAAW,EAAS,CAC1B,QAAW,KAAY,KAAK,qBAC3B,EAAS,EAOJ,cAAc,EAAS,CAC7B,QAAW,KAAW,KAAK,uBAC1B,EAAQ,EAQH,YAAY,CAAC,EAAyB,EAAmB,EAAsB,CACrF,GAAI,IAAa,EAChB,OAGD,KAAK,qBAAqB,IAAI,CAAe,GAAG,OAAO,CAAK,EAC5D,IAAM,EAAU,KAAK,gBAAgB,IAAI,CAAe,EAExD,GAAI,EACH,QAAW,KAAU,EACpB,EAAO,EAQH,uBAAuB,CAAC,EAA4B,CAC1D,KAAK,uBAAuB,KAAK,CAAQ,EAMnC,yBAAyB,CAAC,EAA4B,CAC5D,KAAK,qBAAqB,KAAK,CAAQ,EASjC,wBAAwB,CAAC,EAAe,EAAiD,EAMzF,gCAAgC,CAAC,EAAkB,EAAsC,CAC/F,KAAK,0BAA0B,IAAI,EAAU,CAAI,EAQ3C,sBAAsB,CAAC,EAAkB,EAA6C,CAC5F,GAAI,CAAC,KAAK,gBAAgB,IAAI,CAAQ,EACrC,KAAK,gBAAgB,IAAI,EAAU,IAAI,GAAK,EAG7C,IAAM,EAAY,KAAK,gBAAgB,IAAI,CAAQ,EAGnD,OAFA,EAAU,IAAI,CAAM,EAEb,IAAM,CAGZ,GAFA,EAAU,OAAO,CAAM,EAEnB,EAAU,OAAS,EACtB,KAAK,gBAAgB,OAAO,CAAQ,GAQhC,kBAAgE,CACtE,EACiE,CACjE,IAAM,EAAgB,KAAK,iBAAiB,IAAI,CAAQ,EAExD,GAAI,EACH,OAAO,EAGR,IAAM,EAAU,GAAqE,CACpF,SAAU,IAAM,KAAK,yBAAyB,CAAQ,EACtD,UAAW,CAAC,IACX,KAAK,uBAAuB,EAAU,IAAM,CAC3C,EAAO,KAAK,yBAAyB,CAAQ,CAA6C,EAC1F,CACH,CAAC,EAGD,OADA,KAAK,iBAAiB,IAAI,EAAU,CAAO,EACpC,EAOD,qBAAqB,CAAC,EAAkB,EAA8B,GAAY,CACxF,IAAM,EAAsB,OAAO,IAAS,SAAW,EAAO,EAAO,IAAI,IAAa,OAChF,EAAgB,KAAK,OAAO,mBAAmB,KAAK,IAAI,GAAK,KAAK,KAExE,GAAI,CAAC,GAAuB,KAAK,OAAO,YAAY,KAAK,KAAM,CAAmB,EACjF,OAGD,KAAK,OAAO,eAAe,EAAe,EAAqB,CAC9D,IAAK,IAAM,KAAK,mBAAmB,CAAuC,EAC1E,WAAY,GACZ,aAAc,EACf,CAAC,EAMK,iBAAiB,CAAC,EAAwB,CAChD,EAAwB,KAAK,sBAAsB,CAAQ,CAAC,EAOtD,sBAAyB,CAAC,EAAsB,EAA2C,CACjG,IAAM,EAAO,EAAQ,MAAQ,KAAK,eAAe,EAwBjD,GAtBA,KAAK,sBAAsB,EAAc,CAAI,EAC7C,KAAK,iCAAiC,EAAc,EAAQ,QAAQ,EAEpE,KAAK,OAAO,eAAe,KAAK,KAAM,EAAc,CACnD,IAAK,IAAM,CAEV,OADA,KAAK,kBAAkB,CAAY,EAC5B,EAAQ,SAAS,GAEzB,IAAK,CAAC,IAAgB,CACrB,IAAM,EAAW,EAAQ,SAAS,EAElC,GAAI,IAAa,EAChB,OAGD,EAAQ,SAAS,CAAQ,EACzB,KAAK,aAAa,EAAc,EAAU,CAAQ,GAEnD,WAAY,GACZ,aAAc,EACf,CAAC,EAEG,EAAQ,qBAAuB,OAClC,KAAK,aAAa,EAAc,OAAW,EAAQ,kBAAkB,EAQhE,mBAAsB,CAAC,EAAsB,EAAiB,EAAgC,CAAC,EAAS,CAC9G,IAAM,EAAkC,CACvC,KAAM,EACN,MAAO,EACP,cACD,EAEA,KAAK,eAAe,IAAI,EAAc,CAAa,EAEnD,KAAK,uBAAuB,EAAc,CACzC,KAAM,EAAQ,KACd,SAAU,IAAM,KAAK,eAAe,IAAI,CAAY,GAAG,MACvD,SAAU,CAAC,IAAgB,CAC1B,KAAK,eAAe,IAAI,EAAc,IAAK,EAAe,MAAO,CAAS,CAAC,GAE5E,mBAAoB,CACrB,CAAC,EAGM,8BAA8B,EAA+B,CACpE,OAAO,IAAI,MAAM,OAAO,OAAO,IAAI,EAAiC,CACnE,IAAK,CAAC,EAAS,IAAa,CAC3B,GAAI,OAAO,IAAa,SACvB,OAGD,OAAO,KAAK,mBAAmB,CAAuC,EAExE,CAAC,EAGM,qBAAqB,CAAC,EAA0C,CACvE,IAAM,EAAmB,KAAK,qBAAqB,IAAI,CAAQ,EAE/D,GAAI,EACH,OAAO,EAGR,IAAM,EAAa,IAAI,GAAuB,IAAM,KAAK,4BAA4B,CAAQ,CAAC,EAE9F,OADA,KAAK,qBAAqB,IAAI,EAAU,CAAU,EAC3C,EAGA,2BAA2B,CAAC,EAA2B,CAC9D,IAAM,EAAS,KAAK,0BAA0B,IAAI,CAAQ,EAE1D,GAAI,EACH,OAAO,EAAO,EAGf,OAAO,KAAK,yBAAyB,CAAuC,EAGrE,wBAAsE,CAAC,EAA6B,CAC3G,IAAM,EAAQ,KAAK,OAAO,aAAa,KAAK,KAAM,CAAQ,EAE1D,GAAI,GAAyB,CAAK,EACjC,OAAO,EAAM,IAAI,EAGlB,OAAO,EAET,CC/ZA,IAAM,GAA4B,OAAO,IAAI,6CAA6C,EAC7E,GAA0B,OAAO,IAAI,2CAA2C,EAStF,SAAS,EAA8B,CAAC,EAAc,EAAwC,CAEpG,IAAM,EADS,EACkB,IAEjC,GAAI,MAAM,QAAQ,CAAiB,EAAG,CACrC,EAAkB,KAAK,CAAQ,EAC/B,OAGD,OAAO,eAAe,EAAM,GAA2B,CACtD,MAAO,CAAC,CAAQ,EAChB,aAAc,EACf,CAAC,EASK,SAAS,EAA0B,CAAC,EAAoB,CAC9D,IAAM,EAAS,EACT,EAAY,EAAO,IAEzB,GAAI,CAAC,MAAM,QAAQ,CAAS,EAC3B,OAGD,EAAO,IAA2B,GAElC,GAAI,CACH,QAAW,KAAY,EACtB,EAAS,SAET,CACD,OAAO,EAAO,KChDhB,IAAM,GAAoC,OAAO,IAAI,sCAAsC,EAWpF,SAAS,EAA2B,EAAS,CAClD,WAAmC,IAAqC,GASnE,SAAS,EAA6B,EAAS,CACrD,OAAQ,WAAmC,IAOrC,SAAS,EAA0B,EAAY,CACrD,OAAQ,WAAmC,MAAuC,GC7BnF,iCAAS,8BAAoD,8BAoC7D,IAAM,GAAqC,OAAO,IAAI,uCAAuC,EAOtF,SAAS,EAA2B,EAAyC,CACnF,OAAO,GAAiD,EAAkC,EASpF,SAAS,EAA+B,CAAC,EAAmC,EAAoB,CACtG,OAAO,GAAwB,GAAoC,EAAS,CAAM,ECtDnF,8BAAS,UAAqB,uBAqC9B,IAAM,GAAqB,GAA0B,EAarD,SAAS,EAAyB,EAAuB,CACxD,GAAI,OAAO,YAAgB,IAC1B,OAAO,YAGR,MAAU,MACT,4GACD,EA6KM,MAAM,WACJ,EAET,CAQoB,eAAqC,QACxC,SACA,EACC,aACA,sBAKT,iBAAmB,IAAI,IAKvB,kBAAoB,IAAI,IAKxB,mBAAqB,IAAI,IAKzB,cAAgB,IAAI,IAKpB,aAAe,GACf,YAAc,GACd,sBAAwB,GACxB,kBAAoB,GACpB,YAAc,GACd,cAER,WAAW,EAAG,CACb,MAAM,EACN,KAAK,sBAAwB,IAAI,GAAsB,IAAI,EAE3D,KAAK,aAAe,IAAI,EACvB,KACA,CACC,eAAgB,CAAC,EAAQ,EAAU,IAAe,OAAO,eAAe,EAAQ,EAAU,CAAU,EACpG,iBAAkB,CAAC,IAAW,OAAO,eAAe,CAAM,GAAK,EAC/D,YAAa,CAAC,EAAQ,KAAa,KAAY,GAC/C,aAAc,CAAC,EAAQ,IAAc,EAAmC,EACzE,EACA,IAAM,KAAK,8BAA8B,CAC1C,EACA,KAAK,SAAW,KAAK,aAAa,SAClC,KAAK,EAAI,KAAK,aAAa,EAC3B,EAA8B,IAAI,KAGxB,sBAAqB,EAAW,CAC1C,OAAO,KAAK,eAAe,uBAAyB,EAGrD,iBAAiB,EAAG,CACnB,EAAsC,IAAI,EAC1C,IAAM,EAAuC,KAAK,sBAMlD,GAJA,KAAK,aAAe,GAEpB,KAAK,aAAa,YAAY,EAE1B,EACH,OAGD,KAAK,sBAAwB,GAE7B,eAAe,IAAM,CAGpB,GAFA,KAAK,sBAAwB,GAEzB,CAAC,KAAK,YACT,OAGD,GAAI,CAAC,KAAK,yBAAyB,EAClC,OAMD,GAHsB,KAAK,yBAAyB,EACtC,sBAAsB,EAEhC,GAAuB,IAAI,EAAG,CAIjC,GAHA,KAAK,YAAc,GACnB,KAAK,QAAQ,EAET,KAAK,YACR,KAAK,OAAO,EAGb,OAGD,KAAK,OAAO,EACZ,EAGF,wBAAwB,CAAC,EAAoC,EAE7D,oBAAoB,EAAG,CACtB,KAAK,eAAe,QAAQ,EAC5B,KAAK,cAAgB,OACrB,KAAK,0BAA0B,EAC/B,KAAK,aAAa,eAAe,EAG3B,YAAY,CAAC,EAAyB,EAAmB,EAAgB,CAC/E,KAAK,aAAa,aAAa,EAAiB,EAAU,CAAK,EAGhE,wBAAwB,CAAC,EAAc,EAAyB,EAAyB,CACxF,GAAI,IAAa,GAAY,CAAC,KAAK,aAAc,OAEjD,KAAK,sBAAsB,qBAAqB,EAAM,EAAU,CAAQ,EAWlE,cAAc,EACpB,SAAS,KACT,WACA,SAAS,UACT,YAME,CACF,IAAM,EAAO,EAAW,EAAS,CAAQ,EAAI,EAC7C,OAAQ,OACF,UACJ,EAAO,UAAY,EACnB,UACI,YACJ,EAAO,mBAAmB,YAAa,CAAI,EAC3C,UACI,aACJ,EAAO,mBAAmB,aAAc,CAAI,EAC5C,UACI,cACJ,EAAO,mBAAmB,cAAe,CAAI,EAC7C,UACI,WACJ,EAAO,mBAAmB,WAAY,CAAI,EAC1C,OAII,MAAM,EAAkB,CAC9B,OAAO,GAAI,OAAQ,CAAC,CAAC,EAGf,kBAAkB,CAAC,EAAiC,CAAC,EAAW,CACtE,GAAI,CAAC,KAAK,yBAAyB,EAClC,OAAO,KAAK,UAMb,OAHA,EAAsC,IAAI,EAC1C,KAAK,cAAc,EAEZ,GAAgC,EAAE,WAAW,KAAM,CAAO,EAG3D,OAAO,EAAS,CACtB,GAAI,CAAC,KAAK,yBAAyB,GAAK,CAAC,KAAK,aAAe,KAAK,YACjE,OAGD,IAAQ,gBAAiB,KAAK,qBAAqB,EAC7C,EAAgB,KAAK,yBAAyB,EAEpD,KAAK,YAAc,GAEnB,GAAI,CACH,EAAc,QAAQ,CAA2B,SAChD,CACD,KAAK,YAAc,IAId,aAAa,EAAS,CAC5B,GAAI,CAAC,KAAK,yBAAyB,EAClC,OAKD,GAFA,KAAK,YAAc,GAEf,KAAK,kBACR,OAGD,KAAK,kBAAoB,GAEzB,eAAe,IAAM,CAGpB,GAFA,KAAK,kBAAoB,GAErB,CAAC,KAAK,YACT,OAGD,KAAK,OAAO,EACZ,EAGK,MAAM,EAAS,CACrB,GAAI,CAAC,KAAK,yBAAyB,EAClC,OAGD,IAAQ,gBAAiB,KAAK,qBAAqB,EAC7C,EAAgB,KAAK,yBAAyB,EAIpD,GAFA,KAAK,YAAc,GAEf,CAAC,KAAK,aAAe,KAAK,YAC7B,OAGD,GAAI,KAAK,uBAAyB,GAAuB,IAAI,EAC5D,OAGD,MAAO,KAAK,aAAe,KAAK,YAAa,CAC5C,KAAK,YAAc,GACnB,KAAK,YAAc,GAEnB,GAAI,CACH,EAAc,OAAO,CAA2B,SAC/C,CACD,KAAK,YAAc,KAKf,wBAAwB,CAAC,EAA0B,CACzD,KAAK,sBAAsB,SAAS,CAAM,EAGpC,qBAAqB,EAAuB,CAClD,OAAO,KAAK,sBAAsB,OAAO,EAGnC,gCAAgC,CAAC,EAAkB,EAA2B,CACpF,KAAK,aAAa,iCAAiC,EAAU,CAAI,EAG3D,uBAAuB,CAAC,EAAc,EAAgD,CAC5F,KAAK,iBAAiB,IAAI,EAAM,CAAQ,EACxC,KAAK,kBAAkB,IAAI,EAAM,CAAQ,EAGnC,wBAAwB,CAAC,EAAc,EAAgD,CAC7F,KAAK,kBAAkB,IAAI,EAAM,CAAO,EAGlC,mBAAmB,EAAqC,CAE9D,OADA,EAAsC,IAAI,EACnC,CAAC,GAAG,KAAK,iBAAiB,OAAO,CAAC,EAGnC,oBAAoB,EAAsC,CAEhE,OADA,EAAsC,IAAI,EACnC,CAAC,GAAG,KAAK,kBAAkB,OAAO,CAAC,EAUjC,aAAa,EAAS,CAC/B,GAA2B,IAAI,EAatB,6BAA6B,EAAY,CAClD,MAAO,GAGE,wBAAwB,EAAY,CAC7C,OAAO,KAAK,SAAW,GAAe,UAAU,OAIvC,eAAe,EAAwB,CAChD,GAAI,KAAK,iBAAmB,SAC3B,OAAO,KAGR,GAAI,KAAK,WACR,OAAO,KAAK,WAGb,GAAI,OAAO,KAAK,eAAiB,WAChC,MAAU,MAAM,4DAA4D,EAG7E,OAAO,KAAK,aAAa,CAAE,KAAM,MAAO,CAAC,EAGnC,sBAAsB,CAAC,EAAkB,EAA6C,CAC5F,OAAO,KAAK,aAAa,uBAAuB,EAAU,CAAM,EAG1D,kBAAgE,CACtE,EACiE,CACjE,OAAO,KAAK,aAAa,mBAAmB,CAAQ,EAG9C,IAAkD,CACxD,EACiE,CACjE,OAAO,KAAK,aAAa,mBAAmB,CAAQ,EAG9C,qBAAqB,CAAC,EAAkB,EAA8B,GAAY,CACxF,KAAK,aAAa,sBAAsB,EAAU,CAAI,EAGhD,iBAAiB,CAAC,EAAwB,CAChD,KAAK,aAAa,kBAAkB,CAAQ,EAGtC,eAAe,CAAC,EAA0D,CAChF,IAAM,EAAmC,CAAC,EAC1C,QAAW,KAAS,EACnB,EAAc,KAAK,KAAK,eAAe,CAAK,CAAC,EAE9C,OAAO,EAGD,cAAc,CAAC,EAAsD,CAC3E,IAAQ,qBAAsB,KAAK,qBAAqB,EAClD,EAAoB,CAAC,IAA0B,CACpD,GAAI,EAAe,QAAW,EAAe,OAAmB,QAAQ,EAAY,QAAQ,EAC3F,EAAY,SAAS,KAAK,KAAM,CAAc,GAG1C,EAAiB,GAAG,EAAY,QAAQ,EAAY,WAQ1D,OAPA,EAAkB,iBAAiB,EAAY,KAAM,EAAmB,EAAY,OAAO,EAC3F,KAAK,mBAAmB,IAAI,EAAgB,IACxC,EACH,SAAU,EACV,OAAQ,CACT,CAAC,EAEM,KAAK,iBAAiB,KAAK,KAAM,CAAc,EAG/C,gBAAgB,CAAC,EAAkB,CAC1C,IAAM,EAAoB,KAAK,mBAAmB,IAAI,CAAE,EACxD,GAAI,EACH,EAAkB,OAAO,oBACxB,EAAkB,KAClB,EAAkB,SAClB,EAAkB,OACnB,EACA,KAAK,mBAAmB,OAAO,CAAE,EAI3B,yBAAyB,EAAS,CACzC,QAAW,KAAqB,KAAK,mBAAmB,OAAO,EAC9D,EAAkB,OAAO,oBACxB,EAAkB,KAClB,EAAkB,SAClB,EAAkB,OACnB,EAED,KAAK,mBAAmB,MAAM,EAMxB,uBAAuB,CAAC,EAA4B,CAC1D,KAAK,aAAa,wBAAwB,CAAQ,EAU5C,yBAAyB,CAAC,EAA4B,CAC5D,KAAK,aAAa,0BAA0B,CAAQ,EAG9C,oBAAoB,CAAC,EAAc,EAAuB,CAChE,KAAK,cAAc,IAAI,EAAM,CAAO,EAK9B,MAAmC,CAAC,EAAa,EAAM,GAAuB,CACpF,IAAM,EAAW,cAAc,OACvB,aAAc,KAAK,qBAAqB,EAChD,GAAI,EACH,OAAO,MAAM,KAAK,EAAU,iBAAiB,CAAQ,CAAC,EAEvD,OAAQ,EAAU,cAAc,CAAQ,GAAW,KAG7C,cAA2C,CAAC,EAAyB,CAC3E,OAAQ,KAAK,gBAAmB,CAAI,EAAE,IAAM,KAGtC,eAA4C,CAAC,EAAoB,CACvE,OAAO,KAAK,yBAAyB,EAAE,gBAAmB,CAAI,EAGxD,mBAAsB,CAAC,EAAsB,EAAiB,EAAgC,CAAC,EAAS,CAC9G,KAAK,aAAa,oBAAoB,EAAc,EAAc,CAAO,EAUnE,kBAA+B,CAAC,EAAsB,EAA2C,CACvG,KAAK,sBAAsB,OAC1B,EACA,EACA,CAAC,EAAM,EAAc,IAAiB,GAAgB,KAAM,EAAM,EAAc,CAAY,EAC5F,CAAC,EAAM,IAAW,CACjB,KAAK,aAAa,uBAAuB,EAAM,CAAM,EAEvD,EAGM,0BAA0B,EAAuB,CACvD,OAAO,KAAK,yBAAyB,EAAE,2BAA2B,EAG5D,gCAAgC,EAAuB,CAC7D,OAAO,KAAK,yBAAyB,EAAE,iCAAiC,EAGlE,0BAA0B,EAAqD,CACrF,OAAO,KAAK,yBAAyB,EAAE,2BAA2B,EAG3D,wBAAwB,EAAG,CAClC,GAAI,KAAK,cACR,OAAO,KAAK,cAIb,OADA,KAAK,cAAgB,IAAI,GAAc,IAAyB,EACzD,KAAK,cAGL,oBAAoB,EAAyB,CACpD,IAAM,EAAe,KAAK,gBAAgB,EACpC,EACL,OAAO,WAAe,KAAe,aAAwB,WAAa,EAAe,KAE1F,MAAO,CACN,oBACA,UAAW,EACX,cACD,EAEF,CAEA,SAAS,EAA+B,EAAG,CAC1C,IAAM,EAAU,GAA4B,EAE5C,GAAI,CAAC,EACJ,MAAU,MAAM,4FAA4F,EAG7G,OAAO,EAGR,SAAS,EAAsB,CAAC,EAAiC,CAChE,OAAO,GAA2B,GAAK,GAAoB,CAAS,EAGrE,MAAM,EAAsB,CAIE,KAHZ,WAAa,IAAI,IACjB,yBAA2B,IAAI,IAEhD,WAAW,CAAkB,EAAiC,CAAjC,YAC5B,QAAW,KAAgB,OAAO,oBAAoB,CAAI,EACzD,KAAK,yBAAyB,IAAI,EAAc,QAAQ,IAAI,EAAM,CAAY,CAAC,EAI1E,QAAQ,CAAC,EAAgC,CAC/C,KAAK,WAAW,IAAI,EAAO,KAAM,CAAM,EAGjC,MAAM,EAAuB,CACnC,OAAO,MAAM,KAAK,KAAK,WAAW,OAAO,CAAC,EAGpC,oBAAoB,CAAC,EAAc,EAAyB,EAA+B,CACjG,IAAM,EAAS,KAAK,WAAW,IAAI,CAAI,EAEvC,GAAI,CAAC,EACJ,OAGD,IAAM,EAAmB,KAAK,wBAAwB,EAAU,CAAM,EAChE,EAAsB,KAAK,wBAAwB,EAAU,CAAM,EAEzE,QAAQ,IAAI,KAAK,KAAM,EAAO,UAAW,CAAgB,EACzD,KAAK,KAAK,aAAa,EAAM,EAAqB,CAAgB,EAG5D,MAAS,CACf,EACA,EACA,EACA,EACO,CACP,IAAQ,OAAM,YAAW,UAAS,gBAAiB,EAC7C,EAAe,GAAa,EAC5B,EAAqB,KAAK,yBAAyB,IAAI,CAAY,EACnE,EAAkB,EAAsB,KAAK,yBAAyB,IAAI,CAAY,EAAU,OAEtG,EAAgC,EAAM,CAAY,EAElD,IAAM,EAA8B,EACjC,EACA,EAAoB,EAAM,EAAc,CAAY,EAEvD,GAAI,KAAK,KAAK,aAAa,CAAY,IAAM,CAAC,GAAW,GAAgB,MAAQ,IAAiB,IACjG,KAAK,KAAK,gBAAgB,CAAY,EAGvC,GAAI,GAAsB,OAAO,UAAU,eAAe,KAAK,KAAK,KAAM,CAAY,EACrF,QAAQ,eAAe,KAAK,KAAM,CAAY,EAG/C,IAAM,EAAkB,GAA8B,EAAc,EAAc,EAAM,CAAY,EAapG,GAXA,KAAK,SAAS,CAAe,EAE7B,EAAuB,EAAc,CACpC,KAAM,EAAQ,KACd,SAAU,IAAM,KAAK,WAAW,IAAI,CAAY,GAAG,MACnD,SAAU,CAAC,IAAgB,CAC1B,KAAK,WAAW,IAAI,EAAc,IAAK,EAAiB,MAAO,CAAS,CAAC,EACzE,KAAK,aAAa,EAAc,EAAS,EAAiB,CAAQ,EAEpE,CAAC,EAEG,IAAiB,OACpB,eAAe,IAAM,CACpB,IAAM,EAAe,KAAK,WAAW,IAAI,CAAY,GAAG,MACxD,GAAI,IAAiB,OACpB,OAGD,KAAK,aAAa,EAAc,EAAS,EAAiB,CAAY,EACtE,KAAK,KAAK,aAAa,EAAc,OAAW,CAAY,EAC5D,EAIK,uBAAuB,CAAC,EAAsB,EAAmC,CACxF,OAAO,IAAU,KAAO,EAAO,UAAU,cAAc,CAAK,EAAI,EAGzD,YAAe,CACtB,EACA,EACA,EACA,EACO,CACP,GAAI,CAAC,EACJ,OAGD,GAAI,GAAS,MAAQ,IAAU,IAAM,IAAU,GAAO,CACrD,KAAK,KAAK,gBAAgB,CAAY,EACtC,OAGD,IAAM,EAAiB,EAAS,UAAU,YAAY,CAAK,EAC3D,KAAK,KAAK,aAAa,EAAc,CAAc,EAErD,CCt1BA,iBAAS,uBAoCF,MAAM,EAAsF,CAClF,KACA,QACA,SACA,EAEC,aACT,UAAY,GACZ,YAAc,GACd,kBAAoB,GACpB,eAAiB,GACjB,YAAc,GACd,iBAAmB,IAAI,IACvB,kBAAoB,IAAI,IACxB,aACS,cAAgB,EAAsB,IAAM,CAC5D,KAAK,cAAc,EACnB,EAED,WAAW,CAAC,EAAe,CAC1B,KAAK,KAAO,EACZ,KAAK,QAAU,EACf,KAAK,aAAe,IAAI,EACvB,KACA,CACC,eAAgB,CAAC,EAAQ,EAAU,IAAe,OAAO,eAAe,EAAQ,EAAU,CAAU,EACpG,YAAa,CAAC,EAAQ,KAAa,KAAY,GAC/C,aAAc,CAAC,EAAQ,IAAc,EAAmC,EACzE,EACA,IAAM,KAAK,8BAA8B,CAC1C,EACA,KAAK,SAAW,KAAK,aAAa,SAClC,KAAK,EAAI,KAAK,aAAa,EAC3B,EAA8B,IAAI,EAS5B,OAAO,EAAS,CAKtB,GAJA,EAAsC,IAAI,EAC1C,KAAK,UAAY,GACjB,KAAK,aAAa,YAAY,EAE1B,KAAK,yBAAyB,EACjC,KAAK,OAAO,EAQP,mBAAsB,CAAC,EAAkB,CAC/C,KAAK,eAAiB,GAEtB,GAAI,CACH,OAAO,EAAK,SACX,CACD,KAAK,eAAiB,IAOjB,UAAU,EAAS,CACzB,KAAK,UAAY,GACjB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,eAAe,KAGvB,YAAW,EAAY,CACjC,OAAO,KAAK,UAUN,MAAM,EAAkB,CAC9B,OAAO,KAQD,aAAa,EAAS,CAC5B,GAAI,CAAC,KAAK,yBAAyB,EAClC,OAKD,GAFA,KAAK,YAAc,GAEf,KAAK,kBACR,OAGD,KAAK,kBAAoB,GAEzB,eAAe,IAAM,CAGpB,GAFA,KAAK,kBAAoB,GAErB,CAAC,KAAK,YACT,OAGD,KAAK,OAAO,EACZ,EAQK,MAAM,EAAS,CACrB,GAAI,CAAC,KAAK,yBAAyB,EAClC,OAGD,IAAM,EAAe,KAAK,gBAAgB,EAE1C,GAAI,CAAC,EACJ,OAKD,GAFA,KAAK,YAAc,GAEf,CAAC,KAAK,WAAa,KAAK,YAC3B,OAGD,MAAO,KAAK,YAAa,CACxB,KAAK,YAAc,GACnB,KAAK,YAAc,GAEnB,GAAI,CACH,GAAU,KAAK,2BAA2B,EAAG,CAAY,SACxD,CACD,KAAK,YAAc,KAQf,IAAkD,CACxD,EACiE,CACjE,OAAO,KAAK,aAAa,mBAAmB,CAAQ,EAM9C,kBAAgE,CACtE,EACiE,CACjE,OAAO,KAAK,aAAa,mBAAmB,CAAQ,EAM9C,mBAAsB,CAAC,EAAsB,EAAiB,EAAgC,CAAC,EAAS,CAC9G,KAAK,aAAa,oBAAoB,EAAc,EAAc,CAAO,EAWnE,kBAA+B,CAAC,EAAsB,EAA2C,CACvG,IAAQ,OAAM,eAAc,QAAS,EAErC,EAAgC,EAAM,CAAY,EAElD,IAAM,EAAqB,IAAI,GAAgC,KAAK,KAAM,KAAM,CAAY,EAExF,EADqB,EAAmB,gBAAgB,GACpB,GAAgB,EAAoB,CAAI,EAEhF,KAAK,aAAa,uBAAuB,EAAc,CACtD,OACA,SAAU,IAAM,EAChB,SAAU,CAAC,IAAgB,CAC1B,EAAe,GAEhB,mBAAoB,CACrB,CAAC,EAED,EAAmB,QAAQ,EAE3B,KAAK,wBAAwB,IAAM,CAClC,EAAmB,QAAQ,EAC3B,EAMK,qBAAqB,CAAC,EAAkB,EAA8B,GAAY,CACxF,KAAK,aAAa,sBAAsB,EAAU,CAAI,EAGhD,YAAY,CAAC,EAAyB,EAAmB,EAAsB,CACrF,KAAK,aAAa,aAAa,EAAiB,EAAU,CAAK,EAGzD,sBAAsB,CAAC,EAAkB,EAA6C,CAC5F,OAAO,KAAK,aAAa,uBAAuB,EAAU,CAAM,EAU1D,wBAAwB,CAAC,EAAoC,EAS7D,uBAAuB,CAAC,EAAc,EAAgD,CAC5F,KAAK,iBAAiB,IAAI,EAAM,CAAQ,EACxC,KAAK,kBAAkB,IAAI,EAAM,CAAQ,EAMnC,wBAAwB,CAAC,EAAc,EAAgD,CAC7F,KAAK,kBAAkB,IAAI,EAAM,CAAO,EAMlC,sBAAsB,EAAqC,CACjE,MAAO,CAAC,GAAG,KAAK,iBAAiB,OAAO,CAAC,EAMnC,uBAAuB,EAAsC,CACnE,MAAO,CAAC,GAAG,KAAK,kBAAkB,OAAO,CAAC,EAGpC,uBAAuB,CAAC,EAA4B,CAC1D,KAAK,aAAa,wBAAwB,CAAQ,EAG5C,yBAAyB,CAAC,EAA4B,CAC5D,KAAK,aAAa,0BAA0B,CAAQ,EAG9C,gCAAgC,CAAC,EAAkB,EAA2B,CACpF,KAAK,aAAa,iCAAiC,EAAU,CAAI,EAG3D,iBAAiB,CAAC,EAAwB,CAChD,KAAK,aAAa,kBAAkB,CAAQ,EAGtC,gBAAgB,CACtB,EACA,EACA,EACO,CACP,KAAK,KAAK,iBAAiB,EAAM,EAAU,CAAO,EAG5C,mBAAmB,CACzB,EACA,EACA,EACO,CACP,KAAK,KAAK,oBAAoB,EAAM,EAAU,CAAO,EAG/C,aAAa,CAAC,EAAuB,CAC3C,OAAO,KAAK,KAAK,cAAc,CAAK,EAW9B,MAAmC,CAAC,EAAa,EAAM,GAAuB,CACpF,IAAM,EAAW,cAAc,MAE/B,GAAI,EACH,OAAO,MAAM,KAAK,KAAK,KAAK,iBAAiB,CAAQ,CAAC,EAGvD,OAAQ,KAAK,KAAK,cAAc,CAAQ,GAAW,KAG1C,6BAA6B,EAAY,CAClD,MAAO,GAGE,wBAAwB,EAAY,CAC7C,MAAO,CAAC,KAAK,gBAAkB,KAAK,SAAW,GAAkB,UAAU,OAGpE,eAAe,EAAuB,CAC7C,OAAO,KAAK,gBAAgB,YAAc,KAAK,KAAO,KAG/C,uBAAuB,EAAS,CACvC,GAAI,CAAC,KAAK,aACT,OAGD,KAAK,cAAc,QAAQ,KAAK,YAAY,EAC5C,KAAK,aAAe,OAGb,0BAA0B,EAAkB,CACnD,IAAM,EAAmB,EAAuB,IAAM,KAAK,OAAO,CAAC,EAC7D,EAAS,EAAiB,IAAI,EAEpC,GAAI,CAAC,KAAK,UACT,OAAO,EAGR,GAAI,KAAK,aACR,KAAK,cAAc,QAAQ,KAAK,YAAY,EAK7C,OAFA,KAAK,aAAe,EACpB,KAAK,cAAc,MAAM,CAAgB,EAClC,EAET,CAEA,MAAM,EAAgC,CAInB,KACA,WACA,aALD,cAEjB,WAAW,CACO,EACA,EACA,EAChB,CAHgB,YACA,kBACA,oBAEjB,KAAK,cAAgB,OAAO,yBAAyB,KAAK,KAAM,KAAK,YAAY,EAG3E,eAAe,EAAkB,CACvC,OAAO,QAAQ,IAAI,KAAK,KAAM,KAAK,YAAY,EAGzC,OAAO,EAAS,CACtB,OAAO,eAAe,KAAK,KAAM,KAAK,aAAc,CACnD,IAAK,IAAM,QAAQ,IAAI,KAAK,WAAY,KAAK,YAAY,EACzD,IAAK,CAAC,IAAgB,CACrB,QAAQ,IAAI,KAAK,WAAY,KAAK,aAAc,CAAQ,GAEzD,WAAY,KAAK,eAAe,YAAc,GAC9C,aAAc,EACf,CAAC,EAGK,OAAO,EAAS,CACtB,IAAM,EAAa,QAAQ,IAAI,KAAK,WAAY,KAAK,YAAY,EAEjE,GAAI,KAAK,cAAe,CAGvB,GAFA,OAAO,eAAe,KAAK,KAAM,KAAK,aAAc,KAAK,aAAa,EAElE,UAAW,KAAK,eAAiB,KAAK,cAAc,SACvD,QAAQ,IAAI,KAAK,KAAM,KAAK,aAAc,CAAU,EAGrD,OAGD,QAAQ,eAAe,KAAK,KAAM,KAAK,YAAY,EAEnD,GAAI,CACH,QAAQ,IAAI,KAAK,KAAM,KAAK,aAAc,CAAU,EACnD,KAAM,CACP,OAAO,eAAe,KAAK,KAAM,KAAK,aAAc,CACnD,MAAO,EACP,SAAU,GACV,WAAY,GACZ,aAAc,EACf,CAAC,GAGJ,CCjcO,IAAM,GAAwB,OAAO,IAAI,wCAAwC,EAMjF,SAAS,EAAuB,CAAC,EAAkC,EAA0B,CAClG,EAA6C,IAAyB,EAGjE,SAAS,EAAuB,CAAC,EAAsD,CAC7F,OAAQ,EAA6C,ICR/C,IAAM,EAAuB,kBAcvB,GAAgC,OAAO,IAAI,6CAA6C,EAErG,SAAS,EAAgC,EAAkC,CAC1E,IAAM,EAAc,WACd,EAAgB,EAAY,IAElC,GAAI,EACH,OAAO,EAGR,IAAM,EAA2C,CAChD,eAAgB,IAAI,IACpB,+BAAgC,eAChC,mBAAoB,IAAI,GACzB,EAIA,OAFA,EAAY,IAAiC,EAEtC,EAGR,IAAM,EAA0B,GAAiC,EAC3D,EAAqB,EAAwB,mBAC7C,EAAiB,EAAwB,eAExC,SAAS,EAA0B,CAAC,EAA4B,CACtE,IAAM,EAAQ,EAAQ,aAAa,CAAoB,EAEvD,GAAI,CAAC,EACJ,MAAO,CAAC,EAGT,OAAO,EACL,MAAM,KAAK,EACX,IAAI,CAAC,IAAe,EAAW,KAAK,CAAC,EACrC,OAAO,CAAC,IAAe,EAAW,OAAS,CAAC,EAGxC,SAAS,CAAuB,CAAC,EAAkB,EAAyC,CAClG,GAAI,aAAgB,SAAW,EAAK,aAAa,CAAoB,EACpE,EAAM,CAAI,EAGX,QAAW,KAAW,MAAM,KAAK,EAAK,iBAAiB,IAAI,IAAuB,CAAC,EAClF,EAAM,CAAO,EAIR,MAAM,EAA0B,CAKT,KAJZ,qBAAuB,IAAI,IACpC,SACA,QAAU,GAElB,WAAW,CAAkB,EAAmB,SAAU,CAA7B,YAC5B,KAAK,MAAM,EAGL,IAAI,EAAS,CACnB,GAAI,KAAK,QACR,OAGD,KAAK,QAAU,GACf,KAAK,UAAU,WAAW,EAC1B,KAAK,SAAW,OAEhB,QAAY,EAAS,KAAgB,KAAK,qBACzC,QAAY,KAAe,EAC1B,KAAK,qBAAqB,EAAS,CAAU,EAI/C,EAAe,OAAO,IAAI,EAGpB,6BAA6B,CAAC,EAA0B,CAC9D,EAAwB,KAAK,KAAM,CAAC,IAAY,CAC/C,GAAI,CAAC,GAA2B,CAAO,EAAE,SAAS,CAAU,EAC3D,OAGD,KAAK,kBAAkB,EAAS,CAAU,EAC1C,EAGK,2BAA2B,CAAC,EAA0B,CAC5D,QAAY,EAAS,KAAgB,MAAM,KAAK,KAAK,qBAAqB,QAAQ,CAAC,EAAG,CACrF,GAAI,CAAC,EAAY,IAAI,CAAU,EAC9B,SAGD,KAAK,qBAAqB,EAAS,CAAU,EAG9C,KAAK,8BAA8B,CAAU,EAGtC,KAAK,EAAS,CAKrB,GAJA,EAAwB,KAAK,KAAM,CAAC,IAAY,CAC/C,KAAK,iBAAiB,CAAO,EAC7B,EAEG,OAAO,iBAAqB,IAAa,CAC5C,EAAe,IAAI,IAAI,EACvB,OAGD,KAAK,SAAW,IAAI,iBAAiB,CAAC,IAAY,CACjD,QAAW,KAAU,EAAS,CAC7B,GAAI,EAAO,OAAS,cAAgB,EAAO,kBAAkB,QAAS,CACrE,KAAK,iBAAiB,EAAO,MAAM,EACnC,SAGD,QAAW,KAAe,MAAM,KAAK,EAAO,YAAY,EAAG,CAC1D,GAAI,EAAE,aAAuB,SAC5B,SAGD,EAAwB,EAAa,CAAC,IAAY,CACjD,KAAK,6BAA6B,CAAO,EACzC,EAGF,QAAW,KAAa,MAAM,KAAK,EAAO,UAAU,EAAG,CACtD,GAAI,EAAE,aAAqB,SAC1B,SAGD,EAAwB,EAAW,CAAC,IAAY,CAC/C,KAAK,iBAAiB,CAAO,EAC7B,IAGH,EAED,IAAM,EAAe,KAAK,gBAAgB,SAAW,KAAK,KAAK,gBAAkB,KAAK,KAEtF,KAAK,SAAS,QAAQ,EAAc,CACnC,gBAAiB,CAAC,CAAoB,EACtC,WAAY,GACZ,UAAW,GACX,QAAS,EACV,CAAC,EAED,EAAe,IAAI,IAAI,EAGhB,gBAAgB,CAAC,EAAwB,CAChD,IAAM,EAAkB,IAAI,IAAI,GAA2B,CAAO,CAAC,EAC7D,EAAqB,KAAK,qBAAqB,IAAI,CAAO,EAEhE,GAAI,GACH,QAAW,KAAc,EAAmB,KAAK,EAChD,GAAI,CAAC,EAAgB,IAAI,CAAU,EAClC,KAAK,qBAAqB,EAAS,CAAU,EAKhD,QAAW,KAAc,EACxB,KAAK,kBAAkB,EAAS,CAAU,EAIpC,iBAAiB,CAAC,EAAkB,EAA0B,CACrE,IAAM,EAAwB,EAAmB,IAAI,CAAU,EAE/D,GAAI,CAAC,EACJ,OAGD,IAAI,EAAc,KAAK,qBAAqB,IAAI,CAAO,EAEvD,GAAI,CAAC,EACJ,EAAc,IAAI,IAClB,KAAK,qBAAqB,IAAI,EAAS,CAAW,EAGnD,GAAI,EAAY,IAAI,CAAU,EAC7B,OAGD,IAAM,EAAa,IAAI,EAAsB,CAAO,EACpD,EAAY,IAAI,EAAY,CAAU,EACtC,EAAW,QAAQ,EAGZ,oBAAoB,CAAC,EAAkB,EAA0B,CACxE,IAAM,EAAc,KAAK,qBAAqB,IAAI,CAAO,EAEzD,GAAI,CAAC,EACJ,OAGD,IAAM,EAAa,EAAY,IAAI,CAAU,EAE7C,GAAI,CAAC,EACJ,OAMD,GAHA,EAAW,WAAW,EACtB,EAAY,OAAO,CAAU,EAEzB,EAAY,OAAS,EACxB,KAAK,qBAAqB,OAAO,CAAO,EAIlC,4BAA4B,CAAC,EAAwB,CAC5D,IAAM,EAAc,KAAK,qBAAqB,IAAI,CAAO,EAEzD,GAAI,CAAC,EACJ,OAGD,QAAW,KAAc,MAAM,KAAK,EAAY,KAAK,CAAC,EACrD,KAAK,qBAAqB,EAAS,CAAU,EAGhD,CAEO,SAAS,EAGf,CAAC,EAAoB,EAAwC,CAC7D,IAAM,EAAqB,EAAmB,IAAI,CAAU,EAE5D,GAAI,EACH,OAAO,EAGR,GAAwB,EAAmD,CAAU,EACrF,EAAmB,IAAI,EAAY,CAAU,EAE7C,QAAW,KAAW,MAAM,KAAK,CAAc,EAC9C,EAAQ,8BAA8B,CAAU,EAGjD,OAAO,EAGD,SAAS,EAAuB,CAAC,EAA6B,CACpE,OAAO,EAAmB,IAAI,CAAU,EASlC,SAAS,EAA2B,CAAC,EAAuD,CAClG,OAAO,EAAmB,IAAI,CAAU,EAGlC,SAAS,EAGf,CAAC,EAAoB,EAAwC,CAG7D,GAF2B,EAAmB,IAAI,CAAU,IAEjC,EAC1B,OAAO,EAGR,GAAwB,EAAmD,CAAU,EACrF,EAAmB,IAAI,EAAY,CAAU,EAE7C,QAAW,KAAW,MAAM,KAAK,CAAc,EAC9C,EAAQ,4BAA4B,CAAU,EAG/C,OAAO,EAGD,SAAS,EAAiC,CAAC,EAAgD,CACjG,EAAwB,+BAAiC,EAGnD,SAAS,EAAiC,EAAS,CACzD,GAAkC,SAAS,EAGrC,SAAS,EAAkC,EAAS,CAC1D,GAAkC,cAAc,EAG1C,SAAS,EAGf,CAAC,EAAoB,EAAwC,CAC7D,GAAI,EAAwB,iCAAmC,UAC9D,OAAO,GAAkB,EAAY,CAAU,EAGhD,OAAO,GAAmB,EAAY,CAAU,EAG1C,SAAS,EAAgB,CAAC,EAAmB,SAAqC,CACxF,OAAO,IAAI,GAA0B,CAAI,EAGnC,SAAS,EAAe,EAAS,CACvC,QAAW,KAAW,MAAM,KAAK,CAAc,EAC9C,EAAQ,KAAK,EClTf,SAAS,EAAQ,CAAC,EAAiC,CAClD,OAAO,OAAO,IAAU,WAsBlB,SAAS,CAAoB,CACnC,EACA,EACA,EACA,EACU,CACV,GAAI,OAAO,IAAkB,SAC5B,OAAO,EAAS,OAAW,CAAa,EAGzC,OAAO,EAAO,EAAe,CAAa,EAyBpC,SAAS,CAAqB,CACpC,EACA,EACA,EACA,EACA,EACU,CACV,GAAI,OAAO,IAAkB,SAAU,CACtC,GAAI,CAAC,GAAS,CAAa,EAC1B,MAAU,UAAU,oDAAoD,EAGzE,OAAO,EAAS,EAAe,CAAa,EAG7C,GAAI,CAAC,EACJ,MAAU,UAAU,wDAAwD,EAG7E,OAAO,EAAO,EAAe,EAAe,CAAU,EC7DvD,SAAS,EAAsB,CAAC,EAA0C,CACzE,GAAI,aAAgB,QACnB,OAAO,EAGR,GAAI,SAAU,EACb,OAAO,EAAK,KAGb,OAAO,EAAK,QAGb,SAAS,EAAe,CAAC,EAA8B,CACtD,OAAO,EACL,QAAQ,qBAAsB,OAAO,EACrC,QAAQ,KAAM,GAAG,EACjB,YAAY,EAGf,SAAS,EAAwB,CAAC,EAAyB,EAA4B,CACtF,GAAI,EAAQ,WAAW,cAAe,CACrC,IAAM,EAAiB,EAAQ,UAAU,cAAc,CAAQ,EAE/D,GAAI,IAAa,MAAQ,IAAmB,QAAa,iBAAkB,EAC1E,OAAO,EAAQ,aAGhB,OAAO,EAGR,GAAI,EAAQ,KAAM,CACjB,GAAI,IAAa,KAChB,OAAQ,EAAQ,cAAgB,EAAoB,EAAQ,IAAI,EAGjE,GAAI,EAAQ,OAAS,SAAW,IAAa,GAC5C,MAAO,GAGR,OAAO,EAAmB,EAAU,EAAQ,IAAI,EAGjD,GAAI,IAAa,KAChB,OAAO,EAAQ,aAGhB,OAAO,EAGR,SAAS,CAA6B,CACrC,EACA,EACA,EACI,CACJ,OAAO,GAAsB,GAAuB,CAAI,EAAE,aAAa,CAAa,EAAG,CAAO,EAG/F,SAAS,EAA8B,CACtC,EACA,EACA,EACA,EACO,CACP,IAAM,EAAiB,EAAQ,WAAW,YACvC,EAAQ,UAAU,YAAY,CAAK,EACnC,EAAQ,KACP,EAAoB,EAAO,EAAQ,IAAI,EACvC,GAAS,KACR,KACA,OAAO,CAAK,EAEjB,GAAI,IAAmB,KAAM,CAC5B,EAAO,gBAAgB,CAAa,EACpC,OAGD,EAAO,aAAa,EAAe,CAAc,EAG3C,SAAS,CAA0D,CACzE,EACA,EACA,EAA+B,CAAC,EACzB,CACP,GAAI,EAAQ,KACX,EAAgC,EAAQ,KAAM,EAAQ,YAAY,EAGnE,IAAM,EAAa,EACb,EAAgB,EAAQ,QAAU,GAAgB,CAAY,EAC9D,EAAc,OAAO,0BAA0B,YAAuB,EACtE,EAAe,OAAO,0BAA0B,cAAyB,EACzE,EACL,EAAQ,MACP,EAAsE,gCAAgC,GACvG,GAED,EAAK,sBAAsB,EAAc,CAAI,EAC7C,EAAK,iCAAiC,EAAc,IAAM,EAA2B,EAAM,EAAe,CAAO,CAAC,EAClH,EAAW,GAAgB,EAA2B,EAAM,EAAe,CAAO,EAElF,OAAO,eAAe,EAAM,EAAc,CACzC,GAAG,EAAG,CAEL,OADA,EAAK,kBAAkB,CAAY,EAC5B,EAA2B,KAAmC,EAAe,CAAO,GAE5F,GAAG,CAAC,EAAkB,CACrB,IAAM,EAAS,GAAuB,IAAiC,EACjE,EAAW,EAA2B,KAAmC,EAAe,CAAO,EACrG,GAA4B,EAAQ,EAAe,EAAU,CAAO,EACpE,IAAM,EAAY,EAA2B,KAAmC,EAAe,CAAO,EAEtG,GAAI,OAAO,GAAG,EAAU,CAAS,EAChC,OAGA,KAAsC,GAAgB,EACvD,EAAK,aAAa,EAAc,EAAU,CAAS,GAEpD,WAAY,GACZ,aAAc,EACf,CAAC,EAED,IAAM,EAAqB,IAAM,CACf,EAAW,IAClB,WAAW,GAGhB,EAAiB,IAAM,CAC5B,IAAM,EAAY,EAA2B,EAAM,EAAe,CAAO,EACnE,EAAgB,EAAW,GAEjC,GAAI,CAAC,OAAO,GAAG,EAAe,CAAS,EACtC,EAAW,GAAgB,EAC3B,EAAK,aAAa,EAAc,EAAe,CAAS,EAGzD,GAAI,OAAO,iBAAqB,IAC/B,OAGD,IAAM,EAAS,GAAuB,CAAI,EAE1C,EAAmB,EAEnB,IAAM,EAAW,IAAI,iBAAiB,IAAM,CAC3C,IAAM,EAAe,EAA2B,EAAM,EAAe,CAAO,EACtE,GAAY,EAAW,GAE7B,GAAI,OAAO,GAAG,GAAW,CAAY,EACpC,OAGD,EAAW,GAAgB,EAC3B,EAAK,aAAa,EAAc,GAAW,CAAY,EACvD,EAED,EAAS,QAAQ,EAAQ,CACxB,gBAAiB,CAAC,CAAa,EAC/B,WAAY,EACb,CAAC,EAED,EAAW,GAAe,GAG3B,EAAe,EACf,EAAK,0BAA0B,CAAc,EAC7C,EAAK,wBAAwB,CAAkB,ECpMzC,SAAS,EAAyC,CAAC,EAA+B,CAAC,EAAG,CAC5F,MAAO,CAAC,EAAmC,IAAyB,CACnE,IAAM,EAAe,OAAO,0BAA0B,aAAwB,EAE9E,EAAkC,EAAQ,CAAC,IAAS,CAClD,EAAmC,0BAA0B,IAAM,CACnE,GAAK,EAAiD,GACrD,OAGD,IAAM,EAAoB,EAA4D,GAChF,EAAgB,EAAQ,eAAiB,OAAY,EAAmB,EAAQ,aAItF,EAAyB,EAAmC,EAAc,IACtE,EACH,cACD,CAAC,EAEA,EAAiD,GAAgB,GAClE,EACD,GCvBI,SAAS,EAAyC,CAAC,EAA+B,CAAC,EAAG,CAC5F,OAAO,QAAkD,CACxD,EACA,EACC,CAED,IAAM,EAAe,OAAO,EAAQ,IAAI,EAClC,EAAsB,OAAO,0BAA0B,eAA0B,EAcvF,OAZA,EAAQ,eAAe,QAAS,EAAc,CAC7C,IAAM,EAAoB,KAAiD,GACrE,EAAgB,EAAQ,eAAiB,OAAY,EAAmB,EAAQ,aAItF,EAAyB,KAAM,EAAc,IACzC,EACH,cACD,CAAC,EACD,EAEM,QAAS,CAAc,EAAe,CAE5C,OADC,KAAiD,GAAuB,EAClE,ICnBH,SAAS,EAAiC,CAAC,EAAgE,CAAC,EAAG,CAMrH,SAAS,CAAS,CACjB,EACA,EACsE,CACtE,OAAO,EACN,GAAqB,CAAO,EAC5B,GAAmB,CAAO,EAC1B,EACA,CACD,EAGD,OAAO,ECfD,SAAS,EAAK,CAAC,EAAwB,EAAqB,EAAoD,CACtH,IAAM,EAAiB,EAAW,MAElC,MAAO,CACN,aAAc,GACd,GAAG,EAAG,CACL,GAAI,OAAU,EAAe,WAAa,OAAO,UAAU,eAAe,KAAK,KAAM,CAAW,EAC/F,OAAO,EAGR,IAAM,EAAc,EAAe,KAAK,IAAI,EAM5C,OALA,OAAO,eAAe,KAAM,EAAa,CACxC,MAAO,EACP,aAAc,GACd,SAAU,EACX,CAAC,EACM,EAET,ECzBM,SAAS,EAAuB,CAAC,EAAM,EAAsC,CACnF,IAAM,EAAa,OAAO,EAAQ,IAAI,EACtC,GAAI,EAAQ,QACX,MAAU,MAAM,mDAAmD,IAAuB,EAE3F,EAAQ,eAAe,QAAS,EAAY,CAC3C,KAAK,GAAc,KAAK,GAAY,KAAK,IAAI,EAC7C,ECSK,SAAS,EAAK,CACpB,EACA,EACA,EACyC,CACzC,OAAO,EAAsB,GAAe,GAAa,EAAe,EAAe,CAAU,ECrB3F,SAAS,EAAU,CAAC,EAAoB,CAC9C,OAAO,QAA0C,CAAC,EAAc,CAC/D,OAAO,GAAyC,EAAY,CAAM,GCJ7D,IAAM,GAA0B,OAAO,IAAI,wCAAwC,EAYnF,SAAS,CAAuB,CAAC,EAAkC,EAAuB,CAC/F,EAAgD,IAA2B,EAQtE,SAAS,EAAuB,CAAC,EAAsD,CAC7F,OAAQ,EAAgD,ICflD,SAAS,EAAa,CAAC,EAAc,EAAoC,CAC/E,MAAO,CAAC,IAAqC,CAG5C,GAFA,EAAwB,EAAQ,CAAI,EAEhC,OAAO,eAAmB,KAAe,CAAC,eAAe,IAAI,CAAI,EACpE,eAAe,OAAO,EAAM,EAAQ,CAAO,GCVvC,SAAS,EAAa,CAAC,EAAc,EAAoC,CAC/E,OAAO,QAA6C,CAAC,EAAM,EAAmC,CAC7F,EAAQ,eAAe,QAAS,EAAG,CAGlC,GAFA,EAAwB,KAAM,CAAI,EAE9B,OAAO,eAAmB,KAAe,CAAC,eAAe,IAAI,CAAI,EACpE,eAAe,OAAO,EAAM,KAAM,CAAO,EAE1C,GCFI,SAAS,EAAa,CAAC,EAAc,EAAoC,CAM/E,SAAS,CAAS,CACjB,EACA,EACO,CACP,GAAI,OAAO,EAAkB,IAC5B,OAAO,GAAsB,EAAM,CAAO,EAAE,EAAe,CAAa,EAGzE,OAAO,GAAoB,EAAM,CAAO,EAAE,CAAa,EAGxD,OAAO,ECkBD,SAAS,CAA0B,CAAC,EAAa,EAAuC,CAC9F,IAAI,EAAmD,KACnD,EAAkD,KAClD,EAEE,EAAmB,IAAM,CAC9B,GAAI,IAAe,KAClB,aAAa,CAAU,EACvB,EAAa,MAIT,EAAS,IAAiC,CAC/C,GAAI,IAAsB,KACzB,OAAO,EAGR,IAAM,EAAa,EAKnB,OAJA,EAAoB,KACpB,EAAiB,EACjB,EAAa,EAAW,EAEjB,GAGF,EAAY,QAAS,IAAgC,EAAqB,CAC/E,EAAoB,IAAM,EAAS,MAAM,KAAM,CAAI,EACnD,EAAiB,EACjB,EAAa,WAAW,IAAM,CAC7B,EAAO,GACL,CAAO,GAkBX,OAfA,EAAU,OAAS,IAAM,CACxB,EAAiB,EACjB,EAAoB,MAGrB,EAAU,MAAQ,IAAM,CACvB,GAAI,IAAsB,KACzB,OAAO,EAGR,OAAO,EAAO,GAGf,EAAU,QAAU,IAAM,IAAsB,KAEzC,ECxFD,SAAS,EAAQ,CACvB,EAC2F,CAC3F,MAAO,CAAC,EAAyB,EAAsB,IAAuD,CAC7G,IAAM,EAAiB,EAAW,MAC5B,EAAsB,IAAI,QAehC,OAbA,EAAW,MAAQ,QAAiB,IAAkB,EAAyC,CAC9F,IAAI,EAAY,EAAoB,IAAI,IAAI,EAE5C,GAAI,CAAC,EACJ,EAAY,EAAiB,IAAI,IAAiD,CACjF,OAAO,EAAe,MAAM,KAAM,CAAS,GACzC,CAAO,EACV,EAAoB,IAAI,KAAM,CAAS,EAGxC,EAAU,GAAG,CAAI,GAGX,GCpBF,SAAS,EAAQ,CAAC,EAAyB,CACjD,MAAO,CAAmB,IAA8B,CACvD,IAAM,EAAsB,IAAI,QAEhC,OAAO,QAAS,IAAkB,EAA2B,CAC5D,IAAI,EAAY,EAAoB,IAAI,IAAI,EAE5C,GAAI,CAAC,EACJ,EAAY,EAAiB,IAAI,IAA6B,CAC7D,OAAO,EAAe,MAAM,KAAM,CAAS,GACzC,CAAO,EACV,EAAoB,IAAI,KAAM,CAAS,EAGxC,EAAU,GAAG,CAAI,ICRb,SAAS,EAAQ,CAAC,EAAiB,CAUzC,SAAS,CAAS,CACjB,EACA,EACA,EACkD,CAClD,OAAO,EACN,GAAiB,CAAO,EACxB,GAAe,CAAO,EACtB,EACA,EACA,CACD,EAGD,OAAO,ECnBD,MAAM,EAA0B,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,CClCO,SAAS,CAAwB,CAAC,EAAsB,EAA6C,CAC3G,IAAM,EAAU,IAAI,GAAgB,EAAM,CAAM,EAEhD,OADA,EAAK,qBAAqB,EAAO,KAAM,CAAO,EACvC,ECDD,SAAS,EAAK,CAAC,EAAiC,CACtD,MAAO,CAAC,EAAuB,IAAwB,CACtD,EAAkC,EAAO,CAAC,IAAY,CACrD,IAAM,EAAU,EAAY,EAAS,CAAW,EAEhD,EAAQ,0BAA0B,IAAM,CACvC,OAAO,eAAe,EAAS,EAAa,CAC3C,GAAG,EAAG,CACL,OAAO,GAER,WAAY,GACZ,aAAc,EACf,CAAC,EACD,EACD,GCfI,SAAS,EAAK,CAAC,EAAiC,CACtD,OAAO,QAAsC,CAAC,EAAc,EAA2C,CACtG,EAAQ,eAAe,QAAS,EAAU,CACzC,IAAM,EAAU,EAAY,KAAM,CAAW,EAE7C,OAAO,eAAe,KAAM,EAAQ,KAAM,CACzC,GAAG,EAAG,CACL,OAAO,GAER,WAAY,GACZ,aAAc,EACf,CAAC,EACD,GCVI,SAAS,EAAK,CAAC,EAAiC,CAMtD,SAAS,CAAS,CACjB,EACA,EACO,CACP,OAAO,EAAqB,GAAc,CAAW,EAAG,GAAY,CAAW,EAAG,EAAe,CAAa,EAG/G,OAAO,ECzBD,SAAS,EAAmB,CAAC,EAAuB,CAC1D,IAAM,EAAe,WAAW,IAEhC,GAAI,OAAO,GAAc,SAAW,WACnC,OAAO,EAAa,OAAO,CAAK,EAGjC,IAAI,EAAU,GAEd,QAAS,EAAQ,EAAG,EAAQ,EAAM,OAAQ,GAAS,EAAG,CACrD,IAAM,EAAY,EAAM,IAAU,GAC5B,EAAY,EAAU,YAAY,CAAC,GAAK,EAE9C,GAAI,IAAc,EAAG,CACpB,GAAW,IACX,SAGD,IAAM,EAAsB,GAAa,GAAU,GAAa,IAAW,IAAc,IACnF,EAAkB,IAAU,GAAK,GAAa,IAAU,GAAa,GACrE,EACL,IAAU,GAAK,GAAa,IAAU,GAAa,KAAW,EAAM,IAAM,MAAQ,IAC7E,EAAiB,IAAU,GAAK,IAAc,KAAO,EAAM,SAAW,EAE5E,GAAI,GAAsB,GAAmB,EAAuB,CACnE,GAAW,KAAK,EAAU,SAAS,EAAE,KACrC,SAGD,GACC,GAAa,KACb,IAAc,KACd,IAAc,KACb,GAAa,IAAU,GAAa,IACpC,GAAa,IAAU,GAAa,IACpC,GAAa,IAAU,GAAa,IACpC,CACD,GAAW,EAAiB,KAAK,IAAc,EAC/C,SAGD,GAAW,KAAK,IAGjB,OAAO,ECHR,IAAM,EAA6B,OAAO,iCAAiC,EACrE,GAAyB,OAAO,6BAA6B,EAOnE,SAAS,EAA+B,CAAC,EAAkC,CAC1E,GAAI,aAAgB,QACnB,OAAO,EAGR,GAAI,SAAU,EACb,OAAO,EAAK,KAGb,OAAO,EAAK,QAGb,SAAS,EAAqB,CAAC,EAAiF,CAC/G,MAAO,EAAE,aAAgB,SAG1B,SAAS,EAAoB,CAC5B,EACA,EACA,EACA,EACa,CACb,IAAM,EAAoB,CAAC,IAAiB,CAC3C,GAAI,EAAM,kBAAkB,SAAW,EAAM,OAAO,QAAQ,CAAQ,EACnE,EAAS,CAAK,GAMhB,OAFA,EAAK,iBAAiB,EAAO,KAAM,EAAmB,EAAO,OAAO,EAE7D,IAAM,CACZ,EAAK,oBAAoB,EAAO,KAAM,EAAmB,EAAO,OAAO,GAIzE,SAAS,EAAsB,CAAC,EAAyB,EAAwB,CAChF,IAAM,EAAkB,GAAgC,CAAI,EAE5D,GAAI,CAAC,EAAgB,GACpB,EAAgB,GAA8B,IAAI,IAKnD,GAFA,EAAgB,GAA4B,IAAI,CAAI,EAEhD,EAAgB,IACnB,OAGD,IAAM,EAAuB,EAAgB,aAE7C,EAAgB,aAAe,QAA4B,CAAC,EAAkC,CAC7F,IAAM,EAAa,EAAqB,KAAK,KAAM,CAAI,EACvD,QAAW,KAAkB,EAAgB,IAA+B,CAAC,EAC5E,EAAe,EAEhB,OAAO,GAGR,EAAgB,IAA0B,GAWpC,SAAS,CAAmB,CAClC,EACA,EACA,EACa,CACb,GAAI,GAAsB,CAAI,GAAK,UAAW,GAAU,EAAO,OAAS,EAAO,QAAU,QACxF,MAAU,MAAM,iEAAiE,EAGlF,IAAM,EAAc,GAAgC,CAAI,EAClD,EAAgB,EAAS,KAAK,CAAI,EACpC,EAAqC,KACrC,EAAuC,KACvC,EAAoC,KACpC,EAAqC,KACrC,EAAW,GAET,EAAkB,IAAM,CAC7B,IAAgB,EAChB,IAAkB,EAClB,IAAe,EACf,IAAgB,EAEhB,EAAgB,KAChB,EAAkB,KAClB,EAAe,KACf,EAAgB,MAGX,EAAkB,IAAM,CAC7B,GAAI,EACH,OAGD,GAAI,WAAY,GAAU,CAAC,EAC1B,OAAO,iBAAiB,EAAO,KAAM,EAAe,EAAO,OAAO,EAClE,EAAgB,IAAM,CACrB,OAAO,oBAAoB,EAAO,KAAM,EAAe,EAAO,OAAO,GAIvE,GAAI,aAAc,GAAU,CAAC,EAC5B,SAAS,iBAAiB,EAAO,KAAM,EAAe,EAAO,OAAO,EACpE,EAAkB,IAAM,CACvB,SAAS,oBAAoB,EAAO,KAAM,EAAe,EAAO,OAAO,GAIzE,GAAI,aAAc,GAAU,QAAS,EAAQ,CAC5C,IAAM,EAAW,aAAc,EAAS,EAAO,SAAW,cAAc,GAAoB,EAAO,GAAG,MAEtG,GAAI,EAAO,QAAU,UAAY,CAAC,EACjC,EAAe,GAAqB,EAAa,EAAQ,EAAU,CAAa,EAGjF,GAAI,EAAO,QAAU,SAAW,EAAY,YAAc,CAAC,EAC1D,EAAgB,GAAqB,EAAY,WAAY,EAAQ,EAAU,CAAa,IAK/F,GAAI,aAAc,GAAU,QAAS,GACpC,GAAI,EAAO,QAAU,QACpB,GAAuB,EAAM,IAAM,CAClC,GAAI,EAAK,YACR,EAAgB,EAEjB,EAOH,GAHA,EAAK,0BAA0B,CAAe,EAC9C,EAAK,wBAAwB,CAAe,EAExC,EAAK,YACR,EAAgB,EAGjB,MAAO,IAAM,CACZ,EAAW,GACX,EAAgB,GCpLX,SAAS,EAAO,CAAC,EAA4B,CACnD,MAAO,CAAC,EAA0B,EAAW,IAAmC,CAC/E,IAAM,EAAiB,EAAW,MAMlC,OAJA,EAAkC,EAAO,CAAC,IAAY,CACrD,EAAoB,EAAS,EAAa,EAAe,KAAK,CAAO,CAAC,EACtE,EAEM,GCRF,SAAS,EAAO,CAAC,EAA4B,CACnD,OAAO,QAA2D,CACjE,EACA,EACO,CACP,EAAQ,eAAe,QAAS,EAAa,CAC5C,EAAoB,KAAM,EAAa,EAAe,KAAK,IAAI,CAAC,EAChE,GCNI,SAAS,EAAO,CAAC,EAAwB,CAU/C,SAAS,CAAS,CACjB,EACA,EACA,EACyC,CACzC,OAAO,EACN,GAAgB,CAAO,EACvB,GAAc,CAAO,EACrB,EACA,EACA,CACD,EAGD,OAAO,EC/BD,SAAS,EAAS,CAAC,EAA8B,CACvD,MAAO,CAAC,EAA2B,IAAuB,CACzD,IAAM,EAAa,OAAO,gCAAgC,WAAoB,EAE9E,EAAkC,EAAQ,CAAC,IAAY,CACtD,EAAQ,0BAA0B,IAAM,CACvC,IAAM,EAAiB,EAAgB,GAAY,KAAK,CAAO,EACzD,EAA8B,CAAC,EAErC,GAAI,MAAM,QAAQ,CAAS,EAC1B,QAAW,KAAO,EACjB,EAAS,KAAK,EAAQ,uBAAuB,EAAK,CAAa,CAAC,EAE3D,QAAI,OAAO,IAAc,SAC/B,EAAS,KAAK,EAAQ,uBAAuB,EAAW,CAAa,CAAC,EAGtE,EAAoD,GAAc,IAAM,CACxE,QAAW,KAAW,EACrB,EAAQ,GAGV,EAED,EAAQ,wBAAwB,IAAM,CACrC,IAAM,EAAW,EAAoD,GAErE,GAAI,OAAO,IAAY,WACtB,EAAQ,EACR,OAAQ,EAAoD,GAE7D,EACD,GCtCI,SAAS,EAAS,CAAC,EAA8B,CACvD,OAAO,QAAsD,CAC5D,EACA,EACO,CACP,EAAQ,eAAe,QAAS,EAAc,CAC7C,IAAM,EAAc,EAAe,KAAK,IAAI,EAQ5C,GANA,OAAO,eAAe,KAAM,EAAQ,KAAM,CACzC,MAAO,EACP,aAAc,GACd,SAAU,EACX,CAAC,EAEG,MAAM,QAAQ,CAAS,EAC1B,QAAW,KAAO,EACjB,KAAK,uBAAuB,EAAK,CAAW,EAEvC,QAAI,OAAO,IAAc,SAC/B,KAAK,uBAAuB,EAAW,CAAW,EAEnD,GCXI,SAAS,EAAS,CAAC,EAA8B,CAUvD,SAAS,CAAS,CACjB,EACA,EACA,EACyC,CACzC,OAAO,EACN,GAAkB,CAAS,EAC3B,GAAgB,CAAS,EACzB,EACA,EACA,CACD,EAGD,OAAO,ECtCR,IAAM,GAA4B,OAAO,IAAI,2CAA2C,EAWjF,SAAS,CAA8B,CAC7C,EACA,EACA,EACO,CACP,IAAM,EAAc,EAAO,YACrB,EAAc,EAAY,KAA8B,CAAC,EAE/D,GAAI,EAAY,KAAK,CAAC,IAAe,EAAW,OAAS,CAAY,EACpE,OAGD,EAAY,KAAK,CAAE,KAAM,EAAc,SAAQ,CAAC,EAChD,EAAY,IAA6B,EAGnC,SAAS,EAA0B,CAAC,EAA0C,CACpF,OAAS,EAAO,YAAoD,KAA8B,CAAC,GAAG,MAAM,ECdtG,SAAS,EAAyB,EACxC,OACA,YACA,UACA,eACA,QAC8B,CAG9B,OAFA,EAAgC,EAAM,CAAY,EAE3C,CAAC,EAA6B,IAAyB,CAC7D,IAAM,EAAe,GAAa,EAClC,EAA+B,EAAQ,EAAc,CACpD,OACA,UACA,UAAW,EACX,eACA,MACD,CAAC,EAED,IAAM,EAAc,OAAO,IAAI,8BAA8B,GAAc,EAE3E,OAAO,eAAe,EAAQ,EAAc,CAC3C,GAAG,EAA2D,CAC7D,OAAO,KAAK,IAAgB,GAE7B,GAAG,CAA2D,EAAU,CACvE,KAAK,GAAe,GAErB,aAAc,GACd,WAAY,EACb,CAAC,EAED,EAAkC,EAAQ,CAAC,IAAY,CACtD,EAAQ,0BAA0B,IAAM,CACvC,IAAM,EAAmB,EAAQ,GAC3B,EAAuB,IAAiB,OAAY,EAAmB,EAE7E,EAAQ,mBAAmB,EAAc,CACxC,OACA,UACA,UAAW,EACX,aAAc,EACd,MACD,CAAC,EACD,EACD,GC/CI,SAAS,EAAyB,EACxC,OACA,YACA,UACA,eACA,QAC8B,CAE9B,OADA,EAAgC,EAAM,CAAY,EAC3C,QAA2C,CAAC,EAAc,EAA2C,CAC3G,IAAM,EAAe,OAAO,EAAQ,IAAI,EAClC,EAAe,GAAa,EAC5B,EAAsB,OAAO,mCAAmC,eAA0B,EAwBhG,OAtBA,EAAQ,eAAe,QAAS,EAAU,CACzC,IAAM,EAAoB,KAAgD,GACpE,EAAwB,IAAiB,OAAY,EAAmB,EAI9E,EAA+B,KAAM,EAAc,CAClD,OACA,UACA,UAAW,EACX,eACA,MACD,CAAC,EACD,KAAK,mBAAmB,EAAc,CACrC,OACA,UACA,UAAW,EACX,aAAc,EACd,MACD,CAAC,EACD,EAEM,QAAS,CAAU,EAAU,CAEnC,OADC,KAA4C,GAAuB,EAC7D,ICxBH,SAAS,EAAiB,CAAC,EAAqC,CAMtE,SAAS,CAAS,CACjB,EACA,EAC0E,CAC1E,OAAO,EACN,GAAqB,CAAO,EAC5B,GAAmB,CAAO,EAC1B,EACA,CACD,EAGD,OAAO,ECpBR,SAAS,EAAuB,CAAC,EAAsD,CACtF,MAAO,EAAE,aAAkB,SAG5B,SAAS,EAAiB,CAAC,EAAkC,CAC5D,MAAO,eAAgB,EAAS,EAAsD,YAAc,KAAQ,KAUtG,SAAS,EAAgB,CAAC,EAAkC,CAClE,OAAO,aAAkB,QAAU,EAAS,EAAO,KAGpD,SAAS,EAAa,CAAC,EAAe,EAAoB,QAAsB,CAC/E,IAAM,EAAa,GAAkB,CAAI,EAEzC,GAAI,IAAU,SACb,OAAO,EAAa,CAAC,CAAU,EAAI,CAAC,EAGrC,GAAI,IAAU,OACb,OAAO,EAAa,CAAC,EAAM,CAAU,EAAI,CAAC,CAAI,EAG/C,MAAO,CAAC,CAAI,EASN,SAAS,CAAoD,CACnE,EACA,EACiB,CACjB,GAAI,GAAwB,CAAM,GAAK,EAAQ,OAAS,EAAQ,QAAU,QACzE,MAAU,MAAM,yDAAyD,EAG1E,IAAM,EAAO,GAAiB,CAAM,EAC9B,EAAW,aAAc,EAAU,EAAQ,SAAW,cAAc,EAAQ,QAC9E,EAAmB,KAEjB,EAAe,IAAgB,CACpC,IAAM,EAAQ,GAAc,EAAM,EAAQ,KAAK,EAE/C,GAAI,EAAQ,IACX,OAAO,EAAM,QAAQ,CAAC,IAAS,MAAM,KAAK,EAAK,iBAAiB,CAAQ,CAAC,CAAC,EAG3E,QAAW,KAAQ,EAAO,CACzB,IAAM,EAAQ,EAAK,cAAc,CAAQ,EACzC,GAAI,EACH,OAAO,EAIT,OAAO,MAGR,MAAO,IACF,MAAK,EAAa,CACrB,GAAI,EAAQ,MAAO,CAClB,GAAI,IAAW,MAAS,EAAQ,KAAO,MAAM,QAAQ,CAAM,GAAK,CAAC,EAAO,OACvE,EAAS,EAAa,EAEvB,OAAO,EAER,OAAO,EAAa,EAEtB,EC3EM,SAAS,EAAoC,EACnD,MAAO,EAAiB,MACrB,GACoF,CACvF,MAAO,CAAC,EAA+B,IAAiC,CACvE,EAAkC,EAAO,CAAC,IAAY,CACrD,EAAQ,0BAA0B,IAAM,CACvC,IAAM,EAAW,EAAe,EAAS,CACxC,MAAO,KACJ,CACJ,CAAC,EAED,OAAO,eAAe,EAAS,EAAa,CAC3C,GAAG,EAAG,CACL,OAAO,EAAS,OAEjB,WAAY,GACZ,aAAc,EACf,CAAC,EACD,EACD,GC7CI,SAAS,EAAK,CAAC,EAAsB,CAC3C,OAAO,QAAmE,CACzE,EACA,EACC,CAED,IAAM,EAAe,OAAO,EAAQ,IAAI,EAExC,EAAQ,eAAe,QAAS,EAAU,CACzC,IAAM,EAAW,EAAe,KAAM,CAAO,EAE7C,OAAO,eAAe,KAAM,EAAc,CACzC,GAAG,EAAG,CACL,OAAO,EAAS,OAEjB,WAAY,GACZ,aAAc,EACf,CAAC,EACD,GCHI,SAAS,EAAoC,CAAC,EAAsB,CAM1E,SAAS,CAAS,CACjB,EACA,EACO,CACP,OAAO,EAAqB,GAAc,CAAO,EAAG,GAAe,CAAO,EAAG,EAAe,CAAa,EAG1G,OAAO,ECXD,SAAS,CAAsE,CACrF,EACA,EAA2B,CAAC,EACP,CACrB,IAAI,EAAmB,KACnB,EAEE,EAAe,IAAgB,CACpC,GAAI,EAAQ,IACX,OAAO,EAAK,gBAAgB,EAAQ,IAAI,EAEzC,OAAQ,EAAK,gBAAgB,EAAQ,IAAI,EAAE,IAAM,MAGlD,MAAO,IACF,MAAK,EAAa,CACrB,GAAI,EAAQ,QAAU,GACrB,OAAO,EAAa,EAGrB,IAAM,EAAkB,EAAuD,uBAAyB,EAExG,GAAI,IAAkB,EACrB,EAAS,EAAa,EACtB,EAAgB,EAGjB,OAAO,EAET,ECtCM,SAAS,EAA+C,CAC9D,EAA2B,CAAC,EACqC,CACjE,MAAO,CAAC,EAAuB,IAAiC,CAC/D,IAAM,EAA0B,CAAC,IAA4B,CAE5D,OAAO,OADY,OAAO,yBAAyB,EAAU,CAAW,GAC9C,MAAQ,YAG7B,EAA0B,CAAC,IAA4B,CAC5D,GAAI,EAAwB,CAAQ,EACnC,OAGD,IAAM,EAAW,EAAmB,EAAU,CAAO,EAErD,OAAO,eAAe,EAAU,EAAa,CAC5C,GAAG,EAAG,CACL,OAAO,EAAS,OAEjB,WAAY,GACZ,aAAc,EACf,CAAC,GAGI,EAAqB,IAAI,QAE/B,OAAO,eAAe,EAAO,EAAa,CACzC,GAAG,EAAsB,CACxB,IAAI,EAAW,EAAmB,IAAI,IAAI,EAC1C,GAAI,CAAC,EACJ,EAAW,EAAmB,KAAM,CAAO,EAC3C,EAAmB,IAAI,KAAM,CAAQ,EAEtC,OAAO,EAAS,OAEjB,WAAY,GACZ,aAAc,EACf,CAAC,EAED,EAAkC,EAAO,CAAC,IAAY,CACrD,GAA+B,EAAS,IAAM,CAC7C,EAAwB,CAAwB,EAChD,EACD,EAAQ,0BAA0B,IAAM,CACvC,EAAwB,CAAwB,EAChD,EACD,GClDI,SAAS,EAAS,CAAC,EAA2B,CAAC,EAAG,CACxD,OAAO,QAAwE,CAC9E,EACA,EACC,CAED,IAAM,EAAe,OAAO,EAAQ,IAAI,EAExC,EAAQ,eAAe,QAAS,EAAU,CACzC,IAAM,EAAW,EAAmB,KAAM,CAAO,EAEjD,OAAO,eAAe,KAAM,EAAc,CACzC,GAAG,EAAG,CACL,OAAO,EAAS,OAEjB,WAAY,GACZ,aAAc,EACf,CAAC,EACD,GCJI,SAAS,EAA+C,CAAC,EAA2B,CAAC,EAA0B,CAGrH,SAAS,CAAS,CACjB,EACA,EACO,CACP,OAAO,EACN,GAAkB,CAAO,EACzB,GAAmB,CAAO,EAC1B,EACA,CACD,EAGD,OAAO,EClCD,SAAS,EAA8B,CAAC,EAAqE,CACnH,OAAO,GAAyB,CAAE,KAAM,YAAa,CAAQ,CAAC,EAIxD,SAAS,EAAyB,CAAC,EAAuB,CAChE,OAAO,GAAoB,CAAK,ECTjC,+BAAS,uBACT,gBAAS,2BAmBF,SAAS,CAA2B,CAAC,EAAgD,CAC3F,OACC,OAAO,IAAU,UACjB,IAAU,MACV,OAAQ,EAAgC,MAAQ,YAChD,OAAQ,EAAgC,MAAQ,YAChD,OAAQ,EAAgC,YAAc,YACtD,OAAQ,EAAgC,SAAW,WAQ9C,MAAM,CAAoF,CAC/E,KACA,QACA,aACA,SACA,OACT,aACA,wBAA0B,GAC1B,kBAER,WAAW,CAAC,EAAmC,CAC9C,KAAK,KAAO,EAAQ,KACpB,KAAK,QAAU,EAAQ,QACvB,KAAK,aAAe,EAAQ,aAC5B,KAAK,SAAW,EAAQ,SACxB,KAAK,OAAS,EAAQ,QAAU,GAAM,KAAK,oBAAoB,EAAQ,YAAqB,CAAC,EAC7F,KAAK,aAAe,KAAK,OAAO,IAAI,EAG9B,GAAG,EAAU,CACnB,OAAO,KAAK,OAAO,IAAI,EAGjB,GAAG,CAAC,EAAwB,CAClC,KAAK,OAAO,IAAI,CAAS,EAGnB,SAAS,CAAC,EAA4C,CAC5D,OAAO,KAAK,OAAO,UAAU,CAAM,EAG7B,MAAM,CAAC,EAAwC,CACrD,KAAK,IAAI,EAAQ,KAAK,IAAI,CAAC,CAAC,EAGtB,eAAe,EAAS,CAC9B,GAAI,KAAK,kBACR,OAGD,IAAM,EAAY,KAAK,OAAO,IAAI,EAElC,GAAI,CAAC,OAAO,GAAG,KAAK,aAAc,CAAS,EAAG,CAC7C,IAAM,EAAgB,KAAK,aAC3B,KAAK,aAAe,EACpB,KAAK,KAAK,aAAa,KAAK,SAAU,EAAe,CAAS,EAG/D,KAAK,kBAAoB,KAAK,OAAO,UAAU,CAAC,IAAU,CACzD,KAAK,mBAAmB,CAAK,EAC7B,EAGK,oBAAoB,EAAS,CACnC,KAAK,oBAAoB,EACzB,KAAK,kBAAoB,OAGnB,eAAe,EAAS,CAC9B,GAAI,CAAC,KAAK,SAAW,KAAK,wBACzB,OAGD,KAAK,wBAA0B,GAE/B,IAAM,EAAgB,KAAK,OAAO,IAAI,EAChC,EAAgB,KAAK,oBAAoB,CAAa,EAE5D,GAAI,CAAC,OAAO,GAAG,EAAe,CAAa,EAC1C,KAAK,OAAO,IAAI,CAAa,EAC7B,KAAK,aAAe,KAAK,OAAO,IAAI,EACpC,KAAK,KAAK,aAAa,KAAK,SAAU,EAAe,KAAK,YAAY,EAIjE,qBAAqB,EAA8B,CACzD,IAAM,EAAY,KAAK,yBAAyB,EAEhD,GAAI,CAAC,EACJ,OAGD,OAAO,GAAqB,CAAS,EAG/B,wBAAwB,EAAuB,CACrD,IAAM,EAAkB,KAAK,wBAAwB,EAErD,GAAI,CAAC,EACJ,OAGD,OAAO,GAA+B,CACrC,aAAc,KAAK,aACnB,iBACD,CAAC,EAGM,0BAA0B,EAAmB,CACpD,GAAI,EAAE,KAAK,gBAAgB,SAC1B,OAAO,KAGR,OAAO,GAAoB,KAAK,KAAM,SAAU,KAAK,YAAY,EAG1D,QAAQ,CAAC,EAAkD,CAClE,OAAO,OAAO,IAAU,UAAY,CAAC,MAAM,QAAQ,CAAK,GAAK,IAAU,KAGhE,mBAAmB,CAAC,EAA4B,CACvD,GAAI,CAAC,KAAK,QACT,OAAO,EAGR,IAAM,EAAyB,KAAK,2BAA2B,EAE/D,GAAI,CAAC,EACJ,OAAO,EAGR,IAAM,EAAuB,GAAsB,EAAwB,CAAY,EAEvF,GAAI,KAAK,UAAY,QAAU,KAAK,SAAS,CAAoB,GAAK,KAAK,SAAS,CAAY,EAC/F,MAAO,IACH,KACA,CACJ,EAGD,OAAO,EAGA,uBAAuB,EAAuB,CACrD,GAAI,CAAC,KAAK,QACT,OAGD,IAAM,EAAkB,KAAK,UAAU,KAAK,IAAI,CAAC,EAEjD,GAAI,OAAO,IAAoB,SAC9B,OAGD,OAAO,GAA0B,CAAe,EAGzC,kBAAkB,CAAC,EAAwB,CAClD,IAAM,EAAgB,KAAK,aAG3B,GAFA,KAAK,aAAe,EAEhB,CAAC,OAAO,GAAG,EAAe,CAAS,EACtC,KAAK,KAAK,aAAa,KAAK,SAAU,EAAe,CAAS,EAGjE,CAEO,SAAS,CAAuB,CAAC,EAAsD,CAC7F,OAAO,IAAI,EAAW,CAAO,ECnLvB,SAAS,EAAuB,CAAC,EAAyC,CAAC,EAAG,CACpF,MAAO,CAAC,EAA0B,IAAyB,CAC1D,IAAM,EAAmB,CAAC,IAAmD,CAC5E,IAAM,EAAe,EAAQ,GAE7B,GAAI,aAAwB,EAC3B,OAAO,EAGR,IAAM,EACL,OAAO,EAAQ,SAAW,WACvB,EAAQ,OAAO,CAAO,EACrB,EAAQ,SAAW,EAAqB,CAAY,EAAI,EAAe,QAEtE,EACL,EAAQ,MAEP,EACC,gCAAgC,GAClC,GAEK,EACL,IAAmB,OAChB,EAAQ,QACN,IAAiB,OAAY,EAAQ,QAAU,EACrD,EAAQ,sBAAsB,EAAc,CAAI,EAEhD,IAAM,EAAa,EAAiB,CACnC,KAAM,EACN,QAAS,EAAQ,QACjB,aAAc,EACd,aAAc,EACd,SAAU,EACV,OAAQ,CACT,CAAC,EAUD,GARA,EAAQ,0BAA0B,IAAM,CACvC,EAAW,gBAAgB,EAC3B,EAAW,gBAAgB,EAC3B,EACD,EAAQ,wBAAwB,IAAM,CACrC,EAAW,qBAAqB,EAChC,EAEG,EAAQ,QACX,EAAQ,yBAAyB,EAAc,CAAU,EAI1D,OADC,EAA+C,GAAgB,EACzD,GAGR,GAA0C,EAAQ,CAAC,IAAY,CAC9D,IAAM,EAAa,EAAiB,CAAO,EAC3C,EAAQ,0BAA0B,IAAM,CACvC,GAAI,EAAG,EAAgB,aAAyB,GAC9C,EAA+C,GAAgB,EAEjE,EACD,GClCI,SAAS,EAAuB,CAAC,EAAyC,CAAC,EAAG,CACpF,OAAO,QAA4C,CAAC,EAAc,EAAiD,CAClH,IAAM,EAAe,OAAO,EAAQ,IAAI,EAExC,OAAO,QAAS,CAAU,EAA6C,CACtE,IAAM,EACL,OAAO,EAAQ,SAAW,WACvB,EAAQ,OAAO,IAAI,EAClB,EAAQ,SAAW,EAA4B,CAAY,EAAI,EAAe,QAC7E,EACL,IAAmB,OAChB,EAAQ,QACN,IAAiB,OAAY,EAAQ,QAAU,EAC/C,EACL,EAAQ,MAEP,KACC,gCAAgC,GAClC,GAED,KAAK,sBAAsB,EAAc,CAAI,EAE7C,IAAM,EAAa,EAAiB,CACnC,KAAM,KACN,QAAS,EAAQ,QACjB,aAAc,EACd,aAAc,EACd,SAAU,EACV,OAAQ,CACT,CAAC,EAUD,GARA,KAAK,0BAA0B,IAAM,CACpC,EAAW,gBAAgB,EAC3B,EAAW,gBAAgB,EAC3B,EACD,KAAK,wBAAwB,IAAM,CAClC,EAAW,qBAAqB,EAChC,EAEG,EAAQ,QACX,KAAK,yBAAyB,EAAc,CAAU,EAGvD,OAAO,IC1CH,SAAS,EAAuB,CACtC,EACA,EAIO,CACP,GAAI,OAAO,EAAkB,IAAa,CACzC,GAAI,OAAO,IAAkB,SAAU,CACtC,GAAI,IAAmB,OACtB,MAAU,UAAU,yDAAyD,EAG9E,OAAO,GAAsB,EAAE,OAAW,CAAa,EAGxD,GAAI,IAAmB,OACtB,MAAU,UAAU,iDAAiD,EAGtE,OAAO,GAAoB,EAAE,EAA6D,CAAa,EAGxG,IAAM,EAAW,GAAkB,CAAC,EAOpC,SAAS,CAAS,CACjB,EACA,EAC0G,CAC1G,GAAI,OAAO,IAAkB,SAAU,CACtC,GAAI,IAAkB,OACrB,MAAU,UAAU,yDAAyD,EAG9E,OAAO,GAAsB,CAAO,EAAE,OAAW,CAAa,EAG/D,GAAI,IAAkB,OACrB,MAAU,UAAU,iDAAiD,EAGtE,OAAO,GAAoB,CAAO,EAAE,EAA4D,CAAa,EAG9G,OAAO,EC9ED,SAAS,EAAa,CAAC,EAA0B,EAAqB,CAC5E,EAAkC,EAAQ,CAAC,IAAY,CACtD,EAAQ,0BAA0B,IAAM,CACvC,EAAQ,oBAAoB,EAAa,EAAQ,GAAsC,CACtF,KAEE,EACC,gCAAgC,GAAK,EACzC,CAAC,EACD,EACD,ECnBK,SAAS,EAA4C,CAAC,EAAc,EAA2C,CACrH,IAAM,EAAqB,OAAO,KAAK,OAAO,EAAQ,IAAI,UAAU,EAE9D,EAAc,OAAO,EAAQ,IAAI,EA8BvC,OA5BA,EAAQ,eAAe,QAAS,EAAU,CACzC,KAAK,sBACJ,EACC,KAAsE,gCAAgC,GACtG,EACF,EACA,KAAK,iCACJ,EACA,IAAO,KAAiD,EACzD,EAEA,OAAO,eAAe,KAAM,EAAQ,KAAM,CACzC,GAAG,EAAG,CAEL,OADC,KAA0B,kBAAkB,CAAW,EAChD,KAAiD,IAE1D,GAAG,CAAC,EAAmB,CACtB,IAAM,EAAY,KAAiD,GACnE,GAAI,IAAa,EACf,KAAiD,GAAsB,EACvE,KAA0B,aAAa,EAAa,EAAU,CAAQ,GAGzE,WAAY,GACZ,aAAc,EACf,CAAC,EACD,EAEM,QAAS,CAAU,EAAU,CAEnC,OADC,KAAa,GAAsB,EAC7B,GClBF,SAAS,EAAK,CACpB,EACA,EAC+D,CAC/D,OAAO,EAAqB,GAAuB,GAAqB,EAAe,CAAa",
|
|
75
|
+
"debugId": "3820119D5B87F3DB64756E2164756E21",
|
|
76
76
|
"names": []
|
|
77
77
|
}
|