@fukict/basic 0.1.9 → 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 (99) hide show
  1. package/README.md +1 -1
  2. package/dist/component-class/fukict.d.ts +17 -18
  3. package/dist/component-class/fukict.d.ts.map +1 -1
  4. package/dist/component-class/fukict.js +56 -65
  5. package/dist/component-class/fukict.js.map +1 -1
  6. package/dist/dev.d.ts +26 -0
  7. package/dist/dev.d.ts.map +1 -0
  8. package/dist/dev.js +46 -0
  9. package/dist/dev.js.map +1 -0
  10. package/dist/index.d.ts +2 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +2 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/metadata.d.ts +1 -1
  15. package/dist/metadata.js +1 -1
  16. package/dist/metadata.js.map +1 -1
  17. package/dist/renderer/class-helpers.d.ts +1 -2
  18. package/dist/renderer/class-helpers.d.ts.map +1 -1
  19. package/dist/renderer/class-helpers.js +6 -7
  20. package/dist/renderer/class-helpers.js.map +1 -1
  21. package/dist/renderer/create.d.ts +1 -1
  22. package/dist/renderer/create.d.ts.map +1 -1
  23. package/dist/renderer/create.js +3 -3
  24. package/dist/renderer/create.js.map +1 -1
  25. package/dist/renderer/diff/class.d.ts.map +1 -1
  26. package/dist/renderer/diff/class.js +3 -9
  27. package/dist/renderer/diff/class.js.map +1 -1
  28. package/dist/renderer/diff/dom-ops.d.ts +16 -0
  29. package/dist/renderer/diff/dom-ops.d.ts.map +1 -0
  30. package/dist/renderer/diff/{helpers.js → dom-ops.js} +42 -81
  31. package/dist/renderer/diff/dom-ops.js.map +1 -0
  32. package/dist/renderer/diff/index.d.ts +5 -13
  33. package/dist/renderer/diff/index.d.ts.map +1 -1
  34. package/dist/renderer/diff/index.js +10 -103
  35. package/dist/renderer/diff/index.js.map +1 -1
  36. package/dist/renderer/diff/primitive.d.ts.map +1 -1
  37. package/dist/renderer/diff/primitive.js +3 -8
  38. package/dist/renderer/diff/primitive.js.map +1 -1
  39. package/dist/renderer/diff/props.js +5 -5
  40. package/dist/renderer/diff/props.js.map +1 -1
  41. package/dist/renderer/diff/reconciler.d.ts +17 -0
  42. package/dist/renderer/diff/reconciler.d.ts.map +1 -0
  43. package/dist/renderer/diff/reconciler.js +232 -0
  44. package/dist/renderer/diff/reconciler.js.map +1 -0
  45. package/dist/renderer/diff/utils.d.ts +10 -0
  46. package/dist/renderer/diff/utils.d.ts.map +1 -0
  47. package/dist/renderer/diff/utils.js +25 -0
  48. package/dist/renderer/diff/utils.js.map +1 -0
  49. package/dist/renderer/index.d.ts.map +1 -1
  50. package/dist/renderer/index.js +17 -0
  51. package/dist/renderer/index.js.map +1 -1
  52. package/dist/renderer/mount.js +9 -9
  53. package/dist/renderer/mount.js.map +1 -1
  54. package/dist/renderer/vnode-helpers.js +5 -5
  55. package/dist/renderer/vnode-helpers.js.map +1 -1
  56. package/dist/types/class.d.ts +2 -2
  57. package/dist/types/class.d.ts.map +1 -1
  58. package/dist/types/core.d.ts +15 -16
  59. package/dist/types/core.d.ts.map +1 -1
  60. package/dist/types/core.js.map +1 -1
  61. package/dist/types/dev.d.ts +21 -0
  62. package/dist/types/dev.d.ts.map +1 -0
  63. package/dist/types/dev.js +8 -0
  64. package/dist/types/dev.js.map +1 -0
  65. package/dist/types/dom-attributes.d.ts.map +1 -1
  66. package/dist/types/index.d.ts +1 -0
  67. package/dist/types/index.d.ts.map +1 -1
  68. package/dist/types/jsx.d.ts.map +1 -1
  69. package/dist/utils/context.d.ts +2 -3
  70. package/dist/utils/context.d.ts.map +1 -1
  71. package/dist/utils/context.js +6 -22
  72. package/dist/utils/context.js.map +1 -1
  73. package/dist/utils/dom-helpers.d.ts +3 -3
  74. package/dist/utils/dom-helpers.js +7 -7
  75. package/dist/utils/dom-helpers.js.map +1 -1
  76. package/dist/vnode.d.ts +5 -0
  77. package/dist/vnode.d.ts.map +1 -1
  78. package/dist/vnode.js +9 -7
  79. package/dist/vnode.js.map +1 -1
  80. package/package.json +18 -18
  81. package/dist/renderer/diff/children.d.ts +0 -12
  82. package/dist/renderer/diff/children.d.ts.map +0 -1
  83. package/dist/renderer/diff/children.js +0 -55
  84. package/dist/renderer/diff/children.js.map +0 -1
  85. package/dist/renderer/diff/element.d.ts +0 -14
  86. package/dist/renderer/diff/element.d.ts.map +0 -1
  87. package/dist/renderer/diff/element.js +0 -38
  88. package/dist/renderer/diff/element.js.map +0 -1
  89. package/dist/renderer/diff/fragment.d.ts +0 -13
  90. package/dist/renderer/diff/fragment.d.ts.map +0 -1
  91. package/dist/renderer/diff/fragment.js +0 -35
  92. package/dist/renderer/diff/fragment.js.map +0 -1
  93. package/dist/renderer/diff/function.d.ts +0 -9
  94. package/dist/renderer/diff/function.d.ts.map +0 -1
  95. package/dist/renderer/diff/function.js +0 -59
  96. package/dist/renderer/diff/function.js.map +0 -1
  97. package/dist/renderer/diff/helpers.d.ts +0 -19
  98. package/dist/renderer/diff/helpers.d.ts.map +0 -1
  99. package/dist/renderer/diff/helpers.js.map +0 -1
@@ -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 __rendered__
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.__rendered__, oldFuncVNode.__dom__ ?? null);
29
- return;
30
- }
31
- // Props changed - re-call function
32
- // Merge children into props (like React)
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.__rendered__;
48
- diff(oldRendered, rendered, container);
49
- // Update __dom__ reference (only for non-ClassComponent VNodes)
50
- let domNode = null;
51
- if (renderedVNode &&
52
- renderedVNode.__type__ !== VNodeType.ClassComponent &&
53
- '__dom__' in renderedVNode) {
54
- domNode = renderedVNode.__dom__ ?? 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,YAAY,EACzB,YAAY,CAAC,OAAO,IAAI,IAAI,CAC7B,CAAC;QACF,OAAO;IACT,CAAC;IAED,mCAAmC;IACnC,yCAAyC;IACzC,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,YAAY,CAAC;IAC9C,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEvC,gEAAgE;IAChE,IAAI,OAAO,GAAyB,IAAI,CAAC;IACzC,IACE,aAAa;QACb,aAAa,CAAC,QAAQ,KAAK,SAAS,CAAC,cAAc;QACnD,SAAS,IAAI,aAAa,EAC1B,CAAC;QACD,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,IAAI,CAAC;IAC1C,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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"}