defuss 3.4.7 → 3.4.8

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.
@@ -271,6 +271,20 @@ function unregisterComponent(el) {
271
271
  componentRegistry.delete(el);
272
272
  }
273
273
 
274
+ function reactive(config, target) {
275
+ const stores = Array.isArray(config.store) ? config.store : [config.store];
276
+ const ref = target instanceof HTMLElement ? { current: target } : target;
277
+ const update = () => {
278
+ dequery(ref).jsx(config.render());
279
+ };
280
+ update();
281
+ const unsubscribes = stores.map((s) => s.subscribe(update));
282
+ return () => {
283
+ unsubscribes.forEach((unsub) => unsub());
284
+ config.cleanup?.();
285
+ };
286
+ }
287
+
274
288
  const emptyImpl = (nodes) => {
275
289
  nodes.forEach((el) => {
276
290
  const element = el;
@@ -1040,6 +1054,15 @@ class CallChainImpl {
1040
1054
  }
1041
1055
  return this;
1042
1056
  }
1057
+ // --- Reactive ---
1058
+ reactive(config) {
1059
+ this._nodes.forEach((el) => {
1060
+ if (el instanceof HTMLElement) {
1061
+ reactive(config, el);
1062
+ }
1063
+ });
1064
+ return this;
1065
+ }
1043
1066
  }
1044
1067
  function dequery(selectorRefOrEl, options = getDefaultDequeryOptions()) {
1045
1068
  if (typeof selectorRefOrEl === "function") {
@@ -2598,6 +2621,7 @@ exports.parseEventPropName = parseEventPropName;
2598
2621
  exports.performTransition = performTransition;
2599
2622
  exports.processAllFormElements = processAllFormElements;
2600
2623
  exports.queueCallback = queueCallback;
2624
+ exports.reactive = reactive;
2601
2625
  exports.registerComponent = registerComponent;
2602
2626
  exports.registerDelegatedEvent = registerDelegatedEvent;
2603
2627
  exports.removeDelegatedEvent = removeDelegatedEvent;
@@ -269,6 +269,20 @@ function unregisterComponent(el) {
269
269
  componentRegistry.delete(el);
270
270
  }
271
271
 
272
+ function reactive(config, target) {
273
+ const stores = Array.isArray(config.store) ? config.store : [config.store];
274
+ const ref = target instanceof HTMLElement ? { current: target } : target;
275
+ const update = () => {
276
+ dequery(ref).jsx(config.render());
277
+ };
278
+ update();
279
+ const unsubscribes = stores.map((s) => s.subscribe(update));
280
+ return () => {
281
+ unsubscribes.forEach((unsub) => unsub());
282
+ config.cleanup?.();
283
+ };
284
+ }
285
+
272
286
  const emptyImpl = (nodes) => {
273
287
  nodes.forEach((el) => {
274
288
  const element = el;
@@ -1038,6 +1052,15 @@ class CallChainImpl {
1038
1052
  }
1039
1053
  return this;
1040
1054
  }
1055
+ // --- Reactive ---
1056
+ reactive(config) {
1057
+ this._nodes.forEach((el) => {
1058
+ if (el instanceof HTMLElement) {
1059
+ reactive(config, el);
1060
+ }
1061
+ });
1062
+ return this;
1063
+ }
1041
1064
  }
1042
1065
  function dequery(selectorRefOrEl, options = getDefaultDequeryOptions()) {
1043
1066
  if (typeof selectorRefOrEl === "function") {
@@ -2542,4 +2565,4 @@ function htmlStringToVNodes(html, Parser) {
2542
2565
  return vNodes;
2543
2566
  }
2544
2567
 
2545
- export { $, registerDelegatedEvent as A, removeDelegatedEvent as B, CAPTURE_ONLY_EVENTS as C, DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE as D, removeDelegatedEventByKey as E, Fragment as F, render as G, renderInto as H, renderIsomorphicAsync as I, renderIsomorphicSync as J, unregisterComponent as K, updateDom as L, createStore as M, CallChainImpl as N, addElementEvent as O, areDomNodesEqual as P, checkElementVisibility as Q, REF_ATTRIBUTE_NAME as R, clearElementEvents as S, deepEquals as T, dequery as U, domNodeToVNode as V, emptyImpl as W, XLINK_ATTRIBUTE_NAME as X, getAllFormValues as Y, getDefaultDequeryOptions as Z, getEventMap as _, CLASS_ATTRIBUTE_NAME as a, getMimeType as a0, htmlStringToVNodes as a1, isDequery as a2, isDequeryOptionsObject as a3, isHTML as a4, isMarkup as a5, isSVG as a6, parseDOM as a7, processAllFormElements as a8, queueCallback as a9, removeElementEvent as aa, renderMarkup as ab, replaceDomWithVdom as ac, scrollHelper as ad, shallowEquals as ae, updateDomWithVdom as af, waitForDOM as ag, webstorage as ah, DEFAULT_TRANSITION_CONFIG as b, XMLNS_ATTRIBUTE_NAME as c, applyStyles as d, clearDelegatedEvents as e, clearDelegatedEventsDeep as f, createInPlaceErrorMessageVNode as g, createRef as h, getComponentInstance as i, getRegisteredEventKeys as j, getRegisteredEventTypes as k, getRenderer as l, getTransitionStyles as m, globalScopeDomApis as n, handleLifecycleEventsForOnMount as o, isComponentRoot as p, isJSX as q, isRef as r, jsx as s, jsxDEV as t, jsxs as u, nsMap as v, observeUnmount as w, parseEventPropName as x, performTransition as y, registerComponent as z };
2568
+ export { $, getTransitionStyles as A, globalScopeDomApis as B, CAPTURE_ONLY_EVENTS as C, DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE as D, handleLifecycleEventsForOnMount as E, Fragment as F, htmlStringToVNodes as G, isComponentRoot as H, isDequery as I, isDequeryOptionsObject as J, isHTML as K, isJSX as L, isMarkup as M, isRef as N, isSVG as O, jsx as P, jsxDEV as Q, REF_ATTRIBUTE_NAME as R, jsxs as S, nsMap as T, observeUnmount as U, parseDOM as V, parseEventPropName as W, XLINK_ATTRIBUTE_NAME as X, performTransition as Y, processAllFormElements as Z, queueCallback as _, CLASS_ATTRIBUTE_NAME as a, reactive as a0, registerComponent as a1, registerDelegatedEvent as a2, removeDelegatedEvent as a3, removeDelegatedEventByKey as a4, removeElementEvent as a5, render as a6, renderInto as a7, renderIsomorphicAsync as a8, renderIsomorphicSync as a9, renderMarkup as aa, replaceDomWithVdom as ab, scrollHelper as ac, shallowEquals as ad, unregisterComponent as ae, updateDom as af, updateDomWithVdom as ag, waitForDOM as ah, webstorage as ai, CallChainImpl as b, DEFAULT_TRANSITION_CONFIG as c, XMLNS_ATTRIBUTE_NAME as d, addElementEvent as e, applyStyles as f, areDomNodesEqual as g, checkElementVisibility as h, clearDelegatedEvents as i, clearDelegatedEventsDeep as j, clearElementEvents as k, createInPlaceErrorMessageVNode as l, createRef as m, createStore as n, deepEquals as o, dequery as p, domNodeToVNode as q, emptyImpl as r, getAllFormValues as s, getComponentInstance as t, getDefaultDequeryOptions as u, getEventMap as v, getMimeType as w, getRegisteredEventKeys as x, getRegisteredEventTypes as y, getRenderer as z };
@@ -20,6 +20,34 @@ interface PersistenceProviderImpl<T> {
20
20
  type PersistenceProviderType = "session" | "local" | "memory";
21
21
  type PersistenceProviderOptions = MemoryProviderOptions;
22
22
 
23
+ type Listener<T> = (newValue: T, oldValue?: T, changedKey?: string) => void;
24
+ type EqualsFn<T> = (a: T, b: T) => boolean;
25
+ interface StoreOptions<T> {
26
+ /** Custom equality function. Default: Object.is (shallow identity) */
27
+ equals?: EqualsFn<T>;
28
+ }
29
+ interface Store<T> {
30
+ value: T;
31
+ /** Get value at path, or entire store if no path */
32
+ get: <D = T>(path?: string) => D;
33
+ /** Set value at path, or replace entire store if no path */
34
+ set: <D = T>(pathOrValue: string | D, value?: D) => void;
35
+ /** Get entire store value (clearer API than get()) */
36
+ getRaw: () => T;
37
+ /** Replace entire store value (clearer API than set(value)) */
38
+ setRaw: (value: T) => void;
39
+ /** Reset store to initial value or provided value */
40
+ reset: (value?: T) => void;
41
+ subscribe: (listener: Listener<T>) => () => void;
42
+ persist: (key: string, provider?: PersistenceProviderType) => void;
43
+ restore: (key: string, provider?: PersistenceProviderType) => void;
44
+ }
45
+ /** Shallow identity comparison (opt-in for performance) */
46
+ declare const shallowEquals: <T>(a: T, b: T) => boolean;
47
+ /** Deep equality via JSON (default - backward compatible) */
48
+ declare const deepEquals: <T>(a: T, b: T) => boolean;
49
+ declare const createStore: <T>(initialValue: T, options?: StoreOptions<T>) => Store<T>;
50
+
23
51
  type TransitionType = "fade" | "slide-left" | "slide-right" | "shake" | "none";
24
52
  interface TransitionStyles {
25
53
  enter: Record<string, string>;
@@ -169,6 +197,11 @@ declare class CallChainImpl<NT = DequerySyncMethodReturnType, ET extends Dequery
169
197
  debug(cb: (chain: CallChainImpl<NT, ET>) => void): ET;
170
198
  dispose(): void;
171
199
  ready(callback?: () => void): ET;
200
+ reactive(config: {
201
+ store: Store<any> | Store<any>[];
202
+ render: () => JSX.Element;
203
+ cleanup?: () => void;
204
+ }): ET;
172
205
  }
173
206
  type Dequery<NT> = CallChainImpl<NT, any>;
174
207
  declare function dequery<T extends EventTarget>(selectorRefOrEl: T, options?: DequeryOptions<T> & ElementCreationOptions): Dequery<T>;
@@ -184,34 +217,6 @@ declare function isDequery(obj: unknown): obj is CallChainImpl;
184
217
  declare function isDequeryOptionsObject(o: object): boolean;
185
218
  declare function getDefaultDequeryOptions<NT>(): DequeryOptions<NT>;
186
219
 
187
- type Listener<T> = (newValue: T, oldValue?: T, changedKey?: string) => void;
188
- type EqualsFn<T> = (a: T, b: T) => boolean;
189
- interface StoreOptions<T> {
190
- /** Custom equality function. Default: Object.is (shallow identity) */
191
- equals?: EqualsFn<T>;
192
- }
193
- interface Store<T> {
194
- value: T;
195
- /** Get value at path, or entire store if no path */
196
- get: <D = T>(path?: string) => D;
197
- /** Set value at path, or replace entire store if no path */
198
- set: <D = T>(pathOrValue: string | D, value?: D) => void;
199
- /** Get entire store value (clearer API than get()) */
200
- getRaw: () => T;
201
- /** Replace entire store value (clearer API than set(value)) */
202
- setRaw: (value: T) => void;
203
- /** Reset store to initial value or provided value */
204
- reset: (value?: T) => void;
205
- subscribe: (listener: Listener<T>) => () => void;
206
- persist: (key: string, provider?: PersistenceProviderType) => void;
207
- restore: (key: string, provider?: PersistenceProviderType) => void;
208
- }
209
- /** Shallow identity comparison (opt-in for performance) */
210
- declare const shallowEquals: <T>(a: T, b: T) => boolean;
211
- /** Deep equality via JSON (default - backward compatible) */
212
- declare const deepEquals: <T>(a: T, b: T) => boolean;
213
- declare const createStore: <T>(initialValue: T, options?: StoreOptions<T>) => Store<T>;
214
-
215
220
  declare global {
216
221
  var __defuss_document: Document;
217
222
  var __defuss_window: Window;
@@ -1320,5 +1325,5 @@ declare function updateDom<NT>(input: string | RenderInput | Ref<NodeType> | Nod
1320
1325
  declare const isRef: <NT extends Node | Element | Text | null = HTMLElement, ST = any>(obj: any) => obj is Ref<NT, ST>;
1321
1326
  declare function createRef<NT extends DOMElement = DOMElement, ST = any>(refUpdateFn?: RefUpdateFn<ST>, defaultState?: ST): Ref<NT, ST>;
1322
1327
 
1323
- export { CLASS_ATTRIBUTE_NAME as C, DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE as D, XLINK_ATTRIBUTE_NAME as a3, XMLNS_ATTRIBUTE_NAME as a4, applyStyles as a5, createInPlaceErrorMessageVNode as a6, createRef as a7, getRenderer as a8, getTransitionStyles as a9, createStore as aO, deepEquals as aP, dequery as aQ, emptyImpl as aR, getAllFormValues as aS, getDefaultDequeryOptions as aT, isDequery as aU, isDequeryOptionsObject as aV, render as aW, scrollHelper as aX, shallowEquals as aY, globalScopeDomApis as aa, handleLifecycleEventsForOnMount as ab, isJSX as ac, isRef as ad, jsx as ae, jsxDEV as af, jsxs as ag, nsMap as ah, observeUnmount as ai, performTransition as aj, renderInto as ak, renderIsomorphicAsync as al, renderIsomorphicSync as am, updateDom as an, $ as ar, CallChainImpl as at, DEFAULT_TRANSITION_CONFIG as h, Fragment as p, REF_ATTRIBUTE_NAME as u };
1324
- export type { VNodeRef as $, AllHTMLElements as A, RenderResultNode as B, ElementProps as E, FC as F, Globals as G, SyncRenderResult as H, TransitionStyles as I, JsxRuntimeHookFn as J, KeyFrameProperties as K, TransitionType as L, Maybe as M, NodeType as N, OneOrMany as O, ParentElementInputAsync as P, TransitionsEasing as Q, RenderInput as R, SyncRenderInput as S, TransitionConfig as T, UnmountHandler as U, VAttributes as V, VNode as W, VNodeAttributes as X, VNodeChild as Y, VNodeChildren as Z, VNodeKey as _, RenderResult as a, VNodeRefCallback as a0, VNodeRefObject as a1, VNodeType as a2, EqualsFn as aA, EventMapFor as aB, EventMapForAny as aC, FormFieldValue as aD, FormKeyValues as aE, Listener as aF, MemoryStorage as aG, MiddlewareFn as aH, Position as aI, Store as aJ, StoreOptions as aK, TargetOf as aL, UnionToIntersection as aM, WebStorage as aN, PersistenceProviderType as ao, PersistenceProviderOptions as ap, PersistenceProviderImpl as aq, AnyEventHandler as as, DOMPropValue as au, Dequery as av, DequeryOptions as aw, DequerySyncMethodReturnType as ax, Dimensions as ay, ElementCreationOptions as az, ParentElementInput as b, AsyncDefussChild as c, AsyncFC as d, AsyncFunctionComponent as e, CSSProperties as f, Children as g, DOMElement as i, DefussChild as j, DefussChildren as k, DefussClassValue as l, DefussKey as m, DomAbstractionImpl as n, FontFaceProperties as o, FunctionComponent as q, JsxSourceInfo as r, MountHandler as s, Props as t, Ref as v, RefUpdateFn as w, RefUpdateRenderFn as x, RefUpdateRenderFnInput as y, RenderNodeInput as z };
1328
+ export { $, Fragment as B, CLASS_ATTRIBUTE_NAME as C, DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE as D, REF_ATTRIBUTE_NAME as Z, dequery as aA, emptyImpl as aB, getAllFormValues as aC, getDefaultDequeryOptions as aD, getRenderer as aE, getTransitionStyles as aF, globalScopeDomApis as aG, handleLifecycleEventsForOnMount as aH, isDequery as aI, isDequeryOptionsObject as aJ, isJSX as aK, isRef as aL, jsx as aM, jsxDEV as aN, jsxs as aO, nsMap as aP, observeUnmount as aQ, performTransition as aR, render as aS, renderInto as aT, renderIsomorphicAsync as aU, renderIsomorphicSync as aV, scrollHelper as aW, shallowEquals as aX, updateDom as aY, XLINK_ATTRIBUTE_NAME as at, XMLNS_ATTRIBUTE_NAME as au, applyStyles as av, createInPlaceErrorMessageVNode as aw, createRef as ax, createStore as ay, deepEquals as az, CallChainImpl as f, DEFAULT_TRANSITION_CONFIG as h };
1329
+ export type { AllHTMLElements as A, ElementCreationOptions as E, FC as F, FunctionComponent as G, Globals as H, JsxSourceInfo as I, JsxRuntimeHookFn as J, KeyFrameProperties as K, Listener as L, Maybe as M, MemoryStorage as N, MiddlewareFn as O, MountHandler as P, NodeType as Q, OneOrMany as R, ParentElementInput as S, ParentElementInputAsync as T, PersistenceProviderImpl as U, PersistenceProviderOptions as V, PersistenceProviderType as W, Position as X, Props as Y, Ref as _, AnyEventHandler as a, RefUpdateFn as a0, RefUpdateRenderFn as a1, RefUpdateRenderFnInput as a2, RenderInput as a3, RenderNodeInput as a4, RenderResult as a5, RenderResultNode as a6, Store as a7, StoreOptions as a8, SyncRenderInput as a9, SyncRenderResult as aa, TargetOf as ab, TransitionConfig as ac, TransitionStyles as ad, TransitionType as ae, TransitionsEasing as af, UnionToIntersection as ag, UnmountHandler as ah, VAttributes as ai, VNode as aj, VNodeAttributes as ak, VNodeChild as al, VNodeChildren as am, VNodeKey as an, VNodeRef as ao, VNodeRefCallback as ap, VNodeRefObject as aq, VNodeType as ar, WebStorage as as, AsyncDefussChild as b, AsyncFC as c, AsyncFunctionComponent as d, CSSProperties as e, Children as g, DOMElement as i, DOMPropValue as j, DefussChild as k, DefussChildren as l, DefussClassValue as m, DefussKey as n, Dequery as o, DequeryOptions as p, DequerySyncMethodReturnType as q, Dimensions as r, DomAbstractionImpl as s, ElementProps as t, EqualsFn as u, EventMapFor as v, EventMapForAny as w, FontFaceProperties as x, FormFieldValue as y, FormKeyValues as z };
package/dist/index.cjs CHANGED
@@ -1,11 +1,78 @@
1
1
  'use strict';
2
2
 
3
- var dom = require('./dom-DIfHWdHZ.cjs');
4
- var mount = require('./mount-C9aDnSHs.cjs');
3
+ var dom = require('./dom-D--m76Im.cjs');
4
+ var mount = require('./mount-CY0wDye_.cjs');
5
5
  require('defuss-runtime');
6
6
 
7
7
  const inDevMode = typeof process !== "undefined" && process.env ? process.env.NODE_ENV !== "production" : false;
8
8
 
9
+ function computed(stores, fn) {
10
+ const storeList = Array.isArray(stores) ? stores : [stores];
11
+ let value = fn(...storeList.map((s) => s.value));
12
+ const listeners = [];
13
+ const recalculate = () => {
14
+ const oldValue = value;
15
+ value = fn(...storeList.map((s) => s.value));
16
+ if (value !== oldValue) {
17
+ listeners.forEach((l) => l(value, oldValue));
18
+ }
19
+ };
20
+ storeList.map((s) => s.subscribe(recalculate));
21
+ return {
22
+ get value() {
23
+ return value;
24
+ },
25
+ get: () => value,
26
+ set: () => {
27
+ throw new Error("Computed stores are read-only");
28
+ },
29
+ getRaw: () => value,
30
+ setRaw: () => {
31
+ throw new Error("Computed stores are read-only");
32
+ },
33
+ reset: () => {
34
+ },
35
+ subscribe: (listener) => {
36
+ listeners.push(listener);
37
+ return () => {
38
+ const idx = listeners.indexOf(listener);
39
+ if (idx >= 0) listeners.splice(idx, 1);
40
+ };
41
+ },
42
+ persist: () => {
43
+ },
44
+ restore: () => {
45
+ }
46
+ };
47
+ }
48
+
49
+ const Reactive = ({
50
+ store,
51
+ render,
52
+ cleanup,
53
+ tag = "div",
54
+ className,
55
+ ref = dom.createRef(),
56
+ ...props
57
+ }) => {
58
+ const reactiveRef = ref || dom.createRef();
59
+ let cleanupFn;
60
+ return /* @__PURE__ */ dom.jsx(
61
+ "tag",
62
+ {
63
+ ref: reactiveRef,
64
+ class: className,
65
+ ...props,
66
+ onMount: () => {
67
+ cleanupFn = dom.reactive({ store, render, cleanup }, reactiveRef);
68
+ },
69
+ onUnmount: () => {
70
+ cleanupFn?.();
71
+ }
72
+ }
73
+ );
74
+ };
75
+
9
76
  const VARIABLE_REGEX = /{([^}]*)}/g;
10
77
  const DOUBLE_BRACE_REGEX = /\{\{([^}]*)\}\}/g;
11
78
  const interpolate = (template, replacements) => {
@@ -764,6 +831,7 @@ exports.parseEventPropName = dom.parseEventPropName;
764
831
  exports.performTransition = dom.performTransition;
765
832
  exports.processAllFormElements = dom.processAllFormElements;
766
833
  exports.queueCallback = dom.queueCallback;
834
+ exports.reactive = dom.reactive;
767
835
  exports.registerComponent = dom.registerComponent;
768
836
  exports.registerDelegatedEvent = dom.registerDelegatedEvent;
769
837
  exports.removeDelegatedEvent = dom.removeDelegatedEvent;
@@ -785,6 +853,7 @@ exports.webstorage = dom.webstorage;
785
853
  exports.mount = mount.mount;
786
854
  exports.unmount = mount.unmount;
787
855
  exports.Async = Async;
856
+ exports.Reactive = Reactive;
788
857
  exports.Redirect = Redirect;
789
858
  exports.Route = Route;
790
859
  exports.Router = Router;
@@ -794,6 +863,7 @@ exports.Suspense = Suspense;
794
863
  exports.T = T;
795
864
  exports.Trans = Trans;
796
865
  exports.changeLanguage = changeLanguage;
866
+ exports.computed = computed;
797
867
  exports.createI18n = createI18n;
798
868
  exports.createTrans = createTrans;
799
869
  exports.getLanguage = getLanguage;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { ao as PersistenceProviderType, ap as PersistenceProviderOptions, aq as PersistenceProviderImpl, W as VNode, X as VNodeAttributes, N as NodeType, R as RenderInput, G as Globals, t as Props, v as Ref, i as DOMElement, Y as VNodeChild, F as FC, T as TransitionConfig, c as AsyncDefussChild } from './index-CDeQTFKH.js';
2
- export { ar as $, A as AllHTMLElements, as as AnyEventHandler, d as AsyncFC, e as AsyncFunctionComponent, C as CLASS_ATTRIBUTE_NAME, f as CSSProperties, at as CallChainImpl, g as Children, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, h as DEFAULT_TRANSITION_CONFIG, au as DOMPropValue, j as DefussChild, k as DefussChildren, l as DefussClassValue, m as DefussKey, av as Dequery, aw as DequeryOptions, ax as DequerySyncMethodReturnType, ay as Dimensions, n as DomAbstractionImpl, az as ElementCreationOptions, E as ElementProps, aA as EqualsFn, aB as EventMapFor, aC as EventMapForAny, o as FontFaceProperties, aD as FormFieldValue, aE as FormKeyValues, p as Fragment, q as FunctionComponent, J as JsxRuntimeHookFn, r as JsxSourceInfo, K as KeyFrameProperties, aF as Listener, M as Maybe, aG as MemoryStorage, aH as MiddlewareFn, s as MountHandler, O as OneOrMany, b as ParentElementInput, P as ParentElementInputAsync, aI as Position, u as REF_ATTRIBUTE_NAME, w as RefUpdateFn, x as RefUpdateRenderFn, y as RefUpdateRenderFnInput, z as RenderNodeInput, a as RenderResult, B as RenderResultNode, aJ as Store, aK as StoreOptions, S as SyncRenderInput, H as SyncRenderResult, aL as TargetOf, I as TransitionStyles, L as TransitionType, Q as TransitionsEasing, aM as UnionToIntersection, U as UnmountHandler, V as VAttributes, Z as VNodeChildren, _ as VNodeKey, $ as VNodeRef, a0 as VNodeRefCallback, a1 as VNodeRefObject, a2 as VNodeType, aN as WebStorage, a3 as XLINK_ATTRIBUTE_NAME, a4 as XMLNS_ATTRIBUTE_NAME, a5 as applyStyles, a6 as createInPlaceErrorMessageVNode, a7 as createRef, aO as createStore, aP as deepEquals, aQ as dequery, aR as emptyImpl, aS as getAllFormValues, aT as getDefaultDequeryOptions, a8 as getRenderer, a9 as getTransitionStyles, aa as globalScopeDomApis, ab as handleLifecycleEventsForOnMount, aU as isDequery, aV as isDequeryOptionsObject, ac as isJSX, ad as isRef, ae as jsx, af as jsxDEV, ag as jsxs, ah as nsMap, ai as observeUnmount, aj as performTransition, aW as render, ak as renderInto, al as renderIsomorphicAsync, am as renderIsomorphicSync, aX as scrollHelper, aY as shallowEquals, an as updateDom } from './index-CDeQTFKH.js';
1
+ import { W as PersistenceProviderType, V as PersistenceProviderOptions, U as PersistenceProviderImpl, aj as VNode, ak as VNodeAttributes, Q as NodeType, a3 as RenderInput, H as Globals, a7 as Store, _ as Ref, F as FC, t as ElementProps, Y as Props, i as DOMElement, al as VNodeChild, ac as TransitionConfig, b as AsyncDefussChild } from './index-CeFAHwJi.js';
2
+ export { $, A as AllHTMLElements, a as AnyEventHandler, c as AsyncFC, d as AsyncFunctionComponent, C as CLASS_ATTRIBUTE_NAME, e as CSSProperties, f as CallChainImpl, g as Children, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, h as DEFAULT_TRANSITION_CONFIG, j as DOMPropValue, k as DefussChild, l as DefussChildren, m as DefussClassValue, n as DefussKey, o as Dequery, p as DequeryOptions, q as DequerySyncMethodReturnType, r as Dimensions, s as DomAbstractionImpl, E as ElementCreationOptions, u as EqualsFn, v as EventMapFor, w as EventMapForAny, x as FontFaceProperties, y as FormFieldValue, z as FormKeyValues, B as Fragment, G as FunctionComponent, J as JsxRuntimeHookFn, I as JsxSourceInfo, K as KeyFrameProperties, L as Listener, M as Maybe, N as MemoryStorage, O as MiddlewareFn, P as MountHandler, R as OneOrMany, S as ParentElementInput, T as ParentElementInputAsync, X as Position, Z as REF_ATTRIBUTE_NAME, a0 as RefUpdateFn, a1 as RefUpdateRenderFn, a2 as RefUpdateRenderFnInput, a4 as RenderNodeInput, a5 as RenderResult, a6 as RenderResultNode, a8 as StoreOptions, a9 as SyncRenderInput, aa as SyncRenderResult, ab as TargetOf, ad as TransitionStyles, ae as TransitionType, af as TransitionsEasing, ag as UnionToIntersection, ah as UnmountHandler, ai as VAttributes, am as VNodeChildren, an as VNodeKey, ao as VNodeRef, ap as VNodeRefCallback, aq as VNodeRefObject, ar as VNodeType, as as WebStorage, at as XLINK_ATTRIBUTE_NAME, au as XMLNS_ATTRIBUTE_NAME, av as applyStyles, aw as createInPlaceErrorMessageVNode, ax as createRef, ay as createStore, az as deepEquals, aA as dequery, aB as emptyImpl, aC as getAllFormValues, aD as getDefaultDequeryOptions, aE as getRenderer, aF as getTransitionStyles, aG as globalScopeDomApis, aH as handleLifecycleEventsForOnMount, aI as isDequery, aJ as isDequeryOptionsObject, aK as isJSX, aL as isRef, aM as jsx, aN as jsxDEV, aO as jsxs, aP as nsMap, aQ as observeUnmount, aR as performTransition, aS as render, aT as renderInto, aU as renderIsomorphicAsync, aV as renderIsomorphicSync, aW as scrollHelper, aX as shallowEquals, aY as updateDom } from './index-CeFAHwJi.js';
3
3
  export { CAPTURE_ONLY_EVENTS, ComponentInstance, DelegatedEventOptions, DelegatedPhase, ParsedEventProp, clearDelegatedEvents, clearDelegatedEventsDeep, getComponentInstance, getRegisteredEventKeys, getRegisteredEventTypes, isComponentRoot, mount, parseEventPropName, registerComponent, registerDelegatedEvent, removeDelegatedEvent, removeDelegatedEventByKey, unmount, unregisterComponent } from './render/index.js';
4
4
  import 'csstype';
5
5
 
@@ -69,6 +69,91 @@ declare function htmlStringToVNodes(html: string, Parser: typeof DOMParser): Arr
69
69
 
70
70
  declare const queueCallback: <T extends any[]>(cb: (...args: T) => void) => (...args: T) => void;
71
71
 
72
+ /**
73
+ * Creates a computed (derived) store from other stores.
74
+ * The computed value is recalculated when any dependency store changes.
75
+ *
76
+ * @example
77
+ * ```ts
78
+ * const countStore = createStore({ count: 0 });
79
+ * const doubled = computed(countStore, (v) => v.count * 2);
80
+ *
81
+ * // Or with multiple stores:
82
+ * const a = createStore({ value: 1 });
83
+ * const b = createStore({ value: 2 });
84
+ * const sum = computed([a, b], (av, bv) => av.value + bv.value);
85
+ * ```
86
+ */
87
+ declare function computed<T>(stores: Store<any> | Store<any>[], fn: (...values: any[]) => T): Store<T>;
88
+
89
+ /**
90
+ * Configuration for reactive rendering.
91
+ */
92
+ interface ReactiveConfig {
93
+ /** One or more stores to subscribe to. */
94
+ store: Store<any> | Store<any>[];
95
+ /** Render function that returns JSX to render into the target. */
96
+ render: () => JSX.Element;
97
+ /** Optional cleanup function called on unmount. */
98
+ cleanup?: () => void;
99
+ }
100
+ /**
101
+ * Core reactive utility - subscribes to store(s) and re-renders JSX on changes.
102
+ * Returns a cleanup function to unsubscribe all stores and call optional cleanup.
103
+ *
104
+ * @example
105
+ * ```ts
106
+ * const store = createStore({ count: 0 });
107
+ * const ref = createRef<HTMLDivElement>();
108
+ *
109
+ * // In onMount:
110
+ * const cleanup = reactive({
111
+ * store,
112
+ * render: () => <div>Count: {store.value.count}</div>,
113
+ * cleanup: () => console.log("unmounted")
114
+ * }, ref);
115
+ *
116
+ * // Later, to clean up:
117
+ * cleanup();
118
+ * ```
119
+ */
120
+ declare function reactive(config: ReactiveConfig, target: Ref<HTMLElement> | HTMLElement): () => void;
121
+
122
+ /**
123
+ * Props for the Reactive component.
124
+ */
125
+ interface ReactiveProps extends ElementProps<HTMLDivElement> {
126
+ /** One or more stores to subscribe to. */
127
+ store: ReactiveConfig["store"];
128
+ /** Render function that returns JSX to render into the component. */
129
+ render: ReactiveConfig["render"];
130
+ /** Optional cleanup function called on unmount. */
131
+ cleanup?: ReactiveConfig["cleanup"];
132
+ /** Wrapper element tag name. Default: "div". */
133
+ tag?: string;
134
+ }
135
+ /**
136
+ * A component that automatically re-renders when its store(s) change.
137
+ * Handles subscription setup on mount and cleanup on unmount.
138
+ *
139
+ * @example
140
+ * ```tsx
141
+ * import { Reactive, createStore } from "defuss";
142
+ *
143
+ * const store = createStore({ count: 0 });
144
+ *
145
+ * <Reactive store={store} render={() => (
146
+ * <div>
147
+ * <p>Count: {store.value.count}</p>
148
+ * <button onClick={() => store.set({ count: store.value.count + 1 })}>
149
+ * Increment
150
+ * </button>
151
+ * </div>
152
+ * )}/>
153
+ * ```
154
+ */
155
+ declare const Reactive: FC<ReactiveProps>;
156
+
72
157
  type Resolve<T> = T extends infer U ? U : never;
73
158
  type TranslationKeys<T, Prefix extends string = ""> = Resolve<{
74
159
  [K in keyof T]: T[K] extends Record<string, unknown> ? TranslationKeys<T[K], `${Prefix}${K & string}.`> : `${Prefix}${K & string}`;
@@ -485,5 +570,5 @@ declare const Suspense: ({ fallback, ref, children, class: _class, className, id
485
570
  children: (VNode<VNodeAttributes> | VNode<VNodeAttributes> | Promise<VNode<VNodeAttributes> | null>)[];
486
571
  };
487
572
 
488
- export { Async, AsyncDefussChild, DOMElement, FC, Globals, NodeType, PersistenceProviderImpl, PersistenceProviderOptions, PersistenceProviderType, Props, Redirect, Ref, RenderInput, Route, Router, RouterSlot, RouterSlotId, Suspense, T, Trans, TransitionConfig, VNode, VNodeAttributes, VNodeChild, addElementEvent, areDomNodesEqual, changeLanguage, checkElementVisibility, clearElementEvents, createI18n, createTrans, domNodeToVNode, getEventMap, getLanguage, getMimeType, getRouterState, htmlStringToVNodes, i18n, inDevMode, isHTML, isMarkup, isSVG, loadLanguage, matchRouteRegistrations, parseDOM, processAllFormElements, queueCallback, removeElementEvent, renderMarkup, replaceDomWithVdom, setupRouter, t, tokenizePath, updateDomWithVdom, waitForDOM, webstorage };
489
- export type { AsyncProps, AsyncState, AsyncStateRef, BeforeLeaveHookFn, I18nStore, LeaveHookFn, MatchRouteRegistrationsOpts, OnHandleRouteChangeFn, OnLanguageChangeListener, OnRouteChangeFn, RedirectProps, Replacements, Resolve, RouteComponentProps, RouteContext, RouteHandler, RouteParams, RouteProps, RouteRegistration, RouteRequest, RouterConfig, RouterSlotProps, RouterStrategy, TokenizedPath, TransProps, TransRef, TranslationKeys, TranslationObject, Translations, ValidChild };
573
+ export { Async, AsyncDefussChild, DOMElement, ElementProps, FC, Globals, NodeType, PersistenceProviderImpl, PersistenceProviderOptions, PersistenceProviderType, Props, Reactive, Redirect, Ref, RenderInput, Route, Router, RouterSlot, RouterSlotId, Store, Suspense, T, Trans, TransitionConfig, VNode, VNodeAttributes, VNodeChild, addElementEvent, areDomNodesEqual, changeLanguage, checkElementVisibility, clearElementEvents, computed, createI18n, createTrans, domNodeToVNode, getEventMap, getLanguage, getMimeType, getRouterState, htmlStringToVNodes, i18n, inDevMode, isHTML, isMarkup, isSVG, loadLanguage, matchRouteRegistrations, parseDOM, processAllFormElements, queueCallback, reactive, removeElementEvent, renderMarkup, replaceDomWithVdom, setupRouter, t, tokenizePath, updateDomWithVdom, waitForDOM, webstorage };
574
+ export type { AsyncProps, AsyncState, AsyncStateRef, BeforeLeaveHookFn, I18nStore, LeaveHookFn, MatchRouteRegistrationsOpts, OnHandleRouteChangeFn, OnLanguageChangeListener, OnRouteChangeFn, ReactiveConfig, ReactiveProps, RedirectProps, Replacements, Resolve, RouteComponentProps, RouteContext, RouteHandler, RouteParams, RouteProps, RouteRegistration, RouteRequest, RouterConfig, RouterSlotProps, RouterStrategy, TokenizedPath, TransProps, TransRef, TranslationKeys, TranslationObject, Translations, ValidChild };
package/dist/index.mjs CHANGED
@@ -1,10 +1,77 @@
1
- import { M as createStore, s as jsx, h as createRef, $, r as isRef } from './dom-DhkFpQzW.mjs';
2
- export { C as CAPTURE_ONLY_EVENTS, a as CLASS_ATTRIBUTE_NAME, N as CallChainImpl, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, b as DEFAULT_TRANSITION_CONFIG, F as Fragment, R as REF_ATTRIBUTE_NAME, X as XLINK_ATTRIBUTE_NAME, c as XMLNS_ATTRIBUTE_NAME, O as addElementEvent, d as applyStyles, P as areDomNodesEqual, Q as checkElementVisibility, e as clearDelegatedEvents, f as clearDelegatedEventsDeep, S as clearElementEvents, g as createInPlaceErrorMessageVNode, T as deepEquals, U as dequery, V as domNodeToVNode, W as emptyImpl, Y as getAllFormValues, i as getComponentInstance, Z as getDefaultDequeryOptions, _ as getEventMap, a0 as getMimeType, j as getRegisteredEventKeys, k as getRegisteredEventTypes, l as getRenderer, m as getTransitionStyles, n as globalScopeDomApis, o as handleLifecycleEventsForOnMount, a1 as htmlStringToVNodes, p as isComponentRoot, a2 as isDequery, a3 as isDequeryOptionsObject, a4 as isHTML, q as isJSX, a5 as isMarkup, a6 as isSVG, t as jsxDEV, u as jsxs, v as nsMap, w as observeUnmount, a7 as parseDOM, x as parseEventPropName, y as performTransition, a8 as processAllFormElements, a9 as queueCallback, z as registerComponent, A as registerDelegatedEvent, B as removeDelegatedEvent, E as removeDelegatedEventByKey, aa as removeElementEvent, G as render, H as renderInto, I as renderIsomorphicAsync, J as renderIsomorphicSync, ab as renderMarkup, ac as replaceDomWithVdom, ad as scrollHelper, ae as shallowEquals, K as unregisterComponent, L as updateDom, af as updateDomWithVdom, ag as waitForDOM, ah as webstorage } from './dom-DhkFpQzW.mjs';
3
- export { m as mount, u as unmount } from './mount-0BKlcRFL.mjs';
1
+ import { m as createRef, P as jsx, a0 as reactive, n as createStore, $, N as isRef } from './dom-_OdBXxSy.mjs';
2
+ export { C as CAPTURE_ONLY_EVENTS, a as CLASS_ATTRIBUTE_NAME, b as CallChainImpl, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, c as DEFAULT_TRANSITION_CONFIG, F as Fragment, R as REF_ATTRIBUTE_NAME, X as XLINK_ATTRIBUTE_NAME, d as XMLNS_ATTRIBUTE_NAME, e as addElementEvent, f as applyStyles, g as areDomNodesEqual, h as checkElementVisibility, i as clearDelegatedEvents, j as clearDelegatedEventsDeep, k as clearElementEvents, l as createInPlaceErrorMessageVNode, o as deepEquals, p as dequery, q as domNodeToVNode, r as emptyImpl, s as getAllFormValues, t as getComponentInstance, u as getDefaultDequeryOptions, v as getEventMap, w as getMimeType, x as getRegisteredEventKeys, y as getRegisteredEventTypes, z as getRenderer, A as getTransitionStyles, B as globalScopeDomApis, E as handleLifecycleEventsForOnMount, G as htmlStringToVNodes, H as isComponentRoot, I as isDequery, J as isDequeryOptionsObject, K as isHTML, L as isJSX, M as isMarkup, O as isSVG, Q as jsxDEV, S as jsxs, T as nsMap, U as observeUnmount, V as parseDOM, W as parseEventPropName, Y as performTransition, Z as processAllFormElements, _ as queueCallback, a1 as registerComponent, a2 as registerDelegatedEvent, a3 as removeDelegatedEvent, a4 as removeDelegatedEventByKey, a5 as removeElementEvent, a6 as render, a7 as renderInto, a8 as renderIsomorphicAsync, a9 as renderIsomorphicSync, aa as renderMarkup, ab as replaceDomWithVdom, ac as scrollHelper, ad as shallowEquals, ae as unregisterComponent, af as updateDom, ag as updateDomWithVdom, ah as waitForDOM, ai as webstorage } from './dom-_OdBXxSy.mjs';
3
+ export { m as mount, u as unmount } from './mount-BcFWqQDc.mjs';
4
4
  import 'defuss-runtime';
5
5
 
6
6
  const inDevMode = typeof process !== "undefined" && process.env ? process.env.NODE_ENV !== "production" : false;
7
7
 
8
+ function computed(stores, fn) {
9
+ const storeList = Array.isArray(stores) ? stores : [stores];
10
+ let value = fn(...storeList.map((s) => s.value));
11
+ const listeners = [];
12
+ const recalculate = () => {
13
+ const oldValue = value;
14
+ value = fn(...storeList.map((s) => s.value));
15
+ if (value !== oldValue) {
16
+ listeners.forEach((l) => l(value, oldValue));
17
+ }
18
+ };
19
+ storeList.map((s) => s.subscribe(recalculate));
20
+ return {
21
+ get value() {
22
+ return value;
23
+ },
24
+ get: () => value,
25
+ set: () => {
26
+ throw new Error("Computed stores are read-only");
27
+ },
28
+ getRaw: () => value,
29
+ setRaw: () => {
30
+ throw new Error("Computed stores are read-only");
31
+ },
32
+ reset: () => {
33
+ },
34
+ subscribe: (listener) => {
35
+ listeners.push(listener);
36
+ return () => {
37
+ const idx = listeners.indexOf(listener);
38
+ if (idx >= 0) listeners.splice(idx, 1);
39
+ };
40
+ },
41
+ persist: () => {
42
+ },
43
+ restore: () => {
44
+ }
45
+ };
46
+ }
47
+
48
+ const Reactive = ({
49
+ store,
50
+ render,
51
+ cleanup,
52
+ tag = "div",
53
+ className,
54
+ ref = createRef(),
55
+ ...props
56
+ }) => {
57
+ const reactiveRef = ref || createRef();
58
+ let cleanupFn;
59
+ return /* @__PURE__ */ jsx(
60
+ "tag",
61
+ {
62
+ ref: reactiveRef,
63
+ class: className,
64
+ ...props,
65
+ onMount: () => {
66
+ cleanupFn = reactive({ store, render, cleanup }, reactiveRef);
67
+ },
68
+ onUnmount: () => {
69
+ cleanupFn?.();
70
+ }
71
+ }
72
+ );
73
+ };
74
+
8
75
  const VARIABLE_REGEX = /{([^}]*)}/g;
9
76
  const DOUBLE_BRACE_REGEX = /\{\{([^}]*)\}\}/g;
10
77
  const interpolate = (template, replacements) => {
@@ -709,4 +776,4 @@ const Async = ({
709
776
  };
710
777
  const Suspense = Async;
711
778
 
712
- export { $, Async, Redirect, Route, Router, RouterSlot, RouterSlotId, Suspense, T, Trans, changeLanguage, createI18n, createRef, createStore, createTrans, getLanguage, getRouterState, i18n, inDevMode, isRef, jsx, loadLanguage, matchRouteRegistrations, setupRouter, t, tokenizePath };
779
+ export { $, Async, Reactive, Redirect, Route, Router, RouterSlot, RouterSlotId, Suspense, T, Trans, changeLanguage, computed, createI18n, createRef, createStore, createTrans, getLanguage, getRouterState, i18n, inDevMode, isRef, jsx, loadLanguage, matchRouteRegistrations, reactive, setupRouter, t, tokenizePath };
@@ -1,4 +1,4 @@
1
- import { J as renderIsomorphicSync, z as registerComponent, w as observeUnmount, K as unregisterComponent } from './dom-DhkFpQzW.mjs';
1
+ import { a9 as renderIsomorphicSync, a1 as registerComponent, U as observeUnmount, ae as unregisterComponent } from './dom-_OdBXxSy.mjs';
2
2
 
3
3
  function mount(container, Component, initialProps) {
4
4
  while (container.firstChild) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var dom = require('./dom-DIfHWdHZ.cjs');
3
+ var dom = require('./dom-D--m76Im.cjs');
4
4
 
5
5
  function mount(container, Component, initialProps) {
6
6
  while (container.firstChild) {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var dom = require('../dom-DIfHWdHZ.cjs');
4
- var mount = require('../mount-C9aDnSHs.cjs');
3
+ var dom = require('../dom-D--m76Im.cjs');
4
+ var mount = require('../mount-CY0wDye_.cjs');
5
5
  require('defuss-runtime');
6
6
 
7
7
  const renderSync = (virtualNode, parentDomElement = document.documentElement) => {
@@ -1,5 +1,5 @@
1
- import { W as VNode, R as RenderInput, P as ParentElementInputAsync, a as RenderResult, b as ParentElementInput } from '../index-CDeQTFKH.js';
2
- export { A as AllHTMLElements, c as AsyncDefussChild, d as AsyncFC, e as AsyncFunctionComponent, C as CLASS_ATTRIBUTE_NAME, f as CSSProperties, g as Children, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, h as DEFAULT_TRANSITION_CONFIG, i as DOMElement, j as DefussChild, k as DefussChildren, l as DefussClassValue, m as DefussKey, n as DomAbstractionImpl, E as ElementProps, F as FC, o as FontFaceProperties, p as Fragment, q as FunctionComponent, G as Globals, J as JsxRuntimeHookFn, r as JsxSourceInfo, K as KeyFrameProperties, M as Maybe, s as MountHandler, N as NodeType, O as OneOrMany, t as Props, u as REF_ATTRIBUTE_NAME, v as Ref, w as RefUpdateFn, x as RefUpdateRenderFn, y as RefUpdateRenderFnInput, z as RenderNodeInput, B as RenderResultNode, S as SyncRenderInput, H as SyncRenderResult, T as TransitionConfig, I as TransitionStyles, L as TransitionType, Q as TransitionsEasing, U as UnmountHandler, V as VAttributes, X as VNodeAttributes, Y as VNodeChild, Z as VNodeChildren, _ as VNodeKey, $ as VNodeRef, a0 as VNodeRefCallback, a1 as VNodeRefObject, a2 as VNodeType, a3 as XLINK_ATTRIBUTE_NAME, a4 as XMLNS_ATTRIBUTE_NAME, a5 as applyStyles, a6 as createInPlaceErrorMessageVNode, a7 as createRef, a8 as getRenderer, a9 as getTransitionStyles, aa as globalScopeDomApis, ab as handleLifecycleEventsForOnMount, ac as isJSX, ad as isRef, ae as jsx, af as jsxDEV, ag as jsxs, ah as nsMap, ai as observeUnmount, aj as performTransition, ak as renderInto, al as renderIsomorphicAsync, am as renderIsomorphicSync, an as updateDom } from '../index-CDeQTFKH.js';
1
+ import { aj as VNode, a3 as RenderInput, T as ParentElementInputAsync, a5 as RenderResult, S as ParentElementInput } from '../index-CeFAHwJi.js';
2
+ export { A as AllHTMLElements, b as AsyncDefussChild, c as AsyncFC, d as AsyncFunctionComponent, C as CLASS_ATTRIBUTE_NAME, e as CSSProperties, g as Children, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, h as DEFAULT_TRANSITION_CONFIG, i as DOMElement, k as DefussChild, l as DefussChildren, m as DefussClassValue, n as DefussKey, s as DomAbstractionImpl, t as ElementProps, F as FC, x as FontFaceProperties, B as Fragment, G as FunctionComponent, H as Globals, J as JsxRuntimeHookFn, I as JsxSourceInfo, K as KeyFrameProperties, M as Maybe, P as MountHandler, Q as NodeType, R as OneOrMany, Y as Props, Z as REF_ATTRIBUTE_NAME, _ as Ref, a0 as RefUpdateFn, a1 as RefUpdateRenderFn, a2 as RefUpdateRenderFnInput, a4 as RenderNodeInput, a6 as RenderResultNode, a9 as SyncRenderInput, aa as SyncRenderResult, ac as TransitionConfig, ad as TransitionStyles, ae as TransitionType, af as TransitionsEasing, ah as UnmountHandler, ai as VAttributes, ak as VNodeAttributes, al as VNodeChild, am as VNodeChildren, an as VNodeKey, ao as VNodeRef, ap as VNodeRefCallback, aq as VNodeRefObject, ar as VNodeType, at as XLINK_ATTRIBUTE_NAME, au as XMLNS_ATTRIBUTE_NAME, av as applyStyles, aw as createInPlaceErrorMessageVNode, ax as createRef, aE as getRenderer, aF as getTransitionStyles, aG as globalScopeDomApis, aH as handleLifecycleEventsForOnMount, aK as isJSX, aL as isRef, aM as jsx, aN as jsxDEV, aO as jsxs, aP as nsMap, aQ as observeUnmount, aR as performTransition, aT as renderInto, aU as renderIsomorphicAsync, aV as renderIsomorphicSync, aY as updateDom } from '../index-CeFAHwJi.js';
3
3
  export { CAPTURE_ONLY_EVENTS, ComponentInstance, DelegatedEventOptions, DelegatedPhase, ParsedEventProp, clearDelegatedEvents, clearDelegatedEventsDeep, getComponentInstance, getRegisteredEventKeys, getRegisteredEventTypes, isComponentRoot, mount, parseEventPropName, registerComponent, registerDelegatedEvent, removeDelegatedEvent, removeDelegatedEventByKey, unmount, unregisterComponent } from './index.js';
4
4
  import 'csstype';
5
5
 
@@ -1,6 +1,6 @@
1
- import { x as parseEventPropName, A as registerDelegatedEvent, w as observeUnmount, n as globalScopeDomApis, I as renderIsomorphicAsync, J as renderIsomorphicSync } from '../dom-DhkFpQzW.mjs';
2
- export { C as CAPTURE_ONLY_EVENTS, a as CLASS_ATTRIBUTE_NAME, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, b as DEFAULT_TRANSITION_CONFIG, F as Fragment, R as REF_ATTRIBUTE_NAME, X as XLINK_ATTRIBUTE_NAME, c as XMLNS_ATTRIBUTE_NAME, d as applyStyles, e as clearDelegatedEvents, f as clearDelegatedEventsDeep, g as createInPlaceErrorMessageVNode, h as createRef, i as getComponentInstance, j as getRegisteredEventKeys, k as getRegisteredEventTypes, l as getRenderer, m as getTransitionStyles, o as handleLifecycleEventsForOnMount, p as isComponentRoot, q as isJSX, r as isRef, s as jsx, t as jsxDEV, u as jsxs, v as nsMap, y as performTransition, z as registerComponent, B as removeDelegatedEvent, E as removeDelegatedEventByKey, H as renderInto, K as unregisterComponent, L as updateDom } from '../dom-DhkFpQzW.mjs';
3
- export { m as mount, u as unmount } from '../mount-0BKlcRFL.mjs';
1
+ import { W as parseEventPropName, a2 as registerDelegatedEvent, U as observeUnmount, B as globalScopeDomApis, a8 as renderIsomorphicAsync, a9 as renderIsomorphicSync } from '../dom-_OdBXxSy.mjs';
2
+ export { C as CAPTURE_ONLY_EVENTS, a as CLASS_ATTRIBUTE_NAME, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, c as DEFAULT_TRANSITION_CONFIG, F as Fragment, R as REF_ATTRIBUTE_NAME, X as XLINK_ATTRIBUTE_NAME, d as XMLNS_ATTRIBUTE_NAME, f as applyStyles, i as clearDelegatedEvents, j as clearDelegatedEventsDeep, l as createInPlaceErrorMessageVNode, m as createRef, t as getComponentInstance, x as getRegisteredEventKeys, y as getRegisteredEventTypes, z as getRenderer, A as getTransitionStyles, E as handleLifecycleEventsForOnMount, H as isComponentRoot, L as isJSX, N as isRef, P as jsx, Q as jsxDEV, S as jsxs, T as nsMap, Y as performTransition, a1 as registerComponent, a3 as removeDelegatedEvent, a4 as removeDelegatedEventByKey, a7 as renderInto, ae as unregisterComponent, af as updateDom } from '../dom-_OdBXxSy.mjs';
3
+ export { m as mount, u as unmount } from '../mount-BcFWqQDc.mjs';
4
4
  import 'defuss-runtime';
5
5
 
6
6
  const renderSync = (virtualNode, parentDomElement = document.documentElement) => {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var dom = require('../../dom-DIfHWdHZ.cjs');
3
+ var dom = require('../../dom-D--m76Im.cjs');
4
4
  require('defuss-runtime');
5
5
 
6
6
 
@@ -1,2 +1,2 @@
1
- export { A as AllHTMLElements, c as AsyncDefussChild, d as AsyncFC, e as AsyncFunctionComponent, C as CLASS_ATTRIBUTE_NAME, f as CSSProperties, g as Children, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, h as DEFAULT_TRANSITION_CONFIG, i as DOMElement, j as DefussChild, k as DefussChildren, l as DefussClassValue, m as DefussKey, n as DomAbstractionImpl, E as ElementProps, F as FC, o as FontFaceProperties, p as Fragment, q as FunctionComponent, G as Globals, J as JsxRuntimeHookFn, r as JsxSourceInfo, K as KeyFrameProperties, M as Maybe, s as MountHandler, N as NodeType, O as OneOrMany, b as ParentElementInput, P as ParentElementInputAsync, t as Props, u as REF_ATTRIBUTE_NAME, v as Ref, w as RefUpdateFn, x as RefUpdateRenderFn, y as RefUpdateRenderFnInput, R as RenderInput, z as RenderNodeInput, a as RenderResult, B as RenderResultNode, S as SyncRenderInput, H as SyncRenderResult, T as TransitionConfig, I as TransitionStyles, L as TransitionType, Q as TransitionsEasing, U as UnmountHandler, V as VAttributes, W as VNode, X as VNodeAttributes, Y as VNodeChild, Z as VNodeChildren, _ as VNodeKey, $ as VNodeRef, a0 as VNodeRefCallback, a1 as VNodeRefObject, a2 as VNodeType, a3 as XLINK_ATTRIBUTE_NAME, a4 as XMLNS_ATTRIBUTE_NAME, a5 as applyStyles, a6 as createInPlaceErrorMessageVNode, a7 as createRef, a8 as getRenderer, a9 as getTransitionStyles, aa as globalScopeDomApis, ab as handleLifecycleEventsForOnMount, ac as isJSX, ad as isRef, ae as jsx, af as jsxDEV, ag as jsxs, ah as nsMap, ai as observeUnmount, aj as performTransition, aW as render, ak as renderInto, al as renderIsomorphicAsync, am as renderIsomorphicSync, an as updateDom } from '../../index-CDeQTFKH.js';
1
+ export { A as AllHTMLElements, b as AsyncDefussChild, c as AsyncFC, d as AsyncFunctionComponent, C as CLASS_ATTRIBUTE_NAME, e as CSSProperties, g as Children, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, h as DEFAULT_TRANSITION_CONFIG, i as DOMElement, k as DefussChild, l as DefussChildren, m as DefussClassValue, n as DefussKey, s as DomAbstractionImpl, t as ElementProps, F as FC, x as FontFaceProperties, B as Fragment, G as FunctionComponent, H as Globals, J as JsxRuntimeHookFn, I as JsxSourceInfo, K as KeyFrameProperties, M as Maybe, P as MountHandler, Q as NodeType, R as OneOrMany, S as ParentElementInput, T as ParentElementInputAsync, Y as Props, Z as REF_ATTRIBUTE_NAME, _ as Ref, a0 as RefUpdateFn, a1 as RefUpdateRenderFn, a2 as RefUpdateRenderFnInput, a3 as RenderInput, a4 as RenderNodeInput, a5 as RenderResult, a6 as RenderResultNode, a9 as SyncRenderInput, aa as SyncRenderResult, ac as TransitionConfig, ad as TransitionStyles, ae as TransitionType, af as TransitionsEasing, ah as UnmountHandler, ai as VAttributes, aj as VNode, ak as VNodeAttributes, al as VNodeChild, am as VNodeChildren, an as VNodeKey, ao as VNodeRef, ap as VNodeRefCallback, aq as VNodeRefObject, ar as VNodeType, at as XLINK_ATTRIBUTE_NAME, au as XMLNS_ATTRIBUTE_NAME, av as applyStyles, aw as createInPlaceErrorMessageVNode, ax as createRef, aE as getRenderer, aF as getTransitionStyles, aG as globalScopeDomApis, aH as handleLifecycleEventsForOnMount, aK as isJSX, aL as isRef, aM as jsx, aN as jsxDEV, aO as jsxs, aP as nsMap, aQ as observeUnmount, aR as performTransition, aS as render, aT as renderInto, aU as renderIsomorphicAsync, aV as renderIsomorphicSync, aY as updateDom } from '../../index-CeFAHwJi.js';
2
2
  import 'csstype';
@@ -1,2 +1,2 @@
1
- export { a as CLASS_ATTRIBUTE_NAME, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, b as DEFAULT_TRANSITION_CONFIG, F as Fragment, R as REF_ATTRIBUTE_NAME, X as XLINK_ATTRIBUTE_NAME, c as XMLNS_ATTRIBUTE_NAME, d as applyStyles, g as createInPlaceErrorMessageVNode, h as createRef, l as getRenderer, m as getTransitionStyles, n as globalScopeDomApis, o as handleLifecycleEventsForOnMount, q as isJSX, r as isRef, s as jsx, t as jsxDEV, u as jsxs, v as nsMap, w as observeUnmount, y as performTransition, G as render, H as renderInto, I as renderIsomorphicAsync, J as renderIsomorphicSync, L as updateDom } from '../../dom-DhkFpQzW.mjs';
1
+ export { a as CLASS_ATTRIBUTE_NAME, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, c as DEFAULT_TRANSITION_CONFIG, F as Fragment, R as REF_ATTRIBUTE_NAME, X as XLINK_ATTRIBUTE_NAME, d as XMLNS_ATTRIBUTE_NAME, f as applyStyles, l as createInPlaceErrorMessageVNode, m as createRef, z as getRenderer, A as getTransitionStyles, B as globalScopeDomApis, E as handleLifecycleEventsForOnMount, L as isJSX, N as isRef, P as jsx, Q as jsxDEV, S as jsxs, T as nsMap, U as observeUnmount, Y as performTransition, a6 as render, a7 as renderInto, a8 as renderIsomorphicAsync, a9 as renderIsomorphicSync, af as updateDom } from '../../dom-_OdBXxSy.mjs';
2
2
  import 'defuss-runtime';
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var dom = require('../dom-DIfHWdHZ.cjs');
4
- var mount = require('../mount-C9aDnSHs.cjs');
3
+ var dom = require('../dom-D--m76Im.cjs');
4
+ var mount = require('../mount-CY0wDye_.cjs');
5
5
  require('defuss-runtime');
6
6
 
7
7
 
@@ -1,5 +1,5 @@
1
- import { W as VNode } from '../index-CDeQTFKH.js';
2
- export { A as AllHTMLElements, c as AsyncDefussChild, d as AsyncFC, e as AsyncFunctionComponent, C as CLASS_ATTRIBUTE_NAME, f as CSSProperties, g as Children, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, h as DEFAULT_TRANSITION_CONFIG, i as DOMElement, j as DefussChild, k as DefussChildren, l as DefussClassValue, m as DefussKey, n as DomAbstractionImpl, E as ElementProps, F as FC, o as FontFaceProperties, p as Fragment, q as FunctionComponent, G as Globals, J as JsxRuntimeHookFn, r as JsxSourceInfo, K as KeyFrameProperties, M as Maybe, s as MountHandler, N as NodeType, O as OneOrMany, b as ParentElementInput, P as ParentElementInputAsync, t as Props, u as REF_ATTRIBUTE_NAME, v as Ref, w as RefUpdateFn, x as RefUpdateRenderFn, y as RefUpdateRenderFnInput, R as RenderInput, z as RenderNodeInput, a as RenderResult, B as RenderResultNode, S as SyncRenderInput, H as SyncRenderResult, T as TransitionConfig, I as TransitionStyles, L as TransitionType, Q as TransitionsEasing, U as UnmountHandler, V as VAttributes, X as VNodeAttributes, Y as VNodeChild, Z as VNodeChildren, _ as VNodeKey, $ as VNodeRef, a0 as VNodeRefCallback, a1 as VNodeRefObject, a2 as VNodeType, a3 as XLINK_ATTRIBUTE_NAME, a4 as XMLNS_ATTRIBUTE_NAME, a5 as applyStyles, a6 as createInPlaceErrorMessageVNode, a7 as createRef, a8 as getRenderer, a9 as getTransitionStyles, aa as globalScopeDomApis, ab as handleLifecycleEventsForOnMount, ac as isJSX, ad as isRef, ae as jsx, af as jsxDEV, ag as jsxs, ah as nsMap, ai as observeUnmount, aj as performTransition, aW as render, ak as renderInto, al as renderIsomorphicAsync, am as renderIsomorphicSync, an as updateDom } from '../index-CDeQTFKH.js';
1
+ import { aj as VNode } from '../index-CeFAHwJi.js';
2
+ export { A as AllHTMLElements, b as AsyncDefussChild, c as AsyncFC, d as AsyncFunctionComponent, C as CLASS_ATTRIBUTE_NAME, e as CSSProperties, g as Children, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, h as DEFAULT_TRANSITION_CONFIG, i as DOMElement, k as DefussChild, l as DefussChildren, m as DefussClassValue, n as DefussKey, s as DomAbstractionImpl, t as ElementProps, F as FC, x as FontFaceProperties, B as Fragment, G as FunctionComponent, H as Globals, J as JsxRuntimeHookFn, I as JsxSourceInfo, K as KeyFrameProperties, M as Maybe, P as MountHandler, Q as NodeType, R as OneOrMany, S as ParentElementInput, T as ParentElementInputAsync, Y as Props, Z as REF_ATTRIBUTE_NAME, _ as Ref, a0 as RefUpdateFn, a1 as RefUpdateRenderFn, a2 as RefUpdateRenderFnInput, a3 as RenderInput, a4 as RenderNodeInput, a5 as RenderResult, a6 as RenderResultNode, a9 as SyncRenderInput, aa as SyncRenderResult, ac as TransitionConfig, ad as TransitionStyles, ae as TransitionType, af as TransitionsEasing, ah as UnmountHandler, ai as VAttributes, ak as VNodeAttributes, al as VNodeChild, am as VNodeChildren, an as VNodeKey, ao as VNodeRef, ap as VNodeRefCallback, aq as VNodeRefObject, ar as VNodeType, at as XLINK_ATTRIBUTE_NAME, au as XMLNS_ATTRIBUTE_NAME, av as applyStyles, aw as createInPlaceErrorMessageVNode, ax as createRef, aE as getRenderer, aF as getTransitionStyles, aG as globalScopeDomApis, aH as handleLifecycleEventsForOnMount, aK as isJSX, aL as isRef, aM as jsx, aN as jsxDEV, aO as jsxs, aP as nsMap, aQ as observeUnmount, aR as performTransition, aS as render, aT as renderInto, aU as renderIsomorphicAsync, aV as renderIsomorphicSync, aY as updateDom } from '../index-CeFAHwJi.js';
3
3
  import 'csstype';
4
4
 
5
5
  type DelegatedPhase = "bubble" | "capture";
@@ -1,3 +1,3 @@
1
- export { C as CAPTURE_ONLY_EVENTS, a as CLASS_ATTRIBUTE_NAME, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, b as DEFAULT_TRANSITION_CONFIG, F as Fragment, R as REF_ATTRIBUTE_NAME, X as XLINK_ATTRIBUTE_NAME, c as XMLNS_ATTRIBUTE_NAME, d as applyStyles, e as clearDelegatedEvents, f as clearDelegatedEventsDeep, g as createInPlaceErrorMessageVNode, h as createRef, i as getComponentInstance, j as getRegisteredEventKeys, k as getRegisteredEventTypes, l as getRenderer, m as getTransitionStyles, n as globalScopeDomApis, o as handleLifecycleEventsForOnMount, p as isComponentRoot, q as isJSX, r as isRef, s as jsx, t as jsxDEV, u as jsxs, v as nsMap, w as observeUnmount, x as parseEventPropName, y as performTransition, z as registerComponent, A as registerDelegatedEvent, B as removeDelegatedEvent, E as removeDelegatedEventByKey, G as render, H as renderInto, I as renderIsomorphicAsync, J as renderIsomorphicSync, K as unregisterComponent, L as updateDom } from '../dom-DhkFpQzW.mjs';
2
- export { m as mount, u as unmount } from '../mount-0BKlcRFL.mjs';
1
+ export { C as CAPTURE_ONLY_EVENTS, a as CLASS_ATTRIBUTE_NAME, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, c as DEFAULT_TRANSITION_CONFIG, F as Fragment, R as REF_ATTRIBUTE_NAME, X as XLINK_ATTRIBUTE_NAME, d as XMLNS_ATTRIBUTE_NAME, f as applyStyles, i as clearDelegatedEvents, j as clearDelegatedEventsDeep, l as createInPlaceErrorMessageVNode, m as createRef, t as getComponentInstance, x as getRegisteredEventKeys, y as getRegisteredEventTypes, z as getRenderer, A as getTransitionStyles, B as globalScopeDomApis, E as handleLifecycleEventsForOnMount, H as isComponentRoot, L as isJSX, N as isRef, P as jsx, Q as jsxDEV, S as jsxs, T as nsMap, U as observeUnmount, W as parseEventPropName, Y as performTransition, a1 as registerComponent, a2 as registerDelegatedEvent, a3 as removeDelegatedEvent, a4 as removeDelegatedEventByKey, a6 as render, a7 as renderInto, a8 as renderIsomorphicAsync, a9 as renderIsomorphicSync, ae as unregisterComponent, af as updateDom } from '../dom-_OdBXxSy.mjs';
2
+ export { m as mount, u as unmount } from '../mount-BcFWqQDc.mjs';
3
3
  import 'defuss-runtime';
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var HappyDom = require('happy-dom');
4
- var dom = require('../dom-DIfHWdHZ.cjs');
4
+ var dom = require('../dom-D--m76Im.cjs');
5
5
  var serializeHtml = require('w3c-xmlserializer');
6
- var mount = require('../mount-C9aDnSHs.cjs');
6
+ var mount = require('../mount-CY0wDye_.cjs');
7
7
  require('defuss-runtime');
8
8
 
9
9
  function _interopNamespaceDefault(e) {
@@ -1,5 +1,5 @@
1
- import { G as Globals, R as RenderInput, P as ParentElementInputAsync, a as RenderResult, b as ParentElementInput } from '../index-CDeQTFKH.js';
2
- export { A as AllHTMLElements, c as AsyncDefussChild, d as AsyncFC, e as AsyncFunctionComponent, C as CLASS_ATTRIBUTE_NAME, f as CSSProperties, g as Children, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, h as DEFAULT_TRANSITION_CONFIG, i as DOMElement, j as DefussChild, k as DefussChildren, l as DefussClassValue, m as DefussKey, n as DomAbstractionImpl, E as ElementProps, F as FC, o as FontFaceProperties, p as Fragment, q as FunctionComponent, J as JsxRuntimeHookFn, r as JsxSourceInfo, K as KeyFrameProperties, M as Maybe, s as MountHandler, N as NodeType, O as OneOrMany, t as Props, u as REF_ATTRIBUTE_NAME, v as Ref, w as RefUpdateFn, x as RefUpdateRenderFn, y as RefUpdateRenderFnInput, z as RenderNodeInput, B as RenderResultNode, S as SyncRenderInput, H as SyncRenderResult, T as TransitionConfig, I as TransitionStyles, L as TransitionType, Q as TransitionsEasing, U as UnmountHandler, V as VAttributes, W as VNode, X as VNodeAttributes, Y as VNodeChild, Z as VNodeChildren, _ as VNodeKey, $ as VNodeRef, a0 as VNodeRefCallback, a1 as VNodeRefObject, a2 as VNodeType, a3 as XLINK_ATTRIBUTE_NAME, a4 as XMLNS_ATTRIBUTE_NAME, a5 as applyStyles, a6 as createInPlaceErrorMessageVNode, a7 as createRef, a8 as getRenderer, a9 as getTransitionStyles, aa as globalScopeDomApis, ab as handleLifecycleEventsForOnMount, ac as isJSX, ad as isRef, ae as jsx, af as jsxDEV, ag as jsxs, ah as nsMap, ai as observeUnmount, aj as performTransition, ak as renderInto, al as renderIsomorphicAsync, am as renderIsomorphicSync, an as updateDom } from '../index-CDeQTFKH.js';
1
+ import { H as Globals, a3 as RenderInput, T as ParentElementInputAsync, a5 as RenderResult, S as ParentElementInput } from '../index-CeFAHwJi.js';
2
+ export { A as AllHTMLElements, b as AsyncDefussChild, c as AsyncFC, d as AsyncFunctionComponent, C as CLASS_ATTRIBUTE_NAME, e as CSSProperties, g as Children, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, h as DEFAULT_TRANSITION_CONFIG, i as DOMElement, k as DefussChild, l as DefussChildren, m as DefussClassValue, n as DefussKey, s as DomAbstractionImpl, t as ElementProps, F as FC, x as FontFaceProperties, B as Fragment, G as FunctionComponent, J as JsxRuntimeHookFn, I as JsxSourceInfo, K as KeyFrameProperties, M as Maybe, P as MountHandler, Q as NodeType, R as OneOrMany, Y as Props, Z as REF_ATTRIBUTE_NAME, _ as Ref, a0 as RefUpdateFn, a1 as RefUpdateRenderFn, a2 as RefUpdateRenderFnInput, a4 as RenderNodeInput, a6 as RenderResultNode, a9 as SyncRenderInput, aa as SyncRenderResult, ac as TransitionConfig, ad as TransitionStyles, ae as TransitionType, af as TransitionsEasing, ah as UnmountHandler, ai as VAttributes, aj as VNode, ak as VNodeAttributes, al as VNodeChild, am as VNodeChildren, an as VNodeKey, ao as VNodeRef, ap as VNodeRefCallback, aq as VNodeRefObject, ar as VNodeType, at as XLINK_ATTRIBUTE_NAME, au as XMLNS_ATTRIBUTE_NAME, av as applyStyles, aw as createInPlaceErrorMessageVNode, ax as createRef, aE as getRenderer, aF as getTransitionStyles, aG as globalScopeDomApis, aH as handleLifecycleEventsForOnMount, aK as isJSX, aL as isRef, aM as jsx, aN as jsxDEV, aO as jsxs, aP as nsMap, aQ as observeUnmount, aR as performTransition, aT as renderInto, aU as renderIsomorphicAsync, aV as renderIsomorphicSync, aY as updateDom } from '../index-CeFAHwJi.js';
3
3
  export { CAPTURE_ONLY_EVENTS, ComponentInstance, DelegatedEventOptions, DelegatedPhase, ParsedEventProp, clearDelegatedEvents, clearDelegatedEventsDeep, getComponentInstance, getRegisteredEventKeys, getRegisteredEventTypes, isComponentRoot, mount, parseEventPropName, registerComponent, registerDelegatedEvent, removeDelegatedEvent, removeDelegatedEventByKey, unmount, unregisterComponent } from './index.js';
4
4
  import 'csstype';
5
5
 
@@ -1,8 +1,8 @@
1
1
  import * as HappyDom from 'happy-dom';
2
- import { I as renderIsomorphicAsync, J as renderIsomorphicSync, n as globalScopeDomApis } from '../dom-DhkFpQzW.mjs';
3
- export { C as CAPTURE_ONLY_EVENTS, a as CLASS_ATTRIBUTE_NAME, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, b as DEFAULT_TRANSITION_CONFIG, F as Fragment, R as REF_ATTRIBUTE_NAME, X as XLINK_ATTRIBUTE_NAME, c as XMLNS_ATTRIBUTE_NAME, d as applyStyles, e as clearDelegatedEvents, f as clearDelegatedEventsDeep, g as createInPlaceErrorMessageVNode, h as createRef, i as getComponentInstance, j as getRegisteredEventKeys, k as getRegisteredEventTypes, l as getRenderer, m as getTransitionStyles, o as handleLifecycleEventsForOnMount, p as isComponentRoot, q as isJSX, r as isRef, s as jsx, t as jsxDEV, u as jsxs, v as nsMap, w as observeUnmount, x as parseEventPropName, y as performTransition, z as registerComponent, A as registerDelegatedEvent, B as removeDelegatedEvent, E as removeDelegatedEventByKey, H as renderInto, K as unregisterComponent, L as updateDom } from '../dom-DhkFpQzW.mjs';
2
+ import { a8 as renderIsomorphicAsync, a9 as renderIsomorphicSync, B as globalScopeDomApis } from '../dom-_OdBXxSy.mjs';
3
+ export { C as CAPTURE_ONLY_EVENTS, a as CLASS_ATTRIBUTE_NAME, D as DANGEROUSLY_SET_INNER_HTML_ATTRIBUTE, c as DEFAULT_TRANSITION_CONFIG, F as Fragment, R as REF_ATTRIBUTE_NAME, X as XLINK_ATTRIBUTE_NAME, d as XMLNS_ATTRIBUTE_NAME, f as applyStyles, i as clearDelegatedEvents, j as clearDelegatedEventsDeep, l as createInPlaceErrorMessageVNode, m as createRef, t as getComponentInstance, x as getRegisteredEventKeys, y as getRegisteredEventTypes, z as getRenderer, A as getTransitionStyles, E as handleLifecycleEventsForOnMount, H as isComponentRoot, L as isJSX, N as isRef, P as jsx, Q as jsxDEV, S as jsxs, T as nsMap, U as observeUnmount, W as parseEventPropName, Y as performTransition, a1 as registerComponent, a2 as registerDelegatedEvent, a3 as removeDelegatedEvent, a4 as removeDelegatedEventByKey, a7 as renderInto, ae as unregisterComponent, af as updateDom } from '../dom-_OdBXxSy.mjs';
4
4
  import serializeHtml from 'w3c-xmlserializer';
5
- export { m as mount, u as unmount } from '../mount-0BKlcRFL.mjs';
5
+ export { m as mount, u as unmount } from '../mount-BcFWqQDc.mjs';
6
6
  import 'defuss-runtime';
7
7
 
8
8
  const setupDomApis = (options = {}) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "defuss",
3
- "version": "3.4.7",
3
+ "version": "3.4.8",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -132,4 +132,4 @@
132
132
  "happy-dom": "^20.5.0",
133
133
  "w3c-xmlserializer": "^5.0.0"
134
134
  }
135
- }
135
+ }