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
31 lines
770 B
TypeScript
31 lines
770 B
TypeScript
"use client"
|
|
|
|
import * as React from "react"
|
|
import * as SeparatorPrimitive from "@radix-ui/react-separator"
|
|
|
|
import { cn } from "@/lib/utils"
|
|
|
|
const Separator = React.forwardRef<
|
|
React.ElementRef<typeof SeparatorPrimitive.Root>,
|
|
React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>
|
|
>(
|
|
(
|
|
{ className, orientation = "horizontal", decorative = true, ...props },
|
|
ref
|
|
) => (
|
|
<SeparatorPrimitive.Root
|
|
ref={ref}
|
|
decorative={decorative}
|
|
orientation={orientation}
|
|
className={cn(
|
|
"shrink-0 bg-border",
|
|
orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
|
|
className
|
|
)}
|
|
{...props}
|
|
/>
|
|
)
|
|
)
|
|
Separator.displayName = SeparatorPrimitive.Root.displayName
|
|
|
|
export { Separator }
|