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