From b8b108f341060a8c934390a1547dc35bd98c0d17 Mon Sep 17 00:00:00 2001 From: mrzmyr Date: Sat, 18 Apr 2026 09:42:48 +0200 Subject: [PATCH 1/6] chore(react): drop shadow-xs from form input primitives MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Removes the `shadow-xs` class from 6 form primitive components (Input, Textarea, Select, NativeSelect, Combobox, InputGroup). This flattens the inputs to match the visual direction that the upcoming source-config refactor builds on. ## Stack role First PR in the `source-detail-refactor` stack (12 PRs total). The overall goal is to rewrite the source-detail page against a new set of reusable building blocks (KeyValueList, SourceConfig, SourceOperations, RunOperationPanel). This PR is purely cosmetic and unblocks nothing — it only lands here so the shipping PR (PR 08) isn't reviewed simultaneously with a global style change. ## Changes - Remove `shadow-xs` from Input, Textarea, Select, NativeSelect, Combobox, InputGroup className strings. 12 LOC, no behaviour change. ## Relationship to neighbours - Previous: none (stack base). - Next (PR 02 — lucide-react + shell icon swap): unrelated chore; kept separate so reviewers of either don't have to reason about the other. --- packages/react/src/components/combobox.tsx | 2 +- packages/react/src/components/input-group.tsx | 2 +- packages/react/src/components/input.tsx | 2 +- packages/react/src/components/native-select.tsx | 2 +- packages/react/src/components/select.tsx | 2 +- packages/react/src/components/textarea.tsx | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/react/src/components/combobox.tsx b/packages/react/src/components/combobox.tsx index cd575183cb..96d535a52c 100644 --- a/packages/react/src/components/combobox.tsx +++ b/packages/react/src/components/combobox.tsx @@ -204,7 +204,7 @@ function ComboboxChips({ ) { data-slot="input-group" role="group" className={cn( - "group/input-group relative flex w-full items-center rounded-md border border-input shadow-xs transition-[color,box-shadow] outline-none dark:bg-input/30", + "group/input-group relative flex w-full items-center rounded-md border border-input transition-[color,box-shadow] outline-none dark:bg-input/30", "h-9 min-w-0 has-[>textarea]:h-auto", // Variants based on alignment. diff --git a/packages/react/src/components/input.tsx b/packages/react/src/components/input.tsx index 93dd42741c..55503187c4 100644 --- a/packages/react/src/components/input.tsx +++ b/packages/react/src/components/input.tsx @@ -9,7 +9,7 @@ function Input({ className, type, ...props }: React.ComponentProps<"input">) { type={type} data-slot="input" className={cn( - "h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30", + "h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30", "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50", "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40", className, diff --git a/packages/react/src/components/native-select.tsx b/packages/react/src/components/native-select.tsx index 6b970cdef1..ad17741f80 100644 --- a/packages/react/src/components/native-select.tsx +++ b/packages/react/src/components/native-select.tsx @@ -18,7 +18,7 @@ function NativeSelect({ data-slot="native-select" data-size={size} className={cn( - "h-9 w-full min-w-0 appearance-none rounded-md border border-input bg-transparent px-3 py-2 pr-9 text-sm shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed data-[size=sm]:h-8 data-[size=sm]:py-1 dark:bg-input/30 dark:hover:bg-input/50", + "h-9 w-full min-w-0 appearance-none rounded-md border border-input bg-transparent px-3 py-2 pr-9 text-sm transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed data-[size=sm]:h-8 data-[size=sm]:py-1 dark:bg-input/30 dark:hover:bg-input/50", "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50", "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40", className, diff --git a/packages/react/src/components/select.tsx b/packages/react/src/components/select.tsx index 26d6bc032a..ac8f0ae3a4 100644 --- a/packages/react/src/components/select.tsx +++ b/packages/react/src/components/select.tsx @@ -31,7 +31,7 @@ function SelectTrigger({ data-slot="select-trigger" data-size={size} className={cn( - "flex w-fit items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground", + "flex w-fit items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground", className, )} {...props} diff --git a/packages/react/src/components/textarea.tsx b/packages/react/src/components/textarea.tsx index 944951fb21..299b7e64db 100644 --- a/packages/react/src/components/textarea.tsx +++ b/packages/react/src/components/textarea.tsx @@ -12,7 +12,7 @@ function Textarea({