import "./diff_mark.css"; import type * as React from "react"; import { useRender } from "@base-ui/react/use-render"; import { type StyleProps } from "./style_props"; /** * WHAT HAPPENED TO THIS ROW — the second atom, and the other half of a review. * * `DiffValue` says how a value moved; this says what happened to the thing * holding it, for the cases where no single value carries the change: a row that * is entirely new, one that will be removed, one that a document merely touched. * * Deliberately tiny and layout-free so it can lead a table row, sit in a card * corner, precede a field label, or annotate a list item — the host decides * where. It renders a glyph plus an accessible word, never colour alone: "added" * and "removed" differing only by hue is invisible to a reader who cannot * separate them, and this is exactly the distinction a review turns on. * * ONE treatment, everywhere: a filled DISC. It briefly had two — a bare glyph * for dense surfaces, a filled shape for sparse ones — and a form marked with * bare glyphs sitting beside a table marked with filled shapes read as two * different systems saying the same thing. A reader parses shape before meaning, * so an unexplained difference reads as an accident however principled the * reason was. The disc also gives the glyph its own ground, which is what lets * one mark sit on a white row, a tinted cell, or a photograph. */ export type DiffKind = "added" | "changed" | "removed" | "unchanged"; export interface DiffMarkProps extends StyleProps { kind: DiffKind; /** Print the word beside the disc. Off by default — in a table the column * already says what the mark means, and repeating it on every row is noise. */ showLabel?: boolean; /** Override the word (the row is not "added", it is "new claim line"). */ label?: string; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } export declare function DiffMark(props: DiffMarkProps): React.ReactElement>;