@adam26davidson/char-matrix-react 0.0.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 (105) hide show
  1. package/dist/char-matrix/src/Element/ContainerElement.d.ts +28 -0
  2. package/dist/char-matrix/src/Element/ContainerElement.d.ts.map +1 -0
  3. package/dist/char-matrix/src/Element/ContainerElement.js +128 -0
  4. package/dist/char-matrix/src/Element/ContainerElement.js.map +1 -0
  5. package/dist/char-matrix/src/Element/Element.d.ts +31 -0
  6. package/dist/char-matrix/src/Element/Element.d.ts.map +1 -0
  7. package/dist/char-matrix/src/Element/Element.js +190 -0
  8. package/dist/char-matrix/src/Element/Element.js.map +1 -0
  9. package/dist/char-matrix/src/Element/ElementBase.d.ts +66 -0
  10. package/dist/char-matrix/src/Element/ElementBase.d.ts.map +1 -0
  11. package/dist/char-matrix/src/Element/ElementBase.js +167 -0
  12. package/dist/char-matrix/src/Element/ElementBase.js.map +1 -0
  13. package/dist/char-matrix/src/Element/ElementDrawing.d.ts +41 -0
  14. package/dist/char-matrix/src/Element/ElementDrawing.d.ts.map +1 -0
  15. package/dist/char-matrix/src/Element/ElementDrawing.js +232 -0
  16. package/dist/char-matrix/src/Element/ElementDrawing.js.map +1 -0
  17. package/dist/char-matrix/src/Element/ElementInteraction.d.ts +21 -0
  18. package/dist/char-matrix/src/Element/ElementInteraction.d.ts.map +1 -0
  19. package/dist/char-matrix/src/Element/ElementInteraction.js +110 -0
  20. package/dist/char-matrix/src/Element/ElementInteraction.js.map +1 -0
  21. package/dist/char-matrix/src/Element/ElementLayout.d.ts +25 -0
  22. package/dist/char-matrix/src/Element/ElementLayout.d.ts.map +1 -0
  23. package/dist/char-matrix/src/Element/ElementLayout.js +152 -0
  24. package/dist/char-matrix/src/Element/ElementLayout.js.map +1 -0
  25. package/dist/char-matrix/src/Element/ParentElement.d.ts +24 -0
  26. package/dist/char-matrix/src/Element/ParentElement.d.ts.map +1 -0
  27. package/dist/char-matrix/src/Element/ParentElement.js +58 -0
  28. package/dist/char-matrix/src/Element/ParentElement.js.map +1 -0
  29. package/dist/char-matrix/src/Element/TextElement.d.ts +28 -0
  30. package/dist/char-matrix/src/Element/TextElement.d.ts.map +1 -0
  31. package/dist/char-matrix/src/Element/TextElement.js +214 -0
  32. package/dist/char-matrix/src/Element/TextElement.js.map +1 -0
  33. package/dist/char-matrix/src/Element/TransitionSequence.d.ts +15 -0
  34. package/dist/char-matrix/src/Element/TransitionSequence.d.ts.map +1 -0
  35. package/dist/char-matrix/src/Element/TransitionSequence.js +113 -0
  36. package/dist/char-matrix/src/Element/TransitionSequence.js.map +1 -0
  37. package/dist/char-matrix/src/constants.d.ts +8 -0
  38. package/dist/char-matrix/src/constants.d.ts.map +1 -0
  39. package/dist/char-matrix/src/constants.js +8 -0
  40. package/dist/char-matrix/src/constants.js.map +1 -0
  41. package/dist/char-matrix/src/index.d.ts +22 -0
  42. package/dist/char-matrix/src/index.d.ts.map +1 -0
  43. package/dist/char-matrix/src/index.js +20 -0
  44. package/dist/char-matrix/src/index.js.map +1 -0
  45. package/dist/char-matrix/src/interfaces/ElementAnimationHandler.d.ts +29 -0
  46. package/dist/char-matrix/src/interfaces/ElementAnimationHandler.d.ts.map +1 -0
  47. package/dist/char-matrix/src/interfaces/ElementAnimationHandler.js +2 -0
  48. package/dist/char-matrix/src/interfaces/ElementAnimationHandler.js.map +1 -0
  49. package/dist/char-matrix/src/interfaces/RenderTarget.d.ts +17 -0
  50. package/dist/char-matrix/src/interfaces/RenderTarget.d.ts.map +1 -0
  51. package/dist/char-matrix/src/interfaces/RenderTarget.js +2 -0
  52. package/dist/char-matrix/src/interfaces/RenderTarget.js.map +1 -0
  53. package/dist/char-matrix/src/interfaces/SurfaceTransform.d.ts +16 -0
  54. package/dist/char-matrix/src/interfaces/SurfaceTransform.d.ts.map +1 -0
  55. package/dist/char-matrix/src/interfaces/SurfaceTransform.js +2 -0
  56. package/dist/char-matrix/src/interfaces/SurfaceTransform.js.map +1 -0
  57. package/dist/char-matrix/src/types/Axes.d.ts +5 -0
  58. package/dist/char-matrix/src/types/Axes.d.ts.map +1 -0
  59. package/dist/char-matrix/src/types/Axes.js +4 -0
  60. package/dist/char-matrix/src/types/Axes.js.map +1 -0
  61. package/dist/char-matrix/src/types/CharMatrix.d.ts +21 -0
  62. package/dist/char-matrix/src/types/CharMatrix.d.ts.map +1 -0
  63. package/dist/char-matrix/src/types/CharMatrix.js +89 -0
  64. package/dist/char-matrix/src/types/CharMatrix.js.map +1 -0
  65. package/dist/char-matrix/src/types/IntPoint.d.ts +21 -0
  66. package/dist/char-matrix/src/types/IntPoint.d.ts.map +1 -0
  67. package/dist/char-matrix/src/types/IntPoint.js +59 -0
  68. package/dist/char-matrix/src/types/IntPoint.js.map +1 -0
  69. package/dist/char-matrix/src/types/NormPoint.d.ts +10 -0
  70. package/dist/char-matrix/src/types/NormPoint.d.ts.map +1 -0
  71. package/dist/char-matrix/src/types/NormPoint.js +28 -0
  72. package/dist/char-matrix/src/types/NormPoint.js.map +1 -0
  73. package/dist/char-matrix/src/types/RealPoint.d.ts +21 -0
  74. package/dist/char-matrix/src/types/RealPoint.d.ts.map +1 -0
  75. package/dist/char-matrix/src/types/RealPoint.js +58 -0
  76. package/dist/char-matrix/src/types/RealPoint.js.map +1 -0
  77. package/dist/char-matrix/src/utils/Logging.d.ts +4 -0
  78. package/dist/char-matrix/src/utils/Logging.d.ts.map +1 -0
  79. package/dist/char-matrix/src/utils/Logging.js +8 -0
  80. package/dist/char-matrix/src/utils/Logging.js.map +1 -0
  81. package/dist/char-matrix/src/utils/MiscUtils.d.ts +7 -0
  82. package/dist/char-matrix/src/utils/MiscUtils.d.ts.map +1 -0
  83. package/dist/char-matrix/src/utils/MiscUtils.js +37 -0
  84. package/dist/char-matrix/src/utils/MiscUtils.js.map +1 -0
  85. package/dist/char-matrix/src/utils/Octant.d.ts +42 -0
  86. package/dist/char-matrix/src/utils/Octant.d.ts.map +1 -0
  87. package/dist/char-matrix/src/utils/Octant.js +98 -0
  88. package/dist/char-matrix/src/utils/Octant.js.map +1 -0
  89. package/dist/char-matrix-react/src/ReactComponentElement.d.ts +25 -0
  90. package/dist/char-matrix-react/src/ReactComponentElement.d.ts.map +1 -0
  91. package/dist/char-matrix-react/src/ReactComponentElement.js +66 -0
  92. package/dist/char-matrix-react/src/ReactComponentElement.js.map +1 -0
  93. package/dist/char-matrix-react/src/ReactNodeConfig.d.ts +12 -0
  94. package/dist/char-matrix-react/src/ReactNodeConfig.d.ts.map +1 -0
  95. package/dist/char-matrix-react/src/ReactNodeConfig.js +2 -0
  96. package/dist/char-matrix-react/src/ReactNodeConfig.js.map +1 -0
  97. package/dist/char-matrix-react/src/ReactRenderTarget.d.ts +10 -0
  98. package/dist/char-matrix-react/src/ReactRenderTarget.d.ts.map +1 -0
  99. package/dist/char-matrix-react/src/ReactRenderTarget.js +2 -0
  100. package/dist/char-matrix-react/src/ReactRenderTarget.js.map +1 -0
  101. package/dist/char-matrix-react/src/index.d.ts +5 -0
  102. package/dist/char-matrix-react/src/index.d.ts.map +1 -0
  103. package/dist/char-matrix-react/src/index.js +2 -0
  104. package/dist/char-matrix-react/src/index.js.map +1 -0
  105. package/package.json +35 -0
@@ -0,0 +1,25 @@
1
+ import { ComponentType } from "react";
2
+ import { Element } from "@adam26davidson/char-matrix";
3
+ import type { ElementConfig } from "@adam26davidson/char-matrix";
4
+ import { ReactRenderTarget } from "./ReactRenderTarget";
5
+ import { ReactComponentType } from "./ReactNodeConfig";
6
+ export interface ReactComponentElementConfig extends ElementConfig {
7
+ type: ReactComponentType;
8
+ content?: ComponentType;
9
+ view: ReactRenderTarget;
10
+ }
11
+ export declare class ReactComponentElement extends Element {
12
+ private type;
13
+ private content?;
14
+ protected view: ReactRenderTarget;
15
+ constructor(config: ReactComponentElementConfig);
16
+ drawOwnContent(): void;
17
+ protected handleUnregisterWithView(): void;
18
+ protected handleTransitionStart(type: "enter" | "exit"): void;
19
+ protected reprocessContent(): void;
20
+ protected handleMouseEnter(): void;
21
+ protected handleMouseLeave(): void;
22
+ protected handleClick(): void;
23
+ private ancestorIsTransitioning;
24
+ }
25
+ //# sourceMappingURL=ReactComponentElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactComponentElement.d.ts","sourceRoot":"","sources":["../../../src/ReactComponentElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,OAAO,EAAkC,MAAM,6BAA6B,CAAC;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,WAAW,2BAA4B,SAAQ,aAAa;IAChE,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,qBAAa,qBAAsB,SAAQ,OAAO;IAChD,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,UAAmB,IAAI,EAAE,iBAAiB,CAAC;gBAE/B,MAAM,EAAE,2BAA2B;IAaxC,cAAc;IAkBrB,SAAS,CAAC,wBAAwB;IAIlC,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;IAM7D,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAClC,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAClC,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAClC,SAAS,CAAC,WAAW,IAAI,IAAI;IAE7B,OAAO,CAAC,uBAAuB;CAUhC"}
@@ -0,0 +1,66 @@
1
+ import { Element, charsToPixelsX, charsToPixelsY } from "@adam26davidson/char-matrix";
2
+ export class ReactComponentElement extends Element {
3
+ constructor(config) {
4
+ super(config);
5
+ Object.defineProperty(this, "type", {
6
+ enumerable: true,
7
+ configurable: true,
8
+ writable: true,
9
+ value: void 0
10
+ });
11
+ Object.defineProperty(this, "content", {
12
+ enumerable: true,
13
+ configurable: true,
14
+ writable: true,
15
+ value: void 0
16
+ });
17
+ Object.defineProperty(this, "view", {
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true,
21
+ value: void 0
22
+ });
23
+ this.type = config.type;
24
+ this.content = config.content;
25
+ this.view = config.view;
26
+ console.log("configuring react component element", this.key, "of type", this.type);
27
+ }
28
+ drawOwnContent() {
29
+ const viewOffset = this.view.getPixelOffset();
30
+ const contentSize = this.getSize().subtract(this.getTotalBoundarySize());
31
+ if (!this.ancestorIsTransitioning("entering")) {
32
+ this.view.updateReactNodeConfig(this.key, {
33
+ key: this.key,
34
+ type: this.type,
35
+ height: charsToPixelsY(contentSize.getY()),
36
+ width: charsToPixelsX(contentSize.getX()),
37
+ top: charsToPixelsY(this.fullContentOffset.getY()) + viewOffset.getY(),
38
+ left: charsToPixelsX(this.fullContentOffset.getX()) + viewOffset.getX(),
39
+ content: this.content,
40
+ });
41
+ }
42
+ }
43
+ handleUnregisterWithView() {
44
+ this.view.removeReactNodeConfig(this.key);
45
+ }
46
+ handleTransitionStart(type) {
47
+ if (type === "exit") {
48
+ this.view.removeReactNodeConfig(this.key);
49
+ }
50
+ }
51
+ reprocessContent() { }
52
+ handleMouseEnter() { }
53
+ handleMouseLeave() { }
54
+ handleClick() { }
55
+ ancestorIsTransitioning(type) {
56
+ let ancestor = this.getParent();
57
+ while (ancestor) {
58
+ if (ancestor.getStage() === type) {
59
+ return true;
60
+ }
61
+ ancestor = ancestor.getParent();
62
+ }
63
+ return false;
64
+ }
65
+ }
66
+ //# sourceMappingURL=ReactComponentElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactComponentElement.js","sourceRoot":"","sources":["../../../src/ReactComponentElement.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAWtF,MAAM,OAAO,qBAAsB,SAAQ,OAAO;IAKhD,YAAY,MAAmC;QAC7C,KAAK,CAAC,MAAM,CAAC,CAAC;QALR;;;;;WAAyB;QACzB;;;;;WAAwB;QACb;;;;;WAAwB;QAIzC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,OAAO,CAAC,GAAG,CACT,qCAAqC,EACrC,IAAI,CAAC,GAAG,EACR,SAAS,EACT,IAAI,CAAC,IAAI,CACV,CAAC;IACJ,CAAC;IAEM,cAAc;QACnB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QAE9C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAEzE,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAE;gBACxC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;gBAC1C,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;gBACzC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE;gBACtE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE;gBACvE,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAES,wBAAwB;QAChC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAES,qBAAqB,CAAC,IAAsB;QACpD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAES,gBAAgB,KAAU,CAAC;IAC3B,gBAAgB,KAAU,CAAC;IAC3B,gBAAgB,KAAU,CAAC;IAC3B,WAAW,KAAU,CAAC;IAExB,uBAAuB,CAAC,IAA4B;QAC1D,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,OAAO,QAAQ,EAAE,CAAC;YAChB,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,QAAQ,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QAClC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ import { ComponentType } from "react";
2
+ export interface ReactNodeConfig {
3
+ type: ReactComponentType;
4
+ key: string;
5
+ height: number;
6
+ width: number;
7
+ top: number;
8
+ left: number;
9
+ content?: ComponentType;
10
+ }
11
+ export type ReactComponentType = "BlogComponent" | "ImageComponent" | "TextComponent";
12
+ //# sourceMappingURL=ReactNodeConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactNodeConfig.d.ts","sourceRoot":"","sources":["../../../src/ReactNodeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB;AAED,MAAM,MAAM,kBAAkB,GAC1B,eAAe,GACf,gBAAgB,GAChB,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ReactNodeConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactNodeConfig.js","sourceRoot":"","sources":["../../../src/ReactNodeConfig.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import type { RenderTarget } from "@adam26davidson/char-matrix";
2
+ import type { ReactNodeConfig } from "./ReactNodeConfig";
3
+ /**
4
+ * Extended render target for views that support embedding React components.
5
+ */
6
+ export interface ReactRenderTarget extends RenderTarget {
7
+ updateReactNodeConfig(key: string, config: ReactNodeConfig): void;
8
+ removeReactNodeConfig(key: string): void;
9
+ }
10
+ //# sourceMappingURL=ReactRenderTarget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactRenderTarget.d.ts","sourceRoot":"","sources":["../../../src/ReactRenderTarget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAClE,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ReactRenderTarget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactRenderTarget.js","sourceRoot":"","sources":["../../../src/ReactRenderTarget.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export { ReactComponentElement } from "./ReactComponentElement";
2
+ export type { ReactComponentElementConfig } from "./ReactComponentElement";
3
+ export type { ReactRenderTarget } from "./ReactRenderTarget";
4
+ export type { ReactNodeConfig, ReactComponentType } from "./ReactNodeConfig";
5
+ //# 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,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAC3E,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ReactComponentElement } from "./ReactComponentElement";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@adam26davidson/char-matrix-react",
3
+ "version": "0.0.1",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/index.js",
10
+ "types": "./dist/index.d.ts"
11
+ }
12
+ },
13
+ "files": ["dist"],
14
+ "publishConfig": {
15
+ "access": "public"
16
+ },
17
+ "scripts": {
18
+ "build": "rm -rf dist && tsc",
19
+ "clean": "rm -rf dist"
20
+ },
21
+ "dependencies": {
22
+ "lodash": "^4.17.21"
23
+ },
24
+ "peerDependencies": {
25
+ "@adam26davidson/char-matrix": "*",
26
+ "react": "^18.0.0",
27
+ "react-dom": "^18.0.0"
28
+ },
29
+ "devDependencies": {
30
+ "@types/lodash": "^4.17.13",
31
+ "@types/react": "^18.3.3",
32
+ "@types/react-dom": "^18.3.0",
33
+ "typescript": "^5.2.2"
34
+ }
35
+ }