diff --git a/internal/web/bun.lock b/internal/web/bun.lock index ae49a92..989803d 100644 --- a/internal/web/bun.lock +++ b/internal/web/bun.lock @@ -5,12 +5,12 @@ "name": "my-vue-app", "dependencies": { "@heroicons/react": "^2.2.0", - "@tailwindcss/vite": "^4.0.9", - "clsx": "^2.1.1", "solid-js": "^1.9.5", - "tailwindcss": "^4.0.9", }, "devDependencies": { + "@tailwindcss/vite": "^4.0.9", + "@types/node": "^22.13.9", + "tailwindcss": "^4.0.9", "typescript": "~5.7.2", "vite": "^6.2.0", "vite-plugin-solid": "^2.11.2", @@ -192,6 +192,8 @@ "@types/estree": ["@types/estree@1.0.6", "", {}, "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw=="], + "@types/node": ["@types/node@22.13.9", "", { "dependencies": { "undici-types": "~6.20.0" } }, "sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw=="], + "babel-plugin-jsx-dom-expressions": ["babel-plugin-jsx-dom-expressions@0.39.7", "", { "dependencies": { "@babel/helper-module-imports": "7.18.6", "@babel/plugin-syntax-jsx": "^7.18.6", "@babel/types": "^7.20.7", "html-entities": "2.3.3", "parse5": "^7.1.2", "validate-html-nesting": "^1.2.1" }, "peerDependencies": { "@babel/core": "^7.20.12" } }, "sha512-8GzVmFla7jaTNWW8W+lTMl9YGva4/06CtwJjySnkYtt8G1v9weCzc2SuF1DfrudcCNb2Doetc1FRg33swBYZCA=="], "babel-preset-solid": ["babel-preset-solid@1.9.5", "", { "dependencies": { "babel-plugin-jsx-dom-expressions": "^0.39.7" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-85I3osODJ1LvZbv8wFozROV1vXq32BubqHXAGu73A//TRs3NLI1OFP83AQBUTSQHwgZQmARjHlJciym3we+V+w=="], @@ -200,8 +202,6 @@ "caniuse-lite": ["caniuse-lite@1.0.30001701", "", {}, "sha512-faRs/AW3jA9nTwmJBSO1PQ6L/EOgsB5HMQQq4iCu5zhPgVVgO/pZRHlmatwijZKetFw8/Pr4q6dEN8sJuq8qTw=="], - "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], - "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], @@ -300,6 +300,8 @@ "typescript": ["typescript@5.7.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw=="], + "undici-types": ["undici-types@6.20.0", "", {}, "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg=="], + "update-browserslist-db": ["update-browserslist-db@1.1.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw=="], "validate-html-nesting": ["validate-html-nesting@1.2.2", "", {}, "sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg=="], diff --git a/internal/web/package.json b/internal/web/package.json index 84f6bed..0956054 100644 --- a/internal/web/package.json +++ b/internal/web/package.json @@ -14,9 +14,10 @@ }, "devDependencies": { "@tailwindcss/vite": "^4.0.9", + "@types/node": "^22.13.9", + "tailwindcss": "^4.0.9", "typescript": "~5.7.2", "vite": "^6.2.0", - "vite-plugin-solid": "^2.11.2", - "tailwindcss": "^4.0.9" + "vite-plugin-solid": "^2.11.2" } } diff --git a/internal/web/src/App.tsx b/internal/web/src/components/app.tsx similarity index 99% rename from internal/web/src/App.tsx rename to internal/web/src/components/app.tsx index 42f53b8..c789cd2 100644 --- a/internal/web/src/App.tsx +++ b/internal/web/src/components/app.tsx @@ -3,7 +3,7 @@ import { ChatBubbleLeftIcon, ClipboardDocumentIcon, ClipboardDocumentCheckIcon, -} from "./icons"; +} from "@/components/icons"; function App() { const install = `curl -fsSL https://trok.cloud/install.sh | sh`; diff --git a/internal/web/src/icons.tsx b/internal/web/src/components/icons.tsx similarity index 100% rename from internal/web/src/icons.tsx rename to internal/web/src/components/icons.tsx diff --git a/internal/web/src/index.tsx b/internal/web/src/index.tsx index e21c637..5c996fb 100644 --- a/internal/web/src/index.tsx +++ b/internal/web/src/index.tsx @@ -1,7 +1,7 @@ /* @refresh reload */ import { render } from "solid-js/web"; -import "./index.css"; -import App from "./App.tsx"; +import "@/styles/index.css"; +import App from "@/components/app"; const root = document.getElementById("root"); diff --git a/internal/web/src/index.css b/internal/web/src/styles/index.css similarity index 87% rename from internal/web/src/index.css rename to internal/web/src/styles/index.css index 14e7aea..7a2d72c 100644 --- a/internal/web/src/index.css +++ b/internal/web/src/styles/index.css @@ -6,7 +6,7 @@ font-style: normal; font-display: swap; font-weight: 400; - src: url("./assets/fonts/Koulen-Regular.ttf"); + src: url("../assets/fonts/Koulen-Regular.ttf"); } ::selection { diff --git a/internal/web/tsconfig.app.json b/internal/web/tsconfig.app.json index 542583a..fdfb6b0 100644 --- a/internal/web/tsconfig.app.json +++ b/internal/web/tsconfig.app.json @@ -21,7 +21,11 @@ "noUnusedLocals": true, "noUnusedParameters": true, "noFallthroughCasesInSwitch": true, - "noUncheckedSideEffectImports": true + "noUncheckedSideEffectImports": true, + + "paths": { + "@/*": ["./src/*"] + } }, "include": ["src"] } diff --git a/internal/web/tsconfig.node.json b/internal/web/tsconfig.node.json index db0becc..5e57bac 100644 --- a/internal/web/tsconfig.node.json +++ b/internal/web/tsconfig.node.json @@ -18,7 +18,11 @@ "noUnusedLocals": true, "noUnusedParameters": true, "noFallthroughCasesInSwitch": true, - "noUncheckedSideEffectImports": true + "noUncheckedSideEffectImports": true, + + "paths": { + "@/*": ["./src/*"] + } }, "include": ["vite.config.ts"] } diff --git a/internal/web/vite.config.ts b/internal/web/vite.config.ts index c65931b..916e011 100644 --- a/internal/web/vite.config.ts +++ b/internal/web/vite.config.ts @@ -1,7 +1,13 @@ import { defineConfig } from "vite"; +import path from "path"; import solid from "vite-plugin-solid"; import tailwindcss from "@tailwindcss/vite"; export default defineConfig({ + resolve: { + alias: { + "@": path.resolve(__dirname, "./src"), + }, + }, plugins: [solid(), tailwindcss()], });