@nuvo-js/core 0.0.0-stage → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +2 -3
  2. package/dist/Element/index.d.ts +17 -0
  3. package/dist/Element/index.d.ts.map +1 -0
  4. package/dist/Element/index.js +112 -0
  5. package/dist/Element/index.js.map +1 -0
  6. package/dist/Element/types.d.ts +27 -0
  7. package/dist/Element/types.d.ts.map +1 -0
  8. package/dist/Element/types.js +2 -0
  9. package/dist/Element/types.js.map +1 -0
  10. package/dist/Element/utils.d.ts +4 -0
  11. package/dist/Element/utils.d.ts.map +1 -0
  12. package/dist/Element/utils.js +96 -0
  13. package/dist/Element/utils.js.map +1 -0
  14. package/dist/Fragment.d.ts +3 -0
  15. package/dist/Fragment.d.ts.map +1 -0
  16. package/dist/Fragment.js +7 -0
  17. package/dist/Fragment.js.map +1 -0
  18. package/dist/SVGElement/index.d.ts +14 -0
  19. package/dist/SVGElement/index.d.ts.map +1 -0
  20. package/dist/SVGElement/index.js +74 -0
  21. package/dist/SVGElement/index.js.map +1 -0
  22. package/dist/SVGElement/types.d.ts +274 -0
  23. package/dist/SVGElement/types.d.ts.map +1 -0
  24. package/dist/SVGElement/types.js +2 -0
  25. package/dist/SVGElement/types.js.map +1 -0
  26. package/dist/global.d.ts +8 -0
  27. package/dist/global.d.ts.map +1 -0
  28. package/dist/global.js +2 -0
  29. package/dist/global.js.map +1 -0
  30. package/dist/index.d.ts +16 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +26 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/store.d.ts +12 -0
  35. package/dist/store.d.ts.map +1 -0
  36. package/dist/store.js +45 -0
  37. package/dist/store.js.map +1 -0
  38. package/dist/utils.d.ts +9 -0
  39. package/dist/utils.d.ts.map +1 -0
  40. package/dist/utils.js +80 -0
  41. package/dist/utils.js.map +1 -0
  42. package/package.json +48 -4
package/README.md CHANGED
@@ -1,3 +1,2 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
1
+ # -doggy-core
2
+ Html rendering simple engine.
@@ -0,0 +1,17 @@
1
+ import type { ElementPropsType, ElementConstructorType, HTMLElementTags } from './types';
2
+ declare class Element<T extends HTMLElementTags> {
3
+ dom: T;
4
+ private readonly controller;
5
+ constructor({ tagName, props: { children, className, style, events, key, ...props }, rootElement, }: ElementConstructorType<T>);
6
+ SetProps({ className, children, style, ...props }: Omit<ElementPropsType<T>, 'className'> & {
7
+ className?: ((classList: DOMTokenList) => void) | string | undefined;
8
+ }, isForceUpdate?: boolean): this;
9
+ private SetEvents;
10
+ Destroy(): void;
11
+ Remove(): void;
12
+ OnMount(callback: (e: this) => void): this;
13
+ OnUnMount(callback: (e: this) => void): this;
14
+ }
15
+ export type { ElementPropsType };
16
+ export default Element;
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Element/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,gBAAgB,EAAE,sBAAsB,EAAE,eAAe,EAE5D,MAAM,SAAS,CAAC;AAOjB,cAAM,OAAO,CAAC,CAAC,SAAS,eAAe;IAC5B,GAAG,EAAE,CAAC,CAAC;IACd,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IAEpD,YAAmB,EACf,OAAO,EACP,KAAK,EAAE,EACH,QAAQ,EACR,SAAS,EACT,KAAK,EACL,MAAM,EACN,GAAG,EACH,GAAG,KAAK,EACX,EACD,WAAW,GACd,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAyB3B;IAEM,QAAQ,CACX,EACI,SAAS,EACT,QAAQ,EACR,KAAK,EACL,GAAG,KAAK,EACX,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG;QACxC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC;KACxE,EACD,aAAa,UAAQ,QAyDxB;IAED,OAAO,CAAC,SAAS;IAmBV,OAAO,SAIb;IAEM,MAAM,SAEZ;IAEM,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,QAkBzC;IAEM,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,QAgB3C;CACJ;AAED,YAAY,EAAE,gBAAgB,EAAE,CAAC;eAElB,OAAO"}
@@ -0,0 +1,112 @@
1
+ import { isPlainObject, setupClassName, setupStyle } from '../utils';
2
+ import { setupChildren } from './utils';
3
+ class Element {
4
+ dom;
5
+ controller = new AbortController();
6
+ constructor({ tagName, props: { children, className, style, events, key, ...props }, rootElement, }) {
7
+ this.dom = document.createElement(tagName);
8
+ const virtualDom = this.dom;
9
+ if (key) {
10
+ virtualDom.__key = key;
11
+ }
12
+ if (rootElement) {
13
+ rootElement.appendChild(this.dom);
14
+ }
15
+ this.SetProps({
16
+ className,
17
+ children,
18
+ style,
19
+ ...props,
20
+ });
21
+ this.SetEvents(events);
22
+ }
23
+ SetProps({ className, children, style, ...props }, isForceUpdate = false) {
24
+ if (className !== undefined) {
25
+ setupClassName(className, this.dom);
26
+ }
27
+ if (style !== undefined) {
28
+ setupStyle(style, this.dom);
29
+ }
30
+ if (children !== undefined) {
31
+ setupChildren(children, this.dom, isForceUpdate);
32
+ }
33
+ Object.entries(props)
34
+ .forEach(([name, value]) => {
35
+ if (name === 'events' || isPlainObject(value)) {
36
+ return;
37
+ }
38
+ if (name === 'value' && (this.dom instanceof HTMLInputElement || this.dom instanceof HTMLTextAreaElement)) {
39
+ if (this.dom.value === value) {
40
+ return;
41
+ }
42
+ else {
43
+ this.dom.value = value;
44
+ }
45
+ }
46
+ if (name in this.dom) {
47
+ if (value === undefined || value === '') {
48
+ this.dom.removeAttribute(name);
49
+ }
50
+ else {
51
+ if (((this.dom)[name] !== undefined) && (this.dom)[name] !== value) {
52
+ (this.dom)[name] = value;
53
+ }
54
+ }
55
+ }
56
+ else {
57
+ if (value !== '' && this.dom.getAttribute(name) !== String(value)) {
58
+ this.dom.setAttribute(name, value);
59
+ }
60
+ }
61
+ });
62
+ return this;
63
+ }
64
+ SetEvents(events) {
65
+ if (events) {
66
+ Object.entries(events)
67
+ .forEach(([type, listener]) => {
68
+ this.dom.addEventListener(type.replace(/^on/, ''), listener, { signal: this.controller.signal });
69
+ });
70
+ }
71
+ }
72
+ Destroy() {
73
+ this.controller.abort('Element event is destroyed.');
74
+ this.Remove();
75
+ }
76
+ Remove() {
77
+ this.dom.remove();
78
+ }
79
+ OnMount(callback) {
80
+ if (this.dom.isConnected) {
81
+ callback(this);
82
+ return this;
83
+ }
84
+ const observer = new MutationObserver(() => {
85
+ if (this.dom.isConnected) {
86
+ callback(this);
87
+ observer.disconnect();
88
+ }
89
+ });
90
+ observer.observe(document, {
91
+ childList: true,
92
+ subtree: true,
93
+ });
94
+ return this;
95
+ }
96
+ OnUnMount(callback) {
97
+ const observer = new MutationObserver(() => {
98
+ if (!this.dom.isConnected) {
99
+ callback(this);
100
+ this.Destroy();
101
+ observer.disconnect();
102
+ }
103
+ });
104
+ observer.observe(document, {
105
+ childList: true,
106
+ subtree: true,
107
+ });
108
+ return this;
109
+ }
110
+ }
111
+ export default Element;
112
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Element/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ type Handlers = Omit<GlobalEventHandlers, 'addEventListener' | 'removeEventListener'>;
2
+ export type NodeChildren = string | ChildNode | undefined | null;
3
+ export type DOMElement = HTMLElement | SVGElement;
4
+ export type Dataset = Record<`data-${string}`, string>;
5
+ export type HTMLTags = keyof HTMLElementTagNameMap;
6
+ export type HTMLElementTags = HTMLElementTagNameMap[HTMLTags];
7
+ export type Children = NodeChildren | DocumentFragment | HTMLElement;
8
+ export type EventType<T extends HTMLElement> = {
9
+ [K in keyof Handlers]?: Handlers[K] extends ((this: T, ev: infer E) => void) | null ? (ev: E) => void : never;
10
+ };
11
+ export type ElementPropsType<T extends HTMLElementTags = HTMLElement> = Omit<Partial<T>, 'children' | 'className' | 'style'> & Dataset & {
12
+ children?: Children[] | undefined;
13
+ className?: string | undefined;
14
+ events?: EventType<T>;
15
+ style?: Partial<CSSStyleDeclaration> | undefined;
16
+ key?: string;
17
+ };
18
+ export interface ElementConstructorType<T extends HTMLElementTags> {
19
+ tagName: HTMLTags;
20
+ props: ElementPropsType<T>;
21
+ rootElement?: HTMLElement | null;
22
+ }
23
+ export type VirtualHTMLElement = DOMElement & {
24
+ __key?: string;
25
+ };
26
+ export {};
27
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Element/types.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,GAAG,qBAAqB,CAAC,CAAC;AAEtF,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC;AACjE,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;AAElD,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;AACvD,MAAM,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC;AAEnD,MAAM,MAAM,eAAe,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AAE9D,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,gBAAgB,GAAG,WAAW,CAAC;AAErE,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,WAAW,IAAI;KAC1C,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,GAC7E,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,GACf,KAAK;CACd,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,eAAe,GAAG,WAAW,IAC9D,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC,GAAG,OAAO,GAAG;IAC/D,QAAQ,CAAC,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,eAAe;IAC7D,OAAO,EAAE,QAAQ,CAAC;IAClB,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC3B,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/Element/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { Children, DOMElement } from './types';
2
+ export declare function compareProps(oldNode: DOMElement | null, newNode: DOMElement | null): boolean;
3
+ export declare function setupChildren<T extends DOMElement>(children: ((childNodes: Set<ChildNode>) => Set<ChildNode>) | Children[] | undefined, dom: T, isForceUpdate: boolean): void;
4
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/Element/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,QAAQ,EAAE,UAAU,EACvB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,YAAY,CACxB,OAAO,EAAE,UAAU,GAAG,IAAI,EAC1B,OAAO,EAAE,UAAU,GAAG,IAAI,WAkB7B;AA4ED,wBAAgB,aAAa,CAAC,CAAC,SAAS,UAAU,EAC9C,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,SAAS,EACnF,GAAG,EAAE,CAAC,EACN,aAAa,EAAE,OAAO,QAsBzB"}
@@ -0,0 +1,96 @@
1
+ import { mergeAttributes } from '../utils';
2
+ export function compareProps(oldNode, newNode) {
3
+ if (!oldNode || !newNode)
4
+ return false;
5
+ const oldNAttrs = oldNode.attributes;
6
+ const newNAttrs = newNode.attributes;
7
+ if (oldNode.tagName !== newNode.tagName)
8
+ return false;
9
+ if (oldNAttrs.length !== newNAttrs.length)
10
+ return false;
11
+ for (const attr of oldNAttrs) {
12
+ if (newNode.getAttribute(attr.name) !== attr.value) {
13
+ return true;
14
+ }
15
+ }
16
+ return false;
17
+ }
18
+ function keyedDiff(dom, newChildren) {
19
+ const oldChildren = Array.from(dom.children);
20
+ const oldByKey = new Map(oldChildren.map(child => [
21
+ child.__key,
22
+ child
23
+ ]));
24
+ const newKeys = new Set(newChildren.map(child => child.__key));
25
+ for (const child of oldChildren) {
26
+ if (!newKeys.has(child.__key)) {
27
+ child.remove();
28
+ }
29
+ }
30
+ let anchor = dom.firstElementChild;
31
+ for (const newChild of newChildren) {
32
+ let current = oldByKey.get(newChild.__key);
33
+ if (!current) {
34
+ dom.insertBefore(newChild, anchor);
35
+ anchor = newChild.nextElementSibling;
36
+ continue;
37
+ }
38
+ if (current.tagName !== newChild.tagName) {
39
+ current.replaceWith(newChild);
40
+ oldByKey.set(newChild.__key, newChild);
41
+ current = newChild;
42
+ }
43
+ else if (compareProps(current, newChild)) {
44
+ mergeAttributes(current, newChild);
45
+ }
46
+ if (current !== anchor) {
47
+ dom.insertBefore(current, anchor);
48
+ }
49
+ anchor = current.nextElementSibling;
50
+ }
51
+ }
52
+ function unKeyedDiff(dom, newChildren) {
53
+ const oldChildren = Array.from(dom.childNodes);
54
+ const max = Math.max(oldChildren.length, newChildren.length);
55
+ for (let i = 0; i < max; i++) {
56
+ const oldNode = oldChildren[i];
57
+ const newNode = newChildren[i];
58
+ let shouldReplace;
59
+ if (oldNode?.nodeType === Node.ELEMENT_NODE && newNode?.nodeType === Node.ELEMENT_NODE) {
60
+ shouldReplace = compareProps(oldNode, newNode) || oldNode.innerHTML !== newNode.innerHTML;
61
+ }
62
+ else {
63
+ shouldReplace = oldNode !== newNode;
64
+ }
65
+ if (!oldNode && newNode) {
66
+ dom.append(newNode);
67
+ }
68
+ else if (oldNode && !newNode) {
69
+ dom.removeChild(oldNode);
70
+ }
71
+ else if (oldNode && newNode && shouldReplace) {
72
+ oldNode.replaceWith(newNode);
73
+ }
74
+ }
75
+ }
76
+ export function setupChildren(children, dom, isForceUpdate) {
77
+ if (children) {
78
+ const newChildren = typeof children === 'function'
79
+ ? Array.from(children(new Set(dom.childNodes)))
80
+ : children;
81
+ const extracted = newChildren.filter(Boolean);
82
+ if (isForceUpdate) {
83
+ dom.replaceChildren(...extracted);
84
+ }
85
+ else {
86
+ const isAvailableKey = [...dom.children][0]?.__key;
87
+ if (isAvailableKey) {
88
+ keyedDiff(dom, extracted); // NOTE: key in element
89
+ }
90
+ else { // NOTE: not key in element
91
+ unKeyedDiff(dom, extracted);
92
+ }
93
+ }
94
+ }
95
+ }
96
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/Element/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ declare function Fragment(children: (HTMLElement | SVGElement | string | DocumentFragment)[]): DocumentFragment;
2
+ export default Fragment;
3
+ //# sourceMappingURL=Fragment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Fragment.d.ts","sourceRoot":"","sources":["../src/Fragment.ts"],"names":[],"mappings":"AAAA,iBAAS,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,GAAG,UAAU,GAAG,MAAM,GAAG,gBAAgB,CAAC,EAAE,oBAKnF;eAEc,QAAQ"}
@@ -0,0 +1,7 @@
1
+ function Fragment(children) {
2
+ const fragment = document.createDocumentFragment();
3
+ fragment.append(...children);
4
+ return fragment;
5
+ }
6
+ export default Fragment;
7
+ //# sourceMappingURL=Fragment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Fragment.js","sourceRoot":"","sources":["../src/Fragment.ts"],"names":[],"mappings":"AAAA,SAAS,QAAQ,CAAC,QAAkE;IAChF,MAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;IAEnD,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC7B,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { SVGElementConstructorType, SVGTags, SVGElementPropsType } from './types';
2
+ declare class SVGElement<T extends SVGTags> {
3
+ dom: T;
4
+ key?: string | number | undefined;
5
+ constructor({ tagName, props: { children, className, style, ...props }, rootElement, }: SVGElementConstructorType);
6
+ SetProps({ className, children, style, ...props }: SVGElementConstructorType['props'], isForceUpdate?: boolean): this;
7
+ Destroy(): void;
8
+ Remove(): void;
9
+ OnMount(callback: (e: this) => void): this;
10
+ OnUnMount(callback: (e: this) => void): this;
11
+ }
12
+ export type { SVGElementPropsType };
13
+ export default SVGElement;
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/SVGElement/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACR,yBAAyB,EAAE,OAAO,EAAE,mBAAmB,EAC1D,MAAM,SAAS,CAAC;AAIjB,cAAM,UAAU,CAAE,CAAC,SAAS,OAAO;IACxB,GAAG,EAAE,CAAC,CAAC;IACP,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAa;IAErD,YAAmB,EACf,OAAO,EACP,KAAK,EAAE,EACH,QAAQ,EACR,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACX,EACD,WAAW,GACd,EAAE,yBAAyB,EAe3B;IAEM,QAAQ,CACX,EACI,SAAS,EACT,QAAQ,EACR,KAAK,EACL,GAAG,KAAK,EACX,EAAE,yBAAyB,CAAC,OAAO,CAAC,EACrC,aAAa,UAAQ,QAiCxB;IAEM,OAAO,SAEb;IAEM,MAAM,SAEZ;IAEM,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,QAkBzC;IAEM,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,QAgB3C;CACJ;AAED,YAAY,EAAE,mBAAmB,EAAE,CAAC;eAErB,UAAU"}
@@ -0,0 +1,74 @@
1
+ import { setupChildren } from '../Element/utils';
2
+ import { setupClassName, setupStyle } from '../utils';
3
+ const svgNS = 'http://www.w3.org/2000/svg';
4
+ class SVGElement {
5
+ dom;
6
+ key = undefined;
7
+ constructor({ tagName, props: { children, className, style, ...props }, rootElement, }) {
8
+ this.dom = document.createElementNS(svgNS, tagName);
9
+ if (rootElement) {
10
+ rootElement.appendChild(this.dom);
11
+ }
12
+ this.SetProps({
13
+ className,
14
+ children,
15
+ style,
16
+ ...props,
17
+ });
18
+ }
19
+ SetProps({ className, children, style, ...props }, isForceUpdate = false) {
20
+ if (className !== undefined) {
21
+ setupClassName(className, this.dom);
22
+ }
23
+ if (style !== undefined) {
24
+ setupStyle(style, this.dom);
25
+ }
26
+ if (children !== undefined) {
27
+ setupChildren(children, this.dom, isForceUpdate);
28
+ }
29
+ Object.entries(props)
30
+ .forEach(([name, value]) => {
31
+ this.dom.setAttribute(name, value);
32
+ });
33
+ return this;
34
+ }
35
+ Destroy() {
36
+ this.Remove();
37
+ }
38
+ Remove() {
39
+ this.dom.remove();
40
+ }
41
+ OnMount(callback) {
42
+ if (this.dom.isConnected) {
43
+ callback(this);
44
+ return this;
45
+ }
46
+ const observer = new MutationObserver(() => {
47
+ if (this.dom.isConnected) {
48
+ callback(this);
49
+ observer.disconnect();
50
+ }
51
+ });
52
+ observer.observe(document, {
53
+ childList: true,
54
+ subtree: true,
55
+ });
56
+ return this;
57
+ }
58
+ OnUnMount(callback) {
59
+ const observer = new MutationObserver(() => {
60
+ if (!this.dom.isConnected) {
61
+ callback(this);
62
+ this.Destroy();
63
+ observer.disconnect();
64
+ }
65
+ });
66
+ observer.observe(document, {
67
+ childList: true,
68
+ subtree: true,
69
+ });
70
+ return this;
71
+ }
72
+ }
73
+ export default SVGElement;
74
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/SVGElement/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,274 @@
1
+ import type { DOMElement, NodeChildren } from '../Element/types';
2
+ export type HTMLSVGTags = keyof SVGElementTagNameMap;
3
+ export type SVGTags = SVGElementTagNameMap[HTMLSVGTags];
4
+ type Children = NodeChildren;
5
+ export type SVGElementPropsType<T extends SVGTags = SVGElement> = ElementPropsType<T>;
6
+ export type ElementPropsType<T extends SVGTags = SVGElement> = Omit<Partial<T>, 'children' | 'className' | 'style'> & {
7
+ children?: (Children)[] | undefined;
8
+ className?: string | undefined;
9
+ style?: Partial<CSSStyleDeclaration> | undefined;
10
+ key?: string;
11
+ } & SVGAttributes;
12
+ export interface SVGElementConstructorType<T extends SVGTags = SVGElement> {
13
+ tagName: HTMLSVGTags;
14
+ props: SVGElementPropsType<T>;
15
+ rootElement?: DOMElement | null;
16
+ }
17
+ export interface SVGAttributes {
18
+ suppressHydrationWarning?: boolean | undefined;
19
+ color?: string | undefined;
20
+ height?: number | string | undefined;
21
+ lang?: string | undefined;
22
+ max?: number | string | undefined;
23
+ media?: string | undefined;
24
+ method?: string | undefined;
25
+ min?: number | string | undefined;
26
+ name?: string | undefined;
27
+ target?: string | undefined;
28
+ type?: string | undefined;
29
+ width?: number | string | undefined;
30
+ role?: string | undefined;
31
+ tabIndex?: number | undefined;
32
+ crossOrigin?: string;
33
+ accentHeight?: number | string | undefined;
34
+ accumulate?: 'none' | 'sum' | undefined;
35
+ additive?: 'replace' | 'sum' | undefined;
36
+ alignmentBaseline?: 'auto' | 'baseline' | 'before-edge' | 'text-before-edge' | 'middle' | 'central' | 'after-edge' | 'text-after-edge' | 'ideographic' | 'alphabetic' | 'hanging' | 'mathematical' | 'inherit' | undefined;
37
+ allowReorder?: 'no' | 'yes' | undefined;
38
+ alphabetic?: number | string | undefined;
39
+ amplitude?: number | string | undefined;
40
+ arabicForm?: 'initial' | 'medial' | 'terminal' | 'isolated' | undefined;
41
+ ascent?: number | string | undefined;
42
+ attributeName?: string | undefined;
43
+ attributeType?: string | undefined;
44
+ autoReverse?: string | undefined;
45
+ azimuth?: number | string | undefined;
46
+ baseFrequency?: number | string | undefined;
47
+ baselineShift?: number | string | undefined;
48
+ baseProfile?: number | string | undefined;
49
+ bbox?: number | string | undefined;
50
+ begin?: number | string | undefined;
51
+ bias?: number | string | undefined;
52
+ by?: number | string | undefined;
53
+ calcMode?: number | string | undefined;
54
+ capHeight?: number | string | undefined;
55
+ clip?: number | string | undefined;
56
+ clipPath?: string | undefined;
57
+ clipPathUnits?: number | string | undefined;
58
+ clipRule?: number | string | undefined;
59
+ colorInterpolation?: number | string | undefined;
60
+ colorInterpolationFilters?: 'auto' | 'sRGB' | 'linearRGB' | 'inherit' | undefined;
61
+ colorProfile?: number | string | undefined;
62
+ colorRendering?: number | string | undefined;
63
+ contentScriptType?: number | string | undefined;
64
+ contentStyleType?: number | string | undefined;
65
+ cursor?: number | string | undefined;
66
+ cx?: number | string | undefined;
67
+ cy?: number | string | undefined;
68
+ d?: string | undefined;
69
+ decelerate?: number | string | undefined;
70
+ descent?: number | string | undefined;
71
+ diffuseConstant?: number | string | undefined;
72
+ direction?: number | string | undefined;
73
+ display?: number | string | undefined;
74
+ divisor?: number | string | undefined;
75
+ dominantBaseline?: number | string | undefined;
76
+ dur?: number | string | undefined;
77
+ dx?: number | string | undefined;
78
+ dy?: number | string | undefined;
79
+ edgeMode?: number | string | undefined;
80
+ elevation?: number | string | undefined;
81
+ enableBackground?: number | string | undefined;
82
+ end?: number | string | undefined;
83
+ exponent?: number | string | undefined;
84
+ fill?: string | undefined;
85
+ fillOpacity?: number | string | undefined;
86
+ fillRule?: 'nonzero' | 'evenodd' | 'inherit' | undefined;
87
+ filter?: string | undefined;
88
+ filterRes?: number | string | undefined;
89
+ filterUnits?: number | string | undefined;
90
+ floodColor?: number | string | undefined;
91
+ floodOpacity?: number | string | undefined;
92
+ fontFamily?: string | undefined;
93
+ fontSize?: number | string | undefined;
94
+ fontSizeAdjust?: number | string | undefined;
95
+ fontStretch?: number | string | undefined;
96
+ fontStyle?: number | string | undefined;
97
+ fontVariant?: number | string | undefined;
98
+ fontWeight?: number | string | undefined;
99
+ format?: number | string | undefined;
100
+ fr?: number | string | undefined;
101
+ from?: number | string | undefined;
102
+ fx?: number | string | undefined;
103
+ fy?: number | string | undefined;
104
+ g1?: number | string | undefined;
105
+ g2?: number | string | undefined;
106
+ glyphName?: number | string | undefined;
107
+ glyphOrientationHorizontal?: number | string | undefined;
108
+ glyphOrientationVertical?: number | string | undefined;
109
+ glyphRef?: number | string | undefined;
110
+ gradientTransform?: string | undefined;
111
+ gradientUnits?: string | undefined;
112
+ hanging?: number | string | undefined;
113
+ horizAdvX?: number | string | undefined;
114
+ horizOriginX?: number | string | undefined;
115
+ href?: string | undefined;
116
+ ideographic?: number | string | undefined;
117
+ imageRendering?: number | string | undefined;
118
+ in2?: number | string | undefined;
119
+ in?: string | undefined;
120
+ intercept?: number | string | undefined;
121
+ k1?: number | string | undefined;
122
+ k2?: number | string | undefined;
123
+ k3?: number | string | undefined;
124
+ k4?: number | string | undefined;
125
+ k?: number | string | undefined;
126
+ kernelMatrix?: number | string | undefined;
127
+ kernelUnitLength?: number | string | undefined;
128
+ kerning?: number | string | undefined;
129
+ keyPoints?: number | string | undefined;
130
+ keySplines?: number | string | undefined;
131
+ keyTimes?: number | string | undefined;
132
+ lengthAdjust?: number | string | undefined;
133
+ letterSpacing?: number | string | undefined;
134
+ lightingColor?: number | string | undefined;
135
+ limitingConeAngle?: number | string | undefined;
136
+ local?: number | string | undefined;
137
+ markerEnd?: string | undefined;
138
+ markerHeight?: number | string | undefined;
139
+ markerMid?: string | undefined;
140
+ markerStart?: string | undefined;
141
+ markerUnits?: number | string | undefined;
142
+ markerWidth?: number | string | undefined;
143
+ mask?: string | undefined;
144
+ maskContentUnits?: number | string | undefined;
145
+ maskUnits?: number | string | undefined;
146
+ mathematical?: number | string | undefined;
147
+ mode?: number | string | undefined;
148
+ numOctaves?: number | string | undefined;
149
+ offset?: number | string | undefined;
150
+ opacity?: number | string | undefined;
151
+ operator?: number | string | undefined;
152
+ order?: number | string | undefined;
153
+ orient?: number | string | undefined;
154
+ orientation?: number | string | undefined;
155
+ origin?: number | string | undefined;
156
+ overflow?: number | string | undefined;
157
+ overlinePosition?: number | string | undefined;
158
+ overlineThickness?: number | string | undefined;
159
+ paintOrder?: number | string | undefined;
160
+ panose1?: number | string | undefined;
161
+ path?: string | undefined;
162
+ pathLength?: number | string | undefined;
163
+ patternContentUnits?: string | undefined;
164
+ patternTransform?: number | string | undefined;
165
+ patternUnits?: string | undefined;
166
+ pointerEvents?: number | string | undefined;
167
+ points?: string | undefined;
168
+ pointsAtX?: number | string | undefined;
169
+ pointsAtY?: number | string | undefined;
170
+ pointsAtZ?: number | string | undefined;
171
+ preserveAspectRatio?: string | undefined;
172
+ primitiveUnits?: number | string | undefined;
173
+ r?: number | string | undefined;
174
+ radius?: number | string | undefined;
175
+ refX?: number | string | undefined;
176
+ refY?: number | string | undefined;
177
+ renderingIntent?: number | string | undefined;
178
+ repeatCount?: number | string | undefined;
179
+ repeatDur?: number | string | undefined;
180
+ requiredExtensions?: number | string | undefined;
181
+ requiredFeatures?: number | string | undefined;
182
+ restart?: number | string | undefined;
183
+ result?: string | undefined;
184
+ rotate?: number | string | undefined;
185
+ rx?: number | string | undefined;
186
+ ry?: number | string | undefined;
187
+ scale?: number | string | undefined;
188
+ seed?: number | string | undefined;
189
+ shapeRendering?: number | string | undefined;
190
+ slope?: number | string | undefined;
191
+ spacing?: number | string | undefined;
192
+ specularConstant?: number | string | undefined;
193
+ specularExponent?: number | string | undefined;
194
+ speed?: number | string | undefined;
195
+ spreadMethod?: string | undefined;
196
+ startOffset?: number | string | undefined;
197
+ stdDeviation?: number | string | undefined;
198
+ stemh?: number | string | undefined;
199
+ stemv?: number | string | undefined;
200
+ stitchTiles?: number | string | undefined;
201
+ stopColor?: string | undefined;
202
+ stopOpacity?: number | string | undefined;
203
+ strikethroughPosition?: number | string | undefined;
204
+ strikethroughThickness?: number | string | undefined;
205
+ string?: number | string | undefined;
206
+ stroke?: string | undefined;
207
+ strokeDasharray?: string | number | undefined;
208
+ strokeDashoffset?: string | number | undefined;
209
+ strokeLinecap?: 'butt' | 'round' | 'square' | 'inherit' | undefined;
210
+ strokeLinejoin?: 'miter' | 'round' | 'bevel' | 'inherit' | undefined;
211
+ strokeMiterlimit?: number | string | undefined;
212
+ strokeOpacity?: number | string | undefined;
213
+ strokeWidth?: number | string | undefined;
214
+ surfaceScale?: number | string | undefined;
215
+ systemLanguage?: number | string | undefined;
216
+ tableValues?: number | string | undefined;
217
+ targetX?: number | string | undefined;
218
+ targetY?: number | string | undefined;
219
+ textAnchor?: string | undefined;
220
+ textDecoration?: number | string | undefined;
221
+ textLength?: number | string | undefined;
222
+ textRendering?: number | string | undefined;
223
+ to?: number | string | undefined;
224
+ transform?: string | undefined;
225
+ u1?: number | string | undefined;
226
+ u2?: number | string | undefined;
227
+ underlinePosition?: number | string | undefined;
228
+ underlineThickness?: number | string | undefined;
229
+ unicode?: number | string | undefined;
230
+ unicodeBidi?: number | string | undefined;
231
+ unicodeRange?: number | string | undefined;
232
+ unitsPerEm?: number | string | undefined;
233
+ vAlphabetic?: number | string | undefined;
234
+ values?: string | undefined;
235
+ vectorEffect?: number | string | undefined;
236
+ version?: string | undefined;
237
+ vertAdvY?: number | string | undefined;
238
+ vertOriginX?: number | string | undefined;
239
+ vertOriginY?: number | string | undefined;
240
+ vHanging?: number | string | undefined;
241
+ vIdeographic?: number | string | undefined;
242
+ viewBox?: string | undefined;
243
+ viewTarget?: number | string | undefined;
244
+ visibility?: number | string | undefined;
245
+ vMathematical?: number | string | undefined;
246
+ widths?: number | string | undefined;
247
+ wordSpacing?: number | string | undefined;
248
+ writingMode?: number | string | undefined;
249
+ x1?: number | string | undefined;
250
+ x2?: number | string | undefined;
251
+ x?: number | string | undefined;
252
+ xChannelSelector?: string | undefined;
253
+ xHeight?: number | string | undefined;
254
+ xlinkActuate?: string | undefined;
255
+ xlinkArcrole?: string | undefined;
256
+ xlinkHref?: string | undefined;
257
+ xlinkRole?: string | undefined;
258
+ xlinkShow?: string | undefined;
259
+ xlinkTitle?: string | undefined;
260
+ xlinkType?: string | undefined;
261
+ xmlBase?: string | undefined;
262
+ xmlLang?: string | undefined;
263
+ xmlns?: string | undefined;
264
+ xmlnsXlink?: string | undefined;
265
+ xmlSpace?: string | undefined;
266
+ y1?: number | string | undefined;
267
+ y2?: number | string | undefined;
268
+ y?: number | string | undefined;
269
+ yChannelSelector?: string | undefined;
270
+ z?: number | string | undefined;
271
+ zoomAndPan?: string | undefined;
272
+ }
273
+ export {};
274
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/SVGElement/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/SVGElement/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type doggy from './index';
2
+ declare global {
3
+ interface Window {
4
+ '@': typeof doggy;
5
+ }
6
+ }
7
+ export {};
8
+ //# sourceMappingURL=global.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,GAAG,EAAE,OAAO,KAAK,CAAC;KACrB;CACJ;AAED,OAAO,EAAG,CAAA"}
package/dist/global.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=global.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.js","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":"AAQA,OAAO,EAAG,CAAA"}
@@ -0,0 +1,16 @@
1
+ import './global';
2
+ import Element from './Element';
3
+ import Fragment from './Fragment';
4
+ import Store from './store';
5
+ import SVGElement from './SVGElement';
6
+ declare const createRoot: (rootElement: HTMLElement, app: (string | HTMLElement | DocumentFragment)[] | DocumentFragment) => void;
7
+ declare const nuvo: {
8
+ readonly Element: typeof Element;
9
+ readonly Store: typeof Store;
10
+ readonly Fragment: typeof Fragment;
11
+ readonly SVGElement: typeof SVGElement;
12
+ readonly createRoot: typeof createRoot;
13
+ };
14
+ export { Element, Store, Fragment, SVGElement, createRoot };
15
+ export default nuvo;
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,CAAC;AAElB,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,QAAA,MAAM,UAAU,gBACC,WAAW,OACnB,CAAC,MAAM,GAAG,WAAW,GAAG,gBAAgB,CAAC,EAAE,GAAG,gBAAgB,KACpE,IAMF,CAAC;AAED,QAAA,MAAM,IAAI;;;;;;CAMD,CAAA;AAOV,OAAO,EACH,OAAO,EACP,KAAK,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACb,CAAC;eAEa,IAAI"}
package/dist/index.js ADDED
@@ -0,0 +1,26 @@
1
+ import './global';
2
+ import Element from './Element';
3
+ import Fragment from './Fragment';
4
+ import Store from './store';
5
+ import SVGElement from './SVGElement';
6
+ const createRoot = (rootElement, app) => {
7
+ if (Array.isArray(app)) {
8
+ rootElement.append(...app);
9
+ }
10
+ else {
11
+ rootElement.appendChild(app);
12
+ }
13
+ };
14
+ const nuvo = {
15
+ Element,
16
+ Store,
17
+ Fragment,
18
+ SVGElement,
19
+ createRoot
20
+ };
21
+ if (typeof window !== 'undefined') {
22
+ window['@'] = nuvo;
23
+ }
24
+ export { Element, Store, Fragment, SVGElement, createRoot };
25
+ export default nuvo;
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,CAAC;AAElB,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,MAAM,UAAU,GAAG,CACf,WAAwB,EACxB,GAAmE,EAC/D,EAAE;IACN,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,WAAW,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACJ,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;AACL,CAAC,CAAC;AAED,MAAM,IAAI,GAAG;IACV,OAAO;IACP,KAAK;IACL,QAAQ;IACR,UAAU;IACV,UAAU;CACJ,CAAA;AAGV,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IAChC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACvB,CAAC;AAED,OAAO,EACH,OAAO,EACP,KAAK,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACb,CAAC;AAEF,eAAe,IAAI,CAAA"}
@@ -0,0 +1,12 @@
1
+ declare class Store<T> {
2
+ private state;
3
+ private listeners;
4
+ constructor(initialState: T);
5
+ Subscribe(callback: (state: T) => void): () => void;
6
+ Effect(callback: (state: T) => void): () => void;
7
+ SetState(newState: T | ((prev: T) => T)): void;
8
+ GetState(): T;
9
+ private Notify;
10
+ }
11
+ export default Store;
12
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAEA,cAAM,KAAK,CAAC,CAAC;IACT,OAAO,CAAC,KAAK,CAAI;IACjB,OAAO,CAAC,SAAS,CAA8B;IAE/C,YAAmB,YAAY,EAAE,CAAC,EAEjC;IAEM,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAMzD;IAEM,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAItD;IAEM,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,QAiB7C;IAEM,QAAQ,MAEd;IAED,OAAO,CAAC,MAAM;CAKjB;eAEc,KAAK"}
package/dist/store.js ADDED
@@ -0,0 +1,45 @@
1
+ import { isEqualObjects, isPlainObject } from './utils';
2
+ class Store {
3
+ state;
4
+ listeners = [];
5
+ constructor(initialState) {
6
+ this.state = initialState;
7
+ }
8
+ Subscribe(callback) {
9
+ this.listeners.push(callback);
10
+ return () => {
11
+ this.listeners = this.listeners.filter(l => l !== callback);
12
+ };
13
+ }
14
+ Effect(callback) {
15
+ callback(this.GetState());
16
+ return this.Subscribe(callback);
17
+ }
18
+ SetState(newState) {
19
+ const state = typeof newState === 'function'
20
+ ? newState(this.state)
21
+ : newState;
22
+ if (isPlainObject(this.state) && isPlainObject(state)) {
23
+ if (!isEqualObjects(this.state, state)) {
24
+ this.state = state;
25
+ this.Notify();
26
+ }
27
+ }
28
+ else {
29
+ if (this.state === state)
30
+ return;
31
+ this.state = state;
32
+ this.Notify();
33
+ }
34
+ }
35
+ GetState() {
36
+ return this.state;
37
+ }
38
+ Notify() {
39
+ this.listeners.forEach((listener) => {
40
+ listener(this.state);
41
+ });
42
+ }
43
+ }
44
+ export default Store;
45
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExD,MAAM,KAAK;IACC,KAAK,CAAI;IACT,SAAS,GAA2B,EAAE,CAAC;IAE/C,YAAmB,YAAe;QAC9B,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;IAC9B,CAAC;IAEM,SAAS,CAAC,QAA4B;QACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE9B,OAAO,GAAG,EAAE;YACR,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;QAChE,CAAC,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,QAA4B;QACtC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE1B,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAEM,QAAQ,CAAC,QAA8B;QAC1C,MAAM,KAAK,GACL,OAAO,QAAQ,KAAK,UAAU;YAC5B,CAAC,CAAE,QAA2B,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1C,CAAC,CAAC,QAAQ,CAAC;QAEnB,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;gBAAE,OAAO;YAEjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,MAAM,EAAE,CAAC;QAClB,CAAC;IACL,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAEO,MAAM;QACV,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAED,eAAe,KAAK,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { DOMElement } from './Element/types';
2
+ export declare function camelToKebab(str: string): string;
3
+ export declare function setupClassName(className?: ((classList: DOMTokenList) => void) | string | undefined, dom?: Element): void;
4
+ export declare function setupInnerHtml(oldChild: DOMElement, newChild: DOMElement): void;
5
+ export declare function setupStyle(style: DOMElement['style'] | undefined, dom?: DOMElement): void;
6
+ export declare const isPlainObject: (value: unknown) => value is Record<string, unknown>;
7
+ export declare const isEqualObjects: (a: unknown, b: unknown) => boolean;
8
+ export declare function mergeAttributes(oldChild: DOMElement, newChild: DOMElement): void;
9
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,UAEvC;AAED,wBAAgB,cAAc,CAC1B,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,YAAY,KAAK,IAAI,CAAC,GACzC,MAAM,GACN,SAAS,EACf,GAAG,CAAC,EAAE,OAAO,QAWhB;AAED,wBAAgB,cAAc,CAC1B,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,UAAU,QAKvB;AAED,wBAAgB,UAAU,CACtB,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,SAAS,EACtC,GAAG,CAAC,EAAE,UAAU,QAanB;AAGD,eAAO,MAAM,aAAa,UACf,OAAO,KACf,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAQjC,CAAC;AAEF,eAAO,MAAM,cAAc,MACpB,OAAO,KACP,OAAO,KACX,OAyCF,CAAC;AAGF,wBAAgB,eAAe,CAC3B,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,UAAU,QAUvB"}
package/dist/utils.js ADDED
@@ -0,0 +1,80 @@
1
+ export function camelToKebab(str) {
2
+ return str.replace(/[A-Z]/g, match => '-' + match.toLowerCase());
3
+ }
4
+ export function setupClassName(className, dom) {
5
+ if (!dom || !className)
6
+ return;
7
+ if (typeof className === 'function') {
8
+ className(dom.classList);
9
+ }
10
+ else {
11
+ if (dom.className !== className) {
12
+ dom.classList.value = className;
13
+ }
14
+ }
15
+ }
16
+ export function setupInnerHtml(oldChild, newChild) {
17
+ if (oldChild.innerHTML !== newChild.innerHTML) {
18
+ oldChild = newChild;
19
+ }
20
+ }
21
+ export function setupStyle(style, dom) {
22
+ if (!style)
23
+ return;
24
+ Object.entries(style)
25
+ .forEach(([property, value]) => {
26
+ if (!value)
27
+ return;
28
+ dom?.style.setProperty(camelToKebab(property), value.toString());
29
+ });
30
+ }
31
+ export const isPlainObject = (value) => {
32
+ if (value === null || typeof value !== 'object') {
33
+ return false;
34
+ }
35
+ const prototype = Object.getPrototypeOf(value);
36
+ return prototype === Object.prototype || prototype === null;
37
+ };
38
+ export const isEqualObjects = (a, b) => {
39
+ if (Object.is(a, b)) {
40
+ return true;
41
+ }
42
+ if (Array.isArray(a) && Array.isArray(b)) {
43
+ if (a.length !== b.length) {
44
+ return false;
45
+ }
46
+ for (let i = 0; i < a.length; i++) {
47
+ if (!isEqualObjects(a[i], b[i])) {
48
+ return false;
49
+ }
50
+ }
51
+ return true;
52
+ }
53
+ if (isPlainObject(a) && isPlainObject(b)) {
54
+ const keysA = Reflect.ownKeys(a);
55
+ const keysB = Reflect.ownKeys(b);
56
+ if (keysA.length !== keysB.length) {
57
+ return false;
58
+ }
59
+ for (const key of keysA) {
60
+ if (!Object.prototype.hasOwnProperty.call(b, key)) {
61
+ return false;
62
+ }
63
+ if (!isEqualObjects(a[key], b[key])) {
64
+ return false;
65
+ }
66
+ }
67
+ return true;
68
+ }
69
+ return false;
70
+ };
71
+ export function mergeAttributes(oldChild, newChild) {
72
+ for (let i = 0; i < newChild.getAttributeNames().length; i++) {
73
+ const oldChildAtt = oldChild.attributes[i];
74
+ const newChildAtt = newChild.attributes[i];
75
+ if ((oldChildAtt && newChildAtt) && oldChildAtt?.name === newChildAtt?.name && oldChildAtt?.value !== newChildAtt?.value) {
76
+ oldChild.setAttribute(oldChildAtt.name, newChildAtt.value);
77
+ }
78
+ }
79
+ }
80
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,50 @@
1
1
  {
2
- "name": "@nuvo-js/core",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
2
+ "name": "@nuvo-js/core",
3
+ "version": "0.5.1",
4
+ "description": "A lightweight custom DOM rendering engine",
5
+ "keywords": [
6
+ "nuvo",
7
+ "dom",
8
+ "renderer",
9
+ "rendering-engine",
10
+ "typescript",
11
+ "javascript"
12
+ ],
13
+ "homepage": "https://github.com/Gagik-arch/nuvo-js#readme",
14
+ "bugs": {
15
+ "url": "https://github.com/Gagik-arch/nuvo-js/issues"
16
+ },
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "https://github.com/Gagik-arch/nuvo-js.git"
20
+ },
21
+ "license": "ISC",
22
+ "author": "Gagik Chilingaryan",
23
+ "type": "module",
24
+ "main": "./dist/index.js",
25
+ "types": "./dist/index.d.ts",
26
+ "exports": {
27
+ ".": {
28
+ "types": "./dist/index.d.ts",
29
+ "import": "./dist/index.js"
30
+ }
31
+ },
32
+ "scripts": {
33
+ "build": "tsc",
34
+ "prepublishOnly": "npm run build"
35
+ },
36
+ "files": [
37
+ "dist",
38
+ "README.md",
39
+ "LICENSE"
40
+ ],
41
+ "devDependencies": {
42
+ "@eslint/js": "^9.39.5",
43
+ "@stylistic/eslint-plugin": "^5.10.0",
44
+ "@types/node": "^26.6.6",
45
+ "eslint": "^9.39.0",
46
+ "eslint-plugin-import": "^2.32.0",
47
+ "typescript": "^7.0.2",
48
+ "typescript-eslint": "^8.36.0"
49
+ }
6
50
  }