qgraphflow 0.0.6 → 0.0.7

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 (89) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +2 -2
  4. package/.cursor-plugin/plugin.json +1 -1
  5. package/.qoder-plugin/plugin.json +1 -1
  6. package/README.md +119 -70
  7. package/docs/clients.de.md +15 -24
  8. package/docs/clients.es.md +15 -24
  9. package/docs/clients.ja.md +15 -24
  10. package/docs/clients.md +15 -24
  11. package/docs/clients.pt.md +15 -24
  12. package/docs/clients.ru.md +15 -24
  13. package/docs/clients.zh-CN.md +15 -24
  14. package/docs/readme/README.de.md +120 -71
  15. package/docs/readme/README.es.md +120 -71
  16. package/docs/readme/README.ja.md +120 -71
  17. package/docs/readme/README.pt.md +120 -71
  18. package/docs/readme/README.ru.md +120 -71
  19. package/docs/readme/README.zh-CN.md +106 -59
  20. package/examples/jeepay/README.md +23 -0
  21. package/examples/jeepay/capabilities.graph.json +270 -0
  22. package/examples/jeepay/class.graph.json +237 -0
  23. package/examples/jeepay/collection.graph.json +3057 -0
  24. package/examples/jeepay/dataflow.graph.json +212 -0
  25. package/examples/jeepay/deployment.graph.json +222 -0
  26. package/examples/jeepay/engineering.graph.json +277 -0
  27. package/examples/jeepay/er.graph.json +482 -0
  28. package/examples/jeepay/flowchart.graph.json +312 -0
  29. package/examples/jeepay/relations.graph.json +289 -0
  30. package/examples/jeepay/sequence.graph.json +355 -0
  31. package/examples/jeepay/source.json +95 -0
  32. package/examples/jeepay/state.graph.json +175 -0
  33. package/examples/jeepay/usecase.graph.json +222 -0
  34. package/package.json +14 -3
  35. package/skills/q-flow/SKILL.md +28 -20
  36. package/skills/q-flow/agents/openai.yaml +1 -1
  37. package/skills/q-flow/assets/viewer/package.json +1 -1
  38. package/skills/q-flow/assets/viewer/src/architecture-overview-theme.js +22 -0
  39. package/skills/q-flow/assets/viewer/src/architecture-overview.js +340 -0
  40. package/skills/q-flow/assets/viewer/src/diagrams/architecture.js +8 -5
  41. package/skills/q-flow/assets/viewer/src/diagrams/card.js +35 -17
  42. package/skills/q-flow/assets/viewer/src/diagrams/deployment.js +7 -5
  43. package/skills/q-flow/assets/viewer/src/diagrams/drawing.js +5 -2
  44. package/skills/q-flow/assets/viewer/src/diagrams/registry.js +10 -0
  45. package/skills/q-flow/assets/viewer/src/diagrams/sequence.js +13 -7
  46. package/skills/q-flow/assets/viewer/src/edge-routing.js +43 -22
  47. package/skills/q-flow/assets/viewer/src/export-svg.js +27 -5
  48. package/skills/q-flow/assets/viewer/src/graph-validation.js +72 -15
  49. package/skills/q-flow/assets/viewer/src/i18n-messages.json +184 -8
  50. package/skills/q-flow/assets/viewer/src/layout-compaction.js +123 -0
  51. package/skills/q-flow/assets/viewer/src/layout-measure.js +14 -8
  52. package/skills/q-flow/assets/viewer/src/layout-policy.js +6 -0
  53. package/skills/q-flow/assets/viewer/src/layout-quality.js +61 -15
  54. package/skills/q-flow/assets/viewer/src/layout-refinement.js +271 -0
  55. package/skills/q-flow/assets/viewer/src/layout-semantics.js +8 -0
  56. package/skills/q-flow/assets/viewer/src/layout-spacing.js +23 -4
  57. package/skills/q-flow/assets/viewer/src/layout-templates.js +298 -0
  58. package/skills/q-flow/assets/viewer/src/node-svg.js +1 -1
  59. package/skills/q-flow/assets/viewer/src/orthogonal-routing.js +475 -0
  60. package/skills/q-flow/assets/viewer/src/presentation-graph.js +31 -0
  61. package/skills/q-flow/assets/viewer/src/route-clearance.js +144 -0
  62. package/skills/q-flow/assets/viewer/src/sequence-executions.js +22 -0
  63. package/skills/q-flow/assets/viewer/src/sequence-fragments.js +20 -2
  64. package/skills/q-flow/assets/viewer/src/session-graph.js +46 -3
  65. package/skills/q-flow/assets/viewer/src/text-layout.js +33 -6
  66. package/skills/q-flow/assets/viewer/src/view-identity.js +26 -0
  67. package/skills/q-flow/assets/viewer/src/visual-style.js +13 -5
  68. package/skills/q-flow/assets/viewer-dist/index.html +30 -28
  69. package/skills/q-flow/references/evidence-sources.md +7 -5
  70. package/skills/q-flow/references/graph-common.md +34 -34
  71. package/skills/q-flow/references/graph-schema.md +28 -7
  72. package/skills/q-flow/references/guided-intake.md +51 -71
  73. package/skills/q-flow/references/layout-routing.md +47 -0
  74. package/skills/q-flow/references/types/architecture.md +42 -22
  75. package/skills/q-flow/references/types/class.md +9 -2
  76. package/skills/q-flow/references/types/dataflow.md +11 -4
  77. package/skills/q-flow/references/types/deployment.md +11 -3
  78. package/skills/q-flow/references/types/er.md +8 -1
  79. package/skills/q-flow/references/types/flowchart.md +12 -5
  80. package/skills/q-flow/references/types/sequence.md +20 -16
  81. package/skills/q-flow/references/types/state.md +10 -3
  82. package/skills/q-flow/references/types/usecase.md +6 -0
  83. package/skills/q-flow/references/viewer-development.md +37 -24
  84. package/skills/q-flow/references/visual-contract.md +12 -6
  85. package/skills/q-flow/scripts/compile-layout.mjs +85 -102
  86. package/skills/q-flow/scripts/compile-sequence.mjs +4 -21
  87. package/skills/q-flow/scripts/generate-viewer.mjs +18 -9
  88. package/skills/q-flow/scripts/validate-graph.mjs +38 -21
  89. package/examples/order-flow.graph.json +0 -94
@@ -218,23 +218,23 @@ Upstream source: https://github.com/d3/d3-ease
218
218
  <meta charset="UTF-8" />
219
219
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
220
220
  <meta name="color-scheme" content="light dark" />
221
- <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Crect x='6' y='6' width='52' height='52' rx='16' fill='%23203f35'/%3E%3Cpath d='M44 31a12 14 0 1 1-24 0 12 14 0 1 1 24 0M35 37l10 11' fill='none' stroke='white' stroke-width='5' stroke-linecap='round'/%3E%3C/svg%3E" />
221
+ <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Crect width='64' height='64' rx='14' fill='%231e4437'/%3E%3Cg fill='%23faf4e8'%3E%3Ccircle cx='27' cy='27' r='15' fill='none' stroke='%23faf4e8' stroke-width='5.5'/%3E%3Cpath d='M37.6 37.6L49.6 49.6' stroke='%23faf4e8' stroke-width='5.5'/%3E%3Ccircle cx='27' cy='12' r='5'/%3E%3Ccircle cx='12' cy='27' r='5'/%3E%3Ccircle cx='37.6' cy='37.6' r='5'/%3E%3C/g%3E%3Ccircle cx='49.6' cy='49.6' r='7.5' fill='%23a8e3b8'/%3E%3C/svg%3E" />
222
222
  <title>QGraphFlow</title>
223
- <script type="module" crossorigin>var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,o)=>(o=n==null?{}:e(i(n)),s(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));(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),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var l=o((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 N(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,N(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,`$&/`)+`/`),N(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+=N(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+=N(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return N(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 P(e,t,n){if(e==null)return e;var r=[],i=0;return N(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function ee(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 F=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)},I={map:P,forEach:function(e,t,n){P(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return P(e,function(){t++}),t},toArray:function(e){return P(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=I,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:ee}},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,F)}catch(e){F(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.8`})),u=o(((e,t)=>{t.exports=l()})),d=o((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}}}})),f=o(((e,t)=>{t.exports=d()})),p=o((e=>{var t=u();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 i={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},a=Symbol.for(`react.portal`);function o(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var s=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(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=i,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 o(e,t,null,r)},e.flushSync=function(e){var t=s.T,n=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=t,i.p=n,i.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,i.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&i.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin),a=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?i.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):n===`script`&&i.d.X(e,{crossOrigin:r,integrity:a,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=c(t.as,t.crossOrigin);i.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??i.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=c(n,t.crossOrigin);i.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=c(t.as,t.crossOrigin);i.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 i.d.m(e)}},e.requestFormReset=function(e){i.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return s.H.useFormState(e,t,n)},e.useFormStatus=function(){return s.H.useHostTransitionStatus()},e.version=`19.2.8`})),m=o(((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=p()})),h=o((e=>{var t=f(),n=u(),r=m();function i(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 a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function o(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 s(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 c(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 l(e){if(o(e)!==e)throw Error(i(188))}function d(e){var t=e.alternate;if(!t){if(t=o(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return l(a),e;if(s===r)return l(a),t;s=s.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=s;else{for(var c=!1,u=a.child;u;){if(u===n){c=!0,n=a,r=s;break}if(u===r){c=!0,r=a,n=s;break}u=u.sibling}if(!c){for(u=s.child;u;){if(u===n){c=!0,n=s,r=a;break}if(u===r){c=!0,r=s,n=a;break}u=u.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function p(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=p(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 N=Symbol.for(`react.client.reference`);function P(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===N?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?P(e.type)||`Memo`:t;case O:t=e._payload,e=e._init;try{return P(e(t))}catch{}}return null}var ee=Array.isArray,F=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,I=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,te={pending:!1,data:null,method:null,action:null},ne=[],L=-1;function R(e){return{current:e}}function z(e){0>L||(e.current=ne[L],ne[L]=null,L--)}function B(e,t){L++,ne[L]=e.current,e.current=t}var re=R(null),ie=R(null),ae=R(null),oe=R(null);function se(e,t){switch(B(ae,t),B(ie,e),B(re,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Wd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Wd(t),e=Gd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}z(re),B(re,e)}function ce(){z(re),z(ie),z(ae)}function le(e){e.memoizedState!==null&&B(oe,e);var t=re.current,n=Gd(t,e.type);t!==n&&(B(ie,e),B(re,n))}function ue(e){ie.current===e&&(z(re),z(ie)),oe.current===e&&(z(oe),ep._currentValue=te)}var de,fe;function pe(e){if(de===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);de=t&&t[1]||``,fe=-1<e.stack.indexOf(`
223
+ <script type="module" crossorigin>var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,o)=>(o=n==null?{}:e(i(n)),s(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));(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),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var l=o((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 N(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,N(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,`$&/`)+`/`),N(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+=N(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+=N(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return N(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 P(e,t,n){if(e==null)return e;var r=[],i=0;return N(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function ee(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 F=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)},I={map:P,forEach:function(e,t,n){P(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return P(e,function(){t++}),t},toArray:function(e){return P(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=I,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:ee}},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,F)}catch(e){F(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.8`})),u=o(((e,t)=>{t.exports=l()})),d=o((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}}}})),f=o(((e,t)=>{t.exports=d()})),p=o((e=>{var t=u();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 i={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},a=Symbol.for(`react.portal`);function o(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var s=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(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=i,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 o(e,t,null,r)},e.flushSync=function(e){var t=s.T,n=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=t,i.p=n,i.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,i.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&i.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin),a=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?i.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):n===`script`&&i.d.X(e,{crossOrigin:r,integrity:a,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=c(t.as,t.crossOrigin);i.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??i.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=c(n,t.crossOrigin);i.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=c(t.as,t.crossOrigin);i.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 i.d.m(e)}},e.requestFormReset=function(e){i.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return s.H.useFormState(e,t,n)},e.useFormStatus=function(){return s.H.useHostTransitionStatus()},e.version=`19.2.8`})),m=o(((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=p()})),h=o((e=>{var t=f(),n=u(),r=m();function i(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 a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function o(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 s(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 c(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 l(e){if(o(e)!==e)throw Error(i(188))}function d(e){var t=e.alternate;if(!t){if(t=o(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return l(a),e;if(s===r)return l(a),t;s=s.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=s;else{for(var c=!1,u=a.child;u;){if(u===n){c=!0,n=a,r=s;break}if(u===r){c=!0,r=a,n=s;break}u=u.sibling}if(!c){for(u=s.child;u;){if(u===n){c=!0,n=s,r=a;break}if(u===r){c=!0,r=s,n=a;break}u=u.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function p(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=p(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 N=Symbol.for(`react.client.reference`);function P(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===N?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?P(e.type)||`Memo`:t;case O:t=e._payload,e=e._init;try{return P(e(t))}catch{}}return null}var ee=Array.isArray,F=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,I=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,te={pending:!1,data:null,method:null,action:null},ne=[],L=-1;function R(e){return{current:e}}function z(e){0>L||(e.current=ne[L],ne[L]=null,L--)}function B(e,t){L++,ne[L]=e.current,e.current=t}var re=R(null),ie=R(null),ae=R(null),oe=R(null);function se(e,t){switch(B(ae,t),B(ie,e),B(re,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Kd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Kd(t),e=qd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}z(re),B(re,e)}function ce(){z(re),z(ie),z(ae)}function le(e){e.memoizedState!==null&&B(oe,e);var t=re.current,n=qd(t,e.type);t!==n&&(B(ie,e),B(re,n))}function ue(e){ie.current===e&&(z(re),z(ie)),oe.current===e&&(z(oe),tp._currentValue=te)}var de,fe;function pe(e){if(de===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);de=t&&t[1]||``,fe=-1<e.stack.indexOf(`
224
224
  at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
225
225
  `+de+e+fe}var me=!1;function he(e,t){if(!e||me)return``;me=!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(`
226
226
  `),l=s.split(`
227
227
  `);for(i=r=0;r<c.length&&!c[r].includes(`DetermineComponentFrameRoot`);)r++;for(;i<l.length&&!l[i].includes(`DetermineComponentFrameRoot`);)i++;if(r===c.length||i===l.length)for(r=c.length-1,i=l.length-1;1<=r&&0<=i&&c[r]!==l[i];)i--;for(;1<=r&&0<=i;r--,i--)if(c[r]!==l[i]){if(r!==1||i!==1)do if(r--,i--,0>i||c[r]!==l[i]){var u=`
228
228
  `+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(`<anonymous>`)&&(u=u.replace(`<anonymous>`,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{me=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?pe(n):``}function ge(e,t){switch(e.tag){case 26:case 27:case 5:return pe(e.type);case 16:return pe(`Lazy`);case 13:return e.child!==t&&t!==null?pe(`Suspense Fallback`):pe(`Suspense`);case 19:return pe(`SuspenseList`);case 0:case 15:return he(e.type,!1);case 11:return he(e.type.render,!1);case 1:return he(e.type,!0);case 31:return pe(`Activity`);default:return``}}function _e(e){try{var t=``,n=null;do t+=ge(e,n),n=e,e=e.return;while(e);return t}catch(e){return`
229
229
  Error generating stack: `+e.message+`
230
- `+e.stack}}var ve=Object.prototype.hasOwnProperty,ye=t.unstable_scheduleCallback,be=t.unstable_cancelCallback,xe=t.unstable_shouldYield,Se=t.unstable_requestPaint,Ce=t.unstable_now,we=t.unstable_getCurrentPriorityLevel,Te=t.unstable_ImmediatePriority,Ee=t.unstable_UserBlockingPriority,De=t.unstable_NormalPriority,Oe=t.unstable_LowPriority,ke=t.unstable_IdlePriority,Ae=t.log,je=t.unstable_setDisableYieldValue,Me=null,Ne=null;function Pe(e){if(typeof Ae==`function`&&je(e),Ne&&typeof Ne.setStrictMode==`function`)try{Ne.setStrictMode(Me,e)}catch{}}var Fe=Math.clz32?Math.clz32:Re,Ie=Math.log,Le=Math.LN2;function Re(e){return e>>>=0,e===0?32:31-(Ie(e)/Le|0)|0}var ze=256,Be=262144,Ve=4194304;function He(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Ue(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=He(n))):i=He(o):i=He(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=He(n))):i=He(o)):i=He(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function We(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Ge(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ke(){var e=Ve;return Ve<<=1,!(Ve&62914560)&&(Ve=4194304),e}function qe(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Je(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ye(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0<n;){var u=31-Fe(n),d=1<<u;s[u]=0,c[u]=-1;var f=l[u];if(f!==null)for(l[u]=null,u=0;u<f.length;u++){var p=f[u];p!==null&&(p.lane&=-536870913)}n&=~d}r!==0&&Xe(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function Xe(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Fe(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function Ze(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Fe(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function Qe(e,t){var n=t&-t;return n=n&42?1:$e(n),(n&(e.suspendedLanes|t))===0?n:0}function $e(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function et(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function tt(){var e=I.p;return e===0?(e=window.event,e===void 0?32:hp(e.type)):e}function nt(e,t){var n=I.p;try{return I.p=e,t()}finally{I.p=n}}var rt=Math.random().toString(36).slice(2),it=`__reactFiber$`+rt,at=`__reactProps$`+rt,ot=`__reactContainer$`+rt,st=`__reactEvents$`+rt,ct=`__reactListeners$`+rt,lt=`__reactHandles$`+rt,ut=`__reactResources$`+rt,dt=`__reactMarker$`+rt;function ft(e){delete e[it],delete e[at],delete e[st],delete e[ct],delete e[lt]}function pt(e){var t=e[it];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ot]||n[it]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=mf(e);e!==null;){if(n=e[it])return n;e=mf(e)}return t}e=n,n=e.parentNode}return null}function mt(e){if(e=e[it]||e[ot]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function ht(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(i(33))}function gt(e){var t=e[ut];return t||=e[ut]={hoistableStyles:new Map,hoistableScripts:new Map},t}function _t(e){e[dt]=!0}var vt=new Set,yt={};function bt(e,t){xt(e,t),xt(e+`Capture`,t)}function xt(e,t){for(yt[e]=t,e=0;e<t.length;e++)vt.add(t[e])}var St=RegExp(`^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$`),Ct={},wt={};function Tt(e){return ve.call(wt,e)?!0:ve.call(Ct,e)?!1:St.test(e)?wt[e]=!0:(Ct[e]=!0,!1)}function Et(e,t,n){if(Tt(t)){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,``+n)}}}function Dt(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,``+n)}}function Ot(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,``+r)}}function kt(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function At(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function jt(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&r!==void 0&&typeof r.get==`function`&&typeof r.set==`function`){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Mt(e){if(!e._valueTracker){var t=At(e)?`checked`:`value`;e._valueTracker=jt(e,t,``+e[t])}}function Nt(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=At(e)?e.checked?`true`:`false`:e.value),e=r,e!==n&&(t.setValue(e),!0)}function Pt(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}var Ft=/[\n"\\]/g;function It(e){return e.replace(Ft,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function Lt(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+kt(t)):e.value!==``+kt(t)&&(e.value=``+kt(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):zt(e,o,kt(n)):zt(e,o,kt(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+kt(s):e.removeAttribute(`name`)}function Rt(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null)){Mt(e);return}n=n==null?``:``+kt(n),t=t==null?n:``+kt(t),s||t===e.value||(e.value=t),e.defaultValue=t}r??=i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o),Mt(e)}function zt(e,t,n){t===`number`&&Pt(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function Bt(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+kt(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function Vt(e,t,n){if(t!=null&&(t=``+kt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+kt(n)}function Ht(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(i(92));if(ee(r)){if(1<r.length)throw Error(i(93));r=r[0]}n=r}n??=``,t=n}n=kt(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),Mt(e)}function Ut(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Wt=new Set(`animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp`.split(` `));function Gt(e,t,n){var r=t.indexOf(`--`)===0;n==null||typeof n==`boolean`||n===``?r?e.setProperty(t,``):t===`float`?e.cssFloat=``:e[t]=``:r?e.setProperty(t,n):typeof n!=`number`||n===0||Wt.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function Kt(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(i(62));if(e=e.style,n!=null){for(var r in n)!n.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf(`--`)===0?e.setProperty(r,``):r===`float`?e.cssFloat=``:e[r]=``);for(var a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&Gt(e,a,r)}else for(var o in t)t.hasOwnProperty(o)&&Gt(e,o,t[o])}function qt(e){if(e.indexOf(`-`)===-1)return!1;switch(e){case`annotation-xml`:case`color-profile`:case`font-face`:case`font-face-src`:case`font-face-uri`:case`font-face-format`:case`font-face-name`:case`missing-glyph`:return!1;default:return!0}}var Jt=new Map([[`acceptCharset`,`accept-charset`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`],[`crossOrigin`,`crossorigin`],[`accentHeight`,`accent-height`],[`alignmentBaseline`,`alignment-baseline`],[`arabicForm`,`arabic-form`],[`baselineShift`,`baseline-shift`],[`capHeight`,`cap-height`],[`clipPath`,`clip-path`],[`clipRule`,`clip-rule`],[`colorInterpolation`,`color-interpolation`],[`colorInterpolationFilters`,`color-interpolation-filters`],[`colorProfile`,`color-profile`],[`colorRendering`,`color-rendering`],[`dominantBaseline`,`dominant-baseline`],[`enableBackground`,`enable-background`],[`fillOpacity`,`fill-opacity`],[`fillRule`,`fill-rule`],[`floodColor`,`flood-color`],[`floodOpacity`,`flood-opacity`],[`fontFamily`,`font-family`],[`fontSize`,`font-size`],[`fontSizeAdjust`,`font-size-adjust`],[`fontStretch`,`font-stretch`],[`fontStyle`,`font-style`],[`fontVariant`,`font-variant`],[`fontWeight`,`font-weight`],[`glyphName`,`glyph-name`],[`glyphOrientationHorizontal`,`glyph-orientation-horizontal`],[`glyphOrientationVertical`,`glyph-orientation-vertical`],[`horizAdvX`,`horiz-adv-x`],[`horizOriginX`,`horiz-origin-x`],[`imageRendering`,`image-rendering`],[`letterSpacing`,`letter-spacing`],[`lightingColor`,`lighting-color`],[`markerEnd`,`marker-end`],[`markerMid`,`marker-mid`],[`markerStart`,`marker-start`],[`overlinePosition`,`overline-position`],[`overlineThickness`,`overline-thickness`],[`paintOrder`,`paint-order`],[`panose-1`,`panose-1`],[`pointerEvents`,`pointer-events`],[`renderingIntent`,`rendering-intent`],[`shapeRendering`,`shape-rendering`],[`stopColor`,`stop-color`],[`stopOpacity`,`stop-opacity`],[`strikethroughPosition`,`strikethrough-position`],[`strikethroughThickness`,`strikethrough-thickness`],[`strokeDasharray`,`stroke-dasharray`],[`strokeDashoffset`,`stroke-dashoffset`],[`strokeLinecap`,`stroke-linecap`],[`strokeLinejoin`,`stroke-linejoin`],[`strokeMiterlimit`,`stroke-miterlimit`],[`strokeOpacity`,`stroke-opacity`],[`strokeWidth`,`stroke-width`],[`textAnchor`,`text-anchor`],[`textDecoration`,`text-decoration`],[`textRendering`,`text-rendering`],[`transformOrigin`,`transform-origin`],[`underlinePosition`,`underline-position`],[`underlineThickness`,`underline-thickness`],[`unicodeBidi`,`unicode-bidi`],[`unicodeRange`,`unicode-range`],[`unitsPerEm`,`units-per-em`],[`vAlphabetic`,`v-alphabetic`],[`vHanging`,`v-hanging`],[`vIdeographic`,`v-ideographic`],[`vMathematical`,`v-mathematical`],[`vectorEffect`,`vector-effect`],[`vertAdvY`,`vert-adv-y`],[`vertOriginX`,`vert-origin-x`],[`vertOriginY`,`vert-origin-y`],[`wordSpacing`,`word-spacing`],[`writingMode`,`writing-mode`],[`xmlnsXlink`,`xmlns:xlink`],[`xHeight`,`x-height`]]),Yt=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Xt(e){return Yt.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function Zt(){}var Qt=null;function $t(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var en=null,tn=null;function nn(e){var t=mt(e);if(t&&(e=t.stateNode)){var n=e[at]||null;a:switch(e=t.stateNode,t.type){case`input`:if(Lt(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name="`+It(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[at]||null;if(!a)throw Error(i(90));Lt(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&Nt(r)}break a;case`textarea`:Vt(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&Bt(e,!!n.multiple,t,!1)}}}var rn=!1;function an(e,t,n){if(rn)return e(t,n);rn=!0;try{return e(t)}finally{if(rn=!1,(en!==null||tn!==null)&&(xu(),en&&(t=en,e=tn,tn=en=null,nn(t),e)))for(t=0;t<e.length;t++)nn(e[t])}}function on(e,t){var n=e.stateNode;if(n===null)return null;var r=n[at]||null;if(r===null)return null;n=r[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(r=!r.disabled)||(e=e.type,r=e!==`button`&&e!==`input`&&e!==`select`&&e!==`textarea`),e=!r;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(i(231,t,typeof n));return n}var sn=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),cn=!1;if(sn)try{var ln={};Object.defineProperty(ln,"passive",{get:function(){cn=!0}}),window.addEventListener(`test`,ln,ln),window.removeEventListener(`test`,ln,ln)}catch{cn=!1}var un=null,dn=null,fn=null;function pn(){if(fn)return fn;var e,t=dn,n=t.length,r,i=`value`in un?un.value:un.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return fn=i.slice(e,1<r?1-r:void 0)}function mn(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function hn(){return!0}function gn(){return!1}function _n(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?hn:gn,this.isPropagationStopped=gn,this}return h(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=hn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=hn)},persist:function(){},isPersistent:hn}),t}var vn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},yn=_n(vn),bn=h({},vn,{view:0,detail:0}),xn=_n(bn),Sn,Cn,wn,Tn=h({},bn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:In,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==wn&&(wn&&e.type===`mousemove`?(Sn=e.screenX-wn.screenX,Cn=e.screenY-wn.screenY):Cn=Sn=0,wn=e),Sn)},movementY:function(e){return`movementY`in e?e.movementY:Cn}}),En=_n(Tn),Dn=_n(h({},Tn,{dataTransfer:0})),On=_n(h({},bn,{relatedTarget:0})),kn=_n(h({},vn,{animationName:0,elapsedTime:0,pseudoElement:0})),An=_n(h({},vn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),jn=_n(h({},vn,{data:0})),Mn={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},Nn={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},Pn={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function Fn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Pn[e])?!!t[e]:!1}function In(){return Fn}var Ln=_n(h({},bn,{key:function(e){if(e.key){var t=Mn[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=mn(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?Nn[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:In,charCode:function(e){return e.type===`keypress`?mn(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?mn(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),Rn=_n(h({},Tn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),zn=_n(h({},bn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:In})),Bn=_n(h({},vn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Vn=_n(h({},Tn,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),Hn=_n(h({},vn,{newState:0,oldState:0})),Un=[9,13,27,32],Wn=sn&&`CompositionEvent`in window,Gn=null;sn&&`documentMode`in document&&(Gn=document.documentMode);var Kn=sn&&`TextEvent`in window&&!Gn,qn=sn&&(!Wn||Gn&&8<Gn&&11>=Gn),Jn=` `,Yn=!1;function Xn(e,t){switch(e){case`keyup`:return Un.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Zn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Qn=!1;function $n(e,t){switch(e){case`compositionend`:return Zn(t);case`keypress`:return t.which===32?(Yn=!0,Jn):null;case`textInput`:return e=t.data,e===Jn&&Yn?null:e;default:return null}}function er(e,t){if(Qn)return e===`compositionend`||!Wn&&Xn(e,t)?(e=pn(),fn=dn=un=null,Qn=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return qn&&t.locale!==`ko`?null:t.data;default:return null}}var tr={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function nr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!tr[e.type]:t===`textarea`}function rr(e,t,n,r){en?tn?tn.push(r):tn=[r]:en=r,t=Od(t,`onChange`),0<t.length&&(n=new yn(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var ir=null,ar=null;function or(e){xd(e,0)}function sr(e){if(Nt(ht(e)))return e}function cr(e,t){if(e===`change`)return t}var lr=!1;if(sn){var ur;if(sn){var dr=`oninput`in document;if(!dr){var fr=document.createElement(`div`);fr.setAttribute(`oninput`,`return;`),dr=typeof fr.oninput==`function`}ur=dr}else ur=!1;lr=ur&&(!document.documentMode||9<document.documentMode)}function pr(){ir&&(ir.detachEvent(`onpropertychange`,mr),ar=ir=null)}function mr(e){if(e.propertyName===`value`&&sr(ar)){var t=[];rr(t,ar,e,$t(e)),an(or,t)}}function hr(e,t,n){e===`focusin`?(pr(),ir=t,ar=n,ir.attachEvent(`onpropertychange`,mr)):e===`focusout`&&pr()}function gr(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return sr(ar)}function _r(e,t){if(e===`click`)return sr(t)}function vr(e,t){if(e===`input`||e===`change`)return sr(t)}function yr(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var br=typeof Object.is==`function`?Object.is:yr;function xr(e,t){if(br(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!ve.call(t,i)||!br(e[i],t[i]))return!1}return!0}function Sr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Cr(e,t){var n=Sr(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Sr(n)}}function wr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?wr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Tr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Pt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Pt(e.document)}return t}function Er(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Dr=sn&&`documentMode`in document&&11>=document.documentMode,Or=null,kr=null,Ar=null,jr=!1;function Mr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;jr||Or==null||Or!==Pt(r)||(r=Or,`selectionStart`in r&&Er(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ar&&xr(Ar,r)||(Ar=r,r=Od(kr,`onSelect`),0<r.length&&(t=new yn(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=Or)))}function Nr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var Pr={animationend:Nr(`Animation`,`AnimationEnd`),animationiteration:Nr(`Animation`,`AnimationIteration`),animationstart:Nr(`Animation`,`AnimationStart`),transitionrun:Nr(`Transition`,`TransitionRun`),transitionstart:Nr(`Transition`,`TransitionStart`),transitioncancel:Nr(`Transition`,`TransitionCancel`),transitionend:Nr(`Transition`,`TransitionEnd`)},Fr={},Ir={};sn&&(Ir=document.createElement(`div`).style,`AnimationEvent`in window||(delete Pr.animationend.animation,delete Pr.animationiteration.animation,delete Pr.animationstart.animation),`TransitionEvent`in window||delete Pr.transitionend.transition);function Lr(e){if(Fr[e])return Fr[e];if(!Pr[e])return e;var t=Pr[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Ir)return Fr[e]=t[n];return e}var Rr=Lr(`animationend`),zr=Lr(`animationiteration`),Br=Lr(`animationstart`),Vr=Lr(`transitionrun`),Hr=Lr(`transitionstart`),Ur=Lr(`transitioncancel`),Wr=Lr(`transitionend`),Gr=new Map,Kr=`abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel`.split(` `);Kr.push(`scrollEnd`);function qr(e,t){Gr.set(e,t),bt(t,[e])}var Jr=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)},Yr=[],Xr=0,Zr=0;function Qr(){for(var e=Xr,t=Zr=Xr=0;t<e;){var n=Yr[t];Yr[t++]=null;var r=Yr[t];Yr[t++]=null;var i=Yr[t];Yr[t++]=null;var a=Yr[t];if(Yr[t++]=null,r!==null&&i!==null){var o=r.pending;o===null?i.next=i:(i.next=o.next,o.next=i),r.pending=i}a!==0&&ni(n,i,a)}}function $r(e,t,n,r){Yr[Xr++]=e,Yr[Xr++]=t,Yr[Xr++]=n,Yr[Xr++]=r,Zr|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function ei(e,t,n,r){return $r(e,t,n,r),ri(e)}function ti(e,t){return $r(e,null,null,t),ri(e)}function ni(e,t,n){e.lanes|=n;var r=e.alternate;r!==null&&(r.lanes|=n);for(var i=!1,a=e.return;a!==null;)a.childLanes|=n,r=a.alternate,r!==null&&(r.childLanes|=n),a.tag===22&&(e=a.stateNode,e===null||e._visibility&1||(i=!0)),e=a,a=a.return;return e.tag===3?(a=e.stateNode,i&&t!==null&&(i=31-Fe(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function ri(e){if(50<fu)throw fu=0,pu=null,Error(i(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var ii={};function ai(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function oi(e,t,n,r){return new ai(e,t,n,r)}function si(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ci(e,t){var n=e.alternate;return n===null?(n=oi(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function li(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function ui(e,t,n,r,a,o){var s=0;if(r=e,typeof e==`function`)si(e)&&(s=1);else if(typeof e==`string`)s=Gf(e,n,re.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(e){case k:return e=oi(31,n,t,a),e.elementType=k,e.lanes=o,e;case y:return di(n.children,a,o,t);case b:s=8,a|=24;break;case x:return e=oi(12,n,t,a|2),e.elementType=x,e.lanes=o,e;case T:return e=oi(13,n,t,a),e.elementType=T,e.lanes=o,e;case E:return e=oi(19,n,t,a),e.elementType=E,e.lanes=o,e;default:if(typeof e==`object`&&e)switch(e.$$typeof){case C:s=10;break a;case S:s=9;break a;case w:s=11;break a;case D:s=14;break a;case O:s=16,r=null;break a}s=29,n=Error(i(130,e===null?`null`:typeof e,``)),r=null}return t=oi(s,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function di(e,t,n,r){return e=oi(7,e,r,t),e.lanes=n,e}function fi(e,t,n){return e=oi(6,e,null,t),e.lanes=n,e}function pi(e){var t=oi(18,null,null,0);return t.stateNode=e,t}function mi(e,t,n){return t=oi(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var hi=new WeakMap;function gi(e,t){if(typeof e==`object`&&e){var n=hi.get(e);return n===void 0?(t={value:e,source:t,stack:_e(t)},hi.set(e,t),t):n}return{value:e,source:t,stack:_e(t)}}var _i=[],vi=0,yi=null,bi=0,xi=[],Si=0,Ci=null,wi=1,Ti=``;function Ei(e,t){_i[vi++]=bi,_i[vi++]=yi,yi=e,bi=t}function Di(e,t,n){xi[Si++]=wi,xi[Si++]=Ti,xi[Si++]=Ci,Ci=e;var r=wi;e=Ti;var i=32-Fe(r)-1;r&=~(1<<i),n+=1;var a=32-Fe(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,wi=1<<32-Fe(t)+i|n<<i|r,Ti=a+e}else wi=1<<a|n<<i|r,Ti=e}function Oi(e){e.return!==null&&(Ei(e,1),Di(e,1,0))}function ki(e){for(;e===yi;)yi=_i[--vi],_i[vi]=null,bi=_i[--vi],_i[vi]=null;for(;e===Ci;)Ci=xi[--Si],xi[Si]=null,Ti=xi[--Si],xi[Si]=null,wi=xi[--Si],xi[Si]=null}function Ai(e,t){xi[Si++]=wi,xi[Si++]=Ti,xi[Si++]=Ci,wi=t.id,Ti=t.overflow,Ci=e}var ji=null,Mi=null,V=!1,Ni=null,Pi=!1,Fi=Error(i(519));function Ii(e){throw Hi(gi(Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),Fi}function Li(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[it]=e,t[at]=r,n){case`dialog`:X(`cancel`,t),X(`close`,t);break;case`iframe`:case`object`:case`embed`:X(`load`,t);break;case`video`:case`audio`:for(n=0;n<yd.length;n++)X(yd[n],t);break;case`source`:X(`error`,t);break;case`img`:case`image`:case`link`:X(`error`,t),X(`load`,t);break;case`details`:X(`toggle`,t);break;case`input`:X(`invalid`,t),Rt(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:X(`invalid`,t);break;case`textarea`:X(`invalid`,t),Ht(t,r.value,r.defaultValue,r.children)}n=r.children,typeof n!=`string`&&typeof n!=`number`&&typeof n!=`bigint`||t.textContent===``+n||!0===r.suppressHydrationWarning||Pd(t.textContent,n)?(r.popover!=null&&(X(`beforetoggle`,t),X(`toggle`,t)),r.onScroll!=null&&X(`scroll`,t),r.onScrollEnd!=null&&X(`scrollend`,t),r.onClick!=null&&(t.onclick=Zt),t=!0):t=!1,t||Ii(e,!0)}function Ri(e){for(ji=e.return;ji;)switch(ji.tag){case 5:case 31:case 13:Pi=!1;return;case 27:case 3:Pi=!0;return;default:ji=ji.return}}function zi(e){if(e!==ji)return!1;if(!V)return Ri(e),V=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=n===`form`||n===`button`||Kd(e.type,e.memoizedProps)),n=!n),n&&Mi&&Ii(e),Ri(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Mi=pf(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Mi=pf(e)}else t===27?(t=Mi,ef(e.type)?(e=ff,ff=null,Mi=e):Mi=t):Mi=ji?df(e.stateNode.nextSibling):null;return!0}function Bi(){Mi=ji=null,V=!1}function Vi(){var e=Ni;return e!==null&&(Ql===null?Ql=e:Ql.push.apply(Ql,e),Ni=null),e}function Hi(e){Ni===null?Ni=[e]:Ni.push(e)}var Ui=R(null),Wi=null,Gi=null;function Ki(e,t,n){B(Ui,t._currentValue),t._currentValue=n}function qi(e){e._currentValue=Ui.current,z(Ui)}function Ji(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function Yi(e,t,n,r){var a=e.child;for(a!==null&&(a.return=e);a!==null;){var o=a.dependencies;if(o!==null){var s=a.child;o=o.firstContext;a:for(;o!==null;){var c=o;o=a;for(var l=0;l<t.length;l++)if(c.context===t[l]){o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),Ji(o.return,n,e),r||(s=null);break a}o=c.next}}else if(a.tag===18){if(s=a.return,s===null)throw Error(i(341));s.lanes|=n,o=s.alternate,o!==null&&(o.lanes|=n),Ji(s,n,e),s=null}else s=a.child;if(s!==null)s.return=a;else for(s=a;s!==null;){if(s===e){s=null;break}if(a=s.sibling,a!==null){a.return=s.return,s=a;break}s=s.return}a=s}}function Xi(e,t,n,r){e=null;for(var a=t,o=!1;a!==null;){if(!o){if(a.flags&524288)o=!0;else if(a.flags&262144)break}if(a.tag===10){var s=a.alternate;if(s===null)throw Error(i(387));if(s=s.memoizedProps,s!==null){var c=a.type;br(a.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(a===oe.current){if(s=a.alternate,s===null)throw Error(i(387));s.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(e===null?e=[ep]:e.push(ep))}a=a.return}e!==null&&Yi(t,e,n,r),t.flags|=262144}function Zi(e){for(e=e.firstContext;e!==null;){if(!br(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function Qi(e){Wi=e,Gi=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function $i(e){return ta(Wi,e)}function ea(e,t){return Wi===null&&Qi(e),ta(e,t)}function ta(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},Gi===null){if(e===null)throw Error(i(308));Gi=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Gi=Gi.next=t;return n}var na=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},ra=t.unstable_scheduleCallback,ia=t.unstable_NormalPriority,aa={$$typeof:C,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function oa(){return{controller:new na,data:new Map,refCount:0}}function sa(e){e.refCount--,e.refCount===0&&ra(ia,function(){e.controller.abort()})}var ca=null,la=0,ua=0,da=null;function fa(e,t){if(ca===null){var n=ca=[];la=0,ua=pd(),da={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return la++,t.then(pa,pa),t}function pa(){if(--la===0&&ca!==null){da!==null&&(da.status=`fulfilled`);var e=ca;ca=null,ua=0,da=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function ma(e,t){var n=[],r={status:`pending`,value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status=`fulfilled`,r.value=t;for(var e=0;e<n.length;e++)(0,n[e])(t)},function(e){for(r.status=`rejected`,r.reason=e,e=0;e<n.length;e++)(0,n[e])(void 0)}),r}var ha=F.S;F.S=function(e,t){tu=Ce(),typeof t==`object`&&t&&typeof t.then==`function`&&fa(e,t),ha!==null&&ha(e,t)};var ga=R(null);function _a(){var e=ga.current;return e===null?Rl.pooledCache:e}function va(e,t){t===null?B(ga,ga.current):B(ga,t.pool)}function ya(){var e=_a();return e===null?null:{parent:aa._currentValue,pool:e}}var ba=Error(i(460)),xa=Error(i(474)),Sa=Error(i(542)),Ca={then:function(){}};function wa(e){return e=e.status,e===`fulfilled`||e===`rejected`}function Ta(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(Zt,Zt),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,Oa(e),e;default:if(typeof t.status==`string`)t.then(Zt,Zt);else{if(e=Rl,e!==null&&100<e.shellSuspendCounter)throw Error(i(482));e=t,e.status=`pending`,e.then(function(e){if(t.status===`pending`){var n=t;n.status=`fulfilled`,n.value=e}},function(e){if(t.status===`pending`){var n=t;n.status=`rejected`,n.reason=e}})}switch(t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,Oa(e),e}throw Da=t,ba}}function Ea(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(Da=e,ba):e}}var Da=null;function H(){if(Da===null)throw Error(i(459));var e=Da;return Da=null,e}function Oa(e){if(e===ba||e===Sa)throw Error(i(483))}var ka=null,Aa=0;function ja(e){var t=Aa;return Aa+=1,ka===null&&(ka=[]),Ta(ka,e,t)}function Ma(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function Na(e,t){throw t.$$typeof===g?Error(i(525)):(e=Object.prototype.toString.call(t),Error(i(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function Pa(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;e!==null;)e.key===null?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function a(e,t){return e=ci(e,t),e.index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=67108866,n):(r=r.index,r<n?(t.flags|=67108866,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=67108866),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=fi(n,e.mode,r),t.return=e,t):(t=a(t,n),t.return=e,t)}function l(e,t,n,r){var i=n.type;return i===y?d(e,t,n.props.children,r,n.key):t!==null&&(t.elementType===i||typeof i==`object`&&i&&i.$$typeof===O&&Ea(i)===t.type)?(t=a(t,n.props),Ma(t,n),t.return=e,t):(t=ui(n.type,n.key,n.props,null,e.mode,r),Ma(t,n),t.return=e,t)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=mi(n,e.mode,r),t.return=e,t):(t=a(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,i){return t===null||t.tag!==7?(t=di(n,e.mode,r,i),t.return=e,t):(t=a(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=fi(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case _:return n=ui(t.type,t.key,t.props,null,e.mode,n),Ma(n,t),n.return=e,n;case v:return t=mi(t,e.mode,n),t.return=e,t;case O:return t=Ea(t),f(e,t,n)}if(ee(t)||M(t))return t=di(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,ja(t),n);if(t.$$typeof===C)return f(e,ea(e,t),n);Na(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`||typeof n==`bigint`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case _:return n.key===i?l(e,t,n,r):null;case v:return n.key===i?u(e,t,n,r):null;case O:return n=Ea(n),p(e,t,n,r)}if(ee(n)||M(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,ja(n),r);if(n.$$typeof===C)return p(e,t,ea(e,n),r);Na(e,n)}return null}function m(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`||typeof r==`bigint`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case _:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case v:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case O:return r=Ea(r),m(e,t,n,r,i)}if(ee(r)||M(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return m(e,t,n,ja(r),i);if(r.$$typeof===C)return m(e,t,n,ea(t,r),i);Na(t,r)}return null}function h(i,a,s,c){for(var l=null,u=null,d=a,h=a=0,g=null;d!==null&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),V&&Ei(i,h),l;if(d===null){for(;h<s.length;h++)d=f(i,s[h],c),d!==null&&(a=o(d,a,h),u===null?l=d:u.sibling=d,u=d);return V&&Ei(i,h),l}for(d=r(d);h<s.length;h++)g=m(d,i,h,s[h],c),g!==null&&(e&&g.alternate!==null&&d.delete(g.key===null?h:g.key),a=o(g,a,h),u===null?l=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return t(i,e)}),V&&Ei(i,h),l}function g(a,s,c,l){if(c==null)throw Error(i(151));for(var u=null,d=null,h=s,g=s=0,_=null,v=c.next();h!==null&&!v.done;g++,v=c.next()){h.index>g?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),V&&Ei(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return V&&Ei(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),V&&Ei(a,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===y&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case _:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===y){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===O&&Ea(l)===r.type){n(e,r.sibling),c=a(r,o.props),Ma(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===y?(c=di(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=ui(o.type,o.key,o.props,null,e.mode,c),Ma(c,o),c.return=e,e=c)}return s(e);case v:a:{for(l=o.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}c=mi(o,e.mode,c),c.return=e,e=c}return s(e);case O:return o=Ea(o),b(e,r,o,c)}if(ee(o))return h(e,r,o,c);if(M(o)){if(l=M(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,ja(o),c);if(o.$$typeof===C)return b(e,r,ea(e,o),c);Na(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=fi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Aa=0;var i=b(e,t,n,r);return ka=null,i}catch(t){if(t===ba||t===Sa)throw t;var a=oi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Fa=Pa(!0),Ia=Pa(!1),La=!1;function Ra(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function za(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ba(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Va(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,q&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ri(e),ni(e,null,n),t}return $r(e,r,t,n),ri(e)}function Ha(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ze(e,n)}}function Ua(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Wa=!1;function Ga(){if(Wa){var e=da;if(e!==null)throw e}}function Ka(e,t,n,r){Wa=!1;var i=e.updateQueue;La=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(Y&f)===f:(r&f)===f){f!==0&&f===ua&&(Wa=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(m=g.payload,typeof m==`function`){d=m.call(_,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m==`function`?m.call(_,d,f):m,f==null)break a;d=h({},d,f);break a;case 2:La=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Kl|=o,e.lanes=o,e.memoizedState=d}}function qa(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function Ja(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)qa(n[e],t)}var Ya=R(null),Xa=R(0);function Za(e,t){e=Wl,B(Xa,e),B(Ya,t),Wl=e|t.baseLanes}function Qa(){B(Xa,Wl),B(Ya,Ya.current)}function $a(){Wl=Xa.current,z(Ya),z(Xa)}var eo=R(null),to=null;function no(e){var t=e.alternate;B(so,so.current&1),B(eo,e),to===null&&(t===null||Ya.current!==null||t.memoizedState!==null)&&(to=e)}function ro(e){B(so,so.current),B(eo,e),to===null&&(to=e)}function io(e){e.tag===22?(B(so,so.current),B(eo,e),to===null&&(to=e)):ao(e)}function ao(){B(so,so.current),B(eo,eo.current)}function oo(e){z(eo),to===e&&(to=null),z(so)}var so=R(0);function co(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||cf(n)||lf(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder===`forwards`||t.memoizedProps.revealOrder===`backwards`||t.memoizedProps.revealOrder===`unstable_legacy-backwards`||t.memoizedProps.revealOrder===`together`)){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var lo=0,U=null,W=null,G=null,uo=!1,fo=!1,po=!1,mo=0,ho=0,go=null,_o=0;function vo(){throw Error(i(321))}function yo(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!br(e[n],t[n]))return!1;return!0}function bo(e,t,n,r,i,a){return lo=a,U=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,F.H=e===null||e.memoizedState===null?Ls:Rs,po=!1,a=n(r,i),po=!1,fo&&(a=So(t,n,r,i)),xo(e),a}function xo(e){F.H=Is;var t=W!==null&&W.next!==null;if(lo=0,G=W=U=null,uo=!1,ho=0,go=null,t)throw Error(i(300));e===null||tc||(e=e.dependencies,e!==null&&Zi(e)&&(tc=!0))}function So(e,t,n,r){U=e;var a=0;do{if(fo&&(go=null),ho=0,fo=!1,25<=a)throw Error(i(301));if(a+=1,G=W=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}F.H=zs,o=t(n,r)}while(fo);return o}function Co(){var e=F.H,t=e.useState()[0];return t=typeof t.then==`function`?Ao(t):t,e=e.useState()[0],(W===null?null:W.memoizedState)!==e&&(U.flags|=1024),t}function wo(){var e=mo!==0;return mo=0,e}function To(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Eo(e){if(uo){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}uo=!1}lo=0,G=W=U=null,fo=!1,ho=mo=0,go=null}function Do(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return G===null?U.memoizedState=G=e:G=G.next=e,G}function Oo(){if(W===null){var e=U.alternate;e=e===null?null:e.memoizedState}else e=W.next;var t=G===null?U.memoizedState:G.next;if(t!==null)G=t,W=e;else{if(e===null)throw U.alternate===null?Error(i(467)):Error(i(310));W=e,e={memoizedState:W.memoizedState,baseState:W.baseState,baseQueue:W.baseQueue,queue:W.queue,next:null},G===null?U.memoizedState=G=e:G=G.next=e}return G}function ko(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Ao(e){var t=ho;return ho+=1,go===null&&(go=[]),e=Ta(go,e,t),t=U,(G===null?t.memoizedState:G.next)===null&&(t=t.alternate,F.H=t===null||t.memoizedState===null?Ls:Rs),e}function jo(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return Ao(e);if(e.$$typeof===C)return $i(e)}throw Error(i(438,String(e)))}function Mo(e){var t=null,n=U.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=U.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(t??={data:[],index:0},n===null&&(n=ko(),U.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=A;return t.index++,n}function No(e,t){return typeof t==`function`?t(e):t}function Po(e){return Fo(Oo(),W,e)}function Fo(e,t,n){var r=e.queue;if(r===null)throw Error(i(311));r.lastRenderedReducer=n;var a=e.baseQueue,o=r.pending;if(o!==null){if(a!==null){var s=a.next;a.next=o.next,o.next=s}t.baseQueue=a=o,r.pending=null}if(o=e.baseState,a===null)e.memoizedState=o;else{t=a.next;var c=s=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(lo&f)===f:(Y&f)===f){var p=u.revertLane;if(p===0)l!==null&&(l=l.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===ua&&(d=!0);else if((lo&p)===p){u=u.next,p===ua&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=f,s=o):l=l.next=f,U.lanes|=p,Kl|=p;f=u.action,po&&n(o,f),o=u.hasEagerState?u.eagerState:n(o,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=p,s=o):l=l.next=p,U.lanes|=f,Kl|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=o:l.next=c,!br(o,e.memoizedState)&&(tc=!0,d&&(n=da,n!==null)))throw n;e.memoizedState=o,e.baseState=s,e.baseQueue=l,r.lastRenderedState=o}return a===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function Io(e){var t=Oo(),n=t.queue;if(n===null)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(a!==null){n.pending=null;var s=a=a.next;do o=e(o,s.action),s=s.next;while(s!==a);br(o,t.memoizedState)||(tc=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function Lo(e,t,n){var r=U,a=Oo(),o=V;if(o){if(n===void 0)throw Error(i(407));n=n()}else n=t();var s=!br((W||a).memoizedState,n);if(s&&(a.memoizedState=n,tc=!0),a=a.queue,cs(Bo.bind(null,r,a,e),[e]),a.getSnapshot!==t||s||G!==null&&G.memoizedState.tag&1){if(r.flags|=2048,rs(9,{destroy:void 0},zo.bind(null,r,a,n,t),null),Rl===null)throw Error(i(349));o||lo&127||Ro(r,t,n)}return n}function Ro(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=U.updateQueue,t===null?(t=ko(),U.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function zo(e,t,n,r){t.value=n,t.getSnapshot=r,Vo(t)&&Ho(e)}function Bo(e,t,n){return n(function(){Vo(t)&&Ho(e)})}function Vo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!br(e,n)}catch{return!0}}function Ho(e){var t=ti(e,2);t!==null&&gu(t,e,2)}function Uo(e){var t=Do();if(typeof e==`function`){var n=e;if(e=n(),po){Pe(!0);try{n()}finally{Pe(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:No,lastRenderedState:e},t}function Wo(e,t,n,r){return e.baseState=n,Fo(e,W,typeof r==`function`?r:No)}function Go(e,t,n,r,a){if(Ns(e))throw Error(i(485));if(e=t.action,e!==null){var o={payload:a,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};F.T===null?o.isTransition=!1:n(!0),r(o),n=t.pending,n===null?(o.next=t.pending=o,Ko(t,o)):(o.next=n.next,t.pending=n.next=o)}}function Ko(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=F.T,o={};F.T=o;try{var s=n(i,r),c=F.S;c!==null&&c(o,s),qo(e,t,s)}catch(n){Yo(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),F.T=a}}else try{a=n(i,r),qo(e,t,a)}catch(n){Yo(e,t,n)}}function qo(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){Jo(e,t,n)},function(n){return Yo(e,t,n)}):Jo(e,t,n)}function Jo(e,t,n){t.status=`fulfilled`,t.value=n,Xo(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,Ko(e,n)))}function Yo(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,Xo(t),t=t.next;while(t!==r)}e.action=null}function Xo(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function Zo(e,t){return t}function Qo(e,t){if(V){var n=Rl.formState;if(n!==null){a:{var r=U;if(V){if(Mi){b:{for(var i=Mi,a=Pi;i.nodeType!==8;){if(!a){i=null;break b}if(i=df(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){Mi=df(i.nextSibling),r=i.data===`F!`;break a}}Ii(r)}r=!1}r&&(t=n[0])}}return n=Do(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Zo,lastRenderedState:t},n.queue=r,n=As.bind(null,U,r),r.dispatch=n,r=Uo(!1),a=Ms.bind(null,U,!1,r.queue),r=Do(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=Go.bind(null,U,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function $o(e){return es(Oo(),W,e)}function es(e,t,n){if(t=Fo(e,t,Zo)[0],e=Po(No)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=Ao(t)}catch(e){throw e===ba?Sa:e}else r=t;t=Oo();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(U.flags|=2048,rs(9,{destroy:void 0},ts.bind(null,i,n),null)),[r,a,e]}function ts(e,t){e.action=t}function ns(e){var t=Oo(),n=W;if(n!==null)return es(t,n,e);Oo(),t=t.memoizedState,n=Oo();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function rs(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=U.updateQueue,t===null&&(t=ko(),U.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function is(){return Oo().memoizedState}function as(e,t,n,r){var i=Do();U.flags|=e,i.memoizedState=rs(1|t,{destroy:void 0},n,r===void 0?null:r)}function os(e,t,n,r){var i=Oo();r=r===void 0?null:r;var a=i.memoizedState.inst;W!==null&&r!==null&&yo(r,W.memoizedState.deps)?i.memoizedState=rs(t,a,n,r):(U.flags|=e,i.memoizedState=rs(1|t,a,n,r))}function ss(e,t){as(8390656,8,e,t)}function cs(e,t){os(2048,8,e,t)}function ls(e){U.flags|=4;var t=U.updateQueue;if(t===null)t=ko(),U.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function us(e){var t=Oo().memoizedState;return ls({ref:t,nextImpl:e}),function(){if(q&2)throw Error(i(440));return t.impl.apply(void 0,arguments)}}function ds(e,t){return os(4,2,e,t)}function fs(e,t){return os(4,4,e,t)}function ps(e,t){if(typeof t==`function`){e=e();var n=t(e);return function(){typeof n==`function`?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function ms(e,t,n){n=n==null?null:n.concat([e]),os(4,4,ps.bind(null,t,e),n)}function hs(){}function gs(e,t){var n=Oo();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&yo(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function _s(e,t){var n=Oo();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&yo(t,r[1]))return r[0];if(r=e(),po){Pe(!0);try{e()}finally{Pe(!1)}}return n.memoizedState=[r,t],r}function vs(e,t,n){return n===void 0||lo&1073741824&&!(Y&261930)?e.memoizedState=t:(e.memoizedState=n,e=hu(),U.lanes|=e,Kl|=e,n)}function ys(e,t,n,r){return br(n,t)?n:Ya.current===null?!(lo&42)||lo&1073741824&&!(Y&261930)?(tc=!0,e.memoizedState=n):(e=hu(),U.lanes|=e,Kl|=e,t):(e=vs(e,n,r),br(e,t)||(tc=!0),e)}function bs(e,t,n,r,i){var a=I.p;I.p=a!==0&&8>a?a:8;var o=F.T,s={};F.T=s,Ms(e,!1,t,n);try{var c=i(),l=F.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?js(e,t,ma(c,r),mu(e)):js(e,t,r,mu(e))}catch(n){js(e,t,{then:function(){},status:`rejected`,reason:n},mu())}finally{I.p=a,o!==null&&s.types!==null&&(o.types=s.types),F.T=o}}function xs(){}function Ss(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=Cs(e).queue;bs(e,a,t,te,n===null?xs:function(){return ws(e),n(r)})}function Cs(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:te,baseState:te,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:No,lastRenderedState:te},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:No,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function ws(e){var t=Cs(e);t.next===null&&(t=e.alternate.memoizedState),js(e,t.next.queue,{},mu())}function Ts(){return $i(ep)}function Es(){return Oo().memoizedState}function Ds(){return Oo().memoizedState}function Os(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=mu();e=Ba(n);var r=Va(t,e,n);r!==null&&(gu(r,t,n),Ha(r,t,n)),t={cache:oa()},e.payload=t;return}t=t.return}}function ks(e,t,n){var r=mu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Ns(e)?Ps(t,n):(n=ei(e,t,n,r),n!==null&&(gu(n,e,r),Fs(n,t,r)))}function As(e,t,n){js(e,t,n,mu())}function js(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ns(e))Ps(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,br(s,o))return $r(e,t,i,0),Rl===null&&Qr(),!1}catch{}if(n=ei(e,t,i,r),n!==null)return gu(n,e,r),Fs(n,t,r),!0}return!1}function Ms(e,t,n,r){if(r={lane:2,revertLane:pd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Ns(e)){if(t)throw Error(i(479))}else t=ei(e,n,r,2),t!==null&&gu(t,e,2)}function Ns(e){var t=e.alternate;return e===U||t!==null&&t===U}function Ps(e,t){fo=uo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Fs(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ze(e,n)}}var Is={readContext:$i,use:jo,useCallback:vo,useContext:vo,useEffect:vo,useImperativeHandle:vo,useLayoutEffect:vo,useInsertionEffect:vo,useMemo:vo,useReducer:vo,useRef:vo,useState:vo,useDebugValue:vo,useDeferredValue:vo,useTransition:vo,useSyncExternalStore:vo,useId:vo,useHostTransitionStatus:vo,useFormState:vo,useActionState:vo,useOptimistic:vo,useMemoCache:vo,useCacheRefresh:vo};Is.useEffectEvent=vo;var Ls={readContext:$i,use:jo,useCallback:function(e,t){return Do().memoizedState=[e,t===void 0?null:t],e},useContext:$i,useEffect:ss,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),as(4194308,4,ps.bind(null,t,e),n)},useLayoutEffect:function(e,t){return as(4194308,4,e,t)},useInsertionEffect:function(e,t){as(4,2,e,t)},useMemo:function(e,t){var n=Do();t=t===void 0?null:t;var r=e();if(po){Pe(!0);try{e()}finally{Pe(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Do();if(n!==void 0){var i=n(t);if(po){Pe(!0);try{n(t)}finally{Pe(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=ks.bind(null,U,e),[r.memoizedState,e]},useRef:function(e){var t=Do();return e={current:e},t.memoizedState=e},useState:function(e){e=Uo(e);var t=e.queue,n=As.bind(null,U,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:hs,useDeferredValue:function(e,t){return vs(Do(),e,t)},useTransition:function(){var e=Uo(!1);return e=bs.bind(null,U,e.queue,!0,!1),Do().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=U,a=Do();if(V){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Rl===null)throw Error(i(349));Y&127||Ro(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,ss(Bo.bind(null,r,o,e),[e]),r.flags|=2048,rs(9,{destroy:void 0},zo.bind(null,r,o,n,t),null),n},useId:function(){var e=Do(),t=Rl.identifierPrefix;if(V){var n=Ti,r=wi;n=(r&~(1<<32-Fe(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=mo++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=_o++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:Ts,useFormState:Qo,useActionState:Qo,useOptimistic:function(e){var t=Do();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Ms.bind(null,U,!0,n),n.dispatch=t,[e,t]},useMemoCache:Mo,useCacheRefresh:function(){return Do().memoizedState=Os.bind(null,U)},useEffectEvent:function(e){var t=Do(),n={impl:e};return t.memoizedState=n,function(){if(q&2)throw Error(i(440));return n.impl.apply(void 0,arguments)}}},Rs={readContext:$i,use:jo,useCallback:gs,useContext:$i,useEffect:cs,useImperativeHandle:ms,useInsertionEffect:ds,useLayoutEffect:fs,useMemo:_s,useReducer:Po,useRef:is,useState:function(){return Po(No)},useDebugValue:hs,useDeferredValue:function(e,t){return ys(Oo(),W.memoizedState,e,t)},useTransition:function(){var e=Po(No)[0],t=Oo().memoizedState;return[typeof e==`boolean`?e:Ao(e),t]},useSyncExternalStore:Lo,useId:Es,useHostTransitionStatus:Ts,useFormState:$o,useActionState:$o,useOptimistic:function(e,t){return Wo(Oo(),W,e,t)},useMemoCache:Mo,useCacheRefresh:Ds};Rs.useEffectEvent=us;var zs={readContext:$i,use:jo,useCallback:gs,useContext:$i,useEffect:cs,useImperativeHandle:ms,useInsertionEffect:ds,useLayoutEffect:fs,useMemo:_s,useReducer:Io,useRef:is,useState:function(){return Io(No)},useDebugValue:hs,useDeferredValue:function(e,t){var n=Oo();return W===null?vs(n,e,t):ys(n,W.memoizedState,e,t)},useTransition:function(){var e=Io(No)[0],t=Oo().memoizedState;return[typeof e==`boolean`?e:Ao(e),t]},useSyncExternalStore:Lo,useId:Es,useHostTransitionStatus:Ts,useFormState:ns,useActionState:ns,useOptimistic:function(e,t){var n=Oo();return W===null?(n.baseState=e,[e,n.queue.dispatch]):Wo(n,W,e,t)},useMemoCache:Mo,useCacheRefresh:Ds};zs.useEffectEvent=us;function Bs(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:h({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Vs={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=mu(),i=Ba(r);i.payload=t,n!=null&&(i.callback=n),t=Va(e,i,r),t!==null&&(gu(t,e,r),Ha(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=mu(),i=Ba(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Va(e,i,r),t!==null&&(gu(t,e,r),Ha(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=mu(),r=Ba(n);r.tag=2,t!=null&&(r.callback=t),t=Va(e,r,n),t!==null&&(gu(t,e,n),Ha(t,e,n))}};function Hs(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!xr(n,r)||!xr(i,a):!0}function Us(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Vs.enqueueReplaceState(t,t.state,null)}function Ws(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=h({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function Gs(e){Jr(e)}function Ks(e){console.error(e)}function qs(e){Jr(e)}function Js(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function Ys(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function Xs(e,t,n){return n=Ba(n),n.tag=3,n.payload={element:null},n.callback=function(){Js(e,t)},n}function Zs(e){return e=Ba(e),e.tag=3,e}function Qs(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){Ys(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){Ys(t,n,r),typeof i!=`function`&&(iu===null?iu=new Set([this]):iu.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function $s(e,t,n,r,a){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&Xi(t,n,a,!0),n=eo.current,n!==null){switch(n.tag){case 31:case 13:return to===null?Ou():n.alternate===null&&Gl===0&&(Gl=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===Ca?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),qu(e,r,a)),!1;case 22:return n.flags|=65536,r===Ca?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),qu(e,r,a)),!1}throw Error(i(435,n.tag))}return qu(e,r,a),Ou(),!1}if(V)return t=eo.current,t===null?(r!==Fi&&(t=Error(i(423),{cause:r}),Hi(gi(t,n))),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=gi(r,n),a=Xs(e.stateNode,r,a),Ua(e,a),Gl!==4&&(Gl=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==Fi&&(e=Error(i(422),{cause:r}),Hi(gi(e,n)))),!1;var o=Error(i(520),{cause:r});if(o=gi(o,n),Zl===null?Zl=[o]:Zl.push(o),Gl!==4&&(Gl=2),t===null)return!0;r=gi(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=Xs(n.stateNode,r,e),Ua(n,e),!1;case 1:if(t=n.type,o=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||o!==null&&typeof o.componentDidCatch==`function`&&(iu===null||!iu.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,a=Zs(a),Qs(a,e,n,r),Ua(n,a),!1}n=n.return}while(n!==null);return!1}var ec=Error(i(461)),tc=!1;function nc(e,t,n,r){t.child=e===null?Ia(t,null,n,r):Fa(t,e.child,n,r)}function rc(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return Qi(t),r=bo(e,t,n,o,a,i),s=wo(),e!==null&&!tc?(To(e,t,i),Ec(e,t,i)):(V&&s&&Oi(t),t.flags|=1,nc(e,t,r,i),t.child)}function ic(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!si(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,ac(e,t,a,r,i)):(e=ui(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!Dc(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?xr:n,n(o,r)&&e.ref===t.ref)return Ec(e,t,i)}return t.flags|=1,e=ci(a,r),e.ref=t.ref,e.return=t,t.child=e}function ac(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(xr(a,r)&&e.ref===t.ref){if(tc=!1,t.pendingProps=r=a,Dc(e,i))e.flags&131072&&(tc=!0);else return t.lanes=e.lanes,Ec(e,t,i)}}return pc(e,t,n,r,i)}function oc(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return cc(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&va(t,a===null?null:a.cachePool),a===null?Qa():Za(t,a),io(t);else return r=t.lanes=536870912,cc(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&va(t,null),Qa(),ao(t)):(va(t,a.cachePool),Za(t,a),ao(t),t.memoizedState=null);return nc(e,t,i,n),t.child}function sc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function cc(e,t,n,r,i){var a=_a();return a=a===null?null:{parent:aa._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&va(t,null),Qa(),io(t),e!==null&&Xi(e,t,r,!0),t.childLanes=i,null}function lc(e,t){return t=xc({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function uc(e,t,n){return Fa(t,e.child,null,n),e=lc(t,t.pendingProps),e.flags|=2,oo(t),t.memoizedState=null,e}function dc(e,t,n){var r=t.pendingProps,a=!!(t.flags&128);if(t.flags&=-129,e===null){if(V){if(r.mode===`hidden`)return e=lc(t,r),t.lanes=536870912,sc(null,e);if(ro(t),(e=Mi)?(e=sf(e,Pi),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Ci===null?null:{id:wi,overflow:Ti},retryLane:536870912,hydrationErrors:null},n=pi(e),n.return=t,t.child=n,ji=t,Mi=null)):e=null,e===null)throw Ii(t);return t.lanes=536870912,null}return lc(t,r)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if(ro(t),a){if(t.flags&256)t.flags&=-257,t=uc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(i(558))}else if(tc||Xi(e,t,n,!1),a=(n&e.childLanes)!==0,tc||a){if(r=Rl,r!==null&&(s=Qe(r,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,ti(e,s),gu(r,e,s),ec;Ou(),t=uc(e,t,n)}else e=o.treeContext,Mi=df(s.nextSibling),ji=t,V=!0,Ni=null,Pi=!1,e!==null&&Ai(t,e),t=lc(t,r),t.flags|=4096;return t}return e=ci(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function fc(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(i(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function pc(e,t,n,r,i){return Qi(t),n=bo(e,t,n,r,void 0,i),r=wo(),e!==null&&!tc?(To(e,t,i),Ec(e,t,i)):(V&&r&&Oi(t),t.flags|=1,nc(e,t,n,i),t.child)}function mc(e,t,n,r,i,a){return Qi(t),t.updateQueue=null,n=So(t,r,n,i),xo(e),r=wo(),e!==null&&!tc?(To(e,t,a),Ec(e,t,a)):(V&&r&&Oi(t),t.flags|=1,nc(e,t,n,a),t.child)}function hc(e,t,n,r,i){if(Qi(t),t.stateNode===null){var a=ii,o=n.contextType;typeof o==`object`&&o&&(a=$i(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Vs,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},Ra(t),o=n.contextType,a.context=typeof o==`object`&&o?$i(o):ii,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Bs(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&Vs.enqueueReplaceState(a,a.state,null),Ka(t,r,a,i),Ga(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=Ws(n,s);a.props=c;var l=a.context,u=n.contextType;o=ii,typeof u==`object`&&u&&(o=$i(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&Us(t,a,r,o),La=!1;var f=t.memoizedState;a.state=f,Ka(t,r,a,i),Ga(),l=t.memoizedState,s||f!==l||La?(typeof d==`function`&&(Bs(t,n,d,r),l=t.memoizedState),(c=La||Hs(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,za(e,t),o=t.memoizedProps,u=Ws(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=ii,typeof l==`object`&&l&&(c=$i(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&Us(t,a,r,c),La=!1,f=t.memoizedState,a.state=f,Ka(t,r,a,i),Ga();var p=t.memoizedState;o!==d||f!==p||La||e!==null&&e.dependencies!==null&&Zi(e.dependencies)?(typeof s==`function`&&(Bs(t,n,s,r),p=t.memoizedState),(u=La||Hs(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&Zi(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,fc(e,t),r=!!(t.flags&128),a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=Fa(t,e.child,null,i),t.child=Fa(t,null,n,i)):nc(e,t,n,i),t.memoizedState=a.state,e=t.child):e=Ec(e,t,i),e}function gc(e,t,n,r){return Bi(),t.flags|=256,nc(e,t,n,r),t.child}var _c={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function vc(e){return{baseLanes:e,cachePool:ya()}}function K(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=Yl),e}function yc(e,t,n){var r=t.pendingProps,a=!1,o=!!(t.flags&128),s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:!!(so.current&2)),s&&(a=!0,t.flags&=-129),s=!!(t.flags&32),t.flags&=-33,e===null){if(V){if(a?no(t):ao(t),(e=Mi)?(e=sf(e,Pi),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Ci===null?null:{id:wi,overflow:Ti},retryLane:536870912,hydrationErrors:null},n=pi(e),n.return=t,t.child=n,ji=t,Mi=null)):e=null,e===null)throw Ii(t);return lf(e)?t.lanes=32:t.lanes=536870912,null}var c=r.children;return r=r.fallback,a?(ao(t),a=t.mode,c=xc({mode:`hidden`,children:c},a),r=di(r,a,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,r=t.child,r.memoizedState=vc(n),r.childLanes=K(e,s,n),t.memoizedState=_c,sc(null,r)):(no(t),bc(t,c))}var l=e.memoizedState;if(l!==null&&(c=l.dehydrated,c!==null)){if(o)t.flags&256?(no(t),t.flags&=-257,t=Sc(e,t,n)):t.memoizedState===null?(ao(t),c=r.fallback,a=t.mode,r=xc({mode:`visible`,children:r.children},a),c=di(c,a,n,null),c.flags|=2,r.return=t,c.return=t,r.sibling=c,t.child=r,Fa(t,e.child,null,n),r=t.child,r.memoizedState=vc(n),r.childLanes=K(e,s,n),t.memoizedState=_c,t=sc(null,r)):(ao(t),t.child=e.child,t.flags|=128,t=null);else if(no(t),lf(c)){if(s=c.nextSibling&&c.nextSibling.dataset,s)var u=s.dgst;s=u,r=Error(i(419)),r.stack=``,r.digest=s,Hi({value:r,source:null,stack:null}),t=Sc(e,t,n)}else if(tc||Xi(e,t,n,!1),s=(n&e.childLanes)!==0,tc||s){if(s=Rl,s!==null&&(r=Qe(s,n),r!==0&&r!==l.retryLane))throw l.retryLane=r,ti(e,r),gu(s,e,r),ec;cf(c)||Ou(),t=Sc(e,t,n)}else cf(c)?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,Mi=df(c.nextSibling),ji=t,V=!0,Ni=null,Pi=!1,e!==null&&Ai(t,e),t=bc(t,r.children),t.flags|=4096);return t}return a?(ao(t),c=r.fallback,a=t.mode,l=e.child,u=l.sibling,r=ci(l,{mode:`hidden`,children:r.children}),r.subtreeFlags=l.subtreeFlags&65011712,u===null?(c=di(c,a,n,null),c.flags|=2):c=ci(u,c),c.return=t,r.return=t,r.sibling=c,t.child=r,sc(null,r),r=t.child,c=e.child.memoizedState,c===null?c=vc(n):(a=c.cachePool,a===null?a=ya():(l=aa._currentValue,a=a.parent===l?a:{parent:l,pool:l}),c={baseLanes:c.baseLanes|n,cachePool:a}),r.memoizedState=c,r.childLanes=K(e,s,n),t.memoizedState=_c,sc(e.child,r)):(no(t),n=e.child,e=n.sibling,n=ci(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(s=t.deletions,s===null?(t.deletions=[e],t.flags|=16):s.push(e)),t.child=n,t.memoizedState=null,n)}function bc(e,t){return t=xc({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function xc(e,t){return e=oi(22,e,null,t),e.lanes=0,e}function Sc(e,t,n){return Fa(t,e.child,null,n),e=bc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Cc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Ji(e.return,t,n)}function wc(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function Tc(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=so.current,s=!!(o&2);if(s?(o=o&1|2,t.flags|=128):o&=1,B(so,o),nc(e,t,r,n),r=V?bi:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Cc(e,n,t);else if(e.tag===19)Cc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`forwards`:for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&co(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),wc(t,!1,i,n,a,r);break;case`backwards`:case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&co(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}wc(t,!0,n,null,a,r);break;case`together`:wc(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function Ec(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Kl|=t.lanes,(n&t.childLanes)===0){if(e!==null){if(Xi(e,t,n,!1),(n&t.childLanes)===0)return null}else return null}if(e!==null&&t.child!==e.child)throw Error(i(153));if(t.child!==null){for(e=t.child,n=ci(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=ci(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Dc(e,t){return(e.lanes&t)!==0||(e=e.dependencies,!!(e!==null&&Zi(e)))}function Oc(e,t,n){switch(t.tag){case 3:se(t,t.stateNode.containerInfo),Ki(t,aa,e.memoizedState.cache),Bi();break;case 27:case 5:le(t);break;case 4:se(t,t.stateNode.containerInfo);break;case 10:Ki(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,ro(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(no(t),e=Ec(e,t,n),e===null?null:e.sibling):yc(e,t,n):(no(t),t.flags|=128,null);no(t);break;case 19:var i=!!(e.flags&128);if(r=(n&t.childLanes)!==0,r||=(Xi(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return Tc(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),B(so,so.current),r)break;return null;case 22:return t.lanes=0,oc(e,t,n,t.pendingProps);case 24:Ki(t,aa,e.memoizedState.cache)}return Ec(e,t,n)}function kc(e,t,n){if(e!==null){if(e.memoizedProps!==t.pendingProps)tc=!0;else{if(!Dc(e,n)&&!(t.flags&128))return tc=!1,Oc(e,t,n);tc=!!(e.flags&131072)}}else tc=!1,V&&t.flags&1048576&&Di(t,bi,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=Ea(t.elementType),t.type=e,typeof e==`function`)si(e)?(r=Ws(e,r),t.tag=1,t=hc(null,t,e,r,n)):(t.tag=0,t=pc(null,t,e,r,n));else{if(e!=null){var a=e.$$typeof;if(a===w){t.tag=11,t=rc(null,t,e,r,n);break a}if(a===D){t.tag=14,t=ic(null,t,e,r,n);break a}}throw t=P(e)||e,Error(i(306,t,``))}}return t;case 0:return pc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,a=Ws(r,t.pendingProps),hc(e,t,r,a,n);case 3:a:{if(se(t,t.stateNode.containerInfo),e===null)throw Error(i(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,za(e,t),Ka(t,r,null,n);var s=t.memoizedState;if(r=s.cache,Ki(t,aa,r),r!==o.cache&&Yi(t,[aa],n,!0),Ga(),r=s.element,o.isDehydrated){if(o={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=gc(e,t,r,n);break a}if(r!==a){a=gi(Error(i(424)),t),Hi(a),t=gc(e,t,r,n);break a}switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===`HTML`?e.ownerDocument.body:e}for(Mi=df(e.firstChild),ji=t,V=!0,Ni=null,Pi=!0,n=Ia(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Bi(),r===a){t=Ec(e,t,n);break a}nc(e,t,r,n)}t=t.child}return t;case 26:return fc(e,t),e===null?(n=jf(t.type,null,t.pendingProps,null))?t.memoizedState=n:V||(n=t.type,e=t.pendingProps,r=Ud(ae.current).createElement(n),r[it]=t,r[at]=e,Ld(r,n,e),_t(r),t.stateNode=r):t.memoizedState=jf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return le(t),e===null&&V&&(r=t.stateNode=hf(t.type,t.pendingProps,ae.current),ji=t,Pi=!0,a=Mi,ef(t.type)?(ff=a,Mi=df(r.firstChild)):Mi=a),nc(e,t,t.pendingProps.children,n),fc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&V&&((a=r=Mi)&&(r=af(r,t.type,t.pendingProps,Pi),r===null?a=!1:(t.stateNode=r,ji=t,Mi=df(r.firstChild),Pi=!1,a=!0)),a||Ii(t)),le(t),a=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,r=o.children,Kd(a,o)?r=null:s!==null&&Kd(a,s)&&(t.flags|=32),t.memoizedState!==null&&(a=bo(e,t,Co,null,null,n),ep._currentValue=a),fc(e,t),nc(e,t,r,n),t.child;case 6:return e===null&&V&&((e=n=Mi)&&(n=of(n,t.pendingProps,Pi),n===null?e=!1:(t.stateNode=n,ji=t,Mi=null,e=!0)),e||Ii(t)),null;case 13:return yc(e,t,n);case 4:return se(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Fa(t,null,r,n):nc(e,t,r,n),t.child;case 11:return rc(e,t,t.type,t.pendingProps,n);case 7:return nc(e,t,t.pendingProps,n),t.child;case 8:return nc(e,t,t.pendingProps.children,n),t.child;case 12:return nc(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,Ki(t,t.type,r.value),nc(e,t,r.children,n),t.child;case 9:return a=t.type._context,r=t.pendingProps.children,Qi(t),a=$i(a),r=r(a),t.flags|=1,nc(e,t,r,n),t.child;case 14:return ic(e,t,t.type,t.pendingProps,n);case 15:return ac(e,t,t.type,t.pendingProps,n);case 19:return Tc(e,t,n);case 31:return dc(e,t,n);case 22:return oc(e,t,n,t.pendingProps);case 24:return Qi(t),r=$i(aa),e===null?(a=_a(),a===null&&(a=Rl,o=oa(),a.pooledCache=o,o.refCount++,o!==null&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},Ra(t),Ki(t,aa,a)):((e.lanes&n)!==0&&(za(e,t),Ka(t,null,null,n),Ga()),a=e.memoizedState,o=t.memoizedState,a.parent===r?(r=o.cache,Ki(t,aa,r),r!==a.cache&&Yi(t,[aa],n,!0)):(a={parent:r,cache:r},t.memoizedState=a,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=a),Ki(t,aa,r))),nc(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(i(156,t.tag))}function Ac(e){e.flags|=4}function jc(e,t,n,r,i){if((t=!!(e.mode&32))&&(t=!1),t){if(e.flags|=16777216,(i&335544128)===i){if(e.stateNode.complete)e.flags|=8192;else if(Tu())e.flags|=8192;else throw Da=Ca,xa}}else e.flags&=-16777217}function Mc(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!Kf(t)){if(Tu())e.flags|=8192;else throw Da=Ca,xa}}function Nc(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:Ke(),e.lanes|=t,Xl|=t)}function Pc(e,t){if(!V)switch(e.tailMode){case`hidden`:t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case`collapsed`:n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Fc(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&65011712,r|=i.flags&65011712,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Ic(e,t,n){var r=t.pendingProps;switch(ki(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Fc(t),null;case 1:return Fc(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),qi(aa),ce(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(zi(t)?Ac(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Vi())),Fc(t),null;case 26:var a=t.type,o=t.memoizedState;return e===null?(Ac(t),o===null?(Fc(t),jc(t,a,null,r,n)):(Fc(t),Mc(t,o))):o?o===e.memoizedState?(Fc(t),t.flags&=-16777217):(Ac(t),Fc(t),Mc(t,o)):(e=e.memoizedProps,e!==r&&Ac(t),Fc(t),jc(t,a,e,r,n)),null;case 27:if(ue(t),n=ae.current,a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Ac(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return Fc(t),null}e=re.current,zi(t)?Li(t,e):(e=hf(a,r,n),t.stateNode=e,Ac(t))}return Fc(t),null;case 5:if(ue(t),a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Ac(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return Fc(t),null}if(o=re.current,zi(t))Li(t,o);else{var s=Ud(ae.current);switch(o){case 1:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case 2:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;default:switch(a){case`svg`:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case`math`:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;case`script`:o=s.createElement(`div`),o.innerHTML=`<script><\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[it]=t,o[at]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Ld(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Ac(t)}}return Fc(t),jc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Ac(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=ae.current,zi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=ji,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[it]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Pd(e.nodeValue,n)),e||Ii(t,!0)}else e=Ud(e).createTextNode(r),e[it]=t,t.stateNode=e}return Fc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=zi(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[it]=t}else Bi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Fc(t),e=!1}else n=Vi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(oo(t),t):(oo(t),null);if(t.flags&128)throw Error(i(558))}return Fc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=zi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[it]=t}else Bi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Fc(t),a=!1}else a=Vi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(oo(t),t):(oo(t),null)}return oo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Nc(t,t.updateQueue),Fc(t),null);case 4:return ce(),e===null&&wd(t.stateNode.containerInfo),Fc(t),null;case 10:return qi(t.type),Fc(t),null;case 19:if(z(so),r=t.memoizedState,r===null)return Fc(t),null;if(a=!!(t.flags&128),o=r.rendering,o===null){if(a)Pc(r,!1);else{if(Gl!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=co(e),o!==null){for(t.flags|=128,Pc(r,!1),e=o.updateQueue,t.updateQueue=e,Nc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)li(n,e),n=n.sibling;return B(so,so.current&1|2),V&&Ei(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Ce()>nu&&(t.flags|=128,a=!0,Pc(r,!1),t.lanes=4194304)}}else{if(!a){if(e=co(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Nc(t,e),Pc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!V)return Fc(t),null}else 2*Ce()-r.renderingStartTime>nu&&n!==536870912&&(t.flags|=128,a=!0,Pc(r,!1),t.lanes=4194304)}r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Fc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Ce(),e.sibling=null,n=so.current,B(so,a?n&1|2:n&1),V&&Ei(t,r.treeForkCount),e);case 22:case 23:return oo(t),$a(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Fc(t),t.subtreeFlags&6&&(t.flags|=8192)):Fc(t),n=t.updateQueue,n!==null&&Nc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&z(ga),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),qi(aa),Fc(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Lc(e,t){switch(ki(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return qi(aa),ce(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return ue(t),null;case 31:if(t.memoizedState!==null){if(oo(t),t.alternate===null)throw Error(i(340));Bi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(oo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Bi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return z(so),null;case 4:return ce(),null;case 10:return qi(t.type),null;case 22:case 23:return oo(t),$a(),e!==null&&z(ga),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return qi(aa),null;case 25:return null;default:return null}}function Rc(e,t){switch(ki(t),t.tag){case 3:qi(aa),ce();break;case 26:case 27:case 5:ue(t);break;case 4:ce();break;case 31:t.memoizedState!==null&&oo(t);break;case 13:oo(t);break;case 19:z(so);break;case 10:qi(t.type);break;case 22:case 23:oo(t),$a(),e!==null&&z(ga);break;case 24:qi(aa)}}function zc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Ku(t,t.return,e)}}function Bc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Ku(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Ku(t,t.return,e)}}function Vc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Ja(t,n)}catch(t){Ku(e,e.return,t)}}}function Hc(e,t,n){n.props=Ws(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Ku(e,t,n)}}function Uc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Ku(e,t,n)}}function Wc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){Ku(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Ku(e,t,n)}else n.current=null}}function Gc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Ku(e,e.return,t)}}function Kc(e,t,n){try{var r=e.stateNode;Rd(r,e.type,n,t),r[at]=t}catch(t){Ku(e,e.return,t)}}function qc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&ef(e.type)||e.tag===4}function Jc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||qc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&ef(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Yc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Zt));else if(r!==4&&(r===27&&ef(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Yc(e,t,n),e=e.sibling;e!==null;)Yc(e,t,n),e=e.sibling}function Xc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&ef(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Xc(e,t,n),e=e.sibling;e!==null;)Xc(e,t,n),e=e.sibling}function Zc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Ld(t,r,n),t[it]=e,t[at]=n}catch(t){Ku(e,e.return,t)}}var Qc=!1,$c=!1,el=!1,tl=typeof WeakSet==`function`?WeakSet:Set,nl=null;function rl(e,t){if(e=e.containerInfo,Vd=cp,e=Tr(e),Er(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(Hd={focusedElem:e,selectionRange:n},cp=!1,nl=t;nl!==null;)if(t=nl,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,nl=e;else for(;nl!==null;){switch(t=nl,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n<e.length;n++)a=e[n],a.ref.impl=a.nextImpl;break;case 11:case 15:break;case 1:if(e&1024&&o!==null){e=void 0,n=t,a=o.memoizedProps,o=o.memoizedState,r=n.stateNode;try{var h=Ws(n.type,a);e=r.getSnapshotBeforeUpdate(h,o),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){Ku(n,n.return,e)}}break;case 3:if(e&1024){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)rf(e);else if(n===1)switch(e.nodeName){case`HEAD`:case`HTML`:case`BODY`:rf(e);break;default:e.textContent=``}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if(e&1024)throw Error(i(163))}if(e=t.sibling,e!==null){e.return=t.return,nl=e;break}nl=t.return}}function il(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:yl(e,n),r&4&&zc(5,n);break;case 1:if(yl(e,n),r&4){if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){Ku(n,n.return,e)}else{var i=Ws(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){Ku(n,n.return,e)}}}r&64&&Vc(n),r&512&&Uc(n,n.return);break;case 3:if(yl(e,n),r&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{Ja(e,t)}catch(e){Ku(n,n.return,e)}}break;case 27:t===null&&r&4&&Zc(n);case 26:case 5:yl(e,n),t===null&&r&4&&Gc(n),r&512&&Uc(n,n.return);break;case 12:yl(e,n);break;case 31:yl(e,n),r&4&&ul(e,n);break;case 13:yl(e,n),r&4&&dl(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=Xu.bind(null,n),uf(e,n))));break;case 22:if(r=n.memoizedState!==null||Qc,!r){t=t!==null&&t.memoizedState!==null||$c,i=Qc;var a=$c;Qc=r,($c=t)&&!a?xl(e,n,!!(n.subtreeFlags&8772)):yl(e,n),Qc=i,$c=a}break;case 30:break;default:yl(e,n)}}function al(e){var t=e.alternate;t!==null&&(e.alternate=null,al(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&ft(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var ol=null,sl=!1;function cl(e,t,n){for(n=n.child;n!==null;)ll(e,t,n),n=n.sibling}function ll(e,t,n){if(Ne&&typeof Ne.onCommitFiberUnmount==`function`)try{Ne.onCommitFiberUnmount(Me,n)}catch{}switch(n.tag){case 26:$c||Wc(n,t),cl(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:$c||Wc(n,t);var r=ol,i=sl;ef(n.type)&&(ol=n.stateNode,sl=!1),cl(e,t,n),gf(n.stateNode),ol=r,sl=i;break;case 5:$c||Wc(n,t);case 6:if(r=ol,i=sl,ol=null,cl(e,t,n),ol=r,sl=i,ol!==null){if(sl)try{(ol.nodeType===9?ol.body:ol.nodeName===`HTML`?ol.ownerDocument.body:ol).removeChild(n.stateNode)}catch(e){Ku(n,t,e)}else try{ol.removeChild(n.stateNode)}catch(e){Ku(n,t,e)}}break;case 18:ol!==null&&(sl?(e=ol,tf(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Pp(e)):tf(ol,n.stateNode));break;case 4:r=ol,i=sl,ol=n.stateNode.containerInfo,sl=!0,cl(e,t,n),ol=r,sl=i;break;case 0:case 11:case 14:case 15:Bc(2,n,t),$c||Bc(4,n,t),cl(e,t,n);break;case 1:$c||(Wc(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&Hc(n,t,r)),cl(e,t,n);break;case 21:cl(e,t,n);break;case 22:$c=(r=$c)||n.memoizedState!==null,cl(e,t,n),$c=r;break;default:cl(e,t,n)}}function ul(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Pp(e)}catch(e){Ku(t,t.return,e)}}}function dl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Pp(e)}catch(e){Ku(t,t.return,e)}}function fl(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new tl),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new tl),t;default:throw Error(i(435,e.tag))}}function pl(e,t){var n=fl(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=Zu.bind(null,e,t);t.then(r,r)}})}function ml(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var a=n[r],o=e,s=t,c=s;a:for(;c!==null;){switch(c.tag){case 27:if(ef(c.type)){ol=c.stateNode,sl=!1;break a}break;case 5:ol=c.stateNode,sl=!1;break a;case 3:case 4:ol=c.stateNode.containerInfo,sl=!0;break a}c=c.return}if(ol===null)throw Error(i(160));ll(o,s,a),ol=null,sl=!1,o=a.alternate,o!==null&&(o.return=null),a.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)gl(t,e),t=t.sibling}var hl=null;function gl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:ml(t,e),_l(e),r&4&&(Bc(3,e,e.return),zc(3,e),Bc(5,e,e.return));break;case 1:ml(t,e),_l(e),r&512&&($c||n===null||Wc(n,n.return)),r&64&&Qc&&(e=e.updateQueue,e!==null&&(r=e.callbacks,r!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?r:n.concat(r))));break;case 26:var a=hl;if(ml(t,e),_l(e),r&512&&($c||n===null||Wc(n,n.return)),r&4){var o=n===null?null:n.memoizedState;if(r=e.memoizedState,n===null){if(r===null){if(e.stateNode===null){a:{r=e.type,n=e.memoizedProps,a=a.ownerDocument||a;b:switch(r){case`title`:o=a.getElementsByTagName(`title`)[0],(!o||o[dt]||o[it]||o.namespaceURI===`http://www.w3.org/2000/svg`||o.hasAttribute(`itemprop`))&&(o=a.createElement(r),a.head.insertBefore(o,a.querySelector(`head > title`))),Ld(o,r,n),o[it]=e,_t(o),r=o;break a;case`link`:var s=Uf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&o.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&o.getAttribute(`title`)===(n.title==null?null:n.title)&&o.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){s.splice(c,1);break b}}o=a.createElement(r),Ld(o,r,n),a.head.appendChild(o);break;case`meta`:if(s=Uf(`meta`,`content`,a).get(r+(n.content||``))){for(c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`content`)===(n.content==null?null:``+n.content)&&o.getAttribute(`name`)===(n.name==null?null:n.name)&&o.getAttribute(`property`)===(n.property==null?null:n.property)&&o.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&o.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){s.splice(c,1);break b}}o=a.createElement(r),Ld(o,r,n),a.head.appendChild(o);break;default:throw Error(i(468,r))}o[it]=e,_t(o),r=o}e.stateNode=r}else Wf(a,e.type,e.stateNode)}else e.stateNode=Rf(a,r,e.memoizedProps)}else o===r?r===null&&e.stateNode!==null&&Kc(e,e.memoizedProps,n.memoizedProps):(o===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):o.count--,r===null?Wf(a,e.type,e.stateNode):Rf(a,r,e.memoizedProps))}break;case 27:ml(t,e),_l(e),r&512&&($c||n===null||Wc(n,n.return)),n!==null&&r&4&&Kc(e,e.memoizedProps,n.memoizedProps);break;case 5:if(ml(t,e),_l(e),r&512&&($c||n===null||Wc(n,n.return)),e.flags&32){a=e.stateNode;try{Ut(a,``)}catch(t){Ku(e,e.return,t)}}r&4&&e.stateNode!=null&&(a=e.memoizedProps,Kc(e,a,n===null?a:n.memoizedProps)),r&1024&&(el=!0);break;case 6:if(ml(t,e),_l(e),r&4){if(e.stateNode===null)throw Error(i(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){Ku(e,e.return,t)}}break;case 3:if(Hf=null,a=hl,hl=yf(t.containerInfo),ml(t,e),hl=a,_l(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Pp(t.containerInfo)}catch(t){Ku(e,e.return,t)}el&&(el=!1,vl(e));break;case 4:r=hl,hl=yf(e.stateNode.containerInfo),ml(t,e),_l(e),hl=r;break;case 12:ml(t,e),_l(e);break;case 31:ml(t,e),_l(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,pl(e,r)));break;case 13:ml(t,e),_l(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(eu=Ce()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,pl(e,r)));break;case 22:a=e.memoizedState!==null;var l=n!==null&&n.memoizedState!==null,u=Qc,d=$c;if(Qc=u||a,$c=d||l,ml(t,e),$c=d,Qc=u,_l(e),r&8192)a:for(t=e.stateNode,t._visibility=a?t._visibility&-2:t._visibility|1,a&&(n===null||l||Qc||$c||bl(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){l=n=t;try{if(o=l.stateNode,a)s=o.style,typeof s.setProperty==`function`?s.setProperty(`display`,`none`,`important`):s.display=`none`;else{c=l.stateNode;var f=l.memoizedProps.style,p=f!=null&&f.hasOwnProperty(`display`)?f.display:null;c.style.display=p==null||typeof p==`boolean`?``:(``+p).trim()}}catch(e){Ku(l,l.return,e)}}}else if(t.tag===6){if(n===null){l=t;try{l.stateNode.nodeValue=a?``:l.memoizedProps}catch(e){Ku(l,l.return,e)}}}else if(t.tag===18){if(n===null){l=t;try{var m=l.stateNode;a?nf(m,!0):nf(l.stateNode,!1)}catch(e){Ku(l,l.return,e)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break a;for(;t.sibling===null;){if(t.return===null||t.return===e)break a;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}r&4&&(r=e.updateQueue,r!==null&&(n=r.retryQueue,n!==null&&(r.retryQueue=null,pl(e,n))));break;case 19:ml(t,e),_l(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,pl(e,r)));break;case 30:break;case 21:break;default:ml(t,e),_l(e)}}function _l(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(qc(r)){n=r;break}r=r.return}if(n==null)throw Error(i(160));switch(n.tag){case 27:var a=n.stateNode;Xc(e,Jc(e),a);break;case 5:var o=n.stateNode;n.flags&32&&(Ut(o,``),n.flags&=-33),Xc(e,Jc(e),o);break;case 3:case 4:var s=n.stateNode.containerInfo;Yc(e,Jc(e),s);break;default:throw Error(i(161))}}catch(t){Ku(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function vl(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;vl(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function yl(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)il(e,t.alternate,t),t=t.sibling}function bl(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Bc(4,t,t.return),bl(t);break;case 1:Wc(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount==`function`&&Hc(t,t.return,n),bl(t);break;case 27:gf(t.stateNode);case 26:case 5:Wc(t,t.return),bl(t);break;case 22:t.memoizedState===null&&bl(t);break;case 30:bl(t);break;default:bl(t)}e=e.sibling}}function xl(e,t,n){for(n&&=!!(t.subtreeFlags&8772),t=t.child;t!==null;){var r=t.alternate,i=e,a=t,o=a.flags;switch(a.tag){case 0:case 11:case 15:xl(i,a,n),zc(4,a);break;case 1:if(xl(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){Ku(r,r.return,e)}if(r=a,i=r.updateQueue,i!==null){var s=r.stateNode;try{var c=i.shared.hiddenCallbacks;if(c!==null)for(i.shared.hiddenCallbacks=null,i=0;i<c.length;i++)qa(c[i],s)}catch(e){Ku(r,r.return,e)}}n&&o&64&&Vc(a),Uc(a,a.return);break;case 27:Zc(a);case 26:case 5:xl(i,a,n),n&&r===null&&o&4&&Gc(a),Uc(a,a.return);break;case 12:xl(i,a,n);break;case 31:xl(i,a,n),n&&o&4&&ul(i,a);break;case 13:xl(i,a,n),n&&o&4&&dl(i,a);break;case 22:a.memoizedState===null&&xl(i,a,n),Uc(a,a.return);break;case 30:break;default:xl(i,a,n)}t=t.sibling}}function Sl(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&sa(n))}function Cl(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&sa(e))}function wl(e,t,n,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)Tl(e,t,n,r),t=t.sibling}function Tl(e,t,n,r){var i=t.flags;switch(t.tag){case 0:case 11:case 15:wl(e,t,n,r),i&2048&&zc(9,t);break;case 1:wl(e,t,n,r);break;case 3:wl(e,t,n,r),i&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&sa(e)));break;case 12:if(i&2048){wl(e,t,n,r),e=t.stateNode;try{var a=t.memoizedProps,o=a.id,s=a.onPostCommit;typeof s==`function`&&s(o,t.alternate===null?`mount`:`update`,e.passiveEffectDuration,-0)}catch(e){Ku(t,t.return,e)}}else wl(e,t,n,r);break;case 31:wl(e,t,n,r);break;case 13:wl(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,o=t.alternate,t.memoizedState===null?a._visibility&2?wl(e,t,n,r):(a._visibility|=2,El(e,t,n,r,!!(t.subtreeFlags&10256)||!1)):a._visibility&2?wl(e,t,n,r):Dl(e,t),i&2048&&Sl(o,t);break;case 24:wl(e,t,n,r),i&2048&&Cl(t.alternate,t);break;default:wl(e,t,n,r)}}function El(e,t,n,r,i){for(i&&=!!(t.subtreeFlags&10256)||!1,t=t.child;t!==null;){var a=e,o=t,s=n,c=r,l=o.flags;switch(o.tag){case 0:case 11:case 15:El(a,o,s,c,i),zc(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,El(a,o,s,c,i)):u._visibility&2?El(a,o,s,c,i):Dl(a,o),i&&l&2048&&Sl(o.alternate,o);break;case 24:El(a,o,s,c,i),i&&l&2048&&Cl(o.alternate,o);break;default:El(a,o,s,c,i)}t=t.sibling}}function Dl(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,r=t,i=r.flags;switch(r.tag){case 22:Dl(n,r),i&2048&&Sl(r.alternate,r);break;case 24:Dl(n,r),i&2048&&Cl(r.alternate,r);break;default:Dl(n,r)}t=t.sibling}}var Ol=8192;function kl(e,t,n){if(e.subtreeFlags&Ol)for(e=e.child;e!==null;)Al(e,t,n),e=e.sibling}function Al(e,t,n){switch(e.tag){case 26:kl(e,t,n),e.flags&Ol&&e.memoizedState!==null&&qf(n,hl,e.memoizedState,e.memoizedProps);break;case 5:kl(e,t,n);break;case 3:case 4:var r=hl;hl=yf(e.stateNode.containerInfo),kl(e,t,n),hl=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=Ol,Ol=16777216,kl(e,t,n),Ol=r):kl(e,t,n));break;default:kl(e,t,n)}}function jl(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function Ml(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];nl=r,Fl(r,e)}jl(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Nl(e),e=e.sibling}function Nl(e){switch(e.tag){case 0:case 11:case 15:Ml(e),e.flags&2048&&Bc(9,e,e.return);break;case 3:Ml(e);break;case 12:Ml(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Pl(e)):Ml(e);break;default:Ml(e)}}function Pl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];nl=r,Fl(r,e)}jl(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Bc(8,t,t.return),Pl(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Pl(t));break;default:Pl(t)}e=e.sibling}}function Fl(e,t){for(;nl!==null;){var n=nl;switch(n.tag){case 0:case 11:case 15:Bc(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var r=n.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:sa(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,nl=r;else a:for(n=e;nl!==null;){r=nl;var i=r.sibling,a=r.return;if(al(r),r===n){nl=null;break a}if(i!==null){i.return=a,nl=i;break a}nl=a}}}var Il={getCacheForType:function(e){var t=$i(aa),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return $i(aa).controller.signal}},Ll=typeof WeakMap==`function`?WeakMap:Map,q=0,Rl=null,J=null,Y=0,zl=0,Bl=null,Vl=!1,Hl=!1,Ul=!1,Wl=0,Gl=0,Kl=0,ql=0,Jl=0,Yl=0,Xl=0,Zl=null,Ql=null,$l=!1,eu=0,tu=0,nu=1/0,ru=null,iu=null,au=0,ou=null,su=null,cu=0,lu=0,uu=null,du=null,fu=0,pu=null;function mu(){return q&2&&Y!==0?Y&-Y:F.T===null?tt():pd()}function hu(){if(Yl===0){if(!(Y&536870912)||V){var e=Be;Be<<=1,!(Be&3932160)&&(Be=262144),Yl=e}else Yl=536870912}return e=eo.current,e!==null&&(e.flags|=32),Yl}function gu(e,t,n){(e===Rl&&(zl===2||zl===9)||e.cancelPendingCommit!==null)&&(Cu(e,0),bu(e,Y,Yl,!1)),Je(e,n),(!(q&2)||e!==Rl)&&(e===Rl&&(!(q&2)&&(ql|=n),Gl===4&&bu(e,Y,Yl,!1)),ad(e))}function _u(e,t,n){if(q&6)throw Error(i(327));var r=!n&&!(t&127)&&(t&e.expiredLanes)===0||We(e,t),a=r?ju(e,t):ku(e,t,!0),o=r;do{if(a===0){Hl&&!r&&bu(e,t,0,!1);break}if(n=e.current.alternate,o&&!yu(n)){a=ku(e,t,!1),o=!1;continue}if(a===2){if(o=t,e.errorRecoveryDisabledLanes&o)var s=0;else s=e.pendingLanes&-536870913,s=s===0?s&536870912?536870912:0:s;if(s!==0){t=s;a:{var c=e;a=Zl;var l=c.current.memoizedState.isDehydrated;if(l&&(Cu(c,s).flags|=256),s=ku(c,s,!1),s!==2){if(Ul&&!l){c.errorRecoveryDisabledLanes|=o,ql|=o,a=4;break a}o=Ql,Ql=a,o!==null&&(Ql===null?Ql=o:Ql.push.apply(Ql,o))}a=s}if(o=!1,a!==2)continue}}if(a===1){Cu(e,0),bu(e,t,0,!0);break}a:{switch(r=e,o=a,o){case 0:case 1:throw Error(i(345));case 4:if((t&4194048)!==t)break;case 6:bu(r,t,Yl,!Vl);break a;case 2:Ql=null;break;case 3:case 5:break;default:throw Error(i(329))}if((t&62914560)===t&&(a=eu+300-Ce(),10<a)){if(bu(r,t,Yl,!Vl),Ue(r,0,!0)!==0)break a;cu=t,r.timeoutHandle=Yd(vu.bind(null,r,n,Ql,ru,$l,t,Yl,ql,Xl,Vl,o,`Throttled`,-0,0),a);break a}vu(r,n,Ql,ru,$l,t,Yl,ql,Xl,Vl,o,null,-0,0)}break}while(1);ad(e)}function vu(e,t,n,r,i,a,o,s,c,l,u,d,f,p){if(e.timeoutHandle=-1,d=t.subtreeFlags,d&8192||(d&16785408)==16785408){d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Zt},Al(t,a,d);var m=(a&62914560)===a?eu-Ce():(a&4194048)===a?tu-Ce():0;if(m=Yf(d,m),m!==null){cu=a,e.cancelPendingCommit=m(Ru.bind(null,e,t,a,n,r,i,o,s,c,u,d,null,f,p)),bu(e,a,o,!l);return}}Ru(e,t,a,n,r,i,o,s,c)}function yu(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!br(a(),i))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function bu(e,t,n,r){t&=~Jl,t&=~ql,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-Fe(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&Xe(e,n,t)}function xu(){return q&6?!0:(od(0,!1),!1)}function Su(){if(J!==null){if(zl===0)var e=J.return;else e=J,Gi=Wi=null,Eo(e),ka=null,Aa=0,e=J;for(;e!==null;)Rc(e.alternate,e),e=e.return;J=null}}function Cu(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,Xd(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),cu=0,Su(),Rl=e,J=n=ci(e.current,null),Y=t,zl=0,Bl=null,Vl=!1,Hl=We(e,t),Ul=!1,Xl=Yl=Jl=ql=Kl=Gl=0,Ql=Zl=null,$l=!1,t&8&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var i=31-Fe(r),a=1<<i;t|=e[i],r&=~a}return Wl=t,Qr(),n}function wu(e,t){U=null,F.H=Is,t===ba||t===Sa?(t=H(),zl=3):t===xa?(t=H(),zl=4):zl=t===ec?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,Bl=t,J===null&&(Gl=1,Js(e,gi(t,e.current)))}function Tu(){var e=eo.current;return e===null?!0:(Y&4194048)===Y?to===null:(Y&62914560)===Y||Y&536870912?e===to:!1}function Eu(){var e=F.H;return F.H=Is,e===null?Is:e}function Du(){var e=F.A;return F.A=Il,e}function Ou(){Gl=4,Vl||(Y&4194048)!==Y&&eo.current!==null||(Hl=!0),!(Kl&134217727)&&!(ql&134217727)||Rl===null||bu(Rl,Y,Yl,!1)}function ku(e,t,n){var r=q;q|=2;var i=Eu(),a=Du();(Rl!==e||Y!==t)&&(ru=null,Cu(e,t)),t=!1;var o=Gl;a:do try{if(zl!==0&&J!==null){var s=J,c=Bl;switch(zl){case 8:Su(),o=6;break a;case 3:case 2:case 9:case 6:eo.current===null&&(t=!0);var l=zl;if(zl=0,Bl=null,Fu(e,s,c,l),n&&Hl){o=0;break a}break;default:l=zl,zl=0,Bl=null,Fu(e,s,c,l)}}Au(),o=Gl;break}catch(t){wu(e,t)}while(1);return t&&e.shellSuspendCounter++,Gi=Wi=null,q=r,F.H=i,F.A=a,J===null&&(Rl=null,Y=0,Qr()),o}function Au(){for(;J!==null;)Nu(J)}function ju(e,t){var n=q;q|=2;var r=Eu(),a=Du();Rl!==e||Y!==t?(ru=null,nu=Ce()+500,Cu(e,t)):Hl=We(e,t);a:do try{if(zl!==0&&J!==null){t=J;var o=Bl;b:switch(zl){case 1:zl=0,Bl=null,Fu(e,t,o,1);break;case 2:case 9:if(wa(o)){zl=0,Bl=null,Pu(t);break}t=function(){zl!==2&&zl!==9||Rl!==e||(zl=7),ad(e)},o.then(t,t);break a;case 3:zl=7;break a;case 4:zl=5;break a;case 7:wa(o)?(zl=0,Bl=null,Pu(t)):(zl=0,Bl=null,Fu(e,t,o,7));break;case 5:var s=null;switch(J.tag){case 26:s=J.memoizedState;case 5:case 27:var c=J;if(s?Kf(s):c.stateNode.complete){zl=0,Bl=null;var l=c.sibling;if(l!==null)J=l;else{var u=c.return;u===null?J=null:(J=u,Iu(u))}break b}}zl=0,Bl=null,Fu(e,t,o,5);break;case 6:zl=0,Bl=null,Fu(e,t,o,6);break;case 8:Su(),Gl=6;break a;default:throw Error(i(462))}}Mu();break}catch(t){wu(e,t)}while(1);return Gi=Wi=null,F.H=r,F.A=a,q=n,J===null?(Rl=null,Y=0,Qr(),Gl):0}function Mu(){for(;J!==null&&!xe();)Nu(J)}function Nu(e){var t=kc(e.alternate,e,Wl);e.memoizedProps=e.pendingProps,t===null?Iu(e):J=t}function Pu(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=mc(n,t,t.pendingProps,t.type,void 0,Y);break;case 11:t=mc(n,t,t.pendingProps,t.type.render,t.ref,Y);break;case 5:Eo(t);default:Rc(n,t),t=J=li(t,Wl),t=kc(n,t,Wl)}e.memoizedProps=e.pendingProps,t===null?Iu(e):J=t}function Fu(e,t,n,r){Gi=Wi=null,Eo(t),ka=null,Aa=0;var i=t.return;try{if($s(e,i,t,n,Y)){Gl=1,Js(e,gi(n,e.current)),J=null;return}}catch(t){if(i!==null)throw J=i,t;Gl=1,Js(e,gi(n,e.current)),J=null;return}t.flags&32768?(V||r===1?e=!0:Hl||Y&536870912?e=!1:(Vl=e=!0,(r===2||r===9||r===3||r===6)&&(r=eo.current,r!==null&&r.tag===13&&(r.flags|=16384))),Lu(t,e)):Iu(t)}function Iu(e){var t=e;do{if(t.flags&32768){Lu(t,Vl);return}e=t.return;var n=Ic(t.alternate,t,Wl);if(n!==null){J=n;return}if(t=t.sibling,t!==null){J=t;return}J=t=e}while(t!==null);Gl===0&&(Gl=5)}function Lu(e,t){do{var n=Lc(e.alternate,e);if(n!==null){n.flags&=32767,J=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){J=e;return}J=e=n}while(e!==null);Gl=6,J=null}function Ru(e,t,n,r,a,o,s,c,l){e.cancelPendingCommit=null;do Uu();while(au!==0);if(q&6)throw Error(i(327));if(t!==null){if(t===e.current)throw Error(i(177));if(o=t.lanes|t.childLanes,o|=Zr,Ye(e,n,o,s,c,l),e===Rl&&(J=Rl=null,Y=0),su=t,ou=e,cu=n,lu=o,uu=a,du=r,t.subtreeFlags&10256||t.flags&10256?(e.callbackNode=null,e.callbackPriority=0,Qu(De,function(){return Wu(),null})):(e.callbackNode=null,e.callbackPriority=0),r=!!(t.flags&13878),t.subtreeFlags&13878||r){r=F.T,F.T=null,a=I.p,I.p=2,s=q,q|=4;try{rl(e,t,n)}finally{q=s,I.p=a,F.T=r}}au=1,zu(),Bu(),Vu()}}function zu(){if(au===1){au=0;var e=ou,t=su,n=!!(t.flags&13878);if(t.subtreeFlags&13878||n){n=F.T,F.T=null;var r=I.p;I.p=2;var i=q;q|=4;try{gl(t,e);var a=Hd,o=Tr(e.containerInfo),s=a.focusedElem,c=a.selectionRange;if(o!==s&&s&&s.ownerDocument&&wr(s.ownerDocument.documentElement,s)){if(c!==null&&Er(s)){var l=c.start,u=c.end;if(u===void 0&&(u=l),`selectionStart`in s)s.selectionStart=l,s.selectionEnd=Math.min(u,s.value.length);else{var d=s.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=s.textContent.length,h=Math.min(c.start,m),g=c.end===void 0?h:Math.min(c.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var _=Cr(s,h),v=Cr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;s<d.length;s++){var b=d[s];b.element.scrollLeft=b.left,b.element.scrollTop=b.top}}cp=!!Vd,Hd=Vd=null}finally{q=i,I.p=r,F.T=n}}e.current=t,au=2}}function Bu(){if(au===2){au=0;var e=ou,t=su,n=!!(t.flags&8772);if(t.subtreeFlags&8772||n){n=F.T,F.T=null;var r=I.p;I.p=2;var i=q;q|=4;try{il(e,t.alternate,t)}finally{q=i,I.p=r,F.T=n}}au=3}}function Vu(){if(au===4||au===3){au=0,Se();var e=ou,t=su,n=cu,r=du;t.subtreeFlags&10256||t.flags&10256?au=5:(au=0,su=ou=null,Hu(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(iu=null),et(n),t=t.stateNode,Ne&&typeof Ne.onCommitFiberRoot==`function`)try{Ne.onCommitFiberRoot(Me,t,void 0,(t.current.flags&128)==128)}catch{}if(r!==null){t=F.T,i=I.p,I.p=2,F.T=null;try{for(var a=e.onRecoverableError,o=0;o<r.length;o++){var s=r[o];a(s.value,{componentStack:s.stack})}}finally{F.T=t,I.p=i}}cu&3&&Uu(),ad(e),i=e.pendingLanes,n&261930&&i&42?e===pu?fu++:(fu=0,pu=e):fu=0,od(0,!1)}}function Hu(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,sa(t)))}function Uu(){return zu(),Bu(),Vu(),Wu()}function Wu(){if(au!==5)return!1;var e=ou,t=lu;lu=0;var n=et(cu),r=F.T,a=I.p;try{I.p=32>n?32:n,F.T=null,n=uu,uu=null;var o=ou,s=cu;if(au=0,su=ou=null,cu=0,q&6)throw Error(i(331));var c=q;if(q|=4,Nl(o.current),Tl(o,o.current,s,n),q=c,od(0,!1),Ne&&typeof Ne.onPostCommitFiberRoot==`function`)try{Ne.onPostCommitFiberRoot(Me,o)}catch{}return!0}finally{I.p=a,F.T=r,Hu(e,t)}}function Gu(e,t,n){t=gi(n,t),t=Xs(e.stateNode,t,2),e=Va(e,t,2),e!==null&&(Je(e,2),ad(e))}function Ku(e,t,n){if(e.tag===3)Gu(e,e,n);else for(;t!==null;){if(t.tag===3){Gu(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(iu===null||!iu.has(r))){e=gi(n,e),n=Zs(2),r=Va(t,n,2),r!==null&&(Qs(n,r,t,e),Je(r,2),ad(r));break}}t=t.return}}function qu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Ll;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Ul=!0,i.add(n),e=Ju.bind(null,e,t,n),t.then(e,e))}function Ju(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Rl===e&&(Y&n)===n&&(Gl===4||Gl===3&&(Y&62914560)===Y&&300>Ce()-eu?!(q&2)&&Cu(e,0):Jl|=n,Xl===Y&&(Xl=0)),ad(e)}function Yu(e,t){t===0&&(t=Ke()),e=ti(e,t),e!==null&&(Je(e,t),ad(e))}function Xu(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Yu(e,n)}function Zu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),Yu(e,n)}function Qu(e,t){return ye(e,t)}var $u=null,ed=null,td=!1,nd=!1,rd=!1,id=0;function ad(e){e!==ed&&e.next===null&&(ed===null?$u=ed=e:ed=ed.next=e),nd=!0,td||(td=!0,fd())}function od(e,t){if(!rd&&nd){rd=!0;do for(var n=!1,r=$u;r!==null;){if(!t){if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Fe(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,dd(r,a))}else a=Y,a=Ue(r,r===Rl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||We(r,a)||(n=!0,dd(r,a))}r=r.next}while(n);rd=!1}}function sd(){cd()}function cd(){nd=td=!1;var e=0;id!==0&&Jd()&&(e=id);for(var t=Ce(),n=null,r=$u;r!==null;){var i=r.next,a=ld(r,t);a===0?(r.next=null,n===null?$u=i:n.next=i,i===null&&(ed=n)):(n=r,(e!==0||a&3)&&(nd=!0)),r=i}au!==0&&au!==5||od(e,!1),id!==0&&(id=0)}function ld(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-Fe(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=Ge(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=Rl,n=Y,n=Ue(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(zl===2||zl===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&be(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||We(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&be(r),et(n)){case 2:case 8:n=Ee;break;case 32:n=De;break;case 268435456:n=ke;break;default:n=De}return r=ud.bind(null,e),n=ye(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&be(r),e.callbackPriority=2,e.callbackNode=null,2}function ud(e,t){if(au!==0&&au!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Uu()&&e.callbackNode!==n)return null;var r=Y;return r=Ue(e,e===Rl?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(_u(e,r,t),ld(e,Ce()),e.callbackNode!=null&&e.callbackNode===n?ud.bind(null,e):null)}function dd(e,t){if(Uu())return null;_u(e,t,!0)}function fd(){Qd(function(){q&6?ye(Te,sd):cd()})}function pd(){if(id===0){var e=ua;e===0&&(e=ze,ze<<=1,!(ze&261888)&&(ze=256)),id=e}return id}function md(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:Xt(``+e)}function hd(e,t){var n=t.ownerDocument.createElement(`input`);return n.name=t.name,n.value=t.value,e.id&&n.setAttribute(`form`,e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function gd(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=md((i[at]||null).action),o=r.submitter;o&&(t=(t=o[at]||null)?md(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new yn(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(id!==0){var e=o?hd(i,o):new FormData(i);Ss(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=o?hd(i,o):new FormData(i),Ss(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var _d=0;_d<Kr.length;_d++){var vd=Kr[_d];qr(vd.toLowerCase(),`on`+(vd[0].toUpperCase()+vd.slice(1)))}qr(Rr,`onAnimationEnd`),qr(zr,`onAnimationIteration`),qr(Br,`onAnimationStart`),qr(`dblclick`,`onDoubleClick`),qr(`focusin`,`onFocus`),qr(`focusout`,`onBlur`),qr(Vr,`onTransitionRun`),qr(Hr,`onTransitionStart`),qr(Ur,`onTransitionCancel`),qr(Wr,`onTransitionEnd`),xt(`onMouseEnter`,[`mouseout`,`mouseover`]),xt(`onMouseLeave`,[`mouseout`,`mouseover`]),xt(`onPointerEnter`,[`pointerout`,`pointerover`]),xt(`onPointerLeave`,[`pointerout`,`pointerover`]),bt(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),bt(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),bt(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),bt(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),bt(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),bt(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var yd=`abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting`.split(` `),bd=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(yd));function xd(e,t){t=!!(t&4);for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Jr(e)}i.currentTarget=null,a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Jr(e)}i.currentTarget=null,a=c}}}}function X(e,t){var n=t[st];n===void 0&&(n=t[st]=new Set);var r=e+`__bubble`;n.has(r)||(Td(t,e,2,!1),n.add(r))}function Sd(e,t,n){var r=0;t&&(r|=4),Td(n,e,r,t)}var Cd=`_reactListening`+Math.random().toString(36).slice(2);function wd(e){if(!e[Cd]){e[Cd]=!0,vt.forEach(function(t){t!==`selectionchange`&&(bd.has(t)||Sd(t,!1,e),Sd(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Cd]||(t[Cd]=!0,Sd(`selectionchange`,!1,t))}}function Td(e,t,n,r){switch(hp(t)){case 2:var i=lp;break;case 8:i=up;break;default:i=dp}n=i.bind(null,t,n,e),i=void 0,!cn||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function Ed(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var s=r.tag;if(s===3||s===4){var c=r.stateNode.containerInfo;if(c===i)break;if(s===4)for(s=r.return;s!==null;){var l=s.tag;if((l===3||l===4)&&s.stateNode.containerInfo===i)return;s=s.return}for(;c!==null;){if(s=pt(c),s===null)return;if(l=s.tag,l===5||l===6||l===26||l===27){r=a=s;continue a}c=c.parentNode}}r=r.return}an(function(){var r=a,i=$t(n),s=[];a:{var c=Gr.get(e);if(c!==void 0){var l=yn,u=e;switch(e){case`keypress`:if(mn(n)===0)break a;case`keydown`:case`keyup`:l=Ln;break;case`focusin`:u=`focus`,l=On;break;case`focusout`:u=`blur`,l=On;break;case`beforeblur`:case`afterblur`:l=On;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:l=En;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=Dn;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=zn;break;case Rr:case zr:case Br:l=kn;break;case Wr:l=Bn;break;case`scroll`:case`scrollend`:l=xn;break;case`wheel`:l=Vn;break;case`copy`:case`cut`:case`paste`:l=An;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=Rn;break;case`toggle`:case`beforetoggle`:l=Hn}var d=!!(t&4),f=!d&&(e===`scroll`||e===`scrollend`),p=d?c===null?null:c+`Capture`:c;d=[];for(var m=r,h;m!==null;){var g=m;if(h=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||h===null||p===null||(g=on(m,p),g!=null&&d.push(Dd(m,g,h))),f)break;m=m.return}0<d.length&&(c=new l(c,u,null,n,i),s.push({event:c,listeners:d}))}}if(!(t&7)){a:{if(c=e===`mouseover`||e===`pointerover`,l=e===`mouseout`||e===`pointerout`,c&&n!==Qt&&(u=n.relatedTarget||n.fromElement)&&(pt(u)||u[ot]))break a;if((l||c)&&(c=i.window===i?i:(c=i.ownerDocument)?c.defaultView||c.parentWindow:window,l?(u=n.relatedTarget||n.toElement,l=r,u=u?pt(u):null,u!==null&&(f=o(u),d=u.tag,u!==f||d!==5&&d!==27&&d!==6)&&(u=null)):(l=null,u=r),l!==u)){if(d=En,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=Rn,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=l==null?c:ht(l),h=u==null?c:ht(u),c=new d(g,m+`leave`,l,n,i),c.target=f,c.relatedTarget=h,g=null,pt(i)===r&&(d=new d(p,m+`enter`,u,n,i),d.target=h,d.relatedTarget=f,g=d),f=g,l&&u)b:{for(d=kd,p=l,m=u,h=0,g=p;g;g=d(g))h++;g=0;for(var _=m;_;_=d(_))g++;for(;0<h-g;)p=d(p),h--;for(;0<g-h;)m=d(m),g--;for(;h--;){if(p===m||m!==null&&p===m.alternate){d=p;break b}p=d(p),m=d(m)}d=null}else d=null;l!==null&&Ad(s,c,l,d,!1),u!==null&&f!==null&&Ad(s,f,u,d,!0)}}a:{if(c=r?ht(r):window,l=c.nodeName&&c.nodeName.toLowerCase(),l===`select`||l===`input`&&c.type===`file`)var v=cr;else if(nr(c)){if(lr)v=vr;else{v=gr;var y=hr}}else l=c.nodeName,!l||l.toLowerCase()!==`input`||c.type!==`checkbox`&&c.type!==`radio`?r&&qt(r.elementType)&&(v=cr):v=_r;if(v&&=v(e,r)){rr(s,v,n,i);break a}y&&y(e,c,r),e===`focusout`&&r&&c.type===`number`&&r.memoizedProps.value!=null&&zt(c,`number`,c.value)}switch(y=r?ht(r):window,e){case`focusin`:(nr(y)||y.contentEditable===`true`)&&(Or=y,kr=r,Ar=null);break;case`focusout`:Ar=kr=Or=null;break;case`mousedown`:jr=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:jr=!1,Mr(s,n,i);break;case`selectionchange`:if(Dr)break;case`keydown`:case`keyup`:Mr(s,n,i)}var b;if(Wn)b:{switch(e){case`compositionstart`:var x=`onCompositionStart`;break b;case`compositionend`:x=`onCompositionEnd`;break b;case`compositionupdate`:x=`onCompositionUpdate`;break b}x=void 0}else Qn?Xn(e,n)&&(x=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(x=`onCompositionStart`);x&&(qn&&n.locale!==`ko`&&(Qn||x!==`onCompositionStart`?x===`onCompositionEnd`&&Qn&&(b=pn()):(un=i,dn=`value`in un?un.value:un.textContent,Qn=!0)),y=Od(r,x),0<y.length&&(x=new jn(x,e,null,n,i),s.push({event:x,listeners:y}),b?x.data=b:(b=Zn(n),b!==null&&(x.data=b)))),(b=Kn?$n(e,n):er(e,n))&&(x=Od(r,`onBeforeInput`),0<x.length&&(y=new jn(`onBeforeInput`,`beforeinput`,null,n,i),s.push({event:y,listeners:x}),y.data=b)),gd(s,e,r,n,i)}xd(s,t)})}function Dd(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Od(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||a===null||(i=on(e,n),i!=null&&r.unshift(Dd(e,i,a)),i=on(e,t),i!=null&&r.push(Dd(e,i,a))),e.tag===3)return r;e=e.return}return[]}function kd(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Ad(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(s=s.tag,c!==null&&c===r)break;s!==5&&s!==26&&s!==27||l===null||(c=l,i?(l=on(n,a),l!=null&&o.unshift(Dd(n,l,c))):i||(l=on(n,a),l!=null&&o.push(Dd(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var jd=/\r\n?/g,Md=/\u0000|\uFFFD/g;function Nd(e){return(typeof e==`string`?e:``+e).replace(jd,`
231
- `).replace(Md,``)}function Pd(e,t){return t=Nd(t),Nd(e)===t}function Fd(e,t,n,r,a,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||Ut(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&Ut(e,``+r);break;case`className`:Dt(e,`class`,r);break;case`tabIndex`:Dt(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:Dt(e,n,r);break;case`style`:Kt(e,r,o);break;case`data`:if(t!==`object`){Dt(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)){e.removeAttribute(n);break}if(r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Xt(``+r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}if(typeof o==`function`&&(n===`formAction`?(t!==`input`&&Fd(e,t,`name`,a.name,a,null),Fd(e,t,`formEncType`,a.formEncType,a,null),Fd(e,t,`formMethod`,a.formMethod,a,null),Fd(e,t,`formTarget`,a.formTarget,a,null)):(Fd(e,t,`encType`,a.encType,a,null),Fd(e,t,`method`,a.method,a,null),Fd(e,t,`target`,a.target,a,null))),r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Xt(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=Zt);break;case`onScroll`:r!=null&&X(`scroll`,e);break;case`onScrollEnd`:r!=null&&X(`scrollend`,e);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=Xt(``+r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``+r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:X(`beforetoggle`,e),X(`toggle`,e),Et(e,`popover`,r);break;case`xlinkActuate`:Ot(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:Ot(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:Ot(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:Ot(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:Ot(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:Ot(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:Ot(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:Ot(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:Ot(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:Et(e,`is`,r);break;case`innerText`:case`textContent`:break;default:(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)&&(n=Jt.get(n)||n,Et(e,n,r))}}function Id(e,t,n,r,a,o){switch(n){case`style`:Kt(e,r,o);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`children`:typeof r==`string`?Ut(e,r):(typeof r==`number`||typeof r==`bigint`)&&Ut(e,``+r);break;case`onScroll`:r!=null&&X(`scroll`,e);break;case`onScrollEnd`:r!=null&&X(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=Zt);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!yt.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(a=n.endsWith(`Capture`),t=n.slice(2,a?n.length-7:void 0),o=e[at]||null,o=o==null?null:o[n],typeof o==`function`&&e.removeEventListener(t,o,a),typeof r==`function`)){typeof o!=`function`&&o!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,a);break a}n in e?e[n]=r:!0===r?e.setAttribute(n,``):Et(e,n,r)}}}function Ld(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:X(`error`,e),X(`load`,e);var r=!1,a=!1,o;for(o in n)if(n.hasOwnProperty(o)){var s=n[o];if(s!=null)switch(o){case`src`:r=!0;break;case`srcSet`:a=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:Fd(e,t,o,s,n,null)}}a&&Fd(e,t,`srcSet`,n.srcSet,n,null),r&&Fd(e,t,`src`,n.src,n,null);return;case`input`:X(`invalid`,e);var c=o=s=a=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:a=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:o=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(i(137,t));break;default:Fd(e,t,r,d,n,null)}}Rt(e,o,c,l,u,s,a,!1);return;case`select`:for(a in X(`invalid`,e),r=s=o=null,n)if(n.hasOwnProperty(a)&&(c=n[a],c!=null))switch(a){case`value`:o=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:Fd(e,t,a,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&Bt(e,!!r,n,!0):Bt(e,!!r,t,!1);return;case`textarea`:for(s in X(`invalid`,e),o=a=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:a=c;break;case`children`:o=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(i(91));break;default:Fd(e,t,s,c,n,null)}Ht(e,r,a,o);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:Fd(e,t,l,r,n,null)}return;case`dialog`:X(`beforetoggle`,e),X(`toggle`,e),X(`cancel`,e),X(`close`,e);break;case`iframe`:case`object`:X(`load`,e);break;case`video`:case`audio`:for(r=0;r<yd.length;r++)X(yd[r],e);break;case`image`:X(`error`,e),X(`load`,e);break;case`details`:X(`toggle`,e);break;case`embed`:case`source`:case`link`:X(`error`,e),X(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:Fd(e,t,u,r,n,null)}return;default:if(qt(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&Id(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&Fd(e,t,c,r,n,null))}function Rd(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var a=null,o=null,s=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||Fd(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:o=m;break;case`name`:a=m;break;case`checked`:u=m;break;case`defaultChecked`:d=m;break;case`value`:s=m;break;case`defaultValue`:c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(i(137,t));break;default:m!==f&&Fd(e,t,p,m,r,f)}}Lt(e,s,c,l,u,d,o,a);return;case`select`:for(o in m=s=c=p=null,n)if(l=n[o],n.hasOwnProperty(o)&&l!=null)switch(o){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(o)||Fd(e,t,o,null,r,l)}for(a in r)if(o=r[a],l=n[a],r.hasOwnProperty(a)&&(o!=null||l!=null))switch(a){case`value`:p=o;break;case`defaultValue`:c=o;break;case`multiple`:s=o;default:o!==l&&Fd(e,t,a,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?Bt(e,!!n,n?[]:``,!1):Bt(e,!!n,t,!0)):Bt(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(a=n[c],n.hasOwnProperty(c)&&a!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:Fd(e,t,c,null,r,a)}for(s in r)if(a=r[s],o=n[s],r.hasOwnProperty(s)&&(a!=null||o!=null))switch(s){case`value`:p=a;break;case`defaultValue`:m=a;break;case`children`:break;case`dangerouslySetInnerHTML`:if(a!=null)throw Error(i(91));break;default:a!==o&&Fd(e,t,s,a,r,o)}Vt(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:Fd(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:Fd(e,t,l,p,r,m)}return;case`img`:case`link`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`keygen`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:case`menuitem`:for(var g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&Fd(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(i(137,t));break;default:Fd(e,t,u,p,r,m)}return;default:if(qt(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&Id(e,t,_,void 0,r,p);for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||Id(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&Fd(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||Fd(e,t,f,p,r,m)}function zd(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function Bd(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&zd(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&zd(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var Vd=null,Hd=null;function Ud(e){return e.nodeType===9?e:e.ownerDocument}function Wd(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function Gd(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function Kd(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var qd=null;function Jd(){var e=window.event;return e&&e.type===`popstate`?e!==qd&&(qd=e,!0):(qd=null,!1)}var Yd=typeof setTimeout==`function`?setTimeout:void 0,Xd=typeof clearTimeout==`function`?clearTimeout:void 0,Zd=typeof Promise==`function`?Promise:void 0,Qd=typeof queueMicrotask==`function`?queueMicrotask:Zd===void 0?Yd:function(e){return Zd.resolve(null).then(e).catch($d)};function $d(e){setTimeout(function(){throw e})}function ef(e){return e===`head`}function tf(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8){if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Pp(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)gf(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,gf(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[dt]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&gf(e.ownerDocument.body)}n=i}while(n);Pp(t)}function nf(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8){if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++}n=r}while(n)}function rf(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:rf(n),ft(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function af(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r){if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e}else if(!e[dt])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=df(e.nextSibling),e===null)break}return null}function of(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=df(e.nextSibling),e===null))return null;return e}function sf(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=df(e.nextSibling),e===null))return null;return e}function cf(e){return e.data===`$?`||e.data===`$~`}function lf(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function uf(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function df(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var ff=null;function pf(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return df(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function mf(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function hf(e,t,n){switch(t=Ud(n),e){case`html`:if(e=t.documentElement,!e)throw Error(i(452));return e;case`head`:if(e=t.head,!e)throw Error(i(453));return e;case`body`:if(e=t.body,!e)throw Error(i(454));return e;default:throw Error(i(451))}}function gf(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);ft(e)}var _f=new Map,vf=new Set;function yf(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var bf=I.d;I.d={f:Z,r:xf,D:wf,C:Tf,L:Ef,m:Df,X:kf,S:Of,M:Af};function Z(){var e=bf.f(),t=xu();return e||t}function xf(e){var t=mt(e);t!==null&&t.tag===5&&t.type===`form`?ws(t):bf.r(e)}var Sf=typeof document>`u`?null:document;function Cf(e,t,n){var r=Sf;if(r&&typeof t==`string`&&t){var i=It(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),vf.has(i)||(vf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Ld(t,`link`,e),_t(t),r.head.appendChild(t)))}}function wf(e){bf.D(e),Cf(`dns-prefetch`,e,null)}function Tf(e,t){bf.C(e,t),Cf(`preconnect`,e,t)}function Ef(e,t,n){bf.L(e,t,n);var r=Sf;if(r&&e&&t){var i=`link[rel="preload"][as="`+It(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+It(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+It(n.imageSizes)+`"]`)):i+=`[href="`+It(e)+`"]`;var a=i;switch(t){case`style`:a=Mf(e);break;case`script`:a=If(e)}_f.has(a)||(e=h({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),_f.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Nf(a))||t===`script`&&r.querySelector(Lf(a))||(t=r.createElement(`link`),Ld(t,`link`,e),_t(t),r.head.appendChild(t)))}}function Df(e,t){bf.m(e,t);var n=Sf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+It(r)+`"][href="`+It(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=If(e)}if(!_f.has(a)&&(e=h({rel:`modulepreload`,href:e},t),_f.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Lf(a)))return}r=n.createElement(`link`),Ld(r,`link`,e),_t(r),n.head.appendChild(r)}}}function Of(e,t,n){bf.S(e,t,n);var r=Sf;if(r&&e){var i=gt(r).hoistableStyles,a=Mf(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Nf(a)))s.loading=5;else{e=h({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=_f.get(a))&&Bf(e,n);var c=o=r.createElement(`link`);_t(c),Ld(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,zf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function kf(e,t){bf.X(e,t);var n=Sf;if(n&&e){var r=gt(n).hoistableScripts,i=If(e),a=r.get(i);a||(a=n.querySelector(Lf(i)),a||(e=h({src:e,async:!0},t),(t=_f.get(i))&&Vf(e,t),a=n.createElement(`script`),_t(a),Ld(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Af(e,t){bf.M(e,t);var n=Sf;if(n&&e){var r=gt(n).hoistableScripts,i=If(e),a=r.get(i);a||(a=n.querySelector(Lf(i)),a||(e=h({src:e,async:!0,type:`module`},t),(t=_f.get(i))&&Vf(e,t),a=n.createElement(`script`),_t(a),Ld(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function jf(e,t,n,r){var a=(a=ae.current)?yf(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Mf(n.href),n=gt(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Mf(n.href);var o=gt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(Nf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),_f.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},_f.set(e,n),o||Ff(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=If(n),n=gt(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Mf(e){return`href="`+It(e)+`"`}function Nf(e){return`link[rel="stylesheet"][`+e+`]`}function Pf(e){return h({},e,{"data-precedence":e.precedence,precedence:null})}function Ff(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Ld(t,`link`,n),_t(t),e.head.appendChild(t))}function If(e){return`[src="`+It(e)+`"]`}function Lf(e){return`script[async]`+e}function Rf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+It(n.href)+`"]`);if(r)return t.instance=r,_t(r),r;var a=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),_t(r),Ld(r,`style`,a),zf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Mf(n.href);var o=e.querySelector(Nf(a));if(o)return t.state.loading|=4,t.instance=o,_t(o),o;r=Pf(n),(a=_f.get(a))&&Bf(r,a),o=(e.ownerDocument||e).createElement(`link`),_t(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Ld(o,`link`,r),t.state.loading|=4,zf(o,n.precedence,e),t.instance=o;case`script`:return o=If(n.src),(a=e.querySelector(Lf(o)))?(t.instance=a,_t(a),a):(r=n,(a=_f.get(o))&&(r=h({},n),Vf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),_t(a),Ld(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,zf(r,n.precedence,e));return t.instance}function zf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Bf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function Vf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var Hf=null;function Uf(e,t,n){if(Hf===null){var r=new Map,i=Hf=new Map;i.set(n,r)}else i=Hf,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[dt]||a[it]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function Wf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function Gf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Kf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function qf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Mf(r.href),a=t.querySelector(Nf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Xf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,_t(a);return}a=t.ownerDocument||t,r=Pf(r),(i=_f.get(i))&&Bf(r,i),a=a.createElement(`link`),_t(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Ld(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Xf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Jf=0;function Yf(e,t){return e.stylesheets&&e.count===0&&Qf(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&Qf(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&Jf===0&&(Jf=62500*Bd());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&Qf(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>Jf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Xf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Qf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Zf=null;function Qf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Zf=new Map,t.forEach($f,e),Zf=null,Xf.call(e))}function $f(e,t){if(!(t.state.loading&4)){var n=Zf.get(e);if(n)var r=n.get(null);else{n=new Map,Zf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=Xf.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var ep={$$typeof:C,Provider:null,Consumer:null,_currentValue:te,_currentValue2:te,_threadCount:0};function tp(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=qe(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=qe(0),this.hiddenUpdates=qe(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.incompleteTransitions=new Map}function np(e,t,n,r,i,a,o,s,c,l,u,d){return e=new tp(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=oi(3,null,null,t),e.current=a,a.stateNode=e,t=oa(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},Ra(a),e}function Q(e){return e?(e=ii,e):ii}function rp(e,t,n,r,i,a){i=Q(i),r.context===null?r.context=i:r.pendingContext=i,r=Ba(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=Va(e,r,t),n!==null&&(gu(n,e,t),Ha(n,e,t))}function ip(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function ap(e,t){ip(e,t),(e=e.alternate)&&ip(e,t)}function op(e){if(e.tag===13||e.tag===31){var t=ti(e,67108864);t!==null&&gu(t,e,67108864),ap(e,67108864)}}function sp(e){if(e.tag===13||e.tag===31){var t=mu();t=$e(t);var n=ti(e,t);n!==null&&gu(n,e,t),ap(e,t)}}var cp=!0;function lp(e,t,n,r){var i=F.T;F.T=null;var a=I.p;try{I.p=2,dp(e,t,n,r)}finally{I.p=a,F.T=i}}function up(e,t,n,r){var i=F.T;F.T=null;var a=I.p;try{I.p=8,dp(e,t,n,r)}finally{I.p=a,F.T=i}}function dp(e,t,n,r){if(cp){var i=fp(r);if(i===null)Ed(e,t,r,pp,n),wp(e,r);else if(Ep(i,e,t,n,r))r.stopPropagation();else if(wp(e,r),t&4&&-1<Cp.indexOf(e)){for(;i!==null;){var a=mt(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=He(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-Fe(o);s.entanglements[1]|=c,o&=~c}ad(a),!(q&6)&&(nu=Ce()+500,od(0,!1))}}break;case 31:case 13:s=ti(a,2),s!==null&&gu(s,a,2),xu(),ap(a,2)}if(a=fp(r),a===null&&Ed(e,t,r,pp,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else Ed(e,t,r,null,n)}}function fp(e){return e=$t(e),mp(e)}var pp=null;function mp(e){if(pp=null,e=pt(e),e!==null){var t=o(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=s(t),e!==null)return e;e=null}else if(n===31){if(e=c(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return pp=e,null}function hp(e){switch(e){case`beforetoggle`:case`cancel`:case`click`:case`close`:case`contextmenu`:case`copy`:case`cut`:case`auxclick`:case`dblclick`:case`dragend`:case`dragstart`:case`drop`:case`focusin`:case`focusout`:case`input`:case`invalid`:case`keydown`:case`keypress`:case`keyup`:case`mousedown`:case`mouseup`:case`paste`:case`pause`:case`play`:case`pointercancel`:case`pointerdown`:case`pointerup`:case`ratechange`:case`reset`:case`resize`:case`seeked`:case`submit`:case`toggle`:case`touchcancel`:case`touchend`:case`touchstart`:case`volumechange`:case`change`:case`selectionchange`:case`textInput`:case`compositionstart`:case`compositionend`:case`compositionupdate`:case`beforeblur`:case`afterblur`:case`beforeinput`:case`blur`:case`fullscreenchange`:case`focus`:case`hashchange`:case`popstate`:case`select`:case`selectstart`:return 2;case`drag`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`mousemove`:case`mouseout`:case`mouseover`:case`pointermove`:case`pointerout`:case`pointerover`:case`scroll`:case`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 8;case`message`:switch(we()){case Te:return 2;case Ee:return 8;case De:case Oe:return 32;case ke:return 268435456;default:return 32}default:return 32}}var gp=!1,_p=null,vp=null,yp=null,bp=new Map,xp=new Map,Sp=[],Cp=`mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset`.split(` `);function wp(e,t){switch(e){case`focusin`:case`focusout`:_p=null;break;case`dragenter`:case`dragleave`:vp=null;break;case`mouseover`:case`mouseout`:yp=null;break;case`pointerover`:case`pointerout`:bp.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:xp.delete(t.pointerId)}}function Tp(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=mt(t),t!==null&&op(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Ep(e,t,n,r,i){switch(t){case`focusin`:return _p=Tp(_p,e,t,n,r,i),!0;case`dragenter`:return vp=Tp(vp,e,t,n,r,i),!0;case`mouseover`:return yp=Tp(yp,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return bp.set(a,Tp(bp.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,xp.set(a,Tp(xp.get(a)||null,e,t,n,r,i)),!0}return!1}function Dp(e){var t=pt(e.target);if(t!==null){var n=o(t);if(n!==null){if(t=n.tag,t===13){if(t=s(n),t!==null){e.blockedOn=t,nt(e.priority,function(){sp(n)});return}}else if(t===31){if(t=c(n),t!==null){e.blockedOn=t,nt(e.priority,function(){sp(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Op(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=fp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);Qt=r,n.target.dispatchEvent(r),Qt=null}else return t=mt(n),t!==null&&op(t),e.blockedOn=n,!1;t.shift()}return!0}function kp(e,t,n){Op(e)&&n.delete(t)}function Ap(){gp=!1,_p!==null&&Op(_p)&&(_p=null),vp!==null&&Op(vp)&&(vp=null),yp!==null&&Op(yp)&&(yp=null),bp.forEach(kp),xp.forEach(kp)}function jp(e,n){e.blockedOn===n&&(e.blockedOn=null,gp||(gp=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Ap)))}var Mp=null;function Np(e){Mp!==e&&(Mp=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){Mp===e&&(Mp=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(mp(r||n)===null)continue;break}var a=mt(n);a!==null&&(e.splice(t,3),t-=3,Ss(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Pp(e){function t(t){return jp(t,e)}_p!==null&&jp(_p,e),vp!==null&&jp(vp,e),yp!==null&&jp(yp,e),bp.forEach(t),xp.forEach(t);for(var n=0;n<Sp.length;n++){var r=Sp[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<Sp.length&&(n=Sp[0],n.blockedOn===null);)Dp(n),n.blockedOn===null&&Sp.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[at]||null;if(typeof a==`function`)o||Np(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[at]||null)s=o.formAction;else if(mp(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Np(n)}}}function Fp(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function Ip(e){this._internalRoot=e}Lp.prototype.render=Ip.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(i(409));var n=t.current;rp(n,mu(),e,t,null,null)},Lp.prototype.unmount=Ip.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;rp(e.current,2,null,e,null,null),xu(),t[ot]=null}};function Lp(e){this._internalRoot=e}Lp.prototype.unstable_scheduleHydration=function(e){if(e){var t=tt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Sp.length&&t!==0&&t<Sp[n].priority;n++);Sp.splice(n,0,e),n===0&&Dp(e)}};var Rp=n.version;if(Rp!==`19.2.8`)throw Error(i(527,Rp,`19.2.8`));I.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(i(188)):(e=Object.keys(e).join(`,`),Error(i(268,e)));return e=d(t),e=e===null?null:p(e),e=e===null?null:e.stateNode,e};var zp={bundleType:0,version:`19.2.8`,rendererPackageName:`react-dom`,currentDispatcherRef:F,reconcilerVersion:`19.2.8`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var Bp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Bp.isDisabled&&Bp.supportsFiber)try{Me=Bp.inject(zp),Ne=Bp}catch{}}e.createRoot=function(e,t){if(!a(e))throw Error(i(299));var n=!1,r=``,o=Gs,s=Ks,c=qs;return t!=null&&(!0===t.unstable_strictMode&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onUncaughtError!==void 0&&(o=t.onUncaughtError),t.onCaughtError!==void 0&&(s=t.onCaughtError),t.onRecoverableError!==void 0&&(c=t.onRecoverableError)),t=np(e,1,!1,null,null,n,r,null,o,s,c,Fp),e[ot]=t.current,wd(e),new Ip(t)}})),g=o(((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=h()})),_=o((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})),v=o(((e,t)=>{t.exports=_()})),y=c(u(),1),b=g(),x=v();function S(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=S(e[n]))!==``&&(t+=(t&&` `)+r);else for(let n in e)e[n]&&(t+=(t&&` `)+n);return t}var C={value:()=>{}};function w(){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 T(n)}function T(e){this._=e}function E(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}})}T.prototype=w.prototype={constructor:T,on:function(e,t){var n=this._,r=E(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=D(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]=O(n[i],e.name,t);else if(t==null)for(i in n)n[i]=O(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 T(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 D(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function O(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=C,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var k={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 A(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),k.hasOwnProperty(t)?{space:k[t],local:e}:e}function j(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 M(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function N(e){var t=A(e);return(t.local?M:j)(t)}function P(){}function ee(e){return e==null?P:function(){return this.querySelector(e)}}function F(e){typeof e!=`function`&&(e=ee(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 Lt(r,this._parents)}function I(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function te(){return[]}function ne(e){return e==null?te:function(){return this.querySelectorAll(e)}}function L(e){return function(){return I(e.apply(this,arguments))}}function R(e){e=typeof e==`function`?L(e):ne(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 Lt(r,i)}function z(e){return function(){return this.matches(e)}}function B(e){return function(t){return t.matches(e)}}var re=Array.prototype.find;function ie(e){return function(){return re.call(this.children,e)}}function ae(){return this.firstElementChild}function oe(e){return this.select(e==null?ae:ie(typeof e==`function`?e:B(e)))}var se=Array.prototype.filter;function ce(){return Array.from(this.children)}function le(e){return function(){return se.call(this.children,e)}}function ue(e){return this.selectAll(e==null?ce:le(typeof e==`function`?e:B(e)))}function de(e){typeof e!=`function`&&(e=z(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 Lt(r,this._parents)}function fe(e){return Array(e.length)}function pe(){return new Lt(this._enter||this._groups.map(fe),this._parents)}function me(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}me.prototype={constructor:me,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 he(e){return function(){return e}}function ge(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 me(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function _e(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 me(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function ve(e){return e.__data__}function ye(e,t){if(!arguments.length)return Array.from(this,ve);var n=t?_e:ge,r=this._parents,i=this._groups;typeof e!=`function`&&(e=he(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=be(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 Lt(o,r),o._enter=s,o._exit=c,o}function be(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function xe(){return new Lt(this._exit||this._groups.map(fe),this._parents)}function Se(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 Ce(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 Lt(s,this._parents)}function we(){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 Te(e){e||=Ee;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 Lt(i,this._parents).order()}function Ee(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function De(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Oe(){return Array.from(this)}function ke(){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 Ae(){let e=0;for(let t of this)++e;return e}function je(){return!this.node()}function Me(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 Ne(e){return function(){this.removeAttribute(e)}}function Pe(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Fe(e,t){return function(){this.setAttribute(e,t)}}function Ie(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Le(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Re(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 ze(e,t){var n=A(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?Pe:Ne:typeof t==`function`?n.local?Re:Le:n.local?Ie:Fe)(n,t))}function Be(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Ve(e){return function(){this.style.removeProperty(e)}}function He(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Ue(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function We(e,t,n){return arguments.length>1?this.each((t==null?Ve:typeof t==`function`?Ue:He)(e,t,n??``)):Ge(this.node(),e)}function Ge(e,t){return e.style.getPropertyValue(t)||Be(e).getComputedStyle(e,null).getPropertyValue(t)}function Ke(e){return function(){delete this[e]}}function qe(e,t){return function(){this[e]=t}}function Je(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Ye(e,t){return arguments.length>1?this.each((t==null?Ke:typeof t==`function`?Je:qe)(e,t)):this.node()[e]}function Xe(e){return e.trim().split(/^|\s+/)}function Ze(e){return e.classList||new Qe(e)}function Qe(e){this._node=e,this._names=Xe(e.getAttribute(`class`)||``)}Qe.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 $e(e,t){for(var n=Ze(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function et(e,t){for(var n=Ze(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function tt(e){return function(){$e(this,e)}}function nt(e){return function(){et(this,e)}}function rt(e,t){return function(){(t.apply(this,arguments)?$e:et)(this,e)}}function it(e,t){var n=Xe(e+``);if(arguments.length<2){for(var r=Ze(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?rt:t?tt:nt)(n,t))}function at(){this.textContent=``}function ot(e){return function(){this.textContent=e}}function st(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function ct(e){return arguments.length?this.each(e==null?at:(typeof e==`function`?st:ot)(e)):this.node().textContent}function lt(){this.innerHTML=``}function ut(e){return function(){this.innerHTML=e}}function dt(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function ft(e){return arguments.length?this.each(e==null?lt:(typeof e==`function`?dt:ut)(e)):this.node().innerHTML}function pt(){this.nextSibling&&this.parentNode.appendChild(this)}function mt(){return this.each(pt)}function ht(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function gt(){return this.each(ht)}function _t(e){var t=typeof e==`function`?e:N(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function vt(){return null}function yt(e,t){var n=typeof e==`function`?e:N(e),r=t==null?vt:typeof t==`function`?t:ee(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function bt(){var e=this.parentNode;e&&e.removeChild(this)}function xt(){return this.each(bt)}function St(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Ct(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function wt(e){return this.select(e?Ct:St)}function Tt(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function Et(e){return function(t){e.call(this,t,this.__data__)}}function Dt(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 Ot(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 kt(e,t,n){return function(){var r=this.__on,i,a=Et(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 At(e,t,n){var r=Dt(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?kt:Ot,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function jt(e,t,n){var r=Be(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 Mt(e,t){return function(){return jt(this,e,t)}}function Nt(e,t){return function(){return jt(this,e,t.apply(this,arguments))}}function Pt(e,t){return this.each((typeof t==`function`?Nt:Mt)(e,t))}function*Ft(){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 It=[null];function Lt(e,t){this._groups=e,this._parents=t}function Rt(){return new Lt([[document.documentElement]],It)}function zt(){return this}Lt.prototype=Rt.prototype={constructor:Lt,select:F,selectAll:R,selectChild:oe,selectChildren:ue,filter:de,data:ye,enter:pe,exit:xe,join:Se,merge:Ce,selection:zt,order:we,sort:Te,call:De,nodes:Oe,node:ke,size:Ae,empty:je,each:Me,attr:ze,style:We,property:Ye,classed:it,text:ct,html:ft,raise:mt,lower:gt,append:_t,insert:yt,remove:xt,clone:wt,datum:Tt,on:At,dispatch:Pt,[Symbol.iterator]:Ft};function Bt(e){return typeof e==`string`?new Lt([[document.querySelector(e)]],[document.documentElement]):new Lt([[e]],It)}function Vt(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Ht(e,t){if(e=Vt(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 Ut={passive:!1},Wt={capture:!0,passive:!1};function Gt(e){e.stopImmediatePropagation()}function Kt(e){e.preventDefault(),e.stopImmediatePropagation()}function qt(e){var t=e.document.documentElement,n=Bt(e).on(`dragstart.drag`,Kt,Wt);`onselectstart`in t?n.on(`selectstart.drag`,Kt,Wt):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect=`none`)}function Jt(e,t){var n=e.document.documentElement,r=Bt(e).on(`dragstart.drag`,null);t&&(r.on(`click.drag`,Kt,Wt),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 Yt=e=>()=>e;function Xt(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}})}Xt.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Zt(e){return!e.ctrlKey&&!e.button}function Qt(){return this.parentNode}function $t(e,t){return t??{x:e.x,y:e.y}}function en(){return navigator.maxTouchPoints||`ontouchstart`in this}function tn(){var e=Zt,t=Qt,n=$t,r=en,i={},a=w(`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`,_,Ut).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&&(Bt(n.view).on(`mousemove.drag`,m,Wt).on(`mouseup.drag`,h,Wt),qt(n.view),Gt(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(Kt(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){Bt(e.view).on(`mousemove.drag mouseup.drag`,null),Jt(e.view,l),Kt(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]))&&(Gt(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])&&(Kt(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])&&(Gt(e),a(`end`,e,t[r]))}function y(e,t,r,s,c,l){var u=a.copy(),d=Ht(l||r,t),p,m,h;if((h=n.call(e,new Xt(`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=Ht(l||a,t),_=o}u.call(r,e,new Xt(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:Yt(!!t),f):e},f.container=function(e){return arguments.length?(t=typeof e==`function`?e:Yt(e),f):t},f.subject=function(e){return arguments.length?(n=typeof e==`function`?e:Yt(e),f):n},f.touchable=function(e){return arguments.length?(r=typeof e==`function`?e:Yt(!!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 nn(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function rn(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function an(){}var on=.7,sn=1/on,cn=`\\s*([+-]?\\d+)\\s*`,ln=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,un=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,dn=/^#([0-9a-f]{3,8})$/,fn=RegExp(`^rgb\\(${cn},${cn},${cn}\\)$`),pn=RegExp(`^rgb\\(${un},${un},${un}\\)$`),mn=RegExp(`^rgba\\(${cn},${cn},${cn},${ln}\\)$`),hn=RegExp(`^rgba\\(${un},${un},${un},${ln}\\)$`),gn=RegExp(`^hsl\\(${ln},${un},${un}\\)$`),_n=RegExp(`^hsla\\(${ln},${un},${un},${ln}\\)$`),vn={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};nn(an,Cn,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:yn,formatHex:yn,formatHex8:bn,formatHsl:xn,formatRgb:Sn,toString:Sn});function yn(){return this.rgb().formatHex()}function bn(){return this.rgb().formatHex8()}function xn(){return In(this).formatHsl()}function Sn(){return this.rgb().formatRgb()}function Cn(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=dn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?wn(t):n===3?new On(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Tn(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Tn(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=fn.exec(e))?new On(t[1],t[2],t[3],1):(t=pn.exec(e))?new On(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=mn.exec(e))?Tn(t[1],t[2],t[3],t[4]):(t=hn.exec(e))?Tn(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=gn.exec(e))?Fn(t[1],t[2]/100,t[3]/100,1):(t=_n.exec(e))?Fn(t[1],t[2]/100,t[3]/100,t[4]):vn.hasOwnProperty(e)?wn(vn[e]):e===`transparent`?new On(NaN,NaN,NaN,0):null}function wn(e){return new On(e>>16&255,e>>8&255,e&255,1)}function Tn(e,t,n,r){return r<=0&&(e=t=n=NaN),new On(e,t,n,r)}function En(e){return e instanceof an||(e=Cn(e)),e?(e=e.rgb(),new On(e.r,e.g,e.b,e.opacity)):new On}function Dn(e,t,n,r){return arguments.length===1?En(e):new On(e,t,n,r??1)}function On(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}nn(On,Dn,rn(an,{brighter(e){return e=e==null?sn:sn**+e,new On(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?on:on**+e,new On(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new On(Nn(this.r),Nn(this.g),Nn(this.b),Mn(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:kn,formatHex:kn,formatHex8:An,formatRgb:jn,toString:jn}));function kn(){return`#${Pn(this.r)}${Pn(this.g)}${Pn(this.b)}`}function An(){return`#${Pn(this.r)}${Pn(this.g)}${Pn(this.b)}${Pn((isNaN(this.opacity)?1:this.opacity)*255)}`}function jn(){let e=Mn(this.opacity);return`${e===1?`rgb(`:`rgba(`}${Nn(this.r)}, ${Nn(this.g)}, ${Nn(this.b)}${e===1?`)`:`, ${e})`}`}function Mn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Nn(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Pn(e){return e=Nn(e),(e<16?`0`:``)+e.toString(16)}function Fn(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Rn(e,t,n,r)}function In(e){if(e instanceof Rn)return new Rn(e.h,e.s,e.l,e.opacity);if(e instanceof an||(e=Cn(e)),!e)return new Rn;if(e instanceof Rn)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 Rn(o,s,c,e.opacity)}function Ln(e,t,n,r){return arguments.length===1?In(e):new Rn(e,t,n,r??1)}function Rn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}nn(Rn,Ln,rn(an,{brighter(e){return e=e==null?sn:sn**+e,new Rn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?on:on**+e,new Rn(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 On(Vn(e>=240?e-240:e+120,i,r),Vn(e,i,r),Vn(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new Rn(zn(this.h),Bn(this.s),Bn(this.l),Mn(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=Mn(this.opacity);return`${e===1?`hsl(`:`hsla(`}${zn(this.h)}, ${Bn(this.s)*100}%, ${Bn(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function zn(e){return e=(e||0)%360,e<0?e+360:e}function Bn(e){return Math.max(0,Math.min(1,e||0))}function Vn(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 Hn=e=>()=>e;function Un(e,t){return function(n){return e+n*t}}function Wn(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function Gn(e){return(e=+e)==1?Kn:function(t,n){return n-t?Wn(t,n,e):Hn(isNaN(t)?n:t)}}function Kn(e,t){var n=t-e;return n?Un(e,n):Hn(isNaN(e)?t:e)}var qn=(function e(t){var n=Gn(t);function r(e,t){var r=n((e=Dn(e)).r,(t=Dn(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=Kn(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 Jn(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 Yn(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Xn(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]=ar(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 Zn(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Qn(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function $n(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]=ar(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var er=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,tr=new RegExp(er.source,`g`);function nr(e){return function(){return e}}function rr(e){return function(t){return e(t)+``}}function ir(e,t){var n=er.lastIndex=tr.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=er.exec(e))&&(i=tr.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:Qn(r,i)})),n=tr.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?rr(c[0].x):nr(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 ar(e,t){var n=typeof t,r;return t==null||n===`boolean`?Hn(t):(n===`number`?Qn:n===`string`?(r=Cn(t))?(t=r,qn):ir:t instanceof Cn?qn:t instanceof Date?Zn:Yn(t)?Jn:Array.isArray(t)?Xn:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?$n:Qn)(e,t)}var or=180/Math.PI,sr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function cr(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)*or,skewX:Math.atan(c)*or,scaleX:o,scaleY:s}}var lr;function ur(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?sr:cr(t.a,t.b,t.c,t.d,t.e,t.f)}function dr(e){return e==null||(lr||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),lr.setAttribute(`transform`,e),!(e=lr.transform.baseVal.consolidate()))?sr:(e=e.matrix,cr(e.a,e.b,e.c,e.d,e.e,e.f))}function fr(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:Qn(e,i)},{i:c-2,x:Qn(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:Qn(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:Qn(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:Qn(e,n)},{i:s-2,x:Qn(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 pr=fr(ur,`px, `,`px)`,`deg)`),mr=fr(dr,`, `,`)`,`)`),hr=1e-12;function gr(e){return((e=Math.exp(e))+1/e)/2}function _r(e){return((e=Math.exp(e))-1/e)/2}function vr(e){return((e=Math.exp(2*e))-1)/(e+1)}var yr=(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<hr)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=gr(y),c=s/(n*g)*(i*vr(t*r+y)-_r(y));return[a+c*d,o+c*f,s*i/gr(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),br=0,xr=0,Sr=0,Cr=1e3,wr,Tr,Er=0,Dr=0,Or=0,kr=typeof performance==`object`&&performance.now?performance:Date,Ar=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function jr(){return Dr||=(Ar(Mr),kr.now()+Or)}function Mr(){Dr=0}function Nr(){this._call=this._time=this._next=null}Nr.prototype=Pr.prototype={constructor:Nr,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?jr():+n)+(t==null?0:+t),!this._next&&Tr!==this&&(Tr?Tr._next=this:wr=this,Tr=this),this._call=e,this._time=n,zr()},stop:function(){this._call&&(this._call=null,this._time=1/0,zr())}};function Pr(e,t,n){var r=new Nr;return r.restart(e,t,n),r}function Fr(){jr(),++br;for(var e=wr,t;e;)(t=Dr-e._time)>=0&&e._call.call(void 0,t),e=e._next;--br}function Ir(){Dr=(Er=kr.now())+Or,br=xr=0;try{Fr()}finally{br=0,Rr(),Dr=0}}function Lr(){var e=kr.now(),t=e-Er;t>Cr&&(Or-=t,Er=e)}function Rr(){for(var e,t=wr,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:wr=n);Tr=e,zr(r)}function zr(e){br||(xr&&=clearTimeout(xr),e-Dr>24?(e<1/0&&(xr=setTimeout(Ir,e-kr.now()-Or)),Sr&&=clearInterval(Sr)):(Sr||=(Er=kr.now(),setInterval(Lr,Cr)),br=1,Ar(Ir)))}function Br(e,t,n){var r=new Nr;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var Vr=w(`start`,`end`,`cancel`,`interrupt`),Hr=[];function Ur(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;qr(e,n,{name:t,index:r,group:i,on:Vr,tween:Hr,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function Wr(e,t){var n=Kr(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function Gr(e,t){var n=Kr(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function Kr(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function qr(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Pr(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 Br(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(Br(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 Jr(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 Yr(e){return this.each(function(){Jr(this,e)})}function Xr(e,t){var n,r;return function(){var i=Gr(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 Zr(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=Gr(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 Qr(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=Kr(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?Xr:Zr)(n,e,t))}function $r(e,t,n){var r=e._id;return e.each(function(){var e=Gr(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return Kr(e,r).value[t]}}function ei(e,t){var n;return(typeof t==`number`?Qn:t instanceof Cn?qn:(n=Cn(t))?(t=n,qn):ir)(e,t)}function ti(e){return function(){this.removeAttribute(e)}}function ni(e){return function(){this.removeAttributeNS(e.space,e.local)}}function ri(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 ii(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 ai(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 oi(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 si(e,t){var n=A(e),r=n===`transform`?mr:ei;return this.attrTween(e,typeof t==`function`?(n.local?oi:ai)(n,r,$r(this,`attr.`+e,t)):t==null?(n.local?ni:ti)(n):(n.local?ii:ri)(n,r,t))}function ci(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function li(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function ui(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&li(e,i)),n}return i._value=t,i}function di(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&ci(e,i)),n}return i._value=t,i}function fi(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=A(e);return this.tween(n,(r.local?ui:di)(r,t))}function pi(e,t){return function(){Wr(this,e).delay=+t.apply(this,arguments)}}function mi(e,t){return t=+t,function(){Wr(this,e).delay=t}}function hi(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?pi:mi)(t,e)):Kr(this.node(),t).delay}function gi(e,t){return function(){Gr(this,e).duration=+t.apply(this,arguments)}}function _i(e,t){return t=+t,function(){Gr(this,e).duration=t}}function vi(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?gi:_i)(t,e)):Kr(this.node(),t).duration}function yi(e,t){if(typeof t!=`function`)throw Error();return function(){Gr(this,e).ease=t}}function bi(e){var t=this._id;return arguments.length?this.each(yi(t,e)):Kr(this.node(),t).ease}function xi(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();Gr(this,e).ease=n}}function Si(e){if(typeof e!=`function`)throw Error();return this.each(xi(this._id,e))}function Ci(e){typeof e!=`function`&&(e=z(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 Zi(r,this._parents,this._name,this._id)}function wi(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 Zi(o,this._parents,this._name,this._id)}function Ti(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 Ei(e,t,n){var r,i,a=Ti(t)?Wr:Gr;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Di(e,t){var n=this._id;return arguments.length<2?Kr(this.node(),n).on.on(e):this.each(Ei(n,e,t))}function Oi(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function ki(){return this.on(`end.remove`,Oi(this._id))}function Ai(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=ee(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,Ur(l[f],t,n,f,l,Kr(u,n)));return new Zi(a,this._parents,t,n)}function ji(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=ne(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=Kr(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&Ur(p,t,n,h,f,m);a.push(f),o.push(u)}return new Zi(a,o,t,n)}var Mi=Rt.prototype.constructor;function V(){return new Mi(this._groups,this._parents)}function Ni(e,t){var n,r,i;return function(){var a=Ge(this,e),o=(this.style.removeProperty(e),Ge(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function Pi(e){return function(){this.style.removeProperty(e)}}function Fi(e,t,n){var r,i=n+``,a;return function(){var o=Ge(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function Ii(e,t,n){var r,i,a;return function(){var o=Ge(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),Ge(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function Li(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=Gr(this,e),l=c.on,u=c.value[a]==null?s||=Pi(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function Ri(e,t,n){var r=(e+=``)==`transform`?pr:ei;return t==null?this.styleTween(e,Ni(e,r)).on(`end.style.`+e,Pi(e)):typeof t==`function`?this.styleTween(e,Ii(e,r,$r(this,`style.`+e,t))).each(Li(this._id,e)):this.styleTween(e,Fi(e,r,t),n).on(`end.style.`+e,null)}function zi(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Bi(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&zi(e,a,n)),r}return a._value=t,a}function Vi(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,Bi(e,t,n??``))}function Hi(e){return function(){this.textContent=e}}function Ui(e){return function(){var t=e(this);this.textContent=t??``}}function Wi(e){return this.tween(`text`,typeof e==`function`?Ui($r(this,`text`,e)):Hi(e==null?``:e+``))}function Gi(e){return function(t){this.textContent=e.call(this,t)}}function Ki(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&Gi(r)),t}return r._value=e,r}function qi(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,Ki(e))}function Ji(){for(var e=this._name,t=this._id,n=Qi(),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=Kr(c,t);Ur(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Zi(r,this._parents,e,n)}function Yi(){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=Gr(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 Xi=0;function Zi(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Qi(){return++Xi}var $i=Rt.prototype;Zi.prototype={constructor:Zi,select:Ai,selectAll:ji,selectChild:$i.selectChild,selectChildren:$i.selectChildren,filter:Ci,merge:wi,selection:V,transition:Ji,call:$i.call,nodes:$i.nodes,node:$i.node,size:$i.size,empty:$i.empty,each:$i.each,on:Di,attr:si,attrTween:fi,style:Ri,styleTween:Vi,text:Wi,textTween:qi,remove:ki,tween:Qr,delay:hi,duration:vi,ease:bi,easeVarying:Si,end:Yi,[Symbol.iterator]:$i[Symbol.iterator]};function ea(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var ta={time:null,delay:0,duration:250,ease:ea};function na(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function ra(e){var t,n;e instanceof Zi?(t=e._id,e=e._name):(t=Qi(),(n=ta).time=jr(),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])&&Ur(c,e,t,l,o,n||na(c,t));return new Zi(r,this._parents,e,t)}Rt.prototype.interrupt=Yr,Rt.prototype.transition=ra;var ia=e=>()=>e;function aa(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 oa(e,t,n){this.k=e,this.x=t,this.y=n}oa.prototype={constructor:oa,scale:function(e){return e===1?this:new oa(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new oa(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 sa=new oa(1,0,0);ca.prototype=oa.prototype;function ca(e){for(;!e.__zoom;)if(!(e=e.parentNode))return sa;return e.__zoom}function la(e){e.stopImmediatePropagation()}function ua(e){e.preventDefault(),e.stopImmediatePropagation()}function da(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function fa(){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 pa(){return this.__zoom||sa}function ma(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function ha(){return navigator.maxTouchPoints||`ontouchstart`in this}function ga(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 _a(){var e=da,t=fa,n=ga,r=ma,i=ha,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=yr,l=w(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,pa).on(`wheel.zoom`,T,{passive:!1}).on(`mousedown.zoom`,E).on(`dblclick.zoom`,D).filter(i).on(`touchstart.zoom`,O).on(`touchmove.zoom`,k).on(`touchend.zoom touchcancel.zoom`,A).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`,pa),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(sa.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 oa(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 oa(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 oa(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=Bt(this.that).datum();l.call(e,this.that,new aa(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function T(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=Ht(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)],Jr(this),s.start();ua(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 E(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=Bt(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=Ht(t,i),l=t.clientX,u=t.clientY;qt(t.view),la(t),a.mouse=[c,this.__zoom.invert(c)],Jr(this),a.start();function d(e){if(ua(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]=Ht(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),Jt(e.view,a.moved),ua(e),a.event(e).end()}}function D(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=Ht(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);ua(r),s>0?Bt(this).transition().duration(s).call(x,d,c,r):Bt(this).call(_.transform,d,c,r)}}function O(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(la(t),s=0;s<i;++s)c=r[s],l=Ht(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)),Jr(this),a.start())}}function k(e,...t){if(this.__zooming){var r=S(this,t).event(e),i=e.changedTouches,a=i.length,s,c,l,u;for(ua(e),s=0;s<a;++s)c=i[s],l=Ht(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 A(e,...t){if(this.__zooming){var n=S(this,t).event(e),r=e.changedTouches,i=r.length,a,o;for(la(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=Ht(o,this),Math.hypot(d[0]-o[0],d[1]-o[1])<g)){var s=Bt(this).on(`dblclick.zoom`);s&&s.apply(this,arguments)}}}return _.wheelDelta=function(e){return arguments.length?(r=typeof e==`function`?e:ia(+e),_):r},_.filter=function(t){return arguments.length?(e=typeof t==`function`?t:ia(!!t),_):e},_.touchable=function(e){return arguments.length?(i=typeof e==`function`?e:ia(!!e),_):i},_.extent=function(e){return arguments.length?(t=typeof e==`function`?e:ia([[+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 va={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.`},ya=[[-1/0,-1/0],[1/0,1/0]],ba=[`Enter`,` `,`Escape`],xa={"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`},Sa;(function(e){e.Strict=`strict`,e.Loose=`loose`})(Sa||={});var Ca;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(Ca||={});var wa;(function(e){e.Partial=`partial`,e.Full=`full`})(wa||={});var Ta={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},Ea;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(Ea||={});var Da;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(Da||={});var H;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(H||={});var Oa={[H.Left]:H.Right,[H.Right]:H.Left,[H.Top]:H.Bottom,[H.Bottom]:H.Top},ka=e=>!!e&&typeof e==`object`&&`id`in e&&`source`in e&&`target`in e,Aa=e=>!!e&&typeof e==`object`&&`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),ja=e=>!!e&&typeof e==`object`&&`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),Ma=(e,t=[0,0])=>{let{width:n,height:r}=G(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},Na=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};let n=!1,r=e.reduce((e,r)=>{let i=typeof r==`string`,a=!t.nodeLookup&&!i?r:void 0;return t.nodeLookup&&(a=i?t.nodeLookup.get(r):ja(r)?r:t.nodeLookup.get(r.id)),a?(n=!0,Ka(e,Xa(a,t.nodeOrigin))):e},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return n?Ja(r):{x:0,y:0,width:0,height:0}},Pa=(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=Ka(n,Xa(e)),r=!0)}),r?Ja(n):{x:0,y:0,width:0,height:0}},Fa=(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=Qa(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},Ia=(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 La(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}=G(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 Ra({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=lo(Pa(La(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 za({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`,va.error005());else{let{width:e,height:t}=G(s);e&&t&&(d=[[c,l],[c+e,l+t]])}}else s&&W(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=W(d)?Ha(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,va.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 Ba({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=Ia(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 Va=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Ha=(e={x:0,y:0},t,n)=>({x:Va(e.x,t[0][0],t[1][0]-(n?.width??0)),y:Va(e.y,t[0][1],t[1][1]-(n?.height??0))});function Ua(e,t,n){let{width:r,height:i}=G(n),{x:a,y:o}=n.internals.positionAbsolute;return Ha(e,[[a,o],[a+r,o+i]],t)}var Wa=(e,t,n)=>e<t?Va(Math.abs(e-t),1,t)/t:e>n?-Va(Math.abs(e-n),1,t)/t:0,Ga=(e,t,n=15,r=40)=>[Wa(e.x,r,t.width-r)*n,Wa(e.y,r,t.height-r)*n],Ka=(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)}),qa=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),Ja=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),Ya=(e,t=[0,0])=>{let{x:n,y:r}=ja(e)?e.internals.positionAbsolute:Ma(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}},Xa=(e,t=[0,0])=>{let{x:n,y:r}=ja(e)?e.internals.positionAbsolute:Ma(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)}},Za=(e,t)=>Ja(Ka(qa(e),qa(t))),Qa=(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)},$a=(e,t)=>Qa(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),eo=e=>to(e.width)&&to(e.height)&&to(e.x)&&to(e.y),to=e=>!isNaN(e)&&isFinite(e),no=(e,t)=>(e,t)=>{},ro=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),io=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?ro(s,o):s},ao=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function oo(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 so(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=oo(e,n),i=oo(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=oo(e.top??e.y??0,n),i=oo(e.bottom??e.y??0,n),a=oo(e.left??e.x??0,t),o=oo(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 co(e,t,n,r,i,a){let{x:o,y:s}=ao(e,[t,n,r]),{x:c,y:l}=ao({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 lo=(e,t,n,r,i,a)=>{let o=so(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=Va(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=co(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}},U=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function W(e){return e!=null&&e!==`parent`}function G(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function uo(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function fo(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 po(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function mo(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function ho(e){return{...xa,...e||{}}}function go(e){return e===null?null:e?`valid`:`invalid`}function _o(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=Co(e),s=io({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?ro(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var vo=e=>({width:e.offsetWidth,height:e.offsetHeight}),yo=e=>e?.getRootNode?.()||window?.document,bo=[`INPUT`,`SELECT`,`TEXTAREA`];function xo(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?bo.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var So=e=>`clientX`in e,Co=(e,t)=>{let n=So(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)}},wo=(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,...vo(t)}})};function To({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 Eo(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Do({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case H.Left:return[t-Eo(t-r,a),n];case H.Right:return[t+Eo(r-t,a),n];case H.Top:return[t,n-Eo(n-i,a)];case H.Bottom:return[t,n+Eo(i-n,a)]}}function Oo({sourceX:e,sourceY:t,sourcePosition:n=H.Bottom,targetX:r,targetY:i,targetPosition:a=H.Top,curvature:o=.25}){let[s,c]=Do({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=Do({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=To({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 ko({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 Ao({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 jo({sourceNode:e,targetNode:t,width:n,height:r,transform:i}){let a=Ka(Xa(e),Xa(t));return a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1),$a({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},Ja(a))>0}var Mo=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,No=(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)),Po=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,va.error006()),t;let r=n.getEdgeId||Mo,i;return i=ka(e)?{...e}:{...e,id:r(e)},No(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function Fo({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=ko({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var Io={[H.Left]:{x:-1,y:0},[H.Right]:{x:1,y:0},[H.Top]:{x:0,y:-1},[H.Bottom]:{x:0,y:1}},Lo=({source:e,sourcePosition:t=H.Bottom,target:n})=>t===H.Left||t===H.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},Ro=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function zo({source:e,sourcePosition:t=H.Bottom,target:n,targetPosition:r=H.Top,center:i,offset:a,stepPosition:o}){let s=Io[t],c=Io[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=Lo({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]=ko({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 Bo(e,t,n,r){let i=Math.min(Ro(e,t)/2,Ro(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 Vo({sourceX:e,sourceY:t,sourcePosition:n=H.Bottom,targetX:r,targetY:i,targetPosition:a=H.Top,borderRadius:o=5,centerX:s,centerY:c,offset:l=20,stepPosition:u=.5}){let[d,f,p,m,h]=zo({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+=Bo(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 Ho(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function Uo(e){let{sourceNode:t,targetNode:n}=e;if(!Ho(t)||!Ho(n))return null;let r=t.internals.handleBounds||Wo(t.handles),i=n.internals.handleBounds||Wo(n.handles),a=Ko(r?.source??[],e.sourceHandle),o=Ko(e.connectionMode===Sa.Strict?i?.target??[]:(i?.target??[]).concat(i?.source??[]),e.targetHandle);if(!a||!o)return e.onError?.(`008`,va.error008(a?`target`:`source`,{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let s=a?.position||H.Bottom,c=o?.position||H.Top,l=Go(t,a,s),u=Go(n,o,c);return{sourceX:l.x,sourceY:l.y,targetX:u.x,targetY:u.y,sourcePosition:s,targetPosition:c}}function Wo(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 Go(e,t,n=H.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??G(e);if(r)return{x:i+o/2,y:a+s/2};switch(t?.position??n){case H.Top:return{x:i+o/2,y:a};case H.Right:return{x:i+o,y:a+s/2};case H.Bottom:return{x:i+o/2,y:a+s};case H.Left:return{x:i,y:a+s/2}}}function Ko(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function qo(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function Jo(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=qo(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 Yo=1e3,Xo=10,Zo={nodeOrigin:[0,0],nodeExtent:ya,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},Qo={...Zo,checkEquality:!0};function $o(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function es(e,t,n){let r=$o(Zo,n);for(let n of e.values())if(n.parentId)as(n,e,t,r);else{let e=Ha(Ma(n,r.nodeOrigin),W(n.extent)?n.extent:r.nodeExtent,G(n));n.internals.positionAbsolute=e}}function ts(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 ns(e){return e===`manual`}function rs(e,t,n,r={}){let i=$o(Qo,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!ns(i.zIndexMode)?Yo: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=Ha(Ma(u,i.nodeOrigin),W(u.extent)?u.extent:i.nodeExtent,G(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:ts(u,e),z:os(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&&as(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function is(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 as(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=$o(Zo,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}is(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*Xo),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=ss(e,u,o,s,a&&!ns(c)?Yo: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 os(e,t,n){let r=to(e.zIndex)?e.zIndex:0;return ns(n)?r:r+(e.selected?t:0)}function ss(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=G(e),l=Ma(e,n),u=W(e.extent)?Ha(l,e.extent,c):l,d=Ha({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=Ua(d,c,t));let f=os(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function cs(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=Za(a.get(n.parentId)?.expandedRect??Ya(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=G(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 ls(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=vo(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=W(e.extent)?e.extent:a,{positionAbsolute:h}=e.internals;if(e.parentId&&e.extent===`parent`){let n=t.get(e.parentId);n&&(h=Ua(h,s,n))}else m&&(h=Ha(h,m,s));let g={...e,measured:s,internals:{...e.internals,positionAbsolute:h,handleBounds:{source:wo(`source`,r.nodeElement,p,d,e.id),target:wo(`target`,r.nodeElement,p,d,e.id)}}};t.set(e.id,g),e.parentId&&as(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:Ya(g,i)}))}}if(f.length>0){let e=cs(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function us({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 ds(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 fs(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}`;ds(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),ds(`target`,s,c,e,i,o),t.set(r.id,r)}}function ps(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:ps(n,t):!1}function ms(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 hs(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!ps(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 gs({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 _s({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=ro(a,t);return{x:o.x-a.x,y:o.y-a.y}}function vs({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=Bt(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?qa(Pa(s)):null,x=v&&l?_s({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)}:ro(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}=za({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]=gs({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]=Ga(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=_o(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=hs(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=gs({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=tn().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=_o(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=Co(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=_o(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=Co(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=Co(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]=gs({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||!ms(t,`.${g}`,v))&&(!_||ms(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function ys(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())$a(i,Ya(e))>0&&r.push(e);return r}var bs=250;function xs(e,t,n,r){let i=[],a=1/0,o=ys(e,n,t+bs);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}=Go(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 Ss(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,...Go(o,c,c.position,!0)}:c}function Cs(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function ws(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var Ts=()=>!0;function Es(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:_=Ts,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=yo(e.target),E=0,D,{x:O,y:k}=Co(e),A=Cs(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let N=Ss(i,A,r,c,t);if(!N)return;let P=Co(e,j),ee=!1,F=null,I=!1,te=null;function ne(){if(!u||!j)return;let[e,t]=Ga(P,j,S);f({x:e,y:t}),E=requestAnimationFrame(ne)}let L={...N,nodeId:i,type:A,position:N.position},R=c.get(i),z={inProgress:!0,isValid:null,from:Go(R,L,H.Left,!0),fromHandle:L,fromPosition:L.position,fromNode:R,to:P,toHandle:null,toPosition:Oa[L.position],toNode:null,pointer:P};function B(){M=!0,y(z),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&B();function re(e){if(!M){let{x:t,y:n}=Co(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;B()}if(!x()||!L){ie(e);return}let a=b();P=Co(e,j),D=xs(io(P,a,!1,[1,1]),n,c,L),ee||=(ne(),!0);let s=Ds(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});te=s.handleDomNode,F=s.connection,I=ws(!!D,s.isValid);let u=c.get(i),f=u?Go(u,L,H.Left,!0):z.from,p={...z,from:f,isValid:I,to:s.toHandle&&I?ao({x:s.toHandle.x,y:s.toHandle.y},a):P,toHandle:s.toHandle,toPosition:I&&s.toHandle?s.toHandle.position:Oa[L.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:P};y(p),z=p}function ie(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||te)&&F&&I&&h?.(F);let{inProgress:t,...n}=z,r={...n,toPosition:z.toHandle?z.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),ee=!1,I=!1,F=null,te=null,T.removeEventListener(`mousemove`,re),T.removeEventListener(`mouseup`,ie),T.removeEventListener(`touchmove`,re),T.removeEventListener(`touchend`,ie)}}T.addEventListener(`mousemove`,re),T.addEventListener(`mouseup`,ie),T.addEventListener(`touchmove`,re),T.addEventListener(`touchend`,ie)}function Ds(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=Ts,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}=Co(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=Cs(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===Sa.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=Ss(t,e,a,u,n,!0)}return _}var Os={onPointerDown:Es,isValid:Ds};function ks({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=Bt(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&&U()?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=_a().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:Ht}}var As=e=>({x:e.x,y:e.y,zoom:e.k}),js=({x:e,y:t,zoom:n})=>sa.translate(e,t).scale(n),Ms=(e,t)=>e.target.closest(`.${t}`),Ns=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Ps=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Fs=(e,t=0,n=Ps,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},Is=e=>{let t=e.ctrlKey&&U()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Ls({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(Ms(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=Ht(u),t=d*2**Is(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===Ca.Vertical?0:u.deltaX*f,m=i===Ca.Horizontal?0:u.deltaY*f;!U()&&u.shiftKey&&i!==Ca.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=As(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 Rs({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=Ms(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function zs({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=As(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 Bs({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&Ns(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,As(a.transform))}}function Vs({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&Ns(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=As(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function Hs({panActivationKeyPressed:e,zoomActivationKeyPressed:t,zoomOnScroll:n,zoomOnPinch:r,panOnDrag:i,panOnScroll:a,zoomOnDoubleClick:o,userSelectionActive:s,noWheelClassName:c,noPanClassName:l,lib:u,connectionInProgress:d}){return f=>{let p=t||n,m=r&&f.ctrlKey,h=f.type===`wheel`;if(f.button===1&&f.type===`mousedown`&&(Ms(f,`${u}-flow__node`)||Ms(f,`${u}-flow__edge`)||Ms(f,`${u}-flow__selection`)||Ms(f,`${u}-flow__nodesselection`)))return!0;if(!i&&!p&&!a&&!o&&!r||s||d&&!h||Ms(f,c)&&h||Ms(f,l)&&(!h||a&&h&&!t)||!r&&f.ctrlKey&&h)return!1;if(!r&&f.type===`touchstart`&&f.touches?.length>1)return f.preventDefault(),!1;if(!p&&!a&&!m&&h||!i&&(f.type===`mousedown`||f.type===`touchstart`)||Array.isArray(i)&&!i.includes(f.button)&&f.type===`mousedown`)return!1;let g=Array.isArray(i)&&i.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||h||e)&&g}}function Us({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=_a().extent(()=>d).scaleExtent([t,n]).translateExtent(r),p=Bt(e).call(f);y({x:i.x,y:i.y,zoom:Va(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta(Is);async function g(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?ar:yr).transform(Fs(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,panActivationKeyPressed:S=!1,zoomActivationKeyPressed:C,lib:w,onTransformChange:T,connectionInProgress:E,paneClickDistance:D,selectionOnDrag:O}){r&&!l.isZoomingOrPanning&&v();let k=i&&!C&&!r;f.clickDistance(O?1/0:!to(D)||D<0?0:D);let A=k?Ls({zoomPanValues:l,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):Rs({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});p.on(`wheel.zoom`,A,{passive:!1});let j=zs({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});f.on(`start`,j);let M=Bs({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:T});f.on(`zoom`,M);let N=Vs({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});f.on(`end`,N);let P=Hs({panActivationKeyPressed:S,zoomActivationKeyPressed:C,panOnDrag:u,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:w,connectionInProgress:E});f.filter(P),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=js(e),i=f?.constrain()(r,t,n);return i&&await g(i),i}async function b(e,t){let n=js(e);return await g(n,t),n}function x(e){if(p){let t=js(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?ca(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`?ar:yr).scaleTo(Fs(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function w(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?ar:yr).scaleBy(Fs(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=!to(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 Ws;(function(e){e.Line=`line`,e.Handle=`handle`})(Ws||={});function Gs({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 Ks(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 qs(e,t){return Math.max(0,t-e)}function Js(e,t){return Math.max(0,e-t)}function Ys(e,t,n){return Math.max(0,t-e,e-n)}function Xs(e,t){return e?!t:t}function Zs(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=Ys(E,h,g),j=Ys(D,_,v);if(o){let e=0,t=0;c&&w<0?e=qs(y+w+O,o[0][0]):!c&&w>0&&(e=Js(y+E+O,o[1][0])),l&&T<0?t=qs(b+T+k,o[0][1]):!l&&T>0&&(t=Js(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=Js(y+w,s[0][0]):!c&&w<0&&(e=qs(y+E,s[1][0])),l&&T>0?t=Js(b+T,s[0][1]):!l&&T<0&&(t=qs(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=Ys(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?Js(b+k+E/C,o[1][1])*C:qs(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?qs(b+E/C,s[1][1])*C:Js(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=Ys(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?Js(y+D*C+O,o[1][0])/C:qs(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?qs(y+D*C,s[1][0])/C:Js(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=(Xs(c,l)?-w:w)/C:w=(Xs(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,N=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)+N}}var Qs={width:0,height:0,x:0,y:0},$s={...Qs,pointerX:0,pointerY:0,aspectRatio:1};function ec(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 tc({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=Bt(e),o={controlDirection:Ks(`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={...Qs},h={...$s};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:Ks(e)};let g,_=null,v=[],y,b,x,S=!1,C=tn().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}=_o(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=W(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=ec(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=_o(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}=Zs(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,E,b,x),j=D!==C,M=O!==w,N=k!==u&&j,P=A!==f&&M;if(!N&&!P&&!j&&!M)return;if((N||P||E[0]===1||E[1]===1)&&(T.x=N?k:m.x,T.y=P?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 ee=Gs({width:m.width,prevWidth:C,height:m.height,prevHeight:w,affectsX:o.controlDirection.affectsX,affectsY:o.controlDirection.affectsY}),F={...m,direction:ee};p?.(e,F)!==!1&&(S=!0,d?.(e,F),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 nc=o((e=>{var t=u();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,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(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:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),rc=o(((e,t)=>{t.exports=nc()})),ic=o((e=>{var t=u(),n=rc();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),ac=c(o(((e,t)=>{t.exports=ic()}))(),1),oc=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},sc=e=>e?oc(e):oc,{useDebugValue:cc}=y.default,{useSyncExternalStoreWithSelector:lc}=ac.default,uc=e=>e;function dc(e,t=uc,n){let r=lc(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return cc(r),r}var fc=(e,t)=>{let n=sc(e),r=(e,r=t)=>dc(n,e,r);return Object.assign(r,n),r},pc=(e,t)=>e?fc(e,t):fc;function mc(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 hc=m(),gc=(0,y.createContext)(null),_c=gc.Provider,vc=va.error001(`react`);function K(e,t){let n=(0,y.useContext)(gc);if(n===null)throw Error(vc);return dc(n,e,t)}function yc(){let e=(0,y.useContext)(gc);if(e===null)throw Error(vc);return(0,y.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var bc={display:`none`},xc={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},Sc=`react-flow__node-desc`,Cc=`react-flow__edge-desc`,wc=`react-flow__aria-live`,Tc=e=>e.ariaLiveMessage,Ec=e=>e.ariaLabelConfig;function Dc({rfId:e}){let t=K(Tc);return(0,x.jsx)(`div`,{id:`${wc}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:xc,children:t})}function Oc({rfId:e,disableKeyboardA11y:t}){let n=K(Ec);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`div`,{id:`${Sc}-${e}`,style:bc,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,x.jsx)(`div`,{id:`${Cc}-${e}`,style:bc,children:n[`edge.a11yDescription.default`]}),!t&&(0,x.jsx)(Dc,{rfId:e})]})}var kc=(0,y.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>{let o=`${e}`.split(`-`);return(0,x.jsx)(`div`,{className:S([`react-flow__panel`,n,...o]),style:r,ref:a,...i,children:t})});kc.displayName=`Panel`;var Ac=`https://reactflow.dev?utm_source=attribution`;function jc({proOptions:e,position:t=`bottom-right`}){return(0,y.useEffect)(()=>{},[]),e?.hideAttribution?null:(0,x.jsx)(kc,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Ac}`,children:(0,x.jsx)(`a`,{href:Ac,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var Mc=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}},Nc=e=>e.id;function Pc(e,t){return mc(e.selectedNodes.map(Nc),t.selectedNodes.map(Nc))&&mc(e.selectedEdges.map(Nc),t.selectedEdges.map(Nc))}function Fc({onSelectionChange:e}){let t=yc(),{selectedNodes:n,selectedEdges:r}=K(Mc,Pc);return(0,y.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var Ic=e=>!!e.onSelectionChangeHandlers;function Lc({onSelectionChange:e}){let t=K(Ic);return e||t?(0,x.jsx)(Fc,{onSelectionChange:e}):null}var Rc=[0,0],zc={x:0,y:0,zoom:1},Bc=[...`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`],Vc=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}),Hc={translateExtent:ya,nodeOrigin:Rc,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function Uc(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=K(Vc,mc),l=yc();(0,y.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=Hc,s()}),[]);let u=(0,y.useRef)(Hc);return(0,y.useEffect)(()=>{for(let s of Bc){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:ho(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},Bc.map(t=>e[t])),null}function Wc(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function Gc(e){let[t,n]=(0,y.useState)(e===`system`?null:e);return(0,y.useEffect)(()=>{if(e!==`system`){n(e);return}let t=Wc(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?Wc()?.matches?`dark`:`light`:t}var Kc=typeof document<`u`?document:null;function qc(e=null,t={target:Kc,actInsideInputWithModifier:!0}){let[n,r]=(0,y.useState)(!1),i=(0,y.useRef)(!1),a=(0,y.useRef)(new Set([])),[o,s]=(0,y.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(/\+/g,`
230
+ `+e.stack}}var ve=Object.prototype.hasOwnProperty,ye=t.unstable_scheduleCallback,be=t.unstable_cancelCallback,xe=t.unstable_shouldYield,Se=t.unstable_requestPaint,Ce=t.unstable_now,we=t.unstable_getCurrentPriorityLevel,Te=t.unstable_ImmediatePriority,Ee=t.unstable_UserBlockingPriority,De=t.unstable_NormalPriority,Oe=t.unstable_LowPriority,ke=t.unstable_IdlePriority,Ae=t.log,je=t.unstable_setDisableYieldValue,Me=null,Ne=null;function Pe(e){if(typeof Ae==`function`&&je(e),Ne&&typeof Ne.setStrictMode==`function`)try{Ne.setStrictMode(Me,e)}catch{}}var Fe=Math.clz32?Math.clz32:Re,Ie=Math.log,Le=Math.LN2;function Re(e){return e>>>=0,e===0?32:31-(Ie(e)/Le|0)|0}var ze=256,Be=262144,Ve=4194304;function He(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Ue(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=He(n))):i=He(o):i=He(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=He(n))):i=He(o)):i=He(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function We(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Ge(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ke(){var e=Ve;return Ve<<=1,!(Ve&62914560)&&(Ve=4194304),e}function qe(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Je(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ye(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0<n;){var u=31-Fe(n),d=1<<u;s[u]=0,c[u]=-1;var f=l[u];if(f!==null)for(l[u]=null,u=0;u<f.length;u++){var p=f[u];p!==null&&(p.lane&=-536870913)}n&=~d}r!==0&&Xe(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function Xe(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Fe(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function Ze(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Fe(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function Qe(e,t){var n=t&-t;return n=n&42?1:$e(n),(n&(e.suspendedLanes|t))===0?n:0}function $e(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function et(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function tt(){var e=I.p;return e===0?(e=window.event,e===void 0?32:_p(e.type)):e}function nt(e,t){var n=I.p;try{return I.p=e,t()}finally{I.p=n}}var rt=Math.random().toString(36).slice(2),it=`__reactFiber$`+rt,at=`__reactProps$`+rt,ot=`__reactContainer$`+rt,st=`__reactEvents$`+rt,ct=`__reactListeners$`+rt,lt=`__reactHandles$`+rt,ut=`__reactResources$`+rt,dt=`__reactMarker$`+rt;function ft(e){delete e[it],delete e[at],delete e[st],delete e[ct],delete e[lt]}function pt(e){var t=e[it];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ot]||n[it]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=gf(e);e!==null;){if(n=e[it])return n;e=gf(e)}return t}e=n,n=e.parentNode}return null}function mt(e){if(e=e[it]||e[ot]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function ht(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(i(33))}function gt(e){var t=e[ut];return t||=e[ut]={hoistableStyles:new Map,hoistableScripts:new Map},t}function _t(e){e[dt]=!0}var vt=new Set,yt={};function bt(e,t){xt(e,t),xt(e+`Capture`,t)}function xt(e,t){for(yt[e]=t,e=0;e<t.length;e++)vt.add(t[e])}var St=RegExp(`^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$`),Ct={},wt={};function Tt(e){return ve.call(wt,e)?!0:ve.call(Ct,e)?!1:St.test(e)?wt[e]=!0:(Ct[e]=!0,!1)}function Et(e,t,n){if(Tt(t)){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,``+n)}}}function Dt(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,``+n)}}function Ot(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,``+r)}}function kt(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function At(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function jt(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&r!==void 0&&typeof r.get==`function`&&typeof r.set==`function`){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Mt(e){if(!e._valueTracker){var t=At(e)?`checked`:`value`;e._valueTracker=jt(e,t,``+e[t])}}function Nt(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=At(e)?e.checked?`true`:`false`:e.value),e=r,e!==n&&(t.setValue(e),!0)}function Pt(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}var Ft=/[\n"\\]/g;function It(e){return e.replace(Ft,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function Lt(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+kt(t)):e.value!==``+kt(t)&&(e.value=``+kt(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):zt(e,o,kt(n)):zt(e,o,kt(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+kt(s):e.removeAttribute(`name`)}function Rt(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null)){Mt(e);return}n=n==null?``:``+kt(n),t=t==null?n:``+kt(t),s||t===e.value||(e.value=t),e.defaultValue=t}r??=i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o),Mt(e)}function zt(e,t,n){t===`number`&&Pt(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function Bt(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+kt(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function Vt(e,t,n){if(t!=null&&(t=``+kt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+kt(n)}function Ht(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(i(92));if(ee(r)){if(1<r.length)throw Error(i(93));r=r[0]}n=r}n??=``,t=n}n=kt(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),Mt(e)}function Ut(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Wt=new Set(`animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp`.split(` `));function Gt(e,t,n){var r=t.indexOf(`--`)===0;n==null||typeof n==`boolean`||n===``?r?e.setProperty(t,``):t===`float`?e.cssFloat=``:e[t]=``:r?e.setProperty(t,n):typeof n!=`number`||n===0||Wt.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function Kt(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(i(62));if(e=e.style,n!=null){for(var r in n)!n.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf(`--`)===0?e.setProperty(r,``):r===`float`?e.cssFloat=``:e[r]=``);for(var a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&Gt(e,a,r)}else for(var o in t)t.hasOwnProperty(o)&&Gt(e,o,t[o])}function qt(e){if(e.indexOf(`-`)===-1)return!1;switch(e){case`annotation-xml`:case`color-profile`:case`font-face`:case`font-face-src`:case`font-face-uri`:case`font-face-format`:case`font-face-name`:case`missing-glyph`:return!1;default:return!0}}var Jt=new Map([[`acceptCharset`,`accept-charset`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`],[`crossOrigin`,`crossorigin`],[`accentHeight`,`accent-height`],[`alignmentBaseline`,`alignment-baseline`],[`arabicForm`,`arabic-form`],[`baselineShift`,`baseline-shift`],[`capHeight`,`cap-height`],[`clipPath`,`clip-path`],[`clipRule`,`clip-rule`],[`colorInterpolation`,`color-interpolation`],[`colorInterpolationFilters`,`color-interpolation-filters`],[`colorProfile`,`color-profile`],[`colorRendering`,`color-rendering`],[`dominantBaseline`,`dominant-baseline`],[`enableBackground`,`enable-background`],[`fillOpacity`,`fill-opacity`],[`fillRule`,`fill-rule`],[`floodColor`,`flood-color`],[`floodOpacity`,`flood-opacity`],[`fontFamily`,`font-family`],[`fontSize`,`font-size`],[`fontSizeAdjust`,`font-size-adjust`],[`fontStretch`,`font-stretch`],[`fontStyle`,`font-style`],[`fontVariant`,`font-variant`],[`fontWeight`,`font-weight`],[`glyphName`,`glyph-name`],[`glyphOrientationHorizontal`,`glyph-orientation-horizontal`],[`glyphOrientationVertical`,`glyph-orientation-vertical`],[`horizAdvX`,`horiz-adv-x`],[`horizOriginX`,`horiz-origin-x`],[`imageRendering`,`image-rendering`],[`letterSpacing`,`letter-spacing`],[`lightingColor`,`lighting-color`],[`markerEnd`,`marker-end`],[`markerMid`,`marker-mid`],[`markerStart`,`marker-start`],[`overlinePosition`,`overline-position`],[`overlineThickness`,`overline-thickness`],[`paintOrder`,`paint-order`],[`panose-1`,`panose-1`],[`pointerEvents`,`pointer-events`],[`renderingIntent`,`rendering-intent`],[`shapeRendering`,`shape-rendering`],[`stopColor`,`stop-color`],[`stopOpacity`,`stop-opacity`],[`strikethroughPosition`,`strikethrough-position`],[`strikethroughThickness`,`strikethrough-thickness`],[`strokeDasharray`,`stroke-dasharray`],[`strokeDashoffset`,`stroke-dashoffset`],[`strokeLinecap`,`stroke-linecap`],[`strokeLinejoin`,`stroke-linejoin`],[`strokeMiterlimit`,`stroke-miterlimit`],[`strokeOpacity`,`stroke-opacity`],[`strokeWidth`,`stroke-width`],[`textAnchor`,`text-anchor`],[`textDecoration`,`text-decoration`],[`textRendering`,`text-rendering`],[`transformOrigin`,`transform-origin`],[`underlinePosition`,`underline-position`],[`underlineThickness`,`underline-thickness`],[`unicodeBidi`,`unicode-bidi`],[`unicodeRange`,`unicode-range`],[`unitsPerEm`,`units-per-em`],[`vAlphabetic`,`v-alphabetic`],[`vHanging`,`v-hanging`],[`vIdeographic`,`v-ideographic`],[`vMathematical`,`v-mathematical`],[`vectorEffect`,`vector-effect`],[`vertAdvY`,`vert-adv-y`],[`vertOriginX`,`vert-origin-x`],[`vertOriginY`,`vert-origin-y`],[`wordSpacing`,`word-spacing`],[`writingMode`,`writing-mode`],[`xmlnsXlink`,`xmlns:xlink`],[`xHeight`,`x-height`]]),Yt=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Xt(e){return Yt.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function Zt(){}var Qt=null;function $t(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var en=null,tn=null;function nn(e){var t=mt(e);if(t&&(e=t.stateNode)){var n=e[at]||null;a:switch(e=t.stateNode,t.type){case`input`:if(Lt(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name="`+It(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[at]||null;if(!a)throw Error(i(90));Lt(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&Nt(r)}break a;case`textarea`:Vt(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&Bt(e,!!n.multiple,t,!1)}}}var rn=!1;function an(e,t,n){if(rn)return e(t,n);rn=!0;try{return e(t)}finally{if(rn=!1,(en!==null||tn!==null)&&(Cu(),en&&(t=en,e=tn,tn=en=null,nn(t),e)))for(t=0;t<e.length;t++)nn(e[t])}}function on(e,t){var n=e.stateNode;if(n===null)return null;var r=n[at]||null;if(r===null)return null;n=r[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(r=!r.disabled)||(e=e.type,r=e!==`button`&&e!==`input`&&e!==`select`&&e!==`textarea`),e=!r;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(i(231,t,typeof n));return n}var sn=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),cn=!1;if(sn)try{var ln={};Object.defineProperty(ln,"passive",{get:function(){cn=!0}}),window.addEventListener(`test`,ln,ln),window.removeEventListener(`test`,ln,ln)}catch{cn=!1}var un=null,dn=null,fn=null;function pn(){if(fn)return fn;var e,t=dn,n=t.length,r,i=`value`in un?un.value:un.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return fn=i.slice(e,1<r?1-r:void 0)}function mn(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function hn(){return!0}function gn(){return!1}function _n(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?hn:gn,this.isPropagationStopped=gn,this}return h(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=hn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=hn)},persist:function(){},isPersistent:hn}),t}var vn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},yn=_n(vn),bn=h({},vn,{view:0,detail:0}),xn=_n(bn),Sn,Cn,wn,Tn=h({},bn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:In,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==wn&&(wn&&e.type===`mousemove`?(Sn=e.screenX-wn.screenX,Cn=e.screenY-wn.screenY):Cn=Sn=0,wn=e),Sn)},movementY:function(e){return`movementY`in e?e.movementY:Cn}}),En=_n(Tn),Dn=_n(h({},Tn,{dataTransfer:0})),On=_n(h({},bn,{relatedTarget:0})),kn=_n(h({},vn,{animationName:0,elapsedTime:0,pseudoElement:0})),An=_n(h({},vn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),jn=_n(h({},vn,{data:0})),Mn={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},Nn={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},Pn={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function Fn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Pn[e])?!!t[e]:!1}function In(){return Fn}var Ln=_n(h({},bn,{key:function(e){if(e.key){var t=Mn[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=mn(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?Nn[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:In,charCode:function(e){return e.type===`keypress`?mn(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?mn(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),Rn=_n(h({},Tn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),zn=_n(h({},bn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:In})),Bn=_n(h({},vn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Vn=_n(h({},Tn,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),Hn=_n(h({},vn,{newState:0,oldState:0})),Un=[9,13,27,32],Wn=sn&&`CompositionEvent`in window,Gn=null;sn&&`documentMode`in document&&(Gn=document.documentMode);var Kn=sn&&`TextEvent`in window&&!Gn,qn=sn&&(!Wn||Gn&&8<Gn&&11>=Gn),Jn=` `,Yn=!1;function Xn(e,t){switch(e){case`keyup`:return Un.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Zn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Qn=!1;function $n(e,t){switch(e){case`compositionend`:return Zn(t);case`keypress`:return t.which===32?(Yn=!0,Jn):null;case`textInput`:return e=t.data,e===Jn&&Yn?null:e;default:return null}}function er(e,t){if(Qn)return e===`compositionend`||!Wn&&Xn(e,t)?(e=pn(),fn=dn=un=null,Qn=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return qn&&t.locale!==`ko`?null:t.data;default:return null}}var tr={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function nr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!tr[e.type]:t===`textarea`}function rr(e,t,n,r){en?tn?tn.push(r):tn=[r]:en=r,t=Ad(t,`onChange`),0<t.length&&(n=new yn(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var ir=null,ar=null;function or(e){Cd(e,0)}function sr(e){if(Nt(ht(e)))return e}function cr(e,t){if(e===`change`)return t}var lr=!1;if(sn){var ur;if(sn){var dr=`oninput`in document;if(!dr){var fr=document.createElement(`div`);fr.setAttribute(`oninput`,`return;`),dr=typeof fr.oninput==`function`}ur=dr}else ur=!1;lr=ur&&(!document.documentMode||9<document.documentMode)}function pr(){ir&&(ir.detachEvent(`onpropertychange`,mr),ar=ir=null)}function mr(e){if(e.propertyName===`value`&&sr(ar)){var t=[];rr(t,ar,e,$t(e)),an(or,t)}}function hr(e,t,n){e===`focusin`?(pr(),ir=t,ar=n,ir.attachEvent(`onpropertychange`,mr)):e===`focusout`&&pr()}function gr(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return sr(ar)}function _r(e,t){if(e===`click`)return sr(t)}function vr(e,t){if(e===`input`||e===`change`)return sr(t)}function yr(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var br=typeof Object.is==`function`?Object.is:yr;function xr(e,t){if(br(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!ve.call(t,i)||!br(e[i],t[i]))return!1}return!0}function Sr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Cr(e,t){var n=Sr(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Sr(n)}}function wr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?wr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Tr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Pt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Pt(e.document)}return t}function Er(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Dr=sn&&`documentMode`in document&&11>=document.documentMode,Or=null,kr=null,Ar=null,jr=!1;function Mr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;jr||Or==null||Or!==Pt(r)||(r=Or,`selectionStart`in r&&Er(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ar&&xr(Ar,r)||(Ar=r,r=Ad(kr,`onSelect`),0<r.length&&(t=new yn(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=Or)))}function Nr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var Pr={animationend:Nr(`Animation`,`AnimationEnd`),animationiteration:Nr(`Animation`,`AnimationIteration`),animationstart:Nr(`Animation`,`AnimationStart`),transitionrun:Nr(`Transition`,`TransitionRun`),transitionstart:Nr(`Transition`,`TransitionStart`),transitioncancel:Nr(`Transition`,`TransitionCancel`),transitionend:Nr(`Transition`,`TransitionEnd`)},Fr={},Ir={};sn&&(Ir=document.createElement(`div`).style,`AnimationEvent`in window||(delete Pr.animationend.animation,delete Pr.animationiteration.animation,delete Pr.animationstart.animation),`TransitionEvent`in window||delete Pr.transitionend.transition);function Lr(e){if(Fr[e])return Fr[e];if(!Pr[e])return e;var t=Pr[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Ir)return Fr[e]=t[n];return e}var Rr=Lr(`animationend`),zr=Lr(`animationiteration`),Br=Lr(`animationstart`),Vr=Lr(`transitionrun`),Hr=Lr(`transitionstart`),Ur=Lr(`transitioncancel`),Wr=Lr(`transitionend`),Gr=new Map,Kr=`abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel`.split(` `);Kr.push(`scrollEnd`);function qr(e,t){Gr.set(e,t),bt(t,[e])}var Jr=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)},Yr=[],Xr=0,Zr=0;function Qr(){for(var e=Xr,t=Zr=Xr=0;t<e;){var n=Yr[t];Yr[t++]=null;var r=Yr[t];Yr[t++]=null;var i=Yr[t];Yr[t++]=null;var a=Yr[t];if(Yr[t++]=null,r!==null&&i!==null){var o=r.pending;o===null?i.next=i:(i.next=o.next,o.next=i),r.pending=i}a!==0&&ni(n,i,a)}}function $r(e,t,n,r){Yr[Xr++]=e,Yr[Xr++]=t,Yr[Xr++]=n,Yr[Xr++]=r,Zr|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function ei(e,t,n,r){return $r(e,t,n,r),ri(e)}function ti(e,t){return $r(e,null,null,t),ri(e)}function ni(e,t,n){e.lanes|=n;var r=e.alternate;r!==null&&(r.lanes|=n);for(var i=!1,a=e.return;a!==null;)a.childLanes|=n,r=a.alternate,r!==null&&(r.childLanes|=n),a.tag===22&&(e=a.stateNode,e===null||e._visibility&1||(i=!0)),e=a,a=a.return;return e.tag===3?(a=e.stateNode,i&&t!==null&&(i=31-Fe(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function ri(e){if(50<mu)throw mu=0,hu=null,Error(i(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var ii={};function ai(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function oi(e,t,n,r){return new ai(e,t,n,r)}function si(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ci(e,t){var n=e.alternate;return n===null?(n=oi(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function li(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function ui(e,t,n,r,a,o){var s=0;if(r=e,typeof e==`function`)si(e)&&(s=1);else if(typeof e==`string`)s=X(e,n,re.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(e){case k:return e=oi(31,n,t,a),e.elementType=k,e.lanes=o,e;case y:return di(n.children,a,o,t);case b:s=8,a|=24;break;case x:return e=oi(12,n,t,a|2),e.elementType=x,e.lanes=o,e;case T:return e=oi(13,n,t,a),e.elementType=T,e.lanes=o,e;case E:return e=oi(19,n,t,a),e.elementType=E,e.lanes=o,e;default:if(typeof e==`object`&&e)switch(e.$$typeof){case C:s=10;break a;case S:s=9;break a;case w:s=11;break a;case D:s=14;break a;case O:s=16,r=null;break a}s=29,n=Error(i(130,e===null?`null`:typeof e,``)),r=null}return t=oi(s,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function di(e,t,n,r){return e=oi(7,e,r,t),e.lanes=n,e}function fi(e,t,n){return e=oi(6,e,null,t),e.lanes=n,e}function pi(e){var t=oi(18,null,null,0);return t.stateNode=e,t}function mi(e,t,n){return t=oi(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var hi=new WeakMap;function gi(e,t){if(typeof e==`object`&&e){var n=hi.get(e);return n===void 0?(t={value:e,source:t,stack:_e(t)},hi.set(e,t),t):n}return{value:e,source:t,stack:_e(t)}}var _i=[],vi=0,yi=null,bi=0,xi=[],Si=0,Ci=null,wi=1,Ti=``;function Ei(e,t){_i[vi++]=bi,_i[vi++]=yi,yi=e,bi=t}function Di(e,t,n){xi[Si++]=wi,xi[Si++]=Ti,xi[Si++]=Ci,Ci=e;var r=wi;e=Ti;var i=32-Fe(r)-1;r&=~(1<<i),n+=1;var a=32-Fe(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,wi=1<<32-Fe(t)+i|n<<i|r,Ti=a+e}else wi=1<<a|n<<i|r,Ti=e}function Oi(e){e.return!==null&&(Ei(e,1),Di(e,1,0))}function ki(e){for(;e===yi;)yi=_i[--vi],_i[vi]=null,bi=_i[--vi],_i[vi]=null;for(;e===Ci;)Ci=xi[--Si],xi[Si]=null,Ti=xi[--Si],xi[Si]=null,wi=xi[--Si],xi[Si]=null}function Ai(e,t){xi[Si++]=wi,xi[Si++]=Ti,xi[Si++]=Ci,wi=t.id,Ti=t.overflow,Ci=e}var ji=null,Mi=null,V=!1,Ni=null,Pi=!1,Fi=Error(i(519));function Ii(e){throw Hi(gi(Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),Fi}function Li(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[it]=e,t[at]=r,n){case`dialog`:J(`cancel`,t),J(`close`,t);break;case`iframe`:case`object`:case`embed`:J(`load`,t);break;case`video`:case`audio`:for(n=0;n<xd.length;n++)J(xd[n],t);break;case`source`:J(`error`,t);break;case`img`:case`image`:case`link`:J(`error`,t),J(`load`,t);break;case`details`:J(`toggle`,t);break;case`input`:J(`invalid`,t),Rt(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:J(`invalid`,t);break;case`textarea`:J(`invalid`,t),Ht(t,r.value,r.defaultValue,r.children)}n=r.children,typeof n!=`string`&&typeof n!=`number`&&typeof n!=`bigint`||t.textContent===``+n||!0===r.suppressHydrationWarning||Id(t.textContent,n)?(r.popover!=null&&(J(`beforetoggle`,t),J(`toggle`,t)),r.onScroll!=null&&J(`scroll`,t),r.onScrollEnd!=null&&J(`scrollend`,t),r.onClick!=null&&(t.onclick=Zt),t=!0):t=!1,t||Ii(e,!0)}function Ri(e){for(ji=e.return;ji;)switch(ji.tag){case 5:case 31:case 13:Pi=!1;return;case 27:case 3:Pi=!0;return;default:ji=ji.return}}function zi(e){if(e!==ji)return!1;if(!V)return Ri(e),V=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=n===`form`||n===`button`||Jd(e.type,e.memoizedProps)),n=!n),n&&Mi&&Ii(e),Ri(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Mi=hf(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Mi=hf(e)}else t===27?(t=Mi,nf(e.type)?(e=mf,mf=null,Mi=e):Mi=t):Mi=ji?pf(e.stateNode.nextSibling):null;return!0}function Bi(){Mi=ji=null,V=!1}function Vi(){var e=Ni;return e!==null&&(eu===null?eu=e:eu.push.apply(eu,e),Ni=null),e}function Hi(e){Ni===null?Ni=[e]:Ni.push(e)}var Ui=R(null),Wi=null,Gi=null;function Ki(e,t,n){B(Ui,t._currentValue),t._currentValue=n}function qi(e){e._currentValue=Ui.current,z(Ui)}function Ji(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function Yi(e,t,n,r){var a=e.child;for(a!==null&&(a.return=e);a!==null;){var o=a.dependencies;if(o!==null){var s=a.child;o=o.firstContext;a:for(;o!==null;){var c=o;o=a;for(var l=0;l<t.length;l++)if(c.context===t[l]){o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),Ji(o.return,n,e),r||(s=null);break a}o=c.next}}else if(a.tag===18){if(s=a.return,s===null)throw Error(i(341));s.lanes|=n,o=s.alternate,o!==null&&(o.lanes|=n),Ji(s,n,e),s=null}else s=a.child;if(s!==null)s.return=a;else for(s=a;s!==null;){if(s===e){s=null;break}if(a=s.sibling,a!==null){a.return=s.return,s=a;break}s=s.return}a=s}}function Xi(e,t,n,r){e=null;for(var a=t,o=!1;a!==null;){if(!o){if(a.flags&524288)o=!0;else if(a.flags&262144)break}if(a.tag===10){var s=a.alternate;if(s===null)throw Error(i(387));if(s=s.memoizedProps,s!==null){var c=a.type;br(a.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(a===oe.current){if(s=a.alternate,s===null)throw Error(i(387));s.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(e===null?e=[tp]:e.push(tp))}a=a.return}e!==null&&Yi(t,e,n,r),t.flags|=262144}function Zi(e){for(e=e.firstContext;e!==null;){if(!br(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function Qi(e){Wi=e,Gi=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function $i(e){return ta(Wi,e)}function ea(e,t){return Wi===null&&Qi(e),ta(e,t)}function ta(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},Gi===null){if(e===null)throw Error(i(308));Gi=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Gi=Gi.next=t;return n}var na=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},ra=t.unstable_scheduleCallback,ia=t.unstable_NormalPriority,aa={$$typeof:C,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function oa(){return{controller:new na,data:new Map,refCount:0}}function sa(e){e.refCount--,e.refCount===0&&ra(ia,function(){e.controller.abort()})}var ca=null,la=0,ua=0,da=null;function fa(e,t){if(ca===null){var n=ca=[];la=0,ua=hd(),da={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return la++,t.then(pa,pa),t}function pa(){if(--la===0&&ca!==null){da!==null&&(da.status=`fulfilled`);var e=ca;ca=null,ua=0,da=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function ma(e,t){var n=[],r={status:`pending`,value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status=`fulfilled`,r.value=t;for(var e=0;e<n.length;e++)(0,n[e])(t)},function(e){for(r.status=`rejected`,r.reason=e,e=0;e<n.length;e++)(0,n[e])(void 0)}),r}var ha=F.S;F.S=function(e,t){ru=Ce(),typeof t==`object`&&t&&typeof t.then==`function`&&fa(e,t),ha!==null&&ha(e,t)};var ga=R(null);function _a(){var e=ga.current;return e===null?Bl.pooledCache:e}function va(e,t){t===null?B(ga,ga.current):B(ga,t.pool)}function ya(){var e=_a();return e===null?null:{parent:aa._currentValue,pool:e}}var ba=Error(i(460)),xa=Error(i(474)),Sa=Error(i(542)),Ca={then:function(){}};function wa(e){return e=e.status,e===`fulfilled`||e===`rejected`}function Ta(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(Zt,Zt),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,Oa(e),e;default:if(typeof t.status==`string`)t.then(Zt,Zt);else{if(e=Bl,e!==null&&100<e.shellSuspendCounter)throw Error(i(482));e=t,e.status=`pending`,e.then(function(e){if(t.status===`pending`){var n=t;n.status=`fulfilled`,n.value=e}},function(e){if(t.status===`pending`){var n=t;n.status=`rejected`,n.reason=e}})}switch(t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,Oa(e),e}throw Da=t,ba}}function Ea(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(Da=e,ba):e}}var Da=null;function H(){if(Da===null)throw Error(i(459));var e=Da;return Da=null,e}function Oa(e){if(e===ba||e===Sa)throw Error(i(483))}var ka=null,Aa=0;function ja(e){var t=Aa;return Aa+=1,ka===null&&(ka=[]),Ta(ka,e,t)}function Ma(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function Na(e,t){throw t.$$typeof===g?Error(i(525)):(e=Object.prototype.toString.call(t),Error(i(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function Pa(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;e!==null;)e.key===null?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function a(e,t){return e=ci(e,t),e.index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=67108866,n):(r=r.index,r<n?(t.flags|=67108866,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=67108866),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=fi(n,e.mode,r),t.return=e,t):(t=a(t,n),t.return=e,t)}function l(e,t,n,r){var i=n.type;return i===y?d(e,t,n.props.children,r,n.key):t!==null&&(t.elementType===i||typeof i==`object`&&i&&i.$$typeof===O&&Ea(i)===t.type)?(t=a(t,n.props),Ma(t,n),t.return=e,t):(t=ui(n.type,n.key,n.props,null,e.mode,r),Ma(t,n),t.return=e,t)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=mi(n,e.mode,r),t.return=e,t):(t=a(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,i){return t===null||t.tag!==7?(t=di(n,e.mode,r,i),t.return=e,t):(t=a(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=fi(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case _:return n=ui(t.type,t.key,t.props,null,e.mode,n),Ma(n,t),n.return=e,n;case v:return t=mi(t,e.mode,n),t.return=e,t;case O:return t=Ea(t),f(e,t,n)}if(ee(t)||M(t))return t=di(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,ja(t),n);if(t.$$typeof===C)return f(e,ea(e,t),n);Na(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`||typeof n==`bigint`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case _:return n.key===i?l(e,t,n,r):null;case v:return n.key===i?u(e,t,n,r):null;case O:return n=Ea(n),p(e,t,n,r)}if(ee(n)||M(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,ja(n),r);if(n.$$typeof===C)return p(e,t,ea(e,n),r);Na(e,n)}return null}function m(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`||typeof r==`bigint`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case _:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case v:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case O:return r=Ea(r),m(e,t,n,r,i)}if(ee(r)||M(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return m(e,t,n,ja(r),i);if(r.$$typeof===C)return m(e,t,n,ea(t,r),i);Na(t,r)}return null}function h(i,a,s,c){for(var l=null,u=null,d=a,h=a=0,g=null;d!==null&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),V&&Ei(i,h),l;if(d===null){for(;h<s.length;h++)d=f(i,s[h],c),d!==null&&(a=o(d,a,h),u===null?l=d:u.sibling=d,u=d);return V&&Ei(i,h),l}for(d=r(d);h<s.length;h++)g=m(d,i,h,s[h],c),g!==null&&(e&&g.alternate!==null&&d.delete(g.key===null?h:g.key),a=o(g,a,h),u===null?l=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return t(i,e)}),V&&Ei(i,h),l}function g(a,s,c,l){if(c==null)throw Error(i(151));for(var u=null,d=null,h=s,g=s=0,_=null,v=c.next();h!==null&&!v.done;g++,v=c.next()){h.index>g?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),V&&Ei(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return V&&Ei(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),V&&Ei(a,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===y&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case _:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===y){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===O&&Ea(l)===r.type){n(e,r.sibling),c=a(r,o.props),Ma(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===y?(c=di(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=ui(o.type,o.key,o.props,null,e.mode,c),Ma(c,o),c.return=e,e=c)}return s(e);case v:a:{for(l=o.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}c=mi(o,e.mode,c),c.return=e,e=c}return s(e);case O:return o=Ea(o),b(e,r,o,c)}if(ee(o))return h(e,r,o,c);if(M(o)){if(l=M(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,ja(o),c);if(o.$$typeof===C)return b(e,r,ea(e,o),c);Na(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=fi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Aa=0;var i=b(e,t,n,r);return ka=null,i}catch(t){if(t===ba||t===Sa)throw t;var a=oi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Fa=Pa(!0),Ia=Pa(!1),La=!1;function Ra(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function za(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ba(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Va(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,zl&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ri(e),ni(e,null,n),t}return $r(e,r,t,n),ri(e)}function Ha(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ze(e,n)}}function Ua(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Wa=!1;function Ga(){if(Wa){var e=da;if(e!==null)throw e}}function Ka(e,t,n,r){Wa=!1;var i=e.updateQueue;La=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(q&f)===f:(r&f)===f){f!==0&&f===ua&&(Wa=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(m=g.payload,typeof m==`function`){d=m.call(_,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m==`function`?m.call(_,d,f):m,f==null)break a;d=h({},d,f);break a;case 2:La=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Jl|=o,e.lanes=o,e.memoizedState=d}}function qa(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function Ja(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)qa(n[e],t)}var Ya=R(null),Xa=R(0);function Za(e,t){e=Kl,B(Xa,e),B(Ya,t),Kl=e|t.baseLanes}function Qa(){B(Xa,Kl),B(Ya,Ya.current)}function $a(){Kl=Xa.current,z(Ya),z(Xa)}var eo=R(null),to=null;function no(e){var t=e.alternate;B(so,so.current&1),B(eo,e),to===null&&(t===null||Ya.current!==null||t.memoizedState!==null)&&(to=e)}function ro(e){B(so,so.current),B(eo,e),to===null&&(to=e)}function io(e){e.tag===22?(B(so,so.current),B(eo,e),to===null&&(to=e)):ao(e)}function ao(){B(so,so.current),B(eo,eo.current)}function oo(e){z(eo),to===e&&(to=null),z(so)}var so=R(0);function co(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||uf(n)||df(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder===`forwards`||t.memoizedProps.revealOrder===`backwards`||t.memoizedProps.revealOrder===`unstable_legacy-backwards`||t.memoizedProps.revealOrder===`together`)){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var lo=0,U=null,W=null,uo=null,fo=!1,po=!1,mo=!1,ho=0,go=0,_o=null,vo=0;function yo(){throw Error(i(321))}function bo(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!br(e[n],t[n]))return!1;return!0}function xo(e,t,n,r,i,a){return lo=a,U=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,F.H=e===null||e.memoizedState===null?Rs:zs,mo=!1,a=n(r,i),mo=!1,po&&(a=Co(t,n,r,i)),So(e),a}function So(e){F.H=Ls;var t=W!==null&&W.next!==null;if(lo=0,uo=W=U=null,fo=!1,go=0,_o=null,t)throw Error(i(300));e===null||nc||(e=e.dependencies,e!==null&&Zi(e)&&(nc=!0))}function Co(e,t,n,r){U=e;var a=0;do{if(po&&(_o=null),go=0,po=!1,25<=a)throw Error(i(301));if(a+=1,uo=W=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}F.H=Bs,o=t(n,r)}while(po);return o}function wo(){var e=F.H,t=e.useState()[0];return t=typeof t.then==`function`?jo(t):t,e=e.useState()[0],(W===null?null:W.memoizedState)!==e&&(U.flags|=1024),t}function To(){var e=ho!==0;return ho=0,e}function Eo(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Do(e){if(fo){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}fo=!1}lo=0,uo=W=U=null,po=!1,go=ho=0,_o=null}function Oo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return uo===null?U.memoizedState=uo=e:uo=uo.next=e,uo}function ko(){if(W===null){var e=U.alternate;e=e===null?null:e.memoizedState}else e=W.next;var t=uo===null?U.memoizedState:uo.next;if(t!==null)uo=t,W=e;else{if(e===null)throw U.alternate===null?Error(i(467)):Error(i(310));W=e,e={memoizedState:W.memoizedState,baseState:W.baseState,baseQueue:W.baseQueue,queue:W.queue,next:null},uo===null?U.memoizedState=uo=e:uo=uo.next=e}return uo}function Ao(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function jo(e){var t=go;return go+=1,_o===null&&(_o=[]),e=Ta(_o,e,t),t=U,(uo===null?t.memoizedState:uo.next)===null&&(t=t.alternate,F.H=t===null||t.memoizedState===null?Rs:zs),e}function Mo(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return jo(e);if(e.$$typeof===C)return $i(e)}throw Error(i(438,String(e)))}function No(e){var t=null,n=U.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=U.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(t??={data:[],index:0},n===null&&(n=Ao(),U.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=A;return t.index++,n}function Po(e,t){return typeof t==`function`?t(e):t}function Fo(e){return Io(ko(),W,e)}function Io(e,t,n){var r=e.queue;if(r===null)throw Error(i(311));r.lastRenderedReducer=n;var a=e.baseQueue,o=r.pending;if(o!==null){if(a!==null){var s=a.next;a.next=o.next,o.next=s}t.baseQueue=a=o,r.pending=null}if(o=e.baseState,a===null)e.memoizedState=o;else{t=a.next;var c=s=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(lo&f)===f:(q&f)===f){var p=u.revertLane;if(p===0)l!==null&&(l=l.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===ua&&(d=!0);else if((lo&p)===p){u=u.next,p===ua&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=f,s=o):l=l.next=f,U.lanes|=p,Jl|=p;f=u.action,mo&&n(o,f),o=u.hasEagerState?u.eagerState:n(o,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=p,s=o):l=l.next=p,U.lanes|=f,Jl|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=o:l.next=c,!br(o,e.memoizedState)&&(nc=!0,d&&(n=da,n!==null)))throw n;e.memoizedState=o,e.baseState=s,e.baseQueue=l,r.lastRenderedState=o}return a===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function Lo(e){var t=ko(),n=t.queue;if(n===null)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(a!==null){n.pending=null;var s=a=a.next;do o=e(o,s.action),s=s.next;while(s!==a);br(o,t.memoizedState)||(nc=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function Ro(e,t,n){var r=U,a=ko(),o=V;if(o){if(n===void 0)throw Error(i(407));n=n()}else n=t();var s=!br((W||a).memoizedState,n);if(s&&(a.memoizedState=n,nc=!0),a=a.queue,ls(Vo.bind(null,r,a,e),[e]),a.getSnapshot!==t||s||uo!==null&&uo.memoizedState.tag&1){if(r.flags|=2048,is(9,{destroy:void 0},Bo.bind(null,r,a,n,t),null),Bl===null)throw Error(i(349));o||lo&127||zo(r,t,n)}return n}function zo(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=U.updateQueue,t===null?(t=Ao(),U.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Bo(e,t,n,r){t.value=n,t.getSnapshot=r,Ho(t)&&Uo(e)}function Vo(e,t,n){return n(function(){Ho(t)&&Uo(e)})}function Ho(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!br(e,n)}catch{return!0}}function Uo(e){var t=ti(e,2);t!==null&&vu(t,e,2)}function Wo(e){var t=Oo();if(typeof e==`function`){var n=e;if(e=n(),mo){Pe(!0);try{n()}finally{Pe(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Po,lastRenderedState:e},t}function Go(e,t,n,r){return e.baseState=n,Io(e,W,typeof r==`function`?r:Po)}function Ko(e,t,n,r,a){if(Ps(e))throw Error(i(485));if(e=t.action,e!==null){var o={payload:a,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};F.T===null?o.isTransition=!1:n(!0),r(o),n=t.pending,n===null?(o.next=t.pending=o,qo(t,o)):(o.next=n.next,t.pending=n.next=o)}}function qo(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=F.T,o={};F.T=o;try{var s=n(i,r),c=F.S;c!==null&&c(o,s),Jo(e,t,s)}catch(n){Xo(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),F.T=a}}else try{a=n(i,r),Jo(e,t,a)}catch(n){Xo(e,t,n)}}function Jo(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){Yo(e,t,n)},function(n){return Xo(e,t,n)}):Yo(e,t,n)}function Yo(e,t,n){t.status=`fulfilled`,t.value=n,Zo(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,qo(e,n)))}function Xo(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,Zo(t),t=t.next;while(t!==r)}e.action=null}function Zo(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function Qo(e,t){return t}function $o(e,t){if(V){var n=Bl.formState;if(n!==null){a:{var r=U;if(V){if(Mi){b:{for(var i=Mi,a=Pi;i.nodeType!==8;){if(!a){i=null;break b}if(i=pf(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){Mi=pf(i.nextSibling),r=i.data===`F!`;break a}}Ii(r)}r=!1}r&&(t=n[0])}}return n=Oo(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Qo,lastRenderedState:t},n.queue=r,n=js.bind(null,U,r),r.dispatch=n,r=Wo(!1),a=Ns.bind(null,U,!1,r.queue),r=Oo(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=Ko.bind(null,U,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function es(e){return ts(ko(),W,e)}function ts(e,t,n){if(t=Io(e,t,Qo)[0],e=Fo(Po)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=jo(t)}catch(e){throw e===ba?Sa:e}else r=t;t=ko();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(U.flags|=2048,is(9,{destroy:void 0},ns.bind(null,i,n),null)),[r,a,e]}function ns(e,t){e.action=t}function rs(e){var t=ko(),n=W;if(n!==null)return ts(t,n,e);ko(),t=t.memoizedState,n=ko();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function is(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=U.updateQueue,t===null&&(t=Ao(),U.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function as(){return ko().memoizedState}function os(e,t,n,r){var i=Oo();U.flags|=e,i.memoizedState=is(1|t,{destroy:void 0},n,r===void 0?null:r)}function ss(e,t,n,r){var i=ko();r=r===void 0?null:r;var a=i.memoizedState.inst;W!==null&&r!==null&&bo(r,W.memoizedState.deps)?i.memoizedState=is(t,a,n,r):(U.flags|=e,i.memoizedState=is(1|t,a,n,r))}function cs(e,t){os(8390656,8,e,t)}function ls(e,t){ss(2048,8,e,t)}function us(e){U.flags|=4;var t=U.updateQueue;if(t===null)t=Ao(),U.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function ds(e){var t=ko().memoizedState;return us({ref:t,nextImpl:e}),function(){if(zl&2)throw Error(i(440));return t.impl.apply(void 0,arguments)}}function fs(e,t){return ss(4,2,e,t)}function ps(e,t){return ss(4,4,e,t)}function ms(e,t){if(typeof t==`function`){e=e();var n=t(e);return function(){typeof n==`function`?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function hs(e,t,n){n=n==null?null:n.concat([e]),ss(4,4,ms.bind(null,t,e),n)}function gs(){}function _s(e,t){var n=ko();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&bo(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function vs(e,t){var n=ko();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&bo(t,r[1]))return r[0];if(r=e(),mo){Pe(!0);try{e()}finally{Pe(!1)}}return n.memoizedState=[r,t],r}function ys(e,t,n){return n===void 0||lo&1073741824&&!(q&261930)?e.memoizedState=t:(e.memoizedState=n,e=_u(),U.lanes|=e,Jl|=e,n)}function bs(e,t,n,r){return br(n,t)?n:Ya.current===null?!(lo&42)||lo&1073741824&&!(q&261930)?(nc=!0,e.memoizedState=n):(e=_u(),U.lanes|=e,Jl|=e,t):(e=ys(e,n,r),br(e,t)||(nc=!0),e)}function xs(e,t,n,r,i){var a=I.p;I.p=a!==0&&8>a?a:8;var o=F.T,s={};F.T=s,Ns(e,!1,t,n);try{var c=i(),l=F.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Ms(e,t,ma(c,r),gu(e)):Ms(e,t,r,gu(e))}catch(n){Ms(e,t,{then:function(){},status:`rejected`,reason:n},gu())}finally{I.p=a,o!==null&&s.types!==null&&(o.types=s.types),F.T=o}}function Ss(){}function Cs(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=ws(e).queue;xs(e,a,t,te,n===null?Ss:function(){return Ts(e),n(r)})}function ws(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:te,baseState:te,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Po,lastRenderedState:te},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Po,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ts(e){var t=ws(e);t.next===null&&(t=e.alternate.memoizedState),Ms(e,t.next.queue,{},gu())}function Es(){return $i(tp)}function Ds(){return ko().memoizedState}function Os(){return ko().memoizedState}function ks(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=gu();e=Ba(n);var r=Va(t,e,n);r!==null&&(vu(r,t,n),Ha(r,t,n)),t={cache:oa()},e.payload=t;return}t=t.return}}function As(e,t,n){var r=gu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Ps(e)?Fs(t,n):(n=ei(e,t,n,r),n!==null&&(vu(n,e,r),Is(n,t,r)))}function js(e,t,n){Ms(e,t,n,gu())}function Ms(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ps(e))Fs(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,br(s,o))return $r(e,t,i,0),Bl===null&&Qr(),!1}catch{}if(n=ei(e,t,i,r),n!==null)return vu(n,e,r),Is(n,t,r),!0}return!1}function Ns(e,t,n,r){if(r={lane:2,revertLane:hd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Ps(e)){if(t)throw Error(i(479))}else t=ei(e,n,r,2),t!==null&&vu(t,e,2)}function Ps(e){var t=e.alternate;return e===U||t!==null&&t===U}function Fs(e,t){po=fo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Is(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ze(e,n)}}var Ls={readContext:$i,use:Mo,useCallback:yo,useContext:yo,useEffect:yo,useImperativeHandle:yo,useLayoutEffect:yo,useInsertionEffect:yo,useMemo:yo,useReducer:yo,useRef:yo,useState:yo,useDebugValue:yo,useDeferredValue:yo,useTransition:yo,useSyncExternalStore:yo,useId:yo,useHostTransitionStatus:yo,useFormState:yo,useActionState:yo,useOptimistic:yo,useMemoCache:yo,useCacheRefresh:yo};Ls.useEffectEvent=yo;var Rs={readContext:$i,use:Mo,useCallback:function(e,t){return Oo().memoizedState=[e,t===void 0?null:t],e},useContext:$i,useEffect:cs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),os(4194308,4,ms.bind(null,t,e),n)},useLayoutEffect:function(e,t){return os(4194308,4,e,t)},useInsertionEffect:function(e,t){os(4,2,e,t)},useMemo:function(e,t){var n=Oo();t=t===void 0?null:t;var r=e();if(mo){Pe(!0);try{e()}finally{Pe(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Oo();if(n!==void 0){var i=n(t);if(mo){Pe(!0);try{n(t)}finally{Pe(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=As.bind(null,U,e),[r.memoizedState,e]},useRef:function(e){var t=Oo();return e={current:e},t.memoizedState=e},useState:function(e){e=Wo(e);var t=e.queue,n=js.bind(null,U,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:gs,useDeferredValue:function(e,t){return ys(Oo(),e,t)},useTransition:function(){var e=Wo(!1);return e=xs.bind(null,U,e.queue,!0,!1),Oo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=U,a=Oo();if(V){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Bl===null)throw Error(i(349));q&127||zo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,cs(Vo.bind(null,r,o,e),[e]),r.flags|=2048,is(9,{destroy:void 0},Bo.bind(null,r,o,n,t),null),n},useId:function(){var e=Oo(),t=Bl.identifierPrefix;if(V){var n=Ti,r=wi;n=(r&~(1<<32-Fe(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=ho++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=vo++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:Es,useFormState:$o,useActionState:$o,useOptimistic:function(e){var t=Oo();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Ns.bind(null,U,!0,n),n.dispatch=t,[e,t]},useMemoCache:No,useCacheRefresh:function(){return Oo().memoizedState=ks.bind(null,U)},useEffectEvent:function(e){var t=Oo(),n={impl:e};return t.memoizedState=n,function(){if(zl&2)throw Error(i(440));return n.impl.apply(void 0,arguments)}}},zs={readContext:$i,use:Mo,useCallback:_s,useContext:$i,useEffect:ls,useImperativeHandle:hs,useInsertionEffect:fs,useLayoutEffect:ps,useMemo:vs,useReducer:Fo,useRef:as,useState:function(){return Fo(Po)},useDebugValue:gs,useDeferredValue:function(e,t){return bs(ko(),W.memoizedState,e,t)},useTransition:function(){var e=Fo(Po)[0],t=ko().memoizedState;return[typeof e==`boolean`?e:jo(e),t]},useSyncExternalStore:Ro,useId:Ds,useHostTransitionStatus:Es,useFormState:es,useActionState:es,useOptimistic:function(e,t){return Go(ko(),W,e,t)},useMemoCache:No,useCacheRefresh:Os};zs.useEffectEvent=ds;var Bs={readContext:$i,use:Mo,useCallback:_s,useContext:$i,useEffect:ls,useImperativeHandle:hs,useInsertionEffect:fs,useLayoutEffect:ps,useMemo:vs,useReducer:Lo,useRef:as,useState:function(){return Lo(Po)},useDebugValue:gs,useDeferredValue:function(e,t){var n=ko();return W===null?ys(n,e,t):bs(n,W.memoizedState,e,t)},useTransition:function(){var e=Lo(Po)[0],t=ko().memoizedState;return[typeof e==`boolean`?e:jo(e),t]},useSyncExternalStore:Ro,useId:Ds,useHostTransitionStatus:Es,useFormState:rs,useActionState:rs,useOptimistic:function(e,t){var n=ko();return W===null?(n.baseState=e,[e,n.queue.dispatch]):Go(n,W,e,t)},useMemoCache:No,useCacheRefresh:Os};Bs.useEffectEvent=ds;function Vs(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:h({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Hs={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=gu(),i=Ba(r);i.payload=t,n!=null&&(i.callback=n),t=Va(e,i,r),t!==null&&(vu(t,e,r),Ha(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=gu(),i=Ba(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Va(e,i,r),t!==null&&(vu(t,e,r),Ha(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=gu(),r=Ba(n);r.tag=2,t!=null&&(r.callback=t),t=Va(e,r,n),t!==null&&(vu(t,e,n),Ha(t,e,n))}};function Us(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!xr(n,r)||!xr(i,a):!0}function Ws(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Hs.enqueueReplaceState(t,t.state,null)}function Gs(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=h({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function Ks(e){Jr(e)}function qs(e){console.error(e)}function Js(e){Jr(e)}function Ys(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function Xs(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function Zs(e,t,n){return n=Ba(n),n.tag=3,n.payload={element:null},n.callback=function(){Ys(e,t)},n}function Qs(e){return e=Ba(e),e.tag=3,e}function $s(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){Xs(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){Xs(t,n,r),typeof i!=`function`&&(ou===null?ou=new Set([this]):ou.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function ec(e,t,n,r,a){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&Xi(t,n,a,!0),n=eo.current,n!==null){switch(n.tag){case 31:case 13:return to===null?Au():n.alternate===null&&ql===0&&(ql=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===Ca?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),Yu(e,r,a)),!1;case 22:return n.flags|=65536,r===Ca?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),Yu(e,r,a)),!1}throw Error(i(435,n.tag))}return Yu(e,r,a),Au(),!1}if(V)return t=eo.current,t===null?(r!==Fi&&(t=Error(i(423),{cause:r}),Hi(gi(t,n))),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=gi(r,n),a=Zs(e.stateNode,r,a),Ua(e,a),ql!==4&&(ql=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==Fi&&(e=Error(i(422),{cause:r}),Hi(gi(e,n)))),!1;var o=Error(i(520),{cause:r});if(o=gi(o,n),$l===null?$l=[o]:$l.push(o),ql!==4&&(ql=2),t===null)return!0;r=gi(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=Zs(n.stateNode,r,e),Ua(n,e),!1;case 1:if(t=n.type,o=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||o!==null&&typeof o.componentDidCatch==`function`&&(ou===null||!ou.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,a=Qs(a),$s(a,e,n,r),Ua(n,a),!1}n=n.return}while(n!==null);return!1}var tc=Error(i(461)),nc=!1;function rc(e,t,n,r){t.child=e===null?Ia(t,null,n,r):Fa(t,e.child,n,r)}function ic(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return Qi(t),r=xo(e,t,n,o,a,i),s=To(),e!==null&&!nc?(Eo(e,t,i),Dc(e,t,i)):(V&&s&&Oi(t),t.flags|=1,rc(e,t,r,i),t.child)}function ac(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!si(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,oc(e,t,a,r,i)):(e=ui(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!Oc(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?xr:n,n(o,r)&&e.ref===t.ref)return Dc(e,t,i)}return t.flags|=1,e=ci(a,r),e.ref=t.ref,e.return=t,t.child=e}function oc(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(xr(a,r)&&e.ref===t.ref){if(nc=!1,t.pendingProps=r=a,Oc(e,i))e.flags&131072&&(nc=!0);else return t.lanes=e.lanes,Dc(e,t,i)}}return mc(e,t,n,r,i)}function sc(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return lc(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&va(t,a===null?null:a.cachePool),a===null?Qa():Za(t,a),io(t);else return r=t.lanes=536870912,lc(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&va(t,null),Qa(),ao(t)):(va(t,a.cachePool),Za(t,a),ao(t),t.memoizedState=null);return rc(e,t,i,n),t.child}function cc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function lc(e,t,n,r,i){var a=_a();return a=a===null?null:{parent:aa._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&va(t,null),Qa(),io(t),e!==null&&Xi(e,t,r,!0),t.childLanes=i,null}function uc(e,t){return t=Sc({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function dc(e,t,n){return Fa(t,e.child,null,n),e=uc(t,t.pendingProps),e.flags|=2,oo(t),t.memoizedState=null,e}function fc(e,t,n){var r=t.pendingProps,a=!!(t.flags&128);if(t.flags&=-129,e===null){if(V){if(r.mode===`hidden`)return e=uc(t,r),t.lanes=536870912,cc(null,e);if(ro(t),(e=Mi)?(e=lf(e,Pi),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Ci===null?null:{id:wi,overflow:Ti},retryLane:536870912,hydrationErrors:null},n=pi(e),n.return=t,t.child=n,ji=t,Mi=null)):e=null,e===null)throw Ii(t);return t.lanes=536870912,null}return uc(t,r)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if(ro(t),a){if(t.flags&256)t.flags&=-257,t=dc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(i(558))}else if(nc||Xi(e,t,n,!1),a=(n&e.childLanes)!==0,nc||a){if(r=Bl,r!==null&&(s=Qe(r,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,ti(e,s),vu(r,e,s),tc;Au(),t=dc(e,t,n)}else e=o.treeContext,Mi=pf(s.nextSibling),ji=t,V=!0,Ni=null,Pi=!1,e!==null&&Ai(t,e),t=uc(t,r),t.flags|=4096;return t}return e=ci(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function pc(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(i(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function mc(e,t,n,r,i){return Qi(t),n=xo(e,t,n,r,void 0,i),r=To(),e!==null&&!nc?(Eo(e,t,i),Dc(e,t,i)):(V&&r&&Oi(t),t.flags|=1,rc(e,t,n,i),t.child)}function hc(e,t,n,r,i,a){return Qi(t),t.updateQueue=null,n=Co(t,r,n,i),So(e),r=To(),e!==null&&!nc?(Eo(e,t,a),Dc(e,t,a)):(V&&r&&Oi(t),t.flags|=1,rc(e,t,n,a),t.child)}function gc(e,t,n,r,i){if(Qi(t),t.stateNode===null){var a=ii,o=n.contextType;typeof o==`object`&&o&&(a=$i(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Hs,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},Ra(t),o=n.contextType,a.context=typeof o==`object`&&o?$i(o):ii,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Vs(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&Hs.enqueueReplaceState(a,a.state,null),Ka(t,r,a,i),Ga(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=Gs(n,s);a.props=c;var l=a.context,u=n.contextType;o=ii,typeof u==`object`&&u&&(o=$i(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&Ws(t,a,r,o),La=!1;var f=t.memoizedState;a.state=f,Ka(t,r,a,i),Ga(),l=t.memoizedState,s||f!==l||La?(typeof d==`function`&&(Vs(t,n,d,r),l=t.memoizedState),(c=La||Us(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,za(e,t),o=t.memoizedProps,u=Gs(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=ii,typeof l==`object`&&l&&(c=$i(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&Ws(t,a,r,c),La=!1,f=t.memoizedState,a.state=f,Ka(t,r,a,i),Ga();var p=t.memoizedState;o!==d||f!==p||La||e!==null&&e.dependencies!==null&&Zi(e.dependencies)?(typeof s==`function`&&(Vs(t,n,s,r),p=t.memoizedState),(u=La||Us(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&Zi(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,pc(e,t),r=!!(t.flags&128),a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=Fa(t,e.child,null,i),t.child=Fa(t,null,n,i)):rc(e,t,n,i),t.memoizedState=a.state,e=t.child):e=Dc(e,t,i),e}function _c(e,t,n,r){return Bi(),t.flags|=256,rc(e,t,n,r),t.child}var vc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function yc(e){return{baseLanes:e,cachePool:ya()}}function G(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=Zl),e}function bc(e,t,n){var r=t.pendingProps,a=!1,o=!!(t.flags&128),s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:!!(so.current&2)),s&&(a=!0,t.flags&=-129),s=!!(t.flags&32),t.flags&=-33,e===null){if(V){if(a?no(t):ao(t),(e=Mi)?(e=lf(e,Pi),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Ci===null?null:{id:wi,overflow:Ti},retryLane:536870912,hydrationErrors:null},n=pi(e),n.return=t,t.child=n,ji=t,Mi=null)):e=null,e===null)throw Ii(t);return df(e)?t.lanes=32:t.lanes=536870912,null}var c=r.children;return r=r.fallback,a?(ao(t),a=t.mode,c=Sc({mode:`hidden`,children:c},a),r=di(r,a,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,r=t.child,r.memoizedState=yc(n),r.childLanes=G(e,s,n),t.memoizedState=vc,cc(null,r)):(no(t),xc(t,c))}var l=e.memoizedState;if(l!==null&&(c=l.dehydrated,c!==null)){if(o)t.flags&256?(no(t),t.flags&=-257,t=Cc(e,t,n)):t.memoizedState===null?(ao(t),c=r.fallback,a=t.mode,r=Sc({mode:`visible`,children:r.children},a),c=di(c,a,n,null),c.flags|=2,r.return=t,c.return=t,r.sibling=c,t.child=r,Fa(t,e.child,null,n),r=t.child,r.memoizedState=yc(n),r.childLanes=G(e,s,n),t.memoizedState=vc,t=cc(null,r)):(ao(t),t.child=e.child,t.flags|=128,t=null);else if(no(t),df(c)){if(s=c.nextSibling&&c.nextSibling.dataset,s)var u=s.dgst;s=u,r=Error(i(419)),r.stack=``,r.digest=s,Hi({value:r,source:null,stack:null}),t=Cc(e,t,n)}else if(nc||Xi(e,t,n,!1),s=(n&e.childLanes)!==0,nc||s){if(s=Bl,s!==null&&(r=Qe(s,n),r!==0&&r!==l.retryLane))throw l.retryLane=r,ti(e,r),vu(s,e,r),tc;uf(c)||Au(),t=Cc(e,t,n)}else uf(c)?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,Mi=pf(c.nextSibling),ji=t,V=!0,Ni=null,Pi=!1,e!==null&&Ai(t,e),t=xc(t,r.children),t.flags|=4096);return t}return a?(ao(t),c=r.fallback,a=t.mode,l=e.child,u=l.sibling,r=ci(l,{mode:`hidden`,children:r.children}),r.subtreeFlags=l.subtreeFlags&65011712,u===null?(c=di(c,a,n,null),c.flags|=2):c=ci(u,c),c.return=t,r.return=t,r.sibling=c,t.child=r,cc(null,r),r=t.child,c=e.child.memoizedState,c===null?c=yc(n):(a=c.cachePool,a===null?a=ya():(l=aa._currentValue,a=a.parent===l?a:{parent:l,pool:l}),c={baseLanes:c.baseLanes|n,cachePool:a}),r.memoizedState=c,r.childLanes=G(e,s,n),t.memoizedState=vc,cc(e.child,r)):(no(t),n=e.child,e=n.sibling,n=ci(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(s=t.deletions,s===null?(t.deletions=[e],t.flags|=16):s.push(e)),t.child=n,t.memoizedState=null,n)}function xc(e,t){return t=Sc({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function Sc(e,t){return e=oi(22,e,null,t),e.lanes=0,e}function Cc(e,t,n){return Fa(t,e.child,null,n),e=xc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function wc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Ji(e.return,t,n)}function Tc(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function Ec(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=so.current,s=!!(o&2);if(s?(o=o&1|2,t.flags|=128):o&=1,B(so,o),rc(e,t,r,n),r=V?bi:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&wc(e,n,t);else if(e.tag===19)wc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`forwards`:for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&co(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Tc(t,!1,i,n,a,r);break;case`backwards`:case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&co(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Tc(t,!0,n,null,a,r);break;case`together`:Tc(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function Dc(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Jl|=t.lanes,(n&t.childLanes)===0){if(e!==null){if(Xi(e,t,n,!1),(n&t.childLanes)===0)return null}else return null}if(e!==null&&t.child!==e.child)throw Error(i(153));if(t.child!==null){for(e=t.child,n=ci(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=ci(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Oc(e,t){return(e.lanes&t)!==0||(e=e.dependencies,!!(e!==null&&Zi(e)))}function kc(e,t,n){switch(t.tag){case 3:se(t,t.stateNode.containerInfo),Ki(t,aa,e.memoizedState.cache),Bi();break;case 27:case 5:le(t);break;case 4:se(t,t.stateNode.containerInfo);break;case 10:Ki(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,ro(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(no(t),e=Dc(e,t,n),e===null?null:e.sibling):bc(e,t,n):(no(t),t.flags|=128,null);no(t);break;case 19:var i=!!(e.flags&128);if(r=(n&t.childLanes)!==0,r||=(Xi(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return Ec(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),B(so,so.current),r)break;return null;case 22:return t.lanes=0,sc(e,t,n,t.pendingProps);case 24:Ki(t,aa,e.memoizedState.cache)}return Dc(e,t,n)}function Ac(e,t,n){if(e!==null){if(e.memoizedProps!==t.pendingProps)nc=!0;else{if(!Oc(e,n)&&!(t.flags&128))return nc=!1,kc(e,t,n);nc=!!(e.flags&131072)}}else nc=!1,V&&t.flags&1048576&&Di(t,bi,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=Ea(t.elementType),t.type=e,typeof e==`function`)si(e)?(r=Gs(e,r),t.tag=1,t=gc(null,t,e,r,n)):(t.tag=0,t=mc(null,t,e,r,n));else{if(e!=null){var a=e.$$typeof;if(a===w){t.tag=11,t=ic(null,t,e,r,n);break a}if(a===D){t.tag=14,t=ac(null,t,e,r,n);break a}}throw t=P(e)||e,Error(i(306,t,``))}}return t;case 0:return mc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,a=Gs(r,t.pendingProps),gc(e,t,r,a,n);case 3:a:{if(se(t,t.stateNode.containerInfo),e===null)throw Error(i(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,za(e,t),Ka(t,r,null,n);var s=t.memoizedState;if(r=s.cache,Ki(t,aa,r),r!==o.cache&&Yi(t,[aa],n,!0),Ga(),r=s.element,o.isDehydrated){if(o={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=_c(e,t,r,n);break a}if(r!==a){a=gi(Error(i(424)),t),Hi(a),t=_c(e,t,r,n);break a}switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===`HTML`?e.ownerDocument.body:e}for(Mi=pf(e.firstChild),ji=t,V=!0,Ni=null,Pi=!0,n=Ia(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Bi(),r===a){t=Dc(e,t,n);break a}rc(e,t,r,n)}t=t.child}return t;case 26:return pc(e,t),e===null?(n=Pf(t.type,null,t.pendingProps,null))?t.memoizedState=n:V||(n=t.type,e=t.pendingProps,r=Gd(ae.current).createElement(n),r[it]=t,r[at]=e,zd(r,n,e),_t(r),t.stateNode=r):t.memoizedState=Pf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return le(t),e===null&&V&&(r=t.stateNode=_f(t.type,t.pendingProps,ae.current),ji=t,Pi=!0,a=Mi,nf(t.type)?(mf=a,Mi=pf(r.firstChild)):Mi=a),rc(e,t,t.pendingProps.children,n),pc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&V&&((a=r=Mi)&&(r=sf(r,t.type,t.pendingProps,Pi),r===null?a=!1:(t.stateNode=r,ji=t,Mi=pf(r.firstChild),Pi=!1,a=!0)),a||Ii(t)),le(t),a=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,r=o.children,Jd(a,o)?r=null:s!==null&&Jd(a,s)&&(t.flags|=32),t.memoizedState!==null&&(a=xo(e,t,wo,null,null,n),tp._currentValue=a),pc(e,t),rc(e,t,r,n),t.child;case 6:return e===null&&V&&((e=n=Mi)&&(n=cf(n,t.pendingProps,Pi),n===null?e=!1:(t.stateNode=n,ji=t,Mi=null,e=!0)),e||Ii(t)),null;case 13:return bc(e,t,n);case 4:return se(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Fa(t,null,r,n):rc(e,t,r,n),t.child;case 11:return ic(e,t,t.type,t.pendingProps,n);case 7:return rc(e,t,t.pendingProps,n),t.child;case 8:return rc(e,t,t.pendingProps.children,n),t.child;case 12:return rc(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,Ki(t,t.type,r.value),rc(e,t,r.children,n),t.child;case 9:return a=t.type._context,r=t.pendingProps.children,Qi(t),a=$i(a),r=r(a),t.flags|=1,rc(e,t,r,n),t.child;case 14:return ac(e,t,t.type,t.pendingProps,n);case 15:return oc(e,t,t.type,t.pendingProps,n);case 19:return Ec(e,t,n);case 31:return fc(e,t,n);case 22:return sc(e,t,n,t.pendingProps);case 24:return Qi(t),r=$i(aa),e===null?(a=_a(),a===null&&(a=Bl,o=oa(),a.pooledCache=o,o.refCount++,o!==null&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},Ra(t),Ki(t,aa,a)):((e.lanes&n)!==0&&(za(e,t),Ka(t,null,null,n),Ga()),a=e.memoizedState,o=t.memoizedState,a.parent===r?(r=o.cache,Ki(t,aa,r),r!==a.cache&&Yi(t,[aa],n,!0)):(a={parent:r,cache:r},t.memoizedState=a,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=a),Ki(t,aa,r))),rc(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(i(156,t.tag))}function jc(e){e.flags|=4}function Mc(e,t,n,r,i){if((t=!!(e.mode&32))&&(t=!1),t){if(e.flags|=16777216,(i&335544128)===i){if(e.stateNode.complete)e.flags|=8192;else if(Du())e.flags|=8192;else throw Da=Ca,xa}}else e.flags&=-16777217}function Nc(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!qf(t)){if(Du())e.flags|=8192;else throw Da=Ca,xa}}function Pc(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:Ke(),e.lanes|=t,Ql|=t)}function Fc(e,t){if(!V)switch(e.tailMode){case`hidden`:t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case`collapsed`:n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ic(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&65011712,r|=i.flags&65011712,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Lc(e,t,n){var r=t.pendingProps;switch(ki(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ic(t),null;case 1:return Ic(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),qi(aa),ce(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(zi(t)?jc(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Vi())),Ic(t),null;case 26:var a=t.type,o=t.memoizedState;return e===null?(jc(t),o===null?(Ic(t),Mc(t,a,null,r,n)):(Ic(t),Nc(t,o))):o?o===e.memoizedState?(Ic(t),t.flags&=-16777217):(jc(t),Ic(t),Nc(t,o)):(e=e.memoizedProps,e!==r&&jc(t),Ic(t),Mc(t,a,e,r,n)),null;case 27:if(ue(t),n=ae.current,a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&jc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return Ic(t),null}e=re.current,zi(t)?Li(t,e):(e=_f(a,r,n),t.stateNode=e,jc(t))}return Ic(t),null;case 5:if(ue(t),a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&jc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return Ic(t),null}if(o=re.current,zi(t))Li(t,o);else{var s=Gd(ae.current);switch(o){case 1:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case 2:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;default:switch(a){case`svg`:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case`math`:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;case`script`:o=s.createElement(`div`),o.innerHTML=`<script><\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[it]=t,o[at]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(zd(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&jc(t)}}return Ic(t),Mc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&jc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=ae.current,zi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=ji,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[it]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Id(e.nodeValue,n)),e||Ii(t,!0)}else e=Gd(e).createTextNode(r),e[it]=t,t.stateNode=e}return Ic(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=zi(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[it]=t}else Bi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Ic(t),e=!1}else n=Vi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(oo(t),t):(oo(t),null);if(t.flags&128)throw Error(i(558))}return Ic(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=zi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[it]=t}else Bi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Ic(t),a=!1}else a=Vi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(oo(t),t):(oo(t),null)}return oo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Pc(t,t.updateQueue),Ic(t),null);case 4:return ce(),e===null&&Ed(t.stateNode.containerInfo),Ic(t),null;case 10:return qi(t.type),Ic(t),null;case 19:if(z(so),r=t.memoizedState,r===null)return Ic(t),null;if(a=!!(t.flags&128),o=r.rendering,o===null){if(a)Fc(r,!1);else{if(ql!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=co(e),o!==null){for(t.flags|=128,Fc(r,!1),e=o.updateQueue,t.updateQueue=e,Pc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)li(n,e),n=n.sibling;return B(so,so.current&1|2),V&&Ei(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Ce()>iu&&(t.flags|=128,a=!0,Fc(r,!1),t.lanes=4194304)}}else{if(!a){if(e=co(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Pc(t,e),Fc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!V)return Ic(t),null}else 2*Ce()-r.renderingStartTime>iu&&n!==536870912&&(t.flags|=128,a=!0,Fc(r,!1),t.lanes=4194304)}r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Ic(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Ce(),e.sibling=null,n=so.current,B(so,a?n&1|2:n&1),V&&Ei(t,r.treeForkCount),e);case 22:case 23:return oo(t),$a(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Ic(t),t.subtreeFlags&6&&(t.flags|=8192)):Ic(t),n=t.updateQueue,n!==null&&Pc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&z(ga),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),qi(aa),Ic(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Rc(e,t){switch(ki(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return qi(aa),ce(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return ue(t),null;case 31:if(t.memoizedState!==null){if(oo(t),t.alternate===null)throw Error(i(340));Bi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(oo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Bi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return z(so),null;case 4:return ce(),null;case 10:return qi(t.type),null;case 22:case 23:return oo(t),$a(),e!==null&&z(ga),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return qi(aa),null;case 25:return null;default:return null}}function zc(e,t){switch(ki(t),t.tag){case 3:qi(aa),ce();break;case 26:case 27:case 5:ue(t);break;case 4:ce();break;case 31:t.memoizedState!==null&&oo(t);break;case 13:oo(t);break;case 19:z(so);break;case 10:qi(t.type);break;case 22:case 23:oo(t),$a(),e!==null&&z(ga);break;case 24:qi(aa)}}function Bc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Ju(t,t.return,e)}}function Vc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Ju(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Ju(t,t.return,e)}}function Hc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Ja(t,n)}catch(t){Ju(e,e.return,t)}}}function Uc(e,t,n){n.props=Gs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Ju(e,t,n)}}function Wc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Ju(e,t,n)}}function Gc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){Ju(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Ju(e,t,n)}else n.current=null}}function Kc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Ju(e,e.return,t)}}function qc(e,t,n){try{var r=e.stateNode;Bd(r,e.type,n,t),r[at]=t}catch(t){Ju(e,e.return,t)}}function Jc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&nf(e.type)||e.tag===4}function Yc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Jc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&nf(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Xc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Zt));else if(r!==4&&(r===27&&nf(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Xc(e,t,n),e=e.sibling;e!==null;)Xc(e,t,n),e=e.sibling}function Zc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&nf(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Zc(e,t,n),e=e.sibling;e!==null;)Zc(e,t,n),e=e.sibling}function Qc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);zd(t,r,n),t[it]=e,t[at]=n}catch(t){Ju(e,e.return,t)}}var $c=!1,el=!1,tl=!1,nl=typeof WeakSet==`function`?WeakSet:Set,rl=null;function il(e,t){if(e=e.containerInfo,Ud=up,e=Tr(e),Er(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(Wd={focusedElem:e,selectionRange:n},up=!1,rl=t;rl!==null;)if(t=rl,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,rl=e;else for(;rl!==null;){switch(t=rl,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n<e.length;n++)a=e[n],a.ref.impl=a.nextImpl;break;case 11:case 15:break;case 1:if(e&1024&&o!==null){e=void 0,n=t,a=o.memoizedProps,o=o.memoizedState,r=n.stateNode;try{var h=Gs(n.type,a);e=r.getSnapshotBeforeUpdate(h,o),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){Ju(n,n.return,e)}}break;case 3:if(e&1024){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)of(e);else if(n===1)switch(e.nodeName){case`HEAD`:case`HTML`:case`BODY`:of(e);break;default:e.textContent=``}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if(e&1024)throw Error(i(163))}if(e=t.sibling,e!==null){e.return=t.return,rl=e;break}rl=t.return}}function al(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:bl(e,n),r&4&&Bc(5,n);break;case 1:if(bl(e,n),r&4){if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){Ju(n,n.return,e)}else{var i=Gs(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){Ju(n,n.return,e)}}}r&64&&Hc(n),r&512&&Wc(n,n.return);break;case 3:if(bl(e,n),r&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{Ja(e,t)}catch(e){Ju(n,n.return,e)}}break;case 27:t===null&&r&4&&Qc(n);case 26:case 5:bl(e,n),t===null&&r&4&&Kc(n),r&512&&Wc(n,n.return);break;case 12:bl(e,n);break;case 31:bl(e,n),r&4&&dl(e,n);break;case 13:bl(e,n),r&4&&fl(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=Qu.bind(null,n),ff(e,n))));break;case 22:if(r=n.memoizedState!==null||$c,!r){t=t!==null&&t.memoizedState!==null||el,i=$c;var a=el;$c=r,(el=t)&&!a?Sl(e,n,!!(n.subtreeFlags&8772)):bl(e,n),$c=i,el=a}break;case 30:break;default:bl(e,n)}}function ol(e){var t=e.alternate;t!==null&&(e.alternate=null,ol(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&ft(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var sl=null,cl=!1;function ll(e,t,n){for(n=n.child;n!==null;)ul(e,t,n),n=n.sibling}function ul(e,t,n){if(Ne&&typeof Ne.onCommitFiberUnmount==`function`)try{Ne.onCommitFiberUnmount(Me,n)}catch{}switch(n.tag){case 26:el||Gc(n,t),ll(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:el||Gc(n,t);var r=sl,i=cl;nf(n.type)&&(sl=n.stateNode,cl=!1),ll(e,t,n),vf(n.stateNode),sl=r,cl=i;break;case 5:el||Gc(n,t);case 6:if(r=sl,i=cl,sl=null,ll(e,t,n),sl=r,cl=i,sl!==null){if(cl)try{(sl.nodeType===9?sl.body:sl.nodeName===`HTML`?sl.ownerDocument.body:sl).removeChild(n.stateNode)}catch(e){Ju(n,t,e)}else try{sl.removeChild(n.stateNode)}catch(e){Ju(n,t,e)}}break;case 18:sl!==null&&(cl?(e=sl,rf(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Pp(e)):rf(sl,n.stateNode));break;case 4:r=sl,i=cl,sl=n.stateNode.containerInfo,cl=!0,ll(e,t,n),sl=r,cl=i;break;case 0:case 11:case 14:case 15:Vc(2,n,t),el||Vc(4,n,t),ll(e,t,n);break;case 1:el||(Gc(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&Uc(n,t,r)),ll(e,t,n);break;case 21:ll(e,t,n);break;case 22:el=(r=el)||n.memoizedState!==null,ll(e,t,n),el=r;break;default:ll(e,t,n)}}function dl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Pp(e)}catch(e){Ju(t,t.return,e)}}}function fl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Pp(e)}catch(e){Ju(t,t.return,e)}}function pl(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new nl),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new nl),t;default:throw Error(i(435,e.tag))}}function ml(e,t){var n=pl(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=$u.bind(null,e,t);t.then(r,r)}})}function hl(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var a=n[r],o=e,s=t,c=s;a:for(;c!==null;){switch(c.tag){case 27:if(nf(c.type)){sl=c.stateNode,cl=!1;break a}break;case 5:sl=c.stateNode,cl=!1;break a;case 3:case 4:sl=c.stateNode.containerInfo,cl=!0;break a}c=c.return}if(sl===null)throw Error(i(160));ul(o,s,a),sl=null,cl=!1,o=a.alternate,o!==null&&(o.return=null),a.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)_l(t,e),t=t.sibling}var gl=null;function _l(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:hl(t,e),vl(e),r&4&&(Vc(3,e,e.return),Bc(3,e),Vc(5,e,e.return));break;case 1:hl(t,e),vl(e),r&512&&(el||n===null||Gc(n,n.return)),r&64&&$c&&(e=e.updateQueue,e!==null&&(r=e.callbacks,r!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?r:n.concat(r))));break;case 26:var a=gl;if(hl(t,e),vl(e),r&512&&(el||n===null||Gc(n,n.return)),r&4){var o=n===null?null:n.memoizedState;if(r=e.memoizedState,n===null){if(r===null){if(e.stateNode===null){a:{r=e.type,n=e.memoizedProps,a=a.ownerDocument||a;b:switch(r){case`title`:o=a.getElementsByTagName(`title`)[0],(!o||o[dt]||o[it]||o.namespaceURI===`http://www.w3.org/2000/svg`||o.hasAttribute(`itemprop`))&&(o=a.createElement(r),a.head.insertBefore(o,a.querySelector(`head > title`))),zd(o,r,n),o[it]=e,_t(o),r=o;break a;case`link`:var s=Gf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&o.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&o.getAttribute(`title`)===(n.title==null?null:n.title)&&o.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){s.splice(c,1);break b}}o=a.createElement(r),zd(o,r,n),a.head.appendChild(o);break;case`meta`:if(s=Gf(`meta`,`content`,a).get(r+(n.content||``))){for(c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`content`)===(n.content==null?null:``+n.content)&&o.getAttribute(`name`)===(n.name==null?null:n.name)&&o.getAttribute(`property`)===(n.property==null?null:n.property)&&o.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&o.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){s.splice(c,1);break b}}o=a.createElement(r),zd(o,r,n),a.head.appendChild(o);break;default:throw Error(i(468,r))}o[it]=e,_t(o),r=o}e.stateNode=r}else Kf(a,e.type,e.stateNode)}else e.stateNode=Bf(a,r,e.memoizedProps)}else o===r?r===null&&e.stateNode!==null&&qc(e,e.memoizedProps,n.memoizedProps):(o===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):o.count--,r===null?Kf(a,e.type,e.stateNode):Bf(a,r,e.memoizedProps))}break;case 27:hl(t,e),vl(e),r&512&&(el||n===null||Gc(n,n.return)),n!==null&&r&4&&qc(e,e.memoizedProps,n.memoizedProps);break;case 5:if(hl(t,e),vl(e),r&512&&(el||n===null||Gc(n,n.return)),e.flags&32){a=e.stateNode;try{Ut(a,``)}catch(t){Ju(e,e.return,t)}}r&4&&e.stateNode!=null&&(a=e.memoizedProps,qc(e,a,n===null?a:n.memoizedProps)),r&1024&&(tl=!0);break;case 6:if(hl(t,e),vl(e),r&4){if(e.stateNode===null)throw Error(i(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){Ju(e,e.return,t)}}break;case 3:if(Wf=null,a=gl,gl=xf(t.containerInfo),hl(t,e),gl=a,vl(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Pp(t.containerInfo)}catch(t){Ju(e,e.return,t)}tl&&(tl=!1,yl(e));break;case 4:r=gl,gl=xf(e.stateNode.containerInfo),hl(t,e),vl(e),gl=r;break;case 12:hl(t,e),vl(e);break;case 31:hl(t,e),vl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,ml(e,r)));break;case 13:hl(t,e),vl(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(nu=Ce()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,ml(e,r)));break;case 22:a=e.memoizedState!==null;var l=n!==null&&n.memoizedState!==null,u=$c,d=el;if($c=u||a,el=d||l,hl(t,e),el=d,$c=u,vl(e),r&8192)a:for(t=e.stateNode,t._visibility=a?t._visibility&-2:t._visibility|1,a&&(n===null||l||$c||el||xl(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){l=n=t;try{if(o=l.stateNode,a)s=o.style,typeof s.setProperty==`function`?s.setProperty(`display`,`none`,`important`):s.display=`none`;else{c=l.stateNode;var f=l.memoizedProps.style,p=f!=null&&f.hasOwnProperty(`display`)?f.display:null;c.style.display=p==null||typeof p==`boolean`?``:(``+p).trim()}}catch(e){Ju(l,l.return,e)}}}else if(t.tag===6){if(n===null){l=t;try{l.stateNode.nodeValue=a?``:l.memoizedProps}catch(e){Ju(l,l.return,e)}}}else if(t.tag===18){if(n===null){l=t;try{var m=l.stateNode;a?af(m,!0):af(l.stateNode,!1)}catch(e){Ju(l,l.return,e)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break a;for(;t.sibling===null;){if(t.return===null||t.return===e)break a;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}r&4&&(r=e.updateQueue,r!==null&&(n=r.retryQueue,n!==null&&(r.retryQueue=null,ml(e,n))));break;case 19:hl(t,e),vl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,ml(e,r)));break;case 30:break;case 21:break;default:hl(t,e),vl(e)}}function vl(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(Jc(r)){n=r;break}r=r.return}if(n==null)throw Error(i(160));switch(n.tag){case 27:var a=n.stateNode;Zc(e,Yc(e),a);break;case 5:var o=n.stateNode;n.flags&32&&(Ut(o,``),n.flags&=-33),Zc(e,Yc(e),o);break;case 3:case 4:var s=n.stateNode.containerInfo;Xc(e,Yc(e),s);break;default:throw Error(i(161))}}catch(t){Ju(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function yl(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;yl(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function bl(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)al(e,t.alternate,t),t=t.sibling}function xl(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Vc(4,t,t.return),xl(t);break;case 1:Gc(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount==`function`&&Uc(t,t.return,n),xl(t);break;case 27:vf(t.stateNode);case 26:case 5:Gc(t,t.return),xl(t);break;case 22:t.memoizedState===null&&xl(t);break;case 30:xl(t);break;default:xl(t)}e=e.sibling}}function Sl(e,t,n){for(n&&=!!(t.subtreeFlags&8772),t=t.child;t!==null;){var r=t.alternate,i=e,a=t,o=a.flags;switch(a.tag){case 0:case 11:case 15:Sl(i,a,n),Bc(4,a);break;case 1:if(Sl(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){Ju(r,r.return,e)}if(r=a,i=r.updateQueue,i!==null){var s=r.stateNode;try{var c=i.shared.hiddenCallbacks;if(c!==null)for(i.shared.hiddenCallbacks=null,i=0;i<c.length;i++)qa(c[i],s)}catch(e){Ju(r,r.return,e)}}n&&o&64&&Hc(a),Wc(a,a.return);break;case 27:Qc(a);case 26:case 5:Sl(i,a,n),n&&r===null&&o&4&&Kc(a),Wc(a,a.return);break;case 12:Sl(i,a,n);break;case 31:Sl(i,a,n),n&&o&4&&dl(i,a);break;case 13:Sl(i,a,n),n&&o&4&&fl(i,a);break;case 22:a.memoizedState===null&&Sl(i,a,n),Wc(a,a.return);break;case 30:break;default:Sl(i,a,n)}t=t.sibling}}function Cl(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&sa(n))}function wl(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&sa(e))}function Tl(e,t,n,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)El(e,t,n,r),t=t.sibling}function El(e,t,n,r){var i=t.flags;switch(t.tag){case 0:case 11:case 15:Tl(e,t,n,r),i&2048&&Bc(9,t);break;case 1:Tl(e,t,n,r);break;case 3:Tl(e,t,n,r),i&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&sa(e)));break;case 12:if(i&2048){Tl(e,t,n,r),e=t.stateNode;try{var a=t.memoizedProps,o=a.id,s=a.onPostCommit;typeof s==`function`&&s(o,t.alternate===null?`mount`:`update`,e.passiveEffectDuration,-0)}catch(e){Ju(t,t.return,e)}}else Tl(e,t,n,r);break;case 31:Tl(e,t,n,r);break;case 13:Tl(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,o=t.alternate,t.memoizedState===null?a._visibility&2?Tl(e,t,n,r):(a._visibility|=2,Dl(e,t,n,r,!!(t.subtreeFlags&10256)||!1)):a._visibility&2?Tl(e,t,n,r):Ol(e,t),i&2048&&Cl(o,t);break;case 24:Tl(e,t,n,r),i&2048&&wl(t.alternate,t);break;default:Tl(e,t,n,r)}}function Dl(e,t,n,r,i){for(i&&=!!(t.subtreeFlags&10256)||!1,t=t.child;t!==null;){var a=e,o=t,s=n,c=r,l=o.flags;switch(o.tag){case 0:case 11:case 15:Dl(a,o,s,c,i),Bc(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,Dl(a,o,s,c,i)):u._visibility&2?Dl(a,o,s,c,i):Ol(a,o),i&&l&2048&&Cl(o.alternate,o);break;case 24:Dl(a,o,s,c,i),i&&l&2048&&wl(o.alternate,o);break;default:Dl(a,o,s,c,i)}t=t.sibling}}function Ol(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,r=t,i=r.flags;switch(r.tag){case 22:Ol(n,r),i&2048&&Cl(r.alternate,r);break;case 24:Ol(n,r),i&2048&&wl(r.alternate,r);break;default:Ol(n,r)}t=t.sibling}}var kl=8192;function Al(e,t,n){if(e.subtreeFlags&kl)for(e=e.child;e!==null;)jl(e,t,n),e=e.sibling}function jl(e,t,n){switch(e.tag){case 26:Al(e,t,n),e.flags&kl&&e.memoizedState!==null&&Jf(n,gl,e.memoizedState,e.memoizedProps);break;case 5:Al(e,t,n);break;case 3:case 4:var r=gl;gl=xf(e.stateNode.containerInfo),Al(e,t,n),gl=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=kl,kl=16777216,Al(e,t,n),kl=r):Al(e,t,n));break;default:Al(e,t,n)}}function Ml(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function Nl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];rl=r,Il(r,e)}Ml(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Pl(e),e=e.sibling}function Pl(e){switch(e.tag){case 0:case 11:case 15:Nl(e),e.flags&2048&&Vc(9,e,e.return);break;case 3:Nl(e);break;case 12:Nl(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Fl(e)):Nl(e);break;default:Nl(e)}}function Fl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];rl=r,Il(r,e)}Ml(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Vc(8,t,t.return),Fl(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Fl(t));break;default:Fl(t)}e=e.sibling}}function Il(e,t){for(;rl!==null;){var n=rl;switch(n.tag){case 0:case 11:case 15:Vc(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var r=n.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:sa(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,rl=r;else a:for(n=e;rl!==null;){r=rl;var i=r.sibling,a=r.return;if(ol(r),r===n){rl=null;break a}if(i!==null){i.return=a,rl=i;break a}rl=a}}}var Ll={getCacheForType:function(e){var t=$i(aa),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return $i(aa).controller.signal}},Rl=typeof WeakMap==`function`?WeakMap:Map,zl=0,Bl=null,K=null,q=0,Vl=0,Hl=null,Ul=!1,Wl=!1,Gl=!1,Kl=0,ql=0,Jl=0,Yl=0,Xl=0,Zl=0,Ql=0,$l=null,eu=null,tu=!1,nu=0,ru=0,iu=1/0,au=null,ou=null,su=0,cu=null,lu=null,uu=0,du=0,fu=null,pu=null,mu=0,hu=null;function gu(){return zl&2&&q!==0?q&-q:F.T===null?tt():hd()}function _u(){if(Zl===0){if(!(q&536870912)||V){var e=Be;Be<<=1,!(Be&3932160)&&(Be=262144),Zl=e}else Zl=536870912}return e=eo.current,e!==null&&(e.flags|=32),Zl}function vu(e,t,n){(e===Bl&&(Vl===2||Vl===9)||e.cancelPendingCommit!==null)&&(Tu(e,0),Su(e,q,Zl,!1)),Je(e,n),(!(zl&2)||e!==Bl)&&(e===Bl&&(!(zl&2)&&(Yl|=n),ql===4&&Su(e,q,Zl,!1)),sd(e))}function yu(e,t,n){if(zl&6)throw Error(i(327));var r=!n&&!(t&127)&&(t&e.expiredLanes)===0||We(e,t),a=r?Nu(e,t):ju(e,t,!0),o=r;do{if(a===0){Wl&&!r&&Su(e,t,0,!1);break}if(n=e.current.alternate,o&&!xu(n)){a=ju(e,t,!1),o=!1;continue}if(a===2){if(o=t,e.errorRecoveryDisabledLanes&o)var s=0;else s=e.pendingLanes&-536870913,s=s===0?s&536870912?536870912:0:s;if(s!==0){t=s;a:{var c=e;a=$l;var l=c.current.memoizedState.isDehydrated;if(l&&(Tu(c,s).flags|=256),s=ju(c,s,!1),s!==2){if(Gl&&!l){c.errorRecoveryDisabledLanes|=o,Yl|=o,a=4;break a}o=eu,eu=a,o!==null&&(eu===null?eu=o:eu.push.apply(eu,o))}a=s}if(o=!1,a!==2)continue}}if(a===1){Tu(e,0),Su(e,t,0,!0);break}a:{switch(r=e,o=a,o){case 0:case 1:throw Error(i(345));case 4:if((t&4194048)!==t)break;case 6:Su(r,t,Zl,!Ul);break a;case 2:eu=null;break;case 3:case 5:break;default:throw Error(i(329))}if((t&62914560)===t&&(a=nu+300-Ce(),10<a)){if(Su(r,t,Zl,!Ul),Ue(r,0,!0)!==0)break a;uu=t,r.timeoutHandle=Zd(bu.bind(null,r,n,eu,au,tu,t,Zl,Yl,Ql,Ul,o,`Throttled`,-0,0),a);break a}bu(r,n,eu,au,tu,t,Zl,Yl,Ql,Ul,o,null,-0,0)}break}while(1);sd(e)}function bu(e,t,n,r,i,a,o,s,c,l,u,d,f,p){if(e.timeoutHandle=-1,d=t.subtreeFlags,d&8192||(d&16785408)==16785408){d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Zt},jl(t,a,d);var m=(a&62914560)===a?nu-Ce():(a&4194048)===a?ru-Ce():0;if(m=Xf(d,m),m!==null){uu=a,e.cancelPendingCommit=m(Bu.bind(null,e,t,a,n,r,i,o,s,c,u,d,null,f,p)),Su(e,a,o,!l);return}}Bu(e,t,a,n,r,i,o,s,c)}function xu(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!br(a(),i))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Su(e,t,n,r){t&=~Xl,t&=~Yl,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-Fe(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&Xe(e,n,t)}function Cu(){return zl&6?!0:(cd(0,!1),!1)}function wu(){if(K!==null){if(Vl===0)var e=K.return;else e=K,Gi=Wi=null,Do(e),ka=null,Aa=0,e=K;for(;e!==null;)zc(e.alternate,e),e=e.return;K=null}}function Tu(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,Qd(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),uu=0,wu(),Bl=e,K=n=ci(e.current,null),q=t,Vl=0,Hl=null,Ul=!1,Wl=We(e,t),Gl=!1,Ql=Zl=Xl=Yl=Jl=ql=0,eu=$l=null,tu=!1,t&8&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var i=31-Fe(r),a=1<<i;t|=e[i],r&=~a}return Kl=t,Qr(),n}function Eu(e,t){U=null,F.H=Ls,t===ba||t===Sa?(t=H(),Vl=3):t===xa?(t=H(),Vl=4):Vl=t===tc?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,Hl=t,K===null&&(ql=1,Ys(e,gi(t,e.current)))}function Du(){var e=eo.current;return e===null?!0:(q&4194048)===q?to===null:(q&62914560)===q||q&536870912?e===to:!1}function Ou(){var e=F.H;return F.H=Ls,e===null?Ls:e}function ku(){var e=F.A;return F.A=Ll,e}function Au(){ql=4,Ul||(q&4194048)!==q&&eo.current!==null||(Wl=!0),!(Jl&134217727)&&!(Yl&134217727)||Bl===null||Su(Bl,q,Zl,!1)}function ju(e,t,n){var r=zl;zl|=2;var i=Ou(),a=ku();(Bl!==e||q!==t)&&(au=null,Tu(e,t)),t=!1;var o=ql;a:do try{if(Vl!==0&&K!==null){var s=K,c=Hl;switch(Vl){case 8:wu(),o=6;break a;case 3:case 2:case 9:case 6:eo.current===null&&(t=!0);var l=Vl;if(Vl=0,Hl=null,Lu(e,s,c,l),n&&Wl){o=0;break a}break;default:l=Vl,Vl=0,Hl=null,Lu(e,s,c,l)}}Mu(),o=ql;break}catch(t){Eu(e,t)}while(1);return t&&e.shellSuspendCounter++,Gi=Wi=null,zl=r,F.H=i,F.A=a,K===null&&(Bl=null,q=0,Qr()),o}function Mu(){for(;K!==null;)Fu(K)}function Nu(e,t){var n=zl;zl|=2;var r=Ou(),a=ku();Bl!==e||q!==t?(au=null,iu=Ce()+500,Tu(e,t)):Wl=We(e,t);a:do try{if(Vl!==0&&K!==null){t=K;var o=Hl;b:switch(Vl){case 1:Vl=0,Hl=null,Lu(e,t,o,1);break;case 2:case 9:if(wa(o)){Vl=0,Hl=null,Iu(t);break}t=function(){Vl!==2&&Vl!==9||Bl!==e||(Vl=7),sd(e)},o.then(t,t);break a;case 3:Vl=7;break a;case 4:Vl=5;break a;case 7:wa(o)?(Vl=0,Hl=null,Iu(t)):(Vl=0,Hl=null,Lu(e,t,o,7));break;case 5:var s=null;switch(K.tag){case 26:s=K.memoizedState;case 5:case 27:var c=K;if(s?qf(s):c.stateNode.complete){Vl=0,Hl=null;var l=c.sibling;if(l!==null)K=l;else{var u=c.return;u===null?K=null:(K=u,Ru(u))}break b}}Vl=0,Hl=null,Lu(e,t,o,5);break;case 6:Vl=0,Hl=null,Lu(e,t,o,6);break;case 8:wu(),ql=6;break a;default:throw Error(i(462))}}Pu();break}catch(t){Eu(e,t)}while(1);return Gi=Wi=null,F.H=r,F.A=a,zl=n,K===null?(Bl=null,q=0,Qr(),ql):0}function Pu(){for(;K!==null&&!xe();)Fu(K)}function Fu(e){var t=Ac(e.alternate,e,Kl);e.memoizedProps=e.pendingProps,t===null?Ru(e):K=t}function Iu(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=hc(n,t,t.pendingProps,t.type,void 0,q);break;case 11:t=hc(n,t,t.pendingProps,t.type.render,t.ref,q);break;case 5:Do(t);default:zc(n,t),t=K=li(t,Kl),t=Ac(n,t,Kl)}e.memoizedProps=e.pendingProps,t===null?Ru(e):K=t}function Lu(e,t,n,r){Gi=Wi=null,Do(t),ka=null,Aa=0;var i=t.return;try{if(ec(e,i,t,n,q)){ql=1,Ys(e,gi(n,e.current)),K=null;return}}catch(t){if(i!==null)throw K=i,t;ql=1,Ys(e,gi(n,e.current)),K=null;return}t.flags&32768?(V||r===1?e=!0:Wl||q&536870912?e=!1:(Ul=e=!0,(r===2||r===9||r===3||r===6)&&(r=eo.current,r!==null&&r.tag===13&&(r.flags|=16384))),zu(t,e)):Ru(t)}function Ru(e){var t=e;do{if(t.flags&32768){zu(t,Ul);return}e=t.return;var n=Lc(t.alternate,t,Kl);if(n!==null){K=n;return}if(t=t.sibling,t!==null){K=t;return}K=t=e}while(t!==null);ql===0&&(ql=5)}function zu(e,t){do{var n=Rc(e.alternate,e);if(n!==null){n.flags&=32767,K=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){K=e;return}K=e=n}while(e!==null);ql=6,K=null}function Bu(e,t,n,r,a,o,s,c,l){e.cancelPendingCommit=null;do Gu();while(su!==0);if(zl&6)throw Error(i(327));if(t!==null){if(t===e.current)throw Error(i(177));if(o=t.lanes|t.childLanes,o|=Zr,Ye(e,n,o,s,c,l),e===Bl&&(K=Bl=null,q=0),lu=t,cu=e,uu=n,du=o,fu=a,pu=r,t.subtreeFlags&10256||t.flags&10256?(e.callbackNode=null,e.callbackPriority=0,ed(De,function(){return Ku(),null})):(e.callbackNode=null,e.callbackPriority=0),r=!!(t.flags&13878),t.subtreeFlags&13878||r){r=F.T,F.T=null,a=I.p,I.p=2,s=zl,zl|=4;try{il(e,t,n)}finally{zl=s,I.p=a,F.T=r}}su=1,Vu(),Hu(),Uu()}}function Vu(){if(su===1){su=0;var e=cu,t=lu,n=!!(t.flags&13878);if(t.subtreeFlags&13878||n){n=F.T,F.T=null;var r=I.p;I.p=2;var i=zl;zl|=4;try{_l(t,e);var a=Wd,o=Tr(e.containerInfo),s=a.focusedElem,c=a.selectionRange;if(o!==s&&s&&s.ownerDocument&&wr(s.ownerDocument.documentElement,s)){if(c!==null&&Er(s)){var l=c.start,u=c.end;if(u===void 0&&(u=l),`selectionStart`in s)s.selectionStart=l,s.selectionEnd=Math.min(u,s.value.length);else{var d=s.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=s.textContent.length,h=Math.min(c.start,m),g=c.end===void 0?h:Math.min(c.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var _=Cr(s,h),v=Cr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;s<d.length;s++){var b=d[s];b.element.scrollLeft=b.left,b.element.scrollTop=b.top}}up=!!Ud,Wd=Ud=null}finally{zl=i,I.p=r,F.T=n}}e.current=t,su=2}}function Hu(){if(su===2){su=0;var e=cu,t=lu,n=!!(t.flags&8772);if(t.subtreeFlags&8772||n){n=F.T,F.T=null;var r=I.p;I.p=2;var i=zl;zl|=4;try{al(e,t.alternate,t)}finally{zl=i,I.p=r,F.T=n}}su=3}}function Uu(){if(su===4||su===3){su=0,Se();var e=cu,t=lu,n=uu,r=pu;t.subtreeFlags&10256||t.flags&10256?su=5:(su=0,lu=cu=null,Wu(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(ou=null),et(n),t=t.stateNode,Ne&&typeof Ne.onCommitFiberRoot==`function`)try{Ne.onCommitFiberRoot(Me,t,void 0,(t.current.flags&128)==128)}catch{}if(r!==null){t=F.T,i=I.p,I.p=2,F.T=null;try{for(var a=e.onRecoverableError,o=0;o<r.length;o++){var s=r[o];a(s.value,{componentStack:s.stack})}}finally{F.T=t,I.p=i}}uu&3&&Gu(),sd(e),i=e.pendingLanes,n&261930&&i&42?e===hu?mu++:(mu=0,hu=e):mu=0,cd(0,!1)}}function Wu(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,sa(t)))}function Gu(){return Vu(),Hu(),Uu(),Ku()}function Ku(){if(su!==5)return!1;var e=cu,t=du;du=0;var n=et(uu),r=F.T,a=I.p;try{I.p=32>n?32:n,F.T=null,n=fu,fu=null;var o=cu,s=uu;if(su=0,lu=cu=null,uu=0,zl&6)throw Error(i(331));var c=zl;if(zl|=4,Pl(o.current),El(o,o.current,s,n),zl=c,cd(0,!1),Ne&&typeof Ne.onPostCommitFiberRoot==`function`)try{Ne.onPostCommitFiberRoot(Me,o)}catch{}return!0}finally{I.p=a,F.T=r,Wu(e,t)}}function qu(e,t,n){t=gi(n,t),t=Zs(e.stateNode,t,2),e=Va(e,t,2),e!==null&&(Je(e,2),sd(e))}function Ju(e,t,n){if(e.tag===3)qu(e,e,n);else for(;t!==null;){if(t.tag===3){qu(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(ou===null||!ou.has(r))){e=gi(n,e),n=Qs(2),r=Va(t,n,2),r!==null&&($s(n,r,t,e),Je(r,2),sd(r));break}}t=t.return}}function Yu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Rl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Gl=!0,i.add(n),e=Xu.bind(null,e,t,n),t.then(e,e))}function Xu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Bl===e&&(q&n)===n&&(ql===4||ql===3&&(q&62914560)===q&&300>Ce()-nu?!(zl&2)&&Tu(e,0):Xl|=n,Ql===q&&(Ql=0)),sd(e)}function Zu(e,t){t===0&&(t=Ke()),e=ti(e,t),e!==null&&(Je(e,t),sd(e))}function Qu(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Zu(e,n)}function $u(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),Zu(e,n)}function ed(e,t){return ye(e,t)}var td=null,nd=null,rd=!1,id=!1,ad=!1,od=0;function sd(e){e!==nd&&e.next===null&&(nd===null?td=nd=e:nd=nd.next=e),id=!0,rd||(rd=!0,md())}function cd(e,t){if(!ad&&id){ad=!0;do for(var n=!1,r=td;r!==null;){if(!t){if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Fe(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,pd(r,a))}else a=q,a=Ue(r,r===Bl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||We(r,a)||(n=!0,pd(r,a))}r=r.next}while(n);ad=!1}}function ld(){ud()}function ud(){id=rd=!1;var e=0;od!==0&&Xd()&&(e=od);for(var t=Ce(),n=null,r=td;r!==null;){var i=r.next,a=dd(r,t);a===0?(r.next=null,n===null?td=i:n.next=i,i===null&&(nd=n)):(n=r,(e!==0||a&3)&&(id=!0)),r=i}su!==0&&su!==5||cd(e,!1),od!==0&&(od=0)}function dd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-Fe(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=Ge(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=Bl,n=q,n=Ue(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(Vl===2||Vl===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&be(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||We(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&be(r),et(n)){case 2:case 8:n=Ee;break;case 32:n=De;break;case 268435456:n=ke;break;default:n=De}return r=fd.bind(null,e),n=ye(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&be(r),e.callbackPriority=2,e.callbackNode=null,2}function fd(e,t){if(su!==0&&su!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Gu()&&e.callbackNode!==n)return null;var r=q;return r=Ue(e,e===Bl?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(yu(e,r,t),dd(e,Ce()),e.callbackNode!=null&&e.callbackNode===n?fd.bind(null,e):null)}function pd(e,t){if(Gu())return null;yu(e,t,!0)}function md(){ef(function(){zl&6?ye(Te,ld):ud()})}function hd(){if(od===0){var e=ua;e===0&&(e=ze,ze<<=1,!(ze&261888)&&(ze=256)),od=e}return od}function gd(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:Xt(``+e)}function _d(e,t){var n=t.ownerDocument.createElement(`input`);return n.name=t.name,n.value=t.value,e.id&&n.setAttribute(`form`,e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function vd(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=gd((i[at]||null).action),o=r.submitter;o&&(t=(t=o[at]||null)?gd(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new yn(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(od!==0){var e=o?_d(i,o):new FormData(i);Cs(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=o?_d(i,o):new FormData(i),Cs(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var yd=0;yd<Kr.length;yd++){var bd=Kr[yd];qr(bd.toLowerCase(),`on`+(bd[0].toUpperCase()+bd.slice(1)))}qr(Rr,`onAnimationEnd`),qr(zr,`onAnimationIteration`),qr(Br,`onAnimationStart`),qr(`dblclick`,`onDoubleClick`),qr(`focusin`,`onFocus`),qr(`focusout`,`onBlur`),qr(Vr,`onTransitionRun`),qr(Hr,`onTransitionStart`),qr(Ur,`onTransitionCancel`),qr(Wr,`onTransitionEnd`),xt(`onMouseEnter`,[`mouseout`,`mouseover`]),xt(`onMouseLeave`,[`mouseout`,`mouseover`]),xt(`onPointerEnter`,[`pointerout`,`pointerover`]),xt(`onPointerLeave`,[`pointerout`,`pointerover`]),bt(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),bt(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),bt(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),bt(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),bt(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),bt(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var xd=`abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting`.split(` `),Sd=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(xd));function Cd(e,t){t=!!(t&4);for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Jr(e)}i.currentTarget=null,a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Jr(e)}i.currentTarget=null,a=c}}}}function J(e,t){var n=t[st];n===void 0&&(n=t[st]=new Set);var r=e+`__bubble`;n.has(r)||(Dd(t,e,2,!1),n.add(r))}function wd(e,t,n){var r=0;t&&(r|=4),Dd(n,e,r,t)}var Td=`_reactListening`+Math.random().toString(36).slice(2);function Ed(e){if(!e[Td]){e[Td]=!0,vt.forEach(function(t){t!==`selectionchange`&&(Sd.has(t)||wd(t,!1,e),wd(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Td]||(t[Td]=!0,wd(`selectionchange`,!1,t))}}function Dd(e,t,n,r){switch(_p(t)){case 2:var i=dp;break;case 8:i=fp;break;default:i=pp}n=i.bind(null,t,n,e),i=void 0,!cn||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function Od(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var s=r.tag;if(s===3||s===4){var c=r.stateNode.containerInfo;if(c===i)break;if(s===4)for(s=r.return;s!==null;){var l=s.tag;if((l===3||l===4)&&s.stateNode.containerInfo===i)return;s=s.return}for(;c!==null;){if(s=pt(c),s===null)return;if(l=s.tag,l===5||l===6||l===26||l===27){r=a=s;continue a}c=c.parentNode}}r=r.return}an(function(){var r=a,i=$t(n),s=[];a:{var c=Gr.get(e);if(c!==void 0){var l=yn,u=e;switch(e){case`keypress`:if(mn(n)===0)break a;case`keydown`:case`keyup`:l=Ln;break;case`focusin`:u=`focus`,l=On;break;case`focusout`:u=`blur`,l=On;break;case`beforeblur`:case`afterblur`:l=On;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:l=En;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=Dn;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=zn;break;case Rr:case zr:case Br:l=kn;break;case Wr:l=Bn;break;case`scroll`:case`scrollend`:l=xn;break;case`wheel`:l=Vn;break;case`copy`:case`cut`:case`paste`:l=An;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=Rn;break;case`toggle`:case`beforetoggle`:l=Hn}var d=!!(t&4),f=!d&&(e===`scroll`||e===`scrollend`),p=d?c===null?null:c+`Capture`:c;d=[];for(var m=r,h;m!==null;){var g=m;if(h=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||h===null||p===null||(g=on(m,p),g!=null&&d.push(kd(m,g,h))),f)break;m=m.return}0<d.length&&(c=new l(c,u,null,n,i),s.push({event:c,listeners:d}))}}if(!(t&7)){a:{if(c=e===`mouseover`||e===`pointerover`,l=e===`mouseout`||e===`pointerout`,c&&n!==Qt&&(u=n.relatedTarget||n.fromElement)&&(pt(u)||u[ot]))break a;if((l||c)&&(c=i.window===i?i:(c=i.ownerDocument)?c.defaultView||c.parentWindow:window,l?(u=n.relatedTarget||n.toElement,l=r,u=u?pt(u):null,u!==null&&(f=o(u),d=u.tag,u!==f||d!==5&&d!==27&&d!==6)&&(u=null)):(l=null,u=r),l!==u)){if(d=En,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=Rn,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=l==null?c:ht(l),h=u==null?c:ht(u),c=new d(g,m+`leave`,l,n,i),c.target=f,c.relatedTarget=h,g=null,pt(i)===r&&(d=new d(p,m+`enter`,u,n,i),d.target=h,d.relatedTarget=f,g=d),f=g,l&&u)b:{for(d=jd,p=l,m=u,h=0,g=p;g;g=d(g))h++;g=0;for(var _=m;_;_=d(_))g++;for(;0<h-g;)p=d(p),h--;for(;0<g-h;)m=d(m),g--;for(;h--;){if(p===m||m!==null&&p===m.alternate){d=p;break b}p=d(p),m=d(m)}d=null}else d=null;l!==null&&Md(s,c,l,d,!1),u!==null&&f!==null&&Md(s,f,u,d,!0)}}a:{if(c=r?ht(r):window,l=c.nodeName&&c.nodeName.toLowerCase(),l===`select`||l===`input`&&c.type===`file`)var v=cr;else if(nr(c)){if(lr)v=vr;else{v=gr;var y=hr}}else l=c.nodeName,!l||l.toLowerCase()!==`input`||c.type!==`checkbox`&&c.type!==`radio`?r&&qt(r.elementType)&&(v=cr):v=_r;if(v&&=v(e,r)){rr(s,v,n,i);break a}y&&y(e,c,r),e===`focusout`&&r&&c.type===`number`&&r.memoizedProps.value!=null&&zt(c,`number`,c.value)}switch(y=r?ht(r):window,e){case`focusin`:(nr(y)||y.contentEditable===`true`)&&(Or=y,kr=r,Ar=null);break;case`focusout`:Ar=kr=Or=null;break;case`mousedown`:jr=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:jr=!1,Mr(s,n,i);break;case`selectionchange`:if(Dr)break;case`keydown`:case`keyup`:Mr(s,n,i)}var b;if(Wn)b:{switch(e){case`compositionstart`:var x=`onCompositionStart`;break b;case`compositionend`:x=`onCompositionEnd`;break b;case`compositionupdate`:x=`onCompositionUpdate`;break b}x=void 0}else Qn?Xn(e,n)&&(x=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(x=`onCompositionStart`);x&&(qn&&n.locale!==`ko`&&(Qn||x!==`onCompositionStart`?x===`onCompositionEnd`&&Qn&&(b=pn()):(un=i,dn=`value`in un?un.value:un.textContent,Qn=!0)),y=Ad(r,x),0<y.length&&(x=new jn(x,e,null,n,i),s.push({event:x,listeners:y}),b?x.data=b:(b=Zn(n),b!==null&&(x.data=b)))),(b=Kn?$n(e,n):er(e,n))&&(x=Ad(r,`onBeforeInput`),0<x.length&&(y=new jn(`onBeforeInput`,`beforeinput`,null,n,i),s.push({event:y,listeners:x}),y.data=b)),vd(s,e,r,n,i)}Cd(s,t)})}function kd(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Ad(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||a===null||(i=on(e,n),i!=null&&r.unshift(kd(e,i,a)),i=on(e,t),i!=null&&r.push(kd(e,i,a))),e.tag===3)return r;e=e.return}return[]}function jd(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Md(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(s=s.tag,c!==null&&c===r)break;s!==5&&s!==26&&s!==27||l===null||(c=l,i?(l=on(n,a),l!=null&&o.unshift(kd(n,l,c))):i||(l=on(n,a),l!=null&&o.push(kd(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var Nd=/\r\n?/g,Pd=/\u0000|\uFFFD/g;function Fd(e){return(typeof e==`string`?e:``+e).replace(Nd,`
231
+ `).replace(Pd,``)}function Id(e,t){return t=Fd(t),Fd(e)===t}function Ld(e,t,n,r,a,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||Ut(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&Ut(e,``+r);break;case`className`:Dt(e,`class`,r);break;case`tabIndex`:Dt(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:Dt(e,n,r);break;case`style`:Kt(e,r,o);break;case`data`:if(t!==`object`){Dt(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)){e.removeAttribute(n);break}if(r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Xt(``+r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}if(typeof o==`function`&&(n===`formAction`?(t!==`input`&&Ld(e,t,`name`,a.name,a,null),Ld(e,t,`formEncType`,a.formEncType,a,null),Ld(e,t,`formMethod`,a.formMethod,a,null),Ld(e,t,`formTarget`,a.formTarget,a,null)):(Ld(e,t,`encType`,a.encType,a,null),Ld(e,t,`method`,a.method,a,null),Ld(e,t,`target`,a.target,a,null))),r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Xt(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=Zt);break;case`onScroll`:r!=null&&J(`scroll`,e);break;case`onScrollEnd`:r!=null&&J(`scrollend`,e);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=Xt(``+r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``+r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:J(`beforetoggle`,e),J(`toggle`,e),Et(e,`popover`,r);break;case`xlinkActuate`:Ot(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:Ot(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:Ot(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:Ot(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:Ot(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:Ot(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:Ot(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:Ot(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:Ot(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:Et(e,`is`,r);break;case`innerText`:case`textContent`:break;default:(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)&&(n=Jt.get(n)||n,Et(e,n,r))}}function Rd(e,t,n,r,a,o){switch(n){case`style`:Kt(e,r,o);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`children`:typeof r==`string`?Ut(e,r):(typeof r==`number`||typeof r==`bigint`)&&Ut(e,``+r);break;case`onScroll`:r!=null&&J(`scroll`,e);break;case`onScrollEnd`:r!=null&&J(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=Zt);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!yt.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(a=n.endsWith(`Capture`),t=n.slice(2,a?n.length-7:void 0),o=e[at]||null,o=o==null?null:o[n],typeof o==`function`&&e.removeEventListener(t,o,a),typeof r==`function`)){typeof o!=`function`&&o!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,a);break a}n in e?e[n]=r:!0===r?e.setAttribute(n,``):Et(e,n,r)}}}function zd(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:J(`error`,e),J(`load`,e);var r=!1,a=!1,o;for(o in n)if(n.hasOwnProperty(o)){var s=n[o];if(s!=null)switch(o){case`src`:r=!0;break;case`srcSet`:a=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:Ld(e,t,o,s,n,null)}}a&&Ld(e,t,`srcSet`,n.srcSet,n,null),r&&Ld(e,t,`src`,n.src,n,null);return;case`input`:J(`invalid`,e);var c=o=s=a=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:a=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:o=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(i(137,t));break;default:Ld(e,t,r,d,n,null)}}Rt(e,o,c,l,u,s,a,!1);return;case`select`:for(a in J(`invalid`,e),r=s=o=null,n)if(n.hasOwnProperty(a)&&(c=n[a],c!=null))switch(a){case`value`:o=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:Ld(e,t,a,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&Bt(e,!!r,n,!0):Bt(e,!!r,t,!1);return;case`textarea`:for(s in J(`invalid`,e),o=a=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:a=c;break;case`children`:o=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(i(91));break;default:Ld(e,t,s,c,n,null)}Ht(e,r,a,o);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:Ld(e,t,l,r,n,null)}return;case`dialog`:J(`beforetoggle`,e),J(`toggle`,e),J(`cancel`,e),J(`close`,e);break;case`iframe`:case`object`:J(`load`,e);break;case`video`:case`audio`:for(r=0;r<xd.length;r++)J(xd[r],e);break;case`image`:J(`error`,e),J(`load`,e);break;case`details`:J(`toggle`,e);break;case`embed`:case`source`:case`link`:J(`error`,e),J(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:Ld(e,t,u,r,n,null)}return;default:if(qt(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&Rd(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&Ld(e,t,c,r,n,null))}function Bd(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var a=null,o=null,s=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||Ld(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:o=m;break;case`name`:a=m;break;case`checked`:u=m;break;case`defaultChecked`:d=m;break;case`value`:s=m;break;case`defaultValue`:c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(i(137,t));break;default:m!==f&&Ld(e,t,p,m,r,f)}}Lt(e,s,c,l,u,d,o,a);return;case`select`:for(o in m=s=c=p=null,n)if(l=n[o],n.hasOwnProperty(o)&&l!=null)switch(o){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(o)||Ld(e,t,o,null,r,l)}for(a in r)if(o=r[a],l=n[a],r.hasOwnProperty(a)&&(o!=null||l!=null))switch(a){case`value`:p=o;break;case`defaultValue`:c=o;break;case`multiple`:s=o;default:o!==l&&Ld(e,t,a,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?Bt(e,!!n,n?[]:``,!1):Bt(e,!!n,t,!0)):Bt(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(a=n[c],n.hasOwnProperty(c)&&a!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:Ld(e,t,c,null,r,a)}for(s in r)if(a=r[s],o=n[s],r.hasOwnProperty(s)&&(a!=null||o!=null))switch(s){case`value`:p=a;break;case`defaultValue`:m=a;break;case`children`:break;case`dangerouslySetInnerHTML`:if(a!=null)throw Error(i(91));break;default:a!==o&&Ld(e,t,s,a,r,o)}Vt(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:Ld(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:Ld(e,t,l,p,r,m)}return;case`img`:case`link`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`keygen`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:case`menuitem`:for(var g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&Ld(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(i(137,t));break;default:Ld(e,t,u,p,r,m)}return;default:if(qt(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&Rd(e,t,_,void 0,r,p);for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||Rd(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&Ld(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||Ld(e,t,f,p,r,m)}function Vd(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function Hd(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&Vd(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&Vd(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var Ud=null,Wd=null;function Gd(e){return e.nodeType===9?e:e.ownerDocument}function Kd(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function qd(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function Jd(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Yd=null;function Xd(){var e=window.event;return e&&e.type===`popstate`?e!==Yd&&(Yd=e,!0):(Yd=null,!1)}var Zd=typeof setTimeout==`function`?setTimeout:void 0,Qd=typeof clearTimeout==`function`?clearTimeout:void 0,$d=typeof Promise==`function`?Promise:void 0,ef=typeof queueMicrotask==`function`?queueMicrotask:$d===void 0?Zd:function(e){return $d.resolve(null).then(e).catch(tf)};function tf(e){setTimeout(function(){throw e})}function nf(e){return e===`head`}function rf(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8){if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Pp(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)vf(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,vf(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[dt]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&vf(e.ownerDocument.body)}n=i}while(n);Pp(t)}function af(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8){if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++}n=r}while(n)}function of(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:of(n),ft(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function sf(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r){if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e}else if(!e[dt])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=pf(e.nextSibling),e===null)break}return null}function cf(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=pf(e.nextSibling),e===null))return null;return e}function lf(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=pf(e.nextSibling),e===null))return null;return e}function uf(e){return e.data===`$?`||e.data===`$~`}function df(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function ff(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function pf(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var mf=null;function hf(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return pf(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function gf(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function _f(e,t,n){switch(t=Gd(n),e){case`html`:if(e=t.documentElement,!e)throw Error(i(452));return e;case`head`:if(e=t.head,!e)throw Error(i(453));return e;case`body`:if(e=t.body,!e)throw Error(i(454));return e;default:throw Error(i(451))}}function vf(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);ft(e)}var yf=new Map,bf=new Set;function xf(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var Sf=I.d;I.d={f:Cf,r:wf,D:Df,C:Of,L:kf,m:Af,X:Mf,S:jf,M:Nf};function Cf(){var e=Sf.f(),t=Cu();return e||t}function wf(e){var t=mt(e);t!==null&&t.tag===5&&t.type===`form`?Ts(t):Sf.r(e)}var Tf=typeof document>`u`?null:document;function Ef(e,t,n){var r=Tf;if(r&&typeof t==`string`&&t){var i=It(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),bf.has(i)||(bf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),zd(t,`link`,e),_t(t),r.head.appendChild(t)))}}function Df(e){Sf.D(e),Ef(`dns-prefetch`,e,null)}function Of(e,t){Sf.C(e,t),Ef(`preconnect`,e,t)}function kf(e,t,n){Sf.L(e,t,n);var r=Tf;if(r&&e&&t){var i=`link[rel="preload"][as="`+It(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+It(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+It(n.imageSizes)+`"]`)):i+=`[href="`+It(e)+`"]`;var a=i;switch(t){case`style`:a=Ff(e);break;case`script`:a=Rf(e)}yf.has(a)||(e=h({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),yf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(If(a))||t===`script`&&r.querySelector(zf(a))||(t=r.createElement(`link`),zd(t,`link`,e),_t(t),r.head.appendChild(t)))}}function Af(e,t){Sf.m(e,t);var n=Tf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+It(r)+`"][href="`+It(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Rf(e)}if(!yf.has(a)&&(e=h({rel:`modulepreload`,href:e},t),yf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(zf(a)))return}r=n.createElement(`link`),zd(r,`link`,e),_t(r),n.head.appendChild(r)}}}function jf(e,t,n){Sf.S(e,t,n);var r=Tf;if(r&&e){var i=gt(r).hoistableStyles,a=Ff(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(If(a)))s.loading=5;else{e=h({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=yf.get(a))&&Hf(e,n);var c=o=r.createElement(`link`);_t(c),zd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Vf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Mf(e,t){Sf.X(e,t);var n=Tf;if(n&&e){var r=gt(n).hoistableScripts,i=Rf(e),a=r.get(i);a||(a=n.querySelector(zf(i)),a||(e=h({src:e,async:!0},t),(t=yf.get(i))&&Uf(e,t),a=n.createElement(`script`),_t(a),zd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Nf(e,t){Sf.M(e,t);var n=Tf;if(n&&e){var r=gt(n).hoistableScripts,i=Rf(e),a=r.get(i);a||(a=n.querySelector(zf(i)),a||(e=h({src:e,async:!0,type:`module`},t),(t=yf.get(i))&&Uf(e,t),a=n.createElement(`script`),_t(a),zd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Pf(e,t,n,r){var a=(a=ae.current)?xf(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Ff(n.href),n=gt(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Ff(n.href);var o=gt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(If(e)))&&!o._p&&(s.instance=o,s.state.loading=5),yf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},yf.set(e,n),o||Lf(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Rf(n),n=gt(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Ff(e){return`href="`+It(e)+`"`}function If(e){return`link[rel="stylesheet"][`+e+`]`}function Y(e){return h({},e,{"data-precedence":e.precedence,precedence:null})}function Lf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),zd(t,`link`,n),_t(t),e.head.appendChild(t))}function Rf(e){return`[src="`+It(e)+`"]`}function zf(e){return`script[async]`+e}function Bf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+It(n.href)+`"]`);if(r)return t.instance=r,_t(r),r;var a=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),_t(r),zd(r,`style`,a),Vf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Ff(n.href);var o=e.querySelector(If(a));if(o)return t.state.loading|=4,t.instance=o,_t(o),o;r=Y(n),(a=yf.get(a))&&Hf(r,a),o=(e.ownerDocument||e).createElement(`link`),_t(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),zd(o,`link`,r),t.state.loading|=4,Vf(o,n.precedence,e),t.instance=o;case`script`:return o=Rf(n.src),(a=e.querySelector(zf(o)))?(t.instance=a,_t(a),a):(r=n,(a=yf.get(o))&&(r=h({},n),Uf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),_t(a),zd(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Vf(r,n.precedence,e));return t.instance}function Vf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Hf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function Uf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var Wf=null;function Gf(e,t,n){if(Wf===null){var r=new Map,i=Wf=new Map;i.set(n,r)}else i=Wf,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[dt]||a[it]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function Kf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function X(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function qf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Jf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Ff(r.href),a=t.querySelector(If(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Zf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,_t(a);return}a=t.ownerDocument||t,r=Y(r),(i=yf.get(i))&&Hf(r,i),a=a.createElement(`link`),_t(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),zd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Zf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Yf=0;function Xf(e,t){return e.stylesheets&&e.count===0&&$f(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&$f(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&Yf===0&&(Yf=62500*Hd());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&$f(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>Yf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Zf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)$f(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Qf=null;function $f(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Qf=new Map,t.forEach(ep,e),Qf=null,Zf.call(e))}function ep(e,t){if(!(t.state.loading&4)){var n=Qf.get(e);if(n)var r=n.get(null);else{n=new Map,Qf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=Zf.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var tp={$$typeof:C,Provider:null,Consumer:null,_currentValue:te,_currentValue2:te,_threadCount:0};function np(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=qe(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=qe(0),this.hiddenUpdates=qe(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.incompleteTransitions=new Map}function rp(e,t,n,r,i,a,o,s,c,l,u,d){return e=new np(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=oi(3,null,null,t),e.current=a,a.stateNode=e,t=oa(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},Ra(a),e}function ip(e){return e?(e=ii,e):ii}function ap(e,t,n,r,i,a){i=ip(i),r.context===null?r.context=i:r.pendingContext=i,r=Ba(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=Va(e,r,t),n!==null&&(vu(n,e,t),Ha(n,e,t))}function op(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function sp(e,t){op(e,t),(e=e.alternate)&&op(e,t)}function cp(e){if(e.tag===13||e.tag===31){var t=ti(e,67108864);t!==null&&vu(t,e,67108864),sp(e,67108864)}}function lp(e){if(e.tag===13||e.tag===31){var t=gu();t=$e(t);var n=ti(e,t);n!==null&&vu(n,e,t),sp(e,t)}}var up=!0;function dp(e,t,n,r){var i=F.T;F.T=null;var a=I.p;try{I.p=2,pp(e,t,n,r)}finally{I.p=a,F.T=i}}function fp(e,t,n,r){var i=F.T;F.T=null;var a=I.p;try{I.p=8,pp(e,t,n,r)}finally{I.p=a,F.T=i}}function pp(e,t,n,r){if(up){var i=mp(r);if(i===null)Od(e,t,r,hp,n),Tp(e,r);else if(Dp(i,e,t,n,r))r.stopPropagation();else if(Tp(e,r),t&4&&-1<wp.indexOf(e)){for(;i!==null;){var a=mt(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=He(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-Fe(o);s.entanglements[1]|=c,o&=~c}sd(a),!(zl&6)&&(iu=Ce()+500,cd(0,!1))}}break;case 31:case 13:s=ti(a,2),s!==null&&vu(s,a,2),Cu(),sp(a,2)}if(a=mp(r),a===null&&Od(e,t,r,hp,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else Od(e,t,r,null,n)}}function mp(e){return e=$t(e),gp(e)}var hp=null;function gp(e){if(hp=null,e=pt(e),e!==null){var t=o(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=s(t),e!==null)return e;e=null}else if(n===31){if(e=c(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return hp=e,null}function _p(e){switch(e){case`beforetoggle`:case`cancel`:case`click`:case`close`:case`contextmenu`:case`copy`:case`cut`:case`auxclick`:case`dblclick`:case`dragend`:case`dragstart`:case`drop`:case`focusin`:case`focusout`:case`input`:case`invalid`:case`keydown`:case`keypress`:case`keyup`:case`mousedown`:case`mouseup`:case`paste`:case`pause`:case`play`:case`pointercancel`:case`pointerdown`:case`pointerup`:case`ratechange`:case`reset`:case`resize`:case`seeked`:case`submit`:case`toggle`:case`touchcancel`:case`touchend`:case`touchstart`:case`volumechange`:case`change`:case`selectionchange`:case`textInput`:case`compositionstart`:case`compositionend`:case`compositionupdate`:case`beforeblur`:case`afterblur`:case`beforeinput`:case`blur`:case`fullscreenchange`:case`focus`:case`hashchange`:case`popstate`:case`select`:case`selectstart`:return 2;case`drag`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`mousemove`:case`mouseout`:case`mouseover`:case`pointermove`:case`pointerout`:case`pointerover`:case`scroll`:case`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 8;case`message`:switch(we()){case Te:return 2;case Ee:return 8;case De:case Oe:return 32;case ke:return 268435456;default:return 32}default:return 32}}var vp=!1,Z=null,yp=null,bp=null,xp=new Map,Sp=new Map,Cp=[],wp=`mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset`.split(` `);function Tp(e,t){switch(e){case`focusin`:case`focusout`:Z=null;break;case`dragenter`:case`dragleave`:yp=null;break;case`mouseover`:case`mouseout`:bp=null;break;case`pointerover`:case`pointerout`:xp.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:Sp.delete(t.pointerId)}}function Ep(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=mt(t),t!==null&&cp(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Dp(e,t,n,r,i){switch(t){case`focusin`:return Z=Ep(Z,e,t,n,r,i),!0;case`dragenter`:return yp=Ep(yp,e,t,n,r,i),!0;case`mouseover`:return bp=Ep(bp,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return xp.set(a,Ep(xp.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,Sp.set(a,Ep(Sp.get(a)||null,e,t,n,r,i)),!0}return!1}function Op(e){var t=pt(e.target);if(t!==null){var n=o(t);if(n!==null){if(t=n.tag,t===13){if(t=s(n),t!==null){e.blockedOn=t,nt(e.priority,function(){lp(n)});return}}else if(t===31){if(t=c(n),t!==null){e.blockedOn=t,nt(e.priority,function(){lp(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function kp(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=mp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);Qt=r,n.target.dispatchEvent(r),Qt=null}else return t=mt(n),t!==null&&cp(t),e.blockedOn=n,!1;t.shift()}return!0}function Ap(e,t,n){kp(e)&&n.delete(t)}function jp(){vp=!1,Z!==null&&kp(Z)&&(Z=null),yp!==null&&kp(yp)&&(yp=null),bp!==null&&kp(bp)&&(bp=null),xp.forEach(Ap),Sp.forEach(Ap)}function Q(e,n){e.blockedOn===n&&(e.blockedOn=null,vp||(vp=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,jp)))}var Mp=null;function Np(e){Mp!==e&&(Mp=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){Mp===e&&(Mp=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(gp(r||n)===null)continue;break}var a=mt(n);a!==null&&(e.splice(t,3),t-=3,Cs(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Pp(e){function t(t){return Q(t,e)}Z!==null&&Q(Z,e),yp!==null&&Q(yp,e),bp!==null&&Q(bp,e),xp.forEach(t),Sp.forEach(t);for(var n=0;n<Cp.length;n++){var r=Cp[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<Cp.length&&(n=Cp[0],n.blockedOn===null);)Op(n),n.blockedOn===null&&Cp.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[at]||null;if(typeof a==`function`)o||Np(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[at]||null)s=o.formAction;else if(gp(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Np(n)}}}function Fp(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function Ip(e){this._internalRoot=e}Lp.prototype.render=Ip.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(i(409));var n=t.current;ap(n,gu(),e,t,null,null)},Lp.prototype.unmount=Ip.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;ap(e.current,2,null,e,null,null),Cu(),t[ot]=null}};function Lp(e){this._internalRoot=e}Lp.prototype.unstable_scheduleHydration=function(e){if(e){var t=tt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Cp.length&&t!==0&&t<Cp[n].priority;n++);Cp.splice(n,0,e),n===0&&Op(e)}};var Rp=n.version;if(Rp!==`19.2.8`)throw Error(i(527,Rp,`19.2.8`));I.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(i(188)):(e=Object.keys(e).join(`,`),Error(i(268,e)));return e=d(t),e=e===null?null:p(e),e=e===null?null:e.stateNode,e};var zp={bundleType:0,version:`19.2.8`,rendererPackageName:`react-dom`,currentDispatcherRef:F,reconcilerVersion:`19.2.8`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var Bp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Bp.isDisabled&&Bp.supportsFiber)try{Me=Bp.inject(zp),Ne=Bp}catch{}}e.createRoot=function(e,t){if(!a(e))throw Error(i(299));var n=!1,r=``,o=Ks,s=qs,c=Js;return t!=null&&(!0===t.unstable_strictMode&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onUncaughtError!==void 0&&(o=t.onUncaughtError),t.onCaughtError!==void 0&&(s=t.onCaughtError),t.onRecoverableError!==void 0&&(c=t.onRecoverableError)),t=rp(e,1,!1,null,null,n,r,null,o,s,c,Fp),e[ot]=t.current,Ed(e),new Ip(t)}})),g=o(((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=h()})),_=o((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})),v=o(((e,t)=>{t.exports=_()})),y=c(u(),1),b=g(),x=v();function S(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=S(e[n]))!==``&&(t+=(t&&` `)+r);else for(let n in e)e[n]&&(t+=(t&&` `)+n);return t}var C={value:()=>{}};function w(){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 T(n)}function T(e){this._=e}function E(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}})}T.prototype=w.prototype={constructor:T,on:function(e,t){var n=this._,r=E(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=D(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]=O(n[i],e.name,t);else if(t==null)for(i in n)n[i]=O(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 T(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 D(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function O(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=C,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var k={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 A(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),k.hasOwnProperty(t)?{space:k[t],local:e}:e}function j(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 M(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function N(e){var t=A(e);return(t.local?M:j)(t)}function P(){}function ee(e){return e==null?P:function(){return this.querySelector(e)}}function F(e){typeof e!=`function`&&(e=ee(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 Lt(r,this._parents)}function I(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function te(){return[]}function ne(e){return e==null?te:function(){return this.querySelectorAll(e)}}function L(e){return function(){return I(e.apply(this,arguments))}}function R(e){e=typeof e==`function`?L(e):ne(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 Lt(r,i)}function z(e){return function(){return this.matches(e)}}function B(e){return function(t){return t.matches(e)}}var re=Array.prototype.find;function ie(e){return function(){return re.call(this.children,e)}}function ae(){return this.firstElementChild}function oe(e){return this.select(e==null?ae:ie(typeof e==`function`?e:B(e)))}var se=Array.prototype.filter;function ce(){return Array.from(this.children)}function le(e){return function(){return se.call(this.children,e)}}function ue(e){return this.selectAll(e==null?ce:le(typeof e==`function`?e:B(e)))}function de(e){typeof e!=`function`&&(e=z(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 Lt(r,this._parents)}function fe(e){return Array(e.length)}function pe(){return new Lt(this._enter||this._groups.map(fe),this._parents)}function me(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}me.prototype={constructor:me,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 he(e){return function(){return e}}function ge(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 me(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function _e(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 me(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function ve(e){return e.__data__}function ye(e,t){if(!arguments.length)return Array.from(this,ve);var n=t?_e:ge,r=this._parents,i=this._groups;typeof e!=`function`&&(e=he(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=be(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 Lt(o,r),o._enter=s,o._exit=c,o}function be(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function xe(){return new Lt(this._exit||this._groups.map(fe),this._parents)}function Se(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 Ce(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 Lt(s,this._parents)}function we(){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 Te(e){e||=Ee;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 Lt(i,this._parents).order()}function Ee(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function De(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Oe(){return Array.from(this)}function ke(){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 Ae(){let e=0;for(let t of this)++e;return e}function je(){return!this.node()}function Me(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 Ne(e){return function(){this.removeAttribute(e)}}function Pe(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Fe(e,t){return function(){this.setAttribute(e,t)}}function Ie(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Le(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Re(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 ze(e,t){var n=A(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?Pe:Ne:typeof t==`function`?n.local?Re:Le:n.local?Ie:Fe)(n,t))}function Be(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Ve(e){return function(){this.style.removeProperty(e)}}function He(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Ue(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function We(e,t,n){return arguments.length>1?this.each((t==null?Ve:typeof t==`function`?Ue:He)(e,t,n??``)):Ge(this.node(),e)}function Ge(e,t){return e.style.getPropertyValue(t)||Be(e).getComputedStyle(e,null).getPropertyValue(t)}function Ke(e){return function(){delete this[e]}}function qe(e,t){return function(){this[e]=t}}function Je(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Ye(e,t){return arguments.length>1?this.each((t==null?Ke:typeof t==`function`?Je:qe)(e,t)):this.node()[e]}function Xe(e){return e.trim().split(/^|\s+/)}function Ze(e){return e.classList||new Qe(e)}function Qe(e){this._node=e,this._names=Xe(e.getAttribute(`class`)||``)}Qe.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 $e(e,t){for(var n=Ze(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function et(e,t){for(var n=Ze(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function tt(e){return function(){$e(this,e)}}function nt(e){return function(){et(this,e)}}function rt(e,t){return function(){(t.apply(this,arguments)?$e:et)(this,e)}}function it(e,t){var n=Xe(e+``);if(arguments.length<2){for(var r=Ze(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?rt:t?tt:nt)(n,t))}function at(){this.textContent=``}function ot(e){return function(){this.textContent=e}}function st(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function ct(e){return arguments.length?this.each(e==null?at:(typeof e==`function`?st:ot)(e)):this.node().textContent}function lt(){this.innerHTML=``}function ut(e){return function(){this.innerHTML=e}}function dt(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function ft(e){return arguments.length?this.each(e==null?lt:(typeof e==`function`?dt:ut)(e)):this.node().innerHTML}function pt(){this.nextSibling&&this.parentNode.appendChild(this)}function mt(){return this.each(pt)}function ht(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function gt(){return this.each(ht)}function _t(e){var t=typeof e==`function`?e:N(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function vt(){return null}function yt(e,t){var n=typeof e==`function`?e:N(e),r=t==null?vt:typeof t==`function`?t:ee(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function bt(){var e=this.parentNode;e&&e.removeChild(this)}function xt(){return this.each(bt)}function St(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Ct(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function wt(e){return this.select(e?Ct:St)}function Tt(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function Et(e){return function(t){e.call(this,t,this.__data__)}}function Dt(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 Ot(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 kt(e,t,n){return function(){var r=this.__on,i,a=Et(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 At(e,t,n){var r=Dt(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?kt:Ot,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function jt(e,t,n){var r=Be(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 Mt(e,t){return function(){return jt(this,e,t)}}function Nt(e,t){return function(){return jt(this,e,t.apply(this,arguments))}}function Pt(e,t){return this.each((typeof t==`function`?Nt:Mt)(e,t))}function*Ft(){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 It=[null];function Lt(e,t){this._groups=e,this._parents=t}function Rt(){return new Lt([[document.documentElement]],It)}function zt(){return this}Lt.prototype=Rt.prototype={constructor:Lt,select:F,selectAll:R,selectChild:oe,selectChildren:ue,filter:de,data:ye,enter:pe,exit:xe,join:Se,merge:Ce,selection:zt,order:we,sort:Te,call:De,nodes:Oe,node:ke,size:Ae,empty:je,each:Me,attr:ze,style:We,property:Ye,classed:it,text:ct,html:ft,raise:mt,lower:gt,append:_t,insert:yt,remove:xt,clone:wt,datum:Tt,on:At,dispatch:Pt,[Symbol.iterator]:Ft};function Bt(e){return typeof e==`string`?new Lt([[document.querySelector(e)]],[document.documentElement]):new Lt([[e]],It)}function Vt(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Ht(e,t){if(e=Vt(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 Ut={passive:!1},Wt={capture:!0,passive:!1};function Gt(e){e.stopImmediatePropagation()}function Kt(e){e.preventDefault(),e.stopImmediatePropagation()}function qt(e){var t=e.document.documentElement,n=Bt(e).on(`dragstart.drag`,Kt,Wt);`onselectstart`in t?n.on(`selectstart.drag`,Kt,Wt):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect=`none`)}function Jt(e,t){var n=e.document.documentElement,r=Bt(e).on(`dragstart.drag`,null);t&&(r.on(`click.drag`,Kt,Wt),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 Yt=e=>()=>e;function Xt(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}})}Xt.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Zt(e){return!e.ctrlKey&&!e.button}function Qt(){return this.parentNode}function $t(e,t){return t??{x:e.x,y:e.y}}function en(){return navigator.maxTouchPoints||`ontouchstart`in this}function tn(){var e=Zt,t=Qt,n=$t,r=en,i={},a=w(`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`,_,Ut).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&&(Bt(n.view).on(`mousemove.drag`,m,Wt).on(`mouseup.drag`,h,Wt),qt(n.view),Gt(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(Kt(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){Bt(e.view).on(`mousemove.drag mouseup.drag`,null),Jt(e.view,l),Kt(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]))&&(Gt(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])&&(Kt(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])&&(Gt(e),a(`end`,e,t[r]))}function y(e,t,r,s,c,l){var u=a.copy(),d=Ht(l||r,t),p,m,h;if((h=n.call(e,new Xt(`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=Ht(l||a,t),_=o}u.call(r,e,new Xt(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:Yt(!!t),f):e},f.container=function(e){return arguments.length?(t=typeof e==`function`?e:Yt(e),f):t},f.subject=function(e){return arguments.length?(n=typeof e==`function`?e:Yt(e),f):n},f.touchable=function(e){return arguments.length?(r=typeof e==`function`?e:Yt(!!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 nn(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function rn(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function an(){}var on=.7,sn=1/on,cn=`\\s*([+-]?\\d+)\\s*`,ln=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,un=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,dn=/^#([0-9a-f]{3,8})$/,fn=RegExp(`^rgb\\(${cn},${cn},${cn}\\)$`),pn=RegExp(`^rgb\\(${un},${un},${un}\\)$`),mn=RegExp(`^rgba\\(${cn},${cn},${cn},${ln}\\)$`),hn=RegExp(`^rgba\\(${un},${un},${un},${ln}\\)$`),gn=RegExp(`^hsl\\(${ln},${un},${un}\\)$`),_n=RegExp(`^hsla\\(${ln},${un},${un},${ln}\\)$`),vn={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};nn(an,Cn,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:yn,formatHex:yn,formatHex8:bn,formatHsl:xn,formatRgb:Sn,toString:Sn});function yn(){return this.rgb().formatHex()}function bn(){return this.rgb().formatHex8()}function xn(){return In(this).formatHsl()}function Sn(){return this.rgb().formatRgb()}function Cn(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=dn.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?wn(t):n===3?new On(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Tn(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Tn(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=fn.exec(e))?new On(t[1],t[2],t[3],1):(t=pn.exec(e))?new On(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=mn.exec(e))?Tn(t[1],t[2],t[3],t[4]):(t=hn.exec(e))?Tn(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=gn.exec(e))?Fn(t[1],t[2]/100,t[3]/100,1):(t=_n.exec(e))?Fn(t[1],t[2]/100,t[3]/100,t[4]):vn.hasOwnProperty(e)?wn(vn[e]):e===`transparent`?new On(NaN,NaN,NaN,0):null}function wn(e){return new On(e>>16&255,e>>8&255,e&255,1)}function Tn(e,t,n,r){return r<=0&&(e=t=n=NaN),new On(e,t,n,r)}function En(e){return e instanceof an||(e=Cn(e)),e?(e=e.rgb(),new On(e.r,e.g,e.b,e.opacity)):new On}function Dn(e,t,n,r){return arguments.length===1?En(e):new On(e,t,n,r??1)}function On(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}nn(On,Dn,rn(an,{brighter(e){return e=e==null?sn:sn**+e,new On(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?on:on**+e,new On(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new On(Nn(this.r),Nn(this.g),Nn(this.b),Mn(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:kn,formatHex:kn,formatHex8:An,formatRgb:jn,toString:jn}));function kn(){return`#${Pn(this.r)}${Pn(this.g)}${Pn(this.b)}`}function An(){return`#${Pn(this.r)}${Pn(this.g)}${Pn(this.b)}${Pn((isNaN(this.opacity)?1:this.opacity)*255)}`}function jn(){let e=Mn(this.opacity);return`${e===1?`rgb(`:`rgba(`}${Nn(this.r)}, ${Nn(this.g)}, ${Nn(this.b)}${e===1?`)`:`, ${e})`}`}function Mn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Nn(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Pn(e){return e=Nn(e),(e<16?`0`:``)+e.toString(16)}function Fn(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Rn(e,t,n,r)}function In(e){if(e instanceof Rn)return new Rn(e.h,e.s,e.l,e.opacity);if(e instanceof an||(e=Cn(e)),!e)return new Rn;if(e instanceof Rn)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 Rn(o,s,c,e.opacity)}function Ln(e,t,n,r){return arguments.length===1?In(e):new Rn(e,t,n,r??1)}function Rn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}nn(Rn,Ln,rn(an,{brighter(e){return e=e==null?sn:sn**+e,new Rn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?on:on**+e,new Rn(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 On(Vn(e>=240?e-240:e+120,i,r),Vn(e,i,r),Vn(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new Rn(zn(this.h),Bn(this.s),Bn(this.l),Mn(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=Mn(this.opacity);return`${e===1?`hsl(`:`hsla(`}${zn(this.h)}, ${Bn(this.s)*100}%, ${Bn(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function zn(e){return e=(e||0)%360,e<0?e+360:e}function Bn(e){return Math.max(0,Math.min(1,e||0))}function Vn(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 Hn=e=>()=>e;function Un(e,t){return function(n){return e+n*t}}function Wn(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function Gn(e){return(e=+e)==1?Kn:function(t,n){return n-t?Wn(t,n,e):Hn(isNaN(t)?n:t)}}function Kn(e,t){var n=t-e;return n?Un(e,n):Hn(isNaN(e)?t:e)}var qn=(function e(t){var n=Gn(t);function r(e,t){var r=n((e=Dn(e)).r,(t=Dn(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=Kn(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 Jn(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 Yn(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Xn(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]=ar(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 Zn(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Qn(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function $n(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]=ar(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var er=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,tr=new RegExp(er.source,`g`);function nr(e){return function(){return e}}function rr(e){return function(t){return e(t)+``}}function ir(e,t){var n=er.lastIndex=tr.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=er.exec(e))&&(i=tr.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:Qn(r,i)})),n=tr.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?rr(c[0].x):nr(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 ar(e,t){var n=typeof t,r;return t==null||n===`boolean`?Hn(t):(n===`number`?Qn:n===`string`?(r=Cn(t))?(t=r,qn):ir:t instanceof Cn?qn:t instanceof Date?Zn:Yn(t)?Jn:Array.isArray(t)?Xn:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?$n:Qn)(e,t)}var or=180/Math.PI,sr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function cr(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)*or,skewX:Math.atan(c)*or,scaleX:o,scaleY:s}}var lr;function ur(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?sr:cr(t.a,t.b,t.c,t.d,t.e,t.f)}function dr(e){return e==null||(lr||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),lr.setAttribute(`transform`,e),!(e=lr.transform.baseVal.consolidate()))?sr:(e=e.matrix,cr(e.a,e.b,e.c,e.d,e.e,e.f))}function fr(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:Qn(e,i)},{i:c-2,x:Qn(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:Qn(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:Qn(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:Qn(e,n)},{i:s-2,x:Qn(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 pr=fr(ur,`px, `,`px)`,`deg)`),mr=fr(dr,`, `,`)`,`)`),hr=1e-12;function gr(e){return((e=Math.exp(e))+1/e)/2}function _r(e){return((e=Math.exp(e))-1/e)/2}function vr(e){return((e=Math.exp(2*e))-1)/(e+1)}var yr=(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<hr)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=gr(y),c=s/(n*g)*(i*vr(t*r+y)-_r(y));return[a+c*d,o+c*f,s*i/gr(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),br=0,xr=0,Sr=0,Cr=1e3,wr,Tr,Er=0,Dr=0,Or=0,kr=typeof performance==`object`&&performance.now?performance:Date,Ar=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function jr(){return Dr||=(Ar(Mr),kr.now()+Or)}function Mr(){Dr=0}function Nr(){this._call=this._time=this._next=null}Nr.prototype=Pr.prototype={constructor:Nr,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?jr():+n)+(t==null?0:+t),!this._next&&Tr!==this&&(Tr?Tr._next=this:wr=this,Tr=this),this._call=e,this._time=n,zr()},stop:function(){this._call&&(this._call=null,this._time=1/0,zr())}};function Pr(e,t,n){var r=new Nr;return r.restart(e,t,n),r}function Fr(){jr(),++br;for(var e=wr,t;e;)(t=Dr-e._time)>=0&&e._call.call(void 0,t),e=e._next;--br}function Ir(){Dr=(Er=kr.now())+Or,br=xr=0;try{Fr()}finally{br=0,Rr(),Dr=0}}function Lr(){var e=kr.now(),t=e-Er;t>Cr&&(Or-=t,Er=e)}function Rr(){for(var e,t=wr,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:wr=n);Tr=e,zr(r)}function zr(e){br||(xr&&=clearTimeout(xr),e-Dr>24?(e<1/0&&(xr=setTimeout(Ir,e-kr.now()-Or)),Sr&&=clearInterval(Sr)):(Sr||=(Er=kr.now(),setInterval(Lr,Cr)),br=1,Ar(Ir)))}function Br(e,t,n){var r=new Nr;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var Vr=w(`start`,`end`,`cancel`,`interrupt`),Hr=[];function Ur(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;qr(e,n,{name:t,index:r,group:i,on:Vr,tween:Hr,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function Wr(e,t){var n=Kr(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function Gr(e,t){var n=Kr(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function Kr(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function qr(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=Pr(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 Br(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(Br(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 Jr(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 Yr(e){return this.each(function(){Jr(this,e)})}function Xr(e,t){var n,r;return function(){var i=Gr(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 Zr(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=Gr(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 Qr(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=Kr(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?Xr:Zr)(n,e,t))}function $r(e,t,n){var r=e._id;return e.each(function(){var e=Gr(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return Kr(e,r).value[t]}}function ei(e,t){var n;return(typeof t==`number`?Qn:t instanceof Cn?qn:(n=Cn(t))?(t=n,qn):ir)(e,t)}function ti(e){return function(){this.removeAttribute(e)}}function ni(e){return function(){this.removeAttributeNS(e.space,e.local)}}function ri(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 ii(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 ai(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 oi(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 si(e,t){var n=A(e),r=n===`transform`?mr:ei;return this.attrTween(e,typeof t==`function`?(n.local?oi:ai)(n,r,$r(this,`attr.`+e,t)):t==null?(n.local?ni:ti)(n):(n.local?ii:ri)(n,r,t))}function ci(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function li(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function ui(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&li(e,i)),n}return i._value=t,i}function di(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&ci(e,i)),n}return i._value=t,i}function fi(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=A(e);return this.tween(n,(r.local?ui:di)(r,t))}function pi(e,t){return function(){Wr(this,e).delay=+t.apply(this,arguments)}}function mi(e,t){return t=+t,function(){Wr(this,e).delay=t}}function hi(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?pi:mi)(t,e)):Kr(this.node(),t).delay}function gi(e,t){return function(){Gr(this,e).duration=+t.apply(this,arguments)}}function _i(e,t){return t=+t,function(){Gr(this,e).duration=t}}function vi(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?gi:_i)(t,e)):Kr(this.node(),t).duration}function yi(e,t){if(typeof t!=`function`)throw Error();return function(){Gr(this,e).ease=t}}function bi(e){var t=this._id;return arguments.length?this.each(yi(t,e)):Kr(this.node(),t).ease}function xi(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();Gr(this,e).ease=n}}function Si(e){if(typeof e!=`function`)throw Error();return this.each(xi(this._id,e))}function Ci(e){typeof e!=`function`&&(e=z(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 Zi(r,this._parents,this._name,this._id)}function wi(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 Zi(o,this._parents,this._name,this._id)}function Ti(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 Ei(e,t,n){var r,i,a=Ti(t)?Wr:Gr;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Di(e,t){var n=this._id;return arguments.length<2?Kr(this.node(),n).on.on(e):this.each(Ei(n,e,t))}function Oi(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function ki(){return this.on(`end.remove`,Oi(this._id))}function Ai(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=ee(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,Ur(l[f],t,n,f,l,Kr(u,n)));return new Zi(a,this._parents,t,n)}function ji(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=ne(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=Kr(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&Ur(p,t,n,h,f,m);a.push(f),o.push(u)}return new Zi(a,o,t,n)}var Mi=Rt.prototype.constructor;function V(){return new Mi(this._groups,this._parents)}function Ni(e,t){var n,r,i;return function(){var a=Ge(this,e),o=(this.style.removeProperty(e),Ge(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function Pi(e){return function(){this.style.removeProperty(e)}}function Fi(e,t,n){var r,i=n+``,a;return function(){var o=Ge(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function Ii(e,t,n){var r,i,a;return function(){var o=Ge(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),Ge(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function Li(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=Gr(this,e),l=c.on,u=c.value[a]==null?s||=Pi(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function Ri(e,t,n){var r=(e+=``)==`transform`?pr:ei;return t==null?this.styleTween(e,Ni(e,r)).on(`end.style.`+e,Pi(e)):typeof t==`function`?this.styleTween(e,Ii(e,r,$r(this,`style.`+e,t))).each(Li(this._id,e)):this.styleTween(e,Fi(e,r,t),n).on(`end.style.`+e,null)}function zi(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Bi(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&zi(e,a,n)),r}return a._value=t,a}function Vi(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,Bi(e,t,n??``))}function Hi(e){return function(){this.textContent=e}}function Ui(e){return function(){var t=e(this);this.textContent=t??``}}function Wi(e){return this.tween(`text`,typeof e==`function`?Ui($r(this,`text`,e)):Hi(e==null?``:e+``))}function Gi(e){return function(t){this.textContent=e.call(this,t)}}function Ki(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&Gi(r)),t}return r._value=e,r}function qi(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,Ki(e))}function Ji(){for(var e=this._name,t=this._id,n=Qi(),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=Kr(c,t);Ur(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Zi(r,this._parents,e,n)}function Yi(){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=Gr(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 Xi=0;function Zi(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Qi(){return++Xi}var $i=Rt.prototype;Zi.prototype={constructor:Zi,select:Ai,selectAll:ji,selectChild:$i.selectChild,selectChildren:$i.selectChildren,filter:Ci,merge:wi,selection:V,transition:Ji,call:$i.call,nodes:$i.nodes,node:$i.node,size:$i.size,empty:$i.empty,each:$i.each,on:Di,attr:si,attrTween:fi,style:Ri,styleTween:Vi,text:Wi,textTween:qi,remove:ki,tween:Qr,delay:hi,duration:vi,ease:bi,easeVarying:Si,end:Yi,[Symbol.iterator]:$i[Symbol.iterator]};function ea(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var ta={time:null,delay:0,duration:250,ease:ea};function na(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function ra(e){var t,n;e instanceof Zi?(t=e._id,e=e._name):(t=Qi(),(n=ta).time=jr(),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])&&Ur(c,e,t,l,o,n||na(c,t));return new Zi(r,this._parents,e,t)}Rt.prototype.interrupt=Yr,Rt.prototype.transition=ra;var ia=e=>()=>e;function aa(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 oa(e,t,n){this.k=e,this.x=t,this.y=n}oa.prototype={constructor:oa,scale:function(e){return e===1?this:new oa(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new oa(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 sa=new oa(1,0,0);ca.prototype=oa.prototype;function ca(e){for(;!e.__zoom;)if(!(e=e.parentNode))return sa;return e.__zoom}function la(e){e.stopImmediatePropagation()}function ua(e){e.preventDefault(),e.stopImmediatePropagation()}function da(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function fa(){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 pa(){return this.__zoom||sa}function ma(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function ha(){return navigator.maxTouchPoints||`ontouchstart`in this}function ga(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 _a(){var e=da,t=fa,n=ga,r=ma,i=ha,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=yr,l=w(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,pa).on(`wheel.zoom`,T,{passive:!1}).on(`mousedown.zoom`,E).on(`dblclick.zoom`,D).filter(i).on(`touchstart.zoom`,O).on(`touchmove.zoom`,k).on(`touchend.zoom touchcancel.zoom`,A).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`,pa),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(sa.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 oa(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 oa(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 oa(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=Bt(this.that).datum();l.call(e,this.that,new aa(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function T(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=Ht(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)],Jr(this),s.start();ua(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 E(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=Bt(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=Ht(t,i),l=t.clientX,u=t.clientY;qt(t.view),la(t),a.mouse=[c,this.__zoom.invert(c)],Jr(this),a.start();function d(e){if(ua(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]=Ht(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),Jt(e.view,a.moved),ua(e),a.event(e).end()}}function D(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=Ht(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);ua(r),s>0?Bt(this).transition().duration(s).call(x,d,c,r):Bt(this).call(_.transform,d,c,r)}}function O(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(la(t),s=0;s<i;++s)c=r[s],l=Ht(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)),Jr(this),a.start())}}function k(e,...t){if(this.__zooming){var r=S(this,t).event(e),i=e.changedTouches,a=i.length,s,c,l,u;for(ua(e),s=0;s<a;++s)c=i[s],l=Ht(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 A(e,...t){if(this.__zooming){var n=S(this,t).event(e),r=e.changedTouches,i=r.length,a,o;for(la(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=Ht(o,this),Math.hypot(d[0]-o[0],d[1]-o[1])<g)){var s=Bt(this).on(`dblclick.zoom`);s&&s.apply(this,arguments)}}}return _.wheelDelta=function(e){return arguments.length?(r=typeof e==`function`?e:ia(+e),_):r},_.filter=function(t){return arguments.length?(e=typeof t==`function`?t:ia(!!t),_):e},_.touchable=function(e){return arguments.length?(i=typeof e==`function`?e:ia(!!e),_):i},_.extent=function(e){return arguments.length?(t=typeof e==`function`?e:ia([[+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 va={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.`},ya=[[-1/0,-1/0],[1/0,1/0]],ba=[`Enter`,` `,`Escape`],xa={"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`},Sa;(function(e){e.Strict=`strict`,e.Loose=`loose`})(Sa||={});var Ca;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(Ca||={});var wa;(function(e){e.Partial=`partial`,e.Full=`full`})(wa||={});var Ta={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},Ea;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(Ea||={});var Da;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(Da||={});var H;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})(H||={});var Oa={[H.Left]:H.Right,[H.Right]:H.Left,[H.Top]:H.Bottom,[H.Bottom]:H.Top},ka=e=>!!e&&typeof e==`object`&&`id`in e&&`source`in e&&`target`in e,Aa=e=>!!e&&typeof e==`object`&&`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),ja=e=>!!e&&typeof e==`object`&&`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),Ma=(e,t=[0,0])=>{let{width:n,height:r}=uo(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},Na=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};let n=!1,r=e.reduce((e,r)=>{let i=typeof r==`string`,a=!t.nodeLookup&&!i?r:void 0;return t.nodeLookup&&(a=i?t.nodeLookup.get(r):ja(r)?r:t.nodeLookup.get(r.id)),a?(n=!0,Ka(e,Xa(a,t.nodeOrigin))):e},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return n?Ja(r):{x:0,y:0,width:0,height:0}},Pa=(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=Ka(n,Xa(e)),r=!0)}),r?Ja(n):{x:0,y:0,width:0,height:0}},Fa=(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=Qa(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},Ia=(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 La(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}=uo(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 Ra({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=lo(Pa(La(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 za({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`,va.error005());else{let{width:e,height:t}=uo(s);e&&t&&(d=[[c,l],[c+e,l+t]])}}else s&&W(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=W(d)?Ha(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,va.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 Ba({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=Ia(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 Va=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Ha=(e={x:0,y:0},t,n)=>({x:Va(e.x,t[0][0],t[1][0]-(n?.width??0)),y:Va(e.y,t[0][1],t[1][1]-(n?.height??0))});function Ua(e,t,n){let{width:r,height:i}=uo(n),{x:a,y:o}=n.internals.positionAbsolute;return Ha(e,[[a,o],[a+r,o+i]],t)}var Wa=(e,t,n)=>e<t?Va(Math.abs(e-t),1,t)/t:e>n?-Va(Math.abs(e-n),1,t)/t:0,Ga=(e,t,n=15,r=40)=>[Wa(e.x,r,t.width-r)*n,Wa(e.y,r,t.height-r)*n],Ka=(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)}),qa=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),Ja=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),Ya=(e,t=[0,0])=>{let{x:n,y:r}=ja(e)?e.internals.positionAbsolute:Ma(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}},Xa=(e,t=[0,0])=>{let{x:n,y:r}=ja(e)?e.internals.positionAbsolute:Ma(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)}},Za=(e,t)=>Ja(Ka(qa(e),qa(t))),Qa=(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)},$a=(e,t)=>Qa(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),eo=e=>to(e.width)&&to(e.height)&&to(e.x)&&to(e.y),to=e=>!isNaN(e)&&isFinite(e),no=(e,t)=>(e,t)=>{},ro=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),io=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?ro(s,o):s},ao=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function oo(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 so(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=oo(e,n),i=oo(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=oo(e.top??e.y??0,n),i=oo(e.bottom??e.y??0,n),a=oo(e.left??e.x??0,t),o=oo(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 co(e,t,n,r,i,a){let{x:o,y:s}=ao(e,[t,n,r]),{x:c,y:l}=ao({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 lo=(e,t,n,r,i,a)=>{let o=so(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=Va(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=co(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}},U=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function W(e){return e!=null&&e!==`parent`}function uo(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function fo(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function po(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 mo(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function ho(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function go(e){return{...xa,...e||{}}}function _o(e){return e===null?null:e?`valid`:`invalid`}function vo(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=wo(e),s=io({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?ro(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var yo=e=>({width:e.offsetWidth,height:e.offsetHeight}),bo=e=>e?.getRootNode?.()||window?.document,xo=[`INPUT`,`SELECT`,`TEXTAREA`];function So(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?xo.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var Co=e=>`clientX`in e,wo=(e,t)=>{let n=Co(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)}},To=(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,...yo(t)}})};function Eo({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 Do(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Oo({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case H.Left:return[t-Do(t-r,a),n];case H.Right:return[t+Do(r-t,a),n];case H.Top:return[t,n-Do(n-i,a)];case H.Bottom:return[t,n+Do(i-n,a)]}}function ko({sourceX:e,sourceY:t,sourcePosition:n=H.Bottom,targetX:r,targetY:i,targetPosition:a=H.Top,curvature:o=.25}){let[s,c]=Oo({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=Oo({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=Eo({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 Ao({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 jo({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 Mo({sourceNode:e,targetNode:t,width:n,height:r,transform:i}){let a=Ka(Xa(e),Xa(t));return a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1),$a({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},Ja(a))>0}var No=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,Po=(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)),Fo=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,va.error006()),t;let r=n.getEdgeId||No,i;return i=ka(e)?{...e}:{...e,id:r(e)},Po(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function Io({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=Ao({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var Lo={[H.Left]:{x:-1,y:0},[H.Right]:{x:1,y:0},[H.Top]:{x:0,y:-1},[H.Bottom]:{x:0,y:1}},Ro=({source:e,sourcePosition:t=H.Bottom,target:n})=>t===H.Left||t===H.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},zo=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function Bo({source:e,sourcePosition:t=H.Bottom,target:n,targetPosition:r=H.Top,center:i,offset:a,stepPosition:o}){let s=Lo[t],c=Lo[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=Ro({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]=Ao({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 Vo(e,t,n,r){let i=Math.min(zo(e,t)/2,zo(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 Ho({sourceX:e,sourceY:t,sourcePosition:n=H.Bottom,targetX:r,targetY:i,targetPosition:a=H.Top,borderRadius:o=5,centerX:s,centerY:c,offset:l=20,stepPosition:u=.5}){let[d,f,p,m,h]=Bo({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+=Vo(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 Uo(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function Wo(e){let{sourceNode:t,targetNode:n}=e;if(!Uo(t)||!Uo(n))return null;let r=t.internals.handleBounds||Go(t.handles),i=n.internals.handleBounds||Go(n.handles),a=qo(r?.source??[],e.sourceHandle),o=qo(e.connectionMode===Sa.Strict?i?.target??[]:(i?.target??[]).concat(i?.source??[]),e.targetHandle);if(!a||!o)return e.onError?.(`008`,va.error008(a?`target`:`source`,{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let s=a?.position||H.Bottom,c=o?.position||H.Top,l=Ko(t,a,s),u=Ko(n,o,c);return{sourceX:l.x,sourceY:l.y,targetX:u.x,targetY:u.y,sourcePosition:s,targetPosition:c}}function Go(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 Ko(e,t,n=H.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??uo(e);if(r)return{x:i+o/2,y:a+s/2};switch(t?.position??n){case H.Top:return{x:i+o/2,y:a};case H.Right:return{x:i+o,y:a+s/2};case H.Bottom:return{x:i+o/2,y:a+s};case H.Left:return{x:i,y:a+s/2}}}function qo(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function Jo(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function Yo(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=Jo(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 Xo=1e3,Zo=10,Qo={nodeOrigin:[0,0],nodeExtent:ya,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},$o={...Qo,checkEquality:!0};function es(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function ts(e,t,n){let r=es(Qo,n);for(let n of e.values())if(n.parentId)os(n,e,t,r);else{let e=Ha(Ma(n,r.nodeOrigin),W(n.extent)?n.extent:r.nodeExtent,uo(n));n.internals.positionAbsolute=e}}function ns(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 rs(e){return e===`manual`}function is(e,t,n,r={}){let i=es($o,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!rs(i.zIndexMode)?Xo: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=Ha(Ma(u,i.nodeOrigin),W(u.extent)?u.extent:i.nodeExtent,uo(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:ns(u,e),z:ss(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&&os(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function as(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 os(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=es(Qo,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}as(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*Zo),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=cs(e,u,o,s,a&&!rs(c)?Xo: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 ss(e,t,n){let r=to(e.zIndex)?e.zIndex:0;return rs(n)?r:r+(e.selected?t:0)}function cs(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=uo(e),l=Ma(e,n),u=W(e.extent)?Ha(l,e.extent,c):l,d=Ha({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=Ua(d,c,t));let f=ss(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function ls(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=Za(a.get(n.parentId)?.expandedRect??Ya(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=uo(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 us(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=yo(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=W(e.extent)?e.extent:a,{positionAbsolute:h}=e.internals;if(e.parentId&&e.extent===`parent`){let n=t.get(e.parentId);n&&(h=Ua(h,s,n))}else m&&(h=Ha(h,m,s));let g={...e,measured:s,internals:{...e.internals,positionAbsolute:h,handleBounds:{source:To(`source`,r.nodeElement,p,d,e.id),target:To(`target`,r.nodeElement,p,d,e.id)}}};t.set(e.id,g),e.parentId&&os(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:Ya(g,i)}))}}if(f.length>0){let e=ls(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function ds({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 fs(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 ps(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}`;fs(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),fs(`target`,s,c,e,i,o),t.set(r.id,r)}}function ms(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:ms(n,t):!1}function hs(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 gs(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!ms(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 _s({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 vs({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=ro(a,t);return{x:o.x-a.x,y:o.y-a.y}}function ys({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=Bt(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?qa(Pa(s)):null,x=v&&l?vs({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)}:ro(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}=za({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]=_s({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]=Ga(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=vo(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=gs(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=_s({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=tn().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=vo(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=wo(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=vo(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=wo(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=wo(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]=_s({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||!hs(t,`.${g}`,v))&&(!_||hs(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function bs(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())$a(i,Ya(e))>0&&r.push(e);return r}var xs=250;function Ss(e,t,n,r){let i=[],a=1/0,o=bs(e,n,t+xs);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}=Ko(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 Cs(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,...Ko(o,c,c.position,!0)}:c}function ws(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function Ts(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var Es=()=>!0;function Ds(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:_=Es,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=bo(e.target),E=0,D,{x:O,y:k}=wo(e),A=ws(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let N=Cs(i,A,r,c,t);if(!N)return;let P=wo(e,j),ee=!1,F=null,I=!1,te=null;function ne(){if(!u||!j)return;let[e,t]=Ga(P,j,S);f({x:e,y:t}),E=requestAnimationFrame(ne)}let L={...N,nodeId:i,type:A,position:N.position},R=c.get(i),z={inProgress:!0,isValid:null,from:Ko(R,L,H.Left,!0),fromHandle:L,fromPosition:L.position,fromNode:R,to:P,toHandle:null,toPosition:Oa[L.position],toNode:null,pointer:P};function B(){M=!0,y(z),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&B();function re(e){if(!M){let{x:t,y:n}=wo(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;B()}if(!x()||!L){ie(e);return}let a=b();P=wo(e,j),D=Ss(io(P,a,!1,[1,1]),n,c,L),ee||=(ne(),!0);let s=Os(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});te=s.handleDomNode,F=s.connection,I=Ts(!!D,s.isValid);let u=c.get(i),f=u?Ko(u,L,H.Left,!0):z.from,p={...z,from:f,isValid:I,to:s.toHandle&&I?ao({x:s.toHandle.x,y:s.toHandle.y},a):P,toHandle:s.toHandle,toPosition:I&&s.toHandle?s.toHandle.position:Oa[L.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:P};y(p),z=p}function ie(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||te)&&F&&I&&h?.(F);let{inProgress:t,...n}=z,r={...n,toPosition:z.toHandle?z.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),ee=!1,I=!1,F=null,te=null,T.removeEventListener(`mousemove`,re),T.removeEventListener(`mouseup`,ie),T.removeEventListener(`touchmove`,re),T.removeEventListener(`touchend`,ie)}}T.addEventListener(`mousemove`,re),T.addEventListener(`mouseup`,ie),T.addEventListener(`touchmove`,re),T.addEventListener(`touchend`,ie)}function Os(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=Es,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}=wo(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=ws(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===Sa.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=Cs(t,e,a,u,n,!0)}return _}var ks={onPointerDown:Ds,isValid:Os};function As({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=Bt(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&&U()?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=_a().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:Ht}}var js=e=>({x:e.x,y:e.y,zoom:e.k}),Ms=({x:e,y:t,zoom:n})=>sa.translate(e,t).scale(n),Ns=(e,t)=>e.target.closest(`.${t}`),Ps=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Fs=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Is=(e,t=0,n=Fs,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},Ls=e=>{let t=e.ctrlKey&&U()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Rs({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(Ns(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=Ht(u),t=d*2**Ls(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===Ca.Vertical?0:u.deltaX*f,m=i===Ca.Horizontal?0:u.deltaY*f;!U()&&u.shiftKey&&i!==Ca.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=js(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 zs({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=Ns(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function Bs({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=js(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 Vs({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&Ps(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,js(a.transform))}}function Hs({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&Ps(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=js(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function Us({panActivationKeyPressed:e,zoomActivationKeyPressed:t,zoomOnScroll:n,zoomOnPinch:r,panOnDrag:i,panOnScroll:a,zoomOnDoubleClick:o,userSelectionActive:s,noWheelClassName:c,noPanClassName:l,lib:u,connectionInProgress:d}){return f=>{let p=t||n,m=r&&f.ctrlKey,h=f.type===`wheel`;if(f.button===1&&f.type===`mousedown`&&(Ns(f,`${u}-flow__node`)||Ns(f,`${u}-flow__edge`)||Ns(f,`${u}-flow__selection`)||Ns(f,`${u}-flow__nodesselection`)))return!0;if(!i&&!p&&!a&&!o&&!r||s||d&&!h||Ns(f,c)&&h||Ns(f,l)&&(!h||a&&h&&!t)||!r&&f.ctrlKey&&h)return!1;if(!r&&f.type===`touchstart`&&f.touches?.length>1)return f.preventDefault(),!1;if(!p&&!a&&!m&&h||!i&&(f.type===`mousedown`||f.type===`touchstart`)||Array.isArray(i)&&!i.includes(f.button)&&f.type===`mousedown`)return!1;let g=Array.isArray(i)&&i.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||h||e)&&g}}function Ws({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=_a().extent(()=>d).scaleExtent([t,n]).translateExtent(r),p=Bt(e).call(f);y({x:i.x,y:i.y,zoom:Va(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta(Ls);async function g(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?ar:yr).transform(Is(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,panActivationKeyPressed:S=!1,zoomActivationKeyPressed:C,lib:w,onTransformChange:T,connectionInProgress:E,paneClickDistance:D,selectionOnDrag:O}){r&&!l.isZoomingOrPanning&&v();let k=i&&!C&&!r;f.clickDistance(O?1/0:!to(D)||D<0?0:D);let A=k?Rs({zoomPanValues:l,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):zs({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});p.on(`wheel.zoom`,A,{passive:!1});let j=Bs({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});f.on(`start`,j);let M=Vs({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:T});f.on(`zoom`,M);let N=Hs({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});f.on(`end`,N);let P=Us({panActivationKeyPressed:S,zoomActivationKeyPressed:C,panOnDrag:u,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:w,connectionInProgress:E});f.filter(P),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=Ms(e),i=f?.constrain()(r,t,n);return i&&await g(i),i}async function b(e,t){let n=Ms(e);return await g(n,t),n}function x(e){if(p){let t=Ms(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?ca(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`?ar:yr).scaleTo(Is(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function w(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?ar:yr).scaleBy(Is(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=!to(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 Gs;(function(e){e.Line=`line`,e.Handle=`handle`})(Gs||={});function Ks({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 qs(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 Js(e,t){return Math.max(0,t-e)}function Ys(e,t){return Math.max(0,e-t)}function Xs(e,t,n){return Math.max(0,t-e,e-n)}function Zs(e,t){return e?!t:t}function Qs(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=Xs(E,h,g),j=Xs(D,_,v);if(o){let e=0,t=0;c&&w<0?e=Js(y+w+O,o[0][0]):!c&&w>0&&(e=Ys(y+E+O,o[1][0])),l&&T<0?t=Js(b+T+k,o[0][1]):!l&&T>0&&(t=Ys(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=Ys(y+w,s[0][0]):!c&&w<0&&(e=Js(y+E,s[1][0])),l&&T>0?t=Ys(b+T,s[0][1]):!l&&T<0&&(t=Js(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=Xs(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?Ys(b+k+E/C,o[1][1])*C:Js(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?Js(b+E/C,s[1][1])*C:Ys(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=Xs(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?Ys(y+D*C+O,o[1][0])/C:Js(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?Js(y+D*C,s[1][0])/C:Ys(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=(Zs(c,l)?-w:w)/C:w=(Zs(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,N=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)+N}}var $s={width:0,height:0,x:0,y:0},ec={...$s,pointerX:0,pointerY:0,aspectRatio:1};function tc(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 nc({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=Bt(e),o={controlDirection:qs(`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={...$s},h={...ec};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:qs(e)};let g,_=null,v=[],y,b,x,S=!1,C=tn().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}=vo(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=W(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=tc(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=vo(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}=Qs(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,E,b,x),j=D!==C,M=O!==w,N=k!==u&&j,P=A!==f&&M;if(!N&&!P&&!j&&!M)return;if((N||P||E[0]===1||E[1]===1)&&(T.x=N?k:m.x,T.y=P?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 ee=Ks({width:m.width,prevWidth:C,height:m.height,prevHeight:w,affectsX:o.controlDirection.affectsX,affectsY:o.controlDirection.affectsY}),F={...m,direction:ee};p?.(e,F)!==!1&&(S=!0,d?.(e,F),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 rc=o((e=>{var t=u();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,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(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:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),ic=o(((e,t)=>{t.exports=rc()})),ac=o((e=>{var t=u(),n=ic();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),oc=c(o(((e,t)=>{t.exports=ac()}))(),1),sc=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},cc=e=>e?sc(e):sc,{useDebugValue:lc}=y.default,{useSyncExternalStoreWithSelector:uc}=oc.default,dc=e=>e;function fc(e,t=dc,n){let r=uc(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return lc(r),r}var pc=(e,t)=>{let n=cc(e),r=(e,r=t)=>fc(n,e,r);return Object.assign(r,n),r},mc=(e,t)=>e?pc(e,t):pc;function hc(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 gc=m(),_c=(0,y.createContext)(null),vc=_c.Provider,yc=va.error001(`react`);function G(e,t){let n=(0,y.useContext)(_c);if(n===null)throw Error(yc);return fc(n,e,t)}function bc(){let e=(0,y.useContext)(_c);if(e===null)throw Error(yc);return(0,y.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var xc={display:`none`},Sc={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},Cc=`react-flow__node-desc`,wc=`react-flow__edge-desc`,Tc=`react-flow__aria-live`,Ec=e=>e.ariaLiveMessage,Dc=e=>e.ariaLabelConfig;function Oc({rfId:e}){let t=G(Ec);return(0,x.jsx)(`div`,{id:`${Tc}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:Sc,children:t})}function kc({rfId:e,disableKeyboardA11y:t}){let n=G(Dc);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`div`,{id:`${Cc}-${e}`,style:xc,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,x.jsx)(`div`,{id:`${wc}-${e}`,style:xc,children:n[`edge.a11yDescription.default`]}),!t&&(0,x.jsx)(Oc,{rfId:e})]})}var Ac=(0,y.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>{let o=`${e}`.split(`-`);return(0,x.jsx)(`div`,{className:S([`react-flow__panel`,n,...o]),style:r,ref:a,...i,children:t})});Ac.displayName=`Panel`;var jc=`https://reactflow.dev?utm_source=attribution`;function Mc({proOptions:e,position:t=`bottom-right`}){return(0,y.useEffect)(()=>{},[]),e?.hideAttribution?null:(0,x.jsx)(Ac,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${jc}`,children:(0,x.jsx)(`a`,{href:jc,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var Nc=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}},Pc=e=>e.id;function Fc(e,t){return hc(e.selectedNodes.map(Pc),t.selectedNodes.map(Pc))&&hc(e.selectedEdges.map(Pc),t.selectedEdges.map(Pc))}function Ic({onSelectionChange:e}){let t=bc(),{selectedNodes:n,selectedEdges:r}=G(Nc,Fc);return(0,y.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var Lc=e=>!!e.onSelectionChangeHandlers;function Rc({onSelectionChange:e}){let t=G(Lc);return e||t?(0,x.jsx)(Ic,{onSelectionChange:e}):null}var zc=[0,0],Bc={x:0,y:0,zoom:1},Vc=[...`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`],Hc=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}),Uc={translateExtent:ya,nodeOrigin:zc,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function Wc(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:s,setDefaultNodesAndEdges:c}=G(Hc,hc),l=bc();(0,y.useEffect)(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=Uc,s()}),[]);let u=(0,y.useRef)(Uc);return(0,y.useEffect)(()=>{for(let s of Vc){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:go(c)}):s===`fitView`?l.setState({fitViewQueued:c}):s===`fitViewOptions`?l.setState({fitViewOptions:c}):l.setState({[s]:c}))}u.current=e},Vc.map(t=>e[t])),null}function Gc(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function Kc(e){let[t,n]=(0,y.useState)(e===`system`?null:e);return(0,y.useEffect)(()=>{if(e!==`system`){n(e);return}let t=Gc(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?Gc()?.matches?`dark`:`light`:t}var qc=typeof document<`u`?document:null;function Jc(e=null,t={target:qc,actInsideInputWithModifier:!0}){let[n,r]=(0,y.useState)(!1),i=(0,y.useRef)(!1),a=(0,y.useRef)(new Set([])),[o,s]=(0,y.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(/\+/g,`
232
232
  `).replace(`
233
233
 
234
234
  `,`
235
235
  +`).split(`
236
- `));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,y.useEffect)(()=>{let n=t?.target??Kc,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)&&xo(e))return!1;let n=Yc(e.code,s);if(a.current.add(e[n]),Jc(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=Yc(e.code,s);Jc(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 Jc(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function Yc(e,t){return t.includes(e)?`code`:`key`}var Xc=()=>{let e=yc();return(0,y.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=lo(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 io(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=ao(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function Zc(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)Qc(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 Qc(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)}}function $c(e,t){return Zc(e,t)}function el(e,t){return Zc(e,t)}function tl(e,t){return{id:e,type:`select`,selected:t}}function nl(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(tl(a.id,e)))}return r}function rl({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 il(e){return{id:e.id,type:`remove`}}var al=no(`React Flow`,`https://reactflow.dev/`);function ol(e,t,n={}){return Po(e,t,{...n,onError:n.onError??al})}var sl=e=>Aa(e),cl=e=>ka(e);function ll(e){return(0,y.forwardRef)(e)}var ul=typeof window<`u`?y.useLayoutEffect:y.useEffect;function dl(e){let[t,n]=(0,y.useState)(BigInt(0)),[r]=(0,y.useState)(()=>fl(()=>n(e=>e+BigInt(1))));return ul(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function fl(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var pl=(0,y.createContext)(null);function ml({children:e}){let t=yc(),n=dl((0,y.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=rl({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=dl((0,y.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(rl({items:s,lookup:o}))},[])),i=(0,y.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,x.jsx)(pl.Provider,{value:i,children:e})}function hl(){let e=(0,y.useContext)(pl);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var gl=e=>!!e.panZoom;function _l(){let e=Xc(),t=yc(),n=hl(),r=K(gl),i=(0,y.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=sl(e)?e:n.get(e.id),a=i.parentId?fo(i.position,i.measured,i.parentId,n,r):i.position;return Ya({...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&&sl(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&&cl(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 Ba({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(il);o?.(f),c(e)}if(m){let e=d.map(il);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=eo(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=Ya(s?r:a),l=$a(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=eo(e)?e:a(e);if(!r)return!1;let i=$a(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 Na(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??mo();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,y.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var vl=e=>e.selected,yl=typeof window<`u`?window:void 0;function bl({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=yc(),{deleteElements:r}=_l(),i=qc(e,{actInsideInputWithModifier:!1}),a=qc(t,{target:yl});(0,y.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(vl),edges:e.filter(vl)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,y.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function xl(e){let t=yc();(0,y.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=vo(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,va.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 Sl={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},Cl=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function wl({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panActivationKeyPressed:i,panOnScrollSpeed:a=.5,panOnScrollMode:o=Ca.Free,zoomOnDoubleClick:s=!0,panOnDrag:c=!0,defaultViewport:l,translateExtent:u,minZoom:d,maxZoom:f,zoomActivationKeyCode:p,preventScrolling:m=!0,children:h,noWheelClassName:g,noPanClassName:_,onViewportChange:v,isControlledViewport:b,paneClickDistance:S,selectionOnDrag:C}){let w=yc(),T=(0,y.useRef)(null),{userSelectionActive:E,lib:D,connectionInProgress:O}=K(Cl,mc),k=qc(p),A=(0,y.useRef)();xl(T);let j=(0,y.useCallback)(e=>{v?.({x:e[0],y:e[1],zoom:e[2]}),b||w.setState({transform:e})},[v,b]);return(0,y.useEffect)(()=>{if(T.current){A.current=Us({domNode:T.current,minZoom:d,maxZoom:f,translateExtent:u,viewport:l,onDraggingChange:e=>w.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=w.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=w.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=w.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=A.current.getViewport();return w.setState({panZoom:A.current,transform:[e,t,n],domNode:T.current.closest(`.react-flow`)}),()=>{A.current?.destroy()}}},[]),(0,y.useEffect)(()=>{A.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panActivationKeyPressed:i,panOnScrollSpeed:a,panOnScrollMode:o,zoomOnDoubleClick:s,panOnDrag:c,zoomActivationKeyPressed:k,preventScrolling:m,noPanClassName:_,userSelectionActive:E,noWheelClassName:g,lib:D,onTransformChange:j,connectionInProgress:O,selectionOnDrag:C,paneClickDistance:S})},[e,t,n,r,i,a,o,s,c,k,m,_,E,g,D,j,O,C,S]),(0,x.jsx)(`div`,{className:`react-flow__renderer`,ref:T,style:Sl,children:h})}var Tl=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function El(){let{userSelectionActive:e,userSelectionRect:t}=K(Tl,mc);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 Dl=(e,t)=>n=>{n.target===t.current&&e?.(n)},Ol=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function kl({isSelecting:e,selectionKeyPressed:t,selectionMode:n=wa.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,y.useRef)(0),_=yc(),{userSelectionActive:v,elementsSelectable:b,dragging:C,panBy:w,autoPanSpeed:T}=K(Ol,mc),E=b&&(e||v),D=(0,y.useRef)(null),O=(0,y.useRef)(),k=(0,y.useRef)(new Set),A=(0,y.useRef)(new Set),j=(0,y.useRef)(!1),M=(0,y.useRef)(!1),N=(0,y.useRef)({x:0,y:0}),P=(0,y.useRef)(!1),ee=e=>{if(M.current||j.current||_.getState().connection.inProgress){M.current=!1,j.current=!1;return}l?.(e),_.getState().resetSelectedElements(),_.setState({nodesSelectionActive:!1})},F=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}u?.(e)},I=d?e=>d(e):void 0,te=e=>{M.current&&=(e.stopPropagation(),!1)},ne=n=>{if(n.pointerType===`touch`&&r!==!1&&!t)return;let{domNode:i,transform:a}=_.getState();if(O.current=i?.getBoundingClientRect(),!O.current)return;let s=n.target===D.current;if(!s&&n.target.closest(`.nokey`)||!e||!(o&&s||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),M.current=!1;let{x:c,y:l}=Co(n.nativeEvent,O.current),u=io({x:c,y:l},a);_.setState({userSelectionRect:{width:0,height:0,startX:u.x,startY:u.y,x:c,y:l}}),s||(n.stopPropagation(),n.preventDefault())};function L(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}=ao(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=k.current,g=A.current;k.current=new Set(Fa(a,m,i,n===wa.Partial,!0).map(e=>e.id)),A.current=new Set;let v=u?.selectable??!0;for(let e of k.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=o.get(e);t&&(t.selectable??v)&&A.current.add(e)}}po(h,k.current)||c(nl(a,k.current,!0)),po(g,A.current)||l(nl(o,A.current)),_.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}function R(){if(!i||!O.current)return;let[e,t]=Ga(N.current,O.current,T);w({x:e,y:t}).then(e=>{if(!M.current||!e){g.current=requestAnimationFrame(R);return}let{x:t,y:n}=N.current;L(t,n),g.current=requestAnimationFrame(R)})}let z=()=>{cancelAnimationFrame(g.current),g.current=0,P.current=!1};(0,y.useEffect)(()=>()=>z(),[]);let B=e=>{let{userSelectionRect:n,transform:r,resetSelectedElements:i}=_.getState();if(!O.current||!n)return;let{x:o,y:c}=Co(e.nativeEvent,O.current);N.current={x:o,y:c};let l=ao({x:n.startX,y:n.startY},r);if(!M.current){let n=t?0:a;if(Math.hypot(o-l.x,c-l.y)<=n)return;i(),s?.(e)}M.current=!0,P.current||=(R(),!0),L(o,c)},re=e=>{if(!E){e.target===D.current&&_.getState().connection.inProgress&&(j.current=!0);return}e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!v&&e.target===D.current&&_.getState().userSelectionRect&&ee?.(e),_.setState({userSelectionActive:!1,userSelectionRect:null}),M.current&&(c?.(e),_.setState({nodesSelectionActive:k.current.size>0})),z())},ie=e=>{e.target?.releasePointerCapture?.(e.pointerId),z()},ae=r===!0||Array.isArray(r)&&r.includes(0);return(0,x.jsxs)(`div`,{className:S([`react-flow__pane`,{draggable:ae,dragging:C,selection:e}]),onClick:E?void 0:Dl(ee,D),onContextMenu:Dl(F,D),onWheel:Dl(I,D),onPointerEnter:E?void 0:f,onPointerMove:E?B:p,onPointerUp:re,onPointerCancel:E?ie:void 0,onPointerDownCapture:E?ne:void 0,onClickCapture:E?te:void 0,onPointerLeave:m,ref:D,style:Sl,children:[h,(0,x.jsx)(El,{})]})}function Al({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`,va.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function jl({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=yc(),[c,l]=(0,y.useState)(!1),u=(0,y.useRef)();return(0,y.useEffect)(()=>{if(!t)return u.current=vs({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{Al({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}}),()=>{u.current?.destroy(),u.current=void 0}},[t,s,e]),(0,y.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 Ml=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function Nl(){let e=yc();return(0,y.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=Ml(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=ro(t,i));let{position:a,positionAbsolute:s}=za({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 Pl=(0,y.createContext)(null),Fl=Pl.Provider;Pl.Consumer;var Il=()=>(0,y.useContext)(Pl),Ll=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),q=(0,y.createContext)(null);function Rl({children:e}){let t=K(Ll,mc);return(0,x.jsx)(q.Provider,{value:t,children:e})}function J(){let e=(0,y.useContext)(q);if(!e)throw Error(`useHandleConfig must be used within a HandleConfigProvider`);return e}var Y={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},zl=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o;if(!s&&!i)return Y;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===Sa.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function Bl({type:e=`source`,position:t=H.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=yc(),_=Il(),{connectOnClick:v,noPanClassName:y,rfId:b}=J(),{connectingFrom:C,connectingTo:w,clickConnecting:T,isPossibleEndHandle:E,connectionInProcess:D,clickConnectionInProcess:O,valid:k}=K(zl(_,m,e),mc);_||g.getState().onError?.(`010`,va.error010());let A=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(ol(i,e,{onError:n}))}n?.(i),s?.(i)},j=e=>{if(!_)return;let t=So(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();Os.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:A,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:S([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:T,connectingfrom:C,connectingto:w,valid:k,connectionindicator:r&&(!D||E)&&(D||O?a:i)}]),onMouseDown:j,onTouchStart:j,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=yo(t.target),h=n||c,{connection:v,isValid:y}=Os.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&&A(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 Vl=(0,y.memo)(ll(Bl));function Hl({data:e,isConnectable:t,sourcePosition:n=H.Bottom}){return(0,x.jsxs)(x.Fragment,{children:[e?.label,(0,x.jsx)(Vl,{type:`source`,position:n,isConnectable:t})]})}function Ul({data:e,isConnectable:t,targetPosition:n=H.Top,sourcePosition:r=H.Bottom}){return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(Vl,{type:`target`,position:n,isConnectable:t}),e?.label,(0,x.jsx)(Vl,{type:`source`,position:r,isConnectable:t})]})}function Wl(){return null}function Gl({data:e,isConnectable:t,targetPosition:n=H.Top}){return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(Vl,{type:`target`,position:n,isConnectable:t}),e?.label]})}var Kl={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},ql={input:Hl,default:Ul,output:Gl,group:Wl};function Jl(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 Yl=e=>{let{width:t,height:n,x:r,y:i}=Pa(e.nodeLookup,{filter:e=>!!e.selected});return{width:to(t)?t:null,height:to(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 Xl({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=yc(),{width:i,height:a,transformString:o,userSelectionActive:s}=K(Yl,mc),c=Nl(),l=(0,y.useRef)(null);(0,y.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(jl({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:S([`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(Kl,e.key)&&(e.preventDefault(),c({direction:Kl[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var Zl=typeof window<`u`?window:void 0,Ql=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function $l({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:S,panOnScrollMode:C,zoomOnDoubleClick:w,panOnDrag:T,autoPanOnSelection:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,onSelectionContextMenu:M,noWheelClassName:N,noPanClassName:P,disableKeyboardA11y:ee,onViewportChange:F,isControlledViewport:I}){let{nodesSelectionActive:te,userSelectionActive:ne}=K(Ql,mc),L=qc(l,{target:Zl}),R=qc(h,{target:Zl}),z=R||T,B=R||b,re=u&&z!==!0,ie=L||ne||re;return bl({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,x.jsx)(wl,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:B,panActivationKeyPressed:R,panOnScrollSpeed:S,panOnScrollMode:C,zoomOnDoubleClick:w,panOnDrag:!L&&z,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,zoomActivationKeyCode:g,preventScrolling:j,noWheelClassName:N,noPanClassName:P,onViewportChange:F,isControlledViewport:I,paneClickDistance:s,selectionOnDrag:re,children:(0,x.jsxs)(kl,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:z,autoPanOnSelection:E,isSelecting:!!ie,selectionMode:d,selectionKeyPressed:L,paneClickDistance:s,selectionOnDrag:re,children:[e,te&&(0,x.jsx)(Xl,{onSelectionContextMenu:M,noPanClassName:P,disableKeyboardA11y:ee})]})})}$l.displayName=`FlowRenderer`;var eu=(0,y.memo)($l),tu=e=>t=>e?Fa(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 nu(e){return K((0,y.useCallback)(tu(e),[e]),mc)}var ru=e=>e.updateNodeInternals;function iu(){let e=K(ru),[t]=(0,y.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,y.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function au({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=yc(),a=(0,y.useRef)(null),o=(0,y.useRef)(null),s=(0,y.useRef)(e.sourcePosition),c=(0,y.useRef)(e.targetPosition),l=(0,y.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,y.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,y.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,y.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 ou({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:C}=K(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},mc),w=y.type||`default`,T=g?.[w]||ql[w];T===void 0&&(v?.(`003`,va.error003(w)),w=`default`,T=g?.default||ql.default);let E=!!(y.draggable||s&&y.draggable===void 0),D=!!(y.selectable||c&&y.selectable===void 0),O=!!(y.connectable||l&&y.connectable===void 0),k=!!(y.focusable||u&&y.focusable===void 0),A=yc(),j=uo(y),M=au({node:y,nodeType:w,hasDimensions:j,resizeObserver:d}),N=jl({nodeRef:M,disabled:y.hidden||!E,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:D,nodeClickDistance:_}),P=Nl();if(y.hidden)return null;let ee=G(y),F=Jl(y),I=D||E||t||n||r||i,te=n?e=>n(e,{...b.userNode}):void 0,ne=r?e=>r(e,{...b.userNode}):void 0,L=i?e=>i(e,{...b.userNode}):void 0,R=a?e=>a(e,{...b.userNode}):void 0,z=o?e=>o(e,{...b.userNode}):void 0,B=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=A.getState();D&&(!r||!E||i>0)&&Al({id:e,store:A,nodeRef:M}),t&&t(n,{...b.userNode})},re=t=>{if(!(xo(t.nativeEvent)||m)){if(ba.includes(t.key)&&D){let n=t.key===`Escape`;Al({id:e,store:A,unselect:n,nodeRef:M})}else if(E&&y.selected&&Object.prototype.hasOwnProperty.call(Kl,t.key)){t.preventDefault();let{ariaLabelConfig:e}=A.getState();A.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),P({direction:Kl[t.key],factor:t.shiftKey?4:1})}}},ie=()=>{if(m||!M.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=A.getState();i&&(Fa(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:S([`react-flow__node`,`react-flow__node-${w}`,{[p]:E},y.className,{selected:y.selected,selectable:D,parent:C,draggable:E,dragging:N}]),ref:M,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:I?`all`:`none`,visibility:j?`visible`:`hidden`,...y.style,...F},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:te,onMouseMove:ne,onMouseLeave:L,onContextMenu:R,onClick:B,onDoubleClick:z,onKeyDown:k?re:void 0,tabIndex:k?0:void 0,onFocus:k?ie:void 0,role:y.ariaRole??(k?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${Sc}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,x.jsx)(Fl,{value:e,children:(0,x.jsx)(T,{id:e,data:y.data,type:w,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:y.selected??!1,selectable:D,draggable:E,deletable:y.deletable??!0,isConnectable:O,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:N,dragHandle:y.dragHandle,zIndex:b.z,parentId:y.parentId,...ee})})})}var su=(0,y.memo)(ou),cu=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function lu(e){let{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=K(cu,mc),a=nu(e.onlyRenderVisibleElements),o=iu();return(0,x.jsx)(`div`,{className:`react-flow__nodes`,style:Sl,children:a.map(a=>(0,x.jsx)(su,{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))})}lu.displayName=`NodeRenderer`;var uu=(0,y.memo)(lu);function du(e){return K((0,y.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&&jo({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),mc)}var fu=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e}};return(0,x.jsx)(`polyline`,{className:`arrow`,style:n,strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`})},pu=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e,fill:e}};return(0,x.jsx)(`polyline`,{className:`arrowclosed`,style:n,strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`})},mu={[Da.Arrow]:fu,[Da.ArrowClosed]:pu};function hu(e){let t=yc();return(0,y.useMemo)(()=>Object.prototype.hasOwnProperty.call(mu,e)?mu[e]:(t.getState().onError?.(`009`,va.error009(e)),null),[e])}var gu=({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=hu(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},_u=({defaultColor:e,rfId:t})=>{let n=K(e=>e.edges),r=K(e=>e.defaultEdgeOptions),i=(0,y.useMemo)(()=>Jo(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)(gu,{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};_u.displayName=`MarkerDefinitions`;var vu=(0,y.memo)(_u);function yu({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,y.useState)({x:1,y:0,width:0,height:0}),p=S([`react-flow__edge-textwrapper`,l]),m=(0,y.useRef)(null);return(0,y.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}yu.displayName=`EdgeText`;var bu=(0,y.memo)(yu);function xu({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:S([`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&&to(t)&&to(n)?(0,x.jsx)(bu,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function Su({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===H.Left||e===H.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function Cu({sourceX:e,sourceY:t,sourcePosition:n=H.Bottom,targetX:r,targetY:i,targetPosition:a=H.Top}){let[o,s]=Su({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=Su({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=To({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 wu(e){return(0,y.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]=Cu({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s}),S=e.isInternal?void 0:t;return(0,x.jsx)(xu,{id:S,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 Tu=wu({isInternal:!1}),Eu=wu({isInternal:!0});Tu.displayName=`SimpleBezierEdge`,Eu.displayName=`SimpleBezierEdgeInternal`;function Du(e){return(0,y.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=H.Bottom,targetPosition:m=H.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,S]=Vo({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition}),C=e.isInternal?void 0:t;return(0,x.jsx)(xu,{id:C,path:y,labelX:b,labelY:S,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var Ou=Du({isInternal:!1}),ku=Du({isInternal:!0});Ou.displayName=`SmoothStepEdge`,ku.displayName=`SmoothStepEdgeInternal`;function Au(e){return(0,y.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,x.jsx)(Ou,{...n,id:r,pathOptions:(0,y.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var ju=Au({isInternal:!1}),Mu=Au({isInternal:!0});ju.displayName=`StepEdge`,Mu.displayName=`StepEdgeInternal`;function Nu(e){return(0,y.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]=Fo({sourceX:n,sourceY:r,targetX:i,targetY:a}),y=e.isInternal?void 0:t;return(0,x.jsx)(xu,{id:y,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 Pu=Nu({isInternal:!1}),Fu=Nu({isInternal:!0});Pu.displayName=`StraightEdge`,Fu.displayName=`StraightEdgeInternal`;function Iu(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=H.Bottom,targetPosition:s=H.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,S]=Oo({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature}),C=e.isInternal?void 0:t;return(0,x.jsx)(xu,{id:C,path:y,labelX:b,labelY:S,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var Lu=Iu({isInternal:!1}),Ru=Iu({isInternal:!0});Lu.displayName=`BezierEdge`,Ru.displayName=`BezierEdgeInternal`;var zu={default:Ru,straight:Fu,step:Mu,smoothstep:ku,simplebezier:Eu},Bu={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},Vu=(e,t,n)=>n===H.Left?e-t:n===H.Right?e+t:e,Hu=(e,t,n)=>n===H.Top?e-t:n===H.Bottom?e+t:e,Uu=`react-flow__edgeupdater`;function Wu({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:S([Uu,`${Uu}-${s}`]),cx:Vu(t,r,e),cy:Hu(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function Gu({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=yc(),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`;Os.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)(Wu,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,x.jsx)(Wu,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function Ku({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 b=K(t=>t.edgeLookup.get(e)),C=K(e=>e.defaultEdgeOptions);b=C?{...C,...b}:b;let w=b.type||`default`,T=h?.[w]||zu[w];T===void 0&&(_?.(`011`,va.error011(w)),w=`default`,T=h?.default||zu.default);let E=!!(b.focusable||t&&b.focusable===void 0),D=d!==void 0&&(b.reconnectable||n&&b.reconnectable===void 0),O=!!(b.selectable||r&&b.selectable===void 0),k=(0,y.useRef)(null),[A,j]=(0,y.useState)(!1),[M,N]=(0,y.useState)(!1),P=yc(),{zIndex:ee=b.zIndex,sourceX:F,sourceY:I,targetX:te,targetY:ne,sourcePosition:L,targetPosition:R}=K((0,y.useCallback)(t=>{let n=t.nodeLookup.get(b.source),r=t.nodeLookup.get(b.target);if(!n||!r)return Bu;let i=Uo({id:e,sourceNode:n,targetNode:r,sourceHandle:b.sourceHandle||null,targetHandle:b.targetHandle||null,connectionMode:t.connectionMode,onError:_}),a=Ao({selected:b.selected,zIndex:b.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...i||Bu,zIndex:a}},[b.source,b.target,b.sourceHandle,b.targetHandle,b.selected,b.zIndex,_]),mc),z=(0,y.useMemo)(()=>b.markerStart?`url('#${qo(b.markerStart,m)}')`:void 0,[b.markerStart,m]),B=(0,y.useMemo)(()=>b.markerEnd?`url('#${qo(b.markerEnd,m)}')`:void 0,[b.markerEnd,m]);if(b.hidden||F===null||I===null||te===null||ne===null)return null;let re=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=P.getState();O&&(P.setState({nodesSelectionActive:!1}),b.selected&&a?(r({nodes:[],edges:[b]}),k.current?.blur()):n([e])),i&&i(t,b)},ie=a?e=>{a(e,{...b})}:void 0,ae=o?e=>{o(e,{...b})}:void 0,oe=s?e=>{s(e,{...b})}:void 0,se=c?e=>{c(e,{...b})}:void 0,ce=l?e=>{l(e,{...b})}:void 0;return(0,x.jsx)(`svg`,{style:{zIndex:ee},children:(0,x.jsxs)(`g`,{className:S([`react-flow__edge`,`react-flow__edge-${w}`,b.className,g,{selected:b.selected,animated:b.animated,inactive:!O&&!i,updating:A,selectable:O}]),onClick:re,onDoubleClick:ie,onContextMenu:ae,onMouseEnter:oe,onMouseMove:se,onMouseLeave:ce,onKeyDown:E?t=>{if(!v&&ba.includes(t.key)&&O){let{unselectNodesAndEdges:n,addSelectedEdges:r}=P.getState();t.key===`Escape`?(k.current?.blur(),n({edges:[b]})):r([e])}}:void 0,tabIndex:E?0:void 0,role:b.ariaRole??(E?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":b.ariaLabel===null?void 0:b.ariaLabel||`Edge from ${b.source} to ${b.target}`,"aria-describedby":E?`${Cc}-${m}`:void 0,ref:k,...b.domAttributes,children:[!M&&(0,x.jsx)(T,{id:e,source:b.source,target:b.target,type:b.type,selected:b.selected,animated:b.animated,selectable:O,deletable:b.deletable??!0,label:b.label,labelStyle:b.labelStyle,labelShowBg:b.labelShowBg,labelBgStyle:b.labelBgStyle,labelBgPadding:b.labelBgPadding,labelBgBorderRadius:b.labelBgBorderRadius,sourceX:F,sourceY:I,targetX:te,targetY:ne,sourcePosition:L,targetPosition:R,data:b.data,style:b.style,sourceHandleId:b.sourceHandle,targetHandleId:b.targetHandle,markerStart:z,markerEnd:B,pathOptions:`pathOptions`in b?b.pathOptions:void 0,interactionWidth:b.interactionWidth}),D&&(0,x.jsx)(Gu,{edge:b,isReconnectable:D,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:F,sourceY:I,targetX:te,targetY:ne,sourcePosition:L,targetPosition:R,setUpdateHover:j,setReconnecting:N})]})})}var qu=(0,y.memo)(Ku),Ju=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function Yu({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}=K(Ju,mc),b=du(t);return(0,x.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,x.jsx)(vu,{defaultColor:e,rfId:n}),b.map(e=>(0,x.jsx)(qu,{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))]})}Yu.displayName=`EdgeRenderer`;var Xu=(0,y.memo)(Yu),Zu=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function Qu({children:e}){let t=yc(),n=(0,y.useRef)(null),[r]=(0,y.useState)(()=>t.getState().transform);return ul(()=>{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=Zu(r)))};return r(),t.subscribe(r)},[t]),(0,x.jsx)(`div`,{ref:n,className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:Zu(r)},children:e})}function $u(e){let t=_l(),n=(0,y.useRef)(!1);(0,y.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var ed=e=>e.panZoom?.syncViewport;function td(e){let t=K(ed),n=yc();return(0,y.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function nd(e){return e.connection.inProgress?{...e.connection,to:io(e.connection.to,e.transform)}:{...e.connection}}function rd(e){return e?t=>e(nd(t)):nd}function id(e){return K(rd(e),mc)}var ad=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function od({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=K(ad,mc);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:S([`react-flow__connection`,go(s)]),children:(0,x.jsx)(sd,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var sd=({style:e,type:t=Ea.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}=id();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:go(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 Ea.Bezier:[m]=Oo(h);break;case Ea.SimpleBezier:[m]=Cu(h);break;case Ea.Step:[m]=Vo({...h,borderRadius:0});break;case Ea.SmoothStep:[m]=Vo(h);break;default:[m]=Fo(h)}return(0,x.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};sd.displayName=`ConnectionLine`;var cd={};function ld(e=cd){(0,y.useRef)(e),yc(),(0,y.useEffect)(()=>{},[e])}function ud(){yc(),(0,y.useRef)(!1),(0,y.useEffect)(()=>{},[])}function dd({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:S,panActivationKeyCode:C,zoomActivationKeyCode:w,deleteKeyCode:T,onlyRenderVisibleElements:E,elementsSelectable:D,defaultViewport:O,translateExtent:k,minZoom:A,maxZoom:j,preventScrolling:M,defaultMarkerColor:N,zoomOnScroll:P,zoomOnPinch:ee,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:te,zoomOnDoubleClick:ne,panOnDrag:L,autoPanOnSelection:R,onPaneClick:z,onPaneMouseEnter:B,onPaneMouseMove:re,onPaneMouseLeave:ie,onPaneScroll:ae,onPaneContextMenu:oe,paneClickDistance:se,nodeClickDistance:ce,onEdgeContextMenu:le,onEdgeMouseEnter:ue,onEdgeMouseMove:de,onEdgeMouseLeave:fe,reconnectRadius:pe,onReconnect:me,onReconnectStart:he,onReconnectEnd:ge,noDragClassName:_e,noWheelClassName:ve,noPanClassName:ye,disableKeyboardA11y:be,nodeExtent:xe,rfId:Se,viewport:Ce,onViewportChange:we,nodesDraggable:Te}){return ld(e),ld(t),ud(),$u(n),td(Ce),(0,x.jsx)(eu,{onPaneClick:z,onPaneMouseEnter:B,onPaneMouseMove:re,onPaneMouseLeave:ie,onPaneContextMenu:oe,onPaneScroll:ae,paneClickDistance:se,deleteKeyCode:T,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:S,panActivationKeyCode:C,zoomActivationKeyCode:w,elementsSelectable:D,zoomOnScroll:P,zoomOnPinch:ee,zoomOnDoubleClick:ne,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:te,panOnDrag:L,autoPanOnSelection:R,defaultViewport:O,translateExtent:k,minZoom:A,maxZoom:j,onSelectionContextMenu:d,preventScrolling:M,noDragClassName:_e,noWheelClassName:ve,noPanClassName:ye,disableKeyboardA11y:be,onViewportChange:we,isControlledViewport:!!Ce,children:(0,x.jsxs)(Qu,{children:[(0,x.jsx)(Xu,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:me,onReconnectStart:he,onReconnectEnd:ge,onlyRenderVisibleElements:E,onEdgeContextMenu:le,onEdgeMouseEnter:ue,onEdgeMouseMove:de,onEdgeMouseLeave:fe,reconnectRadius:pe,defaultMarkerColor:N,noPanClassName:ye,disableKeyboardA11y:be,rfId:Se}),(0,x.jsx)(od,{style:h,type:m,component:g,containerStyle:_}),(0,x.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,x.jsx)(uu,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:ce,onlyRenderVisibleElements:E,noPanClassName:ye,noDragClassName:_e,disableKeyboardA11y:be,nodeExtent:xe,rfId:Se,nodesDraggable:Te}),(0,x.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}dd.displayName=`GraphView`;var fd=(0,y.memo)(dd),pd=no(`React Flow`,`https://reactflow.dev/`),md=({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??ya;fs(h,g,_);let{nodesInitialized:x}=rs(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=lo(Pa(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:ya,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Sa.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:{...Ta},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:pd,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:xa,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},hd=({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})=>pc((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 Ra({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...md({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,nodeExtent:i,elevateNodesOnSelect:a,fitViewQueued:o,zIndexMode:s,nodesSelectionActive:c}=m(),{nodesInitialized:l,hasSelectedNodes:u}=rs(e,t,n,{nodeOrigin:r,nodeExtent:i,elevateNodesOnSelect:a,checkEquality:!0,zIndexMode:s}),d=c&&u;o&&l?(h(),p({nodes:e,nodesInitialized:l,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:d})):p({nodes:e,nodesInitialized:l,nodesSelectionActive:d})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();fs(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}=ls(e,n,r,i,a,o,l);d&&(es(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=Go(e,o.fromHandle,H.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=cs(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($c(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(el(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=>tl(e,!0)));return}i(nl(r,new Set([...e]),!0)),a(nl(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>tl(e,!0)));return}a(nl(n,new Set([...e]))),i(nl(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(tl(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(tl(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,tl(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,tl(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])&&(rs(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 us({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:{...Ta}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...md()})}},Object.is);function gd({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,y.useState)(()=>hd({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)(_c,{value:m,children:(0,x.jsx)(ml,{children:(0,x.jsx)(Rl,{children:p})})})}function _d({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,y.useContext)(gc)?(0,x.jsx)(x.Fragment,{children:e}):(0,x.jsx)(gd,{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 vd={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function yd({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:b,onNodeMouseLeave:C,onNodeContextMenu:w,onNodeDoubleClick:T,onNodeDragStart:E,onNodeDrag:D,onNodeDragStop:O,onNodesDelete:k,onEdgesDelete:A,onDelete:j,onSelectionChange:M,onSelectionDragStart:N,onSelectionDrag:P,onSelectionDragStop:ee,onSelectionContextMenu:F,onSelectionStart:I,onSelectionEnd:te,onBeforeDelete:ne,connectionMode:L,connectionLineType:R=Ea.Bezier,connectionLineStyle:z,connectionLineComponent:B,connectionLineContainerStyle:re,deleteKeyCode:ie=`Backspace`,selectionKeyCode:ae=`Shift`,selectionOnDrag:oe=!1,selectionMode:se=wa.Full,panActivationKeyCode:ce=`Space`,multiSelectionKeyCode:le=U()?`Meta`:`Control`,zoomActivationKeyCode:ue=U()?`Meta`:`Control`,snapToGrid:de,snapGrid:fe,onlyRenderVisibleElements:pe=!1,selectNodesOnDrag:me,nodesDraggable:he,autoPanOnNodeFocus:ge,nodesConnectable:_e,nodesFocusable:ve,nodeOrigin:ye=Rc,edgesFocusable:be,edgesReconnectable:xe,elementsSelectable:Se=!0,defaultViewport:Ce=zc,minZoom:we=.5,maxZoom:Te=2,translateExtent:Ee=ya,preventScrolling:De=!0,nodeExtent:Oe,defaultMarkerColor:ke=`#b1b1b7`,zoomOnScroll:Ae=!0,zoomOnPinch:je=!0,panOnScroll:Me=!1,panOnScrollSpeed:Ne=.5,panOnScrollMode:Pe=Ca.Free,zoomOnDoubleClick:Fe=!0,panOnDrag:Ie=!0,onPaneClick:Le,onPaneMouseEnter:Re,onPaneMouseMove:ze,onPaneMouseLeave:Be,onPaneScroll:Ve,onPaneContextMenu:He,paneClickDistance:Ue=1,nodeClickDistance:We=0,children:Ge,onReconnect:Ke,onReconnectStart:qe,onReconnectEnd:Je,onEdgeContextMenu:Ye,onEdgeDoubleClick:Xe,onEdgeMouseEnter:Ze,onEdgeMouseMove:Qe,onEdgeMouseLeave:$e,reconnectRadius:et=10,onNodesChange:tt,onEdgesChange:nt,noDragClassName:rt=`nodrag`,noWheelClassName:it=`nowheel`,noPanClassName:at=`nopan`,fitView:ot,fitViewOptions:st,connectOnClick:ct,attributionPosition:lt,proOptions:ut,defaultEdgeOptions:dt,elevateNodesOnSelect:ft=!0,elevateEdgesOnSelect:pt=!1,disableKeyboardA11y:mt=!1,autoPanOnConnect:ht,autoPanOnNodeDrag:gt,autoPanOnSelection:_t=!0,autoPanSpeed:vt,connectionRadius:yt,isValidConnection:bt,onError:xt,style:St,id:Ct,nodeDragThreshold:wt,connectionDragThreshold:Tt,viewport:Et,onViewportChange:Dt,width:Ot,height:kt,colorMode:At=`light`,debug:jt,onScroll:Mt,ariaLabelConfig:Nt,zIndexMode:Pt=`basic`,...Ft},It){let Lt=Ct||`1`,Rt=Gc(At),zt=(0,y.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),Mt?.(e)},[Mt]);return(0,x.jsx)(`div`,{"data-testid":`rf__wrapper`,...Ft,onScroll:zt,style:{...St,...vd},ref:It,className:S([`react-flow`,i,Rt]),id:Ct,role:`application`,children:(0,x.jsxs)(_d,{nodes:e,edges:t,width:Ot,height:kt,fitView:ot,fitViewOptions:st,minZoom:we,maxZoom:Te,nodeOrigin:ye,nodeExtent:Oe,zIndexMode:Pt,children:[(0,x.jsx)(Uc,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,nodesDraggable:he,autoPanOnNodeFocus:ge,nodesConnectable:_e,nodesFocusable:ve,edgesFocusable:be,edgesReconnectable:xe,elementsSelectable:Se,elevateNodesOnSelect:ft,elevateEdgesOnSelect:pt,minZoom:we,maxZoom:Te,nodeExtent:Oe,onNodesChange:tt,onEdgesChange:nt,snapToGrid:de,snapGrid:fe,connectionMode:L,translateExtent:Ee,connectOnClick:ct,defaultEdgeOptions:dt,fitView:ot,fitViewOptions:st,onNodesDelete:k,onEdgesDelete:A,onDelete:j,onNodeDragStart:E,onNodeDrag:D,onNodeDragStop:O,onSelectionDrag:P,onSelectionDragStart:N,onSelectionDragStop:ee,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:at,nodeOrigin:ye,rfId:Lt,autoPanOnConnect:ht,autoPanOnNodeDrag:gt,autoPanSpeed:vt,onError:xt,connectionRadius:yt,isValidConnection:bt,selectNodesOnDrag:me,nodeDragThreshold:wt,connectionDragThreshold:Tt,onBeforeDelete:ne,debug:jt,ariaLabelConfig:Nt,zIndexMode:Pt}),(0,x.jsx)(fd,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:v,onNodeMouseMove:b,onNodeMouseLeave:C,onNodeContextMenu:w,onNodeDoubleClick:T,nodeTypes:a,edgeTypes:o,connectionLineType:R,connectionLineStyle:z,connectionLineComponent:B,connectionLineContainerStyle:re,selectionKeyCode:ae,selectionOnDrag:oe,selectionMode:se,deleteKeyCode:ie,multiSelectionKeyCode:le,panActivationKeyCode:ce,zoomActivationKeyCode:ue,onlyRenderVisibleElements:pe,defaultViewport:Ce,translateExtent:Ee,minZoom:we,maxZoom:Te,preventScrolling:De,zoomOnScroll:Ae,zoomOnPinch:je,zoomOnDoubleClick:Fe,panOnScroll:Me,panOnScrollSpeed:Ne,panOnScrollMode:Pe,panOnDrag:Ie,autoPanOnSelection:_t,onPaneClick:Le,onPaneMouseEnter:Re,onPaneMouseMove:ze,onPaneMouseLeave:Be,onPaneScroll:Ve,onPaneContextMenu:He,paneClickDistance:Ue,nodeClickDistance:We,onSelectionContextMenu:F,onSelectionStart:I,onSelectionEnd:te,onReconnect:Ke,onReconnectStart:qe,onReconnectEnd:Je,onEdgeContextMenu:Ye,onEdgeDoubleClick:Xe,onEdgeMouseEnter:Ze,onEdgeMouseMove:Qe,onEdgeMouseLeave:$e,reconnectRadius:et,defaultMarkerColor:ke,noDragClassName:rt,noWheelClassName:it,noPanClassName:at,rfId:Lt,disableKeyboardA11y:mt,nodeExtent:Oe,viewport:Et,onViewportChange:Dt,nodesDraggable:he}),(0,x.jsx)(Lc,{onSelectionChange:M}),Ge,(0,x.jsx)(jc,{proOptions:ut,position:lt}),(0,x.jsx)(Oc,{rfId:Lt,disableKeyboardA11y:mt})]})})}var bd=ll(yd),xd=e=>e.domNode?.querySelector(`.react-flow__edgelabel-renderer`);function X({children:e}){let t=K(xd);return t?(0,hc.createPortal)(e,t):null}var Sd=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2]});function Cd(){return K(Sd,mc)}function wd(e){let[t,n]=(0,y.useState)(e);return[t,n,(0,y.useCallback)(e=>n(t=>$c(e,t)),[])]}function Td(e){let[t,n]=(0,y.useState)(e);return[t,n,(0,y.useCallback)(e=>n(t=>el(e,t)),[])]}va.error014();function Ed({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:S([`react-flow__background-pattern`,n,r])})}function Dd({radius:e,className:t}){return(0,x.jsx)(`circle`,{cx:e,cy:e,r:e,className:S([`react-flow__background-pattern`,`dots`,t])})}var Od;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(Od||={});var kd={[Od.Dots]:1,[Od.Lines]:1,[Od.Cross]:6},Ad=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function jd({id:e,variant:t=Od.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,y.useRef)(null),{transform:f,patternId:p}=K(Ad,mc),m=r||kd[t],h=t===Od.Dots,g=t===Od.Cross,_=Array.isArray(n)?n:[n,n],v=[_[0]*f[2]||1,_[1]*f[2]||1],b=m*f[2],C=Array.isArray(a)?a:[a,a],w=g?[b,b]:v,T=[C[0]*f[2]+w[0]/2,C[1]*f[2]+w[1]/2],E=`${p}${e||``}`;return(0,x.jsxs)(`svg`,{className:S([`react-flow__background`,l]),style:{...c,...Sl,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,x.jsx)(`pattern`,{id:E,x:f[0]%v[0],y:f[1]%v[1],width:v[0],height:v[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${T[0]},-${T[1]})`,children:h?(0,x.jsx)(Dd,{radius:b/2,className:u}):(0,x.jsx)(Ed,{dimensions:w,lineWidth:i,variant:t,className:u})}),(0,x.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${E})`})]})}jd.displayName=`Background`;var Md=(0,y.memo)(jd);function Nd(){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 Pd(){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 Fd(){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 Id(){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 Ld(){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 Rd({children:e,className:t,...n}){return(0,x.jsx)(`button`,{type:`button`,className:S([`react-flow__controls-button`,t]),...n,children:e})}var zd=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function Bd({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=yc(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=K(zd,mc),{zoomIn:y,zoomOut:b,fitView:C}=_l();return(0,x.jsxs)(kc,{className:S([`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)(Rd,{onClick:()=>{y(),a?.()},className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,x.jsx)(Nd,{})}),(0,x.jsx)(Rd,{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)(Pd,{})})]}),n&&(0,x.jsx)(Rd,{className:`react-flow__controls-fitview`,onClick:()=>{C(i),s?.()},title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,x.jsx)(Fd,{})}),r&&(0,x.jsx)(Rd,{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)(Ld,{}):(0,x.jsx)(Id,{})}),u]})}Bd.displayName=`Controls`;var Vd=(0,y.memo)(Bd);function Hd({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:S([`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 Ud=(0,y.memo)(Hd),Wd=e=>e.nodes.map(e=>e.id),Gd=e=>e instanceof Function?e:()=>e;function Kd({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=Ud,onClick:o}){let s=K(Wd,mc),c=Gd(t),l=Gd(e),u=Gd(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,x.jsx)(x.Fragment,{children:s.map(e=>(0,x.jsx)(Jd,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function qd({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}=K(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}=G(r);return{node:r,x:i,y:a,width:o,height:s}},mc);return!l||l.hidden||!uo(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 Jd=(0,y.memo)(qd),Yd=(0,y.memo)(Kd),Xd=200,Zd=150,Qd=e=>!e.hidden,$d=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]},n=!1;for(let t of e.nodeLookup.values())if(!t.hidden){n=!0;break}return{viewBB:t,boundingRect:n?Za(Pa(e.nodeLookup,{filter:Qd}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},ef=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,tf=(e,t)=>ef(e.viewBB,t.viewBB)&&ef(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,nf=`react-flow__minimap-desc`;function rf({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:b=1,offsetScale:C=5}){let w=yc(),T=(0,y.useRef)(null),{boundingRect:E,panZoom:D,viewBB:O,rfId:k,translateExtent:A,flowWidth:j,flowHeight:M,ariaLabelConfig:N}=K($d,tf),P=e?.width??Xd,ee=e?.height??Zd,F=E.width/P,I=E.height/ee,te=Math.max(F,I),ne=te*P,L=te*ee,R=C*te,z=E.x-(ne-E.width)/2-R,B=E.y-(L-E.height)/2-R,re=ne+R*2,ie=L+R*2,ae=`${nf}-${k}`,oe=(0,y.useRef)(0),se=(0,y.useRef)();oe.current=te,(0,y.useEffect)(()=>{let e=w.getState().panZoom;if(T.current&&e)return se.current=ks({domNode:T.current,panZoom:e,getTransform:()=>w.getState().transform,getViewScale:()=>oe.current}),()=>{se.current?.destroy()}},[D]),(0,y.useEffect)(()=>{se.current?.update({translateExtent:A,width:j,height:M,inversePan:v,pannable:h,zoomStep:b,zoomable:g})},[h,g,v,b,A,j,M]);let ce=p?e=>{let[t,n]=se.current?.pointer(e)||[0,0];p(e,{x:t,y:n})}:void 0,le=(0,y.useCallback)((e,t)=>{let n=w.getState().nodeLookup.get(t).internals.userNode;m?.(e,n)},[m]),ue=m?le:void 0,de=_??N[`minimap.ariaLabel`];return(0,x.jsx)(kc,{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*te: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:S([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,x.jsxs)(`svg`,{width:P,height:ee,viewBox:`${z} ${B} ${re} ${ie}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":ae,ref:T,onClick:ce,children:[de&&(0,x.jsx)(`title`,{id:ae,children:de}),(0,x.jsx)(Yd,{onClick:ue,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,x.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${z-R},${B-R}h${re+R*2}v${ie+R*2}h${-re-R*2}z
237
- M${O.x},${O.y}h${O.width}v${O.height}h${-O.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}rf.displayName=`MiniMap`;var af=(0,y.memo)(rf),of=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,sf={[Ws.Line]:`right`,[Ws.Handle]:`bottom-right`};function cf({nodeId:e,position:t,variant:n=Ws.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=Il(),b=typeof e==`string`?e:v,C=yc(),w=(0,y.useRef)(null),T=n===Ws.Handle,E=K((0,y.useCallback)(of(T&&p),[T,p]),mc),D=(0,y.useRef)(null),O=t??sf[n];(0,y.useEffect)(()=>{if(!(!w.current||!b))return D.current||=tc({domNode:w.current,nodeId:b,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=C.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}=C.getState(),o=[],s={x:e.x,y:e.y},c=r.get(b);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=cs([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...fo({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:b,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:b,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:b,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};C.getState().triggerNodeChanges([n])}}),D.current.update({controlPosition:O,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:_,shouldResize:m}),()=>{D.current?.destroy()}},[O,s,c,l,u,d,h,g,_,m]);let k=O.split(`-`);return(0,x.jsx)(`div`,{className:S([`react-flow__resize-control`,`nodrag`,...k,n,r]),ref:w,style:{...i,scale:E,...o&&{[T?`backgroundColor`:`borderColor`]:o}},children:a})}(0,y.memo)(cf);var lf={"zh-CN":{Architecture:`架构图`,Flowchart:`流程图`,Sequence:`时序图`,"ER diagram":`ER 图`,Deployment:`部署图`,"Class diagram":`类图`,"State diagram":`状态图`,"Use cases":`用例图`,"Data flow":`数据流图`,"Source code":`源码`,Code:`代码`,Configuration:`配置`,Schema:`数据结构`,Test:`测试`,Document:`文档`,"Framework convention":`框架约定`,Inference:`推断`,External:`外部`,Framework:`框架`,Security:`安全`,Service:`服务`,Business:`业务`,Data:`数据`,Failure:`失败`,System:`系统`,Component:`组件`,Database:`数据库`,Start:`开始`,End:`结束`,Process:`处理`,Decision:`判断`,Input:`输入`,Output:`输出`,Subprocess:`子流程`,Actor:`角色`,Participant:`参与者`,Entity:`实体`,Device:`设备`,Nodes:`节点`,Container:`容器`,Artifact:`制品`,Class:`类`,Interface:`接口`,"Abstract class":`抽象类`,State:`状态`,Initial:`初始`,Choice:`选择`,"Use case":`用例`,"Data store":`数据存储`,"Initial state":`初始状态`,"Final state":`结束状态`,"Core component":`核心组件`,"Data / storage":`数据与存储`,"Start / end":`起止节点`,"Components / actors":`普通组件 / 角色`,"Solid relation":`实线关系`,"Dashed: notation / convention / inference":`虚线:关系记法 / 框架约定 / 推断`,Reset:`重置`,Dark:`深色`,Light:`浅色`,Locked:`布局锁定`,Draggable:`可拖动`,"Unlock the layout first":`请先解除布局锁定`,"Space the selected node and its direct neighbors":`整理选中节点及直接邻居的间距`,"Space all nodes":`整理全部节点的间距`,Arrange:`整理间距`,"Hide details":`隐藏右侧详情栏`,"Show details":`显示右侧详情栏`,Overview:`模型概览`,Edges:`关系`,Groups:`边界`,"Diagram types":`图类型`,"Search nodes":`搜索节点`,"Edge animation":`连线流动`,On:`开`,Off:`关`,"System reduced-motion preference is respected":`已遵循系统减少动态效果设置`,"Matches · {count}":`匹配结果 · {count}`,"Nodes · {count}":`节点目录 · {count}`,"No matches. Try a name or responsibility.":`未找到匹配节点,请试试名称或职责。`,Legend:`图例`,"Interactive {type}":`可交互{type}`,"Fit canvas":`适应画布`,"Exit fullscreen":`退出全屏`,"Enter fullscreen":`进入全屏`,"Exit fullscreen (Esc)":`退出全屏(Esc)`,"Fullscreen is not available in this browser or page":`当前浏览器或页面不支持全屏`,"Could not exit fullscreen. Press Esc to try again.":`无法退出全屏,请按 Esc 重试`,"Could not enter fullscreen. Check browser or page permissions and try again.":`无法进入全屏,请检查浏览器或页面权限后重试`,"{count} relations":`{count} 条关系`,"Node notes":`节点说明`,"Close details":`关闭详情`,Fields:`字段`,Attributes:`属性`,Methods:`方法`,Source:`来源`,"Start with a node":`从一个节点开始`,"Select a component or a list entry to explore its role, fields, methods and source.":`点击图中组件或左侧目录,查看职责、字段、方法与来源。`,"Evidence facts":`证据事实`,"Unlock the layout before arranging nodes":`请先解除布局锁定,再整理间距`,Local:`局部`,"Full diagram":`全图`,"{scope} arranged: {count} nodes moved":`{scope}间距已整理:移动 {count} 个节点`,"Cannot arrange further within the current constraints":`当前约束下无法继续整理`,"No spacing changes needed":`当前间距无需调整`,"Generating {format}…":`正在生成 {format}…`,"{format} downloaded":`{format} 已下载`,"The browser could not generate the PNG":`浏览器未能生成 PNG`,"The browser could not read the exported SVG":`浏览器未能读取导出 SVG`,"Zoom in":`放大`,"Zoom out":`缩小`,Minimap:`小地图`,"Graph navigation":`图谱导航`,"Show graph navigation":`显示图谱导航`,"Hide graph navigation":`隐藏图谱导航`,More:`更多`,"Export SVG":`导出 SVG`,"Export PNG":`导出 PNG`,Close:`关闭`,"View details":`查看详情`,Appearance:`外观`,"Follow system":`跟随系统`,"Restore the original layout and view, and clear search and selection.":`恢复原始位置和阅读视角,清除搜索与选择`,"Reset: original positions and reading view restored":`已重置:恢复原始位置和阅读视角`,Details:`详情`,Name:`名称`,Description:`说明`,"Name is required":`名称不能为空`,Cancel:`取消`,Save:`保存`,"Edit text":`编辑文字`,Evidence:`证据`,"Save changes":`保存修改`,"Graph JSON saved":`Graph JSON 已保存`,"Saved into this page, its sibling graph.json and SVGs":`已保存到当前页面、同级 graph.json 和 SVG`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`已保存到当前页面和同级 graph.json;SVG 未更新:布局需要调整`,"Choose the folder containing this page ({page}); edits remain in this page":`请选择当前页面 {page} 所在的文件夹,修改仍保留在当前页面`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON 已下载,请保留文件以保存修改`,"Save cancelled; edits remain in this page":`已取消保存,修改仍保留在当前页面`,"Save failed; edits remain in this page":`保存失败,修改仍保留在当前页面`,"Synchronous message":`同步消息`,"Asynchronous message":`异步消息`,"Return message":`返回消息`,"Branch conditions unspecified":`分支条件未标注`,"Activation: execution interval; offset means nesting":`激活条:执行区间,错位表示嵌套`,"C ID: paired call and return share a color":`C 编号:调用与返回配对,同组同色`,"par: concurrent branches; vertical position is not order":`par:分支并行,上下排列不代表先后`,"Layout needs adjustment; JSON drafts can still be saved":`布局需要调整,仍可保存 JSON 草稿`,"Card wash":`卡片微底色`,yes:`是`,no:`否`,composition:`组合`,aggregation:`聚合`,inheritance:`继承`,implementation:`实现`,"Core state":`核心状态`,"Ended state":`终结状态`,"Failed state":`失败状态`,"In-progress state":`进行中状态`,"In-progress state: warm to cool as it advances":`进行中状态:由暖到冷表示推进顺序`,Transition:`转移`,"Self-transition: handled without leaving the state":`自转移:留在原状态内处理的事件`},ja:{Architecture:`アーキテクチャ`,Flowchart:`フローチャート`,Sequence:`シーケンス図`,"ER diagram":`ER 図`,Deployment:`配置図`,"Class diagram":`クラス図`,"State diagram":`状態図`,"Use cases":`ユースケース図`,"Data flow":`データフロー図`,"Source code":`ソースコード`,Code:`コード`,Configuration:`設定`,Schema:`スキーマ`,Test:`テスト`,Document:`ドキュメント`,"Framework convention":`フレームワークの規約`,Inference:`推論`,External:`外部`,Framework:`フレームワーク`,Security:`セキュリティ`,Service:`サービス`,Business:`業務`,Data:`データ`,Failure:`失敗`,System:`システム`,Component:`コンポーネント`,Database:`データベース`,Start:`開始`,End:`終了`,Process:`処理`,Decision:`分岐`,Input:`入力`,Output:`出力`,Subprocess:`サブプロセス`,Actor:`アクター`,Participant:`参加者`,Entity:`エンティティ`,Device:`デバイス`,Nodes:`ノード`,Container:`コンテナ`,Artifact:`成果物`,Class:`クラス`,Interface:`インターフェース`,"Abstract class":`抽象クラス`,State:`状態`,Initial:`初期`,Choice:`選択`,"Use case":`ユースケース`,"Data store":`データストア`,"Initial state":`初期状態`,"Final state":`終了状態`,"Core component":`主要コンポーネント`,"Data / storage":`データ / ストレージ`,"Start / end":`開始 / 終了`,"Components / actors":`コンポーネント / アクター`,"Solid relation":`実線の関係`,"Dashed: notation / convention / inference":`破線:記法 / 規約 / 推論`,Reset:`リセット`,Dark:`ダーク`,Light:`ライト`,Locked:`配置を固定`,Draggable:`移動可能`,"Unlock the layout first":`先に配置の固定を解除してください`,"Space the selected node and its direct neighbors":`選択ノードと隣接ノードの間隔を調整`,"Space all nodes":`すべてのノードの間隔を調整`,Arrange:`間隔を調整`,"Hide details":`詳細を隠す`,"Show details":`詳細を表示`,Overview:`概要`,Edges:`関係`,Groups:`グループ`,"Diagram types":`図の種類`,"Search nodes":`ノードを検索`,"Edge animation":`接続線の動き`,On:`オン`,Off:`オフ`,"System reduced-motion preference is respected":`システムの視差効果を減らす設定に従っています`,"Matches · {count}":`検索結果 · {count}`,"Nodes · {count}":`ノード · {count}`,"No matches. Try a name or responsibility.":`一致するノードがありません。名前や役割を変えて検索してください。`,Legend:`凡例`,"Interactive {type}":`操作可能な{type}`,"Fit canvas":`キャンバスに合わせる`,"Exit fullscreen":`全画面表示を終了`,"Enter fullscreen":`全画面表示`,"Exit fullscreen (Esc)":`全画面表示を終了(Esc)`,"Fullscreen is not available in this browser or page":`このブラウザーまたはページでは全画面表示を利用できません`,"Could not exit fullscreen. Press Esc to try again.":`全画面表示を終了できません。Esc キーを押してください`,"Could not enter fullscreen. Check browser or page permissions and try again.":`全画面表示を開始できません。ブラウザーやページの権限を確認してください`,"{count} relations":`{count} 関係`,"Node notes":`ノードの説明`,"Close details":`詳細を閉じる`,Fields:`フィールド`,Attributes:`属性`,Methods:`メソッド`,Source:`根拠`,"Start with a node":`ノードを選んで始めましょう`,"Select a component or a list entry to explore its role, fields, methods and source.":`図や一覧からコンポーネントを選ぶと、役割、フィールド、メソッド、根拠を確認できます。`,"Evidence facts":`根拠に基づく情報`,"Unlock the layout before arranging nodes":`間隔を調整する前に配置の固定を解除してください`,Local:`選択範囲`,"Full diagram":`図全体`,"{scope} arranged: {count} nodes moved":`{scope}の間隔を調整:{count} ノードを移動`,"Cannot arrange further within the current constraints":`現在の制約ではこれ以上調整できません`,"No spacing changes needed":`間隔の調整は不要です`,"Generating {format}…":`{format} を生成中…`,"{format} downloaded":`{format} をダウンロードしました`,"The browser could not generate the PNG":`ブラウザーで PNG を生成できませんでした`,"The browser could not read the exported SVG":`ブラウザーで出力 SVG を読み込めませんでした`,"Zoom in":`拡大`,"Zoom out":`縮小`,Minimap:`ミニマップ`,"Graph navigation":`グラフナビ`,"Show graph navigation":`グラフナビを表示`,"Hide graph navigation":`グラフナビを非表示`,More:`その他`,"Export SVG":`SVG を書き出す`,"Export PNG":`PNG を書き出す`,Close:`閉じる`,"View details":`詳細を見る`,Appearance:`外観`,"Follow system":`システム`,"Restore the original layout and view, and clear search and selection.":`元の配置と表示に戻し、検索と選択を解除します。`,"Reset: original positions and reading view restored":`リセットしました:元の配置と表示に戻りました`,Details:`詳細`,Name:`名前`,Description:`説明`,"Name is required":`名前は必須です`,Cancel:`キャンセル`,Save:`保存`,"Edit text":`テキストを編集`,Evidence:`根拠`,"Save changes":`変更を保存`,"Graph JSON saved":`Graph JSON を保存しました`,"Saved into this page, its sibling graph.json and SVGs":`このページと同じ階層の graph.json、SVG に保存しました`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`このページと同じ階層の graph.json に保存しました。SVG は更新していません。レイアウトの調整が必要です`,"Choose the folder containing this page ({page}); edits remain in this page":`このページ({page})があるフォルダーを選択してください。編集内容はこのページに残っています`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON をダウンロードしました。編集内容を残すにはファイルを保管してください`,"Save cancelled; edits remain in this page":`保存をキャンセルしました。編集内容はこのページに残っています`,"Save failed; edits remain in this page":`保存に失敗しました。編集内容はこのページに残っています`,"Synchronous message":`同期メッセージ`,"Asynchronous message":`非同期メッセージ`,"Return message":`戻りメッセージ`,"Branch conditions unspecified":`分岐条件未指定`,"Activation: execution interval; offset means nesting":`実行区間:横のずれは入れ子を示す`,"C ID: paired call and return share a color":`C 番号:呼び出しと戻りは同じ色`,"par: concurrent branches; vertical position is not order":`par:並行分岐。上下の位置は実行順ではない`,"Layout needs adjustment; JSON drafts can still be saved":`レイアウトの調整が必要です。JSON の下書きは保存できます`,"Card wash":`カードの淡い下地`,yes:`はい`,no:`いいえ`,composition:`コンポジション`,aggregation:`集約`,inheritance:`継承`,implementation:`実装`,"Core state":`主要な状態`,"Ended state":`終了した状態`,"Failed state":`失敗した状態`,"In-progress state":`進行中の状態`,"In-progress state: warm to cool as it advances":`進行中の状態:進むにつれて暖色から寒色へ`,Transition:`遷移`,"Self-transition: handled without leaving the state":`自己遷移:状態を離れずに処理するイベント`},ko:{Architecture:`아키텍처`,Flowchart:`순서도`,Sequence:`시퀀스 다이어그램`,"ER diagram":`ER 다이어그램`,Deployment:`배포 다이어그램`,"Class diagram":`클래스 다이어그램`,"State diagram":`상태 다이어그램`,"Use cases":`유스케이스 다이어그램`,"Data flow":`데이터 흐름도`,"Source code":`소스 코드`,Code:`코드`,Configuration:`설정`,Schema:`스키마`,Test:`테스트`,Document:`문서`,"Framework convention":`프레임워크 규약`,Inference:`추론`,External:`외부`,Framework:`프레임워크`,Security:`보안`,Service:`서비스`,Business:`비즈니스`,Data:`데이터`,Failure:`실패`,System:`시스템`,Component:`컴포넌트`,Database:`데이터베이스`,Start:`시작`,End:`종료`,Process:`처리`,Decision:`판단`,Input:`입력`,Output:`출력`,Subprocess:`하위 프로세스`,Actor:`행위자`,Participant:`참여자`,Entity:`엔티티`,Device:`장치`,Nodes:`노드`,Container:`컨테이너`,Artifact:`아티팩트`,Class:`클래스`,Interface:`인터페이스`,"Abstract class":`추상 클래스`,State:`상태`,Initial:`초기`,Choice:`선택`,"Use case":`유스케이스`,"Data store":`데이터 저장소`,"Initial state":`초기 상태`,"Final state":`최종 상태`,"Core component":`핵심 컴포넌트`,"Data / storage":`데이터 / 저장소`,"Start / end":`시작 / 종료`,"Components / actors":`컴포넌트 / 행위자`,"Solid relation":`실선 관계`,"Dashed: notation / convention / inference":`점선: 표기법 / 규약 / 추론`,Reset:`초기화`,Dark:`어둡게`,Light:`밝게`,Locked:`배치 잠금`,Draggable:`드래그 가능`,"Unlock the layout first":`먼저 배치 잠금을 해제하세요`,"Space the selected node and its direct neighbors":`선택한 노드와 인접 노드의 간격 조정`,"Space all nodes":`모든 노드의 간격 조정`,Arrange:`간격 정리`,"Hide details":`상세 정보 숨기기`,"Show details":`상세 정보 표시`,Overview:`개요`,Edges:`관계`,Groups:`그룹`,"Diagram types":`다이어그램 유형`,"Search nodes":`노드 검색`,"Edge animation":`연결선 애니메이션`,On:`켜짐`,Off:`꺼짐`,"System reduced-motion preference is respected":`시스템의 동작 줄이기 설정을 따릅니다`,"Matches · {count}":`검색 결과 · {count}`,"Nodes · {count}":`노드 · {count}`,"No matches. Try a name or responsibility.":`일치하는 노드가 없습니다. 이름이나 역할로 검색하세요.`,Legend:`범례`,"Interactive {type}":`대화형 {type}`,"Fit canvas":`캔버스에 맞추기`,"Exit fullscreen":`전체 화면 종료`,"Enter fullscreen":`전체 화면`,"Exit fullscreen (Esc)":`전체 화면 종료 (Esc)`,"Fullscreen is not available in this browser or page":`이 브라우저나 페이지에서는 전체 화면을 사용할 수 없습니다`,"Could not exit fullscreen. Press Esc to try again.":`전체 화면을 종료할 수 없습니다. Esc 키를 누르세요`,"Could not enter fullscreen. Check browser or page permissions and try again.":`전체 화면을 시작할 수 없습니다. 브라우저나 페이지 권한을 확인하세요`,"{count} relations":`관계 {count}개`,"Node notes":`노드 설명`,"Close details":`상세 정보 닫기`,Fields:`필드`,Attributes:`속성`,Methods:`메서드`,Source:`근거`,"Start with a node":`노드를 선택해 시작하세요`,"Select a component or a list entry to explore its role, fields, methods and source.":`다이어그램이나 목록에서 컴포넌트를 선택하면 역할, 필드, 메서드와 근거를 볼 수 있습니다.`,"Evidence facts":`근거로 확인한 내용`,"Unlock the layout before arranging nodes":`간격을 정리하기 전에 배치 잠금을 해제하세요`,Local:`선택 영역`,"Full diagram":`전체 다이어그램`,"{scope} arranged: {count} nodes moved":`{scope} 간격 정리: 노드 {count}개 이동`,"Cannot arrange further within the current constraints":`현재 제약 조건에서는 더 정리할 수 없습니다`,"No spacing changes needed":`간격 조정이 필요하지 않습니다`,"Generating {format}…":`{format} 생성 중…`,"{format} downloaded":`{format} 다운로드 완료`,"The browser could not generate the PNG":`브라우저에서 PNG를 생성하지 못했습니다`,"The browser could not read the exported SVG":`브라우저에서 내보낸 SVG를 읽지 못했습니다`,"Zoom in":`확대`,"Zoom out":`축소`,Minimap:`미니맵`,"Graph navigation":`그래프 탐색`,"Show graph navigation":`그래프 탐색 표시`,"Hide graph navigation":`그래프 탐색 숨기기`,More:`더보기`,"Export SVG":`SVG 내보내기`,"Export PNG":`PNG 내보내기`,Close:`닫기`,"View details":`상세 보기`,Appearance:`화면 모드`,"Follow system":`시스템`,"Restore the original layout and view, and clear search and selection.":`원래 배치와 보기를 복원하고 검색과 선택을 지웁니다.`,"Reset: original positions and reading view restored":`초기화됨: 원래 위치와 보기 복원`,Details:`세부 정보`,Name:`이름`,Description:`설명`,"Name is required":`이름은 필수입니다`,Cancel:`취소`,Save:`저장`,"Edit text":`텍스트 편집`,Evidence:`근거`,"Save changes":`변경 사항 저장`,"Graph JSON saved":`Graph JSON을 저장했습니다`,"Saved into this page, its sibling graph.json and SVGs":`현재 페이지와 같은 폴더의 graph.json, SVG에 저장했습니다`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`현재 페이지와 같은 폴더의 graph.json에 저장했습니다. SVG는 업데이트하지 않았습니다. 레이아웃을 조정해야 합니다`,"Choose the folder containing this page ({page}); edits remain in this page":`현재 페이지({page})가 있는 폴더를 선택하세요. 수정 사항은 현재 페이지에 남아 있습니다`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON을 다운로드했습니다. 수정 사항을 보관하려면 파일을 저장하세요`,"Save cancelled; edits remain in this page":`저장을 취소했습니다. 수정 사항은 현재 페이지에 남아 있습니다`,"Save failed; edits remain in this page":`저장에 실패했습니다. 수정 사항은 현재 페이지에 남아 있습니다`,"Synchronous message":`동기 메시지`,"Asynchronous message":`비동기 메시지`,"Return message":`반환 메시지`,"Branch conditions unspecified":`분기 조건 미지정`,"Activation: execution interval; offset means nesting":`激活条:执行区间,错位表示嵌套`,"C ID: paired call and return share a color":`C 编号:调用与返回配对,同组同色`,"par: concurrent branches; vertical position is not order":`par:分支并行,上下排列不代表先后`,"Layout needs adjustment; JSON drafts can still be saved":`레이아웃을 조정해야 합니다. JSON 초안은 저장할 수 있습니다`,"Card wash":`카드 연한 배경`,yes:`예`,no:`아니요`,composition:`합성`,aggregation:`집합`,inheritance:`상속`,implementation:`구현`,"Core state":`핵심 상태`,"Ended state":`종료된 상태`,"Failed state":`실패한 상태`,"In-progress state":`진행 중인 상태`,"In-progress state: warm to cool as it advances":`진행 중인 상태: 진행될수록 따뜻한 색에서 차가운 색으로`,Transition:`전이`,"Self-transition: handled without leaving the state":`자기 전이: 상태를 벗어나지 않고 처리하는 이벤트`},de:{Architecture:`Architektur`,Flowchart:`Flussdiagramm`,Sequence:`Sequenzdiagramm`,"ER diagram":`ER-Diagramm`,Deployment:`Deployment-Diagramm`,"Class diagram":`Klassendiagramm`,"State diagram":`Zustandsdiagramm`,"Use cases":`Anwendungsfalldiagramm`,"Data flow":`Datenflussdiagramm`,"Source code":`Quellcode`,Code:`Code`,Configuration:`Konfiguration`,Schema:`Schema`,Test:`Test`,Document:`Dokumentation`,"Framework convention":`Framework-Konvention`,Inference:`Annahme`,External:`Extern`,Framework:`Framework`,Security:`Sicherheit`,Service:`Dienst`,Business:`Fachlogik`,Data:`Daten`,Failure:`Fehler`,System:`System`,Component:`Komponente`,Database:`Datenbank`,Start:`Start`,End:`Ende`,Process:`Prozess`,Decision:`Entscheidung`,Input:`Eingabe`,Output:`Ausgabe`,Subprocess:`Teilprozess`,Actor:`Akteur`,Participant:`Teilnehmer`,Entity:`Entität`,Device:`Gerät`,Nodes:`Knoten`,Container:`Container`,Artifact:`Artefakt`,Class:`Klasse`,Interface:`Schnittstelle`,"Abstract class":`Abstrakte Klasse`,State:`Zustand`,Initial:`Initial`,Choice:`Auswahl`,"Use case":`Anwendungsfall`,"Data store":`Datenspeicher`,"Initial state":`Anfangszustand`,"Final state":`Endzustand`,"Core component":`Kernkomponente`,"Data / storage":`Daten / Speicher`,"Start / end":`Start / Ende`,"Components / actors":`Komponenten / Akteure`,"Solid relation":`Durchgezogene Beziehung`,"Dashed: notation / convention / inference":`Gestrichelt: Notation / Konvention / Annahme`,Reset:`Zurücksetzen`,Dark:`Dunkel`,Light:`Hell`,Locked:`Gesperrt`,Draggable:`Verschiebbar`,"Unlock the layout first":`Zuerst das Layout entsperren`,"Space the selected node and its direct neighbors":`Abstände der Auswahl und direkter Nachbarn anpassen`,"Space all nodes":`Alle Knotenabstände anpassen`,Arrange:`Abstände`,"Hide details":`Details ausblenden`,"Show details":`Details anzeigen`,Overview:`Überblick`,Edges:`Beziehungen`,Groups:`Gruppen`,"Diagram types":`Diagrammtypen`,"Search nodes":`Knoten suchen`,"Edge animation":`Kantenanimation`,On:`Ein`,Off:`Aus`,"System reduced-motion preference is respected":`Die Systemeinstellung für reduzierte Bewegung wird beachtet`,"Matches · {count}":`Treffer · {count}`,"Nodes · {count}":`Knoten · {count}`,"No matches. Try a name or responsibility.":`Keine Treffer. Versuchen Sie einen Namen oder eine Rolle.`,Legend:`Legende`,"Interactive {type}":`Interaktiv: {type}`,"Fit canvas":`An Zeichenfläche anpassen`,"Exit fullscreen":`Vollbild verlassen`,"Enter fullscreen":`Vollbild`,"Exit fullscreen (Esc)":`Vollbild verlassen (Esc)`,"Fullscreen is not available in this browser or page":`Vollbild ist in diesem Browser oder auf dieser Seite nicht verfügbar`,"Could not exit fullscreen. Press Esc to try again.":`Vollbild konnte nicht beendet werden. Drücken Sie Esc.`,"Could not enter fullscreen. Check browser or page permissions and try again.":`Vollbild konnte nicht gestartet werden. Prüfen Sie die Browser- oder Seitenberechtigungen.`,"{count} relations":`{count} Beziehungen`,"Node notes":`Knotenbeschreibung`,"Close details":`Details schließen`,Fields:`Felder`,Attributes:`Attribute`,Methods:`Methoden`,Source:`Beleg`,"Start with a node":`Wählen Sie einen Knoten`,"Select a component or a list entry to explore its role, fields, methods and source.":`Wählen Sie eine Komponente im Diagramm oder in der Liste, um Rolle, Felder, Methoden und Belege zu sehen.`,"Evidence facts":`Belegte Fakten`,"Unlock the layout before arranging nodes":`Entsperren Sie das Layout vor dem Anpassen der Abstände`,Local:`Auswahl`,"Full diagram":`Gesamtes Diagramm`,"{scope} arranged: {count} nodes moved":`{scope}: Abstände angepasst, {count} Knoten verschoben`,"Cannot arrange further within the current constraints":`Unter diesen Bedingungen ist keine weitere Anpassung möglich`,"No spacing changes needed":`Keine Abstandsanpassung erforderlich`,"Generating {format}…":`{format} wird erstellt…`,"{format} downloaded":`{format} heruntergeladen`,"The browser could not generate the PNG":`Der Browser konnte kein PNG erstellen`,"The browser could not read the exported SVG":`Der Browser konnte die exportierte SVG-Datei nicht lesen`,"Zoom in":`Vergrößern`,"Zoom out":`Verkleinern`,Minimap:`Minikarte`,"Graph navigation":`Graph-Navigation`,"Show graph navigation":`Graph-Navigation einblenden`,"Hide graph navigation":`Graph-Navigation ausblenden`,More:`Mehr`,"Export SVG":`SVG exportieren`,"Export PNG":`PNG exportieren`,Close:`Schließen`,"View details":`Details ansehen`,Appearance:`Erscheinungsbild`,"Follow system":`System`,"Restore the original layout and view, and clear search and selection.":`Ursprüngliche Anordnung und Ansicht wiederherstellen, Suche und Auswahl löschen.`,"Reset: original positions and reading view restored":`Zurückgesetzt: ursprüngliche Positionen und Ansicht wiederhergestellt`,Details:`Details`,Name:`Name`,Description:`Beschreibung`,"Name is required":`Name ist erforderlich`,Cancel:`Abbrechen`,Save:`Speichern`,"Edit text":`Text bearbeiten`,Evidence:`Nachweis`,"Save changes":`Änderungen speichern`,"Graph JSON saved":`Graph JSON gespeichert`,"Saved into this page, its sibling graph.json and SVGs":`In diese Seite, die benachbarte graph.json und die SVGs gespeichert`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`In diese Seite und die benachbarte graph.json gespeichert; SVGs nicht aktualisiert: Das Layout muss angepasst werden`,"Choose the folder containing this page ({page}); edits remain in this page":`Bitte den Ordner dieser Seite ({page}) wählen; die Änderungen bleiben auf dieser Seite`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON heruntergeladen; Datei zum Erhalten der Änderungen aufbewahren`,"Save cancelled; edits remain in this page":`Speichern abgebrochen; Änderungen bleiben auf dieser Seite`,"Save failed; edits remain in this page":`Speichern fehlgeschlagen; Änderungen bleiben auf dieser Seite`,"Synchronous message":`Synchrone Nachricht`,"Asynchronous message":`Asynchrone Nachricht`,"Return message":`Antwortnachricht`,"Branch conditions unspecified":`Zweigbedingungen fehlen`,"Activation: execution interval; offset means nesting":`Aktivierung: Ausführungsdauer; Versatz zeigt Verschachtelung`,"C ID: paired call and return share a color":`C-ID: Aufruf und Rückgabe haben dieselbe Farbe`,"par: concurrent branches; vertical position is not order":`par: parallele Zweige; vertikale Lage ist keine Reihenfolge`,"Layout needs adjustment; JSON drafts can still be saved":`Layout anpassen; JSON-Entwürfe können gespeichert werden`,"Card wash":`Karten-Grundton`,yes:`ja`,no:`nein`,composition:`Komposition`,aggregation:`Aggregation`,inheritance:`Vererbung`,implementation:`Implementierung`,"Core state":`Kernzustand`,"Ended state":`Beendeter Zustand`,"Failed state":`Fehlgeschlagener Zustand`,"In-progress state":`Zustand in Bearbeitung`,"In-progress state: warm to cool as it advances":`Zustand in Bearbeitung: von warm nach kalt, je weiter er fortschreitet`,Transition:`Übergang`,"Self-transition: handled without leaving the state":`Selbstübergang: Ereignis, das im Zustand bleibt`},fr:{Architecture:`Architecture`,Flowchart:`Organigramme`,Sequence:`Diagramme de séquence`,"ER diagram":`Diagramme ER`,Deployment:`Diagramme de déploiement`,"Class diagram":`Diagramme de classes`,"State diagram":`Diagramme d’états`,"Use cases":`Cas d’utilisation`,"Data flow":`Flux de données`,"Source code":`Code source`,Code:`Code`,Configuration:`Configuration`,Schema:`Schéma`,Test:`Test`,Document:`Documentation`,"Framework convention":`Convention du framework`,Inference:`Déduction`,External:`Externe`,Framework:`Framework`,Security:`Sécurité`,Service:`Service`,Business:`Métier`,Data:`Données`,Failure:`Échec`,System:`Système`,Component:`Composant`,Database:`Base de données`,Start:`Début`,End:`Fin`,Process:`Traitement`,Decision:`Décision`,Input:`Entrée`,Output:`Sortie`,Subprocess:`Sous-processus`,Actor:`Acteur`,Participant:`Participant`,Entity:`Entité`,Device:`Appareil`,Nodes:`Nœuds`,Container:`Conteneur`,Artifact:`Artefact`,Class:`Classe`,Interface:`Interface`,"Abstract class":`Classe abstraite`,State:`État`,Initial:`Initial`,Choice:`Choix`,"Use case":`Cas d’utilisation`,"Data store":`Stockage de données`,"Initial state":`État initial`,"Final state":`État final`,"Core component":`Composant central`,"Data / storage":`Données / stockage`,"Start / end":`Début / fin`,"Components / actors":`Composants / acteurs`,"Solid relation":`Relation en trait plein`,"Dashed: notation / convention / inference":`Pointillés : notation / convention / déduction`,Reset:`Réinitialiser`,Dark:`Sombre`,Light:`Clair`,Locked:`Verrouillé`,Draggable:`Déplaçable`,"Unlock the layout first":`Déverrouillez d’abord la disposition`,"Space the selected node and its direct neighbors":`Espacer la sélection et ses voisins directs`,"Space all nodes":`Espacer tous les nœuds`,Arrange:`Espacer`,"Hide details":`Masquer les détails`,"Show details":`Afficher les détails`,Overview:`Vue d’ensemble`,Edges:`Relations`,Groups:`Groupes`,"Diagram types":`Types de diagrammes`,"Search nodes":`Rechercher un nœud`,"Edge animation":`Animation des liens`,On:`Activée`,Off:`Désactivée`,"System reduced-motion preference is respected":`Le réglage système de réduction des animations est respecté`,"Matches · {count}":`Résultats · {count}`,"Nodes · {count}":`Nœuds · {count}`,"No matches. Try a name or responsibility.":`Aucun résultat. Essayez un nom ou un rôle.`,Legend:`Légende`,"Interactive {type}":`Vue interactive : {type}`,"Fit canvas":`Ajuster au canevas`,"Exit fullscreen":`Quitter le plein écran`,"Enter fullscreen":`Plein écran`,"Exit fullscreen (Esc)":`Quitter le plein écran (Échap)`,"Fullscreen is not available in this browser or page":`Le plein écran n’est pas disponible dans ce navigateur ou sur cette page`,"Could not exit fullscreen. Press Esc to try again.":`Impossible de quitter le plein écran. Appuyez sur Échap.`,"Could not enter fullscreen. Check browser or page permissions and try again.":`Impossible de passer en plein écran. Vérifiez les autorisations du navigateur ou de la page.`,"{count} relations":`{count} relations`,"Node notes":`Notes du nœud`,"Close details":`Fermer les détails`,Fields:`Champs`,Attributes:`Attributs`,Methods:`Méthodes`,Source:`Preuve`,"Start with a node":`Commencez par un nœud`,"Select a component or a list entry to explore its role, fields, methods and source.":`Sélectionnez un composant du diagramme ou de la liste pour consulter son rôle, ses champs, ses méthodes et ses preuves.`,"Evidence facts":`Faits étayés`,"Unlock the layout before arranging nodes":`Déverrouillez la disposition avant d’ajuster les espacements`,Local:`Sélection`,"Full diagram":`Diagramme entier`,"{scope} arranged: {count} nodes moved":`{scope} : espacement ajusté, {count} nœuds déplacés`,"Cannot arrange further within the current constraints":`Impossible d’ajuster davantage avec ces contraintes`,"No spacing changes needed":`Aucun ajustement d’espacement nécessaire`,"Generating {format}…":`Génération de {format}…`,"{format} downloaded":`{format} téléchargé`,"The browser could not generate the PNG":`Le navigateur n’a pas pu générer le PNG`,"The browser could not read the exported SVG":`Le navigateur n’a pas pu lire le SVG exporté`,"Zoom in":`Agrandir`,"Zoom out":`Réduire`,Minimap:`Mini-carte`,"Graph navigation":`Navigation du graphe`,"Show graph navigation":`Afficher la navigation`,"Hide graph navigation":`Masquer la navigation`,More:`Plus`,"Export SVG":`Exporter en SVG`,"Export PNG":`Exporter en PNG`,Close:`Fermer`,"View details":`Voir les détails`,Appearance:`Apparence`,"Follow system":`Système`,"Restore the original layout and view, and clear search and selection.":`Rétablir la disposition et la vue, puis effacer la recherche et la sélection.`,"Reset: original positions and reading view restored":`Réinitialisé : positions et vue d’origine rétablies`,Details:`Détails`,Name:`Nom`,Description:`Description`,"Name is required":`Le nom est obligatoire`,Cancel:`Annuler`,Save:`Enregistrer`,"Edit text":`Modifier le texte`,Evidence:`Preuve`,"Save changes":`Enregistrer les modifications`,"Graph JSON saved":`Graph JSON enregistré`,"Saved into this page, its sibling graph.json and SVGs":`Enregistré dans cette page, dans le graph.json voisin et dans les SVG`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`Enregistré dans cette page et dans le graph.json voisin ; SVG non mis à jour : la disposition doit être ajustée`,"Choose the folder containing this page ({page}); edits remain in this page":`Choisissez le dossier contenant cette page ({page}) ; les modifications restent sur cette page`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON téléchargé ; conservez le fichier pour garder les modifications`,"Save cancelled; edits remain in this page":`Enregistrement annulé ; les modifications restent sur cette page`,"Save failed; edits remain in this page":`Échec de l’enregistrement ; les modifications restent sur cette page`,"Synchronous message":`Message synchrone`,"Asynchronous message":`Message asynchrone`,"Return message":`Message de retour`,"Branch conditions unspecified":`Conditions de branche non précisées`,"Activation: execution interval; offset means nesting":`激活条:执行区间,错位表示嵌套`,"C ID: paired call and return share a color":`C 编号:调用与返回配对,同组同色`,"par: concurrent branches; vertical position is not order":`par:分支并行,上下排列不代表先后`,"Layout needs adjustment; JSON drafts can still be saved":`La disposition doit être ajustée ; le brouillon JSON peut être enregistré`,"Card wash":`Fond léger des cartes`,yes:`oui`,no:`non`,composition:`composition`,aggregation:`agrégation`,inheritance:`héritage`,implementation:`implémentation`,"Core state":`État central`,"Ended state":`État terminé`,"Failed state":`État en échec`,"In-progress state":`État en cours`,"In-progress state: warm to cool as it advances":`État en cours : du chaud au froid à mesure qu’il avance`,Transition:`Transition`,"Self-transition: handled without leaving the state":`Auto-transition : événement traité sans quitter l’état`},es:{Architecture:`Arquitectura`,Flowchart:`Diagrama de flujo`,Sequence:`Diagrama de secuencia`,"ER diagram":`Diagrama ER`,Deployment:`Diagrama de despliegue`,"Class diagram":`Diagrama de clases`,"State diagram":`Diagrama de estados`,"Use cases":`Casos de uso`,"Data flow":`Flujo de datos`,"Source code":`Código fuente`,Code:`Código`,Configuration:`Configuración`,Schema:`Esquema`,Test:`Prueba`,Document:`Documentación`,"Framework convention":`Convención del framework`,Inference:`Inferencia`,External:`Externo`,Framework:`Framework`,Security:`Seguridad`,Service:`Servicio`,Business:`Negocio`,Data:`Datos`,Failure:`Error`,System:`Sistema`,Component:`Componente`,Database:`Base de datos`,Start:`Inicio`,End:`Fin`,Process:`Proceso`,Decision:`Decisión`,Input:`Entrada`,Output:`Salida`,Subprocess:`Subproceso`,Actor:`Actor`,Participant:`Participante`,Entity:`Entidad`,Device:`Dispositivo`,Nodes:`Nodos`,Container:`Contenedor`,Artifact:`Artefacto`,Class:`Clase`,Interface:`Interfaz`,"Abstract class":`Clase abstracta`,State:`Estado`,Initial:`Inicial`,Choice:`Elección`,"Use case":`Caso de uso`,"Data store":`Almacén de datos`,"Initial state":`Estado inicial`,"Final state":`Estado final`,"Core component":`Componente principal`,"Data / storage":`Datos / almacenamiento`,"Start / end":`Inicio / fin`,"Components / actors":`Componentes / actores`,"Solid relation":`Relación continua`,"Dashed: notation / convention / inference":`Discontinua: notación / convención / inferencia`,Reset:`Restablecer`,Dark:`Oscuro`,Light:`Claro`,Locked:`Bloqueado`,Draggable:`Movible`,"Unlock the layout first":`Primero desbloquea la disposición`,"Space the selected node and its direct neighbors":`Espaciar la selección y sus vecinos directos`,"Space all nodes":`Espaciar todos los nodos`,Arrange:`Espaciar`,"Hide details":`Ocultar detalles`,"Show details":`Mostrar detalles`,Overview:`Resumen`,Edges:`Relaciones`,Groups:`Grupos`,"Diagram types":`Tipos de diagramas`,"Search nodes":`Buscar nodos`,"Edge animation":`Animación de enlaces`,On:`Activada`,Off:`Desactivada`,"System reduced-motion preference is respected":`Se respeta la preferencia del sistema de reducir el movimiento`,"Matches · {count}":`Resultados · {count}`,"Nodes · {count}":`Nodos · {count}`,"No matches. Try a name or responsibility.":`No hay resultados. Prueba con un nombre o una función.`,Legend:`Leyenda`,"Interactive {type}":`Vista interactiva: {type}`,"Fit canvas":`Ajustar al lienzo`,"Exit fullscreen":`Salir de pantalla completa`,"Enter fullscreen":`Pantalla completa`,"Exit fullscreen (Esc)":`Salir de pantalla completa (Esc)`,"Fullscreen is not available in this browser or page":`La pantalla completa no está disponible en este navegador o página`,"Could not exit fullscreen. Press Esc to try again.":`No se pudo salir de pantalla completa. Pulsa Esc.`,"Could not enter fullscreen. Check browser or page permissions and try again.":`No se pudo activar la pantalla completa. Revisa los permisos del navegador o de la página.`,"{count} relations":`{count} relaciones`,"Node notes":`Notas del nodo`,"Close details":`Cerrar detalles`,Fields:`Campos`,Attributes:`Atributos`,Methods:`Métodos`,Source:`Evidencia`,"Start with a node":`Empieza por un nodo`,"Select a component or a list entry to explore its role, fields, methods and source.":`Selecciona un componente del diagrama o de la lista para ver su función, campos, métodos y evidencias.`,"Evidence facts":`Hechos documentados`,"Unlock the layout before arranging nodes":`Desbloquea la disposición antes de ajustar los espacios`,Local:`Selección`,"Full diagram":`Diagrama completo`,"{scope} arranged: {count} nodes moved":`{scope}: espaciado ajustado, {count} nodos movidos`,"Cannot arrange further within the current constraints":`No se puede ajustar más con estas restricciones`,"No spacing changes needed":`No es necesario ajustar el espaciado`,"Generating {format}…":`Generando {format}…`,"{format} downloaded":`{format} descargado`,"The browser could not generate the PNG":`El navegador no pudo generar el PNG`,"The browser could not read the exported SVG":`El navegador no pudo leer el SVG exportado`,"Zoom in":`Acercar`,"Zoom out":`Alejar`,Minimap:`Minimapa`,"Graph navigation":`Navegación del grafo`,"Show graph navigation":`Mostrar navegación`,"Hide graph navigation":`Ocultar navegación`,More:`Más`,"Export SVG":`Exportar SVG`,"Export PNG":`Exportar PNG`,Close:`Cerrar`,"View details":`Ver detalles`,Appearance:`Apariencia`,"Follow system":`Sistema`,"Restore the original layout and view, and clear search and selection.":`Restaurar la disposición y la vista originales, y borrar la búsqueda y la selección.`,"Reset: original positions and reading view restored":`Restablecido: posiciones y vista originales restauradas`,Details:`Detalles`,Name:`Nombre`,Description:`Descripción`,"Name is required":`El nombre es obligatorio`,Cancel:`Cancelar`,Save:`Guardar`,"Edit text":`Editar texto`,Evidence:`Evidencia`,"Save changes":`Guardar cambios`,"Graph JSON saved":`Graph JSON guardado`,"Saved into this page, its sibling graph.json and SVGs":`Guardado en esta página, en el graph.json contiguo y en los SVG`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`Guardado en esta página y en el graph.json contiguo; SVG sin actualizar: hay que ajustar el diseño`,"Choose the folder containing this page ({page}); edits remain in this page":`Elija la carpeta que contiene esta página ({page}); los cambios permanecen en esta página`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON descargado; conserva el archivo para guardar los cambios`,"Save cancelled; edits remain in this page":`Guardado cancelado; los cambios permanecen en esta página`,"Save failed; edits remain in this page":`Error al guardar; los cambios permanecen en esta página`,"Synchronous message":`Mensaje síncrono`,"Asynchronous message":`Mensaje asíncrono`,"Return message":`Mensaje de retorno`,"Branch conditions unspecified":`Condiciones de ramas sin especificar`,"Activation: execution interval; offset means nesting":`Activación: intervalo de ejecución; el desplazamiento indica anidación`,"C ID: paired call and return share a color":`ID C: llamada y retorno comparten color`,"par: concurrent branches; vertical position is not order":`par: ramas paralelas; la posición vertical no indica orden`,"Layout needs adjustment; JSON drafts can still be saved":`Ajusta el diseño; puedes guardar el borrador JSON`,"Card wash":`Tinte suave de tarjetas`,yes:`sí`,no:`no`,composition:`composición`,aggregation:`agregación`,inheritance:`herencia`,implementation:`implementación`,"Core state":`Estado principal`,"Ended state":`Estado finalizado`,"Failed state":`Estado fallido`,"In-progress state":`Estado en curso`,"In-progress state: warm to cool as it advances":`Estado en curso: de cálido a frío a medida que avanza`,Transition:`Transición`,"Self-transition: handled without leaving the state":`Autotransición: evento atendido sin salir del estado`},ru:{Architecture:`Архитектура`,Flowchart:`Блок-схема`,Sequence:`Последовательность`,"ER diagram":`ER-диаграмма`,Deployment:`Развёртывание`,"Class diagram":`Диаграмма классов`,"State diagram":`Диаграмма состояний`,"Use cases":`Варианты использования`,"Data flow":`Поток данных`,"Source code":`Исходный код`,Code:`Код`,Configuration:`Конфигурация`,Schema:`Схема данных`,Test:`Тест`,Document:`Документ`,"Framework convention":`Правило фреймворка`,Inference:`Предположение`,External:`Внешний`,Framework:`Фреймворк`,Security:`Безопасность`,Service:`Сервис`,Business:`Бизнес-логика`,Data:`Данные`,Failure:`Сбой`,System:`Система`,Component:`Компонент`,Database:`База данных`,Start:`Начало`,End:`Конец`,Process:`Процесс`,Decision:`Решение`,Input:`Вход`,Output:`Выход`,Subprocess:`Подпроцесс`,Actor:`Актор`,Participant:`Участник`,Entity:`Сущность`,Device:`Устройство`,Nodes:`Узлы`,Container:`Контейнер`,Artifact:`Артефакт`,Class:`Класс`,Interface:`Интерфейс`,"Abstract class":`Абстрактный класс`,State:`Состояние`,Initial:`Начальное`,Choice:`Выбор`,"Use case":`Вариант использования`,"Data store":`Хранилище данных`,"Initial state":`Начальное состояние`,"Final state":`Конечное состояние`,"Core component":`Ключевой компонент`,"Data / storage":`Данные / хранение`,"Start / end":`Начало / конец`,"Components / actors":`Компоненты / акторы`,"Solid relation":`Сплошная связь`,"Dashed: notation / convention / inference":`Пунктир: нотация / правило / предположение`,Reset:`Сбросить`,Dark:`Тёмная`,Light:`Светлая`,Locked:`Блокировка`,Draggable:`Можно перемещать`,"Unlock the layout first":`Сначала разблокируйте расположение`,"Space the selected node and its direct neighbors":`Настроить интервалы выбранного узла и его соседей`,"Space all nodes":`Настроить интервалы всех узлов`,Arrange:`Интервалы`,"Hide details":`Скрыть сведения`,"Show details":`Показать сведения`,Overview:`Обзор`,Edges:`Связи`,Groups:`Границы`,"Diagram types":`Типы диаграмм`,"Search nodes":`Найти узлы`,"Edge animation":`Анимация связей`,On:`Вкл.`,Off:`Выкл.`,"System reduced-motion preference is respected":`Учтена системная настройка уменьшения движения`,"Matches · {count}":`Найдено · {count}`,"Nodes · {count}":`Узлы · {count}`,"No matches. Try a name or responsibility.":`Совпадений нет. Попробуйте имя или назначение.`,Legend:`Легенда`,"Interactive {type}":`Интерактивная диаграмма: {type}`,"Fit canvas":`Вписать в холст`,"Exit fullscreen":`Выйти из полноэкранного режима`,"Enter fullscreen":`На весь экран`,"Exit fullscreen (Esc)":`Выйти из полноэкранного режима (Esc)`,"Fullscreen is not available in this browser or page":`Полноэкранный режим недоступен в этом браузере или на этой странице`,"Could not exit fullscreen. Press Esc to try again.":`Не удалось выйти из полноэкранного режима. Нажмите Esc.`,"Could not enter fullscreen. Check browser or page permissions and try again.":`Не удалось перейти в полноэкранный режим. Проверьте разрешения браузера или страницы.`,"{count} relations":`Связей: {count}`,"Node notes":`Примечания к узлу`,"Close details":`Закрыть сведения`,Fields:`Поля`,Attributes:`Атрибуты`,Methods:`Методы`,Source:`Основание`,"Start with a node":`Начните с узла`,"Select a component or a list entry to explore its role, fields, methods and source.":`Выберите компонент или пункт списка, чтобы посмотреть назначение, поля, методы и источник.`,"Evidence facts":`Подтверждённые факты`,"Unlock the layout before arranging nodes":`Разблокируйте расположение перед настройкой интервалов`,Local:`Локально`,"Full diagram":`Вся диаграмма`,"{scope} arranged: {count} nodes moved":`{scope}: интервалы настроены, перемещено узлов: {count}`,"Cannot arrange further within the current constraints":`Текущие ограничения не позволяют улучшить расположение`,"No spacing changes needed":`Интервалы не требуют изменений`,"Generating {format}…":`Создание {format}…`,"{format} downloaded":`{format} скачан`,"The browser could not generate the PNG":`Браузер не смог создать PNG`,"The browser could not read the exported SVG":`Браузер не смог прочитать экспортированный SVG`,"Zoom in":`Увеличить`,"Zoom out":`Уменьшить`,Minimap:`Мини-карта`,"Graph navigation":`Навигация по графу`,"Show graph navigation":`Показать навигацию`,"Hide graph navigation":`Скрыть навигацию`,More:`Ещё`,"Export SVG":`Экспорт SVG`,"Export PNG":`Экспорт PNG`,Close:`Закрыть`,"View details":`Подробнее`,Appearance:`Оформление`,"Follow system":`Как в системе`,"Restore the original layout and view, and clear search and selection.":`Восстановить исходное расположение и вид, очистить поиск и выделение.`,"Reset: original positions and reading view restored":`Сброс: исходное расположение и вид восстановлены`,Details:`Сведения`,Name:`Имя`,Description:`Описание`,"Name is required":`Имя обязательно`,Cancel:`Отмена`,Save:`Сохранить`,"Edit text":`Изменить текст`,Evidence:`Основание`,"Save changes":`Сохранить изменения`,"Graph JSON saved":`Graph JSON сохранён`,"Saved into this page, its sibling graph.json and SVGs":`Сохранено в эту страницу, соседний graph.json и SVG`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`Сохранено в эту страницу и соседний graph.json; SVG не обновлены: нужно исправить расположение`,"Choose the folder containing this page ({page}); edits remain in this page":`Выберите папку с этой страницей ({page}); изменения остаются на этой странице`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON скачан; сохраните файл, чтобы не потерять изменения`,"Save cancelled; edits remain in this page":`Сохранение отменено; изменения остались на странице`,"Save failed; edits remain in this page":`Не удалось сохранить; изменения остались на странице`,"Synchronous message":`Синхронное сообщение`,"Asynchronous message":`Асинхронное сообщение`,"Return message":`Ответное сообщение`,"Branch conditions unspecified":`Условия ветвей не указаны`,"Activation: execution interval; offset means nesting":`Активация: интервал выполнения; смещение означает вложенность`,"C ID: paired call and return share a color":`Номер C: вызов и возврат одного цвета`,"par: concurrent branches; vertical position is not order":`par: параллельные ветви; положение по вертикали не задаёт порядок`,"Layout needs adjustment; JSON drafts can still be saved":`Исправьте расположение; черновик JSON можно сохранить`,"Card wash":`Лёгкая заливка карточек`,yes:`да`,no:`нет`,composition:`композиция`,aggregation:`агрегация`,inheritance:`наследование`,implementation:`реализация`,"Core state":`Ключевое состояние`,"Ended state":`Завершённое состояние`,"Failed state":`Состояние сбоя`,"In-progress state":`Состояние в процессе`,"In-progress state: warm to cool as it advances":`Состояние в процессе: от тёплого цвета к холодному по мере продвижения`,Transition:`Переход`,"Self-transition: handled without leaving the state":`Петля: событие обрабатывается без выхода из состояния`},pt:{Architecture:`Arquitetura`,Flowchart:`Fluxograma`,Sequence:`Sequência`,"ER diagram":`Diagrama ER`,Deployment:`Implantação`,"Class diagram":`Diagrama de classes`,"State diagram":`Diagrama de estados`,"Use cases":`Casos de uso`,"Data flow":`Fluxo de dados`,"Source code":`Código-fonte`,Code:`Código`,Configuration:`Configuração`,Schema:`Esquema`,Test:`Teste`,Document:`Documento`,"Framework convention":`Convenção do framework`,Inference:`Inferência`,External:`Externo`,Framework:`Framework`,Security:`Segurança`,Service:`Serviço`,Business:`Negócio`,Data:`Dados`,Failure:`Falha`,System:`Sistema`,Component:`Componente`,Database:`Banco de dados`,Start:`Início`,End:`Fim`,Process:`Processo`,Decision:`Decisão`,Input:`Entrada`,Output:`Saída`,Subprocess:`Subprocesso`,Actor:`Ator`,Participant:`Participante`,Entity:`Entidade`,Device:`Dispositivo`,Nodes:`Nós`,Container:`Contêiner`,Artifact:`Artefato`,Class:`Classe`,Interface:`Interface`,"Abstract class":`Classe abstrata`,State:`Estado`,Initial:`Inicial`,Choice:`Escolha`,"Use case":`Caso de uso`,"Data store":`Armazenamento de dados`,"Initial state":`Estado inicial`,"Final state":`Estado final`,"Core component":`Componente central`,"Data / storage":`Dados / armazenamento`,"Start / end":`Início / fim`,"Components / actors":`Componentes / atores`,"Solid relation":`Relação contínua`,"Dashed: notation / convention / inference":`Tracejado: notação / convenção / inferência`,Reset:`Redefinir`,Dark:`Escuro`,Light:`Claro`,Locked:`Bloqueado`,Draggable:`Arrastável`,"Unlock the layout first":`Desbloqueie o layout primeiro`,"Space the selected node and its direct neighbors":`Ajustar o espaçamento do nó selecionado e dos vizinhos diretos`,"Space all nodes":`Ajustar o espaçamento de todos os nós`,Arrange:`Organizar`,"Hide details":`Ocultar detalhes`,"Show details":`Mostrar detalhes`,Overview:`Visão geral`,Edges:`Relações`,Groups:`Limites`,"Diagram types":`Tipos de diagrama`,"Search nodes":`Buscar nós`,"Edge animation":`Animação das conexões`,On:`Ativada`,Off:`Desativada`,"System reduced-motion preference is respected":`A preferência do sistema por movimento reduzido é respeitada`,"Matches · {count}":`Resultados · {count}`,"Nodes · {count}":`Nós · {count}`,"No matches. Try a name or responsibility.":`Nenhum resultado. Tente um nome ou responsabilidade.`,Legend:`Legenda`,"Interactive {type}":`{type} interativo`,"Fit canvas":`Ajustar à tela`,"Exit fullscreen":`Sair da tela cheia`,"Enter fullscreen":`Entrar em tela cheia`,"Exit fullscreen (Esc)":`Sair da tela cheia (Esc)`,"Fullscreen is not available in this browser or page":`A tela cheia não está disponível neste navegador ou nesta página`,"Could not exit fullscreen. Press Esc to try again.":`Não foi possível sair da tela cheia. Pressione Esc para tentar novamente.`,"Could not enter fullscreen. Check browser or page permissions and try again.":`Não foi possível entrar em tela cheia. Verifique as permissões do navegador ou da página e tente novamente.`,"{count} relations":`{count} relações`,"Node notes":`Notas do nó`,"Close details":`Fechar detalhes`,Fields:`Campos`,Attributes:`Atributos`,Methods:`Métodos`,Source:`Evidência`,"Start with a node":`Comece por um nó`,"Select a component or a list entry to explore its role, fields, methods and source.":`Selecione um componente ou item da lista para explorar sua função, campos, métodos e fonte.`,"Evidence facts":`Fatos comprovados`,"Unlock the layout before arranging nodes":`Desbloqueie o layout antes de organizar os nós`,Local:`Local`,"Full diagram":`Diagrama completo`,"{scope} arranged: {count} nodes moved":`{scope} organizado: {count} nós movidos`,"Cannot arrange further within the current constraints":`Não é possível organizar mais com as restrições atuais`,"No spacing changes needed":`Nenhum ajuste de espaçamento necessário`,"Generating {format}…":`Gerando {format}…`,"{format} downloaded":`{format} baixado`,"The browser could not generate the PNG":`O navegador não conseguiu gerar o PNG`,"The browser could not read the exported SVG":`O navegador não conseguiu ler o SVG exportado`,"Zoom in":`Ampliar`,"Zoom out":`Reduzir`,Minimap:`Minimapa`,"Graph navigation":`Navegação do grafo`,"Show graph navigation":`Mostrar navegação do grafo`,"Hide graph navigation":`Ocultar navegação do grafo`,More:`Mais`,"Export SVG":`Exportar SVG`,"Export PNG":`Exportar PNG`,Close:`Fechar`,"View details":`Ver detalhes`,Appearance:`Aparência`,"Follow system":`Sistema`,"Restore the original layout and view, and clear search and selection.":`Restaurar o layout e a visualização originais e limpar a busca e a seleção.`,"Reset: original positions and reading view restored":`Redefinido: posições e visualização originais restauradas`,Details:`Detalhes`,Name:`Nome`,Description:`Descrição`,"Name is required":`O nome é obrigatório`,Cancel:`Cancelar`,Save:`Salvar`,"Edit text":`Editar texto`,Evidence:`Evidência`,"Save changes":`Salvar alterações`,"Graph JSON saved":`Graph JSON salvo`,"Saved into this page, its sibling graph.json and SVGs":`Salvo nesta página, no graph.json ao lado e nos SVG`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`Salvo nesta página e no graph.json ao lado; SVG não atualizados: o layout precisa de ajuste`,"Choose the folder containing this page ({page}); edits remain in this page":`Escolha a pasta desta página ({page}); as alterações permanecem nesta página`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON baixado; guarde o arquivo para preservar as alterações`,"Save cancelled; edits remain in this page":`Salvamento cancelado; as alterações permanecem nesta página`,"Save failed; edits remain in this page":`Falha ao salvar; as alterações permanecem nesta página`,"Synchronous message":`Mensagem síncrona`,"Asynchronous message":`Mensagem assíncrona`,"Return message":`Mensagem de retorno`,"Branch conditions unspecified":`Condições dos ramos não indicadas`,"Activation: execution interval; offset means nesting":`Ativação: intervalo de execução; deslocamento indica aninhamento`,"C ID: paired call and return share a color":`ID C: chamada e retorno têm a mesma cor`,"par: concurrent branches; vertical position is not order":`par: ramos paralelos; posição vertical não indica ordem`,"Layout needs adjustment; JSON drafts can still be saved":`Ajuste o layout; o rascunho JSON pode ser salvo`,"Card wash":`Tom suave dos cartões`,yes:`sim`,no:`não`,composition:`composição`,aggregation:`agregação`,inheritance:`herança`,implementation:`implementação`,"Core state":`Estado central`,"Ended state":`Estado encerrado`,"Failed state":`Estado com falha`,"In-progress state":`Estado em andamento`,"In-progress state: warm to cool as it advances":`Estado em andamento: do quente ao frio conforme avança`,Transition:`Transição`,"Self-transition: handled without leaving the state":`Autotransição: evento tratado sem sair do estado`}},uf=[`en`,...Object.keys(lf)];function df(e,t,n={}){let r=e??`zh-CN`,i=Object.hasOwn(lf,r)?lf[r]:void 0;return(i&&Object.hasOwn(i,t)?i[t]:t).replace(/\{(\w+)\}/g,(e,t)=>Object.hasOwn(n,t)?String(n[t]):e)}var ff={light:{neutral:[null,`#fcfcfd`,`#f9f9fb`,`#f0f0f3`,`#e8e8ec`,`#e0e1e6`,`#d9d9e0`,`#cdced6`,`#b9bbc6`,`#8b8d98`,`#80838d`,`#60646c`,`#1c2024`],accent:[null,`#fdfdff`,`#f8f8ff`,`#f0f1fe`,`#e6e7ff`,`#dadcff`,`#cbcdff`,`#b8baf8`,`#9b9ef0`,`#5b5bd6`,`#5151cd`,`#5753c6`,`#272962`],data:[null,`#fafdfe`,`#f2fafb`,`#def7f9`,`#caf1f6`,`#b5e9f0`,`#9ddde7`,`#7dcedc`,`#3db9cf`,`#00a2c7`,`#0797b9`,`#107d98`,`#0d3c48`],warn:[null,`#fffcfc`,`#fff7f7`,`#feebec`,`#ffdbdc`,`#ffcdce`,`#fdbdbe`,`#f4a9aa`,`#eb8e90`,`#e5484d`,`#dc3e42`,`#ce2c31`,`#641723`],guard:[null,`#fefdfb`,`#fefbe9`,`#fff7c2`,`#ffee9c`,`#fbe577`,`#f3d673`,`#e9c162`,`#e2a336`,`#ffc53d`,`#ffba18`,`#ab6400`,`#4f3422`]},dark:{neutral:[null,`#111113`,`#18191b`,`#212225`,`#272a2d`,`#2e3135`,`#363a3f`,`#43484e`,`#5a6169`,`#696e77`,`#777b84`,`#b0b4ba`,`#edeef0`],accent:[null,`#13131e`,`#171625`,`#202248`,`#262a65`,`#303374`,`#3d3e82`,`#4a4a95`,`#5958b1`,`#5b5bd6`,`#6e6ade`,`#b1a9ff`,`#e0dffe`],data:[null,`#0b161a`,`#101b20`,`#082c36`,`#003848`,`#004558`,`#045468`,`#12677e`,`#11809c`,`#00a2c7`,`#23afd0`,`#4ccce6`,`#b6ecf7`],warn:[null,`#191111`,`#201314`,`#3b1219`,`#500f1c`,`#611623`,`#72232d`,`#8c333a`,`#b54548`,`#e5484d`,`#ec5d5e`,`#ff9592`,`#ffd1d9`],guard:[null,`#16120c`,`#1d180f`,`#302008`,`#3f2700`,`#4d3000`,`#5c3d05`,`#714f19`,`#8f6424`,`#ffc53d`,`#ffd60a`,`#ffca16`,`#ffe7b3`]}},pf=[`blue`,`orange`,`teal`,`crimson`,`violet`,`grass`,`plum`,`indigo`],mf={light:{blue:[null,`#fbfdff`,`#f4faff`,`#e6f4fe`,`#d5efff`,`#c2e5ff`,`#acd8fc`,`#8ec8f6`,`#5eb1ef`,`#0090ff`,`#0588f0`,`#0d74ce`,`#113264`],orange:[null,`#fefcfb`,`#fff7ed`,`#ffefd6`,`#ffdfb5`,`#ffd19a`,`#ffc182`,`#f5ae73`,`#ec9455`,`#f76b15`,`#ef5f00`,`#cc4e00`,`#582d1d`],teal:[null,`#fafefd`,`#f3fbf9`,`#e0f8f3`,`#ccf3ea`,`#b8eae0`,`#a1ded2`,`#83cdc1`,`#53b9ab`,`#12a594`,`#0d9b8a`,`#008573`,`#0d3d38`],crimson:[null,`#fffcfd`,`#fef7f9`,`#ffe9f0`,`#fedce7`,`#facedd`,`#f3bed1`,`#eaacc3`,`#e093b2`,`#e93d82`,`#df3478`,`#cb1d63`,`#621639`],violet:[null,`#fdfcfe`,`#faf8ff`,`#f4f0fe`,`#ebe4ff`,`#e1d9ff`,`#d4cafe`,`#c2b5f5`,`#aa99ec`,`#6e56cf`,`#654dc4`,`#6550b9`,`#2f265f`],grass:[null,`#fbfefb`,`#f5fbf5`,`#e9f6e9`,`#daf1db`,`#c9e8ca`,`#b2ddb5`,`#94ce9a`,`#65ba74`,`#46a758`,`#3e9b4f`,`#2a7e3b`,`#203c25`],plum:[null,`#fefcff`,`#fdf7fd`,`#fbebfb`,`#f7def8`,`#f2d1f3`,`#e9c2ec`,`#deade3`,`#cf91d8`,`#ab4aba`,`#a144af`,`#953ea3`,`#53195d`],indigo:[null,`#fdfdfe`,`#f7f9ff`,`#edf2fe`,`#e1e9ff`,`#d2deff`,`#c1d0ff`,`#abbdf9`,`#8da4ef`,`#3e63dd`,`#3358d4`,`#3a5bc7`,`#1f2d5c`]},dark:{blue:[null,`#0d1520`,`#111927`,`#0d2847`,`#003362`,`#004074`,`#104d87`,`#205d9e`,`#2870bd`,`#0090ff`,`#3b9eff`,`#70b8ff`,`#c2e6ff`],orange:[null,`#17120e`,`#1e160f`,`#331e0b`,`#462100`,`#562800`,`#66350c`,`#7e451d`,`#a35829`,`#f76b15`,`#ff801f`,`#ffa057`,`#ffe0c2`],teal:[null,`#0d1514`,`#111c1b`,`#0d2d2a`,`#023b37`,`#084843`,`#145750`,`#1c6961`,`#207e73`,`#12a594`,`#0eb39e`,`#0bd8b6`,`#adf0dd`],crimson:[null,`#191114`,`#201318`,`#381525`,`#4d122f`,`#5c1839`,`#6d2545`,`#873356`,`#b0436e`,`#e93d82`,`#ee518a`,`#ff92ad`,`#fdd3e8`],violet:[null,`#14121f`,`#1b1525`,`#291f43`,`#33255b`,`#3c2e69`,`#473876`,`#56468b`,`#6958ad`,`#6e56cf`,`#7d66d9`,`#baa7ff`,`#e2ddfe`],grass:[null,`#0e1511`,`#141a15`,`#1b2a1e`,`#1d3a24`,`#25482d`,`#2d5736`,`#366740`,`#3e7949`,`#46a758`,`#53b365`,`#71d083`,`#c2f0c2`],plum:[null,`#181118`,`#201320`,`#351a35`,`#451d47`,`#512454`,`#5e3061`,`#734079`,`#92549c`,`#ab4aba`,`#b658c4`,`#e796f3`,`#f4d4f4`],indigo:[null,`#11131f`,`#141726`,`#182449`,`#1d2e62`,`#253974`,`#304384`,`#3a4f97`,`#435db1`,`#3e63dd`,`#5472e4`,`#9eb1ff`,`#d6e1ff`]}},hf=`MIT License
236
+ `));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,y.useEffect)(()=>{let n=t?.target??qc,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)&&So(e))return!1;let n=Xc(e.code,s);if(a.current.add(e[n]),Yc(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=Xc(e.code,s);Yc(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 Yc(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function Xc(e,t){return t.includes(e)?`code`:`key`}var Zc=()=>{let e=bc();return(0,y.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=lo(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 io(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=ao(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function Qc(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)$c(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 $c(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)}}function el(e,t){return Qc(e,t)}function tl(e,t){return Qc(e,t)}function nl(e,t){return{id:e,type:`select`,selected:t}}function rl(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(nl(a.id,e)))}return r}function il({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 al(e){return{id:e.id,type:`remove`}}var ol=no(`React Flow`,`https://reactflow.dev/`);function sl(e,t,n={}){return Fo(e,t,{...n,onError:n.onError??ol})}var cl=e=>Aa(e),ll=e=>ka(e);function ul(e){return(0,y.forwardRef)(e)}var dl=typeof window<`u`?y.useLayoutEffect:y.useEffect;function fl(e){let[t,n]=(0,y.useState)(BigInt(0)),[r]=(0,y.useState)(()=>pl(()=>n(e=>e+BigInt(1))));return dl(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function pl(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var ml=(0,y.createContext)(null);function hl({children:e}){let t=bc(),n=fl((0,y.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=il({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=fl((0,y.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(il({items:s,lookup:o}))},[])),i=(0,y.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,x.jsx)(ml.Provider,{value:i,children:e})}function gl(){let e=(0,y.useContext)(ml);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var _l=e=>!!e.panZoom;function vl(){let e=Zc(),t=bc(),n=gl(),r=G(_l),i=(0,y.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=cl(e)?e:n.get(e.id),a=i.parentId?po(i.position,i.measured,i.parentId,n,r):i.position;return Ya({...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&&cl(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&&ll(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 Ba({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(al);o?.(f),c(e)}if(m){let e=d.map(al);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=eo(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=Ya(s?r:a),l=$a(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=eo(e)?e:a(e);if(!r)return!1;let i=$a(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 Na(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??ho();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,y.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var yl=e=>e.selected,bl=typeof window<`u`?window:void 0;function xl({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=bc(),{deleteElements:r}=vl(),i=Jc(e,{actInsideInputWithModifier:!1}),a=Jc(t,{target:bl});(0,y.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(yl),edges:e.filter(yl)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,y.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function Sl(e){let t=bc();(0,y.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=yo(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,va.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 Cl={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},wl=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function Tl({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panActivationKeyPressed:i,panOnScrollSpeed:a=.5,panOnScrollMode:o=Ca.Free,zoomOnDoubleClick:s=!0,panOnDrag:c=!0,defaultViewport:l,translateExtent:u,minZoom:d,maxZoom:f,zoomActivationKeyCode:p,preventScrolling:m=!0,children:h,noWheelClassName:g,noPanClassName:_,onViewportChange:v,isControlledViewport:b,paneClickDistance:S,selectionOnDrag:C}){let w=bc(),T=(0,y.useRef)(null),{userSelectionActive:E,lib:D,connectionInProgress:O}=G(wl,hc),k=Jc(p),A=(0,y.useRef)();Sl(T);let j=(0,y.useCallback)(e=>{v?.({x:e[0],y:e[1],zoom:e[2]}),b||w.setState({transform:e})},[v,b]);return(0,y.useEffect)(()=>{if(T.current){A.current=Ws({domNode:T.current,minZoom:d,maxZoom:f,translateExtent:u,viewport:l,onDraggingChange:e=>w.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=w.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=w.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=w.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=A.current.getViewport();return w.setState({panZoom:A.current,transform:[e,t,n],domNode:T.current.closest(`.react-flow`)}),()=>{A.current?.destroy()}}},[]),(0,y.useEffect)(()=>{A.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panActivationKeyPressed:i,panOnScrollSpeed:a,panOnScrollMode:o,zoomOnDoubleClick:s,panOnDrag:c,zoomActivationKeyPressed:k,preventScrolling:m,noPanClassName:_,userSelectionActive:E,noWheelClassName:g,lib:D,onTransformChange:j,connectionInProgress:O,selectionOnDrag:C,paneClickDistance:S})},[e,t,n,r,i,a,o,s,c,k,m,_,E,g,D,j,O,C,S]),(0,x.jsx)(`div`,{className:`react-flow__renderer`,ref:T,style:Cl,children:h})}var El=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Dl(){let{userSelectionActive:e,userSelectionRect:t}=G(El,hc);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 Ol=(e,t)=>n=>{n.target===t.current&&e?.(n)},kl=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function Al({isSelecting:e,selectionKeyPressed:t,selectionMode:n=wa.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,y.useRef)(0),_=bc(),{userSelectionActive:v,elementsSelectable:b,dragging:C,panBy:w,autoPanSpeed:T}=G(kl,hc),E=b&&(e||v),D=(0,y.useRef)(null),O=(0,y.useRef)(),k=(0,y.useRef)(new Set),A=(0,y.useRef)(new Set),j=(0,y.useRef)(!1),M=(0,y.useRef)(!1),N=(0,y.useRef)({x:0,y:0}),P=(0,y.useRef)(!1),ee=e=>{if(M.current||j.current||_.getState().connection.inProgress){M.current=!1,j.current=!1;return}l?.(e),_.getState().resetSelectedElements(),_.setState({nodesSelectionActive:!1})},F=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}u?.(e)},I=d?e=>d(e):void 0,te=e=>{M.current&&=(e.stopPropagation(),!1)},ne=n=>{if(n.pointerType===`touch`&&r!==!1&&!t)return;let{domNode:i,transform:a}=_.getState();if(O.current=i?.getBoundingClientRect(),!O.current)return;let s=n.target===D.current;if(!s&&n.target.closest(`.nokey`)||!e||!(o&&s||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),M.current=!1;let{x:c,y:l}=wo(n.nativeEvent,O.current),u=io({x:c,y:l},a);_.setState({userSelectionRect:{width:0,height:0,startX:u.x,startY:u.y,x:c,y:l}}),s||(n.stopPropagation(),n.preventDefault())};function L(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}=ao(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=k.current,g=A.current;k.current=new Set(Fa(a,m,i,n===wa.Partial,!0).map(e=>e.id)),A.current=new Set;let v=u?.selectable??!0;for(let e of k.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=o.get(e);t&&(t.selectable??v)&&A.current.add(e)}}mo(h,k.current)||c(rl(a,k.current,!0)),mo(g,A.current)||l(rl(o,A.current)),_.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}function R(){if(!i||!O.current)return;let[e,t]=Ga(N.current,O.current,T);w({x:e,y:t}).then(e=>{if(!M.current||!e){g.current=requestAnimationFrame(R);return}let{x:t,y:n}=N.current;L(t,n),g.current=requestAnimationFrame(R)})}let z=()=>{cancelAnimationFrame(g.current),g.current=0,P.current=!1};(0,y.useEffect)(()=>()=>z(),[]);let B=e=>{let{userSelectionRect:n,transform:r,resetSelectedElements:i}=_.getState();if(!O.current||!n)return;let{x:o,y:c}=wo(e.nativeEvent,O.current);N.current={x:o,y:c};let l=ao({x:n.startX,y:n.startY},r);if(!M.current){let n=t?0:a;if(Math.hypot(o-l.x,c-l.y)<=n)return;i(),s?.(e)}M.current=!0,P.current||=(R(),!0),L(o,c)},re=e=>{if(!E){e.target===D.current&&_.getState().connection.inProgress&&(j.current=!0);return}e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!v&&e.target===D.current&&_.getState().userSelectionRect&&ee?.(e),_.setState({userSelectionActive:!1,userSelectionRect:null}),M.current&&(c?.(e),_.setState({nodesSelectionActive:k.current.size>0})),z())},ie=e=>{e.target?.releasePointerCapture?.(e.pointerId),z()},ae=r===!0||Array.isArray(r)&&r.includes(0);return(0,x.jsxs)(`div`,{className:S([`react-flow__pane`,{draggable:ae,dragging:C,selection:e}]),onClick:E?void 0:Ol(ee,D),onContextMenu:Ol(F,D),onWheel:Ol(I,D),onPointerEnter:E?void 0:f,onPointerMove:E?B:p,onPointerUp:re,onPointerCancel:E?ie:void 0,onPointerDownCapture:E?ne:void 0,onClickCapture:E?te:void 0,onPointerLeave:m,ref:D,style:Cl,children:[h,(0,x.jsx)(Dl,{})]})}function jl({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`,va.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function Ml({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=bc(),[c,l]=(0,y.useState)(!1),u=(0,y.useRef)();return(0,y.useEffect)(()=>{if(!t)return u.current=ys({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{jl({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}}),()=>{u.current?.destroy(),u.current=void 0}},[t,s,e]),(0,y.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 Nl=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function Pl(){let e=bc();return(0,y.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=Nl(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=ro(t,i));let{position:a,positionAbsolute:s}=za({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 Fl=(0,y.createContext)(null),Il=Fl.Provider;Fl.Consumer;var Ll=()=>(0,y.useContext)(Fl),Rl=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),zl=(0,y.createContext)(null);function Bl({children:e}){let t=G(Rl,hc);return(0,x.jsx)(zl.Provider,{value:t,children:e})}function K(){let e=(0,y.useContext)(zl);if(!e)throw Error(`useHandleConfig must be used within a HandleConfigProvider`);return e}var q={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},Vl=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o;if(!s&&!i)return q;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===Sa.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function Hl({type:e=`source`,position:t=H.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=bc(),_=Ll(),{connectOnClick:v,noPanClassName:y,rfId:b}=K(),{connectingFrom:C,connectingTo:w,clickConnecting:T,isPossibleEndHandle:E,connectionInProcess:D,clickConnectionInProcess:O,valid:k}=G(Vl(_,m,e),hc);_||g.getState().onError?.(`010`,va.error010());let A=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(sl(i,e,{onError:n}))}n?.(i),s?.(i)},j=e=>{if(!_)return;let t=Co(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();ks.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:A,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:S([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:T,connectingfrom:C,connectingto:w,valid:k,connectionindicator:r&&(!D||E)&&(D||O?a:i)}]),onMouseDown:j,onTouchStart:j,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=bo(t.target),h=n||c,{connection:v,isValid:y}=ks.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&&A(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 Ul=(0,y.memo)(ul(Hl));function Wl({data:e,isConnectable:t,sourcePosition:n=H.Bottom}){return(0,x.jsxs)(x.Fragment,{children:[e?.label,(0,x.jsx)(Ul,{type:`source`,position:n,isConnectable:t})]})}function Gl({data:e,isConnectable:t,targetPosition:n=H.Top,sourcePosition:r=H.Bottom}){return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(Ul,{type:`target`,position:n,isConnectable:t}),e?.label,(0,x.jsx)(Ul,{type:`source`,position:r,isConnectable:t})]})}function Kl(){return null}function ql({data:e,isConnectable:t,targetPosition:n=H.Top}){return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(Ul,{type:`target`,position:n,isConnectable:t}),e?.label]})}var Jl={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Yl={input:Wl,default:Gl,output:ql,group:Kl};function Xl(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 Zl=e=>{let{width:t,height:n,x:r,y:i}=Pa(e.nodeLookup,{filter:e=>!!e.selected});return{width:to(t)?t:null,height:to(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 Ql({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=bc(),{width:i,height:a,transformString:o,userSelectionActive:s}=G(Zl,hc),c=Pl(),l=(0,y.useRef)(null);(0,y.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if(Ml({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:S([`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(Jl,e.key)&&(e.preventDefault(),c({direction:Jl[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var $l=typeof window<`u`?window:void 0,eu=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function tu({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:S,panOnScrollMode:C,zoomOnDoubleClick:w,panOnDrag:T,autoPanOnSelection:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,onSelectionContextMenu:M,noWheelClassName:N,noPanClassName:P,disableKeyboardA11y:ee,onViewportChange:F,isControlledViewport:I}){let{nodesSelectionActive:te,userSelectionActive:ne}=G(eu,hc),L=Jc(l,{target:$l}),R=Jc(h,{target:$l}),z=R||T,B=R||b,re=u&&z!==!0,ie=L||ne||re;return xl({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,x.jsx)(Tl,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:B,panActivationKeyPressed:R,panOnScrollSpeed:S,panOnScrollMode:C,zoomOnDoubleClick:w,panOnDrag:!L&&z,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,zoomActivationKeyCode:g,preventScrolling:j,noWheelClassName:N,noPanClassName:P,onViewportChange:F,isControlledViewport:I,paneClickDistance:s,selectionOnDrag:re,children:(0,x.jsxs)(Al,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:z,autoPanOnSelection:E,isSelecting:!!ie,selectionMode:d,selectionKeyPressed:L,paneClickDistance:s,selectionOnDrag:re,children:[e,te&&(0,x.jsx)(Ql,{onSelectionContextMenu:M,noPanClassName:P,disableKeyboardA11y:ee})]})})}tu.displayName=`FlowRenderer`;var nu=(0,y.memo)(tu),ru=e=>t=>e?Fa(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 iu(e){return G((0,y.useCallback)(ru(e),[e]),hc)}var au=e=>e.updateNodeInternals;function ou(){let e=G(au),[t]=(0,y.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,y.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function su({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=bc(),a=(0,y.useRef)(null),o=(0,y.useRef)(null),s=(0,y.useRef)(e.sourcePosition),c=(0,y.useRef)(e.targetPosition),l=(0,y.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,y.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,y.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,y.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 cu({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:C}=G(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},hc),w=y.type||`default`,T=g?.[w]||Yl[w];T===void 0&&(v?.(`003`,va.error003(w)),w=`default`,T=g?.default||Yl.default);let E=!!(y.draggable||s&&y.draggable===void 0),D=!!(y.selectable||c&&y.selectable===void 0),O=!!(y.connectable||l&&y.connectable===void 0),k=!!(y.focusable||u&&y.focusable===void 0),A=bc(),j=fo(y),M=su({node:y,nodeType:w,hasDimensions:j,resizeObserver:d}),N=Ml({nodeRef:M,disabled:y.hidden||!E,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:D,nodeClickDistance:_}),P=Pl();if(y.hidden)return null;let ee=uo(y),F=Xl(y),I=D||E||t||n||r||i,te=n?e=>n(e,{...b.userNode}):void 0,ne=r?e=>r(e,{...b.userNode}):void 0,L=i?e=>i(e,{...b.userNode}):void 0,R=a?e=>a(e,{...b.userNode}):void 0,z=o?e=>o(e,{...b.userNode}):void 0,B=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=A.getState();D&&(!r||!E||i>0)&&jl({id:e,store:A,nodeRef:M}),t&&t(n,{...b.userNode})},re=t=>{if(!(So(t.nativeEvent)||m)){if(ba.includes(t.key)&&D){let n=t.key===`Escape`;jl({id:e,store:A,unselect:n,nodeRef:M})}else if(E&&y.selected&&Object.prototype.hasOwnProperty.call(Jl,t.key)){t.preventDefault();let{ariaLabelConfig:e}=A.getState();A.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),P({direction:Jl[t.key],factor:t.shiftKey?4:1})}}},ie=()=>{if(m||!M.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=A.getState();i&&(Fa(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:S([`react-flow__node`,`react-flow__node-${w}`,{[p]:E},y.className,{selected:y.selected,selectable:D,parent:C,draggable:E,dragging:N}]),ref:M,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:I?`all`:`none`,visibility:j?`visible`:`hidden`,...y.style,...F},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:te,onMouseMove:ne,onMouseLeave:L,onContextMenu:R,onClick:B,onDoubleClick:z,onKeyDown:k?re:void 0,tabIndex:k?0:void 0,onFocus:k?ie:void 0,role:y.ariaRole??(k?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${Cc}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,x.jsx)(Il,{value:e,children:(0,x.jsx)(T,{id:e,data:y.data,type:w,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:y.selected??!1,selectable:D,draggable:E,deletable:y.deletable??!0,isConnectable:O,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:N,dragHandle:y.dragHandle,zIndex:b.z,parentId:y.parentId,...ee})})})}var lu=(0,y.memo)(cu),uu=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function du(e){let{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=G(uu,hc),a=iu(e.onlyRenderVisibleElements),o=ou();return(0,x.jsx)(`div`,{className:`react-flow__nodes`,style:Cl,children:a.map(a=>(0,x.jsx)(lu,{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))})}du.displayName=`NodeRenderer`;var fu=(0,y.memo)(du);function pu(e){return G((0,y.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&&Mo({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),hc)}var mu=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e}};return(0,x.jsx)(`polyline`,{className:`arrow`,style:n,strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`})},hu=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e,fill:e}};return(0,x.jsx)(`polyline`,{className:`arrowclosed`,style:n,strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`})},gu={[Da.Arrow]:mu,[Da.ArrowClosed]:hu};function _u(e){let t=bc();return(0,y.useMemo)(()=>Object.prototype.hasOwnProperty.call(gu,e)?gu[e]:(t.getState().onError?.(`009`,va.error009(e)),null),[e])}var vu=({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=_u(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},yu=({defaultColor:e,rfId:t})=>{let n=G(e=>e.edges),r=G(e=>e.defaultEdgeOptions),i=(0,y.useMemo)(()=>Yo(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)(vu,{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};yu.displayName=`MarkerDefinitions`;var bu=(0,y.memo)(yu);function xu({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,y.useState)({x:1,y:0,width:0,height:0}),p=S([`react-flow__edge-textwrapper`,l]),m=(0,y.useRef)(null);return(0,y.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}xu.displayName=`EdgeText`;var Su=(0,y.memo)(xu);function Cu({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:S([`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&&to(t)&&to(n)?(0,x.jsx)(Su,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function wu({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===H.Left||e===H.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function Tu({sourceX:e,sourceY:t,sourcePosition:n=H.Bottom,targetX:r,targetY:i,targetPosition:a=H.Top}){let[o,s]=wu({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=wu({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=Eo({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 Eu(e){return(0,y.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]=Tu({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s}),S=e.isInternal?void 0:t;return(0,x.jsx)(Cu,{id:S,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 Du=Eu({isInternal:!1}),Ou=Eu({isInternal:!0});Du.displayName=`SimpleBezierEdge`,Ou.displayName=`SimpleBezierEdgeInternal`;function ku(e){return(0,y.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=H.Bottom,targetPosition:m=H.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,S]=Ho({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition}),C=e.isInternal?void 0:t;return(0,x.jsx)(Cu,{id:C,path:y,labelX:b,labelY:S,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var Au=ku({isInternal:!1}),ju=ku({isInternal:!0});Au.displayName=`SmoothStepEdge`,ju.displayName=`SmoothStepEdgeInternal`;function Mu(e){return(0,y.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,x.jsx)(Au,{...n,id:r,pathOptions:(0,y.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var Nu=Mu({isInternal:!1}),Pu=Mu({isInternal:!0});Nu.displayName=`StepEdge`,Pu.displayName=`StepEdgeInternal`;function Fu(e){return(0,y.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]=Io({sourceX:n,sourceY:r,targetX:i,targetY:a}),y=e.isInternal?void 0:t;return(0,x.jsx)(Cu,{id:y,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 Iu=Fu({isInternal:!1}),Lu=Fu({isInternal:!0});Iu.displayName=`StraightEdge`,Lu.displayName=`StraightEdgeInternal`;function Ru(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=H.Bottom,targetPosition:s=H.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,S]=ko({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature}),C=e.isInternal?void 0:t;return(0,x.jsx)(Cu,{id:C,path:y,labelX:b,labelY:S,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var zu=Ru({isInternal:!1}),Bu=Ru({isInternal:!0});zu.displayName=`BezierEdge`,Bu.displayName=`BezierEdgeInternal`;var Vu={default:Bu,straight:Lu,step:Pu,smoothstep:ju,simplebezier:Ou},Hu={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},Uu=(e,t,n)=>n===H.Left?e-t:n===H.Right?e+t:e,Wu=(e,t,n)=>n===H.Top?e-t:n===H.Bottom?e+t:e,Gu=`react-flow__edgeupdater`;function Ku({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:S([Gu,`${Gu}-${s}`]),cx:Uu(t,r,e),cy:Wu(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function qu({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=bc(),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`;ks.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)(Ku,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,x.jsx)(Ku,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function Ju({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 b=G(t=>t.edgeLookup.get(e)),C=G(e=>e.defaultEdgeOptions);b=C?{...C,...b}:b;let w=b.type||`default`,T=h?.[w]||Vu[w];T===void 0&&(_?.(`011`,va.error011(w)),w=`default`,T=h?.default||Vu.default);let E=!!(b.focusable||t&&b.focusable===void 0),D=d!==void 0&&(b.reconnectable||n&&b.reconnectable===void 0),O=!!(b.selectable||r&&b.selectable===void 0),k=(0,y.useRef)(null),[A,j]=(0,y.useState)(!1),[M,N]=(0,y.useState)(!1),P=bc(),{zIndex:ee=b.zIndex,sourceX:F,sourceY:I,targetX:te,targetY:ne,sourcePosition:L,targetPosition:R}=G((0,y.useCallback)(t=>{let n=t.nodeLookup.get(b.source),r=t.nodeLookup.get(b.target);if(!n||!r)return Hu;let i=Wo({id:e,sourceNode:n,targetNode:r,sourceHandle:b.sourceHandle||null,targetHandle:b.targetHandle||null,connectionMode:t.connectionMode,onError:_}),a=jo({selected:b.selected,zIndex:b.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...i||Hu,zIndex:a}},[b.source,b.target,b.sourceHandle,b.targetHandle,b.selected,b.zIndex,_]),hc),z=(0,y.useMemo)(()=>b.markerStart?`url('#${Jo(b.markerStart,m)}')`:void 0,[b.markerStart,m]),B=(0,y.useMemo)(()=>b.markerEnd?`url('#${Jo(b.markerEnd,m)}')`:void 0,[b.markerEnd,m]);if(b.hidden||F===null||I===null||te===null||ne===null)return null;let re=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=P.getState();O&&(P.setState({nodesSelectionActive:!1}),b.selected&&a?(r({nodes:[],edges:[b]}),k.current?.blur()):n([e])),i&&i(t,b)},ie=a?e=>{a(e,{...b})}:void 0,ae=o?e=>{o(e,{...b})}:void 0,oe=s?e=>{s(e,{...b})}:void 0,se=c?e=>{c(e,{...b})}:void 0,ce=l?e=>{l(e,{...b})}:void 0;return(0,x.jsx)(`svg`,{style:{zIndex:ee},children:(0,x.jsxs)(`g`,{className:S([`react-flow__edge`,`react-flow__edge-${w}`,b.className,g,{selected:b.selected,animated:b.animated,inactive:!O&&!i,updating:A,selectable:O}]),onClick:re,onDoubleClick:ie,onContextMenu:ae,onMouseEnter:oe,onMouseMove:se,onMouseLeave:ce,onKeyDown:E?t=>{if(!v&&ba.includes(t.key)&&O){let{unselectNodesAndEdges:n,addSelectedEdges:r}=P.getState();t.key===`Escape`?(k.current?.blur(),n({edges:[b]})):r([e])}}:void 0,tabIndex:E?0:void 0,role:b.ariaRole??(E?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":b.ariaLabel===null?void 0:b.ariaLabel||`Edge from ${b.source} to ${b.target}`,"aria-describedby":E?`${wc}-${m}`:void 0,ref:k,...b.domAttributes,children:[!M&&(0,x.jsx)(T,{id:e,source:b.source,target:b.target,type:b.type,selected:b.selected,animated:b.animated,selectable:O,deletable:b.deletable??!0,label:b.label,labelStyle:b.labelStyle,labelShowBg:b.labelShowBg,labelBgStyle:b.labelBgStyle,labelBgPadding:b.labelBgPadding,labelBgBorderRadius:b.labelBgBorderRadius,sourceX:F,sourceY:I,targetX:te,targetY:ne,sourcePosition:L,targetPosition:R,data:b.data,style:b.style,sourceHandleId:b.sourceHandle,targetHandleId:b.targetHandle,markerStart:z,markerEnd:B,pathOptions:`pathOptions`in b?b.pathOptions:void 0,interactionWidth:b.interactionWidth}),D&&(0,x.jsx)(qu,{edge:b,isReconnectable:D,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:F,sourceY:I,targetX:te,targetY:ne,sourcePosition:L,targetPosition:R,setUpdateHover:j,setReconnecting:N})]})})}var Yu=(0,y.memo)(Ju),Xu=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function Zu({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}=G(Xu,hc),b=pu(t);return(0,x.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,x.jsx)(bu,{defaultColor:e,rfId:n}),b.map(e=>(0,x.jsx)(Yu,{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))]})}Zu.displayName=`EdgeRenderer`;var Qu=(0,y.memo)(Zu),$u=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function ed({children:e}){let t=bc(),n=(0,y.useRef)(null),[r]=(0,y.useState)(()=>t.getState().transform);return dl(()=>{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=$u(r)))};return r(),t.subscribe(r)},[t]),(0,x.jsx)(`div`,{ref:n,className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:$u(r)},children:e})}function td(e){let t=vl(),n=(0,y.useRef)(!1);(0,y.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var nd=e=>e.panZoom?.syncViewport;function rd(e){let t=G(nd),n=bc();return(0,y.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function id(e){return e.connection.inProgress?{...e.connection,to:io(e.connection.to,e.transform)}:{...e.connection}}function ad(e){return e?t=>e(id(t)):id}function od(e){return G(ad(e),hc)}var sd=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function cd({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=G(sd,hc);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:S([`react-flow__connection`,_o(s)]),children:(0,x.jsx)(ld,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var ld=({style:e,type:t=Ea.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}=od();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:_o(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 Ea.Bezier:[m]=ko(h);break;case Ea.SimpleBezier:[m]=Tu(h);break;case Ea.Step:[m]=Ho({...h,borderRadius:0});break;case Ea.SmoothStep:[m]=Ho(h);break;default:[m]=Io(h)}return(0,x.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};ld.displayName=`ConnectionLine`;var ud={};function dd(e=ud){(0,y.useRef)(e),bc(),(0,y.useEffect)(()=>{},[e])}function fd(){bc(),(0,y.useRef)(!1),(0,y.useEffect)(()=>{},[])}function pd({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:S,panActivationKeyCode:C,zoomActivationKeyCode:w,deleteKeyCode:T,onlyRenderVisibleElements:E,elementsSelectable:D,defaultViewport:O,translateExtent:k,minZoom:A,maxZoom:j,preventScrolling:M,defaultMarkerColor:N,zoomOnScroll:P,zoomOnPinch:ee,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:te,zoomOnDoubleClick:ne,panOnDrag:L,autoPanOnSelection:R,onPaneClick:z,onPaneMouseEnter:B,onPaneMouseMove:re,onPaneMouseLeave:ie,onPaneScroll:ae,onPaneContextMenu:oe,paneClickDistance:se,nodeClickDistance:ce,onEdgeContextMenu:le,onEdgeMouseEnter:ue,onEdgeMouseMove:de,onEdgeMouseLeave:fe,reconnectRadius:pe,onReconnect:me,onReconnectStart:he,onReconnectEnd:ge,noDragClassName:_e,noWheelClassName:ve,noPanClassName:ye,disableKeyboardA11y:be,nodeExtent:xe,rfId:Se,viewport:Ce,onViewportChange:we,nodesDraggable:Te}){return dd(e),dd(t),fd(),td(n),rd(Ce),(0,x.jsx)(nu,{onPaneClick:z,onPaneMouseEnter:B,onPaneMouseMove:re,onPaneMouseLeave:ie,onPaneContextMenu:oe,onPaneScroll:ae,paneClickDistance:se,deleteKeyCode:T,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:S,panActivationKeyCode:C,zoomActivationKeyCode:w,elementsSelectable:D,zoomOnScroll:P,zoomOnPinch:ee,zoomOnDoubleClick:ne,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:te,panOnDrag:L,autoPanOnSelection:R,defaultViewport:O,translateExtent:k,minZoom:A,maxZoom:j,onSelectionContextMenu:d,preventScrolling:M,noDragClassName:_e,noWheelClassName:ve,noPanClassName:ye,disableKeyboardA11y:be,onViewportChange:we,isControlledViewport:!!Ce,children:(0,x.jsxs)(ed,{children:[(0,x.jsx)(Qu,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:me,onReconnectStart:he,onReconnectEnd:ge,onlyRenderVisibleElements:E,onEdgeContextMenu:le,onEdgeMouseEnter:ue,onEdgeMouseMove:de,onEdgeMouseLeave:fe,reconnectRadius:pe,defaultMarkerColor:N,noPanClassName:ye,disableKeyboardA11y:be,rfId:Se}),(0,x.jsx)(cd,{style:h,type:m,component:g,containerStyle:_}),(0,x.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,x.jsx)(fu,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:ce,onlyRenderVisibleElements:E,noPanClassName:ye,noDragClassName:_e,disableKeyboardA11y:be,nodeExtent:xe,rfId:Se,nodesDraggable:Te}),(0,x.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}pd.displayName=`GraphView`;var md=(0,y.memo)(pd),hd=no(`React Flow`,`https://reactflow.dev/`),gd=({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??ya;ps(h,g,_);let{nodesInitialized:x}=is(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=lo(Pa(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:ya,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Sa.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:{...Ta},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:hd,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:xa,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},_d=({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})=>mc((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 Ra({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...gd({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,nodeExtent:i,elevateNodesOnSelect:a,fitViewQueued:o,zIndexMode:s,nodesSelectionActive:c}=m(),{nodesInitialized:l,hasSelectedNodes:u}=is(e,t,n,{nodeOrigin:r,nodeExtent:i,elevateNodesOnSelect:a,checkEquality:!0,zIndexMode:s}),d=c&&u;o&&l?(h(),p({nodes:e,nodesInitialized:l,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:d})):p({nodes:e,nodesInitialized:l,nodesSelectionActive:d})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();ps(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}=us(e,n,r,i,a,o,l);d&&(ts(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=Ko(e,o.fromHandle,H.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=ls(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(el(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(tl(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=>nl(e,!0)));return}i(rl(r,new Set([...e]),!0)),a(rl(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>nl(e,!0)));return}a(rl(n,new Set([...e]))),i(rl(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(nl(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(nl(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,nl(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,nl(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])&&(is(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 ds({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:{...Ta}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...gd()})}},Object.is);function vd({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,y.useState)(()=>_d({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)(vc,{value:m,children:(0,x.jsx)(hl,{children:(0,x.jsx)(Bl,{children:p})})})}function yd({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,y.useContext)(_c)?(0,x.jsx)(x.Fragment,{children:e}):(0,x.jsx)(vd,{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 bd={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function xd({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:b,onNodeMouseLeave:C,onNodeContextMenu:w,onNodeDoubleClick:T,onNodeDragStart:E,onNodeDrag:D,onNodeDragStop:O,onNodesDelete:k,onEdgesDelete:A,onDelete:j,onSelectionChange:M,onSelectionDragStart:N,onSelectionDrag:P,onSelectionDragStop:ee,onSelectionContextMenu:F,onSelectionStart:I,onSelectionEnd:te,onBeforeDelete:ne,connectionMode:L,connectionLineType:R=Ea.Bezier,connectionLineStyle:z,connectionLineComponent:B,connectionLineContainerStyle:re,deleteKeyCode:ie=`Backspace`,selectionKeyCode:ae=`Shift`,selectionOnDrag:oe=!1,selectionMode:se=wa.Full,panActivationKeyCode:ce=`Space`,multiSelectionKeyCode:le=U()?`Meta`:`Control`,zoomActivationKeyCode:ue=U()?`Meta`:`Control`,snapToGrid:de,snapGrid:fe,onlyRenderVisibleElements:pe=!1,selectNodesOnDrag:me,nodesDraggable:he,autoPanOnNodeFocus:ge,nodesConnectable:_e,nodesFocusable:ve,nodeOrigin:ye=zc,edgesFocusable:be,edgesReconnectable:xe,elementsSelectable:Se=!0,defaultViewport:Ce=Bc,minZoom:we=.5,maxZoom:Te=2,translateExtent:Ee=ya,preventScrolling:De=!0,nodeExtent:Oe,defaultMarkerColor:ke=`#b1b1b7`,zoomOnScroll:Ae=!0,zoomOnPinch:je=!0,panOnScroll:Me=!1,panOnScrollSpeed:Ne=.5,panOnScrollMode:Pe=Ca.Free,zoomOnDoubleClick:Fe=!0,panOnDrag:Ie=!0,onPaneClick:Le,onPaneMouseEnter:Re,onPaneMouseMove:ze,onPaneMouseLeave:Be,onPaneScroll:Ve,onPaneContextMenu:He,paneClickDistance:Ue=1,nodeClickDistance:We=0,children:Ge,onReconnect:Ke,onReconnectStart:qe,onReconnectEnd:Je,onEdgeContextMenu:Ye,onEdgeDoubleClick:Xe,onEdgeMouseEnter:Ze,onEdgeMouseMove:Qe,onEdgeMouseLeave:$e,reconnectRadius:et=10,onNodesChange:tt,onEdgesChange:nt,noDragClassName:rt=`nodrag`,noWheelClassName:it=`nowheel`,noPanClassName:at=`nopan`,fitView:ot,fitViewOptions:st,connectOnClick:ct,attributionPosition:lt,proOptions:ut,defaultEdgeOptions:dt,elevateNodesOnSelect:ft=!0,elevateEdgesOnSelect:pt=!1,disableKeyboardA11y:mt=!1,autoPanOnConnect:ht,autoPanOnNodeDrag:gt,autoPanOnSelection:_t=!0,autoPanSpeed:vt,connectionRadius:yt,isValidConnection:bt,onError:xt,style:St,id:Ct,nodeDragThreshold:wt,connectionDragThreshold:Tt,viewport:Et,onViewportChange:Dt,width:Ot,height:kt,colorMode:At=`light`,debug:jt,onScroll:Mt,ariaLabelConfig:Nt,zIndexMode:Pt=`basic`,...Ft},It){let Lt=Ct||`1`,Rt=Kc(At),zt=(0,y.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),Mt?.(e)},[Mt]);return(0,x.jsx)(`div`,{"data-testid":`rf__wrapper`,...Ft,onScroll:zt,style:{...St,...bd},ref:It,className:S([`react-flow`,i,Rt]),id:Ct,role:`application`,children:(0,x.jsxs)(yd,{nodes:e,edges:t,width:Ot,height:kt,fitView:ot,fitViewOptions:st,minZoom:we,maxZoom:Te,nodeOrigin:ye,nodeExtent:Oe,zIndexMode:Pt,children:[(0,x.jsx)(Wc,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,nodesDraggable:he,autoPanOnNodeFocus:ge,nodesConnectable:_e,nodesFocusable:ve,edgesFocusable:be,edgesReconnectable:xe,elementsSelectable:Se,elevateNodesOnSelect:ft,elevateEdgesOnSelect:pt,minZoom:we,maxZoom:Te,nodeExtent:Oe,onNodesChange:tt,onEdgesChange:nt,snapToGrid:de,snapGrid:fe,connectionMode:L,translateExtent:Ee,connectOnClick:ct,defaultEdgeOptions:dt,fitView:ot,fitViewOptions:st,onNodesDelete:k,onEdgesDelete:A,onDelete:j,onNodeDragStart:E,onNodeDrag:D,onNodeDragStop:O,onSelectionDrag:P,onSelectionDragStart:N,onSelectionDragStop:ee,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:at,nodeOrigin:ye,rfId:Lt,autoPanOnConnect:ht,autoPanOnNodeDrag:gt,autoPanSpeed:vt,onError:xt,connectionRadius:yt,isValidConnection:bt,selectNodesOnDrag:me,nodeDragThreshold:wt,connectionDragThreshold:Tt,onBeforeDelete:ne,debug:jt,ariaLabelConfig:Nt,zIndexMode:Pt}),(0,x.jsx)(md,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:v,onNodeMouseMove:b,onNodeMouseLeave:C,onNodeContextMenu:w,onNodeDoubleClick:T,nodeTypes:a,edgeTypes:o,connectionLineType:R,connectionLineStyle:z,connectionLineComponent:B,connectionLineContainerStyle:re,selectionKeyCode:ae,selectionOnDrag:oe,selectionMode:se,deleteKeyCode:ie,multiSelectionKeyCode:le,panActivationKeyCode:ce,zoomActivationKeyCode:ue,onlyRenderVisibleElements:pe,defaultViewport:Ce,translateExtent:Ee,minZoom:we,maxZoom:Te,preventScrolling:De,zoomOnScroll:Ae,zoomOnPinch:je,zoomOnDoubleClick:Fe,panOnScroll:Me,panOnScrollSpeed:Ne,panOnScrollMode:Pe,panOnDrag:Ie,autoPanOnSelection:_t,onPaneClick:Le,onPaneMouseEnter:Re,onPaneMouseMove:ze,onPaneMouseLeave:Be,onPaneScroll:Ve,onPaneContextMenu:He,paneClickDistance:Ue,nodeClickDistance:We,onSelectionContextMenu:F,onSelectionStart:I,onSelectionEnd:te,onReconnect:Ke,onReconnectStart:qe,onReconnectEnd:Je,onEdgeContextMenu:Ye,onEdgeDoubleClick:Xe,onEdgeMouseEnter:Ze,onEdgeMouseMove:Qe,onEdgeMouseLeave:$e,reconnectRadius:et,defaultMarkerColor:ke,noDragClassName:rt,noWheelClassName:it,noPanClassName:at,rfId:Lt,disableKeyboardA11y:mt,nodeExtent:Oe,viewport:Et,onViewportChange:Dt,nodesDraggable:he}),(0,x.jsx)(Rc,{onSelectionChange:M}),Ge,(0,x.jsx)(Mc,{proOptions:ut,position:lt}),(0,x.jsx)(kc,{rfId:Lt,disableKeyboardA11y:mt})]})})}var Sd=ul(xd),Cd=e=>e.domNode?.querySelector(`.react-flow__edgelabel-renderer`);function J({children:e}){let t=G(Cd);return t?(0,gc.createPortal)(e,t):null}var wd=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2]});function Td(){return G(wd,hc)}function Ed(e){let[t,n]=(0,y.useState)(e);return[t,n,(0,y.useCallback)(e=>n(t=>el(e,t)),[])]}function Dd(e){let[t,n]=(0,y.useState)(e);return[t,n,(0,y.useCallback)(e=>n(t=>tl(e,t)),[])]}va.error014();function Od({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:S([`react-flow__background-pattern`,n,r])})}function kd({radius:e,className:t}){return(0,x.jsx)(`circle`,{cx:e,cy:e,r:e,className:S([`react-flow__background-pattern`,`dots`,t])})}var Ad;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(Ad||={});var jd={[Ad.Dots]:1,[Ad.Lines]:1,[Ad.Cross]:6},Md=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Nd({id:e,variant:t=Ad.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,y.useRef)(null),{transform:f,patternId:p}=G(Md,hc),m=r||jd[t],h=t===Ad.Dots,g=t===Ad.Cross,_=Array.isArray(n)?n:[n,n],v=[_[0]*f[2]||1,_[1]*f[2]||1],b=m*f[2],C=Array.isArray(a)?a:[a,a],w=g?[b,b]:v,T=[C[0]*f[2]+w[0]/2,C[1]*f[2]+w[1]/2],E=`${p}${e||``}`;return(0,x.jsxs)(`svg`,{className:S([`react-flow__background`,l]),style:{...c,...Cl,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,x.jsx)(`pattern`,{id:E,x:f[0]%v[0],y:f[1]%v[1],width:v[0],height:v[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${T[0]},-${T[1]})`,children:h?(0,x.jsx)(kd,{radius:b/2,className:u}):(0,x.jsx)(Od,{dimensions:w,lineWidth:i,variant:t,className:u})}),(0,x.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${E})`})]})}Nd.displayName=`Background`,(0,y.memo)(Nd);function Pd(){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 Fd(){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 Id(){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 Ld(){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 Rd(){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 zd({children:e,className:t,...n}){return(0,x.jsx)(`button`,{type:`button`,className:S([`react-flow__controls-button`,t]),...n,children:e})}var Bd=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function Vd({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=bc(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=G(Bd,hc),{zoomIn:y,zoomOut:b,fitView:C}=vl();return(0,x.jsxs)(Ac,{className:S([`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)(zd,{onClick:()=>{y(),a?.()},className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,x.jsx)(Pd,{})}),(0,x.jsx)(zd,{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)(Fd,{})})]}),n&&(0,x.jsx)(zd,{className:`react-flow__controls-fitview`,onClick:()=>{C(i),s?.()},title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,x.jsx)(Id,{})}),r&&(0,x.jsx)(zd,{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)(Rd,{}):(0,x.jsx)(Ld,{})}),u]})}Vd.displayName=`Controls`;var Hd=(0,y.memo)(Vd);function Ud({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:S([`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 Wd=(0,y.memo)(Ud),Gd=e=>e.nodes.map(e=>e.id),Kd=e=>e instanceof Function?e:()=>e;function qd({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=Wd,onClick:o}){let s=G(Gd,hc),c=Kd(t),l=Kd(e),u=Kd(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,x.jsx)(x.Fragment,{children:s.map(e=>(0,x.jsx)(Yd,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function Jd({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}=G(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}=uo(r);return{node:r,x:i,y:a,width:o,height:s}},hc);return!l||l.hidden||!fo(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 Yd=(0,y.memo)(Jd),Xd=(0,y.memo)(qd),Zd=200,Qd=150,$d=e=>!e.hidden,ef=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]},n=!1;for(let t of e.nodeLookup.values())if(!t.hidden){n=!0;break}return{viewBB:t,boundingRect:n?Za(Pa(e.nodeLookup,{filter:$d}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},tf=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,nf=(e,t)=>tf(e.viewBB,t.viewBB)&&tf(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,rf=`react-flow__minimap-desc`;function af({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:b=1,offsetScale:C=5}){let w=bc(),T=(0,y.useRef)(null),{boundingRect:E,panZoom:D,viewBB:O,rfId:k,translateExtent:A,flowWidth:j,flowHeight:M,ariaLabelConfig:N}=G(ef,nf),P=e?.width??Zd,ee=e?.height??Qd,F=E.width/P,I=E.height/ee,te=Math.max(F,I),ne=te*P,L=te*ee,R=C*te,z=E.x-(ne-E.width)/2-R,B=E.y-(L-E.height)/2-R,re=ne+R*2,ie=L+R*2,ae=`${rf}-${k}`,oe=(0,y.useRef)(0),se=(0,y.useRef)();oe.current=te,(0,y.useEffect)(()=>{let e=w.getState().panZoom;if(T.current&&e)return se.current=As({domNode:T.current,panZoom:e,getTransform:()=>w.getState().transform,getViewScale:()=>oe.current}),()=>{se.current?.destroy()}},[D]),(0,y.useEffect)(()=>{se.current?.update({translateExtent:A,width:j,height:M,inversePan:v,pannable:h,zoomStep:b,zoomable:g})},[h,g,v,b,A,j,M]);let ce=p?e=>{let[t,n]=se.current?.pointer(e)||[0,0];p(e,{x:t,y:n})}:void 0,le=(0,y.useCallback)((e,t)=>{let n=w.getState().nodeLookup.get(t).internals.userNode;m?.(e,n)},[m]),ue=m?le:void 0,de=_??N[`minimap.ariaLabel`];return(0,x.jsx)(Ac,{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*te: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:S([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,x.jsxs)(`svg`,{width:P,height:ee,viewBox:`${z} ${B} ${re} ${ie}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":ae,ref:T,onClick:ce,children:[de&&(0,x.jsx)(`title`,{id:ae,children:de}),(0,x.jsx)(Xd,{onClick:ue,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,x.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${z-R},${B-R}h${re+R*2}v${ie+R*2}h${-re-R*2}z
237
+ M${O.x},${O.y}h${O.width}v${O.height}h${-O.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}af.displayName=`MiniMap`;var of=(0,y.memo)(af),sf=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,cf={[Gs.Line]:`right`,[Gs.Handle]:`bottom-right`};function lf({nodeId:e,position:t,variant:n=Gs.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=Ll(),b=typeof e==`string`?e:v,C=bc(),w=(0,y.useRef)(null),T=n===Gs.Handle,E=G((0,y.useCallback)(sf(T&&p),[T,p]),hc),D=(0,y.useRef)(null),O=t??cf[n];(0,y.useEffect)(()=>{if(!(!w.current||!b))return D.current||=nc({domNode:w.current,nodeId:b,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=C.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}=C.getState(),o=[],s={x:e.x,y:e.y},c=r.get(b);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=ls([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...po({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:b,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:b,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:b,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};C.getState().triggerNodeChanges([n])}}),D.current.update({controlPosition:O,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:_,shouldResize:m}),()=>{D.current?.destroy()}},[O,s,c,l,u,d,h,g,_,m]);let k=O.split(`-`);return(0,x.jsx)(`div`,{className:S([`react-flow__resize-control`,`nodrag`,...k,n,r]),ref:w,style:{...i,scale:E,...o&&{[T?`backgroundColor`:`borderColor`]:o}},children:a})}(0,y.memo)(lf);var uf=e=>e?.meta?.viewId??e?.meta?.diagramType??`architecture`,df=e=>e?.meta?.architectureView??`relations`,ff=e=>(e?.meta?.diagramType??`architecture`)===`architecture`&&df(e)!==`relations`,pf={relations:`Component relationship architecture`,capabilities:`Platform capability architecture`,engineering:`Engineering layer architecture`},mf=Object.freeze([{id:`capabilities`,type:`architecture`,label:pf.capabilities},{id:`engineering`,type:`architecture`,label:pf.engineering},{id:`relations`,type:`architecture`,label:pf.relations},{id:`flowchart`,type:`flowchart`,label:`Flowchart`},{id:`sequence`,type:`sequence`,label:`Sequence`},{id:`er`,type:`er`,label:`ER diagram`},{id:`deployment`,type:`deployment`,label:`Deployment`},{id:`class`,type:`class`,label:`Class diagram`},{id:`state`,type:`state`,label:`State diagram`},{id:`usecase`,type:`usecase`,label:`Use cases`},{id:`dataflow`,type:`dataflow`,label:`Data flow`}]),hf=e=>(e?.meta?.diagramType??`architecture`)===`architecture`?df(e):e.meta.diagramType,gf=e=>mf.find(t=>t.id===hf(e))?.label??e?.meta?.diagramType??pf.relations,_f=(e,t)=>{let n=e=>{let t=mf.findIndex(t=>t.id===hf(e));return t<0?mf.length:t};return n(e)-n(t)},vf={"zh-CN":{"Layout suggestions":`布局优化建议`,"Arrange this view to improve connector clearance and spacing. Existing positions are preserved until then.":`整理此图可改善连线间距与布局;整理前保留现有位置。`,Architecture:`架构图`,Flowchart:`流程图`,Sequence:`时序图`,"ER diagram":`ER 图`,Deployment:`部署图`,"Class diagram":`类图`,"State diagram":`状态图`,"Use cases":`用例图`,"Data flow":`数据流图`,"Source code":`源码`,Code:`代码`,Configuration:`配置`,Schema:`数据结构`,Test:`测试`,Document:`文档`,"Framework convention":`框架约定`,Inference:`推断`,External:`外部`,Framework:`框架`,Security:`安全`,Service:`服务`,Business:`业务`,Data:`数据`,Failure:`失败`,System:`系统`,Component:`组件`,Database:`数据库`,Start:`开始`,End:`结束`,Process:`处理`,Decision:`判断`,Input:`输入`,Output:`输出`,Subprocess:`子流程`,Actor:`角色`,Participant:`参与者`,Entity:`实体`,Device:`设备`,Nodes:`节点`,Container:`容器`,Artifact:`制品`,Class:`类`,Interface:`接口`,"Abstract class":`抽象类`,State:`状态`,Initial:`初始`,Choice:`选择`,"Use case":`用例`,"Data store":`数据存储`,"Initial state":`初始状态`,"Final state":`结束状态`,"Core component":`核心组件`,"Data / storage":`数据与存储`,"Start / end":`起止节点`,"Components / actors":`普通组件 / 角色`,"Solid relation":`实线关系`,"Dashed: notation / convention / inference":`虚线:关系记法 / 框架约定 / 推断`,Reset:`重置`,Dark:`深色`,Light:`浅色`,Locked:`布局锁定`,Draggable:`可拖动`,"Unlock the layout first":`请先解除布局锁定`,"Space the selected node and its direct neighbors":`整理选中节点及直接邻居的间距`,"Space all nodes":`整理全部节点的间距`,Arrange:`整理间距`,"Hide details":`隐藏右侧详情栏`,"Show details":`显示右侧详情栏`,Overview:`模型概览`,Edges:`关系`,Groups:`边界`,"Diagram types":`图类型`,"Search nodes":`搜索节点`,"Edge animation":`连线流动`,On:`开`,Off:`关`,"System reduced-motion preference is respected":`已遵循系统减少动态效果设置`,"Matches · {count}":`匹配结果 · {count}`,"Nodes · {count}":`节点目录 · {count}`,"No matches. Try a name or responsibility.":`未找到匹配节点,请试试名称或职责。`,Legend:`图例`,"Interactive {type}":`可交互{type}`,"Fit canvas":`适应画布`,"Exit fullscreen":`退出全屏`,"Enter fullscreen":`进入全屏`,"Exit fullscreen (Esc)":`退出全屏(Esc)`,"Fullscreen is not available in this browser or page":`当前浏览器或页面不支持全屏`,"Could not exit fullscreen. Press Esc to try again.":`无法退出全屏,请按 Esc 重试`,"Could not enter fullscreen. Check browser or page permissions and try again.":`无法进入全屏,请检查浏览器或页面权限后重试`,"{count} relations":`{count} 条关系`,"Node notes":`节点说明`,"Close details":`关闭详情`,Fields:`字段`,Attributes:`属性`,Methods:`方法`,Source:`来源`,"Start with a node":`从一个节点开始`,"Select a component or a list entry to explore its role, fields, methods and source.":`点击图中组件或左侧目录,查看职责、字段、方法与来源。`,"Evidence facts":`证据事实`,"Unlock the layout before arranging nodes":`请先解除布局锁定,再整理间距`,Local:`局部`,"Full diagram":`全图`,"{scope} arranged: {count} nodes moved":`{scope}间距已整理:移动 {count} 个节点`,"Cannot arrange further within the current constraints":`当前约束下无法继续整理`,"No spacing changes needed":`当前间距无需调整`,"Generating {format}…":`正在生成 {format}…`,"{format} downloaded":`{format} 已下载`,"The browser could not generate the PNG":`浏览器未能生成 PNG`,"The browser could not read the exported SVG":`浏览器未能读取导出 SVG`,"Zoom in":`放大`,"Zoom out":`缩小`,Minimap:`小地图`,"Graph navigation":`图谱导航`,"Show graph navigation":`显示图谱导航`,"Hide graph navigation":`隐藏图谱导航`,More:`更多`,"Export SVG":`导出 SVG`,"Export PNG":`导出 PNG`,Close:`关闭`,"View details":`查看详情`,Appearance:`外观`,"Follow system":`跟随系统`,"Restore the original layout and view, and clear search and selection.":`恢复原始位置和阅读视角,清除搜索与选择`,"Reset: original positions and reading view restored":`已重置:恢复原始位置和阅读视角`,Details:`详情`,Name:`名称`,Description:`说明`,"Name is required":`名称不能为空`,Cancel:`取消`,Save:`保存`,"Edit text":`编辑文字`,Evidence:`证据`,"Save changes":`保存修改`,"Graph JSON saved":`Graph JSON 已保存`,"Saved into this page, its sibling graph.json and SVGs":`已保存到当前页面、同级 graph.json 和 SVG`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`已保存到当前页面和同级 graph.json;SVG 未更新:布局需要调整`,"Choose the folder containing this page ({page}); edits remain in this page":`请选择当前页面 {page} 所在的文件夹,修改仍保留在当前页面`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON 已下载,请保留文件以保存修改`,"Save cancelled; edits remain in this page":`已取消保存,修改仍保留在当前页面`,"Save failed; edits remain in this page":`保存失败,修改仍保留在当前页面`,"Synchronous message":`同步消息`,"Asynchronous message":`异步消息`,"Return message":`返回消息`,"Branch conditions unspecified":`分支条件未标注`,"Activation: execution interval; offset means nesting":`激活条:执行区间,错位表示嵌套`,"C ID: paired call and return share a color":`C 编号:调用与返回配对,同组同色`,"par: concurrent branches; vertical position is not order":`par:分支并行,上下排列不代表先后`,"Layout needs adjustment; JSON drafts can still be saved":`布局需要调整,仍可保存 JSON 草稿`,"Card wash":`卡片微底色`,yes:`是`,no:`否`,composition:`组合`,aggregation:`聚合`,inheritance:`继承`,implementation:`实现`,"Core state":`核心状态`,"Ended state":`终结状态`,"Failed state":`失败状态`,"In-progress state":`进行中状态`,"In-progress state: warm to cool as it advances":`进行中状态:由暖到冷表示推进顺序`,Transition:`转移`,"Self-transition: handled without leaving the state":`自转移:留在原状态内处理的事件`,"Key points":`要点`,"Show key points":`显示要点`,"Hide key points":`隐藏要点`,"Component relations":`组件关系`,"Platform capabilities":`平台能力总览`,"Engineering layers":`工程分层总览`,"Overview text":`总览正文`,Badges:`徽章`,"Badge type":`徽章类型`,"Add badge":`添加徽章`,"Remove badge":`移除徽章`,Status:`状态`,Version:`版本`,Requirement:`接入要求`,"Overview aligned":`总览已对齐`,Section:`分区`,Cancelled:`已取消`,"Component relationship architecture":`组件关系架构图`,"Platform capability architecture":`平台能力架构图`,"Engineering layer architecture":`工程分层架构图`},ja:{Architecture:`アーキテクチャ`,Flowchart:`フローチャート`,Sequence:`シーケンス図`,"ER diagram":`ER 図`,Deployment:`配置図`,"Class diagram":`クラス図`,"State diagram":`状態図`,"Use cases":`ユースケース図`,"Data flow":`データフロー図`,"Source code":`ソースコード`,Code:`コード`,Configuration:`設定`,Schema:`スキーマ`,Test:`テスト`,Document:`ドキュメント`,"Framework convention":`フレームワークの規約`,Inference:`推論`,External:`外部`,Framework:`フレームワーク`,Security:`セキュリティ`,Service:`サービス`,Business:`業務`,Data:`データ`,Failure:`失敗`,System:`システム`,Component:`コンポーネント`,Database:`データベース`,Start:`開始`,End:`終了`,Process:`処理`,Decision:`分岐`,Input:`入力`,Output:`出力`,Subprocess:`サブプロセス`,Actor:`アクター`,Participant:`参加者`,Entity:`エンティティ`,Device:`デバイス`,Nodes:`ノード`,Container:`コンテナ`,Artifact:`成果物`,Class:`クラス`,Interface:`インターフェース`,"Abstract class":`抽象クラス`,State:`状態`,Initial:`初期`,Choice:`選択`,"Use case":`ユースケース`,"Data store":`データストア`,"Initial state":`初期状態`,"Final state":`終了状態`,"Core component":`主要コンポーネント`,"Data / storage":`データ / ストレージ`,"Start / end":`開始 / 終了`,"Components / actors":`コンポーネント / アクター`,"Solid relation":`実線の関係`,"Dashed: notation / convention / inference":`破線:記法 / 規約 / 推論`,Reset:`リセット`,Dark:`ダーク`,Light:`ライト`,Locked:`配置を固定`,Draggable:`移動可能`,"Unlock the layout first":`先に配置の固定を解除してください`,"Space the selected node and its direct neighbors":`選択ノードと隣接ノードの間隔を調整`,"Space all nodes":`すべてのノードの間隔を調整`,Arrange:`間隔を調整`,"Hide details":`詳細を隠す`,"Show details":`詳細を表示`,Overview:`概要`,Edges:`関係`,Groups:`グループ`,"Diagram types":`図の種類`,"Search nodes":`ノードを検索`,"Edge animation":`接続線の動き`,On:`オン`,Off:`オフ`,"System reduced-motion preference is respected":`システムの視差効果を減らす設定に従っています`,"Matches · {count}":`検索結果 · {count}`,"Nodes · {count}":`ノード · {count}`,"No matches. Try a name or responsibility.":`一致するノードがありません。名前や役割を変えて検索してください。`,Legend:`凡例`,"Interactive {type}":`操作可能な{type}`,"Fit canvas":`キャンバスに合わせる`,"Exit fullscreen":`全画面表示を終了`,"Enter fullscreen":`全画面表示`,"Exit fullscreen (Esc)":`全画面表示を終了(Esc)`,"Fullscreen is not available in this browser or page":`このブラウザーまたはページでは全画面表示を利用できません`,"Could not exit fullscreen. Press Esc to try again.":`全画面表示を終了できません。Esc キーを押してください`,"Could not enter fullscreen. Check browser or page permissions and try again.":`全画面表示を開始できません。ブラウザーやページの権限を確認してください`,"{count} relations":`{count} 関係`,"Node notes":`ノードの説明`,"Close details":`詳細を閉じる`,Fields:`フィールド`,Attributes:`属性`,Methods:`メソッド`,Source:`根拠`,"Start with a node":`ノードを選んで始めましょう`,"Select a component or a list entry to explore its role, fields, methods and source.":`図や一覧からコンポーネントを選ぶと、役割、フィールド、メソッド、根拠を確認できます。`,"Evidence facts":`根拠に基づく情報`,"Unlock the layout before arranging nodes":`間隔を調整する前に配置の固定を解除してください`,Local:`選択範囲`,"Full diagram":`図全体`,"{scope} arranged: {count} nodes moved":`{scope}の間隔を調整:{count} ノードを移動`,"Cannot arrange further within the current constraints":`現在の制約ではこれ以上調整できません`,"No spacing changes needed":`間隔の調整は不要です`,"Generating {format}…":`{format} を生成中…`,"{format} downloaded":`{format} をダウンロードしました`,"The browser could not generate the PNG":`ブラウザーで PNG を生成できませんでした`,"The browser could not read the exported SVG":`ブラウザーで出力 SVG を読み込めませんでした`,"Zoom in":`拡大`,"Zoom out":`縮小`,Minimap:`ミニマップ`,"Graph navigation":`グラフナビ`,"Show graph navigation":`グラフナビを表示`,"Hide graph navigation":`グラフナビを非表示`,More:`その他`,"Export SVG":`SVG を書き出す`,"Export PNG":`PNG を書き出す`,Close:`閉じる`,"View details":`詳細を見る`,Appearance:`外観`,"Follow system":`システム`,"Restore the original layout and view, and clear search and selection.":`元の配置と表示に戻し、検索と選択を解除します。`,"Reset: original positions and reading view restored":`リセットしました:元の配置と表示に戻りました`,Details:`詳細`,Name:`名前`,Description:`説明`,"Name is required":`名前は必須です`,Cancel:`キャンセル`,Save:`保存`,"Edit text":`テキストを編集`,Evidence:`根拠`,"Save changes":`変更を保存`,"Graph JSON saved":`Graph JSON を保存しました`,"Saved into this page, its sibling graph.json and SVGs":`このページと同じ階層の graph.json、SVG に保存しました`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`このページと同じ階層の graph.json に保存しました。SVG は更新していません。レイアウトの調整が必要です`,"Choose the folder containing this page ({page}); edits remain in this page":`このページ({page})があるフォルダーを選択してください。編集内容はこのページに残っています`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON をダウンロードしました。編集内容を残すにはファイルを保管してください`,"Save cancelled; edits remain in this page":`保存をキャンセルしました。編集内容はこのページに残っています`,"Save failed; edits remain in this page":`保存に失敗しました。編集内容はこのページに残っています`,"Synchronous message":`同期メッセージ`,"Asynchronous message":`非同期メッセージ`,"Return message":`戻りメッセージ`,"Branch conditions unspecified":`分岐条件未指定`,"Activation: execution interval; offset means nesting":`実行区間:横のずれは入れ子を示す`,"C ID: paired call and return share a color":`C 番号:呼び出しと戻りは同じ色`,"par: concurrent branches; vertical position is not order":`par:並行分岐。上下の位置は実行順ではない`,"Layout needs adjustment; JSON drafts can still be saved":`レイアウトの調整が必要です。JSON の下書きは保存できます`,"Card wash":`カードの淡い下地`,yes:`はい`,no:`いいえ`,composition:`コンポジション`,aggregation:`集約`,inheritance:`継承`,implementation:`実装`,"Core state":`主要な状態`,"Ended state":`終了した状態`,"Failed state":`失敗した状態`,"In-progress state":`進行中の状態`,"In-progress state: warm to cool as it advances":`進行中の状態:進むにつれて暖色から寒色へ`,Transition:`遷移`,"Self-transition: handled without leaving the state":`自己遷移:状態を離れずに処理するイベント`,"Key points":`要点`,"Show key points":`要点を表示`,"Hide key points":`要点を隠す`,"Component relations":`コンポーネント関係`,"Platform capabilities":`プラットフォーム機能`,"Engineering layers":`プロジェクト階層`,"Overview text":`概要本文`,Badges:`バッジ`,"Badge type":`バッジの種類`,"Add badge":`バッジを追加`,"Remove badge":`バッジを削除`,Status:`状態`,Version:`バージョン`,Requirement:`要件`,"Overview aligned":`概要を整列しました`,Section:`セクション`,Cancelled:`キャンセルしました`,"Component relationship architecture":`コンポーネント関係アーキテクチャ図`,"Platform capability architecture":`プラットフォーム機能アーキテクチャ図`,"Engineering layer architecture":`プロジェクト階層アーキテクチャ図`,"Layout suggestions":`レイアウトの提案`,"Arrange this view to improve connector clearance and spacing. Existing positions are preserved until then.":`このビューを整列すると、接続線の余白と間隔を改善できます。それまでは現在の位置が保持されます。`},ko:{Architecture:`아키텍처`,Flowchart:`순서도`,Sequence:`시퀀스 다이어그램`,"ER diagram":`ER 다이어그램`,Deployment:`배포 다이어그램`,"Class diagram":`클래스 다이어그램`,"State diagram":`상태 다이어그램`,"Use cases":`유스케이스 다이어그램`,"Data flow":`데이터 흐름도`,"Source code":`소스 코드`,Code:`코드`,Configuration:`설정`,Schema:`스키마`,Test:`테스트`,Document:`문서`,"Framework convention":`프레임워크 규약`,Inference:`추론`,External:`외부`,Framework:`프레임워크`,Security:`보안`,Service:`서비스`,Business:`비즈니스`,Data:`데이터`,Failure:`실패`,System:`시스템`,Component:`컴포넌트`,Database:`데이터베이스`,Start:`시작`,End:`종료`,Process:`처리`,Decision:`판단`,Input:`입력`,Output:`출력`,Subprocess:`하위 프로세스`,Actor:`행위자`,Participant:`참여자`,Entity:`엔티티`,Device:`장치`,Nodes:`노드`,Container:`컨테이너`,Artifact:`아티팩트`,Class:`클래스`,Interface:`인터페이스`,"Abstract class":`추상 클래스`,State:`상태`,Initial:`초기`,Choice:`선택`,"Use case":`유스케이스`,"Data store":`데이터 저장소`,"Initial state":`초기 상태`,"Final state":`최종 상태`,"Core component":`핵심 컴포넌트`,"Data / storage":`데이터 / 저장소`,"Start / end":`시작 / 종료`,"Components / actors":`컴포넌트 / 행위자`,"Solid relation":`실선 관계`,"Dashed: notation / convention / inference":`점선: 표기법 / 규약 / 추론`,Reset:`초기화`,Dark:`어둡게`,Light:`밝게`,Locked:`배치 잠금`,Draggable:`드래그 가능`,"Unlock the layout first":`먼저 배치 잠금을 해제하세요`,"Space the selected node and its direct neighbors":`선택한 노드와 인접 노드의 간격 조정`,"Space all nodes":`모든 노드의 간격 조정`,Arrange:`간격 정리`,"Hide details":`상세 정보 숨기기`,"Show details":`상세 정보 표시`,Overview:`개요`,Edges:`관계`,Groups:`그룹`,"Diagram types":`다이어그램 유형`,"Search nodes":`노드 검색`,"Edge animation":`연결선 애니메이션`,On:`켜짐`,Off:`꺼짐`,"System reduced-motion preference is respected":`시스템의 동작 줄이기 설정을 따릅니다`,"Matches · {count}":`검색 결과 · {count}`,"Nodes · {count}":`노드 · {count}`,"No matches. Try a name or responsibility.":`일치하는 노드가 없습니다. 이름이나 역할로 검색하세요.`,Legend:`범례`,"Interactive {type}":`대화형 {type}`,"Fit canvas":`캔버스에 맞추기`,"Exit fullscreen":`전체 화면 종료`,"Enter fullscreen":`전체 화면`,"Exit fullscreen (Esc)":`전체 화면 종료 (Esc)`,"Fullscreen is not available in this browser or page":`이 브라우저나 페이지에서는 전체 화면을 사용할 수 없습니다`,"Could not exit fullscreen. Press Esc to try again.":`전체 화면을 종료할 수 없습니다. Esc 키를 누르세요`,"Could not enter fullscreen. Check browser or page permissions and try again.":`전체 화면을 시작할 수 없습니다. 브라우저나 페이지 권한을 확인하세요`,"{count} relations":`관계 {count}개`,"Node notes":`노드 설명`,"Close details":`상세 정보 닫기`,Fields:`필드`,Attributes:`속성`,Methods:`메서드`,Source:`근거`,"Start with a node":`노드를 선택해 시작하세요`,"Select a component or a list entry to explore its role, fields, methods and source.":`다이어그램이나 목록에서 컴포넌트를 선택하면 역할, 필드, 메서드와 근거를 볼 수 있습니다.`,"Evidence facts":`근거로 확인한 내용`,"Unlock the layout before arranging nodes":`간격을 정리하기 전에 배치 잠금을 해제하세요`,Local:`선택 영역`,"Full diagram":`전체 다이어그램`,"{scope} arranged: {count} nodes moved":`{scope} 간격 정리: 노드 {count}개 이동`,"Cannot arrange further within the current constraints":`현재 제약 조건에서는 더 정리할 수 없습니다`,"No spacing changes needed":`간격 조정이 필요하지 않습니다`,"Generating {format}…":`{format} 생성 중…`,"{format} downloaded":`{format} 다운로드 완료`,"The browser could not generate the PNG":`브라우저에서 PNG를 생성하지 못했습니다`,"The browser could not read the exported SVG":`브라우저에서 내보낸 SVG를 읽지 못했습니다`,"Zoom in":`확대`,"Zoom out":`축소`,Minimap:`미니맵`,"Graph navigation":`그래프 탐색`,"Show graph navigation":`그래프 탐색 표시`,"Hide graph navigation":`그래프 탐색 숨기기`,More:`더보기`,"Export SVG":`SVG 내보내기`,"Export PNG":`PNG 내보내기`,Close:`닫기`,"View details":`상세 보기`,Appearance:`화면 모드`,"Follow system":`시스템`,"Restore the original layout and view, and clear search and selection.":`원래 배치와 보기를 복원하고 검색과 선택을 지웁니다.`,"Reset: original positions and reading view restored":`초기화됨: 원래 위치와 보기 복원`,Details:`세부 정보`,Name:`이름`,Description:`설명`,"Name is required":`이름은 필수입니다`,Cancel:`취소`,Save:`저장`,"Edit text":`텍스트 편집`,Evidence:`근거`,"Save changes":`변경 사항 저장`,"Graph JSON saved":`Graph JSON을 저장했습니다`,"Saved into this page, its sibling graph.json and SVGs":`현재 페이지와 같은 폴더의 graph.json, SVG에 저장했습니다`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`현재 페이지와 같은 폴더의 graph.json에 저장했습니다. SVG는 업데이트하지 않았습니다. 레이아웃을 조정해야 합니다`,"Choose the folder containing this page ({page}); edits remain in this page":`현재 페이지({page})가 있는 폴더를 선택하세요. 수정 사항은 현재 페이지에 남아 있습니다`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON을 다운로드했습니다. 수정 사항을 보관하려면 파일을 저장하세요`,"Save cancelled; edits remain in this page":`저장을 취소했습니다. 수정 사항은 현재 페이지에 남아 있습니다`,"Save failed; edits remain in this page":`저장에 실패했습니다. 수정 사항은 현재 페이지에 남아 있습니다`,"Synchronous message":`동기 메시지`,"Asynchronous message":`비동기 메시지`,"Return message":`반환 메시지`,"Branch conditions unspecified":`분기 조건 미지정`,"Activation: execution interval; offset means nesting":`激活条:执行区间,错位表示嵌套`,"C ID: paired call and return share a color":`C 编号:调用与返回配对,同组同色`,"par: concurrent branches; vertical position is not order":`par:分支并行,上下排列不代表先后`,"Layout needs adjustment; JSON drafts can still be saved":`레이아웃을 조정해야 합니다. JSON 초안은 저장할 수 있습니다`,"Card wash":`카드 연한 배경`,yes:`예`,no:`아니요`,composition:`합성`,aggregation:`집합`,inheritance:`상속`,implementation:`구현`,"Core state":`핵심 상태`,"Ended state":`종료된 상태`,"Failed state":`실패한 상태`,"In-progress state":`진행 중인 상태`,"In-progress state: warm to cool as it advances":`진행 중인 상태: 진행될수록 따뜻한 색에서 차가운 색으로`,Transition:`전이`,"Self-transition: handled without leaving the state":`자기 전이: 상태를 벗어나지 않고 처리하는 이벤트`,"Key points":`요점`,"Show key points":`요점 보기`,"Hide key points":`요점 숨기기`,"Component relations":`구성 요소 관계`,"Platform capabilities":`플랫폼 기능`,"Engineering layers":`프로젝트 계층`,"Overview text":`개요 본문`,Badges:`배지`,"Badge type":`배지 유형`,"Add badge":`배지 추가`,"Remove badge":`배지 제거`,Status:`상태`,Version:`버전`,Requirement:`요구 사항`,"Overview aligned":`개요 정렬 완료`,Section:`섹션`,Cancelled:`취소됨`,"Component relationship architecture":`구성 요소 관계 아키텍처`,"Platform capability architecture":`플랫폼 기능 아키텍처`,"Engineering layer architecture":`엔지니어링 계층 아키텍처`,"Layout suggestions":`레이아웃 제안`,"Arrange this view to improve connector clearance and spacing. Existing positions are preserved until then.":`이 보기를 정리하여 연결선의 여백과 간격을 개선하세요. 정리하기 전까지 기존 위치가 유지됩니다.`},de:{Architecture:`Architektur`,Flowchart:`Flussdiagramm`,Sequence:`Sequenzdiagramm`,"ER diagram":`ER-Diagramm`,Deployment:`Deployment-Diagramm`,"Class diagram":`Klassendiagramm`,"State diagram":`Zustandsdiagramm`,"Use cases":`Anwendungsfalldiagramm`,"Data flow":`Datenflussdiagramm`,"Source code":`Quellcode`,Code:`Code`,Configuration:`Konfiguration`,Schema:`Schema`,Test:`Test`,Document:`Dokumentation`,"Framework convention":`Framework-Konvention`,Inference:`Annahme`,External:`Extern`,Framework:`Framework`,Security:`Sicherheit`,Service:`Dienst`,Business:`Fachlogik`,Data:`Daten`,Failure:`Fehler`,System:`System`,Component:`Komponente`,Database:`Datenbank`,Start:`Start`,End:`Ende`,Process:`Prozess`,Decision:`Entscheidung`,Input:`Eingabe`,Output:`Ausgabe`,Subprocess:`Teilprozess`,Actor:`Akteur`,Participant:`Teilnehmer`,Entity:`Entität`,Device:`Gerät`,Nodes:`Knoten`,Container:`Container`,Artifact:`Artefakt`,Class:`Klasse`,Interface:`Schnittstelle`,"Abstract class":`Abstrakte Klasse`,State:`Zustand`,Initial:`Initial`,Choice:`Auswahl`,"Use case":`Anwendungsfall`,"Data store":`Datenspeicher`,"Initial state":`Anfangszustand`,"Final state":`Endzustand`,"Core component":`Kernkomponente`,"Data / storage":`Daten / Speicher`,"Start / end":`Start / Ende`,"Components / actors":`Komponenten / Akteure`,"Solid relation":`Durchgezogene Beziehung`,"Dashed: notation / convention / inference":`Gestrichelt: Notation / Konvention / Annahme`,Reset:`Zurücksetzen`,Dark:`Dunkel`,Light:`Hell`,Locked:`Gesperrt`,Draggable:`Verschiebbar`,"Unlock the layout first":`Zuerst das Layout entsperren`,"Space the selected node and its direct neighbors":`Abstände der Auswahl und direkter Nachbarn anpassen`,"Space all nodes":`Alle Knotenabstände anpassen`,Arrange:`Abstände`,"Hide details":`Details ausblenden`,"Show details":`Details anzeigen`,Overview:`Überblick`,Edges:`Beziehungen`,Groups:`Gruppen`,"Diagram types":`Diagrammtypen`,"Search nodes":`Knoten suchen`,"Edge animation":`Kantenanimation`,On:`Ein`,Off:`Aus`,"System reduced-motion preference is respected":`Die Systemeinstellung für reduzierte Bewegung wird beachtet`,"Matches · {count}":`Treffer · {count}`,"Nodes · {count}":`Knoten · {count}`,"No matches. Try a name or responsibility.":`Keine Treffer. Versuchen Sie einen Namen oder eine Rolle.`,Legend:`Legende`,"Interactive {type}":`Interaktiv: {type}`,"Fit canvas":`An Zeichenfläche anpassen`,"Exit fullscreen":`Vollbild verlassen`,"Enter fullscreen":`Vollbild`,"Exit fullscreen (Esc)":`Vollbild verlassen (Esc)`,"Fullscreen is not available in this browser or page":`Vollbild ist in diesem Browser oder auf dieser Seite nicht verfügbar`,"Could not exit fullscreen. Press Esc to try again.":`Vollbild konnte nicht beendet werden. Drücken Sie Esc.`,"Could not enter fullscreen. Check browser or page permissions and try again.":`Vollbild konnte nicht gestartet werden. Prüfen Sie die Browser- oder Seitenberechtigungen.`,"{count} relations":`{count} Beziehungen`,"Node notes":`Knotenbeschreibung`,"Close details":`Details schließen`,Fields:`Felder`,Attributes:`Attribute`,Methods:`Methoden`,Source:`Beleg`,"Start with a node":`Wählen Sie einen Knoten`,"Select a component or a list entry to explore its role, fields, methods and source.":`Wählen Sie eine Komponente im Diagramm oder in der Liste, um Rolle, Felder, Methoden und Belege zu sehen.`,"Evidence facts":`Belegte Fakten`,"Unlock the layout before arranging nodes":`Entsperren Sie das Layout vor dem Anpassen der Abstände`,Local:`Auswahl`,"Full diagram":`Gesamtes Diagramm`,"{scope} arranged: {count} nodes moved":`{scope}: Abstände angepasst, {count} Knoten verschoben`,"Cannot arrange further within the current constraints":`Unter diesen Bedingungen ist keine weitere Anpassung möglich`,"No spacing changes needed":`Keine Abstandsanpassung erforderlich`,"Generating {format}…":`{format} wird erstellt…`,"{format} downloaded":`{format} heruntergeladen`,"The browser could not generate the PNG":`Der Browser konnte kein PNG erstellen`,"The browser could not read the exported SVG":`Der Browser konnte die exportierte SVG-Datei nicht lesen`,"Zoom in":`Vergrößern`,"Zoom out":`Verkleinern`,Minimap:`Minikarte`,"Graph navigation":`Graph-Navigation`,"Show graph navigation":`Graph-Navigation einblenden`,"Hide graph navigation":`Graph-Navigation ausblenden`,More:`Mehr`,"Export SVG":`SVG exportieren`,"Export PNG":`PNG exportieren`,Close:`Schließen`,"View details":`Details ansehen`,Appearance:`Erscheinungsbild`,"Follow system":`System`,"Restore the original layout and view, and clear search and selection.":`Ursprüngliche Anordnung und Ansicht wiederherstellen, Suche und Auswahl löschen.`,"Reset: original positions and reading view restored":`Zurückgesetzt: ursprüngliche Positionen und Ansicht wiederhergestellt`,Details:`Details`,Name:`Name`,Description:`Beschreibung`,"Name is required":`Name ist erforderlich`,Cancel:`Abbrechen`,Save:`Speichern`,"Edit text":`Text bearbeiten`,Evidence:`Nachweis`,"Save changes":`Änderungen speichern`,"Graph JSON saved":`Graph JSON gespeichert`,"Saved into this page, its sibling graph.json and SVGs":`In diese Seite, die benachbarte graph.json und die SVGs gespeichert`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`In diese Seite und die benachbarte graph.json gespeichert; SVGs nicht aktualisiert: Das Layout muss angepasst werden`,"Choose the folder containing this page ({page}); edits remain in this page":`Bitte den Ordner dieser Seite ({page}) wählen; die Änderungen bleiben auf dieser Seite`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON heruntergeladen; Datei zum Erhalten der Änderungen aufbewahren`,"Save cancelled; edits remain in this page":`Speichern abgebrochen; Änderungen bleiben auf dieser Seite`,"Save failed; edits remain in this page":`Speichern fehlgeschlagen; Änderungen bleiben auf dieser Seite`,"Synchronous message":`Synchrone Nachricht`,"Asynchronous message":`Asynchrone Nachricht`,"Return message":`Antwortnachricht`,"Branch conditions unspecified":`Zweigbedingungen fehlen`,"Activation: execution interval; offset means nesting":`Aktivierung: Ausführungsdauer; Versatz zeigt Verschachtelung`,"C ID: paired call and return share a color":`C-ID: Aufruf und Rückgabe haben dieselbe Farbe`,"par: concurrent branches; vertical position is not order":`par: parallele Zweige; vertikale Lage ist keine Reihenfolge`,"Layout needs adjustment; JSON drafts can still be saved":`Layout anpassen; JSON-Entwürfe können gespeichert werden`,"Card wash":`Karten-Grundton`,yes:`ja`,no:`nein`,composition:`Komposition`,aggregation:`Aggregation`,inheritance:`Vererbung`,implementation:`Implementierung`,"Core state":`Kernzustand`,"Ended state":`Beendeter Zustand`,"Failed state":`Fehlgeschlagener Zustand`,"In-progress state":`Zustand in Bearbeitung`,"In-progress state: warm to cool as it advances":`Zustand in Bearbeitung: von warm nach kalt, je weiter er fortschreitet`,Transition:`Übergang`,"Self-transition: handled without leaving the state":`Selbstübergang: Ereignis, das im Zustand bleibt`,"Key points":`Kernaussagen`,"Show key points":`Kernaussagen anzeigen`,"Hide key points":`Kernaussagen ausblenden`,"Component relations":`Komponentenbeziehungen`,"Platform capabilities":`Plattformfunktionen`,"Engineering layers":`Projektebenen`,"Overview text":`Übersichtstext`,Badges:`Abzeichen`,"Badge type":`Abzeichentyp`,"Add badge":`Abzeichen hinzufügen`,"Remove badge":`Abzeichen entfernen`,Status:`Status`,Version:`Version`,Requirement:`Anforderung`,"Overview aligned":`Übersicht ausgerichtet`,Section:`Abschnitt`,Cancelled:`Abgebrochen`,"Component relationship architecture":`Komponentenarchitektur`,"Platform capability architecture":`Plattformfähigkeitsarchitektur`,"Engineering layer architecture":`Schichtenarchitektur`,"Layout suggestions":`Layoutvorschläge`,"Arrange this view to improve connector clearance and spacing. Existing positions are preserved until then.":`Ordnen Sie diese Ansicht an, um Abstände der Verbindungslinien zu verbessern. Bis dahin bleiben die bisherigen Positionen erhalten.`},fr:{Architecture:`Architecture`,Flowchart:`Organigramme`,Sequence:`Diagramme de séquence`,"ER diagram":`Diagramme ER`,Deployment:`Diagramme de déploiement`,"Class diagram":`Diagramme de classes`,"State diagram":`Diagramme d’états`,"Use cases":`Cas d’utilisation`,"Data flow":`Flux de données`,"Source code":`Code source`,Code:`Code`,Configuration:`Configuration`,Schema:`Schéma`,Test:`Test`,Document:`Documentation`,"Framework convention":`Convention du framework`,Inference:`Déduction`,External:`Externe`,Framework:`Framework`,Security:`Sécurité`,Service:`Service`,Business:`Métier`,Data:`Données`,Failure:`Échec`,System:`Système`,Component:`Composant`,Database:`Base de données`,Start:`Début`,End:`Fin`,Process:`Traitement`,Decision:`Décision`,Input:`Entrée`,Output:`Sortie`,Subprocess:`Sous-processus`,Actor:`Acteur`,Participant:`Participant`,Entity:`Entité`,Device:`Appareil`,Nodes:`Nœuds`,Container:`Conteneur`,Artifact:`Artefact`,Class:`Classe`,Interface:`Interface`,"Abstract class":`Classe abstraite`,State:`État`,Initial:`Initial`,Choice:`Choix`,"Use case":`Cas d’utilisation`,"Data store":`Stockage de données`,"Initial state":`État initial`,"Final state":`État final`,"Core component":`Composant central`,"Data / storage":`Données / stockage`,"Start / end":`Début / fin`,"Components / actors":`Composants / acteurs`,"Solid relation":`Relation en trait plein`,"Dashed: notation / convention / inference":`Pointillés : notation / convention / déduction`,Reset:`Réinitialiser`,Dark:`Sombre`,Light:`Clair`,Locked:`Verrouillé`,Draggable:`Déplaçable`,"Unlock the layout first":`Déverrouillez d’abord la disposition`,"Space the selected node and its direct neighbors":`Espacer la sélection et ses voisins directs`,"Space all nodes":`Espacer tous les nœuds`,Arrange:`Espacer`,"Hide details":`Masquer les détails`,"Show details":`Afficher les détails`,Overview:`Vue d’ensemble`,Edges:`Relations`,Groups:`Groupes`,"Diagram types":`Types de diagrammes`,"Search nodes":`Rechercher un nœud`,"Edge animation":`Animation des liens`,On:`Activée`,Off:`Désactivée`,"System reduced-motion preference is respected":`Le réglage système de réduction des animations est respecté`,"Matches · {count}":`Résultats · {count}`,"Nodes · {count}":`Nœuds · {count}`,"No matches. Try a name or responsibility.":`Aucun résultat. Essayez un nom ou un rôle.`,Legend:`Légende`,"Interactive {type}":`Vue interactive : {type}`,"Fit canvas":`Ajuster au canevas`,"Exit fullscreen":`Quitter le plein écran`,"Enter fullscreen":`Plein écran`,"Exit fullscreen (Esc)":`Quitter le plein écran (Échap)`,"Fullscreen is not available in this browser or page":`Le plein écran n’est pas disponible dans ce navigateur ou sur cette page`,"Could not exit fullscreen. Press Esc to try again.":`Impossible de quitter le plein écran. Appuyez sur Échap.`,"Could not enter fullscreen. Check browser or page permissions and try again.":`Impossible de passer en plein écran. Vérifiez les autorisations du navigateur ou de la page.`,"{count} relations":`{count} relations`,"Node notes":`Notes du nœud`,"Close details":`Fermer les détails`,Fields:`Champs`,Attributes:`Attributs`,Methods:`Méthodes`,Source:`Preuve`,"Start with a node":`Commencez par un nœud`,"Select a component or a list entry to explore its role, fields, methods and source.":`Sélectionnez un composant du diagramme ou de la liste pour consulter son rôle, ses champs, ses méthodes et ses preuves.`,"Evidence facts":`Faits étayés`,"Unlock the layout before arranging nodes":`Déverrouillez la disposition avant d’ajuster les espacements`,Local:`Sélection`,"Full diagram":`Diagramme entier`,"{scope} arranged: {count} nodes moved":`{scope} : espacement ajusté, {count} nœuds déplacés`,"Cannot arrange further within the current constraints":`Impossible d’ajuster davantage avec ces contraintes`,"No spacing changes needed":`Aucun ajustement d’espacement nécessaire`,"Generating {format}…":`Génération de {format}…`,"{format} downloaded":`{format} téléchargé`,"The browser could not generate the PNG":`Le navigateur n’a pas pu générer le PNG`,"The browser could not read the exported SVG":`Le navigateur n’a pas pu lire le SVG exporté`,"Zoom in":`Agrandir`,"Zoom out":`Réduire`,Minimap:`Mini-carte`,"Graph navigation":`Navigation du graphe`,"Show graph navigation":`Afficher la navigation`,"Hide graph navigation":`Masquer la navigation`,More:`Plus`,"Export SVG":`Exporter en SVG`,"Export PNG":`Exporter en PNG`,Close:`Fermer`,"View details":`Voir les détails`,Appearance:`Apparence`,"Follow system":`Système`,"Restore the original layout and view, and clear search and selection.":`Rétablir la disposition et la vue, puis effacer la recherche et la sélection.`,"Reset: original positions and reading view restored":`Réinitialisé : positions et vue d’origine rétablies`,Details:`Détails`,Name:`Nom`,Description:`Description`,"Name is required":`Le nom est obligatoire`,Cancel:`Annuler`,Save:`Enregistrer`,"Edit text":`Modifier le texte`,Evidence:`Preuve`,"Save changes":`Enregistrer les modifications`,"Graph JSON saved":`Graph JSON enregistré`,"Saved into this page, its sibling graph.json and SVGs":`Enregistré dans cette page, dans le graph.json voisin et dans les SVG`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`Enregistré dans cette page et dans le graph.json voisin ; SVG non mis à jour : la disposition doit être ajustée`,"Choose the folder containing this page ({page}); edits remain in this page":`Choisissez le dossier contenant cette page ({page}) ; les modifications restent sur cette page`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON téléchargé ; conservez le fichier pour garder les modifications`,"Save cancelled; edits remain in this page":`Enregistrement annulé ; les modifications restent sur cette page`,"Save failed; edits remain in this page":`Échec de l’enregistrement ; les modifications restent sur cette page`,"Synchronous message":`Message synchrone`,"Asynchronous message":`Message asynchrone`,"Return message":`Message de retour`,"Branch conditions unspecified":`Conditions de branche non précisées`,"Activation: execution interval; offset means nesting":`激活条:执行区间,错位表示嵌套`,"C ID: paired call and return share a color":`C 编号:调用与返回配对,同组同色`,"par: concurrent branches; vertical position is not order":`par:分支并行,上下排列不代表先后`,"Layout needs adjustment; JSON drafts can still be saved":`La disposition doit être ajustée ; le brouillon JSON peut être enregistré`,"Card wash":`Fond léger des cartes`,yes:`oui`,no:`non`,composition:`composition`,aggregation:`agrégation`,inheritance:`héritage`,implementation:`implémentation`,"Core state":`État central`,"Ended state":`État terminé`,"Failed state":`État en échec`,"In-progress state":`État en cours`,"In-progress state: warm to cool as it advances":`État en cours : du chaud au froid à mesure qu’il avance`,Transition:`Transition`,"Self-transition: handled without leaving the state":`Auto-transition : événement traité sans quitter l’état`,"Key points":`Points clés`,"Show key points":`Afficher les points clés`,"Hide key points":`Masquer les points clés`,"Component relations":`Relations entre composants`,"Platform capabilities":`Capacités de la plateforme`,"Engineering layers":`Couches du projet`,"Overview text":`Texte de présentation`,Badges:`Badges`,"Badge type":`Type de badge`,"Add badge":`Ajouter un badge`,"Remove badge":`Supprimer le badge`,Status:`Statut`,Version:`Version`,Requirement:`Exigence`,"Overview aligned":`Présentation alignée`,Section:`Section`,Cancelled:`Annulé`,"Component relationship architecture":`Architecture des composants`,"Platform capability architecture":`Architecture des capacités`,"Engineering layer architecture":`Architecture en couches`,"Layout suggestions":`Suggestions de disposition`,"Arrange this view to improve connector clearance and spacing. Existing positions are preserved until then.":`Réorganisez cette vue pour améliorer les dégagements et les espacements des connecteurs. Les positions actuelles sont conservées jusque-là.`},es:{Architecture:`Arquitectura`,Flowchart:`Diagrama de flujo`,Sequence:`Diagrama de secuencia`,"ER diagram":`Diagrama ER`,Deployment:`Diagrama de despliegue`,"Class diagram":`Diagrama de clases`,"State diagram":`Diagrama de estados`,"Use cases":`Casos de uso`,"Data flow":`Flujo de datos`,"Source code":`Código fuente`,Code:`Código`,Configuration:`Configuración`,Schema:`Esquema`,Test:`Prueba`,Document:`Documentación`,"Framework convention":`Convención del framework`,Inference:`Inferencia`,External:`Externo`,Framework:`Framework`,Security:`Seguridad`,Service:`Servicio`,Business:`Negocio`,Data:`Datos`,Failure:`Error`,System:`Sistema`,Component:`Componente`,Database:`Base de datos`,Start:`Inicio`,End:`Fin`,Process:`Proceso`,Decision:`Decisión`,Input:`Entrada`,Output:`Salida`,Subprocess:`Subproceso`,Actor:`Actor`,Participant:`Participante`,Entity:`Entidad`,Device:`Dispositivo`,Nodes:`Nodos`,Container:`Contenedor`,Artifact:`Artefacto`,Class:`Clase`,Interface:`Interfaz`,"Abstract class":`Clase abstracta`,State:`Estado`,Initial:`Inicial`,Choice:`Elección`,"Use case":`Caso de uso`,"Data store":`Almacén de datos`,"Initial state":`Estado inicial`,"Final state":`Estado final`,"Core component":`Componente principal`,"Data / storage":`Datos / almacenamiento`,"Start / end":`Inicio / fin`,"Components / actors":`Componentes / actores`,"Solid relation":`Relación continua`,"Dashed: notation / convention / inference":`Discontinua: notación / convención / inferencia`,Reset:`Restablecer`,Dark:`Oscuro`,Light:`Claro`,Locked:`Bloqueado`,Draggable:`Movible`,"Unlock the layout first":`Primero desbloquea la disposición`,"Space the selected node and its direct neighbors":`Espaciar la selección y sus vecinos directos`,"Space all nodes":`Espaciar todos los nodos`,Arrange:`Espaciar`,"Hide details":`Ocultar detalles`,"Show details":`Mostrar detalles`,Overview:`Resumen`,Edges:`Relaciones`,Groups:`Grupos`,"Diagram types":`Tipos de diagramas`,"Search nodes":`Buscar nodos`,"Edge animation":`Animación de enlaces`,On:`Activada`,Off:`Desactivada`,"System reduced-motion preference is respected":`Se respeta la preferencia del sistema de reducir el movimiento`,"Matches · {count}":`Resultados · {count}`,"Nodes · {count}":`Nodos · {count}`,"No matches. Try a name or responsibility.":`No hay resultados. Prueba con un nombre o una función.`,Legend:`Leyenda`,"Interactive {type}":`Vista interactiva: {type}`,"Fit canvas":`Ajustar al lienzo`,"Exit fullscreen":`Salir de pantalla completa`,"Enter fullscreen":`Pantalla completa`,"Exit fullscreen (Esc)":`Salir de pantalla completa (Esc)`,"Fullscreen is not available in this browser or page":`La pantalla completa no está disponible en este navegador o página`,"Could not exit fullscreen. Press Esc to try again.":`No se pudo salir de pantalla completa. Pulsa Esc.`,"Could not enter fullscreen. Check browser or page permissions and try again.":`No se pudo activar la pantalla completa. Revisa los permisos del navegador o de la página.`,"{count} relations":`{count} relaciones`,"Node notes":`Notas del nodo`,"Close details":`Cerrar detalles`,Fields:`Campos`,Attributes:`Atributos`,Methods:`Métodos`,Source:`Evidencia`,"Start with a node":`Empieza por un nodo`,"Select a component or a list entry to explore its role, fields, methods and source.":`Selecciona un componente del diagrama o de la lista para ver su función, campos, métodos y evidencias.`,"Evidence facts":`Hechos documentados`,"Unlock the layout before arranging nodes":`Desbloquea la disposición antes de ajustar los espacios`,Local:`Selección`,"Full diagram":`Diagrama completo`,"{scope} arranged: {count} nodes moved":`{scope}: espaciado ajustado, {count} nodos movidos`,"Cannot arrange further within the current constraints":`No se puede ajustar más con estas restricciones`,"No spacing changes needed":`No es necesario ajustar el espaciado`,"Generating {format}…":`Generando {format}…`,"{format} downloaded":`{format} descargado`,"The browser could not generate the PNG":`El navegador no pudo generar el PNG`,"The browser could not read the exported SVG":`El navegador no pudo leer el SVG exportado`,"Zoom in":`Acercar`,"Zoom out":`Alejar`,Minimap:`Minimapa`,"Graph navigation":`Navegación del grafo`,"Show graph navigation":`Mostrar navegación`,"Hide graph navigation":`Ocultar navegación`,More:`Más`,"Export SVG":`Exportar SVG`,"Export PNG":`Exportar PNG`,Close:`Cerrar`,"View details":`Ver detalles`,Appearance:`Apariencia`,"Follow system":`Sistema`,"Restore the original layout and view, and clear search and selection.":`Restaurar la disposición y la vista originales, y borrar la búsqueda y la selección.`,"Reset: original positions and reading view restored":`Restablecido: posiciones y vista originales restauradas`,Details:`Detalles`,Name:`Nombre`,Description:`Descripción`,"Name is required":`El nombre es obligatorio`,Cancel:`Cancelar`,Save:`Guardar`,"Edit text":`Editar texto`,Evidence:`Evidencia`,"Save changes":`Guardar cambios`,"Graph JSON saved":`Graph JSON guardado`,"Saved into this page, its sibling graph.json and SVGs":`Guardado en esta página, en el graph.json contiguo y en los SVG`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`Guardado en esta página y en el graph.json contiguo; SVG sin actualizar: hay que ajustar el diseño`,"Choose the folder containing this page ({page}); edits remain in this page":`Elija la carpeta que contiene esta página ({page}); los cambios permanecen en esta página`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON descargado; conserva el archivo para guardar los cambios`,"Save cancelled; edits remain in this page":`Guardado cancelado; los cambios permanecen en esta página`,"Save failed; edits remain in this page":`Error al guardar; los cambios permanecen en esta página`,"Synchronous message":`Mensaje síncrono`,"Asynchronous message":`Mensaje asíncrono`,"Return message":`Mensaje de retorno`,"Branch conditions unspecified":`Condiciones de ramas sin especificar`,"Activation: execution interval; offset means nesting":`Activación: intervalo de ejecución; el desplazamiento indica anidación`,"C ID: paired call and return share a color":`ID C: llamada y retorno comparten color`,"par: concurrent branches; vertical position is not order":`par: ramas paralelas; la posición vertical no indica orden`,"Layout needs adjustment; JSON drafts can still be saved":`Ajusta el diseño; puedes guardar el borrador JSON`,"Card wash":`Tinte suave de tarjetas`,yes:`sí`,no:`no`,composition:`composición`,aggregation:`agregación`,inheritance:`herencia`,implementation:`implementación`,"Core state":`Estado principal`,"Ended state":`Estado finalizado`,"Failed state":`Estado fallido`,"In-progress state":`Estado en curso`,"In-progress state: warm to cool as it advances":`Estado en curso: de cálido a frío a medida que avanza`,Transition:`Transición`,"Self-transition: handled without leaving the state":`Autotransición: evento atendido sin salir del estado`,"Key points":`Puntos clave`,"Show key points":`Mostrar puntos clave`,"Hide key points":`Ocultar puntos clave`,"Component relations":`Relaciones entre componentes`,"Platform capabilities":`Capacidades de la plataforma`,"Engineering layers":`Capas del proyecto`,"Overview text":`Texto del resumen`,Badges:`Insignias`,"Badge type":`Tipo de insignia`,"Add badge":`Añadir insignia`,"Remove badge":`Eliminar insignia`,Status:`Estado`,Version:`Versión`,Requirement:`Requisito`,"Overview aligned":`Resumen alineado`,Section:`Sección`,Cancelled:`Cancelado`,"Component relationship architecture":`Arquitectura de componentes`,"Platform capability architecture":`Arquitectura de capacidades`,"Engineering layer architecture":`Arquitectura por capas`,"Layout suggestions":`Sugerencias de diseño`,"Arrange this view to improve connector clearance and spacing. Existing positions are preserved until then.":`Organiza esta vista para mejorar la separación y el espacio de los conectores. Las posiciones actuales se conservan hasta entonces.`},ru:JSON.parse(`{"Architecture":"Архитектура","Flowchart":"Блок-схема","Sequence":"Последовательность","ER diagram":"ER-диаграмма","Deployment":"Развёртывание","Class diagram":"Диаграмма классов","State diagram":"Диаграмма состояний","Use cases":"Варианты использования","Data flow":"Поток данных","Source code":"Исходный код","Code":"Код","Configuration":"Конфигурация","Schema":"Схема данных","Test":"Тест","Document":"Документ","Framework convention":"Правило фреймворка","Inference":"Предположение","External":"Внешний","Framework":"Фреймворк","Security":"Безопасность","Service":"Сервис","Business":"Бизнес-логика","Data":"Данные","Failure":"Сбой","System":"Система","Component":"Компонент","Database":"База данных","Start":"Начало","End":"Конец","Process":"Процесс","Decision":"Решение","Input":"Вход","Output":"Выход","Subprocess":"Подпроцесс","Actor":"Актор","Participant":"Участник","Entity":"Сущность","Device":"Устройство","Nodes":"Узлы","Container":"Контейнер","Artifact":"Артефакт","Class":"Класс","Interface":"Интерфейс","Abstract class":"Абстрактный класс","State":"Состояние","Initial":"Начальное","Choice":"Выбор","Use case":"Вариант использования","Data store":"Хранилище данных","Initial state":"Начальное состояние","Final state":"Конечное состояние","Core component":"Ключевой компонент","Data / storage":"Данные / хранение","Start / end":"Начало / конец","Components / actors":"Компоненты / акторы","Solid relation":"Сплошная связь","Dashed: notation / convention / inference":"Пунктир: нотация / правило / предположение","Reset":"Сбросить","Dark":"Тёмная","Light":"Светлая","Locked":"Блокировка","Draggable":"Можно перемещать","Unlock the layout first":"Сначала разблокируйте расположение","Space the selected node and its direct neighbors":"Настроить интервалы выбранного узла и его соседей","Space all nodes":"Настроить интервалы всех узлов","Arrange":"Интервалы","Hide details":"Скрыть сведения","Show details":"Показать сведения","Overview":"Обзор","Edges":"Связи","Groups":"Границы","Diagram types":"Типы диаграмм","Search nodes":"Найти узлы","Edge animation":"Анимация связей","On":"Вкл.","Off":"Выкл.","System reduced-motion preference is respected":"Учтена системная настройка уменьшения движения","Matches · {count}":"Найдено · {count}","Nodes · {count}":"Узлы · {count}","No matches. Try a name or responsibility.":"Совпадений нет. Попробуйте имя или назначение.","Legend":"Легенда","Interactive {type}":"Интерактивная диаграмма: {type}","Fit canvas":"Вписать в холст","Exit fullscreen":"Выйти из полноэкранного режима","Enter fullscreen":"На весь экран","Exit fullscreen (Esc)":"Выйти из полноэкранного режима (Esc)","Fullscreen is not available in this browser or page":"Полноэкранный режим недоступен в этом браузере или на этой странице","Could not exit fullscreen. Press Esc to try again.":"Не удалось выйти из полноэкранного режима. Нажмите Esc.","Could not enter fullscreen. Check browser or page permissions and try again.":"Не удалось перейти в полноэкранный режим. Проверьте разрешения браузера или страницы.","{count} relations":"Связей: {count}","Node notes":"Примечания к узлу","Close details":"Закрыть сведения","Fields":"Поля","Attributes":"Атрибуты","Methods":"Методы","Source":"Основание","Start with a node":"Начните с узла","Select a component or a list entry to explore its role, fields, methods and source.":"Выберите компонент или пункт списка, чтобы посмотреть назначение, поля, методы и источник.","Evidence facts":"Подтверждённые факты","Unlock the layout before arranging nodes":"Разблокируйте расположение перед настройкой интервалов","Local":"Локально","Full diagram":"Вся диаграмма","{scope} arranged: {count} nodes moved":"{scope}: интервалы настроены, перемещено узлов: {count}","Cannot arrange further within the current constraints":"Текущие ограничения не позволяют улучшить расположение","No spacing changes needed":"Интервалы не требуют изменений","Generating {format}…":"Создание {format}…","{format} downloaded":"{format} скачан","The browser could not generate the PNG":"Браузер не смог создать PNG","The browser could not read the exported SVG":"Браузер не смог прочитать экспортированный SVG","Zoom in":"Увеличить","Zoom out":"Уменьшить","Minimap":"Мини-карта","Graph navigation":"Навигация по графу","Show graph navigation":"Показать навигацию","Hide graph navigation":"Скрыть навигацию","More":"Ещё","Export SVG":"Экспорт SVG","Export PNG":"Экспорт PNG","Close":"Закрыть","View details":"Подробнее","Appearance":"Оформление","Follow system":"Как в системе","Restore the original layout and view, and clear search and selection.":"Восстановить исходное расположение и вид, очистить поиск и выделение.","Reset: original positions and reading view restored":"Сброс: исходное расположение и вид восстановлены","Details":"Сведения","Name":"Имя","Description":"Описание","Name is required":"Имя обязательно","Cancel":"Отмена","Save":"Сохранить","Edit text":"Изменить текст","Evidence":"Основание","Save changes":"Сохранить изменения","Graph JSON saved":"Graph JSON сохранён","Saved into this page, its sibling graph.json and SVGs":"Сохранено в эту страницу, соседний graph.json и SVG","Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":"Сохранено в эту страницу и соседний graph.json; SVG не обновлены: нужно исправить расположение","Choose the folder containing this page ({page}); edits remain in this page":"Выберите папку с этой страницей ({page}); изменения остаются на этой странице","Graph JSON downloaded; keep the file to preserve edits":"Graph JSON скачан; сохраните файл, чтобы не потерять изменения","Save cancelled; edits remain in this page":"Сохранение отменено; изменения остались на странице","Save failed; edits remain in this page":"Не удалось сохранить; изменения остались на странице","Synchronous message":"Синхронное сообщение","Asynchronous message":"Асинхронное сообщение","Return message":"Ответное сообщение","Branch conditions unspecified":"Условия ветвей не указаны","Activation: execution interval; offset means nesting":"Активация: интервал выполнения; смещение означает вложенность","C ID: paired call and return share a color":"Номер C: вызов и возврат одного цвета","par: concurrent branches; vertical position is not order":"par: параллельные ветви; положение по вертикали не задаёт порядок","Layout needs adjustment; JSON drafts can still be saved":"Исправьте расположение; черновик JSON можно сохранить","Card wash":"Лёгкая заливка карточек","yes":"да","no":"нет","composition":"композиция","aggregation":"агрегация","inheritance":"наследование","implementation":"реализация","Core state":"Ключевое состояние","Ended state":"Завершённое состояние","Failed state":"Состояние сбоя","In-progress state":"Состояние в процессе","In-progress state: warm to cool as it advances":"Состояние в процессе: от тёплого цвета к холодному по мере продвижения","Transition":"Переход","Self-transition: handled without leaving the state":"Петля: событие обрабатывается без выхода из состояния","Key points":"Ключевые выводы","Show key points":"Показать ключевые выводы","Hide key points":"Скрыть ключевые выводы","Component relations":"Связи компонентов","Platform capabilities":"Возможности платформы","Engineering layers":"Слои проекта","Overview text":"Текст обзора","Badges":"Метки","Badge type":"Тип метки","Add badge":"Добавить метку","Remove badge":"Удалить метку","Status":"Статус","Version":"Версия","Requirement":"Требование","Overview aligned":"Обзор выровнен","Section":"Раздел","Cancelled":"Отменено","Component relationship architecture":"Архитектура компонентов","Platform capability architecture":"Архитектура возможностей платформы","Engineering layer architecture":"Слоистая архитектура","Layout suggestions":"Рекомендации по размещению","Arrange this view to improve connector clearance and spacing. Existing positions are preserved until then.":"Упорядочьте эту схему, чтобы улучшить зазоры и расстояния между связями. До этого текущие позиции сохраняются."}`),pt:{Architecture:`Arquitetura`,Flowchart:`Fluxograma`,Sequence:`Sequência`,"ER diagram":`Diagrama ER`,Deployment:`Implantação`,"Class diagram":`Diagrama de classes`,"State diagram":`Diagrama de estados`,"Use cases":`Casos de uso`,"Data flow":`Fluxo de dados`,"Source code":`Código-fonte`,Code:`Código`,Configuration:`Configuração`,Schema:`Esquema`,Test:`Teste`,Document:`Documento`,"Framework convention":`Convenção do framework`,Inference:`Inferência`,External:`Externo`,Framework:`Framework`,Security:`Segurança`,Service:`Serviço`,Business:`Negócio`,Data:`Dados`,Failure:`Falha`,System:`Sistema`,Component:`Componente`,Database:`Banco de dados`,Start:`Início`,End:`Fim`,Process:`Processo`,Decision:`Decisão`,Input:`Entrada`,Output:`Saída`,Subprocess:`Subprocesso`,Actor:`Ator`,Participant:`Participante`,Entity:`Entidade`,Device:`Dispositivo`,Nodes:`Nós`,Container:`Contêiner`,Artifact:`Artefato`,Class:`Classe`,Interface:`Interface`,"Abstract class":`Classe abstrata`,State:`Estado`,Initial:`Inicial`,Choice:`Escolha`,"Use case":`Caso de uso`,"Data store":`Armazenamento de dados`,"Initial state":`Estado inicial`,"Final state":`Estado final`,"Core component":`Componente central`,"Data / storage":`Dados / armazenamento`,"Start / end":`Início / fim`,"Components / actors":`Componentes / atores`,"Solid relation":`Relação contínua`,"Dashed: notation / convention / inference":`Tracejado: notação / convenção / inferência`,Reset:`Redefinir`,Dark:`Escuro`,Light:`Claro`,Locked:`Bloqueado`,Draggable:`Arrastável`,"Unlock the layout first":`Desbloqueie o layout primeiro`,"Space the selected node and its direct neighbors":`Ajustar o espaçamento do nó selecionado e dos vizinhos diretos`,"Space all nodes":`Ajustar o espaçamento de todos os nós`,Arrange:`Organizar`,"Hide details":`Ocultar detalhes`,"Show details":`Mostrar detalhes`,Overview:`Visão geral`,Edges:`Relações`,Groups:`Limites`,"Diagram types":`Tipos de diagrama`,"Search nodes":`Buscar nós`,"Edge animation":`Animação das conexões`,On:`Ativada`,Off:`Desativada`,"System reduced-motion preference is respected":`A preferência do sistema por movimento reduzido é respeitada`,"Matches · {count}":`Resultados · {count}`,"Nodes · {count}":`Nós · {count}`,"No matches. Try a name or responsibility.":`Nenhum resultado. Tente um nome ou responsabilidade.`,Legend:`Legenda`,"Interactive {type}":`{type} interativo`,"Fit canvas":`Ajustar à tela`,"Exit fullscreen":`Sair da tela cheia`,"Enter fullscreen":`Entrar em tela cheia`,"Exit fullscreen (Esc)":`Sair da tela cheia (Esc)`,"Fullscreen is not available in this browser or page":`A tela cheia não está disponível neste navegador ou nesta página`,"Could not exit fullscreen. Press Esc to try again.":`Não foi possível sair da tela cheia. Pressione Esc para tentar novamente.`,"Could not enter fullscreen. Check browser or page permissions and try again.":`Não foi possível entrar em tela cheia. Verifique as permissões do navegador ou da página e tente novamente.`,"{count} relations":`{count} relações`,"Node notes":`Notas do nó`,"Close details":`Fechar detalhes`,Fields:`Campos`,Attributes:`Atributos`,Methods:`Métodos`,Source:`Evidência`,"Start with a node":`Comece por um nó`,"Select a component or a list entry to explore its role, fields, methods and source.":`Selecione um componente ou item da lista para explorar sua função, campos, métodos e fonte.`,"Evidence facts":`Fatos comprovados`,"Unlock the layout before arranging nodes":`Desbloqueie o layout antes de organizar os nós`,Local:`Local`,"Full diagram":`Diagrama completo`,"{scope} arranged: {count} nodes moved":`{scope} organizado: {count} nós movidos`,"Cannot arrange further within the current constraints":`Não é possível organizar mais com as restrições atuais`,"No spacing changes needed":`Nenhum ajuste de espaçamento necessário`,"Generating {format}…":`Gerando {format}…`,"{format} downloaded":`{format} baixado`,"The browser could not generate the PNG":`O navegador não conseguiu gerar o PNG`,"The browser could not read the exported SVG":`O navegador não conseguiu ler o SVG exportado`,"Zoom in":`Ampliar`,"Zoom out":`Reduzir`,Minimap:`Minimapa`,"Graph navigation":`Navegação do grafo`,"Show graph navigation":`Mostrar navegação do grafo`,"Hide graph navigation":`Ocultar navegação do grafo`,More:`Mais`,"Export SVG":`Exportar SVG`,"Export PNG":`Exportar PNG`,Close:`Fechar`,"View details":`Ver detalhes`,Appearance:`Aparência`,"Follow system":`Sistema`,"Restore the original layout and view, and clear search and selection.":`Restaurar o layout e a visualização originais e limpar a busca e a seleção.`,"Reset: original positions and reading view restored":`Redefinido: posições e visualização originais restauradas`,Details:`Detalhes`,Name:`Nome`,Description:`Descrição`,"Name is required":`O nome é obrigatório`,Cancel:`Cancelar`,Save:`Salvar`,"Edit text":`Editar texto`,Evidence:`Evidência`,"Save changes":`Salvar alterações`,"Graph JSON saved":`Graph JSON salvo`,"Saved into this page, its sibling graph.json and SVGs":`Salvo nesta página, no graph.json ao lado e nos SVG`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`Salvo nesta página e no graph.json ao lado; SVG não atualizados: o layout precisa de ajuste`,"Choose the folder containing this page ({page}); edits remain in this page":`Escolha a pasta desta página ({page}); as alterações permanecem nesta página`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON baixado; guarde o arquivo para preservar as alterações`,"Save cancelled; edits remain in this page":`Salvamento cancelado; as alterações permanecem nesta página`,"Save failed; edits remain in this page":`Falha ao salvar; as alterações permanecem nesta página`,"Synchronous message":`Mensagem síncrona`,"Asynchronous message":`Mensagem assíncrona`,"Return message":`Mensagem de retorno`,"Branch conditions unspecified":`Condições dos ramos não indicadas`,"Activation: execution interval; offset means nesting":`Ativação: intervalo de execução; deslocamento indica aninhamento`,"C ID: paired call and return share a color":`ID C: chamada e retorno têm a mesma cor`,"par: concurrent branches; vertical position is not order":`par: ramos paralelos; posição vertical não indica ordem`,"Layout needs adjustment; JSON drafts can still be saved":`Ajuste o layout; o rascunho JSON pode ser salvo`,"Card wash":`Tom suave dos cartões`,yes:`sim`,no:`não`,composition:`composição`,aggregation:`agregação`,inheritance:`herança`,implementation:`implementação`,"Core state":`Estado central`,"Ended state":`Estado encerrado`,"Failed state":`Estado com falha`,"In-progress state":`Estado em andamento`,"In-progress state: warm to cool as it advances":`Estado em andamento: do quente ao frio conforme avança`,Transition:`Transição`,"Self-transition: handled without leaving the state":`Autotransição: evento tratado sem sair do estado`,"Key points":`Pontos-chave`,"Show key points":`Mostrar pontos-chave`,"Hide key points":`Ocultar pontos-chave`,"Component relations":`Relações entre componentes`,"Platform capabilities":`Capacidades da plataforma`,"Engineering layers":`Camadas do projeto`,"Overview text":`Texto da visão geral`,Badges:`Emblemas`,"Badge type":`Tipo de emblema`,"Add badge":`Adicionar emblema`,"Remove badge":`Remover emblema`,Status:`Estado`,Version:`Versão`,Requirement:`Requisito`,"Overview aligned":`Visão geral alinhada`,Section:`Seção`,Cancelled:`Cancelado`,"Component relationship architecture":`Arquitetura de componentes`,"Platform capability architecture":`Arquitetura de capacidades`,"Engineering layer architecture":`Arquitetura em camadas`,"Layout suggestions":`Sugestões de disposição`,"Arrange this view to improve connector clearance and spacing. Existing positions are preserved until then.":`Organize esta vista para melhorar as folgas e os espaçamentos das ligações. As posições atuais são preservadas até lá.`}},yf=[`en`,...Object.keys(vf)];function bf(e,t,n={}){let r=e??`zh-CN`,i=Object.hasOwn(vf,r)?vf[r]:void 0;return(i&&Object.hasOwn(i,t)?i[t]:t).replace(/\{(\w+)\}/g,(e,t)=>Object.hasOwn(n,t)?String(n[t]):e)}function xf(e){let t=new Map,n=e.groups??[],r=(t,i=new Set)=>{if(i.has(t))return[];let a=new Set([...i,t]);return[...e.nodes.filter(e=>e.groupId===t).map(e=>e.id),...n.filter(e=>e.parentId===t).flatMap(e=>r(e.id,a))]},i=e=>{for(let n of e.items??[])if(n.mode)i(n);else for(let i of n.nodeId?[n.nodeId]:r(n.groupId))t.set(i,e.id)};return(e.layout?.sections??[]).forEach(i),t}function Sf(e){if(!ff(e)||e.layout?.overviewConnections===`all`)return e.edges;let t=xf(e);return e.edges.filter(e=>t.has(e.source)&&t.get(e.source)===t.get(e.target))}var Cf=e=>({...e,edges:Sf(e)}),wf=Object.freeze({nodeGap:48,labelGap:24,labelEdgeGap:6,groupHeadingGap:24,groupInset:32,groupGap:48,endpoint:12,parallelGap:24}),Tf=Object.freeze({nodeGap:64,layerGap:80,edgeNodeGap:24,labelWidth:320,headingWidth:360}),Ef=Object.freeze({...wf,nodeGap:32,groupInset:24,groupGap:32});Object.freeze({...Tf,nodeGap:40,layerGap:48});var Df=e=>e?.cardLayout?Ef:wf,Of=.75,kf=.45;Object.freeze({width:1392,height:688});var Af=[`er`,`deployment`,`dataflow`,`usecase`],jf=e=>e===`architecture`||e===`deployment`?[`down`,`right`]:[Af.includes(e)?`right`:`down`],Mf=(e,t)=>(t?.direction??jf(e)[0])===`down`,Nf={light:{neutral:[null,`#fcfcfd`,`#f9f9fb`,`#f0f0f3`,`#e8e8ec`,`#e0e1e6`,`#d9d9e0`,`#cdced6`,`#b9bbc6`,`#8b8d98`,`#80838d`,`#60646c`,`#1c2024`],accent:[null,`#fdfdff`,`#f8f8ff`,`#f0f1fe`,`#e6e7ff`,`#dadcff`,`#cbcdff`,`#b8baf8`,`#9b9ef0`,`#5b5bd6`,`#5151cd`,`#5753c6`,`#272962`],data:[null,`#fafdfe`,`#f2fafb`,`#def7f9`,`#caf1f6`,`#b5e9f0`,`#9ddde7`,`#7dcedc`,`#3db9cf`,`#00a2c7`,`#0797b9`,`#107d98`,`#0d3c48`],warn:[null,`#fffcfc`,`#fff7f7`,`#feebec`,`#ffdbdc`,`#ffcdce`,`#fdbdbe`,`#f4a9aa`,`#eb8e90`,`#e5484d`,`#dc3e42`,`#ce2c31`,`#641723`],guard:[null,`#fefdfb`,`#fefbe9`,`#fff7c2`,`#ffee9c`,`#fbe577`,`#f3d673`,`#e9c162`,`#e2a336`,`#ffc53d`,`#ffba18`,`#ab6400`,`#4f3422`]},dark:{neutral:[null,`#111113`,`#18191b`,`#212225`,`#272a2d`,`#2e3135`,`#363a3f`,`#43484e`,`#5a6169`,`#696e77`,`#777b84`,`#b0b4ba`,`#edeef0`],accent:[null,`#13131e`,`#171625`,`#202248`,`#262a65`,`#303374`,`#3d3e82`,`#4a4a95`,`#5958b1`,`#5b5bd6`,`#6e6ade`,`#b1a9ff`,`#e0dffe`],data:[null,`#0b161a`,`#101b20`,`#082c36`,`#003848`,`#004558`,`#045468`,`#12677e`,`#11809c`,`#00a2c7`,`#23afd0`,`#4ccce6`,`#b6ecf7`],warn:[null,`#191111`,`#201314`,`#3b1219`,`#500f1c`,`#611623`,`#72232d`,`#8c333a`,`#b54548`,`#e5484d`,`#ec5d5e`,`#ff9592`,`#ffd1d9`],guard:[null,`#16120c`,`#1d180f`,`#302008`,`#3f2700`,`#4d3000`,`#5c3d05`,`#714f19`,`#8f6424`,`#ffc53d`,`#ffd60a`,`#ffca16`,`#ffe7b3`]}},Pf=[`blue`,`orange`,`teal`,`crimson`,`violet`,`grass`,`plum`,`indigo`],Ff={light:{blue:[null,`#fbfdff`,`#f4faff`,`#e6f4fe`,`#d5efff`,`#c2e5ff`,`#acd8fc`,`#8ec8f6`,`#5eb1ef`,`#0090ff`,`#0588f0`,`#0d74ce`,`#113264`],orange:[null,`#fefcfb`,`#fff7ed`,`#ffefd6`,`#ffdfb5`,`#ffd19a`,`#ffc182`,`#f5ae73`,`#ec9455`,`#f76b15`,`#ef5f00`,`#cc4e00`,`#582d1d`],teal:[null,`#fafefd`,`#f3fbf9`,`#e0f8f3`,`#ccf3ea`,`#b8eae0`,`#a1ded2`,`#83cdc1`,`#53b9ab`,`#12a594`,`#0d9b8a`,`#008573`,`#0d3d38`],crimson:[null,`#fffcfd`,`#fef7f9`,`#ffe9f0`,`#fedce7`,`#facedd`,`#f3bed1`,`#eaacc3`,`#e093b2`,`#e93d82`,`#df3478`,`#cb1d63`,`#621639`],violet:[null,`#fdfcfe`,`#faf8ff`,`#f4f0fe`,`#ebe4ff`,`#e1d9ff`,`#d4cafe`,`#c2b5f5`,`#aa99ec`,`#6e56cf`,`#654dc4`,`#6550b9`,`#2f265f`],grass:[null,`#fbfefb`,`#f5fbf5`,`#e9f6e9`,`#daf1db`,`#c9e8ca`,`#b2ddb5`,`#94ce9a`,`#65ba74`,`#46a758`,`#3e9b4f`,`#2a7e3b`,`#203c25`],plum:[null,`#fefcff`,`#fdf7fd`,`#fbebfb`,`#f7def8`,`#f2d1f3`,`#e9c2ec`,`#deade3`,`#cf91d8`,`#ab4aba`,`#a144af`,`#953ea3`,`#53195d`],indigo:[null,`#fdfdfe`,`#f7f9ff`,`#edf2fe`,`#e1e9ff`,`#d2deff`,`#c1d0ff`,`#abbdf9`,`#8da4ef`,`#3e63dd`,`#3358d4`,`#3a5bc7`,`#1f2d5c`]},dark:{blue:[null,`#0d1520`,`#111927`,`#0d2847`,`#003362`,`#004074`,`#104d87`,`#205d9e`,`#2870bd`,`#0090ff`,`#3b9eff`,`#70b8ff`,`#c2e6ff`],orange:[null,`#17120e`,`#1e160f`,`#331e0b`,`#462100`,`#562800`,`#66350c`,`#7e451d`,`#a35829`,`#f76b15`,`#ff801f`,`#ffa057`,`#ffe0c2`],teal:[null,`#0d1514`,`#111c1b`,`#0d2d2a`,`#023b37`,`#084843`,`#145750`,`#1c6961`,`#207e73`,`#12a594`,`#0eb39e`,`#0bd8b6`,`#adf0dd`],crimson:[null,`#191114`,`#201318`,`#381525`,`#4d122f`,`#5c1839`,`#6d2545`,`#873356`,`#b0436e`,`#e93d82`,`#ee518a`,`#ff92ad`,`#fdd3e8`],violet:[null,`#14121f`,`#1b1525`,`#291f43`,`#33255b`,`#3c2e69`,`#473876`,`#56468b`,`#6958ad`,`#6e56cf`,`#7d66d9`,`#baa7ff`,`#e2ddfe`],grass:[null,`#0e1511`,`#141a15`,`#1b2a1e`,`#1d3a24`,`#25482d`,`#2d5736`,`#366740`,`#3e7949`,`#46a758`,`#53b365`,`#71d083`,`#c2f0c2`],plum:[null,`#181118`,`#201320`,`#351a35`,`#451d47`,`#512454`,`#5e3061`,`#734079`,`#92549c`,`#ab4aba`,`#b658c4`,`#e796f3`,`#f4d4f4`],indigo:[null,`#11131f`,`#141726`,`#182449`,`#1d2e62`,`#253974`,`#304384`,`#3a4f97`,`#435db1`,`#3e63dd`,`#5472e4`,`#9eb1ff`,`#d6e1ff`]}},If=`MIT License
238
238
 
239
239
  Copyright (c) 2021-2022 Modulz
240
240
  Copyright (c) 2022-Present WorkOS
@@ -256,32 +256,34 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
256
256
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
257
257
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
258
258
  SOFTWARE.
259
- `;function gf(e,t,n){let r=r=>Math.round(parseInt(e.slice(r,r+2),16)*n+parseInt(t.slice(r,r+2),16)*(1-n)).toString(16).padStart(2,`0`);return`#${r(1)}${r(3)}${r(5)}`}var _f=[`orange`,`blue`,`teal`,`violet`,`plum`,`indigo`],vf=Object.fromEntries(Object.entries(ff).map(([e,{neutral:t,accent:n,data:r,warn:i,guard:a}])=>[e,{paper:t[1],surface:t[1],surface2:t[2],ink:t[12],ink2:t[11],ink3:t[11],rule:t[6],ruleSoft:t[4],accent:n[11],accentSoft:n[2],ringCore:n[5],data:r[11],warn:i[11],ringWarn:i[5],guard:a[11],badge:t[3],outline:e===`dark`?t[10]:t[9],card:e===`dark`?t[3]:t[1],groupFill:t[2],groupFillNested:e===`dark`?gf(t[2],t[3],.5):t[1],groupLine:t[5],moduleTones:pf.map(n=>{let r=mf[e][n];return{name:n,chip:r[9],accent:r[10],wash:gf(r[9],e===`dark`?t[3]:t[1],e===`dark`?.09:.05),header:gf(r[9],t[2],e===`dark`?.16:.1)}}),stateTones:(()=>{let n=e===`dark`?10:11,r=mf[e],a=e=>({name:e,fill:r[e][3],stroke:r[e][n]});return{goal:a(`grass`),ended:{name:`slate`,fill:t[3],stroke:t[n]},failed:{name:`red`,fill:i[3],stroke:i[n]},flight:_f.map(a)}})(),edge:e===`dark`?t[10]:t[9],mask:e===`dark`?`rgba(17,17,19,.75)`:`rgba(252,252,253,.75)`,group:t[2]}])),yf=new Set([`failure`]),bf=new Set([`data`,`database`,`dataStore`,`entity`]),Z={title:20,body:16,small:14,edgeLineHeight:24,sequenceHeader:72,sequenceActorHeader:108,erHeader:72,erRow:32,classHeader:68,classRow:28},xf=e=>e.kind===`business`||(e.tags??[]).some(e=>[`core`,`business`].includes(String(e).trim().toLowerCase()));function Sf(e,t){let n=2166136261;for(let t of e)n=Math.imul(n^t.codePointAt(0),16777619);return(n>>>0)%t}var Cf=(e,t)=>(e.tags??[]).some(e=>String(e).trim().toLowerCase()===t);function wf(e){let t=e.nodes.filter(e=>e.kind===`state`);if(e.meta?.diagramType!==`state`||!t.some(xf))return new Map;let n=new Map(e.nodes.map(e=>[e.id,[]]));for(let t of e.edges)t.kind===`transition`&&t.source!==t.target&&n.get(t.source)?.push(t.target);let r=new Set(e.nodes.filter(e=>e.kind===`final`).map(e=>e.id)),i=new Map(e.nodes.filter(e=>e.kind===`initial`).map(e=>[e.id,0]));for(let e of i.keys())for(let t of n.get(e)??[])i.has(t)||i.set(t,i.get(e)+1);let a=e=>Cf(e,`failure`)?`failed`:xf(e)?`goal`:n.get(e.id).every(e=>r.has(e))?`ended`:`flight`,o=e=>i.get(e.id)??1/0,s=t.filter(e=>a(e)===`flight`).sort((e,t)=>Math.sign(o(e)-o(t))||0);return new Map(t.map(e=>[e.id,a(e)===`flight`?{role:`flight`,index:s.indexOf(e)}:{role:a(e)}]))}function Tf(e,t){let n=[...new Set(e.flatMap(e=>[...e.nodes.map(e=>e.module),...e.edges.map(e=>e.module)]).filter(Boolean))].sort(),r=new Map(n.map(e=>[e,t.moduleTones[Sf(e,t.moduleTones.length)]]));return r.stateTones=new Map(e.flatMap(e=>[...wf(e)])),r}function Ef(e){let t=new Map(e);return t.stateTones=e.stateTones,t.plainStates=e.plainStates,t}function Df(e,t){for(let[n,r]of e)e.set(n,{...r,wash:t.card,header:t.surface2});return e.plainStates=!0,e}function Of(e,t){let n=new Map,r=t=>{let n=0,r=e.find(e=>e.id===t.parentId);for(;r&&n<e.length;)n++,r=e.find(e=>e.id===r.parentId);return n};for(let i of e)n.set(i.id,{fill:r(i)%2?t.groupFillNested:t.groupFill,stroke:t.groupLine});return n}var kf={goal:`Core state`,ended:`Ended state`,failed:`Failed state`,flight:`In-progress state`};function Af(e,t,n){let r=n?.get(e.module),i=e.kind===`state`?n?.stateTones?.get(e.id):void 0;if(i){let a=i.role===`flight`?t.stateTones.flight[i.index%t.stateTones.flight.length]:t.stateTones[i.role];return{role:i.role,label:kf[i.role],fill:n.plainStates?t.card:a.fill,stroke:a.stroke,ring:xf(e)?t.ringCore:void 0,toneIndex:i.index,moduleColor:r?.accent,chip:r?.chip,header:r?.header}}let a;a=[`initial`,`final`].includes(e.kind)?{role:e.kind,label:e.kind===`initial`?`Initial state`:`Final state`,fill:e.kind===`initial`?t.ink:t.surface,stroke:t.ink}:yf.has(e.kind)?{role:`warning`,label:`Failure`,fill:t.card,stroke:t.warn,ring:t.ringWarn}:xf(e)?{role:`core`,label:`Core component`,fill:t.card,stroke:t.accent,ring:t.ringCore}:bf.has(e.kind)||[`input`,`output`].includes(e.kind)?{role:`data`,label:`Data / storage`,fill:t.card,stroke:t.data}:[`start`,`end`,`usecase`].includes(e.kind)?{role:`accent`,label:e.kind===`usecase`?`Use case`:`Start / end`,fill:t.card,stroke:t.accent}:{role:`neutral`,label:`Components / actors`,fill:t.card,stroke:t.outline};let o=r&&![`initial`,`final`,`failure`].includes(e.kind);return{...a,fill:o?r.wash:a.fill,stroke:o?r.accent:a.stroke,moduleColor:r?.accent,chip:r?.chip,header:r?.header}}var jf=(e,t)=>e?t.moduleTones[e.index%t.moduleTones.length].accent:void 0;function Mf(e,t,n,r,i,a){if(a)return jf(a,n);if(e.kind===`failure`)return n.warn;if(e.kind===`success`)return n.accent;let o=r?.get(e.module??i?.module??t?.module);return o?o.accent:bf.has(t?.kind)?n.data:n.edge}function Nf(e){let t={bg:`paper`,panel:`surface2`,canvas:`surface`,ink:`ink`,muted:`ink2`,line:`rule`,accent:`accent`,"accent-soft":`accentSoft`,warm:`warn`,guard:`guard`},n={"font-body":`body`,"font-small":`small`,"edge-line-height":`edgeLineHeight`};return Object.fromEntries([...Object.entries(t).map(([t,n])=>[`--${t}`,e[n]]),...Object.entries(n).map(([e,t])=>[`--${e}`,`${Z[t]}px`])])}var Pf={external:`External`,config:`Configuration`,framework:`Framework`,security:`Security`,service:`Service`,business:`Business`,data:`Data`,failure:`Failure`,system:`System`,component:`Component`,database:`Database`,start:`Start`,end:`End`,process:`Process`,decision:`Decision`,input:`Input`,output:`Output`,subprocess:`Subprocess`,actor:`Actor`,participant:`Participant`,entity:`Entity`,device:`Device`,node:`Nodes`,container:`Container`,artifact:`Artifact`,class:`Class`,interface:`Interface`,abstract:`Abstract class`,state:`State`,initial:`Initial`,final:`End`,choice:`Choice`,usecase:`Use case`,dataStore:`Data store`};function Ff(e){let t=Math.min(Z.erHeader,e.size.height*.4),n=Math.min(Z.erRow,(e.size.height-t)/Math.max(1,e.fields?.length??0));return{erHeaderHeight:t,erRowHeight:n,erFontSize:Math.max(Z.small,Math.min(Z.body,n-6)),classHeaderHeight:Z.classHeader+(e.subtitle?24:0),classRowHeight:Z.classRow}}var If=Object.freeze({nodeGap:48,labelGap:24,labelEdgeGap:6,groupHeadingGap:24,groupInset:32,groupGap:48,endpoint:12,parallelGap:24}),Lf=Object.freeze({nodeGap:64,layerGap:80,edgeNodeGap:24,labelWidth:320,headingWidth:360}),Rf=(e,t)=>[...e].reduce((e,n)=>e+t*(/[^\u0000-\u00ff]|[MWmw@%&]/.test(n)?1:/[A-Z]/.test(n)?.8:6.8/12),0),zf=`\\p{Script=Han}\\p{Script=Hiragana}\\p{Script=Katakana}\\u3000-\\u303f\\uff00-\\uffef`,Bf=RegExp(`[${zf}]`,`u`),Vf=RegExp(`[${zf}]|[^${zf}]+`,`gu`),Hf=/(?<=[_./\\\-=,;:|&)>\]}])|(?<=[a-z0-9])(?=[A-Z])/u,Uf=new Set([...`,。、.;:!?)]}〕】》〉」』”’…`]),Wf=new Set([...`([{〔【《〈「『“‘`]),Gf=(e,t)=>!Wf.has([...e].at(-1))&&!Uf.has([...t][0]);function Kf(e,t,n){let r=[];for(let i of e.match(Vf))if(Bf.test(i)||Rf(i,t)<=n)r.push(i);else for(let e of i.split(Hf))r.push(...Rf(e,t)<=n?[e]:e);return r}function qf(e,t,n=Z.body,r=n*1.5){let i=String(e??``);if(!i)return{lines:[],width:0,height:0,lineHeight:r};let a=Math.max(1,t),o=[];for(let e of i.split(/\r?\n/)){let t=``,r=0,i=[],s=()=>{o.push(t),t=``,r=0,i=[]};for(let c of e.match(/\s+|\S+/g)??[]){let e=Rf(c,n);if(t&&e<=a&&r+e>a&&s(),i.push(t.length),e<=a||/^\s/.test(c)){for(let e of c){let i=Rf(e,n);t&&r+i>a&&s(),t+=e,r+=i}continue}for(let e of Kf(c,n,a)){let c=Rf(e,n);if(t&&r+c>a){if(Gf(t,e))s();else{let e=i.length-1;for(;e>=0&&!(i[e]>0&&Gf(t.slice(0,i[e]),t.slice(i[e])));)e--;if(e>=0){let a=i[e];o.push(t.slice(0,a)),t=t.slice(a),r=Rf(t,n),i=i.slice(e).map(e=>e-a)}}}i.push(t.length),t+=e,r+=c}}o.push(t)}return{lines:o,width:Math.ceil(Math.max(...o.map(e=>Rf(e,n)))),height:o.length*r,lineHeight:r}}function Jf(e){let t=e.size.width-30,n=qf(e.label,t,Z.title,26),r=qf(e.subtitle??``,t,Z.body,24);return{title:n,subtitle:r,minHeight:65+n.height+r.height}}function Yf(e,t=Lf.labelWidth){let n=qf(e,t);return{...n,width:n.lines.length?Math.max(24,n.width+12):0,height:n.lines.length?n.height+6:0}}function Xf(e,t){let n=t.map(e=>e.text).join(` `),r=t.flatMap((e,n)=>[...n?[t[n-1].role]:[],...Array.from({length:e.text.length},()=>e.role)]),i=0,a=e.map(e=>{for(;n[i]===`\r`||n[i]===`
259
+ `,Y=Object.freeze({width:1440,margin:42,padding:22,cardPadding:18,cardGap:14,bandGap:28,connectedGap:56,cardRadius:14,sectionRadius:20,title:22,titleLine:28,body:18,bodyLine:26,badge:16,badgeLine:20,sectionTitle:24,sectionLine:30}),Lf=[`white`,`subtle`,`blue`,`green`,`lavender`,`plain`],Rf={paper:`#ffffff`,ink:`#242628`,body:`#566475`,line:`#e1e5e8`,edge:`#7d8798`,white:{fill:`#ffffff`,stroke:`#e1e5e8`},subtle:{fill:`#f5fafc`,stroke:`#e1e5e8`},blue:{fill:`#eef7fd`,stroke:`#87cdee`,band:[`#e5f3fb`,`#cde8f5`],accent:`#327d9f`},green:{fill:`#edf9f5`,stroke:`#a7e5d3`,band:[`#edf9f5`,`#dff4ed`],accent:`#2d8269`},lavender:{fill:`#eaf0fe`,stroke:`#aac6fd`,band:[`#edf2fe`,`#d7e4fc`],accent:`#5375aa`},badge:{fill:`#e9edf0`,ink:`#5f6a7a`},success:{fill:`#e7f5e9`,ink:`#2b763d`}},zf={paper:`#171b22`,ink:`#eef1f5`,body:`#b4bdcb`,line:`#404955`,edge:`#a8b6c9`,white:{fill:`#242b35`,stroke:`#404955`},subtle:{fill:`#222d38`,stroke:`#404955`},blue:{fill:`#223746`,stroke:`#457d9e`,band:[`#243c4d`,`#294b5f`],accent:`#8bc4e0`},green:{fill:`#203c34`,stroke:`#437d6b`,band:[`#243f37`,`#294e43`],accent:`#89cbb2`},lavender:{fill:`#2c354d`,stroke:`#657eaf`,band:[`#2f3c58`,`#364b70`],accent:`#aec6f1`},badge:{fill:`#3b4552`,ink:`#c0c9d6`},success:{fill:`#294c38`,ink:`#a6d9af`}},Bf=e=>parseInt(e.paper.slice(1,3),16)<128?zf:Rf,Vf=(e,t)=>({...Bf(t)[e.overviewTone??`subtle`]??Bf(t).subtle,role:`neutral`,label:`Components / actors`});function Hf(e,t,n){let r=r=>Math.round(parseInt(e.slice(r,r+2),16)*n+parseInt(t.slice(r,r+2),16)*(1-n)).toString(16).padStart(2,`0`);return`#${r(1)}${r(3)}${r(5)}`}var Uf=[`orange`,`blue`,`teal`,`violet`,`plum`,`indigo`],Wf=Object.fromEntries(Object.entries(Nf).map(([e,{neutral:t,accent:n,data:r,warn:i,guard:a}])=>[e,{paper:t[1],surface:t[1],surface2:t[2],ink:t[12],ink2:t[11],ink3:t[11],rule:t[6],ruleSoft:t[4],accent:e===`dark`?`#67c4aa`:`#126b5a`,accentSoft:n[2],ringCore:n[5],data:e===`dark`?`#d9b16c`:`#886019`,warn:i[11],ringWarn:i[5],guard:a[11],badge:t[3],outline:e===`dark`?t[10]:t[9],card:e===`dark`?t[3]:t[1],groupFill:t[2],groupFillNested:e===`dark`?Hf(t[2],t[3],.5):t[1],groupLine:t[5],moduleTones:(e===`dark`?[`#80b5ea`,`#67c4aa`,`#bb9add`,`#d9b16c`,`#9eafa7`]:[`#3677bb`,`#16816d`,`#8c64ac`,`#b27e2a`,`#6a7c75`]).map((n,r)=>({name:[`blue`,`teal`,`purple`,`amber`,`sage`][r],chip:n,accent:n,wash:Hf(n,e===`dark`?t[3]:t[1],.09),header:Hf(n,t[2],e===`dark`?.16:.09)})),sequenceTones:Pf.map(t=>Ff[e][t][10]),stateTones:(()=>{let n=e===`dark`?10:11,r=Ff[e],a=e=>({name:e,fill:r[e][3],stroke:r[e][n]});return{goal:a(`grass`),ended:{name:`slate`,fill:t[3],stroke:t[n]},failed:{name:`red`,fill:i[3],stroke:i[n]},flight:Uf.map(a)}})(),edge:e===`dark`?t[10]:`#747982`,mask:e===`dark`?`rgba(17,17,19,.75)`:`rgba(252,252,253,.75)`,group:t[2]}])),Gf=new Set([`failure`]),Kf=new Set([`data`,`database`,`dataStore`,`entity`]),X={title:20,body:16,small:14,edgeLineHeight:24,sequenceHeader:72,sequenceActorHeader:108,erHeader:72,erRow:32,classHeader:68,classRow:28},qf=e=>e.kind===`business`||(e.tags??[]).some(e=>[`core`,`business`].includes(String(e).trim().toLowerCase()));function Jf(e,t){let n=2166136261;for(let t of e)n=Math.imul(n^t.codePointAt(0),16777619);return(n>>>0)%t}var Yf=(e,t)=>(e.tags??[]).some(e=>String(e).trim().toLowerCase()===t);function Xf(e){let t=e.nodes.filter(e=>e.kind===`state`);if(e.meta?.diagramType!==`state`||!t.some(qf))return new Map;let n=new Map(e.nodes.map(e=>[e.id,[]]));for(let t of e.edges)t.kind===`transition`&&t.source!==t.target&&n.get(t.source)?.push(t.target);let r=new Set(e.nodes.filter(e=>e.kind===`final`).map(e=>e.id)),i=new Map(e.nodes.filter(e=>e.kind===`initial`).map(e=>[e.id,0]));for(let e of i.keys())for(let t of n.get(e)??[])i.has(t)||i.set(t,i.get(e)+1);let a=e=>Yf(e,`failure`)?`failed`:qf(e)?`goal`:n.get(e.id).every(e=>r.has(e))?`ended`:`flight`,o=e=>i.get(e.id)??1/0,s=t.filter(e=>a(e)===`flight`).sort((e,t)=>Math.sign(o(e)-o(t))||0);return new Map(t.map(e=>[e.id,a(e)===`flight`?{role:`flight`,index:s.indexOf(e)}:{role:a(e)}]))}function Zf(e,t){let n=[...new Set(e.flatMap(e=>[...e.nodes.map(e=>e.module),...e.edges.map(e=>e.module)]).filter(Boolean))].sort(),r=new Map(n.map(e=>[e,t.moduleTones[Jf(e,t.moduleTones.length)]]));return r.stateTones=new Map(e.flatMap(e=>[...Xf(e)])),r}function Qf(e){let t=new Map(e);return t.stateTones=e.stateTones,t.plainStates=e.plainStates,t}function $f(e,t){for(let[n,r]of e)e.set(n,{...r,wash:t.card,header:t.surface2});return e.plainStates=!0,e}function ep(e,t){let n=new Map,r=t=>{let n=0,r=e.find(e=>e.id===t.parentId);for(;r&&n<e.length;)n++,r=e.find(e=>e.id===r.parentId);return n};for(let i of e)n.set(i.id,{fill:r(i)%2?t.groupFillNested:t.groupFill,stroke:t.groupLine});return n}var tp={goal:`Core state`,ended:`Ended state`,failed:`Failed state`,flight:`In-progress state`};function np(e,t,n){if(e.overviewText!==void 0||e.badges!==void 0||e.overviewTone!==void 0)return Vf(e,t);let r=n?.get(e.module),i=e.kind===`state`?n?.stateTones?.get(e.id):void 0;if(i){let a=i.role===`flight`?t.stateTones.flight[i.index%t.stateTones.flight.length]:t.stateTones[i.role];return{role:i.role,label:tp[i.role],fill:n.plainStates?t.card:a.fill,stroke:a.stroke,ring:qf(e)?t.ringCore:void 0,toneIndex:i.index,moduleColor:r?.accent,chip:r?.chip,header:r?.header}}let a;a=[`initial`,`final`].includes(e.kind)?{role:e.kind,label:e.kind===`initial`?`Initial state`:`Final state`,fill:e.kind===`initial`?t.ink:t.surface,stroke:t.ink}:Gf.has(e.kind)?{role:`warning`,label:`Failure`,fill:t.card,stroke:t.warn,ring:t.ringWarn}:qf(e)?{role:`core`,label:`Core component`,fill:t.card,stroke:t.accent,ring:t.ringCore}:Kf.has(e.kind)||[`input`,`output`].includes(e.kind)?{role:`data`,label:`Data / storage`,fill:t.card,stroke:t.data}:[`start`,`end`,`usecase`].includes(e.kind)?{role:`accent`,label:e.kind===`usecase`?`Use case`:`Start / end`,fill:t.card,stroke:t.accent}:{role:`neutral`,label:`Components / actors`,fill:t.card,stroke:t.outline};let o=r&&![`initial`,`final`,`failure`].includes(e.kind);return{...a,fill:o?r.wash:a.fill,stroke:o?r.accent:a.stroke,moduleColor:r?.accent,chip:r?.chip,header:r?.header}}var rp=(e,t)=>e?t.sequenceTones[e.index%t.sequenceTones.length]:void 0;function ip(e,t,n,r,i,a){if(i?.overviewTone!==void 0)return Bf(n).edge;if(a)return rp(a,n);if(e.kind===`failure`)return n.warn;if(e.kind===`success`)return n.accent;let o=r?.get(e.module??i?.module??t?.module);return o?o.accent:Kf.has(t?.kind)?n.data:n.edge}function ap(e){let t={bg:`paper`,panel:`surface2`,canvas:`surface`,ink:`ink`,muted:`ink2`,line:`rule`,accent:`accent`,"accent-soft":`accentSoft`,warm:`warn`,guard:`guard`},n={"font-body":`body`,"font-small":`small`,"edge-line-height":`edgeLineHeight`};return Object.fromEntries([...Object.entries(t).map(([t,n])=>[`--${t}`,e[n]]),...Object.entries(n).map(([e,t])=>[`--${e}`,`${X[t]}px`])])}var op={source:`Source code`,code:`Code`,config:`Configuration`,schema:`Schema`,test:`Test`,document:`Document`,framework:`Framework convention`,inference:`Inference`},sp=e=>`${e.file}:${e.lineStart}${e.lineEnd?`-${e.lineEnd}`:``}`,cp={external:`External`,config:`Configuration`,framework:`Framework`,security:`Security`,service:`Service`,business:`Business`,data:`Data`,failure:`Failure`,system:`System`,component:`Component`,database:`Database`,start:`Start`,end:`End`,process:`Process`,decision:`Decision`,input:`Input`,output:`Output`,subprocess:`Subprocess`,actor:`Actor`,participant:`Participant`,entity:`Entity`,device:`Device`,node:`Nodes`,container:`Container`,artifact:`Artifact`,class:`Class`,interface:`Interface`,abstract:`Abstract class`,state:`State`,initial:`Initial`,final:`End`,choice:`Choice`,usecase:`Use case`,dataStore:`Data store`};function lp(e){let t=Math.min(X.erHeader,e.size.height*.4),n=Math.min(X.erRow,(e.size.height-t)/Math.max(1,e.fields?.length??0));return{erHeaderHeight:t,erRowHeight:n,erFontSize:Math.max(X.small,Math.min(X.body,n-6)),classHeaderHeight:X.classHeader+(e.subtitle?24:0),classRowHeight:X.classRow}}var up=(e,t)=>[...e].reduce((e,n)=>e+t*(/[^\u0000-\u00ff]|[MWmw@%&]/.test(n)?1:/[A-Z]/.test(n)?.8:6.8/12),0),dp=`\\p{Script=Han}\\p{Script=Hiragana}\\p{Script=Katakana}\\u3000-\\u303f\\uff00-\\uffef`,fp=RegExp(`[${dp}]`,`u`),pp=RegExp(`[${dp}]|[^${dp}]+`,`gu`),mp=/(?<=[_./\\\-=,;:|&)>\]}])|(?<=[a-z0-9])(?=[A-Z])/u,hp=new Set([...`,。、.;:!?)]}〕】》〉」』”’…`]),gp=new Set([...`([{〔【《〈「『“‘`]),_p=(e,t)=>!gp.has([...e].at(-1))&&!hp.has([...t][0]);function vp(e,t,n){let r=[];for(let i of e.match(pp))if(fp.test(i)||up(i,t)<=n)r.push(i);else for(let e of i.split(mp))r.push(...up(e,t)<=n?[e]:e);return r}function Z(e,t,n=X.body,r=n*1.5){let i=String(e??``);if(!i)return{lines:[],width:0,height:0,lineHeight:r};let a=Math.max(1,t),o=[];for(let e of i.split(/\r?\n/)){let t=``,r=0,i=[],s=()=>{o.push(t),t=``,r=0,i=[]};for(let c of e.match(/\s+|\S+/g)??[]){let e=up(c,n);if(t&&e<=a&&r+e>a&&s(),i.push(t.length),e<=a||/^\s/.test(c)){for(let e of c){let i=up(e,n);t&&r+i>a&&s(),t+=e,r+=i}continue}for(let e of vp(c,n,a)){let c=up(e,n);if(t&&r+c>a){if(_p(t,e))s();else{let e=i.length-1;for(;e>=0&&!(i[e]>0&&_p(t.slice(0,i[e]),t.slice(i[e])));)e--;if(e>=0){let a=i[e];o.push(t.slice(0,a)),t=t.slice(a),r=up(t,n),i=i.slice(e).map(e=>e-a)}}}i.push(t.length),t+=e,r+=c}}o.push(t)}return{lines:o,width:Math.ceil(Math.max(...o.map(e=>up(e,n)))),height:o.length*r,lineHeight:r}}var yp=Object.freeze({pad:14,plate:24,textX:48,tagGap:8,tagPad:8,titleLine:26,subtitleLine:24,sourceLine:20,minHeight:64,maxWidth:360}),bp=e=>e.source?.file?`${e.source.file.split(`/`).at(-1)}:${e.source.lineStart}`:``;function xp(e,t,n){let r=e.lastIndexOf(`:`),i=e.slice(0,r),a=e.slice(r);for(let r=i.length-1;up(e,n)>t&&r>4;r--)e=`${i.slice(0,Math.ceil(r/2))}…${i.slice(i.length-Math.floor(r/2))}${a}`;return e}var Sp=(e,t)=>{let n=bf(t,cp[e.kind]??e.kind);return{text:n,width:Math.ceil(up(n,X.small)+n.length*.6)+2*yp.tagPad}};function Cp(e,t,n=!1,r=0){if(n){let t=Z(e.label,e.size.width-30,X.title,26),n=Z(e.subtitle??``,e.size.width-30,X.body,24);return{title:t,subtitle:n,minHeight:Math.max(100,65+t.height+n.height)}}let i=Sp(e,t),a=e.size.width-yp.textX-yp.pad,o=Z(e.label,a-i.width-yp.tagGap-r,X.title,yp.titleLine),s=Z(e.subtitle??``,a,X.body,yp.subtitleLine),c=Z(xp(bp(e),a,X.small),a,X.small,yp.sourceLine),l=yp.pad+o.height+(s.height?4+s.height:0)+(c.height?6+c.height:0)+yp.pad;return{title:o,subtitle:s,source:c,tag:i,contentHeight:l,minHeight:Math.max(yp.minHeight,l)}}function wp(e,t=Tf.labelWidth){let n=Z(e,t);return{...n,width:n.lines.length?Math.max(24,n.width+12):0,height:n.lines.length?n.height+6:0}}function Tp(e,t){let n=t.map(e=>e.text).join(` `),r=t.flatMap((e,n)=>[...n?[t[n-1].role]:[],...Array.from({length:e.text.length},()=>e.role)]),i=0,a=e.map(e=>{for(;n[i]===`\r`||n[i]===`
260
260
  `;)i++;if(!n.startsWith(e,i))return null;let t=[];for(let n=0;n<e.length;n++){let a=r[i+n];t.at(-1)?.role===a?t.at(-1).text+=e[n]:t.push({text:e[n],role:a})}return i+=e.length,t});for(;n[i]===`\r`||n[i]===`
261
- `;)i++;return i===n.length&&a.every(Boolean)?a:null}function Zf(e,t){let{width:n,height:r}=Yf(e,t);return{width:n,height:r}}function Qf(e){let t=Math.min(Lf.headingWidth,Math.max(1,(e.size?.width??1/0)-2*If.groupInset)),n=qf(e.label,t,Z.small+1.12,22);return{...n,height:12+n.height}}function $f(e,t=0,n=0){return Qf(e).lines.map((e,r)=>Q(t+16,n+26+r*22,e,`group`)).join(``)}function ep(e,t,n=0,r=0){let i=[`loop`,`par`].includes(e.kind)?5:14;return`<rect class="boundary-frame" x="${n}" y="${r}" width="${e.size.width}" height="${e.size.height}" rx="${i}" fill="${t.fill}" stroke="${t.stroke}" stroke-width="1"/>`}function tp(e=``){return String(e).replaceAll(`&`,`&amp;`).replaceAll(`<`,`&lt;`).replaceAll(`>`,`&gt;`).replaceAll(`"`,`&quot;`)}function np(e,t){return{value:String(e??``),width:t}}function Q(e,t,n,r,i=``){let a=n&&typeof n==`object`&&`width`in n,o=Number(i.match(/font-size:([\d.]+)px/)?.[1])||{title:Z.title,"shape-title":Z.title,"participant-title":Z.title,body:Z.body,"field-name":Z.body,"field-type":Z.body,member:Z.body,"entity-title":Z.title}[r]||Z.small;if(n&&typeof n==`object`&&`runs`in n)return`<text x="${e}" y="${t}" class="${r}"${i}>${n.runs.map(e=>{let t=n.colors[e.role];return t?`<tspan style="fill:${t}">${tp(e.text)}</tspan>`:tp(e.text)}).join(``)}</text>`;let s=a?n.value:n;if(a&&qf(s,1/0,o).width>n.width){let e=Math.max(0,n.width-qf(`…`,1/0,o).width);s=e?(qf(s,e,o).lines[0]??``)+`…`:`…`}return`<text x="${e}" y="${t}" class="${r}"${i}>${tp(s)}</text>`}function rp(e,t,n,r,i=1/0,a=``){if(r<=0||i<=0)return``;let o=qf(n,r,Z.title,29),s=qf(a,r,Z.body,23.2),c=Math.min(o.lines.length,Math.max(1,Math.floor(i/o.lineHeight))),l=Math.min(s.lines.length,Math.max(0,Math.floor((i-c*o.lineHeight-5)/s.lineHeight))),u=c*o.lineHeight+(l?5+l*s.lineHeight:0),d=t-u/2,f=(t,n,r,i)=>t.lines.slice(0,n).map((a,o)=>Q(e,r+o*t.lineHeight,a+(o===n-1&&n<t.lines.length?`…`:``),i,` text-anchor="middle"`)).join(``),p=f(o,c,d+22,`shape-title`)+f(s,l,d+c*o.lineHeight+5+18,`body`),m=Math.min(1,i/u);return m<1?`<g transform="translate(${e} ${t}) scale(${m}) translate(${-e} ${-t})">${p}</g>`:p}function ip(e,t={}){return e.map(([e,n])=>`<${e}${Object.entries({...n,...Object.keys(t).length?{class:`node-surface`}:{},...t,...n.fill===void 0?{}:{fill:n.fill}}).map(([e,t])=>` ${e}="${tp(t)}"`).join(``)}/>`).join(``)}var ap=(e,t,n,r=10,i=e.size.height)=>[[`rect`,{x:t,y:n,width:e.size.width,height:i,rx:r}]],op=(e,t,n)=>{let{width:r,height:i}=e.size,a=n+2+5,o=n+i-2-5;return[[`path`,{d:`M${t+12} ${a}Q${t+12} ${n+2} ${t+r/2} ${n+2}T${t+r-12} ${a}V${o}Q${t+r-12} ${n+i-2} ${t+r/2} ${n+i-2}T${t+12} ${o}Z`}],[`ellipse`,{cx:t+r/2,cy:a,rx:r/2-12,ry:5,fill:`none`}]]},sp=[[.08,0],[.92,0],[1,.5],[.92,1],[.08,1],[0,.5]],cp=(e,t,n,r)=>[[`polygon`,{points:r.map(([r,i])=>`${t+r*e.size.width},${n+i*e.size.height}`).join(` `)}]],lp=(e,t,n)=>[[`polygon`,{points:`${t+e.size.width/2},${n} ${t+e.size.width},${n+e.size.height/2} ${t+e.size.width/2},${n+e.size.height} ${t},${n+e.size.height/2}`}]],up=(e,t,n)=>{let r=t+e.size.width/2;return[[`circle`,{cx:r,cy:n+13,r:11}],[`path`,{d:`M${r} ${n+24}v29M${r-20} ${n+35}h40M${r} ${n+53}l-17 23M${r} ${n+53}l17 23`,fill:`none`}]]},dp=e=>({x:e.position.x+e.size.width/2,y:e.position.y+e.size.height/2});function fp(e,t,n=0,r=0){let i=dp(e),a=typeof r==`number`?{left:r,right:r,top:r,bottom:r}:{left:0,right:0,top:0,bottom:0,...r};return t===`left`||t===`right`?{x:e.position.x+(t===`left`?a.left:e.size.width-a.right),y:i.y+n}:{x:i.x+n,y:e.position.y+(t===`top`?a.top:e.size.height-a.bottom)}}function pp(e,t,n=0,r=10){let{x:i,y:a}=e.position,{width:o,height:s}=e.size,c=dp(e),l=Math.max(0,Math.min(r,o/2,s/2));if(t===`left`||t===`right`){let r=c.y+n;if(r<a||r>a+s)return fp(e,t,n);let u=r<a+l?a+l:r>a+s-l?a+s-l:r,d=Math.sqrt(Math.max(0,l*l-(r-u)**2));return{x:t===`left`?i+l-d:i+o-l+d,y:r}}let u=c.x+n;if(u<i||u>i+o)return fp(e,t,n);let d=u<i+l?i+l:u>i+o-l?i+o-l:u,f=Math.sqrt(Math.max(0,l*l-(u-d)**2));return{x:u,y:t===`top`?a+l-f:a+s-l+f}}function mp(e,t,n=0,r=0,i=0){let a=dp(e),o=Math.max(1,e.size.width/2-r),s=Math.max(1,e.size.height/2-i);if(t===`left`||t===`right`){let r=a.y+n;if(Math.abs(n)>s)return fp(e,t,n);let i=o*Math.sqrt(Math.max(0,1-((r-a.y)/s)**2));return{x:a.x+(t===`left`?-i:i),y:r}}let c=a.x+n;if(Math.abs(n)>o)return fp(e,t,n);let l=s*Math.sqrt(Math.max(0,1-((c-a.x)/o)**2));return{x:c,y:a.y+(t===`top`?-l:l)}}function hp(e,t,n=0,r){let i=r.map(([t,n])=>({x:e.position.x+t*e.size.width,y:e.position.y+n*e.size.height})),a=dp(e),o=t===`left`||t===`right`,s=o?a.y+n:a.x+n,c=[];for(let e=0;e<i.length;e+=1){let t=i[e],n=i[(e+1)%i.length],r=o?t.y:t.x,a=o?n.y:n.x;if(s<Math.min(r,a)||s>Math.max(r,a)||r===a)continue;let l=(s-r)/(a-r);c.push((o?t.x:t.y)+l*((o?n.x:n.y)-(o?t.x:t.y)))}if(!c.length)return fp(e,t,n);let l=t===`left`||t===`top`?Math.min(...c):Math.max(...c);return o?{x:l,y:s}:{x:s,y:l}}function gp(e,t,n=0,r=0){let i=e.position.x+e.size.width/2,a=e.position.y+r;return t===`left`?{x:i-20,y:a+35}:t===`right`?{x:i+20,y:a+35}:t===`top`?{x:i,y:a+2}:{x:i+Math.sign(n||1)*Math.min(17,Math.abs(n)),y:a+76}}function _p(e,t=``){return`${t}.heading{font:650 24px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink};letter-spacing:-.5px}
262
- ${t}.meta{font:400 ${Z.small}px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink3}}
263
- ${t}.group{font:650 ${Z.small}px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink2};letter-spacing:.4px}
261
+ `;)i++;return i===n.length&&a.every(Boolean)?a:null}function Ep(e,t){let{width:n,height:r}=wp(e,t);return{width:n,height:r}}function Dp(e){let t=Math.min(Tf.headingWidth,Math.max(1,(e.size?.width??1/0)-2*wf.groupInset)),n=Z(e.label,t,X.small+1.12,22);return{...n,height:12+n.height}}function Op(e,t=0,n=0){return Dp(e).lines.map((e,r)=>Q(t+16,n+26+r*22,e,`group`)).join(``)}function kp(e,t,n=0,r=0){let i=[`loop`,`par`].includes(e.kind)?5:14,a=e.kind===`security`?` stroke-dasharray="6 4"`:``;return`<rect class="boundary-frame" x="${n}" y="${r}" width="${e.size.width}" height="${e.size.height}" rx="${i}" fill="${t.fill}" stroke="${t.stroke}" stroke-width="1"${a}/>`}function Ap(e=``){return String(e).replaceAll(`&`,`&amp;`).replaceAll(`<`,`&lt;`).replaceAll(`>`,`&gt;`).replaceAll(`"`,`&quot;`)}function jp(e,t){return{value:String(e??``),width:t}}function Q(e,t,n,r,i=``){let a=n&&typeof n==`object`&&`width`in n,o=Number(i.match(/font-size:([\d.]+)px/)?.[1])||{title:X.title,"shape-title":X.title,"participant-title":X.title,body:X.body,"field-name":X.body,"field-type":X.body,member:X.body,"entity-title":X.title}[r]||X.small;if(n&&typeof n==`object`&&`runs`in n)return`<text x="${e}" y="${t}" class="${r}"${i}>${n.runs.map(e=>{let t=n.colors[e.role];return t?`<tspan style="fill:${t}">${Ap(e.text)}</tspan>`:Ap(e.text)}).join(``)}</text>`;let s=a?n.value:n;if(a&&Z(s,1/0,o).width>n.width){let e=Math.max(0,n.width-Z(`…`,1/0,o).width);s=e?(Z(s,e,o).lines[0]??``)+`…`:`…`}return`<text x="${e}" y="${t}" class="${r}"${i}>${Ap(s)}</text>`}function Mp(e,t,n,r,i=1/0,a=``){if(r<=0||i<=0)return``;let o=Z(n,r,X.title,29),s=Z(a,r,X.body,23.2),c=Math.min(o.lines.length,Math.max(1,Math.floor(i/o.lineHeight))),l=Math.min(s.lines.length,Math.max(0,Math.floor((i-c*o.lineHeight-5)/s.lineHeight))),u=c*o.lineHeight+(l?5+l*s.lineHeight:0),d=t-u/2,f=(t,n,r,i)=>t.lines.slice(0,n).map((a,o)=>Q(e,r+o*t.lineHeight,a+(o===n-1&&n<t.lines.length?`…`:``),i,` text-anchor="middle"`)).join(``),p=f(o,c,d+22,`shape-title`)+f(s,l,d+c*o.lineHeight+5+18,`body`),m=Math.min(1,i/u);return m<1?`<g transform="translate(${e} ${t}) scale(${m}) translate(${-e} ${-t})">${p}</g>`:p}function Np(e,t={}){return e.map(([e,n])=>`<${e}${Object.entries({...n,...Object.keys(t).length?{class:`node-surface`}:{},...t,...n.fill===void 0?{}:{fill:n.fill}}).map(([e,t])=>` ${e}="${Ap(t)}"`).join(``)}/>`).join(``)}var Pp=(e,t,n,r=10,i=e.size.height)=>[[`rect`,{x:t,y:n,width:e.size.width,height:i,rx:r}]],Fp=(e,t,n)=>{let{width:r,height:i}=e.size,a=n+2+5,o=n+i-2-5;return[[`path`,{d:`M${t+12} ${a}Q${t+12} ${n+2} ${t+r/2} ${n+2}T${t+r-12} ${a}V${o}Q${t+r-12} ${n+i-2} ${t+r/2} ${n+i-2}T${t+12} ${o}Z`}],[`ellipse`,{cx:t+r/2,cy:a,rx:r/2-12,ry:5,fill:`none`}]]},Ip=[[.08,0],[.92,0],[1,.5],[.92,1],[.08,1],[0,.5]],Lp=(e,t,n,r)=>[[`polygon`,{points:r.map(([r,i])=>`${t+r*e.size.width},${n+i*e.size.height}`).join(` `)}]],Rp=(e,t,n)=>[[`polygon`,{points:`${t+e.size.width/2},${n} ${t+e.size.width},${n+e.size.height/2} ${t+e.size.width/2},${n+e.size.height} ${t},${n+e.size.height/2}`}]],zp=(e,t,n)=>{let r=t+e.size.width/2;return[[`circle`,{cx:r,cy:n+13,r:11}],[`path`,{d:`M${r} ${n+24}v29M${r-20} ${n+35}h40M${r} ${n+53}l-17 23M${r} ${n+53}l17 23`,fill:`none`}]]},Bp=e=>({x:e.position.x+e.size.width/2,y:e.position.y+e.size.height/2});function Vp(e,t,n=0,r=0){let i=Bp(e),a=typeof r==`number`?{left:r,right:r,top:r,bottom:r}:{left:0,right:0,top:0,bottom:0,...r};return t===`left`||t===`right`?{x:e.position.x+(t===`left`?a.left:e.size.width-a.right),y:i.y+n}:{x:i.x+n,y:e.position.y+(t===`top`?a.top:e.size.height-a.bottom)}}function Hp(e,t,n=0,r=10){let{x:i,y:a}=e.position,{width:o,height:s}=e.size,c=Bp(e),l=Math.max(0,Math.min(r,o/2,s/2));if(t===`left`||t===`right`){let r=c.y+n;if(r<a||r>a+s)return Vp(e,t,n);let u=r<a+l?a+l:r>a+s-l?a+s-l:r,d=Math.sqrt(Math.max(0,l*l-(r-u)**2));return{x:t===`left`?i+l-d:i+o-l+d,y:r}}let u=c.x+n;if(u<i||u>i+o)return Vp(e,t,n);let d=u<i+l?i+l:u>i+o-l?i+o-l:u,f=Math.sqrt(Math.max(0,l*l-(u-d)**2));return{x:u,y:t===`top`?a+l-f:a+s-l+f}}function Up(e,t,n=0,r=0,i=0){let a=Bp(e),o=Math.max(1,e.size.width/2-r),s=Math.max(1,e.size.height/2-i);if(t===`left`||t===`right`){let r=a.y+n;if(Math.abs(n)>s)return Vp(e,t,n);let i=o*Math.sqrt(Math.max(0,1-((r-a.y)/s)**2));return{x:a.x+(t===`left`?-i:i),y:r}}let c=a.x+n;if(Math.abs(n)>o)return Vp(e,t,n);let l=s*Math.sqrt(Math.max(0,1-((c-a.x)/o)**2));return{x:c,y:a.y+(t===`top`?-l:l)}}function Wp(e,t,n=0,r){let i=r.map(([t,n])=>({x:e.position.x+t*e.size.width,y:e.position.y+n*e.size.height})),a=Bp(e),o=t===`left`||t===`right`,s=o?a.y+n:a.x+n,c=[];for(let e=0;e<i.length;e+=1){let t=i[e],n=i[(e+1)%i.length],r=o?t.y:t.x,a=o?n.y:n.x;if(s<Math.min(r,a)||s>Math.max(r,a)||r===a)continue;let l=(s-r)/(a-r);c.push((o?t.x:t.y)+l*((o?n.x:n.y)-(o?t.x:t.y)))}if(!c.length)return Vp(e,t,n);let l=t===`left`||t===`top`?Math.min(...c):Math.max(...c);return o?{x:l,y:s}:{x:s,y:l}}function Gp(e,t,n=0,r=0){let i=e.position.x+e.size.width/2,a=e.position.y+r;return t===`left`?{x:i-20,y:a+35}:t===`right`?{x:i+20,y:a+35}:t===`top`?{x:i,y:a+2}:{x:i+Math.sign(n||1)*Math.min(17,Math.abs(n)),y:a+76}}function Kp(e,t=``){return`${t}.heading{font:650 24px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink};letter-spacing:-.5px}
262
+ ${t}.meta{font:400 ${X.small}px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink3}}
263
+ ${t}.group{font:650 ${X.small}px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink2};letter-spacing:.4px}
264
264
  ${t}[data-diagram-group-id]>.group{fill:${e.ink2}}
265
- ${t}.group-kind{font:600 ${Z.small}px ui-monospace,monospace;fill:${e.ink2};letter-spacing:.7px}
266
- ${t}.stereotype{font:600 ${Z.small}px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink3};letter-spacing:.6px}
267
- ${t}.title,${t}.participant-title{font:650 ${Z.title}px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink}}
268
- ${t}.shape-title{font:650 ${Z.title}px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink}}
269
- ${t}.body{font:400 ${Z.body}px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink2}}
270
- ${t}.edge,${t}.cardinality{font:500 ${Z.body}px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink2}}
265
+ ${t}.group-kind{font:600 ${X.small}px ui-monospace,monospace;fill:${e.ink2};letter-spacing:.7px}
266
+ ${t}.stereotype{font:600 ${X.small}px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink3};letter-spacing:.6px}
267
+ ${t}.title,${t}.participant-title{font:650 ${X.title}px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink}}
268
+ ${t}.shape-title{font:650 ${X.title}px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink}}
269
+ ${t}.body{font:400 ${X.body}px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink2}}
270
+ ${t}.edge,${t}.cardinality{font:500 ${X.body}px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink2}}
271
271
  ${t}.edge-bg{fill:${e.surface};stroke:none}
272
- ${t}.field-key{font:700 ${Z.small}px ui-monospace,monospace;fill:${e.accent}}
273
- ${t}.field-name{font:500 ${Z.body}px ui-monospace,monospace;fill:${e.ink2}}
274
- ${t}.entity-title{font:650 ${Z.title}px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink}}
275
- ${t}.entity-meta{font:500 ${Z.small}px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink2}}
276
- ${t}.member{font:500 ${Z.body}px ui-monospace,monospace;fill:${e.ink2}}
277
- ${t}.field-type{font:400 ${Z.body}px ui-monospace,monospace;fill:${e.ink3}}
278
- `}function vp(e,t,n,r,i,a,o,s,c=0){let{title:l,subtitle:u}=Jf({...e,size:{...e.size,width:e.size.width-c*2}}),d=l.lines.map((e,r)=>Q(t+15+c,n+68+r*l.lineHeight,e,`title`)).join(``),f=u.lines.map((e,r)=>Q(t+15+c,n+68+l.height+r*u.lineHeight,e,`body`)).join(``),p=xf(e),m=e.appearance?.chip,h=e.kind===`failure`,g=m?`#ffffff`:p?a.accent:bf.has(e.kind)?a.data:h?a.warn:a.ink2,_=m??a.badge,v=bf.has(e.kind)?`<ellipse cx="12" cy="5" rx="8" ry="3"/><path d="M4 5v14c0 4 16 4 16 0V5M4 12c0 4 16 4 16 0"/>`:[`external`,`actor`].includes(e.kind)?`<rect x="6" y="2" width="12" height="20" rx="3"/><path d="M10 18h4"/>`:[`security`,`config`].includes(e.kind)?`<path d="m12 2 8 4v6c0 5-8 10-8 10S4 17 4 12V6Z"/><path d="m8 12 3 3 5-6"/>`:`<rect x="4" y="4" width="16" height="16" rx="3"/><path d="M8 9h8M8 13h8M8 17h4"/>`,y=e.appearance?.moduleColor||e.appearance?.ring?1.5:1;return`<g filter="url(#node-shadow)">${ip(s(e,t,n),{fill:r,stroke:i,"stroke-width":y})}<rect x="${t+15+c}" y="${n+13}" width="25" height="25" rx="7" fill="${_}"/><svg x="${t+20+c}" y="${n+18}" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="${g}" stroke-width="${m?1.75:1.5}">${v}</svg>${Q(t+47+c,n+29,df(o,Pf[e.kind]??e.kind),`stereotype`)}${d}${f}</g>`}var yp=[[.06,0],[.94,0],[1,.16],[1,.84],[.94,1],[.06,1],[0,.84],[0,.16]],bp=[[.08,0],[1,0],[.92,1],[0,1]];function xp(e,t,n){let{width:r,height:i}=e.size;if(e.kind===`external`)return cp(e,t,n,sp);if(e.kind===`security`)return ap(e,t,n,22);if(e.kind===`failure`)return cp(e,t,n,yp);if(e.kind===`config`)return cp(e,t,n,bp);if(e.kind===`business`)return ap(e,t,n,Math.min(28,i/2));let a=ap(e,t,n,[`service`,`component`].includes(e.kind)?16:10);return e.kind===`data`?[...a,[`path`,{d:`M${t+10} ${n}V${n+i}M${t+r-10} ${n}V${n+i}`,fill:`none`}]]:e.kind===`database`?op(e,t,n):e.kind===`framework`?[...a,[`path`,{d:`M${t+16} ${n+6}H${t+r-16}M${t+16} ${n+i-6}H${t+r-16}`,fill:`none`,"stroke-dasharray":`7 5`}]]:a}var Sp=(e,t,n)=>e.kind===`external`?hp(e,t,n,sp):e.kind===`security`?pp(e,t,n,22):e.kind===`failure`?hp(e,t,n,yp):e.kind===`config`?hp(e,t,n,bp):e.kind===`business`?pp(e,t,n,Math.min(28,e.size.height/2)):e.kind===`database`?fp(e,t,n,{left:12,right:12,top:2,bottom:2}):fp(e,t,n),Cp=e=>[`external`,`config`,`failure`].includes(e.kind)?Math.min(28,e.size.width*.08):0,wp={dashedKinds:[`framework`,`optional`],id:`architecture`,label:`Architecture`,nodeKinds:[`external`,`config`,`framework`,`security`,`service`,`business`,`data`,`failure`,`system`,`component`,`database`],groupKinds:[`runtime`,`security`,`ownership`,`external`],edgeKinds:[`request`,`call`,`data`,`success`,`failure`,`framework`,`optional`,`depends`],render:(e,...t)=>vp(e,...t,xp,Cp(e)),outline:xp,anchor:Sp,cardLayout:!0,contentInset:Cp},Tp=.12,Ep=(e,t,n)=>e.kind===`decision`?lp(e,t,n):[`input`,`output`].includes(e.kind)?[[`polygon`,{points:`${t+e.size.width*Tp},${n} ${t+e.size.width},${n} ${t+e.size.width*.88},${n+e.size.height} ${t},${n+e.size.height}`}]]:ap(e,t,n,[`start`,`end`].includes(e.kind)?e.size.height/2:10),Dp=(e,t,n)=>e.kind===`decision`?hp(e,t,n,[[.5,0],[1,.5],[.5,1],[0,.5]]):[`input`,`output`].includes(e.kind)?hp(e,t,n,[[Tp,0],[1,0],[.88,1],[0,1]]):[`start`,`end`].includes(e.kind)?pp(e,t,n,e.size.height/2):fp(e,t,n),Op=e=>{let{width:t,height:n}=e.size,r=[`input`,`output`].includes(e.kind)?t*Tp+12:[`start`,`end`].includes(e.kind)?Math.min(n/2,t/4):18;return{width:e.kind===`decision`?t/2-8:t-r*2,height:e.kind===`decision`?n/2-8:n-12}};function kp(e,t,n,r,i){let{width:a,height:o}=e.size,s=Op(e),c=rp(t+a/2,n+o/2,e.label,s.width,s.height,e.subtitle),l=e.kind===`subprocess`?`<path d="M ${t+11} ${n}V ${n+o}M ${t+a-11} ${n}V ${n+o}" stroke="${i}"/>`:``;return`<g class="shape-label">${ip(Ep(e,t,n),{fill:r,stroke:i,"stroke-width":1.2})}${l}${c}</g>`}var Ap={id:`flowchart`,label:`Flowchart`,nodeKinds:[`start`,`end`,`process`,`decision`,`input`,`output`,`subprocess`],groupKinds:[],edgeKinds:[`flow`,`yes`,`no`,`success`,`failure`],render:kp,outline:Ep,anchor:Dp,textArea:Op,edgeLabel:(e,t)=>e.label??([`yes`,`no`].includes(e.kind)?df(t,e.kind):``)},jp=(e,t,n)=>e.kind===`actor`?up(e,t,n):ap(e,t,n,7,Z.sequenceHeader),Mp=e=>e.kind===`actor`?Z.sequenceActorHeader+(e.subtitle?22:0):Z.sequenceHeader;function Np(e,t,n,r,i,a,o){let s=t+e.size.width/2,c=e.kind===`actor`,l=Mp(e),u=ip(jp(e,t,n),{fill:r,stroke:i,"stroke-width":1.5}),d=c?Q(s,n+98,np(e.label,e.size.width-12),`participant-title`,` text-anchor="middle" style="fill:${a.ink}"`):Q(s,n+(e.subtitle?18:25),df(o,Pf[e.kind]??e.kind),`stereotype`,` text-anchor="middle"`)+Q(s,n+(e.subtitle?41:53),np(e.label,e.size.width-28),`participant-title`,` text-anchor="middle"`),f=e.subtitle?Q(s,n+(c?120:63),np(e.subtitle,e.size.width-28),`body`,` text-anchor="middle"`):``,p=(e.executionRects??[]).map(e=>`<rect class="sequence-execution" data-execution-id="${tp(e.id)}" x="${t+e.x}" y="${n+e.y}" width="${e.width}" height="${e.height}" fill="${gf(e.color,a.surface,.14)}" stroke="${e.color}" stroke-width="1.5"/>`).join(``);return`<g><g class="sequence-head"><g class="${c?`actor-figure`:`participant-head`}">${u}</g>${d}${f}</g><path class="lifeline" d="M ${s} ${n+l}V ${n+e.size.height}" stroke="${a.edge}" stroke-width="1" stroke-dasharray="4 6"/>${p}</g>`}var Pp={dashedKinds:[`return`],markers:{async:{end:`arrow-open`},return:{end:`arrow-open`}},id:`sequence`,label:`Sequence`,nodeKinds:[`actor`,`participant`,`external`,`service`,`database`],groupKinds:[`alt`,`opt`,`loop`,`par`],edgeKinds:[`sync`,`async`,`return`],render:Np,outline:jp,sequence:!0,selectionHeight:Mp,edgeLabel:e=>`${String(e.order).padStart(2,`0`)} · ${e.label??``}`,validateEdge(e,t,n,{requireString:r,sequenceOrders:i}){!Number.isInteger(e?.order)||e.order<1?n.push(`${t}.order must be a positive integer for sequence`):i.has(e.order)?n.push(`${t}.order duplicates ${e.order}`):i.add(e.order),r(e?.label,`${t}.label`,n)}},Fp=(e,t,n)=>ap(e,t,n,9);function Ip(e,t,n,r,i,a,o){let{erHeaderHeight:s,erRowHeight:c,erFontSize:l}=Ff(e),u=np(e.subtitle??df(o,`Entity`),e.size.width-60),d=e.subtitle?Z.body:Z.small,f=e.fields.map((r,i)=>{let o=n+s+i*c,u=o+c/2+l*.35,d=Math.min(e.size.width*.55,qf(r.type,1/0,l).width);return`${r.key===`FK`?`<rect x="${t+1}" y="${o}" width="${e.size.width-2}" height="${c}" fill="${a.surface}"/>`:``}${i?`<path d="M${t} ${o}H${t+e.size.width}" stroke="${a.ruleSoft}"/>`:``}${r.key?Q(t+10,u-1,r.key,`field-key`,` style="fill:${r.key===`FK`?a.accent:a.data}"`):``}${Q(t+45,u,np(r.name,Math.max(1,e.size.width-62-d)),`field-name`,` style="font-size:${l}px"`)}${Q(t+e.size.width-10,u-1,np(r.type,d),`field-type`,` text-anchor="end" style="font-size:${l}px"`)}`}).join(``);return`<g filter="url(#node-shadow)">${ip(Fp(e,t,n),{fill:a.surface2,stroke:i,"stroke-width":e.appearance?.moduleColor||e.appearance?.ring?1.5:1})}<path d="M${t+9} ${n}H${t+e.size.width-9}Q${t+e.size.width} ${n} ${t+e.size.width} ${n+9}V${n+s}H${t}V${n+9}Q${t} ${n} ${t+9} ${n}Z" fill="${e.appearance?.header??r}"/><path d="M${t} ${n+s}H${t+e.size.width}" stroke="${a.rule}"/>${Q(t+13,n+s*.43,np(e.label,e.size.width-26),`entity-title`,` style="font-size:${Math.min(Z.title,s*.38)}px;fill:${a.ink}"`)}${Q(t+13,n+s*.78,u,`entity-meta`,` style="font-size:${Math.min(d,s*.23)}px;fill:${a.ink2}"`)}${Q(t+e.size.width-13,n+s*.78,String(e.fields.length).padStart(2,`0`),`entity-meta`,` text-anchor="end" style="font-size:${Math.min(d,s*.23)}px;fill:${a.ink2}"`)}${f}</g>`}var Lp={id:`er`,label:`ER diagram`,nodeKinds:[`entity`],groupKinds:[],edgeKinds:[`relationship`],render:Ip,outline:Fp,compartments:!0,cardinalities:!0,endpointStub:28,undirected:[`relationship`],validateNode(e,t,n){(!Array.isArray(e?.fields)||e.fields.length===0)&&n.push(`${t}.fields must be a non-empty array for er`)},validateEdge(e,t,n){for(let r of[`sourceCardinality`,`targetCardinality`])[`1`,`0..1`,`*`,`1..*`,`0..*`].includes(e?.[r])||n.push(`${t}.${r} is unsupported`)}},Rp=[[0,.1],[.06,0],[1,0],[1,.9],[.94,1],[0,1]];function zp(e,t,n){let{width:r,height:i}=e.size;return e.kind===`device`?[[`rect`,{x:t+16,y:n,width:r-32,height:i,rx:10}],[`path`,{d:`M${t+r/2} ${n+i-10}V${n+i-5}M${t+r/2-30} ${n+i-5}H${t+r/2+30}`,fill:`none`}]]:e.kind===`node`?[...cp(e,t,n,Rp),[`path`,{d:`M${t} ${n+i*.1}L${t+r*.94} ${n+i*.1}L${t+r} ${n}M${t+r*.94} ${n+i*.1}V${n+i}`,fill:`none`}]]:e.kind===`container`?[...ap(e,t,n,10),[`rect`,{x:t+r-30,y:n+13,width:16,height:11,rx:2,fill:`none`}],[`rect`,{x:t+r-34,y:n+17,width:16,height:11,rx:2,fill:`none`}]]:e.kind===`artifact`?[[`path`,{d:`M${t} ${n}H${t+r-28}L${t+r} ${n+28}V${n+i}H${t}Z`}],[`path`,{d:`M${t+r-28} ${n}V${n+28}H${t+r}`,fill:`none`}]]:e.kind===`database`?op(e,t,n):e.kind===`external`?cp(e,t,n,sp):e.kind===`service`?ap(e,t,n,16):ap(e,t,n,10)}var Bp=(e,t,n)=>e.kind===`device`?fp(e,t,n,{left:16,right:16,top:0,bottom:0}):e.kind===`node`?hp(e,t,n,Rp):e.kind===`database`?fp(e,t,n,{left:12,right:12,top:2,bottom:2}):e.kind===`external`?hp(e,t,n,sp):e.kind===`service`?pp(e,t,n,16):fp(e,t,n),Vp=e=>e.kind===`external`?Math.min(28,e.size.width*.08):e.kind===`device`?12:0,Hp={id:`deployment`,label:`Deployment`,nodeKinds:[`device`,`node`,`container`,`artifact`,`service`,`database`,`external`],groupKinds:[`host`,`network`,`cluster`,`namespace`],edgeKinds:[`deploy`,`network`,`depends`],render:(e,...t)=>vp(e,...t,zp,Vp(e)),outline:zp,anchor:Bp,cardLayout:!0,contentInset:Vp},Up=(e,t,n)=>ap(e,t,n,9);function Wp(e,t,n,r,i,a){let o=e.attributes??[],s=e.methods??[],{classHeaderHeight:c,classRowHeight:l}=Ff(e),u=o.length?o.length*l+13:30,d=n+c,f=d+u,p=e.kind===`interface`?`«interface»`:e.kind===`abstract`?`«abstract»`:``,m=e.size.width-26,h=o.map((e,n)=>Q(t+13,d+6+l/2+Z.body*.35+n*l,np(e,m),`member`)).join(``),g=s.map((e,n)=>Q(t+13,f+6+l/2+Z.body*.35+n*l,np(e,m),`member`)).join(``);return`<g filter="url(#node-shadow)">${ip(Up(e,t,n),{fill:a.surface2,stroke:i,"stroke-width":e.appearance?.moduleColor||e.appearance?.ring?1.5:1})}<path d="M${t+9} ${n}H${t+e.size.width-9}Q${t+e.size.width} ${n} ${t+e.size.width} ${n+9}V${d}H${t}V${n+9}Q${t} ${n} ${t+9} ${n}Z" fill="${e.appearance?.header??r}"/><rect x="${t+1}" y="${f}" width="${e.size.width-2}" height="${Math.max(0,e.size.height-c-u-1)}" fill="${a.group}"/>${p?Q(t+13,n+24,p,`stereotype`):``}${Q(t+13,n+(p?50:Z.classHeader/2+7),np(e.label,m),`shape-title`)}${e.subtitle?Q(t+13,n+c-10,np(e.subtitle,m),`body`):``}<path d="M${t} ${d}H${t+e.size.width}M${t} ${f}H${t+e.size.width}" stroke="${a.rule}"/>${h}${g}</g>`}var Gp={dashedKinds:[`implementation`,`dependency`],id:`class`,label:`Class diagram`,nodeKinds:[`class`,`interface`,`abstract`],groupKinds:[],edgeKinds:[`association`,`inheritance`,`implementation`,`composition`,`aggregation`,`dependency`],render:Wp,outline:Up,compartments:!0,undirected:[`association`,`composition`,`aggregation`],markers:{inheritance:{end:`triangle`},implementation:{end:`triangle`},composition:{start:`diamond-filled`},aggregation:{start:`diamond-open`},dependency:{end:`arrow-open`}},edgeLabel:(e,t)=>e.label??([`composition`,`aggregation`,`inheritance`,`implementation`].includes(e.kind)?df(t,e.kind):``),validateEdge(e,t,n){for(let r of[`source`,`target`]){let i=e[`${r}Multiplicity`];if(i===void 0)continue;let a=typeof i==`string`&&/^(\d+)(?:\.\.(\d+|\*))?$/.exec(i);i!==`*`&&(!a||a[2]&&a[2]!==`*`&&Number(a[2])<Number(a[1]))&&n.push(`${t}.${r}Multiplicity must be *, a non-negative integer, or an ascending range`),[`inheritance`,`implementation`,`dependency`].includes(e.kind)&&n.push(`${t}.${r}Multiplicity is only supported on associations, aggregation and composition`)}},endpointLabels(e,t){return[`source`,`target`].flatMap(n=>{let r=e[`${n}Multiplicity`];if(r===void 0)return[];let i=n===`source`?t[0]:t.at(-1),a=n===`source`?t[1]:t.at(-2),o=Zf(r,1/0),s=i.y===a.y,c=Math.sign(s?a.x-i.x:a.y-i.y),l=s?{x:i.x+c*(24+o.width/2),y:i.y-6-o.height/2}:{x:i.x+6+o.width/2,y:i.y+c*(24+o.height/2)};return[{role:n,label:r,labelPoint:l,labelBox:{x:l.x-o.width/2,y:l.y-o.height/2,...o}}]})}},Kp=e=>e.subtitle?14:e.size.width/2,qp=[`entry`,`do`,`exit`],Jp={side:16,pad:8,line:20,keyWidth:64};function Yp(e){let t=e.kind===`state`?qp.filter(t=>typeof e[t]==`string`&&e[t].trim()).map(t=>({key:t,lines:qf(e[t],e.size.width-2*Jp.side-Jp.keyWidth,Z.small,Jp.line).lines})):[];return{rows:t,height:t.length?t.reduce((e,t)=>e+t.lines.length,0)*Jp.line+2*Jp.pad:0}}var Xp=2*Jp.side+Jp.keyWidth,Zp=e=>{let{height:t}=Yp(e);return t?{x:Jp.side,y:e.size.height-t,width:e.size.width-2*Jp.side,height:t}:null},Qp=(e,t,n)=>[`initial`,`final`].includes(e.kind)?[[`circle`,{cx:t+Kp(e),cy:n+e.size.height/2,r:e.kind===`initial`?12:13}]]:e.kind===`choice`?lp(e,t,n):ap(e,t,n,12),$p=(e,t,n)=>{if([`initial`,`final`].includes(e.kind)){let r=e.kind===`initial`?12:13,i=Kp(e)-e.size.width/2;return mp({...e,position:{...e.position,x:e.position.x+i}},t,n-([`top`,`bottom`].includes(t)?i:0),e.size.width/2-r,e.size.height/2-r)}return e.kind===`choice`?hp(e,t,n,[[.5,0],[1,.5],[.5,1],[0,.5]]):fp(e,t,n)},em=e=>{if([`initial`,`final`].includes(e.kind)&&e.subtitle)return{x:42,y:8,width:e.size.width-50,height:e.size.height-16};let t=Yp(e).height,n={width:e.kind===`choice`?e.size.width/2-8:e.size.width-24,height:e.kind===`choice`?e.size.height/2-8:e.size.height-16-t};return t?{x:12,y:8,...n}:n};function tm(e,t,n,r,i){let{rows:a,height:o}=Yp(e);if(!a.length)return``;let s=n+e.size.height-o,c=0;return`<path d="M${t} ${s}H${t+e.size.width}" fill="none" stroke="${r}" stroke-opacity=".35"/>${a.map(e=>e.lines.map((n,r)=>{let a=s+Jp.pad+c++*Jp.line+15;return(r?``:Q(t+Jp.side,a,`${e.key} /`,`field-key`))+Q(t+Jp.side+Jp.keyWidth,a,n,`entity-meta`,` style="fill:${i.ink}"`)}).join(``)).join(``)}`}function nm(e,t,n,r,i,a){let o=t+e.size.width/2,s=n+e.size.height/2;if([`initial`,`final`].includes(e.kind)){let r=em(e),o=e.kind===`final`;return`<g class="state-dot">${ip(Qp(e,t,n),{fill:o?a.surface:i,stroke:i,"stroke-width":1})}${o?`<circle cx="${t+Kp(e)}" cy="${s}" r="8" fill="${i}"/>`:``}</g>${e.subtitle?rp(t+r.x+r.width/2,s,e.label,r.width,r.height,e.subtitle):``}`}let c=em(e),l=n+(e.size.height-Yp(e).height)/2;return`<g class="shape-label">${ip(Qp(e,t,n),{fill:r,stroke:i,"stroke-width":1.2})}${rp(o,l,e.label,c.width,c.height,e.subtitle)}${tm(e,t,n,i,a)}</g>`}var rm=e=>[{text:e.label,role:`trigger`},...e.guard?[{text:`[${e.guard}]`,role:`guard`}]:[],...e.action?[{text:`/ ${e.action}`,role:`effect`}]:[]].filter(e=>e.text),im={id:`state`,label:`State diagram`,nodeKinds:[`initial`,`state`,`final`,`choice`],groupKinds:[],edgeKinds:[`transition`],render:nm,outline:Qp,anchor:$p,textArea:em,activityArea:Zp,curvedSelfLoops:!0,markers:{transition:{end:`arrow-open`}},edgeLabel:e=>rm(e).map(e=>e.text).join(` `),edgeLabelParts:rm,labelRoleColors:{trigger:`ink`,guard:`guard`},legend:{neutral:`State`,core:`Core state`,goal:`Core state`,ended:`Ended state`,failed:`Failed state`,flight:`In-progress state: warm to cool as it advances`,solid:`Transition`},validateNode(e,t,n){for(let r of qp)e?.[r]!==void 0&&(typeof e[r]!=`string`||!e[r].trim()?n.push(`${t}.${r} must be a non-empty string`):e.kind!==`state`&&n.push(`${t}.${r} is only supported on state nodes`))},validateEdge(e,t,n){for(let r of[`guard`,`action`])e?.[r]!==void 0&&typeof e[r]!=`string`&&n.push(`${t}.${r} must be a string`)}},am=e=>Math.max(0,(e.size.height-104-(e.subtitle?24:0))/2),om=e=>({width:e.size.width/Math.SQRT2-8,height:e.size.height/Math.SQRT2-8}),sm=(e,t,n)=>e.kind===`actor`?up(e,t,n+am(e)):[[`ellipse`,{cx:t+e.size.width/2,cy:n+e.size.height/2,rx:e.size.width/2,ry:e.size.height/2}]],cm=(e,t,n)=>e.kind===`actor`?gp(e,t,n,am(e)):mp(e,t,n);function lm(e,t,n,r,i,a){let o=t+e.size.width/2;if(e.kind===`actor`)return`<g><g class="actor-figure">${ip(sm(e,t,n),{fill:r,stroke:i,"stroke-width":1.5})}</g>${Q(o,n+am(e)+98,np(e.label,e.size.width-12),`shape-title`,` text-anchor="middle" style="fill:${a.ink}"`)}${e.subtitle?Q(o,n+am(e)+122,np(e.subtitle,e.size.width-12),`body`,` text-anchor="middle"`):``}</g>`;let s=om(e);return`<g class="shape-label">${ip(sm(e,t,n),{fill:r,stroke:i,"stroke-width":1.2})}${rp(o,n+e.size.height/2,e.label,s.width,s.height,e.subtitle)}</g>`}var um={dashedKinds:[`include`,`extend`],id:`usecase`,label:`Use cases`,nodeKinds:[`actor`,`usecase`],groupKinds:[`system`],edgeKinds:[`association`,`include`,`extend`],render:lm,outline:sm,anchor:cm,textArea:om,undirected:[`association`],markers:{include:{end:`arrow-open`},extend:{end:`arrow-open`}},edgeLabel:e=>{let t={include:`«include»`,extend:`«extend»`}[e.kind];return t?e.label&&e.label!==e.kind?`${t} · ${e.label}`:t:e.label??``}},dm=(e,t,n)=>e.kind===`dataStore`?[[`path`,{d:`M${t+e.size.width} ${n}H${t}V${n+e.size.height}H${t+e.size.width}M${t+12} ${n}V${n+e.size.height}`}]]:ap(e,t,n,e.kind===`process`?24:10),fm=e=>({width:e.size.width-32,height:e.size.height-20});function pm(e,t,n,r,i){let a=fm(e);return`<g class="shape-label">${ip(dm(e,t,n),{fill:r,stroke:i,"stroke-width":1.2})}${rp(t+e.size.width/2,n+e.size.height/2,e.label,a.width,a.height,e.subtitle)}</g>`}var mm=[wp,Ap,Pp,Lp,Hp,Gp,im,um,{id:`dataflow`,label:`Data flow`,nodeKinds:[`external`,`process`,`dataStore`],groupKinds:[`ownership`,`external`],edgeKinds:[`data`],render:pm,outline:dm,textArea:fm,anchor:(e,t,n)=>e.kind===`process`?pp(e,t,n,24):fp(e,t,n)}],hm=mm.map(e=>e.id),gm=Object.fromEntries(mm.map(e=>[e.id,e.label])),_m=new Map(mm.map(e=>[e.id,e]));if(_m.size!==mm.length)throw Error(`Duplicate diagram type`);var vm=e=>e?.meta?.diagramType??`architecture`,$=(e=`architecture`)=>_m.get(e),ym=(e,t)=>!($(t).undirected??[]).includes(e.kind),bm=(e,t)=>(t!==`sequence`||e.kind!==`sync`)&&([`framework`,`inference`].includes(e.evidence)||($(t).dashedKinds??[]).includes(e.kind)),xm=(e,t)=>Object.fromEntries(Object.entries($(e)?.labelRoleColors??{}).map(([e,n])=>[e,t[n]])),Sm=(e,t)=>({start:null,end:ym(e,t)?`arrow`:null,...$(t).markers?.[e.kind]});function Cm(e,t,n=0,r=0,i,a,o){let s=$(t);if(!s)throw Error(`Unsupported diagram type: ${t}`);let c=Af(e,i,o),{fill:l,stroke:u,ring:d}=c,f=e.position.x+n,p=e.position.y+r,m=s.render({...e,appearance:c},f,p,l,u,i,a),h=d&&![`actor`,`initial`,`final`].includes(e.kind)?ip(s.outline(e,f,p),{class:`role-ring`,fill:`none`,stroke:d,"stroke-width":5}):``,g=[e.label,e.subtitle,...(e.fields??[]).map(e=>`${e.key?e.key+` `:``}${e.name}: ${e.type}${e.nullable===void 0?``:` (nullable: ${e.nullable})`}`),...e.attributes??[],...e.methods??[]].filter(Boolean).join(`
279
- `);return`<g data-diagram-node-id="${tp(e.id)}" class="node-drawing${xf(e)&&!s.compartments?` core-node`:``}"><title>${tp(g)}</title>${h}${m}</g>`}function wm(e,t){let n=$(t);return{markup:ip(n.outline(e,0,0)),height:n.selectionHeight?.(e)??e.size.height}}function Tm(e,t,n,r,i,a,o,s,c){let l=$(t),u={...e,position:{x:n,y:r},size:{width:i,height:a}};return ip(l.outline(u,n,r),{fill:o,stroke:s,"stroke-width":c})}function Em({data:e,pulse:t}){let{markup:n,height:r}=wm(e,e.diagramType);return(0,x.jsxs)(`svg`,{className:`selection-feedback selection-outline selection-node-outline ${t>0?`is-animated`:``}`,"data-selection-pulse":t,viewBox:`0 0 ${e.size.width} ${r}`,style:{height:r},"aria-hidden":`true`,children:[(0,x.jsx)(`g`,{className:`selection-node-halo`,dangerouslySetInnerHTML:{__html:n}}),(0,x.jsx)(`g`,{className:`selection-node-shine`,dangerouslySetInnerHTML:{__html:n}})]})}var Dm=(e,t,n=0)=>e.x<t.x+t.width+n&&e.x+e.width>t.x-n&&e.y<t.y+t.height+n&&e.y+e.height>t.y-n,Om=e=>e.points.slice(1).map((t,n)=>{let r=e.points[n];return{x:Math.min(r.x,t.x)-6,y:Math.min(r.y,t.y)-6,width:Math.abs(t.x-r.x)+12,height:Math.abs(t.y-r.y)+12}}),km=(e,t)=>e?.id??String(t);function Am(e){let t=new Map((e.groups??[]).map(e=>[e.id,e])),n=new Map,r=(e,n=new Set)=>{if(!e.parentId||n.has(e.id))return``;n.add(e.id);let i=t.get(e.parentId);return i?r(i,n)+`${encodeURIComponent(i.id)}:${encodeURIComponent(e.parentOperandId)}/`:``};for(let e of t.values())if(Array.isArray(e.operands))for(let[t,i]of e.operands.entries())for(let a of Array.isArray(i?.edgeIds)?i.edgeIds:[])n.set(a,r(e)+`${encodeURIComponent(e.id)}:${encodeURIComponent(km(i,t))}`);return n}function jm(e,t,n,r,i=new Set){if(i.has(e.id))return[];let a=new Set(i).add(e.id),o=r.filter(r=>r.parentId===e.id&&r.parentOperandId===km(t,n));return[...t.edgeIds??[],...o.flatMap(e=>(e.operands??[]).flatMap((t,n)=>jm(e,t,n,r,a)))]}function Mm(e){let t=[],n=new Map(e.edges.map(e=>[e.id,e])),r=e.groups??[],i=new Map;for(let a of r){let o=`group ${a.id}.operands`;if(e.meta.diagramType!==`sequence`){(a.operands!==void 0||a.parentOperandId!==void 0||a.loop!==void 0)&&t.push(`${o} is only supported for sequence`);continue}if(a.parentId!==void 0||a.parentOperandId!==void 0){let e=r.find(e=>e.id===a.parentId);(!e||!Array.isArray(e.operands)||!e.operands.some((e,t)=>km(e,t)===a.parentOperandId))&&t.push(`group ${a.id} unknown parent operand ${a.parentId}/${a.parentOperandId}`)}let s=new Set([a.id]),c=r.find(e=>e.id===a.parentId);for(;c;){if(s.has(c.id)){t.push(`group ${a.id} parent cycle at ${c.id}`);break}s.add(c.id),c=r.find(e=>e.id===c.parentId)}if(a.operands===void 0&&a.kind!==`par`&&a.loop===void 0&&a.parentId===void 0)continue;let l=[`alt`,`par`].includes(a.kind);if(!Array.isArray(a.operands)||(l?a.operands.length<2:a.operands.length!==1)){t.push(`${o} needs ${l?`at least two branches`:`exactly one branch`}`);continue}a.kind===`loop`?(!Number.isInteger(a.loop?.min)||a.loop.min<0||!(a.loop?.max===`*`||Number.isInteger(a.loop?.max)&&a.loop.max>=a.loop.min))&&t.push(`group ${a.id}.loop needs a non-negative min and max >= min (or *)`):a.loop!==void 0&&t.push(`group ${a.id}.loop is only supported for loop`);let u=new Set;for(let[e,s]of a.operands.entries()){let c=`${o}[${e}] (${String(s?.id??e)})`;if(!s||typeof s!=`object`||Array.isArray(s)){t.push(`${c} must be an object`);continue}s.id!==void 0&&(typeof s.id!=`string`||!s.id.trim())&&t.push(`${c}.id must be a non-empty string`),a.kind!==`alt`&&s.id===void 0&&t.push(`${c}.id is required`);let l=km(s,e);u.has(l)&&t.push(`${c} duplicate operand id`),u.add(l);let d=a.kind===`par`?`label`:`guard`;(typeof s[d]!=`string`||!s[d].trim())&&t.push(`${c}.${d} must be a non-empty string`),a.kind===`alt`&&s.guard?.trim?.()===`else`&&e!==a.operands.length-1&&t.push(`${c} else must be last and unique`),s.body!==void 0&&(typeof s.body!=`string`||!s.body.trim())&&t.push(`${c}.body must be a non-empty string`);let f=r.filter(e=>e.parentId===a.id&&e.parentOperandId===l);if(!Array.isArray(s.edgeIds)||!s.edgeIds.length&&!s.body?.trim?.()&&!f.length){t.push(`${c}.edgeIds must be an array with messages, body or a child fragment`);continue}for(let e of s.edgeIds)(typeof e!=`string`||!n.has(e))&&t.push(`${c} unknown edge ${String(e)}`),i.has(e)&&t.push(`${c} duplicate edge ${e}, already in ${i.get(e)}`),i.set(e,`${a.id}/${l}`)}}if(t.length)return t;for(let e of r){let i=-1/0;for(let[a,o]of(e.operands??[]).entries()){let s=jm(e,o,a,r).map(e=>n.get(e)?.order).filter(Number.isFinite);s.length&&Math.min(...s)<=i&&t.push(`group ${e.id}.operands order ranges must be ordered and non-interleaving`),s.length&&(i=Math.max(...s))}}return t}function Nm(e,t){let n=0,r=t.find(t=>t.id===e.parentId),i=new Set([e.id]);for(;r&&!i.has(r.id);)i.add(r.id),n++,r=t.find(e=>e.id===r.parentId);return n}function Pm(e,t=[],n){let r=e.x+e.width/2,i=e.y+e.height/2,a=t.filter(e=>e.position&&e.size&&r>=e.position.x&&r<=e.position.x+e.size.width&&i>=e.position.y&&i<=e.position.y+e.size.height).sort((e,n)=>Nm(n,t)-Nm(e,t))[0];return a?n?.get(a.id)?.fill:void 0}var Fm=e=>qf(e.label,Math.min(Lf.headingWidth,Math.max(1,(e.size?.width??1/0)-88)),15.12,22);function Im(e,t){let n={...e.position,...e.size},r=Fm(e),i={width:Math.min(r.width+16,n.width-88),height:Math.max(24,r.height+8),lines:r.lines};return[n.x+16,...t.map(e=>e.x+e.width+12)].map(e=>({x:e,y:n.y+6,...i})).find(e=>e.x>=n.x+16&&e.x+e.width<=n.x+n.width-64&&!t.some(t=>Dm(e,t,4)))}function Lm(e,t,n,r,i){let a={...e.position,...e.size},o=a.y+a.height,s=[...t.entries()],c=e=>e.points.some(e=>e.x>=a.x&&e.x<=a.x+a.width&&e.y>a.y&&e.y<a.y+a.height),l=s.filter(([,e])=>c(e)).map(([,e])=>e),u=[`group ${e.id}: alt branch conditions are unspecified (operands missing)`],d=[...i?[i]:[],{x:a.x+a.width-52,y:a.y,width:52,height:36},...s.flatMap(([,e])=>[e.labelBox,...Om(e)]),...r],f=qf(df(n,`Branch conditions unspecified`),Math.max(1,a.width-32),14,20),p={width:f.width+8,height:f.height+4},m=[a.x+16,...d.map(e=>e.x+e.width+8),a.x+a.width-p.width-16],h=Math.min(...l.map(e=>Math.min(e.labelBox.y,...e.points.map(e=>e.y)))),g=[a.y+6,h,...l.map(e=>e.points[0].y-p.height-6)].flatMap(e=>m.map(t=>({x:t,y:e,...p}))).find(e=>e.x>=a.x+8&&e.x+e.width<=a.x+a.width-8&&e.y>=a.y+6&&e.y+e.height<=o-6&&!d.some(t=>Dm(e,t,2)));return g||u.push(`layout: group ${e.id} has no room for guard 1; shorten the guard or adjust the frame/participant spacing`),{warnings:u,guards:[{...g??{x:a.x+16,y:a.y+38,...p},lines:f.lines,operandId:km(null,0)}]}}function Rm(e,t,n,r=[],i=[]){let a=[],o=[],s=[],c=[],l=[],u={...e.position,...e.size},d=u.y+u.height,f=r.find(t=>t.id===e.parentId);f&&!(u.x>=f.position.x+8&&u.x+u.width<=f.position.x+f.size.width-8&&u.y>=f.position.y+36&&d<=f.position.y+f.size.height-8)&&a.push(`layout: group ${e.id} exceeds parent ${f.id}`);let p=new Set,m=f;for(;m&&!p.has(m.id);)p.add(m.id),m=r.find(e=>e.id===m.parentId);for(let t of r)if(t.id!==e.id&&!p.has(t.id)){let n=t,i=new Set;for(;n?.parentId&&!i.has(n.id)&&(i.add(n.id),n.parentId!==e.id);)n=r.find(e=>e.id===n.parentId);if(n?.parentId===e.id)continue;Dm(u,{...t.position,...t.size})&&a.push(`layout: groups ${e.id} and ${t.id} cross without nesting`)}if(e.kind!==`alt`&&!e.operands)return{errors:a,warnings:o,guards:s,bodies:c,separators:l};let h=Im(e,i);h||a.push(`layout: group ${e.id} has no room for heading; adjust its frame`);let g=r.filter(t=>t.parentId===e.id);if(e.kind===`alt`&&e.operands===void 0&&!e.parentId&&!g.length){let r=Lm(e,t,n,i,h);return{errors:a,warnings:r.warnings,guards:r.guards,separators:[],heading:h}}if(!e.operands)return{errors:a,warnings:o,guards:s,bodies:c,separators:l};let _=Math.max(u.y+36,h?h.y+h.height+6:0),v=e.operands.map((n,i)=>{let a=g.filter(e=>e.parentOperandId===km(n,i)).map(e=>({...e.position,...e.size,id:e.id})),o=jm(e,n,i,r).map(e=>t.get(e)).filter(Boolean),s=[...a,...o.flatMap(e=>[e.labelBox,...Om(e)])];return{operand:n,selected:o,childFrames:a,boxes:s,top:Math.min(...s.map(e=>e.y)),bottom:Math.max(...s.map(e=>e.y+e.height))}});for(let e=1;e<v.length;e++){let t=v[e-1],n=v[e];l.push(Number.isFinite(t.bottom)&&Number.isFinite(n.top)?(t.bottom+n.top)/2:_+(d-_)*e/v.length)}let y=new Set(e.operands.flatMap((t,n)=>jm(e,t,n,r)));for(let[n,r]of t)r.points.some(e=>e.x>=u.x&&e.x<=u.x+u.width&&e.y>u.y&&e.y<d)&&!y.has(n)&&a.push(`layout: group ${e.id} omits enclosed message ${n}`);let b=[...t.values()].flatMap(e=>[e.labelBox,...Om(e)]);return b.push(...i),v.forEach(({operand:t,selected:n,childFrames:r,top:i},o)=>{let f=o?l[o-1]:_,p=l[o]??d;for(let i of[...r,...n.flatMap(e=>[e.labelBox,...Om(e)])])(i.x<u.x+4||i.x+i.width>u.x+u.width-4||i.y<f+2||i.y+i.height>p-2)&&a.push(`layout: group ${e.id} cannot contain operand ${km(t,o)}${i.id?` child ${i.id}`:``}; enlarge or reposition its frame`);let m=e.kind===`par`?t.label:`${e.kind===`loop`?`${e.loop.min}..${e.loop.max} `:``}[${t.guard}]`,h=[...b,...r,...s,...c],g=(n,r,l)=>{let d=r===`body`?16:14,f=r===`body`?24:20,m=qf(n,Math.min(Lf.labelWidth,Math.max(1,u.width-40)),d,f),g={width:m.width+8,height:m.height+4},_=[u.x+16,...h.map(e=>e.x+e.width+8),u.x+u.width-g.width-16],v=[l,...h.map(e=>e.y+e.height+8),i-g.height-8].filter(Number.isFinite).sort((e,t)=>e-t).flatMap(e=>_.map(t=>({x:t,y:e,...g}))).find(e=>e.x>=u.x+8&&e.x+e.width<=u.x+u.width-8&&e.y>=l&&e.y+e.height<=p-6&&!h.some(t=>Dm(e,t,2)));return v?(v.lines=m.lines,v.fontSize=d,v.lineHeight=f,v.operandId=km(t,o),h.push(v),(r===`guard`?s:c).push(v)):a.push(`layout: group ${e.id} has no room for ${r} ${km(t,o)}; adjust frame/message spacing`),v},v=g(m,`guard`,f+6);t.body&&g(t.body,`body`,v?v.y+v.height+8:f+38)}),{errors:a,warnings:o,guards:s,bodies:c,separators:l,heading:h}}function zm(e,t,n=0,r=0,i=`currentColor`,a=`var(--canvas)`){return e.separators.map(e=>`<path class="operand-separator" d="M${t.position.x+n} ${e+r}h${t.size.width}" fill="none" stroke="${i}" stroke-dasharray="6 4"/>`).join(``)+[...e.guards,...e.bodies??[]].map(i=>`<g data-fragment-group-id="${tp(t.id)}" data-operand-id="${tp(i.operandId)}" class="${e.guards.includes(i)?`operand-guard`:`operand-body`}"><rect x="${i.x+n}" y="${i.y+r}" width="${i.width}" height="${i.height}" rx="2" fill="${a}"/>${i.lines.map((e,t)=>Q(i.x+n+4,i.y+r+(i.fontSize===16?18:16)+t*(i.lineHeight??20),e,i.fontSize===16?`body`:`group`)).join(``)}</g>`).join(``)}function Bm(e){if(e.meta.diagramType!==`sequence`)return new Map;let t=new Map(e.edges.map(e=>[e.id,e.order])),n=[...new Set(e.edges.map(e=>e.replyTo).filter(Boolean))].sort((e,n)=>(t.get(e)??1/0)-(t.get(n)??1/0)||(e<n?-1:+(e>n))),r=new Map(n.map((e,t)=>[e,t]));return new Map(e.edges.filter(e=>r.has(e.replyTo??e.id)).map(e=>{let t=e.replyTo??e.id,n=r.get(t);return[e.id,{callId:t,index:n,label:`${e.replyTo?`↩ `:``}C${n+1}`}]}))}function Vm(e,t,n=Bm(e),r=Am(e)){let i=n.get(t.id),a=(e.groups??[]).some(e=>e.kind===`par`&&(r.get(t.id)??``).split(`/`).some(t=>t.startsWith(encodeURIComponent(e.id)+`:`)));return i?`${i.label} · ${t.label??``}`:a?t.label??``:`${String(t.order).padStart(2,`0`)} · ${t.label??``}`}var Hm=140,Um=54,Wm=(e,t)=>(e.route?.messageY??Hm+e.order*Um)+(t===`receive`&&e.source===e.target?30:0);function Gm(e,{inputOnly:t=!1}={}){let n=[],r=new Map(e.edges.map(e=>[e.id,e]));if(e.meta.diagramType!==`sequence`)return(e.executions!==void 0||e.edges.some(e=>e.replyTo!==void 0))&&n.push(`executions and replyTo are only supported for sequence`),n;if(!t){let t=[...e.edges].sort((e,t)=>e.order-t.order);for(let e=1;e<t.length;e++)Wm(t[e],`send`)<=Wm(t[e-1],`send`)&&n.push(`edge ${t[e].id}.route.messageY must preserve message order after ${t[e-1].id}`)}let i=Am(e),a=new Set;for(let t of e.edges){if(t.replyTo===void 0)continue;let e=r.get(t.replyTo),o=`edge ${t.id}.replyTo ${String(t.replyTo)}`;t.kind!==`return`||typeof t.replyTo!=`string`||!e||![`sync`,`async`].includes(e.kind)?n.push(`${o} must reference a sync or async call from a return`):(e.order>=t.order&&n.push(`${o} must precede its return`),(e.source!==t.target||e.target!==t.source)&&n.push(`${o} endpoints must be reversed`),i.get(e.id)!==i.get(t.id)&&n.push(`${o} must stay in the same operand scope`)),a.has(t.replyTo)&&n.push(`${o} has a duplicate return`),a.add(t.replyTo)}if(e.executions===void 0)return n;if(!Array.isArray(e.executions))return[...n,`executions must be an array`];let o=new Map,s=new Map,c=new Map;for(let a of e.executions){if(!a||typeof a!=`object`||Array.isArray(a)){n.push(`execution must be an object`);continue}let l=`execution ${String(a.id)}`;(typeof a.id!=`string`||!a.id.trim())&&n.push(`${l} needs a non-empty id`),o.has(a.id)&&n.push(`${l} duplicate id`),o.set(a.id,a),e.nodes.some(e=>e.id===a.participantId)||n.push(`${l} unknown participant ${String(a.participantId)}`);let u=[];for(let e of[`start`,`end`]){let i=a[e],o=r.get(i?.edgeId);if(!o||![`send`,`receive`].includes(i?.at)){n.push(`${l}.${e} invalid endpoint ${String(i?.edgeId)}`);continue}o[i.at===`send`?`source`:`target`]!==a.participantId&&n.push(`${l}.${e} endpoint ${o.id} does not belong to participant ${a.participantId}`),u.push(t?o.order*2+Number(i.at===`receive`&&o.source===o.target):Wm(o,i.at));let s=`${o.id}:${i.at}`;c.has(s)&&n.push(`${l}.${e} ambiguous endpoint ${s} with execution ${c.get(s)}`),c.set(s,a.id)}u.length===2&&(u[0]>=u[1]&&n.push(`${l} start must precede end`),i.get(a.start.edgeId)!==i.get(a.end.edgeId)&&n.push(`${l} endpoints must stay in the same operand scope`),s.set(a.id,u))}for(let e of o.values()){if(e.parentId!==void 0){let t=o.get(e.parentId);if(!t)n.push(`execution ${e.id} unknown parent ${String(e.parentId)}`);else{t.participantId!==e.participantId&&n.push(`execution ${e.id} parent ${t.id} belongs to another participant`);let r=s.get(t.id),a=s.get(e.id);r&&a&&(a[0]<r[0]||a[1]>r[1])&&n.push(`execution ${e.id} exceeds parent ${t.id}`);let o=i.get(t.start?.edgeId)??``,c=i.get(e.start?.edgeId)??``;o&&c!==o&&!c.startsWith(o+`/`)&&n.push(`execution ${e.id} is outside parent ${t.id} operand scope`)}}let t=new Set([e.id]),r=o.get(e.parentId);for(;r;){if(t.has(r.id)){n.push(`execution ${e.id} parent cycle at ${r.id}`);break}t.add(r.id),r=o.get(r.parentId)}}let l=[...o.values()],u=(e,t)=>{let n=new Set,r=o.get(t.parentId);for(;r&&!n.has(r.id);){if(r.id===e.id)return!0;n.add(r.id),r=o.get(r.parentId)}return!1};for(let e=0;e<l.length;e++)for(let t of l.slice(e+1)){let r=l[e],i=s.get(r.id),a=s.get(t.id);i&&a&&r.participantId===t.participantId&&!u(r,t)&&!u(t,r)&&i[0]<a[1]&&a[0]<i[1]&&n.push(`executions ${r.id} and ${t.id} overlap without nesting`)}return n}function Km(e){if(e.meta.diagramType!==`sequence`)return[];let t=e.executions??[],n=new Map(e.edges.map(e=>[e.id,e])),r=Am(e);return t.map(i=>{let a=0,o=t.find(e=>e.id===i.parentId),s=new Set([i.id]);for(;o&&!s.has(o.id);)s.add(o.id),a++,o=t.find(e=>e.id===o.parentId);let c=e.nodes.find(e=>e.id===i.participantId),l=Wm(n.get(i.start.edgeId),i.start.at);return{...i,depth:a,scope:r.get(i.start.edgeId)??``,x:c.position.x+c.size.width/2-8+a*8,y:l,width:16,height:Wm(n.get(i.end.edgeId),i.end.at)-l}})}function qm(e,t,n,r,i,a=``){let o=e.filter(e=>e.participantId===t);return o.find(e=>[e.start,e.end].some(e=>e.edgeId===n.id&&e.at===r))||o.filter(e=>i>=e.y&&i<=e.y+e.height&&(!e.scope||a===e.scope||a.startsWith(e.scope+`/`))).sort((e,t)=>t.depth-e.depth)[0]}var Jm=e=>({x:e.position.x+e.size.width/2,y:e.position.y+e.size.height/2}),Ym=(e,t,n)=>$(t)?.edgeLabel?.(e,n)??e.label??``;function Xm(e,t,n){let r=Math.hypot(n.x-t.x,n.y-t.y);if(!r)return{path:``};let i=(n.x-t.x)/r,a=(n.y-t.y)/r,o=(e,n=0)=>({x:t.x+i*e-a*n,y:t.y+a*e+i*n}),s=e=>[o(e,-6),o(e,6)],c=String(e).trim(),l=/[*n]/i.test(c),u=c.startsWith(`0`)||c===`*`,d=l?[[o(0,-6),o(12)],[o(0,6),o(12)],[t,o(12)]]:[s(8)];u||d.push(s(l?21:14));let f=d.map(([e,t])=>`M${e.x} ${e.y}L${t.x} ${t.y}`).join(``),p=o(23),m=u?{cx:p.x,cy:p.y,r:4}:void 0,h=d.flat();m&&h.push({x:p.x-4,y:p.y-4},{x:p.x+4,y:p.y+4});let g=Math.min(...h.map(e=>e.x)),_=Math.min(...h.map(e=>e.y)),v={x:g,y:_,width:Math.max(...h.map(e=>e.x))-g,height:Math.max(...h.map(e=>e.y))-_};return{path:f,...m?{circle:m}:{},bounds:v}}function Zm(e,t=fh(e)){let n=[...e.groups??[],...e.nodes,...Km(e).map(e=>({position:{x:e.x,y:e.y},size:{width:e.width,height:e.height}}))],r=[...t.values()].flatMap(e=>[...e.points,{x:e.labelBox.x,y:e.labelBox.y},{x:e.labelBox.x+e.labelBox.width,y:e.labelBox.y+e.labelBox.height}]);for(let e of t.values())for(let t of e.endpointLabels??[])r.push({x:t.labelBox.x,y:t.labelBox.y},{x:t.labelBox.x+t.labelBox.width,y:t.labelBox.y+t.labelBox.height});if($(e.meta?.diagramType).cardinalities)for(let n of e.edges){let e=t.get(n.id);for(let t of[Xm(n.sourceCardinality,e.points[0],e.points[1]),Xm(n.targetCardinality,e.points.at(-1),e.points.at(-2))])t.bounds&&r.push({x:t.bounds.x,y:t.bounds.y},{x:t.bounds.x+t.bounds.width,y:t.bounds.y+t.bounds.height})}let i=Math.min(...n.map(e=>e.position.x),...r.map(e=>e.x)),a=Math.min(...n.map(e=>e.position.y),...r.map(e=>e.y)),o=Math.max(...n.map(e=>e.position.x+e.size.width),...r.map(e=>e.x)),s=Math.max(...n.map(e=>e.position.y+e.size.height),...r.map(e=>e.y));return{x:i,y:a,width:o-i,height:s-a}}function Qm(e,t,n=0,r=`architecture`){let i=$(r)?.anchor;if(i)return i(e,t,n);let a=Jm(e);return t===`left`?{x:e.position.x,y:a.y+n}:t===`right`?{x:e.position.x+e.size.width,y:a.y+n}:t===`top`?{x:a.x+n,y:e.position.y}:{x:a.x+n,y:e.position.y+e.size.height}}function $m(e,t,n=If.endpoint){return t===`left`?{x:e.x-n,y:e.y}:t===`right`?{x:e.x+n,y:e.y}:t===`top`?{x:e.x,y:e.y-n}:{x:e.x,y:e.y+n}}function eh(e){let t=[];for(let n of e){let e=t.at(-1);(!e||e.x!==n.x||e.y!==n.y)&&t.push(n)}for(let e=1;e<t.length-1;){let[n,r,i]=t.slice(e-1,e+2),a=n.x===r.x&&r.x===i.x&&(r.y-n.y)*(i.y-r.y)>=0,o=n.y===r.y&&r.y===i.y&&(r.x-n.x)*(i.x-r.x)>=0;a||o?t.splice(e,1):e+=1}return t}function th(e,t){let n=e.at(-1);n.x!==t.x&&n.y!==t.y&&e.push({x:t.x,y:n.y}),e.push(t)}function nh(e){let t={length:-1,point:e[0]};for(let n=1;n<e.length;n+=1){let r=e[n-1],i=e[n],a=Math.abs(i.x-r.x)+Math.abs(i.y-r.y);a>t.length&&(t={length:a,point:{x:(r.x+i.x)/2,y:(r.y+i.y)/2}})}return t.point}function rh(e,t,n,r){let i={clearance:-1,length:-1,point:nh(e)};for(let a=1;a<e.length;a+=1){let o=e[a-1],s=e[a],c={x:(o.x+s.x)/2,y:(o.y+s.y)/2},l={x:c.x-t.width/2,y:c.y-t.height/2,...t},u=Math.min(hh(l,{...n.position,...n.size}),hh(l,{...r.position,...r.size})),d=Math.abs(s.x-o.x)+Math.abs(s.y-o.y);(u>i.clearance||u===i.clearance&&d>i.length)&&(i={clearance:u,length:d,point:c})}return i.point}function ih(e,t){let n=Jm(e),r=Jm(t),i=r.x-n.x,a=r.y-n.y;return Math.abs(a)>Math.abs(i)?{orientation:`vertical`,sourceSide:a>=0?`bottom`:`top`,targetSide:a>=0?`top`:`bottom`}:{orientation:`horizontal`,sourceSide:i>=0?`right`:`left`,targetSide:i>=0?`left`:`right`}}function ah(e,t,n,r){let{x:i,y:a}=e.position,{width:o,height:s}=e.size,c=Math.max(i-t.x,0,t.x-i-o),l=Math.max(a-t.y,0,t.y-a-s),u=c===0&&l===0?n:c>l?t.x<i?`left`:`right`:t.y<a?`top`:`bottom`,d=u===`left`||u===`right`,f=Jm(e),p=Math.max(0,(d?s:o)/2-If.endpoint),m=Math.max(-p,Math.min(p,d?t.y-f.y:t.x-f.x));return{side:u,point:Qm(e,u,[`decision`,`choice`].includes(e.kind)?0:m,r)}}function oh(e,t,n,r,i,a=If.endpoint){let o=[e,$m(e,n,a)];[`left`,`right`].includes(n)&&i.length&&o[1].y!==i[0].y&&o.push({x:o[1].x,y:i[0].y});for(let e of i)th(o,e);return th(o,$m(t,r,a)),o.push(t),eh(o)}function sh(e,t,n,r,i,a=If.endpoint,o=`architecture`){let s=Qm(e,n.sourceSide,r,o),c=Qm(t,n.targetSide,i,o),l=$m(s,n.sourceSide,a),u=$m(c,n.targetSide,a),d=r||i;if(n.orientation===`horizontal`){let e=(l.x+u.x)/2+d;return eh([s,l,{x:e,y:l.y},{x:e,y:u.y},u,c])}let f=(l.y+u.y)/2+d;return eh([s,l,{x:l.x,y:f},{x:u.x,y:f},u,c])}function ch(e,t=0,n=0){if(!e.length)return``;let r=e.map(e=>({x:e.x+t,y:e.y+n}));return r.slice(1).reduce((e,t,n)=>{let i=r[n];return i.y===t.y?`${e} H ${t.x}`:i.x===t.x?`${e} V ${t.y}`:`${e} L ${t.x} ${t.y}`},`M ${r[0].x} ${r[0].y}`)}function lh(e,t,n){if(e.sourceSide!==e.targetSide)return null;let[r,...i]=e.points.map(e=>({x:e.x+t,y:e.y+n})),a=i.at(-1),[o,s]={right:[1,0],left:[-1,0],top:[0,-1],bottom:[0,1]}[e.sourceSide]??[1,0],[c,l]=[-s,o],u=Math.max(...i.map(e=>(e.x-r.x)*o+(e.y-r.y)*s))*4/3,d=(a.x-r.x)*c+(a.y-r.y)*l,f=Math.abs(d)*.35,p=Math.sign(d);if(!(u>0)||Math.abs(d)<1)return null;let m={x:r.x+o*u-c*p*f,y:r.y+s*u-l*p*f},h={x:a.x+o*u+c*p*f,y:a.y+s*u+l*p*f};return`M ${r.x} ${r.y} C ${m.x} ${m.y} ${h.x} ${h.y} ${a.x} ${a.y}`}var uh=(e,t=0,n=0)=>e.curved&&lh(e,t,n)||ch(e.points,t,n);function dh(e,t,n,r,i){let{graph:a,executions:o,scopes:s,pairs:c}=i,l=Wm(e,`send`),u=Wm(e,`receive`),d=qm(o,t.id,e,`send`,l,s.get(e.id)),f=qm(o,n.id,e,`receive`,u,s.get(e.id)),p=t.id===n.id||Jm(t).x<=Jm(n).x,m=d?d.x+(p?d.width:0):Jm(t).x,h=f?f.x+(t.id===n.id||!p?f.width:0):Jm(n).x,g=Vm(a,e,c,s),_=Yf(g,t.id===n.id?Lf.labelWidth:Math.min(Lf.labelWidth,Math.max(1,Math.abs(h-m)-32-12))),v={width:_.width,height:_.height};if(t.id===n.id){let t=48+r*If.parallelGap,n={x:m,y:l},i={x:h,y:u},a=e.route?.via?.length?oh(n,i,`right`,`right`,e.route.via):[n,{x:m+t,y:l},{x:m+t,y:l+30},i];return{points:a,label:g,labelLines:_.lines,labelSize:v,labelPoint:e.route?.labelAt??{x:Math.max(...a.map(e=>e.x))+8+v.width/2,y:l+15},sourceSide:`right`,targetSide:`right`}}return{points:e.route?.via?.length?oh({x:m,y:l},{x:h,y:l},m<=h?`right`:`left`,m<=h?`left`:`right`,e.route.via):[{x:m,y:l},{x:h,y:l}],label:g,labelLines:_.lines,labelSize:v,labelPoint:e.route?.labelAt??{x:(m+h)/2,y:l-6-v.height/2},sourceSide:m<=h?`right`:`left`,targetSide:m<=h?`left`:`right`}}function fh(e){let t=vm(e),n=$(t).endpointStub??If.endpoint,r=new Map(e.nodes.map(e=>[e.id,e])),i=e.edges.map(e=>{let t=r.get(e.source),n=r.get(e.target);return{edge:e,source:t,target:n,self:t.id===n.id,...ih(t,n)}}),a=t===`sequence`?{graph:e,executions:Km(e),scopes:Am(e),pairs:Bm(e)}:null,o=new Map;for(let e of i.filter(e=>!$(t).sequence&&!e.self&&!e.edge.route?.via?.length))for(let[t,n,r,i]of[[`source`,e.source,e.sourceSide,e.target],[`target`,e.target,e.targetSide,e.source]]){let a=`${n.id}:${r}`,s=e.orientation===`horizontal`?Jm(i).y:Jm(i).x;o.has(a)||o.set(a,[]),o.get(a).push({id:e.edge.id,role:t,coordinate:s})}let s=new Map;for(let e of o.values())e.sort((e,t)=>e.coordinate-t.coordinate||e.id.localeCompare(t.id)||e.role.localeCompare(t.role)),e.forEach((t,n)=>s.set(`${t.id}:${t.role}`,(n-(e.length-1)/2)*If.parallelGap));let c=new Map,l=new Map;for(let e of i.filter(e=>e.self).sort((e,t)=>(e.edge.order??0)-(t.edge.order??0)||(e.edge.id<t.edge.id?-1:1))){let t=c.get(e.source.id)??0;l.set(e.edge.id,t),c.set(e.source.id,t+1)}let u=new Map;for(let r of i){let i;if($(t).sequence){let e=l.get(r.edge.id)??0;i=dh(r.edge,r.source,r.target,e,a)}else if(r.self){let a=l.get(r.edge.id),o=r.source.position.x+r.source.size.width,s=Jm(r.source).y,c=48+a*If.parallelGap,u=Ym(r.edge,t,e.meta?.locale),d=Zf(u),f=r.edge.route?.via,p=f?.length&&ah(r.source,f[0],`right`,t),m=f?.length&&ah(r.target,f.at(-1),`right`,t),h=p?p.side:`right`,g=m?m.side:`right`,_=p?p.point:Qm(r.source,`right`,-16-a*12,t),v=m?m.point:Qm(r.source,`right`,16+a*12,t);i={points:r.edge.route?.via?.length?oh(_,v,h,g,r.edge.route.via,n):[_,{x:o+c,y:_.y},{x:o+c,y:v.y},v],label:u,labelPoint:r.edge.route?.labelAt??{x:o+c+8+d.width/2,y:s},sourceSide:h,targetSide:g,curved:!!$(t).curvedSelfLoops}}else{let a=r.edge.route?.via,o=a?.length&&ah(r.source,a[0],r.sourceSide,t),c=a?.length&&ah(r.target,a.at(-1),r.targetSide,t),l=o?o.side:r.sourceSide,u=c?c.side:r.targetSide,d=a?[...a]:[];o&&[`decision`,`choice`].includes(r.source.kind)&&[`left`,`right`].includes(l)&&d.unshift({x:$m(o.point,l,n).x,y:a[0].y}),c&&[`decision`,`choice`].includes(r.target.kind)&&[`top`,`bottom`].includes(u)&&d.push({x:a.at(-1).x,y:$m(c.point,u,n).y});let f=r.edge.route?.via?.length?oh(o.point,c.point,l,u,d,n):sh(r.source,r.target,r,s.get(`${r.edge.id}:source`)??0,s.get(`${r.edge.id}:target`)??0,n,t),p=Ym(r.edge,t,e.meta?.locale);i={points:f,label:p,labelPoint:r.edge.route?.labelAt??rh(f,Zf(p),r.source,r.target),sourceSide:l,targetSide:u}}let o=i.labelSize??Zf(i.label),c=i.labelLines??Yf(i.label).lines,d=$(t).edgeLabelParts?.(r.edge);u.set(r.edge.id,{...i,endpointLabels:$(t).endpointLabels?.(r.edge,i.points)??[],labelLines:c,...d?{labelRuns:Xf(c,d)??void 0}:{},path:uh(i),labelBox:{x:i.labelPoint.x-o.width/2,y:i.labelPoint.y-o.height/2,...o}})}return u}function ph(e,t,n=0){return e.x<t.x+t.width+n&&e.x+e.width>t.x-n&&e.y<t.y+t.height+n&&e.y+e.height>t.y-n}function mh(e,t){return $(t).sequence?{...e.position,width:e.size.width,height:Math.min(e.size.height,Mp(e))}:{...e.position,...e.size}}function hh(e,t){let n=Math.max(e.x-t.x-t.width,t.x-e.x-e.width,0),r=Math.max(e.y-t.y-t.height,t.y-e.y-e.height,0);return Math.hypot(n,r)}function gh(e,t,n,r){let i=vh(t,r);if((n===`left`||n===`right`)&&(e.y<i.y||e.y>i.y+i.height)||(n===`top`||n===`bottom`)&&(e.x<i.x||e.x>i.x+i.width))return!1;let a=Jm(t),o=Qm(t,n,n===`left`||n===`right`?e.y-a.y:e.x-a.x,r);return Math.hypot(e.x-o.x,e.y-o.y)<1e-7}function _h(e,t,n){return e.y===t.y?e.y>n.y&&e.y<n.y+n.height&&Math.max(Math.min(e.x,t.x),n.x)<Math.min(Math.max(e.x,t.x),n.x+n.width):e.x===t.x&&e.x>n.x&&e.x<n.x+n.width&&Math.max(Math.min(e.y,t.y),n.y)<Math.min(Math.max(e.y,t.y),n.y+n.height)}function vh(e,t){if(t===`state`&&[`initial`,`final`].includes(e.kind)){let t=e.kind===`initial`?12:13,n=Jm(e);return{x:e.position.x+Kp(e)-t,y:n.y-t,width:t*2,height:t*2}}if(t===`usecase`&&e.kind===`actor`){let t=am(e);return{x:Jm(e).x-20,y:e.position.y+t+2,width:40,height:74}}return t===`deployment`&&e.kind===`device`?{x:e.position.x+16,y:e.position.y,width:e.size.width-32,height:e.size.height}:[`architecture`,`deployment`].includes(t)&&e.kind===`database`?{x:e.position.x+12,y:e.position.y+2,width:e.size.width-24,height:e.size.height-4}:mh(e,t)}function yh(e,t,n,r){if(r===`state`&&[`initial`,`final`].includes(n.kind)&&n.subtitle){let i=$(r).textArea(n);if(_h(e,t,{...i,x:n.position.x+i.x,y:n.position.y+i.y}))return!0}let i=vh(n,r);if(r===`sequence`||r===`usecase`&&n.kind===`actor`)return _h(e,t,i);let a=Jm(n);if(e.y===t.y){if(e.y<=i.y||e.y>=i.y+i.height)return!1;let o=e.y-a.y,s=Qm(n,`left`,o,r).x,c=Qm(n,`right`,o,r).x;return Math.max(Math.min(e.x,t.x),s)<Math.min(Math.max(e.x,t.x),c)-1e-7}if(e.x===t.x){if(e.x<=i.x||e.x>=i.x+i.width)return!1;let o=e.x-a.x,s=Qm(n,`top`,o,r).y,c=Qm(n,`bottom`,o,r).y;return Math.max(Math.min(e.y,t.y),s)<Math.min(Math.max(e.y,t.y),c)-1e-7}return!1}function bh(e){let t=e.position.x,n=t+e.size.width,r=e.position.y,i=r+e.size.height;return[[{x:t,y:r},{x:n,y:r}],[{x:n,y:r},{x:n,y:i}],[{x:t,y:i},{x:n,y:i}],[{x:t,y:r},{x:t,y:i}]]}function xh(e){let t=[`alt`,`opt`,`loop`,`par`].includes(e.kind),n=Qf(e),r=t?Fm(e):null,i=Math.min(t?Math.max(36,r.height+20):n.height,e.size.height),a=Math.min(e.size.width,(t?r.width:n.width)+32),o=[{x:e.position.x,y:e.position.y,width:a,height:i}];return[`alt`,`opt`,`loop`].includes(e.kind)&&o.push({x:e.position.x+e.size.width-52,y:e.position.y,width:52,height:i}),o}function Sh(e,t,n,r){return e.y===t.y&&n.y===r.y&&e.y===n.y?Math.max(0,Math.min(Math.max(e.x,t.x),Math.max(n.x,r.x))-Math.max(Math.min(e.x,t.x),Math.min(n.x,r.x))):e.x===t.x&&n.x===r.x&&e.x===n.x?Math.max(0,Math.min(Math.max(e.y,t.y),Math.max(n.y,r.y))-Math.max(Math.min(e.y,t.y),Math.min(n.y,r.y))):0}function Ch(e,t,n,r){let i=new Map,a=(e,t)=>[{id:e.source,point:t[0]},{id:e.target,point:t.at(-1)}],o=(e,t)=>Math.hypot(e.x-t.x,e.y-t.y)<.001;for(let s=1;s<t.length;s++)for(let c=1;c<r.length;c++){let l=t[s-1],u=t[s],d=r[c-1],f=r[c],p=u.x-l.x,m=u.y-l.y,h=f.x-d.x,g=f.y-d.y,_=p*g-m*h;if(Math.abs(_)<1e-8)continue;let v=((d.x-l.x)*g-(d.y-l.y)*h)/_,y=((d.x-l.x)*m-(d.y-l.y)*p)/_;if(v<0||v>1||y<0||y>1)continue;let b={x:+(l.x+v*p).toFixed(3),y:+(l.y+v*m).toFixed(3)};a(e,t).some(e=>a(n,r).some(t=>e.id===t.id&&o(e.point,b)&&o(t.point,b)))||i.set(`${b.x},${b.y}`,b)}return[...i.values()].sort((e,t)=>e.x-t.x||e.y-t.y)}function wh(e){let t=vm(e),n=[],r=fh(e),i=[],a=[],o=[],s=new Map([...e.nodes,...e.groups??[],...Km(e)].map(e=>[e.id,e])),c=(e,n,a)=>{i.push(a);let c=n.flatMap(e=>{let t=s.get(e);if(t)return[t.position?{...t.position,...t.size}:{x:t.x,y:t.y,width:t.width,height:t.height}];let n=r.get(e);return n?n.points.map(e=>({...e,width:0,height:0})):[]});o.push({ruleId:e,severity:`error`,diagramType:t,elementIds:n,bounds:c,measured:a,required:`clear full-size geometry`,remediation:a.includes(`;`)?a.split(`;`).slice(1).join(`;`).trim():`Adjust the identified elements while preserving the complete model.`})};if(t===`sequence`){for(let t of e.nodes)t.size.height<Mp(t)&&c(`sequence.header`,[t.id],`layout: sequence node ${t.id} is shorter than its visible header`);for(let t of e.groups??[]){let n=Rm(t,r,e.meta.locale,e.groups??[],Km(e));for(let e of n.errors)c(`sequence.fragment`,[t.id],e);a.push(...n.warnings)}let t=Km(e);for(let n of e.edges){let i=r.get(n.id);for(let e of t)Dm(i.labelBox,e,2)&&c(`sequence.label-execution`,[n.id,e.id],`layout: edge ${n.id} label overlaps execution ${e.id}`);for(let t of e.edges)Om(r.get(t.id)).some(e=>Dm(i.labelBox,e))&&c(`sequence.message-clearance`,[n.id,t.id],`layout: sequence edge ${n.id} label needs 6px clearance from message ${t.id}; shorten the label or adjust participant spacing/route hints`);i.points.some(t=>t.y>Math.min(...[n.source,n.target].map(t=>{let n=e.nodes.find(e=>e.id===t);return n.position.y+n.size.height})))&&c(`sequence.lifeline`,[n.id,n.source,n.target],`layout: sequence edge ${n.id} exceeds its participant lifeline`)}}if($(t).cardLayout)for(let t of e.nodes){if(t.size.height<100)continue;let{minHeight:e}=Jf(t);t.size.height<e&&c(`text.card-height`,[t.id],`layout: node ${t.id} text needs at least ${e}px height at 20/16px; enlarge the node and check its route clearance`)}for(let n=0;n<e.nodes.length;n+=1)for(let r=n+1;r<e.nodes.length;r+=1){let i=e.nodes[n],a=e.nodes[r];ph(mh(i,t),mh(a,t))&&c(`shape.node-overlap`,[i.id,a.id],`layout: nodes ${i.id} and ${a.id} overlap`)}let l=e.edges.filter(e=>r.get(e.id).label);for(let e=0;e<l.length;e+=1)for(let t=e+1;t<l.length;t+=1){let n=l[e],i=l[t];ph(r.get(n.id).labelBox,r.get(i.id).labelBox)&&c(`label.overlap`,[n.id,i.id],`layout: edge labels ${n.id} and ${i.id} overlap`)}for(let i=0;i<e.edges.length;i+=1)for(let a=i+1;a<e.edges.length;a+=1){let o=e.edges[i],s=e.edges[a],l=r.get(o.id).points,u=r.get(s.id).points,d=0;for(let e=1;e<l.length;e+=1)for(let t=1;t<u.length;t+=1)d=Math.max(d,Sh(l[e-1],l[e],u[t-1],u[t]));d>If.endpoint&&c(`route.shared-segment`,[o.id,s.id],`layout: edges ${o.id} and ${s.id} share a route segment longer than ${If.endpoint}px`);let f=Ch(o,l,s,u);f.length&&n.push({ruleId:`route.point-crossing`,severity:`info`,diagramType:t,elementIds:[o.id,s.id].sort(),measured:f.length,required:null,bounds:f.map(e=>({...e,width:0,height:0})),repeated:Math.max(0,f.length-1),remediation:`Keep each relation traceable; prefer fewer repeated crossings without overlapping channels.`})}for(let n of e.edges){let i=r.get(n.id),a=e.nodes.find(e=>e.id===n.source),o=e.nodes.find(e=>e.id===n.target);if(!$(t).sequence&&(!gh(i.points[0],a,i.sourceSide,t)||!gh(i.points.at(-1),o,i.targetSide,t))&&c(`route.anchor`,[n.id,n.source,n.target],`layout: edge ${n.id} exceeds an endpoint side; enlarge the node or add route hints`),$(t).cardinalities){let r=$(t).endpointStub;for(let[t,a,o,s,l,u]of[[`source`,i.points[0],i.points[1],i.sourceSide,n.sourceCardinality,n.route?.via?.[0]],[`target`,i.points.at(-1),i.points.at(-2),i.targetSide,n.targetCardinality,n.route?.via?.at(-1)]]){let i=$m(a,s,1),d=e=>(e.x-a.x)*(i.x-a.x)+(e.y-a.y)*(i.y-a.y);(d(o)<r||u&&d(u)<r)&&c(`route.er-stub`,[n.id],`layout: ER edge ${n.id} ${t} needs a ${r}px outward straight segment; move the route hint or enlarge the gap`);let f=Xm(l,a,o);for(let r of e.nodes)f.bounds&&ph(f.bounds,{...r.position,...r.size})&&c(`marker.er-node`,[n.id,r.id],`layout: ER edge ${n.id} ${t} cardinality overlaps node ${r.id}`)}i.points.slice(1,-1).some((e,t)=>{let n=i.points[t],r=i.points[t+2];return n.x===e.x&&e.x===r.x&&(e.y-n.y)*(r.y-e.y)<0||n.y===e.y&&e.y===r.y&&(e.x-n.x)*(r.x-e.x)<0})&&c(`route.er-reversal`,[n.id],`layout: ER edge ${n.id} reverses within its route; reserve ${r}px endpoint segments or move the route hints`)}if($(t).sequence&&n.source!==n.target){let e=Math.abs(Jm(a).x-Jm(o).x),t=Math.max(160,i.labelBox.width+32);e<t&&c(`sequence.participant-gap`,[n.id,n.source,n.target],`layout: sequence edge ${n.id} needs ${Math.ceil(t)}px between participants; found ${Math.round(e)}px`)}for(let r of e.nodes)for(let e=1;e<i.points.length;e+=1)if(!(r.id===n.source&&e===1||r.id===n.target&&e===i.points.length-1)&&yh(i.points[e-1],i.points[e],r,t)){let e=n.source===n.target&&r.id===n.source?`self-loop`:`edge`;c(`route.node-obstacle`,[n.id,r.id],`layout: ${e} ${n.id} crosses node ${r.id}`);break}if(i.label){for(let t of e.groups??[])xh(t).some(e=>ph(i.labelBox,e))&&c(`label.group-heading`,[n.id,t.id],`layout: edge ${n.id} label overlaps group ${t.id} heading`),bh(t).some(([e,t])=>_h(e,t,i.labelBox))&&c(`label.group-boundary`,[n.id,t.id],`layout: edge ${n.id} label overlaps group ${t.id} boundary`);for(let r of e.nodes)ph(i.labelBox,vh(r,t))&&c(`label.node`,[n.id,r.id],`layout: edge ${n.id} label overlaps node ${r.id}`)}}for(let t of e.edges){let n=r.get(t.id);for(let r of e.groups??[]){let e=bh(r);for(let i=1;i<n.points.length;i+=1){let a=n.points[i-1],o=n.points[i];xh(r).some(e=>_h(a,o,e))&&c(`route.group-heading`,[t.id,r.id],`layout: edge ${t.id} crosses group ${r.id} heading`),e.some(([e,t])=>Sh(a,o,e,t)>If.endpoint)&&c(`route.group-boundary`,[t.id,r.id],`layout: edge ${t.id} overlaps group ${r.id} boundary`)}}}return{errors:[...new Set(i)],warnings:[...new Set(a)],routes:r,crossings:n,diagnostics:o}}function Th({sequence:e=!1}){return e?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(Vl,{id:`target-left`,type:`target`,position:H.Left,style:{top:Z.sequenceHeader,opacity:0}}),(0,x.jsx)(Vl,{id:`source-right`,type:`source`,position:H.Right,style:{top:Z.sequenceHeader,opacity:0}})]}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(Vl,{id:`target-left`,type:`target`,position:H.Left}),(0,x.jsx)(Vl,{id:`source-left`,type:`source`,position:H.Left}),(0,x.jsx)(Vl,{id:`target-right`,type:`target`,position:H.Right}),(0,x.jsx)(Vl,{id:`source-right`,type:`source`,position:H.Right}),(0,x.jsx)(Vl,{id:`target-top`,type:`target`,position:H.Top}),(0,x.jsx)(Vl,{id:`source-top`,type:`source`,position:H.Top}),(0,x.jsx)(Vl,{id:`target-bottom`,type:`target`,position:H.Bottom}),(0,x.jsx)(Vl,{id:`source-bottom`,type:`source`,position:H.Bottom})]})}function Eh({data:e,selected:t}){let n=e.moduleColors?.get(e.module),r=Cm({...e,position:{x:0,y:0}},e.diagramType,0,0,e.palette,e.locale,e.moduleColors);return(0,x.jsxs)(`article`,{className:`diagram-node diagram-${e.diagramType} kind-${e.kind} ${n?`has-module`:``} ${xf(e)?`is-core`:``} ${e.dimmed?`is-dimmed`:``} ${t?`is-selected`:``}`,style:n?{"--node-module":n.accent}:void 0,title:e.label,children:[(0,x.jsx)(Th,{sequence:$(e.diagramType).sequence}),(0,x.jsx)(`svg`,{className:`node-visual`,viewBox:`0 0 ${e.size.width} ${e.size.height}`,"aria-label":e.label,dangerouslySetInnerHTML:{__html:r}}),t&&(0,x.jsx)(Em,{data:e,pulse:e.selectionPulse},e.selectionPulse)]})}function Dh({data:e}){let t=e.fragment,n=t?.heading?{left:t.heading.x-e.position.x,top:t.heading.y-e.position.y,maxWidth:t.heading.width}:void 0,r=[`alt`,`opt`,`loop`,`par`].includes(e.kind);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`section`,{className:`boundary boundary-${e.kind}`,"aria-label":e.label,children:[(0,x.jsx)(`svg`,{className:`boundary-visual`,width:`100%`,height:`100%`,dangerouslySetInnerHTML:{__html:ep(e,e.appearance)}}),t?(0,x.jsx)(`span`,{style:n,children:t.heading?.lines?.join(`
280
- `)??e.label}):(0,x.jsx)(`svg`,{className:`boundary-heading`,width:`100%`,height:`100%`,dangerouslySetInnerHTML:{__html:$f(e)}}),r&&!t&&(0,x.jsx)(`small`,{children:e.kind}),t&&(0,x.jsx)(`svg`,{className:`fragment-visual`,width:`100%`,height:`100%`,dangerouslySetInnerHTML:{__html:zm({...t,guards:[],bodies:[]},e,-e.position.x,-e.position.y)}})]}),t&&(0,x.jsx)(X,{children:(0,x.jsxs)(`div`,{className:`fragment-overlay`,style:{position:`absolute`,pointerEvents:`none`,width:e.size.width,height:e.size.height,transform:`translate(${e.position.x}px, ${e.position.y}px)`},children:[(0,x.jsx)(`svg`,{className:`fragment-text`,width:e.size.width,height:e.size.height,dangerouslySetInnerHTML:{__html:zm({...t,separators:[]},e,-e.position.x,-e.position.y,`currentColor`,e.appearance?.fill??`var(--canvas)`)}}),r&&(0,x.jsx)(`small`,{children:e.kind})]})})]})}function Oh({value:e,point:t,neighbor:n,color:r}){let i=Xm(e,t,n);return(0,x.jsxs)(`g`,{className:`cardinality-mark`,stroke:r,strokeWidth:`1.5`,fill:`none`,children:[(0,x.jsx)(`path`,{d:i.path}),i.circle&&(0,x.jsx)(`circle`,{...i.circle,fill:`var(--canvas)`})]})}function kh({id:e,markerEnd:t,style:n,data:r}){let{route:i}=r,a=$(r.diagramType).sequence,o=r.directed&&r.flowRunning,s=`sequence-flow-${(0,y.useId)().replaceAll(`:`,``)}`,c=i.points.map(e=>e.x),l=i.points.map(e=>e.y),u={x:Math.min(...c)-32,y:Math.min(...l)-32,width:Math.max(64,Math.max(...c)-Math.min(...c)+64),height:Math.max(64,Math.max(...l)-Math.min(...l)+64)},d=$(r.diagramType).cardinalities,f=Sm(r,r.diagramType),p=f.end===`arrow`?t:f.end?`url(#codegraph-${f.end})`:void 0,m=f.start?`url(#codegraph-${f.start})`:void 0;return(0,x.jsxs)(x.Fragment,{children:[a&&r.dashed&&o&&(0,x.jsx)(`defs`,{children:(0,x.jsx)(`mask`,{id:s,maskUnits:`userSpaceOnUse`,maskContentUnits:`userSpaceOnUse`,...u,children:(0,x.jsx)(`path`,{d:i.path,fill:`none`,stroke:`white`,strokeWidth:`3.2`,strokeDasharray:`5 5`})})}),r.selectionLinked&&(0,x.jsxs)(`g`,{className:`selection-feedback ${o?`has-flow`:``} ${r.selectionPulse>0?`is-animated`:``}`,"data-selection-pulse":r.selectionPulse,style:{stroke:r.selectionColor},children:[(0,x.jsx)(`path`,{className:`selection-edge-halo`,d:i.path}),(0,x.jsx)(`path`,{className:`selection-edge-shine`,d:i.path})]},`${r.selectionId}:${r.selectionPulse}`),(0,x.jsx)(xu,{id:e,path:i.path,markerEnd:p,markerStart:m,style:{...n,strokeOpacity:1}}),r.directed&&(!a||o)&&(0,x.jsx)(`path`,{className:`edge-flow ${a?`sequence-edge-flow`:``}`,d:i.path,mask:a&&r.dashed?`url(#${s})`:void 0,style:{stroke:n.stroke,animationPlayState:r.flowRunning?`running`:`paused`}}),d&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(Oh,{value:r.sourceCardinality,point:i.points[0],neighbor:i.points[1],color:r.relationColor}),(0,x.jsx)(Oh,{value:r.targetCardinality,point:i.points.at(-1),neighbor:i.points.at(-2),color:r.relationColor})]}),(i.endpointLabels??[]).map(e=>(0,x.jsxs)(`g`,{className:`edge-multiplicity`,"data-endpoint":e.role,children:[(0,x.jsx)(`rect`,{...e.labelBox,rx:`4`,fill:`var(--canvas)`}),(0,x.jsx)(`text`,{x:e.labelPoint.x,y:e.labelBox.y+3+Z.body,fontSize:Z.body,fontWeight:`500`,textAnchor:`middle`,fill:r.labelColor,children:e.label})]},e.role)),i.label&&(0,x.jsx)(X,{children:(0,x.jsx)(`button`,{type:`button`,className:`edge-label nodrag nopan`,"data-edge-id":e,onClick:e=>{e.stopPropagation(),r.onSelect()},onKeyDown:e=>{[`Enter`,` `].includes(e.key)&&(e.stopPropagation(),e.repeat&&e.preventDefault())},style:{width:i.labelBox.width,height:i.labelBox.height,color:r.labelColor,background:r.labelSurface,fontWeight:r.selectionLinked?650:500,transform:`translate(-50%, -50%) translate(${i.labelPoint.x}px, ${i.labelPoint.y}px)`},children:i.labelLines.map((e,t)=>(0,x.jsx)(`span`,{children:i.labelRuns?i.labelRuns[t].map((e,t)=>(0,x.jsx)(`span`,{style:{color:r.roleColors?.[e.role]},children:e.text},t)):t===0&&r.pair&&e.startsWith(r.pair.label)?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`b`,{className:`pair-label`,style:{borderColor:n.stroke},children:r.pair.label}),e.slice(r.pair.label.length)]}):e},t))})})]})}var Ah={diagram:Eh,boundary:Dh},jh={routed:kh};function Mh(e,t){return[...[...e.groups??[]].sort((t,n)=>Nm(t,e.groups??[])-Nm(n,e.groups??[])).map(t=>({id:t.id,type:`boundary`,position:t.position,data:{...t},style:{width:t.size.width,height:t.size.height,pointerEvents:`none`},selectable:!1,draggable:!1,connectable:!1,zIndex:-(e.groups?.length??0)+Nm(t,e.groups??[])})),...e.nodes.map(n=>({id:n.id,type:`diagram`,className:t===`sequence`?`sequence-column`:void 0,position:n.position,data:{...n,diagramType:t,locale:e.meta.locale},style:{width:n.size.width,height:n.size.height,...t===`sequence`?{pointerEvents:`none`}:{}},zIndex:2}))]}function Nh(e,t){return e.edges.map(e=>({id:e.id,source:e.source,target:e.target,type:`routed`,zIndex:t===`sequence`?3:0,markerEnd:ym(e,t)?{type:Da.ArrowClosed}:void 0,data:{...e,diagramType:t}}))}var Ph=e=>`linear-gradient(90deg, ${e.map((t,n)=>`${t} ${n/e.length*100}% ${(n+1)/e.length*100}%`).join(`, `)})`;function Fh(e,t,n){let r=$(e.meta.diagramType),i=new Map,a=new Map;for(let o of e.nodes){let e=Af(o,t,n),s=e.role===`flight`?`ramp`:o.kind===`actor`?`actor`:[`initial`,`final`].includes(o.kind)?o.kind:r.compartments?`compartment`:`box`,c=`${e.role}-${s}`;s===`ramp`&&a.set(e.toneIndex,e.stroke),i.set(c,{id:c,...e,label:r.legend?.[e.role]??e.label,shape:s})}a.size&&(i.get(`flight-ramp`).ramp=[...new Set([...a].sort(([e],[t])=>e-t).map(([,e])=>e))]);for(let t of[...new Set([...e.nodes.map(e=>e.module),...e.edges.map(e=>e.module)].filter(Boolean))].sort()){let e=n?.get(t);e&&i.set(`module-${t}`,{id:`module-${t}`,role:`module`,label:t,shape:`module`,fill:e.chip,stroke:e.accent})}if(e.edges.some(t=>!bm(t,e.meta.diagramType))&&i.set(`solid`,{id:`solid`,label:r.legend?.solid??`Solid relation`,shape:`solid`,stroke:t.edge}),e.edges.some(t=>bm(t,e.meta.diagramType))&&i.set(`dashed`,{id:`dashed`,label:`Dashed: notation / convention / inference`,shape:`dashed`,stroke:t.edge}),r.curvedSelfLoops&&e.edges.some(e=>e.source===e.target)&&i.set(`self`,{id:`self`,label:`Self-transition: handled without leaving the state`,shape:`self`,stroke:t.edge}),r.sequence)for(let[n,r]of[[`sync`,`Synchronous message`],[`async`,`Asynchronous message`],[`return`,`Return message`]])e.edges.some(e=>e.kind===n)&&i.set(n,{id:n,label:r,shape:n,stroke:t.edge});return r.sequence&&e.executions?.length&&i.set(`execution`,{id:`execution`,label:`Activation: execution interval; offset means nesting`,shape:`execution`,fill:t.accentSoft,stroke:t.accent}),r.sequence&&e.edges.some(e=>e.replyTo)&&i.set(`pair`,{id:`pair`,label:`C ID: paired call and return share a color`,shape:`solid`,stroke:t.accent}),r.sequence&&e.groups?.some(e=>e.kind===`par`)&&i.set(`parallel`,{id:`parallel`,label:`par: concurrent branches; vertical position is not order`,shape:`dashed`,stroke:t.edge}),[...i.values()].map(t=>({...t,label:df(e.meta.locale,t.label)}))}var Ih=(e,t)=>Math.ceil(qf(String(e??``).replace(/\r?\n/g,` `),1/0,t).width*1.15),Lh=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e,Math.ceil(t)]));function Rh(e,t,n=`en`){let r=$(t),i=Ih(e.label,Z.title),a=Ih(e.subtitle,Z.body);if(t===`state`&&[`initial`,`final`].includes(e.kind)){if(!e.subtitle)return{width:28,height:28};let t=Math.max(i,a);return Lh({width:t+50,height:Math.max(80,qf(e.label,t,Z.title,29).height+5+qf(e.subtitle,t,Z.body,23.2).height+16)})}if(t===`state`&&qp.some(t=>e.kind===`state`&&typeof e[t]==`string`&&e[t].trim())){let t=Math.max(240,Math.min(480,Math.max(Math.max(i,a)+60,...qp.filter(t=>e[t]).map(t=>Ih(e[t],Z.small)+Xp)))),n=qf(e.label,t-24,Z.title,29),r=qf(e.subtitle,t-24,Z.body,23.2);return Lh({width:t,height:Math.max(72,n.height+(r.height?5+r.height:0)+16)+Yp({...e,size:{width:t,height:0}}).height})}if(r.sequence||e.kind===`actor`)return{width:Math.max(160,i+28,a+28),height:r.sequence?Mp(e)+48:104+(e.subtitle?24:0)};if(r.cardinalities){let t=e.fields.map(e=>{let t=Ih(e.name,Z.body),n=Ih(e.type,Z.body);return Math.max(t+n+74,n/.55)});return Lh({width:Math.max(240,i+26,a+60,...t),height:Math.max(Z.erHeader/.4,Z.erHeader+e.fields.length*Z.erRow)})}if(r.compartments){let t=e.attributes??[],n=e.methods??[];return Lh({width:Math.max(240,i+26,a+26,...[...t,...n].map(e=>Ih(e,Z.body)+26)),height:Z.classHeader+(e.subtitle?24:0)+(t.length?t.length*Z.classRow+13:30)+(n.length?n.length*Z.classRow+13:30)})}let o={width:Math.max(240,Math.min(480,Math.max(i,a)+60)),height:100};if(r.cardLayout){let t=r.contentInset?.({...e,size:o})??0;return o.width=Math.max(o.width,Ih(df(n,Pf[e.kind]??e.kind),Z.small)+70+2*t),o.height=Math.max(100,Jf({...e,size:{...o,width:o.width-2*(r.contentInset?.({...e,size:o})??0)}}).minHeight),Lh(o)}let s=r.textArea??(e=>({width:e.size.width-36,height:e.size.height-20}));for(let t=0;t<16;t++){let t=s({...e,size:o}),n=qf(e.label,t.width,Z.title,29),r=qf(e.subtitle,t.width,Z.body,23.2),i=n.height+(r.height?5+r.height:0);if(t.height>=i)return Lh(o);o.height+=Math.ceil((i-t.height)*2+2)}throw Error(`Cannot measure full text for ${t} node ${e.id}`)}var zh=new Set([`source`,`code`,`config`,`schema`,`test`,`document`,`framework`,`inference`]),Bh=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function Vh(e,t,n){(typeof e!=`string`||e.trim()===``)&&n.push(`${t} must be a non-empty string`)}function Hh(e,t,n){e!==void 0&&typeof e!=`string`&&n.push(`${t} must be a string`)}function Uh(e,t,n,r=!1){for(let[i,a]of[[`position`,[`x`,`y`]],[`size`,[`width`,`height`]]])if(!(r&&e[i]===void 0)){if(!Bh(e[i])){n.push(`${t}.${i} is required`);continue}for(let r of a){let a=e[i][r];(!Number.isFinite(a)||a<0)&&n.push(`${t}.${i}.${r} must be a non-negative finite number`)}}}function Wh(e,t,n){if(!e||typeof e!=`object`||Array.isArray(e)){n.push(`${t} must be an object`);return}for(let r of[`x`,`y`])(!Number.isFinite(e[r])||e[r]<0)&&n.push(`${t}.${r} must be a non-negative finite number`)}function Gh(e,t,n){e!==void 0&&(!Array.isArray(e)||e.some(e=>typeof e!=`string`||e.trim()===``))&&n.push(`${t} must be an array of non-empty strings`)}function Kh(e,{inputOnly:t=!1,audit:n=!0}={}){let r=[];if(!Bh(e))return[`graph must be an object`];Bh(e.meta)||r.push(`meta must be an object`),Vh(e.meta?.title,`meta.title`,r),Vh(e.meta?.sourceRef,`meta.sourceRef`,r);for(let t of[`subtitle`,`scope`])Hh(e.meta?.[t],`meta.${t}`,r);e.meta?.locale!==void 0&&!uf.includes(e.meta.locale)&&r.push(`meta.locale is unsupported`);let i=vm(e);hm.includes(i)||r.push(`meta.diagramType is unsupported`);let a=$(i)??$(`architecture`);if((!Array.isArray(e.nodes)||e.nodes.length===0)&&r.push(`nodes must be a non-empty array`),Array.isArray(e.edges)||r.push(`edges must be an array`),e.groups!==void 0&&!Array.isArray(e.groups)&&r.push(`groups must be an array when provided`),r.length)return r;let o=new Set,s=new Set;for(let[n,c]of(e.nodes??[]).entries()){let e=`nodes[${n}]`;if(!Bh(c)){r.push(`${e} must be an object`);continue}Vh(c?.id,`${e}.id`,r),Vh(c?.label,`${e}.label`,r),Hh(c.subtitle,`${e}.subtitle`,r),c.module!==void 0&&Vh(c.module,`${e}.module`,r),a.nodeKinds.includes(c?.kind)||r.push(`${e}.kind is unsupported for ${i}`),Uh(c??{},e,r,t),typeof c.id==`string`&&o.has(c.id)&&r.push(`${e}.id duplicates ${c.id}`),o.add(c?.id),s.add(c?.id),c.source!==void 0&&!Bh(c.source)?r.push(`${e}.source must be an object`):c.source&&(Vh(c.source.file,`${e}.source.file`,r),Hh(c.source.symbol,`${e}.source.symbol`,r),c.source.kind!==void 0&&!zh.has(c.source.kind)&&r.push(`${e}.source.kind is unsupported`),(!Number.isInteger(c.source.lineStart)||c.source.lineStart<1)&&r.push(`${e}.source.lineStart must be a positive integer`),c.source.lineEnd!==void 0&&(!Number.isInteger(c.source.lineEnd)||Number.isInteger(c.source.lineStart)&&c.source.lineEnd<c.source.lineStart)&&r.push(`${e}.source.lineEnd must be an integer at or after lineStart`));for(let t of[`facts`,`tags`,`attributes`,`methods`])Gh(c[t],`${e}.${t}`,r);if(c.fields!==void 0){if(!Array.isArray(c.fields))r.push(`${e}.fields must be an array`);else for(let[t,n]of c.fields.entries()){let i=`${e}.fields[${t}]`;if(!Bh(n)){r.push(`${i} must be an object`);continue}Vh(n.name,`${i}.name`,r),Vh(n.type,`${i}.type`,r),n.key!==void 0&&![`PK`,`FK`,`UK`].includes(n.key)&&r.push(`${i}.key is unsupported`),n.nullable!==void 0&&typeof n.nullable!=`boolean`&&r.push(`${i}.nullable must be boolean`)}}a.validateNode?.(c,e,r,{requireString:Vh,validateStringArray:Gh})}for(let[n,s]of(e.groups??[]).entries()){let e=`groups[${n}]`;if(!Bh(s)){r.push(`${e} must be an object`);continue}Vh(s?.id,`${e}.id`,r),Vh(s?.label,`${e}.label`,r),a.groupKinds.includes(s?.kind)||r.push(`${e}.kind is unsupported for ${i}`),Uh(s??{},e,r,t),typeof s.id==`string`&&o.has(s.id)&&r.push(`${e}.id duplicates ${s.id}`),o.add(s?.id)}let c=new Set,l=new Set;for(let[n,o]of(e.edges??[]).entries()){let e=`edges[${n}]`;if(!Bh(o)){r.push(`${e} must be an object`);continue}Vh(o?.id,`${e}.id`,r),Hh(o.label,`${e}.label`,r),o.module!==void 0&&Vh(o.module,`${e}.module`,r),Vh(o?.source,`${e}.source`,r),Vh(o?.target,`${e}.target`,r),a.edgeKinds.includes(o?.kind)||r.push(`${e}.kind is unsupported for ${i}`),zh.has(o?.evidence)||r.push(`${e}.evidence is unsupported`),typeof o.id==`string`&&c.has(o.id)&&r.push(`${e}.id duplicates ${o.id}`),c.add(o?.id),typeof o.source==`string`&&!s.has(o.source)&&r.push(`${e}.source does not name a node: ${o.source}`),typeof o.target==`string`&&!s.has(o.target)&&r.push(`${e}.target does not name a node: ${o.target}`),o?.route!==void 0&&(!o.route||typeof o.route!=`object`||Array.isArray(o.route)?r.push(`${e}.route must be an object`):(o.route.via!==void 0&&(Array.isArray(o.route.via)?o.route.via.forEach((t,n)=>Wh(t,`${e}.route.via[${n}]`,r)):r.push(`${e}.route.via must be an array`)),o.route.labelAt!==void 0&&Wh(o.route.labelAt,`${e}.route.labelAt`,r),o.route.messageY!==void 0&&(i!==`sequence`||!Number.isFinite(o.route.messageY)||o.route.messageY<0)&&r.push(`${e}.route.messageY must be a non-negative finite number for sequence`))),i===`sequence`&&!t&&o.route?.messageY===void 0&&r.push(`${e}.route.messageY is required for a positioned sequence message; regenerate with --layout auto`),a.validateEdge?.(o,e,r,{requireString:Vh,sequenceOrders:l})}return r.length===0&&r.push(...qh(e)),r.length===0&&r.push(...Mm(e)),r.length===0&&r.push(...Gm(e,{inputOnly:t})),r.length===0&&!t&&n&&r.push(...wh(e).errors),r}function qh(e){let t=[],n=vm(e),r=n===`sequence`,i=new Map(e.nodes.map(e=>[e.id,e])),a=new Map((e.groups??[]).map(e=>[e.id,e]));for(let i of e.nodes)if(i.groupId!==void 0&&(r?t.push(`node ${i.id}.groupId is not supported for sequence participants`):typeof i.groupId!=`string`||!a.has(i.groupId)?t.push(`node ${i.id}.groupId does not name a group: ${String(i.groupId)}`):n===`usecase`&&i.kind===`actor`&&t.push(`node ${i.id}.groupId places an actor inside a system boundary`)),i.layout!==void 0){if(!Bh(i.layout))t.push(`node ${i.id}.layout must be an object`);else for(let e of[`rank`,`order`])i.layout[e]!==void 0&&(!Number.isInteger(i.layout[e])||i.layout[e]<0)&&t.push(`node ${i.id}.layout.${e} must be a non-negative integer`)}if(!r)for(let e of a.values()){if(e.parentId===void 0)continue;(typeof e.parentId!=`string`||!a.has(e.parentId))&&t.push(`group ${e.id}.parentId does not name a group: ${String(e.parentId)}`);let n=new Set([e.id]),r=a.get(e.parentId);for(;r;){if(n.has(r.id)){t.push(`group ${e.id}.parentId contains a cycle at ${r.id}`);break}n.add(r.id),r=a.get(r.parentId)}}if(e.layout!==void 0&&!Bh(e.layout))t.push(`layout must be an object`);else for(let n of[`primaryPath`,`participantOrder`]){let a=e.layout?.[n];if(a!==void 0){if(!Array.isArray(a)||!a.length||a.some(e=>typeof e!=`string`||!i.has(e))||new Set(a).size!==a.length){t.push(`layout.${n} must be a non-empty list of distinct node IDs`);continue}if(n===`participantOrder`){(!r||a.length!==i.size)&&t.push(`layout.participantOrder must be a complete permutation of sequence participants`);let e=a.map(e=>i.get(e).layout?.order).filter(e=>e!==void 0);e.some((t,n)=>n&&t<=e[n-1])&&t.push(`layout.participantOrder conflicts with node.layout.order`)}else{r&&t.push(`layout.primaryPath is not supported for sequence; use participantOrder`);for(let n=1;n<a.length;n++){e.edges.some(e=>e.source===a[n-1]&&e.target===a[n])||t.push(`layout.primaryPath has no directed edge from ${a[n-1]} to ${a[n]}`);let r=i.get(a[n-1]).layout?.rank,o=i.get(a[n]).layout?.rank;r!==void 0&&o!==void 0&&r>=o&&t.push(`layout.primaryPath conflicts with node.layout.rank at ${a[n]}`)}}}}r&&new Set(e.nodes.map(e=>e.layout?.rank).filter(e=>e!==void 0)).size>1&&t.push(`sequence participants must share one layout.rank`);for(let r of e.edges){let e=i.get(r.source),a=i.get(r.target);n===`class`&&[`inheritance`,`implementation`].includes(r.kind)&&(r.kind===`implementation`&&a.kind!==`interface`&&t.push(`edge ${r.id} implementation target must be an interface`),e.layout?.rank!==void 0&&a.layout?.rank!==void 0&&a.layout.rank>=e.layout.rank&&t.push(`edge ${r.id} layout.rank must place parent/interface ${a.id} above ${e.id}`)),n===`usecase`&&[`include`,`extend`].includes(r.kind)&&(e.kind!==`usecase`||a.kind!==`usecase`)&&t.push(`edge ${r.id} ${r.kind} endpoints must both be use cases`)}return t}var Jh=e=>({...e.position,...e.size}),Yh=(e,t)=>t.x>=e.x&&t.y>=e.y&&t.x+t.width<=e.x+e.width&&t.y+t.height<=e.y+e.height,Xh=(e,t)=>e.x<t.x+t.width&&t.x<e.x+e.width&&e.y<t.y+t.height&&t.y<e.y+e.height,Zh=e=>e.points.slice(1).map((t,n)=>[e.points[n],t]);function Qh(e,t,n,r=[]){return r.length||(r=(String(n).includes(`
272
+ ${t}.field-key{font:700 ${X.small}px ui-monospace,monospace;fill:${e.accent}}
273
+ ${t}.field-name{font:500 ${X.body}px ui-monospace,monospace;fill:${e.ink2}}
274
+ ${t}.entity-title{font:650 ${X.title}px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink}}
275
+ ${t}.entity-meta{font:500 ${X.small}px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;fill:${e.ink2}}
276
+ ${t}.member{font:500 ${X.body}px ui-monospace,monospace;fill:${e.ink2}}
277
+ ${t}.field-type{font:400 ${X.body}px ui-monospace,monospace;fill:${e.ink3}}
278
+ `}function qp(e,t,n,r,i,a,o,s,c=0,l=0){if(e.classicCard)return Zp(e,t,n,r,i,a,o,s,c);let{title:u,subtitle:d,source:f,tag:p,contentHeight:m}=Cp({...e,size:{...e.size,width:e.size.width-c*2}},o,!1,l),h=t+c,g=n+Math.max(0,(e.size.height-m)/2)+yp.pad,_=h+yp.textX,v=g+u.height+(d.height?4:0),y=v+d.height+(f.height?6:0),b=u.lines.map((e,t)=>Q(_,g+20+t*u.lineHeight,e,`title`)).join(``),x=d.lines.map((e,t)=>Q(_,v+17+t*d.lineHeight,e,`body`)).join(``),S=f.lines.map((e,t)=>Q(_,y+14+t*f.lineHeight,e,`meta`)).join(``),C={x:h+yp.pad,y:g+(yp.titleLine-yp.plate)/2},w=t+e.size.width-c-yp.pad-p.width-l;return`<g filter="url(#node-shadow)">${Jp(e,t,n,r,i,s)}${Yp(e,C.x,C.y,yp.plate,a)}<rect x="${w}" y="${g+3}" width="${p.width}" height="20" rx="6" fill="${a.badge}"/>${Q(w+p.width/2,g+18,p.text,`stereotype`,` text-anchor="middle"`)}${b}${x}${S}</g>`}var Jp=(e,t,n,r,i,a)=>Np(a(e,t,n),{fill:r,stroke:i,"stroke-width":e.appearance?.moduleColor||e.appearance?.ring?1.5:1});function Yp(e,t,n,r,i){let a=e.appearance?.chip,o=a?`#ffffff`:qf(e)?i.accent:Kf.has(e.kind)?i.data:e.kind===`failure`?i.warn:i.ink2,s=(r-15)/2;return`<rect x="${t}" y="${n}" width="${r}" height="${r}" rx="7" fill="${a??i.badge}"/><svg x="${t+s}" y="${n+s}" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="${o}" stroke-width="${a?1.75:1.5}">${Xp(e)}</svg>`}var Xp=e=>Kf.has(e.kind)?`<ellipse cx="12" cy="5" rx="8" ry="3"/><path d="M4 5v14c0 4 16 4 16 0V5M4 12c0 4 16 4 16 0"/>`:[`external`,`actor`].includes(e.kind)?`<rect x="6" y="2" width="12" height="20" rx="3"/><path d="M10 18h4"/>`:[`security`,`config`].includes(e.kind)?`<path d="m12 2 8 4v6c0 5-8 10-8 10S4 17 4 12V6Z"/><path d="m8 12 3 3 5-6"/>`:`<rect x="4" y="4" width="16" height="16" rx="3"/><path d="M8 9h8M8 13h8M8 17h4"/>`;function Zp(e,t,n,r,i,a,o,s,c){let{title:l,subtitle:u}=Cp({...e,size:{...e.size,width:e.size.width-c*2}},o,!0),d=l.lines.map((e,r)=>Q(t+15+c,n+68+r*l.lineHeight,e,`title`)).join(``),f=u.lines.map((e,r)=>Q(t+15+c,n+68+l.height+r*u.lineHeight,e,`body`)).join(``);return`<g filter="url(#node-shadow)">${Jp(e,t,n,r,i,s)}${Yp(e,t+15+c,n+13,25,a)}${Q(t+47+c,n+29,Sp(e,o).text,`stereotype`)}${d}${f}</g>`}var Qp=[[.06,0],[.94,0],[1,.16],[1,.84],[.94,1],[.06,1],[0,.84],[0,.16]],$p=[[.08,0],[1,0],[.92,1],[0,1]];function em(e,t,n){let{width:r,height:i}=e.size;if(bg(e))return Pp(e,t,n,16);if(e.kind===`external`)return Lp(e,t,n,Ip);if(e.kind===`security`)return Pp(e,t,n,22);if(e.kind===`failure`)return Lp(e,t,n,Qp);if(e.kind===`config`)return Lp(e,t,n,$p);if(e.kind===`business`)return Pp(e,t,n,Math.min(28,i/2));let a=Pp(e,t,n,[`service`,`component`].includes(e.kind)?16:10);return e.kind===`data`?[...a,[`path`,{d:`M${t+10} ${n}V${n+i}M${t+r-10} ${n}V${n+i}`,fill:`none`}]]:e.kind===`database`?Fp(e,t,n):e.kind===`framework`?[...a,[`path`,{d:`M${t+16} ${n+6}H${t+r-16}M${t+16} ${n+i-6}H${t+r-16}`,fill:`none`,"stroke-dasharray":`7 5`}]]:a}var tm=(e,t,n)=>bg(e)?Hp(e,t,n,16):e.kind===`external`?Wp(e,t,n,Ip):e.kind===`security`?Hp(e,t,n,22):e.kind===`failure`?Wp(e,t,n,Qp):e.kind===`config`?Wp(e,t,n,$p):e.kind===`business`?Hp(e,t,n,Math.min(28,e.size.height/2)):e.kind===`database`?Vp(e,t,n,{left:12,right:12,top:2,bottom:2}):Vp(e,t,n),nm=e=>[`external`,`config`,`failure`].includes(e.kind)?Math.min(28,e.size.width*.08):e.kind===`database`?12:0,rm={dashedKinds:[`framework`,`optional`],id:`architecture`,label:`Architecture`,nodeKinds:[`external`,`config`,`framework`,`security`,`service`,`business`,`data`,`failure`,`system`,`component`,`database`],groupKinds:[`runtime`,`security`,`ownership`,`external`],edgeKinds:[`request`,`call`,`data`,`success`,`failure`,`framework`,`optional`,`depends`,`aggregates`,`inherits`,`provides`],render:(e,t,n,r,i,a,o)=>bg(e)?kg(e,t,n,a,r,i):qp(e,t,n,r,i,a,o,em,nm(e)),outline:em,anchor:tm,cardLayout:!0,contentInset:nm},im=.12,am=(e,t,n)=>e.kind===`decision`?Rp(e,t,n):[`input`,`output`].includes(e.kind)?[[`polygon`,{points:`${t+e.size.width*im},${n} ${t+e.size.width},${n} ${t+e.size.width*.88},${n+e.size.height} ${t},${n+e.size.height}`}]]:Pp(e,t,n,[`start`,`end`].includes(e.kind)?e.size.height/2:10),om=(e,t,n)=>e.kind===`decision`?Wp(e,t,n,[[.5,0],[1,.5],[.5,1],[0,.5]]):[`input`,`output`].includes(e.kind)?Wp(e,t,n,[[im,0],[1,0],[.88,1],[0,1]]):[`start`,`end`].includes(e.kind)?Hp(e,t,n,e.size.height/2):Vp(e,t,n),sm=e=>{let{width:t,height:n}=e.size,r=[`input`,`output`].includes(e.kind)?t*im+12:[`start`,`end`].includes(e.kind)?Math.min(n/2,t/4):18;return{width:e.kind===`decision`?t/2-8:t-r*2,height:e.kind===`decision`?n/2-8:n-12}};function cm(e,t,n,r,i){let{width:a,height:o}=e.size,s=sm(e),c=Mp(t+a/2,n+o/2,e.label,s.width,s.height,e.subtitle),l=e.kind===`subprocess`?`<path d="M ${t+11} ${n}V ${n+o}M ${t+a-11} ${n}V ${n+o}" stroke="${i}"/>`:``;return`<g class="shape-label">${Np(am(e,t,n),{fill:r,stroke:i,"stroke-width":1.2})}${l}${c}</g>`}var lm={id:`flowchart`,label:`Flowchart`,nodeKinds:[`start`,`end`,`process`,`decision`,`input`,`output`,`subprocess`],groupKinds:[],edgeKinds:[`flow`,`yes`,`no`,`success`,`failure`],render:cm,outline:am,anchor:om,textArea:sm,edgeLabel:(e,t)=>e.label??([`yes`,`no`].includes(e.kind)?bf(t,e.kind):``)},um=(e,t,n)=>e.kind===`actor`?zp(e,t,n):Pp(e,t,n,7,dm(e));function dm(e){let t=(e.size?.width??280)-28,n=Z(e.label,t,20,26).lines.length,r=e.subtitle?Z(e.subtitle,t,16,22).lines.length:0;return(e.kind===`actor`?X.sequenceActorHeader+(e.subtitle?22:0):X.sequenceHeader)+Math.max(0,n-1)*26+Math.max(0,r-1)*22}function fm(e,t,n,r,i,a,o){let s=t+e.size.width/2,c=e.kind===`actor`,l=dm(e),u=Np(um(e,t,n),{fill:r,stroke:i,"stroke-width":1.5}),d=Z(e.label,e.size.width-28,20,26).lines,f=n+(c?98:e.subtitle?44:53),p=(c?``:Q(s,n+20,bf(o,cp[e.kind]??e.kind),`stereotype`,` text-anchor="middle"`))+d.map((e,t)=>Q(s,f+t*26,e,`participant-title`,` text-anchor="middle"`)).join(``),m=e.subtitle?Z(e.subtitle,e.size.width-28,16,22).lines.map((e,t)=>Q(s,f+(d.length-1)*26+(c?28:22)+t*22,e,`body`,` text-anchor="middle"`)).join(``):``,h=(e.executionRects??[]).map(e=>`<rect class="sequence-execution" data-execution-id="${Ap(e.id)}" x="${t+e.x}" y="${n+e.y}" width="${e.width}" height="${e.height}" fill="${Hf(e.color,a.surface,.14)}" stroke="${e.color}" stroke-width="1.5"/>`).join(``);return`<g><title>${Ap([e.label,e.subtitle].filter(Boolean).join(` · `))}</title><g class="sequence-head"><g class="${c?`actor-figure`:`participant-head`}">${u}</g>${p}${m}</g><path class="lifeline" d="M ${s} ${n+l}V ${n+e.size.height}" stroke="${a.edge}" stroke-width="1" stroke-dasharray="4 6"/>${h}</g>`}var pm={dashedKinds:[`return`],markers:{async:{end:`arrow-open`},return:{end:`arrow-open`}},id:`sequence`,label:`Sequence`,nodeKinds:[`actor`,`participant`,`external`,`service`,`database`],groupKinds:[`alt`,`opt`,`loop`,`par`],edgeKinds:[`sync`,`async`,`return`],render:fm,outline:um,sequence:!0,selectionHeight:dm,edgeLabel:e=>`${String(e.order).padStart(2,`0`)} · ${e.label??``}`,validateEdge(e,t,n,{requireString:r,sequenceOrders:i}){!Number.isInteger(e?.order)||e.order<1?n.push(`${t}.order must be a positive integer for sequence`):i.has(e.order)?n.push(`${t}.order duplicates ${e.order}`):i.add(e.order),r(e?.label,`${t}.label`,n)}},mm=(e,t,n)=>Pp(e,t,n,9);function hm(e,t,n,r,i,a,o){let{erHeaderHeight:s,erRowHeight:c,erFontSize:l}=lp(e),u=jp(e.subtitle??bf(o,`Entity`),e.size.width-60),d=e.subtitle?X.body:X.small,f=e.fields.map((r,i)=>{let o=n+s+i*c,u=o+c/2+l*.35,d=Math.min(e.size.width*.55,Z(r.type,1/0,l).width);return`${r.key===`FK`?`<rect x="${t+1}" y="${o}" width="${e.size.width-2}" height="${c}" fill="${a.surface}"/>`:``}${i?`<path d="M${t} ${o}H${t+e.size.width}" stroke="${a.ruleSoft}"/>`:``}${r.key?Q(t+10,u-1,r.key,`field-key`,` style="fill:${r.key===`FK`?a.accent:a.data}"`):``}${Q(t+45,u,jp(r.name,Math.max(1,e.size.width-62-d)),`field-name`,` style="font-size:${l}px"`)}${Q(t+e.size.width-10,u-1,jp(r.type,d),`field-type`,` text-anchor="end" style="font-size:${l}px"`)}`}).join(``);return`<g filter="url(#node-shadow)">${Np(mm(e,t,n),{fill:a.surface2,stroke:i,"stroke-width":e.appearance?.moduleColor||e.appearance?.ring?1.5:1})}<path d="M${t+9} ${n}H${t+e.size.width-9}Q${t+e.size.width} ${n} ${t+e.size.width} ${n+9}V${n+s}H${t}V${n+9}Q${t} ${n} ${t+9} ${n}Z" fill="${e.appearance?.header??r}"/><path d="M${t} ${n+s}H${t+e.size.width}" stroke="${a.rule}"/>${Q(t+13,n+s*.43,jp(e.label,e.size.width-26),`entity-title`,` style="font-size:${Math.min(X.title,s*.38)}px;fill:${a.ink}"`)}${Q(t+13,n+s*.78,u,`entity-meta`,` style="font-size:${Math.min(d,s*.23)}px;fill:${a.ink2}"`)}${Q(t+e.size.width-13,n+s*.78,String(e.fields.length).padStart(2,`0`),`entity-meta`,` text-anchor="end" style="font-size:${Math.min(d,s*.23)}px;fill:${a.ink2}"`)}${f}</g>`}var gm={id:`er`,label:`ER diagram`,nodeKinds:[`entity`],groupKinds:[],edgeKinds:[`relationship`],render:hm,outline:mm,compartments:!0,cardinalities:!0,endpointStub:28,undirected:[`relationship`],validateNode(e,t,n){(!Array.isArray(e?.fields)||e.fields.length===0)&&n.push(`${t}.fields must be a non-empty array for er`)},validateEdge(e,t,n){for(let r of[`sourceCardinality`,`targetCardinality`])[`1`,`0..1`,`*`,`1..*`,`0..*`].includes(e?.[r])||n.push(`${t}.${r} is unsupported`)}},_m=[[0,.1],[.06,0],[1,0],[1,.9],[.94,1],[0,1]];function vm(e,t,n){let{width:r,height:i}=e.size;return e.kind===`device`?[[`rect`,{x:t+16,y:n,width:r-32,height:i,rx:10}],[`path`,{d:`M${t+r/2} ${n+i-10}V${n+i-5}M${t+r/2-30} ${n+i-5}H${t+r/2+30}`,fill:`none`}]]:e.kind===`node`?[...Lp(e,t,n,_m),[`path`,{d:`M${t} ${n+i*.1}L${t+r*.94} ${n+i*.1}L${t+r} ${n}M${t+r*.94} ${n+i*.1}V${n+i}`,fill:`none`}]]:e.kind===`container`?[...Pp(e,t,n,10),[`rect`,{x:t+r-30,y:n+13,width:16,height:11,rx:2,fill:`none`}],[`rect`,{x:t+r-34,y:n+17,width:16,height:11,rx:2,fill:`none`}]]:e.kind===`artifact`?[[`path`,{d:`M${t} ${n}H${t+r-28}L${t+r} ${n+28}V${n+i}H${t}Z`}],[`path`,{d:`M${t+r-28} ${n}V${n+28}H${t+r}`,fill:`none`}]]:e.kind===`database`?Fp(e,t,n):e.kind===`external`?Lp(e,t,n,Ip):e.kind===`service`?Pp(e,t,n,16):Pp(e,t,n,10)}var ym=(e,t,n)=>e.kind===`device`?Vp(e,t,n,{left:16,right:16,top:0,bottom:0}):e.kind===`node`?Wp(e,t,n,_m):e.kind===`database`?Vp(e,t,n,{left:12,right:12,top:2,bottom:2}):e.kind===`external`?Wp(e,t,n,Ip):e.kind===`service`?Hp(e,t,n,16):Vp(e,t,n),bm=e=>({container:24,artifact:18,node:20})[e.kind]??0,xm=e=>e.kind===`external`?Math.min(28,e.size.width*.08):[`device`,`database`].includes(e.kind)?12:0,Sm={id:`deployment`,label:`Deployment`,nodeKinds:[`device`,`node`,`container`,`artifact`,`service`,`database`,`external`],groupKinds:[`host`,`network`,`cluster`,`namespace`],edgeKinds:[`deploy`,`network`,`depends`],render:(e,...t)=>qp(e,...t,vm,xm(e),bm(e)),outline:vm,anchor:ym,cardLayout:!0,contentInset:xm,cardCorner:bm},Cm=(e,t,n)=>Pp(e,t,n,9);function wm(e,t,n,r,i,a){let o=e.attributes??[],s=e.methods??[],{classHeaderHeight:c,classRowHeight:l}=lp(e),u=o.length?o.length*l+13:30,d=n+c,f=d+u,p=e.kind===`interface`?`«interface»`:e.kind===`abstract`?`«abstract»`:``,m=e.size.width-26,h=o.map((e,n)=>Q(t+13,d+6+l/2+X.body*.35+n*l,jp(e,m),`member`)).join(``),g=s.map((e,n)=>Q(t+13,f+6+l/2+X.body*.35+n*l,jp(e,m),`member`)).join(``);return`<g filter="url(#node-shadow)">${Np(Cm(e,t,n),{fill:a.surface2,stroke:i,"stroke-width":e.appearance?.moduleColor||e.appearance?.ring?1.5:1})}<path d="M${t+9} ${n}H${t+e.size.width-9}Q${t+e.size.width} ${n} ${t+e.size.width} ${n+9}V${d}H${t}V${n+9}Q${t} ${n} ${t+9} ${n}Z" fill="${e.appearance?.header??r}"/><rect x="${t+1}" y="${f}" width="${e.size.width-2}" height="${Math.max(0,e.size.height-c-u-1)}" fill="${a.group}"/>${p?Q(t+13,n+24,p,`stereotype`):``}${Q(t+13,n+(p?50:X.classHeader/2+7),jp(e.label,m),`shape-title`)}${e.subtitle?Q(t+13,n+c-10,jp(e.subtitle,m),`body`):``}<path d="M${t} ${d}H${t+e.size.width}M${t} ${f}H${t+e.size.width}" stroke="${a.rule}"/>${h}${g}</g>`}var Tm={dashedKinds:[`implementation`,`dependency`],id:`class`,label:`Class diagram`,nodeKinds:[`class`,`interface`,`abstract`],groupKinds:[],edgeKinds:[`association`,`inheritance`,`implementation`,`composition`,`aggregation`,`dependency`],render:wm,outline:Cm,compartments:!0,undirected:[`association`,`composition`,`aggregation`],markers:{inheritance:{end:`triangle`},implementation:{end:`triangle`},composition:{start:`diamond-filled`},aggregation:{start:`diamond-open`},dependency:{end:`arrow-open`}},edgeLabel:(e,t)=>e.label??([`composition`,`aggregation`,`inheritance`,`implementation`].includes(e.kind)?bf(t,e.kind):``),validateEdge(e,t,n){for(let r of[`source`,`target`]){let i=e[`${r}Multiplicity`];if(i===void 0)continue;let a=typeof i==`string`&&/^(\d+)(?:\.\.(\d+|\*))?$/.exec(i);i!==`*`&&(!a||a[2]&&a[2]!==`*`&&Number(a[2])<Number(a[1]))&&n.push(`${t}.${r}Multiplicity must be *, a non-negative integer, or an ascending range`),[`inheritance`,`implementation`,`dependency`].includes(e.kind)&&n.push(`${t}.${r}Multiplicity is only supported on associations, aggregation and composition`)}},endpointLabels(e,t){return[`source`,`target`].flatMap(n=>{let r=e[`${n}Multiplicity`];if(r===void 0)return[];let i=n===`source`?t[0]:t.at(-1),a=n===`source`?t[1]:t.at(-2),o=Ep(r,1/0),s=i.y===a.y,c=Math.sign(s?a.x-i.x:a.y-i.y),l=s?{x:i.x+c*(24+o.width/2),y:i.y-6-o.height/2}:{x:i.x+6+o.width/2,y:i.y+c*(24+o.height/2)};return[{role:n,label:r,labelPoint:l,labelBox:{x:l.x-o.width/2,y:l.y-o.height/2,...o}}]})}},Em=e=>e.subtitle?14:e.size.width/2,Dm=[`entry`,`do`,`exit`],Om={side:16,pad:8,line:20,keyWidth:64};function km(e){let t=e.kind===`state`?Dm.filter(t=>typeof e[t]==`string`&&e[t].trim()).map(t=>({key:t,lines:Z(e[t],e.size.width-2*Om.side-Om.keyWidth,X.small,Om.line).lines})):[];return{rows:t,height:t.length?t.reduce((e,t)=>e+t.lines.length,0)*Om.line+2*Om.pad:0}}var Am=2*Om.side+Om.keyWidth,jm=e=>{let{height:t}=km(e);return t?{x:Om.side,y:e.size.height-t,width:e.size.width-2*Om.side,height:t}:null},Mm=(e,t,n)=>[`initial`,`final`].includes(e.kind)?[[`circle`,{cx:t+Em(e),cy:n+e.size.height/2,r:e.kind===`initial`?12:13}]]:e.kind===`choice`?Rp(e,t,n):Pp(e,t,n,12),Nm=(e,t,n)=>{if([`initial`,`final`].includes(e.kind)){let r=e.kind===`initial`?12:13,i=Em(e)-e.size.width/2;return Up({...e,position:{...e.position,x:e.position.x+i}},t,n-([`top`,`bottom`].includes(t)?i:0),e.size.width/2-r,e.size.height/2-r)}return e.kind===`choice`?Wp(e,t,n,[[.5,0],[1,.5],[.5,1],[0,.5]]):Vp(e,t,n)},Pm=e=>{if([`initial`,`final`].includes(e.kind)&&e.subtitle)return{x:42,y:8,width:e.size.width-50,height:e.size.height-16};let t=km(e).height,n={width:e.kind===`choice`?e.size.width/2-8:e.size.width-24,height:e.kind===`choice`?e.size.height/2-8:e.size.height-16-t};return t?{x:12,y:8,...n}:n};function Fm(e,t,n,r,i){let{rows:a,height:o}=km(e);if(!a.length)return``;let s=n+e.size.height-o,c=0;return`<path d="M${t} ${s}H${t+e.size.width}" fill="none" stroke="${r}" stroke-opacity=".35"/>${a.map(e=>e.lines.map((n,r)=>{let a=s+Om.pad+c++*Om.line+15;return(r?``:Q(t+Om.side,a,`${e.key} /`,`field-key`))+Q(t+Om.side+Om.keyWidth,a,n,`entity-meta`,` style="fill:${i.ink}"`)}).join(``)).join(``)}`}function Im(e,t,n,r,i,a){let o=t+e.size.width/2,s=n+e.size.height/2;if([`initial`,`final`].includes(e.kind)){let r=Pm(e),o=e.kind===`final`;return`<g class="state-dot">${Np(Mm(e,t,n),{fill:o?a.surface:i,stroke:i,"stroke-width":1})}${o?`<circle cx="${t+Em(e)}" cy="${s}" r="8" fill="${i}"/>`:``}</g>${e.subtitle?Mp(t+r.x+r.width/2,s,e.label,r.width,r.height,e.subtitle):``}`}let c=Pm(e),l=n+(e.size.height-km(e).height)/2;return`<g class="shape-label">${Np(Mm(e,t,n),{fill:r,stroke:i,"stroke-width":1.2})}${Mp(o,l,e.label,c.width,c.height,e.subtitle)}${Fm(e,t,n,i,a)}</g>`}var Lm=e=>[{text:e.label,role:`trigger`},...e.guard?[{text:`[${e.guard}]`,role:`guard`}]:[],...e.action?[{text:`/ ${e.action}`,role:`effect`}]:[]].filter(e=>e.text),Rm={id:`state`,label:`State diagram`,nodeKinds:[`initial`,`state`,`final`,`choice`],groupKinds:[],edgeKinds:[`transition`],render:Im,outline:Mm,anchor:Nm,textArea:Pm,activityArea:jm,curvedSelfLoops:!0,markers:{transition:{end:`arrow-open`}},edgeLabel:e=>Lm(e).map(e=>e.text).join(` `),edgeLabelParts:Lm,labelRoleColors:{trigger:`ink`,guard:`guard`},legend:{neutral:`State`,core:`Core state`,goal:`Core state`,ended:`Ended state`,failed:`Failed state`,flight:`In-progress state: warm to cool as it advances`,solid:`Transition`},validateNode(e,t,n){for(let r of Dm)e?.[r]!==void 0&&(typeof e[r]!=`string`||!e[r].trim()?n.push(`${t}.${r} must be a non-empty string`):e.kind!==`state`&&n.push(`${t}.${r} is only supported on state nodes`))},validateEdge(e,t,n){for(let r of[`guard`,`action`])e?.[r]!==void 0&&typeof e[r]!=`string`&&n.push(`${t}.${r} must be a string`)}},zm=e=>Math.max(0,(e.size.height-104-(e.subtitle?24:0))/2),Bm=e=>({width:e.size.width/Math.SQRT2-8,height:e.size.height/Math.SQRT2-8}),Vm=(e,t,n)=>e.kind===`actor`?zp(e,t,n+zm(e)):[[`ellipse`,{cx:t+e.size.width/2,cy:n+e.size.height/2,rx:e.size.width/2,ry:e.size.height/2}]],Hm=(e,t,n)=>e.kind===`actor`?Gp(e,t,n,zm(e)):Up(e,t,n);function Um(e,t,n,r,i,a){let o=t+e.size.width/2;if(e.kind===`actor`)return`<g><g class="actor-figure">${Np(Vm(e,t,n),{fill:r,stroke:i,"stroke-width":1.5})}</g>${Q(o,n+zm(e)+98,jp(e.label,e.size.width-12),`shape-title`,` text-anchor="middle" style="fill:${a.ink}"`)}${e.subtitle?Q(o,n+zm(e)+122,jp(e.subtitle,e.size.width-12),`body`,` text-anchor="middle"`):``}</g>`;let s=Bm(e);return`<g class="shape-label">${Np(Vm(e,t,n),{fill:r,stroke:i,"stroke-width":1.2})}${Mp(o,n+e.size.height/2,e.label,s.width,s.height,e.subtitle)}</g>`}var Wm={dashedKinds:[`include`,`extend`],id:`usecase`,label:`Use cases`,nodeKinds:[`actor`,`usecase`],groupKinds:[`system`],edgeKinds:[`association`,`include`,`extend`],render:Um,outline:Vm,anchor:Hm,textArea:Bm,undirected:[`association`],markers:{include:{end:`arrow-open`},extend:{end:`arrow-open`}},edgeLabel:e=>{let t={include:`«include»`,extend:`«extend»`}[e.kind];return t?e.label&&e.label!==e.kind?`${t} · ${e.label}`:t:e.label??``}},Gm=(e,t,n)=>e.kind===`dataStore`?[[`path`,{d:`M${t+e.size.width} ${n}H${t}V${n+e.size.height}H${t+e.size.width}M${t+12} ${n}V${n+e.size.height}`}]]:Pp(e,t,n,e.kind===`process`?24:10),Km=e=>({width:e.size.width-32,height:e.size.height-20});function qm(e,t,n,r,i){let a=Km(e);return`<g class="shape-label">${Np(Gm(e,t,n),{fill:r,stroke:i,"stroke-width":1.2})}${Mp(t+e.size.width/2,n+e.size.height/2,e.label,a.width,a.height,e.subtitle)}</g>`}var Jm=[rm,lm,pm,gm,Sm,Tm,Rm,Wm,{id:`dataflow`,label:`Data flow`,nodeKinds:[`external`,`process`,`dataStore`],groupKinds:[`ownership`,`external`],edgeKinds:[`data`],render:qm,outline:Gm,textArea:Km,anchor:(e,t,n)=>e.kind===`process`?Hp(e,t,n,24):Vp(e,t,n)}],Ym=Jm.map(e=>e.id);Object.fromEntries(Jm.map(e=>[e.id,e.label]));var Xm=new Map(Jm.map(e=>[e.id,e]));if(Xm.size!==Jm.length)throw Error(`Duplicate diagram type`);var Zm=e=>e?.meta?.diagramType??`architecture`,$=(e=`architecture`)=>Xm.get(e),Qm=(e,t,n,r=!1)=>t===`architecture`&&bg(e)?Sg(e):Cp({...e,size:{...e.size,width:e.size.width-2*($(t).contentInset?.(e)??0)}},n,r,$(t).cardCorner?.(e)),$m=e=>{let t=Zm(e);return!$(t).cardLayout||e.nodes.every(n=>!n.size||n.size.height>=Qm(n,t,e.meta?.locale).minHeight)},eh=(e,t)=>!($(t).undirected??[]).includes(e.kind),th=(e,t)=>(t!==`sequence`||e.kind!==`sync`)&&([`framework`,`inference`].includes(e.evidence)||($(t).dashedKinds??[]).includes(e.kind)),nh=(e,t)=>Object.fromEntries(Object.entries($(e)?.labelRoleColors??{}).map(([e,n])=>[e,t[n]])),rh=(e,t)=>({start:null,end:eh(e,t)?`arrow`:null,...$(t).markers?.[e.kind]}),ih=e=>/^templates-v([4-9]|\d{2,})-/.test(e.layout?.version??``),ah=e=>/^templates-v([3-9]|\d{2,})-/.test(e.layout?.version??``),oh=e=>/^templates-v([2-9]|\d{2,})-/.test(e.layout?.version??``);Object.freeze({bends:.5,crossings:2});var sh=(e,t,n=0)=>e.x<t.x+t.width+n&&e.x+e.width>t.x-n&&e.y<t.y+t.height+n&&e.y+e.height>t.y-n,ch=e=>e.points.slice(1).map((t,n)=>{let r=e.points[n];return{x:Math.min(r.x,t.x)-6,y:Math.min(r.y,t.y)-6,width:Math.abs(t.x-r.x)+12,height:Math.abs(t.y-r.y)+12}}),lh=(e,t)=>e?.id??String(t);function uh(e){let t=new Map((e.groups??[]).map(e=>[e.id,e])),n=new Map,r=(e,n=new Set)=>{if(!e.parentId||n.has(e.id))return``;n.add(e.id);let i=t.get(e.parentId);return i?r(i,n)+`${encodeURIComponent(i.id)}:${encodeURIComponent(e.parentOperandId)}/`:``};for(let e of t.values())if(Array.isArray(e.operands))for(let[t,i]of e.operands.entries())for(let a of Array.isArray(i?.edgeIds)?i.edgeIds:[])n.set(a,r(e)+`${encodeURIComponent(e.id)}:${encodeURIComponent(lh(i,t))}`);return n}function dh(e,t,n,r,i=new Set){if(i.has(e.id))return[];let a=new Set(i).add(e.id),o=r.filter(r=>r.parentId===e.id&&r.parentOperandId===lh(t,n));return[...t.edgeIds??[],...o.flatMap(e=>(e.operands??[]).flatMap((t,n)=>dh(e,t,n,r,a)))]}function fh(e){let t=[],n=new Map(e.edges.map(e=>[e.id,e])),r=e.groups??[],i=new Map;for(let a of r){let o=`group ${a.id}.operands`;if(e.meta.diagramType!==`sequence`){(a.operands!==void 0||a.parentOperandId!==void 0||a.loop!==void 0)&&t.push(`${o} is only supported for sequence`);continue}if(a.parentId!==void 0||a.parentOperandId!==void 0){let e=r.find(e=>e.id===a.parentId);(!e||!Array.isArray(e.operands)||!e.operands.some((e,t)=>lh(e,t)===a.parentOperandId))&&t.push(`group ${a.id} unknown parent operand ${a.parentId}/${a.parentOperandId}`)}let s=new Set([a.id]),c=r.find(e=>e.id===a.parentId);for(;c;){if(s.has(c.id)){t.push(`group ${a.id} parent cycle at ${c.id}`);break}s.add(c.id),c=r.find(e=>e.id===c.parentId)}if(a.operands===void 0&&a.kind!==`par`&&a.loop===void 0&&a.parentId===void 0)continue;let l=[`alt`,`par`].includes(a.kind);if(!Array.isArray(a.operands)||(l?a.operands.length<2:a.operands.length!==1)){t.push(`${o} needs ${l?`at least two branches`:`exactly one branch`}`);continue}a.kind===`loop`?(!Number.isInteger(a.loop?.min)||a.loop.min<0||!(a.loop?.max===`*`||Number.isInteger(a.loop?.max)&&a.loop.max>=a.loop.min))&&t.push(`group ${a.id}.loop needs a non-negative min and max >= min (or *)`):a.loop!==void 0&&t.push(`group ${a.id}.loop is only supported for loop`);let u=new Set;for(let[e,s]of a.operands.entries()){let c=`${o}[${e}] (${String(s?.id??e)})`;if(!s||typeof s!=`object`||Array.isArray(s)){t.push(`${c} must be an object`);continue}s.id!==void 0&&(typeof s.id!=`string`||!s.id.trim())&&t.push(`${c}.id must be a non-empty string`),a.kind!==`alt`&&s.id===void 0&&t.push(`${c}.id is required`);let l=lh(s,e);u.has(l)&&t.push(`${c} duplicate operand id`),u.add(l);let d=a.kind===`par`?`label`:`guard`;(typeof s[d]!=`string`||!s[d].trim())&&t.push(`${c}.${d} must be a non-empty string`),a.kind===`alt`&&s.guard?.trim?.()===`else`&&e!==a.operands.length-1&&t.push(`${c} else must be last and unique`),s.body!==void 0&&(typeof s.body!=`string`||!s.body.trim())&&t.push(`${c}.body must be a non-empty string`);let f=r.filter(e=>e.parentId===a.id&&e.parentOperandId===l);if(!Array.isArray(s.edgeIds)||!s.edgeIds.length&&!s.body?.trim?.()&&!f.length){t.push(`${c}.edgeIds must be an array with messages, body or a child fragment`);continue}for(let e of s.edgeIds)(typeof e!=`string`||!n.has(e))&&t.push(`${c} unknown edge ${String(e)}`),i.has(e)&&t.push(`${c} duplicate edge ${e}, already in ${i.get(e)}`),i.set(e,`${a.id}/${l}`)}}if(t.length)return t;for(let e of r){let i=-1/0;for(let[a,o]of(e.operands??[]).entries()){let s=dh(e,o,a,r).map(e=>n.get(e)?.order).filter(Number.isFinite);s.length&&Math.min(...s)<=i&&t.push(`group ${e.id}.operands order ranges must be ordered and non-interleaving`),s.length&&(i=Math.max(...s))}}return t}function ph(e,t){let n=0,r=t.find(t=>t.id===e.parentId),i=new Set([e.id]);for(;r&&!i.has(r.id);)i.add(r.id),n++,r=t.find(e=>e.id===r.parentId);return n}function mh(e,t=[],n){let r=e.x+e.width/2,i=e.y+e.height/2,a=t.filter(e=>e.position&&e.size&&r>=e.position.x&&r<=e.position.x+e.size.width&&i>=e.position.y&&i<=e.position.y+e.size.height).sort((e,n)=>ph(n,t)-ph(e,t))[0];return a?n?.get(a.id)?.fill:void 0}var hh=e=>Z(e.label,Math.min(Tf.headingWidth,Math.max(1,(e.size?.width??1/0)-88)),15.12,22);function gh(e,t){let n={...e.position,...e.size},r=hh(e),i={width:Math.min(r.width+16,n.width-88),height:Math.max(24,r.height+8),lines:r.lines};return[n.x+16,...t.map(e=>e.x+e.width+12)].map(e=>({x:e,y:n.y+6,...i})).find(e=>e.x>=n.x+16&&e.x+e.width<=n.x+n.width-64&&!t.some(t=>sh(e,t,4)))}function _h(e,t,n,r,i){let a={...e.position,...e.size},o=a.y+a.height,s=[...t.entries()],c=e=>e.points.some(e=>e.x>=a.x&&e.x<=a.x+a.width&&e.y>a.y&&e.y<a.y+a.height),l=s.filter(([,e])=>c(e)).map(([,e])=>e),u=[`group ${e.id}: alt branch conditions are unspecified (operands missing)`],d=[...i?[i]:[],{x:a.x+a.width-52,y:a.y,width:52,height:36},...s.flatMap(([,e])=>[e.labelBox,...ch(e)]),...r],f=Z(bf(n,`Branch conditions unspecified`),Math.max(1,a.width-32),14,20),p={width:f.width+8,height:f.height+4},m=[a.x+16,...d.map(e=>e.x+e.width+8),a.x+a.width-p.width-16],h=Math.min(...l.map(e=>Math.min(e.labelBox.y,...e.points.map(e=>e.y)))),g=[a.y+6,h,...l.map(e=>e.points[0].y-p.height-6)].flatMap(e=>m.map(t=>({x:t,y:e,...p}))).find(e=>e.x>=a.x+8&&e.x+e.width<=a.x+a.width-8&&e.y>=a.y+6&&e.y+e.height<=o-6&&!d.some(t=>sh(e,t,2)));return g||u.push(`layout: group ${e.id} has no room for guard 1; shorten the guard or adjust the frame/participant spacing`),{warnings:u,guards:[{...g??{x:a.x+16,y:a.y+38,...p},lines:f.lines,operandId:lh(null,0)}]}}function vh(e,t,n,r=[],i=[]){let a=[],o=[],s=[],c=[],l=[],u={...e.position,...e.size},d=u.y+u.height,f=r.find(t=>t.id===e.parentId);f&&!(u.x>=f.position.x+8&&u.x+u.width<=f.position.x+f.size.width-8&&u.y>=f.position.y+36&&d<=f.position.y+f.size.height-8)&&a.push(`layout: group ${e.id} exceeds parent ${f.id}`);let p=new Set,m=f;for(;m&&!p.has(m.id);)p.add(m.id),m=r.find(e=>e.id===m.parentId);for(let t of r)if(t.id!==e.id&&!p.has(t.id)){let n=t,i=new Set;for(;n?.parentId&&!i.has(n.id)&&(i.add(n.id),n.parentId!==e.id);)n=r.find(e=>e.id===n.parentId);if(n?.parentId===e.id)continue;sh(u,{...t.position,...t.size})&&a.push(`layout: groups ${e.id} and ${t.id} cross without nesting`)}if(e.kind!==`alt`&&!e.operands)return{errors:a,warnings:o,guards:s,bodies:c,separators:l};let h=gh(e,i);h||a.push(`layout: group ${e.id} has no room for heading; adjust its frame`);let g=r.filter(t=>t.parentId===e.id);if(e.kind===`alt`&&e.operands===void 0&&!e.parentId&&!g.length){let r=_h(e,t,n,i,h);return{errors:a,warnings:r.warnings,guards:r.guards,separators:[],heading:h}}if(!e.operands)return{errors:a,warnings:o,guards:s,bodies:c,separators:l};let _=Math.max(u.y+36,h?h.y+h.height+6:0),v=e.operands.map((n,i)=>{let a=g.filter(e=>e.parentOperandId===lh(n,i)).map(e=>({...e.position,...e.size,id:e.id})),o=dh(e,n,i,r).map(e=>t.get(e)).filter(Boolean),s=[...a,...o.flatMap(e=>[e.labelBox,...ch(e)])],c=e.kind===`par`?n.label:`${e.kind===`loop`?`${e.loop.min}..${e.loop.max} `:``}[${n.guard}]`,l=Math.min(Tf.labelWidth,Math.max(1,u.width-40));return{operand:n,selected:o,childFrames:a,boxes:s,textHeight:Z(c,l,14,20).height+16+(n.body?Z(n.body,l,16,24).height+12:0),top:Math.min(...s.map(e=>e.y)),bottom:Math.max(...s.map(e=>e.y+e.height))}});for(let e=1;e<v.length;e++){let t=v[e-1],n=v[e];l.push((t.bottom+n.top)/2)}for(let e=0;e<v.length;e++){if(v[e].boxes.length)continue;let t=e;for(;t+1<v.length&&!v[t+1].boxes.length;)t++;let n=v[e-1],r=v[t+1],i=n?n.bottom:_,a=r?r.top:d,o=n?4:0,s=o+v.slice(e,t+1).reduce((e,t)=>e+t.textHeight,0)+(r?.textHeight??0);n&&(l[e-1]=i+(a-i)*o/s);for(let n=e;n<=t;n++)o+=v[n].textHeight,n+1<v.length&&(l[n]=i+(a-i)*o/s);e=t}let y=new Set(e.operands.flatMap((t,n)=>dh(e,t,n,r)));for(let[n,r]of t)r.points.some(e=>e.x>=u.x&&e.x<=u.x+u.width&&e.y>u.y&&e.y<d)&&!y.has(n)&&a.push(`layout: group ${e.id} omits enclosed message ${n}`);let b=[...t.values()].flatMap(e=>[e.labelBox,...ch(e)]);return b.push(...i),v.forEach(({operand:t,selected:n,childFrames:r,top:i},o)=>{let f=o?l[o-1]:_,p=l[o]??d;for(let i of[...r,...n.flatMap(e=>[e.labelBox,...ch(e)])])(i.x<u.x+4||i.x+i.width>u.x+u.width-4||i.y<f+2||i.y+i.height>p-2)&&a.push(`layout: group ${e.id} cannot contain operand ${lh(t,o)}${i.id?` child ${i.id}`:``}; enlarge or reposition its frame`);let m=e.kind===`par`?t.label:`${e.kind===`loop`?`${e.loop.min}..${e.loop.max} `:``}[${t.guard}]`,h=[...b,...r,...s,...c],g=(n,r,l)=>{let d=r===`body`?16:14,f=r===`body`?24:20,m=Z(n,Math.min(Tf.labelWidth,Math.max(1,u.width-40)),d,f),g={width:m.width+8,height:m.height+4},_=[u.x+16,...h.map(e=>e.x+e.width+8),u.x+u.width-g.width-16],v=[l,...h.map(e=>e.y+e.height+8),i-g.height-8].filter(Number.isFinite).sort((e,t)=>e-t).flatMap(e=>_.map(t=>({x:t,y:e,...g}))).find(e=>e.x>=u.x+8&&e.x+e.width<=u.x+u.width-8&&e.y>=l&&e.y+e.height<=p-6&&!h.some(t=>sh(e,t,2)));return v?(v.lines=m.lines,v.fontSize=d,v.lineHeight=f,v.operandId=lh(t,o),h.push(v),(r===`guard`?s:c).push(v)):a.push(`layout: group ${e.id} has no room for ${r} ${lh(t,o)}; adjust frame/message spacing`),v},v=g(m,`guard`,f+6);t.body&&g(t.body,`body`,v?v.y+v.height+8:f+38)}),{errors:a,warnings:o,guards:s,bodies:c,separators:l,heading:h}}function yh(e,t,n=0,r=0,i=`currentColor`,a=`var(--canvas)`){return e.separators.map(e=>`<path class="operand-separator" d="M${t.position.x+n} ${e+r}h${t.size.width}" fill="none" stroke="${i}" stroke-dasharray="6 4"/>`).join(``)+[...e.guards,...e.bodies??[]].map(i=>`<g data-fragment-group-id="${Ap(t.id)}" data-operand-id="${Ap(i.operandId)}" class="${e.guards.includes(i)?`operand-guard`:`operand-body`}"><rect x="${i.x+n}" y="${i.y+r}" width="${i.width}" height="${i.height}" rx="2" fill="${a}"/>${i.lines.map((e,t)=>Q(i.x+n+4,i.y+r+(i.fontSize===16?18:16)+t*(i.lineHeight??20),e,i.fontSize===16?`body`:`group`)).join(``)}</g>`).join(``)}function bh(e){if(e.meta.diagramType!==`sequence`)return new Map;let t=new Map(e.edges.map(e=>[e.id,e.order])),n=[...new Set(e.edges.map(e=>e.replyTo).filter(Boolean))].sort((e,n)=>(t.get(e)??1/0)-(t.get(n)??1/0)||(e<n?-1:+(e>n))),r=new Map(n.map((e,t)=>[e,t]));return new Map(e.edges.filter(e=>r.has(e.replyTo??e.id)).map(e=>{let t=e.replyTo??e.id,n=r.get(t);return[e.id,{callId:t,index:n,label:`${e.replyTo?`↩ `:``}C${n+1}`}]}))}function xh(e,t,n=bh(e),r=uh(e)){let i=n.get(t.id),a=(e.groups??[]).some(e=>e.kind===`par`&&(r.get(t.id)??``).split(`/`).some(t=>t.startsWith(encodeURIComponent(e.id)+`:`)));return i?`${i.label} · ${t.label??``}`:a?t.label??``:`${String(t.order).padStart(2,`0`)} · ${t.label??``}`}var Sh=140,Ch=54,wh=(e,t)=>(e.route?.messageY??Sh+e.order*Ch)+(t===`receive`&&e.source===e.target?30:0);function Th(e,{inputOnly:t=!1}={}){let n=[],r=new Map(e.edges.map(e=>[e.id,e]));if(e.meta.diagramType!==`sequence`)return(e.executions!==void 0||e.edges.some(e=>e.replyTo!==void 0))&&n.push(`executions and replyTo are only supported for sequence`),n;if(!t){let t=[...e.edges].sort((e,t)=>e.order-t.order);for(let e=1;e<t.length;e++)wh(t[e],`send`)<=wh(t[e-1],`send`)&&n.push(`edge ${t[e].id}.route.messageY must preserve message order after ${t[e-1].id}`)}let i=uh(e),a=new Set;for(let t of e.edges){if(t.replyTo===void 0)continue;let e=r.get(t.replyTo),o=`edge ${t.id}.replyTo ${String(t.replyTo)}`;t.kind!==`return`||typeof t.replyTo!=`string`||!e||![`sync`,`async`].includes(e.kind)?n.push(`${o} must reference a sync or async call from a return`):(e.order>=t.order&&n.push(`${o} must precede its return`),(e.source!==t.target||e.target!==t.source)&&n.push(`${o} endpoints must be reversed`),i.get(e.id)!==i.get(t.id)&&n.push(`${o} must stay in the same operand scope`)),a.has(t.replyTo)&&n.push(`${o} has a duplicate return`),a.add(t.replyTo)}if(e.executions===void 0)return n;if(!Array.isArray(e.executions))return[...n,`executions must be an array`];let o=new Map,s=new Map,c=new Map;for(let a of e.executions){if(!a||typeof a!=`object`||Array.isArray(a)){n.push(`execution must be an object`);continue}let l=`execution ${String(a.id)}`;(typeof a.id!=`string`||!a.id.trim())&&n.push(`${l} needs a non-empty id`),o.has(a.id)&&n.push(`${l} duplicate id`),o.set(a.id,a),e.nodes.some(e=>e.id===a.participantId)||n.push(`${l} unknown participant ${String(a.participantId)}`);let u=[];for(let e of[`start`,`end`]){let i=a[e],o=r.get(i?.edgeId);if(!o||![`send`,`receive`].includes(i?.at)){n.push(`${l}.${e} invalid endpoint ${String(i?.edgeId)}`);continue}o[i.at===`send`?`source`:`target`]!==a.participantId&&n.push(`${l}.${e} endpoint ${o.id} does not belong to participant ${a.participantId}`),u.push(t?o.order*2+Number(i.at===`receive`&&o.source===o.target):wh(o,i.at));let s=`${o.id}:${i.at}`;c.has(s)&&n.push(`${l}.${e} ambiguous endpoint ${s} with execution ${c.get(s)}`),c.set(s,a.id)}u.length===2&&(u[0]>=u[1]&&n.push(`${l} start must precede end`),i.get(a.start.edgeId)!==i.get(a.end.edgeId)&&n.push(`${l} endpoints must stay in the same operand scope`),s.set(a.id,u))}for(let e of o.values()){if(e.parentId!==void 0){let t=o.get(e.parentId);if(!t)n.push(`execution ${e.id} unknown parent ${String(e.parentId)}`);else{t.participantId!==e.participantId&&n.push(`execution ${e.id} parent ${t.id} belongs to another participant`);let r=s.get(t.id),a=s.get(e.id);r&&a&&(a[0]<r[0]||a[1]>r[1])&&n.push(`execution ${e.id} exceeds parent ${t.id}`);let o=i.get(t.start?.edgeId)??``,c=i.get(e.start?.edgeId)??``;o&&c!==o&&!c.startsWith(o+`/`)&&n.push(`execution ${e.id} is outside parent ${t.id} operand scope`)}}let t=new Set([e.id]),r=o.get(e.parentId);for(;r;){if(t.has(r.id)){n.push(`execution ${e.id} parent cycle at ${r.id}`);break}t.add(r.id),r=o.get(r.parentId)}}let l=[...o.values()],u=(e,t)=>{let n=new Set,r=o.get(t.parentId);for(;r&&!n.has(r.id);){if(r.id===e.id)return!0;n.add(r.id),r=o.get(r.parentId)}return!1};for(let e=0;e<l.length;e++)for(let t of l.slice(e+1)){let r=l[e],i=s.get(r.id),a=s.get(t.id);i&&a&&r.participantId===t.participantId&&!u(r,t)&&!u(t,r)&&i[0]<a[1]&&a[0]<i[1]&&n.push(`executions ${r.id} and ${t.id} overlap without nesting`)}return n}function Eh(e){if(e.meta.diagramType!==`sequence`)return[];let t=e.executions??[],n=new Map(e.edges.map(e=>[e.id,e])),r=uh(e);return t.map(i=>{let a=0,o=t.find(e=>e.id===i.parentId),s=new Set([i.id]);for(;o&&!s.has(o.id);)s.add(o.id),a++,o=t.find(e=>e.id===o.parentId);let c=e.nodes.find(e=>e.id===i.participantId),l=wh(n.get(i.start.edgeId),i.start.at);return{...i,depth:a,scope:r.get(i.start.edgeId)??``,x:c.position.x+c.size.width/2-8+a*8,y:l,width:16,height:wh(n.get(i.end.edgeId),i.end.at)-l}})}function Dh(e,t,n,r,i,a=``){let o=e.filter(e=>e.participantId===t);return o.find(e=>[e.start,e.end].some(e=>e.edgeId===n.id&&e.at===r))||o.filter(e=>i>=e.y&&i<=e.y+e.height&&(!e.scope||a===e.scope||a.startsWith(e.scope+`/`))).sort((e,t)=>t.depth-e.depth)[0]}var Oh=e=>({x:e.position.x+e.size.width/2,y:e.position.y+e.size.height/2}),kh=(e,t,n)=>$(t)?.edgeLabel?.(e,n)??e.label??``;function Ah(e,t,n){let r=Math.hypot(n.x-t.x,n.y-t.y);if(!r)return{path:``};let i=(n.x-t.x)/r,a=(n.y-t.y)/r,o=(e,n=0)=>({x:t.x+i*e-a*n,y:t.y+a*e+i*n}),s=e=>[o(e,-6),o(e,6)],c=String(e).trim(),l=/[*n]/i.test(c),u=c.startsWith(`0`)||c===`*`,d=l?[[o(0,-6),o(12)],[o(0,6),o(12)],[t,o(12)]]:[s(8)];u||d.push(s(l?21:14));let f=d.map(([e,t])=>`M${e.x} ${e.y}L${t.x} ${t.y}`).join(``),p=o(23),m=u?{cx:p.x,cy:p.y,r:4}:void 0,h=d.flat();m&&h.push({x:p.x-4,y:p.y-4},{x:p.x+4,y:p.y+4});let g=Math.min(...h.map(e=>e.x)),_=Math.min(...h.map(e=>e.y)),v={x:g,y:_,width:Math.max(...h.map(e=>e.x))-g,height:Math.max(...h.map(e=>e.y))-_};return{path:f,...m?{circle:m}:{},bounds:v}}function jh(e,t=Kh(e)){e=Cf(e);let n=[..._g(e),...e.groups??[],...e.nodes,...Eh(e).map(e=>({position:{x:e.x,y:e.y},size:{width:e.width,height:e.height}}))],r=[...t.values()].flatMap(e=>[...e.points,{x:e.labelBox.x,y:e.labelBox.y},{x:e.labelBox.x+e.labelBox.width,y:e.labelBox.y+e.labelBox.height}]);for(let e of t.values())for(let t of e.endpointLabels??[])r.push({x:t.labelBox.x,y:t.labelBox.y},{x:t.labelBox.x+t.labelBox.width,y:t.labelBox.y+t.labelBox.height});if($(e.meta?.diagramType).cardinalities)for(let n of e.edges){let e=t.get(n.id);for(let t of[Ah(n.sourceCardinality,e.points[0],e.points[1]),Ah(n.targetCardinality,e.points.at(-1),e.points.at(-2))])t.bounds&&r.push({x:t.bounds.x,y:t.bounds.y},{x:t.bounds.x+t.bounds.width,y:t.bounds.y+t.bounds.height})}let i=Math.min(...n.map(e=>e.position.x),...r.map(e=>e.x)),a=Math.min(...n.map(e=>e.position.y),...r.map(e=>e.y)),o=Math.max(...n.map(e=>e.position.x+e.size.width),...r.map(e=>e.x)),s=Math.max(...n.map(e=>e.position.y+e.size.height),...r.map(e=>e.y));return{x:i,y:a,width:o-i,height:s-a}}function Mh(e,t,n=0,r=`architecture`){let i=$(r)?.anchor;if(i)return i(e,t,n);let a=Oh(e);return t===`left`?{x:e.position.x,y:a.y+n}:t===`right`?{x:e.position.x+e.size.width,y:a.y+n}:t===`top`?{x:a.x+n,y:e.position.y}:{x:a.x+n,y:e.position.y+e.size.height}}function Nh(e,t,n=wf.endpoint){return t===`left`?{x:e.x-n,y:e.y}:t===`right`?{x:e.x+n,y:e.y}:t===`top`?{x:e.x,y:e.y-n}:{x:e.x,y:e.y+n}}function Ph(e){let t=[];for(let n of e){let e=t.at(-1);(!e||e.x!==n.x||e.y!==n.y)&&t.push(n)}for(let e=1;e<t.length-1;){let[n,r,i]=t.slice(e-1,e+2),a=n.x===r.x&&r.x===i.x&&(r.y-n.y)*(i.y-r.y)>=0,o=n.y===r.y&&r.y===i.y&&(r.x-n.x)*(i.x-r.x)>=0;a||o?t.splice(e,1):e+=1}return t}function Fh(e,t){let n=e.at(-1);n.x!==t.x&&n.y!==t.y&&e.push({x:t.x,y:n.y}),e.push(t)}function Ih(e){let t={length:-1,point:e[0]};for(let n=1;n<e.length;n+=1){let r=e[n-1],i=e[n],a=Math.abs(i.x-r.x)+Math.abs(i.y-r.y);a>t.length&&(t={length:a,point:{x:(r.x+i.x)/2,y:(r.y+i.y)/2}})}return t.point}function Lh(e,t,n,r){let i={clearance:-1,length:-1,point:Ih(e)};for(let a=1;a<e.length;a+=1){let o=e[a-1],s=e[a],c={x:(o.x+s.x)/2,y:(o.y+s.y)/2},l={x:c.x-t.width/2,y:c.y-t.height/2,...t},u=Math.min(Yh(l,{...n.position,...n.size}),Yh(l,{...r.position,...r.size})),d=Math.abs(s.x-o.x)+Math.abs(s.y-o.y);(u>i.clearance||u===i.clearance&&d>i.length)&&(i={clearance:u,length:d,point:c})}return i.point}function Rh(e,t){let n=Oh(e),r=Oh(t),i=r.x-n.x,a=r.y-n.y;return Math.abs(a)>Math.abs(i)?{orientation:`vertical`,sourceSide:a>=0?`bottom`:`top`,targetSide:a>=0?`top`:`bottom`}:{orientation:`horizontal`,sourceSide:i>=0?`right`:`left`,targetSide:i>=0?`left`:`right`}}function zh(e,t,n,r){let{x:i,y:a,width:o,height:s}=r===`usecase`&&e.kind===`actor`?Qh(e,r):{...e.position,...e.size},c=Math.max(i-t.x,0,t.x-i-o),l=Math.max(a-t.y,0,t.y-a-s),u=c===0&&l===0?n:c>l?t.x<i?`left`:`right`:t.y<a?`top`:`bottom`,d=u===`left`||u===`right`,f=Oh(e),p=Math.max(0,(d?s:o)/2-wf.endpoint),m=Math.max(-p,Math.min(p,d?t.y-f.y:t.x-f.x));return{side:u,point:Mh(e,u,[`decision`,`choice`].includes(e.kind)?0:m,r)}}function Bh(e,t,n,r,i,a=wf.endpoint){let o=e.y===t.y,s=e.x===t.x,c={left:`right`,right:`left`,top:`bottom`,bottom:`top`},l={left:-1,right:1,top:-1,bottom:1},u=o?`x`:`y`,d=o?`y`:`x`;if((o&&[`left`,`right`].includes(n)||s&&[`top`,`bottom`].includes(n))&&c[n]===r&&(t[u]-e[u])*l[n]>0&&i.every((r,a)=>r[d]===e[d]&&(r[u]-(a?i[a-1][u]:e[u]))*l[n]>=0&&(t[u]-r[u])*l[n]>=0))return[e,t];let f=[e,Nh(e,n,a)];[`left`,`right`].includes(n)&&i.length&&f[1].y!==i[0].y&&f.push({x:f[1].x,y:i[0].y});for(let e of i)Fh(f,e);return Fh(f,Nh(t,r,a)),f.push(t),Ph(f)}function Vh(e,t,n,r,i,a=wf.endpoint,o=`architecture`){let s=Mh(e,n.sourceSide,r,o),c=Mh(t,n.targetSide,i,o),l=Nh(s,n.sourceSide,a),u=Nh(c,n.targetSide,a),d=r||i;if(n.orientation===`horizontal`){let e=(l.x+u.x)/2+d;return Ph([s,l,{x:e,y:l.y},{x:e,y:u.y},u,c])}let f=(l.y+u.y)/2+d;return Ph([s,l,{x:l.x,y:f},{x:u.x,y:f},u,c])}function Hh(e,t=0,n=0){if(!e.length)return``;let r=e.map(e=>({x:e.x+t,y:e.y+n}));return r.slice(1).reduce((e,t,n)=>{let i=r[n];return i.y===t.y?`${e} H ${t.x}`:i.x===t.x?`${e} V ${t.y}`:`${e} L ${t.x} ${t.y}`},`M ${r[0].x} ${r[0].y}`)}function Uh(e,t,n){if(e.sourceSide!==e.targetSide)return null;let[r,...i]=e.points.map(e=>({x:e.x+t,y:e.y+n})),a=i.at(-1),[o,s]={right:[1,0],left:[-1,0],top:[0,-1],bottom:[0,1]}[e.sourceSide]??[1,0],[c,l]=[-s,o],u=Math.max(...i.map(e=>(e.x-r.x)*o+(e.y-r.y)*s))*4/3,d=(a.x-r.x)*c+(a.y-r.y)*l,f=Math.abs(d)*.35,p=Math.sign(d);if(!(u>0)||Math.abs(d)<1)return null;let m={x:r.x+o*u-c*p*f,y:r.y+s*u-l*p*f},h={x:a.x+o*u+c*p*f,y:a.y+s*u+l*p*f};return`M ${r.x} ${r.y} C ${m.x} ${m.y} ${h.x} ${h.y} ${a.x} ${a.y}`}var Wh=(e,t=0,n=0)=>e.curved&&Uh(e,t,n)||Hh(e.points,t,n);function Gh(e,t,n,r,i){let{graph:a,executions:o,scopes:s,pairs:c}=i,l=wh(e,`send`),u=wh(e,`receive`),d=Dh(o,t.id,e,`send`,l,s.get(e.id)),f=Dh(o,n.id,e,`receive`,u,s.get(e.id)),p=t.id===n.id||Oh(t).x<=Oh(n).x,m=d?d.x+(p?d.width:0):Oh(t).x,h=f?f.x+(t.id===n.id||!p?f.width:0):Oh(n).x,g=xh(a,e,c,s),_=wp(g,t.id===n.id?Tf.labelWidth:Math.min(Tf.labelWidth,Math.max(1,Math.abs(h-m)-32-12))),v={width:_.width,height:_.height};if(t.id===n.id){let t=48+r*wf.parallelGap,n={x:m,y:l},i={x:h,y:u},a=e.route?.via?.length?Bh(n,i,`right`,`right`,e.route.via):[n,{x:m+t,y:l},{x:m+t,y:l+30},i];return{points:a,label:g,labelLines:_.lines,labelSize:v,labelPoint:e.route?.labelAt??{x:Math.max(...a.map(e=>e.x))+8+v.width/2,y:l+15},sourceSide:`right`,targetSide:`right`}}return{points:e.route?.via?.length?Bh({x:m,y:l},{x:h,y:l},m<=h?`right`:`left`,m<=h?`left`:`right`,e.route.via):[{x:m,y:l},{x:h,y:l}],label:g,labelLines:_.lines,labelSize:v,labelPoint:e.route?.labelAt??{x:(m+h)/2,y:l-6-v.height/2},sourceSide:m<=h?`right`:`left`,targetSide:m<=h?`left`:`right`}}function Kh(e){e=Cf(e);let t=Zm(e),n=$(t).endpointStub??wf.endpoint,r=new Map(e.nodes.map(e=>[e.id,e])),i=e.edges.map(e=>{let t=r.get(e.source),n=r.get(e.target);return{edge:e,source:t,target:n,self:t.id===n.id,...Rh(t,n)}}),a=t===`sequence`?{graph:e,executions:Eh(e),scopes:uh(e),pairs:bh(e)}:null,o=new Map;for(let e of i.filter(e=>!$(t).sequence&&!e.self&&!e.edge.route?.via?.length))for(let[t,n,r,i]of[[`source`,e.source,e.sourceSide,e.target],[`target`,e.target,e.targetSide,e.source]]){let a=`${n.id}:${r}`,s=e.orientation===`horizontal`?Oh(i).y:Oh(i).x;o.has(a)||o.set(a,[]),o.get(a).push({id:e.edge.id,role:t,coordinate:s})}let s=new Map;for(let e of o.values())e.sort((e,t)=>e.coordinate-t.coordinate||e.id.localeCompare(t.id)||e.role.localeCompare(t.role)),e.forEach((t,n)=>s.set(`${t.id}:${t.role}`,(n-(e.length-1)/2)*wf.parallelGap));let c=new Map,l=new Map;for(let e of i.filter(e=>e.self).sort((e,t)=>(e.edge.order??0)-(t.edge.order??0)||(e.edge.id<t.edge.id?-1:1))){let t=c.get(e.source.id)??0;l.set(e.edge.id,t),c.set(e.source.id,t+1)}let u=new Map;for(let r of i){let i;if($(t).sequence){let e=l.get(r.edge.id)??0;i=Gh(r.edge,r.source,r.target,e,a)}else if(r.self){let a=l.get(r.edge.id),o=r.source.position.x+r.source.size.width,s=Oh(r.source).y,c=48+a*wf.parallelGap,u=kh(r.edge,t,e.meta?.locale),d=Ep(u),f=r.edge.route?.via,p=f?.length&&zh(r.source,f[0],`right`,t),m=f?.length&&zh(r.target,f.at(-1),`right`,t),h=p?p.side:`right`,g=m?m.side:`right`,_=p?p.point:Mh(r.source,`right`,-16-a*12,t),v=m?m.point:Mh(r.source,`right`,16+a*12,t);i={points:r.edge.route?.via?.length?Bh(_,v,h,g,r.edge.route.via,n):[_,{x:o+c,y:_.y},{x:o+c,y:v.y},v],label:u,labelPoint:r.edge.route?.labelAt??{x:o+c+8+d.width/2,y:s},sourceSide:h,targetSide:g,curved:!!$(t).curvedSelfLoops&&!ah(e)}}else{let a=r.edge.route?.via,o=a?.length&&zh(r.source,a[0],r.sourceSide,t),c=a?.length&&zh(r.target,a.at(-1),r.targetSide,t),l=o?o.side:r.sourceSide,u=c?c.side:r.targetSide,d=a?[...a]:[];o&&[`decision`,`choice`].includes(r.source.kind)&&[`left`,`right`].includes(l)&&d.unshift({x:Nh(o.point,l,n).x,y:a[0].y}),c&&[`decision`,`choice`].includes(r.target.kind)&&[`top`,`bottom`].includes(u)&&d.push({x:a.at(-1).x,y:Nh(c.point,u,n).y});let f=r.edge.route?.via?.length?Bh(o.point,c.point,l,u,d,n):Vh(r.source,r.target,r,s.get(`${r.edge.id}:source`)??0,s.get(`${r.edge.id}:target`)??0,n,t),p=kh(r.edge,t,e.meta?.locale);i={points:f,label:p,labelPoint:r.edge.route?.labelAt??Lh(f,Ep(p),r.source,r.target),sourceSide:l,targetSide:u}}let o=i.labelSize??Ep(i.label),c=i.labelLines??wp(i.label).lines,d=$(t).edgeLabelParts?.(r.edge);u.set(r.edge.id,{...i,endpointLabels:$(t).endpointLabels?.(r.edge,i.points)??[],labelLines:c,...d?{labelRuns:Tp(c,d)??void 0}:{},path:Wh(i),labelBox:{x:i.labelPoint.x-o.width/2,y:i.labelPoint.y-o.height/2,...o}})}return u}function qh(e,t,n=0){return e.x<t.x+t.width+n&&e.x+e.width>t.x-n&&e.y<t.y+t.height+n&&e.y+e.height>t.y-n}function Jh(e,t){return $(t).sequence?{...e.position,width:e.size.width,height:Math.min(e.size.height,dm(e))}:{...e.position,...e.size}}function Yh(e,t){let n=Math.max(e.x-t.x-t.width,t.x-e.x-e.width,0),r=Math.max(e.y-t.y-t.height,t.y-e.y-e.height,0);return Math.hypot(n,r)}function Xh(e,t,n,r){let i=Qh(t,r);if((n===`left`||n===`right`)&&(e.y<i.y||e.y>i.y+i.height)||(n===`top`||n===`bottom`)&&(e.x<i.x||e.x>i.x+i.width))return!1;let a=Oh(t),o=Mh(t,n,n===`left`||n===`right`?e.y-a.y:e.x-a.x,r);return Math.hypot(e.x-o.x,e.y-o.y)<1e-7}function Zh(e,t,n){return e.y===t.y?e.y>n.y&&e.y<n.y+n.height&&Math.max(Math.min(e.x,t.x),n.x)<Math.min(Math.max(e.x,t.x),n.x+n.width):e.x===t.x&&e.x>n.x&&e.x<n.x+n.width&&Math.max(Math.min(e.y,t.y),n.y)<Math.min(Math.max(e.y,t.y),n.y+n.height)}function Qh(e,t){if(t===`state`&&[`initial`,`final`].includes(e.kind)){let t=e.kind===`initial`?12:13,n=Oh(e);return{x:e.position.x+Em(e)-t,y:n.y-t,width:t*2,height:t*2}}if(t===`usecase`&&e.kind===`actor`){let t=zm(e);return{x:Oh(e).x-20,y:e.position.y+t+2,width:40,height:74}}return t===`deployment`&&e.kind===`device`?{x:e.position.x+16,y:e.position.y,width:e.size.width-32,height:e.size.height}:[`architecture`,`deployment`].includes(t)&&e.kind===`database`?{x:e.position.x+12,y:e.position.y+2,width:e.size.width-24,height:e.size.height-4}:Jh(e,t)}function $h(e,t,n,r){if(r===`state`&&[`initial`,`final`].includes(n.kind)&&n.subtitle){let i=$(r).textArea(n);if(Zh(e,t,{...i,x:n.position.x+i.x,y:n.position.y+i.y}))return!0}let i=Qh(n,r);if(r===`sequence`)return Zh(e,t,i);if(r===`usecase`&&n.kind===`actor`){let r=n.position.y+zm(n),a=Oh(n).x,o=Math.min(n.size.width,Z(n.label,1/0,20).width*1.15),s=n.subtitle?Math.min(n.size.width,Z(n.subtitle,1/0,16).width*1.15):0;return Zh(e,t,i)||Zh(e,t,{x:a-o/2,y:r+78,width:o,height:26})||s>0&&Zh(e,t,{x:a-s/2,y:r+106,width:s,height:24})}let a=Oh(n);if(e.y===t.y){if(e.y<=i.y||e.y>=i.y+i.height)return!1;let o=e.y-a.y,s=Mh(n,`left`,o,r).x,c=Mh(n,`right`,o,r).x;return Math.max(Math.min(e.x,t.x),s)<Math.min(Math.max(e.x,t.x),c)-1e-7}if(e.x===t.x){if(e.x<=i.x||e.x>=i.x+i.width)return!1;let o=e.x-a.x,s=Mh(n,`top`,o,r).y,c=Mh(n,`bottom`,o,r).y;return Math.max(Math.min(e.y,t.y),s)<Math.min(Math.max(e.y,t.y),c)-1e-7}return!1}function eg(e){let t=e.position.x,n=t+e.size.width,r=e.position.y,i=r+e.size.height;return[[{x:t,y:r},{x:n,y:r}],[{x:n,y:r},{x:n,y:i}],[{x:t,y:i},{x:n,y:i}],[{x:t,y:r},{x:t,y:i}]]}function tg(e){let t=[`alt`,`opt`,`loop`,`par`].includes(e.kind),n=Dp(e),r=t?hh(e):null,i=Math.min(t?Math.max(36,r.height+20):n.height,e.size.height),a=Math.min(e.size.width,(t?r.width:n.width)+32),o=[{x:e.position.x,y:e.position.y,width:a,height:i}];return[`alt`,`opt`,`loop`].includes(e.kind)&&o.push({x:e.position.x+e.size.width-52,y:e.position.y,width:52,height:i}),o}function ng(e,t,n,r){return e.y===t.y&&n.y===r.y&&e.y===n.y?Math.max(0,Math.min(Math.max(e.x,t.x),Math.max(n.x,r.x))-Math.max(Math.min(e.x,t.x),Math.min(n.x,r.x))):e.x===t.x&&n.x===r.x&&e.x===n.x?Math.max(0,Math.min(Math.max(e.y,t.y),Math.max(n.y,r.y))-Math.max(Math.min(e.y,t.y),Math.min(n.y,r.y))):0}function rg(e,t,n,r){let i=new Map,a=(e,t)=>[{id:e.source,point:t[0]},{id:e.target,point:t.at(-1)}],o=(e,t)=>Math.hypot(e.x-t.x,e.y-t.y)<.001;for(let s=1;s<t.length;s++)for(let c=1;c<r.length;c++){let l=t[s-1],u=t[s],d=r[c-1],f=r[c],p=u.x-l.x,m=u.y-l.y,h=f.x-d.x,g=f.y-d.y,_=p*g-m*h;if(Math.abs(_)<1e-8)continue;let v=((d.x-l.x)*g-(d.y-l.y)*h)/_,y=((d.x-l.x)*m-(d.y-l.y)*p)/_;if(v<0||v>1||y<0||y>1)continue;let b={x:+(l.x+v*p).toFixed(3),y:+(l.y+v*m).toFixed(3)};a(e,t).some(e=>a(n,r).some(t=>e.id===t.id&&o(e.point,b)&&o(t.point,b)))||i.set(`${b.x},${b.y}`,b)}return[...i.values()].sort((e,t)=>e.x-t.x||e.y-t.y)}function ig(e){e=Cf(e);let t=Zm(e),n=[],r=Kh(e),i=[],a=[],o=[],s=new Map([...e.nodes,...e.groups??[],...Eh(e)].map(e=>[e.id,e])),c=(e,n,a)=>{i.push(a);let c=n.flatMap(e=>{let t=s.get(e);if(t)return[t.position?{...t.position,...t.size}:{x:t.x,y:t.y,width:t.width,height:t.height}];let n=r.get(e);return n?n.points.map(e=>({...e,width:0,height:0})):[]});o.push({ruleId:e,severity:`error`,diagramType:t,elementIds:n,bounds:c,measured:a,required:`clear full-size geometry`,remediation:a.includes(`;`)?a.split(`;`).slice(1).join(`;`).trim():`Adjust the identified elements while preserving the complete model.`})};if(t===`sequence`){for(let t of e.nodes)t.size.height<dm(t)&&c(`sequence.header`,[t.id],`layout: sequence node ${t.id} is shorter than its visible header`);for(let t of e.groups??[]){let n=vh(t,r,e.meta.locale,e.groups??[],Eh(e));for(let e of n.errors)c(`sequence.fragment`,[t.id],e);a.push(...n.warnings)}let t=Eh(e);for(let n of e.edges){let i=r.get(n.id);for(let e of t)sh(i.labelBox,e,2)&&c(`sequence.label-execution`,[n.id,e.id],`layout: edge ${n.id} label overlaps execution ${e.id}`);for(let t of e.edges)ch(r.get(t.id)).some(e=>sh(i.labelBox,e))&&c(`sequence.message-clearance`,[n.id,t.id],`layout: sequence edge ${n.id} label needs 6px clearance from message ${t.id}; shorten the label or adjust participant spacing/route hints`);i.points.some(t=>t.y>Math.min(...[n.source,n.target].map(t=>{let n=e.nodes.find(e=>e.id===t);return n.position.y+n.size.height})))&&c(`sequence.lifeline`,[n.id,n.source,n.target],`layout: sequence edge ${n.id} exceeds its participant lifeline`)}}let l=$(t).cardLayout&&!$m(e);if($(t).cardLayout)for(let n of e.nodes){if(n.size.height<(l?100:yp.minHeight))continue;let{minHeight:r}=t===`architecture`&&bg(n)?Sg(n):Cp(n,e.meta.locale,l);n.size.height<r&&c(`text.card-height`,[n.id],`layout: node ${n.id} text needs at least ${r}px height at 20/16px; enlarge the node and check its route clearance`)}for(let n=0;n<e.nodes.length;n+=1)for(let r=n+1;r<e.nodes.length;r+=1){let i=e.nodes[n],a=e.nodes[r];qh(Jh(i,t),Jh(a,t))&&c(`shape.node-overlap`,[i.id,a.id],`layout: nodes ${i.id} and ${a.id} overlap`)}let u=e.edges.filter(e=>r.get(e.id).label);for(let e=0;e<u.length;e+=1)for(let t=e+1;t<u.length;t+=1){let n=u[e],i=u[t];qh(r.get(n.id).labelBox,r.get(i.id).labelBox)&&c(`label.overlap`,[n.id,i.id],`layout: edge labels ${n.id} and ${i.id} overlap`)}for(let i=0;i<e.edges.length;i+=1)for(let a=i+1;a<e.edges.length;a+=1){let o=e.edges[i],s=e.edges[a],l=r.get(o.id).points,u=r.get(s.id).points,d=0;for(let e=1;e<l.length;e+=1)for(let t=1;t<u.length;t+=1)d=Math.max(d,ng(l[e-1],l[e],u[t-1],u[t]));d>wf.endpoint&&c(`route.shared-segment`,[o.id,s.id],`layout: edges ${o.id} and ${s.id} share a route segment longer than ${wf.endpoint}px`);let f=rg(o,l,s,u);f.length&&n.push({ruleId:`route.point-crossing`,severity:`info`,diagramType:t,elementIds:[o.id,s.id].sort(),measured:f.length,required:null,bounds:f.map(e=>({...e,width:0,height:0})),repeated:Math.max(0,f.length-1),remediation:`Keep each relation traceable; prefer fewer repeated crossings without overlapping channels.`})}for(let n of e.edges){let i=r.get(n.id),a=e.nodes.find(e=>e.id===n.source),o=e.nodes.find(e=>e.id===n.target);if(!$(t).sequence&&(!Xh(i.points[0],a,i.sourceSide,t)||!Xh(i.points.at(-1),o,i.targetSide,t))&&c(`route.anchor`,[n.id,n.source,n.target],`layout: edge ${n.id} exceeds an endpoint side; enlarge the node or add route hints`),$(t).cardinalities){let r=$(t).endpointStub;for(let[t,a,o,s,l,u]of[[`source`,i.points[0],i.points[1],i.sourceSide,n.sourceCardinality,n.route?.via?.[0]],[`target`,i.points.at(-1),i.points.at(-2),i.targetSide,n.targetCardinality,n.route?.via?.at(-1)]]){let i=Nh(a,s,1),d=e=>(e.x-a.x)*(i.x-a.x)+(e.y-a.y)*(i.y-a.y);(d(o)<r||u&&d(u)<r)&&c(`route.er-stub`,[n.id],`layout: ER edge ${n.id} ${t} needs a ${r}px outward straight segment; move the route hint or enlarge the gap`);let f=Ah(l,a,o);for(let r of e.nodes)f.bounds&&qh(f.bounds,{...r.position,...r.size})&&c(`marker.er-node`,[n.id,r.id],`layout: ER edge ${n.id} ${t} cardinality overlaps node ${r.id}`)}i.points.slice(1,-1).some((e,t)=>{let n=i.points[t],r=i.points[t+2];return n.x===e.x&&e.x===r.x&&(e.y-n.y)*(r.y-e.y)<0||n.y===e.y&&e.y===r.y&&(e.x-n.x)*(r.x-e.x)<0})&&c(`route.er-reversal`,[n.id],`layout: ER edge ${n.id} reverses within its route; reserve ${r}px endpoint segments or move the route hints`)}if($(t).sequence&&n.source!==n.target){let e=Math.abs(Oh(a).x-Oh(o).x),t=Math.max(160,i.labelBox.width+32);e<t&&c(`sequence.participant-gap`,[n.id,n.source,n.target],`layout: sequence edge ${n.id} needs ${Math.ceil(t)}px between participants; found ${Math.round(e)}px`)}for(let r of e.nodes)for(let e=1;e<i.points.length;e+=1)if(!(r.id===n.source&&e===1||r.id===n.target&&e===i.points.length-1)&&$h(i.points[e-1],i.points[e],r,t)){let e=n.source===n.target&&r.id===n.source?`self-loop`:`edge`;c(`route.node-obstacle`,[n.id,r.id],`layout: ${e} ${n.id} crosses node ${r.id}`);break}if(i.label){for(let t of e.groups??[])tg(t).some(e=>qh(i.labelBox,e))&&c(`label.group-heading`,[n.id,t.id],`layout: edge ${n.id} label overlaps group ${t.id} heading`),eg(t).some(([e,t])=>Zh(e,t,i.labelBox))&&c(`label.group-boundary`,[n.id,t.id],`layout: edge ${n.id} label overlaps group ${t.id} boundary`);for(let r of e.nodes)qh(i.labelBox,Qh(r,t))&&c(`label.node`,[n.id,r.id],`layout: edge ${n.id} label overlaps node ${r.id}`)}}for(let t of e.edges){let n=r.get(t.id);for(let r of e.groups??[]){let e=eg(r);for(let i=1;i<n.points.length;i+=1){let a=n.points[i-1],o=n.points[i];tg(r).some(e=>Zh(a,o,e))&&c(`route.group-heading`,[t.id,r.id],`layout: edge ${t.id} crosses group ${r.id} heading`),e.some(([e,t])=>ng(a,o,e,t)>wf.endpoint)&&c(`route.group-boundary`,[t.id,r.id],`layout: edge ${t.id} overlaps group ${r.id} boundary`)}}}return{errors:[...new Set(i)],warnings:[...new Set(a)],routes:r,crossings:n,diagnostics:o}}var ag=e=>({node:ff(e)?6:12,preferred:ff(e)?8:24,boundary:6}),og=(e,t,n)=>Math.max(t,Math.min(n,e)),sg=(e,t,n)=>{let r=n.x-t.x,i=n.y-t.y,a=og(((e.x-t.x)*r+(e.y-t.y)*i)/(r*r+i*i||1),0,1);return Math.hypot(e.x-t.x-a*r,e.y-t.y-a*i)};function cg(e,t,n,r){let i=(e,t,n)=>(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x);return i(e,t,n)*i(e,t,r)<=0&&i(n,r,e)*i(n,r,t)<=0&&Math.max(Math.min(e.x,t.x),Math.min(n.x,r.x))<=Math.min(Math.max(e.x,t.x),Math.max(n.x,r.x))&&Math.max(Math.min(e.y,t.y),Math.min(n.y,r.y))<=Math.min(Math.max(e.y,t.y),Math.max(n.y,r.y))?0:Math.min(sg(e,n,r),sg(t,n,r),sg(n,e,t),sg(r,e,t))}function lg(e,t,n){return Math.hypot(Math.max(n.x-Math.max(e.x,t.x),Math.min(e.x,t.x)-n.x-n.width,0),Math.max(n.y-Math.max(e.y,t.y),Math.min(e.y,t.y)-n.y-n.height,0))}function ug(e,t,n){let r=e=>{let t=Math.abs(e.x-n.cx),r=Math.abs(e.y-n.cy);if((t/n.rx)**2+(r/n.ry)**2<=1+1e-12)return 0;if(t===0)return Math.max(0,r-n.ry);if(r===0)return Math.max(0,t-n.rx);let i=e=>Math.hypot(t-n.rx*Math.cos(e),r-n.ry*Math.sin(e)),a=0,o=Math.PI/2;for(let e=0;e<32;e++){let e=a+(o-a)/3,t=o-(o-a)/3;i(e)<i(t)?o=t:a=e}return Math.min(i(0),i(Math.PI/2),i((a+o)/2))},i=e.y===t.y,a=i?e.y-n.cy:e.x-n.cx,o=i?n.ry:n.rx,s=i?n.rx:n.ry,c=i?n.cx:n.cy,l=Math.min(i?e.x:e.y,i?t.x:t.y),u=Math.max(i?e.x:e.y,i?t.x:t.y);if(Math.abs(a)<=o){let e=s*Math.sqrt(1-(a/o)**2);if(l<=c+e&&u>=c-e)return 0}if(l<=c&&u>=c)return Math.max(0,Math.abs(a)-o);let d=r(e);return d===0?0:Math.min(d,r(t))}function dg(e,t,n){let r=n.position.x+12,i=n.position.x+n.size.width-12,a=n.position.y+2,o=n.position.y+n.size.height-2,s=(i-r)/2,c=(r+i)/2,l=e=>{if(e.x<r||e.x>i)return!1;let t=5*(1-Math.sqrt(Math.min(e.x-r,i-e.x)/s))**2;return e.y>=a+t&&e.y<=o-t};if(l(e)||l(t)||l({x:og(c,Math.min(e.x,t.x),Math.max(e.x,t.x)),y:og((a+o)/2,Math.min(e.y,t.y),Math.max(e.y,t.y))}))return 0;let u=(n,r,i,a)=>{let o=o=>sg({x:n+i*s*o*o,y:r+a*5*(1-o)**2},e,t),c=0,l=1;for(let e=0;e<32;e++){let e=c+(l-c)/3,t=l-(l-c)/3;o(e)<o(t)?l=t:c=e}return Math.min(o(0),o(1),o((c+l)/2))};return Math.min(lg(e,t,{x:r,y:a+5,width:i-r,height:o-a-10}),u(r,a,1,1),u(i,a,-1,1),u(r,o,1,-1),u(i,o,-1,-1))}function fg(e,t,n){let r=e=>{let t=!1;for(let r=0,i=n.length-1;r<n.length;i=r++){let a=n[r],o=n[i];a.y>e.y!=o.y>e.y&&e.x<(o.x-a.x)*(e.y-a.y)/(o.y-a.y)+a.x&&(t=!t)}return t};return r(e)||r(t)?0:Math.min(...n.map((r,i)=>cg(e,t,r,n[(i+1)%n.length])))}var pg=new WeakMap;function mg(e,t){let n=JSON.stringify([t,e.position,e.size,e.kind,e.label,e.subtitle,e.overviewText,e.badges,e.overviewTone]),r=pg.get(e);if(r?.signature===n)return r.probe;let i=$(t),{x:a,y:o}=e.position,[s,c]=(i.outline?.(e,a,o)??[])[0]??[],l;if(t===`usecase`&&e.kind===`actor`){let t=o+zm(e),n=a+e.size.width/2,r=[[{x:n,y:t+24},{x:n,y:t+53}],[{x:n-20,y:t+35},{x:n+20,y:t+35}],[{x:n,y:t+53},{x:n-17,y:t+76}],[{x:n,y:t+53},{x:n+17,y:t+76}]],i=[[e.label,20,t+78,26],...e.subtitle?[[e.subtitle,16,t+106,24]]:[]].map(([t,r,i,a])=>{let o=Math.min(e.size.width,Z(t,1/0,r).width*1.15);return{x:n-o/2,y:i,width:o,height:a}});l=(e,a)=>Math.min(Math.max(0,sg({x:n,y:t+13},e,a)-11),...r.map(([t,n])=>cg(e,a,t,n)),...i.map(t=>lg(e,a,t)))}else if(s===`path`&&[`architecture`,`deployment`].includes(t)&&e.kind===`database`)l=(t,n)=>dg(t,n,e);else if(s===`polygon`){let e=c.points.split(/\s+/).map(e=>{let[t,n]=e.split(`,`).map(Number);return{x:t,y:n}});l=(t,n)=>fg(t,n,e)}else if(s===`circle`)l=(e,t)=>Math.max(0,sg({x:c.cx,y:c.cy},e,t)-c.r);else if(s===`ellipse`)l=(e,t)=>ug(e,t,c);else{let n=s===`rect`?c:Qh(e,t),r=s===`rect`?Math.min(c.rx??0,n.width/2,n.height/2):0,i={x:n.x+r,y:n.y+r,width:n.width-2*r,height:n.height-2*r};l=(e,t)=>Math.max(0,lg(e,t,i)-r)}if(t===`state`&&[`initial`,`final`].includes(e.kind)&&e.subtitle){let t=l,n=i.textArea(e),r={...n,x:a+n.x,y:o+n.y};l=(e,n)=>Math.min(t(e,n),lg(e,n,r))}let u=l,d=new Map;return l=(e,t)=>{if(e.x!==t.x||e.y!==t.y)return u(e,t);let n=e.x+`,`+e.y;if(d.has(n))return d.get(n);let r=u(e,t);return d.size<1024&&d.set(n,r),r},pg.set(e,{signature:n,probe:l}),l}function hg(e,t,n){let r=e.y===t.y,i=r?`x`:`y`,a=r?`y`:`x`;return eg(n).filter(([e,t])=>r===(e.y===t.y)).map(([n,r])=>({distance:Math.abs(e[a]-n[a]),length:Math.max(0,Math.min(Math.max(e[i],t[i]),Math.max(n[i],r[i]))-Math.max(Math.min(e[i],t[i]),Math.min(n[i],r[i])))})).filter(e=>e.length>.001).sort((e,t)=>e.distance-t.distance)[0]??{distance:1/0,length:0}}function gg(e,t,n=[]){let r=new Set(n),i=Zm(t),a=ag(t).node,o=t.nodes.filter(t=>JSON.stringify(t)!==JSON.stringify(e.nodes.find(e=>e.id===t.id))),s=new Set(o.map(e=>e.id)),c=o.map(e=>{let t=Jh(e,i);return{x:t.x-a,y:t.y-a,width:t.width+2*a,height:t.height+2*a}}),l=(t.groups??[]).filter(t=>JSON.stringify(t)!==JSON.stringify(e.groups?.find(e=>e.id===t.id))),u=Kh(e),d=Df($(i)).labelGap,f=[...o.map(e=>Jh(e,i)),...l.flatMap(tg)],p=(e,t)=>Math.hypot(Math.max(e.x-t.x-t.width,t.x-e.x-e.width,0),Math.max(e.y-t.y-t.height,t.y-e.y-e.height,0));for(let n of t.edges){let i=e.edges.find(e=>e.id===n.id),a=u.get(n.id);(s.has(n.source)||s.has(n.target)||JSON.stringify(n)!==JSON.stringify(i)||a&&[...a.label?[a.labelBox]:[],...(a.endpointLabels??[]).map(e=>e.labelBox)].some(e=>f.some(t=>p(e,t)<d))||a?.points.slice(1).some((e,n)=>{let r=a.points[n];return c.some(t=>Zh(r,e,t))||l.some(n=>hg(r,e,n).distance<ag(t).boundary||tg(n).some(t=>Zh(r,e,t)))}))&&r.add(n.id)}return r}var _g=e=>{let t=(e,n=0)=>(Array.isArray(e)&&n<=16?e:[]).filter(e=>e&&typeof e==`object`).flatMap(e=>[e,...t((Array.isArray(e.items)?e.items:[]).filter(e=>e?.mode),n+1)]);return t(e.layout?.sections)},vg=e=>e&&typeof e==`object`&&!Array.isArray(e),yg=e=>Array.isArray(e)&&e.every(e=>typeof e==`string`&&e.trim()),bg=e=>e.overviewText!==void 0||e.badges!==void 0||e.overviewTone!==void 0;function xg(e,{inputOnly:t=!0,validateAnchor:n,evidenceKinds:r}={}){let i=[],a=ff(e),o=(e,t)=>{e!==void 0&&!Lf.includes(e)&&i.push(`${t} is unsupported`)},s=(e,t)=>{vg(e)?(n?.(e,t,i),e.kind!==void 0&&!r?.has(e.kind)&&i.push(`${t}.kind is unsupported`)):i.push(`${t} must be an object`)};for(let t of e.nodes??[])if(o(t.overviewTone,`node ${t.id}.overviewTone`),t.overviewAccent!==void 0&&typeof t.overviewAccent!=`boolean`&&i.push(`node ${t.id}.overviewAccent must be boolean`),t.overviewText!==void 0&&!yg(t.overviewText)&&i.push(`node ${t.id}.overviewText must contain non-empty strings`),t.badges!==void 0){if(!Array.isArray(t.badges))i.push(`node ${t.id}.badges must be an array`);else for(let[e,n]of t.badges.entries()){let a=`node ${t.id}.badges[${e}]`;(!vg(n)||typeof n.label!=`string`||!n.label.trim()||![`status`,`version`,`requirement`].includes(n.role)||!r?.has(n.evidence))&&i.push(`${a} needs label, role (status/version/requirement) and evidence`),n?.source!==void 0&&s(n.source,`${a}.source`)}}if(!a)return e.layout?.sections!==void 0&&i.push(`layout.sections requires an architecture overview`),i;if(!Array.isArray(e.layout?.sections)||!e.layout.sections.length)return[...i,`architecture overview requires non-empty layout.sections`];let c=new Map(e.nodes.map(e=>[e.id,e])),l=new Map((e.groups??[]).map(e=>[e.id,e])),u=new Set,d=new Set,f=new Set,p=e=>{c.has(e)?u.has(e)?i.push(`section repeats node ${e}`):u.add(e):i.push(`section nodeId does not name a node: ${e}`)},m=(t,n=new Set)=>{if(!l.has(t)){i.push(`section groupId does not name a group: ${t}`);return}if(n.has(t)||f.has(t)){i.push(`section repeats or cycles group ${t}`);return}f.add(t);let r=new Set([...n,t]);e.nodes.filter(e=>e.groupId===t).forEach(e=>p(e.id)),[...l.values()].filter(e=>e.parentId===t).forEach(e=>m(e.id,r))},h=(e,n=0)=>{if(!vg(e)||n>16){i.push(`invalid section or nesting exceeds 16 levels`);return}(typeof e.id!=`string`||!e.id.trim()||d.has(e.id)||c.has(e.id)||l.has(e.id))&&i.push(`section.id must be unique: ${e.id}`),d.add(e.id),[`stack`,`grid`,`row`,`note`].includes(e.mode)||i.push(`section ${e.id}.mode is unsupported`),(typeof e.title!=`string`||!e.title.trim())&&i.push(`section ${e.id}.title is required`),o(e.tone,`section ${e.id}.tone`),e.frame!==void 0&&![`solid`,`dashed`,`none`].includes(e.frame)&&i.push(`section ${e.id}.frame is unsupported`),e.columns!==void 0&&(!Number.isInteger(e.columns)||e.columns<1||e.columns>16||e.mode!==`grid`)&&i.push(`section ${e.id}.columns requires a grid and an integer from 1 to 16`),e.weights!==void 0&&(e.mode!==`row`||!Array.isArray(e.weights)||e.weights.length!==e.items?.length||e.weights.some(e=>!Number.isFinite(e)||e<=0))&&i.push(`section ${e.id}.weights requires a row and one positive finite weight per item`),e.text!==void 0&&!yg(e.text)&&i.push(`section ${e.id}.text must contain non-empty strings`),e.source!==void 0&&s(e.source,`section ${e.id}.source`),e.detailOf!==void 0&&!c.has(e.detailOf)&&i.push(`section ${e.id}.detailOf does not name a node`),!t&&(!vg(e.position)||!vg(e.size)||!Number.isFinite(e.position.x)||!Number.isFinite(e.position.y)||e.position.x<0||e.position.y<0||!Number.isFinite(e.size.width)||!Number.isFinite(e.size.height)||e.size.width<=0||e.size.height<=0)&&i.push(`section ${e.id} requires finite geometry`),e.mode===`note`?(!yg(e.text)||!e.text.length||(e.items?.length??0))&&i.push(`note ${e.id} requires text and no items`):(!Array.isArray(e.items)||!e.items.length)&&i.push(`section ${e.id}.items must be non-empty`);for(let t of Array.isArray(e.items)?e.items:[]){if(!vg(t)){i.push(`section ${e.id} item must be an object`);continue}[`nodeId`,`groupId`,`mode`].filter(e=>Object.hasOwn(t,e)).length===1?t.nodeId===void 0?t.groupId===void 0?h(t,n+1):m(t.groupId):p(t.nodeId):i.push(`section ${e.id} item needs exactly one nodeId, groupId or nested section`)}};e.layout.sections.forEach(e=>h(e));for(let e of c.keys())u.has(e)||i.push(`overview node ${e} is missing from sections`);return i}function Sg(e,t=e.size.width){let n=e.overviewTone===`plain`?0:Y.cardPadding,r=t-n*2,i=[],a=e.badges?.length?Math.min(r*.45,Math.max(...e.badges.map(e=>Z(e.label,r*.45-16,Y.badge,Y.badgeLine).width+16))):0,o=n;for(let r of e.badges??[]){let e=Z(r.label,a-16,Y.badge,Y.badgeLine),s=Math.max(48,e.width+16),c=e.height+6;i.push({...r,x:t-n-s,y:o,width:s,height:c,lines:e.lines}),o+=c+6}let s=Z(e.label,r-(a?a+10:0),Y.title,Y.titleLine),c=s.lines.map((e,t)=>({text:e,x:n,y:n+Y.title+t*Y.titleLine,role:`title`})),l=e.subtitle&&s.lines.length===1&&Z(e.subtitle,1/0,Y.body,Y.bodyLine).width+s.width+12<=r-(a?a+10:0);l&&c.push({text:e.subtitle,x:n+s.width+12,y:n+Y.title,role:`body`});let u=Math.max(n+s.height,i.length?o-6:0),d=t>1e3?[(e.overviewText??[]).join(` `)]:e.overviewText??[];for(let t of[l?``:e.subtitle,...d].filter(Boolean)){u+=6;let e=Z(t,r,Y.body,Y.bodyLine);c.push(...e.lines.map((e,t)=>({text:e,x:n,y:u+Y.body+t*Y.bodyLine,role:`body`}))),u+=e.height}return{lines:c,badges:i,minHeight:u+n}}var Cg=e=>e.frame===`none`?0:Y.padding,wg=(e,t)=>{let n=t-Cg(e)*2;return Cg(e)+Z(e.title,n,Y.sectionTitle,Y.sectionLine).height+(e.text??[]).reduce((e,t)=>e+8+Z(t,n,Y.body,Y.bodyLine).height,0)};function Tg(e){if(e.mode===`note`)return[{...e.position,...e.size}];let t=Cg(e),n=e.position.x+t,r=e.size.width-t*2,i=Z(e.title,r,Y.sectionTitle,Y.sectionLine),a=i.lines.map((r,i)=>({x:n,y:e.position.y+t+i*Y.sectionLine,width:Z(r,1/0,Y.sectionTitle,Y.sectionLine).width,height:Y.sectionLine})),o=e.position.y+t+i.height;for(let t of e.text??[]){o+=8;let e=Z(t,r,Y.body,Y.bodyLine);a.push(...e.lines.map((e,t)=>({x:n,y:o+t*Y.bodyLine,width:Z(e,1/0,Y.body,Y.bodyLine).width,height:Y.bodyLine}))),o+=e.height}return a}function Eg(e,t,n){let r=structuredClone(e),i=r.nodes.find(e=>e.id===t);if(!i)return r;let a=_g(r).find(e=>e.items?.some(e=>e.nodeId===t));if(a){let e=a.items.filter(e=>e.nodeId).map(e=>r.nodes.find(t=>t.id===e.nodeId)).sort((e,t)=>Math.hypot(e.position.x-n.x,e.position.y-n.y)-Math.hypot(t.position.x-n.x,t.position.y-n.y))[0];if(e&&e.id!==t){let n=a.items.findIndex(e=>e.nodeId===t),r=a.items.findIndex(t=>t.nodeId===e.id);a.items.splice(r,0,a.items.splice(n,1)[0])}}else if(i.groupId){let e=r.nodes.filter(e=>e.groupId===i.groupId).sort((e,t)=>Math.hypot(e.position.x-n.x,e.position.y-n.y)-Math.hypot(t.position.x-n.x,t.position.y-n.y))[0];if(e&&e.id!==t){let n=r.nodes.findIndex(e=>e.id===t),i=r.nodes.findIndex(t=>t.id===e.id);r.nodes.splice(i,0,r.nodes.splice(n,1)[0])}}return r}var Dg=e=>String(e??``).replaceAll(`&`,`&amp;`).replaceAll(`<`,`&lt;`).replaceAll(`>`,`&gt;`).replaceAll(`"`,`&quot;`),Og=(e,t,n,r,i=``)=>`<text x="${e}" y="${t}" class="${r}"${i?` style="${i}"`:``}>${Dg(n)}</text>`;function kg(e,t,n,r){let i=Bf(r),a=i[e.overviewTone??`subtle`]??i.subtle,o=Sg(e),s=e.overviewTone===`plain`,c=`overview-card-${[...e.id].map(e=>e.codePointAt(0).toString(16)).join(`-`)}`,l=!s&&a.band&&e.size.width>1e3?`<defs><linearGradient id="${c}"><stop stop-color="${a.band[0]}"/><stop offset="1" stop-color="${a.band[1]}"/></linearGradient></defs>`:``,u=`<rect class="node-surface" x="${t}" y="${n}" width="${e.size.width}" height="${e.size.height}" rx="${Y.cardRadius}" fill="${s?`none`:l?`url(#${c})`:a.fill}" stroke="${s?`none`:a.stroke}" stroke-width="1.5"/>`,d=e.overviewAccent&&a.accent?`<path d="M${t+5} ${n+10}V${n+e.size.height-10}" stroke="${a.accent}" stroke-width="5" stroke-linecap="round"/>`:``,f=o.lines.map(e=>Og(t+e.x,n+e.y,e.text,e.role,`fill:${e.role===`title`?i.ink:i.body};font-size:${e.role===`title`?Y.title:Y.body}px;font-weight:${e.role===`title`?700:400}`)).join(``);return l+u+d+f+o.badges.map(e=>{let r=/^(已实现|已完成|完成|implemented|ready|done|complete)$/i.test(e.label),o=e.role===`version`?{fill:a.accent??i.blue.accent,ink:i.paper}:e.role===`status`&&r||e.role===`requirement`&&/^(必选|required|mandatory)$/i.test(e.label)?i.success:i.badge;return`<g data-badge-role="${e.role}"><rect x="${t+e.x}" y="${n+e.y}" width="${e.width}" height="${e.height}" rx="8" fill="${o.fill}"/>${e.lines.map((r,i)=>Og(t+e.x+8,n+e.y+3+Y.badge+i*Y.badgeLine,r,`meta`,`fill:${o.ink};font-size:${Y.badge}px;font-weight:600`)).join(``)}</g>`}).join(``)}function Ag(e,t,n=0,r=0){let i=Bf(t),a=i[e.tone??`white`]??i.white,o=e.position.x+n,s=e.position.y+r,c=e.size.width,l=Cg(e),u=Z(e.title,c-l*2,Y.sectionTitle,Y.sectionLine),d=s+l+u.height,f=``;for(let t of e.text??[]){d+=8;let e=Z(t,c-l*2,Y.body,Y.bodyLine);f+=e.lines.map((e,t)=>Og(o+l,d+Y.body+t*Y.bodyLine,e,`body`,`fill:${i.body};font-size:${Y.body}px`)).join(``),d+=e.height}let p=`overview-band-${[...e.id].map(e=>e.codePointAt(0).toString(16)).join(`-`)}`,m=a.band&&e.frame!==`none`?`<defs><linearGradient id="${p}"><stop stop-color="${a.band[0]}"/><stop offset="1" stop-color="${a.band[1]}"/></linearGradient></defs>`:``,h=e.frame===`none`?``:`<rect x="${o}" y="${s}" width="${c}" height="${e.size.height}" rx="${Y.sectionRadius}" fill="${m?`url(#${p})`:a.fill}" stroke="${a.stroke}" stroke-width="1.5"${e.frame===`dashed`?` stroke-dasharray="5 4"`:``}/>`;return`<g data-overview-section-id="${Dg(e.id)}">${m}${h}${u.lines.map((e,t)=>Og(o+l,s+l+Y.sectionTitle+t*Y.sectionLine,e,`title`,`fill:${i.ink};font-size:${Y.sectionTitle}px;font-weight:700`)).join(``)}${f}</g>`}function jg(e,t=new Map){if(!ff(e))return[];let n=[],r=_g(e);for(let t of r){let r=wg(t,t.size.width)+Cg(t);t.size.height<r&&n.push(`section ${t.id} text is clipped`);for(let r of Array.isArray(t.items)?t.items:[]){let i=r.nodeId?e.nodes.find(e=>e.id===r.nodeId):r.groupId?e.groups.find(e=>e.id===r.groupId):r;i&&(i.position.x<t.position.x+Cg(t)||i.position.y<t.position.y+wg(t,t.size.width)+24||i.position.x+i.size.width>t.position.x+t.size.width-Cg(t)+.01||i.position.y+i.size.height>t.position.y+t.size.height-Cg(t)+.01)&&n.push(`section ${t.id} does not contain ${i.id}`)}}let i=e=>({...e.position,...e.size}),a=(e,t)=>e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y,o=t=>{let r=t.map(t=>t.nodeId?e.nodes.find(e=>e.id===t.nodeId):t.groupId?(e.groups??[]).find(e=>e.id===t.groupId):t).filter(Boolean);for(let e=0;e<r.length;e++)for(let t of r.slice(e+1))a(i(r[e]),i(t))&&n.push(`overview siblings ${r[e].id} and ${t.id} overlap`)};o(e.layout.sections);for(let e of r)e.items&&o(e.items);let s=(e,t,n)=>{let r=0,i=1;for(let[a,o]of[[`x`,`width`],[`y`,`height`]]){let s=t[a]-e[a];if(!s){if(e[a]<=n[a]||e[a]>=n[a]+n[o])return!1;continue}let c=(n[a]-e[a])/s,l=(n[a]+n[o]-e[a])/s;if(r=Math.max(r,Math.min(c,l)),i=Math.min(i,Math.max(c,l)),r>=i)return!1}return i>0&&r<1};for(let e of r)for(let r of Tg(e))for(let[i,o]of t)o.points.slice(1).some((e,t)=>s(o.points[t],e,r))&&n.push(`overview route ${i} crosses section ${e.id} text`),o.label&&a(o.labelBox,r)&&n.push(`overview label ${i} overlaps section ${e.id} text`);return n}function Mg(e,t,n=0,r=0,i,a,o){let s=$(t);if(!s)throw Error(`Unsupported diagram type: ${t}`);let c=np(e,i,o),{fill:l,stroke:u,ring:d}=c,f=e.position.x+n,p=e.position.y+r,m=s.render({...e,appearance:c},f,p,l,u,i,a),h=d&&![`actor`,`initial`,`final`].includes(e.kind)?Np(s.outline(e,f,p),{class:`role-ring`,fill:`none`,stroke:d,"stroke-width":5}):``,g=[e.label,e.subtitle,...e.overviewText??[],...(e.badges??[]).map(e=>e.label),...(e.fields??[]).map(e=>`${e.key?e.key+` `:``}${e.name}: ${e.type}${e.nullable===void 0?``:` (nullable: ${e.nullable})`}`),...e.attributes??[],...e.methods??[]].filter(Boolean).join(`
279
+ `);return`<g data-diagram-node-id="${Ap(e.id)}" class="node-drawing${qf(e)&&!s.compartments?` core-node`:``}"><title>${Ap(g)}</title>${h}${m}</g>`}function Ng(e,t){let n=$(t);return{markup:Np(n.outline(e,0,0)),height:n.selectionHeight?.(e)??e.size.height}}function Pg(e,t,n,r,i,a,o,s,c){let l=$(t),u={...e,position:{x:n,y:r},size:{width:i,height:a}};return Np(l.outline(u,n,r),{fill:o,stroke:s,"stroke-width":c})}function Fg({data:e,pulse:t}){let{markup:n,height:r}=Ng(e,e.diagramType);return(0,x.jsxs)(`svg`,{className:`selection-feedback selection-outline selection-node-outline ${t>0?`is-animated`:``}`,"data-selection-pulse":t,viewBox:`0 0 ${e.size.width} ${r}`,style:{height:r},"aria-hidden":`true`,children:[(0,x.jsx)(`g`,{className:`selection-node-halo`,dangerouslySetInnerHTML:{__html:n}}),(0,x.jsx)(`g`,{className:`selection-node-shine`,dangerouslySetInnerHTML:{__html:n}})]})}function Ig({sequence:e=!1}){return e?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(Ul,{id:`target-left`,type:`target`,position:H.Left,style:{top:X.sequenceHeader,opacity:0}}),(0,x.jsx)(Ul,{id:`source-right`,type:`source`,position:H.Right,style:{top:X.sequenceHeader,opacity:0}})]}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(Ul,{id:`target-left`,type:`target`,position:H.Left}),(0,x.jsx)(Ul,{id:`source-left`,type:`source`,position:H.Left}),(0,x.jsx)(Ul,{id:`target-right`,type:`target`,position:H.Right}),(0,x.jsx)(Ul,{id:`source-right`,type:`source`,position:H.Right}),(0,x.jsx)(Ul,{id:`target-top`,type:`target`,position:H.Top}),(0,x.jsx)(Ul,{id:`source-top`,type:`source`,position:H.Top}),(0,x.jsx)(Ul,{id:`target-bottom`,type:`target`,position:H.Bottom}),(0,x.jsx)(Ul,{id:`source-bottom`,type:`source`,position:H.Bottom})]})}function Lg({data:e,selected:t}){let n=e.moduleColors?.get(e.module),r=Mg({...e,position:{x:0,y:0}},e.diagramType,0,0,e.palette,e.locale,e.moduleColors);return(0,x.jsxs)(`article`,{className:`diagram-node diagram-${e.diagramType} kind-${e.kind} ${n?`has-module`:``} ${qf(e)?`is-core`:``} ${e.dimmed?`is-dimmed`:``} ${t?`is-selected`:``}`,style:n?{"--node-module":n.accent}:void 0,title:e.label,children:[(0,x.jsx)(Ig,{sequence:$(e.diagramType).sequence}),(0,x.jsx)(`svg`,{className:`node-visual`,viewBox:`0 0 ${e.size.width} ${e.size.height}`,"aria-label":e.label,dangerouslySetInnerHTML:{__html:r}}),t&&(0,x.jsx)(Fg,{data:e,pulse:e.selectionPulse},e.selectionPulse)]})}function Rg({data:e}){let t=e.fragment,n=t?.heading?{left:t.heading.x-e.position.x,top:t.heading.y-e.position.y,maxWidth:t.heading.width}:void 0,r=[`alt`,`opt`,`loop`,`par`].includes(e.kind);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`section`,{className:`boundary boundary-${e.kind}`,"aria-label":e.label,children:[(0,x.jsx)(`svg`,{className:`boundary-visual`,width:`100%`,height:`100%`,dangerouslySetInnerHTML:{__html:kp(e,e.appearance)}}),t?(0,x.jsx)(`span`,{style:n,children:t.heading?.lines?.join(`
280
+ `)??e.label}):(0,x.jsx)(`svg`,{className:`boundary-heading`,width:`100%`,height:`100%`,dangerouslySetInnerHTML:{__html:Op(e)}}),r&&!t&&(0,x.jsx)(`small`,{children:e.kind}),t&&(0,x.jsx)(`svg`,{className:`fragment-visual`,width:`100%`,height:`100%`,dangerouslySetInnerHTML:{__html:yh({...t,guards:[],bodies:[]},e,-e.position.x,-e.position.y)}})]}),t&&(0,x.jsx)(J,{children:(0,x.jsxs)(`div`,{className:`fragment-overlay`,style:{position:`absolute`,pointerEvents:`none`,width:e.size.width,height:e.size.height,transform:`translate(${e.position.x}px, ${e.position.y}px)`},children:[(0,x.jsx)(`svg`,{className:`fragment-text`,width:e.size.width,height:e.size.height,dangerouslySetInnerHTML:{__html:yh({...t,separators:[]},e,-e.position.x,-e.position.y,`currentColor`,e.appearance?.fill??`var(--canvas)`)}}),r&&(0,x.jsx)(`small`,{children:e.kind})]})})]})}function zg({value:e,point:t,neighbor:n,color:r}){let i=Ah(e,t,n);return(0,x.jsxs)(`g`,{className:`cardinality-mark`,stroke:r,strokeWidth:`1.5`,fill:`none`,children:[(0,x.jsx)(`path`,{d:i.path}),i.circle&&(0,x.jsx)(`circle`,{...i.circle,fill:`var(--canvas)`})]})}function Bg({id:e,markerEnd:t,style:n,data:r}){let{route:i}=r,a=$(r.diagramType).sequence,o=r.directed&&r.flowRunning,s=`sequence-flow-${(0,y.useId)().replaceAll(`:`,``)}`,c=i.points.map(e=>e.x),l=i.points.map(e=>e.y),u={x:Math.min(...c)-32,y:Math.min(...l)-32,width:Math.max(64,Math.max(...c)-Math.min(...c)+64),height:Math.max(64,Math.max(...l)-Math.min(...l)+64)},d=$(r.diagramType).cardinalities,f=rh(r,r.diagramType),p=f.end===`arrow`?t:f.end?`url(#codegraph-${f.end})`:void 0,m=f.start?`url(#codegraph-${f.start})`:void 0;return(0,x.jsxs)(x.Fragment,{children:[a&&r.dashed&&o&&(0,x.jsx)(`defs`,{children:(0,x.jsx)(`mask`,{id:s,maskUnits:`userSpaceOnUse`,maskContentUnits:`userSpaceOnUse`,...u,children:(0,x.jsx)(`path`,{d:i.path,fill:`none`,stroke:`white`,strokeWidth:`3.2`,strokeDasharray:`5 5`})})}),r.selectionLinked&&(0,x.jsxs)(`g`,{className:`selection-feedback ${o?`has-flow`:``} ${r.selectionPulse>0?`is-animated`:``}`,"data-selection-pulse":r.selectionPulse,style:{stroke:r.selectionColor},children:[(0,x.jsx)(`path`,{className:`selection-edge-halo`,d:i.path}),(0,x.jsx)(`path`,{className:`selection-edge-shine`,d:i.path})]},`${r.selectionId}:${r.selectionPulse}`),(0,x.jsx)(Cu,{id:e,path:i.path,markerEnd:p,markerStart:m,style:{...n,strokeOpacity:1}}),r.directed&&o&&(0,x.jsx)(`path`,{className:`edge-flow ${a?`sequence-edge-flow`:``}`,d:i.path,mask:a&&r.dashed?`url(#${s})`:void 0,style:{stroke:n.stroke}}),d&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(zg,{value:r.sourceCardinality,point:i.points[0],neighbor:i.points[1],color:r.relationColor}),(0,x.jsx)(zg,{value:r.targetCardinality,point:i.points.at(-1),neighbor:i.points.at(-2),color:r.relationColor})]}),(i.endpointLabels??[]).map(e=>(0,x.jsxs)(`g`,{className:`edge-multiplicity`,"data-endpoint":e.role,children:[(0,x.jsx)(`rect`,{...e.labelBox,rx:`4`,fill:`var(--canvas)`}),(0,x.jsx)(`text`,{x:e.labelPoint.x,y:e.labelBox.y+3+X.body,fontSize:X.body,fontWeight:`500`,textAnchor:`middle`,fill:r.labelColor,children:e.label})]},e.role)),i.label&&(0,x.jsx)(J,{children:(0,x.jsx)(`button`,{type:`button`,className:`edge-label nodrag nopan`,"data-edge-id":e,onClick:e=>{e.stopPropagation(),r.onSelect()},onKeyDown:e=>{[`Enter`,` `].includes(e.key)&&(e.stopPropagation(),e.repeat&&e.preventDefault())},style:{width:i.labelBox.width,height:i.labelBox.height,color:r.labelColor,background:r.labelSurface,fontWeight:r.selectionLinked?650:500,transform:`translate(-50%, -50%) translate(${i.labelPoint.x}px, ${i.labelPoint.y}px)`},children:i.labelLines.map((e,t)=>(0,x.jsx)(`span`,{children:i.labelRuns?i.labelRuns[t].map((e,t)=>(0,x.jsx)(`span`,{style:{color:r.roleColors?.[e.role]},children:e.text},t)):t===0&&r.pair&&e.startsWith(r.pair.label)?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`b`,{className:`pair-label`,style:{borderColor:n.stroke},children:r.pair.label}),e.slice(r.pair.label.length)]}):e},t))})})]})}function Vg({data:e}){return(0,x.jsxs)(`section`,{className:`overview-section`,children:[(0,x.jsx)(`svg`,{className:`node-visual`,width:e.size.width,height:e.size.height,"aria-label":e.title,dangerouslySetInnerHTML:{__html:Ag(e,e.palette,-e.position.x,-e.position.y)}}),(0,x.jsx)(`button`,{className:`overview-section-select nodrag nopan`,onClick:t=>{t.stopPropagation(),e.onSelect?.()},"aria-label":e.title,children:e.title})]})}var Hg={diagram:Lg,boundary:Rg,overview:Vg},Ug={routed:Bg};function Wg(e,t){let n=[...e.groups??[]].sort((t,n)=>ph(t,e.groups??[])-ph(n,e.groups??[])).map(t=>({id:t.id,type:`boundary`,position:t.position,data:{...t},style:{width:t.size.width,height:t.size.height,pointerEvents:`none`},selectable:!1,draggable:!1,connectable:!1,zIndex:-(e.groups?.length??0)+ph(t,e.groups??[])})),r=!$m(e);return[..._g(e).map((e,t)=>({id:e.id,type:`overview`,position:e.position,data:{...e},style:{width:e.size.width,height:e.size.height,pointerEvents:`none`},draggable:!1,selectable:!1,zIndex:-100+t})),...n,...e.nodes.map(n=>({id:n.id,type:`diagram`,className:t===`sequence`?`sequence-column`:void 0,position:n.position,data:{...n,diagramType:t,locale:e.meta.locale,classicCard:r},style:{width:n.size.width,height:n.size.height,...t===`sequence`?{pointerEvents:`none`}:{}},zIndex:2}))]}function Gg(e,t){return Sf(e).map(e=>({id:e.id,source:e.source,target:e.target,type:`routed`,zIndex:t===`sequence`?3:0,markerEnd:eh(e,t)?{type:Da.ArrowClosed}:void 0,data:{...e,diagramType:t}}))}var Kg=e=>`linear-gradient(90deg, ${e.map((t,n)=>`${t} ${n/e.length*100}% ${(n+1)/e.length*100}%`).join(`, `)})`;function qg(e,t,n){e=Cf(e);let r=$(e.meta.diagramType),i=new Map,a=new Map;for(let o of e.nodes){let e=np(o,t,n),s=e.role===`flight`?`ramp`:o.kind===`actor`?`actor`:[`initial`,`final`].includes(o.kind)?o.kind:r.compartments?`compartment`:`box`,c=`${e.role}-${s}`;s===`ramp`&&a.set(e.toneIndex,e.stroke),i.set(c,{id:c,...e,label:r.legend?.[e.role]??e.label,shape:s})}a.size&&(i.get(`flight-ramp`).ramp=[...new Set([...a].sort(([e],[t])=>e-t).map(([,e])=>e))]);for(let t of[...new Set([...e.nodes.map(e=>e.module),...e.edges.map(e=>e.module)].filter(Boolean))].sort()){let e=n?.get(t);e&&i.set(`module-${t}`,{id:`module-${t}`,role:`module`,label:t,shape:`module`,fill:e.chip,stroke:e.accent})}if(e.edges.some(t=>!th(t,e.meta.diagramType))&&i.set(`solid`,{id:`solid`,label:r.legend?.solid??`Solid relation`,shape:`solid`,stroke:t.edge}),e.edges.some(t=>th(t,e.meta.diagramType))&&i.set(`dashed`,{id:`dashed`,label:`Dashed: notation / convention / inference`,shape:`dashed`,stroke:t.edge}),r.curvedSelfLoops&&e.edges.some(e=>e.source===e.target)&&i.set(`self`,{id:`self`,label:`Self-transition: handled without leaving the state`,shape:`self`,stroke:t.edge}),r.sequence)for(let[n,r]of[[`sync`,`Synchronous message`],[`async`,`Asynchronous message`],[`return`,`Return message`]])e.edges.some(e=>e.kind===n)&&i.set(n,{id:n,label:r,shape:n,stroke:t.edge});return r.sequence&&e.executions?.length&&i.set(`execution`,{id:`execution`,label:`Activation: execution interval; offset means nesting`,shape:`execution`,fill:t.accentSoft,stroke:t.accent}),r.sequence&&e.edges.some(e=>e.replyTo)&&i.set(`pair`,{id:`pair`,label:`C ID: paired call and return share a color`,shape:`solid`,stroke:t.accent}),r.sequence&&e.groups?.some(e=>e.kind===`par`)&&i.set(`parallel`,{id:`parallel`,label:`par: concurrent branches; vertical position is not order`,shape:`dashed`,stroke:t.edge}),[...i.values()].map(t=>({...t,label:bf(e.meta.locale,t.label)}))}var Jg='(function(){let e=`templates-v4-clearance-compact-elkjs-0.11.0`,t=e=>/^templates-v([4-9]|\\d{2,})-/.test(e.layout?.version??``),n=e=>/^templates-v([3-9]|\\d{2,})-/.test(e.layout?.version??``),r=e=>/^templates-v([2-9]|\\d{2,})-/.test(e.layout?.version??``),i=Object.freeze({bends:.5,crossings:2}),a=Object.freeze([`external`,`application`,`infrastructure`,`data`]);function o(e){return e.layout?.tier?a.indexOf(e.layout.tier):[`external`,`actor`,`client`].includes(e.kind)?0:e.kind===`database`?3:[`queue`,`cache`].includes(e.kind)?2:1}let s=e=>e?.meta?.architectureView??`relations`,c=e=>(e?.meta?.diagramType??`architecture`)===`architecture`&&s(e)!==`relations`,l={relations:`Component relationship architecture`,capabilities:`Platform capability architecture`,engineering:`Engineering layer architecture`};Object.freeze([{id:`capabilities`,type:`architecture`,label:l.capabilities},{id:`engineering`,type:`architecture`,label:l.engineering},{id:`relations`,type:`architecture`,label:l.relations},{id:`flowchart`,type:`flowchart`,label:`Flowchart`},{id:`sequence`,type:`sequence`,label:`Sequence`},{id:`er`,type:`er`,label:`ER diagram`},{id:`deployment`,type:`deployment`,label:`Deployment`},{id:`class`,type:`class`,label:`Class diagram`},{id:`state`,type:`state`,label:`State diagram`},{id:`usecase`,type:`usecase`,label:`Use cases`},{id:`dataflow`,type:`dataflow`,label:`Data flow`}]);let u=e=>(e?.meta?.diagramType??`architecture`)===`architecture`?s(e):e.meta.diagramType,d=Object.freeze({nodeGap:48,labelGap:24,labelEdgeGap:6,groupHeadingGap:24,groupInset:32,groupGap:48,endpoint:12,parallelGap:24}),f=Object.freeze({nodeGap:64,layerGap:80,edgeNodeGap:24,labelWidth:320,headingWidth:360}),p=Object.freeze({...d,nodeGap:32,groupInset:24,groupGap:32}),m=Object.freeze({...f,nodeGap:40,layerGap:48}),h=e=>e?.cardLayout?p:d,g=e=>e?.cardLayout?m:f;Object.freeze({width:1392,height:688});let _=[`er`,`deployment`,`dataflow`,`usecase`],v=e=>e===`architecture`||e===`deployment`?[`down`,`right`]:[_.includes(e)?`right`:`down`],y=(e,t)=>(t?.direction??v(e)[0])===`down`;function b(e){let t=new Map,n=e.groups??[],r=(t,i=new Set)=>{if(i.has(t))return[];let a=new Set([...i,t]);return[...e.nodes.filter(e=>e.groupId===t).map(e=>e.id),...n.filter(e=>e.parentId===t).flatMap(e=>r(e.id,a))]},i=e=>{for(let n of e.items??[])if(n.mode)i(n);else for(let i of n.nodeId?[n.nodeId]:r(n.groupId))t.set(i,e.id)};return(e.layout?.sections??[]).forEach(i),t}function x(e){if(!c(e)||e.layout?.overviewConnections===`all`)return e.edges;let t=b(e);return e.edges.filter(e=>t.has(e.source)&&t.get(e.source)===t.get(e.target))}let S=e=>({...e,edges:x(e)});function C(e,t){let n=new Map(t.edges.map(e=>[e.id,e]));return e.edges.map(e=>n.get(e.id)??e)}let w={light:{neutral:[null,`#fcfcfd`,`#f9f9fb`,`#f0f0f3`,`#e8e8ec`,`#e0e1e6`,`#d9d9e0`,`#cdced6`,`#b9bbc6`,`#8b8d98`,`#80838d`,`#60646c`,`#1c2024`],accent:[null,`#fdfdff`,`#f8f8ff`,`#f0f1fe`,`#e6e7ff`,`#dadcff`,`#cbcdff`,`#b8baf8`,`#9b9ef0`,`#5b5bd6`,`#5151cd`,`#5753c6`,`#272962`],data:[null,`#fafdfe`,`#f2fafb`,`#def7f9`,`#caf1f6`,`#b5e9f0`,`#9ddde7`,`#7dcedc`,`#3db9cf`,`#00a2c7`,`#0797b9`,`#107d98`,`#0d3c48`],warn:[null,`#fffcfc`,`#fff7f7`,`#feebec`,`#ffdbdc`,`#ffcdce`,`#fdbdbe`,`#f4a9aa`,`#eb8e90`,`#e5484d`,`#dc3e42`,`#ce2c31`,`#641723`],guard:[null,`#fefdfb`,`#fefbe9`,`#fff7c2`,`#ffee9c`,`#fbe577`,`#f3d673`,`#e9c162`,`#e2a336`,`#ffc53d`,`#ffba18`,`#ab6400`,`#4f3422`]},dark:{neutral:[null,`#111113`,`#18191b`,`#212225`,`#272a2d`,`#2e3135`,`#363a3f`,`#43484e`,`#5a6169`,`#696e77`,`#777b84`,`#b0b4ba`,`#edeef0`],accent:[null,`#13131e`,`#171625`,`#202248`,`#262a65`,`#303374`,`#3d3e82`,`#4a4a95`,`#5958b1`,`#5b5bd6`,`#6e6ade`,`#b1a9ff`,`#e0dffe`],data:[null,`#0b161a`,`#101b20`,`#082c36`,`#003848`,`#004558`,`#045468`,`#12677e`,`#11809c`,`#00a2c7`,`#23afd0`,`#4ccce6`,`#b6ecf7`],warn:[null,`#191111`,`#201314`,`#3b1219`,`#500f1c`,`#611623`,`#72232d`,`#8c333a`,`#b54548`,`#e5484d`,`#ec5d5e`,`#ff9592`,`#ffd1d9`],guard:[null,`#16120c`,`#1d180f`,`#302008`,`#3f2700`,`#4d3000`,`#5c3d05`,`#714f19`,`#8f6424`,`#ffc53d`,`#ffd60a`,`#ffca16`,`#ffe7b3`]}},ee=[`blue`,`orange`,`teal`,`crimson`,`violet`,`grass`,`plum`,`indigo`],te={light:{blue:[null,`#fbfdff`,`#f4faff`,`#e6f4fe`,`#d5efff`,`#c2e5ff`,`#acd8fc`,`#8ec8f6`,`#5eb1ef`,`#0090ff`,`#0588f0`,`#0d74ce`,`#113264`],orange:[null,`#fefcfb`,`#fff7ed`,`#ffefd6`,`#ffdfb5`,`#ffd19a`,`#ffc182`,`#f5ae73`,`#ec9455`,`#f76b15`,`#ef5f00`,`#cc4e00`,`#582d1d`],teal:[null,`#fafefd`,`#f3fbf9`,`#e0f8f3`,`#ccf3ea`,`#b8eae0`,`#a1ded2`,`#83cdc1`,`#53b9ab`,`#12a594`,`#0d9b8a`,`#008573`,`#0d3d38`],crimson:[null,`#fffcfd`,`#fef7f9`,`#ffe9f0`,`#fedce7`,`#facedd`,`#f3bed1`,`#eaacc3`,`#e093b2`,`#e93d82`,`#df3478`,`#cb1d63`,`#621639`],violet:[null,`#fdfcfe`,`#faf8ff`,`#f4f0fe`,`#ebe4ff`,`#e1d9ff`,`#d4cafe`,`#c2b5f5`,`#aa99ec`,`#6e56cf`,`#654dc4`,`#6550b9`,`#2f265f`],grass:[null,`#fbfefb`,`#f5fbf5`,`#e9f6e9`,`#daf1db`,`#c9e8ca`,`#b2ddb5`,`#94ce9a`,`#65ba74`,`#46a758`,`#3e9b4f`,`#2a7e3b`,`#203c25`],plum:[null,`#fefcff`,`#fdf7fd`,`#fbebfb`,`#f7def8`,`#f2d1f3`,`#e9c2ec`,`#deade3`,`#cf91d8`,`#ab4aba`,`#a144af`,`#953ea3`,`#53195d`],indigo:[null,`#fdfdfe`,`#f7f9ff`,`#edf2fe`,`#e1e9ff`,`#d2deff`,`#c1d0ff`,`#abbdf9`,`#8da4ef`,`#3e63dd`,`#3358d4`,`#3a5bc7`,`#1f2d5c`]},dark:{blue:[null,`#0d1520`,`#111927`,`#0d2847`,`#003362`,`#004074`,`#104d87`,`#205d9e`,`#2870bd`,`#0090ff`,`#3b9eff`,`#70b8ff`,`#c2e6ff`],orange:[null,`#17120e`,`#1e160f`,`#331e0b`,`#462100`,`#562800`,`#66350c`,`#7e451d`,`#a35829`,`#f76b15`,`#ff801f`,`#ffa057`,`#ffe0c2`],teal:[null,`#0d1514`,`#111c1b`,`#0d2d2a`,`#023b37`,`#084843`,`#145750`,`#1c6961`,`#207e73`,`#12a594`,`#0eb39e`,`#0bd8b6`,`#adf0dd`],crimson:[null,`#191114`,`#201318`,`#381525`,`#4d122f`,`#5c1839`,`#6d2545`,`#873356`,`#b0436e`,`#e93d82`,`#ee518a`,`#ff92ad`,`#fdd3e8`],violet:[null,`#14121f`,`#1b1525`,`#291f43`,`#33255b`,`#3c2e69`,`#473876`,`#56468b`,`#6958ad`,`#6e56cf`,`#7d66d9`,`#baa7ff`,`#e2ddfe`],grass:[null,`#0e1511`,`#141a15`,`#1b2a1e`,`#1d3a24`,`#25482d`,`#2d5736`,`#366740`,`#3e7949`,`#46a758`,`#53b365`,`#71d083`,`#c2f0c2`],plum:[null,`#181118`,`#201320`,`#351a35`,`#451d47`,`#512454`,`#5e3061`,`#734079`,`#92549c`,`#ab4aba`,`#b658c4`,`#e796f3`,`#f4d4f4`],indigo:[null,`#11131f`,`#141726`,`#182449`,`#1d2e62`,`#253974`,`#304384`,`#3a4f97`,`#435db1`,`#3e63dd`,`#5472e4`,`#9eb1ff`,`#d6e1ff`]}},T=Object.freeze({width:1440,margin:42,padding:22,cardPadding:18,cardGap:14,bandGap:28,connectedGap:56,cardRadius:14,sectionRadius:20,title:22,titleLine:28,body:18,bodyLine:26,badge:16,badgeLine:20,sectionTitle:24,sectionLine:30}),ne=[`white`,`subtle`,`blue`,`green`,`lavender`,`plain`],re={paper:`#ffffff`,ink:`#242628`,body:`#566475`,line:`#e1e5e8`,edge:`#7d8798`,white:{fill:`#ffffff`,stroke:`#e1e5e8`},subtle:{fill:`#f5fafc`,stroke:`#e1e5e8`},blue:{fill:`#eef7fd`,stroke:`#87cdee`,band:[`#e5f3fb`,`#cde8f5`],accent:`#327d9f`},green:{fill:`#edf9f5`,stroke:`#a7e5d3`,band:[`#edf9f5`,`#dff4ed`],accent:`#2d8269`},lavender:{fill:`#eaf0fe`,stroke:`#aac6fd`,band:[`#edf2fe`,`#d7e4fc`],accent:`#5375aa`},badge:{fill:`#e9edf0`,ink:`#5f6a7a`},success:{fill:`#e7f5e9`,ink:`#2b763d`}},ie={paper:`#171b22`,ink:`#eef1f5`,body:`#b4bdcb`,line:`#404955`,edge:`#a8b6c9`,white:{fill:`#242b35`,stroke:`#404955`},subtle:{fill:`#222d38`,stroke:`#404955`},blue:{fill:`#223746`,stroke:`#457d9e`,band:[`#243c4d`,`#294b5f`],accent:`#8bc4e0`},green:{fill:`#203c34`,stroke:`#437d6b`,band:[`#243f37`,`#294e43`],accent:`#89cbb2`},lavender:{fill:`#2c354d`,stroke:`#657eaf`,band:[`#2f3c58`,`#364b70`],accent:`#aec6f1`},badge:{fill:`#3b4552`,ink:`#c0c9d6`},success:{fill:`#294c38`,ink:`#a6d9af`}},ae=e=>parseInt(e.paper.slice(1,3),16)<128?ie:re;function oe(e,t,n){let r=r=>Math.round(parseInt(e.slice(r,r+2),16)*n+parseInt(t.slice(r,r+2),16)*(1-n)).toString(16).padStart(2,`0`);return`#${r(1)}${r(3)}${r(5)}`}let se=[`orange`,`blue`,`teal`,`violet`,`plum`,`indigo`];Object.fromEntries(Object.entries(w).map(([e,{neutral:t,accent:n,data:r,warn:i,guard:a}])=>[e,{paper:t[1],surface:t[1],surface2:t[2],ink:t[12],ink2:t[11],ink3:t[11],rule:t[6],ruleSoft:t[4],accent:e===`dark`?`#67c4aa`:`#126b5a`,accentSoft:n[2],ringCore:n[5],data:e===`dark`?`#d9b16c`:`#886019`,warn:i[11],ringWarn:i[5],guard:a[11],badge:t[3],outline:e===`dark`?t[10]:t[9],card:e===`dark`?t[3]:t[1],groupFill:t[2],groupFillNested:e===`dark`?oe(t[2],t[3],.5):t[1],groupLine:t[5],moduleTones:(e===`dark`?[`#80b5ea`,`#67c4aa`,`#bb9add`,`#d9b16c`,`#9eafa7`]:[`#3677bb`,`#16816d`,`#8c64ac`,`#b27e2a`,`#6a7c75`]).map((n,r)=>({name:[`blue`,`teal`,`purple`,`amber`,`sage`][r],chip:n,accent:n,wash:oe(n,e===`dark`?t[3]:t[1],.09),header:oe(n,t[2],e===`dark`?.16:.09)})),sequenceTones:ee.map(t=>te[e][t][10]),stateTones:(()=>{let n=e===`dark`?10:11,r=te[e],a=e=>({name:e,fill:r[e][3],stroke:r[e][n]});return{goal:a(`grass`),ended:{name:`slate`,fill:t[3],stroke:t[n]},failed:{name:`red`,fill:i[3],stroke:i[n]},flight:se.map(a)}})(),edge:e===`dark`?t[10]:`#747982`,mask:e===`dark`?`rgba(17,17,19,.75)`:`rgba(252,252,253,.75)`,group:t[2]}]));let ce=new Set([`data`,`database`,`dataStore`,`entity`]),E={title:20,body:16,small:14,edgeLineHeight:24,sequenceHeader:72,sequenceActorHeader:108,erHeader:72,erRow:32,classHeader:68,classRow:28},le=e=>e.kind===`business`||(e.tags??[]).some(e=>[`core`,`business`].includes(String(e).trim().toLowerCase())),ue={external:`External`,config:`Configuration`,framework:`Framework`,security:`Security`,service:`Service`,business:`Business`,data:`Data`,failure:`Failure`,system:`System`,component:`Component`,database:`Database`,start:`Start`,end:`End`,process:`Process`,decision:`Decision`,input:`Input`,output:`Output`,subprocess:`Subprocess`,actor:`Actor`,participant:`Participant`,entity:`Entity`,device:`Device`,node:`Nodes`,container:`Container`,artifact:`Artifact`,class:`Class`,interface:`Interface`,abstract:`Abstract class`,state:`State`,initial:`Initial`,final:`End`,choice:`Choice`,usecase:`Use case`,dataStore:`Data store`};function de(e){let t=Math.min(E.erHeader,e.size.height*.4),n=Math.min(E.erRow,(e.size.height-t)/Math.max(1,e.fields?.length??0));return{erHeaderHeight:t,erRowHeight:n,erFontSize:Math.max(E.small,Math.min(E.body,n-6)),classHeaderHeight:E.classHeader+(e.subtitle?24:0),classRowHeight:E.classRow}}var fe={"zh-CN":{"Layout suggestions":`布局优化建议`,"Arrange this view to improve connector clearance and spacing. Existing positions are preserved until then.":`整理此图可改善连线间距与布局;整理前保留现有位置。`,Architecture:`架构图`,Flowchart:`流程图`,Sequence:`时序图`,"ER diagram":`ER 图`,Deployment:`部署图`,"Class diagram":`类图`,"State diagram":`状态图`,"Use cases":`用例图`,"Data flow":`数据流图`,"Source code":`源码`,Code:`代码`,Configuration:`配置`,Schema:`数据结构`,Test:`测试`,Document:`文档`,"Framework convention":`框架约定`,Inference:`推断`,External:`外部`,Framework:`框架`,Security:`安全`,Service:`服务`,Business:`业务`,Data:`数据`,Failure:`失败`,System:`系统`,Component:`组件`,Database:`数据库`,Start:`开始`,End:`结束`,Process:`处理`,Decision:`判断`,Input:`输入`,Output:`输出`,Subprocess:`子流程`,Actor:`角色`,Participant:`参与者`,Entity:`实体`,Device:`设备`,Nodes:`节点`,Container:`容器`,Artifact:`制品`,Class:`类`,Interface:`接口`,"Abstract class":`抽象类`,State:`状态`,Initial:`初始`,Choice:`选择`,"Use case":`用例`,"Data store":`数据存储`,"Initial state":`初始状态`,"Final state":`结束状态`,"Core component":`核心组件`,"Data / storage":`数据与存储`,"Start / end":`起止节点`,"Components / actors":`普通组件 / 角色`,"Solid relation":`实线关系`,"Dashed: notation / convention / inference":`虚线:关系记法 / 框架约定 / 推断`,Reset:`重置`,Dark:`深色`,Light:`浅色`,Locked:`布局锁定`,Draggable:`可拖动`,"Unlock the layout first":`请先解除布局锁定`,"Space the selected node and its direct neighbors":`整理选中节点及直接邻居的间距`,"Space all nodes":`整理全部节点的间距`,Arrange:`整理间距`,"Hide details":`隐藏右侧详情栏`,"Show details":`显示右侧详情栏`,Overview:`模型概览`,Edges:`关系`,Groups:`边界`,"Diagram types":`图类型`,"Search nodes":`搜索节点`,"Edge animation":`连线流动`,On:`开`,Off:`关`,"System reduced-motion preference is respected":`已遵循系统减少动态效果设置`,"Matches · {count}":`匹配结果 · {count}`,"Nodes · {count}":`节点目录 · {count}`,"No matches. Try a name or responsibility.":`未找到匹配节点,请试试名称或职责。`,Legend:`图例`,"Interactive {type}":`可交互{type}`,"Fit canvas":`适应画布`,"Exit fullscreen":`退出全屏`,"Enter fullscreen":`进入全屏`,"Exit fullscreen (Esc)":`退出全屏(Esc)`,"Fullscreen is not available in this browser or page":`当前浏览器或页面不支持全屏`,"Could not exit fullscreen. Press Esc to try again.":`无法退出全屏,请按 Esc 重试`,"Could not enter fullscreen. Check browser or page permissions and try again.":`无法进入全屏,请检查浏览器或页面权限后重试`,"{count} relations":`{count} 条关系`,"Node notes":`节点说明`,"Close details":`关闭详情`,Fields:`字段`,Attributes:`属性`,Methods:`方法`,Source:`来源`,"Start with a node":`从一个节点开始`,"Select a component or a list entry to explore its role, fields, methods and source.":`点击图中组件或左侧目录,查看职责、字段、方法与来源。`,"Evidence facts":`证据事实`,"Unlock the layout before arranging nodes":`请先解除布局锁定,再整理间距`,Local:`局部`,"Full diagram":`全图`,"{scope} arranged: {count} nodes moved":`{scope}间距已整理:移动 {count} 个节点`,"Cannot arrange further within the current constraints":`当前约束下无法继续整理`,"No spacing changes needed":`当前间距无需调整`,"Generating {format}…":`正在生成 {format}…`,"{format} downloaded":`{format} 已下载`,"The browser could not generate the PNG":`浏览器未能生成 PNG`,"The browser could not read the exported SVG":`浏览器未能读取导出 SVG`,"Zoom in":`放大`,"Zoom out":`缩小`,Minimap:`小地图`,"Graph navigation":`图谱导航`,"Show graph navigation":`显示图谱导航`,"Hide graph navigation":`隐藏图谱导航`,More:`更多`,"Export SVG":`导出 SVG`,"Export PNG":`导出 PNG`,Close:`关闭`,"View details":`查看详情`,Appearance:`外观`,"Follow system":`跟随系统`,"Restore the original layout and view, and clear search and selection.":`恢复原始位置和阅读视角,清除搜索与选择`,"Reset: original positions and reading view restored":`已重置:恢复原始位置和阅读视角`,Details:`详情`,Name:`名称`,Description:`说明`,"Name is required":`名称不能为空`,Cancel:`取消`,Save:`保存`,"Edit text":`编辑文字`,Evidence:`证据`,"Save changes":`保存修改`,"Graph JSON saved":`Graph JSON 已保存`,"Saved into this page, its sibling graph.json and SVGs":`已保存到当前页面、同级 graph.json 和 SVG`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`已保存到当前页面和同级 graph.json;SVG 未更新:布局需要调整`,"Choose the folder containing this page ({page}); edits remain in this page":`请选择当前页面 {page} 所在的文件夹,修改仍保留在当前页面`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON 已下载,请保留文件以保存修改`,"Save cancelled; edits remain in this page":`已取消保存,修改仍保留在当前页面`,"Save failed; edits remain in this page":`保存失败,修改仍保留在当前页面`,"Synchronous message":`同步消息`,"Asynchronous message":`异步消息`,"Return message":`返回消息`,"Branch conditions unspecified":`分支条件未标注`,"Activation: execution interval; offset means nesting":`激活条:执行区间,错位表示嵌套`,"C ID: paired call and return share a color":`C 编号:调用与返回配对,同组同色`,"par: concurrent branches; vertical position is not order":`par:分支并行,上下排列不代表先后`,"Layout needs adjustment; JSON drafts can still be saved":`布局需要调整,仍可保存 JSON 草稿`,"Card wash":`卡片微底色`,yes:`是`,no:`否`,composition:`组合`,aggregation:`聚合`,inheritance:`继承`,implementation:`实现`,"Core state":`核心状态`,"Ended state":`终结状态`,"Failed state":`失败状态`,"In-progress state":`进行中状态`,"In-progress state: warm to cool as it advances":`进行中状态:由暖到冷表示推进顺序`,Transition:`转移`,"Self-transition: handled without leaving the state":`自转移:留在原状态内处理的事件`,"Key points":`要点`,"Show key points":`显示要点`,"Hide key points":`隐藏要点`,"Component relations":`组件关系`,"Platform capabilities":`平台能力总览`,"Engineering layers":`工程分层总览`,"Overview text":`总览正文`,Badges:`徽章`,"Badge type":`徽章类型`,"Add badge":`添加徽章`,"Remove badge":`移除徽章`,Status:`状态`,Version:`版本`,Requirement:`接入要求`,"Overview aligned":`总览已对齐`,Section:`分区`,Cancelled:`已取消`,"Component relationship architecture":`组件关系架构图`,"Platform capability architecture":`平台能力架构图`,"Engineering layer architecture":`工程分层架构图`},ja:{Architecture:`アーキテクチャ`,Flowchart:`フローチャート`,Sequence:`シーケンス図`,"ER diagram":`ER 図`,Deployment:`配置図`,"Class diagram":`クラス図`,"State diagram":`状態図`,"Use cases":`ユースケース図`,"Data flow":`データフロー図`,"Source code":`ソースコード`,Code:`コード`,Configuration:`設定`,Schema:`スキーマ`,Test:`テスト`,Document:`ドキュメント`,"Framework convention":`フレームワークの規約`,Inference:`推論`,External:`外部`,Framework:`フレームワーク`,Security:`セキュリティ`,Service:`サービス`,Business:`業務`,Data:`データ`,Failure:`失敗`,System:`システム`,Component:`コンポーネント`,Database:`データベース`,Start:`開始`,End:`終了`,Process:`処理`,Decision:`分岐`,Input:`入力`,Output:`出力`,Subprocess:`サブプロセス`,Actor:`アクター`,Participant:`参加者`,Entity:`エンティティ`,Device:`デバイス`,Nodes:`ノード`,Container:`コンテナ`,Artifact:`成果物`,Class:`クラス`,Interface:`インターフェース`,"Abstract class":`抽象クラス`,State:`状態`,Initial:`初期`,Choice:`選択`,"Use case":`ユースケース`,"Data store":`データストア`,"Initial state":`初期状態`,"Final state":`終了状態`,"Core component":`主要コンポーネント`,"Data / storage":`データ / ストレージ`,"Start / end":`開始 / 終了`,"Components / actors":`コンポーネント / アクター`,"Solid relation":`実線の関係`,"Dashed: notation / convention / inference":`破線:記法 / 規約 / 推論`,Reset:`リセット`,Dark:`ダーク`,Light:`ライト`,Locked:`配置を固定`,Draggable:`移動可能`,"Unlock the layout first":`先に配置の固定を解除してください`,"Space the selected node and its direct neighbors":`選択ノードと隣接ノードの間隔を調整`,"Space all nodes":`すべてのノードの間隔を調整`,Arrange:`間隔を調整`,"Hide details":`詳細を隠す`,"Show details":`詳細を表示`,Overview:`概要`,Edges:`関係`,Groups:`グループ`,"Diagram types":`図の種類`,"Search nodes":`ノードを検索`,"Edge animation":`接続線の動き`,On:`オン`,Off:`オフ`,"System reduced-motion preference is respected":`システムの視差効果を減らす設定に従っています`,"Matches · {count}":`検索結果 · {count}`,"Nodes · {count}":`ノード · {count}`,"No matches. Try a name or responsibility.":`一致するノードがありません。名前や役割を変えて検索してください。`,Legend:`凡例`,"Interactive {type}":`操作可能な{type}`,"Fit canvas":`キャンバスに合わせる`,"Exit fullscreen":`全画面表示を終了`,"Enter fullscreen":`全画面表示`,"Exit fullscreen (Esc)":`全画面表示を終了(Esc)`,"Fullscreen is not available in this browser or page":`このブラウザーまたはページでは全画面表示を利用できません`,"Could not exit fullscreen. Press Esc to try again.":`全画面表示を終了できません。Esc キーを押してください`,"Could not enter fullscreen. Check browser or page permissions and try again.":`全画面表示を開始できません。ブラウザーやページの権限を確認してください`,"{count} relations":`{count} 関係`,"Node notes":`ノードの説明`,"Close details":`詳細を閉じる`,Fields:`フィールド`,Attributes:`属性`,Methods:`メソッド`,Source:`根拠`,"Start with a node":`ノードを選んで始めましょう`,"Select a component or a list entry to explore its role, fields, methods and source.":`図や一覧からコンポーネントを選ぶと、役割、フィールド、メソッド、根拠を確認できます。`,"Evidence facts":`根拠に基づく情報`,"Unlock the layout before arranging nodes":`間隔を調整する前に配置の固定を解除してください`,Local:`選択範囲`,"Full diagram":`図全体`,"{scope} arranged: {count} nodes moved":`{scope}の間隔を調整:{count} ノードを移動`,"Cannot arrange further within the current constraints":`現在の制約ではこれ以上調整できません`,"No spacing changes needed":`間隔の調整は不要です`,"Generating {format}…":`{format} を生成中…`,"{format} downloaded":`{format} をダウンロードしました`,"The browser could not generate the PNG":`ブラウザーで PNG を生成できませんでした`,"The browser could not read the exported SVG":`ブラウザーで出力 SVG を読み込めませんでした`,"Zoom in":`拡大`,"Zoom out":`縮小`,Minimap:`ミニマップ`,"Graph navigation":`グラフナビ`,"Show graph navigation":`グラフナビを表示`,"Hide graph navigation":`グラフナビを非表示`,More:`その他`,"Export SVG":`SVG を書き出す`,"Export PNG":`PNG を書き出す`,Close:`閉じる`,"View details":`詳細を見る`,Appearance:`外観`,"Follow system":`システム`,"Restore the original layout and view, and clear search and selection.":`元の配置と表示に戻し、検索と選択を解除します。`,"Reset: original positions and reading view restored":`リセットしました:元の配置と表示に戻りました`,Details:`詳細`,Name:`名前`,Description:`説明`,"Name is required":`名前は必須です`,Cancel:`キャンセル`,Save:`保存`,"Edit text":`テキストを編集`,Evidence:`根拠`,"Save changes":`変更を保存`,"Graph JSON saved":`Graph JSON を保存しました`,"Saved into this page, its sibling graph.json and SVGs":`このページと同じ階層の graph.json、SVG に保存しました`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`このページと同じ階層の graph.json に保存しました。SVG は更新していません。レイアウトの調整が必要です`,"Choose the folder containing this page ({page}); edits remain in this page":`このページ({page})があるフォルダーを選択してください。編集内容はこのページに残っています`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON をダウンロードしました。編集内容を残すにはファイルを保管してください`,"Save cancelled; edits remain in this page":`保存をキャンセルしました。編集内容はこのページに残っています`,"Save failed; edits remain in this page":`保存に失敗しました。編集内容はこのページに残っています`,"Synchronous message":`同期メッセージ`,"Asynchronous message":`非同期メッセージ`,"Return message":`戻りメッセージ`,"Branch conditions unspecified":`分岐条件未指定`,"Activation: execution interval; offset means nesting":`実行区間:横のずれは入れ子を示す`,"C ID: paired call and return share a color":`C 番号:呼び出しと戻りは同じ色`,"par: concurrent branches; vertical position is not order":`par:並行分岐。上下の位置は実行順ではない`,"Layout needs adjustment; JSON drafts can still be saved":`レイアウトの調整が必要です。JSON の下書きは保存できます`,"Card wash":`カードの淡い下地`,yes:`はい`,no:`いいえ`,composition:`コンポジション`,aggregation:`集約`,inheritance:`継承`,implementation:`実装`,"Core state":`主要な状態`,"Ended state":`終了した状態`,"Failed state":`失敗した状態`,"In-progress state":`進行中の状態`,"In-progress state: warm to cool as it advances":`進行中の状態:進むにつれて暖色から寒色へ`,Transition:`遷移`,"Self-transition: handled without leaving the state":`自己遷移:状態を離れずに処理するイベント`,"Key points":`要点`,"Show key points":`要点を表示`,"Hide key points":`要点を隠す`,"Component relations":`コンポーネント関係`,"Platform capabilities":`プラットフォーム機能`,"Engineering layers":`プロジェクト階層`,"Overview text":`概要本文`,Badges:`バッジ`,"Badge type":`バッジの種類`,"Add badge":`バッジを追加`,"Remove badge":`バッジを削除`,Status:`状態`,Version:`バージョン`,Requirement:`要件`,"Overview aligned":`概要を整列しました`,Section:`セクション`,Cancelled:`キャンセルしました`,"Component relationship architecture":`コンポーネント関係アーキテクチャ図`,"Platform capability architecture":`プラットフォーム機能アーキテクチャ図`,"Engineering layer architecture":`プロジェクト階層アーキテクチャ図`,"Layout suggestions":`レイアウトの提案`,"Arrange this view to improve connector clearance and spacing. Existing positions are preserved until then.":`このビューを整列すると、接続線の余白と間隔を改善できます。それまでは現在の位置が保持されます。`},ko:{Architecture:`아키텍처`,Flowchart:`순서도`,Sequence:`시퀀스 다이어그램`,"ER diagram":`ER 다이어그램`,Deployment:`배포 다이어그램`,"Class diagram":`클래스 다이어그램`,"State diagram":`상태 다이어그램`,"Use cases":`유스케이스 다이어그램`,"Data flow":`데이터 흐름도`,"Source code":`소스 코드`,Code:`코드`,Configuration:`설정`,Schema:`스키마`,Test:`테스트`,Document:`문서`,"Framework convention":`프레임워크 규약`,Inference:`추론`,External:`외부`,Framework:`프레임워크`,Security:`보안`,Service:`서비스`,Business:`비즈니스`,Data:`데이터`,Failure:`실패`,System:`시스템`,Component:`컴포넌트`,Database:`데이터베이스`,Start:`시작`,End:`종료`,Process:`처리`,Decision:`판단`,Input:`입력`,Output:`출력`,Subprocess:`하위 프로세스`,Actor:`행위자`,Participant:`참여자`,Entity:`엔티티`,Device:`장치`,Nodes:`노드`,Container:`컨테이너`,Artifact:`아티팩트`,Class:`클래스`,Interface:`인터페이스`,"Abstract class":`추상 클래스`,State:`상태`,Initial:`초기`,Choice:`선택`,"Use case":`유스케이스`,"Data store":`데이터 저장소`,"Initial state":`초기 상태`,"Final state":`최종 상태`,"Core component":`핵심 컴포넌트`,"Data / storage":`데이터 / 저장소`,"Start / end":`시작 / 종료`,"Components / actors":`컴포넌트 / 행위자`,"Solid relation":`실선 관계`,"Dashed: notation / convention / inference":`점선: 표기법 / 규약 / 추론`,Reset:`초기화`,Dark:`어둡게`,Light:`밝게`,Locked:`배치 잠금`,Draggable:`드래그 가능`,"Unlock the layout first":`먼저 배치 잠금을 해제하세요`,"Space the selected node and its direct neighbors":`선택한 노드와 인접 노드의 간격 조정`,"Space all nodes":`모든 노드의 간격 조정`,Arrange:`간격 정리`,"Hide details":`상세 정보 숨기기`,"Show details":`상세 정보 표시`,Overview:`개요`,Edges:`관계`,Groups:`그룹`,"Diagram types":`다이어그램 유형`,"Search nodes":`노드 검색`,"Edge animation":`연결선 애니메이션`,On:`켜짐`,Off:`꺼짐`,"System reduced-motion preference is respected":`시스템의 동작 줄이기 설정을 따릅니다`,"Matches · {count}":`검색 결과 · {count}`,"Nodes · {count}":`노드 · {count}`,"No matches. Try a name or responsibility.":`일치하는 노드가 없습니다. 이름이나 역할로 검색하세요.`,Legend:`범례`,"Interactive {type}":`대화형 {type}`,"Fit canvas":`캔버스에 맞추기`,"Exit fullscreen":`전체 화면 종료`,"Enter fullscreen":`전체 화면`,"Exit fullscreen (Esc)":`전체 화면 종료 (Esc)`,"Fullscreen is not available in this browser or page":`이 브라우저나 페이지에서는 전체 화면을 사용할 수 없습니다`,"Could not exit fullscreen. Press Esc to try again.":`전체 화면을 종료할 수 없습니다. Esc 키를 누르세요`,"Could not enter fullscreen. Check browser or page permissions and try again.":`전체 화면을 시작할 수 없습니다. 브라우저나 페이지 권한을 확인하세요`,"{count} relations":`관계 {count}개`,"Node notes":`노드 설명`,"Close details":`상세 정보 닫기`,Fields:`필드`,Attributes:`속성`,Methods:`메서드`,Source:`근거`,"Start with a node":`노드를 선택해 시작하세요`,"Select a component or a list entry to explore its role, fields, methods and source.":`다이어그램이나 목록에서 컴포넌트를 선택하면 역할, 필드, 메서드와 근거를 볼 수 있습니다.`,"Evidence facts":`근거로 확인한 내용`,"Unlock the layout before arranging nodes":`간격을 정리하기 전에 배치 잠금을 해제하세요`,Local:`선택 영역`,"Full diagram":`전체 다이어그램`,"{scope} arranged: {count} nodes moved":`{scope} 간격 정리: 노드 {count}개 이동`,"Cannot arrange further within the current constraints":`현재 제약 조건에서는 더 정리할 수 없습니다`,"No spacing changes needed":`간격 조정이 필요하지 않습니다`,"Generating {format}…":`{format} 생성 중…`,"{format} downloaded":`{format} 다운로드 완료`,"The browser could not generate the PNG":`브라우저에서 PNG를 생성하지 못했습니다`,"The browser could not read the exported SVG":`브라우저에서 내보낸 SVG를 읽지 못했습니다`,"Zoom in":`확대`,"Zoom out":`축소`,Minimap:`미니맵`,"Graph navigation":`그래프 탐색`,"Show graph navigation":`그래프 탐색 표시`,"Hide graph navigation":`그래프 탐색 숨기기`,More:`더보기`,"Export SVG":`SVG 내보내기`,"Export PNG":`PNG 내보내기`,Close:`닫기`,"View details":`상세 보기`,Appearance:`화면 모드`,"Follow system":`시스템`,"Restore the original layout and view, and clear search and selection.":`원래 배치와 보기를 복원하고 검색과 선택을 지웁니다.`,"Reset: original positions and reading view restored":`초기화됨: 원래 위치와 보기 복원`,Details:`세부 정보`,Name:`이름`,Description:`설명`,"Name is required":`이름은 필수입니다`,Cancel:`취소`,Save:`저장`,"Edit text":`텍스트 편집`,Evidence:`근거`,"Save changes":`변경 사항 저장`,"Graph JSON saved":`Graph JSON을 저장했습니다`,"Saved into this page, its sibling graph.json and SVGs":`현재 페이지와 같은 폴더의 graph.json, SVG에 저장했습니다`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`현재 페이지와 같은 폴더의 graph.json에 저장했습니다. SVG는 업데이트하지 않았습니다. 레이아웃을 조정해야 합니다`,"Choose the folder containing this page ({page}); edits remain in this page":`현재 페이지({page})가 있는 폴더를 선택하세요. 수정 사항은 현재 페이지에 남아 있습니다`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON을 다운로드했습니다. 수정 사항을 보관하려면 파일을 저장하세요`,"Save cancelled; edits remain in this page":`저장을 취소했습니다. 수정 사항은 현재 페이지에 남아 있습니다`,"Save failed; edits remain in this page":`저장에 실패했습니다. 수정 사항은 현재 페이지에 남아 있습니다`,"Synchronous message":`동기 메시지`,"Asynchronous message":`비동기 메시지`,"Return message":`반환 메시지`,"Branch conditions unspecified":`분기 조건 미지정`,"Activation: execution interval; offset means nesting":`激活条:执行区间,错位表示嵌套`,"C ID: paired call and return share a color":`C 编号:调用与返回配对,同组同色`,"par: concurrent branches; vertical position is not order":`par:分支并行,上下排列不代表先后`,"Layout needs adjustment; JSON drafts can still be saved":`레이아웃을 조정해야 합니다. JSON 초안은 저장할 수 있습니다`,"Card wash":`카드 연한 배경`,yes:`예`,no:`아니요`,composition:`합성`,aggregation:`집합`,inheritance:`상속`,implementation:`구현`,"Core state":`핵심 상태`,"Ended state":`종료된 상태`,"Failed state":`실패한 상태`,"In-progress state":`진행 중인 상태`,"In-progress state: warm to cool as it advances":`진행 중인 상태: 진행될수록 따뜻한 색에서 차가운 색으로`,Transition:`전이`,"Self-transition: handled without leaving the state":`자기 전이: 상태를 벗어나지 않고 처리하는 이벤트`,"Key points":`요점`,"Show key points":`요점 보기`,"Hide key points":`요점 숨기기`,"Component relations":`구성 요소 관계`,"Platform capabilities":`플랫폼 기능`,"Engineering layers":`프로젝트 계층`,"Overview text":`개요 본문`,Badges:`배지`,"Badge type":`배지 유형`,"Add badge":`배지 추가`,"Remove badge":`배지 제거`,Status:`상태`,Version:`버전`,Requirement:`요구 사항`,"Overview aligned":`개요 정렬 완료`,Section:`섹션`,Cancelled:`취소됨`,"Component relationship architecture":`구성 요소 관계 아키텍처`,"Platform capability architecture":`플랫폼 기능 아키텍처`,"Engineering layer architecture":`엔지니어링 계층 아키텍처`,"Layout suggestions":`레이아웃 제안`,"Arrange this view to improve connector clearance and spacing. Existing positions are preserved until then.":`이 보기를 정리하여 연결선의 여백과 간격을 개선하세요. 정리하기 전까지 기존 위치가 유지됩니다.`},de:{Architecture:`Architektur`,Flowchart:`Flussdiagramm`,Sequence:`Sequenzdiagramm`,"ER diagram":`ER-Diagramm`,Deployment:`Deployment-Diagramm`,"Class diagram":`Klassendiagramm`,"State diagram":`Zustandsdiagramm`,"Use cases":`Anwendungsfalldiagramm`,"Data flow":`Datenflussdiagramm`,"Source code":`Quellcode`,Code:`Code`,Configuration:`Konfiguration`,Schema:`Schema`,Test:`Test`,Document:`Dokumentation`,"Framework convention":`Framework-Konvention`,Inference:`Annahme`,External:`Extern`,Framework:`Framework`,Security:`Sicherheit`,Service:`Dienst`,Business:`Fachlogik`,Data:`Daten`,Failure:`Fehler`,System:`System`,Component:`Komponente`,Database:`Datenbank`,Start:`Start`,End:`Ende`,Process:`Prozess`,Decision:`Entscheidung`,Input:`Eingabe`,Output:`Ausgabe`,Subprocess:`Teilprozess`,Actor:`Akteur`,Participant:`Teilnehmer`,Entity:`Entität`,Device:`Gerät`,Nodes:`Knoten`,Container:`Container`,Artifact:`Artefakt`,Class:`Klasse`,Interface:`Schnittstelle`,"Abstract class":`Abstrakte Klasse`,State:`Zustand`,Initial:`Initial`,Choice:`Auswahl`,"Use case":`Anwendungsfall`,"Data store":`Datenspeicher`,"Initial state":`Anfangszustand`,"Final state":`Endzustand`,"Core component":`Kernkomponente`,"Data / storage":`Daten / Speicher`,"Start / end":`Start / Ende`,"Components / actors":`Komponenten / Akteure`,"Solid relation":`Durchgezogene Beziehung`,"Dashed: notation / convention / inference":`Gestrichelt: Notation / Konvention / Annahme`,Reset:`Zurücksetzen`,Dark:`Dunkel`,Light:`Hell`,Locked:`Gesperrt`,Draggable:`Verschiebbar`,"Unlock the layout first":`Zuerst das Layout entsperren`,"Space the selected node and its direct neighbors":`Abstände der Auswahl und direkter Nachbarn anpassen`,"Space all nodes":`Alle Knotenabstände anpassen`,Arrange:`Abstände`,"Hide details":`Details ausblenden`,"Show details":`Details anzeigen`,Overview:`Überblick`,Edges:`Beziehungen`,Groups:`Gruppen`,"Diagram types":`Diagrammtypen`,"Search nodes":`Knoten suchen`,"Edge animation":`Kantenanimation`,On:`Ein`,Off:`Aus`,"System reduced-motion preference is respected":`Die Systemeinstellung für reduzierte Bewegung wird beachtet`,"Matches · {count}":`Treffer · {count}`,"Nodes · {count}":`Knoten · {count}`,"No matches. Try a name or responsibility.":`Keine Treffer. Versuchen Sie einen Namen oder eine Rolle.`,Legend:`Legende`,"Interactive {type}":`Interaktiv: {type}`,"Fit canvas":`An Zeichenfläche anpassen`,"Exit fullscreen":`Vollbild verlassen`,"Enter fullscreen":`Vollbild`,"Exit fullscreen (Esc)":`Vollbild verlassen (Esc)`,"Fullscreen is not available in this browser or page":`Vollbild ist in diesem Browser oder auf dieser Seite nicht verfügbar`,"Could not exit fullscreen. Press Esc to try again.":`Vollbild konnte nicht beendet werden. Drücken Sie Esc.`,"Could not enter fullscreen. Check browser or page permissions and try again.":`Vollbild konnte nicht gestartet werden. Prüfen Sie die Browser- oder Seitenberechtigungen.`,"{count} relations":`{count} Beziehungen`,"Node notes":`Knotenbeschreibung`,"Close details":`Details schließen`,Fields:`Felder`,Attributes:`Attribute`,Methods:`Methoden`,Source:`Beleg`,"Start with a node":`Wählen Sie einen Knoten`,"Select a component or a list entry to explore its role, fields, methods and source.":`Wählen Sie eine Komponente im Diagramm oder in der Liste, um Rolle, Felder, Methoden und Belege zu sehen.`,"Evidence facts":`Belegte Fakten`,"Unlock the layout before arranging nodes":`Entsperren Sie das Layout vor dem Anpassen der Abstände`,Local:`Auswahl`,"Full diagram":`Gesamtes Diagramm`,"{scope} arranged: {count} nodes moved":`{scope}: Abstände angepasst, {count} Knoten verschoben`,"Cannot arrange further within the current constraints":`Unter diesen Bedingungen ist keine weitere Anpassung möglich`,"No spacing changes needed":`Keine Abstandsanpassung erforderlich`,"Generating {format}…":`{format} wird erstellt…`,"{format} downloaded":`{format} heruntergeladen`,"The browser could not generate the PNG":`Der Browser konnte kein PNG erstellen`,"The browser could not read the exported SVG":`Der Browser konnte die exportierte SVG-Datei nicht lesen`,"Zoom in":`Vergrößern`,"Zoom out":`Verkleinern`,Minimap:`Minikarte`,"Graph navigation":`Graph-Navigation`,"Show graph navigation":`Graph-Navigation einblenden`,"Hide graph navigation":`Graph-Navigation ausblenden`,More:`Mehr`,"Export SVG":`SVG exportieren`,"Export PNG":`PNG exportieren`,Close:`Schließen`,"View details":`Details ansehen`,Appearance:`Erscheinungsbild`,"Follow system":`System`,"Restore the original layout and view, and clear search and selection.":`Ursprüngliche Anordnung und Ansicht wiederherstellen, Suche und Auswahl löschen.`,"Reset: original positions and reading view restored":`Zurückgesetzt: ursprüngliche Positionen und Ansicht wiederhergestellt`,Details:`Details`,Name:`Name`,Description:`Beschreibung`,"Name is required":`Name ist erforderlich`,Cancel:`Abbrechen`,Save:`Speichern`,"Edit text":`Text bearbeiten`,Evidence:`Nachweis`,"Save changes":`Änderungen speichern`,"Graph JSON saved":`Graph JSON gespeichert`,"Saved into this page, its sibling graph.json and SVGs":`In diese Seite, die benachbarte graph.json und die SVGs gespeichert`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`In diese Seite und die benachbarte graph.json gespeichert; SVGs nicht aktualisiert: Das Layout muss angepasst werden`,"Choose the folder containing this page ({page}); edits remain in this page":`Bitte den Ordner dieser Seite ({page}) wählen; die Änderungen bleiben auf dieser Seite`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON heruntergeladen; Datei zum Erhalten der Änderungen aufbewahren`,"Save cancelled; edits remain in this page":`Speichern abgebrochen; Änderungen bleiben auf dieser Seite`,"Save failed; edits remain in this page":`Speichern fehlgeschlagen; Änderungen bleiben auf dieser Seite`,"Synchronous message":`Synchrone Nachricht`,"Asynchronous message":`Asynchrone Nachricht`,"Return message":`Antwortnachricht`,"Branch conditions unspecified":`Zweigbedingungen fehlen`,"Activation: execution interval; offset means nesting":`Aktivierung: Ausführungsdauer; Versatz zeigt Verschachtelung`,"C ID: paired call and return share a color":`C-ID: Aufruf und Rückgabe haben dieselbe Farbe`,"par: concurrent branches; vertical position is not order":`par: parallele Zweige; vertikale Lage ist keine Reihenfolge`,"Layout needs adjustment; JSON drafts can still be saved":`Layout anpassen; JSON-Entwürfe können gespeichert werden`,"Card wash":`Karten-Grundton`,yes:`ja`,no:`nein`,composition:`Komposition`,aggregation:`Aggregation`,inheritance:`Vererbung`,implementation:`Implementierung`,"Core state":`Kernzustand`,"Ended state":`Beendeter Zustand`,"Failed state":`Fehlgeschlagener Zustand`,"In-progress state":`Zustand in Bearbeitung`,"In-progress state: warm to cool as it advances":`Zustand in Bearbeitung: von warm nach kalt, je weiter er fortschreitet`,Transition:`Übergang`,"Self-transition: handled without leaving the state":`Selbstübergang: Ereignis, das im Zustand bleibt`,"Key points":`Kernaussagen`,"Show key points":`Kernaussagen anzeigen`,"Hide key points":`Kernaussagen ausblenden`,"Component relations":`Komponentenbeziehungen`,"Platform capabilities":`Plattformfunktionen`,"Engineering layers":`Projektebenen`,"Overview text":`Übersichtstext`,Badges:`Abzeichen`,"Badge type":`Abzeichentyp`,"Add badge":`Abzeichen hinzufügen`,"Remove badge":`Abzeichen entfernen`,Status:`Status`,Version:`Version`,Requirement:`Anforderung`,"Overview aligned":`Übersicht ausgerichtet`,Section:`Abschnitt`,Cancelled:`Abgebrochen`,"Component relationship architecture":`Komponentenarchitektur`,"Platform capability architecture":`Plattformfähigkeitsarchitektur`,"Engineering layer architecture":`Schichtenarchitektur`,"Layout suggestions":`Layoutvorschläge`,"Arrange this view to improve connector clearance and spacing. Existing positions are preserved until then.":`Ordnen Sie diese Ansicht an, um Abstände der Verbindungslinien zu verbessern. Bis dahin bleiben die bisherigen Positionen erhalten.`},fr:{Architecture:`Architecture`,Flowchart:`Organigramme`,Sequence:`Diagramme de séquence`,"ER diagram":`Diagramme ER`,Deployment:`Diagramme de déploiement`,"Class diagram":`Diagramme de classes`,"State diagram":`Diagramme d’états`,"Use cases":`Cas d’utilisation`,"Data flow":`Flux de données`,"Source code":`Code source`,Code:`Code`,Configuration:`Configuration`,Schema:`Schéma`,Test:`Test`,Document:`Documentation`,"Framework convention":`Convention du framework`,Inference:`Déduction`,External:`Externe`,Framework:`Framework`,Security:`Sécurité`,Service:`Service`,Business:`Métier`,Data:`Données`,Failure:`Échec`,System:`Système`,Component:`Composant`,Database:`Base de données`,Start:`Début`,End:`Fin`,Process:`Traitement`,Decision:`Décision`,Input:`Entrée`,Output:`Sortie`,Subprocess:`Sous-processus`,Actor:`Acteur`,Participant:`Participant`,Entity:`Entité`,Device:`Appareil`,Nodes:`Nœuds`,Container:`Conteneur`,Artifact:`Artefact`,Class:`Classe`,Interface:`Interface`,"Abstract class":`Classe abstraite`,State:`État`,Initial:`Initial`,Choice:`Choix`,"Use case":`Cas d’utilisation`,"Data store":`Stockage de données`,"Initial state":`État initial`,"Final state":`État final`,"Core component":`Composant central`,"Data / storage":`Données / stockage`,"Start / end":`Début / fin`,"Components / actors":`Composants / acteurs`,"Solid relation":`Relation en trait plein`,"Dashed: notation / convention / inference":`Pointillés : notation / convention / déduction`,Reset:`Réinitialiser`,Dark:`Sombre`,Light:`Clair`,Locked:`Verrouillé`,Draggable:`Déplaçable`,"Unlock the layout first":`Déverrouillez d’abord la disposition`,"Space the selected node and its direct neighbors":`Espacer la sélection et ses voisins directs`,"Space all nodes":`Espacer tous les nœuds`,Arrange:`Espacer`,"Hide details":`Masquer les détails`,"Show details":`Afficher les détails`,Overview:`Vue d’ensemble`,Edges:`Relations`,Groups:`Groupes`,"Diagram types":`Types de diagrammes`,"Search nodes":`Rechercher un nœud`,"Edge animation":`Animation des liens`,On:`Activée`,Off:`Désactivée`,"System reduced-motion preference is respected":`Le réglage système de réduction des animations est respecté`,"Matches · {count}":`Résultats · {count}`,"Nodes · {count}":`Nœuds · {count}`,"No matches. Try a name or responsibility.":`Aucun résultat. Essayez un nom ou un rôle.`,Legend:`Légende`,"Interactive {type}":`Vue interactive : {type}`,"Fit canvas":`Ajuster au canevas`,"Exit fullscreen":`Quitter le plein écran`,"Enter fullscreen":`Plein écran`,"Exit fullscreen (Esc)":`Quitter le plein écran (Échap)`,"Fullscreen is not available in this browser or page":`Le plein écran n’est pas disponible dans ce navigateur ou sur cette page`,"Could not exit fullscreen. Press Esc to try again.":`Impossible de quitter le plein écran. Appuyez sur Échap.`,"Could not enter fullscreen. Check browser or page permissions and try again.":`Impossible de passer en plein écran. Vérifiez les autorisations du navigateur ou de la page.`,"{count} relations":`{count} relations`,"Node notes":`Notes du nœud`,"Close details":`Fermer les détails`,Fields:`Champs`,Attributes:`Attributs`,Methods:`Méthodes`,Source:`Preuve`,"Start with a node":`Commencez par un nœud`,"Select a component or a list entry to explore its role, fields, methods and source.":`Sélectionnez un composant du diagramme ou de la liste pour consulter son rôle, ses champs, ses méthodes et ses preuves.`,"Evidence facts":`Faits étayés`,"Unlock the layout before arranging nodes":`Déverrouillez la disposition avant d’ajuster les espacements`,Local:`Sélection`,"Full diagram":`Diagramme entier`,"{scope} arranged: {count} nodes moved":`{scope} : espacement ajusté, {count} nœuds déplacés`,"Cannot arrange further within the current constraints":`Impossible d’ajuster davantage avec ces contraintes`,"No spacing changes needed":`Aucun ajustement d’espacement nécessaire`,"Generating {format}…":`Génération de {format}…`,"{format} downloaded":`{format} téléchargé`,"The browser could not generate the PNG":`Le navigateur n’a pas pu générer le PNG`,"The browser could not read the exported SVG":`Le navigateur n’a pas pu lire le SVG exporté`,"Zoom in":`Agrandir`,"Zoom out":`Réduire`,Minimap:`Mini-carte`,"Graph navigation":`Navigation du graphe`,"Show graph navigation":`Afficher la navigation`,"Hide graph navigation":`Masquer la navigation`,More:`Plus`,"Export SVG":`Exporter en SVG`,"Export PNG":`Exporter en PNG`,Close:`Fermer`,"View details":`Voir les détails`,Appearance:`Apparence`,"Follow system":`Système`,"Restore the original layout and view, and clear search and selection.":`Rétablir la disposition et la vue, puis effacer la recherche et la sélection.`,"Reset: original positions and reading view restored":`Réinitialisé : positions et vue d’origine rétablies`,Details:`Détails`,Name:`Nom`,Description:`Description`,"Name is required":`Le nom est obligatoire`,Cancel:`Annuler`,Save:`Enregistrer`,"Edit text":`Modifier le texte`,Evidence:`Preuve`,"Save changes":`Enregistrer les modifications`,"Graph JSON saved":`Graph JSON enregistré`,"Saved into this page, its sibling graph.json and SVGs":`Enregistré dans cette page, dans le graph.json voisin et dans les SVG`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`Enregistré dans cette page et dans le graph.json voisin ; SVG non mis à jour : la disposition doit être ajustée`,"Choose the folder containing this page ({page}); edits remain in this page":`Choisissez le dossier contenant cette page ({page}) ; les modifications restent sur cette page`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON téléchargé ; conservez le fichier pour garder les modifications`,"Save cancelled; edits remain in this page":`Enregistrement annulé ; les modifications restent sur cette page`,"Save failed; edits remain in this page":`Échec de l’enregistrement ; les modifications restent sur cette page`,"Synchronous message":`Message synchrone`,"Asynchronous message":`Message asynchrone`,"Return message":`Message de retour`,"Branch conditions unspecified":`Conditions de branche non précisées`,"Activation: execution interval; offset means nesting":`激活条:执行区间,错位表示嵌套`,"C ID: paired call and return share a color":`C 编号:调用与返回配对,同组同色`,"par: concurrent branches; vertical position is not order":`par:分支并行,上下排列不代表先后`,"Layout needs adjustment; JSON drafts can still be saved":`La disposition doit être ajustée ; le brouillon JSON peut être enregistré`,"Card wash":`Fond léger des cartes`,yes:`oui`,no:`non`,composition:`composition`,aggregation:`agrégation`,inheritance:`héritage`,implementation:`implémentation`,"Core state":`État central`,"Ended state":`État terminé`,"Failed state":`État en échec`,"In-progress state":`État en cours`,"In-progress state: warm to cool as it advances":`État en cours : du chaud au froid à mesure qu’il avance`,Transition:`Transition`,"Self-transition: handled without leaving the state":`Auto-transition : événement traité sans quitter l’état`,"Key points":`Points clés`,"Show key points":`Afficher les points clés`,"Hide key points":`Masquer les points clés`,"Component relations":`Relations entre composants`,"Platform capabilities":`Capacités de la plateforme`,"Engineering layers":`Couches du projet`,"Overview text":`Texte de présentation`,Badges:`Badges`,"Badge type":`Type de badge`,"Add badge":`Ajouter un badge`,"Remove badge":`Supprimer le badge`,Status:`Statut`,Version:`Version`,Requirement:`Exigence`,"Overview aligned":`Présentation alignée`,Section:`Section`,Cancelled:`Annulé`,"Component relationship architecture":`Architecture des composants`,"Platform capability architecture":`Architecture des capacités`,"Engineering layer architecture":`Architecture en couches`,"Layout suggestions":`Suggestions de disposition`,"Arrange this view to improve connector clearance and spacing. Existing positions are preserved until then.":`Réorganisez cette vue pour améliorer les dégagements et les espacements des connecteurs. Les positions actuelles sont conservées jusque-là.`},es:{Architecture:`Arquitectura`,Flowchart:`Diagrama de flujo`,Sequence:`Diagrama de secuencia`,"ER diagram":`Diagrama ER`,Deployment:`Diagrama de despliegue`,"Class diagram":`Diagrama de clases`,"State diagram":`Diagrama de estados`,"Use cases":`Casos de uso`,"Data flow":`Flujo de datos`,"Source code":`Código fuente`,Code:`Código`,Configuration:`Configuración`,Schema:`Esquema`,Test:`Prueba`,Document:`Documentación`,"Framework convention":`Convención del framework`,Inference:`Inferencia`,External:`Externo`,Framework:`Framework`,Security:`Seguridad`,Service:`Servicio`,Business:`Negocio`,Data:`Datos`,Failure:`Error`,System:`Sistema`,Component:`Componente`,Database:`Base de datos`,Start:`Inicio`,End:`Fin`,Process:`Proceso`,Decision:`Decisión`,Input:`Entrada`,Output:`Salida`,Subprocess:`Subproceso`,Actor:`Actor`,Participant:`Participante`,Entity:`Entidad`,Device:`Dispositivo`,Nodes:`Nodos`,Container:`Contenedor`,Artifact:`Artefacto`,Class:`Clase`,Interface:`Interfaz`,"Abstract class":`Clase abstracta`,State:`Estado`,Initial:`Inicial`,Choice:`Elección`,"Use case":`Caso de uso`,"Data store":`Almacén de datos`,"Initial state":`Estado inicial`,"Final state":`Estado final`,"Core component":`Componente principal`,"Data / storage":`Datos / almacenamiento`,"Start / end":`Inicio / fin`,"Components / actors":`Componentes / actores`,"Solid relation":`Relación continua`,"Dashed: notation / convention / inference":`Discontinua: notación / convención / inferencia`,Reset:`Restablecer`,Dark:`Oscuro`,Light:`Claro`,Locked:`Bloqueado`,Draggable:`Movible`,"Unlock the layout first":`Primero desbloquea la disposición`,"Space the selected node and its direct neighbors":`Espaciar la selección y sus vecinos directos`,"Space all nodes":`Espaciar todos los nodos`,Arrange:`Espaciar`,"Hide details":`Ocultar detalles`,"Show details":`Mostrar detalles`,Overview:`Resumen`,Edges:`Relaciones`,Groups:`Grupos`,"Diagram types":`Tipos de diagramas`,"Search nodes":`Buscar nodos`,"Edge animation":`Animación de enlaces`,On:`Activada`,Off:`Desactivada`,"System reduced-motion preference is respected":`Se respeta la preferencia del sistema de reducir el movimiento`,"Matches · {count}":`Resultados · {count}`,"Nodes · {count}":`Nodos · {count}`,"No matches. Try a name or responsibility.":`No hay resultados. Prueba con un nombre o una función.`,Legend:`Leyenda`,"Interactive {type}":`Vista interactiva: {type}`,"Fit canvas":`Ajustar al lienzo`,"Exit fullscreen":`Salir de pantalla completa`,"Enter fullscreen":`Pantalla completa`,"Exit fullscreen (Esc)":`Salir de pantalla completa (Esc)`,"Fullscreen is not available in this browser or page":`La pantalla completa no está disponible en este navegador o página`,"Could not exit fullscreen. Press Esc to try again.":`No se pudo salir de pantalla completa. Pulsa Esc.`,"Could not enter fullscreen. Check browser or page permissions and try again.":`No se pudo activar la pantalla completa. Revisa los permisos del navegador o de la página.`,"{count} relations":`{count} relaciones`,"Node notes":`Notas del nodo`,"Close details":`Cerrar detalles`,Fields:`Campos`,Attributes:`Atributos`,Methods:`Métodos`,Source:`Evidencia`,"Start with a node":`Empieza por un nodo`,"Select a component or a list entry to explore its role, fields, methods and source.":`Selecciona un componente del diagrama o de la lista para ver su función, campos, métodos y evidencias.`,"Evidence facts":`Hechos documentados`,"Unlock the layout before arranging nodes":`Desbloquea la disposición antes de ajustar los espacios`,Local:`Selección`,"Full diagram":`Diagrama completo`,"{scope} arranged: {count} nodes moved":`{scope}: espaciado ajustado, {count} nodos movidos`,"Cannot arrange further within the current constraints":`No se puede ajustar más con estas restricciones`,"No spacing changes needed":`No es necesario ajustar el espaciado`,"Generating {format}…":`Generando {format}…`,"{format} downloaded":`{format} descargado`,"The browser could not generate the PNG":`El navegador no pudo generar el PNG`,"The browser could not read the exported SVG":`El navegador no pudo leer el SVG exportado`,"Zoom in":`Acercar`,"Zoom out":`Alejar`,Minimap:`Minimapa`,"Graph navigation":`Navegación del grafo`,"Show graph navigation":`Mostrar navegación`,"Hide graph navigation":`Ocultar navegación`,More:`Más`,"Export SVG":`Exportar SVG`,"Export PNG":`Exportar PNG`,Close:`Cerrar`,"View details":`Ver detalles`,Appearance:`Apariencia`,"Follow system":`Sistema`,"Restore the original layout and view, and clear search and selection.":`Restaurar la disposición y la vista originales, y borrar la búsqueda y la selección.`,"Reset: original positions and reading view restored":`Restablecido: posiciones y vista originales restauradas`,Details:`Detalles`,Name:`Nombre`,Description:`Descripción`,"Name is required":`El nombre es obligatorio`,Cancel:`Cancelar`,Save:`Guardar`,"Edit text":`Editar texto`,Evidence:`Evidencia`,"Save changes":`Guardar cambios`,"Graph JSON saved":`Graph JSON guardado`,"Saved into this page, its sibling graph.json and SVGs":`Guardado en esta página, en el graph.json contiguo y en los SVG`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`Guardado en esta página y en el graph.json contiguo; SVG sin actualizar: hay que ajustar el diseño`,"Choose the folder containing this page ({page}); edits remain in this page":`Elija la carpeta que contiene esta página ({page}); los cambios permanecen en esta página`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON descargado; conserva el archivo para guardar los cambios`,"Save cancelled; edits remain in this page":`Guardado cancelado; los cambios permanecen en esta página`,"Save failed; edits remain in this page":`Error al guardar; los cambios permanecen en esta página`,"Synchronous message":`Mensaje síncrono`,"Asynchronous message":`Mensaje asíncrono`,"Return message":`Mensaje de retorno`,"Branch conditions unspecified":`Condiciones de ramas sin especificar`,"Activation: execution interval; offset means nesting":`Activación: intervalo de ejecución; el desplazamiento indica anidación`,"C ID: paired call and return share a color":`ID C: llamada y retorno comparten color`,"par: concurrent branches; vertical position is not order":`par: ramas paralelas; la posición vertical no indica orden`,"Layout needs adjustment; JSON drafts can still be saved":`Ajusta el diseño; puedes guardar el borrador JSON`,"Card wash":`Tinte suave de tarjetas`,yes:`sí`,no:`no`,composition:`composición`,aggregation:`agregación`,inheritance:`herencia`,implementation:`implementación`,"Core state":`Estado principal`,"Ended state":`Estado finalizado`,"Failed state":`Estado fallido`,"In-progress state":`Estado en curso`,"In-progress state: warm to cool as it advances":`Estado en curso: de cálido a frío a medida que avanza`,Transition:`Transición`,"Self-transition: handled without leaving the state":`Autotransición: evento atendido sin salir del estado`,"Key points":`Puntos clave`,"Show key points":`Mostrar puntos clave`,"Hide key points":`Ocultar puntos clave`,"Component relations":`Relaciones entre componentes`,"Platform capabilities":`Capacidades de la plataforma`,"Engineering layers":`Capas del proyecto`,"Overview text":`Texto del resumen`,Badges:`Insignias`,"Badge type":`Tipo de insignia`,"Add badge":`Añadir insignia`,"Remove badge":`Eliminar insignia`,Status:`Estado`,Version:`Versión`,Requirement:`Requisito`,"Overview aligned":`Resumen alineado`,Section:`Sección`,Cancelled:`Cancelado`,"Component relationship architecture":`Arquitectura de componentes`,"Platform capability architecture":`Arquitectura de capacidades`,"Engineering layer architecture":`Arquitectura por capas`,"Layout suggestions":`Sugerencias de diseño`,"Arrange this view to improve connector clearance and spacing. Existing positions are preserved until then.":`Organiza esta vista para mejorar la separación y el espacio de los conectores. Las posiciones actuales se conservan hasta entonces.`},ru:JSON.parse(`{"Architecture":"Архитектура","Flowchart":"Блок-схема","Sequence":"Последовательность","ER diagram":"ER-диаграмма","Deployment":"Развёртывание","Class diagram":"Диаграмма классов","State diagram":"Диаграмма состояний","Use cases":"Варианты использования","Data flow":"Поток данных","Source code":"Исходный код","Code":"Код","Configuration":"Конфигурация","Schema":"Схема данных","Test":"Тест","Document":"Документ","Framework convention":"Правило фреймворка","Inference":"Предположение","External":"Внешний","Framework":"Фреймворк","Security":"Безопасность","Service":"Сервис","Business":"Бизнес-логика","Data":"Данные","Failure":"Сбой","System":"Система","Component":"Компонент","Database":"База данных","Start":"Начало","End":"Конец","Process":"Процесс","Decision":"Решение","Input":"Вход","Output":"Выход","Subprocess":"Подпроцесс","Actor":"Актор","Participant":"Участник","Entity":"Сущность","Device":"Устройство","Nodes":"Узлы","Container":"Контейнер","Artifact":"Артефакт","Class":"Класс","Interface":"Интерфейс","Abstract class":"Абстрактный класс","State":"Состояние","Initial":"Начальное","Choice":"Выбор","Use case":"Вариант использования","Data store":"Хранилище данных","Initial state":"Начальное состояние","Final state":"Конечное состояние","Core component":"Ключевой компонент","Data / storage":"Данные / хранение","Start / end":"Начало / конец","Components / actors":"Компоненты / акторы","Solid relation":"Сплошная связь","Dashed: notation / convention / inference":"Пунктир: нотация / правило / предположение","Reset":"Сбросить","Dark":"Тёмная","Light":"Светлая","Locked":"Блокировка","Draggable":"Можно перемещать","Unlock the layout first":"Сначала разблокируйте расположение","Space the selected node and its direct neighbors":"Настроить интервалы выбранного узла и его соседей","Space all nodes":"Настроить интервалы всех узлов","Arrange":"Интервалы","Hide details":"Скрыть сведения","Show details":"Показать сведения","Overview":"Обзор","Edges":"Связи","Groups":"Границы","Diagram types":"Типы диаграмм","Search nodes":"Найти узлы","Edge animation":"Анимация связей","On":"Вкл.","Off":"Выкл.","System reduced-motion preference is respected":"Учтена системная настройка уменьшения движения","Matches · {count}":"Найдено · {count}","Nodes · {count}":"Узлы · {count}","No matches. Try a name or responsibility.":"Совпадений нет. Попробуйте имя или назначение.","Legend":"Легенда","Interactive {type}":"Интерактивная диаграмма: {type}","Fit canvas":"Вписать в холст","Exit fullscreen":"Выйти из полноэкранного режима","Enter fullscreen":"На весь экран","Exit fullscreen (Esc)":"Выйти из полноэкранного режима (Esc)","Fullscreen is not available in this browser or page":"Полноэкранный режим недоступен в этом браузере или на этой странице","Could not exit fullscreen. Press Esc to try again.":"Не удалось выйти из полноэкранного режима. Нажмите Esc.","Could not enter fullscreen. Check browser or page permissions and try again.":"Не удалось перейти в полноэкранный режим. Проверьте разрешения браузера или страницы.","{count} relations":"Связей: {count}","Node notes":"Примечания к узлу","Close details":"Закрыть сведения","Fields":"Поля","Attributes":"Атрибуты","Methods":"Методы","Source":"Основание","Start with a node":"Начните с узла","Select a component or a list entry to explore its role, fields, methods and source.":"Выберите компонент или пункт списка, чтобы посмотреть назначение, поля, методы и источник.","Evidence facts":"Подтверждённые факты","Unlock the layout before arranging nodes":"Разблокируйте расположение перед настройкой интервалов","Local":"Локально","Full diagram":"Вся диаграмма","{scope} arranged: {count} nodes moved":"{scope}: интервалы настроены, перемещено узлов: {count}","Cannot arrange further within the current constraints":"Текущие ограничения не позволяют улучшить расположение","No spacing changes needed":"Интервалы не требуют изменений","Generating {format}…":"Создание {format}…","{format} downloaded":"{format} скачан","The browser could not generate the PNG":"Браузер не смог создать PNG","The browser could not read the exported SVG":"Браузер не смог прочитать экспортированный SVG","Zoom in":"Увеличить","Zoom out":"Уменьшить","Minimap":"Мини-карта","Graph navigation":"Навигация по графу","Show graph navigation":"Показать навигацию","Hide graph navigation":"Скрыть навигацию","More":"Ещё","Export SVG":"Экспорт SVG","Export PNG":"Экспорт PNG","Close":"Закрыть","View details":"Подробнее","Appearance":"Оформление","Follow system":"Как в системе","Restore the original layout and view, and clear search and selection.":"Восстановить исходное расположение и вид, очистить поиск и выделение.","Reset: original positions and reading view restored":"Сброс: исходное расположение и вид восстановлены","Details":"Сведения","Name":"Имя","Description":"Описание","Name is required":"Имя обязательно","Cancel":"Отмена","Save":"Сохранить","Edit text":"Изменить текст","Evidence":"Основание","Save changes":"Сохранить изменения","Graph JSON saved":"Graph JSON сохранён","Saved into this page, its sibling graph.json and SVGs":"Сохранено в эту страницу, соседний graph.json и SVG","Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":"Сохранено в эту страницу и соседний graph.json; SVG не обновлены: нужно исправить расположение","Choose the folder containing this page ({page}); edits remain in this page":"Выберите папку с этой страницей ({page}); изменения остаются на этой странице","Graph JSON downloaded; keep the file to preserve edits":"Graph JSON скачан; сохраните файл, чтобы не потерять изменения","Save cancelled; edits remain in this page":"Сохранение отменено; изменения остались на странице","Save failed; edits remain in this page":"Не удалось сохранить; изменения остались на странице","Synchronous message":"Синхронное сообщение","Asynchronous message":"Асинхронное сообщение","Return message":"Ответное сообщение","Branch conditions unspecified":"Условия ветвей не указаны","Activation: execution interval; offset means nesting":"Активация: интервал выполнения; смещение означает вложенность","C ID: paired call and return share a color":"Номер C: вызов и возврат одного цвета","par: concurrent branches; vertical position is not order":"par: параллельные ветви; положение по вертикали не задаёт порядок","Layout needs adjustment; JSON drafts can still be saved":"Исправьте расположение; черновик JSON можно сохранить","Card wash":"Лёгкая заливка карточек","yes":"да","no":"нет","composition":"композиция","aggregation":"агрегация","inheritance":"наследование","implementation":"реализация","Core state":"Ключевое состояние","Ended state":"Завершённое состояние","Failed state":"Состояние сбоя","In-progress state":"Состояние в процессе","In-progress state: warm to cool as it advances":"Состояние в процессе: от тёплого цвета к холодному по мере продвижения","Transition":"Переход","Self-transition: handled without leaving the state":"Петля: событие обрабатывается без выхода из состояния","Key points":"Ключевые выводы","Show key points":"Показать ключевые выводы","Hide key points":"Скрыть ключевые выводы","Component relations":"Связи компонентов","Platform capabilities":"Возможности платформы","Engineering layers":"Слои проекта","Overview text":"Текст обзора","Badges":"Метки","Badge type":"Тип метки","Add badge":"Добавить метку","Remove badge":"Удалить метку","Status":"Статус","Version":"Версия","Requirement":"Требование","Overview aligned":"Обзор выровнен","Section":"Раздел","Cancelled":"Отменено","Component relationship architecture":"Архитектура компонентов","Platform capability architecture":"Архитектура возможностей платформы","Engineering layer architecture":"Слоистая архитектура","Layout suggestions":"Рекомендации по размещению","Arrange this view to improve connector clearance and spacing. Existing positions are preserved until then.":"Упорядочьте эту схему, чтобы улучшить зазоры и расстояния между связями. До этого текущие позиции сохраняются."}`),pt:{Architecture:`Arquitetura`,Flowchart:`Fluxograma`,Sequence:`Sequência`,"ER diagram":`Diagrama ER`,Deployment:`Implantação`,"Class diagram":`Diagrama de classes`,"State diagram":`Diagrama de estados`,"Use cases":`Casos de uso`,"Data flow":`Fluxo de dados`,"Source code":`Código-fonte`,Code:`Código`,Configuration:`Configuração`,Schema:`Esquema`,Test:`Teste`,Document:`Documento`,"Framework convention":`Convenção do framework`,Inference:`Inferência`,External:`Externo`,Framework:`Framework`,Security:`Segurança`,Service:`Serviço`,Business:`Negócio`,Data:`Dados`,Failure:`Falha`,System:`Sistema`,Component:`Componente`,Database:`Banco de dados`,Start:`Início`,End:`Fim`,Process:`Processo`,Decision:`Decisão`,Input:`Entrada`,Output:`Saída`,Subprocess:`Subprocesso`,Actor:`Ator`,Participant:`Participante`,Entity:`Entidade`,Device:`Dispositivo`,Nodes:`Nós`,Container:`Contêiner`,Artifact:`Artefato`,Class:`Classe`,Interface:`Interface`,"Abstract class":`Classe abstrata`,State:`Estado`,Initial:`Inicial`,Choice:`Escolha`,"Use case":`Caso de uso`,"Data store":`Armazenamento de dados`,"Initial state":`Estado inicial`,"Final state":`Estado final`,"Core component":`Componente central`,"Data / storage":`Dados / armazenamento`,"Start / end":`Início / fim`,"Components / actors":`Componentes / atores`,"Solid relation":`Relação contínua`,"Dashed: notation / convention / inference":`Tracejado: notação / convenção / inferência`,Reset:`Redefinir`,Dark:`Escuro`,Light:`Claro`,Locked:`Bloqueado`,Draggable:`Arrastável`,"Unlock the layout first":`Desbloqueie o layout primeiro`,"Space the selected node and its direct neighbors":`Ajustar o espaçamento do nó selecionado e dos vizinhos diretos`,"Space all nodes":`Ajustar o espaçamento de todos os nós`,Arrange:`Organizar`,"Hide details":`Ocultar detalhes`,"Show details":`Mostrar detalhes`,Overview:`Visão geral`,Edges:`Relações`,Groups:`Limites`,"Diagram types":`Tipos de diagrama`,"Search nodes":`Buscar nós`,"Edge animation":`Animação das conexões`,On:`Ativada`,Off:`Desativada`,"System reduced-motion preference is respected":`A preferência do sistema por movimento reduzido é respeitada`,"Matches · {count}":`Resultados · {count}`,"Nodes · {count}":`Nós · {count}`,"No matches. Try a name or responsibility.":`Nenhum resultado. Tente um nome ou responsabilidade.`,Legend:`Legenda`,"Interactive {type}":`{type} interativo`,"Fit canvas":`Ajustar à tela`,"Exit fullscreen":`Sair da tela cheia`,"Enter fullscreen":`Entrar em tela cheia`,"Exit fullscreen (Esc)":`Sair da tela cheia (Esc)`,"Fullscreen is not available in this browser or page":`A tela cheia não está disponível neste navegador ou nesta página`,"Could not exit fullscreen. Press Esc to try again.":`Não foi possível sair da tela cheia. Pressione Esc para tentar novamente.`,"Could not enter fullscreen. Check browser or page permissions and try again.":`Não foi possível entrar em tela cheia. Verifique as permissões do navegador ou da página e tente novamente.`,"{count} relations":`{count} relações`,"Node notes":`Notas do nó`,"Close details":`Fechar detalhes`,Fields:`Campos`,Attributes:`Atributos`,Methods:`Métodos`,Source:`Evidência`,"Start with a node":`Comece por um nó`,"Select a component or a list entry to explore its role, fields, methods and source.":`Selecione um componente ou item da lista para explorar sua função, campos, métodos e fonte.`,"Evidence facts":`Fatos comprovados`,"Unlock the layout before arranging nodes":`Desbloqueie o layout antes de organizar os nós`,Local:`Local`,"Full diagram":`Diagrama completo`,"{scope} arranged: {count} nodes moved":`{scope} organizado: {count} nós movidos`,"Cannot arrange further within the current constraints":`Não é possível organizar mais com as restrições atuais`,"No spacing changes needed":`Nenhum ajuste de espaçamento necessário`,"Generating {format}…":`Gerando {format}…`,"{format} downloaded":`{format} baixado`,"The browser could not generate the PNG":`O navegador não conseguiu gerar o PNG`,"The browser could not read the exported SVG":`O navegador não conseguiu ler o SVG exportado`,"Zoom in":`Ampliar`,"Zoom out":`Reduzir`,Minimap:`Minimapa`,"Graph navigation":`Navegação do grafo`,"Show graph navigation":`Mostrar navegação do grafo`,"Hide graph navigation":`Ocultar navegação do grafo`,More:`Mais`,"Export SVG":`Exportar SVG`,"Export PNG":`Exportar PNG`,Close:`Fechar`,"View details":`Ver detalhes`,Appearance:`Aparência`,"Follow system":`Sistema`,"Restore the original layout and view, and clear search and selection.":`Restaurar o layout e a visualização originais e limpar a busca e a seleção.`,"Reset: original positions and reading view restored":`Redefinido: posições e visualização originais restauradas`,Details:`Detalhes`,Name:`Nome`,Description:`Descrição`,"Name is required":`O nome é obrigatório`,Cancel:`Cancelar`,Save:`Salvar`,"Edit text":`Editar texto`,Evidence:`Evidência`,"Save changes":`Salvar alterações`,"Graph JSON saved":`Graph JSON salvo`,"Saved into this page, its sibling graph.json and SVGs":`Salvo nesta página, no graph.json ao lado e nos SVG`,"Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment":`Salvo nesta página e no graph.json ao lado; SVG não atualizados: o layout precisa de ajuste`,"Choose the folder containing this page ({page}); edits remain in this page":`Escolha a pasta desta página ({page}); as alterações permanecem nesta página`,"Graph JSON downloaded; keep the file to preserve edits":`Graph JSON baixado; guarde o arquivo para preservar as alterações`,"Save cancelled; edits remain in this page":`Salvamento cancelado; as alterações permanecem nesta página`,"Save failed; edits remain in this page":`Falha ao salvar; as alterações permanecem nesta página`,"Synchronous message":`Mensagem síncrona`,"Asynchronous message":`Mensagem assíncrona`,"Return message":`Mensagem de retorno`,"Branch conditions unspecified":`Condições dos ramos não indicadas`,"Activation: execution interval; offset means nesting":`Ativação: intervalo de execução; deslocamento indica aninhamento`,"C ID: paired call and return share a color":`ID C: chamada e retorno têm a mesma cor`,"par: concurrent branches; vertical position is not order":`par: ramos paralelos; posição vertical não indica ordem`,"Layout needs adjustment; JSON drafts can still be saved":`Ajuste o layout; o rascunho JSON pode ser salvo`,"Card wash":`Tom suave dos cartões`,yes:`sim`,no:`não`,composition:`composição`,aggregation:`agregação`,inheritance:`herança`,implementation:`implementação`,"Core state":`Estado central`,"Ended state":`Estado encerrado`,"Failed state":`Estado com falha`,"In-progress state":`Estado em andamento`,"In-progress state: warm to cool as it advances":`Estado em andamento: do quente ao frio conforme avança`,Transition:`Transição`,"Self-transition: handled without leaving the state":`Autotransição: evento tratado sem sair do estado`,"Key points":`Pontos-chave`,"Show key points":`Mostrar pontos-chave`,"Hide key points":`Ocultar pontos-chave`,"Component relations":`Relações entre componentes`,"Platform capabilities":`Capacidades da plataforma`,"Engineering layers":`Camadas do projeto`,"Overview text":`Texto da visão geral`,Badges:`Emblemas`,"Badge type":`Tipo de emblema`,"Add badge":`Adicionar emblema`,"Remove badge":`Remover emblema`,Status:`Estado`,Version:`Versão`,Requirement:`Requisito`,"Overview aligned":`Visão geral alinhada`,Section:`Seção`,Cancelled:`Cancelado`,"Component relationship architecture":`Arquitetura de componentes`,"Platform capability architecture":`Arquitetura de capacidades`,"Engineering layer architecture":`Arquitetura em camadas`,"Layout suggestions":`Sugestões de disposição`,"Arrange this view to improve connector clearance and spacing. Existing positions are preserved until then.":`Organize esta vista para melhorar as folgas e os espaçamentos das ligações. As posições atuais são preservadas até lá.`}};let pe=[`en`,...Object.keys(fe)];function D(e,t,n={}){let r=e??`zh-CN`,i=Object.hasOwn(fe,r)?fe[r]:void 0;return(i&&Object.hasOwn(i,t)?i[t]:t).replace(/\\{(\\w+)\\}/g,(e,t)=>Object.hasOwn(n,t)?String(n[t]):e)}let O=(e,t)=>[...e].reduce((e,n)=>e+t*(/[^\\u0000-\\u00ff]|[MWmw@%&]/.test(n)?1:/[A-Z]/.test(n)?.8:6.8/12),0),me=`\\\\p{Script=Han}\\\\p{Script=Hiragana}\\\\p{Script=Katakana}\\\\u3000-\\\\u303f\\\\uff00-\\\\uffef`,he=RegExp(`[${me}]`,`u`),ge=RegExp(`[${me}]|[^${me}]+`,`gu`),_e=/(?<=[_./\\\\\\-=,;:|&)>\\]}])|(?<=[a-z0-9])(?=[A-Z])/u,ve=new Set([...`,。、.;:!?)]}〕】》〉」』”’…`]),ye=new Set([...`([{〔【《〈「『“‘`]),be=(e,t)=>!ye.has([...e].at(-1))&&!ve.has([...t][0]);function xe(e,t,n){let r=[];for(let i of e.match(ge))if(he.test(i)||O(i,t)<=n)r.push(i);else for(let e of i.split(_e))r.push(...O(e,t)<=n?[e]:e);return r}function k(e,t,n=E.body,r=n*1.5){let i=String(e??``);if(!i)return{lines:[],width:0,height:0,lineHeight:r};let a=Math.max(1,t),o=[];for(let e of i.split(/\\r?\\n/)){let t=``,r=0,i=[],s=()=>{o.push(t),t=``,r=0,i=[]};for(let c of e.match(/\\s+|\\S+/g)??[]){let e=O(c,n);if(t&&e<=a&&r+e>a&&s(),i.push(t.length),e<=a||/^\\s/.test(c)){for(let e of c){let i=O(e,n);t&&r+i>a&&s(),t+=e,r+=i}continue}for(let e of xe(c,n,a)){let c=O(e,n);if(t&&r+c>a){if(be(t,e))s();else{let e=i.length-1;for(;e>=0&&!(i[e]>0&&be(t.slice(0,i[e]),t.slice(i[e])));)e--;if(e>=0){let a=i[e];o.push(t.slice(0,a)),t=t.slice(a),r=O(t,n),i=i.slice(e).map(e=>e-a)}}}i.push(t.length),t+=e,r+=c}}o.push(t)}return{lines:o,width:Math.ceil(Math.max(...o.map(e=>O(e,n)))),height:o.length*r,lineHeight:r}}let A=Object.freeze({pad:14,plate:24,textX:48,tagGap:8,tagPad:8,titleLine:26,subtitleLine:24,sourceLine:20,minHeight:64,maxWidth:360}),Se=e=>e.source?.file?`${e.source.file.split(`/`).at(-1)}:${e.source.lineStart}`:``;function Ce(e,t,n){let r=e.lastIndexOf(`:`),i=e.slice(0,r),a=e.slice(r);for(let r=i.length-1;O(e,n)>t&&r>4;r--)e=`${i.slice(0,Math.ceil(r/2))}…${i.slice(i.length-Math.floor(r/2))}${a}`;return e}let we=(e,t)=>{let n=D(t,ue[e.kind]??e.kind);return{text:n,width:Math.ceil(O(n,E.small)+n.length*.6)+2*A.tagPad}};function Te(e,t,n=!1,r=0){if(n){let t=k(e.label,e.size.width-30,E.title,26),n=k(e.subtitle??``,e.size.width-30,E.body,24);return{title:t,subtitle:n,minHeight:Math.max(100,65+t.height+n.height)}}let i=we(e,t),a=e.size.width-A.textX-A.pad,o=k(e.label,a-i.width-A.tagGap-r,E.title,A.titleLine),s=k(e.subtitle??``,a,E.body,A.subtitleLine),c=k(Ce(Se(e),a,E.small),a,E.small,A.sourceLine),l=A.pad+o.height+(s.height?4+s.height:0)+(c.height?6+c.height:0)+A.pad;return{title:o,subtitle:s,source:c,tag:i,contentHeight:l,minHeight:Math.max(A.minHeight,l)}}function Ee(e,t=f.labelWidth){let n=k(e,t);return{...n,width:n.lines.length?Math.max(24,n.width+12):0,height:n.lines.length?n.height+6:0}}function De(e,t){let n=t.map(e=>e.text).join(` `),r=t.flatMap((e,n)=>[...n?[t[n-1].role]:[],...Array.from({length:e.text.length},()=>e.role)]),i=0,a=e.map(e=>{for(;n[i]===`\\r`||n[i]===`\n`;)i++;if(!n.startsWith(e,i))return null;let t=[];for(let n=0;n<e.length;n++){let a=r[i+n];t.at(-1)?.role===a?t.at(-1).text+=e[n]:t.push({text:e[n],role:a})}return i+=e.length,t});for(;n[i]===`\\r`||n[i]===`\n`;)i++;return i===n.length&&a.every(Boolean)?a:null}function j(e,t){let{width:n,height:r}=Ee(e,t);return{width:n,height:r}}function Oe(e){let t=Math.min(f.headingWidth,Math.max(1,(e.size?.width??1/0)-2*d.groupInset)),n=k(e.label,t,E.small+1.12,22);return{...n,height:12+n.height}}function ke(e=``){return String(e).replaceAll(`&`,`&amp;`).replaceAll(`<`,`&lt;`).replaceAll(`>`,`&gt;`).replaceAll(`"`,`&quot;`)}function M(e,t){return{value:String(e??``),width:t}}function N(e,t,n,r,i=``){let a=n&&typeof n==`object`&&`width`in n,o=Number(i.match(/font-size:([\\d.]+)px/)?.[1])||{title:E.title,"shape-title":E.title,"participant-title":E.title,body:E.body,"field-name":E.body,"field-type":E.body,member:E.body,"entity-title":E.title}[r]||E.small;if(n&&typeof n==`object`&&`runs`in n)return`<text x="${e}" y="${t}" class="${r}"${i}>${n.runs.map(e=>{let t=n.colors[e.role];return t?`<tspan style="fill:${t}">${ke(e.text)}</tspan>`:ke(e.text)}).join(``)}</text>`;let s=a?n.value:n;if(a&&k(s,1/0,o).width>n.width){let e=Math.max(0,n.width-k(`…`,1/0,o).width);s=e?(k(s,e,o).lines[0]??``)+`…`:`…`}return`<text x="${e}" y="${t}" class="${r}"${i}>${ke(s)}</text>`}function Ae(e,t,n,r,i=1/0,a=``){if(r<=0||i<=0)return``;let o=k(n,r,E.title,29),s=k(a,r,E.body,23.2),c=Math.min(o.lines.length,Math.max(1,Math.floor(i/o.lineHeight))),l=Math.min(s.lines.length,Math.max(0,Math.floor((i-c*o.lineHeight-5)/s.lineHeight))),u=c*o.lineHeight+(l?5+l*s.lineHeight:0),d=t-u/2,f=(t,n,r,i)=>t.lines.slice(0,n).map((a,o)=>N(e,r+o*t.lineHeight,a+(o===n-1&&n<t.lines.length?`…`:``),i,` text-anchor="middle"`)).join(``),p=f(o,c,d+22,`shape-title`)+f(s,l,d+c*o.lineHeight+5+18,`body`),m=Math.min(1,i/u);return m<1?`<g transform="translate(${e} ${t}) scale(${m}) translate(${-e} ${-t})">${p}</g>`:p}function P(e,t={}){return e.map(([e,n])=>`<${e}${Object.entries({...n,...Object.keys(t).length?{class:`node-surface`}:{},...t,...n.fill===void 0?{}:{fill:n.fill}}).map(([e,t])=>` ${e}="${ke(t)}"`).join(``)}/>`).join(``)}let F=(e,t,n,r=10,i=e.size.height)=>[[`rect`,{x:t,y:n,width:e.size.width,height:i,rx:r}]],je=(e,t,n)=>{let{width:r,height:i}=e.size,a=n+2+5,o=n+i-2-5;return[[`path`,{d:`M${t+12} ${a}Q${t+12} ${n+2} ${t+r/2} ${n+2}T${t+r-12} ${a}V${o}Q${t+r-12} ${n+i-2} ${t+r/2} ${n+i-2}T${t+12} ${o}Z`}],[`ellipse`,{cx:t+r/2,cy:a,rx:r/2-12,ry:5,fill:`none`}]]},Me=[[.08,0],[.92,0],[1,.5],[.92,1],[.08,1],[0,.5]],Ne=(e,t,n,r)=>[[`polygon`,{points:r.map(([r,i])=>`${t+r*e.size.width},${n+i*e.size.height}`).join(` `)}]],Pe=(e,t,n)=>[[`polygon`,{points:`${t+e.size.width/2},${n} ${t+e.size.width},${n+e.size.height/2} ${t+e.size.width/2},${n+e.size.height} ${t},${n+e.size.height/2}`}]],Fe=(e,t,n)=>{let r=t+e.size.width/2;return[[`circle`,{cx:r,cy:n+13,r:11}],[`path`,{d:`M${r} ${n+24}v29M${r-20} ${n+35}h40M${r} ${n+53}l-17 23M${r} ${n+53}l17 23`,fill:`none`}]]},Ie=e=>({x:e.position.x+e.size.width/2,y:e.position.y+e.size.height/2});function I(e,t,n=0,r=0){let i=Ie(e),a=typeof r==`number`?{left:r,right:r,top:r,bottom:r}:{left:0,right:0,top:0,bottom:0,...r};return t===`left`||t===`right`?{x:e.position.x+(t===`left`?a.left:e.size.width-a.right),y:i.y+n}:{x:i.x+n,y:e.position.y+(t===`top`?a.top:e.size.height-a.bottom)}}function Le(e,t,n=0,r=10){let{x:i,y:a}=e.position,{width:o,height:s}=e.size,c=Ie(e),l=Math.max(0,Math.min(r,o/2,s/2));if(t===`left`||t===`right`){let r=c.y+n;if(r<a||r>a+s)return I(e,t,n);let u=r<a+l?a+l:r>a+s-l?a+s-l:r,d=Math.sqrt(Math.max(0,l*l-(r-u)**2));return{x:t===`left`?i+l-d:i+o-l+d,y:r}}let u=c.x+n;if(u<i||u>i+o)return I(e,t,n);let d=u<i+l?i+l:u>i+o-l?i+o-l:u,f=Math.sqrt(Math.max(0,l*l-(u-d)**2));return{x:u,y:t===`top`?a+l-f:a+s-l+f}}function Re(e,t,n=0,r=0,i=0){let a=Ie(e),o=Math.max(1,e.size.width/2-r),s=Math.max(1,e.size.height/2-i);if(t===`left`||t===`right`){let r=a.y+n;if(Math.abs(n)>s)return I(e,t,n);let i=o*Math.sqrt(Math.max(0,1-((r-a.y)/s)**2));return{x:a.x+(t===`left`?-i:i),y:r}}let c=a.x+n;if(Math.abs(n)>o)return I(e,t,n);let l=s*Math.sqrt(Math.max(0,1-((c-a.x)/o)**2));return{x:c,y:a.y+(t===`top`?-l:l)}}function ze(e,t,n=0,r){let i=r.map(([t,n])=>({x:e.position.x+t*e.size.width,y:e.position.y+n*e.size.height})),a=Ie(e),o=t===`left`||t===`right`,s=o?a.y+n:a.x+n,c=[];for(let e=0;e<i.length;e+=1){let t=i[e],n=i[(e+1)%i.length],r=o?t.y:t.x,a=o?n.y:n.x;if(s<Math.min(r,a)||s>Math.max(r,a)||r===a)continue;let l=(s-r)/(a-r);c.push((o?t.x:t.y)+l*((o?n.x:n.y)-(o?t.x:t.y)))}if(!c.length)return I(e,t,n);let l=t===`left`||t===`top`?Math.min(...c):Math.max(...c);return o?{x:l,y:s}:{x:s,y:l}}function Be(e,t,n=0,r=0){let i=e.position.x+e.size.width/2,a=e.position.y+r;return t===`left`?{x:i-20,y:a+35}:t===`right`?{x:i+20,y:a+35}:t===`top`?{x:i,y:a+2}:{x:i+Math.sign(n||1)*Math.min(17,Math.abs(n)),y:a+76}}let Ve=(e,t,n)=>e.kind===`actor`?Fe(e,t,n):F(e,t,n,7,He(e));function He(e){let t=(e.size?.width??280)-28,n=k(e.label,t,20,26).lines.length,r=e.subtitle?k(e.subtitle,t,16,22).lines.length:0;return(e.kind===`actor`?E.sequenceActorHeader+(e.subtitle?22:0):E.sequenceHeader)+Math.max(0,n-1)*26+Math.max(0,r-1)*22}function Ue(e,t,n,r,i,a,o){let s=t+e.size.width/2,c=e.kind===`actor`,l=He(e),u=P(Ve(e,t,n),{fill:r,stroke:i,"stroke-width":1.5}),d=k(e.label,e.size.width-28,20,26).lines,f=n+(c?98:e.subtitle?44:53),p=(c?``:N(s,n+20,D(o,ue[e.kind]??e.kind),`stereotype`,` text-anchor="middle"`))+d.map((e,t)=>N(s,f+t*26,e,`participant-title`,` text-anchor="middle"`)).join(``),m=e.subtitle?k(e.subtitle,e.size.width-28,16,22).lines.map((e,t)=>N(s,f+(d.length-1)*26+(c?28:22)+t*22,e,`body`,` text-anchor="middle"`)).join(``):``,h=(e.executionRects??[]).map(e=>`<rect class="sequence-execution" data-execution-id="${ke(e.id)}" x="${t+e.x}" y="${n+e.y}" width="${e.width}" height="${e.height}" fill="${oe(e.color,a.surface,.14)}" stroke="${e.color}" stroke-width="1.5"/>`).join(``);return`<g><title>${ke([e.label,e.subtitle].filter(Boolean).join(` · `))}</title><g class="sequence-head"><g class="${c?`actor-figure`:`participant-head`}">${u}</g>${p}${m}</g><path class="lifeline" d="M ${s} ${n+l}V ${n+e.size.height}" stroke="${a.edge}" stroke-width="1" stroke-dasharray="4 6"/>${h}</g>`}var We={dashedKinds:[`return`],markers:{async:{end:`arrow-open`},return:{end:`arrow-open`}},id:`sequence`,label:`Sequence`,nodeKinds:[`actor`,`participant`,`external`,`service`,`database`],groupKinds:[`alt`,`opt`,`loop`,`par`],edgeKinds:[`sync`,`async`,`return`],render:Ue,outline:Ve,sequence:!0,selectionHeight:He,edgeLabel:e=>`${String(e.order).padStart(2,`0`)} · ${e.label??``}`,validateEdge(e,t,n,{requireString:r,sequenceOrders:i}){!Number.isInteger(e?.order)||e.order<1?n.push(`${t}.order must be a positive integer for sequence`):i.has(e.order)?n.push(`${t}.order duplicates ${e.order}`):i.add(e.order),r(e?.label,`${t}.label`,n)}};let Ge=e=>Math.max(0,(e.size.height-104-(e.subtitle?24:0))/2),Ke=e=>({width:e.size.width/Math.SQRT2-8,height:e.size.height/Math.SQRT2-8}),qe=(e,t,n)=>e.kind===`actor`?Fe(e,t,n+Ge(e)):[[`ellipse`,{cx:t+e.size.width/2,cy:n+e.size.height/2,rx:e.size.width/2,ry:e.size.height/2}]],Je=(e,t,n)=>e.kind===`actor`?Be(e,t,n,Ge(e)):Re(e,t,n);function Ye(e,t,n,r,i,a){let o=t+e.size.width/2;if(e.kind===`actor`)return`<g><g class="actor-figure">${P(qe(e,t,n),{fill:r,stroke:i,"stroke-width":1.5})}</g>${N(o,n+Ge(e)+98,M(e.label,e.size.width-12),`shape-title`,` text-anchor="middle" style="fill:${a.ink}"`)}${e.subtitle?N(o,n+Ge(e)+122,M(e.subtitle,e.size.width-12),`body`,` text-anchor="middle"`):``}</g>`;let s=Ke(e);return`<g class="shape-label">${P(qe(e,t,n),{fill:r,stroke:i,"stroke-width":1.2})}${Ae(o,n+e.size.height/2,e.label,s.width,s.height,e.subtitle)}</g>`}var Xe={dashedKinds:[`include`,`extend`],id:`usecase`,label:`Use cases`,nodeKinds:[`actor`,`usecase`],groupKinds:[`system`],edgeKinds:[`association`,`include`,`extend`],render:Ye,outline:qe,anchor:Je,textArea:Ke,undirected:[`association`],markers:{include:{end:`arrow-open`},extend:{end:`arrow-open`}},edgeLabel:e=>{let t={include:`«include»`,extend:`«extend»`}[e.kind];return t?e.label&&e.label!==e.kind?`${t} · ${e.label}`:t:e.label??``}};let Ze=e=>e.subtitle?14:e.size.width/2,Qe=[`entry`,`do`,`exit`],L={side:16,pad:8,line:20,keyWidth:64};function $e(e){let t=e.kind===`state`?Qe.filter(t=>typeof e[t]==`string`&&e[t].trim()).map(t=>({key:t,lines:k(e[t],e.size.width-2*L.side-L.keyWidth,E.small,L.line).lines})):[];return{rows:t,height:t.length?t.reduce((e,t)=>e+t.lines.length,0)*L.line+2*L.pad:0}}let et=2*L.side+L.keyWidth,tt=e=>{let{height:t}=$e(e);return t?{x:L.side,y:e.size.height-t,width:e.size.width-2*L.side,height:t}:null},nt=(e,t,n)=>[`initial`,`final`].includes(e.kind)?[[`circle`,{cx:t+Ze(e),cy:n+e.size.height/2,r:e.kind===`initial`?12:13}]]:e.kind===`choice`?Pe(e,t,n):F(e,t,n,12),rt=(e,t,n)=>{if([`initial`,`final`].includes(e.kind)){let r=e.kind===`initial`?12:13,i=Ze(e)-e.size.width/2;return Re({...e,position:{...e.position,x:e.position.x+i}},t,n-([`top`,`bottom`].includes(t)?i:0),e.size.width/2-r,e.size.height/2-r)}return e.kind===`choice`?ze(e,t,n,[[.5,0],[1,.5],[.5,1],[0,.5]]):I(e,t,n)},it=e=>{if([`initial`,`final`].includes(e.kind)&&e.subtitle)return{x:42,y:8,width:e.size.width-50,height:e.size.height-16};let t=$e(e).height,n={width:e.kind===`choice`?e.size.width/2-8:e.size.width-24,height:e.kind===`choice`?e.size.height/2-8:e.size.height-16-t};return t?{x:12,y:8,...n}:n};function at(e,t,n,r,i){let{rows:a,height:o}=$e(e);if(!a.length)return``;let s=n+e.size.height-o,c=0;return`<path d="M${t} ${s}H${t+e.size.width}" fill="none" stroke="${r}" stroke-opacity=".35"/>${a.map(e=>e.lines.map((n,r)=>{let a=s+L.pad+c++*L.line+15;return(r?``:N(t+L.side,a,`${e.key} /`,`field-key`))+N(t+L.side+L.keyWidth,a,n,`entity-meta`,` style="fill:${i.ink}"`)}).join(``)).join(``)}`}function ot(e,t,n,r,i,a){let o=t+e.size.width/2,s=n+e.size.height/2;if([`initial`,`final`].includes(e.kind)){let r=it(e),o=e.kind===`final`;return`<g class="state-dot">${P(nt(e,t,n),{fill:o?a.surface:i,stroke:i,"stroke-width":1})}${o?`<circle cx="${t+Ze(e)}" cy="${s}" r="8" fill="${i}"/>`:``}</g>${e.subtitle?Ae(t+r.x+r.width/2,s,e.label,r.width,r.height,e.subtitle):``}`}let c=it(e),l=n+(e.size.height-$e(e).height)/2;return`<g class="shape-label">${P(nt(e,t,n),{fill:r,stroke:i,"stroke-width":1.2})}${Ae(o,l,e.label,c.width,c.height,e.subtitle)}${at(e,t,n,i,a)}</g>`}let st=e=>[{text:e.label,role:`trigger`},...e.guard?[{text:`[${e.guard}]`,role:`guard`}]:[],...e.action?[{text:`/ ${e.action}`,role:`effect`}]:[]].filter(e=>e.text);var ct={id:`state`,label:`State diagram`,nodeKinds:[`initial`,`state`,`final`,`choice`],groupKinds:[],edgeKinds:[`transition`],render:ot,outline:nt,anchor:rt,textArea:it,activityArea:tt,curvedSelfLoops:!0,markers:{transition:{end:`arrow-open`}},edgeLabel:e=>st(e).map(e=>e.text).join(` `),edgeLabelParts:st,labelRoleColors:{trigger:`ink`,guard:`guard`},legend:{neutral:`State`,core:`Core state`,goal:`Core state`,ended:`Ended state`,failed:`Failed state`,flight:`In-progress state: warm to cool as it advances`,solid:`Transition`},validateNode(e,t,n){for(let r of Qe)e?.[r]!==void 0&&(typeof e[r]!=`string`||!e[r].trim()?n.push(`${t}.${r} must be a non-empty string`):e.kind!==`state`&&n.push(`${t}.${r} is only supported on state nodes`))},validateEdge(e,t,n){for(let r of[`guard`,`action`])e?.[r]!==void 0&&typeof e[r]!=`string`&&n.push(`${t}.${r} must be a string`)}};let lt=(e,t,n=0)=>e.x<t.x+t.width+n&&e.x+e.width>t.x-n&&e.y<t.y+t.height+n&&e.y+e.height>t.y-n,ut=e=>e.points.slice(1).map((t,n)=>{let r=e.points[n];return{x:Math.min(r.x,t.x)-6,y:Math.min(r.y,t.y)-6,width:Math.abs(t.x-r.x)+12,height:Math.abs(t.y-r.y)+12}}),R=(e,t)=>e?.id??String(t);function dt(e){let t=new Map((e.groups??[]).map(e=>[e.id,e])),n=new Map,r=(e,n=new Set)=>{if(!e.parentId||n.has(e.id))return``;n.add(e.id);let i=t.get(e.parentId);return i?r(i,n)+`${encodeURIComponent(i.id)}:${encodeURIComponent(e.parentOperandId)}/`:``};for(let e of t.values())if(Array.isArray(e.operands))for(let[t,i]of e.operands.entries())for(let a of Array.isArray(i?.edgeIds)?i.edgeIds:[])n.set(a,r(e)+`${encodeURIComponent(e.id)}:${encodeURIComponent(R(i,t))}`);return n}function ft(e,t,n,r,i=new Set){if(i.has(e.id))return[];let a=new Set(i).add(e.id),o=r.filter(r=>r.parentId===e.id&&r.parentOperandId===R(t,n));return[...t.edgeIds??[],...o.flatMap(e=>(e.operands??[]).flatMap((t,n)=>ft(e,t,n,r,a)))]}function pt(e){let t=[],n=new Map(e.edges.map(e=>[e.id,e])),r=e.groups??[],i=new Map;for(let a of r){let o=`group ${a.id}.operands`;if(e.meta.diagramType!==`sequence`){(a.operands!==void 0||a.parentOperandId!==void 0||a.loop!==void 0)&&t.push(`${o} is only supported for sequence`);continue}if(a.parentId!==void 0||a.parentOperandId!==void 0){let e=r.find(e=>e.id===a.parentId);(!e||!Array.isArray(e.operands)||!e.operands.some((e,t)=>R(e,t)===a.parentOperandId))&&t.push(`group ${a.id} unknown parent operand ${a.parentId}/${a.parentOperandId}`)}let s=new Set([a.id]),c=r.find(e=>e.id===a.parentId);for(;c;){if(s.has(c.id)){t.push(`group ${a.id} parent cycle at ${c.id}`);break}s.add(c.id),c=r.find(e=>e.id===c.parentId)}if(a.operands===void 0&&a.kind!==`par`&&a.loop===void 0&&a.parentId===void 0)continue;let l=[`alt`,`par`].includes(a.kind);if(!Array.isArray(a.operands)||(l?a.operands.length<2:a.operands.length!==1)){t.push(`${o} needs ${l?`at least two branches`:`exactly one branch`}`);continue}a.kind===`loop`?(!Number.isInteger(a.loop?.min)||a.loop.min<0||!(a.loop?.max===`*`||Number.isInteger(a.loop?.max)&&a.loop.max>=a.loop.min))&&t.push(`group ${a.id}.loop needs a non-negative min and max >= min (or *)`):a.loop!==void 0&&t.push(`group ${a.id}.loop is only supported for loop`);let u=new Set;for(let[e,s]of a.operands.entries()){let c=`${o}[${e}] (${String(s?.id??e)})`;if(!s||typeof s!=`object`||Array.isArray(s)){t.push(`${c} must be an object`);continue}s.id!==void 0&&(typeof s.id!=`string`||!s.id.trim())&&t.push(`${c}.id must be a non-empty string`),a.kind!==`alt`&&s.id===void 0&&t.push(`${c}.id is required`);let l=R(s,e);u.has(l)&&t.push(`${c} duplicate operand id`),u.add(l);let d=a.kind===`par`?`label`:`guard`;(typeof s[d]!=`string`||!s[d].trim())&&t.push(`${c}.${d} must be a non-empty string`),a.kind===`alt`&&s.guard?.trim?.()===`else`&&e!==a.operands.length-1&&t.push(`${c} else must be last and unique`),s.body!==void 0&&(typeof s.body!=`string`||!s.body.trim())&&t.push(`${c}.body must be a non-empty string`);let f=r.filter(e=>e.parentId===a.id&&e.parentOperandId===l);if(!Array.isArray(s.edgeIds)||!s.edgeIds.length&&!s.body?.trim?.()&&!f.length){t.push(`${c}.edgeIds must be an array with messages, body or a child fragment`);continue}for(let e of s.edgeIds)(typeof e!=`string`||!n.has(e))&&t.push(`${c} unknown edge ${String(e)}`),i.has(e)&&t.push(`${c} duplicate edge ${e}, already in ${i.get(e)}`),i.set(e,`${a.id}/${l}`)}}if(t.length)return t;for(let e of r){let i=-1/0;for(let[a,o]of(e.operands??[]).entries()){let s=ft(e,o,a,r).map(e=>n.get(e)?.order).filter(Number.isFinite);s.length&&Math.min(...s)<=i&&t.push(`group ${e.id}.operands order ranges must be ordered and non-interleaving`),s.length&&(i=Math.max(...s))}}return t}function mt(e,t){let n=0,r=t.find(t=>t.id===e.parentId),i=new Set([e.id]);for(;r&&!i.has(r.id);)i.add(r.id),n++,r=t.find(e=>e.id===r.parentId);return n}let ht=e=>k(e.label,Math.min(f.headingWidth,Math.max(1,(e.size?.width??1/0)-88)),15.12,22);function gt(e,t){let n={...e.position,...e.size},r=ht(e),i={width:Math.min(r.width+16,n.width-88),height:Math.max(24,r.height+8),lines:r.lines};return[n.x+16,...t.map(e=>e.x+e.width+12)].map(e=>({x:e,y:n.y+6,...i})).find(e=>e.x>=n.x+16&&e.x+e.width<=n.x+n.width-64&&!t.some(t=>lt(e,t,4)))}function _t(e,t,n,r,i){let a={...e.position,...e.size},o=a.y+a.height,s=[...t.entries()],c=e=>e.points.some(e=>e.x>=a.x&&e.x<=a.x+a.width&&e.y>a.y&&e.y<a.y+a.height),l=s.filter(([,e])=>c(e)).map(([,e])=>e),u=[`group ${e.id}: alt branch conditions are unspecified (operands missing)`],d=[...i?[i]:[],{x:a.x+a.width-52,y:a.y,width:52,height:36},...s.flatMap(([,e])=>[e.labelBox,...ut(e)]),...r],f=k(D(n,`Branch conditions unspecified`),Math.max(1,a.width-32),14,20),p={width:f.width+8,height:f.height+4},m=[a.x+16,...d.map(e=>e.x+e.width+8),a.x+a.width-p.width-16],h=Math.min(...l.map(e=>Math.min(e.labelBox.y,...e.points.map(e=>e.y)))),g=[a.y+6,h,...l.map(e=>e.points[0].y-p.height-6)].flatMap(e=>m.map(t=>({x:t,y:e,...p}))).find(e=>e.x>=a.x+8&&e.x+e.width<=a.x+a.width-8&&e.y>=a.y+6&&e.y+e.height<=o-6&&!d.some(t=>lt(e,t,2)));return g||u.push(`layout: group ${e.id} has no room for guard 1; shorten the guard or adjust the frame/participant spacing`),{warnings:u,guards:[{...g??{x:a.x+16,y:a.y+38,...p},lines:f.lines,operandId:R(null,0)}]}}function vt(e,t,n,r=[],i=[]){let a=[],o=[],s=[],c=[],l=[],u={...e.position,...e.size},d=u.y+u.height,p=r.find(t=>t.id===e.parentId);p&&!(u.x>=p.position.x+8&&u.x+u.width<=p.position.x+p.size.width-8&&u.y>=p.position.y+36&&d<=p.position.y+p.size.height-8)&&a.push(`layout: group ${e.id} exceeds parent ${p.id}`);let m=new Set,h=p;for(;h&&!m.has(h.id);)m.add(h.id),h=r.find(e=>e.id===h.parentId);for(let t of r)if(t.id!==e.id&&!m.has(t.id)){let n=t,i=new Set;for(;n?.parentId&&!i.has(n.id)&&(i.add(n.id),n.parentId!==e.id);)n=r.find(e=>e.id===n.parentId);if(n?.parentId===e.id)continue;lt(u,{...t.position,...t.size})&&a.push(`layout: groups ${e.id} and ${t.id} cross without nesting`)}if(e.kind!==`alt`&&!e.operands)return{errors:a,warnings:o,guards:s,bodies:c,separators:l};let g=gt(e,i);g||a.push(`layout: group ${e.id} has no room for heading; adjust its frame`);let _=r.filter(t=>t.parentId===e.id);if(e.kind===`alt`&&e.operands===void 0&&!e.parentId&&!_.length){let r=_t(e,t,n,i,g);return{errors:a,warnings:r.warnings,guards:r.guards,separators:[],heading:g}}if(!e.operands)return{errors:a,warnings:o,guards:s,bodies:c,separators:l};let v=Math.max(u.y+36,g?g.y+g.height+6:0),y=e.operands.map((n,i)=>{let a=_.filter(e=>e.parentOperandId===R(n,i)).map(e=>({...e.position,...e.size,id:e.id})),o=ft(e,n,i,r).map(e=>t.get(e)).filter(Boolean),s=[...a,...o.flatMap(e=>[e.labelBox,...ut(e)])],c=e.kind===`par`?n.label:`${e.kind===`loop`?`${e.loop.min}..${e.loop.max} `:``}[${n.guard}]`,l=Math.min(f.labelWidth,Math.max(1,u.width-40));return{operand:n,selected:o,childFrames:a,boxes:s,textHeight:k(c,l,14,20).height+16+(n.body?k(n.body,l,16,24).height+12:0),top:Math.min(...s.map(e=>e.y)),bottom:Math.max(...s.map(e=>e.y+e.height))}});for(let e=1;e<y.length;e++){let t=y[e-1],n=y[e];l.push((t.bottom+n.top)/2)}for(let e=0;e<y.length;e++){if(y[e].boxes.length)continue;let t=e;for(;t+1<y.length&&!y[t+1].boxes.length;)t++;let n=y[e-1],r=y[t+1],i=n?n.bottom:v,a=r?r.top:d,o=n?4:0,s=o+y.slice(e,t+1).reduce((e,t)=>e+t.textHeight,0)+(r?.textHeight??0);n&&(l[e-1]=i+(a-i)*o/s);for(let n=e;n<=t;n++)o+=y[n].textHeight,n+1<y.length&&(l[n]=i+(a-i)*o/s);e=t}let b=new Set(e.operands.flatMap((t,n)=>ft(e,t,n,r)));for(let[n,r]of t)r.points.some(e=>e.x>=u.x&&e.x<=u.x+u.width&&e.y>u.y&&e.y<d)&&!b.has(n)&&a.push(`layout: group ${e.id} omits enclosed message ${n}`);let x=[...t.values()].flatMap(e=>[e.labelBox,...ut(e)]);return x.push(...i),y.forEach(({operand:t,selected:n,childFrames:r,top:i},o)=>{let p=o?l[o-1]:v,m=l[o]??d;for(let i of[...r,...n.flatMap(e=>[e.labelBox,...ut(e)])])(i.x<u.x+4||i.x+i.width>u.x+u.width-4||i.y<p+2||i.y+i.height>m-2)&&a.push(`layout: group ${e.id} cannot contain operand ${R(t,o)}${i.id?` child ${i.id}`:``}; enlarge or reposition its frame`);let h=e.kind===`par`?t.label:`${e.kind===`loop`?`${e.loop.min}..${e.loop.max} `:``}[${t.guard}]`,g=[...x,...r,...s,...c],_=(n,r,l)=>{let d=r===`body`?16:14,p=r===`body`?24:20,h=k(n,Math.min(f.labelWidth,Math.max(1,u.width-40)),d,p),_={width:h.width+8,height:h.height+4},v=[u.x+16,...g.map(e=>e.x+e.width+8),u.x+u.width-_.width-16],y=[l,...g.map(e=>e.y+e.height+8),i-_.height-8].filter(Number.isFinite).sort((e,t)=>e-t).flatMap(e=>v.map(t=>({x:t,y:e,..._}))).find(e=>e.x>=u.x+8&&e.x+e.width<=u.x+u.width-8&&e.y>=l&&e.y+e.height<=m-6&&!g.some(t=>lt(e,t,2)));return y?(y.lines=h.lines,y.fontSize=d,y.lineHeight=p,y.operandId=R(t,o),g.push(y),(r===`guard`?s:c).push(y)):a.push(`layout: group ${e.id} has no room for ${r} ${R(t,o)}; adjust frame/message spacing`),y},y=_(h,`guard`,p+6);t.body&&_(t.body,`body`,y?y.y+y.height+8:p+38)}),{errors:a,warnings:o,guards:s,bodies:c,separators:l,heading:g}}function yt(e){if(e.meta.diagramType!==`sequence`)return new Map;let t=new Map(e.edges.map(e=>[e.id,e.order])),n=[...new Set(e.edges.map(e=>e.replyTo).filter(Boolean))].sort((e,n)=>(t.get(e)??1/0)-(t.get(n)??1/0)||(e<n?-1:+(e>n))),r=new Map(n.map((e,t)=>[e,t]));return new Map(e.edges.filter(e=>r.has(e.replyTo??e.id)).map(e=>{let t=e.replyTo??e.id,n=r.get(t);return[e.id,{callId:t,index:n,label:`${e.replyTo?`↩ `:``}C${n+1}`}]}))}function bt(e,t,n=yt(e),r=dt(e)){let i=n.get(t.id),a=(e.groups??[]).some(e=>e.kind===`par`&&(r.get(t.id)??``).split(`/`).some(t=>t.startsWith(encodeURIComponent(e.id)+`:`)));return i?`${i.label} · ${t.label??``}`:a?t.label??``:`${String(t.order).padStart(2,`0`)} · ${t.label??``}`}function xt(e,t){let n=e=>t.findIndex(t=>t.id===e),r=[...e.edges].sort((e,t)=>Math.abs(n(e.source)-n(e.target))-Math.abs(n(t.source)-n(t.target))||e.order-t.order),i=new Map;for(let a of r){let r=Math.min(n(a.source),n(a.target)),o=Math.max(n(a.source),n(a.target)),s=Ee(bt(e,a)).width+64;if(r===o){let e=i.get(a.source)??0;if(i.set(a.source,e+1),o++,s+=48+e*24,o===t.length)continue}let c=e=>e.position.x+e.size.width/2,l=Math.max(0,s-(c(t[o])-c(t[r])));for(let e=o;e<t.length;e++)t[e].position.x+=l}}let St=(e,t)=>(e.route?.messageY??140+e.order*54)+(t===`receive`&&e.source===e.target?30:0);function Ct(e,{inputOnly:t=!1}={}){let n=[],r=new Map(e.edges.map(e=>[e.id,e]));if(e.meta.diagramType!==`sequence`)return(e.executions!==void 0||e.edges.some(e=>e.replyTo!==void 0))&&n.push(`executions and replyTo are only supported for sequence`),n;if(!t){let t=[...e.edges].sort((e,t)=>e.order-t.order);for(let e=1;e<t.length;e++)St(t[e],`send`)<=St(t[e-1],`send`)&&n.push(`edge ${t[e].id}.route.messageY must preserve message order after ${t[e-1].id}`)}let i=dt(e),a=new Set;for(let t of e.edges){if(t.replyTo===void 0)continue;let e=r.get(t.replyTo),o=`edge ${t.id}.replyTo ${String(t.replyTo)}`;t.kind!==`return`||typeof t.replyTo!=`string`||!e||![`sync`,`async`].includes(e.kind)?n.push(`${o} must reference a sync or async call from a return`):(e.order>=t.order&&n.push(`${o} must precede its return`),(e.source!==t.target||e.target!==t.source)&&n.push(`${o} endpoints must be reversed`),i.get(e.id)!==i.get(t.id)&&n.push(`${o} must stay in the same operand scope`)),a.has(t.replyTo)&&n.push(`${o} has a duplicate return`),a.add(t.replyTo)}if(e.executions===void 0)return n;if(!Array.isArray(e.executions))return[...n,`executions must be an array`];let o=new Map,s=new Map,c=new Map;for(let a of e.executions){if(!a||typeof a!=`object`||Array.isArray(a)){n.push(`execution must be an object`);continue}let l=`execution ${String(a.id)}`;(typeof a.id!=`string`||!a.id.trim())&&n.push(`${l} needs a non-empty id`),o.has(a.id)&&n.push(`${l} duplicate id`),o.set(a.id,a),e.nodes.some(e=>e.id===a.participantId)||n.push(`${l} unknown participant ${String(a.participantId)}`);let u=[];for(let e of[`start`,`end`]){let i=a[e],o=r.get(i?.edgeId);if(!o||![`send`,`receive`].includes(i?.at)){n.push(`${l}.${e} invalid endpoint ${String(i?.edgeId)}`);continue}o[i.at===`send`?`source`:`target`]!==a.participantId&&n.push(`${l}.${e} endpoint ${o.id} does not belong to participant ${a.participantId}`),u.push(t?o.order*2+Number(i.at===`receive`&&o.source===o.target):St(o,i.at));let s=`${o.id}:${i.at}`;c.has(s)&&n.push(`${l}.${e} ambiguous endpoint ${s} with execution ${c.get(s)}`),c.set(s,a.id)}u.length===2&&(u[0]>=u[1]&&n.push(`${l} start must precede end`),i.get(a.start.edgeId)!==i.get(a.end.edgeId)&&n.push(`${l} endpoints must stay in the same operand scope`),s.set(a.id,u))}for(let e of o.values()){if(e.parentId!==void 0){let t=o.get(e.parentId);if(!t)n.push(`execution ${e.id} unknown parent ${String(e.parentId)}`);else{t.participantId!==e.participantId&&n.push(`execution ${e.id} parent ${t.id} belongs to another participant`);let r=s.get(t.id),a=s.get(e.id);r&&a&&(a[0]<r[0]||a[1]>r[1])&&n.push(`execution ${e.id} exceeds parent ${t.id}`);let o=i.get(t.start?.edgeId)??``,c=i.get(e.start?.edgeId)??``;o&&c!==o&&!c.startsWith(o+`/`)&&n.push(`execution ${e.id} is outside parent ${t.id} operand scope`)}}let t=new Set([e.id]),r=o.get(e.parentId);for(;r;){if(t.has(r.id)){n.push(`execution ${e.id} parent cycle at ${r.id}`);break}t.add(r.id),r=o.get(r.parentId)}}let l=[...o.values()],u=(e,t)=>{let n=new Set,r=o.get(t.parentId);for(;r&&!n.has(r.id);){if(r.id===e.id)return!0;n.add(r.id),r=o.get(r.parentId)}return!1};for(let e=0;e<l.length;e++)for(let t of l.slice(e+1)){let r=l[e],i=s.get(r.id),a=s.get(t.id);i&&a&&r.participantId===t.participantId&&!u(r,t)&&!u(t,r)&&i[0]<a[1]&&a[0]<i[1]&&n.push(`executions ${r.id} and ${t.id} overlap without nesting`)}return n}function wt(e){if(e.meta.diagramType!==`sequence`)return[];let t=e.executions??[],n=new Map(e.edges.map(e=>[e.id,e])),r=dt(e);return t.map(i=>{let a=0,o=t.find(e=>e.id===i.parentId),s=new Set([i.id]);for(;o&&!s.has(o.id);)s.add(o.id),a++,o=t.find(e=>e.id===o.parentId);let c=e.nodes.find(e=>e.id===i.participantId),l=St(n.get(i.start.edgeId),i.start.at);return{...i,depth:a,scope:r.get(i.start.edgeId)??``,x:c.position.x+c.size.width/2-8+a*8,y:l,width:16,height:St(n.get(i.end.edgeId),i.end.at)-l}})}function Tt(e,t,n,r,i,a=``){let o=e.filter(e=>e.participantId===t);return o.find(e=>[e.start,e.end].some(e=>e.edgeId===n.id&&e.at===r))||o.filter(e=>i>=e.y&&i<=e.y+e.height&&(!e.scope||a===e.scope||a.startsWith(e.scope+`/`))).sort((e,t)=>t.depth-e.depth)[0]}let z=e=>({x:e.position.x+e.size.width/2,y:e.position.y+e.size.height/2}),Et=(e,t,n)=>X(t)?.edgeLabel?.(e,n)??e.label??``;function Dt(e,t,n){let r=Math.hypot(n.x-t.x,n.y-t.y);if(!r)return{path:``};let i=(n.x-t.x)/r,a=(n.y-t.y)/r,o=(e,n=0)=>({x:t.x+i*e-a*n,y:t.y+a*e+i*n}),s=e=>[o(e,-6),o(e,6)],c=String(e).trim(),l=/[*n]/i.test(c),u=c.startsWith(`0`)||c===`*`,d=l?[[o(0,-6),o(12)],[o(0,6),o(12)],[t,o(12)]]:[s(8)];u||d.push(s(l?21:14));let f=d.map(([e,t])=>`M${e.x} ${e.y}L${t.x} ${t.y}`).join(``),p=o(23),m=u?{cx:p.x,cy:p.y,r:4}:void 0,h=d.flat();m&&h.push({x:p.x-4,y:p.y-4},{x:p.x+4,y:p.y+4});let g=Math.min(...h.map(e=>e.x)),_=Math.min(...h.map(e=>e.y)),v={x:g,y:_,width:Math.max(...h.map(e=>e.x))-g,height:Math.max(...h.map(e=>e.y))-_};return{path:f,...m?{circle:m}:{},bounds:v}}function Ot(e,t=V(e)){e=S(e);let n=[...J(e),...e.groups??[],...e.nodes,...wt(e).map(e=>({position:{x:e.x,y:e.y},size:{width:e.width,height:e.height}}))],r=[...t.values()].flatMap(e=>[...e.points,{x:e.labelBox.x,y:e.labelBox.y},{x:e.labelBox.x+e.labelBox.width,y:e.labelBox.y+e.labelBox.height}]);for(let e of t.values())for(let t of e.endpointLabels??[])r.push({x:t.labelBox.x,y:t.labelBox.y},{x:t.labelBox.x+t.labelBox.width,y:t.labelBox.y+t.labelBox.height});if(X(e.meta?.diagramType).cardinalities)for(let n of e.edges){let e=t.get(n.id);for(let t of[Dt(n.sourceCardinality,e.points[0],e.points[1]),Dt(n.targetCardinality,e.points.at(-1),e.points.at(-2))])t.bounds&&r.push({x:t.bounds.x,y:t.bounds.y},{x:t.bounds.x+t.bounds.width,y:t.bounds.y+t.bounds.height})}let i=Math.min(...n.map(e=>e.position.x),...r.map(e=>e.x)),a=Math.min(...n.map(e=>e.position.y),...r.map(e=>e.y)),o=Math.max(...n.map(e=>e.position.x+e.size.width),...r.map(e=>e.x)),s=Math.max(...n.map(e=>e.position.y+e.size.height),...r.map(e=>e.y));return{x:i,y:a,width:o-i,height:s-a}}function B(e,t,n=0,r=`architecture`){let i=X(r)?.anchor;if(i)return i(e,t,n);let a=z(e);return t===`left`?{x:e.position.x,y:a.y+n}:t===`right`?{x:e.position.x+e.size.width,y:a.y+n}:t===`top`?{x:a.x+n,y:e.position.y}:{x:a.x+n,y:e.position.y+e.size.height}}function kt(e,t,n=d.endpoint){return t===`left`?{x:e.x-n,y:e.y}:t===`right`?{x:e.x+n,y:e.y}:t===`top`?{x:e.x,y:e.y-n}:{x:e.x,y:e.y+n}}function At(e){let t=[];for(let n of e){let e=t.at(-1);(!e||e.x!==n.x||e.y!==n.y)&&t.push(n)}for(let e=1;e<t.length-1;){let[n,r,i]=t.slice(e-1,e+2),a=n.x===r.x&&r.x===i.x&&(r.y-n.y)*(i.y-r.y)>=0,o=n.y===r.y&&r.y===i.y&&(r.x-n.x)*(i.x-r.x)>=0;a||o?t.splice(e,1):e+=1}return t}function jt(e,t){let n=e.at(-1);n.x!==t.x&&n.y!==t.y&&e.push({x:t.x,y:n.y}),e.push(t)}function Mt(e){let t={length:-1,point:e[0]};for(let n=1;n<e.length;n+=1){let r=e[n-1],i=e[n],a=Math.abs(i.x-r.x)+Math.abs(i.y-r.y);a>t.length&&(t={length:a,point:{x:(r.x+i.x)/2,y:(r.y+i.y)/2}})}return t.point}function Nt(e,t,n,r){let i={clearance:-1,length:-1,point:Mt(e)};for(let a=1;a<e.length;a+=1){let o=e[a-1],s=e[a],c={x:(o.x+s.x)/2,y:(o.y+s.y)/2},l={x:c.x-t.width/2,y:c.y-t.height/2,...t},u=Math.min(Ut(l,{...n.position,...n.size}),Ut(l,{...r.position,...r.size})),d=Math.abs(s.x-o.x)+Math.abs(s.y-o.y);(u>i.clearance||u===i.clearance&&d>i.length)&&(i={clearance:u,length:d,point:c})}return i.point}function Pt(e,t){let n=z(e),r=z(t),i=r.x-n.x,a=r.y-n.y;return Math.abs(a)>Math.abs(i)?{orientation:`vertical`,sourceSide:a>=0?`bottom`:`top`,targetSide:a>=0?`top`:`bottom`}:{orientation:`horizontal`,sourceSide:i>=0?`right`:`left`,targetSide:i>=0?`left`:`right`}}function Ft(e,t,n,r){let{x:i,y:a,width:o,height:s}=r===`usecase`&&e.kind===`actor`?W(e,r):{...e.position,...e.size},c=Math.max(i-t.x,0,t.x-i-o),l=Math.max(a-t.y,0,t.y-a-s),u=c===0&&l===0?n:c>l?t.x<i?`left`:`right`:t.y<a?`top`:`bottom`,f=u===`left`||u===`right`,p=z(e),m=Math.max(0,(f?s:o)/2-d.endpoint),h=Math.max(-m,Math.min(m,f?t.y-p.y:t.x-p.x));return{side:u,point:B(e,u,[`decision`,`choice`].includes(e.kind)?0:h,r)}}function It(e,t,n,r,i,a=d.endpoint){let o=e.y===t.y,s=e.x===t.x,c={left:`right`,right:`left`,top:`bottom`,bottom:`top`},l={left:-1,right:1,top:-1,bottom:1},u=o?`x`:`y`,f=o?`y`:`x`;if((o&&[`left`,`right`].includes(n)||s&&[`top`,`bottom`].includes(n))&&c[n]===r&&(t[u]-e[u])*l[n]>0&&i.every((r,a)=>r[f]===e[f]&&(r[u]-(a?i[a-1][u]:e[u]))*l[n]>=0&&(t[u]-r[u])*l[n]>=0))return[e,t];let p=[e,kt(e,n,a)];[`left`,`right`].includes(n)&&i.length&&p[1].y!==i[0].y&&p.push({x:p[1].x,y:i[0].y});for(let e of i)jt(p,e);return jt(p,kt(t,r,a)),p.push(t),At(p)}function Lt(e,t,n,r,i,a=d.endpoint,o=`architecture`){let s=B(e,n.sourceSide,r,o),c=B(t,n.targetSide,i,o),l=kt(s,n.sourceSide,a),u=kt(c,n.targetSide,a),f=r||i;if(n.orientation===`horizontal`){let e=(l.x+u.x)/2+f;return At([s,l,{x:e,y:l.y},{x:e,y:u.y},u,c])}let p=(l.y+u.y)/2+f;return At([s,l,{x:l.x,y:p},{x:u.x,y:p},u,c])}function Rt(e,t=0,n=0){if(!e.length)return``;let r=e.map(e=>({x:e.x+t,y:e.y+n}));return r.slice(1).reduce((e,t,n)=>{let i=r[n];return i.y===t.y?`${e} H ${t.x}`:i.x===t.x?`${e} V ${t.y}`:`${e} L ${t.x} ${t.y}`},`M ${r[0].x} ${r[0].y}`)}function zt(e,t,n){if(e.sourceSide!==e.targetSide)return null;let[r,...i]=e.points.map(e=>({x:e.x+t,y:e.y+n})),a=i.at(-1),[o,s]={right:[1,0],left:[-1,0],top:[0,-1],bottom:[0,1]}[e.sourceSide]??[1,0],[c,l]=[-s,o],u=Math.max(...i.map(e=>(e.x-r.x)*o+(e.y-r.y)*s))*4/3,d=(a.x-r.x)*c+(a.y-r.y)*l,f=Math.abs(d)*.35,p=Math.sign(d);if(!(u>0)||Math.abs(d)<1)return null;let m={x:r.x+o*u-c*p*f,y:r.y+s*u-l*p*f},h={x:a.x+o*u+c*p*f,y:a.y+s*u+l*p*f};return`M ${r.x} ${r.y} C ${m.x} ${m.y} ${h.x} ${h.y} ${a.x} ${a.y}`}let Bt=(e,t=0,n=0)=>e.curved&&zt(e,t,n)||Rt(e.points,t,n);function Vt(e,t,n,r,i){let{graph:a,executions:o,scopes:s,pairs:c}=i,l=St(e,`send`),u=St(e,`receive`),p=Tt(o,t.id,e,`send`,l,s.get(e.id)),m=Tt(o,n.id,e,`receive`,u,s.get(e.id)),h=t.id===n.id||z(t).x<=z(n).x,g=p?p.x+(h?p.width:0):z(t).x,_=m?m.x+(t.id===n.id||!h?m.width:0):z(n).x,v=bt(a,e,c,s),y=Ee(v,t.id===n.id?f.labelWidth:Math.min(f.labelWidth,Math.max(1,Math.abs(_-g)-32-12))),b={width:y.width,height:y.height};if(t.id===n.id){let t=48+r*d.parallelGap,n={x:g,y:l},i={x:_,y:u},a=e.route?.via?.length?It(n,i,`right`,`right`,e.route.via):[n,{x:g+t,y:l},{x:g+t,y:l+30},i];return{points:a,label:v,labelLines:y.lines,labelSize:b,labelPoint:e.route?.labelAt??{x:Math.max(...a.map(e=>e.x))+8+b.width/2,y:l+15},sourceSide:`right`,targetSide:`right`}}return{points:e.route?.via?.length?It({x:g,y:l},{x:_,y:l},g<=_?`right`:`left`,g<=_?`left`:`right`,e.route.via):[{x:g,y:l},{x:_,y:l}],label:v,labelLines:y.lines,labelSize:b,labelPoint:e.route?.labelAt??{x:(g+_)/2,y:l-6-b.height/2},sourceSide:g<=_?`right`:`left`,targetSide:g<=_?`left`:`right`}}function V(e){e=S(e);let t=Y(e),r=X(t).endpointStub??d.endpoint,i=new Map(e.nodes.map(e=>[e.id,e])),a=e.edges.map(e=>{let t=i.get(e.source),n=i.get(e.target);return{edge:e,source:t,target:n,self:t.id===n.id,...Pt(t,n)}}),o=t===`sequence`?{graph:e,executions:wt(e),scopes:dt(e),pairs:yt(e)}:null,s=new Map;for(let e of a.filter(e=>!X(t).sequence&&!e.self&&!e.edge.route?.via?.length))for(let[t,n,r,i]of[[`source`,e.source,e.sourceSide,e.target],[`target`,e.target,e.targetSide,e.source]]){let a=`${n.id}:${r}`,o=e.orientation===`horizontal`?z(i).y:z(i).x;s.has(a)||s.set(a,[]),s.get(a).push({id:e.edge.id,role:t,coordinate:o})}let c=new Map;for(let e of s.values())e.sort((e,t)=>e.coordinate-t.coordinate||e.id.localeCompare(t.id)||e.role.localeCompare(t.role)),e.forEach((t,n)=>c.set(`${t.id}:${t.role}`,(n-(e.length-1)/2)*d.parallelGap));let l=new Map,u=new Map;for(let e of a.filter(e=>e.self).sort((e,t)=>(e.edge.order??0)-(t.edge.order??0)||(e.edge.id<t.edge.id?-1:1))){let t=l.get(e.source.id)??0;u.set(e.edge.id,t),l.set(e.source.id,t+1)}let f=new Map;for(let i of a){let a;if(X(t).sequence){let e=u.get(i.edge.id)??0;a=Vt(i.edge,i.source,i.target,e,o)}else if(i.self){let o=u.get(i.edge.id),s=i.source.position.x+i.source.size.width,c=z(i.source).y,l=48+o*d.parallelGap,f=Et(i.edge,t,e.meta?.locale),p=j(f),m=i.edge.route?.via,h=m?.length&&Ft(i.source,m[0],`right`,t),g=m?.length&&Ft(i.target,m.at(-1),`right`,t),_=h?h.side:`right`,v=g?g.side:`right`,y=h?h.point:B(i.source,`right`,-16-o*12,t),b=g?g.point:B(i.source,`right`,16+o*12,t);a={points:i.edge.route?.via?.length?It(y,b,_,v,i.edge.route.via,r):[y,{x:s+l,y:y.y},{x:s+l,y:b.y},b],label:f,labelPoint:i.edge.route?.labelAt??{x:s+l+8+p.width/2,y:c},sourceSide:_,targetSide:v,curved:!!X(t).curvedSelfLoops&&!n(e)}}else{let n=i.edge.route?.via,o=n?.length&&Ft(i.source,n[0],i.sourceSide,t),s=n?.length&&Ft(i.target,n.at(-1),i.targetSide,t),l=o?o.side:i.sourceSide,u=s?s.side:i.targetSide,d=n?[...n]:[];o&&[`decision`,`choice`].includes(i.source.kind)&&[`left`,`right`].includes(l)&&d.unshift({x:kt(o.point,l,r).x,y:n[0].y}),s&&[`decision`,`choice`].includes(i.target.kind)&&[`top`,`bottom`].includes(u)&&d.push({x:n.at(-1).x,y:kt(s.point,u,r).y});let f=i.edge.route?.via?.length?It(o.point,s.point,l,u,d,r):Lt(i.source,i.target,i,c.get(`${i.edge.id}:source`)??0,c.get(`${i.edge.id}:target`)??0,r,t),p=Et(i.edge,t,e.meta?.locale);a={points:f,label:p,labelPoint:i.edge.route?.labelAt??Nt(f,j(p),i.source,i.target),sourceSide:l,targetSide:u}}let s=a.labelSize??j(a.label),l=a.labelLines??Ee(a.label).lines,p=X(t).edgeLabelParts?.(i.edge);f.set(i.edge.id,{...a,endpointLabels:X(t).endpointLabels?.(i.edge,a.points)??[],labelLines:l,...p?{labelRuns:De(l,p)??void 0}:{},path:Bt(a),labelBox:{x:a.labelPoint.x-s.width/2,y:a.labelPoint.y-s.height/2,...s}})}return f}function Ht(e,t,n=0){return e.x<t.x+t.width+n&&e.x+e.width>t.x-n&&e.y<t.y+t.height+n&&e.y+e.height>t.y-n}function H(e,t){return X(t).sequence?{...e.position,width:e.size.width,height:Math.min(e.size.height,He(e))}:{...e.position,...e.size}}function Ut(e,t){let n=Math.max(e.x-t.x-t.width,t.x-e.x-e.width,0),r=Math.max(e.y-t.y-t.height,t.y-e.y-e.height,0);return Math.hypot(n,r)}function Wt(e,t,n,r){let i=W(t,r);if((n===`left`||n===`right`)&&(e.y<i.y||e.y>i.y+i.height)||(n===`top`||n===`bottom`)&&(e.x<i.x||e.x>i.x+i.width))return!1;let a=z(t),o=B(t,n,n===`left`||n===`right`?e.y-a.y:e.x-a.x,r);return Math.hypot(e.x-o.x,e.y-o.y)<1e-7}function U(e,t,n){return e.y===t.y?e.y>n.y&&e.y<n.y+n.height&&Math.max(Math.min(e.x,t.x),n.x)<Math.min(Math.max(e.x,t.x),n.x+n.width):e.x===t.x&&e.x>n.x&&e.x<n.x+n.width&&Math.max(Math.min(e.y,t.y),n.y)<Math.min(Math.max(e.y,t.y),n.y+n.height)}function W(e,t){if(t===`state`&&[`initial`,`final`].includes(e.kind)){let t=e.kind===`initial`?12:13,n=z(e);return{x:e.position.x+Ze(e)-t,y:n.y-t,width:t*2,height:t*2}}if(t===`usecase`&&e.kind===`actor`){let t=Ge(e);return{x:z(e).x-20,y:e.position.y+t+2,width:40,height:74}}return t===`deployment`&&e.kind===`device`?{x:e.position.x+16,y:e.position.y,width:e.size.width-32,height:e.size.height}:[`architecture`,`deployment`].includes(t)&&e.kind===`database`?{x:e.position.x+12,y:e.position.y+2,width:e.size.width-24,height:e.size.height-4}:H(e,t)}function Gt(e,t,n,r){if(r===`state`&&[`initial`,`final`].includes(n.kind)&&n.subtitle){let i=X(r).textArea(n);if(U(e,t,{...i,x:n.position.x+i.x,y:n.position.y+i.y}))return!0}let i=W(n,r);if(r===`sequence`)return U(e,t,i);if(r===`usecase`&&n.kind===`actor`){let r=n.position.y+Ge(n),a=z(n).x,o=Math.min(n.size.width,k(n.label,1/0,20).width*1.15),s=n.subtitle?Math.min(n.size.width,k(n.subtitle,1/0,16).width*1.15):0;return U(e,t,i)||U(e,t,{x:a-o/2,y:r+78,width:o,height:26})||s>0&&U(e,t,{x:a-s/2,y:r+106,width:s,height:24})}let a=z(n);if(e.y===t.y){if(e.y<=i.y||e.y>=i.y+i.height)return!1;let o=e.y-a.y,s=B(n,`left`,o,r).x,c=B(n,`right`,o,r).x;return Math.max(Math.min(e.x,t.x),s)<Math.min(Math.max(e.x,t.x),c)-1e-7}if(e.x===t.x){if(e.x<=i.x||e.x>=i.x+i.width)return!1;let o=e.x-a.x,s=B(n,`top`,o,r).y,c=B(n,`bottom`,o,r).y;return Math.max(Math.min(e.y,t.y),s)<Math.min(Math.max(e.y,t.y),c)-1e-7}return!1}function Kt(e){let t=e.position.x,n=t+e.size.width,r=e.position.y,i=r+e.size.height;return[[{x:t,y:r},{x:n,y:r}],[{x:n,y:r},{x:n,y:i}],[{x:t,y:i},{x:n,y:i}],[{x:t,y:r},{x:t,y:i}]]}function qt(e){let t=[`alt`,`opt`,`loop`,`par`].includes(e.kind),n=Oe(e),r=t?ht(e):null,i=Math.min(t?Math.max(36,r.height+20):n.height,e.size.height),a=Math.min(e.size.width,(t?r.width:n.width)+32),o=[{x:e.position.x,y:e.position.y,width:a,height:i}];return[`alt`,`opt`,`loop`].includes(e.kind)&&o.push({x:e.position.x+e.size.width-52,y:e.position.y,width:52,height:i}),o}function Jt(e,t,n,r){return e.y===t.y&&n.y===r.y&&e.y===n.y?Math.max(0,Math.min(Math.max(e.x,t.x),Math.max(n.x,r.x))-Math.max(Math.min(e.x,t.x),Math.min(n.x,r.x))):e.x===t.x&&n.x===r.x&&e.x===n.x?Math.max(0,Math.min(Math.max(e.y,t.y),Math.max(n.y,r.y))-Math.max(Math.min(e.y,t.y),Math.min(n.y,r.y))):0}function Yt(e,t,n,r){let i=new Map,a=(e,t)=>[{id:e.source,point:t[0]},{id:e.target,point:t.at(-1)}],o=(e,t)=>Math.hypot(e.x-t.x,e.y-t.y)<.001;for(let s=1;s<t.length;s++)for(let c=1;c<r.length;c++){let l=t[s-1],u=t[s],d=r[c-1],f=r[c],p=u.x-l.x,m=u.y-l.y,h=f.x-d.x,g=f.y-d.y,_=p*g-m*h;if(Math.abs(_)<1e-8)continue;let v=((d.x-l.x)*g-(d.y-l.y)*h)/_,y=((d.x-l.x)*m-(d.y-l.y)*p)/_;if(v<0||v>1||y<0||y>1)continue;let b={x:+(l.x+v*p).toFixed(3),y:+(l.y+v*m).toFixed(3)};a(e,t).some(e=>a(n,r).some(t=>e.id===t.id&&o(e.point,b)&&o(t.point,b)))||i.set(`${b.x},${b.y}`,b)}return[...i.values()].sort((e,t)=>e.x-t.x||e.y-t.y)}function Xt(e){e=S(e);let t=Y(e),n=[],r=V(e),i=[],a=[],o=[],s=new Map([...e.nodes,...e.groups??[],...wt(e)].map(e=>[e.id,e])),c=(e,n,a)=>{i.push(a);let c=n.flatMap(e=>{let t=s.get(e);if(t)return[t.position?{...t.position,...t.size}:{x:t.x,y:t.y,width:t.width,height:t.height}];let n=r.get(e);return n?n.points.map(e=>({...e,width:0,height:0})):[]});o.push({ruleId:e,severity:`error`,diagramType:t,elementIds:n,bounds:c,measured:a,required:`clear full-size geometry`,remediation:a.includes(`;`)?a.split(`;`).slice(1).join(`;`).trim():`Adjust the identified elements while preserving the complete model.`})};if(t===`sequence`){for(let t of e.nodes)t.size.height<He(t)&&c(`sequence.header`,[t.id],`layout: sequence node ${t.id} is shorter than its visible header`);for(let t of e.groups??[]){let n=vt(t,r,e.meta.locale,e.groups??[],wt(e));for(let e of n.errors)c(`sequence.fragment`,[t.id],e);a.push(...n.warnings)}let t=wt(e);for(let n of e.edges){let i=r.get(n.id);for(let e of t)lt(i.labelBox,e,2)&&c(`sequence.label-execution`,[n.id,e.id],`layout: edge ${n.id} label overlaps execution ${e.id}`);for(let t of e.edges)ut(r.get(t.id)).some(e=>lt(i.labelBox,e))&&c(`sequence.message-clearance`,[n.id,t.id],`layout: sequence edge ${n.id} label needs 6px clearance from message ${t.id}; shorten the label or adjust participant spacing/route hints`);i.points.some(t=>t.y>Math.min(...[n.source,n.target].map(t=>{let n=e.nodes.find(e=>e.id===t);return n.position.y+n.size.height})))&&c(`sequence.lifeline`,[n.id,n.source,n.target],`layout: sequence edge ${n.id} exceeds its participant lifeline`)}}let l=X(t).cardLayout&&!Pr(e);if(X(t).cardLayout)for(let n of e.nodes){if(n.size.height<(l?100:A.minHeight))continue;let{minHeight:r}=t===`architecture`&&In(n)?Rn(n):Te(n,e.meta.locale,l);n.size.height<r&&c(`text.card-height`,[n.id],`layout: node ${n.id} text needs at least ${r}px height at 20/16px; enlarge the node and check its route clearance`)}for(let n=0;n<e.nodes.length;n+=1)for(let r=n+1;r<e.nodes.length;r+=1){let i=e.nodes[n],a=e.nodes[r];Ht(H(i,t),H(a,t))&&c(`shape.node-overlap`,[i.id,a.id],`layout: nodes ${i.id} and ${a.id} overlap`)}let u=e.edges.filter(e=>r.get(e.id).label);for(let e=0;e<u.length;e+=1)for(let t=e+1;t<u.length;t+=1){let n=u[e],i=u[t];Ht(r.get(n.id).labelBox,r.get(i.id).labelBox)&&c(`label.overlap`,[n.id,i.id],`layout: edge labels ${n.id} and ${i.id} overlap`)}for(let i=0;i<e.edges.length;i+=1)for(let a=i+1;a<e.edges.length;a+=1){let o=e.edges[i],s=e.edges[a],l=r.get(o.id).points,u=r.get(s.id).points,f=0;for(let e=1;e<l.length;e+=1)for(let t=1;t<u.length;t+=1)f=Math.max(f,Jt(l[e-1],l[e],u[t-1],u[t]));f>d.endpoint&&c(`route.shared-segment`,[o.id,s.id],`layout: edges ${o.id} and ${s.id} share a route segment longer than ${d.endpoint}px`);let p=Yt(o,l,s,u);p.length&&n.push({ruleId:`route.point-crossing`,severity:`info`,diagramType:t,elementIds:[o.id,s.id].sort(),measured:p.length,required:null,bounds:p.map(e=>({...e,width:0,height:0})),repeated:Math.max(0,p.length-1),remediation:`Keep each relation traceable; prefer fewer repeated crossings without overlapping channels.`})}for(let n of e.edges){let i=r.get(n.id),a=e.nodes.find(e=>e.id===n.source),o=e.nodes.find(e=>e.id===n.target);if(!X(t).sequence&&(!Wt(i.points[0],a,i.sourceSide,t)||!Wt(i.points.at(-1),o,i.targetSide,t))&&c(`route.anchor`,[n.id,n.source,n.target],`layout: edge ${n.id} exceeds an endpoint side; enlarge the node or add route hints`),X(t).cardinalities){let r=X(t).endpointStub;for(let[t,a,o,s,l,u]of[[`source`,i.points[0],i.points[1],i.sourceSide,n.sourceCardinality,n.route?.via?.[0]],[`target`,i.points.at(-1),i.points.at(-2),i.targetSide,n.targetCardinality,n.route?.via?.at(-1)]]){let i=kt(a,s,1),d=e=>(e.x-a.x)*(i.x-a.x)+(e.y-a.y)*(i.y-a.y);(d(o)<r||u&&d(u)<r)&&c(`route.er-stub`,[n.id],`layout: ER edge ${n.id} ${t} needs a ${r}px outward straight segment; move the route hint or enlarge the gap`);let f=Dt(l,a,o);for(let r of e.nodes)f.bounds&&Ht(f.bounds,{...r.position,...r.size})&&c(`marker.er-node`,[n.id,r.id],`layout: ER edge ${n.id} ${t} cardinality overlaps node ${r.id}`)}i.points.slice(1,-1).some((e,t)=>{let n=i.points[t],r=i.points[t+2];return n.x===e.x&&e.x===r.x&&(e.y-n.y)*(r.y-e.y)<0||n.y===e.y&&e.y===r.y&&(e.x-n.x)*(r.x-e.x)<0})&&c(`route.er-reversal`,[n.id],`layout: ER edge ${n.id} reverses within its route; reserve ${r}px endpoint segments or move the route hints`)}if(X(t).sequence&&n.source!==n.target){let e=Math.abs(z(a).x-z(o).x),t=Math.max(160,i.labelBox.width+32);e<t&&c(`sequence.participant-gap`,[n.id,n.source,n.target],`layout: sequence edge ${n.id} needs ${Math.ceil(t)}px between participants; found ${Math.round(e)}px`)}for(let r of e.nodes)for(let e=1;e<i.points.length;e+=1)if(!(r.id===n.source&&e===1||r.id===n.target&&e===i.points.length-1)&&Gt(i.points[e-1],i.points[e],r,t)){let e=n.source===n.target&&r.id===n.source?`self-loop`:`edge`;c(`route.node-obstacle`,[n.id,r.id],`layout: ${e} ${n.id} crosses node ${r.id}`);break}if(i.label){for(let t of e.groups??[])qt(t).some(e=>Ht(i.labelBox,e))&&c(`label.group-heading`,[n.id,t.id],`layout: edge ${n.id} label overlaps group ${t.id} heading`),Kt(t).some(([e,t])=>U(e,t,i.labelBox))&&c(`label.group-boundary`,[n.id,t.id],`layout: edge ${n.id} label overlaps group ${t.id} boundary`);for(let r of e.nodes)Ht(i.labelBox,W(r,t))&&c(`label.node`,[n.id,r.id],`layout: edge ${n.id} label overlaps node ${r.id}`)}}for(let t of e.edges){let n=r.get(t.id);for(let r of e.groups??[]){let e=Kt(r);for(let i=1;i<n.points.length;i+=1){let a=n.points[i-1],o=n.points[i];qt(r).some(e=>U(a,o,e))&&c(`route.group-heading`,[t.id,r.id],`layout: edge ${t.id} crosses group ${r.id} heading`),e.some(([e,t])=>Jt(a,o,e,t)>d.endpoint)&&c(`route.group-boundary`,[t.id,r.id],`layout: edge ${t.id} overlaps group ${r.id} boundary`)}}}return{errors:[...new Set(i)],warnings:[...new Set(a)],routes:r,crossings:n,diagnostics:o}}let Zt=e=>({node:c(e)?6:12,preferred:c(e)?8:24,boundary:6}),Qt=(e,t,n)=>Math.max(t,Math.min(n,e)),$t=(e,t,n)=>{let r=n.x-t.x,i=n.y-t.y,a=Qt(((e.x-t.x)*r+(e.y-t.y)*i)/(r*r+i*i||1),0,1);return Math.hypot(e.x-t.x-a*r,e.y-t.y-a*i)};function en(e,t,n,r){let i=(e,t,n)=>(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x);return i(e,t,n)*i(e,t,r)<=0&&i(n,r,e)*i(n,r,t)<=0&&Math.max(Math.min(e.x,t.x),Math.min(n.x,r.x))<=Math.min(Math.max(e.x,t.x),Math.max(n.x,r.x))&&Math.max(Math.min(e.y,t.y),Math.min(n.y,r.y))<=Math.min(Math.max(e.y,t.y),Math.max(n.y,r.y))?0:Math.min($t(e,n,r),$t(t,n,r),$t(n,e,t),$t(r,e,t))}function tn(e,t,n){return Math.hypot(Math.max(n.x-Math.max(e.x,t.x),Math.min(e.x,t.x)-n.x-n.width,0),Math.max(n.y-Math.max(e.y,t.y),Math.min(e.y,t.y)-n.y-n.height,0))}function nn(e,t,n){let r=e=>{let t=Math.abs(e.x-n.cx),r=Math.abs(e.y-n.cy);if((t/n.rx)**2+(r/n.ry)**2<=1+1e-12)return 0;if(t===0)return Math.max(0,r-n.ry);if(r===0)return Math.max(0,t-n.rx);let i=e=>Math.hypot(t-n.rx*Math.cos(e),r-n.ry*Math.sin(e)),a=0,o=Math.PI/2;for(let e=0;e<32;e++){let e=a+(o-a)/3,t=o-(o-a)/3;i(e)<i(t)?o=t:a=e}return Math.min(i(0),i(Math.PI/2),i((a+o)/2))},i=e.y===t.y,a=i?e.y-n.cy:e.x-n.cx,o=i?n.ry:n.rx,s=i?n.rx:n.ry,c=i?n.cx:n.cy,l=Math.min(i?e.x:e.y,i?t.x:t.y),u=Math.max(i?e.x:e.y,i?t.x:t.y);if(Math.abs(a)<=o){let e=s*Math.sqrt(1-(a/o)**2);if(l<=c+e&&u>=c-e)return 0}if(l<=c&&u>=c)return Math.max(0,Math.abs(a)-o);let d=r(e);return d===0?0:Math.min(d,r(t))}function rn(e,t,n){let r=n.position.x+12,i=n.position.x+n.size.width-12,a=n.position.y+2,o=n.position.y+n.size.height-2,s=(i-r)/2,c=(r+i)/2,l=e=>{if(e.x<r||e.x>i)return!1;let t=5*(1-Math.sqrt(Math.min(e.x-r,i-e.x)/s))**2;return e.y>=a+t&&e.y<=o-t};if(l(e)||l(t)||l({x:Qt(c,Math.min(e.x,t.x),Math.max(e.x,t.x)),y:Qt((a+o)/2,Math.min(e.y,t.y),Math.max(e.y,t.y))}))return 0;let u=(n,r,i,a)=>{let o=o=>$t({x:n+i*s*o*o,y:r+a*5*(1-o)**2},e,t),c=0,l=1;for(let e=0;e<32;e++){let e=c+(l-c)/3,t=l-(l-c)/3;o(e)<o(t)?l=t:c=e}return Math.min(o(0),o(1),o((c+l)/2))};return Math.min(tn(e,t,{x:r,y:a+5,width:i-r,height:o-a-10}),u(r,a,1,1),u(i,a,-1,1),u(r,o,1,-1),u(i,o,-1,-1))}function an(e,t,n){let r=e=>{let t=!1;for(let r=0,i=n.length-1;r<n.length;i=r++){let a=n[r],o=n[i];a.y>e.y!=o.y>e.y&&e.x<(o.x-a.x)*(e.y-a.y)/(o.y-a.y)+a.x&&(t=!t)}return t};return r(e)||r(t)?0:Math.min(...n.map((r,i)=>en(e,t,r,n[(i+1)%n.length])))}let on=new WeakMap;function sn(e,t){let n=JSON.stringify([t,e.position,e.size,e.kind,e.label,e.subtitle,e.overviewText,e.badges,e.overviewTone]),r=on.get(e);if(r?.signature===n)return r.probe;let i=X(t),{x:a,y:o}=e.position,[s,c]=(i.outline?.(e,a,o)??[])[0]??[],l;if(t===`usecase`&&e.kind===`actor`){let t=o+Ge(e),n=a+e.size.width/2,r=[[{x:n,y:t+24},{x:n,y:t+53}],[{x:n-20,y:t+35},{x:n+20,y:t+35}],[{x:n,y:t+53},{x:n-17,y:t+76}],[{x:n,y:t+53},{x:n+17,y:t+76}]],i=[[e.label,20,t+78,26],...e.subtitle?[[e.subtitle,16,t+106,24]]:[]].map(([t,r,i,a])=>{let o=Math.min(e.size.width,k(t,1/0,r).width*1.15);return{x:n-o/2,y:i,width:o,height:a}});l=(e,a)=>Math.min(Math.max(0,$t({x:n,y:t+13},e,a)-11),...r.map(([t,n])=>en(e,a,t,n)),...i.map(t=>tn(e,a,t)))}else if(s===`path`&&[`architecture`,`deployment`].includes(t)&&e.kind===`database`)l=(t,n)=>rn(t,n,e);else if(s===`polygon`){let e=c.points.split(/\\s+/).map(e=>{let[t,n]=e.split(`,`).map(Number);return{x:t,y:n}});l=(t,n)=>an(t,n,e)}else if(s===`circle`)l=(e,t)=>Math.max(0,$t({x:c.cx,y:c.cy},e,t)-c.r);else if(s===`ellipse`)l=(e,t)=>nn(e,t,c);else{let n=s===`rect`?c:W(e,t),r=s===`rect`?Math.min(c.rx??0,n.width/2,n.height/2):0,i={x:n.x+r,y:n.y+r,width:n.width-2*r,height:n.height-2*r};l=(e,t)=>Math.max(0,tn(e,t,i)-r)}if(t===`state`&&[`initial`,`final`].includes(e.kind)&&e.subtitle){let t=l,n=i.textArea(e),r={...n,x:a+n.x,y:o+n.y};l=(e,n)=>Math.min(t(e,n),tn(e,n,r))}let u=l,d=new Map;return l=(e,t)=>{if(e.x!==t.x||e.y!==t.y)return u(e,t);let n=e.x+`,`+e.y;if(d.has(n))return d.get(n);let r=u(e,t);return d.size<1024&&d.set(n,r),r},on.set(e,{signature:n,probe:l}),l}function cn(e,t,n){let r=e.y===t.y,i=r?`x`:`y`,a=r?`y`:`x`;return Kt(n).filter(([e,t])=>r===(e.y===t.y)).map(([n,r])=>({distance:Math.abs(e[a]-n[a]),length:Math.max(0,Math.min(Math.max(e[i],t[i]),Math.max(n[i],r[i]))-Math.max(Math.min(e[i],t[i]),Math.min(n[i],r[i])))})).filter(e=>e.length>.001).sort((e,t)=>e.distance-t.distance)[0]??{distance:1/0,length:0}}function ln(e,t,n,r=[],i=[]){let a=Y(e),o=Zt(e),s=e.nodes.map(e=>({node:e,probe:sn(e,a),bounds:W(e,a),terminals:[...e.id===t?r:[],...e.id===n?i:[]]}));return(t,n)=>s.some(({node:e,probe:r,bounds:i,terminals:s})=>{if(tn(t,n,i)>=o.node&&(a!==`usecase`||e.kind!==`actor`)&&!(a===`state`&&e.subtitle))return!1;let c=e=>s.some(t=>Math.abs(t.x-e.x)<.001&&Math.abs(t.y-e.y)<.001);return c(t)&&r(n,n)+.001>=o.node||c(n)&&r(t,t)+.001>=o.node?!1:r(t,n)+.001<o.node})||(e.groups??[]).some(e=>cn(t,n,e).distance+.001<o.boundary)}function un(e,t,n=[]){let r=new Set(n),i=Y(t),a=Zt(t).node,o=t.nodes.filter(t=>JSON.stringify(t)!==JSON.stringify(e.nodes.find(e=>e.id===t.id))),s=new Set(o.map(e=>e.id)),c=o.map(e=>{let t=H(e,i);return{x:t.x-a,y:t.y-a,width:t.width+2*a,height:t.height+2*a}}),l=(t.groups??[]).filter(t=>JSON.stringify(t)!==JSON.stringify(e.groups?.find(e=>e.id===t.id))),u=V(e),d=h(X(i)).labelGap,f=[...o.map(e=>H(e,i)),...l.flatMap(qt)],p=(e,t)=>Math.hypot(Math.max(e.x-t.x-t.width,t.x-e.x-e.width,0),Math.max(e.y-t.y-t.height,t.y-e.y-e.height,0));for(let n of t.edges){let i=e.edges.find(e=>e.id===n.id),a=u.get(n.id);(s.has(n.source)||s.has(n.target)||JSON.stringify(n)!==JSON.stringify(i)||a&&[...a.label?[a.labelBox]:[],...(a.endpointLabels??[]).map(e=>e.labelBox)].some(e=>f.some(t=>p(e,t)<d))||a?.points.slice(1).some((e,n)=>{let r=a.points[n];return c.some(t=>U(r,e,t))||l.some(n=>cn(r,e,n).distance<Zt(t).boundary||qt(n).some(t=>U(r,e,t)))}))&&r.add(n.id)}return r}let dn=[`top`,`right`,`bottom`,`left`],G={top:[0,-1],right:[1,0],bottom:[0,1],left:[-1,0]},K=(e,t)=>Math.abs(e.x-t.x)+Math.abs(e.y-t.y),fn=e=>({...e.position,...e.size}),pn=(e,t)=>({x:e.x-t,y:e.y-t,width:e.width+t*2,height:e.height+t*2}),mn=(e,t)=>e.x<t.x+t.width&&t.x<e.x+e.width&&e.y<t.y+t.height&&t.y<e.y+e.height,q=e=>e.slice(1).map((t,n)=>[e[n],t]),hn=e=>e.x+`,`+e.y,gn=(e,t)=>e.id<t.id?-1:+(e.id>t.id);var _n=class{items=[];less(e,t){return e.priority<t.priority||e.priority===t.priority&&e.serial<t.serial}push(e){let t=this.items;t.push(e);let n=t.length-1;for(;n;){let e=n-1>>1;if(!this.less(t[n],t[e]))break;[t[n],t[e]]=[t[e],t[n]],n=e}}pop(){let e=this.items,t=e[0],n=e.pop();if(e.length){e[0]=n;let t=0;for(;;){let n=t,r=t*2+1;for(let t of[r,r+1])t<e.length&&this.less(e[t],e[n])&&(n=t);if(n===t)break;[e[t],e[n]]=[e[n],e[t]],t=n}}return t}};function vn(e){let t=[];for(let n of e)(!t.length||K(n,t.at(-1)))&&t.push(n);for(let e=1;e<t.length-1;){let[n,r,i]=t.slice(e-1,e+2);n.x===r.x&&r.x===i.x&&(r.y-n.y)*(i.y-r.y)>=0||n.y===r.y&&r.y===i.y&&(r.x-n.x)*(i.x-r.x)>=0?t.splice(e,1):e++}return t}function yn(e,t,n=32){let r=vn(e),i=t(r),a=0,o=!0;for(;o&&a<n;){o=!1;search:for(let e=1;e<r.length-2;e++)for(let s=r.length-2;s>e+1;s--){let c=r[e],l=r[s];for(let u of[[{x:l.x,y:c.y}],[{x:c.x,y:l.y}]]){if(a++>=n)break search;let c=vn([...r.slice(0,e+1),...u,...r.slice(s)]),l=t(c);if(l<i-.001){r=c,i=l,o=!0;break search}}}}return r}function bn(e){let t={...h(X(Y(e))),preferredClearance:Zt(e).preferred},n=Math.sqrt(e.nodes.reduce((t,n)=>{let r=H(n,Y(e));return t+r.width*r.height},0)/Math.max(1,e.nodes.length)),r=i.crossings*n,a=i.bends*n;return c(e)?{...t,labelGap:6,parallelGap:8,nodeGap:14,crossingCost:r,bendCost:a}:{...t,crossingCost:r,bendCost:a}}function xn(e,t,n,r,i,a,o){let s=n===`top`||n===`bottom`,c=s?`x`:`y`,l=s?`width`:`height`,u=W(e,r),d=e.position[c]+e.size[l]/2,f=u[c]+u[l]/2,p=Math.max(0,u[l]/2-20),m=t.position[s?`x`:`y`]+t.size[s?`width`:`height`]/2-f,h=a.edges.filter(t=>t.source===e.id||t.target===e.id).map(t=>({edge:t,target:a.nodes.find(n=>n.id===(t.source===e.id?t.target:t.source))})).filter(t=>t.target.id!==e.id);h.sort((e,t)=>e.target.position[c]+e.target.size[l]/2-t.target.position[c]-t.target.size[l]/2||gn(e.edge,t.edge));let g=h.findIndex(e=>e.edge.id===o?.id),_=g<0?0:(g-(h.length-1)/2)*i.parallelGap,v=[`decision`,`choice`].includes(e.kind)?[0]:[_,Math.max(-p,Math.min(p,m)),0,-i.parallelGap,i.parallelGap,-p*.6,p*.6];return[...new Set(v.map(e=>Math.max(-p,Math.min(p,e))))].map(t=>Sn(e,n,t+f-d,r,i))}function Sn(e,t,n,r,i){let a=B(e,t,n,r),[o,s]=G[t],c=fn(e),l=r===`usecase`&&e.kind===`actor`?i.endpoint:Math.max(X(r).endpointStub??i.endpoint,t===`left`?a.x-c.x+1:t===`right`?c.x+c.width-a.x+1:t===`top`?a.y-c.y+1:c.y+c.height-a.y+1);return{point:a,side:t,stub:{x:a.x+o*l,y:a.y+s*l}}}function Cn(e,t,n,r=null,i=null){let a=Y(n),o=bn(n),s=[];for(let c of r?[r]:dn)for(let r of dn){let l=xn(e,t,c,a,o,n,i),u=xn(t,e,r,a,o,n,i);if((c===`left`||c===`right`)==(r===`left`||r===`right`)){let n=c===`left`||c===`right`?`y`:`x`,i=n===`x`?`width`:`height`,s=(e,t,r,s)=>{let c=W(e,a),l=e.position[n]+e.size[i]/2;for(let u of s.slice(0,3)){let s=u.point[n];if(s<c[n]+20||s>c[n]+c[i]-20)continue;let d=Sn(e,t,s-l,a,o);r.some(e=>K(e.point,d.point)<.001)||r.push(d)}},d=[...l];s(e,c,l,u),s(t,r,u,d)}let d=Math.min(...l.flatMap(e=>u.map(t=>K(e.point,t.point)))),f=(c===`left`||c===`right`)==(r===`left`||r===`right`),p=f&&c!==r&&l.some(e=>u.some(t=>(e.point.x===t.point.x||e.point.y===t.point.y)&&(t.point.x-e.point.x)*G[c][0]+(t.point.y-e.point.y)*G[c][1]>0))?0:f?2:1;s.push({sourceSide:c,targetSide:r,starts:l,ends:u,nearest:d,minimumBends:p,sourceId:e.id,targetId:t.id})}return s.sort((e,t)=>e.nearest+e.minimumBends*o.bendCost-t.nearest-t.minimumBends*o.bendCost||e.nearest-t.nearest||dn.indexOf(e.sourceSide)-dn.indexOf(t.sourceSide)||dn.indexOf(e.targetSide)-dn.indexOf(t.targetSide))}function wn(e,t,n,r,i){let a=e.y===t.y;if(a===(n.y===r.y)){let o=a?`x`:`y`,s=a?`y`:`x`;return Math.abs(e[s]-n[s])+.001<i&&Math.min(Math.max(e[o],t[o]),Math.max(n[o],r[o]))-Math.max(Math.min(e[o],t[o]),Math.min(n[o],r[o]))>.001?1/0:0}let[o,s,c,l]=a?[e,t,n,r]:[n,r,e,t];return+(c.x>=Math.min(o.x,s.x)&&c.x<=Math.max(o.x,s.x)&&o.y>=Math.min(c.y,l.y)&&o.y<=Math.max(c.y,l.y))}function Tn(e,t){let n=e=>({source:hn(e[0]),target:hn(e.at(-1))});return Yt(n(e),e,n(t),t).length}function En(e,t){let n=e.nodes.map(e=>({node:e,r:W(e,t),always:t===`usecase`&&e.kind===`actor`||t===`state`&&[`initial`,`final`].includes(e.kind)&&e.subtitle}));return(e,r)=>n.some(({node:n,r:i,always:a})=>!a&&(e.y===r.y?e.y<=i.y||e.y>=i.y+i.height:e.x===r.x&&(e.x<=i.x||e.x>=i.x+i.width))?!1:Gt(e,r,n,t))}function Dn(e,t){let n=t.parallelGap,r=e.flatMap((e,t)=>q(e).map(([e,r])=>({index:t,c:e,d:r,l:Math.min(e.x,r.x)-n,r:Math.max(e.x,r.x)+n,t:Math.min(e.y,r.y)-n,b:Math.max(e.y,r.y)+n})));return(i,a,o,s=!0)=>{let c=Math.min(i.x,a.x),l=Math.max(i.x,a.x),u=Math.min(i.y,a.y),d=Math.max(i.y,a.y),f=new Map;for(let{index:o,c:p,d:m,l:h,r:g,t:_,b:v}of r){if(l<h||c>g||d<_||u>v)continue;let r=wn(i,a,p,m,n);if(r===1/0){let n=Jt(i,a,p,m),r=e.some(e=>[e[0],e.at(-1)].some(e=>(e.x===i.x&&e.y===i.y||e.x===a.x&&e.y===a.y)&&(e.x===p.x&&e.y===p.y||e.x===m.x&&e.y===m.y)));if(n>0&&n<=t.endpoint+.001&&r)continue;return 1/0}if(s&&r){let t=i.y===a.y?{x:p.x,y:i.y}:{x:i.x,y:p.y},n=K(t,i)<.001||K(t,a)<.001;if(n&&[e[o][0],e[o].at(-1)].some(e=>K(e,t)<.001))continue;f.set(o+`:`+hn(t),n?.5:1)}}return o+[...f.values()].reduce((e,t)=>e+t,0)*t.crossingCost}}function On(e,t,n,r,i,a,o,s=1/0){let c=e.starts,l=e.ends,u=Y(t),d=j(o),f=t.nodes.map(e=>H(e,u)),p=r.flatMap(q),m=(t.groups??[]).flatMap(Kt),h=En(t,u),g=Dn(r,i),_=ln(t,e.sourceId,e.targetId,c.map(e=>e.point),l.map(e=>e.point)),v=(e,t)=>_(e,t)||m.some(([n,r])=>Jt(e,t,n,r)>i.endpoint),y=(t,a=1/0)=>{if(t.length<2)return 1/0;let s=t[0],c=t[1],l=t.at(-1),u=t.at(-2),m=(e,t,n)=>(t.x-e.x)*G[n][0]+(t.y-e.y)*G[n][1]>0;if(!m(s,c,e.sourceSide)||!m(l,u,e.targetSide)||t.length>2&&(K(s,c)<i.endpoint||K(l,u)<i.endpoint))return 1/0;let _=q(t).reduce((e,[t,n])=>e+K(t,n),0)+Math.max(0,t.length-2)*i.bendCost;if(_>=a)return 1/0;for(let[e,r]of q(t))if(h(e,r)||n.some(t=>U(e,r,t))||v(e,r)||(_=g(e,r,_,!1),_===1/0))return 1/0;return _+=r.reduce((e,n)=>e+Tn(t,n),0)*i.crossingCost,o&&!kn(t,d,f,n,p,i).length?1/0:_},b=[...t.nodes.map(e=>H(e,u)),...n,...r.flat().map(e=>({...e,width:0,height:0}))],x=Math.max(i.preferredClearance,d.width/2+i.labelGap+4),S=Math.max(i.preferredClearance,d.height/2+i.labelGap+4),C=Math.min(...b.map(e=>e.x))-x,w=Math.max(...b.map(e=>e.x+e.width))+x,ee=Math.min(...b.map(e=>e.y))-S,te=Math.max(...b.map(e=>e.y+e.height))+S,T;for(let e of c)for(let t of l){let n=e.stub,r=t.stub,a=[[n,{x:r.x,y:n.y},r],[n,{x:n.x,y:r.y},r],[n,{x:(n.x+r.x)/2,y:n.y},{x:(n.x+r.x)/2,y:r.y},r],[n,{x:n.x,y:(n.y+r.y)/2},{x:r.x,y:(n.y+r.y)/2},r],...[C,w].map(e=>[n,{x:e,y:n.y},{x:e,y:r.y},r]),...[ee,te].map(e=>[n,{x:n.x,y:e},{x:r.x,y:e},r])];if((e.point.x===t.point.x||e.point.y===t.point.y)&&K(e.point,t.point)>=(X(u).endpointStub??i.endpoint)){let n={x:(e.point.x+t.point.x)/2,y:(e.point.y+t.point.y)/2};G[e.side][0]*(t.point.x-e.point.x)+G[e.side][1]*(t.point.y-e.point.y)>0&&G[t.side][0]*(e.point.x-t.point.x)+G[t.side][1]*(e.point.y-t.point.y)>0&&a.push([n])}for(let n of a){let r=vn([e.point,...n,t.point]),i=y(r,Math.min(s,T?.cost??1/0));Number.isFinite(i)&&(!T||i<T.cost)&&(T={cost:i,points:r,via:vn(n),sourceSide:e.side,targetSide:t.side})}}if(T&&T.cost<=e.nearest+e.minimumBends*i.bendCost+.001)return T;if(a.remaining<=0)return T??null;let ne=t.nodes.map(e=>H(e,u)),re=new Set([...c,...l].map(e=>e.stub.x)),ie=new Set([...c,...l].map(e=>e.stub.y));for(let e of[...ne,...n,...r.flatMap(e=>q(e).map(([e,t])=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),width:Math.abs(e.x-t.x),height:Math.abs(e.y-t.y)})))])re.add(e.x-i.preferredClearance),re.add(e.x+e.width+i.preferredClearance),ie.add(e.y-i.preferredClearance),ie.add(e.y+e.height+i.preferredClearance);let ae=[...re].sort((e,t)=>e-t),oe=[...ie].sort((e,t)=>e-t),se=ae.length,ce=e=>({x:ae[e%se],y:oe[Math.floor(e/se)]}),E=e=>oe.indexOf(e.y)*se+ae.indexOf(e.x),le=new Map,ue=(e,t)=>{let r=hn(e),i=hn(t),a=r<i?r+`:`+i:i+`:`+r;if(le.has(a))return le.get(a);let o=1/0;return!h(e,t)&&!n.some(n=>U(e,t,n))&&!v(e,t)&&(o=g(e,t,K(e,t))),le.set(a,o),o},de=e=>Math.min(...l.map(t=>K(e,t.stub))),fe=new _n,pe=new Map,D=new Map,O=0;for(let e of l){let t=E(e.stub);D.has(t)||D.set(t,[]),D.get(t).push(e)}for(let e of c){if(n.some(t=>U(e.point,e.stub,t))||!Number.isFinite(ue(e.point,e.stub)))continue;let t=E(e.stub),r=+![`left`,`right`].includes(e.side),i=K(e.point,e.stub),a={id:t,direction:r,cost:i,priority:i+de(e.stub),start:e,serial:O++},o=t*2+r;(!pe.has(o)||pe.get(o).cost>a.cost)&&(pe.set(o,a),fe.push(a))}let me=0;for(;fe.items.length&&a.remaining>0&&me++<4e3;){a.remaining--;let e=fe.pop();if(pe.get(e.id*2+e.direction)!==e)continue;if(e.priority>=Math.min(s,T?.cost??1/0))break;let t=ce(e.id);for(let t of D.get(e.id)??[]){if(!Number.isFinite(ue(t.stub,t.point)))continue;let r=[];for(let t=e;t;t=t.before)r.push(ce(t.id));r.reverse();let a=yn([e.start.point,...r,t.point],y);if(o&&!kn(a,d,f,n,p,i).length)continue;let s=y(a);if(Number.isFinite(s))return T&&T.cost<=s?T:{points:a,via:a.length>2?a.slice(1,-1):[e.start.stub,t.stub],sourceSide:e.start.side,targetSide:t.side,cost:s}}let r=e.id%se,c=Math.floor(e.id/se);for(let[n,a]of[[r-1,c],[r+1,c],[r,c-1],[r,c+1]]){if(n<0||a<0||n>=se||a>=oe.length)continue;let o=a*se+n,s=ce(o),c=ue(t,s);if(!Number.isFinite(c))continue;let l=+(r===n),u=e.cost+c+(l===e.direction?0:i.bendCost),d=o*2+l;if(pe.has(d)&&pe.get(d).cost<=u)continue;let f={id:o,direction:l,cost:u,priority:u+de(s),before:e,start:e.start,serial:O++};pe.set(d,f),fe.push(f)}}return T??null}function kn(e,t,n,r,i,a){let o=[];for(let[s,[c,l]]of q(e).entries()){let u=c.y===l.y,d=u?`x`:`y`,f=u?`width`:`height`,p=t[f]/2,m=Math.min(c[d],l[d])+p+4,h=Math.max(c[d],l[d])-p-4;if(m>h)continue;let g=(c[d]+l[d])/2,_=[...new Set([g,m,h,...[...n,...r].flatMap(e=>[e[d]-p-a.labelGap-.01,e[d]+e[f]+p+a.labelGap+.01]),...i.flatMap(([e,t])=>[Math.min(e[d],t[d])-p-a.labelEdgeGap-.01,Math.max(e[d],t[d])+p+a.labelEdgeGap+.01])])].filter(e=>e>=m&&e<=h);for(let l of _){let u={...c,[d]:l};if(u.x<0||u.y<0)continue;let f={x:u.x-t.width/2,y:u.y-t.height/2,...t};[...n,...r].some(e=>mn(f,pn(e,a.labelGap)))||i.some(([e,t])=>U(e,t,pn(f,a.labelEdgeGap)))||[e[0],e.at(-1)].some(e=>mn(f,{x:e.x-12,y:e.y-12,width:24,height:24}))||o.push({point:u,r:f,score:Math.abs(l-g)+s*.001})}}return o.sort((e,t)=>e.score-t.score)}function An(e,t=null){let n=Y(e),r=bn(e),i=V(e),a=t?[...i].filter(([e])=>!t.has(e)).flatMap(([,e])=>e.label?[e.labelBox]:[]):[],o=[...(e.groups??[]).flatMap(e=>{let t=fn(e);return[{x:t.x,y:t.y,width:t.width,height:1},{x:t.x,y:t.y+t.height,width:t.width,height:1},{x:t.x,y:t.y,width:1,height:t.height},{x:t.x+t.width,y:t.y,width:1,height:t.height}]}),...(e.groups??[]).flatMap(qt),...J(e).flatMap(Vn)],s=e.nodes.map(e=>H(e,n));for(let n of[...e.edges].filter(e=>!t||t.has(e.id)).sort(gn)){let e=i.get(n.id);if(!e.label)continue;let t=[...i].filter(([e])=>e!==n.id).flatMap(([,e])=>q(e.points)),c=kn(e.points,j(e.label),s,[...o,...a],t,r)[0];if(!c)throw Object.assign(Error(`No clear label position for `+n.id),{elementIds:[n.id,n.source,n.target],routingReason:`label-space`});n.route={...n.route,labelAt:c.point},a.push(c.r)}return e}function jn(e,t,n,r,i,a,o,s=0){let c=Y(t),l=j(Et(o,c,t.meta.locale));for(let[o,u]of[`right`,`bottom`,`left`,`top`].entries()){if(o<s)continue;let d=[`left`,`right`].includes(u),f=d?e.size.height:e.size.width,p=Math.min(f/2-12,Math.max(24,(d?l.height:l.width)/2+8)),m=B(e,u,-p,c),h=B(e,u,p,c),[g,_]=G[u],v=Math.max(48,(d?l.width:l.height)/2+i.labelGap+8)+a*i.parallelGap,y=[m,{x:m.x+g*v,y:m.y+_*v},{x:h.x+g*v,y:h.y+_*v},h],b=ln(t,e.id,e.id,[m],[h]);if(!q(y).some(([a,o])=>b(a,o)||t.nodes.some(t=>t.id!==e.id&&Gt(a,o,t,c))||n.some(e=>U(a,o,e))||r.flatMap(q).some(([e,t])=>wn(a,o,e,t,i.parallelGap)===1/0)))return{via:y.slice(1,-1),sideIndex:o}}return null}function Mn(e){let t=bn(e),n=[...V(e).values()],r=n.reduce((e,t)=>e+q(t.points).reduce((e,[t,n])=>e+K(t,n),0),0),i=0;for(let e=0;e<n.length;e++)for(let t of n.slice(e+1))i+=Tn(n[e].points,t.points);return r+n.reduce((e,n)=>e+Math.max(0,n.points.length-2)*t.bendCost,0)+i*t.crossingCost}function Nn(e,{passes:t=3,accept:n=null,edgeIds:r=null,searchBudget:a=null}={}){let o=Y(e);if(X(o).sequence){let t=structuredClone(e),r=V(t),i=t.nodes.map(e=>H(e,o)),a=Math.min(1/0,...[...r.values()].filter(e=>e.label).map(e=>e.labelBox.y)),s=Math.max(0,Math.max(...i.map(e=>e.y+e.height))+h(X(o)).labelGap-a);if(s){for(let e of t.edges)e.route={...e.route,messageY:r.get(e.id).points[0].y+s},e.route.via&&(e.route.via=e.route.via.map(e=>({...e,y:e.y+s}))),e.route.labelAt&&(e.route.labelAt={...e.route.labelAt,y:e.route.labelAt.y+s});for(let e of t.groups??[])e.position.y+=s;for(let e of t.nodes)e.size.height+=s}return n&&n(t),{graph:t,report:{strategy:`sequence-span-constraints`,evaluations:1,headerClearanceShift:s,termination:`notation-specific`}}}let s=bn(e),c=V(e),l=r?[...c].filter(([e])=>!r.has(e)).map(([,e])=>e):[],u=[...l.filter(e=>e.label).map(e=>pn(e.labelBox,s.labelEdgeGap)),...(e.groups??[]).flatMap(qt),...J(e).flatMap(Vn)].map(e=>pn(e,8)),d=e.layout?.primaryPath??[],f=t=>{let n=e.nodes.find(e=>e.id===t.source),r=e.nodes.find(e=>e.id===t.target);return Math.abs(n.position.x+n.size.width/2-r.position.x-r.size.width/2)+Math.abs(n.position.y+n.size.height/2-r.position.y-r.size.height/2)},p=[...e.edges].filter(e=>!r||r.has(e.id)).sort((t,n)=>{let r=e=>d.some((t,n)=>t===e.source&&d[n+1]===e.target),i=t=>[`decision`,`choice`].includes(e.nodes.find(e=>e.id===t.source)?.kind);return Number(r(n))-Number(r(t))||Number(i(n))-Number(i(t))||f(t)-f(n)||gn(t,n)}),m,g,_=[],v=6e4*Math.min(4,Math.max(1,Math.ceil(p.length/16)));if(n)try{n(e,{strictEdgeIds:new Set(p.map(e=>e.id))}),m={graph:structuredClone(e),cost:Mn(e),pass:`preserved`}}catch{}for(let d=0;d<t;d++){let f=new Map,h=a??{remaining:v};if(d===2&&m){let e=V(m.graph),t=t=>{let n=e.get(t.id);return[...e].filter(([e])=>e!==t.id).reduce((e,[,t])=>e+Tn(n.points,t.points),0)*i.crossings+Math.max(0,n.points.length-2)*i.bends},r=[...p].sort((e,n)=>t(n)-t(e)||gn(e,n));for(let[e,t]of r.entries()){if(h.remaining<=0)break;let i=Math.ceil(h.remaining/(r.length-e)),a={remaining:i};try{let e=Nn(m.graph,{passes:1,accept:n,edgeIds:new Set([t.id]),searchBudget:a}),r=Mn(e.graph);_.push({pass:d,edgeId:t.id,cost:r,visited:i-a.remaining}),r<m.cost-.001&&(m={graph:e.graph,cost:r,pass:d})}catch(e){_.push({pass:d,edgeId:t.id,reason:e.routingReason??`quality`,visited:i-a.remaining})}h.remaining-=i-a.remaining}break}let y=d===0?p:d===1?[...p].reverse():[...p].sort(gn);for(let i=0;i<16;i++){let a=structuredClone(e),p=l.map(e=>e.points),b=[],x=new Map,S=[],C=new Set(r?[...c.keys()].filter(e=>!r.has(e)):[]),w=e=>{C.add(e.id),An({...a,edges:a.edges.filter(e=>C.has(e.id))},new Set([e.id]));let t=V(a).get(e.id);t.label&&S.push(pn(t.labelBox,s.labelEdgeGap)),p.push(t.points)};try{for(let e of y){let t=a.edges.find(t=>t.id===e.id),n=a.nodes.find(e=>e.id===t.source),r=a.nodes.find(e=>e.id===t.target);if(n===r){let e=[...a.edges].filter(e=>e.source===n.id&&e.target===n.id).sort(gn).findIndex(e=>e.id===t.id),r=jn(n,a,[...u,...S],p,s,e,t,f.get(t.id)??0);if(!r)throw Object.assign(Error(`No clear self corridor for `+t.id),{elementIds:[t.id],routingReason:`corridor-space`});x.set(t.id,r.sideIndex),t.route={via:r.via},w(t);continue}let i=Cn(n,r,a,[`decision`,`choice`].includes(n.kind)&&a.edges.filter(e=>e.source===n.id&&e.target!==n.id).length>=2?c.get(t.id).sourceSide:null,t),l,d;for(let e=f.get(t.id)??0;e<i.length;e++){if(l&&i[e].nearest+i[e].minimumBends*s.bendCost>=l.cost-.001)continue;let n=On(i[e],a,[...u,...S],p,s,h,Et(t,o,a.meta.locale),l?.cost);if(n){let t=e=>e.cost;if((!l||t(n)<t(l))&&(l=n,d=e),t(l)<=(i[e+1]?i[e+1].nearest+i[e+1].minimumBends*s.bendCost:1/0)||h.remaining<=0)break}}if(!l)throw Object.assign(Error(`No clear orthogonal corridor for `+t.id),{elementIds:[t.id,t.source,t.target],routingReason:h.remaining<=0?`evaluation-budget`:`corridor-space`});x.set(t.id,d),d&&b.push({edgeId:t.id,nearest:i[0].nearest,selected:i[d].nearest,reason:`minimum-cost-clear-corridor`}),t.route={...t.route,via:l.via},delete t.route.labelAt,w(t)}n&&n(a,{strictEdgeIds:new Set(y.map(e=>e.id))});let e=Mn(a);if(_.push({pass:d,cost:e,fallbacks:b,visited:v-h.remaining}),(!m||e<m.cost)&&(m={graph:a,cost:e,pass:d}),!a.edges.length||t===1)break}catch(e){if(g=e,_.push({pass:d,retry:i,reason:e.routingReason??`quality`,elementIds:e.elementIds??[],visited:v-h.remaining}),e.routingReason===`corridor-space`&&h.remaining>0){let t=e.elementIds[0],n=y.findIndex(e=>e.id===t);if(n>0){y=[y[n],...y.slice(0,n),...y.slice(n+1)];continue}}if(e.routingReason===`label-space`){let t=e.elementIds[0];if(f.set(t,(x.get(t)??f.get(t)??0)+1),h.remaining>0)continue}}break}}if(!m)throw Object.assign(g??Error(`No routing candidate`),{routingReport:{attempts:_,termination:`no-valid-candidate`,provenImpossible:!1}});return{graph:m.graph,report:{strategy:`nearest-outline-orthogonal`,budget:v,evaluations:_.length,selected:m.pass,attempts:_,termination:`bounded-search`,provenImpossible:!1}}}let J=e=>{let t=(e,n=0)=>(Array.isArray(e)&&n<=16?e:[]).filter(e=>e&&typeof e==`object`).flatMap(e=>[e,...t((Array.isArray(e.items)?e.items:[]).filter(e=>e?.mode),n+1)]);return t(e.layout?.sections)},Pn=e=>e&&typeof e==`object`&&!Array.isArray(e),Fn=e=>Array.isArray(e)&&e.every(e=>typeof e==`string`&&e.trim()),In=e=>e.overviewText!==void 0||e.badges!==void 0||e.overviewTone!==void 0;function Ln(e,{inputOnly:t=!0,validateAnchor:n,evidenceKinds:r}={}){let i=[],a=c(e),o=(e,t)=>{e!==void 0&&!ne.includes(e)&&i.push(`${t} is unsupported`)},s=(e,t)=>{Pn(e)?(n?.(e,t,i),e.kind!==void 0&&!r?.has(e.kind)&&i.push(`${t}.kind is unsupported`)):i.push(`${t} must be an object`)};for(let t of e.nodes??[])if(o(t.overviewTone,`node ${t.id}.overviewTone`),t.overviewAccent!==void 0&&typeof t.overviewAccent!=`boolean`&&i.push(`node ${t.id}.overviewAccent must be boolean`),t.overviewText!==void 0&&!Fn(t.overviewText)&&i.push(`node ${t.id}.overviewText must contain non-empty strings`),t.badges!==void 0){if(!Array.isArray(t.badges))i.push(`node ${t.id}.badges must be an array`);else for(let[e,n]of t.badges.entries()){let a=`node ${t.id}.badges[${e}]`;(!Pn(n)||typeof n.label!=`string`||!n.label.trim()||![`status`,`version`,`requirement`].includes(n.role)||!r?.has(n.evidence))&&i.push(`${a} needs label, role (status/version/requirement) and evidence`),n?.source!==void 0&&s(n.source,`${a}.source`)}}if(!a)return e.layout?.sections!==void 0&&i.push(`layout.sections requires an architecture overview`),i;if(!Array.isArray(e.layout?.sections)||!e.layout.sections.length)return[...i,`architecture overview requires non-empty layout.sections`];let l=new Map(e.nodes.map(e=>[e.id,e])),u=new Map((e.groups??[]).map(e=>[e.id,e])),d=new Set,f=new Set,p=new Set,m=e=>{l.has(e)?d.has(e)?i.push(`section repeats node ${e}`):d.add(e):i.push(`section nodeId does not name a node: ${e}`)},h=(t,n=new Set)=>{if(!u.has(t)){i.push(`section groupId does not name a group: ${t}`);return}if(n.has(t)||p.has(t)){i.push(`section repeats or cycles group ${t}`);return}p.add(t);let r=new Set([...n,t]);e.nodes.filter(e=>e.groupId===t).forEach(e=>m(e.id)),[...u.values()].filter(e=>e.parentId===t).forEach(e=>h(e.id,r))},g=(e,n=0)=>{if(!Pn(e)||n>16){i.push(`invalid section or nesting exceeds 16 levels`);return}(typeof e.id!=`string`||!e.id.trim()||f.has(e.id)||l.has(e.id)||u.has(e.id))&&i.push(`section.id must be unique: ${e.id}`),f.add(e.id),[`stack`,`grid`,`row`,`note`].includes(e.mode)||i.push(`section ${e.id}.mode is unsupported`),(typeof e.title!=`string`||!e.title.trim())&&i.push(`section ${e.id}.title is required`),o(e.tone,`section ${e.id}.tone`),e.frame!==void 0&&![`solid`,`dashed`,`none`].includes(e.frame)&&i.push(`section ${e.id}.frame is unsupported`),e.columns!==void 0&&(!Number.isInteger(e.columns)||e.columns<1||e.columns>16||e.mode!==`grid`)&&i.push(`section ${e.id}.columns requires a grid and an integer from 1 to 16`),e.weights!==void 0&&(e.mode!==`row`||!Array.isArray(e.weights)||e.weights.length!==e.items?.length||e.weights.some(e=>!Number.isFinite(e)||e<=0))&&i.push(`section ${e.id}.weights requires a row and one positive finite weight per item`),e.text!==void 0&&!Fn(e.text)&&i.push(`section ${e.id}.text must contain non-empty strings`),e.source!==void 0&&s(e.source,`section ${e.id}.source`),e.detailOf!==void 0&&!l.has(e.detailOf)&&i.push(`section ${e.id}.detailOf does not name a node`),!t&&(!Pn(e.position)||!Pn(e.size)||!Number.isFinite(e.position.x)||!Number.isFinite(e.position.y)||e.position.x<0||e.position.y<0||!Number.isFinite(e.size.width)||!Number.isFinite(e.size.height)||e.size.width<=0||e.size.height<=0)&&i.push(`section ${e.id} requires finite geometry`),e.mode===`note`?(!Fn(e.text)||!e.text.length||(e.items?.length??0))&&i.push(`note ${e.id} requires text and no items`):(!Array.isArray(e.items)||!e.items.length)&&i.push(`section ${e.id}.items must be non-empty`);for(let t of Array.isArray(e.items)?e.items:[]){if(!Pn(t)){i.push(`section ${e.id} item must be an object`);continue}[`nodeId`,`groupId`,`mode`].filter(e=>Object.hasOwn(t,e)).length===1?t.nodeId===void 0?t.groupId===void 0?g(t,n+1):h(t.groupId):m(t.nodeId):i.push(`section ${e.id} item needs exactly one nodeId, groupId or nested section`)}};e.layout.sections.forEach(e=>g(e));for(let e of l.keys())d.has(e)||i.push(`overview node ${e} is missing from sections`);return i}function Rn(e,t=e.size.width){let n=e.overviewTone===`plain`?0:T.cardPadding,r=t-n*2,i=[],a=e.badges?.length?Math.min(r*.45,Math.max(...e.badges.map(e=>k(e.label,r*.45-16,T.badge,T.badgeLine).width+16))):0,o=n;for(let r of e.badges??[]){let e=k(r.label,a-16,T.badge,T.badgeLine),s=Math.max(48,e.width+16),c=e.height+6;i.push({...r,x:t-n-s,y:o,width:s,height:c,lines:e.lines}),o+=c+6}let s=k(e.label,r-(a?a+10:0),T.title,T.titleLine),c=s.lines.map((e,t)=>({text:e,x:n,y:n+T.title+t*T.titleLine,role:`title`})),l=e.subtitle&&s.lines.length===1&&k(e.subtitle,1/0,T.body,T.bodyLine).width+s.width+12<=r-(a?a+10:0);l&&c.push({text:e.subtitle,x:n+s.width+12,y:n+T.title,role:`body`});let u=Math.max(n+s.height,i.length?o-6:0),d=t>1e3?[(e.overviewText??[]).join(` `)]:e.overviewText??[];for(let t of[l?``:e.subtitle,...d].filter(Boolean)){u+=6;let e=k(t,r,T.body,T.bodyLine);c.push(...e.lines.map((e,t)=>({text:e,x:n,y:u+T.body+t*T.bodyLine,role:`body`}))),u+=e.height}return{lines:c,badges:i,minHeight:u+n}}let zn=e=>e.frame===`none`?0:T.padding,Bn=(e,t)=>{let n=t-zn(e)*2;return zn(e)+k(e.title,n,T.sectionTitle,T.sectionLine).height+(e.text??[]).reduce((e,t)=>e+8+k(t,n,T.body,T.bodyLine).height,0)};function Vn(e){if(e.mode===`note`)return[{...e.position,...e.size}];let t=zn(e),n=e.position.x+t,r=e.size.width-t*2,i=k(e.title,r,T.sectionTitle,T.sectionLine),a=i.lines.map((r,i)=>({x:n,y:e.position.y+t+i*T.sectionLine,width:k(r,1/0,T.sectionTitle,T.sectionLine).width,height:T.sectionLine})),o=e.position.y+t+i.height;for(let t of e.text??[]){o+=8;let e=k(t,r,T.body,T.bodyLine);a.push(...e.lines.map((e,t)=>({x:n,y:o+t*T.bodyLine,width:k(e,1/0,T.body,T.bodyLine).width,height:T.bodyLine}))),o+=e.height}return a}function Hn(t,{width:n=T.width,gap:r=T.cardGap,gaps:i={},bandGaps:a={}}={}){let o=structuredClone(t),s=new Map(o.nodes.map(e=>[e.id,e])),c=new Map((o.groups??[]).map(e=>[e.id,e])),l=(e,t)=>Rn(e,t).minHeight,u=e=>({id:e,title:c.get(e).label,mode:`grid`,group:!0,items:[...(o.groups??[]).filter(t=>t.parentId===e).map(e=>({groupId:e.id})),...o.nodes.filter(t=>t.groupId===e).map(e=>({nodeId:e.id}))]}),d=e=>e.nodeId?[e.nodeId]:(e.groupId?u(e.groupId):e).items?.flatMap(d)??[],f=(e,t)=>{if(e.nodeId)return{item:e,width:t,height:l(s.get(e.nodeId),t)};let n=e.groupId?u(e.groupId):e,a=zn(n),c=i[n.id]??r,p=Bn(n,t)+(n.mode===`note`?0:24);if(n.mode===`note`)return{item:n,width:t,height:p+a};let m=n.mode===`row`?n.items.length:n.mode===`grid`?Math.min(n.items.length,n.columns??Math.max(1,Math.floor((t-a*2+c)/(300+c)))):1,h=[];for(let e=0;e<n.items.length;e+=m){let r=n.items.slice(e,e+m),i=n.mode===`row`&&n.weights||r.map(()=>1),o=i.reduce((e,t)=>e+t,0),s=t-a*2-c*(r.length-1),l=r.map((e,t)=>f(e,s*i[t]/o)),u=Math.max(...l.map(e=>e.height));for(let e of l)(n.mode===`grid`&&e.item.nodeId||n.mode===`row`)&&(e.height=u);h.push(l)}let g=new Set(d(n)),_=o.edges.some(e=>g.has(e.source)&&g.has(e.target))?Math.max(c,T.connectedGap):c;return{item:n,width:t,height:p+h.reduce((e,t)=>e+Math.max(...t.map(e=>e.height)),0)+_*Math.max(0,h.length-1)+a,top:p,rows:h,rowGap:_,gap:c,padding:a}},p=(e,t,n)=>{if(e.item.nodeId){let r=s.get(e.item.nodeId);r.position={x:t,y:n},r.size={width:e.width,height:e.height};return}let r=e.item;r.position={x:t,y:n},r.size={width:e.width,height:e.height},r.group&&Object.assign(c.get(r.id),{position:r.position,size:r.size});let i=n+e.top;for(let n of e.rows??[]){let r=t+e.padding;for(let t of n)p(t,r,i),r+=t.width+e.gap;i+=Math.max(...n.map(e=>e.height))+e.rowGap}},m=e=>{if(e.nodeId)return 300;let t=e.groupId?u(e.groupId):e,n=zn(t);if(i[t.id],t.mode===`note`)return 300+n*2;let a=t.items.map(m);if(t.mode===`row`){let e=t.weights??a.map(()=>1);return n*2+Math.max(...a.map((t,n)=>t/e[n]))*e.reduce((e,t)=>e+t,0)+r*(a.length-1)}return t.columns?n*2+Math.min(t.columns,t.items.length)*176+r*(Math.min(t.columns,t.items.length)-1):n*2+Math.max(...a)};n=Math.max(n,...o.layout.sections.map(m));let h=T.margin;for(let e of o.layout.sections){let t=f(e,n);p(t,T.margin,h),h+=t.height+Math.max(a[e.id]??r,T.bandGap)}let g=e=>{let t=[...o.nodes.filter(t=>t.groupId===e.id),...(o.groups??[]).filter(t=>t.parentId===e.id).map(e=>(g(e),e))];if(!t.length)throw Error(`Empty ownership group ${e.id}`);let r=Math.min(...t.map(e=>e.position.x))-T.padding,i=Math.min(...t.map(e=>e.position.y))-k(e.label,n,20,26).height-T.padding,a=Math.max(...t.map(e=>e.position.x+e.size.width))+T.padding,s=Math.max(...t.map(e=>e.position.y+e.size.height))+T.padding;e.position={x:Math.max(0,r),y:Math.max(0,i)},e.size={width:a-e.position.x,height:s-e.position.y}};for(let e of o.groups??[])!e.parentId&&!J(o).some(t=>t.items?.some(t=>t.groupId===e.id))&&g(e);o.layout.version=e,o.layout.direction=`down`,o.layout.strategy=`architecture-overview-v2`;for(let e of o.edges)delete e.route;return Xn(o)}function Un(e,t,n){let r=structuredClone(e);for(let e of r.nodes){let n=t.nodes.find(t=>t.id===e.id);JSON.stringify(e)!==JSON.stringify(n)&&(e.size.height=Math.max(e.size.height,Rn(e).minHeight))}let i=(e,n)=>{if(e.join(`\\0`)===n.join(`\\0`))return;let i=e.map(e=>t.nodes.find(t=>t.id===e));n.forEach((e,t)=>{let n=r.nodes.find(t=>t.id===e);n.position={...i[t].position}})};for(let e of J(r)){let n=J(t).find(t=>t.id===e.id);n&&i((n.items??[]).filter(e=>e.nodeId).map(e=>e.nodeId),(e.items??[]).filter(e=>e.nodeId).map(e=>e.nodeId))}for(let e of r.groups??[])i(t.nodes.filter(t=>t.groupId===e.id).map(e=>e.id),r.nodes.filter(t=>t.groupId===e.id).map(e=>e.id));let a=un(t,r);return r.edges=C(r,Nn(S(r),{edgeIds:a,passes:2,accept:n}).graph),n(r,{strictEdgeIds:a}),r}let Wn=new WeakMap;function Gn(e,t){let n={},r={},i=[],a;for(let o=0;o<60;o++)try{let a=Hn(e,{gaps:n,bandGaps:r});return t(a),Wn.set(a,{evaluations:o+1,budget:60,gaps:{...n},bandGaps:{...r},attempts:i,termination:`valid-local-spacing`,provenImpossible:!1}),a}catch(t){a=t;let o=new Set([...t.elementIds??[],...(t.diagnostics??[]).flatMap(e=>e.elementIds)]);for(let t of e.edges)o.has(t.id)&&(o.add(t.source),o.add(t.target));let s=J(e),c=t=>(t.items??[]).flatMap(t=>t.nodeId?[t.nodeId]:t.groupId?e.nodes.filter(e=>e.groupId===t.groupId).map(e=>e.id):c(t)),l=s.filter(e=>c(e).some(e=>o.has(e))),u=l.filter(e=>!l.some(t=>t!==e&&(e.items??[]).includes(t)));if(!u.length)throw t;let d=!1;for(let e of u){let t=n[e.id]??T.cardGap;t>=200||(n[e.id]=t+16,d=!0)}for(let t of e.layout.sections)if(c(t).some(e=>o.has(e))){let e=r[t.id]??T.bandGap;e<200&&(r[t.id]=e+16,d=!0)}if(i.push({elementIds:[...o],reason:t.routingReason??`quality`,gaps:{...n},bandGaps:{...r}}),!d)break}throw Object.assign(a,{routingReport:{attempts:i,termination:`local-spacing-budget`,provenImpossible:!1}})}let Kn=e=>String(e??``).replaceAll(`&`,`&amp;`).replaceAll(`<`,`&lt;`).replaceAll(`>`,`&gt;`).replaceAll(`"`,`&quot;`),qn=(e,t,n,r,i=``)=>`<text x="${e}" y="${t}" class="${r}"${i?` style="${i}"`:``}>${Kn(n)}</text>`;function Jn(e,t,n,r){let i=ae(r),a=i[e.overviewTone??`subtle`]??i.subtle,o=Rn(e),s=e.overviewTone===`plain`,c=`overview-card-${[...e.id].map(e=>e.codePointAt(0).toString(16)).join(`-`)}`,l=!s&&a.band&&e.size.width>1e3?`<defs><linearGradient id="${c}"><stop stop-color="${a.band[0]}"/><stop offset="1" stop-color="${a.band[1]}"/></linearGradient></defs>`:``,u=`<rect class="node-surface" x="${t}" y="${n}" width="${e.size.width}" height="${e.size.height}" rx="${T.cardRadius}" fill="${s?`none`:l?`url(#${c})`:a.fill}" stroke="${s?`none`:a.stroke}" stroke-width="1.5"/>`,d=e.overviewAccent&&a.accent?`<path d="M${t+5} ${n+10}V${n+e.size.height-10}" stroke="${a.accent}" stroke-width="5" stroke-linecap="round"/>`:``,f=o.lines.map(e=>qn(t+e.x,n+e.y,e.text,e.role,`fill:${e.role===`title`?i.ink:i.body};font-size:${e.role===`title`?T.title:T.body}px;font-weight:${e.role===`title`?700:400}`)).join(``);return l+u+d+f+o.badges.map(e=>{let r=/^(已实现|已完成|完成|implemented|ready|done|complete)$/i.test(e.label),o=e.role===`version`?{fill:a.accent??i.blue.accent,ink:i.paper}:e.role===`status`&&r||e.role===`requirement`&&/^(必选|required|mandatory)$/i.test(e.label)?i.success:i.badge;return`<g data-badge-role="${e.role}"><rect x="${t+e.x}" y="${n+e.y}" width="${e.width}" height="${e.height}" rx="8" fill="${o.fill}"/>${e.lines.map((r,i)=>qn(t+e.x+8,n+e.y+3+T.badge+i*T.badgeLine,r,`meta`,`fill:${o.ink};font-size:${T.badge}px;font-weight:600`)).join(``)}</g>`}).join(``)}function Yn(e,t=new Map){if(!c(e))return[];let n=[],r=J(e);for(let t of r){let r=Bn(t,t.size.width)+zn(t);t.size.height<r&&n.push(`section ${t.id} text is clipped`);for(let r of Array.isArray(t.items)?t.items:[]){let i=r.nodeId?e.nodes.find(e=>e.id===r.nodeId):r.groupId?e.groups.find(e=>e.id===r.groupId):r;i&&(i.position.x<t.position.x+zn(t)||i.position.y<t.position.y+Bn(t,t.size.width)+24||i.position.x+i.size.width>t.position.x+t.size.width-zn(t)+.01||i.position.y+i.size.height>t.position.y+t.size.height-zn(t)+.01)&&n.push(`section ${t.id} does not contain ${i.id}`)}}let i=e=>({...e.position,...e.size}),a=(e,t)=>e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y,o=t=>{let r=t.map(t=>t.nodeId?e.nodes.find(e=>e.id===t.nodeId):t.groupId?(e.groups??[]).find(e=>e.id===t.groupId):t).filter(Boolean);for(let e=0;e<r.length;e++)for(let t of r.slice(e+1))a(i(r[e]),i(t))&&n.push(`overview siblings ${r[e].id} and ${t.id} overlap`)};o(e.layout.sections);for(let e of r)e.items&&o(e.items);let s=(e,t,n)=>{let r=0,i=1;for(let[a,o]of[[`x`,`width`],[`y`,`height`]]){let s=t[a]-e[a];if(!s){if(e[a]<=n[a]||e[a]>=n[a]+n[o])return!1;continue}let c=(n[a]-e[a])/s,l=(n[a]+n[o]-e[a])/s;if(r=Math.max(r,Math.min(c,l)),i=Math.min(i,Math.max(c,l)),r>=i)return!1}return i>0&&r<1};for(let e of r)for(let r of Vn(e))for(let[i,o]of t)o.points.slice(1).some((e,t)=>s(o.points[t],e,r))&&n.push(`overview route ${i} crosses section ${e.id} text`),o.label&&a(o.labelBox,r)&&n.push(`overview label ${i} overlaps section ${e.id} text`);return n}function Xn(e){return e.edges=C(e,Nn(S(e),{passes:3}).graph),e}function Zn(e,t,n,r,i,a,o,s,c=0,l=0){if(e.classicCard)return tr(e,t,n,r,i,a,o,s,c);let{title:u,subtitle:d,source:f,tag:p,contentHeight:m}=Te({...e,size:{...e.size,width:e.size.width-c*2}},o,!1,l),h=t+c,g=n+Math.max(0,(e.size.height-m)/2)+A.pad,_=h+A.textX,v=g+u.height+(d.height?4:0),y=v+d.height+(f.height?6:0),b=u.lines.map((e,t)=>N(_,g+20+t*u.lineHeight,e,`title`)).join(``),x=d.lines.map((e,t)=>N(_,v+17+t*d.lineHeight,e,`body`)).join(``),S=f.lines.map((e,t)=>N(_,y+14+t*f.lineHeight,e,`meta`)).join(``),C={x:h+A.pad,y:g+(A.titleLine-A.plate)/2},w=t+e.size.width-c-A.pad-p.width-l;return`<g filter="url(#node-shadow)">${Qn(e,t,n,r,i,s)}${$n(e,C.x,C.y,A.plate,a)}<rect x="${w}" y="${g+3}" width="${p.width}" height="20" rx="6" fill="${a.badge}"/>${N(w+p.width/2,g+18,p.text,`stereotype`,` text-anchor="middle"`)}${b}${x}${S}</g>`}let Qn=(e,t,n,r,i,a)=>P(a(e,t,n),{fill:r,stroke:i,"stroke-width":e.appearance?.moduleColor||e.appearance?.ring?1.5:1});function $n(e,t,n,r,i){let a=e.appearance?.chip,o=a?`#ffffff`:le(e)?i.accent:ce.has(e.kind)?i.data:e.kind===`failure`?i.warn:i.ink2,s=(r-15)/2;return`<rect x="${t}" y="${n}" width="${r}" height="${r}" rx="7" fill="${a??i.badge}"/><svg x="${t+s}" y="${n+s}" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="${o}" stroke-width="${a?1.75:1.5}">${er(e)}</svg>`}let er=e=>ce.has(e.kind)?`<ellipse cx="12" cy="5" rx="8" ry="3"/><path d="M4 5v14c0 4 16 4 16 0V5M4 12c0 4 16 4 16 0"/>`:[`external`,`actor`].includes(e.kind)?`<rect x="6" y="2" width="12" height="20" rx="3"/><path d="M10 18h4"/>`:[`security`,`config`].includes(e.kind)?`<path d="m12 2 8 4v6c0 5-8 10-8 10S4 17 4 12V6Z"/><path d="m8 12 3 3 5-6"/>`:`<rect x="4" y="4" width="16" height="16" rx="3"/><path d="M8 9h8M8 13h8M8 17h4"/>`;function tr(e,t,n,r,i,a,o,s,c){let{title:l,subtitle:u}=Te({...e,size:{...e.size,width:e.size.width-c*2}},o,!0),d=l.lines.map((e,r)=>N(t+15+c,n+68+r*l.lineHeight,e,`title`)).join(``),f=u.lines.map((e,r)=>N(t+15+c,n+68+l.height+r*u.lineHeight,e,`body`)).join(``);return`<g filter="url(#node-shadow)">${Qn(e,t,n,r,i,s)}${$n(e,t+15+c,n+13,25,a)}${N(t+47+c,n+29,we(e,o).text,`stereotype`)}${d}${f}</g>`}let nr=[[.06,0],[.94,0],[1,.16],[1,.84],[.94,1],[.06,1],[0,.84],[0,.16]],rr=[[.08,0],[1,0],[.92,1],[0,1]];function ir(e,t,n){let{width:r,height:i}=e.size;if(In(e))return F(e,t,n,16);if(e.kind===`external`)return Ne(e,t,n,Me);if(e.kind===`security`)return F(e,t,n,22);if(e.kind===`failure`)return Ne(e,t,n,nr);if(e.kind===`config`)return Ne(e,t,n,rr);if(e.kind===`business`)return F(e,t,n,Math.min(28,i/2));let a=F(e,t,n,[`service`,`component`].includes(e.kind)?16:10);return e.kind===`data`?[...a,[`path`,{d:`M${t+10} ${n}V${n+i}M${t+r-10} ${n}V${n+i}`,fill:`none`}]]:e.kind===`database`?je(e,t,n):e.kind===`framework`?[...a,[`path`,{d:`M${t+16} ${n+6}H${t+r-16}M${t+16} ${n+i-6}H${t+r-16}`,fill:`none`,"stroke-dasharray":`7 5`}]]:a}let ar=(e,t,n)=>In(e)?Le(e,t,n,16):e.kind===`external`?ze(e,t,n,Me):e.kind===`security`?Le(e,t,n,22):e.kind===`failure`?ze(e,t,n,nr):e.kind===`config`?ze(e,t,n,rr):e.kind===`business`?Le(e,t,n,Math.min(28,e.size.height/2)):e.kind===`database`?I(e,t,n,{left:12,right:12,top:2,bottom:2}):I(e,t,n),or=e=>[`external`,`config`,`failure`].includes(e.kind)?Math.min(28,e.size.width*.08):e.kind===`database`?12:0;var sr={dashedKinds:[`framework`,`optional`],id:`architecture`,label:`Architecture`,nodeKinds:[`external`,`config`,`framework`,`security`,`service`,`business`,`data`,`failure`,`system`,`component`,`database`],groupKinds:[`runtime`,`security`,`ownership`,`external`],edgeKinds:[`request`,`call`,`data`,`success`,`failure`,`framework`,`optional`,`depends`,`aggregates`,`inherits`,`provides`],render:(e,t,n,r,i,a,o)=>In(e)?Jn(e,t,n,a,r,i):Zn(e,t,n,r,i,a,o,ir,or(e)),outline:ir,anchor:ar,cardLayout:!0,contentInset:or};let cr=.12,lr=(e,t,n)=>e.kind===`decision`?Pe(e,t,n):[`input`,`output`].includes(e.kind)?[[`polygon`,{points:`${t+e.size.width*cr},${n} ${t+e.size.width},${n} ${t+e.size.width*.88},${n+e.size.height} ${t},${n+e.size.height}`}]]:F(e,t,n,[`start`,`end`].includes(e.kind)?e.size.height/2:10),ur=(e,t,n)=>e.kind===`decision`?ze(e,t,n,[[.5,0],[1,.5],[.5,1],[0,.5]]):[`input`,`output`].includes(e.kind)?ze(e,t,n,[[cr,0],[1,0],[.88,1],[0,1]]):[`start`,`end`].includes(e.kind)?Le(e,t,n,e.size.height/2):I(e,t,n),dr=e=>{let{width:t,height:n}=e.size,r=[`input`,`output`].includes(e.kind)?t*cr+12:[`start`,`end`].includes(e.kind)?Math.min(n/2,t/4):18;return{width:e.kind===`decision`?t/2-8:t-r*2,height:e.kind===`decision`?n/2-8:n-12}};function fr(e,t,n,r,i){let{width:a,height:o}=e.size,s=dr(e),c=Ae(t+a/2,n+o/2,e.label,s.width,s.height,e.subtitle),l=e.kind===`subprocess`?`<path d="M ${t+11} ${n}V ${n+o}M ${t+a-11} ${n}V ${n+o}" stroke="${i}"/>`:``;return`<g class="shape-label">${P(lr(e,t,n),{fill:r,stroke:i,"stroke-width":1.2})}${l}${c}</g>`}var pr={id:`flowchart`,label:`Flowchart`,nodeKinds:[`start`,`end`,`process`,`decision`,`input`,`output`,`subprocess`],groupKinds:[],edgeKinds:[`flow`,`yes`,`no`,`success`,`failure`],render:fr,outline:lr,anchor:ur,textArea:dr,edgeLabel:(e,t)=>e.label??([`yes`,`no`].includes(e.kind)?D(t,e.kind):``)};let mr=(e,t,n)=>F(e,t,n,9);function hr(e,t,n,r,i,a,o){let{erHeaderHeight:s,erRowHeight:c,erFontSize:l}=de(e),u=M(e.subtitle??D(o,`Entity`),e.size.width-60),d=e.subtitle?E.body:E.small,f=e.fields.map((r,i)=>{let o=n+s+i*c,u=o+c/2+l*.35,d=Math.min(e.size.width*.55,k(r.type,1/0,l).width);return`${r.key===`FK`?`<rect x="${t+1}" y="${o}" width="${e.size.width-2}" height="${c}" fill="${a.surface}"/>`:``}${i?`<path d="M${t} ${o}H${t+e.size.width}" stroke="${a.ruleSoft}"/>`:``}${r.key?N(t+10,u-1,r.key,`field-key`,` style="fill:${r.key===`FK`?a.accent:a.data}"`):``}${N(t+45,u,M(r.name,Math.max(1,e.size.width-62-d)),`field-name`,` style="font-size:${l}px"`)}${N(t+e.size.width-10,u-1,M(r.type,d),`field-type`,` text-anchor="end" style="font-size:${l}px"`)}`}).join(``);return`<g filter="url(#node-shadow)">${P(mr(e,t,n),{fill:a.surface2,stroke:i,"stroke-width":e.appearance?.moduleColor||e.appearance?.ring?1.5:1})}<path d="M${t+9} ${n}H${t+e.size.width-9}Q${t+e.size.width} ${n} ${t+e.size.width} ${n+9}V${n+s}H${t}V${n+9}Q${t} ${n} ${t+9} ${n}Z" fill="${e.appearance?.header??r}"/><path d="M${t} ${n+s}H${t+e.size.width}" stroke="${a.rule}"/>${N(t+13,n+s*.43,M(e.label,e.size.width-26),`entity-title`,` style="font-size:${Math.min(E.title,s*.38)}px;fill:${a.ink}"`)}${N(t+13,n+s*.78,u,`entity-meta`,` style="font-size:${Math.min(d,s*.23)}px;fill:${a.ink2}"`)}${N(t+e.size.width-13,n+s*.78,String(e.fields.length).padStart(2,`0`),`entity-meta`,` text-anchor="end" style="font-size:${Math.min(d,s*.23)}px;fill:${a.ink2}"`)}${f}</g>`}var gr={id:`er`,label:`ER diagram`,nodeKinds:[`entity`],groupKinds:[],edgeKinds:[`relationship`],render:hr,outline:mr,compartments:!0,cardinalities:!0,endpointStub:28,undirected:[`relationship`],validateNode(e,t,n){(!Array.isArray(e?.fields)||e.fields.length===0)&&n.push(`${t}.fields must be a non-empty array for er`)},validateEdge(e,t,n){for(let r of[`sourceCardinality`,`targetCardinality`])[`1`,`0..1`,`*`,`1..*`,`0..*`].includes(e?.[r])||n.push(`${t}.${r} is unsupported`)}};let _r=[[0,.1],[.06,0],[1,0],[1,.9],[.94,1],[0,1]];function vr(e,t,n){let{width:r,height:i}=e.size;return e.kind===`device`?[[`rect`,{x:t+16,y:n,width:r-32,height:i,rx:10}],[`path`,{d:`M${t+r/2} ${n+i-10}V${n+i-5}M${t+r/2-30} ${n+i-5}H${t+r/2+30}`,fill:`none`}]]:e.kind===`node`?[...Ne(e,t,n,_r),[`path`,{d:`M${t} ${n+i*.1}L${t+r*.94} ${n+i*.1}L${t+r} ${n}M${t+r*.94} ${n+i*.1}V${n+i}`,fill:`none`}]]:e.kind===`container`?[...F(e,t,n,10),[`rect`,{x:t+r-30,y:n+13,width:16,height:11,rx:2,fill:`none`}],[`rect`,{x:t+r-34,y:n+17,width:16,height:11,rx:2,fill:`none`}]]:e.kind===`artifact`?[[`path`,{d:`M${t} ${n}H${t+r-28}L${t+r} ${n+28}V${n+i}H${t}Z`}],[`path`,{d:`M${t+r-28} ${n}V${n+28}H${t+r}`,fill:`none`}]]:e.kind===`database`?je(e,t,n):e.kind===`external`?Ne(e,t,n,Me):e.kind===`service`?F(e,t,n,16):F(e,t,n,10)}let yr=(e,t,n)=>e.kind===`device`?I(e,t,n,{left:16,right:16,top:0,bottom:0}):e.kind===`node`?ze(e,t,n,_r):e.kind===`database`?I(e,t,n,{left:12,right:12,top:2,bottom:2}):e.kind===`external`?ze(e,t,n,Me):e.kind===`service`?Le(e,t,n,16):I(e,t,n),br=e=>({container:24,artifact:18,node:20})[e.kind]??0,xr=e=>e.kind===`external`?Math.min(28,e.size.width*.08):[`device`,`database`].includes(e.kind)?12:0;var Sr={id:`deployment`,label:`Deployment`,nodeKinds:[`device`,`node`,`container`,`artifact`,`service`,`database`,`external`],groupKinds:[`host`,`network`,`cluster`,`namespace`],edgeKinds:[`deploy`,`network`,`depends`],render:(e,...t)=>Zn(e,...t,vr,xr(e),br(e)),outline:vr,anchor:yr,cardLayout:!0,contentInset:xr,cardCorner:br};let Cr=(e,t,n)=>F(e,t,n,9);function wr(e,t,n,r,i,a){let o=e.attributes??[],s=e.methods??[],{classHeaderHeight:c,classRowHeight:l}=de(e),u=o.length?o.length*l+13:30,d=n+c,f=d+u,p=e.kind===`interface`?`«interface»`:e.kind===`abstract`?`«abstract»`:``,m=e.size.width-26,h=o.map((e,n)=>N(t+13,d+6+l/2+E.body*.35+n*l,M(e,m),`member`)).join(``),g=s.map((e,n)=>N(t+13,f+6+l/2+E.body*.35+n*l,M(e,m),`member`)).join(``);return`<g filter="url(#node-shadow)">${P(Cr(e,t,n),{fill:a.surface2,stroke:i,"stroke-width":e.appearance?.moduleColor||e.appearance?.ring?1.5:1})}<path d="M${t+9} ${n}H${t+e.size.width-9}Q${t+e.size.width} ${n} ${t+e.size.width} ${n+9}V${d}H${t}V${n+9}Q${t} ${n} ${t+9} ${n}Z" fill="${e.appearance?.header??r}"/><rect x="${t+1}" y="${f}" width="${e.size.width-2}" height="${Math.max(0,e.size.height-c-u-1)}" fill="${a.group}"/>${p?N(t+13,n+24,p,`stereotype`):``}${N(t+13,n+(p?50:E.classHeader/2+7),M(e.label,m),`shape-title`)}${e.subtitle?N(t+13,n+c-10,M(e.subtitle,m),`body`):``}<path d="M${t} ${d}H${t+e.size.width}M${t} ${f}H${t+e.size.width}" stroke="${a.rule}"/>${h}${g}</g>`}var Tr={dashedKinds:[`implementation`,`dependency`],id:`class`,label:`Class diagram`,nodeKinds:[`class`,`interface`,`abstract`],groupKinds:[],edgeKinds:[`association`,`inheritance`,`implementation`,`composition`,`aggregation`,`dependency`],render:wr,outline:Cr,compartments:!0,undirected:[`association`,`composition`,`aggregation`],markers:{inheritance:{end:`triangle`},implementation:{end:`triangle`},composition:{start:`diamond-filled`},aggregation:{start:`diamond-open`},dependency:{end:`arrow-open`}},edgeLabel:(e,t)=>e.label??([`composition`,`aggregation`,`inheritance`,`implementation`].includes(e.kind)?D(t,e.kind):``),validateEdge(e,t,n){for(let r of[`source`,`target`]){let i=e[`${r}Multiplicity`];if(i===void 0)continue;let a=typeof i==`string`&&/^(\\d+)(?:\\.\\.(\\d+|\\*))?$/.exec(i);i!==`*`&&(!a||a[2]&&a[2]!==`*`&&Number(a[2])<Number(a[1]))&&n.push(`${t}.${r}Multiplicity must be *, a non-negative integer, or an ascending range`),[`inheritance`,`implementation`,`dependency`].includes(e.kind)&&n.push(`${t}.${r}Multiplicity is only supported on associations, aggregation and composition`)}},endpointLabels(e,t){return[`source`,`target`].flatMap(n=>{let r=e[`${n}Multiplicity`];if(r===void 0)return[];let i=n===`source`?t[0]:t.at(-1),a=n===`source`?t[1]:t.at(-2),o=j(r,1/0),s=i.y===a.y,c=Math.sign(s?a.x-i.x:a.y-i.y),l=s?{x:i.x+c*(24+o.width/2),y:i.y-6-o.height/2}:{x:i.x+6+o.width/2,y:i.y+c*(24+o.height/2)};return[{role:n,label:r,labelPoint:l,labelBox:{x:l.x-o.width/2,y:l.y-o.height/2,...o}}]})}};let Er=(e,t,n)=>e.kind===`dataStore`?[[`path`,{d:`M${t+e.size.width} ${n}H${t}V${n+e.size.height}H${t+e.size.width}M${t+12} ${n}V${n+e.size.height}`}]]:F(e,t,n,e.kind===`process`?24:10),Dr=e=>({width:e.size.width-32,height:e.size.height-20});function Or(e,t,n,r,i){let a=Dr(e);return`<g class="shape-label">${P(Er(e,t,n),{fill:r,stroke:i,"stroke-width":1.2})}${Ae(t+e.size.width/2,n+e.size.height/2,e.label,a.width,a.height,e.subtitle)}</g>`}let kr=[sr,pr,We,gr,Sr,Tr,ct,Xe,{id:`dataflow`,label:`Data flow`,nodeKinds:[`external`,`process`,`dataStore`],groupKinds:[`ownership`,`external`],edgeKinds:[`data`],render:Or,outline:Er,textArea:Dr,anchor:(e,t,n)=>e.kind===`process`?Le(e,t,n,24):I(e,t,n)}],Ar=kr.map(e=>e.id);Object.fromEntries(kr.map(e=>[e.id,e.label]));let jr=new Map(kr.map(e=>[e.id,e]));if(jr.size!==kr.length)throw Error(`Duplicate diagram type`);let Y=e=>e?.meta?.diagramType??`architecture`,X=(e=`architecture`)=>jr.get(e),Mr=e=>X(e).sequence?null:[`flowchart`,`state`].includes(e)?{width:1600,height:2400}:{width:2400,height:1600},Nr=(e,t,n,r=!1)=>t===`architecture`&&In(e)?Rn(e):Te({...e,size:{...e.size,width:e.size.width-2*(X(t).contentInset?.(e)??0)}},n,r,X(t).cardCorner?.(e)),Pr=e=>{let t=Y(e);return!X(t).cardLayout||e.nodes.every(n=>!n.size||n.size.height>=Nr(n,t,e.meta?.locale).minHeight)},Fr=(e,t)=>Math.ceil(k(String(e??``).replace(/\\r?\\n/g,` `),1/0,t).width*1.15),Ir=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e,Math.ceil(t)]));function Lr(e,t,n=`en`){if(t===`architecture`&&In(e))return{width:300,height:Rn(e,e.size?.width??300).minHeight};let r=X(t),i=Fr(e.label,E.title),a=Fr(e.subtitle,E.body);if(t===`state`&&[`initial`,`final`].includes(e.kind)){if(!e.subtitle)return{width:28,height:28};let t=Math.max(i,a);return Ir({width:t+50,height:Math.max(80,k(e.label,t,E.title,29).height+5+k(e.subtitle,t,E.body,23.2).height+16)})}if(t===`state`&&Qe.some(t=>e.kind===`state`&&typeof e[t]==`string`&&e[t].trim())){let t=Math.max(240,Math.min(480,Math.max(Math.max(i,a)+60,...Qe.filter(t=>e[t]).map(t=>Fr(e[t],E.small)+et)))),n=k(e.label,t-24,E.title,29),r=k(e.subtitle,t-24,E.body,23.2);return Ir({width:t,height:Math.max(72,n.height+(r.height?5+r.height:0)+16)+$e({...e,size:{width:t,height:0}}).height})}if(r.sequence){let t=Math.max(160,Math.min(280,Math.max(i,a)+28));return{width:t,height:He({...e,size:{width:t}})+48}}if(e.kind===`actor`)return{width:Math.max(160,i+28,a+28),height:r.sequence?He(e)+48:104+(e.subtitle?24:0)};if(r.cardinalities){let t=e.fields.map(e=>{let t=Fr(e.name,E.body),n=Fr(e.type,E.body);return Math.max(t+n+74,n/.55)});return Ir({width:Math.max(240,i+26,a+60,...t),height:Math.max(E.erHeader/.4,E.erHeader+e.fields.length*E.erRow)})}if(r.compartments){let t=e.attributes??[],n=e.methods??[];return Ir({width:Math.max(240,i+26,a+26,...[...t,...n].map(e=>Fr(e,E.body)+26)),height:E.classHeader+(e.subtitle?24:0)+(t.length?t.length*E.classRow+13:30)+(n.length?n.length*E.classRow+13:30)})}if(r.cardLayout){let t=r.cardCorner?.(e)??0,o=Math.max(i+we(e,n).width+A.tagGap+t,a,Fr(Se(e),E.small))+A.textX+A.pad,s=r.contentInset?.({...e,size:{width:Math.min(A.maxWidth,o+56),height:0}})??0,c={width:Math.max(240,Math.min(A.maxWidth,o+2*s)),height:0};return c.height=Te({...e,size:{...c,width:c.width-2*(r.contentInset?.({...e,size:c})??0)}},n,!1,t).minHeight,Ir(c)}let o={width:Math.max(240,Math.min(480,Math.max(i,a)+60)),height:t===`flowchart`?72:100},s=r.textArea??(e=>({width:e.size.width-36,height:e.size.height-20}));for(let t=0;t<16;t++){let t=s({...e,size:o}),n=k(e.label,t.width,E.title,29),r=k(e.subtitle,t.width,E.body,23.2),i=n.height+(r.height?5+r.height:0);if(t.height>=i)return Ir(o);o.height+=Math.ceil((i-t.height)*2+2)}throw Error(`Cannot measure full text for ${t} node ${e.id}`)}let Z=(e,t)=>(e.layout?.order??0)-(t.layout?.order??0)||e.id.localeCompare(t.id,`en`),Rr=e=>e.members.map(e=>e.kind),zr=(e,t)=>Rr(e).some(e=>t.includes(e)),Br=(e,t)=>t.filter(t=>e.ids.has(t.source)||e.ids.has(t.target)).length;function Vr(e,t){let n=new Map(e.flatMap((e,t)=>[...e.ids].map(e=>[e,t]))),r=e.map(()=>new Set);for(let e of t){let t=n.get(e.source),i=n.get(e.target);t!==void 0&&i!==void 0&&t!==i&&r[t].add(i)}let i=0,a=new Map,o=new Map,s=[],c=new Set,l=[];function u(e){a.set(e,i),o.set(e,i++),s.push(e),c.add(e);for(let t of r[e])a.has(t)?c.has(t)&&o.set(e,Math.min(o.get(e),a.get(t))):(u(t),o.set(e,Math.min(o.get(e),o.get(t))));if(o.get(e)===a.get(e)){let t=[],n;do n=s.pop(),c.delete(n),t.push(n);while(n!==e);l.push(t)}}e.forEach((e,t)=>{a.has(t)||u(t)});let d=new Map(l.flatMap((e,t)=>e.map(e=>[e,t]))),f=new Map;function p(e){if(f.has(e))return f.get(e);let t=new Set;r.forEach((n,r)=>{d.get(r)!==e&&[...n].some(t=>d.get(t)===e)&&t.add(d.get(r))});let n=t.size?Math.max(...[...t].map(p))+1:0;return f.set(e,n),n}let m=[];return e.forEach((e,t)=>{let n=p(d.get(t));(m[n]??=[]).push(e)}),m.filter(Boolean).map(e=>e.sort(Z))}function Hr(e,t=1.45){if(!e.length)return[];if(e.length<=2)return[e];let n=t=>e.reduce((e,n)=>e+n.size[t],0)/e.length,r=Math.max(1,Math.min(e.length,Math.round(Math.sqrt(e.length*n(`height`)*t/n(`width`)))));return Array.from({length:Math.ceil(e.length/r)},(t,n)=>e.slice(n*r,(n+1)*r))}function Ur(e,t){let n=Vr(e,t.edges);return n.length===1&&e.length>5?Hr(n[0]):n.map(e=>e.sort((e,t)=>String(e.members[0]?.module??``).localeCompare(String(t.members[0]?.module??``))||Z(e,t)))}function Wr(e){let t=new Set,n=new Set,r=new Set,i=t=>e.edges.filter(e=>e.source===t).sort(Z);function a(e){if(!t.has(e)){t.add(e),n.add(e);for(let t of i(e))n.has(t.target)?r.add(t.id):a(t.target);n.delete(e)}}return[...e.layout?.primaryPath??e.nodes.filter(e=>[`initial`,`start`].includes(e.kind)).map(e=>e.id),...[...e.nodes].sort(Z).map(e=>e.id)].forEach(a),e.edges.filter(e=>!r.has(e.id))}function Gr(e,t){let n=t.layout?.primaryPath??[],r=Vr(e,Wr(t));return r.length===1&&e.length>5?Hr(r[0]):r.map(e=>e.sort((e,t)=>{let r=e=>e.members.some(e=>n.includes(e.id));return Number(r(t))-Number(r(e))||Z(e,t)}))}function Kr(e,t){let n=[...e].sort((e,n)=>Br(n,t.edges)-Br(e,t.edges)||Z(e,n)),r=[];for(;n.length;){let e=r.length?n.findIndex(e=>t.edges.some(t=>e.ids.has(t.source)&&r.at(-1).ids.has(t.target)||e.ids.has(t.target)&&r.at(-1).ids.has(t.source))):0;r.push(...n.splice(Math.max(0,e),1))}return Hr(r)}function qr(e,t){let n=new Map;for(let t of e){let e=Math.min(...t.members.map(o));n.set(e,[...n.get(e)??[],t])}return[...n].sort(([e],[t])=>e-t).flatMap(([,e])=>Vr(e,t.edges))}function Jr(e,t){let n=t.edges.filter(e=>[`inheritance`,`implementation`].includes(e.kind)).map(e=>({source:e.target,target:e.source})),r=e.filter(e=>n.some(t=>e.ids.has(t.source)||e.ids.has(t.target))),i=e.filter(e=>!r.includes(e)),a=Vr(r,n),o=Vr(i,t.edges),s=Math.max(-1,...a.map((e,t)=>e.some(e=>zr(e,[`abstract`,`interface`]))?t:-1))+1;return Array.from({length:Math.max(a.length,s+o.length)},(e,t)=>[...a[t]??[],...o[t-s]??[]])}function Yr(e,t){let n=e.filter(e=>zr(e,[`initial`])),r=e.filter(e=>zr(e,[`final`]));return[n,...Vr(e.filter(e=>!n.includes(e)&&!r.includes(e)),Wr(t)),r].filter(e=>e.length)}function Xr(e,t,n=0){let r=e.filter(e=>zr(e,[`actor`])),i=e.filter(e=>!r.includes(e));return r.length?[r.sort(Z),i.sort(Z)].filter(e=>e.length):n>=2?i.sort(Z).map(e=>[e]):Kr(i,t)}function Zr(e,t){let n=e.filter(e=>zr(e,[`dataStore`])),r=e.filter(e=>!n.includes(e)),i=n.flatMap(e=>t.edges.filter(t=>e.ids.has(t.target)).flatMap(n=>t.edges.filter(t=>e.ids.has(t.source)&&t.target!==n.source).map(e=>({source:n.source,target:e.target})))),a=Vr(r,[...t.edges,...i]),o=new Map(a.flatMap((e,t)=>e.flatMap(e=>[...e.ids].map(e=>[e,t]))));for(let e of n.sort(Z)){let n=t.edges.filter(t=>e.ids.has(t.source)||e.ids.has(t.target)).map(t=>o.get(e.ids.has(t.source)?t.target:t.source)).filter(e=>e!==void 0).sort((e,t)=>e-t),r=n.length?n[Math.floor(n.length/2)]:Math.max(0,a.length-1);(a[r]??=[]).push(e)}return a}let Qr=Object.freeze({capabilities:{structure:`capability-bands`,existing:`overview`},engineering:{structure:`engineering-layers`,existing:`overview`},relations:{structure:`component-clusters`,arrange:Ur},flowchart:{structure:`workflow-spine`,arrange:Gr},sequence:{structure:`lifelines`,existing:`sequence`},er:{structure:`entity-matrix`,arrange:Kr},deployment:{structure:`runtime-tiers`,arrange:qr},class:{structure:`contract-hierarchy`,arrange:Jr},state:{structure:`lifecycle-branches`,arrange:Yr},usecase:{structure:`actor-system`,arrange:Xr},dataflow:{structure:`process-store`,arrange:Zr}}),$r=e=>Qr[u(e)];function ei(e,t=0){let n=$r(e);if(!n?.arrange||u(e)!==`deployment`&&e.layout?.direction&&!e.layout?.version&&!e.layout?.strategy?.startsWith(`template-`)||e.edges.length===e.nodes.length-1&&e.nodes.every(t=>e.edges.filter(e=>e.source===t.id).length<=1&&e.edges.filter(e=>e.target===t.id).length<=1)&&![`flowchart`,`class`,`state`,`deployment`,`dataflow`,`usecase`].includes(u(e)))return null;let r=structuredClone(e),i=Y(r),a=X(i),o=h(a),s=g(a);r.nodes.forEach(e=>{e.size=Lr(e,i,r.meta.locale)}),r.edges.forEach(e=>{delete e.route});let c=r.groups??[];function l(a){let u=c.filter(e=>e.parentId===a).sort(Z).map(e=>{let t=l(e.id),n=Oe({...e,size:void 0}),r=n.height+o.groupHeadingGap,i=o.groupInset;return e.size={width:Math.max(n.width+2*i,t.width+2*i),height:r+t.height+i},{...e,members:t.members,ids:new Set(t.members.map(e=>e.id)),children:t.items,inset:{x:i,y:r},original:e}}),d=r.nodes.filter(e=>e.groupId===a).sort(Z).map(e=>({...e,members:[e],ids:new Set([e.id]),original:e})),f=[...u,...d].sort(Z),p=f.length>0&&f.every(e=>e.members.length&&e.members.every(t=>t.layout?.rank!==void 0&&t.layout.rank===e.members[0].layout.rank)),m=n.arrange(f,r,t);if(p){let e=new Map;for(let t of f){let n=t.members[0].layout.rank;e.set(n,[...e.get(n)??[],t])}m=[...e].sort(([e],[t])=>e-t).map(([,e])=>e.sort(Z))}if(t>=2){let e=new Map(f.flatMap(e=>[...e.ids].map(t=>[t,e])));for(let t=0;t<4;t++){let n=new Map(m.flatMap(e=>e.map((t,n)=>[t.id,(n+.5)/e.length])));for(let i of t%2?[...m].reverse():m){if(i.some(e=>e.layout?.order!==void 0))continue;let t=t=>{let a=r.edges.flatMap(n=>{let r=e.get(n.source),a=e.get(n.target);return r===t&&a&&!i.includes(a)?[a]:a===t&&r&&!i.includes(r)?[r]:[]});return a.length?a.reduce((e,t)=>e+n.get(t.id),0)/a.length:n.get(t.id)};i.sort((e,n)=>t(e)-t(n)||Z(e,n))}}}let h=i===`architecture`&&(e.layout?.direction??v(i)[0])===`right`||i===`dataflow`||i===`usecase`&&f.some(e=>zr(e,[`actor`]))||p&&(e.layout?.direction??v(i)[0])===`right`,g=h?`x`:`y`,_=h?`y`:`x`,y=h?`width`:`height`,b=h?`height`:`width`,x=Array.from({length:Math.max(0,...m.map(e=>e.length))},(e,t)=>Math.max(0,...m.map(e=>e[t]?.size[b]??0))),S=r.edges.filter(e=>m.some(t=>t.some(t=>t.ids.has(e.source))&&t.some(t=>t.ids.has(e.target))&&!t.some(t=>t.ids.has(e.source)&&t.ids.has(e.target)))),C=Math.max(0,...S.map(e=>j(Et(e,i,r.meta.locale))[b])),w=Math.max(s.nodeGap,Math.min(C+2*o.labelGap,240))+t*24,ee=x.map((e,t)=>x.slice(0,t).reduce((e,t)=>e+t+w,0)),te=x.reduce((e,t)=>e+t,0)+Math.max(0,x.length-1)*w,T=0;for(let e of m){let n=new Set(e.flatMap(e=>[...e.ids])),a=r.edges.filter(e=>n.has(e.source)||n.has(e.target)).map(e=>j(Et(e,i,r.meta.locale))),c=i===`class`&&r.edges.some(e=>(n.has(e.source)||n.has(e.target))&&(e.sourceMultiplicity!==void 0||e.targetMultiplicity!==void 0)),l=Math.max(i===`flowchart`?64:s.layerGap,c?176:i===`usecase`&&h?Math.max(160,r.edges.length*24):0,...a.map(e=>e[y]+2*o.labelGap))+t*24,u=Math.max(0,...e.map(e=>e.size[y])),d=[`flowchart`,`state`,`usecase`,`dataflow`].includes(i);e.forEach((t,n)=>{t.position={[g]:T+(d?(u-t.size[y])/2:0),[_]:(i===`architecture`?e.slice(0,n).reduce((e,t)=>e+t.size[b]+w,0):ee[n])+(d?(x[n]-t.size[b])/2:0)}}),e.length===1&&[`flowchart`,`class`,`state`].includes(i)&&(e[0].position[_]=(te-e[0].size[b])/2),T+=u+l}if(i===`flowchart`&&r.layout?.primaryPath?.length){let e=new Set(r.layout.primaryPath),t=f.filter(t=>t.members.some(t=>e.has(t.id))),n=Math.max(0,...t.map(e=>e.size.width));for(let e of m){let r=n+s.nodeGap;for(let i of e)t.includes(i)?i.position.x=(n-i.size.width)/2:(i.position.x=r,r+=i.size.width+s.nodeGap)}}return{width:Math.max(0,...f.map(e=>e.position.x+e.size.width)),height:Math.max(0,...f.map(e=>e.position.y+e.size.height)),items:f,members:f.flatMap(e=>e.members)}}function d(e,t){for(let n of e){let e={x:t.x+n.position.x,y:t.y+n.position.y};n.original.position=e,n.children&&d(n.children,{x:e.x+n.inset.x,y:e.y+n.inset.y})}}let f=l(void 0),p=Math.max(64,...r.edges.map(e=>j(Et(e,i,r.meta.locale)).width+64));if(d(f.items,{x:p,y:p}),i===`architecture`&&t>=2){let e=r.layout?.direction===`right`?`y`:`x`,t=e===`x`?`y`:`x`,n=e===`x`?`width`:`height`,i=new Map;for(let e of[...r.nodes].sort(Z)){let r=`${e.groupId}:${e.position[t]}:${e.size[n]}`;i.set(r,[...i.get(r)??[],e])}for(let t=0;t<2;t++){let t=new Map(r.nodes.map(t=>[t.id,t.position[e]+t.size[n]/2]));for(let[,n]of[...i].sort(([e],[t])=>e.localeCompare(t))){if(n.length<2||n.some(e=>e.layout?.order!==void 0))continue;let i=n.map(t=>t.position[e]).sort((e,t)=>e-t),a=e=>{let n=r.edges.filter(t=>t.source===e.id||t.target===e.id).map(t=>r.nodes.find(n=>n.id===(t.source===e.id?t.target:t.source))).filter(t=>t.groupId!==e.groupId);return n.length?n.reduce((e,n)=>e+t.get(n.id),0)/n.length:t.get(e.id)},o=new Map(n.map(e=>[e.id,a(e)]));n.sort((e,t)=>o.get(e.id)-o.get(t.id)||Z(e,t)),n.forEach((t,n)=>{t.position[e]=i[n]})}}}if(i===`usecase`){let e=r.nodes.filter(e=>e.kind===`actor`);for(let t of e){let e=r.edges.filter(e=>e.source===t.id||e.target===t.id).map(e=>r.nodes.find(n=>n.id===(e.source===t.id?e.target:e.source))).filter(e=>e.kind===`usecase`);e.length&&(t.position.y=e.reduce((e,t)=>e+t.position.y+t.size.height/2,0)/e.length-t.size.height/2)}e.sort((e,t)=>e.position.y-t.position.y||Z(e,t));for(let t=1;t<e.length;t++)e[t].position.y=Math.max(e[t].position.y,e[t-1].position.y+e[t-1].size.height+s.nodeGap)}r.layout={...r.layout,direction:i===`usecase`?`right`:i===`architecture`?e.layout?.direction??v(i)[0]:v(i)[0]};for(let e of r.nodes.filter(e=>[`decision`,`choice`].includes(e.kind))){let t=e=>{let t=r.nodes.find(t=>t.id===e.target);return t.position.x+t.size.width/2};r.edges.filter(t=>t.source===e.id&&t.target!==e.id).sort((e,n)=>t(e)-t(n)||Z(e,n)).forEach((t,n)=>{t.route={via:[{x:e.position.x+(n%2?e.size.width+12:-12),y:e.position.y+e.size.height/2}]}})}return r}function ti(e,t){if(Y(e)!==`sequence`)for(let n of e.nodes)for(let r of e.nodes){if(n.id>=r.id||n.groupId!==r.groupId)continue;let e=t.nodes.find(e=>e.id===n.id),i=t.nodes.find(e=>e.id===r.id);for(let[t,a]of[[`x`,`width`],[`y`,`height`]])for(let o of[0,.5]){let s=(e,n)=>e.position[t]+o*e.size[a]-n.position[t]-o*n.size[a];if(Math.abs(s(n,r))<.001&&Math.abs(s(e,i))>.001)return!1}}if(!e.layout?.strategy?.startsWith(`template-`))return!0;let n=u(e),r=new Map(t.nodes.map(e=>[e.id,e])),i=[`usecase`,`dataflow`].includes(n)?`x`:`y`,a=i===`x`?`width`:`height`;for(let t of e.nodes)for(let o of e.nodes)if(n===`deployment`&&t.id!==o.id&&t.groupId===o.groupId&&t.position.y===o.position.y&&r.get(t.id).position.y!==r.get(o.id).position.y||!(t.id===o.id||t.groupId!==o.groupId&&(n!==`usecase`||t.kind!==`actor`&&o.kind!==`actor`))&&t.position[i]+t.size[a]<=o.position[i]&&r.get(t.id).position[i]+r.get(t.id).size[a]>r.get(o.id).position[i])return!1;return!0}function ni(e,t){let n=structuredClone(e),r=n.groups??[],i=new Map(n.edges.map(e=>[e.id,e])),a=new Map;for(let e of[...n.edges].sort((e,t)=>e.order-t.order))for(let t of[e.source,e.target])a.has(t)||a.set(t,a.size);let o=(n.layout?.participantOrder??[...n.nodes].sort((e,t)=>(e.layout?.order??0)-(t.layout?.order??0)||(a.get(e.id)??1/0)-(a.get(t.id)??1/0)||(e.id<t.id?-1:1)).map(e=>e.id)).map(e=>n.nodes.find(t=>t.id===e)),s=32+t*8,c=12+t*4,l=(e,t)=>e.kind===`par`?t.label:`${e.kind===`loop`?`${e.loop.min}..${e.loop.max} `:``}[${t.guard}]`,u=(e,t)=>k(l(e,t),f.labelWidth,14,20),p=e=>k(e.body,f.labelWidth,16,24),m=32;for(let e of o)e.size=Lr(e,`sequence`,n.meta.locale),e.position={x:m,y:48},m+=e.size.width+s;xt(n,o);for(let e of n.edges)e.route={messageY:200+e.order*100};let h=V(n),g=wt(n),_=new Set(r.flatMap(e=>(e.operands??[]).flatMap(e=>e.edgeIds))),v=e=>(e.operands??[]).flatMap((t,n)=>ft(e,t,n,r)).map(e=>i.get(e).order),y=e=>e.edge?e.edge.order:Math.min(1/0,...v(e.group)),b=e=>e.sort((e,t)=>y(e)-y(t)||((e.edge??e.group).id<(t.edge??t.group).id?-1:1)),x=e=>(e.operands??[]).flatMap((t,n)=>ft(e,t,n,r)).map(e=>h.get(e)).flatMap(e=>[...e.points,{x:e.labelBox.x},{x:e.labelBox.x+e.labelBox.width}]),S=e=>{let t=new Set;for(let n=e;n&&!t.has(n.id);n=r.find(e=>e.id===n.parentId)){t.add(n.id);let e=x(n);if(e.length)return e}return[...h.values()].flatMap(e=>e.points)};for(let e of[...r].sort((e,t)=>mt(t,r)-mt(e,r)||e.id.localeCompare(t.id))){if(!e.operands)throw Error(`Sequence group ${e.id} needs explicit operands before automatic layout`);let t=S(e),n=r.filter(t=>t.parentId===e.id),a=Math.max(ht({...e,size:void 0}).width+16,...e.operands.flatMap(t=>[u(e,t).width,p(t).width])),s=e.operands.flatMap((t,n)=>ft(e,t,n,r)).map(e=>i.get(e).route.messageY),c=Math.min(...s),l=Math.max(...s),d=g.filter(e=>!s.length||e.y<=l&&e.y+e.height>=c).sort((e,t)=>e.x-t.x),f=t.length?Math.min(...t.map(e=>e.x)):o[0].position.x,m=Math.min(f,...d.filter(e=>e.x<f&&e.x+e.width>=f-8).map(e=>e.x))-a-40,h=Math.min(m,...n.map(e=>e.position.x-32)),_=Math.max(h+a+120,...t.map(e=>e.x+32),...n.map(e=>e.position.x+e.size.width+32));for(let e of d)e.x<_+8&&e.x+e.width>_-56-16&&(_=Math.max(_,e.x+e.width+56));e.position={x:h,y:0},e.size={width:Math.ceil(_-h),height:0}}function C(e,t){let n=h.get(e.id).labelBox,r=e.source===e.target,i=Math.ceil(t+(r?Math.max(16,n.height/2-15):n.height+6));return e.route={messageY:i},i+(r?Math.max(36,15+n.height/2):6)+c}function w(e,t){for(let n of b(e))t=n.edge?C(n.edge,t):ee(n.group,t);return t}function ee(e,t){e.position.y=t;let n=t+Math.max(36,ht(e).height+20)+c;for(let[t,a]of e.operands.entries()){n+=u(e,a).height+16,a.body&&(n+=p(a).height+16);let o=r.filter(n=>n.parentId===e.id&&n.parentOperandId===R(a,t));n=w([...a.edgeIds.map(e=>({edge:i.get(e)})),...o.map(e=>({group:e}))],n),n+=c}return e.size.height=n-t+16,t+e.size.height+c}let te=w([...n.edges.filter(e=>!_.has(e.id)).map(e=>({edge:e})),...r.filter(e=>!e.parentId).map(e=>({group:e}))],48+Math.max(...o.map(He))+d.labelGap),T=[...n.edges].sort((e,t)=>e.order-t.order);for(let e=1;e<T.length;e++)if(T[e].route.messageY<=T[e-1].route.messageY)throw Error(`Sequence fragment ranges interleave at ${T[e].id}; retain message order and correct operand ownership`);let ne=Math.max(0,32-Math.min(...r.map(e=>e.position.x),...o.map(e=>e.position.x)));for(let e of[...o,...r])e.position.x+=ne;for(let e of n.nodes)e.size.height=te+32-e.position.y;return n}function ri(e){let t=e.groups??[],n=h(X(Y(e))),r=new Set,i=a=>{if(r.has(a.id))return;r.add(a.id);let o=t.filter(e=>e.parentId===a.id);o.forEach(i);let s=[...o,...e.nodes.filter(e=>e.groupId===a.id)];if(!s.length)return;let c=Oe(a),l=c.height+n.groupHeadingGap,u=Math.max(0,Math.min(...s.map(e=>e.position.x))-n.groupInset),d=Math.max(0,Math.min(...s.map(e=>e.position.y))-l),f=Math.max(...s.map(e=>e.position.x+e.size.width))+n.groupInset,p=Math.max(...s.map(e=>e.position.y+e.size.height))+n.groupInset;a.position={x:u,y:d},a.size={width:Math.max(f-u,c.width+2*n.groupInset),height:p-d}};return t.forEach(i),e}function*ii(e){let t=Y(e);if(t===`sequence`)return;let n=X(t),r=h(n),i=g(n);if(yield*ai(e,t,r,i),[`architecture`,`deployment`,`er`,`dataflow`].includes(t)){let n=e.groups??[],a=e=>{let t=new Set([e]);for(let e=0;e!==t.size;){e=t.size;for(let e of n)t.has(e.parentId)&&t.add(e.id)}return t};if(t===`architecture`&&!e.layout?.primaryPath?.length){let t=n.filter(e=>!e.parentId).map(t=>{let r=a(t.id);return{item:t,groups:n.filter(e=>r.has(e.id)),nodes:e.nodes.filter(e=>r.has(e.groupId))}}),o=new Map(t.flatMap(e=>e.nodes.map(t=>[t.id,e]))),s=[],c=e=>{let t=[...e.nodes,...e.groups??[]],n=new Map(e.nodes.map(e=>[e.id,e])),r=(Math.max(...t.map(e=>e.position.x+e.size.width))-Math.min(...t.map(e=>e.position.x)))*(Math.max(...t.map(e=>e.position.y+e.size.height))-Math.min(...t.map(e=>e.position.y))),i=e.nodes.reduce((e,t)=>e+t.size.width*t.size.height,0),a=Math.sqrt(i/e.nodes.length),o=e.edges.reduce((e,t)=>{let r=n.get(t.source),i=n.get(t.target);return e+Math.abs(r.position.x+r.size.width/2-i.position.x-i.size.width/2)+Math.abs(r.position.y+r.size.height/2-i.position.y-i.size.height/2)},0);return r/i+o/(Math.max(1,e.edges.length)*a)};for(let a of t){if(a.nodes.some(e=>e.layout?.order!==void 0||e.layout?.rank!==void 0))continue;let l=new Set(e.edges.flatMap(e=>o.get(e.source)===a?[o.get(e.target)]:o.get(e.target)===a?[o.get(e.source)]:[]).filter(e=>e&&e!==a));for(let o of l)for(let l of[`x`,`y`])for(let u of[!1,!0]){let d=l===`x`?`width`:`height`,f=i.nodeGap,p={...o.item.position,[l]:u?o.item.position[l]+o.item.size[d]+f:o.item.position[l]-a.item.size[d]-f};if(p.x<0||p.y<0)continue;let m={...p,...a.item.size};if(t.some(e=>e!==a&&m.x<e.item.position.x+e.item.size.width+r.groupGap&&e.item.position.x<m.x+m.width+r.groupGap&&m.y<e.item.position.y+e.item.size.height+r.groupGap&&e.item.position.y<m.y+m.height+r.groupGap))continue;let h=new Set([...a.groups,...a.nodes].map(e=>e.id)),g=p.x-a.item.position.x,_=p.y-a.item.position.y,v=e=>e.map(e=>({id:e.id,size:e.size,position:h.has(e.id)?{x:e.position.x+g,y:e.position.y+_}:e.position})),y=c({...e,nodes:v(e.nodes),groups:v(n)});y<c(e)-.001&&s.push({ids:h,dx:g,dy:_,score:y,id:a.item.id+`:`+o.item.id+`:`+l+`:`+u})}}s.sort((e,t)=>e.score-t.score||e.id.localeCompare(t.id));for(let t of s.slice(0,12)){let n=structuredClone(e);for(let e of[...n.nodes,...n.groups])t.ids.has(e.id)&&(e.position.x+=t.dx,e.position.y+=t.dy);yield n}}let o=new Map;for(let t of[...n,...e.nodes].sort((e,t)=>e.id.localeCompare(t.id))){let r=n.includes(t),i=`${(r?t.parentId:t.groupId)??``}:${t.position.y}`,s=r?a(t.id):new Set,c=r?e.nodes.filter(e=>s.has(e.groupId)):[t],l={item:t,groups:r?n.filter(e=>s.has(e.id)):[],nodes:c};o.set(i,[...o.get(i)??[],l])}for(let[,t]of[...o].sort(([e],[t])=>e.localeCompare(t))){if(t.length<2||t.some(e=>e.nodes.some(e=>e.layout?.order!==void 0)))continue;let n=t.sort((e,t)=>e.item.position.x-t.item.position.x||e.item.id.localeCompare(t.item.id));for(let t=0;t<n.length;t++)for(let r=t+1;r<n.length;r++){let a=structuredClone(e),o=new Map([...a.nodes,...a.groups??[]].map(e=>[e.id,e])),s=[...n];[s[t],s[r]]=[s[r],s[t]];let c=n[0].item.position.x;for(let e=0;e<s.length;e++){let t=s[e],r=c-t.item.position.x;for(let e of[...t.groups,...t.nodes])o.get(e.id).position.x+=r;let a=e<n.length-1?Math.max(i.nodeGap,n[e+1].item.position.x-n[e].item.position.x-n[e].item.size.width):0;c+=t.item.size.width+a}yield a}}}}function*ai(e,t,n,r){let i=ri(structuredClone(e));JSON.stringify(i.groups)!==JSON.stringify(e.groups)&&(yield i);let a=[...e.nodes.map(e=>H(e,t)),...(e.groups??[]).flatMap(qt)],o=[];for(let[i,s]of[[`x`,`width`],[`y`,`height`]]){let c=Math.max(0,...e.edges.map(n=>j(Et(n,t,e.meta.locale))[s])),l=i===`y`&&[`class`,`state`,`flowchart`].includes(t)?r.layerGap:r.nodeGap,u=Math.max(l,c+2*n.labelGap),d=a.map(e=>[e[i],e[i]+e[s]]).sort((e,t)=>e[0]-t[0]),f=d[0]?.[1]??0;for(let[e,t]of d)e-f>u+1&&o.push({axis:i,extent:s,cut:e,remove:e-f-u}),f=Math.max(f,t)}o.sort((e,t)=>t.remove-e.remove||e.axis.localeCompare(t.axis)||e.cut-t.cut);for(let t of o)for(let n of[1,.5]){let r=structuredClone(e),i=t.remove*n,a=e=>e>=t.cut?e-i:e>t.cut-i?t.cut-i:e;for(let e of r.nodes)e.position[t.axis]>=t.cut&&(e.position[t.axis]-=i);for(let e of r.edges)e.route?.via&&(e.route.via=e.route.via.map(e=>({...e,[t.axis]:a(e[t.axis])}))),e.route?.labelAt&&(e.route.labelAt={...e.route.labelAt,[t.axis]:a(e.route.labelAt[t.axis])});for(let e of r.groups??[])e.position[t.axis]>=t.cut?e.position[t.axis]-=i:e.position[t.axis]+e.size[t.extent]>=t.cut&&(e.size[t.extent]-=i);yield r}}let oi=new Set([`source`,`code`,`config`,`schema`,`test`,`document`,`framework`,`inference`]),Q=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function $(e,t,n){(typeof e!=`string`||e.trim()===``)&&n.push(`${t} must be a non-empty string`)}function si(e,t,n){e!==void 0&&typeof e!=`string`&&n.push(`${t} must be a string`)}function ci(e,t,n){$(e.file,`${t}.file`,n),si(e.symbol,`${t}.symbol`,n),(!Number.isInteger(e.lineStart)||e.lineStart<1)&&n.push(`${t}.lineStart must be a positive integer`),e.lineEnd!==void 0&&(!Number.isInteger(e.lineEnd)||Number.isInteger(e.lineStart)&&e.lineEnd<e.lineStart)&&n.push(`${t}.lineEnd must be an integer at or after lineStart`)}function li(e,t,n,r=!1){for(let[i,a]of[[`position`,[`x`,`y`]],[`size`,[`width`,`height`]]])if(!(r&&e[i]===void 0)){if(!Q(e[i])){n.push(`${t}.${i} is required`);continue}for(let r of a){let a=e[i][r];(!Number.isFinite(a)||a<0)&&n.push(`${t}.${i}.${r} must be a non-negative finite number`)}}}function ui(e,t,n){if(!e||typeof e!=`object`||Array.isArray(e)){n.push(`${t} must be an object`);return}for(let r of[`x`,`y`])(!Number.isFinite(e[r])||e[r]<0)&&n.push(`${t}.${r} must be a non-negative finite number`)}function di(e,t,n){e!==void 0&&(!Array.isArray(e)||e.some(e=>typeof e!=`string`||e.trim()===``))&&n.push(`${t} must be an array of non-empty strings`)}function fi(e,t){di(e,`meta.notes`,t),Array.isArray(e)&&(e.length>6&&t.push(`meta.notes must have at most 6 items`),e.forEach((e,n)=>{typeof e==`string`&&[...e].length>120&&t.push(`meta.notes[${n}] exceeds 120 characters`)}))}function pi(e,{inputOnly:t=!1,audit:n=!0}={}){let r=[];if(!Q(e))return[`graph must be an object`];Q(e.meta)||r.push(`meta must be an object`),$(e.meta?.title,`meta.title`,r),$(e.meta?.sourceRef,`meta.sourceRef`,r),e.meta?.viewId!==void 0&&$(e.meta.viewId,`meta.viewId`,r),e.meta?.architectureView!==void 0&&((e.meta.diagramType??`architecture`)!==`architecture`||![`relations`,`capabilities`,`engineering`].includes(e.meta.architectureView))&&r.push(`meta.architectureView is unsupported`);for(let t of[`subtitle`,`scope`])si(e.meta?.[t],`meta.${t}`,r);fi(e.meta?.notes,r),e.meta?.locale!==void 0&&!pe.includes(e.meta.locale)&&r.push(`meta.locale is unsupported`);let i=Y(e);Ar.includes(i)||r.push(`meta.diagramType is unsupported`);let a=X(i)??X(`architecture`);if((!Array.isArray(e.nodes)||e.nodes.length===0)&&r.push(`nodes must be a non-empty array`),Array.isArray(e.edges)||r.push(`edges must be an array`),e.groups!==void 0&&!Array.isArray(e.groups)&&r.push(`groups must be an array when provided`),r.length)return r;let o=new Set,s=new Set;for(let[n,c]of(e.nodes??[]).entries()){let e=`nodes[${n}]`;if(!Q(c)){r.push(`${e} must be an object`);continue}$(c?.id,`${e}.id`,r),$(c?.label,`${e}.label`,r),si(c.subtitle,`${e}.subtitle`,r),c.module!==void 0&&$(c.module,`${e}.module`,r),a.nodeKinds.includes(c?.kind)||r.push(`${e}.kind is unsupported for ${i}`),li(c??{},e,r,t),typeof c.id==`string`&&o.has(c.id)&&r.push(`${e}.id duplicates ${c.id}`),o.add(c?.id),s.add(c?.id),c.source!==void 0&&!Q(c.source)?r.push(`${e}.source must be an object`):c.source&&(ci(c.source,`${e}.source`,r),c.source.kind!==void 0&&!oi.has(c.source.kind)&&r.push(`${e}.source.kind is unsupported`));for(let t of[`facts`,`tags`,`attributes`,`methods`])di(c[t],`${e}.${t}`,r);if(c.fields!==void 0){if(!Array.isArray(c.fields))r.push(`${e}.fields must be an array`);else for(let[t,n]of c.fields.entries()){let i=`${e}.fields[${t}]`;if(!Q(n)){r.push(`${i} must be an object`);continue}$(n.name,`${i}.name`,r),$(n.type,`${i}.type`,r),n.key!==void 0&&![`PK`,`FK`,`UK`].includes(n.key)&&r.push(`${i}.key is unsupported`),n.nullable!==void 0&&typeof n.nullable!=`boolean`&&r.push(`${i}.nullable must be boolean`)}}a.validateNode?.(c,e,r,{requireString:$,validateStringArray:di})}for(let[n,s]of(e.groups??[]).entries()){let e=`groups[${n}]`;if(!Q(s)){r.push(`${e} must be an object`);continue}$(s?.id,`${e}.id`,r),$(s?.label,`${e}.label`,r),a.groupKinds.includes(s?.kind)||r.push(`${e}.kind is unsupported for ${i}`),li(s??{},e,r,t),typeof s.id==`string`&&o.has(s.id)&&r.push(`${e}.id duplicates ${s.id}`),o.add(s?.id)}let c=new Set,l=new Set;for(let[n,o]of(e.edges??[]).entries()){let e=`edges[${n}]`;if(!Q(o)){r.push(`${e} must be an object`);continue}$(o?.id,`${e}.id`,r),si(o.label,`${e}.label`,r),o.module!==void 0&&$(o.module,`${e}.module`,r),$(o?.source,`${e}.source`,r),$(o?.target,`${e}.target`,r),a.edgeKinds.includes(o?.kind)||r.push(`${e}.kind is unsupported for ${i}`),oi.has(o?.evidence)||r.push(`${e}.evidence is unsupported`),o.site!==void 0&&!Q(o.site)?r.push(`${e}.site must be an object`):o.site&&ci(o.site,`${e}.site`,r),typeof o.id==`string`&&c.has(o.id)&&r.push(`${e}.id duplicates ${o.id}`),c.add(o?.id),typeof o.source==`string`&&!s.has(o.source)&&r.push(`${e}.source does not name a node: ${o.source}`),typeof o.target==`string`&&!s.has(o.target)&&r.push(`${e}.target does not name a node: ${o.target}`),o?.route!==void 0&&(!o.route||typeof o.route!=`object`||Array.isArray(o.route)?r.push(`${e}.route must be an object`):(o.route.via!==void 0&&(Array.isArray(o.route.via)?o.route.via.forEach((t,n)=>ui(t,`${e}.route.via[${n}]`,r)):r.push(`${e}.route.via must be an array`)),o.route.labelAt!==void 0&&ui(o.route.labelAt,`${e}.route.labelAt`,r),o.route.messageY!==void 0&&(i!==`sequence`||!Number.isFinite(o.route.messageY)||o.route.messageY<0)&&r.push(`${e}.route.messageY must be a non-negative finite number for sequence`))),i===`sequence`&&!t&&o.route?.messageY===void 0&&r.push(`${e}.route.messageY is required for a positioned sequence message; regenerate with --layout auto`),a.validateEdge?.(o,e,r,{requireString:$,sequenceOrders:l})}return r.length===0&&r.push(...Ln(e,{inputOnly:t,validateAnchor:ci,evidenceKinds:oi})),r.length===0&&r.push(...mi(e)),r.length===0&&r.push(...pt(e)),r.length===0&&r.push(...Ct(e,{inputOnly:t})),r.length===0&&!t&&n&&r.push(...Xt(e).errors),r}function mi(e){let t=[],n=Y(e),r=n===`sequence`,i=new Map(e.nodes.map(e=>[e.id,e])),o=new Map((e.groups??[]).map(e=>[e.id,e]));for(let i of e.nodes)if(i.groupId!==void 0&&(r?t.push(`node ${i.id}.groupId is not supported for sequence participants`):typeof i.groupId!=`string`||!o.has(i.groupId)?t.push(`node ${i.id}.groupId does not name a group: ${String(i.groupId)}`):n===`usecase`&&i.kind===`actor`&&t.push(`node ${i.id}.groupId places an actor inside a system boundary`)),i.layout!==void 0&&(Q(i.layout)?i.layout.tier!==void 0&&(n!==`deployment`||!a.includes(i.layout.tier))&&t.push(`node ${i.id}.layout.tier requires deployment and one of ${a.join(`, `)}`):t.push(`node ${i.id}.layout must be an object`),Q(i.layout)))for(let e of[`rank`,`order`])i.layout[e]!==void 0&&(!Number.isInteger(i.layout[e])||i.layout[e]<0)&&t.push(`node ${i.id}.layout.${e} must be a non-negative integer`);if(!r)for(let e of o.values()){if(e.parentId===void 0)continue;(typeof e.parentId!=`string`||!o.has(e.parentId))&&t.push(`group ${e.id}.parentId does not name a group: ${String(e.parentId)}`);let n=new Set([e.id]),r=o.get(e.parentId);for(;r;){if(n.has(r.id)){t.push(`group ${e.id}.parentId contains a cycle at ${r.id}`);break}n.add(r.id),r=o.get(r.parentId)}}if(e.layout!==void 0&&!Q(e.layout)?t.push(`layout must be an object`):e.layout?.direction!==void 0&&!v(n).includes(e.layout.direction)&&t.push(`layout.direction must be one of ${v(n).join(`, `)} for ${n}`),e.layout?.overviewConnections!==void 0&&(!c(e)||![`within-category`,`all`].includes(e.layout.overviewConnections))&&t.push(`layout.overviewConnections requires an architecture overview and within-category or all`),Q(e.layout))for(let n of[`primaryPath`,`participantOrder`]){let a=e.layout?.[n];if(a!==void 0){if(!Array.isArray(a)||!a.length||a.some(e=>typeof e!=`string`||!i.has(e))||new Set(a).size!==a.length){t.push(`layout.${n} must be a non-empty list of distinct node IDs`);continue}if(n===`participantOrder`){(!r||a.length!==i.size)&&t.push(`layout.participantOrder must be a complete permutation of sequence participants`);let e=a.map(e=>i.get(e).layout?.order).filter(e=>e!==void 0);e.some((t,n)=>n&&t<=e[n-1])&&t.push(`layout.participantOrder conflicts with node.layout.order`)}else{r&&t.push(`layout.primaryPath is not supported for sequence; use participantOrder`);for(let n=1;n<a.length;n++){e.edges.some(e=>e.source===a[n-1]&&e.target===a[n])||t.push(`layout.primaryPath has no directed edge from ${a[n-1]} to ${a[n]}`);let r=i.get(a[n-1]).layout?.rank,o=i.get(a[n]).layout?.rank;r!==void 0&&o!==void 0&&r>=o&&t.push(`layout.primaryPath conflicts with node.layout.rank at ${a[n]}`)}}}}r&&new Set(e.nodes.map(e=>e.layout?.rank).filter(e=>e!==void 0)).size>1&&t.push(`sequence participants must share one layout.rank`);for(let r of e.edges){let e=i.get(r.source),a=i.get(r.target);n===`class`&&[`inheritance`,`implementation`].includes(r.kind)&&(r.kind===`implementation`&&a.kind!==`interface`&&t.push(`edge ${r.id} implementation target must be an interface`),e.layout?.rank!==void 0&&a.layout?.rank!==void 0&&a.layout.rank>=e.layout.rank&&t.push(`edge ${r.id} layout.rank must place parent/interface ${a.id} above ${e.id}`)),n===`usecase`&&[`include`,`extend`].includes(r.kind)&&(e.kind!==`usecase`||a.kind!==`usecase`)&&t.push(`edge ${r.id} ${r.kind} endpoints must both be use cases`)}return t}let hi=e=>({...e.position,...e.size}),gi=(e,t)=>t.x>=e.x&&t.y>=e.y&&t.x+t.width<=e.x+e.width&&t.y+t.height<=e.y+e.height,_i=(e,t)=>e.x<t.x+t.width&&t.x<e.x+e.width&&e.y<t.y+t.height&&t.y<e.y+e.height,vi=e=>e.points.slice(1).map((t,n)=>[e.points[n],t]);function yi(e,t,n,r=[]){return r.length||(r=(String(n).includes(`\n- `)?String(n).split(`\n- `).slice(1):[String(n)]).map(n=>{let r=[`nodes`,`edges`,`groups`].flatMap(t=>(Array.isArray(e?.[t])?e[t]:[]).filter((e,r)=>e&&typeof e==`object`&&(n.includes(`${t}[${r}]`)||RegExp(`(^|[^\\\\w.-])${String(e.id).replace(/[.*+?^${}()|[\\]\\\\]/g,`\\\\$&`)}($|[^\\\\w.-])`).test(n))));for(let t of r.filter(e=>e.source&&e.target))r.push(...(e.nodes??[]).filter(e=>e.id===t.source||e.id===t.target));return r.push(...J(e??{}).filter(e=>String(n).includes(e.id))),{ruleId:`${t}.invalid`,severity:`error`,diagramType:Y(e),elementIds:r.map(e=>e.id),measured:n,required:`Valid ${t} content and complete notation`,bounds:r.filter(e=>e.position&&e.size).map(e=>({...e.position,...e.size})),remediation:t===`semantic`?`Correct the reported input field or reference before layout.`:`Correct the identified content or geometry and retry without removing semantic facts.`}})),Object.assign(Error(String(n)),{diagnostics:r,phases:{semantic:{status:t===`semantic`?`failed`:`passed`},geometry:{status:t===`semantic`?`not-checked`:t===`geometry`?`failed`:`passed`},rendering:{status:t===`rendering`?`failed`:`not-checked`}}})}function bi(e,t={}){let n=pi(e,{inputOnly:!0}),r=n.length?[]:pi(e,{audit:!1}),i=n.length||r.length?null:xi(e,t),a=[...n,...r,...i?.errors??[]],o={semantic:{status:n.length?`failed`:`passed`},geometry:{status:n.length?`not-checked`:a.length?`failed`:`passed`},rendering:{status:`not-checked`}};if(a.length)throw yi(e,n.length?`semantic`:`geometry`,`Diagram quality failed:\\n- ${a.join(`\n- `)}`,i?.diagnostics??[]);return{...o,diagnostics:i.diagnostics}}function xi(e,{strictEdgeIds:i=null}={}){e=S(e);let a=Xt(e),s=Y(e),l=X(s),u=c(e)?{...h(l),nodeGap:14,labelGap:6,parallelGap:8,groupInset:22,groupHeadingGap:14}:h(l),d=[...a.diagnostics,...a.crossings],f=(e,t,n,r,i,a)=>d.push({ruleId:e,severity:`error`,diagramType:s,elementIds:t,measured:n,required:r,bounds:i,remediation:a}),p=new Map(e.nodes.map(e=>[e.id,H(e,s)])),m=new Map(e.nodes.map(e=>[e.id,e]));if(!l.sequence){let t=e.nodes.flatMap(t=>e.nodes.filter(e=>t.layout?.rank!==void 0&&e.layout?.rank!==void 0&&t.layout.rank<e.layout.rank).map(e=>[t,e])),n=e.layout?.primaryPath??[];if(s===`flowchart`&&!n.length&&e.edges.length===e.nodes.length-1){let t=new Map(e.nodes.map(t=>[t.id,e.edges.filter(e=>e.source===t.id)])),r=e.nodes.filter(t=>!e.edges.some(e=>e.target===t.id));if(r.length===1&&[...t.values()].every(e=>e.length<=1)){let i=[],a=new Set;for(let e=r[0].id;e&&!a.has(e);e=t.get(e)[0]?.target)i.push(e),a.add(e);i.length===e.nodes.length&&(n=i)}}let i=[`flowchart`,`state`].includes(s)?n.slice(1).map((e,t)=>[m.get(n[t]),m.get(e)]):[],c=[`flowchart`,`state`].includes(s)?e.nodes.filter(e=>[`decision`,`choice`].includes(e.kind)).map(t=>{let n=e.edges.filter(e=>e.source===t.id&&e.target!==t.id);return{node:t,branches:n,sides:new Set(n.map(e=>a.routes.get(e.id).sourceSide))}}).filter(e=>e.branches.length>=2):[],l=y(s,e.layout),d=l?`y`:`x`,h=l?`height`:`width`,g=(e,t,n)=>t.position.x-e.position.x-e.size.width+.001>=u.nodeGap&&(!n||t.position.y<e.position.y);for(let[e,n]of t){let t=n.position[d]-e.position[d]-e.size[h];t+.001<u.nodeGap&&f(`semantic.rank`,[e.id,n.id],t,u.nodeGap,[p.get(e.id),p.get(n.id)],`Keep declared ranks in separate layers along the reading direction.`)}if(l&&e.nodes.length>5&&Math.max(...e.nodes.map(e=>e.position.y))<Math.min(...e.nodes.map(e=>e.position.y+e.size.height))&&f(`semantic.single-row`,e.nodes.map(e=>e.id),1,`multiple rows`,[...p.values()],`Arrange responsibility layers or wrap peer nodes; tiny y offsets do not create another row.`),s===`deployment`&&(r(e)||e.layout?.strategy?.startsWith(`template-runtime-tiers`)||e.nodes.some(e=>e.layout?.tier)))for(let t of e.nodes)for(let n of e.nodes){if(o(t)>=o(n))continue;let e=n.position.y-t.position.y-t.size.height;e+.001<u.nodeGap&&f(`semantic.deployment-tier`,[t.id,n.id],e,u.nodeGap,[p.get(t.id),p.get(n.id)],`Keep external, application, infrastructure and data tiers from top to bottom.`)}if(s===`class`)for(let t of e.edges.filter(e=>[`inheritance`,`implementation`].includes(e.kind))){let e=m.get(t.source),n=m.get(t.target),r=e.position.y-n.position.y-n.size.height;r+.001<u.nodeGap&&f(`semantic.class-hierarchy`,[t.id,n.id,e.id],r,u.nodeGap,[p.get(n.id),p.get(e.id)],`Place the parent class or interface above its child or implementation.`)}if(s===`state`)for(let t of e.nodes.filter(e=>[`initial`,`final`].includes(e.kind)))for(let n of e.nodes.filter(e=>![`initial`,`final`].includes(e.kind))){let e=t.kind===`initial`?n.position.y-t.position.y-t.size.height:t.position.y-n.position.y-n.size.height;e+.001<u.nodeGap&&f(`semantic.state-endpoint`,[t.id,n.id],e,u.nodeGap,[p.get(t.id),p.get(n.id)],`Keep initial symbols above the lifecycle and final symbols below it.`)}for(let[t,n]of i){let r=n.position[d]-t.position[d]-t.size[h];r+.001<u.nodeGap&&(e.layout?.strategy?.startsWith(`template-`)||!g(t,n,!0))&&f(`semantic.primary-path`,[t.id,n.id],r,u.nodeGap,[p.get(t.id),p.get(n.id)],`Keep the declared or unambiguous main path directed downwards; a column fold continues it at the top of the next column.`)}for(let{node:e,branches:t,sides:n}of c)[`left`,`right`].every(e=>n.has(e))||f(`semantic.branch-sides`,[e.id,...t.map(e=>e.id)],[...n],[`left`,`right`],[p.get(e.id)],`Give alternatives separate left and right corridors while retaining their real targets and merges.`)}let g=!Pr(e);for(let t=0;t<e.nodes.length;t++){let n=e.nodes[t],r=p.get(n.id),i=Lr(n,s,e.meta.locale);if(l.cardLayout){let t=Nr(n,s,e.meta.locale,g).minHeight;n.size.height<t&&f(`text.node-height`,[n.id],n.size.height,t,[r],`Increase height to keep full title and subtitle at 20/16px.`)}else if(l.textArea&&n.kind!==`actor`&&![`initial`,`final`].includes(n.kind)){let e=l.textArea(n),t=k(n.label,e.width,20,29),i=k(n.subtitle,e.width,16,23.2),a=t.height+(i.height?i.height+5:0);(e.width<=0||e.height<a)&&f(`text.shape-safe-area`,[n.id],e,{width:1,height:a},[r],`Enlarge the shape safety region to contain all text.`)}else(n.size.width<i.width||n.size.height<i.height)&&f(`text.node-size`,[n.id],n.size,i,[r],`Increase dimensions for complete headers, members and fields.`);for(let i of e.nodes.slice(t+1)){let e=p.get(i.id),t=Ut(r,e);t+.001<u.nodeGap&&f(`spacing.nodes`,[n.id,i.id],t,u.nodeGap,[r,e],`Separate the visible node outlines.`)}}let _=e.edges.flatMap(e=>{let t=a.routes.get(e.id);return[...t.label?[{id:e.id,box:t.labelBox}]:[],...(t.endpointLabels??[]).map(t=>({id:e.id,role:t.role,box:t.labelBox}))]});for(let t=0;t<_.length;t++){let n=_[t];for(let[e,t]of p){let r=Ut(n.box,t);r+.001<u.labelGap&&f(`spacing.label-node`,[n.id,e],r,u.labelGap,[n.box,t],`Move the label away from the node.`)}for(let e of _.slice(t+1)){let t=Ut(n.box,e.box);t+.001<u.labelGap&&f(`spacing.labels`,[n.id,e.id],t,u.labelGap,[n.box,e.box],`Separate complete label bounds.`)}let r=u.labelEdgeGap;for(let t of e.edges)if(t.id!==n.id){let e={x:n.box.x-r,y:n.box.y-r,width:n.box.width+2*r,height:n.box.height+2*r};vi(a.routes.get(t.id)).some(([t,n])=>U(t,n,e))&&f(`spacing.label-edge`,[n.id,t.id],`<6`,r,[n.box],`Reserve a clear label area away from other relations.`)}}for(let t=0;t<e.edges.length;t++){let r=e.edges[t],i=a.routes.get(r.id),o=vi(i);if(!l.sequence&&n(e)&&i.label){let e=i.labelPoint,t=Math.min(...o.map(([t,n])=>Math.hypot(e.x-Math.max(Math.min(t.x,n.x),Math.min(Math.max(t.x,n.x),e.x)),e.y-Math.max(Math.min(t.y,n.y),Math.min(Math.max(t.y,n.y),e.y)))));t>.001&&f(`label.on-route`,[r.id],t,0,[i.labelBox],`Keep the relationship label centred on its own straight segment.`)}if(!l.sequence)for(let[e,t,n]of[[i.points[0],i.points[1],r.route?.via?.[0]],[i.points.at(-1),i.points.at(-2),r.route?.via?.at(-1)]]){let a=Math.hypot(e.x-t.x,e.y-t.y),o=l.endpointStub??u.endpoint,s=n&&a?((n.x-e.x)*(t.x-e.x)+(n.y-e.y)*(t.y-e.y))/a:a,c=i.points.length===2&&s>=0?a:Math.min(a,s);c+.001<o&&f(`route.endpoint-stub`,[r.id],c,o,[{...e,width:0,height:0}],`Reserve a straight outward segment for the endpoint symbol.`)}for(let n of e.edges.slice(t+1)){let e=a.routes.get(n.id),t=[];for(let[a,s]of o)for(let[o,c]of vi(e)){let l=a.y===s.y;if(l!==(o.y===c.y))continue;let d=l?`x`:`y`,f=l?`y`:`x`,p=Math.min(Math.max(a[d],s[d]),Math.max(o[d],c[d]))-Math.max(Math.min(a[d],s[d]),Math.min(o[d],c[d])),m=Math.abs(a[f]-o[f]);if(p<=.001||m+.001>=u.parallelGap)continue;let h=(e,t)=>[{id:e.source,point:t.points[0]},{id:e.target,point:t.points.at(-1)}];m<.001&&p<=u.endpoint&&h(r,i).some(t=>h(n,e).some(e=>t.id===e.id&&t.point.x===e.point.x&&t.point.y===e.point.y&&(t.point===a||t.point===s)&&(e.point===o||e.point===c)))||t.push({x:Math.min(a.x,s.x,o.x,c.x),y:Math.min(a.y,s.y,o.y,c.y),width:Math.max(a.x,s.x,o.x,c.x)-Math.min(a.x,s.x,o.x,c.x),height:Math.max(a.y,s.y,o.y,c.y)-Math.min(a.y,s.y,o.y,c.y),separation:m,shared:p})}t.length&&f(`route.parallel-channels`,[r.id,n.id],Math.min(...t.map(e=>e.separation)),u.parallelGap,t,`Separate parallel channels; only the initial ${u.endpoint}px at one common port may overlap.`)}}if(!l.sequence){let t=e.groups??[],n=new Map(t.map(e=>[e.id,e])),r=(e,t)=>{let r=e.groupId,i=new Set;for(;r&&!i.has(r);){if(r===t.id)return!0;i.add(r),r=n.get(r)?.parentId}return!1};for(let n=0;n<t.length;n++){let i=t[n],a=hi(i),o=u.groupInset,s=Oe(i).height+u.groupHeadingGap,c={x:a.x+o,y:a.y+s,width:a.width-2*o,height:a.height-s-o},l=[...e.nodes.filter(e=>e.groupId===i.id),...t.filter(e=>e.parentId===i.id)];for(let e of l)gi(c,hi(e))||f(`group.member-inset`,[i.id,e.id],hi(e),c,[a,hi(e)],`Expand the owning boundary to preserve heading and side clearance.`);for(let t of e.nodes)!r(t,i)&&_i(a,p.get(t.id))&&f(`group.unowned-node`,[i.id,t.id],t.groupId??null,`outside`,[a,p.get(t.id)],`Keep nodes outside boundaries they do not belong to.`);for(let e of t.slice(n+1))i.parentId===e.parentId&&Ut(a,hi(e))+.001<u.groupGap&&f(`group.sibling-gap`,[i.id,e.id],Ut(a,hi(e)),u.groupGap,[a,hi(e)],`Separate sibling boundaries.`)}}let v=[];if(!l.sequence){let n=Zt(e),r=e.nodes.map(e=>({node:e,probe:sn(e,s)}));for(let o of e.edges){let c=a.routes.get(o.id),l=vi(c),u=t(e)||i?.has(o.id),f=(e,t,n,r,i,a,o=!0)=>d.push({ruleId:e,severity:o&&u?`error`:`warning`,diagramType:s,elementIds:t,measured:n,required:r,bounds:i,remediation:a}),m=1/0,h=0;for(let{node:e,probe:t}of r){let r=l.flatMap(([n,r],i)=>e.id===o.source&&i===0||e.id===o.target&&i===l.length-1?[]:[t(n,r)]),i=Math.min(...r);m=Math.min(m,i),i+.001<n.node&&f(`route.node-clearance`,[o.id,e.id],i,n.node,[p.get(e.id)],`Arrange this relation with clear space around the visible component.`)}for(let t of e.groups??[]){let e=l.map(([e,n])=>cn(e,n,t)).filter(e=>e.distance+.001<n.boundary);h+=e.reduce((e,t)=>e+t.length,0),e.length&&f(`route.boundary-clearance`,[o.id,t.id],Math.min(...e.map(e=>e.distance)),n.boundary,[hi(t)],`Cross the boundary perpendicularly or leave a clear parallel channel.`)}let g=l.reduce((e,[t,n])=>e+Math.abs(t.x-n.x)+Math.abs(t.y-n.y),0),_=c.points[0],y=c.points.at(-1),b=Math.abs(_.x-y.x)+Math.abs(_.y-y.y),x=Math.max(0,c.points.length-2),S=b?g/b:null,C=l.slice(1,-1).filter(([e,t])=>Math.abs(e.x-t.x)+Math.abs(e.y-t.y)<n.node-.001).length;v.push({edgeId:o.id,length:g,bends:x,detour:S,minimumClearance:Number.isFinite(m)?m:null,boundaryHugging:h,shortSegments:C}),(x>4||C||o.source!==o.target&&S>1.8)&&f(`route.complexity`,[o.id],{bends:x,shortSegments:C,detour:S},{bends:4,shortSegments:0,detour:1.8},[{x:Math.min(...c.points.map(e=>e.x)),y:Math.min(...c.points.map(e=>e.y)),width:Math.max(...c.points.map(e=>e.x))-Math.min(...c.points.map(e=>e.x)),height:Math.max(...c.points.map(e=>e.y))-Math.min(...c.points.map(e=>e.y))}],`Try a simpler corridor or arrange nearby components; necessary detours remain supported.`,!1)}}for(let t of Yn(e,a.routes)){let n=J(e).filter(e=>t.includes(e.id));f(`overview.section`,n.map(e=>e.id),t,`Complete section text and contained items`,n.map(hi),`Expand and re-layout the identified section without removing facts.`)}let b=[...d.filter(e=>e.severity===`error`).map(e=>`${e.ruleId}: ${e.elementIds.join(`, `)} (${JSON.stringify(e.measured)}; required ${JSON.stringify(e.required)})`)];return{...a,errors:b,diagnostics:d,routeMetrics:v,bounds:Ot(e,a.routes)}}let Si=(e,t)=>e.id<t.id?-1:+(e.id>t.id);function Ci(e,t=xi(e)){let n=[...t.routes.values()],r=Ot(e,t.routes),a=Math.max(1,n.length),o=e.nodes.reduce((t,n)=>{let r=H(n,Y(e));return t+r.width*r.height},0),s=Math.sqrt(o/Math.max(1,e.nodes.length)),c=n.reduce((e,t)=>e+t.points.slice(1).reduce((e,n,r)=>e+Math.abs(n.x-t.points[r].x)+Math.abs(n.y-t.points[r].y),0),0),l=n.reduce((e,t)=>e+Math.max(0,t.points.length-2),0),u=t.crossings.reduce((e,t)=>e+t.measured,0),d=Mr(Y(e)),f=r.width/Math.max(1,r.height),p=d?Math.abs(f-d.width/d.height):0;return{errors:t.errors.length,aspectRatio:f,aspectPenalty:p,area:r.width*r.height,length:c,bends:l,crossings:u,cost:r.width*r.height/o+c/(a*s)+i.bends*l/a+i.crossings*u/a}}let wi=(e,t)=>e.errors<t.errors||e.errors===t.errors&&(e.cost<t.cost-.001||Math.abs(e.cost-t.cost)<.001&&e.aspectPenalty<t.aspectPenalty-.001);function Ti(e,t){return t?new Set([t,...e.edges.filter(e=>e.source===t||e.target===t).flatMap(e=>[e.source,e.target])]):new Set(e.nodes.map(e=>e.id))}function Ei(e,t){if(!ti(e,t))return!1;let n=X(Y(e)).sequence,r=n?`x`:e.layout?.direction===`right`?`y`:`x`;for(let n of e.nodes)for(let i of e.nodes){if(n.id>=i.id||n.groupId!==i.groupId||n.layout?.order===void 0||i.layout?.order===void 0)continue;let e=t.nodes.find(e=>e.id===n.id),a=t.nodes.find(e=>e.id===i.id);if((n.position[r]-i.position[r])*(e.position[r]-a.position[r])<0)return!1}if([`flowchart`,`state`].includes(Y(e)))for(let n of e.edges){let r=e.nodes.find(e=>e.id===n.source),i=e.nodes.find(e=>e.id===n.target);if(r.id===i.id)continue;let a=t.nodes.find(e=>e.id===r.id),o=t.nodes.find(e=>e.id===i.id);if(r.position.x===i.position.x&&i.position.y>r.position.y&&o.position.y<=a.position.y||i.position.x>r.position.x&&i.position.y<r.position.y&&(o.position.x<=a.position.x||o.position.y>=a.position.y))return!1}if(n){let n=[...e.nodes].sort((e,t)=>e.position.x-t.position.x||Si(e,t));for(let e=1;e<n.length;e++)if(t.nodes.find(t=>t.id===n[e].id).position.x<=t.nodes.find(t=>t.id===n[e-1].id).position.x)return!1}return!0}function Di(e){let t=structuredClone(e),n=h(X(`sequence`)),r=[...t.nodes].sort((e,t)=>e.position.x-t.position.x||Si(e,t)),i=r.map(e=>e.position.x);for(let e=1;e<r.length;e++){let t=r[e-1].position.x+r[e-1].size.width+n.nodeGap-r[e].position.x;if(t>0)for(let n=e;n<r.length;n++)r[n].position.x+=t}xt(t,r);let a=r.map((e,t)=>e.position.x-i[t]);if(a.some(e=>e>156))return null;let o=e=>e+(a[i.findLastIndex(t=>t<=e)]??0);for(let e of t.groups??[]){let t=o(e.position.x+e.size.width);e.position.x=o(e.position.x),e.size.width=t-e.position.x}for(let e of t.edges)e.route?.via&&(e.route.via=e.route.via.map(e=>({...e,x:o(e.x)}))),e.route?.labelAt&&(e.route.labelAt={...e.route.labelAt,x:o(e.route.labelAt.x)});return t}function Oi(e,t,n){let r=structuredClone(e),i=Y(r),a=X(i),o=h(a);if(a.sequence)return Di(e);let s=new Set([t]),c=new Set([t]);for(let e=0;e!==c.size;){e=c.size;for(let e of r.edges)(c.has(e.source)||c.has(e.target))&&(c.add(e.source),c.add(e.target))}for(let t=0;t<r.nodes.length*2;t++){let t=!1;for(let a of[...r.nodes].sort(Si))for(let l of r.nodes){if(a.id>=l.id||!s.has(a.id)&&!s.has(l.id))continue;let u=Math.max(a.position.x,l.position.x)-Math.min(a.position.x+a.size.width,l.position.x+l.size.width),d=Math.max(a.position.y,l.position.y)-Math.min(a.position.y+a.size.height,l.position.y+l.size.height);if(Math.hypot(Math.max(0,u),Math.max(0,d))>=o.nodeGap)continue;let f=n===`x`||[`flowchart`,`state`,`class`].includes(i)?`y`:n===`y`?`x`:u<=0?`y`:`x`,p=f===`x`?`width`:`height`,m=a.position[f]<=l.position[f]?a:l,h=m===a?l:a,g=h.position[f],_=m.position[f]+m.size[p]+o.nodeGap-g;for(let t of r.nodes.filter(e=>e.groupId===h.groupId&&(c.has(e.id)||Math.abs(e.position[f]-g)<.001)&&e.position[f]>=g)){t.position[f]+=_;let n=e.nodes.find(e=>e.id===t.id).position;if(Math.abs(t.position[f]-n[f])>156)return null;s.add(t.id)}t=!0}if(!t)break}let l=r.groups??[],u=new Map(l.map(e=>[e.id,e])),d=(e,t)=>{for(let n=u.get(e),r=0;n&&r<l.length;n=u.get(n.parentId),r++)if(n.id===t)return!0;return!1};for(let t of r.nodes.filter(e=>s.has(e.id)))for(let n of l){if(d(t.groupId,n.id))continue;let i=Math.min(t.position.x+t.size.width,n.position.x+n.size.width)-Math.max(t.position.x,n.position.x),a=Math.min(t.position.y+t.size.height,n.position.y+n.size.height)-Math.max(t.position.y,n.position.y);if(i<=0||a<=0)continue;let c=[`x`,`y`].map(e=>{let r=e===`x`?`width`:`height`;return{axis:e,delta:n.position[e]+n.size[r]/2>=t.position[e]+t.size[r]/2?t.position[e]+t.size[r]+o.nodeGap-n.position[e]:t.position[e]-o.nodeGap-n.position[e]-n.size[r]}}).sort((e,t)=>Math.abs(e.delta)-Math.abs(t.delta)),u=[...l.filter(e=>d(e.id,n.id)),...r.nodes.filter(e=>d(e.groupId,n.id))],f=c.find(({axis:t,delta:n})=>u.every(r=>{let i=[...e.nodes,...e.groups??[]].find(e=>e.id===r.id);return r.position[t]+n>=0&&Math.abs(r.position[t]+n-i.position[t])<=156}));if(!f)return null;for(let e of u)e.position[f.axis]+=f.delta,r.nodes.includes(e)&&s.add(e.id)}return ki(r),r}function ki(e){let t=h(X(Y(e))),n=e.groups??[],r=new Set,i=a=>{if(r.has(a.id))return;r.add(a.id);let o=n.filter(e=>e.parentId===a.id);o.forEach(i);let s=[...e.nodes.filter(e=>e.groupId===a.id),...o];if(!s.length)return;let c=Oe(a).height+t.groupHeadingGap,l=t.groupInset,u=Math.max(0,Math.min(a.position.x,...s.map(e=>e.position.x-l))),d=Math.max(0,Math.min(a.position.y,...s.map(e=>e.position.y-c))),f=Math.max(a.position.x+a.size.width,...s.map(e=>e.position.x+e.size.width+l)),p=Math.max(a.position.y+a.size.height,...s.map(e=>e.position.y+e.size.height+l));a.position={x:u,y:d},a.size={width:f-u,height:p-d}};return n.forEach(i),e}function Ai(e,{focusId:t=null,move:n=!0,evaluations:r=60,passes:i=3,laneAxis:a=null,growBoundaries:o=!1,global:s=!1,edgeIds:l=null}={}){a??=/fold\\d+c$/.test(e.layout?.strategy??``)?`x`:/fold\\d+r?$/.test(e.layout?.strategy??``)?`y`:null;let u=structuredClone(e),d=Ti(u,t),f=[],p=structuredClone(e);o&&ki(p),o&&l&&(l=un(u,p,l));let m=l?new Set(l):t?new Set(p.edges.filter(e=>d.has(e.source)||d.has(e.target)).map(e=>e.id)):new Set(p.edges.map(e=>e.id)),h=Ci(p,xi(p,{strictEdgeIds:m})),_,v=0,y=(e,n=null,r=!1)=>{let a=!r&&l?new Set(l):!r&&t?new Set(e.edges.filter(e=>d.has(e.source)||d.has(e.target)).map(e=>e.id)):null;!s&&!r&&(a=un(p,e,a??m)),v++;try{if(s){let t=xi(e),n=Ci(e,t);if(!n.errors&&wi(n,h))return f.push({errors:0,cost:n.cost,routing:{termination:`preserved-clear-paths`}}),p=e,h=n,!0;if(!n.errors&&v>1&&(a=un(p,e),!a.size))return!1;if(n.errors){let n=new Set(t.diagnostics.filter(e=>e.severity===`error`).flatMap(e=>e.elementIds));a=new Set(e.edges.filter(e=>n.has(e.id)).map(e=>e.id))}}let t=Nn(e,{passes:n||s&&v>1?1:i,edgeIds:a,accept:bi}),r=t.graph,o=Ci(r,xi(r,{strictEdgeIds:a??m}));if(f.push({errors:o.errors,cost:o.cost,routing:t.report}),wi(o,h)){for(let e of a??[])m.add(e);return p=r,h=o,_=t.report,!0}}catch(e){f.push({reason:e.routingReason??`quality`,elementIds:e.elementIds??[],routing:e.routingReport})}return!1};if(r>0&&y(p),n&&t&&h.errors&&v<r&&!c(e)){let e=Oi(p,t,a);e&&Ei(u,e)&&y(e)}if(s&&n&&!c(e)&&Y(e)!==`sequence`){let t=!0;for(;t&&v<r;){t=!1;for(let n of ii(p)){if(v>=r)break;if(!(n.nodes.some(e=>e.position.x<0||e.position.y<0)||![`architecture`,`er`].includes(Y(e))&&!Ei(u,n))&&!xi(n).diagnostics.some(e=>e.severity===`error`&&(e.ruleId.startsWith(`semantic.`)||e.ruleId.startsWith(`group.`)||e.ruleId===`spacing.nodes`))&&y(n,null,!0)){t=!0;break}}}}if(n&&!s&&!c(e)){let t=X(Y(e)),n=g(t).nodeGap,i=!0;for(;i&&v<r;){i=!1;let o=new Set(xi(p).diagnostics.filter(e=>e.severity===`error`).flatMap(e=>e.elementIds)),s=[...p.nodes].filter(e=>d.has(e.id)).sort((e,t)=>Number(o.has(t.id))-Number(o.has(e.id))||Si(e,t));for(let c of s){let s=p.edges.filter(e=>e.source===c.id||e.target===c.id).map(e=>p.nodes.find(t=>t.id===(e.source===c.id?e.target:e.source))).filter(e=>e.id!==c.id),l=s.length?s:p.nodes.filter(e=>e.id!==c.id&&e.groupId===c.groupId),d=c.position,f=u.nodes.find(e=>e.id===c.id).position,m=[];for(let r of[...l].sort(Si))for(let i of t.sequence?[`x`]:a?[a===`x`?`y`:`x`]:[`flowchart`,`state`,`class`].includes(Y(e))?[`y`]:[`x`,`y`]){let e=i===`x`?`width`:`height`,t=r.position[i]-d[i]>0?r.position[i]-c.size[e]-n:r.position[i]+r.size[e]+n;Math.abs(t-d[i])>1&&m.push({axis:i,value:d[i]+Math.sign(t-d[i])*Math.min(32,Math.abs(t-d[i]))})}if(o.size)for(let n of t.sequence?[`x`]:a?[a===`x`?`y`:`x`]:[`flowchart`,`state`,`class`].includes(Y(e))?[`y`]:[`x`,`y`])for(let e of[-32,32])m.push({axis:n,value:d[n]+e});let h=new Set;for(let{axis:e,value:t}of m){if(v>=r)break;let n=e+`:`+t;if(h.has(n)||t<0||Math.abs(t-f[e])>156)continue;h.add(n);let a=structuredClone(p);if(a.nodes.find(e=>e.id===c.id).position[e]=t,Ei(u,a)&&!xi(a).diagnostics.some(e=>e.severity===`error`&&(e.ruleId.startsWith(`semantic.`)||e.ruleId.startsWith(`group.`)||e.ruleId===`spacing.nodes`))&&y(a,c.id)){i=!0;break}}if(i||v>=r)break}}}let b={budget:r,evaluations:v,termination:v>=r?`evaluation-budget`:n?`no-improving-local-candidate`:`routing-only`,provenImpossible:!1,routing:_,before:Ci(u),after:h,attempts:f};try{bi(p,{strictEdgeIds:m})}catch(e){throw Object.assign(e,{routingReport:{...b,termination:`no-valid-candidate`}})}let x=p.nodes.filter(e=>{let t=u.nodes.find(t=>t.id===e.id);return t.position.x!==e.position.x||t.position.y!==e.position.y}).map(e=>e.id);return{graph:p,movedNodeIds:x,report:b}}function ji(n,r,i={}){let a=[n];if(!t(r)&&Y(r)!==`sequence`&&[...r.nodes,...r.groups??[]].every(e=>e.position&&e.size)){let t=structuredClone(r);t.layout={...t.layout,version:e,strategy:t.layout?.strategy??`legacy-refined`},a.push(t)}let o=i.evaluations??60,s,c,l=0,u=0,d=[];for(let[e,t]of a.entries()){let n=Math.floor(o/(a.length-e));try{let r=Ai(t,{...i,global:!0,evaluations:n});o-=r.report.evaluations,l+=r.report.evaluations,d.push(r.report),(!s||wi(r.report.after,s.report.after))&&(s=r,u=e)}catch(e){c=e;let t=e.routingReport?.evaluations??n;o-=t,l+=t,d.push(e.routingReport??{termination:`no-valid-candidate`,evaluations:t})}}if(!s)throw Object.assign(c??Error(`No valid refinement candidate`),{routingReport:{budget:i.evaluations??60,evaluations:l,termination:`no-valid-candidate`,seeds:d}});return{...s,report:{...s.report,budget:i.evaluations??60,evaluations:l,selectedSeed:u,...a.length>1?{seeds:d}:{}}}}self.onmessage=({data:t})=>{try{let n;if(t.overview)n={graph:t.options?.relayout?Gn(t.graph,bi):Un(t.graph,t.reference??t.graph,bi)};else if(t.options?.relayout&&t.graph.meta.diagramType===`sequence`){let r=[];for(let n=0;n<6;n++)try{let i=ni(t.graph,n);i.layout={...i.layout,version:e},bi(i),r.push({graph:i})}catch{}if(r.sort((e,t)=>Ci(e.graph).cost-Ci(t.graph).cost),!r.length)throw Error(`No valid sequence layout`);n=r[0]}else if(t.options?.relayout&&ei(t.graph)){let r=[];for(let n=0;n<4;n++)try{let i=ei(t.graph,n);i.layout={...i.layout,version:e,strategy:`template-${$r(i).structure}-${n}`},r.push(Nn(i,{passes:3,accept:bi}))}catch{}if(r.sort((e,t)=>Ci(e.graph).cost-Ci(t.graph).cost),!r.length)throw Error(`No valid semantic layout`);n=ji(r[0].graph,t.graph,{global:!0,evaluations:60})}else n=Ai(t.options?.relayout?{...t.graph,layout:{...t.graph.layout,version:e}}:t.graph,{...t.options,global:!!t.options?.relayout});self.postMessage({result:{graph:n.graph,movedNodeIds:n.movedNodeIds??[]}})}catch(e){self.postMessage({error:{message:e.message,diagnostics:e.diagnostics??[],routingReport:e.routingReport}})}}})();',Yg=typeof self<`u`&&self.Blob&&new Blob([`(self.URL || self.webkitURL).revokeObjectURL(self.location.href);`,Jg],{type:`text/javascript;charset=utf-8`});function Xg(e){let t;try{if(t=Yg&&(self.URL||self.webkitURL).createObjectURL(Yg),!t)throw``;let n=new Worker(t,{name:e?.name});return n.addEventListener(`error`,()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),n}catch{return new Worker(`data:text/javascript;charset=utf-8,`+encodeURIComponent(Jg),{name:e?.name})}}var Zg=(e,t)=>Math.ceil(Z(String(e??``).replace(/\r?\n/g,` `),1/0,t).width*1.15),Qg=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e,Math.ceil(t)]));function $g(e,t,n=`en`){if(t===`architecture`&&bg(e))return{width:300,height:Sg(e,e.size?.width??300).minHeight};let r=$(t),i=Zg(e.label,X.title),a=Zg(e.subtitle,X.body);if(t===`state`&&[`initial`,`final`].includes(e.kind)){if(!e.subtitle)return{width:28,height:28};let t=Math.max(i,a);return Qg({width:t+50,height:Math.max(80,Z(e.label,t,X.title,29).height+5+Z(e.subtitle,t,X.body,23.2).height+16)})}if(t===`state`&&Dm.some(t=>e.kind===`state`&&typeof e[t]==`string`&&e[t].trim())){let t=Math.max(240,Math.min(480,Math.max(Math.max(i,a)+60,...Dm.filter(t=>e[t]).map(t=>Zg(e[t],X.small)+Am)))),n=Z(e.label,t-24,X.title,29),r=Z(e.subtitle,t-24,X.body,23.2);return Qg({width:t,height:Math.max(72,n.height+(r.height?5+r.height:0)+16)+km({...e,size:{width:t,height:0}}).height})}if(r.sequence){let t=Math.max(160,Math.min(280,Math.max(i,a)+28));return{width:t,height:dm({...e,size:{width:t}})+48}}if(e.kind===`actor`)return{width:Math.max(160,i+28,a+28),height:r.sequence?dm(e)+48:104+(e.subtitle?24:0)};if(r.cardinalities){let t=e.fields.map(e=>{let t=Zg(e.name,X.body),n=Zg(e.type,X.body);return Math.max(t+n+74,n/.55)});return Qg({width:Math.max(240,i+26,a+60,...t),height:Math.max(X.erHeader/.4,X.erHeader+e.fields.length*X.erRow)})}if(r.compartments){let t=e.attributes??[],n=e.methods??[];return Qg({width:Math.max(240,i+26,a+26,...[...t,...n].map(e=>Zg(e,X.body)+26)),height:X.classHeader+(e.subtitle?24:0)+(t.length?t.length*X.classRow+13:30)+(n.length?n.length*X.classRow+13:30)})}if(r.cardLayout){let t=r.cardCorner?.(e)??0,o=Math.max(i+Sp(e,n).width+yp.tagGap+t,a,Zg(bp(e),X.small))+yp.textX+yp.pad,s=r.contentInset?.({...e,size:{width:Math.min(yp.maxWidth,o+56),height:0}})??0,c={width:Math.max(240,Math.min(yp.maxWidth,o+2*s)),height:0};return c.height=Cp({...e,size:{...c,width:c.width-2*(r.contentInset?.({...e,size:c})??0)}},n,!1,t).minHeight,Qg(c)}let o={width:Math.max(240,Math.min(480,Math.max(i,a)+60)),height:t===`flowchart`?72:100},s=r.textArea??(e=>({width:e.size.width-36,height:e.size.height-20}));for(let t=0;t<16;t++){let t=s({...e,size:o}),n=Z(e.label,t.width,X.title,29),r=Z(e.subtitle,t.width,X.body,23.2),i=n.height+(r.height?5+r.height:0);if(t.height>=i)return Qg(o);o.height+=Math.ceil((i-t.height)*2+2)}throw Error(`Cannot measure full text for ${t} node ${e.id}`)}var e_=Object.freeze([`external`,`application`,`infrastructure`,`data`]);function t_(e){return e.layout?.tier?e_.indexOf(e.layout.tier):[`external`,`actor`,`client`].includes(e.kind)?0:e.kind===`database`?3:[`queue`,`cache`].includes(e.kind)?2:1}var n_=new Set([`source`,`code`,`config`,`schema`,`test`,`document`,`framework`,`inference`]),r_=e=>typeof e==`object`&&!!e&&!Array.isArray(e);function i_(e,t,n){(typeof e!=`string`||e.trim()===``)&&n.push(`${t} must be a non-empty string`)}function a_(e,t,n){e!==void 0&&typeof e!=`string`&&n.push(`${t} must be a string`)}function o_(e,t,n){i_(e.file,`${t}.file`,n),a_(e.symbol,`${t}.symbol`,n),(!Number.isInteger(e.lineStart)||e.lineStart<1)&&n.push(`${t}.lineStart must be a positive integer`),e.lineEnd!==void 0&&(!Number.isInteger(e.lineEnd)||Number.isInteger(e.lineStart)&&e.lineEnd<e.lineStart)&&n.push(`${t}.lineEnd must be an integer at or after lineStart`)}function s_(e,t,n,r=!1){for(let[i,a]of[[`position`,[`x`,`y`]],[`size`,[`width`,`height`]]])if(!(r&&e[i]===void 0)){if(!r_(e[i])){n.push(`${t}.${i} is required`);continue}for(let r of a){let a=e[i][r];(!Number.isFinite(a)||a<0)&&n.push(`${t}.${i}.${r} must be a non-negative finite number`)}}}function c_(e,t,n){if(!e||typeof e!=`object`||Array.isArray(e)){n.push(`${t} must be an object`);return}for(let r of[`x`,`y`])(!Number.isFinite(e[r])||e[r]<0)&&n.push(`${t}.${r} must be a non-negative finite number`)}function l_(e,t,n){e!==void 0&&(!Array.isArray(e)||e.some(e=>typeof e!=`string`||e.trim()===``))&&n.push(`${t} must be an array of non-empty strings`)}function u_(e,t){l_(e,`meta.notes`,t),Array.isArray(e)&&(e.length>6&&t.push(`meta.notes must have at most 6 items`),e.forEach((e,n)=>{typeof e==`string`&&[...e].length>120&&t.push(`meta.notes[${n}] exceeds 120 characters`)}))}function d_(e,{inputOnly:t=!1,audit:n=!0}={}){let r=[];if(!r_(e))return[`graph must be an object`];r_(e.meta)||r.push(`meta must be an object`),i_(e.meta?.title,`meta.title`,r),i_(e.meta?.sourceRef,`meta.sourceRef`,r),e.meta?.viewId!==void 0&&i_(e.meta.viewId,`meta.viewId`,r),e.meta?.architectureView!==void 0&&((e.meta.diagramType??`architecture`)!==`architecture`||![`relations`,`capabilities`,`engineering`].includes(e.meta.architectureView))&&r.push(`meta.architectureView is unsupported`);for(let t of[`subtitle`,`scope`])a_(e.meta?.[t],`meta.${t}`,r);u_(e.meta?.notes,r),e.meta?.locale!==void 0&&!yf.includes(e.meta.locale)&&r.push(`meta.locale is unsupported`);let i=Zm(e);Ym.includes(i)||r.push(`meta.diagramType is unsupported`);let a=$(i)??$(`architecture`);if((!Array.isArray(e.nodes)||e.nodes.length===0)&&r.push(`nodes must be a non-empty array`),Array.isArray(e.edges)||r.push(`edges must be an array`),e.groups!==void 0&&!Array.isArray(e.groups)&&r.push(`groups must be an array when provided`),r.length)return r;let o=new Set,s=new Set;for(let[n,c]of(e.nodes??[]).entries()){let e=`nodes[${n}]`;if(!r_(c)){r.push(`${e} must be an object`);continue}i_(c?.id,`${e}.id`,r),i_(c?.label,`${e}.label`,r),a_(c.subtitle,`${e}.subtitle`,r),c.module!==void 0&&i_(c.module,`${e}.module`,r),a.nodeKinds.includes(c?.kind)||r.push(`${e}.kind is unsupported for ${i}`),s_(c??{},e,r,t),typeof c.id==`string`&&o.has(c.id)&&r.push(`${e}.id duplicates ${c.id}`),o.add(c?.id),s.add(c?.id),c.source!==void 0&&!r_(c.source)?r.push(`${e}.source must be an object`):c.source&&(o_(c.source,`${e}.source`,r),c.source.kind!==void 0&&!n_.has(c.source.kind)&&r.push(`${e}.source.kind is unsupported`));for(let t of[`facts`,`tags`,`attributes`,`methods`])l_(c[t],`${e}.${t}`,r);if(c.fields!==void 0){if(!Array.isArray(c.fields))r.push(`${e}.fields must be an array`);else for(let[t,n]of c.fields.entries()){let i=`${e}.fields[${t}]`;if(!r_(n)){r.push(`${i} must be an object`);continue}i_(n.name,`${i}.name`,r),i_(n.type,`${i}.type`,r),n.key!==void 0&&![`PK`,`FK`,`UK`].includes(n.key)&&r.push(`${i}.key is unsupported`),n.nullable!==void 0&&typeof n.nullable!=`boolean`&&r.push(`${i}.nullable must be boolean`)}}a.validateNode?.(c,e,r,{requireString:i_,validateStringArray:l_})}for(let[n,s]of(e.groups??[]).entries()){let e=`groups[${n}]`;if(!r_(s)){r.push(`${e} must be an object`);continue}i_(s?.id,`${e}.id`,r),i_(s?.label,`${e}.label`,r),a.groupKinds.includes(s?.kind)||r.push(`${e}.kind is unsupported for ${i}`),s_(s??{},e,r,t),typeof s.id==`string`&&o.has(s.id)&&r.push(`${e}.id duplicates ${s.id}`),o.add(s?.id)}let c=new Set,l=new Set;for(let[n,o]of(e.edges??[]).entries()){let e=`edges[${n}]`;if(!r_(o)){r.push(`${e} must be an object`);continue}i_(o?.id,`${e}.id`,r),a_(o.label,`${e}.label`,r),o.module!==void 0&&i_(o.module,`${e}.module`,r),i_(o?.source,`${e}.source`,r),i_(o?.target,`${e}.target`,r),a.edgeKinds.includes(o?.kind)||r.push(`${e}.kind is unsupported for ${i}`),n_.has(o?.evidence)||r.push(`${e}.evidence is unsupported`),o.site!==void 0&&!r_(o.site)?r.push(`${e}.site must be an object`):o.site&&o_(o.site,`${e}.site`,r),typeof o.id==`string`&&c.has(o.id)&&r.push(`${e}.id duplicates ${o.id}`),c.add(o?.id),typeof o.source==`string`&&!s.has(o.source)&&r.push(`${e}.source does not name a node: ${o.source}`),typeof o.target==`string`&&!s.has(o.target)&&r.push(`${e}.target does not name a node: ${o.target}`),o?.route!==void 0&&(!o.route||typeof o.route!=`object`||Array.isArray(o.route)?r.push(`${e}.route must be an object`):(o.route.via!==void 0&&(Array.isArray(o.route.via)?o.route.via.forEach((t,n)=>c_(t,`${e}.route.via[${n}]`,r)):r.push(`${e}.route.via must be an array`)),o.route.labelAt!==void 0&&c_(o.route.labelAt,`${e}.route.labelAt`,r),o.route.messageY!==void 0&&(i!==`sequence`||!Number.isFinite(o.route.messageY)||o.route.messageY<0)&&r.push(`${e}.route.messageY must be a non-negative finite number for sequence`))),i===`sequence`&&!t&&o.route?.messageY===void 0&&r.push(`${e}.route.messageY is required for a positioned sequence message; regenerate with --layout auto`),a.validateEdge?.(o,e,r,{requireString:i_,sequenceOrders:l})}return r.length===0&&r.push(...xg(e,{inputOnly:t,validateAnchor:o_,evidenceKinds:n_})),r.length===0&&r.push(...f_(e)),r.length===0&&r.push(...fh(e)),r.length===0&&r.push(...Th(e,{inputOnly:t})),r.length===0&&!t&&n&&r.push(...ig(e).errors),r}function f_(e){let t=[],n=Zm(e),r=n===`sequence`,i=new Map(e.nodes.map(e=>[e.id,e])),a=new Map((e.groups??[]).map(e=>[e.id,e]));for(let i of e.nodes)if(i.groupId!==void 0&&(r?t.push(`node ${i.id}.groupId is not supported for sequence participants`):typeof i.groupId!=`string`||!a.has(i.groupId)?t.push(`node ${i.id}.groupId does not name a group: ${String(i.groupId)}`):n===`usecase`&&i.kind===`actor`&&t.push(`node ${i.id}.groupId places an actor inside a system boundary`)),i.layout!==void 0&&(r_(i.layout)?i.layout.tier!==void 0&&(n!==`deployment`||!e_.includes(i.layout.tier))&&t.push(`node ${i.id}.layout.tier requires deployment and one of ${e_.join(`, `)}`):t.push(`node ${i.id}.layout must be an object`),r_(i.layout)))for(let e of[`rank`,`order`])i.layout[e]!==void 0&&(!Number.isInteger(i.layout[e])||i.layout[e]<0)&&t.push(`node ${i.id}.layout.${e} must be a non-negative integer`);if(!r)for(let e of a.values()){if(e.parentId===void 0)continue;(typeof e.parentId!=`string`||!a.has(e.parentId))&&t.push(`group ${e.id}.parentId does not name a group: ${String(e.parentId)}`);let n=new Set([e.id]),r=a.get(e.parentId);for(;r;){if(n.has(r.id)){t.push(`group ${e.id}.parentId contains a cycle at ${r.id}`);break}n.add(r.id),r=a.get(r.parentId)}}if(e.layout!==void 0&&!r_(e.layout)?t.push(`layout must be an object`):e.layout?.direction!==void 0&&!jf(n).includes(e.layout.direction)&&t.push(`layout.direction must be one of ${jf(n).join(`, `)} for ${n}`),e.layout?.overviewConnections!==void 0&&(!ff(e)||![`within-category`,`all`].includes(e.layout.overviewConnections))&&t.push(`layout.overviewConnections requires an architecture overview and within-category or all`),r_(e.layout))for(let n of[`primaryPath`,`participantOrder`]){let a=e.layout?.[n];if(a!==void 0){if(!Array.isArray(a)||!a.length||a.some(e=>typeof e!=`string`||!i.has(e))||new Set(a).size!==a.length){t.push(`layout.${n} must be a non-empty list of distinct node IDs`);continue}if(n===`participantOrder`){(!r||a.length!==i.size)&&t.push(`layout.participantOrder must be a complete permutation of sequence participants`);let e=a.map(e=>i.get(e).layout?.order).filter(e=>e!==void 0);e.some((t,n)=>n&&t<=e[n-1])&&t.push(`layout.participantOrder conflicts with node.layout.order`)}else{r&&t.push(`layout.primaryPath is not supported for sequence; use participantOrder`);for(let n=1;n<a.length;n++){e.edges.some(e=>e.source===a[n-1]&&e.target===a[n])||t.push(`layout.primaryPath has no directed edge from ${a[n-1]} to ${a[n]}`);let r=i.get(a[n-1]).layout?.rank,o=i.get(a[n]).layout?.rank;r!==void 0&&o!==void 0&&r>=o&&t.push(`layout.primaryPath conflicts with node.layout.rank at ${a[n]}`)}}}}r&&new Set(e.nodes.map(e=>e.layout?.rank).filter(e=>e!==void 0)).size>1&&t.push(`sequence participants must share one layout.rank`);for(let r of e.edges){let e=i.get(r.source),a=i.get(r.target);n===`class`&&[`inheritance`,`implementation`].includes(r.kind)&&(r.kind===`implementation`&&a.kind!==`interface`&&t.push(`edge ${r.id} implementation target must be an interface`),e.layout?.rank!==void 0&&a.layout?.rank!==void 0&&a.layout.rank>=e.layout.rank&&t.push(`edge ${r.id} layout.rank must place parent/interface ${a.id} above ${e.id}`)),n===`usecase`&&[`include`,`extend`].includes(r.kind)&&(e.kind!==`usecase`||a.kind!==`usecase`)&&t.push(`edge ${r.id} ${r.kind} endpoints must both be use cases`)}return t}var p_=e=>({...e.position,...e.size}),m_=(e,t)=>t.x>=e.x&&t.y>=e.y&&t.x+t.width<=e.x+e.width&&t.y+t.height<=e.y+e.height,h_=(e,t)=>e.x<t.x+t.width&&t.x<e.x+e.width&&e.y<t.y+t.height&&t.y<e.y+e.height,g_=e=>e.points.slice(1).map((t,n)=>[e.points[n],t]);function __(e,t,n,r=[]){return r.length||(r=(String(n).includes(`
281
281
  - `)?String(n).split(`
282
- - `).slice(1):[String(n)]).map(n=>{let r=[`nodes`,`edges`,`groups`].flatMap(t=>(Array.isArray(e?.[t])?e[t]:[]).filter((e,r)=>e&&typeof e==`object`&&(n.includes(`${t}[${r}]`)||RegExp(`(^|[^\\w.-])${String(e.id).replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}($|[^\\w.-])`).test(n))));return{ruleId:`${t}.invalid`,severity:`error`,diagramType:vm(e),elementIds:r.map(e=>e.id),measured:n,required:`Valid ${t} content and complete notation`,bounds:r.filter(e=>e.position&&e.size).map(e=>({...e.position,...e.size})),remediation:t===`semantic`?`Correct the reported input field or reference before layout.`:`Correct the identified content or geometry and retry without removing semantic facts.`}})),Object.assign(Error(String(n)),{diagnostics:r,phases:{semantic:{status:t===`semantic`?`failed`:`passed`},geometry:{status:t===`semantic`?`not-checked`:t===`geometry`?`failed`:`passed`},rendering:{status:t===`rendering`?`failed`:`not-checked`}}})}function $h(e){let t=Kh(e,{inputOnly:!0}),n=t.length?[]:Kh(e,{audit:!1}),r=t.length||n.length?null:eg(e),i=[...t,...n,...r?.errors??[]],a={semantic:{status:t.length?`failed`:`passed`},geometry:{status:t.length?`not-checked`:i.length?`failed`:`passed`},rendering:{status:`not-checked`}};if(i.length)throw Qh(e,t.length?`semantic`:`geometry`,`Diagram quality failed:\n- ${i.join(`
283
- - `)}`,r?.diagnostics??[]);return{...a,diagnostics:r.diagnostics}}function eg(e){let t=wh(e),n=vm(e),r=$(n),i=If,a=[...t.diagnostics,...t.crossings],o=(e,t,r,i,o,s)=>a.push({ruleId:e,severity:`error`,diagramType:n,elementIds:t,measured:r,required:i,bounds:o,remediation:s}),s=new Map(e.nodes.map(e=>[e.id,mh(e,n)])),c=new Map(e.nodes.map(e=>[e.id,e]));if(!r.sequence){let r=e.nodes.flatMap(t=>e.nodes.filter(e=>t.layout?.rank!==void 0&&e.layout?.rank!==void 0&&t.layout.rank<e.layout.rank).map(e=>[t,e])),a=e.layout?.primaryPath??[];if(n===`flowchart`&&!a.length&&e.edges.length===e.nodes.length-1){let t=new Map(e.nodes.map(t=>[t.id,e.edges.filter(e=>e.source===t.id)])),n=e.nodes.filter(t=>!e.edges.some(e=>e.target===t.id));if(n.length===1&&[...t.values()].every(e=>e.length<=1)){let r=[],i=new Set;for(let e=n[0].id;e&&!i.has(e);e=t.get(e)[0]?.target)r.push(e),i.add(e);r.length===e.nodes.length&&(a=r)}}let l=[`flowchart`,`state`].includes(n)?a.slice(1).map((e,t)=>[c.get(a[t]),c.get(e)]):[],u=[`flowchart`,`state`].includes(n)?e.nodes.filter(e=>[`decision`,`choice`].includes(e.kind)).map(n=>{let r=e.edges.filter(e=>e.source===n.id&&e.target!==n.id);return{node:n,branches:r,sides:new Set(r.map(e=>t.routes.get(e.id).sourceSide))}}).filter(e=>e.branches.length>=2):[],d=![`er`,`deployment`,`dataflow`,`usecase`].includes(n),f=d?`y`:`x`,p=d?`height`:`width`,m=(e,t,n)=>t.position.x-e.position.x-e.size.width+.001>=i.nodeGap&&(!n||t.position.y<e.position.y);for(let[e,t]of r){let n=t.position[f]-e.position[f]-e.size[p];n+.001<i.nodeGap&&o(`semantic.rank`,[e.id,t.id],n,i.nodeGap,[s.get(e.id),s.get(t.id)],`Keep declared ranks in separate layers along the reading direction.`)}if(d&&e.nodes.length>5&&Math.max(...e.nodes.map(e=>e.position.y))<Math.min(...e.nodes.map(e=>e.position.y+e.size.height))&&o(`semantic.single-row`,e.nodes.map(e=>e.id),1,`multiple rows`,[...s.values()],`Arrange responsibility layers or wrap peer nodes; tiny y offsets do not create another row.`),n===`class`)for(let t of e.edges.filter(e=>[`inheritance`,`implementation`].includes(e.kind))){let e=c.get(t.source),n=c.get(t.target),r=e.position.y-n.position.y-n.size.height;r+.001<i.nodeGap&&!m(n,e,!0)&&o(`semantic.class-hierarchy`,[t.id,n.id,e.id],r,i.nodeGap,[s.get(n.id),s.get(e.id)],`Place the parent class or interface above its child or implementation, or continue the hierarchy at the top of the next column.`)}if(n===`state`)for(let t of e.nodes.filter(e=>[`initial`,`final`].includes(e.kind)))for(let n of e.nodes.filter(e=>![`initial`,`final`].includes(e.kind))){let e=t.kind===`initial`?n.position.y-t.position.y-t.size.height:t.position.y-n.position.y-n.size.height,r=t.kind===`initial`?m(t,n,!1):m(n,t,!1);e+.001<i.nodeGap&&!r&&o(`semantic.state-endpoint`,[t.id,n.id],e,i.nodeGap,[s.get(t.id),s.get(n.id)],`Keep initial symbols above the lifecycle and final symbols below it; a column fold continues the lifecycle at the top of the next column.`)}for(let[e,t]of l){let n=t.position[f]-e.position[f]-e.size[p];n+.001<i.nodeGap&&!m(e,t,!0)&&o(`semantic.primary-path`,[e.id,t.id],n,i.nodeGap,[s.get(e.id),s.get(t.id)],`Keep the declared or unambiguous main path directed downwards; a column fold continues it at the top of the next column.`)}for(let{node:e,branches:t,sides:n}of u)[`left`,`right`].every(e=>n.has(e))||o(`semantic.branch-sides`,[e.id,...t.map(e=>e.id)],[...n],[`left`,`right`],[s.get(e.id)],`Give alternatives separate left and right corridors while retaining their real targets and merges.`)}for(let t=0;t<e.nodes.length;t++){let a=e.nodes[t],c=s.get(a.id),l=Rh(a,n,e.meta.locale);if(r.cardLayout){let e=r.contentInset?.(a)??0,t=Math.max(100,Jf({...a,size:{...a.size,width:a.size.width-e*2}}).minHeight);a.size.height<t&&o(`text.node-height`,[a.id],a.size.height,t,[c],`Increase height to keep full title and subtitle at 20/16px.`)}else if(r.textArea&&a.kind!==`actor`&&![`initial`,`final`].includes(a.kind)){let e=r.textArea(a),t=qf(a.label,e.width,20,29),n=qf(a.subtitle,e.width,16,23.2),i=t.height+(n.height?n.height+5:0);(e.width<=0||e.height<i)&&o(`text.shape-safe-area`,[a.id],e,{width:1,height:i},[c],`Enlarge the shape safety region to contain all text.`)}else(a.size.width<l.width||a.size.height<l.height)&&o(`text.node-size`,[a.id],a.size,l,[c],`Increase dimensions for complete headers, members and fields.`);for(let n of e.nodes.slice(t+1)){let e=s.get(n.id),t=hh(c,e);t+.001<i.nodeGap&&o(`spacing.nodes`,[a.id,n.id],t,i.nodeGap,[c,e],`Separate the visible node outlines.`)}}let l=e.edges.flatMap(e=>{let n=t.routes.get(e.id);return[...n.label?[{id:e.id,box:n.labelBox}]:[],...(n.endpointLabels??[]).map(t=>({id:e.id,role:t.role,box:t.labelBox}))]});for(let n=0;n<l.length;n++){let r=l[n];for(let[e,t]of s){let n=hh(r.box,t);n+.001<i.labelGap&&o(`spacing.label-node`,[r.id,e],n,i.labelGap,[r.box,t],`Move the label away from the node.`)}for(let e of l.slice(n+1)){let t=hh(r.box,e.box);t+.001<i.labelGap&&o(`spacing.labels`,[r.id,e.id],t,i.labelGap,[r.box,e.box],`Separate complete label bounds.`)}let a=i.labelEdgeGap;for(let n of e.edges)if(n.id!==r.id){let e={x:r.box.x-a,y:r.box.y-a,width:r.box.width+2*a,height:r.box.height+2*a};Zh(t.routes.get(n.id)).some(([t,n])=>_h(t,n,e))&&o(`spacing.label-edge`,[r.id,n.id],`<6`,a,[r.box],`Reserve a clear label area away from other relations.`)}}for(let n=0;n<e.edges.length;n++){let a=e.edges[n],s=t.routes.get(a.id),c=Zh(s);if(!r.sequence)for(let[e,t,n]of[[s.points[0],s.points[1],a.route?.via?.[0]],[s.points.at(-1),s.points.at(-2),a.route?.via?.at(-1)]]){let s=Math.hypot(e.x-t.x,e.y-t.y),c=r.endpointStub??i.endpoint,l=n&&s?Math.min(s,((n.x-e.x)*(t.x-e.x)+(n.y-e.y)*(t.y-e.y))/s):s;l+.001<c&&o(`route.endpoint-stub`,[a.id],l,c,[{...e,width:0,height:0}],`Reserve a straight outward segment for the endpoint symbol.`)}for(let r of e.edges.slice(n+1)){let e=t.routes.get(r.id),n=[];for(let[t,o]of c)for(let[c,l]of Zh(e)){let u=t.y===o.y;if(u!==(c.y===l.y))continue;let d=u?`x`:`y`,f=u?`y`:`x`,p=Math.min(Math.max(t[d],o[d]),Math.max(c[d],l[d]))-Math.max(Math.min(t[d],o[d]),Math.min(c[d],l[d])),m=Math.abs(t[f]-c[f]);if(p<=.001||m+.001>=i.parallelGap)continue;let h=(e,t)=>[{id:e.source,point:t.points[0]},{id:e.target,point:t.points.at(-1)}];m<.001&&p<=i.endpoint&&h(a,s).some(n=>h(r,e).some(e=>n.id===e.id&&n.point.x===e.point.x&&n.point.y===e.point.y&&(n.point===t||n.point===o)&&(e.point===c||e.point===l)))||n.push({x:Math.min(t.x,o.x,c.x,l.x),y:Math.min(t.y,o.y,c.y,l.y),width:Math.max(t.x,o.x,c.x,l.x)-Math.min(t.x,o.x,c.x,l.x),height:Math.max(t.y,o.y,c.y,l.y)-Math.min(t.y,o.y,c.y,l.y),separation:m,shared:p})}n.length&&o(`route.parallel-channels`,[a.id,r.id],Math.min(...n.map(e=>e.separation)),i.parallelGap,n,`Separate parallel channels; only the initial ${i.endpoint}px at one common port may overlap.`)}}if(!r.sequence){let t=e.groups??[],n=new Map(t.map(e=>[e.id,e])),r=(e,t)=>{let r=e.groupId,i=new Set;for(;r&&!i.has(r);){if(r===t.id)return!0;i.add(r),r=n.get(r)?.parentId}return!1};for(let n=0;n<t.length;n++){let a=t[n],c=Jh(a),l=i.groupInset,u=Qf(a).height+i.groupHeadingGap,d={x:c.x+l,y:c.y+u,width:c.width-2*l,height:c.height-u-l},f=[...e.nodes.filter(e=>e.groupId===a.id),...t.filter(e=>e.parentId===a.id)];for(let e of f)Yh(d,Jh(e))||o(`group.member-inset`,[a.id,e.id],Jh(e),d,[c,Jh(e)],`Expand the owning boundary to preserve heading and side clearance.`);for(let t of e.nodes)!r(t,a)&&Xh(c,s.get(t.id))&&o(`group.unowned-node`,[a.id,t.id],t.groupId??null,`outside`,[c,s.get(t.id)],`Keep nodes outside boundaries they do not belong to.`);for(let e of t.slice(n+1))a.parentId===e.parentId&&hh(c,Jh(e))+.001<i.groupGap&&o(`group.sibling-gap`,[a.id,e.id],hh(c,Jh(e)),i.groupGap,[c,Jh(e)],`Separate sibling boundaries.`)}}let u=[...a.filter(e=>e.severity===`error`).map(e=>`${e.ruleId}: ${e.elementIds.join(`, `)} (${JSON.stringify(e.measured)}; required ${JSON.stringify(e.required)})`)];return{...t,errors:u,diagnostics:a,bounds:Zm(e,t.routes)}}function tg(e){return function(){return e}}var ng=1664525,rg=1013904223,ig=4294967296;function ag(){let e=1;return()=>(e=(ng*e+rg)%ig)/ig}var og=10,sg=Math.PI*(3-Math.sqrt(5));function cg(e){var t,n=1,r=.001,i=1-r**(1/300),a=0,o=.6,s=new Map,c=Pr(d),l=w(`tick`,`end`),u=ag();e??=[];function d(){f(),l.call(`tick`,t),n<r&&(c.stop(),l.call(`end`,t))}function f(r){var c,l=e.length,u;r===void 0&&(r=1);for(var d=0;d<r;++d)for(n+=(a-n)*i,s.forEach(function(e){e(n)}),c=0;c<l;++c)u=e[c],u.fx==null?u.x+=u.vx*=o:(u.x=u.fx,u.vx=0),u.fy==null?u.y+=u.vy*=o:(u.y=u.fy,u.vy=0);return t}function p(){for(var t=0,n=e.length,r;t<n;++t){if(r=e[t],r.index=t,r.fx!=null&&(r.x=r.fx),r.fy!=null&&(r.y=r.fy),isNaN(r.x)||isNaN(r.y)){var i=og*Math.sqrt(.5+t),a=t*sg;r.x=i*Math.cos(a),r.y=i*Math.sin(a)}(isNaN(r.vx)||isNaN(r.vy))&&(r.vx=r.vy=0)}}function m(t){return t.initialize&&t.initialize(e,u),t}return p(),t={tick:f,restart:function(){return c.restart(d),t},stop:function(){return c.stop(),t},nodes:function(n){return arguments.length?(e=n,p(),s.forEach(m),t):e},alpha:function(e){return arguments.length?(n=+e,t):n},alphaMin:function(e){return arguments.length?(r=+e,t):r},alphaDecay:function(e){return arguments.length?(i=+e,t):+i},alphaTarget:function(e){return arguments.length?(a=+e,t):a},velocityDecay:function(e){return arguments.length?(o=1-e,t):1-o},randomSource:function(e){return arguments.length?(u=e,s.forEach(m),t):u},force:function(e,n){return arguments.length>1?(n==null?s.delete(e):s.set(e,m(n)),t):s.get(e)},find:function(t,n,r){var i=0,a=e.length,o,s,c,l,u;for(r==null?r=1/0:r*=r,i=0;i<a;++i)l=e[i],o=t-l.x,s=n-l.y,c=o*o+s*s,c<r&&(u=l,r=c);return u},on:function(e,n){return arguments.length>1?(l.on(e,n),t):l.on(e)}}}function lg(e){var t=tg(.1),n,r,i;typeof e!=`function`&&(e=tg(e==null?0:+e));function a(e){for(var t=0,a=n.length,o;t<a;++t)o=n[t],o.vx+=(i[t]-o.x)*r[t]*e}function o(){if(n){var a,o=n.length;for(r=Array(o),i=Array(o),a=0;a<o;++a)r[a]=isNaN(i[a]=+e(n[a],a,n))?0:+t(n[a],a,n)}}return a.initialize=function(e){n=e,o()},a.strength=function(e){return arguments.length?(t=typeof e==`function`?e:tg(+e),o(),a):t},a.x=function(t){return arguments.length?(e=typeof t==`function`?t:tg(+t),o(),a):e},a}function ug(e){var t=tg(.1),n,r,i;typeof e!=`function`&&(e=tg(e==null?0:+e));function a(e){for(var t=0,a=n.length,o;t<a;++t)o=n[t],o.vy+=(i[t]-o.y)*r[t]*e}function o(){if(n){var a,o=n.length;for(r=Array(o),i=Array(o),a=0;a<o;++a)r[a]=isNaN(i[a]=+e(n[a],a,n))?0:+t(n[a],a,n)}}return a.initialize=function(e){n=e,o()},a.strength=function(e){return arguments.length?(t=typeof e==`function`?e:tg(+e),o(),a):t},a.y=function(t){return arguments.length?(e=typeof t==`function`?t:tg(+t),o(),a):e},a}var dg=If.nodeGap+1,fg=156,pg=If.groupInset,mg=160,hg=(e,t,n)=>Math.max(t,Math.min(n,e));function gg(e,t){if(!t)return new Set(e.nodes.map(e=>e.id));let n=new Set([t]);for(let r of e.edges)r.source===t&&n.add(r.target),r.target===t&&n.add(r.source);return n}function _g(e,t){return e.groupId?t.find(t=>t.id===e.groupId):t.filter(t=>e.position.x>=t.position.x&&e.position.y>=t.position.y&&e.position.x+e.size.width<=t.position.x+t.size.width&&e.position.y+e.size.height<=t.position.y+t.size.height).sort((e,t)=>e.size.width*e.size.height-t.size.width*t.size.height)[0]}function vg(e,t,n){if(!t)return null;let r=e.size.width/2,i=e.size.height/2,a=e.position.x+r,o=e.position.y+i;return{minimumX:Math.max(t.position.x+pg+r,a-fg),maximumX:Math.min(t.position.x+t.size.width-pg-r,a+fg),minimumY:Math.max(t.position.y+Qf(t).height+If.groupHeadingGap+i,o-(n?0:fg)),maximumY:Math.min(t.position.y+t.size.height-pg-i,o+(n?0:fg))}}function yg(e){let t=[],n=()=>{for(let n=0;n<t.length;n+=1)for(let r=n+1;r<t.length;r+=1){let i=t[n],a=t[r];if(!i.movable&&!a.movable)continue;let o=i.x+i.vx-a.x-a.vx,s=i.y+i.vy-a.y-a.vy,c=(i.width+a.width)/2+dg-Math.abs(o),l=(i.height+a.height)/2+dg-Math.abs(s);if(c<=0||l<=0)continue;let u=e||c<=l?`x`:`y`,d=(u===`x`?c:l)*.9,f=u===`x`?o:s,p=f===0?i.id<a.id?-1:1:Math.sign(f),m=i.movable?a.movable?.5:1:0,h=a.movable?i.movable?.5:1:0;u===`x`?(i.vx+=p*d*m,a.vx-=p*d*h):(i.vy+=p*d*m,a.vy-=p*d*h)}};return n.initialize=e=>{t=e},n}function bg(e,t=null){let n=$(e.meta.diagramType).sequence,r=gg(e,t),i=e.nodes.map(t=>{let i=t.position.x+t.size.width/2,a=t.position.y+t.size.height/2,o=vg(t,_g(t,e.groups??[]),n),s=r.has(t.id)&&(!o||o.minimumX<=o.maximumX&&o.minimumY<=o.maximumY);return{id:t.id,width:t.size.width,height:t.size.height,anchorX:i,anchorY:a,x:i,y:a,vx:0,vy:0,movable:s,bounds:o,fx:s?void 0:i,fy:s?void 0:a}}),a=cg(i).velocityDecay(.42).force(`anchor-x`,lg(e=>e.anchorX).strength(.16)).force(`anchor-y`,ug(e=>e.anchorY).strength(n?1:.16)).force(`rectangles`,yg(n)).stop();for(let e=0;e<mg;e+=1){a.tick();for(let e of i)e.movable&&(e.x=hg(e.x,e.anchorX-fg,e.anchorX+fg),e.y=n?e.anchorY:hg(e.y,e.anchorY-fg,e.anchorY+fg),e.x=Math.max(e.width/2,e.x),e.y=Math.max(e.height/2,e.y),e.bounds&&(e.x=hg(e.x,e.bounds.minimumX,e.bounds.maximumX),e.y=hg(e.y,e.bounds.minimumY,e.bounds.maximumY)))}a.stop();let o=new Map(i.map(e=>[e.id,e])),s=[],c=e.nodes.map(e=>{let t=o.get(e.id);if(!t.movable)return e;let r={x:hg(Math.round(t.x-e.size.width/2),Math.max(0,e.position.x-fg),e.position.x+fg),y:n?e.position.y:hg(Math.round(t.y-e.size.height/2),Math.max(0,e.position.y-fg),e.position.y+fg)};return t.bounds&&(r.x=hg(r.x,t.bounds.minimumX-e.size.width/2,t.bounds.maximumX-e.size.width/2),n||(r.y=hg(r.y,t.bounds.minimumY-e.size.height/2,t.bounds.maximumY-e.size.height/2))),(r.x!==e.position.x||r.y!==e.position.y)&&s.push(e.id),{...e,position:r}}),l={...e,nodes:c};try{$h(l)}catch(t){return{graph:e,movedNodeIds:[],rejected:{message:t.message,diagnostics:t.diagnostics??[]}}}return{graph:l,movedNodeIds:s}}var xg=(e,t,n)=>3*t*e*(1-e)**2+3*n*e*e*(1-e)+e**3;function Sg(e){let t=0,n=1;for(let r=0;r<20;r++){let r=(t+n)/2;xg(r,.32,0)<e?t=r:n=r}return xg((t+n)/2,.72,1)}function Cg(e,t,n){let r=e?.clientWidth??0,i=e?.clientHeight??0,a=!!globalThis.document?.fullscreenElement?.contains(e),o=r>700&&!a,s=(o&&t?316:12)+12,c=r-((o&&n?316:12)+12),l=e?.getBoundingClientRect().top??0,u=[...e?.querySelectorAll(`.react-flow__controls,.react-flow__minimap`)??[]].map(e=>e.getBoundingClientRect()).filter(e=>e.width>0&&e.height>0),d=Math.min(i-12-12,...u.map(e=>e.top-l-12));return{left:s,right:c,top:76,bottom:d,width:Math.max(0,c-s),height:Math.max(0,d-76)}}function wg(e,t,n){let r=Cg(e,t,n),i=e=>`${e}px`;return{top:i(r.top),right:i(e.clientWidth-r.right),bottom:i(e.clientHeight-r.bottom),left:i(r.left)}}function Tg(e,t,n){let r={left:e.x*n.zoom+n.x,right:(e.x+e.width)*n.zoom+n.x,top:e.y*n.zoom+n.y,bottom:(e.y+e.height)*n.zoom+n.y};if(r.left>=t.left&&r.right<=t.right&&r.top>=t.top&&r.bottom<=t.bottom)return n;let i=e.width*n.zoom>t.width?t.left+t.width/2-(r.left+r.right)/2:r.left<t.left?t.left-r.left:r.right>t.right?t.right-r.right:0,a=r.top<t.top||e.height*n.zoom>t.height?t.top-r.top:r.bottom>t.bottom?t.bottom-r.bottom:0;return{...n,x:n.x+i,y:n.y+a}}function Eg(e,t,n){let r=Math.min(2,Math.max(.75,n.zoom));return{zoom:r,x:t.left+t.width/2-(e.x+e.width/2)*r,y:t.top-e.y*r}}var Dg=/(<script\b[^>]*\bid="graph-data"[^>]*>)([\s\S]*?)(<\/script>)/,Og=e=>JSON.stringify(e).replaceAll(`&`,`\\u0026`).replaceAll(`<`,`\\u003c`).replaceAll(`>`,`\\u003e`).replaceAll(`\u2028`,`\\u2028`).replaceAll(`\u2029`,`\\u2029`);function kg(e,t){if(!Dg.test(e))throw Error(`page has no graph-data element`);return e.replace(Dg,(e,n,r,i)=>`${n}${Og(t)}${i}`)}function Ag(e,t,n){let r=e=>vm(e)===vm(n)?n:t.get(vm(e))??e;return Array.isArray(e.diagrams)?{...e,diagrams:e.diagrams.map(r)}:n}function jg(e,t,n){let r=new Map(t.filter(e=>e.type===`diagram`).map(e=>[e.id,e])),i=new Map(n.map(e=>[e.id,e]));return{...e,nodes:e.nodes.map(e=>{let t=r.get(e.id);if(!t)return e;let n={label:t.data.label};return Object.hasOwn(t.data,`subtitle`)&&(n.subtitle=t.data.subtitle),{...e,...n,position:t.position}}),edges:e.edges.map(e=>{let t=i.get(e.id);return t&&Object.hasOwn(t.data,`label`)?{...e,label:t.data.label}:e})}}function Mg(e,t,n){if(n!==`sequence`)return e;let r=new Map(t.map(e=>[e.id,e.position]));return e.map(e=>e.type===`position`&&e.position&&r.has(e.id)?{...e,position:{...e.position,y:r.get(e.id).y}}:e)}function Ng(e,t,n,r=e){let i=(t,n)=>df(e.meta.locale,t,n),a=vm(e),[o,s,c]=wd(Mh(e,a)),[l,u]=Td(Nh(e,a)),[d,f]=(0,y.useState)(!0),p=(0,y.useRef)(null),{getViewport:m,setCenter:h,setViewport:g}=_l();(0,y.useEffect)(()=>{if(new URLSearchParams(window.location.search).has(`automation`))return window.__qgraphflowAutomation={getViewport:m,setViewport:g,setCenter:h,ease:Sg},()=>{delete window.__qgraphflowAutomation}},[m,g,h]);let _=(0,y.useMemo)(()=>jg(r,o,l),[r,o,l]),[v,b]=(0,y.useState)(null),x=(0,y.useCallback)(e=>c(Mg(e,o,a)),[c,a,o]),S=(0,y.useMemo)(()=>{try{return $h(_),v?.graph===_?v:null}catch(e){return{message:e.message,diagnostics:e.diagnostics??[]}}},[_,v]),C=(e,t,n)=>{s(r=>r.map(r=>r.id===e?{...r,data:{...r.data,label:t,...Object.hasOwn(r.data,`subtitle`)||n!==``?{subtitle:n}:{}}}:r))},w=(e,t)=>{u(n=>n.map(n=>n.id===e?{...n,data:{...n.data,label:t}}:n))},T=(e,n=t?0:320,r=!1)=>{let i=p.current;if(!i)return;if(a===`sequence`&&i.clientWidth<=700&&!r){let t=e.nodes.find(xf)??e.nodes[0];return g(Eg(mh(t,a),Cg(i,!1,!1),{zoom:.75}),{duration:n,ease:Sg})}let o=lo(Zm(e),i.clientWidth,i.clientHeight,.08,2,wg(i,i.dataset.navOpen===`true`,i.dataset.drawerOpen===`true`));return g(o,{duration:n,ease:Sg})};return{nodes:o,edges:l,onNodesChange:x,setRenderProblem:b,updateNodeText:C,updateEdgeText:w,locked:d,setLocked:f,canvasRef:p,currentGraph:_,layoutProblem:S,focusProblem:e=>{let n=e.bounds?.[0];n&&h(n.x+n.width/2,n.y+n.height/2,{zoom:1,duration:t?0:320})},readGraph:T,focusNode:(0,y.useCallback)((e,n={})=>{let r=_.nodes.find(t=>t.id===e);if(!r)return;if(a!==`sequence`){h(r.position.x+r.size.width/2,r.position.y+r.size.height/2,{zoom:1.1,duration:t?0:420,ease:Sg});return}let i=p.current;if(!i)return;let o=Cg(i,n.navOpen??i.dataset.navOpen===`true`,n.drawerOpen??i.dataset.drawerOpen===`true`),s=Eg(mh(r,a),o,m());g(s,{duration:t?0:420,ease:Sg})},[_,a,m,t,h,g]),resetLayout:()=>{s(Mh(r,a)),u(Nh(r,a)),requestAnimationFrame(()=>T(r))},nudgeLayout:e=>{if(d){n(`Unlock the layout before arranging nodes`);return}let t=bg(_,e);if(t.rejected){n(`Cannot arrange further within the current constraints`);return}let r=new Map(t.graph.nodes.map(e=>[e.id,e.position]));s(e=>e.map(e=>e.type===`diagram`?{...e,position:r.get(e.id)}:e));let a=t.movedNodeIds.length,o=i(e?`Local`:`Full diagram`);n(a?i(`{scope} arranged: {count} nodes moved`,{scope:o,count:a}):i(`No spacing changes needed`))},focusDiagram:()=>T(_,t?0:320,!0)}}function Pg(e,t){let n=t.trim().toLowerCase();if(!n)return 0;let r=e.label.trim().toLowerCase();if(r===n)return 5;if(r.startsWith(n))return 4;if(r.includes(n))return 3;let i=e=>e.some(e=>String(e??``).toLowerCase().includes(n));return i([e.subtitle,...e.tags??[]])?2:+!!i([...e.facts??[],...e.attributes??[],...e.methods??[],...(e.fields??[]).flatMap(e=>[e.key,e.name,e.type])])}function Fg(e,t){return e.map(e=>({node:e,rank:Pg(e,t)})).filter(e=>e.rank>0).sort((e,t)=>t.rank-e.rank).slice(0,8).map(e=>e.node)}function Ig(e,{focusNode:t,panels:n,isFullscreen:r=!1,toggleFullscreen:i}){let[a,o]=(0,y.useState)(()=>e.nodes.find(xf)?.id??null),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(0),[d,f]=(0,y.useState)(``),p=d.trim().toLowerCase(),m=(0,y.useMemo)(()=>p?Fg(e.nodes,p):e.nodes,[e,p]),h=e.nodes.find(e=>e.id===a),g=e.edges.find(e=>e.id===s),{toolbarOpen:_,drawerOpen:v,openDetails:b,closeDetails:x,closeMobile:S,closeNav:C}=n,w=(0,y.useCallback)((e,n=!0)=>{o(e.id),c(null),u(e=>e+1),f(``),n&&(!r&&!v&&b(),t(e.id,{navOpen:_,drawerOpen:!r||v}))},[v,b,t,r,_]),T=(0,y.useCallback)((e,t=!1)=>{o(null),c(e.id),u(e=>e+1),f(``),t&&!r&&!v&&b()},[v,r,b]),E=(0,y.useCallback)((e=!1)=>{o(null),c(null),x(e)},[x]);return(0,y.useEffect)(()=>{let e=e=>{if(e.key!==`Escape`)return;if(r){e.preventDefault(),document.fullscreenElement&&i();return}let t=document.activeElement;if(t?.closest(`.nav`)){C(!0);return}if(t?.closest(`.inspector`)){x(!0);return}E(!1),S()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[E,x,S,C,r,i]),{selectedId:a,selectedEdgeId:s,selectionPulse:l,selected:h,selectedEdge:g,query:d,setQuery:f,normalizedQuery:p,results:m,selectNode:w,selectEdge:T,clearSelectedNode:E,handleCanvasKeyDown:t=>{if(![`Enter`,` `].includes(t.key))return;let n=t.target.closest(`.react-flow__edge`);if(n){if(t.preventDefault(),t.stopPropagation(),t.repeat)return;let r=e.edges.find(e=>e.id===n.dataset.id);r&&T(r);return}let r=t.target.closest(`.react-flow__node-diagram`);if(!r||(t.preventDefault(),t.stopPropagation(),t.repeat))return;let i=e.nodes.find(e=>e.id===r.dataset.id);i&&w(i)},resetSelection:()=>{o(null),c(null),u(0),f(``)}}}function Lg(e,t,n,r,i,a){let o=vm(e),{nodes:s,edges:c,locked:l,currentGraph:u}=t,{selectedId:d,selectedEdgeId:f,selectEdge:p,selectionPulse:m,normalizedQuery:h}=n,g=(0,y.useMemo)(()=>fh(u),[u]),_=(0,y.useMemo)(()=>Bm(u),[u]),v=(0,y.useMemo)(()=>Km(u),[u]),b=(0,y.useMemo)(()=>Of(u.groups??[],i),[u,i]);return{visibleNodes:(0,y.useMemo)(()=>s.map(t=>t.type===`boundary`?{...t,data:{...t.data,appearance:b.get(t.id),fragment:o===`sequence`?Rm(t.data,g,e.meta.locale,u.groups??[],v):null}}:{...t,selected:t.id===d,draggable:!l,data:{...t.data,executionRects:v.filter(e=>e.participantId===t.id).map(e=>({...e,x:e.x-t.position.x,y:e.y-t.position.y,color:jf(_.get(e.start.edgeId),i)??i.edge})),selectionPulse:m,palette:i,moduleColors:a,dimmed:!!h&&Pg(t.data,h)===0}}),[l,s,h,d,m,i,a,g,o,e.meta.locale,u,v,_,b]),visibleEdges:(0,y.useMemo)(()=>{let e=$(o).sequence;return c.map(t=>{let n=g.get(t.id),s=t.data.kind===`failure`,c=t.id===f||t.source===d||t.target===d,l=_.get(t.id),h=bm(t.data,o),v=u.nodes.find(e=>e.id===t.target),y=u.nodes.find(e=>e.id===t.source),x=Mf(t.data,v,i,a,y,l),S=l?x:s?i.warn:i.accent;return{...t,sourceHandle:$(o).sequence?`source-right`:`source-${g.get(t.id).sourceSide}`,targetHandle:$(o).sequence?`target-left`:`target-${g.get(t.id).targetSide}`,className:[e?`flow-edge--sequence`:``,h?`flow-edge--dashed`:``].filter(Boolean).join(` `),style:{stroke:x,strokeWidth:1.6},ariaLabel:n.label||`${y.label} → ${v.label}`,markerEnd:t.markerEnd?{type:Da.ArrowClosed,color:x}:void 0,selected:t.id===f,data:{...t.data,pair:l,selectionLinked:c,selectionId:f??d,selectionPulse:m,selectionColor:S,route:n,relationColor:i.accent,directed:!!t.markerEnd,flowRunning:r,dashed:h,labelColor:i.ink3,roleColors:xm(o,i),labelSurface:e&&n.label?Pm(n.labelBox,u.groups??[],b):void 0,onSelect:()=>p(t.data)}}})},[o,c,e,u,i,a,r,p,f,d,m,g,_,b])}}function Rg(e,t){let n=(0,y.useRef)(null),r=(0,y.useRef)(null),i=(0,y.useRef)(!1),a=(0,y.useRef)(!1),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(!1),u=(0,y.useEffectEvent)(t),d=!!(document.fullscreenEnabled&&document.documentElement.requestFullscreen&&document.exitFullscreen),f=(0,y.useCallback)(async()=>{let t=n.current;if(!t||a.current)return;let r=document.fullscreenElement===t;if(!r&&!d){e(`Fullscreen is not available in this browser or page`);return}a.current=!0,l(!0),e(``);try{return r?await document.exitFullscreen():await t.requestFullscreen(),!0}catch{t.isConnected&&e(r?`Could not exit fullscreen. Press Esc to try again.`:`Could not enter fullscreen. Check browser or page permissions and try again.`)}finally{a.current=!1,t.isConnected&&l(!1)}},[d,e]);return(0,y.useEffect)(()=>{let e,t=()=>{let t=!!(n.current&&document.fullscreenElement===n.current),a=!i.current&&t,o=i.current&&!t;i.current=t,s(t),a&&(e=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>{i.current&&u()})})),o&&(cancelAnimationFrame(e),r.current?.focus({preventScroll:!0}))};return document.addEventListener(`fullscreenchange`,t),t(),()=>{document.removeEventListener(`fullscreenchange`,t),cancelAnimationFrame(e)}},[]),{boardRef:n,fullscreenButtonRef:r,isFullscreen:o,fullscreenPending:c,fullscreenSupported:d,toggleFullscreen:f}}function zg(e,t,n,r,i,a){let{end:o}=Sm(e,t);return o?o===`arrow`?` marker-end="url(#${a?`arrow-module`:e.kind===`failure`?`arrow-warn`:e.kind===`success`?`arrow-ok`:r?.has(e.module??i?.module??n?.module)?`arrow-module`:bf.has(n?.kind)?`arrow-data`:`arrow`})"`:` marker-end="url(#${o})"`:``}function Bg(e,t){let{start:n}=Sm(e,t);return n?` marker-start="url(#${n})"`:``}function Vg(e,t,n,r,i){let a=e.position.x+t,o=e.position.y+n,s=np(e.label,r?.heading?.width??e.size.width-([`alt`,`opt`,`loop`,`par`].includes(e.kind)?88:32));return`<g data-diagram-group-id="${tp(e.id)}"><title>${tp(e.label)}</title>${ep(e,i,a,o)}${r?(r.heading?.lines??[s]).map((e,n)=>Q(r.heading?r.heading.x+t:a+16,o+23+n*22,e,`group`)).join(``):$f(e,a,o)}${[`alt`,`opt`,`loop`,`par`].includes(e.kind)?Q(a+e.size.width-16,o+25,e.kind,`group-kind`,` text-anchor="end"`):``}</g>`}function Hg(e,t,n,r,i,a,o,s,c,l,u){let d=Mf(e,o,a,s,c,l),f=bm(e,n)?` stroke-dasharray="7 6"`:``,p=t.label,m=t.labelPoint.x+r,h=t.labelPoint.y+i,g=t.labelBox,_=l?`<path d="M${m-qf(t.labelLines[0],1/0).width/2} ${h-g.height/2+3+Z.body+3}h${qf(l.label,1/0).width}" stroke="${d}" stroke-width="2"/>`:``,v=p?`<rect x="${m-g.width/2}" y="${h-g.height/2}" width="${g.width}" height="${g.height}" rx="4" class="edge-bg"${u?` style="fill:${u}"`:``}/>`:``,y=$(n).cardinalities?[Xm(e.sourceCardinality,t.points[0],t.points[1]),Xm(e.targetCardinality,t.points.at(-1),t.points.at(-2))].map((e,t)=>`<g data-cardinality-endpoint="${t?`target`:`source`}" transform="translate(${r} ${i})" fill="none" stroke="${a.accent}" stroke-width="1.5"><path d="${e.path}"/>${e.circle?`<circle cx="${e.circle.cx}" cy="${e.circle.cy}" r="${e.circle.r}" fill="${a.surface}"/>`:``}</g>`).join(``):``,b=(t.endpointLabels??[]).map(e=>`<g class="edge-multiplicity" data-endpoint="${e.role}"><rect x="${e.labelBox.x+r}" y="${e.labelBox.y+i}" width="${e.labelBox.width}" height="${e.labelBox.height}" rx="4" class="edge-bg"/>${Q(e.labelPoint.x+r,e.labelBox.y+i+3+Z.body,e.label,`edge`,` text-anchor="middle"`)}</g>`).join(``);return`<g data-diagram-edge-id="${tp(e.id)}"><path d="${uh(t,r,i)}" fill="none" stroke="${d}" stroke-width="1.5"${f}${zg(e,n,o,s,c,l)}${Bg(e,n)}/>${y}${v}${_}${p?t.labelLines.map((e,r)=>Q(m,h-g.height/2+3+Z.body+r*Z.edgeLineHeight,t.labelRuns?{runs:t.labelRuns[r],colors:xm(n,a)}:e,`edge`,` text-anchor="middle"`)).join(``):``}${b}</g>`}function Ug(e,t=`light`,n){$h(e);let r=vf[t]??vf.light;n??=Tf([e],r);let i=Of(e.groups??[],r),a=vm(e),o=fh(e),s=Bm(e),c=Km(e),l=new Map(e.nodes.map(e=>[e.id,e])),u=Zm(e,o),d=u.width+128,f=qf(e.meta.title,d-128,24),p=qf(e.meta.subtitle??``,d-128,Z.small),m=66+Math.max(0,f.lines.length-1)*f.lineHeight,h=Math.max(88,p.lines.length?m+(p.lines.length-1)*p.lineHeight+22:43+Math.max(0,f.lines.length-1)*f.lineHeight+24),g=u.height+128+h,_=64-u.x,v=64+h-u.y,y=new Map((e.groups??[]).map(t=>[t.id,a===`sequence`?Rm(t,o,e.meta.locale,e.groups??[],c):null])),b=[...e.groups??[]].sort((t,n)=>Nm(t,e.groups??[])-Nm(n,e.groups??[])).map(e=>Vg(e,_,v,y.get(e.id),i.get(e.id))+(a===`sequence`?zm({...y.get(e.id),guards:[],bodies:[]},e,_,v,r.ink3,i.get(e.id).fill):``)).join(``),x=a===`sequence`?(e.groups??[]).map(e=>zm({...y.get(e.id),separators:[]},e,_,v,r.ink3,i.get(e.id).fill)).join(``):``,S=e.edges.map(t=>Hg(t,o.get(t.id),a,_,v,r,l.get(t.target),n,l.get(t.source),s.get(t.id),a===`sequence`&&o.get(t.id).label?Pm(o.get(t.id).labelBox,e.groups??[],i):void 0)).join(``),C=e.nodes.map(t=>Cm({...t,executionRects:c.filter(e=>e.participantId===t.id).map(e=>({...e,x:e.x-t.position.x,y:e.y-t.position.y,color:jf(s.get(e.start.edgeId),r)??r.edge}))},a,_,v,r,e.meta.locale,n)).join(``),w=h,T=d-48,E=g-h-24;return`<?xml version="1.0" encoding="UTF-8"?>\n\x3C!-- Radix Colors\n${hf}-->\n<svg xmlns="http://www.w3.org/2000/svg" width="${d}" height="${g}" viewBox="0 0 ${d} ${g}" data-graph-offset-x="${_}" data-graph-offset-y="${v}" role="img" aria-labelledby="title desc"><title id="title">${tp(e.meta.title)}</title><desc id="desc">${tp(a)} diagram for ${tp(e.meta.sourceRef)}</desc><defs><filter id="node-shadow" x="-20%" y="-20%" width="140%" height="150%"><feDropShadow dx="0" dy="5" stdDeviation="7" flood-color="${r.ink}" flood-opacity=".045"/></filter><marker id="arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M0 0L10 5L0 10Z" fill="${r.edge}"/></marker><marker id="arrow-module" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M0 0L10 5L0 10Z" fill="context-stroke"/></marker><marker id="arrow-warn" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M0 0L10 5L0 10Z" fill="${r.warn}"/></marker><marker id="arrow-ok" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M0 0L10 5L0 10Z" fill="${r.accent}"/></marker><marker id="arrow-data" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M0 0L10 5L0 10Z" fill="${r.data}"/></marker><marker id="arrow-open" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M1 1L9 5L1 9" fill="none" stroke="context-stroke" stroke-width="1.5"/></marker><marker id="triangle" viewBox="0 0 12 12" refX="11" refY="6" markerWidth="9" markerHeight="9" orient="auto"><path d="M1 1L11 6L1 11Z" fill="${r.surface}" stroke="context-stroke"/></marker><marker id="diamond-filled" viewBox="0 0 14 10" refX="1" refY="5" markerWidth="12" markerHeight="10" orient="auto"><path d="M1 5L7 1L13 5L7 9Z" fill="context-stroke"/></marker><marker id="diamond-open" viewBox="0 0 14 10" refX="1" refY="5" markerWidth="12" markerHeight="10" orient="auto"><path d="M1 5L7 1L13 5L7 9Z" fill="${r.surface}" stroke="context-stroke"/></marker><style>${_p(r)}</style></defs><rect width="100%" height="100%" fill="${r.paper}"/><rect x="24" y="${w}" width="${T}" height="${E}" rx="16" fill="${r.surface}" stroke="${r.rule}"/>${f.lines.map((e,t)=>Q(64,43+t*f.lineHeight,e,`heading`)).join(``)}${p.lines.map((e,t)=>Q(64,m+t*p.lineHeight,e,`meta`)).join(``)}${b}${a===`sequence`?C+S:S+C}${x}</svg>\n`}RegExp(`^diagram(-\\d+-(${hm.join(`|`)}))?\\.svg$`);function Wg(e){let t=Array.isArray(e.diagrams),n=t?e.diagrams:[e],r=Tf(n,vf.light);return n.map((e,n)=>({name:t?`diagram-${n+1}-${vm(e)}.svg`:`diagram.svg`,svg:Ug(e,`light`,r)}))}function Gg(e){return e.trim().replace(/[^\p{L}\p{N}._-]+/gu,`-`).replace(/^-+|-+$/g,``)||`diagram`}function Kg(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.click(),setTimeout(()=>URL.revokeObjectURL(n),0)}async function qg(e,t,n,r=decodeURIComponent(window.location?.pathname?.split(`/`).pop()||`index.html`)){let i=(e,n)=>df(t,e,n),a=`${JSON.stringify(e,null,2)}\n`,o;try{if(typeof window.showDirectoryPicker==`function`){let t=await window.showDirectoryPicker({id:`qgraphflow-page`,mode:`readwrite`}),s=await t.getFileHandle(r,{create:!1}).catch(()=>null);if(!s)throw Object.assign(Error(`wrong directory`),{name:`NotFoundError`});let c=kg(await(await s.getFile()).text(),e),l;try{l=Wg(e).map(e=>[e.name,e.svg])}catch(e){if(!e.phases)throw e}for(let[e,n]of[[`graph.json`,a],[r,c],...l??[]])o=await(await t.getFileHandle(e,{create:!0})).createWritable(),await o.write(n),await o.close(),o=null;n(i(l?`Saved into this page, its sibling graph.json and SVGs`:`Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment`))}else typeof window.showSaveFilePicker==`function`?(o=await(await window.showSaveFilePicker({suggestedName:`graph.json`,types:[{description:`Graph JSON`,accept:{"application/json":[`.json`]}}]})).createWritable(),await o.write(a),await o.close(),o=null,n(i(`Graph JSON saved`))):(Kg(new Blob([a],{type:`application/json;charset=utf-8`}),`graph.json`),n(i(`Graph JSON downloaded; keep the file to preserve edits`)))}catch(e){o&&await o.abort().catch(()=>{}),n(i(e.name===`AbortError`?`Save cancelled; edits remain in this page`:e.name===`NotFoundError`?`Choose the folder containing this page ({page}); edits remain in this page`:`Save failed; edits remain in this page`,{page:r}))}}async function Jg(e,t){let n=[],r=[],i=document.createElement(`div`);i.style.cssText=`position:fixed;left:0;top:0;width:0;height:0;overflow:hidden;visibility:hidden;pointer-events:none`;let a=new DOMParser().parseFromString(e,`image/svg+xml`);if(a.querySelector(`parsererror`))throw Qh(t,`rendering`,`The exported SVG could not be parsed`);let o=document.importNode(a.documentElement,!0);i.append(o),document.body.append(i);try{await document.fonts.ready;let e=o.viewBox.baseVal,i=Number(o.dataset.graphOffsetX),a=Number(o.dataset.graphOffsetY);if(!Number.isFinite(i)||!Number.isFinite(a))throw Error(`The exported SVG has no geometry offset`);let s=new Map([...o.querySelectorAll(`.node-drawing`)].map(e=>[e.dataset.diagramNodeId,e])),c=e=>String(e??``).replace(/\s+/gu,``),l=(e,t)=>e.x>=t.x-.5&&e.y>=t.y-.5&&e.x+e.width<=t.x+t.width+.5&&e.y+e.height<=t.y+t.height+.5,u=e=>{let t=e.getBBox(),n=e.getCTM(),r=[new DOMPoint(t.x,t.y),new DOMPoint(t.x+t.width,t.y),new DOMPoint(t.x,t.y+t.height),new DOMPoint(t.x+t.width,t.y+t.height)].map(e=>e.matrixTransform(n)),i=Math.min(...r.map(e=>e.x)),a=Math.min(...r.map(e=>e.y));return{x:i,y:a,width:Math.max(...r.map(e=>e.x))-i,height:Math.max(...r.map(e=>e.y))-a}};for(let t of o.querySelectorAll(`text`)){if(!t.textContent)continue;let o=u(t),s=parseFloat(getComputedStyle(t).fontSize)*Math.hypot(t.getCTM().a,t.getCTM().b),c=t.closest(`[data-diagram-node-id],[data-diagram-edge-id],[data-diagram-group-id],[data-fragment-group-id]`);n=c?[c.dataset.diagramNodeId??c.dataset.diagramEdgeId??c.dataset.diagramGroupId??c.dataset.fragmentGroupId]:[],r=[{...o,x:o.x-i,y:o.y-a}];let d=/(?:title|heading)/.test(t.getAttribute(`class`))?20:/^(body|operand-body|field-name|field-type|member|edge|cardinality)$/.test(t.getAttribute(`class`))?16:14;if(!l(o,e)||s+.01<d)throw Error(`Exported text is out of bounds or below the required size: ${t.textContent.slice(0,80)}`)}for(let e of t.nodes){n=[e.id],r=[{...e.position,...e.size}];let o=s.get(e.id),d=$(vm(t));if(!o)throw Error(`Export is missing node ${e.id}`);let f={x:e.position.x+i,y:e.position.y+a,width:e.size.width,height:d.selectionHeight?.(e)??e.size.height},p=d.textArea&&e.kind!==`actor`?d.textArea(e):null,m=p?{...p,x:f.x+(p.x??(f.width-p.width)/2),y:f.y+(p.y??(f.height-p.height)/2)}:f,h=d.activityArea?.(e),g=h&&{...h,x:f.x+h.x,y:f.y+h.y},_=[...o.querySelectorAll(`text`)].filter(e=>e.textContent).map(e=>({element:e,box:u(e)})),v=c(_.map(e=>e.element.textContent).join(``)),y=[[`initial`,`final`].includes(e.kind)&&!e.subtitle?``:e.label,e.subtitle,...(e.fields??[]).flatMap(e=>[e.name,e.type]),...e.attributes??[],...e.methods??[],...h?[`entry`,`do`,`exit`].map(t=>e[t]):[]];for(let t of y)if(t&&!v.includes(c(t)))throw Error(`Node text is not fully shown: ${e.id} / ${e.label} / ${String(t).slice(0,80)}`);for(let t of _)if(!l(t.box,m)&&!(g&&l(t.box,g)))throw Error(`Node text leaves the safe area: ${e.id} / ${e.label} / ${t.element.textContent.slice(0,80)}`);for(let t=0;t<_.length;t++)for(let n of _.slice(t+1)){let r=_[t].box,i=n.box;if(r.x<i.x+i.width-.5&&i.x<r.x+r.width-.5&&r.y<i.y+i.height-.5&&i.y<r.y+r.height-.5)throw Error(`Node text overlaps: ${e.id} / ${e.label}`)}}let d=vm(t),f=fh(t),p=new Map([...o.querySelectorAll(`[data-diagram-edge-id]`)].map(e=>[e.dataset.diagramEdgeId,e])),m=e=>({...e,x:e.x+i,y:e.y+a}),h=(e,t)=>e.x<t.x+t.width-.5&&t.x<e.x+e.width-.5&&e.y<t.y+t.height-.5&&t.y<e.y+e.height-.5,g=[...f.values()].flatMap(e=>[...e.label?[m(e.labelBox)]:[],...(e.endpointLabels??[]).map(e=>m(e.labelBox))]),_=(e,t,n,o,s=`Edges`)=>{if(r=[{...n,x:n.x-i,y:n.y-a}],c(e.map(e=>e.textContent).join(``))!==c(t))throw Error(`${s} text is not fully shown: ${o}`);if(e.some(e=>!l(u(e),n)))throw Error(`${s} text leaves the safe area: ${o}`)},v=new Map,y=new Map([...o.querySelectorAll(`[data-diagram-group-id]`)].map(e=>[e.dataset.diagramGroupId,e])),b=Km(t);for(let e of t.groups??[]){n=[e.id];let r=y.get(e.id),i=d===`sequence`?Rm(e,f,t.meta.locale,t.groups,b):null,a=i?.heading??{x:e.position.x+16,y:e.position.y+6,width:e.size.width-32,height:Qf(e).height};_([...r?.querySelectorAll(`:scope > text.group`)??[]],e.label,m(a),e.id,`group`),[`alt`,`opt`,`loop`,`par`].includes(e.kind)&&_([...r?.querySelectorAll(`:scope > text.group-kind`)??[]],e.kind,m({x:e.position.x+e.size.width-60,y:e.position.y+6,width:48,height:30}),e.id);for(let[t,n]of[[`guard`,i?.guards],[`body`,i?.bodies]])for(let r of n??[])_([...o.querySelectorAll(`.operand-${t}[data-fragment-group-id="${CSS.escape(e.id)}"][data-operand-id="${CSS.escape(r.operandId)}"] text`)],r.lines.join(``),m(r),`${e.id}/${r.operandId}/${t}`,`fragment`)}for(let r of t.edges){n=[r.id,r.source,r.target];let i=p.get(r.id),a=f.get(r.id),s=i?.querySelector(`:scope > path`);if(!s)throw Error(`Export is missing edge ${r.id}`);_([...i.querySelectorAll(`:scope > text.edge`)],a.label,m(a.labelBox),r.id);for(let e of a.endpointLabels??[])_([...[...i.querySelectorAll(`.edge-multiplicity`)].find(t=>t.dataset.endpoint===e.role)?.querySelectorAll(`text`)??[]],e.label,m(e.labelBox),`${r.id}/${e.role}`);if($(d).cardinalities)for(let[t,n,o]of[[`source`,a.points[0],a.points[1]],[`target`,a.points.at(-1),a.points.at(-2)]]){let a=Xm(r[`${t}Cardinality`],n,o),s=i.querySelector(`[data-cardinality-endpoint="${t}"]`),c=s?.querySelector(`path`),d=s?.querySelector(`circle`);if(!c||c.getAttribute(`d`)!==a.path||!!d!=!!a.circle||a.circle&&Object.entries(a.circle).some(([e,t])=>Number(d.getAttribute(e))!==t))throw Error(`Cardinality mark missing or mismatched: ${r.id}/${t}`);let f=u(s),p=m(a.bounds);if(!l(f,p)||!l(p,f)||!l(f,e))throw Error(`Cardinality mark is out of bounds: ${r.id}/${t}`)}for(let[n,i]of Object.entries(Sm(r,d))){let a=s.getAttribute(`marker-${n}`),c=/^url\(#([^)]*)\)$/.exec(a??``)?.[1];if(!i&&!a)continue;if(!i||!c||!(c===i||i===`arrow`&&/^arrow-(module|warn|ok|data)$/.test(c)))throw Error(`Edge marker mismatch: ${r.id}/${n}`);let u=o.querySelector(`marker[id="${CSS.escape(c)}"]`);if(!u)throw Error(`Edge marker missing: ${r.id}/${n}/${c}`);if(!v.has(c)){let e=document.createElementNS(`http://www.w3.org/2000/svg`,`g`);for(let t of u.childNodes)e.append(t.cloneNode(!0));o.append(e);try{let t=e.getBBox(),n=Math.max(0,...[...e.querySelectorAll(`*`)].map(e=>getComputedStyle(e).stroke===`none`?0:parseFloat(getComputedStyle(e).strokeWidth)/2));if(!t.width||!t.height)throw Error(`Edge marker is empty: ${r.id}/${c}`);v.set(c,{x:t.x-n,y:t.y-n,width:t.width+n*2,height:t.height+n*2})}finally{e.remove()}}let f=v.get(c),p=u.viewBox.baseVal,_=u.markerWidth.baseVal.value,y=u.markerHeight.baseVal.value;if(!(_>0&&y>0&&p.width>0&&p.height>0)||!l(f,p))throw Error(`Edge marker is clipped: ${r.id}/${c}`);let b=Math.min(_/p.width,y/p.height)*(u.getAttribute(`markerUnits`)===`userSpaceOnUse`?1:parseFloat(getComputedStyle(s).strokeWidth)),x=s.getTotalLength(),S=s.getPointAtLength(n===`start`?0:x),C=s.getPointAtLength(n===`start`?Math.min(1,x):Math.max(0,x-1)),w=Math.atan2(n===`start`?C.y-S.y:S.y-C.y,n===`start`?C.x-S.x:S.x-C.x)*180/Math.PI,T=s.getCTM().translate(S.x,S.y).rotate(w).scale(b).translate(-u.refX.baseVal.value,-u.refY.baseVal.value),E=[[f.x,f.y],[f.x+f.width,f.y],[f.x,f.y+f.height],[f.x+f.width,f.y+f.height]].map(([e,t])=>new DOMPoint(e,t).matrixTransform(T)),D=Math.min(...E.map(e=>e.x)),O=Math.min(...E.map(e=>e.y)),k={x:D,y:O,width:Math.max(...E.map(e=>e.x))-D,height:Math.max(...E.map(e=>e.y))-O};if(!l(k,e)||g.some(e=>h(k,e))||t.nodes.some(e=>e.id!==r.source&&e.id!==r.target&&h(k,m(mh(e,d)))))throw Error(`Edge marker out of bounds or covered: ${r.id}/${n}/${c}`)}}}catch(e){throw Qh(t,`rendering`,e.message,[{ruleId:`rendering.svg`,severity:`error`,diagramType:vm(t),elementIds:n,bounds:r,measured:e.message,required:`Complete visible text and notation within the measured safety regions and viewBox`,remediation:`Inspect the identified element and regenerate after correcting its text or geometry.`}])}finally{i.remove()}}function Yg(e,t){return new Promise((n,r)=>{let i=new Blob([e],{type:`image/svg+xml;charset=utf-8`}),a=URL.createObjectURL(i),o=new Image;o.onload=()=>{try{let e=o.naturalWidth,i=o.naturalHeight;if(!e||!i||e>32767||i>32767||e*i>64e6)throw Error(`Image exceeds the PNG export limit; export SVG instead`);let a=document.createElement(`canvas`);a.width=e,a.height=i;let s=a.getContext(`2d`);if(!s)throw Error(`The browser could not create the PNG canvas`);s.drawImage(o,0,0);let c=document.createElement(`canvas`);c.width=Math.min(128,e),c.height=Math.min(128,i);let l=c.getContext(`2d`);if(!l)throw Error(`The browser could not inspect the PNG canvas`);l.drawImage(a,0,0,c.width,c.height);let u=l.getImageData(0,0,c.width,c.height).data;if(!u.some((e,t)=>e!==u[t%4]))throw Error(`The browser produced a blank PNG canvas`);a.toBlob(e=>{if(!e||!e.size||e.type!==`image/png`)return r(Error(`The browser could not generate the PNG`));Kg(e,t),n()},`image/png`)}catch(e){r(e)}finally{URL.revokeObjectURL(a)}},o.onerror=()=>{URL.revokeObjectURL(a),r(Error(`The browser could not read the exported SVG`))},o.src=a})}async function Xg(e,t,n,r,i){e=structuredClone(e),i&&=Ef(i);let a=(t,n)=>df(e.meta.locale,t,n);try{r(a(`Generating {format}…`,{format:n.toUpperCase()}));let o=Ug(e,t,i),s=`${Gg(e.meta.title)}.${n}`;await Jg(o,e),n===`svg`?Kg(new Blob([o],{type:`image/svg+xml;charset=utf-8`}),s):await Yg(o,s),r(a(`{format} downloaded`,{format:n.toUpperCase()}))}catch(e){return r(e.message),e}}function Zg(e,t,n,r,i,a,o){let[s,c]=(0,y.useState)(()=>window.matchMedia(`(prefers-reduced-motion: reduce)`).matches);(0,y.useEffect)(()=>{let e=window.matchMedia(`(prefers-reduced-motion: reduce)`),t=()=>c(e.matches);return t(),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let[l,u]=(0,y.useState)(null),d=(0,y.useCallback)(e=>u({message:e}),[]),f=vf[t],p=Ng(e,s,d,i),[m,h]=o,g=m&&!s,_=Rg(d,()=>p.readGraph(p.currentGraph,0)),v=Ig(p.currentGraph,{focusNode:p.focusNode,panels:n,isFullscreen:_.isFullscreen,toggleFullscreen:_.toggleFullscreen}),b=Lg(e,p,v,g,f,r),x=async e=>{p.setRenderProblem(null);let n=await Xg(p.currentGraph,t,e,d,r);n?.diagnostics&&p.setRenderProblem({graph:p.currentGraph,message:n.message,diagnostics:n.diagnostics})},S=()=>qg(a(p.currentGraph),e.meta.locale,d),C=()=>{p.resetLayout(),v.resetSelection(),h(!0),d(`Reset: original positions and reading view restored`)};return{...p,...v,...b,...n,..._,diagramType:vm(e),palette:f,moduleColors:r,reduceMotion:s,exportStatus:l,exportDiagram:x,saveGraph:S,reset:C,inspectedNode:v.selected,inspectedEdge:v.selectedEdge,hasFlow:e.edges.some(t=>ym(t,vm(e))),flowRunning:g,setFlowEnabled:h,nudgeLayout:()=>p.nudgeLayout(v.selectedId)}}function Qg(){let[e,t]=(0,y.useState)(null),n=(0,y.useCallback)(e=>t(t=>t===e?null:e),[]),r=(0,y.useCallback)(()=>{let n=document.querySelector(`[data-popover-root="${e}"]`);n?.contains(document.activeElement)&&n.querySelector(`[aria-haspopup]`)?.focus(),t(null)},[e]);return(0,y.useEffect)(()=>{if(!e)return;let n=n=>{n.target.closest?.(`[data-popover-root]`)?.dataset.popoverRoot!==e&&t(null)},i=t=>{if(t.key===`Escape`){t.preventDefault(),t.stopPropagation(),r();return}let n=t.target.closest?.(`[data-popover-root]`);if(n?.dataset.popoverRoot!==e)return;let i=t.target.closest(`[role="radiogroup"]`);if(![`ArrowDown`,`ArrowUp`,`Home`,`End`,...i?[`ArrowLeft`,`ArrowRight`]:[]].includes(t.key))return;let a=[...(i??n).querySelectorAll(i?`[role="radio"]`:`[role="menu"] button`)].filter(e=>!e.disabled);if(!a.length)return;t.preventDefault(),t.stopPropagation();let o=a.indexOf(document.activeElement),s=[`ArrowDown`,`ArrowRight`].includes(t.key),c=t.key===`Home`?0:t.key===`End`?a.length-1:o<0?s?0:a.length-1:(o+(s?1:-1)+a.length)%a.length;a[c].focus(),i&&a[c].click()};return window.addEventListener(`pointerdown`,n,!0),window.addEventListener(`keydown`,i,!0),()=>{window.removeEventListener(`pointerdown`,n,!0),window.removeEventListener(`keydown`,i,!0)}},[e,r]),{open:e,toggle:n,close:r}}function $g(e,t,n,r,i){let{getViewport:a,setViewport:o}=_l();return(0,y.useCallback)((s,c,l,u)=>{let d=e.current?.getBoundingClientRect();if(!d?.width||d.width<=700)return;if(r===`sequence`){let t=fh(n),d=n.nodes.find(e=>e.id===s),f=t.get(c),p=d?mh(d,r):f?.labelBox;if(!p)return;let m=Tg(p,Cg(e.current,l,u),a());(m.x!==a().x||m.y!==a().y||m.zoom!==a().zoom)&&o(m,{duration:i?0:360,ease:Sg});return}let f=t.find(e=>e.id===s&&e.type===`diagram`);if(!f)return;let p=a(),m=f.position.x*p.zoom+p.x,h=m+(f.measured?.width??f.style.width)*p.zoom,g=f.position.y*p.zoom+p.y,_=l?328:12,v=d.width-(u?328:12),y=0,b=0;h>v&&(y=v-h),m+y<_&&(y=_-m),g<64&&(b=64-g),(y||b)&&o({...p,x:p.x+y,y:p.y+b},{duration:i?0:360,ease:Sg})},[e,r,n,t,i,a,o])}var e_={"panel-left":(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),(0,x.jsx)(`path`,{d:`M9 3v18`})]}),"panel-right":(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),(0,x.jsx)(`path`,{d:`M15 3v18`})]}),views:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`rect`,{x:`3`,y:`3`,width:`7`,height:`7`,rx:`1`}),(0,x.jsx)(`rect`,{x:`14`,y:`3`,width:`7`,height:`7`,rx:`1`}),(0,x.jsx)(`rect`,{x:`3`,y:`14`,width:`7`,height:`7`,rx:`1`}),(0,x.jsx)(`rect`,{x:`14`,y:`14`,width:`7`,height:`7`,rx:`1`})]}),search:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`circle`,{cx:`11`,cy:`11`,r:`8`}),(0,x.jsx)(`path`,{d:`m21 21-4.3-4.3`})]}),spacing:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{d:`m18 8 4 4-4 4`}),(0,x.jsx)(`path`,{d:`m6 8-4 4 4 4`}),(0,x.jsx)(`path`,{d:`M2 12h20`})]}),wash:(0,x.jsx)(`path`,{d:`M12 2.5c-.6 2.6-2.2 5-4.3 6.9C5.9 11 5 13 5 15a7 7 0 0 0 14 0c0-2-.9-4-2.7-5.6C14.2 7.5 12.6 5.1 12 2.5Z`}),more:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`circle`,{cx:`5`,cy:`12`,r:`1.6`,fill:`currentColor`,stroke:`none`}),(0,x.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.6`,fill:`currentColor`,stroke:`none`}),(0,x.jsx)(`circle`,{cx:`19`,cy:`12`,r:`1.6`,fill:`currentColor`,stroke:`none`})]}),download:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}),(0,x.jsx)(`path`,{d:`m7 10 5 5 5-5`}),(0,x.jsx)(`path`,{d:`M12 15V3`})]}),lock:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`rect`,{x:`3`,y:`11`,width:`18`,height:`11`,rx:`2`}),(0,x.jsx)(`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`})]}),unlock:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`rect`,{x:`3`,y:`11`,width:`18`,height:`11`,rx:`2`}),(0,x.jsx)(`path`,{d:`M7 11V7a5 5 0 0 1 9.9-1`})]}),reset:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`}),(0,x.jsx)(`path`,{d:`M3 3v5h5`})]}),moon:(0,x.jsx)(`path`,{d:`M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z`}),sun:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`circle`,{cx:`12`,cy:`12`,r:`4`}),(0,x.jsx)(`path`,{d:`M12 2v2`}),(0,x.jsx)(`path`,{d:`M12 20v2`}),(0,x.jsx)(`path`,{d:`m4.93 4.93 1.41 1.41`}),(0,x.jsx)(`path`,{d:`m17.66 17.66 1.41 1.41`}),(0,x.jsx)(`path`,{d:`M2 12h2`}),(0,x.jsx)(`path`,{d:`M20 12h2`}),(0,x.jsx)(`path`,{d:`m6.34 17.66-1.41 1.41`}),(0,x.jsx)(`path`,{d:`m19.07 4.93-1.41 1.41`})]}),close:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{d:`M18 6 6 18`}),(0,x.jsx)(`path`,{d:`m6 6 12 12`})]}),check:(0,x.jsx)(`path`,{d:`M20 6 9 17l-5-5`}),chevron:(0,x.jsx)(`path`,{d:`m6 9 6 6 6-6`}),legend:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`rect`,{x:`3`,y:`3`,width:`7`,height:`7`,rx:`1`}),(0,x.jsx)(`rect`,{x:`3`,y:`14`,width:`7`,height:`7`,rx:`1`}),(0,x.jsx)(`path`,{d:`M14 5h7`}),(0,x.jsx)(`path`,{d:`M14 9h5`}),(0,x.jsx)(`path`,{d:`M14 16h7`}),(0,x.jsx)(`path`,{d:`M14 20h5`})]}),source:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{d:`M10 12.5 8 15l2 2.5`}),(0,x.jsx)(`path`,{d:`m14 12.5 2 2.5-2 2.5`}),(0,x.jsx)(`path`,{d:`M14 2v4a2 2 0 0 0 2 2h4`}),(0,x.jsx)(`path`,{d:`M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z`})]}),arrowRight:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{d:`M5 12h14`}),(0,x.jsx)(`path`,{d:`m12 5 7 7-7 7`})]}),fit:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{d:`M8 3H5a2 2 0 0 0-2 2v3`}),(0,x.jsx)(`path`,{d:`M21 8V5a2 2 0 0 0-2-2h-3`}),(0,x.jsx)(`path`,{d:`M3 16v3a2 2 0 0 0 2 2h3`}),(0,x.jsx)(`path`,{d:`M16 21h3a2 2 0 0 0 2-2v-3`})]}),expand:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{d:`m15 3 6 0 0 6`}),(0,x.jsx)(`path`,{d:`m9 21-6 0 0-6`}),(0,x.jsx)(`path`,{d:`M21 3 14 10`}),(0,x.jsx)(`path`,{d:`M3 21l7-7`})]}),collapse:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{d:`M10 14H4v6`}),(0,x.jsx)(`path`,{d:`M20 4h-6v6`}),(0,x.jsx)(`path`,{d:`m4 20 6-6`}),(0,x.jsx)(`path`,{d:`m20 4-6 6`})]})};function t_({name:e}){return(0,x.jsx)(`svg`,{className:`ic`,viewBox:`0 0 24 24`,"aria-hidden":`true`,focusable:`false`,children:e_[e]})}function n_(e,t,n,r,i){let a=t??e,o=a?`${t?`edge`:`node`}:${a.id}`:null,[s,c]=(0,y.useState)({editing:!1,label:``,subtitle:``,error:``}),l=(t=!1)=>c({editing:!1,label:a?.label??``,subtitle:e?.subtitle??``,error:``,returnFocus:t});(0,y.useEffect)(()=>l(),[o]);let u=e=>c(t=>({...t,...e}));return{...s,set:u,cancel:()=>l(!0),begin:()=>u({editing:!0,returnFocus:!1}),save:a=>{a.preventDefault();let o=s.label.trim();if(!o){u({error:df(i,`Name is required`)});return}t?r(t.id,o):n(e.id,o,s.subtitle.trim()),u({editing:!1,error:``})}}}function r_({editor:e,relation:t,locked:n,locale:r}){let i=e=>df(r,e),a=(0,y.useRef)(null),o=(0,y.useRef)(null);return(0,y.useEffect)(()=>{!e.editing&&e.returnFocus&&a.current?.focus(),e.error&&o.current?.focus()},[e.editing,e.error,e.returnFocus]),e.editing?(0,x.jsxs)(`form`,{className:`card-form`,onSubmit:e.save,onKeyDown:t=>{if(t.nativeEvent.isComposing||t.keyCode===229){t.key===`Enter`&&t.preventDefault();return}t.key===`Escape`&&(t.preventDefault(),t.stopPropagation(),e.cancel())},children:[(0,x.jsxs)(`label`,{children:[i(`Name`),(0,x.jsx)(`input`,{ref:o,autoFocus:!0,required:!0,value:e.label,onChange:t=>e.set({label:t.target.value,error:``}),"aria-invalid":!!e.error})]}),!t&&(0,x.jsxs)(`label`,{children:[i(`Description`),(0,x.jsx)(`textarea`,{value:e.subtitle,onChange:t=>e.set({subtitle:t.target.value,error:``})})]}),e.error&&(0,x.jsx)(`p`,{className:`card-error`,role:`alert`,children:e.error}),(0,x.jsxs)(`div`,{className:`card-actions`,children:[(0,x.jsx)(`button`,{type:`button`,onClick:e.cancel,children:i(`Cancel`)}),(0,x.jsx)(`button`,{type:`submit`,children:i(`Save`)})]})]}):(0,x.jsx)(`button`,{ref:a,disabled:n,title:n?i(`Unlock the layout first`):``,onClick:e.begin,children:i(`Edit text`)})}var i_=292,a_=232,o_=14;function s_({node:e,edge:t,source:n,target:r,others:i=[],canvasRef:a,palette:o,moduleColors:s,locale:c,locked:l,editor:u,graph:d,isFullscreen:f,onDetails:p,onClose:m}){let h=Cd(),g=(e,t)=>df(c,e,t),_=!!t,v=_?(fh(d).get(t.id)?.label??Ym(t,t.diagramType,c))||t.kind:e.label,b=(0,y.useRef)(null),S=(0,y.useRef)(!1),[C,w]=(0,y.useState)(a_),[,T]=(0,y.useState)(``),[E,D]=(0,y.useState)(!1),O=(0,y.useRef)(!1);(0,y.useEffect)(()=>{S.current=!1},[e?.id,t?.id,f]),(0,y.useEffect)(()=>{if(!E){S.current=!1;return}!O.current||b.current?.offsetHeight!==C||S.current||(S.current=!0,p())},[E,p,f,C]),(0,y.useLayoutEffect)(()=>{D(O.current);let e=b.current?.offsetHeight;e&&e!==C&&w(e)}),(0,y.useLayoutEffect)(()=>{if(!b.current)return;let e=new ResizeObserver(()=>{w(b.current?.offsetHeight??a_),T(`${a.current?.clientWidth}:${a.current?.clientHeight}`)});return e.observe(b.current),a.current&&e.observe(a.current),()=>e.disconnect()},[]);let k=a.current?.getBoundingClientRect();if(!e||!k?.width)return null;let A=t?.diagramType??e.diagramType??`architecture`,j=(e,t)=>({left:e.x*h.zoom+h.x,top:e.y*h.zoom+h.y,width:t.width*h.zoom,height:t.height*h.zoom}),M=_?e:mh(e,A),N=j({x:M.x??M.position.x,y:M.y??M.position.y},{width:M.width??M.size.width,height:M.height??M.size.height}),P=Cg(a.current,a.current.dataset.navOpen===`true`,a.current.dataset.drawerOpen===`true`),ee=[{side:`right`,x:N.left+N.width+o_,y:N.top},{side:`left`,x:N.left-o_-i_,y:N.top},{side:`below`,x:N.left,y:N.top+N.height+o_},{side:`above`,x:N.left,y:N.top-o_-C}],F=e=>e.x>=P.left&&e.x+i_<=P.right&&e.y>=P.top&&e.y+C<=P.bottom,I=i.filter(t=>t.type===`diagram`&&(!e.id||t.id!==e.id)).map(e=>{let t=mh({...e.data,position:e.position,size:{width:e.measured?.width??e.style.width,height:e.measured?.height??e.style.height}},A);return j({x:t.x,y:t.y},{width:t.width,height:t.height})});if(A===`sequence`){let e=fh(d),t=[...e.values()].flatMap(e=>[e.labelBox,...Om(e)]),n=Km(d);for(let r of d.groups??[]){let i=Rm(r,e,c,d.groups??[],n);t.push(...i.guards,...i.bodies??[],...i.heading?[i.heading]:[])}I.push(...t.map(e=>j(e,e)))}let te=e=>I.reduce((t,n)=>t+Math.max(0,Math.min(e.x+i_,n.left+n.width)-Math.max(e.x,n.left))*Math.max(0,Math.min(e.y+C,n.top+n.height)-Math.max(e.y,n.top)),0),ne=ee.filter(F),L=ne.find(e=>te(e)===0),R=A===`sequence`&&!L;O.current=R;let z=L??ne.sort((e,t)=>te(e)-te(t))[0]??ee[2],B=Math.min(Math.max(z.x,P.left),Math.max(P.left,P.right-i_)),re=Math.min(Math.max(z.y,P.top),Math.max(P.top,P.bottom-C)),ie=!_&&e.source?`${e.source.file}:${e.source.lineStart}${e.source.lineEnd?`-${e.source.lineEnd}`:``}`:null,ae=_?Mf(t,r,o,s,n,Bm(d).get(t.id)):Af(e,o,s).stroke;return(0,x.jsxs)(`aside`,{ref:b,className:`node-card ${_?`relation-card`:``} ${z.side===`left`?`is-flipped`:z.side===`below`?`is-below`:z.side===`above`?`is-above`:``}`,style:{left:B,top:re,width:i_,visibility:R?`hidden`:void 0},role:`dialog`,"aria-label":v,"data-node-id":_?void 0:e.id,"data-edge-id":_?t.id:void 0,children:[(0,x.jsx)(`button`,{className:`card-close`,onClick:m,"aria-label":g(`Close`),children:(0,x.jsx)(t_,{name:`close`})}),u.editing?(0,x.jsx)(r_,{editor:u,relation:_,locked:l,locale:c}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`p`,{className:`card-kicker`,children:[(0,x.jsx)(`span`,{className:`node-dot`,style:{backgroundColor:ae}}),_?`${g(`Edges`)} · ${t.kind}`:`${g(Pf[e.kind]??e.kind)}${e.module?` · ${e.module}`:``}`]}),(0,x.jsx)(`h4`,{children:v}),_?(0,x.jsxs)(`p`,{className:`card-subtitle`,children:[n?.label,` → `,r?.label]}):e.subtitle&&(0,x.jsx)(`p`,{className:`card-subtitle`,children:e.subtitle}),ie&&(0,x.jsxs)(`p`,{className:`card-source`,title:ie,children:[(0,x.jsx)(t_,{name:`source`}),(0,x.jsx)(`code`,{children:ie})]}),_&&t.evidence&&(0,x.jsxs)(`p`,{className:`card-source`,children:[g(`Evidence`),` · `,t.evidence]}),!_&&e.tags?.length>0&&(0,x.jsx)(`div`,{className:`card-tags`,children:e.tags.slice(0,4).map(e=>(0,x.jsx)(`span`,{children:e},e))}),(0,x.jsxs)(`div`,{className:`card-actions`,children:[(0,x.jsx)(r_,{editor:u,relation:_,locked:l,locale:c}),(0,x.jsxs)(`button`,{className:`card-action`,onClick:p,children:[g(`View details`),(0,x.jsx)(t_,{name:`arrowRight`})]})]})]})]})}var c_={source:`Source code`,code:`Code`,config:`Configuration`,schema:`Schema`,test:`Test`,document:`Document`,framework:`Framework convention`,inference:`Inference`},l_=[`system`,`light`,`dark`],u_={system:`Follow system`,light:`Light`,dark:`Dark`};function d_(e,t,n){let[r,i]=(0,y.useState)(e?`still`:``);return e&&!r?i(`in`):!e&&r&&t&&i(``),(0,y.useEffect)(()=>{if(e||!r)return;let t=!0;return Promise.allSettled((n.current?.getAnimations()??[]).map(e=>e.finished)).then(()=>{t&&i(``)}),()=>{t=!1}},[e,r,n]),[r,`${r===`still`?` is-still`:``}${e?``:` is-closing`}`]}function f_({graph:e,originalGraph:t,graphForSave:n,allDiagrams:r,moduleColors:i,wash:a,setWash:o,onDiagramChange:s,theme:c,appearance:l,setAppearance:u,panels:d,flowControl:f}){let p=K(e=>e.transform[2]),{setCenter:m}=_l(),h=(t,n)=>df(e.meta.locale,t,n),{diagramType:g,palette:_,reduceMotion:v,hasFlow:b,flowRunning:S,setFlowEnabled:C,inspectedNode:w,inspectedEdge:T,selectedId:E,selectedEdgeId:D,selectionPulse:O,query:k,setQuery:A,normalizedQuery:j,results:M,selectNode:N,selectEdge:P,clearSelectedNode:ee,handleCanvasKeyDown:F,locked:I,setLocked:te,canvasRef:ne,currentGraph:L,nodes:R,onNodesChange:z,updateNodeText:B,updateEdgeText:re,readGraph:ie,focusDiagram:ae,nudgeLayout:oe,visibleNodes:se,visibleEdges:ce,reset:le,exportDiagram:ue,saveGraph:de,exportStatus:fe,layoutProblem:pe,focusProblem:me,boardRef:he,fullscreenButtonRef:ge,isFullscreen:_e,fullscreenPending:ve,fullscreenSupported:ye,toggleFullscreen:be,toolbarOpen:xe,drawerOpen:Se,toolbarButtonRef:Ce,drawerButtonRef:we,searchInputRef:Te,inspectorRef:Ee,panelRef:De,toggleToolbar:Oe,toggleDrawer:ke,openDetails:Ae}=Zg(e,c,d,i,t,n,f),[je,Me]=d_(xe,v,De),[Ne,Pe]=d_(Se,v,Ee),Fe=(0,y.useRef)(null),Ie=n_(w,T,B,re,e.meta.locale),{open:Le,toggle:Re,close:ze}=Qg(),Be=$g(ne,R,L,g,v),[Ve,He]=(0,y.useState)(!1),[Ue,We]=(0,y.useState)(``),[Ge,Ke]=(0,y.useState)(0);(0,y.useEffect)(()=>{(Se||O===0)&&Ke(O)},[Se,O]);let qe=(0,y.useMemo)(()=>{let e=new Map(se.map(e=>[e.id,e]));return function({id:t,x:n,y:r,width:i,height:a,color:o,strokeColor:s,strokeWidth:c,className:l,selected:u,shapeRendering:d,onClick:f}){let p=e.get(t),m=`react-flow__minimap-node${l?` ${l}`:``}${u?` selected`:``}`;if(p?.type===`boundary`)return(0,x.jsx)(`g`,{className:m,"data-group-id":t,shapeRendering:d,onClick:f?e=>f(e,t):void 0,dangerouslySetInnerHTML:{__html:ep({...p.data,size:{width:i,height:a}},p.data.appearance,n,r)}});if(!p)return(0,x.jsx)(`rect`,{className:m,x:n,y:r,width:i,height:a,rx:`14`,fill:o,stroke:s,strokeWidth:c,shapeRendering:d,onClick:f?e=>f(e,t):void 0});let h=Tm(p.data,g,n,r,i,a,o,s,c);return(0,x.jsx)(`g`,{className:m,"data-node-id":t,shapeRendering:d,onClick:f?e=>f(e,t):void 0,dangerouslySetInnerHTML:{__html:h}})}},[g,se]);(0,y.useEffect)(()=>{if(!fe)return;We(h(fe.message));let e=window.setTimeout(()=>We(``),4500);return()=>window.clearTimeout(e)},[fe]);let Je=O>0&&!Se&&(g!==`sequence`||O!==Ge)&&!R.some(e=>e.dragging),Ye=Je?R.find(e=>e.id===E&&e.type===`diagram`):null,Xe=Je?ce.find(e=>e.id===D):null,Ze=Xe?L.edges.find(e=>e.id===Xe.id):null,Qe=Xe?{position:Xe.data.route.labelPoint,size:{width:0,height:0}}:null,$e=Ze?L.nodes.find(e=>e.id===Ze.source):null,et=Ze?L.nodes.find(e=>e.id===Ze.target):null,tt=T?L.nodes.find(e=>e.id===T.source):null,nt=T?L.nodes.find(e=>e.id===T.target):null,rt=(e,t)=>(0,x.jsxs)(`button`,{onClick:()=>N(e),children:[(0,x.jsxs)(`span`,{children:[(0,x.jsx)(`i`,{children:String(t+1).padStart(2,`0`)}),e.label]}),(0,x.jsx)(`small`,{children:e.subtitle??h(Pf[e.kind]??e.kind)})]},e.id),it=(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`side-head`,children:[(0,x.jsx)(`p`,{className:`panel-title`,children:h(`Details`)}),(0,x.jsx)(`button`,{className:`side-close`,onClick:()=>ee(!0),"aria-label":h(`Close details`),title:h(`Close details`),children:(0,x.jsx)(t_,{name:`close`})})]}),(0,x.jsx)(`section`,{className:`inspector-card drawer-body`,"data-node-id":w?.id,"data-edge-id":T?.id,children:w?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`node-kicker`,children:[(0,x.jsx)(`span`,{className:`node-dot`,style:{backgroundColor:Af(w,_,i).stroke}}),h(Pf[w.kind]??w.kind),w.module?` · ${w.module}`:``]}),(0,x.jsx)(`h2`,{children:w.label}),(0,x.jsx)(`p`,{className:`drawer-subtitle`,children:w.subtitle}),w.fields?.length>0&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`h3`,{children:h(`Fields`)}),(0,x.jsx)(`ul`,{children:w.fields.map(e=>(0,x.jsx)(`li`,{children:(0,x.jsxs)(`code`,{children:[e.key,` `,e.name,`: `,e.type,e.nullable===!1?` · NOT NULL`:e.nullable===!0?` · NULL`:``]})},e.name))})]}),w.attributes?.length>0&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`h3`,{children:h(`Attributes`)}),(0,x.jsx)(`ul`,{children:w.attributes.map(e=>(0,x.jsx)(`li`,{children:(0,x.jsx)(`code`,{children:e})},e))})]}),w.methods?.length>0&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`h3`,{children:h(`Methods`)}),(0,x.jsx)(`ul`,{children:w.methods.map(e=>(0,x.jsx)(`li`,{children:(0,x.jsx)(`code`,{children:e})},e))})]}),w.source&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`h3`,{children:[h(`Source`),` · `,h(c_[w.source.kind??`source`]??w.source.kind)]}),(0,x.jsxs)(`code`,{className:`source-path`,children:[w.source.file,`:`,w.source.lineStart,w.source.lineEnd?`-${w.source.lineEnd}`:``]}),w.source.symbol&&(0,x.jsx)(`p`,{className:`symbol`,children:w.source.symbol})]}),w.tags?.length>0&&(0,x.jsx)(`div`,{className:`tags`,children:w.tags.map(e=>(0,x.jsx)(`span`,{children:e},e))})]}):T?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`node-kicker`,children:[(0,x.jsx)(`span`,{className:`node-dot`,style:{backgroundColor:ce.find(e=>e.id===T.id)?.style.stroke??_.edge}}),h(`Edges`),` · `,T.kind]}),(0,x.jsx)(`h2`,{children:(fh(L).get(T.id)?.label??Ym(T,g,e.meta.locale))||T.kind}),(0,x.jsxs)(`p`,{className:`drawer-subtitle`,children:[tt?.label,` → `,nt?.label]}),(0,x.jsx)(`h3`,{children:h(`Evidence`)}),(0,x.jsx)(`p`,{children:T.evidence}),T.facts?.length>0&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`h3`,{children:h(`Evidence facts`)}),(0,x.jsx)(`ul`,{children:T.facts.map(e=>(0,x.jsx)(`li`,{children:e},e))})]})]}):(0,x.jsxs)(`div`,{className:`drawer-empty`,children:[(0,x.jsx)(`span`,{className:`empty-icon`,children:(0,x.jsx)(t_,{name:`fit`})}),(0,x.jsx)(`span`,{children:h(`Start with a node`)}),(0,x.jsx)(`p`,{children:h(`Select a component or a list entry to explore its role, fields, methods and source.`)})]})}),(w||T)&&(0,x.jsx)(`section`,{className:`inspector-card`,children:(0,x.jsx)(`div`,{className:Ie.editing?``:`card-actions`,children:(0,x.jsx)(r_,{editor:Ie,relation:!!T,locked:I,locale:e.meta.locale})})}),w?.facts?.length>0&&(0,x.jsxs)(`section`,{className:`inspector-card inspector-facts`,"data-node-id":w.id,children:[(0,x.jsx)(`h3`,{children:w.source?h(`Evidence facts`):h(`Node notes`)}),(0,x.jsx)(`ul`,{children:w.facts.map(e=>(0,x.jsx)(`li`,{children:e},e))})]})]});return Se&&(Fe.current=it),(0,x.jsxs)(`main`,{className:`app-shell`,children:[(0,x.jsxs)(`header`,{className:`toolbar`,children:[(0,x.jsxs)(`div`,{className:`tb-group tb-left`,children:[(0,x.jsx)(`button`,{className:`tb`,ref:Ce,onClick:()=>{Oe(),xe||Be(E,D,!0,Se)},"aria-controls":`graph-tools`,"aria-expanded":xe,"aria-pressed":xe,"aria-label":h(xe?`Hide graph navigation`:`Show graph navigation`),title:h(xe?`Hide graph navigation`:`Show graph navigation`),children:(0,x.jsx)(t_,{name:`panel-left`})}),r.length>1&&(0,x.jsxs)(`div`,{className:`menu-anchor`,"data-popover-root":`views`,children:[(0,x.jsxs)(`button`,{id:`view-menu-button`,className:`tb tb-wide`,onClick:()=>Re(`views`),"aria-haspopup":`menu`,"aria-expanded":Le===`views`,title:h(`Diagram types`),children:[(0,x.jsx)(t_,{name:`views`}),(0,x.jsx)(`span`,{children:h(gm[g])}),(0,x.jsx)(t_,{name:`chevron`})]}),Le===`views`&&(0,x.jsx)(`div`,{className:`popover menu`,role:`menu`,"aria-labelledby":`view-menu-button`,children:r.map(e=>{let t=vm(e);return(0,x.jsxs)(`button`,{role:`menuitemradio`,"aria-checked":t===g,className:t===g?`is-current`:``,onClick:()=>{s(t,L),ze(),d.closeMobile()},children:[(0,x.jsx)(`span`,{className:`menu-mark`,children:t===g?(0,x.jsx)(t_,{name:`check`}):null}),h(gm[t]),(0,x.jsx)(`small`,{children:h(`{count} relations`,{count:e.edges.length})})]},t)})})]}),(0,x.jsxs)(`div`,{className:`tb-title`,children:[(0,x.jsx)(`b`,{children:e.meta.title}),(0,x.jsxs)(`span`,{children:[h(gm[g]),` · `,e.meta.sourceRef]})]})]}),(0,x.jsx)(`div`,{className:`tb-group tb-center`,children:(0,x.jsxs)(`div`,{className:`tb-search`,"data-popover-root":`search`,onFocus:()=>He(!0),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||He(!1)},onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),e.currentTarget.contains(document.activeElement)&&document.activeElement.blur())},children:[(0,x.jsx)(t_,{name:`search`}),(0,x.jsx)(`input`,{ref:Te,id:`search`,value:k,onChange:e=>A(e.target.value),placeholder:h(`Search nodes`),"aria-label":h(`Search nodes`),autoComplete:`off`}),Ve&&j&&(0,x.jsxs)(`div`,{className:`popover results`,role:`listbox`,"aria-label":h(`Matches · {count}`,{count:M.length}),onMouseDown:e=>e.preventDefault(),children:[(0,x.jsx)(`p`,{className:`pop-title`,children:h(`Matches · {count}`,{count:M.length})}),M.length>0?M.map((e,t)=>(0,x.jsxs)(`button`,{role:`option`,"aria-selected":`false`,onClick:()=>N(e),children:[(0,x.jsxs)(`span`,{children:[(0,x.jsx)(`i`,{children:String(t+1).padStart(2,`0`)}),e.label]}),(0,x.jsx)(`small`,{children:e.subtitle??h(Pf[e.kind]??e.kind)})]},e.id)):(0,x.jsx)(`p`,{className:`pop-empty`,children:h(`No matches. Try a name or responsibility.`)})]})]})}),(0,x.jsxs)(`div`,{className:`tb-group tb-right`,children:[(0,x.jsx)(`button`,{className:`tb tb-wash`,role:`switch`,"aria-checked":a,onClick:()=>o(e=>!e),title:h(`Card wash`),"aria-label":h(`Card wash`),children:(0,x.jsx)(t_,{name:`wash`})}),(0,x.jsxs)(`div`,{className:`menu-anchor`,"data-popover-root":`more`,children:[(0,x.jsx)(`button`,{id:`more-menu-button`,className:`tb`,onClick:()=>Re(`more`),"aria-haspopup":`menu`,"aria-expanded":Le===`more`,title:h(`More`),"aria-label":h(`More`),children:(0,x.jsx)(t_,{name:`more`})}),Le===`more`&&(0,x.jsxs)(`div`,{className:`popover menu is-right`,role:`menu`,"aria-labelledby":`more-menu-button`,children:[(0,x.jsxs)(`button`,{role:`menuitem`,onClick:()=>{ue(`svg`),ze()},children:[(0,x.jsx)(`span`,{className:`menu-mark`,children:(0,x.jsx)(t_,{name:`download`})}),h(`Export SVG`)]}),(0,x.jsxs)(`button`,{role:`menuitem`,onClick:()=>{ue(`png`),ze()},children:[(0,x.jsx)(`span`,{className:`menu-mark`,children:(0,x.jsx)(t_,{name:`download`})}),h(`Export PNG`)]}),(0,x.jsxs)(`button`,{role:`menuitem`,onClick:()=>{de(),ze()},children:[(0,x.jsx)(`span`,{className:`menu-mark`,children:(0,x.jsx)(t_,{name:`download`})}),h(`Save changes`)]}),(0,x.jsx)(`div`,{className:`menu-sep`}),(0,x.jsxs)(`button`,{role:`menuitem`,onClick:()=>{le(),ze()},title:h(`Restore the original layout and view, and clear search and selection.`),children:[(0,x.jsx)(`span`,{className:`menu-mark`,children:(0,x.jsx)(t_,{name:`reset`})}),h(`Reset`)]}),(0,x.jsxs)(`div`,{className:`menu-row`,children:[(0,x.jsxs)(`span`,{className:`menu-lead`,children:[(0,x.jsx)(`span`,{className:`menu-mark`,children:(0,x.jsx)(t_,{name:I?`lock`:`unlock`})}),h(`Locked`)]}),(0,x.jsx)(`button`,{className:`switch`,role:`switch`,"aria-checked":I,"aria-label":h(I?`Locked`:`Draggable`),onClick:()=>te(e=>!e),children:(0,x.jsx)(`i`,{})})]}),(0,x.jsxs)(`button`,{role:`menuitem`,"aria-disabled":I,title:h(I?`Unlock the layout first`:E?`Space the selected node and its direct neighbors`:`Space all nodes`),onClick:()=>{oe(),ze()},children:[(0,x.jsx)(`span`,{className:`menu-mark`,children:(0,x.jsx)(t_,{name:`spacing`})}),h(`Arrange`)]}),(0,x.jsx)(`div`,{className:`menu-sep`}),(0,x.jsxs)(`div`,{className:`menu-row menu-row-stack`,children:[(0,x.jsxs)(`span`,{className:`menu-lead`,children:[(0,x.jsx)(`span`,{className:`menu-mark`,children:(0,x.jsx)(t_,{name:c===`light`?`sun`:`moon`})}),h(`Appearance`)]}),(0,x.jsxs)(`div`,{className:`seg`,role:`radiogroup`,"aria-label":h(`Appearance`),style:{"--seg-n":l_.length},children:[(0,x.jsx)(`span`,{className:`seg-knob`,"aria-hidden":`true`,style:{transform:`translateX(${l_.indexOf(l)*100}%)`}}),l_.map(e=>(0,x.jsx)(`button`,{role:`radio`,"aria-checked":l===e,onClick:()=>u(e),children:h(u_[e])},e))]})]})]})]}),(0,x.jsx)(`button`,{className:`tb`,ref:we,onClick:()=>{ke(),Se||Be(E,D,xe,!0)},"aria-controls":`node-inspector`,"aria-expanded":Se,"aria-pressed":Se,title:h(Se?`Hide details`:`Show details`),"aria-label":h(Se?`Hide details`:`Show details`),children:(0,x.jsx)(t_,{name:`panel-right`})})]})]}),(0,x.jsxs)(`section`,{className:`workspace ${xe?`nav-open`:``} ${Se?`drawer-open`:``}`,children:[je&&(0,x.jsxs)(`aside`,{id:`graph-tools`,ref:De,tabIndex:-1,className:`sidebar nav${Me}`,"aria-label":h(`Graph navigation`),children:[(0,x.jsxs)(`div`,{className:`side-head`,children:[(0,x.jsx)(`p`,{className:`panel-title`,children:h(`Graph navigation`)}),(0,x.jsx)(`button`,{className:`side-close`,onClick:Oe,"aria-label":h(`Close`),title:h(`Close`),children:(0,x.jsx)(t_,{name:`close`})})]}),(0,x.jsxs)(`div`,{className:`project-summary`,children:[(0,x.jsx)(`p`,{className:`panel-title`,children:h(`Overview`)}),e.meta.scope&&(0,x.jsx)(`p`,{children:e.meta.scope}),(0,x.jsxs)(`div`,{className:`stat-grid`,children:[(0,x.jsxs)(`span`,{children:[(0,x.jsx)(`strong`,{children:e.nodes.length}),h(`Nodes`)]}),(0,x.jsxs)(`span`,{children:[(0,x.jsx)(`strong`,{children:e.edges.length}),h(`Edges`)]}),(0,x.jsxs)(`span`,{children:[(0,x.jsx)(`strong`,{children:e.groups?.length??0}),h(`Groups`)]})]})]}),(0,x.jsx)(`p`,{className:`result-heading`,children:h(`Nodes · {count}`,{count:e.nodes.length})}),(0,x.jsx)(`div`,{className:`search-results`,children:L.nodes.map(rt)})]}),(0,x.jsxs)(`figure`,{ref:he,className:`board diagram-board`,children:[(0,x.jsxs)(`svg`,{className:`relation-defs`,width:`0`,height:`0`,"aria-hidden":`true`,children:[(0,x.jsx)(`style`,{children:_p(_,`:is(.node-visual,.fragment-visual,.fragment-text) `)}),(0,x.jsxs)(`defs`,{children:[(0,x.jsx)(`filter`,{id:`node-shadow`,x:`-20%`,y:`-20%`,width:`140%`,height:`150%`,children:(0,x.jsx)(`feDropShadow`,{dx:`0`,dy:`5`,stdDeviation:`7`,floodColor:_.ink,floodOpacity:`.045`})}),(0,x.jsx)(`marker`,{id:`codegraph-arrow-open`,viewBox:`0 0 10 10`,refX:`9`,refY:`5`,markerWidth:`7`,markerHeight:`7`,orient:`auto`,children:(0,x.jsx)(`path`,{d:`M1 1L9 5L1 9`,fill:`none`,stroke:`context-stroke`,strokeWidth:`1.5`})}),(0,x.jsx)(`marker`,{id:`codegraph-triangle`,viewBox:`0 0 12 12`,refX:`11`,refY:`6`,markerWidth:`9`,markerHeight:`9`,orient:`auto`,children:(0,x.jsx)(`path`,{d:`M1 1L11 6L1 11Z`,fill:`var(--canvas)`,stroke:`context-stroke`})}),(0,x.jsx)(`marker`,{id:`codegraph-diamond-filled`,viewBox:`0 0 14 10`,refX:`1`,refY:`5`,markerWidth:`12`,markerHeight:`10`,orient:`auto`,children:(0,x.jsx)(`path`,{d:`M1 5L7 1L13 5L7 9Z`,fill:`context-stroke`})}),(0,x.jsx)(`marker`,{id:`codegraph-diamond-open`,viewBox:`0 0 14 10`,refX:`1`,refY:`5`,markerWidth:`12`,markerHeight:`10`,orient:`auto`,children:(0,x.jsx)(`path`,{d:`M1 5L7 1L13 5L7 9Z`,fill:`var(--canvas)`,stroke:`context-stroke`})})]})]}),(0,x.jsxs)(`div`,{ref:ne,className:`canvas`,style:{"--sequence-flow-unit":`${Math.max(1,.6/p)}px`},"data-nav-open":xe,"data-drawer-open":Se,onKeyDownCapture:F,"aria-label":h(`Interactive {type}`,{type:h(gm[g])}),children:[(0,x.jsxs)(bd,{nodes:se,edges:ce,nodeTypes:Ah,edgeTypes:jh,onNodesChange:z,onPaneClick:()=>{ee(),ze()},onNodeClick:(e,t)=>{t.type===`diagram`&&N(t,!1)},onEdgeClick:(e,t)=>P(t.data),onNodeDragStart:(e,t)=>{t.type===`diagram`&&N(t,!1)},onInit:()=>requestAnimationFrame(()=>ie(L,0)),nodesDraggable:!I,nodesConnectable:!1,deleteKeyCode:null,elementsSelectable:!0,minZoom:.08,maxZoom:2,colorMode:c,ariaLabelConfig:{"controls.zoomIn.ariaLabel":h(`Zoom in`),"controls.zoomOut.ariaLabel":h(`Zoom out`),"minimap.ariaLabel":h(`Minimap`)},proOptions:{hideAttribution:!0},children:[(0,x.jsx)(Md,{color:_.ruleSoft,gap:24,size:.65}),(0,x.jsxs)(Vd,{position:`bottom-left`,showInteractive:!1,showFitView:!1,children:[(0,x.jsx)(Rd,{className:`react-flow__controls-fitview`,onClick:ae,title:h(`Fit canvas`),"aria-label":h(`Fit canvas`),children:(0,x.jsx)(t_,{name:`fit`})}),(0,x.jsx)(Rd,{className:`react-flow__controls-fullscreen`,ref:ge,onClick:be,"aria-pressed":_e,"aria-busy":ve,"aria-disabled":ve||!ye&&!_e,"aria-label":h(_e?`Exit fullscreen`:`Enter fullscreen`),title:h(!ye&&!_e?`Fullscreen is not available in this browser or page`:_e?`Exit fullscreen (Esc)`:`Enter fullscreen`),children:(0,x.jsx)(t_,{name:_e?`collapse`:`expand`})})]}),(0,x.jsx)(af,{pannable:!0,zoomable:!0,onClick:(e,t)=>m(t.x,t.y,{zoom:p}),nodeComponent:qe,nodeStrokeColor:e=>e.type===`boundary`?`none`:Af(e.data,_,i).stroke,nodeStrokeWidth:2,nodeColor:e=>e.type===`boundary`?e.data.appearance.fill:Af(e.data,_,i).fill,maskColor:_.mask})]}),(0,x.jsxs)(`div`,{className:`float legend-anchor`,"data-popover-root":`legend`,children:[(0,x.jsxs)(`button`,{className:`float-btn`,onClick:()=>Re(`legend`),"aria-expanded":Le===`legend`,"aria-haspopup":`true`,title:h(`Legend`),children:[(0,x.jsx)(t_,{name:`legend`}),(0,x.jsx)(`span`,{children:h(`Legend`)})]}),Le===`legend`&&(0,x.jsxs)(`div`,{className:`popover legend-pop`,children:[(0,x.jsx)(`p`,{className:`pop-title`,children:h(`Legend`)}),(0,x.jsx)(`div`,{className:`legend`,role:`group`,"aria-label":h(`Legend`),children:Fh(L,_,i).map(e=>(0,x.jsxs)(`span`,{"data-legend-role":e.role,"data-legend-shape":e.shape,children:[e.shape===`ramp`?(0,x.jsx)(`i`,{className:`legend-ramp`,style:{backgroundColor:e.fill,borderColor:e.stroke,backgroundImage:Ph(e.ramp)}}):e.shape===`self`?(0,x.jsxs)(`svg`,{style:{color:e.stroke},width:`28`,height:`14`,viewBox:`0 0 28 14`,"aria-hidden":`true`,children:[(0,x.jsx)(`path`,{d:`M5 3C22 0 22 13 6 11`,fill:`none`,stroke:`currentColor`}),(0,x.jsx)(`path`,{d:`M10 8L5.5 11L10.5 13.4`,fill:`none`,stroke:`currentColor`})]}):[`sync`,`async`,`return`].includes(e.shape)?(0,x.jsxs)(`svg`,{style:{color:e.stroke},width:`28`,height:`14`,viewBox:`0 0 28 14`,"aria-hidden":`true`,children:[(0,x.jsx)(`path`,{d:`M1 7H25`,stroke:`currentColor`,strokeDasharray:e.shape===`return`?`4 3`:void 0}),(0,x.jsx)(`path`,{d:e.shape===`sync`?`M19 2L26 7L19 12Z`:`M19 2L26 7L19 12`,fill:e.shape===`sync`?`currentColor`:`none`,stroke:`currentColor`})]}):(0,x.jsx)(`i`,{className:`legend-${e.shape}`,style:{backgroundColor:e.fill??`transparent`,borderColor:e.stroke,color:e.stroke,"--legend-body":_.surface2}}),e.label]},e.id))}),b&&(0,x.jsxs)(`div`,{className:`pop-opt`,children:[(0,x.jsx)(`span`,{children:h(`Edge animation`)}),(0,x.jsx)(`button`,{className:`switch`,role:`switch`,"aria-checked":S,disabled:!!v,onClick:()=>C(e=>!e),"aria-label":h(`Edge animation`),children:(0,x.jsx)(`i`,{})})]}),v&&(0,x.jsx)(`p`,{className:`pop-note`,children:h(`System reduced-motion preference is respected`)})]})]}),Ye&&(0,x.jsx)(s_,{node:{...Ye.data,position:Ye.position},others:R,canvasRef:ne,palette:_,moduleColors:i,locale:e.meta.locale,locked:I,editor:Ie,graph:L,isFullscreen:_e,onDetails:async()=>{_e&&!await be()||(Ae(),Be(E,D,xe,!0))},onClose:()=>ee()}),Ze&&(0,x.jsx)(s_,{node:Qe,edge:{...Ze,diagramType:g},source:$e,target:et,others:R,canvasRef:ne,palette:_,moduleColors:i,locale:e.meta.locale,locked:I,editor:Ie,graph:L,isFullscreen:_e,onDetails:async()=>{_e&&!await be()||(Ae(),Be(E,D,xe,!0))},onClose:()=>ee()}),pe&&(0,x.jsxs)(`details`,{className:`layout-problems`,children:[(0,x.jsx)(`summary`,{children:h(`Layout needs adjustment; JSON drafts can still be saved`)}),(0,x.jsx)(`ul`,{children:pe.diagnostics.filter(e=>e.severity===`error`).map((e,t)=>(0,x.jsx)(`li`,{children:(0,x.jsxs)(`button`,{onClick:()=>me(e),children:[e.elementIds.join(`, `),` · `,e.ruleId]})},t))}),(0,x.jsx)(`pre`,{children:pe.message})]}),(0,x.jsx)(`div`,{className:`toast ${Ue?`is-on`:``}`,role:`status`,"aria-live":`polite`,children:Ue})]})]}),Ne&&(0,x.jsx)(`aside`,{id:`node-inspector`,ref:Ee,tabIndex:-1,className:`sidebar drawer inspector${w||T?` is-open`:``}${Pe}`,"aria-label":h(`Details`),children:Fe.current})]})]})}var p_=`(max-width: 700px)`,m_=()=>window.matchMedia(p_).matches;function h_(){let[e,t]=(0,y.useState)(!1),[n,r]=(0,y.useState)(!1),i=(0,y.useRef)(null),a=(0,y.useRef)(null),o=(0,y.useRef)(null),s=(0,y.useRef)(null),c=(0,y.useRef)(null),l=(0,y.useRef)(null),u=(0,y.useCallback)(()=>cancelAnimationFrame(l.current),[]),d=(0,y.useCallback)(e=>{u();let t=document.activeElement;l.current=requestAnimationFrame(()=>{(document.activeElement===t||!t?.isConnected)&&e.current?.focus({preventScroll:!0})})},[u]);(0,y.useEffect)(()=>u,[u]);let f=(0,y.useCallback)(()=>{r(!0),m_()&&t(!1),d(s)},[d]),p=(0,y.useCallback)((e=!1)=>{u(),r(!1),e&&d(a)},[u,d]),m=(0,y.useCallback)(()=>{m_()&&(r(!1),t(!1))},[]),h=(0,y.useCallback)((e=!1)=>{u(),t(!1),e&&d(i)},[u,d]);return(0,y.useEffect)(()=>{let e=window.matchMedia(p_),n=e=>{e.matches&&(t(!1),r(!1))};return n(e),e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),{toolbarOpen:e,drawerOpen:n,toolbarButtonRef:i,drawerButtonRef:a,searchInputRef:o,inspectorRef:s,panelRef:c,openDetails:f,closeDetails:p,closeMobile:m,closeNav:h,toggleToolbar:()=>{u(),t(!e),m_()&&r(!1),e||d(c)},toggleDrawer:()=>{u(),r(!n),m_()&&t(!1),n||d(s)}}}var g_=JSON.parse(document.querySelector(`#graph-data`).textContent),__=[...Array.isArray(g_.diagrams)?g_.diagrams:[g_]].sort((e,t)=>hm.indexOf(vm(e))-hm.indexOf(vm(t))),v_=window.matchMedia(`(prefers-color-scheme: dark)`);function y_(){let[e,t]=(0,y.useState)(`system`),[n,r]=(0,y.useState)(v_.matches);return(0,y.useEffect)(()=>{let e=e=>r(e.matches);return v_.addEventListener(`change`,e),()=>v_.removeEventListener(`change`,e)},[]),{preference:e,setPreference:t,theme:e===`system`?n?`dark`:`light`:e}}function b_(){let[e,t]=(0,y.useState)(vm(__[0])),n=(0,y.useRef)(new Map),r=(0,y.useState)(!0),{preference:i,setPreference:a,theme:o}=y_(),s=h_(),c=__.find(t=>vm(t)===e)??__[0],l=n.current.get(e)??c,u=(r,i)=>{n.current.set(e,i),t(r)},d=e=>Ag(g_,n.current,e),[f,p]=(0,y.useState)(!0),m=(0,y.useMemo)(()=>{let e=Tf(__,vf[o]);return f?e:Df(e,vf[o])},[o,f]);return(0,y.useEffect)(()=>{document.documentElement.lang=l.meta.locale??`zh-CN`},[l.meta.locale]),(0,y.useEffect)(()=>{document.title=`${l.meta.title} · QGraphFlow`},[l.meta.title]),(0,y.useEffect)(()=>{document.documentElement.dataset.theme=o,document.documentElement.dataset.appearance=i;for(let[e,t]of Object.entries(Nf(vf[o])))document.documentElement.style.setProperty(e,t)},[o,i]),(0,x.jsx)(gd,{children:(0,x.jsx)(f_,{flowControl:r,graph:l,originalGraph:c,graphForSave:d,allDiagrams:__,moduleColors:m,wash:f,setWash:p,onDiagramChange:u,theme:o,appearance:i,setAppearance:a,panels:s},e)})}(0,b.createRoot)(document.getElementById(`root`)).render((0,x.jsx)(b_,{}));</script>
284
- <style rel="stylesheet" crossorigin>.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;font-synthesis:none;--bg:#fcfcfd;--panel:#f9f9fb;--canvas:#fcfcfd;--ink:#1c2024;--muted:#60646c;--line:#d9d9e0;--accent:#5753c6;--accent-soft:#f8f8ff;--warm:#c44b00;--font-body:16px;--font-small:14px;--edge-line-height:24px;--label:var(--ink);--label-2:color-mix(in srgb, var(--ink) 62%, transparent);--label-3:color-mix(in srgb, var(--ink) 34%, transparent);--label-4:color-mix(in srgb, var(--ink) 18%, transparent);--sep:color-mix(in srgb, var(--ink) 12%, transparent);--fill:color-mix(in srgb, var(--ink) 6%, transparent);--fill-2:color-mix(in srgb, var(--ink) 10%, transparent);--fill-3:color-mix(in srgb, var(--ink) 15%, transparent);--focus:color-mix(in srgb, var(--accent) 50%, transparent);--material-thick:color-mix(in srgb, var(--bg) 92%, transparent);--material:color-mix(in srgb, var(--bg) 86%, transparent);--material-thin:color-mix(in srgb, var(--bg) 74%, transparent);--blur:blur(24px) saturate(180%);--blur-thin:blur(18px) saturate(160%);--r-control:6px;--r-field:8px;--r-pop:10px;--r-card:12px;--shadow-1:0 1px 2px #1c1b1a0f, 0 4px 14px #1c1b1a14;--shadow-2:0 2px 6px #1c1b1a12, 0 16px 40px #1c1b1a26;--ease:cubic-bezier(.32, .72, 0, 1);--fast:.14s;--base:.3s;--tb-h:52px;--side-w:304px;--gutter:12px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Segoe UI,Microsoft YaHei,system-ui,sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--material-thick:color-mix(in srgb, var(--panel) 92%, transparent);--material:color-mix(in srgb, var(--panel) 86%, transparent);--material-thin:color-mix(in srgb, var(--panel) 74%, transparent);--shadow-1:0 1px 2px #00000059, 0 4px 14px #0006;--shadow-2:0 2px 6px #0006, 0 18px 44px #0000008c}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{min-width:320px;color:var(--label);background:var(--bg);font-size:13px}button,input,select{font:inherit}button{color:inherit}button:disabled{cursor:not-allowed}:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.ic{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:17px;height:17px}.app-shell{width:100%;height:100%;position:relative}.workspace{position:absolute;inset:0}.toolbar{z-index:30;height:var(--tb-h);background:var(--material);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:0 .5px 0 var(--sep);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;padding:0 10px;display:grid;position:absolute;top:0;left:0;right:0}.tb-group{align-items:center;gap:2px;min-width:0;display:flex}.tb-right{justify-content:flex-end}.tb{border-radius:var(--r-control);height:30px;color:var(--label-2);cursor:pointer;white-space:nowrap;transition:background var(--fast) var(--ease), color var(--fast) var(--ease), transform .1s ease-out;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;padding:0 8px;display:inline-flex}.tb:hover{color:var(--label);background:var(--fill)}.tb:active{background:var(--fill-2);transform:scale(.96)}.tb[aria-expanded=true],.tb[aria-pressed=true],.tb[role=switch][aria-checked=true]{color:var(--label);background:var(--fill-2)}.tb.tb-wash[role=switch][aria-checked=true]{color:#0090ff}.tb-wash[aria-checked=true] .ic{fill:currentColor}.tb[aria-disabled=true]{opacity:.4}.tb-wide{padding-inline:9px;font-size:13px}.tb-wide .ic:last-child{width:12px;height:12px;color:var(--label-3)}.tb-title{min-width:0;padding-left:8px;display:grid}.tb-title b{letter-spacing:-.005em;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.tb-title span{color:var(--label-2);letter-spacing:.005em;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.4;overflow:hidden}.tb-search{border-radius:var(--r-field);background:var(--fill);width:min(340px,34vw);height:30px;color:var(--label-2);transition:background var(--fast) var(--ease), box-shadow var(--fast) var(--ease);align-items:center;gap:7px;padding:0 9px;display:flex;position:relative}.tb-search .ic{width:15px;height:15px;color:var(--label-3)}.tb-search:focus-within{background:var(--canvas);box-shadow:0 0 0 3px var(--focus)}.tb-search input{width:100%;min-width:0;height:100%;color:var(--label);background:0 0;border:0;outline:0;font-size:13px}.tb-search input::placeholder{color:var(--label-3)}.menu-anchor{position:relative}.popover{z-index:40;border-radius:var(--r-pop);background:var(--material-thick);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:0 0 0 .5px var(--sep), var(--shadow-2);transform-origin:0 0;animation:pop-in .18s var(--ease);padding:5px;position:absolute}.menu{min-width:224px;top:calc(100% + 6px);left:0}.menu.is-right{transform-origin:100% 0;left:auto;right:0}.menu>button,.results button{border-radius:var(--r-control);width:100%;min-width:0;color:var(--label);cursor:pointer;text-align:left;transition:background var(--fast) var(--ease);background:0 0;border:0;align-items:center;gap:9px;padding:6px 8px;font-size:13px;display:flex}.menu>button:hover,.results button:hover{background:var(--fill)}.menu>button:active,.results button:active{background:var(--fill-2)}.menu>button[aria-disabled=true]{color:var(--label-3)}.menu-mark{width:16px;color:var(--label-2);place-items:center;display:grid}.menu-mark .ic{width:15px;height:15px}.menu>button.is-current{color:var(--accent);font-weight:600}.menu>button small{color:var(--label-3);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.menu-sep{background:var(--sep);height:.5px;margin:5px 6px}.menu-row{color:var(--label);justify-content:space-between;align-items:center;gap:12px;padding:6px 8px;font-size:13px;display:flex}.menu-row .menu-lead{white-space:nowrap;align-items:center;gap:9px;min-width:0;display:flex}.menu-row-stack{flex-direction:column;align-items:stretch;gap:7px}.results{top:calc(100% + 6px);left:0;right:0}.results button{gap:1px;display:grid}.results button span{text-overflow:ellipsis;white-space:nowrap;align-items:baseline;gap:8px;display:flex;overflow:hidden}.results button span i{min-width:17px;color:var(--label-3);font-variant-numeric:tabular-nums;flex:none;font-size:11px;font-style:normal}.results button small{color:var(--label-2);text-overflow:ellipsis;white-space:nowrap;padding-left:25px;font-size:11px;overflow:hidden}.pop-title{color:var(--label-2);letter-spacing:.005em;margin:4px 8px 6px;font-size:11px;font-weight:600}.pop-empty,.pop-note{color:var(--label-2);margin:4px 8px 6px;font-size:12px;line-height:1.55}.pop-opt{border-top:.5px solid var(--sep);color:var(--label);justify-content:space-between;align-items:center;gap:12px;margin-top:4px;padding:7px 8px 3px;font-size:13px;display:flex}@keyframes pop-in{0%{opacity:0;transform:scale(.94)translateY(-4px)}}.switch{background:var(--fill-3);cursor:pointer;width:32px;height:20px;transition:background var(--base) var(--ease);border:0;border-radius:99px;flex:none;padding:2px;display:block}.switch i{width:16px;height:16px;transition:transform var(--base) var(--ease);background:#fff;border-radius:50%;display:block;box-shadow:0 1px 2px #0000002e,0 0 0 .5px #0000000f}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true] i{transform:translate(12px)}.switch:disabled{opacity:.45;cursor:not-allowed}.seg{border-radius:var(--r-field);background:var(--fill);grid-auto-columns:1fr;grid-auto-flow:column;padding:2px;display:grid;position:relative}.seg-knob{width:calc((100% - 4px) / var(--seg-n,3));border-radius:var(--r-control);background:var(--canvas);transition:transform var(--base) var(--ease);position:absolute;top:2px;bottom:2px;left:2px;box-shadow:0 1px 2px #0000001a,0 0 0 .5px #0000000a}:root[data-theme=dark] .seg-knob{background:var(--fill-3)}.seg button{z-index:1;border-radius:var(--r-control);height:24px;color:var(--label-2);cursor:pointer;white-space:nowrap;transition:color var(--fast) var(--ease);background:0 0;border:0;padding:0 8px;font-size:12px;position:relative}.seg button[aria-checked=true]{color:var(--label);font-weight:600}.seg button:active{color:var(--label-3)}.board{min-width:0;min-height:0}.diagram-board{background:var(--canvas);margin:0;position:absolute;inset:0}.diagram-board:fullscreen{width:100%;height:100%;box-shadow:none;border:0;border-radius:0}.diagram-board:fullscreen .legend-anchor{top:var(--gutter)}.relation-defs{pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}.canvas{background:var(--canvas);width:100%;height:100%;position:relative;overflow:hidden}.sidebar{top:calc(var(--tb-h) + var(--gutter));bottom:var(--gutter);z-index:20;width:min(var(--side-w), calc(100% - 2 * var(--gutter)));border-radius:var(--r-card);background:var(--material-thick);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:0 0 0 .5px var(--sep), var(--shadow-2);scrollbar-width:thin;scrollbar-color:var(--label-4) transparent;transition:transform var(--base) var(--ease);flex-direction:column;padding:14px;display:flex;position:absolute;overflow:hidden auto}.sidebar:focus-visible{outline-offset:-3px}.nav{left:var(--gutter);--off:-115%}.inspector{right:var(--gutter);--off:115%}.sidebar.is-closing{transform:translateX(var(--off))}@media (prefers-reduced-motion:no-preference){@starting-style{.sidebar:not(.is-still){transform:translateX(var(--off))}}}.side-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.side-head .panel-title{margin:0}.side-close{border-radius:var(--r-control);width:24px;height:24px;color:var(--label-2);cursor:pointer;transition:background var(--fast) var(--ease), transform .1s ease-out;background:0 0;border:0;flex:none;place-items:center;display:grid}.side-close .ic{width:14px;height:14px}.side-close:hover{color:var(--label);background:var(--fill)}.side-close:active{transform:scale(.94)}.panel-title{color:var(--label-2);letter-spacing:.005em;margin:0;font-size:11px;font-weight:600}.project-summary{border-bottom:.5px solid var(--sep);margin-bottom:10px;padding-bottom:12px}.project-summary p{color:var(--label-2);overflow-wrap:anywhere;margin:0;font-size:12px;line-height:1.55}.project-summary .panel-title{margin-bottom:6px}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.stat-grid>*{min-width:0}.stat-grid strong{color:var(--label);letter-spacing:-.015em;font-variant-numeric:tabular-nums;font-size:20px;font-weight:600;line-height:1.1;display:block}.stat-grid span{color:var(--label-2);margin-top:3px;font-size:11px;display:block}.result-heading{color:var(--label-2);letter-spacing:.005em;font-variant-numeric:tabular-nums;margin:0 0 4px;font-size:11px;font-weight:600}.search-results{gap:1px;min-width:0;display:grid}.search-results button{border-radius:var(--r-control);min-width:0;color:var(--label);cursor:pointer;text-align:left;transition:background var(--fast) var(--ease);background:0 0;border:0;gap:1px;padding:6px 8px;font-size:13px;display:grid}.search-results button:hover{background:var(--fill)}.search-results button:active{background:var(--fill-2)}.search-results button span{text-overflow:ellipsis;white-space:nowrap;align-items:baseline;gap:8px;display:flex;overflow:hidden}.search-results button span i{min-width:17px;color:var(--label-3);font-variant-numeric:tabular-nums;flex:none;font-size:11px;font-style:normal}.search-results button small{color:var(--label-2);text-overflow:ellipsis;white-space:nowrap;padding-left:25px;font-size:11px;overflow:hidden}.float{z-index:6;transition:left var(--base) var(--ease);position:absolute}.legend-anchor{top:calc(var(--tb-h) + var(--gutter));left:var(--gutter)}.workspace.nav-open .legend-anchor{left:calc(var(--side-w) + 2 * var(--gutter))}.float-btn{border-radius:var(--r-field);height:28px;color:var(--label);background:var(--material-thin);-webkit-backdrop-filter:var(--blur-thin);backdrop-filter:var(--blur-thin);box-shadow:0 0 0 .5px var(--sep), var(--shadow-1);cursor:pointer;transition:background var(--fast) var(--ease), transform .1s ease-out;border:0;align-items:center;gap:6px;padding:0 9px;font-size:12px;display:inline-flex}.float-btn .ic{width:14px;height:14px;color:var(--label-2)}.float-btn:hover{background:var(--material)}.float-btn:active{transform:scale(.96)}.float-btn[aria-expanded=true]{background:var(--material-thick)}.legend-pop{width:min(360px, calc(100vw - 2 * var(--gutter) - 24px));max-height:min(420px,100vh - 200px);top:calc(100% + 6px);left:0;overflow:hidden auto}.legend{color:var(--label-2);flex-wrap:wrap;gap:5px 14px;margin:2px 8px 6px;font-size:12px;line-height:1.6;display:flex}.legend span{overflow-wrap:anywhere;min-width:0;max-width:100%;color:var(--label-2);align-items:center;gap:8px;font-size:12px;display:flex}.toast{z-index:12;opacity:0;border-radius:var(--r-pop);background:var(--material-thick);max-width:calc(100% - 32px);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:0 0 0 .5px var(--sep), var(--shadow-2);pointer-events:none;transition:opacity .18s, transform .26s var(--ease);padding:8px 14px;font-size:12px;line-height:1.5;position:absolute;bottom:16px;left:50%;transform:translate(-50%,12px)}.toast.is-on{opacity:1;transform:translate(-50%)}.node-card{max-height:calc(100% - var(--tb-h) - 28px);overflow-wrap:anywhere;z-index:8;border-radius:var(--r-card);background:var(--material-thick);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:0 0 0 .5px var(--sep), var(--shadow-2);transform-origin:0;animation:card-in .2s var(--ease);padding:14px;position:absolute;overflow-y:auto}.node-card.is-flipped{transform-origin:100%}.node-card.is-below{transform-origin:top}.node-card.is-above{transform-origin:bottom}@keyframes card-in{0%{opacity:0;transform:scale(.94)}}.card-close{border-radius:var(--r-control);width:24px;height:24px;color:var(--label-2);cursor:pointer;transition:background var(--fast) var(--ease), transform .1s ease-out;background:0 0;border:0;place-items:center;display:grid;position:absolute;top:8px;right:8px}.card-close .ic{width:14px;height:14px}.card-close:hover{color:var(--label);background:var(--fill)}.card-close:active{transform:scale(.94)}.card-kicker{color:var(--label-2);letter-spacing:.005em;align-items:center;gap:7px;margin:0 0 5px;font-size:11px;font-weight:600;display:flex}.card-subtitle{color:var(--label-2);margin:0 0 10px;font-size:12px;line-height:1.55}.node-card h4{letter-spacing:-.01em;overflow-wrap:anywhere;margin:0 22px 5px 0;font-size:15px;font-weight:600;line-height:1.3}.card-source{color:var(--label-2);align-items:center;gap:6px;margin:0 0 10px;font-size:11px;display:flex}.card-source .ic{flex:none;width:13px;height:13px}.card-source code{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--accent);font-family:ui-monospace,SFMono-Regular,monospace;overflow:hidden}.card-tags{flex-wrap:wrap;gap:5px;margin-bottom:12px;display:flex}.card-tags span{border-radius:var(--r-control);max-width:100%;color:var(--label-2);background:var(--fill);padding:2px 7px;font-size:11px}.card-actions{gap:8px;display:flex}.card-actions>button{border-radius:var(--r-control);min-width:0;height:28px;color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);cursor:pointer;border:0;flex:1;font-size:12px;font-weight:600}.card-actions>button:disabled{color:var(--label-3);cursor:not-allowed}.card-action{transition:background var(--fast) var(--ease), transform .1s ease-out;justify-content:center;align-items:center;gap:6px;display:inline-flex}.card-action .ic{width:14px;height:14px}.card-action:hover{background:color-mix(in srgb, var(--accent) 16%, transparent)}.card-action:active{transform:scale(.97)}.card-form{gap:10px;padding-top:18px;display:grid}.card-form label{color:var(--label-2);gap:5px;font-size:11px;font-weight:600;display:grid}.card-form :is(input,textarea){border:1px solid var(--sep);border-radius:var(--r-control);width:100%;min-width:0;color:var(--label);background:var(--canvas);font:inherit;padding:7px 8px}.card-form textarea{resize:vertical;min-height:68px}.card-form :is(input,textarea):focus{outline:2px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:1px}.card-error{color:var(--warm);margin:-4px 0 0;font-size:11px}.react-flow__node-diagram{background:0 0;border:0}.diagram-node{background:0 0;border:0;width:100%;height:100%;padding:0;position:relative;overflow:visible}.node-visual{width:100%;height:100%;display:block;overflow:visible}.diagram-node.is-dimmed{opacity:.18}.diagram-node:hover .node-surface{filter:drop-shadow(0 0 3px var(--accent))}.react-flow__handle{border:1px solid var(--canvas);background:var(--line);opacity:0;border-radius:50%;width:4px;height:4px}.diagram-node:hover .react-flow__handle,.diagram-node.is-selected .react-flow__handle{opacity:.7}.edge-label{color:var(--muted);background:var(--canvas);font-size:var(--font-body);line-height:var(--edge-line-height);pointer-events:all;cursor:pointer;white-space:nowrap;border:0;border-radius:2px;padding:3px 6px;font-family:inherit;position:absolute}.edge-label>span{white-space:pre;display:block}.node-kicker{color:var(--label-2);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:7px;font-size:11px;font-weight:600;display:flex}.node-dot{background:var(--accent);border-radius:50%;flex:none;width:5px;height:5px}.react-flow__node-boundary{pointer-events:none}.boundary{background:0 0;width:100%;height:100%}.boundary-visual{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:visible}.boundary>span,.boundary>small,.fragment-overlay>small{color:var(--ink);font-size:var(--font-small);letter-spacing:.08em;text-transform:uppercase;font-weight:650;position:absolute;top:14px}.boundary>span{white-space:pre;text-transform:none;max-width:calc(100% - 32px);line-height:22px;left:16px}.boundary:has(>small)>span{max-width:calc(100% - 88px)}.boundary>small,.fragment-overlay>small{font-family:ui-monospace,SFMono-Regular,monospace;right:16px}.boundary-heading{pointer-events:none}.boundary-heading .group{fill:var(--ink);letter-spacing:.4px;font:650 14px -apple-system,BlinkMacSystemFont,PingFang SC,sans-serif}.flow-edge--dashed .react-flow__edge-path{stroke-dasharray:5 5}.edge-flow{fill:none;stroke-width:2px;stroke-dasharray:8 12;stroke-linecap:round;pointer-events:none;animation:.7s linear infinite edge-flow}.flow-edge--sequence .edge-flow{stroke-width:3.2px;stroke-dasharray:calc(4 * var(--sequence-flow-unit,1px)) calc(6 * var(--sequence-flow-unit,1px));opacity:1;filter:none;animation:.35s linear infinite sequence-edge-flow}.flow-edge--sequence.flow-edge--dashed:has(.edge-flow){animation:.35s linear infinite sequence-edge-flow}.flow-edge--sequence .react-flow__edge-path{stroke-width:1.6px!important}.flow-edge--sequence.flow-edge--dashed :is(.react-flow__edge-path,.selection-edge-shine,.selection-edge-halo),.flow-edge--sequence mask path{stroke-dasharray:calc(5 * var(--sequence-flow-unit,1px)) calc(5 * var(--sequence-flow-unit,1px))}.flow-edge--sequence mask path{stroke-width:3.2px}.edge-label .pair-label{font-weight:inherit;border-bottom:2px solid}.legend i.legend-execution{border-radius:0;width:8px;height:18px}.selection-feedback{pointer-events:none}.selection-node-outline{z-index:6;fill:none;width:100%;stroke:var(--accent);position:absolute;inset:0;overflow:visible}.selection-node-halo,.selection-node-shine,.selection-edge-halo,.selection-edge-shine{fill:none;stroke-linejoin:round;stroke-linecap:round}.selection-node-halo,.selection-edge-halo{stroke-width:9px;opacity:.16;filter:blur(2px)}.selection-node-shine{stroke-width:3px;opacity:.95}.selection-edge-shine{stroke-width:2.8px;opacity:.92}.flow-edge--dashed .selection-edge-halo,.flow-edge--dashed .selection-edge-shine{stroke-dasharray:5 5}.selection-feedback.is-animated .selection-node-halo,.selection-feedback.is-animated .selection-edge-halo{animation:.76s ease-out both selection-glow}.selection-feedback.is-animated .selection-node-shine{animation:.76s ease-out both selection-node-jelly}.selection-feedback.is-animated .selection-edge-shine{animation:.76s ease-out both selection-line-jelly}.flow-edge--sequence .selection-edge-shine{stroke-width:2px;opacity:.72}.flow-edge--sequence .selection-feedback.is-animated .selection-edge-shine{animation-name:sequence-line-jelly}.selection-feedback.has-flow .selection-edge-shine{opacity:.1}@keyframes selection-glow{0%{stroke-width:2px;opacity:0}24%{stroke-width:18px;opacity:.27}44%{stroke-width:5px;opacity:.12}63%{stroke-width:12px;opacity:.22}80%{stroke-width:7px;opacity:.14}to{stroke-width:9px;opacity:.16}}@keyframes selection-node-jelly{0%{stroke-width:1px}24%{stroke-width:7px}44%{stroke-width:1.5px}63%{stroke-width:4.5px}80%{stroke-width:2.3px}to{stroke-width:3px}}@keyframes selection-line-jelly{0%{stroke-width:1.6px}24%{stroke-width:4.5px}44%{stroke-width:2px}63%{stroke-width:3.5px}80%{stroke-width:2.4px}to{stroke-width:2.8px}}@keyframes sequence-line-jelly{0%{stroke-width:1.2px}24%{stroke-width:3px}44%{stroke-width:1.4px}63%{stroke-width:2.5px}80%{stroke-width:1.7px}to{stroke-width:2px}}@media (prefers-reduced-motion:reduce){.selection-feedback,.selection-feedback *{animation:none!important}}.react-flow__background{opacity:.38}.react-flow__controls,.react-flow__minimap{border-radius:var(--r-field);background:var(--material-thin);-webkit-backdrop-filter:var(--blur-thin);backdrop-filter:var(--blur-thin);box-shadow:0 0 0 .5px var(--sep), var(--shadow-1);transition:left var(--base) var(--ease), right var(--base) var(--ease);border:0;overflow:hidden}.react-flow__panel.react-flow__controls{left:var(--gutter);bottom:var(--gutter);margin:0}.react-flow__panel.react-flow__minimap{right:var(--gutter);bottom:var(--gutter);margin:0}.workspace.nav-open .react-flow__panel.react-flow__controls{left:calc(var(--side-w) + 2 * var(--gutter))}.workspace.drawer-open .react-flow__panel.react-flow__minimap{right:calc(var(--side-w) + 2 * var(--gutter))}.react-flow__controls-button{width:28px;height:28px;color:var(--label-2);border-bottom-width:.5px;border-bottom-color:var(--sep);transition:background var(--fast) var(--ease), color var(--fast) var(--ease);background:0 0}.react-flow__controls-button:hover{color:var(--label);background:var(--fill)}.react-flow__controls-button:active{background:var(--fill-2)}.react-flow__controls-button:focus-visible{outline-offset:-3px}.react-flow__controls-button svg{fill:currentColor;max-width:14px;max-height:14px}.react-flow__controls-fullscreen svg,.react-flow__controls-fitview svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.react-flow__controls-fullscreen[aria-disabled=true]{opacity:.5;cursor:not-allowed}.react-flow__minimap{opacity:.92;width:112px;height:78px}.react-flow__minimap svg{width:100%;height:100%;display:block}.inspector-card{overflow-wrap:anywhere;border:0;border-top:.5px solid var(--sep);background:0 0;min-width:0;max-width:100%;padding:12px 0;position:relative}.inspector-card:first-of-type{border-top:0;padding-top:2px}.inspector-card>strong{margin-bottom:6px;font-size:13px;font-weight:600;display:block}.inspector-card>p{color:var(--label-2);margin:0;font-size:13px;line-height:1.6}.drawer h2{color:var(--label);letter-spacing:-.02em;overflow-wrap:anywhere;margin:10px 0 4px;font-size:20px;font-weight:600;line-height:1.25}.drawer-subtitle{color:var(--label-2);letter-spacing:.005em;margin:0 0 14px;font-size:13px;line-height:1.6}.drawer h3{color:var(--label-2);letter-spacing:.06em;text-transform:uppercase;margin:16px 0 6px;font-size:11px;font-weight:600}.inspector-facts>h3{margin-top:0}.drawer ul{color:var(--label-2);margin:0;padding-left:16px;font-size:13px;line-height:1.6}.drawer li+li{margin-top:5px}.drawer li::marker{color:var(--accent)}.drawer code{white-space:normal;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px}.source-path{border-radius:var(--r-field);max-width:100%;color:var(--accent);background:var(--fill);overflow-wrap:anywhere;padding:8px 10px;font-size:12px;line-height:1.55;display:block}.symbol{color:var(--label-2);font:12px/1.55 ui-monospace,SFMono-Regular,monospace;margin-top:6px!important}.tags{flex-wrap:wrap;gap:5px;margin-top:14px;display:flex}.tags span{border-radius:var(--r-control);min-width:0;max-width:100%;color:var(--label-2);background:var(--fill);padding:2px 8px;font-size:11px;line-height:1.5}.drawer-empty{text-align:center;min-height:150px;color:var(--label-2);place-content:center;gap:6px;display:grid}.drawer-empty .empty-icon{border-radius:var(--r-pop);width:36px;height:36px;color:var(--accent);background:var(--accent-soft);place-items:center;margin:0 auto 6px;display:grid}.empty-icon .ic{width:18px;height:18px}.drawer-empty span{color:var(--label);font-size:13px;font-weight:600}.drawer-empty p{letter-spacing:.005em;max-width:180px;margin:0;font-size:12px;line-height:1.6}.legend i{border:1px solid;border-radius:3px;flex:none;width:15px;height:12px}.legend i.legend-compartment{box-shadow:inset 0 -5px 0 var(--legend-body)}.legend i:is(.legend-initial,.legend-final,.legend-actor){border-radius:50%;width:12px;position:relative}.legend i.legend-final:after{content:"";border:1px solid;border-radius:50%;position:absolute;inset:2px}.legend i.legend-actor:after{content:"";background:currentColor;width:1px;height:5px;position:absolute;top:10px;left:4px}.legend i:is(.legend-solid,.legend-dashed){border:0;border-top:1px solid;border-radius:0;width:18px;height:0}.legend i.legend-dashed{border-top-style:dashed}.legend i.legend-module{border-radius:50%;width:10px;height:10px}.legend i.legend-ramp{border-width:0;width:28px;height:10px}@keyframes edge-flow{to{stroke-dashoffset:-20px}}@keyframes sequence-edge-flow{0%{stroke-dashoffset:0}to{stroke-dashoffset:calc(-10 * var(--sequence-flow-unit,1px))}}@media (width<=1080px){.tb-title span{display:none}}@media (width<=700px){.app-shell{height:100dvh;min-height:420px}.toolbar{grid-template-columns:auto minmax(0,1fr) auto;gap:4px;padding:0 8px}.tb-title,.tb-wide span{display:none}.tb-search{width:100%}.sidebar{width:calc(100% - 2 * var(--gutter))}.workspace.nav-open .legend-anchor,.workspace.nav-open .react-flow__panel.react-flow__controls{left:var(--gutter)}.react-flow__minimap{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (prefers-reduced-transparency:reduce){.toolbar,.sidebar,.popover,.node-card,.float-btn,.toast,.react-flow__controls,.react-flow__minimap{background:var(--panel);-webkit-backdrop-filter:none;backdrop-filter:none}}@media (prefers-contrast:more){:root{--sep:var(--label);--label-2:var(--label);--label-3:color-mix(in srgb, var(--ink) 70%, transparent)}.toolbar{box-shadow:0 1px 0 var(--label)}.sidebar,.popover,.node-card,.float-btn,.toast,.react-flow__controls,.react-flow__minimap{box-shadow:0 0 0 1px var(--label)}}.react-flow,.react-flow.dark{background:var(--canvas);--xy-background-color:var(--canvas)}.react-flow__node.sequence-column,.diagram-sequence,.diagram-sequence .node-visual{pointer-events:none}.diagram-sequence .sequence-head{pointer-events:bounding-box}.diagram-sequence .react-flow__handle{pointer-events:none}.fragment-visual{color:var(--label-2);overflow:visible}.layout-problems{top:calc(var(--tb-h) + 12px);z-index:21;border:1px solid var(--sep);background:var(--material-thick);border-radius:10px;width:min(420px,100% - 112px);max-height:35%;padding:10px 14px;font-size:13px;position:absolute;left:50%;overflow:auto;transform:translate(-50%)}.layout-problems summary{cursor:pointer}.layout-problems button{text-align:left;overflow-wrap:anywhere}.layout-problems pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.edge-flow{stroke-width:2.8px;filter:none}.flow-edge--sequence .edge-flow{stroke-width:3.2px}.selection-feedback.has-flow .selection-edge-halo{stroke-opacity:.12}@media (prefers-reduced-transparency:reduce),(prefers-contrast:more){.diagram-node .node-surface,.edge-flow{filter:none!important}.edge-flow{stroke-width:2px}.selection-node-halo,.selection-edge-halo{filter:none;display:none}}
282
+ - `).slice(1):[String(n)]).map(n=>{let r=[`nodes`,`edges`,`groups`].flatMap(t=>(Array.isArray(e?.[t])?e[t]:[]).filter((e,r)=>e&&typeof e==`object`&&(n.includes(`${t}[${r}]`)||RegExp(`(^|[^\\w.-])${String(e.id).replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}($|[^\\w.-])`).test(n))));for(let t of r.filter(e=>e.source&&e.target))r.push(...(e.nodes??[]).filter(e=>e.id===t.source||e.id===t.target));return r.push(..._g(e??{}).filter(e=>String(n).includes(e.id))),{ruleId:`${t}.invalid`,severity:`error`,diagramType:Zm(e),elementIds:r.map(e=>e.id),measured:n,required:`Valid ${t} content and complete notation`,bounds:r.filter(e=>e.position&&e.size).map(e=>({...e.position,...e.size})),remediation:t===`semantic`?`Correct the reported input field or reference before layout.`:`Correct the identified content or geometry and retry without removing semantic facts.`}})),Object.assign(Error(String(n)),{diagnostics:r,phases:{semantic:{status:t===`semantic`?`failed`:`passed`},geometry:{status:t===`semantic`?`not-checked`:t===`geometry`?`failed`:`passed`},rendering:{status:t===`rendering`?`failed`:`not-checked`}}})}function v_(e,t={}){let n=d_(e,{inputOnly:!0}),r=n.length?[]:d_(e,{audit:!1}),i=n.length||r.length?null:y_(e,t),a=[...n,...r,...i?.errors??[]],o={semantic:{status:n.length?`failed`:`passed`},geometry:{status:n.length?`not-checked`:a.length?`failed`:`passed`},rendering:{status:`not-checked`}};if(a.length)throw __(e,n.length?`semantic`:`geometry`,`Diagram quality failed:\n- ${a.join(`
283
+ - `)}`,i?.diagnostics??[]);return{...o,diagnostics:i.diagnostics}}function y_(e,{strictEdgeIds:t=null}={}){e=Cf(e);let n=ig(e),r=Zm(e),i=$(r),a=ff(e)?{...Df(i),nodeGap:14,labelGap:6,parallelGap:8,groupInset:22,groupHeadingGap:14}:Df(i),o=[...n.diagnostics,...n.crossings],s=(e,t,n,i,a,s)=>o.push({ruleId:e,severity:`error`,diagramType:r,elementIds:t,measured:n,required:i,bounds:a,remediation:s}),c=new Map(e.nodes.map(e=>[e.id,Jh(e,r)])),l=new Map(e.nodes.map(e=>[e.id,e]));if(!i.sequence){let t=e.nodes.flatMap(t=>e.nodes.filter(e=>t.layout?.rank!==void 0&&e.layout?.rank!==void 0&&t.layout.rank<e.layout.rank).map(e=>[t,e])),i=e.layout?.primaryPath??[];if(r===`flowchart`&&!i.length&&e.edges.length===e.nodes.length-1){let t=new Map(e.nodes.map(t=>[t.id,e.edges.filter(e=>e.source===t.id)])),n=e.nodes.filter(t=>!e.edges.some(e=>e.target===t.id));if(n.length===1&&[...t.values()].every(e=>e.length<=1)){let r=[],a=new Set;for(let e=n[0].id;e&&!a.has(e);e=t.get(e)[0]?.target)r.push(e),a.add(e);r.length===e.nodes.length&&(i=r)}}let o=[`flowchart`,`state`].includes(r)?i.slice(1).map((e,t)=>[l.get(i[t]),l.get(e)]):[],u=[`flowchart`,`state`].includes(r)?e.nodes.filter(e=>[`decision`,`choice`].includes(e.kind)).map(t=>{let r=e.edges.filter(e=>e.source===t.id&&e.target!==t.id);return{node:t,branches:r,sides:new Set(r.map(e=>n.routes.get(e.id).sourceSide))}}).filter(e=>e.branches.length>=2):[],d=Mf(r,e.layout),f=d?`y`:`x`,p=d?`height`:`width`,m=(e,t,n)=>t.position.x-e.position.x-e.size.width+.001>=a.nodeGap&&(!n||t.position.y<e.position.y);for(let[e,n]of t){let t=n.position[f]-e.position[f]-e.size[p];t+.001<a.nodeGap&&s(`semantic.rank`,[e.id,n.id],t,a.nodeGap,[c.get(e.id),c.get(n.id)],`Keep declared ranks in separate layers along the reading direction.`)}if(d&&e.nodes.length>5&&Math.max(...e.nodes.map(e=>e.position.y))<Math.min(...e.nodes.map(e=>e.position.y+e.size.height))&&s(`semantic.single-row`,e.nodes.map(e=>e.id),1,`multiple rows`,[...c.values()],`Arrange responsibility layers or wrap peer nodes; tiny y offsets do not create another row.`),r===`deployment`&&(oh(e)||e.layout?.strategy?.startsWith(`template-runtime-tiers`)||e.nodes.some(e=>e.layout?.tier)))for(let t of e.nodes)for(let n of e.nodes){if(t_(t)>=t_(n))continue;let e=n.position.y-t.position.y-t.size.height;e+.001<a.nodeGap&&s(`semantic.deployment-tier`,[t.id,n.id],e,a.nodeGap,[c.get(t.id),c.get(n.id)],`Keep external, application, infrastructure and data tiers from top to bottom.`)}if(r===`class`)for(let t of e.edges.filter(e=>[`inheritance`,`implementation`].includes(e.kind))){let e=l.get(t.source),n=l.get(t.target),r=e.position.y-n.position.y-n.size.height;r+.001<a.nodeGap&&s(`semantic.class-hierarchy`,[t.id,n.id,e.id],r,a.nodeGap,[c.get(n.id),c.get(e.id)],`Place the parent class or interface above its child or implementation.`)}if(r===`state`)for(let t of e.nodes.filter(e=>[`initial`,`final`].includes(e.kind)))for(let n of e.nodes.filter(e=>![`initial`,`final`].includes(e.kind))){let e=t.kind===`initial`?n.position.y-t.position.y-t.size.height:t.position.y-n.position.y-n.size.height;e+.001<a.nodeGap&&s(`semantic.state-endpoint`,[t.id,n.id],e,a.nodeGap,[c.get(t.id),c.get(n.id)],`Keep initial symbols above the lifecycle and final symbols below it.`)}for(let[t,n]of o){let r=n.position[f]-t.position[f]-t.size[p];r+.001<a.nodeGap&&(e.layout?.strategy?.startsWith(`template-`)||!m(t,n,!0))&&s(`semantic.primary-path`,[t.id,n.id],r,a.nodeGap,[c.get(t.id),c.get(n.id)],`Keep the declared or unambiguous main path directed downwards; a column fold continues it at the top of the next column.`)}for(let{node:e,branches:t,sides:n}of u)[`left`,`right`].every(e=>n.has(e))||s(`semantic.branch-sides`,[e.id,...t.map(e=>e.id)],[...n],[`left`,`right`],[c.get(e.id)],`Give alternatives separate left and right corridors while retaining their real targets and merges.`)}let u=!$m(e);for(let t=0;t<e.nodes.length;t++){let n=e.nodes[t],o=c.get(n.id),l=$g(n,r,e.meta.locale);if(i.cardLayout){let t=Qm(n,r,e.meta.locale,u).minHeight;n.size.height<t&&s(`text.node-height`,[n.id],n.size.height,t,[o],`Increase height to keep full title and subtitle at 20/16px.`)}else if(i.textArea&&n.kind!==`actor`&&![`initial`,`final`].includes(n.kind)){let e=i.textArea(n),t=Z(n.label,e.width,20,29),r=Z(n.subtitle,e.width,16,23.2),a=t.height+(r.height?r.height+5:0);(e.width<=0||e.height<a)&&s(`text.shape-safe-area`,[n.id],e,{width:1,height:a},[o],`Enlarge the shape safety region to contain all text.`)}else(n.size.width<l.width||n.size.height<l.height)&&s(`text.node-size`,[n.id],n.size,l,[o],`Increase dimensions for complete headers, members and fields.`);for(let r of e.nodes.slice(t+1)){let e=c.get(r.id),t=Yh(o,e);t+.001<a.nodeGap&&s(`spacing.nodes`,[n.id,r.id],t,a.nodeGap,[o,e],`Separate the visible node outlines.`)}}let d=e.edges.flatMap(e=>{let t=n.routes.get(e.id);return[...t.label?[{id:e.id,box:t.labelBox}]:[],...(t.endpointLabels??[]).map(t=>({id:e.id,role:t.role,box:t.labelBox}))]});for(let t=0;t<d.length;t++){let r=d[t];for(let[e,t]of c){let n=Yh(r.box,t);n+.001<a.labelGap&&s(`spacing.label-node`,[r.id,e],n,a.labelGap,[r.box,t],`Move the label away from the node.`)}for(let e of d.slice(t+1)){let t=Yh(r.box,e.box);t+.001<a.labelGap&&s(`spacing.labels`,[r.id,e.id],t,a.labelGap,[r.box,e.box],`Separate complete label bounds.`)}let i=a.labelEdgeGap;for(let t of e.edges)if(t.id!==r.id){let e={x:r.box.x-i,y:r.box.y-i,width:r.box.width+2*i,height:r.box.height+2*i};g_(n.routes.get(t.id)).some(([t,n])=>Zh(t,n,e))&&s(`spacing.label-edge`,[r.id,t.id],`<6`,i,[r.box],`Reserve a clear label area away from other relations.`)}}for(let t=0;t<e.edges.length;t++){let r=e.edges[t],o=n.routes.get(r.id),c=g_(o);if(!i.sequence&&ah(e)&&o.label){let e=o.labelPoint,t=Math.min(...c.map(([t,n])=>Math.hypot(e.x-Math.max(Math.min(t.x,n.x),Math.min(Math.max(t.x,n.x),e.x)),e.y-Math.max(Math.min(t.y,n.y),Math.min(Math.max(t.y,n.y),e.y)))));t>.001&&s(`label.on-route`,[r.id],t,0,[o.labelBox],`Keep the relationship label centred on its own straight segment.`)}if(!i.sequence)for(let[e,t,n]of[[o.points[0],o.points[1],r.route?.via?.[0]],[o.points.at(-1),o.points.at(-2),r.route?.via?.at(-1)]]){let c=Math.hypot(e.x-t.x,e.y-t.y),l=i.endpointStub??a.endpoint,u=n&&c?((n.x-e.x)*(t.x-e.x)+(n.y-e.y)*(t.y-e.y))/c:c,d=o.points.length===2&&u>=0?c:Math.min(c,u);d+.001<l&&s(`route.endpoint-stub`,[r.id],d,l,[{...e,width:0,height:0}],`Reserve a straight outward segment for the endpoint symbol.`)}for(let i of e.edges.slice(t+1)){let e=n.routes.get(i.id),t=[];for(let[n,s]of c)for(let[c,l]of g_(e)){let u=n.y===s.y;if(u!==(c.y===l.y))continue;let d=u?`x`:`y`,f=u?`y`:`x`,p=Math.min(Math.max(n[d],s[d]),Math.max(c[d],l[d]))-Math.max(Math.min(n[d],s[d]),Math.min(c[d],l[d])),m=Math.abs(n[f]-c[f]);if(p<=.001||m+.001>=a.parallelGap)continue;let h=(e,t)=>[{id:e.source,point:t.points[0]},{id:e.target,point:t.points.at(-1)}];m<.001&&p<=a.endpoint&&h(r,o).some(t=>h(i,e).some(e=>t.id===e.id&&t.point.x===e.point.x&&t.point.y===e.point.y&&(t.point===n||t.point===s)&&(e.point===c||e.point===l)))||t.push({x:Math.min(n.x,s.x,c.x,l.x),y:Math.min(n.y,s.y,c.y,l.y),width:Math.max(n.x,s.x,c.x,l.x)-Math.min(n.x,s.x,c.x,l.x),height:Math.max(n.y,s.y,c.y,l.y)-Math.min(n.y,s.y,c.y,l.y),separation:m,shared:p})}t.length&&s(`route.parallel-channels`,[r.id,i.id],Math.min(...t.map(e=>e.separation)),a.parallelGap,t,`Separate parallel channels; only the initial ${a.endpoint}px at one common port may overlap.`)}}if(!i.sequence){let t=e.groups??[],n=new Map(t.map(e=>[e.id,e])),r=(e,t)=>{let r=e.groupId,i=new Set;for(;r&&!i.has(r);){if(r===t.id)return!0;i.add(r),r=n.get(r)?.parentId}return!1};for(let n=0;n<t.length;n++){let i=t[n],o=p_(i),l=a.groupInset,u=Dp(i).height+a.groupHeadingGap,d={x:o.x+l,y:o.y+u,width:o.width-2*l,height:o.height-u-l},f=[...e.nodes.filter(e=>e.groupId===i.id),...t.filter(e=>e.parentId===i.id)];for(let e of f)m_(d,p_(e))||s(`group.member-inset`,[i.id,e.id],p_(e),d,[o,p_(e)],`Expand the owning boundary to preserve heading and side clearance.`);for(let t of e.nodes)!r(t,i)&&h_(o,c.get(t.id))&&s(`group.unowned-node`,[i.id,t.id],t.groupId??null,`outside`,[o,c.get(t.id)],`Keep nodes outside boundaries they do not belong to.`);for(let e of t.slice(n+1))i.parentId===e.parentId&&Yh(o,p_(e))+.001<a.groupGap&&s(`group.sibling-gap`,[i.id,e.id],Yh(o,p_(e)),a.groupGap,[o,p_(e)],`Separate sibling boundaries.`)}}let f=[];if(!i.sequence){let i=ag(e),a=e.nodes.map(e=>({node:e,probe:mg(e,r)}));for(let s of e.edges){let l=n.routes.get(s.id),u=g_(l),d=ih(e)||t?.has(s.id),p=(e,t,n,i,a,s,c=!0)=>o.push({ruleId:e,severity:c&&d?`error`:`warning`,diagramType:r,elementIds:t,measured:n,required:i,bounds:a,remediation:s}),m=1/0,h=0;for(let{node:e,probe:t}of a){let n=u.flatMap(([n,r],i)=>e.id===s.source&&i===0||e.id===s.target&&i===u.length-1?[]:[t(n,r)]),r=Math.min(...n);m=Math.min(m,r),r+.001<i.node&&p(`route.node-clearance`,[s.id,e.id],r,i.node,[c.get(e.id)],`Arrange this relation with clear space around the visible component.`)}for(let t of e.groups??[]){let e=u.map(([e,n])=>hg(e,n,t)).filter(e=>e.distance+.001<i.boundary);h+=e.reduce((e,t)=>e+t.length,0),e.length&&p(`route.boundary-clearance`,[s.id,t.id],Math.min(...e.map(e=>e.distance)),i.boundary,[p_(t)],`Cross the boundary perpendicularly or leave a clear parallel channel.`)}let g=u.reduce((e,[t,n])=>e+Math.abs(t.x-n.x)+Math.abs(t.y-n.y),0),_=l.points[0],v=l.points.at(-1),y=Math.abs(_.x-v.x)+Math.abs(_.y-v.y),b=Math.max(0,l.points.length-2),x=y?g/y:null,S=u.slice(1,-1).filter(([e,t])=>Math.abs(e.x-t.x)+Math.abs(e.y-t.y)<i.node-.001).length;f.push({edgeId:s.id,length:g,bends:b,detour:x,minimumClearance:Number.isFinite(m)?m:null,boundaryHugging:h,shortSegments:S}),(b>4||S||s.source!==s.target&&x>1.8)&&p(`route.complexity`,[s.id],{bends:b,shortSegments:S,detour:x},{bends:4,shortSegments:0,detour:1.8},[{x:Math.min(...l.points.map(e=>e.x)),y:Math.min(...l.points.map(e=>e.y)),width:Math.max(...l.points.map(e=>e.x))-Math.min(...l.points.map(e=>e.x)),height:Math.max(...l.points.map(e=>e.y))-Math.min(...l.points.map(e=>e.y))}],`Try a simpler corridor or arrange nearby components; necessary detours remain supported.`,!1)}}for(let t of jg(e,n.routes)){let n=_g(e).filter(e=>t.includes(e.id));s(`overview.section`,n.map(e=>e.id),t,`Complete section text and contained items`,n.map(p_),`Expand and re-layout the identified section without removing facts.`)}let p=[...o.filter(e=>e.severity===`error`).map(e=>`${e.ruleId}: ${e.elementIds.join(`, `)} (${JSON.stringify(e.measured)}; required ${JSON.stringify(e.required)})`)];return{...n,errors:p,diagnostics:o,routeMetrics:f,bounds:jh(e,n.routes)}}function b_(e){return function(){return e}}var x_=1664525,S_=1013904223,C_=4294967296;function w_(){let e=1;return()=>(e=(x_*e+S_)%C_)/C_}var T_=10,E_=Math.PI*(3-Math.sqrt(5));function D_(e){var t,n=1,r=.001,i=1-r**(1/300),a=0,o=.6,s=new Map,c=Pr(d),l=w(`tick`,`end`),u=w_();e??=[];function d(){f(),l.call(`tick`,t),n<r&&(c.stop(),l.call(`end`,t))}function f(r){var c,l=e.length,u;r===void 0&&(r=1);for(var d=0;d<r;++d)for(n+=(a-n)*i,s.forEach(function(e){e(n)}),c=0;c<l;++c)u=e[c],u.fx==null?u.x+=u.vx*=o:(u.x=u.fx,u.vx=0),u.fy==null?u.y+=u.vy*=o:(u.y=u.fy,u.vy=0);return t}function p(){for(var t=0,n=e.length,r;t<n;++t){if(r=e[t],r.index=t,r.fx!=null&&(r.x=r.fx),r.fy!=null&&(r.y=r.fy),isNaN(r.x)||isNaN(r.y)){var i=T_*Math.sqrt(.5+t),a=t*E_;r.x=i*Math.cos(a),r.y=i*Math.sin(a)}(isNaN(r.vx)||isNaN(r.vy))&&(r.vx=r.vy=0)}}function m(t){return t.initialize&&t.initialize(e,u),t}return p(),t={tick:f,restart:function(){return c.restart(d),t},stop:function(){return c.stop(),t},nodes:function(n){return arguments.length?(e=n,p(),s.forEach(m),t):e},alpha:function(e){return arguments.length?(n=+e,t):n},alphaMin:function(e){return arguments.length?(r=+e,t):r},alphaDecay:function(e){return arguments.length?(i=+e,t):+i},alphaTarget:function(e){return arguments.length?(a=+e,t):a},velocityDecay:function(e){return arguments.length?(o=1-e,t):1-o},randomSource:function(e){return arguments.length?(u=e,s.forEach(m),t):u},force:function(e,n){return arguments.length>1?(n==null?s.delete(e):s.set(e,m(n)),t):s.get(e)},find:function(t,n,r){var i=0,a=e.length,o,s,c,l,u;for(r==null?r=1/0:r*=r,i=0;i<a;++i)l=e[i],o=t-l.x,s=n-l.y,c=o*o+s*s,c<r&&(u=l,r=c);return u},on:function(e,n){return arguments.length>1?(l.on(e,n),t):l.on(e)}}}function O_(e){var t=b_(.1),n,r,i;typeof e!=`function`&&(e=b_(e==null?0:+e));function a(e){for(var t=0,a=n.length,o;t<a;++t)o=n[t],o.vx+=(i[t]-o.x)*r[t]*e}function o(){if(n){var a,o=n.length;for(r=Array(o),i=Array(o),a=0;a<o;++a)r[a]=isNaN(i[a]=+e(n[a],a,n))?0:+t(n[a],a,n)}}return a.initialize=function(e){n=e,o()},a.strength=function(e){return arguments.length?(t=typeof e==`function`?e:b_(+e),o(),a):t},a.x=function(t){return arguments.length?(e=typeof t==`function`?t:b_(+t),o(),a):e},a}function k_(e){var t=b_(.1),n,r,i;typeof e!=`function`&&(e=b_(e==null?0:+e));function a(e){for(var t=0,a=n.length,o;t<a;++t)o=n[t],o.vy+=(i[t]-o.y)*r[t]*e}function o(){if(n){var a,o=n.length;for(r=Array(o),i=Array(o),a=0;a<o;++a)r[a]=isNaN(i[a]=+e(n[a],a,n))?0:+t(n[a],a,n)}}return a.initialize=function(e){n=e,o()},a.strength=function(e){return arguments.length?(t=typeof e==`function`?e:b_(+e),o(),a):t},a.y=function(t){return arguments.length?(e=typeof t==`function`?t:b_(+t),o(),a):e},a}var A_=(e,t)=>(e.layout?.order??0)-(t.layout?.order??0)||e.id.localeCompare(t.id,`en`),j_=e=>e.members.map(e=>e.kind),M_=(e,t)=>j_(e).some(e=>t.includes(e)),N_=(e,t)=>t.filter(t=>e.ids.has(t.source)||e.ids.has(t.target)).length;function P_(e,t){let n=new Map(e.flatMap((e,t)=>[...e.ids].map(e=>[e,t]))),r=e.map(()=>new Set);for(let e of t){let t=n.get(e.source),i=n.get(e.target);t!==void 0&&i!==void 0&&t!==i&&r[t].add(i)}let i=0,a=new Map,o=new Map,s=[],c=new Set,l=[];function u(e){a.set(e,i),o.set(e,i++),s.push(e),c.add(e);for(let t of r[e])a.has(t)?c.has(t)&&o.set(e,Math.min(o.get(e),a.get(t))):(u(t),o.set(e,Math.min(o.get(e),o.get(t))));if(o.get(e)===a.get(e)){let t=[],n;do n=s.pop(),c.delete(n),t.push(n);while(n!==e);l.push(t)}}e.forEach((e,t)=>{a.has(t)||u(t)});let d=new Map(l.flatMap((e,t)=>e.map(e=>[e,t]))),f=new Map;function p(e){if(f.has(e))return f.get(e);let t=new Set;r.forEach((n,r)=>{d.get(r)!==e&&[...n].some(t=>d.get(t)===e)&&t.add(d.get(r))});let n=t.size?Math.max(...[...t].map(p))+1:0;return f.set(e,n),n}let m=[];return e.forEach((e,t)=>{let n=p(d.get(t));(m[n]??=[]).push(e)}),m.filter(Boolean).map(e=>e.sort(A_))}function F_(e,t=1.45){if(!e.length)return[];if(e.length<=2)return[e];let n=t=>e.reduce((e,n)=>e+n.size[t],0)/e.length,r=Math.max(1,Math.min(e.length,Math.round(Math.sqrt(e.length*n(`height`)*t/n(`width`)))));return Array.from({length:Math.ceil(e.length/r)},(t,n)=>e.slice(n*r,(n+1)*r))}function I_(e,t){let n=P_(e,t.edges);return n.length===1&&e.length>5?F_(n[0]):n.map(e=>e.sort((e,t)=>String(e.members[0]?.module??``).localeCompare(String(t.members[0]?.module??``))||A_(e,t)))}function L_(e){let t=new Set,n=new Set,r=new Set,i=t=>e.edges.filter(e=>e.source===t).sort(A_);function a(e){if(!t.has(e)){t.add(e),n.add(e);for(let t of i(e))n.has(t.target)?r.add(t.id):a(t.target);n.delete(e)}}return[...e.layout?.primaryPath??e.nodes.filter(e=>[`initial`,`start`].includes(e.kind)).map(e=>e.id),...[...e.nodes].sort(A_).map(e=>e.id)].forEach(a),e.edges.filter(e=>!r.has(e.id))}function R_(e,t){let n=t.layout?.primaryPath??[],r=P_(e,L_(t));return r.length===1&&e.length>5?F_(r[0]):r.map(e=>e.sort((e,t)=>{let r=e=>e.members.some(e=>n.includes(e.id));return Number(r(t))-Number(r(e))||A_(e,t)}))}function z_(e,t){let n=[...e].sort((e,n)=>N_(n,t.edges)-N_(e,t.edges)||A_(e,n)),r=[];for(;n.length;){let e=r.length?n.findIndex(e=>t.edges.some(t=>e.ids.has(t.source)&&r.at(-1).ids.has(t.target)||e.ids.has(t.target)&&r.at(-1).ids.has(t.source))):0;r.push(...n.splice(Math.max(0,e),1))}return F_(r)}function B_(e,t){let n=new Map;for(let t of e){let e=Math.min(...t.members.map(t_));n.set(e,[...n.get(e)??[],t])}return[...n].sort(([e],[t])=>e-t).flatMap(([,e])=>P_(e,t.edges))}function V_(e,t){let n=t.edges.filter(e=>[`inheritance`,`implementation`].includes(e.kind)).map(e=>({source:e.target,target:e.source})),r=e.filter(e=>n.some(t=>e.ids.has(t.source)||e.ids.has(t.target))),i=e.filter(e=>!r.includes(e)),a=P_(r,n),o=P_(i,t.edges),s=Math.max(-1,...a.map((e,t)=>e.some(e=>M_(e,[`abstract`,`interface`]))?t:-1))+1;return Array.from({length:Math.max(a.length,s+o.length)},(e,t)=>[...a[t]??[],...o[t-s]??[]])}function H_(e,t){let n=e.filter(e=>M_(e,[`initial`])),r=e.filter(e=>M_(e,[`final`]));return[n,...P_(e.filter(e=>!n.includes(e)&&!r.includes(e)),L_(t)),r].filter(e=>e.length)}function U_(e,t,n=0){let r=e.filter(e=>M_(e,[`actor`])),i=e.filter(e=>!r.includes(e));return r.length?[r.sort(A_),i.sort(A_)].filter(e=>e.length):n>=2?i.sort(A_).map(e=>[e]):z_(i,t)}function W_(e,t){let n=e.filter(e=>M_(e,[`dataStore`])),r=e.filter(e=>!n.includes(e)),i=n.flatMap(e=>t.edges.filter(t=>e.ids.has(t.target)).flatMap(n=>t.edges.filter(t=>e.ids.has(t.source)&&t.target!==n.source).map(e=>({source:n.source,target:e.target})))),a=P_(r,[...t.edges,...i]),o=new Map(a.flatMap((e,t)=>e.flatMap(e=>[...e.ids].map(e=>[e,t]))));for(let e of n.sort(A_)){let n=t.edges.filter(t=>e.ids.has(t.source)||e.ids.has(t.target)).map(t=>o.get(e.ids.has(t.source)?t.target:t.source)).filter(e=>e!==void 0).sort((e,t)=>e-t),r=n.length?n[Math.floor(n.length/2)]:Math.max(0,a.length-1);(a[r]??=[]).push(e)}return a}Object.freeze({capabilities:{structure:`capability-bands`,existing:`overview`},engineering:{structure:`engineering-layers`,existing:`overview`},relations:{structure:`component-clusters`,arrange:I_},flowchart:{structure:`workflow-spine`,arrange:R_},sequence:{structure:`lifelines`,existing:`sequence`},er:{structure:`entity-matrix`,arrange:z_},deployment:{structure:`runtime-tiers`,arrange:B_},class:{structure:`contract-hierarchy`,arrange:V_},state:{structure:`lifecycle-branches`,arrange:H_},usecase:{structure:`actor-system`,arrange:U_},dataflow:{structure:`process-store`,arrange:W_}});function G_(e,t){if(Zm(e)!==`sequence`)for(let n of e.nodes)for(let r of e.nodes){if(n.id>=r.id||n.groupId!==r.groupId)continue;let e=t.nodes.find(e=>e.id===n.id),i=t.nodes.find(e=>e.id===r.id);for(let[t,a]of[[`x`,`width`],[`y`,`height`]])for(let o of[0,.5]){let s=(e,n)=>e.position[t]+o*e.size[a]-n.position[t]-o*n.size[a];if(Math.abs(s(n,r))<.001&&Math.abs(s(e,i))>.001)return!1}}if(!e.layout?.strategy?.startsWith(`template-`))return!0;let n=hf(e),r=new Map(t.nodes.map(e=>[e.id,e])),i=[`usecase`,`dataflow`].includes(n)?`x`:`y`,a=i===`x`?`width`:`height`;for(let t of e.nodes)for(let o of e.nodes)if(n===`deployment`&&t.id!==o.id&&t.groupId===o.groupId&&t.position.y===o.position.y&&r.get(t.id).position.y!==r.get(o.id).position.y||!(t.id===o.id||t.groupId!==o.groupId&&(n!==`usecase`||t.kind!==`actor`&&o.kind!==`actor`))&&t.position[i]+t.size[a]<=o.position[i]&&r.get(t.id).position[i]+r.get(t.id).size[a]>r.get(o.id).position[i])return!1;return!0}var K_=156,q_=160,J_=(e,t,n)=>Math.max(t,Math.min(n,e));function Y_(e,t){if(!t)return new Set(e.nodes.map(e=>e.id));let n=new Set([t]);for(let r of e.edges)r.source===t&&n.add(r.target),r.target===t&&n.add(r.source);return n}function X_(e,t){return e.groupId?t.find(t=>t.id===e.groupId):t.filter(t=>e.position.x>=t.position.x&&e.position.y>=t.position.y&&e.position.x+e.size.width<=t.position.x+t.size.width&&e.position.y+e.size.height<=t.position.y+t.size.height).sort((e,t)=>e.size.width*e.size.height-t.size.width*t.size.height)[0]}function Z_(e,t,n,r){if(!t)return null;let i=e.size.width/2,a=e.size.height/2,o=e.position.x+i,s=e.position.y+a;return{minimumX:Math.max(t.position.x+r.groupInset+i,o-K_),maximumX:Math.min(t.position.x+t.size.width-r.groupInset-i,o+K_),minimumY:Math.max(t.position.y+Dp(t).height+r.groupHeadingGap+a,s-(n?0:K_)),maximumY:Math.min(t.position.y+t.size.height-r.groupInset-a,s+(n?0:K_))}}function Q_(e,t){let n=[],r=()=>{for(let r=0;r<n.length;r+=1)for(let i=r+1;i<n.length;i+=1){let a=n[r],o=n[i];if(!a.movable&&!o.movable)continue;let s=a.x+a.vx-o.x-o.vx,c=a.y+a.vy-o.y-o.vy,l=(a.width+o.width)/2+t-Math.abs(s),u=(a.height+o.height)/2+t-Math.abs(c);if(l<=0||u<=0)continue;let d=e||l<=u?`x`:`y`,f=(d===`x`?l:u)*.9,p=d===`x`?s:c,m=p===0?a.id<o.id?-1:1:Math.sign(p),h=a.movable?o.movable?.5:1:0,g=o.movable?a.movable?.5:1:0;d===`x`?(a.vx+=m*f*h,o.vx-=m*f*g):(a.vy+=m*f*h,o.vy-=m*f*g)}};return r.initialize=e=>{n=e},r}function $_(e,t=null){if(!t)try{return v_(e),{graph:structuredClone(e),movedNodeIds:[]}}catch{}let n=$(e.meta.diagramType),r=n.sequence,i=Df(n),a=Y_(e,t),o=e.nodes.map(t=>{let n=t.position.x+t.size.width/2,o=t.position.y+t.size.height/2,s=Z_(t,X_(t,e.groups??[]),r,i),c=a.has(t.id)&&(!s||s.minimumX<=s.maximumX&&s.minimumY<=s.maximumY);return{id:t.id,width:t.size.width,height:t.size.height,anchorX:n,anchorY:o,x:n,y:o,vx:0,vy:0,movable:c,bounds:s,fx:c?void 0:n,fy:c?void 0:o}}),s=D_(o).velocityDecay(.42).force(`anchor-x`,O_(e=>e.anchorX).strength(.16)).force(`anchor-y`,k_(e=>e.anchorY).strength(r?1:.16)).force(`rectangles`,Q_(r,i.nodeGap+1)).stop();for(let e=0;e<q_;e+=1){s.tick();for(let e of o)e.movable&&(e.x=J_(e.x,e.anchorX-K_,e.anchorX+K_),e.y=r?e.anchorY:J_(e.y,e.anchorY-K_,e.anchorY+K_),e.x=Math.max(e.width/2,e.x),e.y=Math.max(e.height/2,e.y),e.bounds&&(e.x=J_(e.x,e.bounds.minimumX,e.bounds.maximumX),e.y=J_(e.y,e.bounds.minimumY,e.bounds.maximumY)))}s.stop();let c=new Map(o.map(e=>[e.id,e])),l=[],u=e.nodes.map(e=>{let t=c.get(e.id);if(!t.movable)return e;let n={x:J_(Math.round(t.x-e.size.width/2),Math.max(0,e.position.x-K_),e.position.x+K_),y:r?e.position.y:J_(Math.round(t.y-e.size.height/2),Math.max(0,e.position.y-K_),e.position.y+K_)};return t.bounds&&(n.x=J_(n.x,t.bounds.minimumX-e.size.width/2,t.bounds.maximumX-e.size.width/2),r||(n.y=J_(n.y,t.bounds.minimumY-e.size.height/2,t.bounds.maximumY-e.size.height/2))),(n.x!==e.position.x||n.y!==e.position.y)&&l.push(e.id),{...e,position:n}}),d={...e,nodes:u};try{if(!G_(e,d))throw Error(`Arrange would invert template bands`);v_(d)}catch(t){return{graph:e,movedNodeIds:[],rejected:{message:t.message,diagnostics:t.diagnostics??[]}}}return{graph:d,movedNodeIds:l}}var ev=(e,t,n)=>3*t*e*(1-e)**2+3*n*e*e*(1-e)+e**3;function tv(e){let t=0,n=1;for(let r=0;r<20;r++){let r=(t+n)/2;ev(r,.32,0)<e?t=r:n=r}return ev((t+n)/2,.72,1)}function nv(e,t,n){let r=e?.clientWidth??0,i=e?.clientHeight??0,a=!globalThis.document?.fullscreenElement?.contains(e),o=(a&&t?316:12)+12,s=r-((a&&n?316:12)+12),c=e?.getBoundingClientRect().top??0,l=[...e?.querySelectorAll(`.react-flow__controls,.react-flow__minimap`)??[]].map(e=>e.getBoundingClientRect()).filter(e=>e.width>0&&e.height>0),u=Math.min(i-12-12,...l.map(e=>e.top-c-12));return{left:o,right:s,top:76,bottom:u,width:Math.max(0,s-o),height:Math.max(0,u-76)}}function rv(e,t,n){let r=nv(e,t,n),i=e=>`${e}px`;return{top:i(r.top),right:i(e.clientWidth-r.right),bottom:i(e.clientHeight-r.bottom),left:i(r.left)}}function iv(e,t,n){let r={left:e.x*n.zoom+n.x,right:(e.x+e.width)*n.zoom+n.x,top:e.y*n.zoom+n.y,bottom:(e.y+e.height)*n.zoom+n.y};if(r.left>=t.left&&r.right<=t.right&&r.top>=t.top&&r.bottom<=t.bottom)return n;let i=e.width*n.zoom>t.width?t.left+t.width/2-(r.left+r.right)/2:r.left<t.left?t.left-r.left:r.right>t.right?t.right-r.right:0,a=r.top<t.top||e.height*n.zoom>t.height?t.top-r.top:r.bottom>t.bottom?t.bottom-r.bottom:0;return{...n,x:n.x+i,y:n.y+a}}function av(e,t,n){let r=Math.min(2,Math.max(Of,n.zoom));return{zoom:r,x:t.left+t.width/2-(e.x+e.width/2)*r,y:t.top-e.y*r}}var ov=e=>e.nodes.find(t=>t.id===e.layout?.primaryPath?.[0])??e.nodes.find(e=>[`start`,`initial`].includes(e.kind))??(e.meta?.diagramType===`sequence`||!e.nodes.every(e=>e.position)?void 0:e.nodes.find(qf)??[...e.nodes].sort((e,t)=>e.position.y-t.position.y||e.position.x-t.position.x)[0]);function sv(e,t,n,r=Of,i=kf){if(Math.min(n.width/e.width,n.height/e.height)>=i)return null;let a=(e,t,n,i)=>{let a=i/r;return t<=a?e+(t-a)/2:Math.min(e+t-a,Math.max(e,n-a/2))},o=t?t.position.x+t.size.width/2:e.x,s=t?t.position.y+t.size.height/2:e.y;return{zoom:r,x:n.left-a(e.x,e.width,o,n.width)*r,y:n.top+28-a(e.y,e.height,s,n.height-28)*r}}var cv=/(<script\b[^>]*\bid="graph-data"[^>]*>)([\s\S]*?)(<\/script>)/,lv=e=>JSON.stringify(e).replaceAll(`&`,`\\u0026`).replaceAll(`<`,`\\u003c`).replaceAll(`>`,`\\u003e`).replaceAll(`\u2028`,`\\u2028`).replaceAll(`\u2029`,`\\u2029`);function uv(e,t){if(!cv.test(e))throw Error(`page has no graph-data element`);return e.replace(cv,(e,n,r,i)=>`${n}${lv(t)}${i}`)}function dv(e,t,n){let r=e=>uf(e)===uf(n)?n:t.get(uf(e))??e;return Array.isArray(e.diagrams)?{...e,diagrams:e.diagrams.map(r)}:n}function fv(e,t,n){let r=new Map(t.filter(e=>e.type===`diagram`).map(e=>[e.id,e])),i=new Map(t.filter(e=>e.type===`boundary`).map(e=>[e.id,e])),a=new Map(n.map(e=>[e.id,e]));return{...e,nodes:e.nodes.map(e=>{let t=r.get(e.id);if(!t)return e;let n={label:t.data.label};for(let e of[`overviewText`,`badges`])Object.hasOwn(t.data,e)&&(n[e]=t.data[e]);return Object.hasOwn(t.data,`subtitle`)&&(n.subtitle=t.data.subtitle),{...e,...n,position:t.position,size:t.data.size}}),...e.groups&&{groups:e.groups.map(e=>{let t=i.get(e.id);return t?{...e,position:t.position,size:t.data.size}:e})},edges:e.edges.map(e=>{let t=a.get(e.id);return t&&Object.hasOwn(t.data,`label`)?{...e,label:t.data.label}:e})}}function pv(e,t,n){if(n!==`sequence`)return e;let r=new Map(t.map(e=>[e.id,e.position]));return e.map(e=>e.type===`position`&&e.position&&r.has(e.id)?{...e,position:{...e.position,y:r.get(e.id).y}}:e)}function mv(e,t){let n=e=>t.has(e.id)?{...e,...t.get(e.id)}:e;return{...e,nodes:e.nodes.map(n),...e.groups&&{groups:e.groups.map(n)}}}function hv(e,t,n){let r=Zm(e),i=$(r),a=e.nodes.find(e=>e.id===t),o=i.cardLayout?Qm(a,r,e.meta.locale,n).minHeight-a.size.height:0;if(o<=0)return new Map;let{groupInset:s,groupHeadingGap:c}=Df(i),l=new Map((e.groups??[]).map(e=>[e.id,e])),u=e=>{let n={position:{x:a.position.x,y:Math.max(0,a.position.y-o*e)},size:{width:a.size.width,height:a.size.height+o}},r=new Map([[t,n]]);for(let e=l.get(a.groupId),t=0;e&&t<l.size;e=l.get(e.parentId),t++){let{position:t,size:i}=e,a=Dp(e).height+c,o=Math.max(0,Math.min(t.x,n.position.x-s)),l=Math.max(0,Math.min(t.y,n.position.y-a)),u=Math.max(t.x+i.width,n.position.x+n.size.width+s),d=Math.max(t.y+i.height,n.position.y+n.size.height+s);r.set(e.id,n={position:{x:o,y:l},size:{width:u-o,height:d-l}})}return r},d=t=>{try{return v_(mv(e,t)),!0}catch{return!1}},f=[.5,1,0].map(u);return f.find(d)??f[0]}function gv(e,t,n,r=e){let i=(t,n)=>bf(e.meta.locale,t,n),a=Zm(e),[o,s,c]=Ed(Wg(e,a)),[l,u]=Dd(Gg(e,a)),[d,f]=(0,y.useState)(!0),p=(0,y.useRef)(null),{getViewport:m,setCenter:h,setViewport:g}=vl();(0,y.useEffect)(()=>{if(new URLSearchParams(window.location.search).has(`automation`))return window.__qgraphflowAutomation={getViewport:m,setViewport:g,setCenter:h,ease:tv},()=>{delete window.__qgraphflowAutomation}},[m,g,h]);let[_,v]=(0,y.useState)(e),b=(0,y.useMemo)(()=>fv(_,o,l),[_,o,l]),x=e=>{v(e),s(Wg(e,a)),u(Gg(e,a))},S=(0,y.useRef)(null),C=(0,y.useRef)(0),[w,T]=(0,y.useState)(!1),E=({superseded:e=!1}={})=>{if(C.current++,!S.current)return;let t=S.current;S.current=null,t.worker.terminate(),T(!1),t.reject(Object.assign(Error(`Cancelled`),{cancelled:!0,superseded:e}))};(0,y.useEffect)(()=>()=>E({superseded:!0}),[]);let D=(e,t={},n=!1)=>new Promise((r,i)=>{E({superseded:!0});let a=new Xg,o={worker:a,reject:i};S.current=o,T(!0);let s=(e,t)=>{S.current===o&&(S.current=null,T(!1),a.terminate(),t?i(t):r(e))};a.onmessage=({data:e})=>s(e.result,e.error&&Object.assign(Error(e.error.message),e.error)),a.onerror=e=>s(null,Error(e.message)),t.relayout||(t={...t,edgeIds:[...gg(_,e,t.edgeIds)]}),a.postMessage({graph:e,reference:_,options:t,overview:n})}),O=async(e,t={},n=!1)=>{let r;try{let a=D(e,{move:!1,evaluations:1,passes:2,...t},n);r=C.current;let o=await a;return r===C.current?(x(o.graph),N(null),o):{error:i(`Cancelled`),cancelled:!0,superseded:!0}}catch(t){if(!t.cancelled&&r!==C.current)return{error:i(`Cancelled`),cancelled:!0,superseded:!0};if(t.cancelled)return{error:i(`Cancelled`),cancelled:!0,superseded:t.superseded};let n=t.diagnostics?.length?t:__(e,`geometry`,t.message);return N({graph:b,message:n.message,diagnostics:n.diagnostics}),{error:n.message}}},k=async(e,t={})=>(await O(e,t,!0)).error,A=async(e,t)=>{if(t.type===`diagram`){if(ff(b))try{let e=await O(b,{},!0);e.error&&!e.superseded&&(x(_),e.cancelled||n(e.error))}catch(e){x(_),n(e.message)}else{let e=await O(b,{growBoundaries:!0});e.error&&!e.superseded&&(x(_),e.cancelled||n(e.error))}}},j=async e=>{let t={ArrowRight:1,ArrowDown:1,ArrowLeft:-1,ArrowUp:-1}[e.key],r=e.target.closest(`.react-flow__node-diagram`);if(!ff(b)||!t||!r||(e.preventDefault(),e.stopPropagation(),d||e.repeat))return;let i=r.dataset.id,a=_.nodes.find(e=>e.id===i),o=_g(_).find(e=>e.items?.some(e=>e.nodeId===i)),s=o?o.items.filter(e=>e.nodeId).map(e=>_.nodes.find(t=>t.id===e.nodeId)):_.nodes.filter(e=>e.groupId&&e.groupId===a?.groupId),c=s[s.findIndex(e=>e.id===i)+t];if(c){let e=await k(Eg(_,i,c.position));e&&n(e)}},[M,N]=(0,y.useState)(null),P=(0,y.useCallback)(e=>c(pv(e,o,a)),[c,a,o]),ee=(0,y.useMemo)(()=>{try{return v_(b),M?.graph===b?M:null}catch(e){return{message:e.message,diagnostics:e.diagnostics??[]}}},[b,M]),F=(0,y.useMemo)(()=>{try{return v_(b).diagnostics.filter(e=>e.severity===`warning`)}catch{return[]}},[b]),I=async(e,t,n,r={})=>{if(ff(b)){let i=structuredClone(b),a=_g(i).find(t=>t.id===e);return a?(a.title=t,a.text=r.overviewText??a.text):i.nodes=i.nodes.map(i=>i.id===e?{...i,label:t,subtitle:n,...r}:i),k(i)}let i={...b,nodes:b.nodes.map(r=>r.id===e?{...r,label:t,subtitle:n}:r)},o=mv(i,hv(i,e,!$m(b))),s=o.nodes.find(t=>t.id===e);if(!s)return;if(!$m(o)||![`architecture`,`deployment`].includes(a)){let e=$g(s,a,o.meta.locale);s.size={width:Math.max(s.size.width,e.width),height:Math.max(s.size.height,e.height)}}let c=await O(o);return c.error&&!c.cancelled&&(c=await O(o,{move:!0,focusId:e,evaluations:12,passes:1})),c.error},te=async(e,t)=>ff(b)?k({...b,edges:b.edges.map(n=>n.id===e?{...n,label:t}:n)}):(await O({...b,edges:b.edges.map(n=>n.id===e?{...n,label:t}:n)})).error,ne=(e,n=t?0:320,r=!1)=>{let i=p.current;if(!i)return;let a=jh(e),o=i.dataset.navOpen===`true`,s=i.dataset.drawerOpen===`true`,c=!r&&sv(a,ov(e),nv(i,o,s))||lo(a,i.clientWidth,i.clientHeight,.08,2,rv(i,o,s));return g(c,{duration:n,ease:tv})};return{layoutPending:w,cancelLayout:E,nodes:o,edges:l,onNodesChange:P,onNodeDragStop:A,onOverviewKeyDown:j,setRenderProblem:N,updateNodeText:I,updateEdgeText:te,locked:d,setLocked:f,canvasRef:p,currentGraph:b,acceptedGraph:_,layoutProblem:ee,layoutWarnings:F,focusProblem:e=>{let n=e.bounds?.[0];n&&h(n.x+n.width/2,n.y+n.height/2,{zoom:1,duration:t?0:320})},readGraph:ne,focusNode:(0,y.useCallback)((e,n={})=>{let r=b.nodes.find(t=>t.id===e)??_g(b).find(t=>t.id===e);if(!r)return;if(a!==`sequence`){h(r.position.x+r.size.width/2,r.position.y+r.size.height/2,{zoom:1.1,duration:t?0:420,ease:tv});return}let i=p.current;if(!i)return;let o=nv(i,n.navOpen??i.dataset.navOpen===`true`,n.drawerOpen??i.dataset.drawerOpen===`true`),s=av(Jh(r,a),o,m());g(s,{duration:t?0:420,ease:tv})},[b,a,m,t,h,g]),resetLayout:()=>{E({superseded:!0}),v(r),N(null),s(Wg(r,a)),u(Gg(r,a)),requestAnimationFrame(()=>ne(r))},nudgeLayout:async e=>{if(d){n(`Unlock the layout before arranging nodes`);return}if(ff(b)){await k(b,{relayout:!e})||n(`Overview aligned`);return}let t=$_(b,e),r=t.rejected?b:t.graph,a=await O(r,{move:!0,relayout:!e,focusId:e,evaluations:20,passes:1});if(a.cancelled)return;if(a.error){n(`Cannot arrange further within the current constraints`);return}a.movedNodeIds=a.graph.nodes.filter(e=>{let t=b.nodes.find(t=>t.id===e.id);return t.position.x!==e.position.x||t.position.y!==e.position.y}).map(e=>e.id);let o=a.movedNodeIds.length,s=i(e?`Local`:`Full diagram`);n(o?i(`{scope} arranged: {count} nodes moved`,{scope:s,count:o}):i(`No spacing changes needed`))},focusDiagram:()=>ne(b,t?0:320,!0)}}function _v(e,t){let n=t.trim().toLowerCase();if(!n)return 0;let r=e.label.trim().toLowerCase();if(r===n)return 5;if(r.startsWith(n))return 4;if(r.includes(n))return 3;let i=e=>e.some(e=>String(e??``).toLowerCase().includes(n));return i([e.subtitle,...e.tags??[]])?2:+!!i([...e.overviewText??[],...(e.badges??[]).map(e=>e.label),...e.facts??[],...e.attributes??[],...e.methods??[],...(e.fields??[]).flatMap(e=>[e.key,e.name,e.type])])}function vv(e,t){return e.map(e=>({node:e,rank:_v(e,t)})).filter(e=>e.rank>0).sort((e,t)=>t.rank-e.rank).slice(0,8).map(e=>e.node)}function yv(e,{focusNode:t,panels:n,isFullscreen:r=!1,toggleFullscreen:i}){let[a,o]=(0,y.useState)(()=>e.nodes.find(qf)?.id??null),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(0),[d,f]=(0,y.useState)(``),p=d.trim().toLowerCase(),m=(0,y.useMemo)(()=>[...e.nodes,..._g(e).map(e=>({...e,label:e.title,kind:`annotation`,section:!0,overviewText:e.text??[]}))],[e]),h=(0,y.useMemo)(()=>p?vv(m,p):e.nodes,[e,m,p]),g=m.find(e=>e.id===a),_=e.edges.find(e=>e.id===s),{toolbarOpen:v,drawerOpen:b,openDetails:x,closeDetails:S,closeNav:C}=n,w=(0,y.useCallback)((e,n=!0)=>{o(e.id),c(null),u(e=>e+1),f(``),n&&(!r&&!b&&x(),t(e.id,{navOpen:v,drawerOpen:!r||b}))},[b,x,t,r,v]),T=(0,y.useCallback)((e,t=!1)=>{o(null),c(e.id),u(e=>e+1),f(``),t&&!r&&!b&&x()},[b,r,x]),E=(0,y.useCallback)((e=!1)=>{o(null),c(null),S(e)},[S]);return(0,y.useEffect)(()=>{let e=e=>{if(e.key!==`Escape`)return;if(r){e.preventDefault(),document.fullscreenElement&&i();return}let t=document.activeElement;if(t?.closest(`.nav`)){C(!0);return}if(t?.closest(`.inspector`)){S(!0);return}E(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[E,S,C,r,i]),{selectedId:a,selectedEdgeId:s,selectionPulse:l,selected:g,selectedEdge:_,query:d,setQuery:f,normalizedQuery:p,results:h,selectNode:w,selectEdge:T,clearSelectedNode:E,handleCanvasKeyDown:t=>{if(![`Enter`,` `].includes(t.key))return;let n=t.target.closest(`.react-flow__edge`);if(n){if(t.preventDefault(),t.stopPropagation(),t.repeat)return;let r=e.edges.find(e=>e.id===n.dataset.id);r&&T(r);return}let r=t.target.closest(`.react-flow__node-diagram,.react-flow__node-overview`);if(!r||(t.preventDefault(),t.stopPropagation(),t.repeat))return;let i=m.find(e=>e.id===r.dataset.id);i&&w(i)},resetSelection:()=>{o(null),c(null),u(0),f(``)}}}function bv(e,t,n,r,i,a){let o=Zm(e),{nodes:s,edges:c,locked:l,currentGraph:u}=t,{selectedId:d,selectedEdgeId:f,selectEdge:p,selectNode:m,selectionPulse:h,normalizedQuery:g}=n,_=(0,y.useMemo)(()=>Kh(u),[u]),v=(0,y.useMemo)(()=>bh(u),[u]),b=(0,y.useMemo)(()=>Eh(u),[u]),x=(0,y.useMemo)(()=>ep(u.groups??[],i),[u,i]);return{visibleNodes:(0,y.useMemo)(()=>s.map(t=>t.type===`overview`?{...t,draggable:!1,data:{...t.data,palette:i,onSelect:()=>m({...t.data,label:t.data.title,kind:`annotation`,section:!0,overviewText:t.data.text??[]})}}:t.type===`boundary`?{...t,data:{...t.data,appearance:x.get(t.id),fragment:o===`sequence`?vh(t.data,_,e.meta.locale,u.groups??[],b):null}}:{...t,selected:t.id===d,draggable:!l,data:{...t.data,executionRects:b.filter(e=>e.participantId===t.id).map(e=>({...e,x:e.x-t.position.x,y:e.y-t.position.y,color:rp(v.get(e.start.edgeId),i)??i.edge})),selectionPulse:h,palette:i,moduleColors:a,dimmed:!!g&&_v(t.data,g)===0}}),[m,l,s,g,d,h,i,a,_,o,e.meta.locale,u,b,v,x]),visibleEdges:(0,y.useMemo)(()=>{let e=$(o).sequence;return c.map(t=>{let n=_.get(t.id),s=t.data.kind===`failure`,c=t.id===f||t.source===d||t.target===d,l=v.get(t.id),m=th(t.data,o),g=u.nodes.find(e=>e.id===t.target),y=u.nodes.find(e=>e.id===t.source),b=ip(t.data,g,i,a,y,l),S=l?b:s?i.warn:i.accent;return{...t,sourceHandle:$(o).sequence?`source-right`:`source-${_.get(t.id).sourceSide}`,targetHandle:$(o).sequence?`target-left`:`target-${_.get(t.id).targetSide}`,className:[e?`flow-edge--sequence`:``,m?`flow-edge--dashed`:``].filter(Boolean).join(` `),style:{stroke:b,strokeWidth:1.6},ariaLabel:n.label||`${y.label} → ${g.label}`,markerEnd:t.markerEnd?{type:Da.ArrowClosed,color:b}:void 0,selected:t.id===f,data:{...t.data,pair:l,selectionLinked:c,selectionId:f??d,selectionPulse:h,selectionColor:S,route:n,relationColor:i.accent,directed:!!t.markerEnd,flowRunning:r,dashed:m,labelColor:i.ink3,roleColors:nh(o,i),labelSurface:e&&n.label?mh(n.labelBox,u.groups??[],x):void 0,onSelect:()=>p(t.data)}}})},[o,c,e,u,i,a,r,p,f,d,h,_,v,x])}}function xv(e,t){let n=(0,y.useRef)(null),r=(0,y.useRef)(null),i=(0,y.useRef)(!1),a=(0,y.useRef)(!1),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(!1),u=(0,y.useEffectEvent)(t),d=!!(document.fullscreenEnabled&&document.documentElement.requestFullscreen&&document.exitFullscreen),f=(0,y.useCallback)(async()=>{let t=n.current;if(!t||a.current)return;let r=document.fullscreenElement===t;if(!r&&!d){e(`Fullscreen is not available in this browser or page`);return}a.current=!0,l(!0),e(``);try{return r?await document.exitFullscreen():await t.requestFullscreen(),!0}catch{t.isConnected&&e(r?`Could not exit fullscreen. Press Esc to try again.`:`Could not enter fullscreen. Check browser or page permissions and try again.`)}finally{a.current=!1,t.isConnected&&l(!1)}},[d,e]);return(0,y.useEffect)(()=>{let e,t=()=>{let t=!!(n.current&&document.fullscreenElement===n.current),a=!i.current&&t,o=i.current&&!t;i.current=t,s(t),a&&(e=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>{i.current&&u()})})),o&&(cancelAnimationFrame(e),r.current?.focus({preventScroll:!0}))};return document.addEventListener(`fullscreenchange`,t),t(),()=>{document.removeEventListener(`fullscreenchange`,t),cancelAnimationFrame(e)}},[]),{boardRef:n,fullscreenButtonRef:r,isFullscreen:o,fullscreenPending:c,fullscreenSupported:d,toggleFullscreen:f}}function Sv(e,t,n,r,i,a){let{end:o}=rh(e,t);return o?o===`arrow`?` marker-end="url(#${a?`arrow-module`:e.kind===`failure`?`arrow-warn`:e.kind===`success`?`arrow-ok`:r?.has(e.module??i?.module??n?.module)?`arrow-module`:Kf.has(n?.kind)?`arrow-data`:`arrow`})"`:` marker-end="url(#${o})"`:``}function Cv(e,t){let{start:n}=rh(e,t);return n?` marker-start="url(#${n})"`:``}function wv(e,t,n,r,i){let a=e.position.x+t,o=e.position.y+n,s=jp(e.label,r?.heading?.width??e.size.width-([`alt`,`opt`,`loop`,`par`].includes(e.kind)?88:32));return`<g data-diagram-group-id="${Ap(e.id)}"><title>${Ap(e.label)}</title>${kp(e,i,a,o)}${r?(r.heading?.lines??[s]).map((e,n)=>Q(r.heading?r.heading.x+t:a+16,o+23+n*22,e,`group`)).join(``):Op(e,a,o)}${[`alt`,`opt`,`loop`,`par`].includes(e.kind)?Q(a+e.size.width-16,o+25,e.kind,`group-kind`,` text-anchor="end"`):``}</g>`}function Tv(e,t,n,r,i,a,o,s,c,l,u){let d=ip(e,o,a,s,c,l),f=th(e,n)?` stroke-dasharray="7 6"`:``,p=t.label,m=t.labelPoint.x+r,h=t.labelPoint.y+i,g=t.labelBox,_=l?`<path d="M${m-Z(t.labelLines[0],1/0).width/2} ${h-g.height/2+3+X.body+3}h${Z(l.label,1/0).width}" stroke="${d}" stroke-width="2"/>`:``,v=p?`<rect x="${m-g.width/2}" y="${h-g.height/2}" width="${g.width}" height="${g.height}" rx="4" class="edge-bg"${u?` style="fill:${u}"`:``}/>`:``,y=$(n).cardinalities?[Ah(e.sourceCardinality,t.points[0],t.points[1]),Ah(e.targetCardinality,t.points.at(-1),t.points.at(-2))].map((e,t)=>`<g data-cardinality-endpoint="${t?`target`:`source`}" transform="translate(${r} ${i})" fill="none" stroke="${a.accent}" stroke-width="1.5"><path d="${e.path}"/>${e.circle?`<circle cx="${e.circle.cx}" cy="${e.circle.cy}" r="${e.circle.r}" fill="${a.surface}"/>`:``}</g>`).join(``):``,b=(t.endpointLabels??[]).map(e=>`<g class="edge-multiplicity" data-endpoint="${e.role}"><rect x="${e.labelBox.x+r}" y="${e.labelBox.y+i}" width="${e.labelBox.width}" height="${e.labelBox.height}" rx="4" class="edge-bg"/>${Q(e.labelPoint.x+r,e.labelBox.y+i+3+X.body,e.label,`edge`,` text-anchor="middle"`)}</g>`).join(``);return`<g data-diagram-edge-id="${Ap(e.id)}"><path d="${Wh(t,r,i)}" fill="none" stroke="${d}" stroke-width="1.5"${f}${Sv(e,n,o,s,c,l)}${Cv(e,n)}/>${y}${v}${_}${p?t.labelLines.map((e,r)=>Q(m,h-g.height/2+3+X.body+r*X.edgeLineHeight,t.labelRuns?{runs:t.labelRuns[r],colors:nh(n,a)}:e,`edge`,` text-anchor="middle"`)).join(``):``}${b}</g>`}var Ev={indent:20,line:24,gap:6,top:12,afterHeading:14,bottom:18};function Dv(e,t,n,r,i){let a=e.map(e=>Z(e,i-Ev.indent,X.body,Ev.line)),o=r+Ev.top+Ev.afterHeading,s=a.map(({lines:e})=>{let t=o+17,r=Q(n,t,`•`,`body`)+e.map((e,r)=>Q(n+Ev.indent,t+r*Ev.line,e,`body`)).join(``);return o+=e.length*Ev.line+Ev.gap,r}).join(``);return{height:o-r+Ev.bottom,svg:`<g data-notes="${e.length}">${Q(n,r+Ev.top,bf(t,`Key points`),`group`)}${s}</g>`}}function Ov(e,t=`light`,n){v_(e),e=Cf(e);let r=Wf[t]??Wf.light;n??=Zf([e],r);let i=ep(e.groups??[],r),a=Zm(e),o=Kh(e),s=bh(e),c=Eh(e),l=new Map(e.nodes.map(e=>[e.id,e])),u=jh(e,o),d=u.width+128,f=Z(e.meta.title,d-128,24),p=Z(e.meta.subtitle??``,d-128,X.small),m=66+Math.max(0,f.lines.length-1)*f.lineHeight,h=Math.max(88,p.lines.length?m+(p.lines.length-1)*p.lineHeight+22:43+Math.max(0,f.lines.length-1)*f.lineHeight+24),g=u.height+128+h,_=e.meta.notes?.length?Dv(e.meta.notes,e.meta.locale,64,g,d-128):{height:0,svg:``},v=g+_.height,y=64-u.x,b=64+h-u.y,x=new Map((e.groups??[]).map(t=>[t.id,a===`sequence`?vh(t,o,e.meta.locale,e.groups??[],c):null])),S=[...e.groups??[]].sort((t,n)=>ph(t,e.groups??[])-ph(n,e.groups??[])).map(e=>wv(e,y,b,x.get(e.id),i.get(e.id))+(a===`sequence`?yh({...x.get(e.id),guards:[],bodies:[]},e,y,b,r.ink3,i.get(e.id).fill):``)).join(``),C=_g(e).map(e=>Ag(e,r,y,b)).join(``),w=a===`sequence`?(e.groups??[]).map(e=>yh({...x.get(e.id),separators:[]},e,y,b,r.ink3,i.get(e.id).fill)).join(``):``,T=e.edges.map(t=>Tv(t,o.get(t.id),a,y,b,r,l.get(t.target),n,l.get(t.source),s.get(t.id),a===`sequence`&&o.get(t.id).label?mh(o.get(t.id).labelBox,e.groups??[],i):void 0)).join(``),E=!$m(e),D=e.nodes.map(t=>Mg({...t,classicCard:E,executionRects:c.filter(e=>e.participantId===t.id).map(e=>({...e,x:e.x-t.position.x,y:e.y-t.position.y,color:rp(s.get(e.start.edgeId),r)??r.edge}))},a,y,b,r,e.meta.locale,n)).join(``),O=h,k=d-48,A=g-h-24;return`<?xml version="1.0" encoding="UTF-8"?>\n\x3C!-- Radix Colors\n${If}-->\n<svg xmlns="http://www.w3.org/2000/svg" width="${d}" height="${v}" viewBox="0 0 ${d} ${v}" data-graph-offset-x="${y}" data-graph-offset-y="${b}" role="img" aria-labelledby="title desc"><title id="title">${Ap(e.meta.title)}</title><desc id="desc">${Ap(a)} diagram for ${Ap(e.meta.sourceRef)}</desc><defs><filter id="node-shadow" x="-20%" y="-20%" width="140%" height="150%"><feDropShadow dx="0" dy="5" stdDeviation="7" flood-color="${r.ink}" flood-opacity=".045"/></filter><marker id="arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M0 0L10 5L0 10Z" fill="${r.edge}"/></marker><marker id="arrow-module" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M0 0L10 5L0 10Z" fill="context-stroke"/></marker><marker id="arrow-warn" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M0 0L10 5L0 10Z" fill="${r.warn}"/></marker><marker id="arrow-ok" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M0 0L10 5L0 10Z" fill="${r.accent}"/></marker><marker id="arrow-data" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M0 0L10 5L0 10Z" fill="${r.data}"/></marker><marker id="arrow-open" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M1 1L9 5L1 9" fill="none" stroke="context-stroke" stroke-width="1.5"/></marker><marker id="triangle" viewBox="0 0 12 12" refX="11" refY="6" markerWidth="9" markerHeight="9" orient="auto"><path d="M1 1L11 6L1 11Z" fill="${r.surface}" stroke="context-stroke"/></marker><marker id="diamond-filled" viewBox="0 0 14 10" refX="1" refY="5" markerWidth="12" markerHeight="10" orient="auto"><path d="M1 5L7 1L13 5L7 9Z" fill="context-stroke"/></marker><marker id="diamond-open" viewBox="0 0 14 10" refX="1" refY="5" markerWidth="12" markerHeight="10" orient="auto"><path d="M1 5L7 1L13 5L7 9Z" fill="${r.surface}" stroke="context-stroke"/></marker><style>${Kp(r)}</style></defs><rect width="100%" height="100%" fill="${r.paper}"/><rect x="24" y="${O}" width="${k}" height="${A}" rx="16" fill="${r.surface}" stroke="${r.rule}"/>${f.lines.map((e,t)=>Q(64,43+t*f.lineHeight,e,`heading`)).join(``)}${p.lines.map((e,t)=>Q(64,m+t*p.lineHeight,e,`meta`)).join(``)}${C}${S}${a===`sequence`?D+T:T+D}${w}${_.svg}</svg>\n`}RegExp(`^diagram(-\\d+-(${Ym.join(`|`)}))?\\.svg$`);function kv(e){let t=Array.isArray(e.diagrams),n=t?e.diagrams:[e],r=Zf(n,Wf.light);return n.map((e,n)=>({name:t?`diagram-${n+1}-${Zm(e)}.svg`:`diagram.svg`,svg:Ov(e,`light`,r)}))}function Av(e){return e.trim().replace(/[^\p{L}\p{N}._-]+/gu,`-`).replace(/^-+|-+$/g,``)||`diagram`}function jv(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.click(),setTimeout(()=>URL.revokeObjectURL(n),0)}async function Mv(e,t,n,r=decodeURIComponent(window.location?.pathname?.split(`/`).pop()||`index.html`)){let i=(e,n)=>bf(t,e,n),a=`${JSON.stringify(e,null,2)}\n`,o;try{if(typeof window.showDirectoryPicker==`function`){let t=await window.showDirectoryPicker({id:`qgraphflow-page`,mode:`readwrite`}),s=await t.getFileHandle(r,{create:!1}).catch(()=>null);if(!s)throw Object.assign(Error(`wrong directory`),{name:`NotFoundError`});let c=uv(await(await s.getFile()).text(),e),l;try{l=kv(e).map(e=>[e.name,e.svg])}catch(e){if(!e.phases)throw e}for(let[e,n]of[[`graph.json`,a],[r,c],...l??[]])o=await(await t.getFileHandle(e,{create:!0})).createWritable(),await o.write(n),await o.close(),o=null;n(i(l?`Saved into this page, its sibling graph.json and SVGs`:`Saved into this page and its sibling graph.json; SVGs not updated: the layout needs adjustment`))}else typeof window.showSaveFilePicker==`function`?(o=await(await window.showSaveFilePicker({suggestedName:`graph.json`,types:[{description:`Graph JSON`,accept:{"application/json":[`.json`]}}]})).createWritable(),await o.write(a),await o.close(),o=null,n(i(`Graph JSON saved`))):(jv(new Blob([a],{type:`application/json;charset=utf-8`}),`graph.json`),n(i(`Graph JSON downloaded; keep the file to preserve edits`)))}catch(e){o&&await o.abort().catch(()=>{}),n(i(e.name===`AbortError`?`Save cancelled; edits remain in this page`:e.name===`NotFoundError`?`Choose the folder containing this page ({page}); edits remain in this page`:`Save failed; edits remain in this page`,{page:r}))}}async function Nv(e,t){t=Cf(t);let n=[],r=[],i=document.createElement(`div`);i.style.cssText=`position:fixed;left:0;top:0;width:0;height:0;overflow:hidden;visibility:hidden;pointer-events:none`;let a=new DOMParser().parseFromString(e,`image/svg+xml`);if(a.querySelector(`parsererror`))throw __(t,`rendering`,`The exported SVG could not be parsed`);let o=document.importNode(a.documentElement,!0);i.append(o),document.body.append(i);try{await document.fonts.ready;let e=o.viewBox.baseVal,i=Number(o.dataset.graphOffsetX),a=Number(o.dataset.graphOffsetY);if(!Number.isFinite(i)||!Number.isFinite(a))throw Error(`The exported SVG has no geometry offset`);let s=new Map([...o.querySelectorAll(`.node-drawing`)].map(e=>[e.dataset.diagramNodeId,e])),c=e=>String(e??``).replace(/\s+/gu,``),l=(e,t)=>e.x>=t.x-.5&&e.y>=t.y-.5&&e.x+e.width<=t.x+t.width+.5&&e.y+e.height<=t.y+t.height+.5,u=e=>{let t=e.getBBox(),n=e.getCTM(),r=[new DOMPoint(t.x,t.y),new DOMPoint(t.x+t.width,t.y),new DOMPoint(t.x,t.y+t.height),new DOMPoint(t.x+t.width,t.y+t.height)].map(e=>e.matrixTransform(n)),i=Math.min(...r.map(e=>e.x)),a=Math.min(...r.map(e=>e.y));return{x:i,y:a,width:Math.max(...r.map(e=>e.x))-i,height:Math.max(...r.map(e=>e.y))-a}};for(let t of o.querySelectorAll(`text`)){if(!t.textContent)continue;let o=u(t),s=parseFloat(getComputedStyle(t).fontSize)*Math.hypot(t.getCTM().a,t.getCTM().b),c=t.closest(`[data-diagram-node-id],[data-diagram-edge-id],[data-diagram-group-id],[data-fragment-group-id],[data-overview-section-id]`);n=c?[c.dataset.diagramNodeId??c.dataset.diagramEdgeId??c.dataset.diagramGroupId??c.dataset.fragmentGroupId??c.dataset.overviewSectionId]:[],r=[{...o,x:o.x-i,y:o.y-a}];let d=/(?:title|heading)/.test(t.getAttribute(`class`))?20:/^(body|operand-body|field-name|field-type|member|edge|cardinality)$/.test(t.getAttribute(`class`))?16:14;if(!l(o,e)||s+.01<d)throw Error(`Exported text is out of bounds or below the required size: ${t.textContent.slice(0,80)}`)}for(let e of t.nodes){n=[e.id],r=[{...e.position,...e.size}];let o=s.get(e.id),d=$(Zm(t));if(!o)throw Error(`Export is missing node ${e.id}`);let f={x:e.position.x+i,y:e.position.y+a,width:e.size.width,height:d.selectionHeight?.(e)??e.size.height},p=d.textArea&&e.kind!==`actor`?d.textArea(e):null,m=p?{...p,x:f.x+(p.x??(f.width-p.width)/2),y:f.y+(p.y??(f.height-p.height)/2)}:f,h=d.activityArea?.(e),g=h&&{...h,x:f.x+h.x,y:f.y+h.y},_=[...o.querySelectorAll(`text`)].filter(e=>e.textContent).map(e=>({element:e,box:u(e)})),v=c(_.map(e=>e.element.textContent).join(``)),y=[[`initial`,`final`].includes(e.kind)&&!e.subtitle?``:e.label,e.subtitle,...e.overviewText??[],...(e.badges??[]).map(e=>e.label),...(e.fields??[]).flatMap(e=>[e.name,e.type]),...e.attributes??[],...e.methods??[],...h?[`entry`,`do`,`exit`].map(t=>e[t]):[]];for(let t of y)if(t&&!v.includes(c(t)))throw Error(`Node text is not fully shown: ${e.id} / ${e.label} / ${String(t).slice(0,80)}`);for(let t of _)if(!l(t.box,m)&&!(g&&l(t.box,g)))throw Error(`Node text leaves the safe area: ${e.id} / ${e.label} / ${t.element.textContent.slice(0,80)}`);for(let t=0;t<_.length;t++)for(let n of _.slice(t+1)){let r=_[t].box,i=n.box;if(r.x<i.x+i.width-.5&&i.x<r.x+r.width-.5&&r.y<i.y+i.height-.5&&i.y<r.y+r.height-.5)throw Error(`Node text overlaps: ${e.id} / ${e.label}`)}}let d=Zm(t),f=Kh(t),p=new Map([...o.querySelectorAll(`[data-diagram-edge-id]`)].map(e=>[e.dataset.diagramEdgeId,e])),m=e=>({...e,x:e.x+i,y:e.y+a}),h=(e,t)=>e.x<t.x+t.width-.5&&t.x<e.x+e.width-.5&&e.y<t.y+t.height-.5&&t.y<e.y+e.height-.5,g=[...f.values()].flatMap(e=>[...e.label?[m(e.labelBox)]:[],...(e.endpointLabels??[]).map(e=>m(e.labelBox))]),_=(e,t,n,o,s=`Edges`)=>{if(r=[{...n,x:n.x-i,y:n.y-a}],c(e.map(e=>e.textContent).join(``))!==c(t))throw Error(`${s} text is not fully shown: ${o}`);if(e.some(e=>!l(u(e),n)))throw Error(`${s} text leaves the safe area: ${o}`)};for(let e of _g(t))n=[e.id],_([...[...o.querySelectorAll(`[data-overview-section-id]`)].find(t=>t.dataset.overviewSectionId===e.id)?.querySelectorAll(`:scope > text`)??[]],[e.title,...e.text??[]].join(``),m({...e.position,...e.size}),e.id,`section`);let v=new Map,y=new Map([...o.querySelectorAll(`[data-diagram-group-id]`)].map(e=>[e.dataset.diagramGroupId,e])),b=Eh(t);for(let e of t.groups??[]){n=[e.id];let r=y.get(e.id),i=d===`sequence`?vh(e,f,t.meta.locale,t.groups,b):null,a=i?.heading??{x:e.position.x+16,y:e.position.y+6,width:e.size.width-32,height:Dp(e).height};_([...r?.querySelectorAll(`:scope > text.group`)??[]],e.label,m(a),e.id,`group`),[`alt`,`opt`,`loop`,`par`].includes(e.kind)&&_([...r?.querySelectorAll(`:scope > text.group-kind`)??[]],e.kind,m({x:e.position.x+e.size.width-60,y:e.position.y+6,width:48,height:30}),e.id);for(let[t,n]of[[`guard`,i?.guards],[`body`,i?.bodies]])for(let r of n??[])_([...o.querySelectorAll(`.operand-${t}[data-fragment-group-id="${CSS.escape(e.id)}"][data-operand-id="${CSS.escape(r.operandId)}"] text`)],r.lines.join(``),m(r),`${e.id}/${r.operandId}/${t}`,`fragment`)}for(let r of t.edges){n=[r.id,r.source,r.target];let i=p.get(r.id),a=f.get(r.id),s=i?.querySelector(`:scope > path`);if(!s)throw Error(`Export is missing edge ${r.id}`);_([...i.querySelectorAll(`:scope > text.edge`)],a.label,m(a.labelBox),r.id);for(let e of a.endpointLabels??[])_([...[...i.querySelectorAll(`.edge-multiplicity`)].find(t=>t.dataset.endpoint===e.role)?.querySelectorAll(`text`)??[]],e.label,m(e.labelBox),`${r.id}/${e.role}`);if($(d).cardinalities)for(let[t,n,o]of[[`source`,a.points[0],a.points[1]],[`target`,a.points.at(-1),a.points.at(-2)]]){let a=Ah(r[`${t}Cardinality`],n,o),s=i.querySelector(`[data-cardinality-endpoint="${t}"]`),c=s?.querySelector(`path`),d=s?.querySelector(`circle`);if(!c||c.getAttribute(`d`)!==a.path||!!d!=!!a.circle||a.circle&&Object.entries(a.circle).some(([e,t])=>Number(d.getAttribute(e))!==t))throw Error(`Cardinality mark missing or mismatched: ${r.id}/${t}`);let f=u(s),p=m(a.bounds);if(!l(f,p)||!l(p,f)||!l(f,e))throw Error(`Cardinality mark is out of bounds: ${r.id}/${t}`)}for(let[n,i]of Object.entries(rh(r,d))){let a=s.getAttribute(`marker-${n}`),c=/^url\(#([^)]*)\)$/.exec(a??``)?.[1];if(!i&&!a)continue;if(!i||!c||!(c===i||i===`arrow`&&/^arrow-(module|warn|ok|data)$/.test(c)))throw Error(`Edge marker mismatch: ${r.id}/${n}`);let u=o.querySelector(`marker[id="${CSS.escape(c)}"]`);if(!u)throw Error(`Edge marker missing: ${r.id}/${n}/${c}`);if(!v.has(c)){let e=document.createElementNS(`http://www.w3.org/2000/svg`,`g`);for(let t of u.childNodes)e.append(t.cloneNode(!0));o.append(e);try{let t=e.getBBox(),n=Math.max(0,...[...e.querySelectorAll(`*`)].map(e=>getComputedStyle(e).stroke===`none`?0:parseFloat(getComputedStyle(e).strokeWidth)/2));if(!t.width||!t.height)throw Error(`Edge marker is empty: ${r.id}/${c}`);v.set(c,{x:t.x-n,y:t.y-n,width:t.width+n*2,height:t.height+n*2})}finally{e.remove()}}let f=v.get(c),p=u.viewBox.baseVal,_=u.markerWidth.baseVal.value,y=u.markerHeight.baseVal.value;if(!(_>0&&y>0&&p.width>0&&p.height>0)||!l(f,p))throw Error(`Edge marker is clipped: ${r.id}/${c}`);let b=Math.min(_/p.width,y/p.height)*(u.getAttribute(`markerUnits`)===`userSpaceOnUse`?1:parseFloat(getComputedStyle(s).strokeWidth)),x=s.getTotalLength(),S=s.getPointAtLength(n===`start`?0:x),C=s.getPointAtLength(n===`start`?Math.min(1,x):Math.max(0,x-1)),w=Math.atan2(n===`start`?C.y-S.y:S.y-C.y,n===`start`?C.x-S.x:S.x-C.x)*180/Math.PI,T=s.getCTM().translate(S.x,S.y).rotate(w).scale(b).translate(-u.refX.baseVal.value,-u.refY.baseVal.value),E=[[f.x,f.y],[f.x+f.width,f.y],[f.x,f.y+f.height],[f.x+f.width,f.y+f.height]].map(([e,t])=>new DOMPoint(e,t).matrixTransform(T)),D=Math.min(...E.map(e=>e.x)),O=Math.min(...E.map(e=>e.y)),k={x:D,y:O,width:Math.max(...E.map(e=>e.x))-D,height:Math.max(...E.map(e=>e.y))-O};if(!l(k,e)||g.some(e=>h(k,e))||t.nodes.some(e=>e.id!==r.source&&e.id!==r.target&&h(k,m(Jh(e,d)))))throw Error(`Edge marker out of bounds or covered: ${r.id}/${n}/${c}`)}}}catch(e){throw __(t,`rendering`,e.message,[{ruleId:`rendering.svg`,severity:`error`,diagramType:Zm(t),elementIds:n,bounds:r,measured:e.message,required:`Complete visible text and notation within the measured safety regions and viewBox`,remediation:`Inspect the identified element and regenerate after correcting its text or geometry.`}])}finally{i.remove()}}function Pv(e,t){return new Promise((n,r)=>{let i=new Blob([e],{type:`image/svg+xml;charset=utf-8`}),a=URL.createObjectURL(i),o=new Image;o.onload=()=>{try{let e=o.naturalWidth,i=o.naturalHeight;if(!e||!i||e>32767||i>32767||e*i>64e6)throw Error(`Image exceeds the PNG export limit; export SVG instead`);let a=document.createElement(`canvas`);a.width=e,a.height=i;let s=a.getContext(`2d`);if(!s)throw Error(`The browser could not create the PNG canvas`);s.drawImage(o,0,0);let c=document.createElement(`canvas`);c.width=Math.min(128,e),c.height=Math.min(128,i);let l=c.getContext(`2d`);if(!l)throw Error(`The browser could not inspect the PNG canvas`);l.drawImage(a,0,0,c.width,c.height);let u=l.getImageData(0,0,c.width,c.height).data;if(!u.some((e,t)=>e!==u[t%4]))throw Error(`The browser produced a blank PNG canvas`);a.toBlob(e=>{if(!e||!e.size||e.type!==`image/png`)return r(Error(`The browser could not generate the PNG`));jv(e,t),n()},`image/png`)}catch(e){r(e)}finally{URL.revokeObjectURL(a)}},o.onerror=()=>{URL.revokeObjectURL(a),r(Error(`The browser could not read the exported SVG`))},o.src=a})}async function Fv(e,t,n,r,i){e=structuredClone(e),i&&=Qf(i);let a=(t,n)=>bf(e.meta.locale,t,n);try{r(a(`Generating {format}…`,{format:n.toUpperCase()}));let o=Ov(e,t,i),s=`${Av(e.meta.title)}.${n}`;await Nv(o,e),n===`svg`?jv(new Blob([o],{type:`image/svg+xml;charset=utf-8`}),s):await Pv(o,s),r(a(`{format} downloaded`,{format:n.toUpperCase()}))}catch(e){return r(e.message),e}}function Iv(e,t,n,r,i,a,o){let[s,c]=(0,y.useState)(()=>window.matchMedia(`(prefers-reduced-motion: reduce)`).matches);(0,y.useEffect)(()=>{let e=window.matchMedia(`(prefers-reduced-motion: reduce)`),t=()=>c(e.matches);return t(),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let[l,u]=(0,y.useState)(null),d=(0,y.useCallback)(e=>u({message:e}),[]),f=Wf[t],p=gv(e,s,d,i),[m,h]=o,g=m&&!s,_=xv(d,()=>p.readGraph(p.currentGraph,0)),v=yv(p.currentGraph,{focusNode:p.focusNode,panels:n,isFullscreen:_.isFullscreen,toggleFullscreen:_.toggleFullscreen}),b=bv(e,p,v,g,f,r),x=async e=>{p.setRenderProblem(null);let n=await Fv(p.currentGraph,t,e,d,r);n?.diagnostics&&p.setRenderProblem({graph:p.currentGraph,message:n.message,diagnostics:n.diagnostics})},S=()=>Mv(a(p.currentGraph),e.meta.locale,d),C=()=>{p.resetLayout(),v.resetSelection(),h(!0),d(`Reset: original positions and reading view restored`)};return{...p,...v,...b,...n,..._,diagramType:Zm(e),palette:f,moduleColors:r,reduceMotion:s,exportStatus:l,exportDiagram:x,saveGraph:S,reset:C,inspectedNode:v.selected,inspectedEdge:v.selectedEdge,hasFlow:Sf(e).some(t=>eh(t,Zm(e))),flowRunning:g,setFlowEnabled:h,nudgeLayout:()=>p.nudgeLayout(v.selectedId)}}function Lv(){let[e,t]=(0,y.useState)(null),n=(0,y.useCallback)(e=>t(t=>t===e?null:e),[]),r=(0,y.useCallback)(()=>{let n=document.querySelector(`[data-popover-root="${e}"]`);n?.contains(document.activeElement)&&n.querySelector(`[aria-haspopup]`)?.focus(),t(null)},[e]);return(0,y.useEffect)(()=>{if(!e)return;let n=n=>{n.target.closest?.(`[data-popover-root]`)?.dataset.popoverRoot!==e&&t(null)},i=t=>{if(t.key===`Escape`){t.preventDefault(),t.stopPropagation(),r();return}let n=t.target.closest?.(`[data-popover-root]`);if(n?.dataset.popoverRoot!==e)return;let i=t.target.closest(`[role="radiogroup"]`);if(![`ArrowDown`,`ArrowUp`,`Home`,`End`,...i?[`ArrowLeft`,`ArrowRight`]:[]].includes(t.key))return;let a=[...(i??n).querySelectorAll(i?`[role="radio"]`:`[role="menu"] button`)].filter(e=>!e.disabled);if(!a.length)return;t.preventDefault(),t.stopPropagation();let o=a.indexOf(document.activeElement),s=[`ArrowDown`,`ArrowRight`].includes(t.key),c=t.key===`Home`?0:t.key===`End`?a.length-1:o<0?s?0:a.length-1:(o+(s?1:-1)+a.length)%a.length;a[c].focus(),i&&a[c].click()};return window.addEventListener(`pointerdown`,n,!0),window.addEventListener(`keydown`,i,!0),()=>{window.removeEventListener(`pointerdown`,n,!0),window.removeEventListener(`keydown`,i,!0)}},[e,r]),{open:e,toggle:n,close:r}}function Rv(e,t,n,r,i){let{getViewport:a,setViewport:o}=vl();return(0,y.useCallback)((s,c,l,u)=>{let d=e.current?.getBoundingClientRect();if(!d?.width)return;if(r===`sequence`){let t=Kh(n),d=n.nodes.find(e=>e.id===s),f=t.get(c),p=d?Jh(d,r):f?.labelBox;if(!p)return;let m=iv(p,nv(e.current,l,u),a());(m.x!==a().x||m.y!==a().y||m.zoom!==a().zoom)&&o(m,{duration:i?0:360,ease:tv});return}let f=t.find(e=>e.id===s&&e.type===`diagram`);if(!f)return;let p=a(),m=f.position.x*p.zoom+p.x,h=m+(f.measured?.width??f.style.width)*p.zoom,g=f.position.y*p.zoom+p.y,_=l?328:12,v=d.width-(u?328:12),y=0,b=0;h>v&&(y=v-h),m+y<_&&(y=_-m),g<64&&(b=64-g),(y||b)&&o({...p,x:p.x+y,y:p.y+b},{duration:i?0:360,ease:tv})},[e,r,n,t,i,a,o])}var zv={"panel-left":(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),(0,x.jsx)(`path`,{d:`M9 3v18`})]}),"panel-right":(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),(0,x.jsx)(`path`,{d:`M15 3v18`})]}),views:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`rect`,{x:`3`,y:`3`,width:`7`,height:`7`,rx:`1`}),(0,x.jsx)(`rect`,{x:`14`,y:`3`,width:`7`,height:`7`,rx:`1`}),(0,x.jsx)(`rect`,{x:`3`,y:`14`,width:`7`,height:`7`,rx:`1`}),(0,x.jsx)(`rect`,{x:`14`,y:`14`,width:`7`,height:`7`,rx:`1`})]}),search:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`circle`,{cx:`11`,cy:`11`,r:`8`}),(0,x.jsx)(`path`,{d:`m21 21-4.3-4.3`})]}),spacing:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{d:`m18 8 4 4-4 4`}),(0,x.jsx)(`path`,{d:`m6 8-4 4 4 4`}),(0,x.jsx)(`path`,{d:`M2 12h20`})]}),wash:(0,x.jsx)(`path`,{d:`M12 2.5c-.6 2.6-2.2 5-4.3 6.9C5.9 11 5 13 5 15a7 7 0 0 0 14 0c0-2-.9-4-2.7-5.6C14.2 7.5 12.6 5.1 12 2.5Z`}),more:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`circle`,{cx:`5`,cy:`12`,r:`1.6`,fill:`currentColor`,stroke:`none`}),(0,x.jsx)(`circle`,{cx:`12`,cy:`12`,r:`1.6`,fill:`currentColor`,stroke:`none`}),(0,x.jsx)(`circle`,{cx:`19`,cy:`12`,r:`1.6`,fill:`currentColor`,stroke:`none`})]}),download:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}),(0,x.jsx)(`path`,{d:`m7 10 5 5 5-5`}),(0,x.jsx)(`path`,{d:`M12 15V3`})]}),lock:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`rect`,{x:`3`,y:`11`,width:`18`,height:`11`,rx:`2`}),(0,x.jsx)(`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`})]}),unlock:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`rect`,{x:`3`,y:`11`,width:`18`,height:`11`,rx:`2`}),(0,x.jsx)(`path`,{d:`M7 11V7a5 5 0 0 1 9.9-1`})]}),reset:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`}),(0,x.jsx)(`path`,{d:`M3 3v5h5`})]}),moon:(0,x.jsx)(`path`,{d:`M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z`}),sun:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`circle`,{cx:`12`,cy:`12`,r:`4`}),(0,x.jsx)(`path`,{d:`M12 2v2`}),(0,x.jsx)(`path`,{d:`M12 20v2`}),(0,x.jsx)(`path`,{d:`m4.93 4.93 1.41 1.41`}),(0,x.jsx)(`path`,{d:`m17.66 17.66 1.41 1.41`}),(0,x.jsx)(`path`,{d:`M2 12h2`}),(0,x.jsx)(`path`,{d:`M20 12h2`}),(0,x.jsx)(`path`,{d:`m6.34 17.66-1.41 1.41`}),(0,x.jsx)(`path`,{d:`m19.07 4.93-1.41 1.41`})]}),close:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{d:`M18 6 6 18`}),(0,x.jsx)(`path`,{d:`m6 6 12 12`})]}),check:(0,x.jsx)(`path`,{d:`M20 6 9 17l-5-5`}),chevron:(0,x.jsx)(`path`,{d:`m6 9 6 6 6-6`}),notes:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{d:`M3 6h.01`}),(0,x.jsx)(`path`,{d:`M3 12h.01`}),(0,x.jsx)(`path`,{d:`M3 18h.01`}),(0,x.jsx)(`path`,{d:`M8 6h13`}),(0,x.jsx)(`path`,{d:`M8 12h13`}),(0,x.jsx)(`path`,{d:`M8 18h13`})]}),legend:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`rect`,{x:`3`,y:`3`,width:`7`,height:`7`,rx:`1`}),(0,x.jsx)(`rect`,{x:`3`,y:`14`,width:`7`,height:`7`,rx:`1`}),(0,x.jsx)(`path`,{d:`M14 5h7`}),(0,x.jsx)(`path`,{d:`M14 9h5`}),(0,x.jsx)(`path`,{d:`M14 16h7`}),(0,x.jsx)(`path`,{d:`M14 20h5`})]}),source:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{d:`M10 12.5 8 15l2 2.5`}),(0,x.jsx)(`path`,{d:`m14 12.5 2 2.5-2 2.5`}),(0,x.jsx)(`path`,{d:`M14 2v4a2 2 0 0 0 2 2h4`}),(0,x.jsx)(`path`,{d:`M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z`})]}),arrowRight:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{d:`M5 12h14`}),(0,x.jsx)(`path`,{d:`m12 5 7 7-7 7`})]}),fit:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{d:`M8 3H5a2 2 0 0 0-2 2v3`}),(0,x.jsx)(`path`,{d:`M21 8V5a2 2 0 0 0-2-2h-3`}),(0,x.jsx)(`path`,{d:`M3 16v3a2 2 0 0 0 2 2h3`}),(0,x.jsx)(`path`,{d:`M16 21h3a2 2 0 0 0 2-2v-3`})]}),expand:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{d:`m15 3 6 0 0 6`}),(0,x.jsx)(`path`,{d:`m9 21-6 0 0-6`}),(0,x.jsx)(`path`,{d:`M21 3 14 10`}),(0,x.jsx)(`path`,{d:`M3 21l7-7`})]}),collapse:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`path`,{d:`M10 14H4v6`}),(0,x.jsx)(`path`,{d:`M20 4h-6v6`}),(0,x.jsx)(`path`,{d:`m4 20 6-6`}),(0,x.jsx)(`path`,{d:`m20 4-6 6`})]})};function Bv({name:e}){return(0,x.jsx)(`svg`,{className:`ic`,viewBox:`0 0 24 24`,"aria-hidden":`true`,focusable:`false`,children:zv[e]})}function Vv(e,t,n,r,i,a=!1,o=()=>{}){let s=t??e,c=s?`${t?`edge`:`node`}:${s.id}`:null,l=!!(e&&(a||e.section||e.overviewText!==void 0||e.badges!==void 0)),u=(0,y.useRef)(0),[d,f]=(0,y.useState)({editing:!1,pending:!1,label:``,subtitle:``,overviewText:``,badges:[],error:``}),p=(t=!1)=>f({editing:!1,pending:!1,label:s?.label??``,subtitle:e?.subtitle??``,overviewText:(e?.overviewText??[]).join(`
284
+ `),badges:structuredClone(e?.badges??[]),error:``,returnFocus:t});(0,y.useEffect)(()=>{u.current++,o(),p()},[c]);let m=e=>f(t=>({...t,...e}));return{...d,section:!!e?.section,overview:l,set:m,cancel:()=>{u.current++,o(),p(!0)},begin:()=>m({editing:!0,returnFocus:!1,label:s?.label??``,subtitle:e?.subtitle??``,overviewText:(e?.overviewText??[]).join(`
285
+ `),badges:structuredClone(e?.badges??[]),error:``}),save:async a=>{if(a.preventDefault(),d.pending)return;let o=d.label.trim();if(!o){m({error:bf(i,`Name is required`)});return}if(d.badges.some(e=>!e.label.trim())){m({error:bf(i,`Name is required`)});return}let s=++u.current;m({pending:!0});let c=await(t?r(t.id,o):n(e.id,o,d.subtitle.trim(),l?{overviewText:d.overviewText.split(/\r?\n/).map(e=>e.trim()).filter(Boolean),...e.section?{}:{badges:d.badges}}:{}));if(u.current===s){if(m({pending:!1}),c){m({error:c});return}m({editing:!1,error:``})}}}}function Hv({editor:e,relation:t,locked:n,locale:r}){let i=e=>bf(r,e),a=(0,y.useRef)(null),o=(0,y.useRef)(null);return(0,y.useEffect)(()=>{!e.editing&&e.returnFocus&&a.current?.focus(),e.error&&o.current?.focus()},[e.editing,e.error,e.returnFocus]),e.editing?(0,x.jsxs)(`form`,{"aria-busy":e.pending,className:`card-form`,onSubmit:e.save,onKeyDown:t=>{if(t.nativeEvent.isComposing||t.keyCode===229){t.key===`Enter`&&t.preventDefault();return}t.key===`Escape`&&(t.preventDefault(),t.stopPropagation(),e.cancel())},children:[(0,x.jsxs)(`label`,{children:[i(`Name`),(0,x.jsx)(`input`,{ref:o,autoFocus:!0,required:!0,disabled:e.pending,value:e.label,onChange:t=>e.set({label:t.target.value,error:``}),"aria-invalid":!!e.error})]}),!t&&!e.section&&(0,x.jsxs)(`label`,{children:[i(`Description`),(0,x.jsx)(`textarea`,{disabled:e.pending,value:e.subtitle,onChange:t=>e.set({subtitle:t.target.value,error:``})})]}),!t&&e.overview&&(0,x.jsxs)(`label`,{children:[i(`Overview text`),(0,x.jsx)(`textarea`,{disabled:e.pending,"aria-label":i(`Overview text`),value:e.overviewText,onChange:t=>e.set({overviewText:t.target.value,error:``})})]}),!t&&e.overview&&!e.section&&(0,x.jsxs)(`fieldset`,{disabled:e.pending,children:[(0,x.jsx)(`legend`,{children:i(`Badges`)}),e.badges.map((t,n)=>{let r=t=>e.set({badges:e.badges.map((e,r)=>r===n?{...e,...t}:e)});return(0,x.jsxs)(`div`,{className:`badge-editor`,children:[(0,x.jsxs)(`label`,{children:[i(`Name`),(0,x.jsx)(`input`,{"aria-label":`${i(`Badges`)} ${n+1}`,value:t.label,onChange:e=>{let{source:n,...i}=t;r({...i,source:void 0,label:e.target.value,evidence:`document`})}})]}),(0,x.jsxs)(`label`,{children:[i(`Badge type`),(0,x.jsx)(`select`,{value:t.role,onChange:e=>r({role:e.target.value}),children:[`status`,`version`,`requirement`].map(e=>(0,x.jsx)(`option`,{value:e,children:i({status:`Status`,version:`Version`,requirement:`Requirement`}[e])},e))})]}),(0,x.jsxs)(`label`,{children:[i(`Evidence`),(0,x.jsx)(`select`,{value:t.evidence,onChange:e=>r({evidence:e.target.value}),children:[`source`,`code`,`config`,`schema`,`test`,`document`,`framework`,`inference`].map(e=>(0,x.jsx)(`option`,{value:e,children:i(op[e]??e)},e))})]}),(0,x.jsx)(`button`,{type:`button`,onClick:()=>e.set({badges:e.badges.filter((e,t)=>t!==n)}),children:i(`Remove badge`)})]},n)}),(0,x.jsx)(`button`,{type:`button`,onClick:()=>e.set({badges:[...e.badges,{label:``,role:`status`,evidence:`document`}]}),children:i(`Add badge`)})]}),e.error&&(0,x.jsx)(`p`,{className:`card-error`,role:`alert`,children:e.error}),(0,x.jsxs)(`div`,{className:`card-actions`,children:[(0,x.jsx)(`button`,{type:`button`,onClick:e.cancel,children:i(`Cancel`)}),(0,x.jsx)(`button`,{type:`submit`,disabled:e.pending,children:i(`Save`)})]})]}):(0,x.jsx)(`button`,{ref:a,disabled:n,title:n?i(`Unlock the layout first`):``,onClick:e.begin,children:i(`Edit text`)})}var Uv=292,Wv=232,Gv=14;function Kv({node:e,edge:t,source:n,target:r,others:i=[],canvasRef:a,palette:o,moduleColors:s,locale:c,locked:l,editor:u,graph:d,isFullscreen:f,onDetails:p,onClose:m}){let h=Td(),g=(e,t)=>bf(c,e,t),_=!!t,v=_?(Kh(d).get(t.id)?.label??kh(t,t.diagramType,c))||t.kind:e.label,b=(0,y.useRef)(null),S=(0,y.useRef)(!1),[C,w]=(0,y.useState)(Wv),[,T]=(0,y.useState)(``),[E,D]=(0,y.useState)(!1),O=(0,y.useRef)(!1);(0,y.useEffect)(()=>{S.current=!1},[e?.id,t?.id,f]),(0,y.useEffect)(()=>{if(!E){S.current=!1;return}!O.current||b.current?.offsetHeight!==C||S.current||(S.current=!0,p())},[E,p,f,C]),(0,y.useLayoutEffect)(()=>{D(O.current);let e=b.current?.offsetHeight;e&&e!==C&&w(e)}),(0,y.useLayoutEffect)(()=>{if(!b.current)return;let e=new ResizeObserver(()=>{w(b.current?.offsetHeight??Wv),T(`${a.current?.clientWidth}:${a.current?.clientHeight}`)});return e.observe(b.current),a.current&&e.observe(a.current),()=>e.disconnect()},[]);let k=a.current?.getBoundingClientRect();if(!e||!k?.width)return null;let A=t?.diagramType??e.diagramType??`architecture`,j=(e,t)=>({left:e.x*h.zoom+h.x,top:e.y*h.zoom+h.y,width:t.width*h.zoom,height:t.height*h.zoom}),M=_?e:Jh(e,A),N=j({x:M.x??M.position.x,y:M.y??M.position.y},{width:M.width??M.size.width,height:M.height??M.size.height}),P=nv(a.current,a.current.dataset.navOpen===`true`,a.current.dataset.drawerOpen===`true`),ee=[{side:`right`,x:N.left+N.width+Gv,y:N.top},{side:`left`,x:N.left-Gv-Uv,y:N.top},{side:`below`,x:N.left,y:N.top+N.height+Gv},{side:`above`,x:N.left,y:N.top-Gv-C}],F=e=>e.x>=P.left&&e.x+Uv<=P.right&&e.y>=P.top&&e.y+C<=P.bottom,I=i.filter(t=>t.type===`diagram`&&(!e.id||t.id!==e.id)).map(e=>{let t=Jh({...e.data,position:e.position,size:{width:e.measured?.width??e.style.width,height:e.measured?.height??e.style.height}},A);return j({x:t.x,y:t.y},{width:t.width,height:t.height})});if(A===`sequence`){let e=Kh(d),t=[...e.values()].flatMap(e=>[e.labelBox,...ch(e)]),n=Eh(d);for(let r of d.groups??[]){let i=vh(r,e,c,d.groups??[],n);t.push(...i.guards,...i.bodies??[],...i.heading?[i.heading]:[])}I.push(...t.map(e=>j(e,e)))}let te=e=>I.reduce((t,n)=>t+Math.max(0,Math.min(e.x+Uv,n.left+n.width)-Math.max(e.x,n.left))*Math.max(0,Math.min(e.y+C,n.top+n.height)-Math.max(e.y,n.top)),0),ne=ee.filter(F),L=ne.find(e=>te(e)===0),R=A===`sequence`&&!L;O.current=R;let z=L??ne.sort((e,t)=>te(e)-te(t))[0]??ee[2],B=Math.min(Math.max(z.x,P.left),Math.max(P.left,P.right-Uv)),re=Math.min(Math.max(z.y,P.top),Math.max(P.top,P.bottom-C)),ie=!_&&e.source?sp(e.source):_&&t.site?sp(t.site):null,ae=_?ip(t,r,o,s,n,bh(d).get(t.id)):np(e,o,s).stroke;return(0,x.jsxs)(`aside`,{ref:b,className:`node-card ${_?`relation-card`:``} ${z.side===`left`?`is-flipped`:z.side===`below`?`is-below`:z.side===`above`?`is-above`:``}`,style:{left:B,top:re,width:Uv,visibility:R?`hidden`:void 0},role:`dialog`,"aria-label":v,"data-node-id":_?void 0:e.id,"data-edge-id":_?t.id:void 0,children:[(0,x.jsx)(`button`,{className:`card-close`,onClick:m,"aria-label":g(`Close`),children:(0,x.jsx)(Bv,{name:`close`})}),u.editing?(0,x.jsx)(Hv,{editor:u,relation:_,locked:l,locale:c}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`p`,{className:`card-kicker`,children:[(0,x.jsx)(`span`,{className:`node-dot`,style:{backgroundColor:ae}}),_?`${g(`Edges`)} · ${t.kind}`:`${g(cp[e.kind]??e.kind)}${e.module?` · ${e.module}`:``}`]}),(0,x.jsx)(`h4`,{children:v}),_?(0,x.jsxs)(`p`,{className:`card-subtitle`,children:[n?.label,` → `,r?.label]}):e.subtitle&&(0,x.jsx)(`p`,{className:`card-subtitle`,children:e.subtitle}),_&&t.evidence&&(0,x.jsxs)(`p`,{className:`card-source`,children:[g(`Evidence`),` · `,g(op[t.evidence]??t.evidence)]}),ie&&(0,x.jsxs)(`p`,{className:`card-source`,title:ie,children:[(0,x.jsx)(Bv,{name:`source`}),(0,x.jsx)(`code`,{children:ie})]}),!_&&e.tags?.length>0&&(0,x.jsx)(`div`,{className:`card-tags`,children:e.tags.slice(0,4).map(e=>(0,x.jsx)(`span`,{children:e},e))}),(0,x.jsxs)(`div`,{className:`card-actions`,children:[(0,x.jsx)(Hv,{editor:u,relation:_,locked:l,locale:c}),(0,x.jsxs)(`button`,{className:`card-action`,onClick:p,children:[g(`View details`),(0,x.jsx)(Bv,{name:`arrowRight`})]})]})]})]})}var qv=[`system`,`light`,`dark`],Jv={system:`Follow system`,light:`Light`,dark:`Dark`};function Yv(e,t,n){let[r,i]=(0,y.useState)(e?`still`:``);return e&&!r?i(`in`):!e&&r&&t&&i(``),(0,y.useEffect)(()=>{if(e||!r)return;let t=!0;return Promise.allSettled((n.current?.getAnimations()??[]).map(e=>e.finished)).then(()=>{t&&i(``)}),()=>{t=!1}},[e,r,n]),[r,`${r===`still`?` is-still`:``}${e?``:` is-closing`}`]}function Xv({graph:e,originalGraph:t,graphForSave:n,allDiagrams:r,moduleColors:i,wash:a,setWash:o,onDiagramChange:s,theme:c,appearance:l,setAppearance:u,panels:d,flowControl:f}){let p=G(e=>e.transform[2]),{setCenter:m}=vl(),h=(t,n)=>bf(e.meta.locale,t,n),{diagramType:g,palette:_,reduceMotion:v,hasFlow:b,flowRunning:S,setFlowEnabled:C,inspectedNode:w,inspectedEdge:T,selectedId:E,selectedEdgeId:D,selectionPulse:O,query:k,setQuery:A,normalizedQuery:j,results:M,selectNode:N,selectEdge:P,clearSelectedNode:ee,handleCanvasKeyDown:F,locked:I,setLocked:te,canvasRef:ne,currentGraph:L,acceptedGraph:R,nodes:z,onNodesChange:B,onNodeDragStop:re,onOverviewKeyDown:ie,layoutPending:ae,cancelLayout:oe,updateNodeText:se,updateEdgeText:ce,readGraph:le,focusDiagram:ue,nudgeLayout:de,visibleNodes:fe,visibleEdges:pe,reset:me,exportDiagram:he,saveGraph:ge,exportStatus:_e,layoutProblem:ve,layoutWarnings:ye,focusProblem:be,boardRef:xe,fullscreenButtonRef:Se,isFullscreen:Ce,fullscreenPending:we,fullscreenSupported:Te,toggleFullscreen:Ee,toolbarOpen:De,drawerOpen:Oe,toolbarButtonRef:ke,drawerButtonRef:Ae,searchInputRef:je,inspectorRef:Me,panelRef:Ne,toggleToolbar:Pe,toggleDrawer:Fe,openDetails:Ie}=Iv(e,c,d,i,t,n,f),[Le,Re]=Yv(De,v,Ne),[ze,Be]=Yv(Oe,v,Me),Ve=(0,y.useRef)(null),He=Vv(w,T,se,ce,e.meta.locale,ff(e),oe),{open:Ue,toggle:We,close:Ge}=Lv(),Ke=e.meta.notes??[],[qe,Je]=(0,y.useState)(!0),Ye=Ke.length>0&&qe&&!ze,Xe=Oe||Ye&&!Ce,Ze=(0,y.useRef)(!1),Qe=(0,y.useRef)(null);(0,y.useEffect)(()=>{Ze.current&&Qe.current?.focus({preventScroll:!0})},[qe]);let $e=Rv(ne,z,L,g,v),[et,tt]=(0,y.useState)(!1),[nt,rt]=(0,y.useState)(``),[it,at]=(0,y.useState)(0);(0,y.useEffect)(()=>{(Oe||O===0)&&at(O)},[Oe,O]);let ot=(0,y.useMemo)(()=>{let e=new Map(fe.map(e=>[e.id,e]));return function({id:t,x:n,y:r,width:i,height:a,color:o,strokeColor:s,strokeWidth:c,className:l,selected:u,shapeRendering:d,onClick:f}){let p=e.get(t),m=`react-flow__minimap-node${l?` ${l}`:``}${u?` selected`:``}`;if(p?.type===`boundary`)return(0,x.jsx)(`g`,{className:m,"data-group-id":t,shapeRendering:d,onClick:f?e=>f(e,t):void 0,dangerouslySetInnerHTML:{__html:kp({...p.data,size:{width:i,height:a}},p.data.appearance,n,r)}});if(!p)return(0,x.jsx)(`rect`,{className:m,x:n,y:r,width:i,height:a,rx:`14`,fill:o,stroke:s,strokeWidth:c,shapeRendering:d,onClick:f?e=>f(e,t):void 0});let h=Pg(p.data,g,n,r,i,a,o,s,c);return(0,x.jsx)(`g`,{className:m,"data-node-id":t,shapeRendering:d,onClick:f?e=>f(e,t):void 0,dangerouslySetInnerHTML:{__html:h}})}},[g,fe]);(0,y.useEffect)(()=>{if(!_e)return;rt(h(_e.message));let e=window.setTimeout(()=>rt(``),4500);return()=>window.clearTimeout(e)},[_e]);let st=O>0&&!Oe&&(g!==`sequence`||O!==it)&&!z.some(e=>e.dragging),ct=st?z.find(e=>e.id===E&&e.type===`diagram`):null,lt=st?pe.find(e=>e.id===D):null,ut=lt?L.edges.find(e=>e.id===lt.id):null,dt=lt?{position:lt.data.route.labelPoint,size:{width:0,height:0}}:null,ft=ut?L.nodes.find(e=>e.id===ut.source):null,pt=ut?L.nodes.find(e=>e.id===ut.target):null,mt=T?L.nodes.find(e=>e.id===T.source):null,ht=T?L.nodes.find(e=>e.id===T.target):null,gt=(e,t)=>(0,x.jsxs)(`button`,{onClick:()=>N(e),children:[(0,x.jsxs)(`span`,{children:[(0,x.jsx)(`i`,{children:String(t+1).padStart(2,`0`)}),e.label]}),(0,x.jsx)(`small`,{children:e.subtitle??h(cp[e.kind]??e.kind)})]},e.id),_t=(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`side-head`,children:[(0,x.jsx)(`p`,{className:`panel-title`,children:h(`Details`)}),(0,x.jsx)(`button`,{className:`side-close`,onClick:()=>ee(!0),"aria-label":h(`Close details`),title:h(`Close details`),children:(0,x.jsx)(Bv,{name:`close`})})]}),(0,x.jsx)(`section`,{className:`inspector-card drawer-body`,"data-node-id":w?.id,"data-edge-id":T?.id,children:w?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`node-kicker`,children:[(0,x.jsx)(`span`,{className:`node-dot`,style:{backgroundColor:np(w,_,i).stroke}}),h(w.section?`Section`:cp[w.kind]??w.kind),w.module?` · ${w.module}`:``]}),(0,x.jsx)(`h2`,{children:w.label}),(0,x.jsx)(`p`,{className:`drawer-subtitle`,children:w.subtitle}),w.overviewText?.length>0&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`h3`,{children:h(`Overview text`)}),(0,x.jsx)(`ul`,{children:w.overviewText.map((e,t)=>(0,x.jsx)(`li`,{children:e},t))})]}),w.badges?.length>0&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`h3`,{children:h(`Badges`)}),(0,x.jsx)(`ul`,{children:w.badges.map((e,t)=>(0,x.jsxs)(`li`,{children:[e.label,` · `,h(op[e.evidence]),e.source&&(0,x.jsx)(`code`,{className:`source-path`,children:sp(e.source)})]},t))})]}),w.fields?.length>0&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`h3`,{children:h(`Fields`)}),(0,x.jsx)(`ul`,{children:w.fields.map(e=>(0,x.jsx)(`li`,{children:(0,x.jsxs)(`code`,{children:[e.key,` `,e.name,`: `,e.type,e.nullable===!1?` · NOT NULL`:e.nullable===!0?` · NULL`:``]})},e.name))})]}),w.attributes?.length>0&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`h3`,{children:h(`Attributes`)}),(0,x.jsx)(`ul`,{children:w.attributes.map(e=>(0,x.jsx)(`li`,{children:(0,x.jsx)(`code`,{children:e})},e))})]}),w.methods?.length>0&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`h3`,{children:h(`Methods`)}),(0,x.jsx)(`ul`,{children:w.methods.map(e=>(0,x.jsx)(`li`,{children:(0,x.jsx)(`code`,{children:e})},e))})]}),w.source&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`h3`,{children:[h(`Source`),` · `,h(op[w.source.kind??`source`]??w.source.kind)]}),(0,x.jsx)(`code`,{className:`source-path`,children:sp(w.source)}),w.source.symbol&&(0,x.jsx)(`p`,{className:`symbol`,children:w.source.symbol})]}),w.tags?.length>0&&(0,x.jsx)(`div`,{className:`tags`,children:w.tags.map(e=>(0,x.jsx)(`span`,{children:e},e))})]}):T?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`node-kicker`,children:[(0,x.jsx)(`span`,{className:`node-dot`,style:{backgroundColor:pe.find(e=>e.id===T.id)?.style.stroke??_.edge}}),h(`Edges`),` · `,T.kind]}),(0,x.jsx)(`h2`,{children:(Kh(L).get(T.id)?.label??kh(T,g,e.meta.locale))||T.kind}),(0,x.jsxs)(`p`,{className:`drawer-subtitle`,children:[mt?.label,` → `,ht?.label]}),(0,x.jsxs)(`h3`,{children:[h(`Evidence`),` · `,h(op[T.evidence]??T.evidence)]}),T.site&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`code`,{className:`source-path`,children:sp(T.site)}),T.site.symbol&&(0,x.jsx)(`p`,{className:`symbol`,children:T.site.symbol})]}),T.facts?.length>0&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`h3`,{children:h(`Evidence facts`)}),(0,x.jsx)(`ul`,{children:T.facts.map(e=>(0,x.jsx)(`li`,{children:e},e))})]})]}):(0,x.jsxs)(`div`,{className:`drawer-empty`,children:[(0,x.jsx)(`span`,{className:`empty-icon`,children:(0,x.jsx)(Bv,{name:`fit`})}),(0,x.jsx)(`span`,{children:h(`Start with a node`)}),(0,x.jsx)(`p`,{children:h(`Select a component or a list entry to explore its role, fields, methods and source.`)})]})}),(w||T)&&(0,x.jsx)(`section`,{className:`inspector-card`,children:(0,x.jsx)(`div`,{className:He.editing?``:`card-actions`,children:(0,x.jsx)(Hv,{editor:He,relation:!!T,locked:I,locale:e.meta.locale})})}),w?.facts?.length>0&&(0,x.jsxs)(`section`,{className:`inspector-card inspector-facts`,"data-node-id":w.id,children:[(0,x.jsx)(`h3`,{children:w.source?h(`Evidence facts`):h(`Node notes`)}),(0,x.jsx)(`ul`,{children:w.facts.map(e=>(0,x.jsx)(`li`,{children:e},e))})]})]});return Oe&&(Ve.current=_t),(0,x.jsxs)(`main`,{className:`app-shell`,"data-view-id":uf(e),children:[(0,x.jsxs)(`header`,{className:`toolbar`,children:[(0,x.jsxs)(`div`,{className:`tb-group tb-left`,children:[(0,x.jsx)(`button`,{className:`tb`,ref:ke,onClick:()=>{Pe(),De||$e(E,D,!0,Xe)},"aria-controls":`graph-tools`,"aria-expanded":De,"aria-pressed":De,"aria-label":h(De?`Hide graph navigation`:`Show graph navigation`),title:h(De?`Hide graph navigation`:`Show graph navigation`),children:(0,x.jsx)(Bv,{name:`panel-left`})}),(0,x.jsxs)(`div`,{className:`tb-title`,children:[(0,x.jsx)(`b`,{children:e.meta.title}),(0,x.jsxs)(`span`,{children:[h(gf(e)),` · `,e.meta.sourceRef]})]})]}),(0,x.jsx)(`div`,{className:`tb-group tb-center`,children:(0,x.jsxs)(`div`,{className:`tb-search`,"data-popover-root":`search`,onFocus:()=>tt(!0),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||tt(!1)},onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),e.currentTarget.contains(document.activeElement)&&document.activeElement.blur())},children:[(0,x.jsx)(Bv,{name:`search`}),(0,x.jsx)(`input`,{ref:je,id:`search`,value:k,onChange:e=>A(e.target.value),placeholder:h(`Search nodes`),"aria-label":h(`Search nodes`),autoComplete:`off`}),et&&j&&(0,x.jsxs)(`div`,{className:`popover results`,role:`listbox`,"aria-label":h(`Matches · {count}`,{count:M.length}),onMouseDown:e=>e.preventDefault(),children:[(0,x.jsx)(`p`,{className:`pop-title`,children:h(`Matches · {count}`,{count:M.length})}),M.length>0?M.map((e,t)=>(0,x.jsxs)(`button`,{role:`option`,"aria-selected":`false`,onClick:()=>N(e),children:[(0,x.jsxs)(`span`,{children:[(0,x.jsx)(`i`,{children:String(t+1).padStart(2,`0`)}),e.label]}),(0,x.jsx)(`small`,{children:e.subtitle??h(cp[e.kind]??e.kind)})]},e.id)):(0,x.jsx)(`p`,{className:`pop-empty`,children:h(`No matches. Try a name or responsibility.`)})]})]})}),(0,x.jsxs)(`div`,{className:`tb-group tb-right`,children:[r.length>1&&(0,x.jsxs)(`div`,{className:`menu-anchor`,"data-popover-root":`views`,children:[(0,x.jsxs)(`button`,{id:`view-menu-button`,className:`tb tb-wide`,onClick:()=>We(`views`),"aria-haspopup":`menu`,"aria-expanded":Ue===`views`,title:h(`Diagram types`),children:[(0,x.jsx)(Bv,{name:`views`}),(0,x.jsx)(`span`,{children:h(gf(e))}),(0,x.jsx)(Bv,{name:`chevron`})]}),Ue===`views`&&(0,x.jsx)(`div`,{className:`popover menu is-right`,role:`menu`,"aria-labelledby":`view-menu-button`,children:r.map(t=>{Zm(t);let n=uf(t),i=n===uf(e);return(0,x.jsxs)(`button`,{"data-view-id":n,role:`menuitemradio`,"aria-checked":i,className:i?`is-current`:``,onClick:()=>{s(n,R),Ge()},children:[(0,x.jsx)(`span`,{className:`menu-mark`,children:i?(0,x.jsx)(Bv,{name:`check`}):null}),`${h(gf(t))}${r.filter(e=>hf(e)===hf(t)).length>1?` · ${t.meta.title}`:``}`,(0,x.jsx)(`small`,{children:h(`{count} relations`,{count:t.edges.length})})]},n)})})]}),(0,x.jsx)(`button`,{className:`tb tb-wash`,role:`switch`,"aria-checked":a,onClick:()=>o(e=>!e),title:h(`Card wash`),"aria-label":h(`Card wash`),children:(0,x.jsx)(Bv,{name:`wash`})}),(0,x.jsxs)(`div`,{className:`menu-anchor`,"data-popover-root":`more`,children:[(0,x.jsx)(`button`,{id:`more-menu-button`,className:`tb`,onClick:()=>We(`more`),"aria-haspopup":`menu`,"aria-expanded":Ue===`more`,title:h(`More`),"aria-label":h(`More`),children:(0,x.jsx)(Bv,{name:`more`})}),Ue===`more`&&(0,x.jsxs)(`div`,{className:`popover menu is-right`,role:`menu`,"aria-labelledby":`more-menu-button`,children:[(0,x.jsxs)(`button`,{role:`menuitem`,disabled:ae,onClick:()=>{he(`svg`),Ge()},children:[(0,x.jsx)(`span`,{className:`menu-mark`,children:(0,x.jsx)(Bv,{name:`download`})}),h(`Export SVG`)]}),(0,x.jsxs)(`button`,{role:`menuitem`,disabled:ae,onClick:()=>{he(`png`),Ge()},children:[(0,x.jsx)(`span`,{className:`menu-mark`,children:(0,x.jsx)(Bv,{name:`download`})}),h(`Export PNG`)]}),(0,x.jsxs)(`button`,{role:`menuitem`,disabled:ae,onClick:()=>{ge(),Ge()},children:[(0,x.jsx)(`span`,{className:`menu-mark`,children:(0,x.jsx)(Bv,{name:`download`})}),h(`Save changes`)]}),(0,x.jsx)(`div`,{className:`menu-sep`}),(0,x.jsxs)(`button`,{role:`menuitem`,onClick:()=>{me(),Ge()},title:h(`Restore the original layout and view, and clear search and selection.`),children:[(0,x.jsx)(`span`,{className:`menu-mark`,children:(0,x.jsx)(Bv,{name:`reset`})}),h(`Reset`)]}),(0,x.jsxs)(`div`,{className:`menu-row`,children:[(0,x.jsxs)(`span`,{className:`menu-lead`,children:[(0,x.jsx)(`span`,{className:`menu-mark`,children:(0,x.jsx)(Bv,{name:I?`lock`:`unlock`})}),h(`Locked`)]}),(0,x.jsx)(`button`,{className:`switch`,role:`switch`,"aria-checked":I,"aria-label":h(I?`Locked`:`Draggable`),onClick:()=>te(e=>!e),children:(0,x.jsx)(`i`,{})})]}),(0,x.jsxs)(`button`,{role:`menuitem`,"aria-disabled":I,title:h(I?`Unlock the layout first`:E?`Space the selected node and its direct neighbors`:`Space all nodes`),onClick:()=>{de(),Ge()},children:[(0,x.jsx)(`span`,{className:`menu-mark`,children:(0,x.jsx)(Bv,{name:`spacing`})}),h(`Arrange`)]}),(0,x.jsx)(`div`,{className:`menu-sep`}),(0,x.jsxs)(`div`,{className:`menu-row menu-row-stack`,children:[(0,x.jsxs)(`span`,{className:`menu-lead`,children:[(0,x.jsx)(`span`,{className:`menu-mark`,children:(0,x.jsx)(Bv,{name:c===`light`?`sun`:`moon`})}),h(`Appearance`)]}),(0,x.jsxs)(`div`,{className:`seg`,role:`radiogroup`,"aria-label":h(`Appearance`),style:{"--seg-n":qv.length},children:[(0,x.jsx)(`span`,{className:`seg-knob`,"aria-hidden":`true`,style:{transform:`translateX(${qv.indexOf(l)*100}%)`}}),qv.map(e=>(0,x.jsx)(`button`,{role:`radio`,"aria-checked":l===e,onClick:()=>u(e),children:h(Jv[e])},e))]})]})]})]}),(0,x.jsx)(`button`,{className:`tb`,ref:Ae,onClick:()=>{Fe(),Oe||$e(E,D,De,!0)},"aria-controls":`node-inspector`,"aria-expanded":Oe,"aria-pressed":Oe,title:h(Oe?`Hide details`:`Show details`),"aria-label":h(Oe?`Hide details`:`Show details`),children:(0,x.jsx)(Bv,{name:`panel-right`})})]})]}),(0,x.jsxs)(`section`,{className:`workspace ${De?`nav-open`:``} ${Oe?`drawer-open`:``}`,children:[Le&&(0,x.jsxs)(`aside`,{id:`graph-tools`,ref:Ne,tabIndex:-1,className:`sidebar nav${Re}`,"aria-label":h(`Graph navigation`),children:[(0,x.jsxs)(`div`,{className:`side-head`,children:[(0,x.jsx)(`p`,{className:`panel-title`,children:h(`Graph navigation`)}),(0,x.jsx)(`button`,{className:`side-close`,onClick:Pe,"aria-label":h(`Close`),title:h(`Close`),children:(0,x.jsx)(Bv,{name:`close`})})]}),(0,x.jsxs)(`div`,{className:`project-summary`,children:[(0,x.jsx)(`p`,{className:`panel-title`,children:h(`Overview`)}),e.meta.scope&&(0,x.jsx)(`p`,{children:e.meta.scope}),(0,x.jsxs)(`div`,{className:`stat-grid`,children:[(0,x.jsxs)(`span`,{children:[(0,x.jsx)(`strong`,{children:e.nodes.length}),h(`Nodes`)]}),(0,x.jsxs)(`span`,{children:[(0,x.jsx)(`strong`,{children:e.edges.length}),h(`Edges`)]}),(0,x.jsxs)(`span`,{children:[(0,x.jsx)(`strong`,{children:e.groups?.length??0}),h(`Groups`)]})]})]}),(0,x.jsx)(`p`,{className:`result-heading`,children:h(`Nodes · {count}`,{count:e.nodes.length})}),(0,x.jsx)(`div`,{className:`search-results`,children:L.nodes.map(gt)})]}),(0,x.jsxs)(`figure`,{ref:xe,className:`board diagram-board`,children:[(0,x.jsxs)(`svg`,{className:`relation-defs`,width:`0`,height:`0`,"aria-hidden":`true`,children:[(0,x.jsx)(`style`,{children:Kp(_,`:is(.node-visual,.fragment-visual,.fragment-text) `)}),(0,x.jsxs)(`defs`,{children:[(0,x.jsx)(`filter`,{id:`node-shadow`,x:`-20%`,y:`-20%`,width:`140%`,height:`150%`,children:(0,x.jsx)(`feDropShadow`,{dx:`0`,dy:`5`,stdDeviation:`7`,floodColor:_.ink,floodOpacity:`.045`})}),(0,x.jsx)(`marker`,{id:`codegraph-arrow-open`,viewBox:`0 0 10 10`,refX:`9`,refY:`5`,markerWidth:`7`,markerHeight:`7`,orient:`auto`,children:(0,x.jsx)(`path`,{d:`M1 1L9 5L1 9`,fill:`none`,stroke:`context-stroke`,strokeWidth:`1.5`})}),(0,x.jsx)(`marker`,{id:`codegraph-triangle`,viewBox:`0 0 12 12`,refX:`11`,refY:`6`,markerWidth:`9`,markerHeight:`9`,orient:`auto`,children:(0,x.jsx)(`path`,{d:`M1 1L11 6L1 11Z`,fill:`var(--canvas)`,stroke:`context-stroke`})}),(0,x.jsx)(`marker`,{id:`codegraph-diamond-filled`,viewBox:`0 0 14 10`,refX:`1`,refY:`5`,markerWidth:`12`,markerHeight:`10`,orient:`auto`,children:(0,x.jsx)(`path`,{d:`M1 5L7 1L13 5L7 9Z`,fill:`context-stroke`})}),(0,x.jsx)(`marker`,{id:`codegraph-diamond-open`,viewBox:`0 0 14 10`,refX:`1`,refY:`5`,markerWidth:`12`,markerHeight:`10`,orient:`auto`,children:(0,x.jsx)(`path`,{d:`M1 5L7 1L13 5L7 9Z`,fill:`var(--canvas)`,stroke:`context-stroke`})})]})]}),(0,x.jsxs)(`div`,{ref:ne,"aria-busy":ae,className:`canvas`,style:{"--sequence-flow-unit":`${Math.max(1,.6/p)}px`},"data-nav-open":De,"data-drawer-open":Xe,onKeyDownCapture:e=>{ie(e),e.defaultPrevented||F(e)},"aria-label":h(`Interactive {type}`,{type:h(gf(e))}),children:[(0,x.jsxs)(Sd,{nodes:fe,edges:pe,nodeTypes:Hg,edgeTypes:Ug,onNodesChange:B,onNodeDragStop:re,onPaneClick:()=>{ee(),Ge()},onNodeClick:(e,t)=>{t.type===`diagram`&&N(t,!1)},onEdgeClick:(e,t)=>P(t.data),onNodeDragStart:(e,t)=>{t.type===`diagram`&&N(t,!1)},onInit:()=>requestAnimationFrame(()=>le(L,0)),nodesDraggable:!I&&!ae,nodesConnectable:!1,deleteKeyCode:null,elementsSelectable:!0,minZoom:.08,maxZoom:2,colorMode:c,ariaLabelConfig:{"controls.zoomIn.ariaLabel":h(`Zoom in`),"controls.zoomOut.ariaLabel":h(`Zoom out`),"minimap.ariaLabel":h(`Minimap`)},proOptions:{hideAttribution:!0},children:[(0,x.jsxs)(Hd,{position:`bottom-left`,showInteractive:!1,showFitView:!1,children:[(0,x.jsx)(zd,{className:`react-flow__controls-fitview`,onClick:ue,title:h(`Fit canvas`),"aria-label":h(`Fit canvas`),children:(0,x.jsx)(Bv,{name:`fit`})}),(0,x.jsx)(zd,{className:`react-flow__controls-fullscreen`,ref:Se,onClick:Ee,"aria-pressed":Ce,"aria-busy":we,"aria-disabled":we||!Te&&!Ce,"aria-label":h(Ce?`Exit fullscreen`:`Enter fullscreen`),title:h(!Te&&!Ce?`Fullscreen is not available in this browser or page`:Ce?`Exit fullscreen (Esc)`:`Enter fullscreen`),children:(0,x.jsx)(Bv,{name:Ce?`collapse`:`expand`})})]}),(0,x.jsx)(of,{pannable:!0,zoomable:!0,onClick:(e,t)=>m(t.x,t.y,{zoom:p}),nodeComponent:ot,nodeStrokeColor:e=>e.type===`boundary`?`none`:np(e.data,_,i).stroke,nodeStrokeWidth:2,nodeColor:e=>e.type===`boundary`?e.data.appearance.fill:np(e.data,_,i).fill,maskColor:_.mask})]}),(0,x.jsxs)(`div`,{className:`float legend-anchor`,"data-popover-root":`legend`,children:[(0,x.jsxs)(`button`,{className:`float-btn`,onClick:()=>We(`legend`),"aria-expanded":Ue===`legend`,"aria-haspopup":`true`,title:h(`Legend`),children:[(0,x.jsx)(Bv,{name:`legend`}),(0,x.jsx)(`span`,{children:h(`Legend`)})]}),Ue===`legend`&&(0,x.jsxs)(`div`,{className:`popover legend-pop`,children:[(0,x.jsx)(`p`,{className:`pop-title`,children:h(`Legend`)}),(0,x.jsx)(`div`,{className:`legend`,role:`group`,"aria-label":h(`Legend`),children:qg(L,_,i).map(e=>(0,x.jsxs)(`span`,{"data-legend-role":e.role,"data-legend-shape":e.shape,children:[e.shape===`ramp`?(0,x.jsx)(`i`,{className:`legend-ramp`,style:{backgroundColor:e.fill,borderColor:e.stroke,backgroundImage:Kg(e.ramp)}}):e.shape===`self`?(0,x.jsxs)(`svg`,{style:{color:e.stroke},width:`28`,height:`14`,viewBox:`0 0 28 14`,"aria-hidden":`true`,children:[(0,x.jsx)(`path`,{d:`M5 3C22 0 22 13 6 11`,fill:`none`,stroke:`currentColor`}),(0,x.jsx)(`path`,{d:`M10 8L5.5 11L10.5 13.4`,fill:`none`,stroke:`currentColor`})]}):[`sync`,`async`,`return`].includes(e.shape)?(0,x.jsxs)(`svg`,{style:{color:e.stroke},width:`28`,height:`14`,viewBox:`0 0 28 14`,"aria-hidden":`true`,children:[(0,x.jsx)(`path`,{d:`M1 7H25`,stroke:`currentColor`,strokeDasharray:e.shape===`return`?`4 3`:void 0}),(0,x.jsx)(`path`,{d:e.shape===`sync`?`M19 2L26 7L19 12Z`:`M19 2L26 7L19 12`,fill:e.shape===`sync`?`currentColor`:`none`,stroke:`currentColor`})]}):(0,x.jsx)(`i`,{className:`legend-${e.shape}`,style:{backgroundColor:e.fill??`transparent`,borderColor:e.stroke,color:e.stroke,"--legend-body":_.surface2}}),e.label]},e.id))}),b&&(0,x.jsxs)(`div`,{className:`pop-opt`,children:[(0,x.jsx)(`span`,{children:h(`Edge animation`)}),(0,x.jsx)(`button`,{className:`switch`,role:`switch`,"aria-checked":S,disabled:!!v,onClick:()=>C(e=>!e),"aria-label":h(`Edge animation`),children:(0,x.jsx)(`i`,{})})]}),v&&(0,x.jsx)(`p`,{className:`pop-note`,children:h(`System reduced-motion preference is respected`)})]})]}),Ke.length>0&&!ze&&(Ye?(0,x.jsxs)(`section`,{className:`float notes-anchor notes-card`,"aria-label":h(`Key points`),children:[(0,x.jsxs)(`div`,{className:`side-head`,children:[(0,x.jsxs)(`p`,{className:`panel-title`,children:[h(`Key points`),` · `,Ke.length]}),(0,x.jsx)(`button`,{className:`side-close`,ref:Qe,onClick:()=>{Ze.current=!0,Je(!1)},"aria-label":h(`Hide key points`),title:h(`Hide key points`),children:(0,x.jsx)(Bv,{name:`close`})})]}),(0,x.jsx)(`ul`,{children:Ke.map((e,t)=>(0,x.jsx)(`li`,{children:e},t))})]}):(0,x.jsxs)(`button`,{className:`float notes-anchor float-btn`,ref:Qe,"aria-expanded":`false`,onClick:()=>{Ze.current=!0,Je(!0),Ce||$e(E,D,De,!0)},"aria-label":h(`Show key points`),title:h(`Show key points`),children:[(0,x.jsx)(Bv,{name:`notes`}),(0,x.jsxs)(`span`,{children:[h(`Key points`),` · `,Ke.length]})]})),ct&&(0,x.jsx)(Kv,{node:{...ct.data,position:ct.position},others:z,canvasRef:ne,palette:_,moduleColors:i,locale:e.meta.locale,locked:I,editor:He,graph:L,isFullscreen:Ce,onDetails:async()=>{Ce&&!await Ee()||(Ie(),$e(E,D,De,!0))},onClose:()=>ee()}),ut&&(0,x.jsx)(Kv,{node:dt,edge:{...ut,diagramType:g},source:ft,target:pt,others:z,canvasRef:ne,palette:_,moduleColors:i,locale:e.meta.locale,locked:I,editor:He,graph:L,isFullscreen:Ce,onDetails:async()=>{Ce&&!await Ee()||(Ie(),$e(E,D,De,!0))},onClose:()=>ee()}),!ve&&ye.length>0&&(0,x.jsxs)(`details`,{className:`layout-problems`,children:[(0,x.jsx)(`summary`,{children:h(`Layout suggestions`)}),(0,x.jsx)(`p`,{children:h(`Arrange this view to improve connector clearance and spacing. Existing positions are preserved until then.`)}),(0,x.jsx)(`ul`,{children:[...new Set(ye.flatMap(e=>e.elementIds).filter(e=>L.edges.some(t=>t.id===e)))].map(e=>(0,x.jsx)(`li`,{children:(0,x.jsx)(`button`,{onClick:()=>be(ye.find(t=>t.elementIds.includes(e))),children:L.edges.find(t=>t.id===e)?.label||h(`Relationship`)})},e))})]}),ve&&(0,x.jsxs)(`details`,{className:`layout-problems`,children:[(0,x.jsx)(`summary`,{children:h(`Layout needs adjustment; JSON drafts can still be saved`)}),(0,x.jsx)(`ul`,{children:ve.diagnostics.filter(e=>e.severity===`error`).map((e,t)=>(0,x.jsx)(`li`,{children:(0,x.jsxs)(`button`,{onClick:()=>be(e),children:[e.elementIds.join(`, `),` · `,e.ruleId]})},t))}),(0,x.jsx)(`pre`,{children:ve.message})]}),(0,x.jsx)(`div`,{className:`toast ${nt?`is-on`:``}`,role:`status`,"aria-live":`polite`,children:nt})]})]}),ze&&(0,x.jsx)(`aside`,{id:`node-inspector`,ref:Me,tabIndex:-1,className:`sidebar drawer inspector${w||T?` is-open`:``}${Be}`,"aria-label":h(`Details`),children:Ve.current})]})]})}function Zv(){let[e,t]=(0,y.useState)(!1),[n,r]=(0,y.useState)(!1),i=(0,y.useRef)(null),a=(0,y.useRef)(null),o=(0,y.useRef)(null),s=(0,y.useRef)(null),c=(0,y.useRef)(null),l=(0,y.useRef)(null),u=(0,y.useCallback)(()=>cancelAnimationFrame(l.current),[]),d=(0,y.useCallback)(e=>{u();let t=document.activeElement;l.current=requestAnimationFrame(()=>{(document.activeElement===t||!t?.isConnected)&&e.current?.focus({preventScroll:!0})})},[u]);return(0,y.useEffect)(()=>u,[u]),{toolbarOpen:e,drawerOpen:n,toolbarButtonRef:i,drawerButtonRef:a,searchInputRef:o,inspectorRef:s,panelRef:c,openDetails:(0,y.useCallback)(()=>{r(!0),d(s)},[d]),closeDetails:(0,y.useCallback)((e=!1)=>{u(),r(!1),e&&d(a)},[u,d]),closeNav:(0,y.useCallback)((e=!1)=>{u(),t(!1),e&&d(i)},[u,d]),toggleToolbar:()=>{u(),t(!e),e||d(c)},toggleDrawer:()=>{u(),r(!n),n||d(s)}}}var Qv=JSON.parse(document.querySelector(`#graph-data`).textContent),$v=[...Array.isArray(Qv.diagrams)?Qv.diagrams:[Qv]].sort(_f),ey=window.matchMedia(`(prefers-color-scheme: dark)`);function ty(){let[e,t]=(0,y.useState)(`system`),[n,r]=(0,y.useState)(ey.matches);return(0,y.useEffect)(()=>{let e=e=>r(e.matches);return ey.addEventListener(`change`,e),()=>ey.removeEventListener(`change`,e)},[]),{preference:e,setPreference:t,theme:e===`system`?n?`dark`:`light`:e}}function ny(){let[e,t]=(0,y.useState)(uf($v[0])),n=(0,y.useRef)(new Map),r=(0,y.useState)(!0),{preference:i,setPreference:a,theme:o}=ty(),s=Zv(),c=$v.find(t=>uf(t)===e)??$v[0],l=n.current.get(e)??c,u=(r,i)=>{n.current.set(e,i),t(r)},d=e=>dv(Qv,n.current,e),[f,p]=(0,y.useState)(!0),m=(0,y.useMemo)(()=>{let e=Zf($v,Wf[o]);return f?e:$f(e,Wf[o])},[o,f]);return(0,y.useEffect)(()=>{document.documentElement.lang=l.meta.locale??`zh-CN`},[l.meta.locale]),(0,y.useEffect)(()=>{document.title=`${l.meta.title} · QGraphFlow`},[l.meta.title]),(0,y.useEffect)(()=>{document.documentElement.dataset.theme=o,document.documentElement.dataset.appearance=i;for(let[e,t]of Object.entries(ap(Wf[o])))document.documentElement.style.setProperty(e,t)},[o,i]),(0,x.jsx)(vd,{children:(0,x.jsx)(Xv,{flowControl:r,graph:l,originalGraph:c,graphForSave:d,allDiagrams:$v,moduleColors:m,wash:f,setWash:p,onDiagramChange:u,theme:o,appearance:i,setAppearance:a,panels:s},e)})}(0,b.createRoot)(document.getElementById(`root`)).render((0,x.jsx)(ny,{}));</script>
286
+ <style rel="stylesheet" crossorigin>.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;font-synthesis:none;--bg:#fcfcfd;--panel:#f9f9fb;--canvas:#fcfcfd;--ink:#1c2024;--muted:#60646c;--line:#d9d9e0;--accent:#5753c6;--accent-soft:#f8f8ff;--warm:#c44b00;--font-body:16px;--font-small:14px;--edge-line-height:24px;--label:var(--ink);--label-2:color-mix(in srgb, var(--ink) 62%, transparent);--label-3:color-mix(in srgb, var(--ink) 34%, transparent);--label-4:color-mix(in srgb, var(--ink) 18%, transparent);--sep:color-mix(in srgb, var(--ink) 12%, transparent);--fill:color-mix(in srgb, var(--ink) 6%, transparent);--fill-2:color-mix(in srgb, var(--ink) 10%, transparent);--fill-3:color-mix(in srgb, var(--ink) 15%, transparent);--focus:color-mix(in srgb, var(--accent) 50%, transparent);--material-thick:color-mix(in srgb, var(--bg) 92%, transparent);--material:color-mix(in srgb, var(--bg) 86%, transparent);--material-thin:color-mix(in srgb, var(--bg) 74%, transparent);--blur:blur(24px) saturate(180%);--blur-thin:blur(18px) saturate(160%);--r-control:6px;--r-field:8px;--r-pop:10px;--r-card:12px;--shadow-1:0 1px 2px #1c1b1a0f, 0 4px 14px #1c1b1a14;--shadow-2:0 2px 6px #1c1b1a12, 0 16px 40px #1c1b1a26;--ease:cubic-bezier(.32, .72, 0, 1);--fast:.14s;--base:.3s;--tb-h:52px;--side-w:304px;--gutter:12px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Segoe UI,Microsoft YaHei,system-ui,sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--material-thick:color-mix(in srgb, var(--panel) 92%, transparent);--material:color-mix(in srgb, var(--panel) 86%, transparent);--material-thin:color-mix(in srgb, var(--panel) 74%, transparent);--shadow-1:0 1px 2px #00000059, 0 4px 14px #0006;--shadow-2:0 2px 6px #0006, 0 18px 44px #0000008c}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{min-width:320px;color:var(--label);background:var(--bg);font-size:13px}button,input,select{font:inherit}button{color:inherit}button:disabled{cursor:not-allowed}:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.ic{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:17px;height:17px}.app-shell{width:100%;height:100%;position:relative}.workspace{position:absolute;inset:0}.toolbar{z-index:30;height:var(--tb-h);background:var(--material);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:0 .5px 0 var(--sep);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;padding:0 10px;display:grid;position:absolute;top:0;left:0;right:0}.tb-group{align-items:center;gap:2px;min-width:0;display:flex}.tb-right{justify-content:flex-end}.tb{border-radius:var(--r-control);height:30px;color:var(--label-2);cursor:pointer;white-space:nowrap;transition:background var(--fast) var(--ease), color var(--fast) var(--ease), transform .1s ease-out;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;padding:0 8px;display:inline-flex}.tb:hover{color:var(--label);background:var(--fill)}.tb:active{background:var(--fill-2);transform:scale(.96)}.tb[aria-expanded=true],.tb[aria-pressed=true],.tb[role=switch][aria-checked=true]{color:var(--label);background:var(--fill-2)}.tb.tb-wash[role=switch][aria-checked=true]{color:#0090ff}.tb-wash[aria-checked=true] .ic{fill:currentColor}.tb[aria-disabled=true]{opacity:.4}.tb-wide{padding-inline:9px;font-size:13px}.tb-wide .ic:last-child{width:12px;height:12px;color:var(--label-3)}.tb-title{min-width:0;padding-left:8px;display:grid}.tb-title b{letter-spacing:-.005em;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.tb-title span{color:var(--label-2);letter-spacing:.005em;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.4;overflow:hidden}.tb-search{border-radius:var(--r-field);background:var(--fill);width:min(340px,34vw);height:30px;color:var(--label-2);transition:background var(--fast) var(--ease), box-shadow var(--fast) var(--ease);align-items:center;gap:7px;padding:0 9px;display:flex;position:relative}.tb-search .ic{width:15px;height:15px;color:var(--label-3)}.tb-search:focus-within{background:var(--canvas);box-shadow:0 0 0 3px var(--focus)}.tb-search input{width:100%;min-width:0;height:100%;color:var(--label);background:0 0;border:0;outline:0;font-size:13px}.tb-search input::placeholder{color:var(--label-3)}.menu-anchor{position:relative}.popover{z-index:40;border-radius:var(--r-pop);background:var(--material-thick);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:0 0 0 .5px var(--sep), var(--shadow-2);transform-origin:0 0;animation:pop-in .18s var(--ease);padding:5px;position:absolute}.menu{min-width:224px;top:calc(100% + 6px);left:0}.menu.is-right{transform-origin:100% 0;left:auto;right:0}.menu>button,.results button{border-radius:var(--r-control);width:100%;min-width:0;color:var(--label);cursor:pointer;text-align:left;transition:background var(--fast) var(--ease);background:0 0;border:0;align-items:center;gap:9px;padding:6px 8px;font-size:13px;display:flex}.menu>button:hover,.results button:hover{background:var(--fill)}.menu>button:active,.results button:active{background:var(--fill-2)}.menu>button[aria-disabled=true]{color:var(--label-3)}.menu-mark{width:16px;color:var(--label-2);place-items:center;display:grid}.menu-mark .ic{width:15px;height:15px}.menu>button.is-current{color:var(--accent);font-weight:600}.menu>button small{color:var(--label-3);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.menu-sep{background:var(--sep);height:.5px;margin:5px 6px}.menu-row{color:var(--label);justify-content:space-between;align-items:center;gap:12px;padding:6px 8px;font-size:13px;display:flex}.menu-row .menu-lead{white-space:nowrap;align-items:center;gap:9px;min-width:0;display:flex}.menu-row-stack{flex-direction:column;align-items:stretch;gap:7px}.results{top:calc(100% + 6px);left:0;right:0}.results button{gap:1px;display:grid}.results button span{text-overflow:ellipsis;white-space:nowrap;align-items:baseline;gap:8px;display:flex;overflow:hidden}.results button span i{min-width:17px;color:var(--label-3);font-variant-numeric:tabular-nums;flex:none;font-size:11px;font-style:normal}.results button small{color:var(--label-2);text-overflow:ellipsis;white-space:nowrap;padding-left:25px;font-size:11px;overflow:hidden}.pop-title{color:var(--label-2);letter-spacing:.005em;margin:4px 8px 6px;font-size:11px;font-weight:600}.pop-empty,.pop-note{color:var(--label-2);margin:4px 8px 6px;font-size:12px;line-height:1.55}.pop-opt{border-top:.5px solid var(--sep);color:var(--label);justify-content:space-between;align-items:center;gap:12px;margin-top:4px;padding:7px 8px 3px;font-size:13px;display:flex}@keyframes pop-in{0%{opacity:0;transform:scale(.94)translateY(-4px)}}.switch{background:var(--fill-3);cursor:pointer;width:32px;height:20px;transition:background var(--base) var(--ease);border:0;border-radius:99px;flex:none;padding:2px;display:block}.switch i{width:16px;height:16px;transition:transform var(--base) var(--ease);background:#fff;border-radius:50%;display:block;box-shadow:0 1px 2px #0000002e,0 0 0 .5px #0000000f}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true] i{transform:translate(12px)}.switch:disabled{opacity:.45;cursor:not-allowed}.seg{border-radius:var(--r-field);background:var(--fill);grid-auto-columns:1fr;grid-auto-flow:column;padding:2px;display:grid;position:relative}.seg-knob{width:calc((100% - 4px) / var(--seg-n,3));border-radius:var(--r-control);background:var(--canvas);transition:transform var(--base) var(--ease);position:absolute;top:2px;bottom:2px;left:2px;box-shadow:0 1px 2px #0000001a,0 0 0 .5px #0000000a}:root[data-theme=dark] .seg-knob{background:var(--fill-3)}.seg button{z-index:1;border-radius:var(--r-control);height:24px;color:var(--label-2);cursor:pointer;white-space:nowrap;transition:color var(--fast) var(--ease);background:0 0;border:0;padding:0 8px;font-size:12px;position:relative}.seg button[aria-checked=true]{color:var(--label);font-weight:600}.seg button:active{color:var(--label-3)}.board{min-width:0;min-height:0}.diagram-board{background:var(--canvas);margin:0;position:absolute;inset:0}.diagram-board:fullscreen{width:100%;height:100%;box-shadow:none;border:0;border-radius:0}.diagram-board:fullscreen :is(.legend-anchor,.notes-anchor){top:var(--gutter)}.relation-defs{pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}.canvas{background:var(--canvas);width:100%;height:100%;position:relative;overflow:hidden}.sidebar{top:calc(var(--tb-h) + var(--gutter));bottom:var(--gutter);z-index:20;width:min(var(--side-w), calc(100% - 2 * var(--gutter)));border-radius:var(--r-card);background:var(--material-thick);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:0 0 0 .5px var(--sep), var(--shadow-2);scrollbar-width:thin;scrollbar-color:var(--label-4) transparent;transition:transform var(--base) var(--ease);flex-direction:column;padding:14px;display:flex;position:absolute;overflow:hidden auto}.sidebar:focus-visible{outline-offset:-3px}.nav{left:var(--gutter);--off:-115%}.inspector{right:var(--gutter);--off:115%}.sidebar.is-closing{transform:translateX(var(--off))}@media (prefers-reduced-motion:no-preference){@starting-style{.sidebar:not(.is-still){transform:translateX(var(--off))}}}.side-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.side-head .panel-title{margin:0}.side-close{border-radius:var(--r-control);width:24px;height:24px;color:var(--label-2);cursor:pointer;transition:background var(--fast) var(--ease), transform .1s ease-out;background:0 0;border:0;flex:none;place-items:center;display:grid}.side-close .ic{width:14px;height:14px}.side-close:hover{color:var(--label);background:var(--fill)}.side-close:active{transform:scale(.94)}.panel-title{color:var(--label-2);letter-spacing:.005em;margin:0;font-size:11px;font-weight:600}.project-summary{border-bottom:.5px solid var(--sep);margin-bottom:10px;padding-bottom:12px}.project-summary p{color:var(--label-2);overflow-wrap:anywhere;margin:0;font-size:12px;line-height:1.55}.project-summary .panel-title{margin-bottom:6px}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.stat-grid>*{min-width:0}.stat-grid strong{color:var(--label);letter-spacing:-.015em;font-variant-numeric:tabular-nums;font-size:20px;font-weight:600;line-height:1.1;display:block}.stat-grid span{color:var(--label-2);margin-top:3px;font-size:11px;display:block}.result-heading{color:var(--label-2);letter-spacing:.005em;font-variant-numeric:tabular-nums;margin:0 0 4px;font-size:11px;font-weight:600}.search-results{gap:1px;min-width:0;display:grid}.search-results button{border-radius:var(--r-control);min-width:0;color:var(--label);cursor:pointer;text-align:left;transition:background var(--fast) var(--ease);background:0 0;border:0;gap:1px;padding:6px 8px;font-size:13px;display:grid}.search-results button:hover{background:var(--fill)}.search-results button:active{background:var(--fill-2)}.search-results button span{text-overflow:ellipsis;white-space:nowrap;align-items:baseline;gap:8px;display:flex;overflow:hidden}.search-results button span i{min-width:17px;color:var(--label-3);font-variant-numeric:tabular-nums;flex:none;font-size:11px;font-style:normal}.search-results button small{color:var(--label-2);text-overflow:ellipsis;white-space:nowrap;padding-left:25px;font-size:11px;overflow:hidden}.float{z-index:6;transition:left var(--base) var(--ease);position:absolute}.legend-anchor{top:calc(var(--tb-h) + var(--gutter));left:var(--gutter)}.notes-anchor{top:calc(var(--tb-h) + var(--gutter));right:var(--gutter)}.notes-card{width:min(var(--side-w), calc(100% - 2 * var(--gutter)));max-height:calc(100% - var(--tb-h) - 3 * var(--gutter) - 78px);border-radius:var(--r-card);background:var(--material-thick);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:0 0 0 .5px var(--sep), var(--shadow-2);scrollbar-width:thin;scrollbar-color:var(--label-4) transparent;overflow-wrap:anywhere;padding:12px 14px;overflow:hidden auto}.notes-card .side-head{margin-bottom:6px}.notes-card ul{color:var(--label-2);margin:0;padding-left:16px;font-size:13px;line-height:1.6}.notes-card li+li{margin-top:5px}.notes-card li::marker{color:var(--accent)}.workspace.nav-open .legend-anchor{left:calc(var(--side-w) + 2 * var(--gutter))}.float-btn{border-radius:var(--r-field);height:28px;color:var(--label);background:var(--material-thin);-webkit-backdrop-filter:var(--blur-thin);backdrop-filter:var(--blur-thin);box-shadow:0 0 0 .5px var(--sep), var(--shadow-1);cursor:pointer;transition:background var(--fast) var(--ease), transform .1s ease-out;border:0;align-items:center;gap:6px;padding:0 9px;font-size:12px;display:inline-flex}.float-btn .ic{width:14px;height:14px;color:var(--label-2)}.float-btn:hover{background:var(--material)}.float-btn:active{transform:scale(.96)}.float-btn[aria-expanded=true]{background:var(--material-thick)}.legend-pop{width:min(360px, calc(100vw - 2 * var(--gutter) - 24px));max-height:min(420px,100vh - 200px);top:calc(100% + 6px);left:0;overflow:hidden auto}.legend{color:var(--label-2);flex-wrap:wrap;gap:5px 14px;margin:2px 8px 6px;font-size:12px;line-height:1.6;display:flex}.legend span{overflow-wrap:anywhere;min-width:0;max-width:100%;color:var(--label-2);align-items:center;gap:8px;font-size:12px;display:flex}.toast{z-index:12;opacity:0;border-radius:var(--r-pop);background:var(--material-thick);max-width:calc(100% - 32px);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:0 0 0 .5px var(--sep), var(--shadow-2);pointer-events:none;transition:opacity .18s, transform .26s var(--ease);padding:8px 14px;font-size:12px;line-height:1.5;position:absolute;bottom:16px;left:50%;transform:translate(-50%,12px)}.toast.is-on{opacity:1;transform:translate(-50%)}.node-card{max-height:calc(100% - var(--tb-h) - 28px);overflow-wrap:anywhere;z-index:8;border-radius:var(--r-card);background:var(--material-thick);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:0 0 0 .5px var(--sep), var(--shadow-2);transform-origin:0;animation:card-in .2s var(--ease);padding:14px;position:absolute;overflow-y:auto}.node-card.is-flipped{transform-origin:100%}.node-card.is-below{transform-origin:top}.node-card.is-above{transform-origin:bottom}@keyframes card-in{0%{opacity:0;transform:scale(.94)}}.card-close{border-radius:var(--r-control);width:24px;height:24px;color:var(--label-2);cursor:pointer;transition:background var(--fast) var(--ease), transform .1s ease-out;background:0 0;border:0;place-items:center;display:grid;position:absolute;top:8px;right:8px}.card-close .ic{width:14px;height:14px}.card-close:hover{color:var(--label);background:var(--fill)}.card-close:active{transform:scale(.94)}.card-kicker{color:var(--label-2);letter-spacing:.005em;align-items:center;gap:7px;margin:0 0 5px;font-size:11px;font-weight:600;display:flex}.card-subtitle{color:var(--label-2);margin:0 0 10px;font-size:12px;line-height:1.55}.node-card h4{letter-spacing:-.01em;overflow-wrap:anywhere;margin:0 22px 5px 0;font-size:15px;font-weight:600;line-height:1.3}.card-source{color:var(--label-2);align-items:center;gap:6px;margin:0 0 10px;font-size:11px;display:flex}.card-source .ic{flex:none;width:13px;height:13px}.card-source code{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--accent);font-family:ui-monospace,SFMono-Regular,monospace;overflow:hidden}.card-tags{flex-wrap:wrap;gap:5px;margin-bottom:12px;display:flex}.card-tags span{border-radius:var(--r-control);max-width:100%;color:var(--label-2);background:var(--fill);padding:2px 7px;font-size:11px}.card-actions{gap:8px;display:flex}.card-actions>button{border-radius:var(--r-control);min-width:0;height:28px;color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);cursor:pointer;border:0;flex:1;font-size:12px;font-weight:600}.card-actions>button:disabled{color:var(--label-3);cursor:not-allowed}.card-action{transition:background var(--fast) var(--ease), transform .1s ease-out;justify-content:center;align-items:center;gap:6px;display:inline-flex}.card-action .ic{width:14px;height:14px}.card-action:hover{background:color-mix(in srgb, var(--accent) 16%, transparent)}.card-action:active{transform:scale(.97)}.card-form{gap:10px;padding-top:18px;display:grid}.card-form label{color:var(--label-2);gap:5px;font-size:11px;font-weight:600;display:grid}.card-form :is(input,textarea){border:1px solid var(--sep);border-radius:var(--r-control);width:100%;min-width:0;color:var(--label);background:var(--canvas);font:inherit;padding:7px 8px}.card-form textarea{resize:vertical;min-height:68px}.card-form :is(input,textarea):focus{outline:2px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:1px}.card-error{color:var(--warm);margin:-4px 0 0;font-size:11px}.react-flow__node-diagram{background:0 0;border:0}.diagram-node{background:0 0;border:0;width:100%;height:100%;padding:0;position:relative;overflow:visible}.node-visual{width:100%;height:100%;display:block;overflow:visible}.diagram-node.is-dimmed{opacity:.18}.diagram-node:hover .node-surface{filter:drop-shadow(0 0 3px var(--accent))}.react-flow__handle{border:1px solid var(--canvas);background:var(--line);opacity:0;border-radius:50%;width:4px;height:4px}.diagram-node:hover .react-flow__handle,.diagram-node.is-selected .react-flow__handle{opacity:.7}.edge-label{color:var(--muted);background:var(--canvas);font-size:var(--font-body);line-height:var(--edge-line-height);pointer-events:all;cursor:pointer;white-space:nowrap;border:0;border-radius:2px;padding:3px 6px;font-family:inherit;position:absolute}.edge-label>span{white-space:pre;display:block}.node-kicker{color:var(--label-2);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:7px;font-size:11px;font-weight:600;display:flex}.node-dot{background:var(--accent);border-radius:50%;flex:none;width:5px;height:5px}.react-flow__node-boundary{pointer-events:none}.boundary{background:0 0;width:100%;height:100%}.boundary-visual{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:visible}.boundary>span,.boundary>small,.fragment-overlay>small{color:var(--ink);font-size:var(--font-small);letter-spacing:.08em;text-transform:uppercase;font-weight:650;position:absolute;top:14px}.boundary>span{white-space:pre;text-transform:none;max-width:calc(100% - 32px);line-height:22px;left:16px}.boundary:has(>small)>span{max-width:calc(100% - 88px)}.boundary>small,.fragment-overlay>small{font-family:ui-monospace,SFMono-Regular,monospace;right:16px}.boundary-heading{pointer-events:none}.boundary-heading .group{fill:var(--ink);letter-spacing:.4px;font:650 14px -apple-system,BlinkMacSystemFont,PingFang SC,sans-serif}.flow-edge--dashed .react-flow__edge-path{stroke-dasharray:5 5}.edge-flow{fill:none;stroke-width:2px;stroke-dasharray:8 12;stroke-linecap:round;pointer-events:none;animation:.7s linear infinite edge-flow}.flow-edge--sequence .edge-flow{stroke-width:3.2px;stroke-dasharray:calc(4 * var(--sequence-flow-unit,1px)) calc(6 * var(--sequence-flow-unit,1px));opacity:1;filter:none;animation:.35s linear infinite sequence-edge-flow}.flow-edge--sequence.flow-edge--dashed:has(.edge-flow){animation:.35s linear infinite sequence-edge-flow}.flow-edge--sequence .react-flow__edge-path{stroke-width:1.6px!important}.flow-edge--sequence.flow-edge--dashed :is(.react-flow__edge-path,.selection-edge-shine,.selection-edge-halo),.flow-edge--sequence mask path{stroke-dasharray:calc(5 * var(--sequence-flow-unit,1px)) calc(5 * var(--sequence-flow-unit,1px))}.flow-edge--sequence mask path{stroke-width:3.2px}.edge-label .pair-label{font-weight:inherit;border-bottom:2px solid}.legend i.legend-execution{border-radius:0;width:8px;height:18px}.selection-feedback{pointer-events:none}.selection-node-outline{z-index:6;fill:none;width:100%;stroke:var(--accent);position:absolute;inset:0;overflow:visible}.selection-node-halo,.selection-node-shine,.selection-edge-halo,.selection-edge-shine{fill:none;stroke-linejoin:round;stroke-linecap:round}.selection-node-halo,.selection-edge-halo{stroke-width:9px;opacity:.16;filter:blur(2px)}.selection-node-shine{stroke-width:3px;opacity:.95}.selection-edge-shine{stroke-width:2.8px;opacity:.92}.flow-edge--dashed .selection-edge-halo,.flow-edge--dashed .selection-edge-shine{stroke-dasharray:5 5}.selection-feedback.is-animated .selection-node-halo,.selection-feedback.is-animated .selection-edge-halo{animation:.76s ease-out both selection-glow}.selection-feedback.is-animated .selection-node-shine{animation:.76s ease-out both selection-node-jelly}.selection-feedback.is-animated .selection-edge-shine{animation:.76s ease-out both selection-line-jelly}.flow-edge--sequence .selection-edge-shine{stroke-width:2px;opacity:.72}.flow-edge--sequence .selection-feedback.is-animated .selection-edge-shine{animation-name:sequence-line-jelly}.selection-feedback.has-flow .selection-edge-shine{opacity:.1}@keyframes selection-glow{0%{stroke-width:2px;opacity:0}24%{stroke-width:18px;opacity:.27}44%{stroke-width:5px;opacity:.12}63%{stroke-width:12px;opacity:.22}80%{stroke-width:7px;opacity:.14}to{stroke-width:9px;opacity:.16}}@keyframes selection-node-jelly{0%{stroke-width:1px}24%{stroke-width:7px}44%{stroke-width:1.5px}63%{stroke-width:4.5px}80%{stroke-width:2.3px}to{stroke-width:3px}}@keyframes selection-line-jelly{0%{stroke-width:1.6px}24%{stroke-width:4.5px}44%{stroke-width:2px}63%{stroke-width:3.5px}80%{stroke-width:2.4px}to{stroke-width:2.8px}}@keyframes sequence-line-jelly{0%{stroke-width:1.2px}24%{stroke-width:3px}44%{stroke-width:1.4px}63%{stroke-width:2.5px}80%{stroke-width:1.7px}to{stroke-width:2px}}@media (prefers-reduced-motion:reduce){.selection-feedback,.selection-feedback *{animation:none!important}}.react-flow__controls,.react-flow__minimap{border-radius:var(--r-field);background:var(--material-thin);-webkit-backdrop-filter:var(--blur-thin);backdrop-filter:var(--blur-thin);box-shadow:0 0 0 .5px var(--sep), var(--shadow-1);transition:left var(--base) var(--ease), right var(--base) var(--ease);border:0;overflow:hidden}.react-flow__panel.react-flow__controls{left:var(--gutter);bottom:var(--gutter);margin:0}.react-flow__panel.react-flow__minimap{right:var(--gutter);bottom:var(--gutter);margin:0}.workspace.nav-open .react-flow__panel.react-flow__controls{left:calc(var(--side-w) + 2 * var(--gutter))}.workspace.drawer-open .react-flow__panel.react-flow__minimap{right:calc(var(--side-w) + 2 * var(--gutter))}.react-flow__controls-button{width:28px;height:28px;color:var(--label-2);border-bottom-width:.5px;border-bottom-color:var(--sep);transition:background var(--fast) var(--ease), color var(--fast) var(--ease);background:0 0}.react-flow__controls-button:hover{color:var(--label);background:var(--fill)}.react-flow__controls-button:active{background:var(--fill-2)}.react-flow__controls-button:focus-visible{outline-offset:-3px}.react-flow__controls-button svg{fill:currentColor;max-width:14px;max-height:14px}.react-flow__controls-fullscreen svg,.react-flow__controls-fitview svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.react-flow__controls-fullscreen[aria-disabled=true]{opacity:.5;cursor:not-allowed}.react-flow__minimap{opacity:.92;width:112px;height:78px}.react-flow__minimap svg{width:100%;height:100%;display:block}.inspector-card{overflow-wrap:anywhere;border:0;border-top:.5px solid var(--sep);background:0 0;min-width:0;max-width:100%;padding:12px 0;position:relative}.inspector-card:first-of-type{border-top:0;padding-top:2px}.inspector-card>strong{margin-bottom:6px;font-size:13px;font-weight:600;display:block}.inspector-card>p{color:var(--label-2);margin:0;font-size:13px;line-height:1.6}.drawer h2{color:var(--label);letter-spacing:-.02em;overflow-wrap:anywhere;margin:10px 0 4px;font-size:20px;font-weight:600;line-height:1.25}.drawer-subtitle{color:var(--label-2);letter-spacing:.005em;margin:0 0 14px;font-size:13px;line-height:1.6}.drawer h3{color:var(--label-2);letter-spacing:.06em;text-transform:uppercase;margin:16px 0 6px;font-size:11px;font-weight:600}.inspector-facts>h3{margin-top:0}.drawer ul{color:var(--label-2);margin:0;padding-left:16px;font-size:13px;line-height:1.6}.drawer li+li{margin-top:5px}.drawer li::marker{color:var(--accent)}.drawer code{white-space:normal;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px}.source-path{border-radius:var(--r-field);max-width:100%;color:var(--accent);background:var(--fill);overflow-wrap:anywhere;padding:8px 10px;font-size:12px;line-height:1.55;display:block}.symbol{color:var(--label-2);font:12px/1.55 ui-monospace,SFMono-Regular,monospace;margin-top:6px!important}.tags{flex-wrap:wrap;gap:5px;margin-top:14px;display:flex}.tags span{border-radius:var(--r-control);min-width:0;max-width:100%;color:var(--label-2);background:var(--fill);padding:2px 8px;font-size:11px;line-height:1.5}.drawer-empty{text-align:center;min-height:150px;color:var(--label-2);place-content:center;gap:6px;display:grid}.drawer-empty .empty-icon{border-radius:var(--r-pop);width:36px;height:36px;color:var(--accent);background:var(--accent-soft);place-items:center;margin:0 auto 6px;display:grid}.empty-icon .ic{width:18px;height:18px}.drawer-empty span{color:var(--label);font-size:13px;font-weight:600}.drawer-empty p{letter-spacing:.005em;max-width:180px;margin:0;font-size:12px;line-height:1.6}.legend i{border:1px solid;border-radius:3px;flex:none;width:15px;height:12px}.legend i.legend-compartment{box-shadow:inset 0 -5px 0 var(--legend-body)}.legend i:is(.legend-initial,.legend-final,.legend-actor){border-radius:50%;width:12px;position:relative}.legend i.legend-final:after{content:"";border:1px solid;border-radius:50%;position:absolute;inset:2px}.legend i.legend-actor:after{content:"";background:currentColor;width:1px;height:5px;position:absolute;top:10px;left:4px}.legend i:is(.legend-solid,.legend-dashed){border:0;border-top:1px solid;border-radius:0;width:18px;height:0}.legend i.legend-dashed{border-top-style:dashed}.legend i.legend-module{border-radius:50%;width:10px;height:10px}.legend i.legend-ramp{border-width:0;width:28px;height:10px}@keyframes edge-flow{to{stroke-dashoffset:-20px}}@keyframes sequence-edge-flow{0%{stroke-dashoffset:0}to{stroke-dashoffset:calc(-10 * var(--sequence-flow-unit,1px))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (prefers-reduced-transparency:reduce){.toolbar,.sidebar,.popover,.node-card,.notes-card,.float-btn,.toast,.react-flow__controls,.react-flow__minimap{background:var(--panel);-webkit-backdrop-filter:none;backdrop-filter:none}}@media (prefers-contrast:more){:root{--sep:var(--label);--label-2:var(--label);--label-3:color-mix(in srgb, var(--ink) 70%, transparent)}.toolbar{box-shadow:0 1px 0 var(--label)}.sidebar,.popover,.node-card,.notes-card,.float-btn,.toast,.react-flow__controls,.react-flow__minimap{box-shadow:0 0 0 1px var(--label)}}.react-flow,.react-flow.dark{background:var(--canvas);--xy-background-color:var(--canvas)}.react-flow__node.sequence-column,.diagram-sequence,.diagram-sequence .node-visual{pointer-events:none}.diagram-sequence .sequence-head{pointer-events:bounding-box}.diagram-sequence .react-flow__handle{pointer-events:none}.fragment-visual{color:var(--label-2);overflow:visible}.layout-problems{top:calc(var(--tb-h) + 12px);z-index:21;border:1px solid var(--sep);background:var(--material-thick);border-radius:10px;width:min(420px,100% - 112px);max-height:35%;padding:10px 14px;font-size:13px;position:absolute;left:50%;overflow:auto;transform:translate(-50%)}.layout-problems summary{cursor:pointer}.layout-problems button{text-align:left;overflow-wrap:anywhere}.layout-problems pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.edge-flow{stroke-width:2.8px;filter:none}.flow-edge--sequence .edge-flow{stroke-width:3.2px}.selection-feedback.has-flow .selection-edge-halo{stroke-opacity:.12}@media (prefers-reduced-transparency:reduce),(prefers-contrast:more){.diagram-node .node-surface,.edge-flow{filter:none!important}.edge-flow{stroke-width:2px}.selection-node-halo,.selection-edge-halo{filter:none;display:none}}.overview-section{pointer-events:none;position:relative}.overview-section-select{opacity:0;pointer-events:auto;cursor:pointer;width:calc(100% - 48px);height:36px;position:absolute;top:24px;left:24px}.overview-section-select:focus-visible{opacity:1;background:var(--canvas);color:var(--ink);outline:2px solid var(--accent)}.card-form .badge-editor{gap:8px;margin:8px 0;display:grid}.card-form select{background:var(--canvas);max-width:100%;color:inherit;border:1px solid var(--rule);border-radius:6px;padding:8px}.tb-right .menu-anchor{min-width:0}#view-menu-button{max-width:230px}#view-menu-button>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}[data-popover-root=views] .menu{background:var(--panel);max-width:min(440px,100vw - 24px);max-height:calc(100dvh - 76px);overflow-y:auto}@media (width<=1050px){.toolbar{grid-template-columns:minmax(0,1fr) minmax(100px,200px) auto}.tb-search{width:100%}}@media (width<=640px){.toolbar{grid-template-columns:minmax(36px,1fr) minmax(64px,110px) auto;gap:3px;padding-inline:6px}.tb-title{display:none}#view-menu-button{max-width:132px;padding-inline:5px}#view-menu-button>.ic:first-child,.tb-right .tb-wash{display:none}}@media (width<=1050px){.workspace.nav-open .layout-problems{top:calc(var(--tb-h) + 52px)}}
285
287
  /*$vite$:1*/</style>
286
288
  </head>
287
289
  <body>