nuclo 0.1.107 → 0.1.110

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/core/attributeManager.d.ts +3 -0
  2. package/dist/core/attributeManager.d.ts.map +1 -0
  3. package/dist/core/classNameMerger.d.ts +6 -0
  4. package/dist/core/classNameMerger.d.ts.map +1 -0
  5. package/dist/core/conditionalUpdater.d.ts +3 -0
  6. package/dist/core/conditionalUpdater.d.ts.map +1 -0
  7. package/dist/core/elementFactory.d.ts +9 -0
  8. package/dist/core/elementFactory.d.ts.map +1 -0
  9. package/dist/core/modifierProcessor.d.ts +3 -0
  10. package/dist/core/modifierProcessor.d.ts.map +1 -0
  11. package/dist/core/reactiveAttributes.d.ts +45 -0
  12. package/dist/core/reactiveAttributes.d.ts.map +1 -0
  13. package/dist/core/reactiveCleanup.d.ts +67 -0
  14. package/dist/core/reactiveCleanup.d.ts.map +1 -0
  15. package/dist/core/reactiveText.d.ts +38 -0
  16. package/dist/core/reactiveText.d.ts.map +1 -0
  17. package/dist/core/runtimeBootstrap.d.ts +5 -0
  18. package/dist/core/runtimeBootstrap.d.ts.map +1 -0
  19. package/dist/core/styleManager.d.ts +9 -0
  20. package/dist/core/styleManager.d.ts.map +1 -0
  21. package/dist/core/tagConstants.d.ts +4 -0
  22. package/dist/core/tagConstants.d.ts.map +1 -0
  23. package/dist/core/tagRegistry.d.ts +4 -0
  24. package/dist/core/tagRegistry.d.ts.map +1 -0
  25. package/dist/core/updateController.d.ts +2 -0
  26. package/dist/core/updateController.d.ts.map +1 -0
  27. package/dist/core/updateScope.d.ts +5 -0
  28. package/dist/core/updateScope.d.ts.map +1 -0
  29. package/dist/index.d.ts +18 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/internal/applyModifiers.d.ts +51 -0
  32. package/dist/internal/applyModifiers.d.ts.map +1 -0
  33. package/dist/list/index.d.ts +2 -0
  34. package/dist/list/index.d.ts.map +1 -0
  35. package/dist/list/renderer.d.ts +7 -0
  36. package/dist/list/renderer.d.ts.map +1 -0
  37. package/dist/list/runtime.d.ts +6 -0
  38. package/dist/list/runtime.d.ts.map +1 -0
  39. package/dist/list/types.d.ts +18 -0
  40. package/dist/list/types.d.ts.map +1 -0
  41. package/dist/nuclo.cjs +1 -1
  42. package/dist/nuclo.cjs.map +1 -1
  43. package/dist/nuclo.mjs +1 -1
  44. package/dist/nuclo.mjs.map +1 -1
  45. package/dist/nuclo.umd.js +1 -1
  46. package/dist/nuclo.umd.js.map +1 -1
  47. package/dist/polyfill/Document.d.ts +19 -0
  48. package/dist/polyfill/Document.d.ts.map +1 -0
  49. package/dist/polyfill/Element.d.ts +42 -0
  50. package/dist/polyfill/Element.d.ts.map +1 -0
  51. package/dist/polyfill/Event.d.ts +43 -0
  52. package/dist/polyfill/Event.d.ts.map +1 -0
  53. package/dist/polyfill/Node.d.ts +13 -0
  54. package/dist/polyfill/Node.d.ts.map +1 -0
  55. package/dist/polyfill/Text.d.ts +11 -0
  56. package/dist/polyfill/Text.d.ts.map +1 -0
  57. package/dist/polyfill/index.d.ts +24 -0
  58. package/dist/polyfill/index.d.ts.map +1 -0
  59. package/dist/ssr/index.d.ts +18 -0
  60. package/dist/ssr/index.d.ts.map +1 -0
  61. package/dist/ssr/nuclo.ssr.cjs +1 -1
  62. package/dist/ssr/nuclo.ssr.cjs.map +1 -1
  63. package/dist/ssr/nuclo.ssr.mjs +1 -1
  64. package/dist/ssr/nuclo.ssr.mjs.map +1 -1
  65. package/dist/ssr/renderToString.d.ts +41 -0
  66. package/dist/ssr/renderToString.d.ts.map +1 -0
  67. package/dist/style/cssGenerator.d.ts +6 -0
  68. package/dist/style/cssGenerator.d.ts.map +1 -0
  69. package/dist/style/cssPropertyTypes.d.ts +98 -0
  70. package/dist/style/cssPropertyTypes.d.ts.map +1 -0
  71. package/dist/style/index.d.ts +5 -0
  72. package/dist/style/index.d.ts.map +1 -0
  73. package/dist/style/styleBuilder.d.ts +337 -0
  74. package/dist/style/styleBuilder.d.ts.map +1 -0
  75. package/dist/style/styleCache.d.ts +5 -0
  76. package/dist/style/styleCache.d.ts.map +1 -0
  77. package/dist/style/styleProperties.d.ts +13 -0
  78. package/dist/style/styleProperties.d.ts.map +1 -0
  79. package/dist/style/styleQueries.d.ts +25 -0
  80. package/dist/style/styleQueries.d.ts.map +1 -0
  81. package/dist/utility/conditionalInfo.d.ts +23 -0
  82. package/dist/utility/conditionalInfo.d.ts.map +1 -0
  83. package/dist/utility/conditions.d.ts +4 -0
  84. package/dist/utility/conditions.d.ts.map +1 -0
  85. package/dist/utility/dom.d.ts +39 -0
  86. package/dist/utility/dom.d.ts.map +1 -0
  87. package/dist/utility/domTypeHelpers.d.ts +43 -0
  88. package/dist/utility/domTypeHelpers.d.ts.map +1 -0
  89. package/dist/utility/environment.d.ts +5 -0
  90. package/dist/utility/environment.d.ts.map +1 -0
  91. package/dist/utility/errorHandler.d.ts +2 -0
  92. package/dist/utility/errorHandler.d.ts.map +1 -0
  93. package/dist/utility/events.d.ts +2 -0
  94. package/dist/utility/events.d.ts.map +1 -0
  95. package/dist/utility/modifierPredicates.d.ts +7 -0
  96. package/dist/utility/modifierPredicates.d.ts.map +1 -0
  97. package/dist/utility/on.d.ts +42 -0
  98. package/dist/utility/on.d.ts.map +1 -0
  99. package/dist/utility/render.d.ts +10 -0
  100. package/dist/utility/render.d.ts.map +1 -0
  101. package/dist/utility/renderables.d.ts +4 -0
  102. package/dist/utility/renderables.d.ts.map +1 -0
  103. package/dist/utility/scope.d.ts +3 -0
  104. package/dist/utility/scope.d.ts.map +1 -0
  105. package/dist/utility/stringUtils.d.ts +19 -0
  106. package/dist/utility/stringUtils.d.ts.map +1 -0
  107. package/dist/utility/typeGuards.d.ts +16 -0
  108. package/dist/utility/typeGuards.d.ts.map +1 -0
  109. package/dist/when/builder.d.ts +12 -0
  110. package/dist/when/builder.d.ts.map +1 -0
  111. package/dist/when/index.d.ts +44 -0
  112. package/dist/when/index.d.ts.map +1 -0
  113. package/dist/when/renderer.d.ts +6 -0
  114. package/dist/when/renderer.d.ts.map +1 -0
  115. package/dist/when/runtime.d.ts +57 -0
  116. package/dist/when/runtime.d.ts.map +1 -0
  117. 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 "./reactiveText";
3
+ //# sourceMappingURL=attributeManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attributeManager.d.ts","sourceRoot":"","sources":["../../src/core/attributeManager.ts"],"names":[],"mappings":"AA+FA,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,gBAAgB,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,CA4BvF;AAGD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAWhF"}
@@ -0,0 +1,3 @@
1
+ import type { UpdateScope } from "./updateScope";
2
+ export declare function updateConditionalElements(scope?: UpdateScope): void;
3
+ //# sourceMappingURL=conditionalUpdater.d.ts.map
@@ -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;AAoDjD,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":"AAkCA;;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,45 @@
1
+ import type { UpdateScope } from "./updateScope";
2
+ import type { AttributeResolver } from "./reactiveCleanup";
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
+ //# 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;AAEjD,OAAO,KAAK,EAAE,iBAAiB,EAAgD,MAAM,mBAAmB,CAAC;AA8EzG;;;;;;;;;;;;;;;;;;;;;;;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,CAkBN;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAuBhE"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Shared types and registries for reactive nodes.
3
+ * Single source of truth — imported by reactiveText.ts and reactiveAttributes.ts.
4
+ */
5
+ export type TextResolver = () => Primitive;
6
+ export interface ReactiveTextNodeInfo {
7
+ resolver: TextResolver;
8
+ lastValue: string;
9
+ }
10
+ export type AttributeResolver = () => unknown;
11
+ export interface AttributeResolverRecord {
12
+ resolver: AttributeResolver;
13
+ applyValue: (value: unknown) => void;
14
+ lastValue: unknown;
15
+ }
16
+ export 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
+ //# 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,MAAM,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC;AAE3C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC;AAE9C,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,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,38 @@
1
+ import type { UpdateScope } from "./updateScope";
2
+ import type { TextResolver } from "./reactiveCleanup";
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
+ //# 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;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,gBAAgB,CAgC9G;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAoCjE"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Initializes the nuclo runtime by exposing tag builders and utilities.
3
+ */
4
+ export declare function initializeRuntime(): void;
5
+ //# sourceMappingURL=runtimeBootstrap.d.ts.map
@@ -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,4 @@
1
+ import { HTML_TAGS, SVG_TAGS, SELF_CLOSING_TAGS } from "./tagConstants";
2
+ export { HTML_TAGS, SVG_TAGS, SELF_CLOSING_TAGS };
3
+ export declare function registerGlobalTagBuilders(target?: Record<string, unknown>): void;
4
+ //# sourceMappingURL=tagRegistry.d.ts.map
@@ -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,2 @@
1
+ export declare function update(...scopeIds: string[]): void;
2
+ //# sourceMappingURL=updateController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateController.d.ts","sourceRoot":"","sources":["../../src/core/updateController.ts"],"names":[],"mappings":"AAmBA,wBAAgB,MAAM,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CA0BlD"}
@@ -0,0 +1,5 @@
1
+ export interface UpdateScope {
2
+ roots: ReadonlyArray<Element>;
3
+ contains(node: Node): boolean;
4
+ }
5
+ //# sourceMappingURL=updateScope.d.ts.map
@@ -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"}
@@ -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,51 @@
1
+ /**
2
+ * Shared helper for applying an array of modifiers to an element.
3
+ * Consolidates the previously duplicated logic in several modules:
4
+ * - conditionalUpdater
5
+ * - elementFactory
6
+ *
7
+ * Goal: single, optimized, well‑typed implementation.
8
+ *
9
+ * A "modifier" can:
10
+ * - Return (or be) primitives → appended as text
11
+ * - Return (or be) Node → appended (if not already a child)
12
+ * - Return (or be) attribute objects → merged into element
13
+ * - Be a NodeModFn invoked with (parent, index)
14
+ * - Be a zero‑arg function producing reactive text (handled upstream in applyNodeModifier)
15
+ *
16
+ * Indexing:
17
+ * - startIndex allows callers to continue an index sequence if needed.
18
+ * - Every successfully rendered child Node increments the local index.
19
+ */
20
+ import { type NodeModifier } from "../core/modifierProcessor";
21
+ export type { NodeModifier };
22
+ export interface ApplyModifiersResult<TTagName extends ElementTagName> {
23
+ /**
24
+ * The element passed in (for fluent patterns if desired).
25
+ */
26
+ element: ExpandedElement<TTagName>;
27
+ /**
28
+ * The next index after processing (startIndex + rendered children count).
29
+ */
30
+ nextIndex: number;
31
+ /**
32
+ * Number of child nodes appended (not counting attributes-only modifiers).
33
+ */
34
+ appended: number;
35
+ }
36
+ /**
37
+ * Applies modifiers to an element, appending newly produced Nodes while avoiding
38
+ * duplicate DOM insertions (i.e. only appends if parentNode differs).
39
+ *
40
+ * Returns meta information that callers can use for continuation indexing.
41
+ */
42
+ export declare function applyModifiers<TTagName extends ElementTagName>(element: ExpandedElement<TTagName>, modifiers: ReadonlyArray<NodeModifier<TTagName>>, startIndex?: number): ApplyModifiersResult<TTagName>;
43
+ /**
44
+ * Creates an HTML element with the specified tag name and applies modifiers to it.
45
+ */
46
+ export declare function createHtmlElementWithModifiers<TTagName extends ElementTagName>(tagName: TTagName, modifiers: ReadonlyArray<NodeModifier<TTagName>>): ExpandedElement<TTagName>;
47
+ /**
48
+ * Creates an SVG element with the specified tag name and applies modifiers to it.
49
+ */
50
+ export declare function createSvgElementWithModifiers<TTagName extends keyof SVGElementTagNameMap>(tagName: TTagName, modifiers: ReadonlyArray<unknown>): SVGElementTagNameMap[TTagName];
51
+ //# sourceMappingURL=applyModifiers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyModifiers.d.ts","sourceRoot":"","sources":["../../src/internal/applyModifiers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGjF,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B,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;AAED;;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,2 @@
1
+ export { list } from "./renderer";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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>, index: number): 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":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAkC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAwCvD,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,EAC/B,KAAK,EAAE,MAAM,GACZ,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CA0B9B;AAWD,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAuB5D"}
@@ -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"}