/**
* @fileoverview Saasflare Tracker — uptime/status segment grid.
* @author Saasflare™
*
* Renders an array of equal-width segments, each colored by status. The
* canonical use case is an uptime graph (each segment = one day, color =
* up/down/degraded). Tooltips on hover surface the per-segment context.
* A pattern shadcn/HeroUI/Mantine don't ship — popularized by Tremor.
*
* @module packages/ui/components/ui/tracker
* @package ui
* @layer core
*
* @example
*
*/
import * as React from "react";
import { type SaasflareComponentProps } from "../../providers";
/** A single tracker block. */
export interface TrackerBlock {
/**
* Named status key — resolves to a semantic, theme-aware token:
* `emerald`/`teal` → success, `blue` → info, `amber` → warning,
* `red`/`rose` → destructive, `gray`/`neutral` → muted. Or pass any CSS
* color string to override with an explicit value.
*/
color?: string;
/** Tooltip text shown on hover. */
tooltip?: React.ReactNode;
/** Custom key (helps React when blocks rearrange). */
key?: string | number;
}
/** Props for the Tracker component. */
export interface TrackerProps extends Omit, keyof SaasflareComponentProps>, SaasflareComponentProps {
/** Blocks to render, left-to-right. */
data: TrackerBlock[];
/** Height of each block in px. Default: `32`. */
blockHeight?: number;
/** Gap between blocks in px. Default: `2`. */
gap?: number;
/** Additional class names. */
className?: string;
}
/**
* Status segment grid (uptime/incident timeline).
*
* @component
* @layer core
*/
export declare function Tracker({ data, blockHeight, gap, className, surface, radius, animated, iconWeight, style, ...props }: TrackerProps): import("react/jsx-runtime").JSX.Element;