@ecopages/radiant 0.3.0-beta.2 → 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:k,getOwnPropertyNames:q,getOwnPropertyDescriptor:x}=Object,z=Object.prototype.hasOwnProperty;function B(b){return this[b]}var E=(b)=>{var g=(m??=new WeakMap).get(b),h;if(g)return g;if(g=k({},"__esModule",{value:!0}),b&&typeof b==="object"||typeof b==="function"){for(var j of q(b))if(!z.call(g,j))k(g,j,{get:B.bind(b,j),enumerable:!(h=x(b,j))||h.enumerable})}return m.set(b,g),g},m;var C=(b)=>b;function D(b,g){this[b]=C.bind(null,g)}var F=(b,g)=>{for(var h in g)k(b,h,{get:g[h],enumerable:!0,configurable:!0,set:D.bind(g,h)})};var G=(b,g)=>()=>(b&&(g=b(b=0)),g);var H=((b)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(b,{get:(g,h)=>(typeof require<"u"?require:g)[h]}):b)(function(b){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+b+'" is not supported')});function J(){return new Date}function K(b){if("metadata"in b)return{assets:b.metadata.assets,clientModuleSrc:b.metadata.clientModuleUrl,generatedAt:b.metadata.generatedAt,markup:b.markup,tagName:b.metadata.tagName};let{preview:g,...h}=b;return h}function L(b){return{assets:b.metadata.assets,clientModuleSrc:b.metadata.clientModuleUrl,generatedAt:b.metadata.generatedAt,markup:b.markup,preview:b.preview,tagName:b.metadata.tagName}}export{L as toRenderedComponentWithPreview,K as toRenderedComponentPayload,J as createDefaultRenderTimestamp};
1
+ function j(){return new Date}function k(b){if("metadata"in b)return{assets:b.metadata.assets,clientModuleSrc:b.metadata.clientModuleUrl,generatedAt:b.metadata.generatedAt,markup:b.markup,tagName:b.metadata.tagName};let{preview:h,...g}=b;return g}function m(b){return{assets:b.metadata.assets,clientModuleSrc:b.metadata.clientModuleUrl,generatedAt:b.metadata.generatedAt,markup:b.markup,preview:b.preview,tagName:b.metadata.tagName}}export{m as toRenderedComponentWithPreview,k as toRenderedComponentPayload,j as createDefaultRenderTimestamp};
2
2
 
3
- //# debugId=7D9508AE18B90BE464756E2164756E21
3
+ //# debugId=D6ADB5C6A807E65164756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "import type { RenderedComponent, RenderedComponentPayload, RenderedComponentWithPreview } from './render-component';\n\n/** Returns the current time for deterministic SSR metadata in tests. */\nexport function createDefaultRenderTimestamp(): Date {\n\treturn new Date();\n}\n\n/** Converts a canonical render result into a flat transport payload. */\nexport function toRenderedComponentPayload(\n\trender: RenderedComponentWithPreview | RenderedComponent,\n): RenderedComponentPayload {\n\tif ('metadata' in render) {\n\t\treturn {\n\t\t\tassets: render.metadata.assets,\n\t\t\tclientModuleSrc: render.metadata.clientModuleUrl,\n\t\t\tgeneratedAt: render.metadata.generatedAt,\n\t\t\tmarkup: render.markup,\n\t\t\ttagName: render.metadata.tagName,\n\t\t};\n\t}\n\n\tconst { preview: _preview, ...payload } = render;\n\treturn payload;\n}\n\n/** Adds preview fields to a canonical render result. */\nexport function toRenderedComponentWithPreview(render: RenderedComponent): RenderedComponentWithPreview {\n\treturn {\n\t\tassets: render.metadata.assets,\n\t\tclientModuleSrc: render.metadata.clientModuleUrl,\n\t\tgeneratedAt: render.metadata.generatedAt,\n\t\tmarkup: render.markup,\n\t\tpreview: render.preview,\n\t\ttagName: render.metadata.tagName,\n\t};\n}\n"
6
6
  ],
7
- "mappings": "i0BAGO,SAAS,CAA4B,EAAS,CACpD,OAAO,IAAI,KAIL,SAAS,CAA0B,CACzC,EAC2B,CAC3B,GAAI,aAAc,EACjB,MAAO,CACN,OAAQ,EAAO,SAAS,OACxB,gBAAiB,EAAO,SAAS,gBACjC,YAAa,EAAO,SAAS,YAC7B,OAAQ,EAAO,OACf,QAAS,EAAO,SAAS,OAC1B,EAGD,IAAQ,QAAS,KAAa,GAAY,EAC1C,OAAO,EAID,SAAS,CAA8B,CAAC,EAAyD,CACvG,MAAO,CACN,OAAQ,EAAO,SAAS,OACxB,gBAAiB,EAAO,SAAS,gBACjC,YAAa,EAAO,SAAS,YAC7B,OAAQ,EAAO,OACf,QAAS,EAAO,QAChB,QAAS,EAAO,SAAS,OAC1B",
8
- "debugId": "7D9508AE18B90BE464756E2164756E21",
7
+ "mappings": "AAGO,SAAS,CAA4B,EAAS,CACpD,OAAO,IAAI,KAIL,SAAS,CAA0B,CACzC,EAC2B,CAC3B,GAAI,aAAc,EACjB,MAAO,CACN,OAAQ,EAAO,SAAS,OACxB,gBAAiB,EAAO,SAAS,gBACjC,YAAa,EAAO,SAAS,YAC7B,OAAQ,EAAO,OACf,QAAS,EAAO,SAAS,OAC1B,EAGD,IAAQ,QAAS,KAAa,GAAY,EAC1C,OAAO,EAID,SAAS,CAA8B,CAAC,EAAyD,CACvG,MAAO,CACN,OAAQ,EAAO,SAAS,OACxB,gBAAiB,EAAO,SAAS,gBACjC,YAAa,EAAO,SAAS,YAC7B,OAAQ,EAAO,OACf,QAAS,EAAO,QAChB,QAAS,EAAO,SAAS,OAC1B",
8
+ "debugId": "D6ADB5C6A807E65164756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:z,getOwnPropertyNames:_,getOwnPropertyDescriptor:C}=Object,I=Object.prototype.hasOwnProperty;function R(i){return this[i]}var si=(i)=>{var f=(c??=new WeakMap).get(i),s;if(f)return f;if(f=z({},"__esModule",{value:!0}),i&&typeof i==="object"||typeof i==="function"){for(var w of _(i))if(!I.call(f,w))z(f,w,{get:R.bind(i,w),enumerable:!(s=C(i,w))||s.enumerable})}return c.set(i,f),f},c;var j=(i)=>i;function N(i,f){this[i]=j.bind(null,f)}var wi=(i,f)=>{for(var s in f)z(i,s,{get:f[s],enumerable:!0,configurable:!0,set:N.bind(f,s)})};var y=(i,f)=>()=>(i&&(f=i(i=0)),f);var xi=((i)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(i,{get:(f,s)=>(typeof require<"u"?require:f)[s]}):i)(function(i){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+i+'" is not supported')});function F(i){let f=[],s=0;while(s<i.length){let w=s;if(i.startsWith("<!--",s)){let Q=i.indexOf("-->",s+4);s=Q===-1?i.length:Q+3,f.push(i.slice(w,s));continue}if(i[s]!=="<"){let Q=i.indexOf("<",s);s=Q===-1?i.length:Q,f.push(i.slice(w,s));continue}let x=J(i,s);if(!x){f.push(i.slice(w));break}if(x.type!=="open"||x.selfClosing||X.has(x.tagName)){s=x.end,f.push(i.slice(w,s));continue}s=x.end;let W=1;while(s<i.length&&W>0){let Q=i.indexOf("<",s);if(Q===-1){s=i.length;break}let $=J(i,Q);if(!$){s=i.length;break}if(s=$.end,$.type==="comment"||$.type==="declaration")continue;if($.type==="open"&&!$.selfClosing&&!X.has($.tagName)){W+=1;continue}if($.type==="close")W-=1}f.push(i.slice(w,s))}return f.filter((w)=>w!=="")}function d(i,f){let s;for(let w=f+1;w<i.length;w+=1){let x=i[w];if(s){if(x===s)s=void 0;continue}if(x==='"'||x==="'"){s=x;continue}if(x===">")return w+1}return i.length}function t(i){let f={},s=/([:^@A-Za-z0-9_.-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>/]+)))?/g;for(let w of i.matchAll(s)){let[,x,W,Q,$]=w;if(!x)continue;f[x]=W??Q??$??""}return f}function J(i,f){if(i.startsWith("<!--",f)){let H=i.indexOf("-->",f+4);return{end:H===-1?i.length:H+3,type:"comment"}}let s=d(i,f),w=i.slice(f+1,s-1).trim();if(w==="")return;if(w.startsWith("!")||w.startsWith("?"))return{end:s,type:"declaration"};if(w.startsWith("/"))return{end:s,type:"close"};let x=/\/\s*$/.test(w),W=x?w.replace(/\/\s*$/,"").trim():w,Q=W.split(/[\s/>]/,1)[0]?.toLowerCase()??"",$=Q.length,P=W.slice($).trim(),E=x||X.has(Q)?"":r(i,f,s,Q);return{attributes:t(P),end:s,innerHtml:E,selfClosing:x,tagName:Q,type:"open"}}function r(i,f,s,w){let x=s,W=1;while(x<i.length&&W>0){let Q=i.indexOf("<",x);if(Q===-1)return i.slice(s);let $=J(i,Q);if(!$)return i.slice(s);if($.type==="open"&&$.tagName===w&&!$.selfClosing&&!X.has(w))W+=1;if($.type==="close"){if(i.slice(Q+2,$.end-1).trim().toLowerCase()===w){if(W-=1,W===0)return i.slice(s,Q)}}x=$.end}return i.slice(s)}var X;var S=y(()=>{X=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"])});function B(i){return i.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}var q="data-hydration",D="data-hydration-type",k="data-hydration-key";function qi(i){let f=i.hydrationKey?` ${k}="${v(i.hydrationKey)}"`:"";return`<script type="application/json" ${q} ${D}="${i.type}"${f}>${i.serializedValue}</script>`}function Zi(i){return B(i)}function Gi(i,f){let s=i.textContent;if(!s)return f;try{return JSON.parse(s)}catch{if(typeof console<"u")console.warn(`[@ecopages/radiant] Failed to parse hydration payload from <script ${q}>:`,s.slice(0,120));return f}}function Xi(i,f,s){let w=i.children;if(!w||w.length===0){let x=i.childNodes;if(!x||x.length===0)return null;for(let W=0;W<x.length;W+=1){let Q=x[W];if(Q.nodeType!==1)continue;let $=Q;if(O($,f,s))return $}return null}for(let x=0;x<w.length;x+=1)if(O(w[x],f,s))return w[x];return null}function O(i,f,s){if(i.tagName!=="SCRIPT"||!i.hasAttribute(q)||i.getAttribute(D)!==f)return!1;if(s!==void 0)return i.getAttribute(k)===s;return!i.hasAttribute(k)}function v(i){return i.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}import{createMarkupNodeLike as T,isKeyedJsxValue as M,isSlotJsxValue as V}from"@ecopages/jsx";var Z="",g="data-radiant-slot-projection";function Li(i){let f=new Map;for(let s of Array.from(i.childNodes)){if(m(s))continue;u(f,b(s),s)}return f}function Ji(i){let f;try{f=JSON.parse(i)}catch{if(typeof console<"u")console.warn("[@ecopages/radiant] Failed to parse slot projection payload:",i.slice(0,120));return new Map}let s=new Map;for(let[w,x]of Object.entries(f)){if(!Array.isArray(x)||x.length===0)continue;s.set(L(w),x.map((W)=>T(W)))}return s}function Fi(i){let f=Array.from(i.childNodes).filter((s)=>K(s)).map((s)=>G(s)??"").filter((s)=>s!=="");return f.length>0?f.join(""):void 0}function Pi(i){let f={};for(let[s,w]of i.entries()){let x=w.map((W)=>G(W)).filter((W)=>W!==void 0&&W!=="");if(x.length>0)f[s]=x}return Object.keys(f).length>0?JSON.stringify(f):void 0}function Hi(i,f){let s=!1,w=(W)=>{if(V(W))return s=!0,n(W,f,w);if(M(W))return h(W,w(W.value));if(o(W))return{_$rType$:1,rootLocalName:W.rootLocalName,ssrIntrinsicProps:W.ssrIntrinsicProps,strings:W.strings,values:W.values.map((Q)=>w(Q))};if(U(W))return Array.from(W,(Q)=>w(Q));return W},x=w(i);return{containsSlots:s,value:x}}function ci(i){for(let f of Array.from(i.childNodes)){if(!Y(f))continue;let s=f.textContent??void 0;return f.parentNode?.removeChild(f),s}return}function u(i,f,s){let w=i.get(f);if(w){w.push(s);return}i.set(f,[s])}function h(i,f){return{...i,value:f}}function b(i){if(i instanceof Element)return L(i.getAttribute("slot"));return Z}function U(i){return typeof i!=="string"&&typeof i==="object"&&i!==null&&Symbol.iterator in i}function Y(i){return i instanceof HTMLScriptElement&&i.hasAttribute(g)}function K(i){return i instanceof HTMLScriptElement&&i.hasAttribute(q)}function m(i){return Y(i)||K(i)}function o(i){return typeof i==="object"&&i!==null&&i._$rType$===1&&Array.isArray(i.strings)&&Array.isArray(i.values)}function L(i){return i??Z}function G(i){if(i===void 0||i===null||i===!1||i===!0)return;if(typeof Node<"u"&&i instanceof Node){if(i.nodeType===Node.TEXT_NODE)return i.textContent??"";return i.outerHTML??i.textContent??void 0}if(M(i))return G(i.value);if(typeof i==="string"||typeof i==="number"||typeof i==="bigint")return String(i);if(typeof i==="object"&&i!==null&&"outerHTML"in i)return typeof i.outerHTML==="string"?i.outerHTML:i.textContent??void 0;if(U(i))return Array.from(i,(f)=>G(f)??"").join("");return}function n(i,f,s){let w=f.get(L(i.name));if(w&&w.length>0)return w.length===1?w[0]:w;if(i.fallback===void 0)return"";return s(i.fallback)}import{createMarkupNodeLike as l}from"@ecopages/jsx";S();function Ki(i){let f=new Map;for(let s of F(i)){if(ii(s))continue;a(f,e(s),l(s))}return f}function Si(i){let f=F(i).filter((s)=>p(s));return f.length>0?f.join(""):void 0}function a(i,f,s){let w=i.get(f);if(w){w.push(s);return}i.set(f,[s])}function e(i){let f=/^<([A-Za-z][^\s/>]*)([^>]*)>/s.exec(i);if(!f)return Z;let s=f[2]??"",w=/\sslot\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>]+))/i.exec(s);return w?.[1]??w?.[2]??w?.[3]??Z}function ii(i){return fi(i)||p(i)}function fi(i){let f=/^<script\b([^>]*)>/i.exec(i);if(!f)return!1;return A(f[1]??"",g)}function p(i){let f=/^<script\b([^>]*)>/i.exec(i);if(!f)return!1;return A(f[1]??"",q)}function A(i,f){return new RegExp(`(?:^|\\s)${f}(?:\\s*=\\s*(?:"[^"]*"|'[^']*'|[^\\s>]+))?`,"i").test(i)}export{Ki as parseProjectedSlotRenderablesFromHtml,Si as collectAuthoredHydrationScriptMarkupFromHtml};
1
+ var Z=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]);function X(f){let w=[],i=0;while(i<f.length){let x=i;if(f.startsWith("<!--",i)){let Q=f.indexOf("-->",i+4);i=Q===-1?f.length:Q+3,w.push(f.slice(x,i));continue}if(f[i]!=="<"){let Q=f.indexOf("<",i);i=Q===-1?f.length:Q,w.push(f.slice(x,i));continue}let W=G(f,i);if(!W){w.push(f.slice(x));break}if(W.type!=="open"||W.selfClosing||Z.has(W.tagName)){i=W.end,w.push(f.slice(x,i));continue}i=W.end;let q=1;while(i<f.length&&q>0){let Q=f.indexOf("<",i);if(Q===-1){i=f.length;break}let $=G(f,Q);if(!$){i=f.length;break}if(i=$.end,$.type==="comment"||$.type==="declaration")continue;if($.type==="open"&&!$.selfClosing&&!Z.has($.tagName)){q+=1;continue}if($.type==="close")q-=1}w.push(f.slice(x,i))}return w.filter((x)=>x!=="")}function H(f,w){let i;for(let x=w+1;x<f.length;x+=1){let W=f[x];if(i){if(W===i)i=void 0;continue}if(W==='"'||W==="'"){i=W;continue}if(W===">")return x+1}return f.length}function O(f){let w={},i=/([:^@A-Za-z0-9_.-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>/]+)))?/g;for(let x of f.matchAll(i)){let[,W,q,Q,$]=x;if(!W)continue;w[W]=q??Q??$??""}return w}function G(f,w){if(f.startsWith("<!--",w)){let z=f.indexOf("-->",w+4);return{end:z===-1?f.length:z+3,type:"comment"}}let i=H(f,w),x=f.slice(w+1,i-1).trim();if(x==="")return;if(x.startsWith("!")||x.startsWith("?"))return{end:i,type:"declaration"};if(x.startsWith("/"))return{end:i,type:"close"};let W=/\/\s*$/.test(x),q=W?x.replace(/\/\s*$/,"").trim():x,Q=q.split(/[\s/>]/,1)[0]?.toLowerCase()??"",$=Q.length,s=q.slice($).trim(),B=W||Z.has(Q)?"":D(f,w,i,Q);return{attributes:O(s),end:i,innerHtml:B,selfClosing:W,tagName:Q,type:"open"}}function D(f,w,i,x){let W=i,q=1;while(W<f.length&&q>0){let Q=f.indexOf("<",W);if(Q===-1)return f.slice(i);let $=G(f,Q);if(!$)return f.slice(i);if($.type==="open"&&$.tagName===x&&!$.selfClosing&&!Z.has(x))q+=1;if($.type==="close"){if(f.slice(Q+2,$.end-1).trim().toLowerCase()===x){if(q-=1,q===0)return f.slice(i,Q)}}W=$.end}return f.slice(i)}import{createMarkupNodeLike as g}from"@ecopages/jsx";var L="data-hydration";import{createMarkupNodeLike as E,isKeyedJsxValue as S,isSlotJsxValue as C}from"@ecopages/jsx";var k="",F="data-radiant-slot-projection";function y(f){let w=new Map;for(let i of X(f)){if(Y(i))continue;U(w,M(i),g(i))}return w}function v(f){let w=X(f).filter((i)=>J(i));return w.length>0?w.join(""):void 0}function U(f,w,i){let x=f.get(w);if(x){x.push(i);return}f.set(w,[i])}function M(f){let w=/^<([A-Za-z][^\s/>]*)([^>]*)>/s.exec(f);if(!w)return k;let i=w[2]??"",x=/\sslot\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>]+))/i.exec(i);return x?.[1]??x?.[2]??x?.[3]??k}function Y(f){return K(f)||J(f)}function K(f){let w=/^<script\b([^>]*)>/i.exec(f);if(!w)return!1;return P(w[1]??"",F)}function J(f){let w=/^<script\b([^>]*)>/i.exec(f);if(!w)return!1;return P(w[1]??"",L)}function P(f,w){return new RegExp(`(?:^|\\s)${w}(?:\\s*=\\s*(?:"[^"]*"|'[^']*'|[^\\s>]+))?`,"i").test(f)}export{y as parseProjectedSlotRenderablesFromHtml,v as collectAuthoredHydrationScriptMarkupFromHtml};
2
2
 
3
- //# debugId=BC88CE2F42D3A4DA64756E2164756E21
3
+ //# debugId=0068C65DDBA592F664756E2164756E21
@@ -1,14 +1,13 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/server/html-parser.ts", "../src/tools/escape-script-json.ts", "../src/core/hydration-codec.ts", "../src/core/slot-projection-runtime.ts", "../src/server/slot-projection-html.ts"],
3
+ "sources": ["../src/server/html-parser.ts", "../src/server/slot-projection-html.ts", "../src/core/hydration-codec.ts", "../src/core/slot-projection-runtime.ts"],
4
4
  "sourcesContent": [
5
5
  "export type ParsedHtmlTag = {\n\tattributes: Record<string, string>;\n\tend: number;\n\tinnerHtml: string;\n\tselfClosing: boolean;\n\ttagName: string;\n\ttype: 'open';\n};\n\nexport type ParsedHtmlToken =\n\t| ParsedHtmlTag\n\t| {\n\t\t\tend: number;\n\t\t\ttype: 'close';\n\t }\n\t| {\n\t\t\tend: number;\n\t\t\ttype: 'comment' | 'declaration';\n\t };\n\nexport const voidElementNames = new Set([\n\t'area',\n\t'base',\n\t'br',\n\t'col',\n\t'embed',\n\t'hr',\n\t'img',\n\t'input',\n\t'link',\n\t'meta',\n\t'param',\n\t'source',\n\t'track',\n\t'wbr',\n]);\n\nexport function collectTopLevelHtmlFragments(html: string): string[] {\n\tconst fragments: string[] = [];\n\tlet index = 0;\n\n\twhile (index < html.length) {\n\t\tconst fragmentStart = index;\n\n\t\tif (html.startsWith('<!--', index)) {\n\t\t\tconst commentEnd = html.indexOf('-->', index + 4);\n\t\t\tindex = commentEnd === -1 ? html.length : commentEnd + 3;\n\t\t\tfragments.push(html.slice(fragmentStart, index));\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (html[index] !== '<') {\n\t\t\tconst nextTagIndex = html.indexOf('<', index);\n\t\t\tindex = nextTagIndex === -1 ? html.length : nextTagIndex;\n\t\t\tfragments.push(html.slice(fragmentStart, index));\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst token = parseHtmlTagToken(html, index);\n\n\t\tif (!token) {\n\t\t\tfragments.push(html.slice(fragmentStart));\n\t\t\tbreak;\n\t\t}\n\n\t\tif (token.type !== 'open' || token.selfClosing || voidElementNames.has(token.tagName)) {\n\t\t\tindex = token.end;\n\t\t\tfragments.push(html.slice(fragmentStart, index));\n\t\t\tcontinue;\n\t\t}\n\n\t\tindex = token.end;\n\t\tlet depth = 1;\n\n\t\twhile (index < html.length && depth > 0) {\n\t\t\tconst nextTagIndex = html.indexOf('<', index);\n\n\t\t\tif (nextTagIndex === -1) {\n\t\t\t\tindex = html.length;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst nestedToken = parseHtmlTagToken(html, nextTagIndex);\n\n\t\t\tif (!nestedToken) {\n\t\t\t\tindex = html.length;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tindex = nestedToken.end;\n\n\t\t\tif (nestedToken.type === 'comment' || nestedToken.type === 'declaration') {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (nestedToken.type === 'open' && !nestedToken.selfClosing && !voidElementNames.has(nestedToken.tagName)) {\n\t\t\t\tdepth += 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (nestedToken.type === 'close') {\n\t\t\t\tdepth -= 1;\n\t\t\t}\n\t\t}\n\n\t\tfragments.push(html.slice(fragmentStart, index));\n\t}\n\n\treturn fragments.filter((fragment) => fragment !== '');\n}\n\nexport function findHtmlTagEnd(html: string, startIndex: number): number {\n\tlet quote: '\"' | \"'\" | undefined;\n\n\tfor (let index = startIndex + 1; index < html.length; index += 1) {\n\t\tconst character = html[index];\n\n\t\tif (quote) {\n\t\t\tif (character === quote) {\n\t\t\t\tquote = undefined;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (character === '\"' || character === \"'\") {\n\t\t\tquote = character;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (character === '>') {\n\t\t\treturn index + 1;\n\t\t}\n\t}\n\n\treturn html.length;\n}\n\nexport function parseAttributes(rawAttributes: string): Record<string, string> {\n\tconst attributes: Record<string, string> = {};\n\tconst attributePattern = /([:^@A-Za-z0-9_.-]+)(?:\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s\"'>/]+)))?/g;\n\n\tfor (const match of rawAttributes.matchAll(attributePattern)) {\n\t\tconst [, name, doubleQuoted, singleQuoted, bareValue] = match;\n\n\t\tif (!name) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tattributes[name] = doubleQuoted ?? singleQuoted ?? bareValue ?? '';\n\t}\n\n\treturn attributes;\n}\n\nexport function parseHtmlTagToken(html: string, startIndex: number): ParsedHtmlToken | undefined {\n\tif (html.startsWith('<!--', startIndex)) {\n\t\tconst endIndex = html.indexOf('-->', startIndex + 4);\n\t\treturn {\n\t\t\tend: endIndex === -1 ? html.length : endIndex + 3,\n\t\t\ttype: 'comment',\n\t\t};\n\t}\n\n\tconst endIndex = findHtmlTagEnd(html, startIndex);\n\tconst rawToken = html.slice(startIndex + 1, endIndex - 1).trim();\n\n\tif (rawToken === '') {\n\t\treturn undefined;\n\t}\n\n\tif (rawToken.startsWith('!') || rawToken.startsWith('?')) {\n\t\treturn {\n\t\t\tend: endIndex,\n\t\t\ttype: 'declaration',\n\t\t};\n\t}\n\n\tif (rawToken.startsWith('/')) {\n\t\treturn {\n\t\t\tend: endIndex,\n\t\t\ttype: 'close',\n\t\t};\n\t}\n\n\tconst selfClosing = /\\/\\s*$/.test(rawToken);\n\tconst tagBody = selfClosing ? rawToken.replace(/\\/\\s*$/, '').trim() : rawToken;\n\tconst tagName = tagBody.split(/[\\s/>]/, 1)[0]?.toLowerCase() ?? '';\n\tconst attributesStart = tagName.length;\n\tconst rawAttributes = tagBody.slice(attributesStart).trim();\n\tconst innerHtml =\n\t\tselfClosing || voidElementNames.has(tagName)\n\t\t\t? ''\n\t\t\t: extractInnerHtmlFragment(html, startIndex, endIndex, tagName);\n\n\treturn {\n\t\tattributes: parseAttributes(rawAttributes),\n\t\tend: endIndex,\n\t\tinnerHtml,\n\t\tselfClosing,\n\t\ttagName,\n\t\ttype: 'open',\n\t};\n}\n\nexport function extractInnerHtmlFragment(\n\thtml: string,\n\tstartIndex: number,\n\ttagEndIndex: number,\n\ttagName: string,\n): string {\n\tlet index = tagEndIndex;\n\tlet depth = 1;\n\n\twhile (index < html.length && depth > 0) {\n\t\tconst nextTagIndex = html.indexOf('<', index);\n\n\t\tif (nextTagIndex === -1) {\n\t\t\treturn html.slice(tagEndIndex);\n\t\t}\n\n\t\tconst nextTag = parseHtmlTagToken(html, nextTagIndex);\n\n\t\tif (!nextTag) {\n\t\t\treturn html.slice(tagEndIndex);\n\t\t}\n\n\t\tif (\n\t\t\tnextTag.type === 'open' &&\n\t\t\tnextTag.tagName === tagName &&\n\t\t\t!nextTag.selfClosing &&\n\t\t\t!voidElementNames.has(tagName)\n\t\t) {\n\t\t\tdepth += 1;\n\t\t}\n\n\t\tif (nextTag.type === 'close') {\n\t\t\tconst closingName = html\n\t\t\t\t.slice(nextTagIndex + 2, nextTag.end - 1)\n\t\t\t\t.trim()\n\t\t\t\t.toLowerCase();\n\n\t\t\tif (closingName === tagName) {\n\t\t\t\tdepth -= 1;\n\n\t\t\t\tif (depth === 0) {\n\t\t\t\t\treturn html.slice(tagEndIndex, nextTagIndex);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tindex = nextTag.end;\n\t}\n\n\treturn html.slice(tagEndIndex);\n}\n",
6
- "/**\n * Escapes serialized JSON so it remains safe when embedded inside an HTML\n * `<script>` tag.\n */\nexport function escapeScriptJson(value: string): string {\n\treturn value\n\t\t.replace(/&/g, '\\\\u0026')\n\t\t.replace(/</g, '\\\\u003c')\n\t\t.replace(/>/g, '\\\\u003e')\n\t\t.replace(/\\u2028/g, '\\\\u2028')\n\t\t.replace(/\\u2029/g, '\\\\u2029');\n}\n",
6
+ "import { createMarkupNodeLike, type JsxRenderable } from '@ecopages/jsx';\n\nimport { HYDRATION_ATTRIBUTE } from '../core/hydration-codec';\nimport { DEFAULT_SLOT_NAME, SLOT_PROJECTION_SCRIPT_ATTRIBUTE } from '../core/slot-projection-runtime';\nimport { collectTopLevelHtmlFragments } from './html-parser';\n\nexport function parseProjectedSlotRenderablesFromHtml(html: string): Map<string, JsxRenderable[]> {\n\tconst projectedContent = new Map<string, JsxRenderable[]>();\n\n\tfor (const fragment of collectTopLevelHtmlFragments(html)) {\n\t\tif (isIgnoredProjectedHtmlFragment(fragment)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tappendProjectedRenderable(\n\t\t\tprojectedContent,\n\t\t\tgetSlotNameFromHtmlFragment(fragment),\n\t\t\tcreateMarkupNodeLike(fragment),\n\t\t);\n\t}\n\n\treturn projectedContent;\n}\n\nexport function collectAuthoredHydrationScriptMarkupFromHtml(html: string): string | undefined {\n\tconst fragments = collectTopLevelHtmlFragments(html).filter((fragment) => isHydrationScriptHtmlFragment(fragment));\n\n\treturn fragments.length > 0 ? fragments.join('') : undefined;\n}\n\nfunction appendProjectedRenderable(\n\tprojectedContent: Map<string, JsxRenderable[]>,\n\tslotName: string,\n\trenderable: JsxRenderable,\n): void {\n\tconst existingRenderables = projectedContent.get(slotName);\n\n\tif (existingRenderables) {\n\t\texistingRenderables.push(renderable);\n\t\treturn;\n\t}\n\n\tprojectedContent.set(slotName, [renderable]);\n}\n\nfunction getSlotNameFromHtmlFragment(fragment: string): string {\n\tconst openingTagMatch = /^<([A-Za-z][^\\s/>]*)([^>]*)>/s.exec(fragment);\n\n\tif (!openingTagMatch) {\n\t\treturn DEFAULT_SLOT_NAME;\n\t}\n\n\tconst attributes = openingTagMatch[2] ?? '';\n\tconst slotMatch = /\\sslot\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s>]+))/i.exec(attributes);\n\n\treturn slotMatch?.[1] ?? slotMatch?.[2] ?? slotMatch?.[3] ?? DEFAULT_SLOT_NAME;\n}\n\nfunction isIgnoredProjectedHtmlFragment(fragment: string): boolean {\n\treturn isSlotProjectionScriptHtmlFragment(fragment) || isHydrationScriptHtmlFragment(fragment);\n}\n\nfunction isSlotProjectionScriptHtmlFragment(fragment: string): boolean {\n\tconst openingTagMatch = /^<script\\b([^>]*)>/i.exec(fragment);\n\n\tif (!openingTagMatch) {\n\t\treturn false;\n\t}\n\n\treturn hasScriptAttribute(openingTagMatch[1] ?? '', SLOT_PROJECTION_SCRIPT_ATTRIBUTE);\n}\n\nfunction isHydrationScriptHtmlFragment(fragment: string): boolean {\n\tconst openingTagMatch = /^<script\\b([^>]*)>/i.exec(fragment);\n\n\tif (!openingTagMatch) {\n\t\treturn false;\n\t}\n\n\treturn hasScriptAttribute(openingTagMatch[1] ?? '', HYDRATION_ATTRIBUTE);\n}\n\nfunction hasScriptAttribute(attributes: string, attributeName: string): boolean {\n\treturn new RegExp(`(?:^|\\\\s)${attributeName}(?:\\\\s*=\\\\s*(?:\"[^\"]*\"|'[^']*'|[^\\\\s>]+))?`, 'i').test(attributes);\n}\n",
7
7
  "import { escapeScriptJson } from '../tools/escape-script-json';\n\n/** Attribute marker used to identify hydration payloads inside a host. */\nexport const HYDRATION_ATTRIBUTE = 'data-hydration';\n/** Discriminator that scopes a hydration payload to a specific feature. */\nexport const HYDRATION_TYPE_ATTRIBUTE = 'data-hydration-type';\n/** Optional key that scopes a hydration payload to a specific decorated field. */\nexport const HYDRATION_KEY_ATTRIBUTE = 'data-hydration-key';\n\nexport type HydrationPayloadType = 'signal' | 'context';\n\ntype HydrationScriptHost = {\n\tchildren?: ArrayLike<Element> | undefined;\n\tchildNodes?: ArrayLike<{ nodeType: number }> | undefined;\n};\n\n/** Creates a `<script type=\"application/json\">` tag for a hydration payload. */\nexport function createHydrationScriptTag(options: {\n\ttype: HydrationPayloadType;\n\thydrationKey?: string;\n\tserializedValue: string;\n}): string {\n\tconst keyAttribute = options.hydrationKey\n\t\t? ` ${HYDRATION_KEY_ATTRIBUTE}=\"${escapeHtmlAttribute(options.hydrationKey)}\"`\n\t\t: '';\n\n\treturn `<script type=\"application/json\" ${HYDRATION_ATTRIBUTE} ${HYDRATION_TYPE_ATTRIBUTE}=\"${options.type}\"${keyAttribute}>${options.serializedValue}</script>`;\n}\n\n/** Escapes serialized JSON so it remains safe inside an HTML script tag. */\nexport function escapeHydrationJson(value: string): string {\n\treturn escapeScriptJson(value);\n}\n\n/** Parses JSON from a hydration script element, returning the fallback on failure. */\nexport function parseHydrationPayload<T>(element: Element, fallback: T): T {\n\tconst textContent = element.textContent;\n\n\tif (!textContent) {\n\t\treturn fallback;\n\t}\n\n\ttry {\n\t\treturn JSON.parse(textContent) as T;\n\t} catch {\n\t\tif (typeof console !== 'undefined') {\n\t\t\tconsole.warn(\n\t\t\t\t`[@ecopages/radiant] Failed to parse hydration payload from <script ${HYDRATION_ATTRIBUTE}>:`,\n\t\t\t\ttextContent.slice(0, 120),\n\t\t\t);\n\t\t}\n\t\treturn fallback;\n\t}\n}\n\n/**\n * Finds a hydration script element inside a host by type and optional key.\n *\n * When a key is provided, looks for an exact `data-hydration-key` match.\n * Otherwise, returns the first unkeyed script matching the type.\n */\nexport function findHydrationScript(\n\thost: HydrationScriptHost,\n\ttype: HydrationPayloadType,\n\thydrationKey?: string,\n): Element | null {\n\tconst children = host.children;\n\n\tif (!children || children.length === 0) {\n\t\tconst childNodes = (host as Partial<{ childNodes: ArrayLike<{ nodeType: number }> }>).childNodes;\n\n\t\tif (!childNodes || childNodes.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tfor (let i = 0; i < childNodes.length; i += 1) {\n\t\t\tconst node = childNodes[i]!;\n\n\t\t\tif (node.nodeType !== 1) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst element = node as unknown as Element;\n\n\t\t\tif (matchesHydrationScript(element, type, hydrationKey)) {\n\t\t\t\treturn element;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfor (let i = 0; i < children.length; i += 1) {\n\t\tif (matchesHydrationScript(children[i]!, type, hydrationKey)) {\n\t\t\treturn children[i]!;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nfunction matchesHydrationScript(element: Element, type: HydrationPayloadType, hydrationKey?: string): boolean {\n\tif (\n\t\telement.tagName !== 'SCRIPT' ||\n\t\t!element.hasAttribute(HYDRATION_ATTRIBUTE) ||\n\t\telement.getAttribute(HYDRATION_TYPE_ATTRIBUTE) !== type\n\t) {\n\t\treturn false;\n\t}\n\n\tif (hydrationKey !== undefined) {\n\t\treturn element.getAttribute(HYDRATION_KEY_ATTRIBUTE) === hydrationKey;\n\t}\n\n\treturn !element.hasAttribute(HYDRATION_KEY_ATTRIBUTE);\n}\n\nfunction escapeHtmlAttribute(value: string): string {\n\treturn value.replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}\n",
8
- "import {\n\tcreateMarkupNodeLike,\n\tisKeyedJsxValue,\n\tisSlotJsxValue,\n\ttype JsxRenderable,\n\ttype KeyedJsxValue,\n\ttype SlotJsxValue,\n\ttype TemplateResultLike,\n} from '@ecopages/jsx';\n\nimport { HYDRATION_ATTRIBUTE } from './hydration-codec';\n\nexport const DEFAULT_SLOT_NAME = '';\nexport const SLOT_PROJECTION_SCRIPT_ATTRIBUTE = 'data-radiant-slot-projection';\n\ntype ResolvedSlotProjection = {\n\tcontainsSlots: boolean;\n\tvalue: JsxRenderable;\n};\n\nexport function captureProjectedSlotRenderables(host: HTMLElement): Map<string, JsxRenderable[]> {\n\tconst projectedContent = new Map<string, JsxRenderable[]>();\n\n\tfor (const node of Array.from(host.childNodes)) {\n\t\tif (isIgnoredProjectedNode(node)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tappendProjectedRenderable(projectedContent, getNodeSlotName(node), node);\n\t}\n\n\treturn projectedContent;\n}\n\nexport function deserializeProjectedSlotRenderables(payload: string): Map<string, JsxRenderable[]> {\n\tlet parsedPayload: Record<string, string[]>;\n\n\ttry {\n\t\tparsedPayload = JSON.parse(payload) as Record<string, string[]>;\n\t} catch {\n\t\tif (typeof console !== 'undefined') {\n\t\t\tconsole.warn('[@ecopages/radiant] Failed to parse slot projection payload:', payload.slice(0, 120));\n\t\t}\n\t\treturn new Map();\n\t}\n\n\tconst projectedContent = new Map<string, JsxRenderable[]>();\n\n\tfor (const [slotName, fragments] of Object.entries(parsedPayload)) {\n\t\tif (!Array.isArray(fragments) || fragments.length === 0) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tprojectedContent.set(\n\t\t\tnormalizeSlotName(slotName),\n\t\t\tfragments.map((fragment) => createMarkupNodeLike(fragment)),\n\t\t);\n\t}\n\n\treturn projectedContent;\n}\n\nexport function collectAuthoredHydrationScriptMarkup(host: HTMLElement): string | undefined {\n\tconst fragments = Array.from(host.childNodes)\n\t\t.filter((node): node is HTMLScriptElement => isHydrationScriptNode(node))\n\t\t.map((node) => renderableToHtmlFragment(node) ?? '')\n\t\t.filter((fragment) => fragment !== '');\n\n\treturn fragments.length > 0 ? fragments.join('') : undefined;\n}\n\nexport function serializeProjectedSlotRenderables(\n\tprojectedContent: ReadonlyMap<string, readonly JsxRenderable[]>,\n): string | undefined {\n\tconst payload: Record<string, string[]> = {};\n\n\tfor (const [slotName, renderables] of projectedContent.entries()) {\n\t\tconst fragments = renderables\n\t\t\t.map((renderable) => renderableToHtmlFragment(renderable))\n\t\t\t.filter((fragment): fragment is string => fragment !== undefined && fragment !== '');\n\n\t\tif (fragments.length > 0) {\n\t\t\tpayload[slotName] = fragments;\n\t\t}\n\t}\n\n\treturn Object.keys(payload).length > 0 ? JSON.stringify(payload) : undefined;\n}\n\nexport function resolveSlotProjection(\n\tvalue: JsxRenderable,\n\tprojectedContent: ReadonlyMap<string, readonly JsxRenderable[]>,\n): ResolvedSlotProjection {\n\tlet containsSlots = false;\n\n\tconst resolveValue = (currentValue: JsxRenderable): JsxRenderable => {\n\t\tif (isSlotJsxValue(currentValue)) {\n\t\t\tcontainsSlots = true;\n\t\t\treturn resolveSlotValue(currentValue, projectedContent, resolveValue);\n\t\t}\n\n\t\tif (isKeyedJsxValue(currentValue)) {\n\t\t\treturn cloneKeyedJsxValue(currentValue, resolveValue(currentValue.value));\n\t\t}\n\n\t\tif (isTemplateResultLike(currentValue)) {\n\t\t\treturn {\n\t\t\t\t_$rType$: 1,\n\t\t\t\trootLocalName: currentValue.rootLocalName,\n\t\t\t\tssrIntrinsicProps: currentValue.ssrIntrinsicProps,\n\t\t\t\tstrings: currentValue.strings,\n\t\t\t\tvalues: currentValue.values.map((entry) => resolveValue(entry as JsxRenderable)),\n\t\t\t} satisfies TemplateResultLike;\n\t\t}\n\n\t\tif (isIterableRenderable(currentValue)) {\n\t\t\treturn Array.from(currentValue, (entry) => resolveValue(entry as JsxRenderable));\n\t\t}\n\n\t\treturn currentValue;\n\t};\n\n\tconst resolvedValue = resolveValue(value);\n\n\treturn {\n\t\tcontainsSlots,\n\t\tvalue: resolvedValue,\n\t};\n}\n\nexport function takeSlotProjectionScriptPayload(host: HTMLElement): string | undefined {\n\tfor (const node of Array.from(host.childNodes)) {\n\t\tif (!isSlotProjectionScriptNode(node)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst payload = node.textContent ?? undefined;\n\t\tnode.parentNode?.removeChild(node);\n\t\treturn payload;\n\t}\n\n\treturn undefined;\n}\n\nfunction appendProjectedRenderable(\n\tprojectedContent: Map<string, JsxRenderable[]>,\n\tslotName: string,\n\trenderable: JsxRenderable,\n): void {\n\tconst existingRenderables = projectedContent.get(slotName);\n\n\tif (existingRenderables) {\n\t\texistingRenderables.push(renderable);\n\t\treturn;\n\t}\n\n\tprojectedContent.set(slotName, [renderable]);\n}\n\nfunction cloneKeyedJsxValue(value: KeyedJsxValue, nextValue: JsxRenderable): KeyedJsxValue {\n\treturn {\n\t\t...value,\n\t\tvalue: nextValue,\n\t};\n}\n\nfunction getNodeSlotName(node: Node): string {\n\tif (node instanceof Element) {\n\t\treturn normalizeSlotName(node.getAttribute('slot'));\n\t}\n\n\treturn DEFAULT_SLOT_NAME;\n}\n\nfunction isIterableRenderable(value: JsxRenderable): value is Iterable<JsxRenderable> {\n\treturn typeof value !== 'string' && typeof value === 'object' && value !== null && Symbol.iterator in value;\n}\n\nfunction isSlotProjectionScriptNode(node: Node): node is HTMLScriptElement {\n\treturn node instanceof HTMLScriptElement && node.hasAttribute(SLOT_PROJECTION_SCRIPT_ATTRIBUTE);\n}\n\nfunction isHydrationScriptNode(node: Node): node is HTMLScriptElement {\n\treturn node instanceof HTMLScriptElement && node.hasAttribute(HYDRATION_ATTRIBUTE);\n}\n\nfunction isIgnoredProjectedNode(node: Node): boolean {\n\treturn isSlotProjectionScriptNode(node) || isHydrationScriptNode(node);\n}\n\nfunction isTemplateResultLike(value: JsxRenderable): value is TemplateResultLike {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\t(value as Partial<TemplateResultLike>)['_$rType$'] === 1 &&\n\t\tArray.isArray((value as Partial<TemplateResultLike>).strings) &&\n\t\tArray.isArray((value as Partial<TemplateResultLike>).values)\n\t);\n}\n\nfunction normalizeSlotName(name: string | undefined | null): string {\n\treturn name ?? DEFAULT_SLOT_NAME;\n}\n\nfunction renderableToHtmlFragment(renderable: JsxRenderable): string | undefined {\n\tif (renderable === undefined || renderable === null || renderable === false || renderable === true) {\n\t\treturn undefined;\n\t}\n\n\tif (typeof Node !== 'undefined' && renderable instanceof Node) {\n\t\tif (renderable.nodeType === Node.TEXT_NODE) {\n\t\t\treturn renderable.textContent ?? '';\n\t\t}\n\n\t\treturn (renderable as Element).outerHTML ?? renderable.textContent ?? undefined;\n\t}\n\n\tif (isKeyedJsxValue(renderable)) {\n\t\treturn renderableToHtmlFragment(renderable.value);\n\t}\n\n\tif (typeof renderable === 'string' || typeof renderable === 'number' || typeof renderable === 'bigint') {\n\t\treturn String(renderable);\n\t}\n\n\tif (typeof renderable === 'object' && renderable !== null && 'outerHTML' in renderable) {\n\t\treturn typeof renderable.outerHTML === 'string' ? renderable.outerHTML : (renderable.textContent ?? undefined);\n\t}\n\n\tif (isIterableRenderable(renderable)) {\n\t\treturn Array.from(renderable, (entry) => renderableToHtmlFragment(entry as JsxRenderable) ?? '').join('');\n\t}\n\n\treturn undefined;\n}\n\nfunction resolveSlotValue(\n\tvalue: SlotJsxValue,\n\tprojectedContent: ReadonlyMap<string, readonly JsxRenderable[]>,\n\tresolveValue: (value: JsxRenderable) => JsxRenderable,\n): JsxRenderable {\n\tconst assignedContent = projectedContent.get(normalizeSlotName(value.name));\n\n\tif (assignedContent && assignedContent.length > 0) {\n\t\treturn assignedContent.length === 1 ? assignedContent[0] : (assignedContent as JsxRenderable);\n\t}\n\n\tif (value.fallback === undefined) {\n\t\treturn '';\n\t}\n\n\treturn resolveValue(value.fallback);\n}\n",
9
- "import { createMarkupNodeLike, type JsxRenderable } from '@ecopages/jsx';\n\nimport { HYDRATION_ATTRIBUTE } from '../core/hydration-codec';\nimport { DEFAULT_SLOT_NAME, SLOT_PROJECTION_SCRIPT_ATTRIBUTE } from '../core/slot-projection-runtime';\nimport { collectTopLevelHtmlFragments } from './html-parser';\n\nexport function parseProjectedSlotRenderablesFromHtml(html: string): Map<string, JsxRenderable[]> {\n\tconst projectedContent = new Map<string, JsxRenderable[]>();\n\n\tfor (const fragment of collectTopLevelHtmlFragments(html)) {\n\t\tif (isIgnoredProjectedHtmlFragment(fragment)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tappendProjectedRenderable(\n\t\t\tprojectedContent,\n\t\t\tgetSlotNameFromHtmlFragment(fragment),\n\t\t\tcreateMarkupNodeLike(fragment),\n\t\t);\n\t}\n\n\treturn projectedContent;\n}\n\nexport function collectAuthoredHydrationScriptMarkupFromHtml(html: string): string | undefined {\n\tconst fragments = collectTopLevelHtmlFragments(html).filter((fragment) => isHydrationScriptHtmlFragment(fragment));\n\n\treturn fragments.length > 0 ? fragments.join('') : undefined;\n}\n\nfunction appendProjectedRenderable(\n\tprojectedContent: Map<string, JsxRenderable[]>,\n\tslotName: string,\n\trenderable: JsxRenderable,\n): void {\n\tconst existingRenderables = projectedContent.get(slotName);\n\n\tif (existingRenderables) {\n\t\texistingRenderables.push(renderable);\n\t\treturn;\n\t}\n\n\tprojectedContent.set(slotName, [renderable]);\n}\n\nfunction getSlotNameFromHtmlFragment(fragment: string): string {\n\tconst openingTagMatch = /^<([A-Za-z][^\\s/>]*)([^>]*)>/s.exec(fragment);\n\n\tif (!openingTagMatch) {\n\t\treturn DEFAULT_SLOT_NAME;\n\t}\n\n\tconst attributes = openingTagMatch[2] ?? '';\n\tconst slotMatch = /\\sslot\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s>]+))/i.exec(attributes);\n\n\treturn slotMatch?.[1] ?? slotMatch?.[2] ?? slotMatch?.[3] ?? DEFAULT_SLOT_NAME;\n}\n\nfunction isIgnoredProjectedHtmlFragment(fragment: string): boolean {\n\treturn isSlotProjectionScriptHtmlFragment(fragment) || isHydrationScriptHtmlFragment(fragment);\n}\n\nfunction isSlotProjectionScriptHtmlFragment(fragment: string): boolean {\n\tconst openingTagMatch = /^<script\\b([^>]*)>/i.exec(fragment);\n\n\tif (!openingTagMatch) {\n\t\treturn false;\n\t}\n\n\treturn hasScriptAttribute(openingTagMatch[1] ?? '', SLOT_PROJECTION_SCRIPT_ATTRIBUTE);\n}\n\nfunction isHydrationScriptHtmlFragment(fragment: string): boolean {\n\tconst openingTagMatch = /^<script\\b([^>]*)>/i.exec(fragment);\n\n\tif (!openingTagMatch) {\n\t\treturn false;\n\t}\n\n\treturn hasScriptAttribute(openingTagMatch[1] ?? '', HYDRATION_ATTRIBUTE);\n}\n\nfunction hasScriptAttribute(attributes: string, attributeName: string): boolean {\n\treturn new RegExp(`(?:^|\\\\s)${attributeName}(?:\\\\s*=\\\\s*(?:\"[^\"]*\"|'[^']*'|[^\\\\s>]+))?`, 'i').test(attributes);\n}\n"
8
+ "import {\n\tcreateMarkupNodeLike,\n\tisKeyedJsxValue,\n\tisSlotJsxValue,\n\ttype JsxRenderable,\n\ttype KeyedJsxValue,\n\ttype SlotJsxValue,\n\ttype TemplateResultLike,\n} from '@ecopages/jsx';\n\nimport { HYDRATION_ATTRIBUTE } from './hydration-codec';\n\nexport const DEFAULT_SLOT_NAME = '';\nexport const SLOT_PROJECTION_SCRIPT_ATTRIBUTE = 'data-radiant-slot-projection';\n\ntype ResolvedSlotProjection = {\n\tcontainsSlots: boolean;\n\tvalue: JsxRenderable;\n};\n\nexport function captureProjectedSlotRenderables(host: HTMLElement): Map<string, JsxRenderable[]> {\n\tconst projectedContent = new Map<string, JsxRenderable[]>();\n\n\tfor (const node of Array.from(host.childNodes)) {\n\t\tif (isIgnoredProjectedNode(node)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tappendProjectedRenderable(projectedContent, getNodeSlotName(node), node);\n\t}\n\n\treturn projectedContent;\n}\n\nexport function deserializeProjectedSlotRenderables(payload: string): Map<string, JsxRenderable[]> {\n\tlet parsedPayload: Record<string, string[]>;\n\n\ttry {\n\t\tparsedPayload = JSON.parse(payload) as Record<string, string[]>;\n\t} catch {\n\t\tif (typeof console !== 'undefined') {\n\t\t\tconsole.warn('[@ecopages/radiant] Failed to parse slot projection payload:', payload.slice(0, 120));\n\t\t}\n\t\treturn new Map();\n\t}\n\n\tconst projectedContent = new Map<string, JsxRenderable[]>();\n\n\tfor (const [slotName, fragments] of Object.entries(parsedPayload)) {\n\t\tif (!Array.isArray(fragments) || fragments.length === 0) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tprojectedContent.set(\n\t\t\tnormalizeSlotName(slotName),\n\t\t\tfragments.map((fragment) => createMarkupNodeLike(fragment)),\n\t\t);\n\t}\n\n\treturn projectedContent;\n}\n\nexport function collectAuthoredHydrationScriptMarkup(host: HTMLElement): string | undefined {\n\tconst fragments = Array.from(host.childNodes)\n\t\t.filter((node): node is HTMLScriptElement => isHydrationScriptNode(node))\n\t\t.map((node) => renderableToHtmlFragment(node) ?? '')\n\t\t.filter((fragment) => fragment !== '');\n\n\treturn fragments.length > 0 ? fragments.join('') : undefined;\n}\n\nexport function serializeProjectedSlotRenderables(\n\tprojectedContent: ReadonlyMap<string, readonly JsxRenderable[]>,\n): string | undefined {\n\tconst payload: Record<string, string[]> = {};\n\n\tfor (const [slotName, renderables] of projectedContent.entries()) {\n\t\tconst fragments = renderables\n\t\t\t.map((renderable) => renderableToHtmlFragment(renderable))\n\t\t\t.filter((fragment): fragment is string => fragment !== undefined && fragment !== '');\n\n\t\tif (fragments.length > 0) {\n\t\t\tpayload[slotName] = fragments;\n\t\t}\n\t}\n\n\treturn Object.keys(payload).length > 0 ? JSON.stringify(payload) : undefined;\n}\n\nexport function resolveSlotProjection(\n\tvalue: JsxRenderable,\n\tprojectedContent: ReadonlyMap<string, readonly JsxRenderable[]>,\n): ResolvedSlotProjection {\n\tlet containsSlots = false;\n\n\tconst resolveValue = (currentValue: JsxRenderable): JsxRenderable => {\n\t\tif (isSlotJsxValue(currentValue)) {\n\t\t\tcontainsSlots = true;\n\t\t\treturn resolveSlotValue(currentValue, projectedContent, resolveValue);\n\t\t}\n\n\t\tif (isKeyedJsxValue(currentValue)) {\n\t\t\treturn cloneKeyedJsxValue(currentValue, resolveValue(currentValue.value));\n\t\t}\n\n\t\tif (isTemplateResultLike(currentValue)) {\n\t\t\treturn {\n\t\t\t\t_$rType$: 1,\n\t\t\t\trootLocalName: currentValue.rootLocalName,\n\t\t\t\tssrIntrinsicProps: currentValue.ssrIntrinsicProps,\n\t\t\t\tstrings: currentValue.strings,\n\t\t\t\tvalues: currentValue.values.map((entry) => resolveValue(entry as JsxRenderable)),\n\t\t\t} satisfies TemplateResultLike;\n\t\t}\n\n\t\tif (isIterableRenderable(currentValue)) {\n\t\t\treturn Array.from(currentValue, (entry) => resolveValue(entry as JsxRenderable));\n\t\t}\n\n\t\treturn currentValue;\n\t};\n\n\tconst resolvedValue = resolveValue(value);\n\n\treturn {\n\t\tcontainsSlots,\n\t\tvalue: resolvedValue,\n\t};\n}\n\nexport function takeSlotProjectionScriptPayload(host: HTMLElement): string | undefined {\n\tfor (const node of Array.from(host.childNodes)) {\n\t\tif (!isSlotProjectionScriptNode(node)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst payload = node.textContent ?? undefined;\n\t\tnode.parentNode?.removeChild(node);\n\t\treturn payload;\n\t}\n\n\treturn undefined;\n}\n\nfunction appendProjectedRenderable(\n\tprojectedContent: Map<string, JsxRenderable[]>,\n\tslotName: string,\n\trenderable: JsxRenderable,\n): void {\n\tconst existingRenderables = projectedContent.get(slotName);\n\n\tif (existingRenderables) {\n\t\texistingRenderables.push(renderable);\n\t\treturn;\n\t}\n\n\tprojectedContent.set(slotName, [renderable]);\n}\n\nfunction cloneKeyedJsxValue(value: KeyedJsxValue, nextValue: JsxRenderable): KeyedJsxValue {\n\treturn {\n\t\t...value,\n\t\tvalue: nextValue,\n\t};\n}\n\nfunction getNodeSlotName(node: Node): string {\n\tif (node instanceof Element) {\n\t\treturn normalizeSlotName(node.getAttribute('slot'));\n\t}\n\n\treturn DEFAULT_SLOT_NAME;\n}\n\nfunction isIterableRenderable(value: JsxRenderable): value is Iterable<JsxRenderable> {\n\treturn typeof value !== 'string' && typeof value === 'object' && value !== null && Symbol.iterator in value;\n}\n\nfunction isSlotProjectionScriptNode(node: Node): node is HTMLScriptElement {\n\treturn node instanceof HTMLScriptElement && node.hasAttribute(SLOT_PROJECTION_SCRIPT_ATTRIBUTE);\n}\n\nfunction isHydrationScriptNode(node: Node): node is HTMLScriptElement {\n\treturn node instanceof HTMLScriptElement && node.hasAttribute(HYDRATION_ATTRIBUTE);\n}\n\nfunction isIgnoredProjectedNode(node: Node): boolean {\n\treturn isSlotProjectionScriptNode(node) || isHydrationScriptNode(node);\n}\n\nfunction isTemplateResultLike(value: JsxRenderable): value is TemplateResultLike {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\t(value as Partial<TemplateResultLike>)['_$rType$'] === 1 &&\n\t\tArray.isArray((value as Partial<TemplateResultLike>).strings) &&\n\t\tArray.isArray((value as Partial<TemplateResultLike>).values)\n\t);\n}\n\nfunction normalizeSlotName(name: string | undefined | null): string {\n\treturn name ?? DEFAULT_SLOT_NAME;\n}\n\nfunction renderableToHtmlFragment(renderable: JsxRenderable): string | undefined {\n\tif (renderable === undefined || renderable === null || renderable === false || renderable === true) {\n\t\treturn undefined;\n\t}\n\n\tif (typeof Node !== 'undefined' && renderable instanceof Node) {\n\t\tif (renderable.nodeType === Node.TEXT_NODE) {\n\t\t\treturn renderable.textContent ?? '';\n\t\t}\n\n\t\treturn (renderable as Element).outerHTML ?? renderable.textContent ?? undefined;\n\t}\n\n\tif (isKeyedJsxValue(renderable)) {\n\t\treturn renderableToHtmlFragment(renderable.value);\n\t}\n\n\tif (typeof renderable === 'string' || typeof renderable === 'number' || typeof renderable === 'bigint') {\n\t\treturn String(renderable);\n\t}\n\n\tif (typeof renderable === 'object' && renderable !== null && 'outerHTML' in renderable) {\n\t\treturn typeof renderable.outerHTML === 'string' ? renderable.outerHTML : (renderable.textContent ?? undefined);\n\t}\n\n\tif (isIterableRenderable(renderable)) {\n\t\treturn Array.from(renderable, (entry) => renderableToHtmlFragment(entry as JsxRenderable) ?? '').join('');\n\t}\n\n\treturn undefined;\n}\n\nfunction resolveSlotValue(\n\tvalue: SlotJsxValue,\n\tprojectedContent: ReadonlyMap<string, readonly JsxRenderable[]>,\n\tresolveValue: (value: JsxRenderable) => JsxRenderable,\n): JsxRenderable {\n\tconst assignedContent = projectedContent.get(normalizeSlotName(value.name));\n\n\tif (assignedContent && assignedContent.length > 0) {\n\t\treturn assignedContent.length === 1 ? assignedContent[0] : (assignedContent as JsxRenderable);\n\t}\n\n\tif (value.fallback === undefined) {\n\t\treturn '';\n\t}\n\n\treturn resolveValue(value.fallback);\n}\n"
10
9
  ],
11
- "mappings": "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",
12
- "debugId": "BC88CE2F42D3A4DA64756E2164756E21",
10
+ "mappings": "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",
11
+ "debugId": "0068C65DDBA592F664756E2164756E21",
13
12
  "names": []
14
13
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:D,getOwnPropertyNames:I,getOwnPropertyDescriptor:J}=Object,K=Object.prototype.hasOwnProperty;function L(j){return this[j]}var P=(j)=>{var m=(F??=new WeakMap).get(j),q;if(m)return m;if(m=D({},"__esModule",{value:!0}),j&&typeof j==="object"||typeof j==="function"){for(var A of I(j))if(!K.call(m,A))D(m,A,{get:L.bind(j,A),enumerable:!(q=J(j,A))||q.enumerable})}return F.set(j,m),m},F;var M=(j)=>j;function N(j,m){this[j]=M.bind(null,m)}var Q=(j,m)=>{for(var q in m)D(j,q,{get:m[q],enumerable:!0,configurable:!0,set:N.bind(m,q)})};var T=(j,m)=>()=>(j&&(m=j(j=0)),m);var U=((j)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(j,{get:(m,q)=>(typeof require<"u"?require:m)[q]}):j)(function(j){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+j+'" is not supported')});import{asyncState as G,state as O}from"@ecopages/signals";class E{data;status;error;connected=O(!1);resource;disposed=!1;constructor(j,m){let q={host:j},A={initialValue:m.initialValue,pendingDelay:m.pendingDelay,staleTime:m.staleTime,onError:(z)=>{m.onError?.(z,q)},onSettled:(z,B)=>{m.onSettled?.(z,B,q)},onSuccess:(z)=>{m.onSuccess?.(z,q)}};if(m.source)this.resource=G({...A,source:()=>{if(this.disposed||!this.connected.get())return!1;return m.source(q)},fetcher:(z,B)=>m.fetcher(z,{...q,...B})});else this.resource=G({...A,source:()=>{if(this.disposed||!this.connected.get())return!1;return!0},fetcher:(z,B)=>m.fetcher({...q,...B})});this.data=this.resource.data,this.status=this.resource.status,this.error=this.resource.error}connect(){if(this.disposed||this.connected.get())return;this.connected.set(!0)}disconnect(){if(this.disposed||!this.connected.get())return;this.connected.set(!1),this.resource.abort()}refetch(){if(this.disposed||!this.connected.get())return;this.resource.refetch()}abort(){if(this.disposed)return;this.resource.abort()}dispose(){if(this.disposed)return;this.disposed=!0,this.connected.set(!1),this.resource.dispose()}}function Y(j,m){return new E(j,m)}function Z(j,m){let q=new E(j,m);return j.registerConnectedCallback(()=>{q.connect()}),j.registerCleanupCallback(()=>{q.disconnect()}),q}export{Z as createResource,Y as createHostResource,E as HostResource};
1
+ import{asyncState as E,state as F}from"@ecopages/signals";class B{data;status;error;connected=F(!1);resource;disposed=!1;constructor(z,j){let m={host:z},D={initialValue:j.initialValue,pendingDelay:j.pendingDelay,staleTime:j.staleTime,onError:(q)=>{j.onError?.(q,m)},onSettled:(q,A)=>{j.onSettled?.(q,A,m)},onSuccess:(q)=>{j.onSuccess?.(q,m)}};if(j.source)this.resource=E({...D,source:()=>{if(this.disposed||!this.connected.get())return!1;return j.source(m)},fetcher:(q,A)=>j.fetcher(q,{...m,...A})});else this.resource=E({...D,source:()=>{if(this.disposed||!this.connected.get())return!1;return!0},fetcher:(q,A)=>j.fetcher({...m,...A})});this.data=this.resource.data,this.status=this.resource.status,this.error=this.resource.error}connect(){if(this.disposed||this.connected.get())return;this.connected.set(!0)}disconnect(){if(this.disposed||!this.connected.get())return;this.connected.set(!1),this.resource.abort()}refetch(){if(this.disposed||!this.connected.get())return;this.resource.refetch()}abort(){if(this.disposed)return;this.resource.abort()}dispose(){if(this.disposed)return;this.disposed=!0,this.connected.set(!1),this.resource.dispose()}}function I(z,j){return new B(z,j)}function J(z,j){let m=new B(z,j);return z.registerConnectedCallback(()=>{m.connect()}),z.registerCleanupCallback(()=>{m.disconnect()}),m}export{J as createResource,I as createHostResource,B as HostResource};
2
2
 
3
- //# debugId=F65DC9B1873E2BD464756E2164756E21
3
+ //# debugId=7363838F60511DD164756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "import { asyncState, state, type AsyncStateFetcherOptions, type AsyncStateResult } from '@ecopages/signals';\nimport type { RadiantElement } from '../core/radiant-element';\n\nexport type ResourceContext<Host extends RadiantElement> = {\n\thost: Host;\n};\n\nexport type ResourceRequestContext<Host extends RadiantElement> = ResourceContext<Host> & AsyncStateFetcherOptions;\n\ntype HostResourceBaseConfig<Host extends RadiantElement, Value> = {\n\t/** Seed value exposed from `data` before the first successful resolution. */\n\tinitialValue?: Value;\n\n\t/** Milliseconds a successful response stays fresh in the per-instance cache. */\n\tstaleTime?: number;\n\n\t/** Milliseconds to wait before transitioning `status` to `'pending'`. */\n\tpendingDelay?: number;\n\n\t/** Called after each successful resolution, including cache hits. */\n\tonSuccess?: (data: Value, ctx: ResourceContext<Host>) => void;\n\n\t/** Called after each failed resolution. Not called for aborted requests. */\n\tonError?: (error: unknown, ctx: ResourceContext<Host>) => void;\n\n\t/** Called after each resolution, whether successful or failed. */\n\tonSettled?: (data: Value | undefined, error: unknown, ctx: ResourceContext<Host>) => void;\n};\n\n/** Configuration for a host-owned resource that fetches on connect. */\nexport interface HostResourceConfig<Host extends RadiantElement, Value> extends HostResourceBaseConfig<Host, Value> {\n\tfetcher: (ctx: ResourceRequestContext<Host>) => Promise<Value>;\n\tsource?: undefined;\n}\n\n/** Configuration for a host-owned resource driven by a reactive source. */\nexport interface HostResourceSourcedConfig<Host extends RadiantElement, Source, Value> extends HostResourceBaseConfig<\n\tHost,\n\tValue\n> {\n\t/**\n\t * Returns the current source value while the host is connected.\n\t *\n\t * Falsy values (`false`, `null`, `undefined`) disable fetching and preserve\n\t * the current resource state.\n\t */\n\tsource: (ctx: ResourceContext<Host>) => Source | false | null | undefined;\n\n\tfetcher: (sourceValue: Source, ctx: ResourceRequestContext<Host>) => Promise<Value>;\n}\n\nexport class HostResource<Host extends RadiantElement, Value, Source = never> implements AsyncStateResult<Value> {\n\treadonly data: AsyncStateResult<Value>['data'];\n\treadonly status: AsyncStateResult<Value>['status'];\n\treadonly error: AsyncStateResult<Value>['error'];\n\n\tprivate readonly connected = state(false);\n\tprivate readonly resource: AsyncStateResult<Value>;\n\tprivate disposed = false;\n\n\tconstructor(host: Host, config: HostResourceConfig<Host, Value> | HostResourceSourcedConfig<Host, Source, Value>) {\n\t\tconst context: ResourceContext<Host> = { host };\n\t\tconst baseConfig = {\n\t\t\tinitialValue: config.initialValue,\n\t\t\tpendingDelay: config.pendingDelay,\n\t\t\tstaleTime: config.staleTime,\n\t\t\tonError: (error: unknown) => {\n\t\t\t\tconfig.onError?.(error, context);\n\t\t\t},\n\t\t\tonSettled: (data: Value | undefined, error: unknown) => {\n\t\t\t\tconfig.onSettled?.(data, error, context);\n\t\t\t},\n\t\t\tonSuccess: (data: Value) => {\n\t\t\t\tconfig.onSuccess?.(data, context);\n\t\t\t},\n\t\t};\n\n\t\tif (config.source) {\n\t\t\tthis.resource = asyncState({\n\t\t\t\t...baseConfig,\n\t\t\t\tsource: () => {\n\t\t\t\t\tif (this.disposed || !this.connected.get()) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn config.source(context);\n\t\t\t\t},\n\t\t\t\tfetcher: (sourceValue, options) => config.fetcher(sourceValue as Source, { ...context, ...options }),\n\t\t\t});\n\t\t} else {\n\t\t\tthis.resource = asyncState({\n\t\t\t\t...baseConfig,\n\t\t\t\tsource: () => {\n\t\t\t\t\tif (this.disposed || !this.connected.get()) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\t\t\t\tfetcher: (_connected, options) => config.fetcher({ ...context, ...options }),\n\t\t\t});\n\t\t}\n\n\t\tthis.data = this.resource.data;\n\t\tthis.status = this.resource.status;\n\t\tthis.error = this.resource.error;\n\t}\n\n\tpublic connect(): void {\n\t\tif (this.disposed || this.connected.get()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.connected.set(true);\n\t}\n\n\tpublic disconnect(): void {\n\t\tif (this.disposed || !this.connected.get()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.connected.set(false);\n\t\tthis.resource.abort();\n\t}\n\n\tpublic refetch(): void {\n\t\tif (this.disposed || !this.connected.get()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.resource.refetch();\n\t}\n\n\tpublic abort(): void {\n\t\tif (this.disposed) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.resource.abort();\n\t}\n\n\tpublic dispose(): void {\n\t\tif (this.disposed) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.disposed = true;\n\t\tthis.connected.set(false);\n\t\tthis.resource.dispose();\n\t}\n}\n\nexport function createHostResource<Host extends RadiantElement, Value>(\n\thost: Host,\n\tconfig: HostResourceConfig<Host, Value>,\n): HostResource<Host, Value>;\nexport function createHostResource<Host extends RadiantElement, Source, Value>(\n\thost: Host,\n\tconfig: HostResourceSourcedConfig<Host, Source, Value>,\n): HostResource<Host, Value, Source>;\nexport function createHostResource<Host extends RadiantElement, Source, Value>(\n\thost: Host,\n\tconfig: HostResourceConfig<Host, Value> | HostResourceSourcedConfig<Host, Source, Value>,\n): HostResource<Host, Value, Source> {\n\treturn new HostResource<Host, Value, Source>(host, config);\n}\n\n/**\n * Creates a host-owned resource and registers connect/disconnect lifecycle\n * hooks on the provided host.\n */\nexport function createResource<Host extends RadiantElement, Value>(\n\thost: Host,\n\tconfig: HostResourceConfig<Host, Value>,\n): HostResource<Host, Value>;\nexport function createResource<Host extends RadiantElement, Source, Value>(\n\thost: Host,\n\tconfig: HostResourceSourcedConfig<Host, Source, Value>,\n): HostResource<Host, Value, Source>;\nexport function createResource<Host extends RadiantElement, Source, Value>(\n\thost: Host,\n\tconfig: HostResourceConfig<Host, Value> | HostResourceSourcedConfig<Host, Source, Value>,\n): HostResource<Host, Value, Source> {\n\tconst hostResource = new HostResource<Host, Value, Source>(host, config);\n\n\thost.registerConnectedCallback(() => {\n\t\thostResource.connect();\n\t});\n\n\thost.registerCleanupCallback(() => {\n\t\thostResource.disconnect();\n\t});\n\n\treturn hostResource;\n}\n"
6
6
  ],
7
- "mappings": "i0BAAA,qBAAS,WAAY,0BAmDd,MAAM,CAAoG,CACvG,KACA,OACA,MAEQ,UAAY,EAAM,EAAK,EACvB,SACT,SAAW,GAEnB,WAAW,CAAC,EAAY,EAA0F,CACjH,IAAM,EAAiC,CAAE,MAAK,EACxC,EAAa,CAClB,aAAc,EAAO,aACrB,aAAc,EAAO,aACrB,UAAW,EAAO,UAClB,QAAS,CAAC,IAAmB,CAC5B,EAAO,UAAU,EAAO,CAAO,GAEhC,UAAW,CAAC,EAAyB,IAAmB,CACvD,EAAO,YAAY,EAAM,EAAO,CAAO,GAExC,UAAW,CAAC,IAAgB,CAC3B,EAAO,YAAY,EAAM,CAAO,EAElC,EAEA,GAAI,EAAO,OACV,KAAK,SAAW,EAAW,IACvB,EACH,OAAQ,IAAM,CACb,GAAI,KAAK,UAAY,CAAC,KAAK,UAAU,IAAI,EACxC,MAAO,GAGR,OAAO,EAAO,OAAO,CAAO,GAE7B,QAAS,CAAC,EAAa,IAAY,EAAO,QAAQ,EAAuB,IAAK,KAAY,CAAQ,CAAC,CACpG,CAAC,EAED,UAAK,SAAW,EAAW,IACvB,EACH,OAAQ,IAAM,CACb,GAAI,KAAK,UAAY,CAAC,KAAK,UAAU,IAAI,EACxC,MAAO,GAGR,MAAO,IAER,QAAS,CAAC,EAAY,IAAY,EAAO,QAAQ,IAAK,KAAY,CAAQ,CAAC,CAC5E,CAAC,EAGF,KAAK,KAAO,KAAK,SAAS,KAC1B,KAAK,OAAS,KAAK,SAAS,OAC5B,KAAK,MAAQ,KAAK,SAAS,MAGrB,OAAO,EAAS,CACtB,GAAI,KAAK,UAAY,KAAK,UAAU,IAAI,EACvC,OAGD,KAAK,UAAU,IAAI,EAAI,EAGjB,UAAU,EAAS,CACzB,GAAI,KAAK,UAAY,CAAC,KAAK,UAAU,IAAI,EACxC,OAGD,KAAK,UAAU,IAAI,EAAK,EACxB,KAAK,SAAS,MAAM,EAGd,OAAO,EAAS,CACtB,GAAI,KAAK,UAAY,CAAC,KAAK,UAAU,IAAI,EACxC,OAGD,KAAK,SAAS,QAAQ,EAGhB,KAAK,EAAS,CACpB,GAAI,KAAK,SACR,OAGD,KAAK,SAAS,MAAM,EAGd,OAAO,EAAS,CACtB,GAAI,KAAK,SACR,OAGD,KAAK,SAAW,GAChB,KAAK,UAAU,IAAI,EAAK,EACxB,KAAK,SAAS,QAAQ,EAExB,CAUO,SAAS,CAA8D,CAC7E,EACA,EACoC,CACpC,OAAO,IAAI,EAAkC,EAAM,CAAM,EAenD,SAAS,CAA0D,CACzE,EACA,EACoC,CACpC,IAAM,EAAe,IAAI,EAAkC,EAAM,CAAM,EAUvE,OARA,EAAK,0BAA0B,IAAM,CACpC,EAAa,QAAQ,EACrB,EAED,EAAK,wBAAwB,IAAM,CAClC,EAAa,WAAW,EACxB,EAEM",
8
- "debugId": "F65DC9B1873E2BD464756E2164756E21",
7
+ "mappings": "AAAA,qBAAS,WAAY,0BAmDd,MAAM,CAAoG,CACvG,KACA,OACA,MAEQ,UAAY,EAAM,EAAK,EACvB,SACT,SAAW,GAEnB,WAAW,CAAC,EAAY,EAA0F,CACjH,IAAM,EAAiC,CAAE,MAAK,EACxC,EAAa,CAClB,aAAc,EAAO,aACrB,aAAc,EAAO,aACrB,UAAW,EAAO,UAClB,QAAS,CAAC,IAAmB,CAC5B,EAAO,UAAU,EAAO,CAAO,GAEhC,UAAW,CAAC,EAAyB,IAAmB,CACvD,EAAO,YAAY,EAAM,EAAO,CAAO,GAExC,UAAW,CAAC,IAAgB,CAC3B,EAAO,YAAY,EAAM,CAAO,EAElC,EAEA,GAAI,EAAO,OACV,KAAK,SAAW,EAAW,IACvB,EACH,OAAQ,IAAM,CACb,GAAI,KAAK,UAAY,CAAC,KAAK,UAAU,IAAI,EACxC,MAAO,GAGR,OAAO,EAAO,OAAO,CAAO,GAE7B,QAAS,CAAC,EAAa,IAAY,EAAO,QAAQ,EAAuB,IAAK,KAAY,CAAQ,CAAC,CACpG,CAAC,EAED,UAAK,SAAW,EAAW,IACvB,EACH,OAAQ,IAAM,CACb,GAAI,KAAK,UAAY,CAAC,KAAK,UAAU,IAAI,EACxC,MAAO,GAGR,MAAO,IAER,QAAS,CAAC,EAAY,IAAY,EAAO,QAAQ,IAAK,KAAY,CAAQ,CAAC,CAC5E,CAAC,EAGF,KAAK,KAAO,KAAK,SAAS,KAC1B,KAAK,OAAS,KAAK,SAAS,OAC5B,KAAK,MAAQ,KAAK,SAAS,MAGrB,OAAO,EAAS,CACtB,GAAI,KAAK,UAAY,KAAK,UAAU,IAAI,EACvC,OAGD,KAAK,UAAU,IAAI,EAAI,EAGjB,UAAU,EAAS,CACzB,GAAI,KAAK,UAAY,CAAC,KAAK,UAAU,IAAI,EACxC,OAGD,KAAK,UAAU,IAAI,EAAK,EACxB,KAAK,SAAS,MAAM,EAGd,OAAO,EAAS,CACtB,GAAI,KAAK,UAAY,CAAC,KAAK,UAAU,IAAI,EACxC,OAGD,KAAK,SAAS,QAAQ,EAGhB,KAAK,EAAS,CACpB,GAAI,KAAK,SACR,OAGD,KAAK,SAAS,MAAM,EAGd,OAAO,EAAS,CACtB,GAAI,KAAK,SACR,OAGD,KAAK,SAAW,GAChB,KAAK,UAAU,IAAI,EAAK,EACxB,KAAK,SAAS,QAAQ,EAExB,CAUO,SAAS,CAA8D,CAC7E,EACA,EACoC,CACpC,OAAO,IAAI,EAAkC,EAAM,CAAM,EAenD,SAAS,CAA0D,CACzE,EACA,EACoC,CACpC,IAAM,EAAe,IAAI,EAAkC,EAAM,CAAM,EAUvE,OARA,EAAK,0BAA0B,IAAM,CACpC,EAAa,QAAQ,EACrB,EAED,EAAK,wBAAwB,IAAM,CAClC,EAAa,WAAW,EACxB,EAEM",
8
+ "debugId": "7363838F60511DD164756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:F,getOwnPropertyNames:b,getOwnPropertyDescriptor:x}=Object,K=Object.prototype.hasOwnProperty;function N(q){return this[q]}var I=(q)=>{var G=(C??=new WeakMap).get(q),Q;if(G)return G;if(G=F({},"__esModule",{value:!0}),q&&typeof q==="object"||typeof q==="function"){for(var X of b(q))if(!K.call(G,X))F(G,X,{get:N.bind(q,X),enumerable:!(Q=x(q,X))||Q.enumerable})}return C.set(q,G),G},C;var S=(q)=>q;function Y(q,G){this[q]=S.bind(null,G)}var A=(q,G)=>{for(var Q in G)F(q,Q,{get:G[Q],enumerable:!0,configurable:!0,set:Y.bind(G,Q)})};var R=(q,G)=>()=>(q&&(G=q(q=0)),G);var m=((q)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(q,{get:(G,Q)=>(typeof require<"u"?require:G)[Q]}):q)(function(q){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+q+'" is not supported')});function L(q){return q.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}var j="data-hydration",P="data-hydration-type",W="data-hydration-key";function z(q){let G=q.hydrationKey?` ${W}="${_(q.hydrationKey)}"`:"";return`<script type="application/json" ${j} ${P}="${q.type}"${G}>${q.serializedValue}</script>`}function g(q){return L(q)}function f(q,G){let Q=q.textContent;if(!Q)return G;try{return JSON.parse(Q)}catch{if(typeof console<"u")console.warn(`[@ecopages/radiant] Failed to parse hydration payload from <script ${j}>:`,Q.slice(0,120));return G}}function B(q,G,Q){let X=q.children;if(!X||X.length===0){let Z=q.childNodes;if(!Z||Z.length===0)return null;for(let $=0;$<Z.length;$+=1){let w=Z[$];if(w.nodeType!==1)continue;let J=w;if(M(J,G,Q))return J}return null}for(let Z=0;Z<X.length;Z+=1)if(M(X[Z],G,Q))return X[Z];return null}function M(q,G,Q){if(q.tagName!=="SCRIPT"||!q.hasAttribute(j)||q.getAttribute(P)!==G)return!1;if(Q!==void 0)return q.getAttribute(W)===Q;return!q.hasAttribute(W)}function _(q){return q.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function D(q){return z({type:"signal",...q})}function U(q){return g(q)}import{createMarkupNodeLike as k}from"@ecopages/jsx";import{state as E}from"@ecopages/signals";function d(q){return typeof q==="object"&&q!==null&&typeof q.get==="function"&&typeof q.set==="function"&&typeof q.subscribe==="function"&&typeof q.update==="function"}class O{host;hydrate;hydrationKey;property;source;currentValue;hasAppliedHostHydration=!1;sourceUnsubscribe;constructor(q){this.host=q.host,this.hydrate=q.hydrate,this.hydrationKey=q.hydrationKey,this.property=q.property,this.source=q.source??E(this.resolveInitialValue(q.initialValue)),this.currentValue=this.source.get(),this.host.registerReactiveMember(this.property,this.source)}get(){return this.source.get()}set(q){this.source.set(q)}subscribe(q){return this.source.subscribe(q)}update(q){this.set(q(this.get()))}connectToSource(){if(this.sourceUnsubscribe)return;let q=this.source.get();if(!Object.is(this.currentValue,q))this.currentValue=q;this.sourceUnsubscribe=this.source.subscribe((G)=>{this.handleSourceChange(G)})}disconnectFromSource(){this.sourceUnsubscribe?.(),this.sourceUnsubscribe=void 0}hydrateFromHost(){if(!this.hydrate||this.hasAppliedHostHydration)return;this.hasAppliedHostHydration=!0;let q=this.source.get(),G=this.resolveInitialValue(q);if(!Object.is(q,G))this.source.set(G),this.currentValue=this.source.get()}renderHydrationScript(){let q=this.renderHydrationScriptTag();if(!q)return;return k(q)}renderHydrationScriptTag(){let q=this.serializeHydrationValue();if(!q)return;return D({hydrationKey:this.hydrationKey,serializedValue:q})}findHydrationScriptElement(){if(!(this.host instanceof Element))return null;return B(this.host,"signal",this.hydrationKey)}isObject(q){return typeof q==="object"&&!Array.isArray(q)&&q!==null}resolveInitialValue(q){if(!this.hydrate)return q;let G=this.findHydrationScriptElement();if(!G)return q;let Q=f(G,q);if(this.hydrate===Object&&this.isObject(Q)&&this.isObject(q))return{...q,...Q};return Q}serializeHydrationValue(){if(!this.hydrate)return;let q=JSON.stringify(this.get());if(typeof q!=="string")return;return U(q)}handleSourceChange(q){this.currentValue=q}}function s(q){return new O(q)}export{d as isWritableSignalLike,s as createHostSignal,O as HostSignal};
1
+ function J(q){return q.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}var W="data-hydration",L="data-hydration-type",F="data-hydration-key";function M(q){let G=q.hydrationKey?` ${F}="${U(q.hydrationKey)}"`:"";return`<script type="application/json" ${W} ${L}="${q.type}"${G}>${q.serializedValue}</script>`}function P(q){return J(q)}function z(q,G){let Q=q.textContent;if(!Q)return G;try{return JSON.parse(Q)}catch{if(typeof console<"u")console.warn(`[@ecopages/radiant] Failed to parse hydration payload from <script ${W}>:`,Q.slice(0,120));return G}}function g(q,G,Q){let Z=q.children;if(!Z||Z.length===0){let X=q.childNodes;if(!X||X.length===0)return null;for(let $=0;$<X.length;$+=1){let j=X[$];if(j.nodeType!==1)continue;let w=j;if(C(w,G,Q))return w}return null}for(let X=0;X<Z.length;X+=1)if(C(Z[X],G,Q))return Z[X];return null}function C(q,G,Q){if(q.tagName!=="SCRIPT"||!q.hasAttribute(W)||q.getAttribute(L)!==G)return!1;if(Q!==void 0)return q.getAttribute(F)===Q;return!q.hasAttribute(F)}function U(q){return q.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function f(q){return M({type:"signal",...q})}function B(q){return P(q)}import{createMarkupNodeLike as O}from"@ecopages/jsx";import{state as b}from"@ecopages/signals";function A(q){return typeof q==="object"&&q!==null&&typeof q.get==="function"&&typeof q.set==="function"&&typeof q.subscribe==="function"&&typeof q.update==="function"}class D{host;hydrate;hydrationKey;property;source;currentValue;hasAppliedHostHydration=!1;sourceUnsubscribe;constructor(q){this.host=q.host,this.hydrate=q.hydrate,this.hydrationKey=q.hydrationKey,this.property=q.property,this.source=q.source??b(this.resolveInitialValue(q.initialValue)),this.currentValue=this.source.get(),this.host.registerReactiveMember(this.property,this.source)}get(){return this.source.get()}set(q){this.source.set(q)}subscribe(q){return this.source.subscribe(q)}update(q){this.set(q(this.get()))}connectToSource(){if(this.sourceUnsubscribe)return;let q=this.source.get();if(!Object.is(this.currentValue,q))this.currentValue=q;this.sourceUnsubscribe=this.source.subscribe((G)=>{this.handleSourceChange(G)})}disconnectFromSource(){this.sourceUnsubscribe?.(),this.sourceUnsubscribe=void 0}hydrateFromHost(){if(!this.hydrate||this.hasAppliedHostHydration)return;this.hasAppliedHostHydration=!0;let q=this.source.get(),G=this.resolveInitialValue(q);if(!Object.is(q,G))this.source.set(G),this.currentValue=this.source.get()}renderHydrationScript(){let q=this.renderHydrationScriptTag();if(!q)return;return O(q)}renderHydrationScriptTag(){let q=this.serializeHydrationValue();if(!q)return;return f({hydrationKey:this.hydrationKey,serializedValue:q})}findHydrationScriptElement(){if(!(this.host instanceof Element))return null;return g(this.host,"signal",this.hydrationKey)}isObject(q){return typeof q==="object"&&!Array.isArray(q)&&q!==null}resolveInitialValue(q){if(!this.hydrate)return q;let G=this.findHydrationScriptElement();if(!G)return q;let Q=z(G,q);if(this.hydrate===Object&&this.isObject(Q)&&this.isObject(q))return{...q,...Q};return Q}serializeHydrationValue(){if(!this.hydrate)return;let q=JSON.stringify(this.get());if(typeof q!=="string")return;return B(q)}handleSourceChange(q){this.currentValue=q}}function R(q){return new D(q)}export{A as isWritableSignalLike,R as createHostSignal,D as HostSignal};
2
2
 
3
- //# debugId=C3386E980C52A77C64756E2164756E21
3
+ //# debugId=722C993785FAFF4964756E2164756E21
@@ -7,7 +7,7 @@
7
7
  "import { createHydrationScriptTag, escapeHydrationJson } from '../core/hydration-codec';\n\n/** Creates the raw `<script type=\"application/json\">` tag used to hydrate a signal field. */\nexport function createSignalHydrationScriptTag(options: { hydrationKey?: string; serializedValue: string }): string {\n\treturn createHydrationScriptTag({ type: 'signal', ...options });\n}\n\n/** Escapes serialized JSON so it remains safe inside an HTML script tag. */\nexport function escapeSignalHydrationJson(value: string): string {\n\treturn escapeHydrationJson(value);\n}\n",
8
8
  "import { createMarkupNodeLike, type JsxRenderable } from '@ecopages/jsx';\nimport { state, type WritableSignal } from '@ecopages/signals';\nimport type { ReactiveState } from '../core/reactivity-contract';\nimport type { SsrSerializableHydrationBinding } from '../core/ssr-hydration-binding';\nimport type { AttributeTypeConstant } from '../utils/attribute-utils';\nimport { findHydrationScript, parseHydrationPayload } from '../core/hydration-codec';\nimport { createSignalHydrationScriptTag, escapeSignalHydrationJson } from './hydration-script';\n\ntype HostSignalOwner = {\n\tregisterReactiveMember<Value>(property: string, signal: ReactiveState<Value>): void;\n};\n\ntype HostSignalOptions<Value> = {\n\thost: HostSignalOwner;\n\thydrate?: AttributeTypeConstant;\n\thydrationKey?: string;\n\tinitialValue?: Value;\n\tproperty: string;\n\tsource?: WritableSignal<Value>;\n};\n\nexport function isWritableSignalLike<Value>(value: unknown): value is WritableSignal<Value> {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\ttypeof (value as WritableSignal<Value>).get === 'function' &&\n\t\ttypeof (value as WritableSignal<Value>).set === 'function' &&\n\t\ttypeof (value as WritableSignal<Value>).subscribe === 'function' &&\n\t\ttypeof (value as WritableSignal<Value>).update === 'function'\n\t);\n}\n\n/**\n * Host-owned writable signal that bridges signal updates back into Radiant's\n * update callback channel and optional SSR hydration pipeline.\n */\nexport class HostSignal<Value> implements WritableSignal<Value>, SsrSerializableHydrationBinding {\n\tprivate readonly host: HostSignalOwner;\n\tprivate readonly hydrate?: AttributeTypeConstant;\n\tprivate readonly hydrationKey?: string;\n\tprivate readonly property: string;\n\tprivate readonly source: WritableSignal<Value>;\n\tprivate currentValue: Value;\n\tprivate hasAppliedHostHydration = false;\n\tprivate sourceUnsubscribe?: () => void;\n\n\tconstructor(options: HostSignalOptions<Value>) {\n\t\tthis.host = options.host;\n\t\tthis.hydrate = options.hydrate;\n\t\tthis.hydrationKey = options.hydrationKey;\n\t\tthis.property = options.property;\n\t\tthis.source = options.source ?? state(this.resolveInitialValue(options.initialValue as Value));\n\t\tthis.currentValue = this.source.get();\n\t\tthis.host.registerReactiveMember(this.property, this.source);\n\t}\n\n\tpublic get(): Value {\n\t\treturn this.source.get();\n\t}\n\n\tpublic set(nextValue: Value): void {\n\t\tthis.source.set(nextValue);\n\t}\n\n\tpublic subscribe(notify: (value: Value) => void): () => void {\n\t\treturn this.source.subscribe(notify);\n\t}\n\n\tpublic update(updater: (value: Value) => Value): void {\n\t\tthis.set(updater(this.get()));\n\t}\n\n\tpublic connectToSource(): void {\n\t\tif (this.sourceUnsubscribe) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst nextValue = this.source.get();\n\n\t\tif (!Object.is(this.currentValue, nextValue)) {\n\t\t\tthis.currentValue = nextValue;\n\t\t}\n\n\t\tthis.sourceUnsubscribe = this.source.subscribe((value) => {\n\t\t\tthis.handleSourceChange(value);\n\t\t});\n\t}\n\n\tpublic disconnectFromSource(): void {\n\t\tthis.sourceUnsubscribe?.();\n\t\tthis.sourceUnsubscribe = undefined;\n\t}\n\n\tpublic hydrateFromHost(): void {\n\t\tif (!this.hydrate || this.hasAppliedHostHydration) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.hasAppliedHostHydration = true;\n\n\t\tconst previousValue = this.source.get();\n\t\tconst hydratedValue = this.resolveInitialValue(previousValue);\n\n\t\tif (!Object.is(previousValue, hydratedValue)) {\n\t\t\tthis.source.set(hydratedValue);\n\t\t\tthis.currentValue = this.source.get();\n\t\t}\n\t}\n\n\tpublic renderHydrationScript(): JsxRenderable | undefined {\n\t\tconst outerHTML = this.renderHydrationScriptTag();\n\n\t\tif (!outerHTML) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn createMarkupNodeLike(outerHTML);\n\t}\n\n\tpublic renderHydrationScriptTag(): string | undefined {\n\t\tconst serializedValue = this.serializeHydrationValue();\n\n\t\tif (!serializedValue) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn createSignalHydrationScriptTag({\n\t\t\thydrationKey: this.hydrationKey,\n\t\t\tserializedValue,\n\t\t});\n\t}\n\n\tprivate findHydrationScriptElement(): Element | null {\n\t\tif (!(this.host instanceof Element)) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn findHydrationScript(this.host, 'signal', this.hydrationKey);\n\t}\n\n\tprivate isObject(value: unknown): value is Record<string, unknown> {\n\t\treturn typeof value === 'object' && !Array.isArray(value) && value !== null;\n\t}\n\n\tprivate resolveInitialValue(initialValue: Value): Value {\n\t\tif (!this.hydrate) {\n\t\t\treturn initialValue;\n\t\t}\n\n\t\tconst hydrationScriptElement = this.findHydrationScriptElement();\n\n\t\tif (!hydrationScriptElement) {\n\t\t\treturn initialValue;\n\t\t}\n\n\t\tconst parsedHydrationValue = parseHydrationPayload(hydrationScriptElement, initialValue);\n\n\t\tif (this.hydrate === Object && this.isObject(parsedHydrationValue) && this.isObject(initialValue)) {\n\t\t\treturn {\n\t\t\t\t...initialValue,\n\t\t\t\t...parsedHydrationValue,\n\t\t\t} as Value;\n\t\t}\n\n\t\treturn parsedHydrationValue;\n\t}\n\n\tprivate serializeHydrationValue(): string | undefined {\n\t\tif (!this.hydrate) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst serializedValue = JSON.stringify(this.get());\n\n\t\tif (typeof serializedValue !== 'string') {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn escapeSignalHydrationJson(serializedValue);\n\t}\n\n\tprivate handleSourceChange(nextValue: Value): void {\n\t\tthis.currentValue = nextValue;\n\t}\n}\n\nexport function createHostSignal<Value>(options: HostSignalOptions<Value>): HostSignal<Value> {\n\treturn new HostSignal(options);\n}\n"
9
9
  ],
10
- "mappings": "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",
11
- "debugId": "C3386E980C52A77C64756E2164756E21",
10
+ "mappings": "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",
11
+ "debugId": "722C993785FAFF4964756E2164756E21",
12
12
  "names": []
13
13
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:M,getOwnPropertyNames:P,getOwnPropertyDescriptor:x}=Object,C=Object.prototype.hasOwnProperty;function S(g){return this[g]}var B=(g)=>{var q=($??=new WeakMap).get(g),w;if(q)return q;if(q=M({},"__esModule",{value:!0}),g&&typeof g==="object"||typeof g==="function"){for(var z of P(g))if(!C.call(q,z))M(q,z,{get:S.bind(g,z),enumerable:!(w=x(g,z))||w.enumerable})}return $.set(g,q),q},$;var f=(g)=>g;function b(g,q){this[g]=f.bind(null,q)}var D=(g,q)=>{for(var w in q)M(g,w,{get:q[w],enumerable:!0,configurable:!0,set:b.bind(q,w)})};var U=(g,q)=>()=>(g&&(q=g(g=0)),q);var O=((g)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(g,{get:(q,w)=>(typeof require<"u"?require:q)[w]}):g)(function(g){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+g+'" is not supported')});function j(g){return g.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}var V="data-hydration",F="data-hydration-type",Q="data-hydration-key";function J(g){let q=g.hydrationKey?` ${Q}="${v(g.hydrationKey)}"`:"";return`<script type="application/json" ${V} ${F}="${g.type}"${q}>${g.serializedValue}</script>`}function W(g){return j(g)}function E(g,q){let w=g.textContent;if(!w)return q;try{return JSON.parse(w)}catch{if(typeof console<"u")console.warn(`[@ecopages/radiant] Failed to parse hydration payload from <script ${V}>:`,w.slice(0,120));return q}}function H(g,q,w){let z=g.children;if(!z||z.length===0){let G=g.childNodes;if(!G||G.length===0)return null;for(let L=0;L<G.length;L+=1){let X=G[L];if(X.nodeType!==1)continue;let Z=X;if(u(Z,q,w))return Z}return null}for(let G=0;G<z.length;G+=1)if(u(z[G],q,w))return z[G];return null}function u(g,q,w){if(g.tagName!=="SCRIPT"||!g.hasAttribute(V)||g.getAttribute(F)!==q)return!1;if(w!==void 0)return g.getAttribute(Q)===w;return!g.hasAttribute(Q)}function v(g){return g.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function I(g){return J({type:"signal",...g})}function R(g){return W(g)}export{R as escapeSignalHydrationJson,I as createSignalHydrationScriptTag};
1
+ function Z(g){return g.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}var Q="data-hydration",j="data-hydration-type",M="data-hydration-key";function u(g){let q=g.hydrationKey?` ${M}="${J(g.hydrationKey)}"`:"";return`<script type="application/json" ${Q} ${j}="${g.type}"${q}>${g.serializedValue}</script>`}function F(g){return Z(g)}function x(g,q){let w=g.textContent;if(!w)return q;try{return JSON.parse(w)}catch{if(typeof console<"u")console.warn(`[@ecopages/radiant] Failed to parse hydration payload from <script ${Q}>:`,w.slice(0,120));return q}}function C(g,q,w){let G=g.children;if(!G||G.length===0){let z=g.childNodes;if(!z||z.length===0)return null;for(let L=0;L<z.length;L+=1){let V=z[L];if(V.nodeType!==1)continue;let X=V;if($(X,q,w))return X}return null}for(let z=0;z<G.length;z+=1)if($(G[z],q,w))return G[z];return null}function $(g,q,w){if(g.tagName!=="SCRIPT"||!g.hasAttribute(Q)||g.getAttribute(j)!==q)return!1;if(w!==void 0)return g.getAttribute(M)===w;return!g.hasAttribute(M)}function J(g){return g.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function b(g){return u({type:"signal",...g})}function v(g){return F(g)}export{v as escapeSignalHydrationJson,b as createSignalHydrationScriptTag};
2
2
 
3
- //# debugId=733A915218CA92C464756E2164756E21
3
+ //# debugId=C83DB5083E9DA3C864756E2164756E21
@@ -6,7 +6,7 @@
6
6
  "import { escapeScriptJson } from '../tools/escape-script-json';\n\n/** Attribute marker used to identify hydration payloads inside a host. */\nexport const HYDRATION_ATTRIBUTE = 'data-hydration';\n/** Discriminator that scopes a hydration payload to a specific feature. */\nexport const HYDRATION_TYPE_ATTRIBUTE = 'data-hydration-type';\n/** Optional key that scopes a hydration payload to a specific decorated field. */\nexport const HYDRATION_KEY_ATTRIBUTE = 'data-hydration-key';\n\nexport type HydrationPayloadType = 'signal' | 'context';\n\ntype HydrationScriptHost = {\n\tchildren?: ArrayLike<Element> | undefined;\n\tchildNodes?: ArrayLike<{ nodeType: number }> | undefined;\n};\n\n/** Creates a `<script type=\"application/json\">` tag for a hydration payload. */\nexport function createHydrationScriptTag(options: {\n\ttype: HydrationPayloadType;\n\thydrationKey?: string;\n\tserializedValue: string;\n}): string {\n\tconst keyAttribute = options.hydrationKey\n\t\t? ` ${HYDRATION_KEY_ATTRIBUTE}=\"${escapeHtmlAttribute(options.hydrationKey)}\"`\n\t\t: '';\n\n\treturn `<script type=\"application/json\" ${HYDRATION_ATTRIBUTE} ${HYDRATION_TYPE_ATTRIBUTE}=\"${options.type}\"${keyAttribute}>${options.serializedValue}</script>`;\n}\n\n/** Escapes serialized JSON so it remains safe inside an HTML script tag. */\nexport function escapeHydrationJson(value: string): string {\n\treturn escapeScriptJson(value);\n}\n\n/** Parses JSON from a hydration script element, returning the fallback on failure. */\nexport function parseHydrationPayload<T>(element: Element, fallback: T): T {\n\tconst textContent = element.textContent;\n\n\tif (!textContent) {\n\t\treturn fallback;\n\t}\n\n\ttry {\n\t\treturn JSON.parse(textContent) as T;\n\t} catch {\n\t\tif (typeof console !== 'undefined') {\n\t\t\tconsole.warn(\n\t\t\t\t`[@ecopages/radiant] Failed to parse hydration payload from <script ${HYDRATION_ATTRIBUTE}>:`,\n\t\t\t\ttextContent.slice(0, 120),\n\t\t\t);\n\t\t}\n\t\treturn fallback;\n\t}\n}\n\n/**\n * Finds a hydration script element inside a host by type and optional key.\n *\n * When a key is provided, looks for an exact `data-hydration-key` match.\n * Otherwise, returns the first unkeyed script matching the type.\n */\nexport function findHydrationScript(\n\thost: HydrationScriptHost,\n\ttype: HydrationPayloadType,\n\thydrationKey?: string,\n): Element | null {\n\tconst children = host.children;\n\n\tif (!children || children.length === 0) {\n\t\tconst childNodes = (host as Partial<{ childNodes: ArrayLike<{ nodeType: number }> }>).childNodes;\n\n\t\tif (!childNodes || childNodes.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tfor (let i = 0; i < childNodes.length; i += 1) {\n\t\t\tconst node = childNodes[i]!;\n\n\t\t\tif (node.nodeType !== 1) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst element = node as unknown as Element;\n\n\t\t\tif (matchesHydrationScript(element, type, hydrationKey)) {\n\t\t\t\treturn element;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfor (let i = 0; i < children.length; i += 1) {\n\t\tif (matchesHydrationScript(children[i]!, type, hydrationKey)) {\n\t\t\treturn children[i]!;\n\t\t}\n\t}\n\n\treturn null;\n}\n\nfunction matchesHydrationScript(element: Element, type: HydrationPayloadType, hydrationKey?: string): boolean {\n\tif (\n\t\telement.tagName !== 'SCRIPT' ||\n\t\t!element.hasAttribute(HYDRATION_ATTRIBUTE) ||\n\t\telement.getAttribute(HYDRATION_TYPE_ATTRIBUTE) !== type\n\t) {\n\t\treturn false;\n\t}\n\n\tif (hydrationKey !== undefined) {\n\t\treturn element.getAttribute(HYDRATION_KEY_ATTRIBUTE) === hydrationKey;\n\t}\n\n\treturn !element.hasAttribute(HYDRATION_KEY_ATTRIBUTE);\n}\n\nfunction escapeHtmlAttribute(value: string): string {\n\treturn value.replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n}\n",
7
7
  "import { createHydrationScriptTag, escapeHydrationJson } from '../core/hydration-codec';\n\n/** Creates the raw `<script type=\"application/json\">` tag used to hydrate a signal field. */\nexport function createSignalHydrationScriptTag(options: { hydrationKey?: string; serializedValue: string }): string {\n\treturn createHydrationScriptTag({ type: 'signal', ...options });\n}\n\n/** Escapes serialized JSON so it remains safe inside an HTML script tag. */\nexport function escapeSignalHydrationJson(value: string): string {\n\treturn escapeHydrationJson(value);\n}\n"
8
8
  ],
9
- "mappings": "i0BAIO,SAAS,CAAgB,CAAC,EAAuB,CACvD,OAAO,EACL,QAAQ,KAAM,SAAS,EACvB,QAAQ,KAAM,SAAS,EACvB,QAAQ,KAAM,SAAS,EACvB,QAAQ,UAAW,SAAS,EAC5B,QAAQ,UAAW,SAAS,ECPxB,IAAM,EAAsB,iBAEtB,EAA2B,sBAE3B,EAA0B,qBAUhC,SAAS,CAAwB,CAAC,EAI9B,CACV,IAAM,EAAe,EAAQ,aAC1B,IAAI,MAA4B,EAAoB,EAAQ,YAAY,KACxE,GAEH,MAAO,mCAAmC,KAAuB,MAA6B,EAAQ,QAAQ,KAAgB,EAAQ,2BAIhI,SAAS,CAAmB,CAAC,EAAuB,CAC1D,OAAO,EAAiB,CAAK,EAIvB,SAAS,CAAwB,CAAC,EAAkB,EAAgB,CAC1E,IAAM,EAAc,EAAQ,YAE5B,GAAI,CAAC,EACJ,OAAO,EAGR,GAAI,CACH,OAAO,KAAK,MAAM,CAAW,EAC5B,KAAM,CACP,GAAI,OAAO,QAAY,IACtB,QAAQ,KACP,sEAAsE,MACtE,EAAY,MAAM,EAAG,GAAG,CACzB,EAED,OAAO,GAUF,SAAS,CAAmB,CAClC,EACA,EACA,EACiB,CACjB,IAAM,EAAW,EAAK,SAEtB,GAAI,CAAC,GAAY,EAAS,SAAW,EAAG,CACvC,IAAM,EAAc,EAAkE,WAEtF,GAAI,CAAC,GAAc,EAAW,SAAW,EACxC,OAAO,KAGR,QAAS,EAAI,EAAG,EAAI,EAAW,OAAQ,GAAK,EAAG,CAC9C,IAAM,EAAO,EAAW,GAExB,GAAI,EAAK,WAAa,EACrB,SAGD,IAAM,EAAU,EAEhB,GAAI,EAAuB,EAAS,EAAM,CAAY,EACrD,OAAO,EAIT,OAAO,KAGR,QAAS,EAAI,EAAG,EAAI,EAAS,OAAQ,GAAK,EACzC,GAAI,EAAuB,EAAS,GAAK,EAAM,CAAY,EAC1D,OAAO,EAAS,GAIlB,OAAO,KAGR,SAAS,CAAsB,CAAC,EAAkB,EAA4B,EAAgC,CAC7G,GACC,EAAQ,UAAY,UACpB,CAAC,EAAQ,aAAa,CAAmB,GACzC,EAAQ,aAAa,CAAwB,IAAM,EAEnD,MAAO,GAGR,GAAI,IAAiB,OACpB,OAAO,EAAQ,aAAa,CAAuB,IAAM,EAG1D,MAAO,CAAC,EAAQ,aAAa,CAAuB,EAGrD,SAAS,CAAmB,CAAC,EAAuB,CACnD,OAAO,EAAM,QAAQ,KAAM,OAAO,EAAE,QAAQ,KAAM,QAAQ,EAAE,QAAQ,KAAM,MAAM,EAAE,QAAQ,KAAM,MAAM,ECnHhG,SAAS,CAA8B,CAAC,EAAqE,CACnH,OAAO,EAAyB,CAAE,KAAM,YAAa,CAAQ,CAAC,EAIxD,SAAS,CAAyB,CAAC,EAAuB,CAChE,OAAO,EAAoB,CAAK",
10
- "debugId": "733A915218CA92C464756E2164756E21",
9
+ "mappings": "AAIO,SAAS,CAAgB,CAAC,EAAuB,CACvD,OAAO,EACL,QAAQ,KAAM,SAAS,EACvB,QAAQ,KAAM,SAAS,EACvB,QAAQ,KAAM,SAAS,EACvB,QAAQ,UAAW,SAAS,EAC5B,QAAQ,UAAW,SAAS,ECPxB,IAAM,EAAsB,iBAEtB,EAA2B,sBAE3B,EAA0B,qBAUhC,SAAS,CAAwB,CAAC,EAI9B,CACV,IAAM,EAAe,EAAQ,aAC1B,IAAI,MAA4B,EAAoB,EAAQ,YAAY,KACxE,GAEH,MAAO,mCAAmC,KAAuB,MAA6B,EAAQ,QAAQ,KAAgB,EAAQ,2BAIhI,SAAS,CAAmB,CAAC,EAAuB,CAC1D,OAAO,EAAiB,CAAK,EAIvB,SAAS,CAAwB,CAAC,EAAkB,EAAgB,CAC1E,IAAM,EAAc,EAAQ,YAE5B,GAAI,CAAC,EACJ,OAAO,EAGR,GAAI,CACH,OAAO,KAAK,MAAM,CAAW,EAC5B,KAAM,CACP,GAAI,OAAO,QAAY,IACtB,QAAQ,KACP,sEAAsE,MACtE,EAAY,MAAM,EAAG,GAAG,CACzB,EAED,OAAO,GAUF,SAAS,CAAmB,CAClC,EACA,EACA,EACiB,CACjB,IAAM,EAAW,EAAK,SAEtB,GAAI,CAAC,GAAY,EAAS,SAAW,EAAG,CACvC,IAAM,EAAc,EAAkE,WAEtF,GAAI,CAAC,GAAc,EAAW,SAAW,EACxC,OAAO,KAGR,QAAS,EAAI,EAAG,EAAI,EAAW,OAAQ,GAAK,EAAG,CAC9C,IAAM,EAAO,EAAW,GAExB,GAAI,EAAK,WAAa,EACrB,SAGD,IAAM,EAAU,EAEhB,GAAI,EAAuB,EAAS,EAAM,CAAY,EACrD,OAAO,EAIT,OAAO,KAGR,QAAS,EAAI,EAAG,EAAI,EAAS,OAAQ,GAAK,EACzC,GAAI,EAAuB,EAAS,GAAK,EAAM,CAAY,EAC1D,OAAO,EAAS,GAIlB,OAAO,KAGR,SAAS,CAAsB,CAAC,EAAkB,EAA4B,EAAgC,CAC7G,GACC,EAAQ,UAAY,UACpB,CAAC,EAAQ,aAAa,CAAmB,GACzC,EAAQ,aAAa,CAAwB,IAAM,EAEnD,MAAO,GAGR,GAAI,IAAiB,OACpB,OAAO,EAAQ,aAAa,CAAuB,IAAM,EAG1D,MAAO,CAAC,EAAQ,aAAa,CAAuB,EAGrD,SAAS,CAAmB,CAAC,EAAuB,CACnD,OAAO,EAAM,QAAQ,KAAM,OAAO,EAAE,QAAQ,KAAM,QAAQ,EAAE,QAAQ,KAAM,MAAM,EAAE,QAAQ,KAAM,MAAM,ECnHhG,SAAS,CAA8B,CAAC,EAAqE,CACnH,OAAO,EAAyB,CAAE,KAAM,YAAa,CAAQ,CAAC,EAIxD,SAAS,CAAyB,CAAC,EAAuB,CAChE,OAAO,EAAoB,CAAK",
10
+ "debugId": "C83DB5083E9DA3C864756E2164756E21",
11
11
  "names": []
12
12
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:o,getOwnPropertyNames:p,getOwnPropertyDescriptor:h}=Object,d=Object.prototype.hasOwnProperty;function u(t){return this[t]}var S=(t)=>{var n=(r??=new WeakMap).get(t),i;if(n)return n;if(n=o({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function"){for(var s of p(t))if(!d.call(n,s))o(n,s,{get:u.bind(t,s),enumerable:!(i=h(t,s))||i.enumerable})}return r.set(t,n),n},r;var l=(t)=>t;function C(t,n){this[t]=l.bind(null,n)}var y=(t,n)=>{for(var i in n)o(t,i,{get:n[i],enumerable:!0,configurable:!0,set:C.bind(n,i)})};var D=(t,n)=>()=>(t&&(n=t(t=0)),n);var F=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(n,i)=>(typeof require<"u"?require:n)[i]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});function H(t){let n=globalThis.CSS;if(typeof n?.escape==="function")return n.escape(t);let i="";for(let s=0;s<t.length;s+=1){let c=t[s]??"",e=c.codePointAt(0)??0;if(e===0){i+="�";continue}let x=e>=1&&e<=31||e===127,a=s===0&&e>=48&&e<=57,f=s===1&&e>=48&&e<=57&&(t[0]??"")==="-",g=s===0&&c==="-"&&t.length===1;if(x||a||f){i+=`\\${e.toString(16)} `;continue}if(e>=128||c==="-"||c==="_"||e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122){i+=g?`\\${c}`:c;continue}i+=`\\${c}`}return i}export{H as escapeCssIdentifier};
1
+ function f(i){let c=globalThis.CSS;if(typeof c?.escape==="function")return c.escape(i);let s="";for(let e=0;e<i.length;e+=1){let n=i[e]??"",t=n.codePointAt(0)??0;if(t===0){s+="�";continue}let o=t>=1&&t<=31||t===127,r=e===0&&t>=48&&t<=57,x=e===1&&t>=48&&t<=57&&(i[0]??"")==="-",a=e===0&&n==="-"&&i.length===1;if(o||r||x){s+=`\\${t.toString(16)} `;continue}if(t>=128||n==="-"||n==="_"||t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122){s+=a?`\\${n}`:n;continue}s+=`\\${n}`}return s}export{f as escapeCssIdentifier};
2
2
 
3
- //# debugId=07CD20B07E8B726664756E2164756E21
3
+ //# debugId=EF28ACBFBB90647764756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "export function escapeCssIdentifier(value: string): string {\n\tconst cssNamespace = globalThis.CSS as { escape?: (value: string) => string } | undefined;\n\n\tif (typeof cssNamespace?.escape === 'function') {\n\t\treturn cssNamespace.escape(value);\n\t}\n\n\tlet escaped = '';\n\n\tfor (let index = 0; index < value.length; index += 1) {\n\t\tconst character = value[index] ?? '';\n\t\tconst codePoint = character.codePointAt(0) ?? 0;\n\n\t\tif (codePoint === 0) {\n\t\t\tescaped += '\\uFFFD';\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst isControlCharacter = (codePoint >= 0x0001 && codePoint <= 0x001f) || codePoint === 0x007f;\n\t\tconst startsWithDigit = index === 0 && codePoint >= 0x0030 && codePoint <= 0x0039;\n\t\tconst startsWithHyphenDigit =\n\t\t\tindex === 1 && codePoint >= 0x0030 && codePoint <= 0x0039 && (value[0] ?? '') === '-';\n\t\tconst isSingleHyphen = index === 0 && character === '-' && value.length === 1;\n\n\t\tif (isControlCharacter || startsWithDigit || startsWithHyphenDigit) {\n\t\t\tescaped += `\\\\${codePoint.toString(16)} `;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (\n\t\t\tcodePoint >= 0x0080 ||\n\t\t\tcharacter === '-' ||\n\t\t\tcharacter === '_' ||\n\t\t\t(codePoint >= 0x0030 && codePoint <= 0x0039) ||\n\t\t\t(codePoint >= 0x0041 && codePoint <= 0x005a) ||\n\t\t\t(codePoint >= 0x0061 && codePoint <= 0x007a)\n\t\t) {\n\t\t\tescaped += isSingleHyphen ? `\\\\${character}` : character;\n\t\t\tcontinue;\n\t\t}\n\n\t\tescaped += `\\\\${character}`;\n\t}\n\n\treturn escaped;\n}\n"
6
6
  ],
7
- "mappings": "i0BAAO,SAAS,CAAmB,CAAC,EAAuB,CAC1D,IAAM,EAAe,WAAW,IAEhC,GAAI,OAAO,GAAc,SAAW,WACnC,OAAO,EAAa,OAAO,CAAK,EAGjC,IAAI,EAAU,GAEd,QAAS,EAAQ,EAAG,EAAQ,EAAM,OAAQ,GAAS,EAAG,CACrD,IAAM,EAAY,EAAM,IAAU,GAC5B,EAAY,EAAU,YAAY,CAAC,GAAK,EAE9C,GAAI,IAAc,EAAG,CACpB,GAAW,IACX,SAGD,IAAM,EAAsB,GAAa,GAAU,GAAa,IAAW,IAAc,IACnF,EAAkB,IAAU,GAAK,GAAa,IAAU,GAAa,GACrE,EACL,IAAU,GAAK,GAAa,IAAU,GAAa,KAAW,EAAM,IAAM,MAAQ,IAC7E,EAAiB,IAAU,GAAK,IAAc,KAAO,EAAM,SAAW,EAE5E,GAAI,GAAsB,GAAmB,EAAuB,CACnE,GAAW,KAAK,EAAU,SAAS,EAAE,KACrC,SAGD,GACC,GAAa,KACb,IAAc,KACd,IAAc,KACb,GAAa,IAAU,GAAa,IACpC,GAAa,IAAU,GAAa,IACpC,GAAa,IAAU,GAAa,IACpC,CACD,GAAW,EAAiB,KAAK,IAAc,EAC/C,SAGD,GAAW,KAAK,IAGjB,OAAO",
8
- "debugId": "07CD20B07E8B726664756E2164756E21",
7
+ "mappings": "AAAO,SAAS,CAAmB,CAAC,EAAuB,CAC1D,IAAM,EAAe,WAAW,IAEhC,GAAI,OAAO,GAAc,SAAW,WACnC,OAAO,EAAa,OAAO,CAAK,EAGjC,IAAI,EAAU,GAEd,QAAS,EAAQ,EAAG,EAAQ,EAAM,OAAQ,GAAS,EAAG,CACrD,IAAM,EAAY,EAAM,IAAU,GAC5B,EAAY,EAAU,YAAY,CAAC,GAAK,EAE9C,GAAI,IAAc,EAAG,CACpB,GAAW,IACX,SAGD,IAAM,EAAsB,GAAa,GAAU,GAAa,IAAW,IAAc,IACnF,EAAkB,IAAU,GAAK,GAAa,IAAU,GAAa,GACrE,EACL,IAAU,GAAK,GAAa,IAAU,GAAa,KAAW,EAAM,IAAM,MAAQ,IAC7E,EAAiB,IAAU,GAAK,IAAc,KAAO,EAAM,SAAW,EAE5E,GAAI,GAAsB,GAAmB,EAAuB,CACnE,GAAW,KAAK,EAAU,SAAS,EAAE,KACrC,SAGD,GACC,GAAa,KACb,IAAc,KACd,IAAc,KACb,GAAa,IAAU,GAAa,IACpC,GAAa,IAAU,GAAa,IACpC,GAAa,IAAU,GAAa,IACpC,CACD,GAAW,EAAiB,KAAK,IAAc,EAC/C,SAGD,GAAW,KAAK,IAGjB,OAAO",
8
+ "debugId": "EF28ACBFBB90647764756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:c,getOwnPropertyNames:n,getOwnPropertyDescriptor:p}=Object,t=Object.prototype.hasOwnProperty;function u(e){return this[e]}var d=(e)=>{var r=(i??=new WeakMap).get(e),a;if(r)return r;if(r=c({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function"){for(var s of n(e))if(!t.call(r,s))c(r,s,{get:u.bind(e,s),enumerable:!(a=p(e,s))||a.enumerable})}return i.set(e,r),r},i;var g=(e)=>e;function l(e,r){this[e]=g.bind(null,r)}var o=(e,r)=>{for(var a in r)c(e,a,{get:r[a],enumerable:!0,configurable:!0,set:l.bind(r,a)})};var f=(e,r)=>()=>(e&&(r=e(e=0)),r);var m=((e)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,a)=>(typeof require<"u"?require:r)[a]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});function S(e){return e.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}export{S as escapeScriptJson};
1
+ function r(e){return e.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}export{r as escapeScriptJson};
2
2
 
3
- //# debugId=A2E2FE4ADBA696F164756E2164756E21
3
+ //# debugId=69A7BCF2878AD10264756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "/**\n * Escapes serialized JSON so it remains safe when embedded inside an HTML\n * `<script>` tag.\n */\nexport function escapeScriptJson(value: string): string {\n\treturn value\n\t\t.replace(/&/g, '\\\\u0026')\n\t\t.replace(/</g, '\\\\u003c')\n\t\t.replace(/>/g, '\\\\u003e')\n\t\t.replace(/\\u2028/g, '\\\\u2028')\n\t\t.replace(/\\u2029/g, '\\\\u2029');\n}\n"
6
6
  ],
7
- "mappings": "i0BAIO,SAAS,CAAgB,CAAC,EAAuB,CACvD,OAAO,EACL,QAAQ,KAAM,SAAS,EACvB,QAAQ,KAAM,SAAS,EACvB,QAAQ,KAAM,SAAS,EACvB,QAAQ,UAAW,SAAS,EAC5B,QAAQ,UAAW,SAAS",
8
- "debugId": "A2E2FE4ADBA696F164756E2164756E21",
7
+ "mappings": "AAIO,SAAS,CAAgB,CAAC,EAAuB,CACvD,OAAO,EACL,QAAQ,KAAM,SAAS,EACvB,QAAQ,KAAM,SAAS,EACvB,QAAQ,KAAM,SAAS,EACvB,QAAQ,UAAW,SAAS,EAC5B,QAAQ,UAAW,SAAS",
8
+ "debugId": "69A7BCF2878AD10264756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:z,getOwnPropertyNames:B,getOwnPropertyDescriptor:D}=Object,F=Object.prototype.hasOwnProperty;function G(k){return this[k]}var K=(k)=>{var q=(A??=new WeakMap).get(k),x;if(q)return q;if(q=z({},"__esModule",{value:!0}),k&&typeof k==="object"||typeof k==="function"){for(var y of B(k))if(!F.call(q,y))z(q,y,{get:G.bind(k,y),enumerable:!(x=D(k,y))||x.enumerable})}return A.set(k,q),q},A;var H=(k)=>k;function I(k,q){this[k]=H.bind(null,q)}var L=(k,q)=>{for(var x in q)z(k,x,{get:q[x],enumerable:!0,configurable:!0,set:I.bind(q,x)})};var M=(k,q)=>()=>(k&&(q=k(k=0)),q);var N=((k)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(k,{get:(q,x)=>(typeof require<"u"?require:q)[x]}):k)(function(k){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+k+'" is not supported')});class J{host;eventConfig;constructor(k,q){this.host=k,this.eventConfig=q}emit(k){let q=new CustomEvent(this.eventConfig.name,{detail:k,bubbles:this.eventConfig.bubbles,cancelable:this.eventConfig.cancelable,composed:this.eventConfig.composed});this.host.dispatchEvent(q)}}export{J as EventEmitter};
1
+ class x{host;eventConfig;constructor(k,q){this.host=k,this.eventConfig=q}emit(k){let q=new CustomEvent(this.eventConfig.name,{detail:k,bubbles:this.eventConfig.bubbles,cancelable:this.eventConfig.cancelable,composed:this.eventConfig.composed});this.host.dispatchEvent(q)}}export{x as EventEmitter};
2
2
 
3
- //# debugId=4B5D9DC236B9179F64756E2164756E21
3
+ //# debugId=CD86BBB682C090C264756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "import type { RadiantElement } from '../core/radiant-element';\n\nexport interface EventEmitterConfig {\n\tname: string;\n\tbubbles?: boolean;\n\tcancelable?: boolean;\n\tcomposed?: boolean;\n}\n\n/**\n * A generic event emitter class that allows emitting custom events.\n *\n * @template T - The type of the event detail.\n */\nexport class EventEmitter<T = unknown> {\n\tprivate host: RadiantElement;\n\tprivate eventConfig: EventEmitterConfig;\n\n\t/**\n\t * Constructs a new instance of the EventEmitter class.\n\t *\n\t * @param host - The host element on which the events will be dispatched.\n\t * @param eventConfig - The configuration for the event.\n\t */\n\tconstructor(host: RadiantElement, eventConfig: EventEmitterConfig) {\n\t\tthis.host = host;\n\t\tthis.eventConfig = eventConfig;\n\t}\n\n\t/**\n\t * Emits a custom event with the specified detail.\n\t *\n\t * @param detail - The detail object to be passed along with the event.\n\t */\n\temit(detail?: T) {\n\t\tconst event = new CustomEvent(this.eventConfig.name, {\n\t\t\tdetail: detail,\n\t\t\tbubbles: this.eventConfig.bubbles,\n\t\t\tcancelable: this.eventConfig.cancelable,\n\t\t\tcomposed: this.eventConfig.composed,\n\t\t});\n\t\tthis.host.dispatchEvent(event);\n\t}\n}\n"
6
6
  ],
7
- "mappings": "i0BAcO,MAAM,CAA0B,CAC9B,KACA,YAQR,WAAW,CAAC,EAAsB,EAAiC,CAClE,KAAK,KAAO,EACZ,KAAK,YAAc,EAQpB,IAAI,CAAC,EAAY,CAChB,IAAM,EAAQ,IAAI,YAAY,KAAK,YAAY,KAAM,CACpD,OAAQ,EACR,QAAS,KAAK,YAAY,QAC1B,WAAY,KAAK,YAAY,WAC7B,SAAU,KAAK,YAAY,QAC5B,CAAC,EACD,KAAK,KAAK,cAAc,CAAK,EAE/B",
8
- "debugId": "4B5D9DC236B9179F64756E2164756E21",
7
+ "mappings": "AAcO,MAAM,CAA0B,CAC9B,KACA,YAQR,WAAW,CAAC,EAAsB,EAAiC,CAClE,KAAK,KAAO,EACZ,KAAK,YAAc,EAQpB,IAAI,CAAC,EAAY,CAChB,IAAM,EAAQ,IAAI,YAAY,KAAK,YAAY,KAAM,CACpD,OAAQ,EACR,QAAS,KAAK,YAAY,QAC1B,WAAY,KAAK,YAAY,WAC7B,SAAU,KAAK,YAAY,QAC5B,CAAC,EACD,KAAK,KAAK,cAAc,CAAK,EAE/B",
8
+ "debugId": "CD86BBB682C090C264756E2164756E21",
9
9
  "names": []
10
10
  }
package/tools/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var{defineProperty:x,getOwnPropertyNames:g,getOwnPropertyDescriptor:a}=Object,S=Object.prototype.hasOwnProperty;function D(n){return this[n]}var h=(n)=>{var r=(t??=new WeakMap).get(n),s;if(r)return r;if(r=x({},"__esModule",{value:!0}),n&&typeof n==="object"||typeof n==="function"){for(var i of g(n))if(!S.call(r,i))x(r,i,{get:D.bind(n,i),enumerable:!(s=a(n,i))||s.enumerable})}return t.set(n,r),r},t;var F=(n)=>n;function H(n,r){this[n]=F.bind(null,r)}var y=(n,r)=>{for(var s in r)x(n,s,{get:r[s],enumerable:!0,configurable:!0,set:H.bind(r,s)})};var C=(n,r)=>()=>(n&&(r=n(n=0)),r);var N=((n)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(r,s)=>(typeof require<"u"?require:r)[s]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});function W(n){return n.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}class ${host;eventConfig;constructor(n,r){this.host=n,this.eventConfig=r}emit(n){let r=new CustomEvent(this.eventConfig.name,{detail:n,bubbles:this.eventConfig.bubbles,cancelable:this.eventConfig.cancelable,composed:this.eventConfig.composed});this.host.dispatchEvent(r)}}function I(n){let r=globalThis.CSS;if(typeof r?.escape==="function")return r.escape(n);let s="";for(let i=0;i<n.length;i+=1){let o=n[i]??"",c=o.codePointAt(0)??0;if(c===0){s+="�";continue}let e=c>=1&&c<=31||c===127,p=i===0&&c>=48&&c<=57,f=i===1&&c>=48&&c<=57&&(n[0]??"")==="-",u=i===0&&o==="-"&&n.length===1;if(e||p||f){s+=`\\${c.toString(16)} `;continue}if(c>=128||o==="-"||o==="_"||c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122){s+=u?`\\${o}`:o;continue}s+=`\\${o}`}return s}import{render as d}from"@ecopages/jsx";function M(n,r){d(n,r)}export{M as renderJsxTemplate,W as escapeScriptJson,I as escapeCssIdentifier,$ as EventEmitter};
1
+ function g(r){return r.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}class f{host;eventConfig;constructor(r,c){this.host=r,this.eventConfig=c}emit(r){let c=new CustomEvent(this.eventConfig.name,{detail:r,bubbles:this.eventConfig.bubbles,cancelable:this.eventConfig.cancelable,composed:this.eventConfig.composed});this.host.dispatchEvent(c)}}function D(r){let c=globalThis.CSS;if(typeof c?.escape==="function")return c.escape(r);let o="";for(let i=0;i<r.length;i+=1){let s=r[i]??"",n=s.codePointAt(0)??0;if(n===0){o+="�";continue}let x=n>=1&&n<=31||n===127,t=i===0&&n>=48&&n<=57,e=i===1&&n>=48&&n<=57&&(r[0]??"")==="-",p=i===0&&s==="-"&&r.length===1;if(x||t||e){o+=`\\${n.toString(16)} `;continue}if(n>=128||s==="-"||s==="_"||n>=48&&n<=57||n>=65&&n<=90||n>=97&&n<=122){o+=p?`\\${s}`:s;continue}o+=`\\${s}`}return o}import{render as u}from"@ecopages/jsx";function $(r,c){u(r,c)}export{$ as renderJsxTemplate,g as escapeScriptJson,D as escapeCssIdentifier,f as EventEmitter};
2
2
 
3
- //# debugId=BF99053397CDAC9764756E2164756E21
3
+ //# debugId=70F17D4FE4D47DE964756E2164756E21
@@ -7,7 +7,7 @@
7
7
  "export function escapeCssIdentifier(value: string): string {\n\tconst cssNamespace = globalThis.CSS as { escape?: (value: string) => string } | undefined;\n\n\tif (typeof cssNamespace?.escape === 'function') {\n\t\treturn cssNamespace.escape(value);\n\t}\n\n\tlet escaped = '';\n\n\tfor (let index = 0; index < value.length; index += 1) {\n\t\tconst character = value[index] ?? '';\n\t\tconst codePoint = character.codePointAt(0) ?? 0;\n\n\t\tif (codePoint === 0) {\n\t\t\tescaped += '\\uFFFD';\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst isControlCharacter = (codePoint >= 0x0001 && codePoint <= 0x001f) || codePoint === 0x007f;\n\t\tconst startsWithDigit = index === 0 && codePoint >= 0x0030 && codePoint <= 0x0039;\n\t\tconst startsWithHyphenDigit =\n\t\t\tindex === 1 && codePoint >= 0x0030 && codePoint <= 0x0039 && (value[0] ?? '') === '-';\n\t\tconst isSingleHyphen = index === 0 && character === '-' && value.length === 1;\n\n\t\tif (isControlCharacter || startsWithDigit || startsWithHyphenDigit) {\n\t\t\tescaped += `\\\\${codePoint.toString(16)} `;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (\n\t\t\tcodePoint >= 0x0080 ||\n\t\t\tcharacter === '-' ||\n\t\t\tcharacter === '_' ||\n\t\t\t(codePoint >= 0x0030 && codePoint <= 0x0039) ||\n\t\t\t(codePoint >= 0x0041 && codePoint <= 0x005a) ||\n\t\t\t(codePoint >= 0x0061 && codePoint <= 0x007a)\n\t\t) {\n\t\t\tescaped += isSingleHyphen ? `\\\\${character}` : character;\n\t\t\tcontinue;\n\t\t}\n\n\t\tescaped += `\\\\${character}`;\n\t}\n\n\treturn escaped;\n}\n",
8
8
  "import { render, type TemplateResultLike } from '@ecopages/jsx';\n\n/**\n * Renders a JSX template result into a target element by replacing its children.\n */\nexport function renderJsxTemplate(template: TemplateResultLike, target: HTMLElement): void {\n\trender(template, target);\n}\n"
9
9
  ],
10
- "mappings": "i0BAIO,SAAS,CAAgB,CAAC,EAAuB,CACvD,OAAO,EACL,QAAQ,KAAM,SAAS,EACvB,QAAQ,KAAM,SAAS,EACvB,QAAQ,KAAM,SAAS,EACvB,QAAQ,UAAW,SAAS,EAC5B,QAAQ,UAAW,SAAS,ECIxB,MAAM,CAA0B,CAC9B,KACA,YAQR,WAAW,CAAC,EAAsB,EAAiC,CAClE,KAAK,KAAO,EACZ,KAAK,YAAc,EAQpB,IAAI,CAAC,EAAY,CAChB,IAAM,EAAQ,IAAI,YAAY,KAAK,YAAY,KAAM,CACpD,OAAQ,EACR,QAAS,KAAK,YAAY,QAC1B,WAAY,KAAK,YAAY,WAC7B,SAAU,KAAK,YAAY,QAC5B,CAAC,EACD,KAAK,KAAK,cAAc,CAAK,EAE/B,CC3CO,SAAS,CAAmB,CAAC,EAAuB,CAC1D,IAAM,EAAe,WAAW,IAEhC,GAAI,OAAO,GAAc,SAAW,WACnC,OAAO,EAAa,OAAO,CAAK,EAGjC,IAAI,EAAU,GAEd,QAAS,EAAQ,EAAG,EAAQ,EAAM,OAAQ,GAAS,EAAG,CACrD,IAAM,EAAY,EAAM,IAAU,GAC5B,EAAY,EAAU,YAAY,CAAC,GAAK,EAE9C,GAAI,IAAc,EAAG,CACpB,GAAW,IACX,SAGD,IAAM,EAAsB,GAAa,GAAU,GAAa,IAAW,IAAc,IACnF,EAAkB,IAAU,GAAK,GAAa,IAAU,GAAa,GACrE,EACL,IAAU,GAAK,GAAa,IAAU,GAAa,KAAW,EAAM,IAAM,MAAQ,IAC7E,EAAiB,IAAU,GAAK,IAAc,KAAO,EAAM,SAAW,EAE5E,GAAI,GAAsB,GAAmB,EAAuB,CACnE,GAAW,KAAK,EAAU,SAAS,EAAE,KACrC,SAGD,GACC,GAAa,KACb,IAAc,KACd,IAAc,KACb,GAAa,IAAU,GAAa,IACpC,GAAa,IAAU,GAAa,IACpC,GAAa,IAAU,GAAa,IACpC,CACD,GAAW,EAAiB,KAAK,IAAc,EAC/C,SAGD,GAAW,KAAK,IAGjB,OAAO,EC5CR,iBAAS,sBAKF,SAAS,CAAiB,CAAC,EAA8B,EAA2B,CAC1F,EAAO,EAAU,CAAM",
11
- "debugId": "BF99053397CDAC9764756E2164756E21",
10
+ "mappings": "AAIO,SAAS,CAAgB,CAAC,EAAuB,CACvD,OAAO,EACL,QAAQ,KAAM,SAAS,EACvB,QAAQ,KAAM,SAAS,EACvB,QAAQ,KAAM,SAAS,EACvB,QAAQ,UAAW,SAAS,EAC5B,QAAQ,UAAW,SAAS,ECIxB,MAAM,CAA0B,CAC9B,KACA,YAQR,WAAW,CAAC,EAAsB,EAAiC,CAClE,KAAK,KAAO,EACZ,KAAK,YAAc,EAQpB,IAAI,CAAC,EAAY,CAChB,IAAM,EAAQ,IAAI,YAAY,KAAK,YAAY,KAAM,CACpD,OAAQ,EACR,QAAS,KAAK,YAAY,QAC1B,WAAY,KAAK,YAAY,WAC7B,SAAU,KAAK,YAAY,QAC5B,CAAC,EACD,KAAK,KAAK,cAAc,CAAK,EAE/B,CC3CO,SAAS,CAAmB,CAAC,EAAuB,CAC1D,IAAM,EAAe,WAAW,IAEhC,GAAI,OAAO,GAAc,SAAW,WACnC,OAAO,EAAa,OAAO,CAAK,EAGjC,IAAI,EAAU,GAEd,QAAS,EAAQ,EAAG,EAAQ,EAAM,OAAQ,GAAS,EAAG,CACrD,IAAM,EAAY,EAAM,IAAU,GAC5B,EAAY,EAAU,YAAY,CAAC,GAAK,EAE9C,GAAI,IAAc,EAAG,CACpB,GAAW,IACX,SAGD,IAAM,EAAsB,GAAa,GAAU,GAAa,IAAW,IAAc,IACnF,EAAkB,IAAU,GAAK,GAAa,IAAU,GAAa,GACrE,EACL,IAAU,GAAK,GAAa,IAAU,GAAa,KAAW,EAAM,IAAM,MAAQ,IAC7E,EAAiB,IAAU,GAAK,IAAc,KAAO,EAAM,SAAW,EAE5E,GAAI,GAAsB,GAAmB,EAAuB,CACnE,GAAW,KAAK,EAAU,SAAS,EAAE,KACrC,SAGD,GACC,GAAa,KACb,IAAc,KACd,IAAc,KACb,GAAa,IAAU,GAAa,IACpC,GAAa,IAAU,GAAa,IACpC,GAAa,IAAU,GAAa,IACpC,CACD,GAAW,EAAiB,KAAK,IAAc,EAC/C,SAGD,GAAW,KAAK,IAGjB,OAAO,EC5CR,iBAAS,sBAKF,SAAS,CAAiB,CAAC,EAA8B,EAA2B,CAC1F,EAAO,EAAU,CAAM",
11
+ "debugId": "70F17D4FE4D47DE964756E2164756E21",
12
12
  "names": []
13
13
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:w,getOwnPropertyNames:A,getOwnPropertyDescriptor:B}=Object,C=Object.prototype.hasOwnProperty;function D(f){return this[f]}var H=(f)=>{var k=(z??=new WeakMap).get(f),q;if(k)return k;if(k=w({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function"){for(var v of A(f))if(!C.call(k,v))w(k,v,{get:D.bind(f,v),enumerable:!(q=B(f,v))||q.enumerable})}return z.set(f,k),k},z;var E=(f)=>f;function F(f,k){this[f]=E.bind(null,k)}var I=(f,k)=>{for(var q in k)w(f,q,{get:k[q],enumerable:!0,configurable:!0,set:F.bind(k,q)})};var K=(f,k)=>()=>(f&&(k=f(f=0)),k);var L=((f)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(f,{get:(k,q)=>(typeof require<"u"?require:k)[q]}):f)(function(f){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+f+'" is not supported')});import{render as G}from"@ecopages/jsx";function O(f,k){G(f,k)}export{O as renderJsxTemplate};
1
+ import{render as q}from"@ecopages/jsx";function w(f,k){q(f,k)}export{w as renderJsxTemplate};
2
2
 
3
- //# debugId=8036AAB608B16B1E64756E2164756E21
3
+ //# debugId=32B2237732285BB364756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "import { render, type TemplateResultLike } from '@ecopages/jsx';\n\n/**\n * Renders a JSX template result into a target element by replacing its children.\n */\nexport function renderJsxTemplate(template: TemplateResultLike, target: HTMLElement): void {\n\trender(template, target);\n}\n"
6
6
  ],
7
- "mappings": "i0BAAA,iBAAS,sBAKF,SAAS,CAAiB,CAAC,EAA8B,EAA2B,CAC1F,EAAO,EAAU,CAAM",
8
- "debugId": "8036AAB608B16B1E64756E2164756E21",
7
+ "mappings": "AAAA,iBAAS,sBAKF,SAAS,CAAiB,CAAC,EAA8B,EAA2B,CAC1F,EAAO,EAAU,CAAM",
8
+ "debugId": "32B2237732285BB364756E2164756E21",
9
9
  "names": []
10
10
  }
package/types.js CHANGED
@@ -1,3 +1,3 @@
1
- var{defineProperty:a,getOwnPropertyNames:s,getOwnPropertyDescriptor:d}=Object,c=Object.prototype.hasOwnProperty;function p(t){return this[t]}var l=(t)=>{var r=(n??=new WeakMap).get(t),e;if(r)return r;if(r=a({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function"){for(var o of s(t))if(!c.call(r,o))a(r,o,{get:p.bind(t,o),enumerable:!(e=d(t,o))||e.enumerable})}return n.set(t,r),r},n;var i=(t)=>t;function g(t,r){this[t]=i.bind(null,r)}var C=(t,r)=>{for(var e in r)a(t,e,{get:r[e],enumerable:!0,configurable:!0,set:g.bind(r,e)})};var y=(t,r)=>()=>(t&&(r=t(t=0)),r);var u=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(r,e)=>(typeof require<"u"?require:r)[e]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var m={isStandard:{ClassDecorator:function(t){return typeof t[1]<"u"},MethodDecorator:function(t){return typeof t[1]==="object"},FieldDecorator:function(t){return typeof t[1]==="object"}}};export{m as guards};
1
+ var r={isStandard:{ClassDecorator:function(t){return typeof t[1]<"u"},MethodDecorator:function(t){return typeof t[1]==="object"},FieldDecorator:function(t){return typeof t[1]==="object"}}};export{r as guards};
2
2
 
3
- //# debugId=417B2FABB126C8F664756E2164756E21
3
+ //# debugId=F54E6E5F1C47996A64756E2164756E21
package/types.js.map CHANGED
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "import type { RadiantElement } from './core/radiant-element';\n\nexport type Constructor<T = unknown> = { new (...args: any[]): NonNullable<T> };\n\nexport type ConstructorParams<T extends Constructor> = ConstructorParameters<T>;\n\nexport type Context = {\n\tkind: string;\n\tname: string | symbol;\n\taccess: {\n\t\tget?(): unknown;\n\t\tset?(value: unknown): void;\n\t\thas?(value: unknown): boolean;\n\t};\n\tprivate?: boolean;\n\tstatic?: boolean;\n\taddInitializer?(initializer: () => void): void;\n};\n\nexport type ClassDecorator = <T extends Constructor>(target: T, context: Context) => T | void;\n\nexport type Method = (...args: any[]) => any;\n\nexport type LegacyClassDecoratorArgs = {\n\tprotoOrTarget: CustomElementConstructor;\n\tnameOrContext: string;\n\tdescriptor: PropertyDescriptor;\n};\n\nexport type StandardClassDecoratorArgs = {\n\tprotoOrTarget: CustomElementConstructor;\n\tnameOrContext: ClassDecoratorContext;\n};\n\nexport type StandardOrLegacyClassDecoratorArgs = LegacyClassDecoratorArgs | StandardClassDecoratorArgs;\n\nexport type LegacyMethodDecoratorArgs = {\n\tprotoOrTarget: RadiantElement;\n\tnameOrContext: string;\n\tdescriptor: PropertyDescriptor;\n};\n\nexport type StandardMethodDecoratorArgs = {\n\tprotoOrTarget: Method;\n\tnameOrContext: ClassMethodDecoratorContext;\n\tdescriptor: undefined;\n};\n\nexport type StandardOrLegacyMethodDecoratorArgs = LegacyMethodDecoratorArgs | StandardMethodDecoratorArgs;\n\nexport type LegacyFieldDecoratorArgs = {\n\tprotoOrTarget: RadiantElement;\n\tnameOrContext: string;\n\tdescriptor: PropertyDescriptor;\n};\n\nexport type StandardFieldDecoratorArgs<T = unknown, V = unknown> = {\n\tprotoOrTarget: undefined;\n\tnameOrContext: ClassFieldDecoratorContext<T, V>;\n};\n\nexport type StandardOrLegacyFieldDecoratorArgs = LegacyFieldDecoratorArgs | StandardFieldDecoratorArgs;\n\nexport type CustomElementClass = Omit<typeof HTMLElement, 'new'>;\n\nexport const guards = {\n\tisStandard: {\n\t\tClassDecorator: function (\n\t\t\targs: any,\n\t\t): args is [CustomElementConstructor, ClassDecoratorContext<CustomElementConstructor>] {\n\t\t\treturn typeof args[1] !== 'undefined';\n\t\t},\n\t\tMethodDecorator: function (args: any): args is [Method, ClassMethodDecoratorContext] {\n\t\t\treturn typeof args[1] === 'object';\n\t\t},\n\t\tFieldDecorator: function (args: any): args is [undefined, ClassFieldDecoratorContext] {\n\t\t\treturn typeof args[1] === 'object';\n\t\t},\n\t},\n};\n"
6
6
  ],
7
- "mappings": "i0BAiEO,IAAM,EAAS,CACrB,WAAY,CACX,eAAgB,QAAS,CACxB,EACsF,CACtF,OAAO,OAAO,EAAK,GAAO,KAE3B,gBAAiB,QAAS,CAAC,EAA0D,CACpF,OAAO,OAAO,EAAK,KAAO,UAE3B,eAAgB,QAAS,CAAC,EAA4D,CACrF,OAAO,OAAO,EAAK,KAAO,SAE5B,CACD",
8
- "debugId": "417B2FABB126C8F664756E2164756E21",
7
+ "mappings": "AAiEO,IAAM,EAAS,CACrB,WAAY,CACX,eAAgB,QAAS,CACxB,EACsF,CACtF,OAAO,OAAO,EAAK,GAAO,KAE3B,gBAAiB,QAAS,CAAC,EAA0D,CACpF,OAAO,OAAO,EAAK,KAAO,UAE3B,eAAgB,QAAS,CAAC,EAA4D,CACrF,OAAO,OAAO,EAAK,KAAO,SAE5B,CACD",
8
+ "debugId": "F54E6E5F1C47996A64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:H,getOwnPropertyNames:W,getOwnPropertyDescriptor:X}=Object,Y=Object.prototype.hasOwnProperty;function Z(q){return this[q]}var N=(q)=>{var x=(L??=new WeakMap).get(q),z;if(x)return x;if(x=H({},"__esModule",{value:!0}),q&&typeof q==="object"||typeof q==="function"){for(var E of W(q))if(!Y.call(x,E))H(x,E,{get:Z.bind(q,E),enumerable:!(z=X(q,E))||z.enumerable})}return L.set(q,x),x},L;var _=(q)=>q;function $(q,x){this[q]=_.bind(null,x)}var O=(q,x)=>{for(var z in x)H(q,z,{get:x[z],enumerable:!0,configurable:!0,set:$.bind(x,z)})};var j=(q,x)=>()=>(q&&(x=q(q=0)),x);var A=((q)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(q,{get:(x,z)=>(typeof require<"u"?require:x)[z]}):q)(function(q){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+q+'" is not supported')});function R(q){switch(q){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function k(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 B(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 F={array(q){let x=D(q);if(!Array.isArray(x))throw TypeError(`Expected an array but got a value of type "${typeof x}"`);return x},boolean(q){return!(q==="0"||String(q).toLowerCase()==="false")},number(q){return Number(q.replace(/_/g,""))},object(q){let x=JSON.parse(q);if(x===null||typeof x!=="object"||Array.isArray(x))throw TypeError(`expected value of type "object" but instead got value "${q}" of type "${k(x)}"`);return x},string(q){return q}},M={default:U,array:P,object:P};function P(q){return JSON.stringify(q)}function U(q){return`${q}`}function Q(q,x){let z=R(x);if(!z)throw TypeError(`[radiant-element] Unknown type "${x}"`);return F[z](q)}function g(q,x){let z=R(x);if(!z)throw TypeError(`[radiant-element] Unknown type "${x}"`);return(M[z]??M.default??U)(q)}function m(q){return typeof q==="boolean"}function h(q){return typeof q==="number"}function C(q){return typeof q==="string"}function J(q){return Array.isArray(q)}function K(q){return typeof q==="object"&&!Array.isArray(q)&&q!==null}function w(q,x){switch(q){case Boolean:return m(x);case Number:return h(x);case String:return C(x);case Array:return J(x);case Object:return K(x);default:return!1}}var T=(q,x,z,E)=>{if(x===Boolean){let G=q.getAttribute(z);if(G===null)return E;return G===""?!0:Q(G,x)}let I=q.getAttribute(z);return I!==null?Q(I,x):E??B(x)};export{g as writeAttributeValue,Q as readAttributeValue,k as parseAttributeTypeDefault,R as parseAttributeTypeConstant,w as isValueOfType,T as getInitialValue,B as defaultValueForType};
1
+ function P(q){switch(q){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function R(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 U(q){switch(q){case Number:return 0;case String:return"";case Boolean:return!1;default:return null}}function W(q){try{return JSON.parse(q)}catch{throw TypeError("Invalid JSON string")}}var X={array(q){let x=W(q);if(!Array.isArray(x))throw TypeError(`Expected an array but got a value of type "${typeof x}"`);return x},boolean(q){return!(q==="0"||String(q).toLowerCase()==="false")},number(q){return Number(q.replace(/_/g,""))},object(q){let x=JSON.parse(q);if(x===null||typeof x!=="object"||Array.isArray(x))throw TypeError(`expected value of type "object" but instead got value "${q}" of type "${R(x)}"`);return x},string(q){return q}},I={default:Q,array:L,object:L};function L(q){return JSON.stringify(q)}function Q(q){return`${q}`}function M(q,x){let z=P(x);if(!z)throw TypeError(`[radiant-element] Unknown type "${x}"`);return X[z](q)}function B(q,x){let z=P(x);if(!z)throw TypeError(`[radiant-element] Unknown type "${x}"`);return(I[z]??I.default??Q)(q)}function Y(q){return typeof q==="boolean"}function Z(q){return typeof q==="number"}function _(q){return typeof q==="string"}function $(q){return Array.isArray(q)}function k(q){return typeof q==="object"&&!Array.isArray(q)&&q!==null}function D(q,x){switch(q){case Boolean:return Y(x);case Number:return Z(x);case String:return _(x);case Array:return $(x);case Object:return k(x);default:return!1}}var F=(q,x,z,E)=>{if(x===Boolean){let G=q.getAttribute(z);if(G===null)return E;return G===""?!0:M(G,x)}let H=q.getAttribute(z);return H!==null?M(H,x):E??U(x)};export{B as writeAttributeValue,M as readAttributeValue,R as parseAttributeTypeDefault,P as parseAttributeTypeConstant,D as isValueOfType,F as getInitialValue,U as defaultValueForType};
2
2
 
3
- //# debugId=DF934DE255B305D364756E2164756E21
3
+ //# debugId=D6D6ED020FA42D9464756E2164756E21