refactor(ui): extract reusable component package

This commit is contained in:
vince 2026-06-20 05:27:09 +02:00
parent 87261b5a3f
commit 2664804e91
86 changed files with 102 additions and 85 deletions

View file

@ -1,34 +0,0 @@
import type { CSSProperties } from "react";
import { clampPercent } from "../format";
import type { UiSeverity } from "../types";
export interface ProgressMeterProps {
value?: number;
severity?: UiSeverity;
label?: string;
}
export function ProgressMeter({
value,
severity = "neutral",
label = "Progress",
}: ProgressMeterProps) {
const progress = value === undefined ? null : clampPercent(value);
return (
<div
className="progress-meter"
data-severity={severity}
role="meter"
aria-label={label}
aria-valuemin={0}
aria-valuemax={100}
aria-valuenow={progress ?? undefined}
data-empty={progress === null}
>
{progress !== null ? (
<span style={{ "--meter-progress": `${progress}%` } as CSSProperties} />
) : null}
</div>
);
}