mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-06-26 14:16:08 +00:00
* feat(v4): update home page * fix * fix: cards * feat(v4): charts page * feat: update pages * feat: colors * fix * feat: add docs * feat: mdx work * fix * fix * fix: sidebar * fix: lint * feat: updates * feat: update components * feat: fix docs * fix: responsive * feat: implement cmdk * fix: update navigation menu demo * fix: code style * fix: themes * feat: implement blocks page * fix: docs config * refactor * fix: outputFileTracingIncludes * fix * fix: output * fix * fix: registry * refactor: move docs * debug: docs * debug * revert * fix: mjs * deps: pin fumadocs * debug * fix: downgrade next * fix: index page * refactor: move mdx components * fix: remove copy button * fix * was it zod * yes it was * remove copy page * fix: color page * fix: colors page * fix: meta colors * fix: copy button * feat: sync registry * fix: registry build script * feat: update port * feat: clean up examples * fix * fix: mobile nav * fix: blur for mobile * fix: sidebar nav * feat: update examples * fix: build scripts * feat: update components * feat: restyle * fix: types * fix: styles * fix: margins * fix: screenshots * fix * feat: update theme * fix: charts nav * fix: image * feat: optimize images * fix: menu * fix: card * fix: border * check * feat: implement charts page * fix: charts * fix: og images * feat: extend touch * fix: static * fix: sizing * fix: mobile screenshots * fix: page nav * fix * feat: update favicon * fix: theme selector * fix: feedback * fix: sink * docs: update * fix: styles * chore: update registry * fix: command * fix * fix: minor updates * fix: typography on smaller devices * fix: format * fix: remove unused icon * feat: update favicon * fix: typography * docs: typography page * fix: steps
108 lines
2.3 KiB
TypeScript
108 lines
2.3 KiB
TypeScript
"use client"
|
|
|
|
import {
|
|
AreaChartIcon,
|
|
BarChartBigIcon,
|
|
HexagonIcon,
|
|
LineChartIcon,
|
|
MousePointer2Icon,
|
|
PieChartIcon,
|
|
RadarIcon,
|
|
} from "lucide-react"
|
|
|
|
import { cn } from "@/lib/utils"
|
|
import { ChartCodeViewer } from "@/components/chart-code-viewer"
|
|
import { ChartCopyButton } from "@/components/chart-copy-button"
|
|
import { Chart } from "@/components/chart-display"
|
|
import { Separator } from "@/registry/new-york-v4/ui/separator"
|
|
|
|
export function ChartToolbar({
|
|
chart,
|
|
className,
|
|
children,
|
|
}: {
|
|
chart: Chart
|
|
} & React.ComponentProps<"div">) {
|
|
return (
|
|
<div className={cn("flex items-center gap-2", className)}>
|
|
<div className="text-muted-foreground flex items-center gap-1.5 pl-1 text-[13px] [&>svg]:h-[0.9rem] [&>svg]:w-[0.9rem]">
|
|
<ChartTitle chart={chart} />
|
|
</div>
|
|
<div className="ml-auto flex items-center gap-2 [&>form]:flex">
|
|
<ChartCopyButton
|
|
event="copy_chart_code"
|
|
name={chart.name}
|
|
code={chart.files?.[0]?.content ?? ""}
|
|
className="[&_svg]-h-3 text-foreground hover:bg-muted dark:text-foreground h-6 w-6 rounded-[6px] bg-transparent shadow-none [&_svg]:w-3"
|
|
/>
|
|
<Separator
|
|
orientation="vertical"
|
|
className="mx-0 hidden !h-4 md:flex"
|
|
/>
|
|
<ChartCodeViewer chart={chart}>{children}</ChartCodeViewer>
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
function ChartTitle({ chart }: { chart: Chart }) {
|
|
if (chart.name.includes("charts-line")) {
|
|
return (
|
|
<>
|
|
<LineChartIcon /> Line Chart
|
|
</>
|
|
)
|
|
}
|
|
|
|
if (chart.name.includes("chart-bar")) {
|
|
return (
|
|
<>
|
|
<BarChartBigIcon /> Bar Chart
|
|
</>
|
|
)
|
|
}
|
|
|
|
if (chart.name.includes("chart-pie")) {
|
|
return (
|
|
<>
|
|
<PieChartIcon /> Pie Chart
|
|
</>
|
|
)
|
|
}
|
|
|
|
if (chart.name.includes("chart-area")) {
|
|
return (
|
|
<>
|
|
<AreaChartIcon /> Area Chart
|
|
</>
|
|
)
|
|
}
|
|
|
|
if (chart.name.includes("chart-radar")) {
|
|
return (
|
|
<>
|
|
<HexagonIcon /> Radar Chart
|
|
</>
|
|
)
|
|
}
|
|
|
|
if (chart.name.includes("chart-radial")) {
|
|
return (
|
|
<>
|
|
<RadarIcon /> Radial Chart
|
|
</>
|
|
)
|
|
}
|
|
|
|
if (chart.name.includes("chart-tooltip")) {
|
|
return (
|
|
<>
|
|
<MousePointer2Icon />
|
|
Tooltip
|
|
</>
|
|
)
|
|
}
|
|
|
|
return chart.name
|
|
}
|