1mod deterministic;
2mod flowchart_parity;
3mod font_metrics;
4mod heuristic;
5mod icons;
6mod markdown;
7mod markdown_label;
8mod measure;
9mod metrics;
10mod overrides;
11mod svg_metrics;
12mod types;
13mod wrap;
14
15pub use deterministic::DeterministicTextMeasurer;
16pub use flowchart_parity::{
17 flowchart_apply_mermaid_string_whitespace_height_parity,
18 flowchart_apply_mermaid_styled_node_height_parity, flowchart_html_has_inline_style_tags,
19 flowchart_html_line_height_px,
20};
21pub use font_metrics::VendoredFontMetricsTextMeasurer;
22pub(crate) use heuristic::{estimate_char_width_em, estimate_line_width_px};
23pub use icons::replace_fontawesome_icons;
24pub(crate) use markdown::{
25 MermaidMarkdownWordType, mermaid_markdown_contains_html_tags, mermaid_markdown_to_lines,
26};
27pub(crate) use markdown_label::{
28 mermaid_markdown_contains_raw_blocks, mermaid_markdown_to_html_label_fragment,
29 mermaid_markdown_to_xhtml_label_fragment, mermaid_markdown_wants_paragraph_wrap,
30};
31pub use measure::TextMeasurer;
32#[cfg(test)]
33pub(crate) use metrics::measure_flowchart_svg_like_precise_width_px;
34pub(crate) use metrics::{
35 flowchart_default_bold_delta_em, flowchart_default_bold_kern_delta_em,
36 is_flowchart_default_font, measure_wrapped_markdown_with_flowchart_bold_deltas,
37 mermaid_markdown_to_wrapped_word_lines, style_requests_bold_font_weight,
38};
39pub use metrics::{
40 measure_html_with_flowchart_bold_deltas, measure_markdown_svg_like_precise_width_px,
41 measure_markdown_with_flowchart_bold_deltas, mermaid_default_bold_width_delta_px,
42 mermaid_default_italic_width_delta_px,
43};
44pub(crate) use svg_metrics::{
45 FLOWCHART_DEFAULT_FONT_KEY, flowchart_svg_edge_label_background_y_px,
46 font_key_uses_courier_metrics, normalize_font_key, svg_create_text_bbox_y_offset_px,
47 svg_title_bbox_vertical_extents_px, svg_wrapped_first_line_bbox_height_px,
48};
49pub use types::{TextMetrics, TextStyle, WrapMode};
50pub(crate) use wrap::wrap_svg_text_lines_by_measurement;
51pub use wrap::{
52 ceil_to_1_64_px, round_to_1_64_px, round_to_1_64_px_ties_to_even, split_html_br_lines,
53 wrap_label_like_mermaid_lines, wrap_label_like_mermaid_lines_floored_bbox,
54 wrap_label_like_mermaid_lines_relaxed, wrap_text_lines_measurer, wrap_text_lines_px,
55};
56
57#[cfg(test)]
58mod tests;