diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 645ff2b6d..0ebe60c66 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -23,6 +23,7 @@ "react-dom": "^18.0.0" }, "devDependencies": { + "@honkhonk/vite-plugin-svgr": "^1.1.0", "@tauri-apps/cli": "^1.0.0-rc.8", "@types/babel-core": "^6.25.7", "@types/byte-size": "^8.1.0", @@ -32,6 +33,7 @@ "@types/react-virtualized-auto-sizer": "^1.0.1", "@types/react-window": "^1.8.5", "@types/tailwindcss": "^3.0.10", + "@vitejs/plugin-react": "^1.3.1", "concurrently": "^7.1.0", "prettier": "^2.6.2", "sass": "^1.50.0", @@ -39,7 +41,6 @@ "vite": "^2.9.1", "vite-plugin-filter-replace": "^0.1.9", "vite-plugin-react-svg": "^0.2.0", - "vite-tsconfig-paths": "^3.4.1", - "@vitejs/plugin-react": "^1.3.1" + "vite-tsconfig-paths": "^3.4.1" } } diff --git a/apps/desktop/postcss.config.js b/apps/desktop/postcss.config.js new file mode 100644 index 000000000..ed7b3ffb4 --- /dev/null +++ b/apps/desktop/postcss.config.js @@ -0,0 +1 @@ +module.exports = require('@sd/ui/postcss'); diff --git a/apps/desktop/src/index.tsx b/apps/desktop/src/index.tsx index 534a5caf0..038229e39 100644 --- a/apps/desktop/src/index.tsx +++ b/apps/desktop/src/index.tsx @@ -3,7 +3,6 @@ import { createRoot } from 'react-dom/client'; // import Spacedrive interface import SpacedriveInterface, { Platform } from '@sd/interface'; -import '@sd/interface/dist/style.css'; // import types from Spacedrive core (TODO: re-export from client would be cleaner) import { ClientCommand, ClientQuery, CoreEvent } from '@sd/core'; @@ -13,6 +12,8 @@ import { BaseTransport } from '@sd/client'; import { dialog, invoke, os } from '@tauri-apps/api'; import { convertFileSrc } from '@tauri-apps/api/tauri'; +import '@sd/ui/style'; + // bind state to core via Tauri class Transport extends BaseTransport { async query(query: ClientQuery) { diff --git a/apps/desktop/tailwind.config.js b/apps/desktop/tailwind.config.js new file mode 100644 index 000000000..55ea44fdc --- /dev/null +++ b/apps/desktop/tailwind.config.js @@ -0,0 +1 @@ +module.exports = require('@sd/ui/tailwind'); diff --git a/apps/desktop/tsconfig.json b/apps/desktop/tsconfig.json index 466b0b288..ec26fb118 100644 --- a/apps/desktop/tsconfig.json +++ b/apps/desktop/tsconfig.json @@ -14,8 +14,12 @@ "isolatedModules": true, "noEmit": true, "jsx": "react", - "outDir": "dist" + "outDir": "dist", + "baseUrl": "./", + "paths": { + "@sd/interface": ["../../packages/interface/src/index.ts"], + "@sd/ui": ["../../packages/ui/src"] + } }, "include": ["src"], - "exclude": ["node_modules"] } diff --git a/apps/desktop/vite.config.ts b/apps/desktop/vite.config.ts index 6b2fb9fd9..7097dce5c 100644 --- a/apps/desktop/vite.config.ts +++ b/apps/desktop/vite.config.ts @@ -1,7 +1,12 @@ import { defineConfig } from 'vite'; -import tsconfigPaths from 'vite-tsconfig-paths'; import react from '@vitejs/plugin-react'; +import { name, version } from './package.json'; +import * as path from 'path'; +import svgr from '@honkhonk/vite-plugin-svgr'; +function resolvePackage(name: string) { + return path.resolve(require.resolve(`${name}/package.json`), '../src'); +} // https://vitejs.dev/config/ export default defineConfig({ server: { @@ -10,10 +15,22 @@ export default defineConfig({ plugins: [ react({ jsxRuntime: 'classic' - }) + }), + svgr() ], root: 'src', publicDir: '../../packages/interface/src/assets', + define: { + pkgJson: { name, version } + }, + optimizeDeps: { + include: ['@sd/interface', '@sd/ui', '@sd/client'] + }, + resolve: { + alias: { + '@sd/interface': resolvePackage('@sd/interface') + } + }, build: { outDir: '../dist', assetsDir: '.' diff --git a/apps/web/package.json b/apps/web/package.json index 9a79ac93f..7c771577d 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -8,26 +8,34 @@ "serve": "vite preview" }, "dependencies": { - "@sd/interface": "*", - "@sd/core": "*", "@sd/client": "*", - "@testing-library/jest-dom": "^5.16.4", - "@testing-library/react": "^13.1.1", - "@testing-library/user-event": "^13.5.0", - "@types/jest": "^27.4.1", - "@types/node": "^16.11.27", - "@types/react": "^18.0.5", - "@types/react-dom": "^18.0.1", + "@sd/core": "*", + "@sd/interface": "*", + "@sd/ui": "*", "react": "^18.0.0", - "react-dom": "^18.0.0", - "react-scripts": "5.0.1", - "typescript": "^4.6.3", - "web-vitals": "^2.1.4" + "react-dom": "^18.0.0" }, "devDependencies": { - "vite": "^2.9.1", + "typescript": "^4.6.3", + "@honkhonk/vite-plugin-svgr": "^1.1.0", + "@types/babel-core": "^6.25.7", + "@types/byte-size": "^8.1.0", + "@types/jest": "^27.4.1", + "@types/node": "^16.11.27", + "@types/react": "^18.0.0", + "@types/react-dom": "^18.0.0", + "@types/react-router-dom": "^5.3.3", + "@types/react-virtualized-auto-sizer": "^1.0.1", + "@types/react-window": "^1.8.5", + "@types/tailwindcss": "^3.0.10", "@vitejs/plugin-react": "^1.3.1", - "vite-plugin-react-svg": "^0.2.0" + "concurrently": "^7.1.0", + "prettier": "^2.6.2", + "sass": "^1.50.0", + "vite": "^2.9.1", + "vite-plugin-filter-replace": "^0.1.9", + "vite-plugin-react-svg": "^0.2.0", + "vite-tsconfig-paths": "^3.4.1" }, "eslintConfig": { "extends": [ diff --git a/apps/web/postcss.config.js b/apps/web/postcss.config.js new file mode 100644 index 000000000..ed7b3ffb4 --- /dev/null +++ b/apps/web/postcss.config.js @@ -0,0 +1 @@ +module.exports = require('@sd/ui/postcss'); diff --git a/apps/web/src/App.tsx b/apps/web/src/App.tsx index 7646852a2..442bd9d5d 100644 --- a/apps/web/src/App.tsx +++ b/apps/web/src/App.tsx @@ -1,7 +1,7 @@ import React from 'react'; import SpacedriveInterface from '@sd/interface'; -import '@sd/interface/dist/style.css'; +import '@sd/ui/style'; import { ClientCommand, ClientQuery } from '@sd/core'; import { BaseTransport } from '@sd/client'; diff --git a/apps/web/index.html b/apps/web/src/index.html similarity index 72% rename from apps/web/index.html rename to apps/web/src/index.html index f238ba8ae..6d7fb0d8a 100644 --- a/apps/web/index.html +++ b/apps/web/src/index.html @@ -6,6 +6,6 @@
- +