| import clsx from "clsx"; | |
| import React from "react"; | |
| import { NavTab } from "./nav-tab"; | |
| interface ContainerProps { | |
| label?: React.ReactNode; | |
| labels?: { | |
| label: string | React.ReactNode; | |
| to: string; | |
| icon?: React.ReactNode; | |
| isBeta?: boolean; | |
| }[]; | |
| children: React.ReactNode; | |
| className?: React.HTMLAttributes<HTMLDivElement>["className"]; | |
| } | |
| export function Container({ | |
| label, | |
| labels, | |
| children, | |
| className, | |
| }: ContainerProps) { | |
| return ( | |
| <div | |
| className={clsx( | |
| "bg-neutral-800 border border-neutral-600 rounded-xl flex flex-col", | |
| className, | |
| )} | |
| > | |
| {labels && ( | |
| <div className="flex text-xs h-[36px]"> | |
| {labels.map(({ label: l, to, icon, isBeta }) => ( | |
| <NavTab key={to} to={to} label={l} icon={icon} isBeta={isBeta} /> | |
| ))} | |
| </div> | |
| )} | |
| {!labels && label && ( | |
| <div className="px-2 h-[36px] border-b border-neutral-600 text-xs flex items-center"> | |
| {label} | |
| </div> | |
| )} | |
| <div className="overflow-hidden h-full rounded-b-xl">{children}</div> | |
| </div> | |
| ); | |
| } | |