chartlet 0.13.0

Compile structured data into deterministic, accessible static charts
Documentation
{
  "schemaVersion": 1,
  "type": "state",
  "title": "Life of a support ticket",
  "source": "Support handbook, ticket states",
  "width": 900,
  "height": 900,
  "state": {
    "initial": "new",
    "states": [
      { "id": "new", "label": "New" },
      { "id": "triaged", "label": "Triaged" },
      { "id": "severity", "label": "Severity?", "kind": "choice" },
      { "id": "handling", "label": "Being handled", "kind": "composite" },
      { "id": "progress", "label": "In progress", "sublabel": "assigned", "in": "handling" },
      { "id": "waiting", "label": "Waiting for customer", "in": "handling" },
      { "id": "resolved", "label": "Resolved" },
      { "id": "closed", "label": "Closed", "final": true },
      { "id": "rejected", "label": "Rejected", "final": true }
    ],
    "transitions": [
      { "from": "new", "to": "triaged", "event": "review" },
      { "from": "triaged", "to": "severity", "event": "classify" },
      { "from": "severity", "to": "progress", "guard": "valid", "action": "assign" },
      { "from": "severity", "to": "rejected", "guard": "duplicate" },
      { "from": "progress", "to": "waiting", "event": "ask" },
      { "from": "waiting", "to": "progress", "event": "reply" },
      { "from": "waiting", "to": "waiting", "event": "after 3 days", "action": "remind" },
      { "from": "progress", "to": "resolved", "event": "fix shipped" },
      { "from": "resolved", "to": "progress", "event": "reopen", "dash": "dashed" },
      { "from": "resolved", "to": "closed", "event": "after 7 days" }
    ],
    "mainPath": ["new", "triaged", "severity", "progress", "resolved", "closed"]
  }
}