Constants
Import these from @grafloria/renderer.
Constants
AVG_CHAR_WIDTH_EM
The average glyph advance, as a fraction of font-size.
THE SAME CONSTANT LabelRenderer.estimateTextWidth uses. It is a rough mean for
proportional Latin text — and it being rough is fine, because the renderer sizes
label backgrounds with it too. What matters is that the two AGREE: a bbox derived
from a different estimate than the one that placed the text would crop labels the
renderer thought it had left room for.
tsconst AVG_CHAR_WIDTH_EM: 0.6
DEFAULT_MAX_OUTPUT_SIZE
The default cap on an exported raster's pixel size, per side.
tsconst DEFAULT_MAX_OUTPUT_SIZE: 4000
GRAFLORIA_MODEL_KEY
The PNG text-chunk keyword, and the SVG element name.
NOT grafloria-diagram: that is already the CSS class on the exported root
(class="grafloria-diagram"), so "does this file carry a model?" would answer YES for
every export we have ever produced.
tsconst GRAFLORIA_MODEL_KEY: "grafloria-model"
GRAFLORIA_NS
The XML namespace the embedded model lives in.
tsconst GRAFLORIA_NS: "https://grafloria.dev/ns/diagram"
IMAGE_NOT_INLINED_WARNING
Companion caveat from resolveImageHref — same lifecycle as {@link IMAGE_PDF_WARNING}.
tsconst IMAGE_NOT_INLINED_WARNING: string
IMAGE_PDF_WARNING
The capture-time verdict on an external image, EXPORTED because the async export path
revises it: await export(…) fetches external URLs (environment fetch, then
ExportOptions.assetFetcher) and STRIPS this warning from any capture whose images it
embedded — see stripResolvedImageWarnings. The synchronous entry points cannot fetch,
so for them this text is the whole truth, and it names the way out.
tsconst IMAGE_PDF_WARNING: string
PAGE_SIZES
Page sizes in POINTS (1/72"), which is PDF's only unit.
tsconst PAGE_SIZES: { readonly a4: { readonly width: 595.28; readonly height: 841.89; }; readonly letter: { readonly width: 612; readonly height: 792; }; readonly legal: { readonly width: 612; readonly height: 1008; }; readonly a3: { readonly width: 841.89; readonly height: 1190.55; }; readonly tabloid: { readonly width: 792; readonly height: 1224; }; }
SVG_XMLNS
tsconst SVG_XMLNS: "http://www.w3.org/2000/svg"
utf8
UTF-8, implemented rather than borrowed.
TextEncoder/TextDecoder are NOT reliably global: they are absent in jsdom (which
is what the renderer's own tests run in) and were late to Node. Sniffing for them and
falling back would give two code paths that can disagree about a surrogate pair — in a
module whose entire job is lossless bytes. So: one path, always, everywhere.
tsconst utf8: { encode(text: string): Uint8Array<ArrayBufferLike>; decode(bytes: Uint8Array<ArrayBufferLike>): string; }
XML_DECLARATION
The XML prolog. Required by strict XML parsers and by most SVG→PDF toolchains.
tsconst XML_DECLARATION: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>"
Was this page helpful?