mirror of
https://github.com/hanzoai/bootnode.git
synced 2026-10-25 02:31:30 +00:00
Names the two halves for what they are. The repo already holds both (12407e9 merged bootnode/bootnode into this history); this makes the frontend directory say so, so the layout reads the way the owner describes the system: backend and frontend separate, one repo. git mv throughout — 187 renames, history preserved. Every path reference follows: hanzo.yml build context and dockerfile, compose.yml, compose.prod.yml, start.sh, LLM.md, infra/k8s/web-deployments.yaml, infra/cloud/deploy.sh, and the Dockerfile's own COPY paths. Image and container names (bootnode-web, the -web tag suffix) are deliberately NOT renamed here: those are a deploy contract the App CR and ingress bind to on port 3001, and breaking them is a separate, staged change. Console builds green after the move; the Go tree builds. Co-authored-by: Hanzo Dev <[email protected]>
57 lines
2.3 KiB
TypeScript
57 lines
2.3 KiB
TypeScript
import * as React from "react"
|
|
import { cn } from "@/lib/utils"
|
|
|
|
// Card == lux.cloud's `.panel`: a 16px-radius rectangle drawn with a single
|
|
// hairline border on the page ground. No shadow and no raised surface — on a
|
|
// pure-black background a shadow is invisible and a lifted fill just makes the
|
|
// page muddy, so lux.cloud uses the border alone to separate. Everything below
|
|
// is that panel's measured geometry.
|
|
|
|
const Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
|
({ className, ...props }, ref) => (
|
|
<div
|
|
ref={ref}
|
|
className={cn("rounded-xl border border-border bg-card text-card-foreground", className)}
|
|
{...props}
|
|
/>
|
|
)
|
|
)
|
|
Card.displayName = "Card"
|
|
|
|
const CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
|
({ className, ...props }, ref) => (
|
|
<div ref={ref} className={cn("flex flex-col space-y-1 p-5", className)} {...props} />
|
|
)
|
|
)
|
|
CardHeader.displayName = "CardHeader"
|
|
|
|
const CardTitle = React.forwardRef<HTMLHeadingElement, React.HTMLAttributes<HTMLHeadingElement>>(
|
|
({ className, ...props }, ref) => (
|
|
// 17px / 500 — lux.cloud's `.panel-head h2`. Not bold: the panel is
|
|
// delimited by its border, so the title does not have to shout.
|
|
<h3 ref={ref} className={cn("text-[17px] font-medium leading-none tracking-tight", className)} {...props} />
|
|
)
|
|
)
|
|
CardTitle.displayName = "CardTitle"
|
|
|
|
const CardDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(
|
|
({ className, ...props }, ref) => (
|
|
<p ref={ref} className={cn("text-[13px] leading-relaxed text-muted-foreground", className)} {...props} />
|
|
)
|
|
)
|
|
CardDescription.displayName = "CardDescription"
|
|
|
|
const CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
|
({ className, ...props }, ref) => <div ref={ref} className={cn("p-5 pt-0", className)} {...props} />
|
|
)
|
|
CardContent.displayName = "CardContent"
|
|
|
|
const CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
|
({ className, ...props }, ref) => (
|
|
<div ref={ref} className={cn("flex items-center p-5 pt-0", className)} {...props} />
|
|
)
|
|
)
|
|
CardFooter.displayName = "CardFooter"
|
|
|
|
export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }
|