diff --git a/.gitignore b/.gitignore index d8e8bbc5..3864ca7c 100644 --- a/.gitignore +++ b/.gitignore @@ -29,7 +29,7 @@ dist/ # Debug -*.log* +*.log.* # Misc .DS_Store diff --git a/apps/desktop2/.gitignore b/apps/desktop2/.gitignore deleted file mode 100644 index 3f7bf98d..00000000 --- a/apps/desktop2/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -node_modules - -/.cache -/build -/public/build -.env diff --git a/apps/desktop2/README.md b/apps/desktop2/README.md deleted file mode 100644 index e5e8d9b2..00000000 --- a/apps/desktop2/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# templates/spa - -This template leverages [Remix SPA Mode](https://remix.run/docs/en/main/future/spa-mode) to build your app as a Single-Page Application using [Client Data](https://remix.run/docs/en/main/guides/client-data) for all of you data loads and mutations. - -⚠️ This is built on top of the Remix Vite template. Remix support for Vite is currently unstable and not recommended for production. - -📖 See the [Remix Vite docs][remix-vite-docs] for details on supported features. - -## Setup - -```shellscript -npx create-remix@latest --template remix-run/remix/templates/spa -``` - -## Development - -You can develop your SPA app just like you would a normal Remix app, via: - -```shellscript -npm run dev -``` - -## Production - -When you are ready yo build a production version of your app, `npm run build` will generate your assets and an `index.html` for the SPA. - -```shellscript -npm run build -``` - -You can serve this from any server of your choosing, for a simple example, you could use [http-server](https://www.npmjs.com/package/http-server): - -```shellscript -npx http-server build/client/ -``` - -[remix-vite-docs]: https://remix.run/docs/en/main/future/vite diff --git a/apps/desktop2/app/entry.client.tsx b/apps/desktop2/app/entry.client.tsx deleted file mode 100644 index 999c0a12..00000000 --- a/apps/desktop2/app/entry.client.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { RemixBrowser } from "@remix-run/react"; -import { startTransition, StrictMode } from "react"; -import { hydrateRoot } from "react-dom/client"; - -startTransition(() => { - hydrateRoot( - document, - - - - ); -}); diff --git a/apps/desktop2/app/entry.server.tsx b/apps/desktop2/app/entry.server.tsx deleted file mode 100644 index bd7fa1e7..00000000 --- a/apps/desktop2/app/entry.server.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import type { EntryContext } from "@remix-run/node"; -import { RemixServer } from "@remix-run/react"; -import { renderToString } from "react-dom/server"; - -export default function handleRequest( - request: Request, - responseStatusCode: number, - responseHeaders: Headers, - remixContext: EntryContext -) { - let html = renderToString( - - ); - if (html.startsWith(" - - - - - - - - - - - - - ); -} - -export function HydrateFallback() { - return ( - - - - - - - - -

Loading...

- - - - ); -} diff --git a/apps/desktop2/app/routes/_index.tsx b/apps/desktop2/app/routes/_index.tsx deleted file mode 100644 index 04198afc..00000000 --- a/apps/desktop2/app/routes/_index.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import type { MetaFunction } from "@remix-run/node"; - -export const meta: MetaFunction = () => { - return [ - { title: "New Remix SPA" }, - { name: "description", content: "Welcome to Remix (SPA Mode)!" }, - ]; -}; - -export default function Index() { - return ( -
-

Welcome to Remix (SPA Mode)

- -
- ); -} diff --git a/apps/desktop2/env.d.ts b/apps/desktop2/env.d.ts deleted file mode 100644 index 78ed2345..00000000 --- a/apps/desktop2/env.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -/// -/// diff --git a/apps/desktop2/package.json b/apps/desktop2/package.json deleted file mode 100644 index a156e1e7..00000000 --- a/apps/desktop2/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "@lume/desktop2", - "private": true, - "sideEffects": false, - "type": "module", - "scripts": { - "build": "remix vite:build", - "dev": "remix vite:dev", - "start": "http-server build/client/", - "typecheck": "tsc" - }, - "dependencies": { - "@remix-run/node": "^2.6.0", - "@remix-run/react": "^2.6.0", - "http-server": "^14.1.1", - "react": "^18.2.0", - "react-dom": "^18.2.0" - }, - "devDependencies": { - "@remix-run/dev": "^2.6.0", - "@types/react": "^18.2.20", - "@types/react-dom": "^18.2.7", - "typescript": "^5.1.6", - "vite": "^5.0.0", - "vite-tsconfig-paths": "^4.2.1" - }, - "engines": { - "node": ">=18.0.0" - } -} diff --git a/apps/desktop2/public/favicon.ico b/apps/desktop2/public/favicon.ico deleted file mode 100644 index 8830cf68..00000000 Binary files a/apps/desktop2/public/favicon.ico and /dev/null differ diff --git a/apps/desktop2/tsconfig.json b/apps/desktop2/tsconfig.json deleted file mode 100644 index 58c0a473..00000000 --- a/apps/desktop2/tsconfig.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "include": ["env.d.ts", "**/*.ts", "**/*.tsx"], - "compilerOptions": { - "lib": ["DOM", "DOM.Iterable", "ES2022"], - "isolatedModules": true, - "esModuleInterop": true, - "jsx": "react-jsx", - "module": "ESNext", - "moduleResolution": "Bundler", - "resolveJsonModule": true, - "target": "ES2022", - "strict": true, - "allowJs": true, - "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, - "baseUrl": ".", - "paths": { - "~/*": ["./app/*"] - }, - - // Remix takes care of building everything in `remix build`. - "noEmit": true - } -} diff --git a/apps/desktop2/vite.config.ts b/apps/desktop2/vite.config.ts deleted file mode 100644 index 028e6f5f..00000000 --- a/apps/desktop2/vite.config.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { unstable_vitePlugin as remix } from "@remix-run/dev"; -import { defineConfig } from "vite"; -import tsconfigPaths from "vite-tsconfig-paths"; - -export default defineConfig({ - plugins: [ - remix({ unstable_ssr: false, buildDirectory: "../../dist" }), - tsconfigPaths(), - ], -}); diff --git a/packages/tailwindcss/package.json b/packages/tailwindcss/package.json index 12460629..ad99a49a 100644 --- a/packages/tailwindcss/package.json +++ b/packages/tailwindcss/package.json @@ -16,6 +16,6 @@ "tailwindcss": "^3.4.1" }, "dependencies": { - "@evilmartians/harmony": "^1.2.0" + "tailwindcss-radix-colors": "^1.2.0" } } diff --git a/packages/tailwindcss/tailwind.config.js b/packages/tailwindcss/tailwind.config.js index 43a5ae57..151458c3 100644 --- a/packages/tailwindcss/tailwind.config.js +++ b/packages/tailwindcss/tailwind.config.js @@ -1,53 +1,51 @@ -import harmonyPalette from "@evilmartians/harmony/tailwind"; - const config = { - theme: { - colors: harmonyPalette, - extend: { - keyframes: { - slideDownAndFade: { - from: { opacity: 0, transform: "translateY(-2px)" }, - to: { opacity: 1, transform: "translateY(0)" }, - }, - slideLeftAndFade: { - from: { opacity: 0, transform: "translateX(2px)" }, - to: { opacity: 1, transform: "translateX(0)" }, - }, - slideUpAndFade: { - from: { opacity: 0, transform: "translateY(2px)" }, - to: { opacity: 1, transform: "translateY(0)" }, - }, - slideRightAndFade: { - from: { opacity: 0, transform: "translateX(-2px)" }, - to: { opacity: 1, transform: "translateX(0)" }, - }, - overlayShow: { - from: { opacity: 0 }, - to: { opacity: 1 }, - }, - contentShow: { - from: { opacity: 0, transform: "translate(-50%, -48%) scale(0.96)" }, - to: { opacity: 1, transform: "translate(-50%, -50%) scale(1)" }, - }, - }, - animation: { - slideDownAndFade: - "slideDownAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)", - slideLeftAndFade: - "slideLeftAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)", - slideUpAndFade: "slideUpAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)", - slideRightAndFade: - "slideRightAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)", - overlayShow: "overlayShow 150ms cubic-bezier(0.16, 1, 0.3, 1)", - contentShow: "contentShow 150ms cubic-bezier(0.16, 1, 0.3, 1)", - }, - }, - }, - plugins: [ - require("@tailwindcss/forms"), - require("@tailwindcss/typography"), - require("tailwind-scrollbar")({ nocompatible: true }), - ], + theme: { + extend: { + keyframes: { + slideDownAndFade: { + from: { opacity: 0, transform: "translateY(-2px)" }, + to: { opacity: 1, transform: "translateY(0)" }, + }, + slideLeftAndFade: { + from: { opacity: 0, transform: "translateX(2px)" }, + to: { opacity: 1, transform: "translateX(0)" }, + }, + slideUpAndFade: { + from: { opacity: 0, transform: "translateY(2px)" }, + to: { opacity: 1, transform: "translateY(0)" }, + }, + slideRightAndFade: { + from: { opacity: 0, transform: "translateX(-2px)" }, + to: { opacity: 1, transform: "translateX(0)" }, + }, + overlayShow: { + from: { opacity: 0 }, + to: { opacity: 1 }, + }, + contentShow: { + from: { opacity: 0, transform: "translate(-50%, -48%) scale(0.96)" }, + to: { opacity: 1, transform: "translate(-50%, -50%) scale(1)" }, + }, + }, + animation: { + slideDownAndFade: + "slideDownAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)", + slideLeftAndFade: + "slideLeftAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)", + slideUpAndFade: "slideUpAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)", + slideRightAndFade: + "slideRightAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)", + overlayShow: "overlayShow 150ms cubic-bezier(0.16, 1, 0.3, 1)", + contentShow: "contentShow 150ms cubic-bezier(0.16, 1, 0.3, 1)", + }, + }, + }, + plugins: [ + require("tailwindcss-radix-colors"), + require("@tailwindcss/forms"), + require("@tailwindcss/typography"), + require("tailwind-scrollbar")({ nocompatible: true }), + ], }; export default config; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d714ae14..1d4ffcb5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -272,6 +272,9 @@ importers: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) devDependencies: + '@lume/tailwindcss': + specifier: workspace:^ + version: link:../../packages/tailwindcss '@remix-run/dev': specifier: ^2.6.0 version: 2.6.0(typescript@5.3.3)(vite@5.0.12) @@ -281,6 +284,15 @@ importers: '@types/react-dom': specifier: ^18.2.7 version: 18.2.18 + autoprefixer: + specifier: ^10.4.17 + version: 10.4.17(postcss@8.4.33) + postcss: + specifier: ^8.4.33 + version: 8.4.33 + tailwindcss: + specifier: ^3.4.1 + version: 3.4.1 typescript: specifier: ^5.1.6 version: 5.3.3 @@ -1098,9 +1110,9 @@ importers: packages/tailwindcss: dependencies: - '@evilmartians/harmony': + tailwindcss-radix-colors: specifier: ^1.2.0 - version: 1.2.0 + version: 1.2.0(tailwindcss@3.4.1) devDependencies: '@tailwindcss/forms': specifier: ^0.5.7 @@ -2263,10 +2275,6 @@ packages: requiresBuild: true optional: true - /@evilmartians/harmony@1.2.0: - resolution: {integrity: sha512-Ua8gpC+28Eo9D2/xynTrrZIrSawgtobwtRLLYq4wH8N19qoMspWZ1vqfsDDVPgQFa+iHsVAk/SbdmoPAj6OH1g==} - dev: false - /@floating-ui/core@1.6.0: resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==} dependencies: @@ -2517,6 +2525,10 @@ packages: resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} dev: false + /@radix-ui/colors@3.0.0: + resolution: {integrity: sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg==} + dev: false + /@radix-ui/number@1.0.1: resolution: {integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==} dependencies: @@ -9355,6 +9367,15 @@ packages: tailwindcss: 3.4.1 dev: true + /tailwindcss-radix-colors@1.2.0(tailwindcss@3.4.1): + resolution: {integrity: sha512-2rr3l7NV89UEwRTJFN4LlQIm5aasi7OZeJFF7iaDJ2hKwylR8BNMAC6GoiDl0G7wq18keN1YQ3V5sMbvtREO6w==} + peerDependencies: + tailwindcss: '>=3.0.0' + dependencies: + '@radix-ui/colors': 3.0.0 + tailwindcss: 3.4.1 + dev: false + /tailwindcss@3.4.1: resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} engines: {node: '>=14.0.0'} diff --git a/src-tauri/gen/main.json b/src-tauri/gen/main.json index 9f952ef2..568b05cb 100644 --- a/src-tauri/gen/main.json +++ b/src-tauri/gen/main.json @@ -1,81 +1,74 @@ { - "$schema": "./schemas/desktop-schema.json", - "identifier": "desktop-capability", - "description": "Capability for the desktop", - "platforms": [ - "linux", - "macOS", - "windows" - ], - "windows": [ - "main", - "settings", - "event-*", - "user-*", - "column-*" - ], - "permissions": [ - "path:default", - "event:default", - "window:default", - "app:default", - "resources:default", - "menu:default", - "tray:default", - "shell:open", - "theme:allow-set-theme", - "theme:allow-get-theme", - { - "identifier": "http:default", - "allow": [ - { - "url": "http://**/" - }, - { - "url": "https://**/" - } - ] - }, - { - "identifier": "fs:scope", - "allow": [ - { - "path": "$APPDATA/*" - }, - { - "path": "$LOCALDATA/*" - }, - { - "path": "$DESKTOP/*" - }, - { - "path": "$DOCUMENT/*" - }, - { - "path": "$DOWNLOAD/*" - }, - { - "path": "$HOME/*" - }, - { - "path": "$PICTURE/*" - }, - { - "path": "$PUBLIC/*" - }, - { - "path": "$VIDEO/*" - }, - { - "path": "$RESOURCE" - }, - { - "path": "$RESOURCE/*" - }, - { - "path": "$RESOURCE/locales/*" - } - ] - } - ] + "$schema": "./schemas/desktop-schema.json", + "identifier": "desktop-capability", + "description": "Capability for the desktop", + "platforms": ["linux", "macOS", "windows"], + "windows": ["main", "settings", "event-*", "user-*", "column-*"], + "permissions": [ + "path:default", + "event:default", + "window:default", + "app:default", + "resources:default", + "menu:default", + "tray:default", + "shell:open", + "theme:allow-set-theme", + "theme:allow-get-theme", + "notification:allow-is-permission-granted", + "notification:allow-request-permission", + "notification:allow-notify", + { + "identifier": "http:default", + "allow": [ + { + "url": "http://**/" + }, + { + "url": "https://**/" + } + ] + }, + { + "identifier": "fs:scope", + "allow": [ + { + "path": "$APPDATA/*" + }, + { + "path": "$LOCALDATA/*" + }, + { + "path": "$DESKTOP/*" + }, + { + "path": "$DOCUMENT/*" + }, + { + "path": "$DOWNLOAD/*" + }, + { + "path": "$HOME/*" + }, + { + "path": "$PICTURE/*" + }, + { + "path": "$PUBLIC/*" + }, + { + "path": "$VIDEO/*" + }, + { + "path": "$RESOURCE" + }, + { + "path": "$RESOURCE/*" + }, + { + "path": "$RESOURCE/locales/*" + } + ] + } + ] }