mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-06-17 09:41:58 +00:00
Mirror the buttonVariants exercise for non-composer form controls: add a single controlVariants source of truth (2.5px radius, 12px text, padding-driven sizing, chrome via desktop-input-chrome) and consume it from Input, Textarea, and SelectTrigger. Drop per-call radius/height/font overrides that fought the shared look.
24 lines
989 B
TypeScript
24 lines
989 B
TypeScript
import { cva, type VariantProps } from 'class-variance-authority'
|
|
|
|
// Single source of truth for non-composer form-control chrome — Input,
|
|
// Textarea, and SelectTrigger all consume this. Mirrors `buttonVariants`:
|
|
// 2.5px radius, 12px text, padding-driven sizing (no fixed heights). The visual
|
|
// chrome (background, border tint, hover, focus glow, invalid state) comes from
|
|
// the `desktop-input-chrome` CSS so every control shares one exact look.
|
|
export const controlVariants = cva(
|
|
'desktop-input-chrome w-full min-w-0 rounded-[2.5px] border text-xs leading-4 text-foreground outline-none placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',
|
|
{
|
|
variants: {
|
|
size: {
|
|
sm: 'px-2 py-1',
|
|
default: 'px-2.5 py-1.5',
|
|
lg: 'px-3 py-2 text-sm leading-5'
|
|
}
|
|
},
|
|
defaultVariants: {
|
|
size: 'default'
|
|
}
|
|
}
|
|
)
|
|
|
|
export type ControlVariantProps = VariantProps<typeof controlVariants>
|