From 6fee88d76129d7f540bfa89a0ee334bcbaaa156e Mon Sep 17 00:00:00 2001 From: ReaJason Date: Sat, 31 May 2025 00:43:02 +0800 Subject: [PATCH] feat: use new theme --- web/bun.lockb | Bin 208748 -> 159188 bytes web/components.json | 5 +- web/package.json | 21 ++-- web/src/components/main-config-card.tsx | 2 +- web/src/components/ui/alert-dialog.tsx | 2 - web/src/components/ui/checkbox.tsx | 2 - web/src/components/ui/dropdown-menu.tsx | 2 - web/src/components/ui/label.tsx | 2 - web/src/components/ui/radio-group.tsx | 2 - web/src/components/ui/separator.tsx | 4 +- web/src/components/ui/switch.tsx | 2 - web/src/config.ts | 1 - web/src/index.css | 145 ++++++++++++------------ web/tailwind.config.js | 69 ----------- 14 files changed, 86 insertions(+), 173 deletions(-) delete mode 100644 web/tailwind.config.js diff --git a/web/bun.lockb b/web/bun.lockb index 89ab1f458eb6ec4bf1610c5499179892ecea07a1..efba1f4cc4e04430b8d78f748ad6dd134eba8e54 100755 GIT binary patch delta 35333 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 delta 63365 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 diff --git a/web/components.json b/web/components.json index 275d4164..4024f4d7 100644 --- a/web/components.json +++ b/web/components.json @@ -4,11 +4,10 @@ "rsc": false, "tsx": true, "tailwind": { - "config": "tailwind.config.js", + "config": "", "css": "src/index.css", "baseColor": "zinc", - "cssVariables": true, - "prefix": "" + "cssVariables": true }, "aliases": { "components": "@/components", diff --git a/web/package.json b/web/package.json index 3b594fff..f95c24cb 100644 --- a/web/package.json +++ b/web/package.json @@ -15,14 +15,14 @@ }, "devDependencies": { "@biomejs/biome": "1.9.4", - "@types/node": "^22.15.21", + "@types/node": "^22.15.28", "@types/react": "^19.1.6", "@types/react-copy-to-clipboard": "^5.0.7", "@types/react-dom": "^19.1.5", "@types/react-syntax-highlighter": "^15.5.13", "@vitejs/plugin-react": "^4.5.0", "rimraf": "^6.0.1", - "tailwindcss": "^4.1.7", + "tailwindcss": "^4.1.8", "typescript": "^5.8.3", "vite": "^6.3.5", "vite-bundle-visualizer": "^1.2.1" @@ -34,7 +34,6 @@ "@radix-ui/react-aspect-ratio": "^1.1.7", "@radix-ui/react-avatar": "^1.1.10", "@radix-ui/react-checkbox": "^1.3.2", - "@radix-ui/react-collapsible": "^1.1.11", "@radix-ui/react-context-menu": "^2.2.15", "@radix-ui/react-dialog": "^1.1.14", "@radix-ui/react-dropdown-menu": "^2.1.15", @@ -48,22 +47,18 @@ "@radix-ui/react-scroll-area": "^1.2.9", "@radix-ui/react-select": "^2.2.5", "@radix-ui/react-separator": "^1.1.7", - "@radix-ui/react-slider": "^1.3.5", "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-switch": "^1.2.5", "@radix-ui/react-tabs": "^1.1.12", "@radix-ui/react-toggle": "^1.1.9", "@radix-ui/react-toggle-group": "^1.1.10", "@radix-ui/react-tooltip": "^1.2.7", - "@tailwindcss/vite": "^4.1.7", - "@tanstack/react-query": "^5.77.2", + "@tailwindcss/vite": "^4.1.8", + "@tanstack/react-query": "^5.79.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "cmdk": "^1.1.1", "date-fns": "^4.1.0", - "embla-carousel-react": "^8.6.0", "i18next": "^25.2.1", - "input-otp": "^1.4.2", "lucide-react": "^0.511.0", "react": "^19.1.0", "react-copy-to-clipboard": "^5.1.0", @@ -71,17 +66,15 @@ "react-dom": "^19.1.0", "react-hook-form": "^7.56.4", "react-i18next": "^15.5.2", - "react-resizable-panels": "^3.0.2", "react-router": "^7.6.1", "react-router-dom": "^7.6.1", "react-syntax-highlighter": "^15.6.1", - "recharts": "^2.15.3", "sonner": "^2.0.3", "tailwind-merge": "^3.3.0", "tailwind-scrollbar": "^4.0.2", - "tailwindcss-animate": "^1.0.7", - "vaul": "^1.1.2", - "yup": "^1.6.1" + "tw-animate-css": "^1.3.2", + "yup": "^1.6.1", + "zod": "^3.25.42" }, "trustedDependencies": ["@biomejs/biome"] } diff --git a/web/src/components/main-config-card.tsx b/web/src/components/main-config-card.tsx index 84179387..dad16784 100644 --- a/web/src/components/main-config-card.tsx +++ b/web/src/components/main-config-card.tsx @@ -332,7 +332,7 @@ export function MainConfigCard({ className="w-full" >
- + {shellTools.map((shellTool) => ( ) { return ( { } return acc; }, {}); - console.log(envVars); const parsedEnv = safeParseYup(EnvSchema, envVars); if (!parsedEnv.success) { throw new Error( diff --git a/web/src/index.css b/web/src/index.css index 476b2f90..38b8c751 100644 --- a/web/src/index.css +++ b/web/src/index.css @@ -1,6 +1,9 @@ @import "tailwindcss"; +@import "tw-animate-css"; -@plugin "tailwindcss-animate"; +@source "../../../apps/**/*.{ts,tsx}"; +@source "../../../components/**/*.{ts,tsx}"; +@source "../**/*.{ts,tsx}"; @custom-variant dark (&:is(.dark *)); @@ -10,58 +13,72 @@ } :root { - --background: hsl(0 0% 100%); - --foreground: hsl(240 10% 3.9%); - --card: hsl(0 0% 100%); - --card-foreground: hsl(240 10% 3.9%); - --popover: hsl(0 0% 100%); - --popover-foreground: hsl(240 10% 3.9%); - --primary: hsl(240 5.9% 10%); - --primary-foreground: hsl(0 0% 98%); - --secondary: hsl(240 4.8% 95.9%); - --secondary-foreground: hsl(240 5.9% 10%); - --muted: hsl(240 4.8% 95.9%); - --muted-foreground: hsl(240 3.8% 46.1%); - --accent: hsl(240 4.8% 95.9%); - --accent-foreground: hsl(240 5.9% 10%); - --destructive: hsl(0 84.2% 60.2%); - --destructive-foreground: hsl(0 0% 98%); - --border: hsl(240 5.9% 90%); - --input: hsl(240 5.9% 90%); - --ring: hsl(240 10% 3.9%); - --chart-1: hsl(12 76% 61%); - --chart-2: hsl(173 58% 39%); - --chart-3: hsl(197 37% 24%); - --chart-4: hsl(43 74% 66%); - --chart-5: hsl(27 87% 67%); - --radius: 0.3rem; + --radius: 0.625rem; + --background: oklch(1 0 0); + --foreground: oklch(0.141 0.005 285.823); + --card: oklch(1 0 0); + --card-foreground: oklch(0.141 0.005 285.823); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.141 0.005 285.823); + --primary: oklch(0.21 0.006 285.885); + --primary-foreground: oklch(0.985 0 0); + --secondary: oklch(0.967 0.001 286.375); + --secondary-foreground: oklch(0.21 0.006 285.885); + --muted: oklch(0.967 0.001 286.375); + --muted-foreground: oklch(0.552 0.016 285.938); + --accent: oklch(0.967 0.001 286.375); + --accent-foreground: oklch(0.21 0.006 285.885); + --destructive: oklch(0.577 0.245 27.325); + --border: oklch(0.92 0.004 286.32); + --input: oklch(0.92 0.004 286.32); + --ring: oklch(0.705 0.015 286.067); + --chart-1: oklch(0.646 0.222 41.116); + --chart-2: oklch(0.6 0.118 184.704); + --chart-3: oklch(0.398 0.07 227.392); + --chart-4: oklch(0.828 0.189 84.429); + --chart-5: oklch(0.769 0.188 70.08); + --sidebar: oklch(0.985 0 0); + --sidebar-foreground: oklch(0.141 0.005 285.823); + --sidebar-primary: oklch(0.21 0.006 285.885); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.967 0.001 286.375); + --sidebar-accent-foreground: oklch(0.21 0.006 285.885); + --sidebar-border: oklch(0.92 0.004 286.32); + --sidebar-ring: oklch(0.705 0.015 286.067); } .dark { - --background: hsl(240 10% 3.9%); - --foreground: hsl(0 0% 98%); - --card: hsl(240 10% 3.9%); - --card-foreground: hsl(0 0% 98%); - --popover: hsl(240 10% 3.9%); - --popover-foreground: hsl(0 0% 98%); - --primary: hsl(0 0% 98%); - --primary-foreground: hsl(240 5.9% 10%); - --secondary: hsl(240 3.7% 15.9%); - --secondary-foreground: hsl(0 0% 98%); - --muted: hsl(240 3.7% 15.9%); - --muted-foreground: hsl(240 5% 64.9%); - --accent: hsl(240 3.7% 15.9%); - --accent-foreground: hsl(0 0% 98%); - --destructive: hsl(0 62.8% 30.6%); - --destructive-foreground: hsl(0 0% 98%); - --border: hsl(240 3.7% 15.9%); - --input: hsl(240 3.7% 15.9%); - --ring: hsl(240 4.9% 83.9%); - --chart-1: hsl(220 70% 50%); - --chart-2: hsl(160 60% 45%); - --chart-3: hsl(30 80% 55%); - --chart-4: hsl(280 65% 60%); - --chart-5: hsl(340 75% 55%); + --background: oklch(0.141 0.005 285.823); + --foreground: oklch(0.985 0 0); + --card: oklch(0.21 0.006 285.885); + --card-foreground: oklch(0.985 0 0); + --popover: oklch(0.21 0.006 285.885); + --popover-foreground: oklch(0.985 0 0); + --primary: oklch(0.92 0.004 286.32); + --primary-foreground: oklch(0.21 0.006 285.885); + --secondary: oklch(0.274 0.006 286.033); + --secondary-foreground: oklch(0.985 0 0); + --muted: oklch(0.274 0.006 286.033); + --muted-foreground: oklch(0.705 0.015 286.067); + --accent: oklch(0.274 0.006 286.033); + --accent-foreground: oklch(0.985 0 0); + --destructive: oklch(0.704 0.191 22.216); + --border: oklch(1 0 0 / 10%); + --input: oklch(1 0 0 / 15%); + --ring: oklch(0.552 0.016 285.938); + --chart-1: oklch(0.488 0.243 264.376); + --chart-2: oklch(0.696 0.17 162.48); + --chart-3: oklch(0.769 0.188 70.08); + --chart-4: oklch(0.627 0.265 303.9); + --chart-5: oklch(0.645 0.246 16.439); + --sidebar: oklch(0.21 0.006 285.885); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.488 0.243 264.376); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.274 0.006 286.033); + --sidebar-accent-foreground: oklch(0.985 0 0); + --sidebar-border: oklch(1 0 0 / 10%); + --sidebar-ring: oklch(0.552 0.016 285.938); } @theme inline { @@ -93,6 +110,14 @@ --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); + --color-sidebar: var(--sidebar); + --color-sidebar-foreground: var(--sidebar-foreground); + --color-sidebar-primary: var(--sidebar-primary); + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); + --color-sidebar-accent: var(--sidebar-accent); + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); + --color-sidebar-border: var(--sidebar-border); + --color-sidebar-ring: var(--sidebar-ring); } @layer base { @@ -104,22 +129,7 @@ } } -.tabs-list-container { - @apply relative; - - /* Add fade effect for overflow indication */ - &::after { - content: ""; - @apply absolute right-0 top-0 h-full w-8 - bg-gradient-to-l from-background to-transparent - pointer-events-none - md:hidden; - } -} - -/* Custom scrollbar for tabs list */ .tabs-list { - @apply pb-0.5 overflow-x-auto; scrollbar-width: thin; } @@ -134,8 +144,3 @@ .tabs-list::-webkit-scrollbar-thumb { @apply bg-muted-foreground/20 hover:bg-muted-foreground/30 rounded-full; } - -/* Ensure tab triggers have consistent sizing */ -.tab-trigger { - @apply whitespace-nowrap text-sm; -} diff --git a/web/tailwind.config.js b/web/tailwind.config.js deleted file mode 100644 index b01ff9d8..00000000 --- a/web/tailwind.config.js +++ /dev/null @@ -1,69 +0,0 @@ -import scrollbar from "tailwind-scrollbar"; - -/** @type {import('tailwindcss').Config} */ -export default { - darkMode: ["class"], - content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"], - theme: { - extend: { - borderRadius: { - lg: "var(--radius)", - md: "calc(var(--radius) - 2px)", - sm: "calc(var(--radius) - 4px)", - }, - colors: { - background: "hsl(var(--background))", - foreground: "hsl(var(--foreground))", - card: { - DEFAULT: "hsl(var(--card))", - foreground: "hsl(var(--card-foreground))", - }, - popover: { - DEFAULT: "hsl(var(--popover))", - foreground: "hsl(var(--popover-foreground))", - }, - primary: { - DEFAULT: "hsl(var(--primary))", - foreground: "hsl(var(--primary-foreground))", - }, - secondary: { - DEFAULT: "hsl(var(--secondary))", - foreground: "hsl(var(--secondary-foreground))", - }, - muted: { - DEFAULT: "hsl(var(--muted))", - foreground: "hsl(var(--muted-foreground))", - }, - accent: { - DEFAULT: "hsl(var(--accent))", - foreground: "hsl(var(--accent-foreground))", - }, - destructive: { - DEFAULT: "hsl(var(--destructive))", - foreground: "hsl(var(--destructive-foreground))", - }, - border: "hsl(var(--border))", - input: "hsl(var(--input))", - ring: "hsl(var(--ring))", - chart: { - 1: "hsl(var(--chart-1))", - 2: "hsl(var(--chart-2))", - 3: "hsl(var(--chart-3))", - 4: "hsl(var(--chart-4))", - 5: "hsl(var(--chart-5))", - }, - sidebar: { - DEFAULT: "hsl(var(--sidebar-background))", - foreground: "hsl(var(--sidebar-foreground))", - primary: "hsl(var(--sidebar-primary))", - "primary-foreground": "hsl(var(--sidebar-primary-foreground))", - accent: "hsl(var(--sidebar-accent))", - "accent-foreground": "hsl(var(--sidebar-accent-foreground))", - border: "hsl(var(--sidebar-border))", - ring: "hsl(var(--sidebar-ring))", - }, - }, - }, - }, - plugins: [import("tailwindcss-animate"), scrollbar({ nocompatible: true })], -};