prreviewbuddy 0.18.0 → 0.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.18.1
4
+
5
+ *The review ID, where you would look for it.*
6
+
7
+ **Every review page now offers its own ID.** The `...` menu in the workspace header copies the ID of
8
+ the review you are reading, which is the identifier `prreviewbuddy review --review <review>
9
+ --delete` takes. It was previously only on the reviews index, so the one page devoted to a single
10
+ review was the only place that could not tell you which review it was.
11
+
12
+ **A card that holds several reviews offers one too.** It used to offer none, on the grounds that
13
+ such a card stands for the branch rather than any one review. That is right about deleting and wrong
14
+ about copying: there is always a latest review, so there is always exactly one ID the card can mean,
15
+ and the item now says so. Older reviews keep their own IDs on their own rows.
16
+
17
+ **The `...` is always visible.** It was revealed on hover, copied from the pin beside it, and that
18
+ was fine while it was decorative. It holds copy and delete, so it is a control, and a control you
19
+ find by sweeping the mouse across a card is one most people never find.
20
+
21
+
3
22
  ## 0.18.0
4
23
 
5
24
  *A pull request is compared against its own base, or not at all.*
package/dist/server.js CHANGED
@@ -2603,11 +2603,36 @@ function renderHeader(view, freshness) {
2603
2603
  return `<button type="button" class="prb-fresh-check" data-fresh-check data-state="${state}" aria-expanded="false" title="How this review stands against the branch as it is now">${escapeHtml(label)}</button>`;
2604
2604
  })() : ""}
2605
2605
  ${view.token ? `<button type="button" class="prb-complete" data-complete aria-pressed="${view.complete === true}">${view.complete ? "Reviewed" : "Mark review complete"}</button>` : ""}
2606
+ ${view.id ? renderIdMenu(view.id) : ""}
2606
2607
  <button type="button" class="prb-ask-toggle" data-ask-toggle aria-expanded="false">Buddy AI</button>
2607
2608
  </div>
2608
2609
  </header>`;
2609
2610
  }
2610
2611
  /**
2612
+ * This review's ID, where somebody looking at this review would think to find it.
2613
+ *
2614
+ * In the header because the header answers "what am I looking at", and an ID is the most literal
2615
+ * possible answer to that: it is the name `prreviewbuddy review --review <review> --delete` takes.
2616
+ * It was on the index only, so the one page devoted to a single review was the only place that
2617
+ * could not tell you which review it was, and the help text's advice amounted to reading it out of
2618
+ * the address bar.
2619
+ *
2620
+ * The same `...` and the same menu markup as the index, deliberately. One gesture, in both places
2621
+ * it can be wanted, behaving identically. Copy alone and no delete: removing the review you are
2622
+ * currently reading is a different act needing somewhere to send you afterwards, and the list is
2623
+ * one click away in the rail.
2624
+ */
2625
+ function renderIdMenu(id) {
2626
+ return `<div class="prb-menu" data-menu>
2627
+ <button type="button" class="prb-menu-trigger" data-menu-trigger aria-expanded="false" aria-haspopup="true" aria-label="Actions for this review">&#8943;</button>
2628
+ <div class="prb-menu-panel" data-menu-panel hidden>
2629
+ <div data-menu-items>
2630
+ <button type="button" class="prb-menu-item" data-copy-id="${escapeHtml(id)}">Copy review ID</button>
2631
+ </div>
2632
+ </div>
2633
+ </div>`;
2634
+ }
2635
+ /**
2611
2636
  * Everything below the review: where else to go, and what to do to the server.
2612
2637
  *
2613
2638
  * These are in the rail rather than the header because they are not about this review. The header
@@ -3121,11 +3146,17 @@ function renderCard(group, now) {
3121
3146
  /**
3122
3147
  * The card's own menu, which acts on everything the card is showing.
3123
3148
  *
3124
- * A card is a lineage, and how many analyses are folded into it changes what it *is*. One review
3125
- * and the card is that review, so the menu offers its ID and deletes it. Several, and the card is a
3126
- * history: deleting it means all of them, the count and the ref both said out loud because somebody
3127
- * looking at cards for `feat/foo` and `origin/feat/foo` has nothing else to tell them apart. There
3128
- * is no ID to copy in that case, because there is no one review the card means.
3149
+ * A card is a lineage, and how many analyses are folded into it changes what *deleting* it means.
3150
+ * One review and the card is that review. Several and the card is a history, so deleting means all
3151
+ * of them, with the count and the ref said out loud because somebody looking at cards for
3152
+ * `feat/foo` and `origin/feat/foo` has nothing else to tell them apart.
3153
+ *
3154
+ * Copying an ID is not scoped that way and used to be, which made it hard to find for no reason.
3155
+ * A card always has a latest review, so there is always exactly one ID a reader could mean, and the
3156
+ * label says which on a card that holds several. The old rule dropped the item entirely there, so
3157
+ * the identifier the delete command *requires* was reachable only by opening the history disclosure
3158
+ * and using a row menu, on precisely the cards with the most reviews to tell apart. That was the
3159
+ * delete scoping rule applied to an item that never needed it.
3129
3160
  *
3130
3161
  * The rows underneath carry the per-review menus, and they only exist once there is more than one.
3131
3162
  */
@@ -3137,7 +3168,7 @@ function renderCardMenu(group, followed) {
3137
3168
  label: `Actions for ${followed}`,
3138
3169
  action: "Delete review",
3139
3170
  question: "Delete this review?",
3140
- copy: true
3171
+ copy: "Copy review ID"
3141
3172
  });
3142
3173
  const all = `all ${count} reviews following ${followed}`;
3143
3174
  return renderMenu({
@@ -3146,7 +3177,7 @@ function renderCardMenu(group, followed) {
3146
3177
  label: `Actions for ${followed}`,
3147
3178
  action: `Delete ${all}`,
3148
3179
  question: `Delete ${all}?`,
3149
- copy: false
3180
+ copy: "Copy latest review ID"
3150
3181
  });
3151
3182
  }
3152
3183
  /**
@@ -3168,7 +3199,7 @@ function renderMenu(item) {
3168
3199
  <button type="button" class="prb-menu-trigger" data-menu-trigger aria-expanded="false" aria-haspopup="true" aria-label="${escapeHtml(item.label)}">&#8943;</button>
3169
3200
  <div class="prb-menu-panel" data-menu-panel hidden>
3170
3201
  <div data-menu-items>
3171
- ${item.copy ? `<button type="button" class="prb-menu-item" data-copy-id="${id}">Copy review ID</button>` : ""}
3202
+ <button type="button" class="prb-menu-item" data-copy-id="${id}">${escapeHtml(item.copy)}</button>
3172
3203
  <button type="button" class="prb-menu-item prb-menu-item-danger" data-delete="${id}" data-scope="${item.scope}">${escapeHtml(item.action)}</button>
3173
3204
  </div>
3174
3205
  <div class="prb-menu-confirm" data-menu-confirm hidden>
@@ -3229,7 +3260,7 @@ function renderHistoryRow(review, number, latest, now) {
3229
3260
  label: `Actions for review ${number}`,
3230
3261
  action: "Delete review",
3231
3262
  question: `Delete review ${number}?`,
3232
- copy: true
3263
+ copy: "Copy review ID"
3233
3264
  })}
3234
3265
  <a href="${escapeHtml(href)}">
3235
3266
  <span class="prb-card-history-name">Review ${number} ${latest ? "<span class=\"prb-card-history-latest\">Latest</span>" : "<span class=\"prb-card-history-previous\">Previous</span>"}</span>
@@ -4196,6 +4227,7 @@ async function sendHtml(res, workspace) {
4196
4227
  changeSet: workspace.changeSet,
4197
4228
  audit: workspace.audit,
4198
4229
  apiBase: `/api/${workspace.id}`,
4230
+ id: workspace.id,
4199
4231
  token: workspace.token,
4200
4232
  editor: editorChoice(),
4201
4233
  repoPath: workspace.repoPath,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prreviewbuddy",
3
- "version": "0.18.0",
3
+ "version": "0.18.1",
4
4
  "description": "PR Review Buddy at the command line: review a branch in an isolated checkout and open the workspace.",
5
5
  "license": "UNLICENSED",
6
6
  "homepage": "https://prreviewbuddy.com",
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["chunk-BoTbRR8S.js","chunk-CQfKfv79.js","chunk-DsF7k-Jl.js","chunk-CeiETtR3.js","workspace.js","chunk-DqZGGQx6.js","chunk-CZus5tIC.js","chunk-LHD4D-55.js","chunk-DmHr41SG.js","chunk-oZJp8_Oh.js","chunk-Bd8oAEBF.js","chunk-Dy-Kn_BL.js","chunk-7inUl5Il.js","chunk-DEKSwylx.js","chunk-MLIlWKCY.js","chunk-fybaL0A-.js","chunk-BifhSqXX.js","chunk-DS17s2tU.js","chunk-BvO9qrHb.js","chunk-B0xoFuVi.js","chunk-pzXl7dPH.js","chunk-Bdvr7G0w.js","chunk-CGd-uY3x.js","chunk-CmOPaNov.js","chunk-Cp5EDur4.js","chunk-DfMSIask.js","chunk-C26MXXwi.js","chunk-DlMt7LBR.js","chunk-Bs98n_vr.js","chunk-BqFMUyVw.js","chunk-CiB0fz5M.js","chunk-Wi1hfKnY.js","chunk-CoIQ0XcM.js","chunk-DQT7Z75O.js","chunk-dQvmgBo8.js","chunk-CU_yc7c0.js","chunk-DHwB1DNv.js","chunk-C6X32c5Y.js","chunk-DxSMoRAg.js","chunk-B8V5WPf1.js","chunk-BHBwEv5G.js","chunk-BFoDCU3G.js","chunk-C-OQMol4.js","chunk-BSUrFSfn.js","chunk-D289T3W2.js","chunk-CQhDWCuO.js","chunk-Crk3W7xi.js","chunk-IOULrYuo.js","chunk-D5VxBvZv.js","chunk-lpcXIlNC.js","chunk-D3k4QmBl.js","chunk-Dh6xxjov.js","chunk-D87EWWOh.js","chunk-BmkZxg03.js","chunk-H9AITnpH.js","chunk-CqbP8tav.js","chunk-Dk6P4vVY.js","chunk-BVm3MgB2.js","chunk-oxFaA6rD.js","chunk-DBVuY2lB.js","chunk-CNXFALfL.js","chunk-BokiwdgS.js","chunk-DlPtUH2x.js","chunk-DfcNMhQb.js","chunk-DtQPBrIL.js","chunk-ChQTsUB2.js","chunk-BxpAJfRF.js","chunk-Dex9JiR1.js","chunk-IsizPYbz.js","chunk-CUsQ7lH1.js","chunk-9-3VOpWX.js","chunk-nKL3T2Rn.js","chunk-Bk4d_k6M.js","chunk-DHkjHDYG.js","chunk-BVDh-dl-.js","chunk-BOfOlrLQ.js","chunk-CqMjOmHM.js","chunk-CMKpUUG0.js"])))=>i.map(i=>d[i]);
2
- import{h as e,m as t,p as n}from"./chunk-CQfKfv79.js";import{t as r}from"./workspace.js";import{n as i}from"./chunk-DsF7k-Jl.js";import{$ as a,C as o,E as s,I as c,L as l,N as u,P as d,Q as f,S as p,T as m,V as h,W as g,X as _,Z as v,_ as y,b,c as x,g as S,l as C,m as w,n as T,p as E,q as D,r as O,s as k,t as A,u as j,x as M}from"./chunk-CeiETtR3.js";import{S as N,a as ee,d as P,f as F,g as I,h as L,i as R,o as te,v as ne,x as re,y as ie}from"./chunk-DqZGGQx6.js";import{r as ae}from"./chunk-LHD4D-55.js";import{i as oe}from"./chunk-DmHr41SG.js";import"./chunk-oZJp8_Oh.js";import{a as se}from"./chunk-Bd8oAEBF.js";import{i as ce,n as le,r as ue,t as de}from"./chunk-7inUl5Il.js";import{a as fe,c as pe,i as z,l as B,n as me,r as he,s as ge,t as _e}from"./chunk-DEKSwylx.js";import{t as ve}from"./chunk-DS17s2tU.js";import{n as ye,t as be}from"./chunk-B0xoFuVi.js";var xe=i(e=>{let{securityLevel:t}=M(),r=n(`body`);if(t===`sandbox`){let t=n(`#i${e}`).node()?.contentDocument??document;r=n(t.body)}return r.select(`#${e}`)},`selectSvgElement`);function Se(e){let t=e?.constructor;return e===(typeof t==`function`?t.prototype:Object.prototype)}function Ce(e){if(e==null)return!0;if(re(e))return typeof e.splice!=`function`&&typeof e!=`string`&&!N(e)&&!ne(e)&&!ie(e)?!1:e.length===0;if(typeof e==`object`||typeof e==`function`){if(e instanceof Map||e instanceof Set)return e.size===0;let t=Object.keys(e);return Se(e)?t.filter(e=>e!==`constructor`).length===0:t.length===0}return!0}var we={common:k,getConfig:b,insertCluster:ye,insertEdge:z,insertEdgeLabel:fe,insertMarkers:ge,insertNode:ue,interpolateToCurve:P,labelHelper:se,log:t,positionEdgeLabel:pe},Te={},Ee=i(e=>{for(let t of e)Te[t.name]=t},`registerLayoutLoaders`);i(()=>{Ee([{name:`dagre`,loader:i(async()=>await r(()=>import(`./chunk-BoTbRR8S.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19])),`loader`)},{name:`swimlane`,loader:i(async()=>await r(()=>import(`./chunk-pzXl7dPH.js`),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,19])),`loader`)},{name:`cose-bilkent`,loader:i(async()=>await r(()=>import(`./chunk-Bdvr7G0w.js`),__vite__mapDeps([21,1,2,22])),`loader`)}])},`registerDefaultLayoutLoaders`)();var De=i(async(e,t)=>{if(!(e.layoutAlgorithm in Te))throw Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);if(e.diagramId)for(let t of e.nodes){let n=t.domId||t.id;t.domId=`${e.diagramId}-${n}`}let n=Te[e.layoutAlgorithm],r=await n.loader(),{theme:i,themeVariables:a}=e.config,{useGradient:o,gradientStart:s,gradientStop:c}=a,l=t.attr(`id`);if(t.append(`defs`).append(`filter`).attr(`id`,`${l}-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`,`${i?.includes(`dark`)?`#FFFFFF`:`#000000`}`),t.append(`defs`).append(`filter`).attr(`id`,`${l}-drop-shadow-small`).attr(`height`,`150%`).attr(`width`,`150%`).append(`feDropShadow`).attr(`dx`,`2`).attr(`dy`,`2`).attr(`stdDeviation`,0).attr(`flood-opacity`,`0.06`).attr(`flood-color`,`${i?.includes(`dark`)?`#FFFFFF`:`#000000`}`),o){let e=t.append(`linearGradient`).attr(`id`,t.attr(`id`)+`-gradient`).attr(`gradientUnits`,`objectBoundingBox`).attr(`x1`,`0%`).attr(`y1`,`0%`).attr(`x2`,`100%`).attr(`y2`,`0%`);e.append(`svg:stop`).attr(`offset`,`0%`).attr(`stop-color`,s).attr(`stop-opacity`,1),e.append(`svg:stop`).attr(`offset`,`100%`).attr(`stop-color`,c).attr(`stop-opacity`,1)}return r.render(e,t,we,{algorithm:n.algorithm})},`render`),Oe=i((e=``,{fallback:n=`dagre`}={})=>{if(e in Te)return e;if(n in Te)return t.warn(`Layout algorithm ${e} is not registered. Using ${n} as fallback.`),n;throw Error(`Both layout algorithms ${e} and ${n} are not registered.`)},`getRegisteredLayoutAlgorithm`);function ke(e,{edgePathsClass:t=`edges edgePaths`}={}){let n=e.insert(`g`).attr(`class`,`root`);return{clusters:n.insert(`g`).attr(`class`,`clusters`),edgePaths:n.insert(`g`).attr(`class`,t),edgeLabels:n.insert(`g`).attr(`class`,`edgeLabels`),nodes:n.insert(`g`).attr(`class`,`nodes`),rootGroups:n}}i(ke,`createLayoutElementGroups`);async function Ae(e,t){if(t.label){let{shapeSvg:n,bbox:r}=await se(e,t);t.labelBBox={width:r.width,height:r.height},n.remove()}else t.labelBBox={width:0,height:0}}i(Ae,`measureGroupLabel`);async function je(e,t,n){let r=await ue(e,t,n),i=r.node()?.getBBox()??{width:0,height:0};return t.width=i.width,t.height=i.height,r}i(je,`insertMeasuredNode`);async function Me(e,t){let n=new ve({multigraph:!0,compound:!0}),i=[...t.edges],a=M(),o=ke(e),{edgeLabels:s,nodes:c}=o,l=new Map,u=e.node()!=null;await Promise.all(t.nodes.map(async e=>{if(e.isGroup)u&&await Ae(c,e),n.setNode(e.id,{...e});else{if(u){let t=await je(c,e,{config:a,dir:e.dir});l.set(e.id,t)}n.setNode(e.id,{...e})}}));for(let e of i)u&&he(e)&&await fe(s,e),n.setEdge(e.start,e.end,{...e},e.id),t.edges.some(t=>t.id===e.id)||t.edges.push(e);if(globalThis.mermaidCaptureSizes){let{captureNodeSizes:n}=await r(async()=>{let{captureNodeSizes:e}=await import(`./chunk-CmOPaNov.js`);return{captureNodeSizes:e}},__vite__mapDeps([23,2]));n(e,t)}return{graph:n,groups:o,nodeElements:l}}i(Me,`createGraphWithElements`);var V=new Map,H=new Map,Ne=new Map,Pe=i(()=>{H.clear(),Ne.clear(),V.clear()},`clear`),Fe=i((e,n)=>{let r=H.get(n)||[];return t.trace(`In isDescendant`,n,` `,e,` = `,r.includes(e)),r.includes(e)},`isDescendant`),Ie=i((e,n)=>{let r=H.get(n)||[];return t.info(`Descendants of `,n,` is `,r),t.info(`Edge is `,e),e.v===n||e.w===n?!1:r?r.includes(e.v)||Fe(e.v,n)||Fe(e.w,n)||r.includes(e.w):(t.debug(`Tilt, `,n,`,not in descendants`),!1)},`edgeInCluster`),Le=i((e,n,r,i)=>{t.debug(`Copying children of `,e,`root`,i,`data`,n.node(e),i);let a=n.children(e)||[];e!==i&&a.push(e),t.debug(`Copying (nodes) clusterId`,e,`nodes`,a),a.forEach(a=>{if(n.children(a).length>0)Le(a,n,r,i);else{let o=n.node(a);t.info(`cp `,a,` to `,i,` with parent `,e),r.setNode(a,o),i!==n.parent(a)&&(t.debug(`Setting parent`,a,n.parent(a)),r.setParent(a,n.parent(a))),e!==i&&a!==e?(t.debug(`Setting parent`,a,e),r.setParent(a,e)):(t.info(`In copy `,e,`root`,i,`data`,n.node(e),i),t.debug(`Not Setting parent for node=`,a,`cluster!==rootId`,e!==i,`node!==clusterId`,a!==e));let s=n.edges(a);t.debug(`Copying Edges`,s),s.forEach(a=>{t.info(`Edge`,a);let o=n.edge(a.v,a.w,a.name);t.info(`Edge data`,o,i);try{Ie(a,i)?(t.info(`Copying as `,a.v,a.w,o,a.name),r.setEdge(a.v,a.w,o,a.name),t.info(`newGraph edges `,r.edges(),r.edge(r.edges()[0]))):t.info(`Skipping copy of edge `,a.v,`-->`,a.w,` rootId: `,i,` clusterId:`,e)}catch(e){t.error(e)}})}t.debug(`Removing node`,a),n.removeNode(a)})},`copy`),Re=i((e,t)=>{let n=t.children(e),r=[...n];for(let i of n)Ne.set(i,e),r=[...r,...Re(i,t)];return r},`extractDescendants`),ze=i((e,t,n)=>{let r=e.edges().filter(e=>e.v===t||e.w===t),i=e.edges().filter(e=>e.v===n||e.w===n),a=r.map(e=>({v:e.v===t?n:e.v,w:e.w===t?t:e.w})),o=i.map(e=>({v:e.v,w:e.w}));return a.filter(e=>o.some(t=>e.v===t.v&&e.w===t.w))},`findCommonEdges`),Be=i((e,n,r)=>{let i=n.children(e);if(t.trace(`Searching children of id `,e,i),i.length<1)return e;let a;for(let e of i){let t=Be(e,n,r),i=ze(n,r,t);if(t){if(i.length>0)a=t;else return t}}return a},`findNonClusterChild`),Ve=i(e=>!V.has(e)||!V.get(e).externalConnections?e:V.has(e)?V.get(e).id:e,`getAnchorId`),He=i((e,n)=>{if(!e||n>10){t.debug(`Opting out, no graph `);return}t.debug(`Opting in, graph `),e.nodes().forEach(function(n){e.children(n).length>0&&(t.debug(`Cluster identified`,n,` Replacement id in edges: `,Be(n,e,n)),H.set(n,Re(n,e)),V.set(n,{id:Be(n,e,n),clusterData:e.node(n)}))}),e.nodes().forEach(function(n){let r=e.children(n),i=e.edges();r.length>0?(t.debug(`Cluster identified`,n,H),i.forEach(e=>{Fe(e.v,n)^Fe(e.w,n)&&(t.debug(`Edge: `,e,` leaves cluster `,n),t.debug(`Descendants of XXX `,n,`: `,H.get(n)),V.get(n).externalConnections=!0)})):t.debug(`Not a cluster `,n,H)});for(let t of V.keys()){let n=V.get(t).id,r=e.parent(n);r!==t&&V.has(r)&&!V.get(r).externalConnections&&(V.get(t).id=r);let i=e.edges().some(e=>e.v===t);if(n&&V.get(t)?.externalConnections&&i&&Ke(e,n,t)){let r=qe(e,t,e.parent(n));r&&(V.get(t).id=r)}}e.edges().forEach(function(n){let r=e.edge(n);t.debug(`Edge `+n.v+` -> `+n.w+`: `+JSON.stringify(n)),t.debug(`Edge `+n.v+` -> `+n.w+`: `+JSON.stringify(e.edge(n)));let i=n.v,a=n.w;if(t.debug(`Fix XXX`,V,`ids:`,n.v,n.w,`Translating: `,V.get(n.v),` --- `,V.get(n.w)),V.get(n.v)||V.get(n.w)){if(t.debug(`Fixing and trying - removing XXX`,n.v,n.w,n.name),i=Ve(n.v),a=Ve(n.w),e.removeEdge(n.v,n.w,n.name),i!==n.v){let t=e.parent(i);V.get(t).externalConnections=!0,r.fromCluster=n.v}if(a!==n.w){let t=e.parent(a);V.get(t).externalConnections=!0,r.toCluster=n.w}t.debug(`Fix Replacing with XXX`,i,a,n.name),e.setEdge(i,a,r,n.name)}}),Ue(e,0),t.trace(V)},`adjustClustersAndEdges`),Ue=i((e,n)=>{if(n>10){t.error(`Bailing out`);return}let r=e.nodes(),i=!1;for(let t of r){let n=e.children(t);i||=n.length>0}if(!i){t.debug(`Done, no node has children`,e.nodes());return}t.debug(`Nodes = `,r,n);for(let i of r)if(t.debug(`Extracting node`,i,V,V.has(i)&&!V.get(i).externalConnections,!e.parent(i),e.node(i),e.children(`D`),` Depth `,n),!V.has(i))t.debug(`Not a cluster`,i,n);else if(!V.get(i).externalConnections&&e.children(i)&&e.children(i).length>0){t.debug(`Cluster without external connections, without a parent and with children`,i,n);let r=e.graph().rankdir===`TB`?`LR`:`TB`;V.get(i)?.clusterData?.dir&&(r=V.get(i).clusterData.dir,t.debug(`Fixing dir`,V.get(i).clusterData.dir,r));let a=new ve({multigraph:!0,compound:!0}).setGraph({rankdir:r,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});Le(i,e,a,i),e.setNode(i,{clusterNode:!0,id:i,clusterData:V.get(i).clusterData,label:V.get(i).label,graph:a})}else t.debug(`Cluster ** `,i,` **not meeting the criteria !externalConnections:`,!V.get(i).externalConnections,` no parent: `,!e.parent(i),` children `,e.children(i)&&e.children(i).length>0,e.children(`D`),n),t.debug(V);r=e.nodes(),t.debug(`New list of nodes`,r);for(let i of r){let r=e.node(i);t.debug(` Now next level`,i,r),r?.clusterNode&&Ue(r.graph,n+1)}},`extractor`),We=i((e,t)=>{if(t.length===0)return[];let n=Object.assign([],t);return t.forEach(t=>{let r=We(e,e.children(t));n=[...n,...r]}),n},`sorter`),Ge=i(e=>We(e,e.children()),`sortNodesByHierarchy`),Ke=i((e,t,n)=>{let r=e.parent(t);for(;r&&r!==n;){let t=V.get(r);if(t&&!t.externalConnections)return!0;r=e.parent(r)}return!1},`isNodeInExtractableCluster`),qe=i((e,t,n)=>{let r=e.children(t)??[];for(let i of r){if(i===n||Fe(i,n))continue;let r=Be(i,e,t);if(r&&!Ke(e,r,t))return r}return null},`findSafeAnchorNode`);function Je({prepareLayout:e,measureLayout:t,runLayoutCore:n,paintLayout:r,afterPaint:a,paintOptions:o}){let s=t??Xe;return i(async function(t,i,c,l){let u=i.select(`g`);(c?.insertMarkers??ge)(u,t.markers,t.type,t.diagramId),Ye();let d={element:u,helpers:c,options:l};d.preparedLayout=await e?.(t,d);let f=await s(t,d),p=await n(t,d),m={...d,measure:f};r?await r(t,m,p):await Ze(t,m,o),await a?.(t,m,p)},`render`)}i(Je,`createCommonLayoutRenderer`);function Ye(){de(),_e(),be(),Pe()}i(Ye,`clearLayoutRenderState`);async function Xe(e,{element:t}){return await Me(t,e)}i(Xe,`defaultMeasureLayout`);async function Ze(e,t,n={}){let{measure:r}=t,{groups:i}=r;for(let r of n.getNodes?.(e,t)??e.nodes)n.skipNode?.(r,t)||await Qe(i,r,t,n);let a=et(e.nodes);for(let r of e.edges)tt(r,n)||await nt(i,r,a,e,n,t)}i(Ze,`paintLayoutData`);async function Qe(e,t,n,r){t.clusterNode?ce(t):$e(t,n,r)?await ye(e.clusters,t):ce(t)}i(Qe,`paintLayoutNode`);function $e(e,t,n){return e.isGroup===!0&&(n.isCluster?.(e,t)??!0)}i($e,`shouldPaintAsCluster`);function et(e){let t=new Map;for(let n of e)n?.id&&t.set(n.id,n);return t}i(et,`buildNodeLookup`);function tt(e,t){return e.isLayoutOnly||!!t.skipEdge?.(e)}i(tt,`shouldSkipPaintEdge`);async function nt(e,t,n,r,i,a){let o=z(e.edgePaths,{...t},i.clusterDb??new Map,r.type,rt(t.start,t,n,a,i),rt(t.end,t,n,a,i),r.diagramId,it(t,i));he(t)&&(me.has(t.id)||await fe(e.edgeLabels,t),at(t,o))}i(nt,`paintLayoutEdge`);function rt(e,t,n,r,i){return i.getEdgeNode?.(e,t,r)??(e?n.get(e)??{}:{})}i(rt,`getRenderedNode`);function it(e,t){return typeof t.skipIntersect==`function`?t.skipIntersect(e):t.skipIntersect??!1}i(it,`shouldSkipIntersect`);function at(e,n){let r=n?.updatedPath??n?.originalPath,i=b(),{subGraphTitleTotalMargin:a}=le({flowchart:i.flowchart??{}});if(e.label){let i=me.get(e.id),o=e.x,s=e.y;if(r){let i=I.calcLabelPosition(r);t.debug(`Moving label `+e.label+` from (`,o,`,`,s,`) to (`,i.x,`,`,i.y,`) abc88`),n?.updatedPath&&(o=i.x,s=i.y)}i.attr(`transform`,`translate(${o}, ${s+a/2})`)}if(e?.startLabelLeft){let t=B.get(e.id).startLeft,n=e?.x,i=e?.y;if(r){let t=I.calcTerminalLabelPosition(e.arrowTypeStart?10:0,`start_left`,r);n=t.x,i=t.y}t.attr(`transform`,`translate(${n}, ${i})`)}if(e.startLabelRight){let t=B.get(e.id).startRight,n=e.x,i=e.y;if(r){let t=I.calcTerminalLabelPosition(e.arrowTypeStart?10:0,`start_right`,r);n=t.x,i=t.y}t.attr(`transform`,`translate(${n}, ${i})`)}if(e.endLabelLeft){let t=B.get(e.id).endLeft,n=e.x,i=e.y;if(r){let t=I.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,`end_left`,r);n=t.x,i=t.y}t.attr(`transform`,`translate(${n}, ${i})`)}if(e.endLabelRight){let t=B.get(e.id).endRight,n=e.x,i=e.y;if(r){let t=I.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,`end_right`,r);n=t.x,i=t.y}t.attr(`transform`,`translate(${n}, ${i})`)}}i(at,`positionRenderedEdgeLabel`);function ot(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}i(ot,`getDefaultExportFromCjs`);var U={},st={},W={},ct;function G(){if(ct)return W;ct=1;function e(e){return e==null}i(e,`isNothing`);function t(e){return typeof e==`object`&&!!e}i(t,`isObject`);function n(t){return Array.isArray(t)?t:e(t)?[]:[t]}i(n,`toArray`);function r(e,t){if(t){let n=Object.keys(t);for(let r=0,i=n.length;r<i;r+=1){let i=n[r];e[i]=t[i]}}return e}i(r,`extend`);function a(e,t){let n=``;for(let r=0;r<t;r+=1)n+=e;return n}i(a,`repeat`);function o(e){return e===0&&1/e==-1/0}return i(o,`isNegativeZero`),W.isNothing=e,W.isObject=t,W.toArray=n,W.repeat=a,W.isNegativeZero=o,W.extend=r,W}i(G,`requireCommon`);var lt,ut;function dt(){if(ut)return lt;ut=1;function e(e,t){let n=``,r=e.reason||`(unknown reason)`;return e.mark?(e.mark.name&&(n+=`in "`+e.mark.name+`" `),n+=`(`+(e.mark.line+1)+`:`+(e.mark.column+1)+`)`,!t&&e.mark.snippet&&(n+=`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["chunk-BoTbRR8S.js","chunk-CQfKfv79.js","chunk-DsF7k-Jl.js","chunk-CeiETtR3.js","workspace.js","chunk-B9H2wUlQ.js","chunk-DqZGGQx6.js","chunk-CZus5tIC.js","chunk-LHD4D-55.js","chunk-DmHr41SG.js","chunk-oZJp8_Oh.js","chunk-Bd8oAEBF.js","chunk-Dy-Kn_BL.js","chunk-7inUl5Il.js","chunk-DEKSwylx.js","chunk-MLIlWKCY.js","chunk-fybaL0A-.js","chunk-BifhSqXX.js","chunk-DS17s2tU.js","chunk-BvO9qrHb.js","chunk-B0xoFuVi.js","chunk-pzXl7dPH.js","chunk-Bdvr7G0w.js","chunk-CGd-uY3x.js","chunk-CmOPaNov.js","chunk-Cp5EDur4.js","chunk-DfMSIask.js","chunk-C26MXXwi.js","chunk-DlMt7LBR.js","chunk-Bs98n_vr.js","chunk-BqFMUyVw.js","chunk-CiB0fz5M.js","chunk-Wi1hfKnY.js","chunk-CoIQ0XcM.js","chunk-DQT7Z75O.js","chunk-dQvmgBo8.js","chunk-CU_yc7c0.js","chunk-DHwB1DNv.js","chunk-C6X32c5Y.js","chunk-DxSMoRAg.js","chunk-B8V5WPf1.js","chunk-BHBwEv5G.js","chunk-BFoDCU3G.js","chunk-C-OQMol4.js","chunk-BSUrFSfn.js","chunk-D289T3W2.js","chunk-CQhDWCuO.js","chunk-Crk3W7xi.js","chunk-IOULrYuo.js","chunk-D5VxBvZv.js","chunk-lpcXIlNC.js","chunk-D3k4QmBl.js","chunk-Dh6xxjov.js","chunk-D87EWWOh.js","chunk-BmkZxg03.js","chunk-H9AITnpH.js","chunk-CqbP8tav.js","chunk-Dk6P4vVY.js","chunk-BVm3MgB2.js","chunk-oxFaA6rD.js","chunk-DBVuY2lB.js","chunk-CNXFALfL.js","chunk-BokiwdgS.js","chunk-DlPtUH2x.js","chunk-DfcNMhQb.js","chunk-DtQPBrIL.js","chunk-ChQTsUB2.js","chunk-BxpAJfRF.js","chunk-Dex9JiR1.js","chunk-IsizPYbz.js","chunk-CUsQ7lH1.js","chunk-9-3VOpWX.js","chunk-nKL3T2Rn.js","chunk-Bk4d_k6M.js","chunk-DHkjHDYG.js","chunk-BVDh-dl-.js","chunk-BOfOlrLQ.js","chunk-CqMjOmHM.js","chunk-CMKpUUG0.js"])))=>i.map(i=>d[i]);
2
+ import{h as e,m as t,p as n}from"./chunk-CQfKfv79.js";import{t as r}from"./workspace.js";import{n as i}from"./chunk-DsF7k-Jl.js";import{$ as a,C as o,E as s,I as c,L as l,N as u,P as d,Q as f,S as p,T as m,V as h,W as g,X as _,Z as v,_ as y,b,c as x,g as S,l as C,m as w,n as T,p as E,q as D,r as O,s as k,t as A,u as j,x as M}from"./chunk-CeiETtR3.js";import{S as N,a as ee,d as P,f as F,g as I,h as L,i as R,o as te,v as ne,x as re,y as ie}from"./chunk-DqZGGQx6.js";import{r as ae}from"./chunk-LHD4D-55.js";import{i as oe}from"./chunk-DmHr41SG.js";import"./chunk-oZJp8_Oh.js";import{a as se}from"./chunk-Bd8oAEBF.js";import{i as ce,n as le,r as ue,t as de}from"./chunk-7inUl5Il.js";import{a as fe,c as pe,i as z,l as B,n as me,r as he,s as ge,t as _e}from"./chunk-DEKSwylx.js";import{t as ve}from"./chunk-DS17s2tU.js";import{n as ye,t as be}from"./chunk-B0xoFuVi.js";var xe=i(e=>{let{securityLevel:t}=M(),r=n(`body`);if(t===`sandbox`){let t=n(`#i${e}`).node()?.contentDocument??document;r=n(t.body)}return r.select(`#${e}`)},`selectSvgElement`);function Se(e){let t=e?.constructor;return e===(typeof t==`function`?t.prototype:Object.prototype)}function Ce(e){if(e==null)return!0;if(re(e))return typeof e.splice!=`function`&&typeof e!=`string`&&!N(e)&&!ne(e)&&!ie(e)?!1:e.length===0;if(typeof e==`object`||typeof e==`function`){if(e instanceof Map||e instanceof Set)return e.size===0;let t=Object.keys(e);return Se(e)?t.filter(e=>e!==`constructor`).length===0:t.length===0}return!0}var we={common:k,getConfig:b,insertCluster:ye,insertEdge:z,insertEdgeLabel:fe,insertMarkers:ge,insertNode:ue,interpolateToCurve:P,labelHelper:se,log:t,positionEdgeLabel:pe},Te={},Ee=i(e=>{for(let t of e)Te[t.name]=t},`registerLayoutLoaders`);i(()=>{Ee([{name:`dagre`,loader:i(async()=>await r(()=>import(`./chunk-BoTbRR8S.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20])),`loader`)},{name:`swimlane`,loader:i(async()=>await r(()=>import(`./chunk-pzXl7dPH.js`),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,20])),`loader`)},{name:`cose-bilkent`,loader:i(async()=>await r(()=>import(`./chunk-Bdvr7G0w.js`),__vite__mapDeps([22,1,2,23])),`loader`)}])},`registerDefaultLayoutLoaders`)();var De=i(async(e,t)=>{if(!(e.layoutAlgorithm in Te))throw Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);if(e.diagramId)for(let t of e.nodes){let n=t.domId||t.id;t.domId=`${e.diagramId}-${n}`}let n=Te[e.layoutAlgorithm],r=await n.loader(),{theme:i,themeVariables:a}=e.config,{useGradient:o,gradientStart:s,gradientStop:c}=a,l=t.attr(`id`);if(t.append(`defs`).append(`filter`).attr(`id`,`${l}-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`,`${i?.includes(`dark`)?`#FFFFFF`:`#000000`}`),t.append(`defs`).append(`filter`).attr(`id`,`${l}-drop-shadow-small`).attr(`height`,`150%`).attr(`width`,`150%`).append(`feDropShadow`).attr(`dx`,`2`).attr(`dy`,`2`).attr(`stdDeviation`,0).attr(`flood-opacity`,`0.06`).attr(`flood-color`,`${i?.includes(`dark`)?`#FFFFFF`:`#000000`}`),o){let e=t.append(`linearGradient`).attr(`id`,t.attr(`id`)+`-gradient`).attr(`gradientUnits`,`objectBoundingBox`).attr(`x1`,`0%`).attr(`y1`,`0%`).attr(`x2`,`100%`).attr(`y2`,`0%`);e.append(`svg:stop`).attr(`offset`,`0%`).attr(`stop-color`,s).attr(`stop-opacity`,1),e.append(`svg:stop`).attr(`offset`,`100%`).attr(`stop-color`,c).attr(`stop-opacity`,1)}return r.render(e,t,we,{algorithm:n.algorithm})},`render`),Oe=i((e=``,{fallback:n=`dagre`}={})=>{if(e in Te)return e;if(n in Te)return t.warn(`Layout algorithm ${e} is not registered. Using ${n} as fallback.`),n;throw Error(`Both layout algorithms ${e} and ${n} are not registered.`)},`getRegisteredLayoutAlgorithm`);function ke(e,{edgePathsClass:t=`edges edgePaths`}={}){let n=e.insert(`g`).attr(`class`,`root`);return{clusters:n.insert(`g`).attr(`class`,`clusters`),edgePaths:n.insert(`g`).attr(`class`,t),edgeLabels:n.insert(`g`).attr(`class`,`edgeLabels`),nodes:n.insert(`g`).attr(`class`,`nodes`),rootGroups:n}}i(ke,`createLayoutElementGroups`);async function Ae(e,t){if(t.label){let{shapeSvg:n,bbox:r}=await se(e,t);t.labelBBox={width:r.width,height:r.height},n.remove()}else t.labelBBox={width:0,height:0}}i(Ae,`measureGroupLabel`);async function je(e,t,n){let r=await ue(e,t,n),i=r.node()?.getBBox()??{width:0,height:0};return t.width=i.width,t.height=i.height,r}i(je,`insertMeasuredNode`);async function Me(e,t){let n=new ve({multigraph:!0,compound:!0}),i=[...t.edges],a=M(),o=ke(e),{edgeLabels:s,nodes:c}=o,l=new Map,u=e.node()!=null;await Promise.all(t.nodes.map(async e=>{if(e.isGroup)u&&await Ae(c,e),n.setNode(e.id,{...e});else{if(u){let t=await je(c,e,{config:a,dir:e.dir});l.set(e.id,t)}n.setNode(e.id,{...e})}}));for(let e of i)u&&he(e)&&await fe(s,e),n.setEdge(e.start,e.end,{...e},e.id),t.edges.some(t=>t.id===e.id)||t.edges.push(e);if(globalThis.mermaidCaptureSizes){let{captureNodeSizes:n}=await r(async()=>{let{captureNodeSizes:e}=await import(`./chunk-CmOPaNov.js`);return{captureNodeSizes:e}},__vite__mapDeps([24,2]));n(e,t)}return{graph:n,groups:o,nodeElements:l}}i(Me,`createGraphWithElements`);var V=new Map,H=new Map,Ne=new Map,Pe=i(()=>{H.clear(),Ne.clear(),V.clear()},`clear`),Fe=i((e,n)=>{let r=H.get(n)||[];return t.trace(`In isDescendant`,n,` `,e,` = `,r.includes(e)),r.includes(e)},`isDescendant`),Ie=i((e,n)=>{let r=H.get(n)||[];return t.info(`Descendants of `,n,` is `,r),t.info(`Edge is `,e),e.v===n||e.w===n?!1:r?r.includes(e.v)||Fe(e.v,n)||Fe(e.w,n)||r.includes(e.w):(t.debug(`Tilt, `,n,`,not in descendants`),!1)},`edgeInCluster`),Le=i((e,n,r,i)=>{t.debug(`Copying children of `,e,`root`,i,`data`,n.node(e),i);let a=n.children(e)||[];e!==i&&a.push(e),t.debug(`Copying (nodes) clusterId`,e,`nodes`,a),a.forEach(a=>{if(n.children(a).length>0)Le(a,n,r,i);else{let o=n.node(a);t.info(`cp `,a,` to `,i,` with parent `,e),r.setNode(a,o),i!==n.parent(a)&&(t.debug(`Setting parent`,a,n.parent(a)),r.setParent(a,n.parent(a))),e!==i&&a!==e?(t.debug(`Setting parent`,a,e),r.setParent(a,e)):(t.info(`In copy `,e,`root`,i,`data`,n.node(e),i),t.debug(`Not Setting parent for node=`,a,`cluster!==rootId`,e!==i,`node!==clusterId`,a!==e));let s=n.edges(a);t.debug(`Copying Edges`,s),s.forEach(a=>{t.info(`Edge`,a);let o=n.edge(a.v,a.w,a.name);t.info(`Edge data`,o,i);try{Ie(a,i)?(t.info(`Copying as `,a.v,a.w,o,a.name),r.setEdge(a.v,a.w,o,a.name),t.info(`newGraph edges `,r.edges(),r.edge(r.edges()[0]))):t.info(`Skipping copy of edge `,a.v,`-->`,a.w,` rootId: `,i,` clusterId:`,e)}catch(e){t.error(e)}})}t.debug(`Removing node`,a),n.removeNode(a)})},`copy`),Re=i((e,t)=>{let n=t.children(e),r=[...n];for(let i of n)Ne.set(i,e),r=[...r,...Re(i,t)];return r},`extractDescendants`),ze=i((e,t,n)=>{let r=e.edges().filter(e=>e.v===t||e.w===t),i=e.edges().filter(e=>e.v===n||e.w===n),a=r.map(e=>({v:e.v===t?n:e.v,w:e.w===t?t:e.w})),o=i.map(e=>({v:e.v,w:e.w}));return a.filter(e=>o.some(t=>e.v===t.v&&e.w===t.w))},`findCommonEdges`),Be=i((e,n,r)=>{let i=n.children(e);if(t.trace(`Searching children of id `,e,i),i.length<1)return e;let a;for(let e of i){let t=Be(e,n,r),i=ze(n,r,t);if(t){if(i.length>0)a=t;else return t}}return a},`findNonClusterChild`),Ve=i(e=>!V.has(e)||!V.get(e).externalConnections?e:V.has(e)?V.get(e).id:e,`getAnchorId`),He=i((e,n)=>{if(!e||n>10){t.debug(`Opting out, no graph `);return}t.debug(`Opting in, graph `),e.nodes().forEach(function(n){e.children(n).length>0&&(t.debug(`Cluster identified`,n,` Replacement id in edges: `,Be(n,e,n)),H.set(n,Re(n,e)),V.set(n,{id:Be(n,e,n),clusterData:e.node(n)}))}),e.nodes().forEach(function(n){let r=e.children(n),i=e.edges();r.length>0?(t.debug(`Cluster identified`,n,H),i.forEach(e=>{Fe(e.v,n)^Fe(e.w,n)&&(t.debug(`Edge: `,e,` leaves cluster `,n),t.debug(`Descendants of XXX `,n,`: `,H.get(n)),V.get(n).externalConnections=!0)})):t.debug(`Not a cluster `,n,H)});for(let t of V.keys()){let n=V.get(t).id,r=e.parent(n);r!==t&&V.has(r)&&!V.get(r).externalConnections&&(V.get(t).id=r);let i=e.edges().some(e=>e.v===t);if(n&&V.get(t)?.externalConnections&&i&&Ke(e,n,t)){let r=qe(e,t,e.parent(n));r&&(V.get(t).id=r)}}e.edges().forEach(function(n){let r=e.edge(n);t.debug(`Edge `+n.v+` -> `+n.w+`: `+JSON.stringify(n)),t.debug(`Edge `+n.v+` -> `+n.w+`: `+JSON.stringify(e.edge(n)));let i=n.v,a=n.w;if(t.debug(`Fix XXX`,V,`ids:`,n.v,n.w,`Translating: `,V.get(n.v),` --- `,V.get(n.w)),V.get(n.v)||V.get(n.w)){if(t.debug(`Fixing and trying - removing XXX`,n.v,n.w,n.name),i=Ve(n.v),a=Ve(n.w),e.removeEdge(n.v,n.w,n.name),i!==n.v){let t=e.parent(i);V.get(t).externalConnections=!0,r.fromCluster=n.v}if(a!==n.w){let t=e.parent(a);V.get(t).externalConnections=!0,r.toCluster=n.w}t.debug(`Fix Replacing with XXX`,i,a,n.name),e.setEdge(i,a,r,n.name)}}),Ue(e,0),t.trace(V)},`adjustClustersAndEdges`),Ue=i((e,n)=>{if(n>10){t.error(`Bailing out`);return}let r=e.nodes(),i=!1;for(let t of r){let n=e.children(t);i||=n.length>0}if(!i){t.debug(`Done, no node has children`,e.nodes());return}t.debug(`Nodes = `,r,n);for(let i of r)if(t.debug(`Extracting node`,i,V,V.has(i)&&!V.get(i).externalConnections,!e.parent(i),e.node(i),e.children(`D`),` Depth `,n),!V.has(i))t.debug(`Not a cluster`,i,n);else if(!V.get(i).externalConnections&&e.children(i)&&e.children(i).length>0){t.debug(`Cluster without external connections, without a parent and with children`,i,n);let r=e.graph().rankdir===`TB`?`LR`:`TB`;V.get(i)?.clusterData?.dir&&(r=V.get(i).clusterData.dir,t.debug(`Fixing dir`,V.get(i).clusterData.dir,r));let a=new ve({multigraph:!0,compound:!0}).setGraph({rankdir:r,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});Le(i,e,a,i),e.setNode(i,{clusterNode:!0,id:i,clusterData:V.get(i).clusterData,label:V.get(i).label,graph:a})}else t.debug(`Cluster ** `,i,` **not meeting the criteria !externalConnections:`,!V.get(i).externalConnections,` no parent: `,!e.parent(i),` children `,e.children(i)&&e.children(i).length>0,e.children(`D`),n),t.debug(V);r=e.nodes(),t.debug(`New list of nodes`,r);for(let i of r){let r=e.node(i);t.debug(` Now next level`,i,r),r?.clusterNode&&Ue(r.graph,n+1)}},`extractor`),We=i((e,t)=>{if(t.length===0)return[];let n=Object.assign([],t);return t.forEach(t=>{let r=We(e,e.children(t));n=[...n,...r]}),n},`sorter`),Ge=i(e=>We(e,e.children()),`sortNodesByHierarchy`),Ke=i((e,t,n)=>{let r=e.parent(t);for(;r&&r!==n;){let t=V.get(r);if(t&&!t.externalConnections)return!0;r=e.parent(r)}return!1},`isNodeInExtractableCluster`),qe=i((e,t,n)=>{let r=e.children(t)??[];for(let i of r){if(i===n||Fe(i,n))continue;let r=Be(i,e,t);if(r&&!Ke(e,r,t))return r}return null},`findSafeAnchorNode`);function Je({prepareLayout:e,measureLayout:t,runLayoutCore:n,paintLayout:r,afterPaint:a,paintOptions:o}){let s=t??Xe;return i(async function(t,i,c,l){let u=i.select(`g`);(c?.insertMarkers??ge)(u,t.markers,t.type,t.diagramId),Ye();let d={element:u,helpers:c,options:l};d.preparedLayout=await e?.(t,d);let f=await s(t,d),p=await n(t,d),m={...d,measure:f};r?await r(t,m,p):await Ze(t,m,o),await a?.(t,m,p)},`render`)}i(Je,`createCommonLayoutRenderer`);function Ye(){de(),_e(),be(),Pe()}i(Ye,`clearLayoutRenderState`);async function Xe(e,{element:t}){return await Me(t,e)}i(Xe,`defaultMeasureLayout`);async function Ze(e,t,n={}){let{measure:r}=t,{groups:i}=r;for(let r of n.getNodes?.(e,t)??e.nodes)n.skipNode?.(r,t)||await Qe(i,r,t,n);let a=et(e.nodes);for(let r of e.edges)tt(r,n)||await nt(i,r,a,e,n,t)}i(Ze,`paintLayoutData`);async function Qe(e,t,n,r){t.clusterNode?ce(t):$e(t,n,r)?await ye(e.clusters,t):ce(t)}i(Qe,`paintLayoutNode`);function $e(e,t,n){return e.isGroup===!0&&(n.isCluster?.(e,t)??!0)}i($e,`shouldPaintAsCluster`);function et(e){let t=new Map;for(let n of e)n?.id&&t.set(n.id,n);return t}i(et,`buildNodeLookup`);function tt(e,t){return e.isLayoutOnly||!!t.skipEdge?.(e)}i(tt,`shouldSkipPaintEdge`);async function nt(e,t,n,r,i,a){let o=z(e.edgePaths,{...t},i.clusterDb??new Map,r.type,rt(t.start,t,n,a,i),rt(t.end,t,n,a,i),r.diagramId,it(t,i));he(t)&&(me.has(t.id)||await fe(e.edgeLabels,t),at(t,o))}i(nt,`paintLayoutEdge`);function rt(e,t,n,r,i){return i.getEdgeNode?.(e,t,r)??(e?n.get(e)??{}:{})}i(rt,`getRenderedNode`);function it(e,t){return typeof t.skipIntersect==`function`?t.skipIntersect(e):t.skipIntersect??!1}i(it,`shouldSkipIntersect`);function at(e,n){let r=n?.updatedPath??n?.originalPath,i=b(),{subGraphTitleTotalMargin:a}=le({flowchart:i.flowchart??{}});if(e.label){let i=me.get(e.id),o=e.x,s=e.y;if(r){let i=I.calcLabelPosition(r);t.debug(`Moving label `+e.label+` from (`,o,`,`,s,`) to (`,i.x,`,`,i.y,`) abc88`),n?.updatedPath&&(o=i.x,s=i.y)}i.attr(`transform`,`translate(${o}, ${s+a/2})`)}if(e?.startLabelLeft){let t=B.get(e.id).startLeft,n=e?.x,i=e?.y;if(r){let t=I.calcTerminalLabelPosition(e.arrowTypeStart?10:0,`start_left`,r);n=t.x,i=t.y}t.attr(`transform`,`translate(${n}, ${i})`)}if(e.startLabelRight){let t=B.get(e.id).startRight,n=e.x,i=e.y;if(r){let t=I.calcTerminalLabelPosition(e.arrowTypeStart?10:0,`start_right`,r);n=t.x,i=t.y}t.attr(`transform`,`translate(${n}, ${i})`)}if(e.endLabelLeft){let t=B.get(e.id).endLeft,n=e.x,i=e.y;if(r){let t=I.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,`end_left`,r);n=t.x,i=t.y}t.attr(`transform`,`translate(${n}, ${i})`)}if(e.endLabelRight){let t=B.get(e.id).endRight,n=e.x,i=e.y;if(r){let t=I.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,`end_right`,r);n=t.x,i=t.y}t.attr(`transform`,`translate(${n}, ${i})`)}}i(at,`positionRenderedEdgeLabel`);function ot(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}i(ot,`getDefaultExportFromCjs`);var U={},st={},W={},ct;function G(){if(ct)return W;ct=1;function e(e){return e==null}i(e,`isNothing`);function t(e){return typeof e==`object`&&!!e}i(t,`isObject`);function n(t){return Array.isArray(t)?t:e(t)?[]:[t]}i(n,`toArray`);function r(e,t){if(t){let n=Object.keys(t);for(let r=0,i=n.length;r<i;r+=1){let i=n[r];e[i]=t[i]}}return e}i(r,`extend`);function a(e,t){let n=``;for(let r=0;r<t;r+=1)n+=e;return n}i(a,`repeat`);function o(e){return e===0&&1/e==-1/0}return i(o,`isNegativeZero`),W.isNothing=e,W.isObject=t,W.toArray=n,W.repeat=a,W.isNegativeZero=o,W.extend=r,W}i(G,`requireCommon`);var lt,ut;function dt(){if(ut)return lt;ut=1;function e(e,t){let n=``,r=e.reason||`(unknown reason)`;return e.mark?(e.mark.name&&(n+=`in "`+e.mark.name+`" `),n+=`(`+(e.mark.line+1)+`:`+(e.mark.column+1)+`)`,!t&&e.mark.snippet&&(n+=`
3
3
 
4
4
  `+e.mark.snippet),r+` `+n):r}i(e,`formatError`);function t(t,n){Error.call(this),this.name=`YAMLException`,this.reason=t,this.mark=n,this.message=e(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=Error().stack||``}return i(t,`YAMLException2`),t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t.prototype.toString=i(function(t){return this.name+`: `+e(this,t)},`toString`),lt=t,lt}i(dt,`requireException`);var ft,pt;function mt(){if(pt)return ft;pt=1;let e=G();function t(e,t,n,r,i){let a=``,o=``,s=Math.floor(i/2)-1;return r-t>s&&(a=` ... `,t=r-s+a.length),n-r>s&&(o=` ...`,n=r+s-o.length),{str:a+e.slice(t,n).replace(/\t/g,`→`)+o,pos:r-t+a.length}}i(t,`getLine`);function n(t,n){return e.repeat(` `,n-t.length)+t}i(n,`padStart`);function r(r,i){if(i=Object.create(i||null),!r.buffer)return null;i.maxLength||(i.maxLength=79),typeof i.indent!=`number`&&(i.indent=1),typeof i.linesBefore!=`number`&&(i.linesBefore=3),typeof i.linesAfter!=`number`&&(i.linesAfter=2);let a=/\r?\n|\r|\0/g,o=[0],s=[],c,l=-1;for(;c=a.exec(r.buffer);)s.push(c.index),o.push(c.index+c[0].length),r.position<=c.index&&l<0&&(l=o.length-2);l<0&&(l=o.length-1);let u=``,d=Math.min(r.line+i.linesAfter,s.length).toString().length,f=i.maxLength-(i.indent+d+3);for(let a=1;a<=i.linesBefore&&!(l-a<0);a++){let c=t(r.buffer,o[l-a],s[l-a],r.position-(o[l]-o[l-a]),f);u=e.repeat(` `,i.indent)+n((r.line-a+1).toString(),d)+` | `+c.str+`
5
5
  `+u}let p=t(r.buffer,o[l],s[l],r.position,f);u+=e.repeat(` `,i.indent)+n((r.line+1).toString(),d)+` | `+p.str+`
@@ -32,8 +32,8 @@ import{h as e,m as t,p as n}from"./chunk-CQfKfv79.js";import{t as r}from"./works
32
32
  `+e.slice(i,a),i=a+1),o=s;return c+=`
33
33
  `,e.length-i>t&&o>i?c+=e.slice(i,o)+`
34
34
  `+e.slice(o+1):c+=e.slice(i),c.slice(1)}i(k,`foldLine`);function A(e){let t=``,n=0;for(let r=0;r<e.length;n>=65536?r+=2:r++){n=S(e,r);let i=s[n];!i&&_(n)?(t+=e[r],n>=65536&&(t+=e[r+1])):t+=i||d(n)}return t}i(A,`escapeString`);function j(e,t,n){let r=``,i=e.tag;for(let i=0,a=n.length;i<a;i+=1){let a=n[i];e.replacer&&(a=e.replacer.call(n,String(i),a)),(F(e,t,a,!1,!1)||a===void 0&&F(e,t,null,!1,!1))&&(r!==``&&(r+=`,`+(e.condenseFlow?``:` `)),r+=e.dump)}e.tag=i,e.dump=`[`+r+`]`}i(j,`writeFlowSequence`);function M(e,t,n,r){let i=``,a=e.tag;for(let a=0,o=n.length;a<o;a+=1){let o=n[a];e.replacer&&(o=e.replacer.call(n,String(a),o)),(F(e,t+1,o,!0,!0,!1,!0)||o===void 0&&F(e,t+1,null,!0,!0,!1,!0))&&((!r||i!==``)&&(i+=m(e,t)),e.dump&&e.dump.charCodeAt(0)===10?i+=`-`:i+=`- `,i+=e.dump)}e.tag=a,e.dump=i||`[]`}i(M,`writeBlockSequence`);function N(e,t,n){let r=``,i=e.tag,a=Object.keys(n);for(let i=0,o=a.length;i<o;i+=1){let o=``;r!==``&&(o+=`, `),e.condenseFlow&&(o+=`"`);let s=a[i],c=n[s];e.replacer&&(c=e.replacer.call(n,s,c)),F(e,t,s,!1,!1)&&(e.dump.length>1024&&(o+=`? `),o+=e.dump+(e.condenseFlow?`"`:``)+`:`+(e.condenseFlow?``:` `),F(e,t,c,!1,!1)&&(o+=e.dump,r+=o))}e.tag=i,e.dump=`{`+r+`}`}i(N,`writeFlowMapping`);function ee(e,n,r,i){let a=``,o=e.tag,s=Object.keys(r);if(e.sortKeys===!0)s.sort();else if(typeof e.sortKeys==`function`)s.sort(e.sortKeys);else if(e.sortKeys)throw new t(`sortKeys must be a boolean or a function`);for(let t=0,o=s.length;t<o;t+=1){let o=``;(!i||a!==``)&&(o+=m(e,n));let c=s[t],l=r[c];if(e.replacer&&(l=e.replacer.call(r,c,l)),!F(e,n+1,c,!0,!0,!0))continue;let u=e.tag!==null&&e.tag!==`?`||e.dump&&e.dump.length>1024;u&&(e.dump&&e.dump.charCodeAt(0)===10?o+=`?`:o+=`? `),o+=e.dump,u&&(o+=m(e,n)),F(e,n+1,l,!0,u)&&(e.dump&&e.dump.charCodeAt(0)===10?o+=`:`:o+=`: `,o+=e.dump,a+=o)}e.tag=o,e.dump=a||`{}`}i(ee,`writeBlockMapping`);function P(e,n,i){let o=i?e.explicitTypes:e.implicitTypes;for(let s=0,c=o.length;s<c;s+=1){let c=o[s];if((c.instanceOf||c.predicate)&&(!c.instanceOf||typeof n==`object`&&n instanceof c.instanceOf)&&(!c.predicate||c.predicate(n))){if(e.tag=i?c.multi&&c.representName?c.representName(n):c.tag:`?`,c.represent){let i=e.styleMap[c.tag]||c.defaultStyle,o;if(r.call(c.represent)===`[object Function]`)o=c.represent(n,i);else if(a.call(c.represent,i))o=c.represent[i](n,i);else throw new t(`!<`+c.tag+`> tag resolver accepts not "`+i+`" style`);e.dump=o}return!0}}return!1}i(P,`detectType`);function F(e,n,i,a,o,s,c){e.tag=null,e.dump=i,P(e,i,!1)||P(e,i,!0);let l=r.call(e.dump),u=a;a&&=e.flowLevel<0||e.flowLevel>n;let d=l===`[object Object]`||l===`[object Array]`,f,p;if(d&&(f=e.duplicates.indexOf(i),p=f!==-1),(e.tag!==null&&e.tag!==`?`||p||e.indent!==2&&n>0)&&(o=!1),p&&e.usedDuplicates[f])e.dump=`*ref_`+f;else{if(d&&p&&!e.usedDuplicates[f]&&(e.usedDuplicates[f]=!0),l===`[object Object]`)a&&Object.keys(e.dump).length!==0?(ee(e,n,e.dump,o),p&&(e.dump=`&ref_`+f+e.dump)):(N(e,n,e.dump),p&&(e.dump=`&ref_`+f+` `+e.dump));else if(l===`[object Array]`)a&&e.dump.length!==0?(e.noArrayIndent&&!c&&n>0?M(e,n-1,e.dump,o):M(e,n,e.dump,o),p&&(e.dump=`&ref_`+f+e.dump)):(j(e,n,e.dump),p&&(e.dump=`&ref_`+f+` `+e.dump));else if(l===`[object String]`)e.tag!==`?`&&T(e,e.dump,n,s,u);else if(l===`[object Undefined]`)return!1;else{if(e.skipInvalid)return!1;throw new t(`unacceptable kind of an object to dump `+l)}if(e.tag!==null&&e.tag!==`?`){let t=encodeURI(e.tag[0]===`!`?e.tag.slice(1):e.tag).replace(/!/g,`%21`);t=e.tag[0]===`!`?`!`+t:t.slice(0,18)===`tag:yaml.org,2002:`?`!!`+t.slice(18):`!<`+t+`>`,e.dump=t+` `+e.dump}}return!0}i(F,`writeNode`);function I(e,t){let n=[],r=[];L(e,n,r);let i=r.length;for(let e=0;e<i;e+=1)t.duplicates.push(n[r[e]]);t.usedDuplicates=Array(i)}i(I,`getDuplicateReferences`);function L(e,t,n){if(typeof e==`object`&&e){let r=t.indexOf(e);if(r!==-1)n.indexOf(r)===-1&&n.push(r);else if(t.push(e),Array.isArray(e))for(let r=0,i=e.length;r<i;r+=1)L(e[r],t,n);else{let r=Object.keys(e);for(let i=0,a=r.length;i<a;i+=1)L(e[r[i]],t,n)}}}i(L,`inspectNode`);function R(e,t){t||={};let n=new f(t);n.noRefs||I(e,n);let r=e;return n.replacer&&(r=n.replacer.call({"":r},``,r)),F(n,0,r,!0,!0)?n.dump+`
35
- `:``}return i(R,`dump2`),bn.dump=R,bn}i(Sn,`requireDumper`);var Cn;function wn(){if(Cn)return U;Cn=1;let e=yn(),t=Sn();function n(e,t){return function(){throw Error(`Function yaml.`+e+` is removed in js-yaml 4. Use yaml.`+t+` instead, which is now safe by default.`)}}return i(n,`renamed`),U.Type=K(),U.Schema=yt(),U.FAILSAFE_SCHEMA=jt(),U.JSON_SCHEMA=Kt(),U.CORE_SCHEMA=Yt(),U.DEFAULT_SCHEMA=_n(),U.load=e.load,U.loadAll=e.loadAll,U.dump=t.dump,U.YAMLException=dt(),U.types={binary:an(),float:Ut(),map:Ot(),null:Pt(),pairs:dn(),set:mn(),timestamp:Qt(),bool:Lt(),int:Bt(),merge:tn(),omap:cn(),seq:Tt(),str:St()},U.safeLoad=n(`safeLoad`,`load`),U.safeLoadAll=n(`safeLoadAll`,`loadAll`),U.safeDump=n(`safeDump`,`dump`),U}i(wn,`requireJsYaml`);var{Type:Tn,Schema:En,FAILSAFE_SCHEMA:Dn,JSON_SCHEMA:On,CORE_SCHEMA:kn,DEFAULT_SCHEMA:An,load:jn,loadAll:Mn,dump:Nn,YAMLException:Pn,types:Fn,safeLoad:In,safeLoadAll:Ln,safeDump:Rn}=ot(wn()),zn=`comm`,Bn=`rule`,Vn=`decl`,Hn=`@import`,Un=`@namespace`,Wn=`@keyframes`,Gn=`@layer`,Kn=Math.abs,qn=String.fromCharCode;function Jn(e){return e.trim()}function Yn(e,t,n){return e.replace(t,n)}function Xn(e,t){return e.charCodeAt(t)|0}function Zn(e,t,n){return e.slice(t,n)}function q(e){return e.length}function Qn(e){return e.length}function $n(e,t){return t.push(e),e}var er=1,tr=1,nr=0,J=0,Y=0,rr=``;function ir(e,t,n,r,i,a,o,s){return{value:e,root:t,parent:n,type:r,props:i,children:a,line:er,column:tr,length:o,return:``,siblings:s}}function ar(){return Y}function or(){return Y=J>0?Xn(rr,--J):0,tr--,Y===10&&(tr=1,er--),Y}function X(){return Y=J<nr?Xn(rr,J++):0,tr++,Y===10&&(tr=1,er++),Y}function Z(){return Xn(rr,J)}function sr(){return J}function cr(e,t){return Zn(rr,e,t)}function lr(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function ur(e){return er=tr=1,nr=q(rr=e),J=0,[]}function dr(e){return rr=``,e}function fr(e){return Jn(cr(J-1,hr(e===91?e+2:e===40?e+1:e)))}function pr(e){for(;(Y=Z())&&Y<33;)X();return lr(e)>2||lr(Y)>3?``:` `}function mr(e,t){for(;--t&&X()&&!(Y<48||Y>102||Y>57&&Y<65||Y>70&&Y<97););return cr(e,sr()+(t<6&&Z()==32&&X()==32))}function hr(e){for(;X();)switch(Y){case e:return J;case 34:case 39:e!==34&&e!==39&&hr(Y);break;case 40:e===41&&hr(e);break;case 92:X()}return J}function gr(e,t){for(;X()&&e+Y!==57&&(e+Y!==84||Z()!==47););return`/*`+cr(t,J-1)+`*`+qn(e===47?e:X())}function _r(e){for(;!lr(Z());)X();return cr(e,J)}function vr(e){return dr(yr(``,null,null,null,[``],e=ur(e),0,[0],e))}function yr(e,t,n,r,i,a,o,s,c){for(var l=0,u=0,d=o,f=0,p=0,m=0,h=1,g=1,_=1,v=0,y=0,b=``,x=i,S=a,C=r,w=b;g;)switch(m=y,y=X()){case 40:m!=108&&Xn(w,d-1)==58?(v++,w+=`(`):w+=fr(y);break;case 41:v--,w+=`)`;break;case 34:case 39:case 91:w+=fr(y);break;case 9:case 10:case 13:case 32:if(v>0){w+=qn(y);break}w+=pr(m);break;case 92:w+=mr(sr()-1,7);continue;case 47:switch(Z()){case 42:case 47:$n(xr(gr(X(),sr()),t,n,c),c),(lr(m||1)==5||lr(Z()||1)==5)&&q(w)&&Zn(w,-1,void 0)!==` `&&(w+=` `);break;default:w+=`/`}break;case 123*h:s[l++]=q(w)*_;case 125*h:case 59:case 0:if(v>0&&y){w+=qn(y);break}switch(y){case 0:case 125:g=0;case 59+u:_==-1&&(w=Yn(w,/\f/g,``)),p>0&&(q(w)-d||h===0)&&$n(p>32?Sr(w+`;`,r,n,d-1,c):Sr(Yn(w,` `,``)+`;`,r,n,d-2,c),c);break;case 59:w+=`;`;default:if($n(C=br(w,t,n,l,u,i,s,b,x=[],S=[],d,a),a),y===123){if(u===0)yr(w,t,C,C,x,a,d,s,S);else{switch(f){case 99:if(Xn(w,3)===110)break;case 108:if(Xn(w,2)===97)break;default:u=0;case 100:case 109:case 115:}u?yr(e,C,C,r&&$n(br(e,C,C,0,0,i,s,b,i,x=[],d,S),S),i,S,d,s,r?x:S):yr(w,C,C,C,[``],S,0,s,S)}}}l=u=p=0,h=_=1,b=w=``,d=o;break;case 58:d=1+q(w),p=m;default:if(h<1){if(y==123)--h;else if(y==125&&h++==0&&or()==125)continue}switch(w+=qn(y),y*h){case 38:_=u>0?1:(w+=`\f`,-1);break;case 44:if(v>0)break;s[l++]=(q(w)-1)*_,_=1;break;case 64:Z()===45&&(w+=fr(X())),f=Z(),u=d=q(b=w+=_r(sr())),y++;break;case 45:m===45&&q(w)==2&&(h=0)}}return a}function br(e,t,n,r,i,a,o,s,c,l,u,d){for(var f=i-1,p=i===0?a:[``],m=Qn(p),h=0,g=0,_=0;h<r;++h)for(var v=0,y=Zn(e,f+1,f=Kn(g=o[h])),b=e;v<m;++v)(b=Jn(g>0?p[v]+` `+y:Yn(y,/&\f/g,p[v])))&&(c[_++]=b);return ir(e,t,n,i===0?Bn:s,c,l,u,d)}function xr(e,t,n,r){return ir(e,t,n,zn,qn(ar()),Zn(e,2,-2),0,r)}function Sr(e,t,n,r,i){return ir(e,t,n,Vn,Zn(e,0,r),Zn(e,r+1,-1),r,i)}function Cr(e,t){for(var n=``,r=0;r<e.length;r++)n+=t(e[r],r,e,t)||``;return n}function wr(e,t,n,r){switch(e.type){case Gn:if(e.children.length)break;case Hn:case Un:case Vn:return e.return=e.return||e.value;case zn:return``;case Wn:return e.return=e.value+`{`+Cr(e.children,r)+`}`;case Bn:if(!q(e.value=e.props.join(`,`)))return``}return q(n=Cr(e.children,r))?e.return=e.value+`{`+n+`}`:``}function Tr(e){var t=Qn(e);return function(n,r,i,a){for(var o=``,s=0;s<t;s++)o+=e[s](n,r,i,a)||``;return o}}var Er=`c4`,Dr={id:Er,detector:i(e=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-Cp5EDur4.js`);return{diagram:e}},__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10,11,25]));return{id:Er,diagram:e}},`loader`)},Or=`flowchart`,kr={id:Or,detector:i((e,t)=>t?.flowchart?.defaultRenderer===`dagre-wrapper`||t?.flowchart?.defaultRenderer===`elk`?!1:/^\s*graph/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-C26MXXwi.js`);return{diagram:e}},__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,25,27,28,19,29,30,31]));return{id:Or,diagram:e}},`loader`)},Ar=`flowchart-v2`,jr={id:Ar,detector:i((e,t)=>t?.flowchart?.defaultRenderer!==`dagre-d3`&&(t?.flowchart?.defaultRenderer===`elk`&&(t.layout=`elk`),/^\s*graph/.test(e)&&t?.flowchart?.defaultRenderer===`dagre-wrapper`?!0:/^\s*flowchart/.test(e)),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-C26MXXwi.js`);return{diagram:e}},__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,25,27,28,19,29,30,31]));return{id:Ar,diagram:e}},`loader`)},Mr=`swimlane`,Nr={id:Mr,detector:i(e=>/^\s*swimlane-beta\b/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-CoIQ0XcM.js`);return{diagram:e}},__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,25,27,28,19,29,30,31]));return{id:Mr,diagram:e}},`loader`)},Pr=`er`,Fr={id:Pr,detector:i(e=>/^\s*erDiagram/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-DQT7Z75O.js`);return{diagram:e}},__vite__mapDeps([33,1,2,3,4,30,5,6,7,8,9,10,11,12,13,14,15,16,27,28,19]));return{id:Pr,diagram:e}},`loader`)},Ir=`gitGraph`,Lr={id:Ir,detector:i(e=>/^\s*gitGraph/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-dQvmgBo8.js`);return{diagram:e}},__vite__mapDeps([34,1,2,35,4,36,3,5,6,37,38]));return{id:Ir,diagram:e}},`loader`)},Rr=`gantt`,zr={id:Rr,detector:i(e=>/^\s*gantt/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-B8V5WPf1.js`);return{diagram:e}},__vite__mapDeps([39,1,2,3,4,40,41,42,6,5]));return{id:Rr,diagram:e}},`loader`)},Br=`info`,Vr={id:Br,detector:i(e=>/^\s*info/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-BSUrFSfn.js`);return{diagram:e}},__vite__mapDeps([43,1,2,35,4,36,3]));return{id:Br,diagram:e}},`loader`)},Hr=`pie`,Ur={id:Hr,detector:i(e=>/^\s*pie/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-D289T3W2.js`);return{diagram:e}},__vite__mapDeps([44,1,2,35,4,36,3,45,42,15,6,46,16,5,37]));return{id:Hr,diagram:e}},`loader`)},Wr=`quadrantChart`,Gr={id:Wr,detector:i(e=>/^\s*quadrantChart/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-IOULrYuo.js`);return{diagram:e}},__vite__mapDeps([47,1,2,3,4,40,41,42]));return{id:Wr,diagram:e}},`loader`)},Kr=`xychart`,qr={id:Kr,detector:i(e=>/^\s*xychart(-beta)?/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-D5VxBvZv.js`);return{diagram:e}},__vite__mapDeps([48,1,2,3,4,40,41,42,45,5,6,14,15,16,7,8]));return{id:Kr,diagram:e}},`loader`)},Jr=`requirement`,Yr={id:Jr,detector:i(e=>/^\s*requirement(Diagram)?/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-lpcXIlNC.js`);return{diagram:e}},__vite__mapDeps([49,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,27,28,19]));return{id:Jr,diagram:e}},`loader`)},Xr=`sequence`,Zr={id:Xr,detector:i(e=>/^\s*sequenceDiagram/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-D3k4QmBl.js`);return{diagram:e}},__vite__mapDeps([50,1,2,3,4,6,5,25,38]));return{id:Xr,diagram:e}},`loader`)},Qr=`class`,$r={id:Qr,detector:i((e,t)=>t?.class?.defaultRenderer!==`dagre-wrapper`&&/^\s*classDiagram/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-Dh6xxjov.js`);return{diagram:e}},__vite__mapDeps([51,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,25,27,28,19,52,31]));return{id:Qr,diagram:e}},`loader`)},ei=`classDiagram`,ti={id:ei,detector:i((e,t)=>/^\s*classDiagram/.test(e)&&t?.class?.defaultRenderer===`dagre-wrapper`?!0:/^\s*classDiagram-v2/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-BmkZxg03.js`);return{diagram:e}},__vite__mapDeps([53,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,25,27,28,19,52,31]));return{id:ei,diagram:e}},`loader`)},ni=`state`,ri={id:ni,detector:i((e,t)=>t?.state?.defaultRenderer!==`dagre-wrapper`&&/^\s*stateDiagram/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-H9AITnpH.js`);return{diagram:e}},__vite__mapDeps([54,1,2,3,4,5,6,14,15,16,7,8,9,10,11,12,13,17,18,25,27,28,19,55]));return{id:ni,diagram:e}},`loader`)},ii=`stateDiagram`,ai={id:ii,detector:i((e,t)=>!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&t?.state?.defaultRenderer===`dagre-wrapper`),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-Dk6P4vVY.js`);return{diagram:e}},__vite__mapDeps([56,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,25,27,28,19,55]));return{id:ii,diagram:e}},`loader`)},oi=`journey`,si={id:oi,detector:i(e=>/^\s*journey/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-BVm3MgB2.js`);return{diagram:e}},__vite__mapDeps([57,1,2,3,4,46,15,6,31,25]));return{id:oi,diagram:e}},`loader`)},ci={draw:i((e,n,r)=>{t.debug(`rendering svg for syntax error
36
- `);let i=xe(n),a=i.append(`g`);i.attr(`viewBox`,`0 0 2412 512`),x(i,100,512,!0),a.append(`path`).attr(`class`,`error-icon`).attr(`d`,`m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z`),a.append(`path`).attr(`class`,`error-icon`).attr(`d`,`m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z`),a.append(`path`).attr(`class`,`error-icon`).attr(`d`,`m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z`),a.append(`path`).attr(`class`,`error-icon`).attr(`d`,`m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z`),a.append(`path`).attr(`class`,`error-icon`).attr(`d`,`m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z`),a.append(`path`).attr(`class`,`error-icon`).attr(`d`,`m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z`),a.append(`text`).attr(`class`,`error-text`).attr(`x`,1440).attr(`y`,250).attr(`font-size`,`150px`).style(`text-anchor`,`middle`).text(`Syntax error in text`),a.append(`text`).attr(`class`,`error-text`).attr(`x`,1250).attr(`y`,400).attr(`font-size`,`100px`).style(`text-anchor`,`middle`).text(`mermaid version ${r}`)},`draw`)},li=ci,ui={db:{},renderer:ci,parser:{parse:i(()=>{},`parse`)}},di=`flowchart-elk`,fi={id:di,detector:i((e,t={})=>/^\s*flowchart-elk/.test(e)||/^\s*(flowchart|graph)/.test(e)&&t?.flowchart?.defaultRenderer===`elk`?(t.layout=`elk`,!0):!1,`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-C26MXXwi.js`);return{diagram:e}},__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,25,27,28,19,29,30,31]));return{id:di,diagram:e}},`loader`)},pi=`timeline`,mi={id:pi,detector:i(e=>/^\s*timeline/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-oxFaA6rD.js`);return{diagram:e}},__vite__mapDeps([58,1,2,3,4,46,15,6,5]));return{id:pi,diagram:e}},`loader`)},hi=`mindmap`,gi={id:hi,detector:i(e=>/^\s*mindmap/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-DBVuY2lB.js`);return{diagram:e}},__vite__mapDeps([59,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,27,28,19]));return{id:hi,diagram:e}},`loader`)},_i=`kanban`,vi={id:_i,detector:i(e=>/^\s*kanban/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-CNXFALfL.js`);return{diagram:e}},__vite__mapDeps([60,1,2,3,4,5,6,7,8,31,9,10,11,12,19]));return{id:_i,diagram:e}},`loader`)},yi=`sankey`,bi={id:yi,detector:i(e=>/^\s*sankey(-beta)?/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-BokiwdgS.js`);return{diagram:e}},__vite__mapDeps([61,1,2,3,4,45,42]));return{id:yi,diagram:e}},`loader`)},xi=`packet`,Si={id:xi,detector:i(e=>/^\s*packet(-beta)?/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-DlPtUH2x.js`);return{diagram:e}},__vite__mapDeps([62,1,2,35,4,36,3,5,6,37]));return{id:xi,diagram:e}},`loader`)},Ci=`radar`,wi={id:Ci,detector:i(e=>/^\s*radar-beta/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-DfcNMhQb.js`);return{diagram:e}},__vite__mapDeps([63,1,2,35,4,36,3,5,6,37]));return{id:Ci,diagram:e}},`loader`)},Ti=`block`,Ei={id:Ti,detector:i(e=>/^\s*block(-beta)?/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-DtQPBrIL.js`);return{diagram:e}},__vite__mapDeps([64,1,2,3,4,30,5,6,7,8,31,9,10,11,12,13,14,15,16,17]));return{id:Ti,diagram:e}},`loader`)},Di=`treeView`,Oi={id:Di,detector:i(e=>/^\s*treeView-beta/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-ChQTsUB2.js`);return{diagram:e}},__vite__mapDeps([65,1,2,35,4,36,3,5,6,37,7,38]));return{id:Di,diagram:e}},`loader`)},ki=`architecture`,Ai={id:ki,detector:i(e=>/^\s*architecture/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-BxpAJfRF.js`);return{diagram:e}},__vite__mapDeps([66,1,2,35,4,36,3,5,6,37,7,8,22]));return{id:ki,diagram:e}},`loader`)},ji=`eventmodeling`,Mi={id:ji,detector:i(e=>/^\s*eventmodeling/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-Dex9JiR1.js`);return{diagram:e}},__vite__mapDeps([67,1,2,36,35,4,3,5,6,37]));return{id:ji,diagram:e}},`loader`)},Ni=`ishikawa`,Pi={id:Ni,detector:i(e=>/^\s*ishikawa(-beta)?\b/i.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-IsizPYbz.js`);return{diagram:e}},__vite__mapDeps([68,1,2,3,4,5,6,11]));return{id:Ni,diagram:e}},`loader`)},Fi=`venn`,Ii={id:Fi,detector:i(e=>/^\s*venn-beta/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-CUsQ7lH1.js`);return{diagram:e}},__vite__mapDeps([69,1,2,3,4,5,6,11]));return{id:Fi,diagram:e}},`loader`)},Li=`treemap`,Ri={id:Li,detector:i(e=>/^\s*treemap/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-9-3VOpWX.js`);return{diagram:e}},__vite__mapDeps([70,1,2,35,4,36,3,45,42,41,5,6,37,9,28]));return{id:Li,diagram:e}},`loader`)},zi=`wardley`,Bi={id:zi,detector:i(e=>/^\s*wardley-beta/i.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-nKL3T2Rn.js`);return{diagram:e}},__vite__mapDeps([71,1,2,35,4,36,3,5,6,37]));return{id:zi,diagram:e}},`loader`)},Vi=`cynefin`,Hi={id:Vi,detector:i(e=>/^\s*cynefin-beta(?:[\s:]|$)/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-Bk4d_k6M.js`);return{diagram:e}},__vite__mapDeps([72,1,2,35,4,36,3,5,6,37]));return{id:Vi,diagram:e}},`loader`)},Ui=`railroad`,Wi={id:Ui,detector:i(e=>/^\s*railroad-beta/i.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-DHkjHDYG.js`);return{diagram:e}},__vite__mapDeps([73,1,2,35,4,36,3,74,37]));return{id:Ui,diagram:e}},`loader`)},Gi=`railroadEbnf`,Ki={id:Gi,detector:i(e=>/^\s*railroad-ebnf-beta/i.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-BOfOlrLQ.js`);return{diagram:e}},__vite__mapDeps([75,1,2,35,4,36,3,74,37]));return{id:Gi,diagram:e}},`loader`)},qi=`railroadAbnf`,Ji={id:qi,detector:i(e=>/^\s*railroad-abnf-beta/i.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-CqMjOmHM.js`);return{diagram:e}},__vite__mapDeps([76,1,2,35,4,36,3,74,37]));return{id:qi,diagram:e}},`loader`)},Yi=`railroadPeg`,Xi={id:Yi,detector:i(e=>/^\s*railroad-peg-beta/i.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-CMKpUUG0.js`);return{diagram:e}},__vite__mapDeps([77,1,2,35,4,36,3,74,37]));return{id:Yi,diagram:e}},`loader`)},Zi=!1,Qi=i(()=>{Zi||(Zi=!0,u(`error`,ui,e=>e.toLowerCase().trim()===`error`),u(`---`,{db:{clear:i(()=>{},`clear`)},styles:{},renderer:{draw:i(()=>{},`draw`)},parser:{parse:i(()=>{throw Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},`parse`)},init:i(()=>null,`init`)},e=>e.toLowerCase().trimStart().startsWith(`---`)),d(fi,gi,Ai),d(Dr,vi,ti,$r,Fr,zr,Vr,Ur,Yr,Zr,Nr,jr,kr,mi,Lr,ai,ri,si,Gr,bi,Si,qr,Ei,Mi,Oi,wi,Pi,Ri,Wi,Ki,Ji,Xi,Ii,Bi,Hi))},`addDiagrams`),$i=i(async()=>{t.debug(`Loading registered diagrams`);let e=(await Promise.allSettled(Object.entries(w).map(async([e,{detector:n,loader:r}])=>{if(r)try{p(e)}catch{try{let{diagram:e,id:t}=await r();u(t,e,n)}catch(n){throw t.error(`Failed to load external diagram with key ${e}. Removing from detectors.`),delete w[e],n}}}))).filter(e=>e.status===`rejected`);if(e.length>0){t.error(`Failed to load ${e.length} external diagrams`);for(let n of e)t.error(n);throw Error(`Failed to load ${e.length} external diagrams`)}},`loadRegisteredDiagrams`),ea=`graphics-document document`;function ta(e,t){e.attr(`role`,ea),t!==``&&e.attr(`aria-roledescription`,t)}i(ta,`setA11yDiagramInfo`);function na(e,t,n,r){if(e.insert!==void 0){if(n){let t=`chart-desc-${r}`;e.attr(`aria-describedby`,t),e.insert(`desc`,`:first-child`).attr(`id`,t).text(n)}if(t){let n=`chart-title-${r}`;e.attr(`aria-labelledby`,n),e.insert(`title`,`:first-child`).attr(`id`,n).text(t)}}}i(na,`addSVGa11yTitleDescription`);var ra=class e{constructor(e,t,n,r,i){this.type=e,this.text=t,this.db=n,this.parser=r,this.renderer=i}static{i(this,`Diagram`)}static async fromText(t,n={}){let r=b(),i=E(t,r);t=te(t)+`
35
+ `:``}return i(R,`dump2`),bn.dump=R,bn}i(Sn,`requireDumper`);var Cn;function wn(){if(Cn)return U;Cn=1;let e=yn(),t=Sn();function n(e,t){return function(){throw Error(`Function yaml.`+e+` is removed in js-yaml 4. Use yaml.`+t+` instead, which is now safe by default.`)}}return i(n,`renamed`),U.Type=K(),U.Schema=yt(),U.FAILSAFE_SCHEMA=jt(),U.JSON_SCHEMA=Kt(),U.CORE_SCHEMA=Yt(),U.DEFAULT_SCHEMA=_n(),U.load=e.load,U.loadAll=e.loadAll,U.dump=t.dump,U.YAMLException=dt(),U.types={binary:an(),float:Ut(),map:Ot(),null:Pt(),pairs:dn(),set:mn(),timestamp:Qt(),bool:Lt(),int:Bt(),merge:tn(),omap:cn(),seq:Tt(),str:St()},U.safeLoad=n(`safeLoad`,`load`),U.safeLoadAll=n(`safeLoadAll`,`loadAll`),U.safeDump=n(`safeDump`,`dump`),U}i(wn,`requireJsYaml`);var{Type:Tn,Schema:En,FAILSAFE_SCHEMA:Dn,JSON_SCHEMA:On,CORE_SCHEMA:kn,DEFAULT_SCHEMA:An,load:jn,loadAll:Mn,dump:Nn,YAMLException:Pn,types:Fn,safeLoad:In,safeLoadAll:Ln,safeDump:Rn}=ot(wn()),zn=`comm`,Bn=`rule`,Vn=`decl`,Hn=`@import`,Un=`@namespace`,Wn=`@keyframes`,Gn=`@layer`,Kn=Math.abs,qn=String.fromCharCode;function Jn(e){return e.trim()}function Yn(e,t,n){return e.replace(t,n)}function Xn(e,t){return e.charCodeAt(t)|0}function Zn(e,t,n){return e.slice(t,n)}function q(e){return e.length}function Qn(e){return e.length}function $n(e,t){return t.push(e),e}var er=1,tr=1,nr=0,J=0,Y=0,rr=``;function ir(e,t,n,r,i,a,o,s){return{value:e,root:t,parent:n,type:r,props:i,children:a,line:er,column:tr,length:o,return:``,siblings:s}}function ar(){return Y}function or(){return Y=J>0?Xn(rr,--J):0,tr--,Y===10&&(tr=1,er--),Y}function X(){return Y=J<nr?Xn(rr,J++):0,tr++,Y===10&&(tr=1,er++),Y}function Z(){return Xn(rr,J)}function sr(){return J}function cr(e,t){return Zn(rr,e,t)}function lr(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function ur(e){return er=tr=1,nr=q(rr=e),J=0,[]}function dr(e){return rr=``,e}function fr(e){return Jn(cr(J-1,hr(e===91?e+2:e===40?e+1:e)))}function pr(e){for(;(Y=Z())&&Y<33;)X();return lr(e)>2||lr(Y)>3?``:` `}function mr(e,t){for(;--t&&X()&&!(Y<48||Y>102||Y>57&&Y<65||Y>70&&Y<97););return cr(e,sr()+(t<6&&Z()==32&&X()==32))}function hr(e){for(;X();)switch(Y){case e:return J;case 34:case 39:e!==34&&e!==39&&hr(Y);break;case 40:e===41&&hr(e);break;case 92:X()}return J}function gr(e,t){for(;X()&&e+Y!==57&&(e+Y!==84||Z()!==47););return`/*`+cr(t,J-1)+`*`+qn(e===47?e:X())}function _r(e){for(;!lr(Z());)X();return cr(e,J)}function vr(e){return dr(yr(``,null,null,null,[``],e=ur(e),0,[0],e))}function yr(e,t,n,r,i,a,o,s,c){for(var l=0,u=0,d=o,f=0,p=0,m=0,h=1,g=1,_=1,v=0,y=0,b=``,x=i,S=a,C=r,w=b;g;)switch(m=y,y=X()){case 40:m!=108&&Xn(w,d-1)==58?(v++,w+=`(`):w+=fr(y);break;case 41:v--,w+=`)`;break;case 34:case 39:case 91:w+=fr(y);break;case 9:case 10:case 13:case 32:if(v>0){w+=qn(y);break}w+=pr(m);break;case 92:w+=mr(sr()-1,7);continue;case 47:switch(Z()){case 42:case 47:$n(xr(gr(X(),sr()),t,n,c),c),(lr(m||1)==5||lr(Z()||1)==5)&&q(w)&&Zn(w,-1,void 0)!==` `&&(w+=` `);break;default:w+=`/`}break;case 123*h:s[l++]=q(w)*_;case 125*h:case 59:case 0:if(v>0&&y){w+=qn(y);break}switch(y){case 0:case 125:g=0;case 59+u:_==-1&&(w=Yn(w,/\f/g,``)),p>0&&(q(w)-d||h===0)&&$n(p>32?Sr(w+`;`,r,n,d-1,c):Sr(Yn(w,` `,``)+`;`,r,n,d-2,c),c);break;case 59:w+=`;`;default:if($n(C=br(w,t,n,l,u,i,s,b,x=[],S=[],d,a),a),y===123){if(u===0)yr(w,t,C,C,x,a,d,s,S);else{switch(f){case 99:if(Xn(w,3)===110)break;case 108:if(Xn(w,2)===97)break;default:u=0;case 100:case 109:case 115:}u?yr(e,C,C,r&&$n(br(e,C,C,0,0,i,s,b,i,x=[],d,S),S),i,S,d,s,r?x:S):yr(w,C,C,C,[``],S,0,s,S)}}}l=u=p=0,h=_=1,b=w=``,d=o;break;case 58:d=1+q(w),p=m;default:if(h<1){if(y==123)--h;else if(y==125&&h++==0&&or()==125)continue}switch(w+=qn(y),y*h){case 38:_=u>0?1:(w+=`\f`,-1);break;case 44:if(v>0)break;s[l++]=(q(w)-1)*_,_=1;break;case 64:Z()===45&&(w+=fr(X())),f=Z(),u=d=q(b=w+=_r(sr())),y++;break;case 45:m===45&&q(w)==2&&(h=0)}}return a}function br(e,t,n,r,i,a,o,s,c,l,u,d){for(var f=i-1,p=i===0?a:[``],m=Qn(p),h=0,g=0,_=0;h<r;++h)for(var v=0,y=Zn(e,f+1,f=Kn(g=o[h])),b=e;v<m;++v)(b=Jn(g>0?p[v]+` `+y:Yn(y,/&\f/g,p[v])))&&(c[_++]=b);return ir(e,t,n,i===0?Bn:s,c,l,u,d)}function xr(e,t,n,r){return ir(e,t,n,zn,qn(ar()),Zn(e,2,-2),0,r)}function Sr(e,t,n,r,i){return ir(e,t,n,Vn,Zn(e,0,r),Zn(e,r+1,-1),r,i)}function Cr(e,t){for(var n=``,r=0;r<e.length;r++)n+=t(e[r],r,e,t)||``;return n}function wr(e,t,n,r){switch(e.type){case Gn:if(e.children.length)break;case Hn:case Un:case Vn:return e.return=e.return||e.value;case zn:return``;case Wn:return e.return=e.value+`{`+Cr(e.children,r)+`}`;case Bn:if(!q(e.value=e.props.join(`,`)))return``}return q(n=Cr(e.children,r))?e.return=e.value+`{`+n+`}`:``}function Tr(e){var t=Qn(e);return function(n,r,i,a){for(var o=``,s=0;s<t;s++)o+=e[s](n,r,i,a)||``;return o}}var Er=`c4`,Dr={id:Er,detector:i(e=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-Cp5EDur4.js`);return{diagram:e}},__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10,11,12,26]));return{id:Er,diagram:e}},`loader`)},Or=`flowchart`,kr={id:Or,detector:i((e,t)=>t?.flowchart?.defaultRenderer===`dagre-wrapper`||t?.flowchart?.defaultRenderer===`elk`?!1:/^\s*graph/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-C26MXXwi.js`);return{diagram:e}},__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,26,28,29,20,30,31,32]));return{id:Or,diagram:e}},`loader`)},Ar=`flowchart-v2`,jr={id:Ar,detector:i((e,t)=>t?.flowchart?.defaultRenderer!==`dagre-d3`&&(t?.flowchart?.defaultRenderer===`elk`&&(t.layout=`elk`),/^\s*graph/.test(e)&&t?.flowchart?.defaultRenderer===`dagre-wrapper`?!0:/^\s*flowchart/.test(e)),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-C26MXXwi.js`);return{diagram:e}},__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,26,28,29,20,30,31,32]));return{id:Ar,diagram:e}},`loader`)},Mr=`swimlane`,Nr={id:Mr,detector:i(e=>/^\s*swimlane-beta\b/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-CoIQ0XcM.js`);return{diagram:e}},__vite__mapDeps([33,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,26,28,29,20,30,31,32]));return{id:Mr,diagram:e}},`loader`)},Pr=`er`,Fr={id:Pr,detector:i(e=>/^\s*erDiagram/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-DQT7Z75O.js`);return{diagram:e}},__vite__mapDeps([34,1,2,3,4,5,31,6,7,8,9,10,11,12,13,14,15,16,17,28,29,20]));return{id:Pr,diagram:e}},`loader`)},Ir=`gitGraph`,Lr={id:Ir,detector:i(e=>/^\s*gitGraph/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-dQvmgBo8.js`);return{diagram:e}},__vite__mapDeps([35,1,2,36,4,5,37,3,6,7,38,39]));return{id:Ir,diagram:e}},`loader`)},Rr=`gantt`,zr={id:Rr,detector:i(e=>/^\s*gantt/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-B8V5WPf1.js`);return{diagram:e}},__vite__mapDeps([40,1,2,3,4,5,41,42,43,7,6]));return{id:Rr,diagram:e}},`loader`)},Br=`info`,Vr={id:Br,detector:i(e=>/^\s*info/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-BSUrFSfn.js`);return{diagram:e}},__vite__mapDeps([44,1,2,36,4,5,37,3]));return{id:Br,diagram:e}},`loader`)},Hr=`pie`,Ur={id:Hr,detector:i(e=>/^\s*pie/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-D289T3W2.js`);return{diagram:e}},__vite__mapDeps([45,1,2,36,4,5,37,3,46,43,16,7,47,17,6,38]));return{id:Hr,diagram:e}},`loader`)},Wr=`quadrantChart`,Gr={id:Wr,detector:i(e=>/^\s*quadrantChart/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-IOULrYuo.js`);return{diagram:e}},__vite__mapDeps([48,1,2,3,4,5,41,42,43]));return{id:Wr,diagram:e}},`loader`)},Kr=`xychart`,qr={id:Kr,detector:i(e=>/^\s*xychart(-beta)?/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-D5VxBvZv.js`);return{diagram:e}},__vite__mapDeps([49,1,2,3,4,5,41,42,43,46,6,7,15,16,17,8,9]));return{id:Kr,diagram:e}},`loader`)},Jr=`requirement`,Yr={id:Jr,detector:i(e=>/^\s*requirement(Diagram)?/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-lpcXIlNC.js`);return{diagram:e}},__vite__mapDeps([50,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,28,29,20]));return{id:Jr,diagram:e}},`loader`)},Xr=`sequence`,Zr={id:Xr,detector:i(e=>/^\s*sequenceDiagram/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-D3k4QmBl.js`);return{diagram:e}},__vite__mapDeps([51,1,2,3,4,5,7,6,26,39]));return{id:Xr,diagram:e}},`loader`)},Qr=`class`,$r={id:Qr,detector:i((e,t)=>t?.class?.defaultRenderer!==`dagre-wrapper`&&/^\s*classDiagram/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-Dh6xxjov.js`);return{diagram:e}},__vite__mapDeps([52,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,26,28,29,20,53,32]));return{id:Qr,diagram:e}},`loader`)},ei=`classDiagram`,ti={id:ei,detector:i((e,t)=>/^\s*classDiagram/.test(e)&&t?.class?.defaultRenderer===`dagre-wrapper`?!0:/^\s*classDiagram-v2/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-BmkZxg03.js`);return{diagram:e}},__vite__mapDeps([54,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,26,28,29,20,53,32]));return{id:ei,diagram:e}},`loader`)},ni=`state`,ri={id:ni,detector:i((e,t)=>t?.state?.defaultRenderer!==`dagre-wrapper`&&/^\s*stateDiagram/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-H9AITnpH.js`);return{diagram:e}},__vite__mapDeps([55,1,2,3,4,5,6,7,15,16,17,8,9,10,11,12,13,14,18,19,26,28,29,20,56]));return{id:ni,diagram:e}},`loader`)},ii=`stateDiagram`,ai={id:ii,detector:i((e,t)=>!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&t?.state?.defaultRenderer===`dagre-wrapper`),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-Dk6P4vVY.js`);return{diagram:e}},__vite__mapDeps([57,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,26,28,29,20,56]));return{id:ii,diagram:e}},`loader`)},oi=`journey`,si={id:oi,detector:i(e=>/^\s*journey/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-BVm3MgB2.js`);return{diagram:e}},__vite__mapDeps([58,1,2,3,4,5,47,16,7,32,26]));return{id:oi,diagram:e}},`loader`)},ci={draw:i((e,n,r)=>{t.debug(`rendering svg for syntax error
36
+ `);let i=xe(n),a=i.append(`g`);i.attr(`viewBox`,`0 0 2412 512`),x(i,100,512,!0),a.append(`path`).attr(`class`,`error-icon`).attr(`d`,`m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z`),a.append(`path`).attr(`class`,`error-icon`).attr(`d`,`m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z`),a.append(`path`).attr(`class`,`error-icon`).attr(`d`,`m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z`),a.append(`path`).attr(`class`,`error-icon`).attr(`d`,`m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z`),a.append(`path`).attr(`class`,`error-icon`).attr(`d`,`m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z`),a.append(`path`).attr(`class`,`error-icon`).attr(`d`,`m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z`),a.append(`text`).attr(`class`,`error-text`).attr(`x`,1440).attr(`y`,250).attr(`font-size`,`150px`).style(`text-anchor`,`middle`).text(`Syntax error in text`),a.append(`text`).attr(`class`,`error-text`).attr(`x`,1250).attr(`y`,400).attr(`font-size`,`100px`).style(`text-anchor`,`middle`).text(`mermaid version ${r}`)},`draw`)},li=ci,ui={db:{},renderer:ci,parser:{parse:i(()=>{},`parse`)}},di=`flowchart-elk`,fi={id:di,detector:i((e,t={})=>/^\s*flowchart-elk/.test(e)||/^\s*(flowchart|graph)/.test(e)&&t?.flowchart?.defaultRenderer===`elk`?(t.layout=`elk`,!0):!1,`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-C26MXXwi.js`);return{diagram:e}},__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,26,28,29,20,30,31,32]));return{id:di,diagram:e}},`loader`)},pi=`timeline`,mi={id:pi,detector:i(e=>/^\s*timeline/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-oxFaA6rD.js`);return{diagram:e}},__vite__mapDeps([59,1,2,3,4,5,47,16,7,6]));return{id:pi,diagram:e}},`loader`)},hi=`mindmap`,gi={id:hi,detector:i(e=>/^\s*mindmap/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-DBVuY2lB.js`);return{diagram:e}},__vite__mapDeps([60,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,28,29,20]));return{id:hi,diagram:e}},`loader`)},_i=`kanban`,vi={id:_i,detector:i(e=>/^\s*kanban/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-CNXFALfL.js`);return{diagram:e}},__vite__mapDeps([61,1,2,3,4,5,6,7,8,9,32,10,11,12,13,20]));return{id:_i,diagram:e}},`loader`)},yi=`sankey`,bi={id:yi,detector:i(e=>/^\s*sankey(-beta)?/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-BokiwdgS.js`);return{diagram:e}},__vite__mapDeps([62,1,2,3,4,5,46,43]));return{id:yi,diagram:e}},`loader`)},xi=`packet`,Si={id:xi,detector:i(e=>/^\s*packet(-beta)?/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-DlPtUH2x.js`);return{diagram:e}},__vite__mapDeps([63,1,2,36,4,5,37,3,6,7,38]));return{id:xi,diagram:e}},`loader`)},Ci=`radar`,wi={id:Ci,detector:i(e=>/^\s*radar-beta/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-DfcNMhQb.js`);return{diagram:e}},__vite__mapDeps([64,1,2,36,4,5,37,3,6,7,38]));return{id:Ci,diagram:e}},`loader`)},Ti=`block`,Ei={id:Ti,detector:i(e=>/^\s*block(-beta)?/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-DtQPBrIL.js`);return{diagram:e}},__vite__mapDeps([65,1,2,3,4,5,31,6,7,8,9,32,10,11,12,13,14,15,16,17,18]));return{id:Ti,diagram:e}},`loader`)},Di=`treeView`,Oi={id:Di,detector:i(e=>/^\s*treeView-beta/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-ChQTsUB2.js`);return{diagram:e}},__vite__mapDeps([66,1,2,36,4,5,37,3,6,7,38,8,39]));return{id:Di,diagram:e}},`loader`)},ki=`architecture`,Ai={id:ki,detector:i(e=>/^\s*architecture/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-BxpAJfRF.js`);return{diagram:e}},__vite__mapDeps([67,1,2,36,4,5,37,3,6,7,38,8,9,23]));return{id:ki,diagram:e}},`loader`)},ji=`eventmodeling`,Mi={id:ji,detector:i(e=>/^\s*eventmodeling/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-Dex9JiR1.js`);return{diagram:e}},__vite__mapDeps([68,1,2,37,36,4,5,3,6,7,38]));return{id:ji,diagram:e}},`loader`)},Ni=`ishikawa`,Pi={id:Ni,detector:i(e=>/^\s*ishikawa(-beta)?\b/i.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-IsizPYbz.js`);return{diagram:e}},__vite__mapDeps([69,1,2,3,4,5,6,7,12]));return{id:Ni,diagram:e}},`loader`)},Fi=`venn`,Ii={id:Fi,detector:i(e=>/^\s*venn-beta/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-CUsQ7lH1.js`);return{diagram:e}},__vite__mapDeps([70,1,2,3,4,5,6,7,12]));return{id:Fi,diagram:e}},`loader`)},Li=`treemap`,Ri={id:Li,detector:i(e=>/^\s*treemap/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-9-3VOpWX.js`);return{diagram:e}},__vite__mapDeps([71,1,2,36,4,5,37,3,46,43,42,6,7,38,10,29]));return{id:Li,diagram:e}},`loader`)},zi=`wardley`,Bi={id:zi,detector:i(e=>/^\s*wardley-beta/i.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-nKL3T2Rn.js`);return{diagram:e}},__vite__mapDeps([72,1,2,36,4,5,37,3,6,7,38]));return{id:zi,diagram:e}},`loader`)},Vi=`cynefin`,Hi={id:Vi,detector:i(e=>/^\s*cynefin-beta(?:[\s:]|$)/.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-Bk4d_k6M.js`);return{diagram:e}},__vite__mapDeps([73,1,2,36,4,5,37,3,6,7,38]));return{id:Vi,diagram:e}},`loader`)},Ui=`railroad`,Wi={id:Ui,detector:i(e=>/^\s*railroad-beta/i.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-DHkjHDYG.js`);return{diagram:e}},__vite__mapDeps([74,1,2,36,4,5,37,3,75,38]));return{id:Ui,diagram:e}},`loader`)},Gi=`railroadEbnf`,Ki={id:Gi,detector:i(e=>/^\s*railroad-ebnf-beta/i.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-BOfOlrLQ.js`);return{diagram:e}},__vite__mapDeps([76,1,2,36,4,5,37,3,75,38]));return{id:Gi,diagram:e}},`loader`)},qi=`railroadAbnf`,Ji={id:qi,detector:i(e=>/^\s*railroad-abnf-beta/i.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-CqMjOmHM.js`);return{diagram:e}},__vite__mapDeps([77,1,2,36,4,5,37,3,75,38]));return{id:qi,diagram:e}},`loader`)},Yi=`railroadPeg`,Xi={id:Yi,detector:i(e=>/^\s*railroad-peg-beta/i.test(e),`detector`),loader:i(async()=>{let{diagram:e}=await r(async()=>{let{diagram:e}=await import(`./chunk-CMKpUUG0.js`);return{diagram:e}},__vite__mapDeps([78,1,2,36,4,5,37,3,75,38]));return{id:Yi,diagram:e}},`loader`)},Zi=!1,Qi=i(()=>{Zi||(Zi=!0,u(`error`,ui,e=>e.toLowerCase().trim()===`error`),u(`---`,{db:{clear:i(()=>{},`clear`)},styles:{},renderer:{draw:i(()=>{},`draw`)},parser:{parse:i(()=>{throw Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},`parse`)},init:i(()=>null,`init`)},e=>e.toLowerCase().trimStart().startsWith(`---`)),d(fi,gi,Ai),d(Dr,vi,ti,$r,Fr,zr,Vr,Ur,Yr,Zr,Nr,jr,kr,mi,Lr,ai,ri,si,Gr,bi,Si,qr,Ei,Mi,Oi,wi,Pi,Ri,Wi,Ki,Ji,Xi,Ii,Bi,Hi))},`addDiagrams`),$i=i(async()=>{t.debug(`Loading registered diagrams`);let e=(await Promise.allSettled(Object.entries(w).map(async([e,{detector:n,loader:r}])=>{if(r)try{p(e)}catch{try{let{diagram:e,id:t}=await r();u(t,e,n)}catch(n){throw t.error(`Failed to load external diagram with key ${e}. Removing from detectors.`),delete w[e],n}}}))).filter(e=>e.status===`rejected`);if(e.length>0){t.error(`Failed to load ${e.length} external diagrams`);for(let n of e)t.error(n);throw Error(`Failed to load ${e.length} external diagrams`)}},`loadRegisteredDiagrams`),ea=`graphics-document document`;function ta(e,t){e.attr(`role`,ea),t!==``&&e.attr(`aria-roledescription`,t)}i(ta,`setA11yDiagramInfo`);function na(e,t,n,r){if(e.insert!==void 0){if(n){let t=`chart-desc-${r}`;e.attr(`aria-describedby`,t),e.insert(`desc`,`:first-child`).attr(`id`,t).text(n)}if(t){let n=`chart-title-${r}`;e.attr(`aria-labelledby`,n),e.insert(`title`,`:first-child`).attr(`id`,n).text(t)}}}i(na,`addSVGa11yTitleDescription`);var ra=class e{constructor(e,t,n,r,i){this.type=e,this.text=t,this.db=n,this.parser=r,this.renderer=i}static{i(this,`Diagram`)}static async fromText(t,n={}){let r=b(),i=E(t,r);t=te(t)+`
37
37
  `;try{p(i)}catch{let e=o(i);if(!e)throw new A(`Diagram ${i} not found.`);let{id:t,diagram:n}=await e();u(t,n)}let{db:a,parser:s,renderer:c,init:l}=p(i);return s.parser&&(s.parser.yy=a),a.clear?.(),l?.(r),n.title&&a.setDiagramTitle?.(n.title),await s.parse(t),new e(i,t,a,s,c)}async render(e,t){await this.renderer.draw(this.text,e,t,this)}getParser(){return this.parser}getType(){return this.type}},ia=[],aa=i(()=>{ia.forEach(e=>{e()}),ia=[]},`attachFunctions`),oa=i(e=>e.replace(/^\s*%%(?!{)[^\n]+\n?/gm,``).trimStart(),`cleanupComments`);function sa(e){let t=e.match(y);if(!t)return{text:e,metadata:{}};let n=t[1],r=jn(n?t[2].split(`
38
38
  `).map(e=>e.startsWith(n)?e.slice(n.length):e).join(`
39
39
  `):t[2],{schema:On})??{};r=typeof r==`object`&&!Array.isArray(r)?r:{};let i={};return r.displayMode&&(i.displayMode=r.displayMode.toString()),r.title&&(i.title=r.title.toString()),r.config&&(i.config=r.config),{text:e.slice(t[0].length),metadata:i}}i(sa,`extractFrontMatter`);var ca=i(e=>e.replace(/\r\n?/g,`
@@ -0,0 +1 @@
1
+ async function e(e,t){try{await navigator.clipboard.writeText(t);let n=e.textContent;e.textContent=`Copied`,window.setTimeout(()=>{e.textContent=n},1200)}catch{let n=document.createElement(`input`);n.type=`text`,n.readOnly=!0,n.value=t,n.className=`prb-menu-id`,n.setAttribute(`data-id-field`,``),e.after(n),n.select()}}export{e as t};
package/static/reviews.js CHANGED
@@ -1 +1 @@
1
- var e=[...document.querySelectorAll(`[data-card]`)],t=document.querySelector(`[data-search]`),n=document.querySelector(`[data-no-matches]`),r=`all`;function i(){let i=(t?.value??``).trim().toLowerCase(),a=0;for(let t of e){let e=r===`all`||t.dataset.status===r,n=!i||(t.dataset.searchText??``).includes(i),o=e&&n;t.hidden=!o,o&&(a+=1)}n&&(n.hidden=a>0||e.length===0)}t?.addEventListener(`input`,i),t?.addEventListener(`keydown`,e=>{e.key===`Escape`&&t.value!==``&&(e.preventDefault(),t.value=``,i())});for(let e of document.querySelectorAll(`[data-filter]`))e.addEventListener(`click`,()=>{r=e.dataset.filter??`all`;for(let t of document.querySelectorAll(`[data-filter]`))t.setAttribute(`aria-pressed`,String(t===e));i()});document.addEventListener(`click`,e=>{let t=e.target.closest(`[data-pin]`);if(!t?.dataset.pin)return;e.preventDefault(),e.stopPropagation();let n=t.getAttribute(`aria-pressed`)!==`true`;t.setAttribute(`aria-pressed`,String(n)),t.innerHTML=n?`&#9733;`:`&#9734;`,t.setAttribute(`aria-label`,`${n?`Unpin`:`Pin`} this review`),t.title=n?`Unpin`:`Pin to the top`;let r=t.closest(`[data-card]`);r&&(r.dataset.pinned=String(n)),fetch(`/pin`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:t.dataset.pin,pinned:n})}).catch(()=>{})}),document.addEventListener(`click`,e=>{let t=e.target.closest(`[data-history-toggle]`);if(!t)return;e.preventDefault(),e.stopPropagation();let n=t.parentElement?.querySelector(`[data-history-list]`);if(!n)return;let r=n.hidden;n.hidden=!r,t.setAttribute(`aria-expanded`,String(r))}),i();function a(e){for(let t of document.querySelectorAll(`[data-menu]`)){if(t===e)continue;let n=t.querySelector(`[data-menu-panel]`),r=t.querySelector(`[data-menu-trigger]`);n&&(n.hidden=!0),r?.setAttribute(`aria-expanded`,`false`),o(t)}}function o(e){let t=e.querySelector(`[data-menu-items]`),n=e.querySelector(`[data-menu-confirm]`);t&&(t.hidden=!1),n&&(n.hidden=!0),e.querySelector(`[data-menu-error]`)?.remove(),e.querySelector(`[data-id-field]`)?.remove()}document.addEventListener(`keydown`,e=>{e.key===`Escape`&&a()}),document.addEventListener(`click`,e=>{let t=e.target,n=t.closest(`[data-menu]`);if(!n)return void a();let r=t.closest(`[data-menu-trigger]`);if(r){e.preventDefault(),e.stopPropagation();let t=n.querySelector(`[data-menu-panel]`);if(!t)return;let i=t.hidden;a(n),o(n),t.hidden=!i,r.setAttribute(`aria-expanded`,String(i));return}let i=t.closest(`[data-copy-id]`);if(i?.dataset.copyId){e.preventDefault(),e.stopPropagation(),s(i,i.dataset.copyId);return}if(t.closest(`[data-delete]`)){e.preventDefault(),e.stopPropagation();let t=n.querySelector(`[data-menu-items]`),r=n.querySelector(`[data-menu-confirm]`);t&&(t.hidden=!0),r&&(r.hidden=!1);return}if(t.closest(`[data-cancel-delete]`)){e.preventDefault(),e.stopPropagation(),o(n);return}if(t.closest(`[data-confirm-delete]`)){e.preventDefault(),e.stopPropagation(),c(n);return}e.preventDefault(),e.stopPropagation()});async function s(e,t){try{await navigator.clipboard.writeText(t);let n=e.textContent;e.textContent=`Copied`,window.setTimeout(()=>{e.textContent=n},1200)}catch{let n=document.createElement(`input`);n.type=`text`,n.readOnly=!0,n.value=t,n.className=`prb-menu-id`,n.setAttribute(`data-id-field`,``),e.after(n),n.select()}}async function c(e){let t=e.querySelector(`[data-delete]`),n=t?.dataset.delete;if(!n)return;let r=e.querySelector(`[data-menu-confirm]`),i=e.querySelector(`[data-confirm-delete]`);i&&(i.disabled=!0,i.textContent=`Deleting`);try{let r=await fetch(`/delete`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:n,scope:t?.dataset.scope??`review`})});if(r.ok)return void window.location.reload();l(e,(await r.json().catch(()=>null))?.error??`That could not be deleted.`)}catch{l(e,`The workspace server did not answer. It may have stopped.`)}i&&(i.disabled=!1,i.textContent=`Delete`),r&&(r.hidden=!0);let a=e.querySelector(`[data-menu-items]`);a&&(a.hidden=!1)}function l(e,t){e.querySelector(`[data-menu-error]`)?.remove();let n=document.createElement(`p`);n.className=`prb-menu-error`,n.setAttribute(`data-menu-error`,``),n.textContent=t,e.querySelector(`[data-menu-panel]`)?.append(n)}
1
+ import{t as e}from"./chunk-B9H2wUlQ.js";var t=[...document.querySelectorAll(`[data-card]`)],n=document.querySelector(`[data-search]`),r=document.querySelector(`[data-no-matches]`),i=`all`;function a(){let e=(n?.value??``).trim().toLowerCase(),a=0;for(let n of t){let t=i===`all`||n.dataset.status===i,r=!e||(n.dataset.searchText??``).includes(e),o=t&&r;n.hidden=!o,o&&(a+=1)}r&&(r.hidden=a>0||t.length===0)}n?.addEventListener(`input`,a),n?.addEventListener(`keydown`,e=>{e.key===`Escape`&&n.value!==``&&(e.preventDefault(),n.value=``,a())});for(let e of document.querySelectorAll(`[data-filter]`))e.addEventListener(`click`,()=>{i=e.dataset.filter??`all`;for(let t of document.querySelectorAll(`[data-filter]`))t.setAttribute(`aria-pressed`,String(t===e));a()});document.addEventListener(`click`,e=>{let t=e.target.closest(`[data-pin]`);if(!t?.dataset.pin)return;e.preventDefault(),e.stopPropagation();let n=t.getAttribute(`aria-pressed`)!==`true`;t.setAttribute(`aria-pressed`,String(n)),t.innerHTML=n?`&#9733;`:`&#9734;`,t.setAttribute(`aria-label`,`${n?`Unpin`:`Pin`} this review`),t.title=n?`Unpin`:`Pin to the top`;let r=t.closest(`[data-card]`);r&&(r.dataset.pinned=String(n)),fetch(`/pin`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:t.dataset.pin,pinned:n})}).catch(()=>{})}),document.addEventListener(`click`,e=>{let t=e.target.closest(`[data-history-toggle]`);if(!t)return;e.preventDefault(),e.stopPropagation();let n=t.parentElement?.querySelector(`[data-history-list]`);if(!n)return;let r=n.hidden;n.hidden=!r,t.setAttribute(`aria-expanded`,String(r))}),a();function o(e){for(let t of document.querySelectorAll(`[data-menu]`)){if(t===e)continue;let n=t.querySelector(`[data-menu-panel]`),r=t.querySelector(`[data-menu-trigger]`);n&&(n.hidden=!0),r?.setAttribute(`aria-expanded`,`false`),s(t)}}function s(e){let t=e.querySelector(`[data-menu-items]`),n=e.querySelector(`[data-menu-confirm]`);t&&(t.hidden=!1),n&&(n.hidden=!0),e.querySelector(`[data-menu-error]`)?.remove(),e.querySelector(`[data-id-field]`)?.remove()}document.addEventListener(`keydown`,e=>{e.key===`Escape`&&o()}),document.addEventListener(`click`,t=>{let n=t.target,r=n.closest(`[data-menu]`);if(!r)return void o();let i=n.closest(`[data-menu-trigger]`);if(i){t.preventDefault(),t.stopPropagation();let e=r.querySelector(`[data-menu-panel]`);if(!e)return;let n=e.hidden;o(r),s(r),e.hidden=!n,i.setAttribute(`aria-expanded`,String(n));return}let a=n.closest(`[data-copy-id]`);if(a?.dataset.copyId){t.preventDefault(),t.stopPropagation(),e(a,a.dataset.copyId);return}if(n.closest(`[data-delete]`)){t.preventDefault(),t.stopPropagation();let e=r.querySelector(`[data-menu-items]`),n=r.querySelector(`[data-menu-confirm]`);e&&(e.hidden=!0),n&&(n.hidden=!1);return}if(n.closest(`[data-cancel-delete]`)){t.preventDefault(),t.stopPropagation(),s(r);return}if(n.closest(`[data-confirm-delete]`)){t.preventDefault(),t.stopPropagation(),c(r);return}t.preventDefault(),t.stopPropagation()});async function c(e){let t=e.querySelector(`[data-delete]`),n=t?.dataset.delete;if(!n)return;let r=e.querySelector(`[data-menu-confirm]`),i=e.querySelector(`[data-confirm-delete]`);i&&(i.disabled=!0,i.textContent=`Deleting`);try{let r=await fetch(`/delete`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:n,scope:t?.dataset.scope??`review`})});if(r.ok)return void window.location.reload();l(e,(await r.json().catch(()=>null))?.error??`That could not be deleted.`)}catch{l(e,`The workspace server did not answer. It may have stopped.`)}i&&(i.disabled=!1,i.textContent=`Delete`),r&&(r.hidden=!0);let a=e.querySelector(`[data-menu-items]`);a&&(a.hidden=!1)}function l(e,t){e.querySelector(`[data-menu-error]`)?.remove();let n=document.createElement(`p`);n.className=`prb-menu-error`,n.setAttribute(`data-menu-error`,``),n.textContent=t,e.querySelector(`[data-menu-panel]`)?.append(n)}
package/static/shell.css CHANGED
@@ -2166,15 +2166,35 @@ a.prb-rail-item { text-decoration: none; }
2166
2166
  font-size: 15px;
2167
2167
  line-height: 1;
2168
2168
  cursor: pointer;
2169
- opacity: 0;
2170
2169
  }
2171
- .prb-card:hover .prb-menu-trigger,
2172
- .prb-card-history-row:hover .prb-menu-trigger,
2173
- .prb-menu-trigger[aria-expanded="true"],
2174
- .prb-menu:focus-within .prb-menu-trigger { opacity: 1; }
2175
- .prb-menu-trigger:hover { background: var(--surface-2); color: var(--text-primary); }
2170
+ /*
2171
+ * Always visible, unlike the pin beside it.
2172
+ *
2173
+ * It was hover-revealed, copied from the pin, and that was wrong the moment it stopped being
2174
+ * decorative. The pin is a state you can see the result of without the control: a pinned card looks
2175
+ * pinned. This menu is the only route to a review's ID, which `--delete` requires, so hiding it
2176
+ * made a required identifier undiscoverable to anybody who did not already know to sweep the mouse
2177
+ * across a card. A control you have to find by accident is not an affordance.
2178
+ */
2179
+ .prb-menu-trigger:hover,
2180
+ .prb-menu-trigger[aria-expanded="true"] { background: var(--surface-2); color: var(--text-primary); }
2176
2181
  .prb-menu-trigger:focus-visible { outline: 2px solid var(--brand-hover); outline-offset: -2px; }
2177
2182
 
2183
+ /*
2184
+ * In the workspace header the menu is one control in a row of them, not an overlay in a corner.
2185
+ *
2186
+ * The base rule pins it to a card's top-right, which is the only place it lived until the review
2187
+ * page got one. Dropped into a flex header it kept those offsets and landed on top of the Buddy AI
2188
+ * button: present in the DOM, clickable in a test, and invisible to a person. Position it as the
2189
+ * flex child it is here and let the panel hang off it.
2190
+ */
2191
+ .prb-header .prb-menu {
2192
+ position: relative;
2193
+ top: auto;
2194
+ right: auto;
2195
+ display: inline-flex;
2196
+ }
2197
+
2178
2198
  /* The history rows are their own menus, and they sit inside a narrower box than the card. */
2179
2199
  .prb-card-history-row { position: relative; }
2180
2200
  .prb-card-history-row .prb-menu { top: 3px; right: 4px; }
Binary file