@fukict/basic 0.1.10 → 0.1.11

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 (63) hide show
  1. package/README.md +1 -1
  2. package/dist/component-class/fukict.d.ts +6 -0
  3. package/dist/component-class/fukict.d.ts.map +1 -1
  4. package/dist/component-class/fukict.js +6 -0
  5. package/dist/component-class/fukict.js.map +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/metadata.d.ts +1 -1
  8. package/dist/metadata.js +1 -1
  9. package/dist/renderer/create.d.ts +1 -1
  10. package/dist/renderer/create.d.ts.map +1 -1
  11. package/dist/renderer/create.js.map +1 -1
  12. package/dist/renderer/diff/class.d.ts.map +1 -1
  13. package/dist/renderer/diff/class.js +1 -7
  14. package/dist/renderer/diff/class.js.map +1 -1
  15. package/dist/renderer/diff/dom-ops.d.ts +16 -0
  16. package/dist/renderer/diff/dom-ops.d.ts.map +1 -0
  17. package/dist/renderer/diff/{helpers.js → dom-ops.js} +30 -69
  18. package/dist/renderer/diff/dom-ops.js.map +1 -0
  19. package/dist/renderer/diff/index.d.ts +5 -13
  20. package/dist/renderer/diff/index.d.ts.map +1 -1
  21. package/dist/renderer/diff/index.js +10 -103
  22. package/dist/renderer/diff/index.js.map +1 -1
  23. package/dist/renderer/diff/primitive.d.ts.map +1 -1
  24. package/dist/renderer/diff/primitive.js +1 -6
  25. package/dist/renderer/diff/primitive.js.map +1 -1
  26. package/dist/renderer/diff/props.js +5 -5
  27. package/dist/renderer/diff/props.js.map +1 -1
  28. package/dist/renderer/diff/reconciler.d.ts +17 -0
  29. package/dist/renderer/diff/reconciler.d.ts.map +1 -0
  30. package/dist/renderer/diff/reconciler.js +232 -0
  31. package/dist/renderer/diff/reconciler.js.map +1 -0
  32. package/dist/renderer/diff/utils.d.ts +10 -0
  33. package/dist/renderer/diff/utils.d.ts.map +1 -0
  34. package/dist/renderer/diff/utils.js +25 -0
  35. package/dist/renderer/diff/utils.js.map +1 -0
  36. package/dist/renderer/index.d.ts.map +1 -1
  37. package/dist/renderer/index.js.map +1 -1
  38. package/dist/types/dom-attributes.d.ts.map +1 -1
  39. package/dist/types/jsx.d.ts.map +1 -1
  40. package/dist/vnode.d.ts +5 -0
  41. package/dist/vnode.d.ts.map +1 -1
  42. package/dist/vnode.js +9 -7
  43. package/dist/vnode.js.map +1 -1
  44. package/package.json +18 -18
  45. package/dist/renderer/diff/children.d.ts +0 -12
  46. package/dist/renderer/diff/children.d.ts.map +0 -1
  47. package/dist/renderer/diff/children.js +0 -55
  48. package/dist/renderer/diff/children.js.map +0 -1
  49. package/dist/renderer/diff/element.d.ts +0 -14
  50. package/dist/renderer/diff/element.d.ts.map +0 -1
  51. package/dist/renderer/diff/element.js +0 -38
  52. package/dist/renderer/diff/element.js.map +0 -1
  53. package/dist/renderer/diff/fragment.d.ts +0 -13
  54. package/dist/renderer/diff/fragment.d.ts.map +0 -1
  55. package/dist/renderer/diff/fragment.js +0 -35
  56. package/dist/renderer/diff/fragment.js.map +0 -1
  57. package/dist/renderer/diff/function.d.ts +0 -9
  58. package/dist/renderer/diff/function.d.ts.map +0 -1
  59. package/dist/renderer/diff/function.js +0 -59
  60. package/dist/renderer/diff/function.js.map +0 -1
  61. package/dist/renderer/diff/helpers.d.ts +0 -19
  62. package/dist/renderer/diff/helpers.d.ts.map +0 -1
  63. package/dist/renderer/diff/helpers.js.map +0 -1
@@ -1,38 +0,0 @@
1
- import { VNodeType } from '../../types/index.js';
2
- import { setupElementVNode } from '../vnode-helpers.js';
3
- import { diffChildren } from './children.js';
4
- import { replaceNode } from './helpers.js';
5
- import { patchProps } from './props.js';
6
- /**
7
- * Diff Element VNode
8
- * - Reuse DOM node
9
- * - Patch props
10
- * - Recursively diff children
11
- */
12
- export function diffElement(oldVNode, newVNode, container) {
13
- if (oldVNode.__type__ !== VNodeType.Element ||
14
- newVNode.__type__ !== VNodeType.Element) {
15
- throw new Error('Expected ElementVNode');
16
- }
17
- const oldElementVNode = oldVNode;
18
- const newElementVNode = newVNode;
19
- // Tag name changed - replace entire element
20
- if (oldElementVNode.type !== newElementVNode.type) {
21
- replaceNode(oldElementVNode, newElementVNode, container);
22
- return;
23
- }
24
- // Reuse DOM element
25
- const element = oldElementVNode.__node__;
26
- if (!element) {
27
- // DOM doesn't exist, replace node
28
- replaceNode(oldElementVNode, newElementVNode, container);
29
- return;
30
- }
31
- // Setup ElementVNode: save DOM reference
32
- setupElementVNode(newElementVNode, element);
33
- // Patch props
34
- patchProps(element, oldElementVNode.props, newElementVNode.props);
35
- // Diff children
36
- diffChildren(oldElementVNode.children, newElementVNode.children, element);
37
- }
38
- //# sourceMappingURL=element.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"element.js","sourceRoot":"","sources":["../../../src/renderer/diff/element.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,QAAe,EACf,QAAe,EACf,SAAkB;IAElB,IACE,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,OAAO;QACvC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,OAAO,EACvC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,eAAe,GAAG,QAAwB,CAAC;IACjD,MAAM,eAAe,GAAG,QAAwB,CAAC;IAEjD,4CAA4C;IAC5C,IAAI,eAAe,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;QAClD,WAAW,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IAED,oBAAoB;IACpB,MAAM,OAAO,GAAG,eAAe,CAAC,QAAmB,CAAC;IACpD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,kCAAkC;QAClC,WAAW,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IAED,yCAAyC;IACzC,iBAAiB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAE5C,cAAc;IACd,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;IAElE,gBAAgB;IAChB,YAAY,CAAC,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC5E,CAAC"}
@@ -1,13 +0,0 @@
1
- /**
2
- * @fukict/basic - Diff: Fragment
3
- *
4
- * Diff fragment VNodes
5
- */
6
- import type { VNode } from '../../types/index.js';
7
- /**
8
- * Diff Fragment VNode
9
- * - Diff children array
10
- * - Update __node__ array
11
- */
12
- export declare function diffFragment(oldVNode: VNode, newVNode: VNode, container: Element): void;
13
- //# sourceMappingURL=fragment.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fragment.d.ts","sourceRoot":"","sources":["../../../src/renderer/diff/fragment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAiB,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAKjE;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,OAAO,GACjB,IAAI,CA8BN"}
@@ -1,35 +0,0 @@
1
- import { VNodeType } from '../../types/index.js';
2
- import { setupFragmentVNode } from '../vnode-helpers.js';
3
- import { diffChildren } from './children.js';
4
- /**
5
- * Diff Fragment VNode
6
- * - Diff children array
7
- * - Update __node__ array
8
- */
9
- export function diffFragment(oldVNode, newVNode, container) {
10
- if (oldVNode.__type__ !== VNodeType.Fragment ||
11
- newVNode.__type__ !== VNodeType.Fragment) {
12
- throw new Error('Expected FragmentVNode');
13
- }
14
- const newFragmentVNode = newVNode;
15
- // Diff children
16
- diffChildren(oldVNode.children, newFragmentVNode.children, container);
17
- // Update __node__ reference (collect all current child nodes)
18
- const newNodes = [];
19
- for (const child of newFragmentVNode.children) {
20
- if (child && typeof child === 'object' && '__node__' in child) {
21
- const dom = child.__node__;
22
- if (dom) {
23
- if (Array.isArray(dom)) {
24
- newNodes.push(...dom);
25
- }
26
- else {
27
- newNodes.push(dom);
28
- }
29
- }
30
- }
31
- }
32
- // Setup FragmentVNode: save DOM nodes array reference
33
- setupFragmentVNode(newFragmentVNode, newNodes);
34
- }
35
- //# sourceMappingURL=fragment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fragment.js","sourceRoot":"","sources":["../../../src/renderer/diff/fragment.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAe,EACf,QAAe,EACf,SAAkB;IAElB,IACE,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ;QACxC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,EACxC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,gBAAgB,GAAG,QAAyB,CAAC;IAEnD,gBAAgB;IAChB,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEtE,8DAA8D;IAC9D,MAAM,QAAQ,GAAW,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QAC9C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;YAC9D,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC;YAC3B,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,kBAAkB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AACjD,CAAC"}
@@ -1,9 +0,0 @@
1
- import type { VNode } from '../../types/index.js';
2
- /**
3
- * Diff Function Component VNode
4
- * - Shallow compare props
5
- * - Re-call function if props changed
6
- * - Recursively diff __render__
7
- */
8
- export declare function diffFunctionComponent(oldVNode: VNode, newVNode: VNode, container: Element): void;
9
- //# sourceMappingURL=function.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../../src/renderer/diff/function.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,KAAK,EAEN,MAAM,sBAAsB,CAAC;AAM9B;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,OAAO,GACjB,IAAI,CAkEN"}
@@ -1,59 +0,0 @@
1
- import { VNodeType } from '../../types/index.js';
2
- import { setupFunctionComponentVNode } from '../vnode-helpers.js';
3
- import { replaceNode, shallowEqual } from './helpers.js';
4
- import { diff } from './index.js';
5
- /**
6
- * Diff Function Component VNode
7
- * - Shallow compare props
8
- * - Re-call function if props changed
9
- * - Recursively diff __render__
10
- */
11
- export function diffFunctionComponent(oldVNode, newVNode, container) {
12
- if (oldVNode.__type__ !== VNodeType.FunctionComponent ||
13
- newVNode.__type__ !== VNodeType.FunctionComponent) {
14
- throw new Error('Expected FunctionComponentVNode');
15
- }
16
- // Type assertion after runtime check
17
- const oldFuncVNode = oldVNode;
18
- const newFuncVNode = newVNode;
19
- // Function changed - replace
20
- if (oldFuncVNode.type !== newFuncVNode.type) {
21
- replaceNode(oldFuncVNode, newFuncVNode, container);
22
- return;
23
- }
24
- // Shallow compare props
25
- if (shallowEqual(oldFuncVNode.props, newFuncVNode.props)) {
26
- // Props unchanged - reuse rendered result
27
- // Setup FunctionComponentVNode with reused data
28
- setupFunctionComponentVNode(newFuncVNode, oldFuncVNode.__render__, oldFuncVNode.__node__ ?? null);
29
- return;
30
- }
31
- // Props changed - re-call function
32
- // Merge children into props
33
- const propsWithChildren = {
34
- ...(newFuncVNode.props ?? {}),
35
- children: newFuncVNode.children.length === 1
36
- ? newFuncVNode.children[0]
37
- : newFuncVNode.children,
38
- };
39
- // Call function component with typed signature
40
- const funcComponent = newFuncVNode.type;
41
- const rendered = funcComponent(propsWithChildren);
42
- // Store rendered VNode (only if it's a VNode object)
43
- const renderedVNode = rendered && typeof rendered === 'object' && '__type__' in rendered
44
- ? rendered
45
- : undefined;
46
- // Diff old and new rendered result
47
- const oldRendered = oldFuncVNode.__render__;
48
- diff(oldRendered, rendered, container);
49
- // Update __node__ reference (only for non-ClassComponent VNodes)
50
- let domNode = null;
51
- if (renderedVNode &&
52
- renderedVNode.__type__ !== VNodeType.ClassComponent &&
53
- '__node__' in renderedVNode) {
54
- domNode = renderedVNode.__node__ ?? null;
55
- }
56
- // Setup FunctionComponentVNode: save rendered VNode and DOM reference
57
- setupFunctionComponentVNode(newFuncVNode, renderedVNode, domNode);
58
- }
59
- //# sourceMappingURL=function.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"function.js","sourceRoot":"","sources":["../../../src/renderer/diff/function.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAe,EACf,QAAe,EACf,SAAkB;IAElB,IACE,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,iBAAiB;QACjD,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,iBAAiB,EACjD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,qCAAqC;IACrC,MAAM,YAAY,GAAG,QAAkC,CAAC;IACxD,MAAM,YAAY,GAAG,QAAkC,CAAC;IAExD,6BAA6B;IAC7B,IAAI,YAAY,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;QAC5C,WAAW,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IAED,wBAAwB;IACxB,IAAI,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,0CAA0C;QAC1C,gDAAgD;QAChD,2BAA2B,CACzB,YAAY,EACZ,YAAY,CAAC,UAAU,EACvB,YAAY,CAAC,QAAQ,IAAI,IAAI,CAC9B,CAAC;QACF,OAAO;IACT,CAAC;IAED,mCAAmC;IACnC,4BAA4B;IAC5B,MAAM,iBAAiB,GAA4B;QACjD,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;QAC7B,QAAQ,EACN,YAAY,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAChC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,YAAY,CAAC,QAAQ;KAC5B,CAAC;IAEF,+CAA+C;IAC/C,MAAM,aAAa,GAAG,YAAY,CAAC,IAAoC,CAAC;IACxE,MAAM,QAAQ,GAAe,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAE9D,qDAAqD;IACrD,MAAM,aAAa,GACjB,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ;QAChE,CAAC,CAAE,QAAkB;QACrB,CAAC,CAAC,SAAS,CAAC;IAEhB,mCAAmC;IACnC,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,CAAC;IAC5C,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEvC,iEAAiE;IACjE,IAAI,OAAO,GAAyB,IAAI,CAAC;IACzC,IACE,aAAa;QACb,aAAa,CAAC,QAAQ,KAAK,SAAS,CAAC,cAAc;QACnD,UAAU,IAAI,aAAa,EAC3B,CAAC;QACD,OAAO,GAAG,aAAa,CAAC,QAAQ,IAAI,IAAI,CAAC;IAC3C,CAAC;IAED,sEAAsE;IACtE,2BAA2B,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC"}
@@ -1,19 +0,0 @@
1
- /**
2
- * @fukict/basic - Diff: Helpers
3
- *
4
- * Helper functions for diff operations
5
- */
6
- import type { VNodeChild } from '../../types/index.js';
7
- /**
8
- * Replace old node with new node
9
- */
10
- export declare function replaceNode(oldVNode: VNodeChild, newVNode: VNodeChild, container: Element): void;
11
- /**
12
- * Remove node from DOM
13
- */
14
- export declare function removeNode(vnode: VNodeChild, container: Element): void;
15
- /**
16
- * Shallow compare two objects
17
- */
18
- export declare function shallowEqual(a: Record<string, unknown> | null, b: Record<string, unknown> | null): boolean;
19
- //# sourceMappingURL=helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/renderer/diff/helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAQV,UAAU,EACX,MAAM,sBAAsB,CAAC;AAyD9B;;GAEG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,OAAO,GACjB,IAAI,CA8BN;AAwED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CA2DtE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACjC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAChC,OAAO,CAcT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/renderer/diff/helpers.ts"],"names":[],"mappings":"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"}