"use client"; import { cn } from "@/lib/utils"; import { StatusBarContext, useStatusBarModel, type StatusBarProps } from "./status-bar/context"; import { StatusBarLegend } from "./status-bar/legend"; import { StatusBarPlot } from "./status-bar/plot"; import { StatusBarTooltip } from "./status-bar/tooltip"; /** Compose Plot, Tooltip, and Legend, or omit children for the complete chart. */ export function StatusBar({ data, statuses, label, activeId, defaultActiveId, onActiveChange, children, className, ...props }: StatusBarProps) { const model = useStatusBarModel({ data, statuses, label, activeId, defaultActiveId, onActiveChange, }); return (
{children === undefined ? ( <> ) : ( children )} {/* Color is never the only way to read the history. The complete data stays available to screen readers without dozens of tab stops. */}
{model.rows.map(({ datum, status }) => ( ))}
{model.label} data
Period Status Details
{datum.label} {status.label} {datum.description ?? ""}
); } export { useStatusBar, STATUS_BAR_STATUSES } from "./status-bar/context"; export type { StatusBarProps, StatusBarDatum, StatusBarStatus } from "./status-bar/context"; export { StatusBarLegend } from "./status-bar/legend"; export type { StatusBarLegendProps } from "./status-bar/legend"; export { StatusBarPlot } from "./status-bar/plot"; export type { StatusBarPlotProps } from "./status-bar/plot"; export { StatusBarTooltip } from "./status-bar/tooltip"; export type { StatusBarTooltipProps, StatusBarTooltipData } from "./status-bar/tooltip";