Refactor: ES module architecture, tauri-plugin-store, unified design

Major changes:
- ES module system: main.js as central hub, shared modules
- tauri-plugin-store for persistent storage (dialog, fs plugins added)
- tauri-plugin-dialog for folder selection
- tauri-plugin-fs for real file system scanning
- Removed MOCK_FILES/FILE_TREE - real file scanner implemented
- All pages use unified page-header + page-content layout
- Custom titlebar with window controls
- Onboarding: 4-step flow with folder selection (Downloads default)
- CSS: unified design system, .hidden utility class added
- SVG icons throughout (no emoji)

Note: onboarding.js downloadDir() has runtime issue - needs fix
This commit is contained in:
2026-06-01 04:41:19 +09:00
parent 1ef6cb1379
commit 13328e6a8b
45 changed files with 2137 additions and 7430 deletions

48
package-lock.json generated
View File

@@ -8,8 +8,13 @@
"name": "chakmate",
"version": "1.0.0",
"dependencies": {
"@fontsource/noto-color-emoji": "^5.2.12",
"@fontsource/noto-sans-kr": "^5.2.9",
"@fontsource/outfit": "^5.2.8"
"@fontsource/outfit": "^5.2.8",
"@tauri-apps/api": "^2.11.0",
"@tauri-apps/plugin-dialog": "^2.7.1",
"@tauri-apps/plugin-fs": "^2.5.1",
"@tauri-apps/plugin-store": "^2.4.3"
},
"devDependencies": {
"@tauri-apps/cli": "^2.0.0",
@@ -399,6 +404,14 @@
"node": ">=12"
}
},
"node_modules/@fontsource/noto-color-emoji": {
"version": "5.2.12",
"resolved": "https://registry.npmjs.org/@fontsource/noto-color-emoji/-/noto-color-emoji-5.2.12.tgz",
"integrity": "sha512-UVOh4qxD/y42mcB4XvEdpV1WE01zn7O4+4tAWwzp5QAd4JY5jWPHu3/3T1kQoD04oYbQ5cJ9SI12IfcCKaS8aw==",
"funding": {
"url": "https://github.com/sponsors/ayuhito"
}
},
"node_modules/@fontsource/noto-sans-kr": {
"version": "5.2.9",
"resolved": "https://registry.npmjs.org/@fontsource/noto-sans-kr/-/noto-sans-kr-5.2.9.tgz",
@@ -810,6 +823,15 @@
"win32"
]
},
"node_modules/@tauri-apps/api": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.11.0.tgz",
"integrity": "sha512-7CinYODhky9lmO23xHnUFv0Xt43fbtWMyxZcLcRBlFkcgXKuEirBvHpmtJ89YMhyeGcq20Wuc47Fa4XjyniywA==",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/tauri"
}
},
"node_modules/@tauri-apps/cli": {
"version": "2.11.2",
"resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.11.2.tgz",
@@ -1015,6 +1037,30 @@
"node": ">= 10"
}
},
"node_modules/@tauri-apps/plugin-dialog": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/@tauri-apps/plugin-dialog/-/plugin-dialog-2.7.1.tgz",
"integrity": "sha512-OK1UBXYt+ojcmxMktzzuyonYIFta8CmAASpX+CA+DTGK24KlHjhYI6x2iOJ/TjZF4N7/ACK1oFmEOjIY9IhzOQ==",
"dependencies": {
"@tauri-apps/api": "^2.11.0"
}
},
"node_modules/@tauri-apps/plugin-fs": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/@tauri-apps/plugin-fs/-/plugin-fs-2.5.1.tgz",
"integrity": "sha512-9Lz+Jopp6QyeEWhlpkMx4R/+P9HgR+AVAI4vOZhlT8Xaymtz8iVI/Ov984/XTqgJz/5gz5NretqPB/XEMS3NhQ==",
"dependencies": {
"@tauri-apps/api": "^2.11.0"
}
},
"node_modules/@tauri-apps/plugin-store": {
"version": "2.4.3",
"resolved": "https://registry.npmjs.org/@tauri-apps/plugin-store/-/plugin-store-2.4.3.tgz",
"integrity": "sha512-9LWPj9yMphRi9czEtUv87XHbl1b6xgd9EXpPrUnq6nG7+nbtoF84d4Kwz9xhAv/Hf30sr58pq7EOlyI936y8qw==",
"dependencies": {
"@tauri-apps/api": "^2.11.0"
}
},
"node_modules/@types/estree": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",