koboyo 0.4.0 → 0.5.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.
Files changed (169) hide show
  1. package/README.md +26 -0
  2. package/assets/editor/assets/ContextMenuTrigger-C6XZ9rqq.js +1 -0
  3. package/assets/editor/assets/{IconHelp-CaEwHrsN.js → IconHelp-Bf6OkQYw.js} +2 -2
  4. package/assets/editor/assets/IconReplace-CYUD1RLF.js +1 -0
  5. package/assets/editor/assets/IconSquare-Ce_qY-mF.js +1 -0
  6. package/assets/editor/assets/MenuSubmenuTrigger-CTLO1z_0.js +1 -0
  7. package/assets/editor/assets/{PopoverPopup-B3Y0VRYc.js → PopoverPopup-CvnB7nJs.js} +1 -1
  8. package/assets/editor/assets/asset-glyph-Dxg-7b67.js +1 -0
  9. package/assets/editor/assets/build-pips-DsgLkk6R.js +1 -0
  10. package/assets/editor/assets/build-visibility-0Y4EP2Ka.js +1 -0
  11. package/assets/editor/assets/builders-hABCgtrj.js +1 -0
  12. package/assets/editor/assets/{chrome-layout-BzPU9far.js → chrome-layout-500Q9pcx.js} +1 -1
  13. package/assets/editor/assets/code-panel-CHMqHqc6.js +18 -0
  14. package/assets/editor/assets/color-swatches-BC1-16T-.js +1 -0
  15. package/assets/editor/assets/{command-palette-BR-_ChOL.js → command-palette-BNj4FPOh.js} +1 -1
  16. package/assets/editor/assets/connector-labels-piWvprqQ.js +2 -0
  17. package/assets/editor/assets/{copy-image-dialog-BzGP7Xw8.js → copy-image-dialog-BdQfoSGr.js} +1 -1
  18. package/assets/editor/assets/core-DnS-1skV.js +1 -0
  19. package/assets/editor/assets/create-Bd0K44Bi.js +1 -0
  20. package/assets/editor/assets/custom-shape-view-_TxDE4zO.js +1 -0
  21. package/assets/editor/assets/custom-shapes-D3n9PjCN.js +1 -0
  22. package/assets/editor/assets/diagram-fingerprint-CtYYDDQV.js +3 -0
  23. package/assets/editor/assets/edit-NIyQT3d_.js +1 -0
  24. package/assets/editor/assets/editor-CpiNbiMQ.js +1 -0
  25. package/assets/editor/assets/{elk-api-C4wlHVIw.js → elk-api-DfUWdVFD.js} +1 -1
  26. package/assets/editor/assets/elk-worker-loader-D09QKxa0.js +3 -0
  27. package/assets/editor/assets/embed-input-D77Udvni.js +1 -0
  28. package/assets/editor/assets/excalidraw-D0kr_KKg.js +1 -0
  29. package/assets/editor/assets/export-DUFOrZJ-.js +6 -0
  30. package/assets/editor/assets/export-HJI2Aq3h.js +2 -0
  31. package/assets/editor/assets/export-dialog-Edoe6LBK.js +1 -0
  32. package/assets/editor/assets/flow-layer-DX6oKkg8.js +1 -0
  33. package/assets/editor/assets/flow-panel-BsbC8WAJ.js +1 -0
  34. package/assets/editor/assets/flow-stage-DFvraJ0j.js +1 -0
  35. package/assets/editor/assets/{flow-start-CpAvU-9P.js → flow-start-D_gK7Gur.js} +1 -1
  36. package/assets/editor/assets/flows-BAU4NQGk.js +3 -0
  37. package/assets/editor/assets/frames-C-jROub3.js +5 -0
  38. package/assets/editor/assets/generate-BWJhhTxM.js +26 -0
  39. package/assets/editor/assets/geometry-CVRSymIE.js +1 -0
  40. package/assets/editor/assets/icon-picker-cggWIJiD.js +1 -0
  41. package/assets/editor/assets/icons-K7FjuB-c.js +2 -0
  42. package/assets/editor/assets/{image-library-JQu_tb8P.js → image-library-BG41F2Zi.js} +1 -1
  43. package/assets/editor/assets/{index-DBrN0u0i.css → index-B0dKwEIM.css} +1 -1
  44. package/assets/editor/assets/index-BSs3RHtR.js +25 -0
  45. package/assets/editor/assets/layout-offthread-3DtYtT7h.js +18 -0
  46. package/assets/editor/assets/layout.worker-B99h3Wv0.js +28 -0
  47. package/assets/editor/assets/menu-rOnlAYaK.js +1 -0
  48. package/assets/editor/assets/mermaid-paste-C1_G99Lz.js +1 -0
  49. package/assets/editor/assets/panel-controls-BT48HF6c.js +1 -0
  50. package/assets/editor/assets/{panel-shell-BnMOHgWM.js → panel-shell-CSvihB5L.js} +1 -1
  51. package/assets/editor/assets/plan-BS_pzMjA.js +1 -0
  52. package/assets/editor/assets/presentation-DlKoEXsq.js +1 -0
  53. package/assets/editor/assets/{presenter-keys-Bs3LnmOa.js → presenter-keys-uSrN0NG3.js} +1 -1
  54. package/assets/editor/assets/rich-paste-route-Bx69sREx.js +1 -0
  55. package/assets/editor/assets/ride-overlay-ChaS8O9D.js +1 -0
  56. package/assets/editor/assets/selection-overlay-primitives-DXtdWjNx.js +1 -0
  57. package/assets/editor/assets/shape-meta-CZ0aZy7a.js +1 -0
  58. package/assets/editor/assets/shape-render-PK6dqxxf.js +1 -0
  59. package/assets/editor/assets/shapes-CHDGoELO.js +11 -0
  60. package/assets/editor/assets/shared-DKcKntwk.js +1 -0
  61. package/assets/editor/assets/{slide-notes-dialog-BQBXpep6.js → slide-notes-dialog-CypGkEmF.js} +1 -1
  62. package/assets/editor/assets/slides-panel-D22Fponu.js +26 -0
  63. package/assets/editor/assets/table-PnIQtvp1.js +7 -0
  64. package/assets/editor/assets/text-breaks-BDwq8Wxj.js +7 -0
  65. package/assets/editor/assets/{theme-palette-Dl_G_VIJ.js → theme-palette-DZtiNUYJ.js} +1 -1
  66. package/assets/editor/assets/tidy-browser-DqAPzbkG.js +1 -0
  67. package/assets/editor/assets/tidy-scope-CQinfwtO.js +1 -0
  68. package/assets/editor/assets/tldraw-DSRiyEEW.js +2 -0
  69. package/assets/editor/assets/tool-catalog-DM8xoisn.js +1 -0
  70. package/assets/editor/assets/tool-drawer-hovu85Xd.js +1 -0
  71. package/assets/editor/assets/{tooltip-CyBz17g8.js → tooltip-ClTJbfBH.js} +1 -1
  72. package/assets/editor/assets/tree-Ch-RF7UJ.js +1 -0
  73. package/assets/editor/assets/use-export-command-CZva79qg.js +2 -0
  74. package/assets/editor/assets/use-grid-keyboard-nav-BhzrY178.js +0 -0
  75. package/assets/editor/assets/{use-icon-node-BxqH7H27.js → use-icon-node-B5V42drv.js} +1 -1
  76. package/assets/editor/assets/{use-key-held-094C3Mn3.js → use-key-held-DRn09Hq8.js} +1 -1
  77. package/assets/editor/assets/use-web-environment-Ce65LEhf.js +1 -0
  78. package/assets/editor/assets/useTriggerFocusGuards-Mibi8yYw.js +1 -0
  79. package/assets/editor/assets/web-card-BTru0lge.js +1 -0
  80. package/assets/editor/assets/web-card-font-BbZEq3En.js +1 -0
  81. package/assets/editor/assets/web-controls-DIAT8wcZ.js +1 -0
  82. package/assets/editor/assets/web-embed-dialog-CnaSzcu9.js +1 -0
  83. package/assets/editor/assets/web-embed-url-CHu4SU82.js +1 -0
  84. package/assets/editor/assets/web-embeds-I3saJ_yp.js +1 -0
  85. package/assets/editor/assets/web-html-dialog-DpkLs7qD.js +1 -0
  86. package/assets/editor/assets/web-runtime-DNdRiAlf.js +1 -0
  87. package/assets/editor/assets/web-widget-limits-DeMquLIR.js +1 -0
  88. package/assets/editor/assets/web-widgets-DsFUBhiq.js +325 -0
  89. package/assets/editor/assets/widget-source-C3N9ZKTz.js +2 -0
  90. package/assets/editor/assets/widget-target-C9a207gT.js +1 -0
  91. package/assets/editor/index.html +46 -40
  92. package/dist/koboyo.js +605 -269
  93. package/package.json +3 -3
  94. package/skills/koboyo/SKILL.md +8 -3
  95. package/skills/koboyo/references/architecture.md +3 -1
  96. package/skills/koboyo/references/bpmn.md +1 -1
  97. package/skills/koboyo/references/chart.md +1 -1
  98. package/skills/koboyo/references/cycle.md +1 -1
  99. package/skills/koboyo/references/erd.md +1 -1
  100. package/skills/koboyo/references/flowchart.md +1 -1
  101. package/skills/koboyo/references/funnel.md +1 -1
  102. package/skills/koboyo/references/gantt.md +1 -1
  103. package/skills/koboyo/references/gitgraph.md +1 -1
  104. package/skills/koboyo/references/journey.md +1 -1
  105. package/skills/koboyo/references/matrix.md +1 -1
  106. package/skills/koboyo/references/mindmap.md +1 -1
  107. package/skills/koboyo/references/orgchart.md +1 -1
  108. package/skills/koboyo/references/pyramid.md +1 -1
  109. package/skills/koboyo/references/sankey.md +1 -1
  110. package/skills/koboyo/references/sequence.md +1 -1
  111. package/skills/koboyo/references/statemachine.md +1 -1
  112. package/skills/koboyo/references/timeline.md +1 -1
  113. package/skills/koboyo/references/venn.md +1 -1
  114. package/skills/koboyo/references/wireframe.md +1 -1
  115. package/assets/editor/assets/MenuSubmenuTrigger-KacA9GM8.js +0 -1
  116. package/assets/editor/assets/asset-glyph-C1E6cGwM.js +0 -1
  117. package/assets/editor/assets/build-pips-BV-uwXlP.js +0 -1
  118. package/assets/editor/assets/build-visibility-DyML9SHt.js +0 -1
  119. package/assets/editor/assets/builders-DMHAOPEv.js +0 -1
  120. package/assets/editor/assets/chart-4iRduYdU.js +0 -7
  121. package/assets/editor/assets/code-panel-koBUgEWp.js +0 -43
  122. package/assets/editor/assets/connector-labels-CrEgadsC.js +0 -2
  123. package/assets/editor/assets/core-CmsJyU_-.js +0 -1
  124. package/assets/editor/assets/diagram-fingerprint-WGQ5iVXx.js +0 -3
  125. package/assets/editor/assets/edit-C0sBxxsg.js +0 -1
  126. package/assets/editor/assets/editor-BeufBV54.js +0 -1
  127. package/assets/editor/assets/elk-worker-loader-CVBdN1je.js +0 -3
  128. package/assets/editor/assets/excalidraw-BwgRIDi9.js +0 -1
  129. package/assets/editor/assets/export-Bce6ra0N.js +0 -2
  130. package/assets/editor/assets/export-K2VWg76n.js +0 -6
  131. package/assets/editor/assets/export-dialog-x2n2a4KX.js +0 -1
  132. package/assets/editor/assets/flow-layer-ewaL7g2y.js +0 -1
  133. package/assets/editor/assets/flow-panel-BzXNGGke.js +0 -1
  134. package/assets/editor/assets/flow-stage-Ba_CAggI.js +0 -1
  135. package/assets/editor/assets/flows-Cj7AFMIA.js +0 -3
  136. package/assets/editor/assets/frames-Cp1QD3LR.js +0 -1
  137. package/assets/editor/assets/icon-picker-Cg39IKNJ.js +0 -1
  138. package/assets/editor/assets/icon-sources-CZI1h18s.js +0 -1
  139. package/assets/editor/assets/icons-DzW1j-r3.js +0 -2
  140. package/assets/editor/assets/index-CBPPqsiR.js +0 -24
  141. package/assets/editor/assets/layout-offthread-mRHRulkS.js +0 -18
  142. package/assets/editor/assets/layout.worker-CekYkaxO.js +0 -27
  143. package/assets/editor/assets/menu-B9BAk63v.js +0 -1
  144. package/assets/editor/assets/panel-controls-DWVXiNUZ.js +0 -1
  145. package/assets/editor/assets/plan-CkgM52Yh.js +0 -1
  146. package/assets/editor/assets/presentation-DJUO0t7I.js +0 -1
  147. package/assets/editor/assets/reflow-DaYiVkwp.js +0 -1
  148. package/assets/editor/assets/registry-rEGZW7Ab.js +0 -1
  149. package/assets/editor/assets/ride-overlay-Hx90v4ZK.js +0 -1
  150. package/assets/editor/assets/selection-overlay-primitives-BRp854AD.js +0 -1
  151. package/assets/editor/assets/shape-meta-COE2ATNh.js +0 -1
  152. package/assets/editor/assets/shared-DjLCTIA9.js +0 -1
  153. package/assets/editor/assets/slides-D686obFO.js +0 -15
  154. package/assets/editor/assets/slides-panel-BEJCevJi.js +0 -26
  155. package/assets/editor/assets/style-BENGW2ZV.js +0 -1
  156. package/assets/editor/assets/text-breaks-DM4W6y5f.js +0 -7
  157. package/assets/editor/assets/tidy-browser-dF3BON7J.js +0 -1
  158. package/assets/editor/assets/tidy-scope-BGG3ZXvZ.js +0 -1
  159. package/assets/editor/assets/tldraw-CE87oKyq.js +0 -2
  160. package/assets/editor/assets/tool-catalog-DXPhX2S1.js +0 -1
  161. package/assets/editor/assets/tool-drawer-CWOX_njp.js +0 -1
  162. package/assets/editor/assets/tree-KSgPjntC.js +0 -1
  163. package/assets/editor/assets/use-export-command-sC9UHj3_.js +0 -2
  164. package/assets/editor/assets/use-grid-keyboard-nav-DhQKecO1.js +0 -0
  165. package/assets/editor/assets/web-controls-CLE9zr7i.js +0 -1
  166. package/assets/editor/assets/web-embed-dialog-XUNelFFM.js +0 -1
  167. package/assets/editor/assets/web-html-dialog-BcAyzH5D.js +0 -1
  168. package/assets/editor/assets/web-shape-C941TGTy.js +0 -1
  169. package/assets/editor/assets/widget-source-CHujvUeA.js +0 -1
@@ -0,0 +1,28 @@
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),l=(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);throw Error('Calling `require` for "'+e+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")});function u(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function d(e,t,n,r=!1){if(e.issues.length<100){e.issues.push({path:t,message:n}),r&&(e.unknownEnum+=1);return}e.capped=!0}function f(e,t,n){return typeof n==`number`&&Number.isFinite(n)?!0:(d(e,t,`expected a finite number`),!1)}function p(e,t,n){return typeof n==`string`?!0:(d(e,t,`expected a string`),!1)}function m(e,t,n){return typeof n==`boolean`?!0:(d(e,t,`expected a boolean`),!1)}function h(e,t,n,r){return typeof n==`string`?!r&&n.length===0?(d(e,t,`id must not be empty`),!1):n.length>256?(d(e,t,`id is too long`),!1):!0:(d(e,t,`expected a string id`),!1)}function g(e,t,n,r){return typeof n==`string`&&r.has(n)?!0:(d(e,t,`not an allowed value`,typeof n==`string`),!1)}function _(e,t,n){return typeof n==`number`&&Number.isFinite(n)&&n>=0&&n<=1?!0:(d(e,t,`expected a number in 0..1`),!1)}function v(e,t,n){return typeof n==`number`&&Number.isFinite(n)&&n>=-.2&&n<=1.2?!0:(d(e,t,`expected a number in -0.2..1.2`),!1)}function y(e,t,n){if(!u(n))return d(e,t,`expected a point`),!1;let r=f(e,`${t}.x`,n.x),i=f(e,`${t}.y`,n.y);return r&&i}function b(e,t,n){if(!Array.isArray(n))return d(e,t,`expected an array of points`),!1;let r=!0;for(let i=0;i<n.length&&!e.capped;i+=1)y(e,`${t}[${i}]`,n[i])||(r=!1);return r}function x(e,t,n,r){t[r]!==void 0&&f(e,`${n}.${r}`,t[r])}function S(e,t,n,r){t[r]!==void 0&&p(e,`${n}.${r}`,t[r])}function C(e,t,n,r){t[r]!==void 0&&m(e,`${n}.${r}`,t[r])}function w(e,t,n,r,i){t[r]!==void 0&&g(e,`${n}.${r}`,t[r],i)}const ee=[`solid`,`dashed`,`dotted`,`none`],T=[`curved`,`elbow`],te=[`arrow`,`sweep`,`triangle`,`triangleOutline`,`diamond`,`diamondOutline`,`circle`,`circleOutline`,`bar`,`cross`,`crowOne`,`crowMany`,`crowOneOrMany`,`crowOnlyOne`,`crowZeroOrOne`,`crowZeroOrMany`],E=[`pastel`,`bold`,`outline`,`shadow`],ne=[`left`,`center`,`right`],re=[`top`,`middle`,`bottom`],ie=[`n`,`s`,`e`,`w`,`ne`,`nw`,`se`,`sw`],ae=`rectangle.ellipse.diamond.triangle.oval.parallelogram.trapezoid.cylinder.note.hexagon.star.checkbox.crossbox.heart.cloud.arrow-up.arrow-down.arrow-left.arrow-right.plus.speech-bubble.bolt.queue.callout.document.predefined-process.manual-input.pentagon.chevron.octagon.cube.actor.double-circle.card.delay.fork-join.multi-document.multi-process.package.component.brace`.split(`.`),oe=[`sharp`,`rounded`],se=[`simple`,`phone`,`tablet`,`browser`,`window`,`lanes`,`vlanes`,`boundary`],ce=[`call`,`async`,`reply`],le=[`bar`,`line`,`area`,`scatter`,`pie`,`donut`,`radar`,`quadrant`],ue=[`number`,`percent`,`currency`],de=`button.input.search.checkbox.radio.toggle.dropdown.slider.navbar.tabs.image.avatar.heading.paragraph.divider.link.textarea.stepper.badge.progress.breadcrumbs.pagination.rating.card.list.alert.menu.tooltip.accordion.datepicker.sidebar.scrollbar.segmented.tabbar.statusbar.fab.stepbadge`.split(`.`),fe=[`embed`,`html`],pe=/^[a-z0-9][a-z0-9-]*\/[a-z0-9][a-z0-9-]*$/,me=new Set(ae),he=new Set(te),ge=new Set(ee),_e=new Set(E),ve=new Set(oe),ye=new Set(ne),be=new Set(re),xe=new Set(T),Se=new Set(le),Ce=new Set(ue),we=new Set(se),Te=new Set(ie),Ee=new Set(ce),De=new Set(fe),Oe={modal:!0,entity:!0,lifeline:!0,fragment:!0},ke=new Set([...de,...Object.keys(Oe)]),Ae=new Set([`hanging`,`inside`]),je=new Set([`x`,`y`]);function Me(e,t,n){if(n!==null){if(!u(n)){d(e,t,`expected a binding or null`);return}if(n.kind===`path`){h(e,`${t}.shapeId`,n.shapeId,!0),(typeof n.seg!=`number`||!Number.isInteger(n.seg)||n.seg<0)&&d(e,`${t}.seg`,`expected a nonnegative integer segment`),_(e,`${t}.t`,n.t);return}if(h(e,`${t}.shapeId`,n.shapeId,!0),y(e,`${t}.anchor`,n.anchor)){let r=n.anchor;v(e,`${t}.anchor.x`,r.x),v(e,`${t}.anchor.y`,r.y)}m(e,`${t}.precise`,n.precise),w(e,n,t,`port`,Te)}}function Ne(e,t,n,r){if(n!==void 0){if(!u(n)){d(e,`${t}.titleIcon`,`expected an object`);return}p(e,`${t}.titleIcon.source`,n.source),p(e,`${t}.titleIcon.name`,n.name),r&&w(e,n,`${t}.titleIcon`,`placement`,Ae)}}function Pe(e,t,n){if(n===void 0)return;if(typeof n!=`object`||!n){d(e,t,`expected an object`);return}let r=n;p(e,`${t}.from`,r.from),p(e,`${t}.to`,r.to);for(let n of[`fromTop`,`fromSpan`,`toTop`,`toSpan`])f(e,`${t}.${n}`,r[n])}function Fe(e,t,n){if(!u(n)){d(e,t,`expected a crop rectangle`);return}let r=_(e,`${t}.x`,n.x),i=_(e,`${t}.y`,n.y),a=_(e,`${t}.width`,n.width),o=_(e,`${t}.height`,n.height);r&&a&&n.x+n.width>1.000001&&d(e,t,`crop extends past the source width`),i&&o&&n.y+n.height>1.000001&&d(e,t,`crop extends past the source height`)}function Ie(e,t,n){if(n!==void 0){if(!Array.isArray(n)){d(e,t,`expected an array of strings`);return}for(let r=0;r<n.length&&!e.capped;r+=1)p(e,`${t}[${r}]`,n[r])}}function Le(e,t,n){if(n!==void 0){if(!Array.isArray(n)){d(e,t,`expected an array of numbers`);return}for(let r=0;r<n.length&&!e.capped;r+=1)f(e,`${t}[${r}]`,n[r])}}function Re(e,t,n){if(!Array.isArray(n)){d(e,t,`expected an array of numbers in 0..1`);return}for(let r=0;r<n.length&&!e.capped;r+=1)_(e,`${t}[${r}]`,n[r])}function ze(e,t,n){let r=n.cells,i=n.colWidths,a=n.rowHeights,o=Be(e,`${t}.colWidths`,i);Be(e,`${t}.rowHeights`,a);let s=o&&Array.isArray(i)?i.length:null;if(!Array.isArray(r)){d(e,`${t}.cells`,`expected a grid of rows`);return}Array.isArray(a)&&a.length!==r.length&&d(e,`${t}.rowHeights`,`must have one entry per row`);for(let n=0;n<r.length&&!e.capped;n+=1){let i=r[n];if(!Array.isArray(i)){d(e,`${t}.cells[${n}]`,`expected a row of cells`);continue}s!==null&&i.length!==s&&d(e,`${t}.cells[${n}]`,`row width does not match colWidths`);for(let r=0;r<i.length;r+=1)p(e,`${t}.cells[${n}][${r}]`,i[r])}Ve(e,`${t}.cellStyles`,n.cellStyles,r)}function Be(e,t,n){if(!Array.isArray(n))return d(e,t,`expected an array of numbers`),!1;let r=!0;for(let i=0;i<n.length&&!e.capped;i+=1)f(e,`${t}[${i}]`,n[i])||(r=!1);return r}function Ve(e,t,n,r){if(n!==void 0){if(!Array.isArray(n)){d(e,t,`expected a grid of cell styles`);return}n.length!==r.length&&d(e,t,`must mirror the cells grid`);for(let i=0;i<n.length&&!e.capped;i+=1){let a=n[i];if(!Array.isArray(a)){d(e,`${t}[${i}]`,`expected a row of cell styles`);continue}let o=r[i];Array.isArray(o)&&a.length!==o.length&&d(e,`${t}[${i}]`,`row width does not match the cells row`);for(let n=0;n<a.length;n+=1)He(e,`${t}[${i}][${n}]`,a[n])}}}function He(e,t,n){if(!u(n)){d(e,t,`expected a cell style object`);return}S(e,n,t,`fontFamily`),x(e,n,t,`fontSize`),S(e,n,t,`background`)}function Ue(e,t,n){if(!Array.isArray(n)){d(e,t,`expected a grid of rows`);return}for(let r=0;r<n.length&&!e.capped;r+=1){let i=n[r];if(!Array.isArray(i)){d(e,`${t}[${r}]`,`expected a row`);continue}for(let n=0;n<i.length;n+=1)p(e,`${t}[${r}][${n}]`,i[n])}}function We(e,t,n){if(n!==void 0){if(!Array.isArray(n)){d(e,t,`expected an array`);return}for(let r=0;r<n.length&&!e.capped;r+=1){let i=n[r];i==null||typeof i==`string`||d(e,`${t}[${r}]`,`expected a string or null`)}}}function Ge(e,t,n){if(n!==void 0){if(!Array.isArray(n)){d(e,t,`expected an array of flows`);return}n.forEach((n,r)=>{let i=`${t}[${r}]`;if(!u(n)){d(e,i,`expected a flow`);return}if(h(e,`${i}.id`,n.id,!1),p(e,`${i}.name`,n.name),!Array.isArray(n.steps)){d(e,`${i}.steps`,`expected an array of steps`);return}n.steps.forEach((t,n)=>{let r=`${i}.steps[${n}]`;if(!u(t)){d(e,r,`expected a step`);return}h(e,`${r}.target`,t.target,!1),p(e,`${r}.title`,t.title),S(e,t,r,`text`),Ie(e,`${r}.also`,t.also),w(e,t,r,`kind`,Ee),S(e,t,r,`payload`),Ie(e,`${r}.branches`,t.branches),C(e,t,r,`fails`)})})}}function Ke(e,t,n){if(!Array.isArray(n)){d(e,t,`expected an array of activation bars`);return}for(let r=0;r<n.length&&!e.capped;r+=1){let i=n[r];if(!u(i)){d(e,`${t}[${r}]`,`expected an activation bar`);continue}f(e,`${t}[${r}].top`,i.top),f(e,`${t}[${r}].height`,i.height)}}function D(e){return(t,n,r,i)=>{e(t,`${n}.${i}`,r[i])}}function O(e){return(t,n,r,i)=>{r[i]!==void 0&&e(t,n,r,i)}}function k(e){return D((t,n,r)=>g(t,n,r,e))}function qe(e){return(t,n,r)=>{Ne(t,n,r.titleIcon,e)}}const A=D(f),j=D(p),Je=D(m),Ye=D(b),M=O(A),N=O(j),P=O(Je),Xe=O(D(_)),Ze=O(Ye);function Qe(e,t,n){if(!Array.isArray(n)){d(e,t,`expected an array of point arrays`);return}for(let r=0;r<n.length&&!e.capped;r+=1)b(e,`${t}[${r}]`,n[r])}const $e=(e,t,n,r)=>{if(n[r]===void 0){d(e,`${t}.${r}`,`expected a binding or null`);return}Me(e,`${t}.${r}`,n[r])},et=()=>{},tt={traits:{geometry:`box`,color:!0,fill:!0,stroke:!0,dash:!0,font:`stored`,arrowEnds:!1,textField:`label`,edit:`text`,search:`label`,hit:`bounds`,animate:`box`,rotatable:!0,bindTarget:`node`,roles:{solid:!0,connectorObstacle:!0,graphNode:!0,snapsConnectors:!0,lineWork:!1},dataBearing:!1,codeBacked:!1},checks:{kind:k(me),x:A,y:A,width:A,height:A,rotation:A,label:j,fontSize:A,fontFamily:j,color:j,fill:j,strokeWidth:A,dash:k(ge),opacity:A,textAlign:O(k(ye)),textVAlign:O(k(be)),textPadding:M,lineHeight:M,letterSpacing:M,labelColor:N,stroke:N,fillStyle:O(k(_e)),corner:O(k(ve)),flipX:P,flipY:P,shadow:P,minHeight:M,autoHeightFrom:M,link:N,titleIcon:qe(!0)}},nt={traits:{geometry:`connector`,color:!0,fill:!1,stroke:!0,dash:!0,font:`optional`,arrowEnds:!0,textField:`label`,edit:`text`,search:`label`,hit:`stroke`,animate:`path`,rotatable:!0,bindTarget:`path`,roles:{solid:!1,connectorObstacle:!1,graphNode:!1,snapsConnectors:!1,lineWork:!0},dataBearing:!1,codeBacked:!1},checks:{x:A,y:A,x2:A,y2:A,bend:A,bendAlong:A,startBend:M,endBend:M,bendStyle:k(xe),color:j,strokeWidth:A,dash:k(ge),startArrow:Je,endArrow:Je,opacity:A,startBinding:$e,endBinding:$e,bow:M,bowAlong:M,elbowMid:Xe,labelAlong:Xe,elbowPoints:Ze,elbowRoute:Ze,elbowMidHandle:O(D((e,t,n)=>{if(!u(n)){d(e,t,`expected an object`);return}f(e,`${t}.x`,n.x),f(e,`${t}.y`,n.y),g(e,`${t}.axis`,n.axis,je),f(e,`${t}.span`,n.span)})),label:N,startLabel:N,endLabel:N,fontSize:M,fontFamily:N,startHead:O(k(he)),endHead:O(k(he)),flow:P}},rt={traits:{geometry:`text`,color:!0,fill:!1,stroke:!1,dash:!1,font:`stored`,arrowEnds:!1,textField:`text-or-delete`,edit:`text`,search:`text`,hit:`bounds`,animate:`text`,rotatable:!0,bindTarget:`node`,roles:{solid:!0,connectorObstacle:!1,graphNode:!1,snapsConnectors:!0,lineWork:!1},dataBearing:!1,codeBacked:!1},checks:{x:A,y:A,text:j,fontSize:A,fontFamily:j,rotation:A,color:j,opacity:A,width:M,height:M,textAlign:O(k(ye)),textVAlign:O(k(be)),lineHeight:M,letterSpacing:M,flipX:P,flipY:P}},it={traits:{geometry:`box`,color:!1,fill:!0,stroke:!1,dash:!1,font:`stored`,arrowEnds:!1,textField:`text`,edit:`text`,search:`text`,hit:`bounds`,animate:`text`,rotatable:!0,bindTarget:`node`,roles:{solid:!0,connectorObstacle:!0,graphNode:!0,snapsConnectors:!0,lineWork:!1},dataBearing:!1,codeBacked:!1},checks:{x:A,y:A,width:A,height:A,rotation:A,text:j,fontSize:A,fontFamily:j,fill:j,opacity:A,lineHeight:M,letterSpacing:M}},at={traits:{geometry:`points`,color:!0,fill:!1,stroke:!0,dash:!1,font:`none`,arrowEnds:!1,textField:`text-or-delete`,edit:`none`,search:`none`,hit:`stroke`,animate:`path`,rotatable:!0,bindTarget:`node`,roles:{solid:!1,connectorObstacle:!1,graphNode:!1,snapsConnectors:!1,lineWork:!0},dataBearing:!1,codeBacked:!1},checks:{points:Ye,color:j,strokeWidth:A,opacity:A,highlighter:P,pressure:O(D(Re))}},ot={traits:{geometry:`points`,color:!0,fill:!0,stroke:!0,dash:!1,font:`none`,arrowEnds:!1,textField:`text-or-delete`,edit:`vertices`,search:`none`,hit:`bounds`,animate:`box`,rotatable:!0,bindTarget:`node`,roles:{solid:!0,connectorObstacle:!0,graphNode:!1,snapsConnectors:!1,lineWork:!1},dataBearing:!1,codeBacked:!1},checks:{points:Ye,fill:j,color:j,strokeWidth:A,opacity:A,smooth:P,holes:O(D(Qe)),band:D(Pe)}},st={traits:{geometry:`points`,color:!0,fill:!1,stroke:!0,dash:!0,font:`optional`,arrowEnds:!0,textField:`label`,edit:`none`,search:`label`,hit:`stroke`,animate:`path`,rotatable:!0,bindTarget:`node-or-path`,roles:{solid:!1,connectorObstacle:!1,graphNode:!1,snapsConnectors:!1,lineWork:!0},dataBearing:!1,codeBacked:!1},checks:{points:Ye,color:j,strokeWidth:A,dash:k(ge),startArrow:Je,endArrow:Je,opacity:A,startHead:O(k(he)),endHead:O(k(he)),flow:P,label:N,labelAlong:Xe,fontSize:M,fontFamily:N}},ct={traits:{geometry:`box`,color:!1,fill:!1,stroke:!1,dash:!1,font:`none`,arrowEnds:!1,textField:`text-or-delete`,edit:`crop`,search:`none`,hit:`bounds`,animate:`box`,rotatable:!0,bindTarget:`node`,roles:{solid:!0,connectorObstacle:!0,graphNode:!1,snapsConnectors:!0,lineWork:!1},dataBearing:!0,codeBacked:!1},checks:{x:A,y:A,width:A,height:A,rotation:A,src:j,opacity:A,corner:O(k(ve)),flipX:P,flipY:P,crop:D(Fe)},inlineImageField:`src`},lt={traits:{geometry:`box`,color:!0,fill:!1,stroke:!0,dash:!1,font:`stored`,arrowEnds:!1,textField:`label`,edit:`none`,search:`label-and-name`,hit:`bounds`,animate:`box`,rotatable:!0,bindTarget:`node`,roles:{solid:!0,connectorObstacle:!0,graphNode:!0,snapsConnectors:!0,lineWork:!1},dataBearing:!1,codeBacked:!1},checks:{x:A,y:A,width:A,height:A,rotation:A,source:j,name:j,label:j,fontSize:A,fontFamily:j,color:j,strokeWidth:A,flipX:P,flipY:P,opacity:A}},ut={traits:{geometry:`box`,color:!0,fill:!1,stroke:!1,dash:!1,font:`none`,arrowEnds:!1,textField:`label`,edit:`none`,search:`label`,hit:`outline`,animate:`box`,rotatable:!1,bindTarget:`node`,roles:{solid:!1,connectorObstacle:!1,graphNode:!1,snapsConnectors:!1,lineWork:!1},dataBearing:!1,codeBacked:!0},checks:{x:A,y:A,width:A,height:A,rotation:A,label:j,fontSize:A,fontFamily:j,color:j,opacity:A,kind:O(k(we)),lanes:D(Ie),laneSizes:D(Le),slideOrder:M,slideSkipped:P,notes:N,flows:D(Ge),slideLayout:N,fill:N,strokeWidth:M,dash:O(k(ge)),code:N,codeFingerprint:N,titleIcon:qe(!1)}},dt={traits:{geometry:`table`,color:!0,fill:!1,stroke:!1,dash:!1,font:`stored`,arrowEnds:!1,textField:`text-or-delete`,edit:`none`,search:`cells`,hit:`bounds`,animate:`box`,rotatable:!1,bindTarget:`node`,roles:{solid:!0,connectorObstacle:!0,graphNode:!1,snapsConnectors:!0,lineWork:!1},dataBearing:!0,codeBacked:!1},checks:{x:A,y:A,rotation:A,fontSize:A,fontFamily:j,color:j,opacity:A,background:N,colWidths:ze,rowHeights:et,cells:et,cellStyles:et}},ft={traits:{geometry:`box`,color:!0,fill:!1,stroke:!1,dash:!1,font:`stored`,arrowEnds:!1,textField:`text-or-delete`,edit:`none`,search:`cells`,hit:`bounds`,animate:`box`,rotatable:!0,bindTarget:`node`,roles:{solid:!0,connectorObstacle:!0,graphNode:!1,snapsConnectors:!0,lineWork:!1},dataBearing:!0,codeBacked:!0},checks:{chartType:k(Se),x:A,y:A,width:A,height:A,rotation:A,fontSize:A,fontFamily:j,color:j,opacity:A,cells:D(Ue),horizontal:P,stacked:P,showLegend:P,showValues:P,showTitles:P,numberFormat:O(k(Ce)),seriesColors:D(We),quadrantColors:D(We),quadrantLabels:D(Ie),title:N,xTitle:N,yTitle:N,code:N,codeFingerprint:N}},pt={traits:{geometry:`box`,color:!0,fill:!1,stroke:!1,dash:!1,font:`stored`,arrowEnds:!1,textField:`label`,edit:`none`,search:`label`,hit:`bounds`,animate:`box`,rotatable:!0,bindTarget:`node`,roles:{solid:!0,connectorObstacle:!0,graphNode:!1,snapsConnectors:!0,lineWork:!1},dataBearing:!1,codeBacked:!1},checks:{kind:k(ke),x:A,y:A,width:A,height:A,rotation:A,label:j,fontSize:A,fontFamily:j,color:j,opacity:A,body:N,primaryLabel:N,secondaryLabel:N,link:N,fill:N,value:M,widthManual:P,activations:O(D(Ke))}};function mt(e){if(e.length>2048)return null;let t;try{t=new URL(e)}catch{return null}return t.protocol!==`https:`||t.username!==``||t.password!==``?null:t}function ht(e,t){if(e.length>2048)return!1;if(t!==void 0)return e.startsWith(t)&&!e.slice(t.length).includes(`..`);try{return new URL(e).protocol===`https:`}catch{return!1}}function gt(e){let t=0;for(let n=0;n<e.length;n+=1){let r=e.charCodeAt(n);r<128?t+=1:r<2048?t+=2:r>=55296&&r<=56319&&(e.charCodeAt(n+1)&64512)==56320?(t+=4,n+=1):t+=3}return t}const _t={rectangle:tt,arrow:nt,text:rt,sticky:it,draw:at,polygon:ot,line:st,image:ct,icon:lt,figure:ut,table:dt,chart:ft,control:pt,web:{traits:{geometry:`box`,color:!1,fill:!1,stroke:!1,dash:!1,font:`none`,arrowEnds:!1,textField:`label`,edit:`interact`,search:`label`,hit:`bounds`,animate:`box`,rotatable:!1,bindTarget:`node`,roles:{solid:!0,connectorObstacle:!0,graphNode:!1,snapsConnectors:!0,lineWork:!1},dataBearing:!0,codeBacked:!1},checks:{kind:(e,t,n,r)=>{g(e,`${t}.${r}`,n[r],De)&&(n.kind===`embed`&&n.url===void 0&&d(e,`${t}.url`,`an embed needs a url`),n.kind===`html`&&n.html===void 0&&n.htmlSrc===void 0&&d(e,`${t}.html`,`an html widget needs html or htmlSrc`))},x:A,y:A,width:A,height:A,rotation:A,label:D((e,t,n)=>{p(e,t,n)&&n.length>500&&d(e,t,`label is too long`)}),url:O(D((e,t,n)=>{p(e,t,n)&&!mt(n)&&d(e,t,`expected an https url without credentials, at most 2048 characters`)})),html:O(D((e,t,n)=>{p(e,t,n)&&gt(n)>131072&&d(e,t,`html is too large`)})),htmlSrc:O(D((e,t,n)=>{p(e,t,n)&&!ht(n)&&d(e,t,`expected an https url`)})),poster:N,posterOf:N,keepAspect:P,opacity:A},inlineImageField:`poster`},custom:{traits:{geometry:`box`,color:!1,fill:!1,stroke:!1,dash:!1,font:`none`,arrowEnds:!1,textField:`label`,edit:`none`,search:`label`,hit:`bounds`,animate:`box`,rotatable:!0,bindTarget:`node`,roles:{solid:!0,connectorObstacle:!0,graphNode:!1,snapsConnectors:!0,lineWork:!1},dataBearing:!0,codeBacked:!1},checks:{kind:D((e,t,n)=>{p(e,t,n)&&(n.length>64||!pe.test(n))&&d(e,t,`expected a kind like namespace/name`)}),version:D((e,t,n)=>{f(e,t,n)&&(!Number.isInteger(n)||n<1)&&d(e,t,`expected an integer version of at least 1`)}),x:A,y:A,width:A,height:A,rotation:A,label:D((e,t,n)=>{p(e,t,n)&&n.length>500&&d(e,t,`label is too long`)}),props:D((e,t,n)=>{if(!u(n)||Array.isArray(n)){d(e,t,`expected an object`);return}let r;try{r=gt(JSON.stringify(n))}catch{d(e,t,`expected JSON`);return}r>65536&&d(e,t,`props are too large`)}),opacity:A}}},vt=Object.fromEntries(Object.entries(_t).map(([e,t])=>[e,t.traits]));function yt(e){return e.type===`figure`}const F={white:{pastel:`#ffffff`,bold:`#ced4da`},gray:{pastel:`#e9ecef`,bold:`#868e96`},red:{pastel:`#ffc9c9`,bold:`#ff6b6b`},orange:{pastel:`#ffd8a8`,bold:`#ff922b`},yellow:{pastel:`#ffec99`,bold:`#ffd43b`},green:{pastel:`#b2f2bb`,bold:`#51cf66`},teal:{pastel:`#96f2d7`,bold:`#20c997`},blue:{pastel:`#a5d8ff`,bold:`#4dabf7`},purple:{pastel:`#eebefa`,bold:`#cc5de8`},pink:{pastel:`#fcc2d7`,bold:`#f06595`}},bt=Object.entries(F).map(([e,t])=>({key:e,pastel:t.pastel,bold:t.bold}));new Map(bt.map(e=>[e.pastel,e.bold]));function xt(e){if(!e.startsWith(`#`))return null;let t=e.length===4?e.slice(1).split(``).map(e=>e+e).join(``):e.slice(1);return t.length<6?null:{r:parseInt(t.slice(0,2),16),g:parseInt(t.slice(2,4),16),b:parseInt(t.slice(4,6),16)}}function St(e,t=1){let n=xt(e);if(!n)return t;let{r,g:i,b:a}=n;return(.299*r+.587*i+.114*a)/255}function Ct(e){return e===`transparent`||St(e)>.62?`#1e1e1e`:`#ffffff`}const wt={black:`#1e1e1e`,white:`#ffffff`,red:`#e03131`,green:`#2f9e44`,blue:`#1971c2`,orange:`#f08c00`,purple:`#9c36b5`,teal:`#0c8599`,pink:`#c2255c`,yellow:`#fab005`};[...Object.values(wt)];const Tt=wt.blue,Et=[1.75,2.5,5,8],I={label:`Balsamiq`,value:`'Balsamiq Sans Neue', cursive`}.value,Dt=[6,16,32];function Ot(e){if(e&&e.includes(`Shantell`))return 500}const kt=Et[1];wt.yellow,Et[2];function L(e,t,n,r,i){let a=Math.max(0,Math.min(i,n/2,r/2));return a===0?`M ${e} ${t} L ${e+n} ${t} L ${e+n} ${t+r} L ${e} ${t+r} Z`:`M ${e+a} ${t} L ${e+n-a} ${t} Q ${e+n} ${t} ${e+n} ${t+a} L ${e+n} ${t+r-a} Q ${e+n} ${t+r} ${e+n-a} ${t+r} L ${e+a} ${t+r} Q ${e} ${t+r} ${e} ${t+r-a} L ${e} ${t+a} Q ${e} ${t} ${e+a} ${t} Z`}function At(e,t,n,r,i){let a=Math.max(0,Math.min(i,n/2,r));return`M ${e} ${t+r} L ${e} ${t+a} Q ${e} ${t} ${e+a} ${t} L ${e+n-a} ${t} Q ${e+n} ${t} ${e+n} ${t+a} L ${e+n} ${t+r} Z`}function jt(e,t,n){return`M ${e-n} ${t} A ${n} ${n} 0 1 0 ${e+n} ${t} A ${n} ${n} 0 1 0 ${e-n} ${t} Z`}function R(e,t,n,r){return`M ${e} ${t} L ${n} ${r}`}function Mt(e){return Math.min(e.width*.1,e.height*.25)}function Nt(e){return Math.min(e.height*.34,e.width*.25)}const Pt={triangle:{y:!0},parallelogram:{x:!0,y:!0},trapezoid:{y:!0},cylinder:{y:!0},note:{x:!0,y:!0},star:{y:!0},checkbox:{x:!0,y:!0},heart:{y:!0},cloud:{x:!0,y:!0},"arrow-up":{y:!0},"arrow-down":{y:!0},"arrow-left":{x:!0},"arrow-right":{x:!0},"speech-bubble":{x:!0,y:!0},bolt:{x:!0,y:!0},queue:{x:!0},callout:{x:!0,y:!0},document:{x:!0,y:!0},"manual-input":{x:!0,y:!0},pentagon:{x:!0},chevron:{x:!0},cube:{x:!0,y:!0},actor:{y:!0},card:{x:!0,y:!0},delay:{x:!0},"multi-document":{x:!0,y:!0},"multi-process":{x:!0,y:!0},package:{x:!0,y:!0},component:{x:!0},brace:{x:!0}};function Ft(e){let t=Pt[e];return{x:t?.x===!0,y:t?.y===!0}}const{PI:It}=Math;It+1e-4;const{min:Lt}=Math;function Rt(e){if(e.length===0)return{x:0,y:0,width:0,height:0};let t=1/0,n=1/0,r=-1/0,i=-1/0;for(let a of e)t=Math.min(t,a.x),n=Math.min(n,a.y),r=Math.max(r,a.x),i=Math.max(i,a.y);return{x:t,y:n,width:r-t,height:i-n}}function zt(e,t,n){return Math.min(n,Math.max(t,e))}function Bt(e){return zt(e,0,1)}function Vt(e){return Number.isFinite(e.x)&&Number.isFinite(e.y)&&Number.isFinite(e.width)&&Number.isFinite(e.height)}function Ht(e,t){return Math.hypot(t.x-e.x,t.y-e.y)}function Ut(e){let t=0;for(let n=0;n<e.length-1;n+=1)t+=Ht(e[n],e[n+1]);return t}function Wt(e,t){let n=t?e[e.length-1]:e[0],r=t?-1:1;for(let i=t?e.length-2:1;i>=0&&i<e.length;i+=r)if(Ht(e[i],n)>1e-6)return{tip:n,from:e[i],fromIndex:i};return null}function Gt(e,t){let n=Wt(e,t);return n?Math.atan2(n.tip.y-n.from.y,n.tip.x-n.from.x):null}function Kt(e,t,n){let r=Ht(e,t)||1;return{x:e.x+(t.x-e.x)/r*n,y:e.y+(t.y-e.y)/r*n}}function qt(e,t){let n=t;for(let t=0;t<e.length-1;t+=1){let r=e[t],i=e[t+1],a=Ht(r,i);if(!(a<1e-6)){if(n<=a)return{point:Kt(r,i,n),dir:{x:i.x-r.x,y:i.y-r.y}};n-=a}}let r=Gt(e,!0);return{point:e[e.length-1],dir:r===null?{x:1,y:0}:{x:Math.cos(r),y:Math.sin(r)}}}function Jt(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}function Yt(e,t){return{x:e.x-t,y:e.y-t,width:e.width+t*2,height:e.height+t*2}}function Xt(e,t,n){let r=n.x-t.x,i=n.y-t.y;if(r===0&&i===0)return t;let a=e.x,o=e.x+e.width,s=e.y,c=e.y+e.height,l=1/0;return r>0&&(l=Math.min(l,(o-t.x)/r)),r<0&&(l=Math.min(l,(a-t.x)/r)),i>0&&(l=Math.min(l,(c-t.y)/i)),i<0&&(l=Math.min(l,(s-t.y)/i)),!Number.isFinite(l)||l<0?t:{x:t.x+r*l,y:t.y+i*l}}function Zt(e,t){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function Qt(e,t){return e.x>=t.x&&e.x<=t.x+t.width&&e.y>=t.y&&e.y<=t.y+t.height}function $t(e,t,n){let r=n.x-t.x,i=n.y-t.y,a=r*r+i*i;if(a===0)return t;let o=Bt(((e.x-t.x)*r+(e.y-t.y)*i)/a);return{x:t.x+o*r,y:t.y+o*i}}function en(e,t,n){return Ht(e,$t(e,t,n))}function tn(e,t,n){return(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x)}function nn(e,t,n,r){let i=tn(n,r,e),a=tn(n,r,t),o=tn(e,t,n),s=tn(e,t,r);return i>0!=a>0&&o>0!=s>0||i===0&&en(e,n,r)===0||a===0&&en(t,n,r)===0||o===0&&en(n,e,t)===0||s===0&&en(r,e,t)===0}function rn(e,t,n,r=0){let i=Yt(n,r);if(Qt(e,i)||Qt(t,i))return!0;let a=[{x:i.x,y:i.y},{x:i.x+i.width,y:i.y},{x:i.x+i.width,y:i.y+i.height},{x:i.x,y:i.y+i.height}];for(let n=0;n<4;n+=1)if(nn(e,t,a[n],a[(n+1)%4]))return!0;return!1}function an(e,t,n){let r=Math.cos(n),i=Math.sin(n),a=e.x-t.x,o=e.y-t.y;return{x:t.x+a*r-o*i,y:t.y+a*i+o*r}}function on(e,t){return vt[e.type].roles[t]}function sn(e){return vt[e.type].bindTarget!==`path`}function cn(e){return vt[e.type].bindTarget!==`node`}function ln(e){return e.type===`control`&&e.kind===`lifeline`?!1:vt[e.type].rotatable}function un(e){return`label`in e&&typeof e.label==`string`?e.label:`text`in e&&typeof e.text==`string`?e.text:``}function dn(e){return ln(e)?e.rotation??0:0}function fn(e,t){return{...e,x:e.x+t.x,y:e.y+t.y}}function pn(e,t,n,r){let i=an({x:t.x+t.width/2,y:t.y+t.height/2},n,r),a={...e,x:i.x-t.width/2,y:i.y-t.height/2};return ln(e)?{...a,rotation:(e.rotation??0)+r*180/Math.PI}:a}function mn(e,t,n){let r=n.point({x:t.x+t.width/2,y:t.y+t.height/2});return{...e,x:r.x-t.width/2,y:r.y-t.height/2,rotation:-dn(e)}}function hn(e,t){return{...e,flipX:t?!e.flipX:e.flipX,flipY:t?e.flipY:!e.flipY}}const gn=e=>e.type;function _n(e){return{x:Math.min(e.x,e.x+e.width),y:Math.min(e.y,e.y+e.height),width:Math.abs(e.width),height:Math.abs(e.height)}}function vn(e,t,n,r){let i=_n(e);return{...e,x:t.x+(i.x-t.x)*n,y:t.y+(i.y-t.y)*r,width:i.width*n,height:i.height*r}}function yn(e,t,n){return pn(e,_n(e),t,n)}function bn(e,t){return mn(e,_n(e),t)}function xn(){return{bounds:_n,domMeasured:`never`,move:fn,rotate:yn,scale:vn,flip:bn,rawText:un,kindName:gn}}function Sn(e,t){let n={...e,points:e.points.map(t)};return n.type===`polygon`&&n.holes&&(n.holes=n.holes.map(e=>e.map(t))),n}function Cn(e){return Rt(e.points)}function wn(e,t){return Sn(e,e=>({x:e.x+t.x,y:e.y+t.y}))}function Tn(e,t,n){return Sn(e,e=>an(e,t,n))}function En(e,t,n,r){return Sn(e,e=>({x:t.x+(e.x-t.x)*n,y:t.y+(e.y-t.y)*r}))}function Dn(e,t){return Sn(e,t.point)}function On(){return{bounds:Cn,domMeasured:`never`,move:wn,rotate:Tn,scale:En,flip:Dn,rawText:un,kindName:gn}}const kn=xn(),An={...kn,flip:(e,t)=>{let n=kn.flip(e,t),r=Ft(n.kind),i=t.horizontal&&r.x?!n.flipX:n.flipX,a=!t.horizontal&&r.y?!n.flipY:n.flipY;return{...n,flipX:i||void 0,flipY:a||void 0}},kindName:e=>e.kind},jn=10.5,Mn=1.5;function Nn(e){return{minX:e.x,minY:e.y,maxX:e.x+e.width,maxY:e.y+e.height}}function Pn(e,t){return{minX:e.minX-t,minY:e.minY-t,maxX:e.maxX+t,maxY:e.maxY+t}}function Fn(e,t){return{minX:Math.min(e.minX,t.minX),minY:Math.min(e.minY,t.minY),maxX:Math.max(e.maxX,t.maxX),maxY:Math.max(e.maxY,t.maxY)}}function In(e){return{x:(e.minX+e.maxX)/2,y:(e.minY+e.maxY)/2}}function Ln(e,t,n=0){return t.x>=e.minX-n&&t.x<=e.maxX+n&&t.y>=e.minY-n&&t.y<=e.maxY+n}function Rn(e,t){return e>=t.min&&e<=t.max}function zn(e){return e.max-e.min}function Bn(e,t){return t.min<=e.min&&e.max<=t.max?[]:e.min<=t.min&&t.max<=e.max?[{min:e.min,max:t.min},{min:t.max,max:e.max}]:t.max<=e.min||t.min>=e.max?[e]:Rn(e.min,t)?[{min:t.max,max:e.max}]:[{min:e.min,max:t.min}]}function Vn(e,t,n){return e+(t-e)*n}const Hn=[`right`,`bottom`,`left`,`top`],Un={top:{sign:-1,main:`minY`,far:`maxY`,crossLo:`minX`,crossHi:`maxX`,crossAxis:`x`},bottom:{sign:1,main:`maxY`,far:`minY`,crossLo:`minX`,crossHi:`maxX`,crossAxis:`x`},left:{sign:-1,main:`minX`,far:`maxX`,crossLo:`minY`,crossHi:`maxY`,crossAxis:`y`},right:{sign:1,main:`maxX`,far:`minX`,crossLo:`minY`,crossHi:`maxY`,crossAxis:`y`}};function Wn(e,t,n){let r=Un[n],i=e.box[r.main],a=e.isPoint?null:i+r.sign*36,o={min:e.box[r.crossLo],max:e.box[r.crossHi]},s={min:Math.min(t.box[r.main],t.box[r.far]),max:Math.max(t.box[r.main],t.box[r.far])};t.isPoint||(r.sign>0?s.min-=jn*2:s.max+=jn*2);let c={min:t.box[r.crossLo]-36,max:t.box[r.crossHi]+36};if(Rn(i,s)&&!e.isPoint&&!t.isPoint){let e=Bn(o,c);if(e.length===0)return null;o=e.length===2&&zn(e[1])>zn(e[0])?e[1]:e[0]}let l=e.target[r.crossAxis];return Rn(l,o)?{value:i,expanded:a,cross:o,crossTarget:l}:null}function Gn(e,t){return{top:Wn(e,t,`top`),right:Wn(e,t,`right`),bottom:Wn(e,t,`bottom`),left:Wn(e,t,`left`)}}function Kn(e,t){return t===null?!!(e.top||e.right||e.bottom||e.left):!!e[t]}function qn(e){return e.isPoint?e:{box:{minX:e.target.x,minY:e.target.y,maxX:e.target.x,maxY:e.target.y},target:e.target,gap:0,minEnd:e.minEnd,side:null,isPoint:!0}}const Jn={sx:1,sy:1,swap:!1},Yn={sx:1,sy:-1,swap:!1},Xn={sx:-1,sy:1,swap:!0},Zn={sx:-1,sy:-1,swap:!1},Qn={sx:1,sy:-1,swap:!0};function $n(e,t){let n=e.sx*t.x,r=e.sy*t.y;return e.swap?{x:r,y:n}:{x:n,y:r}}function er(e,t){let n=e.swap?t.y:t.x,r=e.swap?t.x:t.y;return{x:e.sx*n,y:e.sy*r}}function tr(e,t){if(e.sx===-1){let e=t.minX;t.minX=-t.maxX,t.maxX=-e}if(e.sy===-1){let e=t.minY;t.minY=-t.maxY,t.maxY=-e}if(e.swap){let e=t.minX;t.minX=t.minY,t.minY=e,e=t.maxX,t.maxX=t.maxY,t.maxY=e}}function nr(e){e&&(e.value=-e.value,e.expanded=e.expanded===null?null:-e.expanded)}function rr(e){if(!e)return;let t=e.cross.min;e.cross.min=-e.cross.max,e.cross.max=-t,e.crossTarget=-e.crossTarget}function ir(e,t){if(e.sx===-1){let e=t.left;t.left=t.right,t.right=e,nr(t.left),nr(t.right),rr(t.top),rr(t.bottom)}if(e.sy===-1){let e=t.top;t.top=t.bottom,t.bottom=e,nr(t.top),nr(t.bottom),rr(t.left),rr(t.right)}if(e.swap){let e=t.left;t.left=t.top,t.top=e,e=t.right,t.right=t.bottom,t.bottom=e}}function ar(e,t){if(tr(t,e.a.box),tr(t,e.a.grown),tr(t,e.b.box),tr(t,e.b.grown),tr(t,e.common.box),tr(t,e.common.grown),ir(t,e.a.edges),ir(t,e.b.edges),e.bias=$n(t,e.bias),t.sx===-1&&(e.gapX=-e.gapX,e.midX=e.midX===null?null:-e.midX),t.sy===-1&&(e.gapY=-e.gapY,e.midY=e.midY===null?null:-e.midY),t.swap){let t=e.gapX;e.gapX=e.gapY,e.gapY=t,t=e.midX,e.midX=e.midY,e.midY=t}}function or(e,t){ar(e,t),e.applied.push(t)}function sr(e){return e.swap?{sx:e.sy,sy:e.sx,swap:!0}:e}function cr(e){for(;e.applied.length>0;){let t=e.applied.pop();t&&ar(e,sr(t))}}function lr(e,t,n){let r={x:t,y:n};for(let t=e.applied.length-1;t>=0;--t)r=er(e.applied[t],r);return r}const ur=.01;var dr=class{work;pts=[];mid=null;constructor(e){this.work=e}to(e,t){return this.pts.push(lr(this.work,e,t)),this}tagMid(e){let t=this.pts[this.pts.length-2],n=this.pts[this.pts.length-1],r=0;for(let e of this.work.applied)e.swap&&(r+=1);return this.mid={x:(t.x+n.x)/2,y:(t.y+n.y)/2,axis:r%2==1?e===`x`?`y`:`x`:e,span:Math.abs(t.x-n.x)+Math.abs(t.y-n.y)},this}done(){let e=Mr(this.pts),t=0;for(let n=0;n<e.length-1;n+=1)t+=Math.abs(e[n+1].x-e[n].x)+Math.abs(e[n+1].y-e[n].y);return{points:e,dist:t,mid:this.mid}}};function fr(e){let t=e.a.edges.right,n=e.b.edges.left;if(!t||!n||t.crossTarget>n.crossTarget&&(or(e,Yn),t=e.a.edges.right,n=e.b.edges.left,!t||!n))return null;if(e.gapX>0&&e.midX!==null)return new dr(e).to(t.value,t.crossTarget).to(e.midX,t.crossTarget).to(e.midX,n.crossTarget).tagMid(`x`).to(n.value,n.crossTarget).done();if(t.expanded===null||n.expanded===null)return null;if(e.midY!==null)return new dr(e).to(t.value,t.crossTarget).to(t.expanded,t.crossTarget).to(t.expanded,e.midY).to(n.expanded,e.midY).tagMid(`y`).to(n.expanded,n.crossTarget).to(n.value,n.crossTarget).done();let r=Math.abs(t.value-e.common.grown.maxX)+Math.abs(t.crossTarget-e.common.grown.maxY)+Math.abs(e.common.grown.maxX-n.expanded)+Math.abs(e.common.grown.maxY-n.crossTarget)+36+6,i=36+Math.abs(t.crossTarget-e.common.grown.minY)+Math.abs(t.expanded-e.common.grown.minX)+Math.abs(e.common.grown.minY-n.crossTarget)+Math.abs(e.common.grown.minX-n.value)+6+e.bias.y,a=e.gapX<0&&e.midX!==null?36+Math.abs(t.crossTarget-e.a.grown.maxY)+(e.common.grown.maxX-e.common.grown.minX)+Math.abs(e.a.grown.maxY-e.b.grown.minY)+Math.abs(e.b.grown.minY-n.crossTarget)+36+8:1/0;return r<i&&r<a?new dr(e).to(t.value,t.crossTarget).to(e.common.grown.maxX,t.crossTarget).to(e.common.grown.maxX,e.common.grown.maxY).to(n.expanded,e.common.grown.maxY).to(n.expanded,n.crossTarget).to(n.value,n.crossTarget).done():i<a?new dr(e).to(t.value,t.crossTarget).to(t.expanded,t.crossTarget).to(t.expanded,e.common.grown.minY).to(e.common.grown.minX,e.common.grown.minY).to(e.common.grown.minX,n.crossTarget).to(n.value,n.crossTarget).done():e.midX===null?null:new dr(e).to(t.value,t.crossTarget).to(t.expanded,t.crossTarget).to(t.expanded,e.a.grown.maxY).to(e.midX,e.a.grown.maxY).to(e.midX,e.b.grown.minY).tagMid(`y`).to(n.expanded,e.b.grown.minY).to(n.expanded,n.crossTarget).to(n.value,n.crossTarget).done()}function pr(e){let t=e.a.edges.right,n=e.b.edges.top;if(!t||!n)return null;if(t.crossTarget<(n.expanded??n.value)&&n.crossTarget>(t.expanded??t.value)||e.a.isPoint&&Ln(e.b.grown,In(e.a.box)))return new dr(e).to(t.value,t.crossTarget).to(n.crossTarget,t.crossTarget).to(n.crossTarget,n.value).done();if(e.gapX>0&&e.midX!==null&&n.expanded!==null)return new dr(e).to(t.value,t.crossTarget).to(e.midX,t.crossTarget).to(e.midX,n.expanded).tagMid(`x`).to(n.crossTarget,n.expanded).to(n.crossTarget,n.value).done();if(e.gapY>0&&t.expanded!==null&&n.crossTarget<t.expanded&&e.midY!==null)return new dr(e).to(t.value,t.crossTarget).to(t.expanded,t.crossTarget).to(t.expanded,e.midY).to(n.crossTarget,e.midY).tagMid(`y`).to(n.crossTarget,n.value).done();let r=Math.abs(t.value-e.common.grown.maxX)+Math.abs(t.crossTarget-e.common.grown.minY)+Math.abs(n.crossTarget-e.common.grown.maxX)+Math.abs(n.value-e.common.grown.minY),i=t.expanded!==null&&e.midY!==null&&n.expanded!==null?Math.abs(t.value-t.expanded)+Math.abs(e.b.grown.minX-t.expanded)+Math.abs(e.b.grown.minX-n.crossTarget)+Math.abs(t.crossTarget-e.b.grown.minY)+Math.abs(n.value-n.expanded):1/0,a=t.expanded!==null&&e.midX!==null&&n.expanded!==null?Math.abs(t.value-e.common.grown.maxX)+Math.abs(t.crossTarget-e.a.grown.maxY)+Math.abs(t.expanded-n.crossTarget)+Math.abs(e.a.grown.maxY-n.expanded)+Math.abs(n.expanded-n.value):1/0;return r<i&&r<a?new dr(e).to(t.value,t.crossTarget).to(e.common.grown.maxX,t.crossTarget).to(e.common.grown.maxX,e.common.grown.minY).to(n.crossTarget,e.common.grown.minY).to(n.crossTarget,n.value).done():n.expanded!==null&&t.expanded!==null&&e.midY!==null&&i<a?new dr(e).to(t.value,t.crossTarget).to(t.expanded,t.crossTarget).to(t.expanded,e.midY).to(e.b.grown.minX,e.midY).tagMid(`y`).to(e.b.grown.minX,n.expanded).to(n.crossTarget,n.expanded).to(n.crossTarget,n.value).done():n.expanded!==null&&t.expanded!==null&&e.midX!==null?new dr(e).to(t.value,t.crossTarget).to(t.expanded,t.crossTarget).to(t.expanded,e.a.grown.maxY).to(e.midX,e.a.grown.maxY).to(e.midX,n.expanded).tagMid(`x`).to(n.crossTarget,n.expanded).to(n.crossTarget,n.value).done():null}function mr(e){return or(e,Yn),pr(e)}function hr(e){let t=e.a.edges.right,n=e.b.edges.right;if(!t||!n)return null;if((e.gapX<=0||t.crossTarget>e.b.grown.maxY||t.crossTarget<e.b.grown.minY)&&(n.value>e.a.box.minX||n.crossTarget>e.a.grown.maxY||n.crossTarget<e.a.grown.minY))return new dr(e).to(t.value,t.crossTarget).to(e.common.grown.maxX,t.crossTarget).to(e.common.grown.maxX,n.crossTarget).to(n.value,n.crossTarget).done();if(e.midX===null)return null;if(n.expanded!==null&&e.gapX>=0){let r=Math.abs(n.crossTarget-e.b.grown.maxY)+Math.abs(t.crossTarget-e.b.grown.maxY)<Math.abs(n.crossTarget-e.b.grown.minY)+Math.abs(t.crossTarget-e.b.grown.minY)?e.b.grown.maxY:e.b.grown.minY;return new dr(e).to(t.value,t.crossTarget).to(e.midX,t.crossTarget).to(e.midX,r).tagMid(`x`).to(n.expanded,r).to(n.expanded,n.crossTarget).to(n.value,n.crossTarget).done()}if(t.expanded!==null&&e.gapX<=0){let r=Math.abs(n.crossTarget-e.a.grown.maxY)+Math.abs(t.crossTarget-e.a.grown.maxY)<Math.abs(n.crossTarget-e.a.grown.minY)+Math.abs(t.crossTarget-e.a.grown.minY)?e.a.grown.maxY:e.a.grown.minY;return new dr(e).to(t.value,t.crossTarget).to(t.expanded,t.crossTarget).to(t.expanded,r).to(e.midX,r).to(e.midX,n.crossTarget).tagMid(`x`).to(n.value,n.crossTarget).done()}return null}const gr={top:{top:[Qn,hr],left:[Qn,pr],bottom:[Qn,fr],right:[Qn,mr]},right:{top:[Jn,pr],right:[Jn,hr],bottom:[Jn,mr],left:[Jn,fr]},bottom:{top:[Xn,fr],left:[Xn,mr],bottom:[Xn,hr],right:[Xn,pr]},left:{top:[Zn,mr],left:[Zn,hr],bottom:[Zn,pr],right:[Zn,fr]}};function _r(e,t,n){let[r,i]=gr[t][n];or(e,r);let a=i(e);return cr(e),a}function vr(e,t){let n=null,r=1/0,i=1/0,a=0;for(let[o,s]of t){a+=1;let t=_r(e,o,s);t&&(t.points.length<r?(r=t.points.length,i=t.dist,n=t):t.points.length===r&&t.dist+a<i&&(i=t.dist,n=t))}return n}function yr(e,t){let n=e.a.edges[t];if(!n)return;let r=n.expanded??n.value,i=e=>t===`right`?r<=e:r>=e,a=e.b.edges.top;if(a&&i(a.crossTarget)&&n.crossTarget<=(a.expanded??a.value))return _r(e,t,`top`);let o=e.b.edges.bottom;if(o&&i(o.crossTarget)&&n.crossTarget>=(o.expanded??o.value))return _r(e,t,`bottom`)}function br(e){let t=null;if(Math.abs(e.gapX)+1>Math.abs(e.gapY)&&e.midX!==null)t=e.gapX>0?_r(e,`right`,`left`):_r(e,`left`,`right`);else if(e.a.isPoint&&e.b.isPoint)t=e.gapY>0?_r(e,`bottom`,`top`):_r(e,`top`,`bottom`);else{let n=yr(e,`right`);n===void 0&&(n=yr(e,`left`)),n===void 0?e.gapY>0&&e.midY!==null?t=_r(e,`bottom`,`top`):e.gapY<0&&e.midY!==null&&(t=_r(e,`top`,`bottom`)):t=n}if(t)return t;let n=Hn.filter(t=>e.a.edges[t]),r=Hn.filter(t=>e.b.edges[t]);return vr(e,n.flatMap(e=>r.map(t=>[e,t])))}function xr(e,t){let n=null;return t===`right`?n=e.gapX>0&&e.gapX>Math.abs(e.gapY)&&e.midX!==null?_r(e,`right`,`left`):yr(e,`right`)??null:t===`left`&&(n=e.gapX<0&&Math.abs(e.gapX)>Math.abs(e.gapY)&&e.midX!==null?_r(e,`left`,`right`):yr(e,`left`)??null),n||vr(e,{top:[`bottom`,`right`,`left`,`top`],bottom:[`top`,`right`,`left`,`bottom`],left:[`right`,`bottom`,`left`,`top`],right:[`left`,`bottom`,`right`,`top`]}[t].map(e=>[t,e]))}const Sr={top:`bottom`,bottom:`top`,left:`right`,right:`left`};function Cr(e,t,n){return _r(e,t,n)||(e.a.isPoint&&e.b.isPoint?vr(e,[[Sr[t],Sr[n]],[t,Sr[n]],[Sr[t],n]]):e.a.isPoint?_r(e,Sr[t],n):e.b.isPoint?_r(e,t,Sr[n]):null)}function wr(e,t,n){if(n.isPoint||n.gap<=0||e.length<2)return;let r=t?e[0]:e[e.length-1],i=t?e[1]:e[e.length-2],a=zt(Math.abs(r.x-i.x)+Math.abs(r.y-i.y)-n.minEnd,0,n.gap);if(a<=0)return;let o=Math.sign(i.x-r.x),s=Math.sign(i.y-r.y);r.x+=o*a,r.y+=s*a}function Tr(e,t,n){if(!n.outline||!n.side||n.isPoint||e.length<2)return;let r=t?e[0]:e[e.length-1],i=t?e[1]:e[e.length-2];if(n.side===`left`||n.side===`right`){if(Math.abs(r.y-i.y)>ur)return;r.x=n.outline(r.y)}else{if(Math.abs(r.x-i.x)>ur)return;r.y=n.outline(r.x)}}function Er(e,t,n){if(e.length<3)return;let r=t?e[0]:e[e.length-1],i=t?e[1]:e[e.length-2];if(!(Math.abs(r.x-i.x)+Math.abs(r.y-i.y)>=n)&&(e.splice(t?1:e.length-2,1),e.length>=3)){let n=t?e[1]:e[e.length-2];Math.abs(r.x-i.x)<ur?n.y=r.y:n.x=r.x}}function Dr(e,t){let n=t.box.minX-e.box.maxX;n<0&&(n=-Math.max(0,e.box.minX-t.box.maxX));let r=t.box.minY-e.box.maxY;return r<0&&(r=-Math.max(0,e.box.minY-t.box.maxY)),{gapX:n,gapY:r}}const Or={x:{lo:`minX`,hi:`maxX`},y:{lo:`minY`,hi:`maxY`}};function kr(e,t,n,r,i,a,o,s,c){let{lo:l,hi:u}=Or[e];return t>n?{a:r.isPoint?r.box[u]+s:a[u],b:i.isPoint?i.box[l]-c:o[l]}:t<-n?{a:r.isPoint?r.box[l]-s:a[l],b:i.isPoint?i.box[u]+c:o[u]}:null}function Ar(e,t,n,r){if(!e||e.points.length<2)return null;let i=e.points;return Tr(i,!0,t),Tr(i,!1,n),wr(i,!0,t),wr(i,!1,n),Er(i,!0,t.minEnd),Er(i,!1,n.minEnd),r&&i.reverse(),i}function jr(e,t,n){let r={box:Nn(e.bounds),target:{x:e.target.x,y:e.target.y},gap:e.gap,minEnd:e.minEnd,side:e.side,outline:e.outline,isPoint:e.isPoint},i={box:Nn(t.bounds),target:{x:t.target.x,y:t.target.y},gap:t.gap,minEnd:t.minEnd,side:t.side,outline:t.outline,isPoint:t.isPoint},a=!r.side&&!!i.side,o=a?i:r,s=a?r:i,c=Gn(o,s),l=Gn(s,o);(!Kn(c,o.side)||!Kn(l,s.side))&&(Kn(c,o.side)||(s=qn(s)),Kn(l,s.side)||(o=qn(o)),Ln(s.box,o.target,36)&&(s=qn(s)),Ln(o.box,s.target,36)&&(o=qn(o)),c=Gn(o,s),l=Gn(s,o));let u=o.isPoint?o.box:Pn(o.box,36),d=s.isPoint?s.box:Pn(s.box,36),{gapX:f,gapY:p}=Dr(o,s),m=o.minEnd*3,h=s.minEnd*3,g=(o.isPoint?m:jn)+(s.isPoint?h:jn),_=kr(`x`,f,g,o,s,u,d,m,h),v=kr(`y`,p,g,o,s,u,d,m,h),y=a?1-n:n,b=_?Vn(_.a,_.b,y):null,x=v?Vn(v.a,v.b,y):null,S={a:{box:o.box,grown:u,edges:c,isPoint:o.isPoint},b:{box:s.box,grown:d,edges:l,isPoint:s.isPoint},common:{box:Fn(o.box,s.box),grown:Fn(u,d)},gapX:f,gapY:p,midX:b,midY:x,bias:{x:1,y:1},applied:[]},C=null;return o.side&&s.side?C=Cr(S,o.side,s.side):o.side&&(C=xr(S,o.side)),C||=br(S),{route:Ar(C,o,s,a),midHandle:C?.mid??null,midXRange:_?a?{lo:_.b,hi:_.a}:{lo:_.a,hi:_.b}:null,midYRange:v?a?{lo:v.b,hi:v.a}:{lo:v.a,hi:v.b}:null}}function Mr(e){let t=[];for(let n of e){let e=t[t.length-1],r=t[t.length-2];if(!e){t.push({x:n.x,y:n.y});continue}let i=Math.abs(n.x-e.x)<ur,a=Math.abs(n.y-e.y)<ur;if(!(i&&a)){if(r&&i&&Math.abs(n.x-r.x)<ur){e.y=n.y;continue}if(r&&a&&Math.abs(n.y-r.y)<ur){e.x=n.x;continue}t.push({x:n.x,y:n.y})}}return t}function Nr(e,t,n,r){if(n.isPoint)return Math.sign(e-r)===t?r:null;let i=r+t*n.gap;return Math.sign(e-i)===t?i:Math.sign(e-r)===t&&Math.abs(e-r)>ur?r+(e-r)/2:null}function Pr(e,t,n){let r=n?e[0]:e[e.length-1],i=n?e[1]:e[e.length-2],a=Math.abs(i.y-r.y)<=ur;if(a===Math.abs(i.x-r.x)<=ur||t.side&&(t.side===`left`||t.side===`right`)!==a)return!1;if(a){let e=Math.sign(i.x-r.x),n=Nr(i.x,e,t,!t.isPoint&&t.outline?t.outline(t.target.y):t.isPoint?t.target.x:e>0?t.bounds.x+t.bounds.width:t.bounds.x);return n===null?!1:(r.x=n,r.y=t.target.y,i.y=t.target.y,!0)}let o=Math.sign(i.y-r.y),s=Nr(i.y,o,t,!t.isPoint&&t.outline?t.outline(t.target.x):t.isPoint?t.target.y:o>0?t.bounds.y+t.bounds.height:t.bounds.y);return s===null?!1:(r.y=s,r.x=t.target.x,i.x=t.target.x,!0)}function Fr(e,t,n){if(e.length<3)return null;let r=e.map(e=>({x:e.x,y:e.y}));if(!Pr(r,t,!0)||!Pr(r,n,!1))return null;let i=Mr(r);if(i.length<3)return null;for(let e=0;e<i.length-1;e+=1)if(Math.abs(i[e+1].x-i[e].x)>ur&&Math.abs(i[e+1].y-i[e].y)>ur)return null;return i}function Ir(e,t){return{bounds:{x:e.x,y:e.y,width:0,height:0},target:{x:e.x,y:e.y},gap:0,minEnd:t*Mn,side:null,isPoint:!0}}function Lr(e){return{x:(e.x+e.x2)/2,y:(e.y+e.y2)/2}}function Rr(e,t){return qt(e,Ut(e)*Bt(t)).point}function zr(e){let t=e.labelAlong;if(e.bendStyle===`elbow`)return Rr(Wr(e),t??.5);let n=Qr(e);if(n)return t===void 0?n.apex:n.pointAt(t);if(t===void 0)return Lr(e);let r=Bt(t);return{x:e.x+(e.x2-e.x)*r,y:e.y+(e.y2-e.y)*r}}function Br(e,t){let n=Math.hypot(t.x,t.y)||1;return{x:e.x+t.y/n*10,y:e.y-t.x/n*10}}function Vr(e,t){if(e.bendStyle===`elbow`){let n=Wr(e),r=t===`start`?n:[...n].reverse(),i=qt(r,Math.min(22,Ut(r)*.4));return Br(i.point,i.dir)}let n={x:e.x,y:e.y},r={x:e.x2,y:e.y2},i=Ht(n,r)||1,a=Qr(e);if(!a){let e=Math.min(22,i*.4);return t===`start`?Br(Kt(n,r,e),{x:r.x-n.x,y:r.y-n.y}):Br(Kt(r,n,e),{x:n.x-r.x,y:n.y-r.y})}let o=Math.min(22/i,.4),s=t===`start`?a.pointAt(o):a.pointAt(1-o),c=t===`start`?a.pointAt(o+.02):a.pointAt(1-o-.02);return Br(s,{x:c.x-s.x,y:c.y-s.y})}function Hr(e){let t=e.x2-e.x,n=e.y2-e.y,r=Math.hypot(t,n)||1,i={x:t/r,y:n/r};return{dir:i,normal:{x:-i.y,y:i.x}}}function Ur(e){return jr(Ir({x:e.x,y:e.y},e.strokeWidth),Ir({x:e.x2,y:e.y2},e.strokeWidth),e.elbowMid??.5)}function Wr(e){if(e.elbowPoints&&e.elbowPoints.length>=2)return e.elbowPoints.map(e=>({x:e.x,y:e.y}));if(e.elbowRoute&&e.elbowRoute.length>=2)return e.elbowRoute.map(e=>({x:e.x,y:e.y}));let t=Ur(e);return t.route&&t.route.length>=2?t.route:[{x:e.x,y:e.y},{x:e.x2,y:e.y2}]}function Gr(e){return zt(e||0,-.4,.4)}function Kr(e){let t=Lr(e),{dir:n,normal:r}=Hr(e),i=Ht({x:e.x,y:e.y},{x:e.x2,y:e.y2}),a=Gr(e.bendAlong)*i;return{x:t.x+n.x*a+r.x*e.bend,y:t.y+n.y*a+r.y*e.bend}}const qr=Math.PI*2,Jr=e=>(e%qr+qr)%qr;function Yr(e,t,n){let r=Math.atan2(e.y-t.y,e.x-t.x);return-Math.sin(r)*n.x+Math.cos(r)*n.y>0}function Xr(e,t,n,r){let i=Ht(n,e),a=Math.atan2(e.y-n.y,e.x-n.x),o=Math.atan2(t.y-n.y,t.x-n.x),s=r?Jr(o-a):-Jr(a-o);return{from:e,to:t,center:n,r:i,a0:a,delta:s,len:Math.abs(s)*i}}function Zr(e,t,n,r){let i=Ht(e,t);if(i<1||Math.abs(n)<.5)return null;let a={x:(t.x-e.x)/i,y:(t.y-e.y)/i},o={x:-a.y,y:a.x},s={x:(e.x+t.x)/2,y:(e.y+t.y)/2},c=Gr(r)*i,l={x:s.x+a.x*c+o.x*n,y:s.y+a.y*c+o.y*n},u;if(Math.abs(c)<.5){let r=i/2,c=(n*n-r*r)/(2*n),d={x:s.x+o.x*c,y:s.y+o.y*c};u=[Xr(e,t,d,Yr(l,d,a))]}else{let n=e=>{let t=e.x-l.x,n=e.y-l.y,r=o.x*t+o.y*n;if(Math.abs(r)<.25||Math.hypot(t,n)<1)return null;let i=(t*t+n*n)/(2*r);return{x:l.x+o.x*i,y:l.y+o.y*i}},r=n(e),i=n(t);if(!r||!i)return null;u=[Xr(e,l,r,Yr(l,r,a)),Xr(l,t,i,Yr(l,i,a))]}let d=u.reduce((e,t)=>e+t.len,0);if(d<1)return null;let f=u[u.length-1];return{apex:l,apexT:u.length===2?u[0].len/d:.5,length:d,segments:u,pointAt:e=>{let n=Bt(e)*d;for(let e of u){if(n<=e.len||e===f){let t=e.len?Math.min(1,n/e.len):0,r=e.a0+e.delta*t;return{x:e.center.x+e.r*Math.cos(r),y:e.center.y+e.r*Math.sin(r)}}n-=e.len}return{x:t.x,y:t.y}}}}function Qr(e){return Zr({x:e.x,y:e.y},{x:e.x2,y:e.y2},e.bend,e.bendAlong??0)}function $r(e,t,n){let r=Ht(e,t)||1,i={x:(t.x-e.x)/r,y:(t.y-e.y)/r},a={x:-i.y,y:i.x},o={x:(e.x+t.x)/2,y:(e.y+t.y)/2},s=n.x-o.x,c=n.y-o.y;return{bow:s*a.x+c*a.y,bowAlong:Gr((s*i.x+c*i.y)/r)}}const ei=[0,Math.PI/2,Math.PI,-Math.PI/2];function ti(e){let t=[e.from,e.to];for(let n of ei)(e.delta>=0?Jr(n-e.a0):Jr(e.a0-n))>Math.abs(e.delta)||t.push({x:e.center.x+e.r*Math.cos(n),y:e.center.y+e.r*Math.sin(n)});return t}function ni(e){if(e.bendStyle===`elbow`)return Wr(e);let t=Qr(e);return t?t.segments.flatMap(ti):[{x:e.x,y:e.y},{x:e.x2,y:e.y2},Kr(e)]}function ri(e){let t=ni(e),n=t.map(e=>e.x),r=t.map(e=>e.y),i=Math.min(...n),a=Math.min(...r);return{x:i,y:a,width:Math.max(...n)-i,height:Math.max(...r)-a}}const ii={n:`n`,s:`s`,e:`w`,w:`e`,ne:`nw`,nw:`ne`,se:`sw`,sw:`se`},ai={n:`s`,s:`n`,e:`e`,w:`w`,ne:`se`,se:`ne`,nw:`sw`,sw:`nw`};function oi(e,t,n){if(!e)return e;if(!t.has(e.shapeId))return null;if(`kind`in e)return e;let r=n?{x:1-e.anchor.x,y:e.anchor.y}:{x:e.anchor.x,y:1-e.anchor.y};if(!e.port)return{...e,anchor:r};let i=n?ii:ai;return{...e,anchor:r,port:i[e.port]}}function si(e,t,n){if(!(!t.has(e.from)||!t.has(e.to)))return n?{from:e.to,to:e.from,fromTop:e.toTop,fromSpan:e.toSpan,toTop:e.fromTop,toSpan:e.fromSpan}:{...e,fromTop:1-e.fromTop-e.fromSpan,toTop:1-e.toTop-e.toSpan}}const ci={bounds:ri,domMeasured:`never`,move:(e,t)=>{let n={...e,x:e.x+t.x,y:e.y+t.y,x2:e.x2+t.x,y2:e.y2+t.y};return e.elbowPoints&&(n.elbowPoints=e.elbowPoints.map(e=>({x:e.x+t.x,y:e.y+t.y}))),e.elbowRoute&&(n.elbowRoute=e.elbowRoute.map(e=>({x:e.x+t.x,y:e.y+t.y}))),e.elbowMidHandle&&(n.elbowMidHandle={...e.elbowMidHandle,x:e.elbowMidHandle.x+t.x,y:e.elbowMidHandle.y+t.y}),n},rotate:(e,t,n)=>{let r=an({x:e.x,y:e.y},t,n),i=an({x:e.x2,y:e.y2},t,n);return{...e,x:r.x,y:r.y,x2:i.x,y2:i.y,elbowPoints:void 0,elbowRoute:void 0,elbowMidHandle:void 0}},scale:(e,t,n,r)=>{let i=e=>t.x+(e-t.x)*n,a=e=>t.y+(e-t.y)*r;return{...e,x:i(e.x),y:a(e.y),x2:i(e.x2),y2:a(e.y2),bend:e.bend*(n+r)*.5,bow:e.bow==null?e.bow:e.bow*(n+r)*.5,elbowPoints:e.elbowPoints?.map(e=>({x:i(e.x),y:a(e.y)})),elbowRoute:void 0,elbowMidHandle:void 0}},flip:(e,{point:t,moving:n,horizontal:r})=>{let i=t({x:e.x,y:e.y}),a=t({x:e.x2,y:e.y2});return{...e,x:i.x,y:i.y,x2:a.x,y2:a.y,bend:-e.bend,bow:e.bow==null?e.bow:-e.bow,elbowPoints:e.elbowPoints?.map(t),elbowRoute:void 0,elbowMidHandle:void 0,startBinding:oi(e.startBinding,n,r),endBinding:oi(e.endBinding,n,r)}},rawText:un,kindName:e=>e.type};function li(e){return Math.max(14,Math.round(e))}function ui(e){return Math.max(6,Math.round(e*.35))}const di=1.25;function fi(e){return Math.max(2,Math.round(e*.2))}function pi(e){if(!e)return null;let t=e.trim();return t?/^(https?:|mailto:)/i.test(t)?t:/^[\w-]+(\.[\w-]+)+([/?#].*)?$/.test(t)?`https://${t}`:null:null}const mi={blue:`#e7f5ff`,green:`#ebfbee`,red:`#fff5f5`,orange:`#fff4e6`,violet:`#f3f0ff`,teal:`#e6fcf5`,pink:`#fff0f6`,yellow:`#fff9db`,gray:`#f8f9fa`},z={blue:F.blue.bold,green:F.green.bold,red:F.red.bold,orange:F.orange.bold,violet:F.purple.bold,teal:F.teal.bold,pink:F.pink.bold,yellow:F.yellow.bold,gray:F.gray.bold},B={ink:`token:ink`,inkMuted:`token:ink-muted`,inkInverse:`token:ink-inverse`,paper:`token:paper`,paperGrid:`token:paper-grid`,paperLine:`token:paper-line`},hi={[B.ink]:{var:`var(--canvas-ink)`,key:`ink`,lit:`#1e1e1e`},[B.inkMuted]:{var:`var(--canvas-ink-muted)`,key:`inkMuted`,lit:`#495057`},[B.inkInverse]:{var:`var(--canvas-ink-inverse)`,key:`inkInverse`,lit:`#ffffff`},[B.paper]:{var:`var(--paper-bg)`,key:`paperBg`,lit:`#ffffff`},[B.paperGrid]:{var:`var(--paper-grid)`,key:`paperGrid`,lit:`#eceef0`},[B.paperLine]:{var:`var(--paper-line)`,key:`paperLine`,lit:`#dee2e6`}},gi=Object.fromEntries(Object.values(hi).map(e=>[e.key,e.lit]));B.ink,B.inkMuted,B.inkInverse,B.paper,B.paperGrid,B.paperLine;function _i(e){return e===B.inkInverse?B.ink:hi[e]?B.paper:void 0}new Map(Object.keys(mi).map(e=>[mi[e],z[e]]));const vi=RegExp(`<(?:${[`strong`,`em`,`u`,`s`,`code`,`mark`,`a`,`span`,`i`,`b`,`del`,`strike`,`ul`,`ol`,`li`,`br`,`div`,`p`].join(`|`)})\\b`,`i`);function yi(e){return vi.test(e)}function bi(e){return e.replace(/\u200B/g,``).replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function xi(e){return`<ul>${e.map(e=>`<li>${bi(e)}</li>`).join(``)}</ul>`}function Si(e,t){return t===1?e:e.replace(/font-size:\s*(\d+(?:\.\d+)?)px/gi,(e,n)=>`font-size:${Math.round(zt(Number(n)*t,8,240))}px`)}function Ci(){return globalThis.DOMParser!==void 0}function wi(e){let t=globalThis.DOMParser;if(!t)throw Error(`No HTML parser available: this environment has no global DOMParser. Install one with setHtmlParser (see @koboyo/renderer/adapters/node).`);return new t().parseFromString(e,`text/html`).body}function Ti(e){return wi(e)}function Ei(e,t=0){let n=``;return e.childNodes.forEach(e=>{if(e.nodeType===3){n+=(e.nodeValue??``).replace(/\u200B/g,``);return}if(e.nodeType!==1)return;let r=e,i=r.tagName.toLowerCase();if(i===`br`){n+=`
2
+ `;return}if(i===`li`){n&&!n.endsWith(`
3
+ `)&&(n+=`
4
+ `);let e=r.parentElement?.hasAttribute(`data-checklist`)?r.hasAttribute(`data-checked`)?`☑`:`☐`:`•`;n+=`${` `.repeat(Math.max(0,t-1))}${e} ${Ei(r,t)}`;return}if(i===`div`||i===`p`||i===`ul`||i===`ol`){n&&!n.endsWith(`
5
+ `)&&(n+=`
6
+ `),n+=Ei(r,i===`ul`||i===`ol`?t+1:t);return}n+=Ei(r,t)}),n}function Di(e){return e?yi(e)?Ei(Ti(e)):e:``}function Oi(e){return yi(e)?e.replace(/\u200B/g,``).replace(/<(?:br|\/li|\/div|\/p|\/ul|\/ol)[^>]*>/gi,`
7
+ `).replace(/<li[^>]*>/gi,`• `).replace(/<[^>]+>/g,``).replace(/&[a-z#0-9]+;/gi,`*`).replace(/\n+/g,`
8
+ `).replace(/^\n|\n$/g,``):e}function ki(e){return Ci()?Di(e):Oi(e)}const Ai=(e,t)=>{let n=t?.textBounds(e.id);if(n)return{x:e.x,y:e.y,width:n.width,height:n.height};let r=Oi(e.text).split(`
9
+ `),i=r.reduce((e,t)=>Math.max(e,t.length),0);return{x:e.x,y:e.y,width:e.width??Math.max(i*e.fontSize*.55,e.fontSize),height:Math.max(r.length*e.fontSize*(e.lineHeight??1.15),e.height??0)}},ji={bounds:Ai,domMeasured:`always`,move:fn,rotate:(e,t,n)=>pn(e,Ai(e),t,n),scale:(e,t,n,r)=>{let i={...e,x:t.x+(e.x-t.x)*n,y:t.y+(e.y-t.y)*r,fontSize:e.fontSize*r,text:Si(e.text,r)};return e.width!=null&&(i.width=e.width*n),i},flip:(e,t)=>hn(mn(e,Ai(e),t),t.horizontal),rawText:e=>e.text,kindName:e=>e.type},Mi=xn(),Ni={...Mi,scale:(e,t,n,r)=>{let i=Mi.bounds(e),a=t.x+(i.x+i.width/2-t.x)*n,o=t.y+(i.y+i.height/2-t.y)*r;return{...e,x:a-i.width/2,y:o-i.height/2}}},Pi=On(),Fi=On(),Ii={...Fi,flip:(e,t)=>e.band?{...Sn(e,t.point),band:si(e.band,t.moving,t.horizontal)}:Fi.flip(e,t)},Li=On(),Ri=xn(),zi={...Ri,flip:(e,t)=>hn(Ri.flip(e,t),t.horizontal)};function Bi(e){return e>=11904&&e<=42191||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65280&&e<=65376||e>=126976}function V(e,t){let n=0;for(let t of e){let e=t.codePointAt(0)??0;if(e>=32&&e<=126){n+=(`93B[bw]4ABK]0B2IVCVYXUXMVU23]]]OuX_bc]Wec<R[UpefZhbXWcYtTVXBG?PY1TTQUW<US56M4lTTUVAM<SL^KILG3Ga`.charCodeAt(e-32)-32)/100;continue}n+=Bi(e)?1:.55}return n*t}const Vi=xn(),Hi={...Vi,footprint:(e,t,n)=>{if(!e.label)return t;let r=t.x+t.width/2,i=e.fontSize??36,a,o,s=n?.iconLabelBounds(e.id);if(s)a=s.width,o=s.height;else{let t=ki(e.label).split(`
10
+ `),n=Math.max(i*.58,...t.map(e=>V(e,i)));a=Math.min(n,200),o=Math.round(i*1.45+(t.length-1)*i*di)}let c=Math.min(t.x,r-a/2),l=Math.max(t.x+t.width,r+a/2),u=t.y+t.height+fi(i)+o;return{x:c,y:t.y,width:l-c,height:u-t.y}},domMeasured:`labelled`,scale:(e,t,n,r)=>{let i=Vi.bounds(e),a=(n+r)/2;return{...e,x:t.x+(i.x-t.x)*n,y:t.y+(i.y-t.y)*r,width:i.width*a,height:i.height*a,fontSize:e.fontSize*a}},flip:(e,t)=>hn(Vi.flip(e,t),t.horizontal)},Ui={...xn(),kindName:()=>`frame`},Wi=e=>({x:e.x,y:e.y,width:e.colWidths.reduce((e,t)=>e+t,0),height:e.rowHeights.reduce((e,t)=>e+t,0)}),Gi={rectangle:An,arrow:ci,text:ji,sticky:Ni,draw:Pi,polygon:Ii,line:Li,image:zi,icon:Hi,figure:Ui,table:{bounds:Wi,domMeasured:`never`,move:fn,rotate:(e,t,n)=>pn(e,Wi(e),t,n),scale:(e,t,n,r)=>({...e,x:t.x+(e.x-t.x)*n,y:t.y+(e.y-t.y)*r,colWidths:e.colWidths.map(e=>e*n),rowHeights:e.rowHeights.map(e=>e*r)}),flip:(e,t)=>mn(e,Wi(e),t),rawText:un,kindName:e=>e.type},chart:xn(),control:xn(),web:{...xn(),kindName:e=>e.kind===`html`?`widget`:`embed`},custom:{...xn(),kindName:e=>e.kind}};function Ki(e){let t=e.type;switch(t){case`rectangle`:return Gi.rectangle;case`arrow`:return Gi.arrow;case`text`:return Gi.text;case`sticky`:return Gi.sticky;case`draw`:return Gi.draw;case`polygon`:return Gi.polygon;case`line`:return Gi.line;case`image`:return Gi.image;case`icon`:return Gi.icon;case`figure`:return Gi.figure;case`table`:return Gi.table;case`chart`:return Gi.chart;case`control`:return Gi.control;case`web`:return Gi.web;case`custom`:return Gi.custom;default:return qi(t)}}function qi(e){throw Error(`no definition for shape type ${String(e)}`)}function Ji(e,t){return Ki(e).bounds(e,t)}function Yi(e){return ln(e)&&Xi(e)?e.rotation??0:0}function Xi(e){let t=vt[e.type].geometry;return t===`box`||t===`text`||t===`table`}function Zi(e,t){let n=Ki(e),r=n.bounds(e,t);return n.footprint?n.footprint(e,r,t):r}function Qi(e,t,n){let r=[{x:e.x,y:e.y},{x:e.x+e.width,y:e.y},{x:e.x+e.width,y:e.y+e.height},{x:e.x,y:e.y+e.height}].map(e=>an(e,t,n)),i=r.map(e=>e.x),a=r.map(e=>e.y),o=Math.min(...i),s=Math.min(...a);return{x:o,y:s,width:Math.max(...i)-o,height:Math.max(...a)-s}}function $i(e,t){return e.length===0?{x:0,y:0}:qt(e,Ut(e)*Bt(t??.5)).point}function ea(e){return[{text:e.startLabel??``,end:`start`},{text:e.endLabel??``,end:`end`}].filter(e=>e.text).map(t=>({text:t.text,point:Vr(e,t.end)}))}function ta(e,t,n,r,i){let a=Ot(r),o=ki(e).split(`
11
+ `),s=o.length*n*1.15,c=Math.max(...o.map(e=>i.measure(e,n,r,a)))+20;return{x:t.x-c/2,y:t.y-s/2,width:c,height:s}}function na(e,t){let n=e.fontFamily??I,r=[];if(e.label){let i=e.type===`arrow`?zr(e):$i(e.points,e.labelAlong);r.push(ta(e.label,i,e.fontSize??20,n,t))}if(e.type===`arrow`)for(let i of ea(e))r.push(ta(i.text,i.point,14,n,t));return r}function ra(e,t){return Ki(e).move(e,t)}function H(){return typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`shape-${Date.now()}-${Math.floor(Math.random()*1e6)}`}const ia=`rectangle.ellipse.circle.diamond.cylinder.queue.callout.hexagon.parallelogram.trapezoid.triangle.cloud.star.speech-bubble.note.sticky.checkbox.crossbox.heart.arrow-up.arrow-down.arrow-left.arrow-right.plus.bolt.document.predefined-process.manual-input.pentagon.chevron.octagon.cube.actor.double-circle.card.delay.fork-join.multi-document.multi-process.package.component.brace`.split(`.`),aa=[`browser`,`phone`,`window`,`tablet`],oa=[`blue`,`green`,`red`,`orange`,`violet`,`teal`,`pink`,`yellow`,`gray`];function sa(e){return Object.fromEntries(e.map(e=>[e,e]))}const ca={...sa(oa),grey:`gray`,purple:`violet`},la={...sa(ia),box:`rectangle`,oval:`ellipse`,decision:`diamond`,database:`cylinder`,db:`cylinder`,storage:`cylinder`,process:`rectangle`,terminator:`ellipse`,start:`ellipse`,end:`ellipse`,data:`parallelogram`,io:`parallelogram`,prep:`hexagon`,preparation:`hexagon`,crossedbox:`crossbox`,lightning:`bolt`,cross:`plus`,doc:`document`,subroutine:`predefined-process`,offpage:`pentagon`,"off-page":`pentagon`,stop:`octagon`,box3d:`cube`,person:`actor`,activity:`rectangle`,event:`ellipse`,gateway:`diamond`,doublecircle:`double-circle`,ring:`double-circle`,"notched-rectangle":`card`,fork:`fork-join`,join:`fork-join`,"stacked-document":`multi-document`,documents:`multi-document`,"stacked-rectangle":`multi-process`,processes:`multi-process`},ua={app:`app-window`,money:`banknote`};function da(e){let t=e.replace(`/`,`:`),n=/^(tech|aws|gcp|azure)-(.+)$/.exec(t);return n?`${n[1]}:${n[2]}`:ua[t]??t}const fa=[`pastel`,`bold`,`outline`],pa=[`sharp`,`rounded`],ma=[`arrow`,`circle`,`cross`],ha=[`right`,`down`,`left`,`up`],ga=[`loop`,`alt`,`opt`,`par`,`break`],_a=[`public`,`private`,`protected`,`package`],va={public:`+`,private:`-`,protected:`#`,package:`~`},ya=[`zeroOrOne`,`one`,`zeroOrMany`,`oneOrMany`],ba=[`inheritance`,`realization`,`composition`,`aggregation`,`dependency`,`association`];function xa(e){if(e.fromCard||e.toCard)return{from:e.fromCard??`one`,to:e.toCard??`one`};switch(e.cardinality){case`1:1`:return{from:`one`,to:`one`};case`1:N`:return{from:`one`,to:`oneOrMany`};case`N:M`:return{from:`oneOrMany`,to:`oneOrMany`};default:return null}}const Sa=[`full`,`twoThirds`,`half`,`third`],Ca=[`info`,`success`,`warning`,`error`],wa=[`timeline`,`journey`,`cycle`,`funnel`,`pyramid`,`venn`,`matrix`],Ta={min:0,max:5,default:3},Ea=[`normal`,`reverse`,`highlight`],Da=[`done`,`active`,`critical`,`milestone`],Oa=new Set(ia),ka=new Set(aa),Aa=new Set(oa),ja=new Set(fa),Ma=new Set(pa),Na=new Set(ha),U=e=>typeof e==`string`,Pa=e=>U(e)&&e!==``?e:void 0,Fa=e=>Math.max(-0xe8d4a51000,Math.min(0xe8d4a51000,e)),Ia={cloud:new Set([`cloud`,`cloudy`]),cylinder:new Set([`cylinder`]),heart:new Set([`heart`]),star:new Set([`star`]),diamond:new Set([`diamond`]),hexagon:new Set([`hexagon`]),octagon:new Set([`octagon`]),pentagon:new Set([`pentagon`]),triangle:new Set([`triangle`]),circle:new Set([`circle`]),bolt:new Set([`zap`,`bolt`]),cube:new Set([`box`,`cuboid`])};function La(e){let t=new Set,n=[];for(let r of e.nodes??[]){if(!r||!U(r.id)||!U(r.label)||r.id.length===0||r.label.length===0||t.has(r.id))continue;t.add(r.id);let e=Pa(r.icon),i=r.shape&&Oa.has(r.shape)?r.shape:void 0;i===`actor`&&(i=void 0,e??=`user`),i&&e&&!e.includes(`:`)&&Ia[i]?.has(e)&&(e=void 0),n.push({id:r.id,label:r.label,icon:e,shape:i,group:Pa(r.group),color:r.color&&Aa.has(r.color)?r.color:void 0,fill:r.fill&&ja.has(r.fill)?r.fill:void 0,corner:r.corner&&Ma.has(r.corner)?r.corner:void 0,labelColor:r.labelColor&&Aa.has(r.labelColor)?r.labelColor:void 0,shadow:r.shadow===!0||void 0,link:U(r.link)?pi(r.link)??void 0:void 0})}let r=(e.groups??[]).filter(e=>!!e&&U(e.id)&&U(e.label)&&e.id.length>0);{let e=new Set([...r.map(e=>e.id),...n.map(e=>e.group).filter(e=>!!e)]),i=new Map;for(let n of e){if(!t.has(n))continue;let r=`${n}-group`;for(;t.has(r)||e.has(r)||i.has(r);)r=`${r}-2`;i.set(n,r)}if(i.size>0){for(let e of n)e.group&&i.has(e.group)&&(e.group=i.get(e.group));r=r.map(e=>({...e,id:i.get(e.id)??e.id,parent:U(e.parent)&&i.has(e.parent)?i.get(e.parent):e.parent}))}}let i=new Set(n.map(e=>e.group).filter(Boolean)),a=new Map(r.map(e=>[e.id,U(e.parent)?e.parent:void 0])),o=new Set;for(let e of i){let t=e??void 0;for(let e=0;t&&e<32&&!o.has(t);e+=1)o.add(t),t=a.get(t)}let s=[],c=new Set;for(let e of r){if(!o.has(e.id)||c.has(e.id))continue;c.add(e.id);let t=U(e.parent)&&o.has(e.parent)&&e.parent!==e.id?e.parent:void 0;s.push({id:e.id,label:e.label,icon:Pa(e.icon),color:e.color&&Aa.has(e.color)?e.color:void 0,frame:e.frame&&ka.has(e.frame)?e.frame:void 0,parent:t})}let l=new Map;for(let e of n)e.group&&l.set(e.group,(l.get(e.group)??0)+1);for(let e of i)e&&!c.has(e)&&(l.get(e)??0)>=2&&s.push({id:e,label:``});let u=new Set(s.map(e=>e.id)),d=e=>t.has(e)||u.has(e),f=[];for(let n of e.edges??[])!n||!U(n.from)||!U(n.to)||!d(n.from)||!d(n.to)||n.from===n.to&&!t.has(n.from)||f.push({from:n.from,to:n.to,label:U(n.label)?n.label:void 0,dashed:n.dashed===!0,bidirectional:n.bidirectional===!0,head:ma.includes(n.head)&&n.head!==`arrow`?n.head:void 0,invisible:n.invisible===!0||void 0,color:n.color&&Aa.has(n.color)?n.color:void 0,back:n.back===!0||void 0,flow:n.flow===!0||void 0});return{kind:`graph`,title:U(e.title)?e.title:``,direction:e.direction&&Na.has(e.direction)?e.direction:`right`,icons:e.icons===`inside`||e.icons===`badge`?e.icons:void 0,swimlanes:e.swimlanes===!0&&s.length>0||void 0,kanban:e.kanban===!0&&s.length>0||void 0,variant:e.variant===`orgchart`||e.variant===`statemachine`?e.variant:void 0,nodes:n,groups:s,edges:f,legend:Ra(e.legend)}}function Ra(e){if(!e)return;let t=e.filter(e=>!!e&&U(e.swatch)&&e.swatch!==``&&U(e.label));return t.length>0?t:void 0}const za=new Set([`pk`,`fk`]),Ba=new Set([`1:1`,`1:N`,`N:M`]),Va=new Set(ya),Ha=new Set(ba),Ua=new Set(_a);function Wa(e){return!e||!U(e.name)||e.name.length===0?null:{name:e.name,type:Pa(e.type),key:e.key&&za.has(e.key)?e.key:void 0,visibility:e.visibility&&Ua.has(e.visibility)?e.visibility:void 0}}function Ga(e){let t=new Set,n=[],r=new Set;for(let t of e.groups??[])!t||!U(t.id)||t.id.length===0||r.has(t.id)||!U(t.label)||t.label.length===0||(r.add(t.id),n.push({id:t.id,label:t.label,color:t.color&&Aa.has(t.color)?t.color:void 0}));let i=[];for(let n of e.entities??[]){if(!n||!U(n.id)||!U(n.label)||n.id.length===0||t.has(n.id))continue;t.add(n.id);let e=(n.fields??[]).map(Wa).filter(e=>e!==null),a=(n.methods??[]).map(Wa).filter(e=>e!==null);i.push({id:n.id,label:n.label,color:n.color&&Aa.has(n.color)?n.color:void 0,fields:e,methods:a.length>0?a:void 0,group:U(n.group)&&r.has(n.group)?n.group:void 0})}let a=[];for(let n of e.relations??[]){if(!n||!U(n.from)||!U(n.to)||!t.has(n.from)||!t.has(n.to))continue;let e=n.fromCard&&Va.has(n.fromCard)?n.fromCard:void 0,r=n.toCard&&Va.has(n.toCard)?n.toCard:void 0;a.push({from:n.from,to:n.to,cardinality:e||r?void 0:n.cardinality&&Ba.has(n.cardinality)?n.cardinality:void 0,fromCard:e,toCard:r,identifying:n.identifying!==!1&&void 0,kind:n.kind&&Ha.has(n.kind)?n.kind:void 0,label:U(n.label)?n.label:void 0})}let o=new Set(i.map(e=>e.group).filter(Boolean)),s=n.filter(e=>o.has(e.id)),c=e.variant===`class`||a.some(e=>e.kind)||i.some(e=>e.methods&&e.methods.length>0);return{kind:`erd`,title:U(e.title)?e.title:``,variant:c?`class`:void 0,entities:i,relations:a,groups:s.length>0?s:void 0,legend:Ra(e.legend)}}const Ka=new Set(Da),qa=/^\d{4}-\d{2}-\d{2}$/;function Ja(e){let t=new Set,n=[];for(let r of e.tasks??[]){if(!r||!U(r.label)||r.label.length===0)continue;let e=U(r.id)&&r.id.length>0?r.id:`t${n.length+1}`;if(t.has(e))continue;t.add(e);let i=typeof r.days==`number`&&Number.isFinite(r.days)?Fa(r.days):void 0,a=r.status&&Ka.has(r.status)?r.status:void 0;if(n.push({id:e,label:r.label,section:Pa(r.section),start:U(r.start)&&qa.test(r.start)?r.start:void 0,after:(Array.isArray(r.after)?r.after:[]).filter(e=>U(e)&&e.length>0),days:a===`milestone`?0:i===void 0?void 0:Math.max(0,i),until:Pa(r.until),status:a}),n.length>=60)break}for(let e of n){let n=(e.after??[]).filter(n=>n!==e.id&&t.has(n));e.after=n.length>0?n:void 0,e.until&&(e.until===e.id||!t.has(e.until))&&(e.until=void 0)}return{kind:`gantt`,title:U(e.title)?e.title:``,tasks:n,skipWeekends:e.skipWeekends===!0||void 0,legend:Ra(e.legend)}}const Ya=new Set(Ea);function Xa(e){let t=[];for(let n of e.lanes??[])if(U(n)&&n.length>0&&!t.includes(n)&&t.push(n),t.length>=8)break;let n=new Set,r=[];for(let i of e.commits??[]){if(!i)continue;let e=U(i.id)&&i.id.length>0?i.id:`c${r.length+1}`;if(n.has(e))continue;let a=U(i.branch)&&i.branch.length>0?i.branch:t[0]??`main`;if(!t.includes(a)){if(t.length>=8)continue;t.push(a)}if(n.add(e),r.push({id:e,branch:a,label:Pa(i.label),tag:Pa(i.tag),kind:i.kind&&Ya.has(i.kind)&&i.kind!==`normal`?i.kind:void 0,mergeFrom:Pa(i.mergeFrom),branchFrom:Pa(i.branchFrom),cherryPick:Pa(i.cherryPick)}),r.length>=60)break}t.length===0&&t.push(`main`);for(let e of r){e.mergeFrom&&(!t.includes(e.mergeFrom)||e.mergeFrom===e.branch)&&(e.mergeFrom=void 0),e.cherryPick&&!n.has(e.cherryPick)&&(e.cherryPick=void 0);let i=r.find(t=>t.branch===e.branch)===e;e.branchFrom&&(!i||!t.includes(e.branchFrom)||e.branchFrom===e.branch)&&(e.branchFrom=void 0)}return{kind:`gitgraph`,title:U(e.title)?e.title:``,lanes:t,commits:r,legend:Ra(e.legend)}}const Za=new Set(wa);function Qa(e){return e===`venn`?3:e===`matrix`?4:e===`journey`?40:12}function $a(e){let{min:t,max:n,default:r}=Ta;return typeof e!=`number`||!Number.isFinite(e)?r:Math.min(n,Math.max(t,e))}function eo(e){if(!Array.isArray(e))return;let t=e.filter(e=>U(e)&&e.length>0).slice(0,8);return t.length>0?t:void 0}function to(e){let t=e.variant&&Za.has(e.variant)?e.variant:`timeline`,n=new Set,r=[];for(let i of e.items??[]){if(!i||!U(i.label)||i.label.length===0)continue;let e=U(i.id)&&i.id.length>0?i.id:`i${r.length}`;if(!n.has(e)&&(n.add(e),r.push({id:e,label:i.label,detail:Pa(i.detail),color:i.color&&Aa.has(i.color)?i.color:void 0,icon:Pa(i.icon),score:t===`journey`?$a(i.score):void 0,group:t===`journey`||t===`timeline`?Pa(i.group):void 0,events:t===`timeline`?eo(i.events):void 0}),r.length>=Qa(t)))break}let i=[];if(t===`venn`)for(let t of e.overlaps??[]){if(!t||!U(t.label)||t.label.length===0)continue;let e=(t.ids??[]).filter(e=>U(e)&&n.has(e));e.length>=2&&i.push({ids:e,label:t.label})}let a=e=>{let t=(e??[]).filter(e=>U(e)&&e.length>0);return t.length>=2?[t[0],t[1]]:void 0},o=t===`matrix`?a(e.axes?.x):void 0,s=t===`matrix`?a(e.axes?.y):void 0;return{kind:`infographic`,variant:t,title:U(e.title)?e.title:``,items:r,overlaps:i.length>0?i:void 0,axes:o||s?{x:o,y:s}:void 0}}function no(e,t){let n=[];for(let r of Array.isArray(e)?e:[]){if(!r||!U(r.label)||r.label.length===0)continue;let e=t<6?no(r.children,t+1):[];n.push({label:r.label,icon:Pa(r.icon),children:e.length>0?e:void 0})}return n}function ro(e){let t=new Set,n=[];for(let r of e.branches??[]){if(!r||!U(r.label)||r.label.length===0)continue;let e=U(r.id)&&r.id.length>0?r.id:`b${n.length}`;if(t.has(e))continue;t.add(e);let i=no(r.children,2);n.push({id:e,label:r.label,color:r.color&&Aa.has(r.color)?r.color:void 0,icon:Pa(r.icon),children:i.length>0?i:void 0})}return{kind:`mindmap`,title:U(e.title)?e.title:``,central:U(e.central)&&e.central.length>0?e.central:U(e.title)?e.title:``,branches:n,legend:Ra(e.legend)}}function io(e){let t=[];for(let n of e.flows??[]){if(!n||!U(n.from)||!U(n.to))continue;let e=n.from.trim(),r=n.to.trim(),i=typeof n.value==`number`&&Number.isFinite(n.value)?Fa(n.value):0;if(!(e.length===0||r.length===0||e===r||i<=0)&&(t.push({from:e,to:r,value:i}),t.length>=60))break}return{kind:`sankey`,title:U(e.title)?e.title:``,flows:t,legend:Ra(e.legend)}}const ao=new Set(ga);function oo(e){let t=new Set,n=[];for(let r of e.actors??[])!r||!U(r.id)||!U(r.label)||r.id.length===0||t.has(r.id)||(t.add(r.id),n.push({id:r.id,label:r.label,icon:Pa(r.icon),link:U(r.link)?pi(r.link)??void 0:void 0}));let r=[];for(let n of e.messages??[])!n||!U(n.from)||!U(n.to)||!U(n.label)||!t.has(n.from)||!t.has(n.to)||r.push({from:n.from,to:n.to,label:n.label,reply:n.reply===!0,bidirectional:n.bidirectional===!0||void 0});let i=[];for(let t of e.frames??[]){if(!t||!U(t.label)||typeof t.from!=`number`||typeof t.to!=`number`||!Number.isFinite(t.from)||!Number.isFinite(t.to)||r.length===0)continue;let e=Math.max(0,Math.min(r.length-1,Math.floor(t.from))),n=Math.max(e,Math.min(r.length-1,Math.floor(t.to)));i.push({kind:t.kind&&ao.has(t.kind)?t.kind:`loop`,label:t.label,from:e,to:n})}i.sort((e,t)=>e.from-t.from);let a=[];for(let n of e.activations??[]){if(!n||!U(n.actor)||!t.has(n.actor)||typeof n.from!=`number`||typeof n.to!=`number`||!Number.isFinite(n.from)||!Number.isFinite(n.to)||r.length===0)continue;let e=Math.max(0,Math.min(r.length-1,Math.floor(n.from))),i=Math.max(e,Math.min(r.length-1,Math.floor(n.to)));a.push({actor:n.actor,from:e,to:i})}let o=new Set([`over`,`left`,`right`]),s=[];for(let n of e.notes??[]){if(!n||!U(n.text)||n.text.length===0)continue;let e=(Array.isArray(n.actors)?n.actors:[]).filter(e=>U(e)&&t.has(e));if(e.length===0)continue;let i=n.placement&&o.has(n.placement)?n.placement:`over`,a=typeof n.after==`number`&&Number.isFinite(n.after)?Math.max(-1,Math.min(r.length-1,Math.floor(n.after))):r.length-1;s.push({text:n.text,actors:i===`over`?e.slice(0,2):e.slice(0,1),placement:i,after:a})}return{kind:`sequence`,title:U(e.title)?e.title:``,actors:n,messages:r,frames:i,activations:a.length>0?a:void 0,notes:s.length>0?s:void 0,legend:Ra(e.legend)}}const so=new Set(de),co=new Set([`navbar`,`tabs`,`pagination`,`menu`,`accordion`,`sidebar`,`segmented`,`tabbar`]),lo=new Set(Sa);function uo(e){let t=[];for(let n of e.screens??[]){if(!n||!U(n.name))continue;let e=[];for(let t of Array.isArray(n.controls)?n.controls:[])!t||!t.kind||!so.has(t.kind)||e.push({kind:t.kind,label:Pa(t.label),width:t.width&&lo.has(t.width)?t.width:void 0,value:typeof t.value!=`number`||!Number.isFinite(t.value)?void 0:co.has(t.kind)?Fa(Math.max(0,Math.floor(t.value))):t.kind===`rating`?Math.max(0,Math.min(5,Math.round(t.value))):t.kind===`alert`?Math.max(0,Math.min(Ca.length-1,Math.round(t.value))):Math.max(0,Math.min(1,t.value))});t.push({name:n.name,frame:n.frame&&ka.has(n.frame)?n.frame:`phone`,controls:e})}return{kind:`wireframe`,title:U(e.title)?e.title:``,screens:t,legend:Ra(e.legend)}}function fo(e){return e?.kind===`gitgraph`?Xa(e):e?.kind===`gantt`?Ja(e):e?.kind===`sankey`?io(e):e?.kind===`sequence`?oo(e):e?.kind===`erd`?Ga(e):e?.kind===`wireframe`?uo(e):e?.kind===`mindmap`?ro(e):e?.kind===`infographic`?to(e):La(e??{})}function po(e){return e.kind===`sequence`?e.actors.length===0:e.kind===`erd`?e.entities.length===0:e.kind===`wireframe`?e.screens.every(e=>e.controls.length===0):e.kind===`mindmap`?e.central.length===0&&e.branches.length===0:e.kind===`infographic`?e.items.length===0:e.kind===`gitgraph`?e.commits.length===0:e.kind===`gantt`?e.tasks.length===0:e.kind===`sankey`?e.flows.length===0:e.nodes.length===0}function mo(e,t,n){if(e&&e.length){let[r,i]=t,a=Math.PI/180*n,o=Math.cos(a),s=Math.sin(a);for(let t of e){let[e,n]=t;t[0]=(e-r)*o-(n-i)*s+r,t[1]=(e-r)*s+(n-i)*o+i}}}function ho(e,t){return e[0]===t[0]&&e[1]===t[1]}function go(e,t,n,r=1){let i=n,a=Math.max(t,.1),o=e[0]&&e[0][0]&&typeof e[0][0]==`number`?[e]:e,s=[0,0];if(i)for(let e of o)mo(e,s,i);let c=function(e,t,n){let r=[];for(let t of e){let e=[...t];ho(e[0],e[e.length-1])||e.push([e[0][0],e[0][1]]),e.length>2&&r.push(e)}let i=[];t=Math.max(t,.1);let a=[];for(let e of r)for(let t=0;t<e.length-1;t++){let n=e[t],r=e[t+1];if(n[1]!==r[1]){let e=Math.min(n[1],r[1]);a.push({ymin:e,ymax:Math.max(n[1],r[1]),x:e===n[1]?n[0]:r[0],islope:(r[0]-n[0])/(r[1]-n[1])})}}if(a.sort(((e,t)=>e.ymin<t.ymin?-1:e.ymin>t.ymin?1:e.x<t.x?-1:e.x>t.x?1:e.ymax===t.ymax?0:(e.ymax-t.ymax)/Math.abs(e.ymax-t.ymax))),!a.length)return i;let o=[],s=a[0].ymin,c=0;for(;o.length||a.length;){if(a.length){let e=-1;for(let t=0;t<a.length&&!(a[t].ymin>s);t++)e=t;a.splice(0,e+1).forEach((e=>{o.push({s,edge:e})}))}if(o=o.filter((e=>!(e.edge.ymax<=s))),o.sort(((e,t)=>e.edge.x===t.edge.x?0:(e.edge.x-t.edge.x)/Math.abs(e.edge.x-t.edge.x))),(n!==1||c%t==0)&&o.length>1)for(let e=0;e<o.length;e+=2){let t=e+1;if(t>=o.length)break;let n=o[e].edge,r=o[t].edge;i.push([[Math.round(n.x),s],[Math.round(r.x),s]])}s+=n,o.forEach((e=>{e.edge.x=e.edge.x+n*e.edge.islope})),c++}return i}(o,a,r);if(i){for(let e of o)mo(e,s,-i);(function(e,t,n){let r=[];e.forEach((e=>r.push(...e))),mo(r,t,n)})(c,s,-i)}return c}function _o(e,t){let n=t.hachureAngle+90,r=t.hachureGap;r<0&&(r=4*t.strokeWidth),r=Math.round(Math.max(r,.1));let i=1;return t.roughness>=1&&(t.randomizer?.next()||Math.random())>.7&&(i=r),go(e,r,n,i||1)}var vo=class{constructor(e){this.helper=e}fillPolygons(e,t){return this._fillPolygons(e,t)}_fillPolygons(e,t){let n=_o(e,t);return{type:`fillSketch`,ops:this.renderLines(n,t)}}renderLines(e,t){let n=[];for(let r of e)n.push(...this.helper.doubleLineOps(r[0][0],r[0][1],r[1][0],r[1][1],t));return n}};function yo(e){let t=e[0],n=e[1];return Math.sqrt((t[0]-n[0])**2+(t[1]-n[1])**2)}var bo=class extends vo{fillPolygons(e,t){let n=t.hachureGap;n<0&&(n=4*t.strokeWidth),n=Math.max(n,.1);let r=_o(e,Object.assign({},t,{hachureGap:n})),i=Math.PI/180*t.hachureAngle,a=[],o=.5*n*Math.cos(i),s=.5*n*Math.sin(i);for(let[e,t]of r)yo([e,t])&&a.push([[e[0]-o,e[1]+s],[...t]],[[e[0]+o,e[1]-s],[...t]]);return{type:`fillSketch`,ops:this.renderLines(a,t)}}},xo=class extends vo{fillPolygons(e,t){let n=this._fillPolygons(e,t),r=Object.assign({},t,{hachureAngle:t.hachureAngle+90}),i=this._fillPolygons(e,r);return n.ops=n.ops.concat(i.ops),n}},So=class{constructor(e){this.helper=e}fillPolygons(e,t){let n=_o(e,t=Object.assign({},t,{hachureAngle:0}));return this.dotsOnLines(n,t)}dotsOnLines(e,t){let n=[],r=t.hachureGap;r<0&&(r=4*t.strokeWidth),r=Math.max(r,.1);let i=t.fillWeight;i<0&&(i=t.strokeWidth/2);let a=r/4;for(let o of e){let e=yo(o),s=e/r,c=Math.ceil(s)-1,l=e-c*r,u=(o[0][0]+o[1][0])/2-r/4,d=Math.min(o[0][1],o[1][1]);for(let e=0;e<c;e++){let o=d+l+e*r,s=u-a+2*Math.random()*a,c=o-a+2*Math.random()*a,f=this.helper.ellipse(s,c,i,i,t);n.push(...f.ops)}}return{type:`fillSketch`,ops:n}}},Co=class{constructor(e){this.helper=e}fillPolygons(e,t){let n=_o(e,t);return{type:`fillSketch`,ops:this.dashedLine(n,t)}}dashedLine(e,t){let n=t.dashOffset<0?t.hachureGap<0?4*t.strokeWidth:t.hachureGap:t.dashOffset,r=t.dashGap<0?t.hachureGap<0?4*t.strokeWidth:t.hachureGap:t.dashGap,i=[];return e.forEach((e=>{let a=yo(e),o=Math.floor(a/(n+r)),s=(a+r-o*(n+r))/2,c=e[0],l=e[1];c[0]>l[0]&&(c=e[1],l=e[0]);let u=Math.atan((l[1]-c[1])/(l[0]-c[0]));for(let e=0;e<o;e++){let a=e*(n+r),o=a+n,l=[c[0]+a*Math.cos(u)+s*Math.cos(u),c[1]+a*Math.sin(u)+s*Math.sin(u)],d=[c[0]+o*Math.cos(u)+s*Math.cos(u),c[1]+o*Math.sin(u)+s*Math.sin(u)];i.push(...this.helper.doubleLineOps(l[0],l[1],d[0],d[1],t))}})),i}},wo=class{constructor(e){this.helper=e}fillPolygons(e,t){let n=t.hachureGap<0?4*t.strokeWidth:t.hachureGap,r=t.zigzagOffset<0?n:t.zigzagOffset,i=_o(e,t=Object.assign({},t,{hachureGap:n+r}));return{type:`fillSketch`,ops:this.zigzagLines(i,r,t)}}zigzagLines(e,t,n){let r=[];return e.forEach((e=>{let i=yo(e),a=Math.round(i/(2*t)),o=e[0],s=e[1];o[0]>s[0]&&(o=e[1],s=e[0]);let c=Math.atan((s[1]-o[1])/(s[0]-o[0]));for(let e=0;e<a;e++){let i=2*e*t,a=2*(e+1)*t,s=Math.sqrt(2*t**2),l=[o[0]+i*Math.cos(c),o[1]+i*Math.sin(c)],u=[o[0]+a*Math.cos(c),o[1]+a*Math.sin(c)],d=[l[0]+s*Math.cos(c+Math.PI/4),l[1]+s*Math.sin(c+Math.PI/4)];r.push(...this.helper.doubleLineOps(l[0],l[1],d[0],d[1],n),...this.helper.doubleLineOps(d[0],d[1],u[0],u[1],n))}})),r}};const To={};var Eo=class{constructor(e){this.seed=e}next(){return this.seed?(2**31-1&(this.seed=Math.imul(48271,this.seed)))/2**31:Math.random()}};const Do={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0};function Oo(e,t){return e.type===t}function ko(e){let t=[],n=function(e){let t=[];for(;e!==``;)if(e.match(/^([ \t\r\n,]+)/))e=e.substr(RegExp.$1.length);else if(e.match(/^([aAcChHlLmMqQsStTvVzZ])/))t[t.length]={type:0,text:RegExp.$1},e=e.substr(RegExp.$1.length);else{if(!e.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];t[t.length]={type:1,text:`${parseFloat(RegExp.$1)}`},e=e.substr(RegExp.$1.length)}return t[t.length]={type:2,text:``},t}(e),r=`BOD`,i=0,a=n[i];for(;!Oo(a,2);){let o=0,s=[];if(r===`BOD`){if(a.text!==`M`&&a.text!==`m`)return ko(`M0,0`+e);i++,o=Do[a.text],r=a.text}else Oo(a,1)?o=Do[r]:(i++,o=Do[a.text],r=a.text);if(!(i+o<n.length))throw Error(`Path data ended short`);for(let e=i;e<i+o;e++){let t=n[e];if(!Oo(t,1))throw Error(`Param not a number: `+r+`,`+t.text);s[s.length]=+t.text}if(typeof Do[r]!=`number`)throw Error(`Bad segment: `+r);{let e={key:r,data:s};t.push(e),i+=o,a=n[i],r===`M`&&(r=`L`),r===`m`&&(r=`l`)}}return t}function Ao(e){let t=0,n=0,r=0,i=0,a=[];for(let{key:o,data:s}of e)switch(o){case`M`:a.push({key:`M`,data:[...s]}),[t,n]=s,[r,i]=s;break;case`m`:t+=s[0],n+=s[1],a.push({key:`M`,data:[t,n]}),r=t,i=n;break;case`L`:a.push({key:`L`,data:[...s]}),[t,n]=s;break;case`l`:t+=s[0],n+=s[1],a.push({key:`L`,data:[t,n]});break;case`C`:a.push({key:`C`,data:[...s]}),t=s[4],n=s[5];break;case`c`:{let e=s.map(((e,r)=>r%2?e+n:e+t));a.push({key:`C`,data:e}),t=e[4],n=e[5];break}case`Q`:a.push({key:`Q`,data:[...s]}),t=s[2],n=s[3];break;case`q`:{let e=s.map(((e,r)=>r%2?e+n:e+t));a.push({key:`Q`,data:e}),t=e[2],n=e[3];break}case`A`:a.push({key:`A`,data:[...s]}),t=s[5],n=s[6];break;case`a`:t+=s[5],n+=s[6],a.push({key:`A`,data:[s[0],s[1],s[2],s[3],s[4],t,n]});break;case`H`:a.push({key:`H`,data:[...s]}),t=s[0];break;case`h`:t+=s[0],a.push({key:`H`,data:[t]});break;case`V`:a.push({key:`V`,data:[...s]}),n=s[0];break;case`v`:n+=s[0],a.push({key:`V`,data:[n]});break;case`S`:a.push({key:`S`,data:[...s]}),t=s[2],n=s[3];break;case`s`:{let e=s.map(((e,r)=>r%2?e+n:e+t));a.push({key:`S`,data:e}),t=e[2],n=e[3];break}case`T`:a.push({key:`T`,data:[...s]}),t=s[0],n=s[1];break;case`t`:t+=s[0],n+=s[1],a.push({key:`T`,data:[t,n]});break;case`Z`:case`z`:a.push({key:`Z`,data:[]}),t=r,n=i}return a}function jo(e){let t=[],n=``,r=0,i=0,a=0,o=0,s=0,c=0;for(let{key:l,data:u}of e){switch(l){case`M`:t.push({key:`M`,data:[...u]}),[r,i]=u,[a,o]=u;break;case`C`:t.push({key:`C`,data:[...u]}),r=u[4],i=u[5],s=u[2],c=u[3];break;case`L`:t.push({key:`L`,data:[...u]}),[r,i]=u;break;case`H`:r=u[0],t.push({key:`L`,data:[r,i]});break;case`V`:i=u[0],t.push({key:`L`,data:[r,i]});break;case`S`:{let e=0,a=0;n===`C`||n===`S`?(e=r+(r-s),a=i+(i-c)):(e=r,a=i),t.push({key:`C`,data:[e,a,...u]}),s=u[0],c=u[1],r=u[2],i=u[3];break}case`T`:{let[e,a]=u,o=0,l=0;n===`Q`||n===`T`?(o=r+(r-s),l=i+(i-c)):(o=r,l=i);let d=r+2*(o-r)/3,f=i+2*(l-i)/3,p=e+2*(o-e)/3,m=a+2*(l-a)/3;t.push({key:`C`,data:[d,f,p,m,e,a]}),s=o,c=l,r=e,i=a;break}case`Q`:{let[e,n,a,o]=u,l=r+2*(e-r)/3,d=i+2*(n-i)/3,f=a+2*(e-a)/3,p=o+2*(n-o)/3;t.push({key:`C`,data:[l,d,f,p,a,o]}),s=e,c=n,r=a,i=o;break}case`A`:{let e=Math.abs(u[0]),n=Math.abs(u[1]),a=u[2],o=u[3],s=u[4],c=u[5],l=u[6];e===0||n===0?(t.push({key:`C`,data:[r,i,c,l,c,l]}),r=c,i=l):(r!==c||i!==l)&&(No(r,i,c,l,e,n,a,o,s).forEach((function(e){t.push({key:`C`,data:e})})),r=c,i=l);break}case`Z`:t.push({key:`Z`,data:[]}),r=a,i=o}n=l}return t}function Mo(e,t,n){return[e*Math.cos(n)-t*Math.sin(n),e*Math.sin(n)+t*Math.cos(n)]}function No(e,t,n,r,i,a,o,s,c,l){let u=(d=o,Math.PI*d/180);var d;let f=[],p=0,m=0,h=0,g=0;if(l)[p,m,h,g]=l;else{[e,t]=Mo(e,t,-u),[n,r]=Mo(n,r,-u);let o=(e-n)/2,l=(t-r)/2,d=o*o/(i*i)+l*l/(a*a);d>1&&(d=Math.sqrt(d),i*=d,a*=d);let f=i*i,_=a*a,v=f*_-f*l*l-_*o*o,y=f*l*l+_*o*o,b=(s===c?-1:1)*Math.sqrt(Math.abs(v/y));h=b*i*l/a+(e+n)/2,g=b*-a*o/i+(t+r)/2,p=Math.asin(parseFloat(((t-g)/a).toFixed(9))),m=Math.asin(parseFloat(((r-g)/a).toFixed(9))),e<h&&(p=Math.PI-p),n<h&&(m=Math.PI-m),p<0&&(p=2*Math.PI+p),m<0&&(m=2*Math.PI+m),c&&p>m&&(p-=2*Math.PI),!c&&m>p&&(m-=2*Math.PI)}let _=m-p;if(Math.abs(_)>120*Math.PI/180){let e=m,t=n,s=r;m=c&&m>p?p+120*Math.PI/180*1:p+120*Math.PI/180*-1,f=No(n=h+i*Math.cos(m),r=g+a*Math.sin(m),t,s,i,a,o,0,c,[m,e,h,g])}_=m-p;let v=Math.cos(p),y=Math.sin(p),b=Math.cos(m),x=Math.sin(m),S=Math.tan(_/4),C=4/3*i*S,w=4/3*a*S,ee=[e,t],T=[e+C*y,t-w*v],te=[n+C*x,r-w*b],E=[n,r];if(T[0]=2*ee[0]-T[0],T[1]=2*ee[1]-T[1],l)return[T,te,E].concat(f);{f=[T,te,E].concat(f);let e=[];for(let t=0;t<f.length;t+=3){let n=Mo(f[t][0],f[t][1],u),r=Mo(f[t+1][0],f[t+1][1],u),i=Mo(f[t+2][0],f[t+2][1],u);e.push([n[0],n[1],r[0],r[1],i[0],i[1]])}return e}}const Po={randOffset:function(e,t){return W(e,t)},randOffsetWithRange:function(e,t,n){return qo(e,t,n)},ellipse:function(e,t,n,r,i){return Bo(e,t,i,zo(n,r,i)).opset},doubleLineOps:function(e,t,n,r,i){return Jo(e,t,n,r,i,!0)}};function Fo(e,t,n,r,i){return{type:`path`,ops:Jo(e,t,n,r,i)}}function Io(e,t,n){let r=(e||[]).length;if(r>2){let i=[];for(let t=0;t<r-1;t++)i.push(...Jo(e[t][0],e[t][1],e[t+1][0],e[t+1][1],n));return t&&i.push(...Jo(e[r-1][0],e[r-1][1],e[0][0],e[0][1],n)),{type:`path`,ops:i}}return r===2?Fo(e[0][0],e[0][1],e[1][0],e[1][1],n):{type:`path`,ops:[]}}function Lo(e,t,n,r,i){return function(e,t){return Io(e,!0,t)}([[e,t],[e+n,t],[e+n,t+r],[e,t+r]],i)}function Ro(e,t){if(e.length){let n=typeof e[0][0]==`number`?[e]:e,r=Xo(n[0],1*(1+.2*t.roughness),t),i=t.disableMultiStroke?[]:Xo(n[0],1.5*(1+.22*t.roughness),Go(t));for(let e=1;e<n.length;e++){let a=n[e];if(a.length){let e=Xo(a,1*(1+.2*t.roughness),t),n=t.disableMultiStroke?[]:Xo(a,1.5*(1+.22*t.roughness),Go(t));for(let t of e)t.op!==`move`&&r.push(t);for(let e of n)e.op!==`move`&&i.push(e)}}return{type:`path`,ops:r.concat(i)}}return{type:`path`,ops:[]}}function zo(e,t,n){let r=Math.sqrt(2*Math.PI*Math.sqrt(((e/2)**2+(t/2)**2)/2)),i=Math.ceil(Math.max(n.curveStepCount,n.curveStepCount/Math.sqrt(200)*r)),a=2*Math.PI/i,o=Math.abs(e/2),s=Math.abs(t/2),c=1-n.curveFitting;return o+=W(o*c,n),s+=W(s*c,n),{increment:a,rx:o,ry:s}}function Bo(e,t,n,r){let[i,a]=Qo(r.increment,e,t,r.rx,r.ry,1,r.increment*qo(.1,qo(.4,1,n),n),n),o=Zo(i,null,n);if(!n.disableMultiStroke&&n.roughness!==0){let[i]=Qo(r.increment,e,t,r.rx,r.ry,1.5,0,n),a=Zo(i,null,n);o=o.concat(a)}return{estimatedPoints:a,opset:{type:`path`,ops:o}}}function Vo(e,t,n,r,i,a,o,s,c){let l=e,u=t,d=Math.abs(n/2),f=Math.abs(r/2);d+=W(.01*d,c),f+=W(.01*f,c);let p=i,m=a;for(;p<0;)p+=2*Math.PI,m+=2*Math.PI;m-p>2*Math.PI&&(p=0,m=2*Math.PI);let h=2*Math.PI/c.curveStepCount,g=Math.min(h/2,(m-p)/2),_=$o(g,l,u,d,f,p,m,1,c);if(!c.disableMultiStroke){let e=$o(g,l,u,d,f,p,m,1.5,c);_.push(...e)}return o&&(s?_.push(...Jo(l,u,l+d*Math.cos(p),u+f*Math.sin(p),c),...Jo(l,u,l+d*Math.cos(m),u+f*Math.sin(m),c)):_.push({op:`lineTo`,data:[l,u]},{op:`lineTo`,data:[l+d*Math.cos(p),u+f*Math.sin(p)]})),{type:`path`,ops:_}}function Ho(e,t){let n=jo(Ao(ko(e))),r=[],i=[0,0],a=[0,0];for(let{key:e,data:o}of n)switch(e){case`M`:a=[o[0],o[1]],i=[o[0],o[1]];break;case`L`:r.push(...Jo(a[0],a[1],o[0],o[1],t)),a=[o[0],o[1]];break;case`C`:{let[e,n,i,s,c,l]=o;r.push(...es(e,n,i,s,c,l,a,t)),a=[c,l];break}case`Z`:r.push(...Jo(a[0],a[1],i[0],i[1],t)),a=[i[0],i[1]]}return{type:`path`,ops:r}}function Uo(e,t){let n=[];for(let r of e)if(r.length){let e=t.maxRandomnessOffset||0,i=r.length;if(i>2){n.push({op:`move`,data:[r[0][0]+W(e,t),r[0][1]+W(e,t)]});for(let a=1;a<i;a++)n.push({op:`lineTo`,data:[r[a][0]+W(e,t),r[a][1]+W(e,t)]})}}return{type:`fillPath`,ops:n}}function Wo(e,t){return function(e,t){let n=e.fillStyle||`hachure`;if(!To[n])switch(n){case`zigzag`:To[n]||(To[n]=new bo(t));break;case`cross-hatch`:To[n]||(To[n]=new xo(t));break;case`dots`:To[n]||(To[n]=new So(t));break;case`dashed`:To[n]||(To[n]=new Co(t));break;case`zigzag-line`:To[n]||(To[n]=new wo(t));break;default:n=`hachure`,To[n]||(To[n]=new vo(t))}return To[n]}(t,Po).fillPolygons(e,t)}function Go(e){let t=Object.assign({},e);return t.randomizer=void 0,e.seed&&(t.seed=e.seed+1),t}function Ko(e){return e.randomizer||=new Eo(e.seed||0),e.randomizer.next()}function qo(e,t,n,r=1){return n.roughness*r*(Ko(n)*(t-e)+e)}function W(e,t,n=1){return qo(-e,e,t,n)}function Jo(e,t,n,r,i,a=!1){let o=a?i.disableMultiStrokeFill:i.disableMultiStroke,s=Yo(e,t,n,r,i,!0,!1);if(o)return s;let c=Yo(e,t,n,r,i,!0,!0);return s.concat(c)}function Yo(e,t,n,r,i,a,o){let s=(e-n)**2+(t-r)**2,c=Math.sqrt(s),l=1;l=c<200?1:c>500?.4:-.0016668*c+1.233334;let u=i.maxRandomnessOffset||0;u*u*100>s&&(u=c/10);let d=u/2,f=.2+.2*Ko(i),p=i.bowing*i.maxRandomnessOffset*(r-t)/200,m=i.bowing*i.maxRandomnessOffset*(e-n)/200;p=W(p,i,l),m=W(m,i,l);let h=[],g=()=>W(d,i,l),_=()=>W(u,i,l),v=i.preserveVertices;return a&&(o?h.push({op:`move`,data:[e+(v?0:g()),t+(v?0:g())]}):h.push({op:`move`,data:[e+(v?0:W(u,i,l)),t+(v?0:W(u,i,l))]})),o?h.push({op:`bcurveTo`,data:[p+e+(n-e)*f+g(),m+t+(r-t)*f+g(),p+e+2*(n-e)*f+g(),m+t+2*(r-t)*f+g(),n+(v?0:g()),r+(v?0:g())]}):h.push({op:`bcurveTo`,data:[p+e+(n-e)*f+_(),m+t+(r-t)*f+_(),p+e+2*(n-e)*f+_(),m+t+2*(r-t)*f+_(),n+(v?0:_()),r+(v?0:_())]}),h}function Xo(e,t,n){if(!e.length)return[];let r=[];r.push([e[0][0]+W(t,n),e[0][1]+W(t,n)]),r.push([e[0][0]+W(t,n),e[0][1]+W(t,n)]);for(let i=1;i<e.length;i++)r.push([e[i][0]+W(t,n),e[i][1]+W(t,n)]),i===e.length-1&&r.push([e[i][0]+W(t,n),e[i][1]+W(t,n)]);return Zo(r,null,n)}function Zo(e,t,n){let r=e.length,i=[];if(r>3){let a=[],o=1-n.curveTightness;i.push({op:`move`,data:[e[1][0],e[1][1]]});for(let t=1;t+2<r;t++){let n=e[t];a[0]=[n[0],n[1]],a[1]=[n[0]+(o*e[t+1][0]-o*e[t-1][0])/6,n[1]+(o*e[t+1][1]-o*e[t-1][1])/6],a[2]=[e[t+1][0]+(o*e[t][0]-o*e[t+2][0])/6,e[t+1][1]+(o*e[t][1]-o*e[t+2][1])/6],a[3]=[e[t+1][0],e[t+1][1]],i.push({op:`bcurveTo`,data:[a[1][0],a[1][1],a[2][0],a[2][1],a[3][0],a[3][1]]})}if(t&&t.length===2){let e=n.maxRandomnessOffset;i.push({op:`lineTo`,data:[t[0]+W(e,n),t[1]+W(e,n)]})}}else r===3?(i.push({op:`move`,data:[e[1][0],e[1][1]]}),i.push({op:`bcurveTo`,data:[e[1][0],e[1][1],e[2][0],e[2][1],e[2][0],e[2][1]]})):r===2&&i.push(...Yo(e[0][0],e[0][1],e[1][0],e[1][1],n,!0,!0));return i}function Qo(e,t,n,r,i,a,o,s){let c=[],l=[];if(s.roughness===0){e/=4,l.push([t+r*Math.cos(-e),n+i*Math.sin(-e)]);for(let a=0;a<=2*Math.PI;a+=e){let e=[t+r*Math.cos(a),n+i*Math.sin(a)];c.push(e),l.push(e)}l.push([t+r*Math.cos(0),n+i*Math.sin(0)]),l.push([t+r*Math.cos(e),n+i*Math.sin(e)])}else{let u=W(.5,s)-Math.PI/2;l.push([W(a,s)+t+.9*r*Math.cos(u-e),W(a,s)+n+.9*i*Math.sin(u-e)]);let d=2*Math.PI+u-.01;for(let o=u;o<d;o+=e){let e=[W(a,s)+t+r*Math.cos(o),W(a,s)+n+i*Math.sin(o)];c.push(e),l.push(e)}l.push([W(a,s)+t+r*Math.cos(u+2*Math.PI+.5*o),W(a,s)+n+i*Math.sin(u+2*Math.PI+.5*o)]),l.push([W(a,s)+t+.98*r*Math.cos(u+o),W(a,s)+n+.98*i*Math.sin(u+o)]),l.push([W(a,s)+t+.9*r*Math.cos(u+.5*o),W(a,s)+n+.9*i*Math.sin(u+.5*o)])}return[l,c]}function $o(e,t,n,r,i,a,o,s,c){let l=a+W(.1,c),u=[];u.push([W(s,c)+t+.9*r*Math.cos(l-e),W(s,c)+n+.9*i*Math.sin(l-e)]);for(let a=l;a<=o;a+=e)u.push([W(s,c)+t+r*Math.cos(a),W(s,c)+n+i*Math.sin(a)]);return u.push([t+r*Math.cos(o),n+i*Math.sin(o)]),u.push([t+r*Math.cos(o),n+i*Math.sin(o)]),Zo(u,null,c)}function es(e,t,n,r,i,a,o,s){let c=[],l=[s.maxRandomnessOffset||1,(s.maxRandomnessOffset||1)+.3],u=[0,0],d=s.disableMultiStroke?1:2,f=s.preserveVertices;for(let p=0;p<d;p++)p===0?c.push({op:`move`,data:[o[0],o[1]]}):c.push({op:`move`,data:[o[0]+(f?0:W(l[0],s)),o[1]+(f?0:W(l[0],s))]}),u=f?[i,a]:[i+W(l[p],s),a+W(l[p],s)],c.push({op:`bcurveTo`,data:[e+W(l[p],s),t+W(l[p],s),n+W(l[p],s),r+W(l[p],s),u[0],u[1]]});return c}function ts(e){return[...e]}function ns(e,t=0){let n=e.length;if(n<3)throw Error(`A curve must have at least three points.`);let r=[];if(n===3)r.push(ts(e[0]),ts(e[1]),ts(e[2]),ts(e[2]));else{let n=[];n.push(e[0],e[0]);for(let t=1;t<e.length;t++)n.push(e[t]),t===e.length-1&&n.push(e[t]);let i=[],a=1-t;r.push(ts(n[0]));for(let e=1;e+2<n.length;e++){let t=n[e];i[0]=[t[0],t[1]],i[1]=[t[0]+(a*n[e+1][0]-a*n[e-1][0])/6,t[1]+(a*n[e+1][1]-a*n[e-1][1])/6],i[2]=[n[e+1][0]+(a*n[e][0]-a*n[e+2][0])/6,n[e+1][1]+(a*n[e][1]-a*n[e+2][1])/6],i[3]=[n[e+1][0],n[e+1][1]],r.push(i[1],i[2],i[3])}}return r}function rs(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2}function is(e,t,n){let r=rs(t,n);if(r===0)return rs(e,t);let i=((e[0]-t[0])*(n[0]-t[0])+(e[1]-t[1])*(n[1]-t[1]))/r;return i=Math.max(0,Math.min(1,i)),rs(e,as(t,n,i))}function as(e,t,n){return[e[0]+(t[0]-e[0])*n,e[1]+(t[1]-e[1])*n]}function os(e,t,n,r){let i=r||[];if(function(e,t){let n=e[t+0],r=e[t+1],i=e[t+2],a=e[t+3],o=3*r[0]-2*n[0]-a[0];o*=o;let s=3*r[1]-2*n[1]-a[1];s*=s;let c=3*i[0]-2*a[0]-n[0];c*=c;let l=3*i[1]-2*a[1]-n[1];return l*=l,o<c&&(o=c),s<l&&(s=l),o+s}(e,t)<n){let n=e[t+0];i.length?(a=i[i.length-1],o=n,Math.sqrt(rs(a,o)))>1&&i.push(n):i.push(n),i.push(e[t+3])}else{let r=.5,a=e[t+0],o=e[t+1],s=e[t+2],c=e[t+3],l=as(a,o,r),u=as(o,s,r),d=as(s,c,r),f=as(l,u,r),p=as(u,d,r),m=as(f,p,r);os([a,l,f,m],0,n,i),os([m,p,d,c],0,n,i)}var a,o;return i}function ss(e,t){return cs(e,0,e.length,t)}function cs(e,t,n,r,i){let a=i||[],o=e[t],s=e[n-1],c=0,l=1;for(let r=t+1;r<n-1;++r){let t=is(e[r],o,s);t>c&&(c=t,l=r)}return Math.sqrt(c)>r?(cs(e,t,l+1,r,a),cs(e,l,n,r,a)):(a.length||a.push(o),a.push(s)),a}function ls(e,t=.15,n){let r=[],i=(e.length-1)/3;for(let n=0;n<i;n++)os(e,3*n,t,r);return n&&n>0?cs(r,0,r.length,n):r}const us=`none`;var ds=class{constructor(e){this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:`#000`,strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:`hachure`,fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1,fillShapeRoughnessGain:.8},this.config=e||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}static newSeed(){return Math.floor(Math.random()*2**31)}_o(e){return e?Object.assign({},this.defaultOptions,e):this.defaultOptions}_d(e,t,n){return{shape:e,sets:t||[],options:n||this.defaultOptions}}line(e,t,n,r,i){let a=this._o(i);return this._d(`line`,[Fo(e,t,n,r,a)],a)}rectangle(e,t,n,r,i){let a=this._o(i),o=[],s=Lo(e,t,n,r,a);if(a.fill){let i=[[e,t],[e+n,t],[e+n,t+r],[e,t+r]];a.fillStyle===`solid`?o.push(Uo([i],a)):o.push(Wo([i],a))}return a.stroke!==us&&o.push(s),this._d(`rectangle`,o,a)}ellipse(e,t,n,r,i){let a=this._o(i),o=[],s=zo(n,r,a),c=Bo(e,t,a,s);if(a.fill)if(a.fillStyle===`solid`){let n=Bo(e,t,a,s).opset;n.type=`fillPath`,o.push(n)}else o.push(Wo([c.estimatedPoints],a));return a.stroke!==us&&o.push(c.opset),this._d(`ellipse`,o,a)}circle(e,t,n,r){let i=this.ellipse(e,t,n,n,r);return i.shape=`circle`,i}linearPath(e,t){let n=this._o(t);return this._d(`linearPath`,[Io(e,!1,n)],n)}arc(e,t,n,r,i,a,o=!1,s){let c=this._o(s),l=[],u=Vo(e,t,n,r,i,a,o,!0,c);if(o&&c.fill)if(c.fillStyle===`solid`){let o=Object.assign({},c);o.disableMultiStroke=!0;let s=Vo(e,t,n,r,i,a,!0,!1,o);s.type=`fillPath`,l.push(s)}else l.push(function(e,t,n,r,i,a,o){let s=e,c=t,l=Math.abs(n/2),u=Math.abs(r/2);l+=W(.01*l,o),u+=W(.01*u,o);let d=i,f=a;for(;d<0;)d+=2*Math.PI,f+=2*Math.PI;f-d>2*Math.PI&&(d=0,f=2*Math.PI);let p=(f-d)/o.curveStepCount,m=[];for(let e=d;e<=f;e+=p)m.push([s+l*Math.cos(e),c+u*Math.sin(e)]);return m.push([s+l*Math.cos(f),c+u*Math.sin(f)]),m.push([s,c]),Wo([m],o)}(e,t,n,r,i,a,c));return c.stroke!==us&&l.push(u),this._d(`arc`,l,c)}curve(e,t){let n=this._o(t),r=[],i=Ro(e,n);if(n.fill&&n.fill!==us)if(n.fillStyle===`solid`){let t=Ro(e,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));r.push({type:`fillPath`,ops:this._mergedShape(t.ops)})}else{let t=[],i=e;if(i.length){let e=typeof i[0][0]==`number`?[i]:i;for(let r of e)r.length<3?t.push(...r):r.length===3?t.push(...ls(ns([r[0],r[0],r[1],r[2]]),10,(1+n.roughness)/2)):t.push(...ls(ns(r),10,(1+n.roughness)/2))}t.length&&r.push(Wo([t],n))}return n.stroke!==us&&r.push(i),this._d(`curve`,r,n)}polygon(e,t){let n=this._o(t),r=[],i=Io(e,!0,n);return n.fill&&(n.fillStyle===`solid`?r.push(Uo([e],n)):r.push(Wo([e],n))),n.stroke!==us&&r.push(i),this._d(`polygon`,r,n)}path(e,t){let n=this._o(t),r=[];if(!e)return this._d(`path`,r,n);e=(e||``).replace(/\n/g,` `).replace(/(-\s)/g,`-`).replace(`/(ss)/g`,` `);let i=n.fill&&n.fill!==`transparent`&&n.fill!==us,a=n.stroke!==us,o=!!(n.simplification&&n.simplification<1),s=function(e,t,n){let r=jo(Ao(ko(e))),i=[],a=[],o=[0,0],s=[],c=()=>{s.length>=4&&a.push(...ls(s,t)),s=[]},l=()=>{c(),a.length&&(i.push(a),a=[])};for(let{key:e,data:t}of r)switch(e){case`M`:l(),o=[t[0],t[1]],a.push(o);break;case`L`:c(),a.push([t[0],t[1]]);break;case`C`:if(!s.length){let e=a.length?a[a.length-1]:o;s.push([e[0],e[1]])}s.push([t[0],t[1]]),s.push([t[2],t[3]]),s.push([t[4],t[5]]);break;case`Z`:c(),a.push([o[0],o[1]])}if(l(),!n)return i;let u=[];for(let e of i){let t=ss(e,n);t.length&&u.push(t)}return u}(e,1,o?4-4*(n.simplification||1):(1+n.roughness)/2),c=Ho(e,n);if(i)if(n.fillStyle===`solid`)if(s.length===1){let t=Ho(e,Object.assign(Object.assign({},n),{disableMultiStroke:!0,roughness:n.roughness?n.roughness+n.fillShapeRoughnessGain:0}));r.push({type:`fillPath`,ops:this._mergedShape(t.ops)})}else r.push(Uo(s,n));else r.push(Wo(s,n));return a&&(o?s.forEach((e=>{r.push(Io(e,!1,n))})):r.push(c)),this._d(`path`,r,n)}opsToPath(e,t){let n=``;for(let r of e.ops){let e=typeof t==`number`&&t>=0?r.data.map((e=>+e.toFixed(t))):r.data;switch(r.op){case`move`:n+=`M${e[0]} ${e[1]} `;break;case`bcurveTo`:n+=`C${e[0]} ${e[1]}, ${e[2]} ${e[3]}, ${e[4]} ${e[5]} `;break;case`lineTo`:n+=`L${e[0]} ${e[1]} `}}return n.trim()}toPaths(e){let t=e.sets||[],n=e.options||this.defaultOptions,r=[];for(let e of t){let t=null;switch(e.type){case`path`:t={d:this.opsToPath(e),stroke:n.stroke,strokeWidth:n.strokeWidth,fill:us};break;case`fillPath`:t={d:this.opsToPath(e),stroke:us,strokeWidth:0,fill:n.fill||us};break;case`fillSketch`:t=this.fillSketch(e,n)}t&&r.push(t)}return r}fillSketch(e,t){let n=t.fillWeight;return n<0&&(n=t.strokeWidth/2),{d:this.opsToPath(e),stroke:t.fill||us,strokeWidth:n,fill:us}}_mergedShape(e){return e.filter(((e,t)=>t===0||e.op!==`move`))}},fs=class{constructor(e,t){this.canvas=e,this.ctx=this.canvas.getContext(`2d`),this.gen=new ds(t)}draw(e){let t=e.sets||[],n=e.options||this.getDefaultOptions(),r=this.ctx,i=e.options.fixedDecimalPlaceDigits;for(let a of t)switch(a.type){case`path`:r.save(),r.strokeStyle=n.stroke===`none`?`transparent`:n.stroke,r.lineWidth=n.strokeWidth,n.strokeLineDash&&r.setLineDash(n.strokeLineDash),n.strokeLineDashOffset&&(r.lineDashOffset=n.strokeLineDashOffset),this._drawToContext(r,a,i),r.restore();break;case`fillPath`:{r.save(),r.fillStyle=n.fill||``;let t=e.shape===`curve`||e.shape===`polygon`||e.shape===`path`?`evenodd`:`nonzero`;this._drawToContext(r,a,i,t),r.restore();break}case`fillSketch`:this.fillSketch(r,a,n)}}fillSketch(e,t,n){let r=n.fillWeight;r<0&&(r=n.strokeWidth/2),e.save(),n.fillLineDash&&e.setLineDash(n.fillLineDash),n.fillLineDashOffset&&(e.lineDashOffset=n.fillLineDashOffset),e.strokeStyle=n.fill||``,e.lineWidth=r,this._drawToContext(e,t,n.fixedDecimalPlaceDigits),e.restore()}_drawToContext(e,t,n,r=`nonzero`){e.beginPath();for(let r of t.ops){let t=typeof n==`number`&&n>=0?r.data.map((e=>+e.toFixed(n))):r.data;switch(r.op){case`move`:e.moveTo(t[0],t[1]);break;case`bcurveTo`:e.bezierCurveTo(t[0],t[1],t[2],t[3],t[4],t[5]);break;case`lineTo`:e.lineTo(t[0],t[1])}}t.type===`fillPath`?e.fill(r):e.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(e,t,n,r,i){let a=this.gen.line(e,t,n,r,i);return this.draw(a),a}rectangle(e,t,n,r,i){let a=this.gen.rectangle(e,t,n,r,i);return this.draw(a),a}ellipse(e,t,n,r,i){let a=this.gen.ellipse(e,t,n,r,i);return this.draw(a),a}circle(e,t,n,r){let i=this.gen.circle(e,t,n,r);return this.draw(i),i}linearPath(e,t){let n=this.gen.linearPath(e,t);return this.draw(n),n}polygon(e,t){let n=this.gen.polygon(e,t);return this.draw(n),n}arc(e,t,n,r,i,a,o=!1,s){let c=this.gen.arc(e,t,n,r,i,a,o,s);return this.draw(c),c}curve(e,t){let n=this.gen.curve(e,t);return this.draw(n),n}path(e,t){let n=this.gen.path(e,t);return this.draw(n),n}};const ps=`http://www.w3.org/2000/svg`;var ms=class{constructor(e,t){this.svg=e,this.gen=new ds(t)}draw(e){let t=e.sets||[],n=e.options||this.getDefaultOptions(),r=this.svg.ownerDocument||window.document,i=r.createElementNS(ps,`g`),a=e.options.fixedDecimalPlaceDigits;for(let o of t){let t=null;switch(o.type){case`path`:t=r.createElementNS(ps,`path`),t.setAttribute(`d`,this.opsToPath(o,a)),t.setAttribute(`stroke`,n.stroke),t.setAttribute(`stroke-width`,n.strokeWidth+``),t.setAttribute(`fill`,`none`),n.strokeLineDash&&t.setAttribute(`stroke-dasharray`,n.strokeLineDash.join(` `).trim()),n.strokeLineDashOffset&&t.setAttribute(`stroke-dashoffset`,`${n.strokeLineDashOffset}`);break;case`fillPath`:t=r.createElementNS(ps,`path`),t.setAttribute(`d`,this.opsToPath(o,a)),t.setAttribute(`stroke`,`none`),t.setAttribute(`stroke-width`,`0`),t.setAttribute(`fill`,n.fill||``),e.shape!==`curve`&&e.shape!==`polygon`||t.setAttribute(`fill-rule`,`evenodd`);break;case`fillSketch`:t=this.fillSketch(r,o,n)}t&&i.appendChild(t)}return i}fillSketch(e,t,n){let r=n.fillWeight;r<0&&(r=n.strokeWidth/2);let i=e.createElementNS(ps,`path`);return i.setAttribute(`d`,this.opsToPath(t,n.fixedDecimalPlaceDigits)),i.setAttribute(`stroke`,n.fill||``),i.setAttribute(`stroke-width`,r+``),i.setAttribute(`fill`,`none`),n.fillLineDash&&i.setAttribute(`stroke-dasharray`,n.fillLineDash.join(` `).trim()),n.fillLineDashOffset&&i.setAttribute(`stroke-dashoffset`,`${n.fillLineDashOffset}`),i}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(e,t){return this.gen.opsToPath(e,t)}line(e,t,n,r,i){let a=this.gen.line(e,t,n,r,i);return this.draw(a)}rectangle(e,t,n,r,i){let a=this.gen.rectangle(e,t,n,r,i);return this.draw(a)}ellipse(e,t,n,r,i){let a=this.gen.ellipse(e,t,n,r,i);return this.draw(a)}circle(e,t,n,r){let i=this.gen.circle(e,t,n,r);return this.draw(i)}linearPath(e,t){let n=this.gen.linearPath(e,t);return this.draw(n)}polygon(e,t){let n=this.gen.polygon(e,t);return this.draw(n)}arc(e,t,n,r,i,a,o=!1,s){let c=this.gen.arc(e,t,n,r,i,a,o,s);return this.draw(c)}curve(e,t){let n=this.gen.curve(e,t);return this.draw(n)}path(e,t){let n=this.gen.path(e,t);return this.draw(n)}};const hs={canvas:(e,t)=>new fs(e,t),svg:(e,t)=>new ms(e,t),generator:e=>new ds(e),newSeed:()=>ds.newSeed()}.generator();function gs(e){let t=0;for(let n=0;n<e.length;n+=1)t=t*31+e.charCodeAt(n)|0;return Math.abs(t)%2**31}const _s=new Map;function vs(e,t){_s.size>=2e3&&_s.delete(_s.keys().next().value),_s.set(e,t)}function ys(e,t,n,r=1,i=1){let a=`${t}|${n}|${r}|${i}|${e}`,o=_s.get(a);if(o)return o;let s=hs.path(e,{seed:t,roughness:r,bowing:i,disableMultiStroke:!0,preserveVertices:!0,strokeWidth:n}),c=hs.toPaths(s).map(e=>e.d);return vs(a,c),c}function bs(e,t,n,r,i){let a=gs(r.id)+i,o=`disc|${a}|${e.toFixed(1)}|${t.toFixed(1)}|${n.toFixed(1)}`,s=_s.get(o);if(s)return s;let c=hs.circle(e,t,n*2,{seed:a,roughness:1,bowing:1,fill:`#000000`,fillStyle:`solid`,stroke:`none`,disableMultiStroke:!0}),l=hs.toPaths(c).filter(e=>e.fill&&e.fill!==`none`).map(e=>e.d);return vs(o,l),l}function xs(e,t,n,r){let i=Ji(t),a=zt(Math.min(i.width,i.height)/220,.35,1);return ys(e,gs(t.id)+n,r,1*a,.3*a)}const G=`#8a8f98`,K=1.5;function q(e,t,n,r=2,i){return xs(t,e.shape,e.nextSalt(),r).map(e=>({kind:`path`,d:e,stroke:n,width:r,testId:i}))}function Ss(e,t,n,r){return[{kind:`rect`,x:t.x,y:t.y,width:t.width,height:t.height,rx:n,fill:r},...q(e,L(t.x,t.y,t.width,t.height,n),e.ink)]}function J(e,t,n,r,i,a={}){return{kind:`text`,x:t,y:n,text:r,size:a.size??e.shape.fontSize,color:i,family:e.shape.fontFamily,anchor:a.anchor??`start`,baseline:a.baseline??`middle`,testId:a.testId}}function Cs(e,t,n){return e.text.measure(t,n??e.shape.fontSize,e.shape.fontFamily)}function ws(e){return!e.fill||e.fill===`transparent`?null:e.fill}function Ts(e){return Math.min(7,e.height*.18)}function Es(e){return 12+Ts(e)*2+12}function Ds(e){return Math.min(26,e.height)}function Os(e){return Ds(e)*1.9+10}function ks(e){return Math.min(e.height,e.width/3)}function As(e){return Math.min(e.height*.28,13)}function js(e){return As(e)*2+24}function Ms(e,t){let n=[],r=``;for(let i of e.split(/\s+/)){let e=r.length===0?i:`${r} ${i}`;e.length>t&&r.length>0?(n.push(r),r=i):r=e}return r.length>0&&n.push(r),n}function Ns(e,t,n){let r=n*.52;return Ms(e,Math.max(4,Math.floor(t/r)))}function Ps(e,t,n){return e.split(/\r?\n/).flatMap(e=>e?Ns(e,t,n):[``])}const Fs=`#e7f5ff`;function Is(e,t){let n=ws(e.shape);if(!n)return[];let{bounds:r}=e;return[{kind:`rect`,x:r.x,y:r.y,width:r.width,height:r.height,rx:t,fill:n}]}function Ls(e,t){let{bounds:n,ink:r}=e,i=Is(e,t);return i.push(...q(e,L(n.x,n.y,n.width,n.height,t),r)),i}function Rs(e){return e.split(` | `).map(e=>e.trim()).filter(e=>e.length>0)}function zs(e,t){return t===0?0:Math.max(0,Math.min(t-1,Math.round(e.value??0)))}function Bs(e){return(e.value??0)>=.5}function Vs(e){let{bounds:t,shape:n,ink:r}=e,i=[],a=ws(n);if(a&&i.push({kind:`rect`,x:t.x,y:t.y,width:t.width,height:t.height,rx:10,fill:a}),i.push(...q(e,L(t.x,t.y,t.width,t.height,10),r)),n.label){let o=a?Ct(a):r;i.push(J(e,t.x+t.width/2,t.y+t.height/2,n.label,o,{anchor:`middle`}))}return i}function Hs(e,t=12){let{bounds:n,shape:r,ink:i}=e,a=q(e,L(n.x,n.y,n.width,n.height,6),i);return r.label&&a.push(J(e,n.x+t,n.y+n.height/2,r.label,G)),a}function Us(e){let{bounds:t,ink:n}=e,r=Ts(t),i=t.x+12+r,a=t.y+t.height/2-r*.4,o=Hs(e,Es(t));return o.push(...q(e,jt(i,a,r),n,K)),o.push(...q(e,R(i+r*.72,a+r*.72,i+r*1.7,a+r*1.7),n,K)),o}function Ws(e){let{bounds:t,shape:n,ink:r}=e,i=t.x,a=t.y+t.height/2-22/2,o=q(e,L(i,a,22,22,4),r);if(Bs(n)){let t=`M ${i+22*.22} ${a+22*.55} L ${i+22*.45} ${a+22*.75} L ${i+22*.8} ${a+22*.25}`;o.push(...q(e,t,r,2.2))}return n.label&&o.push(J(e,i+22+10,t.y+t.height/2,n.label,r)),o}function Gs(e){let{bounds:t,shape:n,ink:r}=e,i=t.x+11,a=t.y+t.height/2,o=q(e,jt(i,a,11),r);return Bs(n)&&o.push({kind:`circle`,cx:i,cy:a,r:4.5,fill:r}),n.label&&o.push(J(e,i+11+10,a,n.label,r)),o}function Ks(e){let{bounds:t,shape:n,ink:r}=e,i=Ds(t),a=i*1.9,o=t.x,s=t.y+t.height/2-i/2,c=t.y+t.height/2,l=Bs(n),u=[];l&&u.push({kind:`rect`,x:o,y:s,width:a,height:i,rx:i/2,fill:ws(n)??`#4dabf7`}),u.push(...q(e,L(o,s,a,i,i/2),r));let d=i/2-4,f=l?o+a-i/2:o+i/2;return u.push({kind:`circle`,cx:f,cy:c,r:d,fill:B.paper}),u.push(...q(e,jt(f,c,d),r,K)),n.label&&u.push(J(e,t.x+Os(t),c,n.label,r)),u}function qs(e){let{bounds:t,shape:n,ink:r}=e,i=t.y+t.height/2,a=t.x+t.width,o=q(e,L(t.x,t.y,t.width,t.height,6),r);n.label&&o.push(J(e,t.x+12,i,n.label,r));let s=`M ${a-25} ${i-4} L ${a-18} ${i+4} L ${a-11} ${i-4}`;return o.push(...q(e,s,r,K)),o}function Js(e){let{bounds:t,shape:n,ink:r}=e,i=Bt(n.value??.5),a=t.y+t.height/2+(n.label?t.height*.12:0),o=t.x+8,s=t.x+t.width-8,c=o+i*(s-o),l=q(e,R(o,a,s,a),G,K);return l.push({kind:`line`,x1:o,y1:a,x2:c,y2:a,stroke:r,width:3}),l.push({kind:`circle`,cx:c,cy:a,r:8,fill:B.paper}),l.push(...q(e,jt(c,a,8),r,K)),n.label&&l.push(J(e,t.x,t.y+2,n.label,G,{size:n.fontSize*.7,baseline:`hanging`})),l}function Ys(e){let{bounds:t,ink:n}=e,r=t.x+t.width/2,i=t.y+t.height/2,a=Math.min(t.width,t.height)/2-2,o=q(e,jt(r,i,a),n);o.push(...q(e,jt(r,i-a*.3,a*.32),n,K));let s=`M ${r-a*.55} ${i+a*.72} A ${a*.55} ${a*.55} 0 0 1 ${r+a*.55} ${i+a*.72}`;return o.push(...q(e,s,n,K)),o}function Xs(e){let{bounds:t,shape:n,ink:r}=e;return n.label?[J(e,t.x,t.y+t.height/2,n.label,r,{size:n.fontSize*1.6})]:[]}function Zs(e,t,n,r){let i=(e+t)/2;return`M ${e} ${n} Q ${i} ${n-r} ${t} ${n} Q ${i} ${n+r} ${e} ${n} Z`}function Qs(e,t,n,r){return{kind:`path`,d:Zs(e,t,n,r),fill:G,stroke:`none`}}function $s(e){let{bounds:t,shape:n,ink:r}=e;if(n.label){let i=n.fontSize*.9,a=i*1.4,o=Ns(n.label,t.width,i),s=Math.max(1,Math.floor(t.height/a));return o.slice(0,s).map((n,o)=>J(e,t.x,t.y+a*(o+.6),n,r,{size:i}))}let i=n.fontSize*1.4,a=Math.max(2,Math.floor(t.height/i)),o=[];for(let e=0;e<a;e+=1){let n=t.y+i*(e+.7),r=e===a-1?.6:1;o.push(Qs(t.x,t.x+t.width*r,n,3))}return o}function ec(e,t,n){let r=n*.45,i=[];for(let a=0;a<10;a+=1){let o=a%2==0?n:r,s=-Math.PI/2+a*Math.PI/5,c=e+Math.cos(s)*o,l=t+Math.sin(s)*o;i.push(`${a===0?`M`:`L`} ${c} ${l}`)}return`${i.join(` `)} Z`}function tc(e){let{bounds:t}=e,n=t.y+t.height/2;return q(e,R(t.x,n,t.x+t.width,n),G,K)}function nc(e){let{bounds:t,shape:n}=e;if(!n.label)return[];let r=t.x+t.width/2,i=t.y+t.height/2,a=Math.min(t.width,n.label.length*n.fontSize*.55),o=i+n.fontSize*.6;return[J(e,r,i,n.label,Tt,{anchor:`middle`}),...q(e,R(r-a/2,o,r+a/2,o),Tt,K)]}function rc(e){let{bounds:t,shape:n,ink:r}=e,i=q(e,L(t.x,t.y,t.width,t.height,6),r),a=n.fontSize*.9,o=a*1.4;if(n.label){let s=Ns(n.label,t.width-24,a),c=Math.max(1,Math.floor((t.height-12)/o));s.slice(0,c).forEach((n,s)=>{i.push(J(e,t.x+12,t.y+12+o*(s+.5),n,r,{size:a}))})}else i.push(J(e,t.x+12,t.y+12+o*.5,`Type here…`,G,{size:a}));let s=t.x+t.width-6,c=t.y+t.height-6;return i.push(...q(e,R(s-6,c,s,c-6),G,K)),i.push(...q(e,R(s-11,c,s,c-11),G,K)),i}function ic(e){let{bounds:t,shape:n,ink:r}=e,i=t.y+t.height/2,a=ks(t),o=t.x+a,s=t.x+t.width-a,c=q(e,L(t.x,t.y,t.width,t.height,6),r);c.push(...q(e,R(o,t.y,o,t.y+t.height),r,K)),c.push(...q(e,R(s,t.y,s,t.y+t.height),r,K));let l=t.x+a/2,u=t.x+t.width-a/2,d=Math.min(n.fontSize*.42,a*.4,t.height*.3);return c.push(...q(e,R(l-d,i,l+d,i),r,2.2)),c.push(...q(e,R(u-d,i,u+d,i),r,2.2)),c.push(...q(e,R(u,i-d,u,i+d),r,2.2)),n.label&&c.push(J(e,(o+s)/2,i,n.label,r,{anchor:`middle`})),c}function ac(e){let{bounds:t,shape:n,ink:r}=e,i=t.height/2,a=ws(n),o=[];return a&&o.push({kind:`rect`,x:t.x,y:t.y,width:t.width,height:t.height,rx:i,fill:a}),o.push(...q(e,L(t.x,t.y,t.width,t.height,i),r)),n.label&&o.push(J(e,t.x+t.width/2,t.y+t.height/2,n.label,r,{anchor:`middle`,size:n.fontSize*.85})),o}function oc(e){let{bounds:t,shape:n}=e,r=t.x+t.width/2,i=t.y+t.height/2,a=Math.min(t.width,t.height)/2,o=ws(n)??`#ffd43b`,s=bs(r,i,a,n,e.nextSalt()).map(e=>({kind:`path`,d:e,fill:o,stroke:`none`}));return n.label&&s.push(J(e,r,i,n.label,Ct(o),{anchor:`middle`,size:a*.95})),s}function sc(e){let{bounds:t,shape:n,ink:r}=e,i=Bt(n.value??.6),a=Math.min(t.height,14),o=t.y+t.height/2-a/2,s=a/2,c=[],l=Math.max(a,t.width*i);return c.push({kind:`rect`,x:t.x,y:o,width:l,height:a,rx:s,fill:ws(n)??r}),c.push(...q(e,L(t.x,o,t.width,a,s),r,K)),c}function cc(e){let{bounds:t,shape:n,ink:r}=e,i=Math.max(0,Math.min(5,Math.round(n.value??3))),a=t.y+t.height/2,o=t.width/5,s=Math.min(o,t.height)*.42,c=[];for(let l=0;l<5;l+=1){let u=t.x+o*(l+.5);l<i&&c.push({kind:`path`,d:ec(u,a,s),fill:ws(n)??r}),c.push(...q(e,ec(u,a,s),r,K))}return c}function lc(e){let{bounds:t,shape:n,ink:r}=e,i=Bt(n.value??.3),a=t.width/2,o=q(e,L(t.x,t.y,t.width,t.height,a),G,K),s=Math.max(t.width*1.5,t.height*.32),c=t.y+i*(t.height-s);return o.push({kind:`rect`,x:t.x,y:c,width:t.width,height:s,rx:a,fill:ws(n)??r}),o.push(...q(e,L(t.x,c,t.width,s,a),r,K)),o}const uc={button:Vs,input:Hs,search:Us,checkbox:Ws,radio:Gs,toggle:Ks,dropdown:qs,slider:Js,avatar:Ys,heading:Xs,paragraph:$s,divider:tc,link:nc,textarea:rc,stepper:ic,badge:ac,progress:sc,rating:cc,scrollbar:lc,stepbadge:oc};function dc(e){let{bounds:t,shape:n,ink:r}=e,i=t.x+t.width,a=t.y+t.height,o=q(e,L(t.x,t.y,t.width,t.height,4),r);return o.push(...q(e,R(t.x,t.y,i,a),r,K)),o.push(...q(e,R(i,t.y,t.x,a),r,K)),n.label&&o.push(J(e,t.x+t.width/2,t.y+t.height/2+Math.min(t.height*.25,n.fontSize*1.4),n.label,G,{size:n.fontSize*.8,anchor:`middle`})),o}const fc=1.3;function pc(e,t){return Math.min(e.height*.5,Math.max(0,e.height-t*4))}function mc(e){let t=Ji(e),n=e.fontSize,r=e.fontSize*.85,i=t.x+12,a=t.width-24,o=t.y+pc(t,e.fontSize)+8,s=t.y+t.height-6,c=n*fc,l=Math.max(1,e.label.trim()?Ps(e.label.trim(),a,n).length:1),u=Math.min(l*c,s-o),d=Math.min(o+u+4,s);return{title:{field:`label`,x:i,y:o,width:a,height:u,fontSize:n},body:{field:`body`,x:i,y:d,width:a,height:Math.max(r,s-d),fontSize:r}}}function hc(e,t,n,r){let i=n.trim();if(!i)return[];let a=t.fontSize*fc,o=Math.max(1,Math.floor(t.height/a));return Ps(i,t.width,t.fontSize).slice(0,o).map((n,i)=>J(e,t.x,t.y+a*i+2,n,r,{size:t.fontSize,baseline:`hanging`,testId:t.field===`body`?`card-body`:`card-title`}))}function gc(e){let{bounds:t,shape:n,ink:r}=e,i=t.x+t.width,a=t.y+pc(t,n.fontSize),o=Ls(e,10);o.push(...q(e,R(t.x,a,i,a),r,K)),o.push(...q(e,R(t.x,t.y,i,a),G,K)),o.push(...q(e,R(i,t.y,t.x,a),G,K));let s=mc(n);return o.push(...hc(e,s.title,n.label,r)),o.push(...hc(e,s.body,n.body??``,G)),o}function _c(e){let{bounds:t,shape:n,ink:r}=e,i=Rs(n.label),a=Ls(e,6);if(i.length===0)return a;let o=t.height/i.length;return i.forEach((n,s)=>{let c=t.y+o*s,l=c+o/2,u=t.x+12;a.push({kind:`circle`,cx:u,cy:l,r:2.4,fill:G}),a.push(J(e,u+12,l,n,r)),s<i.length-1&&a.push(...q(e,R(t.x,c+o,t.x+t.width,c+o),G,1))}),a}const vc={info:{label:`Info`,tint:`#e7f5ff`,ink:`#1971c2`},success:{label:`Success`,tint:`#ebfbee`,ink:`#2f9e44`},warning:{label:`Warning`,tint:`#fff9db`,ink:`#f08c00`},error:{label:`Error`,tint:`#fff5f5`,ink:`#e03131`}},yc=Ca.map(e=>({key:e,...vc[e]}));function bc(e){let t=Math.max(0,Math.min(yc.length-1,Math.round(e.value??0)));return yc[t]}function xc(e,t,n,r,i,a){let o=[];return t===`warning`?o.push(...q(e,`M ${n} ${r-i} L ${n+i} ${r+i*.85} L ${n-i} ${r+i*.85} Z`,a,K)):o.push(...q(e,jt(n,r,i),a,K)),t===`success`?(o.push(...q(e,`M ${n-i*.45} ${r} L ${n-i*.1} ${r+i*.4} L ${n+i*.5} ${r-i*.4}`,a,2)),o):t===`info`?(o.push({kind:`circle`,cx:n,cy:r-i*.45,r:1.5,fill:a}),o.push(...q(e,R(n,r-i*.1,n,r+i*.5),a,2)),o):t===`warning`?(o.push(...q(e,R(n,r-i*.08,n,r+i*.28),a,2)),o.push({kind:`circle`,cx:n,cy:r+i*.5,r:1.4,fill:a}),o):(o.push(...q(e,R(n,r-i*.42,n,r+i*.12),a,2)),o.push({kind:`circle`,cx:n,cy:r+i*.42,r:1.4,fill:a}),o)}function Sc(e){let{bounds:t,shape:n}=e,r=bc(n),i=t.y+t.height/2,a=[{kind:`rect`,x:t.x,y:t.y,width:t.width,height:t.height,rx:8,fill:r.tint}];a.push(...q(e,L(t.x,t.y,t.width,t.height,8),r.ink));let o=As(t),s=t.x+o+12;if(a.push(...xc(e,r.key,s,i,o,r.ink)),n.label){let o=t.x+js(t);a.push(J(e,o,i,n.label,r.ink,{size:n.fontSize*.92}))}return a}function Cc(e){let{bounds:t,shape:n,ink:r}=e,i=Rs(n.label),a=Ls(e,8);if(i.length===0)return a;let o=t.height/i.length,s=zs(n,i.length);return i.forEach((n,i)=>{let c=t.y+o*i,l=c+o/2;i===s&&a.push({kind:`rect`,x:t.x+4,y:c+3,width:t.width-8,height:o-6,rx:5,fill:Fs}),a.push(J(e,t.x+12,l,n,r))}),a}function wc(e){let{bounds:t,shape:n,ink:r}=e,i=t.height-8,a=t.x+t.width/2,o=[],s=ws(n),c=t.x,l=t.x+t.width,u=t.y,d=t.y+i,f=Math.min(6,i/2,t.width/2),p=`M ${c+f} ${u} H ${l-f} Q ${l} ${u} ${l} ${u+f} V ${d-f} Q ${l} ${d} ${l-f} ${d} H ${a+8} L ${a} ${d+8} L ${a-8} ${d} H ${c+f} Q ${c} ${d} ${c} ${d-f} V ${u+f} Q ${c} ${u} ${c+f} ${u} Z`;if(s&&(o.push({kind:`rect`,x:c,y:u,width:t.width,height:i,rx:f,fill:s}),o.push({kind:`path`,d:`M ${a-8} ${d} L ${a} ${d+8} L ${a+8} ${d} Z`,fill:s,stroke:`none`})),o.push(...q(e,p,r)),n.label){let c=s?Ct(s):r;o.push(J(e,a,t.y+i/2,n.label,c,{anchor:`middle`,size:n.fontSize*.9}))}return o}function Tc(e){let{bounds:t,shape:n,ink:r}=e,i=Rs(n.label),a=Ls(e,8);if(i.length===0)return a;let o=zs(n,i.length),s=Math.min(38,t.height/i.length),c=Math.max(0,t.height-s*i.length),l=t.x+t.width,u=t.y;return i.forEach((d,f)=>{let p=u+s/2,m=l-20,h=f===o,g=h?`M ${m-5} ${p-3} L ${m} ${p+3} L ${m+5} ${p-3}`:`M ${m-3} ${p-5} L ${m+3} ${p} L ${m-3} ${p+5}`;if(a.push(J(e,t.x+12,p,d,r)),a.push(...q(e,g,G,K)),u+=s,h&&c>0){let r=Math.max(1,Math.floor(c/(n.fontSize*1.4)));for(let i=0;i<r;i+=1){let o=u+n.fontSize*1.4*(i+.6);if(o>u+c)break;let s=i===r-1?.6:.92;a.push(...q(e,R(t.x+12,o,t.x+t.width*s,o),G,1))}u+=c}f<i.length-1&&a.push(...q(e,R(t.x,u,l,u),G,1))}),a}function Ec(e){return Math.min(46,e.height*.24)}function Dc(e){return Math.min(56,e.height*.28)}function Oc(e){let t=e.x+e.width,n=e.y+e.height,r=Dc(e),i=n-r,a=Math.min(34,r-14),o=i+(r-a)/2,s=Math.min(88,(e.width-24-10)/2);if(s<=24)return null;let c=t-12-s;return{secondary:{x:c-10-s,y:o,width:s,height:a},primary:{x:c,y:o,width:s,height:a}}}function kc(e){return e.primaryLabel??`OK`}function Ac(e){return e.secondaryLabel??`Cancel`}function jc(e){let{bounds:t,shape:n,ink:r}=e,i=t.x+t.width,a=t.y+t.height,o=Ec(t),s=a-Dc(t),c=Ls(e,12);n.label&&c.push(J(e,t.x+12,t.y+o/2,n.label,r,{testId:`card-title`}));let l=i-12-4,u=t.y+o/2;c.push(...q(e,R(l-5,u-5,l+5,u+5),G,K)),c.push(...q(e,R(l+5,u-5,l-5,u+5),G,K)),c.push(...q(e,R(t.x,t.y+o,i,t.y+o),G,1));let d=n.body??``;if(d){let i=n.fontSize*.92,a=i*1.4,l=t.y+o+10,u=Ps(d,t.width-24,i),f=Math.max(1,Math.floor((s-l)/a));u.slice(0,f).forEach((n,o)=>c.push(J(e,t.x+12,l+a*(o+.5),n,r,{size:i,testId:`card-body`})))}c.push(...q(e,R(t.x,s,i,s),G,1));let f=Oc(t);if(f){let{secondary:t,primary:i}=f,a=n.fontSize*.82,o=_i(r)??Ct(r);c.push({kind:`rect`,x:i.x,y:i.y,width:i.width,height:i.height,rx:8,fill:r}),c.push(...q(e,L(i.x,i.y,i.width,i.height,8),r)),c.push(...q(e,L(t.x,t.y,t.width,t.height,8),r));let s=kc(n),l=Ac(n);s&&c.push(J(e,i.x+i.width/2,i.y+i.height/2,s,o,{anchor:`middle`,size:a,testId:`modal-primary`})),l&&c.push(J(e,t.x+t.width/2,t.y+t.height/2,l,r,{anchor:`middle`,size:a,testId:`modal-secondary`}))}return c}const Mc={image:dc,card:gc,list:_c,alert:Sc,menu:Cc,tooltip:wc,accordion:Tc,modal:jc},Nc=1.9,Pc=1.4,Fc=/^-{2,}$/;function Ic(e){return(e??``).split(/\r?\n/).map(e=>e.trim()).filter(e=>e.length>0)}function Lc(e){return Ic(e.body).map(e=>({text:e,divider:Fc.test(e)}))}function Rc(e){return Lc(e).filter(e=>!e.divider).map(e=>e.text)}function zc(e){let t=e.fontSize*.9;return{fontSize:t,lineH:t*Pc}}function Bc(e){let t=Ji(e),n=Rc(e).length===0?t.height:Math.min(t.height,e.fontSize*Nc),r=t.x+12,i=t.width-24,{fontSize:a}=zc(e),o=t.y+n+4,s=t.y+t.height-4;return{title:{field:`label`,x:t.x,y:t.y,width:t.width,height:n,fontSize:e.fontSize},body:{field:`body`,x:r,y:o,width:i,height:Math.max(a,s-o),fontSize:a}}}function Vc(e,t,n){let r=n*.9,i=r*Pc,a=n*Nc,o=Math.round(a+4+t.length*i+8),s=(e,t)=>e.length*t*.62,c=Math.max(s(e,n),0,...t.filter(e=>!Fc.test(e)).map(e=>s(e,r)));return{width:Math.max(160,Math.round(c+24+16)),height:o}}function Hc(e){let t=Bc(e),{lineH:n}=zc(e),r=Ji(e).y+e.height;return Lc(e).map((e,r)=>({text:e.text,cy:t.body.y+n*(r+.5),divider:e.divider})).filter(e=>e.cy<=r)}function Uc(e){let{bounds:t,shape:n,ink:r}=e,i=Bc(n),a=t.y+i.title.height,o=Rc(n).length>0,s=ws(n),c=[];s&&c.push({kind:`path`,d:o?At(t.x,t.y,t.width,i.title.height,6):L(t.x,t.y,t.width,t.height,6),fill:s,testId:`entity-header`}),c.push(...q(e,L(t.x,t.y,t.width,t.height,6),r)),o&&c.push(...q(e,R(t.x,a,t.x+t.width,a),r,K));let l=n.label.trim();l&&c.push(J(e,t.x+t.width/2,t.y+i.title.height/2,l,s?Ct(s):r,{anchor:`middle`,testId:`entity-title`}));for(let{text:a,cy:o,divider:s}of Hc(n)){if(s){c.push(...q(e,R(t.x,o,t.x+t.width,o),r,K,`entity-divider`));continue}c.push(J(e,i.body.x,o,a,r,{size:i.body.fontSize,testId:`entity-row`}))}return c}function Wc(e){return Math.min(e.height,Gc(e.fontSize))}function Gc(e){return e*2.4}function Kc(e){if(!e.activations||e.activations.length===0)return[];let t=Wc(e),n=e.height;return e.activations.map(r=>{let i=Math.min(Math.max(r.top,t),Math.max(t,n-12)),a=Math.max(12,Math.min(r.height,n-i));return{x:e.x+e.width/2-12/2,y:e.y+i,width:12,height:a}})}function qc(e,t){for(let n of Kc(e))if(t>=n.y&&t<=n.y+n.height)return n;return null}function Jc(e){let t=Wc(e);return{x:e.x+e.width/2,y:e.y+t,width:0,height:Math.max(2,e.height-t)}}const Yc=1.5;function Xc(e){let t=ws(e);return t?Ct(t):null}function Zc(e){let{bounds:t,shape:n,ink:r}=e,i=Wc(n),a=t.x+t.width/2,o=ws(n)??B.paper,s=Ss(e,{x:t.x,y:t.y,width:t.width,height:i},6,o);n.label.trim()&&s.push(J(e,a,t.y+i/2,n.label.trim(),Xc(n)??r,{anchor:`middle`,testId:`lifeline-name`}));let c=t.y+t.height;for(let e=t.y+i;e<c;e+=12)s.push({kind:`line`,x1:a,y1:e,x2:a,y2:Math.min(e+7,c),stroke:r,width:Yc});for(let t of Kc(n))s.push(...Ss(e,t,2,o));return s}function Qc(e){return Math.min(Ji(e).height,e.fontSize*1.75)}function $c(e,t){let n=Ji(e),r=e.label.trim()||`opt`,i=Math.min(n.width,t.measure(r,e.fontSize,e.fontFamily)+24);return{x:n.x,y:n.y,width:i,height:Qc(e)}}function el(e){let t=Math.min(8,e.width/2,e.height/2);return{tl:Math.min(14,e.width-t,e.height-t),br:t}}function tl(e){let{x:t,y:n,width:r,height:i}=e,{tl:a,br:o}=el(e);return[`M ${t+a} ${n}`,`L ${t+r} ${n}`,`L ${t+r} ${n+i-o}`,`Q ${t+r} ${n+i} ${t+r-o} ${n+i}`,`L ${t} ${n+i}`,`L ${t} ${n+a}`,`Q ${t} ${n} ${t+a} ${n}`,`Z`].join(` `)}function nl(e){let{x:t,y:n,width:r,height:i}=e,{br:a}=el(e);return`M ${t+r} ${n} L ${t+r} ${n+i-a} Q ${t+r} ${n+i} ${t+r-a} ${n+i} L ${t} ${n+i}`}function rl(e){let{bounds:t,shape:n,ink:r}=e,i=ws(n)??`#f3f0ff`,a=$c(n,e.text),o=[{kind:`path`,d:tl(a),fill:i,testId:`fragment-tab`}];o.push(...q(e,L(t.x,t.y,t.width,t.height,14),r)),o.push(...q(e,nl(a),r,K,`fragment-tab`));let s=n.label.trim();return s&&o.push(J(e,a.x+12,a.y+a.height/2+n.fontSize*.1,s,Ct(i),{anchor:`start`,testId:`fragment-label`})),o}const il={entity:Uc,lifeline:Zc,fragment:rl};function al(e){let{bounds:t,shape:n,ink:r}=e,i=t.y+t.height/2,a=q(e,L(t.x,t.y,t.width,t.height,8),r),o=Rs(n.label),s=zs(n,o.length);return o.forEach((n,c)=>{let l=t.x+t.width*(c+.5)/o.length;a.push(J(e,l,i,n,c===s?r:G,{anchor:`middle`}))}),a}function ol(e){let{bounds:t,shape:n,ink:r}=e,i=t.y+t.height/2,a=t.y+t.height-1,o=[{kind:`line`,x1:t.x,y1:a,x2:t.x+t.width,y2:a,stroke:G,width:1}],s=Rs(n.label);if(s.length>0){let c=zs(n,s.length),l=n.fontSize*.55,u=t.x;s.forEach((t,n)=>{let s=t.length*l+28;n===c&&o.push(...q(e,R(u+4,a,u+s-4,a),r,2.5)),o.push(J(e,u+s/2,i,t,n===c?r:G,{anchor:`middle`})),u+=s})}return o}function sl(e){let{bounds:t,shape:n,ink:r}=e,i=t.y+t.height/2,a=Rs(n.label),o=n.fontSize*.4,s=[],c=t.x;return a.forEach((t,n)=>{let l=n===a.length-1;s.push(J(e,c,i,t,l?r:G,{anchor:`start`})),c+=Cs(e,t),l||(c+=o,s.push(J(e,c,i,`/`,G,{anchor:`start`})),c+=Cs(e,`/`)+o)}),s}function cl(e){let{bounds:t,shape:n,ink:r}=e,i=t.y+t.height/2,a=Rs(n.label),o=t.height*.5,s=[],c=t.x+o*.5;s.push(...q(e,`M ${c+3} ${i-5} L ${c-3} ${i} L ${c+3} ${i+5}`,G,K));let l=t.x+t.width-o*.5;if(s.push(...q(e,`M ${l-3} ${i-5} L ${l+3} ${i} L ${l-3} ${i+5}`,G,K)),a.length>0){let c={x:t.x+o,width:t.width-o*2},l=c.width/a.length,u=zs(n,a.length),d=Math.min(t.height,l)*.82;a.forEach((t,a)=>{let o=c.x+l*(a+.5);a===u&&s.push(...q(e,L(o-d/2,i-d/2,d,d,5),r,K)),s.push(J(e,o,i,t,a===u?r:G,{anchor:`middle`,size:n.fontSize*.85}))})}return s}function ll(e){let{bounds:t,shape:n,ink:r}=e,i=t.x+t.width,a=Math.min(34,t.height*.2),o=q(e,L(t.x,t.y,t.width,t.height,8),r),s=t.y+a/2;o.push(...q(e,`M ${t.x+18} ${s-4} L ${t.x+12} ${s} L ${t.x+18} ${s+4}`,G,K)),o.push(...q(e,`M ${i-18} ${s-4} L ${i-12} ${s} L ${i-18} ${s+4}`,G,K)),o.push(J(e,t.x+t.width/2,s,n.label||`Month`,G,{anchor:`middle`,size:n.fontSize*.85})),o.push(...q(e,R(t.x,t.y+a,i,t.y+a),G,1));let c=t.y+a+8,l=t.y+t.height-c-8,u=t.width/7,d=l/5,f=Math.min(u,d)*.16,p=Math.round((n.value??.4)*34);for(let e=0;e<5;e+=1)for(let i=0;i<7;i+=1){let a=t.x+u*(i+.5),s=c+d*(e+.5);e*7+i===p?o.push({kind:`circle`,cx:a,cy:s,r:f*1.8,fill:ws(n)??r}):o.push({kind:`circle`,cx:a,cy:s,r:f,fill:G})}return o}function ul(e){let{bounds:t,shape:n,ink:r}=e,i=Rs(n.label),a=Ls(e,8);if(i.length===0)return a;let o=t.y+12,s=Math.min(40,(t.height-24)/i.length),c=zs(n,i.length);return i.forEach((i,l)=>{let u=o+s*l,d=u+s/2;l===c&&a.push({kind:`rect`,x:t.x+6,y:u+3,width:t.width-12,height:s-6,rx:6,fill:Fs});let f=t.x+12+2;a.push({kind:`circle`,cx:f,cy:d,r:3,fill:l===c?r:G}),a.push(J(e,f+14,d,i,l===c?r:G,{size:n.fontSize*.9}))}),a}function dl(e){let{bounds:t,shape:n,ink:r}=e,i=Rs(n.label),a=Math.max(i.length,1),o=t.width/a,s=Math.min(8,t.height/2),c=t.y+t.height/2,l=zs(n,i.length),u=ws(n)??`#4dabf7`,d=[];i.length>0&&d.push({kind:`rect`,x:t.x+l*o,y:t.y,width:o,height:t.height,rx:l===0||l===a-1?s:0,fill:u}),d.push(...q(e,L(t.x,t.y,t.width,t.height,s),r));for(let n=1;n<a;n+=1){let i=t.x+n*o;d.push(...q(e,R(i,t.y,i,t.y+t.height),r,K))}return i.forEach((n,r)=>{let i=t.x+(r+.5)*o,a=r===l?Ct(u):G;d.push(J(e,i,c,n,a,{anchor:`middle`}))}),d}function fl(e){let{bounds:t,shape:n,ink:r}=e,i=Rs(n.label),a=Math.max(i.length,1),o=t.width/a,s=zs(n,i.length),c=q(e,R(t.x,t.y,t.x+t.width,t.y),G,K),l=Math.min(8,t.height*.18),u=t.y+t.height*.4;return i.forEach((i,a)=>{let d=t.x+(a+.5)*o,f=a===s?r:G;c.push(...q(e,jt(d,u,l),f,K)),c.push(J(e,d,t.y+t.height*.8,i,f,{anchor:`middle`,size:n.fontSize*.78}))}),c}function pl(e){let{bounds:t,shape:n,ink:r}=e,i=t.y+t.height/2,a=n.label&&n.label.length>0?n.label:`9:41`,o=[J(e,t.x+8,i,a,r,{size:n.fontSize*.85})],s=t.x+t.width-8,c=Math.min(11,t.height*.5),l=c*2,u=s-l-2,d=i-c/2;o.push(...q(e,L(u,d,l,c,2),r,K)),o.push({kind:`rect`,x:u+l+1.5,y:i-c*.2,width:2,height:c*.4,fill:r}),o.push({kind:`rect`,x:u+1.5,y:d+1.5,width:(l-3)*.6,height:c-3,fill:r});let f=i+5,p=u-30;for(let e=0;e<4;e+=1){let t=3+e*2.2;o.push({kind:`rect`,x:p,y:f-t,width:3,height:t,fill:r}),p+=5}return o}function ml(e){let{bounds:t,shape:n,ink:r}=e,i=t.x+t.width/2,a=t.y+t.height/2,o=Math.min(t.width,t.height)/2-2,s=ws(n),c=[];s&&c.push({kind:`circle`,cx:i,cy:a,r:o,fill:s}),c.push(...q(e,jt(i,a,o),r));let l=o*.42,u=s?Ct(s):r;return c.push(...q(e,R(i-l,a,i+l,a),u,2.5)),c.push(...q(e,R(i,a-l,i,a+l),u,2.5)),c}const hl={navbar:al,tabs:ol,breadcrumbs:sl,pagination:cl,datepicker:ll,sidebar:ul,segmented:dl,tabbar:fl,statusbar:pl,fab:ml};({...uc,...hl,...Mc,...il});const gl={button:`Button`,input:`Type here…`,search:`Search…`,dropdown:`Select…`,heading:`Heading`,navbar:`Home | About | Contact`,tabs:`First | Second`,checkbox:`Checkbox`,radio:`Option`,toggle:`Toggle`,link:`Link text`,badge:`New`,breadcrumbs:`Home | Library | Item`,pagination:`1 | 2 | 3 | 4`,card:`Card title`,list:`Item one | Item two | Item three`,alert:`Heads up. Something needs attention.`,menu:`New | Open | Save | Close`,tooltip:`Tooltip text`,accordion:`Section one | Section two | Section three`,sidebar:`Dashboard | Projects | Team | Settings`,segmented:`Day | Week | Month`,tabbar:`Home | Search | Profile`,statusbar:`9:41`,modal:`Dialog title`,stepbadge:`1`,entity:`User`,lifeline:`Participant`,fragment:`opt`},_l=[`crowOne`,`crowMany`,`crowOneOrMany`,`crowOnlyOne`,`crowZeroOrOne`,`crowZeroOrMany`],vl=[],yl={get(e){for(let t=vl.length-1;t>=0;--t)if(vl[t].shapes===e)return vl[t].index},has(e){return yl.get(e)!==void 0},set(e,t){vl.push({shapes:e,index:t}),vl.length>8&&vl.shift()}};function bl(e){if(e.type===`arrow`){let t=[];return e.startBinding&&t.push(e.startBinding.shapeId),e.endBinding&&t.push(e.endBinding.shapeId),t}return e.type===`polygon`&&e.band?[e.band.from,e.band.to]:[]}function xl(e){let t=new Map,n=new Map,r=new Map;for(let i=0;i<e.length;i+=1){let a=e[i];t.has(a.id)||t.set(a.id,i);let o=r.get(a.type);o?o.push(i):r.set(a.type,[i]);for(let e of bl(a)){let t=n.get(e);t?t.push(a.id):n.set(e,[a.id])}}return{position:t,dependents:n,byType:r}}function Sl(e){let t=yl.get(e);if(t)return t;let n=xl(e);return yl.set(e,n),n}function Cl(e,t,n){if(e===t||yl.has(t))return;let r=yl.get(e);if(!(!r||e.length!==t.length)){for(let r of n){let n=e[r],i=t[r];if(n!==i&&!wl(n,i))return}yl.set(t,r)}}function wl(e,t){return e.id===t.id&&e.type===t.type&&Tl(e,t)}function Tl(e,t){let n=bl(t);if(n.length===0)return!0;let r=bl(e);return n.every(e=>r.includes(e))}function El(e){return`kind`in e&&e.kind===`path`}function Dl(e){return e.type===`line`?e.points:e.type===`arrow`?[{x:e.x,y:e.y},{x:e.x2,y:e.y2}]:null}function Ol(e,t){let n=Dl(e)??[Jt(Ji(e))],r=Math.max(0,Math.min(t.seg,n.length-2)),i=n[r],a=n[r+1]??i,o=Bt(t.t);return{x:i.x+(a.x-i.x)*o,y:i.y+(a.y-i.y)*o}}function kl(e,t){return t?El(e)?cn(t):sn(t):!1}function Al(e,t){let n=Math.abs(t.x-e.x),r=Math.abs(t.x-(e.x+e.width)),i=Math.abs(t.y-e.y),a=Math.abs(t.y-(e.y+e.height)),o=Math.min(n,r,i,a);return o===n?{x:-1,y:0}:o===r?{x:1,y:0}:o===i?{x:0,y:-1}:{x:0,y:1}}function jl(e,t){return e.type===`control`&&e.kind===`lifeline`?Jc(e):Zi(e,t)}function Ml(e,t){return Jt(Ji(e,t))}function Nl(e){return vt[e.type].geometry===`text`?14:6}const Pl=new Set(_l);function Fl(e,t,n){let r=n===`start`?t.startArrow:t.endArrow,i=n===`start`?t.startHead:t.endHead;return r&&i&&Pl.has(i)?0:Nl(e)}function Il(e){if(e.type!==`rectangle`)return null;let t=e.kind;return t!==`diamond`&&t!==`ellipse`&&t!==`double-circle`?null:t}function Ll(e,t){return e===`diamond`?1-t:Math.sqrt(Math.max(0,1-t*t))}function Rl(e,t,n){let r=Il(e);if(r===null)return n;let i=Al(t,n),a=t.x+t.width/2,o=t.y+t.height/2,s=i.x!==0,c=s?t.width/2:t.height/2,l=s?t.height/2:t.width/2,u=s?n.y-o:n.x-a,d=Ll(r,l===0?0:Math.min(1,Math.abs(u)/l)),f=s?i.x:i.y;return s?{x:a+f*c*d,y:n.y}:{x:n.x,y:o+f*c*d}}const zl=.002;function Bl(e,t,n=0,r){let i=jl(e,r),a=Ul(i,t);if(t.x>zl&&t.x<1-zl&&t.y>zl&&t.y<1-zl)return Hl(e,a,r);let o=Rl(e,i,a),s=vt[e.type].geometry===`text`?Math.max(n,14):n;if(s<=0)return Hl(e,o,r);let c=Al(i,a);return Hl(e,{x:o.x+c.x*s,y:o.y+c.y*s},r)}function Vl(e,t,n){let r=Yi(e)*Math.PI/180;return r?an(t,Jt(Ji(e,n)),-r):t}function Hl(e,t,n){let r=Yi(e)*Math.PI/180;return r?an(t,Jt(Ji(e,n)),r):t}function Ul(e,t){return{x:e.x+t.x*e.width,y:e.y+t.y*e.height}}function Wl(e,t){return{x:e.width===0?.5:(t.x-e.x)/e.width,y:e.height===0?.5:(t.y-e.y)/e.height}}const Gl={n:{x:.5,y:0},s:{x:.5,y:1},e:{x:1,y:.5},w:{x:0,y:.5},ne:{x:1,y:0},nw:{x:0,y:0},se:{x:1,y:1},sw:{x:0,y:1}};function Kl(e){return e.port?Gl[e.port]:e.anchor}function ql(e,t=6){return Yt(e,t)}function Jl(e){return e.type===`control`&&e.kind===`lifeline`}function Yl(e,t,n,r){let i=jl(e),a=i.x+i.width/2,o=i.y+Bt(t)*i.height,s=e.type===`control`?qc(e,o):null,c=n.x<=a;return{x:(s?c?s.x:s.x+s.width:a)+(c?-r:r),y:o}}function Xl(e,t,n){if(El(t))return Ol(e,t);if(Jl(e)&&t.precise){let n=jl(e);return{x:n.x+n.width/2,y:n.y+Bt(t.anchor.y)*n.height}}return t.precise?Bl(e,Kl(t),Nl(e),n):Ml(e,n)}function Zl(e,t,n,r=Nl(e),i){return El(t)?Ol(e,t):Jl(e)&&t.precise?Yl(e,t.anchor.y,n,r):t.precise?Bl(e,Kl(t),r,i):Hl(e,Xt(ql(jl(e,i),r),Ml(e,i),Vl(e,n,i)),i)}function Ql(e,t,n,r,i){let a=ql(jl(e,i),r),o=n?1/64:-1/64,s=+!n;for(let n=1;n<=64;n+=1){let n=s+o;if(!Qt(Vl(e,t.pointAt(n),i),a)){let r=s,o=n;for(let n=0;n<16;n+=1){let n=(r+o)/2;Qt(Vl(e,t.pointAt(n),i),a)?r=n:o=n}return r}if(s=n,n<=0||n>=1)break}return+!n}function $l(e,t){let n=jl(e,t),r=Yi(e)*Math.PI/180;return r?Qi(n,Jt(Ji(e,t)),r):n}function eu(e,t,n){return e.type===`icon`?Wl(Ji(e,n),Ul(jl(e,n),t)):t}function tu(e,t){let n=e.x-.5,r=e.y-.5;if(t){let e=t*Math.PI/180,i=Math.cos(e),a=Math.sin(e),o=n*i-r*a,s=n*a+r*i;n=o,r=s}return Math.abs(n)<1e-6&&Math.abs(r)<1e-6?null:Math.abs(n)>Math.abs(r)-1e-4?n<0?`left`:`right`:r<0?`top`:`bottom`}function nu(e,t){if(Yi(e)!==0)return;let n=Il(e);if(n===null)return;let r=Ji(e),i=r.x+r.width/2,a=r.y+r.height/2,o=r.width/2,s=r.height/2,c=t===`left`||t===`right`,l=t===`right`||t===`bottom`?1:-1;return e=>{let t=c?i:a,r=c?o:s,u=c?a:i,d=c?s:o,f=d===0?0:Math.min(1,Math.abs(e-u)/d),p=Ll(n,f);return t+l*r*p}}function ru(e,t,n,r=Nl(e),i){if(El(t))return Ir(Ol(e,t),n);let a=t.precise?tu(eu(e,t.anchor,i),Yi(e)):null;return{bounds:$l(e,i),target:t.precise?Bl(e,t.anchor,0,i):Ml(e,i),gap:r,minEnd:n*Mn,side:a,outline:a?nu(e,a):void 0,isPoint:!1}}function iu(e,t){return{...e,elbowPoints:t,elbowRoute:t,elbowMidHandle:void 0,x:t[0].x,y:t[0].y,x2:t[t.length-1].x,y2:t[t.length-1].y}}const au=new Set([`ellipse`,`circle`,`double-circle`]);function ou(e,t){let n=new Map(e.map(e=>[e,[]])),r=new Map,i=[],a=new Map(e.map(e=>[e,[]]));for(let e of t)a.get(e.from)?.push(e.to);let o=[],s=e=>{for(o.push({node:e,next:0}),r.set(e,`visiting`);o.length>0;){let e=o[o.length-1],t=a.get(e.node)??[];if(e.next>=t.length){r.set(e.node,`done`),o.pop();continue}let n=t[e.next];e.next+=1;let s=r.get(n);s!==`visiting`&&(i.push({from:e.node,to:n}),s||(r.set(n,`visiting`),o.push({node:n,next:0})))}};for(let t of e)r.has(t)||s(t);for(let e of i)n.get(e.from)?.push(e.to);let c=new Map(e.map(e=>[e,0]));for(let e of i)c.set(e.to,(c.get(e.to)??0)+1);let l=new Map(e.map(e=>[e,0])),u=e.filter(e=>(c.get(e)??0)===0);for(let e=0;e<u.length;e+=1){let t=u[e];for(let e of n.get(t)??[]){l.set(e,Math.max(l.get(e)??0,(l.get(t)??0)+1));let n=(c.get(e)??1)-1;c.set(e,n),n===0&&u.push(e)}}return l}function su(e,t){let n=e.reduce((e,t)=>Math.max(e,t.rank),0)+1,r=Array.from({length:n},()=>[]);for(let t of e)r[t.rank].push(t);let i=new Map;for(let e of t)i.set(e.from,[...i.get(e.from)??[],e.to]),i.set(e.to,[...i.get(e.to)??[],e.from]);let a=new Map,o=()=>{for(let e of r)e.forEach((e,t)=>a.set(e.id,t))};o();let s=e=>{let t=(i.get(e.id)??[]).map(e=>a.get(e)).filter(e=>e!==void 0);return t.length===0?a.get(e.id)??0:t.reduce((e,t)=>e+t,0)/t.length};for(let e=0;e<3;e+=1)for(let e of r){let t=e.map(e=>({cell:e,key:s(e)}));t.sort((e,t)=>e.key-t.key),e.splice(0,e.length,...t.map(e=>e.cell)),o()}return r}function cu(e,t,n,r,i=48){let a=e=>t===`right`?e.width:e.height,o=e=>t===`right`?e.height:e.width,s=0;for(let[r,c]of e.entries()){if(c.length===0)continue;let e=Math.max(...c.map(a)),l=-(c.reduce((e,t)=>e+o(t),0)+(c.length-1)*i)/2;for(let n of c){let r=s+(e-a(n))/2;t===`right`?(n.x=r,n.y=l):(n.x=l,n.y=r),l+=o(n)+i}s+=e+(n?.(r)??110)}r&&r.length>0&&lu(e,t,r,i)}function lu(e,t,n,r){if(e.length<2)return;let i=t===`right`,a=e=>i?e.height:e.width,o=e=>i?e.y:e.x,s=(e,t)=>{i?e.y=t:e.x=t},c=e=>o(e)+a(e)/2,l=new Map(e.flat().map(e=>[e.id,e])),u=new Map;e.forEach((e,t)=>e.forEach(e=>u.set(e.id,t)));let d=new Map;for(let e of n)!l.has(e.from)||!l.has(e.to)||u.get(e.from)!==u.get(e.to)&&(d.set(e.from,[...d.get(e.from)??[],e.to]),d.set(e.to,[...d.get(e.to)??[],e.from]));if(d.size===0)return;let f=(e,t)=>{let n=[...t];for(let t=1;t<e.length;t+=1)n[t]=Math.max(n[t],n[t-1]+a(e[t-1])+r);let i=[...t];for(let t=e.length-2;t>=0;--t)i[t]=Math.min(i[t],i[t+1]-a(e[t])-r);e.forEach((e,t)=>s(e,(n[t]+i[t])/2))};for(let t=0;t<4;t+=1){let n=t%2==0?e:[...e].reverse();for(let e of n)e.length!==0&&f(e,e.map(e=>{let t=(d.get(e.id)??[]).map(e=>c(l.get(e)));return(t.length>0?t.reduce((e,t)=>e+t,0)/t.length:c(e))-a(e)/2}))}for(let[t,n]of e.entries())n.length!==0&&f(n,n.map(e=>{let n=c(e),r=d.get(e.id)??[],i=null;for(let e of r){if((u.get(e)??t)>=t)continue;let r=c(l.get(e));(i===null||Math.abs(r-n)<Math.abs(i-n))&&(i=r)}let o=r.length===1||Math.abs((i??n)-n)<=44;return(i!==null&&o?i:n)-a(e)/2}))}const uu=.001;function du(e){let t=[];for(let n of e)for(let e=0;e<n.length-1;e++){let r=n[e],i=n[e+1];Math.abs(r.x-i.x)<4?t.push({vertical:!0,c:(r.x+i.x)/2,lo:Math.min(r.y,i.y),hi:Math.max(r.y,i.y)}):Math.abs(r.y-i.y)<4&&t.push({vertical:!1,c:(r.y+i.y)/2,lo:Math.min(r.x,i.x),hi:Math.max(r.x,i.x)})}return t}function fu(e,t,n=8){let r=0;for(let i of t){if(i.vertical!==e.vertical||Math.abs(i.c-e.c)>n)continue;let t=Math.min(e.hi,i.hi)-Math.max(e.lo,i.lo);t>.001&&(r+=t)}return r}function pu(e){let t=e.filter(e=>!e.vertical).sort((e,t)=>e.c-t.c),n=e.filter(e=>e.vertical).sort((e,t)=>e.c-t.c);return{horizontal:t,vertical:n,horizontalCs:t.map(e=>e.c),verticalCs:n.map(e=>e.c)}}function mu(e,t){let n=0,r=e.length;for(;n<r;){let i=n+r>>1;e[i]<t?n=i+1:r=i}return n}function hu(e,t,n){let r=t.vertical?e.vertical:e.horizontal,i=t.vertical?e.verticalCs:e.horizontalCs,a=0;for(let e=mu(i,t.c-n);e<r.length&&i[e]<=t.c+n;e++){let n=r[e],i=Math.min(t.hi,n.hi)-Math.max(t.lo,n.lo);i>.001&&(a+=i)}return a}function gu(e,t){let n=t.vertical?e.horizontal:e.vertical,r=t.vertical?e.horizontalCs:e.verticalCs,i=0;for(let e=mu(r,t.lo+uu);e<n.length&&r[e]<t.hi-.001;e++){let r=n[e];t.c>r.lo+.001&&t.c<r.hi-.001&&(i+=1)}return i}function _u(e,t){let n=0;for(let r of t){if(!(e.vertical?e.c>r.x+.001&&e.c<r.x+r.width-.001:e.c>r.y+.001&&e.c<r.y+r.height-.001))continue;let t=e.vertical?r.y:r.x,i=e.vertical?r.y+r.height:r.x+r.width,a=Math.min(e.hi,i)-Math.max(e.lo,t);a>.001&&(n+=a)}return n}function vu(e,t,n){let r=0;for(let i of n){let n=Math.min(t,i.hi)-Math.max(e,i.lo);n>.001&&(r+=n)}return r}function yu(e,t,n){let r=0;for(let i=0;i<n.length;i+=2){let a=Math.min(t,n[i+1])-Math.max(e,n[i]);a>.001&&(r+=a)}return r}function bu(e,t,n,r,i){let a=Math.min(e,n),o=Math.max(e,n),s=Math.min(t,r),c=Math.max(t,r),l=Math.max(i.x-o,a-(i.x+i.width),0),u=Math.max(i.y-c,s-(i.y+i.height),0);return Math.hypot(l,u)}function xu(e,t){return 1e-5*e*t}function Su(e,t,n,r){return e*4e3+t*40+n*6e4+r*900}function Cu(e,t,n,r,i,a){let o=0;for(let a of e)o+=1/(1+bu(t,n,r,i,a));return xu(a,o)}function wu(e,t,n,r,i){if(e.occupiedSegments.length===0&&e.marginBoxes.length===0&&e.softBoxes.length===0)return 0;let a=Math.abs(t-r)<uu,o=a?{vertical:a,c:t,lo:Math.min(n,i),hi:Math.max(n,i)}:{vertical:a,c:n,lo:Math.min(t,r),hi:Math.max(t,r)};return Su(hu(e.laneIndex,o,8),hu(e.marginIndex,o,12),gu(e.laneIndex,o),_u(o,e.softBoxes))}function Tu(e,t){return e===1?0:e===-1?1:t===1?2:3}var Eu=class{a=[];b=[];cost=[];dir=[];push(e,t,n,r){this.a.push(e),this.b.push(t),this.cost.push(n),this.dir.push(r)}pack(e){let{a:t,b:n,cost:r,dir:i}=this,a=new Int32Array(e+1);for(let e=0;e<t.length;e++)a[t[e]+1]++,a[n[e]+1]++;for(let t=0;t<e;t++)a[t+1]+=a[t];let o=a.slice(0,e),s=new Int32Array(a[e]),c=new Float64Array(a[e]),l=new Uint8Array(a[e]);for(let e=0;e<t.length;e++){let a=t[e],u=n[e],d=r[e],f=i[e],p=o[a]++;s[p]=u,c[p]=d,l[p]=f,p=o[u]++,s[p]=a,c[p]=d,l[p]=f^1}return{csrStart:a,csrNode:s,csrCost:c,csrDir:l}}},Du=class{costs=[];states=[];cost=0;state=0;get size(){return this.costs.length}push(e,t){let n=this.costs,r=this.states;n.push(e),r.push(t);let i=n.length-1;for(;i>0;){let e=i-1>>1;if(n[e]<=n[i])break;let t=n[e];n[e]=n[i],n[i]=t;let a=r[e];r[e]=r[i],r[i]=a,i=e}}pop(){let e=this.costs,t=this.states;this.cost=e[0],this.state=t[0];let n=e.pop(),r=t.pop();if(e.length>0){e[0]=n,t[0]=r;let i=0;for(;;){let n=2*i+1,r=2*i+2,a=i;if(n<e.length&&e[n]<e[a]&&(a=n),r<e.length&&e[r]<e[a]&&(a=r),a===i)break;let o=e[a];e[a]=e[i],e[i]=o;let s=t[a];t[a]=t[i],t[i]=s,i=a}}}};let Ou=new Float64Array,ku=new Int32Array,Au=new Uint32Array,ju=0;function Mu(e,t,n){let r=e.csrStart,i=e.csrNode,a=e.csrCost,o=e.csrDir,s=e.xs.length*4;Ou.length<s&&(Ou=new Float64Array(s),ku=new Int32Array(s),Au=new Uint32Array(s),ju=0),ju++,ju===4294967295&&(Au.fill(0),ju=1);let c=Ou,l=ku,u=Au,d=ju,f=new Du;for(let e of t){let t=Tu(e.normal[0],e.normal[1]),n=e.anchorId*4+t;(u[n]!==d||e.cost<c[n])&&(c[n]=e.cost,l[n]=-1,u[n]=d,f.push(e.cost,n))}let p=-1,m=1/0,h=new Set;for(;f.size>0;){f.pop();let e=f.cost,t=f.state;if(e>=m)break;if(e>c[t])continue;let s=t>>2,g=t&3;if(!h.has(s)){let r=n.get(s);if(r!==void 0){h.add(s);let i=e+r;if(i<m&&(m=i,p=t),h.size===n.size)break}}let _=r[s+1];for(let n=r[s];n<_;n++){let r=o[n];if(r===(g^1))continue;let s=e+a[n]+(r===g?0:1e5),p=i[n]*4+r;(u[p]!==d||s<c[p])&&(c[p]=s,l[p]=t,u[p]=d,f.push(s,p))}}if(p===-1)return null;let g=[];for(let e=p;e!==-1;e=l[e])g.push(e>>2);return g.reverse(),{cost:m,nodeIds:g}}function Nu(e,t,n){let r=[],i=[];for(let t of e)r.push(t.x,t.x+t.width),i.push(t.y,t.y+t.height);for(let e of n.marginBoxes)r.push(e.x-t,e.x+t,e.x+e.width-t,e.x+e.width+t),i.push(e.y-t,e.y+t,e.y+e.height-t,e.y+e.height+t);for(let e of n.softBoxes)r.push(e.x-t,e.x+e.width+t),i.push(e.y-t,e.y+e.height+t);for(let e of n.occupiedSegments)e.vertical?r.push(e.c-8-4,e.c+8+4):i.push(e.c-8-4,e.c+8+4);return{xs:r,ys:i}}function Pu(e){let t=e.slice().sort((e,t)=>e-t),n=[];for(let e of t)(n.length===0||Math.abs(e-n[n.length-1])>.001)&&n.push(e);return n}function Fu(e){let t=[];for(let n=0;n<e.length;n++)t.push(e[n]),n<e.length-1&&t.push((e[n]+e[n+1])/2);return t}function Iu(e,t){let n=Pu(Fu(Pu(e))),r=Pu(Fu(Pu(t)));return n.length*r.length>4e4?{gx:Pu(e),gy:Pu(t)}:{gx:n,gy:r}}function Lu(e){let t=new Map;for(let n=0;n<e.length;n++){let r=e[n].toFixed(3);t.has(r)||t.set(r,n)}return t}function Ru(e,t){let n=t.length,r=[],i=[];for(let n of e)for(let e of t)r.push(n),i.push(e);let a=Lu(e),o=Lu(t),s=new Map,c=(e,t)=>{let r=a.get(e.toFixed(3)),i=o.get(t.toFixed(3));return r!==void 0&&i!==void 0?r*n+i:s.get(`${e.toFixed(3)},${t.toFixed(3)}`)};return{xs:r,ys:i,lookup:c,add:(e,t)=>{let n=c(e,t);if(n!==void 0)return n;let a=r.length;return r.push(e),i.push(t),s.set(`${e.toFixed(3)},${t.toFixed(3)}`,a),a}}}function zu(e,t,n,r,i){let a=i.x+uu,o=i.x+i.width-uu,s=i.y+uu,c=i.y+i.height-uu;return o<=a||c<=s?!1:Math.abs(e-n)<1e-9?e<=a||e>=o?!1:Math.min(Math.max(t,r),c)>Math.max(Math.min(t,r),s):t<=s||t>=c?!1:Math.min(Math.max(e,n),o)>Math.max(Math.min(e,n),a)}function Bu(e,t,n,r,i,a){for(let o=0;o<e.length;o++)if(o!==a&&zu(t,n,r,i,e[o]))return!1;return!0}function Vu(e,t,n,r,i,a,o){let s=[];for(let n of r){let r=n.x+uu,i=n.x+n.width-uu,a=n.y+uu,o=n.y+n.height-uu;i<=r||o<=a||(e&&t>r&&t<i?s.push(a,o):!e&&t>a&&t<o&&s.push(r,i))}let c=[],l=[],u=[];for(let n of i)e?(c.push(Math.max(n.x-t,t-(n.x+n.width),0)),l.push(n.y),u.push(n.y+n.height)):(c.push(Math.max(n.y-t,t-(n.y+n.height),0)),l.push(n.x),u.push(n.x+n.width));let d=a.occupiedSegments.length>0||a.marginBoxes.length>0||a.softBoxes.length>0,f=[],p=[],m=[],h=[];if(d){let{laneIndex:n,marginIndex:r}=a,i=e?n.verticalCs:n.horizontalCs,o=e?n.vertical:n.horizontal;for(let e=mu(i,t-8);e<o.length&&i[e]<=t+8;e++)f.push(o[e]);let s=e?r.verticalCs:r.horizontalCs,c=e?r.vertical:r.horizontal;for(let e=mu(s,t-12);e<c.length&&s[e]<=t+12;e++)p.push(c[e]);for(let r of e?n.horizontal:n.vertical)t>r.lo+.001&&t<r.hi-.001&&m.push(r.c);for(let n of a.softBoxes)e&&t>n.x+.001&&t<n.x+n.width-.001?h.push(n.y,n.y+n.height):!e&&t>n.y+.001&&t<n.y+n.height-.001&&h.push(n.x,n.x+n.width)}for(let e=0;e<n.length-1;e++){let t=n[e],r=n[e+1],i=!1;for(let e=0;e<s.length;e+=2)if(Math.min(r,s[e+1])>Math.max(t,s[e])){i=!0;break}if(i)continue;let a=Math.abs(t-r),g=0;for(let e=0;e<c.length;e++){let n=Math.max(l[e]-r,t-u[e],0);g+=1/(1+Math.hypot(c[e],n))}let _=0;d&&(_=Su(vu(t,r,f),vu(t,r,p),mu(m,r-uu)-mu(m,t+uu),yu(t,r,h))),o(e,a+xu(a,g)+_)}}const Hu=[`left`,`right`,`top`,`bottom`],Uu={left:[-1,0],right:[1,0],top:[0,-1],bottom:[0,1]};function Wu(e,t,n=0){return t===`left`?[e.x,e.y+e.height/2+n]:t===`right`?[e.x+e.width,e.y+e.height/2+n]:t===`top`?[e.x+e.width/2+n,e.y]:[e.x+e.width/2+n,e.y+e.height]}function Gu(e,t,n){if(n<=0)return[0];let r=(e===`top`||e===`bottom`?t.width:t.height)/2-6,i=[0];for(let e of[Math.min(n,Math.max(r,16)),n*2])e<=r&&!i.includes(e)&&i.push(-e,e);return i}function Ku(e,t){let n=t.x+t.width/2-(e.x+e.width/2),r=t.y+t.height/2-(e.y+e.height/2),i=e=>{let t=Uu[e];return t[0]*n+t[1]*r};return Hu.slice().sort((e,t)=>i(t)-i(e))}function qu(e,t){for(let n of e)if(Math.hypot(n.x-t[0],n.y-t[1])<16)return!0;return!1}function Ju(e,t,n,r,i,a,o){let s=[];for(let c of r)for(let r of Gu(c,n,i[c]??0)){let i=Wu(n,c,r),l=Uu[c],u=[i[0]+l[0]*a,i[1]+l[1]*a],d=Math.abs(r)*2;qu(o,i)&&(d+=2e5),s.push({terminal:e,boxIndex:t,side:c,anchor:i,stub:u,cost:d})}return s}function Yu(e,t,n,r,i,a,o){let s=e.map(e=>Yt(e,a)),c=Nu(s,a,o),{extent:l}=o,u=c.xs.filter(e=>e>=l.x-.001&&e<=l.x+l.width+.001),d=c.ys.filter(e=>e>=l.y-.001&&e<=l.y+l.height+.001),f=Math.max(a,o.minStub),p=[...Ju(`from`,t,e[t],r,o.fromSpread,f,o.occupiedPorts),...Ju(`to`,n,e[n],i,o.toSpread,f,o.occupiedPorts)];for(let e of p)u.push(e.anchor[0],e.stub[0]),d.push(e.anchor[1],e.stub[1]);let{gx:m,gy:h}=Iu(u,d),g=h.length,_=Ru(m,h),v=new Eu,y=Tu(0,1);for(let t=0;t<m.length;t++){let n=t*g;Vu(!0,m[t],h,s,e,o,(e,t)=>{v.push(n+e,n+e+1,t,y)})}let b=Tu(1,0);for(let t=0;t<g;t++)Vu(!1,h[t],m,s,e,o,(e,n)=>{let r=e*g+t;v.push(r,r+g,n,b)});let x={boxIndex:t,anchors:new Map},S={boxIndex:n,anchors:new Map};for(let t of p){let n=_.add(t.anchor[0],t.anchor[1]),r=_.lookup(t.stub[0],t.stub[1]),i=_.xs[n],a=_.ys[n],c=_.xs[r],l=_.ys[r];if(Bu(s,i,a,c,l,t.boxIndex)){let t=Math.abs(i-c)+Math.abs(a-l),s=t+Cu(e,i,a,c,l,t)+wu(o,i,a,c,l);v.push(n,r,s,Tu(Math.sign(c-i),Math.sign(l-a)))}let u=t.terminal===`from`?x:S,d=u.anchors.get(t.side)??[];d.push({anchorId:n,normal:Uu[t.side],cost:t.cost}),u.anchors.set(t.side,d)}return{xs:_.xs,ys:_.ys,...v.pack(_.xs.length),fromPorts:x,toPorts:S}}function Xu(e,t,n=8){return Zu(e,du(t),n)}function Zu(e,t,n=8){let r=0;for(let i of du([e]))r+=fu(i,t,n);return r}function Qu(e,t){if(t.length===0)return 0;let n=0;for(let r of du([e]))n+=_u(r,t);return n}function $u(e,t){return Math.abs(e.x-t.x)<.001&&Math.abs(e.y-t.y)<.001&&Math.abs(e.width-t.width)<.001&&Math.abs(e.height-t.height)<.001}function ed(e){if(e.length<=2)return e;let t=[e[0]];for(let n=1;n<e.length-1;n++){let r=t[t.length-1],i=e[n],a=e[n+1],o=Math.sign(i[0]-r[0]),s=Math.sign(i[1]-r[1]),c=Math.sign(a[0]-i[0]),l=Math.sign(a[1]-i[1]);o===c&&s===l||t.push(i)}return t.push(e[e.length-1]),t}function td(e){return[{x:e.x,y:e.y},{x:e.x+e.width,y:e.y},{x:e.x+e.width,y:e.y+e.height},{x:e.x,y:e.y+e.height},{x:e.x,y:e.y}]}function nd(e,t,n,r,i,a,o){let s=Yu(e,t,n,r,i,a,o),c=new Map;i.forEach((e,t)=>{for(let n of s.toPorts.anchors.get(e)??[])c.set(n.anchorId,n.cost+t*.5)});let l=null;for(let e of r){let t=(s.fromPorts.anchors.get(e)??[]).filter(e=>!c.has(e.anchorId));if(t.length===0)continue;let n=Mu(s,t,c);n!==null&&(l===null||n.cost<l.cost)&&(l=n)}return l===null?null:ed(l.nodeIds.map(e=>[s.xs[e],s.ys[e]]))}function rd(e,t,n,r,i,a){if(e.length<4)return e;let o=e[e.length-1],s=e[e.length-2],c=e[e.length-3],l=e[e.length-4],u=null;if(Math.abs(o[1]-t.y)<.001?u=`top`:Math.abs(o[1]-(t.y+t.height))<.001?u=`bottom`:Math.abs(o[0]-t.x)<.001?u=`left`:Math.abs(o[0]-(t.x+t.width))<.001&&(u=`right`),!u)return e;let d=Math.max(6,...Gu(u,t,n[u]??0).map(Math.abs)),f=+(u===`top`||u===`bottom`),p=1-f;if(!(Math.abs(s[p]-o[p])<.001&&Math.abs(c[f]-s[f])<.001&&Math.abs(l[p]-c[p])<.001&&Math.sign(c[f]-l[f])===Math.sign(o[f]-s[f])))return e;let m=f===1?t.x+t.width/2:t.y+t.height/2,h=c[p];if(Math.abs(h-m)>d)return e;let g=f===1?[h,o[1]]:[o[0],h];if(qu(a.occupiedPorts,g))return e;let _=Math.min(c[f],g[f]),v=Math.max(c[f],g[f]);if(fu(f===1?{vertical:!0,c:h,lo:_,hi:v}:{vertical:!1,c:h,lo:_,hi:v},a.occupiedSegments)>1)return e;for(let t=0;t<i.length;t++)if(t!==r&&(f===1?zu(h,_,h,v,i[t]):zu(_,h,v,h,i[t])))return e;return[...e.slice(0,e.length-3),g]}function id(e,t,n){let r=Math.min(e.x,t.x),i=Math.min(e.y,t.y),a=Math.max(e.x+e.width,t.x+t.width),o=Math.max(e.y+e.height,t.y+t.height),s=Math.max(240,n*6,.2*Math.max(a-r,o-i));return{x:r-s,y:i-s,width:a-r+s*2,height:o-i+s*2}}function ad(e,t,n){return e.vertical?e.c>t.x-n&&e.c<t.x+t.width+n&&e.hi>t.y&&e.lo<t.y+t.height:e.c>t.y-n&&e.c<t.y+t.height+n&&e.hi>t.x&&e.lo<t.x+t.width}function od(e,t){for(let n=0;n<e.length;n++)if($u(e[n],t))return n;return e.push(t),e.length-1}function sd(e,t,n,r=16,i={}){let a=id(e.bounds,t.bounds,r),o=[],s=od(o,e.bounds),c=od(o,t.bounds);for(let e of n)Zt(e,a)&&od(o,e);let l=(i.marginBoxes??[]).filter(e=>Zt(e,a)),u=i.occupiedSegments??du(i.occupiedPaths??[]),d=u.filter(e=>ad(e,a,8)),f={occupiedSegments:d,laneIndex:pu(d),occupiedPorts:(i.occupiedPorts??[]).filter(e=>e.x>a.x-16&&e.x<a.x+a.width+16&&e.y>a.y-16&&e.y<a.y+a.height+16),fromSpread:i.fromSpread??{},toSpread:i.toSpread??{},marginBoxes:l,marginIndex:pu(du(l.map(td))),softBoxes:(i.softBoxes??[]).filter(e=>Zt(e,a)),minStub:i.minStub??0,extent:a},p=e.side?[e.side]:Ku(e.bounds,t.bounds),m=t.side?[t.side]:Ku(t.bounds,e.bounds),h=[];for(let e of[r,r*.5,r*.25,4,1,.5])e>0&&!h.some(t=>Math.abs(t-e)<1e-6)&&h.push(e);h.sort((e,t)=>t-e);let g=null;for(let n of h){if(g!==null&&n<12)break;let r=nd(o,s,c,p,m,n,f);if(r!==null){r=rd(r,t.bounds,f.toSpread,c,o,f),r=rd(r.slice().reverse(),e.bounds,f.fromSpread,s,o,f).reverse();let n=r.map(e=>({x:e[0],y:e[1]}));if(Zu(n,u)>12){g??=n;continue}return n}}return g}const Y=`#1e1e1e`,X=`#868e96`,cd=`#adb5bd`,Z=kt,ld=2.1,Q={blue:F.blue.pastel,green:F.green.pastel,red:F.red.pastel,orange:F.orange.pastel,violet:F.purple.pastel,teal:F.teal.pastel,pink:F.pink.pastel,yellow:F.yellow.pastel,gray:F.gray.pastel},ud=[`#e7f5ff`,`#fff9db`,`#ebfbee`,`#f3f0ff`,`#fff4e6`,`#e6fcf5`,`#fff0f6`],dd=[`blue`,`green`,`orange`,`violet`,`pink`,`teal`,`yellow`,`gray`];function fd(e){let t=e.trim();if(t.length<=14||t.includes(`
12
+ `))return t;let n=t.split(/\s+/);if(n.length===1)return t;let r=Math.min(Math.ceil(t.length/14),n.length),i=[],a=0;for(let e=0;e<n.length-1;e+=1)a+=n[e].length+1,i.push(a);let o=[],s=0;for(let e=1;e<r;e+=1){let n=t.length*e/r,a=-1;for(let t=s;t<i.length-(r-1-e);t+=1)(a===-1||Math.abs(i[t]-n)<Math.abs(i[a]-n))&&(a=t);if(a===-1)break;o.push(a),s=a+1}let c=[],l=0;for(let e of o)c.push(n.slice(l,e+1).join(` `)),l=e+1;return c.push(n.slice(l).join(` `)),c.join(`
13
+ `)}function pd(e,t){let n=0;for(let r of e.split(`
14
+ `))n=Math.max(n,V(r,t));return n}function md(e){return{width:pd(e,16)+20,height:e.split(`
15
+ `).length*16*1.2+2}}function hd(e){return{x:e.x,y:e.y,width:e.width,height:e.height}}function gd(e,t){return`${e}→${t}`}function _d(e){let t=new Map;for(let n of e){let e=gd(n.from,n.to);t.has(e)||t.set(e,n)}return t}function vd(e){let t=_d(e);return e=>{let n=t.get(gd(e.to,e.from));return n?!!e.dashed==!!n.dashed?e.from>e.to:!e.dashed:!1}}const yd=e=>({x:e.x+e.width/2,y:e.y+e.height/2});function bd(e,t,n,r=!0){let i=yd(t),a=yd(n),o=Math.abs(e===`right`?i.y-a.y:i.x-a.x),s=r?Dd(t,n):null;if(s&&(o<=44||kd(t,n)))return{path:s,ports:s};if(o<=44)return{path:[i,a],ports:[Xt(t,i,a),Xt(n,a,i)]};let c=e=>({bounds:e,target:yd(e),gap:6,minEnd:Z*1.5,side:null,isPoint:!1}),l=jr(c(t),c(n),.5).route,u;if(l&&l.length>=2)u=l;else if(e===`right`){let e=(t.x+t.width+n.x)/2;u=[{x:t.x+t.width,y:i.y},{x:e,y:i.y},{x:e,y:a.y},{x:n.x,y:a.y}]}else{let e=(t.y+t.height+n.y)/2;u=[{x:i.x,y:t.y+t.height},{x:i.x,y:e},{x:a.x,y:e},{x:a.x,y:n.y}]}return{path:u,ports:[u[0],u[u.length-1]]}}function xd(e,t){for(let n=0;n<e.length-1;n+=1)if(t.some(t=>rn(e[n],e[n+1],t,-8)))return!0;return!1}function Sd(e){let t=0,n=[],r=[];function i(e,t){e.length<2||(n.push(...du([e])),r.push(...t??[e[0],e[e.length-1]]))}function a(e){return Zu(e,n)>12}function o(e){return r.some(t=>Ht(e,t)<12)}function s(a,o,s,c){let l={occupiedSegments:n,occupiedPorts:r,fromSpread:c.fromSpread,toSpread:c.toSpread,marginBoxes:c.margins,softBoxes:c.softBoxes,minStub:24+(c.stubExtra??0)},u=Math.abs(e===`right`?a.y+a.height/2-(o.y+o.height/2):a.x+a.width/2-(o.x+o.width/2)),d=()=>{let n=e===`right`?t%2==0?[`top`,`bottom`]:[`bottom`,`top`]:t%2==0?[`left`,`right`]:[`right`,`left`];return t+=1,n};if(c.sides){let e=sd({bounds:hd(a),side:c.sides.from},{bounds:hd(o),side:c.sides.to},c.obstacles(),30,l);if(e)return i(e),{elbow:!0,bend:0,route:e}}if(s<=1&&c.detour){let e=c.obstacles();for(let t of d()){let n=sd({bounds:hd(a),side:t},{bounds:hd(o),side:t},e,30,l);if(n)return i(n),{elbow:!0,bend:0,route:n}}return{elbow:!1,bend:(t%2==0?1:-1)*60,route:null}}if(s>1){let e=c.obstacles(),n=c.softBoxes??[],r=null;if(u<=44)for(let t of d()){let s=sd({bounds:hd(a),side:t},{bounds:hd(o),side:t},e,30,l);if(s){if(Qu(s,n)===0)return i(s),{elbow:!0,bend:0,route:s};r??=s}}let f=sd({bounds:hd(a)},{bounds:hd(o)},e,30,l),p=f&&r?Qu(f,n)<Qu(r,n)?f:r:f??r;if(p)return i(p),{elbow:!0,bend:0,route:p};let m=Math.min(40+s*18,110),h=(t%2==0?1:-1)*m;return t+=1,{elbow:!1,bend:h,route:null}}return{elbow:u>44,bend:0,route:null}}return{route:s,register:i,overlaps:a,portTaken:o}}function Cd(e,t){let n=[],r=0;for(let t=0;t<e.length-1;t+=1){let i=Math.hypot(e[t+1].x-e[t].x,e[t+1].y-e[t].y);n.push(i),r+=i}if(r===0||n.length===0)return e[0];let i=Math.min(Math.max(t,0),1)*r;for(let t=0;t<n.length;t+=1){if(i<=n[t]||t===n.length-1){let r=n[t]===0?0:Math.min(i/n[t],1);return{x:e[t].x+(e[t+1].x-e[t].x)*r,y:e[t].y+(e[t+1].y-e[t].y)*r}}i-=n[t]}return e[e.length-1]}function wd(e,t,n,r=[.25,.5,.75]){let i=0,a=[];for(let t=0;t<e.length-1;t+=1){let n=Math.hypot(e[t+1].x-e[t].x,e[t+1].y-e[t].y);a.push(n),i+=n}if(i===0)return;let o=e=>{let r=e.x-n.width/2,i=e.y-n.height/2,a=1/0;for(let e of t){let t=Math.max(e.x-(r+n.width),r-(e.x+e.width)),o=Math.max(e.y-(i+n.height),i-(e.y+e.height));a=Math.min(a,t>0||o>0?Math.hypot(Math.max(t,0),Math.max(o,0)):Math.max(t,o))}return a},s=null,c=0,l=(e,t)=>{let n=Math.min(o(t),90)-Math.abs(e-.5)*40;(!s||n>s.score)&&(s={t:e,score:n})};for(let t=0;t<e.length-1;t+=1){for(let n of r){let r={x:e[t].x+(e[t+1].x-e[t].x)*n,y:e[t].y+(e[t+1].y-e[t].y)*n};l((c+a[t]*n)/i,r)}c+=a[t]}return s?s.t:void 0}function Td(e,t){return{x:Bt((e.x-t.x)/Math.max(t.width,1)),y:Bt((e.y-t.y)/Math.max(t.height,1))}}function Ed(e,t,n,r){return e>=n+12&&e<=r-12?e:t>=n+12&&t<=r-12?t:(n+r)/2}function Dd(e,t){let n=t.y>=e.y+e.height||e.y>=t.y+t.height;if(n===(t.x>=e.x+e.width||e.x>=t.x+t.width))return null;let r=e=>e.flatInset?.x??0,i=e=>e.flatInset?.y??0;if(n){let n=Math.max(e.x+r(e),t.x+r(t)),i=Math.min(e.x+e.width-r(e),t.x+t.width-r(t));if(i-n<24)return null;let a=Ed(e.x+e.width/2,t.x+t.width/2,n,i),o=t.y>e.y;return[{x:a,y:o?e.y+e.height:e.y},{x:a,y:o?t.y:t.y+t.height}]}let a=Math.max(e.y+i(e),t.y+i(t)),o=Math.min(e.y+e.height-i(e),t.y+t.height-i(t));if(o-a<24)return null;let s=Ed(e.y+e.height/2,t.y+t.height/2,a,o),c=t.x>e.x;return[{x:c?e.x+e.width:e.x,y:s},{x:c?t.x:t.x+t.width,y:s}]}function Od(e){if(!e||e.length<3||e.length>4)return!1;let t=e[0],n=e[e.length-1],r=Math.abs(t.x-n.x),i=Math.abs(t.y-n.y);if(Math.min(r,i)>48||Math.max(r,i)<=48)return!1;let a=e=>r<i?e.x:e.y,o=Math.min(a(t),a(n))-1,s=Math.max(a(t),a(n))+1;return e.every(e=>a(e)>=o&&a(e)<=s)}function kd(e,t){return Math.min(Math.abs(e.x+e.width/2-(t.x+t.width/2)),Math.abs(e.y+e.height/2-(t.y+t.height/2)))<=48*1.5}function Ad(e){let{from:t,to:n,routed:r}=e,i=e.square===!1?null:Dd(t,n),a=i&&e.obstacles&&xd(i,e.obstacles)?null:i,o=r.elbow&&!r.route&&kd(t,n),s=r.elbow&&(Od(r.route)||o)&&a!==null,c=!r.elbow&&r.route?.length===2&&Math.abs(r.route[0].x-r.route[1].x)>1&&Math.abs(r.route[0].y-r.route[1].y)>1&&a!==null,l=s||c?a:r.route??(r.elbow?null:a),u=!r.elbow&&!r.route&&a===null&&Math.abs(t.x+t.width/2-(n.x+n.width/2))>1&&Math.abs(t.y+t.height/2-(n.y+n.height/2))>1,d=r.elbow&&!s||u,f=e.labelAlong===void 0?e.label&&l&&e.labelObstacles?wd(l,e.labelObstacles,md(e.label)):void 0:e.labelAlong;return{id:H(),type:`arrow`,x:l?l[0].x:t.x+t.width/2,y:l?l[0].y:t.y+t.height/2,x2:l?l[l.length-1].x:n.x+n.width/2,y2:l?l[l.length-1].y:n.y+n.height/2,bend:r.bend,bendAlong:0,bendStyle:d?`elbow`:`curved`,elbowPoints:d?l??void 0:void 0,startBinding:{shapeId:e.fromShapeId,anchor:l?Td(l[0],t):{x:.5,y:.5},precise:!!l},endBinding:{shapeId:e.toShapeId,anchor:l?Td(l[l.length-1],n):{x:.5,y:.5},precise:!!l},label:e.label,labelAlong:f,fontSize:16,fontFamily:I,color:e.color??`#1e1e1e`,strokeWidth:e.strokeWidth??Z,dash:e.dashed||e.flow?`dashed`:`solid`,flow:e.flow||void 0,startArrow:e.startArrow??!1,startHead:e.startHead,endHead:e.endHead,endArrow:e.endArrow??!0,opacity:1}}F.yellow.pastel,F.orange.pastel,F.green.pastel,F.red.pastel,F.blue.pastel,F.teal.pastel,F.purple.pastel,F.pink.pastel,F.gray.pastel,F.yellow.bold,F.orange.bold,F.green.bold,F.red.bold,F.blue.bold,F.teal.bold,F.purple.bold,F.pink.bold,F.gray.bold;function jd(e,t,n,r={}){return{id:H(),type:`text`,x:e.x+6,y:e.y+6,width:e.width-12,height:e.height-12,text:t,fontSize:n,fontFamily:r.fontFamily??I,textAlign:r.align??`center`,textVAlign:r.valign??`middle`,lineHeight:r.lineHeight??1.25,letterSpacing:r.letterSpacing,rotation:0,color:r.color??`#1e1e1e`,opacity:r.opacity??1}}function $(e,t,n={}){return{id:H(),type:`rectangle`,kind:n.kind??`rectangle`,...e,rotation:n.rotation??0,label:n.label??``,fontSize:n.fontSize??24,fontFamily:I,labelColor:n.labelColor,letterSpacing:n.letterSpacing,textAlign:n.align,textVAlign:n.valign,textPadding:n.textPadding,titleIcon:n.titleIcon,link:n.link,color:n.color??`#1e1e1e`,fill:t,fillStyle:n.fillStyle??`pastel`,corner:n.corner,shadow:n.shadow,strokeWidth:n.strokeWidth??1.5,dash:n.dash??`solid`,opacity:n.opacity??1}}function Md(e,t={}){return{id:H(),type:`line`,points:e,color:t.color??`#1e1e1e`,strokeWidth:t.strokeWidth??3,dash:t.dash??`solid`,startArrow:!1,endArrow:t.endArrow??!1,opacity:t.opacity??1}}const Nd=new Set([`/`,`\\`,`.`,`_`,`-`,`:`,`#`,`,`,`?`,`&`,`=`,`@`]),Pd=/^[A-Za-z0-9]{1,5}$/,Fd=e=>e!==e.toUpperCase()&&e===e.toLowerCase(),Id=e=>e!==e.toLowerCase()&&e===e.toUpperCase();function Ld(e){let t=Array.from(e),n=[];for(let e=2;e<=t.length-2;e+=1){let r=t[e-1],i=t[e];if(Nd.has(r)&&!Nd.has(i)){(r!==`.`||!Pd.test(t.slice(e).join(``)))&&n.push(e);continue}let a=Fd(r)&&Id(i),o=Id(r)&&Id(i)&&Fd(t[e+1]??``);(a||o)&&n.push(e)}return n}function Rd(e){let t=Array.from(e),n=[0,...Ld(e),t.length],r=[];for(let e=0;e<n.length-1;e+=1)r.push(t.slice(n[e],n[e+1]).join(``));return r}function zd(e,t,n){let r=[],i=``;for(let a of e){if(i&&n(i+a)>t){r.push(i),i=a;continue}i+=a}return r.push(i),r}function Bd(e,t,n){if(n(e)<=t)return[e];let r=[],i=``,a=(e,a)=>{let o=i?`${i}${a}${e}`:e;if(n(o)<=t){i=o;return}if(i&&=(r.push(i),``),n(e)<=t){i=e;return}let s=zd(e,t,n);r.push(...s.slice(0,-1)),i=s[s.length-1]};for(let r of e.split(` `)){if(n(r)<=t){a(r,` `);continue}Rd(r).forEach((e,t)=>a(e,t===0?` `:``))}return(i||r.length===0)&&r.push(i),r}function Vd(e,t){return!!t&&!e.shape&&!e.color}const Hd=new Set([`queue`,`cylinder`]);function Ud(e){return!!e.shape&&Hd.has(e.shape)}function Wd(e){return{id:e.id,rank:e.rank,x:e.x+(e.width-64)/2,y:e.y,width:64,height:64}}const Gd={diamond:{extraWidth:44,height:100},cylinder:{clampLabel:[140,240],height:96},queue:{extraWidth:58,clampLabel:[170,270],height:80},callout:{clampLabel:[170,260],height:92},ellipse:{extraWidth:24,height:80},note:{clampLabel:[170,280],height:96},sticky:{width:160,height:160},cloud:{extraWidth:48,height:96},"speech-bubble":{extraWidth:20,height:96},star:{width:130,height:130},triangle:{width:140,height:110},hexagon:{extraWidth:36,height:88},parallelogram:{extraWidth:40,height:82},trapezoid:{extraWidth:40,height:82},"manual-input":{extraWidth:24,height:86},document:{height:92},pentagon:{extraWidth:40,height:78},chevron:{extraWidth:40,height:78},octagon:{extraWidth:30,height:96},cube:{clampLabel:[120,200],height:110},checkbox:{width:90,height:90},crossbox:{width:90,height:90},plus:{width:90,height:90},heart:{width:116,height:104},bolt:{width:80,height:112},"arrow-up":{width:96,height:124},"arrow-down":{width:96,height:124},"arrow-left":{extraWidth:20,height:96},"arrow-right":{extraWidth:20,height:96},"fork-join":{clampLabel:[150,200],height:30}};function Kd(e){return e.split(`
16
+ `).flatMap(e=>Bd(e,200,e=>V(e,17))).join(`
17
+ `)}function qd(e,t){let n=e.shape?Xd[e.shape]:void 0,r={x:0,y:0,width:t.width,height:t.height};if(n===`cylinder`)return{x:0,y:Mt(r)};if(n===`queue`)return{x:Nt(r),y:0}}function Jd(e,t,n=!0){if(Vd(e,t)){let t=Kd(e.label).split(`
18
+ `),n=Math.max(...t.map(e=>V(e,17)));return{width:Math.max(64,n),height:94.65+(t.length-1)*17*di}}let r=n&&t?li(20)+ui(20):0,i=e.label.split(`
19
+ `),a=Math.max(...i.map(e=>V(e,20)))+52+r,o=Math.round((i.length-1)*20*di),s=zt(a,150,280);if(e.shape===`circle`||e.shape===`double-circle`){let t=Math.max(...e.label.split(/\s+/).map(e=>V(e,20))),n=e.shape===`double-circle`?.58:.7,r=Math.max(120,Math.min(Math.round(a*.75),200),Math.min(Math.round((t+24)/n),260));return{width:r,height:r}}let c=e.shape?Gd[e.shape]:void 0;if(!c)return{width:s,height:78+o};if(c.width!==void 0)return{width:c.width,height:c.height};if(c.clampLabel){let[e,t]=c.clampLabel;return{width:Math.max(e,Math.min(a+(c.extraWidth??0),t)),height:c.height+o}}return{width:s+(c.extraWidth??0),height:c.height+o}}function Yd(e){return e.frame===`browser`?{top:62,side:26,bottom:22}:e.frame===`window`?{top:58,side:26,bottom:22}:e.frame===`phone`?{top:44,side:34,bottom:44}:e.frame===`tablet`?{top:40,side:30,bottom:44}:{top:28,side:26,bottom:22}}const Xd={ellipse:`oval`,circle:`ellipse`,diamond:`diamond`,cylinder:`cylinder`,queue:`queue`,callout:`callout`,hexagon:`hexagon`,parallelogram:`parallelogram`,trapezoid:`trapezoid`,triangle:`triangle`,cloud:`cloud`,star:`star`,"speech-bubble":`speech-bubble`,note:`note`,checkbox:`checkbox`,crossbox:`crossbox`,heart:`heart`,"arrow-up":`arrow-up`,"arrow-down":`arrow-down`,"arrow-left":`arrow-left`,"arrow-right":`arrow-right`,plus:`plus`,bolt:`bolt`,document:`document`,"predefined-process":`predefined-process`,"manual-input":`manual-input`,pentagon:`pentagon`,chevron:`chevron`,octagon:`octagon`,cube:`cube`,actor:`actor`,"double-circle":`double-circle`,card:`card`,delay:`delay`,"fork-join":`fork-join`,"multi-document":`multi-document`,"multi-process":`multi-process`,package:`package`,component:`component`,brace:`brace`},Zd=[`left`,`right`,`top`,`bottom`],Qd={rectangle:Zd,note:Zd,sticky:Zd,diamond:Zd,circle:Zd,cylinder:Zd,ellipse:Zd,callout:[`top`,`left`,`right`],hexagon:[`top`,`bottom`],parallelogram:[`top`,`bottom`],trapezoid:[`bottom`],queue:[`top`,`bottom`],package:Zd,component:Zd};function $d(e,t,n,r=!0){if(e.shape===`sticky`)return{id:H(),type:`sticky`,x:n.x,y:n.y,width:n.width,height:n.height,rotation:0,text:e.label,fontSize:20,fontFamily:I,fill:e.color?Q[e.color]:`#ffec99`,opacity:1};if(Vd(e,t))return{id:H(),type:`icon`,x:n.x+(n.width-64)/2,y:n.y,width:64,height:64,rotation:0,source:t.source,name:t.name,label:Kd(e.label),fontSize:17,fontFamily:I,color:Y,strokeWidth:Z,opacity:1};let i=e.shape&&Xd[e.shape]||`rectangle`;return $({x:n.x,y:n.y,width:n.width,height:n.height},e.color?Q[e.color]:`#ffffff`,{kind:i,label:e.label,fontSize:20,titleIcon:t?r?{...t,placement:`inside`}:t:void 0,color:Y,labelColor:e.labelColor?z[e.labelColor]:void 0,fillStyle:e.fill??`pastel`,corner:e.corner,shadow:e.shadow,strokeWidth:Z,link:e.link})}function ef(e,t,n){let r=[...e.filter(e=>e.prediction.path.length===2),...e.filter(e=>e.prediction.path.length!==2)];for(let e of r){let{prediction:r,plan:i}=e,a=xd(r.path,i.obstacles()),o=r.ports.some(e=>t.portTaken(e));a||n(r.path)||o||t.overlaps(r.path)?i.rankSpan=2:t.register(r.path,r.ports)}}function tf(e,t){let[n,r]=Wu(e,t);return{x:n,y:r}}function nf(e){let t=new Map;for(let n of e){let e=`${n.shapeId}:${n.side}`;t.set(e,[...t.get(e)??[],n])}for(let e of t.values())if(!(e.length<2)){e.sort((e,t)=>e.farCross-t.farCross);for(let t=0;t<e.length;t+=1){let n=e[t];if(n.amount<=0)continue;let{arrow:r,cell:i,side:a,end:o}=n,s=-n.amount+2*n.amount*t/(e.length-1),c=a===`left`||a===`right`?{x:a===`left`?0:1,y:.5+s/Math.max(i.height,1)}:{x:.5+s/Math.max(i.width,1),y:a===`top`?0:1},l={x:i.x+c.x*i.width,y:i.y+c.y*i.height};o===`start`?(r.x=l.x,r.y=l.y,r.startBinding={shapeId:n.shapeId,anchor:c,precise:!0}):(r.x2=l.x,r.y2=l.y,r.endBinding={shapeId:n.shapeId,anchor:c,precise:!0})}}}function rf(e){let t=e=>({x:e.x+e.width/2,y:e.y+e.height/2}),n=e=>{let n=t(e.from),r=t(e.to);return Math.abs(n.x-r.x)+Math.abs(n.y-r.y)},r=[...e],i=new Map;e.forEach((e,t)=>{!e.lane&&e.rankSpan>1&&i.set(e.edge.from,[...i.get(e.edge.from)??[],t])});for(let t of i.values()){let i=t.map(t=>e[t]).sort((e,t)=>n(e)-n(t));t.forEach((e,t)=>{r[e]=i[t]})}return r}function af(e,t,n,r,i,a=[]){let o=[...a],s=new Map,c=(e,t)=>{let n=md(t);return{x:e.x-n.width/2,y:e.y-n.height/2,width:n.width,height:n.height}};for(let t of e)if(!(!t.edge.label||t.edge.invisible)){if(t.lane){o.push(c(Cd(t.lane,.5),t.edge.label));continue}if(t.rankSpan<=1&&!t.detour){let e=c(Cd(bd(n,t.from,t.to).path,.5),t.edge.label);s.set(t,e),o.push(e)}}let l=[],u=[];for(let a of rf(e)){let{edge:e,from:d,to:f,obstacles:p}=a;if(e.invisible)continue;let m=a.lane||a.detour||a.rankSpan<=1||!a.withinGroup?null:df(d,f,n,a,t,o),h=a.lane?{elbow:a.lane.length>2||!uf(a.lane,n),bend:0,route:a.lane}:m?{elbow:!1,bend:0,route:m}:t.route(d,f,a.rankSpan,{detour:a.detour,obstacles:p,fromSpread:r(e.from),toSpread:r(e.to),margins:i(e),softBoxes:o,stubExtra:a.stubExtra}),g,_=h.route??(h.elbow?bd(n,d,f).path:null);if(e.label&&_&&!a.lane){let t=s.get(a),n=o.filter(e=>e!==t);g=wd(_,[...p(),hd(d),hd(f),...n],md(e.label));let r=c(Cd(_,g??.5),e.label);t?o[o.indexOf(t)]=r:o.push(r)}let v=e.head===`circle`?`circle`:e.head===`cross`?`cross`:void 0,y=Ad({from:d,to:f,fromShapeId:a.fromShapeId,toShapeId:a.toShapeId,strokeWidth:ld,routed:h,obstacles:p(),label:e.label,labelAlong:g,dashed:e.dashed,color:e.color?z[e.color]:void 0,flow:e.flow,startArrow:e.bidirectional===!0,endHead:v,startHead:e.bidirectional===!0?v:void 0});if(l.push(y),!h.route&&h.bend!==0){let n=f.x+f.width/2-(d.x+d.width/2),i=f.y+f.height/2-(d.y+d.height/2),o=Math.abs(n)>=Math.abs(i),s=o?n>0?`right`:`left`:i>0?`bottom`:`top`,c=o?n>0?`left`:`right`:i>0?`top`:`bottom`;u.push({arrow:y,end:`start`,shapeId:a.fromShapeId,cell:d,side:s,amount:r(e.from)[s]??0,farCross:o?f.y+f.height/2:f.x+f.width/2},{arrow:y,end:`end`,shapeId:a.toShapeId,cell:f,side:c,amount:r(e.to)[c]??0,farCross:o?d.y+d.height/2:d.x+d.width/2});let l=tf(d,s);t.register([l,l],[l,tf(f,c)])}}return nf(u),l}function of(e,t){let{cells:n,blocks:r,groupsById:i,containersOf:a}=t,o=new Set([e.from,e.to,...a(e.from),...a(e.to)]),s=[e.from,e.to].filter(e=>i.has(e)),c=e=>s.length>0&&a(e).some(e=>s.includes(e)),l=[];for(let e of n.values())!o.has(e.id)&&!c(e.id)&&l.push({x:e.x,y:e.y,width:e.width,height:e.height});for(let[e,t]of r)!o.has(e)&&!c(e)&&l.push({x:t.cell.x,y:t.cell.y-32,width:t.cell.width,height:t.cell.height+32});return l}function sf(e,t){let{blocks:n,containersOf:r}=t,i=new Set([...r(e.from),...r(e.to)]),a=[];for(let e of i){let t=n.get(e);t&&a.push({x:t.cell.x,y:t.cell.y,width:t.cell.width,height:t.cell.height})}return a}const cf=(e,t)=>Object.fromEntries(e.map(e=>[e,t]));function lf(e,t){let{groupsById:n,nodeById:r}=t;if(n.has(e))return cf(Zd,20);let i=r.get(e);if(!i)return{};let a=Qd[i.shape??`rectangle`];return a?cf(a,20):{}}function uf(e,t){return t===`right`?e[0].y===e[1].y:e[0].x===e[1].x}function df(e,t,n,r,i,a){let o=r.edge.label?md(r.edge.label):null,s=e=>{if(!o)return!0;let t=Cd(e,.5),n={x:t.x-o.width/2,y:t.y-o.height/2,width:o.width,height:o.height};return!a.some(e=>Zt(n,e))},c=n===`right`?`x`:`y`,l=n===`right`?`y`:`x`,u=n===`right`?`width`:`height`,d=n===`right`?`height`:`width`;if(e[c]+e[u]>=t[c]||Math.abs(e[l]+e[d]/2-(t[l]+t[d]/2))<1)return null;let f=Math.max(e[l],t[l])+16,p=Math.min(e[l]+e[d],t[l]+t[d])-16;if(f>p)return null;let m=(e[l]+e[d]/2+t[l]+t[d]/2)/2,h=Math.min(Math.max(m,f),p),g=[h];for(let e=6;h-e>=f||h+e<=p;e+=6)g.push(...[h-e,h+e].filter(e=>e>=f&&e<=p));let _=(e,t)=>n===`right`?{x:e,y:t}:{x:t,y:e};for(let n of g){let o=_(e[c]+e[u],n),l=_(t[c],n),d=[o,l];if(!(i.portTaken(o)||i.portTaken(l)||i.overlaps(d)||xd(d,r.obstacles())||a.some(e=>rn(o,l,e,0))||!s(d)))return i.register(d),d}return null}function ff(e,t,n){let r=e.x+e.width,i=t.x,a=e.y+n.fromTop*e.height,o=Math.max(1,n.fromSpan*e.height),s=t.y+n.toTop*t.height,c=Math.max(1,n.toSpan*t.height),l=r+(i-r)/3,u=i-(i-r)/3,d=(e,t,n)=>{let r=1-e;return r*r*r*t+3*r*r*e*t+3*r*e*e*n+e*e*e*n},f=e=>{let t=1-e;return t*t*t*r+3*t*t*e*l+3*t*e*e*u+e*e*e*i},p=[],m=[];for(let e=0;e<=24;e+=1){let t=e/24,n=f(t);p.push({x:n,y:d(t,a,s)}),m.push({x:n,y:d(t,a+o,s+c)})}return[...p,...m.reverse()]}function pf(e,t,n){let r=e.band;if(!r||n&&!n.has(e.id)&&!n.has(r.from)&&!n.has(r.to))return e;let i=t.get(r.from),a=t.get(r.to);if(!i||!a||!mf(i)||!mf(a))return e;let o=ff(i,a,r);return hf(o,e.points)?e:{...e,points:o}}function mf(e){return`width`in e&&`height`in e&&`x`in e&&`y`in e}function hf(e,t){return e.length===t.length&&e.every((e,n)=>e.x===t[n].x&&e.y===t[n].y)}function gf(e,t){if(e===t)return!0;if(!e||!t||e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(Math.abs(e[n].x-t[n].x)>.01||Math.abs(e[n].y-t[n].y)>.01)return!1;return!0}function _f(e,t,n,r){if(t==null){let t=e;for(let e=0;e<4;e+=1){let e=Cf(t,n);if(e===t)break;t=e}return t}if(t.size===0)return e;let i=e,a=t;for(let e=0;e<4&&a.size>0;e+=1){let t=Tf(i,a,n,e===0?r:void 0);if(t.shapes===i)break;i=t.shapes,a=t.moved}return i}function vf(e,t){return!!(t.has(e.id)||e.startBinding&&t.has(e.startBinding.shapeId)||e.endBinding&&t.has(e.endBinding.shapeId))}function yf(e,t,n,r,i,a,o,s){let{x:c,y:l,x2:u,y2:d}=e;if(t&&n){let r=Zl(t,n,o,Fl(t,e,`start`),s);c=r.x,l=r.y}if(r&&i){let t=Zl(r,i,a,Fl(r,e,`end`),s);u=t.x,d=t.y}return{x:c,y:l,x2:u,y2:d}}function bf(e,t,n,r,i,a,o,s){let{x:c,y:l,x2:u,y2:d}=e,f=e.elbowPoints,p=e.elbowRoute,m=e.elbowMidHandle,h=t&&n?ru(t,n,e.strokeWidth,Fl(t,e,`start`),s):Ir({x:e.x,y:e.y},e.strokeWidth),g=r&&i?ru(r,i,e.strokeWidth,Fl(r,e,`end`),s):Ir({x:e.x2,y:e.y2},e.strokeWidth),_=null;if(f&&f.length>=3&&t&&t===r){let e=(e,t)=>e.map(n=>({x:n.x+t.x-e[0].x,y:n.y+t.y-e[0].y})),t=Fr(e(f,h.target),h,g)?.[0];t&&(f=e(f,t))}if(f&&f.length>=3)_=Fr(f,h,g),_||(f=void 0);else if(f){let e=e=>!e||El(e)||e.precise;e(n)&&e(i)?_=[{x:h.target.x,y:h.target.y},{x:g.target.x,y:g.target.y}]:f=void 0}if(_)({elbowPoints:f,elbowRoute:p,elbowMidHandle:m,x:c,y:l,x2:u,y2:d}=iu(e,_));else{let f=jr(h,g,e.elbowMid??.5);f.route&&f.route.length>=2?(p=f.route,m=f.midHandle??void 0,c=f.route[0].x,l=f.route[0].y,u=f.route[f.route.length-1].x,d=f.route[f.route.length-1].y):(p=void 0,m=void 0,{x:c,y:l,x2:u,y2:d}=yf(e,t,n,r,i,a,o,s))}return{x:c,y:l,x2:u,y2:d,bend:e.bend,bendAlong:e.bendAlong,bow:e.bow,bowAlong:e.bowAlong,elbowPoints:f,elbowRoute:p,elbowMidHandle:m}}function xf(e,t,n,r,i,a,o,s){let{x:c,y:l,x2:u,y2:d}=e,f=e.bend,p=e.bendAlong,m=e.bow??e.bend??0,h=e.bowAlong??e.bendAlong??0,g=m,_=h,v=Zr(a,o,m,h),y=!1;if(v){let a=t&&n&&!El(n)?Ql(t,v,!0,Fl(t,e,`start`),s):0,o=r&&i&&!El(i)?Ql(r,v,!1,Fl(r,e,`end`),s):1;if(o-a>.02){let e=v.pointAt(a),t=v.pointAt(o);if(c=e.x,l=e.y,u=t.x,d=t.y,h===0)f=$r(e,t,v.pointAt((a+o)/2)).bow,p=0;else if(v.apexT>a+.01&&v.apexT<o-.01){let n=$r(e,t,v.apex);f=n.bow,p=n.bowAlong}else f=$r(e,t,v.pointAt((a+o)/2)).bow,p=0;y=!0}}return y||({x:c,y:l,x2:u,y2:d}=yf(e,t,n,r,i,a,o,s),f=0,p=0),{x:c,y:l,x2:u,y2:d,bend:f,bendAlong:p,bow:g,bowAlong:_,elbowPoints:e.elbowPoints,elbowRoute:void 0,elbowMidHandle:void 0}}function Sf(e,t,n,r){if(e.type===`polygon`)return pf(e,t,n);if(e.type!==`arrow`||!e.startBinding&&!e.endBinding||n&&!vf(e,n))return e;let i=e.startBinding,a=e.endBinding,o=i?t.get(i.shapeId):void 0,s=a?t.get(a.shapeId):void 0;i&&!kl(i,o)&&(i=null),a&&!kl(a,s)&&(a=null);let c=o&&i?Xl(o,i,r):{x:e.x,y:e.y},l=s&&a?Xl(s,a,r):{x:e.x2,y:e.y2},u=(e.bendStyle===`elbow`?bf:xf)(e,o,i,s,a,c,l,r),{x:d,y:f,x2:p,y2:m,bend:h,bendAlong:g,bow:_,bowAlong:v}=u,y=u.elbowPoints,b=u.elbowRoute,x=u.elbowMidHandle,S=!gf(b,e.elbowRoute);S||(b=e.elbowRoute);let C=!gf(y,e.elbowPoints);C||(y=e.elbowPoints);let w=!Ef(x,e.elbowMidHandle);return w||(x=e.elbowMidHandle),d===e.x&&f===e.y&&p===e.x2&&m===e.y2&&h===e.bend&&g===e.bendAlong&&_===e.bow&&v===e.bowAlong&&!S&&!C&&!w&&i===e.startBinding&&a===e.endBinding?e:{...e,x:d,y:f,x2:p,y2:m,bend:h,bendAlong:g,bow:_,bowAlong:v,elbowPoints:y,elbowRoute:b,elbowMidHandle:x,startBinding:i,endBinding:a}}function Cf(e,t){let n=new Map(e.map(e=>[e.id,e])),r=!1,i=e.map(e=>{let i=Sf(e,n,null,t);return i!==e&&(r=!0),i});return r?i:e}function wf(e,t){return e.type===`arrow`?(e.startBinding!==null||e.endBinding!==null)&&vf(e,t):e.type===`polygon`&&e.band?t.has(e.id)||t.has(e.band.from)||t.has(e.band.to):!1}function Tf(e,t,n,r){let{position:i,dependents:a}=Sl(e),o=new Set,s=n=>{if(n===void 0||o.has(n))return;let i=e[n];wf(i,t)&&!r?.has(i.id)&&o.add(n)};for(let e of t){s(i.get(e));for(let t of a.get(e)??[])s(i.get(t))}let c=new Set;if(o.size===0)return{shapes:e,moved:c};let l=new Map;for(let t of o)for(let n of bl(e[t])){let t=i.get(n);t!==void 0&&l.set(n,e[t])}let u=null,d=[];for(let r of o){let i=e[r],a=Sf(i,l,t,n);a!==i&&(u??=e.slice(),u[r]=a,d.push(r),c.add(i.id))}return u?(Cl(e,u,d),{shapes:u,moved:c}):{shapes:e,moved:c}}function Ef(e,t){return e===t?!0:!e||!t?!1:e.axis===t.axis&&Math.abs(e.x-t.x)<=.01&&Math.abs(e.y-t.y)<=.01&&Math.abs(e.span-t.span)<=.01}function Df(e,t,n){let r=n?md(n):{width:0,height:0},i=e.x+e.width/2,a=e.y+e.height/2;if(t===`left`||t===`right`){let n=Math.min(e.height/2-6,Math.max(12,e.height/4,r.height/2+10)),i=Math.max(34,r.width/2+10),o=t===`right`?1:-1,s=t===`right`?e.x+e.width:e.x,c=s+o*i,l=c+o*(r.width/2+4),u=Math.max(n,r.height/2);return{route:[{x:s,y:a-n},{x:c,y:a-n},{x:c,y:a+n},{x:s,y:a+n}],footprint:{x:Math.min(s,l),y:a-u,width:Math.abs(l-s),height:u*2}}}let o=Math.min(e.width/2-6,Math.max(14,e.width/6,r.width/2+10+8)),s=Math.max(34,r.height/2+10),c=t===`bottom`?1:-1,l=t===`bottom`?e.y+e.height:e.y,u=l+c*s,d=u+c*(r.height/2+4),f=Math.max(o,r.width/2);return{route:[{x:i+o,y:l},{x:i+o,y:u},{x:i-o,y:u},{x:i-o,y:l}],footprint:{x:i-f,y:Math.min(l,d),width:f*2,height:Math.abs(d-l)}}}function Of(e,t){let n=Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x),r=Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y);return n>0&&r>0?n*r:0}function kf(e,t,n){let r=0;for(let n of t)r+=Of(e,Yt(n,6));for(let t of n)for(let n=0;n<t.length-1;n+=1)rn(t[n],t[n+1],e)&&(r+=4e3);return r}function Af(e){let t=null;for(let n of e.prefer){let r=Df(e.node,n,e.label),i=kf(r.footprint,e.obstacles,e.paths);if(i===0)return r.route;(!t||i<t.cost)&&(t={route:r.route,cost:i})}return t?t.route:Df(e.node,`right`,e.label).route}function jf(e,t){return t?e===`down`?[`bottom`,`top`,`right`,`left`]:[`top`,`bottom`,`right`,`left`]:e===`down`?[`right`,`left`,`bottom`,`top`]:[`top`,`bottom`,`right`,`left`]}function Mf(e){let t=e.elbowPoints??e.elbowRoute;return t&&t.length>=2?t:[{x:e.x,y:e.y},{x:e.x2,y:e.y2}]}function Nf(e,t,n,r,i,a=[]){if(e.length===0)return[];let o=_f(t).filter(e=>e.type===`arrow`).map(Mf),s=[];for(let t of e){let e=n.get(t.from),c=r.get(t.from);if(!e||!c)continue;let l=Af({node:e,label:t.label,prefer:jf(i,!!t.label),obstacles:[...[...n.values()].filter(t=>t!==e),...a],paths:[...o,...s.map(e=>e.elbowPoints??[])]}),u=t.head===`circle`?`circle`:t.head===`cross`?`cross`:void 0;s.push(Ad({from:e,to:e,fromShapeId:c,toShapeId:c,strokeWidth:ld,routed:{elbow:!0,bend:0,route:l},label:t.label,labelAlong:.5,square:!1,dashed:t.dashed,color:t.color?z[t.color]:void 0,flow:t.flow,endHead:u}))}return s}const Pf={left:20,right:20,top:20,bottom:20};function Ff(e,t){return{id:H(),type:`figure`,kind:`boundary`,x:t.x,y:t.y,width:t.width,height:t.height,rotation:0,label:e.label,fontSize:16,fontFamily:I,color:e.color?Q[e.color]:Y,fill:`transparent`,opacity:1}}function If(e,t){let n=e.fields.map(e=>{let t=e.type?`: ${e.type}`:``,n=e.key?` (${e.key})`:``;return`${e.name}${t}${n}`}),r=Vc(e.label,n,18);return{id:H(),type:`control`,kind:`entity`,x:0,y:0,width:r.width,height:r.height,rotation:0,label:e.label,body:n.join(`
20
+ `),fill:Q[e.color??dd[t%dd.length]],fontSize:18,fontFamily:I,color:Y,opacity:1}}function Lf(e,t){return`${e.visibility?va[e.visibility]:``}${t&&!e.name.includes(`(`)?`${e.name}()`:e.name}${e.type?`: ${e.type}`:``}`}function Rf(e){let t=e.fields.map(e=>Lf(e,!1)),n=(e.methods??[]).map(e=>Lf(e,!0)),r=n.length>0?[...t,`---`,...n]:t,i=Vc(e.label,r,18);return{id:H(),type:`control`,kind:`entity`,x:0,y:0,width:i.width,height:i.height,rotation:0,label:e.label,body:r.join(`
21
+ `),fontSize:18,fontFamily:I,color:Y,opacity:1}}const zf={one:`crowOnlyOne`,zeroOrOne:`crowZeroOrOne`,oneOrMany:`crowOneOrMany`,zeroOrMany:`crowZeroOrMany`};function Bf(e){switch(e){case`inheritance`:return{startArrow:!1,endArrow:!0,endHead:`triangleOutline`,dashed:!1};case`realization`:return{startArrow:!1,endArrow:!0,endHead:`triangleOutline`,dashed:!0};case`composition`:return{startArrow:!0,endArrow:!1,startHead:`diamond`,dashed:!1};case`aggregation`:return{startArrow:!0,endArrow:!1,startHead:`diamondOutline`,dashed:!1};case`dependency`:return{startArrow:!1,endArrow:!0,endHead:`arrow`,dashed:!0};case`association`:return{startArrow:!1,endArrow:!0,endHead:`arrow`,dashed:!1}}}function Vf(e){return e.relations.map(e=>e.kind===`inheritance`||e.kind===`realization`?{from:e.to,to:e.from}:{from:e.from,to:e.to})}function Hf(e){let t=new Map;for(let n of e){let e=n.relation.kind;if(e!==`inheritance`&&e!==`realization`||n.from.rank!==n.to.rank+1||n.from.y<n.to.y+n.to.height)continue;let r=`${n.to.id}\u0000${e}`;t.set(r,[...t.get(r)??[],n])}let n=new Map;for(let e of t.values()){if(e.length<2)continue;let t=e[0].to,r=t.y+t.height,i=(r+Math.min(...e.map(e=>e.from.y)))/2,a=t.x+t.width/2;for(let t of e){let e=t.from.x+t.from.width/2;n.set(t,Math.abs(e-a)<1?[{x:a,y:t.from.y},{x:a,y:r}]:[{x:e,y:t.from.y},{x:e,y:i},{x:a,y:i},{x:a,y:r}])}}return n}function Uf(e,t){if(e.y+e.height<=t.y)return{from:`bottom`,to:`top`};if(t.y+t.height<=e.y)return{from:`top`,to:`bottom`}}function Wf(e,t,n,r){if(e.length===0)return;let i=new Set(e.map(e=>e.id)),a=t.filter(e=>i.has(e.from)&&i.has(e.to)),o=ou(e.map(e=>e.id),a);for(let t of e)t.rank=o.get(t.id)??0;n&&Gf(e,a);let s=r===`down`;cu(su(e,a),r,()=>s?110:170,a,s?60:80)}function Gf(e,t){let n=new Map(e.map(e=>[e.id,new Set]));for(let e of t)e.from!==e.to&&(n.get(e.from)?.add(e.to),n.get(e.to)?.add(e.from));let r=new Map(e.map(e=>[e.id,e])),i=e=>{let t=n.get(e.id);if(!t||t.size!==1)return null;let i=r.get([...t][0]);return i&&i.rank===e.rank-1?i:null},a=t=>{let n=e.filter(e=>e.rank===t);return n.length===0?0:n.reduce((e,t)=>e+t.height,0)+(n.length-1)*80},o=new Map;for(let t of e)o.set(t.rank,(o.get(t.rank)??0)+1);if(Math.max(...o.values())<5)return;let s=new Set;for(let t=0;t<e.length;t+=1){let t=[...new Set(e.map(e=>e.rank))].reduce((e,t)=>a(t)>a(e)?t:e),n=a(t),r=e.find(e=>e.rank===t&&!s.has(e.id)&&i(e)!==null);if(!r)return;let o=t-2;if(a(o)+r.height+80>=n)return;r.rank=o,s.add(r.id);let c=Math.min(...e.map(e=>e.rank));if(c<0)for(let t of e)t.rank-=c}}function Kf(e,t,n){for(let r of e)r.x+=t,r.y+=n}const qf=e=>({x:Math.min(...e.map(e=>e.x)),y:Math.min(...e.map(e=>e.y)),right:Math.max(...e.map(e=>e.x+e.width)),bottom:Math.max(...e.map(e=>e.y+e.height))});function Jf(e){let t=e.variant===`class`,n=t?`down`:`right`,r=(t?Vf(e):e.relations).filter(e=>e.from!==e.to),i=new Map(e.entities.map((e,n)=>[e.id,t?Rf(e):If(e,n)])),a=new Map(e.entities.map(e=>{let t=i.get(e.id);return[e.id,{id:e.id,width:t.width,height:t.height,rank:0,x:0,y:0}]})),o=(e.groups??[]).filter(t=>e.entities.some(e=>e.group===t.id)),s=new Map(o.map(t=>[t.id,e.entities.filter(e=>e.group===t.id).map(e=>a.get(e.id))])),c=[],l=[];if(o.length===0)Wf([...a.values()],r,!t,n);else{let i=[];for(let e of o){let a=s.get(e.id);Wf(a,r,!t,n);let o=qf(a);Kf(a,-o.x,-o.y),i.push({id:e.id,width:o.right-o.x+56,height:o.bottom-o.y+56,rank:0,x:0,y:0})}let u=e.entities.filter(e=>!e.group).map(e=>a.get(e.id));i.push(...u);let d=t=>e.entities.find(e=>e.id===t)?.group??t;Wf(i,r.map(e=>({from:d(e.from),to:d(e.to)})).filter(e=>e.from!==e.to),!t,n);for(let e of o){let t=i.find(t=>t.id===e.id);Kf(s.get(e.id),t.x+28,t.y+28);let n=Ff(e,t);l.push({groupId:e.id,bounds:{x:n.x,y:n.y,width:n.width,height:n.height}}),c.push(n)}}for(let t of e.entities){let e=i.get(t.id),n=a.get(t.id);e.x=n.x,e.y=n.y,c.push(e)}let u=Sd(n),d=new Map(e.entities.map(e=>[e.id,e.group])),f=e=>()=>{let t=new Set([d.get(e.from),d.get(e.to)].filter(e=>e!==void 0)),n=[...a.values()].filter(t=>t.id!==e.from&&t.id!==e.to).map(e=>({x:e.x,y:e.y,width:e.width,height:e.height}));for(let e of l)t.has(e.groupId)||n.push({x:e.bounds.x,y:e.bounds.y,width:e.bounds.width,height:e.bounds.height});return n},p=[],m=[];for(let r of e.relations){if(r.from===r.to)continue;let e=a.get(r.from),i=a.get(r.to),o={relation:r,from:e,to:i,obstacles:f(r),rankSpan:Math.abs(e.rank-i.rank)};p.push(o),o.rankSpan<=1&&!t&&m.push({plan:o,prediction:bd(n,e,i,!1)})}ef(m,u,()=>!1);let h=t?Hf(p):new Map;for(let e of h.values())u.register(e);for(let e of p){let{relation:n,from:r,to:a,obstacles:o,rankSpan:s}=e,l=h.get(e),d=n.kind?Bf(n.kind):null,f=d?null:xa(n);c.push(Ad({from:r,to:a,fromShapeId:i.get(n.from).id,toShapeId:i.get(n.to).id,strokeWidth:ld,routed:l?{elbow:!0,bend:0,route:l}:u.route(r,a,s,{obstacles:o,fromSpread:Pf,toSpread:Pf,sides:t?Uf(r,a):void 0}),label:n.label,square:!1,dashed:d?d.dashed:n.identifying===!1||void 0,startArrow:d?d.startArrow:f!==null,endArrow:d?d.endArrow:void 0,startHead:d?d.startHead:f?zf[f.from]:void 0,endHead:d?d.endHead:f?zf[f.to]:void 0}))}let g=[...a.values()].map(e=>({x:e.x,y:e.y,width:e.width,height:e.height}));Qf(c,g);for(let t of e.relations)t.from===t.to&&c.push(Yf(t,a.get(t.from),i.get(t.from).id,c,g,n));return c}function Yf(e,t,n,r,i,a){let o=Af({node:t,label:e.label,prefer:jf(a,!!e.label),obstacles:i.filter(e=>e.x!==t.x||e.y!==t.y),paths:r.filter(e=>e.type===`arrow`).map(e=>Xf(e))}),s=e.kind?Bf(e.kind):null,c=s?null:xa(e);return Ad({from:t,to:t,fromShapeId:n,toShapeId:n,strokeWidth:ld,routed:{elbow:!0,bend:0,route:o},label:e.label,labelAlong:.5,square:!1,dashed:s?s.dashed:e.identifying===!1||void 0,startArrow:s?s.startArrow:c!==null,endArrow:s?s.endArrow:void 0,startHead:s?s.startHead:c?zf[c.from]:void 0,endHead:s?s.endHead:c?zf[c.to]:void 0})}function Xf(e){if(e.elbowPoints&&e.elbowPoints.length>=2)return e.elbowPoints;let t={x:e.x,y:e.y},n={x:e.x2,y:e.y2};if(e.bendStyle!==`elbow`||t.x===n.x||t.y===n.y)return[t,n];let r=(t.x+n.x)/2;return[t,{x:r,y:t.y},{x:r,y:n.y},n]}const Zf=[.1,.2,.3,.4,.5,.6,.7,.8,.9];function Qf(e,t){let n=e.filter(e=>e.type===`arrow`),r=new Map(n.map(e=>{let t=Xf(e),n=[];for(let e=0;e<t.length-1;e+=1){let r=t[e],i=t[e+1];n.push({x:Math.min(r.x,i.x)-$f,y:Math.min(r.y,i.y)-$f,width:Math.abs(r.x-i.x)+$f*2,height:Math.abs(r.y-i.y)+$f*2})}return[e.id,n]})),i=[];for(let e of n){if(!e.label)continue;let a=Xf(e),o=md(e.label),s=n.filter(t=>t.id!==e.id).flatMap(e=>r.get(e.id)??[]),c=wd(a,[...t,...s,...i],o,Zf)??.5;e.labelAlong=c;let l=Cd(a,c);i.push({x:l.x-o.width/2,y:l.y-o.height/2,width:o.width,height:o.height})}}const $f=4,ep={right:`RIGHT`,down:`DOWN`,left:`LEFT`,up:`UP`};async function tp(e,t,n,r,i,a){try{return await ap(e,t,n,r,i,a)}catch(a){return typeof console<`u`&&console.warn(`ELK layout failed; using fallback placement`,a),np(e,t,n,r,i)}}function np(e,t,n,r,i){let a=e.direction===`down`||e.direction===`up`?`down`:`right`,o=e.edges.filter(e=>e.from!==e.to&&t.has(e.from)&&t.has(e.to)).map(e=>e.back?{from:e.to,to:e.from}:{from:e.from,to:e.to}),s=ou([...t.keys()],o);for(let e of t.values())e.rank=s.get(e.id)??0;cu(su([...t.values()],o),a);let c=new Map;for(let e of t.keys()){let t=n(e);for(let n=0;t&&n<64;n+=1){let n=c.get(t);n?n.push(e):c.set(t,[e]),t=r(t)}}let l=e=>{let n=c.get(e);if(!n)return null;let r=1/0,a=1/0,o=-1/0,s=-1/0;for(let e of n){let n=t.get(e);r=Math.min(r,n.x),a=Math.min(a,n.y),o=Math.max(o,n.x+n.width),s=Math.max(s,n.y+n.height)}let l=i(e);return{x:r-l.side,y:a-l.top,width:o-r+l.side*2,height:s-a+l.top+l.bottom}},u=(e,t)=>{for(let n=e,i=0;n&&i<64;n=r(n),i+=1)if(n===t)return!0;for(let n=t,i=0;n&&i<64;n=r(n),i+=1)if(n===e)return!0;return!1},d=e.groups.map(e=>e.id).filter(e=>c.has(e));for(let e=0;e<16;e+=1){let e=!1;for(let n=0;n<d.length;n+=1)for(let r=n+1;r<d.length;r+=1){if(u(d[n],d[r]))continue;let i=l(d[n]),o=l(d[r]),s=Math.min(i.x+i.width,o.x+o.width)-Math.max(i.x,o.x),f=Math.min(i.y+i.height,o.y+o.height)-Math.max(i.y,o.y);if(s<=0||f<=0)continue;let p=a===`right`,m=(p?o.y>=i.y:o.x>=i.x)?d[r]:d[n],h=(p?f:s)+48;for(let e of c.get(m)){let n=t.get(e);p?n.y+=h:n.x+=h}e=!0}if(!e)break}let f=new Map;for(let t of e.groups){let e=l(t.id);e&&f.set(t.id,e)}return{groupBounds:f}}function rp(e,t,n){let r=new Set;for(let t of e.edges)r.add(t.from),r.add(t.to);let i=new Set;for(let a of e.groups){let o=e.nodes.filter(e=>t(e.id)===a.id),s=e.groups.some(e=>n(e.id)===a.id);o.length<2||s||o.every(e=>!r.has(e.id))&&i.add(a.id)}return i}function ip(e,t){let n=new Set,r=new Map,i=new Map;for(let t of e)r.set(t,[]),i.set(t,0);t.forEach((e,t)=>{r.get(e.src)?.push(t),i.set(e.dst,(i.get(e.dst)??0)+1)});let a=[],o=new Set;for(let e of t)o.has(e.src)||(o.add(e.src),a.push(e.src));let s=[...a.filter(e=>(i.get(e)??0)===0),...a],c=new Map,l=[],u=e=>{for(l.push({node:e,next:0}),c.set(e,`gray`);l.length>0;){let e=l[l.length-1],i=r.get(e.node)??[];if(e.next>=i.length){c.set(e.node,`black`),l.pop();continue}let a=i[e.next];e.next+=1;let o=t[a].dst,s=c.get(o);s===`gray`?n.add(a):s===void 0&&(c.set(o,`gray`),l.push({node:o,next:0}))}};for(let e of s)c.has(e)||u(e);return n}async function ap(e,t,n,r,i,a){let o=new Set(e.groups.map(e=>e.id)),s=new Map,c=e.direction!==`down`&&e.direction!==`up`,l=110;if(c)for(let t of e.edges)t.label&&!t.invisible&&(l=Math.max(l,pd(t.label,16)+72));let u=rp(e,n,r),d={id:`__root__`,children:[],edges:[],layoutOptions:{"elk.algorithm":`layered`,"elk.direction":ep[e.direction]??`RIGHT`,"elk.hierarchyHandling":`INCLUDE_CHILDREN`,"elk.layered.spacing.nodeNodeBetweenLayers":String(l),"elk.spacing.nodeNode":`48`,"elk.layered.spacing.edgeNodeBetweenLayers":`30`,"elk.spacing.edgeNode":`24`,"elk.spacing.edgeLabel":`10`,"elk.spacing.componentComponent":`60`,"elk.edgeRouting":`ORTHOGONAL`,"elk.layered.nodePlacement.strategy":`NETWORK_SIMPLEX`,"elk.layered.considerModelOrder.strategy":`NODES_AND_EDGES`,"elk.layered.cycleBreaking.strategy":`DEPTH_FIRST`}};s.set(`__root__`,d);let f=e=>{let t=i(e),n=`[top=${t.top},left=${t.side},bottom=${t.bottom},right=${t.side}]`;return u.has(e)?{id:e,children:[],edges:[],layoutOptions:{"elk.algorithm":`rectpacking`,"elk.aspectRatio":`1.6`,"elk.spacing.nodeNode":`48`,"elk.padding":n}}:{id:e,children:[],edges:[],layoutOptions:{"elk.spacing.nodeNode":`48`,"elk.layered.spacing.nodeNodeBetweenLayers":String(l),"elk.spacing.edgeNode":`24`,"elk.spacing.edgeEdge":`18`,"elk.layered.nodePlacement.strategy":`NETWORK_SIMPLEX`,"elk.padding":n,"elk.nodeSize.minimum":`(120, 60)`,"elk.nodeSize.constraints":`MINIMUM_SIZE`}}},p=new Map,m=(e,t=0)=>{let n=p.get(e);if(n)return n;let i=f(e);p.set(e,i);let a=t>32?null:r(e);return(a&&o.has(a)?m(a,t+1):d).children.push(i),s.set(e,i),i};for(let t of e.groups)m(t.id);let h=new Map,g=new Map;for(let t of e.edges){if(t.from===t.to)continue;let[e,n]=t.back?[t.to,t.from]:[t.from,t.to];h.set(e,(h.get(e)??0)+1),g.set(n,(g.get(n)??0)+1)}for(let r of e.nodes){let e=t.get(r.id);if(!e)continue;let i=n(r.id),a=i?p.get(i)??d:d,o={id:r.id,width:e.width,height:e.height};r.shape&&au.has(r.shape)&&(h.get(r.id)??0)===0&&(g.get(r.id)??0)>0&&(o.layoutOptions={"elk.layered.layering.layerConstraint":`LAST`}),a.children.push(o),s.set(r.id,o)}let _=e=>{let t=[],i=o.has(e)?r(e):n(e);for(;i&&o.has(i)&&!t.includes(i);)t.push(i),i=r(i);return t.push(`__root__`),t},v=(e,t)=>{let n=new Set([t,..._(t)]);for(let r of[e,..._(e)])if(n.has(r)){if(r===e||r===t)continue;return r}return`__root__`},y=[],b=new Set;e.edges.forEach((e,t)=>{if(e.from===e.to||!s.has(e.from)||!s.has(e.to)||b.has(gd(e.to,e.from)))return;b.add(gd(e.from,e.to));let[n,r]=e.back?[e.to,e.from]:[e.from,e.to];y.push({src:n,dst:r,from:e.from,to:e.to,index:t})});let x=ip(s.keys(),y);y.forEach((e,t)=>{let[n,r]=x.has(t)?[e.dst,e.src]:[e.src,e.dst];(s.get(v(e.from,e.to))??d).edges.push({id:`e${e.index}`,sources:[n],targets:[r]})});let S=await a.layout(d),C=new Map,w=(e,n,r)=>{for(let i of e.children??[]){let e=n+(i.x??0),a=r+(i.y??0);if(o.has(i.id))C.set(i.id,{x:e,y:a,width:i.width??0,height:i.height??0});else{let n=t.get(i.id);n&&(n.x=e,n.y=a)}w(i,e,a)}};return w(S,0,0),{groupBounds:C}}function op(e){let{axis:t,cells:n,groupBounds:r,floor:i,borderExtra:a,spans:o}=e;if(n.length<2)return;let s=t===`right`,c=e=>s?e.x:e.y,l=e=>s?e.width:e.height,u=n.map(e=>[c(e),c(e)+l(e)]).sort((e,t)=>e[0]-t[0]),d=[];for(let[e,t]of u){let n=d[d.length-1];n&&e<=n[1]+.5?n[1]=Math.max(n[1],t):d.push([e,t])}if(d.length<2)return;let f=[];for(let e of r)s?f.push({at:e.x,inward:1},{at:e.x+e.width,inward:-1}):f.push({at:e.y,inward:1},{at:e.y+e.height,inward:-1});let p=f.map(e=>e.at),m=[];for(let e=0;e<d.length-1;e+=1){let t=d[e][1],n=d[e+1][0],r=n-t;if(r<=1)continue;let s=i+p.filter(e=>e>t+1&&e<n-1).length*a;for(let e of o)e.lo<=t+1&&e.hi>=n-1&&(s=Math.max(s,e.need));s<r&&m.push({lo:t,hi:n,newWidth:s,kept:h(t,n)})}if(m.length===0)return;function h(e,t){let n=f.filter(n=>n.at>e+1&&n.at<t-1).map(n=>n.inward===1?[n.at,Math.min(t,n.at+a)]:[Math.max(e,n.at-a),n.at]).sort((e,t)=>e[0]-t[0]),r=[];for(let e of n){let t=r[r.length-1];t&&e[0]<=t[1]?t[1]=Math.max(t[1],e[1]):r.push([...e])}return r}let g=(e,t)=>{let n=e.kept.reduce((e,[t,n])=>e+(n-t),0),r=e.hi-e.lo-n,i=Math.max(0,e.newWidth-n),a=r>0?i/r:1,o=0,s=e.lo;for(let[n,r]of e.kept){if(t<=n)break;if(o+=n-s,t<=r)return o*(1-a);s=r}return o+=t-s,o*(1-a)},_=e=>{let t=0;for(let n of m){if(e>=n.hi){t+=n.hi-n.lo-n.newWidth;continue}e>n.lo&&(t+=g(n,e));break}return e-t};for(let e of n)s?e.x=_(e.x):e.y=_(e.y);for(let e of r){let t=_(s?e.x:e.y),n=_(s?e.x+e.width:e.y+e.height);s?(e.x=t,e.width=n-t):(e.y=t,e.height=n-t)}}function sp(e,t){let n=150;for(let t of e.nodes)n=Math.max(n,Math.min(V(t.label,20),210));let r=n+28,i=r+32,a=e=>{let t=e.split(/\s+/).filter(Boolean);if(t.length===0)return 1;let r=1,i=t[0];for(let e=1;e<t.length;e+=1){let a=`${i} ${t[e]}`;V(a,20)<=n?i=a:(r+=1,i=t[e])}return r},o=e=>Math.max(54,Math.ceil(a(e)*26)+28),s=new Set(e.groups.map(e=>e.id)),c=e.nodes.filter(e=>!e.group||!s.has(e.group)),l=e.groups.map(n=>({label:n.label,color:n.color,icon:t.get(n.id)??void 0,members:e.nodes.filter(e=>e.group===n.id)}));c.length>0&&l.push({label:``,color:void 0,icon:void 0,members:c});let u=[],d=0,f=0;for(let e of l){let t=22,n=e.members.map(e=>{let n=o(e.label),r=t;return t+=n+12,{node:e,top:r,height:n}}),a=(n.length>0?t-12:22)+18,s={id:H(),type:`figure`,kind:`simple`,x:d,y:0,width:i,height:a,rotation:0,label:e.label,titleIcon:e.icon,fontSize:16,fontFamily:I,color:cd,fill:e.color?mi[e.color]:ud[f%ud.length],opacity:1};f+=1,u.push(s);for(let e of n)u.push($({x:d+16,y:e.top,width:r,height:e.height},e.node.color?Q[e.node.color]:`#ffffff`,{kind:`rectangle`,label:e.node.label,fontSize:20,color:Y,labelColor:e.node.labelColor?z[e.node.labelColor]:void 0,fillStyle:e.node.fill??`pastel`,align:`left`,valign:`middle`,textPadding:14,strokeWidth:Z,link:e.node.link}));d+=i+36}return u}function cp(e,t){return e!=null&&!(`kind`in e)&&t.has(e.shapeId)}function lp(e,t,n){let r={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y)},i={x:Math.max(e.x,t.x),y:Math.max(e.y,t.y)};return r.x<n.x+n.width+8&&i.x>n.x-8&&r.y<n.y+n.height+8&&i.y>n.y-8}function up(e,t,n,r){let i=(e,t)=>Math.abs(e.y-t.y)<.5;if(!i(e,t)||!i(n,r)||Math.abs(e.y-n.y)>4)return!1;let[a,o]=[Math.min(e.x,t.x),Math.max(e.x,t.x)];return Math.max(n.x,r.x)>a&&Math.min(n.x,r.x)<o}function dp(e,t){let n=new Map(e.filter(e=>e.type===`icon`&&!!e.label).map(e=>[e.id,e]));if(n.size===0)return e;let r=e.filter(e=>e.type!==`arrow`&&!yt(e)),i=[...e];return i.forEach((e,a)=>{if(e.type!==`arrow`||!e.elbowPoints||e.elbowPoints.length<4)return;let o=e.elbowPoints;for(let a of[`start`,`end`]){let s=a===`start`?e.startBinding:e.endBinding;if(!cp(s,n))continue;let c=n.get(s.shapeId),l=Ji(c),u=Zi(c),d=a===`start`?o:[...o].reverse(),[f,p,m,h]=d,g=Math.abs(f.y-(l.y+l.height))<.5&&Math.abs(p.x-f.x)<.5&&p.y>f.y&&Math.abs(m.y-p.y)<.5&&Math.abs(h.x-m.x)<.5&&h.y<m.y,_=u.y+u.height+t+24;if(!g||p.y>=_)continue;let v=[{...p,y:_},{...m,y:_}],y=new Set([e.startBinding,e.endBinding].flatMap(e=>e&&!(`kind`in e)?[e.shapeId]:[])),b=r.filter(e=>!y.has(e.id)),x=[[p,v[0]],[v[0],v[1]],[v[1],m]];if(b.some(e=>x.some(([t,n])=>lp(t,n,Zi(e))))||i.some(t=>t.type===`arrow`&&t.id!==e.id&&(t.elbowPoints??[]).some((e,t,n)=>t>0&&up(v[0],v[1],n[t-1],e))))continue;let S=[f,...v,...d.slice(3)];o=a===`start`?S:S.reverse()}o!==e.elbowPoints&&(i[a]={...e,elbowPoints:o})}),i}function fp(e){let{axis:t,diagram:n,cells:r,groupBounds:i,topGroupOf:a,edgeNeed:o}=e,s=t===`right`,c=e=>s?e.x:e.y,l=e=>s?e.x+e.width:e.y+e.height,u=e=>s?e.y:e.x,d=e=>s?e.y+e.height:e.x+e.width,f=(e,t)=>{s?e.x+=t:e.y+=t},p=new Map,m=e=>a(e)??e,h=e=>{let t=p.get(e);return t||(t={key:e,cells:[],groups:[]},p.set(e,t)),t};for(let e of r.values())h(m(e.id)).cells.push(e);for(let[e,t]of i)h(m(e)).groups.push(t);if(p.size<2)return;let g=e=>{let t=[...e.cells,...e.groups],n=Math.min(...t.map(e=>e.x)),r=Math.min(...t.map(e=>e.y)),i=Math.max(...t.map(e=>e.x+e.width)),a=Math.max(...t.map(e=>e.y+e.height));return{x:n,y:r,width:i-n,height:a-r}},_=[];for(let e of n.edges){if(e.from===e.to||e.invisible)continue;let[t,n]=e.back?[e.to,e.from]:[e.from,e.to];if(!r.has(t)||!r.has(n))continue;let i=m(t),a=m(n);i!==a&&_.push({from:i,to:a,edge:{...e,from:t,to:n}})}let v=(e,t)=>_.filter(n=>n.from===e&&n.to===t||n.from===t&&n.to===e).length,y=[...p.values()].sort((e,t)=>c(g(e))-c(g(t))),b=[];for(let e of y){let t=g(e),n=-1/0;for(let r of b){let i=g(r);if(!(u(i)<d(t)+48&&d(i)>u(t)-48))continue;let a=Math.max(0,v(e.key,r.key)-1);n=Math.max(n,l(i)+48+a*28-c(t))}for(let t of _){if(t.to!==e.key||!b.some(e=>e.key===t.from))continue;let i=r.get(t.edge.from),a=r.get(t.edge.to),s=Math.max(0,v(e.key,t.from)-1);n=Math.max(n,l(i)+o(t.edge)+s*28-c(a))}let i=-1/0;for(let t of _){if(t.from!==e.key||!b.some(e=>e.key===t.to))continue;let n=r.get(t.edge.from),a=r.get(t.edge.to);c(a)<l(n)||(i=Math.max(i,c(a)-o(t.edge)-l(n)))}n=Math.max(n,i);let a=0;for(let t of _){if(t.from!==e.key||b.some(e=>e.key===t.to))continue;let n=r.get(t.edge.from),i=r.get(t.edge.to),s=Math.max(0,v(e.key,t.to)-1),u=o(t.edge)+s*28;a=Math.max(a,u-(c(i)-l(n)))}let s=Math.max(n,-a);if(Number.isFinite(s)&&s<-.5){for(let t of e.cells)f(t,s);for(let t of e.groups)f(t,s)}b.push(e)}}function pp(e){return e!=null&&!(`kind`in e)}const mp=e=>e===`left`||e===`right`;function hp(e){return Zi(e)}function gp(e,t){let n=t.x-e.x,r=t.y-e.y;return Math.abs(n)>.5&&Math.abs(r)>.5?null:Math.abs(n)>.5?n<0?`left`:`right`:Math.abs(r)>.5?r<0?`top`:`bottom`:null}function _p(e,t,n,r){if(e.length<3)return!1;let[,i,a]=t===`start`?e:[...e].reverse(),o=mp(n)?`y`:`x`,s=mp(n)?`x`:`y`;if(Math.abs(i[s]-a[s])>.5)return!1;let c=a[o]-i[o];return Math.sign(c)!==Math.sign(r)||Math.abs(r)<Math.abs(c)-1}function vp(e,t,n,r){let i=mp(n)?`y`:`x`,a=e.map(e=>({...e})),[o,s]=t===`start`?[0,1]:[a.length-1,a.length-2];return a[o][i]+=r,a[s][i]+=r,a}function yp(e,t,n,r,i){let a=hp(t),o=e.precise?{...e.anchor}:{x:r===`left`?0:r===`right`?1:(n.x-a.x)/(a.width||1),y:r===`top`?0:r===`bottom`?1:(n.y-a.y)/(a.height||1)};return mp(r)?o.y+=a.height>0?i/a.height:0:o.x+=a.width>0?i/a.width:0,{...e,anchor:o,precise:!0}}function bp(e,t){let n=Ji(e),[r,i]=mp(t)?[n.y,n.y+n.height]:[n.x,n.x+n.width];return[r+6,i-6]}function xp(e,t){let n=[];for(let r of e){if(r.type!==`arrow`)continue;let e=r.bendStyle!==`elbow`;if(e&&r.bend!==0)continue;let i=e?[{x:r.x,y:r.y},{x:r.x2,y:r.y2}]:Wr(r);if(i.length<2)continue;let a=t.get(r.id);for(let t of[`start`,`end`]){let o=t===`start`?r.startBinding:r.endBinding;if(!pp(o))continue;let s=t===`start`?i:[...i].reverse(),c=gp(s[0],s[1]);if(!c)continue;let l=mp(c)?`y`:`x`,u=Math.hypot(s[1].x-s[0].x,s[1].y-s[0].y),d=s.length>2?Math.sign(s[2][l]-s[1][l]):0,f=d>0?1e6-u:d<0?-1e6+u:0,p=a.elbowPoints;n.push({arrowId:r.id,which:t,nodeId:o.shapeId,side:c,along:s[0][l],order:f,movable:!e&&(!p||p.length>=3)})}}return n}function Sp(e){let t=new Map;for(let n of e){let e=`${n.nodeId}:${n.side}`;t.set(e,[...t.get(e)??[],n])}let n=[];for(let e of t.values()){if(e.length<2)continue;let t=[...e].sort((e,t)=>e.order-t.order||e.along-t.along);t.every((e,n)=>n===0||e.along-t[n-1].along>=15.5)||n.push(e)}return n}function Cp(e){let t=e;for(let e of[`start`,`end`]){let n=e===`start`?t:[...t].reverse();if(n.length<5)continue;let[r,i,a,o,s]=n;if(Ht(i,a)>=12||Ht(a,o)>=12)continue;let c=Math.abs(r.x-i.x)<.5,l=Math.abs(o.y-s.y)<.5,u=Math.abs(o.x-s.x)<.5;if(c?!l:!u)continue;let d=c?{x:r.x,y:o.y}:{x:o.x,y:r.y},f=Math.sign(c?i.y-r.y:i.x-r.x),p=c?d.y-r.y:d.x-r.x,m=Math.sign(c?o.x-s.x:o.y-s.y),h=Math.sign(c?d.x-s.x:d.y-s.y);if(Math.sign(p)!==f||Math.abs(p)<8||h!==m)continue;let g=[r,d,...n.slice(4)];t=e===`start`?g:g.reverse()}return t}function wp(e){let t=new Map(e.filter(e=>e.type===`arrow`).map(e=>[e.id,e]));if(t.size<2)return e;let n=new Map(e.map(e=>[e.id,e])),r=_f(e),i=new Map(r.map(e=>[e.id,e])),a=new Map,o=e.filter(e=>on(e,`connectorObstacle`)).map(e=>({id:e.id,bounds:Zi(e)})),s=(e,t)=>o.some(n=>n.id!==t.startBinding?.shapeId&&n.id!==t.endBinding?.shapeId&&e.some((t,r)=>r>0&&rn(e[r-1],t,n.bounds,-2)));for(let e of Sp(xp(r,t))){let r=n.get(e[0].nodeId);if(!r)continue;let o=e[0].side,c=[...e].sort((e,t)=>e.order-t.order||e.along-t.along),[l,u]=bp(r,o),d=c.length,f=Math.min(16,(u-l)/(d-1));if(f<8)continue;let p=c.findIndex(e=>!e.movable),m=p>=0?c[p].along-(p-(d-1)/2)*f:c.reduce((e,t)=>e+t.along,0)/d,h=Math.max(l,Math.min(m-(d-1)/2*f,u-(d-1)*f));c.forEach((e,n)=>{let c=h+n*f-e.along;if(Math.abs(c)<.5)return;let l=a.get(e.arrowId)??t.get(e.arrowId),u=i.get(e.arrowId),d=e.which===`start`?l.startBinding:l.endBinding;if(!pp(d))return;let p=l.elbowPoints;if(p&&!_p(p,e.which,o,c))return;let m=e.which===`start`?{x:u.x,y:u.y}:{x:u.x2,y:u.y2},g=yp(d,r,m,o,c),_=p?vp(p,e.which,o,c):void 0;if(_&&s(_,l))return;let v=e.which===`start`?{...l,startBinding:g,..._?{elbowPoints:_,x:_[0].x,y:_[0].y}:{}}:{...l,endBinding:g,..._?{elbowPoints:_,x2:_[_.length-1].x,y2:_[_.length-1].y}:{}};a.set(e.arrowId,v)})}return e.map(e=>{let t=a.get(e.id)??e;if(t.type!==`arrow`||!t.elbowPoints)return t;let n=Cp(t.elbowPoints);return n===t.elbowPoints?t:{...t,elbowPoints:n}})}function Tp(e,t,n){if(e===`down`)return()=>110;let r=new Map;for(let e of t){if(!e.label||e.invisible)continue;let t=n(e.from),i=n(e.to);if(t===void 0||i===void 0||t===i)continue;let a=Math.min(t,i),o=pd(e.label,16)+72;r.set(a,Math.max(r.get(a)??0,o))}return e=>Math.max(110,r.get(e)??0)}function Ep(e,t,n,r,i){let a=e.groups.map(e=>e.id),o=e.nodes.some(e=>!e.group||!a.includes(e.group)),s=e.groups.map(e=>e.label);o&&s.push(``);let c=e=>{let t=e.group?a.indexOf(e.group):-1;return t===-1?s.length-1:t},l=ou(e.nodes.map(e=>e.id),e.edges);for(let e of t.values())e.rank=l.get(e.id)??0;let u=su([...t.values()],e.edges),d=u.map(e=>e.length>0?Math.max(...e.map(e=>e.width)):0),f=new Map;for(let e of u)for(let t of e){let e=c(r.get(t.id)),n=`${e}:${t.rank}`,i=f.get(n);i?i.cells.push(t):f.set(n,{lane:e,rank:t.rank,cells:[t]})}let p=s.length,m=new Set(i.map(e=>e.from)),h=Array.from({length:p},()=>104);for(let{lane:e,cells:t}of f.values()){let n=t.reduce((e,t)=>e+t.height,0)+48*(t.length-1)+52+(t.some(e=>m.has(e.id))?88:0);h[e]=Math.max(h[e],n)}let g=e.edges.filter(e=>{let n=t.get(e.from)?.rank,r=t.get(e.to)?.rank;return n!==void 0&&r!==void 0&&r<n}).length,_=g>0?26+Math.min(g,3)*30:0,v=h.map((e,t)=>t===0?e+_:e),y=[],b=0;for(let e=0;e<p;e+=1)y[e]=b,b+=v[e];let x=b,S=Tp(`right`,e.edges,e=>t.get(e)?.rank),C=[],w=60,ee=110;d.forEach((e,t)=>{C[t]=w,ee=S(t),w+=e+(e>0?ee:0)});let T=w-ee+26;for(let{lane:e,rank:t,cells:n}of f.values()){let r=n.reduce((e,t)=>e+t.height,0)+48*(n.length-1),i=e===0?_:0,a=y[e]+i+(v[e]-i-r)/2;for(let e of n)e.x=C[t]+(d[t]-e.width)/2,e.y=a,a+=e.height+48}let te=[],E={id:H(),type:`figure`,kind:`lanes`,lanes:s,laneSizes:v,x:0,y:0,width:T,height:x,rotation:0,label:``,fontSize:16,fontFamily:I,color:Y,opacity:1};te.push(E);let ne=new Map;for(let r of e.nodes){let i=$d(r,n.get(r.id)??null,t.get(r.id),e.icons!==`badge`);ne.set(r.id,i.id),te.push(i)}let re=vd(e.edges),ie=Sd(`right`),ae=e=>()=>[...t.values()].filter(t=>t.id!==e.from&&t.id!==e.to).map(e=>({x:e.x,y:e.y,width:e.width,height:e.height})),oe=e=>lf(e,{groupsById:new Map,nodeById:r}),se=[],ce=[];for(let n of e.edges){let e=t.get(n.from),r=t.get(n.to),i=ne.get(n.from),a=ne.get(n.to);if(!e||!r||!i||!a)continue;let o=ae(n),s=re(n),c={edge:n,from:e,to:r,fromShapeId:i,toShapeId:a,obstacles:o,rankSpan:Math.abs(e.rank-r.rank),detour:s};se.push(c),c.rankSpan<=1&&!s&&ce.push({plan:c,prediction:bd(`right`,e,r)})}ef(ce,ie,()=>!1);let le={x:E.x,y:E.y,width:E.width,height:E.height},ue=y.slice(1).map(e=>({x:E.x,y:e-14/2,width:E.width,height:14}));te.push(...af(se,ie,`right`,oe,()=>[le],ue));let de=e=>({x:E.x,y:e-14/2,width:E.width,height:14});return te.push(...Nf(i,te,t,ne,`right`,[...ue,de(E.y),de(E.y+E.height)])),te}function Dp(e){let{axis:t,diagram:n,cells:r,blocks:i,groupsById:a,chains:o,nodeById:s,iconById:c,groupChainOf:l}=e,u=t===`right`,d=e=>u?e.x:e.y,f=e=>u?e.x+e.width:e.y+e.height,p=e=>u?e.y:e.x,m=e=>u?e.y+e.height:e.x+e.width,h=e=>u?e.height:e.width,g=e=>{if(u){let t=s.get(e.id);if(t&&Vd(t,c.get(e.id)??null))return 64/2}return h(e)/2},_=e=>p(e)+g(e),v=(e,t)=>{u?e.y+=t:e.x+=t},y=e=>{if(a.has(e)){let t=[e,...l(e)];return i.get(t[t.length-1])?.cell??null}let t=o.get(e)??[];return t.length===0?r.get(e)??null:i.get(t[t.length-1])?.cell??null},b=n.nodes.filter(e=>(o.get(e.id)??[]).length===0).map(e=>r.get(e.id)),x=[...r.values(),...[...i.values()].map(e=>e.cell)],S=new Map;for(let e of n.edges){if(e.from===e.to)continue;let[t,n]=e.back?[e.to,e.from]:[e.from,e.to],r=y(t),i=y(n);if(!r||!i||r===i||(o.get(n)??[]).length!==0||a.has(n)||d(r)>=d(i)-1)continue;let s=S.get(i.id)??new Set;s.add(r),S.set(i.id,s)}let C=(e,t,n)=>{let r=d(e),i=f(e),a=[];for(let t of x)t===e||n?.exclude?.has(t)||f(t)<=r-48||d(t)>=i+48||a.push([p(t)-h(e)-48,m(t)+48]);let o=e=>n?.clamp?Math.min(Math.max(e,n.clamp[0]),n.clamp[1]):e,s=p(e),c=e=>a.some(([t,n])=>e>t+.01&&e<n-.01),l=o(t);if(c(l)){let e=[s];for(let[t,n]of a)e.push(t,n);l=e.filter(e=>!c(e)&&o(e)===e).sort((e,n)=>Math.abs(e-t)-Math.abs(n-t))[0]}l!==void 0&&Math.abs(l-s)>.5&&v(e,l-s)};{let e=new Map;for(let t of n.edges){if(t.from===t.to)continue;let[n,i]=t.back?[t.to,t.from]:[t.from,t.to],a=o.get(i)??[],s=o.get(n)??[];if(a.length===0||s[0]!==a[0])continue;let c=r.get(n),l=r.get(i);if(!c||!l||d(c)>=d(l)-1)continue;let u=e.get(i)??new Set;u.add(c),e.set(i,u)}let t=(e,t)=>[...t].map(_).reduce((e,t)=>e+t,0)/t.size-g(e),s=[...e.keys()].map(e=>r.get(e)).sort((n,r)=>{let i=d(n)-d(r);return i===0?Math.abs(t(n,e.get(n.id))-p(n))-Math.abs(t(r,e.get(r.id))-p(r)):i});for(let n of s){let r=e.get(n.id),s=t(n,r);if(r.size>1&&Math.abs(s-p(n))>44)continue;let c=(o.get(n.id)??[])[0],l=a.get(c),d=i.get(c);if(!l||!d)continue;let f=Yd(l);C(n,s,{exclude:new Set((o.get(n.id)??[]).map(e=>i.get(e)?.cell).filter(e=>!!e)),clamp:[p(d.cell)+(u?f.top:f.side),m(d.cell)-(u?f.bottom:f.side)-h(n)]})}}for(let e of[...b].sort((e,t)=>d(e)-d(t))){let t=S.get(e.id);if(!t||t.size===0)continue;let n=[...t].map(_);C(e,n.reduce((e,t)=>e+t,0)/n.length-g(e))}for(let e of b){if(S.get(e.id)?.size)continue;let t=null;for(let i of n.edges){if(i.from===i.to)continue;let[n,a]=i.back?[i.to,i.from]:[i.from,i.to];if(n!==e.id)continue;let o=r.get(a);if(!o||Math.abs(o.rank-e.rank)>1)continue;let s=_(o)-_(e);Math.abs(s)>44||(t===null||Math.abs(s)<Math.abs(t-_(e)))&&(t=_(o))}t!==null&&C(e,t-g(e))}let w=new Set,ee=new Map;for(let e of n.edges){if(e.from===e.to||e.invisible)continue;let[t,n]=e.back?[e.to,e.from]:[e.from,e.to];w.add(n);let i=r.get(n);i&&ee.set(t,[...ee.get(t)??[],i])}for(let[e,t]of ee){let n=r.get(e);if(!n||w.has(e)||t.length<2)continue;let s=(o.get(e)??[])[0];if(!s||t.some(e=>e.rank!==n.rank+1||o.get(e.id)?.[0]!==s))continue;let c=t.map(_),l=(Math.min(...c)+Math.max(...c))/2-g(n),d=a.get(s),f=i.get(s);if(!d||!f)continue;let v=Yd(d);C(n,l,{exclude:new Set((o.get(e)??[]).map(e=>i.get(e)?.cell).filter(e=>!!e)),clamp:[p(f.cell)+(u?v.top:v.side),m(f.cell)-(u?v.bottom:v.side)-h(n)]})}}const Op=/^(logs?|metrics?|traces?|tracing|telemetry|events?|audit|monitor(ing)?|alerts?|spans?)$/i;function kp(e){let{axis:t,diagram:n,cells:r,blocks:i,groupsById:a,chains:o,groupChainOf:s}=e,c=t===`right`,l=e=>{if(a.has(e)){let t=s(e);return t.length>0?t[t.length-1]:e}let t=o.get(e)??[];return t.length>0?t[t.length-1]:null},u=e=>{let t=r.get(e);if(t)return{x:t.x,y:t.y,width:t.width,height:t.height};let n=i.get(e);return n?{x:n.cell.x,y:n.cell.y,width:n.cell.width,height:n.cell.height}:null},d=n.nodes.filter(e=>{if((o.get(e.id)??[]).length>0||e.shape&&au.has(e.shape))return!1;let t=n.edges.filter(t=>t.to===e.id&&t.from!==e.id);if(n.edges.filter(t=>t.from===e.id&&t.to!==e.id).length>0||t.length<2)return!1;let r=new Set(t.map(e=>l(e.from)).filter(Boolean)),i=t.filter(e=>!e.dashed&&e.label?.trim()&&!Op.test(e.label.trim()));return r.size>=2&&i.length*2<=t.length}),f=new Set(d.map(e=>e.id)),p=e=>c?e.x:e.y,m=e=>c?e.x+e.width:e.y+e.height,h=-1/0;for(let e of r.values())f.has(e.id)||(h=Math.max(h,m(e)));let g=(e,t)=>{let n=(t,n=0)=>e.x-24<t.x+t.width&&e.x+e.width+24>t.x&&e.y-24<t.y+t.height&&e.y+e.height+24>t.y-n;for(let e of r.values())if(e.id!==t&&n(e))return!0;for(let e of i.values())if(n(e.cell,32))return!0;return!1},_=d.filter(e=>p(r.get(e.id))>=h-1).sort((e,t)=>p(r.get(t.id))-p(r.get(e.id)));for(let e of _){let t=r.get(e.id),i=n.edges.filter(t=>t.to===e.id&&t.from!==e.id).map(e=>u(e.from)).filter(e=>!!e);if(i.length===0)continue;let a=i.reduce((e,t)=>e+t.x+t.width/2,0)/i.length,o=i.reduce((e,t)=>e+t.y+t.height/2,0)/i.length,s=null;for(let n=-480;n<=480;n+=40)for(let r=-480;r<=480;r+=40){let i=r*r+n*n;if(s&&i>=s.d)continue;let l=a-t.width/2+r,u=o-t.height/2+n;(c?l+t.width:u+t.height)-1>h||g({x:l,y:u,width:t.width,height:t.height},e.id)||(s={x:l,y:u,d:i})}s&&(t.x=s.x,t.y=s.y)}}function Ap(e){let{axis:t,diagram:n,groupsById:r,nodeById:i,router:a,detours:o,routeBoxOf:s,rankSpanOf:c,collectObstacles:l}=e,u=new Map,d=t===`right`,f=d?[`left`,`right`]:[`top`,`bottom`],p=e=>{if(r.has(e))return!0;let t=Qd[i.get(e)?.shape??`rectangle`];return!!t&&f.every(e=>t.includes(e))},m=e=>d?e.y+e.height/2:e.x+e.width/2,h=e=>d?e.height:e.width,g=(e,t)=>{let n=s(e.from),r=s(e.to);if(d){let e=n.x+n.width<=r.x;return!e&&r.x+r.width>n.x?null:[{x:e?n.x+n.width:n.x,y:n.y+n.height/2+t},{x:e?r.x:r.x+r.width,y:r.y+r.height/2+t}]}let i=n.y+n.height<=r.y;return!i&&r.y+r.height>n.y?null:[{x:n.x+n.width/2+t,y:i?n.y+n.height:n.y},{x:r.x+r.width/2+t,y:i?r.y:r.y+r.height}]},_=_d(n.edges);for(let e of n.edges){if(!o(e)||u.has(e)||e.from===e.to)continue;let t=_.get(gd(e.to,e.from));if(!t||u.has(t)||e.label||t.label||c(e)>1||!p(e.from)||!p(e.to))continue;let n=s(e.from),r=s(e.to);if(Math.abs(m(n)-m(r))>44||Math.min(h(n),h(r))<46)continue;let i=d?n.x<=r.x:n.y<=r.y,f=g(e,i?-14:14),v=g(t,i?14:-14);!f||!v||xd(f,l(e)())||xd(v,l(t)())||a.overlaps(f)||a.overlaps(v)||[...f,...v].some(e=>a.portTaken(e))||(u.set(e,f),u.set(t,v),a.register(f),a.register(v))}return u}const jp=2.2;function Mp(e){return Math.max(110,74+Math.max(0,e-1)*Pp)}function Np(e){let{diagram:t,cells:n,blocks:r,groupsById:i,topGroupOf:a}=e,o={crossing:new Set,rows:[]},s=new Map,c=e=>a(e)??e,l=(e,t,n)=>{let r=s.get(e);r?(r.lo=Math.min(r.lo,t.x),r.hi=Math.max(r.hi,t.x+t.width),r.crossLo=Math.min(r.crossLo,t.y),r.crossHi=Math.max(r.crossHi,t.y+t.height),r.ids.push(n)):s.set(e,{lo:t.x,hi:t.x+t.width,crossLo:t.y,crossHi:t.y+t.height,ids:[n]})};for(let e of n.values())l(c(e.id),e,e.id);for(let[e,t]of r)i.has(e)&&l(c(e),t.cell,e);let u=[...s.values()].sort((e,t)=>e.lo-t.lo);if(u.length<2)return o;let d=u[0].lo,f=Math.max(...u.map(e=>e.hi)),p=e=>Math.max(...e.map(e=>e.crossHi))-Math.min(...e.map(e=>e.crossLo)),m=f-d,h=p(u);if(m<1600||m/Math.max(h,1)<4)return o;let g=[],_=-1/0;for(let e=0;e<u.length-1;e+=1)_=Math.max(_,u[e].hi),u[e+1].lo>_&&g.push(e);if(g.length===0)return o;let v=new Map(u.map((e,t)=>[e,t])),y=e=>{let t=s.get(c(e));return t?v.get(t)??-1:-1},b=e=>{let t=n.get(e)??r.get(e)?.cell;return t?t.x+t.width/2:null},x=[];for(let e of t.edges){if(e.from===e.to||e.invisible)continue;let t=y(e.from),n=y(e.to),r=b(e.from),i=b(e.to);t<0||n<0||r===null||i===null||x.push({edge:e,a:t,b:n,ax:r,bx:i})}let S=u.length-1,C=e=>e.a===S&&e.b===0,w=e=>{let t=[-1,...e,u.length-1];return t.slice(1).map((e,n)=>[t[n]+1,e])},ee=([e,t])=>({lo:u[e].lo,hi:Math.max(...u.slice(e,t+1).map(e=>e.hi))}),T=(e,t)=>e.filter(e=>e<t).length,te=e=>{let t=w(e),n=t.slice(1).map(()=>[]);for(let t of x){let r=T(e,t.a),i=T(e,t.b);if(r!==i){if(Math.abs(r-i)>1){if(C(t))continue;return null}n[Math.min(r,i)].push(t)}}for(let t=0;t<n.length;t+=1)if(!n[t].some(n=>T(e,n.a)===t)||n[t].length>8)return null;let r=ee(t[0]),i=[0],a=[0],o=Math.max(...u.slice(t[0][0],t[0][1]+1).map(e=>e.crossHi));for(let s=1;s<t.length;s+=1){let[c,l]=t[s],d=ee(t[s]),f=n[s-1].map(t=>{let n=T(e,t.a)===s-1;return(n?t.ax:t.bx)+i[s-1]-(n?t.bx:t.ax)}).sort((e,t)=>e-t),p=f[Math.floor((f.length-1)/2)],m=r.lo-d.lo,h=r.hi-d.hi;i.push(m>h?h:Math.min(h,Math.max(m,p)));let g=u.slice(c,l+1),_=o+Mp(n[s-1].length)-Math.min(...g.map(e=>e.crossLo));a.push(_),o=Math.max(...g.map(e=>e.crossHi))+_}return{rows:t,shiftMain:i,shiftCross:a,lanes:n}},E=e=>{let t=w(e),n=t.map(e=>{let t=ee(e);return t.hi-t.lo});if(n.slice(1).some(e=>e>n[0]*1.05)||n.slice(1,-1).some(e=>e<n[0]*.7)||n[n.length-1]<n[0]*.4)return null;let r=Math.max(...n);if(r>m*.75)return null;let i=te(e);if(!i)return null;let a=0;for(let t of i.lanes){let r=t.reduce((t,n)=>{let r=n.ax+i.shiftMain[T(e,n.a)],a=n.bx+i.shiftMain[T(e,n.b)];return t+Math.abs(r-a)},0);if(r>2*n[0])return null;a+=r/n[0]}let o=t.reduce((e,[t,n])=>e+p(u.slice(t,n+1)),0)+i.lanes.reduce((e,t)=>e+Mp(t.length),0);return{placement:i,score:Math.abs(Math.log(r/o/jp))+a*.15}},ne=null,re=(e,t)=>{if(t.length>0){let e=E(t);e&&(!ne||e.score<ne.score)&&(ne=e)}if(t.length!==3)for(let n=e;n<g.length;n+=1)re(n+1,[...t,g[n]])};re(0,[]);let ie=ne;if(!ie||ie.score>=Math.abs(Math.log(m/h/jp)))return o;let{rows:ae,shiftMain:oe,shiftCross:se}=ie.placement,ce=[];ae.forEach(([e,t],i)=>{let a=u.slice(e,t+1);for(let e of a){for(let t of e.ids){let e=n.get(t)??r.get(t)?.cell;e&&(e.x+=oe[i],e.y+=se[i])}e.crossLo+=se[i],e.crossHi+=se[i]}ce.push({lo:Math.min(...a.map(e=>e.crossLo)),hi:Math.max(...a.map(e=>e.crossHi))})});let le=ae.slice(0,-1).map(([,e])=>e);return{crossing:new Set(x.filter(e=>T(le,e.a)!==T(le,e.b)).map(e=>e.edge)),rows:ce}}const Pp=14;function Fp(e){let t=e.length,n=(e,t)=>e>Math.min(t.upper,t.lower)&&e<Math.max(t.upper,t.lower),r=(t,r)=>+!!n(e[r].upper,e[t])+ +!!n(e[t].lower,e[r]),i=(1<<t)-1,a=Array(i+1).fill(1/0),o=Array(i+1).fill(-1);a[i]=0;for(let e=i-1;e>=0;--e)for(let n=0;n<t;n+=1){if(e&1<<n)continue;let i=0;for(let a=0;a<t;a+=1)!(e&1<<a)&&a!==n&&(i+=r(n,a));let s=i+a[e|1<<n];s<a[e]&&(a[e]=s,o[e]=n)}let s=[];for(let e=0;e!==i;e|=1<<o[e])s.push(o[e]);return s}function Ip(e){let{rows:t,edges:n,boxOf:r,obstaclesOf:i,clearOf:a,blocked:o,register:s,framesOf:c}=e,l=e=>e.some((t,n)=>n>0&&a.some(r=>rn(e[n-1],t,r,6))),u=new Map;if(t.length<2)return u;let d=e=>e.y+e.height/2,f=e=>t.findIndex(t=>d(e)>=t.lo&&d(e)<=t.hi),p=e=>e.x+e.width/2,m=[];for(let e of n){let t=r(e.from),n=r(e.to);if(!t||!n)continue;let i=f(t),a=f(n);if(i<0||a<0||Math.abs(i-a)!==1)continue;let o=a>i;m.push({edge:e,upperId:o?e.from:e.to,lowerId:o?e.to:e.from,upper:o?t:n,lower:o?n:t,down:o,gap:Math.max(i,a)})}let h=(e,t)=>{let n=new Map;for(let t of m){let r=e(t);n.set(r,[...n.get(r)??[],t])}let r=new Map;for(let e of n.values())e.sort((e,n)=>p(t(e))-p(t(n))),e.forEach((t,n)=>r.set(t,{index:n-(e.length-1)/2,count:e.length}));return r},g=h(e=>e.upperId,e=>e.lower),_=h(e=>e.lowerId,e=>e.upper),v=(e,t)=>p(e)+t.index*Math.max(18,Math.min(48,e.width/(t.count+1))),y=[];for(let e=1;e<t.length;e+=1){let n=m.filter(t=>t.gap===e).map(e=>({...e,upperX:v(e.upper,g.get(e)),lowerX:v(e.lower,_.get(e))}));if(n.length===0)continue;let r=t[e-1].hi,i=(r+Math.max(r,t[e].lo-26))/2,a=Fp(n.map(e=>({upper:e.upperX,lower:e.lowerX})));a.forEach((e,t)=>{y.push({...n[e],track:i+(t-(a.length-1)/2)*14})})}let b=(e,t)=>({x:e,y:t});for(let e of y){let{edge:t,upper:n,lower:r,upperX:a,lowerX:f,track:p}=e,m=[[b(a,n.y+n.height),b(a,p)]];for(let t of[!0,!1])for(let r of[n,...c(e.upperId)]){let e=t?r.x+r.width+24:r.x-24,i=t?n.x+n.width:n.x;m.push([b(i,d(n)),b(e,d(n)),b(e,p)])}let h=[[b(f,p),b(f,r.y)]];for(let t of[!1,!0])for(let n of[r,...c(e.lowerId)]){let e=t?n.x+n.width+24:n.x-24,i=t?r.x+r.width:r.x;h.push([b(e,p),b(e,d(r)),b(i,d(r))])}let g=i(t),_=null;for(let t of m){for(let n of h){let r=[...t,...n],i=e.down?r:r.reverse();if(!xd(i,g)&&!l(i)&&!o(i)){_=i;break}}if(_)break}_&&(s(_),u.set(t,_))}return u}function Lp(e,t){let n=ou(e.nodes.map(e=>e.id),e.edges.filter(e=>e.from!==e.to).map(e=>e.back?{from:e.to,to:e.from}:e)),r=e=>n.get(e)??0,i=new Set;for(let n of e.nodes){if(n.shape!==`cylinder`||(t.get(n.id)??[]).length>0)continue;let r=e.edges.filter(e=>e.from!==e.to&&(e.from===n.id||e.to===n.id)),a=new Set(r.filter(e=>e.to===n.id).map(e=>e.from));a.size===0||r.some(e=>e.from===n.id&&!a.has(e.to))||i.add(n.id)}let a=Math.max(...n.values()),o=new Set;for(let t of i){let n=[...new Set(e.edges.filter(e=>e.to===t).map(e=>e.from))];n.length>1&&new Set(n.map(r)).size===1||(n.some(t=>e.edges.some(e=>e.from===t&&!i.has(e.to)&&r(e.to)>r(t)))||r(t)<a)&&o.add(t)}return o}function Rp(e){let{diagram:t,stores:n,cells:r,blocks:i}=e,a=new Set,o=[...r.values(),...[...i.values()].map(e=>e.cell)],s=-1/0,c=[...n.entries()].map(([e,n])=>{let a=t.edges.filter(t=>t.from!==t.to&&(t.from===e||t.to===e)),o=[...new Set(a.map(t=>t.from===e?t.to:t.from))].map(e=>r.get(e)??i.get(e)?.cell).filter(e=>!!e);return{id:e,cell:n,edges:a,feeders:o,centres:o.map(e=>e.x+e.width/2)}}),l=e=>(Math.min(...e)+Math.max(...e))/2;c.sort((e,t)=>l(e.centres)-l(t.centres));for(let{id:e,cell:t,edges:n,feeders:i,centres:u}of c){if(u.length===0)continue;t.width=Math.max(t.width,(u.length-1)*Bp+Vp*2),t.x=Math.max(l(u)-t.width/2,s+40),s=t.x+t.width;let c=Math.max(...[-1,1].map(e=>u.filter(n=>e<0?n<t.x:n>t.x+t.width).length)),d=[...i,...o.filter(e=>zp(e,t))];t.y=Math.max(...d.map(e=>e.y+e.height))+110+c*Bp,r.set(e,t);for(let e of n)a.add(e)}return a}function zp(e,t){return e.x<t.x+t.width&&t.x<e.x+e.width}const Bp=22,Vp=20;function Hp(e){let{edges:t,boxOf:n,isStore:r,obstaclesOf:i,blocked:a,register:o}=e,s=new Map,c=e=>r(e.to)?e.to:e.from;for(let e of new Set([...t].map(c))){let r=n(e);if(!r)continue;let l=r.y,u=r.x+20,d=r.x+r.width-20,f=[],p=(e,t)=>{let n=e;for(;f.some(e=>Math.abs(e-n)<22);)n+=t*22;return n},m=[],h=[...t].filter(t=>c(t)===e).sort((e,t)=>(g(t)?.y??0)-(g(e)?.y??0));function g(t){return n(t.from===e?t.to:t.from)}for(let e of h){let t=g(e);if(!t)continue;let n=t.x+t.width/2,r=t.y+t.height*.75,o=[[{x:n,y:t.y+t.height},{x:n,y:l}]];for(let e of[1,-1]){let n=e>0?t.x+t.width:t.x,i=p(n+e*32,e);o.push([{x:n,y:r},{x:i,y:r},{x:i,y:l}])}let s=i(e),c=e=>e<u?u-e:e>d?e-d:0,h=e=>{let t=e[e.length-1].x;return Up(e)+(c(t)>0?c(t)+80:0)+(e.length>2?80:0)},_=o.filter(e=>!xd(e,s)&&!a(e)).sort((e,t)=>h(e)-h(t))[0]??null;_&&(f.push(_[_.length-1].x),m.push({edge:e,path:_,x:_[_.length-1].x}))}let _=new Map,v=r.x+r.width/2,y=m.filter(e=>Math.abs(e.x-v)<=22/2).sort((e,t)=>Math.abs(e.x-v)-Math.abs(t.x-v))[0];y&&_.set(y,y.path);let b=m.filter(e=>e!==y),x=[-1,1].map(e=>b.filter(t=>e<0?t.x<v:t.x>=v));[-1,1].forEach((e,t)=>{let n=(t,n)=>e*(t-n),i=x[t].sort((e,t)=>n(e.x,t.x)),a=y?y.x+e*22:x[1-t].length>0?v+e*22/2:v,o=e<0?r.x+20/2:r.x+r.width-20/2,s=[];i.forEach((t,r)=>{let c=i.length-1-r;if(t.x>=u&&t.x<=d&&n(t.x,a)>=0&&n(o,t.x+e*c*22)>=0){_.set(t,t.path),a=t.x+e*22;return}s.push({drop:t,at:a}),a+=e*22}),s.reverse().forEach(({drop:e,at:t},n)=>{let r=l-32-n*22;_.set(e,[...e.path.slice(0,-1),{x:e.x,y:r},{x:t,y:r},{x:t,y:l}])})});for(let[t,n]of _){let r=t.edge.to===e;xd(n,i(t.edge))||a(n)||(o(n),s.set(t.edge,r?n:[...n].reverse()))}}return s}function Up(e){let t=(e.length-2)*40;for(let n=1;n<e.length;n+=1)t+=Math.abs(e[n].x-e[n-1].x)+Math.abs(e[n].y-e[n-1].y);return t}function Wp(e){let t=[...e],n=0;for(;n<t.length;){let e=t[n],r=n+1;if(e.label){let i=t=>t.label===e.label&&(t.to===e.to||t.from===e.from)&&t.from!==t.to;for(;r<t.length&&i(t[r])&&Gp(t,n,r);)r+=1}if(r-n>1){let e=n+Math.floor((r-n-1)/2);for(let i=n;i<r;i+=1)i!==e&&(t[i]={...t[i],label:void 0})}n=r}return t}function Gp(e,t,n){let r=e.slice(t,n+1);return r.every(e=>e.to===r[0].to)||r.every(e=>e.from===r[0].from)}async function Kp(e,t){let n=Wp(e.edges).map(e=>e.label?{...e,label:fd(e.label)}:e),r=n.filter(e=>e.from===e.to),i={...e,edges:n.filter(e=>e.from!==e.to)},a=await Promise.all(i.nodes.map(e=>e.icon&&!Ud(e)?t.icons.resolveIcon(e.icon):Promise.resolve(null))),o=new Map(i.nodes.map((e,t)=>[e.id,a[t]])),s=await Promise.all(i.groups.map(e=>e.icon?t.icons.resolveIcon(e.icon):Promise.resolve(null))),c=new Map(i.groups.map((e,t)=>[e.id,s[t]])),l=new Map(i.nodes.map(e=>[e.id,e])),u=new Map(i.groups.map(e=>[e.id,e])),d=new Map(i.nodes.map(e=>[e.id,{id:e.id,group:e.group,...Jd(e,o.get(e.id)??null,i.icons!==`badge`),rank:0,x:0,y:0}])),f=i.nodes.filter(e=>e.shape===`circle`||e.shape===`double-circle`).map(e=>e.id);if(f.length>1){let e=Math.max(...f.map(e=>d.get(e).width));for(let t of f){let n=d.get(t);n.width=e,n.height=e}}for(let e of i.nodes){let t=d.get(e.id);t.flatInset=qd(e,t)}if(i.kanban&&i.groups.length>0)return sp(i,c);if(i.swimlanes&&i.groups.length>0)return Ep(i,d,o,l,r);let p=i.direction===`down`||i.direction===`up`?`down`:`right`,m=e=>{let t=u.get(e)?.parent;return t&&u.has(t)?t:null},h=e=>{let t=[],n=e.group&&u.has(e.group)?e.group:null;for(;n&&!t.includes(n);)t.push(n),n=m(n);return t},g=new Map(i.nodes.map(e=>[e.id,h(e)])),_=new Map,v=e=>{let t=[],n=m(e);for(;n&&!t.includes(n);)t.push(n),n=m(n);return t},y=e=>g.get(e)??(u.has(e)?v(e):[]),b=p===`right`?Lp(i,g):new Set,x=new Map([...b].map(e=>{let t=d.get(e);return d.delete(e),[e,t]})),S=x.size===0?i:{...i,nodes:i.nodes.filter(e=>!b.has(e.id)),edges:i.edges.filter(e=>!b.has(e.from)&&!b.has(e.to))},C=await tp(S,d,e=>g.get(e)?.[0]??null,m,e=>Yd(u.get(e)),t.elk),w=ou([...i.nodes.map(e=>e.id),...i.groups.map(e=>e.id)],i.edges.filter(e=>e.from!==e.to).map(e=>e.back?{from:e.to,to:e.from}:{from:e.from,to:e.to}));for(let e of d.values())e.rank=w.get(e.id)??0;{let e=e=>d.get(e)??C.groupBounds.get(e)??null,t=[];if(p===`right`)for(let n of i.edges){if(!n.label||n.invisible)continue;let r=w.get(n.from),i=w.get(n.to);if(r===void 0||i===void 0||Math.abs(r-i)>1)continue;let a=e(n.from),o=e(n.to);if(!a||!o)continue;let[s,c]=a.x+a.width<=o.x?[a,o]:[o,a];s.x+s.width>c.x||t.push({lo:s.x+s.width,hi:c.x,need:pd(n.label,16)+72})}op({axis:p,cells:[...d.values()],groupBounds:[...C.groupBounds.values()],floor:110,borderExtra:p===`right`?26:40,spans:t})}fp({axis:p,diagram:S,cells:d,groupBounds:C.groupBounds,topGroupOf:e=>{let t=u.has(e)?[e,...v(e)]:g.get(e)??[];return t.length>0?t[t.length-1]:null},edgeNeed:e=>Math.max(110,e.label&&p===`right`?pd(e.label,16)+72:0)});for(let e of i.groups){let t=C.groupBounds.get(e.id);t&&_.set(e.id,{group:e,cell:{id:`group:${e.id}`,rank:0,...t}})}Dp({axis:p,diagram:S,cells:d,blocks:_,groupsById:u,chains:g,nodeById:l,iconById:o,groupChainOf:v}),kp({axis:p,diagram:S,cells:d,blocks:_,groupsById:u,chains:g,groupChainOf:v}),Xp({axis:p,diagram:S,cells:d,blocks:_,chains:g,groupChainOf:v});let ee=Rp({diagram:i,stores:x,cells:d,blocks:_}),{crossing:T,rows:te}=p===`right`?Np({diagram:i,cells:d,blocks:_,groupsById:u,topGroupOf:e=>{let t=u.has(e)?[e,...v(e)]:g.get(e)??[];return t.length>0?t[t.length-1]:null}}):{crossing:new Set,rows:[]},E=[],ne=0,re=new Map,ie=e=>{for(let t of i.groups){if(m(t.id)!==e||!_.has(t.id))continue;let n=_.get(t.id),r={x:n.cell.x,y:n.cell.y,width:n.cell.width,height:n.cell.height},i=c.get(t.id)??void 0;if(t.frame){let e={id:H(),type:`figure`,kind:t.frame,...r,rotation:0,label:t.label,titleIcon:i,fontSize:16,fontFamily:I,color:Y,fill:`#ffffff`,opacity:1};re.set(t.id,e.id),E.push(e)}else{let e={id:H(),type:`figure`,kind:`simple`,...r,rotation:0,label:t.label,titleIcon:i,fontSize:16,fontFamily:I,color:cd,fill:t.color?mi[t.color]:ud[ne%ud.length],opacity:1};ne+=1,re.set(t.id,e.id),E.push(e)}ie(t.id)}};ie(null);let ae=new Map;for(let e of i.nodes){let t=$d(e,o.get(e.id)??null,d.get(e.id),i.icons!==`badge`);ae.set(e.id,t.id),E.push(t)}let oe={cells:d,blocks:_,groupsById:u,nodeById:l,containersOf:y},se=new Map,ce=e=>()=>{let t=of(e,oe);for(let n of new Set([...y(e.from),...y(e.to)])){let e=se.get(n);e&&t.push(e)}return t},le=e=>sf(e,oe),ue=e=>{let t=w.get(e.from),n=w.get(e.to);return t!==void 0&&n!==void 0?Math.abs(t-n):1},de=e=>{let t=d.get(e);if(!t)return _.get(e).cell;let n=l.get(e);return n&&Vd(n,o.get(e)??null)?Wd(t):t},fe=vd(i.edges),pe=Sd(p),me=e=>lf(e,{groupsById:u,nodeById:l}),he=[];for(let e of i.groups){let t=_.get(e.id);if(!t||!e.label||e.frame)continue;let n=c.get(e.id)?20:0,r={x:t.cell.x,y:t.cell.y-26,width:Math.min(V(e.label,16)+n+8,t.cell.width),height:26};he.push(r),se.set(e.id,r)}let ge=[..._.values()].map(e=>td(e.cell)),_e=Ap({axis:p,diagram:i,groupsById:u,nodeById:l,router:pe,detours:fe,routeBoxOf:de,rankSpanOf:ue,collectObstacles:ce}),ve=new Map([..._e,...Ip({rows:te,edges:i.edges.filter(e=>T.has(e)&&!e.invisible&&!_e.has(e)),boxOf:e=>d.get(e)??de(e),obstaclesOf:e=>ce(e)(),clearOf:he,blocked:e=>pe.overlaps(e)||Xu(e,ge,12)>24,register:e=>pe.register(e),framesOf:e=>y(e).flatMap(e=>{let t=_.get(e);return t?[t.cell]:[]})}),...Hp({edges:ee,boxOf:e=>d.get(e)??de(e),isStore:e=>b.has(e),obstaclesOf:e=>ce(e)(),blocked:e=>pe.overlaps(e),register:e=>pe.register(e)})]),ye=[],be=[];for(let e of i.edges){let t=ae.get(e.from)??re.get(e.from),n=ae.get(e.to)??re.get(e.to);if(!t||!n)continue;let r=de(e.from),i=de(e.to),a=ce(e),s=ve.get(e);if(s){ye.push({edge:e,fromShapeId:t,toShapeId:n,from:r,to:i,obstacles:a,rankSpan:1,detour:!1,lane:s});continue}let c=fe(e),u=e=>{let t=l.get(e);return!!t&&Vd(t,o.get(e)??null)},f={edge:e,fromShapeId:t,toShapeId:n,from:r,to:i,obstacles:a,stubExtra:u(e.from)||u(e.to)?qp:0,withinGroup:!!g.get(e.from)?.[0]&&g.get(e.from)?.[0]===g.get(e.to)?.[0],rankSpan:T.has(e)||ee.has(e)?Math.max(2,ue(e)):ue(e),detour:c};if(ye.push(f),f.rankSpan<=1&&!c){let t=bd(p,r,i),n=t.path.length>2?bd(p,d.get(e.from)??r,d.get(e.to)??i):null;be.push({plan:f,prediction:n&&n.path.length>2?n:t})}}ef(be,pe,e=>Xu(e,ge,12)>24),E.push(...af(ye,pe,p,me,le,he));let xe=wp(Yp(dp(E,qp)));return[...xe,...Nf(r,xe,d,ae,p)]}const qp=14;function Jp(e,t,n){let r=[{d:Math.abs(e.x-t.x),dx:-1,dy:0},{d:Math.abs(e.x-(t.x+t.width)),dx:1,dy:0},{d:Math.abs(e.y-t.y),dx:0,dy:-1},{d:Math.abs(e.y-(t.y+t.height)),dx:0,dy:1}].sort((e,t)=>e.d-t.d)[0];return{x:e.x+r.dx*n,y:e.y+r.dy*n}}function Yp(e){let t=new Map(e.filter(e=>e.type===`icon`).map(e=>[e.id,e]));if(t.size===0)return e;let n=(e,n,r)=>{let i=t.get(e),a=Zi(i),o=Ji(i),s=(r===null||Math.abs(r.x-n.x)<.5&&r.y>=a.y+a.height+14)&&Math.abs(n.y-(o.y+o.height))<.5&&a.y+a.height>o.y+o.height+.5?{x:n.x,y:a.y+a.height}:n,c=Math.abs(s.x-a.x)<.5||Math.abs(s.x-(a.x+a.width))<.5||Math.abs(s.y-a.y)<.5||Math.abs(s.y-(a.y+a.height))<.5?Jp(s,a,8):Jp(s,o,14);return{x:a.width>0?(c.x-a.x)/a.width:.5,y:a.height>0?(c.y-a.y)/a.height:.5}};return e.map(e=>{if(e.type!==`arrow`)return e;let r=e=>e!=null&&!(`kind`in e)&&e.precise&&t.has(e.shapeId),i=e.startBinding,a=e.endBinding;if(!r(i)&&!r(a))return e;let o=e.elbowPoints&&e.elbowPoints.length>=2?e.elbowPoints:null;return{...e,startBinding:r(i)?{...i,anchor:n(i.shapeId,{x:e.x,y:e.y},o?o[1]:null)}:i,endBinding:r(a)?{...a,anchor:n(a.shapeId,{x:e.x2,y:e.y2},o?o[o.length-2]:null)}:a}})}function Xp(e){let{axis:t,diagram:n,cells:r,blocks:i,chains:a,groupChainOf:o}=e,s=e=>o(e).length,c=[...n.groups].sort((e,t)=>s(t.id)-s(e.id)),[l,u]=t===`right`?[`y`,`height`]:[`x`,`width`];for(let e of c){let s=i.get(e.id)?.cell;if(!s)continue;let c=[...[...r.values()].filter(t=>a.get(t.id)?.includes(e.id)),...n.groups.filter(t=>o(t.id).includes(e.id)).flatMap(e=>i.get(e.id)?.cell??[])];if(c.length===0)continue;let d=Yd(e),[f,p]=t===`right`?[d.top,d.bottom]:[d.side,d.side],m=Math.max(s[l],Math.min(...c.map(e=>e[l]))-f),h=Math.min(s[l]+s[u],Math.max(...c.map(e=>e[l]+e[u]))+p);s[l]=m,s[u]=h-m}}function Zp(e,t,n,r,i,a=`center`){let o=Math.round(r*di),s=V(n,r)+16+12,c=o+12;return jd({x:a===`center`?e-s/2:a===`right`?e-s+6:e-6,y:t-c/2,width:s,height:c},n,r,{color:i,align:a,valign:`middle`})}const Qp=1180;function $p(e){return e===`done`?`gray`:e===`critical`?`red`:e===`milestone`?`violet`:e===`active`?`blue`:`teal`}function em(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return;let n=Date.UTC(Number(t[1]),Number(t[2])-1,Number(t[3]));return Number.isFinite(n)?Math.round(n/864e5):void 0}function tm(e){return!Number.isFinite(e)||Math.abs(e)>1e8?`d${e}`:new Date(e*864e5).toISOString().slice(0,10)}function nm(e){let t=(e%7+7+4)%7;return t===0||t===6}function rm(e){let t=e;for(;nm(t);)t+=1;return t}function im(e,t){if(t<=0)return e;let n=Math.floor(t/5),r=rm(e)+n*7,i=t-n*5;for(;i>0;)r+=1,nm(r)||--i;return r}function am(e,t=!1){let n=new Map,r=new Map,i=e.map(e=>em(e.start??``)).filter(e=>e!==void 0),a=i.length>0?Math.min(...i):0,o=a,s=[];for(let i of e){let e=em(i.start??``),c=i.after&&i.after.length>0?Math.max(...i.after.map(e=>n.get(e)??a)):void 0,l=e??c??o;t&&(l=rm(l));let u=typeof i.days==`number`&&Number.isFinite(i.days)?i.days:1,d=t?im(l,u):l+u;n.set(i.id,d),r.set(i.id,l),o=d,s.push({task:i,start:l,end:d})}for(let e of s){let t=e.task.until?r.get(e.task.until):void 0;t!==void 0&&t>e.start&&(e.end=t,n.set(e.task.id,t))}return s}function om(e){for(let t of[1,2,5,7,14,30,60,90,180,365])if(e/t<=7)return t;let t=Math.ceil(e/7);return Number.isFinite(t)&&t>0?t:365}function sm(e){let t=[];for(let{task:n}of e){let e=n.section??``;t.includes(e)||t.push(e)}return t.flatMap(t=>e.filter(({task:e})=>(e.section??``)===t))}const cm=[`blue`,`green`,`orange`,`violet`,`teal`,`pink`,`yellow`];function lm(e){let t=e.filter(({task:e})=>e.status!==`milestone`),n=t.filter(({task:e})=>e.status===`critical`||e.status===`active`),r=[...new Set(e.map(({task:e})=>e.section??``))],i=r.length>1&&n.length>t.length/2;return e=>!i||e.status===`done`||e.status===`milestone`?$p(e.status):cm[r.indexOf(e.section??``)%cm.length]}function um(e,t){return t%7==0?`Week ${e/7+1}`:t>=30?`Month ${Math.round(e/30)+1}`:`Day ${e+1}`}function dm(e){if(e.tasks.length===0)return[];let t=sm(am(e.tasks,e.skipWeekends)),n=lm(t),r=Math.min(...t.map(e=>e.start)),i=Math.max(...t.map(e=>e.end)),a=Math.max(1,i-r),o=e.tasks.every(e=>!e.start),s=e.tasks.map(e=>e.section).filter(e=>!!e),c=s.length>0?Math.max(...s.map(e=>V(e,13)+24)):0,l=zt(a*26,520,Qp),u=Math.max(l,...t.map(({task:e,start:t,end:n})=>e.status===`milestone`||n<=t?0:(V(e.label,15)+20)*a/(n-t))),d=u<=Qp,f=d?u:l,p=e=>c+(e-r)/a*f,m=[],h=[],g=[],_=om(a),v=34+t.length*40;if(e.skipWeekends&&f/a>=4)for(let e=r;e<=i;e+=1){if(!nm(e))continue;let t=e;for(;t+1<=i&&nm(t+1);)t+=1;let n=p(e);m.push($({x:n,y:26,width:Math.max(1,p(t+1)-n),height:v-34+8},X,{kind:`rectangle`,fillStyle:`bold`,strokeWidth:0,opacity:.14})),e=t}for(let e=r,t=0;e<=i&&t<64;e+=_,t+=1){let t=p(e);m.push(Md([{x:t,y:26},{x:t,y:v}],{color:X,strokeWidth:1,dash:`dotted`})),g.push(Zp(t,34/2,o?um(e-r,_):tm(e),13,X,`center`))}let y;return t.forEach((e,t)=>{let{task:r,start:i,end:a}=e,o=34+t*40+40/2,s=n(r);if(r.section&&r.section!==y&&(y=r.section,g.push(Zp(0,o,y,13,z.gray,`left`))),r.status===`milestone`||a<=i){let e=p(i),t=$({x:e-20/2,y:o-20/2,width:20,height:20},Q[s],{kind:`diamond`,fillStyle:`bold`,color:z[s],strokeWidth:Z});h.push(t),g.push(Zp(e+20/2+8,o,r.label,15,Y,`left`));return}let c=p(i),l=Math.max(6,p(a)-c);h.push($({x:c,y:o-26/2,width:l,height:26},Q[s],{kind:`rectangle`,fillStyle:r.status===`done`?`outline`:`pastel`,color:z[s],strokeWidth:Z,label:d?r.label:``,fontSize:15,labelColor:Y,align:`center`,valign:`middle`})),d||g.push(Zp(c+l+8,o,r.label,15,Y,`left`))}),m.push(Md([{x:c-8,y:26},{x:c+f+8,y:26}],{color:X,strokeWidth:ld})),[...m,...h,...g]}function fm(e){return{id:H(),type:`arrow`,bend:0,bendAlong:0,bendStyle:`curved`,dash:`solid`,startArrow:!1,endArrow:!1,opacity:1,...e}}function pm(e,t,n){return fm({x:e.x+e.width/2,y:e.y+e.height/2,x2:t.x+t.width/2,y2:t.y+t.height/2,startBinding:{shapeId:e.id,anchor:{x:.5,y:.5},precise:!1},endBinding:{shapeId:t.id,anchor:{x:.5,y:.5},precise:!1},...n})}function mm(e,t){return e.kind===`highlight`?`orange`:e.kind===`reverse`?`red`:t}function hm(e){return new Map(e.map((e,t)=>[e,dd[t%dd.length]]))}function gm(e,t,n){let r=Math.abs(t.y-e.y)>1;return fm({x:e.x+e.width/2,y:e.y+e.height/2,x2:t.x+t.width/2,y2:t.y+t.height/2,bendStyle:r?`elbow`:`curved`,elbowMid:r?.92:void 0,startBinding:{shapeId:e.id,anchor:{x:.5,y:.5},precise:!1},endBinding:{shapeId:t.id,anchor:{x:.5,y:.5},precise:!1},fontSize:14,fontFamily:e.fontFamily,color:X,strokeWidth:ld,dash:n?`dashed`:`solid`})}function _m(e){if(e.commits.length===0)return[];let t=hm(e.lanes),n=new Map(e.lanes.map((e,t)=>[e,26+t*82])),r=Math.max(...e.lanes.map(e=>V(e,15)+24)),i=r+28,a=[],o=[],s=[],c=new Map,l=new Map;e.commits.forEach((r,u)=>{let d=t.get(r.branch)??`blue`,f=n.get(r.branch)??26,p=i+u*116,m=mm(r,d),h=$({x:p,y:f-26/2,width:26,height:26},Q[m],{kind:`ellipse`,fillStyle:r.mergeFrom||r.cherryPick?`outline`:`bold`,color:z[m],strokeWidth:Z});o.push(h),c.set(r.id,h);let g=l.get(r.branch);if(g)a.push(gm(g,h,!1));else{let t=(r.branchFrom?l.get(r.branchFrom):void 0)??vm(e.commits,u,r.branch,l);t&&a.push(gm(t,h,!1))}if(l.set(r.branch,h),r.mergeFrom){let e=l.get(r.mergeFrom);e&&e!==h&&a.push(gm(e,h,!1))}if(r.cherryPick){let e=c.get(r.cherryPick);e&&e!==h&&a.push(gm(e,h,!0))}let _=r.label??r.id;s.push(Zp(p+26/2,f+26/2+16,_,14,Y)),r.tag&&s.push(Zp(p+26/2,f-26/2-15,r.tag,14,z.green))});let u=i+(e.commits.length-1)*116+26,d=[];for(let a of e.lanes){let e=n.get(a)??26,o=t.get(a)??`blue`;d.push(Md([{x:i-14,y:e},{x:u+14,y:e}],{color:X,strokeWidth:ld,dash:`dotted`})),d.push(Zp(r/2,e,a,15,z[o]))}return[...d,...a,...o,...s]}function vm(e,t,n,r){for(let i=t-1;i>=0;--i){let t=e[i];if(t.branch!==n){let e=r.get(t.branch);if(e)return e}}}function ym(e,t){let n=new Map(t.map(e=>[e,0]));for(let r=0;r<t.length;r+=1){let t=!1;for(let r of e){let e=(n.get(r.from)??0)+1;e>(n.get(r.to)??0)&&(n.set(r.to,e),t=!0)}if(!t)break}return n}function bm(e,t){let n=new Map,r=new Map;for(let t of e)r.set(t.from,(r.get(t.from)??0)+t.value),n.set(t.to,(n.get(t.to)??0)+t.value);return new Map(t.map(e=>[e,Math.max(n.get(e)??0,r.get(e)??0)]))}function xm(e,t,n){let r=e*t;return Number.isFinite(r)?Math.max(n,r):n}function Sm(e,t,n,r,i,a){let o={from:e.id,to:t.id,fromTop:n/e.height,fromSpan:i/e.height,toTop:r/t.height,toSpan:i/t.height};return{id:H(),type:`polygon`,points:ff(e,t,o),band:o,fill:Q[a],color:z[a],strokeWidth:0,opacity:.5}}const Cm=/\s*(?:[·•|:–—-]\s*|\(\s*)[\d.,]+\s*[kKmMbB%]?\s*\)?\s*$/;function wm(e){let t=e.replace(Cm,``).trim();return t.length>0?t:e.trim()}function Tm(e){let t=new Map;for(let n of e){let e=wm(n.from),r=wm(n.to);if(e===r)continue;let i=`${e}\u0000${r}`,a=t.get(i);t.set(i,a?{...a,value:a.value+n.value}:{...n,from:e,to:r})}return[...t.values()]}function Em(e){let t=e=>String(Number(e.toFixed(1)));return Math.abs(e)>=1e6?`${t(e/1e6)}M`:Math.abs(e)>=1e3?`${t(e/1e3)}k`:String(Number.isInteger(e)?e:Number(e.toFixed(2)))}function Dm(e){let t=Tm(e.flows);if(t.length===0)return[];let n=[];for(let e of t)for(let t of[e.from,e.to])n.includes(t)||n.push(t);let r=ym(t,n),i=bm(t,n),a=150/Math.max(...n.map(e=>i.get(e)??0),1),o=new Map,s=new Map;for(let e of n){let t=r.get(e)??0,n=s.get(t)??[];n.push(e),s.set(t,n)}for(let[e,t]of s){let n=0;for(let r of t){let t=xm(i.get(r)??0,a,14);o.set(r,{name:r,column:e,total:i.get(r)??0,height:t,x:e*260,y:n}),n+=t+26}}let c=Math.max(...[...s.values()].map(e=>e.reduce((e,t)=>e+(o.get(t)?.height??0)+26,-26)));for(let e of s.values()){let t=(c-e.reduce((e,t)=>e+(o.get(t)?.height??0)+26,-26))/2;for(let n of e){let e=o.get(n);e.y+=t}}let l=Math.max(...s.keys()),u=new Map,d=[];for(let[e,t]of n.entries()){let n=o.get(t),r=dd[e%dd.length],i=$({x:n.x,y:n.y,width:22,height:n.height},Q[r],{kind:`rectangle`,fillStyle:`bold`,color:z[r],strokeWidth:Z});u.set(t,i);let a=n.y+n.height/2,s=`${n.name} · ${Em(n.total)}`;n.column===0?d.push(Zp(n.x-14,a,s,15,Y,`right`)):n.column===l?d.push(Zp(n.x+22+14,a,s,15,Y,`left`)):d.push(Zp(n.x+22/2,n.y-14,s,15,Y,`center`))}let f=new Map,p=new Map,m=[];for(let e of t){let t=xm(e.value,a,2),r=f.get(e.from)??0,i=p.get(e.to)??0;f.set(e.from,r+t),p.set(e.to,i+t);let o=dd[n.indexOf(e.from)%dd.length],s=u.get(e.from),c=u.get(e.to);m.push(Sm(s,c,r,i,t,o))}return[...m,...u.values(),...d]}function Om(e,t){return e.color??dd[t%dd.length]}function km(e,t){return e.split(`
22
+ `).length*(t*1.4)+12}function Am(e,t,n,r,i,a=`center`){let o=n.split(`
23
+ `),s=Math.max(...o.map(e=>V(e,r)))+24,c=km(n,r);return jd({x:a===`center`?e-s/2:e,y:t,width:s,height:c},n,r,{color:i,align:a===`center`?`center`:`left`,valign:`top`})}function jm(e,t=18){return e.icon?li(t)+ui(t):0}async function Mm(e,t,n){if(t.icon){let r=await n.resolveIcon(t.icon);r&&(e.titleIcon={...r,placement:`inside`})}return e}function Nm(e,t=28){return e.length<=t?e:Ms(e,t).join(`
24
+ `)}function Pm(e){return e<=1?`red`:e<=2?`orange`:e<=3?`yellow`:e<=4?`teal`:`green`}const Fm=[`blue`,`pink`,`violet`,`gray`];function Im(e){return(e.detail??``).split(`,`).map(e=>e.trim()).filter(Boolean)}function Lm(e){let{min:t,max:n,default:r}=Ta,i=.42;return e<r?(e-r)/(r-t)*i:(e-r)/(n-r)*i}function Rm(e,t,n){let r=e.width/2,i=e.x+r,a=e.y+r,o=Lm(t)*r,s=Math.abs(o),c=r*.43,l=Math.max(1,r*.115),u=[-1,1].map(e=>$({x:i+e*r*.34-l,y:a-r*.26-l,width:l*2,height:l*2},Y,{kind:`ellipse`,fillStyle:`bold`,color:Y,strokeWidth:0})),d=a+(o<0?r*.1+s:r*.14);u.push(fm({x:i-c,y:d,x2:i+c,y2:d,bend:o<0?-s:s,startBinding:null,endBinding:null,fontSize:15,fontFamily:e.fontFamily,color:Y,strokeWidth:Math.max(1.5,r*.15)}));for(let e of u)e.groupId=n;return u}async function zm(e,t){let n=e.items,r=Math.max(150,...n.map(e=>V(e.label,18)+40+jm(e))),{min:i,max:a,default:o}=Ta,s=a-i||1,c=new Map;for(let e of n)for(let t of Im(e))c.has(t)||c.set(t,Fm[c.size%Fm.length]);let l=[...c.keys()];(l.length>6||l.some(e=>e.split(/\s+/).length>3))&&c.clear();let u=e=>V(e,15)+16+12,d=c.size>0?c.size*27+16:0,f=d+38+20,p=f+52+46,m=[],h=[],g=[],_=[],v=[],y=[],b=(e,t,n,r)=>$({x:e,y:t,width:n,height:n},Q[r],{kind:`ellipse`,fillStyle:`bold`,color:z[r],strokeWidth:Z}),x=0;for(let[e,t]of c){let n=x*27+27/2;m.push(b(0,n-13/2,13,t)),m.push(jd({x:17,y:n-31/2,width:u(e),height:31},e,15,{color:X,align:`left`,valign:`middle`})),x+=1}for(let e=0;e<n.length;e+=1){let a=n[e],l=a.score??o,u=a.color??Pm(l),d=e*(r+26),m=$({x:d,y:f,width:r,height:52},Q[u],{label:a.label,fontSize:18,color:Y,strokeWidth:Z});h.push(await Mm(m,a,t)),Im(a).forEach((e,t)=>{let n=c.get(e);n&&g.push(b(d+10+t*17,f-13/2,13,n))});let x=p+(1-(l-i)/s)*132,S=b(d+r/2-26/2,x,26,u),C=H();S.groupId=C,_.push(S),y.push(...Rm(S,l,C)),v.push(fm({x:m.x+m.width/2,y:m.y+m.height,x2:S.x+S.width/2,y2:S.y,startBinding:{shapeId:m.id,anchor:{x:.5,y:1},precise:!0},endBinding:{shapeId:S.id,anchor:{x:.5,y:.5},precise:!1},fontSize:15,fontFamily:m.fontFamily,color:X,strokeWidth:Z,dash:`dashed`}))}for(let e=1;e<_.length;e+=1){let t=_[e-1],n=_[e];m.push(pm(t,n,{fontSize:15,fontFamily:t.fontFamily,color:X,strokeWidth:ld}))}let S=0;for(let e=0;e<=n.length;e+=1){let t=n[e]?.group,i=n[S]?.group;if(!(e<n.length&&t===i)){if(i){let t=S*(r+26),n=(e-1)*(r+26)+r;m.push($({x:t,y:d,width:n-t,height:38},Q.gray,{label:i,fontSize:15,color:Y,strokeWidth:Z}))}S=e}}return m.push(...v,...h,..._,...y,...g),m}function Bm(e){let t=e.items,n=[],r=e=>e.events&&e.events.length>0?e.events:e.detail?[e.detail]:[],i=[];t.forEach((e,t)=>{let n=i[i.length-1];if(e.group&&n?.group===e.group){n.end=t;return}i.push({start:t,end:t,group:e.group,color:dd[i.length%dd.length]})});let a=new Map;for(let e of i)for(let t=e.start;t<=e.end;t+=1)a.set(t,e);let o=Math.max(190,...t.map(e=>Math.max(V(e.label,18),...r(e).map(e=>pd(Nm(e),15)))+44)),s=0+o*(t.length-1);n.push(Md([{x:0-o*.4,y:0},{x:s+o*.55,y:0}],{color:Y,strokeWidth:ld,endArrow:!0}));let c=1/0;t.forEach((e,t)=>{let i=e.color??a.get(t).color,s=0+o*t;n.push($({x:s-22/2,y:0-22/2,width:22,height:22},Q[i],{kind:`ellipse`,fillStyle:`bold`,color:z[i],strokeWidth:Z}));let l=t%2==0,u=l?-34-18*1.4-12:34;if(n.push(Am(s,u,e.label,18,z[i])),l&&(c=Math.min(c,u)),l){let t=u;for(let i of[...r(e)].reverse()){let e=Nm(i);t=t-km(e,15)-2,n.push(Am(s,t,e,15,X)),c=Math.min(c,t)}}else{let t=u+km(e.label,18);for(let i of r(e)){let e=Nm(i);t+=2,n.push(Am(s,t,e,15,X)),t+=km(e,15)}}});let l=i.filter(e=>e.group!==void 0);if(l.length>0){let e=l.map(e=>Nm(e.group)),t=Math.max(...e.map(e=>km(e,15))),r=c-22,i=r-4-t;l.forEach((t,a)=>{let s=0+o*t.start,c=0+o*t.end;n.push(Am((s+c)/2,i,e[a],15,z[t.color])),n.push(Md([{x:s-22,y:r},{x:c+22,y:r}],{color:z[t.color],strokeWidth:ld*.7}))})}return n}async function Vm(e,t){let n=e.items,r=[],i=n.map(e=>({width:Math.min(Math.max(130,V(e.label,18)+44+jm(e)),230),height:56})),a=Math.max(150,n.length*44);for(let e=0;e<n.length;e+=1){let o=n[e],s=Om(o,e),c=-Math.PI/2+e*2*Math.PI/n.length,l=Math.cos(c)*a,u=Math.sin(c)*a,d=$({x:l-i[e].width/2,y:u-i[e].height/2,width:i[e].width,height:i[e].height},Q[s],{label:o.label,fontSize:18,color:Y,strokeWidth:Z});r.push(await Mm(d,o,t))}let o=[];for(let e=0;e<r.length&&r.length>1;e+=1){let t=r[e],i=r[(e+1)%r.length],a=Om(n[e],e);o.push(pm(t,i,{fontSize:16,fontFamily:t.fontFamily,color:z[a],strokeWidth:ld,endArrow:!0}))}return n.forEach((e,t)=>{if(!e.detail)return;let i=-Math.PI/2+t*2*Math.PI/n.length,a=Math.cos(i),s=Math.sin(i),c=r[t],l=Nm(e.detail),u=Math.max(...l.split(`
25
+ `).map(e=>V(e,15)))+24,d=c.x+c.width/2,f=c.y+c.height/2,p=d+a*(c.width/2+28+u/2),m=f+s*(c.height/2+30+15);o.push(Am(p,m-15,l,15,X))}),o.push(...r),o}async function Hm(e,t){let n=e.items,r=Math.max(170,...n.map(e=>V(e.label,18)+48+jm(e))),i=[];for(let a=0;a<n.length;a+=1){let o=n[a],s=n.length>1?a/(n.length-1):0,c=e.variant===`funnel`?1-s:s,l=r+(380-r)*c,u=Om(o,a),d=a*72,f=$({x:-l/2,y:d,width:l,height:60},Q[u],{label:o.label,fontSize:18,color:Y,strokeWidth:Z});i.push(await Mm(f,o,t)),o.detail&&i.push(Am(226,d+60/2-15,Nm(o.detail,34),15,X,`left`))}return i}function Um(e){let t=e.items.slice(0,3),n=t.length>=3?[{x:0,y:0},{x:175,y:0},{x:175/2,y:175*.87}]:[{x:0,y:0},{x:175,y:0}],r=[],i=new Map;t.forEach((e,a)=>{let o=Om(e,a),s=n[a]??n[n.length-1];i.set(e.id,s),r.push($({x:s.x-150,y:s.y-150,width:300,height:300},Q[o],{kind:`ellipse`,color:z[o],strokeWidth:Z,opacity:.65}));let c=t.length>=3&&a===2,l=c?s.y+150+14:s.y-150-14-18*1.4-12;if(r.push(Am(s.x,l,e.label,18,z[o])),e.detail){let t=c?l+18*1.4+14:l-15*1.4-14;r.push(Am(s.x,t,Nm(e.detail),15,X))}});let a={x:0,y:0};for(let e of n.slice(0,t.length))a.x+=e.x/t.length,a.y+=e.y/t.length;for(let n of e.overlaps??[]){let e=n.ids.map(e=>i.get(e)).filter(e=>e!==void 0);if(e.length<2)continue;let o=e.reduce((e,t)=>e+t.x,0)/e.length,s=e.reduce((e,t)=>e+t.y,0)/e.length;if(t.length>=3&&e.length===2){let e={x:o-a.x,y:s-a.y},t=Math.hypot(e.x,e.y)||1;o+=e.x/t*46,s+=e.y/t*46}r.push(Am(o,s-15,Nm(n.label,16),15,Y))}return r}function Wm(e){let t=e.split(`
26
+ `).map(e=>e.replace(/^[-•*]\s*/,``).trim()).filter(Boolean);return t.length>1?xi(t):Nm(e,36)}async function Gm(e,t){let n=e.items.slice(0,4),r=Dt[1],i=[];for(let e=0;e<n.length;e+=1){let a=n[e],o=Om(a,e),s=e%2,c=Math.floor(e/2),l=s*338,u=c*228,d=$({x:l,y:u,width:320,height:210},Q[o],{label:a.label,fontSize:18,color:z[o],strokeWidth:Z,valign:`top`,textPadding:r});if(i.push(await Mm(d,a,t)),a.detail){let e=u+54+(r-6);i.push(jd({x:l+18,y:e,width:284,height:194-(e-u)},Wm(a.detail),15,{color:Y,align:`left`,valign:`top`}))}}let a=e.axes;if(a?.x&&(i.push(Am(320/2,454,a.x[0],15,X)),i.push(Am(498,454,a.x[1],15,X))),a?.y){let e=V(a.y[0],15)+24,t=V(a.y[1],15)+24;i.push(Am(-e-12,318,a.y[0],15,X,`left`)),i.push(Am(-t-12,210/2-15,a.y[1],15,X,`left`))}return i}async function Km(e,t){if(e.items.length===0)return[];switch(e.variant){case`journey`:return zm(e,t.icons);case`cycle`:return Vm(e,t.icons);case`funnel`:case`pyramid`:return Hm(e,t.icons);case`venn`:return Um(e);case`matrix`:return Gm(e,t.icons);default:return Bm(e)}}function qm(e,t){return e+(26-t)/2}function Jm(e){return/^[<>.-]+$/.test(e)}function Ym(e){return Math.min(V(e,14)+16,320)}function Xm(e,t,n){return $({x:e.x,y:e.y,width:n,height:32},`transparent`,{label:t,fontSize:14,align:`left`,valign:`middle`,labelColor:X,color:Y,dash:`none`})}async function Zm(e,t,n,r){let i=e.toLowerCase();if(Jm(i)){let e=qm(t,18);return{id:H(),type:`line`,points:[{x:e,y:n},{x:e+18,y:n}],color:Y,strokeWidth:2,dash:i.includes(`..`)||i.includes(`--`)?`dashed`:`solid`,startArrow:!1,endArrow:i.includes(`>`)||i.includes(`<`),opacity:1}}if(ca[i])return $({x:qm(t,20),y:n-20/2,width:20,height:20},Q[ca[i]],{fontSize:14,color:Y,fillStyle:`bold`});if(la[i]&&la[i]!==`sticky`)return $({x:qm(t,26),y:n-20/2,width:26,height:20},`transparent`,{kind:Xd[la[i]]??`rectangle`,fontSize:14,color:Y});let a=await r.resolveIcon(da(i));return a?{id:H(),type:`icon`,x:qm(t,20),y:n-20/2,width:20,height:20,rotation:0,source:a.source,name:a.name,label:``,fontSize:14,fontFamily:I,color:Y,strokeWidth:2,opacity:1}:$({x:qm(t,20),y:n-20/2,width:20,height:20},`#f1f3f5`,{fontSize:14,color:cd})}function Qm(e,t,n){return $({x:e.x,y:e.y,width:t,height:n},`transparent`,{fontSize:14,color:cd})}async function $m(e,t,n){let r=Math.max(...e.map(e=>Ym(e.label)),60),i=[Qm(t,66+r,28+e.length*32)];for(let[a,o]of e.entries()){let e=t.y+14+a*32,s=t.x+14;i.push(await Zm(o.swatch.trim(),s,e+32/2,n)),i.push(Xm({x:s+38,y:e},o.label,r))}return i}async function eh(e,t,n){let r=e.map(e=>Ym(e.label)),i=t.y+14,a=i+32/2,o=[Qm(t,th(e),60)],s=t.x+14;for(let[t,c]of e.entries())o.push(await Zm(c.swatch.trim(),s,a,n)),o.push(Xm({x:s+26+12,y:i},c.label,r[t])),s+=38+r[t]+16;return o}function th(e){return 28+e.reduce((e,t)=>e+26+12+Ym(t.label),0)+16*Math.max(0,e.length-1)}async function nh(e,t,n,r){return e.length===0?[]:e.length>=2&&th(e)<=n?eh(e,t,r.icons):$m(e,t,r.icons)}const rh={font:24,height:66,minW:150,maxW:300,padX:26},ih={font:20,height:50,minW:120,maxW:250,padX:24},ah={font:16,height:40,minW:96,maxW:230,padX:20};function oh(e,t,n=!1){let r=n?li(t.font)+ui(t.font):0,i=V(e,t.font)+t.padX*2+r;return Math.round(Math.max(t.minW,Math.min(t.maxW,i)))}function sh(e,t,n,r,i){return $(t,r,{label:e,fontSize:n,color:Y,fillStyle:i,strokeWidth:Z})}function ch(e,t,n,r){return pm(e,t,{fontSize:16,fontFamily:I,color:n,strokeWidth:r})}function lh(e,t){return e.length===0?0:e.reduce((e,t)=>e+t.blockHeight,0)+(e.length-1)*t}async function uh(e,t,n){let r=sh(e.label,{x:0,y:0,width:oh(e.label,ah,!!e.icon),height:ah.height},ah.font,`#ffffff`,`outline`);if(r.color=z[t],e.icon){let t=await n.resolveIcon(e.icon);t&&(r.titleIcon={...t,placement:`inside`})}let i=await Promise.all((e.children??[]).map(e=>uh(e,t,n)));return{box:r,children:i,blockHeight:Math.max(ah.height,lh(i,16))}}async function dh(e,t,n){let r=e.color??dd[t%dd.length],i=Q[r],a=sh(e.label,{x:0,y:0,width:oh(e.label,ih,!!e.icon),height:ih.height},ih.font,i,`pastel`);if(e.icon){let t=await n.resolveIcon(e.icon);t&&(a.titleIcon={...t,placement:`inside`})}let o=await Promise.all((e.children??[]).map(e=>uh(e,r,n)));return{color:r,box:a,children:o,blockHeight:Math.max(ih.height,lh(o,16))}}function fh(e,t,n,r,i,a,o){let s=t===1?n.x+n.width:n.x;e.box.x=t===1?s+90:s-90-e.box.width,e.box.y=r+(e.blockHeight-e.box.height)/2,o.push(ch(n,e.box,i,a));let c=r+(e.blockHeight-lh(e.children,16))/2;for(let n of e.children)fh(n,t,e.box,c,i,a,o),c+=n.blockHeight+16;o.push(e.box)}function ph(e,t,n,r){if(e.length===0)return;let i=lh(e,34),a=n.y+n.height/2-i/2;for(let i of e)fh(i,t,n,a,z[i.color],ld,r),a+=i.blockHeight+34}async function mh(e,t){let n=await Promise.all(e.branches.map((e,n)=>dh(e,n,t.icons))),r=sh(e.central||e.title||`Topic`,{x:0,y:0,width:oh(e.central||e.title||`Topic`,rh),height:rh.height},rh.font,Q.blue,`bold`);r.x=-r.width/2,r.y=-r.height/2;let i=[],a=[],o=0,s=0;for(let e of n)o<=s?(i.push(e),o+=e.blockHeight+34):(a.push(e),s+=e.blockHeight+34);let c=[];return ph(i,1,r,c),ph(a,-1,r,c),c.push(r),c}function hh(e){return zt(V(e.label,20)+36,120,280)}function gh(e){let t=new Map(e.nodes.map(e=>[e.id,e])),n=new Map,r=new Set;for(let i of e.edges){if(!t.has(i.from)||!t.has(i.to)||i.from===i.to)continue;let e=n.get(i.from)??[];e.includes(i.to)||e.push(i.to),n.set(i.from,e),r.add(i.to)}let i=e.nodes.filter(e=>!r.has(e.id)).map(e=>e.id);i.length===0&&e.nodes.length>0&&(i=[e.nodes[0].id]);let a=new Map,o=new Set,s=0;function c(e,r){let i=t.get(e),l=hh(i),u=r*108,d=(n.get(e)??[]).filter(e=>!a.has(e)&&!o.has(e));if(d.length===0){let t=s+l/2;return s+=l+28,a.set(e,{node:i,x:t-l/2,y:u,w:l,cx:t}),t}let f=d.every(e=>(n.get(e)??[]).length===0);if(r>=1&&f&&d.length>=3){let n=d.map(e=>hh(t.get(e))),r=Math.max(l,32+Math.max(...n)),o=s;return d.forEach((e,r)=>{let i=u+70*(r+1)+52/2-14,s=o+32;a.set(e,{node:t.get(e),x:s,y:i,w:n[r],cx:s+n[r]/2,stacked:!0})}),s+=r+28,a.set(e,{node:i,x:o,y:u,w:l,cx:o+l/2}),o+l/2}o.add(e);let p=d.map(e=>c(e,r+1));o.delete(e);let m=(Math.min(...p)+Math.max(...p))/2;return a.set(e,{node:i,x:m-l/2,y:u,w:l,cx:m}),m}for(let e of i)a.has(e)||c(e,0);for(let t of e.nodes)a.has(t.id)||c(t.id,0);let l=[],u=new Map;for(let[e,t]of a){let n=$({x:t.x,y:t.y,width:t.w,height:56},t.node.color?Q[t.node.color]:`#ffffff`,{label:t.node.label,fontSize:20,color:Y,fillStyle:t.node.fill??`pastel`,shadow:t.node.shadow,strokeWidth:Z});u.set(e,n.id),l.push(n)}let d=[];for(let t of e.edges){let e=a.get(t.from),n=a.get(t.to);if(!e||!n||e===n)continue;let r=u.get(t.from),i=u.get(t.to);if(!r||!i)continue;let o=e.y+56;if(n.stacked){let a=e.x+32/2,s=n.y+56/2;d.push(fm({x:a,y:o,x2:n.x,y2:s,bendStyle:`elbow`,elbowPoints:[{x:a,y:o},{x:a,y:s},{x:n.x,y:s}],startBinding:{shapeId:r,anchor:{x:32/2/e.w,y:1},precise:!0},endBinding:{shapeId:i,anchor:{x:0,y:.5},precise:!0},color:X,strokeWidth:ld,dash:t.dashed?`dashed`:`solid`,label:t.label||void 0}));continue}let s=o+52/2;d.push(fm({x:e.cx,y:o,x2:n.cx,y2:n.y,bendStyle:`elbow`,elbowPoints:[{x:e.cx,y:o},{x:e.cx,y:s},{x:n.cx,y:s},{x:n.cx,y:n.y}],startBinding:{shapeId:r,anchor:{x:.5,y:1},precise:!0},endBinding:{shapeId:i,anchor:{x:.5,y:0},precise:!0},color:X,strokeWidth:ld,dash:t.dashed?`dashed`:`solid`,label:t.label||void 0}))}return[...d,...l]}const _h=Gc(18);function vh(e){return e?Math.max(72,V(e,16)/2+20+8):72}function yh(e){let{actors:t}=e,n=Math.max(150,...t.map(e=>Math.min(V(e.label,18)+48,260))),r=n+130;return{headerWidth:n,centerOf:new Map(t.map((e,t)=>[e.id,t*r+n/2]))}}function bh(e){let{messages:t,frames:n}=e,r=e.notes??[],i=new Map,a=[],o=_h+64,s=e=>{for(let t of r)t.after===e&&(i.set(t,o),o+=52)};return s(-1),t.forEach((e,t)=>{o+=n.filter(e=>e.from===t).length*40,a.push(o),o+=64+(e.from===e.to?36:0),o+=n.filter(e=>e.to===t).length*18,s(t)}),{rowY:a,noteY:i,lifelineBottom:o-64/2+28}}function xh(e,t,n){let{messages:r}=e,i=new Map;for(let a of e.activations??[]){if(!t.centerOf.has(a.actor)||n.rowY.length===0)continue;let e=r[a.to],o=n.rowY[a.from]-10,s=n.rowY[a.to]+(e.from===e.to?60:14),c=i.get(a.actor)??[];c.push({top:o,bottom:s}),i.set(a.actor,c)}for(let[e,t]of i){t.sort((e,t)=>e.top-t.top);let n=[];for(let e of t){let t=n[n.length-1];t&&e.top<=t.bottom?t.bottom=Math.max(t.bottom,e.bottom):n.push({...e})}i.set(e,n)}return i}function Sh(e,t,n,r){let i=new Map;return e.actors.forEach((e,a)=>{let o=t.centerOf.get(e.id),s=r.get(e.id);i.set(e.id,{id:H(),type:`control`,kind:`lifeline`,x:o-t.headerWidth/2,y:0,width:t.headerWidth,height:n.lifelineBottom,rotation:0,label:e.label,fontSize:18,fontFamily:I,color:Y,fill:Q[dd[a%dd.length]],opacity:1,activations:s?.map(e=>({top:e.top,height:e.bottom-e.top})),link:e.link})}),i}function Ch(e,t,n){let{messages:r,frames:i}=e,a=new Map,o=(e,t)=>e===t||e.from>t.from||e.to<t.to?!1:e.from!==t.from||e.to!==t.to||i.indexOf(e)>i.indexOf(t);for(let e of i){let s=1/0,c=-1/0;for(let n=e.from;n<=e.to;n+=1){let e=r[n],i=t.centerOf.get(e.from)??0,a=t.centerOf.get(e.to)??0;s=Math.min(s,i,a),c=Math.max(c,i,a),e.from===e.to&&(c=Math.max(c,i+vh(e.label)))}let l=i.filter(t=>t.from===e.from).sort((e,t)=>o(e,t)?-1:+!!o(t,e)),u=i.filter(t=>t.to===e.to).sort((e,t)=>o(e,t)?1:o(t,e)?-1:0),d=r[e.to];a.set(e,{left:s-60,right:c+60,top:n.rowY[e.from]-40*(l.length-l.indexOf(e))+4,bottom:n.rowY[e.to]+(d.from===d.to?70:30)+18*u.indexOf(e)})}let s=[...i].sort((e,t)=>e.to-e.from-(t.to-t.from)||i.indexOf(e)-i.indexOf(t));for(let e of s){let t=s.find(t=>o(t,e));if(!t)continue;let n=a.get(e),r=a.get(t);r.left=Math.min(r.left,n.left-14),r.right=Math.max(r.right,n.right+14)}return a}function wh(e,t){return e.map(e=>{let n=t.get(e),r=e.label?`${e.kind} [${e.label}]`:e.kind;return{id:H(),type:`control`,kind:`fragment`,x:n.left,y:n.top,width:n.right-n.left,height:n.bottom-n.top,rotation:0,label:r,fontSize:13,fontFamily:I,color:Y,fill:`#f3f0ff`,opacity:1}})}function Th(e,t,n,r){let{messages:i}=e,a=[],o=(e,i,a)=>{let o=r.get(e),s=t.centerOf.get(e),c=n.rowY[i],l=Jc(o),u=qc(o,c),d=+(a>s);return{x:u?u.x+d*u.width:s,binding:{shapeId:o.id,anchor:{x:.5,y:(c-l.y)/l.height},precise:!0}}},s=[...t.centerOf.values()],c=(e,t)=>s.filter(n=>n>Math.min(e,t)&&n<Math.max(e,t));return i.forEach((e,i)=>{let s=n.rowY[i],l=t.centerOf.get(e.from),u=t.centerOf.get(e.to);if(e.from===e.to){let t=qc(r.get(e.from),s),n=l+(t?t.width/2:0),i=vh(e.label),o={id:H(),type:`line`,points:[{x:n,y:s},{x:l+i,y:s},{x:l+i,y:s+48},{x:n+2,y:s+48}],color:Y,strokeWidth:Yc,dash:e.reply?`dashed`:`solid`,startArrow:!1,endArrow:!0,label:e.label,fontSize:16,fontFamily:I,opacity:1};a.push(o);return}let d=o(e.from,i,u),f=o(e.to,i,l),p=fm({x:d.x,y:s,x2:f.x,y2:s,startBinding:d.binding,endBinding:f.binding,label:e.label,labelAlong:Eh(e.label,d.x,f.x,c(l,u)),fontSize:16,fontFamily:I,color:Y,strokeWidth:Yc,dash:e.reply?`dashed`:`solid`,startArrow:e.bidirectional===!0,endArrow:!0});a.push(p)}),a}function Eh(e,t,n,r){if(!e||r.length===0||t===n)return;let i=Math.min(t,n),a=Math.max(t,n),o=[i,...r.sort((e,t)=>e-t),a],s=V(e,16)+16,c=(i+a)/2,l=null;for(let e=0;e<o.length-1;e+=1){if(o[e+1]-o[e]<s+16)continue;let t=(o[e]+o[e+1])/2;(l===null||Math.abs(t-c)<Math.abs(l-c))&&(l=t)}if(l!==null)return(l-t)/(n-t)}function Dh(e,t,n){let r=[];for(let i of e.notes??[]){let e=n.noteY.get(i);if(e===void 0)continue;let a=i.actors.map(e=>t.centerOf.get(e)).filter(e=>e!==void 0);if(a.length===0)continue;let o=V(i.text,13)+24,s,c;if(i.placement===`left`)c=o,s=a[0]-t.headerWidth/2-18-c;else if(i.placement===`right`)c=o,s=a[0]+t.headerWidth/2+18;else{let e=Math.min(...a),n=Math.max(...a);c=Math.max(o,n-e+t.headerWidth*.7),s=(e+n)/2-c/2}r.push($({x:s,y:e,width:c,height:34},`#fff3bf`,{kind:`note`,label:i.text,fontSize:13,labelColor:Y,color:X}))}return r}async function Oh(e){let t=yh(e),n=bh(e),r=Sh(e,t,n,xh(e,t,n)),i=wh(e.frames,Ch(e,t,n));return _f([...r.values(),...Th(e,t,n,r),...i,...Dh(e,t,n)])}const kh={phone:300,tablet:520,browser:720,window:640},Ah={navbar:52,tabs:46,heading:46,paragraph:84,image:150,avatar:72,button:46,input:46,search:46,dropdown:46,checkbox:32,radio:32,toggle:36,slider:42,divider:16,link:28,textarea:110,stepper:46,badge:28,progress:20,breadcrumbs:32,pagination:40,rating:32,card:200,list:150,alert:56,menu:150,tooltip:48,accordion:170,datepicker:220,sidebar:280,scrollbar:220,segmented:36,tabbar:56,statusbar:28,fab:56,stepbadge:44},jh={full:1,twoThirds:2/3,half:1/2,third:1/3},Mh=new Set([`input`,`textarea`,`dropdown`,`datepicker`,`stepper`]),Nh=new Set([`navbar`,`statusbar`,`tabbar`,`sidebar`,`divider`,`breadcrumbs`,`scrollbar`]);function Ph(e){let t=0,n=0;for(let r of e.controls)Mh.has(r.kind)&&(t+=1),r.kind===`button`&&(n+=1);return t>=2||t>=1&&n>=1}function Fh(e){return e.frame===`browser`?{top:54,side:22,bottom:22}:e.frame===`window`?{top:50,side:22,bottom:22}:e.frame===`tablet`?{top:40,side:28,bottom:44}:{top:48,side:22,bottom:48}}const Ih={toggle:1,checkbox:1,radio:1,slider:.6,progress:.6,scrollbar:.3,rating:3,alert:0,navbar:0,tabs:0,pagination:0,menu:0,accordion:0,sidebar:0,segmented:0,tabbar:0};function Lh(e,t,n,r,i){let a=e.kind,o=e.kind===`button`?Q.blue:e.kind===`toggle`?Q.green:e.kind===`badge`?Q.blue:void 0,s=e.value??Ih[e.kind];return{id:H(),type:`control`,kind:a,x:t,y:n,width:r,height:i,rotation:0,...a===`card`?Rh(e.label):{label:e.label??gl[a]??``},fontSize:16,fontFamily:I,color:Y,fill:o,opacity:1,value:s}}function Rh(e){if(e===void 0)return{label:gl.card??``,body:`Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt.`};let[t=``,...n]=e.split(`
27
+ `);return{label:t.trim(),body:n.join(`
28
+ `).trim()}}function zh(e){let t=[],n=0;for(let r of e.screens){let e=Fh(r),i=kh[r.frame],a=n+e.side,o=[],s=[],c=0;for(let e of r.controls){let t=jh[e.width??`full`];s.length>0&&c+t>1.001&&(o.push(s),s=[],c=0),s.push(e),c+=t}s.length>0&&o.push(s);let l=Ph(r)?Math.min(i,400):i,u=[],d=[],f=e.top;for(let e of o){let t=e.every(e=>Nh.has(e.kind))?i:l,n=a+(i-t)/2,r=e.map(e=>jh[e.width??`full`]),o=r.reduce((e,t)=>e+t,0),s=t-14*(e.length-1),c=r.map(e=>e/o*s),p=(e,t)=>{if(e.kind!==`paragraph`||!e.label)return Ah[e.kind];let n=16*.9,r=Ns(e.label,t,n).length;return Math.ceil(r*n*1.4+8)},m=Math.max(...e.map((e,t)=>p(e,c[t]))),h=n;e.forEach((e,t)=>{let n=c[t],r=p(e,n);if(e.kind===`heading`){let t={id:H(),type:`text`,x:h,y:f+(m-r)/2+6,text:e.label??`Heading`,fontSize:26,fontFamily:I,width:n,rotation:0,color:Y,opacity:1};d.push(t)}else u.push(Lh(e,h,f+(m-r)/2,n,r));h+=n+14}),f+=m+14}let p=o.length>0?f-14:e.top,m={id:H(),type:`figure`,kind:r.frame,x:n,y:0,width:i+e.side*2,height:p+e.bottom,rotation:0,label:r.name,fontSize:16,fontFamily:I,color:Y,fill:`#ffffff`,opacity:1};t.push(m,...u,...d),n+=m.width+140}return t}const Bh={prepare:()=>Promise.resolve(),measure:(e,t)=>V(e,t)};async function Vh(e,t){return e.kind===`sequence`?Oh(e):e.kind===`erd`?Jf(e):e.kind===`wireframe`?zh(e):e.kind===`mindmap`?mh(e,t):e.kind===`infographic`?Km(e,t):e.kind===`gitgraph`?_m(e):e.kind===`gantt`?dm(e):e.kind===`sankey`?Dm(e):e.kind===`graph`&&e.variant===`orgchart`?gh(e):Kp(e,t)}function Hh(e){return e.kind!==`graph`||e.legend||e.nodes.length===0?!1:e.swimlanes&&e.groups.length>0?!0:e.groups.filter(e=>!e.parent).length===1&&e.nodes.every(e=>e.group)}async function Uh(e,t){let n=fo(e);if(po(n))return null;let r=await Vh(n,t);if(r.length===0)return null;let i={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0},a=e=>{Vt(e)&&(i.minX=Math.min(i.minX,e.x),i.minY=Math.min(i.minY,e.y),i.maxX=Math.max(i.maxX,e.x+e.width),i.maxY=Math.max(i.maxY,e.y+e.height))},o=e=>{if(a(Zi(e)),e.type===`arrow`||e.type===`line`)for(let t of na(e,Bh))a(t)};for(let e of r)o(e);return{diagram:n,shapes:r,extent:i,grow:o}}function Wh(e,t,n){if(!Number.isFinite(t.minX)||!Number.isFinite(t.minY))return{shapes:e,bounds:{x:n.x,y:n.y,width:0,height:0}};let r={x:n.x-t.minX,y:n.y-t.minY};return{shapes:e.map(e=>ra(e,r)),bounds:{x:n.x,y:n.y,width:t.maxX-t.minX,height:t.maxY-t.minY}}}async function Gh(e,t,n,r={}){let i=await Uh(e,n);if(!i)return null;let{diagram:a,shapes:o,extent:s,grow:c}=i;if(a.legend){let e=s.maxX-s.minX,t=await nh(a.legend,{x:s.minX,y:0},e,n),r=t[0];if(r){let e=s.minY-28-Ji(r).height,n=t.map(t=>ra(t,{x:0,y:e}));for(let e of n)c(e);o.push(...n)}}return r.frame===!1||Hh(a)?Wh(o,s,t):Kh(o,s,a.title||`Diagram`,t)}function Kh(e,t,n,r){let i={id:H(),type:`figure`,x:t.minX-36,y:t.minY-36,width:t.maxX-t.minX+72,height:t.maxY-t.minY+72,rotation:0,label:n,fontSize:16,fontFamily:I,color:X,opacity:1};return Wh([i,...e],{minX:i.x,minY:i.y,maxX:i.x+i.width,maxY:i.y+i.height},r)}function qh(e,t){return e.length*t*.6}function Jh(){return{prepare:()=>Promise.resolve(),measure:(e,t)=>qh(e,t)}}function Yh(){return import(`./catalog-module-DAuqzZdT.js`).then(e=>e.default)}const Xh=[{id:`lucide`,kind:`stroke`},{id:`drawnicons`,kind:`asset`,mono:!0,varyingExtent:!0,remote:`https://koboyo.com/icons`},{id:`emoji`,kind:`asset`},{id:`mood`,kind:`asset`},{id:`tech`,kind:`asset`,mono:!0},{id:`aws`,kind:`asset`},{id:`gcp`,kind:`asset`},{id:`azure`,kind:`asset`}],Zh=Xh.filter(e=>e.kind===`asset`).map(e=>e.id);Object.fromEntries(Xh.map(e=>[e.id,e.kind])),new Set(Xh.filter(e=>`mono`in e&&e.mono).map(e=>e.id)),new Set(Xh.filter(e=>`varyingExtent`in e&&e.varyingExtent).map(e=>e.id));const Qh=new Map(Xh.flatMap(e=>`remote`in e?[[e.id,e.remote]]:[]));function $h(e){return Qh.get(e)}const eg=Object.fromEntries(Zh.map(e=>[e,e])),tg=[`tech`,`aws`,`gcp`,`azure`],ng={k8s:`kubernetes`,kube:`kubernetes`,postgres:`postgresql`,psql:`postgresql`,mongo:`mongodb`,node:`nodedotjs`,nodejs:`nodedotjs`,"node.js":`nodedotjs`,next:`nextdotjs`,nextjs:`nextdotjs`,"next.js":`nextdotjs`,vue:`vuedotjs`,vuejs:`vuedotjs`,"vue.js":`vuedotjs`,kafka:`apachekafka`,rabbit:`rabbitmq`,es:`elasticsearch`,gha:`githubactions`};function rg(e){return ng[e]??e}const ig={s3:`simple-storage-service`,sqs:`simple-queue-service`,sns:`simple-notification-service`,iam:`identity-and-access-management`,vpc:`virtual-private-cloud`,ebs:`elastic-block-store`,elb:`elastic-load-balancing`,alb:`elastic-load-balancing`,nlb:`elastic-load-balancing`,kms:`key-management-service`,ecs:`elastic-container-service`,eks:`elastic-kubernetes-service`,ecr:`elastic-container-registry`};function ag(e,t){return e===`aws`?ig[t]??t:t}function og(e){return e.toLowerCase().replace(/[^a-z0-9]/g,``)}const sg=[[/^(?:aws|amazon web services|amazon)[\s:/-]+/,`aws`],[/^(?:gcp|google)[\s:/-]+/,`gcp`],[/^(?:azure|microsoft azure)[\s:/-]+/,`azure`]];function cg(e){for(let[t,n]of sg)if(t.test(e))return{term:e.replace(t,``).trim(),only:n};return{term:e}}let lg=null;function ug(){return lg??=import(`./icon-catalog-CpBWFmwP.js`).then(e=>({names:new Set(e.ICON_NAMES),aliases:e.ICON_ALIASES}),e=>{throw lg=null,e}),lg}async function dg(e){let{names:t,aliases:n}=await ug();if(t.has(e))return e;let r=n[e];return r&&t.has(r)?r:null}function fg(e){let t=new Map;async function n(n){let r=t.get(n);if(r)return r;let i=await e.loadAssetIndex(n),a=new Set(i.map(e=>e[1]));return t.set(n,a),a}async function r(e){let t=e.trim().toLowerCase(),r=t.indexOf(`:`);if(r===-1){let e=rg(t),r=await dg(e);if(r)return{source:`lucide`,name:r};for(let t of tg)try{let r=await n(t),i=ag(t,e);if(r.has(i))return{source:t,name:i}}catch{}return null}let i=eg[t.slice(0,r)];if(!i)return null;let a=ag(i,rg(t.slice(r+1)));try{let e=await n(i);if(e.has(a))return{source:i,name:a};let t=og(a);for(let n of e)if(og(n)===t)return{source:i,name:n};return null}catch{return null}}async function i(t,n=12){let{term:r,only:i}=cg(t.trim().toLowerCase());if(r.length===0)return[];let a=og(rg(r));if(a.length===0)return[];let o=[],s=ig[a],c=e=>{let t=og(e);return t===a?0:t.startsWith(a)?1:t.includes(a)?2:-1};for(let e of i?[]:(await ug()).names){let t=c(e);t>=0&&o.push({ref:e,label:e,score:t})}for(let t of i?[i]:tg){let n;try{n=await e.loadAssetIndex(t)}catch{continue}for(let e of n){let[n,r,i]=e,a=[r,n.toLowerCase(),...(i??[]).map(e=>e.toLowerCase())].map(c).filter(e=>e>=0);t===`aws`&&s===r&&a.push(-1),a.length!==0&&o.push({ref:`${t}:${r}`,label:`${n} (${t})`,score:Math.min(...a)+.5})}}o.sort((e,t)=>e.score-t.score);let l=new Set,u=[];for(let e of o)if(!l.has(e.ref)&&(l.add(e.ref),u.push({ref:e.ref,label:e.label}),u.length>=n))break;return u}return{resolveIcon:r,searchIcons:i}}function pg(e){let t=e.catalog??null,n=null,r={...e.assetIndexes},i={};function a(){return t?Promise.resolve(t):e.loadCatalog?(n||(n=e.loadCatalog().then(e=>(t=e,t)),n.catch(()=>{n=null})),n):Promise.resolve({})}function o(){return a().then(()=>void 0)}function s(e){return t?.[e]}function c(e){return a().then(t=>t[e]??null)}function l(t,n){let r=$h(t);return r?`${r}/svg/${n}.svg`:`${e.assetBase}icon-sets/${t}/${n}.svg`}function u(t){let n=r[t];if(n)return Promise.resolve(n);if(!e.loadAssetIndex)return Promise.resolve([]);let a=i[t];return a||(a=e.loadAssetIndex(t).then(e=>(r[t]=e,e)),i[t]=a,a.catch(()=>{i[t]===a&&delete i[t]})),a}function d(e){return r[e]}let f={},p={};function m(t){let n=f[t];if(n)return Promise.resolve(n);if(!e.loadLibraryGroups)return Promise.resolve([]);let r=p[t];return r||(r=e.loadLibraryGroups(t).then(e=>(f[t]=e,e)),p[t]=r,r.catch(()=>{p[t]===r&&delete p[t]})),r}function h(e){return f[e]}let g=fg({loadAssetIndex:u});return{ensureCatalog:o,cachedNode:s,loadNode:c,loadAssetIndex:u,cachedAssetIndex:d,loadLibraryGroups:m,cachedLibraryGroups:h,assetIconUrl:l,resolveIcon:g.resolveIcon,searchIcons:g.searchIcons}}const mg={...gi,bg:`#ffffff`};function hg(e){let t=null;function n(){if(!t){let n=e();t=n,n.catch(()=>{t===n&&(t=null)})}return t}return{async layout(e){return await(await n()).layout(e)}}}async function gg(){let{default:e}=await import(`./elk-in-process-absent-CzI8UVp-.js`);return new e}async function _g(){try{let[{default:e},{default:t}]=await Promise.all([import(`./elk-api-DfUWdVFD.js`).then(e=>c(e.default,1)),import(`./elk-worker.min-SDxTC6NI.js`)]),n=new e({workerFactory:()=>new t});return await n.layout({id:`__probe__`,children:[{id:`n`,width:1,height:1}]}),n}catch{return gg()}}function vg(e={}){let t=e.assetBase??`/`;return{text:Jh(),fonts:{embed:()=>Promise.resolve(``)},assets:{inline:()=>Promise.resolve(null)},icons:pg({assetBase:t,loadCatalog:e.loadIconCatalog??Yh,loadAssetIndex:e=>fetch(`${t}icon-sets/${e}.json`).then(e=>{if(!e.ok)throw Error(`asset index fetch failed (${e.status})`);return e.json()})}),elk:hg(_g),theme:{palette:()=>({...mg})}}}const yg=vg();self.onmessage=async e=>{let t=e.data,n;try{let e=t.op===`layoutGraph`?await Kp(t.diagram,yg):await Gh(t.diagram,t.origin,yg,t.options);n={id:t.id,ok:!0,out:e}}catch(e){n={id:t.id,ok:!1,error:e instanceof Error?e.message:String(e)}}self.postMessage(n)};export{l as n,o as t};