From 98105eba89b2b2bacd5a75614d873ff28fb9aa19 Mon Sep 17 00:00:00 2001 From: fuomag9 <1580624+fuomag9@users.noreply.github.com> Date: Sun, 22 Mar 2026 16:39:38 +0100 Subject: [PATCH] fix: apply shadcn violet OKLCH theme and fix SelectItem empty value crash - Replace HSL-based indigo theme with official shadcn violet OKLCH theme in globals.css for proper contrast in both light and dark mode - Update tailwind.config.ts to use var(--...) instead of hsl(var(--...)) for OKLCH color space compatibility - Fix Radix UI crash: replace SelectItem value="" with "__none__" sentinel in HostDialogs.tsx and L4HostDialogs.tsx (empty string value is invalid) Form action parsers already return null for non-numeric values Co-Authored-By: Claude Sonnet 4.6 --- app/globals.css | 78 +++++++++---------- .../l4-proxy-hosts/L4HostDialogs.tsx | 4 +- src/components/proxy-hosts/HostDialogs.tsx | 16 ++-- tailwind.config.ts | 38 ++++----- 4 files changed, 68 insertions(+), 68 deletions(-) diff --git a/app/globals.css b/app/globals.css index 3305916c..eb3d7186 100644 --- a/app/globals.css +++ b/app/globals.css @@ -4,48 +4,48 @@ @layer base { :root { - --background: 0 0% 100%; - --foreground: 240 10% 4%; - --card: 0 0% 98%; - --card-foreground: 240 10% 4%; - --popover: 0 0% 100%; - --popover-foreground: 240 10% 4%; - --primary: 239 84% 67%; - --primary-foreground: 0 0% 100%; - --secondary: 192 91% 43%; - --secondary-foreground: 0 0% 100%; - --muted: 240 5% 96%; - --muted-foreground: 240 4% 46%; - --accent: 240 5% 96%; - --accent-foreground: 240 10% 4%; - --destructive: 0 84% 60%; - --destructive-foreground: 0 0% 100%; - --border: 240 6% 90%; - --input: 240 6% 90%; - --ring: 239 84% 67%; - --radius: 0.5rem; + --radius: 0.65rem; + --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.541 0.281 293.009); + --primary-foreground: oklch(0.969 0.016 293.756); + --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); + --destructive-foreground: oklch(1 0 0); + --border: oklch(0.92 0.004 286.32); + --input: oklch(0.92 0.004 286.32); + --ring: oklch(0.702 0.183 293.541); } .dark { - --background: 240 10% 4%; - --foreground: 240 5% 96%; - --card: 240 6% 10%; - --card-foreground: 240 5% 96%; - --popover: 240 6% 10%; - --popover-foreground: 240 5% 96%; - --primary: 239 84% 67%; - --primary-foreground: 0 0% 100%; - --secondary: 192 91% 43%; - --secondary-foreground: 0 0% 100%; - --muted: 240 4% 16%; - --muted-foreground: 240 5% 65%; - --accent: 240 4% 16%; - --accent-foreground: 240 5% 96%; - --destructive: 0 63% 31%; - --destructive-foreground: 0 0% 100%; - --border: 240 4% 16%; - --input: 240 4% 16%; - --ring: 239 84% 67%; + --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.606 0.25 292.717); + --primary-foreground: oklch(0.969 0.016 293.756); + --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); + --destructive-foreground: oklch(0.985 0 0); + --border: oklch(1 0 0 / 10%); + --input: oklch(1 0 0 / 15%); + --ring: oklch(0.38 0.189 293.745); } * { diff --git a/src/components/l4-proxy-hosts/L4HostDialogs.tsx b/src/components/l4-proxy-hosts/L4HostDialogs.tsx index 3cfa030a..e6ebcc23 100644 --- a/src/components/l4-proxy-hosts/L4HostDialogs.tsx +++ b/src/components/l4-proxy-hosts/L4HostDialogs.tsx @@ -226,13 +226,13 @@ function L4HostForm({ + + + +