nuclo 0.1.107 → 0.1.108
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/dist/core/attributeManager.d.ts +3 -0
- package/dist/core/attributeManager.d.ts.map +1 -0
- package/dist/core/classNameMerger.d.ts +6 -0
- package/dist/core/classNameMerger.d.ts.map +1 -0
- package/dist/core/conditionalUpdater.d.ts +3 -0
- package/dist/core/conditionalUpdater.d.ts.map +1 -0
- package/dist/core/elementFactory.d.ts +9 -0
- package/dist/core/elementFactory.d.ts.map +1 -0
- package/dist/core/modifierProcessor.d.ts +3 -0
- package/dist/core/modifierProcessor.d.ts.map +1 -0
- package/dist/core/reactive.d.ts +4 -0
- package/dist/core/reactive.d.ts.map +1 -0
- package/dist/core/reactiveAttributes.d.ts +46 -0
- package/dist/core/reactiveAttributes.d.ts.map +1 -0
- package/dist/core/reactiveCleanup.d.ts +68 -0
- package/dist/core/reactiveCleanup.d.ts.map +1 -0
- package/dist/core/reactiveText.d.ts +39 -0
- package/dist/core/reactiveText.d.ts.map +1 -0
- package/dist/core/runtimeBootstrap.d.ts +5 -0
- package/dist/core/runtimeBootstrap.d.ts.map +1 -0
- package/dist/core/styleManager.d.ts +9 -0
- package/dist/core/styleManager.d.ts.map +1 -0
- package/dist/core/tagConstants.d.ts +4 -0
- package/dist/core/tagConstants.d.ts.map +1 -0
- package/dist/core/tagRegistry.d.ts +4 -0
- package/dist/core/tagRegistry.d.ts.map +1 -0
- package/dist/core/updateController.d.ts +2 -0
- package/dist/core/updateController.d.ts.map +1 -0
- package/dist/core/updateScope.d.ts +5 -0
- package/dist/core/updateScope.d.ts.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/internal/applyModifiers.d.ts +31 -0
- package/dist/internal/applyModifiers.d.ts.map +1 -0
- package/dist/list/index.d.ts +2 -0
- package/dist/list/index.d.ts.map +1 -0
- package/dist/list/renderer.d.ts +7 -0
- package/dist/list/renderer.d.ts.map +1 -0
- package/dist/list/runtime.d.ts +6 -0
- package/dist/list/runtime.d.ts.map +1 -0
- package/dist/list/types.d.ts +18 -0
- package/dist/list/types.d.ts.map +1 -0
- package/dist/polyfill/Document.d.ts +19 -0
- package/dist/polyfill/Document.d.ts.map +1 -0
- package/dist/polyfill/Element.d.ts +42 -0
- package/dist/polyfill/Element.d.ts.map +1 -0
- package/dist/polyfill/Event.d.ts +43 -0
- package/dist/polyfill/Event.d.ts.map +1 -0
- package/dist/polyfill/Node.d.ts +13 -0
- package/dist/polyfill/Node.d.ts.map +1 -0
- package/dist/polyfill/Text.d.ts +11 -0
- package/dist/polyfill/Text.d.ts.map +1 -0
- package/dist/polyfill/index.d.ts +24 -0
- package/dist/polyfill/index.d.ts.map +1 -0
- package/dist/ssr/index.d.ts +18 -0
- package/dist/ssr/index.d.ts.map +1 -0
- package/dist/ssr/renderToString.d.ts +41 -0
- package/dist/ssr/renderToString.d.ts.map +1 -0
- package/dist/style/cssGenerator.d.ts +6 -0
- package/dist/style/cssGenerator.d.ts.map +1 -0
- package/dist/style/cssPropertyTypes.d.ts +98 -0
- package/dist/style/cssPropertyTypes.d.ts.map +1 -0
- package/dist/style/index.d.ts +5 -0
- package/dist/style/index.d.ts.map +1 -0
- package/dist/style/styleBuilder.d.ts +337 -0
- package/dist/style/styleBuilder.d.ts.map +1 -0
- package/dist/style/styleCache.d.ts +6 -0
- package/dist/style/styleCache.d.ts.map +1 -0
- package/dist/style/styleProperties.d.ts +13 -0
- package/dist/style/styleProperties.d.ts.map +1 -0
- package/dist/style/styleQueries.d.ts +25 -0
- package/dist/style/styleQueries.d.ts.map +1 -0
- package/dist/utility/arrayUtils.d.ts +2 -0
- package/dist/utility/arrayUtils.d.ts.map +1 -0
- package/dist/utility/conditionalInfo.d.ts +22 -0
- package/dist/utility/conditionalInfo.d.ts.map +1 -0
- package/dist/utility/conditions.d.ts +4 -0
- package/dist/utility/conditions.d.ts.map +1 -0
- package/dist/utility/dom.d.ts +48 -0
- package/dist/utility/dom.d.ts.map +1 -0
- package/dist/utility/domTypeHelpers.d.ts +43 -0
- package/dist/utility/domTypeHelpers.d.ts.map +1 -0
- package/dist/utility/environment.d.ts +5 -0
- package/dist/utility/environment.d.ts.map +1 -0
- package/dist/utility/errorHandler.d.ts +7 -0
- package/dist/utility/errorHandler.d.ts.map +1 -0
- package/dist/utility/events.d.ts +2 -0
- package/dist/utility/events.d.ts.map +1 -0
- package/dist/utility/modifierPredicates.d.ts +7 -0
- package/dist/utility/modifierPredicates.d.ts.map +1 -0
- package/dist/utility/on.d.ts +42 -0
- package/dist/utility/on.d.ts.map +1 -0
- package/dist/utility/render.d.ts +10 -0
- package/dist/utility/render.d.ts.map +1 -0
- package/dist/utility/renderables.d.ts +4 -0
- package/dist/utility/renderables.d.ts.map +1 -0
- package/dist/utility/scope.d.ts +3 -0
- package/dist/utility/scope.d.ts.map +1 -0
- package/dist/utility/stringUtils.d.ts +14 -0
- package/dist/utility/stringUtils.d.ts.map +1 -0
- package/dist/utility/typeGuards.d.ts +16 -0
- package/dist/utility/typeGuards.d.ts.map +1 -0
- package/dist/when/builder.d.ts +12 -0
- package/dist/when/builder.d.ts.map +1 -0
- package/dist/when/index.d.ts +44 -0
- package/dist/when/index.d.ts.map +1 -0
- package/dist/when/renderer.d.ts +6 -0
- package/dist/when/renderer.d.ts.map +1 -0
- package/dist/when/runtime.d.ts +57 -0
- package/dist/when/runtime.d.ts.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare function applyAttributes<TTagName extends ElementTagName>(element: ExpandedElement<TTagName>, attributes: ExpandedElementAttributes<TTagName>, mergeClassName?: boolean): void;
|
|
2
|
+
export { createReactiveTextNode } from "./reactive";
|
|
3
|
+
//# sourceMappingURL=attributeManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attributeManager.d.ts","sourceRoot":"","sources":["../../src/core/attributeManager.ts"],"names":[],"mappings":"AA8FA,wBAAgB,eAAe,CAAC,QAAQ,SAAS,cAAc,EAC7D,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,EAClC,UAAU,EAAE,yBAAyB,CAAC,QAAQ,CAAC,EAC/C,cAAc,UAAO,GACpB,IAAI,CASN;AAED,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function initReactiveClassName(el: HTMLElement): void;
|
|
2
|
+
export declare function hasReactiveClassName(el: HTMLElement): boolean;
|
|
3
|
+
export declare function addStaticClasses(el: HTMLElement, className: string): void;
|
|
4
|
+
export declare function mergeReactiveClassName(el: HTMLElement, reactiveClassName: string): void;
|
|
5
|
+
export declare function mergeStaticClassName(el: HTMLElement, newClassName: string): void;
|
|
6
|
+
//# sourceMappingURL=classNameMerger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classNameMerger.d.ts","sourceRoot":"","sources":["../../src/core/classNameMerger.ts"],"names":[],"mappings":"AAgCA,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAO3D;AAGD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAE7D;AAGD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAQzE;AAGD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAcvF;AAGD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAWhF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conditionalUpdater.d.ts","sourceRoot":"","sources":["../../src/core/conditionalUpdater.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAsDjD,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAiBnE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates an HTML tag builder function.
|
|
3
|
+
*/
|
|
4
|
+
export declare function createHtmlTagBuilder<TTagName extends ElementTagName>(tagName: TTagName): ExpandedElementBuilder<TTagName>;
|
|
5
|
+
/**
|
|
6
|
+
* Creates an SVG tag builder function.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createSvgTagBuilder<TTagName extends keyof SVGElementTagNameMap>(tagName: TTagName): ExpandedSVGElementBuilder<TTagName>;
|
|
9
|
+
//# sourceMappingURL=elementFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elementFactory.d.ts","sourceRoot":"","sources":["../../src/core/elementFactory.ts"],"names":[],"mappings":"AAoCA;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,SAAS,cAAc,EAClE,OAAO,EAAE,QAAQ,GAChB,sBAAsB,CAAC,QAAQ,CAAC,CAElC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,SAAS,MAAM,oBAAoB,EAC7E,OAAO,EAAE,QAAQ,GAChB,yBAAyB,CAAC,QAAQ,CAAC,CAErC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type NodeModifier<TTagName extends ElementTagName = ElementTagName> = NodeMod<TTagName> | NodeModFn<TTagName>;
|
|
2
|
+
export declare function applyNodeModifier<TTagName extends ElementTagName>(parent: ExpandedElement<TTagName>, modifier: NodeModifier<TTagName>, index: number): Node | null;
|
|
3
|
+
//# sourceMappingURL=modifierProcessor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modifierProcessor.d.ts","sourceRoot":"","sources":["../../src/core/modifierProcessor.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,YAAY,CAAC,QAAQ,SAAS,cAAc,GAAG,cAAc,IACtE,OAAO,CAAC,QAAQ,CAAC,GACjB,SAAS,CAAC,QAAQ,CAAC,CAAC;AAoBvB,wBAAgB,iBAAiB,CAAC,QAAQ,SAAS,cAAc,EAChE,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,EACjC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,EAChC,KAAK,EAAE,MAAM,GACX,IAAI,GAAG,IAAI,CAwDb"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { createReactiveTextNode, notifyReactiveTextNodes } from "./reactiveText";
|
|
2
|
+
export { registerAttributeResolver, notifyReactiveElements } from "./reactiveAttributes";
|
|
3
|
+
export { cleanupReactiveTextNode, cleanupReactiveElement } from "./reactiveCleanup";
|
|
4
|
+
//# sourceMappingURL=reactive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactive.d.ts","sourceRoot":"","sources":["../../src/core/reactive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { UpdateScope } from "./updateScope";
|
|
2
|
+
type AttributeResolver = () => unknown;
|
|
3
|
+
/**
|
|
4
|
+
* Registers a reactive attribute resolver for an element.
|
|
5
|
+
*
|
|
6
|
+
* The resolver will be called whenever reactive updates run (e.g. via `update()`),
|
|
7
|
+
* or when an `"update"` event is dispatched on the element (or a descendant),
|
|
8
|
+
* allowing attributes to reactively update based on application state.
|
|
9
|
+
*
|
|
10
|
+
* @param element - The DOM element to make reactive
|
|
11
|
+
* @param key - The attribute name being made reactive (e.g., 'class', 'style', 'disabled')
|
|
12
|
+
* @param resolver - Function that returns the new attribute value
|
|
13
|
+
* @param applyValue - Callback that applies the resolved value to the element
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* const isActive = signal(false);
|
|
18
|
+
* const button = document.createElement('button');
|
|
19
|
+
* registerAttributeResolver(
|
|
20
|
+
* button,
|
|
21
|
+
* 'class',
|
|
22
|
+
* () => isActive.value ? 'active' : 'inactive',
|
|
23
|
+
* (value) => button.className = String(value)
|
|
24
|
+
* );
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare function registerAttributeResolver<TTagName extends ElementTagName>(element: ExpandedElement<TTagName>, key: string, resolver: AttributeResolver, applyValue: (value: unknown) => void): void;
|
|
28
|
+
/**
|
|
29
|
+
* Updates all registered reactive elements by re-evaluating their attribute resolvers.
|
|
30
|
+
*
|
|
31
|
+
* Iterates through all reactive elements and triggers their registered attribute resolvers
|
|
32
|
+
* to update. Automatically cleans up disconnected elements and their event listeners.
|
|
33
|
+
*
|
|
34
|
+
* This function should be called after state changes to synchronize element attributes
|
|
35
|
+
* with application state.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* // After updating application state
|
|
40
|
+
* isActive.value = true;
|
|
41
|
+
* notifyReactiveElements(); // All reactive attributes update
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export declare function notifyReactiveElements(scope?: UpdateScope): void;
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=reactiveAttributes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactiveAttributes.d.ts","sourceRoot":"","sources":["../../src/core/reactiveAttributes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,KAAK,iBAAiB,GAAG,MAAM,OAAO,CAAC;AAuFvC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,SAAS,cAAc,EACvE,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,EAClC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,iBAAiB,EAC3B,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GACnC,IAAI,CAUN;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAuBhE"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cleanup utilities for reactive nodes.
|
|
3
|
+
* This module is separate to avoid circular dependencies between reactive modules and DOM utilities.
|
|
4
|
+
*/
|
|
5
|
+
type TextResolver = () => Primitive;
|
|
6
|
+
interface ReactiveTextNodeInfo {
|
|
7
|
+
resolver: TextResolver;
|
|
8
|
+
lastValue: string;
|
|
9
|
+
}
|
|
10
|
+
type AttributeResolver = () => unknown;
|
|
11
|
+
interface AttributeResolverRecord {
|
|
12
|
+
resolver: AttributeResolver;
|
|
13
|
+
applyValue: (value: unknown) => void;
|
|
14
|
+
lastValue: unknown;
|
|
15
|
+
}
|
|
16
|
+
interface ReactiveElementInfo {
|
|
17
|
+
attributeResolvers: Map<string, AttributeResolverRecord>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Stores weak references to reactive text nodes for iteration during updates.
|
|
21
|
+
*/
|
|
22
|
+
export declare const reactiveTextNodes: Map<WeakRef<Text>, ReactiveTextNodeInfo>;
|
|
23
|
+
/**
|
|
24
|
+
* WeakMap for O(1) lookups of reactive text node info by node reference.
|
|
25
|
+
*/
|
|
26
|
+
export declare const reactiveTextNodesByNode: WeakMap<Text, {
|
|
27
|
+
ref: WeakRef<Text>;
|
|
28
|
+
info: ReactiveTextNodeInfo;
|
|
29
|
+
}>;
|
|
30
|
+
/**
|
|
31
|
+
* Stores weak references to reactive elements for iteration during updates.
|
|
32
|
+
*/
|
|
33
|
+
export declare const reactiveElements: Map<WeakRef<Element>, ReactiveElementInfo>;
|
|
34
|
+
/**
|
|
35
|
+
* WeakMap for O(1) lookups of reactive element info by element reference.
|
|
36
|
+
*/
|
|
37
|
+
export declare const reactiveElementsByNode: WeakMap<Element, {
|
|
38
|
+
ref: WeakRef<Element>;
|
|
39
|
+
info: ReactiveElementInfo;
|
|
40
|
+
}>;
|
|
41
|
+
/**
|
|
42
|
+
* Registers a reactive text node in both lookup structures.
|
|
43
|
+
*/
|
|
44
|
+
export declare function registerReactiveTextNode(node: Text, info: ReactiveTextNodeInfo): void;
|
|
45
|
+
/**
|
|
46
|
+
* Registers a reactive element in both lookup structures.
|
|
47
|
+
*/
|
|
48
|
+
export declare function registerReactiveElement(element: Element, info: ReactiveElementInfo): void;
|
|
49
|
+
/**
|
|
50
|
+
* Removes a reactive text node's WeakRef entry from the iteration map.
|
|
51
|
+
*/
|
|
52
|
+
export declare function removeReactiveTextNodeRef(ref: WeakRef<Text>): void;
|
|
53
|
+
/**
|
|
54
|
+
* Removes a reactive element's WeakRef entry from the iteration map.
|
|
55
|
+
*/
|
|
56
|
+
export declare function removeReactiveElementRef(ref: WeakRef<Element>): void;
|
|
57
|
+
/**
|
|
58
|
+
* Manually removes reactive text node info for a specific text node.
|
|
59
|
+
* This should be called when a text node is removed from the DOM to prevent memory leaks.
|
|
60
|
+
*/
|
|
61
|
+
export declare function cleanupReactiveTextNode(node: Text): void;
|
|
62
|
+
/**
|
|
63
|
+
* Manually removes reactive element info for a specific element.
|
|
64
|
+
* This should be called when an element is removed from the DOM to prevent memory leaks.
|
|
65
|
+
*/
|
|
66
|
+
export declare function cleanupReactiveElement(element: Element): void;
|
|
67
|
+
export {};
|
|
68
|
+
//# sourceMappingURL=reactiveCleanup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactiveCleanup.d.ts","sourceRoot":"","sources":["../../src/core/reactiveCleanup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,KAAK,YAAY,GAAG,MAAM,SAAS,CAAC;AAEpC,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,iBAAiB,GAAG,MAAM,OAAO,CAAC;AAEvC,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,mBAAmB;IAC3B,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CAC1D;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,0CAAiD,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,uBAAuB;SAA4B,OAAO,CAAC,IAAI,CAAC;UAAQ,oBAAoB;EAAK,CAAC;AAE/G;;GAEG;AACH,eAAO,MAAM,gBAAgB,4CAAmD,CAAC;AAEjF;;GAEG;AACH,eAAO,MAAM,sBAAsB;SAA+B,OAAO,CAAC,OAAO,CAAC;UAAQ,mBAAmB;EAAK,CAAC;AAEnH;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAIrF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAIzF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAElE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAEpE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAMxD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAM7D"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { UpdateScope } from "./updateScope";
|
|
2
|
+
type TextResolver = () => Primitive;
|
|
3
|
+
/**
|
|
4
|
+
* Creates a reactive text node that automatically updates when its resolver function changes.
|
|
5
|
+
*
|
|
6
|
+
* The text node will be registered for reactive updates and its content will be synchronized
|
|
7
|
+
* whenever notifyReactiveTextNodes() is called.
|
|
8
|
+
*
|
|
9
|
+
* @param resolver - Function that returns the text content (string, number, boolean, etc.)
|
|
10
|
+
* @param preEvaluated - Optional pre-evaluated value to avoid calling resolver immediately
|
|
11
|
+
* @returns A Text node that will reactively update its content
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* const count = signal(0);
|
|
16
|
+
* const textNode = createReactiveTextNode(() => `Count: ${count.value}`);
|
|
17
|
+
* // Later, when count changes and notifyReactiveTextNodes() is called,
|
|
18
|
+
* // the text content automatically updates
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function createReactiveTextNode(resolver: TextResolver, preEvaluated?: unknown): Text | DocumentFragment;
|
|
22
|
+
/**
|
|
23
|
+
* Updates all registered reactive text nodes.
|
|
24
|
+
*
|
|
25
|
+
* Iterates through all reactive text nodes, re-evaluates their resolver functions,
|
|
26
|
+
* and updates their content if it has changed. Automatically cleans up disconnected nodes.
|
|
27
|
+
*
|
|
28
|
+
* This function should be called after state changes to synchronize the DOM with application state.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* // After updating application state
|
|
33
|
+
* count.value++;
|
|
34
|
+
* notifyReactiveTextNodes(); // All reactive text nodes update
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare function notifyReactiveTextNodes(scope?: UpdateScope): void;
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=reactiveText.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactiveText.d.ts","sourceRoot":"","sources":["../../src/core/reactiveText.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,KAAK,YAAY,GAAG,MAAM,SAAS,CAAC;AAOpC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,gBAAgB,CA8B9G;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAoCjE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeBootstrap.d.ts","sourceRoot":"","sources":["../../src/core/runtimeBootstrap.ts"],"names":[],"mappings":"AASA;;GAEG;AAEH,wBAAgB,iBAAiB,IAAI,IAAI,CAoBxC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type StyleAssignment = CSSStyleObject;
|
|
2
|
+
type StyleResolver = () => StyleAssignment | null | undefined;
|
|
3
|
+
/**
|
|
4
|
+
* Simplified style management - basic functionality with minimal overhead
|
|
5
|
+
*/
|
|
6
|
+
export declare function assignInlineStyles<TTagName extends ElementTagName>(element: ExpandedElement<TTagName>, styles: StyleAssignment | null | undefined): void;
|
|
7
|
+
export declare function applyStyleAttribute<TTagName extends ElementTagName>(element: ExpandedElement<TTagName>, styleValue: StyleAssignment | StyleResolver | null | undefined): void;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=styleManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styleManager.d.ts","sourceRoot":"","sources":["../../src/core/styleManager.ts"],"names":[],"mappings":"AAKA,KAAK,eAAe,GAAG,cAAc,CAAC;AACtC,KAAK,aAAa,GAAG,MAAM,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC;AAE9D;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,SAAS,cAAc,EAChE,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,EAClC,MAAM,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,GACzC,IAAI,CAeN;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,SAAS,cAAc,EACjE,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,EAClC,UAAU,EAAE,eAAe,GAAG,aAAa,GAAG,IAAI,GAAG,SAAS,GAC7D,IAAI,CAUN"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const HTML_TAGS: readonly ["a", "abbr", "address", "area", "article", "aside", "audio", "b", "base", "bdi", "bdo", "blockquote", "body", "br", "button", "canvas", "caption", "cite", "code", "col", "colgroup", "data", "datalist", "dd", "del", "details", "dfn", "dialog", "div", "dl", "dt", "em", "embed", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "iframe", "img", "input", "ins", "kbd", "label", "legend", "li", "link", "main", "map", "mark", "menu", "meta", "meter", "nav", "noscript", "object", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "script", "search", "section", "select", "slot", "small", "source", "span", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "title", "tr", "track", "u", "ul", "var", "video", "wbr"];
|
|
2
|
+
export declare const SVG_TAGS: readonly ["a", "animate", "animateMotion", "animateTransform", "circle", "clipPath", "defs", "desc", "ellipse", "feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence", "filter", "foreignObject", "g", "image", "line", "linearGradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialGradient", "rect", "script", "set", "stop", "style", "svg", "switch", "symbol", "text", "textPath", "title", "tspan", "use", "view"];
|
|
3
|
+
export declare const SELF_CLOSING_TAGS: readonly ["area", "base", "br", "col", "embed", "hr", "img", "input", "link", "meta", "source", "track", "wbr"];
|
|
4
|
+
//# sourceMappingURL=tagConstants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tagConstants.d.ts","sourceRoot":"","sources":["../../src/core/tagConstants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,g7BAc4B,CAAC;AAEnD,eAAO,MAAM,QAAQ,4wBAWyC,CAAC;AAE/D,eAAO,MAAM,iBAAiB,iHAGoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tagRegistry.d.ts","sourceRoot":"","sources":["../../src/core/tagRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGxE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;AAmBlD,wBAAgB,yBAAyB,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAc,GAAG,IAAI,CAe5F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateController.d.ts","sourceRoot":"","sources":["../../src/core/updateController.ts"],"names":[],"mappings":"AAkBA,wBAAgB,MAAM,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CA0BlD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateScope.d.ts","sourceRoot":"","sources":["../../src/core/updateScope.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;CAC/B"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export { initializeRuntime } from "./core/runtimeBootstrap";
|
|
2
|
+
export { registerGlobalTagBuilders, HTML_TAGS, SVG_TAGS, SELF_CLOSING_TAGS, } from "./core/tagRegistry";
|
|
3
|
+
export { createHtmlTagBuilder, createSvgTagBuilder, } from "./core/elementFactory";
|
|
4
|
+
export { applyNodeModifier } from "./core/modifierProcessor";
|
|
5
|
+
export { list } from "./list";
|
|
6
|
+
export { when } from "./when";
|
|
7
|
+
export { update } from "./core/updateController";
|
|
8
|
+
export { applyAttributes } from "./core/attributeManager";
|
|
9
|
+
export { appendChildren, createComment, createConditionalComment, replaceNodeSafely, } from "./utility/dom";
|
|
10
|
+
export { on } from "./utility/on";
|
|
11
|
+
export { scope } from "./utility/scope";
|
|
12
|
+
export { render } from "./utility/render";
|
|
13
|
+
export { isBoolean, isFunction, isNode, isObject, isPrimitive, isTagLike, isZeroArityFunction, } from "./utility/typeGuards";
|
|
14
|
+
export { isBrowser } from "./utility/environment";
|
|
15
|
+
export { createHtmlElementWithModifiers, createSvgElementWithModifiers, } from "./internal/applyModifiers";
|
|
16
|
+
export * from "./style";
|
|
17
|
+
import "./core/runtimeBootstrap";
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,yBAAyB,EACzB,SAAS,EACT,QAAQ,EACR,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,UAAU,EACV,MAAM,EACN,QAAQ,EACR,WAAW,EACX,SAAS,EACT,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AAGnC,cAAc,SAAS,CAAC;AAGxB,OAAO,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export type NodeModifier<TTagName extends ElementTagName = ElementTagName> = NodeMod<TTagName> | NodeModFn<TTagName>;
|
|
2
|
+
export interface ApplyModifiersResult<TTagName extends ElementTagName> {
|
|
3
|
+
/**
|
|
4
|
+
* The element passed in (for fluent patterns if desired).
|
|
5
|
+
*/
|
|
6
|
+
element: ExpandedElement<TTagName>;
|
|
7
|
+
/**
|
|
8
|
+
* The next index after processing (startIndex + rendered children count).
|
|
9
|
+
*/
|
|
10
|
+
nextIndex: number;
|
|
11
|
+
/**
|
|
12
|
+
* Number of child nodes appended (not counting attributes-only modifiers).
|
|
13
|
+
*/
|
|
14
|
+
appended: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Applies modifiers to an element, appending newly produced Nodes while avoiding
|
|
18
|
+
* duplicate DOM insertions (i.e. only appends if parentNode differs).
|
|
19
|
+
*
|
|
20
|
+
* Returns meta information that callers can use for continuation indexing.
|
|
21
|
+
*/
|
|
22
|
+
export declare function applyModifiers<TTagName extends ElementTagName>(element: ExpandedElement<TTagName>, modifiers: ReadonlyArray<NodeModifier<TTagName>>, startIndex?: number): ApplyModifiersResult<TTagName>;
|
|
23
|
+
/**
|
|
24
|
+
* Creates an HTML element with the specified tag name and applies modifiers to it.
|
|
25
|
+
*/
|
|
26
|
+
export declare function createHtmlElementWithModifiers<TTagName extends ElementTagName>(tagName: TTagName, modifiers: ReadonlyArray<NodeModifier<TTagName>>): ExpandedElement<TTagName>;
|
|
27
|
+
/**
|
|
28
|
+
* Creates an SVG element with the specified tag name and applies modifiers to it.
|
|
29
|
+
*/
|
|
30
|
+
export declare function createSvgElementWithModifiers<TTagName extends keyof SVGElementTagNameMap>(tagName: TTagName, modifiers: ReadonlyArray<unknown>): SVGElementTagNameMap[TTagName];
|
|
31
|
+
//# sourceMappingURL=applyModifiers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyModifiers.d.ts","sourceRoot":"","sources":["../../src/internal/applyModifiers.ts"],"names":[],"mappings":"AAsBA,MAAM,MAAM,YAAY,CAAC,QAAQ,SAAS,cAAc,GAAG,cAAc,IACrE,OAAO,CAAC,QAAQ,CAAC,GACjB,SAAS,CAAC,QAAQ,CAAC,CAAC;AAExB,MAAM,WAAW,oBAAoB,CAAC,QAAQ,SAAS,cAAc;IACnE;;OAEG;IACH,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,SAAS,cAAc,EAC5D,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,EAClC,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAChD,UAAU,SAAI,GACb,oBAAoB,CAAC,QAAQ,CAAC,CA8BhC;AAID;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,SAAS,cAAc,EAC5E,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,GAC/C,eAAe,CAAC,QAAQ,CAAC,CAI3B;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,SAAS,MAAM,oBAAoB,EACvF,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,GAChC,oBAAoB,CAAC,QAAQ,CAAC,CAOhC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/list/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ListRenderer, ListItemsProvider } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Maps items to DOM elements, keeping them in sync with changes.
|
|
4
|
+
* Returns a function compatible with both HTML and SVG contexts.
|
|
5
|
+
*/
|
|
6
|
+
export declare function list<TItem, TTagName extends ElementTagName = ElementTagName>(itemsProvider: ListItemsProvider<TItem>, render: ListRenderer<TItem, TTagName>): ListModifier<TTagName>;
|
|
7
|
+
//# sourceMappingURL=renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/list/renderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/D;;;GAGG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,QAAQ,SAAS,cAAc,GAAG,cAAc,EAC1E,aAAa,EAAE,iBAAiB,CAAC,KAAK,CAAC,EACvC,MAAM,EAAE,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,GACpC,YAAY,CAAC,QAAQ,CAAC,CAOxB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ListRenderer, ListRuntime, ListItemsProvider } from "./types";
|
|
2
|
+
import type { UpdateScope } from "../core/updateScope";
|
|
3
|
+
export declare function sync<TItem, TTagName extends ElementTagName>(runtime: ListRuntime<TItem, TTagName>): void;
|
|
4
|
+
export declare function createListRuntime<TItem, TTagName extends ElementTagName = ElementTagName>(itemsProvider: ListItemsProvider<TItem>, renderItem: ListRenderer<TItem, TTagName>, host: ExpandedElement<TTagName>): ListRuntime<TItem, TTagName>;
|
|
5
|
+
export declare function updateListRuntimes(scope?: UpdateScope): void;
|
|
6
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/list/runtime.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAkC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAuCvD,wBAAgB,IAAI,CAAC,KAAK,EAAE,QAAQ,SAAS,cAAc,EACzD,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,GACpC,IAAI,CAwFN;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,SAAS,cAAc,GAAG,cAAc,EACvF,aAAa,EAAE,iBAAiB,CAAC,KAAK,CAAC,EACvC,UAAU,EAAE,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,EACzC,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,GAC9B,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CA0B9B;AAED,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CA+C5D"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type ListItemsInput<TItem> = readonly TItem[] | Iterable<TItem>;
|
|
2
|
+
export type ListRenderable<TTagName extends ElementTagName = ElementTagName> = ExpandedElement<TTagName> | DetachedExpandedElementFactory<TTagName> | NodeModFn<TTagName> | DetachedSVGElementFactory | SVGElementModifierFn | Node | null | undefined;
|
|
3
|
+
export type ListRenderer<TItem, TTagName extends ElementTagName = ElementTagName> = (item: TItem, index: number) => ListRenderable<TTagName>;
|
|
4
|
+
export type ListItemsProvider<TItem> = () => ListItemsInput<TItem>;
|
|
5
|
+
export interface ListItemRecord<TItem, TTagName extends ElementTagName = ElementTagName> {
|
|
6
|
+
item: TItem;
|
|
7
|
+
element: ExpandedElement<TTagName>;
|
|
8
|
+
}
|
|
9
|
+
export interface ListRuntime<TItem, TTagName extends ElementTagName = ElementTagName> {
|
|
10
|
+
itemsProvider: ListItemsProvider<TItem>;
|
|
11
|
+
renderItem: ListRenderer<TItem, TTagName>;
|
|
12
|
+
startMarker: Comment;
|
|
13
|
+
endMarker: Comment;
|
|
14
|
+
records: ListItemRecord<TItem, TTagName>[];
|
|
15
|
+
host: ExpandedElement<TTagName>;
|
|
16
|
+
lastSyncedItems: readonly TItem[];
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/list/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,CAAC,KAAK,IAAI,SAAS,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEvE,MAAM,MAAM,cAAc,CAAC,QAAQ,SAAS,cAAc,GAAG,cAAc,IACvE,eAAe,CAAC,QAAQ,CAAC,GACzB,8BAA8B,CAAC,QAAQ,CAAC,GACxC,SAAS,CAAC,QAAQ,CAAC,GACnB,yBAAyB,GACzB,oBAAoB,GACpB,IAAI,GACJ,IAAI,GACJ,SAAS,CAAC;AAEd,MAAM,MAAM,YAAY,CAAC,KAAK,EAAE,QAAQ,SAAS,cAAc,GAAG,cAAc,IAAI,CAClF,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,MAAM,KACV,cAAc,CAAC,QAAQ,CAAC,CAAC;AAE9B,MAAM,MAAM,iBAAiB,CAAC,KAAK,IAAI,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;AAEnE,MAAM,WAAW,cAAc,CAAC,KAAK,EAAE,QAAQ,SAAS,cAAc,GAAG,cAAc;IACrF,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,WAAW,CAAC,KAAK,EAAE,QAAQ,SAAS,cAAc,GAAG,cAAc;IAClF,aAAa,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACxC,UAAU,EAAE,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1C,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;IAC3C,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IAChC,eAAe,EAAE,SAAS,KAAK,EAAE,CAAC;CACnC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare class NucloDocument {
|
|
2
|
+
head: ExpandedElement;
|
|
3
|
+
body: ExpandedElement;
|
|
4
|
+
private _listeners;
|
|
5
|
+
constructor();
|
|
6
|
+
createElement(tagName: string, _options?: unknown): ExpandedElement;
|
|
7
|
+
createElementNS(namespace: string, tagName: string, _options?: unknown): ExpandedElement;
|
|
8
|
+
createTextNode(data: string): Text;
|
|
9
|
+
createComment(data: string): Comment;
|
|
10
|
+
createDocumentFragment(): DocumentFragment;
|
|
11
|
+
querySelector(selector: string): Element | null;
|
|
12
|
+
querySelectorAll(_selector: string): NodeListOf<Element>;
|
|
13
|
+
addEventListener(type: string, listener: EventListener, options?: boolean | AddEventListenerOptions): void;
|
|
14
|
+
removeEventListener(type: string, listener: EventListener, _options?: boolean | AddEventListenerOptions): void;
|
|
15
|
+
dispatchEvent(event: Event): boolean;
|
|
16
|
+
contains(_node: Node): boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare const document: Document;
|
|
19
|
+
//# sourceMappingURL=Document.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Document.d.ts","sourceRoot":"","sources":["../../src/polyfill/Document.ts"],"names":[],"mappings":"AAGA,qBAAa,aAAa;IACxB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,CAAC,UAAU,CAA4G;;IAQ9H,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,eAAe;IAInE,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,eAAe;IAMxF,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAcpC,sBAAsB,IAAI,gBAAgB;IAmE1C,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAe/C,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;IAIxD,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI;IAQ1G,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI;IAW9G,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAiBpC,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;CAG/B;AAED,eAAO,MAAM,QAAQ,UAA6C,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { NucloNode } from './Node';
|
|
2
|
+
export declare class NucloElement extends NucloNode {
|
|
3
|
+
tagName: string;
|
|
4
|
+
children: unknown[];
|
|
5
|
+
attributes: Map<string, string>;
|
|
6
|
+
className: string;
|
|
7
|
+
classList: DOMTokenList;
|
|
8
|
+
textContent: string;
|
|
9
|
+
private _innerHTML;
|
|
10
|
+
parentNode: unknown;
|
|
11
|
+
rawMods?: unknown[];
|
|
12
|
+
mods?: unknown[];
|
|
13
|
+
style: CSSStyleDeclaration;
|
|
14
|
+
id: string;
|
|
15
|
+
namespaceURI?: string;
|
|
16
|
+
sheet?: CSSStyleSheet | null;
|
|
17
|
+
private _listeners;
|
|
18
|
+
get innerHTML(): string;
|
|
19
|
+
set innerHTML(value: string);
|
|
20
|
+
private serializeChildren;
|
|
21
|
+
private serializeElement;
|
|
22
|
+
constructor(tagName: string);
|
|
23
|
+
appendChild<T extends Node>(child: T): T;
|
|
24
|
+
setAttribute(name: string, value: string): void;
|
|
25
|
+
getAttribute(name: string): string | null;
|
|
26
|
+
removeAttribute(name: string): void;
|
|
27
|
+
hasAttribute(name: string): boolean;
|
|
28
|
+
insertBefore<T extends Node>(newNode: T, referenceNode: Node | null): T;
|
|
29
|
+
removeChild<T extends Node>(child: T): T;
|
|
30
|
+
replaceChild<T extends Node>(newChild: Node, oldChild: T): T;
|
|
31
|
+
addEventListener(type: string, listener: EventListener): void;
|
|
32
|
+
removeEventListener(type: string, listener: EventListener): void;
|
|
33
|
+
dispatchEvent(event: Event): boolean;
|
|
34
|
+
querySelector(selector: string): Element | null;
|
|
35
|
+
private querySelectorById;
|
|
36
|
+
private querySelectorByClass;
|
|
37
|
+
private querySelectorByTag;
|
|
38
|
+
querySelectorAll(selector: string): NodeListOf<Element>;
|
|
39
|
+
private querySelectorAllByClass;
|
|
40
|
+
private querySelectorAllByTag;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=Element.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Element.d.ts","sourceRoot":"","sources":["../../src/polyfill/Element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAwBnC,qBAAa,YAAa,SAAQ,SAAS;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAM;IACvB,SAAS,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,MAAM,CAAM;IACzB,OAAO,CAAC,UAAU,CAAc;IAChC,UAAU,EAAE,OAAO,CAAQ;IAC3B,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,EAAE,EAAE,MAAM,CAAM;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,UAAU,CAAkC;IAEpD,IAAI,SAAS,IAAI,MAAM,CAGtB;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,EAE1B;IAED,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,gBAAgB;gBAsCZ,OAAO,EAAE,MAAM;IA6D3B,WAAW,CAAC,CAAC,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;IAYxC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAS/C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIzC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOnC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInC,YAAY,CAAC,CAAC,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC;IAqBvE,WAAW,CAAC,CAAC,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;IAkBxC,YAAY,CAAC,CAAC,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;IAqB5D,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAO7D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAOhE,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAkBpC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAe/C,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,kBAAkB;IAmB1B,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;IAiBvD,OAAO,CAAC,uBAAuB;IAc/B,OAAO,CAAC,qBAAqB;CAa9B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export declare class NucloEvent implements Event {
|
|
2
|
+
type: string;
|
|
3
|
+
bubbles: boolean;
|
|
4
|
+
cancelable: boolean;
|
|
5
|
+
composed: boolean;
|
|
6
|
+
currentTarget: EventTarget | null;
|
|
7
|
+
defaultPrevented: boolean;
|
|
8
|
+
eventPhase: number;
|
|
9
|
+
isTrusted: boolean;
|
|
10
|
+
target: EventTarget | null;
|
|
11
|
+
timeStamp: number;
|
|
12
|
+
readonly AT_TARGET = 2;
|
|
13
|
+
readonly BUBBLING_PHASE = 3;
|
|
14
|
+
readonly CAPTURING_PHASE = 1;
|
|
15
|
+
readonly NONE = 0;
|
|
16
|
+
returnValue: boolean;
|
|
17
|
+
srcElement: EventTarget | null;
|
|
18
|
+
cancelBubble: boolean;
|
|
19
|
+
constructor(type: string, eventInitDict?: EventInit);
|
|
20
|
+
composedPath(): EventTarget[];
|
|
21
|
+
initEvent(_type: string, _bubbles?: boolean, _cancelable?: boolean): void;
|
|
22
|
+
preventDefault(): void;
|
|
23
|
+
stopImmediatePropagation(): void;
|
|
24
|
+
stopPropagation(): void;
|
|
25
|
+
}
|
|
26
|
+
export declare class NucloCustomEvent<T = any> extends NucloEvent implements CustomEvent<T> {
|
|
27
|
+
detail: T;
|
|
28
|
+
constructor(type: string, eventInitDict?: CustomEventInit<T>);
|
|
29
|
+
initCustomEvent(_type: string, _bubbles?: boolean, _cancelable?: boolean, _detail?: T): void;
|
|
30
|
+
}
|
|
31
|
+
export declare const Event: {
|
|
32
|
+
new (type: string, eventInitDict?: EventInit): Event;
|
|
33
|
+
prototype: Event;
|
|
34
|
+
readonly NONE: 0;
|
|
35
|
+
readonly CAPTURING_PHASE: 1;
|
|
36
|
+
readonly AT_TARGET: 2;
|
|
37
|
+
readonly BUBBLING_PHASE: 3;
|
|
38
|
+
};
|
|
39
|
+
export declare const CustomEvent: {
|
|
40
|
+
new <T>(type: string, eventInitDict?: CustomEventInit<T>): CustomEvent<T>;
|
|
41
|
+
prototype: CustomEvent;
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=Event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Event.d.ts","sourceRoot":"","sources":["../../src/polyfill/Event.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,YAAW,KAAK;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,WAAW,GAAG,IAAI,CAAQ;IACzC,gBAAgB,EAAE,OAAO,CAAS;IAClC,UAAU,EAAE,MAAM,CAAK;IACvB,SAAS,EAAE,OAAO,CAAS;IAC3B,MAAM,EAAE,WAAW,GAAG,IAAI,CAAQ;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,SAAS,KAAK;IACvB,QAAQ,CAAC,cAAc,KAAK;IAC5B,QAAQ,CAAC,eAAe,KAAK;IAC7B,QAAQ,CAAC,IAAI,KAAK;IAClB,WAAW,EAAE,OAAO,CAAQ;IAC5B,UAAU,EAAE,WAAW,GAAG,IAAI,CAAQ;IACtC,YAAY,EAAE,OAAO,CAAS;gBAElB,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,SAAS;IAQnD,YAAY,IAAI,WAAW,EAAE;IAI7B,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI;IAIzE,cAAc,IAAI,IAAI;IAMtB,wBAAwB,IAAI,IAAI;IAIhC,eAAe,IAAI,IAAI;CAGxB;AAED,qBAAa,gBAAgB,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,UAAW,YAAW,WAAW,CAAC,CAAC,CAAC;IACjF,MAAM,EAAE,CAAC,CAAC;gBAEE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;IAK5D,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI;CAG7F;AAGD,eAAO,MAAM,KAAK;;;;;;;CAAiC,CAAC;AACpD,eAAO,MAAM,WAAW;;;CAA6C,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Node class for instanceof checks in Node.js polyfill
|
|
3
|
+
*/
|
|
4
|
+
export declare class NucloNode {
|
|
5
|
+
nodeType: number;
|
|
6
|
+
nodeName: string;
|
|
7
|
+
nodeValue: string | null;
|
|
8
|
+
parentNode: unknown;
|
|
9
|
+
private _childNodes;
|
|
10
|
+
textContent: string;
|
|
11
|
+
get childNodes(): NodeListOf<ChildNode>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=Node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../src/polyfill/Node.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,SAAS;IACpB,QAAQ,EAAE,MAAM,CAAK;IACrB,QAAQ,EAAE,MAAM,CAAM;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAChC,UAAU,EAAE,OAAO,CAAQ;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,WAAW,EAAE,MAAM,CAAM;IAEzB,IAAI,UAAU,IAAI,UAAU,CAAC,SAAS,CAAC,CAgCtC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class NucloText {
|
|
2
|
+
nodeType: number;
|
|
3
|
+
nodeName: string;
|
|
4
|
+
data: string;
|
|
5
|
+
textContent: string;
|
|
6
|
+
parentNode: unknown;
|
|
7
|
+
constructor(data: string);
|
|
8
|
+
get nodeValue(): string;
|
|
9
|
+
set nodeValue(value: string);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=Text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../src/polyfill/Text.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAS;IACpB,QAAQ,SAAK;IACb,QAAQ,SAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAQ;gBAEf,IAAI,EAAE,MAAM;IAKxB,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,EAG1B;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Polyfills for Node.js environments
|
|
3
|
+
*
|
|
4
|
+
* This module provides minimal browser API polyfills to allow Nuclo to run in Node.js
|
|
5
|
+
* for server-side rendering (SSR) scenarios.
|
|
6
|
+
*
|
|
7
|
+
* To use in Node.js:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import 'nuclo/polyfill';
|
|
10
|
+
* // or
|
|
11
|
+
* import { document, Event, CustomEvent } from 'nuclo/polyfill';
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export { NucloDocument, document } from './Document';
|
|
15
|
+
export { NucloElement } from './Element';
|
|
16
|
+
export { NucloText } from './Text';
|
|
17
|
+
export { NucloEvent, NucloCustomEvent, Event, CustomEvent } from './Event';
|
|
18
|
+
export { NucloNode } from './Node';
|
|
19
|
+
import { NucloElement } from './Element';
|
|
20
|
+
import { NucloNode } from './Node';
|
|
21
|
+
export declare const Node: typeof NucloNode;
|
|
22
|
+
export declare const Element: typeof NucloElement;
|
|
23
|
+
export declare const HTMLElement: typeof NucloElement;
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/polyfill/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAInC,eAAO,MAAM,IAAI,kBAAY,CAAC;AAC9B,eAAO,MAAM,OAAO,qBAAe,CAAC;AACpC,eAAO,MAAM,WAAW,qBAAe,CAAC"}
|