defuss 3.4.7 → 3.4.9

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.
@@ -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 };