STORY: The Unified UX epic needed a solid component foundation. We chose shadcn/ui for its Tailwind integration and copy-paste philosophy. COLLABORATION: Initialized shadcn/ui with Next.js defaults and installed the base component set needed for the unified shell: - button: Primary actions - card: Card containers - badge: Status badges - avatar: Agent avatars - input: Search/filter inputs - scroll-area: Scrollable containers - separator: Visual dividers - tooltip: Hover information - dropdown-menu: Sorting and filtering We also updated tsconfig.json with path aliases (@/*) to support the shadcn import pattern. DELIVERABLES: - components.json configuration - 9 shadcn components in components/ui/ - lib/utils.ts with cn() helper - tsconfig.json with @/* path aliases VERIFICATION: - npm run typecheck: PASS - npm run lint: PASS CLOSES: bb-ui2.2 BLOCKS: bb-ui2.3, bb-ui2.5
22 lines
768 B
TypeScript
22 lines
768 B
TypeScript
import * as React from "react"
|
|
|
|
import { cn } from "@/lib/utils"
|
|
|
|
const Input = React.forwardRef<HTMLInputElement, React.ComponentProps<"input">>(
|
|
({ className, type, ...props }, ref) => {
|
|
return (
|
|
<input
|
|
type={type}
|
|
className={cn(
|
|
"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
className
|
|
)}
|
|
ref={ref}
|
|
{...props}
|
|
/>
|
|
)
|
|
}
|
|
)
|
|
Input.displayName = "Input"
|
|
|
|
export { Input }
|