@coopcli/specplan 2026.817.2 → 2026.819.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 (101) hide show
  1. package/dist/cli/index.js +3 -2
  2. package/dist/client/assets/{abnfDiagram-VRR7QNED-BYxvjjLu.js → abnfDiagram-VRR7QNED-DG21UC5n.js} +1 -1
  3. package/dist/client/assets/architecture-TIHT7OUA-DYAR8PGt.js +1 -0
  4. package/dist/client/assets/{architectureDiagram-ZJ3FMSHR-DaKJ9vFA.js → architectureDiagram-ZJ3FMSHR-C0V7EMlK.js} +1 -1
  5. package/dist/client/assets/{blockDiagram-677ZJIJ3-xETyUDB6.js → blockDiagram-677ZJIJ3-Q-VuK37S.js} +1 -1
  6. package/dist/client/assets/{c4Diagram-LMCZKHZV-CJGUNAXt.js → c4Diagram-LMCZKHZV-Dhz1hxI-.js} +1 -1
  7. package/dist/client/assets/channel-SlrdwMao.js +1 -0
  8. package/dist/client/assets/{chunk-32BRIVSS-6Rh4CCUQ.js → chunk-32BRIVSS-DnOQr5Hs.js} +1 -1
  9. package/dist/client/assets/{chunk-52WLFC77-A0SkaTYM.js → chunk-52WLFC77-BI8xz4Ng.js} +1 -1
  10. package/dist/client/assets/{chunk-C7G6YPKG-BMphmVWl.js → chunk-C7G6YPKG-zsqJHbjz.js} +1 -1
  11. package/dist/client/assets/{chunk-EX3LRPZG-xUcXnDRE.js → chunk-EX3LRPZG-Bi8XxiOh.js} +1 -1
  12. package/dist/client/assets/{chunk-FWX5IMBZ-C_mfbGNa.js → chunk-FWX5IMBZ-BFofqCmB.js} +2 -2
  13. package/dist/client/assets/{chunk-HOUHSVGY-yNNNImSs.js → chunk-HOUHSVGY-Bl0rPEPe.js} +1 -1
  14. package/dist/client/assets/{chunk-ICXQ74PX-CyZZ3kFK.js → chunk-ICXQ74PX-Cq2aKGhh.js} +1 -1
  15. package/dist/client/assets/{chunk-K2UTITRG-CL9ravuf.js → chunk-K2UTITRG-BltRQECA.js} +3 -3
  16. package/dist/client/assets/{chunk-MOJQB5TN-Bio7zOcN.js → chunk-MOJQB5TN-JtGqXlt7.js} +1 -1
  17. package/dist/client/assets/{chunk-OGEWGWER-vwCurcM9.js → chunk-OGEWGWER-CLzHww9d.js} +1 -1
  18. package/dist/client/assets/{chunk-PUDLZKDR-BWhPp8B4.js → chunk-PUDLZKDR-C2gIwlIm.js} +1 -1
  19. package/dist/client/assets/{chunk-Q4XR5HBZ-CvZ-Pz5B.js → chunk-Q4XR5HBZ-Dju-tUQs.js} +1 -1
  20. package/dist/client/assets/{chunk-RYQCIY6F-CtK1BTrZ.js → chunk-RYQCIY6F-C1vISHVj.js} +1 -1
  21. package/dist/client/assets/{chunk-V7JOEXUC-BP5dRCwG.js → chunk-V7JOEXUC-DY3oUmK_.js} +1 -1
  22. package/dist/client/assets/chunk-VAUOI2AC-BTR1oUbp.js +1 -0
  23. package/dist/client/assets/{chunk-VR4S4FIN-Q-TN3CuI.js → chunk-VR4S4FIN-BFByvgIN.js} +1 -1
  24. package/dist/client/assets/{chunk-WYO6CB5R-qHfws5Na.js → chunk-WYO6CB5R-2sVpzpwa.js} +1 -1
  25. package/dist/client/assets/chunk-XXDRQBXY-CoR8hY2w.js +1 -0
  26. package/dist/client/assets/{chunk-ZGVPDNZ5-CHDpAKTq.js → chunk-ZGVPDNZ5-CPSkfYQU.js} +1 -1
  27. package/dist/client/assets/classDiagram-OUVF2IWQ-C12ZdCSq.js +1 -0
  28. package/dist/client/assets/classDiagram-v2-EOCWNBFH-C12ZdCSq.js +1 -0
  29. package/dist/client/assets/{cose-bilkent-JH36ORCC-dsywqjX4.js → cose-bilkent-JH36ORCC-BZq8oTdP.js} +1 -1
  30. package/dist/client/assets/{cynefin-VYW2F7L2-CeEsCHXm.js → cynefin-VYW2F7L2-Qefl_a7r.js} +1 -1
  31. package/dist/client/assets/{cynefinDiagram-TSTJHNR4-DXw0GuLE.js → cynefinDiagram-TSTJHNR4-CSWGdCZG.js} +1 -1
  32. package/dist/client/assets/{dagre-VKFMJZFB-D7iVblaF.js → dagre-VKFMJZFB-8Lzbq-nm.js} +1 -1
  33. package/dist/client/assets/{diagram-FQU43EPY-D8k_N9yq.js → diagram-FQU43EPY-lDfjbNDh.js} +1 -1
  34. package/dist/client/assets/{diagram-G47NLZAW-CH7ECldl.js → diagram-G47NLZAW-Bqb_3tmg.js} +1 -1
  35. package/dist/client/assets/{diagram-NH7WQ7WH-eJ3LFOko.js → diagram-NH7WQ7WH-BArVFXm1.js} +1 -1
  36. package/dist/client/assets/{diagram-OA4YK3LP-BcBLwxof.js → diagram-OA4YK3LP-B57UNui7.js} +1 -1
  37. package/dist/client/assets/{diagram-WEI45ONY-g4Ydc6Nh.js → diagram-WEI45ONY-BFLTZHeD.js} +1 -1
  38. package/dist/client/assets/{dist-D2xnLDqk.js → dist-BXJAQ5z7.js} +4 -4
  39. package/dist/client/assets/{ebnfDiagram-CCIWWBDH-nijnOCKy.js → ebnfDiagram-CCIWWBDH-83eSAR_O.js} +1 -1
  40. package/dist/client/assets/{erDiagram-Q63AITRT-Dj7bPJ8h.js → erDiagram-Q63AITRT-XJGCrYfA.js} +1 -1
  41. package/dist/client/assets/eventmodeling-45OFAUF4-CySgleMT.js +1 -0
  42. package/dist/client/assets/flowDiagram-23GEKE2U-CpHOSlUH.js +1 -0
  43. package/dist/client/assets/{ganttDiagram-NO4QXBWP-BKwUgAKS.js → ganttDiagram-NO4QXBWP-Bgga29Au.js} +1 -1
  44. package/dist/client/assets/{gitGraph-TEB2WS4Q-C3nx5-er.js → gitGraph-TEB2WS4Q-wTeiF0vP.js} +1 -1
  45. package/dist/client/assets/{gitGraphDiagram-IHSO6WYX-xX_vEW-n.js → gitGraphDiagram-IHSO6WYX-Br2TGk_K.js} +1 -1
  46. package/dist/client/assets/image-GAAHSSAO-DddoQEI3.js +1 -0
  47. package/dist/client/assets/{index-CcRUbBLK.js → index-CJ_b6AjB.js} +4 -4
  48. package/dist/client/assets/index-xgCRGDe_.css +1 -0
  49. package/dist/client/assets/{info-DKCQHKI2-DtWLyMEA.js → info-DKCQHKI2-CLYkJTfv.js} +1 -1
  50. package/dist/client/assets/{infoDiagram-FWYZ7A6U-uJrkO1jE.js → infoDiagram-FWYZ7A6U-DHDrXFI4.js} +1 -1
  51. package/dist/client/assets/{ishikawaDiagram-FXEZZL3T-grtc_5Gw.js → ishikawaDiagram-FXEZZL3T-O9cNcghb.js} +1 -1
  52. package/dist/client/assets/{journeyDiagram-5HDEW3XC-D5mpwyTK.js → journeyDiagram-5HDEW3XC-D-xRZp9P.js} +1 -1
  53. package/dist/client/assets/{kanban-definition-HUTT4EX6-C8FJz-rK.js → kanban-definition-HUTT4EX6-BJaeijjD.js} +1 -1
  54. package/dist/client/assets/{line-FNoxgdds.js → line-BNyITG_F.js} +1 -1
  55. package/dist/client/assets/{linear-CmlO4_aU.js → linear-C8fpJQ9Y.js} +1 -1
  56. package/dist/client/assets/{mermaid-parser.core-CWtD7LBQ.js → mermaid-parser.core-0GwuEqeW.js} +3 -3
  57. package/dist/client/assets/{mindmap-definition-LN4V7U3C-c0zWDYkC.js → mindmap-definition-LN4V7U3C-C_xpI67d.js} +1 -1
  58. package/dist/client/assets/{packet-7NZHBO7P-CFjBM6rf.js → packet-7NZHBO7P-oaZIsx8j.js} +1 -1
  59. package/dist/client/assets/{pegDiagram-2B236MQR-D5EdJTGE.js → pegDiagram-2B236MQR-BgEyEYUz.js} +1 -1
  60. package/dist/client/assets/{pie-RZYD4A2V-DzXcKfJc.js → pie-RZYD4A2V-Dc3Fwoex.js} +1 -1
  61. package/dist/client/assets/{pieDiagram-ENE6RG2P-CfJdJPbc.js → pieDiagram-ENE6RG2P-_eb7ATmh.js} +1 -1
  62. package/dist/client/assets/{prod-DxrTzQHE.js → prod-Ba4uM3Ch.js} +5 -5
  63. package/dist/client/assets/{quadrantDiagram-ABIIQ3AL-BERLxAab.js → quadrantDiagram-ABIIQ3AL-BfWuKeAQ.js} +1 -1
  64. package/dist/client/assets/{radar-I7S5WNFK-BTKCUdOD.js → radar-I7S5WNFK-CB0kWg3t.js} +1 -1
  65. package/dist/client/assets/{railroad-3IZDKUUU-BqlJYKVR.js → railroad-3IZDKUUU-amr7bLB-.js} +1 -1
  66. package/dist/client/assets/railroad-abnf-AHOZXSZD-BjM-VtEb.js +1 -0
  67. package/dist/client/assets/railroad-ebnf-EBAXGLYW-CywxI5pS.js +1 -0
  68. package/dist/client/assets/railroad-peg-LSFZ7HO6-C7lj-TYo.js +1 -0
  69. package/dist/client/assets/{railroadDiagram-RFXS5EU6-CjYvoaz7.js → railroadDiagram-RFXS5EU6-Dc-cMKD7.js} +1 -1
  70. package/dist/client/assets/{requirementDiagram-TGXJPOKE-CBOHTTAP.js → requirementDiagram-TGXJPOKE-DV1943Gb.js} +1 -1
  71. package/dist/client/assets/{sankeyDiagram-HTMAVEWB-BhhsYxus.js → sankeyDiagram-HTMAVEWB-BLoYtcaW.js} +1 -1
  72. package/dist/client/assets/{sequenceDiagram-DBY2YBRQ-tBrxwb5x.js → sequenceDiagram-DBY2YBRQ-B6DaItWI.js} +1 -1
  73. package/dist/client/assets/{src-B56W74gN.js → src-BhL2Ylf6.js} +1 -1
  74. package/dist/client/assets/{stateDiagram-2N3HPSRC-CETKX_oh.js → stateDiagram-2N3HPSRC-DPj2INXk.js} +1 -1
  75. package/dist/client/assets/stateDiagram-v2-6OUMAXLB-_0YmrsU4.js +1 -0
  76. package/dist/client/assets/{swimlanes-5IMT3BWC-Cp3oOe65.js → swimlanes-5IMT3BWC-BeEj60g4.js} +1 -1
  77. package/dist/client/assets/swimlanesDiagram-G3AALYLV-B-KepWf4.js +8 -0
  78. package/dist/client/assets/{timeline-definition-FHXFAJF6-D4yGmEXE.js → timeline-definition-FHXFAJF6-DGOKXG2b.js} +1 -1
  79. package/dist/client/assets/{treeView-QDETBFTQ-Bq0uOqri.js → treeView-QDETBFTQ-DTEVOLrT.js} +1 -1
  80. package/dist/client/assets/{treemap-6X3UGDF4-DEB6PYX-.js → treemap-6X3UGDF4-JYJwO9Vr.js} +1 -1
  81. package/dist/client/assets/{vennDiagram-L72KCM5P-D5QdiCle.js → vennDiagram-L72KCM5P-C5_1kk6U.js} +1 -1
  82. package/dist/client/assets/{wardley-OPB4EBWU-DySMTzU2.js → wardley-OPB4EBWU-B7P-bikf.js} +1 -1
  83. package/dist/client/assets/{wardleyDiagram-EHGQE667-B2KHXQxE.js → wardleyDiagram-EHGQE667-BEkVslCX.js} +1 -1
  84. package/dist/client/assets/{xychartDiagram-FW5EYKEG-HxzAIqAC.js → xychartDiagram-FW5EYKEG-CPIaD3HD.js} +1 -1
  85. package/dist/client/index.html +2 -2
  86. package/package.json +1 -1
  87. package/dist/client/assets/architecture-TIHT7OUA-Cz2n_8dt.js +0 -1
  88. package/dist/client/assets/channel-CuBMvOiT.js +0 -1
  89. package/dist/client/assets/chunk-VAUOI2AC-D7taetBr.js +0 -1
  90. package/dist/client/assets/chunk-XXDRQBXY-BSmtn7NR.js +0 -1
  91. package/dist/client/assets/classDiagram-OUVF2IWQ-B8_i7rCq.js +0 -1
  92. package/dist/client/assets/classDiagram-v2-EOCWNBFH-B8_i7rCq.js +0 -1
  93. package/dist/client/assets/eventmodeling-45OFAUF4-D-h9umx1.js +0 -1
  94. package/dist/client/assets/flowDiagram-23GEKE2U-C4Gtyi00.js +0 -1
  95. package/dist/client/assets/image-GAAHSSAO-BS5tZem_.js +0 -1
  96. package/dist/client/assets/index-Cc2C1ER1.css +0 -1
  97. package/dist/client/assets/railroad-abnf-AHOZXSZD-sY1lWP7G.js +0 -1
  98. package/dist/client/assets/railroad-ebnf-EBAXGLYW-D9qoZ2zn.js +0 -1
  99. package/dist/client/assets/railroad-peg-LSFZ7HO6-ChaYlBF0.js +0 -1
  100. package/dist/client/assets/stateDiagram-v2-6OUMAXLB-Q_oKpxae.js +0 -1
  101. package/dist/client/assets/swimlanesDiagram-G3AALYLV-BlNqO3f1.js +0 -8
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/prod-DxrTzQHE.js","assets/rolldown-runtime-aKtaBQYM.js","assets/chunk-ZUYEQ4TG-BzFOpW--.js","assets/chunk-SRAX5OIU-Bpn6XoyU.js","assets/chunk-K2UTITRG-CL9ravuf.js","assets/chunk-6U3AYISY-C6-Mtja1.js","assets/chunk-Z3N5DIM6-D9TMVU7m.js","assets/prod-DtRVLazd.css"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/prod-Ba4uM3Ch.js","assets/rolldown-runtime-aKtaBQYM.js","assets/chunk-ZUYEQ4TG-BzFOpW--.js","assets/chunk-SRAX5OIU-Bpn6XoyU.js","assets/chunk-K2UTITRG-BltRQECA.js","assets/chunk-6U3AYISY-C6-Mtja1.js","assets/chunk-Z3N5DIM6-D9TMVU7m.js","assets/prod-DtRVLazd.css"])))=>i.map(i=>d[i]);
2
2
  import{i as e,n as t,t as n}from"./rolldown-runtime-aKtaBQYM.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var r=n((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function ee(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,ee(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),ee(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=ee(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=ee(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return ee(M(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function te(e,t,n){if(e==null)return e;var r=[],i=0;return ee(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function ne(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var N=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},P={map:te,forEach:function(e,t,n){te(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return te(e,function(){t++}),t},toArray:function(e){return te(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=P,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:ne}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,N)}catch(e){N(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.7`})),i=n(((e,t)=>{t.exports=r()})),a=n((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),o=n(((e,t)=>{t.exports=a()})),s=n((e=>{var t=i();function n(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function r(){}var a={d:{f:r,r:function(){throw Error(n(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},o=Symbol.for(`react.portal`);function s(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var c=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function l(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,e.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(n(299));return s(e,t,null,r)},e.flushSync=function(e){var t=c.T,n=a.p;try{if(c.T=null,a.p=2,e)return e()}finally{c.T=t,a.p=n,a.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,a.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&a.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=l(n,t.crossOrigin),i=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?a.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:i,fetchPriority:o}):n===`script`&&a.d.X(e,{crossOrigin:r,integrity:i,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`)if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=l(t.as,t.crossOrigin);a.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0})}}else t??a.d.M(e)},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=l(n,t.crossOrigin);a.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`)if(t){var n=l(t.as,t.crossOrigin);a.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0})}else a.d.m(e)},e.requestFormReset=function(e){a.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return c.H.useFormState(e,t,n)},e.useFormStatus=function(){return c.H.useHostTransitionStatus()},e.version=`19.2.7`})),c=n(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=s()})),l=n((e=>{var t=o(),n=i(),r=c();function a(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function s(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function l(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function u(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function d(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function f(e){if(l(e)!==e)throw Error(a(188))}function p(e){var t=e.alternate;if(!t){if(t=l(e),t===null)throw Error(a(188));return t===e?e:null}for(var n=e,r=t;;){var i=n.return;if(i===null)break;var o=i.alternate;if(o===null){if(r=i.return,r!==null){n=r;continue}break}if(i.child===o.child){for(o=i.child;o;){if(o===n)return f(i),e;if(o===r)return f(i),t;o=o.sibling}throw Error(a(188))}if(n.return!==r.return)n=i,r=o;else{for(var s=!1,c=i.child;c;){if(c===n){s=!0,n=i,r=o;break}if(c===r){s=!0,r=i,n=o;break}c=c.sibling}if(!s){for(c=o.child;c;){if(c===n){s=!0,n=o,r=i;break}if(c===r){s=!0,r=o,n=i;break}c=c.sibling}if(!s)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(n.tag!==3)throw Error(a(188));return n.stateNode.current===n?e:t}function m(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=m(e),t!==null)return t;e=e.sibling}return null}var h=Object.assign,g=Symbol.for(`react.element`),_=Symbol.for(`react.transitional.element`),v=Symbol.for(`react.portal`),y=Symbol.for(`react.fragment`),b=Symbol.for(`react.strict_mode`),x=Symbol.for(`react.profiler`),S=Symbol.for(`react.consumer`),C=Symbol.for(`react.context`),w=Symbol.for(`react.forward_ref`),T=Symbol.for(`react.suspense`),E=Symbol.for(`react.suspense_list`),D=Symbol.for(`react.memo`),O=Symbol.for(`react.lazy`),k=Symbol.for(`react.activity`),A=Symbol.for(`react.memo_cache_sentinel`),j=Symbol.iterator;function M(e){return typeof e!=`object`||!e?null:(e=j&&e[j]||e[`@@iterator`],typeof e==`function`?e:null)}var ee=Symbol.for(`react.client.reference`);function te(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===ee?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case y:return`Fragment`;case x:return`Profiler`;case b:return`StrictMode`;case T:return`Suspense`;case E:return`SuspenseList`;case k:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case v:return`Portal`;case C:return e.displayName||`Context`;case S:return(e._context.displayName||`Context`)+`.Consumer`;case w:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case D:return t=e.displayName||null,t===null?te(e.type)||`Memo`:t;case O:t=e._payload,e=e._init;try{return te(e(t))}catch{}}return null}var ne=Array.isArray,N=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,P=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,re={pending:!1,data:null,method:null,action:null},F=[],I=-1;function ie(e){return{current:e}}function L(e){0>I||(e.current=F[I],F[I]=null,I--)}function R(e,t){I++,F[I]=e.current,e.current=t}var ae=ie(null),oe=ie(null),se=ie(null),ce=ie(null);function le(e,t){switch(R(se,t),R(oe,e),R(ae,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Ud(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Ud(t),e=Wd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}L(ae),R(ae,e)}function ue(){L(ae),L(oe),L(se)}function de(e){e.memoizedState!==null&&R(ce,e);var t=ae.current,n=Wd(t,e.type);t!==n&&(R(oe,e),R(ae,n))}function fe(e){oe.current===e&&(L(ae),L(oe)),ce.current===e&&(L(ce),ep._currentValue=re)}var pe,me;function he(e){if(pe===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);pe=t&&t[1]||``,me=-1<e.stack.indexOf(`
3
3
  at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
4
4
  `+pe+e+me}var ge=!1;function _e(e,t){if(!e||ge)return``;ge=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`
@@ -83,10 +83,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
83
83
  `:`>`,i},nc.prototype.renderInline=function(e,t,n){let r=``,i=this.rules;for(let a=0,o=e.length;a<o;a++){let o=e[a].type;i[o]===void 0?r+=this.renderToken(e,a,t):r+=i[o](e,a,t,n,this)}return r},nc.prototype.renderInlineAsText=function(e,t,n){let r=``;for(let i=0,a=e.length;i<a;i++)switch(e[i].type){case`text`:r+=e[i].content;break;case`image`:r+=this.renderInlineAsText(e[i].children,t,n);break;case`html_inline`:case`html_block`:r+=e[i].content;break;case`softbreak`:case`hardbreak`:r+=`
84
84
  `;break;default:}return r},nc.prototype.render=function(e,t,n){let r=``,i=this.rules;for(let a=0,o=e.length;a<o;a++){let o=e[a].type;o===`inline`?r+=this.renderInline(e[a].children,t,n):i[o]===void 0?r+=this.renderToken(e,a,t,n):r+=i[o](e,a,t,n,this)}return r};function rc(){this.__rules__=[],this.__cache__=null}rc.prototype.__find__=function(e){for(let t=0;t<this.__rules__.length;t++)if(this.__rules__[t].name===e)return t;return-1},rc.prototype.__compile__=function(){let e=this,t=[``];e.__rules__.forEach(function(e){e.enabled&&e.alt.forEach(function(e){t.indexOf(e)<0&&t.push(e)})}),e.__cache__={},t.forEach(function(t){e.__cache__[t]=[],e.__rules__.forEach(function(n){n.enabled&&(t&&n.alt.indexOf(t)<0||e.__cache__[t].push(n.fn))})})},rc.prototype.at=function(e,t,n){let r=this.__find__(e),i=n||{};if(r===-1)throw Error(`Parser rule not found: `+e);this.__rules__[r].fn=t,this.__rules__[r].alt=i.alt||[],this.__cache__=null},rc.prototype.before=function(e,t,n,r){let i=this.__find__(e),a=r||{};if(i===-1)throw Error(`Parser rule not found: `+e);this.__rules__.splice(i,0,{name:t,enabled:!0,fn:n,alt:a.alt||[]}),this.__cache__=null},rc.prototype.after=function(e,t,n,r){let i=this.__find__(e),a=r||{};if(i===-1)throw Error(`Parser rule not found: `+e);this.__rules__.splice(i+1,0,{name:t,enabled:!0,fn:n,alt:a.alt||[]}),this.__cache__=null},rc.prototype.push=function(e,t,n){let r=n||{};this.__rules__.push({name:e,enabled:!0,fn:t,alt:r.alt||[]}),this.__cache__=null},rc.prototype.enable=function(e,t){Array.isArray(e)||(e=[e]);let n=[];return e.forEach(function(e){let r=this.__find__(e);if(r<0){if(t)return;throw Error(`Rules manager: invalid rule name `+e)}this.__rules__[r].enabled=!0,n.push(e)},this),this.__cache__=null,n},rc.prototype.enableOnly=function(e,t){Array.isArray(e)||(e=[e]),this.__rules__.forEach(function(e){e.enabled=!1}),this.enable(e,t)},rc.prototype.disable=function(e,t){Array.isArray(e)||(e=[e]);let n=[];return e.forEach(function(e){let r=this.__find__(e);if(r<0){if(t)return;throw Error(`Rules manager: invalid rule name `+e)}this.__rules__[r].enabled=!1,n.push(e)},this),this.__cache__=null,n},rc.prototype.getRules=function(e){return this.__cache__===null&&this.__compile__(),this.__cache__[e]||[]};function ic(e,t,n){this.type=e,this.tag=t,this.attrs=null,this.map=null,this.nesting=n,this.level=0,this.children=null,this.content=``,this.markup=``,this.info=``,this.meta=null,this.block=!1,this.hidden=!1}ic.prototype.attrIndex=function(e){if(!this.attrs)return-1;let t=this.attrs;for(let n=0,r=t.length;n<r;n++)if(t[n][0]===e)return n;return-1},ic.prototype.attrPush=function(e){this.attrs?this.attrs.push(e):this.attrs=[e]},ic.prototype.attrSet=function(e,t){let n=this.attrIndex(e),r=[e,t];n<0?this.attrPush(r):this.attrs[n]=r},ic.prototype.attrGet=function(e){let t=this.attrIndex(e),n=null;return t>=0&&(n=this.attrs[t][1]),n},ic.prototype.attrJoin=function(e,t){let n=this.attrIndex(e);n<0?this.attrPush([e,t]):this.attrs[n][1]=this.attrs[n][1]+` `+t};function ac(e,t,n){this.src=e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=t}ac.prototype.Token=ic;var oc=/\r\n?|\n/g,sc=/\0/g;function cc(e){let t;t=e.src.replace(oc,`
85
85
  `),t=t.replace(sc,`�`),e.src=t}function lc(e){let t;e.inlineMode?(t=new e.Token(`inline`,``,0),t.content=e.src,t.map=[0,1],t.children=[],e.tokens.push(t)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}function uc(e){let t=e.tokens;for(let n=0,r=t.length;n<r;n++){let r=t[n];r.type===`inline`&&e.md.inline.parse(r.content,e.md,e.env,r.children)}}function dc(e){return/^<a[>\s]/i.test(e)}function fc(e){return/^<\/a\s*>/i.test(e)}function pc(e){let t=e.tokens;if(e.md.options.linkify)for(let n=0,r=t.length;n<r;n++){if(t[n].type!==`inline`||!e.md.linkify.pretest(t[n].content))continue;let r=t[n].children,i=0;for(let a=r.length-1;a>=0;a--){let o=r[a];if(o.type===`link_close`){for(a--;r[a].level!==o.level&&r[a].type!==`link_open`;)a--;continue}if(o.type===`html_inline`&&(dc(o.content)&&i>0&&i--,fc(o.content)&&i++),!(i>0)&&o.type===`text`&&e.md.linkify.test(o.content)){let i=o.content,s=e.md.linkify.match(i),c=[],l=o.level,u=0;s.length>0&&s[0].index===0&&a>0&&r[a-1].type===`text_special`&&(s=s.slice(1));for(let t=0;t<s.length;t++){let n=s[t].url,r=e.md.normalizeLink(n);if(!e.md.validateLink(r))continue;let a=s[t].text;a=s[t].schema?s[t].schema===`mailto:`&&!/^mailto:/i.test(a)?e.md.normalizeLinkText(`mailto:`+a).replace(/^mailto:/,``):e.md.normalizeLinkText(a):e.md.normalizeLinkText(`http://`+a).replace(/^http:\/\//,``);let o=s[t].index;if(o>u){let t=new e.Token(`text`,``,0);t.content=i.slice(u,o),t.level=l,c.push(t)}let d=new e.Token(`link_open`,`a`,1);d.attrs=[[`href`,r]],d.level=l++,d.markup=`linkify`,d.info=`auto`,c.push(d);let f=new e.Token(`text`,``,0);f.content=a,f.level=l,c.push(f);let p=new e.Token(`link_close`,`a`,-1);p.level=--l,p.markup=`linkify`,p.info=`auto`,c.push(p),u=s[t].lastIndex}if(u<i.length){let t=new e.Token(`text`,``,0);t.content=i.slice(u),t.level=l,c.push(t)}t[n].children=r=Ds(r,a,c)}}}}var mc=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,hc=/\((c|tm|r)\)/i,gc=/\((c|tm|r)\)/gi,_c={c:`©`,r:`®`,tm:`™`};function vc(e,t){return _c[t.toLowerCase()]}function yc(e){let t=0;for(let n=e.length-1;n>=0;n--){let r=e[n];r.type===`text`&&!t&&(r.content=r.content.replace(gc,vc)),r.type===`link_open`&&r.info===`auto`&&t--,r.type===`link_close`&&r.info===`auto`&&t++}}function bc(e){let t=0;for(let n=e.length-1;n>=0;n--){let r=e[n];r.type===`text`&&!t&&mc.test(r.content)&&(r.content=r.content.replace(/\+-/g,`±`).replace(/\.{2,}/g,`…`).replace(/([?!])…/g,`$1..`).replace(/([?!]){4,}/g,`$1$1$1`).replace(/,{2,}/g,`,`).replace(/(^|[^-])---(?=[^-]|$)/gm,`$1—`).replace(/(^|\s)--(?=\s|$)/gm,`$1–`).replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,`$1–`)),r.type===`link_open`&&r.info===`auto`&&t--,r.type===`link_close`&&r.info===`auto`&&t++}}function xc(e){let t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)e.tokens[t].type===`inline`&&(hc.test(e.tokens[t].content)&&yc(e.tokens[t].children),mc.test(e.tokens[t].content)&&bc(e.tokens[t].children))}var Sc=/['"]/,Cc=/['"]/g,wc=`’`;function Tc(e,t,n,r){e[t]||(e[t]=[]),e[t].push({pos:n,ch:r})}function Ec(e,t){let n=``,r=0;t.sort((e,t)=>e.pos-t.pos);for(let i=0;i<t.length;i++){let a=t[i];n+=e.slice(r,a.pos)+a.ch,r=a.pos+1}return n+e.slice(r)}function Dc(e,t){let n,r=[],i={};for(let a=0;a<e.length;a++){let o=e[a],s=e[a].level;for(n=r.length-1;n>=0&&!(r[n].level<=s);n--);if(r.length=n+1,o.type!==`text`)continue;let c=o.content,l=0,u=c.length;OUTER:for(;l<u;){Cc.lastIndex=l;let o=Cc.exec(c);if(!o)break;let d=!0,f=!0;l=o.index+1;let p=o[0]===`'`,m=32;if(o.index-1>=0)m=c.charCodeAt(o.index-1);else for(n=a-1;n>=0&&!(e[n].type===`softbreak`||e[n].type===`hardbreak`);n--)if(e[n].content){m=e[n].content.charCodeAt(e[n].content.length-1);break}let h=32;if(l<u)h=c.charCodeAt(l);else for(n=a+1;n<e.length&&!(e[n].type===`softbreak`||e[n].type===`hardbreak`);n++)if(e[n].content){h=e[n].content.charCodeAt(0);break}let g=Ks(m)||Gs(m),_=Ks(h)||Gs(h),v=Us(m),y=Us(h);if(y?d=!1:_&&(v||g||(d=!1)),v?f=!1:g&&(y||_||(f=!1)),h===34&&o[0]===`"`&&m>=48&&m<=57&&(f=d=!1),d&&f&&(d=g,f=_),!d&&!f){p&&Tc(i,a,o.index,wc);continue}if(f)for(n=r.length-1;n>=0;n--){let e=r[n];if(r[n].level<s)break;if(e.single===p&&r[n].level===s){e=r[n];let s,c;p?(s=t.md.options.quotes[2],c=t.md.options.quotes[3]):(s=t.md.options.quotes[0],c=t.md.options.quotes[1]),Tc(i,a,o.index,c),Tc(i,e.token,e.pos,s),r.length=n;continue OUTER}}d?r.push({token:a,pos:o.index,single:p,level:s}):f&&p&&Tc(i,a,o.index,wc)}}Object.keys(i).forEach(function(t){e[t].content=Ec(e[t].content,i[t])})}function Oc(e){if(e.md.options.typographer)for(let t=e.tokens.length-1;t>=0;t--)e.tokens[t].type!==`inline`||!Sc.test(e.tokens[t].content)||Dc(e.tokens[t].children,e)}function kc(e){let t,n,r=e.tokens,i=r.length;for(let e=0;e<i;e++){if(r[e].type!==`inline`)continue;let i=r[e].children,a=i.length;for(t=0;t<a;t++)i[t].type===`text_special`&&(i[t].type=`text`);for(t=n=0;t<a;t++)i[t].type===`text`&&t+1<a&&i[t+1].type===`text`?i[t+1].content=i[t].content+i[t+1].content:(t!==n&&(i[n]=i[t]),n++);t!==n&&(i.length=n)}}var Ac=[[`normalize`,cc],[`block`,lc],[`inline`,uc],[`linkify`,pc],[`replacements`,xc],[`smartquotes`,Oc],[`text_join`,kc]];function jc(){this.ruler=new rc;for(let e=0;e<Ac.length;e++)this.ruler.push(Ac[e][0],Ac[e][1])}jc.prototype.process=function(e){let t=this.ruler.getRules(``);for(let n=0,r=t.length;n<r;n++)t[n](e)},jc.prototype.State=ac;function Mc(e,t,n,r){this.src=e,this.md=t,this.env=n,this.tokens=r,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.listIndent=-1,this.parentType=`root`,this.level=0;let i=this.src;for(let e=0,t=0,n=0,r=0,a=i.length,o=!1;t<a;t++){let s=i.charCodeAt(t);if(!o)if(q(s)){n++,s===9?r+=4-r%4:r++;continue}else o=!0;(s===10||t===a-1)&&(s!==10&&t++,this.bMarks.push(e),this.eMarks.push(t),this.tShift.push(n),this.sCount.push(r),this.bsCount.push(0),o=!1,n=0,r=0,e=t+1)}this.bMarks.push(i.length),this.eMarks.push(i.length),this.tShift.push(0),this.sCount.push(0),this.bsCount.push(0),this.lineMax=this.bMarks.length-1}Mc.prototype.push=function(e,t,n){let r=new ic(e,t,n);return r.block=!0,n<0&&this.level--,r.level=this.level,n>0&&this.level++,this.tokens.push(r),r},Mc.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},Mc.prototype.skipEmptyLines=function(e){for(let t=this.lineMax;e<t&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},Mc.prototype.skipSpaces=function(e){for(let t=this.src.length;e<t&&q(this.src.charCodeAt(e));e++);return e},Mc.prototype.skipSpacesBack=function(e,t){if(e<=t)return e;for(;e>t;)if(!q(this.src.charCodeAt(--e)))return e+1;return e},Mc.prototype.skipChars=function(e,t){for(let n=this.src.length;e<n&&this.src.charCodeAt(e)===t;e++);return e},Mc.prototype.skipCharsBack=function(e,t,n){if(e<=n)return e;for(;e>n;)if(t!==this.src.charCodeAt(--e))return e+1;return e},Mc.prototype.getLines=function(e,t,n,r){if(e>=t)return``;let i=Array(t-e);for(let a=0,o=e;o<t;o++,a++){let e=0,s=this.bMarks[o],c=s,l;for(l=o+1<t||r?this.eMarks[o]+1:this.eMarks[o];c<l&&e<n;){let t=this.src.charCodeAt(c);if(q(t))t===9?e+=4-(e+this.bsCount[o])%4:e++;else if(c-s<this.tShift[o])e++;else break;c++}e>n?i[a]=Array(e-n+1).join(` `)+this.src.slice(c,l):i[a]=this.src.slice(c,l)}return i.join(``)},Mc.prototype.Token=ic;var Nc=65536;function Pc(e,t){let n=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];return e.src.slice(n,r)}function Fc(e){let t=[],n=e.length,r=0,i=e.charCodeAt(r),a=!1,o=0,s=``;for(;r<n;)i===124&&(a?(s+=e.substring(o,r-1),o=r):(t.push(s+e.substring(o,r)),s=``,o=r+1)),a=i===92,r++,i=e.charCodeAt(r);return t.push(s+e.substring(o)),t}function Ic(e,t,n,r){if(t+2>n)return!1;let i=t+1;if(e.sCount[i]<e.blkIndent||e.sCount[i]-e.blkIndent>=4)return!1;let a=e.bMarks[i]+e.tShift[i];if(a>=e.eMarks[i])return!1;let o=e.src.charCodeAt(a++);if(o!==124&&o!==45&&o!==58||a>=e.eMarks[i])return!1;let s=e.src.charCodeAt(a++);if(s!==124&&s!==45&&s!==58&&!q(s)||o===45&&q(s))return!1;for(;a<e.eMarks[i];){let t=e.src.charCodeAt(a);if(t!==124&&t!==45&&t!==58&&!q(t))return!1;a++}let c=Pc(e,t+1),l=c.split(`|`),u=[];for(let e=0;e<l.length;e++){let t=l[e].trim();if(!t){if(e===0||e===l.length-1)continue;return!1}if(!/^:?-+:?$/.test(t))return!1;t.charCodeAt(t.length-1)===58?u.push(t.charCodeAt(0)===58?`center`:`right`):t.charCodeAt(0)===58?u.push(`left`):u.push(``)}if(c=Pc(e,t).trim(),c.indexOf(`|`)===-1||e.sCount[t]-e.blkIndent>=4)return!1;l=Fc(c),l.length&&l[0]===``&&l.shift(),l.length&&l[l.length-1]===``&&l.pop();let d=l.length;if(d===0||d!==u.length)return!1;if(r)return!0;let f=e.parentType;e.parentType=`table`;let p=e.md.block.ruler.getRules(`blockquote`),m=e.push(`table_open`,`table`,1),h=[t,0];m.map=h;let g=e.push(`thead_open`,`thead`,1);g.map=[t,t+1];let _=e.push(`tr_open`,`tr`,1);_.map=[t,t+1];for(let t=0;t<l.length;t++){let n=e.push(`th_open`,`th`,1);u[t]&&(n.attrs=[[`style`,`text-align:`+u[t]]]);let r=e.push(`inline`,``,0);r.content=l[t].trim(),r.children=[],e.push(`th_close`,`th`,-1)}e.push(`tr_close`,`tr`,-1),e.push(`thead_close`,`thead`,-1);let v,y=0;for(i=t+2;i<n&&!(e.sCount[i]<e.blkIndent);i++){let r=!1;for(let t=0,a=p.length;t<a;t++)if(p[t](e,i,n,!0)){r=!0;break}if(r||(c=Pc(e,i).trim(),!c)||e.sCount[i]-e.blkIndent>=4||(l=Fc(c),l.length&&l[0]===``&&l.shift(),l.length&&l[l.length-1]===``&&l.pop(),y+=d-l.length,y>Nc))break;if(i===t+2){let n=e.push(`tbody_open`,`tbody`,1);n.map=v=[t+2,0]}let a=e.push(`tr_open`,`tr`,1);a.map=[i,i+1];for(let t=0;t<d;t++){let n=e.push(`td_open`,`td`,1);u[t]&&(n.attrs=[[`style`,`text-align:`+u[t]]]);let r=e.push(`inline`,``,0);r.content=l[t]?l[t].trim():``,r.children=[],e.push(`td_close`,`td`,-1)}e.push(`tr_close`,`tr`,-1)}return v&&(e.push(`tbody_close`,`tbody`,-1),v[1]=i),e.push(`table_close`,`table`,-1),h[1]=i,e.parentType=f,e.line=i,!0}function Lc(e,t,n){if(e.sCount[t]-e.blkIndent<4)return!1;let r=t+1,i=r;for(;r<n;){if(e.isEmpty(r)){r++;continue}if(e.sCount[r]-e.blkIndent>=4){r++,i=r;continue}break}e.line=i;let a=e.push(`code_block`,`code`,0);return a.content=e.getLines(t,i,4+e.blkIndent,!1)+`
86
- `,a.map=[t,e.line],!0}function Rc(e,t,n,r){let i=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||i+3>a)return!1;let o=e.src.charCodeAt(i);if(o!==126&&o!==96)return!1;let s=i;i=e.skipChars(i,o);let c=i-s;if(c<3)return!1;let l=e.src.slice(s,i),u=e.src.slice(i,a);if(o===96&&u.indexOf(String.fromCharCode(o))>=0)return!1;if(r)return!0;let d=t,f=!1;for(;d++,!(d>=n||(i=s=e.bMarks[d]+e.tShift[d],a=e.eMarks[d],i<a&&e.sCount[d]<e.blkIndent));)if(e.src.charCodeAt(i)===o&&!(e.sCount[d]-e.blkIndent>=4)&&(i=e.skipChars(i,o),!(i-s<c)&&(i=e.skipSpaces(i),!(i<a)))){f=!0;break}c=e.sCount[t],e.line=d+ +!!f;let p=e.push(`fence`,`code`,0);return p.info=u,p.content=e.getLines(t+1,d,c,!0),p.markup=l,p.map=[t,e.line],!0}function zc(e,t,n,r){let i=e.bMarks[t]+e.tShift[t],a=e.eMarks[t],o=e.lineMax;if(e.sCount[t]-e.blkIndent>=4||e.src.charCodeAt(i)!==62)return!1;if(r)return!0;let s=[],c=[],l=[],u=[],d=e.md.block.ruler.getRules(`blockquote`),f=e.parentType;e.parentType=`blockquote`;let p=!1,m;for(m=t;m<n;m++){let t=e.sCount[m]<e.blkIndent;if(i=e.bMarks[m]+e.tShift[m],a=e.eMarks[m],i>=a)break;if(e.src.charCodeAt(i++)===62&&!t){let t=e.sCount[m]+1,n,r;e.src.charCodeAt(i)===32?(i++,t++,r=!1,n=!0):e.src.charCodeAt(i)===9?(n=!0,(e.bsCount[m]+t)%4==3?(i++,t++,r=!1):r=!0):n=!1;let o=t;for(s.push(e.bMarks[m]),e.bMarks[m]=i;i<a;){let t=e.src.charCodeAt(i);if(q(t))t===9?o+=4-(o+e.bsCount[m]+ +!!r)%4:o++;else break;i++}p=i>=a,c.push(e.bsCount[m]),e.bsCount[m]=e.sCount[m]+1+ +!!n,l.push(e.sCount[m]),e.sCount[m]=o-t,u.push(e.tShift[m]),e.tShift[m]=i-e.bMarks[m];continue}if(p)break;let r=!1;for(let t=0,i=d.length;t<i;t++)if(d[t](e,m,n,!0)){r=!0;break}if(r){e.lineMax=m,e.blkIndent!==0&&(s.push(e.bMarks[m]),c.push(e.bsCount[m]),u.push(e.tShift[m]),l.push(e.sCount[m]),e.sCount[m]-=e.blkIndent);break}s.push(e.bMarks[m]),c.push(e.bsCount[m]),u.push(e.tShift[m]),l.push(e.sCount[m]),e.sCount[m]=-1}let h=e.blkIndent;e.blkIndent=0;let g=e.push(`blockquote_open`,`blockquote`,1);g.markup=`>`;let _=[t,0];g.map=_,e.md.block.tokenize(e,t,m);let v=e.push(`blockquote_close`,`blockquote`,-1);v.markup=`>`,e.lineMax=o,e.parentType=f,_[1]=e.line;for(let n=0;n<u.length;n++)e.bMarks[n+t]=s[n],e.tShift[n+t]=u[n],e.sCount[n+t]=l[n],e.bsCount[n+t]=c[n];return e.blkIndent=h,!0}function Bc(e,t,n,r){let i=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;let a=e.bMarks[t]+e.tShift[t],o=e.src.charCodeAt(a++);if(o!==42&&o!==45&&o!==95)return!1;let s=1;for(;a<i;){let t=e.src.charCodeAt(a++);if(t!==o&&!q(t))return!1;t===o&&s++}if(s<3)return!1;if(r)return!0;e.line=t+1;let c=e.push(`hr`,`hr`,0);return c.map=[t,e.line],c.markup=Array(s+1).join(String.fromCharCode(o)),!0}function Vc(e,t){let n=e.eMarks[t],r=e.bMarks[t]+e.tShift[t],i=e.src.charCodeAt(r++);return i!==42&&i!==45&&i!==43||r<n&&!q(e.src.charCodeAt(r))?-1:r}function Hc(e,t){let n=e.bMarks[t]+e.tShift[t],r=e.eMarks[t],i=n;if(i+1>=r)return-1;let a=e.src.charCodeAt(i++);if(a<48||a>57)return-1;for(;;){if(i>=r)return-1;if(a=e.src.charCodeAt(i++),a>=48&&a<=57){if(i-n>=10)return-1;continue}if(a===41||a===46)break;return-1}return i<r&&(a=e.src.charCodeAt(i),!q(a))?-1:i}function Uc(e,t){let n=e.level+2;for(let r=t+2,i=e.tokens.length-2;r<i;r++)e.tokens[r].level===n&&e.tokens[r].type===`paragraph_open`&&(e.tokens[r+2].hidden=!0,e.tokens[r].hidden=!0,r+=2)}function Wc(e,t,n,r){let i,a,o,s,c=t,l=!0;if(e.sCount[c]-e.blkIndent>=4||e.listIndent>=0&&e.sCount[c]-e.listIndent>=4&&e.sCount[c]<e.blkIndent)return!1;let u=!1;r&&e.parentType===`paragraph`&&e.sCount[c]>=e.blkIndent&&(u=!0);let d,f,p;if((p=Hc(e,c))>=0){if(d=!0,o=e.bMarks[c]+e.tShift[c],f=Number(e.src.slice(o,p-1)),u&&f!==1)return!1}else if((p=Vc(e,c))>=0)d=!1;else return!1;if(u&&e.skipSpaces(p)>=e.eMarks[c])return!1;if(r)return!0;let m=e.src.charCodeAt(p-1),h=e.tokens.length;d?(s=e.push(`ordered_list_open`,`ol`,1),f!==1&&(s.attrs=[[`start`,f]])):s=e.push(`bullet_list_open`,`ul`,1);let g=[c,0];s.map=g,s.markup=String.fromCharCode(m);let _=!1,v=e.md.block.ruler.getRules(`list`),y=e.parentType;for(e.parentType=`list`;c<n;){a=p,i=e.eMarks[c];let t=e.sCount[c]+p-(e.bMarks[c]+e.tShift[c]),r=t;for(;a<i;){let t=e.src.charCodeAt(a);if(t===9)r+=4-(r+e.bsCount[c])%4;else if(t===32)r++;else break;a++}let u=a,f;f=u>=i?1:r-t,f>4&&(f=1);let h=t+f;s=e.push(`list_item_open`,`li`,1),s.markup=String.fromCharCode(m);let g=[c,0];s.map=g,d&&(s.info=e.src.slice(o,p-1));let y=e.tight,b=e.tShift[c],x=e.sCount[c],S=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=h,e.tight=!0,e.tShift[c]=u-e.bMarks[c],e.sCount[c]=r,u>=i&&e.isEmpty(c+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,c,n,!0),(!e.tight||_)&&(l=!1),_=e.line-c>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=S,e.tShift[c]=b,e.sCount[c]=x,e.tight=y,s=e.push(`list_item_close`,`li`,-1),s.markup=String.fromCharCode(m),c=e.line,g[1]=c,c>=n||e.sCount[c]<e.blkIndent||e.sCount[c]-e.blkIndent>=4)break;let C=!1;for(let t=0,r=v.length;t<r;t++)if(v[t](e,c,n,!0)){C=!0;break}if(C)break;if(d){if(p=Hc(e,c),p<0)break;o=e.bMarks[c]+e.tShift[c]}else if(p=Vc(e,c),p<0)break;if(m!==e.src.charCodeAt(p-1))break}return s=d?e.push(`ordered_list_close`,`ol`,-1):e.push(`bullet_list_close`,`ul`,-1),s.markup=String.fromCharCode(m),g[1]=c,e.line=c,e.parentType=y,l&&Uc(e,h),!0}function Gc(e,t,n,r){let i=e.bMarks[t]+e.tShift[t],a=e.eMarks[t],o=t+1;if(e.sCount[t]-e.blkIndent>=4||e.src.charCodeAt(i)!==91)return!1;function s(t){let n=e.lineMax;if(t>=n||e.isEmpty(t))return null;let r=!1;if(e.sCount[t]-e.blkIndent>3&&(r=!0),e.sCount[t]<0&&(r=!0),!r){let r=e.md.block.ruler.getRules(`reference`),i=e.parentType;e.parentType=`reference`;let a=!1;for(let i=0,o=r.length;i<o;i++)if(r[i](e,t,n,!0)){a=!0;break}if(e.parentType=i,a)return null}let i=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];return e.src.slice(i,a+1)}let c=e.src.slice(i,a+1);a=c.length;let l=-1;for(i=1;i<a;i++){let e=c.charCodeAt(i);if(e===91)return!1;if(e===93){l=i;break}else if(e===10){let e=s(o);e!==null&&(c+=e,a=c.length,o++)}else if(e===92&&(i++,i<a&&c.charCodeAt(i)===10)){let e=s(o);e!==null&&(c+=e,a=c.length,o++)}}if(l<0||c.charCodeAt(l+1)!==58)return!1;for(i=l+2;i<a;i++){let e=c.charCodeAt(i);if(e===10){let e=s(o);e!==null&&(c+=e,a=c.length,o++)}else if(!q(e))break}let u=e.md.helpers.parseLinkDestination(c,i,a);if(!u.ok)return!1;let d=e.md.normalizeLink(u.str);if(!e.md.validateLink(d))return!1;i=u.pos;let f=i,p=o,m=i;for(;i<a;i++){let e=c.charCodeAt(i);if(e===10){let e=s(o);e!==null&&(c+=e,a=c.length,o++)}else if(!q(e))break}let h=e.md.helpers.parseLinkTitle(c,i,a);for(;h.can_continue;){let t=s(o);if(t===null)break;c+=t,i=a,a=c.length,o++,h=e.md.helpers.parseLinkTitle(c,i,a,h)}let g;for(i<a&&m!==i&&h.ok?(g=h.str,i=h.pos):(g=``,i=f,o=p);i<a&&q(c.charCodeAt(i));)i++;if(i<a&&c.charCodeAt(i)!==10&&g)for(g=``,i=f,o=p;i<a&&q(c.charCodeAt(i));)i++;if(i<a&&c.charCodeAt(i)!==10)return!1;let _=qs(c.slice(1,l));return _?r?!0:(e.env.references===void 0&&(e.env.references={}),e.env.references[_]===void 0&&(e.env.references[_]={title:g,href:d}),e.line=o,!0):!1}var Kc=`address.article.aside.base.basefont.blockquote.body.caption.center.col.colgroup.dd.details.dialog.dir.div.dl.dt.fieldset.figcaption.figure.footer.form.frame.frameset.h1.h2.h3.h4.h5.h6.head.header.hr.html.iframe.legend.li.link.main.menu.menuitem.nav.noframes.ol.optgroup.option.p.param.search.section.summary.table.tbody.td.tfoot.th.thead.title.tr.track.ul`.split(`.`),qc=RegExp(`^(?:<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^"'=<>\`\\x00-\\x20]+|'[^']*'|"[^"]*"))?)*\\s*\\/?>|<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>|<!---?>|<!--(?:[^-]|-[^-]|--[^>])*-->|<[?][\\s\\S]*?[?]>|<![A-Za-z][^>]*>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>)`),Jc=RegExp(`^(?:<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^"'=<>\`\\x00-\\x20]+|'[^']*'|"[^"]*"))?)*\\s*\\/?>|<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>)`),Yc=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[RegExp(`^</?(`+Kc.join(`|`)+`)(?=(\\s|/?>|$))`,`i`),/^$/,!0],[RegExp(Jc.source+`\\s*$`),/^$/,!1]];function Xc(e,t,n,r){let i=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||!e.md.options.html||e.src.charCodeAt(i)!==60)return!1;let o=e.src.slice(i,a),s=0;for(;s<Yc.length&&!Yc[s][0].test(o);s++);if(s===Yc.length)return!1;if(r)return Yc[s][2];let c=t+1,l=Yc[s][1].test(``);if(!Yc[s][1].test(o)){for(;c<n&&!(e.sCount[c]<e.blkIndent&&(l||!e.isEmpty(c)));c++)if(i=e.bMarks[c]+e.tShift[c],a=e.eMarks[c],o=e.src.slice(i,a),Yc[s][1].test(o)){o.length!==0&&c++;break}}e.line=c;let u=e.push(`html_block`,``,0);return u.map=[t,c],u.content=e.getLines(t,c,e.blkIndent,!0),!0}function Zc(e,t,n,r){let i=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;let o=e.src.charCodeAt(i);if(o!==35||i>=a)return!1;let s=1;for(o=e.src.charCodeAt(++i);o===35&&i<a&&s<=6;)s++,o=e.src.charCodeAt(++i);if(s>6||i<a&&!q(o))return!1;if(r)return!0;a=e.skipSpacesBack(a,i);let c=e.skipCharsBack(a,35,i);c>i&&q(e.src.charCodeAt(c-1))&&(a=c),e.line=t+1;let l=e.push(`heading_open`,`h`+String(s),1);l.markup=`########`.slice(0,s),l.map=[t,e.line];let u=e.push(`inline`,``,0);u.content=Ys(e.src.slice(i,a)),u.map=[t,e.line],u.children=[];let d=e.push(`heading_close`,`h`+String(s),-1);return d.markup=`########`.slice(0,s),!0}function Qc(e,t,n){let r=e.md.block.ruler.getRules(`paragraph`);if(e.sCount[t]-e.blkIndent>=4)return!1;let i=e.parentType;e.parentType=`paragraph`;let a=0,o,s=t+1;for(;s<n&&!e.isEmpty(s);s++){if(e.sCount[s]-e.blkIndent>3)continue;if(e.sCount[s]>=e.blkIndent){let t=e.bMarks[s]+e.tShift[s],n=e.eMarks[s];if(t<n&&(o=e.src.charCodeAt(t),(o===45||o===61)&&(t=e.skipChars(t,o),t=e.skipSpaces(t),t>=n))){a=o===61?1:2;break}}if(e.sCount[s]<0)continue;let t=!1;for(let i=0,a=r.length;i<a;i++)if(r[i](e,s,n,!0)){t=!0;break}if(t)break}if(!a)return e.parentType=i,!1;let c=Ys(e.getLines(t,s,e.blkIndent,!1));e.line=s+1;let l=e.push(`heading_open`,`h`+String(a),1);l.markup=String.fromCharCode(o),l.map=[t,e.line];let u=e.push(`inline`,``,0);u.content=c,u.map=[t,e.line-1],u.children=[];let d=e.push(`heading_close`,`h`+String(a),-1);return d.markup=String.fromCharCode(o),e.parentType=i,!0}function $c(e,t,n){let r=e.md.block.ruler.getRules(`paragraph`),i=e.parentType,a=t+1;for(e.parentType=`paragraph`;a<n&&!e.isEmpty(a);a++){if(e.sCount[a]-e.blkIndent>3||e.sCount[a]<0)continue;let t=!1;for(let i=0,o=r.length;i<o;i++)if(r[i](e,a,n,!0)){t=!0;break}if(t)break}let o=Ys(e.getLines(t,a,e.blkIndent,!1));e.line=a;let s=e.push(`paragraph_open`,`p`,1);s.map=[t,e.line];let c=e.push(`inline`,``,0);return c.content=o,c.map=[t,e.line],c.children=[],e.push(`paragraph_close`,`p`,-1),e.parentType=i,!0}var el=[[`table`,Ic,[`paragraph`,`reference`]],[`code`,Lc],[`fence`,Rc,[`paragraph`,`reference`,`blockquote`,`list`]],[`blockquote`,zc,[`paragraph`,`reference`,`blockquote`,`list`]],[`hr`,Bc,[`paragraph`,`reference`,`blockquote`,`list`]],[`list`,Wc,[`paragraph`,`reference`,`blockquote`]],[`reference`,Gc],[`html_block`,Xc,[`paragraph`,`reference`,`blockquote`]],[`heading`,Zc,[`paragraph`,`reference`,`blockquote`]],[`lheading`,Qc],[`paragraph`,$c]];function tl(){this.ruler=new rc;for(let e=0;e<el.length;e++)this.ruler.push(el[e][0],el[e][1],{alt:(el[e][2]||[]).slice()})}tl.prototype.tokenize=function(e,t,n){let r=this.ruler.getRules(``),i=r.length,a=e.md.options.maxNesting,o=t,s=!1;for(;o<n&&(e.line=o=e.skipEmptyLines(o),!(o>=n||e.sCount[o]<e.blkIndent));){if(e.level>=a){e.line=n;break}let t=e.line,c=!1;for(let a=0;a<i;a++)if(c=r[a](e,o,n,!1),c){if(t>=e.line)throw Error(`block rule didn't increment state.line`);break}if(!c)throw Error(`none of the block rules matched`);e.tight=!s,e.isEmpty(e.line-1)&&(s=!0),o=e.line,o<n&&e.isEmpty(o)&&(s=!0,o++,e.line=o)}},tl.prototype.parse=function(e,t,n,r){if(!e)return;let i=new this.State(e,t,n,r);this.tokenize(i,i.line,i.lineMax)},tl.prototype.State=Mc;function nl(e,t,n,r){this.src=e,this.env=n,this.md=t,this.tokens=r,this.tokens_meta=Array(r.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending=``,this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1,this.linkLevel=0}nl.prototype.pushPending=function(){let e=new ic(`text`,``,0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending=``,e},nl.prototype.push=function(e,t,n){this.pending&&this.pushPending();let r=new ic(e,t,n),i=null;return n<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),r.level=this.level,n>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],i={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(r),this.tokens_meta.push(i),r},nl.prototype.scanDelims=function(e,t){let n=this.posMax,r=this.src.charCodeAt(e),i;if(e===0)i=32;else if(e===1)i=this.src.charCodeAt(0),(i&63488)==55296&&(i=65533);else if(i=this.src.charCodeAt(e-1),(i&64512)==56320){let t=this.src.charCodeAt(e-2);i=(t&64512)==55296?65536+(t-55296<<10)+(i-56320):65533}else(i&64512)==55296&&(i=65533);let a=e;for(;a<n&&this.src.charCodeAt(a)===r;)a++;let o=a-e,s=a<n?this.src.charCodeAt(a):32;if((s&64512)==55296){let e=this.src.charCodeAt(a+1);s=(e&64512)==56320?65536+(s-55296<<10)+(e-56320):65533}else(s&64512)==56320&&(s=65533);let c=Ks(i)||Gs(i),l=Ks(s)||Gs(s),u=Us(i),d=Us(s),f=!d&&(!l||u||c),p=!u&&(!c||d||l);return{can_open:f&&(t||!p||c),can_close:p&&(t||!f||l),length:o}},nl.prototype.Token=ic;function rl(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1}}function il(e,t){let n=e.pos;for(;n<e.posMax&&!rl(e.src.charCodeAt(n));)n++;return n===e.pos?!1:(t||(e.pending+=e.src.slice(e.pos,n)),e.pos=n,!0)}var al=/(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i;function ol(e,t){if(!e.md.options.linkify||e.linkLevel>0)return!1;let n=e.pos,r=e.posMax;if(n+3>r||e.src.charCodeAt(n)!==58||e.src.charCodeAt(n+1)!==47||e.src.charCodeAt(n+2)!==47)return!1;let i=e.pending.match(al);if(!i)return!1;let a=i[1],o=e.md.linkify.matchAtStart(e.src.slice(n-a.length));if(!o)return!1;let s=o.url;if(s.length<=a.length)return!1;let c=s.length;for(;c>0&&s.charCodeAt(c-1)===42;)c--;c!==s.length&&(s=s.slice(0,c));let l=e.md.normalizeLink(s);if(!e.md.validateLink(l))return!1;if(!t){e.pending=e.pending.slice(0,-a.length);let t=e.push(`link_open`,`a`,1);t.attrs=[[`href`,l]],t.markup=`linkify`,t.info=`auto`;let n=e.push(`text`,``,0);n.content=e.md.normalizeLinkText(s);let r=e.push(`link_close`,`a`,-1);r.markup=`linkify`,r.info=`auto`}return e.pos+=s.length-a.length,!0}function sl(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==10)return!1;let r=e.pending.length-1,i=e.posMax;if(!t)if(r>=0&&e.pending.charCodeAt(r)===32)if(r>=1&&e.pending.charCodeAt(r-1)===32){let t=r-1;for(;t>=1&&e.pending.charCodeAt(t-1)===32;)t--;e.pending=e.pending.slice(0,t),e.push(`hardbreak`,`br`,0)}else e.pending=e.pending.slice(0,-1),e.push(`softbreak`,`br`,0);else e.push(`softbreak`,`br`,0);for(n++;n<i&&q(e.src.charCodeAt(n));)n++;return e.pos=n,!0}var cl=[];for(let e=0;e<256;e++)cl.push(0);`\\!"#$%&'()*+,./:;<=>?@[]^_\`{|}~-`.split(``).forEach(function(e){cl[e.charCodeAt(0)]=1});function ll(e,t){let n=e.pos,r=e.posMax;if(e.src.charCodeAt(n)!==92||(n++,n>=r))return!1;let i=e.src.charCodeAt(n);if(i===10){for(t||e.push(`hardbreak`,`br`,0),n++;n<r&&(i=e.src.charCodeAt(n),q(i));)n++;return e.pos=n,!0}if(i===32){if(!t){let t=e.push(`text_special`,``,0);t.content=`\\`,t.markup=`\\`,t.info=`escape`}return e.pos=n,!0}let a=e.src[n];if(i>=55296&&i<=56319&&n+1<r){let t=e.src.charCodeAt(n+1);t>=56320&&t<=57343&&(a+=e.src[n+1],n++)}let o=`\\`+a;if(!t){let t=e.push(`text_special`,``,0);i<256&&cl[i]!==0?t.content=a:t.content=o,t.markup=o,t.info=`escape`}return e.pos=n+1,!0}function ul(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==96)return!1;let r=n;n++;let i=e.posMax;for(;n<i&&e.src.charCodeAt(n)===96;)n++;let a=e.src.slice(r,n),o=a.length;if(e.backticksScanned&&(e.backticks[o]||0)<=r)return t||(e.pending+=a),e.pos+=o,!0;let s=n,c;for(;(c=e.src.indexOf("`",s))!==-1;){for(s=c+1;s<i&&e.src.charCodeAt(s)===96;)s++;let r=s-c;if(r===o){if(!t){let t=e.push(`code_inline`,`code`,0);t.markup=a,t.content=e.src.slice(n,c).replace(/\n/g,` `).replace(/^ (.+) $/,`$1`)}return e.pos=s,!0}e.backticks[r]=c}return e.backticksScanned=!0,t||(e.pending+=a),e.pos+=o,!0}function dl(e,t){let n=e.pos,r=e.src.charCodeAt(n);if(t||r!==126)return!1;let i=e.scanDelims(e.pos,!0),a=i.length,o=String.fromCharCode(r);if(a<2)return!1;let s;a%2&&(s=e.push(`text`,``,0),s.content=o,a--);for(let t=0;t<a;t+=2)s=e.push(`text`,``,0),s.content=o+o,e.delimiters.push({marker:r,length:0,token:e.tokens.length-1,end:-1,open:i.can_open,close:i.can_close});return e.pos+=i.length,!0}function fl(e,t){let n,r=[],i=t.length;for(let a=0;a<i;a++){let i=t[a];if(i.marker!==126||i.end===-1)continue;let o=t[i.end];n=e.tokens[i.token],n.type=`s_open`,n.tag=`s`,n.nesting=1,n.markup=`~~`,n.content=``,n=e.tokens[o.token],n.type=`s_close`,n.tag=`s`,n.nesting=-1,n.markup=`~~`,n.content=``,e.tokens[o.token-1].type===`text`&&e.tokens[o.token-1].content===`~`&&r.push(o.token-1)}for(;r.length;){let t=r.pop(),i=t+1;for(;i<e.tokens.length&&e.tokens[i].type===`s_close`;)i++;i--,t!==i&&(n=e.tokens[i],e.tokens[i]=e.tokens[t],e.tokens[t]=n)}}function pl(e){let t=e.tokens_meta,n=e.tokens_meta.length;fl(e,e.delimiters);for(let r=0;r<n;r++)t[r]&&t[r].delimiters&&fl(e,t[r].delimiters)}var ml={tokenize:dl,postProcess:pl};function hl(e,t){let n=e.pos,r=e.src.charCodeAt(n);if(t||r!==95&&r!==42)return!1;let i=e.scanDelims(e.pos,r===42);for(let t=0;t<i.length;t++){let t=e.push(`text`,``,0);t.content=String.fromCharCode(r),e.delimiters.push({marker:r,length:i.length,token:e.tokens.length-1,end:-1,open:i.can_open,close:i.can_close})}return e.pos+=i.length,!0}function gl(e,t){let n=t.length;for(let r=n-1;r>=0;r--){let n=t[r];if(n.marker!==95&&n.marker!==42||n.end===-1)continue;let i=t[n.end],a=r>0&&t[r-1].end===n.end+1&&t[r-1].marker===n.marker&&t[r-1].token===n.token-1&&t[n.end+1].token===i.token+1,o=String.fromCharCode(n.marker),s=e.tokens[n.token];s.type=a?`strong_open`:`em_open`,s.tag=a?`strong`:`em`,s.nesting=1,s.markup=a?o+o:o,s.content=``;let c=e.tokens[i.token];c.type=a?`strong_close`:`em_close`,c.tag=a?`strong`:`em`,c.nesting=-1,c.markup=a?o+o:o,c.content=``,a&&(e.tokens[t[r-1].token].content=``,e.tokens[t[n.end+1].token].content=``,r--)}}function _l(e){let t=e.tokens_meta,n=e.tokens_meta.length;gl(e,e.delimiters);for(let r=0;r<n;r++)t[r]&&t[r].delimiters&&gl(e,t[r].delimiters)}var vl={tokenize:hl,postProcess:_l};function yl(e,t){let n,r,i,a,o=``,s=``,c=e.pos,l=!0;if(e.src.charCodeAt(e.pos)!==91)return!1;let u=e.pos,d=e.posMax,f=e.pos+1,p=e.md.helpers.parseLinkLabel(e,e.pos,!0);if(p<0)return!1;let m=p+1;if(m<d&&e.src.charCodeAt(m)===40){for(l=!1,m++;m<d&&(n=e.src.charCodeAt(m),!(!q(n)&&n!==10));m++);if(m>=d)return!1;if(c=m,i=e.md.helpers.parseLinkDestination(e.src,m,e.posMax),i.ok){for(o=e.md.normalizeLink(i.str),e.md.validateLink(o)?m=i.pos:o=``,c=m;m<d&&(n=e.src.charCodeAt(m),!(!q(n)&&n!==10));m++);if(i=e.md.helpers.parseLinkTitle(e.src,m,e.posMax),m<d&&c!==m&&i.ok)for(s=i.str,m=i.pos;m<d&&(n=e.src.charCodeAt(m),!(!q(n)&&n!==10));m++);}(m>=d||e.src.charCodeAt(m)!==41)&&(l=!0),m++}if(l){if(e.env.references===void 0)return!1;if(m<d&&e.src.charCodeAt(m)===91?(c=m+1,m=e.md.helpers.parseLinkLabel(e,m),m>=0?r=e.src.slice(c,m++):m=p+1):m=p+1,r||=e.src.slice(f,p),a=e.env.references[qs(r)],!a)return e.pos=u,!1;o=a.href,s=a.title}if(!t){e.pos=f,e.posMax=p;let t=e.push(`link_open`,`a`,1),n=[[`href`,o]];t.attrs=n,s&&n.push([`title`,s]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push(`link_close`,`a`,-1)}return e.pos=m,e.posMax=d,!0}function bl(e,t){let n,r,i,a,o,s,c,l,u=``,d=e.pos,f=e.posMax;if(e.src.charCodeAt(e.pos)!==33||e.src.charCodeAt(e.pos+1)!==91)return!1;let p=e.pos+2,m=e.md.helpers.parseLinkLabel(e,e.pos+1,!1);if(m<0)return!1;if(a=m+1,a<f&&e.src.charCodeAt(a)===40){for(a++;a<f&&(n=e.src.charCodeAt(a),!(!q(n)&&n!==10));a++);if(a>=f)return!1;for(l=a,s=e.md.helpers.parseLinkDestination(e.src,a,e.posMax),s.ok&&(u=e.md.normalizeLink(s.str),e.md.validateLink(u)?a=s.pos:u=``),l=a;a<f&&(n=e.src.charCodeAt(a),!(!q(n)&&n!==10));a++);if(s=e.md.helpers.parseLinkTitle(e.src,a,e.posMax),a<f&&l!==a&&s.ok)for(c=s.str,a=s.pos;a<f&&(n=e.src.charCodeAt(a),!(!q(n)&&n!==10));a++);else c=``;if(a>=f||e.src.charCodeAt(a)!==41)return e.pos=d,!1;a++}else{if(e.env.references===void 0)return!1;if(a<f&&e.src.charCodeAt(a)===91?(l=a+1,a=e.md.helpers.parseLinkLabel(e,a),a>=0?i=e.src.slice(l,a++):a=m+1):a=m+1,i||=e.src.slice(p,m),o=e.env.references[qs(i)],!o)return e.pos=d,!1;u=o.href,c=o.title}if(!t){r=e.src.slice(p,m);let t=[];e.md.inline.parse(r,e.md,e.env,t);let n=e.push(`image`,`img`,0),i=[[`src`,u],[`alt`,``]];n.attrs=i,n.children=t,n.content=r,c&&i.push([`title`,c])}return e.pos=a,e.posMax=f,!0}var xl=/^([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,Sl=/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\x00-\x20]*)$/;function Cl(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==60)return!1;let r=e.pos,i=e.posMax;for(;;){if(++n>=i)return!1;let t=e.src.charCodeAt(n);if(t===60)return!1;if(t===62)break}let a=e.src.slice(r+1,n);if(Sl.test(a)){let n=e.md.normalizeLink(a);if(!e.md.validateLink(n))return!1;if(!t){let t=e.push(`link_open`,`a`,1);t.attrs=[[`href`,n]],t.markup=`autolink`,t.info=`auto`;let r=e.push(`text`,``,0);r.content=e.md.normalizeLinkText(a);let i=e.push(`link_close`,`a`,-1);i.markup=`autolink`,i.info=`auto`}return e.pos+=a.length+2,!0}if(xl.test(a)){let n=e.md.normalizeLink(`mailto:`+a);if(!e.md.validateLink(n))return!1;if(!t){let t=e.push(`link_open`,`a`,1);t.attrs=[[`href`,n]],t.markup=`autolink`,t.info=`auto`;let r=e.push(`text`,``,0);r.content=e.md.normalizeLinkText(a);let i=e.push(`link_close`,`a`,-1);i.markup=`autolink`,i.info=`auto`}return e.pos+=a.length+2,!0}return!1}function wl(e){return/^<a[>\s]/i.test(e)}function Tl(e){return/^<\/a\s*>/i.test(e)}function El(e){let t=e|32;return t>=97&&t<=122}function Dl(e,t){if(!e.md.options.html)return!1;let n=e.posMax,r=e.pos;if(e.src.charCodeAt(r)!==60||r+2>=n)return!1;let i=e.src.charCodeAt(r+1);if(i!==33&&i!==63&&i!==47&&!El(i))return!1;let a=e.src.slice(r).match(qc);if(!a)return!1;if(!t){let t=e.push(`html_inline`,``,0);t.content=a[0],wl(t.content)&&e.linkLevel++,Tl(t.content)&&e.linkLevel--}return e.pos+=a[0].length,!0}var Ol=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,kl=/^&([a-z][a-z0-9]{1,31});/i;function Al(e,t){let n=e.pos,r=e.posMax;if(e.src.charCodeAt(n)!==38||n+1>=r)return!1;if(e.src.charCodeAt(n+1)===35){let r=e.src.slice(n).match(Ol);if(r){if(!t){let t=r[1][0].toLowerCase()===`x`?parseInt(r[1].slice(1),16):parseInt(r[1],10),n=e.push(`text_special`,``,0);n.content=Os(t)?ks(t):ks(65533),n.markup=r[0],n.info=`entity`}return e.pos+=r[0].length,!0}}else{let r=e.src.slice(n).match(kl);if(r){let n=bs(r[0]);if(n!==r[0]){if(!t){let t=e.push(`text_special`,``,0);t.content=n,t.markup=r[0],t.info=`entity`}return e.pos+=r[0].length,!0}}}return!1}function jl(e){let t={},n=e.length;if(!n)return;let r=0,i=-2,a=[];for(let o=0;o<n;o++){let n=e[o];if(a.push(0),(e[r].marker!==n.marker||i!==n.token-1)&&(r=o),i=n.token,n.length=n.length||0,!n.close)continue;t.hasOwnProperty(n.marker)||(t[n.marker]=[-1,-1,-1,-1,-1,-1]);let s=t[n.marker][(n.open?3:0)+n.length%3],c=r-a[r]-1,l=c;for(;c>s;c-=a[c]+1){let t=e[c];if(t.marker===n.marker&&t.open&&t.end<0){let r=!1;if((t.close||n.open)&&(t.length+n.length)%3==0&&(t.length%3!=0||n.length%3!=0)&&(r=!0),!r){let r=c>0&&!e[c-1].open?a[c-1]+1:0;a[o]=o-c+r,a[c]=r,n.open=!1,t.end=o,t.close=!1,l=-1,i=-2;break}}}l!==-1&&(t[n.marker][(n.open?3:0)+(n.length||0)%3]=l)}}function Ml(e){let t=e.tokens_meta,n=e.tokens_meta.length;jl(e.delimiters);for(let e=0;e<n;e++)t[e]&&t[e].delimiters&&jl(t[e].delimiters)}function Nl(e){let t,n,r=0,i=e.tokens,a=e.tokens.length;for(t=n=0;t<a;t++)i[t].nesting<0&&r--,i[t].level=r,i[t].nesting>0&&r++,i[t].type===`text`&&t+1<a&&i[t+1].type===`text`?i[t+1].content=i[t].content+i[t+1].content:(t!==n&&(i[n]=i[t]),n++);t!==n&&(i.length=n)}var Pl=[[`text`,il],[`linkify`,ol],[`newline`,sl],[`escape`,ll],[`backticks`,ul],[`strikethrough`,ml.tokenize],[`emphasis`,vl.tokenize],[`link`,yl],[`image`,bl],[`autolink`,Cl],[`html_inline`,Dl],[`entity`,Al]],Fl=[[`balance_pairs`,Ml],[`strikethrough`,ml.postProcess],[`emphasis`,vl.postProcess],[`fragments_join`,Nl]];function Il(){this.ruler=new rc;for(let e=0;e<Pl.length;e++)this.ruler.push(Pl[e][0],Pl[e][1]);this.ruler2=new rc;for(let e=0;e<Fl.length;e++)this.ruler2.push(Fl[e][0],Fl[e][1])}Il.prototype.skipToken=function(e){let t=e.pos,n=this.ruler.getRules(``),r=n.length,i=e.md.options.maxNesting,a=e.cache;if(a[t]!==void 0){e.pos=a[t];return}let o=!1;if(e.level<i){for(let i=0;i<r;i++)if(e.level++,o=n[i](e,!0),e.level--,o){if(t>=e.pos)throw Error(`inline rule didn't increment state.pos`);break}}else e.pos=e.posMax;o||e.pos++,a[t]=e.pos},Il.prototype.tokenize=function(e){let t=this.ruler.getRules(``),n=t.length,r=e.posMax,i=e.md.options.maxNesting;for(;e.pos<r;){let a=e.pos,o=!1;if(e.level<i){for(let r=0;r<n;r++)if(o=t[r](e,!1),o){if(a>=e.pos)throw Error(`inline rule didn't increment state.pos`);break}}if(o){if(e.pos>=r)break;continue}e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},Il.prototype.parse=function(e,t,n,r){let i=new this.State(e,t,n,r);this.tokenize(i);let a=this.ruler2.getRules(``),o=a.length;for(let e=0;e<o;e++)a[e](i)},Il.prototype.State=nl;function Ll(e){let t={};e||={},t.src_Any=Jo.source,t.src_Cc=Yo.source,t.src_Z=$o.source,t.src_P=Zo.source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join(`|`),t.src_ZCc=[t.src_Z,t.src_Cc].join(`|`);let n=`[><|]`;return t.src_pseudo_letter=`(?:(?!${n}|${t.src_ZPCc})${t.src_Any})`,t.src_ip4=`(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)`,t.src_auth=`(?:(?:(?!${t.src_ZCc}|[@/\\[\\]()]).){1,50}@)?`,t.src_port=`(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?`,t.src_host_terminator=`(?=$|${n}|${t.src_ZPCc})(?!${e[`---`]?`-(?!--)|`:`-|`}_|:\\d|\\.-|\\.(?!$|${t.src_ZPCc}))`,t.src_path=`(?:[/?#](?:(?!${t.src_ZCc}|${n}|[()[\\]{}.,"'?!\\-;]).|\\[(?:(?!${t.src_ZCc}|\\]).)*\\]|\\((?:(?!${t.src_ZCc}|[)]).)*\\)|\\{(?:(?!${t.src_ZCc}|[}]).)*\\}|\\"(?:(?!${t.src_ZCc}|["]).)+\\"|\\'(?:(?!${t.src_ZCc}|[']).)+\\'|\\'(?=${t.src_pseudo_letter}|[-])|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!${t.src_ZCc}|[.]|$)|`+(e[`---`]?`\\-(?!--(?:[^-]|$))(?:-*)|`:`\\-+|`)+`,(?!${t.src_ZCc}|$)|;(?!${t.src_ZCc}|$)|\\!+(?!${t.src_ZCc}|[!]|$)|\\?(?!${t.src_ZCc}|[?]|$))+|\\/)?`,t.src_email_name=`[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]{0,63}`,t.src_xn=`xn--[a-z0-9\\-]{1,59}`,t.src_domain_root=`(?:`+t.src_xn+`|${t.src_pseudo_letter}{1,63})`,t.src_domain=`(?:`+t.src_xn+`|(?:${t.src_pseudo_letter})|(?:${t.src_pseudo_letter}(?:-|${t.src_pseudo_letter}){0,61}${t.src_pseudo_letter}))`,t.src_host=`(?:(?:(?:(?:${t.src_domain})\\.)*${t.src_domain}))`,t.tpl_host_fuzzy=`(?:`+t.src_ip4+`|(?:(?:(?:${t.src_domain})\\.)+(?:%TLDS%)))`,t.tpl_host_no_ip_fuzzy=`(?:(?:(?:${t.src_domain})\\.)+(?:%TLDS%))`,t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test=`localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:${t.src_ZPCc}|>|$))`,t.tpl_email_fuzzy=`(^|${n}|"|\\(|${t.src_ZCc})(${t.src_email_name}@${t.tpl_host_fuzzy_strict})`,t.tpl_link_fuzzy=`(^|(?![.:/\\-_@])(?:[$+<=>^\`|\uff5c]|${t.src_ZPCc}))((?![$+<=>^\`|\uff5c])${t.tpl_host_port_fuzzy_strict}${t.src_path})`,t.tpl_link_no_ip_fuzzy=`(^|(?![.:/\\-_@])(?:[$+<=>^\`|\uff5c]|${t.src_ZPCc}))((?![$+<=>^\`|\uff5c])${t.tpl_host_port_no_ip_fuzzy_strict}${t.src_path})`,t}function Rl(e){return Array.prototype.slice.call(arguments,1).forEach(function(t){t&&Object.keys(t).forEach(function(n){e[n]=t[n]})}),e}function J(e){return Object.prototype.toString.call(e)}function Y(e){return J(e)===`[object String]`}function zl(e){return J(e)===`[object Object]`}function Bl(e){return J(e)===`[object RegExp]`}function Vl(e){return J(e)===`[object Function]`}function Hl(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,`\\$&`)}var Ul={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function Wl(e){return Object.keys(e||{}).reduce(function(e,t){return e||Ul.hasOwnProperty(t)},!1)}var Gl={"http:":{validate:function(e,t,n){let r=e.slice(t);return n.re.http||(n.re.http=RegExp(`^\\/\\/${n.re.src_auth}${n.re.src_host_port_strict}${n.re.src_path}`,`i`)),n.re.http.test(r)?r.match(n.re.http)[0].length:0}},"https:":`http:`,"ftp:":`http:`,"//":{validate:function(e,t,n){let r=e.slice(t);return n.re.no_http||(n.re.no_http=RegExp(`^`+n.re.src_auth+`(?:localhost|(?:(?:${n.re.src_domain})\\.)+${n.re.src_domain_root})`+n.re.src_port+n.re.src_host_terminator+n.re.src_path,`i`)),n.re.no_http.test(r)?t>=3&&e[t-3]===`:`||t>=3&&e[t-3]===`/`?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){let r=e.slice(t);return n.re.mailto||(n.re.mailto=RegExp(`^${n.re.src_email_name}@${n.re.src_host_strict}`,`i`)),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},Kl=`a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]`,ql=`biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф`.split(`|`);function Jl(e){return function(t,n){let r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}function Yl(){return function(e,t){t.normalize(e)}}function Xl(e){let t=e.re=Ll(e.__opts__),n=e.__tlds__.slice();e.onCompile(),e.__tlds_replaced__||n.push(Kl),n.push(t.src_xn),t.src_tlds=n.join(`|`);function r(e){return e.replace(`%TLDS%`,t.src_tlds)}t.email_fuzzy=RegExp(r(t.tpl_email_fuzzy),`i`),t.email_fuzzy_global=RegExp(r(t.tpl_email_fuzzy),`ig`),t.link_fuzzy=RegExp(r(t.tpl_link_fuzzy),`i`),t.link_fuzzy_global=RegExp(r(t.tpl_link_fuzzy),`ig`),t.link_no_ip_fuzzy=RegExp(r(t.tpl_link_no_ip_fuzzy),`i`),t.link_no_ip_fuzzy_global=RegExp(r(t.tpl_link_no_ip_fuzzy),`ig`),t.host_fuzzy_test=RegExp(r(t.tpl_host_fuzzy_test),`i`);let i=[];e.__compiled__={};function a(e,t){throw Error(`(LinkifyIt) Invalid schema "${e}": ${t}`)}Object.keys(e.__schemas__).forEach(function(t){let n=e.__schemas__[t];if(n===null)return;let r={validate:null,link:null};if(e.__compiled__[t]=r,zl(n)){Bl(n.validate)?r.validate=Jl(n.validate):Vl(n.validate)?r.validate=n.validate:a(t,n),Vl(n.normalize)?r.normalize=n.normalize:n.normalize?a(t,n):r.normalize=Yl();return}if(Y(n)){i.push(t);return}a(t,n)}),i.forEach(function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)}),e.__compiled__[``]={validate:null,normalize:Yl()};let o=Object.keys(e.__compiled__).filter(function(t){return t.length>0&&e.__compiled__[t]}).map(Hl).join(`|`);e.re.schema_test=RegExp(`(^|(?!_)(?:[><\uff5c]|${t.src_ZPCc}))(${o})`,`i`),e.re.schema_search=RegExp(`(^|(?!_)(?:[><\uff5c]|${t.src_ZPCc}))(${o})`,`ig`),e.re.schema_at_start=RegExp(`^${e.re.schema_search.source}`,`i`),e.re.pretest=RegExp(`(${e.re.schema_test.source})|(${e.re.host_fuzzy_test.source})|@`,`i`)}function Zl(e,t,n,r){let i=e.slice(n,r);this.schema=t.toLowerCase(),this.index=n,this.lastIndex=r,this.raw=i,this.text=i,this.url=i}function Ql(e,t){if(!(this instanceof Ql))return new Ql(e,t);t||Wl(e)&&(t=e,e={}),this.__opts__=Rl({},Ul,t),this.__schemas__=Rl({},Gl,e),this.__compiled__={},this.__tlds__=ql,this.__tlds_replaced__=!1,this.re={},Xl(this)}Ql.prototype.add=function(e,t){return this.__schemas__[e]=t,Xl(this),this},Ql.prototype.set=function(e){return this.__opts__=Rl(this.__opts__,e),this},Ql.prototype.test=function(e){if(!e.length)return!1;let t,n;if(this.re.schema_test.test(e)){for(n=this.re.schema_search,n.lastIndex=0;(t=n.exec(e))!==null;)if(this.testSchemaAt(e,t[2],n.lastIndex))return!0}return!!(this.__opts__.fuzzyLink&&this.__compiled__[`http:`]&&e.search(this.re.host_fuzzy_test)>=0&&e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy)!==null||this.__opts__.fuzzyEmail&&this.__compiled__[`mailto:`]&&e.indexOf(`@`)>=0&&e.match(this.re.email_fuzzy)!==null)},Ql.prototype.pretest=function(e){return this.re.pretest.test(e)},Ql.prototype.testSchemaAt=function(e,t,n){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,n,this):0},Ql.prototype.match=function(e){let t=[],n=[],r=[],i=[],a,o,s;function c(e,t){return e?t?e.index===t.index?e.lastIndex>=t.lastIndex?e:t:e.index<t.index?e:t:e:t}if(!e.length)return null;if(this.re.schema_test.test(e))for(s=this.re.schema_search,s.lastIndex=0;(a=s.exec(e))!==null;)o=this.testSchemaAt(e,a[2],s.lastIndex),o&&n.push({schema:a[2],index:a.index+a[1].length,lastIndex:a.index+a[0].length+o});if(this.__opts__.fuzzyLink&&this.__compiled__[`http:`])for(s=this.__opts__.fuzzyIP?this.re.link_fuzzy_global:this.re.link_no_ip_fuzzy_global,s.lastIndex=0;(a=s.exec(e))!==null;)r.push({schema:``,index:a.index+a[1].length,lastIndex:a.index+a[0].length});if(this.__opts__.fuzzyEmail&&this.__compiled__[`mailto:`])for(s=this.re.email_fuzzy_global,s.lastIndex=0;(a=s.exec(e))!==null;)i.push({schema:`mailto:`,index:a.index+a[1].length,lastIndex:a.index+a[0].length});let l=[0,0,0],u=0;for(;;){let a=[n[l[0]],i[l[1]],r[l[2]]],o=c(c(a[0],a[1]),a[2]);if(!o)break;if(o===a[0]?l[0]++:o===a[1]?l[1]++:l[2]++,o.index<u)continue;let s=new Zl(e,o.schema,o.index,o.lastIndex);this.__compiled__[s.schema].normalize(s,this),t.push(s),u=o.lastIndex}return t.length?t:null},Ql.prototype.matchAtStart=function(e){if(!e.length)return null;let t=this.re.schema_at_start.exec(e);if(!t)return null;let n=this.testSchemaAt(e,t[2],t[0].length);if(!n)return null;let r=new Zl(e,t[2],t.index+t[1].length,t.index+t[0].length+n);return this.__compiled__[r.schema].normalize(r,this),r},Ql.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter(function(e,t,n){return e!==n[t-1]}).reverse(),Xl(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,Xl(this),this)},Ql.prototype.normalize=function(e){e.schema||(e.url=`http://${e.url}`),e.schema===`mailto:`&&!/^mailto:/i.test(e.url)&&(e.url=`mailto:${e.url}`)},Ql.prototype.onCompile=function(){};var $l=2147483647,eu=36,tu=1,nu=26,ru=38,iu=700,au=72,ou=128,su=`-`,cu=/^xn--/,lu=/[^\0-\x7F]/,uu=/[\x2E\u3002\uFF0E\uFF61]/g,du={overflow:`Overflow: input needs wider integers to process`,"not-basic":`Illegal input >= 0x80 (not a basic code point)`,"invalid-input":`Invalid input`},fu=eu-tu,pu=Math.floor,mu=String.fromCharCode;function hu(e){throw RangeError(du[e])}function gu(e,t){let n=[],r=e.length;for(;r--;)n[r]=t(e[r]);return n}function _u(e,t){let n=e.split(`@`),r=``;n.length>1&&(r=n[0]+`@`,e=n[1]),e=e.replace(uu,`.`);let i=gu(e.split(`.`),t).join(`.`);return r+i}function vu(e){let t=[],n=0,r=e.length;for(;n<r;){let i=e.charCodeAt(n++);if(i>=55296&&i<=56319&&n<r){let r=e.charCodeAt(n++);(r&64512)==56320?t.push(((i&1023)<<10)+(r&1023)+65536):(t.push(i),n--)}else t.push(i)}return t}var yu=e=>String.fromCodePoint(...e),bu=function(e){return e>=48&&e<58?26+(e-48):e>=65&&e<91?e-65:e>=97&&e<123?e-97:eu},xu=function(e,t){return e+22+75*(e<26)-((t!=0)<<5)},Su=function(e,t,n){let r=0;for(e=n?pu(e/iu):e>>1,e+=pu(e/t);e>455;r+=eu)e=pu(e/fu);return pu(r+36*e/(e+ru))},Cu=function(e){let t=[],n=e.length,r=0,i=ou,a=au,o=e.lastIndexOf(su);o<0&&(o=0);for(let n=0;n<o;++n)e.charCodeAt(n)>=128&&hu(`not-basic`),t.push(e.charCodeAt(n));for(let s=o>0?o+1:0;s<n;){let o=r;for(let t=1,i=eu;;i+=eu){s>=n&&hu(`invalid-input`);let o=bu(e.charCodeAt(s++));o>=eu&&hu(`invalid-input`),o>pu(($l-r)/t)&&hu(`overflow`),r+=o*t;let c=i<=a?tu:i>=a+nu?nu:i-a;if(o<c)break;let l=eu-c;t>pu($l/l)&&hu(`overflow`),t*=l}let c=t.length+1;a=Su(r-o,c,o==0),pu(r/c)>$l-i&&hu(`overflow`),i+=pu(r/c),r%=c,t.splice(r++,0,i)}return String.fromCodePoint(...t)},wu=function(e){let t=[];e=vu(e);let n=e.length,r=ou,i=0,a=au;for(let n of e)n<128&&t.push(mu(n));let o=t.length,s=o;for(o&&t.push(su);s<n;){let n=$l;for(let t of e)t>=r&&t<n&&(n=t);let c=s+1;n-r>pu(($l-i)/c)&&hu(`overflow`),i+=(n-r)*c,r=n;for(let n of e)if(n<r&&++i>$l&&hu(`overflow`),n===r){let e=i;for(let n=eu;;n+=eu){let r=n<=a?tu:n>=a+nu?nu:n-a;if(e<r)break;let i=e-r,o=eu-r;t.push(mu(xu(r+i%o,0))),e=pu(i/o)}t.push(mu(xu(e,0))),a=Su(i,c,s===o),i=0,++s}++i,++r}return t.join(``)},Tu={version:`2.3.1`,ucs2:{decode:vu,encode:yu},decode:Cu,encode:wu,toASCII:function(e){return _u(e,function(e){return lu.test(e)?`xn--`+wu(e):e})},toUnicode:function(e){return _u(e,function(e){return cu.test(e)?Cu(e.slice(4).toLowerCase()):e})}},Eu={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:`language-`,linkify:!1,typographer:!1,quotes:`“”‘’`,highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}},zero:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:`language-`,linkify:!1,typographer:!1,quotes:`“”‘’`,highlight:null,maxNesting:20},components:{core:{rules:[`normalize`,`block`,`inline`,`text_join`]},block:{rules:[`paragraph`]},inline:{rules:[`text`],rules2:[`balance_pairs`,`fragments_join`]}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:`language-`,linkify:!1,typographer:!1,quotes:`“”‘’`,highlight:null,maxNesting:20},components:{core:{rules:[`normalize`,`block`,`inline`,`text_join`]},block:{rules:[`blockquote`,`code`,`fence`,`heading`,`hr`,`html_block`,`lheading`,`list`,`reference`,`paragraph`]},inline:{rules:[`autolink`,`backticks`,`emphasis`,`entity`,`escape`,`html_inline`,`image`,`link`,`newline`,`text`],rules2:[`balance_pairs`,`emphasis`,`fragments_join`]}}}},Du=/^(vbscript|javascript|file|data):/,Ou=/^data:image\/(gif|png|jpeg|webp);/;function ku(e){let t=e.trim().toLowerCase();return Du.test(t)?Ou.test(t):!0}var Au=[`http:`,`https:`,`mailto:`];function ju(e){let t=Ko(e,!0);if(t.hostname&&(!t.protocol||Au.indexOf(t.protocol)>=0))try{t.hostname=Tu.toASCII(t.hostname)}catch{}return No(Po(t))}function Mu(e){let t=Ko(e,!0);if(t.hostname&&(!t.protocol||Au.indexOf(t.protocol)>=0))try{t.hostname=Tu.toUnicode(t.hostname)}catch{}return Ao(Po(t),Ao.defaultChars+`%`)}function Nu(e,t){if(!(this instanceof Nu))return new Nu(e,t);t||Cs(e)||(t=e||{},e=`default`),this.inline=new Il,this.block=new tl,this.core=new jc,this.renderer=new nc,this.linkify=new Ql,this.validateLink=ku,this.normalizeLink=ju,this.normalizeLinkText=Mu,this.utils=xs,this.helpers=Es({},ec),this.options={},this.configure(e),t&&this.set(t)}Nu.prototype.set=function(e){return Es(this.options,e),this},Nu.prototype.configure=function(e){let t=this;if(Cs(e)){let t=e;if(e=Eu[t],!e)throw Error('Wrong `markdown-it` preset "'+t+`", check name`)}if(!e)throw Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(n){e.components[n].rules&&t[n].ruler.enableOnly(e.components[n].rules),e.components[n].rules2&&t[n].ruler2.enableOnly(e.components[n].rules2)}),this},Nu.prototype.enable=function(e,t){let n=[];Array.isArray(e)||(e=[e]),[`core`,`block`,`inline`].forEach(function(t){n=n.concat(this[t].ruler.enable(e,!0))},this),n=n.concat(this.inline.ruler2.enable(e,!0));let r=e.filter(function(e){return n.indexOf(e)<0});if(r.length&&!t)throw Error(`MarkdownIt. Failed to enable unknown rule(s): `+r);return this},Nu.prototype.disable=function(e,t){let n=[];Array.isArray(e)||(e=[e]),[`core`,`block`,`inline`].forEach(function(t){n=n.concat(this[t].ruler.disable(e,!0))},this),n=n.concat(this.inline.ruler2.disable(e,!0));let r=e.filter(function(e){return n.indexOf(e)<0});if(r.length&&!t)throw Error(`MarkdownIt. Failed to disable unknown rule(s): `+r);return this},Nu.prototype.use=function(e){let t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},Nu.prototype.parse=function(e,t){if(typeof e!=`string`)throw Error(`Input data should be a String`);let n=new this.core.State(e,this,t);return this.core.process(n),n.tokens},Nu.prototype.render=function(e,t){return t||={},this.renderer.render(this.parse(e,t),this.options,t)},Nu.prototype.parseInline=function(e,t){let n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens},Nu.prototype.renderInline=function(e,t){return t||={},this.renderer.render(this.parseInline(e,t),this.options,t)};var Pu=n((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),Fu=n(((e,t)=>{t.exports=Pu()})),X=Fu(),Iu=new Nu({html:!1,linkify:!0,breaks:!1});function Lu(e){let t=/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/.exec(e);return t?{frontmatter:(t[1]??``).trim(),body:e.slice(t[0].length)}:{frontmatter:null,body:e}}function Ru({command:e}){let[t,n]=(0,G.useState)(!1);return(0,G.useEffect)(()=>{if(!t)return;let e=setTimeout(()=>n(!1),1600);return()=>clearTimeout(e)},[t]),(0,X.jsxs)(`div`,{className:`preview-command`,"data-testid":`preview-command`,children:[(0,X.jsx)(`code`,{"data-testid":`preview-command-text`,children:e}),(0,X.jsx)(`button`,{"data-testid":`preview-command-copy`,onClick:()=>{navigator.clipboard?.writeText(e).catch(()=>void 0),n(!0)},type:`button`,children:t?`copied`:`copy`})]})}function zu({preview:e,onBack:t}){let n=(0,G.useMemo)(()=>e.documents.map(e=>{if(e.content===null)return{path:e.path,html:null,frontmatter:null};let{frontmatter:t,body:n}=Lu(e.content);return{path:e.path,html:Iu.render(n),frontmatter:t}}),[e.documents]);return(0,X.jsxs)(`div`,{className:`preview`,"data-testid":`change-preview`,children:[(0,X.jsxs)(`header`,{className:`preview-head`,children:[(0,X.jsx)(`button`,{className:`preview-back`,"data-testid":`preview-back`,onClick:t,type:`button`,children:`← changes`}),(0,X.jsx)(`h1`,{className:`preview-title`,"data-testid":`preview-title`,children:e.title}),(0,X.jsx)(`span`,{className:`preview-id`,children:e.id})]}),(0,X.jsxs)(`section`,{className:`preview-handoff`,children:[(0,X.jsx)(`p`,{className:`preview-handoff-note`,children:`Open it for editing in SpecSketch:`}),(0,X.jsx)(Ru,{command:e.command})]}),n.map(e=>(0,X.jsxs)(`section`,{className:`preview-doc`,"data-testid":`preview-doc-${e.path}`,children:[(0,X.jsxs)(`h2`,{className:`preview-doc-path`,children:[(0,X.jsx)(`span`,{className:`preview-doc-name`,"data-testid":`preview-name-${e.path}`,children:e.path}),e.frontmatter===null||e.frontmatter===``?null:(0,X.jsx)(`span`,{className:`preview-doc-meta`,"data-testid":`preview-meta-${e.path}`,children:e.frontmatter.replace(/\s*\n\s*/g,` · `)})]}),e.html===null?(0,X.jsxs)(`p`,{className:`preview-doc-absent`,"data-testid":`preview-absent-${e.path}`,children:[`This change carries no `,(0,X.jsx)(`code`,{children:e.path}),`.`]}):(0,X.jsx)(`div`,{className:`preview-doc-body markdown`,dangerouslySetInnerHTML:{__html:e.html}})]},e.path))]})}var Bu=[{key:`proposal`,label:`proposal`,glyph:`◇`},{key:`design`,label:`design`,glyph:`◈`},{key:`deltas`,label:`deltas`,glyph:`▤`},{key:`tasks`,label:`tasks`,glyph:`☰`}];function Vu({card:e}){return(0,X.jsx)(`ul`,{"aria-label":`artifacts`,className:`gallery-indicators`,"data-testid":`indicators-${e.id}`,children:Bu.map(({key:t,label:n,glyph:r})=>{let i=e[t];return(0,X.jsxs)(`li`,{className:`gallery-indicator gallery-indicator--${i}`,"data-state":i,"data-testid":`indicator-${t}-${e.id}`,title:`${n}: ${i}`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,children:r}),(0,X.jsx)(`span`,{className:`gallery-indicator-label`,children:n})]},t)})})}function Hu({card:e}){if(e.empty)return null;if(e.tasksTotal===0)return(0,X.jsxs)(`p`,{className:`gallery-progress gallery-progress--warning`,"data-testid":`progress-${e.id}`,"data-state":`no-tasks`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,children:`⚠`}),` no tasks planned`]});if(e.tasksOpen===0)return(0,X.jsxs)(`p`,{className:`gallery-progress gallery-progress--done`,"data-testid":`progress-${e.id}`,"data-state":`done`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,children:`✓`}),` all `,e.tasksTotal,` tasks done`]});let t=Math.round(e.tasksDone/e.tasksTotal*100);return(0,X.jsxs)(`p`,{className:`gallery-progress`,"data-testid":`progress-${e.id}`,"data-state":`in-progress`,children:[(0,X.jsx)(`span`,{className:`gallery-bar`,role:`img`,"aria-label":`${e.tasksDone} of ${e.tasksTotal} tasks done`,children:(0,X.jsx)(`span`,{className:`gallery-bar-fill`,style:{width:`${t}%`}})}),(0,X.jsxs)(`span`,{className:`gallery-progress-text`,children:[e.tasksOpen,` of `,e.tasksTotal,` open`]})]})}function Uu({card:e}){return e.empty?(0,X.jsxs)(`p`,{className:`gallery-empty-flag`,"data-testid":`empty-${e.id}`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,children:`⚠`}),` empty — nothing written yet`]}):null}function Wu({card:e,onOpen:t,onAddToRoadmap:n,onDelete:r,onReorder:i,position:a}){let[o,s]=(0,G.useState)(!1),[c,l]=(0,G.useState)(!1);return(0,X.jsxs)(`li`,{className:`gallery-card${e.empty?` gallery-card--empty`:``}${c?` gallery-card--dropping`:``}`,"data-testid":`card-${e.id}`,draggable:n!==void 0||i!==void 0,onDragStart:t=>t.dataTransfer.setData(`text/plain`,e.id),onDragLeave:()=>l(!1),onDragOver:i===void 0?void 0:e=>{e.preventDefault(),e.stopPropagation(),l(!0)},onDrop:i===void 0?void 0:t=>{t.preventDefault(),t.stopPropagation(),l(!1);let n=t.dataTransfer.getData(`text/plain`);n!==``&&n!==e.id&&i(n,e.id)},children:[(0,X.jsxs)(`button`,{className:`gallery-card-open`,onClick:()=>t(e.id),type:`button`,children:[(0,X.jsx)(`span`,{className:`gallery-card-title`,"data-testid":`card-title-${e.id}`,children:e.title}),(0,X.jsx)(`span`,{className:`gallery-card-id`,children:e.id})]}),e.snippet===``?null:(0,X.jsx)(`p`,{className:`gallery-card-snippet`,"data-testid":`card-snippet-${e.id}`,children:e.snippet}),(0,X.jsx)(Vu,{card:e}),(0,X.jsx)(Uu,{card:e}),(0,X.jsx)(Hu,{card:e}),n?(0,X.jsx)(`button`,{className:`gallery-promote`,"data-testid":`promote-${e.id}`,onClick:()=>n(e.id),type:`button`,children:`put on roadmap`}):null,i&&a&&a.ids.length>1?(0,X.jsxs)(`span`,{className:`gallery-move`,"data-testid":`move-${e.id}`,children:[(0,X.jsx)(`button`,{"aria-label":`Move ${e.id} earlier`,"data-testid":`move-up-${e.id}`,disabled:a.index===0,onClick:()=>{let t=a.ids[a.index-1];t!==void 0&&i(e.id,t)},type:`button`,children:`↑`}),(0,X.jsx)(`button`,{"aria-label":`Move ${e.id} later`,"data-testid":`move-down-${e.id}`,disabled:a.index===a.ids.length-1,onClick:()=>{let t=a.ids[a.index+2]??null;i(e.id,t)},type:`button`,children:`↓`})]}):null,r?o?(0,X.jsxs)(`div`,{className:`gallery-confirm`,"data-testid":`confirm-${e.id}`,role:`alertdialog`,children:[(0,X.jsxs)(`p`,{className:`gallery-confirm-text`,children:[`Delete `,(0,X.jsx)(`strong`,{children:e.id}),e.empty?` — it carries nothing.`:` — ${Gu(e)}. This cannot be undone outside git.`]}),(0,X.jsx)(`button`,{className:`gallery-confirm-yes`,"data-testid":`confirm-delete-${e.id}`,onClick:()=>{s(!1),r(e.id)},type:`button`,children:`delete it`}),(0,X.jsx)(`button`,{"data-testid":`confirm-cancel-${e.id}`,onClick:()=>s(!1),type:`button`,children:`keep it`})]}):(0,X.jsx)(`button`,{className:`gallery-delete`,"data-testid":`delete-${e.id}`,onClick:()=>s(!0),type:`button`,children:`delete`}):null]})}function Gu(e){let t=[];return e.proposal!==`absent`&&t.push(`a proposal`),e.design!==`absent`&&t.push(`a design`),e.capabilities.length>0&&t.push(`${e.capabilities.length} delta spec${e.capabilities.length===1?``:`s`}`),e.tasksTotal>0&&t.push(`${e.tasksTotal} tasks`),t.length===0?`it carries nothing`:t.length===1?`it carries ${t[0]}`:`it carries ${t.slice(0,-1).join(`, `)} and ${t[t.length-1]}`}function Ku(e,t){let n=t.trim().toLowerCase();return n===``||e.id.toLowerCase().includes(n)||e.title.toLowerCase().includes(n)?!0:e.capabilities.some(e=>e.toLowerCase().includes(n))}function qu(e){let[t,n]=(0,G.useState)(``),[r,i]=(0,G.useState)(!1),a=(0,G.useMemo)(()=>e.roadmap.filter(e=>Ku(e,t)),[e.roadmap,t]),o=(0,G.useMemo)(()=>e.backlog.filter(e=>Ku(e,t)),[e.backlog,t]),s=e.roadmap.length+e.backlog.length,c=a.length+o.length;return s===0?(0,X.jsxs)(`div`,{className:`gallery`,"data-testid":`gallery`,children:[(0,X.jsx)(`p`,{className:`gallery-empty`,"data-testid":`gallery-empty`,children:`No changes yet. Start one to see it here.`}),e.onStartChange?(0,X.jsx)(`button`,{"data-testid":`gallery-start`,onClick:e.onStartChange,type:`button`,children:`start a change`}):null]}):(0,X.jsxs)(`div`,{className:`gallery`,"data-testid":`gallery`,children:[(0,X.jsxs)(`header`,{className:`gallery-head`,children:[(0,X.jsx)(`h1`,{className:`gallery-title`,children:`Changes`}),(0,X.jsx)(`input`,{"aria-label":`filter changes`,className:`gallery-search`,"data-testid":`gallery-search`,onChange:e=>n(e.target.value),placeholder:`filter ${s} change${s===1?``:`s`}`,value:t})]}),c===0?(0,X.jsxs)(`p`,{className:`gallery-empty`,"data-testid":`gallery-no-match`,children:[`Nothing matches “`,t.trim(),`”.`]}):null,(e.archived??[]).length>0?(0,X.jsxs)(`p`,{className:`gallery-archived`,"data-testid":`gallery-archived`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,children:`✓`}),` `,(e.archived??[]).length,` roadmap row`,(e.archived??[]).length===1?``:`s`,` archived:`,` `,(e.archived??[]).join(`, `)]}):null,(e.missing??[]).length>0?(0,X.jsxs)(`p`,{className:`gallery-stale`,"data-testid":`gallery-missing`,role:`alert`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,children:`⚠`}),` `,(e.missing??[]).length,` roadmap row`,(e.missing??[]).length===1?``:`s`,` missing — named on the roadmap, in neither `,(0,X.jsx)(`code`,{children:`changes/`}),` nor the archive: `,(e.missing??[]).join(`, `)]}):null,(0,X.jsxs)(`section`,{className:`gallery-section${r?` gallery-section--dropping`:``}`,"data-testid":`gallery-roadmap`,onDragLeave:()=>i(!1),onDragOver:e=>{e.preventDefault(),i(!0)},onDrop:t=>{t.preventDefault(),i(!1);let n=t.dataTransfer.getData(`text/plain`);n!==``&&e.onAddToRoadmap?.(n)},children:[(0,X.jsx)(`h2`,{className:`gallery-section-title`,children:`Roadmap`}),a.length===0?(0,X.jsxs)(`div`,{className:`gallery-ghost`,"data-testid":`gallery-roadmap-ghost`,children:[(0,X.jsx)(`p`,{className:`gallery-ghost-note`,children:`Nothing is on the roadmap. Drag a change here to schedule it, or`}),(0,X.jsx)(`button`,{"data-testid":`gallery-ghost-start`,onClick:e.onStartChange,type:`button`,children:`start a new change`})]}):(0,X.jsx)(`ul`,{className:`gallery-cards`,children:a.map((t,n)=>(0,X.jsx)(Wu,{card:t,onDelete:e.onDelete,onOpen:e.onOpen,onReorder:e.onReorder,position:{index:n,ids:a.map(e=>e.id)}},t.id))})]}),o.length>0?(0,X.jsxs)(`section`,{className:`gallery-section`,"data-testid":`gallery-backlog`,children:[(0,X.jsx)(`h2`,{className:`gallery-section-title`,children:`Backlog`}),(0,X.jsx)(`p`,{className:`gallery-section-note`,children:`Not on the roadmap — no order is claimed.`}),(0,X.jsx)(`ul`,{className:`gallery-cards`,children:o.map(t=>(0,X.jsx)(Wu,{card:t,onAddToRoadmap:e.onAddToRoadmap,onDelete:e.onDelete,onOpen:e.onOpen},t.id))})]}):null]})}function Ju(e){if(typeof e==`string`||typeof e==`number`)return``+e;let t=``;if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=Ju(e[n]))!==``&&(t+=(t&&` `)+r);else for(let n in e)e[n]&&(t+=(t&&` `)+n);return t}var Yu={value:()=>{}};function Xu(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+``)||r in n||/[\s.]/.test(r))throw Error(`illegal type: `+r);n[r]=[]}return new Zu(n)}function Zu(e){this._=e}function Qu(e,t){return e.trim().split(/^|\s+/).map(function(e){var n=``,r=e.indexOf(`.`);if(r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}Zu.prototype=Xu.prototype={constructor:Zu,on:function(e,t){var n=this._,r=Qu(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=$u(n[i],e.name)))return i;return}if(t!=null&&typeof t!=`function`)throw Error(`invalid callback: `+t);for(;++a<o;)if(i=(e=r[a]).type)n[i]=ed(n[i],e.name,t);else if(t==null)for(i in n)n[i]=ed(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new Zu(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(a=this._[e],r=0,i=a.length;r<i;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};function $u(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function ed(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=Yu,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var td={svg:`http://www.w3.org/2000/svg`,xhtml:`http://www.w3.org/1999/xhtml`,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`};function nd(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),td.hasOwnProperty(t)?{space:td[t],local:e}:e}function rd(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function id(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function ad(e){var t=nd(e);return(t.local?id:rd)(t)}function od(){}function sd(e){return e==null?od:function(){return this.querySelector(e)}}function cd(e){typeof e!=`function`&&(e=sd(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=Array(o),c,l,u=0;u<o;++u)(c=a[u])&&(l=e.call(c,c.__data__,u,a))&&(`__data__`in c&&(l.__data__=c.__data__),s[u]=l);return new Xf(r,this._parents)}function ld(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function ud(){return[]}function dd(e){return e==null?ud:function(){return this.querySelectorAll(e)}}function fd(e){return function(){return ld(e.apply(this,arguments))}}function pd(e){e=typeof e==`function`?fd(e):dd(e);for(var t=this._groups,n=t.length,r=[],i=[],a=0;a<n;++a)for(var o=t[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&(r.push(e.call(c,c.__data__,l,o)),i.push(c));return new Xf(r,i)}function md(e){return function(){return this.matches(e)}}function hd(e){return function(t){return t.matches(e)}}var gd=Array.prototype.find;function _d(e){return function(){return gd.call(this.children,e)}}function vd(){return this.firstElementChild}function yd(e){return this.select(e==null?vd:_d(typeof e==`function`?e:hd(e)))}var bd=Array.prototype.filter;function Z(){return Array.from(this.children)}function xd(e){return function(){return bd.call(this.children,e)}}function Sd(e){return this.selectAll(e==null?Z:xd(typeof e==`function`?e:hd(e)))}function Cd(e){typeof e!=`function`&&(e=md(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new Xf(r,this._parents)}function wd(e){return Array(e.length)}function Td(){return new Xf(this._enter||this._groups.map(wd),this._parents)}function Ed(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Ed.prototype={constructor:Ed,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function Dd(e){return function(){return e}}function Od(e,t,n,r,i,a){for(var o=0,s,c=t.length,l=a.length;o<l;++o)(s=t[o])?(s.__data__=a[o],r[o]=s):n[o]=new Ed(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function kd(e,t,n,r,i,a,o){var s,c,l=new Map,u=t.length,d=a.length,f=Array(u),p;for(s=0;s<u;++s)(c=t[s])&&(f[s]=p=o.call(c,c.__data__,s,t)+``,l.has(p)?i[s]=c:l.set(p,c));for(s=0;s<d;++s)p=o.call(e,a[s],s,a)+``,(c=l.get(p))?(r[s]=c,c.__data__=a[s],l.delete(p)):n[s]=new Ed(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function Ad(e){return e.__data__}function jd(e,t){if(!arguments.length)return Array.from(this,Ad);var n=t?kd:Od,r=this._parents,i=this._groups;typeof e!=`function`&&(e=Dd(e));for(var a=i.length,o=Array(a),s=Array(a),c=Array(a),l=0;l<a;++l){var u=r[l],d=i[l],f=d.length,p=Md(e.call(u,u&&u.__data__,l,r)),m=p.length,h=s[l]=Array(m),g=o[l]=Array(m);n(u,d,h,g,c[l]=Array(f),p,t);for(var _=0,v=0,y,b;_<m;++_)if(y=h[_]){for(_>=v&&(v=_+1);!(b=g[v])&&++v<m;);y._next=b||null}}return o=new Xf(o,r),o._enter=s,o._exit=c,o}function Md(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function Nd(){return new Xf(this._exit||this._groups.map(wd),this._parents)}function Pd(e,t,n){var r=this.enter(),i=this,a=this.exit();return typeof e==`function`?(r=e(r),r&&=r.selection()):r=r.append(e+``),t!=null&&(i=t(i),i&&=i.selection()),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function Fd(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,a=r.length,o=Math.min(i,a),s=Array(i),c=0;c<o;++c)for(var l=n[c],u=r[c],d=l.length,f=s[c]=Array(d),p,m=0;m<d;++m)(p=l[m]||u[m])&&(f[m]=p);for(;c<i;++c)s[c]=n[c];return new Xf(s,this._parents)}function Id(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function Ld(e){e||=Rd;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;a<r;++a){for(var o=n[a],s=o.length,c=i[a]=Array(s),l,u=0;u<s;++u)(l=o[u])&&(c[u]=l);c.sort(t)}return new Xf(i,this._parents).order()}function Rd(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function zd(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Bd(){return Array.from(this)}function Vd(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function Hd(){let e=0;for(let t of this)++e;return e}function Ud(){return!this.node()}function Wd(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i=t[n],a=0,o=i.length,s;a<o;++a)(s=i[a])&&e.call(s,s.__data__,a,i);return this}function Gd(e){return function(){this.removeAttribute(e)}}function Kd(e){return function(){this.removeAttributeNS(e.space,e.local)}}function qd(e,t){return function(){this.setAttribute(e,t)}}function Jd(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Yd(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Xd(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function Zd(e,t){var n=nd(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?Kd:Gd:typeof t==`function`?n.local?Xd:Yd:n.local?Jd:qd)(n,t))}function Qd(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function $d(e){return function(){this.style.removeProperty(e)}}function ef(e,t,n){return function(){this.style.setProperty(e,t,n)}}function tf(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function nf(e,t,n){return arguments.length>1?this.each((t==null?$d:typeof t==`function`?tf:ef)(e,t,n??``)):rf(this.node(),e)}function rf(e,t){return e.style.getPropertyValue(t)||Qd(e).getComputedStyle(e,null).getPropertyValue(t)}function af(e){return function(){delete this[e]}}function of(e,t){return function(){this[e]=t}}function sf(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function cf(e,t){return arguments.length>1?this.each((t==null?af:typeof t==`function`?sf:of)(e,t)):this.node()[e]}function lf(e){return e.trim().split(/^|\s+/)}function uf(e){return e.classList||new df(e)}function df(e){this._node=e,this._names=lf(e.getAttribute(`class`)||``)}df.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function ff(e,t){for(var n=uf(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function pf(e,t){for(var n=uf(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function mf(e){return function(){ff(this,e)}}function hf(e){return function(){pf(this,e)}}function gf(e,t){return function(){(t.apply(this,arguments)?ff:pf)(this,e)}}function _f(e,t){var n=lf(e+``);if(arguments.length<2){for(var r=uf(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?gf:t?mf:hf)(n,t))}function vf(){this.textContent=``}function yf(e){return function(){this.textContent=e}}function bf(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function xf(e){return arguments.length?this.each(e==null?vf:(typeof e==`function`?bf:yf)(e)):this.node().textContent}function Sf(){this.innerHTML=``}function Cf(e){return function(){this.innerHTML=e}}function wf(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function Tf(e){return arguments.length?this.each(e==null?Sf:(typeof e==`function`?wf:Cf)(e)):this.node().innerHTML}function Ef(){this.nextSibling&&this.parentNode.appendChild(this)}function Df(){return this.each(Ef)}function Of(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function kf(){return this.each(Of)}function Af(e){var t=typeof e==`function`?e:ad(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function jf(){return null}function Mf(e,t){var n=typeof e==`function`?e:ad(e),r=t==null?jf:typeof t==`function`?t:sd(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Nf(){var e=this.parentNode;e&&e.removeChild(this)}function Pf(){return this.each(Nf)}function Ff(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function If(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Lf(e){return this.select(e?If:Ff)}function Rf(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function zf(e){return function(t){e.call(this,t,this.__data__)}}function Bf(e){return e.trim().split(/^|\s+/).map(function(e){var t=``,n=e.indexOf(`.`);return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function Vf(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n<i;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function Hf(e,t,n){return function(){var r=this.__on,i,a=zf(t);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=t;return}}this.addEventListener(e.type,a,n),i={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(i):this.__on=[i]}}function Uf(e,t,n){var r=Bf(e+``),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<a;++i)if((o=r[i]).type===u.type&&o.name===u.name)return u.value}return}for(s=t?Hf:Vf,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function Wf(e,t,n){var r=Qd(e),i=r.CustomEvent;typeof i==`function`?i=new i(t,n):(i=r.document.createEvent(`Event`),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function Gf(e,t){return function(){return Wf(this,e,t)}}function Kf(e,t){return function(){return Wf(this,e,t.apply(this,arguments))}}function qf(e,t){return this.each((typeof t==`function`?Kf:Gf)(e,t))}function*Jf(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var Yf=[null];function Xf(e,t){this._groups=e,this._parents=t}function Zf(){return new Xf([[document.documentElement]],Yf)}function Qf(){return this}Xf.prototype=Zf.prototype={constructor:Xf,select:cd,selectAll:pd,selectChild:yd,selectChildren:Sd,filter:Cd,data:jd,enter:Td,exit:Nd,join:Pd,merge:Fd,selection:Qf,order:Id,sort:Ld,call:zd,nodes:Bd,node:Vd,size:Hd,empty:Ud,each:Wd,attr:Zd,style:nf,property:cf,classed:_f,text:xf,html:Tf,raise:Df,lower:kf,append:Af,insert:Mf,remove:Pf,clone:Lf,datum:Rf,on:Uf,dispatch:qf,[Symbol.iterator]:Jf};function $f(e){return typeof e==`string`?new Xf([[document.querySelector(e)]],[document.documentElement]):new Xf([[e]],Yf)}function ep(e){let t;for(;t=e.sourceEvent;)e=t;return e}function tp(e,t){if(e=ep(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}var np={passive:!1},rp={capture:!0,passive:!1};function ip(e){e.stopImmediatePropagation()}function ap(e){e.preventDefault(),e.stopImmediatePropagation()}function op(e){var t=e.document.documentElement,n=$f(e).on(`dragstart.drag`,ap,rp);`onselectstart`in t?n.on(`selectstart.drag`,ap,rp):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect=`none`)}function sp(e,t){var n=e.document.documentElement,r=$f(e).on(`dragstart.drag`,null);t&&(r.on(`click.drag`,ap,rp),setTimeout(function(){r.on(`click.drag`,null)},0)),`onselectstart`in n?r.on(`selectstart.drag`,null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var cp=e=>()=>e;function lp(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}lp.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function up(e){return!e.ctrlKey&&!e.button}function dp(){return this.parentNode}function fp(e,t){return t??{x:e.x,y:e.y}}function pp(){return navigator.maxTouchPoints||`ontouchstart`in this}function mp(){var e=up,t=dp,n=fp,r=pp,i={},a=Xu(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,np).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!(u||!e.call(this,n,r))){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&($f(n.view).on(`mousemove.drag`,m,rp).on(`mouseup.drag`,h,rp),op(n.view),ip(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(ap(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){$f(e.view).on(`mousemove.drag mouseup.drag`,null),sp(e.view,l),ap(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r)){var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s,c;for(s=0;s<o;++s)(c=y(this,a,n,r,i[s].identifier,i[s]))&&(ip(n),c(`start`,n,i[s]))}}function _(e){var t=e.changedTouches,n=t.length,r,a;for(r=0;r<n;++r)(a=i[t[r].identifier])&&(ap(e),a(`drag`,e,t[r]))}function v(e){var t=e.changedTouches,n=t.length,r,a;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),r=0;r<n;++r)(a=i[t[r].identifier])&&(ip(e),a(`end`,e,t[r]))}function y(e,t,r,s,c,l){var u=a.copy(),d=tp(l||r,t),p,m,h;if((h=n.call(e,new lp(`beforestart`,{sourceEvent:r,target:f,identifier:c,active:o,x:d[0],y:d[1],dx:0,dy:0,dispatch:u}),s))!=null)return p=h.x-d[0]||0,m=h.y-d[1]||0,function n(r,a,l){var g=d,_;switch(r){case`start`:i[c]=n,_=o++;break;case`end`:delete i[c],--o;case`drag`:d=tp(l||a,t),_=o;break}u.call(r,e,new lp(r,{sourceEvent:a,subject:h,target:f,identifier:c,active:_,x:d[0]+p,y:d[1]+m,dx:d[0]-g[0],dy:d[1]-g[1],dispatch:u}),s)}}return f.filter=function(t){return arguments.length?(e=typeof t==`function`?t:cp(!!t),f):e},f.container=function(e){return arguments.length?(t=typeof e==`function`?e:cp(e),f):t},f.subject=function(e){return arguments.length?(n=typeof e==`function`?e:cp(e),f):n},f.touchable=function(e){return arguments.length?(r=typeof e==`function`?e:cp(!!e),f):r},f.on=function(){var e=a.on.apply(a,arguments);return e===a?f:e},f.clickDistance=function(e){return arguments.length?(d=(e=+e)*e,f):Math.sqrt(d)},f}function hp(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function gp(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function _p(){}var vp=.7,yp=1/vp,bp=`\\s*([+-]?\\d+)\\s*`,xp=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,Sp=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,Cp=/^#([0-9a-f]{3,8})$/,wp=RegExp(`^rgb\\(${bp},${bp},${bp}\\)$`),Tp=RegExp(`^rgb\\(${Sp},${Sp},${Sp}\\)$`),Ep=RegExp(`^rgba\\(${bp},${bp},${bp},${xp}\\)$`),Dp=RegExp(`^rgba\\(${Sp},${Sp},${Sp},${xp}\\)$`),Op=RegExp(`^hsl\\(${xp},${Sp},${Sp}\\)$`),kp=RegExp(`^hsla\\(${xp},${Sp},${Sp},${xp}\\)$`),Ap={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};hp(_p,Fp,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:jp,formatHex:jp,formatHex8:Mp,formatHsl:Np,formatRgb:Pp,toString:Pp});function jp(){return this.rgb().formatHex()}function Mp(){return this.rgb().formatHex8()}function Np(){return Jp(this).formatHsl()}function Pp(){return this.rgb().formatRgb()}function Fp(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=Cp.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?Ip(t):n===3?new Bp(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Lp(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Lp(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=wp.exec(e))?new Bp(t[1],t[2],t[3],1):(t=Tp.exec(e))?new Bp(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Ep.exec(e))?Lp(t[1],t[2],t[3],t[4]):(t=Dp.exec(e))?Lp(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Op.exec(e))?qp(t[1],t[2]/100,t[3]/100,1):(t=kp.exec(e))?qp(t[1],t[2]/100,t[3]/100,t[4]):Ap.hasOwnProperty(e)?Ip(Ap[e]):e===`transparent`?new Bp(NaN,NaN,NaN,0):null}function Ip(e){return new Bp(e>>16&255,e>>8&255,e&255,1)}function Lp(e,t,n,r){return r<=0&&(e=t=n=NaN),new Bp(e,t,n,r)}function Rp(e){return e instanceof _p||(e=Fp(e)),e?(e=e.rgb(),new Bp(e.r,e.g,e.b,e.opacity)):new Bp}function zp(e,t,n,r){return arguments.length===1?Rp(e):new Bp(e,t,n,r??1)}function Bp(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}hp(Bp,zp,gp(_p,{brighter(e){return e=e==null?yp:yp**+e,new Bp(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?vp:vp**+e,new Bp(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Bp(Gp(this.r),Gp(this.g),Gp(this.b),Wp(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Vp,formatHex:Vp,formatHex8:Hp,formatRgb:Up,toString:Up}));function Vp(){return`#${Kp(this.r)}${Kp(this.g)}${Kp(this.b)}`}function Hp(){return`#${Kp(this.r)}${Kp(this.g)}${Kp(this.b)}${Kp((isNaN(this.opacity)?1:this.opacity)*255)}`}function Up(){let e=Wp(this.opacity);return`${e===1?`rgb(`:`rgba(`}${Gp(this.r)}, ${Gp(this.g)}, ${Gp(this.b)}${e===1?`)`:`, ${e})`}`}function Wp(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Gp(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Kp(e){return e=Gp(e),(e<16?`0`:``)+e.toString(16)}function qp(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Xp(e,t,n,r)}function Jp(e){if(e instanceof Xp)return new Xp(e.h,e.s,e.l,e.opacity);if(e instanceof _p||(e=Fp(e)),!e)return new Xp;if(e instanceof Xp)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n<r)*6:n===a?(r-t)/s+2:(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new Xp(o,s,c,e.opacity)}function Yp(e,t,n,r){return arguments.length===1?Jp(e):new Xp(e,t,n,r??1)}function Xp(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}hp(Xp,Yp,gp(_p,{brighter(e){return e=e==null?yp:yp**+e,new Xp(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?vp:vp**+e,new Xp(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Bp($p(e>=240?e-240:e+120,i,r),$p(e,i,r),$p(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new Xp(Zp(this.h),Qp(this.s),Qp(this.l),Wp(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=Wp(this.opacity);return`${e===1?`hsl(`:`hsla(`}${Zp(this.h)}, ${Qp(this.s)*100}%, ${Qp(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function Zp(e){return e=(e||0)%360,e<0?e+360:e}function Qp(e){return Math.max(0,Math.min(1,e||0))}function $p(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var em=e=>()=>e;function tm(e,t){return function(n){return e+n*t}}function nm(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function rm(e,t){var n=t-e;return n?tm(e,n>180||n<-180?n-360*Math.round(n/360):n):em(isNaN(e)?t:e)}function im(e){return(e=+e)==1?am:function(t,n){return n-t?nm(t,n,e):em(isNaN(t)?n:t)}}function am(e,t){var n=t-e;return n?tm(e,n):em(isNaN(e)?t:e)}var om=(function e(t){var n=im(t);function r(e,t){var r=n((e=zp(e)).r,(t=zp(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=am(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function sm(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function cm(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function lm(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=Array(r),a=Array(n),o;for(o=0;o<r;++o)i[o]=vm(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(e){for(o=0;o<r;++o)a[o]=i[o](e);return a}}function um(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function dm(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function fm(e,t){var n={},r={},i;for(i in(typeof e!=`object`||!e)&&(e={}),(typeof t!=`object`||!t)&&(t={}),t)i in e?n[i]=vm(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var pm=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,mm=new RegExp(pm.source,`g`);function hm(e){return function(){return e}}function gm(e){return function(t){return e(t)+``}}function _m(e,t){var n=pm.lastIndex=mm.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=pm.exec(e))&&(i=mm.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:dm(r,i)})),n=mm.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?gm(c[0].x):hm(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}function vm(e,t){var n=typeof t,r;return t==null||n===`boolean`?em(t):(n===`number`?dm:n===`string`?(r=Fp(t))?(t=r,om):_m:t instanceof Fp?om:t instanceof Date?um:cm(t)?sm:Array.isArray(t)?lm:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?fm:dm)(e,t)}var ym=180/Math.PI,bm={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function xm(e,t,n,r,i,a){var o,s,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),e*r<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*ym,skewX:Math.atan(c)*ym,scaleX:o,scaleY:s}}var Sm;function Cm(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?bm:xm(t.a,t.b,t.c,t.d,t.e,t.f)}function wm(e){return e==null||(Sm||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),Sm.setAttribute(`transform`,e),!(e=Sm.transform.baseVal.consolidate()))?bm:(e=e.matrix,xm(e.a,e.b,e.c,e.d,e.e,e.f))}function Tm(e,t,n,r){function i(e){return e.length?e.pop()+` `:``}function a(e,r,i,a,o,s){if(e!==i||r!==a){var c=o.push(`translate(`,null,t,null,n);s.push({i:c-4,x:dm(e,i)},{i:c-2,x:dm(r,a)})}else(i||a)&&o.push(`translate(`+i+t+a+n)}function o(e,t,n,a){e===t?t&&n.push(i(n)+`rotate(`+t+r):(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:dm(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:dm(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:dm(e,n)},{i:s-2,x:dm(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t<n;)r[(a=i[t]).i]=a.x(e);return r.join(``)}}}var Em=Tm(Cm,`px, `,`px)`,`deg)`),Dm=Tm(wm,`, `,`)`,`)`),Om=1e-12;function km(e){return((e=Math.exp(e))+1/e)/2}function Am(e){return((e=Math.exp(e))-1/e)/2}function jm(e){return((e=Math.exp(2*e))-1)/(e+1)}var Mm=(function e(t,n,r){function i(e,i){var a=e[0],o=e[1],s=e[2],c=i[0],l=i[1],u=i[2],d=c-a,f=l-o,p=d*d+f*f,m,h;if(p<Om)h=Math.log(u/s)/t,m=function(e){return[a+e*d,o+e*f,s*Math.exp(t*e*h)]};else{var g=Math.sqrt(p),_=(u*u-s*s+r*p)/(2*s*n*g),v=(u*u-s*s-r*p)/(2*u*n*g),y=Math.log(Math.sqrt(_*_+1)-_);h=(Math.log(Math.sqrt(v*v+1)-v)-y)/t,m=function(e){var r=e*h,i=km(y),c=s/(n*g)*(i*jm(t*r+y)-Am(y));return[a+c*d,o+c*f,s*i/km(t*r+y)]}}return m.duration=h*1e3*t/Math.SQRT2,m}return i.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},i})(Math.SQRT2,2,4),Nm=0,Pm=0,Fm=0,Im=1e3,Lm,Rm,zm=0,Bm=0,Vm=0,Hm=typeof performance==`object`&&performance.now?performance:Date,Um=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Wm(){return Bm||=(Um(Gm),Hm.now()+Vm)}function Gm(){Bm=0}function Km(){this._call=this._time=this._next=null}Km.prototype=qm.prototype={constructor:Km,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?Wm():+n)+(t==null?0:+t),!this._next&&Rm!==this&&(Rm?Rm._next=this:Lm=this,Rm=this),this._call=e,this._time=n,Qm()},stop:function(){this._call&&(this._call=null,this._time=1/0,Qm())}};function qm(e,t,n){var r=new Km;return r.restart(e,t,n),r}function Jm(){Wm(),++Nm;for(var e=Lm,t;e;)(t=Bm-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Nm}function Ym(){Bm=(zm=Hm.now())+Vm,Nm=Pm=0;try{Jm()}finally{Nm=0,Zm(),Bm=0}}function Xm(){var e=Hm.now(),t=e-zm;t>Im&&(Vm-=t,zm=e)}function Zm(){for(var e,t=Lm,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Lm=n);Rm=e,Qm(r)}function Qm(e){Nm||(Pm&&=clearTimeout(Pm),e-Bm>24?(e<1/0&&(Pm=setTimeout(Ym,e-Hm.now()-Vm)),Fm&&=clearInterval(Fm)):(Fm||=(zm=Hm.now(),setInterval(Xm,Im)),Nm=1,Um(Ym)))}function $m(e,t,n){var r=new Km;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var eh=Xu(`start`,`end`,`cancel`,`interrupt`),th=[];function nh(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;oh(e,n,{name:t,index:r,group:i,on:eh,tween:th,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function rh(e,t){var n=ah(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function ih(e,t){var n=ah(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function ah(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function oh(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=qm(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return $m(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l<t&&(f.state=6,f.timer.stop(),f.on.call(`cancel`,e,e.__data__,f.index,f.group),delete r[l])}if($m(function(){n.state===3&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=2,n.on.call(`start`,e,e.__data__,n.index,n.group),n.state===2){for(n.state=3,i=Array(d=n.tween.length),l=0,u=-1;l<d;++l)(f=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(i[++u]=f);i.length=u+1}}function s(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(c),n.state=5,1),a=-1,o=i.length;++a<o;)i[a].call(e,r);n.state===5&&(n.on.call(`end`,e,e.__data__,n.index,n.group),c())}function c(){for(var i in n.state=6,n.timer.stop(),delete r[t],r)return;delete e.__transition}}function sh(e,t){var n=e.__transition,r,i,a=!0,o;if(n){for(o in t=t==null?null:t+``,n){if((r=n[o]).name!==t){a=!1;continue}i=r.state>2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function ch(e){return this.each(function(){sh(this,e)})}function lh(e,t){var n,r;return function(){var i=ih(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function uh(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=ih(this,e),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:t,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===t){i[c]=s;break}c===l&&i.push(s)}a.tween=i}}function dh(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=ah(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((t==null?lh:uh)(n,e,t))}function fh(e,t,n){var r=e._id;return e.each(function(){var e=ih(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return ah(e,r).value[t]}}function ph(e,t){var n;return(typeof t==`number`?dm:t instanceof Fp?om:(n=Fp(t))?(t=n,om):_m)(e,t)}function mh(e){return function(){this.removeAttribute(e)}}function hh(e){return function(){this.removeAttributeNS(e.space,e.local)}}function gh(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttribute(e);return o===i?null:o===r?a:a=t(r=o,n)}}function _h(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttributeNS(e.space,e.local);return o===i?null:o===r?a:a=t(r=o,n)}}function vh(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttribute(e):(o=this.getAttribute(e),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function yh(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function bh(e,t){var n=nd(e),r=n===`transform`?Dm:ph;return this.attrTween(e,typeof t==`function`?(n.local?yh:vh)(n,r,fh(this,`attr.`+e,t)):t==null?(n.local?hh:mh)(n):(n.local?_h:gh)(n,r,t))}function xh(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function Sh(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Ch(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Sh(e,i)),n}return i._value=t,i}function wh(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&xh(e,i)),n}return i._value=t,i}function Th(e,t){var n=`attr.`+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!=`function`)throw Error();var r=nd(e);return this.tween(n,(r.local?Ch:wh)(r,t))}function Eh(e,t){return function(){rh(this,e).delay=+t.apply(this,arguments)}}function Dh(e,t){return t=+t,function(){rh(this,e).delay=t}}function Oh(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?Eh:Dh)(t,e)):ah(this.node(),t).delay}function kh(e,t){return function(){ih(this,e).duration=+t.apply(this,arguments)}}function Ah(e,t){return t=+t,function(){ih(this,e).duration=t}}function jh(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?kh:Ah)(t,e)):ah(this.node(),t).duration}function Mh(e,t){if(typeof t!=`function`)throw Error();return function(){ih(this,e).ease=t}}function Nh(e){var t=this._id;return arguments.length?this.each(Mh(t,e)):ah(this.node(),t).ease}function Ph(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();ih(this,e).ease=n}}function Fh(e){if(typeof e!=`function`)throw Error();return this.each(Ph(this._id,e))}function Ih(e){typeof e!=`function`&&(e=md(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new dg(r,this._parents,this._name,this._id)}function Lh(e){if(e._id!==this._id)throw Error();for(var t=this._groups,n=e._groups,r=t.length,i=n.length,a=Math.min(r,i),o=Array(r),s=0;s<a;++s)for(var c=t[s],l=n[s],u=c.length,d=o[s]=Array(u),f,p=0;p<u;++p)(f=c[p]||l[p])&&(d[p]=f);for(;s<r;++s)o[s]=t[s];return new dg(o,this._parents,this._name,this._id)}function Rh(e){return(e+``).trim().split(/^|\s+/).every(function(e){var t=e.indexOf(`.`);return t>=0&&(e=e.slice(0,t)),!e||e===`start`})}function zh(e,t,n){var r,i,a=Rh(t)?rh:ih;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Bh(e,t){var n=this._id;return arguments.length<2?ah(this.node(),n).on.on(e):this.each(zh(n,e,t))}function Vh(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Hh(){return this.on(`end.remove`,Vh(this._id))}function Uh(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=sd(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o<i;++o)for(var s=r[o],c=s.length,l=a[o]=Array(c),u,d,f=0;f<c;++f)(u=s[f])&&(d=e.call(u,u.__data__,f,s))&&(`__data__`in u&&(d.__data__=u.__data__),l[f]=d,nh(l[f],t,n,f,l,ah(u,n)));return new dg(a,this._parents,t,n)}function Wh(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=dd(e));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,d=0;d<l;++d)if(u=c[d]){for(var f=e.call(u,u.__data__,d,c),p,m=ah(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&nh(p,t,n,h,f,m);a.push(f),o.push(u)}return new dg(a,o,t,n)}var Gh=Zf.prototype.constructor;function Kh(){return new Gh(this._groups,this._parents)}function qh(e,t){var n,r,i;return function(){var a=rf(this,e),o=(this.style.removeProperty(e),rf(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function Jh(e){return function(){this.style.removeProperty(e)}}function Yh(e,t,n){var r,i=n+``,a;return function(){var o=rf(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function Xh(e,t,n){var r,i,a;return function(){var o=rf(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),rf(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function Zh(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=ih(this,e),l=c.on,u=c.value[a]==null?s||=Jh(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function Qh(e,t,n){var r=(e+=``)==`transform`?Em:ph;return t==null?this.styleTween(e,qh(e,r)).on(`end.style.`+e,Jh(e)):typeof t==`function`?this.styleTween(e,Xh(e,r,fh(this,`style.`+e,t))).each(Zh(this._id,e)):this.styleTween(e,Yh(e,r,t),n).on(`end.style.`+e,null)}function $h(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function eg(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&$h(e,a,n)),r}return a._value=t,a}function tg(e,t,n){var r=`style.`+(e+=``);if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!=`function`)throw Error();return this.tween(r,eg(e,t,n??``))}function ng(e){return function(){this.textContent=e}}function rg(e){return function(){var t=e(this);this.textContent=t??``}}function ig(e){return this.tween(`text`,typeof e==`function`?rg(fh(this,`text`,e)):ng(e==null?``:e+``))}function ag(e){return function(t){this.textContent=e.call(this,t)}}function og(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&ag(r)),t}return r._value=e,r}function sg(e){var t=`text`;if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!=`function`)throw Error();return this.tween(t,og(e))}function cg(){for(var e=this._name,t=this._id,n=pg(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)if(c=o[l]){var u=ah(c,t);nh(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new dg(r,this._parents,e,n)}function lg(){var e,t,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var s={value:o},c={value:function(){--i===0&&a()}};n.each(function(){var n=ih(this,r),i=n.on;i!==e&&(t=(e=i).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(c)),n.on=t}),i===0&&a()})}var ug=0;function dg(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function fg(e){return Zf().transition(e)}function pg(){return++ug}var mg=Zf.prototype;dg.prototype=fg.prototype={constructor:dg,select:Uh,selectAll:Wh,selectChild:mg.selectChild,selectChildren:mg.selectChildren,filter:Ih,merge:Lh,selection:Kh,transition:cg,call:mg.call,nodes:mg.nodes,node:mg.node,size:mg.size,empty:mg.empty,each:mg.each,on:Bh,attr:bh,attrTween:Th,style:Qh,styleTween:tg,text:ig,textTween:sg,remove:Hh,tween:dh,delay:Oh,duration:jh,ease:Nh,easeVarying:Fh,end:lg,[Symbol.iterator]:mg[Symbol.iterator]};function hg(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var gg={time:null,delay:0,duration:250,ease:hg};function _g(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function vg(e){var t,n;e instanceof dg?(t=e._id,e=e._name):(t=pg(),(n=gg).time=Wm(),e=e==null?null:e+``);for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&nh(c,e,t,l,o,n||_g(c,t));return new dg(r,this._parents,e,t)}Zf.prototype.interrupt=ch,Zf.prototype.transition=vg;var yg=e=>()=>e;function bg(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function xg(e,t,n){this.k=e,this.x=t,this.y=n}xg.prototype={constructor:xg,scale:function(e){return e===1?this:new xg(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new xg(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var Sg=new xg(1,0,0);Cg.prototype=xg.prototype;function Cg(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Sg;return e.__zoom}function wg(e){e.stopImmediatePropagation()}function Tg(e){e.preventDefault(),e.stopImmediatePropagation()}function Eg(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function Dg(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute(`viewBox`)?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Og(){return this.__zoom||Sg}function kg(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Ag(){return navigator.maxTouchPoints||`ontouchstart`in this}function jg(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function Mg(){var e=Eg,t=Dg,n=jg,r=kg,i=Ag,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=Mm,l=Xu(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,Og).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,T).on(`dblclick.zoom`,E).filter(i).on(`touchstart.zoom`,D).on(`touchmove.zoom`,O).on(`touchend.zoom touchcancel.zoom`,k).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,Og),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(Sg.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new xg(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new xg(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new xg(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=$f(this.that).datum();l.call(e,this.that,new bg(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=tp(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],sh(this),s.start();Tg(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function T(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=$f(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=tp(t,i),l=t.clientX,u=t.clientY;op(t.view),wg(t),a.mouse=[c,this.__zoom.invert(c)],sh(this),a.start();function d(e){if(Tg(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=tp(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),sp(e.view,a.moved),Tg(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=tp(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);Tg(r),s>0?$f(this).transition().duration(s).call(x,d,c,r):$f(this).call(_.transform,d,c,r)}}function D(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(wg(t),s=0;s<i;++s)c=r[s],l=tp(c,this),l=[l,this.__zoom.invert(l),c.identifier],a.touch0?!a.touch1&&a.touch0[2]!==l[2]&&(a.touch1=l,a.taps=0):(a.touch0=l,o=!0,a.taps=1+!!u);u&&=clearTimeout(u),o&&(a.taps<2&&(d=l[0],u=setTimeout(function(){u=null},p)),sh(this),a.start())}}function O(e,...t){if(this.__zooming){var r=S(this,t).event(e),i=e.changedTouches,a=i.length,s,c,l,u;for(Tg(e),s=0;s<a;++s)c=i[s],l=tp(c,this),r.touch0&&r.touch0[2]===c.identifier?r.touch0[0]=l:r.touch1&&r.touch1[2]===c.identifier&&(r.touch1[0]=l);if(c=r.that.__zoom,r.touch1){var d=r.touch0[0],f=r.touch0[1],p=r.touch1[0],m=r.touch1[1],h=(h=p[0]-d[0])*h+(h=p[1]-d[1])*h,g=(g=m[0]-f[0])*g+(g=m[1]-f[1])*g;c=v(c,Math.sqrt(h/g)),l=[(d[0]+p[0])/2,(d[1]+p[1])/2],u=[(f[0]+m[0])/2,(f[1]+m[1])/2]}else if(r.touch0)l=r.touch0[0],u=r.touch0[1];else return;r.zoom(`touch`,n(y(c,l,u),r.extent,o))}}function k(e,...t){if(this.__zooming){var n=S(this,t).event(e),r=e.changedTouches,i=r.length,a,o;for(wg(e),f&&clearTimeout(f),f=setTimeout(function(){f=null},p),a=0;a<i;++a)o=r[a],n.touch0&&n.touch0[2]===o.identifier?delete n.touch0:n.touch1&&n.touch1[2]===o.identifier&&delete n.touch1;if(n.touch1&&!n.touch0&&(n.touch0=n.touch1,delete n.touch1),n.touch0)n.touch0[1]=this.__zoom.invert(n.touch0[0]);else if(n.end(),n.taps===2&&(o=tp(o,this),Math.hypot(d[0]-o[0],d[1]-o[1])<g)){var s=$f(this).on(`dblclick.zoom`);s&&s.apply(this,arguments)}}}return _.wheelDelta=function(e){return arguments.length?(r=typeof e==`function`?e:yg(+e),_):r},_.filter=function(t){return arguments.length?(e=typeof t==`function`?t:yg(!!t),_):e},_.touchable=function(e){return arguments.length?(i=typeof e==`function`?e:yg(!!e),_):i},_.extent=function(e){return arguments.length?(t=typeof e==`function`?e:yg([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),_):t},_.scaleExtent=function(e){return arguments.length?(a[0]=+e[0],a[1]=+e[1],_):[a[0],a[1]]},_.translateExtent=function(e){return arguments.length?(o[0][0]=+e[0][0],o[1][0]=+e[1][0],o[0][1]=+e[0][1],o[1][1]=+e[1][1],_):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},_.constrain=function(e){return arguments.length?(n=e,_):n},_.duration=function(e){return arguments.length?(s=+e,_):s},_.interpolate=function(e){return arguments.length?(c=e,_):c},_.on=function(){var e=l.on.apply(l,arguments);return e===l?_:e},_.clickDistance=function(e){return arguments.length?(h=(e=+e)*e,_):Math.sqrt(h)},_.tapDistance=function(e){return arguments.length?(g=+e,_):g},_}var Ng={error001:(e=`react`)=>`Seems like you have not used ${e===`svelte`?`SvelteFlowProvider`:`ReactFlowProvider`} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>`It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.`,error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>`The parent container needs a width and a height to render the graph.`,error005:()=>`Only child nodes can use a parent extent.`,error006:()=>`Can't create edge. An edge needs a source and a target.`,error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e===`source`?n:r}", edge id: ${t}.`,error010:()=>`Handle: No node id found. Make sure to only use a Handle inside a custom Node.`,error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e=`react`)=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>`useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.`,error015:()=>`It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.`,error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},Pg=[[-1/0,-1/0],[1/0,1/0]],Fg=[`Enter`,` `,`Escape`],Ig={"node.a11yDescription.default":`Press enter or space to select a node. Press delete to remove it and escape to cancel.`,"node.a11yDescription.keyboardDisabled":`Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.`,"node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":`Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.`,"controls.ariaLabel":`Control Panel`,"controls.zoomIn.ariaLabel":`Zoom In`,"controls.zoomOut.ariaLabel":`Zoom Out`,"controls.fitView.ariaLabel":`Fit View`,"controls.interactive.ariaLabel":`Toggle Interactivity`,"minimap.ariaLabel":`Mini Map`,"handle.ariaLabel":`Handle`},Lg;(function(e){e.Strict=`strict`,e.Loose=`loose`})(Lg||={});var Rg;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(Rg||={});var zg;(function(e){e.Partial=`partial`,e.Full=`full`})(zg||={});var Bg={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},Vg;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(Vg||={});var Hg;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(Hg||={});var Q;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(Q||={});var Ug={[Q.Left]:Q.Right,[Q.Right]:Q.Left,[Q.Top]:Q.Bottom,[Q.Bottom]:Q.Top};function Wg(e){return e===null?null:e?`valid`:`invalid`}var Gg=e=>!!e&&typeof e==`object`&&`id`in e&&`source`in e&&`target`in e,Kg=e=>!!e&&typeof e==`object`&&`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),qg=e=>!!e&&typeof e==`object`&&`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),Jg=(e,t=[0,0])=>{let{width:n,height:r}=O_(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},Yg=(e,t={nodeOrigin:[0,0]})=>e.length===0?{x:0,y:0,width:0,height:0}:u_(e.reduce((e,n)=>{let r=typeof n==`string`,i=!t.nodeLookup&&!r?n:void 0;return t.nodeLookup&&(i=r?t.nodeLookup.get(n):qg(n)?n:t.nodeLookup.get(n.id)),c_(e,i?f_(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),Xg=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=c_(n,f_(e)),r=!0)}),r?u_(n):{x:0,y:0,width:0,height:0}},Zg=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=m_(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},Qg=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function $g(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{let i;if(t?.includeHiddenNodes){let{width:t,height:n}=O_(e);i=t>0&&n>0}else i=!!(e.measured.width&&e.measured.height&&!e.hidden);i&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function e_({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=T_(Xg($g(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function t_({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent)if(!s)a?.(`005`,Ng.error005());else{let e=s.measured.width,t=s.measured.height;e&&t&&(d=[[c,l],[c+e,l+t]])}else s&&D_(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=D_(d)?i_(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,Ng.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function n_({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=Qg(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var r_=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),i_=(e={x:0,y:0},t,n)=>({x:r_(e.x,t[0][0],t[1][0]-(n?.width??0)),y:r_(e.y,t[0][1],t[1][1]-(n?.height??0))});function a_(e,t,n){let{width:r,height:i}=O_(n),{x:a,y:o}=n.internals.positionAbsolute;return i_(e,[[a,o],[a+r,o+i]],t)}var o_=(e,t,n)=>e<t?r_(Math.abs(e-t),1,t)/t:e>n?-r_(Math.abs(e-n),1,t)/t:0,s_=(e,t,n=15,r=40)=>[o_(e.x,r,t.width-r)*n,o_(e.y,r,t.height-r)*n],c_=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),l_=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),u_=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),d_=(e,t=[0,0])=>{let{x:n,y:r}=qg(e)?e.internals.positionAbsolute:Jg(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},f_=(e,t=[0,0])=>{let{x:n,y:r}=qg(e)?e.internals.positionAbsolute:Jg(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},p_=(e,t)=>u_(c_(l_(e),l_(t))),m_=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},h_=(e,t)=>m_(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),g_=e=>__(e.width)&&__(e.height)&&__(e.x)&&__(e.y),__=e=>!isNaN(e)&&isFinite(e),v_=(e,t)=>(e,t)=>{},y_=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),b_=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?y_(s,o):s},x_=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function S_(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function C_(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=S_(e,n),i=S_(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=S_(e.top??e.y??0,n),i=S_(e.bottom??e.y??0,n),a=S_(e.left??e.x??0,t),o=S_(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function w_(e,t,n,r,i,a){let{x:o,y:s}=x_(e,[t,n,r]),{x:c,y:l}=x_({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var T_=(e,t,n,r,i,a)=>{let o=C_(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=r_(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=w_(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},E_=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function D_(e){return e!=null&&e!==`parent`}function O_(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function k_(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function A_(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function j_(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function M_(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function N_(e){return{...Ig,...e||{}}}function P_(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=B_(e),s=b_({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?y_(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var F_=e=>({width:e.offsetWidth,height:e.offsetHeight}),I_=e=>e?.getRootNode?.()||window?.document,L_=[`INPUT`,`SELECT`,`TEXTAREA`];function R_(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?L_.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var z_=e=>`clientX`in e,B_=(e,t)=>{let n=z_(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},V_=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...F_(t)}})};function H_({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function U_(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function W_({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case Q.Left:return[t-U_(t-r,a),n];case Q.Right:return[t+U_(r-t,a),n];case Q.Top:return[t,n-U_(n-i,a)];case Q.Bottom:return[t,n+U_(i-n,a)]}}function G_({sourceX:e,sourceY:t,sourcePosition:n=Q.Bottom,targetX:r,targetY:i,targetPosition:a=Q.Top,curvature:o=.25}){let[s,c]=W_({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=W_({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=H_({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function K_({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n<e?n+i:n-i,o=Math.abs(r-t)/2;return[a,r<t?r+o:r-o,i,o]}function q_({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:i=!1,zIndexMode:a=`basic`}){return a===`manual`?r:(i&&n?r+1e3:r)+Math.max(e.parentId||i&&e.selected?e.internals.z:0,t.parentId||i&&t.selected?t.internals.z:0)}function J_({sourceNode:e,targetNode:t,width:n,height:r,transform:i}){let a=c_(f_(e),f_(t));return a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1),h_({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},u_(a))>0}var Y_=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,X_=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),Z_=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,Ng.error006()),t;let r=n.getEdgeId||Y_,i;return i=Gg(e)?{...e}:{...e,id:r(e)},X_(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function Q_({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=K_({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var $_={[Q.Left]:{x:-1,y:0},[Q.Right]:{x:1,y:0},[Q.Top]:{x:0,y:-1},[Q.Bottom]:{x:0,y:1}},ev=({source:e,sourcePosition:t=Q.Bottom,target:n})=>t===Q.Left||t===Q.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},tv=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function nv({source:e,sourcePosition:t=Q.Bottom,target:n,targetPosition:r=Q.Top,center:i,offset:a,stepPosition:o}){let s=$_[t],c=$_[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=ev({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=K_({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]<u[e];(s[f]===1&&(!t&&n||t&&r)||s[f]!==1&&(!t&&r||t&&n))&&(m=f===`x`?i:o)}let d={x:l.x+_.x,y:l.y+_.y},y={x:u.x+v.x,y:u.y+v.y};Math.max(Math.abs(d.x-m[0].x),Math.abs(y.x-m[0].x))>=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function rv(e,t,n,r){let i=Math.min(tv(e,t)/2,tv(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.x<n.x?-1:1,r=e.y<n.y?1:-1;return`L ${a+i*t},${o}Q ${a},${o} ${a},${o+i*r}`}let s=e.x<n.x?1:-1;return`L ${a},${o+i*(e.y<n.y?-1:1)}Q ${a},${o} ${a+i*s},${o}`}function iv({sourceX:e,sourceY:t,sourcePosition:n=Q.Bottom,targetX:r,targetY:i,targetPosition:a=Q.Top,borderRadius:o=5,centerX:s,centerY:c,offset:l=20,stepPosition:u=.5}){let[d,f,p,m,h]=nv({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:i},targetPosition:a,center:{x:s,y:c},offset:l,stepPosition:u}),g=`M${d[0].x} ${d[0].y}`;for(let e=1;e<d.length-1;e++)g+=rv(d[e-1],d[e],d[e+1],o);return g+=`L${d[d.length-1].x} ${d[d.length-1].y}`,[g,f,p,m,h]}function av(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function ov(e){let{sourceNode:t,targetNode:n}=e;if(!av(t)||!av(n))return null;let r=t.internals.handleBounds||sv(t.handles),i=n.internals.handleBounds||sv(n.handles),a=lv(r?.source??[],e.sourceHandle),o=lv(e.connectionMode===Lg.Strict?i?.target??[]:(i?.target??[]).concat(i?.source??[]),e.targetHandle);if(!a||!o)return e.onError?.(`008`,Ng.error008(a?`target`:`source`,{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let s=a?.position||Q.Bottom,c=o?.position||Q.Top,l=cv(t,a,s),u=cv(n,o,c);return{sourceX:l.x,sourceY:l.y,targetX:u.x,targetY:u.y,sourcePosition:s,targetPosition:c}}function sv(e){if(!e)return null;let t=[],n=[];for(let r of e)r.width=r.width??1,r.height=r.height??1,r.type===`source`?t.push(r):r.type===`target`&&n.push(r);return{source:t,target:n}}function cv(e,t,n=Q.Left,r=!1){let i=(t?.x??0)+e.internals.positionAbsolute.x,a=(t?.y??0)+e.internals.positionAbsolute.y,{width:o,height:s}=t??O_(e);if(r)return{x:i+o/2,y:a+s/2};switch(t?.position??n){case Q.Top:return{x:i+o/2,y:a};case Q.Right:return{x:i+o,y:a+s/2};case Q.Bottom:return{x:i+o/2,y:a+s};case Q.Left:return{x:i,y:a+s/2}}}function lv(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function uv(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function dv(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=uv(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var fv=1e3,pv=10,mv={nodeOrigin:[0,0],nodeExtent:Pg,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},hv={...mv,checkEquality:!0};function gv(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function _v(e,t,n){let r=gv(mv,n);for(let n of e.values())if(n.parentId)Sv(n,e,t,r);else{let e=i_(Jg(n,r.nodeOrigin),D_(n.extent)?n.extent:r.nodeExtent,O_(n));n.internals.positionAbsolute=e}}function vv(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function yv(e){return e===`manual`}function bv(e,t,n,r={}){let i=gv(hv,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!yv(i.zIndexMode)?fv:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=i_(Jg(u,i.nodeOrigin),D_(u.extent)?u.extent:i.nodeExtent,O_(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:vv(u,e),z:Cv(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&Sv(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function xv(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function Sv(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=gv(mv,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}xv(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*pv),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=wv(e,u,o,s,a&&!yv(c)?fv:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function Cv(e,t,n){let r=__(e.zIndex)?e.zIndex:0;return yv(n)?r:r+(e.selected?t:0)}function wv(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=O_(e),l=Jg(e,n),u=D_(e.extent)?i_(l,e.extent,c):l,d=i_({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=a_(d,c,t));let f=Cv(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function Tv(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=p_(a.get(n.parentId)?.expandedRect??d_(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=O_(a),l=a.origin??r,u=t.x<s.x?Math.round(Math.abs(s.x-t.x)):0,d=t.y<s.y?Math.round(Math.abs(s.y-t.y)):0,f=Math.max(c.width,Math.round(t.width)),p=Math.max(c.height,Math.round(t.height)),m=(f-c.width)*l[0],h=(p-c.height)*l[1];(u>0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width<t.width||c.height<t.height||u||d)&&i.push({id:o,type:`dimensions`,setAttributes:!0,dimensions:{width:f+(u?l[0]*u-m:0),height:p+(d?l[1]*d-h:0)}})}),i}function Ev(e,t,n,r,i,a,o){let s=r?.querySelector(`.xyflow__viewport`),c=!1;if(!s)return{changes:[],updatedInternals:c};let l=[],u=window.getComputedStyle(s),{m22:d}=new window.DOMMatrixReadOnly(u.transform),f=[];for(let r of e.values()){let e=t.get(r.id);if(!e)continue;if(e.hidden){t.set(e.id,{...e,internals:{...e.internals,handleBounds:void 0}}),c=!0;continue}let s=F_(r.nodeElement),u=e.measured.width!==s.width||e.measured.height!==s.height;if(s.width&&s.height&&(u||!e.internals.handleBounds||r.force)){let p=r.nodeElement.getBoundingClientRect(),m=D_(e.extent)?e.extent:a,{positionAbsolute:h}=e.internals;if(e.parentId&&e.extent===`parent`){let n=t.get(e.parentId);n&&(h=a_(h,s,n))}else m&&(h=i_(h,m,s));let g={...e,measured:s,internals:{...e.internals,positionAbsolute:h,handleBounds:{source:V_(`source`,r.nodeElement,p,d,e.id),target:V_(`target`,r.nodeElement,p,d,e.id)}}};t.set(e.id,g),e.parentId&&Sv(g,t,n,{nodeOrigin:i,zIndexMode:o}),c=!0,u&&(l.push({id:e.id,type:`dimensions`,dimensions:s}),e.expandParent&&e.parentId&&f.push({id:e.id,parentId:e.parentId,rect:d_(g,i)}))}}if(f.length>0){let e=Tv(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function Dv({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function Ov(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function kv(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;Ov(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),Ov(`target`,s,c,e,i,o),t.set(r.id,r)}}function Av(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:Av(n,t):!1}function jv(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function Mv(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!Av(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function Nv({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function Pv({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=y_(a,t);return{x:o.x-a.x,y:o.y-a.y}}function Fv({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:x=0}){f=$f(v);function S({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?l_(Xg(s)):null,x=v&&l?Pv({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:y_(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=t_({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=Nv({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function C(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=s_(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&S(a)),o=requestAnimationFrame(C)}function w(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=P_(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=Mv(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=Nv({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=mp().clickDistance(x).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&w(e),a=P_(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=B_(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=P_(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,C()),!d){let t=B_(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&w(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=B_(e.sourceEvent,u),S(g))}}).on(`end`,e=>{if(!d||p){p&&s.size>0&&t().updateNodePositions(s,!1);return}if(c=!1,d=!1,cancelAnimationFrame(o),s.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=Nv({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!jv(t,`.${g}`,v))&&(!_||jv(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function Iv(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())h_(i,d_(e))>0&&r.push(e);return r}var Lv=250;function Rv(e,t,n,r){let i=[],a=1/0,o=Iv(e,n,t+Lv);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=cv(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l<a?(i=[{...s,x:o,y:c}],a=l):l===a&&i.push({...s,x:o,y:c}))}}if(!i.length)return null;if(i.length>1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function zv(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...cv(o,c,c.position,!0)}:c}function Bv(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function Vv(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var Hv=()=>!0;function Uv(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=Hv,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=I_(e.target),E=0,D,{x:O,y:k}=B_(e),A=Bv(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let ee=zv(i,A,r,c,t);if(!ee)return;let te=B_(e,j),ne=!1,N=null,P=!1,re=null;function F(){if(!u||!j)return;let[e,t]=s_(te,j,S);f({x:e,y:t}),E=requestAnimationFrame(F)}let I={...ee,nodeId:i,type:A,position:ee.position},ie=c.get(i),L={inProgress:!0,isValid:null,from:cv(ie,I,Q.Left,!0),fromHandle:I,fromPosition:I.position,fromNode:ie,to:te,toHandle:null,toPosition:Ug[I.position],toNode:null,pointer:te};function R(){M=!0,y(L),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&R();function ae(e){if(!M){let{x:t,y:n}=B_(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;R()}if(!x()||!I){oe(e);return}let a=b();te=B_(e,j),D=Rv(b_(te,a,!1,[1,1]),n,c,I),ne||=(F(),!0);let s=Wv(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});re=s.handleDomNode,N=s.connection,P=Vv(!!D,s.isValid);let u=c.get(i),f=u?cv(u,I,Q.Left,!0):L.from,p={...L,from:f,isValid:P,to:s.toHandle&&P?x_({x:s.toHandle.x,y:s.toHandle.y},a):te,toHandle:s.toHandle,toPosition:P&&s.toHandle?s.toHandle.position:Ug[I.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:te};y(p),L=p}function oe(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||re)&&N&&P&&h?.(N);let{inProgress:t,...n}=L,r={...n,toPosition:L.toHandle?L.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),ne=!1,P=!1,N=null,re=null,T.removeEventListener(`mousemove`,ae),T.removeEventListener(`mouseup`,oe),T.removeEventListener(`touchmove`,ae),T.removeEventListener(`touchend`,oe)}}T.addEventListener(`mousemove`,ae),T.addEventListener(`mouseup`,oe),T.addEventListener(`touchmove`,ae),T.addEventListener(`touchend`,oe)}function Wv(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=Hv,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=B_(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=Bv(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===Lg.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=zv(t,e,a,u,n,!0)}return _}var Gv={onPointerDown:Uv,isValid:Wv};function Kv({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=$f(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&E_()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=Mg().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:tp}}var qv=e=>({x:e.x,y:e.y,zoom:e.k}),Jv=({x:e,y:t,zoom:n})=>Sg.translate(e,t).scale(n),Yv=(e,t)=>e.target.closest(`.${t}`),Xv=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Zv=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Qv=(e,t=0,n=Zv,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},$v=e=>{let t=e.ctrlKey&&E_()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function ey({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(Yv(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let d=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=tp(u),t=d*2**$v(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===Rg.Vertical?0:u.deltaX*f,m=i===Rg.Horizontal?0:u.deltaY*f;!E_()&&u.shiftKey&&i!==Rg.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=qv(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?c?.(u,h):(e.isPanScrolling=!0,s?.(u,h)),e.panScrollTimeout=setTimeout(()=>{l?.(u,h),e.isPanScrolling=!1},150)}}function ty({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=Yv(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function ny({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=qv(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function ry({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&Xv(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,qv(a.transform))}}function iy({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&Xv(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=qv(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function ay({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:a,userSelectionActive:o,noWheelClassName:s,noPanClassName:c,lib:l,connectionInProgress:u}){return d=>{let f=e||t,p=n&&d.ctrlKey,m=d.type===`wheel`;if(d.button===1&&d.type===`mousedown`&&(Yv(d,`${l}-flow__node`)||Yv(d,`${l}-flow__edge`)))return!0;if(!r&&!f&&!i&&!a&&!n||o||u&&!m||Yv(d,s)&&m||Yv(d,c)&&(!m||i&&m&&!e)||!n&&d.ctrlKey&&m)return!1;if(!n&&d.type===`touchstart`&&d.touches?.length>1)return d.preventDefault(),!1;if(!f&&!i&&!p&&m||!r&&(d.type===`mousedown`||d.type===`touchstart`)||Array.isArray(r)&&!r.includes(d.button)&&d.type===`mousedown`)return!1;let h=Array.isArray(r)&&r.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||m)&&h}}function oy({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:s,onDraggingChange:c}){let l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=[[0,0],[u.width,u.height]];(typeof ResizeObserver<`u`?new ResizeObserver(e=>{let t=e[0];t&&(d=[[0,0],[t.contentRect.width,t.contentRect.height]])}):null)?.observe(e);let f=Mg().extent(()=>d).scaleExtent([t,n]).translateExtent(r),p=$f(e).call(f);y({x:i.x,y:i.y,zoom:r_(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta($v);async function g(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?vm:Mm).transform(Qv(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function _({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:u,panOnScrollMode:d,panOnScrollSpeed:g,preventScrolling:_,zoomOnPinch:y,zoomOnScroll:b,zoomOnDoubleClick:x,zoomActivationKeyPressed:S,lib:C,onTransformChange:w,connectionInProgress:T,paneClickDistance:E,selectionOnDrag:D}){r&&!l.isZoomingOrPanning&&v();let O=i&&!S&&!r;f.clickDistance(D?1/0:!__(E)||E<0?0:E);let k=O?ey({zoomPanValues:l,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):ty({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});p.on(`wheel.zoom`,k,{passive:!1});let A=ny({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});f.on(`start`,A);let j=ry({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:w});f.on(`zoom`,j);let M=iy({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});f.on(`end`,M);let ee=ay({zoomActivationKeyPressed:S,panOnDrag:u,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:C,connectionInProgress:T});f.filter(ee),x?p.on(`dblclick.zoom`,h):p.on(`dblclick.zoom`,null)}function v(){f.on(`zoom`,null)}async function y(e,t,n){let r=Jv(e),i=f?.constrain()(r,t,n);return i&&await g(i),i}async function b(e,t){let n=Jv(e);return await g(n,t),n}function x(e){if(p){let t=Jv(e),n=p.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&f?.transform(p,t,null,{sync:!0})}}function S(){let e=p?Cg(p.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function C(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?vm:Mm).scaleTo(Qv(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function w(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?vm:Mm).scaleBy(Qv(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function T(e){f?.scaleExtent(e)}function E(e){f?.translateExtent(e)}function D(e){let t=!__(e)||e<0?0:e;f?.clickDistance(t)}return{update:_,destroy:v,setViewport:b,setViewportConstrained:y,getViewport:S,scaleTo:C,scaleBy:w,setScaleExtent:T,setTranslateExtent:E,syncViewport:x,setClickDistance:D}}var sy;(function(e){e.Line=`line`,e.Handle=`handle`})(sy||={});function cy({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function ly(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function uy(e,t){return Math.max(0,t-e)}function dy(e,t){return Math.max(0,e-t)}function fy(e,t,n){return Math.max(0,t-e,e-n)}function py(e,t){return e?!t:t}function my(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=fy(E,h,g),j=fy(D,_,v);if(o){let e=0,t=0;c&&w<0?e=uy(y+w+O,o[0][0]):!c&&w>0&&(e=dy(y+E+O,o[1][0])),l&&T<0?t=uy(b+T+k,o[0][1]):!l&&T>0&&(t=dy(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=dy(y+w,s[0][0]):!c&&w<0&&(e=uy(y+E,s[1][0])),l&&T>0?t=dy(b+T,s[0][1]):!l&&T<0&&(t=uy(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=fy(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?dy(b+k+E/C,o[1][1])*C:uy(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?uy(b+E/C,s[1][1])*C:dy(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=fy(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?dy(y+D*C+O,o[1][0])/C:uy(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?uy(y+D*C,s[1][0])/C:dy(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(py(c,l)?-w:w)/C:w=(py(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,ee=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+ee}}var hy={width:0,height:0,x:0,y:0},gy={...hy,pointerX:0,pointerY:0,aspectRatio:1};function _y(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function vy({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=$f(e),o={controlDirection:ly(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...hy},h={...gy};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:ly(e)};let g,_=null,v=[],y,b,x,S=!1,C=mp().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(g=r.get(t),!g)return;_=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=P_(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:_});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},h={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},y=void 0,b=D_(g.extent)?g.extent:void 0,g.parentId&&(g.extent===`parent`||g.expandParent)&&(y=r.get(g.parentId)),y&&g.extent===`parent`&&(b=[[0,0],[y.measured.width,y.measured.height]]),v=[],x=void 0;for(let[e,n]of r)if(n.parentId===t&&(v.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=_y(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n(),c=P_(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:_}),l=[];if(!g)return;let{x:u,y:f,width:C,height:w}=m,T={},E=g.origin??s,{width:D,height:O,x:k,y:A}=my(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,E,b,x),j=D!==C,M=O!==w,ee=k!==u&&j,te=A!==f&&M;if(!ee&&!te&&!j&&!M)return;if((ee||te||E[0]===1||E[1]===1)&&(T.x=ee?k:m.x,T.y=te?A:m.y,m.x=T.x,m.y=T.y,v.length>0)){let e=k-u,t=A-f;for(let n of v)n.position={x:n.position.x-e+E[0]*(D-C),y:n.position.y-t+E[1]*(O-w)},l.push(n)}if((j||M)&&(T.width=j&&(!o.resizeDirection||o.resizeDirection===`horizontal`)?D:m.width,T.height=M&&(!o.resizeDirection||o.resizeDirection===`vertical`)?O:m.height,m.width=T.width,m.height=T.height),y&&g.expandParent){let e=E[0]*(T.width??0);T.x&&T.x<e&&(m.x=e,h.x-=T.x-e);let t=E[1]*(T.height??0);T.y&&T.y<t&&(m.y=t,h.y-=T.y-t)}let ne=cy({width:m.width,prevWidth:C,height:m.height,prevHeight:w,affectsX:o.controlDirection.affectsX,affectsY:o.controlDirection.affectsY}),N={...m,direction:ne};p?.(e,N)!==!1&&(S=!0,d?.(e,N),r(T,l))}).on(`end`,e=>{S&&=(f?.(e,{...m}),i?.({...m}),!1)});a.call(C)}function c(){a.on(`.drag`,null)}return{update:s,destroy:c}}var yy=n((e=>{var t=i();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,a=t.useState,o=t.useEffect,s=t.useLayoutEffect,c=t.useDebugValue;function l(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),i=r[0].inst,l=r[1];return s(function(){i.value=n,i.getSnapshot=t,u(i)&&l({inst:i})},[e,n,t]),o(function(){return u(i)&&l({inst:i}),e(function(){u(i)&&l({inst:i})})},[e]),c(n),n}function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function d(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?d:l;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),by=n(((e,t)=>{t.exports=yy()})),xy=n((e=>{var t=i(),n=by();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var a=typeof Object.is==`function`?Object.is:r,o=n.useSyncExternalStore,s=t.useRef,c=t.useEffect,l=t.useMemo,u=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var d=s(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=l(function(){function e(e){if(!o){if(o=!0,s=e,e=r(e),i!==void 0&&f.hasValue){var t=f.value;if(i(t,e))return c=t}return c=e}if(t=c,a(s,e))return t;var n=r(e);return i!==void 0&&i(t,n)?(s=e,t):(s=e,c=n)}var o=!1,s,c,l=n===void 0?null:n;return[function(){return e(t())},l===null?void 0:function(){return e(l())}]},[t,n,r,i]);var p=o(e,d[0],d[1]);return c(function(){f.hasValue=!0,f.value=p},[p]),u(p),p}})),Sy=n(((e,t)=>{t.exports=xy()})),Cy=e(Sy(),1),wy=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},o=t=e(r,i,a);return a},Ty=e=>e?wy(e):wy,{useDebugValue:Ey}=G.default,{useSyncExternalStoreWithSelector:Dy}=Cy.default,Oy=e=>e;function ky(e,t=Oy,n){let r=Dy(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Ey(r),r}var Ay=(e,t)=>{let n=Ty(e),r=(e,r=t)=>ky(n,e,r);return Object.assign(r,n),r},jy=(e,t)=>e?Ay(e,t):Ay;function My(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}var Ny=e(c()),Py=(0,G.createContext)(null),Fy=Py.Provider,Iy=Ng.error001(`react`);function $(e,t){let n=(0,G.useContext)(Py);if(n===null)throw Error(Iy);return ky(n,e,t)}function Ly(){let e=(0,G.useContext)(Py);if(e===null)throw Error(Iy);return(0,G.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var Ry={display:`none`},zy={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},By=`react-flow__node-desc`,Vy=`react-flow__edge-desc`,Hy=`react-flow__aria-live`,Uy=e=>e.ariaLiveMessage,Wy=e=>e.ariaLabelConfig;function Gy({rfId:e}){let t=$(Uy);return(0,X.jsx)(`div`,{id:`${Hy}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:zy,children:t})}function Ky({rfId:e,disableKeyboardA11y:t}){let n=$(Wy);return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{id:`${By}-${e}`,style:Ry,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,X.jsx)(`div`,{id:`${Vy}-${e}`,style:Ry,children:n[`edge.a11yDescription.default`]}),!t&&(0,X.jsx)(Gy,{rfId:e})]})}var qy=(0,G.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>(0,X.jsx)(`div`,{className:Ju([`react-flow__panel`,n,...`${e}`.split(`-`)]),style:r,ref:a,...i,children:t}));qy.displayName=`Panel`;var Jy=`https://reactflow.dev?utm_source=attribution`;function Yy({proOptions:e,position:t=`bottom-right`}){return e?.hideAttribution?null:(0,X.jsx)(qy,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Jy}`,children:(0,X.jsx)(`a`,{href:Jy,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var Xy=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},Zy=e=>e.id;function Qy(e,t){return My(e.selectedNodes.map(Zy),t.selectedNodes.map(Zy))&&My(e.selectedEdges.map(Zy),t.selectedEdges.map(Zy))}function $y({onSelectionChange:e}){let t=Ly(),{selectedNodes:n,selectedEdges:r}=$(Xy,Qy);return(0,G.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var eb=e=>!!e.onSelectionChangeHandlers;function tb({onSelectionChange:e}){let t=$(eb);return e||t?(0,X.jsx)($y,{onSelectionChange:e}):null}var nb=[0,0],rb={x:0,y:0,zoom:1},ib=[...`nodes.edges.defaultNodes.defaultEdges.onConnect.onConnectStart.onConnectEnd.onClickConnectStart.onClickConnectEnd.nodesDraggable.autoPanOnNodeFocus.nodesConnectable.nodesFocusable.edgesFocusable.edgesReconnectable.elevateNodesOnSelect.elevateEdgesOnSelect.minZoom.maxZoom.nodeExtent.onNodesChange.onEdgesChange.elementsSelectable.connectionMode.snapGrid.snapToGrid.translateExtent.connectOnClick.defaultEdgeOptions.fitView.fitViewOptions.onNodesDelete.onEdgesDelete.onDelete.onNodeDrag.onNodeDragStart.onNodeDragStop.onSelectionDrag.onSelectionDragStart.onSelectionDragStop.onMoveStart.onMove.onMoveEnd.noPanClassName.nodeOrigin.autoPanOnConnect.autoPanOnNodeDrag.onError.connectionRadius.isValidConnection.selectNodesOnDrag.nodeDragThreshold.connectionDragThreshold.onBeforeDelete.debug.autoPanSpeed.ariaLabelConfig.zIndexMode`.split(`.`),`rfId`],ab=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),ob={translateExtent:Pg,nodeOrigin:nb,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function sb(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=$(ab,My),l=Ly();(0,G.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=ob,s()}),[]);let u=(0,G.useRef)(ob);return(0,G.useEffect)(()=>{for(let s of ib){let c=e[s];c!==u.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:N_(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},ib.map(t=>e[t])),null}function cb(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function lb(e){let[t,n]=(0,G.useState)(e===`system`?null:e);return(0,G.useEffect)(()=>{if(e!==`system`){n(e);return}let t=cb(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?cb()?.matches?`dark`:`light`:t}var ub=typeof document<`u`?document:null;function db(e=null,t={target:ub,actInsideInputWithModifier:!0}){let[n,r]=(0,G.useState)(!1),i=(0,G.useRef)(!1),a=(0,G.useRef)(new Set([])),[o,s]=(0,G.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(`+`,`
86
+ `,a.map=[t,e.line],!0}function Rc(e,t,n,r){let i=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||i+3>a)return!1;let o=e.src.charCodeAt(i);if(o!==126&&o!==96)return!1;let s=i;i=e.skipChars(i,o);let c=i-s;if(c<3)return!1;let l=e.src.slice(s,i),u=e.src.slice(i,a);if(o===96&&u.indexOf(String.fromCharCode(o))>=0)return!1;if(r)return!0;let d=t,f=!1;for(;d++,!(d>=n||(i=s=e.bMarks[d]+e.tShift[d],a=e.eMarks[d],i<a&&e.sCount[d]<e.blkIndent));)if(e.src.charCodeAt(i)===o&&!(e.sCount[d]-e.blkIndent>=4)&&(i=e.skipChars(i,o),!(i-s<c)&&(i=e.skipSpaces(i),!(i<a)))){f=!0;break}c=e.sCount[t],e.line=d+ +!!f;let p=e.push(`fence`,`code`,0);return p.info=u,p.content=e.getLines(t+1,d,c,!0),p.markup=l,p.map=[t,e.line],!0}function zc(e,t,n,r){let i=e.bMarks[t]+e.tShift[t],a=e.eMarks[t],o=e.lineMax;if(e.sCount[t]-e.blkIndent>=4||e.src.charCodeAt(i)!==62)return!1;if(r)return!0;let s=[],c=[],l=[],u=[],d=e.md.block.ruler.getRules(`blockquote`),f=e.parentType;e.parentType=`blockquote`;let p=!1,m;for(m=t;m<n;m++){let t=e.sCount[m]<e.blkIndent;if(i=e.bMarks[m]+e.tShift[m],a=e.eMarks[m],i>=a)break;if(e.src.charCodeAt(i++)===62&&!t){let t=e.sCount[m]+1,n,r;e.src.charCodeAt(i)===32?(i++,t++,r=!1,n=!0):e.src.charCodeAt(i)===9?(n=!0,(e.bsCount[m]+t)%4==3?(i++,t++,r=!1):r=!0):n=!1;let o=t;for(s.push(e.bMarks[m]),e.bMarks[m]=i;i<a;){let t=e.src.charCodeAt(i);if(q(t))t===9?o+=4-(o+e.bsCount[m]+ +!!r)%4:o++;else break;i++}p=i>=a,c.push(e.bsCount[m]),e.bsCount[m]=e.sCount[m]+1+ +!!n,l.push(e.sCount[m]),e.sCount[m]=o-t,u.push(e.tShift[m]),e.tShift[m]=i-e.bMarks[m];continue}if(p)break;let r=!1;for(let t=0,i=d.length;t<i;t++)if(d[t](e,m,n,!0)){r=!0;break}if(r){e.lineMax=m,e.blkIndent!==0&&(s.push(e.bMarks[m]),c.push(e.bsCount[m]),u.push(e.tShift[m]),l.push(e.sCount[m]),e.sCount[m]-=e.blkIndent);break}s.push(e.bMarks[m]),c.push(e.bsCount[m]),u.push(e.tShift[m]),l.push(e.sCount[m]),e.sCount[m]=-1}let h=e.blkIndent;e.blkIndent=0;let g=e.push(`blockquote_open`,`blockquote`,1);g.markup=`>`;let _=[t,0];g.map=_,e.md.block.tokenize(e,t,m);let v=e.push(`blockquote_close`,`blockquote`,-1);v.markup=`>`,e.lineMax=o,e.parentType=f,_[1]=e.line;for(let n=0;n<u.length;n++)e.bMarks[n+t]=s[n],e.tShift[n+t]=u[n],e.sCount[n+t]=l[n],e.bsCount[n+t]=c[n];return e.blkIndent=h,!0}function Bc(e,t,n,r){let i=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;let a=e.bMarks[t]+e.tShift[t],o=e.src.charCodeAt(a++);if(o!==42&&o!==45&&o!==95)return!1;let s=1;for(;a<i;){let t=e.src.charCodeAt(a++);if(t!==o&&!q(t))return!1;t===o&&s++}if(s<3)return!1;if(r)return!0;e.line=t+1;let c=e.push(`hr`,`hr`,0);return c.map=[t,e.line],c.markup=Array(s+1).join(String.fromCharCode(o)),!0}function Vc(e,t){let n=e.eMarks[t],r=e.bMarks[t]+e.tShift[t],i=e.src.charCodeAt(r++);return i!==42&&i!==45&&i!==43||r<n&&!q(e.src.charCodeAt(r))?-1:r}function Hc(e,t){let n=e.bMarks[t]+e.tShift[t],r=e.eMarks[t],i=n;if(i+1>=r)return-1;let a=e.src.charCodeAt(i++);if(a<48||a>57)return-1;for(;;){if(i>=r)return-1;if(a=e.src.charCodeAt(i++),a>=48&&a<=57){if(i-n>=10)return-1;continue}if(a===41||a===46)break;return-1}return i<r&&(a=e.src.charCodeAt(i),!q(a))?-1:i}function Uc(e,t){let n=e.level+2;for(let r=t+2,i=e.tokens.length-2;r<i;r++)e.tokens[r].level===n&&e.tokens[r].type===`paragraph_open`&&(e.tokens[r+2].hidden=!0,e.tokens[r].hidden=!0,r+=2)}function Wc(e,t,n,r){let i,a,o,s,c=t,l=!0;if(e.sCount[c]-e.blkIndent>=4||e.listIndent>=0&&e.sCount[c]-e.listIndent>=4&&e.sCount[c]<e.blkIndent)return!1;let u=!1;r&&e.parentType===`paragraph`&&e.sCount[c]>=e.blkIndent&&(u=!0);let d,f,p;if((p=Hc(e,c))>=0){if(d=!0,o=e.bMarks[c]+e.tShift[c],f=Number(e.src.slice(o,p-1)),u&&f!==1)return!1}else if((p=Vc(e,c))>=0)d=!1;else return!1;if(u&&e.skipSpaces(p)>=e.eMarks[c])return!1;if(r)return!0;let m=e.src.charCodeAt(p-1),h=e.tokens.length;d?(s=e.push(`ordered_list_open`,`ol`,1),f!==1&&(s.attrs=[[`start`,f]])):s=e.push(`bullet_list_open`,`ul`,1);let g=[c,0];s.map=g,s.markup=String.fromCharCode(m);let _=!1,v=e.md.block.ruler.getRules(`list`),y=e.parentType;for(e.parentType=`list`;c<n;){a=p,i=e.eMarks[c];let t=e.sCount[c]+p-(e.bMarks[c]+e.tShift[c]),r=t;for(;a<i;){let t=e.src.charCodeAt(a);if(t===9)r+=4-(r+e.bsCount[c])%4;else if(t===32)r++;else break;a++}let u=a,f;f=u>=i?1:r-t,f>4&&(f=1);let h=t+f;s=e.push(`list_item_open`,`li`,1),s.markup=String.fromCharCode(m);let g=[c,0];s.map=g,d&&(s.info=e.src.slice(o,p-1));let y=e.tight,b=e.tShift[c],x=e.sCount[c],S=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=h,e.tight=!0,e.tShift[c]=u-e.bMarks[c],e.sCount[c]=r,u>=i&&e.isEmpty(c+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,c,n,!0),(!e.tight||_)&&(l=!1),_=e.line-c>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=S,e.tShift[c]=b,e.sCount[c]=x,e.tight=y,s=e.push(`list_item_close`,`li`,-1),s.markup=String.fromCharCode(m),c=e.line,g[1]=c,c>=n||e.sCount[c]<e.blkIndent||e.sCount[c]-e.blkIndent>=4)break;let C=!1;for(let t=0,r=v.length;t<r;t++)if(v[t](e,c,n,!0)){C=!0;break}if(C)break;if(d){if(p=Hc(e,c),p<0)break;o=e.bMarks[c]+e.tShift[c]}else if(p=Vc(e,c),p<0)break;if(m!==e.src.charCodeAt(p-1))break}return s=d?e.push(`ordered_list_close`,`ol`,-1):e.push(`bullet_list_close`,`ul`,-1),s.markup=String.fromCharCode(m),g[1]=c,e.line=c,e.parentType=y,l&&Uc(e,h),!0}function Gc(e,t,n,r){let i=e.bMarks[t]+e.tShift[t],a=e.eMarks[t],o=t+1;if(e.sCount[t]-e.blkIndent>=4||e.src.charCodeAt(i)!==91)return!1;function s(t){let n=e.lineMax;if(t>=n||e.isEmpty(t))return null;let r=!1;if(e.sCount[t]-e.blkIndent>3&&(r=!0),e.sCount[t]<0&&(r=!0),!r){let r=e.md.block.ruler.getRules(`reference`),i=e.parentType;e.parentType=`reference`;let a=!1;for(let i=0,o=r.length;i<o;i++)if(r[i](e,t,n,!0)){a=!0;break}if(e.parentType=i,a)return null}let i=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];return e.src.slice(i,a+1)}let c=e.src.slice(i,a+1);a=c.length;let l=-1;for(i=1;i<a;i++){let e=c.charCodeAt(i);if(e===91)return!1;if(e===93){l=i;break}else if(e===10){let e=s(o);e!==null&&(c+=e,a=c.length,o++)}else if(e===92&&(i++,i<a&&c.charCodeAt(i)===10)){let e=s(o);e!==null&&(c+=e,a=c.length,o++)}}if(l<0||c.charCodeAt(l+1)!==58)return!1;for(i=l+2;i<a;i++){let e=c.charCodeAt(i);if(e===10){let e=s(o);e!==null&&(c+=e,a=c.length,o++)}else if(!q(e))break}let u=e.md.helpers.parseLinkDestination(c,i,a);if(!u.ok)return!1;let d=e.md.normalizeLink(u.str);if(!e.md.validateLink(d))return!1;i=u.pos;let f=i,p=o,m=i;for(;i<a;i++){let e=c.charCodeAt(i);if(e===10){let e=s(o);e!==null&&(c+=e,a=c.length,o++)}else if(!q(e))break}let h=e.md.helpers.parseLinkTitle(c,i,a);for(;h.can_continue;){let t=s(o);if(t===null)break;c+=t,i=a,a=c.length,o++,h=e.md.helpers.parseLinkTitle(c,i,a,h)}let g;for(i<a&&m!==i&&h.ok?(g=h.str,i=h.pos):(g=``,i=f,o=p);i<a&&q(c.charCodeAt(i));)i++;if(i<a&&c.charCodeAt(i)!==10&&g)for(g=``,i=f,o=p;i<a&&q(c.charCodeAt(i));)i++;if(i<a&&c.charCodeAt(i)!==10)return!1;let _=qs(c.slice(1,l));return _?r?!0:(e.env.references===void 0&&(e.env.references={}),e.env.references[_]===void 0&&(e.env.references[_]={title:g,href:d}),e.line=o,!0):!1}var Kc=`address.article.aside.base.basefont.blockquote.body.caption.center.col.colgroup.dd.details.dialog.dir.div.dl.dt.fieldset.figcaption.figure.footer.form.frame.frameset.h1.h2.h3.h4.h5.h6.head.header.hr.html.iframe.legend.li.link.main.menu.menuitem.nav.noframes.ol.optgroup.option.p.param.search.section.summary.table.tbody.td.tfoot.th.thead.title.tr.track.ul`.split(`.`),qc=RegExp(`^(?:<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^"'=<>\`\\x00-\\x20]+|'[^']*'|"[^"]*"))?)*\\s*\\/?>|<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>|<!---?>|<!--(?:[^-]|-[^-]|--[^>])*-->|<[?][\\s\\S]*?[?]>|<![A-Za-z][^>]*>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>)`),Jc=RegExp(`^(?:<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^"'=<>\`\\x00-\\x20]+|'[^']*'|"[^"]*"))?)*\\s*\\/?>|<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>)`),Yc=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[RegExp(`^</?(`+Kc.join(`|`)+`)(?=(\\s|/?>|$))`,`i`),/^$/,!0],[RegExp(Jc.source+`\\s*$`),/^$/,!1]];function Xc(e,t,n,r){let i=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||!e.md.options.html||e.src.charCodeAt(i)!==60)return!1;let o=e.src.slice(i,a),s=0;for(;s<Yc.length&&!Yc[s][0].test(o);s++);if(s===Yc.length)return!1;if(r)return Yc[s][2];let c=t+1,l=Yc[s][1].test(``);if(!Yc[s][1].test(o)){for(;c<n&&!(e.sCount[c]<e.blkIndent&&(l||!e.isEmpty(c)));c++)if(i=e.bMarks[c]+e.tShift[c],a=e.eMarks[c],o=e.src.slice(i,a),Yc[s][1].test(o)){o.length!==0&&c++;break}}e.line=c;let u=e.push(`html_block`,``,0);return u.map=[t,c],u.content=e.getLines(t,c,e.blkIndent,!0),!0}function Zc(e,t,n,r){let i=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;let o=e.src.charCodeAt(i);if(o!==35||i>=a)return!1;let s=1;for(o=e.src.charCodeAt(++i);o===35&&i<a&&s<=6;)s++,o=e.src.charCodeAt(++i);if(s>6||i<a&&!q(o))return!1;if(r)return!0;a=e.skipSpacesBack(a,i);let c=e.skipCharsBack(a,35,i);c>i&&q(e.src.charCodeAt(c-1))&&(a=c),e.line=t+1;let l=e.push(`heading_open`,`h`+String(s),1);l.markup=`########`.slice(0,s),l.map=[t,e.line];let u=e.push(`inline`,``,0);u.content=Ys(e.src.slice(i,a)),u.map=[t,e.line],u.children=[];let d=e.push(`heading_close`,`h`+String(s),-1);return d.markup=`########`.slice(0,s),!0}function Qc(e,t,n){let r=e.md.block.ruler.getRules(`paragraph`);if(e.sCount[t]-e.blkIndent>=4)return!1;let i=e.parentType;e.parentType=`paragraph`;let a=0,o,s=t+1;for(;s<n&&!e.isEmpty(s);s++){if(e.sCount[s]-e.blkIndent>3)continue;if(e.sCount[s]>=e.blkIndent){let t=e.bMarks[s]+e.tShift[s],n=e.eMarks[s];if(t<n&&(o=e.src.charCodeAt(t),(o===45||o===61)&&(t=e.skipChars(t,o),t=e.skipSpaces(t),t>=n))){a=o===61?1:2;break}}if(e.sCount[s]<0)continue;let t=!1;for(let i=0,a=r.length;i<a;i++)if(r[i](e,s,n,!0)){t=!0;break}if(t)break}if(!a)return e.parentType=i,!1;let c=Ys(e.getLines(t,s,e.blkIndent,!1));e.line=s+1;let l=e.push(`heading_open`,`h`+String(a),1);l.markup=String.fromCharCode(o),l.map=[t,e.line];let u=e.push(`inline`,``,0);u.content=c,u.map=[t,e.line-1],u.children=[];let d=e.push(`heading_close`,`h`+String(a),-1);return d.markup=String.fromCharCode(o),e.parentType=i,!0}function $c(e,t,n){let r=e.md.block.ruler.getRules(`paragraph`),i=e.parentType,a=t+1;for(e.parentType=`paragraph`;a<n&&!e.isEmpty(a);a++){if(e.sCount[a]-e.blkIndent>3||e.sCount[a]<0)continue;let t=!1;for(let i=0,o=r.length;i<o;i++)if(r[i](e,a,n,!0)){t=!0;break}if(t)break}let o=Ys(e.getLines(t,a,e.blkIndent,!1));e.line=a;let s=e.push(`paragraph_open`,`p`,1);s.map=[t,e.line];let c=e.push(`inline`,``,0);return c.content=o,c.map=[t,e.line],c.children=[],e.push(`paragraph_close`,`p`,-1),e.parentType=i,!0}var el=[[`table`,Ic,[`paragraph`,`reference`]],[`code`,Lc],[`fence`,Rc,[`paragraph`,`reference`,`blockquote`,`list`]],[`blockquote`,zc,[`paragraph`,`reference`,`blockquote`,`list`]],[`hr`,Bc,[`paragraph`,`reference`,`blockquote`,`list`]],[`list`,Wc,[`paragraph`,`reference`,`blockquote`]],[`reference`,Gc],[`html_block`,Xc,[`paragraph`,`reference`,`blockquote`]],[`heading`,Zc,[`paragraph`,`reference`,`blockquote`]],[`lheading`,Qc],[`paragraph`,$c]];function tl(){this.ruler=new rc;for(let e=0;e<el.length;e++)this.ruler.push(el[e][0],el[e][1],{alt:(el[e][2]||[]).slice()})}tl.prototype.tokenize=function(e,t,n){let r=this.ruler.getRules(``),i=r.length,a=e.md.options.maxNesting,o=t,s=!1;for(;o<n&&(e.line=o=e.skipEmptyLines(o),!(o>=n||e.sCount[o]<e.blkIndent));){if(e.level>=a){e.line=n;break}let t=e.line,c=!1;for(let a=0;a<i;a++)if(c=r[a](e,o,n,!1),c){if(t>=e.line)throw Error(`block rule didn't increment state.line`);break}if(!c)throw Error(`none of the block rules matched`);e.tight=!s,e.isEmpty(e.line-1)&&(s=!0),o=e.line,o<n&&e.isEmpty(o)&&(s=!0,o++,e.line=o)}},tl.prototype.parse=function(e,t,n,r){if(!e)return;let i=new this.State(e,t,n,r);this.tokenize(i,i.line,i.lineMax)},tl.prototype.State=Mc;function nl(e,t,n,r){this.src=e,this.env=n,this.md=t,this.tokens=r,this.tokens_meta=Array(r.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending=``,this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1,this.linkLevel=0}nl.prototype.pushPending=function(){let e=new ic(`text`,``,0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending=``,e},nl.prototype.push=function(e,t,n){this.pending&&this.pushPending();let r=new ic(e,t,n),i=null;return n<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),r.level=this.level,n>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],i={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(r),this.tokens_meta.push(i),r},nl.prototype.scanDelims=function(e,t){let n=this.posMax,r=this.src.charCodeAt(e),i;if(e===0)i=32;else if(e===1)i=this.src.charCodeAt(0),(i&63488)==55296&&(i=65533);else if(i=this.src.charCodeAt(e-1),(i&64512)==56320){let t=this.src.charCodeAt(e-2);i=(t&64512)==55296?65536+(t-55296<<10)+(i-56320):65533}else(i&64512)==55296&&(i=65533);let a=e;for(;a<n&&this.src.charCodeAt(a)===r;)a++;let o=a-e,s=a<n?this.src.charCodeAt(a):32;if((s&64512)==55296){let e=this.src.charCodeAt(a+1);s=(e&64512)==56320?65536+(s-55296<<10)+(e-56320):65533}else(s&64512)==56320&&(s=65533);let c=Ks(i)||Gs(i),l=Ks(s)||Gs(s),u=Us(i),d=Us(s),f=!d&&(!l||u||c),p=!u&&(!c||d||l);return{can_open:f&&(t||!p||c),can_close:p&&(t||!f||l),length:o}},nl.prototype.Token=ic;function rl(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1}}function il(e,t){let n=e.pos;for(;n<e.posMax&&!rl(e.src.charCodeAt(n));)n++;return n===e.pos?!1:(t||(e.pending+=e.src.slice(e.pos,n)),e.pos=n,!0)}var al=/(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i;function ol(e,t){if(!e.md.options.linkify||e.linkLevel>0)return!1;let n=e.pos,r=e.posMax;if(n+3>r||e.src.charCodeAt(n)!==58||e.src.charCodeAt(n+1)!==47||e.src.charCodeAt(n+2)!==47)return!1;let i=e.pending.match(al);if(!i)return!1;let a=i[1],o=e.md.linkify.matchAtStart(e.src.slice(n-a.length));if(!o)return!1;let s=o.url;if(s.length<=a.length)return!1;let c=s.length;for(;c>0&&s.charCodeAt(c-1)===42;)c--;c!==s.length&&(s=s.slice(0,c));let l=e.md.normalizeLink(s);if(!e.md.validateLink(l))return!1;if(!t){e.pending=e.pending.slice(0,-a.length);let t=e.push(`link_open`,`a`,1);t.attrs=[[`href`,l]],t.markup=`linkify`,t.info=`auto`;let n=e.push(`text`,``,0);n.content=e.md.normalizeLinkText(s);let r=e.push(`link_close`,`a`,-1);r.markup=`linkify`,r.info=`auto`}return e.pos+=s.length-a.length,!0}function sl(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==10)return!1;let r=e.pending.length-1,i=e.posMax;if(!t)if(r>=0&&e.pending.charCodeAt(r)===32)if(r>=1&&e.pending.charCodeAt(r-1)===32){let t=r-1;for(;t>=1&&e.pending.charCodeAt(t-1)===32;)t--;e.pending=e.pending.slice(0,t),e.push(`hardbreak`,`br`,0)}else e.pending=e.pending.slice(0,-1),e.push(`softbreak`,`br`,0);else e.push(`softbreak`,`br`,0);for(n++;n<i&&q(e.src.charCodeAt(n));)n++;return e.pos=n,!0}var cl=[];for(let e=0;e<256;e++)cl.push(0);`\\!"#$%&'()*+,./:;<=>?@[]^_\`{|}~-`.split(``).forEach(function(e){cl[e.charCodeAt(0)]=1});function ll(e,t){let n=e.pos,r=e.posMax;if(e.src.charCodeAt(n)!==92||(n++,n>=r))return!1;let i=e.src.charCodeAt(n);if(i===10){for(t||e.push(`hardbreak`,`br`,0),n++;n<r&&(i=e.src.charCodeAt(n),q(i));)n++;return e.pos=n,!0}if(i===32){if(!t){let t=e.push(`text_special`,``,0);t.content=`\\`,t.markup=`\\`,t.info=`escape`}return e.pos=n,!0}let a=e.src[n];if(i>=55296&&i<=56319&&n+1<r){let t=e.src.charCodeAt(n+1);t>=56320&&t<=57343&&(a+=e.src[n+1],n++)}let o=`\\`+a;if(!t){let t=e.push(`text_special`,``,0);i<256&&cl[i]!==0?t.content=a:t.content=o,t.markup=o,t.info=`escape`}return e.pos=n+1,!0}function ul(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==96)return!1;let r=n;n++;let i=e.posMax;for(;n<i&&e.src.charCodeAt(n)===96;)n++;let a=e.src.slice(r,n),o=a.length;if(e.backticksScanned&&(e.backticks[o]||0)<=r)return t||(e.pending+=a),e.pos+=o,!0;let s=n,c;for(;(c=e.src.indexOf("`",s))!==-1;){for(s=c+1;s<i&&e.src.charCodeAt(s)===96;)s++;let r=s-c;if(r===o){if(!t){let t=e.push(`code_inline`,`code`,0);t.markup=a,t.content=e.src.slice(n,c).replace(/\n/g,` `).replace(/^ (.+) $/,`$1`)}return e.pos=s,!0}e.backticks[r]=c}return e.backticksScanned=!0,t||(e.pending+=a),e.pos+=o,!0}function dl(e,t){let n=e.pos,r=e.src.charCodeAt(n);if(t||r!==126)return!1;let i=e.scanDelims(e.pos,!0),a=i.length,o=String.fromCharCode(r);if(a<2)return!1;let s;a%2&&(s=e.push(`text`,``,0),s.content=o,a--);for(let t=0;t<a;t+=2)s=e.push(`text`,``,0),s.content=o+o,e.delimiters.push({marker:r,length:0,token:e.tokens.length-1,end:-1,open:i.can_open,close:i.can_close});return e.pos+=i.length,!0}function fl(e,t){let n,r=[],i=t.length;for(let a=0;a<i;a++){let i=t[a];if(i.marker!==126||i.end===-1)continue;let o=t[i.end];n=e.tokens[i.token],n.type=`s_open`,n.tag=`s`,n.nesting=1,n.markup=`~~`,n.content=``,n=e.tokens[o.token],n.type=`s_close`,n.tag=`s`,n.nesting=-1,n.markup=`~~`,n.content=``,e.tokens[o.token-1].type===`text`&&e.tokens[o.token-1].content===`~`&&r.push(o.token-1)}for(;r.length;){let t=r.pop(),i=t+1;for(;i<e.tokens.length&&e.tokens[i].type===`s_close`;)i++;i--,t!==i&&(n=e.tokens[i],e.tokens[i]=e.tokens[t],e.tokens[t]=n)}}function pl(e){let t=e.tokens_meta,n=e.tokens_meta.length;fl(e,e.delimiters);for(let r=0;r<n;r++)t[r]&&t[r].delimiters&&fl(e,t[r].delimiters)}var ml={tokenize:dl,postProcess:pl};function hl(e,t){let n=e.pos,r=e.src.charCodeAt(n);if(t||r!==95&&r!==42)return!1;let i=e.scanDelims(e.pos,r===42);for(let t=0;t<i.length;t++){let t=e.push(`text`,``,0);t.content=String.fromCharCode(r),e.delimiters.push({marker:r,length:i.length,token:e.tokens.length-1,end:-1,open:i.can_open,close:i.can_close})}return e.pos+=i.length,!0}function gl(e,t){let n=t.length;for(let r=n-1;r>=0;r--){let n=t[r];if(n.marker!==95&&n.marker!==42||n.end===-1)continue;let i=t[n.end],a=r>0&&t[r-1].end===n.end+1&&t[r-1].marker===n.marker&&t[r-1].token===n.token-1&&t[n.end+1].token===i.token+1,o=String.fromCharCode(n.marker),s=e.tokens[n.token];s.type=a?`strong_open`:`em_open`,s.tag=a?`strong`:`em`,s.nesting=1,s.markup=a?o+o:o,s.content=``;let c=e.tokens[i.token];c.type=a?`strong_close`:`em_close`,c.tag=a?`strong`:`em`,c.nesting=-1,c.markup=a?o+o:o,c.content=``,a&&(e.tokens[t[r-1].token].content=``,e.tokens[t[n.end+1].token].content=``,r--)}}function _l(e){let t=e.tokens_meta,n=e.tokens_meta.length;gl(e,e.delimiters);for(let r=0;r<n;r++)t[r]&&t[r].delimiters&&gl(e,t[r].delimiters)}var vl={tokenize:hl,postProcess:_l};function yl(e,t){let n,r,i,a,o=``,s=``,c=e.pos,l=!0;if(e.src.charCodeAt(e.pos)!==91)return!1;let u=e.pos,d=e.posMax,f=e.pos+1,p=e.md.helpers.parseLinkLabel(e,e.pos,!0);if(p<0)return!1;let m=p+1;if(m<d&&e.src.charCodeAt(m)===40){for(l=!1,m++;m<d&&(n=e.src.charCodeAt(m),!(!q(n)&&n!==10));m++);if(m>=d)return!1;if(c=m,i=e.md.helpers.parseLinkDestination(e.src,m,e.posMax),i.ok){for(o=e.md.normalizeLink(i.str),e.md.validateLink(o)?m=i.pos:o=``,c=m;m<d&&(n=e.src.charCodeAt(m),!(!q(n)&&n!==10));m++);if(i=e.md.helpers.parseLinkTitle(e.src,m,e.posMax),m<d&&c!==m&&i.ok)for(s=i.str,m=i.pos;m<d&&(n=e.src.charCodeAt(m),!(!q(n)&&n!==10));m++);}(m>=d||e.src.charCodeAt(m)!==41)&&(l=!0),m++}if(l){if(e.env.references===void 0)return!1;if(m<d&&e.src.charCodeAt(m)===91?(c=m+1,m=e.md.helpers.parseLinkLabel(e,m),m>=0?r=e.src.slice(c,m++):m=p+1):m=p+1,r||=e.src.slice(f,p),a=e.env.references[qs(r)],!a)return e.pos=u,!1;o=a.href,s=a.title}if(!t){e.pos=f,e.posMax=p;let t=e.push(`link_open`,`a`,1),n=[[`href`,o]];t.attrs=n,s&&n.push([`title`,s]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push(`link_close`,`a`,-1)}return e.pos=m,e.posMax=d,!0}function bl(e,t){let n,r,i,a,o,s,c,l,u=``,d=e.pos,f=e.posMax;if(e.src.charCodeAt(e.pos)!==33||e.src.charCodeAt(e.pos+1)!==91)return!1;let p=e.pos+2,m=e.md.helpers.parseLinkLabel(e,e.pos+1,!1);if(m<0)return!1;if(a=m+1,a<f&&e.src.charCodeAt(a)===40){for(a++;a<f&&(n=e.src.charCodeAt(a),!(!q(n)&&n!==10));a++);if(a>=f)return!1;for(l=a,s=e.md.helpers.parseLinkDestination(e.src,a,e.posMax),s.ok&&(u=e.md.normalizeLink(s.str),e.md.validateLink(u)?a=s.pos:u=``),l=a;a<f&&(n=e.src.charCodeAt(a),!(!q(n)&&n!==10));a++);if(s=e.md.helpers.parseLinkTitle(e.src,a,e.posMax),a<f&&l!==a&&s.ok)for(c=s.str,a=s.pos;a<f&&(n=e.src.charCodeAt(a),!(!q(n)&&n!==10));a++);else c=``;if(a>=f||e.src.charCodeAt(a)!==41)return e.pos=d,!1;a++}else{if(e.env.references===void 0)return!1;if(a<f&&e.src.charCodeAt(a)===91?(l=a+1,a=e.md.helpers.parseLinkLabel(e,a),a>=0?i=e.src.slice(l,a++):a=m+1):a=m+1,i||=e.src.slice(p,m),o=e.env.references[qs(i)],!o)return e.pos=d,!1;u=o.href,c=o.title}if(!t){r=e.src.slice(p,m);let t=[];e.md.inline.parse(r,e.md,e.env,t);let n=e.push(`image`,`img`,0),i=[[`src`,u],[`alt`,``]];n.attrs=i,n.children=t,n.content=r,c&&i.push([`title`,c])}return e.pos=a,e.posMax=f,!0}var xl=/^([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,Sl=/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\x00-\x20]*)$/;function Cl(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==60)return!1;let r=e.pos,i=e.posMax;for(;;){if(++n>=i)return!1;let t=e.src.charCodeAt(n);if(t===60)return!1;if(t===62)break}let a=e.src.slice(r+1,n);if(Sl.test(a)){let n=e.md.normalizeLink(a);if(!e.md.validateLink(n))return!1;if(!t){let t=e.push(`link_open`,`a`,1);t.attrs=[[`href`,n]],t.markup=`autolink`,t.info=`auto`;let r=e.push(`text`,``,0);r.content=e.md.normalizeLinkText(a);let i=e.push(`link_close`,`a`,-1);i.markup=`autolink`,i.info=`auto`}return e.pos+=a.length+2,!0}if(xl.test(a)){let n=e.md.normalizeLink(`mailto:`+a);if(!e.md.validateLink(n))return!1;if(!t){let t=e.push(`link_open`,`a`,1);t.attrs=[[`href`,n]],t.markup=`autolink`,t.info=`auto`;let r=e.push(`text`,``,0);r.content=e.md.normalizeLinkText(a);let i=e.push(`link_close`,`a`,-1);i.markup=`autolink`,i.info=`auto`}return e.pos+=a.length+2,!0}return!1}function wl(e){return/^<a[>\s]/i.test(e)}function Tl(e){return/^<\/a\s*>/i.test(e)}function El(e){let t=e|32;return t>=97&&t<=122}function Dl(e,t){if(!e.md.options.html)return!1;let n=e.posMax,r=e.pos;if(e.src.charCodeAt(r)!==60||r+2>=n)return!1;let i=e.src.charCodeAt(r+1);if(i!==33&&i!==63&&i!==47&&!El(i))return!1;let a=e.src.slice(r).match(qc);if(!a)return!1;if(!t){let t=e.push(`html_inline`,``,0);t.content=a[0],wl(t.content)&&e.linkLevel++,Tl(t.content)&&e.linkLevel--}return e.pos+=a[0].length,!0}var Ol=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,kl=/^&([a-z][a-z0-9]{1,31});/i;function Al(e,t){let n=e.pos,r=e.posMax;if(e.src.charCodeAt(n)!==38||n+1>=r)return!1;if(e.src.charCodeAt(n+1)===35){let r=e.src.slice(n).match(Ol);if(r){if(!t){let t=r[1][0].toLowerCase()===`x`?parseInt(r[1].slice(1),16):parseInt(r[1],10),n=e.push(`text_special`,``,0);n.content=Os(t)?ks(t):ks(65533),n.markup=r[0],n.info=`entity`}return e.pos+=r[0].length,!0}}else{let r=e.src.slice(n).match(kl);if(r){let n=bs(r[0]);if(n!==r[0]){if(!t){let t=e.push(`text_special`,``,0);t.content=n,t.markup=r[0],t.info=`entity`}return e.pos+=r[0].length,!0}}}return!1}function jl(e){let t={},n=e.length;if(!n)return;let r=0,i=-2,a=[];for(let o=0;o<n;o++){let n=e[o];if(a.push(0),(e[r].marker!==n.marker||i!==n.token-1)&&(r=o),i=n.token,n.length=n.length||0,!n.close)continue;t.hasOwnProperty(n.marker)||(t[n.marker]=[-1,-1,-1,-1,-1,-1]);let s=t[n.marker][(n.open?3:0)+n.length%3],c=r-a[r]-1,l=c;for(;c>s;c-=a[c]+1){let t=e[c];if(t.marker===n.marker&&t.open&&t.end<0){let r=!1;if((t.close||n.open)&&(t.length+n.length)%3==0&&(t.length%3!=0||n.length%3!=0)&&(r=!0),!r){let r=c>0&&!e[c-1].open?a[c-1]+1:0;a[o]=o-c+r,a[c]=r,n.open=!1,t.end=o,t.close=!1,l=-1,i=-2;break}}}l!==-1&&(t[n.marker][(n.open?3:0)+(n.length||0)%3]=l)}}function Ml(e){let t=e.tokens_meta,n=e.tokens_meta.length;jl(e.delimiters);for(let e=0;e<n;e++)t[e]&&t[e].delimiters&&jl(t[e].delimiters)}function Nl(e){let t,n,r=0,i=e.tokens,a=e.tokens.length;for(t=n=0;t<a;t++)i[t].nesting<0&&r--,i[t].level=r,i[t].nesting>0&&r++,i[t].type===`text`&&t+1<a&&i[t+1].type===`text`?i[t+1].content=i[t].content+i[t+1].content:(t!==n&&(i[n]=i[t]),n++);t!==n&&(i.length=n)}var Pl=[[`text`,il],[`linkify`,ol],[`newline`,sl],[`escape`,ll],[`backticks`,ul],[`strikethrough`,ml.tokenize],[`emphasis`,vl.tokenize],[`link`,yl],[`image`,bl],[`autolink`,Cl],[`html_inline`,Dl],[`entity`,Al]],Fl=[[`balance_pairs`,Ml],[`strikethrough`,ml.postProcess],[`emphasis`,vl.postProcess],[`fragments_join`,Nl]];function Il(){this.ruler=new rc;for(let e=0;e<Pl.length;e++)this.ruler.push(Pl[e][0],Pl[e][1]);this.ruler2=new rc;for(let e=0;e<Fl.length;e++)this.ruler2.push(Fl[e][0],Fl[e][1])}Il.prototype.skipToken=function(e){let t=e.pos,n=this.ruler.getRules(``),r=n.length,i=e.md.options.maxNesting,a=e.cache;if(a[t]!==void 0){e.pos=a[t];return}let o=!1;if(e.level<i){for(let i=0;i<r;i++)if(e.level++,o=n[i](e,!0),e.level--,o){if(t>=e.pos)throw Error(`inline rule didn't increment state.pos`);break}}else e.pos=e.posMax;o||e.pos++,a[t]=e.pos},Il.prototype.tokenize=function(e){let t=this.ruler.getRules(``),n=t.length,r=e.posMax,i=e.md.options.maxNesting;for(;e.pos<r;){let a=e.pos,o=!1;if(e.level<i){for(let r=0;r<n;r++)if(o=t[r](e,!1),o){if(a>=e.pos)throw Error(`inline rule didn't increment state.pos`);break}}if(o){if(e.pos>=r)break;continue}e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},Il.prototype.parse=function(e,t,n,r){let i=new this.State(e,t,n,r);this.tokenize(i);let a=this.ruler2.getRules(``),o=a.length;for(let e=0;e<o;e++)a[e](i)},Il.prototype.State=nl;function Ll(e){let t={};e||={},t.src_Any=Jo.source,t.src_Cc=Yo.source,t.src_Z=$o.source,t.src_P=Zo.source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join(`|`),t.src_ZCc=[t.src_Z,t.src_Cc].join(`|`);let n=`[><|]`;return t.src_pseudo_letter=`(?:(?!${n}|${t.src_ZPCc})${t.src_Any})`,t.src_ip4=`(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)`,t.src_auth=`(?:(?:(?!${t.src_ZCc}|[@/\\[\\]()]).){1,50}@)?`,t.src_port=`(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?`,t.src_host_terminator=`(?=$|${n}|${t.src_ZPCc})(?!${e[`---`]?`-(?!--)|`:`-|`}_|:\\d|\\.-|\\.(?!$|${t.src_ZPCc}))`,t.src_path=`(?:[/?#](?:(?!${t.src_ZCc}|${n}|[()[\\]{}.,"'?!\\-;]).|\\[(?:(?!${t.src_ZCc}|\\]).)*\\]|\\((?:(?!${t.src_ZCc}|[)]).)*\\)|\\{(?:(?!${t.src_ZCc}|[}]).)*\\}|\\"(?:(?!${t.src_ZCc}|["]).)+\\"|\\'(?:(?!${t.src_ZCc}|[']).)+\\'|\\'(?=${t.src_pseudo_letter}|[-])|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!${t.src_ZCc}|[.]|$)|`+(e[`---`]?`\\-(?!--(?:[^-]|$))(?:-*)|`:`\\-+|`)+`,(?!${t.src_ZCc}|$)|;(?!${t.src_ZCc}|$)|\\!+(?!${t.src_ZCc}|[!]|$)|\\?(?!${t.src_ZCc}|[?]|$))+|\\/)?`,t.src_email_name=`[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]{0,63}`,t.src_xn=`xn--[a-z0-9\\-]{1,59}`,t.src_domain_root=`(?:`+t.src_xn+`|${t.src_pseudo_letter}{1,63})`,t.src_domain=`(?:`+t.src_xn+`|(?:${t.src_pseudo_letter})|(?:${t.src_pseudo_letter}(?:-|${t.src_pseudo_letter}){0,61}${t.src_pseudo_letter}))`,t.src_host=`(?:(?:(?:(?:${t.src_domain})\\.)*${t.src_domain}))`,t.tpl_host_fuzzy=`(?:`+t.src_ip4+`|(?:(?:(?:${t.src_domain})\\.)+(?:%TLDS%)))`,t.tpl_host_no_ip_fuzzy=`(?:(?:(?:${t.src_domain})\\.)+(?:%TLDS%))`,t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test=`localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:${t.src_ZPCc}|>|$))`,t.tpl_email_fuzzy=`(^|${n}|"|\\(|${t.src_ZCc})(${t.src_email_name}@${t.tpl_host_fuzzy_strict})`,t.tpl_link_fuzzy=`(^|(?![.:/\\-_@])(?:[$+<=>^\`|\uff5c]|${t.src_ZPCc}))((?![$+<=>^\`|\uff5c])${t.tpl_host_port_fuzzy_strict}${t.src_path})`,t.tpl_link_no_ip_fuzzy=`(^|(?![.:/\\-_@])(?:[$+<=>^\`|\uff5c]|${t.src_ZPCc}))((?![$+<=>^\`|\uff5c])${t.tpl_host_port_no_ip_fuzzy_strict}${t.src_path})`,t}function Rl(e){return Array.prototype.slice.call(arguments,1).forEach(function(t){t&&Object.keys(t).forEach(function(n){e[n]=t[n]})}),e}function J(e){return Object.prototype.toString.call(e)}function Y(e){return J(e)===`[object String]`}function zl(e){return J(e)===`[object Object]`}function Bl(e){return J(e)===`[object RegExp]`}function Vl(e){return J(e)===`[object Function]`}function Hl(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,`\\$&`)}var Ul={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};function Wl(e){return Object.keys(e||{}).reduce(function(e,t){return e||Ul.hasOwnProperty(t)},!1)}var Gl={"http:":{validate:function(e,t,n){let r=e.slice(t);return n.re.http||(n.re.http=RegExp(`^\\/\\/${n.re.src_auth}${n.re.src_host_port_strict}${n.re.src_path}`,`i`)),n.re.http.test(r)?r.match(n.re.http)[0].length:0}},"https:":`http:`,"ftp:":`http:`,"//":{validate:function(e,t,n){let r=e.slice(t);return n.re.no_http||(n.re.no_http=RegExp(`^`+n.re.src_auth+`(?:localhost|(?:(?:${n.re.src_domain})\\.)+${n.re.src_domain_root})`+n.re.src_port+n.re.src_host_terminator+n.re.src_path,`i`)),n.re.no_http.test(r)?t>=3&&e[t-3]===`:`||t>=3&&e[t-3]===`/`?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){let r=e.slice(t);return n.re.mailto||(n.re.mailto=RegExp(`^${n.re.src_email_name}@${n.re.src_host_strict}`,`i`)),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},Kl=`a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]`,ql=`biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф`.split(`|`);function Jl(e){return function(t,n){let r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}function Yl(){return function(e,t){t.normalize(e)}}function Xl(e){let t=e.re=Ll(e.__opts__),n=e.__tlds__.slice();e.onCompile(),e.__tlds_replaced__||n.push(Kl),n.push(t.src_xn),t.src_tlds=n.join(`|`);function r(e){return e.replace(`%TLDS%`,t.src_tlds)}t.email_fuzzy=RegExp(r(t.tpl_email_fuzzy),`i`),t.email_fuzzy_global=RegExp(r(t.tpl_email_fuzzy),`ig`),t.link_fuzzy=RegExp(r(t.tpl_link_fuzzy),`i`),t.link_fuzzy_global=RegExp(r(t.tpl_link_fuzzy),`ig`),t.link_no_ip_fuzzy=RegExp(r(t.tpl_link_no_ip_fuzzy),`i`),t.link_no_ip_fuzzy_global=RegExp(r(t.tpl_link_no_ip_fuzzy),`ig`),t.host_fuzzy_test=RegExp(r(t.tpl_host_fuzzy_test),`i`);let i=[];e.__compiled__={};function a(e,t){throw Error(`(LinkifyIt) Invalid schema "${e}": ${t}`)}Object.keys(e.__schemas__).forEach(function(t){let n=e.__schemas__[t];if(n===null)return;let r={validate:null,link:null};if(e.__compiled__[t]=r,zl(n)){Bl(n.validate)?r.validate=Jl(n.validate):Vl(n.validate)?r.validate=n.validate:a(t,n),Vl(n.normalize)?r.normalize=n.normalize:n.normalize?a(t,n):r.normalize=Yl();return}if(Y(n)){i.push(t);return}a(t,n)}),i.forEach(function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)}),e.__compiled__[``]={validate:null,normalize:Yl()};let o=Object.keys(e.__compiled__).filter(function(t){return t.length>0&&e.__compiled__[t]}).map(Hl).join(`|`);e.re.schema_test=RegExp(`(^|(?!_)(?:[><\uff5c]|${t.src_ZPCc}))(${o})`,`i`),e.re.schema_search=RegExp(`(^|(?!_)(?:[><\uff5c]|${t.src_ZPCc}))(${o})`,`ig`),e.re.schema_at_start=RegExp(`^${e.re.schema_search.source}`,`i`),e.re.pretest=RegExp(`(${e.re.schema_test.source})|(${e.re.host_fuzzy_test.source})|@`,`i`)}function Zl(e,t,n,r){let i=e.slice(n,r);this.schema=t.toLowerCase(),this.index=n,this.lastIndex=r,this.raw=i,this.text=i,this.url=i}function Ql(e,t){if(!(this instanceof Ql))return new Ql(e,t);t||Wl(e)&&(t=e,e={}),this.__opts__=Rl({},Ul,t),this.__schemas__=Rl({},Gl,e),this.__compiled__={},this.__tlds__=ql,this.__tlds_replaced__=!1,this.re={},Xl(this)}Ql.prototype.add=function(e,t){return this.__schemas__[e]=t,Xl(this),this},Ql.prototype.set=function(e){return this.__opts__=Rl(this.__opts__,e),this},Ql.prototype.test=function(e){if(!e.length)return!1;let t,n;if(this.re.schema_test.test(e)){for(n=this.re.schema_search,n.lastIndex=0;(t=n.exec(e))!==null;)if(this.testSchemaAt(e,t[2],n.lastIndex))return!0}return!!(this.__opts__.fuzzyLink&&this.__compiled__[`http:`]&&e.search(this.re.host_fuzzy_test)>=0&&e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy)!==null||this.__opts__.fuzzyEmail&&this.__compiled__[`mailto:`]&&e.indexOf(`@`)>=0&&e.match(this.re.email_fuzzy)!==null)},Ql.prototype.pretest=function(e){return this.re.pretest.test(e)},Ql.prototype.testSchemaAt=function(e,t,n){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,n,this):0},Ql.prototype.match=function(e){let t=[],n=[],r=[],i=[],a,o,s;function c(e,t){return e?t?e.index===t.index?e.lastIndex>=t.lastIndex?e:t:e.index<t.index?e:t:e:t}if(!e.length)return null;if(this.re.schema_test.test(e))for(s=this.re.schema_search,s.lastIndex=0;(a=s.exec(e))!==null;)o=this.testSchemaAt(e,a[2],s.lastIndex),o&&n.push({schema:a[2],index:a.index+a[1].length,lastIndex:a.index+a[0].length+o});if(this.__opts__.fuzzyLink&&this.__compiled__[`http:`])for(s=this.__opts__.fuzzyIP?this.re.link_fuzzy_global:this.re.link_no_ip_fuzzy_global,s.lastIndex=0;(a=s.exec(e))!==null;)r.push({schema:``,index:a.index+a[1].length,lastIndex:a.index+a[0].length});if(this.__opts__.fuzzyEmail&&this.__compiled__[`mailto:`])for(s=this.re.email_fuzzy_global,s.lastIndex=0;(a=s.exec(e))!==null;)i.push({schema:`mailto:`,index:a.index+a[1].length,lastIndex:a.index+a[0].length});let l=[0,0,0],u=0;for(;;){let a=[n[l[0]],i[l[1]],r[l[2]]],o=c(c(a[0],a[1]),a[2]);if(!o)break;if(o===a[0]?l[0]++:o===a[1]?l[1]++:l[2]++,o.index<u)continue;let s=new Zl(e,o.schema,o.index,o.lastIndex);this.__compiled__[s.schema].normalize(s,this),t.push(s),u=o.lastIndex}return t.length?t:null},Ql.prototype.matchAtStart=function(e){if(!e.length)return null;let t=this.re.schema_at_start.exec(e);if(!t)return null;let n=this.testSchemaAt(e,t[2],t[0].length);if(!n)return null;let r=new Zl(e,t[2],t.index+t[1].length,t.index+t[0].length+n);return this.__compiled__[r.schema].normalize(r,this),r},Ql.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter(function(e,t,n){return e!==n[t-1]}).reverse(),Xl(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,Xl(this),this)},Ql.prototype.normalize=function(e){e.schema||(e.url=`http://${e.url}`),e.schema===`mailto:`&&!/^mailto:/i.test(e.url)&&(e.url=`mailto:${e.url}`)},Ql.prototype.onCompile=function(){};var $l=2147483647,eu=36,tu=1,nu=26,ru=38,iu=700,au=72,ou=128,su=`-`,cu=/^xn--/,lu=/[^\0-\x7F]/,uu=/[\x2E\u3002\uFF0E\uFF61]/g,du={overflow:`Overflow: input needs wider integers to process`,"not-basic":`Illegal input >= 0x80 (not a basic code point)`,"invalid-input":`Invalid input`},fu=eu-tu,pu=Math.floor,mu=String.fromCharCode;function hu(e){throw RangeError(du[e])}function gu(e,t){let n=[],r=e.length;for(;r--;)n[r]=t(e[r]);return n}function _u(e,t){let n=e.split(`@`),r=``;n.length>1&&(r=n[0]+`@`,e=n[1]),e=e.replace(uu,`.`);let i=gu(e.split(`.`),t).join(`.`);return r+i}function vu(e){let t=[],n=0,r=e.length;for(;n<r;){let i=e.charCodeAt(n++);if(i>=55296&&i<=56319&&n<r){let r=e.charCodeAt(n++);(r&64512)==56320?t.push(((i&1023)<<10)+(r&1023)+65536):(t.push(i),n--)}else t.push(i)}return t}var yu=e=>String.fromCodePoint(...e),bu=function(e){return e>=48&&e<58?26+(e-48):e>=65&&e<91?e-65:e>=97&&e<123?e-97:eu},xu=function(e,t){return e+22+75*(e<26)-((t!=0)<<5)},Su=function(e,t,n){let r=0;for(e=n?pu(e/iu):e>>1,e+=pu(e/t);e>455;r+=eu)e=pu(e/fu);return pu(r+36*e/(e+ru))},Cu=function(e){let t=[],n=e.length,r=0,i=ou,a=au,o=e.lastIndexOf(su);o<0&&(o=0);for(let n=0;n<o;++n)e.charCodeAt(n)>=128&&hu(`not-basic`),t.push(e.charCodeAt(n));for(let s=o>0?o+1:0;s<n;){let o=r;for(let t=1,i=eu;;i+=eu){s>=n&&hu(`invalid-input`);let o=bu(e.charCodeAt(s++));o>=eu&&hu(`invalid-input`),o>pu(($l-r)/t)&&hu(`overflow`),r+=o*t;let c=i<=a?tu:i>=a+nu?nu:i-a;if(o<c)break;let l=eu-c;t>pu($l/l)&&hu(`overflow`),t*=l}let c=t.length+1;a=Su(r-o,c,o==0),pu(r/c)>$l-i&&hu(`overflow`),i+=pu(r/c),r%=c,t.splice(r++,0,i)}return String.fromCodePoint(...t)},wu=function(e){let t=[];e=vu(e);let n=e.length,r=ou,i=0,a=au;for(let n of e)n<128&&t.push(mu(n));let o=t.length,s=o;for(o&&t.push(su);s<n;){let n=$l;for(let t of e)t>=r&&t<n&&(n=t);let c=s+1;n-r>pu(($l-i)/c)&&hu(`overflow`),i+=(n-r)*c,r=n;for(let n of e)if(n<r&&++i>$l&&hu(`overflow`),n===r){let e=i;for(let n=eu;;n+=eu){let r=n<=a?tu:n>=a+nu?nu:n-a;if(e<r)break;let i=e-r,o=eu-r;t.push(mu(xu(r+i%o,0))),e=pu(i/o)}t.push(mu(xu(e,0))),a=Su(i,c,s===o),i=0,++s}++i,++r}return t.join(``)},Tu={version:`2.3.1`,ucs2:{decode:vu,encode:yu},decode:Cu,encode:wu,toASCII:function(e){return _u(e,function(e){return lu.test(e)?`xn--`+wu(e):e})},toUnicode:function(e){return _u(e,function(e){return cu.test(e)?Cu(e.slice(4).toLowerCase()):e})}},Eu={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:`language-`,linkify:!1,typographer:!1,quotes:`“”‘’`,highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}},zero:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:`language-`,linkify:!1,typographer:!1,quotes:`“”‘’`,highlight:null,maxNesting:20},components:{core:{rules:[`normalize`,`block`,`inline`,`text_join`]},block:{rules:[`paragraph`]},inline:{rules:[`text`],rules2:[`balance_pairs`,`fragments_join`]}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:`language-`,linkify:!1,typographer:!1,quotes:`“”‘’`,highlight:null,maxNesting:20},components:{core:{rules:[`normalize`,`block`,`inline`,`text_join`]},block:{rules:[`blockquote`,`code`,`fence`,`heading`,`hr`,`html_block`,`lheading`,`list`,`reference`,`paragraph`]},inline:{rules:[`autolink`,`backticks`,`emphasis`,`entity`,`escape`,`html_inline`,`image`,`link`,`newline`,`text`],rules2:[`balance_pairs`,`emphasis`,`fragments_join`]}}}},Du=/^(vbscript|javascript|file|data):/,Ou=/^data:image\/(gif|png|jpeg|webp);/;function ku(e){let t=e.trim().toLowerCase();return Du.test(t)?Ou.test(t):!0}var Au=[`http:`,`https:`,`mailto:`];function ju(e){let t=Ko(e,!0);if(t.hostname&&(!t.protocol||Au.indexOf(t.protocol)>=0))try{t.hostname=Tu.toASCII(t.hostname)}catch{}return No(Po(t))}function Mu(e){let t=Ko(e,!0);if(t.hostname&&(!t.protocol||Au.indexOf(t.protocol)>=0))try{t.hostname=Tu.toUnicode(t.hostname)}catch{}return Ao(Po(t),Ao.defaultChars+`%`)}function Nu(e,t){if(!(this instanceof Nu))return new Nu(e,t);t||Cs(e)||(t=e||{},e=`default`),this.inline=new Il,this.block=new tl,this.core=new jc,this.renderer=new nc,this.linkify=new Ql,this.validateLink=ku,this.normalizeLink=ju,this.normalizeLinkText=Mu,this.utils=xs,this.helpers=Es({},ec),this.options={},this.configure(e),t&&this.set(t)}Nu.prototype.set=function(e){return Es(this.options,e),this},Nu.prototype.configure=function(e){let t=this;if(Cs(e)){let t=e;if(e=Eu[t],!e)throw Error('Wrong `markdown-it` preset "'+t+`", check name`)}if(!e)throw Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(n){e.components[n].rules&&t[n].ruler.enableOnly(e.components[n].rules),e.components[n].rules2&&t[n].ruler2.enableOnly(e.components[n].rules2)}),this},Nu.prototype.enable=function(e,t){let n=[];Array.isArray(e)||(e=[e]),[`core`,`block`,`inline`].forEach(function(t){n=n.concat(this[t].ruler.enable(e,!0))},this),n=n.concat(this.inline.ruler2.enable(e,!0));let r=e.filter(function(e){return n.indexOf(e)<0});if(r.length&&!t)throw Error(`MarkdownIt. Failed to enable unknown rule(s): `+r);return this},Nu.prototype.disable=function(e,t){let n=[];Array.isArray(e)||(e=[e]),[`core`,`block`,`inline`].forEach(function(t){n=n.concat(this[t].ruler.disable(e,!0))},this),n=n.concat(this.inline.ruler2.disable(e,!0));let r=e.filter(function(e){return n.indexOf(e)<0});if(r.length&&!t)throw Error(`MarkdownIt. Failed to disable unknown rule(s): `+r);return this},Nu.prototype.use=function(e){let t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},Nu.prototype.parse=function(e,t){if(typeof e!=`string`)throw Error(`Input data should be a String`);let n=new this.core.State(e,this,t);return this.core.process(n),n.tokens},Nu.prototype.render=function(e,t){return t||={},this.renderer.render(this.parse(e,t),this.options,t)},Nu.prototype.parseInline=function(e,t){let n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens},Nu.prototype.renderInline=function(e,t){return t||={},this.renderer.render(this.parseInline(e,t),this.options,t)};var Pu=n((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),Fu=n(((e,t)=>{t.exports=Pu()})),X=Fu(),Iu=new Nu({html:!1,linkify:!0,breaks:!1});function Lu(e){let t=/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/.exec(e);return t?{frontmatter:(t[1]??``).trim(),body:e.slice(t[0].length)}:{frontmatter:null,body:e}}function Ru({command:e}){let[t,n]=(0,G.useState)(!1);return(0,G.useEffect)(()=>{if(!t)return;let e=setTimeout(()=>n(!1),1600);return()=>clearTimeout(e)},[t]),(0,X.jsxs)(`div`,{className:`preview-command`,"data-testid":`preview-command`,children:[(0,X.jsx)(`code`,{"data-testid":`preview-command-text`,children:e}),(0,X.jsx)(`button`,{"data-testid":`preview-command-copy`,onClick:()=>{navigator.clipboard?.writeText(e).catch(()=>void 0),n(!0)},type:`button`,children:t?`copied`:`copy`})]})}function zu({preview:e,onBack:t}){let n=(0,G.useMemo)(()=>e.documents.map(e=>{if(e.content===null)return{path:e.path,html:null,frontmatter:null};let{frontmatter:t,body:n}=Lu(e.content);return{path:e.path,html:Iu.render(n),frontmatter:t}}),[e.documents]);return(0,X.jsxs)(`div`,{className:`preview`,"data-testid":`change-preview`,children:[(0,X.jsxs)(`header`,{className:`preview-head`,children:[(0,X.jsx)(`button`,{className:`preview-back`,"data-testid":`preview-back`,onClick:t,type:`button`,children:`← changes`}),(0,X.jsx)(`h1`,{className:`preview-title`,"data-testid":`preview-title`,children:e.title}),(0,X.jsx)(`span`,{className:`preview-id`,children:e.id})]}),(0,X.jsxs)(`section`,{className:`preview-handoff`,children:[(0,X.jsx)(`p`,{className:`preview-handoff-note`,children:`Open it for editing in SpecSketch:`}),(0,X.jsx)(Ru,{command:e.command})]}),n.map(e=>(0,X.jsxs)(`section`,{className:`preview-doc`,"data-testid":`preview-doc-${e.path}`,children:[(0,X.jsxs)(`h2`,{className:`preview-doc-path`,children:[(0,X.jsx)(`span`,{className:`preview-doc-name`,"data-testid":`preview-name-${e.path}`,children:e.path}),e.frontmatter===null||e.frontmatter===``?null:(0,X.jsx)(`span`,{className:`preview-doc-meta`,"data-testid":`preview-meta-${e.path}`,children:e.frontmatter.replace(/\s*\n\s*/g,` · `)})]}),e.html===null?(0,X.jsxs)(`p`,{className:`preview-doc-absent`,"data-testid":`preview-absent-${e.path}`,children:[`This change carries no `,(0,X.jsx)(`code`,{children:e.path}),`.`]}):(0,X.jsx)(`div`,{className:`preview-doc-body markdown`,dangerouslySetInnerHTML:{__html:e.html}})]},e.path))]})}var Bu=1.5,Vu=`round`,Hu=`round`,Uu={trash:{shapes:[{kind:`path`,d:`M2.75 4.75 H13.25`},{kind:`path`,d:`M5.75 4.75 V3.75 Q5.75 2.75 6.75 2.75 H9.25 Q10.25 2.75 10.25 3.75 V4.75`},{kind:`path`,d:`M4.25 7.25 L4.65 12.25 Q4.75 13.25 5.75 13.25 H10.25 Q11.25 13.25 11.35 12.25 L11.75 7.25`},{kind:`path`,d:`M6.75 9 V11.5`},{kind:`path`,d:`M9.25 9 V11.5`}]},"chevron-up":{shapes:[{kind:`path`,d:`M3.75 10.25 L8 5.75 L12.25 10.25`}]},"chevron-down":{shapes:[{kind:`path`,d:`M3.75 5.75 L8 10.25 L12.25 5.75`}]},"chevron-left":{shapes:[{kind:`path`,d:`M10.25 3.75 L5.75 8 L10.25 12.25`}]},"chevron-right":{shapes:[{kind:`path`,d:`M5.75 3.75 L10.25 8 L5.75 12.25`}]},plus:{shapes:[{kind:`path`,d:`M8 2.75 V13.25 M2.75 8 H13.25`}]},x:{shapes:[{kind:`path`,d:`M3.75 3.75 L12.25 12.25 M12.25 3.75 L3.75 12.25`}]},check:{shapes:[{kind:`path`,d:`M2.75 8.75 L6.5 12.25 L13.25 4.75`}]},search:{shapes:[{kind:`circle`,cx:6.75,cy:6.75,r:4},{kind:`path`,d:`M9.58 9.58 L12.25 12.25`}]},cursor:{shapes:[{kind:`path`,d:`M3.75 3.75 L7.7 13.25 L9.1 9.1 L13.25 7.7 Z`}]},square:{shapes:[{kind:`rect`,x:2.75,y:2.75,width:10.5,height:10.5,rx:1}]},circle:{shapes:[{kind:`circle`,cx:8,cy:8,r:5.25}]},arrow:{shapes:[{kind:`path`,d:`M3.75 12.25 L12.25 3.75`},{kind:`path`,d:`M6.75 3.75 H12.25 V9.25`}]},pencil:{shapes:[{kind:`path`,d:`M11.25 2.75 L13.25 4.75 L5.25 12.75 L2.75 13.25 L3.25 10.75 Z`}]},text:{shapes:[{kind:`path`,d:`M4.75 3.75 H11.25 M8 3.75 V12.25`}]}};Object.keys(Uu);function Wu(e,t){switch(e.kind){case`path`:return(0,X.jsx)(`path`,{d:e.d},t);case`circle`:return(0,X.jsx)(`circle`,{cx:e.cx,cy:e.cy,r:e.r},t);case`rect`:return(0,X.jsx)(`rect`,{x:e.x,y:e.y,width:e.width,height:e.height,rx:e.rx},t)}}function Gu({name:e,...t}){return(0,X.jsx)(`svg`,{className:`icon`,viewBox:`0 0 16 16`,width:`1em`,height:`1em`,fill:`none`,stroke:`currentColor`,strokeWidth:Bu,strokeLinecap:Vu,strokeLinejoin:Hu,"aria-hidden":`true`,"data-icon":e,...t,children:Uu[e].shapes.map(Wu)})}var Ku=[{key:`proposal`,label:`proposal`,glyph:`¶`},{key:`design`,label:`design`,glyph:`◈`},{key:`deltas`,label:`deltas`,glyph:`▤`},{key:`tasks`,label:`tasks`,glyph:`☑`}];function qu({card:e}){return(0,X.jsx)(`ul`,{"aria-label":`artifacts`,className:`gallery-indicators`,"data-testid":`indicators-${e.id}`,children:Ku.map(({key:t,label:n,glyph:r})=>{let i=e[t];return(0,X.jsxs)(`li`,{"aria-label":`${n}: ${i}`,className:`gallery-indicator gallery-indicator--${i}`,"data-state":i,"data-testid":`indicator-${t}-${e.id}`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,children:r}),(0,X.jsx)(`span`,{className:`gallery-indicator-label`,children:n})]},t)})})}function Ju({card:e}){if(e.empty)return null;if(e.tasksTotal===0)return(0,X.jsxs)(`p`,{className:`gallery-progress gallery-progress--warning`,"data-testid":`progress-${e.id}`,"data-state":`no-tasks`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,children:`⚠`}),` no tasks planned`]});if(e.tasksOpen===0)return(0,X.jsxs)(`p`,{className:`gallery-progress gallery-progress--done`,"data-testid":`progress-${e.id}`,"data-state":`done`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,children:`✓`}),` all `,e.tasksTotal,` tasks done`]});let t=Math.round(e.tasksDone/e.tasksTotal*100);return(0,X.jsxs)(`p`,{className:`gallery-progress`,"data-testid":`progress-${e.id}`,"data-state":`in-progress`,children:[(0,X.jsx)(`span`,{className:`gallery-bar`,role:`img`,"aria-label":`${e.tasksDone} of ${e.tasksTotal} tasks done`,children:(0,X.jsx)(`span`,{className:`gallery-bar-fill`,style:{width:`${t}%`}})}),(0,X.jsxs)(`span`,{className:`gallery-progress-text`,children:[e.tasksOpen,` of `,e.tasksTotal,` open`]})]})}function Yu({card:e}){return e.empty?(0,X.jsxs)(`p`,{className:`gallery-empty-flag`,"data-testid":`empty-${e.id}`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,children:`⚠`}),` empty — nothing written yet`]}):null}function Xu({card:e,onOpen:t,onAddToRoadmap:n,onDelete:r,onReorder:i,position:a}){let[o,s]=(0,G.useState)(!1),[c,l]=(0,G.useState)(!1);return(0,X.jsxs)(`li`,{className:`gallery-card${e.empty?` gallery-card--empty`:``}${c?` gallery-card--dropping`:``}`,"data-testid":`card-${e.id}`,draggable:n!==void 0||i!==void 0,onDragStart:t=>t.dataTransfer.setData(`text/plain`,e.id),onDragLeave:()=>l(!1),onDragOver:i===void 0?void 0:e=>{e.preventDefault(),e.stopPropagation(),l(!0)},onDrop:i===void 0?void 0:t=>{t.preventDefault(),t.stopPropagation(),l(!1);let n=t.dataTransfer.getData(`text/plain`);n!==``&&n!==e.id&&i(n,e.id)},children:[(0,X.jsxs)(`button`,{className:`gallery-card-open`,onClick:()=>t(e.id),type:`button`,children:[(0,X.jsx)(`span`,{className:`gallery-card-title`,"data-testid":`card-title-${e.id}`,children:e.title}),(0,X.jsx)(`span`,{className:`gallery-card-id`,children:e.id})]}),e.snippet===``?null:(0,X.jsx)(`p`,{className:`gallery-card-snippet`,"data-testid":`card-snippet-${e.id}`,children:e.snippet}),(0,X.jsx)(qu,{card:e}),(0,X.jsx)(Yu,{card:e}),(0,X.jsx)(Ju,{card:e}),n?(0,X.jsx)(`button`,{className:`gallery-promote`,"data-testid":`promote-${e.id}`,onClick:()=>n(e.id),type:`button`,children:`put on roadmap`}):null,i&&a&&a.ids.length>1?(0,X.jsxs)(`span`,{className:`gallery-move`,"data-testid":`move-${e.id}`,children:[(0,X.jsx)(`button`,{"aria-label":`move ${e.id} up`,"data-testid":`move-up-${e.id}`,disabled:a.index===0,onClick:()=>{let t=a.ids[a.index-1];t!==void 0&&i(e.id,t)},type:`button`,children:(0,X.jsx)(Gu,{name:`chevron-up`})}),(0,X.jsx)(`button`,{"aria-label":`move ${e.id} down`,"data-testid":`move-down-${e.id}`,disabled:a.index===a.ids.length-1,onClick:()=>{let t=a.ids[a.index+2]??null;i(e.id,t)},type:`button`,children:(0,X.jsx)(Gu,{name:`chevron-down`})})]}):null,r?o?(0,X.jsxs)(`div`,{className:`gallery-confirm`,"data-testid":`confirm-${e.id}`,role:`alertdialog`,children:[(0,X.jsxs)(`p`,{className:`gallery-confirm-text`,children:[`Delete `,(0,X.jsx)(`strong`,{children:e.id}),e.empty?` — it carries nothing.`:` — ${Zu(e)}. This cannot be undone outside git.`]}),(0,X.jsx)(`button`,{className:`gallery-confirm-yes`,"data-testid":`confirm-delete-${e.id}`,onClick:()=>{s(!1),r(e.id)},type:`button`,children:`delete it`}),(0,X.jsx)(`button`,{"data-testid":`confirm-cancel-${e.id}`,onClick:()=>s(!1),type:`button`,children:`keep it`})]}):(0,X.jsx)(`button`,{className:`gallery-delete`,"data-testid":`delete-${e.id}`,"aria-label":`delete ${e.id}`,onClick:()=>s(!0),type:`button`,children:(0,X.jsx)(Gu,{name:`trash`})}):null]})}function Zu(e){let t=[];return e.proposal!==`absent`&&t.push(`a proposal`),e.design!==`absent`&&t.push(`a design`),e.capabilities.length>0&&t.push(`${e.capabilities.length} delta spec${e.capabilities.length===1?``:`s`}`),e.tasksTotal>0&&t.push(`${e.tasksTotal} tasks`),t.length===0?`it carries nothing`:t.length===1?`it carries ${t[0]}`:`it carries ${t.slice(0,-1).join(`, `)} and ${t[t.length-1]}`}function Qu(e,t){let n=t.trim().toLowerCase();return n===``||e.id.toLowerCase().includes(n)||e.title.toLowerCase().includes(n)?!0:e.capabilities.some(e=>e.toLowerCase().includes(n))}function $u(e,t){let n=[...t].sort((e,t)=>e.rank-t.rank),r=[],i=0,a=0;for(;i<e.length||a<n.length;){let t=n[a];t!==void 0&&(t.rank<=r.length||i>=e.length)?(r.push({kind:`missing`,id:t.id}),a+=1):(r.push({kind:`card`,card:e[i]}),i+=1)}return r}function ed({id:e}){return(0,X.jsxs)(`li`,{className:`gallery-missing-row`,"data-testid":`missing-${e}`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,className:`gallery-missing-mark`,children:`⚠`}),(0,X.jsx)(`span`,{className:`gallery-missing-id`,children:e}),(0,X.jsxs)(`span`,{className:`gallery-missing-note`,children:[`missing — named on the roadmap, in neither `,(0,X.jsx)(`code`,{children:`changes/`}),` nor the archive`]})]})}function td(e){let[t,n]=(0,G.useState)(``),[r,i]=(0,G.useState)(!1),a=(0,G.useMemo)(()=>$u(e.roadmap,e.missing??[]).filter(e=>e.kind===`card`?Qu(e.card,t):t.trim()===``||e.id.toLowerCase().includes(t.trim().toLowerCase())),[e.roadmap,e.missing,t]),o=(0,G.useMemo)(()=>a.flatMap(e=>e.kind===`card`?[e.card]:[]),[a]),s=(0,G.useMemo)(()=>e.backlog.filter(e=>Qu(e,t)),[e.backlog,t]),c=e.roadmap.length+e.backlog.length,l=a.length+s.length;return c===0?(0,X.jsxs)(`div`,{className:`gallery`,"data-testid":`gallery`,children:[(0,X.jsx)(`p`,{className:`gallery-empty`,"data-testid":`gallery-empty`,children:`No changes yet. Start one to see it here.`}),e.onStartChange?(0,X.jsx)(`button`,{className:`gallery-start`,"data-testid":`gallery-start`,onClick:e.onStartChange,type:`button`,children:`start a change`}):null]}):(0,X.jsxs)(`div`,{className:`gallery`,"data-testid":`gallery`,children:[(0,X.jsxs)(`header`,{className:`gallery-head`,children:[(0,X.jsx)(`h1`,{className:`gallery-title`,children:`Changes`}),(0,X.jsx)(`input`,{"aria-label":`filter changes`,className:`gallery-search`,"data-testid":`gallery-search`,onChange:e=>n(e.target.value),placeholder:`filter ${c} change${c===1?``:`s`}`,value:t})]}),l===0?(0,X.jsxs)(`p`,{className:`gallery-empty`,"data-testid":`gallery-no-match`,children:[`Nothing matches “`,t.trim(),`”.`]}):null,(e.archived??[]).length>0?(0,X.jsxs)(`p`,{className:`gallery-archived`,"data-testid":`gallery-archived`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,children:`✓`}),` `,(e.archived??[]).length,` roadmap row`,(e.archived??[]).length===1?``:`s`,` archived:`,` `,(e.archived??[]).join(`, `)]}):null,(e.missing??[]).length>0?(0,X.jsxs)(`p`,{className:`gallery-stale`,"data-testid":`gallery-missing`,role:`alert`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,children:`⚠`}),` `,(e.missing??[]).length,` roadmap row`,(e.missing??[]).length===1?``:`s`,` missing — named on the roadmap, in neither `,(0,X.jsx)(`code`,{children:`changes/`}),` nor the archive:`,` `,(e.missing??[]).map(e=>e.id).join(`, `)]}):null,(0,X.jsxs)(`section`,{className:`gallery-section${r?` gallery-section--dropping`:``}`,"data-testid":`gallery-roadmap`,onDragLeave:()=>i(!1),onDragOver:e=>{e.preventDefault(),i(!0)},onDrop:t=>{t.preventDefault(),i(!1);let n=t.dataTransfer.getData(`text/plain`);n!==``&&e.onAddToRoadmap?.(n)},children:[(0,X.jsx)(`h2`,{className:`gallery-section-title`,children:`Roadmap`}),a.length===0?(0,X.jsxs)(`div`,{className:`gallery-ghost`,"data-testid":`gallery-roadmap-ghost`,children:[(0,X.jsx)(`p`,{className:`gallery-ghost-note`,children:`Nothing is on the roadmap. Drag a change here to schedule it, or`}),(0,X.jsx)(`button`,{"data-testid":`gallery-ghost-start`,onClick:e.onStartChange,type:`button`,children:`start a new change`})]}):(0,X.jsx)(`ul`,{className:`gallery-cards`,children:a.map(t=>t.kind===`missing`?(0,X.jsx)(ed,{id:t.id},`missing-${t.id}`):(0,X.jsx)(Xu,{card:t.card,onDelete:e.onDelete,onOpen:e.onOpen,onReorder:e.onReorder,position:{index:o.indexOf(t.card),ids:o.map(e=>e.id)}},t.card.id))})]}),s.length>0?(0,X.jsxs)(`section`,{className:`gallery-section`,"data-testid":`gallery-backlog`,children:[(0,X.jsx)(`h2`,{className:`gallery-section-title`,children:`Backlog`}),(0,X.jsx)(`p`,{className:`gallery-section-note`,children:`Not on the roadmap — no order is claimed.`}),(0,X.jsx)(`ul`,{className:`gallery-cards`,children:s.map(t=>(0,X.jsx)(Xu,{card:t,onAddToRoadmap:e.onAddToRoadmap,onDelete:e.onDelete,onOpen:e.onOpen},t.id))})]}):null]})}function nd(e){if(typeof e==`string`||typeof e==`number`)return``+e;let t=``;if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=nd(e[n]))!==``&&(t+=(t&&` `)+r);else for(let n in e)e[n]&&(t+=(t&&` `)+n);return t}var rd={value:()=>{}};function id(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+``)||r in n||/[\s.]/.test(r))throw Error(`illegal type: `+r);n[r]=[]}return new ad(n)}function ad(e){this._=e}function od(e,t){return e.trim().split(/^|\s+/).map(function(e){var n=``,r=e.indexOf(`.`);if(r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}ad.prototype=id.prototype={constructor:ad,on:function(e,t){var n=this._,r=od(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=sd(n[i],e.name)))return i;return}if(t!=null&&typeof t!=`function`)throw Error(`invalid callback: `+t);for(;++a<o;)if(i=(e=r[a]).type)n[i]=cd(n[i],e.name,t);else if(t==null)for(i in n)n[i]=cd(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new ad(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(a=this._[e],r=0,i=a.length;r<i;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};function sd(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function cd(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=rd,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var ld={svg:`http://www.w3.org/2000/svg`,xhtml:`http://www.w3.org/1999/xhtml`,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`};function ud(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),ld.hasOwnProperty(t)?{space:ld[t],local:e}:e}function dd(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function fd(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function pd(e){var t=ud(e);return(t.local?fd:dd)(t)}function md(){}function hd(e){return e==null?md:function(){return this.querySelector(e)}}function gd(e){typeof e!=`function`&&(e=hd(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=Array(o),c,l,u=0;u<o;++u)(c=a[u])&&(l=e.call(c,c.__data__,u,a))&&(`__data__`in c&&(l.__data__=c.__data__),s[u]=l);return new ip(r,this._parents)}function _d(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function vd(){return[]}function yd(e){return e==null?vd:function(){return this.querySelectorAll(e)}}function bd(e){return function(){return _d(e.apply(this,arguments))}}function Z(e){e=typeof e==`function`?bd(e):yd(e);for(var t=this._groups,n=t.length,r=[],i=[],a=0;a<n;++a)for(var o=t[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&(r.push(e.call(c,c.__data__,l,o)),i.push(c));return new ip(r,i)}function xd(e){return function(){return this.matches(e)}}function Sd(e){return function(t){return t.matches(e)}}var Cd=Array.prototype.find;function wd(e){return function(){return Cd.call(this.children,e)}}function Td(){return this.firstElementChild}function Ed(e){return this.select(e==null?Td:wd(typeof e==`function`?e:Sd(e)))}var Dd=Array.prototype.filter;function Od(){return Array.from(this.children)}function kd(e){return function(){return Dd.call(this.children,e)}}function Ad(e){return this.selectAll(e==null?Od:kd(typeof e==`function`?e:Sd(e)))}function jd(e){typeof e!=`function`&&(e=xd(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new ip(r,this._parents)}function Md(e){return Array(e.length)}function Nd(){return new ip(this._enter||this._groups.map(Md),this._parents)}function Pd(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Pd.prototype={constructor:Pd,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function Fd(e){return function(){return e}}function Id(e,t,n,r,i,a){for(var o=0,s,c=t.length,l=a.length;o<l;++o)(s=t[o])?(s.__data__=a[o],r[o]=s):n[o]=new Pd(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function Ld(e,t,n,r,i,a,o){var s,c,l=new Map,u=t.length,d=a.length,f=Array(u),p;for(s=0;s<u;++s)(c=t[s])&&(f[s]=p=o.call(c,c.__data__,s,t)+``,l.has(p)?i[s]=c:l.set(p,c));for(s=0;s<d;++s)p=o.call(e,a[s],s,a)+``,(c=l.get(p))?(r[s]=c,c.__data__=a[s],l.delete(p)):n[s]=new Pd(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function Rd(e){return e.__data__}function zd(e,t){if(!arguments.length)return Array.from(this,Rd);var n=t?Ld:Id,r=this._parents,i=this._groups;typeof e!=`function`&&(e=Fd(e));for(var a=i.length,o=Array(a),s=Array(a),c=Array(a),l=0;l<a;++l){var u=r[l],d=i[l],f=d.length,p=Bd(e.call(u,u&&u.__data__,l,r)),m=p.length,h=s[l]=Array(m),g=o[l]=Array(m);n(u,d,h,g,c[l]=Array(f),p,t);for(var _=0,v=0,y,b;_<m;++_)if(y=h[_]){for(_>=v&&(v=_+1);!(b=g[v])&&++v<m;);y._next=b||null}}return o=new ip(o,r),o._enter=s,o._exit=c,o}function Bd(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function Vd(){return new ip(this._exit||this._groups.map(Md),this._parents)}function Hd(e,t,n){var r=this.enter(),i=this,a=this.exit();return typeof e==`function`?(r=e(r),r&&=r.selection()):r=r.append(e+``),t!=null&&(i=t(i),i&&=i.selection()),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function Ud(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,a=r.length,o=Math.min(i,a),s=Array(i),c=0;c<o;++c)for(var l=n[c],u=r[c],d=l.length,f=s[c]=Array(d),p,m=0;m<d;++m)(p=l[m]||u[m])&&(f[m]=p);for(;c<i;++c)s[c]=n[c];return new ip(s,this._parents)}function Wd(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function Gd(e){e||=Kd;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;a<r;++a){for(var o=n[a],s=o.length,c=i[a]=Array(s),l,u=0;u<s;++u)(l=o[u])&&(c[u]=l);c.sort(t)}return new ip(i,this._parents).order()}function Kd(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function qd(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Jd(){return Array.from(this)}function Yd(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function Xd(){let e=0;for(let t of this)++e;return e}function Zd(){return!this.node()}function Qd(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i=t[n],a=0,o=i.length,s;a<o;++a)(s=i[a])&&e.call(s,s.__data__,a,i);return this}function $d(e){return function(){this.removeAttribute(e)}}function ef(e){return function(){this.removeAttributeNS(e.space,e.local)}}function tf(e,t){return function(){this.setAttribute(e,t)}}function nf(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function rf(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function af(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function of(e,t){var n=ud(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?ef:$d:typeof t==`function`?n.local?af:rf:n.local?nf:tf)(n,t))}function sf(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function cf(e){return function(){this.style.removeProperty(e)}}function lf(e,t,n){return function(){this.style.setProperty(e,t,n)}}function uf(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function df(e,t,n){return arguments.length>1?this.each((t==null?cf:typeof t==`function`?uf:lf)(e,t,n??``)):ff(this.node(),e)}function ff(e,t){return e.style.getPropertyValue(t)||sf(e).getComputedStyle(e,null).getPropertyValue(t)}function pf(e){return function(){delete this[e]}}function mf(e,t){return function(){this[e]=t}}function hf(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function gf(e,t){return arguments.length>1?this.each((t==null?pf:typeof t==`function`?hf:mf)(e,t)):this.node()[e]}function _f(e){return e.trim().split(/^|\s+/)}function vf(e){return e.classList||new yf(e)}function yf(e){this._node=e,this._names=_f(e.getAttribute(`class`)||``)}yf.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function bf(e,t){for(var n=vf(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function xf(e,t){for(var n=vf(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function Sf(e){return function(){bf(this,e)}}function Cf(e){return function(){xf(this,e)}}function wf(e,t){return function(){(t.apply(this,arguments)?bf:xf)(this,e)}}function Tf(e,t){var n=_f(e+``);if(arguments.length<2){for(var r=vf(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?wf:t?Sf:Cf)(n,t))}function Ef(){this.textContent=``}function Df(e){return function(){this.textContent=e}}function Of(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function kf(e){return arguments.length?this.each(e==null?Ef:(typeof e==`function`?Of:Df)(e)):this.node().textContent}function Af(){this.innerHTML=``}function jf(e){return function(){this.innerHTML=e}}function Mf(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function Nf(e){return arguments.length?this.each(e==null?Af:(typeof e==`function`?Mf:jf)(e)):this.node().innerHTML}function Pf(){this.nextSibling&&this.parentNode.appendChild(this)}function Ff(){return this.each(Pf)}function If(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Lf(){return this.each(If)}function Rf(e){var t=typeof e==`function`?e:pd(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function zf(){return null}function Bf(e,t){var n=typeof e==`function`?e:pd(e),r=t==null?zf:typeof t==`function`?t:hd(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Vf(){var e=this.parentNode;e&&e.removeChild(this)}function Hf(){return this.each(Vf)}function Uf(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Wf(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Gf(e){return this.select(e?Wf:Uf)}function Kf(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function qf(e){return function(t){e.call(this,t,this.__data__)}}function Jf(e){return e.trim().split(/^|\s+/).map(function(e){var t=``,n=e.indexOf(`.`);return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function Yf(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n<i;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function Xf(e,t,n){return function(){var r=this.__on,i,a=qf(t);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=t;return}}this.addEventListener(e.type,a,n),i={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(i):this.__on=[i]}}function Zf(e,t,n){var r=Jf(e+``),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<a;++i)if((o=r[i]).type===u.type&&o.name===u.name)return u.value}return}for(s=t?Xf:Yf,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function Qf(e,t,n){var r=sf(e),i=r.CustomEvent;typeof i==`function`?i=new i(t,n):(i=r.document.createEvent(`Event`),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function $f(e,t){return function(){return Qf(this,e,t)}}function ep(e,t){return function(){return Qf(this,e,t.apply(this,arguments))}}function tp(e,t){return this.each((typeof t==`function`?ep:$f)(e,t))}function*np(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var rp=[null];function ip(e,t){this._groups=e,this._parents=t}function ap(){return new ip([[document.documentElement]],rp)}function op(){return this}ip.prototype=ap.prototype={constructor:ip,select:gd,selectAll:Z,selectChild:Ed,selectChildren:Ad,filter:jd,data:zd,enter:Nd,exit:Vd,join:Hd,merge:Ud,selection:op,order:Wd,sort:Gd,call:qd,nodes:Jd,node:Yd,size:Xd,empty:Zd,each:Qd,attr:of,style:df,property:gf,classed:Tf,text:kf,html:Nf,raise:Ff,lower:Lf,append:Rf,insert:Bf,remove:Hf,clone:Gf,datum:Kf,on:Zf,dispatch:tp,[Symbol.iterator]:np};function sp(e){return typeof e==`string`?new ip([[document.querySelector(e)]],[document.documentElement]):new ip([[e]],rp)}function cp(e){let t;for(;t=e.sourceEvent;)e=t;return e}function lp(e,t){if(e=cp(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}var up={passive:!1},dp={capture:!0,passive:!1};function fp(e){e.stopImmediatePropagation()}function pp(e){e.preventDefault(),e.stopImmediatePropagation()}function mp(e){var t=e.document.documentElement,n=sp(e).on(`dragstart.drag`,pp,dp);`onselectstart`in t?n.on(`selectstart.drag`,pp,dp):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect=`none`)}function hp(e,t){var n=e.document.documentElement,r=sp(e).on(`dragstart.drag`,null);t&&(r.on(`click.drag`,pp,dp),setTimeout(function(){r.on(`click.drag`,null)},0)),`onselectstart`in n?r.on(`selectstart.drag`,null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var gp=e=>()=>e;function _p(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}_p.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function vp(e){return!e.ctrlKey&&!e.button}function yp(){return this.parentNode}function bp(e,t){return t??{x:e.x,y:e.y}}function xp(){return navigator.maxTouchPoints||`ontouchstart`in this}function Sp(){var e=vp,t=yp,n=bp,r=xp,i={},a=id(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,up).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!(u||!e.call(this,n,r))){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(sp(n.view).on(`mousemove.drag`,m,dp).on(`mouseup.drag`,h,dp),mp(n.view),fp(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(pp(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){sp(e.view).on(`mousemove.drag mouseup.drag`,null),hp(e.view,l),pp(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r)){var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s,c;for(s=0;s<o;++s)(c=y(this,a,n,r,i[s].identifier,i[s]))&&(fp(n),c(`start`,n,i[s]))}}function _(e){var t=e.changedTouches,n=t.length,r,a;for(r=0;r<n;++r)(a=i[t[r].identifier])&&(pp(e),a(`drag`,e,t[r]))}function v(e){var t=e.changedTouches,n=t.length,r,a;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),r=0;r<n;++r)(a=i[t[r].identifier])&&(fp(e),a(`end`,e,t[r]))}function y(e,t,r,s,c,l){var u=a.copy(),d=lp(l||r,t),p,m,h;if((h=n.call(e,new _p(`beforestart`,{sourceEvent:r,target:f,identifier:c,active:o,x:d[0],y:d[1],dx:0,dy:0,dispatch:u}),s))!=null)return p=h.x-d[0]||0,m=h.y-d[1]||0,function n(r,a,l){var g=d,_;switch(r){case`start`:i[c]=n,_=o++;break;case`end`:delete i[c],--o;case`drag`:d=lp(l||a,t),_=o;break}u.call(r,e,new _p(r,{sourceEvent:a,subject:h,target:f,identifier:c,active:_,x:d[0]+p,y:d[1]+m,dx:d[0]-g[0],dy:d[1]-g[1],dispatch:u}),s)}}return f.filter=function(t){return arguments.length?(e=typeof t==`function`?t:gp(!!t),f):e},f.container=function(e){return arguments.length?(t=typeof e==`function`?e:gp(e),f):t},f.subject=function(e){return arguments.length?(n=typeof e==`function`?e:gp(e),f):n},f.touchable=function(e){return arguments.length?(r=typeof e==`function`?e:gp(!!e),f):r},f.on=function(){var e=a.on.apply(a,arguments);return e===a?f:e},f.clickDistance=function(e){return arguments.length?(d=(e=+e)*e,f):Math.sqrt(d)},f}function Cp(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function wp(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Tp(){}var Ep=.7,Dp=1/Ep,Op=`\\s*([+-]?\\d+)\\s*`,kp=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,Ap=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,jp=/^#([0-9a-f]{3,8})$/,Mp=RegExp(`^rgb\\(${Op},${Op},${Op}\\)$`),Np=RegExp(`^rgb\\(${Ap},${Ap},${Ap}\\)$`),Pp=RegExp(`^rgba\\(${Op},${Op},${Op},${kp}\\)$`),Fp=RegExp(`^rgba\\(${Ap},${Ap},${Ap},${kp}\\)$`),Ip=RegExp(`^hsl\\(${kp},${Ap},${Ap}\\)$`),Lp=RegExp(`^hsla\\(${kp},${Ap},${Ap},${kp}\\)$`),Rp={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Cp(Tp,Up,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:zp,formatHex:zp,formatHex8:Bp,formatHsl:Vp,formatRgb:Hp,toString:Hp});function zp(){return this.rgb().formatHex()}function Bp(){return this.rgb().formatHex8()}function Vp(){return nm(this).formatHsl()}function Hp(){return this.rgb().formatRgb()}function Up(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=jp.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?Wp(t):n===3?new Jp(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Gp(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Gp(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Mp.exec(e))?new Jp(t[1],t[2],t[3],1):(t=Np.exec(e))?new Jp(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Pp.exec(e))?Gp(t[1],t[2],t[3],t[4]):(t=Fp.exec(e))?Gp(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Ip.exec(e))?tm(t[1],t[2]/100,t[3]/100,1):(t=Lp.exec(e))?tm(t[1],t[2]/100,t[3]/100,t[4]):Rp.hasOwnProperty(e)?Wp(Rp[e]):e===`transparent`?new Jp(NaN,NaN,NaN,0):null}function Wp(e){return new Jp(e>>16&255,e>>8&255,e&255,1)}function Gp(e,t,n,r){return r<=0&&(e=t=n=NaN),new Jp(e,t,n,r)}function Kp(e){return e instanceof Tp||(e=Up(e)),e?(e=e.rgb(),new Jp(e.r,e.g,e.b,e.opacity)):new Jp}function qp(e,t,n,r){return arguments.length===1?Kp(e):new Jp(e,t,n,r??1)}function Jp(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Cp(Jp,qp,wp(Tp,{brighter(e){return e=e==null?Dp:Dp**+e,new Jp(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Ep:Ep**+e,new Jp(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Jp($p(this.r),$p(this.g),$p(this.b),Qp(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Yp,formatHex:Yp,formatHex8:Xp,formatRgb:Zp,toString:Zp}));function Yp(){return`#${em(this.r)}${em(this.g)}${em(this.b)}`}function Xp(){return`#${em(this.r)}${em(this.g)}${em(this.b)}${em((isNaN(this.opacity)?1:this.opacity)*255)}`}function Zp(){let e=Qp(this.opacity);return`${e===1?`rgb(`:`rgba(`}${$p(this.r)}, ${$p(this.g)}, ${$p(this.b)}${e===1?`)`:`, ${e})`}`}function Qp(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function $p(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function em(e){return e=$p(e),(e<16?`0`:``)+e.toString(16)}function tm(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new im(e,t,n,r)}function nm(e){if(e instanceof im)return new im(e.h,e.s,e.l,e.opacity);if(e instanceof Tp||(e=Up(e)),!e)return new im;if(e instanceof im)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n<r)*6:n===a?(r-t)/s+2:(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new im(o,s,c,e.opacity)}function rm(e,t,n,r){return arguments.length===1?nm(e):new im(e,t,n,r??1)}function im(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Cp(im,rm,wp(Tp,{brighter(e){return e=e==null?Dp:Dp**+e,new im(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Ep:Ep**+e,new im(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Jp(sm(e>=240?e-240:e+120,i,r),sm(e,i,r),sm(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new im(am(this.h),om(this.s),om(this.l),Qp(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=Qp(this.opacity);return`${e===1?`hsl(`:`hsla(`}${am(this.h)}, ${om(this.s)*100}%, ${om(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function am(e){return e=(e||0)%360,e<0?e+360:e}function om(e){return Math.max(0,Math.min(1,e||0))}function sm(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var cm=e=>()=>e;function lm(e,t){return function(n){return e+n*t}}function um(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function dm(e,t){var n=t-e;return n?lm(e,n>180||n<-180?n-360*Math.round(n/360):n):cm(isNaN(e)?t:e)}function fm(e){return(e=+e)==1?pm:function(t,n){return n-t?um(t,n,e):cm(isNaN(t)?n:t)}}function pm(e,t){var n=t-e;return n?lm(e,n):cm(isNaN(e)?t:e)}var mm=(function e(t){var n=fm(t);function r(e,t){var r=n((e=qp(e)).r,(t=qp(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=pm(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function hm(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function gm(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function _m(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=Array(r),a=Array(n),o;for(o=0;o<r;++o)i[o]=Em(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(e){for(o=0;o<r;++o)a[o]=i[o](e);return a}}function vm(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function ym(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function bm(e,t){var n={},r={},i;for(i in(typeof e!=`object`||!e)&&(e={}),(typeof t!=`object`||!t)&&(t={}),t)i in e?n[i]=Em(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var xm=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Sm=new RegExp(xm.source,`g`);function Cm(e){return function(){return e}}function wm(e){return function(t){return e(t)+``}}function Tm(e,t){var n=xm.lastIndex=Sm.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=xm.exec(e))&&(i=Sm.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:ym(r,i)})),n=Sm.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?wm(c[0].x):Cm(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}function Em(e,t){var n=typeof t,r;return t==null||n===`boolean`?cm(t):(n===`number`?ym:n===`string`?(r=Up(t))?(t=r,mm):Tm:t instanceof Up?mm:t instanceof Date?vm:gm(t)?hm:Array.isArray(t)?_m:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?bm:ym)(e,t)}var Dm=180/Math.PI,Om={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function km(e,t,n,r,i,a){var o,s,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),e*r<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*Dm,skewX:Math.atan(c)*Dm,scaleX:o,scaleY:s}}var Am;function jm(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?Om:km(t.a,t.b,t.c,t.d,t.e,t.f)}function Mm(e){return e==null||(Am||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),Am.setAttribute(`transform`,e),!(e=Am.transform.baseVal.consolidate()))?Om:(e=e.matrix,km(e.a,e.b,e.c,e.d,e.e,e.f))}function Nm(e,t,n,r){function i(e){return e.length?e.pop()+` `:``}function a(e,r,i,a,o,s){if(e!==i||r!==a){var c=o.push(`translate(`,null,t,null,n);s.push({i:c-4,x:ym(e,i)},{i:c-2,x:ym(r,a)})}else(i||a)&&o.push(`translate(`+i+t+a+n)}function o(e,t,n,a){e===t?t&&n.push(i(n)+`rotate(`+t+r):(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:ym(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:ym(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:ym(e,n)},{i:s-2,x:ym(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t<n;)r[(a=i[t]).i]=a.x(e);return r.join(``)}}}var Pm=Nm(jm,`px, `,`px)`,`deg)`),Fm=Nm(Mm,`, `,`)`,`)`),Im=1e-12;function Lm(e){return((e=Math.exp(e))+1/e)/2}function Rm(e){return((e=Math.exp(e))-1/e)/2}function zm(e){return((e=Math.exp(2*e))-1)/(e+1)}var Bm=(function e(t,n,r){function i(e,i){var a=e[0],o=e[1],s=e[2],c=i[0],l=i[1],u=i[2],d=c-a,f=l-o,p=d*d+f*f,m,h;if(p<Im)h=Math.log(u/s)/t,m=function(e){return[a+e*d,o+e*f,s*Math.exp(t*e*h)]};else{var g=Math.sqrt(p),_=(u*u-s*s+r*p)/(2*s*n*g),v=(u*u-s*s-r*p)/(2*u*n*g),y=Math.log(Math.sqrt(_*_+1)-_);h=(Math.log(Math.sqrt(v*v+1)-v)-y)/t,m=function(e){var r=e*h,i=Lm(y),c=s/(n*g)*(i*zm(t*r+y)-Rm(y));return[a+c*d,o+c*f,s*i/Lm(t*r+y)]}}return m.duration=h*1e3*t/Math.SQRT2,m}return i.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},i})(Math.SQRT2,2,4),Vm=0,Hm=0,Um=0,Wm=1e3,Gm,Km,qm=0,Jm=0,Ym=0,Xm=typeof performance==`object`&&performance.now?performance:Date,Zm=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Qm(){return Jm||=(Zm($m),Xm.now()+Ym)}function $m(){Jm=0}function eh(){this._call=this._time=this._next=null}eh.prototype=th.prototype={constructor:eh,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?Qm():+n)+(t==null?0:+t),!this._next&&Km!==this&&(Km?Km._next=this:Gm=this,Km=this),this._call=e,this._time=n,oh()},stop:function(){this._call&&(this._call=null,this._time=1/0,oh())}};function th(e,t,n){var r=new eh;return r.restart(e,t,n),r}function nh(){Qm(),++Vm;for(var e=Gm,t;e;)(t=Jm-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Vm}function rh(){Jm=(qm=Xm.now())+Ym,Vm=Hm=0;try{nh()}finally{Vm=0,ah(),Jm=0}}function ih(){var e=Xm.now(),t=e-qm;t>Wm&&(Ym-=t,qm=e)}function ah(){for(var e,t=Gm,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Gm=n);Km=e,oh(r)}function oh(e){Vm||(Hm&&=clearTimeout(Hm),e-Jm>24?(e<1/0&&(Hm=setTimeout(rh,e-Xm.now()-Ym)),Um&&=clearInterval(Um)):(Um||=(qm=Xm.now(),setInterval(ih,Wm)),Vm=1,Zm(rh)))}function sh(e,t,n){var r=new eh;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var ch=id(`start`,`end`,`cancel`,`interrupt`),lh=[];function uh(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;mh(e,n,{name:t,index:r,group:i,on:ch,tween:lh,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function dh(e,t){var n=ph(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function fh(e,t){var n=ph(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function ph(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function mh(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=th(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return sh(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l<t&&(f.state=6,f.timer.stop(),f.on.call(`cancel`,e,e.__data__,f.index,f.group),delete r[l])}if(sh(function(){n.state===3&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=2,n.on.call(`start`,e,e.__data__,n.index,n.group),n.state===2){for(n.state=3,i=Array(d=n.tween.length),l=0,u=-1;l<d;++l)(f=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(i[++u]=f);i.length=u+1}}function s(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(c),n.state=5,1),a=-1,o=i.length;++a<o;)i[a].call(e,r);n.state===5&&(n.on.call(`end`,e,e.__data__,n.index,n.group),c())}function c(){for(var i in n.state=6,n.timer.stop(),delete r[t],r)return;delete e.__transition}}function hh(e,t){var n=e.__transition,r,i,a=!0,o;if(n){for(o in t=t==null?null:t+``,n){if((r=n[o]).name!==t){a=!1;continue}i=r.state>2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function gh(e){return this.each(function(){hh(this,e)})}function _h(e,t){var n,r;return function(){var i=fh(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function vh(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=fh(this,e),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:t,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===t){i[c]=s;break}c===l&&i.push(s)}a.tween=i}}function yh(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=ph(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((t==null?_h:vh)(n,e,t))}function bh(e,t,n){var r=e._id;return e.each(function(){var e=fh(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return ph(e,r).value[t]}}function xh(e,t){var n;return(typeof t==`number`?ym:t instanceof Up?mm:(n=Up(t))?(t=n,mm):Tm)(e,t)}function Sh(e){return function(){this.removeAttribute(e)}}function Ch(e){return function(){this.removeAttributeNS(e.space,e.local)}}function wh(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttribute(e);return o===i?null:o===r?a:a=t(r=o,n)}}function Th(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttributeNS(e.space,e.local);return o===i?null:o===r?a:a=t(r=o,n)}}function Eh(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttribute(e):(o=this.getAttribute(e),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function Dh(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function Oh(e,t){var n=ud(e),r=n===`transform`?Fm:xh;return this.attrTween(e,typeof t==`function`?(n.local?Dh:Eh)(n,r,bh(this,`attr.`+e,t)):t==null?(n.local?Ch:Sh)(n):(n.local?Th:wh)(n,r,t))}function kh(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function Ah(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function jh(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Ah(e,i)),n}return i._value=t,i}function Mh(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&kh(e,i)),n}return i._value=t,i}function Nh(e,t){var n=`attr.`+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!=`function`)throw Error();var r=ud(e);return this.tween(n,(r.local?jh:Mh)(r,t))}function Ph(e,t){return function(){dh(this,e).delay=+t.apply(this,arguments)}}function Fh(e,t){return t=+t,function(){dh(this,e).delay=t}}function Ih(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?Ph:Fh)(t,e)):ph(this.node(),t).delay}function Lh(e,t){return function(){fh(this,e).duration=+t.apply(this,arguments)}}function Rh(e,t){return t=+t,function(){fh(this,e).duration=t}}function zh(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?Lh:Rh)(t,e)):ph(this.node(),t).duration}function Bh(e,t){if(typeof t!=`function`)throw Error();return function(){fh(this,e).ease=t}}function Vh(e){var t=this._id;return arguments.length?this.each(Bh(t,e)):ph(this.node(),t).ease}function Hh(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();fh(this,e).ease=n}}function Uh(e){if(typeof e!=`function`)throw Error();return this.each(Hh(this._id,e))}function Wh(e){typeof e!=`function`&&(e=xd(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new yg(r,this._parents,this._name,this._id)}function Gh(e){if(e._id!==this._id)throw Error();for(var t=this._groups,n=e._groups,r=t.length,i=n.length,a=Math.min(r,i),o=Array(r),s=0;s<a;++s)for(var c=t[s],l=n[s],u=c.length,d=o[s]=Array(u),f,p=0;p<u;++p)(f=c[p]||l[p])&&(d[p]=f);for(;s<r;++s)o[s]=t[s];return new yg(o,this._parents,this._name,this._id)}function Kh(e){return(e+``).trim().split(/^|\s+/).every(function(e){var t=e.indexOf(`.`);return t>=0&&(e=e.slice(0,t)),!e||e===`start`})}function qh(e,t,n){var r,i,a=Kh(t)?dh:fh;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Jh(e,t){var n=this._id;return arguments.length<2?ph(this.node(),n).on.on(e):this.each(qh(n,e,t))}function Yh(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Xh(){return this.on(`end.remove`,Yh(this._id))}function Zh(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=hd(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o<i;++o)for(var s=r[o],c=s.length,l=a[o]=Array(c),u,d,f=0;f<c;++f)(u=s[f])&&(d=e.call(u,u.__data__,f,s))&&(`__data__`in u&&(d.__data__=u.__data__),l[f]=d,uh(l[f],t,n,f,l,ph(u,n)));return new yg(a,this._parents,t,n)}function Qh(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=yd(e));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,d=0;d<l;++d)if(u=c[d]){for(var f=e.call(u,u.__data__,d,c),p,m=ph(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&uh(p,t,n,h,f,m);a.push(f),o.push(u)}return new yg(a,o,t,n)}var $h=ap.prototype.constructor;function eg(){return new $h(this._groups,this._parents)}function tg(e,t){var n,r,i;return function(){var a=ff(this,e),o=(this.style.removeProperty(e),ff(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function ng(e){return function(){this.style.removeProperty(e)}}function rg(e,t,n){var r,i=n+``,a;return function(){var o=ff(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function ig(e,t,n){var r,i,a;return function(){var o=ff(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),ff(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function ag(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=fh(this,e),l=c.on,u=c.value[a]==null?s||=ng(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function og(e,t,n){var r=(e+=``)==`transform`?Pm:xh;return t==null?this.styleTween(e,tg(e,r)).on(`end.style.`+e,ng(e)):typeof t==`function`?this.styleTween(e,ig(e,r,bh(this,`style.`+e,t))).each(ag(this._id,e)):this.styleTween(e,rg(e,r,t),n).on(`end.style.`+e,null)}function sg(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function cg(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&sg(e,a,n)),r}return a._value=t,a}function lg(e,t,n){var r=`style.`+(e+=``);if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!=`function`)throw Error();return this.tween(r,cg(e,t,n??``))}function ug(e){return function(){this.textContent=e}}function dg(e){return function(){var t=e(this);this.textContent=t??``}}function fg(e){return this.tween(`text`,typeof e==`function`?dg(bh(this,`text`,e)):ug(e==null?``:e+``))}function pg(e){return function(t){this.textContent=e.call(this,t)}}function mg(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&pg(r)),t}return r._value=e,r}function hg(e){var t=`text`;if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!=`function`)throw Error();return this.tween(t,mg(e))}function gg(){for(var e=this._name,t=this._id,n=xg(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)if(c=o[l]){var u=ph(c,t);uh(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new yg(r,this._parents,e,n)}function _g(){var e,t,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var s={value:o},c={value:function(){--i===0&&a()}};n.each(function(){var n=fh(this,r),i=n.on;i!==e&&(t=(e=i).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(c)),n.on=t}),i===0&&a()})}var vg=0;function yg(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function bg(e){return ap().transition(e)}function xg(){return++vg}var Sg=ap.prototype;yg.prototype=bg.prototype={constructor:yg,select:Zh,selectAll:Qh,selectChild:Sg.selectChild,selectChildren:Sg.selectChildren,filter:Wh,merge:Gh,selection:eg,transition:gg,call:Sg.call,nodes:Sg.nodes,node:Sg.node,size:Sg.size,empty:Sg.empty,each:Sg.each,on:Jh,attr:Oh,attrTween:Nh,style:og,styleTween:lg,text:fg,textTween:hg,remove:Xh,tween:yh,delay:Ih,duration:zh,ease:Vh,easeVarying:Uh,end:_g,[Symbol.iterator]:Sg[Symbol.iterator]};function Cg(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var wg={time:null,delay:0,duration:250,ease:Cg};function Tg(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function Eg(e){var t,n;e instanceof yg?(t=e._id,e=e._name):(t=xg(),(n=wg).time=Qm(),e=e==null?null:e+``);for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&uh(c,e,t,l,o,n||Tg(c,t));return new yg(r,this._parents,e,t)}ap.prototype.interrupt=gh,ap.prototype.transition=Eg;var Dg=e=>()=>e;function Og(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function kg(e,t,n){this.k=e,this.x=t,this.y=n}kg.prototype={constructor:kg,scale:function(e){return e===1?this:new kg(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new kg(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var Ag=new kg(1,0,0);jg.prototype=kg.prototype;function jg(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Ag;return e.__zoom}function Mg(e){e.stopImmediatePropagation()}function Ng(e){e.preventDefault(),e.stopImmediatePropagation()}function Pg(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function Fg(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute(`viewBox`)?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Ig(){return this.__zoom||Ag}function Lg(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Rg(){return navigator.maxTouchPoints||`ontouchstart`in this}function zg(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function Bg(){var e=Pg,t=Fg,n=zg,r=Lg,i=Rg,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=Bm,l=id(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,Ig).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,T).on(`dblclick.zoom`,E).filter(i).on(`touchstart.zoom`,D).on(`touchmove.zoom`,O).on(`touchend.zoom touchcancel.zoom`,k).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,Ig),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(Ag.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new kg(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new kg(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new kg(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=sp(this.that).datum();l.call(e,this.that,new Og(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=lp(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],hh(this),s.start();Ng(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function T(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=sp(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=lp(t,i),l=t.clientX,u=t.clientY;mp(t.view),Mg(t),a.mouse=[c,this.__zoom.invert(c)],hh(this),a.start();function d(e){if(Ng(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=lp(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),hp(e.view,a.moved),Ng(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=lp(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);Ng(r),s>0?sp(this).transition().duration(s).call(x,d,c,r):sp(this).call(_.transform,d,c,r)}}function D(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(Mg(t),s=0;s<i;++s)c=r[s],l=lp(c,this),l=[l,this.__zoom.invert(l),c.identifier],a.touch0?!a.touch1&&a.touch0[2]!==l[2]&&(a.touch1=l,a.taps=0):(a.touch0=l,o=!0,a.taps=1+!!u);u&&=clearTimeout(u),o&&(a.taps<2&&(d=l[0],u=setTimeout(function(){u=null},p)),hh(this),a.start())}}function O(e,...t){if(this.__zooming){var r=S(this,t).event(e),i=e.changedTouches,a=i.length,s,c,l,u;for(Ng(e),s=0;s<a;++s)c=i[s],l=lp(c,this),r.touch0&&r.touch0[2]===c.identifier?r.touch0[0]=l:r.touch1&&r.touch1[2]===c.identifier&&(r.touch1[0]=l);if(c=r.that.__zoom,r.touch1){var d=r.touch0[0],f=r.touch0[1],p=r.touch1[0],m=r.touch1[1],h=(h=p[0]-d[0])*h+(h=p[1]-d[1])*h,g=(g=m[0]-f[0])*g+(g=m[1]-f[1])*g;c=v(c,Math.sqrt(h/g)),l=[(d[0]+p[0])/2,(d[1]+p[1])/2],u=[(f[0]+m[0])/2,(f[1]+m[1])/2]}else if(r.touch0)l=r.touch0[0],u=r.touch0[1];else return;r.zoom(`touch`,n(y(c,l,u),r.extent,o))}}function k(e,...t){if(this.__zooming){var n=S(this,t).event(e),r=e.changedTouches,i=r.length,a,o;for(Mg(e),f&&clearTimeout(f),f=setTimeout(function(){f=null},p),a=0;a<i;++a)o=r[a],n.touch0&&n.touch0[2]===o.identifier?delete n.touch0:n.touch1&&n.touch1[2]===o.identifier&&delete n.touch1;if(n.touch1&&!n.touch0&&(n.touch0=n.touch1,delete n.touch1),n.touch0)n.touch0[1]=this.__zoom.invert(n.touch0[0]);else if(n.end(),n.taps===2&&(o=lp(o,this),Math.hypot(d[0]-o[0],d[1]-o[1])<g)){var s=sp(this).on(`dblclick.zoom`);s&&s.apply(this,arguments)}}}return _.wheelDelta=function(e){return arguments.length?(r=typeof e==`function`?e:Dg(+e),_):r},_.filter=function(t){return arguments.length?(e=typeof t==`function`?t:Dg(!!t),_):e},_.touchable=function(e){return arguments.length?(i=typeof e==`function`?e:Dg(!!e),_):i},_.extent=function(e){return arguments.length?(t=typeof e==`function`?e:Dg([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),_):t},_.scaleExtent=function(e){return arguments.length?(a[0]=+e[0],a[1]=+e[1],_):[a[0],a[1]]},_.translateExtent=function(e){return arguments.length?(o[0][0]=+e[0][0],o[1][0]=+e[1][0],o[0][1]=+e[0][1],o[1][1]=+e[1][1],_):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},_.constrain=function(e){return arguments.length?(n=e,_):n},_.duration=function(e){return arguments.length?(s=+e,_):s},_.interpolate=function(e){return arguments.length?(c=e,_):c},_.on=function(){var e=l.on.apply(l,arguments);return e===l?_:e},_.clickDistance=function(e){return arguments.length?(h=(e=+e)*e,_):Math.sqrt(h)},_.tapDistance=function(e){return arguments.length?(g=+e,_):g},_}var Vg={error001:(e=`react`)=>`Seems like you have not used ${e===`svelte`?`SvelteFlowProvider`:`ReactFlowProvider`} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>`It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.`,error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>`The parent container needs a width and a height to render the graph.`,error005:()=>`Only child nodes can use a parent extent.`,error006:()=>`Can't create edge. An edge needs a source and a target.`,error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e===`source`?n:r}", edge id: ${t}.`,error010:()=>`Handle: No node id found. Make sure to only use a Handle inside a custom Node.`,error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e=`react`)=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>`useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.`,error015:()=>`It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.`,error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},Hg=[[-1/0,-1/0],[1/0,1/0]],Ug=[`Enter`,` `,`Escape`],Wg={"node.a11yDescription.default":`Press enter or space to select a node. Press delete to remove it and escape to cancel.`,"node.a11yDescription.keyboardDisabled":`Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.`,"node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":`Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.`,"controls.ariaLabel":`Control Panel`,"controls.zoomIn.ariaLabel":`Zoom In`,"controls.zoomOut.ariaLabel":`Zoom Out`,"controls.fitView.ariaLabel":`Fit View`,"controls.interactive.ariaLabel":`Toggle Interactivity`,"minimap.ariaLabel":`Mini Map`,"handle.ariaLabel":`Handle`},Gg;(function(e){e.Strict=`strict`,e.Loose=`loose`})(Gg||={});var Kg;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(Kg||={});var qg;(function(e){e.Partial=`partial`,e.Full=`full`})(qg||={});var Jg={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},Yg;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(Yg||={});var Xg;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(Xg||={});var Q;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(Q||={});var Zg={[Q.Left]:Q.Right,[Q.Right]:Q.Left,[Q.Top]:Q.Bottom,[Q.Bottom]:Q.Top};function Qg(e){return e===null?null:e?`valid`:`invalid`}var $g=e=>!!e&&typeof e==`object`&&`id`in e&&`source`in e&&`target`in e,e_=e=>!!e&&typeof e==`object`&&`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),t_=e=>!!e&&typeof e==`object`&&`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),n_=(e,t=[0,0])=>{let{width:n,height:r}=I_(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},r_=(e,t={nodeOrigin:[0,0]})=>e.length===0?{x:0,y:0,width:0,height:0}:v_(e.reduce((e,n)=>{let r=typeof n==`string`,i=!t.nodeLookup&&!r?n:void 0;return t.nodeLookup&&(i=r?t.nodeLookup.get(n):t_(n)?n:t.nodeLookup.get(n.id)),g_(e,i?b_(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),i_=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=g_(n,b_(e)),r=!0)}),r?v_(n):{x:0,y:0,width:0,height:0}},a_=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=S_(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},o_=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function s_(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{let i;if(t?.includeHiddenNodes){let{width:t,height:n}=I_(e);i=t>0&&n>0}else i=!!(e.measured.width&&e.measured.height&&!e.hidden);i&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function c_({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=N_(i_(s_(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function l_({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent)if(!s)a?.(`005`,Vg.error005());else{let e=s.measured.width,t=s.measured.height;e&&t&&(d=[[c,l],[c+e,l+t]])}else s&&F_(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=F_(d)?f_(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,Vg.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function u_({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=o_(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var d_=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),f_=(e={x:0,y:0},t,n)=>({x:d_(e.x,t[0][0],t[1][0]-(n?.width??0)),y:d_(e.y,t[0][1],t[1][1]-(n?.height??0))});function p_(e,t,n){let{width:r,height:i}=I_(n),{x:a,y:o}=n.internals.positionAbsolute;return f_(e,[[a,o],[a+r,o+i]],t)}var m_=(e,t,n)=>e<t?d_(Math.abs(e-t),1,t)/t:e>n?-d_(Math.abs(e-n),1,t)/t:0,h_=(e,t,n=15,r=40)=>[m_(e.x,r,t.width-r)*n,m_(e.y,r,t.height-r)*n],g_=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),__=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),v_=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),y_=(e,t=[0,0])=>{let{x:n,y:r}=t_(e)?e.internals.positionAbsolute:n_(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},b_=(e,t=[0,0])=>{let{x:n,y:r}=t_(e)?e.internals.positionAbsolute:n_(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},x_=(e,t)=>v_(g_(__(e),__(t))),S_=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},C_=(e,t)=>S_(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),w_=e=>T_(e.width)&&T_(e.height)&&T_(e.x)&&T_(e.y),T_=e=>!isNaN(e)&&isFinite(e),E_=(e,t)=>(e,t)=>{},D_=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),O_=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?D_(s,o):s},k_=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function A_(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function j_(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=A_(e,n),i=A_(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=A_(e.top??e.y??0,n),i=A_(e.bottom??e.y??0,n),a=A_(e.left??e.x??0,t),o=A_(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function M_(e,t,n,r,i,a){let{x:o,y:s}=k_(e,[t,n,r]),{x:c,y:l}=k_({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var N_=(e,t,n,r,i,a)=>{let o=j_(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=d_(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=M_(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},P_=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function F_(e){return e!=null&&e!==`parent`}function I_(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function L_(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function R_(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function z_(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function B_(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function V_(e){return{...Wg,...e||{}}}function H_(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=J_(e),s=O_({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?D_(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var U_=e=>({width:e.offsetWidth,height:e.offsetHeight}),W_=e=>e?.getRootNode?.()||window?.document,G_=[`INPUT`,`SELECT`,`TEXTAREA`];function K_(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?G_.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var q_=e=>`clientX`in e,J_=(e,t)=>{let n=q_(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},Y_=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...U_(t)}})};function X_({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function Z_(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Q_({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case Q.Left:return[t-Z_(t-r,a),n];case Q.Right:return[t+Z_(r-t,a),n];case Q.Top:return[t,n-Z_(n-i,a)];case Q.Bottom:return[t,n+Z_(i-n,a)]}}function $_({sourceX:e,sourceY:t,sourcePosition:n=Q.Bottom,targetX:r,targetY:i,targetPosition:a=Q.Top,curvature:o=.25}){let[s,c]=Q_({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=Q_({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=X_({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function ev({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n<e?n+i:n-i,o=Math.abs(r-t)/2;return[a,r<t?r+o:r-o,i,o]}function tv({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:i=!1,zIndexMode:a=`basic`}){return a===`manual`?r:(i&&n?r+1e3:r)+Math.max(e.parentId||i&&e.selected?e.internals.z:0,t.parentId||i&&t.selected?t.internals.z:0)}function nv({sourceNode:e,targetNode:t,width:n,height:r,transform:i}){let a=g_(b_(e),b_(t));return a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1),C_({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},v_(a))>0}var rv=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,iv=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),av=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,Vg.error006()),t;let r=n.getEdgeId||rv,i;return i=$g(e)?{...e}:{...e,id:r(e)},iv(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function ov({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=ev({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var sv={[Q.Left]:{x:-1,y:0},[Q.Right]:{x:1,y:0},[Q.Top]:{x:0,y:-1},[Q.Bottom]:{x:0,y:1}},cv=({source:e,sourcePosition:t=Q.Bottom,target:n})=>t===Q.Left||t===Q.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},lv=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function uv({source:e,sourcePosition:t=Q.Bottom,target:n,targetPosition:r=Q.Top,center:i,offset:a,stepPosition:o}){let s=sv[t],c=sv[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=cv({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=ev({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]<u[e];(s[f]===1&&(!t&&n||t&&r)||s[f]!==1&&(!t&&r||t&&n))&&(m=f===`x`?i:o)}let d={x:l.x+_.x,y:l.y+_.y},y={x:u.x+v.x,y:u.y+v.y};Math.max(Math.abs(d.x-m[0].x),Math.abs(y.x-m[0].x))>=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function dv(e,t,n,r){let i=Math.min(lv(e,t)/2,lv(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.x<n.x?-1:1,r=e.y<n.y?1:-1;return`L ${a+i*t},${o}Q ${a},${o} ${a},${o+i*r}`}let s=e.x<n.x?1:-1;return`L ${a},${o+i*(e.y<n.y?-1:1)}Q ${a},${o} ${a+i*s},${o}`}function fv({sourceX:e,sourceY:t,sourcePosition:n=Q.Bottom,targetX:r,targetY:i,targetPosition:a=Q.Top,borderRadius:o=5,centerX:s,centerY:c,offset:l=20,stepPosition:u=.5}){let[d,f,p,m,h]=uv({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:i},targetPosition:a,center:{x:s,y:c},offset:l,stepPosition:u}),g=`M${d[0].x} ${d[0].y}`;for(let e=1;e<d.length-1;e++)g+=dv(d[e-1],d[e],d[e+1],o);return g+=`L${d[d.length-1].x} ${d[d.length-1].y}`,[g,f,p,m,h]}function pv(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function mv(e){let{sourceNode:t,targetNode:n}=e;if(!pv(t)||!pv(n))return null;let r=t.internals.handleBounds||hv(t.handles),i=n.internals.handleBounds||hv(n.handles),a=_v(r?.source??[],e.sourceHandle),o=_v(e.connectionMode===Gg.Strict?i?.target??[]:(i?.target??[]).concat(i?.source??[]),e.targetHandle);if(!a||!o)return e.onError?.(`008`,Vg.error008(a?`target`:`source`,{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let s=a?.position||Q.Bottom,c=o?.position||Q.Top,l=gv(t,a,s),u=gv(n,o,c);return{sourceX:l.x,sourceY:l.y,targetX:u.x,targetY:u.y,sourcePosition:s,targetPosition:c}}function hv(e){if(!e)return null;let t=[],n=[];for(let r of e)r.width=r.width??1,r.height=r.height??1,r.type===`source`?t.push(r):r.type===`target`&&n.push(r);return{source:t,target:n}}function gv(e,t,n=Q.Left,r=!1){let i=(t?.x??0)+e.internals.positionAbsolute.x,a=(t?.y??0)+e.internals.positionAbsolute.y,{width:o,height:s}=t??I_(e);if(r)return{x:i+o/2,y:a+s/2};switch(t?.position??n){case Q.Top:return{x:i+o/2,y:a};case Q.Right:return{x:i+o,y:a+s/2};case Q.Bottom:return{x:i+o/2,y:a+s};case Q.Left:return{x:i,y:a+s/2}}}function _v(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function vv(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function yv(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=vv(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var bv=1e3,xv=10,Sv={nodeOrigin:[0,0],nodeExtent:Hg,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},Cv={...Sv,checkEquality:!0};function wv(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function Tv(e,t,n){let r=wv(Sv,n);for(let n of e.values())if(n.parentId)Av(n,e,t,r);else{let e=f_(n_(n,r.nodeOrigin),F_(n.extent)?n.extent:r.nodeExtent,I_(n));n.internals.positionAbsolute=e}}function Ev(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function Dv(e){return e===`manual`}function Ov(e,t,n,r={}){let i=wv(Cv,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!Dv(i.zIndexMode)?bv:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=f_(n_(u,i.nodeOrigin),F_(u.extent)?u.extent:i.nodeExtent,I_(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:Ev(u,e),z:jv(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&Av(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function kv(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function Av(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=wv(Sv,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}kv(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*xv),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=Mv(e,u,o,s,a&&!Dv(c)?bv:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function jv(e,t,n){let r=T_(e.zIndex)?e.zIndex:0;return Dv(n)?r:r+(e.selected?t:0)}function Mv(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=I_(e),l=n_(e,n),u=F_(e.extent)?f_(l,e.extent,c):l,d=f_({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=p_(d,c,t));let f=jv(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function Nv(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=x_(a.get(n.parentId)?.expandedRect??y_(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=I_(a),l=a.origin??r,u=t.x<s.x?Math.round(Math.abs(s.x-t.x)):0,d=t.y<s.y?Math.round(Math.abs(s.y-t.y)):0,f=Math.max(c.width,Math.round(t.width)),p=Math.max(c.height,Math.round(t.height)),m=(f-c.width)*l[0],h=(p-c.height)*l[1];(u>0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width<t.width||c.height<t.height||u||d)&&i.push({id:o,type:`dimensions`,setAttributes:!0,dimensions:{width:f+(u?l[0]*u-m:0),height:p+(d?l[1]*d-h:0)}})}),i}function Pv(e,t,n,r,i,a,o){let s=r?.querySelector(`.xyflow__viewport`),c=!1;if(!s)return{changes:[],updatedInternals:c};let l=[],u=window.getComputedStyle(s),{m22:d}=new window.DOMMatrixReadOnly(u.transform),f=[];for(let r of e.values()){let e=t.get(r.id);if(!e)continue;if(e.hidden){t.set(e.id,{...e,internals:{...e.internals,handleBounds:void 0}}),c=!0;continue}let s=U_(r.nodeElement),u=e.measured.width!==s.width||e.measured.height!==s.height;if(s.width&&s.height&&(u||!e.internals.handleBounds||r.force)){let p=r.nodeElement.getBoundingClientRect(),m=F_(e.extent)?e.extent:a,{positionAbsolute:h}=e.internals;if(e.parentId&&e.extent===`parent`){let n=t.get(e.parentId);n&&(h=p_(h,s,n))}else m&&(h=f_(h,m,s));let g={...e,measured:s,internals:{...e.internals,positionAbsolute:h,handleBounds:{source:Y_(`source`,r.nodeElement,p,d,e.id),target:Y_(`target`,r.nodeElement,p,d,e.id)}}};t.set(e.id,g),e.parentId&&Av(g,t,n,{nodeOrigin:i,zIndexMode:o}),c=!0,u&&(l.push({id:e.id,type:`dimensions`,dimensions:s}),e.expandParent&&e.parentId&&f.push({id:e.id,parentId:e.parentId,rect:y_(g,i)}))}}if(f.length>0){let e=Nv(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function Fv({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function Iv(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function Lv(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;Iv(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),Iv(`target`,s,c,e,i,o),t.set(r.id,r)}}function Rv(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:Rv(n,t):!1}function zv(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function Bv(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!Rv(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function Vv({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function Hv({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=D_(a,t);return{x:o.x-a.x,y:o.y-a.y}}function Uv({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:x=0}){f=sp(v);function S({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?__(i_(s)):null,x=v&&l?Hv({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:D_(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=l_({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=Vv({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function C(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=h_(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&S(a)),o=requestAnimationFrame(C)}function w(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=H_(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=Bv(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=Vv({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=Sp().clickDistance(x).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&w(e),a=H_(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=J_(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=H_(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,C()),!d){let t=J_(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&w(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=J_(e.sourceEvent,u),S(g))}}).on(`end`,e=>{if(!d||p){p&&s.size>0&&t().updateNodePositions(s,!1);return}if(c=!1,d=!1,cancelAnimationFrame(o),s.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=Vv({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!zv(t,`.${g}`,v))&&(!_||zv(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function Wv(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())C_(i,y_(e))>0&&r.push(e);return r}var Gv=250;function Kv(e,t,n,r){let i=[],a=1/0,o=Wv(e,n,t+Gv);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=gv(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l<a?(i=[{...s,x:o,y:c}],a=l):l===a&&i.push({...s,x:o,y:c}))}}if(!i.length)return null;if(i.length>1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function qv(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,...gv(o,c,c.position,!0)}:c}function Jv(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function Yv(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var Xv=()=>!0;function Zv(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=Xv,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=W_(e.target),E=0,D,{x:O,y:k}=J_(e),A=Jv(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let ee=qv(i,A,r,c,t);if(!ee)return;let te=J_(e,j),ne=!1,N=null,P=!1,re=null;function F(){if(!u||!j)return;let[e,t]=h_(te,j,S);f({x:e,y:t}),E=requestAnimationFrame(F)}let I={...ee,nodeId:i,type:A,position:ee.position},ie=c.get(i),L={inProgress:!0,isValid:null,from:gv(ie,I,Q.Left,!0),fromHandle:I,fromPosition:I.position,fromNode:ie,to:te,toHandle:null,toPosition:Zg[I.position],toNode:null,pointer:te};function R(){M=!0,y(L),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&R();function ae(e){if(!M){let{x:t,y:n}=J_(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;R()}if(!x()||!I){oe(e);return}let a=b();te=J_(e,j),D=Kv(O_(te,a,!1,[1,1]),n,c,I),ne||=(F(),!0);let s=Qv(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});re=s.handleDomNode,N=s.connection,P=Yv(!!D,s.isValid);let u=c.get(i),f=u?gv(u,I,Q.Left,!0):L.from,p={...L,from:f,isValid:P,to:s.toHandle&&P?k_({x:s.toHandle.x,y:s.toHandle.y},a):te,toHandle:s.toHandle,toPosition:P&&s.toHandle?s.toHandle.position:Zg[I.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:te};y(p),L=p}function oe(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||re)&&N&&P&&h?.(N);let{inProgress:t,...n}=L,r={...n,toPosition:L.toHandle?L.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),ne=!1,P=!1,N=null,re=null,T.removeEventListener(`mousemove`,ae),T.removeEventListener(`mouseup`,oe),T.removeEventListener(`touchmove`,ae),T.removeEventListener(`touchend`,oe)}}T.addEventListener(`mousemove`,ae),T.addEventListener(`mouseup`,oe),T.addEventListener(`touchmove`,ae),T.addEventListener(`touchend`,oe)}function Qv(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=Xv,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=J_(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=Jv(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===Gg.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=qv(t,e,a,u,n,!0)}return _}var $v={onPointerDown:Zv,isValid:Qv};function ey({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=sp(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&P_()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=Bg().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:lp}}var ty=e=>({x:e.x,y:e.y,zoom:e.k}),ny=({x:e,y:t,zoom:n})=>Ag.translate(e,t).scale(n),ry=(e,t)=>e.target.closest(`.${t}`),iy=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),ay=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,oy=(e,t=0,n=ay,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},sy=e=>{let t=e.ctrlKey&&P_()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function cy({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(ry(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let d=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=lp(u),t=d*2**sy(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===Kg.Vertical?0:u.deltaX*f,m=i===Kg.Horizontal?0:u.deltaY*f;!P_()&&u.shiftKey&&i!==Kg.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=ty(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?c?.(u,h):(e.isPanScrolling=!0,s?.(u,h)),e.panScrollTimeout=setTimeout(()=>{l?.(u,h),e.isPanScrolling=!1},150)}}function ly({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=ry(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function uy({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=ty(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function dy({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&iy(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,ty(a.transform))}}function fy({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&iy(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=ty(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function py({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:a,userSelectionActive:o,noWheelClassName:s,noPanClassName:c,lib:l,connectionInProgress:u}){return d=>{let f=e||t,p=n&&d.ctrlKey,m=d.type===`wheel`;if(d.button===1&&d.type===`mousedown`&&(ry(d,`${l}-flow__node`)||ry(d,`${l}-flow__edge`)))return!0;if(!r&&!f&&!i&&!a&&!n||o||u&&!m||ry(d,s)&&m||ry(d,c)&&(!m||i&&m&&!e)||!n&&d.ctrlKey&&m)return!1;if(!n&&d.type===`touchstart`&&d.touches?.length>1)return d.preventDefault(),!1;if(!f&&!i&&!p&&m||!r&&(d.type===`mousedown`||d.type===`touchstart`)||Array.isArray(r)&&!r.includes(d.button)&&d.type===`mousedown`)return!1;let h=Array.isArray(r)&&r.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||m)&&h}}function my({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:s,onDraggingChange:c}){let l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=[[0,0],[u.width,u.height]];(typeof ResizeObserver<`u`?new ResizeObserver(e=>{let t=e[0];t&&(d=[[0,0],[t.contentRect.width,t.contentRect.height]])}):null)?.observe(e);let f=Bg().extent(()=>d).scaleExtent([t,n]).translateExtent(r),p=sp(e).call(f);y({x:i.x,y:i.y,zoom:d_(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta(sy);async function g(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?Em:Bm).transform(oy(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function _({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:u,panOnScrollMode:d,panOnScrollSpeed:g,preventScrolling:_,zoomOnPinch:y,zoomOnScroll:b,zoomOnDoubleClick:x,zoomActivationKeyPressed:S,lib:C,onTransformChange:w,connectionInProgress:T,paneClickDistance:E,selectionOnDrag:D}){r&&!l.isZoomingOrPanning&&v();let O=i&&!S&&!r;f.clickDistance(D?1/0:!T_(E)||E<0?0:E);let k=O?cy({zoomPanValues:l,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):ly({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});p.on(`wheel.zoom`,k,{passive:!1});let A=uy({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});f.on(`start`,A);let j=dy({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:w});f.on(`zoom`,j);let M=fy({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});f.on(`end`,M);let ee=py({zoomActivationKeyPressed:S,panOnDrag:u,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:C,connectionInProgress:T});f.filter(ee),x?p.on(`dblclick.zoom`,h):p.on(`dblclick.zoom`,null)}function v(){f.on(`zoom`,null)}async function y(e,t,n){let r=ny(e),i=f?.constrain()(r,t,n);return i&&await g(i),i}async function b(e,t){let n=ny(e);return await g(n,t),n}function x(e){if(p){let t=ny(e),n=p.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&f?.transform(p,t,null,{sync:!0})}}function S(){let e=p?jg(p.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function C(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?Em:Bm).scaleTo(oy(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function w(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?Em:Bm).scaleBy(oy(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function T(e){f?.scaleExtent(e)}function E(e){f?.translateExtent(e)}function D(e){let t=!T_(e)||e<0?0:e;f?.clickDistance(t)}return{update:_,destroy:v,setViewport:b,setViewportConstrained:y,getViewport:S,scaleTo:C,scaleBy:w,setScaleExtent:T,setTranslateExtent:E,syncViewport:x,setClickDistance:D}}var hy;(function(e){e.Line=`line`,e.Handle=`handle`})(hy||={});function gy({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function _y(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function vy(e,t){return Math.max(0,t-e)}function yy(e,t){return Math.max(0,e-t)}function by(e,t,n){return Math.max(0,t-e,e-n)}function xy(e,t){return e?!t:t}function Sy(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=by(E,h,g),j=by(D,_,v);if(o){let e=0,t=0;c&&w<0?e=vy(y+w+O,o[0][0]):!c&&w>0&&(e=yy(y+E+O,o[1][0])),l&&T<0?t=vy(b+T+k,o[0][1]):!l&&T>0&&(t=yy(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=yy(y+w,s[0][0]):!c&&w<0&&(e=vy(y+E,s[1][0])),l&&T>0?t=yy(b+T,s[0][1]):!l&&T<0&&(t=vy(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=by(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?yy(b+k+E/C,o[1][1])*C:vy(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?vy(b+E/C,s[1][1])*C:yy(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=by(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?yy(y+D*C+O,o[1][0])/C:vy(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?vy(y+D*C,s[1][0])/C:yy(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(xy(c,l)?-w:w)/C:w=(xy(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,ee=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+ee}}var Cy={width:0,height:0,x:0,y:0},wy={...Cy,pointerX:0,pointerY:0,aspectRatio:1};function Ty(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function Ey({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=sp(e),o={controlDirection:_y(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...Cy},h={...wy};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:_y(e)};let g,_=null,v=[],y,b,x,S=!1,C=Sp().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(g=r.get(t),!g)return;_=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=H_(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:_});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},h={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},y=void 0,b=F_(g.extent)?g.extent:void 0,g.parentId&&(g.extent===`parent`||g.expandParent)&&(y=r.get(g.parentId)),y&&g.extent===`parent`&&(b=[[0,0],[y.measured.width,y.measured.height]]),v=[],x=void 0;for(let[e,n]of r)if(n.parentId===t&&(v.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=Ty(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n(),c=H_(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:_}),l=[];if(!g)return;let{x:u,y:f,width:C,height:w}=m,T={},E=g.origin??s,{width:D,height:O,x:k,y:A}=Sy(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,E,b,x),j=D!==C,M=O!==w,ee=k!==u&&j,te=A!==f&&M;if(!ee&&!te&&!j&&!M)return;if((ee||te||E[0]===1||E[1]===1)&&(T.x=ee?k:m.x,T.y=te?A:m.y,m.x=T.x,m.y=T.y,v.length>0)){let e=k-u,t=A-f;for(let n of v)n.position={x:n.position.x-e+E[0]*(D-C),y:n.position.y-t+E[1]*(O-w)},l.push(n)}if((j||M)&&(T.width=j&&(!o.resizeDirection||o.resizeDirection===`horizontal`)?D:m.width,T.height=M&&(!o.resizeDirection||o.resizeDirection===`vertical`)?O:m.height,m.width=T.width,m.height=T.height),y&&g.expandParent){let e=E[0]*(T.width??0);T.x&&T.x<e&&(m.x=e,h.x-=T.x-e);let t=E[1]*(T.height??0);T.y&&T.y<t&&(m.y=t,h.y-=T.y-t)}let ne=gy({width:m.width,prevWidth:C,height:m.height,prevHeight:w,affectsX:o.controlDirection.affectsX,affectsY:o.controlDirection.affectsY}),N={...m,direction:ne};p?.(e,N)!==!1&&(S=!0,d?.(e,N),r(T,l))}).on(`end`,e=>{S&&=(f?.(e,{...m}),i?.({...m}),!1)});a.call(C)}function c(){a.on(`.drag`,null)}return{update:s,destroy:c}}var Dy=n((e=>{var t=i();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,a=t.useState,o=t.useEffect,s=t.useLayoutEffect,c=t.useDebugValue;function l(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),i=r[0].inst,l=r[1];return s(function(){i.value=n,i.getSnapshot=t,u(i)&&l({inst:i})},[e,n,t]),o(function(){return u(i)&&l({inst:i}),e(function(){u(i)&&l({inst:i})})},[e]),c(n),n}function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function d(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?d:l;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),Oy=n(((e,t)=>{t.exports=Dy()})),ky=n((e=>{var t=i(),n=Oy();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var a=typeof Object.is==`function`?Object.is:r,o=n.useSyncExternalStore,s=t.useRef,c=t.useEffect,l=t.useMemo,u=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var d=s(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=l(function(){function e(e){if(!o){if(o=!0,s=e,e=r(e),i!==void 0&&f.hasValue){var t=f.value;if(i(t,e))return c=t}return c=e}if(t=c,a(s,e))return t;var n=r(e);return i!==void 0&&i(t,n)?(s=e,t):(s=e,c=n)}var o=!1,s,c,l=n===void 0?null:n;return[function(){return e(t())},l===null?void 0:function(){return e(l())}]},[t,n,r,i]);var p=o(e,d[0],d[1]);return c(function(){f.hasValue=!0,f.value=p},[p]),u(p),p}})),Ay=n(((e,t)=>{t.exports=ky()})),jy=e(Ay(),1),My=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},o=t=e(r,i,a);return a},Ny=e=>e?My(e):My,{useDebugValue:Py}=G.default,{useSyncExternalStoreWithSelector:Fy}=jy.default,Iy=e=>e;function Ly(e,t=Iy,n){let r=Fy(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Py(r),r}var Ry=(e,t)=>{let n=Ny(e),r=(e,r=t)=>Ly(n,e,r);return Object.assign(r,n),r},zy=(e,t)=>e?Ry(e,t):Ry;function By(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}var Vy=e(c()),Hy=(0,G.createContext)(null),Uy=Hy.Provider,Wy=Vg.error001(`react`);function $(e,t){let n=(0,G.useContext)(Hy);if(n===null)throw Error(Wy);return Ly(n,e,t)}function Gy(){let e=(0,G.useContext)(Hy);if(e===null)throw Error(Wy);return(0,G.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var Ky={display:`none`},qy={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},Jy=`react-flow__node-desc`,Yy=`react-flow__edge-desc`,Xy=`react-flow__aria-live`,Zy=e=>e.ariaLiveMessage,Qy=e=>e.ariaLabelConfig;function $y({rfId:e}){let t=$(Zy);return(0,X.jsx)(`div`,{id:`${Xy}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:qy,children:t})}function eb({rfId:e,disableKeyboardA11y:t}){let n=$(Qy);return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{id:`${Jy}-${e}`,style:Ky,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,X.jsx)(`div`,{id:`${Yy}-${e}`,style:Ky,children:n[`edge.a11yDescription.default`]}),!t&&(0,X.jsx)($y,{rfId:e})]})}var tb=(0,G.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>(0,X.jsx)(`div`,{className:nd([`react-flow__panel`,n,...`${e}`.split(`-`)]),style:r,ref:a,...i,children:t}));tb.displayName=`Panel`;var nb=`https://reactflow.dev?utm_source=attribution`;function rb({proOptions:e,position:t=`bottom-right`}){return e?.hideAttribution?null:(0,X.jsx)(tb,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${nb}`,children:(0,X.jsx)(`a`,{href:nb,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var ib=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},ab=e=>e.id;function ob(e,t){return By(e.selectedNodes.map(ab),t.selectedNodes.map(ab))&&By(e.selectedEdges.map(ab),t.selectedEdges.map(ab))}function sb({onSelectionChange:e}){let t=Gy(),{selectedNodes:n,selectedEdges:r}=$(ib,ob);return(0,G.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var cb=e=>!!e.onSelectionChangeHandlers;function lb({onSelectionChange:e}){let t=$(cb);return e||t?(0,X.jsx)(sb,{onSelectionChange:e}):null}var ub=[0,0],db={x:0,y:0,zoom:1},fb=[...`nodes.edges.defaultNodes.defaultEdges.onConnect.onConnectStart.onConnectEnd.onClickConnectStart.onClickConnectEnd.nodesDraggable.autoPanOnNodeFocus.nodesConnectable.nodesFocusable.edgesFocusable.edgesReconnectable.elevateNodesOnSelect.elevateEdgesOnSelect.minZoom.maxZoom.nodeExtent.onNodesChange.onEdgesChange.elementsSelectable.connectionMode.snapGrid.snapToGrid.translateExtent.connectOnClick.defaultEdgeOptions.fitView.fitViewOptions.onNodesDelete.onEdgesDelete.onDelete.onNodeDrag.onNodeDragStart.onNodeDragStop.onSelectionDrag.onSelectionDragStart.onSelectionDragStop.onMoveStart.onMove.onMoveEnd.noPanClassName.nodeOrigin.autoPanOnConnect.autoPanOnNodeDrag.onError.connectionRadius.isValidConnection.selectNodesOnDrag.nodeDragThreshold.connectionDragThreshold.onBeforeDelete.debug.autoPanSpeed.ariaLabelConfig.zIndexMode`.split(`.`),`rfId`],pb=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),mb={translateExtent:Hg,nodeOrigin:ub,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function hb(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=$(pb,By),l=Gy();(0,G.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=mb,s()}),[]);let u=(0,G.useRef)(mb);return(0,G.useEffect)(()=>{for(let s of fb){let c=e[s];c!==u.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?l.setState({ariaLabelConfig:V_(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},fb.map(t=>e[t])),null}function gb(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function _b(e){let[t,n]=(0,G.useState)(e===`system`?null:e);return(0,G.useEffect)(()=>{if(e!==`system`){n(e);return}let t=gb(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?gb()?.matches?`dark`:`light`:t}var vb=typeof document<`u`?document:null;function yb(e=null,t={target:vb,actInsideInputWithModifier:!0}){let[n,r]=(0,G.useState)(!1),i=(0,G.useRef)(!1),a=(0,G.useRef)(new Set([])),[o,s]=(0,G.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(`+`,`
87
87
  `).replace(`
88
88
 
89
89
  `,`
90
90
  +`).split(`
91
- `));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,G.useEffect)(()=>{let n=t?.target??ub,c=t?.actInsideInputWithModifier??!0;if(e!==null){let e=e=>{if(i.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!i.current||i.current&&!c)&&R_(e))return!1;let n=pb(e.code,s);if(a.current.add(e[n]),fb(o,a.current,!1)){let n=e.composedPath?.()?.[0]||e.target,a=n?.nodeName===`BUTTON`||n?.nodeName===`A`;t.preventDefault!==!1&&(i.current||!a)&&e.preventDefault(),r(!0)}},l=e=>{let t=pb(e.code,s);fb(o,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),e.key===`Meta`&&a.current.clear(),i.current=!1},u=()=>{a.current.clear(),r(!1)};return n?.addEventListener(`keydown`,e),n?.addEventListener(`keyup`,l),window.addEventListener(`blur`,u),window.addEventListener(`contextmenu`,u),()=>{n?.removeEventListener(`keydown`,e),n?.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,u),window.removeEventListener(`contextmenu`,u)}}},[e,r]),n}function fb(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function pb(e,t){return t.includes(e)?`code`:`key`}var mb=()=>{let e=Ly();return(0,G.useMemo)(()=>({zoomIn:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{let{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[r,i,a],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??a},n),!0):!1},getViewport:()=>{let[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{let{width:r,height:i,minZoom:a,maxZoom:o,panZoom:s}=e.getState(),c=T_(t,r,i,a,o,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{let{transform:r,snapGrid:i,snapToGrid:a,domNode:o}=e.getState();if(!o)return t;let{x:s,y:c}=o.getBoundingClientRect(),l={x:t.x-s,y:t.y-c},u=n.snapGrid??i;return b_(l,r,n.snapToGrid??a,u)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:i,y:a}=r.getBoundingClientRect(),o=x_(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function hb(e,t){let n=[],r=new Map,i=[];for(let t of e)if(t.type===`add`){i.push(t);continue}else if(t.type===`remove`||t.type===`replace`)r.set(t.id,[t]);else{let e=r.get(t.id);e?e.push(t):r.set(t.id,[t])}for(let e of t){let t=r.get(e.id);if(!t){n.push(e);continue}if(t[0].type===`remove`)continue;if(t[0].type===`replace`){n.push({...t[0].item});continue}let i={...e};for(let e of t)gb(e,i);n.push(i)}return i.length&&i.forEach(e=>{e.index===void 0?n.push({...e.item}):n.splice(e.index,0,{...e.item})}),n}function gb(e,t){switch(e.type){case`select`:t.selected=e.selected;break;case`position`:e.position!==void 0&&(t.position=e.position),e.dragging!==void 0&&(t.dragging=e.dragging);break;case`dimensions`:e.dimensions!==void 0&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes===`width`)&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes===`height`)&&(t.height=e.dimensions.height))),typeof e.resizing==`boolean`&&(t.resizing=e.resizing);break}}function _b(e,t){return hb(e,t)}function vb(e,t){return hb(e,t)}function yb(e,t){return{id:e,type:`select`,selected:t}}function bb(e,t=new Set,n=!1){let r=[];for(let[i,a]of e){let e=t.has(i);!(a.selected===void 0&&!e)&&a.selected!==e&&(n&&(a.selected=e),r.push(yb(a.id,e)))}return r}function xb({items:e=[],lookup:t}){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let[r,i]of e.entries()){let e=t.get(i.id),a=e?.internals?.userNode??e;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:`replace`}),a===void 0&&n.push({item:i,type:`add`,index:r})}for(let[e]of t)r.get(e)===void 0&&n.push({id:e,type:`remove`});return n}function Sb(e){return{id:e.id,type:`remove`}}var Cb=v_(`React Flow`,`https://reactflow.dev/`);function wb(e,t,n={}){return Z_(e,t,{...n,onError:n.onError??Cb})}var Tb=e=>Kg(e),Eb=e=>Gg(e);function Db(e){return(0,G.forwardRef)(e)}var Ob=typeof window<`u`?G.useLayoutEffect:G.useEffect;function kb(e){let[t,n]=(0,G.useState)(BigInt(0)),[r]=(0,G.useState)(()=>Ab(()=>n(e=>e+BigInt(1))));return Ob(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function Ab(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var jb=(0,G.createContext)(null);function Mb({children:e}){let t=Ly(),n=kb((0,G.useCallback)(e=>{let{nodes:n=[],setNodes:r,hasDefaultNodes:i,onNodesChange:a,nodeLookup:o,fitViewQueued:s,onNodesChangeMiddlewareMap:c}=t.getState(),l=n;for(let t of e)l=typeof t==`function`?t(l):t;let u=xb({items:l,lookup:o});for(let e of c.values())u=e(u);i&&r(l),u.length>0?a?.(u):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:r}=t.getState();e&&r(n)})},[])),r=kb((0,G.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a,edgeLookup:o}=t.getState(),s=n;for(let t of e)s=typeof t==`function`?t(s):t;i?r(s):a&&a(xb({items:s,lookup:o}))},[])),i=(0,G.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,X.jsx)(jb.Provider,{value:i,children:e})}function Nb(){let e=(0,G.useContext)(jb);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var Pb=e=>!!e.panZoom;function Fb(){let e=mb(),t=Ly(),n=Nb(),r=$(Pb),i=(0,G.useMemo)(()=>{let e=e=>t.getState().nodeLookup.get(e),r=e=>{n.nodeQueue.push(e)},i=e=>{n.edgeQueue.push(e)},a=e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState(),i=Tb(e)?e:n.get(e.id),a=i.parentId?A_(i.position,i.measured,i.parentId,n,r):i.position;return d_({...i,position:a,width:i.measured?.width??i.width,height:i.measured?.height??i.height})},o=(e,t,n={replace:!1})=>{r(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&Tb(e)?e:{...r,...e}}return r}))},s=(e,t,n={replace:!1})=>{i(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&Eb(e)?e:{...r,...e}}return r}))};return{getNodes:()=>t.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=t.getState();return e.map(e=>({...e}))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:r,setEdges:i,addNodes:e=>{let t=Array.isArray(e)?e:[e];n.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];n.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:n=[],transform:r}=t.getState(),[i,a,o]=r;return{nodes:e.map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:i,y:a,zoom:o}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{let{nodes:r,edges:i,onNodesDelete:a,onEdgesDelete:o,triggerNodeChanges:s,triggerEdgeChanges:c,onDelete:l,onBeforeDelete:u}=t.getState(),{nodes:d,edges:f}=await n_({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(Sb);o?.(f),c(e)}if(m){let e=d.map(Sb);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=g_(e),o=i?e:a(e),s=r!==void 0;return o?(r||t.getState().nodes).filter(r=>{let a=t.getState().nodeLookup.get(r.id);if(a&&!i&&(r.id===e.id||!a.internals.positionAbsolute))return!1;let c=d_(s?r:a),l=h_(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=g_(e)?e:a(e);if(!r)return!1;let i=h_(r,t);return n&&i>0||i>=t.width*t.height||i>=r.width*r.height},updateNode:o,updateNodeData:(e,t,n={replace:!1})=>{o(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},getNodesBounds:e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState();return Yg(e,{nodeLookup:n,nodeOrigin:r})},getHandleConnections:({type:e,id:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${e}${n?`-${n}`:``}`)?.values()??[]),getNodeConnections:({type:e,handleId:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${e?n?`-${e}-${n}`:`-${e}`:``}`)?.values()??[]),fitView:async e=>{let r=t.getState().fitViewResolver??M_();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,G.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var Ib=e=>e.selected,Lb=typeof window<`u`?window:void 0;function Rb({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=Ly(),{deleteElements:r}=Fb(),i=db(e,{actInsideInputWithModifier:!1}),a=db(t,{target:Lb});(0,G.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(Ib),edges:e.filter(Ib)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,G.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function zb(e){let t=Ly();(0,G.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=F_(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,Ng.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener(`resize`,n);let t=new ResizeObserver(()=>n());return t.observe(e.current),()=>{window.removeEventListener(`resize`,n),t&&e.current&&t.unobserve(e.current)}}},[])}var Bb={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},Vb=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function Hb({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:a=Rg.Free,zoomOnDoubleClick:o=!0,panOnDrag:s=!0,defaultViewport:c,translateExtent:l,minZoom:u,maxZoom:d,zoomActivationKeyCode:f,preventScrolling:p=!0,children:m,noWheelClassName:h,noPanClassName:g,onViewportChange:_,isControlledViewport:v,paneClickDistance:y,selectionOnDrag:b}){let x=Ly(),S=(0,G.useRef)(null),{userSelectionActive:C,lib:w,connectionInProgress:T}=$(Vb,My),E=db(f),D=(0,G.useRef)();zb(S);let O=(0,G.useCallback)(e=>{_?.({x:e[0],y:e[1],zoom:e[2]}),v||x.setState({transform:e})},[_,v]);return(0,G.useEffect)(()=>{if(S.current){D.current=oy({domNode:S.current,minZoom:u,maxZoom:d,translateExtent:l,viewport:c,onDraggingChange:e=>x.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=x.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=x.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=x.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=D.current.getViewport();return x.setState({panZoom:D.current,transform:[e,t,n],domNode:S.current.closest(`.react-flow`)}),()=>{D.current?.destroy()}}},[]),(0,G.useEffect)(()=>{D.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:a,zoomOnDoubleClick:o,panOnDrag:s,zoomActivationKeyPressed:E,preventScrolling:p,noPanClassName:g,userSelectionActive:C,noWheelClassName:h,lib:w,onTransformChange:O,connectionInProgress:T,selectionOnDrag:b,paneClickDistance:y})},[e,t,n,r,i,a,o,s,E,p,g,C,h,w,O,T,b,y]),(0,X.jsx)(`div`,{className:`react-flow__renderer`,ref:S,style:Bb,children:m})}var Ub=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Wb(){let{userSelectionActive:e,userSelectionRect:t}=$(Ub,My);return e&&t?(0,X.jsx)(`div`,{className:`react-flow__selection react-flow__container`,style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}var Gb=(e,t)=>n=>{n.target===t.current&&e?.(n)},Kb=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function qb({isSelecting:e,selectionKeyPressed:t,selectionMode:n=zg.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:a,selectionOnDrag:o,onSelectionStart:s,onSelectionEnd:c,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:f,onPaneMouseMove:p,onPaneMouseLeave:m,children:h}){let g=(0,G.useRef)(0),_=Ly(),{userSelectionActive:v,elementsSelectable:y,dragging:b,panBy:x,autoPanSpeed:S}=$(Kb,My),C=y&&(e||v),w=(0,G.useRef)(null),T=(0,G.useRef)(),E=(0,G.useRef)(new Set),D=(0,G.useRef)(new Set),O=(0,G.useRef)(!1),k=(0,G.useRef)(!1),A=(0,G.useRef)({x:0,y:0}),j=(0,G.useRef)(!1),M=e=>{if(k.current||O.current||_.getState().connection.inProgress){k.current=!1,O.current=!1;return}l?.(e),_.getState().resetSelectedElements(),_.setState({nodesSelectionActive:!1})},ee=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}u?.(e)},te=d?e=>d(e):void 0,ne=e=>{k.current&&=(e.stopPropagation(),!1)},N=n=>{let{domNode:r,transform:i}=_.getState();if(T.current=r?.getBoundingClientRect(),!T.current)return;let a=n.target===w.current;if(!a&&n.target.closest(`.nokey`)||!e||!(o&&a||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),k.current=!1;let{x:s,y:c}=B_(n.nativeEvent,T.current),l=b_({x:s,y:c},i);_.setState({userSelectionRect:{width:0,height:0,startX:l.x,startY:l.y,x:s,y:c}}),a||(n.stopPropagation(),n.preventDefault())};function P(e,t){let{userSelectionRect:r}=_.getState();if(!r)return;let{transform:i,nodeLookup:a,edgeLookup:o,connectionLookup:s,triggerNodeChanges:c,triggerEdgeChanges:l,defaultEdgeOptions:u}=_.getState(),d={x:r.startX,y:r.startY},{x:f,y:p}=x_(d,i),m={startX:d.x,startY:d.y,x:e<f?e:f,y:t<p?t:p,width:Math.abs(e-f),height:Math.abs(t-p)},h=E.current,g=D.current;E.current=new Set(Zg(a,m,i,n===zg.Partial,!0).map(e=>e.id)),D.current=new Set;let v=u?.selectable??!0;for(let e of E.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=o.get(e);t&&(t.selectable??v)&&D.current.add(e)}}j_(h,E.current)||c(bb(a,E.current,!0)),j_(g,D.current)||l(bb(o,D.current)),_.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}function re(){if(!i||!T.current)return;let[e,t]=s_(A.current,T.current,S);x({x:e,y:t}).then(e=>{if(!k.current||!e){g.current=requestAnimationFrame(re);return}let{x:t,y:n}=A.current;P(t,n),g.current=requestAnimationFrame(re)})}let F=()=>{cancelAnimationFrame(g.current),g.current=0,j.current=!1};return(0,G.useEffect)(()=>()=>F(),[]),(0,X.jsxs)(`div`,{className:Ju([`react-flow__pane`,{draggable:r===!0||Array.isArray(r)&&r.includes(0),dragging:b,selection:e}]),onClick:C?void 0:Gb(M,w),onContextMenu:Gb(ee,w),onWheel:Gb(te,w),onPointerEnter:C?void 0:f,onPointerMove:C?e=>{let{userSelectionRect:n,transform:r,resetSelectedElements:i}=_.getState();if(!T.current||!n)return;let{x:o,y:c}=B_(e.nativeEvent,T.current);A.current={x:o,y:c};let l=x_({x:n.startX,y:n.startY},r);if(!k.current){let n=t?0:a;if(Math.hypot(o-l.x,c-l.y)<=n)return;i(),s?.(e)}k.current=!0,j.current||=(re(),!0),P(o,c)}:p,onPointerUp:e=>{if(!C){e.target===w.current&&_.getState().connection.inProgress&&(O.current=!0);return}e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!v&&e.target===w.current&&_.getState().userSelectionRect&&M?.(e),_.setState({userSelectionActive:!1,userSelectionRect:null}),k.current&&(c?.(e),_.setState({nodesSelectionActive:E.current.size>0})),F())},onPointerCancel:C?e=>{e.target?.releasePointerCapture?.(e.pointerId),F()}:void 0,onPointerDownCapture:C?N:void 0,onClickCapture:C?ne:void 0,onPointerLeave:m,ref:w,style:Bb,children:[h,(0,X.jsx)(Wb,{})]})}function Jb({id:e,store:t,unselect:n=!1,nodeRef:r}){let{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:o,nodeLookup:s,onError:c}=t.getState(),l=s.get(e);if(!l){c?.(`012`,Ng.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function Yb({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=Ly(),[c,l]=(0,G.useState)(!1),u=(0,G.useRef)();return(0,G.useEffect)(()=>{if(!t)return u.current=Fv({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{Jb({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}}),()=>{u.current?.destroy(),u.current=void 0}},[t,s,e]),(0,G.useEffect)(()=>{t||!e.current||!u.current||u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:o})},[n,r,t,a,e,i,o]),c}var Xb=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function Zb(){let e=Ly();return(0,G.useCallback)(t=>{let{nodeExtent:n,snapToGrid:r,snapGrid:i,nodesDraggable:a,onError:o,updateNodePositions:s,nodeLookup:c,nodeOrigin:l}=e.getState(),u=new Map,d=Xb(a),f=r?i[0]:5,p=r?i[1]:5,m=t.direction.x*f*t.factor,h=t.direction.y*p*t.factor;for(let[,e]of c){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+m,y:e.internals.positionAbsolute.y+h};r&&(t=y_(t,i));let{position:a,positionAbsolute:s}=t_({nodeId:e.id,nextPosition:t,nodeLookup:c,nodeExtent:n,nodeOrigin:l,onError:o});e.position=a,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}var Qb=(0,G.createContext)(null),$b=Qb.Provider;Qb.Consumer;var ex=()=>(0,G.useContext)(Qb),tx=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),nx=(0,G.createContext)(null);function rx({children:e}){let t=$(tx,My);return(0,X.jsx)(nx.Provider,{value:t,children:e})}function ix(){let e=(0,G.useContext)(nx);if(!e)throw Error(`useHandleConfig must be used within a HandleConfigProvider`);return e}var ax={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},ox=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o;if(!s&&!i)return ax;let u=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===t&&s?.type===n,connectingTo:u,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:a===Lg.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function sx({type:e=`source`,position:t=Q.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:a=!0,id:o,onConnect:s,children:c,className:l,onMouseDown:u,onTouchStart:d,...f},p){let m=o||null,h=e===`target`,g=Ly(),_=ex(),{connectOnClick:v,noPanClassName:y,rfId:b}=ix(),{connectingFrom:x,connectingTo:S,clickConnecting:C,isPossibleEndHandle:w,connectionInProcess:T,clickConnectionInProcess:E,valid:D}=$(ox(_,m,e),My);_||g.getState().onError?.(`010`,Ng.error010());let O=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=g.getState(),i={...t,...e};if(r){let{edges:e,setEdges:t,onError:n}=g.getState();t(wb(i,e,{onError:n}))}n?.(i),s?.(i)},k=e=>{if(!_)return;let t=z_(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();Gv.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:h,handleId:m,nodeId:_,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:O,isValidConnection:n||((...e)=>g.getState().isValidConnection?.(...e)??!0),getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):d?.(e)};return(0,X.jsx)(`div`,{"data-handleid":m,"data-nodeid":_,"data-handlepos":t,"data-id":`${b}-${_}-${m}-${e}`,className:Ju([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:C,connectingfrom:x,connectingto:S,valid:D,connectionindicator:r&&(!T||w)&&(T||E?a:i)}]),onMouseDown:k,onTouchStart:k,onClick:v?t=>{let{onClickConnectStart:r,onClickConnectEnd:a,connectionClickStartHandle:o,connectionMode:s,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:f}=g.getState();if(!_||!o&&!i)return;if(!o){r?.(t.nativeEvent,{nodeId:_,handleId:m,handleType:e}),g.setState({connectionClickStartHandle:{nodeId:_,type:e,id:m}});return}let p=I_(t.target),h=n||c,{connection:v,isValid:y}=Gv.isValid(t.nativeEvent,{handle:{nodeId:_,id:m,type:e},connectionMode:s,fromNodeId:o.nodeId,fromHandleId:o.id||null,fromType:o.type,isValidConnection:h,flowId:u,doc:p,lib:l,nodeLookup:d});y&&v&&O(v);let b=structuredClone(f);delete b.inProgress,b.toPosition=b.toHandle?b.toHandle.position:null,a?.(t,b),g.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:c})}var cx=(0,G.memo)(Db(sx));function lx({data:e,isConnectable:t,sourcePosition:n=Q.Bottom}){return(0,X.jsxs)(X.Fragment,{children:[e?.label,(0,X.jsx)(cx,{type:`source`,position:n,isConnectable:t})]})}function ux({data:e,isConnectable:t,targetPosition:n=Q.Top,sourcePosition:r=Q.Bottom}){return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(cx,{type:`target`,position:n,isConnectable:t}),e?.label,(0,X.jsx)(cx,{type:`source`,position:r,isConnectable:t})]})}function dx(){return null}function fx({data:e,isConnectable:t,targetPosition:n=Q.Top}){return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(cx,{type:`target`,position:n,isConnectable:t}),e?.label]})}var px={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},mx={input:lx,default:ux,output:fx,group:dx};function hx(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}var gx=e=>{let{width:t,height:n,x:r,y:i}=Xg(e.nodeLookup,{filter:e=>!!e.selected});return{width:__(t)?t:null,height:__(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function _x({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=Ly(),{width:i,height:a,transformString:o,userSelectionActive:s}=$(gx,My),c=Zb(),l=(0,G.useRef)(null);(0,G.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(Yb({nodeRef:l,disabled:!u}),!u)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,X.jsx)(`div`,{className:Ju([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,X.jsx)(`div`,{ref:l,className:`react-flow__nodesselection-rect`,onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(px,e.key)&&(e.preventDefault(),c({direction:px[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var vx=typeof window<`u`?window:void 0,yx=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function bx({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:m,panActivationKeyCode:h,zoomActivationKeyCode:g,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:b,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:w,autoPanOnSelection:T,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,preventScrolling:A,onSelectionContextMenu:j,noWheelClassName:M,noPanClassName:ee,disableKeyboardA11y:te,onViewportChange:ne,isControlledViewport:N}){let{nodesSelectionActive:P,userSelectionActive:re}=$(yx,My),F=db(l,{target:vx}),I=db(h,{target:vx}),ie=I||w,L=I||b,R=u&&ie!==!0,ae=F||re||R;return Rb({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,X.jsx)(Hb,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:L,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:!F&&ie,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,zoomActivationKeyCode:g,preventScrolling:A,noWheelClassName:M,noPanClassName:ee,onViewportChange:ne,isControlledViewport:N,paneClickDistance:s,selectionOnDrag:R,children:(0,X.jsxs)(qb,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:ie,autoPanOnSelection:T,isSelecting:!!ae,selectionMode:d,selectionKeyPressed:F,paneClickDistance:s,selectionOnDrag:R,children:[e,P&&(0,X.jsx)(_x,{onSelectionContextMenu:j,noPanClassName:ee,disableKeyboardA11y:te})]})})}bx.displayName=`FlowRenderer`;var xx=(0,G.memo)(bx),Sx=e=>t=>e?Zg(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(e=>e.id):Array.from(t.nodeLookup.keys());function Cx(e){return $((0,G.useCallback)(Sx(e),[e]),My)}var wx=e=>e.updateNodeInternals;function Tx(){let e=$(wx),[t]=(0,G.useState)(()=>typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute(`data-id`);n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,G.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function Ex({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=Ly(),a=(0,G.useRef)(null),o=(0,G.useRef)(null),s=(0,G.useRef)(e.sourcePosition),c=(0,G.useRef)(e.targetPosition),l=(0,G.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,G.useEffect)(()=>{a.current&&!e.hidden&&(!u||o.current!==a.current)&&(o.current&&r?.unobserve(o.current),r?.observe(a.current),o.current=a.current)},[u,e.hidden]),(0,G.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,G.useEffect)(()=>{if(a.current){let n=l.current!==t,r=s.current!==e.sourcePosition,o=c.current!==e.targetPosition;(n||r||o)&&(l.current=t,s.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}function Dx({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:a,onDoubleClick:o,nodesDraggable:s,elementsSelectable:c,nodesConnectable:l,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:m,rfId:h,nodeTypes:g,nodeClickDistance:_,onError:v}){let{node:y,internals:b,isParent:x}=$(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},My),S=y.type||`default`,C=g?.[S]||mx[S];C===void 0&&(v?.(`003`,Ng.error003(S)),S=`default`,C=g?.default||mx.default);let w=!!(y.draggable||s&&y.draggable===void 0),T=!!(y.selectable||c&&y.selectable===void 0),E=!!(y.connectable||l&&y.connectable===void 0),D=!!(y.focusable||u&&y.focusable===void 0),O=Ly(),k=k_(y),A=Ex({node:y,nodeType:S,hasDimensions:k,resizeObserver:d}),j=Yb({nodeRef:A,disabled:y.hidden||!w,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:T,nodeClickDistance:_}),M=Zb();if(y.hidden)return null;let ee=O_(y),te=hx(y),ne=T||w||t||n||r||i,N=n?e=>n(e,{...b.userNode}):void 0,P=r?e=>r(e,{...b.userNode}):void 0,re=i?e=>i(e,{...b.userNode}):void 0,F=a?e=>a(e,{...b.userNode}):void 0,I=o?e=>o(e,{...b.userNode}):void 0,ie=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=O.getState();T&&(!r||!w||i>0)&&Jb({id:e,store:O,nodeRef:A}),t&&t(n,{...b.userNode})},L=t=>{if(!(R_(t.nativeEvent)||m)){if(Fg.includes(t.key)&&T){let n=t.key===`Escape`;Jb({id:e,store:O,unselect:n,nodeRef:A})}else if(w&&y.selected&&Object.prototype.hasOwnProperty.call(px,t.key)){t.preventDefault();let{ariaLabelConfig:e}=O.getState();O.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),M({direction:px[t.key],factor:t.shiftKey?4:1})}}},R=()=>{if(m||!A.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=O.getState();i&&(Zg(new Map([[e,y]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(y.position.x+ee.width/2,y.position.y+ee.height/2,{zoom:t[2]}))};return(0,X.jsx)(`div`,{className:Ju([`react-flow__node`,`react-flow__node-${S}`,{[p]:w},y.className,{selected:y.selected,selectable:T,parent:x,draggable:w,dragging:j}]),ref:A,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:ne?`all`:`none`,visibility:k?`visible`:`hidden`,...y.style,...te},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:N,onMouseMove:P,onMouseLeave:re,onContextMenu:F,onClick:ie,onDoubleClick:I,onKeyDown:D?L:void 0,tabIndex:D?0:void 0,onFocus:D?R:void 0,role:y.ariaRole??(D?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${By}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,X.jsx)($b,{value:e,children:(0,X.jsx)(C,{id:e,data:y.data,type:S,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:y.selected??!1,selectable:T,draggable:w,deletable:y.deletable??!0,isConnectable:E,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:j,dragHandle:y.dragHandle,zIndex:b.z,parentId:y.parentId,...ee})})})}var Ox=(0,G.memo)(Dx),kx=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Ax(e){let{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=$(kx,My),a=Cx(e.onlyRenderVisibleElements),o=Tx();return(0,X.jsx)(`div`,{className:`react-flow__nodes`,style:Bb,children:a.map(a=>(0,X.jsx)(Ox,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:o,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},a))})}Ax.displayName=`NodeRenderer`;var jx=(0,G.memo)(Ax);function Mx(e){return $((0,G.useCallback)(t=>{if(!e)return t.edges.map(e=>e.id);let n=[];if(t.width&&t.height)for(let e of t.edges){let r=t.nodeLookup.get(e.source),i=t.nodeLookup.get(e.target);r&&i&&J_({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),My)}var Nx=({color:e=`none`,strokeWidth:t=1})=>(0,X.jsx)(`polyline`,{className:`arrow`,style:{strokeWidth:t,...e&&{stroke:e}},strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`}),Px=({color:e=`none`,strokeWidth:t=1})=>(0,X.jsx)(`polyline`,{className:`arrowclosed`,style:{strokeWidth:t,...e&&{stroke:e,fill:e}},strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`}),Fx={[Hg.Arrow]:Nx,[Hg.ArrowClosed]:Px};function Ix(e){let t=Ly();return(0,G.useMemo)(()=>Object.prototype.hasOwnProperty.call(Fx,e)?Fx[e]:(t.getState().onError?.(`009`,Ng.error009(e)),null),[e])}var Lx=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:a=`strokeWidth`,strokeWidth:o,orient:s=`auto-start-reverse`})=>{let c=Ix(t);return c?(0,X.jsx)(`marker`,{className:`react-flow__arrowhead`,id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:`-10 -10 20 20`,markerUnits:a,orient:s,refX:`0`,refY:`0`,children:(0,X.jsx)(c,{color:n,strokeWidth:o})}):null},Rx=({defaultColor:e,rfId:t})=>{let n=$(e=>e.edges),r=$(e=>e.defaultEdgeOptions),i=(0,G.useMemo)(()=>dv(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,X.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,X.jsx)(`defs`,{children:i.map(e=>(0,X.jsx)(Lx,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};Rx.displayName=`MarkerDefinitions`;var zx=(0,G.memo)(Rx);function Bx({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:a,labelBgPadding:o=[2,4],labelBgBorderRadius:s=2,children:c,className:l,...u}){let[d,f]=(0,G.useState)({x:1,y:0,width:0,height:0}),p=Ju([`react-flow__edge-textwrapper`,l]),m=(0,G.useRef)(null);return(0,G.useEffect)(()=>{if(m.current){let e=m.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n?(0,X.jsxs)(`g`,{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?`visible`:`hidden`,...u,children:[i&&(0,X.jsx)(`rect`,{width:d.width+2*o[0],x:-o[0],y:-o[1],height:d.height+2*o[1],className:`react-flow__edge-textbg`,style:a,rx:s,ry:s}),(0,X.jsx)(`text`,{className:`react-flow__edge-text`,y:d.height/2,dy:`0.3em`,ref:m,style:r,children:n}),c]}):null}Bx.displayName=`EdgeText`;var Vx=(0,G.memo)(Bx);function Hx({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`path`,{...u,d:e,fill:`none`,className:Ju([`react-flow__edge-path`,u.className])}),l?(0,X.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&__(t)&&__(n)?(0,X.jsx)(Vx,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function Ux({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===Q.Left||e===Q.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function Wx({sourceX:e,sourceY:t,sourcePosition:n=Q.Bottom,targetX:r,targetY:i,targetPosition:a=Q.Top}){let[o,s]=Ux({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=Ux({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=H_({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:s,targetControlX:c,targetControlY:l});return[`M${e},${t} C${o},${s} ${c},${l} ${r},${i}`,u,d,f,p]}function Gx(e){return(0,G.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})=>{let[v,y,b]=Wx({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s});return(0,X.jsx)(Hx,{id:e.isInternal?void 0:t,path:v,labelX:y,labelY:b,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})})}var Kx=Gx({isInternal:!1}),qx=Gx({isInternal:!0});Kx.displayName=`SimpleBezierEdge`,qx.displayName=`SimpleBezierEdgeInternal`;function Jx(e){return(0,G.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=Q.Bottom,targetPosition:m=Q.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=iv({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition});return(0,X.jsx)(Hx,{id:e.isInternal?void 0:t,path:y,labelX:b,labelY:x,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var Yx=Jx({isInternal:!1}),Xx=Jx({isInternal:!0});Yx.displayName=`SmoothStepEdge`,Xx.displayName=`SmoothStepEdgeInternal`;function Zx(e){return(0,G.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,X.jsx)(Yx,{...n,id:r,pathOptions:(0,G.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var Qx=Zx({isInternal:!1}),$x=Zx({isInternal:!0});Qx.displayName=`StepEdge`,$x.displayName=`StepEdgeInternal`;function eS(e){return(0,G.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})=>{let[g,_,v]=Q_({sourceX:n,sourceY:r,targetX:i,targetY:a});return(0,X.jsx)(Hx,{id:e.isInternal?void 0:t,path:g,labelX:_,labelY:v,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})})}var tS=eS({isInternal:!1}),nS=eS({isInternal:!0});tS.displayName=`StraightEdge`,nS.displayName=`StraightEdgeInternal`;function rS(e){return(0,G.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=Q.Bottom,targetPosition:s=Q.Top,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=G_({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature});return(0,X.jsx)(Hx,{id:e.isInternal?void 0:t,path:y,labelX:b,labelY:x,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var iS=rS({isInternal:!1}),aS=rS({isInternal:!0});iS.displayName=`BezierEdge`,aS.displayName=`BezierEdgeInternal`;var oS={default:aS,straight:nS,step:$x,smoothstep:Xx,simplebezier:qx},sS={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},cS=(e,t,n)=>n===Q.Left?e-t:n===Q.Right?e+t:e,lS=(e,t,n)=>n===Q.Top?e-t:n===Q.Bottom?e+t:e,uS=`react-flow__edgeupdater`;function dS({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,X.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:Ju([uS,`${uS}-${s}`]),cx:cS(t,r,e),cy:lS(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function fS({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:a,targetY:o,sourcePosition:s,targetPosition:c,onReconnect:l,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){let m=Ly(),h=(e,t)=>{if(e.button!==0)return;let{autoPanOnConnect:r,domNode:i,connectionMode:a,connectionRadius:o,lib:s,onConnectStart:c,cancelConnection:p,nodeLookup:h,rfId:g,panBy:_,updateConnection:v}=m.getState(),y=t.type===`target`;Gv.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:o,domNode:i,handleId:t.id,nodeId:t.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:t.type,lib:s,flowId:g,cancelConnection:p,panBy:_,isValidConnection:(...e)=>m.getState().isValidConnection?.(...e)??!0,onConnect:e=>l?.(n,e),onConnectStart:(r,i)=>{f(!0),u?.(e,n,t.type),c?.(r,i)},onConnectEnd:(...e)=>m.getState().onConnectEnd?.(...e),onReconnectEnd:(e,r)=>{f(!1),d?.(e,n,t.type,r)},updateConnection:v,getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,dragThreshold:m.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},g=e=>h(e,{nodeId:n.target,id:n.targetHandle??null,type:`target`}),_=e=>h(e,{nodeId:n.source,id:n.sourceHandle??null,type:`source`}),v=()=>p(!0),y=()=>p(!1);return(0,X.jsxs)(X.Fragment,{children:[(e===!0||e===`source`)&&(0,X.jsx)(dS,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,X.jsx)(dS,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function pS({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,rfId:m,edgeTypes:h,noPanClassName:g,onError:_,disableKeyboardA11y:v}){let y=$(t=>t.edgeLookup.get(e)),b=$(e=>e.defaultEdgeOptions);y=b?{...b,...y}:y;let x=y.type||`default`,S=h?.[x]||oS[x];S===void 0&&(_?.(`011`,Ng.error011(x)),x=`default`,S=h?.default||oS.default);let C=!!(y.focusable||t&&y.focusable===void 0),w=d!==void 0&&(y.reconnectable||n&&y.reconnectable===void 0),T=!!(y.selectable||r&&y.selectable===void 0),E=(0,G.useRef)(null),[D,O]=(0,G.useState)(!1),[k,A]=(0,G.useState)(!1),j=Ly(),{zIndex:M=y.zIndex,sourceX:ee,sourceY:te,targetX:ne,targetY:N,sourcePosition:P,targetPosition:re}=$((0,G.useCallback)(t=>{let n=t.nodeLookup.get(y.source),r=t.nodeLookup.get(y.target);if(!n||!r)return sS;let i=ov({id:e,sourceNode:n,targetNode:r,sourceHandle:y.sourceHandle||null,targetHandle:y.targetHandle||null,connectionMode:t.connectionMode,onError:_}),a=q_({selected:y.selected,zIndex:y.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...i||sS,zIndex:a}},[y.source,y.target,y.sourceHandle,y.targetHandle,y.selected,y.zIndex]),My),F=(0,G.useMemo)(()=>y.markerStart?`url('#${uv(y.markerStart,m)}')`:void 0,[y.markerStart,m]),I=(0,G.useMemo)(()=>y.markerEnd?`url('#${uv(y.markerEnd,m)}')`:void 0,[y.markerEnd,m]);if(y.hidden||ee===null||te===null||ne===null||N===null)return null;let ie=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=j.getState();T&&(j.setState({nodesSelectionActive:!1}),y.selected&&a?(r({nodes:[],edges:[y]}),E.current?.blur()):n([e])),i&&i(t,y)},L=a?e=>{a(e,{...y})}:void 0,R=o?e=>{o(e,{...y})}:void 0,ae=s?e=>{s(e,{...y})}:void 0,oe=c?e=>{c(e,{...y})}:void 0,se=l?e=>{l(e,{...y})}:void 0;return(0,X.jsx)(`svg`,{style:{zIndex:M},children:(0,X.jsxs)(`g`,{className:Ju([`react-flow__edge`,`react-flow__edge-${x}`,y.className,g,{selected:y.selected,animated:y.animated,inactive:!T&&!i,updating:D,selectable:T}]),onClick:ie,onDoubleClick:L,onContextMenu:R,onMouseEnter:ae,onMouseMove:oe,onMouseLeave:se,onKeyDown:C?t=>{if(!v&&Fg.includes(t.key)&&T){let{unselectNodesAndEdges:n,addSelectedEdges:r}=j.getState();t.key===`Escape`?(E.current?.blur(),n({edges:[y]})):r([e])}}:void 0,tabIndex:C?0:void 0,role:y.ariaRole??(C?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":y.ariaLabel===null?void 0:y.ariaLabel||`Edge from ${y.source} to ${y.target}`,"aria-describedby":C?`${Vy}-${m}`:void 0,ref:E,...y.domAttributes,children:[!k&&(0,X.jsx)(S,{id:e,source:y.source,target:y.target,type:y.type,selected:y.selected,animated:y.animated,selectable:T,deletable:y.deletable??!0,label:y.label,labelStyle:y.labelStyle,labelShowBg:y.labelShowBg,labelBgStyle:y.labelBgStyle,labelBgPadding:y.labelBgPadding,labelBgBorderRadius:y.labelBgBorderRadius,sourceX:ee,sourceY:te,targetX:ne,targetY:N,sourcePosition:P,targetPosition:re,data:y.data,style:y.style,sourceHandleId:y.sourceHandle,targetHandleId:y.targetHandle,markerStart:F,markerEnd:I,pathOptions:`pathOptions`in y?y.pathOptions:void 0,interactionWidth:y.interactionWidth}),w&&(0,X.jsx)(fS,{edge:y,isReconnectable:w,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:ee,sourceY:te,targetX:ne,targetY:N,sourcePosition:P,targetPosition:re,setUpdateHover:O,setReconnecting:A})]})})}var mS=(0,G.memo)(pS),hS=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function gS({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:a,onEdgeContextMenu:o,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:h}){let{edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,onError:y}=$(hS,My),b=Mx(t);return(0,X.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,X.jsx)(zx,{defaultColor:e,rfId:n}),b.map(e=>(0,X.jsx)(mS,{id:e,edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,noPanClassName:i,onReconnect:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:h},e))]})}gS.displayName=`EdgeRenderer`;var _S=(0,G.memo)(gS),vS=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function yS({children:e}){let t=Ly(),n=(0,G.useRef)(null),[r]=(0,G.useState)(()=>t.getState().transform);return Ob(()=>{let e=null,r=()=>{let r=t.getState().transform;e&&r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]||(e=r,n.current&&(n.current.style.transform=vS(r)))};return r(),t.subscribe(r)},[t]),(0,X.jsx)(`div`,{ref:n,className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:vS(r)},children:e})}function bS(e){let t=Fb(),n=(0,G.useRef)(!1);(0,G.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var xS=e=>e.panZoom?.syncViewport;function SS(e){let t=$(xS),n=Ly();return(0,G.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function CS(e){return e.connection.inProgress?{...e.connection,to:b_(e.connection.to,e.transform)}:{...e.connection}}function wS(e){return e?t=>e(CS(t)):CS}function TS(e){return $(wS(e),My)}var ES=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function DS({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=$(ES,My);return a&&i&&c?(0,X.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,X.jsx)(`g`,{className:Ju([`react-flow__connection`,Wg(s)]),children:(0,X.jsx)(OS,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var OS=({style:e,type:t=Vg.Bezier,CustomComponent:n,isValid:r})=>{let{inProgress:i,from:a,fromNode:o,fromHandle:s,fromPosition:c,to:l,toNode:u,toHandle:d,toPosition:f,pointer:p}=TS();if(!i)return;if(n)return(0,X.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:s,fromX:a.x,fromY:a.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:f,connectionStatus:Wg(r),toNode:u,toHandle:d,pointer:p});let m=``,h={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:f};switch(t){case Vg.Bezier:[m]=G_(h);break;case Vg.SimpleBezier:[m]=Wx(h);break;case Vg.Step:[m]=iv({...h,borderRadius:0});break;case Vg.SmoothStep:[m]=iv(h);break;default:[m]=Q_(h)}return(0,X.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};OS.displayName=`ConnectionLine`;var kS={};function AS(e=kS){(0,G.useRef)(e),Ly(),(0,G.useEffect)(()=>{},[e])}function jS(){Ly(),(0,G.useRef)(!1),(0,G.useEffect)(()=>{},[])}function MS({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:a,onEdgeDoubleClick:o,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:h,connectionLineComponent:g,connectionLineContainerStyle:_,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,deleteKeyCode:w,onlyRenderVisibleElements:T,elementsSelectable:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,defaultMarkerColor:M,zoomOnScroll:ee,zoomOnPinch:te,panOnScroll:ne,panOnScrollSpeed:N,panOnScrollMode:P,zoomOnDoubleClick:re,panOnDrag:F,autoPanOnSelection:I,onPaneClick:ie,onPaneMouseEnter:L,onPaneMouseMove:R,onPaneMouseLeave:ae,onPaneScroll:oe,onPaneContextMenu:se,paneClickDistance:ce,nodeClickDistance:le,onEdgeContextMenu:ue,onEdgeMouseEnter:de,onEdgeMouseMove:fe,onEdgeMouseLeave:pe,reconnectRadius:me,onReconnect:he,onReconnectStart:ge,onReconnectEnd:_e,noDragClassName:ve,noWheelClassName:ye,noPanClassName:be,disableKeyboardA11y:xe,nodeExtent:Se,rfId:Ce,viewport:we,onViewportChange:Te,nodesDraggable:Ee}){return AS(e),AS(t),jS(),bS(n),SS(we),(0,X.jsx)(xx,{onPaneClick:ie,onPaneMouseEnter:L,onPaneMouseMove:R,onPaneMouseLeave:ae,onPaneContextMenu:se,onPaneScroll:oe,paneClickDistance:ce,deleteKeyCode:w,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,elementsSelectable:E,zoomOnScroll:ee,zoomOnPinch:te,zoomOnDoubleClick:re,panOnScroll:ne,panOnScrollSpeed:N,panOnScrollMode:P,panOnDrag:F,autoPanOnSelection:I,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,onSelectionContextMenu:d,preventScrolling:j,noDragClassName:ve,noWheelClassName:ye,noPanClassName:be,disableKeyboardA11y:xe,onViewportChange:Te,isControlledViewport:!!we,children:(0,X.jsxs)(yS,{children:[(0,X.jsx)(_S,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:he,onReconnectStart:ge,onReconnectEnd:_e,onlyRenderVisibleElements:T,onEdgeContextMenu:ue,onEdgeMouseEnter:de,onEdgeMouseMove:fe,onEdgeMouseLeave:pe,reconnectRadius:me,defaultMarkerColor:M,noPanClassName:be,disableKeyboardA11y:xe,rfId:Ce}),(0,X.jsx)(DS,{style:h,type:m,component:g,containerStyle:_}),(0,X.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,X.jsx)(jx,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:le,onlyRenderVisibleElements:T,noPanClassName:be,noDragClassName:ve,disableKeyboardA11y:xe,nodeExtent:Se,rfId:Ce,nodesDraggable:Ee}),(0,X.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}MS.displayName=`GraphView`;var NS=(0,G.memo)(MS),PS=v_(`React Flow`,`https://reactflow.dev/`),FS=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c=.5,maxZoom:l=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f=`basic`}={})=>{let p=new Map,m=new Map,h=new Map,g=new Map,_=r??t??[],v=n??e??[],y=u??[0,0],b=d??Pg;kv(h,g,_);let{nodesInitialized:x}=bv(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=T_(Xg(p,{filter:e=>!!((e.width||e.initialWidth)&&(e.height||e.initialHeight))}),i,a,c,l,s?.padding??.1);S=[e,t,n]}return{rfId:`1`,width:i??0,height:a??0,transform:S,nodes:v,nodesInitialized:x,nodeLookup:p,parentLookup:m,edges:_,edgeLookup:g,connectionLookup:h,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:Pg,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Lg.Strict,domNode:null,paneDragging:!1,noPanClassName:`nopan`,nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:s,fitViewResolver:null,connection:{...Bg},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:PS,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:Ig,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},IS=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>jy((p,m)=>{async function h(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:r,width:i,height:a,minZoom:o,maxZoom:s}=m();t&&(await e_({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...FS({nodes:e,edges:t,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:r,elevateNodesOnSelect:i,fitViewQueued:a,zIndexMode:o,nodesSelectionActive:s}=m(),{nodesInitialized:c,hasSelectedNodes:l}=bv(e,t,n,{nodeOrigin:r,nodeExtent:d,elevateNodesOnSelect:i,checkEquality:!0,zIndexMode:o}),u=s&&l;a&&c?(h(),p({nodes:e,nodesInitialized:c,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:u})):p({nodes:e,nodesInitialized:c,nodesSelectionActive:u})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();kv(t,n,e),p({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=m();t(e),p({hasDefaultNodes:!0})}if(t){let{setEdges:e}=m();e(t),p({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:r,domNode:i,nodeOrigin:a,nodeExtent:o,debug:s,fitViewQueued:c,zIndexMode:l}=m(),{changes:u,updatedInternals:d}=Ev(e,n,r,i,a,o,l);d&&(_v(n,r,{nodeOrigin:a,nodeExtent:o,zIndexMode:l}),c?(h(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),u?.length>0&&(s&&console.log(`React Flow: trigger node changes`,u),t?.(u)))},updateNodePositions:(e,t=!1)=>{let n=[],r=[],{nodeLookup:i,triggerNodeChanges:a,connection:o,updateConnection:s,onNodesChangeMiddlewareMap:c}=m();for(let[a,c]of e){let e=i.get(a),l=!!(e?.expandParent&&e?.parentId&&c?.position),u={id:a,type:`position`,position:l?{x:Math.max(0,c.position.x),y:Math.max(0,c.position.y)}:c.position,dragging:t};if(e&&o.inProgress&&o.fromNode.id===e.id){let t=cv(e,o.fromHandle,Q.Left,!0);s({...o,from:t})}l&&e.parentId&&n.push({id:a,parentId:e.parentId,rect:{...c.internals.positionAbsolute,width:c.measured.width??0,height:c.measured.height??0}}),r.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=m(),a=Tv(n,i,e,t);r.push(...a)}for(let e of c.values())r=e(r);a(r)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:r,hasDefaultNodes:i,debug:a}=m();e?.length&&(i&&n(_b(e,r)),a&&console.log(`React Flow: trigger node changes`,e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:r,hasDefaultEdges:i,debug:a}=m();e?.length&&(i&&n(vb(e,r)),a&&console.log(`React Flow: trigger edge changes`,e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){i(e.map(e=>yb(e,!0)));return}i(bb(r,new Set([...e]),!0)),a(bb(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>yb(e,!0)));return}a(bb(n,new Set([...e]))),i(bb(r,new Set,!0))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:r,nodeLookup:i,triggerNodeChanges:a,triggerEdgeChanges:o}=m(),s=e||r,c=t||n,l=[];for(let e of s){if(!e.selected)continue;let t=i.get(e.id);t&&(t.selected=!1),l.push(yb(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(yb(e.id,!1));a(l),o(u)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=m();t?.setScaleExtent([e,n]),p({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=m();t?.setScaleExtent([n,e]),p({maxZoom:e})},setTranslateExtent:e=>{m().panZoom?.setTranslateExtent(e),p({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:r,elementsSelectable:i}=m();if(!i)return;let a=t.reduce((e,t)=>t.selected?[...e,yb(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,yb(t.id,!1)]:e,[]);n(a),r(o)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:r,nodeOrigin:i,elevateNodesOnSelect:a,nodeExtent:o,zIndexMode:s}=m();e[0][0]===o[0][0]&&e[0][1]===o[0][1]&&e[1][0]===o[1][0]&&e[1][1]===o[1][1]||(bv(t,n,r,{nodeOrigin:i,nodeExtent:e,elevateNodesOnSelect:a,checkEquality:!1,zIndexMode:s}),p({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:r,panZoom:i,translateExtent:a}=m();return Dv({delta:e,panZoom:i,transform:t,translateExtent:a,width:n,height:r})},setCenter:async(e,t,n)=>{let{width:r,height:i,maxZoom:a,panZoom:o}=m();if(!o)return!1;let s=n?.zoom===void 0?a:n.zoom;return await o.setViewport({x:r/2-e*s,y:i/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{p({connection:{...Bg}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...FS()})}},Object.is);function LS({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:a,initialMinZoom:o,initialMaxZoom:s,initialFitViewOptions:c,fitView:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f,children:p}){let[m]=(0,G.useState)(()=>IS({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:l,minZoom:o,maxZoom:s,fitViewOptions:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f}));return(0,X.jsx)(Fy,{value:m,children:(0,X.jsx)(Mb,{children:(0,X.jsx)(rx,{children:p})})})}function RS({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:a,height:o,fitView:s,fitViewOptions:c,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p}){return(0,G.useContext)(Py)?(0,X.jsx)(X.Fragment,{children:e}):(0,X.jsx)(LS,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:o,fitView:s,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:e})}var zS={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function BS({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:a,edgeTypes:o,onNodeClick:s,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:b,onNodeContextMenu:x,onNodeDoubleClick:S,onNodeDragStart:C,onNodeDrag:w,onNodeDragStop:T,onNodesDelete:E,onEdgesDelete:D,onDelete:O,onSelectionChange:k,onSelectionDragStart:A,onSelectionDrag:j,onSelectionDragStop:M,onSelectionContextMenu:ee,onSelectionStart:te,onSelectionEnd:ne,onBeforeDelete:N,connectionMode:P,connectionLineType:re=Vg.Bezier,connectionLineStyle:F,connectionLineComponent:I,connectionLineContainerStyle:ie,deleteKeyCode:L=`Backspace`,selectionKeyCode:R=`Shift`,selectionOnDrag:ae=!1,selectionMode:oe=zg.Full,panActivationKeyCode:se=`Space`,multiSelectionKeyCode:ce=E_()?`Meta`:`Control`,zoomActivationKeyCode:le=E_()?`Meta`:`Control`,snapToGrid:ue,snapGrid:de,onlyRenderVisibleElements:fe=!1,selectNodesOnDrag:pe,nodesDraggable:me,autoPanOnNodeFocus:he,nodesConnectable:ge,nodesFocusable:_e,nodeOrigin:ve=nb,edgesFocusable:ye,edgesReconnectable:be,elementsSelectable:xe=!0,defaultViewport:Se=rb,minZoom:Ce=.5,maxZoom:we=2,translateExtent:Te=Pg,preventScrolling:Ee=!0,nodeExtent:De,defaultMarkerColor:Oe=`#b1b1b7`,zoomOnScroll:ke=!0,zoomOnPinch:Ae=!0,panOnScroll:je=!1,panOnScrollSpeed:Me=.5,panOnScrollMode:Ne=Rg.Free,zoomOnDoubleClick:Pe=!0,panOnDrag:Fe=!0,onPaneClick:Ie,onPaneMouseEnter:Le,onPaneMouseMove:Re,onPaneMouseLeave:ze,onPaneScroll:Be,onPaneContextMenu:Ve,paneClickDistance:He=1,nodeClickDistance:Ue=0,children:We,onReconnect:Ge,onReconnectStart:Ke,onReconnectEnd:qe,onEdgeContextMenu:Je,onEdgeDoubleClick:Ye,onEdgeMouseEnter:Xe,onEdgeMouseMove:Ze,onEdgeMouseLeave:Qe,reconnectRadius:$e=10,onNodesChange:et,onEdgesChange:tt,noDragClassName:nt=`nodrag`,noWheelClassName:rt=`nowheel`,noPanClassName:it=`nopan`,fitView:at,fitViewOptions:ot,connectOnClick:st,attributionPosition:ct,proOptions:lt,defaultEdgeOptions:ut,elevateNodesOnSelect:dt=!0,elevateEdgesOnSelect:ft=!1,disableKeyboardA11y:pt=!1,autoPanOnConnect:mt,autoPanOnNodeDrag:ht,autoPanOnSelection:gt=!0,autoPanSpeed:_t,connectionRadius:vt,isValidConnection:yt,onError:bt,style:xt,id:St,nodeDragThreshold:Ct,connectionDragThreshold:wt,viewport:Tt,onViewportChange:Et,width:Dt,height:Ot,colorMode:kt=`light`,debug:z,onScroll:At,ariaLabelConfig:jt,zIndexMode:Mt=`basic`,...Nt},Pt){let Ft=St||`1`,It=lb(kt),Lt=(0,G.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),At?.(e)},[At]);return(0,X.jsx)(`div`,{"data-testid":`rf__wrapper`,...Nt,onScroll:Lt,style:{...xt,...zS},ref:Pt,className:Ju([`react-flow`,i,It]),id:St,role:`application`,children:(0,X.jsxs)(RS,{nodes:e,edges:t,width:Dt,height:Ot,fitView:at,fitViewOptions:ot,minZoom:Ce,maxZoom:we,nodeOrigin:ve,nodeExtent:De,zIndexMode:Mt,children:[(0,X.jsx)(sb,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,nodesDraggable:me,autoPanOnNodeFocus:he,nodesConnectable:ge,nodesFocusable:_e,edgesFocusable:ye,edgesReconnectable:be,elementsSelectable:xe,elevateNodesOnSelect:dt,elevateEdgesOnSelect:ft,minZoom:Ce,maxZoom:we,nodeExtent:De,onNodesChange:et,onEdgesChange:tt,snapToGrid:ue,snapGrid:de,connectionMode:P,translateExtent:Te,connectOnClick:st,defaultEdgeOptions:ut,fitView:at,fitViewOptions:ot,onNodesDelete:E,onEdgesDelete:D,onDelete:O,onNodeDragStart:C,onNodeDrag:w,onNodeDragStop:T,onSelectionDrag:j,onSelectionDragStart:A,onSelectionDragStop:M,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:it,nodeOrigin:ve,rfId:Ft,autoPanOnConnect:mt,autoPanOnNodeDrag:ht,autoPanSpeed:_t,onError:bt,connectionRadius:vt,isValidConnection:yt,selectNodesOnDrag:pe,nodeDragThreshold:Ct,connectionDragThreshold:wt,onBeforeDelete:N,debug:z,ariaLabelConfig:jt,zIndexMode:Mt}),(0,X.jsx)(NS,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:b,onNodeContextMenu:x,onNodeDoubleClick:S,nodeTypes:a,edgeTypes:o,connectionLineType:re,connectionLineStyle:F,connectionLineComponent:I,connectionLineContainerStyle:ie,selectionKeyCode:R,selectionOnDrag:ae,selectionMode:oe,deleteKeyCode:L,multiSelectionKeyCode:ce,panActivationKeyCode:se,zoomActivationKeyCode:le,onlyRenderVisibleElements:fe,defaultViewport:Se,translateExtent:Te,minZoom:Ce,maxZoom:we,preventScrolling:Ee,zoomOnScroll:ke,zoomOnPinch:Ae,zoomOnDoubleClick:Pe,panOnScroll:je,panOnScrollSpeed:Me,panOnScrollMode:Ne,panOnDrag:Fe,autoPanOnSelection:gt,onPaneClick:Ie,onPaneMouseEnter:Le,onPaneMouseMove:Re,onPaneMouseLeave:ze,onPaneScroll:Be,onPaneContextMenu:Ve,paneClickDistance:He,nodeClickDistance:Ue,onSelectionContextMenu:ee,onSelectionStart:te,onSelectionEnd:ne,onReconnect:Ge,onReconnectStart:Ke,onReconnectEnd:qe,onEdgeContextMenu:Je,onEdgeDoubleClick:Ye,onEdgeMouseEnter:Xe,onEdgeMouseMove:Ze,onEdgeMouseLeave:Qe,reconnectRadius:$e,defaultMarkerColor:Oe,noDragClassName:nt,noWheelClassName:rt,noPanClassName:it,rfId:Ft,disableKeyboardA11y:pt,nodeExtent:De,viewport:Tt,onViewportChange:Et,nodesDraggable:me}),(0,X.jsx)(tb,{onSelectionChange:k}),We,(0,X.jsx)(Yy,{proOptions:lt,position:ct}),(0,X.jsx)(Ky,{rfId:Ft,disableKeyboardA11y:pt})]})})}var VS=Db(BS),HS=e=>e.domNode?.querySelector(`.react-flow__viewport-portal`);function US({children:e}){let t=$(HS);return t?(0,Ny.createPortal)(e,t):null}Ng.error014();function WS({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,X.jsx)(`path`,{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:Ju([`react-flow__background-pattern`,n,r])})}function GS({radius:e,className:t}){return(0,X.jsx)(`circle`,{cx:e,cy:e,r:e,className:Ju([`react-flow__background-pattern`,`dots`,t])})}var KS;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(KS||={});var qS={[KS.Dots]:1,[KS.Lines]:1,[KS.Cross]:6},JS=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function YS({id:e,variant:t=KS.Dots,gap:n=20,size:r,lineWidth:i=1,offset:a=0,color:o,bgColor:s,style:c,className:l,patternClassName:u}){let d=(0,G.useRef)(null),{transform:f,patternId:p}=$(JS,My),m=r||qS[t],h=t===KS.Dots,g=t===KS.Cross,_=Array.isArray(n)?n:[n,n],v=[_[0]*f[2]||1,_[1]*f[2]||1],y=m*f[2],b=Array.isArray(a)?a:[a,a],x=g?[y,y]:v,S=[b[0]*f[2]||1+x[0]/2,b[1]*f[2]||1+x[1]/2],C=`${p}${e||``}`;return(0,X.jsxs)(`svg`,{className:Ju([`react-flow__background`,l]),style:{...c,...Bb,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,X.jsx)(`pattern`,{id:C,x:f[0]%v[0],y:f[1]%v[1],width:v[0],height:v[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${S[0]},-${S[1]})`,children:h?(0,X.jsx)(GS,{radius:y/2,className:u}):(0,X.jsx)(WS,{dimensions:x,lineWidth:i,variant:t,className:u})}),(0,X.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${C})`})]})}YS.displayName=`Background`;var XS=(0,G.memo)(YS);function ZS(){return(0,X.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,X.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function QS(){return(0,X.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,X.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function $S(){return(0,X.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,X.jsx)(`path`,{d:`M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z`})})}function eC(){return(0,X.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,X.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z`})})}function tC(){return(0,X.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,X.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z`})})}function nC({children:e,className:t,...n}){return(0,X.jsx)(`button`,{type:`button`,className:Ju([`react-flow__controls-button`,t]),...n,children:e})}var rC=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function iC({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:a,onZoomOut:o,onFitView:s,onInteractiveChange:c,className:l,children:u,position:d=`bottom-left`,orientation:f=`vertical`,"aria-label":p}){let m=Ly(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=$(rC,My),{zoomIn:y,zoomOut:b,fitView:x}=Fb();return(0,X.jsxs)(qy,{className:Ju([`react-flow__controls`,f===`horizontal`?`horizontal`:`vertical`,l]),position:d,style:e,"data-testid":`rf__controls`,"aria-label":p??v[`controls.ariaLabel`],children:[t&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(nC,{onClick:()=>{y(),a?.()},className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,X.jsx)(ZS,{})}),(0,X.jsx)(nC,{onClick:()=>{b(),o?.()},className:`react-flow__controls-zoomout`,title:v[`controls.zoomOut.ariaLabel`],"aria-label":v[`controls.zoomOut.ariaLabel`],disabled:g,children:(0,X.jsx)(QS,{})})]}),n&&(0,X.jsx)(nC,{className:`react-flow__controls-fitview`,onClick:()=>{x(i),s?.()},title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,X.jsx)($S,{})}),r&&(0,X.jsx)(nC,{className:`react-flow__controls-interactive`,onClick:()=>{m.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),c?.(!h)},title:v[`controls.interactive.ariaLabel`],"aria-label":v[`controls.interactive.ariaLabel`],children:h?(0,X.jsx)(tC,{}):(0,X.jsx)(eC,{})}),u]})}iC.displayName=`Controls`;var aC=(0,G.memo)(iC);function oC({id:e,x:t,y:n,width:r,height:i,style:a,color:o,strokeColor:s,strokeWidth:c,className:l,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){let{background:m,backgroundColor:h}=a||{},g=o||m||h;return(0,X.jsx)(`rect`,{className:Ju([`react-flow__minimap-node`,{selected:f},l]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:g,stroke:s,strokeWidth:c},shapeRendering:d,onClick:p?t=>p(t,e):void 0})}var sC=(0,G.memo)(oC),cC=e=>e.nodes.map(e=>e.id),lC=e=>e instanceof Function?e:()=>e;function uC({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=sC,onClick:o}){let s=$(cC,My),c=lC(t),l=lC(e),u=lC(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,X.jsx)(X.Fragment,{children:s.map(e=>(0,X.jsx)(fC,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function dC({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:o,NodeComponent:s,onClick:c}){let{node:l,x:u,y:d,width:f,height:p}=$(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let r=n.internals.userNode,{x:i,y:a}=n.internals.positionAbsolute,{width:o,height:s}=O_(r);return{node:r,x:i,y:a,width:o,height:s}},My);return!l||l.hidden||!k_(l)?null:(0,X.jsx)(s,{x:u,y:d,width:f,height:p,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:i,strokeColor:n(l),strokeWidth:a,shapeRendering:o,onClick:c,id:l.id})}var fC=(0,G.memo)(dC),pC=(0,G.memo)(uC),mC=200,hC=150,gC=e=>!e.hidden,_C=e=>{let t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?p_(Xg(e.nodeLookup,{filter:gC}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},vC=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,yC=(e,t)=>vC(e.viewBB,t.viewBB)&&vC(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,bC=`react-flow__minimap-desc`;function xC({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i=``,nodeBorderRadius:a=5,nodeStrokeWidth:o,nodeComponent:s,bgColor:c,maskColor:l,maskStrokeColor:u,maskStrokeWidth:d,position:f=`bottom-right`,onClick:p,onNodeClick:m,pannable:h=!1,zoomable:g=!1,ariaLabel:_,inversePan:v,zoomStep:y=1,offsetScale:b=5}){let x=Ly(),S=(0,G.useRef)(null),{boundingRect:C,viewBB:w,rfId:T,panZoom:E,translateExtent:D,flowWidth:O,flowHeight:k,ariaLabelConfig:A}=$(_C,yC),j=e?.width??mC,M=e?.height??hC,ee=C.width/j,te=C.height/M,ne=Math.max(ee,te),N=ne*j,P=ne*M,re=b*ne,F=C.x-(N-C.width)/2-re,I=C.y-(P-C.height)/2-re,ie=N+re*2,L=P+re*2,R=`${bC}-${T}`,ae=(0,G.useRef)(0),oe=(0,G.useRef)();ae.current=ne,(0,G.useEffect)(()=>{if(S.current&&E)return oe.current=Kv({domNode:S.current,panZoom:E,getTransform:()=>x.getState().transform,getViewScale:()=>ae.current}),()=>{oe.current?.destroy()}},[E]),(0,G.useEffect)(()=>{oe.current?.update({translateExtent:D,width:O,height:k,inversePan:v,pannable:h,zoomStep:y,zoomable:g})},[h,g,v,y,D,O,k]);let se=p?e=>{let[t,n]=oe.current?.pointer(e)||[0,0];p(e,{x:t,y:n})}:void 0,ce=m?(0,G.useCallback)((e,t)=>{let n=x.getState().nodeLookup.get(t).internals.userNode;m(e,n)},[]):void 0,le=_??A[`minimap.ariaLabel`];return(0,X.jsx)(qy,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof c==`string`?c:void 0,"--xy-minimap-mask-background-color-props":typeof l==`string`?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof u==`string`?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d==`number`?d*ne:void 0,"--xy-minimap-node-background-color-props":typeof r==`string`?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n==`string`?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o==`number`?o:void 0},className:Ju([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,X.jsxs)(`svg`,{width:j,height:M,viewBox:`${F} ${I} ${ie} ${L}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":R,ref:S,onClick:se,children:[le&&(0,X.jsx)(`title`,{id:R,children:le}),(0,X.jsx)(pC,{onClick:ce,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,X.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${F-re},${I-re}h${ie+re*2}v${L+re*2}h${-ie-re*2}z
92
- M${w.x},${w.y}h${w.width}v${w.height}h${-w.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}xC.displayName=`MiniMap`;var SC=(0,G.memo)(xC),CC=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,wC={[sy.Line]:`right`,[sy.Handle]:`bottom-right`};function TC({nodeId:e,position:t,variant:n=sy.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:s=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:m,onResizeStart:h,onResize:g,onResizeEnd:_}){let v=ex(),y=typeof e==`string`?e:v,b=Ly(),x=(0,G.useRef)(null),S=n===sy.Handle,C=$((0,G.useCallback)(CC(S&&p),[S,p]),My),w=(0,G.useRef)(null),T=t??wC[n];return(0,G.useEffect)(()=>{if(!(!x.current||!y))return w.current||=vy({domNode:x.current,nodeId:y,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=b.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=b.getState(),o=[],s={x:e.x,y:e.y},c=r.get(y);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=Tv([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...A_({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:y,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:y,type:`dimensions`,resizing:!0,setAttributes:f?f===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:y,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};b.getState().triggerNodeChanges([n])}}),w.current.update({controlPosition:T,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:_,shouldResize:m}),()=>{w.current?.destroy()}},[T,s,c,l,u,d,h,g,_,m]),(0,X.jsx)(`div`,{className:Ju([`react-flow__resize-control`,`nodrag`,...T.split(`-`),n,r]),ref:x,style:{...i,scale:C,...o&&{[S?`backgroundColor`:`borderColor`]:o}},children:a})}(0,G.memo)(TC);function EC(e,t){return e.edges.filter(e=>e.type===`stacked`&&e.from===t).map(e=>e.to)}function DC(e){let t=new Set(e.edges.flatMap(e=>[e.from,e.to])),n=e.nodes.filter(e=>!t.has(e.id));return{specs:OC(n.filter(e=>e.type===`proposal`)),stories:OC(n.filter(e=>e.type===`user_story`))}}function OC(e){return[...e].sort((e,t)=>e.order-t.order)}var kC=`__unscheduled`,AC=`__stories`,jC=`group:`;function MC(e){return`${jC}${e}`}function NC(e){return e.startsWith(`group:`)?e.slice(6):null}function PC(e,t){return`${e}@${t}`}function FC(e){let t=e.indexOf(`@`);return t===-1?e:e.slice(0,t)}function IC(e){let t=e.indexOf(`@`);return t===-1?null:e.slice(t+1)}function LC(e){let t=new Map;for(let n of e.edges){if(n.type!==`targets`)continue;let e=t.get(n.to)??[];e.push(n.from),t.set(n.to,e)}let n=new Map(e.nodes.map(e=>[e.id,e.order])),r=new Map,i=a=>{let o=r.get(a);if(o)return o;r.set(a,[]);let s=t.get(a),c=[];if(s&&s.length>0)c=[...s];else{let t=EC(e,a).slice().sort((e,t)=>(n.get(e)??0)-(n.get(t)??0)||e.localeCompare(t));for(let e of t){let t=i(e);if(t.length>0){c=t;break}}}return r.set(a,c),c},a=new Map;for(let t of e.nodes)t.type===`proposal`&&a.set(t.id,i(t.id));return a}function RC(e,t,n){let r={positions:{},cells:[],rowKeys:[],rowIndexByKey:new Map,rowContainerByCap:new Map,capsByRow:new Map,memberRowsByProp:new Map,occupantsByRow:new Map,hidden:new Set,groupMeta:new Map},i=LC(e),a=OC(e.nodes.filter(e=>e.type===`capability`)).map(e=>e.id);if(n?.hideEmptyCaps){let e=new Set;for(let t of i.values())for(let n of t)e.add(n);a=a.filter(t=>e.has(t))}KC(a,t).forEach((e,t)=>{if(e.kind===`node`)r.rowContainerByCap.set(e.id,e.id),r.capsByRow.set(e.id,[e.id]),r.rowKeys.push(e.id),r.rowIndexByKey.set(e.id,t);else{let n=MC(e.key);if(r.groupMeta.set(n,{key:e.key,count:e.memberIds.length,collapsed:e.collapsed}),e.collapsed){r.capsByRow.set(n,e.memberIds.slice());for(let t of e.memberIds)r.rowContainerByCap.set(t,n),r.hidden.add(t)}else r.capsByRow.set(n,[]);r.rowKeys.push(n),r.rowIndexByKey.set(n,t)}});let o=OC(e.nodes.filter(e=>e.type===`proposal`)),s=[];for(let e of o){let t=i.get(e.id)??[],n=[];for(let e of t){let t=r.rowContainerByCap.get(e);t!==void 0&&!n.includes(t)&&n.push(t)}if(r.memberRowsByProp.set(e.id,n),n.length===0){s.push(e.id);continue}for(let t of n){let n=r.occupantsByRow.get(t)??[];n.push(e.id),r.occupantsByRow.set(t,n)}}let c=new Map(e.nodes.map(e=>[e.id,e.order])),l=(e,t)=>(c.get(e)??0)-(c.get(t)??0)||e.localeCompare(t);for(let[t,n]of r.occupantsByRow)r.occupantsByRow.set(t,VC(n.sort(l),e));let u=(e,t,n,i,a,o)=>{r.positions[e]={x:80+a*280,y:80+o*170},r.cells.push({nodeId:e,baseId:t,kind:n,rowKey:i,col:a})};r.rowKeys.forEach((e,t)=>{let n=NC(e)===null?`capability`:`group`;u(e,e,n,e,0,t),(r.occupantsByRow.get(e)??[]).forEach((n,r)=>{u(PC(n,e),n,`proposal`,e,r+1,t)})});let d=r.rowKeys.length,f=(e,t,n)=>{e.length!==0&&(r.occupantsByRow.set(t,e),r.rowKeys.push(t),r.rowIndexByKey.set(t,d),e.forEach((e,r)=>{let i=Math.floor(r/6);u(e,e,n,t,r%6,d+i)}),d+=Math.ceil(e.length/6))};return f(VC(s.slice().sort(l),e),kC,`proposal`),f(OC(e.nodes.filter(e=>e.type===`user_story`)).map(e=>e.id),AC,`story`),r}function zC(e,t){return{rowIndex:Math.round((t-80)/170),col:Math.round((e-80)/280)}}function BC(e,t,n){let r=n-1;if(r>=0&&r<e.length)return[...e.slice(0,r+1),t,...e.slice(r+1)];let i=Math.max(0,Math.min(r,e.length));return[...e.slice(0,i),t,...e.slice(i)]}function VC(e,t){let n=new Set(e),r=new Map;for(let t of e)r.set(t,new Set);for(let e of t.edges)e.type===`stacked`&&n.has(e.from)&&n.has(e.to)&&r.get(e.from).add(e.to);let i=new Set,a=[];for(;a.length<e.length;){let t=e.find(e=>!i.has(e)&&[...r.get(e)].every(e=>i.has(e)));if(t===void 0){for(let t of e)i.has(t)||a.push(t);break}i.add(t),a.push(t)}return a}function HC(e,t){return e.split(`-`).slice(0,t).join(`-`)}function UC(e,t=1){let n=[],r=new Map;for(let i of e){let e=HC(i,t),a=r.get(e);a?a.push(i):(r.set(e,[i]),n.push(e))}let i=[];for(let e of n){let n=r.get(e)??[];n.length<2||i.push({key:e,depth:t,memberIds:n,children:UC(n.filter(t=>t!==e),t+1)})}return i}function WC(e,t){for(let n of e){if(n.key===t)return n;let e=WC(n.children,t);if(e)return e}return null}function GC(e){return UC(e).map(e=>e.key)}function KC(e,t){let n=new Set(t),r=(e,t)=>{let i=[],a=new Map;for(let n of e){let e=HC(n,t),r=a.get(e);r?r.push(n):(a.set(e,[n]),i.push(e))}let o=[];for(let e of i){let i=a.get(e)??[],s=i[0];if(i.length<2){s!==void 0&&o.push({kind:`node`,id:s});continue}let c=n.has(e);if(o.push({kind:`group`,key:e,depth:t,memberIds:i,collapsed:c}),!c){for(let t of i)t===e&&o.push({kind:`node`,id:t});o.push(...r(i.filter(t=>t!==e),t+1))}}return o};return r(e,1)}function qC({rootName:e,model:t,onModelChange:n,hideEmptySpecs:r,onToggleHideEmpty:i}){return(0,X.jsxs)(`header`,{className:`topbar`,children:[(0,X.jsxs)(`div`,{className:`brand`,children:[(0,X.jsx)(`span`,{className:`logo`,children:`◇`}),(0,X.jsxs)(`div`,{children:[(0,X.jsxs)(`h1`,{children:[(0,X.jsx)(`span`,{className:`brand-coop`,children:`coop`}),` specplan`]}),(0,X.jsxs)(`p`,{children:[`Plan `,(0,X.jsx)(`code`,{className:`canvas-id`,children:e}),` — autosaves to specplan.yaml`]})]})]}),(0,X.jsxs)(`div`,{className:`actions`,children:[i&&(0,X.jsx)(`button`,{"aria-pressed":!!r,className:`hide-empty-toggle${r?` active`:``}`,"data-testid":`hide-empty-toggle`,onClick:i,title:`Hide capability rows with no scheduled items (view only)`,type:`button`,children:r?`Show empty specs`:`Hide empty specs`}),t!==void 0&&n&&(0,X.jsx)(`select`,{"aria-label":`Model`,className:`model-select`,onChange:e=>n(e.target.value),title:`Model used by chat and Generate OpenSpec`,value:t,children:so.map(e=>(0,X.jsx)(`option`,{value:e,children:e.replace(/^claude-/,``)},e))})]})]})}function JC({specId:e,title:t,apply:n,onApplied:r,onClose:i}){let[a,o]=(0,G.useState)(`confirm`),[s,c]=(0,G.useState)(!1),[l,u]=(0,G.useState)();(0,G.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!s&&i()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[i,s]);let d=async e=>{c(!0),u(void 0);try{let t=await n(e);if(t.status===`ok`){r(t.result),i();return}if(t.status===`hand-edit`){o(`hand-edit`);return}u(t.message)}finally{c(!1)}};return(0,X.jsx)(`div`,{className:`dialog-overlay`,onClick:()=>!s&&i(),role:`presentation`,children:(0,X.jsxs)(`div`,{"aria-label":`Apply / Close proposal ${t}`,className:`dialog dialog-apply nodrag nopan`,"data-testid":`apply-dialog`,onClick:e=>e.stopPropagation(),role:`dialog`,children:[(0,X.jsx)(`div`,{className:`dialog-head`,children:(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`div`,{className:`dialog-title`,children:a===`confirm`?`Apply / Close proposal`:`Fold a hand-edited proposal?`}),(0,X.jsx)(`code`,{className:`dialog-path`,children:e})]})}),a===`confirm`?(0,X.jsxs)(`p`,{className:`dialog-notice`,"data-testid":`apply-confirm-message`,children:[`Fold `,(0,X.jsx)(`strong`,{children:t}),`'s delta into `,(0,X.jsx)(`code`,{children:`specs/`}),` and archive the change. This is irreversible from the canvas.`]}):(0,X.jsxs)(`p`,{className:`dialog-notice`,"data-testid":`apply-hand-edit-message`,children:[(0,X.jsx)(`strong`,{children:t}),`'s body was hand-edited since it was last generated. Applying will fold the hand-edited body as-is — confirm to fold it anyway.`]}),l&&(0,X.jsx)(`div`,{className:`empty error`,"data-testid":`apply-error`,children:l}),(0,X.jsxs)(`div`,{className:`dialog-actions`,children:[(0,X.jsx)(`button`,{className:`chat-clear`,disabled:s,onClick:i,type:`button`,children:`Cancel`}),a===`confirm`?(0,X.jsx)(`button`,{className:`chat-send`,"data-testid":`apply-confirm`,disabled:s,onClick:()=>void d(!1),type:`button`,children:s?`Applying…`:`Apply / Close`}):(0,X.jsx)(`button`,{className:`chat-send`,"data-testid":`apply-confirm-hand-edit`,disabled:s,onClick:()=>void d(!0),type:`button`,children:s?`Applying…`:`Fold hand-edited body`})]})]})})}function YC(e){return e.approved?e.implemented?`implemented`:e.status===`in-progress`?`in-progress`:`approved`:`draft`}var XC=[`in-progress`,`implemented`];function ZC(e){return typeof e.onApply==`function`&&e.approved!==!0}function QC({data:e}){let[t,n]=(0,G.useState)(!1),r=YC(e);(0,G.useEffect)(()=>{if(!t)return;let e=()=>n(!1);return window.addEventListener(`click`,e),()=>window.removeEventListener(`click`,e)},[t]);let i=t=>{if(t===`implemented`){e.implemented||e.onImplemented?.(!0);return}e.implemented&&e.onImplemented?.(!1),e.status!==`in-progress`&&e.onStatus?.(`in-progress`)};return(0,X.jsxs)(`div`,{className:`card card-spec${e.hasSpec?` card-has-spec`:``}`,title:e.hasSpec?`An OpenSpec change exists — click to view it`:void 0,children:[(0,X.jsx)(cx,{type:`target`,position:Q.Left}),(0,X.jsxs)(`div`,{className:`card-kind`,children:[`PROPOSAL`,e.hasSpec&&(0,X.jsx)(`span`,{className:`card-badge`,children:`openspec ✓`}),e.specCount!==void 0&&e.specCount>0&&(0,X.jsxs)(`span`,{className:`card-implicated`,title:`Implicates ${e.specCount} spec${e.specCount===1?``:`s`} (distinct capabilities its deltas target)`,children:[`◇ `,e.specCount]}),e.onStatus&&(e.approved?(0,X.jsxs)(`span`,{className:`card-status-wrap nodrag nopan`,children:[(0,X.jsxs)(`button`,{"aria-label":`Status: ${r}`,className:`card-status status-${r}`,onClick:e=>{e.stopPropagation(),n(e=>!e)},title:`Working state — advance to in-progress / implemented (approved is set by the fold, never here)`,type:`button`,children:[r,` ▾`]}),t&&(0,X.jsx)(`span`,{className:`status-menu`,role:`menu`,children:XC.map(e=>(0,X.jsx)(`button`,{className:`status-option status-${e}${e===r?` current`:``}`,onClick:t=>{t.stopPropagation(),n(!1),e!==r&&i(e)},role:`menuitem`,type:`button`,children:e},e))})]}):(0,X.jsx)(`span`,{"aria-label":`Status: draft`,className:`card-status status-draft card-status-static`,title:`Apply-first lifecycle: draft until the change is folded into specs/ (approved)`,children:`draft`}))]}),(0,X.jsx)(`div`,{className:`card-title`,children:e.title}),e.description&&(0,X.jsx)(`div`,{className:`card-text card-description`,children:e.description.length>110?`${e.description.slice(0,110)}…`:e.description}),(e.tasks||e.ledgerStatus)&&(0,X.jsxs)(`div`,{className:`card-completion`,"data-testid":`card-completion`,children:[e.tasks&&(0,X.jsxs)(`span`,{className:`completion-tasks`,title:`Delta completion — from the change's tasks.md checkboxes (read-only)`,children:[e.tasks.done,`/`,e.tasks.total,` tasks`]}),e.ledgerStatus&&(0,X.jsx)(`span`,{className:`completion-ledger`,title:`Lifecycle status from the SPECS.md ledger (read-only)`,children:e.ledgerStatus})]}),(!e.hasSpec&&e.onGenerate||ZC(e))&&(0,X.jsxs)(`div`,{className:`card-actions`,children:[!e.hasSpec&&e.onGenerate&&(0,X.jsx)(`button`,{className:`card-generate`,disabled:e.generating,onClick:t=>{t.stopPropagation(),e.onGenerate?.()},title:`Generate the OpenSpec change for this spec from its contained stories and dependencies`,type:`button`,children:e.generating?`Generating…`:`Generate OpenSpec`}),ZC(e)&&(0,X.jsx)(`button`,{className:`card-apply nodrag nopan`,"data-testid":`card-apply`,onClick:t=>{t.stopPropagation(),e.onApply?.()},title:`Apply / Close — fold this change's delta into specs/ and archive it (irreversible from the canvas)`,type:`button`,children:`Apply / Close`})]}),(0,X.jsx)(cx,{type:`source`,position:Q.Right})]})}function $C({data:e}){return(0,X.jsxs)(`div`,{className:`card card-capability`,title:`Current-truth capability (openspec/specs/) — click to view its spec`,children:[(0,X.jsx)(cx,{type:`target`,position:Q.Left}),(0,X.jsx)(`div`,{className:`card-kind`,children:`SPEC`}),(0,X.jsx)(`div`,{className:`card-title`,children:e.title}),(0,X.jsx)(cx,{type:`source`,position:Q.Right})]})}function ew({data:e}){return(0,X.jsxs)(`div`,{className:`card card-story`,children:[(0,X.jsx)(cx,{type:`target`,position:Q.Left}),(0,X.jsx)(`div`,{className:`card-kind`,children:`user story`}),(0,X.jsx)(`div`,{className:`card-text`,children:e.text})]})}function tw({data:e}){return(0,X.jsxs)(`div`,{className:`card card-group${e.collapsed?` card-group-collapsed`:` card-group-expanded`}`,title:e.collapsed?`Group ${e.label} — click to expand its ${e.count} capabilities`:`Group ${e.label} (expanded) — click to collapse`,children:[(0,X.jsx)(cx,{isConnectable:!1,position:Q.Left,type:`target`}),(0,X.jsxs)(`div`,{className:`card-kind`,children:[`GROUP`,(0,X.jsx)(`span`,{className:`group-count`,children:e.count})]}),(0,X.jsxs)(`div`,{className:`card-title`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,className:`group-caret`,children:e.collapsed?`▸`:`▾`}),e.label]}),(0,X.jsx)(cx,{isConnectable:!1,position:Q.Right,type:`source`})]})}var nw={capability:$C,proposal:QC,story:ew,capGroup:tw};function rw(e,t,n,r){let i=new Map(e.nodes.map(e=>[e.id,e])),a=new Map;for(let t of e.edges){if(t.type!==`targets`)continue;let e=a.get(t.to)??new Set;e.add(t.from),a.set(t.to,e)}let o=e=>a.get(e)?.size??0,s=[];for(let e of t.cells){let a=t.positions[e.nodeId]??{x:0,y:0};if(e.kind===`group`){let n=t.groupMeta.get(e.rowKey);s.push({id:e.nodeId,type:`capGroup`,deletable:!1,draggable:!1,position:a,data:{label:n?.key??e.rowKey,count:n?.count??0,collapsed:n?.collapsed??!0}});continue}let c=i.get(e.baseId);if(!c)continue;if(e.kind===`capability`){s.push({id:e.nodeId,type:`capability`,deletable:!1,draggable:!0,position:a,data:{title:c.type===`capability`?c.title:e.baseId}});continue}if(e.kind===`story`){s.push({id:e.nodeId,type:`story`,deletable:!1,draggable:!1,position:a,data:{text:c.type===`user_story`?c.text:``}});continue}if(c.type!==`proposal`)continue;let l=r?.[c.id];s.push({id:e.nodeId,type:`proposal`,deletable:!1,draggable:!0,position:a,data:{title:c.title,...c.description?{description:c.description}:{},hasSpec:l?.hasSpec===!0,status:l?.status??`draft`,...l?.approved===!0?{approved:!0}:{},...l?.implemented===!0?{implemented:!0}:{},specCount:o(c.id),...l?.tasks?{tasks:l.tasks}:{},...l?.ledgerStatus===void 0?{}:{ledgerStatus:l.ledgerStatus},...n?{...n.generate?{generating:n.generatingId===c.id,onGenerate:()=>n.generate?.(c.id)}:{},onStatus:e=>n.setStatus(c.id,e),...n.setImplemented?{onImplemented:e=>n.setImplemented?.(c.id,e)}:{},...n.apply?{onApply:()=>n.apply?.(c.id)}:{}}:{}}})}return s}function iw(e,t){let n=e=>{let n=t.memberRowsByProp.get(e);return n&&n.length>0?PC(e,n[0]):t.positions[e]?e:null},r=new Set,i=[];for(let a of e.edges){let e=`${a.from}->${a.to}`,o,s,c=!0;if(a.type===`targets`){let n=t.rowContainerByCap.get(a.from);if(n===void 0)continue;let r=NC(n)!==null;o=n,s=t.positions[PC(a.to,n)]?PC(a.to,n):null,r&&(e=`${n}->${a.to}`,c=!1)}else a.type===`containment`?(o=n(a.from),s=t.positions[a.to]?a.to:null):(o=n(a.from),s=n(a.to));!o||!s||!t.positions[o]||!t.positions[s]||r.has(e)||(r.add(e),i.push({id:e,source:o,target:s,deletable:c,className:`edge-${a.type}`,...a.type===`stacked`?{markerEnd:{type:Hg.ArrowClosed}}:{style:{strokeDasharray:`6 4`}}}))}return i}function aw(e,t,n){if(!n)return null;let r=e.filter(e=>FC(e.id)===n);if(r.length===0)return null;let i=Qg(r,t),a=new Set(i.map(e=>e.id)),o=new Set([n]);for(let e of i)o.add(FC(e.source)),o.add(FC(e.target));return{bases:o,edgeIds:a}}function ow(e){return(e??``).split(` `).filter(e=>e&&e!==`dimmed`&&e!==`highlighted`).join(` `)}function sw(e,t){return e.map(e=>{let n=ow(e.className),r=(t?t.bases.has(FC(e.id))?`${n} highlighted`.trim():`${n} dimmed`.trim():n)||void 0;return r===e.className?e:{...e,className:r}})}function cw(e,t){return e.map(e=>{let n=ow(e.className),r=(t?t.edgeIds.has(e.id)?`${n} highlighted`.trim():`${n} dimmed`.trim():n)||void 0;return r===e.className?e:{...e,className:r}})}function lw({items:e,resolve:t,onReveal:n}){let{setCenter:r}=Fb(),[i,a]=(0,G.useState)(!1),[o,s]=(0,G.useState)(``),[c,l]=(0,G.useState)(0),u=(0,G.useRef)(null);(0,G.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`k`&&(e.preventDefault(),a(e=>!e))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),(0,G.useEffect)(()=>{i&&(s(``),l(0),requestAnimationFrame(()=>u.current?.focus()))},[i]);let d=(0,G.useMemo)(()=>{let t=o.trim().toLowerCase();return(t?e.filter(e=>e.label.toLowerCase().includes(t)||e.id.toLowerCase().includes(t)):e).slice(0,20)},[e,o]),f=e=>{let i=e=>void r(e.x+240/2,e.y+132/2,{zoom:1,duration:300}),a=t(e);if(a===`hidden`){n(e),requestAnimationFrame(()=>{let n=t(e);n&&n!==`hidden`&&i(n)});return}a&&i(a)},p=e=>{a(!1),f(e)};return i?(0,X.jsx)(`div`,{className:`search-overlay`,"data-testid":`search-overlay`,onClick:()=>a(!1),role:`presentation`,children:(0,X.jsxs)(`div`,{"aria-label":`Find a card`,className:`search-palette`,"data-testid":`search-palette`,onClick:e=>e.stopPropagation(),role:`dialog`,children:[(0,X.jsx)(`input`,{"aria-label":`Find a card`,className:`search-input`,"data-testid":`search-input`,onChange:e=>{s(e.target.value),l(0)},onKeyDown:e=>{if(e.key===`Escape`)a(!1);else if(e.key===`ArrowDown`)e.preventDefault(),l(e=>Math.min(e+1,d.length-1));else if(e.key===`ArrowUp`)e.preventDefault(),l(e=>Math.max(e-1,0));else if(e.key===`Enter`){e.preventDefault();let t=d[c];t&&p(t.id)}},placeholder:`Find a card by title…`,ref:u,value:o}),(0,X.jsx)(`ul`,{className:`search-results`,role:`listbox`,children:d.length===0?(0,X.jsx)(`li`,{className:`search-empty`,children:`No matching cards.`}):d.map((e,t)=>(0,X.jsxs)(`li`,{"aria-selected":t===c,className:`search-result${t===c?` active`:``} search-${e.kind}`,onClick:()=>p(e.id),onMouseEnter:()=>l(t),role:`option`,children:[(0,X.jsx)(`span`,{className:`search-kind`,children:e.kind===`capability`?`SPEC`:`PROPOSAL`}),(0,X.jsx)(`span`,{className:`search-label`,children:e.label})]},e.id))})]})}):null}function uw({preview:e}){let t=80+e.col*280,n=80+e.rowIndex*170;return(0,X.jsxs)(US,{children:[(0,X.jsx)(`div`,{className:`grid-overlay`,"data-testid":`grid-overlay`,style:{position:`absolute`,left:-200,top:-90,width:280*60,height:10200,backgroundSize:`280px 170px`,pointerEvents:`none`}}),(0,X.jsx)(`div`,{className:`snap-target`,"data-testid":`snap-target`,style:{position:`absolute`,left:t-8,top:n-8,width:256,height:148,pointerEvents:`none`}})]})}function dw({rfNodes:e,rfEdges:t,onConnect:n,onEdgesChange:r,onNodesChange:i,onNodeClick:a,onNodeMouseEnter:o,onNodeMouseLeave:s,onPaneClick:c,onNodeDrag:l,onNodeDragStop:u,onBacklogDrop:d,dragPreview:f,searchItems:p,resolveCard:m,revealCard:h,toast:g,children:_}){let{screenToFlowPosition:v}=Fb();return(0,X.jsxs)(`section`,{className:`canvas`,"aria-label":`Planning canvas`,onDragOver:e=>{e.dataTransfer.types.includes(`application/specplan-node`)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)},onDrop:e=>{let t=e.dataTransfer.getData(`application/specplan-node`);if(!t)return;e.preventDefault();let n=v({x:e.clientX,y:e.clientY});d(t,n.x,n.y)},children:[(0,X.jsxs)(VS,{autoPanOnNodeDrag:!1,deleteKeyCode:[`Backspace`,`Delete`],edges:t,fitView:!0,minZoom:.1,nodes:e,nodesDraggable:!0,nodeTypes:nw,onConnect:n,onEdgesChange:r,onNodeClick:(e,t)=>a(t.id),onNodeMouseEnter:(e,t)=>o(t.id),onNodeMouseLeave:()=>s(),onPaneClick:()=>c(),onNodeDrag:(e,t)=>l(t),onNodeDragStop:(e,t)=>u(t),onNodesChange:i,proOptions:{hideAttribution:!0},children:[(0,X.jsx)(XS,{}),(0,X.jsx)(aC,{}),(0,X.jsx)(SC,{className:`specplan-minimap`,nodeColor:fw,pannable:!0,position:`top-right`,style:{width:150,height:104},zoomable:!0}),f&&(0,X.jsx)(uw,{preview:f})]}),(0,X.jsx)(lw,{items:p,resolve:m,onReveal:h}),g&&(0,X.jsx)(`div`,{className:`toast`,"data-testid":`toast`,role:`alert`,children:g}),_]})}function fw(e){return e.type===`capability`?`#5ba3e8`:e.type===`capGroup`?`#8a8a8a`:e.type===`story`?`#3a3a3a`:`#e8925b`}function pw(e){return(0,X.jsx)(LS,{children:(0,X.jsx)(dw,{...e})})}function mw(e,t){let n=e.slice(0,Math.max(0,Math.min(t,e.length))),r=n.lastIndexOf(`@`);if(r===-1)return null;let i=r===0?``:n[r-1];if(i!==``&&!/[\s([{'"`]/.test(i))return null;let a=n.slice(r+1);return/\s/.test(a)||a.includes(`@`)?null:{start:r,query:a}}function hw(e,t,n,r){let i=e.slice(0,t.start),a=Math.max(t.start,Math.min(n,e.length));for(;a<e.length&&!/\s/.test(e[a]);)a++;let o=e.slice(a);if(r.endsWith(`/`)){let e=`@${r}`;return{text:i+e+o,caret:i.length+e.length}}let s=o.startsWith(` `),c=`@${r}${s?``:` `}`;return{text:i+c+o,caret:i.length+c.length+ +!!s}}function gw(e,t,n){let[r,i]=(0,G.useState)(null),[a,o]=(0,G.useState)([]),[s,c]=(0,G.useState)(0);function l(){let t=e.current;i(t?mw(t.value,t.selectionStart??t.value.length):null)}let u=r?.query;(0,G.useEffect)(()=>{if(u===void 0||!n){o([]);return}let e=!1,t=setTimeout(()=>{n(u).then(t=>{e||(o(t),c(0))}).catch(()=>{})},120);return()=>{e=!0,clearTimeout(t)}},[u,n]);let d=r!==null&&a.length>0;function f(n){let a=e.current;if(!a||!r)return;let o=hw(a.value,r,a.selectionStart??a.value.length,n);t(o.text),i(n.endsWith(`/`)?{start:r.start,query:n}:null),requestAnimationFrame(()=>{a.focus(),a.setSelectionRange(o.caret,o.caret)})}function p(e){if(!d)return!1;if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault();let t=e.key===`ArrowDown`?1:a.length-1;return c(e=>(e+t)%a.length),!0}if(e.key===`Enter`||e.key===`Tab`){e.preventDefault();let t=a[s];return t!==void 0&&f(t),!0}return e.key===`Escape`?(e.preventDefault(),i(null),!0):!1}return{open:d,results:a,highlight:s,sync:l,select:f,onKeyDown:p}}function _w({search:e,placement:t}){return e.open?(0,X.jsx)(`ul`,{"aria-label":`File search results`,className:`at-search ${t}`,role:`listbox`,children:e.results.map((t,n)=>(0,X.jsx)(`li`,{children:(0,X.jsxs)(`button`,{"aria-selected":n===e.highlight,className:`at-item${n===e.highlight?` active`:``}${t.endsWith(`/`)?` dir`:``}`,onMouseDown:n=>{n.preventDefault(),e.select(t)},role:`option`,type:`button`,children:[`@`,t]})},t))}):null}function vw(e){return e.map(({role:e,text:t,at:n})=>({role:e,text:t,at:n}))}function yw({messages:e,pending:t,error:n,onSend:r,onClear:i,searchFiles:a}){let[o,s]=(0,G.useState)(``),c=(0,G.useRef)(null),l=(0,G.useRef)(null),u=gw(l,s,a);(0,G.useEffect)(()=>{c.current?.scrollTo({top:c.current.scrollHeight})},[e.length,t]);function d(){let e=o.trim();!e||t||(s(``),r(e))}return(0,X.jsxs)(`div`,{className:`chat`,children:[(0,X.jsxs)(`div`,{className:`chat-messages`,ref:c,children:[e.length===0&&!n&&(0,X.jsxs)(`div`,{className:`chat-empty`,children:[`Ask the assistant to add specs and stories, link dependencies, contain stories, or reorder items — it applies changes straight to the canvas and can never delete anything. Pull files into context with`,` `,(0,X.jsx)(`code`,{children:`@path/to/file`}),` or `,(0,X.jsx)(`code`,{children:`@filename`}),`.`]}),e.map((e,t)=>(0,X.jsxs)(`div`,{className:`chat-message chat-${e.role}`,children:[(0,X.jsx)(`div`,{className:`chat-role`,children:e.role}),(0,X.jsx)(`div`,{className:`chat-text`,children:e.text}),e.toolCalls&&e.toolCalls.length>0&&(0,X.jsxs)(`details`,{className:`chat-refs chat-tools`,"data-testid":`chat-tools`,open:!0,children:[(0,X.jsxs)(`summary`,{children:[e.toolCalls.length,` change`,e.toolCalls.length===1?``:`s`,` applied`]}),(0,X.jsx)(`ul`,{children:e.toolCalls.map((e,t)=>(0,X.jsxs)(`li`,{children:[e.tool,`: `,e.summary]},`${e.tool}-${t}`))})]}),e.refs&&(e.refs.resolved.length>0||e.refs.unresolved.length>0)&&(0,X.jsxs)(`details`,{className:`chat-refs`,children:[(0,X.jsxs)(`summary`,{children:[e.refs.resolved.length,` file`,e.refs.resolved.length===1?``:`s`,` in context`,e.refs.unresolved.length>0&&`, ${e.refs.unresolved.length} unresolved`]}),(0,X.jsxs)(`ul`,{children:[e.refs.resolved.map(e=>(0,X.jsxs)(`li`,{children:[`@`,e]},e)),e.refs.unresolved.map(e=>(0,X.jsxs)(`li`,{className:`chat-ref-missing`,children:[`@`,e.ref,` — `,e.reason]},e.ref))]})]})]},`${e.at}-${t}`)),t&&(0,X.jsx)(`div`,{className:`chat-message chat-assistant chat-thinking`,children:`thinking…`}),n&&(0,X.jsx)(`div`,{className:`chat-fault`,children:n})]}),(0,X.jsxs)(`div`,{className:`chat-composer`,children:[(0,X.jsxs)(`div`,{className:`at-anchor`,children:[(0,X.jsx)(_w,{placement:`up`,search:u}),(0,X.jsx)(`textarea`,{"aria-label":`Chat message`,className:`chat-input`,onChange:e=>{s(e.target.value),u.sync()},onKeyDown:e=>{u.onKeyDown(e)||e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),d())},onSelect:u.sync,placeholder:`Ask to add, link, or reorder… (@ searches files)`,ref:l,rows:2,value:o})]}),(0,X.jsxs)(`div`,{className:`chat-composer-actions`,children:[(0,X.jsx)(`button`,{className:`chat-clear`,disabled:e.length===0&&!n,onClick:i,title:`Clear the conversation and start over`,type:`button`,children:`Clear`}),(0,X.jsx)(`button`,{className:`chat-send`,disabled:t||!o.trim(),onClick:d,type:`button`,children:t?`Sending…`:`Send`})]})]})]})}function bw({info:e,failed:t,onSave:n,searchFiles:r}){let[i,a]=(0,G.useState)(),o=(0,G.useRef)(null),s=gw(o,a,r);if(t)return(0,X.jsx)(`div`,{className:`empty error`,children:`Could not load the system prompt.`});if(!e)return(0,X.jsx)(`div`,{className:`empty`,children:`Loading the system prompt…`});let c=i??e.system,l=c!==e.system,u=c===e.default&&!e.custom;return(0,X.jsxs)(`div`,{className:`prompt-pane`,children:[(0,X.jsxs)(`div`,{className:`artifact-head`,children:[(0,X.jsxs)(`code`,{className:`path`,children:[`generation system prompt`,e.custom?` — customized`:``,l?` (unsaved)`:``]}),(0,X.jsxs)(`div`,{className:`prompt-actions`,children:[(0,X.jsx)(`button`,{className:`copy`,disabled:u&&!l,onClick:()=>{a(void 0),n(null)},title:`Restore the built-in default prompt`,type:`button`,children:`Reset`}),(0,X.jsx)(`button`,{className:`copy prompt-save`,disabled:!l||!c.trim(),onClick:()=>{n(c),a(void 0)},type:`button`,children:`Save`})]})]}),(0,X.jsxs)(`div`,{className:`at-anchor prompt-anchor`,children:[(0,X.jsx)(_w,{placement:`down`,search:s}),(0,X.jsx)(`textarea`,{"aria-label":`Generation system prompt`,className:`prompt-editor`,onChange:e=>{a(e.target.value),s.sync()},onKeyDown:e=>void s.onKeyDown(e),onSelect:s.sync,ref:o,spellCheck:!1,value:c})]}),(0,X.jsxs)(`p`,{className:`prompt-hint`,children:[`Drives every generation. `,(0,X.jsx)(`code`,{children:`@path`}),` / `,(0,X.jsx)(`code`,{children:`@filename`}),` references resolve to file contents. Saved edits persist with the plan root.`]})]})}function xw({plan:e,llm:t,onCreateSpec:n,onCreateStory:r,promptInfo:i,promptFailed:a,onSavePrompt:o,chat:s,chatPending:c,chatError:l,onSendChat:u,onClearChat:d,searchFiles:f}){let[p,m]=(0,G.useState)(`backlog`),[h,g]=(0,G.useState)(!1),_=[{key:`backlog`,label:`Backlog`},...t?[{key:`chat`,label:`Chat`},{key:`prompt`,label:`System Prompt`}]:[]];return h?(0,X.jsx)(`button`,{"aria-label":`Show planning pane`,className:`panel-reopen`,"data-testid":`panel-reopen`,onClick:()=>g(!1),title:`Show planning pane`,type:`button`,children:`«`}):(0,X.jsxs)(`aside`,{className:`panel`,"aria-label":`Planning pane`,children:[(0,X.jsxs)(`nav`,{className:`pane-nav`,"aria-label":`Side pane options`,children:[_.map(e=>(0,X.jsx)(`button`,{className:p===e.key?`pane-item active`:`pane-item`,onClick:()=>m(e.key),type:`button`,children:e.label},e.key)),(0,X.jsx)(`button`,{"aria-label":`Hide planning pane`,className:`pane-collapse`,"data-testid":`panel-collapse`,onClick:()=>g(!0),title:`Hide planning pane`,type:`button`,children:`»`})]}),p===`backlog`&&(0,X.jsx)(Sw,{plan:e,onCreateSpec:n,onCreateStory:r,searchFiles:f}),p===`chat`&&t&&(0,X.jsx)(yw,{messages:s,pending:c,error:l,onSend:u,onClear:d,searchFiles:f}),p===`prompt`&&t&&(0,X.jsx)(bw,{failed:a,info:i,onSave:o,searchFiles:f})]})}function Sw({plan:e,onCreateSpec:t,onCreateStory:n,searchFiles:r}){let[i,a]=(0,G.useState)(null),{specs:o,stories:s}=DC(e),c=(e,t,n,r)=>(0,X.jsxs)(`div`,{className:`backlog-section`,"data-testid":t,children:[(0,X.jsx)(`h2`,{children:e}),n.length===0?(0,X.jsx)(`p`,{className:`hint`,children:r}):(0,X.jsx)(`ul`,{className:`backlog-list`,children:n.map(e=>(0,X.jsxs)(`li`,{className:`backlog-item`,draggable:e.type===`proposal`,onDragStart:t=>{t.dataTransfer.setData(`application/specplan-node`,e.id),t.dataTransfer.effectAllowed=`copy`},children:[e.type===`user_story`?e.text:e.title,(0,X.jsx)(`span`,{className:`backlog-id`,children:e.id})]},e.id))})]});return(0,X.jsxs)(`div`,{className:`backlog-pane`,"aria-label":`Backlog`,children:[(0,X.jsxs)(`div`,{className:`backlog-actions`,children:[(0,X.jsx)(`button`,{className:`chat-send`,onClick:()=>a(`spec`),type:`button`,children:`New spec…`}),(0,X.jsx)(`button`,{className:`chat-send`,onClick:()=>a(`story`),type:`button`,children:`New story…`})]}),(0,X.jsx)(`p`,{className:`hint`,children:`Not yet linked into the plan — drag a link on the canvas (or ask the chat) and an item clears from this list.`}),c(`Specs`,`backlog-specs`,o,`Every spec is linked into the plan.`),c(`User stories`,`backlog-stories`,s,`Every story is covered by a spec.`),i&&(0,X.jsx)(Cw,{kind:i,onCreateSpec:t,onCreateStory:n,onClose:()=>a(null),searchFiles:r})]})}function Cw({kind:e,onCreateSpec:t,onCreateStory:n,onClose:r,searchFiles:i}){let[a,o]=(0,G.useState)(``),[s,c]=(0,G.useState)(``),[l,u]=(0,G.useState)(``),[d,f]=(0,G.useState)(!1),p=(0,G.useRef)(null),m=gw(p,c,i);(0,G.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r]);let h=e===`spec`?!!a.trim():!!l.trim();function g(){!h||d||(f(!0),(e===`spec`?t(a,s):n(l)).then(e=>{e&&r()}).finally(()=>f(!1)))}return(0,X.jsx)(`div`,{className:`dialog-overlay`,onClick:r,role:`presentation`,children:(0,X.jsxs)(`div`,{"aria-label":e===`spec`?`Create spec dialog`:`Create user story dialog`,className:`dialog dialog-create`,"data-testid":`create-dialog`,onClick:e=>e.stopPropagation(),role:`dialog`,children:[(0,X.jsxs)(`div`,{className:`dialog-head`,children:[(0,X.jsx)(`div`,{className:`dialog-title`,children:e===`spec`?`New spec`:`New user story`}),(0,X.jsx)(`div`,{className:`dialog-actions`,children:(0,X.jsx)(`button`,{className:`chat-clear`,onClick:r,type:`button`,children:`Cancel`})})]}),e===`spec`?(0,X.jsxs)(`div`,{className:`plan-form`,children:[(0,X.jsx)(`h2`,{children:`Name`}),(0,X.jsx)(`input`,{"aria-label":`New spec title`,autoFocus:!0,onChange:e=>o(e.target.value),placeholder:`Spec title…`,value:a}),(0,X.jsx)(`h2`,{children:`Description / generation prompt`}),(0,X.jsxs)(`div`,{className:`at-anchor`,children:[(0,X.jsx)(_w,{placement:`down`,search:m}),(0,X.jsx)(`textarea`,{"aria-label":`Spec description`,onChange:e=>{c(e.target.value),m.sync()},onKeyDown:e=>void m.onKeyDown(e),onSelect:m.sync,placeholder:`What this spec covers — steers generation. @path / @filename pulls files into context…`,ref:p,rows:6,value:s})]})]}):(0,X.jsxs)(`div`,{className:`plan-form`,children:[(0,X.jsx)(`h2`,{children:`Story`}),(0,X.jsx)(`textarea`,{"aria-label":`New user story`,autoFocus:!0,onChange:e=>u(e.target.value),placeholder:`As a <user>, I want to <feature> so that <value>…`,rows:4,value:l})]}),(0,X.jsx)(`div`,{className:`dialog-actions dialog-submit`,children:(0,X.jsx)(`button`,{className:`chat-send`,disabled:!h||d,onClick:g,type:`button`,children:d?`Creating…`:e===`spec`?`Create spec`:`Create story`})})]})})}var ww=`modulepreload`,Tw=function(e){return`/`+e},Ew={},Dw=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,new URL(`../../../src/node/plugins/importAnalysisBuild.ts`,import.meta.url)).href}r=o(t.map(t=>{if(t=Tw(t,n),t=s(t),t in Ew)return;Ew[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:ww,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Ow=new Nu({html:!1,linkify:!0}),kw=(0,G.lazy)(async()=>{let[e]=await Promise.all([Dw(()=>import(`./prod-DxrTzQHE.js`),__vite__mapDeps([0,1,2,3,4,5,6])),Dw(()=>Promise.resolve({}),__vite__mapDeps([7]))]);return{default:e.Excalidraw}}),Aw=`diagram.excalidraw`;function jw({source:e}){let t=null,n;try{let n=JSON.parse(e);t={elements:Array.isArray(n.elements)?n.elements:[],appState:{viewBackgroundColor:n.appState?.viewBackgroundColor??`#ffffff`},scrollToContent:!0}}catch(e){n=e instanceof Error?e.message:String(e)}return n===void 0?(0,X.jsx)(`div`,{className:`artifact-body dialog-body excalidraw-preview`,"data-testid":`diagram-preview`,children:(0,X.jsx)(G.Suspense,{fallback:(0,X.jsx)(`div`,{className:`empty`,children:`Loading the diagram…`}),children:(0,X.jsx)(kw,{initialData:t,viewModeEnabled:!0})})}):(0,X.jsxs)(`div`,{className:`empty error`,"data-testid":`diagram-error`,children:[`Could not parse `,Aw,`: `,n]})}function Mw({specId:e,title:t,kind:n=`change`,generating:r,loadArtifacts:i,onRegenerate:a,onClose:o}){let[s,c]=(0,G.useState)(null),[l,u]=(0,G.useState)(),[d,f]=(0,G.useState)(0),p=(0,G.useCallback)(async()=>{try{c(await i(e)),u(void 0)}catch(e){u(e instanceof Error?e.message:String(e))}},[e,i]);(0,G.useEffect)(()=>{p()},[p]),(0,G.useEffect)(()=>{let e=e=>{e.key===`Escape`&&o()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[o]);let m=[...(s?.files??[]).map(e=>({path:e.path,content:e.content,diagram:!1})),...typeof s?.diagram==`string`?[{path:Aw,content:s.diagram,diagram:!0}]:[]],h=m[Math.min(d,Math.max(m.length-1,0))],g=n===`capability`?`openspec/specs/${e}/`:`openspec/changes/${e}/`;return(0,X.jsx)(`div`,{className:`dialog-overlay`,onClick:o,role:`presentation`,children:(0,X.jsxs)(`div`,{"aria-label":n===`capability`?`Capability spec for ${t} (read-only)`:`OpenSpec change for ${t}`,className:`dialog`,"data-testid":`spec-dialog`,onClick:e=>e.stopPropagation(),role:`dialog`,children:[(0,X.jsxs)(`div`,{className:`dialog-head`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`div`,{className:`dialog-title`,children:t}),(0,X.jsx)(`code`,{className:`dialog-path`,children:g})]}),(0,X.jsxs)(`div`,{className:`dialog-actions`,children:[a&&(0,X.jsx)(`button`,{className:`chat-send`,disabled:r,onClick:()=>{a().then(e=>{e&&p()})},title:s?.handEdited?`Body is hand-edited — regeneration updates metadata only`:`Re-run generation from the card’s current stories and dependencies`,type:`button`,children:r?`Regenerating…`:`Regenerate`}),(0,X.jsx)(`button`,{className:`chat-clear`,onClick:o,type:`button`,children:`Close`})]})]}),s?.handEdited&&(0,X.jsx)(`p`,{className:`dialog-notice`,"data-testid":`hand-edited-notice`,children:`This change's body was edited outside specplan (or predates it) — Regenerate updates only the plan metadata and leaves every .md file untouched.`}),l&&(0,X.jsx)(`div`,{className:`empty error`,children:l}),!l&&!s&&(0,X.jsx)(`div`,{className:`empty`,children:n===`capability`?`Loading the spec…`:`Loading the change…`}),!l&&s&&m.length===0&&(0,X.jsx)(`div`,{className:`empty`,children:`No body files on disk (metadata only so far).`}),h&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{className:`tabs`,children:m.map((e,t)=>(0,X.jsx)(`button`,{className:t===d?`tab active`:`tab`,onClick:()=>f(t),type:`button`,children:e.path},e.path))}),(0,X.jsxs)(`div`,{className:`artifact-head`,children:[(0,X.jsxs)(`code`,{className:`path`,children:[g,h.path]}),!h.diagram&&(0,X.jsx)(`button`,{className:`copy`,onClick:()=>navigator.clipboard?.writeText(h.content),type:`button`,children:`Copy`})]}),h.diagram?(0,X.jsx)(jw,{source:h.content}):h.path.endsWith(`.md`)?(0,X.jsx)(`div`,{className:`artifact-body dialog-body artifact-rendered`,dangerouslySetInnerHTML:{__html:Ow.render(h.content)},"data-testid":`artifact-rendered`}):(0,X.jsx)(`pre`,{className:`artifact-body dialog-body`,children:h.content})]})]})})}function Nw({session:e,api:t}){let n=t.llm,[r,i]=(0,G.useState)(e.plan),[a,o]=(0,G.useState)(e.specStates),[s,c]=(0,G.useState)(()=>e.collapsedGroups??GC(OC(e.plan.nodes.filter(e=>e.type===`capability`)).map(e=>e.id))),l=(0,G.useRef)(s),[u,d]=(0,G.useState)(e.hideEmptySpecs??!1),f=(0,G.useRef)(u),p=(0,G.useRef)(RC(e.plan,s,{hideEmptyCaps:u})),[m,h]=(0,G.useState)(()=>rw(e.plan,p.current,void 0,e.specStates)),[g,_]=(0,G.useState)(()=>iw(e.plan,p.current)),[v,y]=(0,G.useState)(null),[b,x]=(0,G.useState)(null),[S,C]=(0,G.useState)(null),w=S??b,[T,E]=(0,G.useState)(0),D=(0,G.useCallback)(()=>E(e=>e+1),[]),[O,k]=(0,G.useState)(null),[A,j]=(0,G.useState)(null),[M,ee]=(0,G.useState)(null),te=(0,G.useRef)(e.model??`claude-opus-4-8`),[ne,N]=(0,G.useState)(te.current),P=(0,G.useRef)(void 0),[re,F]=(0,G.useState)();(0,G.useEffect)(()=>{if(!re)return;let e=setTimeout(()=>F(void 0),4e3);return()=>clearTimeout(e)},[re]);let I=(0,G.useCallback)(e=>{let t=r.nodes.find(t=>t.id===e);return t?t.type===`user_story`?t.text.slice(0,40):t.title:e},[r]),[ie,L]=(0,G.useState)(e.chat??[]),[R,ae]=(0,G.useState)(!1),[oe,se]=(0,G.useState)();async function ce(e){let t=e.trim();if(!t||R||!n)return;let r=vw(ie);L(e=>[...e,{role:`user`,text:t,at:new Date().toISOString()}]),ae(!0),se(void 0);try{let e=await n.chat(t,r,te.current);i(e.plan),L(t=>[...t,{...e.reply,...e.toolCalls.length>0?{toolCalls:e.toolCalls}:{},...e.resolvedRefs.length>0||e.unresolvedRefs.length>0?{refs:{resolved:e.resolvedRefs,unresolved:e.unresolvedRefs}}:{}}])}catch(e){se(e instanceof Error?e.message:String(e))}finally{ae(!1)}}function le(){L([]),se(void 0),n?.clearChat().catch(()=>{})}let[ue,de]=(0,G.useState)(),[fe,pe]=(0,G.useState)(!1);(0,G.useEffect)(()=>{if(!n)return;let e=!1;return n.getPrompt().then(t=>{e||de(t)}).catch(()=>{e||pe(!0)}),()=>{e=!0}},[n]);function me(e){ue&&(de(e===null?{...ue,system:ue.default,custom:!1}:{...ue,system:e,custom:e!==ue.default}),n?.savePrompt(e).catch(()=>{}))}let he=(0,G.useCallback)(async e=>{if(!n)return null;k(e);try{let t=await n.generate(e,te.current);return F(t.mode===`metadata-only`?`Body is hand-edited — updated metadata only, .md files untouched.`:`Generated + validated: ${t.changedFiles.length} file${t.changedFiles.length===1?``:`s`} changed.`),o(n=>{let r=n[e]?.status??`draft`;return{...n,[e]:t.mode===`generated`?{...n[e],hasSpec:!0,handEdited:!1,status:r}:n[e]??{hasSpec:!0,handEdited:!0,status:r}}}),t.mode}catch(e){return F(e instanceof Error?e.message:String(e)),null}finally{k(null)}},[n]),ge=(0,G.useCallback)(async(e,n)=>{try{await t.setStatus(e,n),o(t=>({...t,[e]:{...t[e]??{hasSpec:!1,handEdited:!1,status:n},status:n}}))}catch(e){F(e instanceof Error?e.message:String(e))}},[t]),_e=(0,G.useCallback)(async(e,n)=>{try{await t.setImplemented(e,n),o(t=>({...t,[e]:{...t[e]??{hasSpec:!1,handEdited:!1,status:`draft`},implemented:n}}))}catch(e){F(e instanceof Error?e.message:String(e))}},[t]),ve=(0,G.useCallback)(async(e,n)=>{try{return{status:`ok`,result:await t.apply(e,n)}}catch(e){return e instanceof So&&e.handEdit?{status:`hand-edit`}:{status:`error`,message:e instanceof Error?e.message:String(e)}}},[t]),ye=(0,G.useCallback)(e=>{(async()=>{try{let n=await t.loadSession();i(n.plan),o(n.specStates);let r=e.newCapabilities.length;F(`Applied ${I(e.specId)} — folded into specs/ and archived.`+(r>0?` +${r} capability root${r===1?``:`s`}.`:``))}catch{F(`Applied — reload to see the folded state.`)}})()},[t,I]);(0,G.useEffect)(()=>{let e=RC(r,s,{hideEmptyCaps:u});p.current=e,h(rw(r,e,{...n?{generate:e=>void he(e)}:{},generatingId:O,setStatus:(e,t)=>void ge(e,t),setImplemented:(e,t)=>void _e(e,t),apply:e=>{let t=r.nodes.find(t=>t.id===e);ee({id:e,title:t?.type===`proposal`?t.title:e})}},a)),_(iw(r,e))},[r,O,he,ge,_e,a,s,u,n,T]);let be=(0,G.useMemo)(()=>aw(m,g,w),[m,g,w]),xe=(0,G.useMemo)(()=>sw(m,be),[m,be]),Se=(0,G.useMemo)(()=>cw(g,be),[g,be]),Ce=(0,G.useCallback)(()=>{clearTimeout(P.current),P.current=setTimeout(()=>{t.saveUiState({...t.llm?{model:te.current}:{},collapsedGroups:l.current,hideEmptySpecs:f.current}).catch(()=>{})},800)},[t]),we=(0,G.useCallback)(()=>{d(e=>{let t=!e;return f.current=t,t}),Ce()},[Ce]),Te=(0,G.useCallback)(e=>{let t=OC(r.nodes.filter(e=>e.type===`capability`)).map(e=>e.id);c(n=>{let r=new Set(n);if(r.has(e)){r.delete(e);let n=WC(UC(t),e);for(let e of n?.children??[])r.add(e.key)}else{r.add(e);for(let t of[...r])t.startsWith(`${e}-`)&&r.delete(t)}let i=[...r];return l.current=i,i}),Ce()},[r,Ce]);function Ee(e){te.current=e,N(e),Ce()}let De=(0,G.useCallback)(e=>e.rowKeys.filter(e=>e!==`__unscheduled`&&e!==`__stories`),[]),Oe=(0,G.useCallback)(async e=>{try{await t.arrangeRow(e),i(t=>({...t,nodes:t.nodes.map(t=>{let n=e.indexOf(t.id);return n===-1?t:{...t,order:n}})}))}catch(e){F(e instanceof Error?e.message:String(e))}},[t]),ke=(0,G.useCallback)(e=>{let t=e.map(e=>e.type!==`position`||!e.position?e:r.nodes.find(t=>t.id===FC(e.id))?.type===`capability`?{...e,position:{...e.position,x:80}}:e);h(e=>_b(t,e))},[r]),Ae=(0,G.useCallback)(e=>{let{rowIndex:t,col:n}=zC(e.position.x,e.position.y),r=p.current.rowKeys.length;y({rowIndex:Math.max(0,Math.min(t,r)),col:Math.max(0,n)})},[]),je=(0,G.useCallback)((e,t)=>{let n=OC(r.nodes.filter(e=>e.type===`capability`)).map(e=>e.id),{rowIndex:i}=zC(e.position.x,e.position.y),a=n.filter(e=>e!==t),o=Math.max(0,Math.min(i,a.length)),s=[...a.slice(0,o),t,...a.slice(o)];if(s.every((e,t)=>e===n[t])){D();return}Oe(s)},[r,Oe,D]),Me=(0,G.useCallback)(async(e,n,a,o)=>{try{if(!r.edges.some(t=>t.type===`targets`&&t.from===a&&t.to===e)){let n=await t.link(a,e);i(e=>({...e,edges:[...e.edges,n]}))}let s=VC(BC((p.current.occupantsByRow.get(n)??[]).filter(t=>t!==e),e,o),r);await Oe(s),F(`Scheduled ${I(e)}.`)}catch(e){F(e instanceof Error?e.message:String(e))}},[t,r,Oe,I]),Ne=(0,G.useCallback)(async(e,n)=>{let a=p.current.capsByRow.get(n)??(NC(n)===null?[n]:[]),o=r.edges.filter(t=>t.type===`targets`&&t.to===e&&a.includes(t.from));try{if(o.length>0){for(let e of o)await t.unlink(e.from,e.to);i(t=>({...t,edges:t.edges.filter(t=>!(t.type===`targets`&&t.to===e&&a.includes(t.from)))})),F(`Unscheduled ${I(e)}.`);return}let n=r.edges.filter(t=>t.type===`stacked`&&t.from===e).map(e=>e.to);if(n.length===0){D();return}let s=new Map(r.nodes.map(e=>[e.id,e.order])),c=n.sort((e,t)=>(s.get(e)??0)-(s.get(t)??0)||e.localeCompare(t))[0];await t.unlink(e,c),i(t=>({...t,edges:t.edges.filter(t=>!(t.type===`stacked`&&t.from===e&&t.to===c))})),F(`Removed dependency ${I(c)}.`)}catch(e){F(e instanceof Error?e.message:String(e))}},[t,r,I,D]),Pe=(0,G.useCallback)(e=>{y(null);let t=FC(e.id),n=r.nodes.find(e=>e.id===t);if(!n){D();return}if(n.type===`capability`){je(e,t);return}if(n.type!==`proposal`){D();return}let i=p.current,{rowIndex:a,col:o}=zC(e.position.x,e.position.y),s=De(i),c=IC(e.id),l=a>=0&&a<s.length?s[a]:void 0,u=Math.max(1,o);if(l===void 0||o<0){c?Ne(t,c):D();return}let d=i.capsByRow.get(l)??[];if(d.length===0){D();return}if(c===l){let e=VC(BC((i.occupantsByRow.get(l)??[]).filter(e=>e!==t),t,u),r);Oe(e);return}Me(t,l,d[0],u)},[r,De,Oe,Ne,je,Me,D]),Fe=(0,G.useCallback)((e,t,n)=>{let i=r.nodes.find(t=>t.id===e);if(!i)return;if(i.type===`user_story`){F(`Stories are scheduled by containing them in a proposal.`);return}let a=p.current,{rowIndex:o,col:s}=zC(t,n),c=De(a),l=o>=0&&o<c.length?c[o]:void 0;if(!l){F(`Drop onto a spec row to schedule the card.`);return}let u=a.capsByRow.get(l)??[];if(u.length===0){F(`That row can’t hold a card.`);return}Me(e,l,u[0],Math.max(1,s))},[r,De,Me]);async function Ie(e,n){try{let r=await t.createSpec(e,n);return i(e=>({...e,nodes:[...e.nodes,r]})),!0}catch(e){return F(e instanceof Error?e.message:String(e)),!1}}async function Le(e){try{let n=await t.createStory(e);return i(e=>({...e,nodes:[...e.nodes,n]})),!0}catch(e){return F(e instanceof Error?e.message:String(e)),!1}}let Re=(0,G.useCallback)(async(e,n)=>{try{let r=await t.link(e,n);return i(e=>({...e,edges:[...e.edges,r]})),!0}catch(e){return F(e instanceof Error?e.message:String(e)),!1}},[t]),ze=(0,G.useCallback)(async(e,t,n)=>{let r=RC(e,s,{hideEmptyCaps:u}),i=new Map(e.nodes.map(e=>[e.id,e.order])),a=(e,t)=>(i.get(e)??0)-(i.get(t)??0)||e.localeCompare(t),o=[],c=!1;for(let i of r.rowKeys){let s=r.occupantsByRow.get(i)??[];if(!s.includes(t)||!s.includes(n))continue;let l=[...s].sort(a),u=VC(l,e);u.some((e,t)=>e!==l[t])&&(c=!0);for(let e of u)o.includes(e)||o.push(e)}c&&o.length>0?(await Oe(o),F(`Arranged ${I(t)} after ${I(n)}.`)):D()},[s,u,Oe,I,D]),Be=(0,G.useCallback)(e=>{if(!e.source||!e.target)return;let n=r.nodes.find(t=>t.id===FC(e.source)),a=r.nodes.find(t=>t.id===FC(e.target));if(n?.type===`proposal`&&a?.type===`proposal`){(async()=>{try{let e=await t.link(a.id,n.id),o={...r,edges:[...r.edges,e]};i(o),await ze(o,e.from,e.to)}catch(e){F(e instanceof Error?e.message:String(e))}})();return}n&&a&&Re(n.id,a.id)},[t,Re,r,ze]),Ve=(0,G.useCallback)(async(e,n)=>{try{await t.unlink(e,n),i(t=>({...t,edges:t.edges.filter(t=>!(t.from===e&&t.to===n))})),F(`Unlinked ${I(e)} -> ${I(n)}.`)}catch(e){F(e instanceof Error?e.message:String(e))}},[t,I]),He=(0,G.useCallback)(e=>{let t=e.filter(e=>e.type!==`remove`);t.length>0&&_(e=>vb(t,e));for(let t of e){if(t.type!==`remove`)continue;let[e,n]=t.id.split(`->`);e&&n&&Ve(e,n)}},[Ve]),Ue=(0,G.useMemo)(()=>r.nodes.filter(e=>e.type===`capability`||e.type===`proposal`).map(e=>({id:e.id,label:(e.type,e.title),kind:e.type===`capability`?`capability`:`proposal`})),[r]),We=(0,G.useCallback)(e=>{let t=p.current,n=r.nodes.find(t=>t.id===e);if(!n)return null;if(n.type===`capability`)return t.hidden.has(e)?`hidden`:t.positions[e]??null;let i=t.memberRowsByProp.get(e)??[],a=i.length>0?PC(e,i[0]):e;return t.positions[a]??null},[r]),Ge=(0,G.useCallback)(e=>{c(t=>{let n=t.filter(t=>!(e===t||e.startsWith(`${t}-`)));return n.length===t.length?t:(l.current=n,n)}),Ce()},[Ce]);return(0,G.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(C(null),x(null))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),(0,X.jsxs)(`div`,{className:`app`,children:[(0,X.jsx)(qC,{rootName:e.rootName,hideEmptySpecs:u,onToggleHideEmpty:we,...n?{model:ne,onModelChange:Ee}:{}}),(0,X.jsxs)(`main`,{className:`workspace`,children:[(0,X.jsxs)(pw,{rfNodes:xe,rfEdges:Se,onConnect:Be,onEdgesChange:He,onNodesChange:ke,onNodeDrag:Ae,onNodeDragStop:Pe,onBacklogDrop:Fe,dragPreview:v,searchItems:Ue,resolveCard:We,revealCard:Ge,onNodeMouseEnter:e=>x(FC(e)),onNodeMouseLeave:()=>x(null),onPaneClick:()=>C(null),onNodeClick:e=>{let t=NC(e);if(t!==null){C(e),Te(t);return}let n=FC(e);C(n);let i=r.nodes.find(e=>e.id===n);i?.type===`capability`?j({id:i.id,title:i.title,kind:`capability`}):i?.type===`proposal`&&a[n]?.hasSpec&&j({id:i.id,title:i.title,kind:`proposal`})},toast:re,children:[A&&(0,X.jsx)(Mw,{specId:A.id,title:A.title,kind:A.kind===`capability`?`capability`:`change`,generating:O===A.id,loadArtifacts:A.kind===`capability`?async e=>{let{content:n}=await t.getCapabilitySpec(e);return{specId:e,handEdited:!1,files:[{path:`spec.md`,content:n}]}}:e=>t.getSpecArtifacts(e),...n&&A.kind===`proposal`?{onRegenerate:()=>he(A.id)}:{},onClose:()=>j(null)}),M&&(0,X.jsx)(JC,{specId:M.id,title:M.title,apply:e=>ve(M.id,e),onApplied:ye,onClose:()=>ee(null)})]}),(0,X.jsx)(xw,{plan:r,llm:!!n,onCreateSpec:Ie,onCreateStory:Le,promptInfo:ue,promptFailed:fe,onSavePrompt:me,chat:ie,chatPending:R,chatError:oe,onSendChat:ce,onClearChat:le,searchFiles:n?e=>n.searchFiles(e):void 0})]})]})}var Pw=Eo(`/api`,{llm:!0});function Fw(){let[e,t]=(0,G.useState)({mode:`loading`}),[n,r]=(0,G.useState)(()=>{let e=new URLSearchParams(window.location.search);if(e.get(`view`)===`canvas`)return{kind:`canvas`};let t=e.get(`change`);return t===null||t===``?{kind:`gallery`}:{kind:`preview`,id:t}}),[i,a]=(0,G.useState)(null),o=e=>{let t=new URL(window.location.href);t.searchParams.set(`change`,e),t.searchParams.delete(`view`),window.history.pushState({},``,t),a(null),r({kind:`preview`,id:e})},s=()=>{let e=new URL(window.location.href);e.searchParams.delete(`change`),window.history.pushState({},``,e),r({kind:`gallery`})},[c,l]=(0,G.useState)(null);return(0,G.useEffect)(()=>{Do(Pw).then(t)},[]),(0,G.useEffect)(()=>{if(n.kind!==`preview`)return;let e=n.id;fetch(`/api/gallery/${encodeURIComponent(e)}`).then(e=>e.ok?e.json():null).then(a).catch(()=>a(null))},[n]),(0,G.useEffect)(()=>{n.kind!==`gallery`||c!==null||fetch(`/api/gallery`).then(e=>e.ok?e.json():null).then(e=>l(e??{roadmap:[],backlog:[]})).catch(()=>l({roadmap:[],backlog:[]}))},[n.kind,c]),e.mode===`loading`?(0,X.jsx)(`div`,{className:`boot`,children:`Loading…`}):e.mode===`error`?(0,X.jsxs)(`div`,{className:`boot`,children:[`Could not reach the specplan server: `,e.detail,`. Launch it with`,` `,(0,X.jsx)(`code`,{children:`specplan [rootDir]`}),` and reload.`]}):n.kind===`gallery`?c===null?(0,X.jsx)(`div`,{className:`boot`,children:`Reading changes…`}):(0,X.jsx)(qu,{backlog:c.backlog,onAddToRoadmap:e=>{fetch(`/api/gallery/roadmap`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:e})}).then(()=>l(null)).catch(()=>l(null))},archived:c.archived??[],missing:c.missing??[],onDelete:e=>{fetch(`/api/gallery/${encodeURIComponent(e)}`,{method:`DELETE`}).then(()=>l(null)).catch(()=>l(null))},onOpen:o,onReorder:(e,t)=>{fetch(`/api/gallery/reorder`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:e,before:t})}).then(()=>l(null)).catch(()=>l(null))},roadmap:c.roadmap}):n.kind===`preview`?i===null?(0,X.jsx)(`div`,{className:`boot`,children:`Reading the change…`}):(0,X.jsx)(zu,{onBack:s,preview:i}):(0,X.jsx)(Nw,{session:e.session,api:Pw})}var Iw=document.getElementById(`root`);if(!Iw)throw Error(`Missing #root element`);(0,K.createRoot)(Iw).render((0,X.jsx)(G.StrictMode,{children:(0,X.jsx)(Fw,{})}));export{dm as a,_p as c,hp as d,gp as f,i as g,c as h,vm as i,Bp as l,Fu as m,Ty as n,rm as o,$f as p,Sy as r,am as s,Dw as t,Rp as u};
91
+ `));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,G.useEffect)(()=>{let n=t?.target??vb,c=t?.actInsideInputWithModifier??!0;if(e!==null){let e=e=>{if(i.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!i.current||i.current&&!c)&&K_(e))return!1;let n=xb(e.code,s);if(a.current.add(e[n]),bb(o,a.current,!1)){let n=e.composedPath?.()?.[0]||e.target,a=n?.nodeName===`BUTTON`||n?.nodeName===`A`;t.preventDefault!==!1&&(i.current||!a)&&e.preventDefault(),r(!0)}},l=e=>{let t=xb(e.code,s);bb(o,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),e.key===`Meta`&&a.current.clear(),i.current=!1},u=()=>{a.current.clear(),r(!1)};return n?.addEventListener(`keydown`,e),n?.addEventListener(`keyup`,l),window.addEventListener(`blur`,u),window.addEventListener(`contextmenu`,u),()=>{n?.removeEventListener(`keydown`,e),n?.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,u),window.removeEventListener(`contextmenu`,u)}}},[e,r]),n}function bb(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function xb(e,t){return t.includes(e)?`code`:`key`}var Sb=()=>{let e=Gy();return(0,G.useMemo)(()=>({zoomIn:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{let{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[r,i,a],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??a},n),!0):!1},getViewport:()=>{let[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{let{width:r,height:i,minZoom:a,maxZoom:o,panZoom:s}=e.getState(),c=N_(t,r,i,a,o,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{let{transform:r,snapGrid:i,snapToGrid:a,domNode:o}=e.getState();if(!o)return t;let{x:s,y:c}=o.getBoundingClientRect(),l={x:t.x-s,y:t.y-c},u=n.snapGrid??i;return O_(l,r,n.snapToGrid??a,u)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:i,y:a}=r.getBoundingClientRect(),o=k_(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function Cb(e,t){let n=[],r=new Map,i=[];for(let t of e)if(t.type===`add`){i.push(t);continue}else if(t.type===`remove`||t.type===`replace`)r.set(t.id,[t]);else{let e=r.get(t.id);e?e.push(t):r.set(t.id,[t])}for(let e of t){let t=r.get(e.id);if(!t){n.push(e);continue}if(t[0].type===`remove`)continue;if(t[0].type===`replace`){n.push({...t[0].item});continue}let i={...e};for(let e of t)wb(e,i);n.push(i)}return i.length&&i.forEach(e=>{e.index===void 0?n.push({...e.item}):n.splice(e.index,0,{...e.item})}),n}function wb(e,t){switch(e.type){case`select`:t.selected=e.selected;break;case`position`:e.position!==void 0&&(t.position=e.position),e.dragging!==void 0&&(t.dragging=e.dragging);break;case`dimensions`:e.dimensions!==void 0&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes===`width`)&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes===`height`)&&(t.height=e.dimensions.height))),typeof e.resizing==`boolean`&&(t.resizing=e.resizing);break}}function Tb(e,t){return Cb(e,t)}function Eb(e,t){return Cb(e,t)}function Db(e,t){return{id:e,type:`select`,selected:t}}function Ob(e,t=new Set,n=!1){let r=[];for(let[i,a]of e){let e=t.has(i);!(a.selected===void 0&&!e)&&a.selected!==e&&(n&&(a.selected=e),r.push(Db(a.id,e)))}return r}function kb({items:e=[],lookup:t}){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let[r,i]of e.entries()){let e=t.get(i.id),a=e?.internals?.userNode??e;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:`replace`}),a===void 0&&n.push({item:i,type:`add`,index:r})}for(let[e]of t)r.get(e)===void 0&&n.push({id:e,type:`remove`});return n}function Ab(e){return{id:e.id,type:`remove`}}var jb=E_(`React Flow`,`https://reactflow.dev/`);function Mb(e,t,n={}){return av(e,t,{...n,onError:n.onError??jb})}var Nb=e=>e_(e),Pb=e=>$g(e);function Fb(e){return(0,G.forwardRef)(e)}var Ib=typeof window<`u`?G.useLayoutEffect:G.useEffect;function Lb(e){let[t,n]=(0,G.useState)(BigInt(0)),[r]=(0,G.useState)(()=>Rb(()=>n(e=>e+BigInt(1))));return Ib(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function Rb(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var zb=(0,G.createContext)(null);function Bb({children:e}){let t=Gy(),n=Lb((0,G.useCallback)(e=>{let{nodes:n=[],setNodes:r,hasDefaultNodes:i,onNodesChange:a,nodeLookup:o,fitViewQueued:s,onNodesChangeMiddlewareMap:c}=t.getState(),l=n;for(let t of e)l=typeof t==`function`?t(l):t;let u=kb({items:l,lookup:o});for(let e of c.values())u=e(u);i&&r(l),u.length>0?a?.(u):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:r}=t.getState();e&&r(n)})},[])),r=Lb((0,G.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a,edgeLookup:o}=t.getState(),s=n;for(let t of e)s=typeof t==`function`?t(s):t;i?r(s):a&&a(kb({items:s,lookup:o}))},[])),i=(0,G.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,X.jsx)(zb.Provider,{value:i,children:e})}function Vb(){let e=(0,G.useContext)(zb);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var Hb=e=>!!e.panZoom;function Ub(){let e=Sb(),t=Gy(),n=Vb(),r=$(Hb),i=(0,G.useMemo)(()=>{let e=e=>t.getState().nodeLookup.get(e),r=e=>{n.nodeQueue.push(e)},i=e=>{n.edgeQueue.push(e)},a=e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState(),i=Nb(e)?e:n.get(e.id),a=i.parentId?R_(i.position,i.measured,i.parentId,n,r):i.position;return y_({...i,position:a,width:i.measured?.width??i.width,height:i.measured?.height??i.height})},o=(e,t,n={replace:!1})=>{r(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&Nb(e)?e:{...r,...e}}return r}))},s=(e,t,n={replace:!1})=>{i(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&Pb(e)?e:{...r,...e}}return r}))};return{getNodes:()=>t.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=t.getState();return e.map(e=>({...e}))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:r,setEdges:i,addNodes:e=>{let t=Array.isArray(e)?e:[e];n.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];n.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:n=[],transform:r}=t.getState(),[i,a,o]=r;return{nodes:e.map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:i,y:a,zoom:o}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{let{nodes:r,edges:i,onNodesDelete:a,onEdgesDelete:o,triggerNodeChanges:s,triggerEdgeChanges:c,onDelete:l,onBeforeDelete:u}=t.getState(),{nodes:d,edges:f}=await u_({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(Ab);o?.(f),c(e)}if(m){let e=d.map(Ab);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=w_(e),o=i?e:a(e),s=r!==void 0;return o?(r||t.getState().nodes).filter(r=>{let a=t.getState().nodeLookup.get(r.id);if(a&&!i&&(r.id===e.id||!a.internals.positionAbsolute))return!1;let c=y_(s?r:a),l=C_(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=w_(e)?e:a(e);if(!r)return!1;let i=C_(r,t);return n&&i>0||i>=t.width*t.height||i>=r.width*r.height},updateNode:o,updateNodeData:(e,t,n={replace:!1})=>{o(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},getNodesBounds:e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState();return r_(e,{nodeLookup:n,nodeOrigin:r})},getHandleConnections:({type:e,id:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${e}${n?`-${n}`:``}`)?.values()??[]),getNodeConnections:({type:e,handleId:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${e?n?`-${e}-${n}`:`-${e}`:``}`)?.values()??[]),fitView:async e=>{let r=t.getState().fitViewResolver??B_();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,G.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var Wb=e=>e.selected,Gb=typeof window<`u`?window:void 0;function Kb({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=Gy(),{deleteElements:r}=Ub(),i=yb(e,{actInsideInputWithModifier:!1}),a=yb(t,{target:Gb});(0,G.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(Wb),edges:e.filter(Wb)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,G.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function qb(e){let t=Gy();(0,G.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=U_(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,Vg.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener(`resize`,n);let t=new ResizeObserver(()=>n());return t.observe(e.current),()=>{window.removeEventListener(`resize`,n),t&&e.current&&t.unobserve(e.current)}}},[])}var Jb={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},Yb=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function Xb({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:a=Kg.Free,zoomOnDoubleClick:o=!0,panOnDrag:s=!0,defaultViewport:c,translateExtent:l,minZoom:u,maxZoom:d,zoomActivationKeyCode:f,preventScrolling:p=!0,children:m,noWheelClassName:h,noPanClassName:g,onViewportChange:_,isControlledViewport:v,paneClickDistance:y,selectionOnDrag:b}){let x=Gy(),S=(0,G.useRef)(null),{userSelectionActive:C,lib:w,connectionInProgress:T}=$(Yb,By),E=yb(f),D=(0,G.useRef)();qb(S);let O=(0,G.useCallback)(e=>{_?.({x:e[0],y:e[1],zoom:e[2]}),v||x.setState({transform:e})},[_,v]);return(0,G.useEffect)(()=>{if(S.current){D.current=my({domNode:S.current,minZoom:u,maxZoom:d,translateExtent:l,viewport:c,onDraggingChange:e=>x.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=x.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=x.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=x.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=D.current.getViewport();return x.setState({panZoom:D.current,transform:[e,t,n],domNode:S.current.closest(`.react-flow`)}),()=>{D.current?.destroy()}}},[]),(0,G.useEffect)(()=>{D.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:a,zoomOnDoubleClick:o,panOnDrag:s,zoomActivationKeyPressed:E,preventScrolling:p,noPanClassName:g,userSelectionActive:C,noWheelClassName:h,lib:w,onTransformChange:O,connectionInProgress:T,selectionOnDrag:b,paneClickDistance:y})},[e,t,n,r,i,a,o,s,E,p,g,C,h,w,O,T,b,y]),(0,X.jsx)(`div`,{className:`react-flow__renderer`,ref:S,style:Jb,children:m})}var Zb=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Qb(){let{userSelectionActive:e,userSelectionRect:t}=$(Zb,By);return e&&t?(0,X.jsx)(`div`,{className:`react-flow__selection react-flow__container`,style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}var $b=(e,t)=>n=>{n.target===t.current&&e?.(n)},ex=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function tx({isSelecting:e,selectionKeyPressed:t,selectionMode:n=qg.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:a,selectionOnDrag:o,onSelectionStart:s,onSelectionEnd:c,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:f,onPaneMouseMove:p,onPaneMouseLeave:m,children:h}){let g=(0,G.useRef)(0),_=Gy(),{userSelectionActive:v,elementsSelectable:y,dragging:b,panBy:x,autoPanSpeed:S}=$(ex,By),C=y&&(e||v),w=(0,G.useRef)(null),T=(0,G.useRef)(),E=(0,G.useRef)(new Set),D=(0,G.useRef)(new Set),O=(0,G.useRef)(!1),k=(0,G.useRef)(!1),A=(0,G.useRef)({x:0,y:0}),j=(0,G.useRef)(!1),M=e=>{if(k.current||O.current||_.getState().connection.inProgress){k.current=!1,O.current=!1;return}l?.(e),_.getState().resetSelectedElements(),_.setState({nodesSelectionActive:!1})},ee=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}u?.(e)},te=d?e=>d(e):void 0,ne=e=>{k.current&&=(e.stopPropagation(),!1)},N=n=>{let{domNode:r,transform:i}=_.getState();if(T.current=r?.getBoundingClientRect(),!T.current)return;let a=n.target===w.current;if(!a&&n.target.closest(`.nokey`)||!e||!(o&&a||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),k.current=!1;let{x:s,y:c}=J_(n.nativeEvent,T.current),l=O_({x:s,y:c},i);_.setState({userSelectionRect:{width:0,height:0,startX:l.x,startY:l.y,x:s,y:c}}),a||(n.stopPropagation(),n.preventDefault())};function P(e,t){let{userSelectionRect:r}=_.getState();if(!r)return;let{transform:i,nodeLookup:a,edgeLookup:o,connectionLookup:s,triggerNodeChanges:c,triggerEdgeChanges:l,defaultEdgeOptions:u}=_.getState(),d={x:r.startX,y:r.startY},{x:f,y:p}=k_(d,i),m={startX:d.x,startY:d.y,x:e<f?e:f,y:t<p?t:p,width:Math.abs(e-f),height:Math.abs(t-p)},h=E.current,g=D.current;E.current=new Set(a_(a,m,i,n===qg.Partial,!0).map(e=>e.id)),D.current=new Set;let v=u?.selectable??!0;for(let e of E.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=o.get(e);t&&(t.selectable??v)&&D.current.add(e)}}z_(h,E.current)||c(Ob(a,E.current,!0)),z_(g,D.current)||l(Ob(o,D.current)),_.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}function re(){if(!i||!T.current)return;let[e,t]=h_(A.current,T.current,S);x({x:e,y:t}).then(e=>{if(!k.current||!e){g.current=requestAnimationFrame(re);return}let{x:t,y:n}=A.current;P(t,n),g.current=requestAnimationFrame(re)})}let F=()=>{cancelAnimationFrame(g.current),g.current=0,j.current=!1};return(0,G.useEffect)(()=>()=>F(),[]),(0,X.jsxs)(`div`,{className:nd([`react-flow__pane`,{draggable:r===!0||Array.isArray(r)&&r.includes(0),dragging:b,selection:e}]),onClick:C?void 0:$b(M,w),onContextMenu:$b(ee,w),onWheel:$b(te,w),onPointerEnter:C?void 0:f,onPointerMove:C?e=>{let{userSelectionRect:n,transform:r,resetSelectedElements:i}=_.getState();if(!T.current||!n)return;let{x:o,y:c}=J_(e.nativeEvent,T.current);A.current={x:o,y:c};let l=k_({x:n.startX,y:n.startY},r);if(!k.current){let n=t?0:a;if(Math.hypot(o-l.x,c-l.y)<=n)return;i(),s?.(e)}k.current=!0,j.current||=(re(),!0),P(o,c)}:p,onPointerUp:e=>{if(!C){e.target===w.current&&_.getState().connection.inProgress&&(O.current=!0);return}e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!v&&e.target===w.current&&_.getState().userSelectionRect&&M?.(e),_.setState({userSelectionActive:!1,userSelectionRect:null}),k.current&&(c?.(e),_.setState({nodesSelectionActive:E.current.size>0})),F())},onPointerCancel:C?e=>{e.target?.releasePointerCapture?.(e.pointerId),F()}:void 0,onPointerDownCapture:C?N:void 0,onClickCapture:C?ne:void 0,onPointerLeave:m,ref:w,style:Jb,children:[h,(0,X.jsx)(Qb,{})]})}function nx({id:e,store:t,unselect:n=!1,nodeRef:r}){let{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:o,nodeLookup:s,onError:c}=t.getState(),l=s.get(e);if(!l){c?.(`012`,Vg.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function rx({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=Gy(),[c,l]=(0,G.useState)(!1),u=(0,G.useRef)();return(0,G.useEffect)(()=>{if(!t)return u.current=Uv({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{nx({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}}),()=>{u.current?.destroy(),u.current=void 0}},[t,s,e]),(0,G.useEffect)(()=>{t||!e.current||!u.current||u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:o})},[n,r,t,a,e,i,o]),c}var ix=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function ax(){let e=Gy();return(0,G.useCallback)(t=>{let{nodeExtent:n,snapToGrid:r,snapGrid:i,nodesDraggable:a,onError:o,updateNodePositions:s,nodeLookup:c,nodeOrigin:l}=e.getState(),u=new Map,d=ix(a),f=r?i[0]:5,p=r?i[1]:5,m=t.direction.x*f*t.factor,h=t.direction.y*p*t.factor;for(let[,e]of c){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+m,y:e.internals.positionAbsolute.y+h};r&&(t=D_(t,i));let{position:a,positionAbsolute:s}=l_({nodeId:e.id,nextPosition:t,nodeLookup:c,nodeExtent:n,nodeOrigin:l,onError:o});e.position=a,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}var ox=(0,G.createContext)(null),sx=ox.Provider;ox.Consumer;var cx=()=>(0,G.useContext)(ox),lx=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),ux=(0,G.createContext)(null);function dx({children:e}){let t=$(lx,By);return(0,X.jsx)(ux.Provider,{value:t,children:e})}function fx(){let e=(0,G.useContext)(ux);if(!e)throw Error(`useHandleConfig must be used within a HandleConfigProvider`);return e}var px={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},mx=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o;if(!s&&!i)return px;let u=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===t&&s?.type===n,connectingTo:u,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:a===Gg.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function hx({type:e=`source`,position:t=Q.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:a=!0,id:o,onConnect:s,children:c,className:l,onMouseDown:u,onTouchStart:d,...f},p){let m=o||null,h=e===`target`,g=Gy(),_=cx(),{connectOnClick:v,noPanClassName:y,rfId:b}=fx(),{connectingFrom:x,connectingTo:S,clickConnecting:C,isPossibleEndHandle:w,connectionInProcess:T,clickConnectionInProcess:E,valid:D}=$(mx(_,m,e),By);_||g.getState().onError?.(`010`,Vg.error010());let O=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=g.getState(),i={...t,...e};if(r){let{edges:e,setEdges:t,onError:n}=g.getState();t(Mb(i,e,{onError:n}))}n?.(i),s?.(i)},k=e=>{if(!_)return;let t=q_(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();$v.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:h,handleId:m,nodeId:_,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:O,isValidConnection:n||((...e)=>g.getState().isValidConnection?.(...e)??!0),getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):d?.(e)};return(0,X.jsx)(`div`,{"data-handleid":m,"data-nodeid":_,"data-handlepos":t,"data-id":`${b}-${_}-${m}-${e}`,className:nd([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:C,connectingfrom:x,connectingto:S,valid:D,connectionindicator:r&&(!T||w)&&(T||E?a:i)}]),onMouseDown:k,onTouchStart:k,onClick:v?t=>{let{onClickConnectStart:r,onClickConnectEnd:a,connectionClickStartHandle:o,connectionMode:s,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:f}=g.getState();if(!_||!o&&!i)return;if(!o){r?.(t.nativeEvent,{nodeId:_,handleId:m,handleType:e}),g.setState({connectionClickStartHandle:{nodeId:_,type:e,id:m}});return}let p=W_(t.target),h=n||c,{connection:v,isValid:y}=$v.isValid(t.nativeEvent,{handle:{nodeId:_,id:m,type:e},connectionMode:s,fromNodeId:o.nodeId,fromHandleId:o.id||null,fromType:o.type,isValidConnection:h,flowId:u,doc:p,lib:l,nodeLookup:d});y&&v&&O(v);let b=structuredClone(f);delete b.inProgress,b.toPosition=b.toHandle?b.toHandle.position:null,a?.(t,b),g.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:c})}var gx=(0,G.memo)(Fb(hx));function _x({data:e,isConnectable:t,sourcePosition:n=Q.Bottom}){return(0,X.jsxs)(X.Fragment,{children:[e?.label,(0,X.jsx)(gx,{type:`source`,position:n,isConnectable:t})]})}function vx({data:e,isConnectable:t,targetPosition:n=Q.Top,sourcePosition:r=Q.Bottom}){return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(gx,{type:`target`,position:n,isConnectable:t}),e?.label,(0,X.jsx)(gx,{type:`source`,position:r,isConnectable:t})]})}function yx(){return null}function bx({data:e,isConnectable:t,targetPosition:n=Q.Top}){return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(gx,{type:`target`,position:n,isConnectable:t}),e?.label]})}var xx={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Sx={input:_x,default:vx,output:bx,group:yx};function Cx(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}var wx=e=>{let{width:t,height:n,x:r,y:i}=i_(e.nodeLookup,{filter:e=>!!e.selected});return{width:T_(t)?t:null,height:T_(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function Tx({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=Gy(),{width:i,height:a,transformString:o,userSelectionActive:s}=$(wx,By),c=ax(),l=(0,G.useRef)(null);(0,G.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(rx({nodeRef:l,disabled:!u}),!u)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,X.jsx)(`div`,{className:nd([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,X.jsx)(`div`,{ref:l,className:`react-flow__nodesselection-rect`,onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(xx,e.key)&&(e.preventDefault(),c({direction:xx[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var Ex=typeof window<`u`?window:void 0,Dx=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function Ox({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:m,panActivationKeyCode:h,zoomActivationKeyCode:g,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:b,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:w,autoPanOnSelection:T,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,preventScrolling:A,onSelectionContextMenu:j,noWheelClassName:M,noPanClassName:ee,disableKeyboardA11y:te,onViewportChange:ne,isControlledViewport:N}){let{nodesSelectionActive:P,userSelectionActive:re}=$(Dx,By),F=yb(l,{target:Ex}),I=yb(h,{target:Ex}),ie=I||w,L=I||b,R=u&&ie!==!0,ae=F||re||R;return Kb({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,X.jsx)(Xb,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:L,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:!F&&ie,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,zoomActivationKeyCode:g,preventScrolling:A,noWheelClassName:M,noPanClassName:ee,onViewportChange:ne,isControlledViewport:N,paneClickDistance:s,selectionOnDrag:R,children:(0,X.jsxs)(tx,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:ie,autoPanOnSelection:T,isSelecting:!!ae,selectionMode:d,selectionKeyPressed:F,paneClickDistance:s,selectionOnDrag:R,children:[e,P&&(0,X.jsx)(Tx,{onSelectionContextMenu:j,noPanClassName:ee,disableKeyboardA11y:te})]})})}Ox.displayName=`FlowRenderer`;var kx=(0,G.memo)(Ox),Ax=e=>t=>e?a_(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(e=>e.id):Array.from(t.nodeLookup.keys());function jx(e){return $((0,G.useCallback)(Ax(e),[e]),By)}var Mx=e=>e.updateNodeInternals;function Nx(){let e=$(Mx),[t]=(0,G.useState)(()=>typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute(`data-id`);n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,G.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function Px({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=Gy(),a=(0,G.useRef)(null),o=(0,G.useRef)(null),s=(0,G.useRef)(e.sourcePosition),c=(0,G.useRef)(e.targetPosition),l=(0,G.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,G.useEffect)(()=>{a.current&&!e.hidden&&(!u||o.current!==a.current)&&(o.current&&r?.unobserve(o.current),r?.observe(a.current),o.current=a.current)},[u,e.hidden]),(0,G.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,G.useEffect)(()=>{if(a.current){let n=l.current!==t,r=s.current!==e.sourcePosition,o=c.current!==e.targetPosition;(n||r||o)&&(l.current=t,s.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}function Fx({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:a,onDoubleClick:o,nodesDraggable:s,elementsSelectable:c,nodesConnectable:l,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:m,rfId:h,nodeTypes:g,nodeClickDistance:_,onError:v}){let{node:y,internals:b,isParent:x}=$(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},By),S=y.type||`default`,C=g?.[S]||Sx[S];C===void 0&&(v?.(`003`,Vg.error003(S)),S=`default`,C=g?.default||Sx.default);let w=!!(y.draggable||s&&y.draggable===void 0),T=!!(y.selectable||c&&y.selectable===void 0),E=!!(y.connectable||l&&y.connectable===void 0),D=!!(y.focusable||u&&y.focusable===void 0),O=Gy(),k=L_(y),A=Px({node:y,nodeType:S,hasDimensions:k,resizeObserver:d}),j=rx({nodeRef:A,disabled:y.hidden||!w,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:T,nodeClickDistance:_}),M=ax();if(y.hidden)return null;let ee=I_(y),te=Cx(y),ne=T||w||t||n||r||i,N=n?e=>n(e,{...b.userNode}):void 0,P=r?e=>r(e,{...b.userNode}):void 0,re=i?e=>i(e,{...b.userNode}):void 0,F=a?e=>a(e,{...b.userNode}):void 0,I=o?e=>o(e,{...b.userNode}):void 0,ie=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=O.getState();T&&(!r||!w||i>0)&&nx({id:e,store:O,nodeRef:A}),t&&t(n,{...b.userNode})},L=t=>{if(!(K_(t.nativeEvent)||m)){if(Ug.includes(t.key)&&T){let n=t.key===`Escape`;nx({id:e,store:O,unselect:n,nodeRef:A})}else if(w&&y.selected&&Object.prototype.hasOwnProperty.call(xx,t.key)){t.preventDefault();let{ariaLabelConfig:e}=O.getState();O.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),M({direction:xx[t.key],factor:t.shiftKey?4:1})}}},R=()=>{if(m||!A.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=O.getState();i&&(a_(new Map([[e,y]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(y.position.x+ee.width/2,y.position.y+ee.height/2,{zoom:t[2]}))};return(0,X.jsx)(`div`,{className:nd([`react-flow__node`,`react-flow__node-${S}`,{[p]:w},y.className,{selected:y.selected,selectable:T,parent:x,draggable:w,dragging:j}]),ref:A,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:ne?`all`:`none`,visibility:k?`visible`:`hidden`,...y.style,...te},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:N,onMouseMove:P,onMouseLeave:re,onContextMenu:F,onClick:ie,onDoubleClick:I,onKeyDown:D?L:void 0,tabIndex:D?0:void 0,onFocus:D?R:void 0,role:y.ariaRole??(D?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${Jy}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,X.jsx)(sx,{value:e,children:(0,X.jsx)(C,{id:e,data:y.data,type:S,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:y.selected??!1,selectable:T,draggable:w,deletable:y.deletable??!0,isConnectable:E,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:j,dragHandle:y.dragHandle,zIndex:b.z,parentId:y.parentId,...ee})})})}var Ix=(0,G.memo)(Fx),Lx=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Rx(e){let{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=$(Lx,By),a=jx(e.onlyRenderVisibleElements),o=Nx();return(0,X.jsx)(`div`,{className:`react-flow__nodes`,style:Jb,children:a.map(a=>(0,X.jsx)(Ix,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:o,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},a))})}Rx.displayName=`NodeRenderer`;var zx=(0,G.memo)(Rx);function Bx(e){return $((0,G.useCallback)(t=>{if(!e)return t.edges.map(e=>e.id);let n=[];if(t.width&&t.height)for(let e of t.edges){let r=t.nodeLookup.get(e.source),i=t.nodeLookup.get(e.target);r&&i&&nv({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),By)}var Vx=({color:e=`none`,strokeWidth:t=1})=>(0,X.jsx)(`polyline`,{className:`arrow`,style:{strokeWidth:t,...e&&{stroke:e}},strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`}),Hx=({color:e=`none`,strokeWidth:t=1})=>(0,X.jsx)(`polyline`,{className:`arrowclosed`,style:{strokeWidth:t,...e&&{stroke:e,fill:e}},strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`}),Ux={[Xg.Arrow]:Vx,[Xg.ArrowClosed]:Hx};function Wx(e){let t=Gy();return(0,G.useMemo)(()=>Object.prototype.hasOwnProperty.call(Ux,e)?Ux[e]:(t.getState().onError?.(`009`,Vg.error009(e)),null),[e])}var Gx=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:a=`strokeWidth`,strokeWidth:o,orient:s=`auto-start-reverse`})=>{let c=Wx(t);return c?(0,X.jsx)(`marker`,{className:`react-flow__arrowhead`,id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:`-10 -10 20 20`,markerUnits:a,orient:s,refX:`0`,refY:`0`,children:(0,X.jsx)(c,{color:n,strokeWidth:o})}):null},Kx=({defaultColor:e,rfId:t})=>{let n=$(e=>e.edges),r=$(e=>e.defaultEdgeOptions),i=(0,G.useMemo)(()=>yv(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,X.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,X.jsx)(`defs`,{children:i.map(e=>(0,X.jsx)(Gx,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};Kx.displayName=`MarkerDefinitions`;var qx=(0,G.memo)(Kx);function Jx({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:a,labelBgPadding:o=[2,4],labelBgBorderRadius:s=2,children:c,className:l,...u}){let[d,f]=(0,G.useState)({x:1,y:0,width:0,height:0}),p=nd([`react-flow__edge-textwrapper`,l]),m=(0,G.useRef)(null);return(0,G.useEffect)(()=>{if(m.current){let e=m.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n?(0,X.jsxs)(`g`,{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?`visible`:`hidden`,...u,children:[i&&(0,X.jsx)(`rect`,{width:d.width+2*o[0],x:-o[0],y:-o[1],height:d.height+2*o[1],className:`react-flow__edge-textbg`,style:a,rx:s,ry:s}),(0,X.jsx)(`text`,{className:`react-flow__edge-text`,y:d.height/2,dy:`0.3em`,ref:m,style:r,children:n}),c]}):null}Jx.displayName=`EdgeText`;var Yx=(0,G.memo)(Jx);function Xx({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`path`,{...u,d:e,fill:`none`,className:nd([`react-flow__edge-path`,u.className])}),l?(0,X.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&T_(t)&&T_(n)?(0,X.jsx)(Yx,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function Zx({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===Q.Left||e===Q.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function Qx({sourceX:e,sourceY:t,sourcePosition:n=Q.Bottom,targetX:r,targetY:i,targetPosition:a=Q.Top}){let[o,s]=Zx({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=Zx({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=X_({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:s,targetControlX:c,targetControlY:l});return[`M${e},${t} C${o},${s} ${c},${l} ${r},${i}`,u,d,f,p]}function $x(e){return(0,G.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})=>{let[v,y,b]=Qx({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s});return(0,X.jsx)(Xx,{id:e.isInternal?void 0:t,path:v,labelX:y,labelY:b,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})})}var eS=$x({isInternal:!1}),tS=$x({isInternal:!0});eS.displayName=`SimpleBezierEdge`,tS.displayName=`SimpleBezierEdgeInternal`;function nS(e){return(0,G.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=Q.Bottom,targetPosition:m=Q.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=fv({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition});return(0,X.jsx)(Xx,{id:e.isInternal?void 0:t,path:y,labelX:b,labelY:x,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var rS=nS({isInternal:!1}),iS=nS({isInternal:!0});rS.displayName=`SmoothStepEdge`,iS.displayName=`SmoothStepEdgeInternal`;function aS(e){return(0,G.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,X.jsx)(rS,{...n,id:r,pathOptions:(0,G.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var oS=aS({isInternal:!1}),sS=aS({isInternal:!0});oS.displayName=`StepEdge`,sS.displayName=`StepEdgeInternal`;function cS(e){return(0,G.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})=>{let[g,_,v]=ov({sourceX:n,sourceY:r,targetX:i,targetY:a});return(0,X.jsx)(Xx,{id:e.isInternal?void 0:t,path:g,labelX:_,labelY:v,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})})}var lS=cS({isInternal:!1}),uS=cS({isInternal:!0});lS.displayName=`StraightEdge`,uS.displayName=`StraightEdgeInternal`;function dS(e){return(0,G.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=Q.Bottom,targetPosition:s=Q.Top,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=$_({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature});return(0,X.jsx)(Xx,{id:e.isInternal?void 0:t,path:y,labelX:b,labelY:x,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var fS=dS({isInternal:!1}),pS=dS({isInternal:!0});fS.displayName=`BezierEdge`,pS.displayName=`BezierEdgeInternal`;var mS={default:pS,straight:uS,step:sS,smoothstep:iS,simplebezier:tS},hS={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},gS=(e,t,n)=>n===Q.Left?e-t:n===Q.Right?e+t:e,_S=(e,t,n)=>n===Q.Top?e-t:n===Q.Bottom?e+t:e,vS=`react-flow__edgeupdater`;function yS({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,X.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:nd([vS,`${vS}-${s}`]),cx:gS(t,r,e),cy:_S(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function bS({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:a,targetY:o,sourcePosition:s,targetPosition:c,onReconnect:l,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){let m=Gy(),h=(e,t)=>{if(e.button!==0)return;let{autoPanOnConnect:r,domNode:i,connectionMode:a,connectionRadius:o,lib:s,onConnectStart:c,cancelConnection:p,nodeLookup:h,rfId:g,panBy:_,updateConnection:v}=m.getState(),y=t.type===`target`;$v.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:o,domNode:i,handleId:t.id,nodeId:t.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:t.type,lib:s,flowId:g,cancelConnection:p,panBy:_,isValidConnection:(...e)=>m.getState().isValidConnection?.(...e)??!0,onConnect:e=>l?.(n,e),onConnectStart:(r,i)=>{f(!0),u?.(e,n,t.type),c?.(r,i)},onConnectEnd:(...e)=>m.getState().onConnectEnd?.(...e),onReconnectEnd:(e,r)=>{f(!1),d?.(e,n,t.type,r)},updateConnection:v,getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,dragThreshold:m.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},g=e=>h(e,{nodeId:n.target,id:n.targetHandle??null,type:`target`}),_=e=>h(e,{nodeId:n.source,id:n.sourceHandle??null,type:`source`}),v=()=>p(!0),y=()=>p(!1);return(0,X.jsxs)(X.Fragment,{children:[(e===!0||e===`source`)&&(0,X.jsx)(yS,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,X.jsx)(yS,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function xS({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,rfId:m,edgeTypes:h,noPanClassName:g,onError:_,disableKeyboardA11y:v}){let y=$(t=>t.edgeLookup.get(e)),b=$(e=>e.defaultEdgeOptions);y=b?{...b,...y}:y;let x=y.type||`default`,S=h?.[x]||mS[x];S===void 0&&(_?.(`011`,Vg.error011(x)),x=`default`,S=h?.default||mS.default);let C=!!(y.focusable||t&&y.focusable===void 0),w=d!==void 0&&(y.reconnectable||n&&y.reconnectable===void 0),T=!!(y.selectable||r&&y.selectable===void 0),E=(0,G.useRef)(null),[D,O]=(0,G.useState)(!1),[k,A]=(0,G.useState)(!1),j=Gy(),{zIndex:M=y.zIndex,sourceX:ee,sourceY:te,targetX:ne,targetY:N,sourcePosition:P,targetPosition:re}=$((0,G.useCallback)(t=>{let n=t.nodeLookup.get(y.source),r=t.nodeLookup.get(y.target);if(!n||!r)return hS;let i=mv({id:e,sourceNode:n,targetNode:r,sourceHandle:y.sourceHandle||null,targetHandle:y.targetHandle||null,connectionMode:t.connectionMode,onError:_}),a=tv({selected:y.selected,zIndex:y.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...i||hS,zIndex:a}},[y.source,y.target,y.sourceHandle,y.targetHandle,y.selected,y.zIndex]),By),F=(0,G.useMemo)(()=>y.markerStart?`url('#${vv(y.markerStart,m)}')`:void 0,[y.markerStart,m]),I=(0,G.useMemo)(()=>y.markerEnd?`url('#${vv(y.markerEnd,m)}')`:void 0,[y.markerEnd,m]);if(y.hidden||ee===null||te===null||ne===null||N===null)return null;let ie=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=j.getState();T&&(j.setState({nodesSelectionActive:!1}),y.selected&&a?(r({nodes:[],edges:[y]}),E.current?.blur()):n([e])),i&&i(t,y)},L=a?e=>{a(e,{...y})}:void 0,R=o?e=>{o(e,{...y})}:void 0,ae=s?e=>{s(e,{...y})}:void 0,oe=c?e=>{c(e,{...y})}:void 0,se=l?e=>{l(e,{...y})}:void 0;return(0,X.jsx)(`svg`,{style:{zIndex:M},children:(0,X.jsxs)(`g`,{className:nd([`react-flow__edge`,`react-flow__edge-${x}`,y.className,g,{selected:y.selected,animated:y.animated,inactive:!T&&!i,updating:D,selectable:T}]),onClick:ie,onDoubleClick:L,onContextMenu:R,onMouseEnter:ae,onMouseMove:oe,onMouseLeave:se,onKeyDown:C?t=>{if(!v&&Ug.includes(t.key)&&T){let{unselectNodesAndEdges:n,addSelectedEdges:r}=j.getState();t.key===`Escape`?(E.current?.blur(),n({edges:[y]})):r([e])}}:void 0,tabIndex:C?0:void 0,role:y.ariaRole??(C?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":y.ariaLabel===null?void 0:y.ariaLabel||`Edge from ${y.source} to ${y.target}`,"aria-describedby":C?`${Yy}-${m}`:void 0,ref:E,...y.domAttributes,children:[!k&&(0,X.jsx)(S,{id:e,source:y.source,target:y.target,type:y.type,selected:y.selected,animated:y.animated,selectable:T,deletable:y.deletable??!0,label:y.label,labelStyle:y.labelStyle,labelShowBg:y.labelShowBg,labelBgStyle:y.labelBgStyle,labelBgPadding:y.labelBgPadding,labelBgBorderRadius:y.labelBgBorderRadius,sourceX:ee,sourceY:te,targetX:ne,targetY:N,sourcePosition:P,targetPosition:re,data:y.data,style:y.style,sourceHandleId:y.sourceHandle,targetHandleId:y.targetHandle,markerStart:F,markerEnd:I,pathOptions:`pathOptions`in y?y.pathOptions:void 0,interactionWidth:y.interactionWidth}),w&&(0,X.jsx)(bS,{edge:y,isReconnectable:w,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:ee,sourceY:te,targetX:ne,targetY:N,sourcePosition:P,targetPosition:re,setUpdateHover:O,setReconnecting:A})]})})}var SS=(0,G.memo)(xS),CS=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function wS({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:a,onEdgeContextMenu:o,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:h}){let{edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,onError:y}=$(CS,By),b=Bx(t);return(0,X.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,X.jsx)(qx,{defaultColor:e,rfId:n}),b.map(e=>(0,X.jsx)(SS,{id:e,edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,noPanClassName:i,onReconnect:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:h},e))]})}wS.displayName=`EdgeRenderer`;var TS=(0,G.memo)(wS),ES=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function DS({children:e}){let t=Gy(),n=(0,G.useRef)(null),[r]=(0,G.useState)(()=>t.getState().transform);return Ib(()=>{let e=null,r=()=>{let r=t.getState().transform;e&&r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]||(e=r,n.current&&(n.current.style.transform=ES(r)))};return r(),t.subscribe(r)},[t]),(0,X.jsx)(`div`,{ref:n,className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:ES(r)},children:e})}function OS(e){let t=Ub(),n=(0,G.useRef)(!1);(0,G.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var kS=e=>e.panZoom?.syncViewport;function AS(e){let t=$(kS),n=Gy();return(0,G.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function jS(e){return e.connection.inProgress?{...e.connection,to:O_(e.connection.to,e.transform)}:{...e.connection}}function MS(e){return e?t=>e(jS(t)):jS}function NS(e){return $(MS(e),By)}var PS=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function FS({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=$(PS,By);return a&&i&&c?(0,X.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,X.jsx)(`g`,{className:nd([`react-flow__connection`,Qg(s)]),children:(0,X.jsx)(IS,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var IS=({style:e,type:t=Yg.Bezier,CustomComponent:n,isValid:r})=>{let{inProgress:i,from:a,fromNode:o,fromHandle:s,fromPosition:c,to:l,toNode:u,toHandle:d,toPosition:f,pointer:p}=NS();if(!i)return;if(n)return(0,X.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:s,fromX:a.x,fromY:a.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:f,connectionStatus:Qg(r),toNode:u,toHandle:d,pointer:p});let m=``,h={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:f};switch(t){case Yg.Bezier:[m]=$_(h);break;case Yg.SimpleBezier:[m]=Qx(h);break;case Yg.Step:[m]=fv({...h,borderRadius:0});break;case Yg.SmoothStep:[m]=fv(h);break;default:[m]=ov(h)}return(0,X.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};IS.displayName=`ConnectionLine`;var LS={};function RS(e=LS){(0,G.useRef)(e),Gy(),(0,G.useEffect)(()=>{},[e])}function zS(){Gy(),(0,G.useRef)(!1),(0,G.useEffect)(()=>{},[])}function BS({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:a,onEdgeDoubleClick:o,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:h,connectionLineComponent:g,connectionLineContainerStyle:_,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,deleteKeyCode:w,onlyRenderVisibleElements:T,elementsSelectable:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,defaultMarkerColor:M,zoomOnScroll:ee,zoomOnPinch:te,panOnScroll:ne,panOnScrollSpeed:N,panOnScrollMode:P,zoomOnDoubleClick:re,panOnDrag:F,autoPanOnSelection:I,onPaneClick:ie,onPaneMouseEnter:L,onPaneMouseMove:R,onPaneMouseLeave:ae,onPaneScroll:oe,onPaneContextMenu:se,paneClickDistance:ce,nodeClickDistance:le,onEdgeContextMenu:ue,onEdgeMouseEnter:de,onEdgeMouseMove:fe,onEdgeMouseLeave:pe,reconnectRadius:me,onReconnect:he,onReconnectStart:ge,onReconnectEnd:_e,noDragClassName:ve,noWheelClassName:ye,noPanClassName:be,disableKeyboardA11y:xe,nodeExtent:Se,rfId:Ce,viewport:we,onViewportChange:Te,nodesDraggable:Ee}){return RS(e),RS(t),zS(),OS(n),AS(we),(0,X.jsx)(kx,{onPaneClick:ie,onPaneMouseEnter:L,onPaneMouseMove:R,onPaneMouseLeave:ae,onPaneContextMenu:se,onPaneScroll:oe,paneClickDistance:ce,deleteKeyCode:w,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,elementsSelectable:E,zoomOnScroll:ee,zoomOnPinch:te,zoomOnDoubleClick:re,panOnScroll:ne,panOnScrollSpeed:N,panOnScrollMode:P,panOnDrag:F,autoPanOnSelection:I,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,onSelectionContextMenu:d,preventScrolling:j,noDragClassName:ve,noWheelClassName:ye,noPanClassName:be,disableKeyboardA11y:xe,onViewportChange:Te,isControlledViewport:!!we,children:(0,X.jsxs)(DS,{children:[(0,X.jsx)(TS,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:he,onReconnectStart:ge,onReconnectEnd:_e,onlyRenderVisibleElements:T,onEdgeContextMenu:ue,onEdgeMouseEnter:de,onEdgeMouseMove:fe,onEdgeMouseLeave:pe,reconnectRadius:me,defaultMarkerColor:M,noPanClassName:be,disableKeyboardA11y:xe,rfId:Ce}),(0,X.jsx)(FS,{style:h,type:m,component:g,containerStyle:_}),(0,X.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,X.jsx)(zx,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:le,onlyRenderVisibleElements:T,noPanClassName:be,noDragClassName:ve,disableKeyboardA11y:xe,nodeExtent:Se,rfId:Ce,nodesDraggable:Ee}),(0,X.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}BS.displayName=`GraphView`;var VS=(0,G.memo)(BS),HS=E_(`React Flow`,`https://reactflow.dev/`),US=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c=.5,maxZoom:l=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f=`basic`}={})=>{let p=new Map,m=new Map,h=new Map,g=new Map,_=r??t??[],v=n??e??[],y=u??[0,0],b=d??Hg;Lv(h,g,_);let{nodesInitialized:x}=Ov(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=N_(i_(p,{filter:e=>!!((e.width||e.initialWidth)&&(e.height||e.initialHeight))}),i,a,c,l,s?.padding??.1);S=[e,t,n]}return{rfId:`1`,width:i??0,height:a??0,transform:S,nodes:v,nodesInitialized:x,nodeLookup:p,parentLookup:m,edges:_,edgeLookup:g,connectionLookup:h,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:Hg,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Gg.Strict,domNode:null,paneDragging:!1,noPanClassName:`nopan`,nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:s,fitViewResolver:null,connection:{...Jg},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:HS,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:Wg,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},WS=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>zy((p,m)=>{async function h(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:r,width:i,height:a,minZoom:o,maxZoom:s}=m();t&&(await c_({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...US({nodes:e,edges:t,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:r,elevateNodesOnSelect:i,fitViewQueued:a,zIndexMode:o,nodesSelectionActive:s}=m(),{nodesInitialized:c,hasSelectedNodes:l}=Ov(e,t,n,{nodeOrigin:r,nodeExtent:d,elevateNodesOnSelect:i,checkEquality:!0,zIndexMode:o}),u=s&&l;a&&c?(h(),p({nodes:e,nodesInitialized:c,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:u})):p({nodes:e,nodesInitialized:c,nodesSelectionActive:u})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();Lv(t,n,e),p({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=m();t(e),p({hasDefaultNodes:!0})}if(t){let{setEdges:e}=m();e(t),p({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:r,domNode:i,nodeOrigin:a,nodeExtent:o,debug:s,fitViewQueued:c,zIndexMode:l}=m(),{changes:u,updatedInternals:d}=Pv(e,n,r,i,a,o,l);d&&(Tv(n,r,{nodeOrigin:a,nodeExtent:o,zIndexMode:l}),c?(h(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),u?.length>0&&(s&&console.log(`React Flow: trigger node changes`,u),t?.(u)))},updateNodePositions:(e,t=!1)=>{let n=[],r=[],{nodeLookup:i,triggerNodeChanges:a,connection:o,updateConnection:s,onNodesChangeMiddlewareMap:c}=m();for(let[a,c]of e){let e=i.get(a),l=!!(e?.expandParent&&e?.parentId&&c?.position),u={id:a,type:`position`,position:l?{x:Math.max(0,c.position.x),y:Math.max(0,c.position.y)}:c.position,dragging:t};if(e&&o.inProgress&&o.fromNode.id===e.id){let t=gv(e,o.fromHandle,Q.Left,!0);s({...o,from:t})}l&&e.parentId&&n.push({id:a,parentId:e.parentId,rect:{...c.internals.positionAbsolute,width:c.measured.width??0,height:c.measured.height??0}}),r.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=m(),a=Nv(n,i,e,t);r.push(...a)}for(let e of c.values())r=e(r);a(r)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:r,hasDefaultNodes:i,debug:a}=m();e?.length&&(i&&n(Tb(e,r)),a&&console.log(`React Flow: trigger node changes`,e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:r,hasDefaultEdges:i,debug:a}=m();e?.length&&(i&&n(Eb(e,r)),a&&console.log(`React Flow: trigger edge changes`,e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){i(e.map(e=>Db(e,!0)));return}i(Ob(r,new Set([...e]),!0)),a(Ob(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>Db(e,!0)));return}a(Ob(n,new Set([...e]))),i(Ob(r,new Set,!0))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:r,nodeLookup:i,triggerNodeChanges:a,triggerEdgeChanges:o}=m(),s=e||r,c=t||n,l=[];for(let e of s){if(!e.selected)continue;let t=i.get(e.id);t&&(t.selected=!1),l.push(Db(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(Db(e.id,!1));a(l),o(u)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=m();t?.setScaleExtent([e,n]),p({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=m();t?.setScaleExtent([n,e]),p({maxZoom:e})},setTranslateExtent:e=>{m().panZoom?.setTranslateExtent(e),p({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:r,elementsSelectable:i}=m();if(!i)return;let a=t.reduce((e,t)=>t.selected?[...e,Db(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,Db(t.id,!1)]:e,[]);n(a),r(o)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:r,nodeOrigin:i,elevateNodesOnSelect:a,nodeExtent:o,zIndexMode:s}=m();e[0][0]===o[0][0]&&e[0][1]===o[0][1]&&e[1][0]===o[1][0]&&e[1][1]===o[1][1]||(Ov(t,n,r,{nodeOrigin:i,nodeExtent:e,elevateNodesOnSelect:a,checkEquality:!1,zIndexMode:s}),p({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:r,panZoom:i,translateExtent:a}=m();return Fv({delta:e,panZoom:i,transform:t,translateExtent:a,width:n,height:r})},setCenter:async(e,t,n)=>{let{width:r,height:i,maxZoom:a,panZoom:o}=m();if(!o)return!1;let s=n?.zoom===void 0?a:n.zoom;return await o.setViewport({x:r/2-e*s,y:i/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{p({connection:{...Jg}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...US()})}},Object.is);function GS({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:a,initialMinZoom:o,initialMaxZoom:s,initialFitViewOptions:c,fitView:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f,children:p}){let[m]=(0,G.useState)(()=>WS({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:l,minZoom:o,maxZoom:s,fitViewOptions:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f}));return(0,X.jsx)(Uy,{value:m,children:(0,X.jsx)(Bb,{children:(0,X.jsx)(dx,{children:p})})})}function KS({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:a,height:o,fitView:s,fitViewOptions:c,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p}){return(0,G.useContext)(Hy)?(0,X.jsx)(X.Fragment,{children:e}):(0,X.jsx)(GS,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:o,fitView:s,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:e})}var qS={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function JS({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:a,edgeTypes:o,onNodeClick:s,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:b,onNodeContextMenu:x,onNodeDoubleClick:S,onNodeDragStart:C,onNodeDrag:w,onNodeDragStop:T,onNodesDelete:E,onEdgesDelete:D,onDelete:O,onSelectionChange:k,onSelectionDragStart:A,onSelectionDrag:j,onSelectionDragStop:M,onSelectionContextMenu:ee,onSelectionStart:te,onSelectionEnd:ne,onBeforeDelete:N,connectionMode:P,connectionLineType:re=Yg.Bezier,connectionLineStyle:F,connectionLineComponent:I,connectionLineContainerStyle:ie,deleteKeyCode:L=`Backspace`,selectionKeyCode:R=`Shift`,selectionOnDrag:ae=!1,selectionMode:oe=qg.Full,panActivationKeyCode:se=`Space`,multiSelectionKeyCode:ce=P_()?`Meta`:`Control`,zoomActivationKeyCode:le=P_()?`Meta`:`Control`,snapToGrid:ue,snapGrid:de,onlyRenderVisibleElements:fe=!1,selectNodesOnDrag:pe,nodesDraggable:me,autoPanOnNodeFocus:he,nodesConnectable:ge,nodesFocusable:_e,nodeOrigin:ve=ub,edgesFocusable:ye,edgesReconnectable:be,elementsSelectable:xe=!0,defaultViewport:Se=db,minZoom:Ce=.5,maxZoom:we=2,translateExtent:Te=Hg,preventScrolling:Ee=!0,nodeExtent:De,defaultMarkerColor:Oe=`#b1b1b7`,zoomOnScroll:ke=!0,zoomOnPinch:Ae=!0,panOnScroll:je=!1,panOnScrollSpeed:Me=.5,panOnScrollMode:Ne=Kg.Free,zoomOnDoubleClick:Pe=!0,panOnDrag:Fe=!0,onPaneClick:Ie,onPaneMouseEnter:Le,onPaneMouseMove:Re,onPaneMouseLeave:ze,onPaneScroll:Be,onPaneContextMenu:Ve,paneClickDistance:He=1,nodeClickDistance:Ue=0,children:We,onReconnect:Ge,onReconnectStart:Ke,onReconnectEnd:qe,onEdgeContextMenu:Je,onEdgeDoubleClick:Ye,onEdgeMouseEnter:Xe,onEdgeMouseMove:Ze,onEdgeMouseLeave:Qe,reconnectRadius:$e=10,onNodesChange:et,onEdgesChange:tt,noDragClassName:nt=`nodrag`,noWheelClassName:rt=`nowheel`,noPanClassName:it=`nopan`,fitView:at,fitViewOptions:ot,connectOnClick:st,attributionPosition:ct,proOptions:lt,defaultEdgeOptions:ut,elevateNodesOnSelect:dt=!0,elevateEdgesOnSelect:ft=!1,disableKeyboardA11y:pt=!1,autoPanOnConnect:mt,autoPanOnNodeDrag:ht,autoPanOnSelection:gt=!0,autoPanSpeed:_t,connectionRadius:vt,isValidConnection:yt,onError:bt,style:xt,id:St,nodeDragThreshold:Ct,connectionDragThreshold:wt,viewport:Tt,onViewportChange:Et,width:Dt,height:Ot,colorMode:kt=`light`,debug:z,onScroll:At,ariaLabelConfig:jt,zIndexMode:Mt=`basic`,...Nt},Pt){let Ft=St||`1`,It=_b(kt),Lt=(0,G.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),At?.(e)},[At]);return(0,X.jsx)(`div`,{"data-testid":`rf__wrapper`,...Nt,onScroll:Lt,style:{...xt,...qS},ref:Pt,className:nd([`react-flow`,i,It]),id:St,role:`application`,children:(0,X.jsxs)(KS,{nodes:e,edges:t,width:Dt,height:Ot,fitView:at,fitViewOptions:ot,minZoom:Ce,maxZoom:we,nodeOrigin:ve,nodeExtent:De,zIndexMode:Mt,children:[(0,X.jsx)(hb,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,nodesDraggable:me,autoPanOnNodeFocus:he,nodesConnectable:ge,nodesFocusable:_e,edgesFocusable:ye,edgesReconnectable:be,elementsSelectable:xe,elevateNodesOnSelect:dt,elevateEdgesOnSelect:ft,minZoom:Ce,maxZoom:we,nodeExtent:De,onNodesChange:et,onEdgesChange:tt,snapToGrid:ue,snapGrid:de,connectionMode:P,translateExtent:Te,connectOnClick:st,defaultEdgeOptions:ut,fitView:at,fitViewOptions:ot,onNodesDelete:E,onEdgesDelete:D,onDelete:O,onNodeDragStart:C,onNodeDrag:w,onNodeDragStop:T,onSelectionDrag:j,onSelectionDragStart:A,onSelectionDragStop:M,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:it,nodeOrigin:ve,rfId:Ft,autoPanOnConnect:mt,autoPanOnNodeDrag:ht,autoPanSpeed:_t,onError:bt,connectionRadius:vt,isValidConnection:yt,selectNodesOnDrag:pe,nodeDragThreshold:Ct,connectionDragThreshold:wt,onBeforeDelete:N,debug:z,ariaLabelConfig:jt,zIndexMode:Mt}),(0,X.jsx)(VS,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:b,onNodeContextMenu:x,onNodeDoubleClick:S,nodeTypes:a,edgeTypes:o,connectionLineType:re,connectionLineStyle:F,connectionLineComponent:I,connectionLineContainerStyle:ie,selectionKeyCode:R,selectionOnDrag:ae,selectionMode:oe,deleteKeyCode:L,multiSelectionKeyCode:ce,panActivationKeyCode:se,zoomActivationKeyCode:le,onlyRenderVisibleElements:fe,defaultViewport:Se,translateExtent:Te,minZoom:Ce,maxZoom:we,preventScrolling:Ee,zoomOnScroll:ke,zoomOnPinch:Ae,zoomOnDoubleClick:Pe,panOnScroll:je,panOnScrollSpeed:Me,panOnScrollMode:Ne,panOnDrag:Fe,autoPanOnSelection:gt,onPaneClick:Ie,onPaneMouseEnter:Le,onPaneMouseMove:Re,onPaneMouseLeave:ze,onPaneScroll:Be,onPaneContextMenu:Ve,paneClickDistance:He,nodeClickDistance:Ue,onSelectionContextMenu:ee,onSelectionStart:te,onSelectionEnd:ne,onReconnect:Ge,onReconnectStart:Ke,onReconnectEnd:qe,onEdgeContextMenu:Je,onEdgeDoubleClick:Ye,onEdgeMouseEnter:Xe,onEdgeMouseMove:Ze,onEdgeMouseLeave:Qe,reconnectRadius:$e,defaultMarkerColor:Oe,noDragClassName:nt,noWheelClassName:rt,noPanClassName:it,rfId:Ft,disableKeyboardA11y:pt,nodeExtent:De,viewport:Tt,onViewportChange:Et,nodesDraggable:me}),(0,X.jsx)(lb,{onSelectionChange:k}),We,(0,X.jsx)(rb,{proOptions:lt,position:ct}),(0,X.jsx)(eb,{rfId:Ft,disableKeyboardA11y:pt})]})})}var YS=Fb(JS),XS=e=>e.domNode?.querySelector(`.react-flow__viewport-portal`);function ZS({children:e}){let t=$(XS);return t?(0,Vy.createPortal)(e,t):null}Vg.error014();function QS({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,X.jsx)(`path`,{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:nd([`react-flow__background-pattern`,n,r])})}function $S({radius:e,className:t}){return(0,X.jsx)(`circle`,{cx:e,cy:e,r:e,className:nd([`react-flow__background-pattern`,`dots`,t])})}var eC;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(eC||={});var tC={[eC.Dots]:1,[eC.Lines]:1,[eC.Cross]:6},nC=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function rC({id:e,variant:t=eC.Dots,gap:n=20,size:r,lineWidth:i=1,offset:a=0,color:o,bgColor:s,style:c,className:l,patternClassName:u}){let d=(0,G.useRef)(null),{transform:f,patternId:p}=$(nC,By),m=r||tC[t],h=t===eC.Dots,g=t===eC.Cross,_=Array.isArray(n)?n:[n,n],v=[_[0]*f[2]||1,_[1]*f[2]||1],y=m*f[2],b=Array.isArray(a)?a:[a,a],x=g?[y,y]:v,S=[b[0]*f[2]||1+x[0]/2,b[1]*f[2]||1+x[1]/2],C=`${p}${e||``}`;return(0,X.jsxs)(`svg`,{className:nd([`react-flow__background`,l]),style:{...c,...Jb,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,X.jsx)(`pattern`,{id:C,x:f[0]%v[0],y:f[1]%v[1],width:v[0],height:v[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${S[0]},-${S[1]})`,children:h?(0,X.jsx)($S,{radius:y/2,className:u}):(0,X.jsx)(QS,{dimensions:x,lineWidth:i,variant:t,className:u})}),(0,X.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${C})`})]})}rC.displayName=`Background`;var iC=(0,G.memo)(rC);function aC(){return(0,X.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,X.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function oC(){return(0,X.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,X.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function sC(){return(0,X.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,X.jsx)(`path`,{d:`M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z`})})}function cC(){return(0,X.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,X.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z`})})}function lC(){return(0,X.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,X.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z`})})}function uC({children:e,className:t,...n}){return(0,X.jsx)(`button`,{type:`button`,className:nd([`react-flow__controls-button`,t]),...n,children:e})}var dC=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function fC({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:a,onZoomOut:o,onFitView:s,onInteractiveChange:c,className:l,children:u,position:d=`bottom-left`,orientation:f=`vertical`,"aria-label":p}){let m=Gy(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=$(dC,By),{zoomIn:y,zoomOut:b,fitView:x}=Ub();return(0,X.jsxs)(tb,{className:nd([`react-flow__controls`,f===`horizontal`?`horizontal`:`vertical`,l]),position:d,style:e,"data-testid":`rf__controls`,"aria-label":p??v[`controls.ariaLabel`],children:[t&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(uC,{onClick:()=>{y(),a?.()},className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,X.jsx)(aC,{})}),(0,X.jsx)(uC,{onClick:()=>{b(),o?.()},className:`react-flow__controls-zoomout`,title:v[`controls.zoomOut.ariaLabel`],"aria-label":v[`controls.zoomOut.ariaLabel`],disabled:g,children:(0,X.jsx)(oC,{})})]}),n&&(0,X.jsx)(uC,{className:`react-flow__controls-fitview`,onClick:()=>{x(i),s?.()},title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,X.jsx)(sC,{})}),r&&(0,X.jsx)(uC,{className:`react-flow__controls-interactive`,onClick:()=>{m.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),c?.(!h)},title:v[`controls.interactive.ariaLabel`],"aria-label":v[`controls.interactive.ariaLabel`],children:h?(0,X.jsx)(lC,{}):(0,X.jsx)(cC,{})}),u]})}fC.displayName=`Controls`;var pC=(0,G.memo)(fC);function mC({id:e,x:t,y:n,width:r,height:i,style:a,color:o,strokeColor:s,strokeWidth:c,className:l,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){let{background:m,backgroundColor:h}=a||{},g=o||m||h;return(0,X.jsx)(`rect`,{className:nd([`react-flow__minimap-node`,{selected:f},l]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:g,stroke:s,strokeWidth:c},shapeRendering:d,onClick:p?t=>p(t,e):void 0})}var hC=(0,G.memo)(mC),gC=e=>e.nodes.map(e=>e.id),_C=e=>e instanceof Function?e:()=>e;function vC({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=hC,onClick:o}){let s=$(gC,By),c=_C(t),l=_C(e),u=_C(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,X.jsx)(X.Fragment,{children:s.map(e=>(0,X.jsx)(bC,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function yC({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:o,NodeComponent:s,onClick:c}){let{node:l,x:u,y:d,width:f,height:p}=$(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let r=n.internals.userNode,{x:i,y:a}=n.internals.positionAbsolute,{width:o,height:s}=I_(r);return{node:r,x:i,y:a,width:o,height:s}},By);return!l||l.hidden||!L_(l)?null:(0,X.jsx)(s,{x:u,y:d,width:f,height:p,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:i,strokeColor:n(l),strokeWidth:a,shapeRendering:o,onClick:c,id:l.id})}var bC=(0,G.memo)(yC),xC=(0,G.memo)(vC),SC=200,CC=150,wC=e=>!e.hidden,TC=e=>{let t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?x_(i_(e.nodeLookup,{filter:wC}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},EC=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,DC=(e,t)=>EC(e.viewBB,t.viewBB)&&EC(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,OC=`react-flow__minimap-desc`;function kC({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i=``,nodeBorderRadius:a=5,nodeStrokeWidth:o,nodeComponent:s,bgColor:c,maskColor:l,maskStrokeColor:u,maskStrokeWidth:d,position:f=`bottom-right`,onClick:p,onNodeClick:m,pannable:h=!1,zoomable:g=!1,ariaLabel:_,inversePan:v,zoomStep:y=1,offsetScale:b=5}){let x=Gy(),S=(0,G.useRef)(null),{boundingRect:C,viewBB:w,rfId:T,panZoom:E,translateExtent:D,flowWidth:O,flowHeight:k,ariaLabelConfig:A}=$(TC,DC),j=e?.width??SC,M=e?.height??CC,ee=C.width/j,te=C.height/M,ne=Math.max(ee,te),N=ne*j,P=ne*M,re=b*ne,F=C.x-(N-C.width)/2-re,I=C.y-(P-C.height)/2-re,ie=N+re*2,L=P+re*2,R=`${OC}-${T}`,ae=(0,G.useRef)(0),oe=(0,G.useRef)();ae.current=ne,(0,G.useEffect)(()=>{if(S.current&&E)return oe.current=ey({domNode:S.current,panZoom:E,getTransform:()=>x.getState().transform,getViewScale:()=>ae.current}),()=>{oe.current?.destroy()}},[E]),(0,G.useEffect)(()=>{oe.current?.update({translateExtent:D,width:O,height:k,inversePan:v,pannable:h,zoomStep:y,zoomable:g})},[h,g,v,y,D,O,k]);let se=p?e=>{let[t,n]=oe.current?.pointer(e)||[0,0];p(e,{x:t,y:n})}:void 0,ce=m?(0,G.useCallback)((e,t)=>{let n=x.getState().nodeLookup.get(t).internals.userNode;m(e,n)},[]):void 0,le=_??A[`minimap.ariaLabel`];return(0,X.jsx)(tb,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof c==`string`?c:void 0,"--xy-minimap-mask-background-color-props":typeof l==`string`?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof u==`string`?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d==`number`?d*ne:void 0,"--xy-minimap-node-background-color-props":typeof r==`string`?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n==`string`?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o==`number`?o:void 0},className:nd([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,X.jsxs)(`svg`,{width:j,height:M,viewBox:`${F} ${I} ${ie} ${L}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":R,ref:S,onClick:se,children:[le&&(0,X.jsx)(`title`,{id:R,children:le}),(0,X.jsx)(xC,{onClick:ce,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,X.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${F-re},${I-re}h${ie+re*2}v${L+re*2}h${-ie-re*2}z
92
+ M${w.x},${w.y}h${w.width}v${w.height}h${-w.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}kC.displayName=`MiniMap`;var AC=(0,G.memo)(kC),jC=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,MC={[hy.Line]:`right`,[hy.Handle]:`bottom-right`};function NC({nodeId:e,position:t,variant:n=hy.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:s=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:m,onResizeStart:h,onResize:g,onResizeEnd:_}){let v=cx(),y=typeof e==`string`?e:v,b=Gy(),x=(0,G.useRef)(null),S=n===hy.Handle,C=$((0,G.useCallback)(jC(S&&p),[S,p]),By),w=(0,G.useRef)(null),T=t??MC[n];return(0,G.useEffect)(()=>{if(!(!x.current||!y))return w.current||=Ey({domNode:x.current,nodeId:y,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=b.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=b.getState(),o=[],s={x:e.x,y:e.y},c=r.get(y);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=Nv([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...R_({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:y,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:y,type:`dimensions`,resizing:!0,setAttributes:f?f===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:y,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};b.getState().triggerNodeChanges([n])}}),w.current.update({controlPosition:T,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:_,shouldResize:m}),()=>{w.current?.destroy()}},[T,s,c,l,u,d,h,g,_,m]),(0,X.jsx)(`div`,{className:nd([`react-flow__resize-control`,`nodrag`,...T.split(`-`),n,r]),ref:x,style:{...i,scale:C,...o&&{[S?`backgroundColor`:`borderColor`]:o}},children:a})}(0,G.memo)(NC);function PC(e,t){return e.edges.filter(e=>e.type===`stacked`&&e.from===t).map(e=>e.to)}function FC(e){let t=new Set(e.edges.flatMap(e=>[e.from,e.to])),n=e.nodes.filter(e=>!t.has(e.id));return{specs:IC(n.filter(e=>e.type===`proposal`)),stories:IC(n.filter(e=>e.type===`user_story`))}}function IC(e){return[...e].sort((e,t)=>e.order-t.order)}var LC=`__unscheduled`,RC=`__stories`,zC=`group:`;function BC(e){return`${zC}${e}`}function VC(e){return e.startsWith(`group:`)?e.slice(6):null}function HC(e,t){return`${e}@${t}`}function UC(e){let t=e.indexOf(`@`);return t===-1?e:e.slice(0,t)}function WC(e){let t=e.indexOf(`@`);return t===-1?null:e.slice(t+1)}function GC(e){let t=new Map;for(let n of e.edges){if(n.type!==`targets`)continue;let e=t.get(n.to)??[];e.push(n.from),t.set(n.to,e)}let n=new Map(e.nodes.map(e=>[e.id,e.order])),r=new Map,i=a=>{let o=r.get(a);if(o)return o;r.set(a,[]);let s=t.get(a),c=[];if(s&&s.length>0)c=[...s];else{let t=PC(e,a).slice().sort((e,t)=>(n.get(e)??0)-(n.get(t)??0)||e.localeCompare(t));for(let e of t){let t=i(e);if(t.length>0){c=t;break}}}return r.set(a,c),c},a=new Map;for(let t of e.nodes)t.type===`proposal`&&a.set(t.id,i(t.id));return a}function KC(e,t,n){let r={positions:{},cells:[],rowKeys:[],rowIndexByKey:new Map,rowContainerByCap:new Map,capsByRow:new Map,memberRowsByProp:new Map,occupantsByRow:new Map,hidden:new Set,groupMeta:new Map},i=GC(e),a=IC(e.nodes.filter(e=>e.type===`capability`)).map(e=>e.id);if(n?.hideEmptyCaps){let e=new Set;for(let t of i.values())for(let n of t)e.add(n);a=a.filter(t=>e.has(t))}ew(a,t).forEach((e,t)=>{if(e.kind===`node`)r.rowContainerByCap.set(e.id,e.id),r.capsByRow.set(e.id,[e.id]),r.rowKeys.push(e.id),r.rowIndexByKey.set(e.id,t);else{let n=BC(e.key);if(r.groupMeta.set(n,{key:e.key,count:e.memberIds.length,collapsed:e.collapsed}),e.collapsed){r.capsByRow.set(n,e.memberIds.slice());for(let t of e.memberIds)r.rowContainerByCap.set(t,n),r.hidden.add(t)}else r.capsByRow.set(n,[]);r.rowKeys.push(n),r.rowIndexByKey.set(n,t)}});let o=IC(e.nodes.filter(e=>e.type===`proposal`)),s=[];for(let e of o){let t=i.get(e.id)??[],n=[];for(let e of t){let t=r.rowContainerByCap.get(e);t!==void 0&&!n.includes(t)&&n.push(t)}if(r.memberRowsByProp.set(e.id,n),n.length===0){s.push(e.id);continue}for(let t of n){let n=r.occupantsByRow.get(t)??[];n.push(e.id),r.occupantsByRow.set(t,n)}}let c=new Map(e.nodes.map(e=>[e.id,e.order])),l=(e,t)=>(c.get(e)??0)-(c.get(t)??0)||e.localeCompare(t);for(let[t,n]of r.occupantsByRow)r.occupantsByRow.set(t,YC(n.sort(l),e));let u=(e,t,n,i,a,o)=>{r.positions[e]={x:80+a*280,y:80+o*170},r.cells.push({nodeId:e,baseId:t,kind:n,rowKey:i,col:a})};r.rowKeys.forEach((e,t)=>{let n=VC(e)===null?`capability`:`group`;u(e,e,n,e,0,t),(r.occupantsByRow.get(e)??[]).forEach((n,r)=>{u(HC(n,e),n,`proposal`,e,r+1,t)})});let d=r.rowKeys.length,f=(e,t,n)=>{e.length!==0&&(r.occupantsByRow.set(t,e),r.rowKeys.push(t),r.rowIndexByKey.set(t,d),e.forEach((e,r)=>{let i=Math.floor(r/6);u(e,e,n,t,r%6,d+i)}),d+=Math.ceil(e.length/6))};return f(YC(s.slice().sort(l),e),LC,`proposal`),f(IC(e.nodes.filter(e=>e.type===`user_story`)).map(e=>e.id),RC,`story`),r}function qC(e,t){return{rowIndex:Math.round((t-80)/170),col:Math.round((e-80)/280)}}function JC(e,t,n){let r=n-1;if(r>=0&&r<e.length)return[...e.slice(0,r+1),t,...e.slice(r+1)];let i=Math.max(0,Math.min(r,e.length));return[...e.slice(0,i),t,...e.slice(i)]}function YC(e,t){let n=new Set(e),r=new Map;for(let t of e)r.set(t,new Set);for(let e of t.edges)e.type===`stacked`&&n.has(e.from)&&n.has(e.to)&&r.get(e.from).add(e.to);let i=new Set,a=[];for(;a.length<e.length;){let t=e.find(e=>!i.has(e)&&[...r.get(e)].every(e=>i.has(e)));if(t===void 0){for(let t of e)i.has(t)||a.push(t);break}i.add(t),a.push(t)}return a}function XC(e,t){return e.split(`-`).slice(0,t).join(`-`)}function ZC(e,t=1){let n=[],r=new Map;for(let i of e){let e=XC(i,t),a=r.get(e);a?a.push(i):(r.set(e,[i]),n.push(e))}let i=[];for(let e of n){let n=r.get(e)??[];n.length<2||i.push({key:e,depth:t,memberIds:n,children:ZC(n.filter(t=>t!==e),t+1)})}return i}function QC(e,t){for(let n of e){if(n.key===t)return n;let e=QC(n.children,t);if(e)return e}return null}function $C(e){return ZC(e).map(e=>e.key)}function ew(e,t){let n=new Set(t),r=(e,t)=>{let i=[],a=new Map;for(let n of e){let e=XC(n,t),r=a.get(e);r?r.push(n):(a.set(e,[n]),i.push(e))}let o=[];for(let e of i){let i=a.get(e)??[],s=i[0];if(i.length<2){s!==void 0&&o.push({kind:`node`,id:s});continue}let c=n.has(e);if(o.push({kind:`group`,key:e,depth:t,memberIds:i,collapsed:c}),!c){for(let t of i)t===e&&o.push({kind:`node`,id:t});o.push(...r(i.filter(t=>t!==e),t+1))}}return o};return r(e,1)}function tw({rootName:e,model:t,onModelChange:n,hideEmptySpecs:r,onToggleHideEmpty:i}){return(0,X.jsxs)(`header`,{className:`topbar`,children:[(0,X.jsxs)(`div`,{className:`brand`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,className:`logo`,children:`◇`}),(0,X.jsxs)(`div`,{children:[(0,X.jsxs)(`h1`,{children:[(0,X.jsx)(`span`,{className:`brand-coop`,children:`coop`}),` specplan`]}),(0,X.jsxs)(`p`,{children:[`Plan `,(0,X.jsx)(`code`,{className:`canvas-id`,children:e}),` — autosaves to specplan.yaml`]})]})]}),(0,X.jsxs)(`div`,{className:`actions`,children:[i&&(0,X.jsx)(`button`,{"aria-pressed":!!r,className:`hide-empty-toggle${r?` active`:``}`,"data-testid":`hide-empty-toggle`,onClick:i,title:`Hide capability rows with no scheduled items (view only)`,type:`button`,children:r?`Show empty specs`:`Hide empty specs`}),t!==void 0&&n&&(0,X.jsx)(`select`,{"aria-label":`Model`,className:`model-select`,onChange:e=>n(e.target.value),title:`Model used by chat and Generate OpenSpec`,value:t,children:so.map(e=>(0,X.jsx)(`option`,{value:e,children:e.replace(/^claude-/,``)},e))})]})]})}function nw({specId:e,title:t,apply:n,onApplied:r,onClose:i}){let[a,o]=(0,G.useState)(`confirm`),[s,c]=(0,G.useState)(!1),[l,u]=(0,G.useState)();(0,G.useEffect)(()=>{let e=e=>{e.key===`Escape`&&!s&&i()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[i,s]);let d=async e=>{c(!0),u(void 0);try{let t=await n(e);if(t.status===`ok`){r(t.result),i();return}if(t.status===`hand-edit`){o(`hand-edit`);return}u(t.message)}finally{c(!1)}};return(0,X.jsx)(`div`,{className:`dialog-overlay`,onClick:()=>!s&&i(),role:`presentation`,children:(0,X.jsxs)(`div`,{"aria-label":`Apply / Close proposal ${t}`,className:`dialog dialog-apply nodrag nopan`,"data-testid":`apply-dialog`,onClick:e=>e.stopPropagation(),role:`dialog`,children:[(0,X.jsx)(`div`,{className:`dialog-head`,children:(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`div`,{className:`dialog-title`,children:a===`confirm`?`Apply / Close proposal`:`Fold a hand-edited proposal?`}),(0,X.jsx)(`code`,{className:`dialog-path`,children:e})]})}),a===`confirm`?(0,X.jsxs)(`p`,{className:`dialog-notice`,"data-state":`confirm`,"data-testid":`apply-confirm-message`,children:[`Fold `,(0,X.jsx)(`strong`,{children:t}),`'s delta into `,(0,X.jsx)(`code`,{children:`specs/`}),` and archive the change. This is irreversible from the canvas.`]}):(0,X.jsxs)(`p`,{className:`dialog-notice dialog-notice--warning`,"data-state":`hand-edit`,"data-testid":`apply-hand-edit-message`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,children:`⚠`}),` `,(0,X.jsx)(`strong`,{children:t}),`'s body was hand-edited since it was last generated. Applying will fold the hand-edited body as-is — confirm to fold it anyway.`]}),l&&(0,X.jsx)(`div`,{className:`empty error`,"data-testid":`apply-error`,children:l}),(0,X.jsxs)(`div`,{className:`dialog-actions`,children:[(0,X.jsx)(`button`,{className:`chat-clear`,disabled:s,onClick:i,type:`button`,children:`Cancel`}),a===`confirm`?(0,X.jsx)(`button`,{className:`chat-send`,"data-testid":`apply-confirm`,disabled:s,onClick:()=>void d(!1),type:`button`,children:s?`Applying…`:`Apply / Close`}):(0,X.jsx)(`button`,{className:`chat-send`,"data-testid":`apply-confirm-hand-edit`,disabled:s,onClick:()=>void d(!0),type:`button`,children:s?`Applying…`:`Fold hand-edited body`})]})]})})}function rw(e){return e.approved?e.implemented?`implemented`:e.status===`in-progress`?`in-progress`:`approved`:`draft`}var iw=[`in-progress`,`implemented`];function aw(e){return typeof e.onApply==`function`&&e.approved!==!0}function ow({data:e}){let[t,n]=(0,G.useState)(!1),r=rw(e);(0,G.useEffect)(()=>{if(!t)return;let e=()=>n(!1);return window.addEventListener(`click`,e),()=>window.removeEventListener(`click`,e)},[t]);let i=t=>{if(t===`implemented`){e.implemented||e.onImplemented?.(!0);return}e.implemented&&e.onImplemented?.(!1),e.status!==`in-progress`&&e.onStatus?.(`in-progress`)};return(0,X.jsxs)(`div`,{className:`card card-spec${e.hasSpec?` card-has-spec`:``}`,title:e.hasSpec?`An OpenSpec change exists — click to view it`:void 0,children:[(0,X.jsx)(gx,{type:`target`,position:Q.Left}),(0,X.jsxs)(`div`,{className:`card-kind`,children:[`PROPOSAL`,e.hasSpec&&(0,X.jsx)(`span`,{className:`card-badge`,children:`openspec ✓`}),e.specCount!==void 0&&e.specCount>0&&(0,X.jsxs)(`span`,{className:`card-implicated`,children:[e.specCount,` spec`,e.specCount===1?``:`s`]}),e.onStatus&&(e.approved?(0,X.jsxs)(`span`,{className:`card-status-wrap nodrag nopan`,children:[(0,X.jsxs)(`button`,{"aria-label":`Status: ${r}`,className:`card-status status-${r}`,onClick:e=>{e.stopPropagation(),n(e=>!e)},title:`Working state — advance to in-progress / implemented (approved is set by the fold, never here)`,type:`button`,children:[r,` `,(0,X.jsx)(`span`,{"aria-hidden":`true`,children:`▾`})]}),t&&(0,X.jsx)(`span`,{className:`status-menu`,role:`menu`,children:iw.map(e=>(0,X.jsx)(`button`,{className:`status-option status-${e}${e===r?` current`:``}`,onClick:t=>{t.stopPropagation(),n(!1),e!==r&&i(e)},role:`menuitem`,type:`button`,children:e},e))})]}):(0,X.jsx)(`span`,{"aria-label":`Status: draft`,className:`card-status status-draft card-status-static`,children:`draft`}))]}),(0,X.jsx)(`div`,{className:`card-title`,children:e.title}),e.description&&(0,X.jsx)(`div`,{className:`card-text card-description`,children:e.description.length>110?`${e.description.slice(0,110)}…`:e.description}),(e.tasks||e.ledgerStatus)&&(0,X.jsxs)(`div`,{className:`card-completion`,"data-testid":`card-completion`,children:[e.tasks&&(0,X.jsxs)(`span`,{className:`completion-tasks`,children:[e.tasks.done,`/`,e.tasks.total,` tasks`]}),e.ledgerStatus&&(0,X.jsx)(`span`,{className:`completion-ledger`,children:e.ledgerStatus})]}),(!e.hasSpec&&e.onGenerate||aw(e))&&(0,X.jsxs)(`div`,{className:`card-actions`,children:[!e.hasSpec&&e.onGenerate&&(0,X.jsx)(`button`,{className:`card-generate`,disabled:e.generating,onClick:t=>{t.stopPropagation(),e.onGenerate?.()},title:`Generate the OpenSpec change for this spec from its contained stories and dependencies`,type:`button`,children:e.generating?`Generating…`:`Generate OpenSpec`}),aw(e)&&(0,X.jsx)(`button`,{className:`card-apply nodrag nopan`,"data-testid":`card-apply`,onClick:t=>{t.stopPropagation(),e.onApply?.()},title:`Apply / Close — fold this change's delta into specs/ and archive it (irreversible from the canvas)`,type:`button`,children:`Apply / Close`})]}),(0,X.jsx)(gx,{type:`source`,position:Q.Right})]})}function sw({data:e}){return(0,X.jsxs)(`div`,{className:`card card-capability`,title:`Current-truth capability (openspec/specs/) — click to view its spec`,children:[(0,X.jsx)(gx,{type:`target`,position:Q.Left}),(0,X.jsx)(`div`,{className:`card-kind`,children:`SPEC`}),(0,X.jsx)(`div`,{className:`card-title`,children:e.title}),(0,X.jsx)(gx,{type:`source`,position:Q.Right})]})}function cw({data:e}){return(0,X.jsxs)(`div`,{className:`card card-story`,children:[(0,X.jsx)(gx,{type:`target`,position:Q.Left}),(0,X.jsx)(`div`,{className:`card-kind`,children:`user story`}),(0,X.jsx)(`div`,{className:`card-text`,children:e.text})]})}function lw({data:e}){return(0,X.jsxs)(`div`,{className:`card card-group${e.collapsed?` card-group-collapsed`:` card-group-expanded`}`,title:e.collapsed?`Group ${e.label} — click to expand its ${e.count} capabilities`:`Group ${e.label} (expanded) — click to collapse`,children:[(0,X.jsx)(gx,{isConnectable:!1,position:Q.Left,type:`target`}),(0,X.jsxs)(`div`,{className:`card-kind`,children:[`GROUP`,(0,X.jsx)(`span`,{className:`group-count`,children:e.count})]}),(0,X.jsxs)(`div`,{className:`card-title`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,className:`group-caret`,children:e.collapsed?`▸`:`▾`}),e.label]}),(0,X.jsx)(gx,{isConnectable:!1,position:Q.Right,type:`source`})]})}var uw={capability:sw,proposal:ow,story:cw,capGroup:lw};function dw(e,t,n,r){let i=new Map(e.nodes.map(e=>[e.id,e])),a=new Map;for(let t of e.edges){if(t.type!==`targets`)continue;let e=a.get(t.to)??new Set;e.add(t.from),a.set(t.to,e)}let o=e=>a.get(e)?.size??0,s=[];for(let e of t.cells){let a=t.positions[e.nodeId]??{x:0,y:0};if(e.kind===`group`){let n=t.groupMeta.get(e.rowKey);s.push({id:e.nodeId,type:`capGroup`,deletable:!1,draggable:!1,position:a,data:{label:n?.key??e.rowKey,count:n?.count??0,collapsed:n?.collapsed??!0}});continue}let c=i.get(e.baseId);if(!c)continue;if(e.kind===`capability`){s.push({id:e.nodeId,type:`capability`,deletable:!1,draggable:!0,position:a,data:{title:c.type===`capability`?c.title:e.baseId}});continue}if(e.kind===`story`){s.push({id:e.nodeId,type:`story`,deletable:!1,draggable:!1,position:a,data:{text:c.type===`user_story`?c.text:``}});continue}if(c.type!==`proposal`)continue;let l=r?.[c.id];s.push({id:e.nodeId,type:`proposal`,deletable:!1,draggable:!0,position:a,data:{title:c.title,...c.description?{description:c.description}:{},hasSpec:l?.hasSpec===!0,status:l?.status??`draft`,...l?.approved===!0?{approved:!0}:{},...l?.implemented===!0?{implemented:!0}:{},specCount:o(c.id),...l?.tasks?{tasks:l.tasks}:{},...l?.ledgerStatus===void 0?{}:{ledgerStatus:l.ledgerStatus},...n?{...n.generate?{generating:n.generatingId===c.id,onGenerate:()=>n.generate?.(c.id)}:{},onStatus:e=>n.setStatus(c.id,e),...n.setImplemented?{onImplemented:e=>n.setImplemented?.(c.id,e)}:{},...n.apply?{onApply:()=>n.apply?.(c.id)}:{}}:{}}})}return s}function fw(e,t){let n=e=>{let n=t.memberRowsByProp.get(e);return n&&n.length>0?HC(e,n[0]):t.positions[e]?e:null},r=new Set,i=[];for(let a of e.edges){let e=`${a.from}->${a.to}`,o,s,c=!0;if(a.type===`targets`){let n=t.rowContainerByCap.get(a.from);if(n===void 0)continue;let r=VC(n)!==null;o=n,s=t.positions[HC(a.to,n)]?HC(a.to,n):null,r&&(e=`${n}->${a.to}`,c=!1)}else a.type===`containment`?(o=n(a.from),s=t.positions[a.to]?a.to:null):(o=n(a.from),s=n(a.to));!o||!s||!t.positions[o]||!t.positions[s]||r.has(e)||(r.add(e),i.push({id:e,source:o,target:s,deletable:c,className:`edge-${a.type}`,...a.type===`stacked`?{markerEnd:{type:Xg.ArrowClosed}}:{style:{strokeDasharray:`6 4`}}}))}return i}function pw(e,t,n){if(!n)return null;let r=e.filter(e=>UC(e.id)===n);if(r.length===0)return null;let i=o_(r,t),a=new Set(i.map(e=>e.id)),o=new Set([n]);for(let e of i)o.add(UC(e.source)),o.add(UC(e.target));return{bases:o,edgeIds:a}}function mw(e){return(e??``).split(` `).filter(e=>e&&e!==`dimmed`&&e!==`highlighted`).join(` `)}function hw(e,t){return e.map(e=>{let n=mw(e.className),r=(t?t.bases.has(UC(e.id))?`${n} highlighted`.trim():`${n} dimmed`.trim():n)||void 0;return r===e.className?e:{...e,className:r}})}function gw(e,t){return e.map(e=>{let n=mw(e.className),r=(t?t.edgeIds.has(e.id)?`${n} highlighted`.trim():`${n} dimmed`.trim():n)||void 0;return r===e.className?e:{...e,className:r}})}function _w({items:e,resolve:t,onReveal:n}){let{setCenter:r}=Ub(),[i,a]=(0,G.useState)(!1),[o,s]=(0,G.useState)(``),[c,l]=(0,G.useState)(0),u=(0,G.useRef)(null);(0,G.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`k`&&(e.preventDefault(),a(e=>!e))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),(0,G.useEffect)(()=>{i&&(s(``),l(0),requestAnimationFrame(()=>u.current?.focus()))},[i]);let d=(0,G.useMemo)(()=>{let t=o.trim().toLowerCase();return(t?e.filter(e=>e.label.toLowerCase().includes(t)||e.id.toLowerCase().includes(t)):e).slice(0,20)},[e,o]),f=e=>{let i=e=>void r(e.x+240/2,e.y+132/2,{zoom:1,duration:300}),a=t(e);if(a===`hidden`){n(e),requestAnimationFrame(()=>{let n=t(e);n&&n!==`hidden`&&i(n)});return}a&&i(a)},p=e=>{a(!1),f(e)};return i?(0,X.jsx)(`div`,{className:`search-overlay`,"data-testid":`search-overlay`,onClick:()=>a(!1),role:`presentation`,children:(0,X.jsxs)(`div`,{"aria-label":`Find a card`,className:`search-palette`,"data-testid":`search-palette`,onClick:e=>e.stopPropagation(),role:`dialog`,children:[(0,X.jsx)(`input`,{"aria-label":`Find a card`,className:`search-input`,"data-testid":`search-input`,onChange:e=>{s(e.target.value),l(0)},onKeyDown:e=>{if(e.key===`Escape`)a(!1);else if(e.key===`ArrowDown`)e.preventDefault(),l(e=>Math.min(e+1,d.length-1));else if(e.key===`ArrowUp`)e.preventDefault(),l(e=>Math.max(e-1,0));else if(e.key===`Enter`){e.preventDefault();let t=d[c];t&&p(t.id)}},placeholder:`Find a card by title…`,ref:u,value:o}),(0,X.jsx)(`ul`,{className:`search-results`,role:`listbox`,children:d.length===0?(0,X.jsx)(`li`,{className:`search-empty`,children:`No matching cards.`}):d.map((e,t)=>(0,X.jsxs)(`li`,{"aria-selected":t===c,className:`search-result${t===c?` active`:``} search-${e.kind}`,onClick:()=>p(e.id),onMouseEnter:()=>l(t),role:`option`,children:[(0,X.jsx)(`span`,{className:`search-kind`,children:e.kind===`capability`?`SPEC`:`PROPOSAL`}),(0,X.jsx)(`span`,{className:`search-label`,children:e.label})]},e.id))})]})}):null}function vw({preview:e}){let t=80+e.col*280,n=80+e.rowIndex*170;return(0,X.jsxs)(ZS,{children:[(0,X.jsx)(`div`,{className:`grid-overlay`,"data-testid":`grid-overlay`,style:{position:`absolute`,left:-200,top:-90,width:280*60,height:10200,backgroundSize:`280px 170px`,pointerEvents:`none`}}),(0,X.jsx)(`div`,{className:`snap-target`,"data-testid":`snap-target`,style:{position:`absolute`,left:t-8,top:n-8,width:256,height:148,pointerEvents:`none`}})]})}function yw({rfNodes:e,rfEdges:t,onConnect:n,onEdgesChange:r,onNodesChange:i,onNodeClick:a,onNodeMouseEnter:o,onNodeMouseLeave:s,onPaneClick:c,onNodeDrag:l,onNodeDragStop:u,onBacklogDrop:d,dragPreview:f,searchItems:p,resolveCard:m,revealCard:h,toast:g,children:_}){let{screenToFlowPosition:v}=Ub();return(0,X.jsxs)(`section`,{className:`canvas`,"aria-label":`Planning canvas`,onDragOver:e=>{e.dataTransfer.types.includes(`application/specplan-node`)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)},onDrop:e=>{let t=e.dataTransfer.getData(`application/specplan-node`);if(!t)return;e.preventDefault();let n=v({x:e.clientX,y:e.clientY});d(t,n.x,n.y)},children:[(0,X.jsxs)(YS,{autoPanOnNodeDrag:!1,deleteKeyCode:[`Backspace`,`Delete`],edges:t,fitView:!0,minZoom:.1,nodes:e,nodesDraggable:!0,nodeTypes:uw,onConnect:n,onEdgesChange:r,onNodeClick:(e,t)=>a(t.id),onNodeMouseEnter:(e,t)=>o(t.id),onNodeMouseLeave:()=>s(),onPaneClick:()=>c(),onNodeDrag:(e,t)=>l(t),onNodeDragStop:(e,t)=>u(t),onNodesChange:i,proOptions:{hideAttribution:!0},children:[(0,X.jsx)(iC,{}),(0,X.jsx)(pC,{}),(0,X.jsx)(AC,{className:`specplan-minimap`,nodeColor:bw,pannable:!0,position:`top-right`,style:{width:150,height:104},zoomable:!0}),f&&(0,X.jsx)(vw,{preview:f})]}),(0,X.jsx)(_w,{items:p,resolve:m,onReveal:h}),g&&(0,X.jsx)(`div`,{className:`toast`,"data-testid":`toast`,role:`alert`,children:g}),_]})}function bw(e){return e.type===`capability`?`#5ba3e8`:e.type===`capGroup`?`#8a8a8a`:e.type===`story`?`#3a3a3a`:`#e8925b`}function xw(e){return(0,X.jsx)(GS,{children:(0,X.jsx)(yw,{...e})})}function Sw(e,t){let n=e.slice(0,Math.max(0,Math.min(t,e.length))),r=n.lastIndexOf(`@`);if(r===-1)return null;let i=r===0?``:n[r-1];if(i!==``&&!/[\s([{'"`]/.test(i))return null;let a=n.slice(r+1);return/\s/.test(a)||a.includes(`@`)?null:{start:r,query:a}}function Cw(e,t,n,r){let i=e.slice(0,t.start),a=Math.max(t.start,Math.min(n,e.length));for(;a<e.length&&!/\s/.test(e[a]);)a++;let o=e.slice(a);if(r.endsWith(`/`)){let e=`@${r}`;return{text:i+e+o,caret:i.length+e.length}}let s=o.startsWith(` `),c=`@${r}${s?``:` `}`;return{text:i+c+o,caret:i.length+c.length+ +!!s}}function ww(e,t,n){let[r,i]=(0,G.useState)(null),[a,o]=(0,G.useState)([]),[s,c]=(0,G.useState)(0);function l(){let t=e.current;i(t?Sw(t.value,t.selectionStart??t.value.length):null)}let u=r?.query;(0,G.useEffect)(()=>{if(u===void 0||!n){o([]);return}let e=!1,t=setTimeout(()=>{n(u).then(t=>{e||(o(t),c(0))}).catch(()=>{})},120);return()=>{e=!0,clearTimeout(t)}},[u,n]);let d=r!==null&&a.length>0;function f(n){let a=e.current;if(!a||!r)return;let o=Cw(a.value,r,a.selectionStart??a.value.length,n);t(o.text),i(n.endsWith(`/`)?{start:r.start,query:n}:null),requestAnimationFrame(()=>{a.focus(),a.setSelectionRange(o.caret,o.caret)})}function p(e){if(!d)return!1;if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault();let t=e.key===`ArrowDown`?1:a.length-1;return c(e=>(e+t)%a.length),!0}if(e.key===`Enter`||e.key===`Tab`){e.preventDefault();let t=a[s];return t!==void 0&&f(t),!0}return e.key===`Escape`?(e.preventDefault(),i(null),!0):!1}return{open:d,results:a,highlight:s,sync:l,select:f,onKeyDown:p}}function Tw({search:e,placement:t}){return e.open?(0,X.jsx)(`ul`,{"aria-label":`File search results`,className:`at-search ${t}`,role:`listbox`,children:e.results.map((t,n)=>(0,X.jsx)(`li`,{children:(0,X.jsxs)(`button`,{"aria-selected":n===e.highlight,className:`at-item${n===e.highlight?` active`:``}${t.endsWith(`/`)?` dir`:``}`,onMouseDown:n=>{n.preventDefault(),e.select(t)},role:`option`,type:`button`,children:[`@`,t]})},t))}):null}function Ew(e){return e.map(({role:e,text:t,at:n})=>({role:e,text:t,at:n}))}function Dw({messages:e,pending:t,error:n,onSend:r,onClear:i,searchFiles:a}){let[o,s]=(0,G.useState)(``),c=(0,G.useRef)(null),l=(0,G.useRef)(null),u=ww(l,s,a);(0,G.useEffect)(()=>{c.current?.scrollTo({top:c.current.scrollHeight})},[e.length,t]);function d(){let e=o.trim();!e||t||(s(``),r(e))}return(0,X.jsxs)(`div`,{className:`chat`,children:[(0,X.jsxs)(`div`,{className:`chat-messages`,ref:c,children:[e.length===0&&!n&&(0,X.jsxs)(`div`,{className:`chat-empty`,children:[`Ask the assistant to add specs and stories, link dependencies, contain stories, or reorder items — it applies changes straight to the canvas and can never delete anything. Pull files into context with`,` `,(0,X.jsx)(`code`,{children:`@path/to/file`}),` or `,(0,X.jsx)(`code`,{children:`@filename`}),`.`]}),e.map((e,t)=>(0,X.jsxs)(`div`,{className:`chat-message chat-${e.role}`,children:[(0,X.jsx)(`div`,{className:`chat-role`,children:e.role}),(0,X.jsx)(`div`,{className:`chat-text`,children:e.text}),e.toolCalls&&e.toolCalls.length>0&&(0,X.jsxs)(`details`,{className:`chat-refs chat-tools`,"data-testid":`chat-tools`,open:!0,children:[(0,X.jsxs)(`summary`,{children:[e.toolCalls.length,` change`,e.toolCalls.length===1?``:`s`,` applied`]}),(0,X.jsx)(`ul`,{children:e.toolCalls.map((e,t)=>(0,X.jsxs)(`li`,{children:[e.tool,`: `,e.summary]},`${e.tool}-${t}`))})]}),e.refs&&(e.refs.resolved.length>0||e.refs.unresolved.length>0)&&(0,X.jsxs)(`details`,{className:`chat-refs`,children:[(0,X.jsxs)(`summary`,{children:[e.refs.resolved.length,` file`,e.refs.resolved.length===1?``:`s`,` in context`,e.refs.unresolved.length>0&&`, ${e.refs.unresolved.length} unresolved`]}),(0,X.jsxs)(`ul`,{children:[e.refs.resolved.map(e=>(0,X.jsxs)(`li`,{children:[`@`,e]},e)),e.refs.unresolved.map(e=>(0,X.jsxs)(`li`,{className:`chat-ref-missing`,children:[`@`,e.ref,` — `,e.reason]},e.ref))]})]})]},`${e.at}-${t}`)),t&&(0,X.jsx)(`div`,{"aria-busy":`true`,className:`chat-message chat-assistant chat-thinking`,"data-state":`thinking`,children:`thinking…`}),n&&(0,X.jsx)(`div`,{className:`chat-fault`,children:n})]}),(0,X.jsxs)(`div`,{className:`chat-composer`,children:[(0,X.jsxs)(`div`,{className:`at-anchor`,children:[(0,X.jsx)(Tw,{placement:`up`,search:u}),(0,X.jsx)(`textarea`,{"aria-label":`Chat message`,className:`chat-input`,onChange:e=>{s(e.target.value),u.sync()},onKeyDown:e=>{u.onKeyDown(e)||e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),d())},onSelect:u.sync,placeholder:`Ask to add, link, or reorder… (@ searches files)`,ref:l,rows:2,value:o})]}),(0,X.jsxs)(`div`,{className:`chat-composer-actions`,children:[(0,X.jsx)(`button`,{className:`chat-clear`,disabled:e.length===0&&!n,onClick:i,title:`Clear the conversation and start over`,type:`button`,children:`Clear`}),(0,X.jsx)(`button`,{className:`chat-send`,disabled:t||!o.trim(),onClick:d,type:`button`,children:t?`Sending…`:`Send`})]})]})]})}function Ow({info:e,failed:t,onSave:n,searchFiles:r}){let[i,a]=(0,G.useState)(),o=(0,G.useRef)(null),s=ww(o,a,r);if(t)return(0,X.jsx)(`div`,{className:`empty error`,children:`Could not load the system prompt.`});if(!e)return(0,X.jsx)(`div`,{className:`empty`,children:`Loading the system prompt…`});let c=i??e.system,l=c!==e.system,u=c===e.default&&!e.custom;return(0,X.jsxs)(`div`,{className:`prompt-pane`,children:[(0,X.jsxs)(`div`,{className:`artifact-head`,children:[(0,X.jsxs)(`code`,{className:`path`,children:[`generation system prompt`,e.custom?` — customized`:``,l?` (unsaved)`:``]}),(0,X.jsxs)(`div`,{className:`prompt-actions`,children:[(0,X.jsx)(`button`,{className:`copy`,disabled:u&&!l,onClick:()=>{a(void 0),n(null)},title:`Restore the built-in default prompt`,type:`button`,children:`Reset`}),(0,X.jsx)(`button`,{className:`copy prompt-save`,disabled:!l||!c.trim(),onClick:()=>{n(c),a(void 0)},type:`button`,children:`Save`})]})]}),(0,X.jsxs)(`div`,{className:`at-anchor prompt-anchor`,children:[(0,X.jsx)(Tw,{placement:`down`,search:s}),(0,X.jsx)(`textarea`,{"aria-label":`Generation system prompt`,className:`prompt-editor`,onChange:e=>{a(e.target.value),s.sync()},onKeyDown:e=>void s.onKeyDown(e),onSelect:s.sync,ref:o,spellCheck:!1,value:c})]}),(0,X.jsxs)(`p`,{className:`prompt-hint`,children:[`Drives every generation. `,(0,X.jsx)(`code`,{children:`@path`}),` / `,(0,X.jsx)(`code`,{children:`@filename`}),` references resolve to file contents. Saved edits persist with the plan root.`]})]})}function kw({plan:e,llm:t,onCreateSpec:n,onCreateStory:r,promptInfo:i,promptFailed:a,onSavePrompt:o,chat:s,chatPending:c,chatError:l,onSendChat:u,onClearChat:d,searchFiles:f}){let[p,m]=(0,G.useState)(`backlog`),[h,g]=(0,G.useState)(!1),_=[{key:`backlog`,label:`Backlog`},...t?[{key:`chat`,label:`Chat`},{key:`prompt`,label:`System Prompt`}]:[]];return h?(0,X.jsx)(`button`,{"aria-label":`Show planning pane`,className:`panel-reopen`,"data-testid":`panel-reopen`,onClick:()=>g(!1),title:`Show planning pane`,type:`button`,children:`«`}):(0,X.jsxs)(`aside`,{className:`panel`,"aria-label":`Planning pane`,children:[(0,X.jsxs)(`nav`,{className:`pane-nav`,"aria-label":`Side pane options`,children:[_.map(e=>(0,X.jsx)(`button`,{className:p===e.key?`pane-item active`:`pane-item`,onClick:()=>m(e.key),type:`button`,children:e.label},e.key)),(0,X.jsx)(`button`,{"aria-label":`Hide planning pane`,className:`pane-collapse`,"data-testid":`panel-collapse`,onClick:()=>g(!0),title:`Hide planning pane`,type:`button`,children:`»`})]}),p===`backlog`&&(0,X.jsx)(Aw,{plan:e,onCreateSpec:n,onCreateStory:r,searchFiles:f}),p===`chat`&&t&&(0,X.jsx)(Dw,{messages:s,pending:c,error:l,onSend:u,onClear:d,searchFiles:f}),p===`prompt`&&t&&(0,X.jsx)(Ow,{failed:a,info:i,onSave:o,searchFiles:f})]})}function Aw({plan:e,onCreateSpec:t,onCreateStory:n,searchFiles:r}){let[i,a]=(0,G.useState)(null),{specs:o,stories:s}=FC(e),c=(e,t,n,r)=>(0,X.jsxs)(`div`,{className:`backlog-section`,"data-testid":t,children:[(0,X.jsx)(`h2`,{children:e}),n.length===0?(0,X.jsx)(`p`,{className:`hint`,children:r}):(0,X.jsx)(`ul`,{className:`backlog-list`,children:n.map(e=>(0,X.jsxs)(`li`,{className:`backlog-item`,draggable:e.type===`proposal`,onDragStart:t=>{t.dataTransfer.setData(`application/specplan-node`,e.id),t.dataTransfer.effectAllowed=`copy`},children:[e.type===`user_story`?e.text:e.title,(0,X.jsx)(`span`,{className:`backlog-id`,children:e.id})]},e.id))})]});return(0,X.jsxs)(`div`,{className:`backlog-pane`,"aria-label":`Backlog`,children:[(0,X.jsxs)(`div`,{className:`backlog-actions`,children:[(0,X.jsx)(`button`,{className:`chat-send`,onClick:()=>a(`spec`),type:`button`,children:`New spec…`}),(0,X.jsx)(`button`,{className:`chat-send`,onClick:()=>a(`story`),type:`button`,children:`New story…`})]}),(0,X.jsx)(`p`,{className:`hint`,children:`Not yet linked into the plan — drag a link on the canvas (or ask the chat) and an item clears from this list.`}),c(`Specs`,`backlog-specs`,o,`Every spec is linked into the plan.`),c(`User stories`,`backlog-stories`,s,`Every story is covered by a spec.`),i&&(0,X.jsx)(jw,{kind:i,onCreateSpec:t,onCreateStory:n,onClose:()=>a(null),searchFiles:r})]})}function jw({kind:e,onCreateSpec:t,onCreateStory:n,onClose:r,searchFiles:i}){let[a,o]=(0,G.useState)(``),[s,c]=(0,G.useState)(``),[l,u]=(0,G.useState)(``),[d,f]=(0,G.useState)(!1),p=(0,G.useRef)(null),m=ww(p,c,i);(0,G.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r]);let h=e===`spec`?!!a.trim():!!l.trim();function g(){!h||d||(f(!0),(e===`spec`?t(a,s):n(l)).then(e=>{e&&r()}).finally(()=>f(!1)))}return(0,X.jsx)(`div`,{className:`dialog-overlay`,onClick:r,role:`presentation`,children:(0,X.jsxs)(`div`,{"aria-label":e===`spec`?`Create spec dialog`:`Create user story dialog`,className:`dialog dialog-create`,"data-testid":`create-dialog`,onClick:e=>e.stopPropagation(),role:`dialog`,children:[(0,X.jsxs)(`div`,{className:`dialog-head`,children:[(0,X.jsx)(`div`,{className:`dialog-title`,children:e===`spec`?`New spec`:`New user story`}),(0,X.jsx)(`div`,{className:`dialog-actions`,children:(0,X.jsx)(`button`,{className:`chat-clear`,onClick:r,type:`button`,children:`Cancel`})})]}),e===`spec`?(0,X.jsxs)(`div`,{className:`plan-form`,children:[(0,X.jsx)(`h2`,{children:`Name`}),(0,X.jsx)(`input`,{"aria-label":`New spec title`,autoFocus:!0,onChange:e=>o(e.target.value),placeholder:`Spec title…`,value:a}),(0,X.jsx)(`h2`,{children:`Description / generation prompt`}),(0,X.jsxs)(`div`,{className:`at-anchor`,children:[(0,X.jsx)(Tw,{placement:`down`,search:m}),(0,X.jsx)(`textarea`,{"aria-label":`Spec description`,onChange:e=>{c(e.target.value),m.sync()},onKeyDown:e=>void m.onKeyDown(e),onSelect:m.sync,placeholder:`What this spec covers — steers generation. @path / @filename pulls files into context…`,ref:p,rows:6,value:s})]})]}):(0,X.jsxs)(`div`,{className:`plan-form`,children:[(0,X.jsx)(`h2`,{children:`Story`}),(0,X.jsx)(`textarea`,{"aria-label":`New user story`,autoFocus:!0,onChange:e=>u(e.target.value),placeholder:`As a <user>, I want to <feature> so that <value>…`,rows:4,value:l})]}),(0,X.jsx)(`div`,{className:`dialog-actions dialog-submit`,children:(0,X.jsx)(`button`,{className:`chat-send`,disabled:!h||d,onClick:g,type:`button`,children:d?`Creating…`:e===`spec`?`Create spec`:`Create story`})})]})})}var Mw=`modulepreload`,Nw=function(e){return`/`+e},Pw={},Fw=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,new URL(`../../../src/node/plugins/importAnalysisBuild.ts`,import.meta.url)).href}r=o(t.map(t=>{if(t=Nw(t,n),t=s(t),t in Pw)return;Pw[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Mw,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Iw=new Nu({html:!1,linkify:!0}),Lw=(0,G.lazy)(async()=>{let[e]=await Promise.all([Fw(()=>import(`./prod-Ba4uM3Ch.js`),__vite__mapDeps([0,1,2,3,4,5,6])),Fw(()=>Promise.resolve({}),__vite__mapDeps([7]))]);return{default:e.Excalidraw}}),Rw=`diagram.excalidraw`;function zw({source:e}){let t=null,n;try{let n=JSON.parse(e);t={elements:Array.isArray(n.elements)?n.elements:[],appState:{viewBackgroundColor:n.appState?.viewBackgroundColor??`#ffffff`},scrollToContent:!0}}catch(e){n=e instanceof Error?e.message:String(e)}return n===void 0?(0,X.jsx)(`div`,{className:`artifact-body dialog-body excalidraw-preview`,"data-testid":`diagram-preview`,children:(0,X.jsx)(G.Suspense,{fallback:(0,X.jsx)(`div`,{className:`empty`,children:`Loading the diagram…`}),children:(0,X.jsx)(Lw,{initialData:t,viewModeEnabled:!0})})}):(0,X.jsxs)(`div`,{className:`empty error`,"data-testid":`diagram-error`,children:[`Could not parse `,Rw,`: `,n]})}function Bw({specId:e,title:t,kind:n=`change`,generating:r,loadArtifacts:i,onRegenerate:a,onClose:o}){let[s,c]=(0,G.useState)(null),[l,u]=(0,G.useState)(),[d,f]=(0,G.useState)(0),p=(0,G.useCallback)(async()=>{try{c(await i(e)),u(void 0)}catch(e){u(e instanceof Error?e.message:String(e))}},[e,i]);(0,G.useEffect)(()=>{p()},[p]),(0,G.useEffect)(()=>{let e=e=>{e.key===`Escape`&&o()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[o]);let m=[...(s?.files??[]).map(e=>({path:e.path,content:e.content,diagram:!1})),...typeof s?.diagram==`string`?[{path:Rw,content:s.diagram,diagram:!0}]:[]],h=m[Math.min(d,Math.max(m.length-1,0))],g=n===`capability`?`openspec/specs/${e}/`:`openspec/changes/${e}/`;return(0,X.jsx)(`div`,{className:`dialog-overlay`,onClick:o,role:`presentation`,children:(0,X.jsxs)(`div`,{"aria-label":n===`capability`?`Capability spec for ${t} (read-only)`:`OpenSpec change for ${t}`,className:`dialog`,"data-testid":`spec-dialog`,onClick:e=>e.stopPropagation(),role:`dialog`,children:[(0,X.jsxs)(`div`,{className:`dialog-head`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`div`,{className:`dialog-title`,children:t}),(0,X.jsx)(`code`,{className:`dialog-path`,children:g})]}),(0,X.jsxs)(`div`,{className:`dialog-actions`,children:[a&&(0,X.jsx)(`button`,{className:`chat-send`,disabled:r,onClick:()=>{a().then(e=>{e&&p()})},title:s?.handEdited?`Body is hand-edited — regeneration updates metadata only`:`Re-run generation from the card’s current stories and dependencies`,type:`button`,children:r?`Regenerating…`:`Regenerate`}),(0,X.jsx)(`button`,{className:`chat-clear`,onClick:o,type:`button`,children:`Close`})]})]}),s?.handEdited&&(0,X.jsxs)(`p`,{className:`dialog-notice dialog-notice--warning`,"data-state":`hand-edited`,"data-testid":`hand-edited-notice`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,children:`⚠`}),` This change's body was edited outside specplan (or predates it) — Regenerate updates only the plan metadata and leaves every .md file untouched.`]}),l&&(0,X.jsx)(`div`,{className:`empty error`,children:l}),!l&&!s&&(0,X.jsx)(`div`,{className:`empty`,children:n===`capability`?`Loading the spec…`:`Loading the change…`}),!l&&s&&m.length===0&&(0,X.jsx)(`div`,{className:`empty`,children:`No body files on disk (metadata only so far).`}),h&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{className:`tabs`,children:m.map((e,t)=>(0,X.jsx)(`button`,{className:t===d?`tab active`:`tab`,onClick:()=>f(t),type:`button`,children:e.path},e.path))}),(0,X.jsxs)(`div`,{className:`artifact-head`,children:[(0,X.jsxs)(`code`,{className:`path`,children:[g,h.path]}),!h.diagram&&(0,X.jsx)(`button`,{className:`copy`,onClick:()=>navigator.clipboard?.writeText(h.content),type:`button`,children:`Copy`})]}),h.diagram?(0,X.jsx)(zw,{source:h.content}):h.path.endsWith(`.md`)?(0,X.jsx)(`div`,{className:`artifact-body dialog-body artifact-rendered`,dangerouslySetInnerHTML:{__html:Iw.render(h.content)},"data-testid":`artifact-rendered`}):(0,X.jsx)(`pre`,{className:`artifact-body dialog-body`,children:h.content})]})]})})}function Vw({session:e,api:t}){let n=t.llm,[r,i]=(0,G.useState)(e.plan),[a,o]=(0,G.useState)(e.specStates),[s,c]=(0,G.useState)(()=>e.collapsedGroups??$C(IC(e.plan.nodes.filter(e=>e.type===`capability`)).map(e=>e.id))),l=(0,G.useRef)(s),[u,d]=(0,G.useState)(e.hideEmptySpecs??!1),f=(0,G.useRef)(u),p=(0,G.useRef)(KC(e.plan,s,{hideEmptyCaps:u})),[m,h]=(0,G.useState)(()=>dw(e.plan,p.current,void 0,e.specStates)),[g,_]=(0,G.useState)(()=>fw(e.plan,p.current)),[v,y]=(0,G.useState)(null),[b,x]=(0,G.useState)(null),[S,C]=(0,G.useState)(null),w=S??b,[T,E]=(0,G.useState)(0),D=(0,G.useCallback)(()=>E(e=>e+1),[]),[O,k]=(0,G.useState)(null),[A,j]=(0,G.useState)(null),[M,ee]=(0,G.useState)(null),te=(0,G.useRef)(e.model??`claude-opus-4-8`),[ne,N]=(0,G.useState)(te.current),P=(0,G.useRef)(void 0),[re,F]=(0,G.useState)();(0,G.useEffect)(()=>{if(!re)return;let e=setTimeout(()=>F(void 0),4e3);return()=>clearTimeout(e)},[re]);let I=(0,G.useCallback)(e=>{let t=r.nodes.find(t=>t.id===e);return t?t.type===`user_story`?t.text.slice(0,40):t.title:e},[r]),[ie,L]=(0,G.useState)(e.chat??[]),[R,ae]=(0,G.useState)(!1),[oe,se]=(0,G.useState)();async function ce(e){let t=e.trim();if(!t||R||!n)return;let r=Ew(ie);L(e=>[...e,{role:`user`,text:t,at:new Date().toISOString()}]),ae(!0),se(void 0);try{let e=await n.chat(t,r,te.current);i(e.plan),L(t=>[...t,{...e.reply,...e.toolCalls.length>0?{toolCalls:e.toolCalls}:{},...e.resolvedRefs.length>0||e.unresolvedRefs.length>0?{refs:{resolved:e.resolvedRefs,unresolved:e.unresolvedRefs}}:{}}])}catch(e){se(e instanceof Error?e.message:String(e))}finally{ae(!1)}}function le(){L([]),se(void 0),n?.clearChat().catch(()=>{})}let[ue,de]=(0,G.useState)(),[fe,pe]=(0,G.useState)(!1);(0,G.useEffect)(()=>{if(!n)return;let e=!1;return n.getPrompt().then(t=>{e||de(t)}).catch(()=>{e||pe(!0)}),()=>{e=!0}},[n]);function me(e){ue&&(de(e===null?{...ue,system:ue.default,custom:!1}:{...ue,system:e,custom:e!==ue.default}),n?.savePrompt(e).catch(()=>{}))}let he=(0,G.useCallback)(async e=>{if(!n)return null;k(e);try{let t=await n.generate(e,te.current);return F(t.mode===`metadata-only`?`Body is hand-edited — updated metadata only, .md files untouched.`:`Generated + validated: ${t.changedFiles.length} file${t.changedFiles.length===1?``:`s`} changed.`),o(n=>{let r=n[e]?.status??`draft`;return{...n,[e]:t.mode===`generated`?{...n[e],hasSpec:!0,handEdited:!1,status:r}:n[e]??{hasSpec:!0,handEdited:!0,status:r}}}),t.mode}catch(e){return F(e instanceof Error?e.message:String(e)),null}finally{k(null)}},[n]),ge=(0,G.useCallback)(async(e,n)=>{try{await t.setStatus(e,n),o(t=>({...t,[e]:{...t[e]??{hasSpec:!1,handEdited:!1,status:n},status:n}}))}catch(e){F(e instanceof Error?e.message:String(e))}},[t]),_e=(0,G.useCallback)(async(e,n)=>{try{await t.setImplemented(e,n),o(t=>({...t,[e]:{...t[e]??{hasSpec:!1,handEdited:!1,status:`draft`},implemented:n}}))}catch(e){F(e instanceof Error?e.message:String(e))}},[t]),ve=(0,G.useCallback)(async(e,n)=>{try{return{status:`ok`,result:await t.apply(e,n)}}catch(e){return e instanceof So&&e.handEdit?{status:`hand-edit`}:{status:`error`,message:e instanceof Error?e.message:String(e)}}},[t]),ye=(0,G.useCallback)(e=>{(async()=>{try{let n=await t.loadSession();i(n.plan),o(n.specStates);let r=e.newCapabilities.length;F(`Applied ${I(e.specId)} — folded into specs/ and archived.`+(r>0?` +${r} capability root${r===1?``:`s`}.`:``))}catch{F(`Applied — reload to see the folded state.`)}})()},[t,I]);(0,G.useEffect)(()=>{let e=KC(r,s,{hideEmptyCaps:u});p.current=e,h(dw(r,e,{...n?{generate:e=>void he(e)}:{},generatingId:O,setStatus:(e,t)=>void ge(e,t),setImplemented:(e,t)=>void _e(e,t),apply:e=>{let t=r.nodes.find(t=>t.id===e);ee({id:e,title:t?.type===`proposal`?t.title:e})}},a)),_(fw(r,e))},[r,O,he,ge,_e,a,s,u,n,T]);let be=(0,G.useMemo)(()=>pw(m,g,w),[m,g,w]),xe=(0,G.useMemo)(()=>hw(m,be),[m,be]),Se=(0,G.useMemo)(()=>gw(g,be),[g,be]),Ce=(0,G.useCallback)(()=>{clearTimeout(P.current),P.current=setTimeout(()=>{t.saveUiState({...t.llm?{model:te.current}:{},collapsedGroups:l.current,hideEmptySpecs:f.current}).catch(()=>{})},800)},[t]),we=(0,G.useCallback)(()=>{d(e=>{let t=!e;return f.current=t,t}),Ce()},[Ce]),Te=(0,G.useCallback)(e=>{let t=IC(r.nodes.filter(e=>e.type===`capability`)).map(e=>e.id);c(n=>{let r=new Set(n);if(r.has(e)){r.delete(e);let n=QC(ZC(t),e);for(let e of n?.children??[])r.add(e.key)}else{r.add(e);for(let t of[...r])t.startsWith(`${e}-`)&&r.delete(t)}let i=[...r];return l.current=i,i}),Ce()},[r,Ce]);function Ee(e){te.current=e,N(e),Ce()}let De=(0,G.useCallback)(e=>e.rowKeys.filter(e=>e!==`__unscheduled`&&e!==`__stories`),[]),Oe=(0,G.useCallback)(async e=>{try{await t.arrangeRow(e),i(t=>({...t,nodes:t.nodes.map(t=>{let n=e.indexOf(t.id);return n===-1?t:{...t,order:n}})}))}catch(e){F(e instanceof Error?e.message:String(e))}},[t]),ke=(0,G.useCallback)(e=>{let t=e.map(e=>e.type!==`position`||!e.position?e:r.nodes.find(t=>t.id===UC(e.id))?.type===`capability`?{...e,position:{...e.position,x:80}}:e);h(e=>Tb(t,e))},[r]),Ae=(0,G.useCallback)(e=>{let{rowIndex:t,col:n}=qC(e.position.x,e.position.y),r=p.current.rowKeys.length;y({rowIndex:Math.max(0,Math.min(t,r)),col:Math.max(0,n)})},[]),je=(0,G.useCallback)((e,t)=>{let n=IC(r.nodes.filter(e=>e.type===`capability`)).map(e=>e.id),{rowIndex:i}=qC(e.position.x,e.position.y),a=n.filter(e=>e!==t),o=Math.max(0,Math.min(i,a.length)),s=[...a.slice(0,o),t,...a.slice(o)];if(s.every((e,t)=>e===n[t])){D();return}Oe(s)},[r,Oe,D]),Me=(0,G.useCallback)(async(e,n,a,o)=>{try{if(!r.edges.some(t=>t.type===`targets`&&t.from===a&&t.to===e)){let n=await t.link(a,e);i(e=>({...e,edges:[...e.edges,n]}))}let s=YC(JC((p.current.occupantsByRow.get(n)??[]).filter(t=>t!==e),e,o),r);await Oe(s),F(`Scheduled ${I(e)}.`)}catch(e){F(e instanceof Error?e.message:String(e))}},[t,r,Oe,I]),Ne=(0,G.useCallback)(async(e,n)=>{let a=p.current.capsByRow.get(n)??(VC(n)===null?[n]:[]),o=r.edges.filter(t=>t.type===`targets`&&t.to===e&&a.includes(t.from));try{if(o.length>0){for(let e of o)await t.unlink(e.from,e.to);i(t=>({...t,edges:t.edges.filter(t=>!(t.type===`targets`&&t.to===e&&a.includes(t.from)))})),F(`Unscheduled ${I(e)}.`);return}let n=r.edges.filter(t=>t.type===`stacked`&&t.from===e).map(e=>e.to);if(n.length===0){D();return}let s=new Map(r.nodes.map(e=>[e.id,e.order])),c=n.sort((e,t)=>(s.get(e)??0)-(s.get(t)??0)||e.localeCompare(t))[0];await t.unlink(e,c),i(t=>({...t,edges:t.edges.filter(t=>!(t.type===`stacked`&&t.from===e&&t.to===c))})),F(`Removed dependency ${I(c)}.`)}catch(e){F(e instanceof Error?e.message:String(e))}},[t,r,I,D]),Pe=(0,G.useCallback)(e=>{y(null);let t=UC(e.id),n=r.nodes.find(e=>e.id===t);if(!n){D();return}if(n.type===`capability`){je(e,t);return}if(n.type!==`proposal`){D();return}let i=p.current,{rowIndex:a,col:o}=qC(e.position.x,e.position.y),s=De(i),c=WC(e.id),l=a>=0&&a<s.length?s[a]:void 0,u=Math.max(1,o);if(l===void 0||o<0){c?Ne(t,c):D();return}let d=i.capsByRow.get(l)??[];if(d.length===0){D();return}if(c===l){let e=YC(JC((i.occupantsByRow.get(l)??[]).filter(e=>e!==t),t,u),r);Oe(e);return}Me(t,l,d[0],u)},[r,De,Oe,Ne,je,Me,D]),Fe=(0,G.useCallback)((e,t,n)=>{let i=r.nodes.find(t=>t.id===e);if(!i)return;if(i.type===`user_story`){F(`Stories are scheduled by containing them in a proposal.`);return}let a=p.current,{rowIndex:o,col:s}=qC(t,n),c=De(a),l=o>=0&&o<c.length?c[o]:void 0;if(!l){F(`Drop onto a spec row to schedule the card.`);return}let u=a.capsByRow.get(l)??[];if(u.length===0){F(`That row can’t hold a card.`);return}Me(e,l,u[0],Math.max(1,s))},[r,De,Me]);async function Ie(e,n){try{let r=await t.createSpec(e,n);return i(e=>({...e,nodes:[...e.nodes,r]})),!0}catch(e){return F(e instanceof Error?e.message:String(e)),!1}}async function Le(e){try{let n=await t.createStory(e);return i(e=>({...e,nodes:[...e.nodes,n]})),!0}catch(e){return F(e instanceof Error?e.message:String(e)),!1}}let Re=(0,G.useCallback)(async(e,n)=>{try{let r=await t.link(e,n);return i(e=>({...e,edges:[...e.edges,r]})),!0}catch(e){return F(e instanceof Error?e.message:String(e)),!1}},[t]),ze=(0,G.useCallback)(async(e,t,n)=>{let r=KC(e,s,{hideEmptyCaps:u}),i=new Map(e.nodes.map(e=>[e.id,e.order])),a=(e,t)=>(i.get(e)??0)-(i.get(t)??0)||e.localeCompare(t),o=[],c=!1;for(let i of r.rowKeys){let s=r.occupantsByRow.get(i)??[];if(!s.includes(t)||!s.includes(n))continue;let l=[...s].sort(a),u=YC(l,e);u.some((e,t)=>e!==l[t])&&(c=!0);for(let e of u)o.includes(e)||o.push(e)}c&&o.length>0?(await Oe(o),F(`Arranged ${I(t)} after ${I(n)}.`)):D()},[s,u,Oe,I,D]),Be=(0,G.useCallback)(e=>{if(!e.source||!e.target)return;let n=r.nodes.find(t=>t.id===UC(e.source)),a=r.nodes.find(t=>t.id===UC(e.target));if(n?.type===`proposal`&&a?.type===`proposal`){(async()=>{try{let e=await t.link(a.id,n.id),o={...r,edges:[...r.edges,e]};i(o),await ze(o,e.from,e.to)}catch(e){F(e instanceof Error?e.message:String(e))}})();return}n&&a&&Re(n.id,a.id)},[t,Re,r,ze]),Ve=(0,G.useCallback)(async(e,n)=>{try{await t.unlink(e,n),i(t=>({...t,edges:t.edges.filter(t=>!(t.from===e&&t.to===n))})),F(`Unlinked ${I(e)} -> ${I(n)}.`)}catch(e){F(e instanceof Error?e.message:String(e))}},[t,I]),He=(0,G.useCallback)(e=>{let t=e.filter(e=>e.type!==`remove`);t.length>0&&_(e=>Eb(t,e));for(let t of e){if(t.type!==`remove`)continue;let[e,n]=t.id.split(`->`);e&&n&&Ve(e,n)}},[Ve]),Ue=(0,G.useMemo)(()=>r.nodes.filter(e=>e.type===`capability`||e.type===`proposal`).map(e=>({id:e.id,label:(e.type,e.title),kind:e.type===`capability`?`capability`:`proposal`})),[r]),We=(0,G.useCallback)(e=>{let t=p.current,n=r.nodes.find(t=>t.id===e);if(!n)return null;if(n.type===`capability`)return t.hidden.has(e)?`hidden`:t.positions[e]??null;let i=t.memberRowsByProp.get(e)??[],a=i.length>0?HC(e,i[0]):e;return t.positions[a]??null},[r]),Ge=(0,G.useCallback)(e=>{c(t=>{let n=t.filter(t=>!(e===t||e.startsWith(`${t}-`)));return n.length===t.length?t:(l.current=n,n)}),Ce()},[Ce]);return(0,G.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(C(null),x(null))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),(0,X.jsxs)(`div`,{className:`app`,children:[(0,X.jsx)(tw,{rootName:e.rootName,hideEmptySpecs:u,onToggleHideEmpty:we,...n?{model:ne,onModelChange:Ee}:{}}),(0,X.jsxs)(`main`,{className:`workspace`,children:[(0,X.jsxs)(xw,{rfNodes:xe,rfEdges:Se,onConnect:Be,onEdgesChange:He,onNodesChange:ke,onNodeDrag:Ae,onNodeDragStop:Pe,onBacklogDrop:Fe,dragPreview:v,searchItems:Ue,resolveCard:We,revealCard:Ge,onNodeMouseEnter:e=>x(UC(e)),onNodeMouseLeave:()=>x(null),onPaneClick:()=>C(null),onNodeClick:e=>{let t=VC(e);if(t!==null){C(e),Te(t);return}let n=UC(e);C(n);let i=r.nodes.find(e=>e.id===n);i?.type===`capability`?j({id:i.id,title:i.title,kind:`capability`}):i?.type===`proposal`&&a[n]?.hasSpec&&j({id:i.id,title:i.title,kind:`proposal`})},toast:re,children:[A&&(0,X.jsx)(Bw,{specId:A.id,title:A.title,kind:A.kind===`capability`?`capability`:`change`,generating:O===A.id,loadArtifacts:A.kind===`capability`?async e=>{let{content:n}=await t.getCapabilitySpec(e);return{specId:e,handEdited:!1,files:[{path:`spec.md`,content:n}]}}:e=>t.getSpecArtifacts(e),...n&&A.kind===`proposal`?{onRegenerate:()=>he(A.id)}:{},onClose:()=>j(null)}),M&&(0,X.jsx)(nw,{specId:M.id,title:M.title,apply:e=>ve(M.id,e),onApplied:ye,onClose:()=>ee(null)})]}),(0,X.jsx)(kw,{plan:r,llm:!!n,onCreateSpec:Ie,onCreateStory:Le,promptInfo:ue,promptFailed:fe,onSavePrompt:me,chat:ie,chatPending:R,chatError:oe,onSendChat:ce,onClearChat:le,searchFiles:n?e=>n.searchFiles(e):void 0})]})]})}var Hw=Eo(`/api`,{llm:!0});function Uw(){let[e,t]=(0,G.useState)({mode:`loading`}),[n,r]=(0,G.useState)(()=>{let e=new URLSearchParams(window.location.search);if(e.get(`view`)===`canvas`)return{kind:`canvas`};let t=e.get(`change`);return t===null||t===``?{kind:`gallery`}:{kind:`preview`,id:t}}),[i,a]=(0,G.useState)(null),o=e=>{let t=new URL(window.location.href);t.searchParams.set(`change`,e),t.searchParams.delete(`view`),window.history.pushState({},``,t),a(null),r({kind:`preview`,id:e})},s=()=>{let e=new URL(window.location.href);e.searchParams.delete(`change`),window.history.pushState({},``,e),r({kind:`gallery`})},[c,l]=(0,G.useState)(null);return(0,G.useEffect)(()=>{Do(Hw).then(t)},[]),(0,G.useEffect)(()=>{if(n.kind!==`preview`)return;let e=n.id;fetch(`/api/gallery/${encodeURIComponent(e)}`).then(e=>e.ok?e.json():null).then(a).catch(()=>a(null))},[n]),(0,G.useEffect)(()=>{n.kind!==`gallery`||c!==null||fetch(`/api/gallery`).then(e=>e.ok?e.json():null).then(e=>l(e??{roadmap:[],backlog:[]})).catch(()=>l({roadmap:[],backlog:[]}))},[n.kind,c]),e.mode===`loading`?(0,X.jsx)(`div`,{className:`boot`,"data-state":`loading`,children:`Loading…`}):e.mode===`error`?(0,X.jsxs)(`div`,{className:`boot boot-error`,"data-state":`error`,role:`alert`,children:[(0,X.jsx)(`span`,{"aria-hidden":`true`,children:`✕`}),` Could not reach the specplan server: `,e.detail,`. Launch it with`,` `,(0,X.jsx)(`code`,{children:`specplan [rootDir]`}),` and reload.`]}):n.kind===`gallery`?c===null?(0,X.jsx)(`div`,{className:`boot`,"data-state":`loading`,children:`Reading changes…`}):(0,X.jsx)(td,{backlog:c.backlog,onAddToRoadmap:e=>{fetch(`/api/gallery/roadmap`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:e})}).then(()=>l(null)).catch(()=>l(null))},archived:c.archived??[],missing:c.missing??[],onDelete:e=>{fetch(`/api/gallery/${encodeURIComponent(e)}`,{method:`DELETE`}).then(()=>l(null)).catch(()=>l(null))},onOpen:o,onReorder:(e,t)=>{fetch(`/api/gallery/reorder`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:e,before:t})}).then(()=>l(null)).catch(()=>l(null))},roadmap:c.roadmap}):n.kind===`preview`?i===null?(0,X.jsx)(`div`,{className:`boot`,"data-state":`loading`,children:`Reading the change…`}):(0,X.jsx)(zu,{onBack:s,preview:i}):(0,X.jsx)(Vw,{session:e.session,api:Hw})}var Ww=document.getElementById(`root`);if(!Ww)throw Error(`Missing #root element`);(0,K.createRoot)(Ww).render((0,X.jsx)(G.StrictMode,{children:(0,X.jsx)(Uw,{})}));export{ym as a,Tp as c,Cp as d,wp as f,i as g,c as h,Em as i,Jp as l,Fu as m,Ny as n,dm as o,sp as p,Ay as r,pm as s,Fw as t,Kp as u};