renderreport 0.7.1

Data-driven report generation with Typst as embedded render engine — no CLI dependency
Documentation
// Divider Component
// Inspired by BIRT Band Elements

#let divider(data) = {
  let line-color = if data.color != none {
    rgb(data.color)
  } else {
    color-border
  }
  
  let line-style = if data.style == "dashed" {
    (dash: "dashed")
  } else if data.style == "dotted" {
    (dash: "dotted")
  } else if data.style == "double" {
    (thickness: 2pt)
  } else {
    (:)
  }
  
  let thickness = eval(data.thickness)
  if thickness == 0pt {
    // An invisible divider is pure spacing. A zero-width line is still
    // content: at the end of a full page it opened a page of its own.
    v(eval(data.spacing_above) + eval(data.spacing_below), weak: true)
  } else {
    v(eval(data.spacing_above))
    line(
      length: 100%,
      stroke: (paint: line-color, thickness: thickness) + line-style
    )
    v(eval(data.spacing_below))
  }
}