import * as React from "react" import { cn } from "../ui/utils" /* === Linear Progress Bar === */ interface ProgressBarProps extends React.ComponentProps<"div"> { value: number max?: number height?: string label?: string } function ProgressBar({ value, max = 100, height = "h-4", label, className, ...props }: ProgressBarProps) { const percent = Math.min(100, Math.max(0, (value / max) * 100)) return (
{label && (

{label}

)}
) } /* === Discrete Bar Segments (게이지) === */ interface DiscreteBarProps extends React.ComponentProps<"div"> { total: number filled: number height?: string } function DiscreteBar({ total, filled, height = "h-6", className, ...props }: DiscreteBarProps) { return (
{[...Array(total)].map((_, i) => (
))}
) } /* === Progress Bar with Label (오늘 방문 스타일) === */ interface ProgressBarWithLabelProps extends React.ComponentProps<"div"> { value: number max?: number label: string } function ProgressBarWithLabel({ value, max = 100, label, className, ...props }: ProgressBarWithLabelProps) { const percent = Math.min(100, Math.max(0, (value / max) * 100)) return (
{label}
) } export { ProgressBar, DiscreteBar, ProgressBarWithLabel } export type { ProgressBarProps, DiscreteBarProps, ProgressBarWithLabelProps }