@noraent/nora-datagrid 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 (168) hide show
  1. package/README.md +80 -0
  2. package/lib/cjs/App.d.ts +10 -0
  3. package/lib/cjs/App.js +142 -0
  4. package/lib/cjs/DataGrid.d.ts +3 -0
  5. package/lib/cjs/DataGrid.js +37 -0
  6. package/lib/cjs/buildPackage.json +59 -0
  7. package/lib/cjs/common/constants/defaultProps.d.ts +4 -0
  8. package/lib/cjs/common/constants/defaultProps.js +4 -0
  9. package/lib/cjs/common/constants/index.d.ts +1 -0
  10. package/lib/cjs/common/constants/index.js +1 -0
  11. package/lib/cjs/common/constants/path.d.ts +31 -0
  12. package/lib/cjs/common/constants/path.js +45 -0
  13. package/lib/cjs/common/constants/utils.d.ts +0 -0
  14. package/lib/cjs/common/constants/utils.js +1 -0
  15. package/lib/cjs/common/foundation/index.d.ts +4 -0
  16. package/lib/cjs/common/foundation/index.js +4 -0
  17. package/lib/cjs/common/foundation/scale/color/color.d.ts +44 -0
  18. package/lib/cjs/common/foundation/scale/color/color.js +46 -0
  19. package/lib/cjs/common/foundation/scale/color/index.d.ts +1 -0
  20. package/lib/cjs/common/foundation/scale/color/index.js +1 -0
  21. package/lib/cjs/common/foundation/scale/index.d.ts +2 -0
  22. package/lib/cjs/common/foundation/scale/index.js +2 -0
  23. package/lib/cjs/common/foundation/scale/layout/breakpoints.d.ts +4 -0
  24. package/lib/cjs/common/foundation/scale/layout/breakpoints.js +6 -0
  25. package/lib/cjs/common/foundation/scale/layout/index.d.ts +1 -0
  26. package/lib/cjs/common/foundation/scale/layout/index.js +1 -0
  27. package/lib/cjs/common/foundation/scale/layout/size.d.ts +6 -0
  28. package/lib/cjs/common/foundation/scale/layout/size.js +7 -0
  29. package/lib/cjs/common/styled/assets/components/index.d.ts +1 -0
  30. package/lib/cjs/common/styled/assets/components/index.js +1 -0
  31. package/lib/cjs/common/styled/assets/components/loading/Loading.d.ts +2 -0
  32. package/lib/cjs/common/styled/assets/components/loading/Loading.js +2 -0
  33. package/lib/cjs/common/styled/assets/index.d.ts +1 -0
  34. package/lib/cjs/common/styled/assets/index.js +1 -0
  35. package/lib/cjs/common/styled/index.d.ts +44 -0
  36. package/lib/cjs/common/styled/index.js +57 -0
  37. package/lib/cjs/components/GridBasicRows.d.ts +6 -0
  38. package/lib/cjs/components/GridBasicRows.js +88 -0
  39. package/lib/cjs/components/NoraDataGrid.d.ts +12 -0
  40. package/lib/cjs/components/NoraDataGrid.js +50 -0
  41. package/lib/cjs/components/TwoDimensionalVirtualizedList.d.ts +5 -0
  42. package/lib/cjs/components/TwoDimensionalVirtualizedList.js +538 -0
  43. package/lib/cjs/components/cell/CellMode.d.ts +10 -0
  44. package/lib/cjs/components/cell/CellMode.js +33 -0
  45. package/lib/cjs/components/header/VirtualHorizontalHeader.d.ts +5 -0
  46. package/lib/cjs/components/header/VirtualHorizontalHeader.js +13 -0
  47. package/lib/cjs/components/ime/IMEComponent.d.ts +5 -0
  48. package/lib/cjs/components/ime/IMEComponent.js +149 -0
  49. package/lib/cjs/components/virtualized/_components/VirtualHeader.d.ts +4 -0
  50. package/lib/cjs/components/virtualized/_components/VirtualHeader.js +25 -0
  51. package/lib/cjs/components/virtualized/_constants/virtualHeaderConstants.d.ts +9 -0
  52. package/lib/cjs/components/virtualized/_constants/virtualHeaderConstants.js +1 -0
  53. package/lib/cjs/components/virtualized/_styled/index.d.ts +34 -0
  54. package/lib/cjs/components/virtualized/_styled/index.js +108 -0
  55. package/lib/cjs/hooks/external/usePublicTest.d.ts +3 -0
  56. package/lib/cjs/hooks/external/usePublicTest.js +20 -0
  57. package/lib/cjs/hooks/internal/useCellRange.d.ts +8 -0
  58. package/lib/cjs/hooks/internal/useCellRange.js +275 -0
  59. package/lib/cjs/hooks/internal/useInternalPrivateApi.d.ts +3 -0
  60. package/lib/cjs/hooks/internal/useInternalPrivateApi.js +127 -0
  61. package/lib/cjs/hooks/useGridApiContext.d.ts +4 -0
  62. package/lib/cjs/hooks/useGridApiContext.js +10 -0
  63. package/lib/cjs/hooks/useGridApiMethod.d.ts +8 -0
  64. package/lib/cjs/hooks/useGridApiMethod.js +18 -0
  65. package/lib/cjs/hooks/useGridInitialization.d.ts +3 -0
  66. package/lib/cjs/hooks/useGridInitialization.js +62 -0
  67. package/lib/cjs/index.d.ts +1 -0
  68. package/lib/cjs/index.js +1 -0
  69. package/lib/cjs/main.d.ts +0 -0
  70. package/lib/cjs/main.js +9 -0
  71. package/lib/cjs/provider/GridApiContext.d.ts +2 -0
  72. package/lib/cjs/provider/GridApiContext.js +5 -0
  73. package/lib/cjs/provider/GridStoreContent.d.ts +10 -0
  74. package/lib/cjs/provider/GridStoreContent.js +140 -0
  75. package/lib/cjs/types/classes/index.d.ts +1 -0
  76. package/lib/cjs/types/classes/index.js +1 -0
  77. package/lib/cjs/types/classes/styled.d.ts +55 -0
  78. package/lib/cjs/types/classes/styled.js +56 -0
  79. package/lib/cjs/types/dataGridCoreEnum.d.ts +6 -0
  80. package/lib/cjs/types/dataGridCoreEnum.js +7 -0
  81. package/lib/cjs/types/dataGridCoreProps.d.ts +71 -0
  82. package/lib/cjs/types/dataGridCoreProps.js +1 -0
  83. package/lib/cjs/types/dataGridProps.d.ts +148 -0
  84. package/lib/cjs/types/dataGridProps.js +54 -0
  85. package/lib/esm/App.d.ts +10 -0
  86. package/lib/esm/App.js +142 -0
  87. package/lib/esm/DataGrid.d.ts +3 -0
  88. package/lib/esm/DataGrid.js +37 -0
  89. package/lib/esm/buildPackage.json +59 -0
  90. package/lib/esm/common/constants/defaultProps.d.ts +4 -0
  91. package/lib/esm/common/constants/defaultProps.js +4 -0
  92. package/lib/esm/common/constants/index.d.ts +1 -0
  93. package/lib/esm/common/constants/index.js +1 -0
  94. package/lib/esm/common/constants/path.d.ts +31 -0
  95. package/lib/esm/common/constants/path.js +45 -0
  96. package/lib/esm/common/constants/utils.d.ts +0 -0
  97. package/lib/esm/common/constants/utils.js +1 -0
  98. package/lib/esm/common/foundation/index.d.ts +4 -0
  99. package/lib/esm/common/foundation/index.js +4 -0
  100. package/lib/esm/common/foundation/scale/color/color.d.ts +44 -0
  101. package/lib/esm/common/foundation/scale/color/color.js +46 -0
  102. package/lib/esm/common/foundation/scale/color/index.d.ts +1 -0
  103. package/lib/esm/common/foundation/scale/color/index.js +1 -0
  104. package/lib/esm/common/foundation/scale/index.d.ts +2 -0
  105. package/lib/esm/common/foundation/scale/index.js +2 -0
  106. package/lib/esm/common/foundation/scale/layout/breakpoints.d.ts +4 -0
  107. package/lib/esm/common/foundation/scale/layout/breakpoints.js +6 -0
  108. package/lib/esm/common/foundation/scale/layout/index.d.ts +1 -0
  109. package/lib/esm/common/foundation/scale/layout/index.js +1 -0
  110. package/lib/esm/common/foundation/scale/layout/size.d.ts +6 -0
  111. package/lib/esm/common/foundation/scale/layout/size.js +7 -0
  112. package/lib/esm/common/styled/assets/components/index.d.ts +1 -0
  113. package/lib/esm/common/styled/assets/components/index.js +1 -0
  114. package/lib/esm/common/styled/assets/components/loading/Loading.d.ts +2 -0
  115. package/lib/esm/common/styled/assets/components/loading/Loading.js +2 -0
  116. package/lib/esm/common/styled/assets/index.d.ts +1 -0
  117. package/lib/esm/common/styled/assets/index.js +1 -0
  118. package/lib/esm/common/styled/index.d.ts +44 -0
  119. package/lib/esm/common/styled/index.js +57 -0
  120. package/lib/esm/components/GridBasicRows.d.ts +6 -0
  121. package/lib/esm/components/GridBasicRows.js +88 -0
  122. package/lib/esm/components/NoraDataGrid.d.ts +12 -0
  123. package/lib/esm/components/NoraDataGrid.js +50 -0
  124. package/lib/esm/components/TwoDimensionalVirtualizedList.d.ts +5 -0
  125. package/lib/esm/components/TwoDimensionalVirtualizedList.js +538 -0
  126. package/lib/esm/components/cell/CellMode.d.ts +10 -0
  127. package/lib/esm/components/cell/CellMode.js +33 -0
  128. package/lib/esm/components/header/VirtualHorizontalHeader.d.ts +5 -0
  129. package/lib/esm/components/header/VirtualHorizontalHeader.js +13 -0
  130. package/lib/esm/components/ime/IMEComponent.d.ts +5 -0
  131. package/lib/esm/components/ime/IMEComponent.js +149 -0
  132. package/lib/esm/components/virtualized/_components/VirtualHeader.d.ts +4 -0
  133. package/lib/esm/components/virtualized/_components/VirtualHeader.js +25 -0
  134. package/lib/esm/components/virtualized/_constants/virtualHeaderConstants.d.ts +9 -0
  135. package/lib/esm/components/virtualized/_constants/virtualHeaderConstants.js +1 -0
  136. package/lib/esm/components/virtualized/_styled/index.d.ts +34 -0
  137. package/lib/esm/components/virtualized/_styled/index.js +108 -0
  138. package/lib/esm/hooks/external/usePublicTest.d.ts +3 -0
  139. package/lib/esm/hooks/external/usePublicTest.js +20 -0
  140. package/lib/esm/hooks/internal/useCellRange.d.ts +8 -0
  141. package/lib/esm/hooks/internal/useCellRange.js +275 -0
  142. package/lib/esm/hooks/internal/useInternalPrivateApi.d.ts +3 -0
  143. package/lib/esm/hooks/internal/useInternalPrivateApi.js +127 -0
  144. package/lib/esm/hooks/useGridApiContext.d.ts +4 -0
  145. package/lib/esm/hooks/useGridApiContext.js +10 -0
  146. package/lib/esm/hooks/useGridApiMethod.d.ts +8 -0
  147. package/lib/esm/hooks/useGridApiMethod.js +18 -0
  148. package/lib/esm/hooks/useGridInitialization.d.ts +3 -0
  149. package/lib/esm/hooks/useGridInitialization.js +62 -0
  150. package/lib/esm/index.d.ts +1 -0
  151. package/lib/esm/index.js +1 -0
  152. package/lib/esm/main.d.ts +0 -0
  153. package/lib/esm/main.js +9 -0
  154. package/lib/esm/provider/GridApiContext.d.ts +2 -0
  155. package/lib/esm/provider/GridApiContext.js +5 -0
  156. package/lib/esm/provider/GridStoreContent.d.ts +10 -0
  157. package/lib/esm/provider/GridStoreContent.js +140 -0
  158. package/lib/esm/types/classes/index.d.ts +1 -0
  159. package/lib/esm/types/classes/index.js +1 -0
  160. package/lib/esm/types/classes/styled.d.ts +55 -0
  161. package/lib/esm/types/classes/styled.js +56 -0
  162. package/lib/esm/types/dataGridCoreEnum.d.ts +6 -0
  163. package/lib/esm/types/dataGridCoreEnum.js +7 -0
  164. package/lib/esm/types/dataGridCoreProps.d.ts +71 -0
  165. package/lib/esm/types/dataGridCoreProps.js +1 -0
  166. package/lib/esm/types/dataGridProps.d.ts +148 -0
  167. package/lib/esm/types/dataGridProps.js +54 -0
  168. package/package.json +59 -0
@@ -0,0 +1,148 @@
1
+ import { EditStatus } from "./dataGridCoreEnum";
2
+ import { CellRangeDef, CellRangeTempDef, DataGridColumns, DataGridDataSource, DataGridPrivateDataSourceModel, DeepOmitStartsWith } from "./dataGridCoreProps";
3
+ export default DataGridBasicProps;
4
+ /**
5
+ * DataGrid를 구성하는 Props 입니다.
6
+ * 데이터 그리드에서 사용되는 모든 속성 및 구성 요소를 관리합니다
7
+ * @version 0.0.1
8
+ * @public
9
+ * @namespace NoraDataGrid.DataGridBasicProps
10
+ */
11
+ export type DataGridBasicProps = DeepOmitStartsWith<Pick<DataGridBasicPropsModel, "columns" | "dataSource">, "__"> & Partial<DataGridOptionPropsModel>;
12
+ export type DataGridBasicPropsModelDef = DataGridBasicPropsModel;
13
+ /**
14
+ * DataGrid를 구성하는 기본 소모품 구조 입니다.
15
+ * 데이터 그리드에서 사용되는 기본적인 속성을 관리합니다
16
+ * @private
17
+ * @namespace NoraDataGrid.DataGridBasicPropsModel
18
+ */
19
+ export interface DataGridBasicPropsModel {
20
+ columns: DataGridColumns;
21
+ dataSource: DataGridDataSource;
22
+ }
23
+ /**
24
+ * DataGrid를 구성하는 부가적인 소모품 구조 입니다.
25
+ * 데이터 그리드에서 사용되는 부가적인 속성을 관리합니다.
26
+ * @private
27
+ * @namespace NoraDataGrid.DataGridOptionPropsModel
28
+ */
29
+ export interface DataGridOptionPropsModel {
30
+ gridRef: React.MutableRefObject<GirdApiCommon<DataGridPublicApi> | null> | null;
31
+ /**
32
+ * 포커스된 셀 정보를 담고 있습니다.
33
+ * [ariaRowIndex, ariaColIndex]
34
+ */
35
+ cellFocus: Array<number | undefined>;
36
+ /**
37
+ * 현재 렌더링된 행의 범위 시작과 끝을 나타냅니다.
38
+ * [startRowIndex, endRowIndex]
39
+ */
40
+ renderedRowStartEnd: Array<number> | null;
41
+ /**
42
+ * 현재 포커스된 셀의 수정 상태를 담고 있습니다.
43
+ */
44
+ editStatus: EditStatus;
45
+ }
46
+ /**
47
+ * 데이터 그리드 내부에서 사용되는 속성을 관리합니다
48
+ * @private
49
+ * @namespace NoraDataGrid.DataGridBasicStorePropsModel
50
+ */
51
+ interface DataGridBasicStorePropsModel {
52
+ gridContainer: React.RefObject<HTMLDivElement>;
53
+ __cellRange: Array<CellRangeDef>;
54
+ __cellRangeTemp: CellRangeTempDef;
55
+ }
56
+ /**
57
+ * DataGrid를 구성하는 내부 메소드들을 관리 합니다.
58
+ * @private
59
+ * @namespace NoraDataGrid.DataGridPrivateApi
60
+ */
61
+ export type DataGridPrivateApi = DataGridPrivateApiModel;
62
+ export type DataGridPublicApi = DataGridPublicApiModel;
63
+ /**
64
+ * 데이터 그리드 개발을 위해 사용되는 내부 API를 관리 합니다.
65
+ * @private
66
+ * @namespace NoraDataGrid.DataGridPrivateApiModel
67
+ */
68
+ export interface DataGridPrivateApiModel {
69
+ setText: () => void;
70
+ /**
71
+ *
72
+ * @private
73
+ * @param ref
74
+ * @namespace NoraDataGrid.DataGridPrivateApiModel.setGridContainer
75
+ */
76
+ setGridContainer: (ref: React.RefObject<HTMLDivElement>) => void;
77
+ /**
78
+ * 스토어 공간을 생성합니다.
79
+ * @private
80
+ * @param props DataGridBasicProps
81
+ * @namespace NoraDataGrid.DataGridPrivateApiModel.setInitialStore
82
+ */
83
+ setInitialStore: (props: DataGridBasicProps) => any;
84
+ /**
85
+ * 데이터 그리드에서 사용되는 기본적인 속성을 설정합니다.
86
+ * @private
87
+ * @namespace NoraDataGrid.DataGridPrivateApiModel.setBasicProps
88
+ */
89
+ setBasicProps: (props: DataGridBasicProps) => DataGridStoreDef["state"];
90
+ /**
91
+ * 특정 행(row)의 위치로 스크롤을 이동합니다.
92
+ * @private
93
+ * @namespace NoraDataGrid.DataGridPrivateApiModel.scrollToRowIndex
94
+ */
95
+ scrollToRowIndex: (rowIndex: number) => void;
96
+ /**
97
+ * 선택할 셀의 범위를 추가하는동안 임시 공간에 추가합니다.
98
+ * @param cellRange
99
+ * @returns
100
+ */
101
+ addCellRangeTemp: (cellRange: CellRangeTempDef) => void;
102
+ /**
103
+ * 셀 포커스를 지정합니다.
104
+ * @returns
105
+ */
106
+ setCellFocus: (rowIndex: number | undefined, colIndex: number | undefined) => Promise<DataGridStoreDef["state"]["cellFocus"]>;
107
+ /**
108
+ * 셀 포커스를 가져옵니다.
109
+ */
110
+ getCellFocus: () => DataGridStoreDef["state"]["cellFocus"];
111
+ /**
112
+ * 셀 모드를 변경합니다.
113
+ */
114
+ setEditStatus: (editStatus: DataGridStoreDef["state"]["editStatus"]) => Promise<DataGridStoreDef["state"]["editStatus"]>;
115
+ cellByRowIndex: (rowIndex: number, fieldId: keyof DataGridPrivateDataSourceModel, value: string | number | undefined) => Promise<DataGridStoreDef["state"]["dataSource"]>;
116
+ }
117
+ export interface DataGridPublicApiModel {
118
+ setTextPublic: (data: any) => void;
119
+ /**
120
+ * 선택할 셀의 범위를 추가합니다.
121
+ * @param cellRange
122
+ * @returns
123
+ */
124
+ addCellRange: (cellRange: CellRangeDef) => void;
125
+ forceUpdate: () => void;
126
+ }
127
+ export type CommonApi = React.MutableRefObject<DataGridPrivateApi | null>;
128
+ export interface GirdApiCommon<DataGridPrivateApi> extends DataGridPrivateApiModel {
129
+ register: <V extends Visibility, T extends V extends "public" ? Partial<DataGridPublicApi> : Partial<DataGridPrivateApi>>(visibility: V, methods: T) => void;
130
+ getPublicApi: () => DataGridPublicApi;
131
+ store: DataGridStoreDef;
132
+ }
133
+ export declare class Store<T> {
134
+ private state;
135
+ private listeners;
136
+ constructor(initialState: T);
137
+ getState(): T;
138
+ setState<K extends keyof T>(path: K | [K, ...string[]], value: any, isUpdate?: boolean): void;
139
+ subscribe(path: string[], callback: Function): () => void;
140
+ private notify;
141
+ private updateNestedState;
142
+ private isPathAffected;
143
+ }
144
+ export interface DataGridStoreDef extends DataGridBasicStorePropsModel {
145
+ original: DataGridBasicPropsModel & DataGridOptionPropsModel;
146
+ state: DataGridBasicPropsModel & DataGridOptionPropsModel;
147
+ }
148
+ export type Visibility = "public" | "private";
@@ -0,0 +1,54 @@
1
+ export class Store {
2
+ constructor(initialState) {
3
+ Object.defineProperty(this, "state", {
4
+ enumerable: true,
5
+ configurable: true,
6
+ writable: true,
7
+ value: void 0
8
+ });
9
+ Object.defineProperty(this, "listeners", {
10
+ enumerable: true,
11
+ configurable: true,
12
+ writable: true,
13
+ value: []
14
+ });
15
+ this.state = initialState;
16
+ }
17
+ getState() {
18
+ return this.state;
19
+ }
20
+ setState(path, value, isUpdate) {
21
+ const fullPath = Array.isArray(path) ? path.map(String) : [String(path)];
22
+ this.state = this.updateNestedState(this.state, fullPath, value);
23
+ this.notify(fullPath, isUpdate);
24
+ }
25
+ subscribe(path, callback) {
26
+ const listener = { path, callback };
27
+ this.listeners.push(listener);
28
+ return () => {
29
+ this.listeners = this.listeners.filter((l) => l !== listener);
30
+ };
31
+ }
32
+ notify(changedPath, isUpdate) {
33
+ this.listeners.forEach(({ path, callback }) => {
34
+ if (this.isPathAffected(path, changedPath)) {
35
+ if (isUpdate === undefined || isUpdate)
36
+ callback();
37
+ }
38
+ });
39
+ }
40
+ updateNestedState(obj, path, value) {
41
+ if (path.length === 0)
42
+ return value;
43
+ const [key, ...rest] = path;
44
+ return Object.assign(Object.assign({}, obj), { [key]: rest.length > 0 ? this.updateNestedState(obj[key], rest, value) : value });
45
+ }
46
+ // 경로 비교 로직 개선
47
+ isPathAffected(listenerPath, changedPath) {
48
+ // 전체 경로가 정확히 일치하는 경우에만 true 반환
49
+ if (listenerPath.length !== changedPath.length) {
50
+ return false;
51
+ }
52
+ return listenerPath.every((segment, index) => segment === changedPath[index]);
53
+ }
54
+ }
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@noraent/nora-datagrid",
3
+ "version": "0.0.1",
4
+ "module": "./lib/esm/index.js",
5
+ "main": "./lib/cjs/index.js",
6
+ "private": false,
7
+ "files": [
8
+ "lib/"
9
+ ],
10
+ "type": "module",
11
+ "scripts": {
12
+ "start": "vite --mode on-local",
13
+ "build:local": "tsc -b && vite build --mode on-local",
14
+ "build:dev": "tsc -b && vite build --mode dev",
15
+ "build:production": "tsc -b && vite build --mode production",
16
+ "clean": "pnpm run clean:build && rimraf ./node_modules",
17
+ "clean:build": "rimraf ./dist",
18
+ "lint": "eslint .",
19
+ "preview": "vite preview",
20
+ "test": "jest",
21
+ "tsc-build": "tsc -p tsconfig-esm.json && tsc -p tsconfig-cjs.json",
22
+ "publish:npm": "rm -rf dist && mkdir dist && babel src -d dist --copy-files && npm run copy-package",
23
+ "copy-package": "cp package.json dist/buildPackage.json && cp package.json lib/cjs/buildPackage.json&& cp package.json lib/esm/buildPackage.json"
24
+ },
25
+ "dependencies": {
26
+ "@emotion/css": "^11.13.4",
27
+ "@emotion/react": "^11.13.3",
28
+ "@emotion/styled": "^11.13.0",
29
+ "@noraent/nora-datagrid": "file:",
30
+ "react": "^18.3.1",
31
+ "react-dom": "^18.3.1",
32
+ "rimraf": "^6.0.1",
33
+ "sass-embedded": "^1.79.4",
34
+ "vite-plugin-svgr": "^4.2.0"
35
+ },
36
+ "devDependencies": {
37
+ "@babel/cli": "^7.26.4",
38
+ "@babel/preset-react": "^7.26.3",
39
+ "@eslint/js": "^9.9.0",
40
+ "@types/lodash": "^4.17.16",
41
+ "@types/node": "^22.5.4",
42
+ "@types/react": "^18.3.3",
43
+ "@types/react-dom": "^18.3.0",
44
+ "@vitejs/plugin-react": "^4.3.1",
45
+ "eslint": "^9.9.0",
46
+ "eslint-plugin-react-hooks": "^5.1.0-rc.0",
47
+ "eslint-plugin-react-refresh": "^0.4.9",
48
+ "globals": "^15.9.0",
49
+ "typescript": "^5.5.3",
50
+ "typescript-eslint": "^8.0.1",
51
+ "vite": "^5.4.1"
52
+ },
53
+ "babel": {
54
+ "presets": [
55
+ "@babel/preset-env",
56
+ "@babel/preset-react"
57
+ ]
58
+ }
59
+ }