import { m as lt } from "./chunk-4BX2VUAB-CkAjNgA_-Bs9A5Kfv.js";
import { e as ht } from "./chunk-QZHKN3VN-DludCzyb-DYJGn0Nm.js";
import { ap as $t, ao as mt, a7 as gt, a8 as ft, a9 as pt, aa as yt, _ as $, aB as Q, l as C, a5 as ut, g as F, an as xt, aC as bt, av as wt, ah as I, aD as kt, aE as Bt, aF as Et } from "./index-Bh-wTBlD.js";
import { M as Ct } from "./mermaid-parser.core-DtLRLmJt-Bs8fzU82.js";
var k = {
  NORMAL: 0,
  REVERSE: 1,
  HIGHLIGHT: 2,
  MERGE: 3,
  CHERRY_PICK: 4
}, vt = Bt.gitGraph, H = /* @__PURE__ */ $(() => kt({
  ...vt,
  ...Q().gitGraph
}), "getConfig"), l = new ht(() => {
  const t = H(), r = t.mainBranchName, e = t.mainBranchOrder;
  return {
    mainBranchName: r,
    commits: /* @__PURE__ */ new Map(),
    head: null,
    branchConfig: /* @__PURE__ */ new Map([[r, { name: r, order: e }]]),
    branches: /* @__PURE__ */ new Map([[r, null]]),
    currBranch: r,
    direction: "LR",
    seq: 0,
    options: {}
  };
});
function Y() {
  return Et({ length: 7 });
}
$(Y, "getID");
function et(t, r) {
  const e = /* @__PURE__ */ Object.create(null);
  return t.reduce((a, i) => {
    const d = r(i);
    return e[d] || (e[d] = !0, a.push(i)), a;
  }, []);
}
$(et, "uniqBy");
var Tt = /* @__PURE__ */ $(function(t) {
  l.records.direction = t;
}, "setDirection"), Lt = /* @__PURE__ */ $(function(t) {
  C.debug("options str", t), t = t == null ? void 0 : t.trim(), t = t || "{}";
  try {
    l.records.options = JSON.parse(t);
  } catch (r) {
    C.error("error while parsing gitGraph options", r.message);
  }
}, "setOptions"), Mt = /* @__PURE__ */ $(function() {
  return l.records.options;
}, "getOptions"), It = /* @__PURE__ */ $(function(t) {
  let r = t.msg, e = t.id;
  const a = t.type;
  let i = t.tags;
  C.info("commit", r, e, a, i), C.debug("Entering commit:", r, e, a, i);
  const d = H();
  e = I.sanitizeText(e, d), r = I.sanitizeText(r, d), i = i == null ? void 0 : i.map((s) => I.sanitizeText(s, d));
  const c = {
    id: e || l.records.seq + "-" + Y(),
    message: r,
    seq: l.records.seq++,
    type: a ?? k.NORMAL,
    tags: i ?? [],
    parents: l.records.head == null ? [] : [l.records.head.id],
    branch: l.records.currBranch
  };
  l.records.head = c, C.info("main branch", d.mainBranchName), l.records.commits.has(c.id) && C.warn(`Commit ID ${c.id} already exists`), l.records.commits.set(c.id, c), l.records.branches.set(l.records.currBranch, c.id), C.debug("in pushCommit " + c.id);
}, "commit"), Rt = /* @__PURE__ */ $(function(t) {
  let r = t.name;
  const e = t.order;
  if (r = I.sanitizeText(r, H()), l.records.branches.has(r))
    throw new Error(
      `Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${r}")`
    );
  l.records.branches.set(r, l.records.head != null ? l.records.head.id : null), l.records.branchConfig.set(r, { name: r, order: e }), ot(r), C.debug("in createBranch");
}, "branch"), Pt = /* @__PURE__ */ $((t) => {
  let r = t.branch, e = t.id;
  const a = t.type, i = t.tags, d = H();
  r = I.sanitizeText(r, d), e && (e = I.sanitizeText(e, d));
  const c = l.records.branches.get(l.records.currBranch), s = l.records.branches.get(r), h = c ? l.records.commits.get(c) : void 0, g = s ? l.records.commits.get(s) : void 0;
  if (h && g && h.branch === r)
    throw new Error(`Cannot merge branch '${r}' into itself.`);
  if (l.records.currBranch === r) {
    const o = new Error('Incorrect usage of "merge". Cannot merge a branch to itself');
    throw o.hash = {
      text: `merge ${r}`,
      token: `merge ${r}`,
      expected: ["branch abc"]
    }, o;
  }
  if (h === void 0 || !h) {
    const o = new Error(
      `Incorrect usage of "merge". Current branch (${l.records.currBranch})has no commits`
    );
    throw o.hash = {
      text: `merge ${r}`,
      token: `merge ${r}`,
      expected: ["commit"]
    }, o;
  }
  if (!l.records.branches.has(r)) {
    const o = new Error(
      'Incorrect usage of "merge". Branch to be merged (' + r + ") does not exist"
    );
    throw o.hash = {
      text: `merge ${r}`,
      token: `merge ${r}`,
      expected: [`branch ${r}`]
    }, o;
  }
  if (g === void 0 || !g) {
    const o = new Error(
      'Incorrect usage of "merge". Branch to be merged (' + r + ") has no commits"
    );
    throw o.hash = {
      text: `merge ${r}`,
      token: `merge ${r}`,
      expected: ['"commit"']
    }, o;
  }
  if (h === g) {
    const o = new Error('Incorrect usage of "merge". Both branches have same head');
    throw o.hash = {
      text: `merge ${r}`,
      token: `merge ${r}`,
      expected: ["branch abc"]
    }, o;
  }
  if (e && l.records.commits.has(e)) {
    const o = new Error(
      'Incorrect usage of "merge". Commit with id:' + e + " already exists, use different custom id"
    );
    throw o.hash = {
      text: `merge ${r} ${e} ${a} ${i == null ? void 0 : i.join(" ")}`,
      token: `merge ${r} ${e} ${a} ${i == null ? void 0 : i.join(" ")}`,
      expected: [
        `merge ${r} ${e}_UNIQUE ${a} ${i == null ? void 0 : i.join(" ")}`
      ]
    }, o;
  }
  const b = s || "", n = {
    id: e || `${l.records.seq}-${Y()}`,
    message: `merged branch ${r} into ${l.records.currBranch}`,
    seq: l.records.seq++,
    parents: l.records.head == null ? [] : [l.records.head.id, b],
    branch: l.records.currBranch,
    type: k.MERGE,
    customType: a,
    customId: !!e,
    tags: i ?? []
  };
  l.records.head = n, l.records.commits.set(n.id, n), l.records.branches.set(l.records.currBranch, n.id), C.debug(l.records.branches), C.debug("in mergeBranch");
}, "merge"), At = /* @__PURE__ */ $(function(t) {
  let r = t.id, e = t.targetId, a = t.tags, i = t.parent;
  C.debug("Entering cherryPick:", r, e, a);
  const d = H();
  if (r = I.sanitizeText(r, d), e = I.sanitizeText(e, d), a = a == null ? void 0 : a.map((h) => I.sanitizeText(h, d)), i = I.sanitizeText(i, d), !r || !l.records.commits.has(r)) {
    const h = new Error(
      'Incorrect usage of "cherryPick". Source commit id should exist and provided'
    );
    throw h.hash = {
      text: `cherryPick ${r} ${e}`,
      token: `cherryPick ${r} ${e}`,
      expected: ["cherry-pick abc"]
    }, h;
  }
  const c = l.records.commits.get(r);
  if (c === void 0 || !c)
    throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');
  if (i && !(Array.isArray(c.parents) && c.parents.includes(i)))
    throw new Error(
      "Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit."
    );
  const s = c.branch;
  if (c.type === k.MERGE && !i)
    throw new Error(
      "Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified."
    );
  if (!e || !l.records.commits.has(e)) {
    if (s === l.records.currBranch) {
      const n = new Error(
        'Incorrect usage of "cherryPick". Source commit is already on current branch'
      );
      throw n.hash = {
        text: `cherryPick ${r} ${e}`,
        token: `cherryPick ${r} ${e}`,
        expected: ["cherry-pick abc"]
      }, n;
    }
    const h = l.records.branches.get(l.records.currBranch);
    if (h === void 0 || !h) {
      const n = new Error(
        `Incorrect usage of "cherry-pick". Current branch (${l.records.currBranch})has no commits`
      );
      throw n.hash = {
        text: `cherryPick ${r} ${e}`,
        token: `cherryPick ${r} ${e}`,
        expected: ["cherry-pick abc"]
      }, n;
    }
    const g = l.records.commits.get(h);
    if (g === void 0 || !g) {
      const n = new Error(
        `Incorrect usage of "cherry-pick". Current branch (${l.records.currBranch})has no commits`
      );
      throw n.hash = {
        text: `cherryPick ${r} ${e}`,
        token: `cherryPick ${r} ${e}`,
        expected: ["cherry-pick abc"]
      }, n;
    }
    const b = {
      id: l.records.seq + "-" + Y(),
      message: `cherry-picked ${c == null ? void 0 : c.message} into ${l.records.currBranch}`,
      seq: l.records.seq++,
      parents: l.records.head == null ? [] : [l.records.head.id, c.id],
      branch: l.records.currBranch,
      type: k.CHERRY_PICK,
      tags: a ? a.filter(Boolean) : [
        `cherry-pick:${c.id}${c.type === k.MERGE ? `|parent:${i}` : ""}`
      ]
    };
    l.records.head = b, l.records.commits.set(b.id, b), l.records.branches.set(l.records.currBranch, b.id), C.debug(l.records.branches), C.debug("in cherryPick");
  }
}, "cherryPick"), ot = /* @__PURE__ */ $(function(t) {
  if (t = I.sanitizeText(t, H()), l.records.branches.has(t)) {
    l.records.currBranch = t;
    const r = l.records.branches.get(l.records.currBranch);
    r === void 0 || !r ? l.records.head = null : l.records.head = l.records.commits.get(r) ?? null;
  } else {
    const r = new Error(
      `Trying to checkout branch which is not yet created. (Help try using "branch ${t}")`
    );
    throw r.hash = {
      text: `checkout ${t}`,
      token: `checkout ${t}`,
      expected: [`branch ${t}`]
    }, r;
  }
}, "checkout");
function J(t, r, e) {
  const a = t.indexOf(r);
  a === -1 ? t.push(e) : t.splice(a, 1, e);
}
$(J, "upsert");
function Z(t) {
  const r = t.reduce((i, d) => i.seq > d.seq ? i : d, t[0]);
  let e = "";
  t.forEach(function(i) {
    i === r ? e += "	*" : e += "	|";
  });
  const a = [e, r.id, r.seq];
  for (const i in l.records.branches)
    l.records.branches.get(i) === r.id && a.push(i);
  if (C.debug(a.join(" ")), r.parents && r.parents.length == 2 && r.parents[0] && r.parents[1]) {
    const i = l.records.commits.get(r.parents[0]);
    J(t, r, i), r.parents[1] && t.push(l.records.commits.get(r.parents[1]));
  } else {
    if (r.parents.length == 0)
      return;
    if (r.parents[0]) {
      const i = l.records.commits.get(r.parents[0]);
      J(t, r, i);
    }
  }
  t = et(t, (i) => i.id), Z(t);
}
$(Z, "prettyPrintCommitHistory");
var Ot = /* @__PURE__ */ $(function() {
  C.debug(l.records.commits);
  const t = at()[0];
  Z([t]);
}, "prettyPrint"), Gt = /* @__PURE__ */ $(function() {
  l.reset(), wt();
}, "clear"), St = /* @__PURE__ */ $(function() {
  return [...l.records.branchConfig.values()].map((t, r) => t.order !== null && t.order !== void 0 ? t : {
    ...t,
    order: parseFloat(`0.${r}`)
  }).sort((t, r) => (t.order ?? 0) - (r.order ?? 0)).map(({ name: t }) => ({ name: t }));
}, "getBranchesAsObjArray"), Wt = /* @__PURE__ */ $(function() {
  return l.records.branches;
}, "getBranches"), _t = /* @__PURE__ */ $(function() {
  return l.records.commits;
}, "getCommits"), at = /* @__PURE__ */ $(function() {
  const t = [...l.records.commits.values()];
  return t.forEach(function(r) {
    C.debug(r.id);
  }), t.sort((r, e) => r.seq - e.seq), t;
}, "getCommitsArray"), Ht = /* @__PURE__ */ $(function() {
  return l.records.currBranch;
}, "getCurrentBranch"), qt = /* @__PURE__ */ $(function() {
  return l.records.direction;
}, "getDirection"), Dt = /* @__PURE__ */ $(function() {
  return l.records.head;
}, "getHead"), nt = {
  commitType: k,
  getConfig: H,
  setDirection: Tt,
  setOptions: Lt,
  getOptions: Mt,
  commit: It,
  branch: Rt,
  merge: Pt,
  cherryPick: At,
  checkout: ot,
  //reset,
  prettyPrint: Ot,
  clear: Gt,
  getBranchesAsObjArray: St,
  getBranches: Wt,
  getCommits: _t,
  getCommitsArray: at,
  getCurrentBranch: Ht,
  getDirection: qt,
  getHead: Dt,
  setAccTitle: yt,
  getAccTitle: pt,
  getAccDescription: ft,
  setAccDescription: gt,
  setDiagramTitle: mt,
  getDiagramTitle: $t
}, zt = /* @__PURE__ */ $((t, r) => {
  lt(t, r), t.dir && r.setDirection(t.dir);
  for (const e of t.statements)
    Ft(e, r);
}, "populate"), Ft = /* @__PURE__ */ $((t, r) => {
  const e = {
    Commit: /* @__PURE__ */ $((a) => r.commit(Nt(a)), "Commit"),
    Branch: /* @__PURE__ */ $((a) => r.branch(jt(a)), "Branch"),
    Merge: /* @__PURE__ */ $((a) => r.merge(Vt(a)), "Merge"),
    Checkout: /* @__PURE__ */ $((a) => r.checkout(Kt(a)), "Checkout"),
    CherryPicking: /* @__PURE__ */ $((a) => r.cherryPick(Yt(a)), "CherryPicking")
  }[t.$type];
  e ? e(t) : C.error(`Unknown statement type: ${t.$type}`);
}, "parseStatement"), Nt = /* @__PURE__ */ $((t) => ({
  id: t.id,
  msg: t.message ?? "",
  type: t.type !== void 0 ? k[t.type] : k.NORMAL,
  tags: t.tags ?? void 0
}), "parseCommit"), jt = /* @__PURE__ */ $((t) => ({
  name: t.name,
  order: t.order ?? 0
}), "parseBranch"), Vt = /* @__PURE__ */ $((t) => ({
  branch: t.branch,
  id: t.id ?? "",
  type: t.type !== void 0 ? k[t.type] : void 0,
  tags: t.tags ?? void 0
}), "parseMerge"), Kt = /* @__PURE__ */ $((t) => t.branch, "parseCheckout"), Yt = /* @__PURE__ */ $((t) => {
  var r;
  return {
    id: t.id,
    targetId: "",
    tags: ((r = t.tags) == null ? void 0 : r.length) === 0 ? void 0 : t.tags,
    parent: t.parent
  };
}, "parseCherryPicking"), Ut = {
  parse: /* @__PURE__ */ $(async (t) => {
    const r = await Ct("gitGraph", t);
    C.debug(r), zt(r, nt);
  }, "parse")
}, G = 10, S = 40, R = 4, A = 2, W = 8, U = /* @__PURE__ */ new Set(["redux", "redux-dark", "redux-color", "redux-dark-color"]), X = 12, tt = /* @__PURE__ */ new Set(["redux-color", "redux-dark-color"]), Jt = /* @__PURE__ */ new Set(["dark", "redux-dark", "redux-dark-color", "neo-dark"]), _ = /* @__PURE__ */ $((t, r, e = !1) => e && t > 0 ? (t - 1) % (r - 1) + 1 : t % r, "calcColorIndex"), L = /* @__PURE__ */ new Map(), M = /* @__PURE__ */ new Map(), V = 30, D = /* @__PURE__ */ new Map(), K = [], O = 0, y = "LR", Xt = /* @__PURE__ */ $(() => {
  L.clear(), M.clear(), D.clear(), O = 0, K = [], y = "LR";
}, "clear"), it = /* @__PURE__ */ $((t) => {
  const r = document.createElementNS("http://www.w3.org/2000/svg", "text");
  return (typeof t == "string" ? t.split(/\\n|\n|<br\s*\/?>/gi) : t).forEach((e) => {
    const a = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
    a.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"), a.setAttribute("dy", "1em"), a.setAttribute("x", "0"), a.setAttribute("class", "row"), a.textContent = e.trim(), r.appendChild(a);
  }), r;
}, "drawText"), st = /* @__PURE__ */ $((t) => {
  let r, e, a;
  return y === "BT" ? (e = /* @__PURE__ */ $((i, d) => i <= d, "comparisonFunc"), a = 1 / 0) : (e = /* @__PURE__ */ $((i, d) => i >= d, "comparisonFunc"), a = 0), t.forEach((i) => {
    var d, c;
    const s = y === "TB" || y == "BT" ? (d = M.get(i)) == null ? void 0 : d.y : (c = M.get(i)) == null ? void 0 : c.x;
    s !== void 0 && e(s, a) && (r = i, a = s);
  }), r;
}, "findClosestParent"), Qt = /* @__PURE__ */ $((t) => {
  let r = "", e = 1 / 0;
  return t.forEach((a) => {
    const i = M.get(a).y;
    i <= e && (r = a, e = i);
  }), r || void 0;
}, "findClosestParentBT"), Zt = /* @__PURE__ */ $((t, r, e) => {
  let a = e, i = e;
  const d = [];
  t.forEach((c) => {
    const s = r.get(c);
    if (!s)
      throw new Error(`Commit not found for key ${c}`);
    s.parents.length ? (a = rr(s), i = Math.max(a, i)) : d.push(s), er(s, a);
  }), a = i, d.forEach((c) => {
    or(c, a, e);
  }), t.forEach((c) => {
    const s = r.get(c);
    if (s != null && s.parents.length) {
      const h = Qt(s.parents);
      a = M.get(h).y - S, a <= i && (i = a);
      const g = L.get(s.branch).pos, b = a - G;
      M.set(s.id, { x: g, y: b });
    }
  });
}, "setParallelBTPos"), tr = /* @__PURE__ */ $((t) => {
  var r;
  const e = st(t.parents.filter((i) => i !== null));
  if (!e)
    throw new Error(`Closest parent not found for commit ${t.id}`);
  const a = (r = M.get(e)) == null ? void 0 : r.y;
  if (a === void 0)
    throw new Error(`Closest parent position not found for commit ${t.id}`);
  return a;
}, "findClosestParentPos"), rr = /* @__PURE__ */ $((t) => tr(t) + S, "calculateCommitPosition"), er = /* @__PURE__ */ $((t, r) => {
  const e = L.get(t.branch);
  if (!e)
    throw new Error(`Branch not found for commit ${t.id}`);
  const a = e.pos, i = r + G;
  return M.set(t.id, { x: a, y: i }), { x: a, y: i };
}, "setCommitPosition"), or = /* @__PURE__ */ $((t, r, e) => {
  const a = L.get(t.branch);
  if (!a)
    throw new Error(`Branch not found for commit ${t.id}`);
  const i = r + e, d = a.pos;
  M.set(t.id, { x: d, y: i });
}, "setRootPosition"), ar = /* @__PURE__ */ $((t, r, e, a, i, d) => {
  const { theme: c } = F(), s = U.has(c ?? ""), h = tt.has(c ?? ""), g = Jt.has(c ?? "");
  if (d === k.HIGHLIGHT)
    t.append("rect").attr("x", e.x - 10 + (s ? 3 : 0)).attr("y", e.y - 10 + (s ? 3 : 0)).attr("width", s ? 14 : 20).attr("height", s ? 14 : 20).attr(
      "class",
      `commit ${r.id} commit-highlight${_(i, W, h)} ${a}-outer`
    ), t.append("rect").attr("x", e.x - 6 + (s ? 2 : 0)).attr("y", e.y - 6 + (s ? 2 : 0)).attr("width", s ? 8 : 12).attr("height", s ? 8 : 12).attr(
      "class",
      `commit ${r.id} commit${_(i, W, h)} ${a}-inner`
    );
  else if (d === k.CHERRY_PICK)
    t.append("circle").attr("cx", e.x).attr("cy", e.y).attr("r", s ? 7 : 10).attr("class", `commit ${r.id} ${a}`), t.append("circle").attr("cx", e.x - 3).attr("cy", e.y + 2).attr("r", s ? 2.5 : 2.75).attr("fill", g ? "#000000" : "#fff").attr("class", `commit ${r.id} ${a}`), t.append("circle").attr("cx", e.x + 3).attr("cy", e.y + 2).attr("r", s ? 2.5 : 2.75).attr("fill", g ? "#000000" : "#fff").attr("class", `commit ${r.id} ${a}`), t.append("line").attr("x1", e.x + 3).attr("y1", e.y + 1).attr("x2", e.x).attr("y2", e.y - 5).attr("stroke", g ? "#000000" : "#fff").attr("class", `commit ${r.id} ${a}`), t.append("line").attr("x1", e.x - 3).attr("y1", e.y + 1).attr("x2", e.x).attr("y2", e.y - 5).attr("stroke", g ? "#000000" : "#fff").attr("class", `commit ${r.id} ${a}`);
  else {
    const b = t.append("circle");
    if (b.attr("cx", e.x), b.attr("cy", e.y), b.attr("r", s ? 7 : 10), b.attr(
      "class",
      `commit ${r.id} commit${_(i, W, h)}`
    ), d === k.MERGE) {
      const n = t.append("circle");
      n.attr("cx", e.x), n.attr("cy", e.y), n.attr("r", s ? 5 : 6), n.attr(
        "class",
        `commit ${a} ${r.id} commit${_(i, W, h)}`
      );
    }
    if (d === k.REVERSE) {
      const n = t.append("path"), o = s ? 4 : 5;
      n.attr(
        "d",
        `M ${e.x - o},${e.y - o}L${e.x + o},${e.y + o}M${e.x - o},${e.y + o}L${e.x + o},${e.y - o}`
      ).attr(
        "class",
        `commit ${a} ${r.id} commit${_(i, W, h)}`
      );
    }
  }
}, "drawCommitBullet"), nr = /* @__PURE__ */ $((t, r, e, a, i) => {
  var d;
  if (r.type !== k.CHERRY_PICK && (r.customId && r.type === k.MERGE || r.type !== k.MERGE) && i.showCommitLabel) {
    const c = t.append("g"), s = c.insert("rect").attr("class", "commit-label-bkg"), h = c.append("text").attr("x", a).attr("y", e.y + 25).attr("class", "commit-label").text(r.id), g = (d = h.node()) == null ? void 0 : d.getBBox();
    if (g && (s.attr("x", e.posWithOffset - g.width / 2 - A).attr("y", e.y + 13.5).attr("width", g.width + 2 * A).attr("height", g.height + 2 * A), y === "TB" || y === "BT" ? (s.attr("x", e.x - (g.width + 4 * R + 5)).attr("y", e.y - 12), h.attr("x", e.x - (g.width + 4 * R)).attr("y", e.y + g.height - 12)) : h.attr("x", e.posWithOffset - g.width / 2), i.rotateCommitLabel))
      if (y === "TB" || y === "BT")
        h.attr(
          "transform",
          "rotate(-45, " + e.x + ", " + e.y + ")"
        ), s.attr(
          "transform",
          "rotate(-45, " + e.x + ", " + e.y + ")"
        );
      else {
        const b = -7.5 - (g.width + 10) / 25 * 9.5, n = 10 + g.width / 25 * 8.5;
        c.attr(
          "transform",
          "translate(" + b + ", " + n + ") rotate(-45, " + a + ", " + e.y + ")"
        );
      }
  }
}, "drawCommitLabel"), ir = /* @__PURE__ */ $((t, r, e, a) => {
  var i;
  if (r.tags.length > 0) {
    let d = 0, c = 0, s = 0;
    const h = [];
    for (const g of r.tags.reverse()) {
      const b = t.insert("polygon"), n = t.append("circle"), o = t.append("text").attr("y", e.y - 16 - d).attr("class", "tag-label").text(g), x = (i = o.node()) == null ? void 0 : i.getBBox();
      if (!x)
        throw new Error("Tag bbox not found");
      c = Math.max(c, x.width), s = Math.max(s, x.height), o.attr("x", e.posWithOffset - x.width / 2), h.push({
        tag: o,
        hole: n,
        rect: b,
        yOffset: d
      }), d += 20;
    }
    for (const { tag: g, hole: b, rect: n, yOffset: o } of h) {
      const x = s / 2, p = e.y - 19.2 - o;
      if (n.attr("class", "tag-label-bkg").attr(
        "points",
        `
      ${a - c / 2 - R / 2},${p + A}  
      ${a - c / 2 - R / 2},${p - A}
      ${e.posWithOffset - c / 2 - R},${p - x - A}
      ${e.posWithOffset + c / 2 + R},${p - x - A}
      ${e.posWithOffset + c / 2 + R},${p + x + A}
      ${e.posWithOffset - c / 2 - R},${p + x + A}`
      ), b.attr("cy", p).attr("cx", a - c / 2 + R / 2).attr("r", 1.5).attr("class", "tag-hole"), y === "TB" || y === "BT") {
        const u = a + o;
        n.attr("class", "tag-label-bkg").attr(
          "points",
          `
        ${e.x},${u + 2}
        ${e.x},${u - 2}
        ${e.x + G},${u - x - 2}
        ${e.x + G + c + 4},${u - x - 2}
        ${e.x + G + c + 4},${u + x + 2}
        ${e.x + G},${u + x + 2}`
        ).attr("transform", "translate(12,12) rotate(45, " + e.x + "," + a + ")"), b.attr("cx", e.x + R / 2).attr("cy", u).attr("transform", "translate(12,12) rotate(45, " + e.x + "," + a + ")"), g.attr("x", e.x + 5).attr("y", u + 3).attr("transform", "translate(14,14) rotate(45, " + e.x + "," + a + ")");
      }
    }
  }
}, "drawCommitTags"), sr = /* @__PURE__ */ $((t) => {
  switch (t.customType ?? t.type) {
    case k.NORMAL:
      return "commit-normal";
    case k.REVERSE:
      return "commit-reverse";
    case k.HIGHLIGHT:
      return "commit-highlight";
    case k.MERGE:
      return "commit-merge";
    case k.CHERRY_PICK:
      return "commit-cherry-pick";
    default:
      return "commit-normal";
  }
}, "getCommitClassType"), cr = /* @__PURE__ */ $((t, r, e, a) => {
  const i = { x: 0, y: 0 };
  if (t.parents.length > 0) {
    const d = st(t.parents);
    if (d) {
      const c = a.get(d) ?? i;
      return r === "TB" ? c.y + S : r === "BT" ? (a.get(t.id) ?? i).y - S : c.x + S;
    }
  } else
    return r === "TB" ? V : r === "BT" ? (a.get(t.id) ?? i).y - S : 0;
  return 0;
}, "calculatePosition"), dr = /* @__PURE__ */ $((t, r, e) => {
  var a, i;
  const d = y === "BT" && e ? r : r + G, c = (a = L.get(t.branch)) == null ? void 0 : a.pos, s = y === "TB" || y === "BT" ? (i = L.get(t.branch)) == null ? void 0 : i.pos : d;
  if (s === void 0 || c === void 0)
    throw new Error(`Position were undefined for commit ${t.id}`);
  const h = U.has(F().theme ?? ""), g = y === "TB" || y === "BT" ? d : c + (h ? X / 2 + 1 : -2);
  return { x: s, y: g, posWithOffset: d };
}, "getCommitPosition"), rt = /* @__PURE__ */ $((t, r, e, a) => {
  const i = t.append("g").attr("class", "commit-bullets"), d = t.append("g").attr("class", "commit-labels");
  let c = y === "TB" || y === "BT" ? V : 0;
  const s = [...r.keys()], h = a.parallelCommits ?? !1, g = /* @__PURE__ */ $((n, o) => {
    var x, p;
    const u = (x = r.get(n)) == null ? void 0 : x.seq, m = (p = r.get(o)) == null ? void 0 : p.seq;
    return u !== void 0 && m !== void 0 ? u - m : 0;
  }, "sortKeys");
  let b = s.sort(g);
  y === "BT" && (h && Zt(b, r, c), b = b.reverse()), b.forEach((n) => {
    var o;
    const x = r.get(n);
    if (!x)
      throw new Error(`Commit not found for key ${n}`);
    h && (c = cr(x, y, c, M));
    const p = dr(x, c, h);
    if (e) {
      const u = sr(x), m = x.customType ?? x.type, f = ((o = L.get(x.branch)) == null ? void 0 : o.index) ?? 0;
      ar(i, x, p, u, f, m), nr(d, x, p, c, a), ir(d, x, p, c);
    }
    y === "TB" || y === "BT" ? M.set(x.id, { x: p.x, y: p.posWithOffset }) : M.set(x.id, { x: p.posWithOffset, y: p.y }), c = y === "BT" && h ? c + S : c + S + G, c > O && (O = c);
  });
}, "drawCommits"), lr = /* @__PURE__ */ $((t, r, e, a, i) => {
  const d = (y === "TB" || y === "BT" ? e.x < a.x : e.y < a.y) ? r.branch : t.branch, c = /* @__PURE__ */ $((h) => h.branch === d, "isOnBranchToGetCurve"), s = /* @__PURE__ */ $((h) => h.seq > t.seq && h.seq < r.seq, "isBetweenCommits");
  return [...i.values()].some((h) => s(h) && c(h));
}, "shouldRerouteArrow"), z = /* @__PURE__ */ $((t, r, e = 0) => {
  const a = t + Math.abs(t - r) / 2;
  if (e > 5)
    return a;
  if (K.every((d) => Math.abs(d - a) >= 10))
    return K.push(a), a;
  const i = Math.abs(t - r);
  return z(t, r - i / 5, e + 1);
}, "findLane"), hr = /* @__PURE__ */ $((t, r, e, a) => {
  var i, d, c, s, h;
  const { theme: g } = F(), b = tt.has(g ?? ""), n = M.get(r.id), o = M.get(e.id);
  if (n === void 0 || o === void 0)
    throw new Error(`Commit positions not found for commits ${r.id} and ${e.id}`);
  const x = lr(r, e, n, o, a);
  let p = "", u = "", m = 0, f = 0, E = (i = L.get(e.branch)) == null ? void 0 : i.index;
  e.type === k.MERGE && r.id !== e.parents[0] && (E = (d = L.get(r.branch)) == null ? void 0 : d.index);
  let w;
  if (x) {
    p = "A 10 10, 0, 0, 0,", u = "A 10 10, 0, 0, 1,", m = 10, f = 10;
    const T = n.y < o.y ? z(n.y, o.y) : z(o.y, n.y), B = n.x < o.x ? z(n.x, o.x) : z(o.x, n.x);
    y === "TB" ? n.x < o.x ? w = `M ${n.x} ${n.y} L ${B - m} ${n.y} ${u} ${B} ${n.y + f} L ${B} ${o.y - m} ${p} ${B + f} ${o.y} L ${o.x} ${o.y}` : (E = (c = L.get(r.branch)) == null ? void 0 : c.index, w = `M ${n.x} ${n.y} L ${B + m} ${n.y} ${p} ${B} ${n.y + f} L ${B} ${o.y - m} ${u} ${B - f} ${o.y} L ${o.x} ${o.y}`) : y === "BT" ? n.x < o.x ? w = `M ${n.x} ${n.y} L ${B - m} ${n.y} ${p} ${B} ${n.y - f} L ${B} ${o.y + m} ${u} ${B + f} ${o.y} L ${o.x} ${o.y}` : (E = (s = L.get(r.branch)) == null ? void 0 : s.index, w = `M ${n.x} ${n.y} L ${B + m} ${n.y} ${u} ${B} ${n.y - f} L ${B} ${o.y + m} ${p} ${B - f} ${o.y} L ${o.x} ${o.y}`) : n.y < o.y ? w = `M ${n.x} ${n.y} L ${n.x} ${T - m} ${p} ${n.x + f} ${T} L ${o.x - m} ${T} ${u} ${o.x} ${T + f} L ${o.x} ${o.y}` : (E = (h = L.get(r.branch)) == null ? void 0 : h.index, w = `M ${n.x} ${n.y} L ${n.x} ${T + m} ${u} ${n.x + f} ${T} L ${o.x - m} ${T} ${p} ${o.x} ${T - f} L ${o.x} ${o.y}`);
  } else
    p = "A 20 20, 0, 0, 0,", u = "A 20 20, 0, 0, 1,", m = 20, f = 20, y === "TB" ? (n.x < o.x && (e.type === k.MERGE && r.id !== e.parents[0] ? w = `M ${n.x} ${n.y} L ${n.x} ${o.y - m} ${p} ${n.x + f} ${o.y} L ${o.x} ${o.y}` : w = `M ${n.x} ${n.y} L ${o.x - m} ${n.y} ${u} ${o.x} ${n.y + f} L ${o.x} ${o.y}`), n.x > o.x && (p = "A 20 20, 0, 0, 0,", u = "A 20 20, 0, 0, 1,", m = 20, f = 20, e.type === k.MERGE && r.id !== e.parents[0] ? w = `M ${n.x} ${n.y} L ${n.x} ${o.y - m} ${u} ${n.x - f} ${o.y} L ${o.x} ${o.y}` : w = `M ${n.x} ${n.y} L ${o.x + m} ${n.y} ${p} ${o.x} ${n.y + f} L ${o.x} ${o.y}`), n.x === o.x && (w = `M ${n.x} ${n.y} L ${o.x} ${o.y}`)) : y === "BT" ? (n.x < o.x && (e.type === k.MERGE && r.id !== e.parents[0] ? w = `M ${n.x} ${n.y} L ${n.x} ${o.y + m} ${u} ${n.x + f} ${o.y} L ${o.x} ${o.y}` : w = `M ${n.x} ${n.y} L ${o.x - m} ${n.y} ${p} ${o.x} ${n.y - f} L ${o.x} ${o.y}`), n.x > o.x && (p = "A 20 20, 0, 0, 0,", u = "A 20 20, 0, 0, 1,", m = 20, f = 20, e.type === k.MERGE && r.id !== e.parents[0] ? w = `M ${n.x} ${n.y} L ${n.x} ${o.y + m} ${p} ${n.x - f} ${o.y} L ${o.x} ${o.y}` : w = `M ${n.x} ${n.y} L ${o.x + m} ${n.y} ${u} ${o.x} ${n.y - f} L ${o.x} ${o.y}`), n.x === o.x && (w = `M ${n.x} ${n.y} L ${o.x} ${o.y}`)) : (n.y < o.y && (e.type === k.MERGE && r.id !== e.parents[0] ? w = `M ${n.x} ${n.y} L ${o.x - m} ${n.y} ${u} ${o.x} ${n.y + f} L ${o.x} ${o.y}` : w = `M ${n.x} ${n.y} L ${n.x} ${o.y - m} ${p} ${n.x + f} ${o.y} L ${o.x} ${o.y}`), n.y > o.y && (e.type === k.MERGE && r.id !== e.parents[0] ? w = `M ${n.x} ${n.y} L ${o.x - m} ${n.y} ${p} ${o.x} ${n.y - f} L ${o.x} ${o.y}` : w = `M ${n.x} ${n.y} L ${n.x} ${o.y + m} ${u} ${n.x + f} ${o.y} L ${o.x} ${o.y}`), n.y === o.y && (w = `M ${n.x} ${n.y} L ${o.x} ${o.y}`));
  if (w === void 0)
    throw new Error("Line definition not found");
  t.append("path").attr("d", w).attr(
    "class",
    "arrow arrow" + _(E, W, b)
  );
}, "drawArrow"), $r = /* @__PURE__ */ $((t, r) => {
  const e = t.append("g").attr("class", "commit-arrows");
  [...r.keys()].forEach((a) => {
    const i = r.get(a);
    i.parents && i.parents.length > 0 && i.parents.forEach((d) => {
      hr(e, r.get(d), i, r);
    });
  });
}, "drawArrows"), mr = /* @__PURE__ */ $((t, r, e, a) => {
  const { look: i, theme: d, themeVariables: c } = F(), { dropShadow: s, THEME_COLOR_LIMIT: h } = c, g = U.has(d ?? ""), b = tt.has(d ?? ""), n = t.append("g");
  r.forEach((o, x) => {
    var p;
    const u = _(
      x,
      g ? h : W,
      b
    ), m = (p = L.get(o.name)) == null ? void 0 : p.pos;
    if (m === void 0)
      throw new Error(`Position not found for branch ${o.name}`);
    const f = y === "TB" || y === "BT" ? m : g ? m + X / 2 + 1 : m - 2, E = n.append("line");
    E.attr("x1", 0), E.attr("y1", f), E.attr("x2", O), E.attr("y2", f), E.attr("class", "branch branch" + u), y === "TB" ? (E.attr("y1", V), E.attr("x1", m), E.attr("y2", O), E.attr("x2", m)) : y === "BT" && (E.attr("y1", O), E.attr("x1", m), E.attr("y2", V), E.attr("x2", m)), K.push(f);
    const w = o.name, T = it(w), B = n.insert("rect"), P = n.insert("g").attr("class", "branchLabel").insert("g").attr("class", "label branch-label" + u);
    P.node().appendChild(T);
    const v = T.getBBox(), N = g ? 0 : 4, j = g ? 16 : 0, q = g ? X : 0;
    i === "neo" && B.attr("data-look", "neo"), B.attr("class", "branchLabelBkg label" + u).attr(
      "style",
      i === "neo" ? `filter:${g ? `url(#${a}-drop-shadow)` : s}` : ""
    ).attr("rx", N).attr("ry", N).attr("x", -v.width - 4 - (e.rotateCommitLabel === !0 ? 30 : 0)).attr("y", -v.height / 2 + 10).attr("width", v.width + 18 + j).attr("height", v.height + 4 + q), P.attr(
      "transform",
      "translate(" + (-v.width - 14 - (e.rotateCommitLabel === !0 ? 30 : 0) + j / 2) + ", " + (f - v.height / 2 - 2) + ")"
    ), y === "TB" ? (B.attr("x", m - v.width / 2 - 10).attr("y", 0), P.attr("transform", "translate(" + (m - v.width / 2 - 5) + ", 0)"), g && (B.attr("transform", `translate(${-j / 2 - 3}, ${-q - 10})`), P.attr(
      "transform",
      "translate(" + (m - v.width / 2 - 5) + ", " + (-q * 2 + 7) + ")"
    ))) : y === "BT" ? (B.attr("x", m - v.width / 2 - 10).attr("y", O), P.attr("transform", "translate(" + (m - v.width / 2 - 5) + ", " + O + ")"), g && (B.attr("transform", `translate(${-j / 2 - 3}, ${q + 10})`), P.attr(
      "transform",
      "translate(" + (m - v.width / 2 - 5) + ", " + (O + q * 2 + 4) + ")"
    ))) : B.attr("transform", "translate(-19, " + (f - 12 - q / 2) + ")");
  });
}, "drawBranches"), gr = /* @__PURE__ */ $(function(t, r, e, a, i) {
  return L.set(t, { pos: r, index: e }), r += 50 + (i ? 40 : 0) + (y === "TB" || y === "BT" ? a.width / 2 : 0), r;
}, "setBranchPosition"), fr = /* @__PURE__ */ $(function(t, r, e, a) {
  Xt(), C.debug("in gitgraph renderer", t + `
`, "id:", r, e);
  const i = a.db;
  if (!i.getConfig) {
    C.error("getConfig method is not available on db");
    return;
  }
  const d = i.getConfig(), c = d.rotateCommitLabel ?? !1;
  D = i.getCommits();
  const s = i.getBranchesAsObjArray();
  y = i.getDirection();
  const h = ut(`[id="${r}"]`), { look: g, theme: b, themeVariables: n } = F(), { useGradient: o, gradientStart: x, gradientStop: p, filterColor: u } = n;
  if (o) {
    const f = h.append("defs").append("linearGradient").attr("id", r + "-gradient").attr("gradientUnits", "objectBoundingBox").attr("x1", "0%").attr("y1", "0%").attr("x2", "100%").attr("y2", "0%");
    f.append("stop").attr("offset", "0%").attr("stop-color", x).attr("stop-opacity", 1), f.append("stop").attr("offset", "100%").attr("stop-color", p).attr("stop-opacity", 1);
  }
  g === "neo" && U.has(b ?? "") && h.append("defs").append("filter").attr("id", r + "-drop-shadow").attr("height", "130%").attr("width", "130%").append("feDropShadow").attr("dx", "4").attr("dy", "4").attr("stdDeviation", 0).attr("flood-opacity", "0.06").attr("flood-color", u);
  let m = 0;
  s.forEach((f, E) => {
    var w;
    const T = it(f.name), B = h.append("g"), P = B.insert("g").attr("class", "branchLabel"), v = P.insert("g").attr("class", "label branch-label");
    (w = v.node()) == null || w.appendChild(T);
    const N = T.getBBox();
    m = gr(f.name, m, E, N, c), v.remove(), P.remove(), B.remove();
  }), rt(h, D, !1, d), d.showBranches && mr(h, s, d, r), $r(h, D), rt(h, D, !0, d), xt.insertTitle(
    h,
    "gitTitleText",
    d.titleTopMargin ?? 0,
    i.getDiagramTitle()
  ), bt(void 0, h, d.diagramPadding, d.useMaxWidth);
}, "draw"), pr = {
  draw: fr
}, ct = 8, dt = /* @__PURE__ */ new Set(["redux", "redux-dark", "redux-color", "redux-dark-color"]), yr = /* @__PURE__ */ new Set(["redux-color", "redux-dark-color"]), ur = /* @__PURE__ */ new Set(["neo", "neo-dark"]), xr = /* @__PURE__ */ new Set(["dark", "redux-dark", "redux-dark-color", "neo-dark"]), br = /* @__PURE__ */ new Set([
  "redux",
  "redux-dark",
  "redux-color",
  "redux-dark-color",
  "neo",
  "neo-dark"
]), wr = /* @__PURE__ */ $((t) => {
  const { svgId: r } = t;
  let e = "";
  if (t.useGradient && r)
    for (let a = 0; a < t.THEME_COLOR_LIMIT; a++)
      e += `
      .label${a}  { fill: ${t.mainBkg}; stroke: url(${r}-gradient); stroke-width: ${t.strokeWidth};}
             `;
  return e;
}, "genGitGraphGradient"), kr = /* @__PURE__ */ $((t) => {
  const r = Q(), { theme: e, themeVariables: a } = r, { borderColorArray: i } = a, d = dt.has(e);
  if (ur.has(e)) {
    let c = "";
    for (let s = 0; s < t.THEME_COLOR_LIMIT; s++)
      if (s === 0)
        c += `
        .branch-label${s} { fill: ${t.nodeBorder};}
        .commit${s} { stroke: ${t.nodeBorder};   }
        .commit-highlight${s} { stroke: ${t.nodeBorder}; fill: ${t.nodeBorder}; }
        .arrow${s} { stroke: ${t.nodeBorder}; }
        .commit-bullets { fill: ${t.nodeBorder}; }
        .commit-cherry-pick${s} { stroke: ${t.nodeBorder}; }
        ${wr(t)}`;
      else {
        const h = s % ct;
        c += `
        .branch-label${s} { fill: ${t["gitBranchLabel" + h]}; }
        .commit${s} { stroke: ${t["git" + h]}; fill: ${t["git" + h]}; }
        .commit-highlight${s} { stroke: ${t["gitInv" + h]}; fill: ${t["gitInv" + h]}; }
        .arrow${s} { stroke: ${t["git" + h]}; }
        `;
      }
    return c;
  } else if (yr.has(e)) {
    let c = "";
    for (let s = 0; s < t.THEME_COLOR_LIMIT; s++)
      if (s === 0)
        c += `
        .branch-label${s} { fill: ${t.nodeBorder}; ${d ? `font-weight:${t.noteFontWeight}` : ""} }
        .commit${s} { stroke: ${t.nodeBorder}; }
        .commit-highlight${s} { stroke: ${t.nodeBorder}; fill: ${t.mainBkg}; }
        .label${s}  { fill: ${t.mainBkg}; stroke: ${t.nodeBorder}; stroke-width: ${t.strokeWidth}; ${d ? `font-weight:${t.noteFontWeight}` : ""} }
        .arrow${s} { stroke: ${t.nodeBorder}; }
        .commit-bullets { fill: ${t.nodeBorder}; }
        `;
      else {
        const h = s % i.length;
        c += `
        .branch-label${s} { fill: ${t.nodeBorder}; ${d ? `font-weight:${t.noteFontWeight}` : ""} }
        .commit${s} { stroke: ${i[h]}; fill: ${i[h]}; }
        .commit-highlight${s} { stroke: ${i[h]}; fill: ${i[h]}; }
        .label${s}  { fill: ${xr.has(e) ? t.mainBkg : i[h]}; stroke: ${i[h]};  stroke-width: ${t.strokeWidth}; }
        .arrow${s} { stroke: ${i[h]}; }
        `;
      }
    return c;
  } else {
    let c = "";
    for (let s = 0; s < t.THEME_COLOR_LIMIT; s++)
      c += `
        .branch-label${s} { fill: ${t.nodeBorder}; ${d ? `font-weight:${t.noteFontWeight}` : ""} }
        .commit${s} { stroke: ${t.nodeBorder};   }
        .commit-highlight${s} { stroke: ${t.nodeBorder}; fill: ${t.nodeBorder}; }
        .label${s}  { fill: ${t.mainBkg}; stroke: ${t.nodeBorder}; stroke-width: ${t.strokeWidth}; ${d ? `font-weight:${t.noteFontWeight}` : ""}}
        .arrow${s} { stroke: ${t.nodeBorder}; }
        .commit-bullets { fill: ${t.nodeBorder}; }
        .commit-cherry-pick${s} { stroke: ${t.nodeBorder}; }
        `;
    return c;
  }
}, "genColor"), Br = /* @__PURE__ */ $((t) => `${Array.from({ length: t.THEME_COLOR_LIMIT }, (r, e) => e).map((r) => {
  const e = r % ct;
  return `
        .branch-label${r} { fill: ${t["gitBranchLabel" + e]}; }
        .commit${r} { stroke: ${t["git" + e]}; fill: ${t["git" + e]}; }
        .commit-highlight${r} { stroke: ${t["gitInv" + e]}; fill: ${t["gitInv" + e]}; }
        .label${r}  { fill: ${t["git" + e]}; }
        .arrow${r} { stroke: ${t["git" + e]}; }
        `;
}).join(`
`)}`, "normalTheme"), Er = /* @__PURE__ */ $((t) => {
  const r = Q(), { theme: e } = r, a = br.has(e);
  return `
  .commit-id,
  .commit-msg,
  .branch-label {
    fill: lightgrey;
    color: lightgrey;
    font-family: 'trebuchet ms', verdana, arial, sans-serif;
    font-family: var(--mermaid-font-family);
  }
  
  ${a ? kr(t) : Br(t)}

  .branch {
    stroke-width: ${t.strokeWidth};
    stroke: ${t.commitLineColor ?? t.lineColor};
    stroke-dasharray:  ${a ? "4 2" : "2"};
  }
  .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${a ? t.nodeBorder : t.commitLabelColor}; ${a ? `font-weight:${t.noteFontWeight};` : ""}}
  .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${a ? "transparent" : t.commitLabelBackground}; opacity: ${a ? "" : 0.5};  }
  .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};}
  .tag-label-bkg { fill: ${a ? t.mainBkg : t.tagLabelBackground}; stroke: ${a ? t.nodeBorder : t.tagLabelBorder}; ${a ? `filter:${t.dropShadow}` : ""}  }
  .tag-hole { fill: ${t.textColor}; }

  .commit-merge {
    stroke: ${a ? t.mainBkg : t.primaryColor};
    fill: ${a ? t.mainBkg : t.primaryColor};
  }
  .commit-reverse {
    stroke: ${a ? t.mainBkg : t.primaryColor};
    fill: ${a ? t.mainBkg : t.primaryColor};
    stroke-width: ${a ? t.strokeWidth : 3};
  }
  .commit-highlight-outer {
  }
  .commit-highlight-inner {
    stroke: ${a ? t.mainBkg : t.primaryColor};
    fill: ${a ? t.mainBkg : t.primaryColor};
  }

  .arrow {
    /* Intentional: neo themes keep the bold 8px arrow (like classic themes); only redux-geometry themes use the thinner options.strokeWidth. */
    stroke-width: ${dt.has(e) ? t.strokeWidth : 8};
    stroke-linecap: round;
    fill: none
  }
  .gitTitleText {
    text-anchor: middle;
    font-size: 18px;
    fill: ${t.textColor};
  }
`;
}, "getStyles"), Cr = Er, Ir = {
  parser: Ut,
  db: nt,
  renderer: pr,
  styles: Cr
};
export {
  Ir as diagram
};
