electron-vite-react-template 1.0.0

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 (62) hide show
  1. package/.claude/settings.local.json +15 -0
  2. package/.github/workflows/ci.yml +77 -0
  3. package/CONTRIBUTING.md +58 -0
  4. package/LICENSE +21 -0
  5. package/README.md +157 -0
  6. package/SECURITY.md +29 -0
  7. package/docs/PROJECT.md +249 -0
  8. package/electron.vite.config.ts +46 -0
  9. package/eslint.config.js +28 -0
  10. package/package.json +57 -0
  11. package/postcss.config.js +6 -0
  12. package/src/main/index.ts +110 -0
  13. package/src/preload/index.ts +33 -0
  14. package/src/renderer/env.d.ts +16 -0
  15. package/src/renderer/index.html +16 -0
  16. package/src/renderer/src/components/mode-toggle.tsx +31 -0
  17. package/src/renderer/src/components/theme-provider.tsx +140 -0
  18. package/src/renderer/src/components/ui/button.tsx +50 -0
  19. package/src/renderer/src/components/ui/dropdown-menu.tsx +188 -0
  20. package/src/renderer/src/components/use-theme.ts +12 -0
  21. package/src/renderer/src/hooks/use-sample.ts +7 -0
  22. package/src/renderer/src/i18n/index.ts +27 -0
  23. package/src/renderer/src/i18n/locales/en.json +8 -0
  24. package/src/renderer/src/i18n/locales/fr.json +8 -0
  25. package/src/renderer/src/index.css +59 -0
  26. package/src/renderer/src/lib/utils.ts +6 -0
  27. package/src/renderer/src/main.tsx +66 -0
  28. package/src/renderer/src/stores/app-store.ts +20 -0
  29. package/tailwind.config.js +53 -0
  30. package/template/.github/workflows/ci.yml +77 -0
  31. package/template/electron.vite.config.ts +46 -0
  32. package/template/eslint.config.js +28 -0
  33. package/template/package.json +31 -0
  34. package/template/postcss.config.js +6 -0
  35. package/template/src/main/index.ts +110 -0
  36. package/template/src/preload/index.ts +33 -0
  37. package/template/src/renderer/env.d.ts +16 -0
  38. package/template/src/renderer/index.html +16 -0
  39. package/template/src/renderer/src/components/mode-toggle.tsx +31 -0
  40. package/template/src/renderer/src/components/theme-provider.tsx +140 -0
  41. package/template/src/renderer/src/components/ui/button.tsx +50 -0
  42. package/template/src/renderer/src/components/ui/dropdown-menu.tsx +188 -0
  43. package/template/src/renderer/src/components/use-theme.ts +12 -0
  44. package/template/src/renderer/src/hooks/use-sample.ts +7 -0
  45. package/template/src/renderer/src/i18n/index.ts +27 -0
  46. package/template/src/renderer/src/i18n/locales/en.json +8 -0
  47. package/template/src/renderer/src/i18n/locales/fr.json +8 -0
  48. package/template/src/renderer/src/index.css +59 -0
  49. package/template/src/renderer/src/lib/utils.ts +6 -0
  50. package/template/src/renderer/src/main.tsx +66 -0
  51. package/template/src/renderer/src/stores/app-store.ts +20 -0
  52. package/template/tailwind.config.js +53 -0
  53. package/template/template-package.json +57 -0
  54. package/template/tsconfig.json +7 -0
  55. package/template/tsconfig.node.json +20 -0
  56. package/template/tsconfig.web.json +25 -0
  57. package/template/vitest.config.ts +17 -0
  58. package/tests/renderer/sample.test.ts +7 -0
  59. package/tsconfig.json +7 -0
  60. package/tsconfig.node.json +20 -0
  61. package/tsconfig.web.json +25 -0
  62. package/vitest.config.ts +17 -0
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "{{name}}",
3
+ "version": "1.0.0",
4
+ "description": "Electron + Vite + React template with TypeScript",
5
+ "main": "./out/main/index.js",
6
+ "type": "module",
7
+ "author": "Nesalia",
8
+ "license": "MIT",
9
+ "scripts": {
10
+ "dev": "electron-vite dev",
11
+ "build": "electron-vite build",
12
+ "preview": "electron-vite preview",
13
+ "lint": "eslint .",
14
+ "typecheck": "tsc --noEmit",
15
+ "test": "vitest run",
16
+ "test:ui": "vitest"
17
+ },
18
+ "dependencies": {
19
+ "@electron-toolkit/preload": "^3.0.1",
20
+ "@electron-toolkit/utils": "^3.0.0",
21
+ "@radix-ui/react-dropdown-menu": "^2.1.2",
22
+ "@radix-ui/react-slot": "^1.1.0",
23
+ "@tanstack/react-query": "^5.59.0",
24
+ "@tanstack/react-router": "^1.44.0",
25
+ "class-variance-authority": "^0.7.0",
26
+ "clsx": "^2.1.1",
27
+ "electron-log": "^5.2.4",
28
+ "i18next": "^23.15.1",
29
+ "lucide-react": "^0.447.0",
30
+ "react": "^18.3.1",
31
+ "react-dom": "^18.3.1",
32
+ "react-i18next": "^15.0.2",
33
+ "tailwind-merge": "^2.5.4",
34
+ "zustand": "^4.5.5"
35
+ },
36
+ "devDependencies": {
37
+ "@eslint/js": "^9.12.0",
38
+ "@types/node": "^22.7.4",
39
+ "@types/react": "^18.3.11",
40
+ "@types/react-dom": "^18.3.0",
41
+ "@vitejs/plugin-react": "^4.3.2",
42
+ "autoprefixer": "^10.4.20",
43
+ "electron": "^32.1.2",
44
+ "electron-vite": "^2.3.0",
45
+ "eslint": "^9.12.0",
46
+ "eslint-plugin-react-hooks": "^5.0.0",
47
+ "eslint-plugin-react-refresh": "^0.4.13",
48
+ "globals": "^15.10.0",
49
+ "jsdom": "^28.1.0",
50
+ "postcss": "^8.4.47",
51
+ "tailwindcss": "^3.4.13",
52
+ "typescript": "^5.6.2",
53
+ "typescript-eslint": "^8.8.0",
54
+ "vite": "^5.4.8",
55
+ "vitest": "^2.1.2"
56
+ }
57
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "files": [],
3
+ "references": [
4
+ { "path": "./tsconfig.node.json" },
5
+ { "path": "./tsconfig.web.json" }
6
+ ]
7
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "module": "ESNext",
5
+ "moduleResolution": "bundler",
6
+ "allowSyntheticDefaultImports": true,
7
+ "esModuleInterop": true,
8
+ "strict": true,
9
+ "skipLibCheck": true,
10
+ "noEmit": true,
11
+ "target": "ESNext",
12
+ "lib": ["ESNext"],
13
+ "types": ["node"]
14
+ },
15
+ "include": [
16
+ "electron.vite.config.ts",
17
+ "src/main/**/*.ts",
18
+ "src/preload/**/*.ts"
19
+ ]
20
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "module": "ESNext",
5
+ "moduleResolution": "bundler",
6
+ "allowSyntheticDefaultImports": true,
7
+ "esModuleInterop": true,
8
+ "strict": true,
9
+ "skipLibCheck": true,
10
+ "noEmit": true,
11
+ "target": "ESNext",
12
+ "lib": ["ESNext", "DOM", "DOM.Iterable"],
13
+ "jsx": "react-jsx",
14
+ "types": ["vite/client"],
15
+ "baseUrl": ".",
16
+ "paths": {
17
+ "@/*": ["src/renderer/src/*"]
18
+ }
19
+ },
20
+ "include": [
21
+ "src/renderer/src/**/*.ts",
22
+ "src/renderer/src/**/*.tsx",
23
+ "src/renderer/env.d.ts"
24
+ ]
25
+ }
@@ -0,0 +1,17 @@
1
+ import { defineConfig } from 'vitest/config'
2
+ import react from '@vitejs/plugin-react'
3
+ import { resolve } from 'path'
4
+
5
+ export default defineConfig({
6
+ plugins: [react()],
7
+ test: {
8
+ globals: true,
9
+ environment: 'jsdom',
10
+ include: ['tests/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}']
11
+ },
12
+ resolve: {
13
+ alias: {
14
+ '@': resolve(__dirname, 'src/renderer/src')
15
+ }
16
+ }
17
+ })
@@ -0,0 +1,7 @@
1
+ import { describe, it, expect } from 'vitest'
2
+
3
+ describe('sample test', () => {
4
+ it('should pass', () => {
5
+ expect(1 + 1).toBe(2)
6
+ })
7
+ })
package/tsconfig.json ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "files": [],
3
+ "references": [
4
+ { "path": "./tsconfig.node.json" },
5
+ { "path": "./tsconfig.web.json" }
6
+ ]
7
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "module": "ESNext",
5
+ "moduleResolution": "bundler",
6
+ "allowSyntheticDefaultImports": true,
7
+ "esModuleInterop": true,
8
+ "strict": true,
9
+ "skipLibCheck": true,
10
+ "noEmit": true,
11
+ "target": "ESNext",
12
+ "lib": ["ESNext"],
13
+ "types": ["node"]
14
+ },
15
+ "include": [
16
+ "electron.vite.config.ts",
17
+ "src/main/**/*.ts",
18
+ "src/preload/**/*.ts"
19
+ ]
20
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "module": "ESNext",
5
+ "moduleResolution": "bundler",
6
+ "allowSyntheticDefaultImports": true,
7
+ "esModuleInterop": true,
8
+ "strict": true,
9
+ "skipLibCheck": true,
10
+ "noEmit": true,
11
+ "target": "ESNext",
12
+ "lib": ["ESNext", "DOM", "DOM.Iterable"],
13
+ "jsx": "react-jsx",
14
+ "types": ["vite/client"],
15
+ "baseUrl": ".",
16
+ "paths": {
17
+ "@/*": ["src/renderer/src/*"]
18
+ }
19
+ },
20
+ "include": [
21
+ "src/renderer/src/**/*.ts",
22
+ "src/renderer/src/**/*.tsx",
23
+ "src/renderer/env.d.ts"
24
+ ]
25
+ }
@@ -0,0 +1,17 @@
1
+ import { defineConfig } from 'vitest/config'
2
+ import react from '@vitejs/plugin-react'
3
+ import { resolve } from 'path'
4
+
5
+ export default defineConfig({
6
+ plugins: [react()],
7
+ test: {
8
+ globals: true,
9
+ environment: 'jsdom',
10
+ include: ['tests/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}']
11
+ },
12
+ resolve: {
13
+ alias: {
14
+ '@': resolve(__dirname, 'src/renderer/src')
15
+ }
16
+ }
17
+ })