///|
pub fn example_document_json(token_count : Int) -> String {
  let count = if token_count < 1 { 1 } else { token_count }
  let colors = example_colors()
  let builder = StringBuilder::new()
  builder.write_string(
    "{\"name\":\"Example Brand\",\"tagline\":\"Generated example\",\"palette\":{\"colors\":[",
  )
  for i in 0.. 0 {
      builder.write_string(",")
    }
    builder.write_string("{\"name\":\"color-")
    builder.write_string(i.to_string())
    builder.write_string("\",\"value\":\"")
    builder.write_string(colors[i % colors.length()])
    builder.write_string("\",\"role\":\"")
    builder.write_string(if i % 2 == 0 { "surface" } else { "text" })
    builder.write_string("\"}")
  }
  builder.write_string(
    " ]},\"assets\":{\"primary_logo\":{\"name\":\"Example logo\",\"path\":\"assets/example.svg\",\"min_width_px\":64,\"clear_space_px\":8,\"background\":\"light_or_dark\"}},\"typography\":{\"families\":[{\"name\":\"Inter\",\"fallback\":\"system-ui, sans-serif\",\"usage\":\"interface\"}],\"scale\":[{\"name\":\"body\",\"size_px\":16,\"line_height_px\":24}]}}",
  )
  builder.to_string().replace(old=" ]", new="]")
}

///|
pub fn example_document_yaml(token_count : Int) -> String {
  let count = if token_count < 1 { 1 } else { token_count }
  let colors = example_colors()
  let lines : Array[String] = [
    "name: Example Brand", "tagline: 'Generated example'", "palette:", "  colors:",
  ]
  for i in 0.. Array[String] {
  [
    "#111111", "#222222", "#333333", "#444444", "#555555", "#666666", "#777777",
    "#888888",
  ]
}

///|
pub fn example_document_sizes() -> Array[Int] {
  [4, 12, 64, 256]
}

///|
pub fn example_document_summary(token_count : Int) -> String {
  let json = example_document_json(token_count)
  let yaml = example_document_yaml(token_count)
  "tokens=" +
  token_count.to_string() +
  ", json_bytes=" +
  json.length().to_string() +
  ", yaml_bytes=" +
  yaml.length().to_string()
}

///|
pub fn example_cli_commands() -> Array[String] {
  [
    "moon run cmd/main -- demo", "moon run cmd/main -- validate --text ",
    "moon run cmd/main -- render --format html --text ", "moon run cmd/main -- benchmark",
  ]
}

///|
pub fn example_schema_document() -> String {
  "name: Example Brand\npalette:\n  colors:\n    - name: primary\n      value: '#4F7CFF'\n      role: action\nassets:\n  primary_logo:\n    name: Example logo\n    path: assets/example.svg\n    min_width_px: 64\n    clear_space_px: 8\ntypography:\n  scale: []\n"
}