forked from HEL/rivet-typst
Descriptions and values are drawn as a single line that never wraps. Because a diagram is scaled to fit the width it is rendered into, the longest label is what decides that scale: one long description makes the whole diagram -- bit cells, indices and every other label with it -- shrink until that line fits. A register whose fields carry a sentence each is then unreadable at any page width, and since each diagram is measured on its own, a document full of them renders every one at a different size. Setting description-width wraps labels at that width instead, so the length of a description no longer decides how large the diagram is drawn. Values wrap at the same right edge as the description they belong to, and the option composes with left-labels, force-descs-on-side and ltr-bits. Wrapping means a label is no longer one line tall, so labels can no longer be spaced by a fixed line height. Each is now offset by the height it actually occupies, measured before it is placed, which is why render gained a context block. The option defaults to none, which keeps the single-line behaviour on the original code paths. With it unset every diagram in the gallery renders byte-identical to before.