website-and-documentation/static/js/likec4-webcomponent.js

761 lines
3.1 MiB
JavaScript
Raw Normal View History

feat(docs): integrate LikeC4 interactive diagrams into Hugo/Docsy Implement complete integration of LikeC4 interactive architecture diagrams into the Hugo/Docsy documentation system, enabling embedded web components for exploring C4 models directly in documentation pages. Integration Components: Static Assets: - static/js/likec4-webcomponent.js (3.1 MB) - Generated web component containing all 54 C4 views as interactive embeddable elements - static/js/likec4-loader.js - Dynamic ES6 module loader with fallback paths for robust component loading across different page depths - static/css/likec4-styles.css - Styling for diagram containers with dark mode support for Docsy theme compatibility Hugo Configuration: - hugo.toml - Added params.likec4.enable configuration flag - layouts/partials/hooks/head-end.html - Hook to inject CSS and JS when LikeC4 is enabled site-wide Documentation: - content/en/docs/architecture/_index.md - Architecture section index - content/en/docs/architecture/highlevelarch.md - Example page with interactive OTC FaaS deployment diagram demonstrating integration - content/en/docs/architecture/setup.md - Comprehensive setup guide covering installation, usage, workflow, and troubleshooting - resources/likec4/INTEGRATION.md - Technical integration details - LIKEC4-QUICKSTART.md - Quick start guide for developers Features: - Interactive diagram exploration (click components for details) - Automatic loading indicators with timeout fallback - Graceful degradation for non-JS environments - Dark mode support matching Docsy theme - Multiple diagrams per page support - Browser compatibility detection Usage Pattern: ```html <div class="likec4-container"> <div class="likec4-header">Diagram Title</div> <likec4-view view-id="otc-faas" browser="true"></likec4-view> <div class="likec4-loading">Loading...</div> </div> ``` Workflow: 1. Edit .c4 files in resources/likec4/ 2. Run: npx likec4 gen webcomponent --webcomponent-prefix likec4 --outfile ../../static/js/likec4-webcomponent.js 3. Commit both model changes and regenerated webcomponent Available Views: - otc-faas, edp, landscape, edpbuilderworkflow - keycloak, forgejo, argocd, crossplane, monitoring - And 40+ more component and deployment views The integration preserves the MkDocs-style embedding approach from edp-doc while adapting it to Hugo's static site generation model. This completes the migration making this repository the central hub for both C4 architecture models and their rendered documentation.
2025-10-24 13:08:59 +02:00
var LikeC4Views=(function(F_){"use strict";/* prettier-ignore-start */
/* eslint-disable */
/******************************************************************************
* This file was generated
* DO NOT EDIT MANUALLY!
******************************************************************************/
function w1e(e,r){for(var n=0;n<r.length;n++){const o=r[n];if(typeof o!="string"&&!Array.isArray(o)){for(const a in o)if(a!=="default"&&!(a in e)){const i=Object.getOwnPropertyDescriptor(o,a);i&&Object.defineProperty(e,a,i.get?i:{enumerable:!0,get:()=>o[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function vM(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var H_={exports:{}},h1={};/**
* @license React
* react-jsx-runtime.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var xM;function k1e(){if(xM)return h1;xM=1;var e=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function n(o,a,i){var l=null;if(i!==void 0&&(l=""+i),a.key!==void 0&&(l=""+a.key),"key"in a){i={};for(var s in a)s!=="key"&&(i[s]=a[s])}else i=a;return a=i.ref,{$$typeof:e,type:o,key:l,ref:a!==void 0?a:null,props:i}}return h1.Fragment=r,h1.jsx=n,h1.jsxs=n,h1}var wM;function _1e(){return wM||(wM=1,H_.exports=k1e()),H_.exports}var y=_1e(),U_={exports:{}},jt={};/**
* @license React
* react.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var kM;function E1e(){if(kM)return jt;kM=1;var e=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),i=Symbol.for("react.consumer"),l=Symbol.for("react.context"),s=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),u=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),p=Symbol.iterator;function f(F){return F===null||typeof F!="object"?null:(F=p&&F[p]||F["@@iterator"],typeof F=="function"?F:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b=Object.assign,x={};function w(F,J,Q){this.props=F,this.context=J,this.refs=x,this.updater=Q||g}w.prototype.isReactComponent={},w.prototype.setState=function(F,J){if(typeof F!="object"&&typeof F!="function"&&F!=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,F,J,"setState")},w.prototype.forceUpdate=function(F){this.updater.enqueueForceUpdate(this,F,"forceUpdate")};function k(){}k.prototype=w.prototype;function C(F,J,Q){this.props=F,this.context=J,this.refs=x,this.updater=Q||g}var _=C.prototype=new k;_.constructor=C,b(_,w.prototype),_.isPureReactComponent=!0;var T=Array.isArray,R={H:null,A:null,T:null,S:null,V:null},A=Object.prototype.hasOwnProperty;function D(F,J,Q,z,W,X){return Q=X.ref,{$$typeof:e,type:F,key:J,ref:Q!==void 0?Q:null,props:X}}function N(F,J){return D(F.type,J,void 0,void 0,void 0,F.props)}function P(F){return typeof F=="object"&&F!==null&&F.$$typeof===e}function O(F){var J={"=":"=0",":":"=2"};return"$"+F.replace(/[=:]/g,function(Q){return J[Q]})}var B=/\/+/g;function L(F,J){return typeof F=="object"&&F!==null&&F.key!=null?O(""+F.key):J.toString(36)}function Y(){}function M(F){switch(F.status){case"fulfilled":return F.value;case"rejected":throw F.reason;default:switch(typeof F.status=="string"?F.then(Y,Y):(F.status="pending",F.then(function(J){F.status==="pending"&&(F.status="fulfilled",F.value=J)},function(J){F.status==="pending"&&(F.status="rejected",F.reason=J)})),F.status){case"fulfilled":return F.value;case"rejected":throw F.reason}}throw F}function q(F,J,Q,z,W){var X=typeof F;(X==="undefined"||X==="boolean")&&(F=null);var Z=!1;if(F===null)Z=!0;else switch(X){case"bigint":case"string":case"number":Z=!0;break;case"object":switch(F.$$typeof){case e:case r:Z=!0;break;case d:return Z=F._init,q(Z(F._payload),J,Q,z,W)}}if(Z)return W=W(F),Z=z===""?"."+L(F,0):z,T(W)?(Q="",Z!=null&&(Q=Z.replace(B,"$&/")+"/"),q(W,J,Q,"",function(re){return re})):W!=null&&(P(W)&&(W=N(W,Q+(W.key==null||F&&F.key===W.key?"":(""+W.key).replace(B,"$&/")+"/")+Z)),J.push(W)),1;Z=0;var oe=z===""?".":z+":";if(T(F))for(var ee=0;ee<F.length;ee++)z=F[ee],X=oe+L(z,ee),Z+=q(z,J,Q,X,W);else if(ee=f(F),typeof ee=="function")for(F=ee.call(F),ee=0;!(z=F.next()).done;)z=z.value,X=oe+L(z,ee++),Z+=q(z,J,Q,X,W);else if(X==="object"){if(typeof F.then=="function")return q(M(F),J,Q,z,W);throw J=String(F),Error("Objects are not valid as a React child (found: "+(J==="[object Object]"?"object with keys {"+Object.keys(F).join(", ")+"}":J)+"). If you meant to render a collection of children, use an array instead.")}return Z}function I(F,J,Q){if(F==null)return F;var z=[],W=0;return q(F,z,"","",function(X){return J.call(Q,X,W++)}),z}function U(F){if(F._status===-1){var J=F._result;J=J(),J.then(function(Q){(F._status===0||F._status===-1)&&(F._status=1,F._result=Q)},function(Q){(F._status===0||F._status===-1)&&(F._status=2,F._result=Q)}),F._status===-1&&(F._status=0,F._result=J)}if(F._status===1)return F._result.default;throw F._result}var V=typeof reportError=="function"?reportError:function(F){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var J=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof F=="object"&&F!==null&&typeof F.message=="string"?String(F.message):String(F),error:F});if(!window.dispatchEvent(J))return}else if(typeof process=="object"&&typeof process.e
* @license React
* react-dom.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var EM;function S1e(){if(EM)return _o;EM=1;var e=q_();function r(c){var u="https://react.dev/errors/"+c;if(1<arguments.length){u+="?args[]="+encodeURIComponent(arguments[1]);for(var d=2;d<arguments.length;d++)u+="&args[]="+encodeURIComponent(arguments[d])}return"Minified React error #"+c+"; visit "+u+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function n(){}var o={d:{f:n,r:function(){throw Error(r(522))},D:n,C:n,L:n,m:n,X:n,S:n,M:n},p:0,findDOMNode:null},a=Symbol.for("react.portal");function i(c,u,d){var p=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:p==null?null:""+p,children:c,containerInfo:u,implementation:d}}var l=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function s(c,u){if(c==="font")return"";if(typeof u=="string")return u==="use-credentials"?u:""}return _o.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=o,_o.createPortal=function(c,u){var d=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!u||u.nodeType!==1&&u.nodeType!==9&&u.nodeType!==11)throw Error(r(299));return i(c,u,null,d)},_o.flushSync=function(c){var u=l.T,d=o.p;try{if(l.T=null,o.p=2,c)return c()}finally{l.T=u,o.p=d,o.d.f()}},_o.preconnect=function(c,u){typeof c=="string"&&(u?(u=u.crossOrigin,u=typeof u=="string"?u==="use-credentials"?u:"":void 0):u=null,o.d.C(c,u))},_o.prefetchDNS=function(c){typeof c=="string"&&o.d.D(c)},_o.preinit=function(c,u){if(typeof c=="string"&&u&&typeof u.as=="string"){var d=u.as,p=s(d,u.crossOrigin),f=typeof u.integrity=="string"?u.integrity:void 0,g=typeof u.fetchPriority=="string"?u.fetchPriority:void 0;d==="style"?o.d.S(c,typeof u.precedence=="string"?u.precedence:void 0,{crossOrigin:p,integrity:f,fetchPriority:g}):d==="script"&&o.d.X(c,{crossOrigin:p,integrity:f,fetchPriority:g,nonce:typeof u.nonce=="string"?u.nonce:void 0})}},_o.preinitModule=function(c,u){if(typeof c=="string")if(typeof u=="object"&&u!==null){if(u.as==null||u.as==="script"){var d=s(u.as,u.crossOrigin);o.d.M(c,{crossOrigin:d,integrity:typeof u.integrity=="string"?u.integrity:void 0,nonce:typeof u.nonce=="string"?u.nonce:void 0})}}else u==null&&o.d.M(c)},_o.preload=function(c,u){if(typeof c=="string"&&typeof u=="object"&&u!==null&&typeof u.as=="string"){var d=u.as,p=s(d,u.crossOrigin);o.d.L(c,d,{crossOrigin:p,integrity:typeof u.integrity=="string"?u.integrity:void 0,nonce:typeof u.nonce=="string"?u.nonce:void 0,type:typeof u.type=="string"?u.type:void 0,fetchPriority:typeof u.fetchPriority=="string"?u.fetchPriority:void 0,referrerPolicy:typeof u.referrerPolicy=="string"?u.referrerPolicy:void 0,imageSrcSet:typeof u.imageSrcSet=="string"?u.imageSrcSet:void 0,imageSizes:typeof u.imageSizes=="string"?u.imageSizes:void 0,media:typeof u.media=="string"?u.media:void 0})}},_o.preloadModule=function(c,u){if(typeof c=="string")if(u){var d=s(u.as,u.crossOrigin);o.d.m(c,{as:typeof u.as=="string"&&u.as!=="script"?u.as:void 0,crossOrigin:d,integrity:typeof u.integrity=="string"?u.integrity:void 0})}else o.d.m(c)},_o.requestFormReset=function(c){o.d.r(c)},_o.unstable_batchedUpdates=function(c,u){return c(u)},_o.useFormState=function(c,u,d){return l.H.useFormState(c,u,d)},_o.useFormStatus=function(){return l.H.useHostTransitionStatus()},_o.version="19.1.1",_o}var SM;function CM(){if(SM)return V_.exports;SM=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(r){console.error(r)}}return e(),V_.exports=S1e(),V_.exports}var ji=CM();const TM=vM(ji);function C1e(e,r,n){let o=a=>e(a,...r);return n===void 0?o:Object.assign(o,{lazy:n,lazyArgs:r})}function ba(e,r,n){let o=e.length-r.length;if(o===0)return e(...r);if(o===1)return C1e(e,r,n);throw Error("Wrong number of arguments")}function _h(...e){return ba(T1e,e)}const T1e=(e,r)=>e.length>=r;function mt(e,r){if(typeof e>"u"||e==null){const n=typeof r=="function"?r():r;throw new Error(n??`Expected defined value, but received ${e}`)}return e}function nt(e,
* @license
*
* The APCA contrast prediction algorithm is based of the formulas published
* in the APCA-1.0.98G specification by Myndex. The specification is available at:
* https://raw.githubusercontent.com/Myndex/apca-w3/master/images/APCAw3_0.1.17_APCA0.0.98G.svg
*
* Note that the APCA implementation is still beta, so please update to
* future versions of chroma.js when they become available.
*
* You can read more about the APCA Readability Criterion at
* https://readtech.org/ARC/
*/const YM=.027,J0e=5e-4,eye=.1,WM=1.14,Xv=.022,GM=1.414,tye=(e,r)=>{e=new je(e),r=new je(r),e.alpha()<1&&(e=Ch(r,e,e.alpha(),"rgb"));const n=XM(...e.rgb()),o=XM(...r.rgb()),a=n>=Xv?n:n+Math.pow(Xv-n,GM),i=o>=Xv?o:o+Math.pow(Xv-o,GM),l=Math.pow(i,.56)-Math.pow(a,.57),s=Math.pow(i,.65)-Math.pow(a,.62),c=Math.abs(i-a)<J0e?0:a<i?l*WM:s*WM;return(Math.abs(c)<eye?0:c>0?c-YM:c+YM)*100};function XM(e,r,n){return .2126729*Math.pow(e/255,2.4)+.7151522*Math.pow(r/255,2.4)+.072175*Math.pow(n/255,2.4)}const{sqrt:Os,pow:hn,min:rye,max:nye,atan2:KM,abs:ZM,cos:Kv,sin:QM,exp:oye,PI:JM}=Math;function aye(e,r,n=1,o=1,a=1){var i=function(z){return 360*z/(2*JM)},l=function(z){return 2*JM*z/360};e=new je(e),r=new je(r);const[s,c,u]=Array.from(e.lab()),[d,p,f]=Array.from(r.lab()),g=(s+d)/2,b=Os(hn(c,2)+hn(u,2)),x=Os(hn(p,2)+hn(f,2)),w=(b+x)/2,k=.5*(1-Os(hn(w,7)/(hn(w,7)+hn(25,7)))),C=c*(1+k),_=p*(1+k),T=Os(hn(C,2)+hn(u,2)),R=Os(hn(_,2)+hn(f,2)),A=(T+R)/2,D=i(KM(u,C)),N=i(KM(f,_)),P=D>=0?D:D+360,O=N>=0?N:N+360,B=ZM(P-O)>180?(P+O+360)/2:(P+O)/2,L=1-.17*Kv(l(B-30))+.24*Kv(l(2*B))+.32*Kv(l(3*B+6))-.2*Kv(l(4*B-63));let Y=O-P;Y=ZM(Y)<=180?Y:O<=P?Y+360:Y-360,Y=2*Os(T*R)*QM(l(Y)/2);const M=d-s,q=R-T,I=1+.015*hn(g-50,2)/Os(20+hn(g-50,2)),U=1+.045*A,V=1+.015*A*L,G=30*oye(-hn((B-275)/25,2)),J=-(2*Os(hn(A,7)/(hn(A,7)+hn(25,7))))*QM(2*l(G)),Q=Os(hn(M/(n*I),2)+hn(q/(o*U),2)+hn(Y/(a*V),2)+J*(q/(o*U))*(Y/(a*V)));return nye(0,rye(100,Q))}function iye(e,r,n="lab"){e=new je(e),r=new je(r);const o=e.get(n),a=r.get(n);let i=0;for(let l in o){const s=(o[l]||0)-(a[l]||0);i+=s*s}return Math.sqrt(i)}const lye=(...e)=>{try{return new je(...e),!0}catch{return!1}},sye={cool(){return Gv([Tt.hsl(180,1,.9),Tt.hsl(250,.7,.4)])},hot(){return Gv(["#000","#f00","#ff0","#fff"]).mode("rgb")}},c6={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221
* @version 1.4.0
* @date 2015-10-26
* @stability 3 - Stable
* @author Lauri Rooden (https://github.com/litejs/natural-compare-lite)
* @license MIT License
*/var e=function(r,n){var o,a,i=1,l=0,s=0,c=String.alphabet;function u(d,p,f){if(f){for(o=p;f=u(d,o),f<76&&f>65;)++o;return+d.slice(p-1,o)}return f=c&&c.indexOf(d.charAt(p)),f>-1?f+76:(f=d.charCodeAt(p)||0,f<45||f>127?f:f<46?65:f<48?f-1:f<58?f+18:f<65?f-11:f<91?f+11:f<97?f-37:f<123?f+5:f-63)}if((r+="")!=(n+="")){for(;i;)if(a=u(r,l++),i=u(n,s++),a<76&&i<76&&a>66&&i>66&&(a=u(r,l,l),i=u(n,s,l=o),s=o),a!=i)return a<i?-1:1}return 0};try{v6.exports=e}catch{String.naturalCompare=e}return v6.exports}var Fye=Bye();const AI=t3(Fye);function r3(e,r){return e===r?0:qc(e)?qc(r)?AI(e,r):1:qc(r)?-1:0}function NI(e=".",r=!1){return(n,o)=>{if(n===o)return 0;if(!n)return-1;if(!o)return 1;const a=n.split(e),i=o.split(e),l=Math.min(a.length,i.length);for(let c=0;c<l;c++){const u=a[c],d=i[c],p=AI(u,d);if(p!==0)return p}const s=a.length-i.length;return r?-1*s:s}}function x6(e){return e!=null&&typeof e=="string"}function n3(e){const r=e.lastIndexOf(".");return r>0?e.slice(0,r):null}function g1(e){const r=e.lastIndexOf(".");return r>0?e.slice(r+1):e}const y1=e=>x6(e)?e:e.id;function Un(e,r){const n=y1(e);return r?y1(r).startsWith(n+"."):o=>{const a=y1(o);return n.startsWith(a+".")}}function DI(e,r){if(!r)return a=>DI(e,a);const n=y1(e),o=y1(r);return n===o||o.startsWith(n+".")||n.startsWith(o+".")}function $I(e,r){return n=>Un(e,n)}function o3(e){return(x6(e)?e:e.id).split(".").length}function b1(e,r){const n=e.split(".");if(n.length<2)return null;const o=r.split(".");if(o.length<2)return null;let a=[];for(let i=0;i<Math.min(n.length,o.length)-1&&n[i]===o[i];i++)a.push(n[i]);return a.length===0?null:a.join(".")}function bd(e){const r=e.split(".");return r.pop(),r.length===0?[]:r.reduce((n,o,a)=>a===0?(n.push(o),n):(n.unshift(`${n[0]}.${o}`),n),[])}function Hye(e,r){let n=r;for(const o of e)Un(o,n)&&(n=o);return n!==r?n:null}function Vc(e){const r=[],n=[...e];let o;for(;o=n.shift();){let a;for(;a=Hye(n,o);)r.push(n.splice(n.indexOf(a),1)[0]);r.push(o)}return r}function PI(e,r){if(!e||x6(e)){const o=e??"asc";return a=>PI(a,o)}const n=r==="desc"?-1:1;return e.map(o=>({item:o,fqn:o.id.split(".")})).sort((o,a)=>{if(o.fqn.length!==a.fqn.length)return(o.fqn.length-a.fqn.length)*n;for(let i=0;i<o.fqn.length;i++){const l=r3(o.fqn[i],a.fqn[i]);if(l!==0)return l}return 0}).map(({item:o})=>o)}var a3={},OI;function Uye(){return OI||(OI=1,a3.ARRAY_BUFFER_SUPPORT=typeof ArrayBuffer<"u",a3.SYMBOL_SUPPORT=typeof Symbol<"u"),a3}var w6,MI;function qye(){if(MI)return w6;MI=1;function e(r){if(typeof r!="function")throw new Error("obliterator/iterator: expecting a function!");this.next=r}return typeof Symbol<"u"&&(e.prototype[Symbol.iterator]=function(){return this}),e.of=function(){var r=arguments,n=r.length,o=0;return new e(function(){return o>=n?{done:!0}:{done:!1,value:r[o++]}})},e.empty=function(){var r=new e(function(){return{done:!0}});return r},e.fromSequence=function(r){var n=0,o=r.length;return new e(function(){return n>=o?{done:!0}:{done:!1,value:r[n++]}})},e.is=function(r){return r instanceof e?!0:typeof r=="object"&&r!==null&&typeof r.next=="function"},w6=e,w6}var k6,II;function Vye(){if(II)return k6;II=1;var e=Uye(),r=e.ARRAY_BUFFER_SUPPORT,n=e.SYMBOL_SUPPORT;return k6=function(a,i){var l,s,c,u,d;if(!a)throw new Error("obliterator/forEach: invalid iterable.");if(typeof i!="function")throw new Error("obliterator/forEach: expecting a callback.");if(Array.isArray(a)||r&&ArrayBuffer.isView(a)||typeof a=="string"||a.toString()==="[object Arguments]"){for(c=0,u=a.length;c<u;c++)i(a[c],c);return}if(typeof a.forEach=="function"){a.forEach(i);return}if(n&&Symbol.iterator in a&&typeof a.next!="function"&&(a=a[Symbol.iterator]()),typeof a.next=="function"){for(l=a,c=0;d=l.next(),d.done!==!0;)i(d.value,c),c++;return}for(s in a)a.hasOwnProperty(s)&&i(a[s],s)},k6}var _6,LI;function Yye(){if(LI)return _6;LI=1;var e=qye(),r=Vye();function n(){this.clear()}return n.prototype.clear=function(){this.items=[],this.offset=0,this.size=0},n.prototype.enqueue=function(o){return this.items.push(o),++this.size},n.prototype.dequeue=function(){if(this.size){var o=this.items[this
`,r);return o===-1?n:n===-1||n+1===o?o:n<o?n:o}const kd={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},dL={}.hasOwnProperty,vbe=Object.prototype;function xbe(e,r){const n=r||{};return M6({file:n.file||void 0,location:!1,schema:n.space==="svg"?E1:d3,verbose:n.verbose||!1},e)}function M6(e,r){let n;switch(r.nodeName){case"#comment":{const o=r;return n={type:"comment",value:o.data},p3(e,o,n),n}case"#document":case"#document-fragment":{const o=r,a="mode"in o?o.mode==="quirks"||o.mode==="limited-quirks":!1;if(n={type:"root",children:pL(e,r.childNodes),data:{quirksMode:a}},e.file&&e.location){const i=String(e.file),l=bbe(i),s=l.toPoint(0),c=l.toPoint(i.length);n.position={start:s,end:c}}return n}case"#documentType":{const o=r;return n={type:"doctype"},p3(e,o,n),n}case"#text":{const o=r;return n={type:"text",value:o.value},p3(e,o,n),n}default:return n=wbe(e,r),n}}function pL(e,r){let n=-1;const o=[];for(;++n<r.length;){const a=M6(e,r[n]);o.push(a)}return o}function wbe(e,r){const n=e.schema;e.schema=r.namespaceURI===kd.svg?E1:d3;let o=-1;const a={};for(;++o<r.attrs.length;){const s=r.attrs[o],c=(s.prefix?s.prefix+":":"")+s.name;dL.call(vbe,c)||(a[c]=s.value)}const l=(e.schema.space==="svg"?ybe:gbe)(r.tagName,a,pL(e,r.childNodes));if(p3(e,r,l),l.tagName==="template"){const s=r,c=s.sourceCodeLocation,u=c&&c.startTag&&Ih(c.startTag),d=c&&c.endTag&&Ih(c.endTag),p=M6(e,s.content);u&&d&&e.file&&(p.position={start:u.end,end:d.start}),l.content=p}return e.schema=n,l}function p3(e,r,n){if("sourceCodeLocation"in r&&r.sourceCodeLocation&&e.file){const o=kbe(e,n,r.sourceCodeLocation);o&&(e.location=!0,n.position=o)}}function kbe(e,r,n){const o=Ih(n);if(r.type==="element"){const a=r.children[r.children.length-1];if(o&&!n.endTag&&a&&a.position&&a.position.end&&(o.end=Object.assign({},a.position.end)),e.verbose){const i={};let l;if(n.attrs)for(l in n.attrs)dL.call(n.attrs,l)&&(i[P6(e.schema,l).property]=Ih(n.attrs[l]));n.startTag;const s=Ih(n.startTag),c=n.endTag?Ih(n.endTag):void 0,u={opening:s};c&&(u.closing=c),u.properties=i,r.data={position:u}}}return o}function Ih(e){const r=hL({line:e.startLine,column:e.startCol,offset:e.startOffset}),n=hL({line:e.endLine,column:e.endCol,offset:e.endOffset});return r||n?{start:r,end:n}:void 0}function hL(e){return e.line&&e.column?e:void 0}class S1{constructor(r,n,o){this.property=r,this.normal=n,o&&(this.space=o)}}S1.prototype.property={},S1.prototype.normal={},S1.prototype.space=null;function fL(e,r){const n={},o={};let a=-1;for(;++a<e.length;)Object.assign(n,e[a].property),Object.assign(o,e[a].normal);return new S1(n,o,r)}function I6(e){return e.toLowerCase()}class Qa{constructor(r,n){this.property=r,this.attribute=n}}Qa.prototype.space=null,Qa.prototype.boolean=!1,Qa.prototype.booleanish=!1,Qa.prototype.overloadedBoolean=!1,Qa.prototype.number=!1,Qa.prototype.commaSeparated=!1,Qa.prototype.spaceSeparated=!1,Qa.prototype.commaOrSpaceSeparated=!1,Qa.prototype.mustUseProperty=!1,Qa.prototype.defined=!1;let _be=0;const Mt=_d(),gn=_d(),mL=_d(),Ue=_d(),Er=_d(),Lh=_d(),xa=_d();function _d(){return 2**++_be}const L6={__proto__:null,boolean:Mt,booleanish:gn,commaOrSpaceSeparated:xa,commaSeparated:Lh,number:Ue,overloadedBoolean:mL,spaceSeparated:Er},z6=Object.keys(L6);class j6 extends Qa{constructor(r,n,o,a){let i=-1;if(super(r,n),gL(this,"space",a),typeof o=="number")for(;++i<z6.length;){const l=z6[i];gL(this,z6[i],(o&L6[l])===L6[l])}}}j6.prototype.defined=!0;function gL(e,r,n){n&&(e[r]=n)}const Ebe={}.hasOwnProperty;function zh(e){const r={},n={};let o;for(o in e.properties)if(Ebe.call(e.properties,o)){const a=e.properties[o],i=new j6(o,e.transform(e.attributes||{},o),a,e.space);e.mustUseProperty&&e.mustUseProperty.includes(o)&&(i.mustUseProperty=!0),r[o]=i,n[I6(o)]=o,n[I6(i.attribute)]=o}return new S1(r,n,e.space)}const yL=zh({space:"xlink",transform(e,r){return"xlink:"+r.slice(5).toLowerCase()},properties:{xLinkActuate:nu
\f\r &/=>`.split(""),`
\f\r "&'/=>\``.split("")],[`\0
\f\r "&'/<=>`.split(""),`\0
\f\r "&'/<=>\``.split("")]],unquoted:[[`
\f\r &>`.split(""),`\0
\f\r "&'<=>\``.split("")],[`\0
\f\r "&'<=>\``.split(""),`\0
\f\r "&'<=>\``.split("")]],single:[["&'".split(""),"\"&'`".split("")],["\0&'".split(""),"\0\"&'`".split("")]],double:[['"&'.split(""),"\"&'`".split("")],['\0"&'.split(""),"\0\"&'`".split("")]]};function Lwe(e,r,n,o){const a=o.schema,i=a.space==="svg"?!1:o.settings.omitOptionalTags;let l=a.space==="svg"?o.settings.closeEmptyElements:o.settings.voids.includes(e.tagName.toLowerCase());const s=[];let c;a.space==="html"&&e.tagName==="svg"&&(o.schema=E1);const u=zwe(o,e.properties),d=o.all(a.space==="html"&&e.tagName==="template"?e.content:e);return o.schema=a,d&&(l=!1),(u||!i||!Dwe(e,r,n))&&(s.push("<",e.tagName,u?" "+u:""),l&&(a.space==="svg"||o.settings.closeSelfClosing)&&(c=u.charAt(u.length-1),(!o.settings.tightSelfClosing||c==="/"||c&&c!=='"'&&c!=="'")&&s.push(" "),s.push("/")),s.push(">")),s.push(d),!l&&(!i||!oE(e,r,n))&&s.push("</"+e.tagName+">"),s.join("")}function zwe(e,r){const n=[];let o=-1,a;if(r){for(a in r)if(r[a]!==null&&r[a]!==void 0){const i=jwe(e,a,r[a]);i&&n.push(i)}}for(;++o<n.length;){const i=e.settings.tightAttributes?n[o].charAt(n[o].length-1):void 0;o!==n.length-1&&i!=='"'&&i!=="'"&&(n[o]+=" ")}return n.join("")}function jwe(e,r,n){const o=P6(e.schema,r),a=e.settings.allowParseErrors&&e.schema.space==="html"?0:1,i=e.settings.allowDangerousCharacters?0:1;let l=e.quote,s;if(o.overloadedBoolean&&(n===o.attribute||n==="")?n=!0:(o.boolean||o.overloadedBoolean)&&(typeof n!="string"||n===o.attribute||n==="")&&(n=!!n),n==null||n===!1||typeof n=="number"&&Number.isNaN(n))return"";const c=Uh(o.attribute,Object.assign({},e.settings.characterReferences,{subset:T3.name[a][i]}));return n===!0||(n=Array.isArray(n)?(o.commaSeparated?oL:lL)(n,{padLeft:!e.settings.tightCommaSeparatedLists}):String(n),e.settings.collapseEmptyAttributes&&!n)?c:(e.settings.preferUnquoted&&(s=Uh(n,Object.assign({},e.settings.characterReferences,{attribute:!0,subset:T3.unquoted[a][i]}))),s!==n&&(e.settings.quoteSmart&&C3(n,l)>C3(n,e.alternative)&&(l=e.alternative),s=l+Uh(n,Object.assign({},e.settings.characterReferences,{subset:(l==="'"?T3.single:T3.double)[a][i],attribute:!0}))+l),c+(s&&"="+s))}const Bwe=["<","&"];function jz(e,r,n,o){return n&&n.type==="element"&&(n.tagName==="script"||n.tagName==="style")?e.value:Uh(e.value,Object.assign({},o.settings.characterReferences,{subset:Bwe}))}function Fwe(e,r,n,o){return o.settings.allowDangerousHtml?e.value:jz(e,r,n,o)}function Hwe(e,r,n,o){return o.all(e)}const Uwe=B6("type",{invalid:qwe,unknown:Vwe,handlers:{comment:fwe,doctype:mwe,element:Lwe,raw:Fwe,root:Hwe,text:jz}});function qwe(e){throw new Error("Expected node, not `"+e+"`")}function Vwe(e){const r=e;throw new Error("Cannot compile unknown node `"+r.type+"`")}const Ywe={},Wwe={},Gwe=[];function Xwe(e,r){const n=r||Ywe,o=n.quote||'"',a=o==='"'?"'":'"';if(o!=='"'&&o!=="'")throw new Error("Invalid quote `"+o+"`, expected `'` or `\"`");return{one:Kwe,all:Zwe,settings:{omitOptionalTags:n.omitOptionalTags||!1,allowParseErrors:n.allowParseErrors||!1,allowDangerousCharacters:n.allowDangerousCharacters||!1,quoteSmart:n.quoteSmart||!1,preferUnquoted:n.preferUnquoted||!1,tightAttributes:n.tightAttributes||!1,upperDoctype:n.upperDoctype||!1,tightDoctype:n.tightDoctype||!1,bogusComments:n.bogusComments||!1,tightCommaSeparatedLists:n.tightCommaSeparatedLists||!1,tightSelfClosing:n.tightSelfClosing||!1,collapseEmptyAttributes:n.collapseEmptyAttributes||!1,allowDangerousHtml:n.allowDangerousHtml||!1,voids:n.voids||TL,characterReferences:n.characterReferences||Wwe,closeSelfClosing:n.closeSelfClosing||!1,closeEmptyElements:n.closeEmptyElements||!1},schema:n.space==="svg"?E1:d3,quote:o,alternative:a}.one(Array.isArray(e)?{type:"root",children:e}:e,void 0,void 0)}function Kwe(e,r,n){return Uwe(e,r,n,this)}function Zwe(e){const r=[],n=e&&e.children||Gwe;let o=-1;for(;++o<n.length;)r[o]=this.one(n[o],o,e);return r.join("")}function Qwe(e){const r=this,n={...r.data("settings"),...e};r.compiler=o;function o(a){return Xwe(a,n)}}const Fo=Kc(/[A-Za-z]/),Co=Kc(/[\dA-Za-z]/),Jwe=Kc(/[#-'*+\--9=?A-Z^-~]/);function R3(e){return e!==null&&(e<32||e===127)}const iE=Kc
`:" ")+i.indentLines(i.containerFlow(o,s.current()),r?Hz:N2e))),u(),c}}function N2e(e,r,n){return r===0?e:Hz(e,r,n)}function Hz(e,r,n){return(n?"":" ")+e}const D2e=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];Uz.peek=I2e;function $2e(){return{canContainEols:["delete"],enter:{strikethrough:O2e},exit:{strikethrough:M2e}}}function P2e(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:D2e}],handlers:{delete:Uz}}}function O2e(e){this.enter({type:"delete",children:[]},e)}function M2e(e){this.exit(e)}function Uz(e,r,n,o){const a=n.createTracker(o),i=n.enter("strikethrough");let l=a.move("~~");return l+=n.containerPhrasing(e,{...a.current(),before:l,after:"~"}),l+=a.move("~~"),i(),l}function I2e(){return"~"}function L2e(e){return e.length}function z2e(e,r){const n=r||{},o=(n.align||[]).concat(),a=n.stringLength||L2e,i=[],l=[],s=[],c=[];let u=0,d=-1;for(;++d<e.length;){const x=[],w=[];let k=-1;for(e[d].length>u&&(u=e[d].length);++k<e[d].length;){const C=j2e(e[d][k]);if(n.alignDelimiters!==!1){const _=a(C);w[k]=_,(c[k]===void 0||_>c[k])&&(c[k]=_)}x.push(C)}l[d]=x,s[d]=w}let p=-1;if(typeof o=="object"&&"length"in o)for(;++p<u;)i[p]=qz(o[p]);else{const x=qz(o);for(;++p<u;)i[p]=x}p=-1;const f=[],g=[];for(;++p<u;){const x=i[p];let w="",k="";x===99?(w=":",k=":"):x===108?w=":":x===114&&(k=":");let C=n.alignDelimiters===!1?1:Math.max(1,c[p]-w.length-k.length);const _=w+"-".repeat(C)+k;n.alignDelimiters!==!1&&(C=w.length+C+k.length,C>c[p]&&(c[p]=C),g[p]=C),f[p]=_}l.splice(1,0,f),s.splice(1,0,g),d=-1;const b=[];for(;++d<l.length;){const x=l[d],w=s[d];p=-1;const k=[];for(;++p<u;){const C=x[p]||"";let _="",T="";if(n.alignDelimiters!==!1){const R=c[p]-(w[p]||0),A=i[p];A===114?_=" ".repeat(R):A===99?R%2?(_=" ".repeat(R/2+.5),T=" ".repeat(R/2-.5)):(_=" ".repeat(R/2),T=_):T=" ".repeat(R)}n.delimiterStart!==!1&&!p&&k.push("|"),n.padding!==!1&&!(n.alignDelimiters===!1&&C==="")&&(n.delimiterStart!==!1||p)&&k.push(" "),n.alignDelimiters!==!1&&k.push(_),k.push(C),n.alignDelimiters!==!1&&k.push(T),n.padding!==!1&&k.push(" "),(n.delimiterEnd!==!1||p!==u-1)&&k.push("|")}b.push(n.delimiterEnd===!1?k.join("").replace(/ +$/,""):k.join(""))}return b.join(`
`)}function j2e(e){return e==null?"":String(e)}function qz(e){const r=typeof e=="string"?e.codePointAt(0):0;return r===67||r===99?99:r===76||r===108?108:r===82||r===114?114:0}function B2e(e,r,n,o){const a=n.enter("blockquote"),i=n.createTracker(o);i.move("> "),i.shift(2);const l=n.indentLines(n.containerFlow(e,i.current()),F2e);return a(),l}function F2e(e,r,n){return">"+(n?"":" ")+e}function H2e(e,r){return Vz(e,r.inConstruct,!0)&&!Vz(e,r.notInConstruct,!1)}function Vz(e,r,n){if(typeof r=="string"&&(r=[r]),!r||r.length===0)return n;let o=-1;for(;++o<r.length;)if(e.includes(r[o]))return!0;return!1}function Yz(e,r,n,o){let a=-1;for(;++a<n.unsafe.length;)if(n.unsafe[a].character===`
`&&H2e(n.stack,n.unsafe[a]))return/[ \t]/.test(o.before)?"":" ";return`\\
`}function U2e(e,r){const n=String(e);let o=n.indexOf(r),a=o,i=0,l=0;if(typeof r!="string")throw new TypeError("Expected substring");for(;o!==-1;)o===a?++i>l&&(l=i):i=1,a=o+r.length,o=n.indexOf(r,a);return l}function q2e(e,r){return!!(r.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function V2e(e){const r=e.options.fence||"`";if(r!=="`"&&r!=="~")throw new Error("Cannot serialize code with `"+r+"` for `options.fence`, expected `` ` `` or `~`");return r}function Y2e(e,r,n,o){const a=V2e(n),i=e.value||"",l=a==="`"?"GraveAccent":"Tilde";if(q2e(e,n)){const p=n.enter("codeIndented"),f=n.indentLines(i,W2e);return p(),f}const s=n.createTracker(o),c=a.repeat(Math.max(U2e(i,a)+1,3)),u=n.enter("codeFenced");let d=s.move(c);if(e.lang){const p=n.enter(`codeFencedLang${l}`);d+=s.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...s.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${l}`);d+=s.move(" "),d+=s.move(n.safe(e.meta,{before:d,after:`
`,encode:["`"],...s.current()})),p()}return d+=s.move(`
`),i&&(d+=s.move(i+`
`)),d+=s.move(c),u(),d}function W2e(e,r,n){return(n?"":" ")+e}function uE(e){const r=e.options.quote||'"';if(r!=='"'&&r!=="'")throw new Error("Cannot serialize title with `"+r+"` for `options.quote`, expected `\"`, or `'`");return r}function G2e(e,r,n,o){const a=uE(n),i=a==='"'?"Quote":"Apostrophe",l=n.enter("definition");let s=n.enter("label");const c=n.createTracker(o);let u=c.move("[");return u+=c.move(n.safe(n.associationId(e),{before:u,after:"]",...c.current()})),u+=c.move("]: "),s(),!e.url||/[\0- \u007F]/.test(e.url)?(s=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(s=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":`
`,...c.current()}))),s(),e.title&&(s=n.enter(`title${i}`),u+=c.move(" "+a),u+=c.move(n.safe(e.title,{before:u,after:a,...c.current()})),u+=c.move(a),s()),l(),u}function X2e(e){const r=e.options.emphasis||"*";if(r!=="*"&&r!=="_")throw new Error("Cannot serialize emphasis with `"+r+"` for `options.emphasis`, expected `*`, or `_`");return r}function z1(e){return"&#x"+e.toString(16).toUpperCase()+";"}function qh(e){if(e===null||xr(e)||Td(e))return 1;if(A3(e))return 2}function N3(e,r,n){const o=qh(e),a=qh(r);return o===void 0?a===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:a===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:o===1?a===void 0?{inside:!1,outside:!1}:a===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:a===void 0?{inside:!1,outside:!1}:a===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}Wz.peek=K2e;function Wz(e,r,n,o){const a=X2e(n),i=n.enter("emphasis"),l=n.createTracker(o),s=l.move(a);let c=l.move(n.containerPhrasing(e,{after:a,before:s,...l.current()}));const u=c.charCodeAt(0),d=N3(o.before.charCodeAt(o.before.length-1),u,a);d.inside&&(c=z1(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=N3(o.after.charCodeAt(0),p,a);f.inside&&(c=c.slice(0,-1)+z1(p));const g=l.move(a);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},s+c+g}function K2e(e,r,n){return n.options.emphasis||"*"}const Z2e={};function D3(e,r){const n=r||Z2e,o=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,a=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return Gz(e,o,a)}function Gz(e,r,n){if(Q2e(e)){if("value"in e)return e.type==="html"&&!n?"":e.value;if(r&&"alt"in e&&e.alt)return e.alt;if("children"in e)return Xz(e.children,r,n)}return Array.isArray(e)?Xz(e,r,n):""}function Xz(e,r,n){const o=[];let a=-1;for(;++a<e.length;)o[a]=Gz(e[a],r,n);return o.join("")}function Q2e(e){return!!(e&&typeof e=="object")}function J2e(e,r){let n=!1;return eE(e,function(o){if("value"in o&&/\r?\n|\r/.test(o.value)||o.type==="break")return n=!0,J6}),!!((!e.depth||e.depth<3)&&D3(e)&&(r.options.setext||n))}function e4e(e,r,n,o){const a=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(o);if(J2e(e,n)){const d=n.enter("headingSetext"),p=n.enter("phrasing"),f=n.containerPhrasing(e,{...i.current(),before:`
`,after:`
`});return p(),d(),f+`
`+(a===1?"=":"-").repeat(f.length-(Math.max(f.lastIndexOf("\r"),f.lastIndexOf(`
`))+1))}const l="#".repeat(a),s=n.enter("headingAtx"),c=n.enter("phrasing");i.move(l+" ");let u=n.containerPhrasing(e,{before:"# ",after:`
`,...i.current()});return/^[\t ]/.test(u)&&(u=z1(u.charCodeAt(0))+u.slice(1)),u=u?l+" "+u:l,n.options.closeAtx&&(u+=" "+l),c(),s(),u}Kz.peek=t4e;function Kz(e){return e.value||""}function t4e(){return"<"}Zz.peek=r4e;function Zz(e,r,n,o){const a=uE(n),i=a==='"'?"Quote":"Apostrophe",l=n.enter("image");let s=n.enter("label");const c=n.createTracker(o);let u=c.move("![");return u+=c.move(n.safe(e.alt,{before:u,after:"]",...c.current()})),u+=c.move("]("),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(s=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":")",...c.current()}))),s(),e.title&&(s=n.enter(`title${i}`),u+=c.move(" "+a),u+=c.move(n.safe(e.title,{before:u,after:a,...c.current()})),u+=c.move(a),s()),u+=c.move(")"),l(),u}function r4e(){return"!"}Qz.peek=n4e;function Qz(e,r,n,o){const a=e.referenceType,i=n.enter("imageReference");let l=n.enter("label");const s=n.createTracker(o);let c=s.move("![");const u=n.safe(e.alt,{before:c,after:"]",...s.current()});c+=s.move(u+"]["),l();const d=n.stack;n.stack=[],l=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...s.current()});return l(),n.stack=d,i(),a==="full"||!u||u!==p?c+=s.move(p+"]"):a==="shortcut"?c=c.slice(0,-1):c+=s.move("]"),c}function n4e(){return"!"}Jz.peek=o4e;function Jz(e,r,n){let o=e.value||"",a="`",i=-1;for(;new RegExp("(^|[^`])"+a+"([^`]|$)").test(o);)a+="`";for(/[^ \r\n]/.test(o)&&(/^[ \r\n]/.test(o)&&/[ \r\n]$/.test(o)||/^`|`$/.test(o))&&(o=" "+o+" ");++i<n.unsafe.length;){const l=n.unsafe[i],s=n.compilePattern(l);let c;if(l.atBreak)for(;c=s.exec(o);){let u=c.index;o.charCodeAt(u)===10&&o.charCodeAt(u-1)===13&&u--,o=o.slice(0,u)+" "+o.slice(c.index+1)}}return a+o+a}function o4e(){return"`"}function ej(e,r){const n=D3(e);return!!(!r.options.resourceLink&&e.url&&!e.title&&e.children&&e.children.length===1&&e.children[0].type==="text"&&(n===e.url||"mailto:"+n===e.url)&&/^[a-z][a-z+.-]+:/i.test(e.url)&&!/[\0- <>\u007F]/.test(e.url))}tj.peek=a4e;function tj(e,r,n,o){const a=uE(n),i=a==='"'?"Quote":"Apostrophe",l=n.createTracker(o);let s,c;if(ej(e,n)){const d=n.stack;n.stack=[],s=n.enter("autolink");let p=l.move("<");return p+=l.move(n.containerPhrasing(e,{before:p,after:">",...l.current()})),p+=l.move(">"),s(),n.stack=d,p}s=n.enter("link"),c=n.enter("label");let u=l.move("[");return u+=l.move(n.containerPhrasing(e,{before:u,after:"](",...l.current()})),u+=l.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),u+=l.move("<"),u+=l.move(n.safe(e.url,{before:u,after:">",...l.current()})),u+=l.move(">")):(c=n.enter("destinationRaw"),u+=l.move(n.safe(e.url,{before:u,after:e.title?" ":")",...l.current()}))),c(),e.title&&(c=n.enter(`title${i}`),u+=l.move(" "+a),u+=l.move(n.safe(e.title,{before:u,after:a,...l.current()})),u+=l.move(a),c()),u+=l.move(")"),s(),u}function a4e(e,r,n){return ej(e,n)?"<":"["}rj.peek=i4e;function rj(e,r,n,o){const a=e.referenceType,i=n.enter("linkReference");let l=n.enter("label");const s=n.createTracker(o);let c=s.move("[");const u=n.containerPhrasing(e,{before:c,after:"]",...s.current()});c+=s.move(u+"]["),l();const d=n.stack;n.stack=[],l=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...s.current()});return l(),n.stack=d,i(),a==="full"||!u||u!==p?c+=s.move(p+"]"):a==="shortcut"?c=c.slice(0,-1):c+=s.move("]"),c}function i4e(){return"["}function dE(e){const r=e.options.bullet||"*";if(r!=="*"&&r!=="+"&&r!=="-")throw new Error("Cannot serialize items with `"+r+"` for `options.bullet`, expected `*`, `+`, or `-`");return r}function l4e(e){const r=dE(e),n=e.options.bulletOther;if(!n)return r==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===r)throw new Error("Expected `bullet` (`"+r+"`) and `bulletOther` (`"+n+"`) to be different");return n}function s4e(e){const r=e.options.bulletOrdered||".";if(r!=="."
`,Nfr:"𝔑",NoBreak:"",NonBreakingSpace:" ",Nopf:"",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"𝒩",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacute:"Ó",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"",Or:"⩔",Oscr:"𝒪",Oslash:"Ø",Otilde:"Õ",Otimes:"⨷",Ouml:"Ö",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",Poincareplane:"",Popf:"",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"𝒫",Psi:"Ψ",QUOT:'"',Qfr:"𝔔",Qopf:"",Qscr:"𝒬",RBarr:"⤐",REG:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"𝕊",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"𝒮",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THORN:"Þ",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:" ",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",Theta:"Θ",ThickSpace:"",ThinSpace:"",Tilde:"",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"𝕋",TripleDot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"",UnionPlus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uuml:"Ü",VDash:"⊫",Vbar
`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:f,table:l,tableCell:c,tableRow:s}};function l(g,b,x,w){return u(d(g,x,w),g.align)}function s(g,b,x,w){const k=p(g,x,w),C=u([k]);return C.slice(0,C.indexOf(`
`))}function c(g,b,x,w){const k=x.enter("tableCell"),C=x.enter("phrasing"),_=x.containerPhrasing(g,{...w,before:i,after:i});return C(),k(),_}function u(g,b){return z2e(g,{align:b,alignDelimiters:o,padding:n,stringLength:a})}function d(g,b,x){const w=g.children;let k=-1;const C=[],_=b.enter("table");for(;++k<w.length;)C[k]=p(w[k],b,x);return _(),C}function p(g,b,x){const w=g.children;let k=-1;const C=[],_=b.enter("tableRow");for(;++k<w.length;)C[k]=c(w[k],g,b,x);return _(),C}function f(g,b,x){let w=aj.inlineCode(g,b,x);return x.stack.includes("tableCell")&&(w=w.replace(/\|/g,"\\$&")),w}}function D4e(){return{exit:{taskListCheckValueChecked:cj,taskListCheckValueUnchecked:cj,paragraph:P4e}}}function $4e(){return{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:O4e}}}function cj(e){const r=this.stack[this.stack.length-2];r.type,r.checked=e.type==="taskListCheckValueChecked"}function P4e(e){const r=this.stack[this.stack.length-2];if(r&&r.type==="listItem"&&typeof r.checked=="boolean"){const n=this.stack[this.stack.length-1];n.type;const o=n.children[0];if(o&&o.type==="text"){const a=r.children;let i=-1,l;for(;++i<a.length;){const s=a[i];if(s.type==="paragraph"){l=s;break}}l===n&&(o.value=o.value.slice(1),o.value.length===0?n.children.shift():n.position&&o.position&&typeof o.position.start.offset=="number"&&(o.position.start.column++,o.position.start.offset++,n.position.start=Object.assign({},o.position.start)))}}this.exit(e)}function O4e(e,r,n,o){const a=e.children[0],i=typeof e.checked=="boolean"&&a&&a.type==="paragraph",l="["+(e.checked?"x":" ")+"] ",s=n.createTracker(o);i&&s.move(l);let c=aj.listItem(e,r,n,{...o,...s.current()});return i&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,u)),c;function u(d){return d+l}}function M4e(){return[l2e(),R2e(),$2e(),E4e(),D4e()]}function I4e(e){return{extensions:[s2e(),A2e(e),P2e(),N4e(e),$4e()]}}function wa(e,r,n,o){const a=e.length;let i=0,l;if(r<0?r=-r>a?0:a+r:r=r>a?a:r,n=n>0?n:0,o.length<1e4)l=Array.from(o),l.unshift(r,n),e.splice(...l);else for(n&&e.splice(r,n);i<o.length;)l=o.slice(i,i+1e4),l.unshift(r,0),e.splice(...l),i+=1e4,r+=1e4}function ei(e,r){return e.length>0?(wa(e,e.length,0,r),e):r}const uj={}.hasOwnProperty;function dj(e){const r={};let n=-1;for(;++n<e.length;)L4e(r,e[n]);return r}function L4e(e,r){let n;for(n in r){const a=(uj.call(e,n)?e[n]:void 0)||(e[n]={}),i=r[n];let l;if(i)for(l in i){uj.call(a,l)||(a[l]=[]);const s=i[l];z4e(a[l],Array.isArray(s)?s:s?[s]:[])}}}function z4e(e,r){let n=-1;const o=[];for(;++n<r.length;)(r[n].add==="after"?e:o).push(r[n]);wa(e,0,0,o)}const j4e={tokenize:V4e,partial:!0},pj={tokenize:Y4e,partial:!0},hj={tokenize:W4e,partial:!0},fj={tokenize:G4e,partial:!0},B4e={tokenize:X4e,partial:!0},mj={name:"wwwAutolink",tokenize:U4e,previous:yj},gj={name:"protocolAutolink",tokenize:q4e,previous:bj},js={name:"emailAutolink",tokenize:H4e,previous:vj},Yl={};function F4e(){return{text:Yl}}let Rd=48;for(;Rd<123;)Yl[Rd]=js,Rd++,Rd===58?Rd=65:Rd===91&&(Rd=97);Yl[43]=js,Yl[45]=js,Yl[46]=js,Yl[95]=js,Yl[72]=[js,gj],Yl[104]=[js,gj],Yl[87]=[js,mj],Yl[119]=[js,mj];function H4e(e,r,n){const o=this;let a,i;return l;function l(p){return!fE(p)||!vj.call(o,o.previous)||mE(o.events)?n(p):(e.enter("literalAutolink"),e.enter("literalAutolinkEmail"),s(p))}function s(p){return fE(p)?(e.consume(p),s):p===64?(e.consume(p),c):n(p)}function c(p){return p===46?e.check(B4e,d,u)(p):p===45||p===95||Co(p)?(i=!0,e.consume(p),c):d(p)}function u(p){return e.consume(p),a=!0,c}function d(p){return i&&a&&Fo(o.previous)?(e.exit("literalAutolinkEmail"),e.exit("literalAutolink"),r(p)):n(p)}}function U4e(e,r,n){const o=this;return a;function a(l){return l!==87&&l!==119||!yj.call(o,o.previous)||mE(o.events)?n(l):(e.enter("literalAutolink"),e.enter("literalAutolinkWww"),e.check(j4e,e.attempt(pj,e.attempt(hj,i),n),n)(l))}function i(l){return e.exit("literalAutolinkWww"),e.exit("literalAutolink"),r(l)}}function q4e(e,r,n){const o=this;let a="",i=!1;return l;function l(p){return(p===72||p===104)&&bj.call(o,o.previous)&&!mE(o.events)?(e.enter("literalAutolink"),e.enter(
`;break}case-3:{l=`\r
`;break}case-2:{l=r?" ":" ";break}case-1:{if(!r&&a)continue;l=" ";break}default:l=String.fromCharCode(i)}a=i===-2,o.push(l)}return o.join("")}function X5e(e){const o={constructs:dj([V5e,...(e||{}).extensions||[]]),content:a(O5e),defined:[],document:a(I5e),flow:a(j5e),lazy:{},string:a(H5e),text:a(U5e)};return o;function a(i){return l;function l(s){return Y5e(o,i,s)}}}function K5e(e){for(;!Cj(e););return e}const Ij=/[\0\t\n\r]/g;function Z5e(){let e=1,r="",n=!0,o;return a;function a(i,l,s){const c=[];let u,d,p,f,g;for(i=r+(typeof i=="string"?i.toString():new TextDecoder(l||void 0).decode(i)),p=0,r="",n&&(i.charCodeAt(0)===65279&&p++,n=void 0);p<i.length;){if(Ij.lastIndex=p,u=Ij.exec(i),f=u&&u.index!==void 0?u.index:i.length,g=i.charCodeAt(f),!u){r=i.slice(p);break}if(g===10&&p===f&&o)c.push(-3),o=void 0;else switch(o&&(c.push(-5),o=void 0),p<f&&(c.push(i.slice(p,f)),e+=f-p),g){case 0:{c.push(65533),e++;break}case 9:{for(d=Math.ceil(e/4)*4,c.push(-2);e++<d;)c.push(-1);break}case 10:{c.push(-4),e=1;break}default:o=!0,e=1}p=f+1}return s&&(o&&c.push(-5),r&&c.push(r),c.push(null)),c}}function H1(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Lj(e.position):"start"in e||"end"in e?Lj(e):"line"in e||"column"in e?xE(e):""}function xE(e){return zj(e&&e.line)+":"+zj(e&&e.column)}function Lj(e){return xE(e&&e.start)+"-"+xE(e&&e.end)}function zj(e){return e&&typeof e=="number"?e:1}const jj={}.hasOwnProperty;function Bj(e,r,n){return typeof r!="string"&&(n=r,r=void 0),Q5e(n)(K5e(X5e(n).document().write(Z5e()(e,r,!0))))}function Q5e(e){const r={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:i(Qe),autolinkProtocol:P,autolinkEmail:P,atxHeading:i(Me),blockQuote:i(pe),characterEscape:P,characterReference:P,codeFenced:i(Ce),codeFencedFenceInfo:l,codeFencedFenceMeta:l,codeIndented:i(Ce,l),codeText:i(ce,l),codeTextData:P,data:P,codeFlowValue:P,definition:i(de),definitionDestinationString:l,definitionLabelString:l,definitionTitleString:l,emphasis:i(be),hardBreakEscape:i(Xe),hardBreakTrailing:i(Xe),htmlFlow:i(Ge,l),htmlFlowData:P,htmlText:i(Ge,l),htmlTextData:P,image:i(_t),label:l,link:i(Qe),listItem:i(Ke),listItemValue:f,listOrdered:i(St,p),listUnordered:i(St),paragraph:i(We),reference:z,referenceString:l,resourceDestinationString:l,resourceTitleString:l,setextHeading:i(Me),strong:i(st),thematicBreak:i($n)},exit:{atxHeading:c(),atxHeadingSequence:R,autolink:c(),autolinkEmail:re,autolinkProtocol:ee,blockQuote:c(),characterEscapeValue:O,characterReferenceMarkerHexadecimal:X,characterReferenceMarkerNumeric:X,characterReferenceValue:Z,characterReference:oe,codeFenced:c(w),codeFencedFence:x,codeFencedFenceInfo:g,codeFencedFenceMeta:b,codeFlowValue:O,codeIndented:c(k),codeText:c(q),codeTextData:O,data:O,definition:c(),definitionDestinationString:T,definitionLabelString:C,definitionTitleString:_,emphasis:c(),hardBreakEscape:c(L),hardBreakTrailing:c(L),htmlFlow:c(Y),htmlFlowData:O,htmlText:c(M),htmlTextData:O,image:c(U),label:G,labelText:V,lineEnding:B,link:c(I),listItem:c(),listOrdered:c(),listUnordered:c(),paragraph:c(),referenceString:W,resourceDestinationString:F,resourceTitleString:J,resource:Q,setextHeading:c(N),setextHeadingLineSequence:D,setextHeadingText:A,strong:c(),thematicBreak:c()}};Fj(r,(e||{}).mdastExtensions||[]);const n={};return o;function o(_e){let we={type:"root",children:[]};const rt={stack:[we],tokenStack:[],config:r,enter:s,exit:u,buffer:l,resume:d,data:n},at=[];let Dt=-1;for(;++Dt<_e.length;)if(_e[Dt][1].type==="listOrdered"||_e[Dt][1].type==="listUnordered")if(_e[Dt][0]==="enter")at.push(Dt);else{const Wr=at.pop();Dt=a(_e,Wr,Dt)}for(Dt=-1;++Dt<_e.length;){const Wr=r[_e[Dt][0]];jj.call(Wr,_e[Dt][1].type)&&Wr[_e[Dt][1].type].call(Object.assign({sliceSerialize:_e[Dt][2].sliceSerialize},rt),_e[Dt][1])}if(rt.tokenStack.length>0){const Wr=rt.tokenStack[rt.tokenStack.length-1];(Wr[1]||Hj).call(rt,void 0,Wr[0])}for(we.position={start:Zc(_e.length>0?_e[0][1].start:{line:1,column:1,offset:0}),end:Zc(_e.length>0?_e[_e.length-2][1].end:{line:1,column:1,offset:0})},Dt=-1;++
`}]}function n_e(e,r){const n=r.value?r.value+`
`:"",o={};r.lang&&(o.className=["language-"+r.lang]);let a={type:"element",tagName:"code",properties:o,children:[{type:"text",value:n}]};return r.meta&&(a.data={meta:r.meta}),e.patch(r,a),a=e.applyData(r,a),a={type:"element",tagName:"pre",properties:{},children:[a]},e.patch(r,a),a}function o_e(e,r){const n={type:"element",tagName:"del",properties:{},children:e.all(r)};return e.patch(r,n),e.applyData(r,n)}function a_e(e,r){const n={type:"element",tagName:"em",properties:{},children:e.all(r)};return e.patch(r,n),e.applyData(r,n)}function i_e(e,r){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",o=String(r.identifier).toUpperCase(),a=Vh(o.toLowerCase()),i=e.footnoteOrder.indexOf(o);let l,s=e.footnoteCounts.get(o);s===void 0?(s=0,e.footnoteOrder.push(o),l=e.footnoteOrder.length):l=i+1,s+=1,e.footnoteCounts.set(o,s);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+a,id:n+"fnref-"+a+(s>1?"-"+s:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(l)}]};e.patch(r,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(r,u),e.applyData(r,u)}function l_e(e,r){const n={type:"element",tagName:"h"+r.depth,properties:{},children:e.all(r)};return e.patch(r,n),e.applyData(r,n)}function s_e(e,r){if(e.options.allowDangerousHtml){const n={type:"raw",value:r.value};return e.patch(r,n),e.applyData(r,n)}}function Uj(e,r){const n=r.referenceType;let o="]";if(n==="collapsed"?o+="[]":n==="full"&&(o+="["+(r.label||r.identifier)+"]"),r.type==="imageReference")return[{type:"text",value:"!["+r.alt+o}];const a=e.all(r),i=a[0];i&&i.type==="text"?i.value="["+i.value:a.unshift({type:"text",value:"["});const l=a[a.length-1];return l&&l.type==="text"?l.value+=o:a.push({type:"text",value:o}),a}function c_e(e,r){const n=String(r.identifier).toUpperCase(),o=e.definitionById.get(n);if(!o)return Uj(e,r);const a={src:Vh(o.url||""),alt:r.alt};o.title!==null&&o.title!==void 0&&(a.title=o.title);const i={type:"element",tagName:"img",properties:a,children:[]};return e.patch(r,i),e.applyData(r,i)}function u_e(e,r){const n={src:Vh(r.url)};r.alt!==null&&r.alt!==void 0&&(n.alt=r.alt),r.title!==null&&r.title!==void 0&&(n.title=r.title);const o={type:"element",tagName:"img",properties:n,children:[]};return e.patch(r,o),e.applyData(r,o)}function d_e(e,r){const n={type:"text",value:r.value.replace(/\r?\n|\r/g," ")};e.patch(r,n);const o={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(r,o),e.applyData(r,o)}function p_e(e,r){const n=String(r.identifier).toUpperCase(),o=e.definitionById.get(n);if(!o)return Uj(e,r);const a={href:Vh(o.url||"")};o.title!==null&&o.title!==void 0&&(a.title=o.title);const i={type:"element",tagName:"a",properties:a,children:e.all(r)};return e.patch(r,i),e.applyData(r,i)}function h_e(e,r){const n={href:Vh(r.url)};r.title!==null&&r.title!==void 0&&(n.title=r.title);const o={type:"element",tagName:"a",properties:n,children:e.all(r)};return e.patch(r,o),e.applyData(r,o)}function f_e(e,r,n){const o=e.all(r),a=n?m_e(n):qj(r),i={},l=[];if(typeof r.checked=="boolean"){const d=o[0];let p;d&&d.type==="element"&&d.tagName==="p"?p=d:(p={type:"element",tagName:"p",properties:{},children:[]},o.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:r.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let s=-1;for(;++s<o.length;){const d=o[s];(a||s!==0||d.type!=="element"||d.tagName!=="p")&&l.push({type:"text",value:`
`}),d.type==="element"&&d.tagName==="p"&&!a?l.push(...d.children):l.push(d)}const c=o[o.length-1];c&&(a||c.type!=="element"||c.tagName!=="p")&&l.push({type:"text",value:`
`});const u={type:"element",tagName:"li",properties:i,children:l};return e.patch(r,u),e.applyData(r,u)}function m_e(e){let r=!1;if(e.type==="list"){r=e.spread||!1;const n=e.children;let o=-1;for(;!r&&++o<n.length;)r=qj(n[o])}return r}function qj(e){const r=e.spread;return r??e.children.length>1}function g_e(e,r){const n={},o=e.all(r);let a=-1;for(typeof r.start=="number"&&r.start!==1&&(n.start=r.start);++a<o.length;){const l=o[a];if(l.type==="element"&&l.tagName==="li"&&l.properties&&Array.isArray(l.properties.className)&&l.properties.className.includes("task-list-item")){n.className=["contains-task-list"];break}}const i={type:"element",tagName:r.ordered?"ol":"ul",properties:n,children:e.wrap(o,!0)};return e.patch(r,i),e.applyData(r,i)}function y_e(e,r){const n={type:"element",tagName:"p",properties:{},children:e.all(r)};return e.patch(r,n),e.applyData(r,n)}function b_e(e,r){const n={type:"root",children:e.wrap(e.all(r))};return e.patch(r,n),e.applyData(r,n)}function v_e(e,r){const n={type:"element",tagName:"strong",properties:{},children:e.all(r)};return e.patch(r,n),e.applyData(r,n)}function x_e(e,r){const n=e.all(r),o=n.shift(),a=[];if(o){const l={type:"element",tagName:"thead",properties:{},children:e.wrap([o],!0)};e.patch(r.children[0],l),a.push(l)}if(n.length>0){const l={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},s=zs(r.children[1]),c=k3(r.children[r.children.length-1]);s&&c&&(l.position={start:s,end:c}),a.push(l)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(a,!0)};return e.patch(r,i),e.applyData(r,i)}function w_e(e,r,n){const o=n?n.children:void 0,i=(o?o.indexOf(r):1)===0?"th":"td",l=n&&n.type==="table"?n.align:void 0,s=l?l.length:r.children.length;let c=-1;const u=[];for(;++c<s;){const p=r.children[c],f={},g=l?l[c]:void 0;g&&(f.align=g);let b={type:"element",tagName:i,properties:f,children:[]};p&&(b.children=e.all(p),e.patch(p,b),b=e.applyData(p,b)),u.push(b)}const d={type:"element",tagName:"tr",properties:{},children:e.wrap(u,!0)};return e.patch(r,d),e.applyData(r,d)}function k_e(e,r){const n={type:"element",tagName:"td",properties:{},children:e.all(r)};return e.patch(r,n),e.applyData(r,n)}const Vj=9,Yj=32;function __e(e){const r=String(e),n=/\r?\n|\r/g;let o=n.exec(r),a=0;const i=[];for(;o;)i.push(Wj(r.slice(a,o.index),a>0,!0),o[0]),a=o.index+o[0].length,o=n.exec(r);return i.push(Wj(r.slice(a),a>0,!1)),i.join("")}function Wj(e,r,n){let o=0,a=e.length;if(r){let i=e.codePointAt(o);for(;i===Vj||i===Yj;)o++,i=e.codePointAt(o)}if(n){let i=e.codePointAt(a-1);for(;i===Vj||i===Yj;)a--,i=e.codePointAt(a-1)}return a>o?e.slice(o,a):""}function E_e(e,r){const n={type:"text",value:__e(String(r.value))};return e.patch(r,n),e.applyData(r,n)}function S_e(e,r){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(r,n),e.applyData(r,n)}const C_e={blockquote:t_e,break:r_e,code:n_e,delete:o_e,emphasis:a_e,footnoteReference:i_e,heading:l_e,html:s_e,imageReference:c_e,image:u_e,inlineCode:d_e,linkReference:p_e,link:h_e,listItem:f_e,list:g_e,paragraph:y_e,root:b_e,strong:v_e,table:x_e,tableCell:k_e,tableRow:w_e,text:E_e,thematicBreak:S_e,toml:M3,yaml:M3,definition:M3,footnoteDefinition:M3};function M3(){}function T_e(e,r){const n=[{type:"text",value:"↩"}];return r>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(r)}]}),n}function R_e(e,r){return"Back to reference "+(e+1)+(r>1?"-"+r:"")}function A_e(e){const r=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||T_e,o=e.options.footnoteBackLabel||R_e,a=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",l=e.options.footnoteLabelProperties||{className:["sr-only"]},s=[];let c=-1;for(;++c<e.footnoteOrder.length;){const u=e.footnoteById.get(e.footnoteOrder[c]);if(!u)continue;const d=e.all(u),p=String(u.identifier).toUpperCase(),f=Vh(p.toLowerCase());let g=0;const b=[],x=e.footnoteCounts.get(p);for(;x!==void 0&&++g<=x;){b.length>0&&b.push({type:"text",value:" "});let C=typeof n=="string"?n
`},{type:"element",tagName:"ol",properties:{},children:e.wrap(s,!0)},{type:"text",value:`
`}]}}const wE={}.hasOwnProperty,N_e={};function D_e(e,r){const n=r||N_e,o=new Map,a=new Map,i=new Map,l={...C_e,...n.handlers},s={all:u,applyData:P_e,definitionById:o,footnoteById:a,footnoteCounts:i,footnoteOrder:[],handlers:l,one:c,options:n,patch:$_e,wrap:M_e};return eE(e,function(d){if(d.type==="definition"||d.type==="footnoteDefinition"){const p=d.type==="definition"?o:a,f=String(d.identifier).toUpperCase();p.has(f)||p.set(f,d)}}),s;function c(d,p){const f=d.type,g=s.handlers[f];if(wE.call(s.handlers,f)&&g)return g(s,d,p);if(s.options.passThrough&&s.options.passThrough.includes(f)){if("children"in d){const{children:x,...w}=d,k=xd(w);return k.children=s.all(d),k}return xd(d)}return(s.options.unknownHandler||O_e)(s,d,p)}function u(d){const p=[];if("children"in d){const f=d.children;let g=-1;for(;++g<f.length;){const b=s.one(f[g],d);if(b){if(g&&f[g-1].type==="break"&&(!Array.isArray(b)&&b.type==="text"&&(b.value=Gj(b.value)),!Array.isArray(b)&&b.type==="element")){const x=b.children[0];x&&x.type==="text"&&(x.value=Gj(x.value))}Array.isArray(b)?p.push(...b):p.push(b)}}}return p}}function $_e(e,r){e.position&&(r.position=yz(e))}function P_e(e,r){let n=r;if(e&&e.data){const o=e.data.hName,a=e.data.hChildren,i=e.data.hProperties;if(typeof o=="string")if(n.type==="element")n.tagName=o;else{const l="children"in n?n.children:[n];n={type:"element",tagName:o,properties:{},children:l}}n.type==="element"&&i&&Object.assign(n.properties,xd(i)),"children"in n&&n.children&&a!==null&&a!==void 0&&(n.children=a)}return n}function O_e(e,r){const n=r.data||{},o="value"in r&&!(wE.call(n,"hProperties")||wE.call(n,"hChildren"))?{type:"text",value:r.value}:{type:"element",tagName:"div",properties:{},children:e.all(r)};return e.patch(r,o),e.applyData(r,o)}function M_e(e,r){const n=[];let o=-1;for(r&&n.push({type:"text",value:`
`});++o<e.length;)o&&n.push({type:"text",value:`
`}),n.push(e[o]);return r&&e.length>0&&n.push({type:"text",value:`
`}),n}function Gj(e){let r=0,n=e.charCodeAt(r);for(;n===9||n===32;)r++,n=e.charCodeAt(r);return e.slice(r)}function Xj(e,r){const n=D_e(e,r),o=n.one(e,void 0),a=A_e(n),i=Array.isArray(o)?{type:"root",children:o}:o||{type:"root",children:[]};return a&&i.children.push({type:"text",value:`
`},a),i}function I_e(e,r){return e&&"run"in e?async function(n,o){const a=Xj(n,{file:o,...r});await e.run(a,o)}:function(n,o){return Xj(n,{file:o,...e||r})}}function Kj(e){if(e)throw e}var kE,Zj;function L_e(){if(Zj)return kE;Zj=1;var e=Object.prototype.hasOwnProperty,r=Object.prototype.toString,n=Object.defineProperty,o=Object.getOwnPropertyDescriptor,a=function(u){return typeof Array.isArray=="function"?Array.isArray(u):r.call(u)==="[object Array]"},i=function(u){if(!u||r.call(u)!=="[object Object]")return!1;var d=e.call(u,"constructor"),p=u.constructor&&u.constructor.prototype&&e.call(u.constructor.prototype,"isPrototypeOf");if(u.constructor&&!d&&!p)return!1;var f;for(f in u);return typeof f>"u"||e.call(u,f)},l=function(u,d){n&&d.name==="__proto__"?n(u,d.name,{enumerable:!0,configurable:!0,value:d.newValue,writable:!0}):u[d.name]=d.newValue},s=function(u,d){if(d==="__proto__")if(e.call(u,d)){if(o)return o(u,d).value}else return;return u[d]};return kE=function c(){var u,d,p,f,g,b,x=arguments[0],w=1,k=arguments.length,C=!1;for(typeof x=="boolean"&&(C=x,x=arguments[1]||{},w=2),(x==null||typeof x!="object"&&typeof x!="function")&&(x={});w<k;++w)if(u=arguments[w],u!=null)for(d in u)p=s(x,d),f=s(u,d),x!==f&&(C&&f&&(i(f)||(g=a(f)))?(g?(g=!1,b=p&&a(p)?p:[]):b=p&&i(p)?p:{},l(x,{name:d,newValue:c(C,b,f)})):typeof f<"u"&&l(x,{name:d,newValue:f}));return x},kE}var z_e=L_e();const _E=t3(z_e);function EE(e){if(typeof e!="object"||e===null)return!1;const r=Object.getPrototypeOf(e);return(r===null||r===Object.prototype||Object.getPrototypeOf(r)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function j_e(){const e=[],r={run:n,use:o};return r;function n(...a){let i=-1;const l=a.pop();if(typeof l!="function")throw new TypeError("Expected function as last argument, not "+l);s(null,...a);function s(c,...u){const d=e[++i];let p=-1;if(c){l(c);return}for(;++p<a.length;)(u[p]===null||u[p]===void 0)&&(u[p]=a[p]);a=u,d?B_e(d,s)(...u):l(null,...u)}}function o(a){if(typeof a!="function")throw new TypeError("Expected `middelware` to be a function, not "+a);return e.push(a),r}}function B_e(e,r){let n;return o;function o(...l){const s=e.length>l.length;let c;s&&l.push(a);try{c=e.apply(this,l)}catch(u){const d=u;if(s&&n)throw d;return a(d)}s||(c&&c.then&&typeof c.then=="function"?c.then(i,a):c instanceof Error?a(c):i(c))}function a(l,...s){n||(n=!0,r(l,...s))}function i(l){a(null,l)}}let Zo=class extends Error{constructor(r,n,o){super(),typeof n=="string"&&(o=n,n=void 0);let a="",i={},l=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof r=="string"?a=r:!i.cause&&r&&(l=!0,a=r.message,i.cause=r),!i.ruleId&&!i.source&&typeof o=="string"){const c=o.indexOf(":");c===-1?i.ruleId=o:(i.source=o.slice(0,c),i.ruleId=o.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const s=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=s?s.column:void 0,this.fatal=void 0,this.file,this.message=a,this.line=s?s.line:void 0,this.name=H1(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=l&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual,this.expected,this.note,this.url}};Zo.prototype.file="",Zo.prototype.name="",Zo.prototype.reason="",Zo.prototype.message="",Zo.prototype.stack="",Zo.prototype.column=void 0,Zo.prototype.line=void 0,Zo.prototype.ancestors=void 0,Zo.prototype.cause=void 0,Zo.prototype.fatal=void 0,Zo.prototype.place=void 0,Zo.prototype.ruleId=void 0,Zo.prototype.source=void 0;const Wl={basename:F_e,dirname:H_e,extname:U_e,join:q_e,sep:"/"};function F_e(e,r){if(r!==void 0&&typeof r!="string")throw new TypeError('"ext" argument must be a string');U1(e);let n=0,o=-1,a=e.length,i;if(r===void 0||r.length===0||r.length>e.length){for(;a--;)if(e.codePointAt(a)===47){if(i){n=a+1;break}}else o<0&&(i=!0,o=a+1);return o<0?"
`)}reversed(r=!1){if(!r)return new ti(this.target,this.source);const[n]=jE(this.target,this.source,"directed");return n??new ti(this.target,this.source,new Set)}}const bB={asc:(e,r)=>e>r,desc:(e,r)=>e<r};function Q6e(e,r){let[n,...o]=r;if(!J6e(n)){let i=BE(...o);return e(n,i)}let a=BE(n,...o);return i=>e(i,a)}function BE(e,r,...n){let o=typeof e=="function"?e:e[0],a=typeof e=="function"?"asc":e[1],{[a]:i}=bB,l=r===void 0?void 0:BE(r,...n);return(s,c)=>{let u=o(s),d=o(c);return i(u,d)?1:i(d,u)?-1:l?.(s,c)??0}}function J6e(e){if(vB(e))return!0;if(typeof e!="object"||!Array.isArray(e))return!1;let[r,n,...o]=e;return vB(r)&&typeof n=="string"&&n in bB&&o.length===0}const vB=e=>typeof e=="function"&&e.length===1;function xB(...e){return ba(Object.entries,e)}function eEe(...e){return ba(tEe,e)}function tEe(e,r){if(e===r||Object.is(e,r))return!0;if(typeof e!="object"||!e||typeof r!="object"||!r)return!1;if(e instanceof Map&&r instanceof Map)return rEe(e,r);if(e instanceof Set&&r instanceof Set)return nEe(e,r);let n=Object.keys(e);if(n.length!==Object.keys(r).length)return!1;for(let o of n){if(!Object.hasOwn(r,o))return!1;let{[o]:a}=e,{[o]:i}=r;if(a!==i||!Object.is(a,i))return!1}return!0}function rEe(e,r){if(e.size!==r.size)return!1;for(let[n,o]of e){let a=r.get(n);if(o!==a||!Object.is(o,a))return!1}return!0}function nEe(e,r){if(e.size!==r.size)return!1;for(let n of e)if(!r.has(n))return!1;return!0}function oEe(...e){return ba(aEe,e)}const aEe=e=>e.at(-1);function iEe(e,...r){return typeof e=="string"||typeof e=="number"||typeof e=="symbol"?n=>wB(n,e,...r):wB(e,...r)}function wB(e,...r){let n=e;for(let o of r){if(n==null)return;n=n[o]}return n}function FE(...e){return ba(lEe,e)}function lEe(e,r){let n=[...e];return n.sort(r),n}function sEe(...e){return Q6e(cEe,e)}const cEe=(e,r)=>[...e].sort(r);function kB(e,r,n){return typeof r=="number"||r===void 0?o=>o.split(e,r):e.split(r,n)}function j3(...e){return ba(Object.values,e)}class B3{constructor(r,n){this.$model=r,this.$element=n,this.id=this.$element.id,this._literalId=this.$element.id;const[o,a]=Qye(this.id);o?(this.imported={from:o,fqn:a},this.hierarchyLevel=o3(a)):(this.imported=null,this.hierarchyLevel=o3(this.id))}id;_literalId;hierarchyLevel;imported;get name(){return g1(this.id)}get parent(){return this.$model.parent(this)}get kind(){return this.$element.kind}get shape(){return this.style.shape}get color(){return this.style.color}get icon(){return this.style.icon??null}get tags(){return cr(this,Symbol.for("tags"),()=>zE([...this.$element.tags??[],...this.$model.specification.elements[this.$element.kind]?.tags??[]]))}get title(){return this.$element.title}get hasSummary(){return!!this.$element.summary&&!!this.$element.description&&!eEe(this.$element.summary,this.$element.description)}get summary(){return Kt.memoize(this,"summary",i3(this.$element))}get description(){return Kt.memoize(this,"description",l3(this.$element))}get technology(){return this.$element.technology??null}get links(){return this.$element.links??[]}get defaultView(){return cr(this,Symbol.for("defaultView"),()=>sB(this.scopedViews())??null)}get isRoot(){return this.parent===null}get style(){return cr(this,"style",()=>q1({shape:this.$model.$styles.defaults.shape,color:this.$model.$styles.defaults.color,border:this.$model.$styles.defaults.border,opacity:this.$model.$styles.defaults.opacity,size:this.$model.$styles.defaults.size,padding:this.$model.$styles.defaults.padding,textSize:this.$model.$styles.defaults.text,...this.$element.style}))}isAncestorOf(r){return Un(this,r)}isDescendantOf(r){return Un(r,this)}ancestors(){return this.$model.ancestors(this)}commonAncestor(r){const n=b1(this.id,r.id);return n?this.$model.element(n):null}children(){return this.$model.children(this)}descendants(r){return r?PI([...this.$model.descendants(this)],r)[Symbol.iterator]():this.$model.descendants(this)}siblings(){return this.$model.siblings(this)}*ascendingSiblings(){yield*this.siblings();for(const r of this.ancestors())yield*r.siblings()}*descendingSiblings(){for(const r of[...this.ancestors()].reverse())yield*r.sibling
`),"View title cannot contain newlines"),e.includes(ka)){const r=e.split(ka).map(n=>n.trim()).filter(n=>n.length>0);return _h(r,1)?r:[""]}return[e.trim()]},F3=e=>HE(e).join(ka),uEe=e=>{const r=HE(e);return _h(r,2)?r.slice(0,-1).join(ka):null},dEe=e=>e.includes(ka)?HE(e).pop()??e:e.trim();class pEe{constructor(r){this.$model=r;const n=this.$deployments=r.$data.deployments,o=j3(n.elements);for(const a of Vc(o)){const i=this.addElement(a);for(const l of i.tags)this.#s.get(l).add(i);i.isInstance()&&this.#a.get(i.element.id).add(i)}for(const a of j3(n.relations)){const i=this.addRelation(a);for(const l of i.tags)this.#s.get(l).add(i)}}#e=new Map;#t=new Map;#r=new so(()=>new Set);#a=new so(()=>new Set);#i=new Set;#n=new Map;#o=new so(()=>new Set);#l=new so(()=>new Set);#c=new so(()=>new Set);#s=new so(()=>new Set);#u=new Map;$deployments;get $styles(){return this.$model.$styles}element(r){if(r instanceof fB||r instanceof mB)return r;const n=hr(r);return mt(this.#e.get(n),`Element ${n} not found`)}findElement(r){return this.#e.get(r)??null}node(r){const n=this.element(r);return nt(n.isDeploymentNode(),`Element ${n.id} is not a deployment node`),n}findNode(r){const n=this.findElement(r);return n?(nt(n.isDeploymentNode(),`Element ${n?.id} is not a deployment node`),n):null}instance(r){const n=this.element(r);return nt(n.isInstance(),`Element ${n.id} is not a deployed instance`),n}findInstance(r){const n=this.findElement(r);return n?(nt(n.isInstance(),`Element ${n?.id} is not a deployed instance`),n):null}roots(){return this.#i.values()}elements(){return this.#e.values()}*nodes(){for(const r of this.#e.values())r.isDeploymentNode()&&(yield r)}*nodesOfKind(r){for(const n of this.#e.values())n.isDeploymentNode()&&n.kind===r&&(yield n)}*instances(){for(const r of this.#e.values())r.isInstance()&&(yield r)}*instancesOf(r){const n=hr(r),o=this.#a.get(n);o&&(yield*o)}deploymentRef(r){if(W1.isInsideInstanceRef(r)){const{deployment:n,element:o}=r;return N6e(this.#u,`${n}@${o}`,()=>new G6e(this.instance(n),this.$model.element(o)))}return this.element(r.deployment)}relationships(){return this.#n.values()}relationship(r){return mt(this.#n.get(hr(r)),`DeploymentRelationModel ${r} not found`)}findRelationship(r){return this.#n.get(r)??null}*views(){for(const r of this.$model.views())r.isDeploymentView()&&(yield r)}parent(r){const n=hr(r);return this.#t.get(n)||null}children(r){const n=hr(r);return this.#r.get(n)}*siblings(r){const n=hr(r),o=this.parent(r)?.children()??this.roots();for(const a of o)a.id!==n&&(yield a)}*ancestors(r){let n=hr(r),o;for(;o=this.#t.get(n);)yield o,n=o.id}*descendants(r,n="desc"){for(const o of this.children(r))n==="asc"?(yield o,yield*this.descendants(o.id)):(yield*this.descendants(o.id),yield o)}*incoming(r,n="all"){const o=hr(r);for(const a of this.#o.get(o))switch(!0){case n==="all":case(n==="direct"&&a.target.id===o):case(n==="to-descendants"&&a.target.id!==o):yield a;break}}*outgoing(r,n="all"){const o=hr(r);for(const a of this.#l.get(o))switch(!0){case n==="all":case(n==="direct"&&a.source.id===o):case(n==="from-descendants"&&a.source.id!==o):yield a;break}}addElement(r){if(this.#e.has(r.id))throw new Error(`Element ${r.id} already exists`);const n=b6e(r)?new fB(this,Object.freeze(r)):new mB(this,Object.freeze(r),this.$model.element(r.element));this.#e.set(n.id,n);const o=n3(n.id);return o?(nt(this.#e.has(o),`Parent ${o} of ${n.id} not found`),this.#t.set(n.id,this.node(o)),this.#r.get(o).add(n)):(nt(n.isDeploymentNode(),`Root element ${n.id} is not a deployment node`),this.#i.add(n)),n}addRelation(r){if(this.#n.has(r.id))throw new Error(`Relation ${r.id} already exists`);const n=new X6e(this,Object.freeze(r));this.#n.set(n.id,n),this.#o.get(n.target.id).add(n),this.#l.get(n.source.id).add(n);const o=n.boundary?.id??null;if(o)for(const a of[o,...bd(o)])this.#c.get(a).add(n);for(const a of bd(n.source.id)){if(a===o)break;this.#l.get(a).add(n)}for(const a of bd(n.target.id)){if(a===o)break;this.#o.get(a).add(n)}return n}}class _B{constructor(r,n){this.model=r,this.$relationship=n,this.source=r.element(W1.flatte
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/var QEe={outline:{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},filled:{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"currentColor",stroke:"none"}};/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const yt=(e,r,n,o)=>{const a=E.forwardRef(({color:i="currentColor",size:l=24,stroke:s=2,title:c,className:u,children:d,...p},f)=>E.createElement("svg",{ref:f,...QEe[e],width:l,height:l,className:["tabler-icon",`tabler-icon-${r}`,u].join(" "),...e==="filled"?{fill:i}:{strokeWidth:s,stroke:i},...p},[c&&E.createElement("title",{key:"svg-title"},c),...o.map(([g,b])=>E.createElement(g,b)),...Array.isArray(d)?d:[d]]));return a.displayName=`${n}`,a};/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const JEe=[["path",{d:"M12 6m-7 0a7 3 0 1 0 14 0a7 3 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M5 6v12c0 1.657 3.134 3 7 3s7 -1.343 7 -3v-12",key:"svg-1"}]],zB=yt("outline","cylinder","Cylinder",JEe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const e8e=[["path",{d:"M21 14.008v-5.018a1.98 1.98 0 0 0 -1 -1.717l-4 -2.008a2.016 2.016 0 0 0 -2 0l-10 5.008c-.619 .355 -1 1.01 -1 1.718v5.018c0 .709 .381 1.363 1 1.717l4 2.008a2.016 2.016 0 0 0 2 0l10 -5.008c.619 -.355 1 -1.01 1 -1.718z",key:"svg-0"}],["path",{d:"M9 21v-7.5",key:"svg-1"}],["path",{d:"M9 13.5l11.5 -5.5",key:"svg-2"}],["path",{d:"M3.5 11l5.5 2.5",key:"svg-3"}]],t8e=yt("outline","rectangular-prism","RectangularPrism",e8e);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const r8e=[["path",{d:"M3 15m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z",key:"svg-0"}],["path",{d:"M10 15m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z",key:"svg-1"}],["path",{d:"M17 15m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z",key:"svg-2"}],["path",{d:"M5 11v-3a3 3 0 0 1 3 -3h8a3 3 0 0 1 3 3v3",key:"svg-3"}],["path",{d:"M16.5 8.5l2.5 2.5l2.5 -2.5",key:"svg-4"}]],n8e=yt("outline","reorder","Reorder",r8e);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const o8e=[["path",{d:"M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0",key:"svg-0"}],["path",{d:"M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2",key:"svg-1"}]],a8e=yt("outline","user","User",o8e);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const i8e=[["path",{d:"M6 5a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2v-14z",key:"svg-0"}],["path",{d:"M11 4h2",key:"svg-1"}],["path",{d:"M12 17v.01",key:"svg-2"}]],l8e=yt("outline","device-mobile","DeviceMobile",i8e);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const s8e=[["path",{d:"M4 8h16",key:"svg-0"}],["path",{d:"M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z",key:"svg-1"}],["path",{d:"M8 4v4",key:"svg-2"}]],c8e=yt("outline","browser","Browser",s8e),ZE=E.createContext(null);function u8e({value:e,children:r}){return E.useContext(ZE)?y.jsx(y.Fragment,{children:r}):y.jsx(ZE.Provider,{value:e,children:r})}function q3({element:e,className:r,style:n}){const o=E.useContext(ZE);if(!e||!e.icon||e.icon==="none")return null;let a;return e.icon.startsWith("http://")||e.icon.startsWith("https://")?a=y.jsx("img",{src:e.icon,alt:e.title}):o&&(a=y.jsx(o,{node:e})),a?y.jsx("div",{className:Je(r,"likec4-element-icon"),"data-likec4-icon":e.icon,style:n,children:a}):null}const d8e={browser:c8e,cylinder:zB,mobile:l8e,person:a8e,queue:n8e,rectangle:t8e,storage:zB};function p8e({element:e,className:r}){const n=y.jsx(q3,{element:e,className:r});if(n)return n;const o=d8e[e.shape];return y.jsx("div",{className:Je(r,"likec4-shape-icon"),children:y.jsx(o,{})})}function Xh(e){const r=E.useRef(e);return r.current=e,E.useMemo(()=>Object.freeze({get current(){return r.current}}),[])}function jB(e){const r=Xh(e);E.useEffect(()=>()=>{r.current()},[])}function V3(e,r,n,o=0){const a=E.useRef(void 0),i=E.useRef(void 0),l=E.useRef(e),s=E.useRef(void 0),c=()=>{a.current&&(clearTimeout(a.current),a.current=void 0),i.current&&(clearTimeout(i.current),i.current=void 0)};return jB(c),E.useEffect(()=>{l.current=e},r),E.useMemo(()=>{const u=()=>{if(c(),!s.current)return;const p=s.current;s.current=void 0,l.current.apply(p.this,p.args)},d=function(...p){a.current&&clearTimeout(a.current),s.current={args:p,this:this},a.current=setTimeout(u,n),o>0&&!i.current&&(i.current=setTimeout(u,o))};return Object.defineProperties(d,{length:{value:e.length},name:{value:`${e.name||"anonymous"}__debounced__${n}`}}),d},[n,o,...r])}const h8e=()=>{},Y3=typeof globalThis<"u"&&typeof navigator<"u"&&typeof document<"u";function f8e(e){const r=Xh(e),n=E.useRef(0),o=E.useCallback(()=>{Y3&&n.current&&(cancelAnimationFrame(n.current),n.current=0)},[]);return jB(o),[E.useMemo(()=>{const a=(...i)=>{Y3&&(o(),n.current=requestAnimationFrame(()=>{r.current(...i),n.current=0}))};return Object.defineProperties(a,{length:{value:e.length},name:{value:`${e.name||"anonymous"}__raf`}}),a},[]),o]}const m8e=(e,r)=>{if(e===r)return!0;if(e.length!==r.length)return!1;for(const[n,o]of e.entries())if(o!==r[n])return!1;return!0};function BB(e,r,n=m8e,o=E.useEffect,...a){const i=E.useRef(void 0);(i.current===void 0||Y3&&!n(i.current,r))&&(i.current=r),o(e,i.current,...a)}function g8e(e,r,n,o=0){E.useEffect(V3(e,r,n,o),r)}function FB(){const e=E.useRef(!0);return E.useEffect(()=>{e.current=!1},[]),e.current}const QE=Y3?E.useLayoutEffect:E.useEffect;function y8e(e){E.useEffect(()=>{e()},[])}function HB(e,r){const[n,o]=f8e(e);E.useEffect(()=>(n(),o),r)}const b8e=e=>(e+1)%Number.MAX_SAFE_INTEGER;function v8e(){const[,e]=E.useState(0);return E.useCallback(()=>{e(b8e)},[])}function UB(e,r){const n=FB();E.useEffect(n?h8e:e,r)}const x8e=e=>{e&&clearTimeout(e)};function W3(e,r){const n=Xh(e),o=Xh(r),a=E.useRef(null),i=E.useCallback(()=>{x8e(a.current)},[]),l=E.useCallback(()=>{o.current!==void 0&&(i(),a.current=setTimeout(()=>{n.current()},o.current))},[]);return E.useEffect(()=>(l(),i),[r]),[i,l]}const qB=(e,r,n)=>{const o=E.useRef(void 0);return(o.current===void 0||!n(o.current,r))&&(o.current=r),E.useMemo(e,o.current)};function an(e){if(typeof e=="string"||typeof e=="number")return""+e;let r="";if(Array.isArray(e))for(let n=0,o;n<e.length;n++)(o=an(e[n]))!==""&&(r+=(r&&" ")+o);else for(let n in e)e[n]&&(r+=(r&&" ")+n);return r}var w8e={value:()=>{}};function G3(){for(var e=0,r=arguments.length,n={},o;e<r;++e){if(!(o=arguments[e]+"")||o in n||/[\s.]/.test(o))throw new Error("illegal type: "+o);n[o]=[]}return new X3(n)}function X3(e){this._=e}function k8e(e,r){return e.trim().split(/^|\s+/).map(function(n){var o="",a=n.indexOf(".");if(a>=0&&(o=n.slice(a+1),n=n.slice(0,a)),n&&!r.hasOwnProperty(n))throw new Error("unknown type: "+n);retu
* @license React
* use-sync-external-store-shim.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var AH;function JCe(){if(AH)return P8;AH=1;var e=Xr;function r(p,f){return p===f&&(p!==0||1/p===1/f)||p!==p&&f!==f}var n=typeof Object.is=="function"?Object.is:r,o=e.useState,a=e.useEffect,i=e.useLayoutEffect,l=e.useDebugValue;function s(p,f){var g=f(),b=o({inst:{value:g,getSnapshot:f}}),x=b[0].inst,w=b[1];return i(function(){x.value=g,x.getSnapshot=f,c(x)&&w({inst:x})},[p,g,f]),a(function(){return c(x)&&w({inst:x}),p(function(){c(x)&&w({inst:x})})},[p]),l(g),g}function c(p){var f=p.getSnapshot;p=p.value;try{var g=f();return!n(p,g)}catch{return!0}}function u(p,f){return f()}var d=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?u:s;return P8.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:d,P8}var NH;function DH(){return NH||(NH=1,RH.exports=JCe()),RH.exports}/**
* @license React
* use-sync-external-store-shim/with-selector.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var $H;function eTe(){if($H)return $8;$H=1;var e=Xr,r=DH();function n(u,d){return u===d&&(u!==0||1/u===1/d)||u!==u&&d!==d}var o=typeof Object.is=="function"?Object.is:n,a=r.useSyncExternalStore,i=e.useRef,l=e.useEffect,s=e.useMemo,c=e.useDebugValue;return $8.useSyncExternalStoreWithSelector=function(u,d,p,f,g){var b=i(null);if(b.current===null){var x={hasValue:!1,value:null};b.current=x}else x=b.current;b=s(function(){function k(A){if(!C){if(C=!0,_=A,A=f(A),g!==void 0&&x.hasValue){var D=x.value;if(g(D,A))return T=D}return T=A}if(D=T,o(_,A))return D;var N=f(A);return g!==void 0&&g(D,N)?(_=A,D):(_=A,T=N)}var C=!1,_,T,R=p===void 0?null:p;return[function(){return k(d())},R===null?void 0:function(){return k(R())}]},[d,p,f,g]);var w=a(u,b[0],b[1]);return l(function(){x.hasValue=!0,x.value=w},[w]),c(w),w},$8}var PH;function tTe(){return PH||(PH=1,TH.exports=eTe()),TH.exports}var OH=tTe();const rTe=D8(OH),nTe={},MH=e=>{let r;const n=new Set,o=(s,c)=>{const u=typeof s=="function"?s(r):s;if(!Object.is(u,r)){const d=r;r=c??(typeof u!="object"||u===null)?u:Object.assign({},r,u),n.forEach(p=>p(r,d))}},a=()=>r,i={setState:o,getState:a,getInitialState:()=>l,subscribe:s=>(n.add(s),()=>n.delete(s)),destroy:()=>{(nTe?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},l=r=e(o,a,i);return i},oTe=e=>e?MH(e):MH,{useDebugValue:aTe}=Xr,{useSyncExternalStoreWithSelector:iTe}=rTe,lTe=e=>e;function IH(e,r=lTe,n){const o=iTe(e.subscribe,e.getState,e.getServerState||e.getInitialState,r,n);return aTe(o),o}const LH=(e,r)=>{const n=oTe(e),o=(a,i=r)=>IH(n,a,i);return Object.assign(o,n),o},sTe=(e,r)=>e?LH(e,r):LH;function Ar(e,r){if(Object.is(e,r))return!0;if(typeof e!="object"||e===null||typeof r!="object"||r===null)return!1;if(e instanceof Map&&r instanceof Map){if(e.size!==r.size)return!1;for(const[o,a]of e)if(!Object.is(a,r.get(o)))return!1;return!0}if(e instanceof Set&&r instanceof Set){if(e.size!==r.size)return!1;for(const o of e)if(!r.has(o))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(r).length)return!1;for(const o of n)if(!Object.prototype.hasOwnProperty.call(r,o)||!Object.is(e[o],r[o]))return!1;return!0}const Cx=E.createContext(null),cTe=Cx.Provider,zH=Ql.error001();function Rt(e,r){const n=E.useContext(Cx);if(n===null)throw new Error(zH);return IH(n,e,r)}function fr(){const e=E.useContext(Cx);if(e===null)throw new Error(zH);return E.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const jH={display:"none"},uTe={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},BH="react-flow__node-desc",FH="react-flow__edge-desc",dTe="react-flow__aria-live",pTe=e=>e.ariaLiveMessage,hTe=e=>e.ariaLabelConfig;function fTe({rfId:e}){const r=Rt(pTe);return y.jsx("div",{id:`${dTe}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:uTe,children:r})}function mTe({rfId:e,disableKeyboardA11y:r}){const n=Rt(hTe);return y.jsxs(y.Fragment,{children:[y.jsx("div",{id:`${BH}-${e}`,style:jH,children:r?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),y.jsx("div",{id:`${FH}-${e}`,style:jH,children:n["edge.a11yDescription.default"]}),!r&&y.jsx(fTe,{rfId:e})]})}const ou=E.forwardRef(({position:e="top-left",children:r,className:n,style:o,...a},i)=>{const l=`${e}`.split("-");return y.jsx("div",{className:an(["react-flow__panel",n,...l]),style:o,ref:i,...a,children:r})});ou.displayName="Panel";function gTe({proOptions:e,position:r="bottom-right"}){return e?.hideAttribution?null:y.jsx(ou,{position:r,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:y.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"Reac
`).replace(`
`,`
+`).split(`
`)),u=c.reduce((d,p)=>d.concat(...p),[]);return[c,u]}return[[],[]]},[e]);return E.useEffect(()=>{const c=r?.target??YH,u=r?.actInsideInputWithModifier??!0;if(e!==null){const d=g=>{if(a.current=g.ctrlKey||g.metaKey||g.shiftKey||g.altKey,(!a.current||a.current&&!u)&&tH(g))return!1;const b=GH(g.code,s);if(i.current.add(g[b]),WH(l,i.current,!1)){const x=g.composedPath?.()?.[0]||g.target,w=x?.nodeName==="BUTTON"||x?.nodeName==="A";r.preventDefault!==!1&&(a.current||!w)&&g.preventDefault(),o(!0)}},p=g=>{const b=GH(g.code,s);WH(l,i.current,!0)?(o(!1),i.current.clear()):i.current.delete(g[b]),g.key==="Meta"&&i.current.clear(),a.current=!1},f=()=>{i.current.clear(),o(!1)};return c?.addEventListener("keydown",d),c?.addEventListener("keyup",p),window.addEventListener("blur",f),window.addEventListener("contextmenu",f),()=>{c?.removeEventListener("keydown",d),c?.removeEventListener("keyup",p),window.removeEventListener("blur",f),window.removeEventListener("contextmenu",f)}}},[e,o]),n}function WH(e,r,n){return e.filter(o=>n||o.length===r.size).some(o=>o.every(a=>r.has(a)))}function GH(e,r){return r.includes(e)?"code":"key"}const TTe=()=>{const e=fr();return E.useMemo(()=>({zoomIn:r=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,{duration:r?.duration}):Promise.resolve(!1)},zoomOut:r=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,{duration:r?.duration}):Promise.resolve(!1)},zoomTo:(r,n)=>{const{panZoom:o}=e.getState();return o?o.scaleTo(r,{duration:n?.duration}):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(r,n)=>{const{transform:[o,a,i],panZoom:l}=e.getState();return l?(await l.setViewport({x:r.x??o,y:r.y??a,zoom:r.zoom??i},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[r,n,o]=e.getState().transform;return{x:r,y:n,zoom:o}},setCenter:async(r,n,o)=>e.getState().setCenter(r,n,o),fitBounds:async(r,n)=>{const{width:o,height:a,minZoom:i,maxZoom:l,panZoom:s}=e.getState(),c=tu(r,o,a,i,l,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(r,n={})=>{const{transform:o,snapGrid:a,snapToGrid:i,domNode:l}=e.getState();if(!l)return r;const{x:s,y:c}=l.getBoundingClientRect(),u={x:r.x-s,y:r.y-c},d=n.snapGrid??a,p=n.snapToGrid??i;return y0(u,o,p,d)},flowToScreenPosition:r=>{const{transform:n,domNode:o}=e.getState();if(!o)return r;const{x:a,y:i}=o.getBoundingClientRect(),l=xx(r,n);return{x:l.x+a,y:l.y+i}}}),[])};function XH(e,r){const n=[],o=new Map,a=[];for(const i of e)if(i.type==="add"){a.push(i);continue}else if(i.type==="remove"||i.type==="replace")o.set(i.id,[i]);else{const l=o.get(i.id);l?l.push(i):o.set(i.id,[i])}for(const i of r){const l=o.get(i.id);if(!l){n.push(i);continue}if(l[0].type==="remove")continue;if(l[0].type==="replace"){n.push({...l[0].item});continue}const s={...i};for(const c of l)RTe(c,s);n.push(s)}return a.length&&a.forEach(i=>{i.index!==void 0?n.splice(i.index,0,{...i.item}):n.push({...i.item})}),n}function RTe(e,r){switch(e.type){case"select":{r.selected=e.selected;break}case"position":{typeof e.position<"u"&&(r.position=e.position),typeof e.dragging<"u"&&(r.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(r.measured??={},r.measured.width=e.dimensions.width,r.measured.height=e.dimensions.height,e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(r.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(r.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(r.resizing=e.resizing);break}}}function Rx(e,r){return XH(e,r)}function Ax(e,r){return XH(e,r)}function Fd(e,r){return{id:e,type:"select",selected:r}}function cf(e,r=new Set,n=!1){const o=[];for(const[a,i]of e){const l=r.has(a);!(i.selected===void 0&&!l)&&i.selected!==l&&(n&&(i.selected=l),o.push(Fd(i.id,l)))}return o}function KH({items:e=[],lookup:r}){const n=[],o=new Map(e.map(a=>[a.id,a]));for(const[a,i]of e.entries()){const l=r.get(i.id),s=l?.internals?.userNode??l;s!==void 0&&s!==i&&n.push({id:i.id,item:i,typ
M${N.x},${N.y}h${N.width}v${N.height}h${-N.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}zU.displayName="MiniMap",E.memo(zU);const yAe=e=>r=>e?`${Math.max(1/r.transform[2],1)}`:void 0,bAe={[sf.Line]:"right",[sf.Handle]:"bottom-right"};function vAe({nodeId:e,position:r,variant:n=sf.Handle,className:o,style:a=void 0,children:i,color:l,minWidth:s=10,minHeight:c=10,maxWidth:u=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:p=!1,resizeDirection:f,autoScale:g=!0,shouldResize:b,onResizeStart:x,onResize:w,onResizeEnd:k}){const C=L8(),_=typeof e=="string"?e:C,T=fr(),R=E.useRef(null),A=n===sf.Handle,D=Rt(E.useCallback(yAe(A&&g),[A,g]),Ar),N=E.useRef(null),P=r??bAe[n];E.useEffect(()=>{if(!(!R.current||!_))return N.current||(N.current=QCe({domNode:R.current,nodeId:_,getStoreItems:()=>{const{nodeLookup:B,transform:L,snapGrid:Y,snapToGrid:M,nodeOrigin:q,domNode:I}=T.getState();return{nodeLookup:B,transform:L,snapGrid:Y,snapToGrid:M,nodeOrigin:q,paneDomNode:I}},onChange:(B,L)=>{const{triggerNodeChanges:Y,nodeLookup:M,parentLookup:q,nodeOrigin:I}=T.getState(),U=[],V={x:B.x,y:B.y},G=M.get(_);if(G&&G.expandParent&&G.parentId){const F=G.origin??I,J=B.width??G.measured.width??0,Q=B.height??G.measured.height??0,z={id:G.id,parentId:G.parentId,rect:{width:J,height:Q,...QF({x:B.x??G.position.x,y:B.y??G.position.y},{width:J,height:Q},G.parentId,M,F)}},W=C8([z],M,q,I);U.push(...W),V.x=B.x?Math.max(F[0]*J,B.x):void 0,V.y=B.y?Math.max(F[1]*Q,B.y):void 0}if(V.x!==void 0&&V.y!==void 0){const F={id:_,type:"position",position:{...V}};U.push(F)}if(B.width!==void 0&&B.height!==void 0){const F={id:_,type:"dimensions",resizing:!0,setAttributes:f?f==="horizontal"?"width":"height":!0,dimensions:{width:B.width,height:B.height}};U.push(F)}for(const F of L){const J={...F,type:"position"};U.push(J)}Y(U)},onEnd:({width:B,height:L})=>{const Y={id:_,type:"dimensions",resizing:!1,dimensions:{width:B,height:L}};T.getState().triggerNodeChanges([Y])}})),N.current.update({controlPosition:P,boundaries:{minWidth:s,minHeight:c,maxWidth:u,maxHeight:d},keepAspectRatio:p,resizeDirection:f,onResizeStart:x,onResize:w,onResizeEnd:k,shouldResize:b}),()=>{N.current?.destroy()}},[P,s,c,u,d,p,x,w,k,b]);const O=P.split("-");return y.jsx("div",{className:an(["react-flow__resize-control","nodrag",...O,n,o]),ref:R,style:{...a,scale:D,...l&&{[A?"backgroundColor":"borderColor"]:l}},children:i})}E.memo(vAe);const xAe=e=>e.domNode?.querySelector(".react-flow__renderer");function wAe({children:e}){const r=Rt(xAe);return r?ji.createPortal(e,r):null}const kAe=(e,r)=>e?.internals.positionAbsolute.x!==r?.internals.positionAbsolute.x||e?.internals.positionAbsolute.y!==r?.internals.positionAbsolute.y||e?.measured.width!==r?.measured.width||e?.measured.height!==r?.measured.height||e?.selected!==r?.selected||e?.internals.z!==r?.internals.z,_Ae=(e,r)=>{if(e.size!==r.size)return!1;for(const[n,o]of e)if(kAe(o,r.get(n)))return!1;return!0},EAe=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2],selectedNodesCount:e.nodes.filter(r=>r.selected).length});function jU({nodeId:e,children:r,className:n,style:o,isVisible:a,position:i=tt.Top,offset:l=10,align:s="center",...c}){const u=L8(),d=E.useCallback(T=>(Array.isArray(e)?e:[e||u||""]).reduce((R,A)=>{const D=T.nodeLookup.get(A);return D&&R.set(D.id,D),R},new Map),[e,u]),p=Rt(d,_Ae),{x:f,y:g,zoom:b,selectedNodesCount:x}=Rt(EAe,Ar);if(!(typeof a=="boolean"?a:p.size===1&&p.values().next().value?.selected&&x===1)||!p.size)return null;const w=tf(p),k=Array.from(p.values()),C=Math.max(...k.map(T=>T.internals.z+1)),_={position:"absolute",transform:xCe(w,{x:f,y:g,zoom:b},i,l,s),zIndex:C,...o};return y.jsx(wAe,{children:y.jsx("div",{style:_,className:an(["react-flow__node-toolbar",n]),...c,"data-id":k.reduce((T,R)=>`${T}${R.id} `,"").trim(),children:r})})}var SAe=Object.getOwnPropertyNames,CAe=Object.getOwnPropertySymbols,TAe=Object.prototype.hasOwnProperty;function BU(e,r){return function(n,o,a){return e(n,o,a)&&r(n,o,a)}}function Mx(e){return function(r,n,o){if(!r||!n||typeof r!="object"||typeof n!="object")return e(r,n,o);var
.`.concat(cDe,` {
overflow: hidden `).concat(o,`;
padding-right: `).concat(s,"px ").concat(o,`;
}
body[`).concat(ff,`] {
overflow: hidden `).concat(o,`;
overscroll-behavior: contain;
`).concat([r&&"position: relative ".concat(o,";"),n==="margin"&&`
padding-left: `.concat(a,`px;
padding-top: `).concat(i,`px;
padding-right: `).concat(l,`px;
margin-left:0;
margin-top:0;
margin-right: `).concat(s,"px ").concat(o,`;
`),n==="padding"&&"padding-right: ".concat(s,"px ").concat(o,";")].filter(Boolean).join(""),`
}
.`).concat(Fx,` {
right: `).concat(s,"px ").concat(o,`;
}
.`).concat(Hx,` {
margin-right: `).concat(s,"px ").concat(o,`;
}
.`).concat(Fx," .").concat(Fx,` {
right: 0 `).concat(o,`;
}
.`).concat(Hx," .").concat(Hx,` {
margin-right: 0 `).concat(o,`;
}
body[`).concat(ff,`] {
`).concat(uDe,": ").concat(s,`px;
}
`)},gq=function(){var e=parseInt(document.body.getAttribute(ff)||"0",10);return isFinite(e)?e:0},ADe=function(){E.useEffect(function(){return document.body.setAttribute(ff,(gq()+1).toString()),function(){var e=gq()-1;e<=0?document.body.removeAttribute(ff):document.body.setAttribute(ff,e.toString())}},[])},NDe=function(e){var r=e.noRelative,n=e.noImportant,o=e.gapMode,a=o===void 0?"margin":o;ADe();var i=E.useMemo(function(){return CDe(a)},[a]);return E.createElement(TDe,{styles:RDe(i,!r,a,n?"":"!important")})},K8=!1;if(typeof window<"u")try{var qx=Object.defineProperty({},"passive",{get:function(){return K8=!0,!0}});window.addEventListener("test",qx,qx),window.removeEventListener("test",qx,qx)}catch{K8=!1}var mf=K8?{passive:!1}:!1,DDe=function(e){return e.tagName==="TEXTAREA"},yq=function(e,r){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[r]!=="hidden"&&!(n.overflowY===n.overflowX&&!DDe(e)&&n[r]==="visible")},$De=function(e){return yq(e,"overflowY")},PDe=function(e){return yq(e,"overflowX")},bq=function(e,r){var n=r.ownerDocument,o=r;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var a=vq(e,o);if(a){var i=xq(e,o),l=i[1],s=i[2];if(l>s)return!0}o=o.parentNode}while(o&&o!==n.body);return!1},ODe=function(e){var r=e.scrollTop,n=e.scrollHeight,o=e.clientHeight;return[r,n,o]},MDe=function(e){var r=e.scrollLeft,n=e.scrollWidth,o=e.clientWidth;return[r,n,o]},vq=function(e,r){return e==="v"?$De(r):PDe(r)},xq=function(e,r){return e==="v"?ODe(r):MDe(r)},IDe=function(e,r){return e==="h"&&r==="rtl"?-1:1},LDe=function(e,r,n,o,a){var i=IDe(e,window.getComputedStyle(r).direction),l=i*o,s=n.target,c=r.contains(s),u=!1,d=l>0,p=0,f=0;do{if(!s)break;var g=xq(e,s),b=g[0],x=g[1],w=g[2],k=x-w-i*b;(b||k)&&vq(e,s)&&(p+=k,f+=b);var C=s.parentNode;s=C&&C.nodeType===Node.DOCUMENT_FRAGMENT_NODE?C.host:C}while(!c&&s!==document.body||c&&(r.contains(s)||r===s));return(d&&Math.abs(p)<1||!d&&Math.abs(f)<1)&&(u=!0),u},Vx=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},wq=function(e){return[e.deltaX,e.deltaY]},kq=function(e){return e&&"current"in e?e.current:e},zDe=function(e,r){return e[0]===r[0]&&e[1]===r[1]},jDe=function(e){return`
.block-interactivity-`.concat(e,` {pointer-events: none;}
.allow-interactivity-`).concat(e,` {pointer-events: all;}
`)},BDe=0,gf=[];function FDe(e){var r=E.useRef([]),n=E.useRef([0,0]),o=E.useRef(),a=E.useState(BDe++)[0],i=E.useState(mq)[0],l=E.useRef(e);E.useEffect(function(){l.current=e},[e]),E.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var x=sDe([e.lockRef.current],(e.shards||[]).map(kq)).filter(Boolean);return x.forEach(function(w){return w.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),x.forEach(function(w){return w.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var s=E.useCallback(function(x,w){if("touches"in x&&x.touches.length===2||x.type==="wheel"&&x.ctrlKey)return!l.current.allowPinchZoom;var k=Vx(x),C=n.current,_="deltaX"in x?x.deltaX:C[0]-k[0],T="deltaY"in x?x.deltaY:C[1]-k[1],R,A=x.target,D=Math.abs(_)>Math.abs(T)?"h":"v";if("touches"in x&&D==="h"&&A.type==="range")return!1;var N=bq(D,A);if(!N)return!0;if(N?R=D:(R=D==="v"?"h":"v",N=bq(D,A)),!N)return!1;if(!o.current&&"changedTouches"in x&&(_||T)&&(o.current=R),!R)return!0;var P=o.current||R;return LDe(P,w,x,P==="h"?_:T)},[]),c=E.useCallback(function(x){var w=x;if(!(!gf.length||gf[gf.length-1]!==i)){var k="deltaY"in w?wq(w):Vx(w),C=r.current.filter(function(R){return R.name===w.type&&(R.target===w.target||w.target===R.shadowParent)&&zDe(R.delta,k)})[0];if(C&&C.should){w.cancelable&&w.preventDefault();return}if(!C){var _=(l.current.shards||[]).map(kq).filter(Boolean).filter(function(R){return R.contains(w.target)}),T=_.length>0?s(w,_[0]):!l.current.noIsolation;T&&w.cancelable&&w.preventDefault()}}},[]),u=E.useCallback(function(x,w,k,C){var _={name:x,delta:w,target:k,should:C,shadowParent:HDe(k)};r.current.push(_),setTimeout(function(){r.current=r.current.filter(function(T){return T!==_})},1)},[]),d=E.useCallback(function(x){n.current=Vx(x),o.current=void 0},[]),p=E.useCallback(function(x){u(x.type,wq(x),x.target,s(x,e.lockRef.current))},[]),f=E.useCallback(function(x){u(x.type,Vx(x),x.target,s(x,e.lockRef.current))},[]);E.useEffect(function(){return gf.push(i),e.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:f}),document.addEventListener("wheel",c,mf),document.addEventListener("touchmove",c,mf),document.addEventListener("touchstart",d,mf),function(){gf=gf.filter(function(x){return x!==i}),document.removeEventListener("wheel",c,mf),document.removeEventListener("touchmove",c,mf),document.removeEventListener("touchstart",d,mf)}},[]);var g=e.removeScrollBar,b=e.inert;return E.createElement(E.Fragment,null,b?E.createElement(i,{styles:jDe(a)}):null,g?E.createElement(NDe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function HDe(e){for(var r=null;e!==null;)e instanceof ShadowRoot&&(r=e.host,e=e.host),e=e.parentNode;return r}const UDe=yDe(fq,FDe);var S0=E.forwardRef(function(e,r){return E.createElement(Ux,Jl({},e,{ref:r,sideCar:UDe}))});S0.classNames=Ux.classNames;function Ao(e){return Object.keys(e)}function Z8(e){return e&&typeof e=="object"&&!Array.isArray(e)}function Q8(e,r){const n={...e},o=r;return Z8(e)&&Z8(r)&&Object.keys(r).forEach(a=>{Z8(o[a])&&a in e?n[a]=Q8(n[a],o[a]):n[a]=o[a]}),n}function qDe(e){return e.replace(/[A-Z]/g,r=>`-${r.toLowerCase()}`)}function VDe(e){return typeof e!="string"||!e.includes("var(--mantine-scale)")?e:e.match(/^calc\((.*?)\)$/)?.[1].split("*")[0].trim()}function J8(e){const r=VDe(e);return typeof r=="number"?r:typeof r=="string"?r.includes("calc")||r.includes("var")?r:r.includes("px")?Number(r.replace("px","")):r.includes("rem")?Number(r.replace("rem",""))*16:r.includes("em")?Number(r.replace("em",""))*16:Number(r):NaN}function _q(e){return e==="0rem"?"0rem":`calc(${e} * var(--mantine-scale))`}function Eq(e,{shouldScale:r=!1}={}){function n(o){if(o===0||o==="0")return`0${e}`;if(typeof o=="number"){const a=`${o/16}${e}`;return r?_q(a):a}if(typeof o=="string"){if(o===""||o.startsWith("calc(")||o.startsWith("clamp(")||o.includes("rgba("))return o;if(o.includes(","))return o.split(",").map(i=>n(i)).join(",");if(o.includes(" "))return o.split(" ")
${l}
${s}`}function f9({color:e,theme:r,autoContrast:n}){return(typeof n=="boolean"?n:r.autoContrast)&&uu({color:e||r.primaryColor,theme:r}).isLight?"var(--mantine-color-black)":"var(--mantine-color-white)"}function tV(e,r){return f9({color:e.colors[e.primaryColor][N0(e,r)],theme:e,autoContrast:null})}function ew({theme:e,color:r,colorScheme:n,name:o=r,withColorValues:a=!0}){if(!e.colors[r])return{};if(n==="light"){const s=N0(e,"light"),c={[`--mantine-color-${o}-text`]:`var(--mantine-color-${o}-filled)`,[`--mantine-color-${o}-filled`]:`var(--mantine-color-${o}-${s})`,[`--mantine-color-${o}-filled-hover`]:`var(--mantine-color-${o}-${s===9?8:s+1})`,[`--mantine-color-${o}-light`]:wf(e.colors[r][s],.1),[`--mantine-color-${o}-light-hover`]:wf(e.colors[r][s],.12),[`--mantine-color-${o}-light-color`]:`var(--mantine-color-${o}-${s})`,[`--mantine-color-${o}-outline`]:`var(--mantine-color-${o}-${s})`,[`--mantine-color-${o}-outline-hover`]:wf(e.colors[r][s],.05)};return a?{[`--mantine-color-${o}-0`]:e.colors[r][0],[`--mantine-color-${o}-1`]:e.colors[r][1],[`--mantine-color-${o}-2`]:e.colors[r][2],[`--mantine-color-${o}-3`]:e.colors[r][3],[`--mantine-color-${o}-4`]:e.colors[r][4],[`--mantine-color-${o}-5`]:e.colors[r][5],[`--mantine-color-${o}-6`]:e.colors[r][6],[`--mantine-color-${o}-7`]:e.colors[r][7],[`--mantine-color-${o}-8`]:e.colors[r][8],[`--mantine-color-${o}-9`]:e.colors[r][9],...c}:c}const i=N0(e,"dark"),l={[`--mantine-color-${o}-text`]:`var(--mantine-color-${o}-4)`,[`--mantine-color-${o}-filled`]:`var(--mantine-color-${o}-${i})`,[`--mantine-color-${o}-filled-hover`]:`var(--mantine-color-${o}-${i===9?8:i+1})`,[`--mantine-color-${o}-light`]:wf(e.colors[r][Math.max(0,i-2)],.15),[`--mantine-color-${o}-light-hover`]:wf(e.colors[r][Math.max(0,i-2)],.2),[`--mantine-color-${o}-light-color`]:`var(--mantine-color-${o}-${Math.max(i-5,0)})`,[`--mantine-color-${o}-outline`]:`var(--mantine-color-${o}-${Math.max(i-4,0)})`,[`--mantine-color-${o}-outline-hover`]:wf(e.colors[r][Math.max(i-4,0)],.05)};return a?{[`--mantine-color-${o}-0`]:e.colors[r][0],[`--mantine-color-${o}-1`]:e.colors[r][1],[`--mantine-color-${o}-2`]:e.colors[r][2],[`--mantine-color-${o}-3`]:e.colors[r][3],[`--mantine-color-${o}-4`]:e.colors[r][4],[`--mantine-color-${o}-5`]:e.colors[r][5],[`--mantine-color-${o}-6`]:e.colors[r][6],[`--mantine-color-${o}-7`]:e.colors[r][7],[`--mantine-color-${o}-8`]:e.colors[r][8],[`--mantine-color-${o}-9`]:e.colors[r][9],...l}:l}function oPe(e){return!!e&&typeof e=="object"&&"mantine-virtual-color"in e}function kf(e,r,n){Ao(r).forEach(o=>Object.assign(e,{[`--mantine-${n}-${o}`]:r[o]}))}const rV=e=>{const r=N0(e,"light"),n=e.defaultRadius in e.radius?e.radius[e.defaultRadius]:Ae(e.defaultRadius),o={variables:{"--mantine-z-index-app":"100","--mantine-z-index-modal":"200","--mantine-z-index-popover":"300","--mantine-z-index-overlay":"400","--mantine-z-index-max":"9999","--mantine-scale":e.scale.toString(),"--mantine-cursor-type":e.cursorType,"--mantine-webkit-font-smoothing":e.fontSmoothing?"antialiased":"unset","--mantine-moz-font-smoothing":e.fontSmoothing?"grayscale":"unset","--mantine-color-white":e.white,"--mantine-color-black":e.black,"--mantine-line-height":e.lineHeights.md,"--mantine-font-family":e.fontFamily,"--mantine-font-family-monospace":e.fontFamilyMonospace,"--mantine-font-family-headings":e.headings.fontFamily,"--mantine-heading-font-weight":e.headings.fontWeight,"--mantine-heading-text-wrap":e.headings.textWrap,"--mantine-radius-default":n,"--mantine-primary-color-filled":`var(--mantine-color-${e.primaryColor}-filled)`,"--mantine-primary-color-filled-hover":`var(--mantine-color-${e.primaryColor}-filled-hover)`,"--mantine-primary-color-light":`var(--mantine-color-${e.primaryColor}-light)`,"--mantine-primary-color-light-hover":`var(--mantine-color-${e.primaryColor}-light-hover)`,"--mantine-primary-color-light-color":`var(--mantine-color-${e.primaryColor}-light-color)`},light:{"--mantine-color-scheme":"light","--mantine-primary-color-contrast":tV(e,"light"),"--mantine-color-bright":"var(--mantine-color-black)","--mantine-color-text
${e}[data-mantine-color-scheme="dark"] { --mantine-color-scheme: dark; }
${e}[data-mantine-color-scheme="light"] { --mantine-color-scheme: light; }
`}function nV({cssVariablesSelector:e,deduplicateCssVariables:r}){const n=po(),o=Yd(),a=z$e(),i=aPe({theme:n,generator:a}),l=e===":root"&&r,s=l?iPe(i):i,c=nPe(s,e);return c?y.jsx("style",{"data-mantine-styles":!0,nonce:o?.(),dangerouslySetInnerHTML:{__html:`${c}${l?"":lPe(e)}`}}):null}nV.displayName="@mantine/CssVariables";function _f(e,r){const n=typeof window<"u"&&"matchMedia"in window&&window.matchMedia("(prefers-color-scheme: dark)")?.matches,o=e!=="auto"?e:n?"dark":"light";r()?.setAttribute("data-mantine-color-scheme",o)}function sPe({manager:e,defaultColorScheme:r,getRootElement:n,forceColorScheme:o}){const a=E.useRef(null),[i,l]=E.useState(()=>e.get(r)),s=o||i,c=E.useCallback(d=>{o||(_f(d,n),l(d),e.set(d))},[e.set,s,o]),u=E.useCallback(()=>{l(r),_f(r,n),e.clear()},[e.clear,r]);return E.useEffect(()=>(e.subscribe(c),e.unsubscribe),[e.subscribe,e.unsubscribe]),A0(()=>{_f(e.get(r),n)},[]),E.useEffect(()=>{if(o)return _f(o,n),()=>{};o===void 0&&_f(i,n),typeof window<"u"&&"matchMedia"in window&&(a.current=window.matchMedia("(prefers-color-scheme: dark)"));const d=p=>{i==="auto"&&_f(p.matches?"dark":"light",n)};return a.current?.addEventListener("change",d),()=>a.current?.removeEventListener("change",d)},[i,o]),{colorScheme:s,setColorScheme:c,clearColorScheme:u}}function cPe({respectReducedMotion:e,getRootElement:r}){A0(()=>{e&&r()?.setAttribute("data-respect-reduced-motion","true")},[e])}function g9({theme:e,children:r,getStyleNonce:n,withStaticClasses:o=!0,withGlobalClasses:a=!0,deduplicateCssVariables:i=!0,withCssVariables:l=!0,cssVariablesSelector:s=":root",classNamesPrefix:c="mantine",colorSchemeManager:u=Q$e(),defaultColorScheme:d="light",getRootElement:p=()=>document.documentElement,cssVariablesResolver:f,forceColorScheme:g,stylesTransform:b,env:x}){const{colorScheme:w,setColorScheme:k,clearColorScheme:C}=sPe({defaultColorScheme:d,forceColorScheme:g,manager:u,getRootElement:p});return cPe({respectReducedMotion:e?.respectReducedMotion||!1,getRootElement:p}),y.jsx(Zx.Provider,{value:{colorScheme:w,setColorScheme:k,clearColorScheme:C,getRootElement:p,classNamesPrefix:c,getStyleNonce:n,cssVariablesResolver:f,cssVariablesSelector:s,withStaticClasses:o,stylesTransform:b,env:x},children:y.jsxs(eV,{theme:e,children:[l&&y.jsx(nV,{cssVariablesSelector:s,deduplicateCssVariables:i}),a&&y.jsx(rPe,{}),r]})})}g9.displayName="@mantine/core/MantineProvider";function y9({classNames:e,styles:r,props:n,stylesCtx:o}){const a=po();return{resolvedClassNames:Xx({theme:a,classNames:e,props:n,stylesCtx:o||void 0}),resolvedStyles:Kx({theme:a,styles:r,props:n,stylesCtx:o||void 0})}}const uPe={always:"mantine-focus-always",auto:"mantine-focus-auto",never:"mantine-focus-never"};function dPe({theme:e,options:r,unstyled:n}){return Ji(r?.focusable&&!n&&(e.focusClassName||uPe[e.focusRing]),r?.active&&!n&&e.activeClassName)}function pPe({selector:e,stylesCtx:r,options:n,props:o,theme:a}){return Xx({theme:a,classNames:n?.classNames,props:n?.props||o,stylesCtx:r})[e]}function oV({selector:e,stylesCtx:r,theme:n,classNames:o,props:a}){return Xx({theme:n,classNames:o,props:a,stylesCtx:r})[e]}function hPe({rootSelector:e,selector:r,className:n}){return e===r?n:void 0}function fPe({selector:e,classes:r,unstyled:n}){return n?void 0:r[e]}function mPe({themeName:e,classNamesPrefix:r,selector:n,withStaticClass:o}){return o===!1?[]:e.map(a=>`${r}-${a}-${n}`)}function gPe({themeName:e,theme:r,selector:n,props:o,stylesCtx:a}){return e.map(i=>Xx({theme:r,classNames:r.components[i]?.classNames,props:o,stylesCtx:a})?.[n])}function yPe({options:e,classes:r,selector:n,unstyled:o}){return e?.variant&&!o?r[`${n}--${e.variant}`]:void 0}function bPe({theme:e,options:r,themeName:n,selector:o,classNamesPrefix:a,classNames:i,classes:l,unstyled:s,className:c,rootSelector:u,props:d,stylesCtx:p,withStaticClasses:f,headless:g,transformedStyles:b}){return Ji(dPe({theme:e,options:r,unstyled:s||g}),gPe({theme:e,themeName:n,selector:o,props:d,stylesCtx:p}),yPe({options:r,classes:l,selector:o,unstyled:s}),oV({selector:o,stylesCtx:p,theme:e,classNames:i,props:d}),oV({selector:o,sty
--colors-likec4-tag-bg: ${r};
--colors-likec4-tag-bg-hover: color-mix(in srgb, ${r}, var(--colors-likec4-mix-color) 20%);
`;if(!Nze.includes(r))return"";let n="12";return["mint","grass","lime","yellow","amber"].includes(r)&&(n="dark-2"),`
--colors-likec4-tag-border: var(--colors-${r}-8);
--colors-likec4-tag-bg: var(--colors-${r}-9);
--colors-likec4-tag-bg-hover: var(--colors-${r}-10);
--colors-likec4-tag-text: var(--colors-${r}-${n});
`};function $ze(e,r){return!e||iu(e)?"":yn(B8(e),ENe(([n,o])=>[`:is(${r} [data-likec4-tag="${n}"]) {`,Dze(o),"}"]),oq(`
`))}function Pze({children:e,rootSelector:r}){const n=Aze().tags,o=$ze(n,r);return y.jsxs(KW.Provider,{value:n,children:[o!==""&&y.jsx(Oze,{stylesheet:o}),e]})}const Oze=E.memo(({stylesheet:e})=>{const r=Yd()?.();return y.jsx("style",{"data-likec4-tags":!0,type:"text/css",dangerouslySetInnerHTML:{__html:e},nonce:r})});function Mze(e){return E.useContext(KW)[e]??{color:"tomato"}}function ZW(){return Ta().replace("mantine-","likec4-")}var Ize="css,pos,insetX,insetY,insetEnd,end,insetStart,start,flexDir,p,pl,pr,pt,pb,py,paddingY,paddingX,px,pe,paddingEnd,ps,paddingStart,ml,mr,mt,mb,m,my,marginY,mx,marginX,me,marginEnd,ms,marginStart,ringWidth,ringColor,ring,ringOffset,w,minW,maxW,h,minH,maxH,textShadowColor,bgPosition,bgPositionX,bgPositionY,bgAttachment,bgClip,bg,bgColor,bgOrigin,bgImage,bgRepeat,bgBlendMode,bgSize,bgGradient,bgLinear,bgRadial,bgConic,rounded,roundedTopLeft,roundedTopRight,roundedBottomRight,roundedBottomLeft,roundedTop,roundedRight,roundedBottom,roundedLeft,roundedStartStart,roundedStartEnd,roundedStart,roundedEndStart,roundedEndEnd,roundedEnd,borderX,borderXWidth,borderXColor,borderY,borderYWidth,borderYColor,borderStart,borderStartWidth,borderStartColor,borderEnd,borderEndWidth,borderEndColor,shadow,shadowColor,x,y,z,scrollMarginY,scrollMarginX,scrollPaddingY,scrollPaddingX,aspectRatio,boxDecorationBreak,zIndex,boxSizing,objectPosition,objectFit,overscrollBehavior,overscrollBehaviorX,overscrollBehaviorY,position,top,left,inset,insetInline,insetBlock,insetBlockEnd,insetBlockStart,insetInlineEnd,insetInlineStart,right,bottom,float,visibility,display,hideFrom,hideBelow,flexBasis,flex,flexDirection,flexGrow,flexShrink,gridTemplateColumns,gridTemplateRows,gridColumn,gridRow,gridColumnStart,gridColumnEnd,gridAutoFlow,gridAutoColumns,gridAutoRows,gap,gridGap,gridRowGap,gridColumnGap,rowGap,columnGap,justifyContent,alignContent,alignItems,alignSelf,padding,paddingLeft,paddingRight,paddingTop,paddingBottom,paddingBlock,paddingBlockEnd,paddingBlockStart,paddingInline,paddingInlineEnd,paddingInlineStart,marginLeft,marginRight,marginTop,marginBottom,margin,marginBlock,marginBlockEnd,marginBlockStart,marginInline,marginInlineEnd,marginInlineStart,spaceX,spaceY,outlineWidth,outlineColor,outline,outlineOffset,focusRing,focusVisibleRing,focusRingColor,focusRingOffset,focusRingWidth,focusRingStyle,divideX,divideY,divideColor,divideStyle,width,inlineSize,minWidth,minInlineSize,maxWidth,maxInlineSize,height,blockSize,minHeight,minBlockSize,maxHeight,maxBlockSize,boxSize,color,fontFamily,fontSize,fontSizeAdjust,fontPalette,fontKerning,fontFeatureSettings,fontWeight,fontSmoothing,fontVariant,fontVariantAlternates,fontVariantCaps,fontVariationSettings,fontVariantNumeric,letterSpacing,lineHeight,textAlign,textDecoration,textDecorationColor,textEmphasisColor,textDecorationStyle,textDecorationThickness,textUnderlineOffset,textTransform,textIndent,textShadow,textOverflow,verticalAlign,wordBreak,textWrap,truncate,lineClamp,listStyleType,listStylePosition,listStyleImage,listStyle,backgroundPosition,backgroundPositionX,backgroundPositionY,backgroundAttachment,backgroundClip,background,backgroundColor,backgroundOrigin,backgroundImage,backgroundRepeat,backgroundBlendMode,backgroundSize,backgroundGradient,backgroundLinear,backgroundRadial,backgroundConic,textGradient,gradientFromPosition,gradientToPosition,gradientFrom,gradientTo,gradientVia,gradientViaPosition,borderRadius,borderTopLeftRadius,borderTopRightRadius,borderBottomRightRadius,borderBottomLeftRadius,borderTopRadius,borderRightRadius,borderBottomRadius,borderLeftRadius,borderStartStartRadius,borderStartEndRadius,borderStartRadius,borderEndStartRadius,borderEndEndRadius,borderEndRadius,border,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,borderBlockStartWidth,borderBlockEndWidth,borderColor,borderInline,borderInlineWidth,borderInlineColor,borderBlock,borderBlockWidth,borderBlockColor,borderLeft,borderLeftColor,borderInlineStart,borderInlineStartWidth,borderInlineStartColor,borderRight,borderRightColor,borderInlineEnd,borderInlineEndWidth,borde
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const Kze=[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]],Hf=yt("outline","x","X",Kze);function B7({error:e,resetErrorBoundary:r}){const n=e instanceof Error?e.message:"Unknown error";return y.jsx(qr,{css:{position:"absolute",top:"0",left:"0",width:"100%",height:"100%",padding:"0",backdropFilter:"blur(5px)",backgroundColor:{_dark:"[rgb(34 34 34 / 10%)]",_light:"[rgb(15 15 15/ 20%)]"},zIndex:1e3},children:y.jsxs(qw,{icon:y.jsx(Hf,{style:{width:16,height:16}}),styles:{icon:{alignSelf:"flex-start"}},color:"red",title:"Oops, something went wrong",p:"xl",withCloseButton:!1,children:[y.jsx(ta,{maw:"100%",mah:400,children:y.jsx(jw,{block:!0,children:n})}),y.jsx(Ur,{gap:"xs",mt:"xl",children:y.jsx(Zn,{color:"gray",size:"xs",variant:"light",onClick:()=>r(),children:"Reset"})})]})})}function sG(e){return y.jsx(j7,{FallbackComponent:B7,onError:(r,n)=>{console.error(r,n)},...e})}function Zze(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global}function Qze(){const e=Zze();if(e.__xstate__)return e.__xstate__}const Jze=e=>{if(typeof window>"u")return;const r=Qze();r&&r.register(e)};class cG{constructor(r){this._process=r,this._active=!1,this._current=null,this._last=null}start(){this._active=!0,this.flush()}clear(){this._current&&(this._current.next=null,this._last=this._current)}enqueue(r){const n={value:r,next:null};if(this._current){this._last.next=n,this._last=n;return}this._current=n,this._last=n,this._active&&this.flush()}flush(){for(;this._current;){const r=this._current;this._process(r.value),this._current=r.next}this._last=null}}const uG=".",eje="",dG="",tje="#",rje="*",pG="xstate.init",nje="xstate.error",X0="xstate.stop";function oje(e,r){return{type:`xstate.after.${e}.${r}`}}function F7(e,r){return{type:`xstate.done.state.${e}`,output:r}}function aje(e,r){return{type:`xstate.done.actor.${e}`,output:r,actorId:e}}function hG(e,r){return{type:`xstate.error.actor.${e}`,error:r,actorId:e}}function fG(e){return{type:pG,input:e}}function as(e){setTimeout(()=>{throw e})}const ije=typeof Symbol=="function"&&Symbol.observable||"@@observable";function mG(e,r){const n=gG(e),o=gG(r);return typeof o=="string"?typeof n=="string"?o===n:!1:typeof n=="string"?n in o:Object.keys(n).every(a=>a in o?mG(n[a],o[a]):!1)}function H7(e){if(vG(e))return e;const r=[];let n="";for(let o=0;o<e.length;o++){switch(e.charCodeAt(o)){case 92:n+=e[o+1],o++;continue;case 46:r.push(n),n="";continue}n+=e[o]}return r.push(n),r}function gG(e){if(Bje(e))return e.value;if(typeof e!="string")return e;const r=H7(e);return lje(r)}function lje(e){if(e.length===1)return e[0];const r={};let n=r;for(let o=0;o<e.length-1;o++)if(o===e.length-2)n[e[o]]=e[o+1];else{const a=n;n={},a[e[o]]=n}return r}function yG(e,r){const n={},o=Object.keys(e);for(let a=0;a<o.length;a++){const i=o[a];n[i]=r(e[i],i,e,a)}return n}function bG(e){return vG(e)?e:[e]}function Js(e){return e===void 0?[]:bG(e)}function U7(e,r,n,o){return typeof e=="function"?e({context:r,event:n,self:o}):e}function vG(e){return Array.isArray(e)}function sje(e){return e.type.startsWith("xstate.error.actor")}function Uf(e){return bG(e).map(r=>typeof r>"u"||typeof r=="string"?{target:r}:r)}function xG(e){if(!(e===void 0||e===eje))return Js(e)}function Kw(e,r,n){const o=typeof e=="object",a=o?e:void 0;return{next:(o?e.next:e)?.bind(a),error:(o?e.error:r)?.bind(a),complete:(o?e.complete:n)?.bind(a)}}function wG(e,r){return`${r}.${e}`}function q7(e,r){const n=r.match(/^xstate\.invoke\.(\d+)\.(.*)/);if(!n)return e.implementations.actors[r];const[,o,a]=n,i=e.getStateNodeById(a).config.invoke;return(Array.isArray(i)?i[o]:i).src}function kG(e,r){return`${e.sessionId}.${r}`}let cje=0;function uje(e,r){const n=new Map,o=new Map,a=new WeakMap,i=new Set,l={},{clock:s,logger:c}=r,u={schedule:(f,g,b,x,w=Math.random().toString(36).slice(2))=>{const k={source:f,target:g,event:b,delay:x,id:w,startedAt:Date.now()},C=kG(f,w);p._snapshot._scheduledEvents[C]=k;const _=s.setTimeout(()=>{delete l[C],delete p._snapsho
${i.message}`)}else throw new Error(`Invalid target: "${n}" is not a valid target from the root node. Did you mean ".${n}"?`)})}function TG(e){const r=xG(e.config.target);return r?{target:r.map(n=>typeof n=="string"?e2(e.parent,n):n)}:e.parent.initial}function rp(e){return e.type==="history"}function RG(e){const r=AG(e);for(const n of r)for(const o of K0(n,e))r.add(o);return r}function AG(e){const r=new Set;function n(o){if(!r.has(o)){if(r.add(o),o.type==="compound")n(o.initial.target[0]);else if(o.type==="parallel")for(const a of Wf(o))n(a)}}return n(e),r}function Gf(e,r){if(Jw(r))return e.machine.getStateNodeById(r);if(!e.states)throw new Error(`Unable to retrieve child state '${r}' from '${e.id}'; no child states exist.`);const n=e.states[r];if(!n)throw new Error(`Child state '${r}' does not exist on '${e.id}'`);return n}function e2(e,r){if(typeof r=="string"&&Jw(r))try{return e.machine.getStateNodeById(r)}catch{}const n=H7(r).slice();let o=e;for(;n.length;){const a=n.shift();if(!a.length)break;o=Gf(o,a)}return o}function t2(e,r){if(typeof r=="string"){const a=e.states[r];if(!a)throw new Error(`State '${r}' does not exist on '${e.id}'`);return[e,a]}const n=Object.keys(r),o=n.map(a=>Gf(e,a)).filter(Boolean);return[e.machine.root,e].concat(o,n.reduce((a,i)=>{const l=Gf(e,i);if(!l)return a;const s=t2(l,r[i]);return a.concat(s)},[]))}function Cje(e,r,n,o){const a=Gf(e,r).next(n,o);return!a||!a.length?e.next(n,o):a}function Tje(e,r,n,o){const a=Object.keys(r),i=Gf(e,a[0]),l=X7(i,r[a[0]],n,o);return!l||!l.length?e.next(n,o):l}function Rje(e,r,n,o){const a=[];for(const i of Object.keys(r)){const l=r[i];if(!l)continue;const s=Gf(e,i),c=X7(s,l,n,o);c&&a.push(...c)}return a.length?a:e.next(n,o)}function X7(e,r,n,o){return typeof r=="string"?Cje(e,r,n,o):Object.keys(r).length===1?Tje(e,r,n,o):Rje(e,r,n,o)}function Aje(e){return Object.keys(e.states).map(r=>e.states[r]).filter(r=>r.type==="history")}function bu(e,r){let n=e;for(;n.parent&&n.parent!==r;)n=n.parent;return n.parent===r}function Nje(e,r){const n=new Set(e),o=new Set(r);for(const a of n)if(o.has(a))return!0;for(const a of o)if(n.has(a))return!0;return!1}function NG(e,r,n){const o=new Set;for(const a of e){let i=!1;const l=new Set;for(const s of o)if(Nje(Z7([a],r,n),Z7([s],r,n)))if(bu(a.source,s.source))l.add(s);else{i=!0;break}if(!i){for(const s of l)o.delete(s);o.add(a)}}return Array.from(o)}function Dje(e){const[r,...n]=e;for(const o of K0(r,void 0))if(n.every(a=>bu(a,o)))return o}function K7(e,r){if(!e.target)return[];const n=new Set;for(const o of e.target)if(rp(o))if(r[o.id])for(const a of r[o.id])n.add(a);else for(const a of K7(TG(o),r))n.add(a);else n.add(o);return[...n]}function DG(e,r){const n=K7(e,r);if(!n)return;if(!e.reenter&&n.every(a=>a===e.source||bu(a,e.source)))return e.source;const o=Dje(n.concat(e.source));if(o)return o;if(!e.reenter)return e.source.machine.root}function Z7(e,r,n){const o=new Set;for(const a of e)if(a.target?.length){const i=DG(a,n);a.reenter&&a.source===i&&o.add(i);for(const l of r)bu(l,i)&&o.add(l)}return[...o]}function $je(e,r){if(e.length!==r.size)return!1;for(const n of e)if(!r.has(n))return!1;return!0}function Q7(e,r,n,o,a,i){if(!e.length)return r;const l=new Set(r._nodes);let s=r.historyValue;const c=NG(e,l,s);let u=r;a||([u,s]=Ije(u,o,n,c,l,s,i,n.actionExecutor)),u=Kf(u,o,n,c.flatMap(p=>p.actions),i,void 0),u=Oje(u,o,n,c,l,i,s,a);const d=[...l];u.status==="done"&&(u=Kf(u,o,n,d.sort((p,f)=>f.order-p.order).flatMap(p=>p.exit),i,void 0));try{return s===r.historyValue&&$je(r._nodes,l)?u:np(u,{_nodes:d,historyValue:s})}catch(p){throw p}}function Pje(e,r,n,o,a){if(o.output===void 0)return;const i=F7(a.id,a.output!==void 0&&a.parent?U7(a.output,e.context,r,n.self):void 0);return U7(o.output,e.context,i,n.self)}function Oje(e,r,n,o,a,i,l,s){let c=e;const u=new Set,d=new Set;Mje(o,l,d,u),s&&d.add(e.machine.root);const p=new Set;for(const f of[...u].sort((g,b)=>g.order-b.order)){a.add(f);const g=[];g.push(...f.entry);for(const b of f.invoke)g.push(Vf(b.src,{...b,syncSnapshot:!!b.onSnapshot}));if(d.has(f)){const b=f.initial.actions;g.
${p.message}`)}if(d){a.push(...s.actions),i=s;break}}return i?[i]:void 0}get events(){return Zf(this,"events",()=>{const{states:r}=this,n=new Set(this.ownEvents);if(r)for(const o of Object.keys(r)){const a=r[o];if(a.states)for(const i of a.events)n.add(`${i}`)}return Array.from(n)})}get ownEvents(){const r=new Set([...this.transitions.keys()].filter(n=>this.transitions.get(n).some(o=>!(!o.target&&!o.actions.length&&!o.reenter))));return Array.from(r)}}const eBe="#";class tS{constructor(r,n){this.config=r,this.version=void 0,this.schemas=void 0,this.implementations=void 0,this.__xstatenode=!0,this.idMap=new Map,this.root=void 0,this.id=void 0,this.states=void 0,this.events=void 0,this.id=r.id||"(machine)",this.implementations={actors:n?.actors??{},actions:n?.actions??{},delays:n?.delays??{},guards:n?.guards??{}},this.version=this.config.version,this.schemas=this.config.schemas,this.transition=this.transition.bind(this),this.getInitialSnapshot=this.getInitialSnapshot.bind(this),this.getPersistedSnapshot=this.getPersistedSnapshot.bind(this),this.restoreSnapshot=this.restoreSnapshot.bind(this),this.start=this.start.bind(this),this.root=new o2(r,{_key:this.id,_machine:this}),this.root._initialize(),this.states=this.root.states,this.events=this.root.events}provide(r){const{actions:n,guards:o,actors:a,delays:i}=this.implementations;return new tS(this.config,{actions:{...n,...r.actions},guards:{...o,...r.guards},actors:{...a,...r.actors},delays:{...i,...r.delays}})}resolveState(r){const n=jje(this.root,r.value),o=Qw(t2(this.root,n));return r2({_nodes:[...o],context:r.context||{},children:{},status:G7(o,this.root)?"done":r.status||"active",output:r.output,error:r.error,historyValue:r.historyValue},this)}transition(r,n,o){return eS(r,n,o,[]).snapshot}microstep(r,n,o){return eS(r,n,o,[]).microstates}getTransitionData(r,n){return X7(this.root,r.value,r,n)||[]}getPreInitialState(r,n,o){const{context:a}=this.config,i=r2({context:typeof a!="function"&&a?a:{},_nodes:[this.root],children:{},status:"active"},this);return typeof a=="function"?Kf(i,n,r,[et(({spawn:l,event:s,self:c})=>a({spawn:l,input:s.input,self:c}))],o,void 0):i}getInitialSnapshot(r,n){const o=fG(n),a=[],i=this.getPreInitialState(r,o,a),l=Q7([{target:[...AG(this.root)],source:this.root,reenter:!0,actions:[],eventType:null,toJSON:null}],i,r,o,!0,a),{snapshot:s}=eS(l,o,r,a);return s}start(r){Object.values(r.children).forEach(n=>{n.getSnapshot().status==="active"&&n.start()})}getStateNodeById(r){const n=H7(r),o=n.slice(1),a=Jw(n[0])?n[0].slice(eBe.length):n[0],i=this.idMap.get(a);if(!i)throw new Error(`Child state node '#${a}' does not exist on machine '${this.id}'`);return e2(i,o)}get definition(){return this.root.definition}toJSON(){return this.definition}getPersistedSnapshot(r,n){return Wje(r,n)}restoreSnapshot(r,n){const o={},a=r.children;Object.keys(a).forEach(p=>{const f=a[p],g=f.snapshot,b=f.src,x=typeof b=="string"?q7(this,b):b;if(!x)return;const w=qf(x,{id:p,parent:n.self,syncSnapshot:f.syncSnapshot,snapshot:g,src:b,systemId:f.systemId});o[p]=w});function i(p,f){if(f instanceof o2)return f;try{return p.machine.getStateNodeById(f.id)}catch{}}function l(p,f){if(!f||typeof f!="object")return{};const g={};for(const b in f){const x=f[b];for(const w of x){const k=i(p,w);k&&(g[b]??=[],g[b].push(k))}}return g}const s=l(this.root,r.historyValue),c=r2({...r,children:o,_nodes:Array.from(Qw(t2(this.root,r.value))),historyValue:s},this),u=new Set;function d(p,f){if(!u.has(p)){u.add(p);for(const g in p){const b=p[g];if(b&&typeof b=="object"){if("xstate$$type"in b&&b.xstate$$type===Y7){p[g]=f[b.id];continue}d(b,f)}}}}return d(c.context,o),c}}function tBe(e,r,n,o,{event:a}){const i=typeof a=="function"?a(n,o):a;return[r,{event:i},void 0]}function rBe(e,{event:r}){e.defer(()=>e.emit(r))}function ui(e){function r(n,o){}return r.type="xstate.emit",r.event=e,r.resolve=tBe,r.execute=rBe,r}let rS=(function(e){return e.Parent="#_parent",e.Internal="#_internal",e})({});function nBe(e,r,n,o,{to:a,event:i,id:l,delay:s},c){const u=r.machine.implementations.delays;if(typeof i=="string")throw
[data-motion-pop-id="${a}"] {
position: absolute !important;
width: ${u}px !important;
height: ${d}px !important;
${b}px !important;
top: ${p}px !important;
}
`),()=>{w.contains(x)&&w.removeChild(x)}},[r]),y.jsx(dUe,{isPresent:r,childRef:i,sizeRef:l,children:E.cloneElement(e,{ref:c})})}const hUe=({children:e,initial:r,isPresent:n,onExitComplete:o,custom:a,presenceAffectsLayout:i,mode:l,anchorX:s,root:c})=>{const u=um(fUe),d=E.useId();let p=!0,f=E.useMemo(()=>(p=!1,{id:d,initial:r,isPresent:n,custom:a,onExitComplete:g=>{u.set(g,!0);for(const b of u.values())if(!b)return;o&&o()},register:g=>(u.set(g,!1),()=>u.delete(g))}),[n,u,o]);return i&&p&&(f={...f}),E.useMemo(()=>{u.forEach((g,b)=>u.set(b,!1))},[n]),E.useEffect(()=>{!n&&!u.size&&o&&o()},[n]),l==="popLayout"&&(e=y.jsx(pUe,{isPresent:n,anchorX:s,root:c,children:e})),y.jsx(g2.Provider,{value:f,children:e})};function fUe(){return new Map}function HK(e=!0){const r=E.useContext(g2);if(r===null)return[!0,null];const{isPresent:n,onExitComplete:o,register:a}=r,i=E.useId();E.useEffect(()=>{if(e)return a(i)},[e]);const l=E.useCallback(()=>e&&o&&o(i),[i,o,e]);return!n&&o?[!1,l]:[!0]}const y2=e=>e.key||"";function UK(e){const r=[];return E.Children.forEach(e,n=>{E.isValidElement(n)&&r.push(n)}),r}const $a=({children:e,custom:r,initial:n=!0,onExitComplete:o,presenceAffectsLayout:a=!0,mode:i="sync",propagate:l=!1,anchorX:s="left",root:c})=>{const[u,d]=HK(l),p=E.useMemo(()=>UK(e),[e]),f=l&&!u?[]:p.map(y2),g=E.useRef(!0),b=E.useRef(p),x=um(()=>new Map),[w,k]=E.useState(p),[C,_]=E.useState(p);cC(()=>{g.current=!1,b.current=p;for(let A=0;A<C.length;A++){const D=y2(C[A]);f.includes(D)?x.delete(D):x.get(D)!==!0&&x.set(D,!1)}},[C,f.length,f.join("-")]);const T=[];if(p!==w){let A=[...p];for(let D=0;D<C.length;D++){const N=C[D],P=y2(N);f.includes(P)||(A.splice(D,0,N),T.push(N))}return i==="wait"&&T.length&&(A=T),_(UK(A)),k(p),null}const{forceRender:R}=E.useContext(uy);return y.jsx(y.Fragment,{children:C.map(A=>{const D=y2(A),N=l&&!u?!1:p===C||f.includes(D),P=()=>{if(x.has(D))x.set(D,!0);else return;let O=!0;x.forEach(B=>{B||(O=!1)}),O&&(R?.(),_(b.current),l&&d?.(),o&&o())};return y.jsx(hUe,{isPresent:N,initial:!g.current||n?void 0:!1,custom:r,presenceAffectsLayout:a,mode:i,root:c,onExitComplete:N?void 0:P,anchorX:s,children:A},D)})})},mUe=E.createContext(null);function gUe(){const e=E.useRef(!1);return cC(()=>(e.current=!0,()=>{e.current=!1}),[]),e}function yUe(){const e=gUe(),[r,n]=E.useState(0),o=E.useCallback(()=>{e.current&&n(r+1)},[r]);return[E.useCallback(()=>Pr.postRender(o),[o]),r]}const bUe=e=>!e.isLayoutDirty&&e.willUpdate(!1);function vUe(){const e=new Set,r=new WeakMap,n=()=>e.forEach(bUe);return{add:o=>{e.add(o),r.set(o,o.addEventListener("willUpdate",n))},remove:o=>{e.delete(o);const a=r.get(o);a&&(a(),r.delete(o)),n()},dirty:n}}const qK=e=>e===!0,xUe=e=>qK(e===!0)||e==="id",dm=({children:e,id:r,inherit:n=!0})=>{const o=E.useContext(uy),a=E.useContext(mUe),[i,l]=yUe(),s=E.useRef(null),c=o.id||a;s.current===null&&(xUe(n)&&c&&(r=r?c+"-"+r:c),s.current={id:r,group:qK(n)&&o.group||vUe()});const u=E.useMemo(()=>({...s.current,forceRender:i}),[l]);return y.jsx(uy.Provider,{value:u,children:e})},uC=E.createContext({strict:!1});function dC(e){for(const r in e)sm[r]={...sm[r],...e[r]}}function wUe({children:e,features:r,strict:n=!1}){const[,o]=E.useState(!pC(r)),a=E.useRef(void 0);if(!pC(r)){const{renderer:i,...l}=r;a.current=i,dC(l)}return E.useEffect(()=>{pC(r)&&r().then(({renderer:i,...l})=>{dC(l),a.current=i,o(!0)})},[]),y.jsx(uC.Provider,{value:{renderer:a.current,strict:n},children:e})}function pC(e){return typeof e=="function"}const kUe=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function b2(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const oYe=[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]],TQ=yt("outline","check","Check",oYe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const aYe=[["path",{d:"M7 7m0 2.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667z",key:"svg-0"}],["path",{d:"M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1",key:"svg-1"}]],iYe=yt("outline","copy","Copy",aYe),RQ="https://github.com/",jC=E.forwardRef(({value:e,className:r,...n},o)=>{const a=e.url.includes("://")?e.url:new window.URL(e.url,window.location.href).toString();let i=a.startsWith(RQ);return y.jsx(Xs,{ref:o,variant:"default",radius:"sm",size:"sm",tt:"none",leftSection:e.title?y.jsx(y.Fragment,{children:e.title}):null,rightSection:y.jsx(cW,{value:a,timeout:1500,children:({copy:l,copied:s})=>y.jsx(or,{className:ye({opacity:s?1:.45,transition:"fast",_hover:{opacity:1}}),tabIndex:-1,size:"20",variant:s?"light":"transparent",color:s?"teal":"gray","data-active":s,onClick:c=>{c.stopPropagation(),c.preventDefault(),l()},children:s?y.jsx(TQ,{}):y.jsx(iYe,{stroke:2.5})})}),...n,className:Je(r,"group"),classNames:{root:ye({flexWrap:"nowrap",minHeight:24,maxWidth:500,userSelect:"all",pr:"0",backgroundColor:{base:"transparent",_hover:{base:"mantine.colors.gray[1]",_dark:"mantine.colors.dark[5]"}}}),section:ye({'&:is([data-position="left"])':{color:"mantine.colors.dimmed",userSelect:"none",pointerEvents:"none",_groupHover:{color:"[var(--badge-color)]",opacity:.7}}})},children:y.jsxs(Qs.a,{href:a,target:"_blank",style:{color:"var(--badge-color)",cursor:"pointer"},css:{transition:"fast",opacity:{base:.7,_hover:1},textDecoration:{base:"none",_hover:"underline"}},children:[i&&y.jsx(nYe,{height:"12",width:"12",style:{verticalAlign:"middle",marginRight:"4px"}}),i?a.replace(RQ,""):a]})})});function AQ(){const e=E.useContext(O7);if(!e)throw new Error("No LikeC4ViewModel in context found");return e}const T2="--_blur",R2="--_opacity",lYe=ye({boxSizing:"border-box",margin:"0",padding:"0",position:"fixed",inset:"0",width:"100vw",height:"100vh",maxWidth:"100vw",maxHeight:"100vh",background:"transparent",border:"transparent",_backdrop:{backdropFilter:"auto",backdropBlur:`var(${T2})`,backgroundColor:`[rgb(36 36 36 / var(${R2}, 5%))]`}}),sYe=ye({position:"absolute",pointerEvents:"all",display:"flex",flexDirection:"column",padding:"4",gap:"lg",justifyContent:"stretch",color:"mantine.colors.text",backgroundColor:{base:"mantine.colors.body",_dark:"mantine.colors.dark[6]"},boxShadow:"md",overflow:"hidden",border:"none",backgroundImage:`
linear-gradient(180deg,
color-mix(in srgb, var(--likec4-palette-fill) 60%, transparent),
color-mix(in srgb, var(--likec4-palette-fill) 20%, transparent) 8px,
color-mix(in srgb, var(--likec4-palette-fill) 14%, transparent) 20px,
transparent 80px
),
linear-gradient(180deg, var(--likec4-palette-fill), var(--likec4-palette-fill) 4px, transparent 4px)
`,"& .react-flow__attribution":{display:"none"}}),cYe=ye({flex:0,cursor:"move"}),uYe=ye({display:"block",fontFamily:"likec4.element",fontOpticalSizing:"auto",fontStyle:"normal",fontWeight:600,fontSize:"24px",lineHeight:"xs"}),BC="40px",dYe=ye({flex:`0 0 ${BC}`,height:BC,width:BC,display:"flex",alignItems:"center",justifyContent:"center",alignSelf:"flex-start",cursor:"move",_dark:{mixBlendMode:"hard-light"},"& :where(svg, img)":{width:"100%",height:"auto",maxHeight:"100%",pointerEvents:"none",filter:`
drop-shadow(0 0 3px rgb(0 0 0 / 10%))
drop-shadow(0 1px 8px rgb(0 0 0 / 5%))
drop-shadow(1px 1px 16px rgb(0 0 0 / 2%))
`},"& img":{objectFit:"contain"}}),A2="--view-title-color",N2="--icon-color",pYe=ye({width:"100%",background:"mantine.colors.body",borderRadius:"sm",padding:"[10px 8px]",transition:"fast",border:"1px dashed",borderColor:"mantine.colors.defaultBorder",[A2]:"{colors.mantine.colors.dark[1]}",_hover:{background:"mantine.colors.defaultHover",[N2]:"{colors.mantine.colors.dark[1]}",[A2]:"{colors.mantine.colors.defaultColor}"},_dark:{background:"mantine.colors.dark[6]"},_light:{[N2]:"{colors.mantine.colors.gray[6]}",[A2]:"{colors.mantine.colors.gray[7]}",_hover:{[N2]:"{colors.mantine.colors.gray[7]}"}},"& .mantine-ThemeIcon-root":{transition:"fast",color:`[var(${N2}, {colors.mantine.colors.dark[2]})]`,"--ti-size":"22px",_hover:{color:"mantine.colors.defaultColor"}},"& > *":{transition:"all 130ms {easings.inOut}"},"&:hover > *":{transitionTimingFunction:"out",transform:"translateX(1.6px)"}}),hYe=ye({transition:"fast",color:`[var(${A2}, {colors.mantine.colors.gray[7]})]`,fontSize:"15px",fontWeight:500,lineHeight:"1.4"}),fYe=ye({flex:1,display:"flex",flexDirection:"column",justifyContent:"stretch",overflow:"hidden",gap:"sm"}),mYe=ye({background:"mantine.colors.gray[1]",borderRadius:"sm",flexWrap:"nowrap",gap:"1.5",padding:"1",_dark:{background:"mantine.colors.dark[7]"}}),gYe=ye({fontSize:"xs",fontWeight:500,flexGrow:1,padding:"[6px 8px]",transition:"fast",borderRadius:"sm",color:"mantine.colors.gray[7]",_hover:{transitionTimingFunction:"out",color:"mantine.colors.defaultColor",background:"mantine.colors.gray[3]"},"&[data-active]":{transition:"none",background:"mantine.colors.white",shadow:"xs",color:"mantine.colors.defaultColor"},_dark:{color:"mantine.colors.dark[1]",_hover:{color:"mantine.colors.white",background:"mantine.colors.dark[6]"},"&:is([data-active])":{color:"mantine.colors.white",background:"mantine.colors.dark[5]"}}}),yYe=ye({flex:1,overflow:"hidden",position:"relative","&:not(:has(.mantine-ScrollArea-root))":{paddingLeft:"1",paddingRight:"1"},"& .mantine-ScrollArea-root":{width:"100%",height:"100%","& > div":{paddingLeft:"1",paddingRight:"1"}}}),bYe=ye({flex:1,display:"grid",gridTemplateColumns:"min-content 1fr",gridAutoRows:"min-content max-content",gap:"[24px 20px]",alignItems:"baseline",justifyItems:"stretch"}),vYe=ye({justifySelf:"end",textAlign:"right",userSelect:"none"}),xYe=ye({position:"absolute",width:"14px",height:"14px",border:"3.5px solid",borderColor:"mantine.colors.dark[3]",borderTop:"none",borderLeft:"none",borderRadius:"2px",bottom:"0.5",right:"0.5",transition:"fast",cursor:"se-resize",_hover:{borderWidth:"4px",borderColor:"mantine.colors.dark[1]"}}),wYe=ye({"&[data-level='1']":{marginBottom:"sm"}}),kYe=ye({cursor:"default",marginTop:"0",marginBottom:"0"}),NQ=ye({transition:"fast",color:"mantine.colors.gray[7]",_dark:{color:"mantine.colors.dark[1]"},"& > *":{transition:"fast"},_hover:{transitionTimingFunction:"out","& > :not([data-no-transform])":{transitionTimingFunction:"out",transform:"translateX(1px)"}}}),_Ye=Je(NQ),EYe=Je(NQ,ye({cursor:"pointer",width:"100%",justifyContent:"stretch",flexWrap:"nowrap",height:"36px",paddingInlineStart:"[16px]",paddingInlineEnd:"2.5",borderRadius:"sm",alignItems:"center",color:"mantine.colors.gray[7]",_dark:{color:"mantine.colors.gray.lightColor"},_hover:{background:"mantine.colors.gray.lightHover"},"& .tabler-icon":{transition:"fast",width:"90%",opacity:.65}}));/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const SYe=[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 9h.01",key:"svg-1"}],["path",{d:"M11 12h1v4h1",key:"svg-2"}]],FC=yt("outline","info-circle","InfoCircle",SYe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const CYe=[["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M12 12m-5 0a5 5 0 1 0 10 0a5 5 0 1 0 -10 0",key:"svg-1"}],["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-2"}]],TYe=yt("outline","target","Target",CYe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const RYe=[["path",{d:"M4 8v-2a2 2 0 0 1 2 -2h2",key:"svg-0"}],["path",{d:"M4 16v2a2 2 0 0 0 2 2h2",key:"svg-1"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v2",key:"svg-2"}],["path",{d:"M16 20h2a2 2 0 0 0 2 -2v-2",key:"svg-3"}],["path",{d:"M8 11a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-4"}],["path",{d:"M16 16l-2.5 -2.5",key:"svg-5"}]],gi=yt("outline","zoom-scan","ZoomScan",RYe),AYe=({node:e})=>y.jsxs(Ur,{className:_Ye,gap:6,align:"baseline",wrap:"nowrap",children:[y.jsxs(wt,{component:"div",fz:11,c:"dimmed",children:[e.kind,":"]}),y.jsx(wt,{component:"div",fz:"sm",fw:"500",children:e.title})]}),NYe=({instance:e})=>{const r=Wt(),n=r.currentView.id,o=[...e.views()];return y.jsxs(Ur,{className:EYe,gap:4,children:[y.jsx(ci,{color:"gray",variant:"transparent",size:"xs",flex:0,children:y.jsx(TYe,{stroke:1.2})}),y.jsx(wt,{component:"div",fz:"sm",fw:"500",flex:"1 1 100%",children:e.title}),y.jsxs(Se,{onClick:cn,pos:"relative","data-no-transform":!0,flex:0,children:[o.length===0&&y.jsx(Zn,{size:"compact-xs",variant:"transparent",color:"gray",disabled:!0,children:"no views"}),o.length>0&&y.jsxs(ho,{shadow:"md",withinPortal:!1,position:"bottom-start",offset:0,closeOnClickOutside:!0,clickOutsideEvents:["pointerdown","mousedown","click"],closeOnEscape:!0,trapFocus:!0,children:[y.jsx(ho.Target,{children:y.jsxs(Zn,{size:"compact-xs",variant:"subtle",color:"gray",children:[o.length," view",o.length>1?"s":""]})}),y.jsx(ho.Dropdown,{children:o.map(a=>y.jsx(ho.Item,{px:"xs",py:4,disabled:a.id===n,leftSection:y.jsx(ci,{size:"sm",variant:"transparent",color:"gray",children:y.jsx(gi,{stroke:1.8,opacity:.65})}),styles:{itemSection:{marginInlineEnd:Ae(8)}},onClick:i=>{i.stopPropagation(),r.navigateTo(a.id)},children:a.title},a.id))})]})]})]})},DYe=()=>{},$Ye=E.memo(({elementFqn:e})=>{const r=Ho().element(e),n=[...r.deployments()],o=Y0({multiple:!1});o.setHoveredNode=DYe;const a=E.useMemo(()=>{let i=[],l=new Map;for(const s of r.deployments()){let c={label:y.jsx(NYe,{instance:s}),value:s.id,type:"instance",children:[]};l.set(s.id,c);let u=s.parent;for(;u;){let d=l.get(u.id);if(d){d.children.push(c);break}d={label:y.jsx(AYe,{node:u}),value:u.id,type:"node",children:[c]},l.set(u.id,d),c=d,u=u.parent}!u&&!i.includes(c)&&i.push(c)}return i},[r]);return E.useEffect(()=>{o.expandAllNodes()},[a]),n.length===0?y.jsx(Pw,{variant:"light",color:"gray",icon:y.jsx(FC,{}),children:"This element does not have any deployments"}):y.jsx(Bf,{levelOffset:"sm",allowRangeSelection:!1,classNames:{node:wYe,label:kYe},styles:{root:{position:"relative",width:"min-content",minWidth:300}},data:a,tree:o,renderNode:({node:i,selected:l,elementProps:s,hasChildren:c})=>y.jsx(Se,{...s,style:{...!c&&{marginBottom:Ae(4)}},children:c?y.jsx(Zn,{fullWidth:!0,color:"gray",variant:l?"transparent":"subtle",size:"xs",justify:"flex-start",styles:{root:{position:"unset",paddingInlineStart:Ae(16)}},children:i.label}):i.label})})}),PYe=()=>{},DQ=(e,r)=>{if(e===r)return!0;if(e.length!==r.length)return!1;for(const[n,o]of e.entries())if(o!==r[n]&&!Gn(o,r[n]))return!1;return!0};function D2(e,r,n,o){const a=FB();BB(a?PYe:e,r,DQ,o)}function OYe(){const e=typeof window<"u"&&typeof window.devicePixelRatio=="number"?window.devicePixelRatio:1;return Ki(Math.floor(e),{min:1,max:4})}let $2;function yi(e){return $2??=OYe(),$2<2?Math.round(e):Math.round(e*$2)/$2}function MYe(e){switch(e){case"dots":return Xi.Dots;case"lines":return Xi.Lines;case"cross":return Xi.Cross;default:Xa(e)}}function IYe({background:e}){return typeof e=="string"?y.jsx(IU,{variant:MYe(e),size:2,gap:20}):y.jsx(IU,{...e})}const dl={Compound:1,Edge:20,Element:20,Max:30},pl=.05,HC=3,P2={default:"16px",withControls:{top:"50px",left:"16px",right:"16px",bottom:"16px"}},$Q=(e,r)=>(e.data.dimmed??!1)===r?e:{...e,data:{...e.data,dimmed:r}};function LYe(e,r){return r!==void 0?$Q(e,r):n=>$Q(n,e)}const PQ=(e,r)=>(e.data.hovered??!1)===r?e:{...e,data:{...e.data,hovered:r}};function zYe(e,r){return r!==void 0?PQ(e,r):n=>PQ(n,e)}function OQ(e,r){return MNe(e.data,r)?e:{...e,data:{...e.data,...r}}}function jYe(e,r){return r!==void 0?OQ(e,r):n=>OQ(n,e)}con
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const OWe=[["path",{d:"M8 9l4 -4l4 4",key:"svg-0"}],["path",{d:"M16 15l-4 4l-4 -4",key:"svg-1"}]],IT=yt("outline","selector","Selector",OWe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const MWe=[["path",{d:"M9 6l6 6l-6 6",key:"svg-0"}]],pp=yt("outline","chevron-right","ChevronRight",MWe),IWe=e=>{const r=e.context.layouted?.subjectExistsInScope??!1;return{subjectId:e.context.subject,viewId:e.context.viewId,scope:e.context.scope,subjectExistsInScope:r,enableSelectSubject:e.context.enableSelectSubject,enableChangeScope:e.context.enableChangeScope}},LWe=()=>{},zWe=E.memo(()=>{const e=Sy(),{subjectId:r,viewId:n,scope:o,subjectExistsInScope:a,enableSelectSubject:i,enableChangeScope:l}=O2(IWe),s=E.useRef(null),c=E.useRef(null),u=Ho().findElement(r),d=NWe(o==="view"&&n?n:void 0),p=Y0({multiple:!1});return p.setHoveredNode=LWe,E.useEffect(()=>{bd(r).reverse().forEach(f=>{p.expand(f)}),p.select(r)},[r]),y.jsxs(Ur,{ref:s,gap:"xs",pos:"relative",children:[i&&y.jsxs(Ur,{gap:4,wrap:"nowrap",children:[y.jsx(Se,{fz:"xs",fw:"500",style:{whiteSpace:"nowrap",userSelect:"none"},children:"Relationships of"}),y.jsx(Se,{pos:"relative",children:y.jsxs(mr,{position:"bottom-start",shadow:"md",keepMounted:!1,withinPortal:!1,closeOnClickOutside:!0,clickOutsideEvents:["pointerdown","mousedown","click"],offset:4,onOpen:()=>{setTimeout(()=>{c.current?.querySelector(`[data-value="${r}"]`)?.scrollIntoView({behavior:"instant",block:"nearest"})},100)},children:[y.jsx(fu,{children:y.jsx(Zn,{size:"xs",variant:"default",maw:250,rightSection:y.jsx(IT,{size:16}),children:y.jsx(wt,{fz:"xs",fw:"500",truncate:!0,children:u?.title??"???"})})}),y.jsx(Gs,{p:0,miw:250,maw:400,children:y.jsx(ta,{scrollbars:"y",type:"never",viewportRef:c,className:FJ,children:y.jsx(Bf,{allowRangeSelection:!1,selectOnClick:!1,tree:p,data:d,classNames:PWe,levelOffset:8,styles:{root:{maxWidth:400,overflow:"hidden"},label:{paddingTop:5,paddingBottom:6}},renderNode:({node:f,selected:g,expanded:b,elementProps:x,hasChildren:w})=>y.jsxs(Ur,{gap:2,wrap:"nowrap",...x,py:"3",children:[y.jsx(or,{variant:"subtle",size:18,c:"dimmed",style:{visibility:w?"visible":"hidden"},children:y.jsx(pp,{stroke:3.5,style:{transition:"transform 150ms ease",transform:`rotate(${b?"90deg":"0"})`,width:"80%"}})}),y.jsx(Se,{flex:"1 1 100%",w:"100%",onClick:k=>{k.stopPropagation(),p.select(f.value),p.expand(f.value),e.navigateTo(f.value)},children:y.jsx(wt,{fz:"sm",fw:g?"600":"400",truncate:"end",children:f.label})})]})})})})]})})]}),l&&y.jsxs(Ur,{gap:4,wrap:"nowrap",children:[i&&y.jsx(Se,{fz:"xs",fw:"500",...!a&&{c:"dimmed"},style:{whiteSpace:"nowrap",userSelect:"none"},children:"Scope"}),y.jsx("div",{children:y.jsx(fo,{color:"orange",label:y.jsxs(y.Fragment,{children:["This element does not exist in the current view",o==="view"&&y.jsxs(y.Fragment,{children:[y.jsx("br",{}),"Scope is set to global"]})]}),position:"bottom-start",disabled:a,portalProps:{target:s.current},children:y.jsx(U0,{flex:"1 0 auto",size:"xs",withItemsBorders:!1,value:o,styles:{label:{paddingLeft:8,paddingRight:8}},onChange:f=>{e.changeScope(f)},data:[{label:"Global",value:"global"},{label:y.jsx("span",{children:"Current view"}),value:"view",disabled:!a}]})})})]})]})}),z2=(e,r)=>Math.abs(e-r)<2.5,jWe=(e,r)=>e.id===r.id&&ut(e.selected??!1,r.selected??!1)&&ut(e.animated??!1,r.animated??!1)&&ut(e.source,r.source)&&ut(e.sourceHandleId??null,r.sourceHandleId??null)&&ut(e.sourcePosition,r.sourcePosition)&&ut(e.target,r.target)&&ut(e.targetHandleId??null,r.targetHandleId??null)&&ut(e.targetPosition,r.targetPosition)&&z2(e.sourceX,r.sourceX)&&z2(e.sourceY,r.sourceY)&&z2(e.targetX,r.targetX)&&z2(e.targetY,r.targetY)&&ut(e.data,r.data);function LT(e){return E.memo(e,jWe)}const BWe=["Controls","ReadOnly","FocusMode","NavigateTo","ElementDetails","RelationshipDetails","RelationshipBrowser","Search","NavigationButtons","Notations","DynamicViewWalkthrough","EdgeEditing","FitView","Vscode","ElementTags"],HJ=E0(BWe,e=>[`enable${e}`,!1]),zT=E.createContext(HJ),FWe=e=>{let{enableReadOnly:r,enableEdgeEditing:n,...o}=e;return r&&(n=!1),{enableReadOnly:r,enableEdgeEditing:n,...o}};function hp({children:e,features:r,overrides:n}){const o=E.useContext(zT),[a,i]=E.useState(o);return E.useEffect(()=>{i(l=>{const s=FWe({...o,...r,...n});return Gn(l,s)
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const lGe=[["path",{d:"M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11",key:"svg-0"}]],sGe=yt("outline","bolt","Bolt",lGe),cGe=Uo({position:"absolute",zIndex:1,justifyContent:"center",alignItems:"center",_smallZoom:{display:"none"}}),uGe=Uo({gap:"1.5",justifyContent:"center",alignItems:"center"});function H2({selected:e=!1,data:{hovered:r=!1},buttons:n}){const o=Ta();return n.length?y.jsx(qr,{className:cGe,style:{top:"calc(100% - 30px)",transform:"translateX(-50%)",left:"50%",width:"auto",minHeight:30},children:y.jsx(Qr,{layoutRoot:!0,initial:!1,style:{originY:0},animate:{opacity:r||e?1:.75,scale:r?1.1:e?.9:.8,y:r||e?6:0},"data-likec4-hovered":r,className:Je("nodrag nopan",uGe),children:n.map((a,i)=>y.jsx(or,{component:fl,className:E2({}),initial:!1,whileTap:{scale:1},whileHover:{scale:1.3},onClick:a.onClick,onDoubleClick:cn,children:a.icon||y.jsx(sGe,{})},`${o}-${a.key??i}`))},`${o}-action-buttons`)}):null}/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const dGe=[["path",{d:"M3 6a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-0"}],["path",{d:"M21 11v-3a2 2 0 0 0 -2 -2h-6l3 3m0 -6l-3 3",key:"svg-1"}],["path",{d:"M3 13v3a2 2 0 0 0 2 2h6l-3 -3m0 6l3 -3",key:"svg-2"}],["path",{d:"M15 18a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-3"}]],Ny=yt("outline","transform","Transform",dGe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const pGe=[["path",{d:"M4 21v-4a3 3 0 0 1 3 -3h5",key:"svg-0"}],["path",{d:"M9 17l3 -3l-3 -3",key:"svg-1"}],["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-2"}],["path",{d:"M5 11v-6a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2h-9.5",key:"svg-3"}]],fm=yt("outline","file-symlink","FileSymlink",pGe),hGe=e=>{const{enableNavigateTo:r,enableVscode:n}=wr(),o=Wt(),a=F2(),i=Sy(),l=O2(d=>d.context.subject),s=[],{navigateTo:c,fqn:u}=e.data;return c&&r&&a!==c&&s.push({key:"navigate",icon:y.jsx(gi,{}),onClick:d=>{d.stopPropagation(),o.navigateTo(c)}}),u!==l&&s.push({key:"relationships",icon:y.jsx(Ny,{}),onClick:d=>{d.stopPropagation(),i.navigateTo(u,e.id)}}),n&&s.push({key:"goToSource",icon:y.jsx(fm,{}),onClick:d=>{d.stopPropagation(),o.openSource({element:u})}}),y.jsx(H2,{buttons:s,...e})};function Dy({nodeProps:{data:{hovered:e=!1,dimmed:r=!1,...n}},className:o,children:a,style:i,...l}){let s=Ki(n.style.opacity??100,{min:0,max:100});const c=s<99,u=65,d=u+Ki((100-u)*(s/100),{min:0,max:100-u}),p=_Ve({isTransparent:c,inverseColor:s<60,borderStyle:n.style.border??(c?"dashed":"none")}),f=Ki(n.depth??1,{min:1,max:5});return y.jsx(Qr,{className:Je(p,o),initial:!1,"data-likec4-hovered":e,"data-likec4-color":n.color,"data-compound-depth":f,...r!==!1&&{"data-likec4-dimmed":r},style:{...i,"--_border-transparency":`${d}%`,"--_compound-transparency":`${s}%`},...l,children:a})}function $y({data:e}){const r=q3({element:e,className:"likec4-compound-icon"});return y.jsxs("div",{className:"likec4-compound-title-container",children:[r,y.jsx(wt,{component:"h3",className:"likec4-compound-title",truncate:"end",children:e.title})]})}const YJ=J1({base:{transitionDuration:"normal"},variants:{delay:{true:{transitionDelay:{base:"0.2s",_hover:"0s"}}}}});/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const fGe=[["path",{d:"M3 4m0 3a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v10a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3z",key:"svg-0"}],["path",{d:"M9 10m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-1"}],["path",{d:"M15 8l2 0",key:"svg-2"}],["path",{d:"M15 12l2 0",key:"svg-3"}],["path",{d:"M7 16l10 0",key:"svg-4"}]],BT=yt("outline","id","Id",fGe);function WJ({data:{hovered:e=!1},icon:r,onClick:n}){const o=t9(e,e?130:0)[0]&&e;return y.jsx(Qr,{initial:!1,animate:{scale:o?1.2:1},whileHover:{scale:1.4},whileTap:{scale:1},className:"likec4-compound-details details-button",children:y.jsx(or,{className:Je("nodrag nopan",YJ({delay:e&&!o}),E2({variant:"transparent"})),onClick:n,onDoubleClick:cn,children:r??y.jsx(BT,{stroke:1.8,style:{width:"75%"}})})})}const mGe=ye({position:"relative",width:"100%",height:"100%",padding:"0",margin:"0",display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"none",_before:{content:'" "',position:"absolute",top:"[calc(100% - 4px)]",left:"0",width:"100%",height:"24px",background:"[transparent]",pointerEvents:"all"},_focusVisible:{outline:"none"},_reduceGraphicsOnPan:{_before:{display:"none"}},":where(.react-flow__node.selectable:not(.dragging)) &":{cursor:"pointer"}}),mm=E.forwardRef(({nodeProps:{selected:e=!1,selectable:r=!1,data:{hovered:n=!1,dimmed:o=!1,...a}},className:i,style:l,children:s,...c},u)=>{let d=1;switch(!0){case n:d=1.05;break;case e:d=1.02;break}const{size:p,padding:f,textSize:g}=e3(a.style??{});return y.jsx(Qr,{ref:u,className:Je(mGe,"group","likec4-element-node",i),initial:!1,...r&&{animate:{scale:d},whileTap:{scale:.98}},"data-likec4-hovered":n,"data-likec4-color":a.color,"data-likec4-shape":a.shape,"data-likec4-shape-size":p,"data-likec4-spacing":f,"data-likec4-text-size":g,...o!==!1&&{"data-likec4-dimmed":o},style:{...l},...c,children:s})});mm.displayName="ElementNodeContainer";function GJ(e,r,n=.065){const o=Math.round(e/2),a=o,i=yi(n*o),l=r-2*i;return{path:` M ${e},${i}
a ${a},${i} 0,0,0 ${-e} 0
l 0,${l}
a ${a},${i} 0,0,0 ${e} 0
l 0,${-l}
z
`.replace(/\s+/g," ").trim(),ry:i,rx:a}}function XJ(e,r,n=.185){const o=r,a=Math.round(o/2),i=yi(o/2*n),l=e-2*i;return{path:`
M ${i},0
a ${i},${a} 0,0,0 0 ${o}
l ${l},0
a ${i},${a} 0,0,0 0 ${-o}
z`.replace(/\s+/g," ").trim(),ry:a,rx:i}}const fp={width:115,height:120,path:"M57.9197 0C10.9124 0 33.5766 54.75 33.5766 54.75C38.6131 62.25 45.3285 60.75 45.3285 66C45.3285 70.5 39.4526 72 33.5766 72.75C24.3431 72.75 15.9489 71.25 7.55474 84.75C2.51825 93 0 120 0 120H115C115 120 112.482 93 108.285 84.75C99.8905 70.5 91.4963 72.75 82.2628 72C76.3869 71.25 70.5109 69.75 70.5109 65.25C70.5109 60.75 77.2263 62.25 82.2628 54C82.2628 54.75 104.927 0 57.9197 0V0Z"};function KJ({shape:e,w:r,h:n}){switch(e){case"mobile":return y.jsxs(y.Fragment,{children:[y.jsx("rect",{width:r,height:n,rx:6,"data-likec4-fill":"mix-stroke",strokeWidth:0}),y.jsxs("g",{"data-likec4-fill":"fill",strokeWidth:0,children:[y.jsx("circle",{cx:17,cy:n/2,r:12}),y.jsx("rect",{x:33,y:12,width:r-44,height:n-24,rx:5})]})]});case"browser":return y.jsxs(y.Fragment,{children:[y.jsx("rect",{width:r,height:n,rx:6,"data-likec4-fill":"mix-stroke",strokeWidth:0}),y.jsxs("g",{"data-likec4-fill":"fill",strokeWidth:0,children:[y.jsx("circle",{cx:16,cy:17,r:7}),y.jsx("circle",{cx:36,cy:17,r:7}),y.jsx("circle",{cx:56,cy:17,r:7}),y.jsx("rect",{x:70,y:8,width:r-80,height:17,rx:4}),y.jsx("rect",{x:10,y:32,width:r-20,height:n-42,rx:4})]})]});case"person":return y.jsxs(y.Fragment,{children:[y.jsx("rect",{width:r,height:n,rx:6,strokeWidth:0}),y.jsx("svg",{x:r-fp.width-6,y:n-fp.height,width:fp.width,height:fp.height,viewBox:`0 0 ${fp.width} ${fp.height}`,"data-likec4-fill":"mix-stroke",children:y.jsx("path",{strokeWidth:0,d:fp.path})})]});case"queue":{const{path:o,rx:a,ry:i}=XJ(r,n);return y.jsxs(y.Fragment,{children:[y.jsx("path",{d:o,strokeWidth:2}),y.jsx("ellipse",{cx:a,cy:i,ry:i-.75,rx:a,"data-likec4-fill":"mix-stroke",strokeWidth:2})]})}case"storage":case"cylinder":{const{path:o,rx:a,ry:i}=GJ(r,n);return y.jsxs(y.Fragment,{children:[y.jsx("path",{d:o,strokeWidth:2}),y.jsx("ellipse",{cx:a,cy:i,ry:i,rx:a-.75,"data-likec4-fill":"mix-stroke",strokeWidth:2})]})}default:return Xa(e)}}function gGe({shape:e,w:r,h:n}){let o;switch(e){case"queue":o=y.jsx("path",{d:XJ(r,n).path});break;case"storage":case"cylinder":{o=y.jsx("path",{d:GJ(r,n).path});break}default:{o=y.jsx("rect",{x:-1,y:-1,width:r+2,height:n+2,rx:6});break}}return y.jsx("g",{className:"likec4-shape-outline",children:o})}function yGe({multiple:e,withOutLine:r}){return y.jsxs("div",{className:sQ({shapetype:"html"}),children:[e&&y.jsx("div",{className:"likec4-shape-multiple"}),r&&y.jsx("div",{className:"likec4-shape-outline"})]})}function gm({data:e,width:r,height:n,showSeletionOutline:o=!0}){let a=r&&r>10?r:e.width,i=n&&n>10?n:e.height;const l=e.style?.multiple??!1;if(e.shape==="rectangle")return y.jsx(yGe,{multiple:l,withOutLine:o});const s=sQ({shapetype:"svg"});return y.jsxs(y.Fragment,{children:[l&&y.jsx("svg",{className:s,"data-likec4-shape-multiple":"true",viewBox:`0 0 ${a} ${i}`,children:y.jsx(KJ,{shape:e.shape,w:a,h:i})}),y.jsxs("svg",{className:s,viewBox:`0 0 ${a} ${i}`,children:[o&&y.jsx(gGe,{shape:e.shape,w:a,h:i}),y.jsx(KJ,{shape:e.shape,w:a,h:i})]})]})}const mp=E.forwardRef(({value:e,textScale:r=1,uselikec4palette:n=!1,hideIfEmpty:o=!1,emptyText:a="no content",className:i,style:l,fontSize:s,...c},u)=>{if(e.isEmpty&&o)return null;const d=e.nonEmpty?e.isMarkdown?{dangerouslySetInnerHTML:{__html:e.html}}:{children:y.jsx("p",{children:e.text})}:{children:y.jsx(wt,{component:"span",fz:"xs",c:"dimmed",style:{userSelect:"none"},children:a})};return y.jsx(qr,{ref:u,...c,className:Je(TVe({uselikec4palette:n,value:e.isMarkdown?"markdown":"plaintext"}),i),style:{...l,...s&&{"--text-fz":`var(--font-sizes-${s}, var(--font-sizes-md))`},"--mantine-scale":r},...d})});mp.displayName="Markdown";const ZJ=E.forwardRef(({className:e,...r},n)=>y.jsx("div",{...r,ref:n,className:Je(e,SVe(),"likec4-element")})),QJ=({data:e,...r})=>y.jsx(q3,{element:e,...r}),JJ=E.forwardRef(({className:e,...r},n)=>y.jsx("div",{...r,className:Je(e,"likec4-element-node-content"),ref:n})),eee=E.forwardRef(({data:{title:e,style:r},className:n,...o},a)=>{const{size:i}=e3(r),l=i==="sm"||i==="xs";return y.jsx(wt,{component:"div",...o,className:Je(n,"likec
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const EGe=[["path",{d:"M15 6l-6 6l6 6",key:"svg-0"}]],nee=yt("outline","chevron-left","ChevronLeft",EGe),SGe={element:xGe,compound:wGe,empty:aGe},CGe={relationship:nGe};function oee({actorRef:e}){const r=E.useRef(null);return r.current==null&&(r.current={initialNodes:[],initialEdges:[]}),y.jsx(MQ.Provider,{value:e,children:y.jsx(Px,{...r.current,children:y.jsx(dm,{id:e.sessionId,inherit:!1,children:y.jsx($a,{children:y.jsx(AGe,{})})})})})}const TGe=e=>({isActive:e.hasTag("active"),nodes:e.context.xynodes,edges:e.context.xyedges}),RGe=(e,r)=>e.isActive===r.isActive&&Gn(e.nodes,r.nodes)&&Gn(e.edges,r.edges),AGe=E.memo(()=>{const e=Sy(),{isActive:r,nodes:n,edges:o}=O2(TGe,RGe);return y.jsx(UC,{id:e.rootElementId,nodes:n,edges:o,className:Je(r?"initialized":"not-initialized","relationships-browser"),nodeTypes:SGe,edgeTypes:CGe,fitView:!1,onNodeClick:it((a,i)=>{a.stopPropagation(),e.send({type:"xyflow.nodeClick",node:i})}),onEdgeClick:it((a,i)=>{a.stopPropagation(),e.send({type:"xyflow.edgeClick",edge:i})}),onPaneClick:it(a=>{a.stopPropagation(),e.send({type:"xyflow.paneClick"})}),onDoubleClick:it(a=>{e.send({type:"xyflow.paneDblClick"})}),onViewportResize:it(()=>{e.send({type:"xyflow.resized"})}),onNodesChange:it(a=>{e.send({type:"xyflow.applyNodeChanges",changes:a})}),onEdgesChange:it(a=>{e.send({type:"xyflow.applyEdgeChanges",changes:a})}),onEdgeMouseEnter:it((a,i)=>{i.data.hovered||e.send({type:"xyflow.edgeMouseEnter",edge:i})}),onEdgeMouseLeave:it((a,i)=>{i.data.hovered&&e.send({type:"xyflow.edgeMouseLeave",edge:i})}),onSelectionChange:it(a=>{e.send({type:"xyflow.selectionChange",...a})}),nodesDraggable:!1,pannable:!0,zoomable:!0,children:y.jsx(DGe,{})})}),NGe=e=>({subjectId:e.context.subject,viewId:e.context.viewId,scope:e.context.scope,closeable:e.context.closeable}),DGe=E.memo(()=>{const e=Sy(),{subjectId:r,viewId:n,scope:o,closeable:a}=O2(NGe),i=fr(),l=uf();E.useEffect(()=>{l.viewportInitialized&&e.send({type:"xyflow.init",instance:l,store:i})},[i,l.viewportInitialized,e]);const s=AWe(r,n,o),[c,u,{history:d,current:p}]=Yq(r);E.useEffect(()=>{c!==r&&u.set(r)},[r]),E.useEffect(()=>{c!==r&&e.navigateTo(c)},[c,e]),HB(()=>{e.updateView(s)},[s,e]);const f=p>0,g=p+1<d.length;return y.jsxs(y.Fragment,{children:[y.jsx($Ge,{hasStepBack:f,hasStepForward:g,onStepBack:()=>u.back(),onStepForward:()=>u.forward()}),a&&y.jsx(ou,{position:"top-right",children:y.jsx(or,{variant:"default",color:"gray",onClick:b=>{b.stopPropagation(),e.close()},children:y.jsx(Hf,{})})})]})}),$Ge=({hasStepBack:e,hasStepForward:r,onStepBack:n,onStepForward:o})=>y.jsx(ou,{position:"top-left",children:y.jsxs(Ur,{gap:4,wrap:"nowrap",children:[y.jsxs($a,{mode:"popLayout",children:[e&&y.jsx(cl.div,{layout:!0,initial:{opacity:.05,transform:"translateX(-5px)"},animate:{opacity:1,transform:"translateX(0)"},exit:{opacity:.05,transform:"translateX(-10px)"},children:y.jsx(or,{variant:"default",color:"gray",onClick:a=>{a.stopPropagation(),n()},children:y.jsx(nee,{})})},"back"),r&&y.jsx(cl.div,{layout:!0,initial:{opacity:.05,transform:"translateX(5px)"},animate:{opacity:1,transform:"translateX(0)"},exit:{opacity:0,transform:"translateX(5px)"},children:y.jsx(or,{variant:"default",color:"gray",onClick:a=>{a.stopPropagation(),o()},children:y.jsx(pp,{})})},"forward")]}),y.jsx(zWe,{})]})}),PGe=ye({display:"inline-block",fontSize:"sm",fontWeight:500,whiteSpace:"nowrap",padding:"[3px 6px]",borderRadius:3,background:"var(--likec4-palette-fill)/75",lineHeight:1.2,color:"var(--likec4-palette-hiContrast)"}),OGe=ye({_light:{background:"mantine.colors.gray[1]","&[data-missing":{}},"&[data-missing]":{color:"mantine.colors.orange[4]",background:"mantine.colors.orange[8]/15",borderColor:"mantine.colors.orange[5]/20",_light:{color:"mantine.colors.orange[8]"}}}),MGe=ye({flex:"1 1 100%",position:"relative",width:"100%",height:"100%",background:"mantine.colors.body",border:"1px solid {colors.mantine.colors.defaultBorder}",borderRadius:"sm",_light:{borderColor:"mantine.colors.gray[3]",background:"mantine.colors.gray[1]"}});ye({_before:{content:'"scope:"',position:"absolute",top:"0",lef
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const IGe=[["path",{d:"M5 12l14 0",key:"svg-0"}],["path",{d:"M13 18l6 -6",key:"svg-1"}],["path",{d:"M13 6l6 6",key:"svg-2"}]],ym=yt("outline","arrow-right","ArrowRight",IGe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const LGe=[["path",{d:"M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6",key:"svg-0"}],["path",{d:"M11 13l9 -9",key:"svg-1"}],["path",{d:"M15 4h5v5",key:"svg-2"}]],aee=yt("outline","external-link","ExternalLink",LGe),zGe=fo.withProps({color:"dark",fz:"xs",openDelay:600,closeDelay:120,label:"",children:null,offset:8,withinPortal:!1});function jGe({node:e,element:r}){const n=qG(),o=kVe(),a=wn(o,d=>d.children[`${o.id}-relationships`]),i=[...r.incoming()].map(d=>d.id),l=[...r.outgoing()].map(d=>d.id),s=e?Y8([...e.incoming()].flatMap(d=>d.$edge.relations)):[],c=e?Y8([...e.outgoing()].flatMap(d=>d.$edge.relations)):[],u=[...i,...l].filter(d=>!s.includes(d)&&!c.includes(d)).length;return y.jsxs(ra,{gap:"xs",pos:"relative",w:"100%",h:"100%",children:[i.length+l.length>0&&y.jsxs(Ur,{gap:"xs",wrap:"nowrap",align:"center",children:[y.jsx(Se,{children:y.jsxs(Ur,{gap:8,mb:4,wrap:"nowrap",children:[y.jsx(iee,{title:"incoming",total:i.length,included:s.length}),y.jsx(ci,{size:"sm",variant:"transparent",c:"dimmed",children:y.jsx(ym,{style:{width:16}})}),y.jsx(wt,{className:PGe,children:g1(r.id)}),y.jsx(ci,{size:"sm",variant:"transparent",c:"dimmed",children:y.jsx(ym,{style:{width:16}})}),y.jsx(iee,{title:"outgoing",total:l.length,included:c.length})]})}),u>0&&y.jsx(zGe,{label:"Current view does not include some relationships",children:y.jsxs(Ur,{mt:"xs",gap:6,c:"orange",style:{cursor:"pointer"},children:[y.jsx(FC,{style:{width:14}}),y.jsxs(wt,{fz:"sm",children:[u," relationship",u>1?"s are":" is"," hidden"]})]})})]}),y.jsx(Se,{className:MGe,children:a&&y.jsxs(y.Fragment,{children:[y.jsx(oee,{actorRef:a}),y.jsx(Se,{pos:"absolute",top:12,right:12,children:y.jsx(or,{size:"md",variant:"default",radius:"sm",onClick:d=>{d.stopPropagation();const{subject:p,scope:f,viewId:g}=a.getSnapshot().context;n.send({type:"open.relationshipsBrowser",subject:p,scope:f,viewId:g})},children:y.jsx(aee,{stroke:1.6,style:{width:"70%"}})})})]})})]})}function iee({title:e,total:r,included:n}){return y.jsx(Nf,{withBorder:!0,shadow:"none",className:OGe,px:"md",py:"xs",radius:"md",mod:{zero:r===0,missing:r!==n},children:y.jsxs(ra,{gap:4,align:"flex-end",children:[y.jsx(wt,{component:"div",c:r!==n?"orange":"dimmed",tt:"uppercase",fw:600,fz:10,lh:1,children:e}),y.jsx(wt,{fw:600,fz:"xl",component:"div",lh:1,children:r!==n?y.jsxs(y.Fragment,{children:[n," / ",r]}):y.jsx(y.Fragment,{children:r})})]})})}const BGe=ye({marginTop:"sm",marginBottom:"sm"}),FGe=ye({display:"inline-flex",transition:"fast",border:"1px dashed",borderColor:"mantine.colors.defaultBorder",borderRadius:"sm",px:"md",py:"xs",alignItems:"center",cursor:"pointer",color:"mantine.colors.gray[7]",_dark:{color:"mantine.colors.dark[1]"},"& > *":{transition:"fast"},_hover:{transitionTimingFunction:"out",borderStyle:"solid",color:"mantine.colors.defaultColor",background:"mantine.colors.defaultHover","& > *":{transitionTimingFunction:"out",transform:"translateX(1px)"}}}),HT=({element:e})=>y.jsx(Se,{className:FGe,children:y.jsx(wt,{component:"div",fz:"sm",fw:"500",children:e.title})}),HGe=()=>{};function UGe({element:e}){const r=Y0({multiple:!1});r.setHoveredNode=HGe;const n=E.useMemo(()=>{let o=1;const a=l=>({label:l,value:`msg${o++}`,type:"message",children:[]}),i={label:y.jsx(HT,{type:"current",element:e}),value:e.id,element:e,type:"current",children:[...e.children()].map(l=>({label:y.jsx(HT,{type:"descedant",element:l}),value:l.id,element:l,type:"descedant",children:[]}))};return i.children.length===0&&i.children.push(a(y.jsx(Uw,{radius:"sm",children:"no nested"}))),[[...e.ancestors()].reduce((l,s)=>({label:y.jsx(HT,{type:"ancestor",element:s}),value:s.id,element:s,type:"ancestor",children:[l]}),i)]},[e]);return E.useEffect(()=>{r.expandAllNodes()},[n]),y.jsxs(y.Fragment,{children:[y.jsxs(Pw,{variant:"light",color:"orange",title:"In development",icon:y.jsx(FC,{}),children:["We need your feedback. Share your thoughts and ideas -"," ",y.jsx(r7,{fz:"sm",fw:500,underline:"hover",c:"orange",href:"https://github.com/likec4/likec4/discussions/",target:"_blank",children:"GitHub discussions"})]}),y.jsx
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const qGe=[["path",{d:"M12 4l-8 4l8 4l8 -4l-8 -4",key:"svg-0"}],["path",{d:"M4 12l8 4l8 -4",key:"svg-1"}],["path",{d:"M4 16l8 4l8 -4",key:"svg-2"}]],UT=yt("outline","stack-2","Stack2",qGe),lee=If.withProps({mb:8,labelPosition:"left",variant:"dashed"}),see=fo.withProps({color:"dark",fz:"xs",openDelay:400,closeDelay:150,label:"",children:null,offset:4}),cee=wt.withProps({component:"div",fz:11,fw:500,c:"dimmed",lh:1}),Py=wt.withProps({component:"div",fz:"xs",c:"dimmed",className:vYe}),bm=24,VGe=["Properties","Relationships","Views","Structure","Deployments"];function YGe({viewId:e,fromNode:r,rectFromNode:n,fqn:o,onClose:a}){const[i,l]=E.useState(!1),s=_$e(),c=s.width||window.innerWidth||1200,u=s.height||window.innerHeight||800,[d,p]=b$e({key:"likec4:element-details:active-tab",defaultValue:"Properties"}),f=Wt(),g=AQ(),b=r?g.findNode(r):g.findNodeWithElement(o),x=g.$model.element(o),[w,k]=yn([...x.views()],Ro(Q=>Q.$view),lq(Q=>Q._type==="element"&&Q.viewOf===o));let C=b?.navigateTo?.$view??x.defaultView?.$view??null;C?.id===e&&(C=null);const _=zx(x.links),T=wVe(),R=(b?.$node.children?.length??0)>0,A=Math.min(700,c-bm*2),D=Math.min(650,u-bm*2),N=n?{x:n.x+(R?n.width-A/2:n.width/2),y:n.y+(R?0:n.height/2)}:{x:c/2,y:u/2},P=n?Math.min(n.width/A,n.height/D,.9):1,O=Math.round(Ki(N.x-A/2,{min:bm,max:c-A-bm})),B=Math.round(Ki(N.y-(R?0:60),{min:bm,max:u-D-bm})),L=Ki((N.x-O)/A,{min:.1,max:.9}),Y=Ki((N.y-B)/D,{min:.1,max:.9}),M=KZ(A),q=KZ(D);D2(()=>{M.set(A),q.set(D)},[A,D]);const I=E.useCallback((Q,z)=>{M.set(Math.max(M.get()+z.delta.x,320)),q.set(Math.max(q.get()+z.delta.y,300))},[]),U=E.useRef(null),V=Xh(a),G=V3(()=>{V.current()},[],50),F=b?.$node.notation??null,J=q3({element:{id:o,title:x.title,icon:b?.icon??x.icon},className:dYe});return W3(()=>{U.current?.open||U.current?.showModal()},20),W3(()=>{l(!0)},220),y.jsx(cl.dialog,{ref:U,className:Je(lYe,S0.classNames.fullWidth),layout:!0,initial:{[T2]:"0px",[R2]:"5%"},animate:{[T2]:"3px",[R2]:"60%"},exit:{[T2]:"0px",[R2]:"0%",transition:{duration:.1}},onClick:Q=>{Q.stopPropagation(),Q.target?.nodeName?.toUpperCase()==="DIALOG"&&U.current?.close()},onDoubleClick:cn,onPointerDown:cn,onClose:Q=>{Q.stopPropagation(),G()},children:y.jsx(S0,{forwardProps:!0,removeScrollBar:!1,children:y.jsxs(cl.div,{layout:!0,layoutRoot:!0,drag:!0,dragControls:T,dragElastic:0,dragMomentum:!1,dragListener:!1,"data-likec4-color":b?.color??x.color,className:sYe,initial:{top:B,left:O,width:A,height:D,opacity:0,originX:L,originY:Y,scale:Math.max(P,.65)},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.9,translateY:-10,transition:{duration:.1}},style:{width:M,height:q},children:[y.jsxs("div",{className:cYe,onPointerDown:Q=>T.start(Q),children:[y.jsxs(xn,{alignItems:"start",justify:"space-between",gap:"sm",mb:"sm",flexWrap:"nowrap",children:[y.jsxs(xn,{alignItems:"start",gap:"sm",style:{cursor:"default"},flexWrap:"nowrap",children:[J,y.jsxs("div",{children:[y.jsx(wt,{component:"div",className:uYe,children:x.title}),F&&y.jsx(wt,{component:"div",c:"dimmed",fz:"sm",fw:500,lh:1.3,lineClamp:1,children:F})]})]}),y.jsx(Kd,{size:"lg",onClick:Q=>{Q.stopPropagation(),G()}})]}),y.jsxs(xn,{alignItems:"baseline",gap:"sm",flexWrap:"nowrap",children:[y.jsxs("div",{children:[y.jsx(cee,{children:"kind"}),y.jsx(Xs,{radius:"sm",size:"sm",fw:600,color:"gray",style:{cursor:"pointer"},onClick:Q=>{Q.stopPropagation(),f.openSearch(`kind:${x.kind}`)},children:x.kind})]}),y.jsxs("div",{style:{flex:1},children:[y.jsx(cee,{children:"tags"}),y.jsxs(Of,{gap:4,flex:1,mt:6,wrap:"wrap",children:[x.tags.map(Q=>y.jsx(C2,{tag:Q,cursor:"pointer",onClick:z=>{z.stopPropagation(),f.openSearch(`#${Q}`)}},Q)),x.tags.length===0&&y.jsx(Xs,{radius:"sm",size:"sm",fw:600,color:"gray",children:""})]})]}),y.jsxs(Tw,{style:{alignSelf:"flex-start"},children:[_&&y.jsx(or,{component:"a",href:_.url,target:"_blank",size:"lg",variant:"default",radius:"sm",children:y.jsx(aee,{stroke:1.6,style:{width:"65%"}})}),y.jsx(HWe,{feature:"Vscode",children:y.jsx(see,{label:"Open source",children:y.jsx(or,{size:"lg",variant:"default",radius:"sm",onClick:Q=>{Q.stopPropagation
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const lKe=[["path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]],QT=yt("outline","search","Search",lKe);function Cee(e){return e.match(/^(k|ki|kin|kind|kind:)$/)!=null}const sKe=["#","kind:"],cKe=E.memo(()=>{const e=Su(),r=Ho(),n=E.useRef(null),{ref:o,focused:a}=D$e(),[i,l]=NXe(),s=tW({scrollBehavior:"smooth",loop:!1});xf("keydown",d=>{try{!a&&(d.key==="Backspace"||d.key.startsWith("Arrow")||d.key.match(new RegExp("^\\p{L}$","u")))&&My(n.current)}catch(p){console.warn(p)}});let c=[],u=!1;switch(!0){case i.startsWith("#"):{const d=i.toLocaleLowerCase().slice(1),p=r.tags.filter(f=>f.toLocaleLowerCase().includes(d));p.length===0?(u=!1,c=[y.jsx(L0,{children:"No tags found"},"empty-tags")]):(u=r.tags.some(f=>f.toLocaleLowerCase()===d),c=p.map(f=>y.jsxs(z0,{value:`#${f}`,children:[y.jsx(wt,{component:"span",opacity:.5,mr:1,fz:"sm",children:"#"}),f]},f)));break}case i.startsWith("kind:"):case Cee(i):{const d=i.length>5?i.slice(5).toLocaleLowerCase():"";let p=V8(r.specification.elements);d&&(p=p.filter(f=>f.toLocaleLowerCase().includes(d))),p.length===0?(u=!1,c=[y.jsx(L0,{children:"No kinds found"},"empty-kinds")]):(u=p.some(f=>f.toLocaleLowerCase()===d),c=p.map(f=>y.jsxs(z0,{value:`kind:${f}`,children:[y.jsx(wt,{component:"span",opacity:.5,mr:1,fz:"sm",children:"kind:"}),f]},f)));break}}return y.jsxs(Kn,{onOptionSubmit:d=>{l(d),s.resetSelectedOption(),sKe.includes(d)||(s.closeDropdown(),setTimeout(()=>{X2(n.current)},350))},width:"max-content",position:"bottom-start",shadow:"md",offset:{mainAxis:4,crossAxis:50},store:s,withinPortal:!1,children:[y.jsx(c7,{children:y.jsx(Na,{ref:Nr(n,o),placeholder:"Search by title, description or start with # or kind:",autoFocus:!0,"data-autofocus":!0,"data-likec4-search-input":!0,tabIndex:0,classNames:{input:rKe},size:"lg",value:i,leftSection:y.jsx(QT,{style:{width:Ae(20)},stroke:2}),rightSection:y.jsx(Na.ClearButton,{onClick:d=>{d.stopPropagation();const p=e.getSnapshot().context.openedWithSearch;i===""||i===p?e.send({type:"close"}):l("")}}),rightSectionPointerEvents:"auto",onChange:d=>{l(d.currentTarget.value),s.openDropdown(),s.updateSelectedOptionIndex()},onClick:()=>s.openDropdown(),onFocus:()=>s.openDropdown(),onBlur:()=>s.closeDropdown(),onKeyDownCapture:d=>{if(d.key==="Tab"){switch(!0){case s.getSelectedOptionIndex()>=0:return s.clickSelectedOption(),bi(d);case c.length===1:return s.selectFirstOption()&&s.clickSelectedOption(),bi(d);case Cee(i):return l("kind:"),bi(d)}return}if(d.key==="Backspace"&&s.dropdownOpened){if(i==="kind:")return l(""),s.resetSelectedOption(),bi(d);if(i.startsWith("kind:")&&u)return l("kind:"),s.resetSelectedOption(),bi(d);if(i.startsWith("#")&&u)return l("#"),s.resetSelectedOption(),bi(d)}if(d.key==="Escape"&&s.dropdownOpened&&c.length>0){bi(d),s.closeDropdown();return}if(d.key==="ArrowUp"&&s.dropdownOpened&&i===""&&s.getSelectedOptionIndex()===0){s.closeDropdown(),bi(d);return}if(d.key==="ArrowDown"&&(!s.dropdownOpened||c.length===0||u||i===""&&s.getSelectedOptionIndex()===c.length-1)){s.closeDropdown(),bi(d),X2(n.current);return}}})}),y.jsx(Ow,{hidden:c.length===0,style:{minWidth:300},children:y.jsx(Mw,{children:y.jsx(ta,{mah:"min(322px, calc(100cqh - 50px))",type:"scroll",children:c})})})]})}),uKe=ye({backgroundColor:"[rgb(34 34 34 / var(--_opacity, 95%))]",_light:{backgroundColor:"[rgb(250 250 250 / var(--_opacity, 95%))]"},backdropFilter:"auto",backdropBlur:"var(--_blur, 10px)"}),dKe=ye({width:"100%",height:"100%",maxHeight:"100vh",overflow:"hidden",display:"flex",flexDirection:"column",justifyContent:"stretch",gap:"sm",paddingTop:"[20px]",paddingLeft:"md",paddingRight:"md",paddingBottom:"sm",background:"[transparent]"}),pKe=e=>!e.matches("inactive");function hKe({searchActorRef:e}){const r=wn(e,pKe),n=()=>{e.send({type:"open"})},o=it(()=>{e.send({type:"close"})});return R$e([["mod+k",n,{preventDefault:!0}],["mod+f",n,{preventDefault:!0}]]),y.jsx(RXe,{value:e,children:y.jsx(hp.Overlays,{children:y.jsx(j7,{FallbackComponent:B7,onReset:o,children:y.jsx($a,{children:r&&y.jsx(Oy,{fullscreen:!0,withBa
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const $Ke=[["path",{d:"M5 12l14 0",key:"svg-0"}],["path",{d:"M5 12l6 6",key:"svg-1"}],["path",{d:"M5 12l6 -6",key:"svg-2"}]],PKe=yt("outline","arrow-left","ArrowLeft",$Ke),OKe=()=>{const e=Wt(),{hasStepBack:r,hasStepForward:n}=Da(o=>({hasStepBack:o.navigationHistory.currentIndex>0,hasStepForward:o.navigationHistory.currentIndex<o.navigationHistory.history.length-1}));return y.jsxs(Qr,{layout:"position",className:Uo({gap:"0.5"}),children:[y.jsx(gp,{disabled:!r,onClick:o=>{o.stopPropagation(),e.navigate("back")},children:y.jsx(PKe,{size:14})}),y.jsx(gp,{disabled:!n,onClick:o=>{o.stopPropagation(),e.navigate("forward")},children:y.jsx(ym,{size:14})})]})};/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const MKe=[["path",{d:"M9 15l6 -6",key:"svg-0"}],["path",{d:"M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464",key:"svg-1"}],["path",{d:"M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463",key:"svg-2"}]],IKe=yt("outline","link","Link",MKe),LKe=({context:e})=>{const r=e.viewModel;return{id:r.id,title:r.titleOrUntitled,description:r.description,tags:r.tags,links:r.links}},zKe=e=>{const[r,n]=E.useState(!1),o=$ee(LKe),a=wm();return y.jsxs(mr,{position:"bottom-end",shadow:"xl",clickOutsideEvents:["pointerdown","mousedown","click"],offset:{mainAxis:4},opened:r,onChange:n,...a,...e,children:[y.jsx(jKe,{linksCount:o.links.length,onOpen:()=>n(!0)}),r&&y.jsx(BKe,{data:o,onClose:()=>n(!1)})]})},jKe=({linksCount:e,onOpen:r})=>y.jsx(mr.Target,{children:y.jsxs($r,{component:fl,layout:"position",whileTap:{scale:.95,translateY:1},onClick:n=>{n.stopPropagation(),r()},className:Je("group",Uo({gap:"2",paddingInline:"2",paddingBlock:"1",rounded:"sm",userSelect:"none",cursor:"pointer",color:{base:"likec4.panel.action-icon.text",_hover:"likec4.panel.action-icon.text.hover"},backgroundColor:{_hover:"likec4.panel.action-icon.bg.hover"},display:{base:"none","@/xs":"flex"}}),""),children:[y.jsx(BT,{size:16,stroke:1.8}),e>0&&y.jsxs(xn,{gap:"[1px]",children:[y.jsx(IKe,{size:14,stroke:2}),y.jsx(qr,{css:{fontSize:"11px",fontWeight:600,lineHeight:1,opacity:.8},children:e})]})]})}),Mee=Qs("div",{base:{fontSize:"xs",color:"mantine.colors.dimmed",fontWeight:500,userSelect:"none",mb:"xxs"}}),BKe=({data:{id:e,title:r,description:n,tags:o,links:a},onClose:i})=>{const l=Wt();return il("paneClick",i),il("nodeClick",i),y.jsxs(mr.Dropdown,{className:Je("nowheel nopan nodrag",G0({margin:"xs",layerStyle:"likec4.dropdown",gap:"md",padding:"md",paddingBottom:"lg",pointerEvents:"all",maxWidth:"calc(100cqw - 52px)",minWidth:"200px",maxHeight:"calc(100cqh - 100px)",width:"max-content",cursor:"default",overflow:"auto",overscrollBehavior:"contain","@/sm":{minWidth:400,maxWidth:550},"@/lg":{maxWidth:700}})),children:[y.jsxs("section",{children:[y.jsx(wt,{component:"div",fw:500,size:"xl",lh:"sm",children:r}),y.jsxs(xn,{alignItems:"flex-start",mt:"1",children:[y.jsx(FKe,{label:"id",value:e}),y.jsx(xn,{gap:"xs",flexWrap:"wrap",children:o.map(s=>y.jsx(C2,{tag:s,cursor:"pointer",onClick:c=>{c.stopPropagation(),l.openSearch(`#${s}`)}},s))})]})]}),a.length>0&&y.jsxs("section",{className:Uo({alignItems:"baseline"}),children:[y.jsx(Mee,{children:"Links"}),y.jsx(xn,{gap:"xs",flexWrap:"wrap",children:a.map((s,c)=>y.jsx(jC,{value:s},`${c}-${s.url}`))})]}),n.isEmpty&&y.jsx(wt,{component:"div",fw:500,size:"xs",c:"dimmed",style:{userSelect:"none"},children:"No description"}),n.nonEmpty&&y.jsxs("section",{children:[y.jsx(Mee,{children:"Description"}),y.jsx(mp,{value:n,fontSize:"sm",emptyText:"No description",className:ye({userSelect:"all"})})]})]})},FKe=({label:e,value:r})=>y.jsxs(xn,{gap:"0.5",children:[y.jsx(HKe,{children:e}),y.jsx(Xs,{size:"sm",radius:"sm",variant:"light",color:"gray",tt:"none",fw:500,classNames:{root:ye({width:"max-content",overflow:"visible",px:"1",color:{_dark:"mantine.colors.gray[4]",_light:"mantine.colors.gray[8]"}}),label:ye({overflow:"visible"}),section:ye({opacity:.5,userSelect:"none",marginInlineEnd:"0.5"})},children:r})]}),HKe=Qs("div",{base:{color:"mantine.colors.dimmed",fontWeight:500,fontSize:"xxs",userSelect:"none"}}),UKe=()=>{const e=F2(),{enableVscode:r}=wr(),{onOpenSource:n}=lc();return r?y.jsx(Pee,{label:"Open View Source",children:y.jsx(gp,{onClick:o=>{o.stopPropagation(),n?.({view:e})},children:y.jsx(fm,{style:{width:"60%",height:"60%"}})})}):null};/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const qKe=[["path",{d:"M5 13a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-6z",key:"svg-0"}],["path",{d:"M11 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-1"}],["path",{d:"M8 11v-4a4 4 0 1 1 8 0v4",key:"svg-2"}]],VKe=yt("outline","lock","Lock",qKe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const YKe=[["path",{d:"M3 13a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M9 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-1"}],["path",{d:"M13 11v-4a4 4 0 1 1 8 0v4",key:"svg-2"}]],WKe=yt("outline","lock-open-2","LockOpen2",YKe),GKe=e=>({visible:e.features.enableReadOnly!==!0,isReadOnly:e.toggledFeatures.enableReadOnly??e.features.enableReadOnly}),XKe=()=>{const{visible:e,isReadOnly:r}=Da(GKe),n=Wt();return e?y.jsxs($r,{component:fl,layout:"position",onClick:o=>{o.stopPropagation(),n.toggleFeature("ReadOnly")},whileTap:{translateY:1},className:Je("group",Uo({gap:"0.5",paddingInline:"xxs",paddingBlock:"xxs",rounded:"sm",userSelect:"none",cursor:"pointer",color:{base:"likec4.panel.action-icon.text",_hover:"likec4.panel.action-icon.text.hover"},backgroundColor:{_hover:"likec4.panel.action-icon.bg.hover"}})),children:[r?y.jsx(VKe,{size:14,stroke:2}):y.jsx(WKe,{size:14,stroke:2}),r&&y.jsx(Qr,{className:ye({fontSize:"11px",fontWeight:600,lineHeight:1,opacity:.8}),children:"Unlock"})]}):null};/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const KKe=[["path",{d:"M6 4v16a1 1 0 0 0 1.524 .852l13 -8a1 1 0 0 0 0 -1.704l-13 -8a1 1 0 0 0 -1.524 .852z",key:"svg-0"}]],ZKe=yt("filled","player-play-filled","PlayerPlayFilled",KKe),Iee=E.forwardRef((e,r)=>y.jsx(Zn,{variant:"filled",size:"xs",fw:"500",...e,ref:r,component:fl,layoutId:"trigger-dynamic-walkthrough",className:ye({flexShrink:0})}));function QKe(){const e=Wt(),r=Iy();return y.jsx(Pee,{label:"Start Dynamic View Walkthrough",children:y.jsx(Iee,{onClick:n=>{n.stopPropagation(),r.closeDropdown(),e.startWalkthrough()},size:"compact-xs",h:26,classNames:{label:ye({display:{base:"none","@/md":"[inherit]"}}),section:ye({marginInlineStart:{base:"0","@/md":"2"}})},rightSection:y.jsx(ZKe,{size:10}),children:"Start"})})}function JKe({value:e,onChange:r}){return y.jsx(Qr,{layout:"position",children:y.jsx(U0,{size:"xs",value:e,component:Qr,onChange:n=>{nt(n==="diagram"||n==="sequence","Invalid dynamic view variant"),r(n)},classNames:{label:ye({fontSize:"xxs"})},data:[{value:"diagram",label:"Diagram"},{value:"sequence",label:"Sequence"}]})})}function eZe(){const e=Da(n=>n.dynamicViewVariant),r=Wt();return y.jsxs(y.Fragment,{children:[y.jsx(JKe,{value:e,onChange:n=>{r.switchDynamicViewVariant(n)}},"dynamic-view-mode-switcher"),y.jsx(QKe,{},"trigger-dynamic-walkthrough")]})}function tZe(){const e=Wt(),r=of();return y.jsxs($r,{component:fl,layout:"position",onClick:n=>{n.stopPropagation(),e.openSearch()},whileTap:{scale:.95,translateY:1},className:Je("group",Uo({gap:"xxs",paddingInline:"sm",paddingBlock:"xxs",rounded:"sm",userSelect:"none",cursor:"pointer",color:{base:"likec4.panel.action-icon.text",_hover:"likec4.panel.action-icon.text.hover"},backgroundColor:{base:"likec4.panel.action-icon.bg",_hover:"likec4.panel.action-icon.bg.hover"},display:{base:"none","@/md":"flex"}})),children:[y.jsx(QT,{size:14,stroke:2.5}),y.jsx(qr,{css:{fontSize:"11px",fontWeight:600,lineHeight:1,opacity:.8,whiteSpace:"nowrap"},children:r?" + K":"Ctrl + K"})]})}const rZe=({context:e})=>{const r=e.viewModel.folder;return{folders:r.isRoot?[]:r.breadcrumbs.map(n=>({folderPath:n.path,title:n.title})),viewId:e.viewModel.id,viewTitle:e.viewModel.titleOrUntitled,isDynamicView:e.viewModel.isDynamicView()}},nZe=()=>{const e=Iy(),{enableSearch:r,enableNavigationButtons:n,enableDynamicViewWalkthrough:o}=wr(),{folders:a,viewTitle:i,isDynamicView:l}=wn(e.actorRef,rZe,ut),s=a.flatMap(({folderPath:u,title:d},p)=>[y.jsx($r,{component:fl,className:Je(Q2({dimmed:!0,truncate:!0}),"mantine-active",ye({userSelect:"none",maxWidth:"200px",display:{base:"none","@/md":"block"}})),title:d,onMouseEnter:()=>e.send({type:"breadcrumbs.mouseEnter.folder",folderPath:u}),onMouseLeave:()=>e.send({type:"breadcrumbs.mouseLeave.folder",folderPath:u}),onClick:f=>{f.stopPropagation(),e.send({type:"breadcrumbs.click.folder",folderPath:u})},children:d},u),y.jsx(Oee,{},`separator-${p}`)]),c=y.jsx($r,{component:fl,className:Je("mantine-active",Q2({truncate:!0}),ye({userSelect:"none"})),title:i,onMouseEnter:()=>e.send({type:"breadcrumbs.mouseEnter.viewtitle"}),onMouseLeave:()=>e.send({type:"breadcrumbs.mouseLeave.viewtitle"}),onClick:u=>{u.stopPropagation(),e.send({type:"breadcrumbs.click.viewtitle"})},children:i},"view-title");return y.jsxs($a,{propagate:!0,children:[y.jsx(DKe,{},"burger-button"),n&&y.jsx(OKe,{},"nav-buttons"),y.jsxs(Qr,{layout:"position",className:Uo({gap:"1",flexShrink:1,flexGrow:1,overflow:"hidden"}),children:[s,c]},"breadcrumbs"),y.jsxs(Qr,{layout:"position",className:Uo({gap:"0.5",flexGrow:0,_empty:{display:"none"}}),children:[y.jsx(zKe,{onOpen:()=>e.closeDropdown()}),y.jsx(UKe,{}),y.jsx(XKe,{})]},"actions"),o&&l&&y.jsx(eZe,{},"dynamic-view-controls"),r&&y.jsx(tZe,{},"search-control")]})},nR=E.forwardRef(({className:e,truncateLabel:r=!0,...n},o)=>y.jsx(S7,{...n,component:"button",classNames:FVe({truncateLabel:r}),className:Je("group","mantine-active",e),ref:o}));nR.displayName="NavigationLink";const oZe=E.createContext(null),aZe=[],iZe=()=>{},lZe={projects:aZe,onProjectChange:iZe};function sZe(){return E.useContext(oZe)??lZe}function cZe(){const e=E.useContext(
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const uZe=[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]],dZe=yt("outline","chevron-down","ChevronDown",uZe);function pZe(e){const{projects:r,onProjectChange:n}=sZe(),o=cZe();return r.length<=1?null:y.jsxs(xn,{gap:"0.5",alignItems:"baseline",children:[y.jsx(qr,{css:{fontWeight:"400",fontSize:"xxs",color:"mantine.colors.dimmed",userSelect:"none"},children:"Project"}),y.jsxs(ho,{withinPortal:!1,shadow:"md",position:"bottom-start",offset:{mainAxis:2},children:[y.jsx(Fw,{children:y.jsx(Zn,{tabIndex:-1,autoFocus:!1,variant:"subtle",size:"compact-xs",color:"gray",classNames:{root:ye({fontWeight:"400",fontSize:"xxs",height:"auto",lineHeight:1.1,color:{_light:"mantine.colors.gray[9]"}}),section:ye({'&:is([data-position="right"])':{marginInlineStart:"1"}})},rightSection:y.jsx(dZe,{opacity:.5,size:12,stroke:1.5}),...e,children:o})}),y.jsx(F0,{children:r.map(({id:a,title:i})=>y.jsx(H0,{onClick:l=>{if(o===a){l.stopPropagation();return}n(a)},children:i??a},a))})]})]})}/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const hZe=[["path",{d:"M10.52 2.614a2.095 2.095 0 0 1 2.835 -.117l.126 .117l7.905 7.905c.777 .777 .816 2.013 .117 2.836l-.117 .126l-7.905 7.905a2.094 2.094 0 0 1 -2.836 .117l-.126 -.117l-7.907 -7.906a2.096 2.096 0 0 1 -.115 -2.835l.117 -.126l7.905 -7.905zm5.969 9.535l.01 -.116l-.003 -.12l-.016 -.114l-.03 -.11l-.044 -.112l-.052 -.098l-.076 -.105l-.07 -.081l-3.5 -3.5l-.095 -.083a1 1 0 0 0 -1.226 0l-.094 .083l-.083 .094a1 1 0 0 0 0 1.226l.083 .094l1.792 1.793h-5.085l-.117 .007a1 1 0 0 0 0 1.986l.117 .007h5.085l-1.792 1.793l-.083 .094a1 1 0 0 0 1.403 1.403l.094 -.083l3.5 -3.5l.097 -.112l.05 -.074l.037 -.067l.05 -.112l.023 -.076l.025 -.117z",key:"svg-0"}]],fZe=yt("filled","direction-sign-filled","DirectionSignFilled",hZe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const mZe=[["path",{d:"M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z",key:"svg-0"}]],gZe=yt("filled","star-filled","StarFilled",mZe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const yZe=[["path",{d:"M9 3a1 1 0 0 1 .608 .206l.1 .087l2.706 2.707h6.586a3 3 0 0 1 2.995 2.824l.005 .176v8a3 3 0 0 1 -2.824 2.995l-.176 .005h-14a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-11a3 3 0 0 1 2.824 -2.995l.176 -.005h4z",key:"svg-0"}]],bZe=yt("filled","folder-filled","FolderFilled",yZe),Lee=T0({siblingSelector:"[data-likec4-focusable]",parentSelector:"[data-likec4-breadcrumbs-dropdown]",activateOnFocus:!1,loop:!0,orientation:"vertical"});function vZe(){const e=Iy(),r=wn(e.actorRef,a=>a.context.searchQuery);il("paneClick",()=>{e.closeDropdown()}),il("nodeClick",()=>{e.closeDropdown()});const n=O$e(a=>{e.send({type:"searchQuery.change",value:a})},250),o=r.trim().length>=2;return y.jsxs(Gs,{className:Je("nowheel",G0({layerStyle:"likec4.dropdown",gap:"xs",pointerEvents:"all"})),"data-likec4-breadcrumbs-dropdown":!0,onMouseLeave:()=>e.send({type:"dropdown.mouseLeave"}),onMouseEnter:()=>e.send({type:"dropdown.mouseEnter"}),children:[y.jsx(pZe,{}),y.jsx(xn,{gap:"xs",children:y.jsx(NZe,{value:r,onChange:n,"data-likec4-focusable":!0,onKeyDown:Lee})}),y.jsx(ta,{scrollbars:"x",type:"auto",offsetScrollbars:"present",classNames:{root:ye({maxWidth:["calc(100vw - 50px)","calc(100cqw - 50px)"]})},styles:{viewport:{overscrollBehavior:"none"}},children:o?y.jsx(wZe,{searchQuery:F3(r).toLowerCase()}):y.jsx(TZe,{})})]})}const xZe=NI(ka);function wZe({searchQuery:e}){const r=Ho(),n=Iy(),o=e.includes(ka),a=yn(r.views(),Nd(l=>o&&l.$view.title?F3(l.$view.title).toLowerCase().includes(e):l.id.toLowerCase().includes(e)||!!l.title?.toLowerCase().includes(e)),z6e(20),K1(),rDe((l,s)=>xZe(l.folder.path,s.folder.path)));if(a.length===0)return y.jsx("div",{children:"no results"});const i=o?e.split(ka):e;return y.jsx(ta,{scrollbars:"xy",offsetScrollbars:!1,className:ye({width:"100%",maxWidth:["calc(100vw - 250px)","calc(100cqw - 250px)"],maxHeight:["calc(100vh - 200px)","calc(100cqh - 200px)"]}),children:y.jsx(Ff,{gap:"0.5",children:a.map(l=>y.jsx(_Ze,{view:l,highlight:i,onClick:s=>{s.stopPropagation(),n.selectView(l.id)},"data-likec4-focusable":!0,onKeyDown:Lee},l.id))})})}const kZe=Uo({gap:"xxs",rounded:"sm",px:"xs",py:"xxs",_hover:{backgroundColor:{base:"mantine.colors.gray[1]",_dark:"mantine.colors.dark[5]"}},_focus:{outline:"none",color:"mantine.colors.primary.lightColor!",backgroundColor:"mantine.colors.primary.lightHover!"}}),zee=ye({_groupFocus:{color:"[inherit!]",transition:"none"}});function _Ze({view:e,highlight:r,...n}){const o=e.folder,a=Bee[e.id==="index"?"index":e._type],i=y.jsx(Ks,{component:"div",className:Je(zee,Q2({truncate:!0}),ye({"& > mark":{backgroundColor:{base:"mantine.colors.yellow[2]/90",_dark:"mantine.colors.yellow[5]/80",_groupFocus:"[transparent]"},color:{_groupFocus:"[inherit!]"}}})),maw:350,highlight:r,children:e.title??e.id},e.id),l=Je(n.className,"group",kZe);if(o.isRoot)return y.jsxs($r,{...n,className:l,children:[a,i]});const s=o.breadcrumbs.map(c=>y.jsx(Ks,{component:"div",className:Je(ye({_groupHover:{color:"mantine.colors.dimmed"}}),zee,Q2({dimmed:!0,truncate:!0})),maw:170,highlight:F8(r)?r:[],children:c.title},c.path));return s.push(y.jsxs(xn,{gap:"[4px]",children:[a,i]})),y.jsxs($r,{...n,className:l,children:[jee,y.jsx(Iw,{separator:y.jsx(pp,{size:12,stroke:1.5}),separatorMargin:3,children:s})]})}const EZe=y.jsx(pp,{size:12,stroke:1.5,className:"mantine-rotate-rtl"}),jee=y.jsx(bZe,{size:16,className:ye({opacity:{base:.3,_groupHover:.5,_groupActive:.5,_groupFocus:.5}})}),J2=ye({opacity:{base:.3,_dark:.5,_groupHover:.8,_groupActive:.8,_groupFocus:.8}}),Bee={index:y.jsx(gZe,{size:16,className:J2}),element:y.jsx(gi,{size:18,stroke:2,className:J2}),deployment:y.jsx(UT,{size:16,stroke:1.5,className:J2}),dynamic:y.jsx(fZe,{size:18,className:J2})},SZe=ta.withProps({scrollbars:"y",className:ye({maxHeight:["calc(100vh - 160px)","calc(100cqh - 160px)"]})});function Fee(e,r){return{folderPath:e.path,items:[...e.folders.map(n=>({type:"folder",folderPath:n.path,title:n.title,selected:r.selectedFolder.startsWith(n.path)})),...e.views.map(n=>({type:"view",viewType:n.id==="index"?"index":n._type,viewId:n.id,title:n.title??n
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const OZe=[["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M4 8v-2a2 2 0 0 1 2 -2h2",key:"svg-1"}],["path",{d:"M4 16v2a2 2 0 0 0 2 2h2",key:"svg-2"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v2",key:"svg-3"}],["path",{d:"M16 20h2a2 2 0 0 0 2 -2v-2",key:"svg-4"}]],MZe=yt("outline","focus-centered","FocusCentered",OZe),IZe=()=>{const e=Wt();return y.jsx(e4,{label:"Center camera",children:y.jsx(gp,{onClick:()=>e.fitDiagram(),children:y.jsx(MZe,{})})})};ye({gap:"xxs",_empty:{display:"none"}}),ye({top:"md",left:"md",margin:"0",pointerEvents:"none","& :where(button, .action-icon, [role='dialog'])":{pointerEvents:"all"},"& .action-icon":{"--ai-size":"2rem"},"& .tabler-icon":{width:"65%",height:"65%"},_reduceGraphics:{"& .action-icon":{"--ai-radius":"0px"}}}),ye({shadow:{base:"md",_whenPanning:"none"}}),ye({"& .tabler-icon":{width:"65%",height:"65%"}});const t4=ye({flex:"1 1 40%",textAlign:"center",fontWeight:500,padding:"[4px 6px]",fontSize:"11px",zIndex:1}),LZe=ye({background:"mantine.colors.gray[2]",borderRadius:"sm",border:"1px solid",borderColor:"mantine.colors.gray[4]",_dark:{background:"mantine.colors.dark[5]",borderColor:"mantine.colors.dark[4]"}}),zZe=ye({position:"relative",borderRadius:"sm",background:"mantine.colors.gray[3]",boxShadow:"inset 1px 1px 3px 0px #00000024",_dark:{background:"mantine.colors.dark[7]"}}),jZe=ye({position:"absolute",width:8,height:8,border:"2px solid",borderColor:"mantine.colors.gray[5]",borderRadius:3,transform:"translate(-50%, -50%)"});/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const BZe=[["path",{d:"M5 4h4a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1v-6a1 1 0 0 1 1 -1",key:"svg-0"}],["path",{d:"M5 16h4a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1v-2a1 1 0 0 1 1 -1",key:"svg-1"}],["path",{d:"M15 12h4a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1v-6a1 1 0 0 1 1 -1",key:"svg-2"}],["path",{d:"M15 4h4a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1v-2a1 1 0 0 1 1 -1",key:"svg-3"}]],FZe=yt("outline","layout-dashboard","LayoutDashboard",BZe),HZe=e=>({viewId:e.view.id,autoLayout:e.view.autoLayout}),UZe=()=>{const{onChange:e}=lc(),r=Wt(),[n,o]=E.useState(null),[a,i]=E.useState({}),{autoLayout:l,viewId:s}=Da(HZe),{ref:c,hovered:u}=a9(),d=g=>b=>{a[g]=b,i(a)},p=g=>b=>{b.stopPropagation(),e?.({change:{op:"change-autolayout",layout:{...l,direction:g}}})},f=(g,b)=>{r.fitDiagram(),e?.({change:{op:"change-autolayout",layout:{...l,nodeSep:g,rankSep:b}}})};return y.jsxs(mr,{position:"right-start",clickOutsideEvents:["pointerdown"],radius:"xs",shadow:"lg",offset:{mainAxis:10},children:[y.jsx(fu,{children:y.jsx(e4,{label:"Change Auto Layout",children:y.jsx(gp,{children:y.jsx(FZe,{})})})}),y.jsx(Gs,{className:"likec4-top-left-panel",p:8,pt:6,opacity:u?.6:1,children:y.jsxs(Se,{pos:"relative",ref:o,children:[y.jsx($w,{target:a[l.direction],parent:n,className:LZe}),y.jsx(Se,{mb:10,children:y.jsx(wt,{inline:!0,fz:"xs",c:"dimmed",fw:500,children:"Auto layout:"})}),y.jsxs(Of,{gap:2,wrap:"wrap",justify:"stretch",maw:160,children:[y.jsx($r,{className:t4,ref:d("TB"),onClick:p("TB"),children:"Top-Bottom"}),y.jsx($r,{className:t4,ref:d("BT"),onClick:p("BT"),children:"Bottom-Top"}),y.jsx($r,{className:t4,ref:d("LR"),onClick:p("LR"),children:"Left-Right"}),y.jsx($r,{className:t4,ref:d("RL"),onClick:p("RL"),children:"Right-Left"})]}),y.jsx(Se,{my:10,children:y.jsx(wt,{inline:!0,fz:"xs",c:"dimmed",fw:500,children:"Spacing:"})}),y.jsx(qZe,{ref:c,isVertical:l.direction==="TB"||l.direction==="BT",nodeSep:l.nodeSep,rankSep:l.rankSep,onChange:f},s)]})})]})},km=400,qZe=E.forwardRef(({isVertical:e,nodeSep:r,rankSep:n,onChange:o},a)=>{e||([r,n]=[n,r]);const i=V3(({x:f,y:g})=>{e||([f,g]=[g,f]),o(Math.round(f*km),Math.round(g*km))},[o,e],250,2e3),[l,s]=qs({defaultValue:v$e({x:(r??100)/km,y:(n??120)/km}),onChange:i}),{ref:c}=Bq(s);let u=Math.round(l.x*km),d=Math.round(l.y*km);e||([u,d]=[d,u]);const p=Nr(c,a);return y.jsxs(Se,{ref:p,className:zZe,pt:"100%",children:[y.jsx(Se,{className:jZe,style:{left:`${l.x*100}%`,top:`${l.y*100}%`}}),y.jsx(Se,{pos:"absolute",left:2,bottom:2,children:y.jsxs(wt,{component:"div",fz:8,c:"dimmed",fw:500,children:[d,", ",u]})})]})});/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const VZe=[["path",{d:"M12 9v4",key:"svg-0"}],["path",{d:"M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0z",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]],Hee=yt("outline","alert-triangle","AlertTriangle",VZe),YZe=()=>{const e=wm();return Da(r=>r.view.hasLayoutDrift??!1)?y.jsxs(Lf,{position:"right-start",openDelay:200,closeDelay:100,...e,children:[y.jsx(v7,{children:y.jsx(or,{color:"orange",c:"orange",className:ye({bg:"mantine.colors.orange.light"}),children:y.jsx(Hee,{})})}),y.jsx(y7,{p:"0",children:y.jsxs(qw,{color:"orange",withBorder:!1,withCloseButton:!1,title:"Manual layout issues",children:[y.jsxs(wt,{mt:2,size:"sm",lh:"xs",children:["View contains new elements or their sizes have changed,",y.jsx("br",{}),"last manual layout can not be applied."]}),y.jsxs(wt,{mt:"xs",size:"sm",lh:"xs",children:["Update view predicates or remove ",y.jsx(jw,{children:"@likec4-generated"})]})]})})]}):null};/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const WZe=[["path",{d:"M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M10 4l4 16",key:"svg-1"}],["path",{d:"M12 12l-8 2",key:"svg-2"}]],GZe=yt("outline","layout-collage","LayoutCollage",WZe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const XZe=[["path",{d:"M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M4 12h8",key:"svg-1"}],["path",{d:"M12 15h8",key:"svg-2"}],["path",{d:"M12 9h8",key:"svg-3"}],["path",{d:"M12 4v16",key:"svg-4"}]],Uee=yt("outline","layout-board-split","LayoutBoardSplit",XZe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const KZe=[["path",{d:"M4 4l0 16",key:"svg-0"}],["path",{d:"M8 9m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z",key:"svg-1"}]],ZZe=yt("outline","layout-align-left","LayoutAlignLeft",KZe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const QZe=[["path",{d:"M12 4l0 5",key:"svg-0"}],["path",{d:"M12 15l0 5",key:"svg-1"}],["path",{d:"M6 9m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z",key:"svg-2"}]],JZe=yt("outline","layout-align-center","LayoutAlignCenter",QZe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const eQe=[["path",{d:"M20 4l0 16",key:"svg-0"}],["path",{d:"M4 9m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z",key:"svg-1"}]],tQe=yt("outline","layout-align-right","LayoutAlignRight",eQe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const rQe=[["path",{d:"M4 4l16 0",key:"svg-0"}],["path",{d:"M9 8m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z",key:"svg-1"}]],nQe=yt("outline","layout-align-top","LayoutAlignTop",rQe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const oQe=[["path",{d:"M4 12l5 0",key:"svg-0"}],["path",{d:"M15 12l5 0",key:"svg-1"}],["path",{d:"M9 6m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z",key:"svg-2"}]],aQe=yt("outline","layout-align-middle","LayoutAlignMiddle",oQe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const iQe=[["path",{d:"M4 20l16 0",key:"svg-0"}],["path",{d:"M9 4m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z",key:"svg-1"}]],lQe=yt("outline","layout-align-bottom","LayoutAlignBottom",iQe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const sQe=[["path",{d:"M6 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M18 5m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-1"}],["path",{d:"M12 19h4.5c.71 0 1.372 -.212 1.924 -.576m1.545 -2.459a3.5 3.5 0 0 0 -3.469 -3.965h-.499m-4 0h-3.501a3.5 3.5 0 0 1 -2.477 -5.972m2.477 -1.028h3.5",key:"svg-2"}],["path",{d:"M3 3l18 18",key:"svg-3"}]],cQe=yt("outline","route-off","RouteOff",sQe),sc=({label:e,icon:r,onClick:n})=>y.jsx(e4,{label:e,withinPortal:!1,position:"top",children:y.jsx(gp,{classNames:{root:"action-icon",icon:ye({"& > svg":{width:"70%",height:"70%"}})},onClick:n,children:r})}),uQe=e=>{const r=Wt(),n=wm();return y.jsxs(mr,{position:"right",offset:{mainAxis:12},clickOutsideEvents:["pointerdown"],...n,...e,children:[y.jsx(fu,{children:y.jsx(e4,{label:"Manual layouting tools",children:y.jsx(gp,{children:y.jsx(GZe,{})})})}),y.jsx(Gs,{className:Uo({gap:"0.5",layerStyle:"likec4.panel",padding:"1",pointerEvents:"all"}),children:y.jsxs(Qd,{children:[y.jsx(sc,{label:"Align in columns",icon:y.jsx(Uee,{}),onClick:o=>{o.stopPropagation(),r.align("Column")}}),y.jsx(sc,{label:"Align left",icon:y.jsx(ZZe,{}),onClick:o=>{o.stopPropagation(),r.align("Left")}}),y.jsx(sc,{label:"Align center",icon:y.jsx(JZe,{}),onClick:o=>{o.stopPropagation(),r.align("Center")}}),y.jsx(sc,{label:"Align right",icon:y.jsx(tQe,{}),onClick:o=>{o.stopPropagation(),r.align("Right")}}),y.jsx(sc,{label:"Align in rows",icon:y.jsx(Uee,{style:{transform:"rotate(90deg)"}}),onClick:o=>{o.stopPropagation(),r.align("Row")}}),y.jsx(sc,{label:"Align top",icon:y.jsx(nQe,{}),onClick:o=>{o.stopPropagation(),r.align("Top")}}),y.jsx(sc,{label:"Align middle",icon:y.jsx(aQe,{}),onClick:o=>{o.stopPropagation(),r.align("Middle")}}),y.jsx(sc,{label:"Align bottom",icon:y.jsx(lQe,{}),onClick:o=>{o.stopPropagation(),r.align("Bottom")}}),y.jsx(sc,{label:"Reset all control points",icon:y.jsx(cQe,{}),onClick:o=>{o.stopPropagation(),r.resetEdgeControlPoints()}})]})})]})};function dQe(){const{enableReadOnly:e}=wr();return y.jsx($a,{children:!e&&y.jsx(Qr,{layout:"position",className:G0({gap:"xs",layerStyle:"likec4.panel",position:"relative",cursor:"pointer",padding:"xxs",pointerEvents:"all"}),initial:{opacity:0,translateX:-20},animate:{opacity:1,translateX:0},exit:{opacity:0,translateX:-20},children:y.jsxs(Qd,{openDelay:600,closeDelay:120,children:[y.jsx(UZe,{}),y.jsx(uQe,{}),y.jsx(YZe,{}),y.jsx(IZe,{})]})})})}/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const pQe=[["path",{d:"M17 4h-10a3 3 0 0 0 -3 3v10a3 3 0 0 0 3 3h10a3 3 0 0 0 3 -3v-10a3 3 0 0 0 -3 -3z",key:"svg-0"}]],hQe=yt("filled","player-stop-filled","PlayerStopFilled",pQe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const fQe=[["path",{d:"M19.496 4.136l-12 7a1 1 0 0 0 0 1.728l12 7a1 1 0 0 0 1.504 -.864v-14a1 1 0 0 0 -1.504 -.864z",key:"svg-0"}],["path",{d:"M4 4a1 1 0 0 1 .993 .883l.007 .117v14a1 1 0 0 1 -1.993 .117l-.007 -.117v-14a1 1 0 0 1 1 -1z",key:"svg-1"}]],mQe=yt("filled","player-skip-back-filled","PlayerSkipBackFilled",fQe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const gQe=[["path",{d:"M3 5v14a1 1 0 0 0 1.504 .864l12 -7a1 1 0 0 0 0 -1.728l-12 -7a1 1 0 0 0 -1.504 .864z",key:"svg-0"}],["path",{d:"M20 4a1 1 0 0 1 .993 .883l.007 .117v14a1 1 0 0 1 -1.993 .117l-.007 -.117v-14a1 1 0 0 1 1 -1z",key:"svg-1"}]],yQe=yt("filled","player-skip-forward-filled","PlayerSkipForwardFilled",gQe),qee=Zn.withProps({component:fl,variant:"light",size:"xs",fw:"500"}),bQe=()=>{const{portalProps:e}=wm();return y.jsx(M0,{...e,children:y.jsx(qr,{css:{position:"absolute",margin:"0",padding:"0",top:"0",left:"0",width:"100%",height:"100%",border:"2px solid",borderColor:"mantine.colors.orange[6]",pointerEvents:"none",md:{borderWidth:4}}})})};function vQe(){const e=Wt(),{isParallel:r,hasNext:n,hasPrevious:o,currentStep:a,totalSteps:i}=Da(l=>{const s=l.xyedges.findIndex(c=>c.id===l.activeWalkthrough?.stepId);return{isParallel:Sa(l.activeWalkthrough?.parallelPrefix),hasNext:s<l.xyedges.length-1,hasPrevious:s>0,currentStep:s+1,totalSteps:l.xyedges.length}});return y.jsxs($a,{propagate:!0,children:[y.jsx(Iee,{variant:"light",size:"xs",color:"orange",mr:"sm",onClick:l=>{l.stopPropagation(),e.stopWalkthrough()},rightSection:y.jsx(hQe,{size:10}),children:"Stop"},"stop-walkthrough"),y.jsx(qee,{disabled:!o,onClick:()=>e.walkthroughStep("previous"),leftSection:y.jsx(mQe,{size:10}),children:"Previous"},"prev"),y.jsx(Xs,{component:Qr,size:"md",radius:"sm",variant:r?"gradient":"transparent",gradient:{from:"red",to:"orange",deg:90},rightSection:y.jsx(Qr,{className:ye({fontSize:"xxs",display:r?"block":"none"}),children:"parallel"}),className:ye({alignItems:"baseline"}),children:y.jsxs(UWe,{children:[a," / ",i]})},"step-badge"),y.jsx(qee,{disabled:!n,onClick:()=>e.walkthroughStep("next"),rightSection:y.jsx(yQe,{size:10}),children:"Next"},"next"),r&&y.jsx(bQe,{},"parallel-frame")]})}const Vee=E.memo(()=>{const e=Jf(),r=AQ(),n=nS(CKe,{input:{viewModel:r}});return E.useEffect(()=>{const o=n.on("navigateTo",a=>{e.getSnapshot().context.view.id!==a.viewId&&e.send({type:"navigate.to",viewId:a.viewId})});return()=>o.unsubscribe()},[n,e]),UB(()=>{n.send({type:"update.inputs",inputs:{viewModel:r}})},[r]),y.jsx(Ff,{css:{alignItems:"flex-start",pointerEvents:"none",position:"absolute",top:"0",left:"0",margin:"0",width:"100%",gap:"xxs",maxWidth:["calc(100vw)","calc(100cqw)"],"@/sm":{margin:"xs",gap:"xs",width:"max-content",maxWidth:["calc(100vw - 2 * {spacing.md})","calc(100cqw - 2 * {spacing.md})"]}},children:y.jsxs(TKe,{value:n,children:[y.jsx(xQe,{actor:n}),y.jsx(dQe,{}),y.jsx(PZe,{})]})})});Vee.displayName="NavigationPanel";const xQe=({actor:e})=>{const r=wn(e,o=>o.hasTag("active")),n=wm();return y.jsxs(mr,{offset:{mainAxis:4},opened:r,position:"bottom-start",trapFocus:!0,...n,clickOutsideEvents:["pointerdown","mousedown","click"],onDismiss:()=>e.send({type:"dropdown.dismiss"}),children:[y.jsx(wQe,{actor:e}),r&&y.jsx(vZe,{})]})},wQe=({actor:e})=>{const r=Da(n=>n.activeWalkthrough!==null);return y.jsx(dm,{children:y.jsx(fu,{children:y.jsx(Qr,{layout:!0,className:Uo({layerStyle:"likec4.panel",position:"relative",gap:"xs",cursor:"pointer",paddingRight:"md",pointerEvents:"all",width:"100%"}),onMouseLeave:()=>e.send({type:"breadcrumbs.mouseLeave"}),children:y.jsx($a,{mode:"popLayout",children:r?y.jsx(vQe,{}):y.jsx(nZe,{})})})})})},oR=ye({position:"absolute",bottom:"0",right:"0",padding:"2",margin:"0",width:"min-content",height:"min-content"}),kQe=ye({"--ai-radius":"0px",_noReduceGraphics:{"--ai-radius":"{radii.md}"}}),_Qe=ye({cursor:"default",userSelect:"none",minWidth:200,maxWidth:"calc(100vw - 20px)",backgroundColor:"mantine.colors.body/80",sm:{minWidth:300,maxWidth:"65vw"},md:{maxWidth:"40vw"},_dark:{backgroundColor:"mantine.colors.dark[6]/80"}}),EQe=ye({padding:"xxs"}),SQe=ye({backgroundColor:"transparent",transition:"all 100ms ease-in",_hover:{transition:"all 120ms ease-out",backgroundColor:"mantine.colors.primary[2]/50"},_dark:{_hover:{backgroundColor:"mantine.colors.dark[3]/40"}}});ye({fill:"var(--likec4-palette-fill)",stroke:"var(--likec4-palette-stroke)",strokeWidth:1,overflow:"visible",width:"100%",height:"auto",filter:`
drop-shadow(0 2px 3px rgb(0 0 0 / 22%))
drop-shadow(0 1px 8px rgb(0 0 0 / 10%))
`});const CQe=ye({fontWeight:500,letterSpacing:"0.2px",paddingTop:"0",paddingBottom:"0",textTransform:"lowercase",transition:"all 150ms ease-in-out",cursor:"pointer","--badge-radius":"2px","--badge-fz":"9.5px","--badge-padding-x":"3px","--badge-height":"13.5px","--badge-lh":"1","--badge-bg":"var(--likec4-palette-fill)","--badge-color":"var(--likec4-palette-hiContrast)"});/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const TQe=[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 16v.01",key:"svg-1"}],["path",{d:"M12 13a2 2 0 0 0 .914 -3.782a1.98 1.98 0 0 0 -2.414 .483",key:"svg-2"}]],RQe=yt("outline","help-circle","HelpCircle",TQe);/**
* @license @tabler/icons-react v3.35.0 - MIT
*
* This source code is licensed under the MIT license.
* See the LICENSE file in the root directory of this source tree.
*/const AQe=[["path",{d:"M7 7l10 10",key:"svg-0"}],["path",{d:"M17 8l0 9l-9 0",key:"svg-1"}]],NQe=yt("outline","arrow-down-right","ArrowDownRight",AQe),DQe=({value:e})=>{const{title:r,color:n="primary",shape:o="rectangle"}=e,[a,i]=E.useState(null),l=Wt(),s=300,c=200;return y.jsx(zw,{shadow:"none",px:"xs",py:"sm",className:Je(SQe),"data-likec4-color":n,onMouseEnter:()=>{i(null),l.highlightNotation(e)},onMouseLeave:()=>{i(null),l.unhighlightNotation()},children:y.jsxs(Ur,{gap:"sm",align:"stretch",wrap:"nowrap",children:[y.jsx(Se,{flex:"0 0 70px",style:{position:"relative",width:70,height:lNe(70*(c/s),0)},children:y.jsx(gm,{data:{shape:o,width:s,height:c}})}),y.jsxs(ra,{gap:4,flex:1,children:[y.jsx(Ur,{gap:4,flex:"0 0 auto",children:e.kinds.map(u=>y.jsx(Xs,{className:Je(CQe),onMouseEnter:()=>{i(u),l.highlightNotation(e,u)},onMouseLeave:()=>{i(null),l.highlightNotation(e)},opacity:tq(a)&&a!==u?.25:1,children:u},u))}),y.jsx(wt,{component:"div",fz:"sm",fw:500,lh:"1.25",style:{textWrap:"pretty"},children:r})]})]})})},$Qe=e=>({id:e.view.id,notations:e.view.notation?.nodes??[],isVisible:!0}),PQe=E.memo(()=>{const e=MC(c=>c.height),{id:r,notations:n,isVisible:o}=Da($Qe),[a,i]=y$e({key:"notation-webview-collapsed",defaultValue:!0}),l=n.length>0,s=wm();return y.jsxs($a,{children:[!l&&o&&y.jsx(cl.div,{initial:{opacity:.75,translateX:"50%"},animate:{opacity:1,translateX:0},exit:{translateX:"100%",opacity:.6},className:oR,children:y.jsx(fo,{label:"View has no notations",color:"orange",...s,children:y.jsx(ci,{size:"lg",variant:"light",color:"orange",radius:"md",children:y.jsx(Hee,{})})})},"empty"),l&&o&&a&&y.jsx(cl.div,{initial:{opacity:.75,translateX:"50%"},animate:{opacity:1,translateX:0},exit:{translateX:"100%",opacity:.6},className:oR,children:y.jsx(fo,{label:"Show notation",color:"dark",fz:"xs",...s,children:y.jsx(or,{size:"lg",variant:"default",color:"gray",className:kQe,onClick:()=>i(!1),children:y.jsx(RQe,{stroke:1.5})})})},"collapsed"),l&&o&&!a&&y.jsx(cl.div,{initial:{opacity:.75,scale:.2},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.25},className:Je("react-flow__panel",oR),style:{transformOrigin:"bottom right"},children:y.jsx(Nf,{radius:"sm",withBorder:!0,shadow:"lg",className:_Qe,children:y.jsxs(Jd,{defaultValue:"first",radius:"xs",children:[y.jsxs(V0,{children:[y.jsx(or,{size:"md",variant:"subtle",color:"gray",ml:2,style:{alignSelf:"center"},onClick:()=>i(!0),children:y.jsx(NQe,{stroke:2})}),y.jsx(jf,{value:"first",fz:"xs",children:"Elements"}),y.jsx(jf,{value:"second",fz:"xs",disabled:!0,children:"Relationships"})]}),y.jsx(Zs,{value:"first",className:EQe,hidden:a,children:y.jsx(ta,{viewportProps:{style:{maxHeight:`min(40vh, ${Math.max(e-60,50)}px)`}},children:y.jsx(ra,{gap:0,children:n.map((c,u)=>y.jsx(DQe,{value:c},u))})})})]})})},r)]})}),Yee=E.memo(()=>{const{enableControls:e,enableNotations:r,enableSearch:n,enableRelationshipDetails:o}=wr(),a=v8e(),i=qG(),l=vBe();return y.jsxs(sG,{onReset:a,children:[e&&y.jsx(Tze,{children:y.jsx(Vee,{})}),i&&y.jsx(TXe,{overlaysActorRef:i}),r&&y.jsx(PQe,{}),n&&l&&y.jsx(hKe,{searchActorRef:l}),o&&y.jsx(wKe,{})]})});Yee.displayName="DiagramUI";function _m(e){return function(){return e}}const Wee=1e-12,aR=Math.PI,iR=2*aR,yp=1e-6,OQe=iR-yp;function Gee(e){this._+=e[0];for(let r=1,n=e.length;r<n;++r)this._+=arguments[r]+e[r]}function MQe(e){let r=Math.floor(e);if(!(r>=0))throw new Error(`invalid digits: ${e}`);if(r>15)return Gee;const n=10**r;return function(o){this._+=o[0];for(let a=1,i=o.length;a<i;++a)this._+=Math.round(arguments[a]*n)/n+o[a]}}class IQe{constructor(r){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=r==null?Gee:MQe(r)}moveTo(r,n){this._append`M${this._x0=this._x1=+r},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(r,n){this._append`L${this._x1=+r},${this._y1=+n}`}quadraticCurveTo(r,n,o,a){this._append`Q${+r},${+n},${this._x1=+o},${this._y1=+a}`}bezierCurveTo(r,n,o,a,i,l){this._append`C${+r},${+n},${+o},${+a},${this._x1=+i},${this._y1=+l}`}arcTo(r,n,o,a,i){if(r=+r,n=+n,o=+o,a=+a,i=+i,i<
${l} {
--likec4-palette-fill: ${i(n.elements.fill)};
--likec4-palette-stroke: ${i(n.elements.stroke)};
}
${Dte} ${l} {
--likec4-palette-fill: ${a(n.elements.fill)};
--likec4-palette-stroke: ${a(n.elements.stroke)};
}
`.trim()};function wet(e,r,n){const{elements:o,relationships:a}=n,i=`:where(${e} [data-likec4-color=${r}])`;return[`
${i} {
--likec4-palette-fill: ${o.fill};
--likec4-palette-stroke: ${o.stroke};
--likec4-palette-hiContrast: ${o.hiContrast};
--likec4-palette-loContrast: ${o.loContrast};
--likec4-palette-relation-stroke: ${a.line};
--likec4-palette-relation-label: ${a.label};
--likec4-palette-relation-label-bg: ${a.labelBg};
}
${bet} ${i} {
--likec4-palette-relation-stroke-selected: ${Tte(Rte(a.line,"black",85))};
}
${Dte} ${i} {
--likec4-palette-relation-stroke-selected: ${Tte(Rte(a.line,"white",70))};
}
`.trim(),...ZNe(1,vet+1).map(l=>xet(e,r,n,l))].join(`
`)}function ket(e,r){return yn(r.colors,B8(),Ro(([n,o])=>wet(e,n,o)),oq(`
`))}const _et=E.memo(({id:e})=>{const r=`#${e}`,n=Yd()?.(),{theme:o}=nte(),a=ket(r,o);return y.jsx("style",{type:"text/css","data-likec4-colors":e,dangerouslySetInnerHTML:{__html:a},nonce:n})});function $te(e,r){if(e._type==="dynamic")try{if(r??=e.variant,r==="sequence")return e.sequenceLayout.bounds}catch{}return e.bounds}function Pte({children:e}){const r=E.useContext(Zx);return E.useEffect(()=>{r||console.warn("LikeC4Diagram must be a child of MantineProvider")},[]),r?y.jsx(y.Fragment,{children:e}):y.jsx(g9,{defaultColorScheme:"auto",children:e})}Pte.displayName="EnsureMantine";const mR=({reducedMotion:e="user",children:r})=>{const n=Yd()?.();return y.jsx(wUe,{features:yVe,strict:!0,children:y.jsx(EUe,{reducedMotion:e,...n&&{nonce:n},children:r})})};function Ote({onCanvasClick:e,onCanvasContextMenu:r,onCanvasDblClick:n,onEdgeClick:o,onChange:a,onEdgeContextMenu:i,onNavigateTo:l,onNodeClick:s,onNodeContextMenu:c,onOpenSource:u,onBurgerMenuClick:d,onInitialized:p,view:f,className:g,readonly:b=!0,controls:x=!b,fitView:w=!0,fitViewPadding:k=x?P2.withControls:P2.default,pannable:C=!0,zoomable:_=!0,background:T="dots",enableElementTags:R=!1,enableFocusMode:A=!1,enableElementDetails:D=!1,enableRelationshipDetails:N=!1,enableRelationshipBrowser:P=!1,nodesDraggable:O=!b,nodesSelectable:B=!b||A||!!l||!!s,showNotations:L=!0,showNavigationButtons:Y=!!l,enableDynamicViewWalkthrough:M=!1,dynamicViewVariant:q,enableSearch:I=!1,initialWidth:U,initialHeight:V,experimentalEdgeEditing:G=!b,reduceGraphics:F="auto",renderIcon:J,where:Q,reactFlowProps:z,renderNodes:W,children:X}){const Z=ZW(),oe=E.useRef(null),ee=$te(f,q),re=Eet(k);oe.current==null&&(oe.current={defaultEdges:[],defaultNodes:[],initialWidth:U??ee.width,initialHeight:V??ee.height,initialFitViewOptions:{maxZoom:HC,minZoom:pl,padding:re},initialMaxZoom:HC,initialMinZoom:pl});const pe=F==="auto"?C&&(ee.width??1)*(ee.height??1)>6e6&&f.nodes.some(Ce=>Ce.children?.length>0):F;return y.jsx(Pte,{children:y.jsx(mR,{...pe&&{reducedMotion:"always"},children:y.jsx(u8e,{value:J??null,children:y.jsx(hp,{features:{enableFitView:w,enableReadOnly:b,enableFocusMode:A,enableNavigateTo:!!l,enableElementDetails:D,enableRelationshipDetails:N,enableRelationshipBrowser:P,enableSearch:I,enableNavigationButtons:Y&&!!l,enableDynamicViewWalkthrough:f._type==="dynamic"&&M,enableEdgeEditing:G,enableNotations:L,enableVscode:!!u,enableControls:x,enableElementTags:R},children:y.jsxs(gKe,{handlers:{onCanvasClick:e,onCanvasContextMenu:r,onCanvasDblClick:n,onEdgeClick:o,onChange:a,onEdgeContextMenu:i,onNavigateTo:l,onNodeClick:s,onNodeContextMenu:c,onOpenSource:u,onBurgerMenuClick:d,onInitialized:p},children:[y.jsx(_et,{id:Z}),y.jsx(Pze,{rootSelector:`#${Z}`,children:y.jsx(Cze,{id:Z,className:g,reduceGraphics:pe,children:y.jsx(Px,{fitView:w,...oe.current,children:y.jsxs(set,{view:f,zoomable:_,pannable:C,fitViewPadding:re,nodesSelectable:B,where:Q??null,dynamicViewVariant:q,children:[y.jsx(EJe,{nodesDraggable:O,nodesSelectable:B,background:T,reactFlowProps:z,renderNodes:W,children:X}),y.jsx(Yee,{})]})})})})]})})})})})}const Mte=e=>typeof e=="number"?`${e}px`:e;function Eet(e){return qB(()=>U8(e)?UNe(e,Mte):Mte(e),[e],ut)}function Cet({children:e,likec4model:r}){return y.jsx(W0.Provider,{value:r,children:e})}const gR=({children:e})=>y.jsx("div",{style:{margin:"1rem 0"},children:y.jsx("div",{style:{margin:"0 auto",display:"inline-block",padding:"2rem",background:"rgba(250,82,82,.15)",color:"#ffa8a8"},children:e})}),Tet=({viewId:e})=>y.jsxs(gR,{children:["View ",y.jsx("code",{children:e})," not found"]}),Ret=e=>{throw new Error("LikeC4View is not available SSR")};var Ite={exports:{}},yR,Lte;function Aet(){if(Lte)return yR;Lte=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return yR=e,yR}var bR,zte;function Net(){if(zte)return bR;zte=1;var e=Aet();function r(){}function n(){}return n.resetWarningCache=r,bR=function(){function o(l,s,c,u,d,p){if(p!==e){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)},jet=function(e,r){return Met(e)||Iet(e,r)||Let(e,r)||zet()},Hte=Bte((function(e){function r(){return e.exports=r=Object.assign||function(n){for(var o=1;o<arguments.length;o++){var a=arguments[o];for(var i in a)Object.prototype.hasOwnProperty.call(a,i)&&(n[i]=a[i])}return n},r.apply(this,arguments)}e.exports=r})),Bet=function(e,r){if(e==null)return{};var n,o,a={},i=Object.keys(e);for(o=0;o<i.length;o++)n=i[o],r.indexOf(n)>=0||(a[n]=e[n]);return a},Ute=function(e,r){if(e==null)return{};var n,o,a=Bet(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],r.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a},Fet=E.createContext(null);function qte(e){var r=e.children,n=r===void 0?"":r,o=Ute(e,["children"]);return typeof n!="string"&&(n=Ret()),Xr.createElement("template",Hte({},o,{dangerouslySetInnerHTML:{__html:n}}))}function Vte(e){var r=e.root,n=e.children;return ji.createPortal(n===void 0?null:n,r)}function Het(e){var r=E.forwardRef((function(n,o){var a,i,l=n.mode,s=l===void 0?"open":l,c=n.delegatesFocus,u=c!==void 0&&c,d=n.styleSheets,p=d===void 0?[]:d,f=n.ssr,g=f!==void 0&&f,b=n.children,x=Ute(n,["mode","delegatesFocus","styleSheets","ssr","children"]),w=(i=E.useRef((a=o)&&a.current),E.useEffect((function(){a&&(a.current=i.current)}),[a]),i),k=E.useState(null),C=jet(k,2),_=C[0],T=C[1],R="node_".concat(s).concat(u);return E.useLayoutEffect((function(){if(w.current)try{if(typeof o=="function"&&o(w.current),g){var A=w.current.shadowRoot;return void T(A)}var D=w.current.attachShadow({mode:s,delegatesFocus:u});p.length>0&&(D.adoptedStyleSheets=p),T(D)}catch(N){(function(P){var O=P.error,B=P.styleSheets,L=P.root;switch(O.name){case"NotSupportedError":B.length>0&&(L.adoptedStyleSheets=B);break;default:throw O}})({error:N,styleSheets:p,root:_})}}),[o,w,p]),Xr.createElement(Xr.Fragment,null,Xr.createElement(e.tag,Hte({key:R,ref:w},x),(_||g)&&Xr.createElement(Fet.Provider,{value:_},g?Xr.createElement(qte,{shadowroot:s,shadowrootmode:s},e.render({root:_,ssr:g,children:b})):Xr.createElement(Vte,{root:_},e.render({root:_,ssr:g,children:b})))))}));return r.propTypes={mode:bl.oneOf(["open","closed"]),delegatesFocus:bl.bool,styleSheets:bl.arrayOf(bl.instanceOf(globalThis.CSSStyleSheet)),ssr:bl.bool,children:bl.node},r}qte.propTypes={children:bl.oneOfType([bl.string,bl.node])},Vte.propTypes={root:bl.object.isRequired,children:bl.node};var vR=new Map;function Uet(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"core",n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:function(o){return o.children};return new Proxy(e,{get:function(o,a){var i=Oet(a,{separator:"-"}),l="".concat(r,"-").concat(i);return vR.has(l)||vR.set(l,Het({tag:i,render:n})),vR.get(l)}})}var qet=Uet();const Vet='@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/latin-400-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/latin-400-normal.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/latin-500-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/latin-500-normal.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/latin-600-normal.woff2) format
:where([data-likec4-instance="${e}"]) {
display: block;
box-sizing: border-box;
border: 0 solid transparent;
background: transparent;
padding: 0;
margin: 0;
overflow: hidden;
width: 100%;
height: 100%;
min-width: 80px;
min-height: 80px;
}
`.trim();const{width:n,height:o}=r,a=n>o;return`
:where([data-likec4-instance="${e}"]) {
display: block;
box-sizing: border-box;
border: 0 solid transparent;
background: transparent;
padding: 0;
overflow: hidden;
aspect-ratio: ${Math.ceil(n)} / ${Math.ceil(o)};
${a?"":`
max-width: min(100%, var(--likec4-view-max-width, ${Math.ceil(n)}px));
margin-left: auto;
margin-right: auto;`}
width: ${a?"100%":"auto"};
height: ${a?"auto":"100%"};
${a?"min-width: 80px;":"min-height: 80px;"}
max-height: min(100%, var(--likec4-view-max-height, ${Math.ceil(o)}px));
}
`.trim()}const Ket=qet.div;function Zet({children:e,theme:r=Yet,injectFontCss:n=!0,styleNonce:o,colorScheme:a,keepAspectRatio:i=!1,...l}){const s=Get(a),c=ZW(),u=Xet(c,i),d=E.useRef(null),p=Wet(n,o),f=E.useCallback(()=>d.current??void 0,[d]);let g,b;return H8(o)&&(typeof o=="string"?(b=o,g=()=>o):typeof o=="function"&&(b=o(),g=o)),y.jsxs(y.Fragment,{children:[y.jsx("style",{type:"text/css",nonce:b,dangerouslySetInnerHTML:{__html:u}}),y.jsx(Ket,{ssr:!1,...l,styleSheets:p,"data-likec4-instance":c,children:y.jsx("div",{ref:d,"data-mantine-color-scheme":s,className:"likec4-shadow-root",children:y.jsx(g9,{...a&&{forceColorScheme:a},defaultColorScheme:s,getRootElement:f,...g&&{getStyleNonce:g},cssVariablesSelector:".likec4-shadow-root",theme:r,children:y.jsx(mR,{children:e})})})})]})}const Qet=ye({cursor:"pointer","--mantine-cursor-pointer":"pointer","& :where(.likec4-diagram, .likec4-compound-node, .likec4-element-node)":{cursor:"pointer"}});function Jet({viewId:e,className:r,pannable:n=!1,zoomable:o=!1,keepAspectRatio:a=!0,colorScheme:i,injectFontCss:l=!0,controls:s=!1,background:c="transparent",browser:u=!0,showNavigationButtons:d=!1,showNotations:p,enableFocusMode:f=!1,enableDynamicViewWalkthrough:g=!1,enableElementDetails:b=!1,enableRelationshipDetails:x=!1,enableRelationshipBrowser:w=x,reduceGraphics:k="auto",mantineTheme:C,styleNonce:_,style:T,reactFlowProps:R,renderNodes:A,children:D,...N}){const P=Rze(),[O,B]=E.useState(null),L=it(()=>{B(e)});if(!P)return y.jsx(gR,{children:"LikeC4Model not found. Make sure you provided LikeC4ModelProvider."});const Y=P.findView(e)?.$view;if(!Y)return y.jsx(Tet,{viewId:e});if(Y._stage!=="layouted")return y.jsxs(gR,{children:['LikeC4 View "$',e,'" is not layouted. Make sure you have LikeC4ModelProvider with layouted model.']});const M=O?P.findView(O)?.$view:null,q=(Y.notation?.nodes??[]).length>0;p??=q;const I=u!==!1,U=eq(u)?{}:u,V=$te(Y,N.dynamicViewVariant);return y.jsx(Zet,{injectFontCss:l,theme:C,colorScheme:i,styleNonce:_,keepAspectRatio:a?V:!1,className:Je("likec4-view",r),style:T,children:y.jsxs(mR,{children:[y.jsx(Ote,{view:Y,readonly:!0,pannable:n,zoomable:o,background:c,fitView:!0,fitViewPadding:P2.default,showNotations:p,enableDynamicViewWalkthrough:g,showNavigationButtons:d,experimentalEdgeEditing:!1,enableFocusMode:f,enableRelationshipDetails:x,enableElementDetails:b,enableRelationshipBrowser:w,enableElementTags:!1,controls:s,nodesDraggable:!1,reduceGraphics:k,className:Je("likec4-static-view",I&&Qet),enableSearch:!1,...I&&{onCanvasClick:L,onNodeClick:L},reactFlowProps:R,renderNodes:A,children:D,...N}),M&&y.jsxs(Oy,{openDelay:0,onClose:()=>B(null),children:[y.jsx(Ote,{view:M,pannable:!0,zoomable:!0,background:"dots",onNavigateTo:B,showNavigationButtons:!0,enableDynamicViewWalkthrough:!0,enableFocusMode:!0,enableRelationshipBrowser:!0,enableElementDetails:!0,enableRelationshipDetails:!0,enableSearch:!0,enableElementTags:!0,controls:!0,readonly:!0,fitView:!0,...N,fitViewPadding:P2.withControls,...U,showNotations:U.showNotations??p,renderNodes:A}),y.jsx(Se,{pos:"absolute",top:"1rem",right:"1rem",children:y.jsx(or,{variant:"default",color:"gray",onClick:G=>{G.stopPropagation(),B(null)},children:y.jsx(Hf,{})})})]})]})})}var ett=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 128 128",...e,children:[y.jsx("path",{fill:"#343741",d:"M4 64c0 5.535.777 10.879 2.098 16H84c8.836 0 16-7.164 16-16s-7.164-16-16-16H6.098A63.7 63.7 0 0 0 4 64"}),y.jsx("path",{fill:"#fec514",d:"M111.695 30.648A61.5 61.5 0 0 0 117.922 24C106.188 9.379 88.199 0 68 0 42.715 0 20.957 14.71 10.574 36H98.04a20.12 20.12 0 0 0 13.652-5.352"}),y.jsx("path",{fill:"#00bfb3",d:"M98.04 92H10.577C20.961 113.29 42.715 128 68 128c20.2 0 38.188-9.383 49.922-24a61 61 0 0 0-6.227-6.648A20.13 20.13 0 0 0 98.04 92"})]}),ttt=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 128 128",...e,children:y.jsx("path",{fill:"#F34F29",d:"M124.737 58.378 69.621 3.264c-3.172-3.174-8.32-3.174-11.497 0L46.68 14.71l14.518 14.518c3.375-1.139 7.243-.375 9.932 2.314 2.703 2.706 3.461 6.607 2.294 9.993l13.992 13.993
addressing a growing number of use cases. It centrally stores your data so you can
discover the expected and uncover the unexpected.`},title:"Elasticsearch",kind:"container",id:"elasticsearch"},objectstorage:{style:{opacity:20},technology:"S3 Object Storage",description:{txt:"s3 Object Storage"},title:"s3 Object Storage",kind:"container",id:"objectstorage"},postgres:{style:{opacity:20,icon:"tech:postgresql"},technology:"PostgreSQL",description:{txt:`PostgreSQL is a powerful, open source object-relational database system.
It has more than 15 years of active development and a proven architecture
that has earned it a strong reputation for reliability, data integrity,
and correctness.`},title:"PostgreSQL",kind:"container",id:"postgres"},redis:{style:{opacity:20,icon:"tech:redis"},technology:"Redis",description:{txt:"Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker."},title:"Redis",kind:"container",id:"redis"},developer:{style:{shape:"person",color:"green"},description:{txt:"The regular user of the platform"},title:"Developer",kind:"actor",id:"developer"},platformdeveloper:{style:{shape:"person",color:"gray"},description:{txt:"The EDP engineer"},title:"Platform Developer",kind:"actor",id:"platformdeveloper"},otherProductLifecycleRoles:{style:{shape:"person",color:"green"},description:{txt:"Coworking roles in the outer loop"},title:"Reviewer, Tester, Auditors, Operators",kind:"actor",id:"otherProductLifecycleRoles"},customers:{style:{shape:"person",color:"amber"},description:{txt:"Consumers of your Application"},title:"End Customers",kind:"actor",id:"customers"},cloud:{style:{},technology:"IaaS/PaaS",description:{txt:"Cloud environments"},title:"Cloud",kind:"system",id:"cloud"},enterprise:{style:{},description:{txt:"The customers' enterprise systems"},title:"Customers' Enterprise Systems",kind:"system",id:"enterprise"},edf:{style:{icon:"tech:kubernetes"},technology:"Kubernetes",description:{txt:"EDP Foundry is a platform for building and deploying EDPs tenantwise."},title:"EDF",kind:"system",id:"edf"},edp:{style:{icon:"tech:kubernetes"},technology:"Kubernetes",description:{txt:"EDP Edge Development Platform"},title:"EDP",kind:"system",id:"edp"},localbox:{style:{},technology:"Linux/Windows/Mac",description:{txt:"A local development system"},title:"localbox",kind:"system",id:"localbox"},"edfbuilder_workflow.runEDP":{style:{opacity:25},title:"Run edpbuilder script",kind:"step",id:"edfbuilder_workflow.runEDP"},"edfbuilder_workflow.applyEDFBuilder":{style:{opacity:15},title:"Applies EDFbuilder resource (and triggers creation)",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder"},"applicationspecification.application_gitrepo":{style:{icon:"tech:git"},technology:"Git",description:{txt:"Git Application Repository"},title:"Git App Repo",kind:"component",id:"applicationspecification.application_gitrepo"},"applicationspecification.applicationspec_gitrepo":{style:{icon:"tech:git"},technology:"Git",description:{txt:"Git Application Specification Repository"},title:"Git AppSpec Repo",kind:"component",id:"applicationspecification.applicationspec_gitrepo"},"edp.api":{style:{opacity:20,icon:"tech:swagger"},description:{txt:"API for the EDP platform"},title:"API",kind:"container",id:"edp.api"},"edp.argoCD":{style:{opacity:20},description:{txt:"GitOps Service"},title:"ArgoCD",kind:"container",id:"edp.argoCD"},"edp.ui":{style:{opacity:20},description:{txt:"Developer Portal"},title:"Backstage",kind:"container",id:"edp.ui"},"edp.crossplane":{style:{opacity:20},tags:["internal"],description:{txt:"Declarative management of ressources"},title:"Crossplane",kind:"container",id:"edp.crossplane"},"edp.externalSecrets":{style:{opacity:20},tags:["internal"],description:{txt:"Provider to access externally stored Kubernetes secrets"},title:"external-secrets",kind:"container",id:"edp.externalSecrets"},"edp.forgejo":{style:{opacity:20,icon:"tech:go"},technology:"Golang",description:{txt:`Fully managed DevOps Platform
offering capabilities like
code version controling
collaboration and ticketing
and security scanning`},title:"Forgejo",kind:"container",id:"edp.forgejo"},"edp.forgejoActions":{style:{icon:"tech:go"},technology:"Golang",description:{txt:"Continuous Integration like Github Actions"},title:"Forgejo Actions",kind:"component",id:"edp.forgejoActions"},"edp.imageregistry":{style:{icon:"tech:go"},technology:"Golang",description:{txt:"Container Image Registry"},title:"Forgejo OCI Image Registry",kind:"component",id:"edp.imageregistry"},"edp.forgejogit":{style:{icon:"tech:git"},title:"ForgejoGit",kind:"component",id:"edp.forgejogit"},"edp.grafana":{style:{opacity:20,icon:"tech:grafana"},description:{txt:"Data visualization and monitoring"},title:"Grafana",kind:"container",id:"edp.grafana"},"edp.ingressNginx":{style:{opacity:20},tags:["internal"],description:{txt:"Ingress Controller for incoming http(s) traffic"},title:"Ingress",kind:"container",id:"edp.ingressNginx"},"edp.keycloak":{style:{opacity:20},description:{txt:"Single Sign On for all EDP products"},title:"Keycloak",kind:"container",id:"edp.keycloak"},"edp.kyverno":{style:{opacity:20},tags:["internal"],description:{txt:"Policy-as-Code"},title:"Kyverno",kind:"container",id:"edp.kyverno"},"edp.loki":{style:{opacity:20},description:{txt:"Log aggregation system"},title:"Loki",kind:"container",id:"edp.loki"},"edp.mailhog":{style:{opacity:20},description:{txt:"Web and API based SMTP testing"},title:"Mailhog",kind:"container",id:"edp.mailhog"},"edp.minio":{style:{opacity:20},description:{txt:"S3 compatible blob storage"},title:"Minio",kind:"container",id:"edp.minio"},"edp.monitoring":{style:{opacity:20},description:{txt:"Observability system to monitor deployed components"},title:"Monitoring",kind:"container",id:"edp.monitoring"},"edp.openbao":{style:{opacity:20},description:{txt:"Secure secret storage"},title:"OpenBao",kind:"container",id:"edp.openbao"},"edp.prometheus":{style:{opacity:20,icon:"tech:prometheus"},description:{txt:"Monitoring and alerting toolkit"},title:"Prometheus",kind:"container",id:"edp.prometheus"},"edp.spark":{style:{opacity:20},tags:["internal"],description:{txt:"Allows running Spark applications on K8s"},title:"Spark",kind:"container",id:"edp.spark"},"edp.velero":{style:{opacity:20},tags:["internal"],description:{txt:"Backup Kubernetes resources"},title:"Velero",kind:"container",id:"edp.velero"},"cloud.application":{style:{color:"primary"},technology:"DSL",description:{txt:"An application description"},title:"application",kind:"schema",id:"cloud.application"},"edp.application":{style:{color:"primary"},technology:"DSL",description:{txt:"An application description"},title:"application",kind:"schema",id:"edp.application"},"edp.testApp":{style:{opacity:20},description:{txt:"Testapp to validate deployments"},title:"Fibonacci",kind:"container",id:"edp.testApp"},"localbox.application":{style:{color:"primary"},technology:"DSL",description:{txt:"An application description"},title:"application",kind:"schema",id:"localbox.application"},"localbox.git":{style:{icon:"tech:git"},technology:"Git",description:{txt:"local git"},title:"git",kind:"component",id:"localbox.git"},"edfbuilder_workflow.runEDP.createCrossplaneNS":{style:{},title:"Create Crossplane namespace",kind:"step",id:"edfbuilder_workflow.runEDP.createCrossplaneNS"},"edfbuilder_workflow.runEDP.installCrossplaneHelm":{style:{},title:"Install Crossplane Helm Chart",kind:"step",id:"edfbuilder_workflow.runEDP.installCrossplaneHelm"},"edfbuilder_workflow.runEDP.installCrossplaneFunctionsAndProviders":{style:{},title:"Install Crossplane Functions and Providers",kind:"step",id:"edfbuilder_workflow.runEDP.installCrossplaneFunctionsAndProviders"},"edfbuilder_workflow.runEDP.waitForCrossplaneFunctionsAndProviders":{style:{},title:"Wait for Crossplane Functions and Providers to become available",kind:"step",id:"edfbuilder_workflow.runEDP.waitForCrossplaneFunctionsAndProviders"},"edfbuilder_workflow.runEDP.setupCrossplaneServiceAccount":{style:{},title:"Apply cluster-admin role to crossplane shell provider service account",kind:"step",id:"edfbuilder_workflow.runEDP.setupCrossplaneServiceAccount"},"
A tenant is a folder in Foundry-Config-Forgejo. On merge triggers reconciliation to EDP.
Optionally we will have a WebUI/API/CLI`},tags:[],style:{opacity:15,size:"md"},depth:1,x:385,y:79,width:870,height:981,labelBBox:{x:6,y:0,width:280,height:15}},{id:"local.ingressNginx",parent:"local",level:1,children:["local.ingressNginx.ingressNginx"],inEdges:[],outEdges:["15juth8","p2br4p","o229dq","2vnvvg","4ix58c","1hr2s5j","1nksp5g","m2japo","4drflo","ihlgsc"],deploymentRef:"local.ingressNginx",title:"ingress-nginx",kind:"namespace",color:"primary",shape:"rectangle",modelRef:"edp.ingressNginx.ingressNginx",icon:"tech:nginx",tags:[],style:{opacity:15,size:"md"},depth:1,x:4500,y:97,width:384,height:265,labelBBox:{x:6,y:0,width:92,height:15}},{id:"local.velero",parent:"local",level:1,children:["local.velero.velero"],inEdges:[],outEdges:["3znaik"],deploymentRef:"local.velero",title:"Velero",kind:"namespace",color:"primary",shape:"rectangle",modelRef:"edp.velero.velero",tags:[],style:{opacity:15,size:"md"},depth:1,x:7785,y:97,width:384,height:265,labelBBox:{x:6,y:0,width:49,height:15}},{id:"otc-edpFoundry.forgejoRunnerInfrastructure",parent:"otc-edpFoundry",level:1,children:[],inEdges:[],outEdges:["109g3jm"],deploymentRef:"otc-edpFoundry.forgejoRunnerInfrastructure",title:"EDP ForgejoRunner infrastructure",kind:"computeressource",color:"primary",shape:"rectangle",modelRef:"forgejoRunner",description:{txt:"Infrastructure for Forgejo runners like pods, vms, lxds, etc"},tags:[],style:{opacity:15,size:"md"},x:450,y:150,width:342,height:180,labelBBox:{x:18,y:54,width:306,height:66}},{id:"local.crossplane",parent:"local",level:1,children:["local.crossplane.crossplane","local.crossplane.crossplaneFunction","local.crossplane.crossplaneRbacManager","local.crossplane.providerArgoCD","local.crossplane.providerKind","local.crossplane.providerShell"],inEdges:[],outEdges:[],deploymentRef:"local.crossplane",title:"crossplane-system",kind:"namespace",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:8219,y:79,width:2670,height:301,labelBBox:{x:6,y:0,width:129,height:15}},{id:"local.crossplane.crossplane",parent:"local.crossplane",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Crossplane",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.crossplane.crossplane",modelRef:"edp.crossplane.crossplane",x:8269,y:150,width:320,height:180,labelBBox:{x:107,y:74,width:105,height:24}},{id:"local.crossplane.crossplaneFunction",parent:"local.crossplane",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Function Patch and Transform",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.crossplane.crossplaneFunction",modelRef:"edp.crossplane.crossplaneFunction",x:8719,y:150,width:320,height:180,labelBBox:{x:24,y:74,width:273,height:24}},{id:"local.crossplane.crossplaneRbacManager",parent:"local.crossplane",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"RBAC Manager",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.crossplane.crossplaneRbacManager",modelRef:"edp.crossplane.crossplaneRbacManager",x:9169,y:150,width:320,height:180,labelBBox:{x:88,y:74,width:144,height:24}},{id:"local.crossplane.providerArgoCD",parent:"local.crossplane",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"ArgoCD Provider",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.crossplane.providerArgoCD",modelRef:"edp.crossplane.providerArgoCD",x:9619,y:150,width:320,height:180,labelBBox:{x:82,y:74,width:155,height:24}},{id:"local.crossplane.providerKind",parent:"local.crossplane",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Kind Provider",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.crossplane.providerKind",modelRef:"edp.crossplane.providerKind",x:10069,y:150,width:320,height:180,labelBBox:{x:98,y:74,width:124,height:24}},{id:"local.crossplane.providerShell",parent:"local.crossplane",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Shell
offering capabilities like
code version controling
collaboration and ticketing
and security scanning`},technology:"Golang",tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"local.gitea.forgejo",modelRef:"edp.forgejo",navigateTo:"forgejo",x:6893,y:497,width:340,height:180,labelBBox:{x:46,y:18,width:278,height:139}},{id:"local.keycloak.keycloak",parent:"local.keycloak",level:2,children:[],inEdges:["2vnvvg"],outEdges:["4zwy1m"],kind:"instance",title:"Keycloak",technology:"Java",tags:[],icon:"tech:java",color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.keycloak.keycloak",modelRef:"edp.keycloak.keycloak",x:1897,y:497,width:320,height:180,labelBBox:{x:104,y:65,width:143,height:45}},{id:"local.monitoring.alloy",parent:"local.monitoring",level:2,children:[],inEdges:["1hr2s5j"],outEdges:["sb2j38"],kind:"instance",title:"Alloy",description:{txt:"Open Telemetry Collector"},tags:[],icon:"tech:grafana",color:"primary",shape:"rectangle",style:{opacity:15,size:"md",multiple:!0},deploymentRef:"local.monitoring.alloy",modelRef:"edp.monitoring.alloy",x:3267,y:497,width:320,height:180,labelBBox:{x:59,y:63,width:233,height:48}},{id:"local.monitoring.queryFrontend",parent:"local.monitoring",level:2,children:[],inEdges:["1nksp5g"],outEdges:[],kind:"instance",title:"Query Frontend",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.monitoring.queryFrontend",modelRef:"edp.monitoring.loki.queryFrontend",x:2817,y:497,width:320,height:180,labelBBox:{x:88,y:74,width:144,height:24}},{id:"local.openbao.openbao",parent:"local.openbao",level:2,children:[],inEdges:["m2japo"],outEdges:[],kind:"instance",title:"Openbao",technology:"Openbao",tags:[],color:"primary",shape:"storage",style:{opacity:15,size:"md"},deploymentRef:"local.openbao.openbao",modelRef:"edp.openbao.openbao",x:7365,y:497,width:320,height:180,labelBBox:{x:117,y:65,width:86,height:45}},{id:"local.openbao.agentInjector",parent:"local.openbao",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Agent Injector",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.openbao.agentInjector",modelRef:"edp.openbao.agentInjector",x:7365,y:150,width:320,height:180,labelBBox:{x:96,y:74,width:127,height:24}},{id:"local.fibonacci.fibonacci",parent:"local.fibonacci",level:2,children:[],inEdges:["4drflo"],outEdges:[],kind:"instance",title:"Fibonacci",technology:"Golang",tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.fibonacci.fibonacci",modelRef:"edp.testApp.fibonacci",x:3719,y:497,width:320,height:180,labelBBox:{x:101,y:65,width:148,height:45}},{id:"local.mailhog.mailhog",parent:"local.mailhog",level:2,children:[],inEdges:["ihlgsc"],outEdges:[],kind:"instance",title:"Mailhog",technology:"Golang",tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.mailhog.mailhog",modelRef:"edp.mailhog.mailhog",x:4169,y:497,width:320,height:180,labelBBox:{x:109,y:65,width:132,height:45}},{id:"local.minio.minio",parent:"local.minio",level:2,children:[],inEdges:["3znaik","4ix58c"],outEdges:[],kind:"instance",title:"S3 Blob Storage",technology:"Minio",tags:[],color:"primary",shape:"storage",style:{opacity:15,size:"md"},deploymentRef:"local.minio.minio",modelRef:"edp.minio.minio",x:7817,y:497,width:320,height:180,labelBBox:{x:85,y:65,width:150,height:45}},{id:"otc-edp-per-tenant",parent:null,level:0,children:["otc-edp-per-tenant.forgejoRunnerInfrastructure","otc-edp-per-tenant.cce","otc-edp-per-tenant.cloudServices"],inEdges:["r3wxut","1sng0q0","e3benz"],outEdges:[],deploymentRef:"otc-edp-per-tenant",title:"OTC EDP per tenant cluster",kind:"cloud",technology:"OTC",color:"primary",shape:"rectangle",description:{txt:`OTC environment for EDP. EDP is the environment a customer gets from us.
This is kubernetes clusters and other infrastructure like nodes and vms, and platform services. All is set up by IaC-pipelines in the Foundry.`},tags:[],style:{opacity:15,size:"md"},depth:1,x:1305,y:79,width:442,height:1668,labelBBox:{x:6,y:0,width:181,height:15}},{id:"local.backstage.database",parent:"local.backstage",level:2,children:[],inEdges:["19kg5y"],outEdges:[],kind:"instance",title:"Database",technology:"Postgresql",tags:[],icon:"tech:postgresql",color:"primary",shape:"storage",style:{opacity:15,size:"md"},deploymentRef:"local.backstage.database",modelRef:"edp.ui.database",x:4621,y:830,width:320,height:180,labelBBox:{x:101,y:64,width:148,height:46}},{id:"local.argocd.argocdRedis",parent:"local.argocd",level:2,children:[],inEdges:["1gfgfhk","qfu5xm","g7xnzs","fon3rk"],outEdges:[],kind:"instance",title:"Redis",technology:"Redis",tags:[],icon:"tech:redis",color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.argocd.argocdRedis",modelRef:"edp.argoCD.argocdRedis",x:6216,y:830,width:320,height:180,labelBBox:{x:119,y:64,width:113,height:46}},{id:"local.keycloak.keycloakDB",parent:"local.keycloak",level:2,children:[],inEdges:["4zwy1m"],outEdges:[],kind:"instance",title:"Database",technology:"Postgresql",tags:[],icon:"tech:postgresql",color:"primary",shape:"storage",style:{opacity:15,size:"md"},deploymentRef:"local.keycloak.keycloakDB",modelRef:"edp.keycloak.keycloakDB",x:1897,y:830,width:320,height:180,labelBBox:{x:101,y:64,width:148,height:46}},{id:"local.monitoring.distributor",parent:"local.monitoring",level:2,children:[],inEdges:["sb2j38"],outEdges:[],kind:"instance",title:"Distributor",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.monitoring.distributor",modelRef:"edp.monitoring.loki.distributor",x:3267,y:830,width:320,height:180,labelBBox:{x:112,y:74,width:95,height:24}},{id:"otc-edp-per-tenant.forgejoRunnerInfrastructure",parent:"otc-edp-per-tenant",level:1,children:[],inEdges:[],outEdges:["fkkf8y"],deploymentRef:"otc-edp-per-tenant.forgejoRunnerInfrastructure",title:"EDP ForgejoRunner infrastructure",kind:"computeressource",color:"primary",shape:"rectangle",modelRef:"forgejoRunner",description:{txt:"Infrastructure for Forgejo runners like pods, vms, lxds, etc"},tags:[],style:{opacity:15,size:"md"},x:1355,y:150,width:342,height:180,labelBBox:{x:18,y:54,width:306,height:66}},{id:"otc-edp-per-tenant.cce",parent:"otc-edp-per-tenant",level:1,children:[],inEdges:["fkkf8y","r3wxut","1sng0q0"],outEdges:["pit45i"],deploymentRef:"otc-edp-per-tenant.cce",title:"OTC CCE",kind:"kubernetes",technology:"Kubernetes",color:"primary",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"OTC Container Cluster Engine"},tags:[],style:{opacity:15,size:"md"},x:1358,y:1206,width:327,height:180,labelBBox:{x:46,y:53,width:266,height:67}},{id:"otc-edp-per-tenant.cloudServices",parent:"otc-edp-per-tenant",level:1,children:[],inEdges:["pit45i","e3benz"],outEdges:[],deploymentRef:"otc-edp-per-tenant.cloudServices",title:"EDP Cloud Services",kind:"paas",technology:"Cloud Services",color:"primary",shape:"rectangle",description:{txt:"EDP Cloud Services"},tags:[],style:{opacity:15,size:"md"},x:1362,y:1517,width:320,height:180,labelBBox:{x:67,y:53,width:185,height:67}},{id:"local.spark.sparkoperator",parent:"local",level:1,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Spark Operator",technology:"Spark",tags:[],icon:"tech:spark",color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.spark.sparkoperator",modelRef:"edp.spark.sparkoperator",x:12339,y:150,width:320,height:180,labelBBox:{x:76,y:65,width:198,height:45}}],edges:[{id:"pit45i",source:"otc-edp-per-tenant.cce",target:"otc-edp-per-tenant.cloudServices",label:null,dotpos:"e,1522,1517.1 1522,1386 1522,1423.8 1522,1468 1522,1506.9",points:[[1522,1386],[1522,1424],[1522,1468],[1522,1507]],labelBBox:null,parent:"otc-edp-per-tenant",relations:["1fzhjm9","15njmlz","hks76r","1w18ve8"],color:"gray",line:"dashed",head:"normal"},{id:"fkkf8y",source:"otc-edp-per-tenant.forgejoRun
This is kubernetes clusters and other infrastructure like nodes and vms, and platform services. All is set up by IaC-pipelines in the Foundry.`},tags:[],style:{opacity:15,size:"md"},depth:3,x:8,y:8,width:1994,height:1159,labelBBox:{x:6,y:0,width:181,height:15}},{id:"otc-edp-per-tenant.forgejoRunnerInfrastructure",parent:"otc-edp-per-tenant",level:1,children:["otc-edp-per-tenant.forgejoRunnerInfrastructure.forgejoRunner"],inEdges:[],outEdges:["1dcszi5"],deploymentRef:"otc-edp-per-tenant.forgejoRunnerInfrastructure",title:"EDP ForgejoRunner infrastructure",kind:"computeressource",color:"primary",shape:"rectangle",modelRef:"forgejoRunner",description:{txt:"Infrastructure for Forgejo runners like pods, vms, lxds, etc"},tags:[],style:{opacity:15,size:"md"},depth:1,x:321,y:150,width:384,height:266,labelBBox:{x:6,y:0,width:235,height:15}},{id:"otc-edp-per-tenant.cce",parent:"otc-edp-per-tenant",level:1,children:["otc-edp-per-tenant.cce.edp"],inEdges:["1dcszi5"],outEdges:["8msu1q","120qe5o","ealiax","1trj5u6"],deploymentRef:"otc-edp-per-tenant.cce",title:"OTC CCE",kind:"kubernetes",technology:"Kubernetes",color:"red",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"OTC Container Cluster Engine"},tags:[],style:{opacity:15,size:"md"},depth:2,x:755,y:79,width:954,height:719,labelBBox:{x:6,y:0,width:54,height:15}},{id:"otc-edp-per-tenant.cce.edp",parent:"otc-edp-per-tenant.cce",level:2,children:["otc-edp-per-tenant.cce.edp.externalSecrets","otc-edp-per-tenant.cce.edp.ingressNginx","otc-edp-per-tenant.cce.edp.argoCD","otc-edp-per-tenant.cce.edp.forgejo"],inEdges:["1dcszi5"],outEdges:["8msu1q","120qe5o","ealiax","1trj5u6"],deploymentRef:"otc-edp-per-tenant.cce.edp",title:"EDP",kind:"cluster",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:787,y:132,width:890,height:634,labelBBox:{x:6,y:0,width:27,height:15}},{id:"otc-edp-per-tenant.cce.edp.externalSecrets",parent:"otc-edp-per-tenant.cce.edp",level:3,children:[],inEdges:[],outEdges:[],kind:"instance",title:"external-secrets",description:{txt:"Provider to access externally stored Kubernetes secrets"},tags:["internal"],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cce.edp.externalSecrets",modelRef:"edp.externalSecrets",navigateTo:"externalSecrets",x:837,y:204,width:320,height:180,labelBBox:{x:39,y:54,width:242,height:65}},{id:"otc-edp-per-tenant.forgejoRunnerInfrastructure.forgejoRunner",parent:"otc-edp-per-tenant.forgejoRunnerInfrastructure",level:2,children:[],inEdges:[],outEdges:["1dcszi5"],kind:"instance",title:"Forgejo Runner",description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edp-per-tenant.forgejoRunnerInfrastructure.forgejoRunner",modelRef:"forgejoRunner",x:353,y:204,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:101}},{id:"otc-edp-per-tenant.cce.edp.ingressNginx",parent:"otc-edp-per-tenant.cce.edp",level:3,children:[],inEdges:[],outEdges:["1ir70dd","1kr1wg1"],kind:"instance",title:"Ingress",description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cce.edp.ingressNginx",modelRef:"edp.ingressNginx",navigateTo:"ingressNginx",x:1287,y:204,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:65}},{id:"otc-edp-per-tenant.cce.edp.argoCD",parent:"otc-edp-per-tenant.cce.edp",level:3,children:[],inEdges:["1ir70dd"],outEdges:[],kind:"instance",title:"ArgoCD",description:{txt:"GitOps Service"},tags:[],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cce.edp.argoCD",modelRef:"edp.argoCD",navigateTo:"argoCD",x:1307,y:536,width:320,height:180,labelBBox:{x:108,y:63,width:105,height:48}},{id:"otc-edp-per-tenant.cce.edp.forgejo",parent:"otc-edp-per-tenant.cce.edp",level:3,children:[],inEdges:["1kr1wg1","1dcszi5"],outE
offering capabilities like
code version controling
collaboration and ticketing
and security scanning`},technology:"Golang",tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cce.edp.forgejo",modelRef:"edp.forgejo",navigateTo:"forgejo",x:837,y:536,width:340,height:180,labelBBox:{x:46,y:18,width:278,height:139}},{id:"otc-edp-per-tenant.cloudServices",parent:"otc-edp-per-tenant",level:1,children:["otc-edp-per-tenant.cloudServices.postgres","otc-edp-per-tenant.cloudServices.redis","otc-edp-per-tenant.cloudServices.objectstorage","otc-edp-per-tenant.cloudServices.elasticsearch"],inEdges:["8msu1q","120qe5o","ealiax","1trj5u6"],outEdges:[],deploymentRef:"otc-edp-per-tenant.cloudServices",title:"EDP Cloud Services",kind:"paas",technology:"Cloud Services",color:"primary",shape:"rectangle",description:{txt:"EDP Cloud Services"},tags:[],style:{opacity:15,size:"md"},depth:1,x:58,y:815,width:1894,height:302,labelBBox:{x:6,y:0,width:127,height:15}},{id:"otc-edp-per-tenant.cloudServices.postgres",parent:"otc-edp-per-tenant.cloudServices",level:2,children:[],inEdges:["8msu1q"],outEdges:[],kind:"instance",title:"PostgreSQL",description:{txt:`PostgreSQL is a powerful, open source object-relational database system.
It has more than 15 years of active development and a proven architecture
that has earned it a strong reputation for reliability, data integrity,
and correctness.`},technology:"PostgreSQL",tags:[],icon:"tech:postgresql",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cloudServices.postgres",modelRef:"postgres",x:108,y:887,width:354,height:180,labelBBox:{x:46,y:17,width:292,height:139}},{id:"otc-edp-per-tenant.cloudServices.redis",parent:"otc-edp-per-tenant.cloudServices",level:2,children:[],inEdges:["120qe5o"],outEdges:[],kind:"instance",title:"Redis",description:{txt:"Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker."},technology:"Redis",tags:[],icon:"tech:redis",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cloudServices.redis",modelRef:"redis",x:592,y:887,width:359,height:180,labelBBox:{x:47,y:26,width:297,height:121}},{id:"otc-edp-per-tenant.cloudServices.objectstorage",parent:"otc-edp-per-tenant.cloudServices",level:2,children:[],inEdges:["ealiax"],outEdges:[],kind:"instance",title:"s3 Object Storage",description:{txt:"s3 Object Storage"},technology:"S3 Object Storage",tags:[],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cloudServices.objectstorage",modelRef:"objectstorage",x:1082,y:887,width:320,height:180,labelBBox:{x:78,y:53,width:164,height:67}},{id:"otc-edp-per-tenant.cloudServices.elasticsearch",parent:"otc-edp-per-tenant.cloudServices",level:2,children:[],inEdges:["1trj5u6"],outEdges:[],kind:"instance",title:"Elasticsearch",description:{txt:`Elasticsearch is a distributed, RESTful search and analytics engine capable of
addressing a growing number of use cases. It centrally stores your data so you can
discover the expected and uncover the unexpected.`},technology:"Elasticsearch",tags:[],icon:"tech:elasticsearch",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cloudServices.elasticsearch",modelRef:"elasticsearch",x:1532,y:887,width:370,height:180,labelBBox:{x:46,y:17,width:308,height:139}}],edges:[{id:"1ir70dd",source:"otc-edp-per-tenant.cce.edp.ingressNginx",target:"otc-edp-per-tenant.cce.edp.argoCD",label:"https",dotpos:"e,1461.6,536.51 1452.4,383.25 1455,427.28 1458.2,480.64 1461,526.05",points:[[1452,383],[1455,427],[1458,481],[1461,526]],labelBBox:{x:1459,y:448,width:34,height:18},parent:"otc-edp-per-tenant.cce.edp",relations:["1yssos5"],color:"gray",line:"dashed",head:"normal"},{id:"1kr1wg1",source:"otc-edp-per-tenant.cce.edp.ingressNginx",target:"otc-edp-per-tenant.cce.edp.forgejo",label:"https",dotpos:"e,1125.1,536.62 1328.8,383.47 1268.4,428.89 1194.8,484.19 1133.3,530.44",points:[[1329,383],[1268,429],[1195,484],[1133,530]],labelBBox:{x:1241,y:448,width:34,height:18},parent:"otc-edp-per-tenant.cce.edp",relations:["123efwn"],color:"gray",line:"dashed",head:"normal"},{id:"1dcszi5",source:"otc-edp-per-tenant.forgejoRunnerInfrastructure.forgejoRunner",target:"otc-edp-per-tenant.cce.edp.forgejo",label:"registers",dotpos:"e,874.42,536.62 645.71,383.47 713.81,429.07 796.79,484.64 866.04,531.01",points:[[646,383],[714,429],[797,485],[866,531]],labelBBox:{x:776,y:448,width:58,height:18},parent:"otc-edp-per-tenant",relations:["g9oj4f"],color:"gray",line:"dashed",head:"normal"},{id:"8msu1q",source:"otc-edp-per-tenant.cce.edp.forgejo",target:"otc-edp-per-tenant.cloudServices.postgres",label:null,dotpos:"e,408.47,886.62 836.84,684.1 743.28,717.71 626.38,763.79 527,815.4 490.05,834.59 451.75,858.08 416.81,881.1",points:[[837,684],[743,718],[626,764],[527,815],[490,835],[452,858],[417,881]],labelBBox:null,parent:"otc-edp-per-tenant",relations:["hks76r"],color:"gray",line:"dashed",head:"normal"},{id:"120qe5o",source:"otc-edp-per-tenant.cce.edp.forgejo",target:"otc-edp-per-tenant.cloudServices.redis",label:null,dotpos:"e,832,886.69 947.09,716.17 913.73,765.59 872.15,827.21 837.87,877.99",points:[[947,716],[914,766],[872,827],[838,878]],labelBBox:null,parent:"otc-edp-per-tenant",relations:["1w18ve8"],color:"gray",line:"dashed",head:"normal"},{id:"ealiax",source:"otc-edp-per-tenant.cce.edp.forgejo",target:"otc-edp-per-tenant.cloudServices.objectstorage",label:null,dotpos:"e,1182,886.69 1066.9,716.17 1100.3,765.59 1141.9,827.21 1176.1,877.99",points:[[1067,716],[1100,766],[1142,827],[1176,878]],labelBBox:null,parent:"otc-edp-per-tenant",relations:["15njmlz"],color:"gray",line:"dashed",head:"normal"},{id:"1trj5u6",source:"otc-edp-per-tenant.cce.edp.forgejo",target:"otc-edp-per-tenant.cloudServices.elasticsearch",label:null,dotpos:"e,1604.5,886.79 1103.6,716.4 1143.6,747.92 1192.2,780.08 1242,798.4 1336.1,833 1371.9,783.6 1467,815.4 1512.1,830.47 1557.1,855.46 1596.3,881.27",points:[[1104,716],[1144,748],[1192,780],[1242,798],[1336,833],[1372,784],[1467,815],[1512,830],[1557,855],[1596,881]],labelBBox:null,parent:"otc-edp-per-tenant",relations:["1fzhjm9"],color:"gray",line:"dashed",head:"normal"}]},"edp-foundry-central-service":{_type:"deployment",tags:null,links:null,_stage:"layouted",sourcePath:"views/deployment/otc/foundry.c4",description:null,title:"EDP Foundry Central Service",id:"edp-foundry-central-service",autoLayout:{direction:"TB"},hash:"8f8eb235b0e8ff555a22ed61d124ba68e67e5ee2",bounds:{x:0,y:0,width:3894,height:1218},nodes:[{id:"otc-edpFoundry",parent:null,level:0,children:["otc-edpFoundry.cce","otc-edpFoundry.forgejoRunnerInfrastructure","otc-edpFoundry.workflowSetupEDPInfrastructure","otc-edpFoundry.workflowSetupArgoCDInfrastructure"],inEdges:[],outEdges:[],deploymentRef:"otc-edpFoundry",title:"OTC EDP Foundry Central Service clusters",kind:"cloud",technology:"OTC",color:"slate",shape:"rectangle",description:{txt:`OTC environments for the central EDP Foundry services. This is kubernetes clusters and other infrastructure like nodes and vms, and optionally platform servi
A tenant is a folder in Foundry-Config-Forgejo. On merge triggers reconciliation to EDP.
Optionally we will have a WebUI/API/CLI`},tags:[],style:{opacity:15,size:"md"},depth:3,x:8,y:8,width:3878,height:1202,labelBBox:{x:6,y:0,width:280,height:15}},{id:"otc-edpFoundry.cce",parent:"otc-edpFoundry",level:1,children:["otc-edpFoundry.cce.internalServices","otc-edpFoundry.cce.centralObservability"],inEdges:["628xl1"],outEdges:["84397w","1oz2va9"],deploymentRef:"otc-edpFoundry.cce",title:"OTC CCE",kind:"kubernetes",technology:"Kubernetes",color:"red",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"OTC Container Cluster Engine"},tags:[],style:{opacity:15,size:"md"},depth:2,x:58,y:79,width:2360,height:755,labelBBox:{x:6,y:0,width:54,height:15}},{id:"otc-edpFoundry.cce.internalServices",parent:"otc-edpFoundry.cce",level:2,children:["otc-edpFoundry.cce.internalServices.externalSecrets","otc-edpFoundry.cce.internalServices.ingressNginx","otc-edpFoundry.cce.internalServices.argoCD","otc-edpFoundry.cce.internalServices.forgejo","otc-edpFoundry.cce.internalServices.openbao"],inEdges:["628xl1"],outEdges:["84397w","1oz2va9"],deploymentRef:"otc-edpFoundry.cce.internalServices",title:"EDP Foundry Internal Services",kind:"cluster",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:1028,y:150,width:1340,height:634,labelBBox:{x:6,y:0,width:201,height:15}},{id:"otc-edpFoundry.cce.internalServices.externalSecrets",parent:"otc-edpFoundry.cce.internalServices",level:3,children:[],inEdges:[],outEdges:[],kind:"instance",title:"external-secrets",description:{txt:"Provider to access externally stored Kubernetes secrets"},tags:["internal"],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.internalServices.externalSecrets",modelRef:"edp.externalSecrets",navigateTo:"externalSecrets",x:1308,y:222,width:320,height:180,labelBBox:{x:39,y:54,width:242,height:65}},{id:"otc-edpFoundry.cce.centralObservability",parent:"otc-edpFoundry.cce",level:2,children:["otc-edpFoundry.cce.centralObservability.grafana","otc-edpFoundry.cce.centralObservability.prometheus","otc-edpFoundry.cce.centralObservability.loki"],inEdges:[],outEdges:[],deploymentRef:"otc-edpFoundry.cce.centralObservability",title:"EDP Foundry Central Observability",kind:"cluster",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:108,y:150,width:870,height:634,labelBBox:{x:6,y:0,width:232,height:15}},{id:"otc-edpFoundry.forgejoRunnerInfrastructure",parent:"otc-edpFoundry",level:1,children:["otc-edpFoundry.forgejoRunnerInfrastructure.forgejoRunner"],inEdges:[],outEdges:["628xl1"],deploymentRef:"otc-edpFoundry.forgejoRunnerInfrastructure",title:"EDP ForgejoRunner infrastructure",kind:"computeressource",color:"green",shape:"rectangle",modelRef:"forgejoRunner",description:{txt:"Infrastructure for Forgejo runners like pods, vms, lxds, etc"},tags:[],style:{opacity:15,size:"md"},depth:1,x:2468,y:168,width:384,height:266,labelBBox:{x:6,y:0,width:235,height:15}},{id:"otc-edpFoundry.cce.centralObservability.grafana",parent:"otc-edpFoundry.cce.centralObservability",level:3,children:[],inEdges:[],outEdges:["qykxlm","yv49z5"],kind:"instance",title:"Grafana",description:{txt:"Data visualization and monitoring"},tags:[],icon:"tech:grafana",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.centralObservability.grafana",modelRef:"edp.grafana",x:289,y:222,width:345,height:180,labelBBox:{x:47,y:63,width:283,height:47}},{id:"otc-edpFoundry.forgejoRunnerInfrastructure.forgejoRunner",parent:"otc-edpFoundry.forgejoRunnerInfrastructure",level:2,children:[],inEdges:[],outEdges:["628xl1"],kind:"instance",title:"Forgejo Runner",description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.forgejoRunnerInfrastructure.forgejoRunner",modelRef:"forgejoRunner",x:2500,y:222,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:101}},{id:"otc-edpFoundry.cce.cent
offering capabilities like
code version controling
collaboration and ticketing
and security scanning`},technology:"Golang",tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.internalServices.forgejo",modelRef:"edp.forgejo",navigateTo:"forgejo",x:1978,y:554,width:340,height:180,labelBBox:{x:46,y:18,width:278,height:139}},{id:"otc-edpFoundry.cce.internalServices.openbao",parent:"otc-edpFoundry.cce.internalServices",level:3,children:[],inEdges:["u5oqat"],outEdges:[],kind:"instance",title:"OpenBao",description:{txt:"Secure secret storage"},tags:[],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.internalServices.openbao",modelRef:"edp.openbao",x:1528,y:554,width:320,height:180,labelBBox:{x:85,y:63,width:151,height:48}},{id:"otc-edpFoundry.workflowSetupEDPInfrastructure",parent:"otc-edpFoundry",level:1,children:["otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner","otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker","otc-edpFoundry.workflowSetupEDPInfrastructure.edpworkflow"],inEdges:["84397w"],outEdges:[],deploymentRef:"otc-edpFoundry.workflowSetupEDPInfrastructure",title:"EDP infrastructure Workflow",kind:"computeressource",color:"amber",shape:"rectangle",description:{txt:"EDP infrastructure Workflow"},tags:[],style:{opacity:15,size:"md"},depth:1,x:2902,y:150,width:442,height:1010,labelBBox:{x:6,y:0,width:201,height:15}},{id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",parent:"otc-edpFoundry",level:1,children:["otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner","otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunnerWorker","otc-edpFoundry.workflowSetupArgoCDInfrastructure.edpworkflow"],inEdges:["1oz2va9"],outEdges:[],deploymentRef:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",title:"EDP ArgoCD Workflow",kind:"computeressource",color:"amber",shape:"rectangle",description:{txt:"EDP Setup ArgoCD Workflow"},tags:[],style:{opacity:15,size:"md"},depth:1,x:3394,y:150,width:442,height:1010,labelBBox:{x:6,y:0,width:149,height:15}},{id:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner",parent:"otc-edpFoundry.workflowSetupEDPInfrastructure",level:2,children:[],inEdges:["84397w"],outEdges:["1hnil62"],kind:"instance",title:"Forgejo Runner",description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner",modelRef:"forgejoRunner",x:2961,y:222,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:101}},{id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner",parent:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",level:2,children:[],inEdges:["1oz2va9"],outEdges:["1gtxobu"],kind:"instance",title:"Forgejo Runner",description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner",modelRef:"forgejoRunner",x:3466,y:222,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:101}},{id:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker",parent:"otc-edpFoundry.workflowSetupEDPInfrastructure",level:2,children:[],inEdges:["1hnil62"],outEdges:["ekzztw"],kind:"instance",title:"Forgejo Runner Worker",description:{txt:"A worker is a service that runs a job invoked by a runner. A worker typically is a container."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker",modelRef:"forgejoRunnerWorker",x:2954,y:554,width:333,height:180,labelBBox:{x:18,y:45,width:297,height:84}},{id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunnerWorker",parent:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",level:2,children:[],inEdges:["1gtxobu"]
A tenant is a folder in Foundry-Config-Forgejo. On merge triggers reconciliation to EDP.
Optionally we will have a WebUI/API/CLI`},tags:[],style:{opacity:15,size:"md"},depth:3,x:2052,y:8,width:3408,height:1609,labelBBox:{x:6,y:0,width:280,height:15}},{id:"otc-edpFoundry.cce",parent:"otc-edpFoundry",level:1,children:["otc-edpFoundry.cce.internalServices","otc-edpFoundry.cce.centralObservability"],inEdges:["628xl1"],outEdges:["84397w","1oz2va9"],deploymentRef:"otc-edpFoundry.cce",title:"OTC CCE",kind:"kubernetes",technology:"Kubernetes",color:"red",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"OTC Container Cluster Engine"},tags:[],style:{opacity:15,size:"md"},depth:2,x:2594,y:79,width:1890,height:1488,labelBBox:{x:6,y:0,width:54,height:15}},{id:"otc-edpFoundry.cce.internalServices",parent:"otc-edpFoundry.cce",level:2,children:["otc-edpFoundry.cce.internalServices.externalSecrets","otc-edpFoundry.cce.internalServices.ingressNginx","otc-edpFoundry.cce.internalServices.argoCD","otc-edpFoundry.cce.internalServices.forgejo","otc-edpFoundry.cce.internalServices.openbao"],inEdges:["628xl1"],outEdges:["84397w","1oz2va9"],deploymentRef:"otc-edpFoundry.cce.internalServices",title:"EDP Foundry Internal Services",kind:"cluster",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:2644,y:883,width:1790,height:634,labelBBox:{x:6,y:0,width:201,height:15}},{id:"otc-edpFoundry.cce.internalServices.externalSecrets",parent:"otc-edpFoundry.cce.internalServices",level:3,children:[],inEdges:[],outEdges:[],kind:"instance",title:"external-secrets",description:{txt:"Provider to access externally stored Kubernetes secrets"},tags:["internal"],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.internalServices.externalSecrets",modelRef:"edp.externalSecrets",navigateTo:"externalSecrets",x:2694,y:1287,width:320,height:180,labelBBox:{x:39,y:54,width:242,height:66}},{id:"otc-edpFoundry.cce.centralObservability",parent:"otc-edpFoundry.cce",level:2,children:["otc-edpFoundry.cce.centralObservability.grafana","otc-edpFoundry.cce.centralObservability.prometheus","otc-edpFoundry.cce.centralObservability.loki"],inEdges:[],outEdges:[],deploymentRef:"otc-edpFoundry.cce.centralObservability",title:"EDP Foundry Central Observability",kind:"cluster",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:3349,y:150,width:870,height:634,labelBBox:{x:6,y:0,width:232,height:15}},{id:"otc-edpFoundry.forgejoRunnerInfrastructure",parent:"otc-edpFoundry",level:1,children:["otc-edpFoundry.forgejoRunnerInfrastructure.forgejoRunner"],inEdges:[],outEdges:["628xl1"],deploymentRef:"otc-edpFoundry.forgejoRunnerInfrastructure",title:"EDP ForgejoRunner infrastructure",kind:"computeressource",color:"green",shape:"rectangle",modelRef:"forgejoRunner",description:{txt:"Infrastructure for Forgejo runners like pods, vms, lxds, etc"},tags:[],style:{opacity:15,size:"md"},depth:1,x:5026,y:168,width:384,height:266,labelBBox:{x:6,y:0,width:235,height:15}},{id:"otc-edp-per-tenant",parent:null,level:0,children:["otc-edp-per-tenant.forgejoRunnerInfrastructure","otc-edp-per-tenant.cce","otc-edp-per-tenant.cloudServices"],inEdges:["1asm38z","1or831y","ejqwjt"],outEdges:[],deploymentRef:"otc-edp-per-tenant",title:"OTC EDP per tenant cluster",kind:"cloud",technology:"OTC",color:"slate",shape:"rectangle",description:{txt:`OTC environment for EDP. EDP is the environment a customer gets from us.
This is kubernetes clusters and other infrastructure like nodes and vms, and platform services. All is set up by IaC-pipelines in the Foundry.`},tags:[],style:{opacity:15,size:"md"},depth:3,x:8,y:97,width:1994,height:1889,labelBBox:{x:6,y:0,width:181,height:15}},{id:"otc-edp-per-tenant.forgejoRunnerInfrastructure",parent:"otc-edp-per-tenant",level:1,children:["otc-edp-per-tenant.forgejoRunnerInfrastructure.forgejoRunner"],inEdges:[],outEdges:["1dcszi5"],deploymentRef:"otc-edp-per-tenant.forgejoRunnerInfrastructure",title:"EDP ForgejoRunner infrastructure",kind:"computeressource",color:"primary",shape:"rectangle",modelRef:"forgejoRunner",description:{txt:"Infrastructure for Forgejo runners like pods, vms, lxds, etc"},tags:[],style:{opacity:15,size:"md"},depth:1,x:608,y:168,width:384,height:266,labelBBox:{x:6,y:0,width:235,height:15}},{id:"otc-edpFoundry.cce.centralObservability.grafana",parent:"otc-edpFoundry.cce.centralObservability",level:3,children:[],inEdges:[],outEdges:["qykxlm","yv49z5"],kind:"instance",title:"Grafana",description:{txt:"Data visualization and monitoring"},tags:[],icon:"tech:grafana",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.centralObservability.grafana",modelRef:"edp.grafana",x:3530,y:222,width:345,height:180,labelBBox:{x:47,y:63,width:283,height:47}},{id:"otc-edpFoundry.forgejoRunnerInfrastructure.forgejoRunner",parent:"otc-edpFoundry.forgejoRunnerInfrastructure",level:2,children:[],inEdges:[],outEdges:["628xl1"],kind:"instance",title:"Forgejo Runner",description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.forgejoRunnerInfrastructure.forgejoRunner",modelRef:"forgejoRunner",x:5058,y:222,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:101}},{id:"otc-edp-per-tenant.cce",parent:"otc-edp-per-tenant",level:1,children:["otc-edp-per-tenant.cce.edp"],inEdges:["1or831y","ejqwjt","1dcszi5"],outEdges:["8msu1q","120qe5o","ealiax","1trj5u6"],deploymentRef:"otc-edp-per-tenant.cce",title:"OTC CCE",kind:"kubernetes",technology:"Kubernetes",color:"red",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"OTC Container Cluster Engine"},tags:[],style:{opacity:15,size:"md"},depth:2,x:548,y:830,width:1404,height:719,labelBBox:{x:6,y:0,width:54,height:15}},{id:"otc-edp-per-tenant.cce.edp",parent:"otc-edp-per-tenant.cce",level:2,children:["otc-edp-per-tenant.cce.edp.externalSecrets","otc-edp-per-tenant.cce.edp.ingressNginx","otc-edp-per-tenant.cce.edp.argoCD","otc-edp-per-tenant.cce.edp.forgejo"],inEdges:["1or831y","ejqwjt","1dcszi5"],outEdges:["8msu1q","120qe5o","ealiax","1trj5u6"],deploymentRef:"otc-edp-per-tenant.cce.edp",title:"EDP",kind:"cluster",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:580,y:883,width:1340,height:634,labelBBox:{x:6,y:0,width:27,height:15}},{id:"otc-edp-per-tenant.cce.edp.externalSecrets",parent:"otc-edp-per-tenant.cce.edp",level:3,children:[],inEdges:[],outEdges:[],kind:"instance",title:"external-secrets",description:{txt:"Provider to access externally stored Kubernetes secrets"},tags:["internal"],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cce.edp.externalSecrets",modelRef:"edp.externalSecrets",navigateTo:"externalSecrets",x:1550,y:1287,width:320,height:180,labelBBox:{x:39,y:54,width:242,height:66}},{id:"otc-edp-per-tenant.forgejoRunnerInfrastructure.forgejoRunner",parent:"otc-edp-per-tenant.forgejoRunnerInfrastructure",level:2,children:[],inEdges:[],outEdges:["1dcszi5"],kind:"instance",title:"Forgejo Runner",description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edp-per-tenant.forgejoRunnerInfrastructure.forgejoRunner",modelRef:"forgejoRunn
offering capabilities like
code version controling
collaboration and ticketing
and security scanning`},technology:"Golang",tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.internalServices.forgejo",modelRef:"edp.forgejo",navigateTo:"forgejo",x:4044,y:1287,width:340,height:180,labelBBox:{x:46,y:18,width:278,height:139}},{id:"otc-edpFoundry.cce.internalServices.openbao",parent:"otc-edpFoundry.cce.internalServices",level:3,children:[],inEdges:["u5oqat"],outEdges:[],kind:"instance",title:"OpenBao",description:{txt:"Secure secret storage"},tags:[],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.internalServices.openbao",modelRef:"edp.openbao",x:3594,y:1287,width:320,height:180,labelBBox:{x:85,y:63,width:151,height:48}},{id:"otc-edpFoundry.workflowSetupEDPInfrastructure",parent:"otc-edpFoundry",level:1,children:["otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner","otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker","otc-edpFoundry.workflowSetupEDPInfrastructure.edpworkflow"],inEdges:["84397w"],outEdges:["1asm38z","1or831y"],deploymentRef:"otc-edpFoundry.workflowSetupEDPInfrastructure",title:"EDP infrastructure Workflow",kind:"computeressource",color:"amber",shape:"rectangle",description:{txt:"EDP infrastructure Workflow"},tags:[],style:{opacity:15,size:"md"},depth:1,x:4534,y:150,width:442,height:1035,labelBBox:{x:6,y:0,width:201,height:15}},{id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",parent:"otc-edpFoundry",level:1,children:["otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner","otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunnerWorker","otc-edpFoundry.workflowSetupArgoCDInfrastructure.edpworkflow"],inEdges:["1oz2va9"],outEdges:["ejqwjt"],deploymentRef:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",title:"EDP ArgoCD Workflow",kind:"computeressource",color:"amber",shape:"rectangle",description:{txt:"EDP Setup ArgoCD Workflow"},tags:[],style:{opacity:15,size:"md"},depth:1,x:2102,y:150,width:442,height:1035,labelBBox:{x:6,y:0,width:149,height:15}},{id:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner",parent:"otc-edpFoundry.workflowSetupEDPInfrastructure",level:2,children:[],inEdges:["84397w"],outEdges:["1hnil62"],kind:"instance",title:"Forgejo Runner",description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner",modelRef:"forgejoRunner",x:4595,y:222,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:101}},{id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner",parent:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",level:2,children:[],inEdges:["1oz2va9"],outEdges:["1gtxobu"],kind:"instance",title:"Forgejo Runner",description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner",modelRef:"forgejoRunner",x:2163,y:222,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:101}},{id:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker",parent:"otc-edpFoundry.workflowSetupEDPInfrastructure",level:2,children:[],inEdges:["1hnil62"],outEdges:["ekzztw"],kind:"instance",title:"Forgejo Runner Worker",description:{txt:"A worker is a service that runs a job invoked by a runner. A worker typically is a container."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker",modelRef:"forgejoRunnerWorker",x:4588,y:554,width:333,height:180,labelBBox:{x:18,y:45,width:297,height:84}},{id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunnerWorker",parent:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",level:2,ch
offering capabilities like
code version controling
collaboration and ticketing
and security scanning`},technology:"Golang",tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cce.edp.forgejo",modelRef:"edp.forgejo",navigateTo:"forgejo",x:630,y:1287,width:340,height:180,labelBBox:{x:46,y:18,width:278,height:139}},{id:"otc-edp-per-tenant.cloudServices",parent:"otc-edp-per-tenant",level:1,children:["otc-edp-per-tenant.cloudServices.postgres","otc-edp-per-tenant.cloudServices.redis","otc-edp-per-tenant.cloudServices.objectstorage","otc-edp-per-tenant.cloudServices.elasticsearch"],inEdges:["1asm38z","8msu1q","120qe5o","ealiax","1trj5u6"],outEdges:[],deploymentRef:"otc-edp-per-tenant.cloudServices",title:"EDP Cloud Services",kind:"paas",technology:"Cloud Services",color:"primary",shape:"rectangle",description:{txt:"EDP Cloud Services"},tags:[],style:{opacity:15,size:"md"},depth:1,x:58,y:1634,width:1894,height:302,labelBBox:{x:6,y:0,width:127,height:15}},{id:"otc-edp-per-tenant.cloudServices.postgres",parent:"otc-edp-per-tenant.cloudServices",level:2,children:[],inEdges:["8msu1q"],outEdges:[],kind:"instance",title:"PostgreSQL",description:{txt:`PostgreSQL is a powerful, open source object-relational database system.
It has more than 15 years of active development and a proven architecture
that has earned it a strong reputation for reliability, data integrity,
and correctness.`},technology:"PostgreSQL",tags:[],icon:"tech:postgresql",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cloudServices.postgres",modelRef:"postgres",x:1548,y:1706,width:354,height:180,labelBBox:{x:46,y:17,width:292,height:139}},{id:"otc-edp-per-tenant.cloudServices.redis",parent:"otc-edp-per-tenant.cloudServices",level:2,children:[],inEdges:["120qe5o"],outEdges:[],kind:"instance",title:"Redis",description:{txt:"Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker."},technology:"Redis",tags:[],icon:"tech:redis",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cloudServices.redis",modelRef:"redis",x:608,y:1706,width:359,height:180,labelBBox:{x:47,y:26,width:297,height:121}},{id:"otc-edp-per-tenant.cloudServices.objectstorage",parent:"otc-edp-per-tenant.cloudServices",level:2,children:[],inEdges:["ealiax"],outEdges:[],kind:"instance",title:"s3 Object Storage",description:{txt:"s3 Object Storage"},technology:"S3 Object Storage",tags:[],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cloudServices.objectstorage",modelRef:"objectstorage",x:1098,y:1706,width:320,height:180,labelBBox:{x:78,y:53,width:164,height:67}},{id:"otc-edp-per-tenant.cloudServices.elasticsearch",parent:"otc-edp-per-tenant.cloudServices",level:2,children:[],inEdges:["1trj5u6"],outEdges:[],kind:"instance",title:"Elasticsearch",description:{txt:`Elasticsearch is a distributed, RESTful search and analytics engine capable of
addressing a growing number of use cases. It centrally stores your data so you can
discover the expected and uncover the unexpected.`},technology:"Elasticsearch",tags:[],icon:"tech:elasticsearch",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cloudServices.elasticsearch",modelRef:"elasticsearch",x:108,y:1706,width:370,height:180,labelBBox:{x:46,y:17,width:308,height:139}}],edges:[{id:"17kru01",source:"otc-edpFoundry.cce.internalServices.ingressNginx",target:"otc-edpFoundry.cce.internalServices.argoCD",label:"https",dotpos:"e,3463.8,1312.3 4054.2,1100.1 3915,1148.1 3708,1220.4 3529,1287.4 3511,1294.1 3492.2,1301.3 3473.6,1308.5",points:[[4054,1100],[3915,1148],[3708,1220],[3529,1287],[3511,1294],[3492,1301],[3474,1309]],labelBBox:{x:3755,y:1199,width:34,height:18},parent:"otc-edpFoundry.cce.internalServices",relations:["1yssos5"],color:"gray",line:"dashed",head:"normal"},{id:"170pc3l",source:"otc-edpFoundry.cce.internalServices.ingressNginx",target:"otc-edpFoundry.cce.internalServices.forgejo",label:"https",dotpos:"e,4214,1287.5 4214,1134.2 4214,1178.3 4214,1231.6 4214,1277",points:[[4214,1134],[4214,1178],[4214,1232],[4214,1277]],labelBBox:{x:4215,y:1199,width:34,height:18},parent:"otc-edpFoundry.cce.internalServices",relations:["123efwn"],color:"gray",line:"dashed",head:"normal"},{id:"u5oqat",source:"otc-edpFoundry.cce.internalServices.ingressNginx",target:"otc-edpFoundry.cce.internalServices.openbao",label:"https",dotpos:"e,3877.5,1287.6 4090.4,1134.5 4027.1,1180 3950.1,1235.4 3885.6,1281.7",points:[[4090,1134],[4027,1180],[3950,1235],[3886,1282]],labelBBox:{x:3999,y:1199,width:34,height:18},parent:"otc-edpFoundry.cce.internalServices",relations:["1p30hav"],color:"gray",line:"dashed",head:"normal"},{id:"qykxlm",source:"otc-edpFoundry.cce.centralObservability.grafana",target:"otc-edpFoundry.cce.centralObservability.prometheus",label:"get metrics and alerts",dotpos:"e,3597.7,554.51 3664.4,401.25 3645.1,445.56 3621.7,499.31 3601.9,544.91",points:[[3664,401],[3645,446],[3622,499],[3602,545]],labelBBox:{x:3636,y:466,width:138,height:18},parent:"otc-edpFoundry.cce.centralObservability",relations:["13uvtiq"],color:"gray",line:"dashed",head:"normal"},{id:"yv49z5",source:"otc-edpFoundry.cce.centralObservability.grafana",target:"otc-edpFoundry.cce.centralObservability.loki",label:"get logs",dotpos:"e,3926.8,554.51 3785,401.25 3826.6,446.21 3877.2,500.89 3919.7,546.91",points:[[3785,401],[3827,446],[3877,501],[3920,547]],labelBBox:{x:3866,y:466,width:53,height:18},parent:"otc-edpFoundry.cce.centralObservability",relations:["1n1utzc"],color:"gray",line:"dashed",head:"normal"},{id:"84397w",source:"otc-edpFoundry.cce.internalServices.forgejo",target:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner",label:"invokes",dotpos:"e,4871.9,401.35 4384,1358.7 4589.5,1333.3 4917.1,1279 4991,1184.6 5006.1,1165.4 5006.3,601.48 4987,554.4 4964.1,498.68 4921.8,448.48 4879.5,408.45",points:[[4384,1359],[4590,1333],[4917,1279],[4991,1185],[5006,1165],[5006,601],[4987,554],[4964,499],[4922,448],[4880,408]],labelBBox:{x:5002,y:799,width:51,height:18},parent:"otc-edpFoundry",relations:["dola40"],color:"gray",line:"dashed",head:"normal"},{id:"1hnil62",source:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner",target:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker",label:"runs",dotpos:"e,4755,554.51 4755,401.25 4755,445.28 4755,498.64 4755,544.05",points:[[4755,401],[4755,445],[4755,499],[4755,544]],labelBBox:{x:4756,y:466,width:31,height:18},parent:"otc-edpFoundry.workflowSetupEDPInfrastructure",relations:["7kqly3"],color:"gray",line:"dashed",head:"normal"},{id:"ekzztw",source:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker",target:"otc-edpFoundry.workflowSetupEDPInfrastructure.edpworkflow",label:"executes",dotpos:"e,4755,954.66 4755,734.27 4755,796.6 4755,879.99 4755,944.48",points:[[4755,734],[4755,797],[4755,880],[4755,944]],labelBBox:{x:4756,y:799,width:60,height:18},parent:"otc-edpFoundry.workflowSetupEDPInfrastructure",relations:["12hf1w4"],color:"gray",line:"dashed",head:"normal"},{id:"1oz2va9",source:"otc-edpFoundry.c
offering capabilities like
code version controling
collaboration and ticketing
and security scanning`},tags:[],technology:"Golang",kind:"container",isCustomized:!0,navigateTo:"forgejo",x:585,y:69,width:340,height:180,labelBBox:{x:45,y:17,width:279,height:139}}],edges:[{id:"step-01",source:"localbox.git",target:"edp.forgejogit",label:"git push",dotpos:"e,594.97,449 359.74,449 430.11,449 512.98,449 584.5,449",points:[[360,449],[430,449],[513,449],[585,449]],labelBBox:{x:429,y:417,width:75,height:19},parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@0"},{id:"step-02",source:"edp.forgejogit",target:"forgejoRunner",label:"on push",dotpos:"e,1243.2,909.08 895.71,538.9 1008.4,612.21 1151.2,707.77 1171.7,734 1218.9,794.54 1183.7,836.08 1231.7,896 1233.2,897.83 1234.7,899.63 1236.2,901.41",points:[[896,539],[1008,612],[1151,708],[1172,734],[1219,795],[1184,836],[1232,896],[1233,898],[1235,900],[1236,901]],labelBBox:{x:1051,y:582,width:76,height:19},parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@1"},{id:"step-03",source:"forgejoRunner",target:"edp.imageregistry",label:"pushes new image",dotpos:"e,823.44,828.86 1231.8,1011.9 1158.8,1011.9 1072.7,1003.2 1001.2,971.8 934.18,942.34 874.24,886.42 830.35,836.77",points:[[1232,1012],[1159,1012],[1073,1003],[1001,972],[934,942],[874,886],[830,837]],labelBBox:{x:1018,y:940,width:143,height:19},parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@2"},{id:"step-04",source:"forgejoRunner",target:"edp.forgejogit",label:"pushes new appspec",dotpos:"s,892.11,538.97 899.79,546.08 915.25,560.79 929.55,576.84 941.18,594 994.62,672.87 940.47,726.37 1001.2,799.8 1033.6,839.02 1138.8,891.76 1231.7,933.12",points:[[900,546],[915,561],[930,577],[941,594],[995,673],[940,726],[1001,800],[1034,839],[1139,892],[1232,933]],labelBBox:{x:1010,y:768,width:158,height:19},dir:"back",parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@3"},{id:"step-05",source:"edp.forgejogit",target:"edp.argoCD",label:"triggers deployment",dotpos:"e,1231.9,550.99 914.25,482.97 1007.9,503.03 1126.5,528.41 1221.9,548.84",points:[[914,483],[1008,503],[1126,528],[1222,549]],labelBBox:{x:1015,y:473,width:148,height:19},parent:"edp",relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@4"},{id:"step-06",source:"edp.argoCD",target:"cloud",label:"deploys application",dotpos:"e,1894.7,1063.3 1486.9,674.69 1596,778.69 1775.3,949.49 1887.4,1056.4",points:[[1487,675],[1596,779],[1775,949],[1887,1056]],labelBBox:{x:1621,y:769,width:145,height:19},parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@5"},{id:"step-07",source:"cloud",target:"edp.imageregistry",label:"pulls image",dotpos:"s,812.1,828.53 817.94,836.93 897.44,950.49 1047,1129 1231.7,1182.8 1431.9,1241.1 1674.4,1215.8 1830.1,1188.1",points:[[818,837],[897,950],[1047,1129],[1232,1183],[1432,1241],[1674,1216],[1830,1188]],labelBBox:{x:1346,y:1151,width:97,height:19},dir:"back",parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@6"}]},edpbuilderworkflow:{_type:"element",tags:null,links:null,viewOf:"edfbuilder",_stage:"layouted",sourcePath:"views/edp/edfbuilder.c4",description:{txt:"Describes the process how to create an EDP instance"},title:"edfbuilder",id:"edpbuilderworkflow",autoLayout:{direction:"LR",nodeSep:110,rankSep:120},hash:"40921acf4f52bd8d6d2ac3a0d1810b3b7bc13b2a",bounds:{x:0,y:0,width:320,height:180},nodes:[{id:"edfbuilder",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"edfbuilder",modelRef:"edfbuilder",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"md"},description:{txt:"EDP Foundry Builder"},tags:[],technology:"Golang",kind:"component",x:0,y:0,width:320,height:180,labelBBox:{x:74,y:53,width:203,height:67}}],edges:[]},edp:{_type:"element",tags:null,links:null,viewOf:"edp",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"Context view",id:"edp",autoLayout:{direction:"TB"},hash:"28d4204eb300a4296f82769be0ee6d6ba8d0882b",bounds:{x:0,y:0,wi
offering capabilities like
code version controling
collaboration and ticketing
and security scanning`},tags:[],technology:"Golang",kind:"container",navigateTo:"forgejo",x:1830,y:392,width:340,height:180,labelBBox:{x:46,y:17,width:278,height:139}},{id:"edp.imageregistry",parent:"edp",level:1,children:[],inEdges:["1nv0w41"],outEdges:[],title:"Forgejo OCI Image Registry",modelRef:"edp.imageregistry",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:25,size:"md"},description:{txt:"Container Image Registry"},tags:[],technology:"Golang",kind:"component",x:2280,y:392,width:373,height:180,labelBBox:{x:47,y:53,width:311,height:67}},{id:"edp.grafana",parent:"edp",level:1,children:[],inEdges:["3nxrq7"],outEdges:["1tfxhhz","1adt45o"],title:"Grafana",modelRef:"edp.grafana",shape:"rectangle",color:"primary",icon:"tech:grafana",style:{opacity:25,size:"md"},description:{txt:"Data visualization and monitoring"},tags:[],kind:"container",x:2763,y:392,width:345,height:180,labelBBox:{x:47,y:63,width:283,height:48}},{id:"edp.keycloak",parent:"edp",level:1,children:[],inEdges:["bfgapq"],outEdges:[],title:"Keycloak",modelRef:"edp.keycloak",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"Single Sign On for all EDP products"},tags:[],kind:"container",navigateTo:"keycloak",x:3219,y:392,width:320,height:180,labelBBox:{x:39,y:63,width:242,height:48}},{id:"edp.forgejogit",parent:"edp",level:1,children:[],inEdges:["1agven9","f6xyb4"],outEdges:[],title:"ForgejoGit",modelRef:"edp.forgejogit",shape:"rectangle",color:"primary",icon:"tech:git",style:{opacity:25,size:"md"},tags:[],kind:"component",x:4079,y:715,width:320,height:180,labelBBox:{x:97,y:74,width:156,height:24}},{id:"edp.loki",parent:"edp",level:1,children:[],inEdges:["1tfxhhz"],outEdges:[],title:"Loki",modelRef:"edp.loki",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"Log aggregation system"},tags:[],kind:"container",x:2561,y:715,width:320,height:180,labelBBox:{x:78,y:63,width:164,height:47}},{id:"edp.prometheus",parent:"edp",level:1,children:[],inEdges:["1adt45o"],outEdges:[],title:"Prometheus",modelRef:"edp.prometheus",shape:"rectangle",color:"primary",icon:"tech:prometheus",style:{opacity:25,size:"md"},description:{txt:"Monitoring and alerting toolkit"},tags:[],kind:"container",x:2991,y:715,width:320,height:180,labelBBox:{x:46,y:63,width:258,height:47}},{id:"edp.mailhog",parent:"edp",level:1,children:[],inEdges:[],outEdges:[],title:"Mailhog",modelRef:"edp.mailhog",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"Web and API based SMTP testing"},tags:[],kind:"container",navigateTo:"mailhog",x:890,y:69,width:320,height:180,labelBBox:{x:44,y:63,width:232,height:48}},{id:"edp.minio",parent:"edp",level:1,children:[],inEdges:[],outEdges:[],title:"Minio",modelRef:"edp.minio",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"S3 compatible blob storage"},tags:[],kind:"container",navigateTo:"minio",x:1320,y:69,width:320,height:180,labelBBox:{x:67,y:63,width:186,height:48}},{id:"edp.monitoring",parent:"edp",level:1,children:[],inEdges:[],outEdges:[],title:"Monitoring",modelRef:"edp.monitoring",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"Observability system to monitor deployed components"},tags:[],kind:"container",navigateTo:"monitoring",x:1860,y:69,width:320,height:180,labelBBox:{x:21,y:54,width:278,height:66}},{id:"edp.openbao",parent:"edp",level:1,children:[],inEdges:[],outEdges:[],title:"OpenBao",modelRef:"edp.openbao",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"Secure secret storage"},tags:[],kind:"container",x:430,y:392,width:320,height:180,labelBBox:{x:85,y:63,width:151,height:48}},{id:"edp.testApp",parent:"edp",level:1,children:[],inEdges:[],outEdges:[],title:"Fibonacci",modelRef:"edp.testApp",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"Testapp to validate deployments"},tags:[],kind:"container",navigateTo:"testapp",x:860,y:392,width:320,height:180,labelBBox:{x:50,y:63,width:220,height:48}},{id:"edp.application",parent:"ed
offering capabilities like
code version controling
collaboration and ticketing
and security scanning`},tags:[],technology:"Golang",kind:"container",depth:1,x:8,y:239,width:830,height:281,labelBBox:{x:6,y:0,width:58,height:15}},{id:"edp.forgejo.forgejocollaboration",parent:"edp.forgejo",level:1,children:[],inEdges:[],outEdges:[],title:"Collaboration",modelRef:"edp.forgejo.forgejocollaboration",shape:"rectangle",color:"primary",icon:"tech:github",style:{opacity:15,size:"md"},tags:[],kind:"component",x:48,y:300,width:320,height:180,labelBBox:{x:85,y:74,width:180,height:24}},{id:"edp.forgejo.forgejoproject",parent:"edp.forgejo",level:1,children:[],inEdges:[],outEdges:[],title:"Project Mgmt",modelRef:"edp.forgejo.forgejoproject",shape:"rectangle",color:"primary",icon:"tech:github",style:{opacity:15,size:"md"},tags:[],kind:"component",x:478,y:300,width:320,height:180,labelBBox:{x:85,y:74,width:180,height:24}},{id:"edp.ingressNginx",parent:null,level:0,children:[],inEdges:[],outEdges:["1dgzzfb"],title:"Ingress",modelRef:"edp.ingressNginx",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],kind:"container",navigateTo:"ingressNginx",x:48,y:0,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:66}}],edges:[{id:"1dgzzfb",source:"edp.ingressNginx",target:"edp.forgejo",label:"https",dotpos:"e,208,238.8 208,179.6 208,195.09 208,211.63 208,228.36",points:[[208,180],[208,195],[208,212],[208,228]],labelBBox:{x:173,y:186,width:34,height:18},parent:null,relations:["123efwn"],color:"gray",line:"dashed",head:"normal"}]},crossplane:{_type:"element",tags:null,links:null,viewOf:"edp.crossplane",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"Crossplane",id:"crossplane",autoLayout:{direction:"TB"},hash:"21cafdc6d03bbe02437c3a01524d368cfd652a88",bounds:{x:0,y:0,width:1276,height:597},nodes:[{id:"edp.crossplane",parent:null,level:0,children:["edp.crossplane.crossplane","edp.crossplane.crossplaneFunction","edp.crossplane.crossplaneRbacManager","edp.crossplane.providerArgoCD","edp.crossplane.providerKind","edp.crossplane.providerShell"],inEdges:[],outEdges:[],title:"Crossplane",modelRef:"edp.crossplane",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Declarative management of ressources"},tags:["internal"],kind:"container",depth:1,x:8,y:8,width:1260,height:581,labelBBox:{x:6,y:0,width:80,height:15}},{id:"edp.crossplane.crossplane",parent:"edp.crossplane",level:1,children:[],inEdges:[],outEdges:[],title:"Crossplane",modelRef:"edp.crossplane.crossplane",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:48,y:69,width:320,height:180,labelBBox:{x:107,y:74,width:105,height:24}},{id:"edp.crossplane.crossplaneFunction",parent:"edp.crossplane",level:1,children:[],inEdges:[],outEdges:[],title:"Function Patch and Transform",modelRef:"edp.crossplane.crossplaneFunction",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:478,y:69,width:320,height:180,labelBBox:{x:23,y:74,width:273,height:24}},{id:"edp.crossplane.crossplaneRbacManager",parent:"edp.crossplane",level:1,children:[],inEdges:[],outEdges:[],title:"RBAC Manager",modelRef:"edp.crossplane.crossplaneRbacManager",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:908,y:69,width:320,height:180,labelBBox:{x:88,y:74,width:144,height:24}},{id:"edp.crossplane.providerArgoCD",parent:"edp.crossplane",level:1,children:[],inEdges:[],outEdges:[],title:"ArgoCD Provider",modelRef:"edp.crossplane.providerArgoCD",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:48,y:369,width:320,height:180,labelBBox:{x:82,y:74,width:155,height:24}},{id:"edp.crossplane.providerKind",parent:"edp.crossplane",level:1,children:[],inEdges:[],outEdges:[],title:"Kind Provider",modelRef:"edp.crossplane.providerKind",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:478,y:369,width:320,height:180,labelBBox:{x:98,y:74,width:124,height:24}},{id:"edp.crossplane.providerShe
offering capabilities like
code version controling
collaboration and ticketing
and security scanning`},tags:[],technology:"Golang",kind:"container",navigateTo:"forgejo",x:860,y:384,width:340,height:180,labelBBox:{x:46,y:17,width:278,height:139}},{id:"edp.keycloak",parent:null,level:0,children:[],inEdges:["dh7ut5"],outEdges:[],title:"Keycloak",modelRef:"edp.keycloak",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Single Sign On for all EDP products"},tags:[],kind:"container",navigateTo:"keycloak",x:1310,y:384,width:320,height:180,labelBBox:{x:39,y:63,width:242,height:48}},{id:"edp.mailhog",parent:null,level:0,children:[],inEdges:["1bv0wod"],outEdges:[],title:"Mailhog",modelRef:"edp.mailhog",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Web and API based SMTP testing"},tags:[],kind:"container",navigateTo:"mailhog",x:1740,y:384,width:320,height:180,labelBBox:{x:44,y:63,width:232,height:48}},{id:"edp.minio",parent:null,level:0,children:[],inEdges:["68hu20"],outEdges:[],title:"Minio",modelRef:"edp.minio",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"S3 compatible blob storage"},tags:[],kind:"container",navigateTo:"minio",x:2170,y:384,width:320,height:180,labelBBox:{x:67,y:63,width:186,height:48}},{id:"edp.monitoring",parent:null,level:0,children:[],inEdges:["nx2xew"],outEdges:[],title:"Monitoring",modelRef:"edp.monitoring",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Observability system to monitor deployed components"},tags:[],kind:"container",navigateTo:"monitoring",x:2600,y:384,width:320,height:180,labelBBox:{x:21,y:54,width:278,height:66}},{id:"edp.openbao",parent:null,level:0,children:[],inEdges:["momp7g"],outEdges:[],title:"OpenBao",modelRef:"edp.openbao",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Secure secret storage"},tags:[],kind:"container",x:3030,y:384,width:320,height:180,labelBBox:{x:85,y:63,width:151,height:48}},{id:"edp.testApp",parent:null,level:0,children:[],inEdges:["8cmkj7"],outEdges:[],title:"Fibonacci",modelRef:"edp.testApp",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Testapp to validate deployments"},tags:[],kind:"container",navigateTo:"testapp",x:3460,y:384,width:320,height:180,labelBBox:{x:50,y:63,width:220,height:48}}],edges:[{id:"1poylyw",source:"edp.ingressNginx.ingressNginx",target:"edp.argoCD",label:"https",dotpos:"e,319.96,401.87 1740.1,163.73 1459.5,186.77 861.79,248.41 375.02,384 360.03,388.17 344.69,393.11 329.44,398.47",points:[[1740,164],[1459,187],[862,248],[375,384],[360,388],[345,393],[329,398]],labelBBox:{x:704,y:301,width:34,height:18},parent:null,relations:["1yssos5"],color:"gray",line:"dashed",head:"normal"},{id:"llqgvs",source:"edp.ingressNginx.ingressNginx",target:"edp.ui",label:"https",dotpos:"e,749.97,403.03 1740.4,176.52 1525.1,211.47 1131,282.97 805.02,384 790.08,388.63 774.74,393.9 759.47,399.5",points:[[1740,177],[1525,211],[1131,283],[805,384],[790,389],[775,394],[759,400]],labelBBox:{x:1102,y:301,width:34,height:18},parent:null,relations:["v8c8aq"],color:"gray",line:"dashed",head:"normal"},{id:"75xltk",source:"edp.ingressNginx.ingressNginx",target:"edp.forgejo",label:"https",dotpos:"e,1200.3,405 1740.1,208.08 1609.3,254.18 1419.6,321.88 1255,384 1240.3,389.56 1225.1,395.4 1209.8,401.31",points:[[1740,208],[1609,254],[1420,322],[1255,384],[1240,390],[1225,395],[1210,401]],labelBBox:{x:1468,y:301,width:34,height:18},parent:null,relations:["123efwn"],color:"gray",line:"dashed",head:"normal"},{id:"dh7ut5",source:"edp.ingressNginx.ingressNginx",target:"edp.keycloak",label:"https",dotpos:"e,1589.1,384.17 1780.8,241.13 1723.7,283.73 1655.3,334.77 1597.2,378.11",points:[[1781,241],[1724,284],[1655,335],[1597,378]],labelBBox:{x:1699,y:301,width:34,height:18},parent:null,relations:["h3rut2"],color:"gray",line:"dashed",head:"normal"},{id:"1bv0wod",source:"edp.ingressNginx.ingressNginx",target:"edp.mailhog",label:"https",dotpos:"e,1900,384.17 1900,241.13 1900,282.33 1900,331.44 1900,373.83",points:[[1900,241],[1900,282],[1900,331],[1900,374]],labelBBo
addressing a growing number of use cases. It centrally stores your data so you can
discover the expected and uncover the unexpected.`},tags:[],technology:"Elasticsearch",kind:"container",x:1652,y:280,width:370,height:180,labelBBox:{x:46,y:17,width:308,height:139}},{id:"objectstorage",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"s3 Object Storage",modelRef:"objectstorage",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"s3 Object Storage"},tags:[],technology:"S3 Object Storage",kind:"container",x:9,y:0,width:320,height:180,labelBBox:{x:78,y:53,width:164,height:67}},{id:"postgres",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"PostgreSQL",modelRef:"postgres",shape:"rectangle",color:"primary",icon:"tech:postgresql",style:{opacity:20,size:"md"},description:{txt:`PostgreSQL is a powerful, open source object-relational database system.
It has more than 15 years of active development and a proven architecture
that has earned it a strong reputation for reliability, data integrity,
and correctness.`},tags:[],technology:"PostgreSQL",kind:"container",x:472,y:0,width:354,height:180,labelBBox:{x:46,y:17,width:292,height:139}},{id:"redis",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Redis",modelRef:"redis",shape:"rectangle",color:"primary",icon:"tech:redis",style:{opacity:20,size:"md"},description:{txt:"Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker."},tags:[],technology:"Redis",kind:"container",x:1002,y:0,width:359,height:180,labelBBox:{x:46,y:26,width:297,height:121}},{id:"platformdeveloper",parent:null,level:0,children:[],inEdges:[],outEdges:["mox1r9","x7to90"],title:"Platform Developer",modelRef:"platformdeveloper",shape:"person",color:"gray",style:{opacity:15,size:"md"},description:{txt:"The EDP engineer"},tags:[],kind:"actor",x:9,y:1299,width:320,height:180,labelBBox:{x:73,y:63,width:175,height:48}},{id:"customers",parent:null,level:0,children:[],inEdges:[],outEdges:["8fboq4"],title:"End Customers",modelRef:"customers",shape:"person",color:"amber",style:{opacity:15,size:"md"},description:{txt:"Consumers of your Application"},tags:[],kind:"actor",x:2273,y:405,width:320,height:180,labelBBox:{x:55,y:63,width:208,height:48}},{id:"forgejoRunner",parent:null,level:0,children:[],inEdges:["5mpoyf"],outEdges:["1lyfj4n"],title:"Forgejo Runner",modelRef:"forgejoRunner",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],kind:"component",x:2273,y:1188,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:102}},{id:"edfbuilder",parent:null,level:0,children:[],inEdges:["mox1r9"],outEdges:["lnq8uj"],title:"edfbuilder",modelRef:"edfbuilder",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"md"},description:{txt:"EDP Foundry Builder"},tags:[],technology:"Golang",kind:"component",navigateTo:"edpbuilderworkflow",x:489,y:1179,width:320,height:180,labelBBox:{x:74,y:53,width:203,height:67}},{id:"edf",parent:null,level:0,children:[],inEdges:["lnq8uj","x7to90"],outEdges:["109bf6k"],title:"EDF",modelRef:"edf",shape:"rectangle",color:"primary",icon:"tech:kubernetes",style:{opacity:15,size:"md"},description:{txt:"EDP Foundry is a platform for building and deploying EDPs tenantwise."},tags:[],technology:"Kubernetes",kind:"system",x:1021,y:1286,width:321,height:180,labelBBox:{x:46,y:35,width:259,height:103}},{id:"@gr1",parent:null,kind:"@group",title:"developer-scope",color:"green",shape:"rectangle",children:["developer","otherProductLifecycleRoles","@gr2","@gr3"],inEdges:["1lyfj4n","109bf6k"],outEdges:["1tbee2v","5mpoyf","17brhnu","35ru8e"],level:0,depth:2,tags:[],style:{border:"none",opacity:20},x:954,y:500,width:1129,height:746,labelBBox:{x:6,y:0,width:114,height:15}},{id:"developer",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["zjg544","1okgiq5"],title:"Developer",modelRef:"developer",shape:"person",color:"green",style:{opacity:15,size:"md"},description:{txt:"The regular user of the platform"},tags:[],kind:"actor",x:1022,y:664,width:320,height:180,labelBBox:{x:52,y:63,width:214,height:48}},{id:"otherProductLifecycleRoles",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["1wupl5x"],title:"Reviewer, Tester, Auditors, Operators",modelRef:"otherProductLifecycleRoles",shape:"person",color:"green",style:{opacity:15,size:"md"},description:{txt:"Coworking roles in the outer loop"},tags:[],kind:"actor",x:994,y:994,width:375,height:180,labelBBox:{x:18,y:63,width:340,height:48}},{id:"@gr2",parent:"@gr1",kind:"@group",title:"Devops inner-loop",color:"gray",shape:"rectangle",children:["localbox"],inEdges:["zjg544","6szgsj"],outEdges:["1tbee2v","1uo6k6b"],level:0,depth:1,tags:[],style:{border:"none",opacity:30},x:1645,y:561,width:384,height:265,labelBBox:{x:6,y:0,width:122,height:15}},{id:"localbox",parent:"@gr2",level:1,children:[],inEdges:["zjg544","6szgsj"],outEdges:["1tbee2v","1uo6k6b"],title:"localbox",modelRef:"localbox",shap
addressing a growing number of use cases. It centrally stores your data so you can
discover the expected and uncover the unexpected.`},tags:[],technology:"Elasticsearch",kind:"container",x:2166,y:390,width:520,height:290,labelBBox:{x:71,y:46,width:407,height:189}},{id:"objectstorage",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"s3 Object Storage",modelRef:"objectstorage",shape:"rectangle",color:"primary",style:{opacity:20,size:"xl"},description:{txt:"s3 Object Storage"},tags:[],technology:"S3 Object Storage",kind:"container",x:0,y:0,width:520,height:290,labelBBox:{x:146,y:96,width:228,height:89}},{id:"postgres",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"PostgreSQL",modelRef:"postgres",shape:"rectangle",color:"primary",icon:"tech:postgresql",style:{opacity:20,size:"xl"},description:{txt:`PostgreSQL is a powerful, open source object-relational database system.
It has more than 15 years of active development and a proven architecture
that has earned it a strong reputation for reliability, data integrity,
and correctness.`},tags:[],technology:"PostgreSQL",kind:"container",x:653,y:0,width:520,height:290,labelBBox:{x:83,y:46,width:384,height:189}},{id:"redis",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Redis",modelRef:"redis",shape:"rectangle",color:"primary",icon:"tech:redis",style:{opacity:20,size:"xl"},description:{txt:"Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker."},tags:[],technology:"Redis",kind:"container",x:1352,y:0,width:520,height:290,labelBBox:{x:79,y:58,width:391,height:165}},{id:"platformdeveloper",parent:null,level:0,children:[],inEdges:[],outEdges:["mox1r9","x7to90"],title:"Platform Developer",modelRef:"platformdeveloper",shape:"person",color:"gray",style:{opacity:15,size:"xl"},description:{txt:"The EDP engineer"},tags:[],kind:"actor",x:0,y:1782,width:520,height:290,labelBBox:{x:138,y:109,width:244,height:63}},{id:"customers",parent:null,level:0,children:[],inEdges:[],outEdges:["8fboq4"],title:"End Customers",modelRef:"customers",shape:"person",color:"amber",style:{opacity:15,size:"xl"},description:{txt:"Consumers of your Application"},tags:[],kind:"actor",x:2948,y:460,width:520,height:290,labelBBox:{x:115,y:109,width:290,height:63}},{id:"forgejoRunner",parent:null,level:0,children:[],inEdges:["5mpoyf"],outEdges:["1lyfj4n"],title:"Forgejo Runner",modelRef:"forgejoRunner",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],kind:"component",x:2948,y:1463,width:520,height:290,labelBBox:{x:69,y:71,width:382,height:139}},{id:"edfbuilder",parent:null,level:0,children:[],inEdges:["mox1r9"],outEdges:["lnq8uj"],title:"edfbuilder",modelRef:"edfbuilder",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"xl"},description:{txt:"EDP Foundry Builder"},tags:[],technology:"Golang",kind:"component",navigateTo:"edpbuilderworkflow",x:653,y:1592,width:520,height:290,labelBBox:{x:146,y:96,width:259,height:89}},{id:"edf",parent:null,level:0,children:[],inEdges:["lnq8uj","x7to90"],outEdges:["109bf6k"],title:"EDF",modelRef:"edf",shape:"rectangle",color:"primary",icon:"tech:kubernetes",style:{opacity:15,size:"xl"},description:{txt:"EDP Foundry is a platform for building and deploying EDPs tenantwise."},tags:[],technology:"Kubernetes",kind:"system",x:1352,y:1726,width:520,height:290,labelBBox:{x:106,y:71,width:338,height:139}},{id:"@gr1",parent:null,kind:"@group",title:"developer-scope",color:"green",shape:"rectangle",children:["developer","otherProductLifecycleRoles","@gr2","@gr3"],inEdges:["1lyfj4n","109bf6k"],outEdges:["1tbee2v","5mpoyf","17brhnu","35ru8e"],level:0,depth:2,tags:[],style:{border:"none",opacity:20},x:1301,y:720,width:1457,height:966,labelBBox:{x:6,y:0,width:114,height:15}},{id:"developer",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["zjg544","1okgiq5"],title:"Developer",modelRef:"developer",shape:"person",color:"green",style:{opacity:15,size:"xl"},description:{txt:"The regular user of the platform"},tags:[],kind:"actor",x:1352,y:884,width:520,height:290,labelBBox:{x:111,y:109,width:298,height:63}},{id:"otherProductLifecycleRoles",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["1wupl5x"],title:"Reviewer, Tester, Auditors, Operators",modelRef:"otherProductLifecycleRoles",shape:"person",color:"green",style:{opacity:15,size:"xl"},description:{txt:"Coworking roles in the outer loop"},tags:[],kind:"actor",x:1341,y:1324,width:542,height:290,labelBBox:{x:34,y:109,width:474,height:63}},{id:"@gr2",parent:"@gr1",kind:"@group",title:"Devops inner-loop",color:"gray",shape:"rectangle",children:["localbox"],inEdges:["zjg544","6szgsj"],outEdges:["1tbee2v","1uo6k6b"],level:0,depth:1,tags:[],style:{border:"none",opacity:30},x:2134,y:781,width:584,height:375,labelBBox:{x:6,y:0,width:122,height:15}},{id:"localbox",parent:"@gr2",level:1,children:[],inEdges:["zjg544","6szgsj"],outEdges:["1tbee2v","1uo6k6b"],title:"localbox",modelRef:"lo
This is kubernetes clusters and other infrastructure like nodes and vms, and platform services. All is set up by IaC-pipelines in the Foundry.`},technology:"OTC",title:"OTC EDP per tenant cluster",id:"otc-edp-per-tenant"},"otc-faas":{style:{},kind:"cloud",description:{txt:"OTC environments for Prototype faaS."},technology:"OTC",title:"OTC prototype FaaS",id:"otc-faas"},"otc-edpFoundry":{style:{},kind:"cloud",description:{txt:`OTC environments for the central EDP Foundry services. This is kubernetes clusters and other infrastructure like nodes and vms, and optionally platform services. All is set up by IaC terraform and edpbuilder.
A tenant is a folder in Foundry-Config-Forgejo. On merge triggers reconciliation to EDP.
Optionally we will have a WebUI/API/CLI`},technology:"OTC",title:"OTC EDP Foundry Central Service clusters",id:"otc-edpFoundry"},"local.backstage":{style:{},kind:"namespace",title:"backstage",id:"local.backstage"},"local.argocd":{style:{},kind:"namespace",title:"argocd",id:"local.argocd"},"local.gitea":{style:{},kind:"namespace",title:"gitea",id:"local.gitea"},"local.keycloak":{style:{},kind:"namespace",title:"keycloak",id:"local.keycloak"},"local.crossplane":{style:{},kind:"namespace",title:"crossplane-system",id:"local.crossplane"},"local.externalSecrets":{style:{},kind:"namespace",title:"external-secrets",id:"local.externalSecrets"},"local.velero":{style:{},kind:"namespace",title:"velero",id:"local.velero"},"local.minio":{style:{},kind:"namespace",title:"minio-backup",id:"local.minio"},"local.monitoring":{style:{},kind:"namespace",title:"monitoring",id:"local.monitoring"},"local.ingressNginx":{style:{},kind:"namespace",title:"ingress-nginx",id:"local.ingressNginx"},"local.openbao":{style:{},kind:"namespace",title:"openbao",id:"local.openbao"},"local.fibonacci":{style:{},kind:"namespace",title:"fibonacci-app",id:"local.fibonacci"},"local.mailhog":{style:{},kind:"namespace",title:"mailhog",id:"local.mailhog"},"local.spark":{style:{},kind:"namespace",title:"spark",id:"local.spark"},"otc-edp-per-tenant.cce":{style:{icon:"tech:kubernetes"},kind:"kubernetes",description:{txt:"OTC Container Cluster Engine"},technology:"Kubernetes",title:"OTC CCE",id:"otc-edp-per-tenant.cce"},"otc-edp-per-tenant.cloudServices":{style:{},kind:"paas",description:{txt:"EDP Cloud Services"},technology:"Cloud Services",title:"EDP Cloud Services",id:"otc-edp-per-tenant.cloudServices"},"otc-edp-per-tenant.forgejoRunnerInfrastructure":{style:{},kind:"computeressource",description:{txt:"Infrastructure for Forgejo runners like pods, vms, lxds, etc"},title:"EDP ForgejoRunner infrastructure",id:"otc-edp-per-tenant.forgejoRunnerInfrastructure"},"otc-faas.dev":{style:{},kind:"environment",description:{txt:"*.t09.de"},technology:"OTC",title:"tenant Dev",id:"otc-faas.dev"},"otc-faas.prod":{style:{},kind:"environment",description:{txt:"*.buildth.ing"},technology:"OTC",title:"Tenant Prod",id:"otc-faas.prod"},"otc-edpFoundry.cce":{style:{icon:"tech:kubernetes"},kind:"kubernetes",description:{txt:"OTC Container Cluster Engine"},technology:"Kubernetes",title:"OTC CCE",id:"otc-edpFoundry.cce"},"otc-edpFoundry.workflowSetupEDPInfrastructure":{style:{},kind:"computeressource",description:{txt:"EDP infrastructure Workflow"},title:"EDP infrastructure Workflow",id:"otc-edpFoundry.workflowSetupEDPInfrastructure"},"otc-edpFoundry.workflowSetupArgoCDInfrastructure":{style:{},kind:"computeressource",description:{txt:"EDP Setup ArgoCD Workflow"},title:"EDP ArgoCD Workflow",id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure"},"otc-edpFoundry.forgejoRunnerInfrastructure":{style:{},kind:"computeressource",description:{txt:"Infrastructure for Forgejo runners like pods, vms, lxds, etc"},title:"EDP ForgejoRunner infrastructure",id:"otc-edpFoundry.forgejoRunnerInfrastructure"},"local.backstage.backstage":{id:"local.backstage.backstage",element:"edp.ui.backstage",style:{}},"local.backstage.database":{id:"local.backstage.database",element:"edp.ui.database",style:{}},"local.argocd.argocdAppController":{id:"local.argocd.argocdAppController",element:"edp.argoCD.argocdAppController",style:{}},"local.argocd.argocdAppSetController":{id:"local.argocd.argocdAppSetController",element:"edp.argoCD.argocdAppSetController",style:{}},"local.argocd.argocdRedis":{id:"local.argocd.argocdRedis",element:"edp.argoCD.argocdRedis",style:{}},"local.argocd.argocdRepoServer":{id:"local.argocd.argocdRepoServer",element:"edp.argoCD.argocdRepoServer",style:{}},"local.argocd.argocdServer":{id:"local.argocd.argocdServer",element:"edp.argoCD.argocdServer",style:{}},"local.gitea.forgejo":{id:"local.gitea.forgejo",element:"edp.forgejo",style:{}},"local.gitea.forgejoRunner":{id:"local.gitea.forgejoRunner",element:"forgejoRunner",style:{}},"local.keycloak.keycloak":{id:"local.keycloak.keycloak",element:"edp.keyclo
* @license React
* scheduler.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var Jte;function Ptt(){return Jte||(Jte=1,(function(e){function r(I,U){var V=I.length;I.push(U);e:for(;0<V;){var G=V-1>>>1,F=I[G];if(0<a(F,U))I[G]=U,I[V]=F,V=G;else break e}}function n(I){return I.length===0?null:I[0]}function o(I){if(I.length===0)return null;var U=I[0],V=I.pop();if(V!==U){I[0]=V;e:for(var G=0,F=I.length,J=F>>>1;G<J;){var Q=2*(G+1)-1,z=I[Q],W=Q+1,X=I[W];if(0>a(z,V))W<F&&0>a(X,z)?(I[G]=X,I[W]=V,G=W):(I[G]=z,I[Q]=V,G=Q);else if(W<F&&0>a(X,V))I[G]=X,I[W]=V,G=W;else break e}}return U}function a(I,U){var V=I.sortIndex-U.sortIndex;return V!==0?V:I.id-U.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();e.unstable_now=function(){return l.now()-s}}var c=[],u=[],d=1,p=null,f=3,g=!1,b=!1,x=!1,w=!1,k=typeof setTimeout=="function"?setTimeout:null,C=typeof clearTimeout=="function"?clearTimeout:null,_=typeof setImmediate<"u"?setImmediate:null;function T(I){for(var U=n(u);U!==null;){if(U.callback===null)o(u);else if(U.startTime<=I)o(u),U.sortIndex=U.expirationTime,r(c,U);else break;U=n(u)}}function R(I){if(x=!1,T(I),!b)if(n(c)!==null)b=!0,A||(A=!0,L());else{var U=n(u);U!==null&&q(R,U.startTime-I)}}var A=!1,D=-1,N=5,P=-1;function O(){return w?!0:!(e.unstable_now()-P<N)}function B(){if(w=!1,A){var I=e.unstable_now();P=I;var U=!0;try{e:{b=!1,x&&(x=!1,C(D),D=-1),g=!0;var V=f;try{t:{for(T(I),p=n(c);p!==null&&!(p.expirationTime>I&&O());){var G=p.callback;if(typeof G=="function"){p.callback=null,f=p.priorityLevel;var F=G(p.expirationTime<=I);if(I=e.unstable_now(),typeof F=="function"){p.callback=F,T(I),U=!0;break t}p===n(c)&&o(c),T(I)}else o(c);p=n(c)}if(p!==null)U=!0;else{var J=n(u);J!==null&&q(R,J.startTime-I),U=!1}}break e}finally{p=null,f=V,g=!1}U=void 0}}finally{U?L():A=!1}}}var L;if(typeof _=="function")L=function(){_(B)};else if(typeof MessageChannel<"u"){var Y=new MessageChannel,M=Y.port2;Y.port1.onmessage=B,L=function(){M.postMessage(null)}}else L=function(){k(B,0)};function q(I,U){D=k(function(){I(e.unstable_now())},U)}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(I){I.callback=null},e.unstable_forceFrameRate=function(I){0>I||125<I?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):N=0<I?Math.floor(1e3/I):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(I){switch(f){case 1:case 2:case 3:var U=3;break;default:U=f}var V=f;f=U;try{return I()}finally{f=V}},e.unstable_requestPaint=function(){w=!0},e.unstable_runWithPriority=function(I,U){switch(I){case 1:case 2:case 3:case 4:case 5:break;default:I=3}var V=f;f=I;try{return U()}finally{f=V}},e.unstable_scheduleCallback=function(I,U,V){var G=e.unstable_now();switch(typeof V=="object"&&V!==null?(V=V.delay,V=typeof V=="number"&&0<V?G+V:G):V=G,I){case 1:var F=-1;break;case 2:F=250;break;case 5:F=1073741823;break;case 4:F=1e4;break;default:F=5e3}return F=V+F,I={id:d++,callback:U,priorityLevel:I,startTime:V,expirationTime:F,sortIndex:-1},V>G?(I.sortIndex=V,r(u,I),n(c)===null&&I===n(u)&&(x?(C(D),D=-1):x=!0,q(R,V-G))):(I.sortIndex=F,r(c,I),b||g||(b=!0,A||(A=!0,L()))),I},e.unstable_shouldYield=O,e.unstable_wrapCallback=function(I){var U=f;return function(){var V=f;f=U;try{return I.apply(this,arguments)}finally{f=V}}}})(_R)),_R}var ere;function Ott(){return ere||(ere=1,kR.exports=Ptt()),kR.exports}/**
* @license React
* react-dom-client.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var tre;function Mtt(){if(tre)return Fy;tre=1;var e=Ott(),r=q_(),n=CM();function o(h){var m="https://react.dev/errors/"+h;if(1<arguments.length){m+="?args[]="+encodeURIComponent(arguments[1]);for(var v=2;v<arguments.length;v++)m+="&args[]="+encodeURIComponent(arguments[v])}return"Minified React error #"+h+"; visit "+m+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function a(h){return!(!h||h.nodeType!==1&&h.nodeType!==9&&h.nodeType!==11)}function i(h){var m=h,v=h;if(h.alternate)for(;m.return;)m=m.return;else{h=m;do m=h,(m.flags&4098)!==0&&(v=m.return),h=m.return;while(h)}return m.tag===3?v:null}function l(h){if(h.tag===13){var m=h.memoizedState;if(m===null&&(h=h.alternate,h!==null&&(m=h.memoizedState)),m!==null)return m.dehydrated}return null}function s(h){if(i(h)!==h)throw Error(o(188))}function c(h){var m=h.alternate;if(!m){if(m=i(h),m===null)throw Error(o(188));return m!==h?null:h}for(var v=h,S=m;;){var $=v.return;if($===null)break;var j=$.alternate;if(j===null){if(S=$.return,S!==null){v=S;continue}break}if($.child===j.child){for(j=$.child;j;){if(j===v)return s($),h;if(j===S)return s($),m;j=j.sibling}throw Error(o(188))}if(v.return!==S.return)v=$,S=j;else{for(var K=!1,te=$.child;te;){if(te===v){K=!0,v=$,S=j;break}if(te===S){K=!0,S=$,v=j;break}te=te.sibling}if(!K){for(te=j.child;te;){if(te===v){K=!0,v=j,S=$;break}if(te===S){K=!0,S=j,v=$;break}te=te.sibling}if(!K)throw Error(o(189))}}if(v.alternate!==S)throw Error(o(190))}if(v.tag!==3)throw Error(o(188));return v.stateNode.current===v?h:m}function u(h){var m=h.tag;if(m===5||m===26||m===27||m===6)return h;for(h=h.child;h!==null;){if(m=u(h),m!==null)return m;h=h.sibling}return null}var d=Object.assign,p=Symbol.for("react.element"),f=Symbol.for("react.transitional.element"),g=Symbol.for("react.portal"),b=Symbol.for("react.fragment"),x=Symbol.for("react.strict_mode"),w=Symbol.for("react.profiler"),k=Symbol.for("react.provider"),C=Symbol.for("react.consumer"),_=Symbol.for("react.context"),T=Symbol.for("react.forward_ref"),R=Symbol.for("react.suspense"),A=Symbol.for("react.suspense_list"),D=Symbol.for("react.memo"),N=Symbol.for("react.lazy"),P=Symbol.for("react.activity"),O=Symbol.for("react.memo_cache_sentinel"),B=Symbol.iterator;function L(h){return h===null||typeof h!="object"?null:(h=B&&h[B]||h["@@iterator"],typeof h=="function"?h:null)}var Y=Symbol.for("react.client.reference");function M(h){if(h==null)return null;if(typeof h=="function")return h.$$typeof===Y?null:h.displayName||h.name||null;if(typeof h=="string")return h;switch(h){case b:return"Fragment";case w:return"Profiler";case x:return"StrictMode";case R:return"Suspense";case A:return"SuspenseList";case P:return"Activity"}if(typeof h=="object")switch(h.$$typeof){case g:return"Portal";case _:return(h.displayName||"Context")+".Provider";case C:return(h._context.displayName||"Context")+".Consumer";case T:var m=h.render;return h=h.displayName,h||(h=m.displayName||m.name||"",h=h!==""?"ForwardRef("+h+")":"ForwardRef"),h;case D:return m=h.displayName||null,m!==null?m:M(h.type)||"Memo";case N:m=h._payload,h=h._init;try{return M(h(m))}catch{}}return null}var q=Array.isArray,I=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,U=n.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,V={pending:!1,data:null,method:null,action:null},G=[],F=-1;function J(h){return{current:h}}function Q(h){0>F||(h.current=G[F],G[F]=null,F--)}function z(h,m){F++,G[F]=h.current,h.current=m}var W=J(null),X=J(null),Z=J(null),oe=J(null);function ee(h,m){switch(z(Z,m),z(X,h),z(W,null),m.nodeType){case 9:case 11:h=(h=m.documentElement)&&(h=h.namespaceURI)?Gge(h):0;break;default:if(h=m.tagName,m=m.namespaceURI)m=Gge(m),h=Xge(m,h);else switch(h){case"svg":h=1;break;case"math":h=2;break;default:h=0}}Q(W),z(W,h)}function re(){Q(W),Q(X),Q(Z)}function pe(h){h.memoizedState!==null&&z(oe,h);var m=W.current,v=Xge(m,h.type);m!==v&&(z(X,h),z(W,v))}function Ce(h){X.current===h&&(Q(W),Q(X)),oe.current===h&&(Q(oe),jv._currentValue=V)}var ce=Object.prototype.hasOwnProperty,de
at`)?" (<anonymous>)":-1<v.stack.indexOf("@")?"@unknown:0:0":""}return`
`+nh+h+Dg}var oh=!1;function ah(h,m){if(!h||oh)return"";oh=!0;var v=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var S={DetermineComponentFrameRoot:function(){try{if(m){var Ne=function(){throw Error()};if(Object.defineProperty(Ne.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Ne,[])}catch(ke){var ve=ke}Reflect.construct(h,[],Ne)}else{try{Ne.call()}catch(ke){ve=ke}h.call(Ne.prototype)}}else{try{throw Error()}catch(ke){ve=ke}(Ne=h())&&typeof Ne.catch=="function"&&Ne.catch(function(){})}}catch(ke){if(ke&&ve&&typeof ke.stack=="string")return[ke.stack,ve.stack]}return[null,null]}};S.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var $=Object.getOwnPropertyDescriptor(S.DetermineComponentFrameRoot,"name");$&&$.configurable&&Object.defineProperty(S.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var j=S.DetermineComponentFrameRoot(),K=j[0],te=j[1];if(K&&te){var se=K.split(`
`),ge=te.split(`
`);for($=S=0;S<se.length&&!se[S].includes("DetermineComponentFrameRoot");)S++;for(;$<ge.length&&!ge[$].includes("DetermineComponentFrameRoot");)$++;if(S===se.length||$===ge.length)for(S=se.length-1,$=ge.length-1;1<=S&&0<=$&&se[S]!==ge[$];)$--;for(;1<=S&&0<=$;S--,$--)if(se[S]!==ge[$]){if(S!==1||$!==1)do if(S--,$--,0>$||se[S]!==ge[$]){var Te=`
`+se[S].replace(" at new "," at ");return h.displayName&&Te.includes("<anonymous>")&&(Te=Te.replace("<anonymous>",h.displayName)),Te}while(1<=S&&0<=$);break}}}finally{oh=!1,Error.prepareStackTrace=v}return(v=h?h.displayName||h.name:"")?Ni(v):""}function Xb(h){switch(h.tag){case 26:case 27:case 5:return Ni(h.type);case 16:return Ni("Lazy");case 13:return Ni("Suspense");case 19:return Ni("SuspenseList");case 0:case 15:return ah(h.type,!1);case 11:return ah(h.type.render,!1);case 1:return ah(h.type,!0);case 31:return Ni("Activity");default:return""}}function $g(h){try{var m="";do m+=Xb(h),h=h.return;while(h);return m}catch(v){return`
Error generating stack: `+v.message+`
`+v.stack}}function Lo(h){switch(typeof h){case"bigint":case"boolean":case"number":case"string":case"undefined":return h;case"object":return h;default:return""}}function Pg(h){var m=h.type;return(h=h.nodeName)&&h.toLowerCase()==="input"&&(m==="checkbox"||m==="radio")}function Kb(h){var m=Pg(h)?"checked":"value",v=Object.getOwnPropertyDescriptor(h.constructor.prototype,m),S=""+h[m];if(!h.hasOwnProperty(m)&&typeof v<"u"&&typeof v.get=="function"&&typeof v.set=="function"){var $=v.get,j=v.set;return Object.defineProperty(h,m,{configurable:!0,get:function(){return $.call(this)},set:function(K){S=""+K,j.call(this,K)}}),Object.defineProperty(h,m,{enumerable:v.enumerable}),{getValue:function(){return S},setValue:function(K){S=""+K},stopTracking:function(){h._valueTracker=null,delete h[m]}}}}function Yu(h){h._valueTracker||(h._valueTracker=Kb(h))}function Wu(h){if(!h)return!1;var m=h._valueTracker;if(!m)return!0;var v=m.getValue(),S="";return h&&(S=Pg(h)?h.checked?"true":"false":h.value),h=S,h!==v?(m.setValue(h),!0):!1}function Gu(h){if(h=h||(typeof document<"u"?document:void 0),typeof h>"u")return null;try{return h.activeElement||h.body}catch{return h.body}}var Zb=/[\n"\\]/g;function zo(h){return h.replace(Zb,function(m){return"\\"+m.charCodeAt(0).toString(16)+" "})}function Bl(h,m,v,S,$,j,K,te){h.name="",K!=null&&typeof K!="function"&&typeof K!="symbol"&&typeof K!="boolean"?h.type=K:h.removeAttribute("type"),m!=null?K==="number"?(m===0&&h.value===""||h.value!=m)&&(h.value=""+Lo(m)):h.value!==""+Lo(m)&&(h.value=""+Lo(m)):K!=="submit"&&K!=="reset"||h.removeAttribute("value"),m!=null?ih(h,K,Lo(m)):v!=null?ih(h,K,Lo(v)):S!=null&&h.removeAttribute("value"),$==null&&j!=null&&(h.defaultChecked=!!j),$!=null&&(h.checked=$&&typeof $!="function"&&typeof $!="symbol"),te!=null&&typeof te!="function"&&typeof te!="symbol"&&typeof te!="boolean"?h.name=""+Lo(te):h.removeAttribute("name")}function Og(h,m,v,S,$,j,K,te){if(j!=null&&typeof j!="function"&&typeof j!="symbol"&&typeof j!="boolean"&&(h.type=j),m!=null||v!=null){if(!(j!=="submit"&&j!=="reset"||m!=null))return;v=v!=null?""+Lo(v):"",m=m!=null?""+Lo(m):v,te||m===h.value||(h.value=m),h.defaultValue=m}S=S??$,S=typeof S!="function"&&typeof S!="symbol"&&!!S,h.checked=te?h.checked:!!S,h.defaultChecked=!!S,K!=null&&typeof K!="function"&&typeof K!="symbol"&&typeof K!="boolean"&&(h.name=K)}function ih(h,m,v){m==="number"&&Gu(h.ownerDocument)===h||h.defaultValue===""+v||(h.defaultValue=""+v)}function Di(h,m,v,S){if(h=h.options,m){m={};for(var $=0;$<v.length;$++)m["$"+v[$]]=!0;for(v=0;v<h.length;v++)$=m.hasOwnProperty("$"+h[v].value),h[v].selected!==$&&(h[v].selected=$),$&&S&&(h[v].defaultSelected=!0)}else{for(v=""+Lo(v),m=null,$=0;$<h.length;$++){if(h[$].value===v){h[$].selected=!0,S&&(h[$].defaultSelected=!0);return}m!==null||h[$].disabled||(m=h[$])}m!==null&&(m.selected=!0)}}function Yhe(h,m,v){if(m!=null&&(m=""+Lo(m),m!==h.value&&(h.value=m),v==null)){h.defaultValue!==m&&(h.defaultValue=m);return}h.defaultValue=v!=null?""+Lo(v):""}function Whe(h,m,v,S){if(m==null){if(S!=null){if(v!=null)throw Error(o(92));if(q(S)){if(1<S.length)throw Error(o(93));S=S[0]}v=S}v==null&&(v=""),m=v}v=Lo(m),h.defaultValue=v,S=h.textContent,S===v&&S!==""&&S!==null&&(h.value=S)}function Mg(h,m){if(m){var v=h.firstChild;if(v&&v===h.lastChild&&v.nodeType===3){v.nodeValue=m;return}}h.textContent=m}var lkt=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 msG
`).replace($5t,"")}function Wge(h,m){return m=Yge(m),Yge(h)===m}function T_(){}function br(h,m,v,S,$,j){switch(v){case"children":typeof S=="string"?m==="body"||m==="textarea"&&S===""||Mg(h,S):(typeof S=="number"||typeof S=="bigint")&&m!=="body"&&Mg(h,""+S);break;case"className":Vu(h,"class",S);break;case"tabIndex":Vu(h,"tabindex",S);break;case"dir":case"role":case"viewBox":case"width":case"height":Vu(h,v,S);break;case"style":Xhe(h,S,j);break;case"data":if(m!=="object"){Vu(h,"data",S);break}case"src":case"href":if(S===""&&(m!=="a"||v!=="href")){h.removeAttribute(v);break}if(S==null||typeof S=="function"||typeof S=="symbol"||typeof S=="boolean"){h.removeAttribute(v);break}S=M5(""+S),h.setAttribute(v,S);break;case"action":case"formAction":if(typeof S=="function"){h.setAttribute(v,"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}else typeof j=="function"&&(v==="formAction"?(m!=="input"&&br(h,m,"name",$.name,$,null),br(h,m,"formEncType",$.formEncType,$,null),br(h,m,"formMethod",$.formMethod,$,null),br(h,m,"formTarget",$.formTarget,$,null)):(br(h,m,"encType",$.encType,$,null),br(h,m,"method",$.method,$,null),br(h,m,"target",$.target,$,null)));if(S==null||typeof S=="symbol"||typeof S=="boolean"){h.removeAttribute(v);break}S=M5(""+S),h.setAttribute(v,S);break;case"onClick":S!=null&&(h.onclick=T_);break;case"onScroll":S!=null&&Xt("scroll",h);break;case"onScrollEnd":S!=null&&Xt("scrollend",h);break;case"dangerouslySetInnerHTML":if(S!=null){if(typeof S!="object"||!("__html"in S))throw Error(o(61));if(v=S.__html,v!=null){if($.children!=null)throw Error(o(60));h.innerHTML=v}}break;case"multiple":h.multiple=S&&typeof S!="function"&&typeof S!="symbol";break;case"muted":h.muted=S&&typeof S!="function"&&typeof S!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(S==null||typeof S=="function"||typeof S=="boolean"||typeof S=="symbol"){h.removeAttribute("xlink:href");break}v=M5(""+S),h.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",v);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":S!=null&&typeof S!="function"&&typeof S!="symbol"?h.setAttribute(v,""+S):h.removeAttribute(v);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":S&&typeof S!="function"&&typeof S!="symbol"?h.setAttribute(v,""):h.removeAttribute(v);break;case"capture":case"download":S===!0?h.setAttribute(v,""):S!==!1&&S!=null&&typeof S!="function"&&typeof S!="symbol"?h.setAttribute(v,S):h.removeAttribute(v);break;case"cols":case"rows":case"size":case"span":S!=null&&typeof S!="function"&&typeof S!="symbol"&&!isNaN(S)&&1<=S?h.setAttribute(v,S):h.removeAttribute(v);break;case"rowSpan":case"start":S==null||typeof S=="function"||typeof S=="symbol"||isNaN(S)?h.removeAttribute(v):h.setAttribute(v,S);break;case"popover":Xt("beforetoggle",h),Xt("toggle",h),qu(h,"popover",S);break;case"xlinkActuate":Fa(h,"http://www.w3.org/1999/xlink","xlink:actuate",S);break;case"xlinkArcrole":Fa(h,"http://www.w3.org/1999/xlink","xlink:arcrole",S);break;case"xlinkRole":Fa(h,"http://www.w3.org/1999/xlink","xlink:role",S);break;case"xlinkShow":Fa(h,"http://www.w3.org/1999/xlink","xlink:show",S);break;case"xlinkTitle":Fa(h,"http://www.w3.org/1999/xlink","xlink:title",S);break;case"xlinkType":Fa(h,"http://www.w3.org/1999/xlink","xlink:type",S);break;case"xmlBase":Fa(h,"http://www.w3.org/XML/199
.`.concat(Btt,` {
overflow: hidden `).concat(o,`;
padding-right: `).concat(s,"px ").concat(o,`;
}
body[`).concat(Tm,`] {
overflow: hidden `).concat(o,`;
overscroll-behavior: contain;
`).concat([r&&"position: relative ".concat(o,";"),n==="margin"&&`
padding-left: `.concat(a,`px;
padding-top: `).concat(i,`px;
padding-right: `).concat(l,`px;
margin-left:0;
margin-top:0;
margin-right: `).concat(s,"px ").concat(o,`;
`),n==="padding"&&"padding-right: ".concat(s,"px ").concat(o,";")].filter(Boolean).join(""),`
}
.`).concat(y4,` {
right: `).concat(s,"px ").concat(o,`;
}
.`).concat(b4,` {
margin-right: `).concat(s,"px ").concat(o,`;
}
.`).concat(y4," .").concat(y4,` {
right: 0 `).concat(o,`;
}
.`).concat(b4," .").concat(b4,` {
margin-right: 0 `).concat(o,`;
}
body[`).concat(Tm,`] {
`).concat(Ftt,": ").concat(s,`px;
}
`)},sre=function(){var e=parseInt(document.body.getAttribute(Tm)||"0",10);return isFinite(e)?e:0},irt=function(){E.useEffect(function(){return document.body.setAttribute(Tm,(sre()+1).toString()),function(){var e=sre()-1;e<=0?document.body.removeAttribute(Tm):document.body.setAttribute(Tm,e.toString())}},[])},lrt=function(e){var r=e.noRelative,n=e.noImportant,o=e.gapMode,a=o===void 0?"margin":o;irt();var i=E.useMemo(function(){return nrt(a)},[a]);return E.createElement(ort,{styles:art(i,!r,a,n?"":"!important")})},RR=!1;if(typeof window<"u")try{var x4=Object.defineProperty({},"passive",{get:function(){return RR=!0,!0}});window.addEventListener("test",x4,x4),window.removeEventListener("test",x4,x4)}catch{RR=!1}var Rm=RR?{passive:!1}:!1,srt=function(e){return e.tagName==="TEXTAREA"},cre=function(e,r){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[r]!=="hidden"&&!(n.overflowY===n.overflowX&&!srt(e)&&n[r]==="visible")},crt=function(e){return cre(e,"overflowY")},urt=function(e){return cre(e,"overflowX")},ure=function(e,r){var n=r.ownerDocument,o=r;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var a=dre(e,o);if(a){var i=pre(e,o),l=i[1],s=i[2];if(l>s)return!0}o=o.parentNode}while(o&&o!==n.body);return!1},drt=function(e){var r=e.scrollTop,n=e.scrollHeight,o=e.clientHeight;return[r,n,o]},prt=function(e){var r=e.scrollLeft,n=e.scrollWidth,o=e.clientWidth;return[r,n,o]},dre=function(e,r){return e==="v"?crt(r):urt(r)},pre=function(e,r){return e==="v"?drt(r):prt(r)},hrt=function(e,r){return e==="h"&&r==="rtl"?-1:1},frt=function(e,r,n,o,a){var i=hrt(e,window.getComputedStyle(r).direction),l=i*o,s=n.target,c=r.contains(s),u=!1,d=l>0,p=0,f=0;do{if(!s)break;var g=pre(e,s),b=g[0],x=g[1],w=g[2],k=x-w-i*b;(b||k)&&dre(e,s)&&(p+=k,f+=b);var C=s.parentNode;s=C&&C.nodeType===Node.DOCUMENT_FRAGMENT_NODE?C.host:C}while(!c&&s!==document.body||c&&(r.contains(s)||r===s));return(d&&Math.abs(p)<1||!d&&Math.abs(f)<1)&&(u=!0),u},w4=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},hre=function(e){return[e.deltaX,e.deltaY]},fre=function(e){return e&&"current"in e?e.current:e},mrt=function(e,r){return e[0]===r[0]&&e[1]===r[1]},grt=function(e){return`
.block-interactivity-`.concat(e,` {pointer-events: none;}
.allow-interactivity-`).concat(e,` {pointer-events: all;}
`)},yrt=0,Am=[];function brt(e){var r=E.useRef([]),n=E.useRef([0,0]),o=E.useRef(),a=E.useState(yrt++)[0],i=E.useState(lre)[0],l=E.useRef(e);E.useEffect(function(){l.current=e},[e]),E.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var x=jtt([e.lockRef.current],(e.shards||[]).map(fre)).filter(Boolean);return x.forEach(function(w){return w.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),x.forEach(function(w){return w.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var s=E.useCallback(function(x,w){if("touches"in x&&x.touches.length===2||x.type==="wheel"&&x.ctrlKey)return!l.current.allowPinchZoom;var k=w4(x),C=n.current,_="deltaX"in x?x.deltaX:C[0]-k[0],T="deltaY"in x?x.deltaY:C[1]-k[1],R,A=x.target,D=Math.abs(_)>Math.abs(T)?"h":"v";if("touches"in x&&D==="h"&&A.type==="range")return!1;var N=ure(D,A);if(!N)return!0;if(N?R=D:(R=D==="v"?"h":"v",N=ure(D,A)),!N)return!1;if(!o.current&&"changedTouches"in x&&(_||T)&&(o.current=R),!R)return!0;var P=o.current||R;return frt(P,w,x,P==="h"?_:T)},[]),c=E.useCallback(function(x){var w=x;if(!(!Am.length||Am[Am.length-1]!==i)){var k="deltaY"in w?hre(w):w4(w),C=r.current.filter(function(R){return R.name===w.type&&(R.target===w.target||w.target===R.shadowParent)&&mrt(R.delta,k)})[0];if(C&&C.should){w.cancelable&&w.preventDefault();return}if(!C){var _=(l.current.shards||[]).map(fre).filter(Boolean).filter(function(R){return R.contains(w.target)}),T=_.length>0?s(w,_[0]):!l.current.noIsolation;T&&w.cancelable&&w.preventDefault()}}},[]),u=E.useCallback(function(x,w,k,C){var _={name:x,delta:w,target:k,should:C,shadowParent:vrt(k)};r.current.push(_),setTimeout(function(){r.current=r.current.filter(function(T){return T!==_})},1)},[]),d=E.useCallback(function(x){n.current=w4(x),o.current=void 0},[]),p=E.useCallback(function(x){u(x.type,hre(x),x.target,s(x,e.lockRef.current))},[]),f=E.useCallback(function(x){u(x.type,w4(x),x.target,s(x,e.lockRef.current))},[]);E.useEffect(function(){return Am.push(i),e.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:f}),document.addEventListener("wheel",c,Rm),document.addEventListener("touchmove",c,Rm),document.addEventListener("touchstart",d,Rm),function(){Am=Am.filter(function(x){return x!==i}),document.removeEventListener("wheel",c,Rm),document.removeEventListener("touchmove",c,Rm),document.removeEventListener("touchstart",d,Rm)}},[]);var g=e.removeScrollBar,b=e.inert;return E.createElement(E.Fragment,null,b?E.createElement(i,{styles:grt(a)}):null,g?E.createElement(lrt,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function vrt(e){for(var r=null;e!==null;)e instanceof ShadowRoot&&(r=e.host,e=e.host),e=e.parentNode;return r}const xrt=Gtt(ire,brt);var mre=E.forwardRef(function(e,r){return E.createElement(v4,ss({},e,{ref:r,sideCar:xrt}))});mre.classNames=v4.classNames;function Po(e){return Object.keys(e)}function wrt(e){return e.replace(/[A-Z]/g,r=>`-${r.toLowerCase()}`)}function krt(e){return typeof e!="string"||!e.includes("var(--mantine-scale)")?e:e.match(/^calc\((.*?)\)$/)?.[1].split("*")[0].trim()}function k4(e){const r=krt(e);return typeof r=="number"?r:typeof r=="string"?r.includes("calc")||r.includes("var")?r:r.includes("px")?Number(r.replace("px","")):r.includes("rem")?Number(r.replace("rem",""))*16:r.includes("em")?Number(r.replace("em",""))*16:Number(r):NaN}function gre(e){return e==="0rem"?"0rem":`calc(${e} * var(--mantine-scale))`}function yre(e,{shouldScale:r=!1}={}){function n(o){if(o===0||o==="0")return`0${e}`;if(typeof o=="number"){const a=`${o/16}${e}`;return r?gre(a):a}if(typeof o=="string"){if(o===""||o.startsWith("calc(")||o.startsWith("clamp(")||o.includes("rgba("))return o;if(o.includes(","))return o.split(",").map(i=>n(i)).join(",");if(o.includes(" "))return o.split(" ").map(i=>n(i)).join(" ");const a=o.replace("px","");if(!Number.isNaN(Number(a))){const i=`${Number(a)/16}${e}`;return r?gre(i):i}}return o}return n}const Fe=yre("rem",{shouldScale:!0});
* @license React
* use-sync-external-store-shim.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var mie;function Act(){if(mie)return vN;mie=1;var e=Xr;function r(p,f){return p===f&&(p!==0||1/p===1/f)||p!==p&&f!==f}var n=typeof Object.is=="function"?Object.is:r,o=e.useState,a=e.useEffect,i=e.useLayoutEffect,l=e.useDebugValue;function s(p,f){var g=f(),b=o({inst:{value:g,getSnapshot:f}}),x=b[0].inst,w=b[1];return i(function(){x.value=g,x.getSnapshot=f,c(x)&&w({inst:x})},[p,g,f]),a(function(){return c(x)&&w({inst:x}),p(function(){c(x)&&w({inst:x})})},[p]),l(g),g}function c(p){var f=p.getSnapshot;p=p.value;try{var g=f();return!n(p,g)}catch{return!0}}function u(p,f){return f()}var d=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?u:s;return vN.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:d,vN}var gie;function Nct(){return gie||(gie=1,fie.exports=Act()),fie.exports}/**
* @license React
* use-sync-external-store-shim/with-selector.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var yie;function Dct(){if(yie)return bN;yie=1;var e=Xr,r=Nct();function n(u,d){return u===d&&(u!==0||1/u===1/d)||u!==u&&d!==d}var o=typeof Object.is=="function"?Object.is:n,a=r.useSyncExternalStore,i=e.useRef,l=e.useEffect,s=e.useMemo,c=e.useDebugValue;return bN.useSyncExternalStoreWithSelector=function(u,d,p,f,g){var b=i(null);if(b.current===null){var x={hasValue:!1,value:null};b.current=x}else x=b.current;b=s(function(){function k(A){if(!C){if(C=!0,_=A,A=f(A),g!==void 0&&x.hasValue){var D=x.value;if(g(D,A))return T=D}return T=A}if(D=T,o(_,A))return D;var N=f(A);return g!==void 0&&g(D,N)?(_=A,D):(_=A,T=N)}var C=!1,_,T,R=p===void 0?null:p;return[function(){return k(d())},R===null?void 0:function(){return k(R())}]},[d,p,f,g]);var w=a(u,b[0],b[1]);return l(function(){x.hasValue=!0,x.value=w},[w]),c(w),w},bN}var bie;function $ct(){return bie||(bie=1,hie.exports=Dct()),hie.exports}var vie=$ct();const Pct=sae(vie);function Oct(e,r=n=>n){return vie.useSyncExternalStoreWithSelector(e.subscribe,()=>e.state,()=>e.state,r,Mct)}function Mct(e,r){if(Object.is(e,r))return!0;if(typeof e!="object"||e===null||typeof r!="object"||r===null)return!1;if(e instanceof Map&&r instanceof Map){if(e.size!==r.size)return!1;for(const[o,a]of e)if(!r.has(o)||!Object.is(a,r.get(o)))return!1;return!0}if(e instanceof Set&&r instanceof Set){if(e.size!==r.size)return!1;for(const o of e)if(!r.has(o))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(r).length)return!1;for(let o=0;o<n.length;o++)if(!Object.prototype.hasOwnProperty.call(r,n[o])||!Object.is(e[n[o]],r[n[o]]))return!1;return!0}const xN=E.createContext(null);function Ict(){return typeof document>"u"?xN:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=xN,xN)}function $p(e){const r=E.useContext(Ict());return e?.warn,r}function Al(e){const r=$p({warn:e?.router===void 0}),n=e?.router||r,o=E.useRef(void 0);return Oct(n.__store,a=>{if(e?.select){if(e.structuralSharing??n.options.defaultStructuralSharing){const i=oie(o.current,e.select(a));return o.current=i,i}return e.select(a)}return a})}const xie=E.createContext(void 0);E.createContext(void 0);function Lct(e){const r=Al({select:n=>`not-found-${n.location.pathname}-${n.status}`});return y.jsx(pie,{getResetKey:()=>r,onCatch:(n,o)=>{var a;if(kk(n))(a=e.onCatch)==null||a.call(e,n,o);else throw n},errorComponent:({error:n})=>{var o;if(kk(n))return(o=e.fallback)==null?void 0:o.call(e,n);throw n},children:e.children})}function zct(){return y.jsx("p",{children:"Not Found"})}function wN(e){return y.jsx(y.Fragment,{children:e.children})}function wie(e,r,n){return r.options.notFoundComponent?y.jsx(r.options.notFoundComponent,{data:n}):e.options.defaultNotFoundComponent?y.jsx(e.options.defaultNotFoundComponent,{data:n}):y.jsx(zct,{})}var kN,kie;function jct(){if(kie)return kN;kie=1;const e={},r=e.hasOwnProperty,n=(N,P)=>{for(const O in N)r.call(N,O)&&P(O,N[O])},o=(N,P)=>(P&&n(P,(O,B)=>{N[O]=B}),N),a=(N,P)=>{const O=N.length;let B=-1;for(;++B<O;)P(N[B])},i=N=>"\\u"+("0000"+N).slice(-4),l=(N,P)=>{let O=N.toString(16);return P?O:O.toUpperCase()},s=e.toString,c=Array.isArray,u=N=>typeof Buffer=="function"&&Buffer.isBuffer(N),d=N=>s.call(N)=="[object Object]",p=N=>typeof N=="string"||s.call(N)=="[object String]",f=N=>typeof N=="number"||s.call(N)=="[object Number]",g=N=>typeof N=="bigint",b=N=>typeof N=="function",x=N=>s.call(N)=="[object Map]",w=N=>s.call(N)=="[object Set]",k={"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},C=/[\\\b\f\n\r\t]/,_=/[0-9]/,T=/[\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,R=/([\uD800-\uDBFF][\uDC00-\uDFFF])|([\uD800-\uDFFF])|(['"`])|[^]/g,A=/([\uD800-\uDBFF][\uDC00-\uDFFF])|([\uD800-\uDFFF])|(['"`])|[^ !#-&\(-\[\]-_a-~]/g,D=(N,P)=>{const O=()=>{U=I,++P.indentLevel,I=P.indent.repeat(P.indentLevel)},B={escapeEverything:!1,minimal:!1,isScriptContext:!1,quotes:"single",wrap:!1,es6:!1,json:!1,compact:!0,lowercaseHex:!1,numbers:"decimal",indent:" ",indentLevel:0,__inline1__:!1,__inline2__:!1},L=P&&P.json;L&&(B.quotes="double",B.wrap=!0),P=o(B,P),P.quot
`;let J,Q=!0;const z=P.numbers=="binary",W=P.numbers=="octal",X=P.numbers=="decimal",Z=P.numbers=="hexadecimal";if(L&&N&&b(N.toJSON)&&(N=N.toJSON()),!p(N)){if(x(N))return N.size==0?"new Map()":(M||(P.__inline1__=!0,P.__inline2__=!1),"new Map("+D(Array.from(N),P)+")");if(w(N))return N.size==0?"new Set()":"new Set("+D(Array.from(N),P)+")";if(u(N))return N.length==0?"Buffer.from([])":"Buffer.from("+D(Array.from(N),P)+")";if(c(N))return J=[],P.wrap=!0,V&&(P.__inline1__=!1,P.__inline2__=!0),G||O(),a(N,ee=>{Q=!1,G&&(P.__inline2__=!1),J.push((M||G?"":I)+D(ee,P))}),Q?"[]":G?"["+J.join(", ")+"]":"["+F+J.join(","+F)+F+(M?"":U)+"]";if(f(N)||g(N)){if(L)return JSON.stringify(Number(N));let ee;if(X)ee=String(N);else if(Z){let re=N.toString(16);q||(re=re.toUpperCase()),ee="0x"+re}else z?ee="0b"+N.toString(2):W&&(ee="0o"+N.toString(8));return g(N)?ee+"n":ee}else return g(N)?L?JSON.stringify(Number(N)):N+"n":d(N)?(J=[],P.wrap=!0,O(),n(N,(ee,re)=>{Q=!1,J.push((M?"":I)+D(ee,P)+":"+(M?"":" ")+D(re,P))}),Q?"{}":"{"+F+J.join(","+F)+F+(M?"":U)+"}"):L?JSON.stringify(N)||"null":String(N)}const oe=P.escapeEverything?R:A;return J=N.replace(oe,(ee,re,pe,Ce,ce,de)=>{if(re){if(P.minimal)return re;const Me=re.charCodeAt(0),Xe=re.charCodeAt(1);if(P.es6){const Ge=(Me-55296)*1024+Xe-56320+65536;return"\\u{"+l(Ge,q)+"}"}return i(l(Me,q))+i(l(Xe,q))}if(pe)return i(l(pe.charCodeAt(0),q));if(ee=="\0"&&!L&&!_.test(de.charAt(ce+1)))return"\\0";if(Ce)return Ce==Y||P.escapeEverything?"\\"+Ce:Ce;if(C.test(ee))return k[ee];if(P.minimal&&!T.test(ee))return ee;const be=l(ee.charCodeAt(0),q);return L||be.length>2?i(be):"\\x"+("00"+be).slice(-2)}),Y=="`"&&(J=J.replace(/\$\{/g,"\\${")),P.isScriptContext&&(J=J.replace(/<\/(script|style)/gi,"<\\/$1").replace(/<!--/g,L?"\\u003C!--":"\\x3C!--")),P.wrap&&(J=Y+J+Y),J};return D.version="3.0.2",kN=D,kN}jct();function Bct({children:e,log:r}){return typeof document<"u"?null:y.jsx("script",{className:"tsr-once",dangerouslySetInnerHTML:{__html:[e,"",'if (typeof __TSR_SSR__ !== "undefined") __TSR_SSR__.cleanScripts()'].filter(Boolean).join(`
`)}})}function Fct(){const e=$p(),r=(e.options.getScrollRestorationKey||uie)(e.latestLocation),n=r!==uie(e.latestLocation)?r:null;return!e.isScrollRestoring||!e.isServer?null:y.jsx(Bct,{children:`(${Ect.toString()})(${JSON.stringify(sie)},${JSON.stringify(n)}, undefined, true)`,log:!1})}const Hct=E.memo(function({matchId:e}){var r,n;const o=$p(),a=Al({select:w=>{var k;return(k=w.matches.find(C=>C.id===e))==null?void 0:k.routeId}});vk(a);const i=o.routesById[a],l=i.options.pendingComponent??o.options.defaultPendingComponent,s=l?y.jsx(l,{}):null,c=i.options.errorComponent??o.options.defaultErrorComponent,u=i.options.onCatch??o.options.defaultOnCatch,d=i.isRoot?i.options.notFoundComponent??((r=o.options.notFoundRoute)==null?void 0:r.options.component):i.options.notFoundComponent,p=(!i.isRoot||i.options.wrapInSuspense)&&(i.options.wrapInSuspense??l??((n=i.options.errorComponent)==null?void 0:n.preload))?E.Suspense:wN,f=c?pie:wN,g=d?Lct:wN,b=Al({select:w=>w.loadedAt}),x=Al({select:w=>{var k;const C=w.matches.findIndex(_=>_.id===e);return(k=w.matches[C-1])==null?void 0:k.routeId}});return y.jsxs(y.Fragment,{children:[y.jsx(xie.Provider,{value:e,children:y.jsx(p,{fallback:s,children:y.jsx(f,{getResetKey:()=>b,errorComponent:c||yN,onCatch:(w,k)=>{if(kk(w))throw w;u?.(w,k)},children:y.jsx(g,{fallback:w=>{if(!d||w.routeId&&w.routeId!==a||!w.routeId&&!i.isRoot)throw w;return E.createElement(d,w)},children:y.jsx(qct,{matchId:e})})})})}),x===die&&o.options.scrollRestoration?y.jsxs(y.Fragment,{children:[y.jsx(Uct,{}),y.jsx(Fct,{})]}):null]})});function Uct(){var e;const r=$p(),n=E.useRef(void 0);return y.jsx("script",{suppressHydrationWarning:!0,ref:o=>{var a;o&&(n.current===void 0||n.current.href!==((a=r.state.resolvedLocation)==null?void 0:a.href))&&(r.emit({type:"onRendered",...Cct(r.state)}),n.current=r.state.resolvedLocation)}},(e=r.state.resolvedLocation)==null?void 0:e.state.key)}const qct=E.memo(function({matchId:e}){var r,n,o;const a=$p(),{match:i,key:l,routeId:s}=Al({select:p=>{const f=p.matches.findIndex(k=>k.id===e),g=p.matches[f],b=g.routeId,x=a.routesById[b].options.remountDeps??a.options.defaultRemountDeps,w=x?.({routeId:b,loaderDeps:g.loaderDeps,params:g._strictParams,search:g._strictSearch});return{key:w?JSON.stringify(w):void 0,routeId:b,match:wct(g,["id","status","error"])}},structuralSharing:!0}),c=a.routesById[s],u=E.useMemo(()=>{const p=c.options.component??a.options.defaultComponent;return p?y.jsx(p,{},l):y.jsx(Vct,{})},[l,c.options.component,a.options.defaultComponent]),d=(c.options.errorComponent??a.options.defaultErrorComponent)||yN;if(i.status==="notFound")return vk(kk(i.error)),wie(a,c,i.error);if(i.status==="redirected")throw vk(Sct(i.error)),(r=a.getMatch(i.id))==null?void 0:r.loadPromise;if(i.status==="error"){if(a.isServer)return y.jsx(d,{error:i.error,reset:void 0,info:{componentStack:""}});throw i.error}if(i.status==="pending"){const p=c.options.pendingMinMs??a.options.defaultPendingMinMs;if(p&&!((n=a.getMatch(i.id))!=null&&n.minPendingPromise)&&!a.isServer){const f=kct();Promise.resolve().then(()=>{a.updateMatch(i.id,g=>({...g,minPendingPromise:f}))}),setTimeout(()=>{f.resolve(),a.updateMatch(i.id,g=>({...g,minPendingPromise:void 0}))},p)}throw(o=a.getMatch(i.id))==null?void 0:o.loadPromise}return u}),Vct=E.memo(function(){const e=$p(),r=E.useContext(xie),n=Al({select:c=>{var u;return(u=c.matches.find(d=>d.id===r))==null?void 0:u.routeId}}),o=e.routesById[n],a=Al({select:c=>{const u=c.matches.find(d=>d.id===r);return vk(u),u.globalNotFound}}),i=Al({select:c=>{var u;const d=c.matches,p=d.findIndex(f=>f.id===r);return(u=d[p+1])==null?void 0:u.id}});if(a)return wie(e,o,void 0);if(!i)return null;const l=y.jsx(Hct,{matchId:i}),s=e.options.defaultPendingComponent?y.jsx(e.options.defaultPendingComponent,{}):null;return r===die?y.jsx(E.Suspense,{fallback:s,children:l}):l}),Yct=typeof window<"u"?E.useLayoutEffect:E.useEffect;function Wct(e,r,n={},o={}){const a=E.useRef(typeof IntersectionObserver=="function"),i=E.useRef(null);return E.useEffect(()=>{if(!(!e.current||!a.current||o.disabled))return i.current=n
`).replace(`
`,`
+`).split(`
`)),u=c.reduce((d,p)=>d.concat(...p),[]);return[c,u]}return[[],[]]},[e]);return E.useEffect(()=>{const c=r?.target??gse,u=r?.actInsideInputWithModifier??!0;if(e!==null){const d=g=>{if(a.current=g.ctrlKey||g.metaKey||g.shiftKey||g.altKey,(!a.current||a.current&&!u)&&Ple(g))return!1;const b=bse(g.code,s);if(i.current.add(g[b]),yse(l,i.current,!1)){const x=g.composedPath?.()?.[0]||g.target,w=x?.nodeName==="BUTTON"||x?.nodeName==="A";r.preventDefault!==!1&&(a.current||!w)&&g.preventDefault(),o(!0)}},p=g=>{const b=bse(g.code,s);yse(l,i.current,!0)?(o(!1),i.current.clear()):i.current.delete(g[b]),g.key==="Meta"&&i.current.clear(),a.current=!1},f=()=>{i.current.clear(),o(!1)};return c?.addEventListener("keydown",d),c?.addEventListener("keyup",p),window.addEventListener("blur",f),window.addEventListener("contextmenu",f),()=>{c?.removeEventListener("keydown",d),c?.removeEventListener("keyup",p),window.removeEventListener("blur",f),window.removeEventListener("contextmenu",f)}}},[e,o]),n}function yse(e,r,n){return e.filter(o=>n||o.length===r.size).some(o=>o.every(a=>r.has(a)))}function bse(e,r){return r.includes(e)?"code":"key"}const tmt=()=>{const e=zr();return E.useMemo(()=>({zoomIn:r=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,{duration:r?.duration}):Promise.resolve(!1)},zoomOut:r=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,{duration:r?.duration}):Promise.resolve(!1)},zoomTo:(r,n)=>{const{panZoom:o}=e.getState();return o?o.scaleTo(r,{duration:n?.duration}):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(r,n)=>{const{transform:[o,a,i],panZoom:l}=e.getState();return l?(await l.setViewport({x:r.x??o,y:r.y??a,zoom:r.zoom??i},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[r,n,o]=e.getState().transform;return{x:r,y:n,zoom:o}},setCenter:async(r,n,o)=>e.getState().setCenter(r,n,o),fitBounds:async(r,n)=>{const{width:o,height:a,minZoom:i,maxZoom:l,panZoom:s}=e.getState(),c=qN(r,o,a,i,l,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(r,n={})=>{const{transform:o,snapGrid:a,snapToGrid:i,domNode:l}=e.getState();if(!l)return r;const{x:s,y:c}=l.getBoundingClientRect(),u={x:r.x-s,y:r.y-c},d=n.snapGrid??a,p=n.snapToGrid??i;return xb(u,o,p,d)},flowToScreenPosition:r=>{const{transform:n,domNode:o}=e.getState();if(!o)return r;const{x:a,y:i}=o.getBoundingClientRect(),l=Xk(r,n);return{x:l.x+a,y:l.y+i}}}),[])};function vse(e,r){const n=[],o=new Map,a=[];for(const i of e)if(i.type==="add"){a.push(i);continue}else if(i.type==="remove"||i.type==="replace")o.set(i.id,[i]);else{const l=o.get(i.id);l?l.push(i):o.set(i.id,[i])}for(const i of r){const l=o.get(i.id);if(!l){n.push(i);continue}if(l[0].type==="remove")continue;if(l[0].type==="replace"){n.push({...l[0].item});continue}const s={...i};for(const c of l)rmt(c,s);n.push(s)}return a.length&&a.forEach(i=>{i.index!==void 0?n.splice(i.index,0,{...i.item}):n.push({...i.item})}),n}function rmt(e,r){switch(e.type){case"select":{r.selected=e.selected;break}case"position":{typeof e.position<"u"&&(r.position=e.position),typeof e.dragging<"u"&&(r.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(r.measured??={},r.measured.width=e.dimensions.width,r.measured.height=e.dimensions.height,e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(r.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(r.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(r.resizing=e.resizing);break}}}function nmt(e,r){return vse(e,r)}function omt(e,r){return vse(e,r)}function jp(e,r){return{id:e,type:"select",selected:r}}function og(e,r=new Set,n=!1){const o=[];for(const[a,i]of e){const l=r.has(a);!(i.selected===void 0&&!l)&&i.selected!==l&&(n&&(i.selected=l),o.push(jp(i.id,l)))}return o}function xse({items:e=[],lookup:r}){const n=[],o=new Map(e.map(a=>[a.id,a]));for(const[a,i]of e.entries()){const l=r.get(i.id),s=l?.internals?.userNode??l;s!==void 0&&s!==i&&n.push({id:i
M${N.x},${N.y}h${N.width}v${N.height}h${-N.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}lce.displayName="MiniMap",E.memo(lce);const Vgt=e=>r=>e?`${Math.max(1/r.transform[2],1)}`:void 0,Ygt={[ng.Line]:"right",[ng.Handle]:"bottom-right"};function Wgt({nodeId:e,position:r,variant:n=ng.Handle,className:o,style:a=void 0,children:i,color:l,minWidth:s=10,minHeight:c=10,maxWidth:u=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:p=!1,resizeDirection:f,autoScale:g=!0,shouldResize:b,onResizeStart:x,onResize:w,onResizeEnd:k}){const C=Ase(),_=typeof e=="string"?e:C,T=zr(),R=E.useRef(null),A=n===ng.Handle,D=tr(E.useCallback(Vgt(A&&g),[A,g]),Vr),N=E.useRef(null),P=r??Ygt[n];E.useEffect(()=>{if(!(!R.current||!_))return N.current||(N.current=Nft({domNode:R.current,nodeId:_,getStoreItems:()=>{const{nodeLookup:B,transform:L,snapGrid:Y,snapToGrid:M,nodeOrigin:q,domNode:I}=T.getState();return{nodeLookup:B,transform:L,snapGrid:Y,snapToGrid:M,nodeOrigin:q,paneDomNode:I}},onChange:(B,L)=>{const{triggerNodeChanges:Y,nodeLookup:M,parentLookup:q,nodeOrigin:I}=T.getState(),U=[],V={x:B.x,y:B.y},G=M.get(_);if(G&&G.expandParent&&G.parentId){const F=G.origin??I,J=B.width??G.measured.width??0,Q=B.height??G.measured.height??0,z={id:G.id,parentId:G.parentId,rect:{width:J,height:Q,...Nle({x:B.x??G.position.x,y:B.y??G.position.y},{width:J,height:Q},G.parentId,M,F)}},W=QN([z],M,q,I);U.push(...W),V.x=B.x?Math.max(F[0]*J,B.x):void 0,V.y=B.y?Math.max(F[1]*Q,B.y):void 0}if(V.x!==void 0&&V.y!==void 0){const F={id:_,type:"position",position:{...V}};U.push(F)}if(B.width!==void 0&&B.height!==void 0){const F={id:_,type:"dimensions",resizing:!0,setAttributes:f?f==="horizontal"?"width":"height":!0,dimensions:{width:B.width,height:B.height}};U.push(F)}for(const F of L){const J={...F,type:"position"};U.push(J)}Y(U)},onEnd:({width:B,height:L})=>{const Y={id:_,type:"dimensions",resizing:!1,dimensions:{width:B,height:L}};T.getState().triggerNodeChanges([Y])}})),N.current.update({controlPosition:P,boundaries:{minWidth:s,minHeight:c,maxWidth:u,maxHeight:d},keepAspectRatio:p,resizeDirection:f,onResizeStart:x,onResize:w,onResizeEnd:k,shouldResize:b}),()=>{N.current?.destroy()}},[P,s,c,u,d,p,x,w,k,b]);const O=P.split("-");return y.jsx("div",{className:Sn(["react-flow__resize-control","nodrag",...O,n,o]),ref:R,style:{...a,scale:D,...l&&{[A?"backgroundColor":"borderColor"]:l}},children:i})}E.memo(Wgt);var Ggt=Object.getOwnPropertyNames,Xgt=Object.getOwnPropertySymbols,Kgt=Object.prototype.hasOwnProperty;function sce(e,r){return function(n,o,a){return e(n,o,a)&&r(n,o,a)}}function l5(e){return function(r,n,o){if(!r||!n||typeof r!="object"||typeof n!="object")return e(r,n,o);var a=o.cache,i=a.get(r),l=a.get(n);if(i&&l)return i===n&&l===r;a.set(r,n),a.set(n,r);var s=e(r,n,o);return a.delete(r),a.delete(n),s}}function cce(e){return Ggt(e).concat(Xgt(e))}var Zgt=Object.hasOwn||(function(e,r){return Kgt.call(e,r)});function Bp(e,r){return e===r||!e&&!r&&e!==e&&r!==r}var Qgt="__v",Jgt="__o",e1t="_owner",uce=Object.getOwnPropertyDescriptor,dce=Object.keys;function t1t(e,r,n){var o=e.length;if(r.length!==o)return!1;for(;o-- >0;)if(!n.equals(e[o],r[o],o,o,e,r,n))return!1;return!0}function r1t(e,r){return Bp(e.getTime(),r.getTime())}function n1t(e,r){return e.name===r.name&&e.message===r.message&&e.cause===r.cause&&e.stack===r.stack}function o1t(e,r){return e===r}function pce(e,r,n){var o=e.size;if(o!==r.size)return!1;if(!o)return!0;for(var a=new Array(o),i=e.entries(),l,s,c=0;(l=i.next())&&!l.done;){for(var u=r.entries(),d=!1,p=0;(s=u.next())&&!s.done;){if(a[p]){p++;continue}var f=l.value,g=s.value;if(n.equals(f[0],g[0],c,p,e,r,n)&&n.equals(f[1],g[1],f[0],g[0],e,r,n)){d=a[p]=!0;break}p++}if(!d)return!1;c++}return!0}var a1t=Bp;function i1t(e,r,n){var o=dce(e),a=o.length;if(dce(r).length!==a)return!1;for(;a-- >0;)if(!fce(e,r,n,o[a]))return!1;return!0}function Sb(e,r,n){var o=cce(e),a=o.length;if(cce(r).length!==a)return!1;for(var i,l,s;a-- >0;)if(i=o[a],!fce(e,r,n,i)||(l=uce(e,i),s=uce(r,i),(l||s)&&(!l||!s||l.configurable!==s.configurable||l.enumerable!==s.enu
* @license
*
* The APCA contrast prediction algorithm is based of the formulas published
* in the APCA-1.0.98G specification by Myndex. The specification is available at:
* https://raw.githubusercontent.com/Myndex/apca-w3/master/images/APCAw3_0.1.17_APCA0.0.98G.svg
*
* Note that the APCA implementation is still beta, so please update to
* future versions of chroma.js when they become available.
*
* You can read more about the APCA Readability Criterion at
* https://readtech.org/ARC/
*/const Mce=.027,J0t=5e-4,eyt=.1,Ice=1.14,p5=.022,Lce=1.414,tyt=(e,r)=>{e=new Be(e),r=new Be(r),e.alpha()<1&&(e=lg(r,e,e.alpha(),"rgb"));const n=zce(...e.rgb()),o=zce(...r.rgb()),a=n>=p5?n:n+Math.pow(p5-n,Lce),i=o>=p5?o:o+Math.pow(p5-o,Lce),l=Math.pow(i,.56)-Math.pow(a,.57),s=Math.pow(i,.65)-Math.pow(a,.62),c=Math.abs(i-a)<J0t?0:a<i?l*Ice:s*Ice;return(Math.abs(c)<eyt?0:c>0?c-Mce:c+Mce)*100};function zce(e,r,n){return .2126729*Math.pow(e/255,2.4)+.7151522*Math.pow(r/255,2.4)+.072175*Math.pow(n/255,2.4)}const{sqrt:wc,pow:Cn,min:ryt,max:nyt,atan2:jce,abs:Bce,cos:h5,sin:Fce,exp:oyt,PI:Hce}=Math;function ayt(e,r,n=1,o=1,a=1){var i=function(Q){return 360*Q/(2*Hce)},l=function(Q){return 2*Hce*Q/360};e=new Be(e),r=new Be(r);const[s,c,u]=Array.from(e.lab()),[d,p,f]=Array.from(r.lab()),g=(s+d)/2,b=wc(Cn(c,2)+Cn(u,2)),x=wc(Cn(p,2)+Cn(f,2)),w=(b+x)/2,k=.5*(1-wc(Cn(w,7)/(Cn(w,7)+Cn(25,7)))),C=c*(1+k),_=p*(1+k),T=wc(Cn(C,2)+Cn(u,2)),R=wc(Cn(_,2)+Cn(f,2)),A=(T+R)/2,D=i(jce(u,C)),N=i(jce(f,_)),P=D>=0?D:D+360,O=N>=0?N:N+360,B=Bce(P-O)>180?(P+O+360)/2:(P+O)/2,L=1-.17*h5(l(B-30))+.24*h5(l(2*B))+.32*h5(l(3*B+6))-.2*h5(l(4*B-63));let Y=O-P;Y=Bce(Y)<=180?Y:O<=P?Y+360:Y-360,Y=2*wc(T*R)*Fce(l(Y)/2);const M=d-s,q=R-T,I=1+.015*Cn(g-50,2)/wc(20+Cn(g-50,2)),U=1+.045*A,V=1+.015*A*L,G=30*oyt(-Cn((B-275)/25,2)),F=-(2*wc(Cn(A,7)/(Cn(A,7)+Cn(25,7))))*Fce(2*l(G)),J=wc(Cn(M/(n*I),2)+Cn(q/(o*U),2)+Cn(Y/(a*V),2)+F*(q/(o*U))*(Y/(a*V)));return nyt(0,ryt(100,J))}function iyt(e,r,n="lab"){e=new Be(e),r=new Be(r);const o=e.get(n),a=r.get(n);let i=0;for(let l in o){const s=(o[l]||0)-(a[l]||0);i+=s*s}return Math.sqrt(i)}const lyt=(...e)=>{try{return new Be(...e),!0}catch{return!1}},syt={cool(){return d5([Zt.hsl(180,1,.9),Zt.hsl(250,.7,.4)])},hot(){return d5(["#000","#f00","#ff0","#fff"]).mode("rgb")}},SD={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8
* @version 1.4.0
* @date 2015-10-26
* @stability 3 - Stable
* @author Lauri Rooden (https://github.com/litejs/natural-compare-lite)
* @license MIT License
*/var e=function(r,n){var o,a,i=1,l=0,s=0,c=String.alphabet;function u(d,p,f){if(f){for(o=p;f=u(d,o),f<76&&f>65;)++o;return+d.slice(p-1,o)}return f=c&&c.indexOf(d.charAt(p)),f>-1?f+76:(f=d.charCodeAt(p)||0,f<45||f>127?f:f<46?65:f<48?f-1:f<58?f+18:f<65?f-11:f<91?f+11:f<97?f-37:f<123?f+5:f-63)}if((r+="")!=(n+="")){for(;i;)if(a=u(r,l++),i=u(n,s++),a<76&&i<76&&a>66&&i>66&&(a=u(r,l,l),i=u(n,s,l=o),s=o),a!=i)return a<i?-1:1}return 0};try{ND.exports=e}catch{String.naturalCompare=e}return ND.exports}_yt();let Tb=class{constructor(e,r,n){this.normal=r,this.property=e,n&&(this.space=n)}};Tb.prototype.normal={},Tb.prototype.property={},Tb.prototype.space=void 0;function lue(e,r){const n={},o={};for(const a of e)Object.assign(n,a.property),Object.assign(o,a.normal);return new Tb(n,o,r)}function Rb(e){return e.toLowerCase()}let da=class{constructor(e,r){this.attribute=r,this.property=e}};da.prototype.attribute="",da.prototype.booleanish=!1,da.prototype.boolean=!1,da.prototype.commaOrSpaceSeparated=!1,da.prototype.commaSeparated=!1,da.prototype.defined=!1,da.prototype.mustUseProperty=!1,da.prototype.number=!1,da.prototype.overloadedBoolean=!1,da.prototype.property="",da.prototype.spaceSeparated=!1,da.prototype.space=void 0;let Eyt=0;const Lt=Hp(),Rn=Hp(),sue=Hp(),qe=Hp(),Sr=Hp(),fg=Hp(),La=Hp();function Hp(){return 2**++Eyt}const DD=Object.freeze(Object.defineProperty({__proto__:null,boolean:Lt,booleanish:Rn,commaOrSpaceSeparated:La,commaSeparated:fg,number:qe,overloadedBoolean:sue,spaceSeparated:Sr},Symbol.toStringTag,{value:"Module"})),$D=Object.keys(DD);let PD=class extends da{constructor(e,r,n,o){let a=-1;if(super(e,r),cue(this,"space",o),typeof n=="number")for(;++a<$D.length;){const i=$D[a];cue(this,$D[a],(n&DD[i])===DD[i])}}};PD.prototype.defined=!0;function cue(e,r,n){n&&(e[r]=n)}function mg(e){const r={},n={};for(const[o,a]of Object.entries(e.properties)){const i=new PD(o,e.transform(e.attributes||{},o),a,e.space);e.mustUseProperty&&e.mustUseProperty.includes(o)&&(i.mustUseProperty=!0),r[o]=i,n[Rb(o)]=o,n[Rb(i.attribute)]=o}return new Tb(r,n,e.space)}const uue=mg({properties:{ariaActiveDescendant:null,ariaAtomic:Rn,ariaAutoComplete:null,ariaBusy:Rn,ariaChecked:Rn,ariaColCount:qe,ariaColIndex:qe,ariaColSpan:qe,ariaControls:Sr,ariaCurrent:null,ariaDescribedBy:Sr,ariaDetails:null,ariaDisabled:Rn,ariaDropEffect:Sr,ariaErrorMessage:null,ariaExpanded:Rn,ariaFlowTo:Sr,ariaGrabbed:Rn,ariaHasPopup:null,ariaHidden:Rn,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Sr,ariaLevel:qe,ariaLive:null,ariaModal:Rn,ariaMultiLine:Rn,ariaMultiSelectable:Rn,ariaOrientation:null,ariaOwns:Sr,ariaPlaceholder:null,ariaPosInSet:qe,ariaPressed:Rn,ariaReadOnly:Rn,ariaRelevant:null,ariaRequired:Rn,ariaRoleDescription:Sr,ariaRowCount:qe,ariaRowIndex:qe,ariaRowSpan:qe,ariaSelected:Rn,ariaSetSize:qe,ariaSort:null,ariaValueMax:qe,ariaValueMin:qe,ariaValueNow:qe,ariaValueText:null,role:null},transform(e,r){return r==="role"?r:"aria-"+r.slice(4).toLowerCase()}});function due(e,r){return r in e?e[r]:r}function pue(e,r){return due(e,r.toLowerCase())}const Syt=mg({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:fg,acceptCharset:Sr,accessKey:Sr,action:null,allow:null,allowFullScreen:Lt,allowPaymentRequest:Lt,allowUserMedia:Lt,alt:null,as:null,async:Lt,autoCapitalize:null,autoComplete:Sr,autoFocus:Lt,autoPlay:Lt,blocking:Sr,capture:null,charSet:null,checked:Lt,cite:null,className:Sr,cols:qe,colSpan:null,content:null,contentEditable:Rn,controls:Lt,controlsList:Sr,coords:qe|fg,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Lt,defer:Lt,dir:null,dirName:null,disabled:Lt,download:sue,draggable:Rn,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Lt,formTarget:null,headers:Sr,height:qe,hidden:Lt,high:qe,href:null,hrefLang:null,htmlFor:Sr,httpEquiv:Sr,id:null,imageSizes:null,imageSrcSet:null,inert:Lt,inputMode:null,integrity:nu
\f\r &/=>`.split(""),`
\f\r "&'/=>\``.split("")],[`\0
\f\r "&'/<=>`.split(""),`\0
\f\r "&'/<=>\``.split("")]],unquoted:[[`
\f\r &>`.split(""),`\0
\f\r "&'<=>\``.split("")],[`\0
\f\r "&'<=>\``.split(""),`\0
\f\r "&'<=>\``.split("")]],single:[["&'".split(""),"\"&'`".split("")],["\0&'".split(""),"\0\"&'`".split("")]],double:[['"&'.split(""),"\"&'`".split("")],['\0"&'.split(""),"\0\"&'`".split("")]]};function lvt(e,r,n,o){const a=o.schema,i=a.space==="svg"?!1:o.settings.omitOptionalTags;let l=a.space==="svg"?o.settings.closeEmptyElements:o.settings.voids.includes(e.tagName.toLowerCase());const s=[];let c;a.space==="html"&&e.tagName==="svg"&&(o.schema=bue);const u=svt(o,e.properties),d=o.all(a.space==="html"&&e.tagName==="template"?e.content:e);return o.schema=a,d&&(l=!1),(u||!i||!tvt(e,r,n))&&(s.push("<",e.tagName,u?" "+u:""),l&&(a.space==="svg"||o.settings.closeSelfClosing)&&(c=u.charAt(u.length-1),(!o.settings.tightSelfClosing||c==="/"||c&&c!=='"'&&c!=="'")&&s.push(" "),s.push("/")),s.push(">")),s.push(d),!l&&(!i||!YD(e,r,n))&&s.push("</"+e.tagName+">"),s.join("")}function svt(e,r){const n=[];let o=-1,a;if(r){for(a in r)if(r[a]!==null&&r[a]!==void 0){const i=cvt(e,a,r[a]);i&&n.push(i)}}for(;++o<n.length;){const i=e.settings.tightAttributes?n[o].charAt(n[o].length-1):void 0;o!==n.length-1&&i!=='"'&&i!=="'"&&(n[o]+=" ")}return n.join("")}function cvt(e,r,n){const o=yue(e.schema,r),a=e.settings.allowParseErrors&&e.schema.space==="html"?0:1,i=e.settings.allowDangerousCharacters?0:1;let l=e.quote,s;if(o.overloadedBoolean&&(n===o.attribute||n==="")?n=!0:(o.boolean||o.overloadedBoolean)&&(typeof n!="string"||n===o.attribute||n==="")&&(n=!!n),n==null||n===!1||typeof n=="number"&&Number.isNaN(n))return"";const c=vg(o.attribute,Object.assign({},e.settings.characterReferences,{subset:v5.name[a][i]}));return n===!0||(n=Array.isArray(n)?(o.commaSeparated?xue:_ue)(n,{padLeft:!e.settings.tightCommaSeparatedLists}):String(n),e.settings.collapseEmptyAttributes&&!n)?c:(e.settings.preferUnquoted&&(s=vg(n,Object.assign({},e.settings.characterReferences,{attribute:!0,subset:v5.unquoted[a][i]}))),s!==n&&(e.settings.quoteSmart&&Kue(n,l)>Kue(n,e.alternative)&&(l=e.alternative),s=l+vg(n,Object.assign({},e.settings.characterReferences,{subset:(l==="'"?v5.single:v5.double)[a][i],attribute:!0}))+l),c+(s&&"="+s))}const uvt=["<","&"];function nde(e,r,n,o){return n&&n.type==="element"&&(n.tagName==="script"||n.tagName==="style")?e.value:vg(e.value,Object.assign({},o.settings.characterReferences,{subset:uvt}))}function dvt(e,r,n,o){return o.settings.allowDangerousHtml?e.value:nde(e,r,n,o)}function pvt(e,r,n,o){return o.all(e)}zue("type",{invalid:hvt,unknown:fvt,handlers:{comment:zbt,doctype:jbt,element:lvt,raw:dvt,root:pvt,text:nde}});function hvt(e){throw new Error("Expected node, not `"+e+"`")}function fvt(e){const r=e;throw new Error("Cannot compile unknown node `"+r.type+"`")}const Nb=x5(/[A-Za-z]/),GD=x5(/[\dA-Za-z]/);function mvt(e){return e!==null&&(e<32||e===127)}function xg(e){return e!==null&&(e<0||e===32)}const ode=x5(new RegExp("\\p{P}|\\p{S}","u")),Db=x5(/\s/);function x5(e){return r;function r(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}Wue(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function gvt(e,r,n,o){const a=e.length;let i=0,l;if(r<0?r=-r>a?0:a+r:r=r>a?a:r,n=n>0?n:0,o.length<1e4)l=Array.from(o),l.unshift(r,n),e.splice(...l);else for(n&&e.splice(r,n);i<o.length;)l=o.slice(i,i+1e4),l.unshift(r,0),e.splice(...l),i+=1e4,r+=1e4}const yvt={tokenize:kvt,partial:!0},ade={tokenize:_vt,partial:!0},ide={tokenize:Evt,partial:!0},lde={tokenize:Svt,partial:!0},bvt={tokenize:Cvt,partial:!0},sde={name:"wwwAutolink",tokenize:xvt,previous:ude},cde={name:"protocolAutolink",tokenize:wvt,previous:dde},_c={name:"emailAutolink",tokenize:vvt,previous:pde},Ec={};let Vp=48;for(;Vp<123;)Ec[Vp]=_c,Vp++,Vp===58?Vp=65:Vp===91&&(Vp=97);Ec[43]=_c,Ec[45]=_c,Ec[46]=_c,Ec[95]=_c,Ec[72]=[_c,cde],Ec[104]=[_c,cde],Ec[87]=[_c,sde],Ec[119]=[_c,sde];function vvt(e,r,n){const o=this;let a,i;return l;function l(p){return!XD(p)||!pde.call(o,o.previous)||KD(o.events)?n(p):(e.enter("literalAutolink"),e.ente
`).filter(i=>i),o=Math.min(...n.map(i=>i.length-i.trimStart().length)),a=n.map(i=>i.slice(o)).map(i=>" ".repeat(this.indent*2)+i);for(const i of a)this.content.push(i)}compile(){const r=Function,n=this?.args,o=[...(this?.content??[""]).map(a=>` ${a}`)];return new r(...n,o.join(`
`))}}const wwt={major:4,minor:0,patch:0},en=$e("$ZodType",(e,r)=>{var n;e??(e={}),e._zod.def=r,e._zod.bag=e._zod.bag||{},e._zod.version=wwt;const o=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&o.unshift(e);for(const a of o)for(const i of a._zod.onattach)i(e);if(o.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const a=(i,l,s)=>{let c=Bb(i),u;for(const d of l){if(d._zod.def.when){if(!d._zod.def.when(i))continue}else if(c)continue;const p=i.issues.length,f=d._zod.check(i);if(f instanceof Promise&&s?.async===!1)throw new Lb;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await f,i.issues.length!==p&&(c||(c=Bb(i,p)))});else{if(i.issues.length===p)continue;c||(c=Bb(i,p))}}return u?u.then(()=>i):i};e._zod.run=(i,l)=>{const s=e._zod.parse(i,l);if(s instanceof Promise){if(l.async===!1)throw new Lb;return s.then(c=>a(c,o,l))}return a(s,o,l)}}e["~standard"]={validate:a=>{try{const i=Lxt(e,a);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return zxt(e,a).then(i=>i.success?{value:i.data}:{issues:i.error?.issues})}},vendor:"zod",version:1}}),A5=$e("$ZodString",(e,r)=>{en.init(e,r),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??iwt(e._zod.bag),e._zod.parse=(n,o)=>{if(r.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),Br=$e("$ZodStringFormat",(e,r)=>{R5.init(e,r),A5.init(e,r)}),kwt=$e("$ZodGUID",(e,r)=>{r.pattern??(r.pattern=Yxt),Br.init(e,r)}),_wt=$e("$ZodUUID",(e,r)=>{if(r.version){const n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[r.version];if(n===void 0)throw new Error(`Invalid UUID version: "${r.version}"`);r.pattern??(r.pattern=fhe(n))}else r.pattern??(r.pattern=fhe());Br.init(e,r)}),Ewt=$e("$ZodEmail",(e,r)=>{r.pattern??(r.pattern=Wxt),Br.init(e,r)}),Swt=$e("$ZodURL",(e,r)=>{Br.init(e,r),e._zod.check=n=>{try{const o=n.value,a=new URL(o),i=a.href;r.hostname&&(r.hostname.lastIndex=0,r.hostname.test(a.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:twt.source,input:n.value,inst:e,continue:!r.abort})),r.protocol&&(r.protocol.lastIndex=0,r.protocol.test(a.protocol.endsWith(":")?a.protocol.slice(0,-1):a.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:r.protocol.source,input:n.value,inst:e,continue:!r.abort})),!o.endsWith("/")&&i.endsWith("/")?n.value=i.slice(0,-1):n.value=i;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!r.abort})}}}),Cwt=$e("$ZodEmoji",(e,r)=>{r.pattern??(r.pattern=Xxt()),Br.init(e,r)}),Twt=$e("$ZodNanoID",(e,r)=>{r.pattern??(r.pattern=qxt),Br.init(e,r)}),Rwt=$e("$ZodCUID",(e,r)=>{r.pattern??(r.pattern=jxt),Br.init(e,r)}),Awt=$e("$ZodCUID2",(e,r)=>{r.pattern??(r.pattern=Bxt),Br.init(e,r)}),Nwt=$e("$ZodULID",(e,r)=>{r.pattern??(r.pattern=Fxt),Br.init(e,r)}),Dwt=$e("$ZodXID",(e,r)=>{r.pattern??(r.pattern=Hxt),Br.init(e,r)}),$wt=$e("$ZodKSUID",(e,r)=>{r.pattern??(r.pattern=Uxt),Br.init(e,r)}),Pwt=$e("$ZodISODateTime",(e,r)=>{r.pattern??(r.pattern=awt(r)),Br.init(e,r)}),Owt=$e("$ZodISODate",(e,r)=>{r.pattern??(r.pattern=nwt),Br.init(e,r)}),Mwt=$e("$ZodISOTime",(e,r)=>{r.pattern??(r.pattern=owt(r)),Br.init(e,r)}),Iwt=$e("$ZodISODuration",(e,r)=>{r.pattern??(r.pattern=Vxt),Br.init(e,r)}),Lwt=$e("$ZodIPv4",(e,r)=>{r.pattern??(r.pattern=Kxt),Br.init(e,r),e._zod.onattach.push(n=>{const o=n._zod.bag;o.format="ipv4"})}),zwt=$e("$ZodIPv6",(e,r)=>{r.pattern??(r.pattern=Zxt),Br.init(e,r),e._zod.onattach.push(n=>{const o=n._zod.bag;o.format="ipv6"}),e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!r.abort})}}}),jwt=$e("$ZodCIDRv4",(e,r)=>{r.pattern??(r.pattern=Qxt),Br.init(e,r)}),Bwt=$e("$ZodCIDRv6",(e,r)=>{r.pattern??(r.pattern=Jxt),Br.init(e,r),e._zod.check=n=>{const[o,a]=n.value.split("/");try{if(!a)throw new Error;const i=Number(a);if(`${i}`!==a)throw new Error;if(i<0||i>128)throw new Err
if (${C}.issues.length) {
if (input[${_}] === undefined) {
if (${_} in input) {
newResult[${_}] = undefined;
}
} else {
payload.issues = payload.issues.concat(
${C}.issues.map((iss) => ({
...iss,
path: iss.path ? [${_}, ...iss.path] : [${_}],
}))
);
}
} else if (${C}.value === undefined) {
if (${_} in input) newResult[${_}] = undefined;
} else {
newResult[${_}] = ${C}.value;
}
`)}else{const C=b[k];p.write(`const ${C} = ${g(k)};`),p.write(`
if (${C}.issues.length) payload.issues = payload.issues.concat(${C}.issues.map(iss => ({
...iss,
path: iss.path ? [${zb(k)}, ...iss.path] : [${zb(k)}]
})));`),p.write(`newResult[${zb(k)}] = ${C}.value`)}p.write("payload.value = newResult;"),p.write("return payload;");const w=p.compile();return(k,C)=>w(d,k,C)};let a;const i=dP,l=!ahe.jitless,s=l&&Sxt.value,c=r.catchall;let u;e._zod.parse=(d,p)=>{u??(u=n.value);const f=d.value;if(!i(f))return d.issues.push({expected:"object",code:"invalid_type",input:f,inst:e}),d;const g=[];if(l&&s&&p?.async===!1&&p.jitless!==!0)a||(a=o(r.shape)),d=a(d,p);else{d.value={};const C=u.shape;for(const _ of u.keys){const T=C[_],R=T._zod.run({value:f[_],issues:[]},p),A=T._zod.optin==="optional"&&T._zod.optout==="optional";R instanceof Promise?g.push(R.then(D=>A?whe(D,d,_,f):N5(D,d,_))):A?whe(R,d,_,f):N5(R,d,_)}}if(!c)return g.length?Promise.all(g).then(()=>d):d;const b=[],x=u.keySet,w=c._zod,k=w.def.type;for(const C of Object.keys(f)){if(x.has(C))continue;if(k==="never"){b.push(C);continue}const _=w.run({value:f[C],issues:[]},p);_ instanceof Promise?g.push(_.then(T=>N5(T,d,C))):N5(_,d,C)}return b.length&&d.issues.push({code:"unrecognized_keys",keys:b,input:f,inst:e}),g.length?Promise.all(g).then(()=>d):d}});function khe(e,r,n,o){for(const a of e)if(a.issues.length===0)return r.value=a.value,r;return r.issues.push({code:"invalid_union",input:r.value,inst:n,errors:e.map(a=>a.issues.map(i=>Zp(i,o,Xp())))}),r}const Zwt=$e("$ZodUnion",(e,r)=>{en.init(e,r),jr(e._zod,"optin",()=>r.options.some(n=>n._zod.optin==="optional")?"optional":void 0),jr(e._zod,"optout",()=>r.options.some(n=>n._zod.optout==="optional")?"optional":void 0),jr(e._zod,"values",()=>{if(r.options.every(n=>n._zod.values))return new Set(r.options.flatMap(n=>Array.from(n._zod.values)))}),jr(e._zod,"pattern",()=>{if(r.options.every(n=>n._zod.pattern)){const n=r.options.map(o=>o._zod.pattern);return new RegExp(`^(${n.map(o=>cP(o.source)).join("|")})$`)}}),e._zod.parse=(n,o)=>{let a=!1;const i=[];for(const l of r.options){const s=l._zod.run({value:n.value,issues:[]},o);if(s instanceof Promise)i.push(s),a=!0;else{if(s.issues.length===0)return s;i.push(s)}}return a?Promise.all(i).then(l=>khe(l,n,e,o)):khe(i,n,e,o)}}),Qwt=$e("$ZodIntersection",(e,r)=>{en.init(e,r),e._zod.parse=(n,o)=>{const a=n.value,i=r.left._zod.run({value:a,issues:[]},o),l=r.right._zod.run({value:a,issues:[]},o);return i instanceof Promise||l instanceof Promise?Promise.all([i,l]).then(([s,c])=>_he(n,s,c)):_he(n,i,l)}});function mP(e,r){if(e===r)return{valid:!0,data:e};if(e instanceof Date&&r instanceof Date&&+e==+r)return{valid:!0,data:e};if(pP(e)&&pP(r)){const n=Object.keys(r),o=Object.keys(e).filter(i=>n.indexOf(i)!==-1),a={...e,...r};for(const i of o){const l=mP(e[i],r[i]);if(!l.valid)return{valid:!1,mergeErrorPath:[i,...l.mergeErrorPath]};a[i]=l.data}return{valid:!0,data:a}}if(Array.isArray(e)&&Array.isArray(r)){if(e.length!==r.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let o=0;o<e.length;o++){const a=e[o],i=r[o],l=mP(a,i);if(!l.valid)return{valid:!1,mergeErrorPath:[o,...l.mergeErrorPath]};n.push(l.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function _he(e,r,n){if(r.issues.length&&e.issues.push(...r.issues),n.issues.length&&e.issues.push(...n.issues),Bb(e))return e;const o=mP(r.value,n.value);if(!o.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}const Jwt=$e("$ZodEnum",(e,r)=>{en.init(e,r);const n=_xt(r.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(o=>Cxt.has(typeof o)).map(o=>typeof o=="string"?jb(o):o.toString()).join("|")})$`),e._zod.parse=(o,a)=>{const i=o.value;return e._zod.values.has(i)||o.issues.push({code:"invalid_value",values:n,input:i,inst:e}),o}}),e2t=$e("$ZodLiteral",(e,r)=>{en.init(e,r),e._zod.values=new Set(r.values),e._zod.pattern=new RegExp(`^(${r.values.map(n=>typeof n=="string"?jb(n):n?n.toString():String(n)).join("|")})$`),e._zod.parse=(n,o)=>{const a=n.value;return e._zod.values.has(a)||n.issues.push({code:"invalid_value",values:r.values,input:a,inst:e}),n}}),Ehe=$e("$ZodTransform",(e,r)=>{en.init(e,r),e._zod.parse=(n,o)=>{const a=r.transform(n.value,n
:host {
display: block;
position: relative;
background-color: transparent;
width: 100%;
height: 100%;
box-sizing: border-box;
overflow: hidden;
border: 0px solid transparent;
padding: 0;
}`;r!==this.lastHostCss&&(this.hostCss?.replaceSync(r),this.lastHostCss=r)}connectedCallback(){this.lastHostCss="",this.hostCss=new CSSStyleSheet,this.updateHostCss(),this.shadow.adoptedStyleSheets=[this.hostCss],this.render()}disconnectedCallback(){this.root?.unmount(),this.root=void 0,this.shadow.adoptedStyleSheets.length=0,this.hostCss=void 0}static observedAttributes=["view-id","browser","dynamic-variant"];getProps(){const r=ikt.safeParse({viewId:this.getAttribute("view-id"),browser:this.getAttribute("browser")??void 0,dynamicViewVariant:this.getAttribute("dynamic-variant")??void 0});return r.success?r.data:(console.error("Invalid props",dhe(r.error)),{viewId:"index"})}render(){const r=this.getProps();this.updateHostCss(),this.root??=Ltt.createRoot(this.shadow),this.root.render(y.jsx($tt,{...r}))}attributeChangedCallback(r){this.root&&this.render()}}return customElements.define(ztt.View,Vhe),F_.LikeC4View=Vhe,Object.defineProperty(F_,Symbol.toStringTag,{value:"Module"}),F_})({});
/* prettier-ignore-end */