@ecopages/radiant 0.3.0-beta.1 → 0.3.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/README.md +11 -7
  2. package/client/app-bootstrap.js +2 -2
  3. package/client/app-bootstrap.js.map +2 -2
  4. package/client/hydrator.js +2 -2
  5. package/client/hydrator.js.map +2 -2
  6. package/client/install-hydrator.js +2 -2
  7. package/client/install-hydrator.js.map +2 -2
  8. package/context/context-consumer-bootstrap.js +2 -2
  9. package/context/context-consumer-bootstrap.js.map +4 -4
  10. package/context/context-consumer-runtime.js +2 -2
  11. package/context/context-consumer-runtime.js.map +4 -4
  12. package/context/context-host.js +2 -2
  13. package/context/context-host.js.map +2 -2
  14. package/context/context-provider.js +2 -2
  15. package/context/context-provider.js.map +2 -2
  16. package/context/context-ssr-bridge.d.ts +1 -1
  17. package/context/context-ssr-bridge.js +2 -2
  18. package/context/context-ssr-bridge.js.map +3 -3
  19. package/context/create-context.js +2 -2
  20. package/context/create-context.js.map +2 -2
  21. package/context/decorators/consume-context.js +2 -2
  22. package/context/decorators/consume-context.js.map +4 -4
  23. package/context/decorators/context-selection-delivery.js +2 -2
  24. package/context/decorators/context-selection-delivery.js.map +2 -2
  25. package/context/decorators/context-selector.js +2 -2
  26. package/context/decorators/context-selector.js.map +4 -4
  27. package/context/decorators/legacy/consume-context.js +2 -2
  28. package/context/decorators/legacy/consume-context.js.map +4 -4
  29. package/context/decorators/legacy/context-selector-field.js +2 -2
  30. package/context/decorators/legacy/context-selector-field.js.map +4 -4
  31. package/context/decorators/legacy/context-selector.js +2 -2
  32. package/context/decorators/legacy/context-selector.js.map +4 -4
  33. package/context/decorators/legacy/provide-context.js +2 -2
  34. package/context/decorators/legacy/provide-context.js.map +2 -2
  35. package/context/decorators/on-context-update.js +2 -2
  36. package/context/decorators/on-context-update.js.map +4 -4
  37. package/context/decorators/provide-context.js +2 -2
  38. package/context/decorators/provide-context.js.map +2 -2
  39. package/context/decorators/standard/consume-context.js +2 -2
  40. package/context/decorators/standard/consume-context.js.map +4 -4
  41. package/context/decorators/standard/context-selector-field.js +2 -2
  42. package/context/decorators/standard/context-selector-field.js.map +4 -4
  43. package/context/decorators/standard/context-selector.js +2 -2
  44. package/context/decorators/standard/context-selector.js.map +4 -4
  45. package/context/decorators/standard/provide-context.js +2 -2
  46. package/context/decorators/standard/provide-context.js.map +2 -2
  47. package/context/decorators/standard-legacy-dispatch.js +2 -2
  48. package/context/decorators/standard-legacy-dispatch.js.map +2 -2
  49. package/context/events.js +2 -2
  50. package/context/events.js.map +2 -2
  51. package/context/hydration-script.js +2 -2
  52. package/context/hydration-script.js.map +2 -2
  53. package/context/index.js +2 -2
  54. package/context/index.js.map +4 -4
  55. package/controller-registry.js +2 -2
  56. package/controller-registry.js.map +2 -2
  57. package/core/controller-metadata.js +2 -2
  58. package/core/controller-metadata.js.map +2 -2
  59. package/core/custom-element-metadata.js +2 -2
  60. package/core/custom-element-metadata.js.map +2 -2
  61. package/core/event-subscription-registry.js +2 -2
  62. package/core/event-subscription-registry.js.map +2 -2
  63. package/core/host-ssr-registry.js +2 -2
  64. package/core/host-ssr-registry.js.map +2 -2
  65. package/core/hydration-capable-host.js +2 -2
  66. package/core/hydration-capable-host.js.map +2 -2
  67. package/core/hydration-codec.js +2 -2
  68. package/core/hydration-codec.js.map +2 -2
  69. package/core/radiant-controller.js +2 -2
  70. package/core/radiant-controller.js.map +2 -2
  71. package/core/radiant-element-brand.d.ts +2 -0
  72. package/core/radiant-element-brand.js +3 -0
  73. package/core/radiant-element-brand.js.map +10 -0
  74. package/core/radiant-element-ssr-host-source.d.ts +32 -0
  75. package/core/radiant-element-ssr-host-source.js +3 -0
  76. package/core/radiant-element-ssr-host-source.js.map +11 -0
  77. package/core/radiant-element-ssr-host.d.ts +5 -6
  78. package/core/radiant-element-ssr-host.js +1 -2
  79. package/core/radiant-element-ssr-host.js.map +3 -4
  80. package/core/radiant-element-ssr-registry.d.ts +24 -11
  81. package/core/radiant-element-ssr-registry.js +2 -2
  82. package/core/radiant-element-ssr-registry.js.map +3 -3
  83. package/core/radiant-element.d.ts +5 -3
  84. package/core/radiant-element.js +2 -2
  85. package/core/radiant-element.js.map +6 -5
  86. package/core/radiant-hydrator-state.js +2 -2
  87. package/core/radiant-hydrator-state.js.map +2 -2
  88. package/core/reactive-binding-adapter.js +2 -2
  89. package/core/reactive-binding-adapter.js.map +2 -2
  90. package/core/reactive-host.js +2 -2
  91. package/core/reactive-host.js.map +2 -2
  92. package/core/reactive-jsx-value.js +2 -2
  93. package/core/reactive-jsx-value.js.map +2 -2
  94. package/core/reactive-prop-core.js +2 -2
  95. package/core/reactive-prop-core.js.map +2 -2
  96. package/core/reactive-prop-metadata.js +2 -2
  97. package/core/reactive-prop-metadata.js.map +2 -2
  98. package/core/reactive-property-state.js +2 -2
  99. package/core/reactive-property-state.js.map +2 -2
  100. package/core/reactivity-adapter.js +2 -2
  101. package/core/reactivity-adapter.js.map +2 -2
  102. package/core/reactivity-runtime.js +2 -2
  103. package/core/reactivity-runtime.js.map +2 -2
  104. package/core/reactivity-signals.js +2 -2
  105. package/core/reactivity-signals.js.map +2 -2
  106. package/core/render-runtime.js +2 -2
  107. package/core/render-runtime.js.map +2 -2
  108. package/core/render-scheduler.js +2 -2
  109. package/core/render-scheduler.js.map +2 -2
  110. package/core/slot-projection-runtime.js +2 -2
  111. package/core/slot-projection-runtime.js.map +2 -2
  112. package/core/ssr-preparation.js +2 -2
  113. package/core/ssr-preparation.js.map +2 -2
  114. package/decorators/attr.js +2 -2
  115. package/decorators/attr.js.map +2 -2
  116. package/decorators/bound.js +2 -2
  117. package/decorators/bound.js.map +2 -2
  118. package/decorators/bridge.js +2 -2
  119. package/decorators/bridge.js.map +2 -2
  120. package/decorators/controller.js +2 -2
  121. package/decorators/controller.js.map +2 -2
  122. package/decorators/custom-element.js +2 -2
  123. package/decorators/custom-element.js.map +2 -2
  124. package/decorators/debounce.js +2 -2
  125. package/decorators/debounce.js.map +2 -2
  126. package/decorators/event.js +2 -2
  127. package/decorators/event.js.map +2 -2
  128. package/decorators/legacy/attr.js +2 -2
  129. package/decorators/legacy/attr.js.map +2 -2
  130. package/decorators/legacy/bound.js +2 -2
  131. package/decorators/legacy/bound.js.map +2 -2
  132. package/decorators/legacy/custom-element.js +2 -2
  133. package/decorators/legacy/custom-element.js.map +2 -2
  134. package/decorators/legacy/debounce.js +2 -2
  135. package/decorators/legacy/debounce.js.map +2 -2
  136. package/decorators/legacy/event.js +2 -2
  137. package/decorators/legacy/event.js.map +2 -2
  138. package/decorators/legacy/host-readiness.js +2 -2
  139. package/decorators/legacy/host-readiness.js.map +2 -2
  140. package/decorators/legacy/instance-initializers.js +2 -2
  141. package/decorators/legacy/instance-initializers.js.map +2 -2
  142. package/decorators/legacy/member-bootstrap.js +2 -2
  143. package/decorators/legacy/member-bootstrap.js.map +2 -2
  144. package/decorators/legacy/on-event.js +2 -2
  145. package/decorators/legacy/on-event.js.map +2 -2
  146. package/decorators/legacy/on-updated.js +2 -2
  147. package/decorators/legacy/on-updated.js.map +2 -2
  148. package/decorators/legacy/query-slot.js +2 -2
  149. package/decorators/legacy/query-slot.js.map +2 -2
  150. package/decorators/legacy/query.js +2 -2
  151. package/decorators/legacy/query.js.map +2 -2
  152. package/decorators/legacy/reactive-field.js +2 -2
  153. package/decorators/legacy/reactive-field.js.map +2 -2
  154. package/decorators/legacy/reactive-prop.js +2 -2
  155. package/decorators/legacy/reactive-prop.js.map +2 -2
  156. package/decorators/legacy/signal.js +2 -2
  157. package/decorators/legacy/signal.js.map +2 -2
  158. package/decorators/on-event.js +2 -2
  159. package/decorators/on-event.js.map +2 -2
  160. package/decorators/on-updated.js +2 -2
  161. package/decorators/on-updated.js.map +2 -2
  162. package/decorators/prop.js +2 -2
  163. package/decorators/prop.js.map +2 -2
  164. package/decorators/query-slot.js +2 -2
  165. package/decorators/query-slot.js.map +2 -2
  166. package/decorators/query.js +2 -2
  167. package/decorators/query.js.map +2 -2
  168. package/decorators/shared/auto-bind.js +2 -2
  169. package/decorators/shared/auto-bind.js.map +2 -2
  170. package/decorators/shared/reactive-attr.js +2 -2
  171. package/decorators/shared/reactive-attr.js.map +2 -2
  172. package/decorators/signal.js +2 -2
  173. package/decorators/signal.js.map +2 -2
  174. package/decorators/standard/attr.js +2 -2
  175. package/decorators/standard/attr.js.map +2 -2
  176. package/decorators/standard/bound.js +2 -2
  177. package/decorators/standard/bound.js.map +2 -2
  178. package/decorators/standard/custom-element.js +2 -2
  179. package/decorators/standard/custom-element.js.map +2 -2
  180. package/decorators/standard/debounce.js +2 -2
  181. package/decorators/standard/debounce.js.map +2 -2
  182. package/decorators/standard/event.js +2 -2
  183. package/decorators/standard/event.js.map +2 -2
  184. package/decorators/standard/on-event.js +2 -2
  185. package/decorators/standard/on-event.js.map +2 -2
  186. package/decorators/standard/on-updated.js +2 -2
  187. package/decorators/standard/on-updated.js.map +2 -2
  188. package/decorators/standard/query-slot.js +2 -2
  189. package/decorators/standard/query-slot.js.map +2 -2
  190. package/decorators/standard/query.js +2 -2
  191. package/decorators/standard/query.js.map +2 -2
  192. package/decorators/standard/reactive-field.js +2 -2
  193. package/decorators/standard/reactive-field.js.map +2 -2
  194. package/decorators/standard/reactive-prop.js +2 -2
  195. package/decorators/standard/reactive-prop.js.map +2 -2
  196. package/decorators/standard/signal.js +2 -2
  197. package/decorators/standard/signal.js.map +2 -2
  198. package/decorators/state.js +2 -2
  199. package/decorators/state.js.map +2 -2
  200. package/helpers/create-event-listener.js +2 -2
  201. package/helpers/create-event-listener.js.map +2 -2
  202. package/helpers/create-event.js +2 -2
  203. package/helpers/create-event.js.map +2 -2
  204. package/helpers/create-query-slot.js +2 -2
  205. package/helpers/create-query-slot.js.map +2 -2
  206. package/helpers/create-query.js +2 -2
  207. package/helpers/create-query.js.map +2 -2
  208. package/helpers/debounce.js +2 -2
  209. package/helpers/debounce.js.map +2 -2
  210. package/helpers/index.js +2 -2
  211. package/helpers/index.js.map +2 -2
  212. package/index.js +2 -2
  213. package/index.js.map +6 -5
  214. package/package.json +13 -3
  215. package/server/assert-light-dom-ssr.d.ts +10 -0
  216. package/server/assert-light-dom-ssr.js +3 -0
  217. package/server/assert-light-dom-ssr.js.map +10 -0
  218. package/server/context-ssr.d.ts +8 -19
  219. package/server/context-ssr.js +2 -2
  220. package/server/context-ssr.js.map +5 -5
  221. package/server/host-attribute-serialization.js +2 -2
  222. package/server/host-attribute-serialization.js.map +4 -4
  223. package/server/host-script-composition.js +2 -2
  224. package/server/host-script-composition.js.map +2 -2
  225. package/server/html-parser.js +2 -2
  226. package/server/html-parser.js.map +2 -2
  227. package/server/install-light-dom-shim.d.ts +2 -1
  228. package/server/install-light-dom-shim.js +2 -2
  229. package/server/install-light-dom-shim.js.map +9 -8
  230. package/server/install-ssr-runtime.d.ts +8 -0
  231. package/server/install-ssr-runtime.js +3 -0
  232. package/server/install-ssr-runtime.js.map +21 -0
  233. package/server/install-ssr-scope-adapters.d.ts +1 -0
  234. package/server/install-ssr-scope-adapters.js +3 -0
  235. package/server/install-ssr-scope-adapters.js.map +11 -0
  236. package/server/light-dom-shim.js +2 -2
  237. package/server/light-dom-shim.js.map +8 -7
  238. package/server/minimal-dom/dataset.d.ts +2 -0
  239. package/server/minimal-dom/dataset.js +3 -0
  240. package/server/minimal-dom/dataset.js.map +10 -0
  241. package/server/minimal-dom/document.js +2 -2
  242. package/server/minimal-dom/document.js.map +5 -6
  243. package/server/minimal-dom/html.d.ts +1 -2
  244. package/server/minimal-dom/html.js +2 -2
  245. package/server/minimal-dom/html.js.map +6 -5
  246. package/server/minimal-dom/install.d.ts +1 -0
  247. package/server/minimal-dom/install.js +2 -2
  248. package/server/minimal-dom/install.js.map +8 -7
  249. package/server/minimal-dom/nodes.d.ts +9 -0
  250. package/server/minimal-dom/nodes.js +3 -0
  251. package/server/minimal-dom/nodes.js.map +12 -0
  252. package/server/project-root.js +2 -2
  253. package/server/project-root.js.map +4 -5
  254. package/server/radiant-element-ssr-bridge.d.ts +9 -9
  255. package/server/radiant-element-ssr-bridge.js +2 -2
  256. package/server/radiant-element-ssr-bridge.js.map +27 -14
  257. package/server/radiant-element-ssr-extractor.d.ts +5 -1
  258. package/server/radiant-element-ssr-extractor.js +2 -2
  259. package/server/radiant-element-ssr-extractor.js.map +6 -5
  260. package/server/radiant-element-ssr-service.d.ts +4 -1
  261. package/server/radiant-element-ssr-service.js +2 -2
  262. package/server/radiant-element-ssr-service.js.map +15 -12
  263. package/server/radiant-element-ssr.d.ts +1 -1
  264. package/server/radiant-element-ssr.js +2 -2
  265. package/server/radiant-element-ssr.js.map +27 -14
  266. package/server/render-component.d.ts +3 -5
  267. package/server/render-component.js +2 -2
  268. package/server/render-component.js.map +27 -20
  269. package/server/render-controller.d.ts +1 -0
  270. package/server/render-controller.js +2 -2
  271. package/server/render-controller.js.map +30 -23
  272. package/server/render-fragment.js +2 -2
  273. package/server/render-fragment.js.map +2 -2
  274. package/server/slot-projection-html.js +2 -2
  275. package/server/slot-projection-html.js.map +5 -6
  276. package/signals/host-resource.js +2 -2
  277. package/signals/host-resource.js.map +2 -2
  278. package/signals/host-signal.js +2 -2
  279. package/signals/host-signal.js.map +2 -2
  280. package/signals/hydration-script.js +2 -2
  281. package/signals/hydration-script.js.map +2 -2
  282. package/tools/escape-css-identifier.js +2 -2
  283. package/tools/escape-css-identifier.js.map +2 -2
  284. package/tools/escape-script-json.js +2 -2
  285. package/tools/escape-script-json.js.map +2 -2
  286. package/tools/event-emitter.js +2 -2
  287. package/tools/event-emitter.js.map +2 -2
  288. package/tools/index.js +2 -2
  289. package/tools/index.js.map +2 -2
  290. package/tools/render-jsx-template.js +2 -2
  291. package/tools/render-jsx-template.js.map +2 -2
  292. package/types.js +2 -2
  293. package/types.js.map +2 -2
  294. package/utils/attribute-utils.js +2 -2
  295. package/utils/attribute-utils.js.map +2 -2
  296. package/utils/escape-html-attribute.js +2 -2
  297. package/utils/escape-html-attribute.js.map +2 -2
  298. package/utils/index.js +2 -2
  299. package/utils/index.js.map +2 -2
  300. package/server/internal-radiant-host.d.ts +0 -2
  301. package/server/internal-radiant-host.js +0 -3
  302. package/server/internal-radiant-host.js.map +0 -9
@@ -1,3 +1,3 @@
1
- var{defineProperty:$,getOwnPropertyNames:m,getOwnPropertyDescriptor:g}=Object,c=Object.prototype.hasOwnProperty;function d(q){return this[q]}var Fq=(q)=>{var E=(O??=new WeakMap).get(q),G;if(E)return E;if(E=$({},"__esModule",{value:!0}),q&&typeof q==="object"||typeof q==="function"){for(var M of m(q))if(!c.call(E,M))$(E,M,{get:d.bind(q,M),enumerable:!(G=g(q,M))||G.enumerable})}return O.set(q,E),E},O;var y=(q)=>q;function u(q,E){this[q]=y.bind(null,E)}var Wq=(q,E)=>{for(var G in E)$(q,G,{get:E[G],enumerable:!0,configurable:!0,set:u.bind(E,G)})};var Dq=(q,E)=>()=>(q&&(E=q(q=0)),E);var Hq=((q)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(q,{get:(E,G)=>(typeof require<"u"?require:E)[G]}):q)(function(q){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+q+'" is not supported')});class U{contextProviders=new Map;hydrationBindings=new Map;registerContextProvider(q,E){this.contextProviders.set(q,E),this.hydrationBindings.set(q,E)}registerHydrationBinding(q,E){this.hydrationBindings.set(q,E)}getContextProviders(){return[...this.contextProviders.values()]}getHydrationBindings(){return[...this.hydrationBindings.values()]}}var B=Symbol.for("@ecopages/radiant.legacy-instance-initializers"),J=Symbol.for("@ecopages/radiant.legacy-post-construction-initializers"),s=Symbol.for("@ecopages/radiant.legacy-executed-post-construction-initializers");function Jq(q,E){L(q,B,E)}function Kq(q,E){L(q,J,E)}function K(q){o(q,B)}function X(q,E){let G=q;l(q,E,G[s]??=new Set)}function L(q,E,G){let M=q,Q=Object.prototype.hasOwnProperty.call(M,E)?M[E]:void 0;if(Array.isArray(Q)){Q.push(G);return}Object.defineProperty(M,E,{value:[G]})}function o(q,E){n(q,(G)=>{let M=G[E];if(!Array.isArray(M))return;for(let Q of M)Q(q)})}function l(q,E,G){for(let M of j(q)){let Q=M[J];if(!Array.isArray(Q))continue;for(let Y of Q){if(G.has(Y))continue;Y(q,E),G.add(Y)}}}function j(q){let E=[],G=Object.getPrototypeOf(q);while(G&&G!==Object.prototype)E.unshift(G),G=Object.getPrototypeOf(G);return E}function n(q,E){for(let G of j(q))E(G)}function F(q,E){switch(E){case"construct":K(q);break;case"connect":X(q,"connect");break;case"ssr":X(q,"ssr");break}}function C(q){switch(q){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function p(q){switch(typeof q){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(q))return"array";if(Object.prototype.toString.call(q)==="[object Object]")return"object"}function W(q){switch(q){case Number:return 0;case String:return"";case Boolean:return!1;default:return null}}function i(q){try{return JSON.parse(q)}catch{throw TypeError("Invalid JSON string")}}var r={array(q){let E=i(q);if(!Array.isArray(E))throw TypeError(`Expected an array but got a value of type "${typeof E}"`);return E},boolean(q){return!(q==="0"||String(q).toLowerCase()==="false")},number(q){return Number(q.replace(/_/g,""))},object(q){let E=JSON.parse(q);if(E===null||typeof E!=="object"||Array.isArray(E))throw TypeError(`expected value of type "object" but instead got value "${q}" of type "${p(E)}"`);return E},string(q){return q}},A={default:T,array:I,object:I};function I(q){return JSON.stringify(q)}function T(q){return`${q}`}function _(q,E){let G=C(E);if(!G)throw TypeError(`[radiant-element] Unknown type "${E}"`);return r[G](q)}function x(q,E){let G=C(E);if(!G)throw TypeError(`[radiant-element] Unknown type "${E}"`);return(A[G]??A.default??T)(q)}function a(q){return typeof q==="boolean"}function t(q){return typeof q==="number"}function e(q){return typeof q==="string"}function qq(q){return Array.isArray(q)}function Eq(q){return typeof q==="object"&&!Array.isArray(q)&&q!==null}function P(q,E){switch(q){case Boolean:return a(E);case Number:return t(E);case String:return e(E);case Array:return qq(E);case Object:return Eq(E);default:return!1}}var Iq=(q,E,G,M)=>{if(E===Boolean){let Y=q.getAttribute(G);if(Y===null)return M;return Y===""?!0:_(Y,E)}let Q=q.getAttribute(G);return Q!==null?_(Q,E):M??W(E)};function S(q,E){if(E!==void 0&&!P(q,E))throw Error(`defaultValue does not match the expected type for ${q.name}`)}function xq(q,E,G,M){return{type:G,name:q,initialValue:M,attribute:E,converter:{fromAttribute:(Q)=>_(Q,G),toAttribute:(Q)=>x(Q,G)}}}import{Computed as Gq,state as Mq,subtle as Qq,trackDependency as Yq}from"@ecopages/signals";function Zq(q){return q}function z(q){return q}var w={trackDependency(q){Yq(Zq(q))},createComputed(q){return new Gq(q)},createWatcher(q){let E=new Qq.Watcher(q);return{watch(G){E.watch(z(G))},unwatch(G){E.unwatch(z(G))}}},createState(q){return Mq(q)}};var R=w;function Z(){return R}function _q(q){R=q}function Nq(q){Z().trackDependency(q)}function k(q){return Z().createComputed(q)}function N(q){return Z().createWatcher(q)}class D{options;needsRender=!1;isRendering=!1;isRenderScheduled=!1;constructor(q){this.options=q}get rendering(){return this.isRendering}get pending(){return this.needsRender}markPending(){this.needsRender=!0}clearPending(){this.needsRender=!1}requestUpdate(){if(this.needsRender=!0,this.isRenderScheduled)return;this.isRenderScheduled=!0,queueMicrotask(()=>{if(this.isRenderScheduled=!1,!this.needsRender)return;this.flush()})}flush(){if(!this.options.canFlush())return;while(this.needsRender&&this.options.canFlush())this.needsRender=!1,this.runCommit()}runExclusive(q){this.isRendering=!0;try{return q()}finally{this.isRendering=!1}}runCommit(){this.isRendering=!0;try{this.options.commit()}finally{this.isRendering=!1}}}import{createSubscribableJsxValue as $q}from"@ecopages/jsx";function f(q){return $q({getValue:()=>q.get(),subscribe:(E)=>q.subscribe(E)})}class H{host;access;shouldAutoBind;bindings;$;reactiveMembers=new Map;jsxBindings=new Map;updateCallbacks=new Map;onConnectedCallbacks=[];onDisconnectedCallback=[];constructor(q,E,G){this.host=q;this.access=E;this.shouldAutoBind=G;let M=this.createReactiveBindingNamespace();this.bindings=M,this.$=M}connectHost(){for(let q of this.onConnectedCallbacks)q()}disconnectHost(){for(let q of this.onDisconnectedCallback)q()}registerCleanupCallback(q){this.onDisconnectedCallback.push(q)}registerConnectedCallback(q){this.onConnectedCallbacks.push(q)}notifyUpdate(q,E,G){let M=this.updateCallbacks.get(q);if(!M)return;for(let Q of[...M.keys()])Q()}getReactiveMember(q){return this.reactiveMembers.get(q)}createReactiveMember(q,E){let G=Z().createState(E);return this.registerMember(q,G),G}registerReactiveMember(q,E){this.registerMember(q,E)}registerMember(q,E){this.reactiveMembers.set(q,E),this.jsxBindings.delete(q);let G=this.updateCallbacks.get(q);if(G)for(let M of G.keys())this.subscribeCallback(q,M)}subscribeCallback(q,E){let G=this.updateCallbacks.get(q),M=this.reactiveMembers.get(q);if(!G||!M||G.get(E))return;let Q=M.subscribe(()=>E());G.set(E,Q)}getReactiveBinding(q){let E=q,G=this.jsxBindings.get(E);if(G)return G;let M=this.reactiveMembers.get(E);if(!M)throw Error(`No reactive binding registered for "${String(q)}".`);let Q=f(M);return this.jsxBindings.set(E,Q),Q}registerUpdateCallback(q,E){let G=this.updateCallbacks.get(q);if(!G)G=new Map,this.updateCallbacks.set(q,G);return G.set(E,void 0),this.subscribeCallback(q,E),()=>{let M=this.updateCallbacks.get(q);if(M?.get(E)?.(),M?.delete(E),M&&M.size===0)this.updateCallbacks.delete(q)}}defineReactiveBinding(q,E=!0){let G=typeof E==="string"?E:E?`$${q}`:void 0,M=this.access.getBindingTarget?.(this.host)??this.host;if(!G||this.access.hasProperty(this.host,G))return;this.access.defineProperty(M,G,{get:()=>this.getReactiveBinding(q),enumerable:!1,configurable:!0})}defineReactiveAccessor(q,E){let G=E.bind??this.shouldAutoBind();this.defineReactiveBinding(q,G),this.access.defineProperty(this.host,q,{get:()=>E.signal.get(),set:(M)=>{E.signal.set(M),E.onSet?.(M)},enumerable:!0,configurable:!0})}createReactiveField(q,E,G={}){let M=this.reactiveMembers.get(q),Q=M??this.createReactiveMember(q,E);if(M&&E!==void 0)Q.set(E);if(this.defineReactiveAccessor(q,{bind:G.bind,signal:Q}),!G.suppressInitialNotify)this.notifyUpdate(q,void 0,Q.get())}createReactiveBindingNamespace(){return new Proxy(Object.create(null),{get:(q,E)=>{if(typeof E!=="string")return;return this.getReactiveBinding(E)}})}}import{render as Uq}from"@ecopages/jsx";class V{host;element;bindings;$;reactiveHost;connected=!1;renderScheduler;isSsrLifecycle=!1;hostSsrRegistry=new U;renderSignal;renderWatcher=N(()=>{this.requestUpdate()});constructor(q){this.host=q,this.element=q,this.reactiveHost=new H(this,{defineProperty:(E,G,M)=>Object.defineProperty(E,G,M),hasProperty:(E,G)=>(G in E),readProperty:(E,G)=>E[G]},()=>this.shouldAutoBindReactiveMembers()),this.bindings=this.reactiveHost.bindings,this.$=this.reactiveHost.$,this.renderScheduler=new D({canFlush:()=>this.connected&&!this.renderScheduler.rendering,commit:()=>{let E=this.getRenderTarget();if(!E)return;Uq(this.resolveTrackedRenderOutput(),E)}}),F(this,"construct")}connect(){if(F(this,"connect"),this.connected=!0,this.reactiveHost.connectHost(),this.shouldRunRenderLifecycle())this.update()}runWithSsrLifecycle(q){this.isSsrLifecycle=!0;try{return q()}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;this.renderScheduler.requestUpdate()}update(){if(!this.shouldRunRenderLifecycle())return;if(!this.getRenderTarget())return;this.renderScheduler.markPending(),this.renderScheduler.flush()}bind(q){return this.reactiveHost.getReactiveBinding(q)}getReactiveBinding(q){return this.reactiveHost.getReactiveBinding(q)}createReactiveField(q,E,G={}){this.reactiveHost.createReactiveField(q,E,G)}createReactiveProp(q,E){let{type:G,defaultValue:M,bind:Q}=E;S(G,M);let Y=new h(this.host,this,q),v=Y.getInitialValue()??M??W(G),b=this.reactiveHost.createReactiveMember(q,v);this.reactiveHost.defineReactiveAccessor(q,{bind:Q,signal:b}),Y.install(),this.registerCleanupCallback(()=>{Y.restore()})}defineReactiveBinding(q,E=!0){this.reactiveHost.defineReactiveBinding(q,E)}notifyUpdate(q,E,G){this.reactiveHost.notifyUpdate(q,E,G)}registerUpdateCallback(q,E){return this.reactiveHost.registerUpdateCallback(q,E)}connectedContextCallback(q){}registerContextProvider(q,E){this.hostSsrRegistry.registerContextProvider(q,E)}registerHydrationBinding(q,E){this.hostSsrRegistry.registerHydrationBinding(q,E)}getSsrContextProviders(){return this.hostSsrRegistry.getContextProviders()}getSsrHydrationBindings(){return this.hostSsrRegistry.getHydrationBindings()}registerCleanupCallback(q){this.reactiveHost.registerCleanupCallback(q)}registerConnectedCallback(q){this.reactiveHost.registerConnectedCallback(q)}createReactiveMember(q,E){return this.reactiveHost.createReactiveMember(q,E)}registerReactiveMember(q,E){this.reactiveHost.registerReactiveMember(q,E)}getReactiveMember(q){return this.reactiveHost.getReactiveMember(q)}addEventListener(q,E,G){this.host.addEventListener(q,E,G)}removeEventListener(q,E,G){this.host.removeEventListener(q,E,G)}dispatchEvent(q){return this.host.dispatchEvent(q)}getRef(q,E=!1){let G=`[data-ref="${q}"]`;if(E)return Array.from(this.host.querySelectorAll(G));return this.host.querySelector(G)??null}shouldAutoBindReactiveMembers(){return!0}shouldRunRenderLifecycle(){return!this.isSsrLifecycle&&this.render!==V.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 q=k(()=>this.render()),E=q.get();if(!this.connected)return E;if(this.renderSignal)this.renderWatcher.unwatch(this.renderSignal);return this.renderSignal=q,this.renderWatcher.watch(q),E}}class h{host;controller;propertyName;ownDescriptor;constructor(q,E,G){this.host=q;this.controller=E;this.propertyName=G;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:(q)=>{Reflect.set(this.controller,this.propertyName,q)},enumerable:this.ownDescriptor?.enumerable??!0,configurable:!0})}restore(){let q=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,q);return}Reflect.deleteProperty(this.host,this.propertyName);try{Reflect.set(this.host,this.propertyName,q)}catch{Object.defineProperty(this.host,this.propertyName,{value:q,writable:!0,enumerable:!0,configurable:!0})}}}export{V as RadiantController};
1
+ class ${contextProviders=new Map;hydrationBindings=new Map;registerContextProvider(q,E){this.contextProviders.set(q,E),this.hydrationBindings.set(q,E)}registerHydrationBinding(q,E){this.hydrationBindings.set(q,E)}getContextProviders(){return[...this.contextProviders.values()]}getHydrationBindings(){return[...this.hydrationBindings.values()]}}var H=Symbol.for("@ecopages/radiant.legacy-instance-initializers"),O=Symbol.for("@ecopages/radiant.legacy-post-construction-initializers"),v=Symbol.for("@ecopages/radiant.legacy-executed-post-construction-initializers");function Qq(q,E){J(q,H,E)}function Yq(q,E){J(q,O,E)}function B(q){b(q,H)}function U(q,E){let G=q;m(q,E,G[v]??=new Set)}function J(q,E,G){let M=q,Q=Object.prototype.hasOwnProperty.call(M,E)?M[E]:void 0;if(Array.isArray(Q)){Q.push(G);return}Object.defineProperty(M,E,{value:[G]})}function b(q,E){g(q,(G)=>{let M=G[E];if(!Array.isArray(M))return;for(let Q of M)Q(q)})}function m(q,E,G){for(let M of K(q)){let Q=M[O];if(!Array.isArray(Q))continue;for(let Y of Q){if(G.has(Y))continue;Y(q,E),G.add(Y)}}}function K(q){let E=[],G=Object.getPrototypeOf(q);while(G&&G!==Object.prototype)E.unshift(G),G=Object.getPrototypeOf(G);return E}function g(q,E){for(let G of K(q))E(G)}function X(q,E){switch(E){case"construct":B(q);break;case"connect":U(q,"connect");break;case"ssr":U(q,"ssr");break}}function A(q){switch(q){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function c(q){switch(typeof q){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(q))return"array";if(Object.prototype.toString.call(q)==="[object Object]")return"object"}function F(q){switch(q){case Number:return 0;case String:return"";case Boolean:return!1;default:return null}}function d(q){try{return JSON.parse(q)}catch{throw TypeError("Invalid JSON string")}}var y={array(q){let E=d(q);if(!Array.isArray(E))throw TypeError(`Expected an array but got a value of type "${typeof E}"`);return E},boolean(q){return!(q==="0"||String(q).toLowerCase()==="false")},number(q){return Number(q.replace(/_/g,""))},object(q){let E=JSON.parse(q);if(E===null||typeof E!=="object"||Array.isArray(E))throw TypeError(`expected value of type "object" but instead got value "${q}" of type "${c(E)}"`);return E},string(q){return q}},L={default:I,array:j,object:j};function j(q){return JSON.stringify(q)}function I(q){return`${q}`}function _(q,E){let G=A(E);if(!G)throw TypeError(`[radiant-element] Unknown type "${E}"`);return y[G](q)}function C(q,E){let G=A(E);if(!G)throw TypeError(`[radiant-element] Unknown type "${E}"`);return(L[G]??L.default??I)(q)}function u(q){return typeof q==="boolean"}function s(q){return typeof q==="number"}function o(q){return typeof q==="string"}function l(q){return Array.isArray(q)}function n(q){return typeof q==="object"&&!Array.isArray(q)&&q!==null}function T(q,E){switch(q){case Boolean:return u(E);case Number:return s(E);case String:return o(E);case Array:return l(E);case Object:return n(E);default:return!1}}var Uq=(q,E,G,M)=>{if(E===Boolean){let Y=q.getAttribute(G);if(Y===null)return M;return Y===""?!0:_(Y,E)}let Q=q.getAttribute(G);return Q!==null?_(Q,E):M??F(E)};function x(q,E){if(E!==void 0&&!T(q,E))throw Error(`defaultValue does not match the expected type for ${q.name}`)}function Wq(q,E,G,M){return{type:G,name:q,initialValue:M,attribute:E,converter:{fromAttribute:(Q)=>_(Q,G),toAttribute:(Q)=>C(Q,G)}}}import{Computed as p,state as i,subtle as r,trackDependency as a}from"@ecopages/signals";function t(q){return q}function P(q){return q}var S={trackDependency(q){a(t(q))},createComputed(q){return new p(q)},createWatcher(q){let E=new r.Watcher(q);return{watch(G){E.watch(P(G))},unwatch(G){E.unwatch(P(G))}}},createState(q){return i(q)}};var z=S;function Z(){return z}function e(q){z=q}function Lq(q){Z().trackDependency(q)}function w(q){return Z().createComputed(q)}function R(q){return Z().createWatcher(q)}class W{options;needsRender=!1;isRendering=!1;isRenderScheduled=!1;constructor(q){this.options=q}get rendering(){return this.isRendering}get pending(){return this.needsRender}markPending(){this.needsRender=!0}clearPending(){this.needsRender=!1}requestUpdate(){if(this.needsRender=!0,this.isRenderScheduled)return;this.isRenderScheduled=!0,queueMicrotask(()=>{if(this.isRenderScheduled=!1,!this.needsRender)return;this.flush()})}flush(){if(!this.options.canFlush())return;while(this.needsRender&&this.options.canFlush())this.needsRender=!1,this.runCommit()}runExclusive(q){this.isRendering=!0;try{return q()}finally{this.isRendering=!1}}runCommit(){this.isRendering=!0;try{this.options.commit()}finally{this.isRendering=!1}}}import{createSubscribableJsxValue as qq}from"@ecopages/jsx";function k(q){return qq({getValue:()=>q.get(),subscribe:(E)=>q.subscribe(E)})}class D{host;access;shouldAutoBind;bindings;$;reactiveMembers=new Map;jsxBindings=new Map;updateCallbacks=new Map;onConnectedCallbacks=[];onDisconnectedCallback=[];constructor(q,E,G){this.host=q;this.access=E;this.shouldAutoBind=G;let M=this.createReactiveBindingNamespace();this.bindings=M,this.$=M}connectHost(){for(let q of this.onConnectedCallbacks)q()}disconnectHost(){for(let q of this.onDisconnectedCallback)q()}registerCleanupCallback(q){this.onDisconnectedCallback.push(q)}registerConnectedCallback(q){this.onConnectedCallbacks.push(q)}notifyUpdate(q,E,G){let M=this.updateCallbacks.get(q);if(!M)return;for(let Q of[...M.keys()])Q()}getReactiveMember(q){return this.reactiveMembers.get(q)}createReactiveMember(q,E){let G=Z().createState(E);return this.registerMember(q,G),G}registerReactiveMember(q,E){this.registerMember(q,E)}registerMember(q,E){this.reactiveMembers.set(q,E),this.jsxBindings.delete(q);let G=this.updateCallbacks.get(q);if(G)for(let M of G.keys())this.subscribeCallback(q,M)}subscribeCallback(q,E){let G=this.updateCallbacks.get(q),M=this.reactiveMembers.get(q);if(!G||!M||G.get(E))return;let Q=M.subscribe(()=>E());G.set(E,Q)}getReactiveBinding(q){let E=q,G=this.jsxBindings.get(E);if(G)return G;let M=this.reactiveMembers.get(E);if(!M)throw Error(`No reactive binding registered for "${String(q)}".`);let Q=k(M);return this.jsxBindings.set(E,Q),Q}registerUpdateCallback(q,E){let G=this.updateCallbacks.get(q);if(!G)G=new Map,this.updateCallbacks.set(q,G);return G.set(E,void 0),this.subscribeCallback(q,E),()=>{let M=this.updateCallbacks.get(q);if(M?.get(E)?.(),M?.delete(E),M&&M.size===0)this.updateCallbacks.delete(q)}}defineReactiveBinding(q,E=!0){let G=typeof E==="string"?E:E?`$${q}`:void 0,M=this.access.getBindingTarget?.(this.host)??this.host;if(!G||this.access.hasProperty(this.host,G))return;this.access.defineProperty(M,G,{get:()=>this.getReactiveBinding(q),enumerable:!1,configurable:!0})}defineReactiveAccessor(q,E){let G=E.bind??this.shouldAutoBind();this.defineReactiveBinding(q,G),this.access.defineProperty(this.host,q,{get:()=>E.signal.get(),set:(M)=>{E.signal.set(M),E.onSet?.(M)},enumerable:!0,configurable:!0})}createReactiveField(q,E,G={}){let M=this.reactiveMembers.get(q),Q=M??this.createReactiveMember(q,E);if(M&&E!==void 0)Q.set(E);if(this.defineReactiveAccessor(q,{bind:G.bind,signal:Q}),!G.suppressInitialNotify)this.notifyUpdate(q,void 0,Q.get())}createReactiveBindingNamespace(){return new Proxy(Object.create(null),{get:(q,E)=>{if(typeof E!=="string")return;return this.getReactiveBinding(E)}})}}import{render as Eq}from"@ecopages/jsx";class N{host;element;bindings;$;reactiveHost;connected=!1;renderScheduler;isSsrLifecycle=!1;hostSsrRegistry=new $;renderSignal;renderWatcher=R(()=>{this.requestUpdate()});constructor(q){this.host=q,this.element=q,this.reactiveHost=new D(this,{defineProperty:(E,G,M)=>Object.defineProperty(E,G,M),hasProperty:(E,G)=>(G in E),readProperty:(E,G)=>E[G]},()=>this.shouldAutoBindReactiveMembers()),this.bindings=this.reactiveHost.bindings,this.$=this.reactiveHost.$,this.renderScheduler=new W({canFlush:()=>this.connected&&!this.renderScheduler.rendering,commit:()=>{let E=this.getRenderTarget();if(!E)return;Eq(this.resolveTrackedRenderOutput(),E)}}),X(this,"construct")}connect(){if(X(this,"connect"),this.connected=!0,this.reactiveHost.connectHost(),this.shouldRunRenderLifecycle())this.update()}runWithSsrLifecycle(q){this.isSsrLifecycle=!0;try{return q()}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;this.renderScheduler.requestUpdate()}update(){if(!this.shouldRunRenderLifecycle())return;if(!this.getRenderTarget())return;this.renderScheduler.markPending(),this.renderScheduler.flush()}bind(q){return this.reactiveHost.getReactiveBinding(q)}getReactiveBinding(q){return this.reactiveHost.getReactiveBinding(q)}createReactiveField(q,E,G={}){this.reactiveHost.createReactiveField(q,E,G)}createReactiveProp(q,E){let{type:G,defaultValue:M,bind:Q}=E;x(G,M);let Y=new f(this.host,this,q),V=Y.getInitialValue()??M??F(G),h=this.reactiveHost.createReactiveMember(q,V);this.reactiveHost.defineReactiveAccessor(q,{bind:Q,signal:h}),Y.install(),this.registerCleanupCallback(()=>{Y.restore()})}defineReactiveBinding(q,E=!0){this.reactiveHost.defineReactiveBinding(q,E)}notifyUpdate(q,E,G){this.reactiveHost.notifyUpdate(q,E,G)}registerUpdateCallback(q,E){return this.reactiveHost.registerUpdateCallback(q,E)}connectedContextCallback(q){}registerContextProvider(q,E){this.hostSsrRegistry.registerContextProvider(q,E)}registerHydrationBinding(q,E){this.hostSsrRegistry.registerHydrationBinding(q,E)}getSsrContextProviders(){return this.hostSsrRegistry.getContextProviders()}getSsrHydrationBindings(){return this.hostSsrRegistry.getHydrationBindings()}registerCleanupCallback(q){this.reactiveHost.registerCleanupCallback(q)}registerConnectedCallback(q){this.reactiveHost.registerConnectedCallback(q)}createReactiveMember(q,E){return this.reactiveHost.createReactiveMember(q,E)}registerReactiveMember(q,E){this.reactiveHost.registerReactiveMember(q,E)}getReactiveMember(q){return this.reactiveHost.getReactiveMember(q)}addEventListener(q,E,G){this.host.addEventListener(q,E,G)}removeEventListener(q,E,G){this.host.removeEventListener(q,E,G)}dispatchEvent(q){return this.host.dispatchEvent(q)}getRef(q,E=!1){let G=`[data-ref="${q}"]`;if(E)return Array.from(this.host.querySelectorAll(G));return this.host.querySelector(G)??null}shouldAutoBindReactiveMembers(){return!0}shouldRunRenderLifecycle(){return!this.isSsrLifecycle&&this.render!==N.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 q=w(()=>this.render()),E=q.get();if(!this.connected)return E;if(this.renderSignal)this.renderWatcher.unwatch(this.renderSignal);return this.renderSignal=q,this.renderWatcher.watch(q),E}}class f{host;controller;propertyName;ownDescriptor;constructor(q,E,G){this.host=q;this.controller=E;this.propertyName=G;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:(q)=>{Reflect.set(this.controller,this.propertyName,q)},enumerable:this.ownDescriptor?.enumerable??!0,configurable:!0})}restore(){let q=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,q);return}Reflect.deleteProperty(this.host,this.propertyName);try{Reflect.set(this.host,this.propertyName,q)}catch{Object.defineProperty(this.host,this.propertyName,{value:q,writable:!0,enumerable:!0,configurable:!0})}}}export{N as RadiantController};
2
2
 
3
- //# debugId=3DB3D3D210C581D064756E2164756E21
3
+ //# debugId=DE48BFAB53078E4E64756E2164756E21
@@ -15,7 +15,7 @@
15
15
  "import type { JsxBindingSourceValue, SubscribableJsxValueWithAccess } from '@ecopages/jsx';\nimport { adaptReactiveStateToJsxBinding } from './reactive-binding-adapter';\nimport { getReactiveRuntime } from './reactivity-runtime';\nimport type { ReactiveState } from './reactivity-contract';\nimport type {\n\tReactiveAccessorDefinition,\n\tReactiveBindingOption,\n\tReactiveBindingValue,\n\tReactiveBindings,\n\tReactiveFieldOptions,\n} from './reactive-prop-core';\n\ntype StringPropertyKey<Value> = Extract<keyof Value, string>;\n\n/**\n * Shared reactive-host contract consumed by decorators and host adapters.\n *\n * `RadiantElement` and `RadiantController` both implement this surface so the\n * decorator layer can define fields, bindings, and context reactions without\n * depending on a specific host class.\n */\nexport interface ReactiveHostLike<Bindings extends object = {}> {\n\treadonly bindings: ReactiveBindings<Bindings>;\n\treadonly $: ReactiveBindings<Bindings>;\n\tbind<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValueWithAccess<ReactiveBindingValue<Bindings, Property>>;\n\tgetReactiveBinding<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValueWithAccess<ReactiveBindingValue<Bindings, Property>>;\n\tgetReactiveMember<T = unknown>(propertyName: string): ReactiveState<T> | undefined;\n\tcreateReactiveField<T>(propertyName: string, initialValue: T, options?: ReactiveFieldOptions): void;\n\tcreateReactiveMember<T>(propertyName: string, initialValue: T): ReactiveState<T>;\n\tregisterReactiveMember<T>(propertyName: string, signal: ReactiveState<T>): void;\n\tdefineReactiveBinding(property: string, bind?: ReactiveBindingOption): void;\n\tnotifyUpdate(changedProperty: string, oldValue: unknown, value: unknown): void;\n\tregisterCleanupCallback(callback: () => void): void;\n\tregisterConnectedCallback(callback: () => void): void;\n\tregisterUpdateCallback(property: string, update: () => void): () => void;\n}\n\n/**\n * Shared reactivity engine used by both `RadiantElement` and\n * `RadiantController`.\n *\n * Every reactive host member owns a single signals-backed `ReactiveState`\n * (a `State` for fields/props/attributes, or a user `signal()` for the signal\n * decorator). The jsx binding, `onUpdated` callbacks, and `ReactiveComputed`\n * tracking all read that one state directly, so there is no parallel\n * notification bus or dependency shim.\n *\n * Host-specific concerns such as attribute reflection, render lifecycles, and\n * custom-element APIs stay in the outer host classes.\n */\nexport class ReactiveHost<Host extends object, Bindings extends object = {}> {\n\tpublic readonly bindings: ReactiveBindings<Bindings>;\n\tpublic readonly $: ReactiveBindings<Bindings>;\n\n\tprivate reactiveMembers = new Map<string, ReactiveState<unknown>>();\n\tprivate jsxBindings = new Map<string, SubscribableJsxValueWithAccess<JsxBindingSourceValue>>();\n\t/** `onUpdated` callbacks keyed by property; values are signal unsubscribe disposers when subscribed. */\n\tprivate updateCallbacks = new Map<string, Map<() => void, (() => void) | undefined>>();\n\tprivate onConnectedCallbacks: (() => void)[] = [];\n\tprivate onDisconnectedCallback: (() => void)[] = [];\n\n\tconstructor(\n\t\tprivate readonly host: Host,\n\t\tprivate readonly access: ReactiveHostAccess<Host>,\n\t\tprivate readonly shouldAutoBind: () => boolean,\n\t) {\n\t\tconst bindingNamespace = this.createReactiveBindingNamespace();\n\t\tthis.bindings = bindingNamespace;\n\t\tthis.$ = bindingNamespace;\n\t}\n\n\t/**\n\t * Runs all connection callbacks registered by decorators or host adapters.\n\t */\n\tpublic connectHost(): void {\n\t\tfor (const callback of this.onConnectedCallbacks) {\n\t\t\tcallback();\n\t\t}\n\t}\n\n\t/**\n\t * Runs all cleanup callbacks registered for host disconnect.\n\t */\n\tpublic disconnectHost(): void {\n\t\tfor (const cleanup of this.onDisconnectedCallback) {\n\t\t\tcleanup();\n\t\t}\n\t}\n\n\t/**\n\t * Registers a callback that should run on host disconnect.\n\t */\n\tpublic registerCleanupCallback(callback: () => void): void {\n\t\tthis.onDisconnectedCallback.push(callback);\n\t}\n\n\t/**\n\t * Registers a callback that should run whenever the host connects.\n\t */\n\tpublic registerConnectedCallback(callback: () => void): void {\n\t\tthis.onConnectedCallbacks.push(callback);\n\t}\n\n\t/**\n\t * Fires the `onUpdated` callbacks registered for a member.\n\t *\n\t * This is the only remaining use of the update-callback bus: an initial\n\t * emit for members that want one (currently `@prop`). Change notifications\n\t * flow through the member `State`'s own subscription, not through here.\n\t */\n\tpublic notifyUpdate(changedProperty: string, _oldValue: unknown, _value: unknown): void {\n\t\tconst callbacks = this.updateCallbacks.get(changedProperty);\n\n\t\tif (!callbacks) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const update of [...callbacks.keys()]) {\n\t\t\tupdate();\n\t\t}\n\t}\n\n\t/**\n\t * Returns the member state registered under `propertyName`, if any.\n\t */\n\tpublic getReactiveMember<T = unknown>(propertyName: string): ReactiveState<T> | undefined {\n\t\treturn this.reactiveMembers.get(propertyName) as ReactiveState<T> | undefined;\n\t}\n\n\t/**\n\t * Creates a new reactive member state and registers it under `propertyName`.\n\t */\n\tpublic createReactiveMember<T>(propertyName: string, initialValue: T): ReactiveState<T> {\n\t\tconst signal = getReactiveRuntime().createState(initialValue) as ReactiveState<T>;\n\t\tthis.registerMember(propertyName, signal as ReactiveState<unknown>);\n\t\treturn signal;\n\t}\n\n\t/**\n\t * Registers an externally-owned reactive member state (used by the\n\t * `signal()` decorator, whose state is a user-provided signals `Signal`).\n\t */\n\tpublic registerReactiveMember<T>(propertyName: string, signal: ReactiveState<T>): void {\n\t\tthis.registerMember(propertyName, signal as ReactiveState<unknown>);\n\t}\n\n\t/**\n\t * Stores the member state and subscribes any `onUpdated` callbacks that were\n\t * registered before the member existed (decorator initializer ordering).\n\t */\n\tprivate registerMember(propertyName: string, signal: ReactiveState<unknown>): void {\n\t\tthis.reactiveMembers.set(propertyName, signal);\n\t\tthis.jsxBindings.delete(propertyName);\n\n\t\tconst callbacks = this.updateCallbacks.get(propertyName);\n\n\t\tif (callbacks) {\n\t\t\tfor (const update of callbacks.keys()) {\n\t\t\t\tthis.subscribeCallback(propertyName, update);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Subscribes an `onUpdated` callback to the member state if the member is\n\t * already registered and not yet subscribed.\n\t */\n\tprivate subscribeCallback(propertyName: string, update: () => void): void {\n\t\tconst callbacks = this.updateCallbacks.get(propertyName);\n\t\tconst signal = this.reactiveMembers.get(propertyName);\n\n\t\tif (!callbacks || !signal || callbacks.get(update)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst unsubscribe = signal.subscribe(() => update());\n\t\tcallbacks.set(update, unsubscribe);\n\t}\n\n\t/**\n\t * Returns the jsx binding for a named reactive member.\n\t *\n\t * The binding is adapted from the member `State` once and cached so derived\n\t * transforms (`map`, member access) share a stable source identity.\n\t */\n\tpublic getReactiveBinding<Property extends StringPropertyKey<Bindings>>(\n\t\tproperty: Property,\n\t): SubscribableJsxValueWithAccess<ReactiveBindingValue<Bindings, Property>> {\n\t\tconst key = property as string;\n\t\tconst cached = this.jsxBindings.get(key);\n\n\t\tif (cached) {\n\t\t\treturn cached as SubscribableJsxValueWithAccess<ReactiveBindingValue<Bindings, Property>>;\n\t\t}\n\n\t\tconst signal = this.reactiveMembers.get(key);\n\n\t\tif (!signal) {\n\t\t\tthrow new Error(`No reactive binding registered for \"${String(property)}\".`);\n\t\t}\n\n\t\tconst binding = adaptReactiveStateToJsxBinding(\n\t\t\tsignal as ReactiveState<ReactiveBindingValue<Bindings, Property>>,\n\t\t);\n\n\t\tthis.jsxBindings.set(key, binding);\n\t\treturn binding;\n\t}\n\n\t/**\n\t * Registers an `onUpdated`-style callback for a named reactive member.\n\t *\n\t * Change notifications flow through the member `State`'s own subscription\n\t * (D1). The callback is also kept in the update-callback bus so an initial\n\t * emit (currently `@prop`) can still reach it once after definition.\n\t */\n\tpublic registerUpdateCallback(property: string, update: () => void): () => void {\n\t\tlet callbacks = this.updateCallbacks.get(property);\n\n\t\tif (!callbacks) {\n\t\t\tcallbacks = new Map();\n\t\t\tthis.updateCallbacks.set(property, callbacks);\n\t\t}\n\n\t\tcallbacks.set(update, undefined);\n\t\tthis.subscribeCallback(property, update);\n\n\t\treturn () => {\n\t\t\tconst perProperty = this.updateCallbacks.get(property);\n\t\t\tperProperty?.get(update)?.();\n\t\t\tperProperty?.delete(update);\n\n\t\t\tif (perProperty && perProperty.size === 0) {\n\t\t\t\tthis.updateCallbacks.delete(property);\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * Defines a stable binding companion property such as `$count` on the host or\n\t * its chosen binding target.\n\t */\n\tpublic defineReactiveBinding(property: string, bind: ReactiveBindingOption = true): void {\n\t\tconst bindingPropertyName = typeof bind === 'string' ? bind : bind ? `$${property}` : undefined;\n\t\tconst bindingTarget = this.access.getBindingTarget?.(this.host) ?? this.host;\n\n\t\tif (!bindingPropertyName || this.access.hasProperty(this.host, bindingPropertyName)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.access.defineProperty(bindingTarget, bindingPropertyName, {\n\t\t\tget: () => this.getReactiveBinding(property as StringPropertyKey<Bindings>),\n\t\t\tenumerable: false,\n\t\t\tconfigurable: true,\n\t\t});\n\t}\n\n\t/**\n\t * Defines a reactive getter/setter pair on the host backed by a member\n\t * `State`, and wires it into the jsx binding namespace.\n\t */\n\tpublic defineReactiveAccessor<T>(propertyName: string, options: ReactiveAccessorDefinition<T>): void {\n\t\tconst bind = options.bind ?? this.shouldAutoBind();\n\n\t\tthis.defineReactiveBinding(propertyName, bind);\n\n\t\tthis.access.defineProperty(this.host, propertyName, {\n\t\t\tget: () => options.signal.get(),\n\t\t\tset: (newValue: T) => {\n\t\t\t\toptions.signal.set(newValue);\n\t\t\t\toptions.onSet?.(newValue);\n\t\t\t},\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t});\n\t}\n\n\t/**\n\t * Defines a controller- or element-local reactive field with optional JSX\n\t * binding exposure.\n\t */\n\tpublic createReactiveField<T>(propertyName: string, initialValue: T, options: ReactiveFieldOptions = {}): void {\n\t\tconst existing = this.reactiveMembers.get(propertyName) as ReactiveState<T> | undefined;\n\t\tconst signal = existing ?? this.createReactiveMember(propertyName, initialValue);\n\n\t\tif (existing && initialValue !== undefined) {\n\t\t\tsignal.set(initialValue);\n\t\t}\n\n\t\tthis.defineReactiveAccessor(propertyName, { bind: options.bind, signal });\n\n\t\tif (!options.suppressInitialNotify) {\n\t\t\tthis.notifyUpdate(propertyName, undefined, signal.get());\n\t\t}\n\t}\n\n\tprivate createReactiveBindingNamespace(): ReactiveBindings<Bindings> {\n\t\treturn new Proxy(Object.create(null) as ReactiveBindings<Bindings>, {\n\t\t\tget: (_target, property) => {\n\t\t\t\tif (typeof property !== 'string') {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\n\t\t\t\treturn this.getReactiveBinding(property as StringPropertyKey<Bindings>);\n\t\t\t},\n\t\t}) as ReactiveBindings<Bindings>;\n\t}\n}\n\ntype ReactiveHostAccess<Host extends object> = {\n\tdefineProperty(target: object, property: string, descriptor: PropertyDescriptor): void;\n\tgetBindingTarget?(host: Host): object;\n\thasProperty(host: Host, property: string): boolean;\n\treadProperty(host: Host, property: string): unknown;\n};\n",
16
16
  "import { render as renderJsx, type JsxRenderable, type SubscribableJsxValueWithAccess } 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 { ensureLegacyHostReady } from '../decorators/legacy/host-readiness';\nimport { ReactiveHost, type ReactiveHostLike } from './reactive-host';\nimport type { ReactiveState } from './reactivity-contract';\nimport type {\n\tReactiveBindingOption,\n\tReactivePropertyOptions,\n\tReactiveBindingValue,\n\tReactiveBindings,\n\tReactiveFieldOptions,\n} from './reactive-prop-core';\nimport { HostSsrRegistry } from './host-ssr-registry';\nimport type { SsrSerializableHydrationBinding } from './ssr-hydration-binding';\nimport { RenderScheduler } from './render-scheduler';\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 readonly renderScheduler: RenderScheduler;\n\tprivate isSsrLifecycle = false;\n\tprivate readonly hostSsrRegistry = new HostSsrRegistry();\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\tthis.renderScheduler = new RenderScheduler({\n\t\t\tcanFlush: () => this.connected && !this.renderScheduler.rendering,\n\t\t\tcommit: () => {\n\t\t\t\tconst renderTarget = this.getRenderTarget();\n\n\t\t\t\tif (!renderTarget) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\trenderJsx(this.resolveTrackedRenderOutput(), renderTarget);\n\t\t\t},\n\t\t});\n\t\tensureLegacyHostReady(this, 'construct');\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\tensureLegacyHostReady(this, 'connect');\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.renderScheduler.requestUpdate();\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\tif (!this.getRenderTarget()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.renderScheduler.markPending();\n\t\tthis.renderScheduler.flush();\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): SubscribableJsxValueWithAccess<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): SubscribableJsxValueWithAccess<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\tconst initialValue = (initialHostValue ?? defaultValue ?? defaultValueForType(type)) as T;\n\n\t\tconst signal = this.reactiveHost.createReactiveMember(propertyName, initialValue);\n\n\t\tthis.reactiveHost.defineReactiveAccessor(propertyName, { bind, signal });\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: () => void): () => 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.hostSsrRegistry.registerContextProvider(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.hostSsrRegistry.registerHydrationBinding(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.hostSsrRegistry.getContextProviders();\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.hostSsrRegistry.getHydrationBindings();\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 createReactiveMember<T>(propertyName: string, initialValue: T): ReactiveState<T> {\n\t\treturn this.reactiveHost.createReactiveMember(propertyName, initialValue);\n\t}\n\n\tpublic registerReactiveMember<T>(propertyName: string, signal: ReactiveState<T>): void {\n\t\tthis.reactiveHost.registerReactiveMember(propertyName, signal);\n\t}\n\n\tpublic getReactiveMember<T = unknown>(propertyName: string): ReactiveState<T> | undefined {\n\t\treturn this.reactiveHost.getReactiveMember(propertyName);\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"
17
17
  ],
18
- "mappings": "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",
19
- "debugId": "3DB3D3D210C581D064756E2164756E21",
18
+ "mappings": "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",
19
+ "debugId": "DE48BFAB53078E4E64756E2164756E21",
20
20
  "names": []
21
21
  }
@@ -0,0 +1,2 @@
1
+ /** Cross-realm Element Host brand for SSR extraction (survives duplicate package copies). */
2
+ export declare const RADIANT_ELEMENT_BRAND: unique symbol;
@@ -0,0 +1,3 @@
1
+ var e=Symbol.for("@ecopages/radiant.RadiantElement");export{e as RADIANT_ELEMENT_BRAND};
2
+
3
+ //# debugId=DDD5E049993FDDA364756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/core/radiant-element-brand.ts"],
4
+ "sourcesContent": [
5
+ "/** Cross-realm Element Host brand for SSR extraction (survives duplicate package copies). */\nexport const RADIANT_ELEMENT_BRAND = Symbol.for('@ecopages/radiant.RadiantElement');\n"
6
+ ],
7
+ "mappings": "AACO,IAAM,EAAwB,OAAO,IAAI,kCAAkC",
8
+ "debugId": "DDD5E049993FDDA364756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,32 @@
1
+ import type { JsxRenderable } from '@ecopages/jsx';
2
+ import type { SsrSerializableContextProvider } from '../context/context-provider';
3
+ import type { ReactiveProperty } from './reactive-prop-core';
4
+ import type { SsrSerializableHydrationBinding } from './ssr-hydration-binding';
5
+ import { RADIANT_ELEMENT_BRAND } from './radiant-element-brand';
6
+ /**
7
+ * Branded Element Host surface read by the server SSR pipeline.
8
+ *
9
+ * Lives in core so client-safe registry types and server extractors share one
10
+ * contract without importing {@link RadiantElement} (HTMLElement at init).
11
+ */
12
+ export type RadiantElementSsrHostSource = {
13
+ constructor: Function;
14
+ readonly renderRootMode: 'light' | 'shadow';
15
+ getAttribute(name: string): string | null;
16
+ getAttributeNames(): string[];
17
+ getAuthoredHydrationScriptMarkup(): string | undefined;
18
+ getContextProviders(): SsrSerializableContextProvider[];
19
+ getHydrationBindings(): SsrSerializableHydrationBinding[];
20
+ getReactiveProperties(): ReactiveProperty[];
21
+ getSlotProjectionScriptTag(): string | undefined;
22
+ resolveTrackedRenderOutput(): {
23
+ containsSlots: boolean;
24
+ value: JsxRenderable;
25
+ };
26
+ };
27
+ export type BrandedRadiantElementSsrHost = RadiantElementSsrHostSource & {
28
+ readonly [RADIANT_ELEMENT_BRAND]: true;
29
+ };
30
+ export type RadiantElementViewRenderSource = Pick<RadiantElementSsrHostSource, 'resolveTrackedRenderOutput' | 'renderRootMode'>;
31
+ /** True when the value is a branded Radiant Element Host the server can serialize. */
32
+ export declare function isRadiantElementSsrHost(component: unknown): component is BrandedRadiantElementSsrHost;
@@ -0,0 +1,3 @@
1
+ var S=Symbol.for("@ecopages/radiant.RadiantElement");function r(s){return typeof s==="object"&&s!==null&&S in s}export{r as isRadiantElementSsrHost};
2
+
3
+ //# debugId=87CD5E973D4F828F64756E2164756E21
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/core/radiant-element-brand.ts", "../src/core/radiant-element-ssr-host-source.ts"],
4
+ "sourcesContent": [
5
+ "/** Cross-realm Element Host brand for SSR extraction (survives duplicate package copies). */\nexport const RADIANT_ELEMENT_BRAND = Symbol.for('@ecopages/radiant.RadiantElement');\n",
6
+ "import type { JsxRenderable } from '@ecopages/jsx';\nimport type { SsrSerializableContextProvider } from '../context/context-provider';\nimport type { ReactiveProperty } from './reactive-prop-core';\nimport type { SsrSerializableHydrationBinding } from './ssr-hydration-binding';\nimport { RADIANT_ELEMENT_BRAND } from './radiant-element-brand';\n\n/**\n * Branded Element Host surface read by the server SSR pipeline.\n *\n * Lives in core so client-safe registry types and server extractors share one\n * contract without importing {@link RadiantElement} (HTMLElement at init).\n */\nexport type RadiantElementSsrHostSource = {\n\tconstructor: Function;\n\treadonly renderRootMode: 'light' | 'shadow';\n\tgetAttribute(name: string): string | null;\n\tgetAttributeNames(): string[];\n\tgetAuthoredHydrationScriptMarkup(): string | undefined;\n\tgetContextProviders(): SsrSerializableContextProvider[];\n\tgetHydrationBindings(): SsrSerializableHydrationBinding[];\n\tgetReactiveProperties(): ReactiveProperty[];\n\tgetSlotProjectionScriptTag(): string | undefined;\n\tresolveTrackedRenderOutput(): { containsSlots: boolean; value: JsxRenderable };\n};\n\nexport type BrandedRadiantElementSsrHost = RadiantElementSsrHostSource & {\n\treadonly [RADIANT_ELEMENT_BRAND]: true;\n};\n\nexport type RadiantElementViewRenderSource = Pick<\n\tRadiantElementSsrHostSource,\n\t'resolveTrackedRenderOutput' | 'renderRootMode'\n>;\n\n/** True when the value is a branded Radiant Element Host the server can serialize. */\nexport function isRadiantElementSsrHost(component: unknown): component is BrandedRadiantElementSsrHost {\n\treturn typeof component === 'object' && component !== null && RADIANT_ELEMENT_BRAND in component;\n}\n"
7
+ ],
8
+ "mappings": "AACO,IAAM,EAAwB,OAAO,IAAI,kCAAkC,ECkC3E,SAAS,CAAuB,CAAC,EAA+D,CACtG,OAAO,OAAO,IAAc,UAAY,IAAc,MAAQ,KAAyB",
9
+ "debugId": "87CD5E973D4F828F64756E2164756E21",
10
+ "names": []
11
+ }
@@ -1,14 +1,17 @@
1
1
  import type { JsxRenderable } from '@ecopages/jsx';
2
- import type { RenderToStringOptions } from '@ecopages/jsx/server';
3
2
  import type { SsrSerializableContextProvider } from '../context/context-provider';
4
3
  import type { ReactiveProperty } from './reactive-prop-core';
5
4
  import type { ReactivePropDefinition } from './reactive-prop-metadata';
6
5
  import type { SsrSerializableHydrationBinding } from './ssr-hydration-binding';
7
6
  /**
8
- * Unified SSR host shape shared by core resolution and server serialization.
7
+ * Server-owned snapshot of host state used during Element Host serialization.
8
+ *
9
+ * Built by the server extractor from a live {@link RadiantElement}; the element
10
+ * itself is not required to satisfy this shape via duck-typing.
9
11
  */
10
12
  export type InternalRadiantSsrHost = {
11
13
  constructor: CustomElementConstructor;
14
+ readonly renderRootMode: 'light' | 'shadow';
12
15
  getAttribute(name: string): string | null;
13
16
  getAttributeNames(): string[];
14
17
  getAuthoredHydrationScriptMarkup?: () => string | undefined;
@@ -22,8 +25,4 @@ export type InternalRadiantSsrHost = {
22
25
  containsSlots: boolean;
23
26
  value: JsxRenderable;
24
27
  };
25
- renderViewToString: (options?: RenderToStringOptions) => string;
26
28
  };
27
- export type RadiantElementSsrHostSource = InternalRadiantSsrHost;
28
- export declare function resolveRadiantElementSsrHostSource(component: object): InternalRadiantSsrHost | undefined;
29
- export declare function isInternalRadiantSsrHost(component: object): component is InternalRadiantSsrHost;
@@ -1,3 +1,2 @@
1
- var{defineProperty:w,getOwnPropertyNames:A,getOwnPropertyDescriptor:B}=Object,C=Object.prototype.hasOwnProperty;function D(g){return this[g]}var J=(g)=>{var j=(x??=new WeakMap).get(g),k;if(j)return j;if(j=w({},"__esModule",{value:!0}),g&&typeof g==="object"||typeof g==="function"){for(var q of A(g))if(!C.call(j,q))w(j,q,{get:D.bind(g,q),enumerable:!(k=B(g,q))||k.enumerable})}return x.set(g,j),j},x;var E=(g)=>g;function F(g,j){this[g]=E.bind(null,j)}var K=(g,j)=>{for(var k in j)w(g,k,{get:j[k],enumerable:!0,configurable:!0,set:F.bind(j,k)})};var L=(g,j)=>()=>(g&&(j=g(g=0)),j);var M=((g)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(g,{get:(j,k)=>(typeof require<"u"?require:j)[k]}):g)(function(g){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+g+'" is not supported')});function O(g){if(G(g))return g;return}function G(g){return typeof g.constructor==="function"&&typeof g.getAttribute==="function"&&typeof g.getAttributeNames==="function"&&typeof g.getAuthoredHydrationScriptMarkup==="function"&&typeof g.getContextProviders==="function"&&typeof g.getHydrationBindings==="function"&&typeof g.getReactiveProperties==="function"&&typeof g.getSlotProjectionScriptTag==="function"&&typeof g.resolveTrackedRenderOutput==="function"&&typeof g.renderViewToString==="function"}export{O as resolveRadiantElementSsrHostSource,G as isInternalRadiantSsrHost};
2
1
 
3
- //# debugId=1715AE3ABAF06A6664756E2164756E21
2
+ //# debugId=501815A8C8C4FC5164756E2164756E21
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/core/radiant-element-ssr-host.ts"],
3
+ "sources": [],
4
4
  "sourcesContent": [
5
- "import type { JsxRenderable } from '@ecopages/jsx';\nimport type { RenderToStringOptions } from '@ecopages/jsx/server';\nimport type { SsrSerializableContextProvider } from '../context/context-provider';\nimport type { ReactiveProperty } from './reactive-prop-core';\nimport type { ReactivePropDefinition } from './reactive-prop-metadata';\nimport type { SsrSerializableHydrationBinding } from './ssr-hydration-binding';\n\n/**\n * Unified SSR host shape shared by core resolution and server serialization.\n */\nexport type InternalRadiantSsrHost = {\n\tconstructor: CustomElementConstructor;\n\tgetAttribute(name: string): string | null;\n\tgetAttributeNames(): string[];\n\tgetAuthoredHydrationScriptMarkup?: () => string | undefined;\n\tgetContextProviders: () => SsrSerializableContextProvider[];\n\tgetHydrationBindings: () => SsrSerializableHydrationBinding[];\n\tgetReactiveProperties: () => ReactiveProperty[];\n\tgetReactivePropDefinitions: () => ReactivePropDefinition[];\n\tgetPropertyValue: (name: string) => unknown;\n\tgetSlotProjectionScriptTag?: () => string | undefined;\n\tresolveTrackedRenderOutput: () => { containsSlots: boolean; value: JsxRenderable };\n\trenderViewToString: (options?: RenderToStringOptions) => string;\n};\n\nexport type RadiantElementSsrHostSource = InternalRadiantSsrHost;\n\nexport function resolveRadiantElementSsrHostSource(component: object): InternalRadiantSsrHost | undefined {\n\tif (isInternalRadiantSsrHost(component)) {\n\t\treturn component;\n\t}\n\n\treturn undefined;\n}\n\nexport function isInternalRadiantSsrHost(component: object): component is InternalRadiantSsrHost {\n\treturn (\n\t\ttypeof component.constructor === 'function' &&\n\t\ttypeof (component as { getAttribute?: unknown }).getAttribute === 'function' &&\n\t\ttypeof (component as { getAttributeNames?: unknown }).getAttributeNames === 'function' &&\n\t\ttypeof (component as { getAuthoredHydrationScriptMarkup?: unknown }).getAuthoredHydrationScriptMarkup ===\n\t\t\t'function' &&\n\t\ttypeof (component as { getContextProviders?: unknown }).getContextProviders === 'function' &&\n\t\ttypeof (component as { getHydrationBindings?: unknown }).getHydrationBindings === 'function' &&\n\t\ttypeof (component as { getReactiveProperties?: unknown }).getReactiveProperties === 'function' &&\n\t\ttypeof (component as { getSlotProjectionScriptTag?: unknown }).getSlotProjectionScriptTag === 'function' &&\n\t\ttypeof (component as { resolveTrackedRenderOutput?: unknown }).resolveTrackedRenderOutput === 'function' &&\n\t\ttypeof (component as { renderViewToString?: unknown }).renderViewToString === 'function'\n\t);\n}\n"
6
5
  ],
7
- "mappings": "i0BA2BO,SAAS,CAAkC,CAAC,EAAuD,CACzG,GAAI,EAAyB,CAAS,EACrC,OAAO,EAGR,OAGM,SAAS,CAAwB,CAAC,EAAwD,CAChG,OACC,OAAO,EAAU,cAAgB,YACjC,OAAQ,EAAyC,eAAiB,YAClE,OAAQ,EAA8C,oBAAsB,YAC5E,OAAQ,EAA6D,mCACpE,YACD,OAAQ,EAAgD,sBAAwB,YAChF,OAAQ,EAAiD,uBAAyB,YAClF,OAAQ,EAAkD,wBAA0B,YACpF,OAAQ,EAAuD,6BAA+B,YAC9F,OAAQ,EAAuD,6BAA+B,YAC9F,OAAQ,EAA+C,qBAAuB",
8
- "debugId": "1715AE3ABAF06A6664756E2164756E21",
6
+ "mappings": "",
7
+ "debugId": "501815A8C8C4FC5164756E2164756E21",
9
8
  "names": []
10
9
  }
@@ -1,20 +1,33 @@
1
1
  import type { JsxRenderable } from '@ecopages/jsx';
2
- import { type RenderToStringOptions } from '@ecopages/jsx/server';
3
- import type { InternalRadiantSsrHost } from './radiant-element-ssr-host';
2
+ import type { RadiantElementSsrHostSource, RadiantElementViewRenderSource } from './radiant-element-ssr-host-source';
3
+ /** Core-local render options so client code never imports `@ecopages/jsx/server`. */
4
+ export type RadiantElementRenderToStringOptions = {
5
+ hydrate?: boolean;
6
+ mode?: 'plain' | 'hydrate';
7
+ };
4
8
  export type RadiantElementRenderBridge = {
5
9
  renderHost?: () => JsxRenderable;
6
- renderHostToString?: (options?: RenderToStringOptions) => string;
7
- };
8
- export type RadiantElementServerRenderSsrCapable = Omit<InternalRadiantSsrHost, 'constructor'> & {
9
- constructor: Function;
10
+ renderHostToString?: (options?: RadiantElementRenderToStringOptions) => string;
10
11
  };
11
- export type RadiantElementTrackedRenderSsrCapable = RadiantElementServerRenderSsrCapable;
12
+ /** Branded Element Host accepted by the server SSR pipeline. */
13
+ export type RadiantElementServerRenderSsrCapable = RadiantElementSsrHostSource;
14
+ export type { RadiantElementViewRenderSource };
12
15
  export type RadiantElementSsrRuntime = {
13
- getHostAttributes(component: InternalRadiantSsrHost): Record<string, string>;
14
- renderHost(component: InternalRadiantSsrHost): JsxRenderable;
15
- renderHostToString(component: InternalRadiantSsrHost, options?: RenderToStringOptions): string;
16
+ getHostAttributes(component: RadiantElementServerRenderSsrCapable): Record<string, string>;
17
+ renderHost(component: RadiantElementServerRenderSsrCapable): JsxRenderable;
18
+ renderHostToString(component: RadiantElementServerRenderSsrCapable, options?: RadiantElementRenderToStringOptions): string;
16
19
  resolveRenderBridge(component: object): RadiantElementRenderBridge | undefined;
17
- renderView(component: InternalRadiantSsrHost, options?: RenderToStringOptions): string;
20
+ renderView(component: RadiantElementServerRenderSsrCapable, options?: RadiantElementRenderToStringOptions): string;
21
+ };
22
+ /** JSX SSR scope adapters installed by the server layer into client-safe core. */
23
+ export type RadiantElementSsrScopeAdapters = {
24
+ get<T>(key: symbol): T | undefined;
25
+ withValue<TValue, T>(key: symbol, value: TValue, render: () => T): T;
18
26
  };
27
+ /**
28
+ * Called once from Radiant server SSR modules; client bundles never install this.
29
+ * Module-local: SSR bundlers must resolve one `@ecopages/radiant` instance (do not inline duplicates).
30
+ */
31
+ export declare function installRadiantElementSsrScopeAdapters(adapters: RadiantElementSsrScopeAdapters): void;
19
32
  export declare function getRadiantElementSsrRuntime(): RadiantElementSsrRuntime | undefined;
20
33
  export declare function withRadiantElementSsrRuntime<T>(runtime: RadiantElementSsrRuntime, render: () => T): T;
@@ -1,3 +1,3 @@
1
- var{defineProperty:q,getOwnPropertyNames:z,getOwnPropertyDescriptor:C}=Object,F=Object.prototype.hasOwnProperty;function G(b){return this[b]}var Q=(b)=>{var f=(x??=new WeakMap).get(b),j;if(f)return f;if(f=q({},"__esModule",{value:!0}),b&&typeof b==="object"||typeof b==="function"){for(var k of z(b))if(!F.call(f,k))q(f,k,{get:G.bind(b,k),enumerable:!(j=C(b,k))||j.enumerable})}return x.set(b,f),f},x;var H=(b)=>b;function J(b,f){this[b]=H.bind(null,f)}var W=(b,f)=>{for(var j in f)q(b,j,{get:f[j],enumerable:!0,configurable:!0,set:J.bind(f,j)})};var X=(b,f)=>()=>(b&&(f=b(b=0)),f);var Z=((b)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(b,{get:(f,j)=>(typeof require<"u"?require:f)[j]}):b)(function(b){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+b+'" is not supported')});import{getActiveSsrScopeValue as K,withActiveSsrScopeValue as P}from"@ecopages/jsx/server";var y=Symbol.for("@ecopages/radiant.element-ssr-runtime");function h(){return K(y)}function w(b,f){return P(y,b,f)}export{w as withRadiantElementSsrRuntime,h as getRadiantElementSsrRuntime};
1
+ var g=Symbol.for("@ecopages/radiant.element-ssr-runtime"),b;function j(f){b=f}function k(){return b?.get(g)}function l(f,h){if(!b)throw Error("Radiant element SSR runtime requires the server scope adapters. Import a Radiant server SSR entrypoint before rendering.");if(b.get(g)===f)return h();return b.withValue(g,f,h)}export{l as withRadiantElementSsrRuntime,j as installRadiantElementSsrScopeAdapters,k as getRadiantElementSsrRuntime};
2
2
 
3
- //# debugId=15E2280905A5CEA764756E2164756E21
3
+ //# debugId=EBDF6F7C4EDB8AE064756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/core/radiant-element-ssr-registry.ts"],
4
4
  "sourcesContent": [
5
- "import type { JsxRenderable } from '@ecopages/jsx';\nimport { getActiveSsrScopeValue, type RenderToStringOptions, withActiveSsrScopeValue } from '@ecopages/jsx/server';\nimport type { InternalRadiantSsrHost } from './radiant-element-ssr-host';\n\nexport type RadiantElementRenderBridge = {\n\trenderHost?: () => JsxRenderable;\n\trenderHostToString?: (options?: RenderToStringOptions) => string;\n};\n\nexport type RadiantElementServerRenderSsrCapable = Omit<InternalRadiantSsrHost, 'constructor'> & {\n\tconstructor: Function;\n};\n\nexport type RadiantElementTrackedRenderSsrCapable = RadiantElementServerRenderSsrCapable;\n\nexport type RadiantElementSsrRuntime = {\n\tgetHostAttributes(component: InternalRadiantSsrHost): Record<string, string>;\n\trenderHost(component: InternalRadiantSsrHost): JsxRenderable;\n\trenderHostToString(component: InternalRadiantSsrHost, options?: RenderToStringOptions): string;\n\tresolveRenderBridge(component: object): RadiantElementRenderBridge | undefined;\n\trenderView(component: InternalRadiantSsrHost, options?: RenderToStringOptions): string;\n};\n\nconst RADIANT_ELEMENT_SSR_RUNTIME_SYMBOL = Symbol.for('@ecopages/radiant.element-ssr-runtime');\n\nexport function getRadiantElementSsrRuntime(): RadiantElementSsrRuntime | undefined {\n\treturn getActiveSsrScopeValue<RadiantElementSsrRuntime>(RADIANT_ELEMENT_SSR_RUNTIME_SYMBOL);\n}\n\nexport function withRadiantElementSsrRuntime<T>(runtime: RadiantElementSsrRuntime, render: () => T): T {\n\treturn withActiveSsrScopeValue(RADIANT_ELEMENT_SSR_RUNTIME_SYMBOL, runtime, render);\n}\n"
5
+ "import type { JsxRenderable } from '@ecopages/jsx';\nimport type { RadiantElementSsrHostSource, RadiantElementViewRenderSource } from './radiant-element-ssr-host-source';\n\n/** Core-local render options so client code never imports `@ecopages/jsx/server`. */\nexport type RadiantElementRenderToStringOptions = {\n\thydrate?: boolean;\n\tmode?: 'plain' | 'hydrate';\n};\n\nexport type RadiantElementRenderBridge = {\n\trenderHost?: () => JsxRenderable;\n\trenderHostToString?: (options?: RadiantElementRenderToStringOptions) => string;\n};\n\n/** Branded Element Host accepted by the server SSR pipeline. */\nexport type RadiantElementServerRenderSsrCapable = RadiantElementSsrHostSource;\n\nexport type { RadiantElementViewRenderSource };\n\nexport type RadiantElementSsrRuntime = {\n\tgetHostAttributes(component: RadiantElementServerRenderSsrCapable): Record<string, string>;\n\trenderHost(component: RadiantElementServerRenderSsrCapable): JsxRenderable;\n\trenderHostToString(\n\t\tcomponent: RadiantElementServerRenderSsrCapable,\n\t\toptions?: RadiantElementRenderToStringOptions,\n\t): string;\n\tresolveRenderBridge(component: object): RadiantElementRenderBridge | undefined;\n\trenderView(component: RadiantElementServerRenderSsrCapable, options?: RadiantElementRenderToStringOptions): string;\n};\n\n/** JSX SSR scope adapters installed by the server layer into client-safe core. */\nexport type RadiantElementSsrScopeAdapters = {\n\tget<T>(key: symbol): T | undefined;\n\twithValue<TValue, T>(key: symbol, value: TValue, render: () => T): T;\n};\n\nconst RADIANT_ELEMENT_SSR_RUNTIME_SYMBOL = Symbol.for('@ecopages/radiant.element-ssr-runtime');\n\nlet scopeAdapters: RadiantElementSsrScopeAdapters | undefined;\n\n/**\n * Called once from Radiant server SSR modules; client bundles never install this.\n * Module-local: SSR bundlers must resolve one `@ecopages/radiant` instance (do not inline duplicates).\n */\nexport function installRadiantElementSsrScopeAdapters(adapters: RadiantElementSsrScopeAdapters): void {\n\tscopeAdapters = adapters;\n}\n\nexport function getRadiantElementSsrRuntime(): RadiantElementSsrRuntime | undefined {\n\treturn scopeAdapters?.get<RadiantElementSsrRuntime>(RADIANT_ELEMENT_SSR_RUNTIME_SYMBOL);\n}\n\nexport function withRadiantElementSsrRuntime<T>(runtime: RadiantElementSsrRuntime, render: () => T): T {\n\tif (!scopeAdapters) {\n\t\tthrow new Error(\n\t\t\t'Radiant element SSR runtime requires the server scope adapters. Import a Radiant server SSR entrypoint before rendering.',\n\t\t);\n\t}\n\n\tif (scopeAdapters.get<RadiantElementSsrRuntime>(RADIANT_ELEMENT_SSR_RUNTIME_SYMBOL) === runtime) {\n\t\treturn render();\n\t}\n\n\treturn scopeAdapters.withValue(RADIANT_ELEMENT_SSR_RUNTIME_SYMBOL, runtime, render);\n}\n"
6
6
  ],
7
- "mappings": "i0BACA,iCAAS,6BAAoD,6BAsB7D,IAAM,EAAqC,OAAO,IAAI,uCAAuC,EAEtF,SAAS,CAA2B,EAAyC,CACnF,OAAO,EAAiD,CAAkC,EAGpF,SAAS,CAA+B,CAAC,EAAmC,EAAoB,CACtG,OAAO,EAAwB,EAAoC,EAAS,CAAM",
8
- "debugId": "15E2280905A5CEA764756E2164756E21",
7
+ "mappings": "AAoCA,IAAM,EAAqC,OAAO,IAAI,uCAAuC,EAEzF,EAMG,SAAS,CAAqC,CAAC,EAAgD,CACrG,EAAgB,EAGV,SAAS,CAA2B,EAAyC,CACnF,OAAO,GAAe,IAA8B,CAAkC,EAGhF,SAAS,CAA+B,CAAC,EAAmC,EAAoB,CACtG,GAAI,CAAC,EACJ,MAAU,MACT,0HACD,EAGD,GAAI,EAAc,IAA8B,CAAkC,IAAM,EACvF,OAAO,EAAO,EAGf,OAAO,EAAc,UAAU,EAAoC,EAAS,CAAM",
8
+ "debugId": "EBDF6F7C4EDB8AE064756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,12 +1,13 @@
1
1
  import type { EventEmitter } from '../tools';
2
2
  import { type JsxRenderable, type SubscribableJsxValueWithAccess } from '@ecopages/jsx';
3
- import type { RenderToStringOptions } from '@ecopages/jsx/server';
4
3
  import { type ReactivePropDefinition } from './reactive-prop-metadata';
5
4
  import type { SsrSerializableContextProvider } from '../context/context-provider';
6
5
  import type { UnknownContext } from '../context/types';
7
6
  import { type ReactiveBindingOption, type ReactiveBindingValue, type ReactiveBindings, type ReactiveFieldOptions, type ReactiveProperty, type ReactivePropertyOptions } from './reactive-prop-core';
8
7
  import type { SsrSerializableHydrationBinding } from './ssr-hydration-binding';
9
8
  import type { ReactiveState } from './reactivity-contract';
9
+ import { type RadiantElementRenderToStringOptions } from './radiant-element-ssr-registry';
10
+ import { RADIANT_ELEMENT_BRAND } from './radiant-element-brand';
10
11
  export type { ReactiveBindingOption, ReactiveBindingValue, ReactiveBindings, ReactiveFieldOptions, ReactiveProperty, ReactivePropertyOptions, } from './reactive-prop-core';
11
12
  declare const RadiantElementBase: {
12
13
  new (): HTMLElement;
@@ -158,6 +159,7 @@ export interface IRadiantElement<Bindings extends object = {}> {
158
159
  * @implements IRadiantElement<Bindings>
159
160
  */
160
161
  export declare class RadiantElement<Bindings extends object = {}> extends RadiantElementBase implements IRadiantElement<Bindings> {
162
+ readonly [RADIANT_ELEMENT_BRAND]: true;
161
163
  /**
162
164
  * Controls where the JSX render lifecycle mounts the component view.
163
165
  *
@@ -165,7 +167,7 @@ export declare class RadiantElement<Bindings extends object = {}> extends Radian
165
167
  * shadow root for client-side rendering. Host SSR helpers remain light-DOM
166
168
  * only and throw when shadow render mode is enabled.
167
169
  */
168
- protected readonly renderRootMode: 'light' | 'shadow';
170
+ readonly renderRootMode: 'light' | 'shadow';
169
171
  readonly bindings: ReactiveBindings<Bindings>;
170
172
  readonly $: ReactiveBindings<Bindings>;
171
173
  private readonly reactiveHost;
@@ -210,7 +212,7 @@ export declare class RadiantElement<Bindings extends object = {}> extends Radian
210
212
  render(): JsxRenderable;
211
213
  getReactivePropDefinitions(): ReactivePropDefinition[];
212
214
  getPropertyValue(name: string): unknown;
213
- renderViewToString(options?: RenderToStringOptions): string;
215
+ renderViewToString(options?: RadiantElementRenderToStringOptions): string;
214
216
  hydrate(): void;
215
217
  requestUpdate(): void;
216
218
  update(): void;
@@ -1,3 +1,3 @@
1
- var{defineProperty:K,getOwnPropertyNames:R0,getOwnPropertyDescriptor:I0}=Object,j0=Object.prototype.hasOwnProperty;function A0($){return this[$]}var L2=($)=>{var M=(g??=new WeakMap).get($),Q;if(M)return M;if(M=K({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function"){for(var Z of R0($))if(!j0.call(M,Z))K(M,Z,{get:A0.bind($,Z),enumerable:!(Q=I0($,Z))||Q.enumerable})}return g.set($,M),M},g;var C0=($)=>$;function k0($,M){this[$]=C0.bind(null,M)}var B2=($,M)=>{for(var Q in M)K($,Q,{get:M[Q],enumerable:!0,configurable:!0,set:k0.bind(M,Q)})};var x2=($,M)=>()=>($&&(M=$($=0)),M);var Y2=(($)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy($,{get:(M,Q)=>(typeof require<"u"?require:M)[Q]}):$)(function($){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+$+'" is not supported')});class f{contextProviders=new Map;hydrationBindings=new Map;registerContextProvider($,M){this.contextProviders.set($,M),this.hydrationBindings.set($,M)}registerHydrationBinding($,M){this.hydrationBindings.set($,M)}getContextProviders(){return[...this.contextProviders.values()]}getHydrationBindings(){return[...this.hydrationBindings.values()]}}var z=Symbol.for("@ecopages/radiant.reactivePropDefinitions");function f2($,M,Q){let Z=$.constructor,q=Z[z]??[];if(q.some((X)=>X.name===M))return;q.push({name:M,options:Q}),Z[z]=q}function N($){return($.constructor[z]??[]).slice()}var b=Symbol.for("@ecopages/radiant.legacy-instance-initializers"),m=Symbol.for("@ecopages/radiant.legacy-post-construction-initializers"),T0=Symbol.for("@ecopages/radiant.legacy-executed-post-construction-initializers");function _2($,M){s($,b,M)}function R2($,M){s($,m,M)}function c($){v0($,b)}function _($,M){let Q=$;S0($,M,Q[T0]??=new Set)}function s($,M,Q){let Z=$,q=Object.prototype.hasOwnProperty.call(Z,M)?Z[M]:void 0;if(Array.isArray(q)){q.push(Q);return}Object.defineProperty(Z,M,{value:[Q]})}function v0($,M){h0($,(Q)=>{let Z=Q[M];if(!Array.isArray(Z))return;for(let q of Z)q($)})}function S0($,M,Q){for(let Z of y($)){let q=Z[m];if(!Array.isArray(q))continue;for(let X of q){if(Q.has(X))continue;X($,M),Q.add(X)}}}function y($){let M=[],Q=Object.getPrototypeOf($);while(Q&&Q!==Object.prototype)M.unshift(Q),Q=Object.getPrototypeOf(Q);return M}function h0($,M){for(let Q of y($))M(Q)}function D($,M){switch(M){case"construct":c($);break;case"connect":_($,"connect");break;case"ssr":_($,"ssr");break}}class R{getInteractionTarget;getListenerContext;subscriptions=new Map;constructor($,M){this.getInteractionTarget=$;this.getListenerContext=M}subscribe($){let M=this.getInteractionTarget(),Q=this.getListenerContext(),Z=(X)=>{if(X.target&&X.target.matches($.selector))$.listener.call(Q,X)},q=`${$.type}:${$.selector}`;return M.addEventListener($.type,Z,$.options),this.subscriptions.set(q,{...$,listener:Z,target:M}),()=>{this.unsubscribe(q)}}hasEventSubscription($){return this.subscriptions.has($)}removeAll(){for(let $ of this.subscriptions.values())$.target.removeEventListener($.type,$.listener,$.options);this.subscriptions.clear()}unsubscribe($){let M=this.subscriptions.get($);if(M)M.target.removeEventListener(M.type,M.listener,M.options),this.subscriptions.delete($)}}function i($){switch($){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function V0($){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 g0($){switch($){case Number:return 0;case String:return"";case Boolean:return!1;default:return null}}function N0($){try{return JSON.parse($)}catch{throw TypeError("Invalid JSON string")}}var b0={array($){let M=N0($);if(!Array.isArray(M))throw TypeError(`Expected an array but got a value of type "${typeof M}"`);return M},boolean($){return!($==="0"||String($).toLowerCase()==="false")},number($){return Number($.replace(/_/g,""))},object($){let M=JSON.parse($);if(M===null||typeof M!=="object"||Array.isArray(M))throw TypeError(`expected value of type "object" but instead got value "${$}" of type "${V0(M)}"`);return M},string($){return $}},u={default:d,array:p,object:p};function p($){return JSON.stringify($)}function d($){return`${$}`}function H($,M){let Q=i(M);if(!Q)throw TypeError(`[radiant-element] Unknown type "${M}"`);return b0[Q]($)}function o($,M){let Q=i(M);if(!Q)throw TypeError(`[radiant-element] Unknown type "${M}"`);return(u[Q]??u.default??d)($)}function m0($){return typeof $==="boolean"}function c0($){return typeof $==="number"}function s0($){return typeof $==="string"}function y0($){return Array.isArray($)}function u0($){return typeof $==="object"&&!Array.isArray($)&&$!==null}function n($,M){switch($){case Boolean:return m0(M);case Number:return c0(M);case String:return s0(M);case Array:return y0(M);case Object:return u0(M);default:return!1}}var l=($,M,Q,Z)=>{if(M===Boolean){let X=$.getAttribute(Q);if(X===null)return Z;return X===""?!0:H(X,M)}let q=$.getAttribute(Q);return q!==null?H(q,M):Z??g0(M)};function r($,M){if(M!==void 0&&!n($,M))throw Error(`defaultValue does not match the expected type for ${$.name}`)}function t($,M,Q,Z){return{type:Q,name:$,initialValue:Z,attribute:M,converter:{fromAttribute:(q)=>H(q,Q),toAttribute:(q)=>o(q,Q)}}}class I{host;properties=new Map;preUpgradePropertyValues=new Map;constructor($){this.host=$;for(let M of Object.getOwnPropertyNames($))this.preUpgradePropertyValues.set(M,Reflect.get($,M))}register($){this.properties.set($.name,$)}getAll(){return Array.from(this.properties.values())}applyAttributeChange($,M,Q){let Z=this.properties.get($);if(!Z)return;let q=this.transformAttributeValue(Q,Z);Reflect.set(this.host,Z.name,q)}create($,M,Q,Z,q){let{type:X,attribute:G,reflect:E,defaultValue:h}=M,F=G??$,x=this.preUpgradePropertyValues.has($),_0=x?this.preUpgradePropertyValues.get($):void 0;r(X,h);let W=x?_0:Q(X,F,h);if(this.host.hasAttribute(F)&&(!E||W==null||W===""))this.host.removeAttribute(F);if(x&&Object.prototype.hasOwnProperty.call(this.host,$))Reflect.deleteProperty(this.host,$);let Y=t($,F,X,W);this.register(Y);let O=this.host.getReactiveMember($),V=O??q($,W);if(O&&W!==void 0)O.set(W);if(Z($,{bind:M.bind,signal:V,onSet:(w)=>this.reflectValue(F,E,Y,w)}),W!==void 0)queueMicrotask(()=>{let w=V.get();if(w===void 0)return;this.reflectValue(F,E,Y,w),this.host.notifyUpdate($,void 0,w)})}transformAttributeValue($,M){return $!==null?M.converter.fromAttribute($):$}reflectValue($,M,Q,Z){if(!M)return;if(Z==null||Z===""||Z===!1){this.host.removeAttribute($);return}let q=Q.converter.toAttribute(Z);this.host.setAttribute($,q)}}import{Computed as p0,state as i0,subtle as d0,trackDependency as o0}from"@ecopages/signals";function n0($){return $}function a($){return $}var e={trackDependency($){o0(n0($))},createComputed($){return new p0($)},createWatcher($){let M=new d0.Watcher($);return{watch(Q){M.watch(a(Q))},unwatch(Q){M.unwatch(a(Q))}}},createState($){return i0($)}};var $0=e;function J(){return $0}function l0($){$0=$}function c2($){J().trackDependency($)}function M0($){return J().createComputed($)}function Q0($){return J().createWatcher($)}function Z0($){return $.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}var U="data-hydration",X0="data-hydration-type",j="data-hydration-key";function i2($){let M=$.hydrationKey?` ${j}="${r0($.hydrationKey)}"`:"";return`<script type="application/json" ${U} ${X0}="${$.type}"${M}>${$.serializedValue}</script>`}function d2($){return Z0($)}function o2($,M){let Q=$.textContent;if(!Q)return M;try{return JSON.parse(Q)}catch{if(typeof console<"u")console.warn(`[@ecopages/radiant] Failed to parse hydration payload from <script ${U}>:`,Q.slice(0,120));return M}}function n2($,M,Q){let Z=$.children;if(!Z||Z.length===0){let q=$.childNodes;if(!q||q.length===0)return null;for(let X=0;X<q.length;X+=1){let G=q[X];if(G.nodeType!==1)continue;let E=G;if(q0(E,M,Q))return E}return null}for(let q=0;q<Z.length;q+=1)if(q0(Z[q],M,Q))return Z[q];return null}function q0($,M,Q){if($.tagName!=="SCRIPT"||!$.hasAttribute(U)||$.getAttribute(X0)!==M)return!1;if(Q!==void 0)return $.getAttribute(j)===Q;return!$.hasAttribute(j)}function r0($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}import{createMarkupNodeLike as t0,isKeyedJsxValue as G0,isSlotJsxValue as a0}from"@ecopages/jsx";var P="",B="data-radiant-slot-projection";function W0($){let M=new Map;for(let Q of Array.from($.childNodes)){if(Q2(Q))continue;e0(M,M2(Q),Q)}return M}function U0($){let M;try{M=JSON.parse($)}catch{if(typeof console<"u")console.warn("[@ecopages/radiant] Failed to parse slot projection payload:",$.slice(0,120));return new Map}let Q=new Map;for(let[Z,q]of Object.entries(M)){if(!Array.isArray(q)||q.length===0)continue;Q.set(A(Z),q.map((X)=>t0(X)))}return Q}function E0($){let M=Array.from($.childNodes).filter((Q)=>H0(Q)).map((Q)=>L(Q)??"").filter((Q)=>Q!=="");return M.length>0?M.join(""):void 0}function F0($){let M={};for(let[Q,Z]of $.entries()){let q=Z.map((X)=>L(X)).filter((X)=>X!==void 0&&X!=="");if(q.length>0)M[Q]=q}return Object.keys(M).length>0?JSON.stringify(M):void 0}function J0($,M){let Q=!1,Z=(X)=>{if(a0(X))return Q=!0,q2(X,M,Z);if(G0(X))return $2(X,Z(X.value));if(Z2(X))return{_$rType$:1,rootLocalName:X.rootLocalName,ssrIntrinsicProps:X.ssrIntrinsicProps,strings:X.strings,values:X.values.map((G)=>Z(G))};if(w0(X))return Array.from(X,(G)=>Z(G));return X},q=Z($);return{containsSlots:Q,value:q}}function P0($){for(let M of Array.from($.childNodes)){if(!D0(M))continue;let Q=M.textContent??void 0;return M.parentNode?.removeChild(M),Q}return}function e0($,M,Q){let Z=$.get(M);if(Z){Z.push(Q);return}$.set(M,[Q])}function $2($,M){return{...$,value:M}}function M2($){if($ instanceof Element)return A($.getAttribute("slot"));return P}function w0($){return typeof $!=="string"&&typeof $==="object"&&$!==null&&Symbol.iterator in $}function D0($){return $ instanceof HTMLScriptElement&&$.hasAttribute(B)}function H0($){return $ instanceof HTMLScriptElement&&$.hasAttribute(U)}function Q2($){return D0($)||H0($)}function Z2($){return typeof $==="object"&&$!==null&&$._$rType$===1&&Array.isArray($.strings)&&Array.isArray($.values)}function A($){return $??P}function L($){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(G0($))return L($.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(w0($))return Array.from($,(M)=>L(M)??"").join("");return}function q2($,M,Q){let Z=M.get(A($.name));if(Z&&Z.length>0)return Z.length===1?Z[0]:Z;if($.fallback===void 0)return"";return Q($.fallback)}import{hydrate as X2,render as G2}from"@ecopages/jsx";class C{#$;#M=new Map;#Q;#q;#Z;#X=0;constructor($){this.#$=$,this.#q=Q0(()=>{this.#$.requestUpdate()})}get slotProjectionVersion(){return this.#X}getSlotElements($){return this.ensureSlotProjectionState(),(this.#M.get($??P)??[]).filter((M)=>typeof Node<"u"&&M instanceof Element)}getSlotProjectionScriptTag(){this.ensureSlotProjectionState();let $=F0(this.#M);if(!$)return;return`<script type="application/json" ${B}>${W2($)}</script>`}getAuthoredHydrationScriptMarkup(){return E0(this.#$)??void 0}hydrate($){this.disconnectSlotProjectionObserver();try{X2(this.resolveTrackedRenderOutput().value,$)}finally{this.observeSlotProjection()}}render($){this.disconnectSlotProjectionObserver();try{G2(this.resolveTrackedRenderOutput().value,$)}finally{this.observeSlotProjection()}}observeSlotProjection(){if(typeof MutationObserver>"u"||this.#Z||!this.#$.isConnected)return;this.#Z=new MutationObserver(($)=>this.handleSlotProjectionMutations($)),this.#Z.observe(this.#$,{childList:!0})}disconnectSlotProjectionObserver(){this.#Z?.disconnect(),this.#Z=void 0}disconnectRenderWatcher(){if(!this.#Q)return;this.#q.unwatch(this.#Q),this.#Q=void 0}resolveTrackedRenderOutput(){let $=M0(()=>this.resolveRenderOutput()),M=$.get();if(!this.#$.isConnected)return M;if(this.#Q)this.#q.unwatch(this.#Q);return this.#Q=$,this.#q.watch($),M}dispose(){this.disconnectSlotProjectionObserver(),this.disconnectRenderWatcher()}ensureSlotProjectionState(){if(this.#M.size>0)return;let $=this.#$.isConnected?P0(this.#$):void 0;if(typeof $==="string"&&$!==""){this.#M=U0($),this.#X+=1;return}if(this.#$.childNodes.length>0)this.#M=W0(this.#$),this.#X+=1}handleSlotProjectionMutations($){let M=!1;for(let Q of $){for(let Z of Array.from(Q.removedNodes))if(this.removeProjectedSlotNode(Z))M=!0;for(let Z of Array.from(Q.addedNodes)){if(Z.parentNode!==this.#$)continue;if(this.addProjectedSlotNode(Z))M=!0}}if(M)this.#X+=1,this.#$.requestUpdate()}addProjectedSlotNode($){if($ instanceof HTMLScriptElement&&($.hasAttribute(B)||$.hasAttribute(U)))return!1;let M=$ instanceof Element?$.getAttribute("slot")??P:P,Q=this.#M.get(M);if(Q){if(Q.includes($))return!1;return Q.push($),!0}return this.#M.set(M,[$]),!0}removeProjectedSlotNode($){for(let[M,Q]of this.#M.entries()){let Z=Q.indexOf($);if(Z===-1)continue;if(Q.splice(Z,1),Q.length===0)this.#M.delete(M);return!0}return!1}resolveRenderOutput(){return this.ensureSlotProjectionState(),J0(this.#$.render(),this.#M)}}function W2($){return $.replace(/</g,"\\u003c")}class k{options;needsRender=!1;isRendering=!1;isRenderScheduled=!1;constructor($){this.options=$}get rendering(){return this.isRendering}get pending(){return this.needsRender}markPending(){this.needsRender=!0}clearPending(){this.needsRender=!1}requestUpdate(){if(this.needsRender=!0,this.isRenderScheduled)return;this.isRenderScheduled=!0,queueMicrotask(()=>{if(this.isRenderScheduled=!1,!this.needsRender)return;this.flush()})}flush(){if(!this.options.canFlush())return;while(this.needsRender&&this.options.canFlush())this.needsRender=!1,this.runCommit()}runExclusive($){this.isRendering=!0;try{return $()}finally{this.isRendering=!1}}runCommit(){this.isRendering=!0;try{this.options.commit()}finally{this.isRendering=!1}}}import{createSubscribableJsxValue as U2}from"@ecopages/jsx";function L0($){return U2({getValue:()=>$.get(),subscribe:(M)=>$.subscribe(M)})}class T{host;access;shouldAutoBind;bindings;$;reactiveMembers=new Map;jsxBindings=new Map;updateCallbacks=new Map;onConnectedCallbacks=[];onDisconnectedCallback=[];constructor($,M,Q){this.host=$;this.access=M;this.shouldAutoBind=Q;let Z=this.createReactiveBindingNamespace();this.bindings=Z,this.$=Z}connectHost(){for(let $ of this.onConnectedCallbacks)$()}disconnectHost(){for(let $ of this.onDisconnectedCallback)$()}registerCleanupCallback($){this.onDisconnectedCallback.push($)}registerConnectedCallback($){this.onConnectedCallbacks.push($)}notifyUpdate($,M,Q){let Z=this.updateCallbacks.get($);if(!Z)return;for(let q of[...Z.keys()])q()}getReactiveMember($){return this.reactiveMembers.get($)}createReactiveMember($,M){let Q=J().createState(M);return this.registerMember($,Q),Q}registerReactiveMember($,M){this.registerMember($,M)}registerMember($,M){this.reactiveMembers.set($,M),this.jsxBindings.delete($);let Q=this.updateCallbacks.get($);if(Q)for(let Z of Q.keys())this.subscribeCallback($,Z)}subscribeCallback($,M){let Q=this.updateCallbacks.get($),Z=this.reactiveMembers.get($);if(!Q||!Z||Q.get(M))return;let q=Z.subscribe(()=>M());Q.set(M,q)}getReactiveBinding($){let M=$,Q=this.jsxBindings.get(M);if(Q)return Q;let Z=this.reactiveMembers.get(M);if(!Z)throw Error(`No reactive binding registered for "${String($)}".`);let q=L0(Z);return this.jsxBindings.set(M,q),q}registerUpdateCallback($,M){let Q=this.updateCallbacks.get($);if(!Q)Q=new Map,this.updateCallbacks.set($,Q);return Q.set(M,void 0),this.subscribeCallback($,M),()=>{let Z=this.updateCallbacks.get($);if(Z?.get(M)?.(),Z?.delete(M),Z&&Z.size===0)this.updateCallbacks.delete($)}}defineReactiveBinding($,M=!0){let Q=typeof M==="string"?M:M?`$${$}`:void 0,Z=this.access.getBindingTarget?.(this.host)??this.host;if(!Q||this.access.hasProperty(this.host,Q))return;this.access.defineProperty(Z,Q,{get:()=>this.getReactiveBinding($),enumerable:!1,configurable:!0})}defineReactiveAccessor($,M){let Q=M.bind??this.shouldAutoBind();this.defineReactiveBinding($,Q),this.access.defineProperty(this.host,$,{get:()=>M.signal.get(),set:(Z)=>{M.signal.set(Z),M.onSet?.(Z)},enumerable:!0,configurable:!0})}createReactiveField($,M,Q={}){let Z=this.reactiveMembers.get($),q=Z??this.createReactiveMember($,M);if(Z&&M!==void 0)q.set(M);if(this.defineReactiveAccessor($,{bind:Q.bind,signal:q}),!Q.suppressInitialNotify)this.notifyUpdate($,void 0,q.get())}createReactiveBindingNamespace(){return new Proxy(Object.create(null),{get:($,M)=>{if(typeof M!=="string")return;return this.getReactiveBinding(M)}})}}var v=Symbol.for("@ecopages/radiant.ssr-preparation-callbacks"),B0=Symbol.for("@ecopages/radiant.ssr-preparation-running");function F3($,M){let Z=$[v];if(Array.isArray(Z)){Z.push(M);return}Object.defineProperty($,v,{value:[M],configurable:!0})}function x0($){let M=$,Q=M[v];if(!Array.isArray(Q))return;M[B0]=!0;try{for(let Z of Q)Z()}finally{delete M[B0]}}var S=Symbol.for("@ecopages/radiant.hydrator-installed");function P3(){globalThis[S]=!0}function w3(){delete globalThis[S]}function Y0(){return globalThis[S]===!0}import{getActiveSsrScopeValue as E2,withActiveSsrScopeValue as F2}from"@ecopages/jsx/server";var O0=Symbol.for("@ecopages/radiant.element-ssr-runtime");function K0(){return E2(O0)}function L3($,M){return F2(O0,$,M)}import{hasHydrationMarkers as J2,jsx as P2}from"@ecopages/jsx";var w2=D2();function D2(){if(typeof HTMLElement<"u")return HTMLElement;throw Error("RadiantElement requires HTMLElement. Install '@ecopages/radiant/server/light-dom-shim' before SSR imports.")}class z0 extends w2{renderRootMode="light";bindings;$;reactiveHost;reactivePropertyState;eventSubscriptionRegistry;hostSsrRegistry=new f;eventEmitters=new Map;elementReady=!1;isFirstConnectPending=!1;renderScheduler;renderRuntime;constructor(){super();this.reactivePropertyState=new I(this),this.eventSubscriptionRegistry=new R(()=>this.resolveRenderSurface().interactionTarget,()=>this),this.renderScheduler=new k({canFlush:()=>this.isConnected&&!this.renderScheduler.rendering&&!(this.isFirstConnectPending&&f0(this)),commit:()=>{let{renderTarget:$}=this.resolveRenderSurface();this.getOrCreateRenderRuntime().render($)}}),this.reactiveHost=new T(this,{defineProperty:($,M,Q)=>Object.defineProperty($,M,Q),getBindingTarget:($)=>Object.getPrototypeOf($)??$,hasProperty:($,M)=>(M in $),readProperty:($,M)=>$[M]},()=>this.shouldAutoBindReactiveMembers()),this.bindings=this.reactiveHost.bindings,this.$=this.reactiveHost.$,D(this,"construct")}get slotProjectionVersion(){return this.renderRuntime?.slotProjectionVersion??0}connectedCallback(){D(this,"connect");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(),f0(this)){if(this.renderScheduler.clearPending(),this.hydrate(),this.renderScheduler.pending)this.update();return}this.update()})}connectedContextCallback($){}disconnectedCallback(){this.renderRuntime?.dispose(),this.renderRuntime=void 0,this.eventSubscriptionRegistry.removeAll(),this.reactiveHost.disconnectHost()}notifyUpdate($,M,Q){this.reactiveHost.notifyUpdate($,M,Q)}attributeChangedCallback($,M,Q){if(M===Q||!this.elementReady)return;this.reactivePropertyState.applyAttributeChange($,M,Q)}renderTemplate({target:$=this,template:M,insert:Q="replace",sanitize:Z}){let q=Z?Z(M):M;switch(Q){case"replace":$.innerHTML=q;break;case"beforeend":$.insertAdjacentHTML("beforeend",q);break;case"afterbegin":$.insertAdjacentHTML("afterbegin",q);break;case"beforebegin":$.insertAdjacentHTML("beforebegin",q);break;case"afterend":$.insertAdjacentHTML("afterend",q);break}}render(){return P2("slot",{})}getReactivePropDefinitions(){return N(this)}getPropertyValue($){return Reflect.get(this,$)}renderViewToString($={}){if(!this.shouldRunRenderLifecycle())return this.innerHTML;return D(this,"ssr"),this.prepareForSsr(),H2().renderView(this,$)}hydrate(){if(!this.shouldRunRenderLifecycle()||!this.isConnected||this.renderScheduler.rendering)return;let{renderTarget:$}=this.resolveRenderSurface(),M=this.getOrCreateRenderRuntime();this.renderScheduler.runExclusive(()=>{M.hydrate($)})}requestUpdate(){if(!this.shouldRunRenderLifecycle())return;this.renderScheduler.requestUpdate()}update(){if(!this.shouldRunRenderLifecycle())return;this.renderScheduler.markPending(),this.renderScheduler.flush()}registerReactiveProperty($){this.reactivePropertyState.register($)}getReactiveProperties(){return this.reactivePropertyState.getAll()}registerContextProvider($,M){this.hostSsrRegistry.registerContextProvider($,M)}registerHydrationBinding($,M){this.hostSsrRegistry.registerHydrationBinding($,M)}getContextProviders(){return this.hostSsrRegistry.getContextProviders()}getHydrationBindings(){return this.hostSsrRegistry.getHydrationBindings()}prepareForSsr(){x0(this)}shouldAutoBindReactiveMembers(){return!0}shouldRunRenderLifecycle(){return this.render!==z0.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($,M){return this.reactiveHost.registerUpdateCallback($,M)}getReactiveBinding($){return this.reactiveHost.getReactiveBinding($)}bind($){return this.reactiveHost.getReactiveBinding($)}defineReactiveBinding($,M=!0){this.reactiveHost.defineReactiveBinding($,M)}createReactiveMember($,M){return this.reactiveHost.createReactiveMember($,M)}registerReactiveMember($,M){this.reactiveHost.registerReactiveMember($,M)}getReactiveMember($){return this.reactiveHost.getReactiveMember($)}subscribeEvents($){let M=[];for(let Q of $)M.push(this.subscribeEvent(Q));return M}hasEventSubscription($){return this.eventSubscriptionRegistry.hasEventSubscription($)}subscribeEvent($){return this.eventSubscriptionRegistry.subscribe($)}registerCleanupCallback($){this.reactiveHost.registerCleanupCallback($)}registerConnectedCallback($){this.reactiveHost.registerConnectedCallback($)}registerEventEmitter($,M){this.eventEmitters.set($,M)}getRef($,M=!1){let Q=`[data-ref="${$}"]`,{queryRoot:Z}=this.resolveRenderSurface();if(M)return Array.from(Z.querySelectorAll(Q));return Z.querySelector(Q)??null}getSlotElement($){return this.getSlotElements($)[0]??null}getSlotElements($){return this.getOrCreateRenderRuntime().getSlotElements($)}createReactiveField($,M,Q={}){this.reactiveHost.createReactiveField($,M,Q)}createReactiveProp($,M){this.reactivePropertyState.create($,M,(Q,Z,q)=>l(this,Q,Z,q),(Q,Z)=>{this.reactiveHost.defineReactiveAccessor(Q,Z)},(Q,Z)=>this.createReactiveMember(Q,Z))}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 C(this),this.renderRuntime}resolveRenderSurface(){let $=this.getRenderTarget(),M=typeof ShadowRoot<"u"&&$ instanceof ShadowRoot?$:this;return{interactionTarget:M,queryRoot:M,renderTarget:$}}}function H2(){let $=K0();if(!$)throw Error("Radiant SSR runtime unavailable. Import `@ecopages/radiant/server/render-component` first.");return $}function f0($){return Y0()&&J2($)}export{z0 as RadiantElement};
1
+ class K{contextProviders=new Map;hydrationBindings=new Map;registerContextProvider($,Q){this.contextProviders.set($,Q),this.hydrationBindings.set($,Q)}registerHydrationBinding($,Q){this.hydrationBindings.set($,Q)}getContextProviders(){return[...this.contextProviders.values()]}getHydrationBindings(){return[...this.hydrationBindings.values()]}}var z=Symbol.for("@ecopages/radiant.reactivePropDefinitions");function U2($,Q,Z){let q=$.constructor,X=q[z]??[];if(X.some((G)=>G.name===Q))return;X.push({name:Q,options:Z}),q[z]=X}function b($){return($.constructor[z]??[]).slice()}var c=Symbol.for("@ecopages/radiant.legacy-instance-initializers"),m=Symbol.for("@ecopages/radiant.legacy-post-construction-initializers"),_0=Symbol.for("@ecopages/radiant.legacy-executed-post-construction-initializers");function J2($,Q){y($,c,Q)}function P2($,Q){y($,m,Q)}function s($){j0($,c)}function R($,Q){let Z=$;I0($,Q,Z[_0]??=new Set)}function y($,Q,Z){let q=$,X=Object.prototype.hasOwnProperty.call(q,Q)?q[Q]:void 0;if(Array.isArray(X)){X.push(Z);return}Object.defineProperty(q,Q,{value:[Z]})}function j0($,Q){A0($,(Z)=>{let q=Z[Q];if(!Array.isArray(q))return;for(let X of q)X($)})}function I0($,Q,Z){for(let q of u($)){let X=q[m];if(!Array.isArray(X))continue;for(let G of X){if(Z.has(G))continue;G($,Q),Z.add(G)}}}function u($){let Q=[],Z=Object.getPrototypeOf($);while(Z&&Z!==Object.prototype)Q.unshift(Z),Z=Object.getPrototypeOf(Z);return Q}function A0($,Q){for(let Z of u($))Q(Z)}function H($,Q){switch(Q){case"construct":s($);break;case"connect":R($,"connect");break;case"ssr":R($,"ssr");break}}class _{getInteractionTarget;getListenerContext;subscriptions=new Map;constructor($,Q){this.getInteractionTarget=$;this.getListenerContext=Q}subscribe($){let Q=this.getInteractionTarget(),Z=this.getListenerContext(),q=(G)=>{if(G.target&&G.target.matches($.selector))$.listener.call(Z,G)},X=`${$.type}:${$.selector}`;return Q.addEventListener($.type,q,$.options),this.subscriptions.set(X,{...$,listener:q,target:Q}),()=>{this.unsubscribe(X)}}hasEventSubscription($){return this.subscriptions.has($)}removeAll(){for(let $ of this.subscriptions.values())$.target.removeEventListener($.type,$.listener,$.options);this.subscriptions.clear()}unsubscribe($){let Q=this.subscriptions.get($);if(Q)Q.target.removeEventListener(Q.type,Q.listener,Q.options),this.subscriptions.delete($)}}function d($){switch($){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function C0($){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 k0($){switch($){case Number:return 0;case String:return"";case Boolean:return!1;default:return null}}function v0($){try{return JSON.parse($)}catch{throw TypeError("Invalid JSON string")}}var T0={array($){let Q=v0($);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 "${C0(Q)}"`);return Q},string($){return $}},p={default:o,array:i,object:i};function i($){return JSON.stringify($)}function o($){return`${$}`}function x($,Q){let Z=d(Q);if(!Z)throw TypeError(`[radiant-element] Unknown type "${Q}"`);return T0[Z]($)}function n($,Q){let Z=d(Q);if(!Z)throw TypeError(`[radiant-element] Unknown type "${Q}"`);return(p[Z]??p.default??o)($)}function S0($){return typeof $==="boolean"}function h0($){return typeof $==="number"}function V0($){return typeof $==="string"}function g0($){return Array.isArray($)}function N0($){return typeof $==="object"&&!Array.isArray($)&&$!==null}function l($,Q){switch($){case Boolean:return S0(Q);case Number:return h0(Q);case String:return V0(Q);case Array:return g0(Q);case Object:return N0(Q);default:return!1}}var r=($,Q,Z,q)=>{if(Q===Boolean){let G=$.getAttribute(Z);if(G===null)return q;return G===""?!0:x(G,Q)}let X=$.getAttribute(Z);return X!==null?x(X,Q):q??k0(Q)};function t($,Q){if(Q!==void 0&&!l($,Q))throw Error(`defaultValue does not match the expected type for ${$.name}`)}function a($,Q,Z,q){return{type:Z,name:$,initialValue:q,attribute:Q,converter:{fromAttribute:(X)=>x(X,Z),toAttribute:(X)=>n(X,Z)}}}class j{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,Z){let q=this.properties.get($);if(!q)return;let X=this.transformAttributeValue(Z,q);Reflect.set(this.host,q.name,X)}create($,Q,Z,q,X){let{type:G,attribute:M,reflect:U,defaultValue:g}=Q,F=M??$,Y=this.preUpgradePropertyValues.has($),R0=Y?this.preUpgradePropertyValues.get($):void 0;t(G,g);let W=Y?R0:Z(G,F,g);if(this.host.hasAttribute(F)&&(!U||W==null||W===""))this.host.removeAttribute(F);if(Y&&Object.prototype.hasOwnProperty.call(this.host,$))Reflect.deleteProperty(this.host,$);let f=a($,F,G,W);this.register(f);let O=this.host.getReactiveMember($),N=O??X($,W);if(O&&W!==void 0)O.set(W);if(q($,{bind:Q.bind,signal:N,onSet:(w)=>this.reflectValue(F,U,f,w)}),W!==void 0)queueMicrotask(()=>{let w=N.get();if(w===void 0)return;this.reflectValue(F,U,f,w),this.host.notifyUpdate($,void 0,w)})}transformAttributeValue($,Q){return $!==null?Q.converter.fromAttribute($):$}reflectValue($,Q,Z,q){if(!Q)return;if(q==null||q===""||q===!1){this.host.removeAttribute($);return}let X=Z.converter.toAttribute(q);this.host.setAttribute($,X)}}import{Computed as b0,state as c0,subtle as m0,trackDependency as s0}from"@ecopages/signals";function y0($){return $}function e($){return $}var $0={trackDependency($){s0(y0($))},createComputed($){return new b0($)},createWatcher($){let Q=new m0.Watcher($);return{watch(Z){Q.watch(e(Z))},unwatch(Z){Q.unwatch(e(Z))}}},createState($){return c0($)}};var Q0=$0;function J(){return Q0}function u0($){Q0=$}function I2($){J().trackDependency($)}function Z0($){return J().createComputed($)}function q0($){return J().createWatcher($)}function X0($){return $.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}var E="data-hydration",M0="data-hydration-type",I="data-hydration-key";function T2($){let Q=$.hydrationKey?` ${I}="${p0($.hydrationKey)}"`:"";return`<script type="application/json" ${E} ${M0}="${$.type}"${Q}>${$.serializedValue}</script>`}function S2($){return X0($)}function h2($,Q){let Z=$.textContent;if(!Z)return Q;try{return JSON.parse(Z)}catch{if(typeof console<"u")console.warn(`[@ecopages/radiant] Failed to parse hydration payload from <script ${E}>:`,Z.slice(0,120));return Q}}function V2($,Q,Z){let q=$.children;if(!q||q.length===0){let X=$.childNodes;if(!X||X.length===0)return null;for(let G=0;G<X.length;G+=1){let M=X[G];if(M.nodeType!==1)continue;let U=M;if(G0(U,Q,Z))return U}return null}for(let X=0;X<q.length;X+=1)if(G0(q[X],Q,Z))return q[X];return null}function G0($,Q,Z){if($.tagName!=="SCRIPT"||!$.hasAttribute(E)||$.getAttribute(M0)!==Q)return!1;if(Z!==void 0)return $.getAttribute(I)===Z;return!$.hasAttribute(I)}function p0($){return $.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}import{createMarkupNodeLike as i0,isKeyedJsxValue as W0,isSlotJsxValue as d0}from"@ecopages/jsx";var P="",L="data-radiant-slot-projection";function E0($){let Q=new Map;for(let Z of Array.from($.childNodes)){if(r0(Z))continue;o0(Q,l0(Z),Z)}return Q}function U0($){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 Z=new Map;for(let[q,X]of Object.entries(Q)){if(!Array.isArray(X)||X.length===0)continue;Z.set(A(q),X.map((G)=>i0(G)))}return Z}function F0($){let Q=Array.from($.childNodes).filter((Z)=>x0(Z)).map((Z)=>B(Z)??"").filter((Z)=>Z!=="");return Q.length>0?Q.join(""):void 0}function J0($){let Q={};for(let[Z,q]of $.entries()){let X=q.map((G)=>B(G)).filter((G)=>G!==void 0&&G!=="");if(X.length>0)Q[Z]=X}return Object.keys(Q).length>0?JSON.stringify(Q):void 0}function P0($,Q){let Z=!1,q=(G)=>{if(d0(G))return Z=!0,a0(G,Q,q);if(W0(G))return n0(G,q(G.value));if(t0(G))return{_$rType$:1,rootLocalName:G.rootLocalName,ssrIntrinsicProps:G.ssrIntrinsicProps,strings:G.strings,values:G.values.map((M)=>q(M))};if(D0(G))return Array.from(G,(M)=>q(M));return G},X=q($);return{containsSlots:Z,value:X}}function w0($){for(let Q of Array.from($.childNodes)){if(!H0(Q))continue;let Z=Q.textContent??void 0;return Q.parentNode?.removeChild(Q),Z}return}function o0($,Q,Z){let q=$.get(Q);if(q){q.push(Z);return}$.set(Q,[Z])}function n0($,Q){return{...$,value:Q}}function l0($){if($ instanceof Element)return A($.getAttribute("slot"));return P}function D0($){return typeof $!=="string"&&typeof $==="object"&&$!==null&&Symbol.iterator in $}function H0($){return $ instanceof HTMLScriptElement&&$.hasAttribute(L)}function x0($){return $ instanceof HTMLScriptElement&&$.hasAttribute(E)}function r0($){return H0($)||x0($)}function t0($){return typeof $==="object"&&$!==null&&$._$rType$===1&&Array.isArray($.strings)&&Array.isArray($.values)}function A($){return $??P}function B($){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(W0($))return B($.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(D0($))return Array.from($,(Q)=>B(Q)??"").join("");return}function a0($,Q,Z){let q=Q.get(A($.name));if(q&&q.length>0)return q.length===1?q[0]:q;if($.fallback===void 0)return"";return Z($.fallback)}import{hydrate as e0,render as $2}from"@ecopages/jsx";class C{#$;#Q=new Map;#Z;#X;#q;#G=0;constructor($){this.#$=$,this.#X=q0(()=>{this.#$.requestUpdate()})}get slotProjectionVersion(){return this.#G}getSlotElements($){return this.ensureSlotProjectionState(),(this.#Q.get($??P)??[]).filter((Q)=>typeof Node<"u"&&Q instanceof Element)}getSlotProjectionScriptTag(){this.ensureSlotProjectionState();let $=J0(this.#Q);if(!$)return;return`<script type="application/json" ${L}>${Q2($)}</script>`}getAuthoredHydrationScriptMarkup(){return F0(this.#$)??void 0}hydrate($){this.disconnectSlotProjectionObserver();try{e0(this.resolveTrackedRenderOutput().value,$)}finally{this.observeSlotProjection()}}render($){this.disconnectSlotProjectionObserver();try{$2(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.#Z)return;this.#X.unwatch(this.#Z),this.#Z=void 0}resolveTrackedRenderOutput(){let $=Z0(()=>this.resolveRenderOutput()),Q=$.get();if(!this.#$.isConnected)return Q;if(this.#Z)this.#X.unwatch(this.#Z);return this.#Z=$,this.#X.watch($),Q}dispose(){this.disconnectSlotProjectionObserver(),this.disconnectRenderWatcher()}ensureSlotProjectionState(){if(this.#Q.size>0)return;let $=this.#$.isConnected?w0(this.#$):void 0;if(typeof $==="string"&&$!==""){this.#Q=U0($),this.#G+=1;return}if(this.#$.childNodes.length>0)this.#Q=E0(this.#$),this.#G+=1}handleSlotProjectionMutations($){let Q=!1;for(let Z of $){for(let q of Array.from(Z.removedNodes))if(this.removeProjectedSlotNode(q))Q=!0;for(let q of Array.from(Z.addedNodes)){if(q.parentNode!==this.#$)continue;if(this.addProjectedSlotNode(q))Q=!0}}if(Q)this.#G+=1,this.#$.requestUpdate()}addProjectedSlotNode($){if($ instanceof HTMLScriptElement&&($.hasAttribute(L)||$.hasAttribute(E)))return!1;let Q=$ instanceof Element?$.getAttribute("slot")??P:P,Z=this.#Q.get(Q);if(Z){if(Z.includes($))return!1;return Z.push($),!0}return this.#Q.set(Q,[$]),!0}removeProjectedSlotNode($){for(let[Q,Z]of this.#Q.entries()){let q=Z.indexOf($);if(q===-1)continue;if(Z.splice(q,1),Z.length===0)this.#Q.delete(Q);return!0}return!1}resolveRenderOutput(){return this.ensureSlotProjectionState(),P0(this.#$.render(),this.#Q)}}function Q2($){return $.replace(/</g,"\\u003c")}class k{options;needsRender=!1;isRendering=!1;isRenderScheduled=!1;constructor($){this.options=$}get rendering(){return this.isRendering}get pending(){return this.needsRender}markPending(){this.needsRender=!0}clearPending(){this.needsRender=!1}requestUpdate(){if(this.needsRender=!0,this.isRenderScheduled)return;this.isRenderScheduled=!0,queueMicrotask(()=>{if(this.isRenderScheduled=!1,!this.needsRender)return;this.flush()})}flush(){if(!this.options.canFlush())return;while(this.needsRender&&this.options.canFlush())this.needsRender=!1,this.runCommit()}runExclusive($){this.isRendering=!0;try{return $()}finally{this.isRendering=!1}}runCommit(){this.isRendering=!0;try{this.options.commit()}finally{this.isRendering=!1}}}import{createSubscribableJsxValue as Z2}from"@ecopages/jsx";function B0($){return Z2({getValue:()=>$.get(),subscribe:(Q)=>$.subscribe(Q)})}class v{host;access;shouldAutoBind;bindings;$;reactiveMembers=new Map;jsxBindings=new Map;updateCallbacks=new Map;onConnectedCallbacks=[];onDisconnectedCallback=[];constructor($,Q,Z){this.host=$;this.access=Q;this.shouldAutoBind=Z;let q=this.createReactiveBindingNamespace();this.bindings=q,this.$=q}connectHost(){for(let $ of this.onConnectedCallbacks)$()}disconnectHost(){for(let $ of this.onDisconnectedCallback)$()}registerCleanupCallback($){this.onDisconnectedCallback.push($)}registerConnectedCallback($){this.onConnectedCallbacks.push($)}notifyUpdate($,Q,Z){let q=this.updateCallbacks.get($);if(!q)return;for(let X of[...q.keys()])X()}getReactiveMember($){return this.reactiveMembers.get($)}createReactiveMember($,Q){let Z=J().createState(Q);return this.registerMember($,Z),Z}registerReactiveMember($,Q){this.registerMember($,Q)}registerMember($,Q){this.reactiveMembers.set($,Q),this.jsxBindings.delete($);let Z=this.updateCallbacks.get($);if(Z)for(let q of Z.keys())this.subscribeCallback($,q)}subscribeCallback($,Q){let Z=this.updateCallbacks.get($),q=this.reactiveMembers.get($);if(!Z||!q||Z.get(Q))return;let X=q.subscribe(()=>Q());Z.set(Q,X)}getReactiveBinding($){let Q=$,Z=this.jsxBindings.get(Q);if(Z)return Z;let q=this.reactiveMembers.get(Q);if(!q)throw Error(`No reactive binding registered for "${String($)}".`);let X=B0(q);return this.jsxBindings.set(Q,X),X}registerUpdateCallback($,Q){let Z=this.updateCallbacks.get($);if(!Z)Z=new Map,this.updateCallbacks.set($,Z);return Z.set(Q,void 0),this.subscribeCallback($,Q),()=>{let q=this.updateCallbacks.get($);if(q?.get(Q)?.(),q?.delete(Q),q&&q.size===0)this.updateCallbacks.delete($)}}defineReactiveBinding($,Q=!0){let Z=typeof Q==="string"?Q:Q?`$${$}`:void 0,q=this.access.getBindingTarget?.(this.host)??this.host;if(!Z||this.access.hasProperty(this.host,Z))return;this.access.defineProperty(q,Z,{get:()=>this.getReactiveBinding($),enumerable:!1,configurable:!0})}defineReactiveAccessor($,Q){let Z=Q.bind??this.shouldAutoBind();this.defineReactiveBinding($,Z),this.access.defineProperty(this.host,$,{get:()=>Q.signal.get(),set:(q)=>{Q.signal.set(q),Q.onSet?.(q)},enumerable:!0,configurable:!0})}createReactiveField($,Q,Z={}){let q=this.reactiveMembers.get($),X=q??this.createReactiveMember($,Q);if(q&&Q!==void 0)X.set(Q);if(this.defineReactiveAccessor($,{bind:Z.bind,signal:X}),!Z.suppressInitialNotify)this.notifyUpdate($,void 0,X.get())}createReactiveBindingNamespace(){return new Proxy(Object.create(null),{get:($,Q)=>{if(typeof Q!=="string")return;return this.getReactiveBinding(Q)}})}}var T=Symbol.for("@ecopages/radiant.ssr-preparation-callbacks"),L0=Symbol.for("@ecopages/radiant.ssr-preparation-running");function t2($,Q){let q=$[T];if(Array.isArray(q)){q.push(Q);return}Object.defineProperty($,T,{value:[Q],configurable:!0})}function Y0($){let Q=$,Z=Q[T];if(!Array.isArray(Z))return;Q[L0]=!0;try{for(let q of Z)q()}finally{delete Q[L0]}}var S=Symbol.for("@ecopages/radiant.hydrator-installed");function e2(){globalThis[S]=!0}function $3(){delete globalThis[S]}function f0(){return globalThis[S]===!0}var h=Symbol.for("@ecopages/radiant.element-ssr-runtime"),D;function Z3($){D=$}function O0(){return D?.get(h)}function q3($,Q){if(!D)throw Error("Radiant element SSR runtime requires the server scope adapters. Import a Radiant server SSR entrypoint before rendering.");if(D.get(h)===$)return Q();return D.withValue(h,$,Q)}var K0=Symbol.for("@ecopages/radiant.RadiantElement");import{hasHydrationMarkers as q2,jsx as X2}from"@ecopages/jsx";var G2=M2();function M2(){if(typeof HTMLElement<"u")return HTMLElement;throw Error("RadiantElement requires HTMLElement. Install '@ecopages/radiant/server/light-dom-shim' before SSR imports.")}class V extends G2{renderRootMode="light";bindings;$;reactiveHost;reactivePropertyState;eventSubscriptionRegistry;hostSsrRegistry=new K;eventEmitters=new Map;elementReady=!1;isFirstConnectPending=!1;renderScheduler;renderRuntime;constructor(){super();this.reactivePropertyState=new j(this),this.eventSubscriptionRegistry=new _(()=>this.resolveRenderSurface().interactionTarget,()=>this),this.renderScheduler=new k({canFlush:()=>this.isConnected&&!this.renderScheduler.rendering&&!(this.isFirstConnectPending&&z0(this)),commit:()=>{let{renderTarget:$}=this.resolveRenderSurface();this.getOrCreateRenderRuntime().render($)}}),this.reactiveHost=new v(this,{defineProperty:($,Q,Z)=>Object.defineProperty($,Q,Z),getBindingTarget:($)=>Object.getPrototypeOf($)??$,hasProperty:($,Q)=>(Q in $),readProperty:($,Q)=>$[Q]},()=>this.shouldAutoBindReactiveMembers()),this.bindings=this.reactiveHost.bindings,this.$=this.reactiveHost.$,H(this,"construct")}get slotProjectionVersion(){return this.renderRuntime?.slotProjectionVersion??0}connectedCallback(){H(this,"connect");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(),z0(this)){if(this.renderScheduler.clearPending(),this.hydrate(),this.renderScheduler.pending)this.update();return}this.update()})}connectedContextCallback($){}disconnectedCallback(){this.renderRuntime?.dispose(),this.renderRuntime=void 0,this.eventSubscriptionRegistry.removeAll(),this.reactiveHost.disconnectHost()}notifyUpdate($,Q,Z){this.reactiveHost.notifyUpdate($,Q,Z)}attributeChangedCallback($,Q,Z){if(Q===Z||!this.elementReady)return;this.reactivePropertyState.applyAttributeChange($,Q,Z)}renderTemplate({target:$=this,template:Q,insert:Z="replace",sanitize:q}){let X=q?q(Q):Q;switch(Z){case"replace":$.innerHTML=X;break;case"beforeend":$.insertAdjacentHTML("beforeend",X);break;case"afterbegin":$.insertAdjacentHTML("afterbegin",X);break;case"beforebegin":$.insertAdjacentHTML("beforebegin",X);break;case"afterend":$.insertAdjacentHTML("afterend",X);break}}render(){return X2("slot",{})}getReactivePropDefinitions(){return b(this)}getPropertyValue($){return Reflect.get(this,$)}renderViewToString($={}){if(!this.shouldRunRenderLifecycle())return this.innerHTML;return H(this,"ssr"),this.prepareForSsr(),W2().renderView(this,$)}hydrate(){if(!this.shouldRunRenderLifecycle()||!this.isConnected||this.renderScheduler.rendering)return;let{renderTarget:$}=this.resolveRenderSurface(),Q=this.getOrCreateRenderRuntime();this.renderScheduler.runExclusive(()=>{Q.hydrate($)})}requestUpdate(){if(!this.shouldRunRenderLifecycle())return;this.renderScheduler.requestUpdate()}update(){if(!this.shouldRunRenderLifecycle())return;this.renderScheduler.markPending(),this.renderScheduler.flush()}registerReactiveProperty($){this.reactivePropertyState.register($)}getReactiveProperties(){return this.reactivePropertyState.getAll()}registerContextProvider($,Q){this.hostSsrRegistry.registerContextProvider($,Q)}registerHydrationBinding($,Q){this.hostSsrRegistry.registerHydrationBinding($,Q)}getContextProviders(){return this.hostSsrRegistry.getContextProviders()}getHydrationBindings(){return this.hostSsrRegistry.getHydrationBindings()}prepareForSsr(){Y0(this)}shouldAutoBindReactiveMembers(){return!0}shouldRunRenderLifecycle(){return this.render!==V.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)}createReactiveMember($,Q){return this.reactiveHost.createReactiveMember($,Q)}registerReactiveMember($,Q){this.reactiveHost.registerReactiveMember($,Q)}getReactiveMember($){return this.reactiveHost.getReactiveMember($)}subscribeEvents($){let Q=[];for(let Z of $)Q.push(this.subscribeEvent(Z));return Q}hasEventSubscription($){return this.eventSubscriptionRegistry.hasEventSubscription($)}subscribeEvent($){return this.eventSubscriptionRegistry.subscribe($)}registerCleanupCallback($){this.reactiveHost.registerCleanupCallback($)}registerConnectedCallback($){this.reactiveHost.registerConnectedCallback($)}registerEventEmitter($,Q){this.eventEmitters.set($,Q)}getRef($,Q=!1){let Z=`[data-ref="${$}"]`,{queryRoot:q}=this.resolveRenderSurface();if(Q)return Array.from(q.querySelectorAll(Z));return q.querySelector(Z)??null}getSlotElement($){return this.getSlotElements($)[0]??null}getSlotElements($){return this.getOrCreateRenderRuntime().getSlotElements($)}createReactiveField($,Q,Z={}){this.reactiveHost.createReactiveField($,Q,Z)}createReactiveProp($,Q){this.reactivePropertyState.create($,Q,(Z,q,X)=>r(this,Z,q,X),(Z,q)=>{this.reactiveHost.defineReactiveAccessor(Z,q)},(Z,q)=>this.createReactiveMember(Z,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 C(this),this.renderRuntime}resolveRenderSurface(){let $=this.getRenderTarget(),Q=typeof ShadowRoot<"u"&&$ instanceof ShadowRoot?$:this;return{interactionTarget:Q,queryRoot:Q,renderTarget:$}}}Object.defineProperty(V.prototype,K0,{value:!0,configurable:!0});function W2(){let $=O0();if(!$)throw Error("Radiant SSR runtime unavailable. Import `@ecopages/radiant/server/render-component` first.");return $}function z0($){return f0()&&q2($)}export{V as RadiantElement};
2
2
 
3
- //# debugId=4F27A0624E24367F64756E2164756E21
3
+ //# debugId=4AE84901E8248DCD64756E2164756E21