diff --git a/ui/src/views/Forecast.jsx b/ui/src/views/Forecast.jsx index 861bd3c..71a02d6 100644 --- a/ui/src/views/Forecast.jsx +++ b/ui/src/views/Forecast.jsx @@ -1259,11 +1259,14 @@ export default function Forecast({ sources = [], sourceId, versions = [], versio // // The same floor goes under every row-header column, which is what makes it // safe for the indentation: a level's indent is the previous column's width, - // so a uniform floor steps evenly, where a per-column fit does not. Three - // characters was too mean to read a label through; this is the one number to - // turn if the labels are still squished, and the cost of turning it is that - // every level indents by that much more. - const MIN_ROW_LABEL_CHARS = 12 + // so a uniform floor steps evenly, where a per-column fit does not. + // + // It is deliberately small, and must stay small: this number IS the + // indentation. Raising it to give a clipped label more room to render widens + // every level's inset by the same amount, which is the opposite of what a + // compact tree wants. Making labels readable is a separate job -- the text + // has to overflow its column, not the column grow to hold the text. + const MIN_ROW_LABEL_CHARS = 3 async function ensureRowLabelWidth() { const grid = (await viewerRef.current?.getPlugin())?.regular_table