@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
@@ -6,7 +6,7 @@
6
6
  "import type { RadiantElementEventListener } from '../core/radiant-element';\nimport { escapeCssIdentifier } from '../tools/escape-css-identifier';\n\n/**\n * Selects which DOM tree delegated event listeners should observe.\n */\nexport type OnEventScope = 'light' | 'shadow' | 'both';\n\ntype BaseOnEventConfig = Pick<RadiantElementEventListener, 'type' | 'options'> & {\n\tscope?: OnEventScope;\n};\n\nexport type OnEventConfig = BaseOnEventConfig &\n\t(\n\t\t| {\n\t\t\t\tselector: string;\n\t\t }\n\t\t| {\n\t\t\t\tref: string;\n\t\t }\n\t\t| {\n\t\t\t\twindow: true;\n\t\t }\n\t\t| {\n\t\t\t\tdocument: true;\n\t\t }\n\t);\n\ntype DelegatedEventRoot = Element | ShadowRoot;\n\ntype EventListenerLifecycleHost = {\n\tregisterConnectedCallback(callback: () => void): void;\n\tregisterCleanupCallback(callback: () => void): void;\n\tisConnected: boolean;\n};\n\nexport type EventListenerHost =\n\t| (EventListenerLifecycleHost & Element)\n\t| (EventListenerLifecycleHost & { host: Element })\n\t| (EventListenerLifecycleHost & { element: Element });\n\nconst shadowRootListenerHooksKey = Symbol('radiant.shadowRootListenerHooks');\nconst patchedAttachShadowKey = Symbol('radiant.patchedAttachShadow');\n\ntype ShadowRootHookHost = Element & {\n\t[patchedAttachShadowKey]?: true;\n\t[shadowRootListenerHooksKey]?: Set<() => void>;\n};\n\nfunction resolveEventListenerHostElement(host: EventListenerHost): Element {\n\tif (host instanceof Element) {\n\t\treturn host;\n\t}\n\n\tif ('host' in host) {\n\t\treturn host.host;\n\t}\n\n\treturn host.element;\n}\n\nfunction isControllerEventHost(host: EventListenerHost): host is EventListenerLifecycleHost & { host: Element } {\n\treturn !(host instanceof Element);\n}\n\nfunction addDelegatedListener(\n\troot: DelegatedEventRoot,\n\tconfig: Pick<OnEventConfig, 'type' | 'options'>,\n\tselector: string,\n\tlistener: EventListener,\n): () => void {\n\tconst delegatedListener = (event: Event) => {\n\t\tif (event.target instanceof Element && event.target.matches(selector)) {\n\t\t\tlistener(event);\n\t\t}\n\t};\n\n\troot.addEventListener(config.type, delegatedListener, config.options);\n\n\treturn () => {\n\t\troot.removeEventListener(config.type, delegatedListener, config.options);\n\t};\n}\n\nfunction registerShadowRootHook(host: EventListenerHost, hook: () => void): void {\n\tconst shadowAwareHost = resolveEventListenerHostElement(host) as ShadowRootHookHost;\n\n\tif (!shadowAwareHost[shadowRootListenerHooksKey]) {\n\t\tshadowAwareHost[shadowRootListenerHooksKey] = new Set();\n\t}\n\n\tshadowAwareHost[shadowRootListenerHooksKey].add(hook);\n\n\tif (shadowAwareHost[patchedAttachShadowKey]) {\n\t\treturn;\n\t}\n\n\tconst originalAttachShadow = shadowAwareHost.attachShadow;\n\n\tshadowAwareHost.attachShadow = function patchedAttachShadow(init: ShadowRootInit): ShadowRoot {\n\t\tconst shadowRoot = originalAttachShadow.call(this, init);\n\t\tfor (const shadowRootHook of shadowAwareHost[shadowRootListenerHooksKey] ?? []) {\n\t\t\tshadowRootHook();\n\t\t}\n\t\treturn shadowRoot;\n\t};\n\n\tshadowAwareHost[patchedAttachShadowKey] = true;\n}\n\n/**\n * Subscribes to a DOM event with delegation, window, or document targeting.\n * Functional equivalent of the `@onEvent` decorator for vanilla JS usage.\n * Returns a cleanup function to remove the listener.\n * @param host The host RadiantElement.\n * @param config The event listener configuration.\n * @param callback The event handler function.\n */\nexport function createEventListener(\n\thost: EventListenerHost,\n\tconfig: OnEventConfig,\n\tcallback: (event: Event) => void,\n): () => void {\n\tif (isControllerEventHost(host) && 'scope' in config && config.scope && config.scope !== 'light') {\n\t\tthrow new Error('RadiantController event listeners only support light DOM scope.');\n\t}\n\n\tconst hostElement = resolveEventListenerHostElement(host);\n\tconst boundCallback = callback.bind(host);\n\tlet windowCleanup: (() => void) | null = null;\n\tlet documentCleanup: (() => void) | null = null;\n\tlet lightCleanup: (() => void) | null = null;\n\tlet shadowCleanup: (() => void) | null = null;\n\tlet disposed = false;\n\n\tconst detachListeners = () => {\n\t\twindowCleanup?.();\n\t\tdocumentCleanup?.();\n\t\tlightCleanup?.();\n\t\tshadowCleanup?.();\n\n\t\twindowCleanup = null;\n\t\tdocumentCleanup = null;\n\t\tlightCleanup = null;\n\t\tshadowCleanup = null;\n\t};\n\n\tconst attachListeners = () => {\n\t\tif (disposed) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ('window' in config && !windowCleanup) {\n\t\t\twindow.addEventListener(config.type, boundCallback, config.options);\n\t\t\twindowCleanup = () => {\n\t\t\t\twindow.removeEventListener(config.type, boundCallback, config.options);\n\t\t\t};\n\t\t}\n\n\t\tif ('document' in config && !documentCleanup) {\n\t\t\tdocument.addEventListener(config.type, boundCallback, config.options);\n\t\t\tdocumentCleanup = () => {\n\t\t\t\tdocument.removeEventListener(config.type, boundCallback, config.options);\n\t\t\t};\n\t\t}\n\n\t\tif ('selector' in config || 'ref' in config) {\n\t\t\tconst selector = 'selector' in config ? config.selector : `[data-ref='${escapeCssIdentifier(config.ref)}']`;\n\n\t\t\tif (config.scope !== 'shadow' && !lightCleanup) {\n\t\t\t\tlightCleanup = addDelegatedListener(hostElement, config, selector, boundCallback);\n\t\t\t}\n\n\t\t\tif (config.scope !== 'light' && hostElement.shadowRoot && !shadowCleanup) {\n\t\t\t\tshadowCleanup = addDelegatedListener(hostElement.shadowRoot, config, selector, boundCallback);\n\t\t\t}\n\t\t}\n\t};\n\n\tif ('selector' in config || 'ref' in config) {\n\t\tif (config.scope !== 'light') {\n\t\t\tregisterShadowRootHook(host, () => {\n\t\t\t\tif (host.isConnected) {\n\t\t\t\t\tattachListeners();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\thost.registerConnectedCallback(attachListeners);\n\thost.registerCleanupCallback(detachListeners);\n\n\tif (host.isConnected) {\n\t\tattachListeners();\n\t}\n\n\treturn () => {\n\t\tdisposed = true;\n\t\tdetachListeners();\n\t};\n}\n",
7
7
  "import { createEventListener, type EventListenerHost } from '../../helpers/create-event-listener';\nimport type { OnEventConfig } from '../on-event';\nimport type { Method } from '../../types';\n\n/**\n * A decorator to subscribe to an event on the target element.\n * The event listener will be automatically unsubscribed when the element is disconnected.\n *\n * Note: This decorator uses event delegation, which means it relies on event bubbling.\n * Therefore, it will not work with events that do not bubble, such as `focus`, `blur`, `load`, `unload`, `scroll`, etc.\n * For focus and blur events, consider using `focusin` and `focusout` which are similar but do bubble.\n *\n * @param eventConfig The event configuration.\n * @param eventConfig.selectors The CSS selector(s) of the target element(s).\n * @param eventConfig.ref The data-ref attribute of the target element.\n * @param eventConfig.type The type of the event to listen for.\n * @param eventConfig.options Optional. An options object that specifies characteristics about the event listener.\n */\nexport function onEvent(eventConfig: OnEventConfig) {\n\treturn function <Host extends EventListenerHost, T extends Method>(\n\t\toriginalMethod: T,\n\t\tcontext: ClassMethodDecoratorContext<Host, T>,\n\t): void {\n\t\tcontext.addInitializer(function (this: Host) {\n\t\t\tcreateEventListener(this, eventConfig, originalMethod.bind(this));\n\t\t});\n\t};\n}\n"
8
8
  ],
9
- "mappings": "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",
10
- "debugId": "F7180FEAB0EEA53964756E2164756E21",
9
+ "mappings": "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",
10
+ "debugId": "581875C1E4D6F89664756E2164756E21",
11
11
  "names": []
12
12
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:n,getOwnPropertyNames:s,getOwnPropertyDescriptor:d}=Object,p=Object.prototype.hasOwnProperty;function l(t){return this[t]}var c=(t)=>{var e=(r??=new WeakMap).get(t),o;if(e)return e;if(e=n({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function"){for(var i of s(t))if(!p.call(e,i))n(e,i,{get:l.bind(t,i),enumerable:!(o=d(t,i))||o.enumerable})}return r.set(t,e),e},r;var u=(t)=>t;function f(t,e){this[t]=u.bind(null,e)}var g=(t,e)=>{for(var o in e)n(t,o,{get:e[o],enumerable:!0,configurable:!0,set:f.bind(e,o)})};var h=(t,e)=>()=>(t&&(e=t(t=0)),e);var b=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,o)=>(typeof require<"u"?require:e)[o]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});function U(t){return function(e,o){o.addInitializer(function(){let i=e.bind(this);if(Object.defineProperty(this,o.name,{value:i,configurable:!0,writable:!0}),Array.isArray(t))for(let a of t)this.registerUpdateCallback(a,i);else if(typeof t==="string")this.registerUpdateCallback(t,i)})}}export{U as onUpdated};
1
+ function r(t){return function(i,o){o.addInitializer(function(){let e=i.bind(this);if(Object.defineProperty(this,o.name,{value:e,configurable:!0,writable:!0}),Array.isArray(t))for(let n of t)this.registerUpdateCallback(n,e);else if(typeof t==="string")this.registerUpdateCallback(t,e)})}}export{r as onUpdated};
2
2
 
3
- //# debugId=9529CE35A009321964756E2164756E21
3
+ //# debugId=CF2454C31E62AF6264756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "import type { Method } from '../../types';\n\ntype UpdatedHost = {\n\tregisterUpdateCallback(key: string, update: (...args: unknown[]) => unknown): () => void;\n};\n\nexport function onUpdated(keyOrKeys: string | string[]) {\n\treturn function <THost extends UpdatedHost, T extends Method>(\n\t\toriginalMethod: T,\n\t\tcontext: ClassMethodDecoratorContext<THost, T>,\n\t): void {\n\t\tcontext.addInitializer(function (this: THost) {\n\t\t\tconst boundMethod = originalMethod.bind(this);\n\n\t\t\tObject.defineProperty(this, context.name, {\n\t\t\t\tvalue: boundMethod,\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true,\n\t\t\t});\n\n\t\t\tif (Array.isArray(keyOrKeys)) {\n\t\t\t\tfor (const key of keyOrKeys) {\n\t\t\t\t\tthis.registerUpdateCallback(key, boundMethod);\n\t\t\t\t}\n\t\t\t} else if (typeof keyOrKeys === 'string') {\n\t\t\t\tthis.registerUpdateCallback(keyOrKeys, boundMethod);\n\t\t\t}\n\t\t});\n\t};\n}\n"
6
6
  ],
7
- "mappings": "i0BAMO,SAAS,CAAS,CAAC,EAA8B,CACvD,OAAO,QAAsD,CAC5D,EACA,EACO,CACP,EAAQ,eAAe,QAAS,EAAc,CAC7C,IAAM,EAAc,EAAe,KAAK,IAAI,EAQ5C,GANA,OAAO,eAAe,KAAM,EAAQ,KAAM,CACzC,MAAO,EACP,aAAc,GACd,SAAU,EACX,CAAC,EAEG,MAAM,QAAQ,CAAS,EAC1B,QAAW,KAAO,EACjB,KAAK,uBAAuB,EAAK,CAAW,EAEvC,QAAI,OAAO,IAAc,SAC/B,KAAK,uBAAuB,EAAW,CAAW,EAEnD",
8
- "debugId": "9529CE35A009321964756E2164756E21",
7
+ "mappings": "AAMO,SAAS,CAAS,CAAC,EAA8B,CACvD,OAAO,QAAsD,CAC5D,EACA,EACO,CACP,EAAQ,eAAe,QAAS,EAAc,CAC7C,IAAM,EAAc,EAAe,KAAK,IAAI,EAQ5C,GANA,OAAO,eAAe,KAAM,EAAQ,KAAM,CACzC,MAAO,EACP,aAAc,GACd,SAAU,EACX,CAAC,EAEG,MAAM,QAAQ,CAAS,EAC1B,QAAW,KAAO,EACjB,KAAK,uBAAuB,EAAK,CAAW,EAEvC,QAAI,OAAO,IAAc,SAC/B,KAAK,uBAAuB,EAAW,CAAW,EAEnD",
8
+ "debugId": "CF2454C31E62AF6264756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:n,getOwnPropertyNames:d,getOwnPropertyDescriptor:g}=Object,u=Object.prototype.hasOwnProperty;function T(e){return this[e]}var H=(e)=>{var m=(E??=new WeakMap).get(e),r;if(m)return m;if(m=n({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function"){for(var l of d(e))if(!u.call(m,l))n(m,l,{get:T.bind(e,l),enumerable:!(r=g(e,l))||r.enumerable})}return E.set(e,m),m},E;var b=(e)=>e;function y(e,m){this[e]=b.bind(null,m)}var j=(e,m)=>{for(var r in m)n(e,r,{get:m[r],enumerable:!0,configurable:!0,set:y.bind(m,r)})};var x=(e,m)=>()=>(e&&(m=e(e=0)),m);var C=((e)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(m,r)=>(typeof require<"u"?require:m)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});function S(e,m={}){let r=null,l,t=()=>{if(m.all)return e.getSlotElements(m.name);return e.getSlotElements(m.name)[0]??null};return{get value(){if(m.cache===!1)return t();let f=e.slotProjectionVersion??0;if(l!==f)r=t(),l=f;return r}}}function I(e={}){return function(m,r){let l=String(r.name);r.addInitializer(function(){let t=S(this,e);Object.defineProperty(this,l,{get(){return t.value},enumerable:!0,configurable:!0})})}}export{I as querySlot};
1
+ function f(m,e={}){let r=null,l,t=()=>{if(e.all)return m.getSlotElements(e.name);return m.getSlotElements(e.name)[0]??null};return{get value(){if(e.cache===!1)return t();let n=m.slotProjectionVersion??0;if(l!==n)r=t(),l=n;return r}}}function d(m={}){return function(e,r){let l=String(r.name);r.addInitializer(function(){let t=f(this,m);Object.defineProperty(this,l,{get(){return t.value},enumerable:!0,configurable:!0})})}}export{d as querySlot};
2
2
 
3
- //# debugId=466A9D60A5C69E1E64756E2164756E21
3
+ //# debugId=7AC3004E359CB93664756E2164756E21
@@ -5,7 +5,7 @@
5
5
  "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",
6
6
  "import { createQuerySlot } from '../../helpers/create-query-slot';\nimport type { QuerySlotConfig } from '../query-slot';\n\ntype SlotQueryHost = HTMLElement & {\n\tgetSlotElements<T extends Element = Element>(name?: string): T[];\n\tslotProjectionVersion?: number;\n};\n\nexport function querySlot(options: QuerySlotConfig = {}) {\n\treturn function <T extends SlotQueryHost, V extends Element | Element[] | null>(\n\t\ttarget: undefined,\n\t\tcontext: ClassFieldDecoratorContext<T, V>,\n\t) {\n\t\tvoid target;\n\t\tconst propertyName = String(context.name);\n\n\t\tcontext.addInitializer(function (this: T) {\n\t\t\tconst accessor = createQuerySlot<V>(this, options);\n\n\t\t\tObject.defineProperty(this, propertyName, {\n\t\t\t\tget() {\n\t\t\t\t\treturn accessor.value;\n\t\t\t\t},\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t});\n\t\t});\n\t};\n}\n"
7
7
  ],
8
- "mappings": "i0BAoBO,SAAS,CAAsE,CACrF,EACA,EAA2B,CAAC,EACP,CACrB,IAAI,EAAmB,KACnB,EAEE,EAAe,IAAgB,CACpC,GAAI,EAAQ,IACX,OAAO,EAAK,gBAAgB,EAAQ,IAAI,EAEzC,OAAQ,EAAK,gBAAgB,EAAQ,IAAI,EAAE,IAAM,MAGlD,MAAO,IACF,MAAK,EAAa,CACrB,GAAI,EAAQ,QAAU,GACrB,OAAO,EAAa,EAGrB,IAAM,EAAkB,EAAuD,uBAAyB,EAExG,GAAI,IAAkB,EACrB,EAAS,EAAa,EACtB,EAAgB,EAGjB,OAAO,EAET,ECzCM,SAAS,CAAS,CAAC,EAA2B,CAAC,EAAG,CACxD,OAAO,QAAwE,CAC9E,EACA,EACC,CAED,IAAM,EAAe,OAAO,EAAQ,IAAI,EAExC,EAAQ,eAAe,QAAS,EAAU,CACzC,IAAM,EAAW,EAAmB,KAAM,CAAO,EAEjD,OAAO,eAAe,KAAM,EAAc,CACzC,GAAG,EAAG,CACL,OAAO,EAAS,OAEjB,WAAY,GACZ,aAAc,EACf,CAAC,EACD",
9
- "debugId": "466A9D60A5C69E1E64756E2164756E21",
8
+ "mappings": "AAoBO,SAAS,CAAsE,CACrF,EACA,EAA2B,CAAC,EACP,CACrB,IAAI,EAAmB,KACnB,EAEE,EAAe,IAAgB,CACpC,GAAI,EAAQ,IACX,OAAO,EAAK,gBAAgB,EAAQ,IAAI,EAEzC,OAAQ,EAAK,gBAAgB,EAAQ,IAAI,EAAE,IAAM,MAGlD,MAAO,IACF,MAAK,EAAa,CACrB,GAAI,EAAQ,QAAU,GACrB,OAAO,EAAa,EAGrB,IAAM,EAAkB,EAAuD,uBAAyB,EAExG,GAAI,IAAkB,EACrB,EAAS,EAAa,EACtB,EAAgB,EAGjB,OAAO,EAET,ECzCM,SAAS,CAAS,CAAC,EAA2B,CAAC,EAAG,CACxD,OAAO,QAAwE,CAC9E,EACA,EACC,CAED,IAAM,EAAe,OAAO,EAAQ,IAAI,EAExC,EAAQ,eAAe,QAAS,EAAU,CACzC,IAAM,EAAW,EAAmB,KAAM,CAAO,EAEjD,OAAO,eAAe,KAAM,EAAc,CACzC,GAAG,EAAG,CACL,OAAO,EAAS,OAEjB,WAAY,GACZ,aAAc,EACf,CAAC,EACD",
9
+ "debugId": "7AC3004E359CB93664756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:j,getOwnPropertyNames:N,getOwnPropertyDescriptor:P}=Object,y=Object.prototype.hasOwnProperty;function z(f){return this[f]}var L=(f)=>{var m=(H??=new WeakMap).get(f),V;if(m)return m;if(m=j({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function"){for(var b of N(f))if(!y.call(m,b))j(m,b,{get:z.bind(f,b),enumerable:!(V=P(f,b))||V.enumerable})}return H.set(f,m),m},H;var A=(f)=>f;function B(f,m){this[f]=A.bind(null,m)}var O=(f,m)=>{for(var V in m)j(f,V,{get:m[V],enumerable:!0,configurable:!0,set:B.bind(m,V)})};var U=(f,m)=>()=>(f&&(m=f(f=0)),m);var W=((f)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(f,{get:(m,V)=>(typeof require<"u"?require:m)[V]}):f)(function(f){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+f+'" is not supported')});function D(f){return!(f instanceof Element)}function F(f){return"shadowRoot"in f?f.shadowRoot??null:null}function G(f){return f instanceof Element?f:f.host}function K(f,m="light"){let V=F(f);if(m==="shadow")return V?[V]:[];if(m==="both")return V?[f,V]:[f];return[f]}function I(f,m){if(D(f)&&m.scope&&m.scope!=="light")throw Error("RadiantController queries only support light DOM scope.");let V=G(f),b="selector"in m?m.selector:`[data-ref="${m.ref}"]`,E=null,u=()=>{let x=K(V,m.scope);if(m.all)return x.flatMap((T)=>Array.from(T.querySelectorAll(b)));for(let T of x){let C=T.querySelector(b);if(C)return C}return null};return{get value(){if(m.cache){if(E===null||m.all&&Array.isArray(E)&&!E.length)E=u();return E}return u()}}}function _(f){return function(m,V){let b=String(V.name);V.addInitializer(function(){let E=I(this,f);Object.defineProperty(this,b,{get(){return E.value},enumerable:!0,configurable:!0})})}}export{_ as query};
1
+ function H(f){return!(f instanceof Element)}function I(f){return"shadowRoot"in f?f.shadowRoot??null:null}function N(f){return f instanceof Element?f:f.host}function P(f,m="light"){let V=I(f);if(m==="shadow")return V?[V]:[];if(m==="both")return V?[f,V]:[f];return[f]}function C(f,m){if(H(f)&&m.scope&&m.scope!=="light")throw Error("RadiantController queries only support light DOM scope.");let V=N(f),E="selector"in m?m.selector:`[data-ref="${m.ref}"]`,b=null,j=()=>{let u=P(V,m.scope);if(m.all)return u.flatMap((T)=>Array.from(T.querySelectorAll(E)));for(let T of u){let x=T.querySelector(E);if(x)return x}return null};return{get value(){if(m.cache){if(b===null||m.all&&Array.isArray(b)&&!b.length)b=j();return b}return j()}}}function A(f){return function(m,V){let E=String(V.name);V.addInitializer(function(){let b=C(this,f);Object.defineProperty(this,E,{get(){return b.value},enumerable:!0,configurable:!0})})}}export{A as query};
2
2
 
3
- //# debugId=97A854DFEC25C99A64756E2164756E21
3
+ //# debugId=9D0829EE92A59C8064756E2164756E21
@@ -5,7 +5,7 @@
5
5
  "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",
6
6
  "import { createQuery, type QueryHostTarget } from '../../helpers/create-query';\nimport type { QueryConfig } from '../query';\n\nexport function query(options: QueryConfig) {\n\treturn function <T extends QueryHostTarget, V extends Element | Element[]>(\n\t\ttarget: undefined,\n\t\tcontext: ClassFieldDecoratorContext<T, V>,\n\t) {\n\t\tvoid target;\n\t\tconst propertyName = String(context.name);\n\n\t\tcontext.addInitializer(function (this: T) {\n\t\t\tconst accessor = createQuery<V>(this, options);\n\n\t\t\tObject.defineProperty(this, propertyName, {\n\t\t\t\tget() {\n\t\t\t\t\treturn accessor.value;\n\t\t\t\t},\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t});\n\t\t});\n\t};\n}\n"
7
7
  ],
8
- "mappings": "i0BAyBA,SAAS,CAAuB,CAAC,EAAsD,CACtF,MAAO,EAAE,aAAkB,SAG5B,SAAS,CAAiB,CAAC,EAAkC,CAC5D,MAAO,eAAgB,EAAS,EAAsD,YAAc,KAAQ,KAUtG,SAAS,CAAgB,CAAC,EAAkC,CAClE,OAAO,aAAkB,QAAU,EAAS,EAAO,KAGpD,SAAS,CAAa,CAAC,EAAe,EAAoB,QAAsB,CAC/E,IAAM,EAAa,EAAkB,CAAI,EAEzC,GAAI,IAAU,SACb,OAAO,EAAa,CAAC,CAAU,EAAI,CAAC,EAGrC,GAAI,IAAU,OACb,OAAO,EAAa,CAAC,EAAM,CAAU,EAAI,CAAC,CAAI,EAG/C,MAAO,CAAC,CAAI,EASN,SAAS,CAAoD,CACnE,EACA,EACiB,CACjB,GAAI,EAAwB,CAAM,GAAK,EAAQ,OAAS,EAAQ,QAAU,QACzE,MAAU,MAAM,yDAAyD,EAG1E,IAAM,EAAO,EAAiB,CAAM,EAC9B,EAAW,aAAc,EAAU,EAAQ,SAAW,cAAc,EAAQ,QAC9E,EAAmB,KAEjB,EAAe,IAAgB,CACpC,IAAM,EAAQ,EAAc,EAAM,EAAQ,KAAK,EAE/C,GAAI,EAAQ,IACX,OAAO,EAAM,QAAQ,CAAC,IAAS,MAAM,KAAK,EAAK,iBAAiB,CAAQ,CAAC,CAAC,EAG3E,QAAW,KAAQ,EAAO,CACzB,IAAM,EAAQ,EAAK,cAAc,CAAQ,EACzC,GAAI,EACH,OAAO,EAIT,OAAO,MAGR,MAAO,IACF,MAAK,EAAa,CACrB,GAAI,EAAQ,MAAO,CAClB,GAAI,IAAW,MAAS,EAAQ,KAAO,MAAM,QAAQ,CAAM,GAAK,CAAC,EAAO,OACvE,EAAS,EAAa,EAEvB,OAAO,EAER,OAAO,EAAa,EAEtB,ECpGM,SAAS,CAAK,CAAC,EAAsB,CAC3C,OAAO,QAAmE,CACzE,EACA,EACC,CAED,IAAM,EAAe,OAAO,EAAQ,IAAI,EAExC,EAAQ,eAAe,QAAS,EAAU,CACzC,IAAM,EAAW,EAAe,KAAM,CAAO,EAE7C,OAAO,eAAe,KAAM,EAAc,CACzC,GAAG,EAAG,CACL,OAAO,EAAS,OAEjB,WAAY,GACZ,aAAc,EACf,CAAC,EACD",
9
- "debugId": "97A854DFEC25C99A64756E2164756E21",
8
+ "mappings": "AAyBA,SAAS,CAAuB,CAAC,EAAsD,CACtF,MAAO,EAAE,aAAkB,SAG5B,SAAS,CAAiB,CAAC,EAAkC,CAC5D,MAAO,eAAgB,EAAS,EAAsD,YAAc,KAAQ,KAUtG,SAAS,CAAgB,CAAC,EAAkC,CAClE,OAAO,aAAkB,QAAU,EAAS,EAAO,KAGpD,SAAS,CAAa,CAAC,EAAe,EAAoB,QAAsB,CAC/E,IAAM,EAAa,EAAkB,CAAI,EAEzC,GAAI,IAAU,SACb,OAAO,EAAa,CAAC,CAAU,EAAI,CAAC,EAGrC,GAAI,IAAU,OACb,OAAO,EAAa,CAAC,EAAM,CAAU,EAAI,CAAC,CAAI,EAG/C,MAAO,CAAC,CAAI,EASN,SAAS,CAAoD,CACnE,EACA,EACiB,CACjB,GAAI,EAAwB,CAAM,GAAK,EAAQ,OAAS,EAAQ,QAAU,QACzE,MAAU,MAAM,yDAAyD,EAG1E,IAAM,EAAO,EAAiB,CAAM,EAC9B,EAAW,aAAc,EAAU,EAAQ,SAAW,cAAc,EAAQ,QAC9E,EAAmB,KAEjB,EAAe,IAAgB,CACpC,IAAM,EAAQ,EAAc,EAAM,EAAQ,KAAK,EAE/C,GAAI,EAAQ,IACX,OAAO,EAAM,QAAQ,CAAC,IAAS,MAAM,KAAK,EAAK,iBAAiB,CAAQ,CAAC,CAAC,EAG3E,QAAW,KAAQ,EAAO,CACzB,IAAM,EAAQ,EAAK,cAAc,CAAQ,EACzC,GAAI,EACH,OAAO,EAIT,OAAO,MAGR,MAAO,IACF,MAAK,EAAa,CACrB,GAAI,EAAQ,MAAO,CAClB,GAAI,IAAW,MAAS,EAAQ,KAAO,MAAM,QAAQ,CAAM,GAAK,CAAC,EAAO,OACvE,EAAS,EAAa,EAEvB,OAAO,EAER,OAAO,EAAa,EAEtB,ECpGM,SAAS,CAAK,CAAC,EAAsB,CAC3C,OAAO,QAAmE,CACzE,EACA,EACC,CAED,IAAM,EAAe,OAAO,EAAQ,IAAI,EAExC,EAAQ,eAAe,QAAS,EAAU,CACzC,IAAM,EAAW,EAAe,KAAM,CAAO,EAE7C,OAAO,eAAe,KAAM,EAAc,CACzC,GAAG,EAAG,CACL,OAAO,EAAS,OAEjB,WAAY,GACZ,aAAc,EACf,CAAC,EACD",
9
+ "debugId": "9D0829EE92A59C8064756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:n,getOwnPropertyNames:c,getOwnPropertyDescriptor:d}=Object,u=Object.prototype.hasOwnProperty;function p(e){return this[e]}var f=(e)=>{var t=(s??=new WeakMap).get(e),i;if(t)return t;if(t=n({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function"){for(var o of c(e))if(!u.call(t,o))n(t,o,{get:p.bind(e,o),enumerable:!(i=d(e,o))||i.enumerable})}return s.set(e,t),t},s;var l=(e)=>e;function v(e,t){this[e]=l.bind(null,t)}var m=(e,t)=>{for(var i in t)n(e,i,{get:t[i],enumerable:!0,configurable:!0,set:v.bind(t,i)})};var y=(e,t)=>()=>(e&&(t=e(e=0)),t);var R=((e)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,i)=>(typeof require<"u"?require:t)[i]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});function a(e){return e.shouldAutoBindReactiveMembers?.()??!1}function V(e,t){let i=String(t.name),o=Symbol(`@ecopages/radiant/state:${i}:initializer`);return t.addInitializer(function(){let r=this[o];this.createReactiveField(i,r,{bind:a(this),suppressInitialNotify:!0})}),function(r){return this[o]=r,r}}export{V as reactiveField};
1
+ function n(t){return t.shouldAutoBindReactiveMembers?.()??!1}function c(t,i){let o=String(i.name),r=Symbol(`@ecopages/radiant/state:${o}:initializer`);return i.addInitializer(function(){let e=this[r];this.createReactiveField(o,e,{bind:n(this),suppressInitialNotify:!0})}),function(e){return this[r]=e,e}}export{c as reactiveField};
2
2
 
3
- //# debugId=777FC839589F09A364756E2164756E21
3
+ //# debugId=00F50B431D5B5B2164756E2164756E21
@@ -5,7 +5,7 @@
5
5
  "import type { ReactiveBindingOption } from '../../core/reactive-prop-core';\nimport type { ReactiveHostLike } from '../../core/reactive-host';\n\ntype AutoBindHost = ReactiveHostLike & {\n\tshouldAutoBindReactiveMembers?: () => boolean;\n};\n\nexport function resolveHostAutoBind(host: AutoBindHost): ReactiveBindingOption {\n\treturn host.shouldAutoBindReactiveMembers?.() ?? false;\n}\n",
6
6
  "import type { ReactiveHostLike } from '../../core/reactive-host';\nimport { resolveHostAutoBind } from '../shared/auto-bind';\n\nexport function reactiveField<T extends ReactiveHostLike, V>(_: undefined, context: ClassFieldDecoratorContext<T, V>) {\n\tconst contextName = String(context.name);\n\tconst initializerValueKey = Symbol(`@ecopages/radiant/state:${contextName}:initializer`);\n\n\tcontext.addInitializer(function (this: T) {\n\t\tconst initializerValue = (this as Record<PropertyKey, V | undefined>)[initializerValueKey];\n\t\tthis.createReactiveField(contextName, initializerValue as V, {\n\t\t\tbind: resolveHostAutoBind(this),\n\t\t\tsuppressInitialNotify: true,\n\t\t});\n\t});\n\n\treturn function (this: T, value: V) {\n\t\t(this as Record<PropertyKey, V | undefined>)[initializerValueKey] = value;\n\t\treturn value;\n\t};\n}\n"
7
7
  ],
8
- "mappings": "i0BAOO,SAAS,CAAmB,CAAC,EAA2C,CAC9E,OAAO,EAAK,gCAAgC,GAAK,GCL3C,SAAS,CAA4C,CAAC,EAAc,EAA2C,CACrH,IAAM,EAAc,OAAO,EAAQ,IAAI,EACjC,EAAsB,OAAO,2BAA2B,eAAyB,EAUvF,OARA,EAAQ,eAAe,QAAS,EAAU,CACzC,IAAM,EAAoB,KAA4C,GACtE,KAAK,oBAAoB,EAAa,EAAuB,CAC5D,KAAM,EAAoB,IAAI,EAC9B,sBAAuB,EACxB,CAAC,EACD,EAEM,QAAS,CAAU,EAAU,CAEnC,OADC,KAA4C,GAAuB,EAC7D",
9
- "debugId": "777FC839589F09A364756E2164756E21",
8
+ "mappings": "AAOO,SAAS,CAAmB,CAAC,EAA2C,CAC9E,OAAO,EAAK,gCAAgC,GAAK,GCL3C,SAAS,CAA4C,CAAC,EAAc,EAA2C,CACrH,IAAM,EAAc,OAAO,EAAQ,IAAI,EACjC,EAAsB,OAAO,2BAA2B,eAAyB,EAUvF,OARA,EAAQ,eAAe,QAAS,EAAU,CACzC,IAAM,EAAoB,KAA4C,GACtE,KAAK,oBAAoB,EAAa,EAAuB,CAC5D,KAAM,EAAoB,IAAI,EAC9B,sBAAuB,EACxB,CAAC,EACD,EAEM,QAAS,CAAU,EAAU,CAEnC,OADC,KAA4C,GAAuB,EAC7D",
9
+ "debugId": "00F50B431D5B5B2164756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:D,getOwnPropertyNames:$,getOwnPropertyDescriptor:x}=Object,B=Object.prototype.hasOwnProperty;function U(o){return this[o]}var K=(o)=>{var R=(k??=new WeakMap).get(o),n;if(R)return R;if(R=D({},"__esModule",{value:!0}),o&&typeof o==="object"||typeof o==="function"){for(var P of $(o))if(!B.call(R,P))D(R,P,{get:U.bind(o,P),enumerable:!(n=x(o,P))||n.enumerable})}return k.set(o,R),R},k;var m=(o)=>o;function h(o,R){this[o]=m.bind(null,R)}var i=(o,R)=>{for(var n in R)D(o,n,{get:R[n],enumerable:!0,configurable:!0,set:h.bind(R,n)})};var b=(o,R)=>()=>(o&&(R=o(o=0)),R);var f=((o)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(o,{get:(R,n)=>(typeof require<"u"?require:R)[n]}):o)(function(o){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+o+'" is not supported')});var _=Symbol.for("@ecopages/radiant.reactivePropDefinitions");function q(o,R,n){let P=o.constructor,c=P[_]??[];if(c.some((I)=>I.name===R))return;c.push({name:R,options:n}),P[_]=c}function p(o){return(o.constructor[_]??[]).slice()}function L(o){switch(o){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function z(o){switch(typeof o){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(o))return"array";if(Object.prototype.toString.call(o)==="[object Object]")return"object"}function J(o){switch(o){case Number:return 0;case String:return"";case Boolean:return!1;default:return null}}function S(o){try{return JSON.parse(o)}catch{throw TypeError("Invalid JSON string")}}var g={array(o){let R=S(o);if(!Array.isArray(R))throw TypeError(`Expected an array but got a value of type "${typeof R}"`);return R},boolean(o){return!(o==="0"||String(o).toLowerCase()==="false")},number(o){return Number(o.replace(/_/g,""))},object(o){let R=JSON.parse(o);if(R===null||typeof R!=="object"||Array.isArray(R))throw TypeError(`expected value of type "object" but instead got value "${o}" of type "${z(R)}"`);return R},string(o){return o}},G={default:M,array:H,object:H};function H(o){return JSON.stringify(o)}function M(o){return`${o}`}function C(o,R){let n=L(R);if(!n)throw TypeError(`[radiant-element] Unknown type "${R}"`);return g[n](o)}function Q(o,R){let n=L(R);if(!n)throw TypeError(`[radiant-element] Unknown type "${R}"`);return(G[n]??G.default??M)(o)}function j(o){return typeof o==="boolean"}function T(o){return typeof o==="number"}function A(o){return typeof o==="string"}function N(o){return Array.isArray(o)}function w(o){return typeof o==="object"&&!Array.isArray(o)&&o!==null}function X(o,R){switch(o){case Boolean:return j(R);case Number:return T(R);case String:return A(R);case Array:return N(R);case Object:return w(R);default:return!1}}var V=(o,R,n,P)=>{if(R===Boolean){let I=o.getAttribute(n);if(I===null)return P;return I===""?!0:C(I,R)}let c=o.getAttribute(n);return c!==null?C(c,R):P??J(R)};function Y(o,R){if(R!==void 0&&!X(o,R))throw Error(`defaultValue does not match the expected type for ${o.name}`)}function l(o,R,n,P){return{type:n,name:o,initialValue:P,attribute:R,converter:{fromAttribute:(c)=>C(c,n),toAttribute:(c)=>Q(c,n)}}}function e({type:o,attribute:R,reflect:n,defaultValue:P,bind:c}){return Y(o,P),function(I,O){let E=String(O.name),W=R??E,F=Symbol(`@ecopages/radiant/reactive-prop:${E}:initializer`);return O.addInitializer(function(){let s=this[F],Z=P===void 0?s:P;q(this,E,{type:o,reflect:n,attribute:W,defaultValue:P,bind:c}),this.createReactiveProp(E,{type:o,reflect:n,attribute:W,defaultValue:Z,bind:c})}),function(s){return this[F]=s,s}}}export{e as reactiveProp};
1
+ var D=Symbol.for("@ecopages/radiant.reactivePropDefinitions");function F(o,R,n){let P=o.constructor,c=P[D]??[];if(c.some((I)=>I.name===R))return;c.push({name:R,options:n}),P[D]=c}function J(o){return(o.constructor[D]??[]).slice()}function G(o){switch(o){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function Y(o){switch(typeof o){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(o))return"array";if(Object.prototype.toString.call(o)==="[object Object]")return"object"}function Z(o){switch(o){case Number:return 0;case String:return"";case Boolean:return!1;default:return null}}function $(o){try{return JSON.parse(o)}catch{throw TypeError("Invalid JSON string")}}var x={array(o){let R=$(o);if(!Array.isArray(R))throw TypeError(`Expected an array but got a value of type "${typeof R}"`);return R},boolean(o){return!(o==="0"||String(o).toLowerCase()==="false")},number(o){return Number(o.replace(/_/g,""))},object(o){let R=JSON.parse(o);if(R===null||typeof R!=="object"||Array.isArray(R))throw TypeError(`expected value of type "object" but instead got value "${o}" of type "${Y(R)}"`);return R},string(o){return o}},k={default:H,array:q,object:q};function q(o){return JSON.stringify(o)}function H(o){return`${o}`}function C(o,R){let n=G(R);if(!n)throw TypeError(`[radiant-element] Unknown type "${R}"`);return x[n](o)}function L(o,R){let n=G(R);if(!n)throw TypeError(`[radiant-element] Unknown type "${R}"`);return(k[n]??k.default??H)(o)}function B(o){return typeof o==="boolean"}function U(o){return typeof o==="number"}function m(o){return typeof o==="string"}function h(o){return Array.isArray(o)}function z(o){return typeof o==="object"&&!Array.isArray(o)&&o!==null}function M(o,R){switch(o){case Boolean:return B(R);case Number:return U(R);case String:return m(R);case Array:return h(R);case Object:return z(R);default:return!1}}var g=(o,R,n,P)=>{if(R===Boolean){let I=o.getAttribute(n);if(I===null)return P;return I===""?!0:C(I,R)}let c=o.getAttribute(n);return c!==null?C(c,R):P??Z(R)};function Q(o,R){if(R!==void 0&&!M(o,R))throw Error(`defaultValue does not match the expected type for ${o.name}`)}function A(o,R,n,P){return{type:n,name:o,initialValue:P,attribute:R,converter:{fromAttribute:(c)=>C(c,n),toAttribute:(c)=>L(c,n)}}}function i({type:o,attribute:R,reflect:n,defaultValue:P,bind:c}){return Q(o,P),function(I,_){let E=String(_.name),O=R??E,W=Symbol(`@ecopages/radiant/reactive-prop:${E}:initializer`);return _.addInitializer(function(){let s=this[W],X=P===void 0?s:P;F(this,E,{type:o,reflect:n,attribute:O,defaultValue:P,bind:c}),this.createReactiveProp(E,{type:o,reflect:n,attribute:O,defaultValue:X,bind:c})}),function(s){return this[W]=s,s}}}export{i as reactiveProp};
2
2
 
3
- //# debugId=BA2727CC6F2C320D64756E2164756E21
3
+ //# debugId=F8AD9ADD7F29228264756E2164756E21
@@ -7,7 +7,7 @@
7
7
  "import type { JsxBindingSourceValue, JsxRenderable, SubscribableJsxValueWithAccess } from '@ecopages/jsx';\nimport type { ReactiveState } from './reactivity-contract';\nimport {\n\ttype AttributeTypeConstant,\n\ttype ReadAttributeValueReturnType,\n\ttype WriteAttributeValueReturnType,\n\tisValueOfType,\n\treadAttributeValue,\n\twriteAttributeValue,\n} from '../utils/attribute-utils';\n\ntype StringPropertyKey<Value> = Extract<keyof Value, string>;\n\nexport interface ReactiveProperty<T = unknown> {\n\ttype: AttributeTypeConstant;\n\tinitialValue?: T;\n\tname: string;\n\tattribute: string;\n\tconverter: {\n\t\tfromAttribute: (value: string) => ReadAttributeValueReturnType;\n\t\ttoAttribute: (value: any) => WriteAttributeValueReturnType;\n\t};\n}\n\nexport type ReactivePropertyOptions<T> = {\n\ttype: AttributeTypeConstant;\n\treflect?: boolean;\n\tattribute?: string;\n\tdefaultValue?: T;\n\tbind?: boolean | string;\n};\n\nexport type ReactiveBindingOption = boolean | string;\n\nexport type ReactiveFieldOptions = {\n\tbind?: ReactiveBindingOption;\n\t/** When true, skip the initial notifyUpdate emitted while defining the field. */\n\tsuppressInitialNotify?: boolean;\n};\n\nexport type ReactiveBindingValue<\n\tHost extends object,\n\tProperty extends StringPropertyKey<Host>,\n> = Host[Property] extends JsxBindingSourceValue ? Host[Property] : JsxRenderable;\n\nexport type ReactiveBindings<Bindings extends object> = {\n\treadonly [Property in StringPropertyKey<Bindings>]: SubscribableJsxValueWithAccess<\n\t\tReactiveBindingValue<Bindings, Property>\n\t>;\n};\n\nexport type ReactiveAccessorDefinition<T> = {\n\tbind?: ReactiveBindingOption;\n\tsignal: ReactiveState<T>;\n\tonSet?: (value: T) => void;\n};\n\nexport function validateReactivePropertyDefault(type: AttributeTypeConstant, defaultValue: unknown): void {\n\tif (defaultValue !== undefined && !isValueOfType(type, defaultValue)) {\n\t\tthrow new Error(`defaultValue does not match the expected type for ${type.name}`);\n\t}\n}\n\nexport function createReactivePropertyMapping<T>(\n\tpropertyName: string,\n\tattributeKey: string,\n\ttype: AttributeTypeConstant,\n\tinitialValue: T | undefined,\n): ReactiveProperty<T> {\n\treturn {\n\t\ttype,\n\t\tname: propertyName,\n\t\tinitialValue,\n\t\tattribute: attributeKey,\n\t\tconverter: {\n\t\t\tfromAttribute: (value) => readAttributeValue(value, type),\n\t\t\ttoAttribute: (value) => writeAttributeValue(value, type),\n\t\t},\n\t};\n}\n",
8
8
  "import { type ReactivePropertyOptions, validateReactivePropertyDefault } from '../../core/reactive-prop-core.js';\nimport { registerReactivePropDefinition } from '../../core/reactive-prop-metadata';\n\ntype ReactivePropHost<P> = {\n\tcreateReactiveProp(propertyName: string, options: ReactivePropertyOptions<P>): void;\n};\n\n/**\n * Standard-decorator implementation for `@prop(...)`.\n *\n * The decorated host is expected to expose `createReactiveProp(...)`, which\n * lets both `RadiantElement` and `RadiantController` share the same public\n * decorator while keeping their runtime channels different.\n */\nexport function reactiveProp<P = unknown>({\n\ttype,\n\tattribute,\n\treflect,\n\tdefaultValue,\n\tbind,\n}: ReactivePropertyOptions<P>) {\n\tvalidateReactivePropertyDefault(type, defaultValue);\n\treturn function <T extends ReactivePropHost<P>, V>(_: undefined, context: ClassFieldDecoratorContext<T, V>) {\n\t\tconst propertyName = String(context.name);\n\t\tconst attributeKey = attribute ?? propertyName;\n\t\tconst initializerValueKey = Symbol(`@ecopages/radiant/reactive-prop:${propertyName}:initializer`);\n\n\t\tcontext.addInitializer(function (this: T) {\n\t\t\tconst initializerValue = (this as T & Record<PropertyKey, V | undefined>)[initializerValueKey];\n\t\t\tconst resolvedDefaultValue = (defaultValue === undefined ? initializerValue : defaultValue) as\n\t\t\t\tP | undefined;\n\n\t\t\tregisterReactivePropDefinition(this, propertyName, {\n\t\t\t\ttype,\n\t\t\t\treflect,\n\t\t\t\tattribute: attributeKey,\n\t\t\t\tdefaultValue,\n\t\t\t\tbind,\n\t\t\t});\n\t\t\tthis.createReactiveProp(propertyName, {\n\t\t\t\ttype,\n\t\t\t\treflect,\n\t\t\t\tattribute: attributeKey,\n\t\t\t\tdefaultValue: resolvedDefaultValue,\n\t\t\t\tbind,\n\t\t\t});\n\t\t});\n\n\t\treturn function (this: T, value: V) {\n\t\t\t(this as Record<PropertyKey, V | undefined>)[initializerValueKey] = value;\n\t\t\treturn value;\n\t\t};\n\t};\n}\n"
9
9
  ],
10
- "mappings": "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",
11
- "debugId": "BA2727CC6F2C320D64756E2164756E21",
10
+ "mappings": "AAEA,IAAM,EAA4B,OAAO,IAAI,2CAA2C,EAWjF,SAAS,CAA8B,CAC7C,EACA,EACA,EACO,CACP,IAAM,EAAc,EAAO,YACrB,EAAc,EAAY,IAA8B,CAAC,EAE/D,GAAI,EAAY,KAAK,CAAC,IAAe,EAAW,OAAS,CAAY,EACpE,OAGD,EAAY,KAAK,CAAE,KAAM,EAAc,SAAQ,CAAC,EAChD,EAAY,GAA6B,EAGnC,SAAS,CAA0B,CAAC,EAA0C,CACpF,OAAS,EAAO,YAAoD,IAA8B,CAAC,GAAG,MAAM,EClBtG,SAAS,CAA0B,CAAC,EAAkC,CAC5E,OAAQ,QACF,MACJ,MAAO,aACH,QACJ,MAAO,eACH,OACJ,MAAO,cACH,OACJ,MAAO,cACH,OACJ,MAAO,UAUH,SAAS,CAAyB,CAAC,EAAqC,CAC9E,OAAQ,OAAO,OACT,UACJ,MAAO,cACH,SACJ,MAAO,aACH,SACJ,MAAO,SAGT,GAAI,MAAM,QAAQ,CAAY,EAAG,MAAO,QACxC,GAAI,OAAO,UAAU,SAAS,KAAK,CAAY,IAAM,kBAAmB,MAAO,SASzE,SAAS,CAAmB,CAAC,EAAsC,CACzE,OAAQ,QACF,OACJ,MAAO,QACH,OACJ,MAAO,QACH,QACJ,MAAO,WAEP,OAAO,MASV,SAAS,CAAY,CAAC,EAAkB,CACvC,GAAI,CACH,OAAO,KAAK,MAAM,CAAK,EACtB,KAAM,CACP,MAAU,UAAU,qBAAqB,GAQ3C,IAAM,EAAsC,CAC3C,KAAK,CAAC,EAA0B,CAC/B,IAAM,EAAQ,EAAqB,CAAK,EACxC,GAAI,CAAC,MAAM,QAAQ,CAAK,EACvB,MAAU,UAAU,8CAA8C,OAAO,IAAQ,EAElF,OAAO,GAGR,OAAO,CAAC,EAAwB,CAC/B,MAAO,EAAE,IAAU,KAAO,OAAO,CAAK,EAAE,YAAY,IAAM,UAG3D,MAAM,CAAC,EAAuB,CAE7B,OADe,OAAO,EAAM,QAAQ,KAAM,EAAE,CAAC,GAI9C,MAAM,CAAC,EAAuB,CAC7B,IAAM,EAAS,KAAK,MAAM,CAAK,EAC/B,GAAI,IAAW,MAAQ,OAAO,IAAW,UAAY,MAAM,QAAQ,CAAM,EACxE,MAAU,UACT,0DAA0D,eAAmB,EAC5E,CACD,IACD,EAED,OAAO,GAGR,MAAM,CAAC,EAAuB,CAC7B,OAAO,EAET,EAQM,EAAsC,CAC3C,QAAS,EACT,MAAO,EACP,OAAQ,CACT,EAEA,SAAS,CAAS,CAAC,EAAgB,CAClC,OAAO,KAAK,UAAU,CAAK,EAG5B,SAAS,CAAW,CAAC,EAAgB,CACpC,MAAO,GAAG,IAUJ,SAAS,CAAkB,CAAC,EAAe,EAA6B,CAC9E,IAAM,EAAa,EAA2B,CAAI,EAClD,GAAI,CAAC,EAAY,MAAU,UAAU,mCAAmC,IAAO,EAC/E,OAAO,EAAQ,GAAa,CAAK,EAa3B,SAAS,CAAmB,CAAC,EAAgB,EAA6B,CAChF,IAAM,EAAa,EAA2B,CAAI,EAClD,GAAI,CAAC,EAAY,MAAU,UAAU,mCAAmC,IAAO,EAE/E,OADuB,EAAQ,IAAe,EAAQ,SAAW,GACnD,CAAK,EAQpB,SAAS,CAAS,CAAC,EAAkC,CACpD,OAAO,OAAO,IAAU,UAGzB,SAAS,CAAQ,CAAC,EAAiC,CAClD,OAAO,OAAO,IAAU,SAGzB,SAAS,CAAQ,CAAC,EAAiC,CAClD,OAAO,OAAO,IAAU,SAGzB,SAAS,CAAO,CAAC,EAAyC,CACzD,OAAO,MAAM,QAAQ,CAAK,EAG3B,SAAS,CAAQ,CAAC,EAAiC,CAClD,OAAO,OAAO,IAAU,UAAY,CAAC,MAAM,QAAQ,CAAK,GAAK,IAAU,KAMjE,SAAS,CAAa,CAAC,EAA6B,EAAgC,CAC1F,OAAQ,QACF,QACJ,OAAO,EAAU,CAAY,OACzB,OACJ,OAAO,EAAS,CAAY,OACxB,OACJ,OAAO,EAAS,CAAY,OACxB,MACJ,OAAO,EAAQ,CAAY,OACvB,OACJ,OAAO,EAAS,CAAY,UAE5B,MAAO,IAIH,IAAM,EAAkB,CAC9B,EACA,EACA,EACA,IACI,CACJ,GAAI,IAAS,QAAS,CACrB,IAAM,EAAiB,EAAO,aAAa,CAAY,EACvD,GAAI,IAAmB,KACtB,OAAO,EAGR,OAAO,IAAmB,GAAK,GAAO,EAAmB,EAAgB,CAAI,EAG9E,IAAM,EAAiB,EAAO,aAAa,CAAY,EACvD,OAAO,IAAmB,KACvB,EAAmB,EAAgB,CAAI,EACtC,GAAiB,EAAoB,CAAI,GC9KvC,SAAS,CAA+B,CAAC,EAA6B,EAA6B,CACzG,GAAI,IAAiB,QAAa,CAAC,EAAc,EAAM,CAAY,EAClE,MAAU,MAAM,qDAAqD,EAAK,MAAM,EAI3E,SAAS,CAAgC,CAC/C,EACA,EACA,EACA,EACsB,CACtB,MAAO,CACN,OACA,KAAM,EACN,eACA,UAAW,EACX,UAAW,CACV,cAAe,CAAC,IAAU,EAAmB,EAAO,CAAI,EACxD,YAAa,CAAC,IAAU,EAAoB,EAAO,CAAI,CACxD,CACD,EChEM,SAAS,CAAyB,EACxC,OACA,YACA,UACA,eACA,QAC8B,CAE9B,OADA,EAAgC,EAAM,CAAY,EAC3C,QAA2C,CAAC,EAAc,EAA2C,CAC3G,IAAM,EAAe,OAAO,EAAQ,IAAI,EAClC,EAAe,GAAa,EAC5B,EAAsB,OAAO,mCAAmC,eAA0B,EAuBhG,OArBA,EAAQ,eAAe,QAAS,EAAU,CACzC,IAAM,EAAoB,KAAgD,GACpE,EAAwB,IAAiB,OAAY,EAAmB,EAG9E,EAA+B,KAAM,EAAc,CAClD,OACA,UACA,UAAW,EACX,eACA,MACD,CAAC,EACD,KAAK,mBAAmB,EAAc,CACrC,OACA,UACA,UAAW,EACX,aAAc,EACd,MACD,CAAC,EACD,EAEM,QAAS,CAAU,EAAU,CAEnC,OADC,KAA4C,GAAuB,EAC7D",
11
+ "debugId": "F8AD9ADD7F29228264756E2164756E21",
12
12
  "names": []
13
13
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:w,getOwnPropertyNames:_,getOwnPropertyDescriptor:k}=Object,A=Object.prototype.hasOwnProperty;function E(q){return this[q]}var H=(q)=>{var G=(L??=new WeakMap).get(q),Q;if(G)return G;if(G=w({},"__esModule",{value:!0}),q&&typeof q==="object"||typeof q==="function"){for(var X of _(q))if(!A.call(G,X))w(G,X,{get:E.bind(q,X),enumerable:!(Q=k(q,X))||Q.enumerable})}return L.set(q,G),G},L;var I=(q)=>q;function N(q,G){this[q]=I.bind(null,G)}var V=(q,G)=>{for(var Q in G)w(q,Q,{get:G[Q],enumerable:!0,configurable:!0,set:N.bind(G,Q)})};var c=(q,G)=>()=>(q&&(G=q(q=0)),G);var T=((q)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(q,{get:(G,Q)=>(typeof require<"u"?require:G)[Q]}):q)(function(q){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+q+'" is not supported')});function W(q){return q.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}var J="data-hydration",f="data-hydration-type",B="data-hydration-key";function z(q){let G=q.hydrationKey?` ${B}="${m(q.hydrationKey)}"`:"";return`<script type="application/json" ${J} ${f}="${q.type}"${G}>${q.serializedValue}</script>`}function C(q){return W(q)}function O(q,G){let Q=q.textContent;if(!Q)return G;try{return JSON.parse(Q)}catch{if(typeof console<"u")console.warn(`[@ecopages/radiant] Failed to parse hydration payload from <script ${J}>:`,Q.slice(0,120));return G}}function D(q,G,Q){let X=q.children;if(!X||X.length===0){let Z=q.childNodes;if(!Z||Z.length===0)return null;for(let $=0;$<Z.length;$+=1){let M=Z[$];if(M.nodeType!==1)continue;let j=M;if(P(j,G,Q))return j}return null}for(let Z=0;Z<X.length;Z+=1)if(P(X[Z],G,Q))return X[Z];return null}function P(q,G,Q){if(q.tagName!=="SCRIPT"||!q.hasAttribute(J)||q.getAttribute(f)!==G)return!1;if(Q!==void 0)return q.getAttribute(B)===Q;return!q.hasAttribute(B)}function m(q){return q.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function U(q){return q.shouldAutoBindReactiveMembers?.()??!1}function x(q){return z({type:"signal",...q})}function K(q){return C(q)}import{createMarkupNodeLike as v}from"@ecopages/jsx";import{state as S}from"@ecopages/signals";function b(q){return typeof q==="object"&&q!==null&&typeof q.get==="function"&&typeof q.set==="function"&&typeof q.subscribe==="function"&&typeof q.update==="function"}class g{host;hydrate;hydrationKey;property;source;currentValue;hasAppliedHostHydration=!1;sourceUnsubscribe;constructor(q){this.host=q.host,this.hydrate=q.hydrate,this.hydrationKey=q.hydrationKey,this.property=q.property,this.source=q.source??S(this.resolveInitialValue(q.initialValue)),this.currentValue=this.source.get(),this.host.registerReactiveMember(this.property,this.source)}get(){return this.source.get()}set(q){this.source.set(q)}subscribe(q){return this.source.subscribe(q)}update(q){this.set(q(this.get()))}connectToSource(){if(this.sourceUnsubscribe)return;let q=this.source.get();if(!Object.is(this.currentValue,q))this.currentValue=q;this.sourceUnsubscribe=this.source.subscribe((G)=>{this.handleSourceChange(G)})}disconnectFromSource(){this.sourceUnsubscribe?.(),this.sourceUnsubscribe=void 0}hydrateFromHost(){if(!this.hydrate||this.hasAppliedHostHydration)return;this.hasAppliedHostHydration=!0;let q=this.source.get(),G=this.resolveInitialValue(q);if(!Object.is(q,G))this.source.set(G),this.currentValue=this.source.get()}renderHydrationScript(){let q=this.renderHydrationScriptTag();if(!q)return;return v(q)}renderHydrationScriptTag(){let q=this.serializeHydrationValue();if(!q)return;return x({hydrationKey:this.hydrationKey,serializedValue:q})}findHydrationScriptElement(){if(!(this.host instanceof Element))return null;return D(this.host,"signal",this.hydrationKey)}isObject(q){return typeof q==="object"&&!Array.isArray(q)&&q!==null}resolveInitialValue(q){if(!this.hydrate)return q;let G=this.findHydrationScriptElement();if(!G)return q;let Q=O(G,q);if(this.hydrate===Object&&this.isObject(Q)&&this.isObject(q))return{...q,...Q};return Q}serializeHydrationValue(){if(!this.hydrate)return;let q=JSON.stringify(this.get());if(typeof q!=="string")return;return K(q)}handleSourceChange(q){this.currentValue=q}}function R(q){return new g(q)}function Y(q){return typeof q.registerHydrationBinding==="function"}function Q0(q={}){return function(G,Q){let X=String(Q.name);return function(Z){let $=typeof q.source==="function"?q.source(this):q.source??(b(Z)?Z:void 0),M=$!==void 0?q.initial:Z===void 0?q.initial:Z,j=q.bind??U(this);this.defineReactiveBinding(X,j);let F=R({host:this,hydrate:q.hydrate,hydrationKey:X,initialValue:M,property:X,source:$});if(this.registerConnectedCallback(()=>{F.hydrateFromHost(),F.connectToSource()}),this.registerCleanupCallback(()=>{F.disconnectFromSource()}),q.hydrate&&Y(this))this.registerHydrationBinding(X,F);return F}}}export{Q0 as signal};
1
+ function J(q){return q.replace(/&/g,"\\u0026").replace(/</g,"\\u003c").replace(/>/g,"\\u003e").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}var B="data-hydration",W="data-hydration-type",w="data-hydration-key";function P(q){let G=q.hydrationKey?` ${w}="${R(q.hydrationKey)}"`:"";return`<script type="application/json" ${B} ${W}="${q.type}"${G}>${q.serializedValue}</script>`}function f(q){return J(q)}function z(q,G){let Q=q.textContent;if(!Q)return G;try{return JSON.parse(Q)}catch{if(typeof console<"u")console.warn(`[@ecopages/radiant] Failed to parse hydration payload from <script ${B}>:`,Q.slice(0,120));return G}}function C(q,G,Q){let Z=q.children;if(!Z||Z.length===0){let X=q.childNodes;if(!X||X.length===0)return null;for(let $=0;$<X.length;$+=1){let M=X[$];if(M.nodeType!==1)continue;let j=M;if(L(j,G,Q))return j}return null}for(let X=0;X<Z.length;X+=1)if(L(Z[X],G,Q))return Z[X];return null}function L(q,G,Q){if(q.tagName!=="SCRIPT"||!q.hasAttribute(B)||q.getAttribute(W)!==G)return!1;if(Q!==void 0)return q.getAttribute(w)===Q;return!q.hasAttribute(w)}function R(q){return q.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function O(q){return q.shouldAutoBindReactiveMembers?.()??!1}function D(q){return P({type:"signal",...q})}function U(q){return f(q)}import{createMarkupNodeLike as Y}from"@ecopages/jsx";import{state as _}from"@ecopages/signals";function x(q){return typeof q==="object"&&q!==null&&typeof q.get==="function"&&typeof q.set==="function"&&typeof q.subscribe==="function"&&typeof q.update==="function"}class K{host;hydrate;hydrationKey;property;source;currentValue;hasAppliedHostHydration=!1;sourceUnsubscribe;constructor(q){this.host=q.host,this.hydrate=q.hydrate,this.hydrationKey=q.hydrationKey,this.property=q.property,this.source=q.source??_(this.resolveInitialValue(q.initialValue)),this.currentValue=this.source.get(),this.host.registerReactiveMember(this.property,this.source)}get(){return this.source.get()}set(q){this.source.set(q)}subscribe(q){return this.source.subscribe(q)}update(q){this.set(q(this.get()))}connectToSource(){if(this.sourceUnsubscribe)return;let q=this.source.get();if(!Object.is(this.currentValue,q))this.currentValue=q;this.sourceUnsubscribe=this.source.subscribe((G)=>{this.handleSourceChange(G)})}disconnectFromSource(){this.sourceUnsubscribe?.(),this.sourceUnsubscribe=void 0}hydrateFromHost(){if(!this.hydrate||this.hasAppliedHostHydration)return;this.hasAppliedHostHydration=!0;let q=this.source.get(),G=this.resolveInitialValue(q);if(!Object.is(q,G))this.source.set(G),this.currentValue=this.source.get()}renderHydrationScript(){let q=this.renderHydrationScriptTag();if(!q)return;return Y(q)}renderHydrationScriptTag(){let q=this.serializeHydrationValue();if(!q)return;return D({hydrationKey:this.hydrationKey,serializedValue:q})}findHydrationScriptElement(){if(!(this.host instanceof Element))return null;return C(this.host,"signal",this.hydrationKey)}isObject(q){return typeof q==="object"&&!Array.isArray(q)&&q!==null}resolveInitialValue(q){if(!this.hydrate)return q;let G=this.findHydrationScriptElement();if(!G)return q;let Q=z(G,q);if(this.hydrate===Object&&this.isObject(Q)&&this.isObject(q))return{...q,...Q};return Q}serializeHydrationValue(){if(!this.hydrate)return;let q=JSON.stringify(this.get());if(typeof q!=="string")return;return U(q)}handleSourceChange(q){this.currentValue=q}}function b(q){return new K(q)}function g(q){return typeof q.registerHydrationBinding==="function"}function d(q={}){return function(G,Q){let Z=String(Q.name);return function(X){let $=typeof q.source==="function"?q.source(this):q.source??(x(X)?X:void 0),M=$!==void 0?q.initial:X===void 0?q.initial:X,j=q.bind??O(this);this.defineReactiveBinding(Z,j);let F=b({host:this,hydrate:q.hydrate,hydrationKey:Z,initialValue:M,property:Z,source:$});if(this.registerConnectedCallback(()=>{F.hydrateFromHost(),F.connectToSource()}),this.registerCleanupCallback(()=>{F.disconnectFromSource()}),q.hydrate&&g(this))this.registerHydrationBinding(Z,F);return F}}}export{d as signal};
2
2
 
3
- //# debugId=6D92CC35E8375D3464756E2164756E21
3
+ //# debugId=93B9D69A6C573CBE64756E2164756E21
@@ -10,7 +10,7 @@
10
10
  "import type { SsrSerializableHydrationBinding } from './ssr-hydration-binding';\n\n/**\n * Hosts that can register keyed SSR hydration bindings.\n */\nexport interface HydrationCapableHost {\n\tregisterHydrationBinding(name: string, binding: SsrSerializableHydrationBinding): void;\n}\n\nexport function isHydrationCapableHost(host: object): host is HydrationCapableHost {\n\treturn typeof (host as HydrationCapableHost).registerHydrationBinding === 'function';\n}\n",
11
11
  "import type { WritableSignal } from '@ecopages/signals';\nimport type { ReactiveBindingOption } from '../../core/reactive-prop-core';\nimport type { ReactiveHostLike } from '../../core/reactive-host';\nimport { resolveHostAutoBind } from '../shared/auto-bind';\nimport { createHostSignal, isWritableSignalLike } from '../../signals/host-signal';\nimport { isHydrationCapableHost } from '../../core/hydration-capable-host';\nimport type { AttributeTypeConstant } from '../../utils/attribute-utils';\n\n/** Options for the `@signal` decorator. */\nexport type SignalDecoratorOptions<Value = unknown> = {\n\t/**\n\t * Exposes a JSX binding companion for the decorated signal.\n\t *\n\t * - `true` creates a `$propertyName` accessor.\n\t * - a string creates a custom accessor with that name.\n\t * - `undefined` defers to the host default.\n\t */\n\tbind?: ReactiveBindingOption;\n\n\t/**\n\t * Optional initial value used when the field does not provide one directly.\n\t *\n\t * This is primarily useful with `declare field: WritableSignal<T>` syntax,\n\t * which keeps the component surface clean while still letting the decorator\n\t * own signal construction.\n\t */\n\tinitial?: Value;\n\n\t/**\n\t * Connects an existing writable signal to the host instead of creating a\n\t * host-owned one.\n\t */\n\tsource?: WritableSignal<Value> | ((host: ReactiveHostLike) => WritableSignal<Value>);\n\n\t/**\n\t * Serializes the current signal value into a keyed hydration script during\n\t * SSR and restores it on the client.\n\t */\n\thydrate?: AttributeTypeConstant;\n};\n\nexport function signal<Value = unknown>(options: SignalDecoratorOptions<Value> = {}) {\n\treturn function <T extends ReactiveHostLike, Value>(_: undefined, context: ClassFieldDecoratorContext<T, unknown>) {\n\t\tconst propertyName = String(context.name);\n\n\t\treturn function (this: T, initialValue: Value | WritableSignal<Value>) {\n\t\t\tconst resolvedSource =\n\t\t\t\ttypeof options.source === 'function'\n\t\t\t\t\t? options.source(this)\n\t\t\t\t\t: (options.source ?? (isWritableSignalLike<Value>(initialValue) ? initialValue : undefined));\n\t\t\tconst resolvedInitialValue =\n\t\t\t\tresolvedSource !== undefined\n\t\t\t\t\t? options.initial\n\t\t\t\t\t: ((initialValue === undefined ? options.initial : initialValue) as Value);\n\t\t\tconst bind = options.bind ?? resolveHostAutoBind(this);\n\n\t\t\tthis.defineReactiveBinding(propertyName, bind);\n\n\t\t\tconst hostSignal = createHostSignal({\n\t\t\t\thost: this,\n\t\t\t\thydrate: options.hydrate,\n\t\t\t\thydrationKey: propertyName,\n\t\t\t\tinitialValue: resolvedInitialValue,\n\t\t\t\tproperty: propertyName,\n\t\t\t\tsource: resolvedSource,\n\t\t\t});\n\n\t\t\tthis.registerConnectedCallback(() => {\n\t\t\t\thostSignal.hydrateFromHost();\n\t\t\t\thostSignal.connectToSource();\n\t\t\t});\n\t\t\tthis.registerCleanupCallback(() => {\n\t\t\t\thostSignal.disconnectFromSource();\n\t\t\t});\n\n\t\t\tif (options.hydrate && isHydrationCapableHost(this)) {\n\t\t\t\tthis.registerHydrationBinding(propertyName, hostSignal);\n\t\t\t}\n\n\t\t\treturn hostSignal as unknown as WritableSignal<Value>;\n\t\t};\n\t};\n}\n"
12
12
  ],
13
- "mappings": "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",
14
- "debugId": "6D92CC35E8375D3464756E2164756E21",
13
+ "mappings": "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",
14
+ "debugId": "93B9D69A6C573CBE64756E2164756E21",
15
15
  "names": []
16
16
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:c,getOwnPropertyNames:T,getOwnPropertyDescriptor:l}=Object,D=Object.prototype.hasOwnProperty;function L(o){return this[o]}var k=(o)=>{var t=(s??=new WeakMap).get(o),d;if(t)return t;if(t=c({},"__esModule",{value:!0}),o&&typeof o==="object"||typeof o==="function"){for(var e of T(o))if(!D.call(t,e))c(t,e,{get:L.bind(o,e),enumerable:!(d=l(o,e))||d.enumerable})}return s.set(o,t),t},s;var C=(o)=>o;function V(o,t){this[o]=C.bind(null,t)}var A=(o,t)=>{for(var d in t)c(o,d,{get:t[d],enumerable:!0,configurable:!0,set:V.bind(t,d)})};var O=(o,t)=>()=>(o&&(t=o(o=0)),t);var q=((o)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(o,{get:(t,d)=>(typeof require<"u"?require:t)[d]}):o)(function(o){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+o+'" is not supported')});var M=Symbol.for("@ecopages/radiant.legacy-instance-initializers"),R=Symbol.for("@ecopages/radiant.legacy-post-construction-initializers"),B=Symbol.for("@ecopages/radiant.legacy-executed-post-construction-initializers");function F(o,t){H(o,M,t)}function f(o,t){H(o,R,t)}function _(o){j(o,M)}function y(o,t){let d=o;S(o,t,d[B]??=new Set)}function H(o,t,d){let e=o,r=Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0;if(Array.isArray(r)){r.push(d);return}Object.defineProperty(e,t,{value:[d]})}function j(o,t){w(o,(d)=>{let e=d[t];if(!Array.isArray(e))return;for(let r of e)r(o)})}function S(o,t,d){for(let e of x(o)){let r=e[R];if(!Array.isArray(r))continue;for(let n of r){if(d.has(n))continue;n(o,t),d.add(n)}}}function x(o){let t=[],d=Object.getPrototypeOf(o);while(d&&d!==Object.prototype)t.unshift(d),d=Object.getPrototypeOf(d);return t}function w(o,t){for(let d of x(o))t(d)}function v(o){return typeof o==="function"}function a(o,t,d,e){if(typeof e==="object")return o(void 0,e);return t(d,e)}function G(o,t,d,e,r){if(typeof e==="object"){if(!v(d))throw TypeError("Standard method decorators require a method target");return o(d,e)}if(!r)throw TypeError("Legacy method decorators require a property descriptor");return t(d,e,r)}function u(o){return o.shouldAutoBindReactiveMembers?.()??!1}function g(o,t,d,e=!1){if(o.getReactiveMember(t))return;if(o.createReactiveMember(t,d),e!==void 0&&e!==!1)o.defineReactiveBinding(t,e)}function h(o,t){F(o,(d)=>{g(d,t,d[t],u(d))}),f(o,(d)=>{d.createReactiveField(t,d[t],{bind:u(d)})})}function P(o,t){let d=String(t.name),e=Symbol(`@ecopages/radiant/state:${d}:initializer`);return t.addInitializer(function(){let r=this[e];this.createReactiveField(d,r,{bind:u(this),suppressInitialNotify:!0})}),function(r){return this[e]=r,r}}function z(o,t){return a(P,h,o,t)}export{z as state};
1
+ var c=Symbol.for("@ecopages/radiant.legacy-instance-initializers"),s=Symbol.for("@ecopages/radiant.legacy-post-construction-initializers"),h=Symbol.for("@ecopages/radiant.legacy-executed-post-construction-initializers");function M(o,t){F(o,c,t)}function R(o,t){F(o,s,t)}function L(o){P(o,c)}function C(o,t){let d=o;T(o,t,d[h]??=new Set)}function F(o,t,d){let e=o,r=Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0;if(Array.isArray(r)){r.push(d);return}Object.defineProperty(e,t,{value:[d]})}function P(o,t){l(o,(d)=>{let e=d[t];if(!Array.isArray(e))return;for(let r of e)r(o)})}function T(o,t,d){for(let e of f(o)){let r=e[s];if(!Array.isArray(r))continue;for(let n of r){if(d.has(n))continue;n(o,t),d.add(n)}}}function f(o){let t=[],d=Object.getPrototypeOf(o);while(d&&d!==Object.prototype)t.unshift(d),d=Object.getPrototypeOf(d);return t}function l(o,t){for(let d of f(o))t(d)}function D(o){return typeof o==="function"}function H(o,t,d,e){if(typeof e==="object")return o(void 0,e);return t(d,e)}function B(o,t,d,e,r){if(typeof e==="object"){if(!D(d))throw TypeError("Standard method decorators require a method target");return o(d,e)}if(!r)throw TypeError("Legacy method decorators require a property descriptor");return t(d,e,r)}function u(o){return o.shouldAutoBindReactiveMembers?.()??!1}function x(o,t,d,e=!1){if(o.getReactiveMember(t))return;if(o.createReactiveMember(t,d),e!==void 0&&e!==!1)o.defineReactiveBinding(t,e)}function a(o,t){M(o,(d)=>{x(d,t,d[t],u(d))}),R(o,(d)=>{d.createReactiveField(t,d[t],{bind:u(d)})})}function g(o,t){let d=String(t.name),e=Symbol(`@ecopages/radiant/state:${d}:initializer`);return t.addInitializer(function(){let r=this[e];this.createReactiveField(d,r,{bind:u(this),suppressInitialNotify:!0})}),function(r){return this[e]=r,r}}function G(o,t){return H(g,a,o,t)}export{G as state};
2
2
 
3
- //# debugId=01BBD8A672AFCD0964756E2164756E21
3
+ //# debugId=B084BDEA98EB673C64756E2164756E21
@@ -10,7 +10,7 @@
10
10
  "import type { ReactiveHostLike } from '../../core/reactive-host';\nimport { resolveHostAutoBind } from '../shared/auto-bind';\n\nexport function reactiveField<T extends ReactiveHostLike, V>(_: undefined, context: ClassFieldDecoratorContext<T, V>) {\n\tconst contextName = String(context.name);\n\tconst initializerValueKey = Symbol(`@ecopages/radiant/state:${contextName}:initializer`);\n\n\tcontext.addInitializer(function (this: T) {\n\t\tconst initializerValue = (this as Record<PropertyKey, V | undefined>)[initializerValueKey];\n\t\tthis.createReactiveField(contextName, initializerValue as V, {\n\t\t\tbind: resolveHostAutoBind(this),\n\t\t\tsuppressInitialNotify: true,\n\t\t});\n\t});\n\n\treturn function (this: T, value: V) {\n\t\t(this as Record<PropertyKey, V | undefined>)[initializerValueKey] = value;\n\t\treturn value;\n\t};\n}\n",
11
11
  "import type { ReactiveHostLike } from '../core/reactive-host';\nimport { reactiveField as legacyReactiveField } from './legacy/reactive-field';\nimport { reactiveField as standardReactiveField } from './standard/reactive-field';\nimport { fieldDecoratorBridge } from './bridge';\n\n/**\n * Declares internal mutable component state.\n *\n * Each write updates the member state, which notifies `@onUpdated` listeners and\n * keeps JSX bindings in sync. Render invalidation happens through the reactive\n * render path when `render()` reads reactive members. When no explicit binding option\n * is supplied, `RadiantElement` hosts expose a JSX companion binding\n * accessor automatically while plain imperative hosts keep binding\n * opt-in.\n */\nexport function state<THost extends ReactiveHostLike, TValue>(\n\tprotoOrTarget: undefined,\n\tnameOrContext: ClassFieldDecoratorContext<THost, TValue>,\n): (this: THost, value: TValue) => TValue;\nexport function state(protoOrTarget: ReactiveHostLike, nameOrContext: string): void;\nexport function state(\n\tprotoOrTarget: ReactiveHostLike | undefined,\n\tnameOrContext: string | ClassFieldDecoratorContext<ReactiveHostLike, unknown>,\n): ((this: ReactiveHostLike, value: unknown) => unknown) | void {\n\treturn fieldDecoratorBridge(standardReactiveField, legacyReactiveField, protoOrTarget, nameOrContext);\n}\n"
12
12
  ],
13
- "mappings": "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",
14
- "debugId": "01BBD8A672AFCD0964756E2164756E21",
13
+ "mappings": "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",
14
+ "debugId": "B084BDEA98EB673C64756E2164756E21",
15
15
  "names": []
16
16
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:I,getOwnPropertyNames:J,getOwnPropertyDescriptor:M}=Object,O=Object.prototype.hasOwnProperty;function S($){return this[$]}var A=($)=>{var x=(V??=new WeakMap).get($),F;if(x)return x;if(x=I({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function"){for(var W of J($))if(!O.call(x,W))I(x,W,{get:S.bind($,W),enumerable:!(F=M($,W))||F.enumerable})}return V.set($,x),x},V;var T=($)=>$;function y($,x){this[$]=T.bind(null,x)}var E=($,x)=>{for(var F in x)I($,F,{get:x[F],enumerable:!0,configurable:!0,set:y.bind(x,F)})};var m=($,x)=>()=>($&&(x=$($=0)),x);var H=(($)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy($,{get:(x,F)=>(typeof require<"u"?require:x)[F]}):$)(function($){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+$+'" is not supported')});function X($){let x=globalThis.CSS;if(typeof x?.escape==="function")return x.escape($);let F="";for(let W=0;W<$.length;W+=1){let N=$[W]??"",P=N.codePointAt(0)??0;if(P===0){F+="�";continue}let _=P>=1&&P<=31||P===127,j=W===0&&P>=48&&P<=57,z=W===1&&P>=48&&P<=57&&($[0]??"")==="-",B=W===0&&N==="-"&&$.length===1;if(_||j||z){F+=`\\${P.toString(16)} `;continue}if(P>=128||N==="-"||N==="_"||P>=48&&P<=57||P>=65&&P<=90||P>=97&&P<=122){F+=B?`\\${N}`:N;continue}F+=`\\${N}`}return F}var D=Symbol("radiant.shadowRootListenerHooks"),Y=Symbol("radiant.patchedAttachShadow");function q($){if($ instanceof Element)return $;if("host"in $)return $.host;return $.element}function K($){return!($ instanceof Element)}function Z($,x,F,W){let N=(P)=>{if(P.target instanceof Element&&P.target.matches(F))W(P)};return $.addEventListener(x.type,N,x.options),()=>{$.removeEventListener(x.type,N,x.options)}}function R($,x){let F=q($);if(!F[D])F[D]=new Set;if(F[D].add(x),F[Y])return;let W=F.attachShadow;F.attachShadow=function(P){let _=W.call(this,P);for(let j of F[D]??[])j();return _},F[Y]=!0}function k($,x,F){if(K($)&&"scope"in x&&x.scope&&x.scope!=="light")throw Error("RadiantController event listeners only support light DOM scope.");let W=q($),N=F.bind($),P=null,_=null,j=null,z=null,B=!1,Q=()=>{P?.(),_?.(),j?.(),z?.(),P=null,_=null,j=null,z=null},G=()=>{if(B)return;if("window"in x&&!P)window.addEventListener(x.type,N,x.options),P=()=>{window.removeEventListener(x.type,N,x.options)};if("document"in x&&!_)document.addEventListener(x.type,N,x.options),_=()=>{document.removeEventListener(x.type,N,x.options)};if("selector"in x||"ref"in x){let U="selector"in x?x.selector:`[data-ref='${X(x.ref)}']`;if(x.scope!=="shadow"&&!j)j=Z(W,x,U,N);if(x.scope!=="light"&&W.shadowRoot&&!z)z=Z(W.shadowRoot,x,U,N)}};if("selector"in x||"ref"in x){if(x.scope!=="light")R($,()=>{if($.isConnected)G()})}if($.registerConnectedCallback(G),$.registerCleanupCallback(Q),$.isConnected)G();return()=>{B=!0,Q()}}export{k as createEventListener};
1
+ function U($){let x=globalThis.CSS;if(typeof x?.escape==="function")return x.escape($);let P="";for(let N=0;N<$.length;N+=1){let W=$[N]??"",F=W.codePointAt(0)??0;if(F===0){P+="�";continue}let _=F>=1&&F<=31||F===127,j=N===0&&F>=48&&F<=57,z=N===1&&F>=48&&F<=57&&($[0]??"")==="-",B=N===0&&W==="-"&&$.length===1;if(_||j||z){P+=`\\${F.toString(16)} `;continue}if(F>=128||W==="-"||W==="_"||F>=48&&F<=57||F>=65&&F<=90||F>=97&&F<=122){P+=B?`\\${W}`:W;continue}P+=`\\${W}`}return P}var D=Symbol("radiant.shadowRootListenerHooks"),V=Symbol("radiant.patchedAttachShadow");function Y($){if($ instanceof Element)return $;if("host"in $)return $.host;return $.element}function Z($){return!($ instanceof Element)}function X($,x,P,N){let W=(F)=>{if(F.target instanceof Element&&F.target.matches(P))N(F)};return $.addEventListener(x.type,W,x.options),()=>{$.removeEventListener(x.type,W,x.options)}}function q($,x){let P=Y($);if(!P[D])P[D]=new Set;if(P[D].add(x),P[V])return;let N=P.attachShadow;P.attachShadow=function(F){let _=N.call(this,F);for(let j of P[D]??[])j();return _},P[V]=!0}function O($,x,P){if(Z($)&&"scope"in x&&x.scope&&x.scope!=="light")throw Error("RadiantController event listeners only support light DOM scope.");let N=Y($),W=P.bind($),F=null,_=null,j=null,z=null,B=!1,I=()=>{F?.(),_?.(),j?.(),z?.(),F=null,_=null,j=null,z=null},G=()=>{if(B)return;if("window"in x&&!F)window.addEventListener(x.type,W,x.options),F=()=>{window.removeEventListener(x.type,W,x.options)};if("document"in x&&!_)document.addEventListener(x.type,W,x.options),_=()=>{document.removeEventListener(x.type,W,x.options)};if("selector"in x||"ref"in x){let Q="selector"in x?x.selector:`[data-ref='${U(x.ref)}']`;if(x.scope!=="shadow"&&!j)j=X(N,x,Q,W);if(x.scope!=="light"&&N.shadowRoot&&!z)z=X(N.shadowRoot,x,Q,W)}};if("selector"in x||"ref"in x){if(x.scope!=="light")q($,()=>{if($.isConnected)G()})}if($.registerConnectedCallback(G),$.registerCleanupCallback(I),$.isConnected)G();return()=>{B=!0,I()}}export{O as createEventListener};
2
2
 
3
- //# debugId=95635E2CBD21FD0964756E2164756E21
3
+ //# debugId=09BF573A4218486064756E2164756E21
@@ -5,7 +5,7 @@
5
5
  "export function escapeCssIdentifier(value: string): string {\n\tconst cssNamespace = globalThis.CSS as { escape?: (value: string) => string } | undefined;\n\n\tif (typeof cssNamespace?.escape === 'function') {\n\t\treturn cssNamespace.escape(value);\n\t}\n\n\tlet escaped = '';\n\n\tfor (let index = 0; index < value.length; index += 1) {\n\t\tconst character = value[index] ?? '';\n\t\tconst codePoint = character.codePointAt(0) ?? 0;\n\n\t\tif (codePoint === 0) {\n\t\t\tescaped += '\\uFFFD';\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst isControlCharacter = (codePoint >= 0x0001 && codePoint <= 0x001f) || codePoint === 0x007f;\n\t\tconst startsWithDigit = index === 0 && codePoint >= 0x0030 && codePoint <= 0x0039;\n\t\tconst startsWithHyphenDigit =\n\t\t\tindex === 1 && codePoint >= 0x0030 && codePoint <= 0x0039 && (value[0] ?? '') === '-';\n\t\tconst isSingleHyphen = index === 0 && character === '-' && value.length === 1;\n\n\t\tif (isControlCharacter || startsWithDigit || startsWithHyphenDigit) {\n\t\t\tescaped += `\\\\${codePoint.toString(16)} `;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (\n\t\t\tcodePoint >= 0x0080 ||\n\t\t\tcharacter === '-' ||\n\t\t\tcharacter === '_' ||\n\t\t\t(codePoint >= 0x0030 && codePoint <= 0x0039) ||\n\t\t\t(codePoint >= 0x0041 && codePoint <= 0x005a) ||\n\t\t\t(codePoint >= 0x0061 && codePoint <= 0x007a)\n\t\t) {\n\t\t\tescaped += isSingleHyphen ? `\\\\${character}` : character;\n\t\t\tcontinue;\n\t\t}\n\n\t\tescaped += `\\\\${character}`;\n\t}\n\n\treturn escaped;\n}\n",
6
6
  "import type { RadiantElementEventListener } from '../core/radiant-element';\nimport { escapeCssIdentifier } from '../tools/escape-css-identifier';\n\n/**\n * Selects which DOM tree delegated event listeners should observe.\n */\nexport type OnEventScope = 'light' | 'shadow' | 'both';\n\ntype BaseOnEventConfig = Pick<RadiantElementEventListener, 'type' | 'options'> & {\n\tscope?: OnEventScope;\n};\n\nexport type OnEventConfig = BaseOnEventConfig &\n\t(\n\t\t| {\n\t\t\t\tselector: string;\n\t\t }\n\t\t| {\n\t\t\t\tref: string;\n\t\t }\n\t\t| {\n\t\t\t\twindow: true;\n\t\t }\n\t\t| {\n\t\t\t\tdocument: true;\n\t\t }\n\t);\n\ntype DelegatedEventRoot = Element | ShadowRoot;\n\ntype EventListenerLifecycleHost = {\n\tregisterConnectedCallback(callback: () => void): void;\n\tregisterCleanupCallback(callback: () => void): void;\n\tisConnected: boolean;\n};\n\nexport type EventListenerHost =\n\t| (EventListenerLifecycleHost & Element)\n\t| (EventListenerLifecycleHost & { host: Element })\n\t| (EventListenerLifecycleHost & { element: Element });\n\nconst shadowRootListenerHooksKey = Symbol('radiant.shadowRootListenerHooks');\nconst patchedAttachShadowKey = Symbol('radiant.patchedAttachShadow');\n\ntype ShadowRootHookHost = Element & {\n\t[patchedAttachShadowKey]?: true;\n\t[shadowRootListenerHooksKey]?: Set<() => void>;\n};\n\nfunction resolveEventListenerHostElement(host: EventListenerHost): Element {\n\tif (host instanceof Element) {\n\t\treturn host;\n\t}\n\n\tif ('host' in host) {\n\t\treturn host.host;\n\t}\n\n\treturn host.element;\n}\n\nfunction isControllerEventHost(host: EventListenerHost): host is EventListenerLifecycleHost & { host: Element } {\n\treturn !(host instanceof Element);\n}\n\nfunction addDelegatedListener(\n\troot: DelegatedEventRoot,\n\tconfig: Pick<OnEventConfig, 'type' | 'options'>,\n\tselector: string,\n\tlistener: EventListener,\n): () => void {\n\tconst delegatedListener = (event: Event) => {\n\t\tif (event.target instanceof Element && event.target.matches(selector)) {\n\t\t\tlistener(event);\n\t\t}\n\t};\n\n\troot.addEventListener(config.type, delegatedListener, config.options);\n\n\treturn () => {\n\t\troot.removeEventListener(config.type, delegatedListener, config.options);\n\t};\n}\n\nfunction registerShadowRootHook(host: EventListenerHost, hook: () => void): void {\n\tconst shadowAwareHost = resolveEventListenerHostElement(host) as ShadowRootHookHost;\n\n\tif (!shadowAwareHost[shadowRootListenerHooksKey]) {\n\t\tshadowAwareHost[shadowRootListenerHooksKey] = new Set();\n\t}\n\n\tshadowAwareHost[shadowRootListenerHooksKey].add(hook);\n\n\tif (shadowAwareHost[patchedAttachShadowKey]) {\n\t\treturn;\n\t}\n\n\tconst originalAttachShadow = shadowAwareHost.attachShadow;\n\n\tshadowAwareHost.attachShadow = function patchedAttachShadow(init: ShadowRootInit): ShadowRoot {\n\t\tconst shadowRoot = originalAttachShadow.call(this, init);\n\t\tfor (const shadowRootHook of shadowAwareHost[shadowRootListenerHooksKey] ?? []) {\n\t\t\tshadowRootHook();\n\t\t}\n\t\treturn shadowRoot;\n\t};\n\n\tshadowAwareHost[patchedAttachShadowKey] = true;\n}\n\n/**\n * Subscribes to a DOM event with delegation, window, or document targeting.\n * Functional equivalent of the `@onEvent` decorator for vanilla JS usage.\n * Returns a cleanup function to remove the listener.\n * @param host The host RadiantElement.\n * @param config The event listener configuration.\n * @param callback The event handler function.\n */\nexport function createEventListener(\n\thost: EventListenerHost,\n\tconfig: OnEventConfig,\n\tcallback: (event: Event) => void,\n): () => void {\n\tif (isControllerEventHost(host) && 'scope' in config && config.scope && config.scope !== 'light') {\n\t\tthrow new Error('RadiantController event listeners only support light DOM scope.');\n\t}\n\n\tconst hostElement = resolveEventListenerHostElement(host);\n\tconst boundCallback = callback.bind(host);\n\tlet windowCleanup: (() => void) | null = null;\n\tlet documentCleanup: (() => void) | null = null;\n\tlet lightCleanup: (() => void) | null = null;\n\tlet shadowCleanup: (() => void) | null = null;\n\tlet disposed = false;\n\n\tconst detachListeners = () => {\n\t\twindowCleanup?.();\n\t\tdocumentCleanup?.();\n\t\tlightCleanup?.();\n\t\tshadowCleanup?.();\n\n\t\twindowCleanup = null;\n\t\tdocumentCleanup = null;\n\t\tlightCleanup = null;\n\t\tshadowCleanup = null;\n\t};\n\n\tconst attachListeners = () => {\n\t\tif (disposed) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ('window' in config && !windowCleanup) {\n\t\t\twindow.addEventListener(config.type, boundCallback, config.options);\n\t\t\twindowCleanup = () => {\n\t\t\t\twindow.removeEventListener(config.type, boundCallback, config.options);\n\t\t\t};\n\t\t}\n\n\t\tif ('document' in config && !documentCleanup) {\n\t\t\tdocument.addEventListener(config.type, boundCallback, config.options);\n\t\t\tdocumentCleanup = () => {\n\t\t\t\tdocument.removeEventListener(config.type, boundCallback, config.options);\n\t\t\t};\n\t\t}\n\n\t\tif ('selector' in config || 'ref' in config) {\n\t\t\tconst selector = 'selector' in config ? config.selector : `[data-ref='${escapeCssIdentifier(config.ref)}']`;\n\n\t\t\tif (config.scope !== 'shadow' && !lightCleanup) {\n\t\t\t\tlightCleanup = addDelegatedListener(hostElement, config, selector, boundCallback);\n\t\t\t}\n\n\t\t\tif (config.scope !== 'light' && hostElement.shadowRoot && !shadowCleanup) {\n\t\t\t\tshadowCleanup = addDelegatedListener(hostElement.shadowRoot, config, selector, boundCallback);\n\t\t\t}\n\t\t}\n\t};\n\n\tif ('selector' in config || 'ref' in config) {\n\t\tif (config.scope !== 'light') {\n\t\t\tregisterShadowRootHook(host, () => {\n\t\t\t\tif (host.isConnected) {\n\t\t\t\t\tattachListeners();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\thost.registerConnectedCallback(attachListeners);\n\thost.registerCleanupCallback(detachListeners);\n\n\tif (host.isConnected) {\n\t\tattachListeners();\n\t}\n\n\treturn () => {\n\t\tdisposed = true;\n\t\tdetachListeners();\n\t};\n}\n"
7
7
  ],
8
- "mappings": "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",
9
- "debugId": "95635E2CBD21FD0964756E2164756E21",
8
+ "mappings": "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",
9
+ "debugId": "09BF573A4218486064756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:B,getOwnPropertyNames:H,getOwnPropertyDescriptor:I}=Object,K=Object.prototype.hasOwnProperty;function L(x){return this[x]}var O=(x)=>{var y=(G??=new WeakMap).get(x),z;if(y)return y;if(y=B({},"__esModule",{value:!0}),x&&typeof x==="object"||typeof x==="function"){for(var A of H(x))if(!K.call(y,A))B(y,A,{get:L.bind(x,A),enumerable:!(z=I(x,A))||z.enumerable})}return G.set(x,y),y},G;var M=(x)=>x;function N(x,y){this[x]=M.bind(null,y)}var P=(x,y)=>{for(var z in y)B(x,z,{get:y[z],enumerable:!0,configurable:!0,set:N.bind(y,z)})};var Q=(x,y)=>()=>(x&&(y=x(x=0)),y);var R=((x)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(y,z)=>(typeof require<"u"?require:y)[z]}):x)(function(x){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});class D{host;eventConfig;constructor(x,y){this.host=x,this.eventConfig=y}emit(x){let y=new CustomEvent(this.eventConfig.name,{detail:x,bubbles:this.eventConfig.bubbles,cancelable:this.eventConfig.cancelable,composed:this.eventConfig.composed});this.host.dispatchEvent(y)}}function X(x,y){let z=new D(x,y);return x.registerEventEmitter(y.name,z),z}export{X as createEvent};
1
+ class z{host;eventConfig;constructor(x,y){this.host=x,this.eventConfig=y}emit(x){let y=new CustomEvent(this.eventConfig.name,{detail:x,bubbles:this.eventConfig.bubbles,cancelable:this.eventConfig.cancelable,composed:this.eventConfig.composed});this.host.dispatchEvent(y)}}function G(x,y){let A=new z(x,y);return x.registerEventEmitter(y.name,A),A}export{G as createEvent};
2
2
 
3
- //# debugId=0D3FDA5676CAADF064756E2164756E21
3
+ //# debugId=30D4650F3D19650164756E2164756E21
@@ -5,7 +5,7 @@
5
5
  "import type { RadiantElement } from '../core/radiant-element';\n\nexport interface EventEmitterConfig {\n\tname: string;\n\tbubbles?: boolean;\n\tcancelable?: boolean;\n\tcomposed?: boolean;\n}\n\n/**\n * A generic event emitter class that allows emitting custom events.\n *\n * @template T - The type of the event detail.\n */\nexport class EventEmitter<T = unknown> {\n\tprivate host: RadiantElement;\n\tprivate eventConfig: EventEmitterConfig;\n\n\t/**\n\t * Constructs a new instance of the EventEmitter class.\n\t *\n\t * @param host - The host element on which the events will be dispatched.\n\t * @param eventConfig - The configuration for the event.\n\t */\n\tconstructor(host: RadiantElement, eventConfig: EventEmitterConfig) {\n\t\tthis.host = host;\n\t\tthis.eventConfig = eventConfig;\n\t}\n\n\t/**\n\t * Emits a custom event with the specified detail.\n\t *\n\t * @param detail - The detail object to be passed along with the event.\n\t */\n\temit(detail?: T) {\n\t\tconst event = new CustomEvent(this.eventConfig.name, {\n\t\t\tdetail: detail,\n\t\t\tbubbles: this.eventConfig.bubbles,\n\t\t\tcancelable: this.eventConfig.cancelable,\n\t\t\tcomposed: this.eventConfig.composed,\n\t\t});\n\t\tthis.host.dispatchEvent(event);\n\t}\n}\n",
6
6
  "import type { RadiantElement } from '../core/radiant-element';\nimport { EventEmitter, type EventEmitterConfig } from '../tools/event-emitter';\n\n/**\n * Creates an EventEmitter bound to a host element and registers it on the host.\n * Functional equivalent of the `@event` decorator for vanilla JS usage.\n * @param host The host element that will dispatch the events.\n * @param config {@link EventEmitterConfig} The event emitter configuration.\n */\nexport function createEvent<T = unknown>(host: RadiantElement, config: EventEmitterConfig): EventEmitter<T> {\n\tconst emitter = new EventEmitter<T>(host, config);\n\thost.registerEventEmitter(config.name, emitter);\n\treturn emitter;\n}\n"
7
7
  ],
8
- "mappings": "i0BAcO,MAAM,CAA0B,CAC9B,KACA,YAQR,WAAW,CAAC,EAAsB,EAAiC,CAClE,KAAK,KAAO,EACZ,KAAK,YAAc,EAQpB,IAAI,CAAC,EAAY,CAChB,IAAM,EAAQ,IAAI,YAAY,KAAK,YAAY,KAAM,CACpD,OAAQ,EACR,QAAS,KAAK,YAAY,QAC1B,WAAY,KAAK,YAAY,WAC7B,SAAU,KAAK,YAAY,QAC5B,CAAC,EACD,KAAK,KAAK,cAAc,CAAK,EAE/B,CClCO,SAAS,CAAwB,CAAC,EAAsB,EAA6C,CAC3G,IAAM,EAAU,IAAI,EAAgB,EAAM,CAAM,EAEhD,OADA,EAAK,qBAAqB,EAAO,KAAM,CAAO,EACvC",
9
- "debugId": "0D3FDA5676CAADF064756E2164756E21",
8
+ "mappings": "AAcO,MAAM,CAA0B,CAC9B,KACA,YAQR,WAAW,CAAC,EAAsB,EAAiC,CAClE,KAAK,KAAO,EACZ,KAAK,YAAc,EAQpB,IAAI,CAAC,EAAY,CAChB,IAAM,EAAQ,IAAI,YAAY,KAAK,YAAY,KAAM,CACpD,OAAQ,EACR,QAAS,KAAK,YAAY,QAC1B,WAAY,KAAK,YAAY,WAC7B,SAAU,KAAK,YAAY,QAC5B,CAAC,EACD,KAAK,KAAK,cAAc,CAAK,EAE/B,CClCO,SAAS,CAAwB,CAAC,EAAsB,EAA6C,CAC3G,IAAM,EAAU,IAAI,EAAgB,EAAM,CAAM,EAEhD,OADA,EAAK,qBAAqB,EAAO,KAAM,CAAO,EACvC",
9
+ "debugId": "30D4650F3D19650164756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:E,getOwnPropertyNames:K,getOwnPropertyDescriptor:L}=Object,M=Object.prototype.hasOwnProperty;function N(j){return this[j]}var R=(j)=>{var A=(I??=new WeakMap).get(j),B;if(A)return A;if(A=E({},"__esModule",{value:!0}),j&&typeof j==="object"||typeof j==="function"){for(var D of K(j))if(!M.call(A,D))E(A,D,{get:N.bind(j,D),enumerable:!(B=L(j,D))||B.enumerable})}return I.set(j,A),A},I;var O=(j)=>j;function P(j,A){this[j]=O.bind(null,A)}var U=(j,A)=>{for(var B in A)E(j,B,{get:A[B],enumerable:!0,configurable:!0,set:P.bind(A,B)})};var W=(j,A)=>()=>(j&&(A=j(j=0)),A);var X=((j)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(j,{get:(A,B)=>(typeof require<"u"?require:A)[B]}):j)(function(j){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+j+'" is not supported')});function Z(j,A={}){let B=null,D,G=()=>{if(A.all)return j.getSlotElements(A.name);return j.getSlotElements(A.name)[0]??null};return{get value(){if(A.cache===!1)return G();let H=j.slotProjectionVersion??0;if(D!==H)B=G(),D=H;return B}}}export{Z as createQuerySlot};
1
+ function H(A,j={}){let B=null,D,E=()=>{if(j.all)return A.getSlotElements(j.name);return A.getSlotElements(j.name)[0]??null};return{get value(){if(j.cache===!1)return E();let G=A.slotProjectionVersion??0;if(D!==G)B=E(),D=G;return B}}}export{H as createQuerySlot};
2
2
 
3
- //# debugId=9D69F01A4187A30F64756E2164756E21
3
+ //# debugId=10965C1F2934541C64756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "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"
6
6
  ],
7
- "mappings": "i0BAoBO,SAAS,CAAsE,CACrF,EACA,EAA2B,CAAC,EACP,CACrB,IAAI,EAAmB,KACnB,EAEE,EAAe,IAAgB,CACpC,GAAI,EAAQ,IACX,OAAO,EAAK,gBAAgB,EAAQ,IAAI,EAEzC,OAAQ,EAAK,gBAAgB,EAAQ,IAAI,EAAE,IAAM,MAGlD,MAAO,IACF,MAAK,EAAa,CACrB,GAAI,EAAQ,QAAU,GACrB,OAAO,EAAa,EAGrB,IAAM,EAAkB,EAAuD,uBAAyB,EAExG,GAAI,IAAkB,EACrB,EAAS,EAAa,EACtB,EAAgB,EAGjB,OAAO,EAET",
8
- "debugId": "9D69F01A4187A30F64756E2164756E21",
7
+ "mappings": "AAoBO,SAAS,CAAsE,CACrF,EACA,EAA2B,CAAC,EACP,CACrB,IAAI,EAAmB,KACnB,EAEE,EAAe,IAAgB,CACpC,GAAI,EAAQ,IACX,OAAO,EAAK,gBAAgB,EAAQ,IAAI,EAEzC,OAAQ,EAAK,gBAAgB,EAAQ,IAAI,EAAE,IAAM,MAGlD,MAAO,IACF,MAAK,EAAa,CACrB,GAAI,EAAQ,QAAU,GACrB,OAAO,EAAa,EAGrB,IAAM,EAAkB,EAAuD,uBAAyB,EAExG,GAAI,IAAkB,EACrB,EAAS,EAAa,EACtB,EAAgB,EAGjB,OAAO,EAET",
8
+ "debugId": "10965C1F2934541C64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:K,getOwnPropertyNames:V,getOwnPropertyDescriptor:W}=Object,X=Object.prototype.hasOwnProperty;function Y(j){return this[j]}var D=(j)=>{var A=(U??=new WeakMap).get(j),B;if(A)return A;if(A=K({},"__esModule",{value:!0}),j&&typeof j==="object"||typeof j==="function"){for(var E of V(j))if(!X.call(A,E))K(A,E,{get:Y.bind(j,E),enumerable:!(B=W(j,E))||B.enumerable})}return U.set(j,A),A},U;var Z=(j)=>j;function _(j,A){this[j]=Z.bind(null,A)}var F=(j,A)=>{for(var B in A)K(j,B,{get:A[B],enumerable:!0,configurable:!0,set:_.bind(A,B)})};var H=(j,A)=>()=>(j&&(A=j(j=0)),A);var J=((j)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(j,{get:(A,B)=>(typeof require<"u"?require:A)[B]}):j)(function(j){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+j+'" is not supported')});function $(j){return!(j instanceof Element)}function b(j){return"shadowRoot"in j?j.shadowRoot??null:null}function k(j){return j instanceof Element?j:j.host}function z(j,A="light"){let B=b(j);if(A==="shadow")return B?[B]:[];if(A==="both")return B?[j,B]:[j];return[j]}function O(j,A){if($(j)&&A.scope&&A.scope!=="light")throw Error("RadiantController queries only support light DOM scope.");let B=k(j),E="selector"in A?A.selector:`[data-ref="${A.ref}"]`,G=null,L=()=>{let N=z(B,A.scope);if(A.all)return N.flatMap((I)=>Array.from(I.querySelectorAll(E)));for(let I of N){let P=I.querySelector(E);if(P)return P}return null};return{get value(){if(A.cache){if(G===null||A.all&&Array.isArray(G)&&!G.length)G=L();return G}return L()}}}export{k as resolveQueryHost,O as createQuery};
1
+ function P(j){return!(j instanceof Element)}function U(j){return"shadowRoot"in j?j.shadowRoot??null:null}function V(j){return j instanceof Element?j:j.host}function W(j,A="light"){let B=U(j);if(A==="shadow")return B?[B]:[];if(A==="both")return B?[j,B]:[j];return[j]}function X(j,A){if(P(j)&&A.scope&&A.scope!=="light")throw Error("RadiantController queries only support light DOM scope.");let B=V(j),I="selector"in A?A.selector:`[data-ref="${A.ref}"]`,E=null,K=()=>{let L=W(B,A.scope);if(A.all)return L.flatMap((G)=>Array.from(G.querySelectorAll(I)));for(let G of L){let N=G.querySelector(I);if(N)return N}return null};return{get value(){if(A.cache){if(E===null||A.all&&Array.isArray(E)&&!E.length)E=K();return E}return K()}}}export{V as resolveQueryHost,X as createQuery};
2
2
 
3
- //# debugId=CDFDEB46BDE0D97664756E2164756E21
3
+ //# debugId=28D25FA1B752842764756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "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"
6
6
  ],
7
- "mappings": "i0BAyBA,SAAS,CAAuB,CAAC,EAAsD,CACtF,MAAO,EAAE,aAAkB,SAG5B,SAAS,CAAiB,CAAC,EAAkC,CAC5D,MAAO,eAAgB,EAAS,EAAsD,YAAc,KAAQ,KAUtG,SAAS,CAAgB,CAAC,EAAkC,CAClE,OAAO,aAAkB,QAAU,EAAS,EAAO,KAGpD,SAAS,CAAa,CAAC,EAAe,EAAoB,QAAsB,CAC/E,IAAM,EAAa,EAAkB,CAAI,EAEzC,GAAI,IAAU,SACb,OAAO,EAAa,CAAC,CAAU,EAAI,CAAC,EAGrC,GAAI,IAAU,OACb,OAAO,EAAa,CAAC,EAAM,CAAU,EAAI,CAAC,CAAI,EAG/C,MAAO,CAAC,CAAI,EASN,SAAS,CAAoD,CACnE,EACA,EACiB,CACjB,GAAI,EAAwB,CAAM,GAAK,EAAQ,OAAS,EAAQ,QAAU,QACzE,MAAU,MAAM,yDAAyD,EAG1E,IAAM,EAAO,EAAiB,CAAM,EAC9B,EAAW,aAAc,EAAU,EAAQ,SAAW,cAAc,EAAQ,QAC9E,EAAmB,KAEjB,EAAe,IAAgB,CACpC,IAAM,EAAQ,EAAc,EAAM,EAAQ,KAAK,EAE/C,GAAI,EAAQ,IACX,OAAO,EAAM,QAAQ,CAAC,IAAS,MAAM,KAAK,EAAK,iBAAiB,CAAQ,CAAC,CAAC,EAG3E,QAAW,KAAQ,EAAO,CACzB,IAAM,EAAQ,EAAK,cAAc,CAAQ,EACzC,GAAI,EACH,OAAO,EAIT,OAAO,MAGR,MAAO,IACF,MAAK,EAAa,CACrB,GAAI,EAAQ,MAAO,CAClB,GAAI,IAAW,MAAS,EAAQ,KAAO,MAAM,QAAQ,CAAM,GAAK,CAAC,EAAO,OACvE,EAAS,EAAa,EAEvB,OAAO,EAER,OAAO,EAAa,EAEtB",
8
- "debugId": "CDFDEB46BDE0D97664756E2164756E21",
7
+ "mappings": "AAyBA,SAAS,CAAuB,CAAC,EAAsD,CACtF,MAAO,EAAE,aAAkB,SAG5B,SAAS,CAAiB,CAAC,EAAkC,CAC5D,MAAO,eAAgB,EAAS,EAAsD,YAAc,KAAQ,KAUtG,SAAS,CAAgB,CAAC,EAAkC,CAClE,OAAO,aAAkB,QAAU,EAAS,EAAO,KAGpD,SAAS,CAAa,CAAC,EAAe,EAAoB,QAAsB,CAC/E,IAAM,EAAa,EAAkB,CAAI,EAEzC,GAAI,IAAU,SACb,OAAO,EAAa,CAAC,CAAU,EAAI,CAAC,EAGrC,GAAI,IAAU,OACb,OAAO,EAAa,CAAC,EAAM,CAAU,EAAI,CAAC,CAAI,EAG/C,MAAO,CAAC,CAAI,EASN,SAAS,CAAoD,CACnE,EACA,EACiB,CACjB,GAAI,EAAwB,CAAM,GAAK,EAAQ,OAAS,EAAQ,QAAU,QACzE,MAAU,MAAM,yDAAyD,EAG1E,IAAM,EAAO,EAAiB,CAAM,EAC9B,EAAW,aAAc,EAAU,EAAQ,SAAW,cAAc,EAAQ,QAC9E,EAAmB,KAEjB,EAAe,IAAgB,CACpC,IAAM,EAAQ,EAAc,EAAM,EAAQ,KAAK,EAE/C,GAAI,EAAQ,IACX,OAAO,EAAM,QAAQ,CAAC,IAAS,MAAM,KAAK,EAAK,iBAAiB,CAAQ,CAAC,CAAC,EAG3E,QAAW,KAAQ,EAAO,CACzB,IAAM,EAAQ,EAAK,cAAc,CAAQ,EACzC,GAAI,EACH,OAAO,EAIT,OAAO,MAGR,MAAO,IACF,MAAK,EAAa,CACrB,GAAI,EAAQ,MAAO,CAClB,GAAI,IAAW,MAAS,EAAQ,KAAO,MAAM,QAAQ,CAAM,GAAK,CAAC,EAAO,OACvE,EAAS,EAAa,EAEvB,OAAO,EAER,OAAO,EAAa,EAEtB",
8
+ "debugId": "28D25FA1B752842764756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,3 +1,3 @@
1
- var{defineProperty:H,getOwnPropertyNames:L,getOwnPropertyDescriptor:M}=Object,N=Object.prototype.hasOwnProperty;function O(j){return this[j]}var U=(j)=>{var q=(K??=new WeakMap).get(j),z;if(q)return q;if(q=H({},"__esModule",{value:!0}),j&&typeof j==="object"||typeof j==="function"){for(var B of L(j))if(!N.call(q,B))H(q,B,{get:O.bind(j,B),enumerable:!(z=M(j,B))||z.enumerable})}return K.set(j,q),q},K;var Q=(j)=>j;function S(j,q){this[j]=Q.bind(null,q)}var V=(j,q)=>{for(var z in q)H(j,z,{get:q[z],enumerable:!0,configurable:!0,set:S.bind(q,z)})};var W=(j,q)=>()=>(j&&(q=j(j=0)),q);var X=((j)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(j,{get:(q,z)=>(typeof require<"u"?require:q)[z]}):j)(function(j){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+j+'" is not supported')});function Z(j,q){let z=null,B=null,D,F=()=>{if(z!==null)clearTimeout(z),z=null},J=()=>{if(B===null)return D;let G=B;return B=null,F(),D=G(),D},E=function(...G){B=()=>j.apply(this,G),F(),z=setTimeout(()=>{J()},q)};return E.cancel=()=>{F(),B=null},E.flush=()=>{if(B===null)return D;return J()},E.pending=()=>B!==null,E}export{Z as debounce};
1
+ function J(G,H){let q=null,j=null,z,D=()=>{if(q!==null)clearTimeout(q),q=null},F=()=>{if(j===null)return z;let E=j;return j=null,D(),z=E(),z},B=function(...E){j=()=>G.apply(this,E),D(),q=setTimeout(()=>{F()},H)};return B.cancel=()=>{D(),j=null},B.flush=()=>{if(j===null)return z;return F()},B.pending=()=>j!==null,B}export{J as debounce};
2
2
 
3
- //# debugId=F738313E2B51C3E564756E2164756E21
3
+ //# debugId=A5D7EB3253CAF90164756E2164756E21
@@ -4,7 +4,7 @@
4
4
  "sourcesContent": [
5
5
  "import type { Method } from '../types';\n\n/**\n * A debounced function with imperative helpers for controlling pending work.\n *\n * @typeParam T The wrapped callback type.\n */\nexport interface DebouncedFunction<T extends Method> {\n\t(...args: Parameters<T>): void;\n\n\t/**\n\t * Cancels the pending callback invocation, if one exists.\n\t */\n\tcancel(): void;\n\n\t/**\n\t * Immediately invokes the latest pending callback invocation.\n\t *\n\t * @returns The callback result when a call is pending, or the last completed\n\t * result when no call is pending.\n\t */\n\tflush(): ReturnType<T> | undefined;\n\n\t/**\n\t * Reports whether the callback currently has a scheduled invocation.\n\t *\n\t * @returns True when a call is pending.\n\t */\n\tpending(): boolean;\n}\n\n/**\n * Creates a debounced wrapper around a function.\n *\n * The returned function delays invocation until the configured timeout has\n * elapsed since the latest call. It also exposes helpers to cancel, flush,\n * and inspect pending work.\n *\n * @typeParam T The wrapped callback type.\n * @param callback The callback to debounce.\n * @param timeout The debounce timeout in milliseconds.\n * @returns A debounced wrapper around the callback.\n */\nexport function debounce<T extends Method>(callback: T, timeout: number): DebouncedFunction<T> {\n\tlet timeoutRef: ReturnType<typeof setTimeout> | null = null;\n\tlet pendingInvocation: (() => ReturnType<T>) | null = null;\n\tlet lastResult: ReturnType<T> | undefined;\n\n\tconst clearPendingCall = () => {\n\t\tif (timeoutRef !== null) {\n\t\t\tclearTimeout(timeoutRef);\n\t\t\ttimeoutRef = null;\n\t\t}\n\t};\n\n\tconst invoke = (): ReturnType<T> | undefined => {\n\t\tif (pendingInvocation === null) {\n\t\t\treturn lastResult;\n\t\t}\n\n\t\tconst invocation = pendingInvocation;\n\t\tpendingInvocation = null;\n\t\tclearPendingCall();\n\t\tlastResult = invocation();\n\n\t\treturn lastResult;\n\t};\n\n\tconst debounced = function (this: ThisParameterType<T>, ...args: Parameters<T>) {\n\t\tpendingInvocation = () => callback.apply(this, args) as ReturnType<T>;\n\t\tclearPendingCall();\n\t\ttimeoutRef = setTimeout(() => {\n\t\t\tinvoke();\n\t\t}, timeout);\n\t} as DebouncedFunction<T>;\n\n\tdebounced.cancel = () => {\n\t\tclearPendingCall();\n\t\tpendingInvocation = null;\n\t};\n\n\tdebounced.flush = () => {\n\t\tif (pendingInvocation === null) {\n\t\t\treturn lastResult;\n\t\t}\n\n\t\treturn invoke();\n\t};\n\n\tdebounced.pending = () => pendingInvocation !== null;\n\n\treturn debounced;\n}\n"
6
6
  ],
7
- "mappings": "i0BA2CO,SAAS,CAA0B,CAAC,EAAa,EAAuC,CAC9F,IAAI,EAAmD,KACnD,EAAkD,KAClD,EAEE,EAAmB,IAAM,CAC9B,GAAI,IAAe,KAClB,aAAa,CAAU,EACvB,EAAa,MAIT,EAAS,IAAiC,CAC/C,GAAI,IAAsB,KACzB,OAAO,EAGR,IAAM,EAAa,EAKnB,OAJA,EAAoB,KACpB,EAAiB,EACjB,EAAa,EAAW,EAEjB,GAGF,EAAY,QAAS,IAAgC,EAAqB,CAC/E,EAAoB,IAAM,EAAS,MAAM,KAAM,CAAI,EACnD,EAAiB,EACjB,EAAa,WAAW,IAAM,CAC7B,EAAO,GACL,CAAO,GAkBX,OAfA,EAAU,OAAS,IAAM,CACxB,EAAiB,EACjB,EAAoB,MAGrB,EAAU,MAAQ,IAAM,CACvB,GAAI,IAAsB,KACzB,OAAO,EAGR,OAAO,EAAO,GAGf,EAAU,QAAU,IAAM,IAAsB,KAEzC",
8
- "debugId": "F738313E2B51C3E564756E2164756E21",
7
+ "mappings": "AA2CO,SAAS,CAA0B,CAAC,EAAa,EAAuC,CAC9F,IAAI,EAAmD,KACnD,EAAkD,KAClD,EAEE,EAAmB,IAAM,CAC9B,GAAI,IAAe,KAClB,aAAa,CAAU,EACvB,EAAa,MAIT,EAAS,IAAiC,CAC/C,GAAI,IAAsB,KACzB,OAAO,EAGR,IAAM,EAAa,EAKnB,OAJA,EAAoB,KACpB,EAAiB,EACjB,EAAa,EAAW,EAEjB,GAGF,EAAY,QAAS,IAAgC,EAAqB,CAC/E,EAAoB,IAAM,EAAS,MAAM,KAAM,CAAI,EACnD,EAAiB,EACjB,EAAa,WAAW,IAAM,CAC7B,EAAO,GACL,CAAO,GAkBX,OAfA,EAAU,OAAS,IAAM,CACxB,EAAiB,EACjB,EAAoB,MAGrB,EAAU,MAAQ,IAAM,CACvB,GAAI,IAAsB,KACzB,OAAO,EAGR,OAAO,EAAO,GAGf,EAAU,QAAU,IAAM,IAAsB,KAEzC",
8
+ "debugId": "A5D7EB3253CAF90164756E2164756E21",
9
9
  "names": []
10
10
  }
package/helpers/index.js CHANGED
@@ -1,3 +1,3 @@
1
- var{defineProperty:D,getOwnPropertyNames:I,getOwnPropertyDescriptor:S}=Object,Q=Object.prototype.hasOwnProperty;function A(x){return this[x]}var C=(x)=>{var $=(O??=new WeakMap).get(x),W;if($)return $;if($=D({},"__esModule",{value:!0}),x&&typeof x==="object"||typeof x==="function"){for(var _ of I(x))if(!Q.call($,_))D($,_,{get:A.bind(x,_),enumerable:!(W=S(x,_))||W.enumerable})}return O.set(x,$),$},O;var q=(x)=>x;function L(x,$){this[x]=q.bind(null,$)}var b=(x,$)=>{for(var W in $)D(x,W,{get:$[W],enumerable:!0,configurable:!0,set:L.bind($,W)})};var m=(x,$)=>()=>(x&&($=x(x=0)),$);var v=((x)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:($,W)=>(typeof require<"u"?require:$)[W]}):x)(function(x){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});function p(x,$){let W=null,_=null,B,N=()=>{if(W!==null)clearTimeout(W),W=null},U=()=>{if(_===null)return B;let X=_;return _=null,N(),B=X(),B},G=function(...X){_=()=>x.apply(this,X),N(),W=setTimeout(()=>{U()},$)};return G.cancel=()=>{N(),_=null},G.flush=()=>{if(_===null)return B;return U()},G.pending=()=>_!==null,G}class F{host;eventConfig;constructor(x,$){this.host=x,this.eventConfig=$}emit(x){let $=new CustomEvent(this.eventConfig.name,{detail:x,bubbles:this.eventConfig.bubbles,cancelable:this.eventConfig.cancelable,composed:this.eventConfig.composed});this.host.dispatchEvent($)}}function d(x,$){let W=new F(x,$);return x.registerEventEmitter($.name,W),W}function P(x){let $=globalThis.CSS;if(typeof $?.escape==="function")return $.escape(x);let W="";for(let _=0;_<x.length;_+=1){let B=x[_]??"",N=B.codePointAt(0)??0;if(N===0){W+="�";continue}let U=N>=1&&N<=31||N===127,G=_===0&&N>=48&&N<=57,X=_===1&&N>=48&&N<=57&&(x[0]??"")==="-",Y=_===0&&B==="-"&&x.length===1;if(U||G||X){W+=`\\${N.toString(16)} `;continue}if(N>=128||B==="-"||B==="_"||N>=48&&N<=57||N>=65&&N<=90||N>=97&&N<=122){W+=Y?`\\${B}`:B;continue}W+=`\\${B}`}return W}var Z=Symbol("radiant.shadowRootListenerHooks"),J=Symbol("radiant.patchedAttachShadow");function K(x){if(x instanceof Element)return x;if("host"in x)return x.host;return x.element}function T(x){return!(x instanceof Element)}function V(x,$,W,_){let B=(N)=>{if(N.target instanceof Element&&N.target.matches(W))_(N)};return x.addEventListener($.type,B,$.options),()=>{x.removeEventListener($.type,B,$.options)}}function H(x,$){let W=K(x);if(!W[Z])W[Z]=new Set;if(W[Z].add($),W[J])return;let _=W.attachShadow;W.attachShadow=function(N){let U=_.call(this,N);for(let G of W[Z]??[])G();return U},W[J]=!0}function c(x,$,W){if(T(x)&&"scope"in $&&$.scope&&$.scope!=="light")throw Error("RadiantController event listeners only support light DOM scope.");let _=K(x),B=W.bind(x),N=null,U=null,G=null,X=null,Y=!1,z=()=>{N?.(),U?.(),G?.(),X?.(),N=null,U=null,G=null,X=null},j=()=>{if(Y)return;if("window"in $&&!N)window.addEventListener($.type,B,$.options),N=()=>{window.removeEventListener($.type,B,$.options)};if("document"in $&&!U)document.addEventListener($.type,B,$.options),U=()=>{document.removeEventListener($.type,B,$.options)};if("selector"in $||"ref"in $){let M="selector"in $?$.selector:`[data-ref='${P($.ref)}']`;if($.scope!=="shadow"&&!G)G=V(_,$,M,B);if($.scope!=="light"&&_.shadowRoot&&!X)X=V(_.shadowRoot,$,M,B)}};if("selector"in $||"ref"in $){if($.scope!=="light")H(x,()=>{if(x.isConnected)j()})}if(x.registerConnectedCallback(j),x.registerCleanupCallback(z),x.isConnected)j();return()=>{Y=!0,z()}}function E(x){return!(x instanceof Element)}function R(x){return"shadowRoot"in x?x.shadowRoot??null:null}function y(x){return x instanceof Element?x:x.host}function k(x,$="light"){let W=R(x);if($==="shadow")return W?[W]:[];if($==="both")return W?[x,W]:[x];return[x]}function s(x,$){if(E(x)&&$.scope&&$.scope!=="light")throw Error("RadiantController queries only support light DOM scope.");let W=y(x),_="selector"in $?$.selector:`[data-ref="${$.ref}"]`,B=null,N=()=>{let U=k(W,$.scope);if($.all)return U.flatMap((G)=>Array.from(G.querySelectorAll(_)));for(let G of U){let X=G.querySelector(_);if(X)return X}return null};return{get value(){if($.cache){if(B===null||$.all&&Array.isArray(B)&&!B.length)B=N();return B}return N()}}}function n(x,$={}){let W=null,_,B=()=>{if($.all)return x.getSlotElements($.name);return x.getSlotElements($.name)[0]??null};return{get value(){if($.cache===!1)return B();let N=x.slotProjectionVersion??0;if(_!==N)W=B(),_=N;return W}}}export{y as resolveQueryHost,p as debounce,n as createQuerySlot,s as createQuery,c as createEventListener,d as createEvent};
1
+ function q($,x){let N=null,B=null,_,W=()=>{if(N!==null)clearTimeout(N),N=null},U=()=>{if(B===null)return _;let X=B;return B=null,W(),_=X(),_},G=function(...X){B=()=>$.apply(this,X),W(),N=setTimeout(()=>{U()},x)};return G.cancel=()=>{W(),B=null},G.flush=()=>{if(B===null)return _;return U()},G.pending=()=>B!==null,G}class D{host;eventConfig;constructor($,x){this.host=$,this.eventConfig=x}emit($){let x=new CustomEvent(this.eventConfig.name,{detail:$,bubbles:this.eventConfig.bubbles,cancelable:this.eventConfig.cancelable,composed:this.eventConfig.composed});this.host.dispatchEvent(x)}}function E($,x){let N=new D($,x);return $.registerEventEmitter(x.name,N),N}function M($){let x=globalThis.CSS;if(typeof x?.escape==="function")return x.escape($);let N="";for(let B=0;B<$.length;B+=1){let _=$[B]??"",W=_.codePointAt(0)??0;if(W===0){N+="�";continue}let U=W>=1&&W<=31||W===127,G=B===0&&W>=48&&W<=57,X=B===1&&W>=48&&W<=57&&($[0]??"")==="-",Y=B===0&&_==="-"&&$.length===1;if(U||G||X){N+=`\\${W.toString(16)} `;continue}if(W>=128||_==="-"||_==="_"||W>=48&&W<=57||W>=65&&W<=90||W>=97&&W<=122){N+=Y?`\\${_}`:_;continue}N+=`\\${_}`}return N}var Z=Symbol("radiant.shadowRootListenerHooks"),O=Symbol("radiant.patchedAttachShadow");function J($){if($ instanceof Element)return $;if("host"in $)return $.host;return $.element}function V($){return!($ instanceof Element)}function P($,x,N,B){let _=(W)=>{if(W.target instanceof Element&&W.target.matches(N))B(W)};return $.addEventListener(x.type,_,x.options),()=>{$.removeEventListener(x.type,_,x.options)}}function K($,x){let N=J($);if(!N[Z])N[Z]=new Set;if(N[Z].add(x),N[O])return;let B=N.attachShadow;N.attachShadow=function(W){let U=B.call(this,W);for(let G of N[Z]??[])G();return U},N[O]=!0}function C($,x,N){if(V($)&&"scope"in x&&x.scope&&x.scope!=="light")throw Error("RadiantController event listeners only support light DOM scope.");let B=J($),_=N.bind($),W=null,U=null,G=null,X=null,Y=!1,F=()=>{W?.(),U?.(),G?.(),X?.(),W=null,U=null,G=null,X=null},j=()=>{if(Y)return;if("window"in x&&!W)window.addEventListener(x.type,_,x.options),W=()=>{window.removeEventListener(x.type,_,x.options)};if("document"in x&&!U)document.addEventListener(x.type,_,x.options),U=()=>{document.removeEventListener(x.type,_,x.options)};if("selector"in x||"ref"in x){let z="selector"in x?x.selector:`[data-ref='${M(x.ref)}']`;if(x.scope!=="shadow"&&!G)G=P(B,x,z,_);if(x.scope!=="light"&&B.shadowRoot&&!X)X=P(B.shadowRoot,x,z,_)}};if("selector"in x||"ref"in x){if(x.scope!=="light")K($,()=>{if($.isConnected)j()})}if($.registerConnectedCallback(j),$.registerCleanupCallback(F),$.isConnected)j();return()=>{Y=!0,F()}}function I($){return!($ instanceof Element)}function S($){return"shadowRoot"in $?$.shadowRoot??null:null}function Q($){return $ instanceof Element?$:$.host}function A($,x="light"){let N=S($);if(x==="shadow")return N?[N]:[];if(x==="both")return N?[$,N]:[$];return[$]}function m($,x){if(I($)&&x.scope&&x.scope!=="light")throw Error("RadiantController queries only support light DOM scope.");let N=Q($),B="selector"in x?x.selector:`[data-ref="${x.ref}"]`,_=null,W=()=>{let U=A(N,x.scope);if(x.all)return U.flatMap((G)=>Array.from(G.querySelectorAll(B)));for(let G of U){let X=G.querySelector(B);if(X)return X}return null};return{get value(){if(x.cache){if(_===null||x.all&&Array.isArray(_)&&!_.length)_=W();return _}return W()}}}function w($,x={}){let N=null,B,_=()=>{if(x.all)return $.getSlotElements(x.name);return $.getSlotElements(x.name)[0]??null};return{get value(){if(x.cache===!1)return _();let W=$.slotProjectionVersion??0;if(B!==W)N=_(),B=W;return N}}}export{Q as resolveQueryHost,q as debounce,w as createQuerySlot,m as createQuery,C as createEventListener,E as createEvent};
2
2
 
3
- //# debugId=8494EE3E9EF074C364756E2164756E21
3
+ //# debugId=911E38A143210C9264756E2164756E21