@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
@@ -10,7 +10,7 @@
10
10
  "type BaseQueryConfig = {\n\tall?: boolean;\n\tcache?: boolean;\n\tscope?: QueryScope;\n};\n\ntype QueryBySelector = { selector: string };\n\ntype QueryByRef = { ref: string };\n\nexport type QueryHostTarget = Element | { host: Element };\n\n/**\n * Selects which DOM tree a query should read from.\n */\nexport type QueryScope = 'light' | 'shadow' | 'both';\n\nexport type QueryConfig = BaseQueryConfig & (QueryBySelector | QueryByRef);\n\ntype QueryRoot = Element | ShadowRoot;\n\ntype QueryResult<T extends Element | Element[]> = {\n\tget value(): T | null;\n};\n\nfunction isControllerQueryTarget(target: QueryHostTarget): target is { host: Element } {\n\treturn !(target instanceof Element);\n}\n\nfunction resolveShadowRoot(host: Element): ShadowRoot | null {\n\treturn 'shadowRoot' in host ? ((host as Element & { shadowRoot?: ShadowRoot | null }).shadowRoot ?? null) : null;\n}\n\n/**\n * Resolves the DOM element that should serve as the query root.\n *\n * `@query(...)` can run on both element hosts and controller instances. This\n * helper normalizes those call sites to the underlying element that actually\n * owns the DOM subtree.\n */\nexport function resolveQueryHost(target: QueryHostTarget): Element {\n\treturn target instanceof Element ? target : target.host;\n}\n\nfunction getQueryRoots(host: Element, scope: QueryScope = 'light'): QueryRoot[] {\n\tconst shadowRoot = resolveShadowRoot(host);\n\n\tif (scope === 'shadow') {\n\t\treturn shadowRoot ? [shadowRoot] : [];\n\t}\n\n\tif (scope === 'both') {\n\t\treturn shadowRoot ? [host, shadowRoot] : [host];\n\t}\n\n\treturn [host];\n}\n\n/**\n * Creates a lazy DOM query accessor bound to an element host or controller.\n * Functional equivalent of the `@query` decorator for vanilla JS usage.\n * @param target The element host or controller to query within.\n * @param options {@link QueryConfig} The query configuration.\n */\nexport function createQuery<T extends Element | Element[] = Element>(\n\ttarget: QueryHostTarget,\n\toptions: QueryConfig,\n): QueryResult<T> {\n\tif (isControllerQueryTarget(target) && options.scope && options.scope !== 'light') {\n\t\tthrow new Error('RadiantController queries only support light DOM scope.');\n\t}\n\n\tconst host = resolveQueryHost(target);\n\tconst selector = 'selector' in options ? options.selector : `[data-ref=\"${options.ref}\"]`;\n\tlet cached: T | null = null;\n\n\tconst executeQuery = (): T | null => {\n\t\tconst roots = getQueryRoots(host, options.scope);\n\n\t\tif (options.all) {\n\t\t\treturn roots.flatMap((root) => Array.from(root.querySelectorAll(selector))) as T;\n\t\t}\n\n\t\tfor (const root of roots) {\n\t\t\tconst match = root.querySelector(selector);\n\t\t\tif (match) {\n\t\t\t\treturn match as T;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t};\n\n\treturn {\n\t\tget value(): T | null {\n\t\t\tif (options.cache) {\n\t\t\t\tif (cached === null || (options.all && Array.isArray(cached) && !cached.length)) {\n\t\t\t\t\tcached = executeQuery();\n\t\t\t\t}\n\t\t\t\treturn cached;\n\t\t\t}\n\t\t\treturn executeQuery();\n\t\t},\n\t};\n}\n",
11
11
  "export type QuerySlotConfig = {\n\tall?: boolean;\n\tcache?: boolean;\n\tname?: string;\n};\n\ntype SlotQueryHost = HTMLElement & {\n\tgetSlotElements<T extends Element = Element>(name?: string): T[];\n};\n\ntype QuerySlotResult<T extends Element | Element[] | null> = {\n\tget value(): T | null;\n};\n\n/**\n * Creates a lazy slot query accessor bound to a host element.\n * Functional equivalent of the `@querySlot` decorator for vanilla JS usage.\n * @param host The host element to query slots within.\n * @param options {@link QuerySlotConfig} The slot query configuration.\n */\nexport function createQuerySlot<T extends Element | Element[] | null = Element | null>(\n\thost: SlotQueryHost,\n\toptions: QuerySlotConfig = {},\n): QuerySlotResult<T> {\n\tlet cached: T | null = null;\n\tlet cachedVersion: number | undefined;\n\n\tconst executeQuery = (): T | null => {\n\t\tif (options.all) {\n\t\t\treturn host.getSlotElements(options.name) as T;\n\t\t}\n\t\treturn (host.getSlotElements(options.name)[0] ?? null) as T | null;\n\t};\n\n\treturn {\n\t\tget value(): T | null {\n\t\t\tif (options.cache === false) {\n\t\t\t\treturn executeQuery();\n\t\t\t}\n\n\t\t\tconst currentVersion = (host as unknown as Record<string, number | undefined>).slotProjectionVersion ?? 0;\n\n\t\t\tif (cachedVersion !== currentVersion) {\n\t\t\t\tcached = executeQuery();\n\t\t\t\tcachedVersion = currentVersion;\n\t\t\t}\n\n\t\t\treturn cached;\n\t\t},\n\t};\n}\n"
12
12
  ],
13
- "mappings": "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",
14
- "debugId": "8494EE3E9EF074C364756E2164756E21",
13
+ "mappings": "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",
14
+ "debugId": "911E38A143210C9264756E2164756E21",
15
15
  "names": []
16
16
  }
package/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var{defineProperty:$0,getOwnPropertyNames:pM,getOwnPropertyDescriptor:iM}=Object,lM=Object.prototype.hasOwnProperty;function rM(M){return this[M]}var tF=(M)=>{var F=(R0??=new WeakMap).get(M),P;if(F)return F;if(F=$0({},"__esModule",{value:!0}),M&&typeof M==="object"||typeof M==="function"){for(var $ of pM(M))if(!lM.call(F,$))$0(F,$,{get:rM.bind(M,$),enumerable:!(P=iM(M,$))||P.enumerable})}return R0.set(M,F),F},R0;var nM=(M)=>M;function oM(M,F){this[M]=nM.bind(null,F)}var aF=(M,F)=>{for(var P in F)$0(M,P,{get:F[P],enumerable:!0,configurable:!0,set:oM.bind(F,P)})};var eF=(M,F)=>()=>(M&&(F=M(M=0)),F);var M2=((M)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(M,{get:(F,P)=>(typeof require<"u"?require:F)[P]}):M)(function(M){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+M+'" is not supported')});class O{contextProviders=new Map;hydrationBindings=new Map;registerContextProvider(M,F){this.contextProviders.set(M,F),this.hydrationBindings.set(M,F)}registerHydrationBinding(M,F){this.hydrationBindings.set(M,F)}getContextProviders(){return[...this.contextProviders.values()]}getHydrationBindings(){return[...this.hydrationBindings.values()]}}var H0=Symbol.for("@ecopages/radiant.reactivePropDefinitions");function N(M,F,P){let $=M.constructor,H=$[H0]??[];if(H.some((x)=>x.name===F))return;H.push({name:F,options:P}),$[H0]=H}function J0(M){return(M.constructor[H0]??[]).slice()}var j0=Symbol.for("@ecopages/radiant.legacy-instance-initializers"),T0=Symbol.for("@ecopages/radiant.legacy-post-construction-initializers"),tM=Symbol.for("@ecopages/radiant.legacy-executed-post-construction-initializers");function B(M,F){E0(M,j0,F)}function E(M,F){E0(M,T0,F)}function _0(M){aM(M,j0)}function x0(M,F){let P=M;eM(M,F,P[tM]??=new Set)}function E0(M,F,P){let $=M,H=Object.prototype.hasOwnProperty.call($,F)?$[F]:void 0;if(Array.isArray(H)){H.push(P);return}Object.defineProperty($,F,{value:[P]})}function aM(M,F){MF(M,(P)=>{let $=P[F];if(!Array.isArray($))return;for(let H of $)H(M)})}function eM(M,F,P){for(let $ of z0(M)){let H=$[T0];if(!Array.isArray(H))continue;for(let x of H){if(P.has(x))continue;x(M,F),P.add(x)}}}function z0(M){let F=[],P=Object.getPrototypeOf(M);while(P&&P!==Object.prototype)F.unshift(P),P=Object.getPrototypeOf(P);return F}function MF(M,F){for(let P of z0(M))F(P)}function J(M,F){switch(F){case"construct":_0(M);break;case"connect":x0(M,"connect");break;case"ssr":x0(M,"ssr");break}}class Z0{getInteractionTarget;getListenerContext;subscriptions=new Map;constructor(M,F){this.getInteractionTarget=M;this.getListenerContext=F}subscribe(M){let F=this.getInteractionTarget(),P=this.getListenerContext(),$=(x)=>{if(x.target&&x.target.matches(M.selector))M.listener.call(P,x)},H=`${M.type}:${M.selector}`;return F.addEventListener(M.type,$,M.options),this.subscriptions.set(H,{...M,listener:$,target:F}),()=>{this.unsubscribe(H)}}hasEventSubscription(M){return this.subscriptions.has(M)}removeAll(){for(let M of this.subscriptions.values())M.target.removeEventListener(M.type,M.listener,M.options);this.subscriptions.clear()}unsubscribe(M){let F=this.subscriptions.get(M);if(F)F.target.removeEventListener(F.type,F.listener,F.options),this.subscriptions.delete(M)}}function k0(M){switch(M){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function FF(M){switch(typeof M){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(M))return"array";if(Object.prototype.toString.call(M)==="[object Object]")return"object"}function f(M){switch(M){case Number:return 0;case String:return"";case Boolean:return!1;default:return null}}function PF(M){try{return JSON.parse(M)}catch{throw TypeError("Invalid JSON string")}}var $F={array(M){let F=PF(M);if(!Array.isArray(F))throw TypeError(`Expected an array but got a value of type "${typeof F}"`);return F},boolean(M){return!(M==="0"||String(M).toLowerCase()==="false")},number(M){return Number(M.replace(/_/g,""))},object(M){let F=JSON.parse(M);if(F===null||typeof F!=="object"||Array.isArray(F))throw TypeError(`expected value of type "object" but instead got value "${M}" of type "${FF(F)}"`);return F},string(M){return M}},I0={default:C0,array:K0,object:K0};function K0(M){return JSON.stringify(M)}function C0(M){return`${M}`}function z(M,F){let P=k0(F);if(!P)throw TypeError(`[radiant-element] Unknown type "${F}"`);return $F[P](M)}function u(M,F){let P=k0(F);if(!P)throw TypeError(`[radiant-element] Unknown type "${F}"`);return(I0[P]??I0.default??C0)(M)}function HF(M){return typeof M==="boolean"}function xF(M){return typeof M==="number"}function ZF(M){return typeof M==="string"}function WF(M){return Array.isArray(M)}function AF(M){return typeof M==="object"&&!Array.isArray(M)&&M!==null}function w0(M,F){switch(M){case Boolean:return HF(F);case Number:return xF(F);case String:return ZF(F);case Array:return WF(F);case Object:return AF(F);default:return!1}}var O0=(M,F,P,$)=>{if(F===Boolean){let x=M.getAttribute(P);if(x===null)return $;return x===""?!0:z(x,F)}let H=M.getAttribute(P);return H!==null?z(H,F):$??f(F)};function q(M,F){if(F!==void 0&&!w0(M,F))throw Error(`defaultValue does not match the expected type for ${M.name}`)}function f0(M,F,P,$){return{type:P,name:M,initialValue:$,attribute:F,converter:{fromAttribute:(H)=>z(H,P),toAttribute:(H)=>u(H,P)}}}class W0{host;properties=new Map;preUpgradePropertyValues=new Map;constructor(M){this.host=M;for(let F of Object.getOwnPropertyNames(M))this.preUpgradePropertyValues.set(F,Reflect.get(M,F))}register(M){this.properties.set(M.name,M)}getAll(){return Array.from(this.properties.values())}applyAttributeChange(M,F,P){let $=this.properties.get(M);if(!$)return;let H=this.transformAttributeValue(P,$);Reflect.set(this.host,$.name,H)}create(M,F,P,$,H){let{type:x,attribute:Z,reflect:W,defaultValue:A}=F,G=Z??M,X=this.preUpgradePropertyValues.has(M),D=X?this.preUpgradePropertyValues.get(M):void 0;q(x,A);let U=X?D:P(x,G,A);if(this.host.hasAttribute(G)&&(!W||U==null||U===""))this.host.removeAttribute(G);if(X&&Object.prototype.hasOwnProperty.call(this.host,M))Reflect.deleteProperty(this.host,M);let _=f0(M,G,x,U);this.register(_);let C=this.host.getReactiveMember(M),w=C??H(M,U);if(C&&U!==void 0)C.set(U);if($(M,{bind:F.bind,signal:w,onSet:(Y)=>this.reflectValue(G,W,_,Y)}),U!==void 0)queueMicrotask(()=>{let Y=w.get();if(Y===void 0)return;this.reflectValue(G,W,_,Y),this.host.notifyUpdate(M,void 0,Y)})}transformAttributeValue(M,F){return M!==null?F.converter.fromAttribute(M):M}reflectValue(M,F,P,$){if(!F)return;if($==null||$===""||$===!1){this.host.removeAttribute(M);return}let H=P.converter.toAttribute($);this.host.setAttribute(M,H)}}import{Computed as GF,state as XF,subtle as UF,trackDependency as BF}from"@ecopages/signals";function DF(M){return M}function S0(M){return M}var V0={trackDependency(M){BF(DF(M))},createComputed(M){return new GF(M)},createWatcher(M){let F=new UF.Watcher(M);return{watch(P){F.watch(S0(P))},unwatch(P){F.unwatch(S0(P))}}},createState(M){return XF(M)}};var v0=V0;function I(){return v0}function QF(M){v0=M}function R2(M){I().trackDependency(M)}function g(M){return I().createComputed(M)}function h(M){return I().createWatcher(M)}function b0(M){return M.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}var j="data-hydration",u0="data-hydration-type",A0="data-hydration-key";function g0(M){let F=M.hydrationKey?` ${A0}="${LF(M.hydrationKey)}"`:"";return`<script type="application/json" ${j} ${u0}="${M.type}"${F}>${M.serializedValue}</script>`}function h0(M){return b0(M)}function y0(M,F){let P=M.textContent;if(!P)return F;try{return JSON.parse(P)}catch{if(typeof console<"u")console.warn(`[@ecopages/radiant] Failed to parse hydration payload from <script ${j}>:`,P.slice(0,120));return F}}function c0(M,F,P){let $=M.children;if(!$||$.length===0){let H=M.childNodes;if(!H||H.length===0)return null;for(let x=0;x<H.length;x+=1){let Z=H[x];if(Z.nodeType!==1)continue;let W=Z;if(N0(W,F,P))return W}return null}for(let H=0;H<$.length;H+=1)if(N0($[H],F,P))return $[H];return null}function N0(M,F,P){if(M.tagName!=="SCRIPT"||!M.hasAttribute(j)||M.getAttribute(u0)!==F)return!1;if(P!==void 0)return M.getAttribute(A0)===P;return!M.hasAttribute(A0)}function LF(M){return M.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}import{createMarkupNodeLike as qF,isKeyedJsxValue as m0,isSlotJsxValue as YF}from"@ecopages/jsx";var K="",c="data-radiant-slot-projection";function d0(M){let F=new Map;for(let P of Array.from(M.childNodes)){if(TF(P))continue;RF(F,jF(P),P)}return F}function s0(M){let F;try{F=JSON.parse(M)}catch{if(typeof console<"u")console.warn("[@ecopages/radiant] Failed to parse slot projection payload:",M.slice(0,120));return new Map}let P=new Map;for(let[$,H]of Object.entries(F)){if(!Array.isArray(H)||H.length===0)continue;P.set(G0($),H.map((x)=>qF(x)))}return P}function p0(M){let F=Array.from(M.childNodes).filter((P)=>t0(P)).map((P)=>y(P)??"").filter((P)=>P!=="");return F.length>0?F.join(""):void 0}function i0(M){let F={};for(let[P,$]of M.entries()){let H=$.map((x)=>y(x)).filter((x)=>x!==void 0&&x!=="");if(H.length>0)F[P]=H}return Object.keys(F).length>0?JSON.stringify(F):void 0}function l0(M,F){let P=!1,$=(x)=>{if(YF(x))return P=!0,EF(x,F,$);if(m0(x))return JF(x,$(x.value));if(_F(x))return{_$rType$:1,rootLocalName:x.rootLocalName,ssrIntrinsicProps:x.ssrIntrinsicProps,strings:x.strings,values:x.values.map((Z)=>$(Z))};if(n0(x))return Array.from(x,(Z)=>$(Z));return x},H=$(M);return{containsSlots:P,value:H}}function r0(M){for(let F of Array.from(M.childNodes)){if(!o0(F))continue;let P=F.textContent??void 0;return F.parentNode?.removeChild(F),P}return}function RF(M,F,P){let $=M.get(F);if($){$.push(P);return}M.set(F,[P])}function JF(M,F){return{...M,value:F}}function jF(M){if(M instanceof Element)return G0(M.getAttribute("slot"));return K}function n0(M){return typeof M!=="string"&&typeof M==="object"&&M!==null&&Symbol.iterator in M}function o0(M){return M instanceof HTMLScriptElement&&M.hasAttribute(c)}function t0(M){return M instanceof HTMLScriptElement&&M.hasAttribute(j)}function TF(M){return o0(M)||t0(M)}function _F(M){return typeof M==="object"&&M!==null&&M._$rType$===1&&Array.isArray(M.strings)&&Array.isArray(M.values)}function G0(M){return M??K}function y(M){if(M===void 0||M===null||M===!1||M===!0)return;if(typeof Node<"u"&&M instanceof Node){if(M.nodeType===Node.TEXT_NODE)return M.textContent??"";return M.outerHTML??M.textContent??void 0}if(m0(M))return y(M.value);if(typeof M==="string"||typeof M==="number"||typeof M==="bigint")return String(M);if(typeof M==="object"&&M!==null&&"outerHTML"in M)return typeof M.outerHTML==="string"?M.outerHTML:M.textContent??void 0;if(n0(M))return Array.from(M,(F)=>y(F)??"").join("");return}function EF(M,F,P){let $=F.get(G0(M.name));if($&&$.length>0)return $.length===1?$[0]:$;if(M.fallback===void 0)return"";return P(M.fallback)}import{hydrate as zF,render as IF}from"@ecopages/jsx";class X0{#M;#F=new Map;#P;#H;#$;#x=0;constructor(M){this.#M=M,this.#H=h(()=>{this.#M.requestUpdate()})}get slotProjectionVersion(){return this.#x}getSlotElements(M){return this.ensureSlotProjectionState(),(this.#F.get(M??K)??[]).filter((F)=>typeof Node<"u"&&F instanceof Element)}getSlotProjectionScriptTag(){this.ensureSlotProjectionState();let M=i0(this.#F);if(!M)return;return`<script type="application/json" ${c}>${KF(M)}</script>`}getAuthoredHydrationScriptMarkup(){return p0(this.#M)??void 0}hydrate(M){this.disconnectSlotProjectionObserver();try{zF(this.resolveTrackedRenderOutput().value,M)}finally{this.observeSlotProjection()}}render(M){this.disconnectSlotProjectionObserver();try{IF(this.resolveTrackedRenderOutput().value,M)}finally{this.observeSlotProjection()}}observeSlotProjection(){if(typeof MutationObserver>"u"||this.#$||!this.#M.isConnected)return;this.#$=new MutationObserver((M)=>this.handleSlotProjectionMutations(M)),this.#$.observe(this.#M,{childList:!0})}disconnectSlotProjectionObserver(){this.#$?.disconnect(),this.#$=void 0}disconnectRenderWatcher(){if(!this.#P)return;this.#H.unwatch(this.#P),this.#P=void 0}resolveTrackedRenderOutput(){let M=g(()=>this.resolveRenderOutput()),F=M.get();if(!this.#M.isConnected)return F;if(this.#P)this.#H.unwatch(this.#P);return this.#P=M,this.#H.watch(M),F}dispose(){this.disconnectSlotProjectionObserver(),this.disconnectRenderWatcher()}ensureSlotProjectionState(){if(this.#F.size>0)return;let M=this.#M.isConnected?r0(this.#M):void 0;if(typeof M==="string"&&M!==""){this.#F=s0(M),this.#x+=1;return}if(this.#M.childNodes.length>0)this.#F=d0(this.#M),this.#x+=1}handleSlotProjectionMutations(M){let F=!1;for(let P of M){for(let $ of Array.from(P.removedNodes))if(this.removeProjectedSlotNode($))F=!0;for(let $ of Array.from(P.addedNodes)){if($.parentNode!==this.#M)continue;if(this.addProjectedSlotNode($))F=!0}}if(F)this.#x+=1,this.#M.requestUpdate()}addProjectedSlotNode(M){if(M instanceof HTMLScriptElement&&(M.hasAttribute(c)||M.hasAttribute(j)))return!1;let F=M instanceof Element?M.getAttribute("slot")??K:K,P=this.#F.get(F);if(P){if(P.includes(M))return!1;return P.push(M),!0}return this.#F.set(F,[M]),!0}removeProjectedSlotNode(M){for(let[F,P]of this.#F.entries()){let $=P.indexOf(M);if($===-1)continue;if(P.splice($,1),P.length===0)this.#F.delete(F);return!0}return!1}resolveRenderOutput(){return this.ensureSlotProjectionState(),l0(this.#M.render(),this.#F)}}function KF(M){return M.replace(/</g,"\\u003c")}class S{options;needsRender=!1;isRendering=!1;isRenderScheduled=!1;constructor(M){this.options=M}get rendering(){return this.isRendering}get pending(){return this.needsRender}markPending(){this.needsRender=!0}clearPending(){this.needsRender=!1}requestUpdate(){if(this.needsRender=!0,this.isRenderScheduled)return;this.isRenderScheduled=!0,queueMicrotask(()=>{if(this.isRenderScheduled=!1,!this.needsRender)return;this.flush()})}flush(){if(!this.options.canFlush())return;while(this.needsRender&&this.options.canFlush())this.needsRender=!1,this.runCommit()}runExclusive(M){this.isRendering=!0;try{return M()}finally{this.isRendering=!1}}runCommit(){this.isRendering=!0;try{this.options.commit()}finally{this.isRendering=!1}}}import{createSubscribableJsxValue as kF}from"@ecopages/jsx";function a0(M){return kF({getValue:()=>M.get(),subscribe:(F)=>M.subscribe(F)})}class V{host;access;shouldAutoBind;bindings;$;reactiveMembers=new Map;jsxBindings=new Map;updateCallbacks=new Map;onConnectedCallbacks=[];onDisconnectedCallback=[];constructor(M,F,P){this.host=M;this.access=F;this.shouldAutoBind=P;let $=this.createReactiveBindingNamespace();this.bindings=$,this.$=$}connectHost(){for(let M of this.onConnectedCallbacks)M()}disconnectHost(){for(let M of this.onDisconnectedCallback)M()}registerCleanupCallback(M){this.onDisconnectedCallback.push(M)}registerConnectedCallback(M){this.onConnectedCallbacks.push(M)}notifyUpdate(M,F,P){let $=this.updateCallbacks.get(M);if(!$)return;for(let H of[...$.keys()])H()}getReactiveMember(M){return this.reactiveMembers.get(M)}createReactiveMember(M,F){let P=I().createState(F);return this.registerMember(M,P),P}registerReactiveMember(M,F){this.registerMember(M,F)}registerMember(M,F){this.reactiveMembers.set(M,F),this.jsxBindings.delete(M);let P=this.updateCallbacks.get(M);if(P)for(let $ of P.keys())this.subscribeCallback(M,$)}subscribeCallback(M,F){let P=this.updateCallbacks.get(M),$=this.reactiveMembers.get(M);if(!P||!$||P.get(F))return;let H=$.subscribe(()=>F());P.set(F,H)}getReactiveBinding(M){let F=M,P=this.jsxBindings.get(F);if(P)return P;let $=this.reactiveMembers.get(F);if(!$)throw Error(`No reactive binding registered for "${String(M)}".`);let H=a0($);return this.jsxBindings.set(F,H),H}registerUpdateCallback(M,F){let P=this.updateCallbacks.get(M);if(!P)P=new Map,this.updateCallbacks.set(M,P);return P.set(F,void 0),this.subscribeCallback(M,F),()=>{let $=this.updateCallbacks.get(M);if($?.get(F)?.(),$?.delete(F),$&&$.size===0)this.updateCallbacks.delete(M)}}defineReactiveBinding(M,F=!0){let P=typeof F==="string"?F:F?`$${M}`:void 0,$=this.access.getBindingTarget?.(this.host)??this.host;if(!P||this.access.hasProperty(this.host,P))return;this.access.defineProperty($,P,{get:()=>this.getReactiveBinding(M),enumerable:!1,configurable:!0})}defineReactiveAccessor(M,F){let P=F.bind??this.shouldAutoBind();this.defineReactiveBinding(M,P),this.access.defineProperty(this.host,M,{get:()=>F.signal.get(),set:($)=>{F.signal.set($),F.onSet?.($)},enumerable:!0,configurable:!0})}createReactiveField(M,F,P={}){let $=this.reactiveMembers.get(M),H=$??this.createReactiveMember(M,F);if($&&F!==void 0)H.set(F);if(this.defineReactiveAccessor(M,{bind:P.bind,signal:H}),!P.suppressInitialNotify)this.notifyUpdate(M,void 0,H.get())}createReactiveBindingNamespace(){return new Proxy(Object.create(null),{get:(M,F)=>{if(typeof F!=="string")return;return this.getReactiveBinding(F)}})}}var U0=Symbol.for("@ecopages/radiant.ssr-preparation-callbacks"),e0=Symbol.for("@ecopages/radiant.ssr-preparation-running");function MM(M,F){let $=M[U0];if(Array.isArray($)){$.push(F);return}Object.defineProperty(M,U0,{value:[F],configurable:!0})}function FM(M){let F=M,P=F[U0];if(!Array.isArray(P))return;F[e0]=!0;try{for(let $ of P)$()}finally{delete F[e0]}}var B0=Symbol.for("@ecopages/radiant.hydrator-installed");function h2(){globalThis[B0]=!0}function y2(){delete globalThis[B0]}function PM(){return globalThis[B0]===!0}import{getActiveSsrScopeValue as CF,withActiveSsrScopeValue as wF}from"@ecopages/jsx/server";var $M=Symbol.for("@ecopages/radiant.element-ssr-runtime");function HM(){return CF($M)}function d2(M,F){return wF($M,M,F)}import{hasHydrationMarkers as OF,jsx as fF}from"@ecopages/jsx";var SF=VF();function VF(){if(typeof HTMLElement<"u")return HTMLElement;throw Error("RadiantElement requires HTMLElement. Install '@ecopages/radiant/server/light-dom-shim' before SSR imports.")}class ZM extends SF{renderRootMode="light";bindings;$;reactiveHost;reactivePropertyState;eventSubscriptionRegistry;hostSsrRegistry=new O;eventEmitters=new Map;elementReady=!1;isFirstConnectPending=!1;renderScheduler;renderRuntime;constructor(){super();this.reactivePropertyState=new W0(this),this.eventSubscriptionRegistry=new Z0(()=>this.resolveRenderSurface().interactionTarget,()=>this),this.renderScheduler=new S({canFlush:()=>this.isConnected&&!this.renderScheduler.rendering&&!(this.isFirstConnectPending&&xM(this)),commit:()=>{let{renderTarget:M}=this.resolveRenderSurface();this.getOrCreateRenderRuntime().render(M)}}),this.reactiveHost=new V(this,{defineProperty:(M,F,P)=>Object.defineProperty(M,F,P),getBindingTarget:(M)=>Object.getPrototypeOf(M)??M,hasProperty:(M,F)=>(F in M),readProperty:(M,F)=>M[F]},()=>this.shouldAutoBindReactiveMembers()),this.bindings=this.reactiveHost.bindings,this.$=this.reactiveHost.$,J(this,"construct")}get slotProjectionVersion(){return this.renderRuntime?.slotProjectionVersion??0}connectedCallback(){J(this,"connect");let M=this.isFirstConnectPending;if(this.elementReady=!0,this.reactiveHost.connectHost(),M)return;this.isFirstConnectPending=!0,queueMicrotask(()=>{if(this.isFirstConnectPending=!1,!this.isConnected)return;if(!this.shouldRunRenderLifecycle())return;if(this.getOrCreateRenderRuntime().observeSlotProjection(),xM(this)){if(this.renderScheduler.clearPending(),this.hydrate(),this.renderScheduler.pending)this.update();return}this.update()})}connectedContextCallback(M){}disconnectedCallback(){this.renderRuntime?.dispose(),this.renderRuntime=void 0,this.eventSubscriptionRegistry.removeAll(),this.reactiveHost.disconnectHost()}notifyUpdate(M,F,P){this.reactiveHost.notifyUpdate(M,F,P)}attributeChangedCallback(M,F,P){if(F===P||!this.elementReady)return;this.reactivePropertyState.applyAttributeChange(M,F,P)}renderTemplate({target:M=this,template:F,insert:P="replace",sanitize:$}){let H=$?$(F):F;switch(P){case"replace":M.innerHTML=H;break;case"beforeend":M.insertAdjacentHTML("beforeend",H);break;case"afterbegin":M.insertAdjacentHTML("afterbegin",H);break;case"beforebegin":M.insertAdjacentHTML("beforebegin",H);break;case"afterend":M.insertAdjacentHTML("afterend",H);break}}render(){return fF("slot",{})}getReactivePropDefinitions(){return J0(this)}getPropertyValue(M){return Reflect.get(this,M)}renderViewToString(M={}){if(!this.shouldRunRenderLifecycle())return this.innerHTML;return J(this,"ssr"),this.prepareForSsr(),vF().renderView(this,M)}hydrate(){if(!this.shouldRunRenderLifecycle()||!this.isConnected||this.renderScheduler.rendering)return;let{renderTarget:M}=this.resolveRenderSurface(),F=this.getOrCreateRenderRuntime();this.renderScheduler.runExclusive(()=>{F.hydrate(M)})}requestUpdate(){if(!this.shouldRunRenderLifecycle())return;this.renderScheduler.requestUpdate()}update(){if(!this.shouldRunRenderLifecycle())return;this.renderScheduler.markPending(),this.renderScheduler.flush()}registerReactiveProperty(M){this.reactivePropertyState.register(M)}getReactiveProperties(){return this.reactivePropertyState.getAll()}registerContextProvider(M,F){this.hostSsrRegistry.registerContextProvider(M,F)}registerHydrationBinding(M,F){this.hostSsrRegistry.registerHydrationBinding(M,F)}getContextProviders(){return this.hostSsrRegistry.getContextProviders()}getHydrationBindings(){return this.hostSsrRegistry.getHydrationBindings()}prepareForSsr(){FM(this)}shouldAutoBindReactiveMembers(){return!0}shouldRunRenderLifecycle(){return this.render!==ZM.prototype.render}getRenderTarget(){if(this.renderRootMode!=="shadow")return this;if(this.shadowRoot)return this.shadowRoot;if(typeof this.attachShadow!=="function")throw Error("RadiantElement shadow render mode requires attachShadow().");return this.attachShadow({mode:"open"})}registerUpdateCallback(M,F){return this.reactiveHost.registerUpdateCallback(M,F)}getReactiveBinding(M){return this.reactiveHost.getReactiveBinding(M)}bind(M){return this.reactiveHost.getReactiveBinding(M)}defineReactiveBinding(M,F=!0){this.reactiveHost.defineReactiveBinding(M,F)}createReactiveMember(M,F){return this.reactiveHost.createReactiveMember(M,F)}registerReactiveMember(M,F){this.reactiveHost.registerReactiveMember(M,F)}getReactiveMember(M){return this.reactiveHost.getReactiveMember(M)}subscribeEvents(M){let F=[];for(let P of M)F.push(this.subscribeEvent(P));return F}hasEventSubscription(M){return this.eventSubscriptionRegistry.hasEventSubscription(M)}subscribeEvent(M){return this.eventSubscriptionRegistry.subscribe(M)}registerCleanupCallback(M){this.reactiveHost.registerCleanupCallback(M)}registerConnectedCallback(M){this.reactiveHost.registerConnectedCallback(M)}registerEventEmitter(M,F){this.eventEmitters.set(M,F)}getRef(M,F=!1){let P=`[data-ref="${M}"]`,{queryRoot:$}=this.resolveRenderSurface();if(F)return Array.from($.querySelectorAll(P));return $.querySelector(P)??null}getSlotElement(M){return this.getSlotElements(M)[0]??null}getSlotElements(M){return this.getOrCreateRenderRuntime().getSlotElements(M)}createReactiveField(M,F,P={}){this.reactiveHost.createReactiveField(M,F,P)}createReactiveProp(M,F){this.reactivePropertyState.create(M,F,(P,$,H)=>O0(this,P,$,H),(P,$)=>{this.reactiveHost.defineReactiveAccessor(P,$)},(P,$)=>this.createReactiveMember(P,$))}getSlotProjectionScriptTag(){return this.getOrCreateRenderRuntime().getSlotProjectionScriptTag()}getAuthoredHydrationScriptMarkup(){return this.getOrCreateRenderRuntime().getAuthoredHydrationScriptMarkup()}resolveTrackedRenderOutput(){return this.getOrCreateRenderRuntime().resolveTrackedRenderOutput()}getOrCreateRenderRuntime(){if(this.renderRuntime)return this.renderRuntime;return this.renderRuntime=new X0(this),this.renderRuntime}resolveRenderSurface(){let M=this.getRenderTarget(),F=typeof ShadowRoot<"u"&&M instanceof ShadowRoot?M:this;return{interactionTarget:F,queryRoot:F,renderTarget:M}}}function vF(){let M=HM();if(!M)throw Error("Radiant SSR runtime unavailable. Import `@ecopages/radiant/server/render-component` first.");return M}function xM(M){return PM()&&OF(M)}import{render as bF}from"@ecopages/jsx";class WM{host;element;bindings;$;reactiveHost;connected=!1;renderScheduler;isSsrLifecycle=!1;hostSsrRegistry=new O;renderSignal;renderWatcher=h(()=>{this.requestUpdate()});constructor(M){this.host=M,this.element=M,this.reactiveHost=new V(this,{defineProperty:(F,P,$)=>Object.defineProperty(F,P,$),hasProperty:(F,P)=>(P in F),readProperty:(F,P)=>F[P]},()=>this.shouldAutoBindReactiveMembers()),this.bindings=this.reactiveHost.bindings,this.$=this.reactiveHost.$,this.renderScheduler=new S({canFlush:()=>this.connected&&!this.renderScheduler.rendering,commit:()=>{let F=this.getRenderTarget();if(!F)return;bF(this.resolveTrackedRenderOutput(),F)}}),J(this,"construct")}connect(){if(J(this,"connect"),this.connected=!0,this.reactiveHost.connectHost(),this.shouldRunRenderLifecycle())this.update()}runWithSsrLifecycle(M){this.isSsrLifecycle=!0;try{return M()}finally{this.isSsrLifecycle=!1}}disconnect(){this.connected=!1,this.disconnectRenderWatcher(),this.reactiveHost.disconnectHost()}get isConnected(){return this.connected}render(){return null}requestUpdate(){if(!this.shouldRunRenderLifecycle())return;this.renderScheduler.requestUpdate()}update(){if(!this.shouldRunRenderLifecycle())return;if(!this.getRenderTarget())return;this.renderScheduler.markPending(),this.renderScheduler.flush()}bind(M){return this.reactiveHost.getReactiveBinding(M)}getReactiveBinding(M){return this.reactiveHost.getReactiveBinding(M)}createReactiveField(M,F,P={}){this.reactiveHost.createReactiveField(M,F,P)}createReactiveProp(M,F){let{type:P,defaultValue:$,bind:H}=F;q(P,$);let x=new AM(this.host,this,M),W=x.getInitialValue()??$??f(P),A=this.reactiveHost.createReactiveMember(M,W);this.reactiveHost.defineReactiveAccessor(M,{bind:H,signal:A}),x.install(),this.registerCleanupCallback(()=>{x.restore()})}defineReactiveBinding(M,F=!0){this.reactiveHost.defineReactiveBinding(M,F)}notifyUpdate(M,F,P){this.reactiveHost.notifyUpdate(M,F,P)}registerUpdateCallback(M,F){return this.reactiveHost.registerUpdateCallback(M,F)}connectedContextCallback(M){}registerContextProvider(M,F){this.hostSsrRegistry.registerContextProvider(M,F)}registerHydrationBinding(M,F){this.hostSsrRegistry.registerHydrationBinding(M,F)}getSsrContextProviders(){return this.hostSsrRegistry.getContextProviders()}getSsrHydrationBindings(){return this.hostSsrRegistry.getHydrationBindings()}registerCleanupCallback(M){this.reactiveHost.registerCleanupCallback(M)}registerConnectedCallback(M){this.reactiveHost.registerConnectedCallback(M)}createReactiveMember(M,F){return this.reactiveHost.createReactiveMember(M,F)}registerReactiveMember(M,F){this.reactiveHost.registerReactiveMember(M,F)}getReactiveMember(M){return this.reactiveHost.getReactiveMember(M)}addEventListener(M,F,P){this.host.addEventListener(M,F,P)}removeEventListener(M,F,P){this.host.removeEventListener(M,F,P)}dispatchEvent(M){return this.host.dispatchEvent(M)}getRef(M,F=!1){let P=`[data-ref="${M}"]`;if(F)return Array.from(this.host.querySelectorAll(P));return this.host.querySelector(P)??null}shouldAutoBindReactiveMembers(){return!0}shouldRunRenderLifecycle(){return!this.isSsrLifecycle&&this.render!==WM.prototype.render}getRenderTarget(){return this.host instanceof HTMLElement?this.host:null}disconnectRenderWatcher(){if(!this.renderSignal)return;this.renderWatcher.unwatch(this.renderSignal),this.renderSignal=void 0}resolveTrackedRenderOutput(){let M=g(()=>this.render()),F=M.get();if(!this.connected)return F;if(this.renderSignal)this.renderWatcher.unwatch(this.renderSignal);return this.renderSignal=M,this.renderWatcher.watch(M),F}}class AM{host;controller;propertyName;ownDescriptor;constructor(M,F,P){this.host=M;this.controller=F;this.propertyName=P;this.ownDescriptor=Object.getOwnPropertyDescriptor(this.host,this.propertyName)}getInitialValue(){return Reflect.get(this.host,this.propertyName)}install(){Object.defineProperty(this.host,this.propertyName,{get:()=>Reflect.get(this.controller,this.propertyName),set:(M)=>{Reflect.set(this.controller,this.propertyName,M)},enumerable:this.ownDescriptor?.enumerable??!0,configurable:!0})}restore(){let M=Reflect.get(this.controller,this.propertyName);if(this.ownDescriptor){if(Object.defineProperty(this.host,this.propertyName,this.ownDescriptor),"value"in this.ownDescriptor&&this.ownDescriptor.writable)Reflect.set(this.host,this.propertyName,M);return}Reflect.deleteProperty(this.host,this.propertyName);try{Reflect.set(this.host,this.propertyName,M)}catch{Object.defineProperty(this.host,this.propertyName,{value:M,writable:!0,enumerable:!0,configurable:!0})}}}var GM=Symbol.for("@ecopages/radiant.controllerIdentifier");function D0(M,F){M[GM]=F}function Q1(M){return M[GM]}var d="data-controller",XM=Symbol.for("@ecopages/radiant.controller-registry-state");function NF(){let M=globalThis,F=M[XM];if(F)return F;let P={activeRuntimes:new Set,controllerRegistrationStrategy:"keep-current",controllerRegistry:new Map};return M[XM]=P,P}var s=NF(),T=s.controllerRegistry,k=s.activeRuntimes;function UM(M){let F=M.getAttribute(d);if(!F)return[];return F.split(/\s+/).map((P)=>P.trim()).filter((P)=>P.length>0)}function m(M,F){if(M instanceof Element&&M.hasAttribute(d))F(M);for(let P of Array.from(M.querySelectorAll(`[${d}]`)))F(P)}class BM{root;controllersByElement=new Map;observer;stopped=!1;constructor(M=document){this.root=M;this.start()}stop(){if(this.stopped)return;this.stopped=!0,this.observer?.disconnect(),this.observer=void 0;for(let[M,F]of this.controllersByElement)for(let[P]of F)this.disconnectController(M,P);k.delete(this)}reconcileRegisteredController(M){m(this.root,(F)=>{if(!UM(F).includes(M))return;this.connectController(F,M)})}replaceRegisteredController(M){for(let[F,P]of Array.from(this.controllersByElement.entries())){if(!P.has(M))continue;this.disconnectController(F,M)}this.reconcileRegisteredController(M)}start(){if(m(this.root,(F)=>{this.reconcileElement(F)}),typeof MutationObserver>"u"){k.add(this);return}this.observer=new MutationObserver((F)=>{for(let P of F){if(P.type==="attributes"&&P.target instanceof Element){this.reconcileElement(P.target);continue}for(let $ of Array.from(P.removedNodes)){if(!($ instanceof Element))continue;m($,(H)=>{this.disconnectElementControllers(H)})}for(let $ of Array.from(P.addedNodes)){if(!($ instanceof Element))continue;m($,(H)=>{this.reconcileElement(H)})}}});let M=this.root instanceof Document?this.root.documentElement:this.root;this.observer.observe(M,{attributeFilter:[d],attributes:!0,childList:!0,subtree:!0}),k.add(this)}reconcileElement(M){let F=new Set(UM(M)),P=this.controllersByElement.get(M);if(P){for(let $ of P.keys())if(!F.has($))this.disconnectController(M,$)}for(let $ of F)this.connectController(M,$)}connectController(M,F){let P=T.get(F);if(!P)return;let $=this.controllersByElement.get(M);if(!$)$=new Map,this.controllersByElement.set(M,$);if($.has(F))return;let H=new P(M);$.set(F,H),H.connect()}disconnectController(M,F){let P=this.controllersByElement.get(M);if(!P)return;let $=P.get(F);if(!$)return;if($.disconnect(),P.delete(F),P.size===0)this.controllersByElement.delete(M)}disconnectElementControllers(M){let F=this.controllersByElement.get(M);if(!F)return;for(let P of Array.from(F.keys()))this.disconnectController(M,P)}}function uF(M,F){let P=T.get(M);if(P)return P;D0(F,M),T.set(M,F);for(let $ of Array.from(k))$.reconcileRegisteredController(M);return F}function Y1(M){return T.has(M)}function R1(M){return T.get(M)}function gF(M,F){if(T.get(M)===F)return F;D0(F,M),T.set(M,F);for(let $ of Array.from(k))$.replaceRegisteredController(M);return F}function DM(M){s.controllerRegistrationStrategy=M}function J1(){DM("replace")}function j1(){DM("keep-current")}function QM(M,F){if(s.controllerRegistrationStrategy==="replace")return gF(M,F);return uF(M,F)}function T1(M=document){return new BM(M)}function _1(){for(let M of Array.from(k))M.stop()}function hF(M){return typeof M==="function"}function Q(M,F,P,$){if(typeof $==="object")return M(void 0,$);return F(P,$)}function R(M,F,P,$,H){if(typeof $==="object"){if(!hF(P))throw TypeError("Standard method decorators require a method target");return M(P,$)}if(!H)throw TypeError("Legacy method decorators require a property descriptor");return F(P,$,H)}function L(M){return M.shouldAutoBindReactiveMembers?.()??!1}function Q0(M){if(M instanceof Element)return M;if("host"in M)return M.host;return M.element}function yF(M){return M.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/_/g,"-").toLowerCase()}function cF(M,F){if(F.converter?.fromAttribute){let P=F.converter.fromAttribute(M);if(M===null&&P===void 0&&"defaultValue"in F)return F.defaultValue;return P}if(F.type){if(M===null)return F.defaultValue??f(F.type);if(F.type===Boolean&&M==="")return!0;return z(M,F.type)}if(M===null)return F.defaultValue;return M}function p(M,F,P){return cF(Q0(M).getAttribute(F),P)}function mF(M,F,P,$){let H=$.converter?.toAttribute?$.converter.toAttribute(P):$.type?u(P,$.type):P==null?null:String(P);if(H===null){M.removeAttribute(F);return}M.setAttribute(F,H)}function i(M,F,P={}){if(P.type)q(P.type,P.defaultValue);let $=M,H=P.source??yF(F),x=Symbol(`@ecopages/radiant/attr:${F}:observer`),Z=P.bind??L(M);M.defineReactiveBinding(F,Z);let W=p(M,H,P),A=M.createReactiveMember(F,W);Object.defineProperty(M,F,{get(){return A.get()},set(D){let U=Q0(this);mF(U,H,D,P),A.set(p(this,H,P))},enumerable:!0,configurable:!0});let G=()=>{$[x]?.disconnect()},X=()=>{if(A.set(p(M,H,P)),typeof MutationObserver>"u")return;let D=Q0(M);G();let U=new MutationObserver(()=>{A.set(p(M,H,P))});U.observe(D,{attributeFilter:[H],attributes:!0}),$[x]=U};X(),M.registerConnectedCallback(X),M.registerCleanupCallback(G)}function LM(M={}){return(F,P)=>{let $=Symbol(`@ecopages/radiant/attr:${P}:installed`);B(F,(H)=>{H.registerConnectedCallback(()=>{if(H[$])return;let x=H[P],Z=M.defaultValue===void 0?x:M.defaultValue;i(H,P,{...M,defaultValue:Z}),H[$]=!0})})}}function qM(M={}){return function(F,P){let $=String(P.name),H=Symbol(`@ecopages/radiant/attr:${$}:initializer`);return P.addInitializer(function(){let x=this[H],Z=M.defaultValue===void 0?x:M.defaultValue;i(this,$,{...M,defaultValue:Z})}),function(x){return this[H]=x,x}}}function g1(M={}){function F(P,$){return Q(qM(M),LM(M),P,$)}return F}function YM(M,F,P){let $=P.value;return{configurable:!0,get(){if(this===M.prototype||Object.prototype.hasOwnProperty.call(this,F))return $;let H=$.bind(this);return Object.defineProperty(this,F,{value:H,configurable:!0,writable:!0}),H}}}function RM(M,F){let P=String(F.name);if(F.private)throw Error(`'bound' cannot decorate private properties like ${P}.`);F.addInitializer(function(){this[P]=this[P].bind(this)})}function p1(M,F,P){return R(RM,YM,M,F,P)}function r1(M){return function(F){return QM(M,F)}}var JM=Symbol.for("@ecopages/radiant.customElementTagName");function l(M,F){M[JM]=F}function o1(M){return M[JM]}function jM(M,F){return(P)=>{if(l(P,M),typeof customElements<"u"&&!customElements.get(M))customElements.define(M,P,F)}}function TM(M,F){return function(P,$){$.addInitializer(function(){if(l(this,M),typeof customElements<"u"&&!customElements.get(M))customElements.define(M,this,F)})}}function HP(M,F){function P($,H){if(typeof H<"u")return TM(M,F)($,H);return jM(M,F)($)}return P}function r(M,F){let P=null,$=null,H,x=()=>{if(P!==null)clearTimeout(P),P=null},Z=()=>{if($===null)return H;let A=$;return $=null,x(),H=A(),H},W=function(...A){$=()=>M.apply(this,A),x(),P=setTimeout(()=>{Z()},F)};return W.cancel=()=>{x(),$=null},W.flush=()=>{if($===null)return H;return Z()},W.pending=()=>$!==null,W}function _M(M){return(F,P,$)=>{let H=$.value,x=new WeakMap;return $.value=function(...W){let A=x.get(this);if(!A)A=r((...G)=>{return H.apply(this,G)},M),x.set(this,A);A(...W)},$}}function EM(M){return(F)=>{let P=new WeakMap;return function(...$){let H=P.get(this);if(!H)H=r((...x)=>{return F.apply(this,x)},M),P.set(this,H);H(...$)}}}function QP(M){function F(P,$,H){return R(EM(M),_M(M),P,$,H)}return F}class L0{host;eventConfig;constructor(M,F){this.host=M,this.eventConfig=F}emit(M){let F=new CustomEvent(this.eventConfig.name,{detail:M,bubbles:this.eventConfig.bubbles,cancelable:this.eventConfig.cancelable,composed:this.eventConfig.composed});this.host.dispatchEvent(F)}}function n(M,F){let P=new L0(M,F);return M.registerEventEmitter(F.name,P),P}function zM(M){return(F,P)=>{B(F,($)=>{let H=n($,M);$.registerConnectedCallback(()=>{Object.defineProperty($,P,{get(){return H},enumerable:!0,configurable:!0})})})}}function IM(M){return function(F,P){P.addInitializer(function(){let $=n(this,M);Object.defineProperty(this,P.name,{get(){return $},enumerable:!0,configurable:!0})})}}function kP(M){function F(P,$){return Q(IM(M),zM(M),P,$)}return F}function KM(M){let F=globalThis.CSS;if(typeof F?.escape==="function")return F.escape(M);let P="";for(let $=0;$<M.length;$+=1){let H=M[$]??"",x=H.codePointAt(0)??0;if(x===0){P+="�";continue}let Z=x>=1&&x<=31||x===127,W=$===0&&x>=48&&x<=57,A=$===1&&x>=48&&x<=57&&(M[0]??"")==="-",G=$===0&&H==="-"&&M.length===1;if(Z||W||A){P+=`\\${x.toString(16)} `;continue}if(x>=128||H==="-"||H==="_"||x>=48&&x<=57||x>=65&&x<=90||x>=97&&x<=122){P+=G?`\\${H}`:H;continue}P+=`\\${H}`}return P}var o=Symbol("radiant.shadowRootListenerHooks"),kM=Symbol("radiant.patchedAttachShadow");function wM(M){if(M instanceof Element)return M;if("host"in M)return M.host;return M.element}function dF(M){return!(M instanceof Element)}function CM(M,F,P,$){let H=(x)=>{if(x.target instanceof Element&&x.target.matches(P))$(x)};return M.addEventListener(F.type,H,F.options),()=>{M.removeEventListener(F.type,H,F.options)}}function sF(M,F){let P=wM(M);if(!P[o])P[o]=new Set;if(P[o].add(F),P[kM])return;let $=P.attachShadow;P.attachShadow=function(x){let Z=$.call(this,x);for(let W of P[o]??[])W();return Z},P[kM]=!0}function t(M,F,P){if(dF(M)&&"scope"in F&&F.scope&&F.scope!=="light")throw Error("RadiantController event listeners only support light DOM scope.");let $=wM(M),H=P.bind(M),x=null,Z=null,W=null,A=null,G=!1,X=()=>{x?.(),Z?.(),W?.(),A?.(),x=null,Z=null,W=null,A=null},D=()=>{if(G)return;if("window"in F&&!x)window.addEventListener(F.type,H,F.options),x=()=>{window.removeEventListener(F.type,H,F.options)};if("document"in F&&!Z)document.addEventListener(F.type,H,F.options),Z=()=>{document.removeEventListener(F.type,H,F.options)};if("selector"in F||"ref"in F){let U="selector"in F?F.selector:`[data-ref='${KM(F.ref)}']`;if(F.scope!=="shadow"&&!W)W=CM($,F,U,H);if(F.scope!=="light"&&$.shadowRoot&&!A)A=CM($.shadowRoot,F,U,H)}};if("selector"in F||"ref"in F){if(F.scope!=="light")sF(M,()=>{if(M.isConnected)D()})}if(M.registerConnectedCallback(D),M.registerCleanupCallback(X),M.isConnected)D();return()=>{G=!0,X()}}function OM(M){return(F,P,$)=>{let H=$.value;return B(F,(x)=>{t(x,M,H.bind(x))}),$}}function fM(M){return function(F,P){P.addInitializer(function(){t(this,M,F.bind(this))})}}function yP(M){function F(P,$,H){return R(fM(M),OM(M),P,$,H)}return F}function SM(M){return(F,P)=>{let $=Symbol(`@ecopages/radiant/on-updated:${P}:cleanup`);B(F,(H)=>{H.registerConnectedCallback(()=>{let x=H[P].bind(H),Z=[];if(Array.isArray(M))for(let W of M)Z.push(H.registerUpdateCallback(W,x));else if(typeof M==="string")Z.push(H.registerUpdateCallback(M,x));H[$]=()=>{for(let W of Z)W()}}),H.registerCleanupCallback(()=>{let x=H[$];if(typeof x==="function")x(),delete H[$]})})}}function VM(M){return function(F,P){P.addInitializer(function(){let $=F.bind(this);if(Object.defineProperty(this,P.name,{value:$,configurable:!0,writable:!0}),Array.isArray(M))for(let H of M)this.registerUpdateCallback(H,$);else if(typeof M==="string")this.registerUpdateCallback(M,$)})}}function rP(M){function F(P,$,H){return R(VM(M),SM(M),P,$,H)}return F}function a(M,F,P,$=!1){if(M.getReactiveMember(F))return;if(M.createReactiveMember(F,P),$!==void 0&&$!==!1)M.defineReactiveBinding(F,$)}function vM({type:M,attribute:F,reflect:P,defaultValue:$,bind:H}){return q(M,$),(x,Z)=>{let W=F??Z;N(x,Z,{type:M,reflect:P,attribute:W,defaultValue:$,bind:H});let A=Symbol.for(`@ecopages/radiant.ssr-prop:${Z}`),G=Symbol.for(`@ecopages/radiant.ssr-prop-assigned:${Z}`);Object.defineProperty(x,Z,{get(){return this[A]??$},set(X){this[A]=X,this[G]=!0},configurable:!0,enumerable:!0}),B(x,(X)=>{let U=X[Z]??$;a(X,Z,U,H)}),E(x,(X,D)=>{let U=X,_=X[Z],C=U[G]===!0,w=Object.prototype.hasOwnProperty.call(X,Z),Y=w?X[Z]:void 0,sM=C?_:D==="ssr"&&w&&Y!==$?Y:$===void 0?_:$;X.createReactiveProp(Z,{type:M,reflect:P,attribute:W,defaultValue:sM,bind:H})})}}function bM({type:M,attribute:F,reflect:P,defaultValue:$,bind:H}){return q(M,$),function(x,Z){let W=String(Z.name),A=F??W,G=Symbol(`@ecopages/radiant/reactive-prop:${W}:initializer`);return Z.addInitializer(function(){let X=this[G],D=$===void 0?X:$;N(this,W,{type:M,reflect:P,attribute:A,defaultValue:$,bind:H}),this.createReactiveProp(W,{type:M,reflect:P,attribute:A,defaultValue:D,bind:H})}),function(X){return this[G]=X,X}}}function A3(M){function F(P,$){return Q(bM(M),vM(M),P,$)}return F}function pF(M){return!(M instanceof Element)}function iF(M){return"shadowRoot"in M?M.shadowRoot??null:null}function lF(M){return M instanceof Element?M:M.host}function rF(M,F="light"){let P=iF(M);if(F==="shadow")return P?[P]:[];if(F==="both")return P?[M,P]:[M];return[M]}function e(M,F){if(pF(M)&&F.scope&&F.scope!=="light")throw Error("RadiantController queries only support light DOM scope.");let P=lF(M),$="selector"in F?F.selector:`[data-ref="${F.ref}"]`,H=null,x=()=>{let Z=rF(P,F.scope);if(F.all)return Z.flatMap((W)=>Array.from(W.querySelectorAll($)));for(let W of Z){let A=W.querySelector($);if(A)return A}return null};return{get value(){if(F.cache){if(H===null||F.all&&Array.isArray(H)&&!H.length)H=x();return H}return x()}}}function NM({cache:M=!0,...F}){return(P,$)=>{B(P,(H)=>{H.registerConnectedCallback(()=>{let x=e(H,{cache:M,...F});Object.defineProperty(H,$,{get(){return x.value},enumerable:!0,configurable:!0})})})}}function uM(M){return function(F,P){let $=String(P.name);P.addInitializer(function(){let H=e(this,M);Object.defineProperty(this,$,{get(){return H.value},enumerable:!0,configurable:!0})})}}function J3(M){function F(P,$){return Q(uM(M),NM(M),P,$)}return F}function v(M,F={}){let P=null,$,H=()=>{if(F.all)return M.getSlotElements(F.name);return M.getSlotElements(F.name)[0]??null};return{get value(){if(F.cache===!1)return H();let x=M.slotProjectionVersion??0;if($!==x)P=H(),$=x;return P}}}function gM(M={}){return(F,P)=>{let $=(Z)=>{return typeof Object.getOwnPropertyDescriptor(Z,P)?.get==="function"},H=(Z)=>{if($(Z))return;let W=v(Z,M);Object.defineProperty(Z,P,{get(){return W.value},enumerable:!0,configurable:!0})},x=new WeakMap;Object.defineProperty(F,P,{get(){let Z=x.get(this);if(!Z)Z=v(this,M),x.set(this,Z);return Z.value},enumerable:!0,configurable:!0}),B(F,(Z)=>{MM(Z,()=>{H(Z)}),Z.registerConnectedCallback(()=>{H(Z)})})}}function hM(M={}){return function(F,P){let $=String(P.name);P.addInitializer(function(){let H=v(this,M);Object.defineProperty(this,$,{get(){return H.value},enumerable:!0,configurable:!0})})}}function f3(M={}){function F(P,$){return Q(hM(M),gM(M),P,$)}return F}function yM(M){return g0({type:"signal",...M})}function cM(M){return h0(M)}import{createMarkupNodeLike as nF}from"@ecopages/jsx";import{state as oF}from"@ecopages/signals";function M0(M){return typeof M==="object"&&M!==null&&typeof M.get==="function"&&typeof M.set==="function"&&typeof M.subscribe==="function"&&typeof M.update==="function"}class b{host;hydrate;hydrationKey;property;source;currentValue;hasAppliedHostHydration=!1;sourceUnsubscribe;constructor(M){this.host=M.host,this.hydrate=M.hydrate,this.hydrationKey=M.hydrationKey,this.property=M.property,this.source=M.source??oF(this.resolveInitialValue(M.initialValue)),this.currentValue=this.source.get(),this.host.registerReactiveMember(this.property,this.source)}get(){return this.source.get()}set(M){this.source.set(M)}subscribe(M){return this.source.subscribe(M)}update(M){this.set(M(this.get()))}connectToSource(){if(this.sourceUnsubscribe)return;let M=this.source.get();if(!Object.is(this.currentValue,M))this.currentValue=M;this.sourceUnsubscribe=this.source.subscribe((F)=>{this.handleSourceChange(F)})}disconnectFromSource(){this.sourceUnsubscribe?.(),this.sourceUnsubscribe=void 0}hydrateFromHost(){if(!this.hydrate||this.hasAppliedHostHydration)return;this.hasAppliedHostHydration=!0;let M=this.source.get(),F=this.resolveInitialValue(M);if(!Object.is(M,F))this.source.set(F),this.currentValue=this.source.get()}renderHydrationScript(){let M=this.renderHydrationScriptTag();if(!M)return;return nF(M)}renderHydrationScriptTag(){let M=this.serializeHydrationValue();if(!M)return;return yM({hydrationKey:this.hydrationKey,serializedValue:M})}findHydrationScriptElement(){if(!(this.host instanceof Element))return null;return c0(this.host,"signal",this.hydrationKey)}isObject(M){return typeof M==="object"&&!Array.isArray(M)&&M!==null}resolveInitialValue(M){if(!this.hydrate)return M;let F=this.findHydrationScriptElement();if(!F)return M;let P=y0(F,M);if(this.hydrate===Object&&this.isObject(P)&&this.isObject(M))return{...M,...P};return P}serializeHydrationValue(){if(!this.hydrate)return;let M=JSON.stringify(this.get());if(typeof M!=="string")return;return cM(M)}handleSourceChange(M){this.currentValue=M}}function F0(M){return new b(M)}function P0(M){return typeof M.registerHydrationBinding==="function"}function q0(M={}){return(F,P)=>{let $=(H)=>{let x=H[P];if(x instanceof b)return x;let Z=typeof M.source==="function"?M.source(H):M.source??(M0(x)?x:void 0),W=M.bind??L(H),A=Z!==void 0?M.initial:x===void 0?M.initial:x;H.defineReactiveBinding(P,W);let G=F0({host:H,hydrate:M.hydrate,hydrationKey:P,initialValue:A,property:P,source:Z});if(H.registerConnectedCallback(()=>{G.hydrateFromHost(),G.connectToSource()}),H.registerCleanupCallback(()=>{G.disconnectFromSource()}),M.hydrate&&P0(H))H.registerHydrationBinding(P,G);return H[P]=G,G};E(F,(H)=>{let x=$(H);H.registerConnectedCallback(()=>{if(!(H[P]instanceof b))H[P]=x})})}}function Y0(M={}){return function(F,P){let $=String(P.name);return function(H){let x=typeof M.source==="function"?M.source(this):M.source??(M0(H)?H:void 0),Z=x!==void 0?M.initial:H===void 0?M.initial:H,W=M.bind??L(this);this.defineReactiveBinding($,W);let A=F0({host:this,hydrate:M.hydrate,hydrationKey:$,initialValue:Z,property:$,source:x});if(this.registerConnectedCallback(()=>{A.hydrateFromHost(),A.connectToSource()}),this.registerCleanupCallback(()=>{A.disconnectFromSource()}),M.hydrate&&P0(this))this.registerHydrationBinding($,A);return A}}}function a3(M,F){if(typeof F<"u"){if(typeof F==="object"){if(M!==void 0)throw TypeError("@signal standard decorators require an undefined target");return Y0()(void 0,F)}if(M===void 0)throw TypeError("@signal legacy decorators require a host target");return q0()(M,F)}let P=M??{};function $(H,x){if(typeof x==="object"){if(H!==void 0)throw TypeError("@signal standard decorators require an undefined target");return Y0(P)(void 0,x)}if(H===void 0)throw TypeError("@signal legacy decorators require a host target");return q0(P)(H,x)}return $}function mM(M,F){B(M,(P)=>{a(P,F,P[F],L(P))}),E(M,(P)=>{P.createReactiveField(F,P[F],{bind:L(P)})})}function dM(M,F){let P=String(F.name),$=Symbol(`@ecopages/radiant/state:${P}:initializer`);return F.addInitializer(function(){let H=this[$];this.createReactiveField(P,H,{bind:L(this),suppressInitialNotify:!0})}),function(H){return this[$]=H,H}}function G$(M,F){return Q(dM,mM,M,F)}export{m as visitControllerElements,_1 as stopControllers,G$ as state,T1 as startControllers,a3 as signal,DM as setControllerRegistrationStrategy,R1 as resolveRegisteredController,gF as replaceController,QM as registerControllerWithConfiguredStrategy,uF as registerController,f3 as querySlot,J3 as query,A3 as prop,UM as parseControllerIdentifiers,rP as onUpdated,yP as onEvent,Y1 as hasRegisteredController,kP as event,J1 as enableControllerReplacementForHmr,j1 as disableControllerReplacementForHmr,QP as debounce,HP as customElement,r1 as controller,p1 as bound,g1 as attr,ZM as RadiantElement,WM as RadiantController,BM as ControllerRegistryRuntime,XM as CONTROLLER_REGISTRY_STATE_KEY,d as CONTROLLER_ATTRIBUTE};
1
+ class O{contextProviders=new Map;hydrationBindings=new Map;registerContextProvider(F,M){this.contextProviders.set(F,M),this.hydrationBindings.set(F,M)}registerHydrationBinding(F,M){this.hydrationBindings.set(F,M)}getContextProviders(){return[...this.contextProviders.values()]}getHydrationBindings(){return[...this.hydrationBindings.values()]}}var H0=Symbol.for("@ecopages/radiant.reactivePropDefinitions");function u(F,M,P){let $=F.constructor,H=$[H0]??[];if(H.some((x)=>x.name===M))return;H.push({name:M,options:P}),$[H0]=H}function j0(F){return(F.constructor[H0]??[]).slice()}var T0=Symbol.for("@ecopages/radiant.legacy-instance-initializers"),_0=Symbol.for("@ecopages/radiant.legacy-post-construction-initializers"),pF=Symbol.for("@ecopages/radiant.legacy-executed-post-construction-initializers");function B(F,M){z0(F,T0,M)}function E(F,M){z0(F,_0,M)}function E0(F){iF(F,T0)}function x0(F,M){let P=F;lF(F,M,P[pF]??=new Set)}function z0(F,M,P){let $=F,H=Object.prototype.hasOwnProperty.call($,M)?$[M]:void 0;if(Array.isArray(H)){H.push(P);return}Object.defineProperty($,M,{value:[P]})}function iF(F,M){rF(F,(P)=>{let $=P[M];if(!Array.isArray($))return;for(let H of $)H(F)})}function lF(F,M,P){for(let $ of I0(F)){let H=$[_0];if(!Array.isArray(H))continue;for(let x of H){if(P.has(x))continue;x(F,M),P.add(x)}}}function I0(F){let M=[],P=Object.getPrototypeOf(F);while(P&&P!==Object.prototype)M.unshift(P),P=Object.getPrototypeOf(P);return M}function rF(F,M){for(let P of I0(F))M(P)}function J(F,M){switch(M){case"construct":E0(F);break;case"connect":x0(F,"connect");break;case"ssr":x0(F,"ssr");break}}class Z0{getInteractionTarget;getListenerContext;subscriptions=new Map;constructor(F,M){this.getInteractionTarget=F;this.getListenerContext=M}subscribe(F){let M=this.getInteractionTarget(),P=this.getListenerContext(),$=(x)=>{if(x.target&&x.target.matches(F.selector))F.listener.call(P,x)},H=`${F.type}:${F.selector}`;return M.addEventListener(F.type,$,F.options),this.subscriptions.set(H,{...F,listener:$,target:M}),()=>{this.unsubscribe(H)}}hasEventSubscription(F){return this.subscriptions.has(F)}removeAll(){for(let F of this.subscriptions.values())F.target.removeEventListener(F.type,F.listener,F.options);this.subscriptions.clear()}unsubscribe(F){let M=this.subscriptions.get(F);if(M)M.target.removeEventListener(M.type,M.listener,M.options),this.subscriptions.delete(F)}}function C0(F){switch(F){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function nF(F){switch(typeof F){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(F))return"array";if(Object.prototype.toString.call(F)==="[object Object]")return"object"}function f(F){switch(F){case Number:return 0;case String:return"";case Boolean:return!1;default:return null}}function oF(F){try{return JSON.parse(F)}catch{throw TypeError("Invalid JSON string")}}var tF={array(F){let M=oF(F);if(!Array.isArray(M))throw TypeError(`Expected an array but got a value of type "${typeof M}"`);return M},boolean(F){return!(F==="0"||String(F).toLowerCase()==="false")},number(F){return Number(F.replace(/_/g,""))},object(F){let M=JSON.parse(F);if(M===null||typeof M!=="object"||Array.isArray(M))throw TypeError(`expected value of type "object" but instead got value "${F}" of type "${nF(M)}"`);return M},string(F){return F}},K0={default:w0,array:k0,object:k0};function k0(F){return JSON.stringify(F)}function w0(F){return`${F}`}function z(F,M){let P=C0(M);if(!P)throw TypeError(`[radiant-element] Unknown type "${M}"`);return tF[P](F)}function g(F,M){let P=C0(M);if(!P)throw TypeError(`[radiant-element] Unknown type "${M}"`);return(K0[P]??K0.default??w0)(F)}function aF(F){return typeof F==="boolean"}function eF(F){return typeof F==="number"}function FM(F){return typeof F==="string"}function MM(F){return Array.isArray(F)}function PM(F){return typeof F==="object"&&!Array.isArray(F)&&F!==null}function O0(F,M){switch(F){case Boolean:return aF(M);case Number:return eF(M);case String:return FM(M);case Array:return MM(M);case Object:return PM(M);default:return!1}}var f0=(F,M,P,$)=>{if(M===Boolean){let x=F.getAttribute(P);if(x===null)return $;return x===""?!0:z(x,M)}let H=F.getAttribute(P);return H!==null?z(H,M):$??f(M)};function q(F,M){if(M!==void 0&&!O0(F,M))throw Error(`defaultValue does not match the expected type for ${F.name}`)}function S0(F,M,P,$){return{type:P,name:F,initialValue:$,attribute:M,converter:{fromAttribute:(H)=>z(H,P),toAttribute:(H)=>g(H,P)}}}class W0{host;properties=new Map;preUpgradePropertyValues=new Map;constructor(F){this.host=F;for(let M of Object.getOwnPropertyNames(F))this.preUpgradePropertyValues.set(M,Reflect.get(F,M))}register(F){this.properties.set(F.name,F)}getAll(){return Array.from(this.properties.values())}applyAttributeChange(F,M,P){let $=this.properties.get(F);if(!$)return;let H=this.transformAttributeValue(P,$);Reflect.set(this.host,$.name,H)}create(F,M,P,$,H){let{type:x,attribute:Z,reflect:W,defaultValue:G}=M,X=Z??F,A=this.preUpgradePropertyValues.has(F),D=A?this.preUpgradePropertyValues.get(F):void 0;q(x,G);let U=A?D:P(x,X,G);if(this.host.hasAttribute(X)&&(!W||U==null||U===""))this.host.removeAttribute(X);if(A&&Object.prototype.hasOwnProperty.call(this.host,F))Reflect.deleteProperty(this.host,F);let _=S0(F,X,x,U);this.register(_);let C=this.host.getReactiveMember(F),w=C??H(F,U);if(C&&U!==void 0)C.set(U);if($(F,{bind:M.bind,signal:w,onSet:(R)=>this.reflectValue(X,W,_,R)}),U!==void 0)queueMicrotask(()=>{let R=w.get();if(R===void 0)return;this.reflectValue(X,W,_,R),this.host.notifyUpdate(F,void 0,R)})}transformAttributeValue(F,M){return F!==null?M.converter.fromAttribute(F):F}reflectValue(F,M,P,$){if(!M)return;if($==null||$===""||$===!1){this.host.removeAttribute(F);return}let H=P.converter.toAttribute($);this.host.setAttribute(F,H)}}import{Computed as $M,state as HM,subtle as xM,trackDependency as ZM}from"@ecopages/signals";function WM(F){return F}function V0(F){return F}var v0={trackDependency(F){ZM(WM(F))},createComputed(F){return new $M(F)},createWatcher(F){let M=new xM.Watcher(F);return{watch(P){M.watch(V0(P))},unwatch(P){M.unwatch(V0(P))}}},createState(F){return HM(F)}};var b0=v0;function I(){return b0}function GM(F){b0=F}function x2(F){I().trackDependency(F)}function h(F){return I().createComputed(F)}function y(F){return I().createWatcher(F)}function N0(F){return F.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}var j="data-hydration",g0="data-hydration-type",G0="data-hydration-key";function h0(F){let M=F.hydrationKey?` ${G0}="${XM(F.hydrationKey)}"`:"";return`<script type="application/json" ${j} ${g0}="${F.type}"${M}>${F.serializedValue}</script>`}function y0(F){return N0(F)}function c0(F,M){let P=F.textContent;if(!P)return M;try{return JSON.parse(P)}catch{if(typeof console<"u")console.warn(`[@ecopages/radiant] Failed to parse hydration payload from <script ${j}>:`,P.slice(0,120));return M}}function m0(F,M,P){let $=F.children;if(!$||$.length===0){let H=F.childNodes;if(!H||H.length===0)return null;for(let x=0;x<H.length;x+=1){let Z=H[x];if(Z.nodeType!==1)continue;let W=Z;if(u0(W,M,P))return W}return null}for(let H=0;H<$.length;H+=1)if(u0($[H],M,P))return $[H];return null}function u0(F,M,P){if(F.tagName!=="SCRIPT"||!F.hasAttribute(j)||F.getAttribute(g0)!==M)return!1;if(P!==void 0)return F.getAttribute(G0)===P;return!F.hasAttribute(G0)}function XM(F){return F.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}import{createMarkupNodeLike as AM,isKeyedJsxValue as d0,isSlotJsxValue as UM}from"@ecopages/jsx";var K="",m="data-radiant-slot-projection";function s0(F){let M=new Map;for(let P of Array.from(F.childNodes)){if(LM(P))continue;BM(M,QM(P),P)}return M}function p0(F){let M;try{M=JSON.parse(F)}catch{if(typeof console<"u")console.warn("[@ecopages/radiant] Failed to parse slot projection payload:",F.slice(0,120));return new Map}let P=new Map;for(let[$,H]of Object.entries(M)){if(!Array.isArray(H)||H.length===0)continue;P.set(X0($),H.map((x)=>AM(x)))}return P}function i0(F){let M=Array.from(F.childNodes).filter((P)=>a0(P)).map((P)=>c(P)??"").filter((P)=>P!=="");return M.length>0?M.join(""):void 0}function l0(F){let M={};for(let[P,$]of F.entries()){let H=$.map((x)=>c(x)).filter((x)=>x!==void 0&&x!=="");if(H.length>0)M[P]=H}return Object.keys(M).length>0?JSON.stringify(M):void 0}function r0(F,M){let P=!1,$=(x)=>{if(UM(x))return P=!0,RM(x,M,$);if(d0(x))return DM(x,$(x.value));if(qM(x))return{_$rType$:1,rootLocalName:x.rootLocalName,ssrIntrinsicProps:x.ssrIntrinsicProps,strings:x.strings,values:x.values.map((Z)=>$(Z))};if(o0(x))return Array.from(x,(Z)=>$(Z));return x},H=$(F);return{containsSlots:P,value:H}}function n0(F){for(let M of Array.from(F.childNodes)){if(!t0(M))continue;let P=M.textContent??void 0;return M.parentNode?.removeChild(M),P}return}function BM(F,M,P){let $=F.get(M);if($){$.push(P);return}F.set(M,[P])}function DM(F,M){return{...F,value:M}}function QM(F){if(F instanceof Element)return X0(F.getAttribute("slot"));return K}function o0(F){return typeof F!=="string"&&typeof F==="object"&&F!==null&&Symbol.iterator in F}function t0(F){return F instanceof HTMLScriptElement&&F.hasAttribute(m)}function a0(F){return F instanceof HTMLScriptElement&&F.hasAttribute(j)}function LM(F){return t0(F)||a0(F)}function qM(F){return typeof F==="object"&&F!==null&&F._$rType$===1&&Array.isArray(F.strings)&&Array.isArray(F.values)}function X0(F){return F??K}function c(F){if(F===void 0||F===null||F===!1||F===!0)return;if(typeof Node<"u"&&F instanceof Node){if(F.nodeType===Node.TEXT_NODE)return F.textContent??"";return F.outerHTML??F.textContent??void 0}if(d0(F))return c(F.value);if(typeof F==="string"||typeof F==="number"||typeof F==="bigint")return String(F);if(typeof F==="object"&&F!==null&&"outerHTML"in F)return typeof F.outerHTML==="string"?F.outerHTML:F.textContent??void 0;if(o0(F))return Array.from(F,(M)=>c(M)??"").join("");return}function RM(F,M,P){let $=M.get(X0(F.name));if($&&$.length>0)return $.length===1?$[0]:$;if(F.fallback===void 0)return"";return P(F.fallback)}import{hydrate as YM,render as JM}from"@ecopages/jsx";class A0{#F;#M=new Map;#P;#H;#$;#x=0;constructor(F){this.#F=F,this.#H=y(()=>{this.#F.requestUpdate()})}get slotProjectionVersion(){return this.#x}getSlotElements(F){return this.ensureSlotProjectionState(),(this.#M.get(F??K)??[]).filter((M)=>typeof Node<"u"&&M instanceof Element)}getSlotProjectionScriptTag(){this.ensureSlotProjectionState();let F=l0(this.#M);if(!F)return;return`<script type="application/json" ${m}>${jM(F)}</script>`}getAuthoredHydrationScriptMarkup(){return i0(this.#F)??void 0}hydrate(F){this.disconnectSlotProjectionObserver();try{YM(this.resolveTrackedRenderOutput().value,F)}finally{this.observeSlotProjection()}}render(F){this.disconnectSlotProjectionObserver();try{JM(this.resolveTrackedRenderOutput().value,F)}finally{this.observeSlotProjection()}}observeSlotProjection(){if(typeof MutationObserver>"u"||this.#$||!this.#F.isConnected)return;this.#$=new MutationObserver((F)=>this.handleSlotProjectionMutations(F)),this.#$.observe(this.#F,{childList:!0})}disconnectSlotProjectionObserver(){this.#$?.disconnect(),this.#$=void 0}disconnectRenderWatcher(){if(!this.#P)return;this.#H.unwatch(this.#P),this.#P=void 0}resolveTrackedRenderOutput(){let F=h(()=>this.resolveRenderOutput()),M=F.get();if(!this.#F.isConnected)return M;if(this.#P)this.#H.unwatch(this.#P);return this.#P=F,this.#H.watch(F),M}dispose(){this.disconnectSlotProjectionObserver(),this.disconnectRenderWatcher()}ensureSlotProjectionState(){if(this.#M.size>0)return;let F=this.#F.isConnected?n0(this.#F):void 0;if(typeof F==="string"&&F!==""){this.#M=p0(F),this.#x+=1;return}if(this.#F.childNodes.length>0)this.#M=s0(this.#F),this.#x+=1}handleSlotProjectionMutations(F){let M=!1;for(let P of F){for(let $ of Array.from(P.removedNodes))if(this.removeProjectedSlotNode($))M=!0;for(let $ of Array.from(P.addedNodes)){if($.parentNode!==this.#F)continue;if(this.addProjectedSlotNode($))M=!0}}if(M)this.#x+=1,this.#F.requestUpdate()}addProjectedSlotNode(F){if(F instanceof HTMLScriptElement&&(F.hasAttribute(m)||F.hasAttribute(j)))return!1;let M=F instanceof Element?F.getAttribute("slot")??K:K,P=this.#M.get(M);if(P){if(P.includes(F))return!1;return P.push(F),!0}return this.#M.set(M,[F]),!0}removeProjectedSlotNode(F){for(let[M,P]of this.#M.entries()){let $=P.indexOf(F);if($===-1)continue;if(P.splice($,1),P.length===0)this.#M.delete(M);return!0}return!1}resolveRenderOutput(){return this.ensureSlotProjectionState(),r0(this.#F.render(),this.#M)}}function jM(F){return F.replace(/</g,"\\u003c")}class S{options;needsRender=!1;isRendering=!1;isRenderScheduled=!1;constructor(F){this.options=F}get rendering(){return this.isRendering}get pending(){return this.needsRender}markPending(){this.needsRender=!0}clearPending(){this.needsRender=!1}requestUpdate(){if(this.needsRender=!0,this.isRenderScheduled)return;this.isRenderScheduled=!0,queueMicrotask(()=>{if(this.isRenderScheduled=!1,!this.needsRender)return;this.flush()})}flush(){if(!this.options.canFlush())return;while(this.needsRender&&this.options.canFlush())this.needsRender=!1,this.runCommit()}runExclusive(F){this.isRendering=!0;try{return F()}finally{this.isRendering=!1}}runCommit(){this.isRendering=!0;try{this.options.commit()}finally{this.isRendering=!1}}}import{createSubscribableJsxValue as TM}from"@ecopages/jsx";function e0(F){return TM({getValue:()=>F.get(),subscribe:(M)=>F.subscribe(M)})}class V{host;access;shouldAutoBind;bindings;$;reactiveMembers=new Map;jsxBindings=new Map;updateCallbacks=new Map;onConnectedCallbacks=[];onDisconnectedCallback=[];constructor(F,M,P){this.host=F;this.access=M;this.shouldAutoBind=P;let $=this.createReactiveBindingNamespace();this.bindings=$,this.$=$}connectHost(){for(let F of this.onConnectedCallbacks)F()}disconnectHost(){for(let F of this.onDisconnectedCallback)F()}registerCleanupCallback(F){this.onDisconnectedCallback.push(F)}registerConnectedCallback(F){this.onConnectedCallbacks.push(F)}notifyUpdate(F,M,P){let $=this.updateCallbacks.get(F);if(!$)return;for(let H of[...$.keys()])H()}getReactiveMember(F){return this.reactiveMembers.get(F)}createReactiveMember(F,M){let P=I().createState(M);return this.registerMember(F,P),P}registerReactiveMember(F,M){this.registerMember(F,M)}registerMember(F,M){this.reactiveMembers.set(F,M),this.jsxBindings.delete(F);let P=this.updateCallbacks.get(F);if(P)for(let $ of P.keys())this.subscribeCallback(F,$)}subscribeCallback(F,M){let P=this.updateCallbacks.get(F),$=this.reactiveMembers.get(F);if(!P||!$||P.get(M))return;let H=$.subscribe(()=>M());P.set(M,H)}getReactiveBinding(F){let M=F,P=this.jsxBindings.get(M);if(P)return P;let $=this.reactiveMembers.get(M);if(!$)throw Error(`No reactive binding registered for "${String(F)}".`);let H=e0($);return this.jsxBindings.set(M,H),H}registerUpdateCallback(F,M){let P=this.updateCallbacks.get(F);if(!P)P=new Map,this.updateCallbacks.set(F,P);return P.set(M,void 0),this.subscribeCallback(F,M),()=>{let $=this.updateCallbacks.get(F);if($?.get(M)?.(),$?.delete(M),$&&$.size===0)this.updateCallbacks.delete(F)}}defineReactiveBinding(F,M=!0){let P=typeof M==="string"?M:M?`$${F}`:void 0,$=this.access.getBindingTarget?.(this.host)??this.host;if(!P||this.access.hasProperty(this.host,P))return;this.access.defineProperty($,P,{get:()=>this.getReactiveBinding(F),enumerable:!1,configurable:!0})}defineReactiveAccessor(F,M){let P=M.bind??this.shouldAutoBind();this.defineReactiveBinding(F,P),this.access.defineProperty(this.host,F,{get:()=>M.signal.get(),set:($)=>{M.signal.set($),M.onSet?.($)},enumerable:!0,configurable:!0})}createReactiveField(F,M,P={}){let $=this.reactiveMembers.get(F),H=$??this.createReactiveMember(F,M);if($&&M!==void 0)H.set(M);if(this.defineReactiveAccessor(F,{bind:P.bind,signal:H}),!P.suppressInitialNotify)this.notifyUpdate(F,void 0,H.get())}createReactiveBindingNamespace(){return new Proxy(Object.create(null),{get:(F,M)=>{if(typeof M!=="string")return;return this.getReactiveBinding(M)}})}}var U0=Symbol.for("@ecopages/radiant.ssr-preparation-callbacks"),FF=Symbol.for("@ecopages/radiant.ssr-preparation-running");function MF(F,M){let $=F[U0];if(Array.isArray($)){$.push(M);return}Object.defineProperty(F,U0,{value:[M],configurable:!0})}function PF(F){let M=F,P=M[U0];if(!Array.isArray(P))return;M[FF]=!0;try{for(let $ of P)$()}finally{delete M[FF]}}var B0=Symbol.for("@ecopages/radiant.hydrator-installed");function K2(){globalThis[B0]=!0}function k2(){delete globalThis[B0]}function $F(){return globalThis[B0]===!0}var D0=Symbol.for("@ecopages/radiant.element-ssr-runtime"),v;function w2(F){v=F}function HF(){return v?.get(D0)}function O2(F,M){if(!v)throw Error("Radiant element SSR runtime requires the server scope adapters. Import a Radiant server SSR entrypoint before rendering.");if(v.get(D0)===F)return M();return v.withValue(D0,F,M)}var xF=Symbol.for("@ecopages/radiant.RadiantElement");import{hasHydrationMarkers as _M,jsx as EM}from"@ecopages/jsx";var zM=IM();function IM(){if(typeof HTMLElement<"u")return HTMLElement;throw Error("RadiantElement requires HTMLElement. Install '@ecopages/radiant/server/light-dom-shim' before SSR imports.")}class Q0 extends zM{renderRootMode="light";bindings;$;reactiveHost;reactivePropertyState;eventSubscriptionRegistry;hostSsrRegistry=new O;eventEmitters=new Map;elementReady=!1;isFirstConnectPending=!1;renderScheduler;renderRuntime;constructor(){super();this.reactivePropertyState=new W0(this),this.eventSubscriptionRegistry=new Z0(()=>this.resolveRenderSurface().interactionTarget,()=>this),this.renderScheduler=new S({canFlush:()=>this.isConnected&&!this.renderScheduler.rendering&&!(this.isFirstConnectPending&&ZF(this)),commit:()=>{let{renderTarget:F}=this.resolveRenderSurface();this.getOrCreateRenderRuntime().render(F)}}),this.reactiveHost=new V(this,{defineProperty:(F,M,P)=>Object.defineProperty(F,M,P),getBindingTarget:(F)=>Object.getPrototypeOf(F)??F,hasProperty:(F,M)=>(M in F),readProperty:(F,M)=>F[M]},()=>this.shouldAutoBindReactiveMembers()),this.bindings=this.reactiveHost.bindings,this.$=this.reactiveHost.$,J(this,"construct")}get slotProjectionVersion(){return this.renderRuntime?.slotProjectionVersion??0}connectedCallback(){J(this,"connect");let F=this.isFirstConnectPending;if(this.elementReady=!0,this.reactiveHost.connectHost(),F)return;this.isFirstConnectPending=!0,queueMicrotask(()=>{if(this.isFirstConnectPending=!1,!this.isConnected)return;if(!this.shouldRunRenderLifecycle())return;if(this.getOrCreateRenderRuntime().observeSlotProjection(),ZF(this)){if(this.renderScheduler.clearPending(),this.hydrate(),this.renderScheduler.pending)this.update();return}this.update()})}connectedContextCallback(F){}disconnectedCallback(){this.renderRuntime?.dispose(),this.renderRuntime=void 0,this.eventSubscriptionRegistry.removeAll(),this.reactiveHost.disconnectHost()}notifyUpdate(F,M,P){this.reactiveHost.notifyUpdate(F,M,P)}attributeChangedCallback(F,M,P){if(M===P||!this.elementReady)return;this.reactivePropertyState.applyAttributeChange(F,M,P)}renderTemplate({target:F=this,template:M,insert:P="replace",sanitize:$}){let H=$?$(M):M;switch(P){case"replace":F.innerHTML=H;break;case"beforeend":F.insertAdjacentHTML("beforeend",H);break;case"afterbegin":F.insertAdjacentHTML("afterbegin",H);break;case"beforebegin":F.insertAdjacentHTML("beforebegin",H);break;case"afterend":F.insertAdjacentHTML("afterend",H);break}}render(){return EM("slot",{})}getReactivePropDefinitions(){return j0(this)}getPropertyValue(F){return Reflect.get(this,F)}renderViewToString(F={}){if(!this.shouldRunRenderLifecycle())return this.innerHTML;return J(this,"ssr"),this.prepareForSsr(),KM().renderView(this,F)}hydrate(){if(!this.shouldRunRenderLifecycle()||!this.isConnected||this.renderScheduler.rendering)return;let{renderTarget:F}=this.resolveRenderSurface(),M=this.getOrCreateRenderRuntime();this.renderScheduler.runExclusive(()=>{M.hydrate(F)})}requestUpdate(){if(!this.shouldRunRenderLifecycle())return;this.renderScheduler.requestUpdate()}update(){if(!this.shouldRunRenderLifecycle())return;this.renderScheduler.markPending(),this.renderScheduler.flush()}registerReactiveProperty(F){this.reactivePropertyState.register(F)}getReactiveProperties(){return this.reactivePropertyState.getAll()}registerContextProvider(F,M){this.hostSsrRegistry.registerContextProvider(F,M)}registerHydrationBinding(F,M){this.hostSsrRegistry.registerHydrationBinding(F,M)}getContextProviders(){return this.hostSsrRegistry.getContextProviders()}getHydrationBindings(){return this.hostSsrRegistry.getHydrationBindings()}prepareForSsr(){PF(this)}shouldAutoBindReactiveMembers(){return!0}shouldRunRenderLifecycle(){return this.render!==Q0.prototype.render}getRenderTarget(){if(this.renderRootMode!=="shadow")return this;if(this.shadowRoot)return this.shadowRoot;if(typeof this.attachShadow!=="function")throw Error("RadiantElement shadow render mode requires attachShadow().");return this.attachShadow({mode:"open"})}registerUpdateCallback(F,M){return this.reactiveHost.registerUpdateCallback(F,M)}getReactiveBinding(F){return this.reactiveHost.getReactiveBinding(F)}bind(F){return this.reactiveHost.getReactiveBinding(F)}defineReactiveBinding(F,M=!0){this.reactiveHost.defineReactiveBinding(F,M)}createReactiveMember(F,M){return this.reactiveHost.createReactiveMember(F,M)}registerReactiveMember(F,M){this.reactiveHost.registerReactiveMember(F,M)}getReactiveMember(F){return this.reactiveHost.getReactiveMember(F)}subscribeEvents(F){let M=[];for(let P of F)M.push(this.subscribeEvent(P));return M}hasEventSubscription(F){return this.eventSubscriptionRegistry.hasEventSubscription(F)}subscribeEvent(F){return this.eventSubscriptionRegistry.subscribe(F)}registerCleanupCallback(F){this.reactiveHost.registerCleanupCallback(F)}registerConnectedCallback(F){this.reactiveHost.registerConnectedCallback(F)}registerEventEmitter(F,M){this.eventEmitters.set(F,M)}getRef(F,M=!1){let P=`[data-ref="${F}"]`,{queryRoot:$}=this.resolveRenderSurface();if(M)return Array.from($.querySelectorAll(P));return $.querySelector(P)??null}getSlotElement(F){return this.getSlotElements(F)[0]??null}getSlotElements(F){return this.getOrCreateRenderRuntime().getSlotElements(F)}createReactiveField(F,M,P={}){this.reactiveHost.createReactiveField(F,M,P)}createReactiveProp(F,M){this.reactivePropertyState.create(F,M,(P,$,H)=>f0(this,P,$,H),(P,$)=>{this.reactiveHost.defineReactiveAccessor(P,$)},(P,$)=>this.createReactiveMember(P,$))}getSlotProjectionScriptTag(){return this.getOrCreateRenderRuntime().getSlotProjectionScriptTag()}getAuthoredHydrationScriptMarkup(){return this.getOrCreateRenderRuntime().getAuthoredHydrationScriptMarkup()}resolveTrackedRenderOutput(){return this.getOrCreateRenderRuntime().resolveTrackedRenderOutput()}getOrCreateRenderRuntime(){if(this.renderRuntime)return this.renderRuntime;return this.renderRuntime=new A0(this),this.renderRuntime}resolveRenderSurface(){let F=this.getRenderTarget(),M=typeof ShadowRoot<"u"&&F instanceof ShadowRoot?F:this;return{interactionTarget:M,queryRoot:M,renderTarget:F}}}Object.defineProperty(Q0.prototype,xF,{value:!0,configurable:!0});function KM(){let F=HF();if(!F)throw Error("Radiant SSR runtime unavailable. Import `@ecopages/radiant/server/render-component` first.");return F}function ZF(F){return $F()&&_M(F)}import{render as kM}from"@ecopages/jsx";class WF{host;element;bindings;$;reactiveHost;connected=!1;renderScheduler;isSsrLifecycle=!1;hostSsrRegistry=new O;renderSignal;renderWatcher=y(()=>{this.requestUpdate()});constructor(F){this.host=F,this.element=F,this.reactiveHost=new V(this,{defineProperty:(M,P,$)=>Object.defineProperty(M,P,$),hasProperty:(M,P)=>(P in M),readProperty:(M,P)=>M[P]},()=>this.shouldAutoBindReactiveMembers()),this.bindings=this.reactiveHost.bindings,this.$=this.reactiveHost.$,this.renderScheduler=new S({canFlush:()=>this.connected&&!this.renderScheduler.rendering,commit:()=>{let M=this.getRenderTarget();if(!M)return;kM(this.resolveTrackedRenderOutput(),M)}}),J(this,"construct")}connect(){if(J(this,"connect"),this.connected=!0,this.reactiveHost.connectHost(),this.shouldRunRenderLifecycle())this.update()}runWithSsrLifecycle(F){this.isSsrLifecycle=!0;try{return F()}finally{this.isSsrLifecycle=!1}}disconnect(){this.connected=!1,this.disconnectRenderWatcher(),this.reactiveHost.disconnectHost()}get isConnected(){return this.connected}render(){return null}requestUpdate(){if(!this.shouldRunRenderLifecycle())return;this.renderScheduler.requestUpdate()}update(){if(!this.shouldRunRenderLifecycle())return;if(!this.getRenderTarget())return;this.renderScheduler.markPending(),this.renderScheduler.flush()}bind(F){return this.reactiveHost.getReactiveBinding(F)}getReactiveBinding(F){return this.reactiveHost.getReactiveBinding(F)}createReactiveField(F,M,P={}){this.reactiveHost.createReactiveField(F,M,P)}createReactiveProp(F,M){let{type:P,defaultValue:$,bind:H}=M;q(P,$);let x=new GF(this.host,this,F),W=x.getInitialValue()??$??f(P),G=this.reactiveHost.createReactiveMember(F,W);this.reactiveHost.defineReactiveAccessor(F,{bind:H,signal:G}),x.install(),this.registerCleanupCallback(()=>{x.restore()})}defineReactiveBinding(F,M=!0){this.reactiveHost.defineReactiveBinding(F,M)}notifyUpdate(F,M,P){this.reactiveHost.notifyUpdate(F,M,P)}registerUpdateCallback(F,M){return this.reactiveHost.registerUpdateCallback(F,M)}connectedContextCallback(F){}registerContextProvider(F,M){this.hostSsrRegistry.registerContextProvider(F,M)}registerHydrationBinding(F,M){this.hostSsrRegistry.registerHydrationBinding(F,M)}getSsrContextProviders(){return this.hostSsrRegistry.getContextProviders()}getSsrHydrationBindings(){return this.hostSsrRegistry.getHydrationBindings()}registerCleanupCallback(F){this.reactiveHost.registerCleanupCallback(F)}registerConnectedCallback(F){this.reactiveHost.registerConnectedCallback(F)}createReactiveMember(F,M){return this.reactiveHost.createReactiveMember(F,M)}registerReactiveMember(F,M){this.reactiveHost.registerReactiveMember(F,M)}getReactiveMember(F){return this.reactiveHost.getReactiveMember(F)}addEventListener(F,M,P){this.host.addEventListener(F,M,P)}removeEventListener(F,M,P){this.host.removeEventListener(F,M,P)}dispatchEvent(F){return this.host.dispatchEvent(F)}getRef(F,M=!1){let P=`[data-ref="${F}"]`;if(M)return Array.from(this.host.querySelectorAll(P));return this.host.querySelector(P)??null}shouldAutoBindReactiveMembers(){return!0}shouldRunRenderLifecycle(){return!this.isSsrLifecycle&&this.render!==WF.prototype.render}getRenderTarget(){return this.host instanceof HTMLElement?this.host:null}disconnectRenderWatcher(){if(!this.renderSignal)return;this.renderWatcher.unwatch(this.renderSignal),this.renderSignal=void 0}resolveTrackedRenderOutput(){let F=h(()=>this.render()),M=F.get();if(!this.connected)return M;if(this.renderSignal)this.renderWatcher.unwatch(this.renderSignal);return this.renderSignal=F,this.renderWatcher.watch(F),M}}class GF{host;controller;propertyName;ownDescriptor;constructor(F,M,P){this.host=F;this.controller=M;this.propertyName=P;this.ownDescriptor=Object.getOwnPropertyDescriptor(this.host,this.propertyName)}getInitialValue(){return Reflect.get(this.host,this.propertyName)}install(){Object.defineProperty(this.host,this.propertyName,{get:()=>Reflect.get(this.controller,this.propertyName),set:(F)=>{Reflect.set(this.controller,this.propertyName,F)},enumerable:this.ownDescriptor?.enumerable??!0,configurable:!0})}restore(){let F=Reflect.get(this.controller,this.propertyName);if(this.ownDescriptor){if(Object.defineProperty(this.host,this.propertyName,this.ownDescriptor),"value"in this.ownDescriptor&&this.ownDescriptor.writable)Reflect.set(this.host,this.propertyName,F);return}Reflect.deleteProperty(this.host,this.propertyName);try{Reflect.set(this.host,this.propertyName,F)}catch{Object.defineProperty(this.host,this.propertyName,{value:F,writable:!0,enumerable:!0,configurable:!0})}}}var XF=Symbol.for("@ecopages/radiant.controllerIdentifier");function L0(F,M){F[XF]=M}function $1(F){return F[XF]}var s="data-controller",AF=Symbol.for("@ecopages/radiant.controller-registry-state");function CM(){let F=globalThis,M=F[AF];if(M)return M;let P={activeRuntimes:new Set,controllerRegistrationStrategy:"keep-current",controllerRegistry:new Map};return F[AF]=P,P}var p=CM(),T=p.controllerRegistry,k=p.activeRuntimes;function UF(F){let M=F.getAttribute(s);if(!M)return[];return M.split(/\s+/).map((P)=>P.trim()).filter((P)=>P.length>0)}function d(F,M){if(F instanceof Element&&F.hasAttribute(s))M(F);for(let P of Array.from(F.querySelectorAll(`[${s}]`)))M(P)}class BF{root;controllersByElement=new Map;observer;stopped=!1;constructor(F=document){this.root=F;this.start()}stop(){if(this.stopped)return;this.stopped=!0,this.observer?.disconnect(),this.observer=void 0;for(let[F,M]of this.controllersByElement)for(let[P]of M)this.disconnectController(F,P);k.delete(this)}reconcileRegisteredController(F){d(this.root,(M)=>{if(!UF(M).includes(F))return;this.connectController(M,F)})}replaceRegisteredController(F){for(let[M,P]of Array.from(this.controllersByElement.entries())){if(!P.has(F))continue;this.disconnectController(M,F)}this.reconcileRegisteredController(F)}start(){if(d(this.root,(M)=>{this.reconcileElement(M)}),typeof MutationObserver>"u"){k.add(this);return}this.observer=new MutationObserver((M)=>{for(let P of M){if(P.type==="attributes"&&P.target instanceof Element){this.reconcileElement(P.target);continue}for(let $ of Array.from(P.removedNodes)){if(!($ instanceof Element))continue;d($,(H)=>{this.disconnectElementControllers(H)})}for(let $ of Array.from(P.addedNodes)){if(!($ instanceof Element))continue;d($,(H)=>{this.reconcileElement(H)})}}});let F=this.root instanceof Document?this.root.documentElement:this.root;this.observer.observe(F,{attributeFilter:[s],attributes:!0,childList:!0,subtree:!0}),k.add(this)}reconcileElement(F){let M=new Set(UF(F)),P=this.controllersByElement.get(F);if(P){for(let $ of P.keys())if(!M.has($))this.disconnectController(F,$)}for(let $ of M)this.connectController(F,$)}connectController(F,M){let P=T.get(M);if(!P)return;let $=this.controllersByElement.get(F);if(!$)$=new Map,this.controllersByElement.set(F,$);if($.has(M))return;let H=new P(F);$.set(M,H),H.connect()}disconnectController(F,M){let P=this.controllersByElement.get(F);if(!P)return;let $=P.get(M);if(!$)return;if($.disconnect(),P.delete(M),P.size===0)this.controllersByElement.delete(F)}disconnectElementControllers(F){let M=this.controllersByElement.get(F);if(!M)return;for(let P of Array.from(M.keys()))this.disconnectController(F,P)}}function wM(F,M){let P=T.get(F);if(P)return P;L0(M,F),T.set(F,M);for(let $ of Array.from(k))$.reconcileRegisteredController(F);return M}function Z1(F){return T.has(F)}function W1(F){return T.get(F)}function OM(F,M){if(T.get(F)===M)return M;L0(M,F),T.set(F,M);for(let $ of Array.from(k))$.replaceRegisteredController(F);return M}function DF(F){p.controllerRegistrationStrategy=F}function G1(){DF("replace")}function X1(){DF("keep-current")}function QF(F,M){if(p.controllerRegistrationStrategy==="replace")return OM(F,M);return wM(F,M)}function A1(F=document){return new BF(F)}function U1(){for(let F of Array.from(k))F.stop()}function fM(F){return typeof F==="function"}function Q(F,M,P,$){if(typeof $==="object")return F(void 0,$);return M(P,$)}function Y(F,M,P,$,H){if(typeof $==="object"){if(!fM(P))throw TypeError("Standard method decorators require a method target");return F(P,$)}if(!H)throw TypeError("Legacy method decorators require a property descriptor");return M(P,$,H)}function L(F){return F.shouldAutoBindReactiveMembers?.()??!1}function q0(F){if(F instanceof Element)return F;if("host"in F)return F.host;return F.element}function SM(F){return F.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/_/g,"-").toLowerCase()}function VM(F,M){if(M.converter?.fromAttribute){let P=M.converter.fromAttribute(F);if(F===null&&P===void 0&&"defaultValue"in M)return M.defaultValue;return P}if(M.type){if(F===null)return M.defaultValue??f(M.type);if(M.type===Boolean&&F==="")return!0;return z(F,M.type)}if(F===null)return M.defaultValue;return F}function i(F,M,P){return VM(q0(F).getAttribute(M),P)}function vM(F,M,P,$){let H=$.converter?.toAttribute?$.converter.toAttribute(P):$.type?g(P,$.type):P==null?null:String(P);if(H===null){F.removeAttribute(M);return}F.setAttribute(M,H)}function l(F,M,P={}){if(P.type)q(P.type,P.defaultValue);let $=F,H=P.source??SM(M),x=Symbol(`@ecopages/radiant/attr:${M}:observer`),Z=P.bind??L(F);F.defineReactiveBinding(M,Z);let W=i(F,H,P),G=F.createReactiveMember(M,W);Object.defineProperty(F,M,{get(){return G.get()},set(D){let U=q0(this);vM(U,H,D,P),G.set(i(this,H,P))},enumerable:!0,configurable:!0});let X=()=>{$[x]?.disconnect()},A=()=>{if(G.set(i(F,H,P)),typeof MutationObserver>"u")return;let D=q0(F);X();let U=new MutationObserver(()=>{G.set(i(F,H,P))});U.observe(D,{attributeFilter:[H],attributes:!0}),$[x]=U};A(),F.registerConnectedCallback(A),F.registerCleanupCallback(X)}function LF(F={}){return(M,P)=>{let $=Symbol(`@ecopages/radiant/attr:${P}:installed`);B(M,(H)=>{H.registerConnectedCallback(()=>{if(H[$])return;let x=H[P],Z=F.defaultValue===void 0?x:F.defaultValue;l(H,P,{...F,defaultValue:Z}),H[$]=!0})})}}function qF(F={}){return function(M,P){let $=String(P.name),H=Symbol(`@ecopages/radiant/attr:${$}:initializer`);return P.addInitializer(function(){let x=this[H],Z=F.defaultValue===void 0?x:F.defaultValue;l(this,$,{...F,defaultValue:Z})}),function(x){return this[H]=x,x}}}function k1(F={}){function M(P,$){return Q(qF(F),LF(F),P,$)}return M}function RF(F,M,P){let $=P.value;return{configurable:!0,get(){if(this===F.prototype||Object.prototype.hasOwnProperty.call(this,M))return $;let H=$.bind(this);return Object.defineProperty(this,M,{value:H,configurable:!0,writable:!0}),H}}}function YF(F,M){let P=String(M.name);if(M.private)throw Error(`'bound' cannot decorate private properties like ${P}.`);M.addInitializer(function(){this[P]=this[P].bind(this)})}function v1(F,M,P){return Y(YF,RF,F,M,P)}function u1(F){return function(M){return QF(F,M)}}var JF=Symbol.for("@ecopages/radiant.customElementTagName");function r(F,M){F[JF]=M}function h1(F){return F[JF]}function jF(F,M){return(P)=>{if(r(P,F),typeof customElements<"u"&&!customElements.get(F))customElements.define(F,P,M)}}function TF(F,M){return function(P,$){$.addInitializer(function(){if(r(this,F),typeof customElements<"u"&&!customElements.get(F))customElements.define(F,this,M)})}}function l1(F,M){function P($,H){if(typeof H<"u")return TF(F,M)($,H);return jF(F,M)($)}return P}function n(F,M){let P=null,$=null,H,x=()=>{if(P!==null)clearTimeout(P),P=null},Z=()=>{if($===null)return H;let G=$;return $=null,x(),H=G(),H},W=function(...G){$=()=>F.apply(this,G),x(),P=setTimeout(()=>{Z()},M)};return W.cancel=()=>{x(),$=null},W.flush=()=>{if($===null)return H;return Z()},W.pending=()=>$!==null,W}function _F(F){return(M,P,$)=>{let H=$.value,x=new WeakMap;return $.value=function(...W){let G=x.get(this);if(!G)G=n((...X)=>{return H.apply(this,X)},F),x.set(this,G);G(...W)},$}}function EF(F){return(M)=>{let P=new WeakMap;return function(...$){let H=P.get(this);if(!H)H=n((...x)=>{return M.apply(this,x)},F),P.set(this,H);H(...$)}}}function $P(F){function M(P,$,H){return Y(EF(F),_F(F),P,$,H)}return M}class R0{host;eventConfig;constructor(F,M){this.host=F,this.eventConfig=M}emit(F){let M=new CustomEvent(this.eventConfig.name,{detail:F,bubbles:this.eventConfig.bubbles,cancelable:this.eventConfig.cancelable,composed:this.eventConfig.composed});this.host.dispatchEvent(M)}}function o(F,M){let P=new R0(F,M);return F.registerEventEmitter(M.name,P),P}function zF(F){return(M,P)=>{B(M,($)=>{let H=o($,F);$.registerConnectedCallback(()=>{Object.defineProperty($,P,{get(){return H},enumerable:!0,configurable:!0})})})}}function IF(F){return function(M,P){P.addInitializer(function(){let $=o(this,F);Object.defineProperty(this,P.name,{get(){return $},enumerable:!0,configurable:!0})})}}function qP(F){function M(P,$){return Q(IF(F),zF(F),P,$)}return M}function KF(F){let M=globalThis.CSS;if(typeof M?.escape==="function")return M.escape(F);let P="";for(let $=0;$<F.length;$+=1){let H=F[$]??"",x=H.codePointAt(0)??0;if(x===0){P+="�";continue}let Z=x>=1&&x<=31||x===127,W=$===0&&x>=48&&x<=57,G=$===1&&x>=48&&x<=57&&(F[0]??"")==="-",X=$===0&&H==="-"&&F.length===1;if(Z||W||G){P+=`\\${x.toString(16)} `;continue}if(x>=128||H==="-"||H==="_"||x>=48&&x<=57||x>=65&&x<=90||x>=97&&x<=122){P+=X?`\\${H}`:H;continue}P+=`\\${H}`}return P}var t=Symbol("radiant.shadowRootListenerHooks"),kF=Symbol("radiant.patchedAttachShadow");function wF(F){if(F instanceof Element)return F;if("host"in F)return F.host;return F.element}function bM(F){return!(F instanceof Element)}function CF(F,M,P,$){let H=(x)=>{if(x.target instanceof Element&&x.target.matches(P))$(x)};return F.addEventListener(M.type,H,M.options),()=>{F.removeEventListener(M.type,H,M.options)}}function NM(F,M){let P=wF(F);if(!P[t])P[t]=new Set;if(P[t].add(M),P[kF])return;let $=P.attachShadow;P.attachShadow=function(x){let Z=$.call(this,x);for(let W of P[t]??[])W();return Z},P[kF]=!0}function a(F,M,P){if(bM(F)&&"scope"in M&&M.scope&&M.scope!=="light")throw Error("RadiantController event listeners only support light DOM scope.");let $=wF(F),H=P.bind(F),x=null,Z=null,W=null,G=null,X=!1,A=()=>{x?.(),Z?.(),W?.(),G?.(),x=null,Z=null,W=null,G=null},D=()=>{if(X)return;if("window"in M&&!x)window.addEventListener(M.type,H,M.options),x=()=>{window.removeEventListener(M.type,H,M.options)};if("document"in M&&!Z)document.addEventListener(M.type,H,M.options),Z=()=>{document.removeEventListener(M.type,H,M.options)};if("selector"in M||"ref"in M){let U="selector"in M?M.selector:`[data-ref='${KF(M.ref)}']`;if(M.scope!=="shadow"&&!W)W=CF($,M,U,H);if(M.scope!=="light"&&$.shadowRoot&&!G)G=CF($.shadowRoot,M,U,H)}};if("selector"in M||"ref"in M){if(M.scope!=="light")NM(F,()=>{if(F.isConnected)D()})}if(F.registerConnectedCallback(D),F.registerCleanupCallback(A),F.isConnected)D();return()=>{X=!0,A()}}function OF(F){return(M,P,$)=>{let H=$.value;return B(M,(x)=>{a(x,F,H.bind(x))}),$}}function fF(F){return function(M,P){P.addInitializer(function(){a(this,F,M.bind(this))})}}function wP(F){function M(P,$,H){return Y(fF(F),OF(F),P,$,H)}return M}function SF(F){return(M,P)=>{let $=Symbol(`@ecopages/radiant/on-updated:${P}:cleanup`);B(M,(H)=>{H.registerConnectedCallback(()=>{let x=H[P].bind(H),Z=[];if(Array.isArray(F))for(let W of F)Z.push(H.registerUpdateCallback(W,x));else if(typeof F==="string")Z.push(H.registerUpdateCallback(F,x));H[$]=()=>{for(let W of Z)W()}}),H.registerCleanupCallback(()=>{let x=H[$];if(typeof x==="function")x(),delete H[$]})})}}function VF(F){return function(M,P){P.addInitializer(function(){let $=M.bind(this);if(Object.defineProperty(this,P.name,{value:$,configurable:!0,writable:!0}),Array.isArray(F))for(let H of F)this.registerUpdateCallback(H,$);else if(typeof F==="string")this.registerUpdateCallback(F,$)})}}function uP(F){function M(P,$,H){return Y(VF(F),SF(F),P,$,H)}return M}function e(F,M,P,$=!1){if(F.getReactiveMember(M))return;if(F.createReactiveMember(M,P),$!==void 0&&$!==!1)F.defineReactiveBinding(M,$)}function vF({type:F,attribute:M,reflect:P,defaultValue:$,bind:H}){return q(F,$),(x,Z)=>{let W=M??Z;u(x,Z,{type:F,reflect:P,attribute:W,defaultValue:$,bind:H});let G=Symbol.for(`@ecopages/radiant.ssr-prop:${Z}`),X=Symbol.for(`@ecopages/radiant.ssr-prop-assigned:${Z}`);Object.defineProperty(x,Z,{get(){return this[G]??$},set(A){this[G]=A,this[X]=!0},configurable:!0,enumerable:!0}),B(x,(A)=>{let U=A[Z]??$;e(A,Z,U,H)}),E(x,(A,D)=>{let U=A,_=A[Z],C=U[X]===!0,w=Object.prototype.hasOwnProperty.call(A,Z),R=w?A[Z]:void 0,sF=C?_:D==="ssr"&&w&&R!==$?R:$===void 0?_:$;A.createReactiveProp(Z,{type:F,reflect:P,attribute:W,defaultValue:sF,bind:H})})}}function bF({type:F,attribute:M,reflect:P,defaultValue:$,bind:H}){return q(F,$),function(x,Z){let W=String(Z.name),G=M??W,X=Symbol(`@ecopages/radiant/reactive-prop:${W}:initializer`);return Z.addInitializer(function(){let A=this[X],D=$===void 0?A:$;u(this,W,{type:F,reflect:P,attribute:G,defaultValue:$,bind:H}),this.createReactiveProp(W,{type:F,reflect:P,attribute:G,defaultValue:D,bind:H})}),function(A){return this[X]=A,A}}}function tP(F){function M(P,$){return Q(bF(F),vF(F),P,$)}return M}function uM(F){return!(F instanceof Element)}function gM(F){return"shadowRoot"in F?F.shadowRoot??null:null}function hM(F){return F instanceof Element?F:F.host}function yM(F,M="light"){let P=gM(F);if(M==="shadow")return P?[P]:[];if(M==="both")return P?[F,P]:[F];return[F]}function F0(F,M){if(uM(F)&&M.scope&&M.scope!=="light")throw Error("RadiantController queries only support light DOM scope.");let P=hM(F),$="selector"in M?M.selector:`[data-ref="${M.ref}"]`,H=null,x=()=>{let Z=yM(P,M.scope);if(M.all)return Z.flatMap((W)=>Array.from(W.querySelectorAll($)));for(let W of Z){let G=W.querySelector($);if(G)return G}return null};return{get value(){if(M.cache){if(H===null||M.all&&Array.isArray(H)&&!H.length)H=x();return H}return x()}}}function NF({cache:F=!0,...M}){return(P,$)=>{B(P,(H)=>{H.registerConnectedCallback(()=>{let x=F0(H,{cache:F,...M});Object.defineProperty(H,$,{get(){return x.value},enumerable:!0,configurable:!0})})})}}function uF(F){return function(M,P){let $=String(P.name);P.addInitializer(function(){let H=F0(this,F);Object.defineProperty(this,$,{get(){return H.value},enumerable:!0,configurable:!0})})}}function G3(F){function M(P,$){return Q(uF(F),NF(F),P,$)}return M}function b(F,M={}){let P=null,$,H=()=>{if(M.all)return F.getSlotElements(M.name);return F.getSlotElements(M.name)[0]??null};return{get value(){if(M.cache===!1)return H();let x=F.slotProjectionVersion??0;if($!==x)P=H(),$=x;return P}}}function gF(F={}){return(M,P)=>{let $=(Z)=>{return typeof Object.getOwnPropertyDescriptor(Z,P)?.get==="function"},H=(Z)=>{if($(Z))return;let W=b(Z,F);Object.defineProperty(Z,P,{get(){return W.value},enumerable:!0,configurable:!0})},x=new WeakMap;Object.defineProperty(M,P,{get(){let Z=x.get(this);if(!Z)Z=b(this,F),x.set(this,Z);return Z.value},enumerable:!0,configurable:!0}),B(M,(Z)=>{MF(Z,()=>{H(Z)}),Z.registerConnectedCallback(()=>{H(Z)})})}}function hF(F={}){return function(M,P){let $=String(P.name);P.addInitializer(function(){let H=b(this,F);Object.defineProperty(this,$,{get(){return H.value},enumerable:!0,configurable:!0})})}}function j3(F={}){function M(P,$){return Q(hF(F),gF(F),P,$)}return M}function yF(F){return h0({type:"signal",...F})}function cF(F){return y0(F)}import{createMarkupNodeLike as cM}from"@ecopages/jsx";import{state as mM}from"@ecopages/signals";function M0(F){return typeof F==="object"&&F!==null&&typeof F.get==="function"&&typeof F.set==="function"&&typeof F.subscribe==="function"&&typeof F.update==="function"}class N{host;hydrate;hydrationKey;property;source;currentValue;hasAppliedHostHydration=!1;sourceUnsubscribe;constructor(F){this.host=F.host,this.hydrate=F.hydrate,this.hydrationKey=F.hydrationKey,this.property=F.property,this.source=F.source??mM(this.resolveInitialValue(F.initialValue)),this.currentValue=this.source.get(),this.host.registerReactiveMember(this.property,this.source)}get(){return this.source.get()}set(F){this.source.set(F)}subscribe(F){return this.source.subscribe(F)}update(F){this.set(F(this.get()))}connectToSource(){if(this.sourceUnsubscribe)return;let F=this.source.get();if(!Object.is(this.currentValue,F))this.currentValue=F;this.sourceUnsubscribe=this.source.subscribe((M)=>{this.handleSourceChange(M)})}disconnectFromSource(){this.sourceUnsubscribe?.(),this.sourceUnsubscribe=void 0}hydrateFromHost(){if(!this.hydrate||this.hasAppliedHostHydration)return;this.hasAppliedHostHydration=!0;let F=this.source.get(),M=this.resolveInitialValue(F);if(!Object.is(F,M))this.source.set(M),this.currentValue=this.source.get()}renderHydrationScript(){let F=this.renderHydrationScriptTag();if(!F)return;return cM(F)}renderHydrationScriptTag(){let F=this.serializeHydrationValue();if(!F)return;return yF({hydrationKey:this.hydrationKey,serializedValue:F})}findHydrationScriptElement(){if(!(this.host instanceof Element))return null;return m0(this.host,"signal",this.hydrationKey)}isObject(F){return typeof F==="object"&&!Array.isArray(F)&&F!==null}resolveInitialValue(F){if(!this.hydrate)return F;let M=this.findHydrationScriptElement();if(!M)return F;let P=c0(M,F);if(this.hydrate===Object&&this.isObject(P)&&this.isObject(F))return{...F,...P};return P}serializeHydrationValue(){if(!this.hydrate)return;let F=JSON.stringify(this.get());if(typeof F!=="string")return;return cF(F)}handleSourceChange(F){this.currentValue=F}}function P0(F){return new N(F)}function $0(F){return typeof F.registerHydrationBinding==="function"}function Y0(F={}){return(M,P)=>{let $=(H)=>{let x=H[P];if(x instanceof N)return x;let Z=typeof F.source==="function"?F.source(H):F.source??(M0(x)?x:void 0),W=F.bind??L(H),G=Z!==void 0?F.initial:x===void 0?F.initial:x;H.defineReactiveBinding(P,W);let X=P0({host:H,hydrate:F.hydrate,hydrationKey:P,initialValue:G,property:P,source:Z});if(H.registerConnectedCallback(()=>{X.hydrateFromHost(),X.connectToSource()}),H.registerCleanupCallback(()=>{X.disconnectFromSource()}),F.hydrate&&$0(H))H.registerHydrationBinding(P,X);return H[P]=X,X};E(M,(H)=>{let x=$(H);H.registerConnectedCallback(()=>{if(!(H[P]instanceof N))H[P]=x})})}}function J0(F={}){return function(M,P){let $=String(P.name);return function(H){let x=typeof F.source==="function"?F.source(this):F.source??(M0(H)?H:void 0),Z=x!==void 0?F.initial:H===void 0?F.initial:H,W=F.bind??L(this);this.defineReactiveBinding($,W);let G=P0({host:this,hydrate:F.hydrate,hydrationKey:$,initialValue:Z,property:$,source:x});if(this.registerConnectedCallback(()=>{G.hydrateFromHost(),G.connectToSource()}),this.registerCleanupCallback(()=>{G.disconnectFromSource()}),F.hydrate&&$0(this))this.registerHydrationBinding($,G);return G}}}function c3(F,M){if(typeof M<"u"){if(typeof M==="object"){if(F!==void 0)throw TypeError("@signal standard decorators require an undefined target");return J0()(void 0,M)}if(F===void 0)throw TypeError("@signal legacy decorators require a host target");return Y0()(F,M)}let P=F??{};function $(H,x){if(typeof x==="object"){if(H!==void 0)throw TypeError("@signal standard decorators require an undefined target");return J0(P)(void 0,x)}if(H===void 0)throw TypeError("@signal legacy decorators require a host target");return Y0(P)(H,x)}return $}function mF(F,M){B(F,(P)=>{e(P,M,P[M],L(P))}),E(F,(P)=>{P.createReactiveField(M,P[M],{bind:L(P)})})}function dF(F,M){let P=String(M.name),$=Symbol(`@ecopages/radiant/state:${P}:initializer`);return M.addInitializer(function(){let H=this[$];this.createReactiveField(P,H,{bind:L(this),suppressInitialNotify:!0})}),function(H){return this[$]=H,H}}function a3(F,M){return Q(dF,mF,F,M)}export{d as visitControllerElements,U1 as stopControllers,a3 as state,A1 as startControllers,c3 as signal,DF as setControllerRegistrationStrategy,W1 as resolveRegisteredController,OM as replaceController,QF as registerControllerWithConfiguredStrategy,wM as registerController,j3 as querySlot,G3 as query,tP as prop,UF as parseControllerIdentifiers,uP as onUpdated,wP as onEvent,Z1 as hasRegisteredController,qP as event,G1 as enableControllerReplacementForHmr,X1 as disableControllerReplacementForHmr,$P as debounce,l1 as customElement,u1 as controller,v1 as bound,k1 as attr,Q0 as RadiantElement,WF as RadiantController,BF as ControllerRegistryRuntime,AF as CONTROLLER_REGISTRY_STATE_KEY,s as CONTROLLER_ATTRIBUTE};
2
2
 
3
- //# debugId=344C96C300FDC61F64756E2164756E21
3
+ //# debugId=870ED04436CD1C3864756E2164756E21