apps/skillulator/data/tree-old.ts
apps/skillulator/src/data/tree-old.ts
apps/skillulator/data/tree-old.ts
apps/skillulator/src/data/tree-old.ts
apps/skillulator/data/tree.ts
apps/skillulator/src/data/tree.ts
apps/skillulator/data/tree.ts
apps/skillulator/src/data/tree.ts
+38
-39
apps/skillulator/package.json
+38
-39
apps/skillulator/package.json
···
1
1
{
2
-
"name": "flyff-skill-calc",
3
-
"private": true,
4
-
"version": "0.0.0",
5
-
"type": "module",
6
-
"scripts": {
7
-
"dev": "vite",
8
-
"build": "vite build",
9
-
"preview": "vite preview",
10
-
"clean": "rm -rf dist/"
11
-
},
12
-
"dependencies": {
13
-
"@tanstack/react-router": "^1.81.0",
14
-
"clsx": "^2.1.1",
15
-
"i18next": "^23.16.5",
16
-
"i18next-browser-languagedetector": "^8.0.0",
17
-
"i18next-http-backend": "^2.6.2",
18
-
"immer": "^10.1.1",
19
-
"lz-string": "^1.5.0",
20
-
"react": "^18.3.1",
21
-
"react-dom": "^18.3.1",
22
-
"react-helmet": "^6.1.0",
23
-
"react-i18next": "^15.1.1",
24
-
"react-router": "^7.0.0-pre.0",
25
-
"zustand": "^5.0.1"
26
-
},
27
-
"devDependencies": {
28
-
"@tailwindcss/forms": "^0.5.9",
29
-
"@tanstack/router-devtools": "^1.81.0",
30
-
"@tanstack/router-plugin": "^1.79.0",
31
-
"@types/node": "^22.9.0",
32
-
"@types/react": "^18.3.12",
33
-
"@types/react-dom": "^18.3.1",
34
-
"@vitejs/plugin-react": "^4.3.3",
35
-
"autoprefixer": "^10.4.20",
36
-
"postcss": "^8.4.47",
37
-
"tailwindcss": "^3.4.14",
38
-
"typescript": "^5.6.3",
39
-
"vite": "^5.4.10"
40
-
}
2
+
"name": "skillulator",
3
+
"private": true,
4
+
"version": "0.0.0",
5
+
"type": "module",
6
+
"scripts": {
7
+
"dev": "vite",
8
+
"build": "vite build",
9
+
"preview": "vite preview",
10
+
"clean": "rm -rf dist/"
11
+
},
12
+
"dependencies": {
13
+
"@tanstack/react-router": "^1.81.0",
14
+
"clsx": "^2.1.1",
15
+
"i18next": "^23.16.5",
16
+
"i18next-browser-languagedetector": "^8.0.0",
17
+
"i18next-http-backend": "^2.6.2",
18
+
"immer": "^10.1.1",
19
+
"lz-string": "^1.5.0",
20
+
"react": "^18.3.1",
21
+
"react-dom": "^18.3.1",
22
+
"react-helmet": "^6.1.0",
23
+
"react-i18next": "^15.1.1",
24
+
"zustand": "^5.0.1"
25
+
},
26
+
"devDependencies": {
27
+
"@tailwindcss/forms": "^0.5.9",
28
+
"@tanstack/router-devtools": "^1.81.0",
29
+
"@tanstack/router-plugin": "^1.79.0",
30
+
"@types/node": "^22.9.0",
31
+
"@types/react": "^18.3.12",
32
+
"@types/react-dom": "^18.3.1",
33
+
"@vitejs/plugin-react": "^4.3.3",
34
+
"autoprefixer": "^10.4.20",
35
+
"postcss": "^8.4.47",
36
+
"tailwindcss": "^3.4.14",
37
+
"typescript": "^5.6.3",
38
+
"vite": "^5.4.10"
39
+
}
41
40
}
+1
-1
apps/skillulator/src/i18n.ts
+1
-1
apps/skillulator/src/i18n.ts
+2
-2
apps/skillulator/src/routes/__root.tsx
+2
-2
apps/skillulator/src/routes/__root.tsx
···
1
1
import { createRootRoute, Outlet } from "@tanstack/react-router";
2
-
import { Navbar } from "../components/Navbar";
3
-
import { Footer } from "../components/Footer";
2
+
import { Navbar } from "@/components/Navbar";
3
+
import { Footer } from "@/components/Footer";
4
4
5
5
export const Route = createRootRoute({
6
6
component: () => (
+3
-3
apps/skillulator/src/routes/c/$class/components/Skill.tsx
+3
-3
apps/skillulator/src/routes/c/$class/components/Skill.tsx
···
1
-
import type { Skill as SkillType } from "../../../../types";
2
-
import { languages } from "../../../../utils/constants";
3
-
import { getLanguageForSkill } from "../../../../utils/language";
1
+
import type { Skill as SkillType } from "@/types";
2
+
import { languages } from "@/utils/constants";
3
+
import { getLanguageForSkill } from "@/utils/language";
4
4
import {
5
5
DecreaseSkillPointButton,
6
6
IncreaseSkillToMaxButton,
+2
-2
apps/skillulator/src/routes/c/$class/route.tsx
+2
-2
apps/skillulator/src/routes/c/$class/route.tsx
···
15
15
decodeTree,
16
16
encodeTree,
17
17
getJobByName,
18
-
} from "../../../utils/skill-tree-helpers";
19
-
import { useTreeStore } from "../../../zustand/treeStore";
18
+
} from "@/utils/skill-tree-helpers";
19
+
import { useTreeStore } from "@/zustand/treeStore";
20
20
import { t } from "i18next";
21
21
22
22
export const Route = createFileRoute("/c/$class")({
+1
-1
apps/skillulator/src/routes/index/route.lazy.tsx
+1
-1
apps/skillulator/src/routes/index/route.lazy.tsx
···
1
1
import { Suspense } from "react";
2
2
import { useTranslation } from "react-i18next";
3
-
import { JOBS } from "../../utils/constants";
3
+
import { JOBS } from "@/utils/constants";
4
4
import { createLazyFileRoute, Link } from "@tanstack/react-router";
5
5
import { LinkCard } from "./components/LinkCard";
6
6
+1
-1
apps/skillulator/src/zustand/treeStore.ts
+1
-1
apps/skillulator/src/zustand/treeStore.ts
+24
-20
apps/skillulator/tsconfig.json
+24
-20
apps/skillulator/tsconfig.json
···
1
1
{
2
-
"compilerOptions": {
3
-
"target": "ESNext",
4
-
"useDefineForClassFields": true,
5
-
"lib": ["DOM", "DOM.Iterable", "ESNext"],
6
-
"allowJs": false,
7
-
"skipLibCheck": true,
8
-
"esModuleInterop": false,
9
-
"allowSyntheticDefaultImports": true,
10
-
"noImplicitAny": false,
11
-
"strict": true,
12
-
"forceConsistentCasingInFileNames": true,
13
-
"module": "ESNext",
14
-
"moduleResolution": "Node",
15
-
"resolveJsonModule": true,
16
-
"isolatedModules": true,
17
-
"noEmit": true,
18
-
"jsx": "react-jsx"
19
-
},
20
-
"include": ["src", "data"],
21
-
"references": [{ "path": "./tsconfig.node.json" }]
2
+
"compilerOptions": {
3
+
"target": "ESNext",
4
+
"useDefineForClassFields": true,
5
+
"lib": ["DOM", "DOM.Iterable", "ESNext"],
6
+
"allowJs": false,
7
+
"skipLibCheck": true,
8
+
"esModuleInterop": false,
9
+
"allowSyntheticDefaultImports": true,
10
+
"noImplicitAny": false,
11
+
"strict": true,
12
+
"forceConsistentCasingInFileNames": true,
13
+
"module": "ESNext",
14
+
"moduleResolution": "Node",
15
+
"resolveJsonModule": true,
16
+
"isolatedModules": true,
17
+
"noEmit": true,
18
+
"jsx": "react-jsx",
19
+
"baseUrl": ".",
20
+
"paths": {
21
+
"@/*": ["./src/*"]
22
+
}
23
+
},
24
+
"include": ["src", "src/data"],
25
+
"references": [{ "path": "./tsconfig.node.json" }]
22
26
}
-32
pnpm-lock.yaml
-32
pnpm-lock.yaml
···
69
69
react-i18next:
70
70
specifier: ^15.1.1
71
71
version: 15.7.4(i18next@23.16.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)
72
-
react-router:
73
-
specifier: ^7.0.0-pre.0
74
-
version: 7.9.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
75
72
zustand:
76
73
specifier: ^5.0.1
77
74
version: 5.0.8(@types/react@18.3.27)(immer@10.2.0)(react@18.3.1)(use-sync-external-store@1.6.0(react@18.3.1))
···
918
915
cookie-es@2.0.0:
919
916
resolution: {integrity: sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg==}
920
917
921
-
cookie@1.1.1:
922
-
resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==}
923
-
engines: {node: '>=18'}
924
-
925
918
cross-fetch@4.0.0:
926
919
resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==}
927
920
···
1279
1272
resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==}
1280
1273
engines: {node: '>=0.10.0'}
1281
1274
1282
-
react-router@7.9.6:
1283
-
resolution: {integrity: sha512-Y1tUp8clYRXpfPITyuifmSoE2vncSME18uVLgaqyxh9H35JWpIfzHo+9y3Fzh5odk/jxPW29IgLgzcdwxGqyNA==}
1284
-
engines: {node: '>=20.0.0'}
1285
-
peerDependencies:
1286
-
react: '>=18'
1287
-
react-dom: '>=18'
1288
-
peerDependenciesMeta:
1289
-
react-dom:
1290
-
optional: true
1291
-
1292
1275
react-side-effect@2.1.2:
1293
1276
resolution: {integrity: sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==}
1294
1277
peerDependencies:
···
1355
1338
seroval@1.4.0:
1356
1339
resolution: {integrity: sha512-BdrNXdzlofomLTiRnwJTSEAaGKyHHZkbMXIywOh7zlzp4uZnXErEwl9XZ+N1hJSNpeTtNxWvVwN0wUzAIQ4Hpg==}
1357
1340
engines: {node: '>=10'}
1358
-
1359
-
set-cookie-parser@2.7.2:
1360
-
resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==}
1361
1341
1362
1342
solid-js@1.9.10:
1363
1343
resolution: {integrity: sha512-Coz956cos/EPDlhs6+jsdTxKuJDPT7B5SVIWgABwROyxjY7Xbr8wkzD68Et+NxnV7DLJ3nJdAC2r9InuV/4Jew==}
···
2347
2327
2348
2328
cookie-es@2.0.0: {}
2349
2329
2350
-
cookie@1.1.1: {}
2351
-
2352
2330
cross-fetch@4.0.0:
2353
2331
dependencies:
2354
2332
node-fetch: 2.7.0
···
2668
2646
2669
2647
react-refresh@0.17.0: {}
2670
2648
2671
-
react-router@7.9.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
2672
-
dependencies:
2673
-
cookie: 1.1.1
2674
-
react: 18.3.1
2675
-
set-cookie-parser: 2.7.2
2676
-
optionalDependencies:
2677
-
react-dom: 18.3.1(react@18.3.1)
2678
-
2679
2649
react-side-effect@2.1.2(react@18.3.1):
2680
2650
dependencies:
2681
2651
react: 18.3.1
···
2759
2729
seroval@1.3.2: {}
2760
2730
2761
2731
seroval@1.4.0: {}
2762
-
2763
-
set-cookie-parser@2.7.2: {}
2764
2732
2765
2733
solid-js@1.9.10:
2766
2734
dependencies: