likec4 1.55.1 → 1.57.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__app__/chunks/AIChat2.mjs +2 -0
- package/__app__/chunks/DiagramActorProvider.mjs +10 -0
- package/__app__/chunks/EmbedPage.mjs +1 -0
- package/__app__/chunks/ExportPage.mjs +2 -0
- package/__app__/chunks/LikeC4Diagram.mjs +19 -0
- package/__app__/chunks/LikeC4Styles.mjs +48 -0
- package/__app__/chunks/Markdown.mjs +1 -0
- package/__app__/chunks/NavigationPanel.mjs +1 -0
- package/__app__/chunks/ViewReact.mjs +1 -0
- package/__app__/chunks/adhoc-editor.mjs +1 -0
- package/__app__/chunks/aichat.mjs +1 -0
- package/__app__/chunks/box.mjs +1 -0
- package/__app__/chunks/create-style-context.mjs +1 -0
- package/__app__/chunks/css.mjs +1 -0
- package/__app__/chunks/factory.mjs +1 -0
- package/__app__/chunks/hooks.mjs +1 -0
- package/__app__/chunks/hstack.mjs +1 -0
- package/__app__/chunks/libs/@dagrejs/dagre.mjs +1 -0
- package/__app__/chunks/libs/@floating-ui/core.mjs +1 -0
- package/__app__/chunks/libs/@floating-ui/dom.mjs +1 -0
- package/__app__/chunks/libs/@floating-ui/react.mjs +1 -0
- package/__app__/chunks/libs/@mantine/core.mjs +41 -0
- package/__app__/chunks/libs/@mantine/hooks.mjs +1 -0
- package/__app__/chunks/libs/@nanostores/react.mjs +1 -0
- package/__app__/chunks/libs/@react-hookz/web.mjs +1 -0
- package/__app__/chunks/libs/@tabler/icons-react.mjs +358 -0
- package/__app__/chunks/libs/@tanstack/ai-client.mjs +2 -0
- package/__app__/chunks/libs/@tanstack/ai-react-ui.mjs +1 -0
- package/__app__/chunks/libs/@tanstack/ai-react.mjs +1 -0
- package/__app__/chunks/libs/@tanstack/ai.mjs +2 -0
- package/__app__/chunks/libs/@tanstack/history.mjs +1 -0
- package/__app__/chunks/libs/@tanstack/react-router.mjs +3 -0
- package/__app__/chunks/libs/@tanstack/router-core.mjs +1 -0
- package/__app__/chunks/libs/@xstate/react.mjs +1 -0
- package/__app__/chunks/libs/@xstate/store.mjs +1 -0
- package/__app__/chunks/libs/@xyflow/react.mjs +7 -0
- package/__app__/chunks/libs/@zag-js/anatomy.mjs +1 -0
- package/__app__/chunks/libs/@zag-js/collection.mjs +1 -0
- package/__app__/chunks/libs/@zag-js/core.mjs +1 -0
- package/__app__/chunks/libs/@zag-js/react.mjs +1 -0
- package/__app__/chunks/libs/@zag-js/tree-view.mjs +1 -0
- package/__app__/chunks/libs/bezier-js.mjs +1 -0
- package/__app__/chunks/libs/copy-anything.mjs +1 -0
- package/__app__/chunks/libs/d3-path.mjs +1 -0
- package/__app__/chunks/libs/d3-shape.mjs +1 -0
- package/__app__/chunks/libs/fast-equals.mjs +1 -0
- package/__app__/chunks/libs/framer-motion.mjs +9 -0
- package/__app__/chunks/libs/html-to-image.mjs +2 -0
- package/__app__/chunks/libs/motion-dom.mjs +1 -0
- package/__app__/chunks/libs/nanostores.mjs +1 -0
- package/__app__/chunks/libs/react-error-boundary.mjs +1 -0
- package/__app__/chunks/libs/react-resizable-panels.mjs +1 -0
- package/__app__/chunks/libs/remeda.mjs +1 -0
- package/__app__/chunks/libs/superjson.mjs +1 -0
- package/__app__/chunks/libs/zod.mjs +64 -0
- package/__app__/chunks/rolldown-runtime.mjs +1 -0
- package/__app__/chunks/styles.css.mjs +1 -0
- package/__app__/chunks/txt.mjs +1 -0
- package/__app__/chunks/useLikeC4Project.mjs +1 -0
- package/__app__/codegen/react.mjs +11 -0
- package/__app__/codegen/webcomponent.mjs +942 -0
- package/__app__/src/aichat/index.mjs +1 -0
- package/__app__/src/fonts.css +1 -1
- package/__app__/src/main.mjs +45 -0
- package/__app__/src/pages/AdHocViewEditor.mjs +1 -0
- package/__app__/src/pages/EmbedPage.mjs +1 -0
- package/__app__/src/pages/ExportPage.mjs +1 -0
- package/__app__/src/pages/ProjectsOverview.mjs +1 -0
- package/__app__/src/pages/ViewAsD2.mjs +1 -0
- package/__app__/src/pages/ViewAsDot.mjs +1 -0
- package/__app__/src/pages/ViewAsMmd.mjs +1 -0
- package/__app__/src/pages/ViewAsPuml.mjs +1 -0
- package/__app__/src/pages/ViewEditor.mjs +1 -0
- package/__app__/src/pages/ViewReact.mjs +1 -0
- package/__app__/src/style.css +1 -1
- package/config/schema.json +14 -41
- package/dist/chunks/enableServer.mjs +1 -0
- package/dist/chunks/filenames.mjs +17 -0
- package/dist/{_chunks → chunks}/index.d.mts +2 -1
- package/dist/{_chunks → chunks}/index2.d.mts +639 -388
- package/dist/chunks/libs/@chevrotain/gast.mjs +1 -0
- package/dist/chunks/libs/@chevrotain/regexp-to-ast.mjs +9 -0
- package/dist/chunks/libs/@chevrotain/utils.mjs +1 -0
- package/dist/chunks/libs/@hono/mcp.mjs +70 -0
- package/dist/chunks/libs/@hono/node-server.mjs +1 -0
- package/dist/{_chunks → chunks}/libs/@logtape/logtape.d.mts +2 -0
- package/dist/chunks/libs/@logtape/logtape.mjs +4 -0
- package/dist/chunks/libs/@lume/kiwi.mjs +1 -0
- package/dist/chunks/libs/@modelcontextprotocol/sdk.mjs +12 -0
- package/dist/chunks/libs/@ts-graphviz/ast.mjs +3 -0
- package/dist/chunks/libs/@ts-graphviz/common.d.mts +9 -0
- package/dist/chunks/libs/@ts-graphviz/core.mjs +1 -0
- package/dist/chunks/libs/ajv.mjs +1 -0
- package/dist/chunks/libs/ansi-align.mjs +2 -0
- package/dist/chunks/libs/ansi-regex.mjs +1 -0
- package/dist/chunks/libs/ansi-styles.mjs +1 -0
- package/dist/chunks/libs/atomically.mjs +1 -0
- package/dist/chunks/libs/birpc.mjs +1 -0
- package/dist/chunks/libs/boxen.mjs +22 -0
- package/dist/chunks/libs/chevrotain-allstar.mjs +2 -0
- package/dist/chunks/libs/chevrotain.mjs +58 -0
- package/dist/chunks/libs/conf.mjs +1 -0
- package/dist/chunks/libs/defu.mjs +1 -0
- package/dist/chunks/libs/destr.mjs +1 -0
- package/dist/chunks/libs/eventemitter3.mjs +1 -0
- package/dist/chunks/libs/find-up-simple.mjs +1 -0
- package/dist/chunks/libs/get-port.mjs +1 -0
- package/dist/chunks/libs/hono.mjs +1 -0
- package/dist/chunks/libs/is-docker.mjs +1 -0
- package/dist/chunks/libs/is-error-instance.mjs +1 -0
- package/dist/chunks/libs/is-inside-container.mjs +1 -0
- package/dist/chunks/libs/is-plain-obj.mjs +1 -0
- package/dist/chunks/libs/isexe.mjs +1 -0
- package/dist/chunks/libs/json5.mjs +14 -0
- package/dist/chunks/libs/khroma.mjs +1 -0
- package/dist/chunks/libs/ky.mjs +3 -0
- package/dist/{_chunks → chunks}/libs/langium.d.mts +9 -9
- package/dist/chunks/libs/langium.mjs +32 -0
- package/dist/chunks/libs/merge-error-cause.mjs +2 -0
- package/dist/chunks/libs/p-debounce.mjs +1 -0
- package/dist/chunks/libs/p-limit.mjs +1 -0
- package/dist/chunks/libs/p-queue.mjs +1 -0
- package/dist/chunks/libs/p-timeout.mjs +1 -0
- package/dist/chunks/libs/package-manager-detector.mjs +1 -0
- package/dist/chunks/libs/package-up.mjs +1 -0
- package/dist/chunks/libs/pako.mjs +3 -0
- package/dist/chunks/libs/parse-ms.mjs +1 -0
- package/dist/chunks/libs/pathe.mjs +1 -0
- package/dist/chunks/libs/picomatch.mjs +1 -0
- package/dist/chunks/libs/pretty-ms.mjs +1 -0
- package/dist/chunks/libs/remeda.mjs +1 -0
- package/dist/chunks/libs/safe-stringify.mjs +1 -0
- package/dist/chunks/libs/strip-indent.mjs +1 -0
- package/dist/chunks/libs/tinyrainbow.mjs +1 -0
- package/dist/chunks/libs/ts-graphviz.mjs +1 -0
- package/dist/chunks/libs/ufo.mjs +1 -0
- package/dist/chunks/libs/unctx.mjs +1 -0
- package/dist/chunks/libs/unstorage.mjs +1 -0
- package/dist/chunks/libs/vscode-languageserver.mjs +1 -0
- package/dist/chunks/libs/which.mjs +1 -0
- package/dist/chunks/libs/word-wrap.mjs +12 -0
- package/dist/{_chunks → chunks}/libs/zod.d.mts +62 -25
- package/dist/chunks/node.mjs +93 -0
- package/dist/chunks/plugin.mjs +593 -0
- package/dist/chunks/rolldown-runtime.mjs +1 -0
- package/dist/chunks/sequence-view.mjs +1 -0
- package/dist/cli/index.mjs +188 -59
- package/dist/config/index.d.mts +1 -2
- package/dist/config/index.mjs +1 -1
- package/dist/index.d.mts +2 -135
- package/dist/index.mjs +1 -1
- package/dist/model/index.d.mts +3 -2
- package/dist/model/index.mjs +1 -1
- package/dist/vite-plugin/index.d.mts +90 -9
- package/dist/vite-plugin/index.mjs +1 -1
- package/dist/vite-plugin/internal/chunks/libs/@nanostores/react.mjs +1 -0
- package/dist/vite-plugin/internal/chunks/libs/birpc.mjs +1 -0
- package/dist/vite-plugin/internal/chunks/libs/fast-equals.mjs +1 -0
- package/dist/vite-plugin/internal/chunks/libs/nanostores.mjs +1 -0
- package/dist/vite-plugin/internal/chunks/libs/remeda.mjs +1 -0
- package/dist/vite-plugin/internal/chunks/rolldown-runtime.mjs +1 -0
- package/dist/{_chunks/libs/@nanostores/react.d.mts → vite-plugin/internal/index.d.mts} +103 -45
- package/dist/vite-plugin/internal/index.mjs +1 -0
- package/package.json +74 -80
- package/react/index.d.mts +84 -78
- package/react/index.mjs +51954 -53701
- package/vite-plugin/internal/package.json +2 -2
- package/vite-plugin-modules.d.ts +18 -0
- package/__app__/react/likec4.tsx +0 -25
- package/__app__/src/ProjectsOverview.js +0 -16
- package/__app__/src/const.js +0 -19
- package/__app__/src/likec4.js +0 -21254
- package/__app__/src/main.js +0 -7
- package/__app__/src/routes/index.js +0 -324
- package/__app__/src/routes/projects.js +0 -193
- package/__app__/src/routes/single.js +0 -1983
- package/__app__/src/vendors.js +0 -52683
- package/__app__/src/webcomponent.js +0 -68
- package/dist/THIRD-PARTY-LICENSES.md +0 -1609
- package/dist/_chunks/libs/@chevrotain/cst-dts-gen.mjs +0 -30
- package/dist/_chunks/libs/@chevrotain/regexp-to-ast.mjs +0 -9
- package/dist/_chunks/libs/@chevrotain/types.d.mts +0 -1
- package/dist/_chunks/libs/@chevrotain/utils.mjs +0 -1
- package/dist/_chunks/libs/@hono/mcp.mjs +0 -45
- package/dist/_chunks/libs/@hono/node-server.mjs +0 -1
- package/dist/_chunks/libs/@logtape/logtape.mjs +0 -4
- package/dist/_chunks/libs/@lume/kiwi.mjs +0 -1
- package/dist/_chunks/libs/@modelcontextprotocol/sdk.mjs +0 -12
- package/dist/_chunks/libs/@nanostores/react.mjs +0 -1
- package/dist/_chunks/libs/ajv.mjs +0 -1
- package/dist/_chunks/libs/ansi-align.mjs +0 -2
- package/dist/_chunks/libs/ansi-regex.mjs +0 -1
- package/dist/_chunks/libs/ansi-styles.mjs +0 -1
- package/dist/_chunks/libs/atomically.mjs +0 -1
- package/dist/_chunks/libs/birpc.mjs +0 -1
- package/dist/_chunks/libs/boxen.mjs +0 -22
- package/dist/_chunks/libs/chevrotain-allstar.mjs +0 -2
- package/dist/_chunks/libs/chevrotain.mjs +0 -58
- package/dist/_chunks/libs/conf.mjs +0 -1
- package/dist/_chunks/libs/defu.mjs +0 -1
- package/dist/_chunks/libs/destr.mjs +0 -1
- package/dist/_chunks/libs/esm-env.mjs +0 -1
- package/dist/_chunks/libs/eventemitter3.mjs +0 -1
- package/dist/_chunks/libs/fast-equals.mjs +0 -1
- package/dist/_chunks/libs/find-up-simple.mjs +0 -1
- package/dist/_chunks/libs/get-port.mjs +0 -1
- package/dist/_chunks/libs/is-docker.mjs +0 -1
- package/dist/_chunks/libs/is-error-instance.mjs +0 -1
- package/dist/_chunks/libs/is-inside-container.mjs +0 -1
- package/dist/_chunks/libs/is-plain-obj.mjs +0 -1
- package/dist/_chunks/libs/isexe.mjs +0 -1
- package/dist/_chunks/libs/json5.mjs +0 -14
- package/dist/_chunks/libs/khroma.mjs +0 -1
- package/dist/_chunks/libs/ky.mjs +0 -3
- package/dist/_chunks/libs/langium.mjs +0 -33
- package/dist/_chunks/libs/merge-error-cause.mjs +0 -2
- package/dist/_chunks/libs/p-limit.mjs +0 -1
- package/dist/_chunks/libs/p-queue.mjs +0 -1
- package/dist/_chunks/libs/p-timeout.mjs +0 -1
- package/dist/_chunks/libs/package-manager-detector.mjs +0 -1
- package/dist/_chunks/libs/package-up.mjs +0 -1
- package/dist/_chunks/libs/pako.mjs +0 -1
- package/dist/_chunks/libs/parse-ms.mjs +0 -1
- package/dist/_chunks/libs/pathe.mjs +0 -1
- package/dist/_chunks/libs/picomatch.mjs +0 -1
- package/dist/_chunks/libs/pretty-ms.mjs +0 -1
- package/dist/_chunks/libs/remeda.mjs +0 -2
- package/dist/_chunks/libs/safe-stringify.mjs +0 -1
- package/dist/_chunks/libs/strip-indent.mjs +0 -1
- package/dist/_chunks/libs/tinyrainbow.mjs +0 -1
- package/dist/_chunks/libs/ts-graphviz.d.mts +0 -10
- package/dist/_chunks/libs/ts-graphviz.mjs +0 -4
- package/dist/_chunks/libs/ufo.mjs +0 -1
- package/dist/_chunks/libs/unstorage.mjs +0 -1
- package/dist/_chunks/libs/vscode-languageserver.mjs +0 -1
- package/dist/_chunks/libs/which.mjs +0 -1
- package/dist/_chunks/libs/word-wrap.mjs +0 -12
- package/dist/_chunks/node.mjs +0 -76
- package/dist/_chunks/rolldown-runtime.mjs +0 -1
- package/dist/_chunks/sequence.mjs +0 -1
- package/dist/_chunks/src.mjs +0 -17
- package/dist/_chunks/src2.mjs +0 -499
- package/dist/vite-plugin/internal.d.mts +0 -44
- package/dist/vite-plugin/internal.mjs +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{l as e}from"./libs/@tanstack/react-router.mjs";import{W as t,Y as n,v as r}from"./libs/remeda.mjs";import{M as i,Tt as a,X as o,_ as s,h as c,mt as l,pt as u,q as d,z as f}from"./libs/@mantine/core.mjs";import{u as p}from"./libs/@mantine/hooks.mjs";import{t as m}from"./css.mjs";import{t as h}from"./Markdown.mjs";import{g,n as _}from"./libs/@tabler/icons-react.mjs";import{r as v}from"./libs/@react-hookz/web.mjs";import{r as y,s as b,t as x}from"./hstack.mjs";import{c as S,p as C}from"./libs/framer-motion.mjs";import{t as w}from"./txt.mjs";import{a as T,c as E,i as D,n as O,o as k,r as A,s as j,t as M}from"./libs/zod.mjs";import{t as N}from"./hooks.mjs";import{r as P,t as F}from"./libs/@tanstack/ai-client.mjs";import{n as I}from"./libs/@tanstack/ai.mjs";import{t as L}from"./libs/@tanstack/ai-react.mjs";import{t as ee}from"./libs/@tanstack/ai-react-ui.mjs";import{n as te,t as ne}from"./libs/superjson.mjs";import{createContext as re,use as ie,useEffect as ae,useRef as R,useState as z}from"react";import{c as B}from"react-compiler-runtime";import{Fragment as V,jsx as H,jsxs as U}from"react/jsx-runtime";import{ElementShapes as W}from"@likec4/core/styles";import{RichText as G,nonNullable as K,nonexhaustive as q}from"@likec4/core";import{AIAdapter as oe}from"likec4:rpc";const J=re(null);function Y(){return K(ie(J),`useChatContext: ChatProvider is not provided`)}function se(){let e=B(22),{sendMessage:t,isLoading:n,messages:r,clear:a,stop:o}=Y(),[s,c]=z(``),u=R(null),f;e[0]!==n||e[1]!==t||e[2]!==s?(f=()=>{!s.trim()||n||(t(s),c(``))},e[0]=n,e[1]=t,e[2]=s,e[3]=f):f=e[3];let p=f,m;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(m=e=>c(e.target.value),e[4]=m):m=e[4];let h;e[5]===p?h=e[6]:(h=e=>{e.key===`Enter`&&!e.shiftKey&&!e.ctrlKey&&!e.metaKey&&(e.preventDefault(),p())},e[5]=p,e[6]=h);let g;e[7]!==n||e[8]!==h||e[9]!==s?(g=H(i,{flex:1,className:`chat-input`,placeholder:`Your question...`,value:s,onChange:m,onKeyDown:h,disabled:n,ref:u,loading:n,autosize:!0,minRows:1}),e[7]=n,e[8]=h,e[9]=s,e[10]=g):g=e[10];let v;e[11]!==a||e[12]!==n||e[13]!==r.length?(v=r.length>0&&!n&&H(d,{size:`sm`,color:`red`,variant:`light`,onClick:()=>a(),children:`Clear`}),e[11]=a,e[12]=n,e[13]=r.length,e[14]=v):v=e[14];let y;e[15]!==n||e[16]!==o?(y=n&&H(l,{color:`red`,variant:`light`,onClick:()=>o(),children:H(_,{})}),e[15]=n,e[16]=o,e[17]=y):y=e[17];let b;return e[18]!==g||e[19]!==v||e[20]!==y?(b=U(x,{children:[g,v,y]}),e[18]=g,e[19]=v,e[20]=y,e[21]=b):b=e[21],b}function ce(){let e=B(7),{messages:t,error:n}=Y(),r;e[0]===t?r=e[1]:(r=t.map(le),e[0]=t,e[1]=r);let i;e[2]===n?i=e[3]:(i=n&&H(s,{styles:{icon:{alignSelf:`flex-start`}},color:`red`,title:`Oops, something went wrong`,withCloseButton:!1,children:U(w,{fontSize:`sm`,fontFamily:`mono`,whiteSpace:`pre`,my:`xs`,children:[n.message,n.stack&&`
|
|
2
|
+
`+n.stack]})}),e[2]=n,e[3]=i);let a;return e[4]!==r||e[5]!==i?(a=U(V,{children:[r,i]}),e[4]=r,e[5]=i,e[6]=a):a=e[6],a}function le(e){return H(ue,{message:e},e.id)}const ue=e=>{let t=B(4),{message:n}=e,r=n.role,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=m({color:`text.bright`,alignSelf:`flex-end`,paddingInline:`2`,paddingBlock:`1`,marginInlineEnd:`2`,rounded:`sm`,backgroundColor:`default.hover`,whiteSpace:`pre-wrap`}),t[0]=i):i=t[0];let a=r===`user`?de:fe,o;return t[1]!==n||t[2]!==a?(o=H(ee,{message:n,userClassName:i,textPartRenderer:a}),t[1]=n,t[2]=a,t[3]=o):o=t[3],o},de=e=>{let t=B(2),{content:n}=e,r;return t[0]===n?r=t[1]:(r=H(V,{children:n}),t[0]=n,t[1]=r),r},fe=e=>{let t=B(4),{content:n}=e,r;t[0]===n?r=t[1]:(r=G.from({md:n}),t[0]=n,t[1]=r);let i;return t[2]===r?i=t[3]:(i=H(h,{textScale:.95,value:r}),t[2]=r,t[3]=i),i},X=j({id:E().meta({description:`Node ID`}),title:E(),shape:M(W),color:E().meta({description:`Node color, from theme or custom`}),icon:E().nullish(),parentId:E().nullish().meta({description:`Parent node ID (if node is nested)`}),children:O(E()).nullish().meta({description:`Nested node IDs (if node is compound)`}),x:k(),y:k(),width:k(),height:k(),modelFqn:E().nullish().meta({description:`Model element FQN (if node has reference)`})}),pe=I({name:`read_ui`,description:`Read current UI state. Use arguments to include additional data.`,needsApproval:!1,inputSchema:j({selectedNode:A().default(!1).meta({description:`Include selected node (if any)`}),nodes:A().default(!1).meta({description:`Include all nodes from the view`})}),outputSchema:j({projectId:E(),editMode:A().meta({description:`Whether the UI is in edit mode`}),view:j({id:E(),title:E(),type:M([`element`,`deployment`,`dynamic`]).meta({description:`Type of the current view`})}).meta({description:`Current view`}),nodes:O(X).nullish(),selectedNode:X.nullish()})}),me=I({name:`update_ui`,description:`Update UI state by executing a command.`,needsApproval:!1,inputSchema:j({command:D(`type`,[j({type:T(`focus`),elementId:E().meta({description:`Element ID (FQN)`})}).meta({description:`Focus UI on an element by its FQN`}),j({type:T(`fitview`)}).meta({description:`Zoom out to fit all elements in the viewport, and clear any selection/focus`})])}),outputSchema:j({})}),he=I({name:`navigate_to`,description:`Navigates UI to another view`,needsApproval:!1,inputSchema:j({viewId:E().meta({description:`View ID`})}),outputSchema:j({})});function ge(e){return({id:t,data:n,...r})=>{let i=n.icon??void 0;i===`none`&&(i=void 0);let a=e.parentLookup.get(t)?.values().map(e=>e.id).toArray();return{id:t,title:n.title,shape:n.shape,color:n.color,icon:i,parentId:r.parentId,children:a,x:n.x,y:n.y,width:r.measured?.width??r.width??r.initialWidth??0,height:r.measured?.height??r.height??r.initialHeight??0,...`modelFqn`in n&&n.modelFqn&&{modelFqn:n.modelFqn}}}}function _e(){let i=B(11),{id:a}=N(),o=e(),s=b(),c;if(i[0]!==s||i[1]!==o||i[2]!==a){let e;i[4]===o?e=i[5]:(e=e=>{let{viewId:t}=e;return o({to:`./`,params:e=>({...e,viewId:t})}),{}},i[4]=o,i[5]=e);let l;i[6]!==s||i[7]!==a?(l=e=>{let{view:i,focusedNode:o,xynodes:c,xystore:l,toggledFeatures:u,features:d}=s.getContext(),f=u.enableReadOnly??d.enableReadOnly,p=ge(l.getState()),m=e.nodes===!0&&r(c,p)||void 0,h=e.selectedNode===!0&&n(c,t(e=>!!e.selected||e.id===o),e=>e?p(e):void 0);return{projectId:a,editMode:!f,view:{id:i.id,title:i.title??``,type:i._type},...m&&{nodes:m},...h&&{selectedNode:h}}},i[6]=s,i[7]=a,i[8]=l):l=i[8];let u;i[9]===s?u=i[10]:(u=e=>{let{command:t}=e;bb50:switch(t.type){case`focus`:s.focusOnElement(t.elementId);break bb50;case`fitview`:s.fitDiagram();break bb50;default:q(t)}return{}},i[9]=s,i[10]=u),c=F(he.client(e),pe.client(l),me.client(u)),i[0]=s,i[1]=o,i[2]=a,i[3]=c}else c=i[3];return c}const Z={key:`likec4.ai.chat.messages`,read(){try{let e=sessionStorage.getItem(this.key);return e?ne(e):[]}catch{return[]}},write(e){try{if(e.length===0){sessionStorage.removeItem(this.key);return}sessionStorage.setItem(this.key,te(e))}catch{}}};function Q(e){let t=B(7),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n={connection:P(`/__likec4_ai`),initialMessages:Z.read()},t[0]=n):n=t[0];let r=n,i=_e(),a;t[1]!==e||t[2]!==i?(a={...r,...e,tools:i},t[1]=e,t[2]=i,t[3]=a):a=t[3];let o=L(a),s,c;return t[4]===o.messages?(s=t[5],c=t[6]):(s=()=>{Z.write(o.messages)},c=[o.messages],t[4]=o.messages,t[5]=s,t[6]=c),ae(s,c),o}const $={key:`likec4.ai.chat.position`,read(){try{let e=localStorage.getItem(this.key);return e?JSON.parse(e):null}catch{return null}},write(e){try{if(e===null)return localStorage.removeItem(this.key),e;localStorage.setItem(this.key,JSON.stringify(e))}catch{}return e}};function ve(){let e=R(null);e.current||=$.read()??{right:16,bottom:100};let t=t=>{e.current=$.write({left:t.x,top:t.y})},[n,r]=p({key:`likec4.ai.chat.collapsed`,defaultValue:!0});return U(C,{children:[!n&&H(f,{w:300,pos:`fixed`,className:m({rounded:`md`,padding:`xs`,shadow:`md`,layerStyle:`likec4.panel`}),constrainToViewport:!0,constrainOffset:8,excludeDragHandleSelector:`.chat-input`,initialPosition:e.current,onPositionChange:t,children:H(ye,{onClose:()=>r(!0)})}),n&&H(S.div,{initial:{opacity:.1,translateX:`10%`},animate:{opacity:1,translateX:0},exit:{translateX:`50%`,opacity:.1},style:{position:`fixed`,right:8,bottom:60,zIndex:1e3},children:H(c,{label:`Show AI Assistant`,color:`dark`,fz:`xs`,children:H(l,{size:`lg`,variant:`gradient`,onClick:()=>r(!1),children:H(g,{stroke:1.5})})})},`collapsed`)]})}function ye(e){let t=B(15),{onClose:n}=e,r=R(null),i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=()=>{r.current?.scrollIntoView()},t[0]=i):i=t[0];let s=i,c;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>{s()},t[1]=c):c=t[1],v(c,100);let l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l={onChunk:s},t[2]=l):l=t[2];let d=Q(l),f;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=U(x,{children:[H(w,{textStyle:`likec4.panel`,noUserSelect:!0,children:`AI Assistant`}),H(o,{size:`xs`,radius:`sm`,variant:`light`,children:oe})]}),t[3]=f):f=t[3];let p;t[4]===n?p=t[5]:(p=U(x,{cursor:`move`,justify:`space-between`,children:[f,H(u,{size:`sm`,onClick:e=>{e.stopPropagation(),n()}})]}),t[4]=n,t[5]=p);let h;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(h={content:m({display:`contents`})},t[6]=h):h=t[6];let g;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(g=H(ce,{}),t[7]=g):g=t[7];let _,b;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(_=H(a,{scrollbars:`y`,w:`100%`,flex:1,mih:250,mah:350,classNames:h,children:U(y,{children:[g,H(`div`,{ref:r,style:{height:2}})]})}),b=H(se,{}),t[8]=_,t[9]=b):(_=t[8],b=t[9]);let S;t[10]===p?S=t[11]:(S=U(y,{w:`100%`,children:[p,_,b]}),t[10]=p,t[11]=S);let C;return t[12]!==d||t[13]!==S?(C=H(J,{value:d,children:S}),t[12]=d,t[13]=S,t[14]=C):C=t[14],C}export{ve as default};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime.mjs";import{B as t,C as n,F as r,G as i,H as a,I as o,J as s,K as c,L as l,M as u,O as d,P as f,S as p,U as m,V as h,W as g,X as _,Y as v,Z as y,_ as b,a as x,b as S,c as C,d as w,g as ee,h as te,k as ne,m as T,n as re,o as ie,p as ae,q as E,r as oe,t as se,u as ce,v as D,w as le,x as ue,y as de,z as fe}from"./libs/remeda.mjs";import{E as pe,Ft as me,Kt as he,Nt as ge,O as _e,Pt as ve,T as ye,Tt as be,V as xe,W as Se,Yt as Ce,Z as we,_t as Te,d as Ee,g as De,gt as Oe,h as ke,i as Ae,k as je,l as Me,m as Ne,mt as Pe,ot as Fe,q as Ie,u as Le,vt as Re,xt as ze}from"./libs/@mantine/core.mjs";import{a as Be,f as Ve,p as He,s as Ue}from"./libs/@mantine/hooks.mjs";import{m as We,p as Ge,s as Ke,t as O,u as qe}from"./css.mjs";import{a as Je,s as k,t as Ye}from"./factory.mjs";import{A as Xe,B as A,D as Ze,E as Qe,F as $e,G as et,I as tt,J as nt,K as j,L as rt,M as it,N as at,O as ot,P as st,R as ct,V as lt,a as ut,c as dt,d as ft,f as pt,g as M,i as mt,j as ht,k as gt,l as _t,n as vt,o as yt,p as bt,r as xt,s as St,u as Ct,x as wt,z as Tt}from"./LikeC4Styles.mjs";import{a as Et,i as Dt,n as Ot,r as kt,s as At,t as jt}from"./Markdown.mjs";import{H as Mt,L as Nt,Z as Pt,c as Ft,f as It,l as Lt,v as Rt}from"./libs/@tabler/icons-react.mjs";import{i as zt,n as Bt,o as Vt,p as Ht}from"./libs/@react-hookz/web.mjs";import{n as Ut,t as N}from"./libs/fast-equals.mjs";import{a as Wt,c as Gt,n as Kt,o as qt,r as Jt,s as P,t as Yt}from"./hstack.mjs";import{_ as Xt,c as Zt,d as Qt,f as $t,g as en,h as F,i as tn,l as I,m as nn,n as rn,o as an,p as on,r as L,s as sn,t as cn,u as ln}from"./libs/@xstate/react.mjs";import{C as un,_ as dn,a as fn,b as pn,c as mn,h as hn,i as gn,l as _n,m as vn,p as yn,r as bn,u as xn,v as Sn,x as Cn,y as wn}from"./libs/@xyflow/react.mjs";import{c as Tn,n as En,p as Dn,t as On}from"./libs/framer-motion.mjs";import{t as kn}from"./box.mjs";import{t as An}from"./libs/react-error-boundary.mjs";import{t as jn}from"./libs/@dagrejs/dagre.mjs";import{n as Mn,t as Nn}from"./libs/d3-shape.mjs";import{createContext as Pn,createElement as Fn,forwardRef as In,memo as Ln,useCallback as Rn,useContext as zn,useEffect as Bn,useMemo as Vn,useRef as Hn,useState as Un}from"react";import{c as R}from"react-compiler-runtime";import{Fragment as Wn,jsx as z,jsxs as B}from"react/jsx-runtime";import{DefaultTagColors as Gn,ElementShapes as Kn}from"@likec4/core/styles";import{BBox as qn,DefaultMap as Jn,GroupElementKind as Yn,Queue as Xn,RichText as Zn,exact as Qn,getParallelStepsPrefix as $n,hasProp as er,invariant as V,isNonEmptyArray as tr,isStepEdgeId as nr,isTagColorSpecified as rr,nonNullable as H,nonexhaustive as ir,whereOperatorAsPredicate as ar}from"@likec4/core";import{BBox as U,convertPoint as or,vector as W,vector as sr}from"@likec4/core/geometry";import{DefaultMap as cr,delay as lr,difference as ur,ifind as dr,invariant as G,isome as fr,nonNullable as K,nonexhaustive as pr,stringHash as mr,toArray as hr}from"@likec4/core/utils";import{exact as gr,preferSummary as _r}from"@likec4/core/types";import{computeRelationshipsView as vr,treeFromElements as yr}from"@likec4/core/compute-view";import{castDraft as br,produce as xr,setAutoFreeze as Sr}from"immer";function Cr(e){return e}function wr(e,t){let n=t===void 0?Ut:t;return rn(Gt(),e,n)}function Tr(e){return t=>e(t.context)}function Er(e,t=Ut,n=[]){let r=Gt(),i=j(e);return rn(r,Rn(e=>i(e.context),n),t)}function Dr(e,t,n){let r=R(6),i=Gt(),a=j(t),o=Hn(!1),s=n?.once??!1,c,l;r[0]!==i||r[1]!==a||r[2]!==e||r[3]!==s?(c=()=>{if(s&&o.current)return;let t=i.on(e,e=>{if(!s||!o.current)try{a(e)}catch(e){console.error(e)}o.current=!0,s&&(t?.unsubscribe(),t=null)});return()=>{t?.unsubscribe()}},l=[a,i,e,s],r[0]=i,r[1]=a,r[2]=e,r[3]=s,r[4]=c,r[5]=l):(c=r[4],l=r[5]),Bn(c,l)}function Or(){let e=et();if(!e)throw Error(`LikeC4Model not found. Make sure you have LikeC4ModelProvider.`);return e}function kr(){let e=R(3),t=Or().specification,[n,r]=Un(t),i,a;return e[0]===t?(i=e[1],a=e[2]):(i=()=>{r(e=>N(e,t)?e:t)},a=[t],e[0]=t,e[1]=i,e[2]=a),Bn(i,a),n}var Ar=Pn(null);function jr({children:e,editor:t}){return z(Ar.Provider,{value:t,children:e})}function Mr(){return zn(Ar)}function Nr(e,t){if(e._type===`dynamic`)try{if((t??e.variant)===`sequence`)return V(e.sequenceLayout,`Sequence layout is not available`),V(e.sequenceLayout.bounds,`Sequence layout bounds are not available`),e.sequenceLayout.bounds}catch(e){console.error(e)}return e.bounds}function Pr({points:e,controlPoints:t,labelBBox:n}){let r=1/0,i=1/0,a=-1/0,o=-1/0;if(t)for(let e of t)r=Math.min(r,e.x),i=Math.min(i,e.y),a=Math.max(a,e.x),o=Math.max(o,e.y);else for(let[t,n]of e)r=Math.min(r,t),i=Math.min(i,n),a=Math.max(a,t),o=Math.max(o,n);return n&&(r=Math.min(r,n.x),i=Math.min(i,n.y),a=Math.max(a,n.x+n.width),o=Math.max(o,n.y+n.height)),{x:r,y:i,width:a-r,height:o-i}}function Fr({nodes:e,edges:t}){return U.expand(U.merge(...e,...t.map(Pr).filter(e=>isFinite(e.x)&&isFinite(e.y))),20)}const Ir=Ot(`likec4-compound-node`,{isTransparent:!1,inverseColor:!1,borderStyle:`none`},[]),Lr={isTransparent:[`false`,`true`],inverseColor:[`true`,`false`],borderStyle:[`solid`,`dashed`,`dotted`,`none`]},Rr=Object.keys(Lr),zr=Object.assign(qe(Ir.recipeFn),{__recipe__:!0,__name__:`compoundNode`,__getCompoundVariantCss__:Ir.__getCompoundVariantCss__,raw:e=>e,variantKeys:Rr,variantMap:Lr,merge(e){return kt(this,e)},splitVariantProps(e){return We(e,Rr)},getVariantProps:Ir.getVariantProps}),Br=Ot(`likec4-edge-action-btn`,{},[]),Vr={},Hr=Object.keys(Vr),Ur=Object.assign(qe(Br.recipeFn),{__recipe__:!0,__name__:`edgeActionBtn`,__getCompoundVariantCss__:Br.__getCompoundVariantCss__,raw:e=>e,variantKeys:Hr,variantMap:Vr,merge(e){return kt(this,e)},splitVariantProps(e){return We(e,Hr)},getVariantProps:Br.getVariantProps}),Wr=Ot(`likec4-tag`,{autoTextColor:!1},[]),Gr={autoTextColor:[`false`,`true`]},Kr=Object.keys(Gr),qr=Object.assign(qe(Wr.recipeFn),{__recipe__:!0,__name__:`likec4tag`,__getCompoundVariantCss__:Wr.__getCompoundVariantCss__,raw:e=>e,variantKeys:Kr,variantMap:Gr,merge(e){return kt(this,e)},splitVariantProps(e){return We(e,Kr)},getVariantProps:Wr.getVariantProps}),Jr=Ot(`likec4-node-notes`,{opened:!1},[]),Yr={opened:[`false`,`true`]},Xr=Object.keys(Yr),Zr=Object.assign(qe(Jr.recipeFn),{__recipe__:!0,__name__:`nodeNotes`,__getCompoundVariantCss__:Jr.__getCompoundVariantCss__,raw:e=>e,variantKeys:Xr,variantMap:Yr,merge(e){return kt(this,e)},splitVariantProps(e){return We(e,Xr)},getVariantProps:Jr.getVariantProps}),Qr={transform(e){let{direction:t,align:n,justify:r,wrap:i,basis:a,grow:o,shrink:s,...c}=e;return{display:`flex`,flexDirection:t,alignItems:n,justifyContent:r,flexWrap:i,flexBasis:a,flexGrow:o,flexShrink:s,...c}}},$r=(e={})=>{let t=Ke(Qr,e);return Qr.transform(t,Ge)},ei=e=>O($r(e));ei.raw=$r;const ti=In(function(e,t){let[n,r]=We(e,[`align`,`justify`,`direction`,`wrap`,`basis`,`grow`,`shrink`]),i={ref:t,...$r(n),...r};return Fn(Ye.div,i)});var ni=Pn({}),ri=Gn,ii=e=>{let t=e.color;if(rr(e))return`
|
|
2
|
+
--colors-likec4-tag-bg: ${t};
|
|
3
|
+
--colors-likec4-tag-bg-hover: color-mix(in oklab, ${t}, var(--colors-likec4-mix-color) 20%);
|
|
4
|
+
`;if(!ri.includes(t))return``;let n=`12`;return[`mint`,`grass`,`lime`,`yellow`,`amber`].includes(t)&&(n=`dark-2`),`
|
|
5
|
+
--colors-likec4-tag-border: var(--colors-${t}-8);
|
|
6
|
+
--colors-likec4-tag-bg: var(--colors-${t}-9);
|
|
7
|
+
--colors-likec4-tag-bg-hover: var(--colors-${t}-10);
|
|
8
|
+
--colors-likec4-tag-text: var(--colors-${t}-${n});
|
|
9
|
+
`};function ai(e,t){return!e||r(e)?``:v(c(e),a(([e,n])=>[`:is(${t} [data-likec4-tag="${e}"]) {`,ii(n),`}`]),ue(`
|
|
10
|
+
`))}function oi(e){let{children:t,rootSelector:n}=e,r=kr().tags,i=ge()?.(),a=ai(r,n);return B(ni.Provider,{value:r,children:[a!==``&&z(si,{nonce:i,stylesheet:a}),t]})}var si=Ln(({stylesheet:e,nonce:t})=>z(`style`,{"data-likec4-tags":!0,type:`text/css`,dangerouslySetInnerHTML:{__html:e},nonce:t}));function ci(e){return zn(ni)[e]??{color:`tomato`}}var li=In(({tag:e,cursor:t,className:n,style:r,...i},a)=>B(kn,{ref:a,"data-likec4-tag":e,className:k(qr({autoTextColor:rr(ci(e))}),n),...i,style:{cursor:t,...r},children:[z(`span`,{children:`#`}),z(`span`,{children:e})]})),ui=Ln(({id:e,data:{tags:t,width:n,hovered:r=!1},onTagClick:i,onTagMouseEnter:a,onTagMouseLeave:o})=>!t||!E(t,1)?null:z(di,{id:e,tags:t,width:n,hovered:r,onTagClick:i,onTagMouseEnter:a,onTagMouseLeave:o}),(e,t)=>e.id===t.id&&e.data.width===t.data.width&&(e.data.hovered??!1)===(t.data.hovered??!1)&&N(e.data.tags,t.data.tags));ui.displayName=`ElementTags`;function di({id:e,tags:t,width:n,hovered:r,onTagClick:i,onTagMouseEnter:a,onTagMouseLeave:o}){let{hovered:s,ref:c}=Be(),{hovered:l,ref:u}=Be(),[d,f]=He(!1,r?120:300);Bn(()=>{f(e=>e?r||s||l:r&&(s||l))},[s,l,r]);let p=ot(1.2),m=yn(Rn(e=>Math.max(Math.round(n*e.transform[2])-10,200),[Math.round(n)]));return B(Wn,{children:[z(`div`,{ref:c,className:k(`likec4-element-tags`,Kt({pointerEvents:`all`,gap:`1`,alignItems:`flex-end`,justifyItems:`stretch`,position:`absolute`,width:`100%`,bottom:`0`,left:`0`,padding:`1`,_shapeCylinder:{bottom:`[5px]`},_shapeStorage:{bottom:`[5px]`},_shapeQueue:{bottom:`0`,paddingLeft:`[14px]`}})),onClick:A,children:t.map(t=>z(kn,{"data-likec4-tag":t,className:O({layerStyle:`likec4.tag`,flex:`1`,display:`flex`,alignItems:`center`,justifyContent:`center`,maxWidth:`50px`,height:`5px`,_whenHovered:{height:`12px`,borderRadius:`sm`,transitionDelay:`.08s`},transition:`fast`})},e+`#`+t))}),z(fn,{isVisible:d,align:`start`,position:hn.Bottom,children:z(Yt,{ref:u,css:{gap:`0.5`,alignItems:`baseline`,flexWrap:`wrap`,pb:`sm`,translate:`auto`,x:`[-8px]`},style:{maxWidth:m},children:t.map(e=>z(li,{tag:e,cursor:`pointer`,className:O({userSelect:`none`,...p&&{fontSize:`lg`,borderRadius:`sm`,px:`1.5`}}),onClick:i?t=>{t.stopPropagation(),i(`#${e}`)}:void 0,onMouseEnter:a?()=>a(`#${e}`):void 0,onMouseLeave:o?()=>o(`#${e}`):void 0},e))})})]})}var fi={onNavigateTo:null,onNodeClick:null,onNodeContextMenu:null,onCanvasContextMenu:null,onEdgeClick:null,onEdgeContextMenu:null,onCanvasClick:null,onCanvasDblClick:null,onLogoClick:null,onOpenSource:null,onInitialized:null,onLayoutTypeChange:null},pi=S(fi),mi=Pn({current:fi}),hi=Pn({...b(pi,e=>[e,null]),handlersRef:{current:fi}});function gi({handlers:e,children:t}){let n=Ht(e),r=Vn(()=>({...b(pi,e=>n.current[e]?[e,(...t)=>n.current[e]?.(...t)]:[e,null]),handlersRef:n}),[n,...pi.map(t=>u(e[t]))]);return z(mi.Provider,{value:n,children:z(hi.Provider,{value:r,children:t})})}function _i(){return zn(hi)}function vi(){return zn(mi)}function yi(e,t){let[n,r]=Un(e),i=t??Ut,a=Hn(i);return a.current=i,[n,Rn(e=>r(t=>{let n={...t,...typeof e==`function`?e(t):e};return a.current(t,n)?t:n}),[r])]}var bi={enableEditor:!1,enableAISemanticLayout:!1,enableReadOnly:!0,enableCompareWithLatest:!1,enableControls:!1,enableDynamicViewWalkthrough:!1,enableElementDetails:!1,enableFocusMode:!1,enableNavigateTo:!1,enableNotations:!1,enableRelationshipBrowser:!1,enableRelationshipDetails:!1,enableSearch:!1,enableNavigationButtons:!1,enableFitView:!1,enableVscode:!1,enableElementTags:!1,enableNotes:!1},xi=Pn(bi);function Si(e){let t=R(13),{children:n,features:r,overrides:i}=e,a=zn(xi),o;t[0]!==r||t[1]!==a||t[2]!==i?(o=()=>({...a,...r,...i}),t[0]=r,t[1]=a,t[2]=i,t[3]=o):o=t[3];let[s,c]=yi(o),l,u;t[4]!==r||t[5]!==a||t[6]!==i||t[7]!==c?(l=()=>{c({...a,...r,...i})},u=[a,r,i,c],t[4]=r,t[5]=a,t[6]=i,t[7]=c,t[8]=l,t[9]=u):(l=t[8],u=t[9]),Et(l,u);let d;return t[10]!==n||t[11]!==s?(d=z(xi.Provider,{value:s,children:n}),t[10]=n,t[11]=s,t[12]=d):d=t[12],d}var Ci={enableControls:!1,enableReadOnly:!0,enableAISemanticLayout:!1,enableCompareWithLatest:!1};Si.Overlays=({children:e})=>z(Si,{overrides:Ci,children:e});function q(){return zn(xi)}function wi(e){let{feature:t,children:n,and:r}=e,i=r===void 0?!0:r;return q()[`enable${t}`]===!0&&i?z(Wn,{children:n}):null}function Ti({error:e,resetErrorBoundary:t}){let n=e instanceof Error?e.message:`Unknown error`,r=Hn(null);return Bn(()=>{r.current?.showModal()},[]),z(`dialog`,{ref:r,className:O({margin:`0`,padding:`0`,position:`fixed`,top:`10`,left:`10`,width:`[calc(100vw - ({spacing.10} * 2))]`,height:`max-content`,maxHeight:`[calc(100vh - ({spacing.10} * 3))]`,background:`likec4.overlay.body`,rounded:`sm`,borderWidth:3,borderColor:`likec4.overlay.border`,shadow:`xl`,outline:`none`,_backdrop:{cursor:`zoom-out`,backdropFilter:`blur(18px)`,bg:`[color-mix(in oklab, {colors.likec4.overlay.backdrop} 60%, transparent)]`}}),onClick:e=>{if(e.stopPropagation(),e.target?.nodeName?.toUpperCase()===`DIALOG`){r.current?.close();return}},onClose:e=>{e.stopPropagation(),t()},children:B(Yt,{p:`xl`,gap:`lg`,alignItems:`flex-start`,flexWrap:`nowrap`,children:[z(Ae,{size:`md`,radius:`xl`,color:`red`,children:z(Lt,{style:{width:20,height:20}})}),B(Jt,{flex:`1`,children:[z(Fe,{fz:`md`,children:`Oops, something went wrong`}),z(be,{maw:`100%`,mah:400,type:`auto`,children:z(Fe,{fz:`md`,c:`red`,style:{whiteSpace:`pre-wrap`,userSelect:`all`},children:n})}),B(Yt,{gap:`md`,mt:`md`,children:[z(Ie,{size:`sm`,variant:`default`,onClick:()=>t(),children:`Reset`}),z(Fe,{fz:`sm`,c:`dimmed`,children:`See console for more details and report the issue if it persists.`})]})]})]})})}function Ei(e){return z(An,{FallbackComponent:Ti,onError:(e,t)=>{console.error(e,t)},...e})}At(Ei,`ErrorBoundary`);var Di=ln(({sendBack:e})=>{let t=Ue([[`mod + z`,t=>{t.stopPropagation(),e({type:`undo`})},{preventDefault:!0}]]);return document.body.addEventListener(`keydown`,t,{capture:!0}),()=>{document.body.removeEventListener(`keydown`,t,{capture:!0})}}),J=tn({types:{context:{},events:{},emitted:{},input:{},children:{},tags:``},actors:{applyLatest:Qt(()=>{throw Error(`Not implemented`)}),executeChange:Qt(()=>{throw Error(`Not implemented`)}),applySemanticLayout:Qt(()=>{throw Error(`Not implemented`)}),hotkey:Di},delays:{"500ms":500,"wait-after-edit":1e3},guards:{"has pending":({context:e})=>e.syncQueue.length>0||!!e.processing,"can undo":({context:e})=>e.history!==null}});function Oi(e){let{view:{drifts:t,_layout:n,...r},xynodes:i,xystore:a}=e,{nodeLookup:o,edgeLookup:s}=a.getState(),c=new Set,l=D(r.nodes,e=>{let t=o.get(e.id);if(!t)return console.error(`Internal node not found for ${e.id}`),e;let n=i.find(t=>t.id===e.id)?.data??t.data,r=t.internals.positionAbsolute,{width:a,height:s}=Sn(t);return(!rt(r,e)||e.width!==a||e.height!==s)&&c.add(e.id),{...e,shape:n.shape,color:n.color,style:{...n.style},x:Math.floor(r.x),y:Math.floor(r.y),width:Math.ceil(a),height:Math.ceil(s)}}),u=D(r.edges,e=>{let t=s.get(e.id);if(!t)return console.error(`Internal edge not found for ${e.id}`),e;let n=t.data,r=n.controlPoints??[],i=c.has(t.source)||c.has(t.target);r.length===0&&i&&(r=at(n.points));let a={...e,points:n.points};return n.labelBBox?a.labelBBox={x:Math.round(n.labelBBox.x),y:Math.round(n.labelBBox.y),width:Math.round(n.labelBBox.width),height:Math.round(n.labelBBox.height)}:a.labelBBox=null,E(r,1)?a.controlPoints=D(r,e=>({x:Math.round(e.x),y:Math.round(e.y)})):a.controlPoints=null,a});return{op:`save-view-snapshot`,layout:{...r,_layout:`manual`,bounds:Fr({nodes:l,edges:u}),nodes:l,edges:u}}}var ki=(e,t)=>e.find(e=>`modelFqn`in e.data&&e.data.modelFqn===t)||null;function Y(e){return{get overlaysActorRef(){return e.get(`overlays`)??null},get diagramActorRef(){return K(e.get(`diagram`),`Diagram actor not found`)},get searchActorRef(){return e.get(`search`)??null},get editorActorRef(){return e.get(`editor`)??null}}}Y.editorActor=({system:e})=>e.get(`editor`),Y.overlaysActor=({system:e})=>e.get(`overlays`),Y.diagramActor=({system:e})=>e.get(`diagram`),Y.searchActor=({system:e})=>e.get(`search`);function Ai(e,t){return e.view.nodes.find(e=>e.id===t)??null}function ji(e,t){return e.view.edges.find(e=>e.id===t)??null}function Mi(e,t){return Nr(t??e.view,e.dynamicViewVariant)}function Ni(e){let t=new Map,n=e.context.xynodes.reduce((e,n)=>{let r=n.position;if(n.parentId){let e=t.get(n.parentId)??{x:0,y:0};r={x:r.x+e.x,y:r.y+e.y}}if(t.set(n.id,r),n.hidden||n.data.dimmed)return e;let i=n.measured?.width??n.width??n.initialWidth,a=n.measured?.height??n.height??n.initialHeight;return e.minX=Math.min(e.minX,r.x),e.minY=Math.min(e.minY,r.y),e.maxX=Math.max(e.maxX,r.x+i),e.maxY=Math.max(e.maxY,r.y+a),e},{minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0});return n.minX===1/0?{bounds:Mi(e.context)}:{duration:350,bounds:{x:n.minX-10,y:n.minY-10,width:n.maxX-n.minX+20,height:n.maxY-n.minY+20}}}var Pi=32;function Fi(e){let t=K(e.context.activeWalkthrough),n=K(e.context.xyedges.find(e=>e.id===t.stepId)),r=e.context.xystore.getState(),i=wn([K(r.nodeLookup.get(n.source)),K(r.nodeLookup.get(n.target))],r),a;if(t.parallelPrefix){let n=e.context.xynodes.find(e=>e.type===`seq-parallel`&&e.data.parallelPrefix===t.parallelPrefix);n&&(a={x:n.position.x,y:n.position.y,...Sn(n)})}return a??=Ii(n,r),a=a?U.merge(a,i):i,{duration:350,bounds:U.expand(a,Pi)}}function Ii(e,t){let n=t.nodeLookup.get(e.source),r=t.nodeLookup.get(e.target);if(!n||!r)return null;let i=dn({id:e.id,sourceNode:n,targetNode:r,sourceHandle:e.sourceHandle||null,targetHandle:e.targetHandle||null,connectionMode:t.connectionMode});return i?U.fromPoints([[i.sourceX,i.sourceY],[i.targetX,i.targetY]]):null}function Li(e){switch(e.type){case`element`:case`compound-element`:case`seq-actor`:return e.data.modelFqn;case`deployment`:case`compound-deployment`:return e.data.modelFqn??e.data.deploymentFqn;case`seq-parallel`:case`view-group`:return null;default:pr(e)}}function Ri(e,t){let n=e.lastOnNavigate?.fromNode,r=n&&e.xynodes.find(e=>e.id===n),i=r&&Li(r);return!r||!i?{fromNode:null,toNode:null}:{fromNode:r,toNode:t.xynodes.find(e=>Li(e)===i)??null}}function zi(e,t){let{width:n,height:r,transform:i}=e.xystore.getState();return Cn(t,n,r,Qe,Math.max(i[2],1),e.fitViewPadding)}var Bi=e=>typeof e!=`string`,Vi=function(e){return e.get(`diagram`).getSnapshot().context};function Hi(e){let t=Vi(e);return{xynodes:t.xynodes.map(({measured:e,data:t,...n})=>({...T(n,[`selected`,`dragging`,`resizing`]),data:T(t,[`dimmed`,`hovered`]),measured:e,initialWidth:e?.width??n.width??n.initialWidth,initialHeight:e?.height??n.height??n.initialHeight})),xyedges:t.xyedges.map(({data:e,...t})=>({...T(t,[`selected`]),data:T(e,[`active`,`dimmed`,`hovered`])})),change:Oi(t),view:t.view}}var Ui=e=>e.op===`reset-manual-layout`||e.op===`save-view-snapshot`;i(ne(Ui));var Wi=(e=50)=>J.raise({type:`change.sync-snapshot`},e?{delay:e,id:`sync-snapshot`}:void 0),Gi=J.assign(({system:e,event:t})=>(L(t,`edit.move.start`),{editing:{subject:t.subject,before:Hi(e)}})),Ki=()=>J.assign(({context:e})=>{let t=e.editing;return t?{editing:null,history:{head:t.before,tail:e.history}}:{}}),qi=(e=300)=>J.raise(({event:e})=>({...e}),{delay:e}),Ji=()=>J.enqueueActions(({context:{history:e},enqueue:t})=>{if(!e)return;let n=e.head;t.assign({history:e.tail}),t.sendTo(Y.diagramActor,{type:`update.view`,view:n.view,xyedges:n.xyedges,xynodes:n.xynodes,source:`editor`}),t.cancel(`undo-view`),t.raise({type:`change.view`,change:n.change},{delay:200,id:`undo-view`})}),Yi=()=>J.assign(({context:{syncQueue:e},event:t})=>{let n;switch(t.type){case`change.view`:n=t.change;break;case`change.semantic-layout`:n=`apply-semantic-layout`;break;case`change.latest-to-manual`:n=`apply-semantic-layout`;break;case`change.sync-snapshot`:n=`sync-snapshot`;break;default:throw Error(`Invalid event type: ${t.type}`)}if(e.length===0)return{syncQueue:[n]};let r=Bi(n)&&Ui(n),i=e.filter(e=>!(e===n||r&&Bi(e)&&Ui(e)));return{syncQueue:i.length>0?[...i,n]:[n]}}),Xi={idle:{target:`#idle`},moving:{target:`#moving`}},Zi=e=>({id:e.target.substring(1)}),Qi=()=>J.stopChild(`hotkey`),$i=()=>J.enqueueActions(({check:e,enqueue:t,self:n})=>{let r=e(`can undo`),i=n.getSnapshot().children.hotkey;if(!r&&i){t.stopChild(i);return}r&&!i&&t.spawnChild(`hotkey`,{id:`hotkey`})}),ea=J.createStateConfig({...Zi(Xi.idle),on:{"edit.move.start":{...Xi.moving}}}),ta=J.createStateConfig({...Zi(Xi.moving),entry:[Gi,Qi()],on:{"edit.move.end":{actions:[Ki(),Wi()],...Xi.idle},"edit.move.cancel":{actions:[I({editing:null})],...Xi.idle},undo:{...Xi.idle}}}),na=J.createStateConfig({initial:`idle`,states:{idle:ea,moving:ta},on:{cancel:{...Xi.idle},"*":{actions:$i()}}}),X={idle:{target:`#queue-idle`},pending:{target:`#queue-pending`},suspended:{target:`#queue-suspended`},process:{target:`#queue-process`}},ra=e=>({id:e.target.substring(1)}),ia=J.createStateConfig({...ra(X.idle),always:{guard:`has pending`,...X.pending},on:{"change.sync-snapshot":{actions:Yi(),...X.pending},"change.*":{actions:Yi(),...X.process},undo:{actions:Ji(),reenter:!0,...X.idle}}}),aa=J.createStateConfig({...ra(X.pending),on:{"change.sync-snapshot":{reenter:!0,actions:Yi(),...X.pending},"change.*":{actions:Yi(),...X.process},"edit.move.start":{...X.suspended},undo:{actions:Ji(),...X.idle},"view.synched":{guard:`has pending`,actions:()=>{},...X.process}},after:{"wait-after-edit":[{guard:`has pending`,...X.process},{...X.idle}]}}),oa=J.createStateConfig({...ra(X.suspended),on:{undo:{actions:Ji(),...X.idle},"edit.*":{...X.pending},"change.*":{actions:qi()},cancel:{...X.idle}}}),sa=()=>J.assign(({system:e,context:{syncQueue:t,processing:n}})=>{if(n)return{};let[r,...i]=t;return r===`sync-snapshot`&&(r=Hi(e).change),{processing:r??null,syncQueue:i}}),ca=()=>({processing:null}),la=J.createStateConfig({...ra(X.process),initial:`enter`,tags:[`busy`],states:{enter:{entry:sa(),always:[{guard:({context:{processing:e}})=>!e,...X.idle},{guard:({context:{processing:e}})=>e===`apply-latest-to-manual`,target:`applyLatestToManual`},{guard:({context:{processing:e}})=>e===`apply-semantic-layout`,target:`applySemanticLayout`},{target:`executeChanges`}]},applyLatestToManual:J.createStateConfig({initial:`call`,states:{call:{invoke:{src:`applyLatest`,input:({context:e})=>{let t=e.history?.head.change.layout;return{current:t?._layout===`manual`?t:void 0,viewId:e.viewId}},onDone:{actions:Zt(Y.diagramActor,({event:e})=>({type:`update.view`,view:e.output.updated}),{delay:10}),target:`wait`},onError:{actions:[({event:e})=>{console.error(e.error)}],...X.idle}}},wait:{entry:I(ca),after:{"500ms":{actions:Wi(),...X.idle}}}}}),applySemanticLayout:J.createStateConfig({tags:[`ai-semantic-layout`],invoke:{src:`applySemanticLayout`,input:({context:e})=>({viewId:e.viewId}),onDone:{target:`decideNext`},onError:{actions:[({event:e})=>{console.error(e.error)}],target:`decideNext`}}}),executeChanges:J.createStateConfig({invoke:{src:`executeChange`,input:({context:{processing:e,syncQueue:t,viewId:n}})=>(V(e&&Bi(e)),{changes:[e,...t.filter(Bi)],viewId:n}),onDone:{actions:an(({context:e,event:t,enqueue:n})=>{n.assign({processing:null,syncQueue:e.syncQueue.filter(ne(Bi))})}),target:`decideNext`},onError:{actions:I(({event:e})=>(console.error(`executeChanges onError`,{error:e.error}),{processing:null,syncQueue:[]})),...X.idle}}}),decideNext:{entry:I(ca),always:[{guard:`has pending`,target:`enter`},{...X.idle}]}},on:{"change.*":{actions:qi()},"view.synched":{actions:()=>{}}}}),ua=J.createStateConfig({initial:`idle`,states:{idle:ia,pending:aa,suspended:oa,process:la},on:{}}),da=J.createMachine({id:`editor`,context:({input:e})=>({viewId:e.viewId,editing:null,history:null,pending:null,syncQueue:[],processing:null}),type:`parallel`,states:{editor:na,syncQueue:ua}}),fa={};function pa(e,t){return e===t?e:(t=t.map(t=>{let n=e.find(e=>e.id===t.id&&e.type===t.type&&e.source===t.source&&e.target===t.target);if(!n)return t;if(n===t)return n;let r=fe(n.data,t.data),i=r?n.data:t.data;return r||(o(n.data.hovered)&&!o(t.data.hovered)&&(i={...i,hovered:n.data.hovered}),o(n.data.dimmed)&&!o(t.data.dimmed)&&(i={...i,dimmed:n.data.dimmed}),o(n.data.active)&&!o(t.data.active)&&(i={...i,active:n.data.active})),r&&N(n.hidden,t.hidden??n.hidden)&&N(n.selected,t.selected??n.selected)&&N(n.selectable,t.selectable??n.selectable)&&N(n.focusable,t.focusable??n.focusable)&&N(n.animated,t.animated??n.animated)&&N(n.className,t.className)&&N(n.zIndex,t.zIndex??n.zIndex)&&N(n.label,t.label)&&N(n.sourceHandle,t.sourceHandle)&&N(n.targetHandle,t.targetHandle)&&N(n.style??fa,t.style??fa)?n:{...ce(n,o),...ce(t,o),data:i}}),le(e,t)?e:t)}function ma(e,t){return o(t)?pa(e,t):(t=e,e=>pa(e,t))}var ha={};function ga(e,t){return e===t?e:(t=t.map(t=>{let n=e.find(e=>e.id===t.id&&e.type===t.type);if(!n)return t;if(n===t)return n;let r=fe(n.data,t.data),i=r?n.data:t.data;r||(o(n.data.hovered)&&!o(t.data.hovered)&&(i={...i,hovered:n.data.hovered}),o(n.data.dimmed)&&!o(t.data.dimmed)&&(i={...i,dimmed:n.data.dimmed}));let{width:a,height:s}=Sn(n),c=Object.hasOwn(n,`handles`)||Object.hasOwn(t,`handles`),l=!c||N(n.handles??[],t.handles??[]);if(r&&l&&N(a,t.width??t.initialWidth)&&N(s,t.height??t.initialHeight)&&N(n.parentId??null,t.parentId??null)&&N(n.hidden,t.hidden??n.hidden)&&N(n.selected,t.selected??n.selected)&&N(n.selectable,t.selectable??n.selectable)&&N(n.focusable,t.focusable??n.focusable)&&N(n.draggable,t.draggable??n.draggable)&&N(n.dragHandle,t.dragHandle)&&N(n.className,t.className)&&N(n.zIndex,t.zIndex??n.zIndex)&&N(n.position,t.position)&&N(n.domAttributes??ha,t.domAttributes??ha)&&N(n.style??ha,t.style??ha))return n;let u=c&&l?n.handles:t.handles;return{...ce(n,(e,t)=>o(e)&&t!==`parentId`&&t!==`handles`),...`measured`in n&&{measured:{width:t.width??t.initialWidth,height:t.height??t.initialHeight}},...ce(t,o),width:t.width??t.initialWidth,height:t.height??t.initialHeight,...u&&{handles:u},data:i}}),Ut(e,t)?e:t)}function _a(e,t){return o(t)?ga(e,t):(t=e,e=>ga(e,t))}var va={top:`40px`,bottom:`22px`,left:`22px`,right:`22px`},ya=e(jn(),1),Z={dagre:{ranksep:60,nodesep:35,edgesep:25},edgeLabel:{width:140,height:10,minlen:1,weight:1},emptyNodeOffset:120,nodeWidth:330,nodeHeight:180,spacerHeight:0,compound:{labelHeight:2,paddingTop:50,paddingBottom:32}};function ba(){let e=new ya.default.graphlib.Graph({directed:!0,compound:!0,multigraph:!0});return e.setGraph({...Z.dagre,rankdir:`LR`}),e.setDefaultEdgeLabel(()=>({...Z.edgeLabel})),e.setDefaultNodeLabel(()=>({})),e}var xa=`-port`;function Sa(e,t,n){let r=new cr(t=>({id:`${e}-${t}`,portId:`${e}-${t}`})),i=yr(t);for(let t of i.sorted){let a=i.children(t).length>0,o=t.id,s=`${e}-${o}`,c=a?`${s}${xa}`:s;r.set(o,{id:s,portId:c}),n.setNode(s,{column:e,element:t,isCompound:a,portId:c,inPorts:[],outPorts:[],width:Z.nodeWidth,height:Z.nodeHeight}),a&&(n.setNode(c,{element:t,portId:c,isCompound:a,inPorts:[],outPorts:[],width:Z.nodeWidth-Z.dagre.ranksep,height:Z.compound.labelHeight}),n.setParent(c,s));let l=i.parent(t);l&&n.setParent(s,`${e}-${l.id}`)}return{...i,byId:e=>{let t=i.byId(e);return{element:t,graph:r.get(t.id)}},graphNodes:r}}function Ca(e){return ya.default.layout(e,{}),t=>{let{x:n,y:r,width:i,height:a}=e.node(t);return{position:{x:n-Math.round(i/2),y:r-Math.round(a/2)},width:i,height:a}}}var wa;(function(e){e.Empty=`@empty`})(wa||={});function Ta(e,n){let r=ba(),a=Sa(`incomers`,e.incomers,r),o=Sa(`subjects`,e.subjects,r),s=Sa(`outgoers`,e.outgoers,r),c=[];v(_(v(hr(e.incoming),D(e=>({id:e.source.id,sourceFqn:e.source.id,targetFqn:e.target.id,source:a.byId(e.source.id).graph,target:o.byId(e.target.id).graph,relation:e}))),v(hr(e.outgoing),D(e=>({id:e.target.id,sourceFqn:e.source.id,targetFqn:e.target.id,source:o.byId(e.source.id).graph,target:s.byId(e.target.id).graph,relation:e})))),D(e=>({...e,expr:`${e.source.id}->${e.target.id}`})),t(C(`expr`)),h(e=>{let t=e[0].source,n=e[0].target,i=e[0].expr;r.node(t.id).outPorts.push(n.id),r.node(n.id).inPorts.push(t.id),r.setEdge(t.portId,n.portId,{...Z.edgeLabel},i),c.push({name:i,sourceFqn:e[0].sourceFqn,targetFqn:e[0].targetFqn,source:t.id,sourceHandle:t.id+`_out`+(r.node(t.id).outPorts.length-1),target:n.id,targetHandle:n.id+`_in`+(r.node(n.id).inPorts.length-1),relations:D(e,C(`relation`))})}));for(let e of o.graphNodes.values()){let t=e.id,n=r.node(t);if(n.isCompound)continue;let i=Math.max(r.inEdges(t)?.length??0,r.outEdges(t)?.length??0);i>2&&(n.height+=(i-3)*14)}let l=[...a.graphNodes.values(),...o.graphNodes.values(),...s.graphNodes.values()];if(a.graphNodes.size==0){let e=`incomers-empty`;r.setNode(e,{column:`incomers`,element:null,isCompound:!1,portId:e,inPorts:[],outPorts:[],width:Z.nodeWidth,height:Z.nodeHeight});for(let t of o.graphNodes.values())r.setEdge(e,t.portId);l.push({id:e,portId:e})}if(s.graphNodes.size==0){let e=`outgoers-empty`;r.setNode(e,{column:`outgoers`,element:null,isCompound:!1,portId:e,inPorts:[],outPorts:[],width:Z.nodeWidth,height:Z.nodeHeight});for(let t of o.graphNodes.values())r.setEdge(t.portId,e);l.push({id:e,portId:e})}let u=r.edgeCount();if(u>10)for(let e of r.edges())r.setEdge(e,{...Z.edgeLabel,width:u>25?800:400});let d=Ca(r),f=v(l,i(e=>e.id===e.portId),b(e=>[e.id,d(e.id)]));function p(e){return f[e]??=v(r.children(e)??[],i(e=>!e.endsWith(xa)),D(e=>p(e)),re(t=>{G(t.length>0,`Node ${e} has no nested nodes`)}),ie((e,t)=>({minY:Math.min(e.minY,t.position.y),maxY:Math.max(e.maxY,t.position.y+t.height)}),{minY:1/0,maxY:-1/0}),({minY:t,maxY:n})=>{let{position:{x:r},width:i}=d(e);return t-=Z.compound.paddingTop,n+=Z.compound.paddingBottom,{position:{x:r,y:t},width:i,height:n-t}})}function m(e){let t=r.parent(e);return t?m(t)+1:0}function y(e){let t=r.children(e)??[];return t.length===0?0:1+Math.max(...t.map(y))}let x=(e,t,n)=>v(n,D((n,r)=>({port:e+`_`+t+r,topY:p(n).position.y})),oe(C(`topY`)),D(C(`port`))),S=0,w=0,[ee]=[...o.root];G(ee,`Subjects should not be empty`);let te=p(o.graphNodes.get(ee.id).id),ne=l.map(({id:e})=>{let{element:t,inPorts:i,outPorts:a,column:o}=r.node(e),{position:s,width:c,height:l}=p(e);if(!t){if(l=Math.min(te.height,300),s.y=te.position.y+te.height/2-l/2,o===`incomers`)c=te.position.x-Z.emptyNodeOffset-s.x;else{let e=s.x+c;s.x=te.position.x+te.width+Z.emptyNodeOffset,c=e-s.x}return{id:e,parent:null,x:s.x,y:s.y,title:`empty node`,description:null,technology:null,tags:[],links:[],color:`muted`,shape:`rectangle`,style:{border:`dashed`,opacity:50},kind:wa.Empty,level:0,labelBBox:{x:s.x,y:s.y,width:c,height:l},children:[],width:c,height:l,column:o,ports:{in:[],out:[]},existsInCurrentView:!1}}let u=r.parent(e),d=(r.children(e)??[]).filter(e=>!e.endsWith(xa));S=Math.min(S,s.x),w=Math.min(w,s.y);let f=n?dr(t.scopedViews(),e=>e.id!==n.id)?.id??null:null,h=n?.findNodeWithElement(t.id),g=n&&!h?dr(t.ancestors(),e=>!!n.findNodeWithElement(e.id))?.id:null,_=h??(g&&n?.findNodeWithElement(g));return{id:e,parent:u??null,x:s.x,y:s.y,title:t.title,description:_r(t.$element)??null,technology:t.technology,tags:[...t.tags],links:null,color:_?.color??t.color,shape:h?.shape??t.shape,icon:h?.icon??t.icon??`none`,modelRef:t.id,kind:t.kind,level:m(e),labelBBox:{x:s.x,y:s.y,width:c,height:l},style:T({...(h??_)?.style,...t.$element.style},[`color`,`shape`,`icon`]),navigateTo:f,...d.length>0&&{depth:y(e)},children:d,width:c,height:l,column:o,ports:{in:x(e,`in`,i),out:x(e,`out`,a)},existsInCurrentView:!!h}});return{subjectExistsInScope:!n||n.includesElement(ee.id),bounds:{x:Math.min(S,0),y:Math.min(w,0),width:r.graph().width??100,height:r.graph().height??100},nodes:ne,edges:r.edges().reduce((e,t)=>{let i=r.edge(t),a=t.name;if(!a)return e;let{name:o,source:s,sourceFqn:l,target:u,targetFqn:d,relations:f,sourceHandle:p,targetHandle:m}=K(g(c,e=>e.name===a)),h=ae(f),_=h?.title??`untitled`,v=f.length>1,y=ae(se(f.flatMap(e=>e.navigateTo?.id?e.navigateTo.id:[])));return e.push(gr({id:o,sourceFqn:l,source:s,sourceHandle:p,targetFqn:d,target:u,targetHandle:m,label:v?`${f.length} relationships`:_,navigateTo:y,color:h?.color??`gray`,existsInCurrentView:!n||f.every(e=>n.includesRelation(e.id)),points:i.points.map(e=>[e.x,e.y]),line:h?.line??`dashed`,head:h?.head,tail:h?.tail,relations:f.map(e=>e.id),parent:null})),e},[])}}function Ea(e,t,n){let r=R(5),i=Or(),a;if(r[0]!==i||r[1]!==n||r[2]!==e||r[3]!==t){let o=t?i.findView(t):null,s=Ta(vr(e,i,t,n),n===`view`?o:null);o&&(n===`global`||!s.subjectExistsInScope)&&(s.edges=s.edges.map(e=>(e.existsInCurrentView=e.relations.every(e=>o.includesRelation(e)),e))),a=Object.assign(s,{subject:e}),r[0]=i,r[1]=n,r[2]=e,r[3]=t,r[4]=a}else a=r[4];return a}function Da(e){let t=[],n=[],r=new Map,i=Xn.from(e.nodes.reduce((e,t)=>(r.set(t.id,t),t.parent||e.push({node:t,parent:null}),e),[])),a=e=>H(r.get(e),`Node not found: ${e}`),o;for(;o=i.dequeue();){let{node:e,parent:n}=o,r=E(e.children,1)||e.kind==Yn;if(r)for(let t of e.children)i.enqueue({node:a(t),parent:e});let s={x:e.x,y:e.y};n&&(s.x-=n.x,s.y-=n.y);let c=e.id,l={id:c,position:s,zIndex:r?Ze.Compound:Ze.Element,style:{width:e.width,height:e.height},initialWidth:e.width,initialHeight:e.height,...n&&{parentId:n.id}},u=e.modelRef??null,d={navigateTo:e.navigateTo??null};switch(!0){case e.kind===wa.Empty:t.push({...l,type:`empty`,data:{column:e.column}});break;case r&&!!u:t.push({...l,type:`compound`,data:{id:c,column:e.column,title:e.title,color:e.color,shape:e.shape,style:e.style,depth:e.depth??0,icon:e.icon??`none`,ports:e.ports,existsInCurrentView:e.existsInCurrentView,fqn:u,...d}});break;default:V(u,`Element should have either modelRef or deploymentRef`),t.push({...l,type:`element`,data:{id:c,column:e.column,fqn:u,title:e.title,technology:e.technology,description:e.description,height:e.height,width:e.width,color:e.color,shape:e.shape,icon:e.icon??`none`,ports:e.ports,style:e.style,existsInCurrentView:e.existsInCurrentView,tags:e.tags,...d}})}}for(let t of e.edges){let e=t.source,r=t.target,i=t.id;if(!E(t.points,2)){console.error(`edge should have at least 2 points`,t);continue}if(!E(t.relations,1)){console.error(`edge should have at least 1 relation`,t);continue}n.push({id:i,type:`relationship`,source:e,target:r,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle,data:{sourceFqn:t.sourceFqn,targetFqn:t.targetFqn,relations:t.relations,color:t.color??`gray`,label:t.label,navigateTo:t.navigateTo??null,line:t.line??`dashed`,existsInCurrentView:t.existsInCurrentView},interactionWidth:20})}return{xynodes:t,xyedges:n}}var Oa=e=>e.find(e=>e.data.column===`subjects`&&d(e.parentId)),ka=tn({types:{context:{},tags:``,children:{},input:{},events:{}},actors:{layouter:Qt(async({input:e,self:t,signal:n})=>{let{subjectId:r,navigateFromNode:i,xyflow:a,xystore:o,update:s}=e,{nodes:c,width:l,height:u}=o.getState(),d=Da(s),f=()=>{let{nodes:e,edges:t}=o.getState();return{xynodes:_a(e,d.xynodes),xyedges:ma(t,d.xyedges)}},p=K(t._parent),m=a.getZoom(),h=Math.max(m,1),g=Cn(s.bounds,l,u,Qe,h,va),_=d.xynodes.find(e=>e.type!==`empty`&&e.data.column===`subjects`&&e.data.fqn===r)??Oa(d.xynodes),v=Oa(c),y=i?c.find(e=>e.id===i):c.find(e=>e.type!==`empty`&&e.data.column!==`subjects`&&e.data.fqn===r);if(!_||!y||_.type===`empty`||!v||_.data.fqn===v.data.fqn)return await a.setViewport(g),f();let b={x:_.position.x+(_.initialWidth??0)/2,y:_.position.y+(_.initialHeight??0)/2},x=$e(a.getInternalNode(v.id)),S=new Set;return c.forEach(e=>{if(e.id!==y.id){if(e.data.column===`subjects`){S.add(e.id);return}e.parentId&&(e.parentId===y.id||S.has(e.parentId))&&S.add(e.id)}}),c=_a(c,c.flatMap(e=>S.has(e.id)?[]:e.id===y.id?{...T(e,[`parentId`]),position:{x:x.x-e.initialWidth/2,y:x.y-e.initialHeight/2},zIndex:Ze.Max,hidden:!1,data:{...e.data,dimmed:!1}}:{...e,data:{...e.data,dimmed:e.data.column===`subjects`?`immediate`:!0}})),p.send({type:`update.xydata`,xynodes:c,xyedges:[]}),await lr(120),d.xynodes=d.xynodes.map(M.setDimmed(!1)),n.aborted?f():(a.setCenter(x.x,x.y,{zoom:m,duration:300,interpolate:`smooth`}),await lr(300),await a.setCenter(b.x,b.y,{zoom:m}),f())})},guards:{hasViewId:({context:e})=>e.viewId!==null,isReady:({context:e})=>e.xyflow!==null&&e.xystore!==null&&e.layouted!==null,anotherSubject:({context:e,event:t})=>t.type===`update.view`?e.layouted?.subject!==t.layouted.subject:!1}}),Aa=()=>ka.assign(({event:e})=>(L(e,`xyflow.init`),{xyflow:e.instance,xystore:e.store})),ja=()=>ka.assign(({event:e})=>(L(e,`update.view`),{layouted:e.layouted,...Da(e.layouted)})),Ma=()=>ka.createAction(({context:e})=>{G(e.xystore,`xystore is not initialized`);let{domNode:t,updateNodeInternals:n}=e.xystore.getState(),r=new Set(e.xyedges.flatMap(e=>[e.source,e.target]));if(r.size===0||!t)return;let i=new Map,a=t.querySelectorAll(`.react-flow__node`);for(let e of a){let t=e.getAttribute(`data-id`);t&&r.has(t)&&i.set(t,{id:t,nodeElement:e,force:!0})}n(i,{triggerFitView:!1})}),Na=e=>ka.createAction(({context:t,event:n})=>{e??=n.type===`fitDiagram`?n:{};let{duration:r,bounds:i}=e??{};r??=450;let{xyflow:a,xystore:o}=t;G(a,`xyflow is not initialized`),G(o,`xystore is not initialized`),i??=t.layouted?.bounds;let s=Math.max(a.getZoom(),1);if(i){let{width:e,height:t}=o.getState(),n=Cn(i,e,t,Qe,s,va);a.setViewport(n,r>0?{duration:r,interpolate:`smooth`}:void 0).catch(console.error)}else a.fitView({minZoom:Qe,maxZoom:s,padding:va,...r>0&&{duration:r,interpolate:`smooth`}}).catch(console.error)}),Pa=()=>ka.assign(({context:e,event:t})=>(L(t,`xyflow.applyNodeChanges`),{xynodes:xn(t.changes,e.xynodes)})),Fa=()=>ka.assign(({context:e,event:t})=>(L(t,`xyflow.applyEdgeChanges`),{xyedges:_n(t.changes,e.xyedges)})),Ia=()=>ka.enqueueActions(({system:e,event:t})=>{if(t.type!==`xyflow.edgeClick`)return;let n=Y(e).diagramActorRef,r=t.edge.data.relations;E(r,1)&&n.send({type:`open.source`,relation:r[0]})}),La=()=>ka.assign({xyflow:null,layouted:null,xystore:null,xyedges:[],xynodes:[]}),Ra=ka.createMachine({id:`relationships-browser`,context:({input:e})=>({subject:e.subject,viewId:e.viewId,scope:e.viewId?e.scope:`global`,closeable:e.closeable??!0,enableSelectSubject:e.enableSelectSubject??!0,enableChangeScope:e.enableChangeScope??!0,xyflow:null,xystore:null,layouted:null,navigateFromNode:null,xynodes:[],xyedges:[]}),initial:`initializing`,on:{"xyflow.applyNodeChanges":{actions:Pa()},"xyflow.applyEdgeChanges":{actions:Fa()}},states:{initializing:{on:{"xyflow.init":{actions:Aa(),target:`isReady`},"update.view":{actions:ja(),target:`isReady`},stop:`closed`,close:`closed`}},isReady:{always:[{guard:`isReady`,actions:[Na({duration:0}),F({type:`xyflow.updateNodeInternals`},{delay:150})],target:`active`},{target:`initializing`}]},active:{initial:`idle`,tags:[`active`],on:{"xyflow.nodeClick":{actions:an(({event:e,enqueue:t})=>{if(`fqn`in e.node.data){let n=e.node.data.fqn;t.raise({type:`navigate.to`,subject:n,fromNode:e.node.id})}})},"xyflow.edgeClick":[{guard:`hasViewId`,actions:an(({event:e,context:t,system:n,enqueue:r})=>{e.edge.selected||e.edge.data.relations.length>1?r.sendTo(Y(n).overlaysActorRef,{type:`open.relationshipDetails`,viewId:t.viewId,source:e.edge.data.sourceFqn,target:e.edge.data.targetFqn}):r(Ia())})},{actions:Ia()}],"navigate.to":{actions:[I({subject:({event:e})=>e.subject,viewId:({event:e,context:t})=>e.viewId??t.viewId??null,navigateFromNode:({event:e})=>e.fromNode??null})]},"xyflow.paneDblClick":{actions:Na()},"update.view":{actions:ja(),target:`.layouting`},"change.scope":{actions:I({scope:({event:e})=>e.scope})},"xyflow.updateNodeInternals":{actions:Ma()},fitDiagram:{actions:Na()},"xyflow.resized":{actions:[on(`fitDiagram`),F({type:`fitDiagram`},{id:`fitDiagram`,delay:300})]},"xyflow.init":{actions:Aa()},"xyflow.unmount":{target:`initializing`},close:`closed`},states:{idle:{on:{"xyflow.edgeMouseEnter":{actions:[I({xyedges:({context:e,event:t})=>{let n=e.xyedges.some(e=>e.data.dimmed!==!1||e.selected);return e.xyedges.map(e=>e.id===t.edge.id?M.setData(e,{hovered:!0,dimmed:!1}):n&&!e.selected?M.setDimmed(e,`immediate`):e)}}),on(`undim.edges`),on(`dim.nonhovered.edges`),F({type:`dim.nonhovered.edges`},{id:`dim.nonhovered.edges`,delay:200})]},"xyflow.edgeMouseLeave":{actions:[I({xyedges:({context:e,event:t})=>e.xyedges.map(e=>e.id===t.edge.id?M.setHovered(e,!1):e)}),on(`dim.nonhovered.edges`),F({type:`undim.edges`},{id:`undim.edges`,delay:400})]},"dim.nonhovered.edges":{actions:I({xyedges:({context:e})=>e.xyedges.map(e=>e.data.hovered?e:M.setDimmed(e,e.data.dimmed===`immediate`?`immediate`:!0))})},"undim.edges":{actions:I({xyedges:({context:e})=>e.xyedges.map(M.setDimmed(!1))})},"xyflow.selectionChange":{actions:an(({event:e,context:t,enqueue:n})=>{e.edges.length===0&&t.xyedges.some(e=>e.data.dimmed)&&!t.xyedges.some(e=>e.data.hovered)&&n.raise({type:`undim.edges`})})}}},layouting:{invoke:{id:`layouter`,src:`layouter`,input:({context:e})=>({subjectId:e.subject,navigateFromNode:e.navigateFromNode,xyflow:K(e.xyflow),xystore:K(e.xystore),update:K(e.layouted)}),onDone:{target:`idle`,actions:an(({enqueue:e,event:t})=>{e.assign({xynodes:t.output.xynodes,xyedges:t.output.xyedges,navigateFromNode:null}),e.raise({type:`fitDiagram`,duration:200},{id:`fitDiagram`,delay:50});for(let t=1;t<8;t++)e.raise({type:`xyflow.updateNodeInternals`},{delay:120+t*75})})}},on:{"update.xydata":{actions:I({xynodes:({event:e})=>e.xynodes,xyedges:({event:e})=>e.xyedges})},"xyflow.applyEdgeChanges":{},"xyflow.applyNodeChanges":{}}}}},closed:{id:`closed`,type:`final`,entry:La()}},exit:La()}),za=tn({types:{context:{},input:{},events:{},children:{}},actors:{relationshipsBrowserLogic:Ra}}).createMachine({id:`element-details`,context:({input:e})=>({...e,initiatedFrom:{node:e.initiatedFrom?.node??null,clientRect:e.initiatedFrom?.clientRect??null}}),initial:`active`,states:{active:{entry:en(`relationshipsBrowserLogic`,{id:({self:e})=>`${e.id}-relationships`,input:({context:e})=>({subject:e.subject,viewId:e.currentView.id,scope:`view`,enableSelectSubject:!1,enableChangeScope:!0,closeable:!1})}),exit:[Zt(({self:e})=>`${e.id}-relationships`,{type:`close`}),Xt(({self:e})=>`${e.id}-relationships`)],on:{"change.subject":{actions:I({subject:({event:e})=>e.subject})},close:`closed`}},closed:{id:`closed`,type:`final`}}});function Ba(e){let t=[],n=[],r=new Map,i=Xn.from(e.nodes.reduce((e,t)=>(r.set(t.id,t),t.parent||e.push({node:t,parent:null}),e),[])),a=e=>H(r.get(e),`Node not found: ${e}`),o;for(;o=i.dequeue();){let{node:e,parent:n}=o,r=E(e.children,1);if(r)for(let t of e.children)i.enqueue({node:a(t),parent:e});let s={x:e.x,y:e.y};n&&(s.x-=n.x,s.y-=n.y);let c=e.id,l={id:c,draggable:!1,deletable:!1,position:s,zIndex:r?Ze.Compound:Ze.Element,style:{width:e.width,height:e.height},initialWidth:e.width,initialHeight:e.height,...n&&{parentId:n.id}},u=e.modelRef,d={navigateTo:e.navigateTo??null};switch(!0){case r:t.push({...l,type:`compound`,data:{id:c,column:e.column,title:e.title,color:e.color,style:e.style,depth:e.depth??0,icon:e.icon??`none`,ports:e.ports,fqn:u,...d}});break;default:t.push({...l,type:`element`,data:{id:c,column:e.column,fqn:u,title:e.title,technology:e.technology,description:e.description??null,height:e.height,width:e.width,color:e.color,shape:e.shape,icon:e.icon??`none`,ports:e.ports,style:e.style,tags:e.tags,...d}})}}for(let{source:t,target:r,relationId:i,label:a,technology:o,description:s,navigateTo:c=null,color:l=`gray`,line:u=`dashed`,...d}of e.edges){let e=d.id;n.push({id:e,type:`relationship`,source:t,target:r,sourceHandle:d.sourceHandle,targetHandle:d.targetHandle,deletable:!1,data:{relationId:i,label:a,color:l,navigateTo:c,line:u,description:s??null,...o&&{technology:o}}})}return{xynodes:t,xyedges:n,bounds:e.bounds}}function Va(e){return`edgeId`in e?(V(n(e.edgeId),`edgeId is required`),{edgeId:e.edgeId}):{source:e.source,target:e.target}}var Ha={x:`22px`,y:`22px`},Q=tn({types:{context:{},events:{},emitted:{},children:{}},actors:{relationshipDetails:tn({types:{context:{},input:{},tags:{},events:{}},actions:{"xyflow:fitDiagram":({context:e},t)=>{let{duration:n,bounds:r}=t??{};n??=450;let{xyflow:i,xystore:a}=e;V(i,`xyflow is not initialized`),V(a,`xystore is not initialized`),r??=e.bounds;let o=Math.max(i.getZoom(),1);if(r){let{width:e,height:t}=a.getState(),s=Cn(r,e,t,Qe,o,Ha);i.setViewport(s,n>0?{duration:n}:void 0).catch(console.error)}else i.fitView({minZoom:Qe,maxZoom:o,padding:Ha,...n>0&&{duration:n,interpolate:`smooth`}}).catch(console.error)},"xyflow:updateNodeInternals":({context:e})=>{V(e.xystore,`xystore is not initialized`);let{domNode:t,updateNodeInternals:n}=e.xystore.getState(),r=new Set(e.xyedges.flatMap(e=>[e.source,e.target]));if(r.size===0||!t)return;let i=new Map;for(let e of r){let n=t.querySelector(`.react-flow__node[data-id="${e}"]`);n&&i.set(e,{id:e,nodeElement:n,force:!0})}n(i,{triggerFitView:!1})},updateXYFlow:I(({context:e,event:t})=>{L(t,`xyflow.init`);let n=e.initialized;return n.xyflow||(n={...n,xyflow:!0}),{initialized:n,xyflow:t.instance,xystore:t.store}}),updateLayoutData:I(({context:e,event:t})=>{L(t,`update.layoutData`);let{xynodes:n,xyedges:r,bounds:i}=Ba(t.data),a=e.initialized;return a.xydata||(a={...a,xydata:!0}),{initialized:a,xynodes:_a(e.xynodes,n),xyedges:ma(e.xyedges,r),bounds:Ut(e.bounds,i)?e.bounds:i}}),"open relationship source":an(({system:e,event:t})=>{if(t.type!==`xyflow.edgeClick`)return;let n=Y(e).diagramActorRef,r=t.edge.data.relationId;r&&n.send({type:`open.source`,relation:r})})},guards:{isReady:({context:e})=>e.initialized.xydata&&e.initialized.xyflow,"enable: navigate.to":()=>!0}}).createMachine({initial:`initializing`,context:({input:e})=>({subject:Va(e),viewId:e.viewId,bounds:{x:0,y:0,width:200,height:200},initialized:{xydata:!1,xyflow:!1},xyflow:null,xystore:null,xynodes:[],xyedges:[]}),states:{initializing:{on:{"xyflow.init":{actions:`updateXYFlow`,target:`isReady`},"update.layoutData":{actions:`updateLayoutData`,target:`isReady`},close:{target:`closed`}}},isReady:{always:[{guard:`isReady`,actions:[{type:`xyflow:fitDiagram`,params:{duration:0}},F({type:`xyflow.updateNodeInternals`},{delay:50})],target:`ready`},{target:`initializing`}]},ready:{on:{"xyflow.edgeMouseEnter":{actions:[I({xyedges:({context:e,event:t})=>{let n=e.xyedges.some(e=>e.data.dimmed===!0||e.data.dimmed===`immediate`);return e.xyedges.map(e=>e.id===t.edge.id?M.setData(e,{hovered:!0,dimmed:!1}):n&&!e.selected?M.setDimmed(e,`immediate`):e)}}),on(`undim.edges`),on(`dim.nonhovered.edges`),F({type:`dim.nonhovered.edges`},{id:`dim.nonhovered.edges`,delay:100})]},"xyflow.edgeMouseLeave":{actions:[I({xyedges:({context:e,event:t})=>e.xyedges.map(e=>e.id===t.edge.id?M.setHovered(e,!1):e)}),on(`dim.nonhovered.edges`),F({type:`undim.edges`},{id:`undim.edges`,delay:400})]},"dim.nonhovered.edges":{actions:I({xyedges:({context:e})=>e.xyedges.map(e=>M.setDimmed(e,e.data.hovered!==!0))})},"undim.edges":{actions:I({xyedges:({context:e})=>e.xyedges.some(e=>e.selected===!0)?e.xyedges.map(e=>M.setDimmed(e,e.selected===!0?!1:e.data.dimmed||`immediate`)):e.xyedges.map(M.setDimmed(!1))})},"xyflow.selectionChange":{actions:an(({event:e,context:t,enqueue:n})=>{e.edges.length===0&&t.xyedges.some(e=>e.data.dimmed)&&!t.xyedges.some(e=>e.data.hovered)&&n.raise({type:`undim.edges`})})},"update.layoutData":{actions:[`updateLayoutData`,on(`fitDiagram`),F({type:`fitDiagram`,duration:0},{id:`fitDiagram`,delay:50}),F({type:`xyflow.updateNodeInternals`},{delay:75})]},"xyflow.init":{actions:`updateXYFlow`},"xyflow.applyNodeChanges":{actions:I({xynodes:({context:e,event:t})=>xn(t.changes,e.xynodes)})},"xyflow.applyEdgeChanges":{actions:I({xyedges:({context:e,event:t})=>_n(t.changes,e.xyedges)})},"xyflow.paneDblClick":{actions:`xyflow:fitDiagram`},"xyflow.edgeClick":{actions:`open relationship source`},"navigate.to":{actions:I({subject:({event:e})=>Va(e.params),viewId:({context:e,event:t})=>t.params.viewId??e.viewId})},close:{target:`closed`}},exit:I({xyedges:[],xynodes:[],initialized:{xydata:!1,xyflow:!1},xyflow:null,xystore:null})},closed:{type:`final`}},on:{fitDiagram:{actions:{type:`xyflow:fitDiagram`,params:C(`event`)}},"xyflow.resized":{actions:[on(`fitDiagram`),F({type:`fitDiagram`},{id:`fitDiagram`,delay:200})]},"xyflow.updateNodeInternals":{actions:`xyflow:updateNodeInternals`}}}),elementDetails:za,relationshipsBrowser:Ra,hotkey:ln(({sendBack:e})=>{let t=Ue([[`Escape`,t=>{t.stopPropagation(),e({type:`close`})},{preventDefault:!0}]]);return document.body.addEventListener(`keydown`,t,{capture:!0}),()=>{document.body.removeEventListener(`keydown`,t,{capture:!0})}})},guards:{"has overlays?":({context:e})=>e.overlays.length>0,"close specific overlay?":({event:e})=>e.type===`close`&&n(e.actorId),"last: is relationshipDetails?":({context:e})=>de(e.overlays)?.type===`relationshipDetails`,"last: is relationshipsBrowser?":({context:e})=>de(e.overlays)?.type===`relationshipsBrowser`}}),Ua=e=>Q.emit({type:`opened`,overlay:e.split(`-`)[0]}),Wa=e=>Q.emit({type:`closed`,overlay:e.split(`-`)[0]}),Ga=()=>Q.emit({type:`idle`}),Ka=()=>Q.enqueueActions(({context:e,enqueue:t})=>{if(e.overlays.length===0)return;let n=de(e.overlays)?.id;n&&(t.sendTo(n,{type:`close`}),t.stopChild(n),t.assign({overlays:e.overlays.filter(e=>e.id!==n)}),t(Wa(n)))}),qa=()=>Q.enqueueActions(({context:e,enqueue:t,event:r})=>{L(r,`close`);let i=r.actorId;if(!n(i))return;let a=e.overlays.find(e=>e.id===i)?.id;a&&(t.sendTo(a,{type:`close`}),t.stopChild(a),t.assign({overlays:e.overlays.filter(e=>e.id!==a)}),t(Wa(a)))}),Ja=()=>Q.enqueueActions(({context:e,enqueue:t})=>{for(let{id:n}of x(e.overlays))t.sendTo(n,{type:`close`}),t.stopChild(n),t(Wa(n));t.assign({overlays:[]})}),Ya=()=>Q.enqueueActions(({context:e,enqueue:t,event:n})=>{if(L(n,`open.elementDetails`),e.overlays.some(e=>e.type===`elementDetails`&&e.subject===n.subject))return;let r=`elementDetails-${e.seq}`;t.spawnChild(`elementDetails`,{id:r,input:n,syncSnapshot:!0}),t.assign({seq:e.seq+1,overlays:[...e.overlays,{id:r,type:`elementDetails`,subject:n.subject}]}),t(Ua(r))}),Xa=()=>Q.enqueueActions(({context:e,enqueue:t,event:n})=>{L(n,`open.relationshipDetails`);let r=de(e.overlays);if(r?.type===`relationshipDetails`){t.sendTo(r.id,{...n,type:`navigate.to`});return}let i=`relationshipDetails-${e.seq}`;t.spawnChild(`relationshipDetails`,{id:i,input:n,syncSnapshot:!0}),t.assign({seq:e.seq+1,overlays:[...e.overlays,{id:i,type:`relationshipDetails`}]}),t(Ua(i))}),Za=()=>Q.enqueueActions(({context:e,enqueue:t,event:n})=>{L(n,`open.relationshipsBrowser`);let r=de(e.overlays);if(r?.type===`relationshipsBrowser`){t.sendTo(r.id,{type:`navigate.to`,subject:n.subject,viewId:n.viewId});return}let i=`relationshipsBrowser-${e.seq}`;t.spawnChild(`relationshipsBrowser`,{id:i,input:n,syncSnapshot:!0}),t.assign({seq:e.seq+1,overlays:[...e.overlays,{id:i,type:`relationshipsBrowser`,subject:n.subject}]}),t(Ua(i))}),Qa=()=>Q.enqueueActions(({enqueue:e,event:t})=>{switch(L(t,[`open.elementDetails`,`open.relationshipDetails`,`open.relationshipsBrowser`]),t.type){case`open.elementDetails`:e(Ya());break;case`open.relationshipDetails`:e(Xa());break;case`open.relationshipsBrowser`:e(Za());break}}),$a=()=>Q.spawnChild(`hotkey`,{id:`hotkey`}),eo=()=>Q.stopChild(`hotkey`),to=Q.createMachine({id:`overlays`,context:()=>({seq:1,overlays:[]}),initial:`idle`,on:{"close.all":{actions:Ja(),target:`#idle`}},states:{idle:{id:`idle`,entry:[Ga()],on:{"open.*":{actions:Qa(),target:`opened`}}},opened:{entry:$a(),exit:eo(),initial:`hasOverlays`,states:{hasOverlays:{on:{"open.*":{actions:Qa()},close:[{guard:`close specific overlay?`,actions:qa(),target:`decide`},{actions:Ka(),target:`decide`}]}},decide:{always:[{guard:`has overlays?`,target:`hasOverlays`},{target:`#idle`}]}}},final:{entry:[Ja(),eo()],type:`final`}}}),no=tn({types:{context:{},events:{}},delays:{MAX_WAIT_ANIMATION_END:1e3},actions:{"reset navigateTo":I(()=>({navigateTo:null})),"assign navigateTo":I(({event:e})=>(L(e,[`navigate.to`]),{navigateTo:{viewId:e.viewId,focusOnElement:e.focusOnElement}})),"change searchValue":I({searchValue:({event:e,context:t})=>(L(e,[`change.search`,`open`]),e.search??t.searchValue)}),"reset pickViewFor":I(()=>({pickViewFor:null}))}}).createMachine({id:`search`,context:{openedWithSearch:null,searchValue:``,pickViewFor:null,navigateTo:null},initial:`inactive`,states:{inactive:{entry:[`reset navigateTo`,`reset pickViewFor`],on:{open:{target:`opened`,actions:[I({openedWithSearch:({event:e})=>e.search??null,searchValue:({event:e,context:t})=>e.search??t.searchValue})]}}},opened:{on:{open:{actions:`change searchValue`},"change.search":{actions:`change searchValue`},"pickview.open":{target:`pickView`,actions:I({pickViewFor:({event:e})=>e.elementFqn})},"navigate.to":{target:`waitAnimationEnd`,actions:`assign navigateTo`},close:{target:`inactive`}}},pickView:{on:{"pickview.close":{target:`opened`,actions:`reset pickViewFor`},"navigate.to":{target:`waitAnimationEnd`,actions:`assign navigateTo`},close:{target:`inactive`}}},waitAnimationEnd:{on:{"animation.presence.end":{target:`inactive`,actions:an(({context:e,system:t,enqueue:n})=>{let r=e.navigateTo;if(!r)return;let i=Y(t).diagramActorRef;if(r.focusOnElement&&i.getSnapshot().context.view.id===r.viewId){n.sendTo(i,{type:`focus.node`,nodeId:r.focusOnElement});return}n.sendTo(i,{type:`navigate.to`,...r})})}},after:{MAX_WAIT_ANIMATION_END:{target:`inactive`}}}}}),ro=ln(({sendBack:e})=>{let t=Ue([[`Escape`,t=>{t.stopPropagation(),e({type:`key.esc`})},{preventDefault:!0}]]),n=Ue([[`ArrowLeft`,t=>{t.stopPropagation(),e({type:`key.arrow.left`})},{preventDefault:!0}],[`ArrowUp`,t=>{t.stopPropagation(),e({type:`key.arrow.up`})},{preventDefault:!0}],[`ArrowRight`,t=>{t.stopPropagation(),e({type:`key.arrow.right`})},{preventDefault:!0}],[`ArrowDown`,t=>{t.stopPropagation(),e({type:`key.arrow.down`})},{preventDefault:!0}]]);return document.body.addEventListener(`keydown`,t),document.body.addEventListener(`keydown`,n,{capture:!0}),()=>{document.body.removeEventListener(`keydown`,t),document.body.removeEventListener(`keydown`,n,{capture:!0})}}),io=ln(({sendBack:e})=>{let t=()=>{e({type:`media.print.on`})},n=()=>{e({type:`media.print.off`})};return window.addEventListener(`beforeprint`,t),window.addEventListener(`afterprint`,n),()=>{window.removeEventListener(`beforeprint`,t),window.removeEventListener(`afterprint`,n)}}),ao=e=>{let t=e.toggledFeatures,n=p(e.activeWalkthrough),r=e.features.enableCompareWithLatest&&(t.enableCompareWithLatest??!1)&&p(e.view._layout)&&!n;return{enableCompareWithLatest:r,enableReadOnly:e.features.enableReadOnly||(t.enableReadOnly??!1)||n||r&&e.view._layout===`auto`}},oo=e=>ao(e).enableReadOnly,$=tn({types:{context:{},input:{},children:{},events:{},emitted:{}},actors:{hotkeyActorLogic:ro,overlaysActorLogic:to,searchActorLogic:no,mediaPrintActorLogic:io,editorActor:da},guards:{isReady:({context:e})=>e.initialized.xydata&&e.initialized.xyflow,"enabled: Editor":({context:e})=>e.features.enableEditor,"enabled: FitView":({context:e})=>e.features.enableFitView,"enabled: FocusMode":({context:e})=>e.features.enableFocusMode&&oo(e),"enabled: Readonly":({context:e})=>oo(e),"enabled: RelationshipDetails":({context:e})=>e.features.enableRelationshipDetails,"enabled: Search":({context:e})=>e.features.enableSearch,"enabled: ElementDetails":({context:e})=>e.features.enableElementDetails,"enabled: OpenSource":({context:e})=>e.features.enableVscode,"enabled: DynamicViewWalkthrough":({context:e})=>e.features.enableDynamicViewWalkthrough,"focus.node: autoUnfocus":({event:e})=>(L(e,`focus.node`),e.autoUnfocus===!0),"enabled: Overlays":({context:e})=>e.features.enableElementDetails||e.features.enableRelationshipBrowser||e.features.enableRelationshipDetails,"not readonly":({context:e})=>!oo(e),"is dynamic view":({context:e})=>e.view._type===`dynamic`,"is same view":({context:e,event:t})=>{if(L(t,[`update.view`,`navigate.to`]),t.type===`update.view`)return e.view.id===t.view.id;if(t.type===`navigate.to`)return e.view.id===t.viewId;ir(t)},"is another view":({context:e,event:t})=>{if(L(t,[`update.view`,`navigate.to`]),t.type===`update.view`)return e.view.id!==t.view.id;if(t.type===`navigate.to`)return e.view.id!==t.viewId;ir(t)},"click: node has modelFqn":({event:e})=>(L(e,`xyflow.nodeClick`),`modelFqn`in e.node.data),"click: selected node":({event:e})=>(L(e,`xyflow.nodeClick`),e.node.selected===!0),"click: same node":({context:e,event:t})=>(L(t,`xyflow.nodeClick`),e.lastClickedNode?.id===t.node.id),"click: focused node":({context:e,event:t})=>(L(t,`xyflow.nodeClick`),e.focusedNode===t.node.id),"click: node has connections":({context:e,event:t})=>(L(t,`xyflow.nodeClick`),e.xyedges.some(e=>e.source===t.node.id||e.target===t.node.id)),"click: selected edge":({event:e})=>(L(e,[`xyflow.edgeClick`,`xyflow.edgeDoubleClick`]),e.edge.selected===!0||e.edge.data.active===!0),"click: active walkthrough step":({context:e,event:t})=>{if(L(t,[`xyflow.edgeClick`,`xyflow.edgeDoubleClick`]),!e.activeWalkthrough)return!1;let{stepId:n}=e.activeWalkthrough;return t.edge.id===n}}}),so={idle:`#idle`,focused:`#focused`,walkthrough:`#walkthrough`,printing:`#printing`,navigating:`#navigating`},co=ee(so,e=>({target:e}));function lo({icon:e,onClick:t}){return z(Pe,{className:k(`nodrag nopan`,Ur()),onPointerDownCapture:A,onClick:t,role:`button`,onDoubleClick:A,children:e??z(Ft,{})})}var uo=Je({base:{transitionDuration:`normal`},variants:{delay:{true:{transitionDelay:{base:`0.2s`,_hover:`0s`}}}}}),fo={normal:{scale:1},hovered:{scale:1.2},whileHover:{scale:1.4},whileTap:{scale:1}};function po(e){let t=R(6),{data:n,icon:r,onClick:i}=e,{hovered:a}=n,o=a===void 0?!1:a,s=Ve(o,o?130:0)[0]&&o,c=s?`hovered`:`normal`,l;return t[0]!==r||t[1]!==s||t[2]!==o||t[3]!==i||t[4]!==c?(l=z(En,{initial:!1,variants:fo,animate:c,whileHover:`whileHover`,whileTap:`whileTap`,className:`likec4-compound-details details-button`,tabIndex:-1,children:z(Pe,{className:k(`nodrag nopan`,uo({delay:o&&!s}),it({variant:`transparent`})),tabIndex:-1,onClick:i,onDoubleClick:A,children:r??z(Nt,{stroke:1.8,style:{width:`75%`}})})}),t[0]=r,t[1]=s,t[2]=o,t[3]=i,t[4]=c,t[5]=l):l=t[5],l}function mo(e){let t=R(2),{nodeProps:n,className:r,children:i,style:a,...o}=e,{data:s}=n,{hovered:c,dimmed:l,...u}=s,d=c===void 0?!1:c,f=l===void 0?!1:l,p=lt(),m=y(u.style.opacity??100,{min:0,max:100}),h=m<98,g=m/100*50,_;t[0]===g?_=t[1]:(_=y(g,{min:0,max:50}),t[0]=g,t[1]=_);let v=50+_,b=zr({isTransparent:h,inverseColor:m<70,borderStyle:u.style.border??(h?p.defaults.group.border:`none`)}),x=y(u.depth??1,{min:1,max:5});return z(En,{className:k(b,r),initial:!1,"data-likec4-hovered":d,"data-likec4-color":u.color,"data-compound-depth":x,...f!==!1&&{"data-likec4-dimmed":f},tabIndex:-1,animate:{"--_border-transparency":`${v}%`,"--_compound-transparency":`${m}%`},style:a,...o,children:i})}function ho({data:e}){return B(`div`,{className:`likec4-compound-title-container`,children:[nt({element:e,className:`likec4-compound-icon`}),z(`div`,{className:`likec4-compound-title`,children:e.title})]})}var go={normal:{originX:.4,originY:.6,scale:1,opacity:.5},hovered:{originX:.4,originY:.6,scale:1.25,opacity:.9},selected:{originX:.4,originY:.6,scale:1.25,opacity:.9},whileHover:{scale:1.4,opacity:1},whileTap:{scale:1.15}},_o=O({position:`absolute`,top:`0.5`,right:`0.5`,_shapeBrowser:{right:`[5px]`},_shapeCylinder:{top:`[14px]`},_shapeStorage:{top:`[14px]`},_shapeQueue:{top:`[1px]`,right:`3`},_smallZoom:{display:`none`},_print:{display:`none`}});function vo({selected:e=!1,data:{hovered:t=!1},icon:n,onClick:r}){let i;switch(!0){case t:i=`hovered`;break;case e:i=`selected`;break;default:i=`normal`}return z(kn,{className:k(_o,`details-button`),children:z(Pe,{className:k(`nodrag nopan`,it({variant:`transparent`})),component:On,initial:!1,variants:go,animate:i,whileHover:`whileHover`,whileTap:`whileTap`,onClick:r,onDoubleClick:A,tabIndex:-1,children:n??z(Nt,{stroke:1.8,style:{width:`75%`}})})})}function yo({edgeProps:{data:e},svgPath:t}){let n=e.drifts;return!n||n.length===0?null:z(`path`,{className:k(`react-flow__edge-path`,O({pointerEvents:`none`,stroke:`likec4.compare.manual.outline`,fill:`none`,strokeWidth:{base:`8px`,_whenHovered:`12px`},strokeOpacity:.5})),d:t,strokeLinecap:`round`})}var bo=O({overflow:`visible`,position:`absolute`,pointerEvents:`none`,top:`0`,left:`0`,mixBlendMode:{_dark:`screen`,_light:`multiply`},zIndex:`[100]`}),xo=O({fill:`[var(--xy-edge-stroke)]`,stroke:`transparent`,fillOpacity:.5,strokeWidth:10,r:4,cursor:`grab`,pointerEvents:`all`,visibility:`hidden`,transitionDuration:`120ms`,transitionProperty:`visibility, fill, fill-opacity, r`,transitionTimingFunction:`inOut`,transitionDelay:`20ms`,":where([data-likec4-selected='true'], [data-likec4-hovered='true']) &":{visibility:`visible`,fillOpacity:1,transitionTimingFunction:`out`,transitionDelay:`0ms`},":where([data-likec4-selected='true']) &":{r:6},":is([data-likec4-hovered='true']) &":{r:8},_hover:{fill:`mantine.colors.primary.filledHover`,r:10,transitionDuration:`100ms`},_groupActive:{cursor:`grabbing`}});function So(e){let t=R(21),{sourceX:n,sourceY:r,targetX:i,targetY:a,data:o}=e,s;t[0]!==o.controlPoints||t[1]!==o.points?(s=()=>o.controlPoints??at(o.points),t[0]=o.controlPoints,t[1]=o.points,t[2]=s):s=t[2];let[c,l]=Un(s),u;t[3]!==o.controlPoints||t[4]!==o.points?(u=()=>{let e=o.controlPoints??at(o.points);l(t=>N(t,e)?t:e)},t[3]=o.controlPoints,t[4]=o.points,t[5]=u):u=t[5];let d;t[6]===o.controlPoints?d=t[7]:(d=o.controlPoints??[],t[6]=o.controlPoints,t[7]=d);let f;t[8]!==o.points||t[9]!==d?(f=[o.points,d],t[8]=o.points,t[9]=d,t[10]=f):f=t[10],Et(u,f);let p;t[11]!==c||t[12]!==o.dir||t[13]!==n||t[14]!==r||t[15]!==i||t[16]!==a?(p=e=>{let{x:t,y:s}=e,u=W(n,r),d=W(i,a),f=[o.dir===`back`?d:u,...c.map(W)||[],o.dir===`back`?u:d],p=W(t,s).round(),m=0,h=1/0;for(let e=0;e<f.length-1;e++){let t=f[e],n=f[e+1],r=n.subtract(t),i=p.subtract(t),a=p.subtract(n);if(r.dot(i)*r.dot(a)<0){let t=Math.abs(r.cross(i))/r.length();t<h&&(h=t,m=e)}}let g=c.slice();return g.splice(m,0,{x:p.x,y:p.y}),l(g),g},t[11]=c,t[12]=o.dir,t[13]=n,t[14]=r,t[15]=i,t[16]=a,t[17]=p):p=t[17];let m=j(p),h;return t[18]!==c||t[19]!==m?(h={controlPoints:c,setControlPoints:l,insertControlPoint:m},t[18]=c,t[19]=m,t[20]=h):h=t[20],h}var Co=Mn().curve(Nn.alpha(.7)).x(e=>Math.trunc(e.x)).y(e=>Math.trunc(e.y));function wo(e){let t=R(16),{props:n,controlPoints:r,isControlPointDragging:i}=e,{sourceX:a,sourceY:o,source:s,target:c,targetX:l,targetY:u,data:d}=n,f;t[0]!==s||t[1]!==c?(f=e=>{let{nodeLookup:t}=e,n=Sn(K(t.get(s),`source node ${s} not found`)),r=Sn(K(t.get(c),`target node ${c} not found`));return[Math.ceil(n.width),Math.ceil(n.height),Math.ceil(r.width),Math.ceil(r.height)]},t[0]=s,t[1]=c,t[2]=f):f=t[2];let[h,g,_,v]=Xe(f,Ut);if(!(p(d.controlPoints)||i)){let e;return t[3]===d.points?e=t[4]:(e=st(d.points),t[3]=d.points,t[4]=e),e}let y;if(t[5]!==r||t[6]!==d.dir||t[7]!==g||t[8]!==h||t[9]!==a||t[10]!==o||t[11]!==v||t[12]!==_||t[13]!==l||t[14]!==u){let e=W(a,o).trunc(),n=W(l,u).trunc(),i={...e.subtract(W(h,g).divide(2)).trunc().toObject(),width:h,height:g},s={...n.subtract(W(_,v).divide(2)).trunc().toObject(),width:_,height:v};y=K(Co(d.dir===`back`?[n,tt(s,m(r)??e,6),...r,tt(i,de(r)??n,6),e]:[e,tt(i,m(r)??n,6),...r,tt(s,de(r)??e,6),n])),t[5]=r,t[6]=d.dir,t[7]=g,t[8]=h,t[9]=a,t[10]=o,t[11]=v,t[12]=_,t[13]=l,t[14]=u,t[15]=y}else y=t[15];return y}var To=e=>{let t=e.getPointAtLength(e.getTotalLength()*.5);return{x:Math.round(t.x),y:Math.round(t.y)}},Eo=St(e=>{let[t,n]=Un(!1),r=Hn(t);r.current=t;let i=gt(),a=P(),{enableNavigateTo:o,enableReadOnly:s,enableCompareWithLatest:c}=q(),l=!s,{id:u,selected:d=!1,data:{labelBBox:f,labelXY:p,...m}}=e,h=o&&!t?m.navigateTo:void 0,{controlPoints:g,setControlPoints:_,insertControlPoint:v}=So(e),y=wo({props:e,controlPoints:g,isControlPointDragging:t}),b=f?.x??0,x=f?.y??0,[S,C]=yi({x:p?.x??b,y:p?.y??x},rt);Et(()=>{r.current||C({x:b,y:x})},[b,x]);let w=Hn(null);Vt(()=>{let e=w.current;!e||!t||C(To(e))},[y,t]);let ee=j(e=>{let t=f&&w.current?To(w.current):null;t?a.updateEdgeData(u,{controlPoints:e,labelBBox:{...f,...t}}):a.updateEdgeData(u,{controlPoints:e}),a.stopEditing(!0),n(!1)}),te=j(()=>{a.startEditing(`edge`),n(!0)}),ne=j(()=>{a.stopEditing(),n(!1)}),T=j(e=>{_(e),requestAnimationFrame(()=>{ee(e)})}),re=j(e=>{a.startEditing(`edge`),n(!0),_(e),requestAnimationFrame(()=>{ee(e)})}),ie=j(e=>{if(e.pointerType!==`mouse`||e.button!==2&&!d)return;e.stopPropagation(),e.preventDefault(),a.startEditing(`edge`);let t=v(i.screenToFlowPosition({x:e.clientX,y:e.clientY},{snapToGrid:!1}));a.updateEdgeData(u,{controlPoints:t}),a.stopEditing(!0)});return t&&!e.data.hovered&&(e={...e,data:{...e.data,hovered:!0}}),B(Wn,{children:[B(ft,{...e,className:O({"& .react-flow__edge-interaction":{cursor:l&&d?`copy`:void 0}}),children:[z(dt,{edgeProps:e,svgPath:y,ref:w,isDragging:t,...l&&{onEdgePointerDown:ie}}),c&&z(yo,{edgeProps:e,svgPath:y}),f&&z(_t,{edgeProps:e,labelPosition:t?S:{x:b,y:x},children:z(Ct,{pointerEvents:l?`none`:`all`,edgeProps:e,children:h&&z(lo,{onClick:e=>{e.stopPropagation(),a.navigateTo(h)}})})})]}),l&&g.length>0&&z(Do,{isControlPointDragging:t,edgeProps:e,controlPoints:g,onMove:_,onStartMove:te,onCancelMove:ne,onFinishMove:T,onDelete:re})]})});Eo.displayName=`RelationshipEdge`;function Do({isControlPointDragging:e,edgeProps:t,controlPoints:n,onMove:r,onStartMove:i,onCancelMove:a,onFinishMove:o,onDelete:s}){let c=ht(),l=gt(),u=t.data.id,d=Hn(n);d.current=n;let f=(e,t,n)=>{let s=!1,c={x:t.clientX,y:t.clientY},u={...c},f=null,p=[...d.current],m=t=>{u.x=t.clientX,u.y=t.clientY,rt(c,u)||(s||(s=!0,i()),f??=requestAnimationFrame(()=>{f=null;let{x:t,y:n}=l.screenToFlowPosition(u,{snapToGrid:!1});p=[...p],p[e]={x:Math.trunc(t),y:Math.trunc(n)},r(p)})),t.stopPropagation()};n.addEventListener(`pointermove`,m,{capture:!0}),n.addEventListener(`pointerup`,e=>{e.stopPropagation(),n.removeEventListener(`pointermove`,m,{capture:!0}),n.removeEventListener(`click`,Oo,{capture:!0}),f!==null&&cancelAnimationFrame(f),s?o(p):a()},{once:!0,capture:!0}),n.addEventListener(`click`,Oo,{capture:!0,once:!0})},p=(e,t)=>{let n=[...d.current];n.length<=1||e>=n.length||(Oo(t),n.splice(e,1),setTimeout(()=>{s(n)},10))},m=j(e=>{let{domNode:t,addSelectedEdges:n,edges:r,unselectNodesAndEdges:i}=c.getState();if(!t||e.pointerType!==`mouse`)return;let a=parseFloat(e.currentTarget.getAttribute(`data-control-point-index`)||``);if(isNaN(a))throw Error(`data-control-point-index is not a number`);switch(e.button){case 0:e.stopPropagation(),i({edges:r.filter(e=>e.selected&&e.id!==u)}),n([u]),f(a,e,t);break;case 2:p(a,e);break}}),h=j(e=>{if(e.pointerType!==`mouse`)return;let t=parseFloat(e.currentTarget.getAttribute(`data-control-point-index`)||``);if(isNaN(t))throw console.error(e.currentTarget),Error(`data-control-point-index is not a number`);p(t,e)});return z(bn,{children:z(ft,{component:`svg`,className:bo,...t,children:z(`g`,{"data-active":e?!0:void 0,className:`group`,onContextMenu:Oo,children:n.map((e,t)=>z(`circle`,{"data-control-point-index":t,onPointerDownCapture:m,onDoubleClick:h,className:k(`nodrag nopan`,xo),cx:e.x,cy:e.y},`controlPoints`+u+`#`+t))})})})}var Oo=e=>{e.stopPropagation(),e.preventDefault()},ko=16;function Ao(e){let t=R(8),{enableNavigateTo:n,enableCompareWithLatest:r}=q(),i=P(),{navigateTo:a}=e.data,o=e.source===e.target,s=e.sourceX>e.targetX,c;if(t[0]!==i||t[1]!==r||t[2]!==n||t[3]!==s||t[4]!==o||t[5]!==a||t[6]!==e){let[l]=pn({sourceX:e.sourceX,sourceY:e.sourceY,sourcePosition:e.sourcePosition,targetX:e.targetX,targetY:e.targetY,targetPosition:e.targetPosition,...o&&{offset:30,borderRadius:16}}),u;bb0:switch(!0){case o:u=e.sourceX+24+ko;break bb0;case s:u=e.sourceX-ko;break bb0;default:u=e.sourceX+ko}c=B(ft,{...e,children:[z(dt,{edgeProps:e,svgPath:l}),r&&z(yo,{edgeProps:e,svgPath:l}),z(_t,{edgeProps:e,labelPosition:{x:u,y:e.sourceY+(o?0:ko),translate:s?`translate(-100%, 0)`:void 0},children:z(Ct,{edgeProps:e,children:n&&a&&z(lo,{onClick:e=>{e.stopPropagation(),i.navigateTo(a)}})})})]}),t[0]=i,t[1]=r,t[2]=n,t[3]=s,t[4]=o,t[5]=a,t[6]=e,t[7]=c}else c=t[7];return c}var jo={normal:{scale:1,x:0,y:0},hovered:{scale:1.2,x:-1,y:-1},whileHover:{scale:1.4,x:-3,y:-1},whileTap:{scale:1}};function Mo(e){let t=R(6),{data:n,icon:r,onClick:i}=e,{hovered:a}=n,o=a===void 0?!1:a,s=Ve(o,o?130:0)[0]&&o,c=s?`hovered`:`normal`,l;return t[0]!==r||t[1]!==s||t[2]!==o||t[3]!==i||t[4]!==c?(l=z(En,{initial:!1,variants:jo,animate:c,whileHover:`whileHover`,whileTap:`whileTap`,className:`likec4-compound-navigation compound-action`,onClick:A,tabIndex:-1,children:z(Pe,{className:k(`nodrag nopan`,uo({delay:o&&!s}),it({variant:`transparent`})),tabIndex:-1,onClick:i,onDoubleClick:A,children:r??z(Ft,{stroke:2})})}),t[0]=r,t[1]=s,t[2]=o,t[3]=i,t[4]=c,t[5]=l):l=t[5],l}var No=e=>{let t=R(7),{enableNavigateTo:n}=q(),r=P(),{navigateTo:i}=e.data;if(i&&n){let n;t[0]!==r||t[1]!==i||t[2]!==e.id?(n=t=>{t.stopPropagation(),r.navigateTo(i,e.id)},t[0]=r,t[1]=i,t[2]=e.id,t[3]=n):n=t[3];let a;return t[4]!==e||t[5]!==n?(a=z(Mo,{onClick:n,...e}),t[4]=e,t[5]=n,t[6]=a):a=t[6],a}return null};function Po({extraButtons:e,...t}){let{enableNavigateTo:n,enableRelationshipBrowser:r}=q(),i=P(),{id:a,navigateTo:o,modelFqn:s}=t.data,c=Vn(()=>{let e=[];return o&&n&&e.push({key:`navigate`,icon:z(Ft,{}),onClick:e=>{e.stopPropagation(),i.navigateTo(o,a)}}),r&&e.push({key:`relationships`,icon:z(It,{}),onClick:e=>{e.stopPropagation(),i.openRelationshipsBrowser(s)}}),e},[n,r,s,o,a,i]);return e&&E(e,1)&&(c=[...c,...e]),z(xt,{...t,buttons:c})}var Fo=({extraButtons:e,...t})=>{let{enableNavigateTo:n,enableRelationshipBrowser:r}=q(),i=P(),{id:a,navigateTo:o,modelFqn:s}=t.data,c=Vn(()=>{let e=[];return o&&n&&e.push({key:`navigate`,icon:z(Ft,{}),onClick:e=>{e.stopPropagation(),i.navigateTo(o,a)}}),r&&s&&e.push({key:`relationships`,icon:z(It,{}),onClick:e=>{e.stopPropagation(),i.openRelationshipsBrowser(s)}}),e},[n,r,s,o,a]);return e&&E(e,1)&&(c=[...c,...e]),z(xt,{...t,buttons:c})};function Io({nodeProps:{data:e}}){let t=e.drifts;return!t||t.length===0?null:z(kn,{className:`likec4-node-drifts`,css:{display:`contents`,"& + .likec4-element-shape":{outlineColor:`likec4.compare.manual.outline`,outlineWidth:`4px`,outlineStyle:`dashed`,outlineOffset:`1.5`}}})}function Lo({data:e}){return!er(e,`notes`)||f(e.notes.md||e.notes.txt)?null:z(zo,{data:e})}function Ro(e){e.nativeEvent.stopImmediatePropagation(),e.stopPropagation()}function zo({data:e}){return z(Bo,{data:e})}function Bo(e){let t=R(5),{data:n}=e,r=n.notes,i=n.width??0,a;t[0]===i?a=t[1]:(a=y(i,{min:250,max:500}),t[0]=i,t[1]=a);let o=a;y(n.height??0,{min:200,max:600});let s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s={},t[2]=s):s=t[2];let[c,l]=me(!1,s),u=mr(n.id+(r.md??r.txt)),d;t[3]===l?d=t[4]:(d=e=>{e&&(e.preventDefault(),`nativeEvent`in e&&e.nativeEvent.stopImmediatePropagation(),e.stopPropagation()),l.toggle()},t[3]=l,t[4]=d);let f=j(d),p=n.hovered??!1,m=c;return B(Wn,{children:[B(Dn,{children:[B(Tn.div,{className:k(`nopan nodrag`,Zr({opened:c})),variants:Uo.root,initial:`initial`,animate:c?`expanded`:p?`hovered`:`initial`,whileHover:`whileHover`,exit:`exit`,...!c&&{onPointerDownCapture:f},onMouseDownCapture:f,onClickCapture:f,onClick:Ro,"data-state":c?`expanded`:`collapsed`,children:[z(Tn.div,{variants:Uo.paper1,className:`__paper __paper-back`},`paper-back`),!c&&z(Tn.div,{layout:!0,layoutId:u,variants:Uo.paper2,"data-state":c?`expanded`:`collapsed`,className:`__paper __paper-front`},u)]},`node-notes-${u}`),c&&z(mn,{children:z(Tn.div,{layout:!0,layoutDependency:m,layoutId:u,className:O({position:`absolute`,zIndex:300,top:`0`,left:`0`,display:`flex`,pointerEvents:`all`,rounded:`sm`,backgroundColor:`likec4.overlay.body`,padding:`0`,alignItems:`stretch`,justifyContent:`stretch`,overflow:`hidden`,width:`fit-content`,height:`fit-content`,maxHeight:`70cqh`,maxWidth:`50cqw`}),"data-likec4-notes":u,style:{top:n.y+20,left:n.x+10,maxWidth:`min(calc(${o}px * 2), 50cqw)`},onMouseDownCapture:Ro,onClickCapture:Ro,onClick:Ro,children:z(be,{component:Tn.div,className:k(`nowheel`,O({flex:`1`,padding:`xs`,paddingRight:`xxs`})),children:z(jt,{className:O({paddingRight:`xxs`}),value:Zn.from(r)})})},u)},`portal`)]}),c&&z(Wo,{data:n,onCatchClick:f})]})}var Vo={rotateZ:`-5deg`,y:0,x:1,scale:1,originX:`55%`,originY:`80%`},Ho={rotateZ:`3deg`,y:-2,scale:1,backgroundColor:`color-mix(in oklab, var(--likec4-palette-fill) 8%, #FFF)`,originX:`45%`,originY:`80%`},Uo={root:{initial:{"--paper-bg":`color-mix(in oklab, var(--likec4-palette-fill) 50%, #EEE)`},hovered:{},whileHover:{"--paper-bg":`color-mix(in oklab, var(--likec4-palette-fill) 3%, #FFF)`},exit:{"--paper-bg":`color-mix(in oklab, var(--likec4-palette-fill) 50%, #EEE)`}},paper1:{initial:{...Vo,rotateZ:`-3.5deg`,y:1,scale:.95},hovered:{...Vo},whileHover:{...Vo,"--paper-bg":`color-mix(in oklab, var(--likec4-palette-fill) 3%, #FFF)`,scale:1.04},expanded:{...Vo,y:[0,1,20],scale:.95},exit:{...Vo,rotateZ:`-3.5deg`,y:1,scale:.95}},paper2:{initial:{...Ho,rotateZ:`2deg`,y:2,scale:.95,backgroundColor:`color-mix(in oklab, var(--likec4-palette-fill) 50%, #EEE)`},hovered:{...Ho},whileHover:{...Ho,scale:1.08},expanded:{...Ho,y:[0,1,20],scale:.95},exit:{...Ho,rotateZ:`2deg`,y:2,scale:.95,backgroundColor:`color-mix(in oklab, var(--likec4-palette-fill) 50%, #EEE)`}}};function Wo(e){let t=R(8),{data:n,onCatchClick:r}=e,i;t[0]===r?i=t[1]:(i=()=>{r()},t[0]=r,t[1]=i),Dr(`paneClick`,i);let a;return t[2]!==n.height||t[3]!==n.width||t[4]!==n.x||t[5]!==n.y||t[6]!==r?(a=z(mn,{children:z(kn,{css:{display:`block`,position:`absolute`,zIndex:200,pointerEvents:`all`,left:`0`,top:`0`,cursor:`zoom-out`},style:{transform:`translate(${n.x-40}px, ${n.y-40}px)`,width:(n.width??250)+80,height:(n.height??200)+80},onMouseDownCapture:r,onClickCapture:r,onClick:Ro})},`catch-all`),t[2]=n.height,t[3]=n.width,t[4]=n.x,t[5]=n.y,t[6]=r,t[7]=a):a=t[7],a}var Go=ke.withProps({color:`dark`,fz:`xs`,openDelay:400,closeDelay:150,label:``,children:null,offset:4,withinPortal:!1});function Ko(e){let t=R(3),{fqn:n}=e,r=P(),i;return t[0]!==r||t[1]!==n?(i=z(Go,{label:`Browse relationships`,children:z(Pe,{size:`md`,variant:`subtle`,color:`gray`,onClick:e=>{e.stopPropagation(),r.openRelationshipsBrowser(n)},children:z(It,{stroke:2,style:{width:`65%`,height:`65%`}})})}),t[0]=r,t[1]=n,t[2]=i):i=t[2],i}function qo(e){let t=R(4),{onOpenSource:n}=_i();if(!n)return null;let r;return t[0]!==n||t[1]!==e.deploymentId||t[2]!==e.elementId?(r=z(Go,{label:`Open source`,children:z(Pe,{size:`md`,variant:`subtle`,color:`gray`,onClick:t=>{t.stopPropagation(),e.elementId?n?.({element:e.elementId}):e.deploymentId&&n?.({deployment:e.deploymentId})},children:z(Mt,{stroke:1.8,style:{width:`65%`}})})}),t[0]=n,t[1]=e.deploymentId,t[2]=e.elementId,t[3]=r):r=t[3],r}function Jo(e){let t=R(8),{elementBorderStyle:n,onChange:r}=e,i=n===void 0?`none`:n,[a,o]=Un(i),s,c;t[0]===i?(s=t[1],c=t[2]):(s=()=>{o(i)},c=[i],t[0]=i,t[1]=s,t[2]=c),Bn(s,c);let l;t[3]===r?l=t[4]:(l=e=>{let t=e;o(t),r({border:t})},t[3]=r,t[4]=l);let u;return t[5]!==l||t[6]!==a?(u=z(Ne,{size:`xs`,fz:`xxs`,fullWidth:!0,withItemsBorders:!1,value:a,onChange:l,styles:{label:{paddingTop:2,paddingBottom:2}},data:[{label:`Solid`,value:`solid`},{label:`Dashed`,value:`dashed`},{label:`Dotted`,value:`dotted`},{label:`None`,value:`none`}]}),t[5]=l,t[6]=a,t[7]=u):u=t[7],u}var Yo=[`primary`,`secondary`,`muted`];function Xo(e){let t=R(2),{elementColor:n,elementOpacity:r,onColorPreview:i,isOpacityEditable:a,onChange:o,...s}=e,c=a===void 0?!1:a,{theme:l}=lt(),u;return t[0]===o?u=t[1]:(u=e=>o({color:e}),t[0]=o,t[1]=u),B(Oe,{clickOutsideEvents:[`pointerdown`,`mousedown`,`click`],position:`top-start`,offset:2,withinPortal:!1,...s,children:[z(Te,{children:z(Ie,{variant:`subtle`,color:`gray`,size:`xs`,px:6,children:z(Se,{color:l.colors[n].elements.fill,size:16,withShadow:!0,style:{color:`#fff`,cursor:`pointer`}})})}),B(Re,{p:`xs`,children:[z(Zo,{theme:l,elementColor:n,onColorPreview:i,onChange:u}),c&&B(Wn,{children:[z(Le,{h:`xs`}),z(xe,{label:`opacity`,labelPosition:`left`}),z(Le,{h:`xs`}),z(Qo,{elementOpacity:r,onOpacityChange:e=>{o({opacity:e})}})]})]})]})}function Zo({theme:e,elementColor:t,onColorPreview:n,onChange:r}){let i=e=>i=>{i.stopPropagation(),n(null),t!==e&&r(e)},a=S(e.colors).filter(e=>!Yo.includes(e));return z(Me,{gap:2,onMouseLeave:()=>n(null),children:B(De,{openDelay:1e3,closeDelay:300,children:[z(ti,{maxW:`120px`,gap:`1.5`,justify:`flex-start`,align:`flex-start`,direction:`row`,wrap:`wrap`,children:Yo.map(r=>z(ke,{label:r,fz:`xs`,color:`dark`,offset:2,withinPortal:!1,transitionProps:{duration:140,transition:`slide-up`},children:z(Se,{color:e.colors[r].elements.fill,size:18,withShadow:!0,onMouseEnter:()=>n(r),onClick:i(r),style:{color:`#fff`,cursor:`pointer`},children:t===r&&z(we,{style:{width:Ce(10),height:Ce(10)}})})},r))}),z(ti,{mt:`sm`,maxW:`110px`,gap:`1.5`,justify:`flex-start`,align:`flex-start`,direction:`row`,wrap:`wrap`,children:a.map(r=>z(ke,{label:r,fz:`xs`,color:`dark`,offset:2,transitionProps:{duration:140,transition:`slide-up`},children:z(Se,{color:e.colors[r].elements.fill,size:18,onMouseEnter:()=>n(r),onClick:i(r),style:{color:`#fff`,cursor:`pointer`},children:t===r&&z(we,{style:{width:Ce(10),height:Ce(10)}})})},r))})]})})}function Qo(e){let t=R(6),{elementOpacity:n,onOpacityChange:r}=e,i=n===void 0?100:n,[a,o]=Un(i),s,c;t[0]===i?(s=t[1],c=t[2]):(s=()=>{o(i)},c=[i],t[0]=i,t[1]=s,t[2]=c),zt(s,c);let l;return t[3]!==r||t[4]!==a?(l=z(Ee,{size:`sm`,color:`dark`,value:a,onChange:o,onChangeEnd:r}),t[3]=r,t[4]=a,t[5]=l):l=t[5],l}var $o=O({color:`text.dimmed`,fontSize:`xxs`,fontWeight:`bold`,maxWidth:`220px`,cursor:`default`,userSelect:`all`,textOverflow:`ellipsis`,overflow:`hidden`,whiteSpace:`nowrap`}),es=e=>e.xynodes.filter(e=>e.selected).length,ts=()=>Er(es);function ns(e){let{title:t,children:n,nodeProps:r,...i}=e,a=ts(),{selected:o,dragging:s,data:c}=r,l=o===void 0?!1:o,u=s===void 0?!1:s,{hovered:d}=c,f=(d===void 0?!1:d)&&a===0||l&&a===1,p=150;f?p=l?100:1e3:a>0&&(p=50);let[m]=Ve(f,p);return m?z(fn,{isVisible:!u,offset:4,...i,children:z(ze,{className:k(`nodrag`,`nopan`),px:5,pb:8,pt:4,radius:`sm`,shadow:`xl`,onDoubleClickCapture:A,onPointerDown:A,onClick:A,onDoubleClick:A,withBorder:!0,children:B(Jt,{gap:`2`,children:[z(kn,{px:`1`,children:z(Fe,{className:$o,children:t})}),z(Yt,{gap:`1`,children:n})]})})}):null}function rs(e,t){let n=R(13),r=P(),[i,a]=Un(null),o;n[0]!==r||n[1]!==i||n[2]!==t.data.color||n[3]!==t.data.id?(o=e=>{if(e===null){if(!i)return;a(null),r.updateNodeData(t.data.id,{color:i});return}a(e=>e??t.data.color),r.updateNodeData(t.data.id,{color:e})},n[0]=r,n[1]=i,n[2]=t.data.color,n[3]=t.data.id,n[4]=o):o=n[4];let s=j(o),c;n[5]!==r||n[6]!==t.data.id||n[7]!==e?(c=n=>{let{shape:i,color:a,...o}=n;r.updateNodeData(t.data.id,{...i&&{shape:i},...a&&{color:a},style:o}),r.triggerChange({op:`change-element-style`,style:n,targets:[e]})},n[5]=r,n[6]=t.data.id,n[7]=e,n[8]=c):c=n[8];let l=j(c),u=i??t.data.color,d;return n[9]!==l||n[10]!==s||n[11]!==u?(d={elementColor:u,onColorPreview:s,onChange:l},n[9]=l,n[10]=s,n[11]=u,n[12]=d):d=n[12],d}function is(e){let t=R(10),{enableVscode:n,enableRelationshipBrowser:r}=q(),{data:i}=e,{style:a,modelFqn:o}=i,{elementColor:s,onColorPreview:c,onChange:l}=rs(o,e),u=a?.opacity??100,d;return t[0]!==s||t[1]!==r||t[2]!==n||t[3]!==o||t[4]!==l||t[5]!==c||t[6]!==u||t[7]!==e||t[8]!==a?.border?(d=B(ns,{nodeProps:e,title:o,align:`start`,children:[z(Xo,{elementColor:s,onColorPreview:c,isOpacityEditable:!0,elementOpacity:u,onChange:l,position:`left-start`}),z(Jo,{elementBorderStyle:a?.border??(u<99?`dashed`:`none`),onChange:l}),n&&z(qo,{elementId:o}),r&&z(Ko,{fqn:o})]}),t[0]=s,t[1]=r,t[2]=n,t[3]=o,t[4]=l,t[5]=c,t[6]=u,t[7]=e,t[8]=a?.border,t[9]=d):d=t[9],d}function as(e){let t=R(11),{enableVscode:n,enableRelationshipBrowser:r}=q(),{data:i}=e,{deploymentFqn:a,style:o,modelFqn:s}=i,{elementColor:c,onColorPreview:l,onChange:u}=rs(a,e),d;return t[0]!==a||t[1]!==c||t[2]!==r||t[3]!==n||t[4]!==s||t[5]!==u||t[6]!==l||t[7]!==e||t[8]!==o?.border||t[9]!==o?.opacity?(d=B(ns,{nodeProps:e,title:a,align:`start`,children:[z(Xo,{elementColor:c,onColorPreview:l,isOpacityEditable:!0,elementOpacity:o?.opacity,onChange:u,position:`left-start`}),z(Jo,{elementBorderStyle:o?.border,onChange:u}),n&&z(qo,{deploymentId:a}),r&&s&&z(Ko,{fqn:s})]}),t[0]=a,t[1]=c,t[2]=r,t[3]=n,t[4]=s,t[5]=u,t[6]=l,t[7]=e,t[8]=o?.border,t[9]=o?.opacity,t[10]=d):d=t[10],d}var os=[...Kn].sort();function ss(e){let t=R(11),{enableVscode:n,enableRelationshipBrowser:r,enableNotes:i}=q(),a=!!(i&&e.data.notes),{data:o}=e,{shape:s,modelFqn:c,style:l}=o,{elementColor:u,onColorPreview:d,onChange:f}=rs(c,e),p=a?20:10,m;return t[0]!==u||t[1]!==r||t[2]!==n||t[3]!==c||t[4]!==f||t[5]!==d||t[6]!==e||t[7]!==s||t[8]!==l?.border||t[9]!==p?(m=B(ns,{nodeProps:e,title:c,offset:p,align:`start`,children:[z(Xo,{elementColor:u,onColorPreview:d,onChange:f}),z(ls,{elementShape:s,onChange:f}),z(Jo,{elementBorderStyle:l?.border??`none`,onChange:f}),n&&z(qo,{elementId:c}),r&&z(Ko,{fqn:c})]}),t[0]=u,t[1]=r,t[2]=n,t[3]=c,t[4]=f,t[5]=d,t[6]=e,t[7]=s,t[8]=l?.border,t[9]=p,t[10]=m):m=t[10],m}function cs(e){let t=R(11),{enableVscode:n,enableRelationshipBrowser:r}=q(),{data:i}=e,{shape:a,deploymentFqn:o,modelFqn:s,style:c}=i,{elementColor:l,onColorPreview:u,onChange:d}=rs(o,e),f;return t[0]!==o||t[1]!==l||t[2]!==r||t[3]!==n||t[4]!==s||t[5]!==d||t[6]!==u||t[7]!==e||t[8]!==a||t[9]!==c?.border?(f=B(ns,{nodeProps:e,title:o,align:`start`,children:[z(Xo,{elementColor:l,onColorPreview:u,onChange:d}),z(ls,{elementShape:a,onChange:d}),z(Jo,{elementBorderStyle:c?.border??`none`,onChange:d}),n&&z(qo,{deploymentId:o}),r&&s&&z(Ko,{fqn:s})]}),t[0]=o,t[1]=l,t[2]=r,t[3]=n,t[4]=s,t[5]=d,t[6]=u,t[7]=e,t[8]=a,t[9]=c?.border,t[10]=f):f=t[10],f}function ls({elementShape:e,onChange:t}){return B(ye,{openDelay:300,closeDelay:450,floatingStrategy:`fixed`,closeOnClickOutside:!0,clickOutsideEvents:[`pointerdown`,`mousedown`,`click`],closeOnEscape:!0,closeOnItemClick:!1,position:`top-start`,offset:2,styles:{item:{padding:`calc(var(--spacing-xs) / 1.5) var(--spacing-xs)`}},withinPortal:!1,children:[z(pe,{children:z(Ie,{variant:`light`,color:`gray`,size:`compact-sm`,fz:`xxs`,px:4,pl:8,py:2,rightSection:z(Rt,{size:12}),children:e})}),z(je,{onDoubleClick:A,onClick:A,children:os.map(n=>z(_e,{fz:`sm`,value:n,rightSection:e===n?z(Pt,{size:12}):void 0,onClick:e=>{e.stopPropagation(),t({shape:n})},children:n},n))})]})}function us(e){let t=R(11),n=P(),r;t[0]===n?r=t[1]:(r=e=>{n.openSearch(e)},t[0]=n,t[1]=r);let i=j(r),a;t[2]===n?a=t[3]:(a=e=>{n.send({type:`tag.highlight`,tag:e})},t[2]=n,t[3]=a);let o=j(a),s;t[4]===n?s=t[5]:(s=e=>{n.send({type:`tag.unhighlight`})},t[4]=n,t[5]=s);let c=j(s),l;return t[6]!==e||t[7]!==i||t[8]!==o||t[9]!==c?(l=z(ui,{onTagClick:i,onTagMouseEnter:o,onTagMouseLeave:c,...e}),t[6]=e,t[7]=i,t[8]=o,t[9]=c,t[10]=l):l=t[10],l}function ds(e){let t=R(7),n=P(),r=e.data.modelFqn;if(!r)return null;let i;t[0]!==n||t[1]!==r||t[2]!==e.id?(i=t=>{t.stopPropagation(),n.openElementDetails(r,e.id)},t[0]=n,t[1]=r,t[2]=e.id,t[3]=i):i=t[3];let a;return t[4]!==e||t[5]!==i?(a=z(vo,{...e,onClick:i}),t[4]=e,t[5]=i,t[6]=a):a=t[6],a}function fs(e){let t=R(7),n=P(),r=e.data.modelFqn;if(!r)return null;let i;t[0]!==n||t[1]!==r||t[2]!==e.id?(i=t=>{t.stopPropagation(),n.openElementDetails(r,e.id)},t[0]=n,t[1]=r,t[2]=e.id,t[3]=i):i=t[3];let a;return t[4]!==e||t[5]!==i?(a=z(po,{...e,onClick:i}),t[4]=e,t[5]=i,t[6]=a):a=t[6],a}function ps(e){let t=R(7),{enableElementTags:n,enableElementDetails:r,enableReadOnly:i,enableCompareWithLatest:a,enableNotes:o}=q(),s;return t[0]!==a||t[1]!==r||t[2]!==n||t[3]!==o||t[4]!==i||t[5]!==e?(s=B(ut,{nodeProps:e,children:[a&&z(Io,{nodeProps:e}),z(mt,{...e}),z(yt,{...e}),n&&z(us,{...e}),z(Po,{...e}),r&&z(ds,{...e}),!i&&z(ss,{...e}),o&&z(Lo,{...e}),z(vt,{direction:e.data.viewLayoutDir})]}),t[0]=a,t[1]=r,t[2]=n,t[3]=o,t[4]=i,t[5]=e,t[6]=s):s=t[6],s}function ms(e){let t=R(7),{enableElementTags:n,enableElementDetails:r,enableReadOnly:i,enableCompareWithLatest:a,enableNotes:o}=q(),s;return t[0]!==a||t[1]!==r||t[2]!==n||t[3]!==o||t[4]!==i||t[5]!==e?(s=B(ut,{nodeProps:e,children:[a&&z(Io,{nodeProps:e}),z(mt,{...e}),z(yt,{...e}),n&&z(us,{...e}),z(Fo,{...e}),r&&z(ds,{...e}),!i&&z(cs,{...e}),o&&z(Lo,{...e}),z(vt,{direction:e.data.viewLayoutDir})]}),t[0]=a,t[1]=r,t[2]=n,t[3]=o,t[4]=i,t[5]=e,t[6]=s):s=t[6],s}var hs=O({outlineColor:`likec4.compare.manual.outline`,outlineWidth:`4px`,outlineStyle:`dashed`,outlineOffset:`1.5`}),gs=e=>e.data.drifts&&e.data.drifts.length>0;function _s(e){let t=R(6),{enableElementDetails:n,enableReadOnly:r,enableCompareWithLatest:i}=q(),a=i&&gs(e)?hs:void 0,o;return t[0]!==i||t[1]!==n||t[2]!==r||t[3]!==e||t[4]!==a?(o=B(mo,{className:a,nodeProps:e,children:[i&&z(Io,{nodeProps:e}),z(ho,{...e}),z(No,{...e}),n&&z(fs,{...e}),!r&&z(is,{...e}),z(vt,{direction:e.data.viewLayoutDir})]}),t[0]=i,t[1]=n,t[2]=r,t[3]=e,t[4]=a,t[5]=o):o=t[5],o}function vs(e){let t=R(6),{enableElementDetails:n,enableReadOnly:r,enableCompareWithLatest:i}=q(),a=i&&gs(e)?hs:void 0,o;return t[0]!==i||t[1]!==n||t[2]!==r||t[3]!==e||t[4]!==a?(o=B(mo,{className:a,nodeProps:e,children:[i&&z(Io,{nodeProps:e}),z(ho,{...e}),z(No,{...e}),n&&z(fs,{...e}),!r&&z(as,{...e}),z(vt,{direction:e.data.viewLayoutDir})]}),t[0]=i,t[1]=n,t[2]=r,t[3]=e,t[4]=a,t[5]=o):o=t[5],o}function ys(e){let t=R(4),{enableCompareWithLatest:n}=q(),r=n&&gs(e)?hs:void 0,i;return t[0]!==n||t[1]!==e||t[2]!==r?(i=B(mo,{className:r,nodeProps:e,children:[n&&z(Io,{nodeProps:e}),z(ho,{...e}),z(vt,{direction:e.data.viewLayoutDir})]}),t[0]=n,t[1]=e,t[2]=r,t[3]=i):i=t[3],i}var bs={left:hn.Left,right:hn.Right,top:hn.Top,bottom:hn.Bottom},xs=({data:e,port:t})=>B(Wn,{children:[z(kn,{"data-likec4-color":e.color,className:O({position:`absolute`,backgroundColor:`var(--likec4-palette-fill)`,rounded:`xs`,width:{base:`5px`,_whenHovered:`7px`,_whenSelected:`7px`},transition:`fast`,translateX:`-1/2`,translateY:`-1/2`,translate:`auto`}),style:{top:t.cy,left:t.cx,height:t.height}}),z(gn,{id:t.id,type:t.type,position:bs[t.position],style:{top:t.cy-3,left:t.cx-3,width:6,height:6,right:`unset`,bottom:`unset`,visibility:`hidden`,transform:t.position===`left`?`translate(-150%, 0)`:`translate(100%, 0)`}})]}),Ss=e=>`modelFqn`in e.data&&p(e.data.modelFqn);function Cs(e){let t=R(14),{enableElementDetails:n,enableReadOnly:r,enableCompareWithLatest:i,enableNotes:a}=q(),o=e.data,{id:s,positionAbsoluteY:c,data:l}=e,{viewHeight:u,hovered:d,ports:f}=l,p=d===void 0?!1:d,m;if(t[0]!==o||t[1]!==i||t[2]!==n||t[3]!==a||t[4]!==r||t[5]!==s||t[6]!==p||t[7]!==f||t[8]!==c||t[9]!==e||t[10]!==u){let l;t[12]===e.data?l=t[13]:(l=t=>z(xs,{port:t,data:e.data},t.id),t[12]=e.data,t[13]=l),m=B(Wn,{children:[z(kn,{"data-likec4-color":`gray`,className:O({position:`absolute`,rounded:`xs`,top:`1`,pointerEvents:`none`,transition:`fast`,translateX:`-1/2`,translate:`auto`}),style:{backgroundColor:`var(--likec4-palette-stroke)`,opacity:p?.6:.4,left:`50%`,width:p?3:2,height:u-c,zIndex:-1,pointerEvents:`none`}}),B(ut,{nodeProps:e,children:[i&&z(Io,{nodeProps:e}),z(mt,{...e}),z(yt,{...e}),Ss(e)&&B(Wn,{children:[z(Po,{...e}),n&&z(ds,{id:s,data:o}),!r&&z(ss,{...e})]}),a&&z(Lo,{...e})]}),f.map(l)]}),t[0]=o,t[1]=i,t[2]=n,t[3]=a,t[4]=r,t[5]=s,t[6]=p,t[7]=f,t[8]=c,t[9]=e,t[10]=u,t[11]=m}else m=t[11];return m}function ws(e){return z(kn,{"data-likec4-color":e.data.color,css:{width:`100%`,height:`100%`,border:`default`,rounded:`sm`,borderWidth:1,"--_color":{base:`var(--likec4-palette-stroke)`,_dark:`[color-mix(in oklab, var(--likec4-palette-hiContrast) 40%, var(--likec4-palette-fill))]`},borderColor:`[var(--_color)/30]`,backgroundColor:`var(--likec4-palette-fill)/15`,pointerEvents:`none`,paddingLeft:`2`,paddingTop:`0.5`,fontSize:`xs`,fontWeight:`bold`,letterSpacing:`.75px`,color:`[var(--_color)/75]`},children:`PARALLEL`})}var Ts={ElementNode:ps,DeploymentNode:ms,CompoundElementNode:_s,CompoundDeploymentNode:vs,ViewGroupNode:ys,SequenceActorNode:Cs,SequenceParallelArea:ws},Es={RelationshipEdge:Eo,SequenceStepEdge:Ao},Ds=class{static LeftPadding=42;static RightPadding=42;static TopPadding=60;static BottomPadding=42;id;minX=1/0;minY=1/0;maxX=-1/0;maxY=-1/0;initial;get positionAbsolute(){return{x:this.minX,y:this.minY}}set positionAbsolute(e){let t=Math.trunc(e.x),n=Math.trunc(e.y);this.maxX+=t-this.minX,this.maxY+=n-this.minY,this.minX=t,this.minY=n}get dimensions(){return{width:Math.ceil(this.maxX-this.minX),height:Math.ceil(this.maxY-this.minY)}}get diff(){let{x:e,y:t}=this.positionAbsolute;return{x:Math.trunc(e-this.initial.x),y:Math.trunc(t-this.initial.y)}}get isMoved(){let e=this.diff;return e.x!==0||e.y!==0}get isResized(){let e=this.dimensions;return e.width!==this.initial.width||e.height!==this.initial.height}get position(){let e=this.positionAbsolute;if(!this.parent)return e;let t=this.parent.positionAbsolute;return{x:e.x-t.x,y:e.y-t.y}}constructor(e,t=null){this.id=e.id,this.positionAbsolute=t?{x:e.position.x+t.minX,y:e.position.y+t.minY}:e.position;let{width:n,height:r}=Sn(e);this.maxX=this.minX+Math.ceil(n),this.maxY=this.minY+Math.ceil(r),this.initial={x:this.minX,y:this.minY,width:Math.ceil(n),height:Math.ceil(r)},t&&t.children.push(this)}},Os=class extends Ds{parent;children=[];constructor(e,t=null){super(e,t),this.parent=t}},ks=class extends Ds{parent;constructor(e,t=null){super(e,t),this.parent=t}};function As(e,t){let n=e.data.controlPoints??null;return r=>{let i=H(r.get(e.id),`Edge ${e.id} not found`),{x:a,y:o}=t.diff;return a===0&&o===0?{id:e.id,type:`replace`,item:xr(i,t=>{t.data.points=e.data.points,t.data.controlPoints=n,t.data.labelBBox=e.data.labelBBox})}:{id:e.id,type:`replace`,item:xr(i,t=>{t.data.points=D(e.data.points,e=>[e[0]+a,e[1]+o]),n?t.data.controlPoints=n.map(e=>({x:e.x+a,y:e.y+o})):t.data.controlPoints=null,e.data.labelBBox&&(t.data.labelBBox??=e.data.labelBBox,t.data.labelBBox.x=e.data.labelBBox.x+a,t.data.labelBBox.y=e.data.labelBBox.y+o)})}}}function js(e,t,n,r){let i=e.data.controlPoints??at(e.data.points),a=sr(U.center(n)),o=sr(U.center(r)),s=a.subtract(o),c=s.length();return n=>{let r=H(n.get(e.id),`Edge ${e.id} not found`),{x:a,y:l}=t.diff;if(a===0&&l===0)return{id:e.id,type:`replace`,item:xr(r,t=>{t.data.points=e.data.points,t.data.controlPoints=e.data.controlPoints,t.data.labelBBox=e.data.labelBBox})};let u=sr(a,l),d=e=>{let t=sr(e),n=y(t.subtract(o).dot(s)/c**2,{min:-1,max:1}),r=t.add(u.multiply(n)).trunc();return{x:r.x,y:r.y}};return{id:e.id,type:`replace`,item:xr(r,t=>{if(t.data.controlPoints=i.map(d),e.data.labelBBox){t.data.labelBBox??=e.data.labelBBox;let{x:n,y:r}=d(e.data.labelBBox);t.data.labelBBox.x=n,t.data.labelBBox.y=r}})}}}function Ms(e,t){let{parentLookup:n,nodeLookup:r,edges:i}=e.getState(),o=new Map,c=new Jn(e=>{let t=r.get(e)?.parentId;return t?[t,...c.get(t)]:[]}),l=new Jn(e=>{let t=n.get(e);if(!t||t.size===0)return new Set;let r=new Set;for(let e of t.values()){r.add(e.id);for(let t of l.get(e.id))r.add(t)}return r});if(E(t,2)){let e=v(t,a(e=>[...l.get(e)]),se(),e=>s(t,e));G(E(e,1),`All editing nodes are nested within each other`),t=e}let u=new Set(t.flatMap(e=>c.get(e))),d=[...r.values()].flatMap(e=>e.parentId?[]:{xynode:e,parent:null});for(;d.length>0;){let{xynode:e,parent:r}=d.shift();if(!t.includes(e.id)&&u.has(e.id)){let t=new Os(e,r);o.set(e.id,t),n.get(e.id)?.forEach(e=>{d.push({xynode:e,parent:t})});continue}o.set(e.id,new ks(e,r))}let f=[...o.values()],p=new Map,m=e=>{let t=o.get(e);if(t)return t;for(let t of c.get(e)){let e=o.get(t);if(e)return e}return null},h=new Set(t.flatMap(e=>[e,...l.get(e)]));for(let e of i){let t=h.has(e.source),n=h.has(e.target);if(!t&&!n)continue;if(t&&n){let t=o.get(e.source)??o.get(e.target)??m(e.source)??m(e.target);G(!!t,`At least one of the edge nodes should have a moving ancestor`),p.set(e,As(e,t));continue}G(t!==n,`Logic error`);let i=m(t?e.source:e.target);G(!!i,`Moving endpoint should be found`);let[a,s]=v([e.source,e.target],D(e=>H(r.get(e),`Node ${e} not found`)),D(ct)),[c,l]=t?[a,s]:[s,a];p.set(e,js(e,i,c,l))}function g(e){for(let t of e){if(!(t instanceof Os))continue;g(t.children);let e={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};for(let n of t.children)e.minX=Math.min(e.minX,n.minX),e.minY=Math.min(e.minY,n.minY),e.maxX=Math.max(e.maxX,n.maxX),e.maxY=Math.max(e.maxY,n.maxY);t.minX=e.minX-Ds.LeftPadding,t.minY=e.minY-Ds.TopPadding,t.maxX=e.maxX+Ds.RightPadding,t.maxY=e.maxY+Ds.BottomPadding}}let _=[...p.values()];function y(){let{nodeLookup:n}=e.getState();for(let e of t){let t=o.get(e);if(!t){console.warn(`Rect not found for id ${e}`);continue}let r=n.get(e);if(!r){console.warn(`Node not found for id ${e}`);continue}t.positionAbsolute=r.internals.positionAbsolute}}function b(){let{edgeLookup:t,triggerNodeChanges:n,triggerEdgeChanges:r}=e.getState();g(f);let i=[],a=[];for(let e of f)i.push({id:e.id,type:`position`,dragging:!1,position:e.position,positionAbsolute:e.positionAbsolute}),e instanceof Os&&i.push({id:e.id,type:`dimensions`,setAttributes:!0,resizing:!1,dimensions:e.dimensions});i.length>0&&n(i);for(let e of _)a.push(e(t));a.length>0&&r(a)}let x=null;function S(){x!==null&&(cancelAnimationFrame(x),x=null)}function C(){S(),y(),b()}function w(){x??=requestAnimationFrame(()=>{x=null,y(),b()})}function ee(){return fr(f,e=>e.isMoved||e.isResized)}return{rects:o,onMove:w,updateXYFlow:b,hasChanges:ee,cancelPending:S,flushPending:C}}function Ns(){let e=R(9),t=ht(),n=P(),r=Hn(void 0),a;e[0]!==n||e[1]!==t?(a=(e,a)=>{let{nodeLookup:o}=t.getState(),s=v(Array.from(o.values()),i(e=>e.dragging===!0||e.id===a.id||e.selected===!0),D(Ps));E(s,1)&&(n.startEditing(`node`),r.current=Ms(t,s))},e[0]=n,e[1]=t,e[2]=a):a=e[2];let o;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=e=>{r.current?.onMove()},e[3]=o):o=e[3];let s;e[4]===n?s=e[5]:(s=e=>{if(!r.current)return;let t=r.current.hasChanges();t?r.current.flushPending():r.current.cancelPending(),n.stopEditing(t),r.current=void 0},e[4]=n,e[5]=s);let c;return e[6]!==a||e[7]!==s?(c={onNodeDragStart:a,onNodeDrag:o,onNodeDragStop:s},e[6]=a,e[7]=s,e[8]=c):c=e[8],c}function Ps(e){return e.id}var Fs={relationship:Es.RelationshipEdge,"seq-step":Es.SequenceStepEdge},Is={element:Ts.ElementNode,deployment:Ts.DeploymentNode,"compound-element":Ts.CompoundElementNode,"compound-deployment":Ts.CompoundDeploymentNode,"view-group":Ts.ViewGroupNode,"seq-actor":Ts.SequenceActorNode,"seq-parallel":Ts.SequenceParallelArea};function Ls(e){return!e||r(e)?Is:{element:e.element??Is.element,deployment:e.deployment??Is.deployment,"compound-element":e.compoundElement??Is[`compound-element`],"compound-deployment":e.compoundDeployment??Is[`compound-deployment`],"view-group":e.viewGroup??Is[`view-group`],"seq-actor":e.seqActor??Is[`seq-actor`],"seq-parallel":e.seqParallel??Is[`seq-parallel`]}}var Rs=e=>{let t=Mi(e);return{x:-t.x,y:-t.y,zoom:1}},zs=Cr(({context:e,children:t})=>{let{enableReadOnly:n}=ao(e),r=n||t.editor?.getSnapshot().context.editing?.subject!==`edge`,i=!n&&e.nodesDraggable;return e.dynamicViewVariant===`sequence`&&e.view._type===`dynamic`&&(i=!1),{enableReadOnly:n,initialized:e.initialized.xydata&&e.initialized.xyflow,nodes:e.xynodes,edges:e.xyedges,pannable:e.pannable,zoomable:e.zoomable,nodesDraggable:i,nodesSelectable:e.nodesSelectable&&r,fitViewPadding:e.fitViewPadding,enableFitView:e.features.enableFitView,...!e.features.enableFitView&&{viewport:Rs(e)}}});function Bs(e){let t=R(53),{background:n,reactFlowProps:r,children:i,renderNodes:a}=e,o=n===void 0?`dots`:n,s=r===void 0?{}:r,c=P(),{enableReadOnly:l,initialized:u,nodes:d,edges:f,enableFitView:p,nodesDraggable:m,nodesSelectable:h,...g}=wr(zs),{onNodeContextMenu:_,onCanvasContextMenu:v,onEdgeContextMenu:y,onNodeClick:b,onEdgeClick:x,onCanvasClick:S,onCanvasDblClick:C}=_i(),{reducedGraphics:w,$panning:ee}=wt(),te=w,ne=Ns(),T=ee,re;t[0]===T?re=t[1]:(re=()=>{T.set(!0)},t[0]=T,t[1]=re);let ie=ve(re,te?200:800),ae;t[2]!==T||t[3]!==ie?(ae=()=>{ie.clear(),T.set(!1)},t[2]=T,t[3]=ie,t[4]=ae):ae=t[4];let E=he(ae,200),oe;t[5]!==T||t[6]!==ie||t[7]!==E?(oe=e=>{if(!e){ie.clear();return}T.get()?E():ie.start()},t[5]=T,t[6]=ie,t[7]=E,t[8]=oe):oe=t[8];let se=j(oe),ce;t[9]!==c||t[10]!==E?(ce=(e,t)=>{e&&E(),c.send({type:`xyflow.viewportMoved`,viewport:t,manually:!!e})},t[9]=c,t[10]=E,t[11]=ce):ce=t[11];let D=j(ce),le;t[12]===c?le=t[13]:(le=()=>{c.send({type:`xyflow.resized`})},t[12]=c,t[13]=le);let ue=j(le),de,fe;t[14]===a?(de=t[15],fe=t[16]):(de=()=>Ls(a),fe=[a],t[14]=a,t[15]=de,t[16]=fe);let pe=Bt(de,fe,Dt),me;t[17]===pe?me=t[18]:(me=[pe],t[17]=pe,t[18]=me),Et(Vs,me);let ge;t[19]===c?ge=t[20]:(ge=e=>{c.send({type:`xyflow.applyChanges`,nodes:e})},t[19]=c,t[20]=ge);let _e;t[21]===c?_e=t[22]:(_e=e=>{c.send({type:`xyflow.applyChanges`,edges:e})},t[21]=c,t[22]=_e);let ye;t[23]!==c||t[24]!==b?(ye=(e,t)=>{e.stopPropagation(),c.send({type:`xyflow.nodeClick`,node:t}),b?.(c.findDiagramNode(t.id),e)},t[23]=c,t[24]=b,t[25]=ye):ye=t[25];let be;t[26]!==c||t[27]!==x?(be=(e,t)=>{e.stopPropagation(),c.send({type:`xyflow.edgeClick`,edge:t}),x?.(c.findDiagramEdge(t.id),e)},t[26]=c,t[27]=x,t[28]=be):be=t[28];let xe;t[29]===c?xe=t[30]:(xe=(e,t)=>{e.stopPropagation(),c.send({type:`xyflow.edgeDoubleClick`,edge:t})},t[29]=c,t[30]=xe);let Se;t[31]!==c||t[32]!==S?(Se=e=>{e.stopPropagation(),c.send({type:`xyflow.paneClick`}),S?.(e)},t[31]=c,t[32]=S,t[33]=Se):Se=t[33];let Ce;t[34]!==c||t[35]!==C?(Ce=e=>{e.stopPropagation(),e.preventDefault(),c.send({type:`xyflow.paneDblClick`}),C?.(e)},t[34]=c,t[35]=C,t[36]=Ce):Ce=t[36];let we;t[37]===c?we=t[38]:(we=(e,t)=>{e.stopPropagation(),c.send({type:`xyflow.nodeMouseEnter`,node:t})},t[37]=c,t[38]=we);let Te;t[39]===c?Te=t[40]:(Te=(e,t)=>{e.stopPropagation(),c.send({type:`xyflow.nodeMouseLeave`,node:t})},t[39]=c,t[40]=Te);let Ee;t[41]===c?Ee=t[42]:(Ee=(e,t)=>{e.stopPropagation(),c.send({type:`xyflow.edgeMouseEnter`,edge:t,event:e})},t[41]=c,t[42]=Ee);let De;t[43]===c?De=t[44]:(De=(e,t)=>{e.stopPropagation(),c.send({type:`xyflow.edgeMouseLeave`,edge:t,event:e})},t[43]=c,t[44]=De);let Oe;t[45]===c?Oe=t[46]:(Oe=e=>{c.send({type:`xyflow.init`,instance:e})},t[45]=c,t[46]=Oe);let ke;t[47]!==c||t[48]!==_?(ke=(e,t)=>{let n=H(c.findDiagramNode(t.id),`diagramNode ${t.id} not found`);_?.(n,e)},t[47]=c,t[48]=_,t[49]=ke):ke=t[49];let Ae;return t[50]!==c||t[51]!==y?(Ae=(e,t)=>{let n=H(c.findDiagramEdge(t.id),`diagramEdge ${t.id} not found`);y?.(n,e)},t[50]=c,t[51]=y,t[52]=Ae):Ae=t[52],z(pt,{nodes:d,edges:f,className:k(u?`initialized`:`not-initialized`),nodeTypes:pe,edgeTypes:Fs,onNodesChange:j(ge),onEdgesChange:j(_e),background:u?o:`transparent`,fitView:!1,onNodeClick:j(ye),onEdgeClick:j(be),onEdgeDoubleClick:j(xe),onPaneClick:j(Se),onDoubleClick:j(Ce),onNodeMouseEnter:j(we),onNodeMouseLeave:j(Te),onEdgeMouseEnter:j(Ee),onEdgeMouseLeave:j(De),onMove:se,onMoveEnd:D,onInit:j(Oe),onNodeContextMenu:j(ke),onEdgeContextMenu:j(Ae),...v&&{onPaneContextMenu:v},...p&&{onViewportResize:ue},nodesDraggable:m,nodesSelectable:h,elevateEdgesOnSelect:!l,zIndexMode:`manual`,...m&&ne,...g,...s,children:i})}function Vs(){console.warn(`renderNodes changed - this might degrade performance`)}function Hs(e,t){try{return Sr(!1),Ws(e,t)}finally{Sr(!0)}}var Us=e=>d(e.parent);function Ws(e,t){V(e.id===t.id,`View IDs do not match`),V(e._type===t._type,`View types do not match`),V(e._layout===`manual`&&t._layout===`auto`,`Views must be manual and auto`);let n=new Set,r=new Set,i=e=>!n.has(typeof e==`string`?e:e.id),a=e=>r.has(e.source)&&r.has(e.target)&&i(e.source)&&i(e.target),o=new Map(t.nodes.map(t=>{t.children&&t.children.length>0&&n.add(t.id);let i=e.nodes.find(e=>e.id===t.id);return i?[t.id,qs({latest:t,manual:i})]:(r.add(t.id),[t.id,Ys(t)])}));if(r.size===o.size)return xr(t,e=>{e._layout=`manual`,e.nodes=br([...o.values()]),e.edges=br(t.edges.map(Ys)),delete e.drifts});n.size>0&&Ks(o);let s=[...o.values()],c=t.edges.map(t=>{let n=t.dir??`forward`,r=e=>e.source===t.source&&e.target===t.target&&(e.dir===n||!e.dir&&!t.dir),i=e.edges.find(e=>e.id===t.id&&r(e));return i||=e.edges.find(e=>r(e)),i?Js({latest:t,manual:i}):a(t)?Ys(t):Xs(t,o.get(t.source),o.get(t.target))}),l=U.merge(...s.filter(Us));return xr(t,e=>{e._layout=`manual`,e.nodes=br(s),e.edges=br(c),e.bounds=l,delete e.drifts})}var Gs={Left:42,Right:42,Top:60,Bottom:42};function Ks(e){function t(n){let r=H(e.get(n),`Node ${n} not found`);if(r.children.length===0)return r;let i=[];for(let e of r.children)i.push(t(e));let a=U.merge(...i);return r.x=a.x-Gs.Left,r.y=a.y-Gs.Top,r.width=a.width+Gs.Left+Gs.Right,r.height=a.height+Gs.Top+Gs.Bottom,r}for(let n of e.values())!Us(n)||n.children.length===0||t(n.id)}function qs({latest:e,manual:t}){return V(t.id===e.id,`Node IDs do not match`),xr(e,e=>{e.x=t.x,e.y=t.y,e.drifts=null})}function Js(e){let{manual:t,latest:n}=e;return xr(n,e=>{t.controlPoints?e.controlPoints=t.controlPoints:delete e.controlPoints,e.points=br(t.points),t.labelBBox&&(e.labelBBox=n.labelBBox??t.labelBBox,e.labelBBox.x=t.labelBBox.x,e.labelBBox.y=t.labelBBox.y),e.drifts=null})}function Ys(e){if(`drifts`in e&&e.drifts!==null){let t={...e};return t.drifts=null,t}return e}function Xs(e,t,n){let r=Qs(t,n),i=r[0];return xr(e,t=>{t.points=br(D(r,or)),t.controlPoints=r,e.labelBBox&&(t.labelBBox.x=i.x,t.labelBBox.y=i.y),delete t.drifts})}function Zs(e,t,n){let r=e.width/2/n.x,i=e.height/2/n.y,a=Math.min(Math.abs(r),Math.abs(i));return W(n).multiply(a).add(t)}function Qs(e,t){let n=W(U.center(e)),r=W(U.center(t));if(e===t){let t=W(0,e.height||0).multiply(-.5).add(n);return[t.add(W(-80/2.5,-80)).trunc().toObject(),t.add(W(80/2.5,-80)).trunc().toObject()]}let i=r.subtract(n),a=Zs(e,n,i),o=Zs(t,r,i.multiply(-1)).subtract(a);return[a.add(o.multiply(.4)).trunc().toObject(),a.add(o.multiply(.6)).trunc().toObject()]}var $s=e=>Promise.resolve().then(()=>e());function ec(){let e=R(13),t=Mr(),n;e[0]===t?n=e[1]:(n=d(t),e[0]=t,e[1]=n);let r=n,i;e[2]===t?i=e[3]:(i=async e=>{let{input:n}=e,{viewId:r,current:i}=n;if(!t)throw console.error(`No editor port available for applying latest to manual layout`),Error(`No editor port`);return{updated:Hs(await $s(()=>i??t.fetchView(r,`manual`)),await $s(()=>t.fetchView(r,`auto`)))}},e[2]=t,e[3]=i);let a=j(i),o;e[4]===t?o=e[5]:(o=async e=>{let{input:n}=e;if(!t)throw console.error(`No editor port available for executing change`),Error(`No editor port`);for(let e of n.changes)await $s(()=>t.handleChange(n.viewId,e));return{}},e[4]=t,e[5]=o);let s=j(o),c;e[6]===t?c=e[7]:(c=async e=>{let{input:n}=e;if(!t)throw console.error(`No editor port available for applying semantic layout`),Error(`No editor port`);if(!t.applySemanticLayout)throw console.error(`No applySemanticLayout method available on editor port`),Error(`No applySemanticLayout method`);return await t.applySemanticLayout(n.viewId),{}},e[6]=t,e[7]=c);let l=j(c),u;return e[8]!==a||e[9]!==l||e[10]!==s||e[11]!==r?(u=Object.assign(da.provide({actors:{applyLatest:Qt(a),executeChange:Qt(s),applySemanticLayout:Qt(l)}}),{isStub:r}),e[8]=a,e[9]=l,e[10]=s,e[11]=r,e[12]=u):u=e[12],u}function tc(e){return{ref:e,get actor(){return e.current},editorActor(){let t=Y(e.current.system).editorActorRef;return K(t,`Editor actor not found in actor system`)},overlays(){let t=Y(e.current.system).overlaysActorRef;return K(t,`Overlays actor not found in actor system`)},searchActor(){let t=Y(e.current.system).searchActorRef;return K(t,`Search actor not found in actor system`)},send:t=>e.current.send(t),navigateTo:(t,n,r)=>{e.current.send({type:`navigate.to`,viewId:t,...n&&{fromNode:n},...r&&{focusOnElement:r}})},navigate:t=>{e.current.send({type:`navigate.${t}`})},fitDiagram:(t=350)=>{e.current.send({type:`xyflow.fitDiagram`,duration:t})},openRelationshipsBrowser:t=>{e.current.send({type:`open.relationshipsBrowser`,fqn:t})},openSource:t=>{e.current.send({type:`open.source`,...t})},openElementDetails:(t,n)=>{e.current.send({type:`open.elementDetails`,fqn:t,fromNode:n})},openRelationshipDetails:(...t)=>{t.length===1?e.current.send({type:`open.relationshipDetails`,params:{edgeId:t[0]}}):e.current.send({type:`open.relationshipDetails`,params:{source:t[0],target:t[1]}})},updateNodeData:(t,n)=>{e.current.send({type:`update.nodeData`,nodeId:t,data:n})},updateEdgeData:(t,n)=>{e.current.send({type:`update.edgeData`,edgeId:t,data:n})},startEditing:t=>{let n=Y(e.current.system).editorActorRef;G(n,`No editor actor found in diagram actor system`),n.send({type:`edit.move.start`,subject:t})},stopEditing:(t=!1)=>{let n=Y(e.current.system).editorActorRef;G(n,`No editor actor found in diagram actor system`),n.send({type:t?`edit.move.end`:`edit.move.cancel`})},undoEditing:()=>{let t=Y(e.current.system).editorActorRef;G(t,`No editor actor found in diagram actor system`);let n=t.getSnapshot().context.history!==null;return n&&t.send({type:`undo`}),n},align:t=>{e.current.send({type:`layout.align`,mode:t})},resetEdgeControlPoints:()=>{e.current.send({type:`layout.resetEdgeControlPoints`})},focusNode:t=>{e.current.send({type:`focus.node`,nodeId:t})},focusOnElement:t=>{let n=e.current.getSnapshot().context,r=ki(n.xynodes,t);r&&e.current.send({type:`focus.node`,nodeId:r.id,autoUnfocus:!0})},get currentView(){return e.current.getSnapshot().context.view},getContext:()=>e.current.getSnapshot().context,findDiagramNode:t=>Ai(e.current.getSnapshot().context,t),findEdge:t=>e.current.getSnapshot().context.xyedges.find(e=>e.data.id===t)??null,findDiagramEdge:t=>ji(e.current.getSnapshot().context,t),startWalkthrough:()=>{e.current.send({type:`walkthrough.start`})},walkthroughStep:(t=`next`)=>{e.current.send({type:`walkthrough.step`,direction:t})},stopWalkthrough:()=>{e.current.send({type:`walkthrough.end`})},toggleFeature:(t,n)=>{e.current.send({type:`toggle.feature`,feature:t,...n!==void 0&&{forceValue:n}})},highlightNotation:(t,n)=>{e.current.send({type:`notations.highlight`,notation:t,...n&&{kind:n}})},unhighlightNotation:()=>{e.current.send({type:`notations.unhighlight`})},openSearch:t=>{e.current.send({type:`open.search`,...t&&{search:t}})},triggerChange:t=>{e.current.send({type:`trigger.change`,change:t})},switchDynamicViewVariant:t=>{e.current.send({type:`switch.dynamicViewVariant`,variant:t})},highlightNode:t=>{e.current.send({type:`highlight.node`,nodeId:t})},highlightEdge:t=>{e.current.send({type:`highlight.edge`,edgeId:t})},unhighlightAll:()=>{e.current.send({type:`unhighlight.all`})},centerViewportOnNode:t=>{e.current.send({type:`xyflow.centerViewport`,nodeId:t})},centerViewportOnEdge:t=>{e.current.send({type:`xyflow.centerViewport`,edgeId:t})}}}var nc=`likec4:diagram:toggledFeatures`,rc={read(){try{let e=sessionStorage.getItem(nc);return e?JSON.parse(e):null}catch(e){return console.error(`Error reading fromStorage ${nc}:`,e),null}},write(e){return sessionStorage.setItem(nc,JSON.stringify(ce(e,l))),e}};function ic(e,t){let n=t.view,r=e.view.id===n.id;return n._type===`dynamic`&&n.variant===`sequence`?{xynodes:t.xynodes,xyedges:t.xyedges,view:n}:{xynodes:_a(e.xynodes,t.xynodes),xyedges:r?ma(e.xyedges,t.xyedges):t.xyedges,view:n}}function ac(e){let{xynodes:t,xyedges:n,focusedNode:r}=e;if(!r)return null;let i=new Set([r]),a=n.map(e=>e.source===r||e.target===r?(i.add(e.source),i.add(e.target),M.setData(e,{dimmed:!1,active:!0})):M.setData(e,{dimmed:!0,active:!1}));return{xynodes:t.map(e=>M.setDimmed(e,!i.has(e.id))),xyedges:a}}function oc({context:e,event:t}){return L(t,`update.nodeData`),{xynodes:e.xynodes.map(e=>{if(e.id!==t.nodeId)return e;let n=te(e.data,t.data);return N(n,e.data)?e:{...e,data:n}})}}function sc({context:e,event:t}){return L(t,`update.edgeData`),{xyedges:e.xyedges.map(e=>{if(e.id!==t.edgeId)return e;let n=te(e.data,t.data);return N(n,e.data)?e:{...e,data:n}})}}function cc(e,t,n){let r=Sn(e),i=r.width/2/n.x,a=r.height/2/n.y,o=Math.min(Math.abs(i),Math.abs(a));return W(n).multiply(o).add(t)}function lc(e,t){let n=H(e.get(t.source),`Source node ${t.source} not found`),r=H(e.get(t.target),`Target node ${t.target} not found`),i=W($e(n)),a=W($e(r));if(n===r){let e=W(0,n.height||0).multiply(-.5).add(i);return[e.add(W(-80/2.5,-80)).round().toObject(),e.add(W(80/2.5,-80)).round().toObject()]}let o=a.subtract(i),s=cc(n,i,o),c=cc(r,a,o.multiply(-1)).subtract(s);return[s.add(c.multiply(.4)).round().toObject(),s.add(c.multiply(.6)).round().toObject()]}var uc=e=>$.createAction(({context:t,event:n})=>{let r,i;e?(r=e.viewport,i=e.duration):(L(n,`xyflow.setViewport`),r=n.viewport,i=n.duration),i??=450;let{panZoom:a}=H(t.xystore).getState(),o=i>0?{duration:i,interpolate:`smooth`}:void 0;a?.setViewport({x:Math.round(r.x),y:Math.round(r.y),zoom:r.zoom},o).catch(e=>{console.error(`Error during setViewport`,{err:e})})}),dc=e=>$.createAction(({context:t,event:n})=>{let r;r=e||(n.type===`update.view`?qn.center(Mi(t,n.view)):qn.center(Mi(t))),V(t.xyflow,`xyflow is not initialized`);let i=t.xyflow.getZoom();t.xyflow.setCenter(Math.round(r.x),Math.round(r.y),{zoom:i}).catch(e=>{console.error(`Error during setViewportCenter`,{err:e})})}),fc=()=>$.raise(({context:e,event:t})=>{L(t,`xyflow.centerViewport`);let n=e.xystore.getState();if(`edgeId`in t){let e=n.edgeLookup.get(t.edgeId);if(!e)return{type:`noop`};let r=n.nodeLookup.get(e.source),i=n.nodeLookup.get(e.target);if(!r||!i)return{type:`noop`};let a=wn([r,i],n),o=Pr({points:e.data.points,controlPoints:e.data.controlPoints&&tr(e.data.controlPoints)?e.data.controlPoints:null,labelBBox:e.data.labelBBox??null});return{type:`xyflow.fitDiagram`,bounds:qn.merge(a,o)}}let r=n.nodeLookup.get(t.nodeId);return r?{type:`xyflow.fitDiagram`,bounds:wn([r],n)}:{type:`noop`}}),pc=e=>$.createAction(({context:t,event:n})=>{let r,i;e?(r=e.bounds,i=e.duration):n.type===`xyflow.fitDiagram`&&(r=n.bounds,i=n.duration),r??=Mi(t),i??=450;let{width:a,height:o,panZoom:s,transform:c}=H(t.xystore).getState(),l=Math.max(1,c[2]),u=Cn(r,a,o,Qe,l,t.fitViewPadding);u.x=Math.round(u.x),u.y=Math.round(u.y);let d=i>0?{duration:i,interpolate:`smooth`}:void 0;s?.setViewport(u,d).catch(e=>{console.error(`Error during fitDiagram panZoom setViewport`,{err:e})})}),mc=()=>$.createAction(({context:e})=>{let{bounds:t,duration:n=450}=e.activeWalkthrough&&e.dynamicViewVariant===`sequence`?Fi({context:e}):Ni({context:e}),{width:r,height:i,panZoom:a,transform:o}=H(e.xystore).getState(),s=Cn(t,r,i,Qe,Math.max(1,o[2]),e.fitViewPadding);s.x=Math.round(s.x),s.y=Math.round(s.y);let c=n>0?{duration:n,interpolate:`smooth`}:void 0;a?.setViewport(s,c).catch(e=>{console.error(`Error during fitFocusedBounds panZoom setViewport`,{err:e})})}),hc=30,gc=e=>{let{delay:t=hc,...n}=e??{};return $.raise({type:`xyflow.setViewport`,...n},{id:`fitDiagram`,delay:t})},_c=()=>$.cancel(`fitDiagram`),vc=e=>{let{delay:t=hc,...n}=e??{};return $.raise({type:`xyflow.fitDiagram`,...n},{id:`fitDiagram`,delay:t})},yc=e=>$.raise(({context:t})=>({type:`update.view`,view:e??t.view}),{delay:hc}),bc=e=>$.assign(({context:t})=>e===!1?{viewportBefore:null}:{viewportBefore:{wasChangedManually:t.viewportChangedManually,value:e??{...t.viewport}}}),xc=e=>$.enqueueActions(({enqueue:t,context:{viewportBefore:n}})=>{t(_c());let r=e?.delay===0;n?(t.assign({viewportChangedManually:n.wasChangedManually,viewportBefore:null}),t(r?uc({viewport:n.value,...e}):gc({viewport:n.value,...e}))):t(r?pc({...e}):vc({...e}))});function Sc(e){let{view:t}=e,n=[],r=[],i=new Map,a=t.autoLayout?.direction??`TB`,o=Xn.from(t.nodes.reduce((e,t)=>(i.set(t.id,t),t.parent||e.push({node:t,parent:null}),e),[])),s=e=>!0;if(e.where)try{let t=ar(e.where);s=e=>t({...w(e,[`tags`,`kind`]),...`source`in e?{source:c(e.source)}:e,...`target`in e?{target:c(e.target)}:e})}catch(e){console.error(`Error in where filter:`,e)}let c=e=>H(i.get(e),`Node not found: ${e}`),l;for(;l=o.dequeue();){let{node:e,parent:r}=l,i=E(e.children,1)||e.kind==Yn;if(i)for(let t of e.children)o.enqueue({node:c(t),parent:e});let u={x:e.x,y:e.y};r&&(u.x-=r.x,u.y-=r.y);let d={id:``+e.id,deletable:!1,position:u,zIndex:i?Ze.Compound:Ze.Element,style:{width:e.width,height:e.height},initialWidth:e.width,initialHeight:e.height,hidden:e.kind!==Yn&&!s(e),...r&&{parentId:``+r.id}},f={viewId:t.id,id:e.id,title:e.title,color:e.color,shape:e.shape,style:e.style,depth:e.depth??0,icon:e.icon??`none`,tags:e.tags??null,x:e.x,y:e.y,drifts:e.drifts??null,notes:e.notes,viewLayoutDir:a},p={viewId:t.id,id:e.id,title:e.title,technology:e.technology??null,description:e.description??null,height:e.height,width:e.width,level:e.level,color:e.color,shape:e.shape,style:e.style,icon:e.icon??null,tags:e.tags,notes:e.notes,x:e.x,y:e.y,isMultiple:e.style?.multiple??!1,drifts:e.drifts??null,viewLayoutDir:a};if(e.kind===Yn){n.push({...d,type:`view-group`,data:{isViewGroup:!0,...f}});continue}let m=e.modelRef??null,h=e.deploymentRef??null;if(!m&&!h)throw console.error(`Invalid node`,e),Error(`Element should have either modelRef or deploymentRef`);let g={navigateTo:e.navigateTo??null};switch(!0){case i&&!!h:n.push({...d,type:`compound-deployment`,data:{...f,...g,deploymentFqn:h,modelFqn:m}});break;case i:V(!!m,`ModelRef expected`),n.push({...d,type:`compound-element`,data:{...f,...g,modelFqn:m}});break;case!!h:n.push({...d,type:`deployment`,data:{...p,...g,deploymentFqn:h,modelFqn:m}});break;default:V(!!m,`ModelRef expected`),n.push({...d,type:`element`,data:{...p,...g,modelFqn:m}})}}for(let e of t.edges){let t=e.source,n=e.target,i=``+e.id;if(!E(e.points,2)){console.error(`edge should have at least 2 points`,e);continue}r.push({id:i,type:`relationship`,source:``+t,target:``+n,zIndex:Ze.Edge,hidden:!s(e),deletable:!1,data:{id:e.id,label:e.label,technology:e.technology,notes:e.notes??null,navigateTo:e.navigateTo,controlPoints:e.controlPoints??null,labelBBox:e.labelBBox??null,labelXY:null,points:e.points,color:e.color??`gray`,line:e.line??`dashed`,dir:e.dir??`forward`,head:e.head??`normal`,tail:e.tail??`none`,astPath:e.astPath,drifts:e.drifts??null},interactionWidth:20})}return{xynodes:n,xyedges:r}}var Cc={compound:0,parallel:1,actor:10,step:20},wc={default:`gray`,active:`amber`};function Tc(e,t){let{actors:n,steps:r,compounds:i,parallelAreas:a,bounds:o}=e.sequenceLayout,s=[],c=[],l=t=>H(e.nodes.find(e=>e.id===t));for(let t of i)s.push(Ec(t,l(t.origin),e));for(let t of a)s.push(Dc(t,e));for(let t of n)s.push(Oc(t,l(t.id),o,e));for(let n of r){let r=e.edges.find(e=>e.id===n.id);if(!r)throw Error(`Edge ${n.id} not found`);c.push(kc(n,r,t??e.id))}return{xynodes:s,xyedges:c}}function Ec({id:e,x:t,y:n,width:r,height:i,depth:a},o,s){return{id:e,type:`view-group`,data:{id:o.id,title:o.title,color:o.color??`gray`,shape:o.shape,style:o.style,tags:o.tags,x:t,y:n,viewId:s.id,depth:a,isViewGroup:!0,drifts:o.drifts??null,viewLayoutDir:`LR`,notes:void 0},position:{x:t,y:n},draggable:!1,selectable:!1,focusable:!1,style:{pointerEvents:`none`},width:r,initialWidth:r,height:i,initialHeight:i}}function Dc({parallelPrefix:e,x:t,y:n,width:r,height:i},a){return{id:`seq-parallel-${e}`,type:`seq-parallel`,data:{id:`seq-parallel-${e}`,title:`PARALLEL`,technology:null,color:wc.default,shape:`rectangle`,style:{},tags:[],x:t,y:n,level:0,icon:null,width:r,height:i,description:null,viewId:a.id,parallelPrefix:e,drifts:null,viewLayoutDir:`LR`,notes:void 0},zIndex:Cc.parallel,position:{x:t,y:n},draggable:!1,deletable:!1,selectable:!1,focusable:!1,style:{pointerEvents:`none`},width:r,initialWidth:r,height:i,initialHeight:i}}function Oc({id:e,x:t,y:n,width:r,height:i,ports:a},o,s,c){return{id:e,type:`seq-actor`,data:{id:o.id,x:t,y:n,level:0,icon:o.icon??null,isMultiple:o.style.multiple??!1,title:o.title,width:r,height:i,color:o.color,navigateTo:o.navigateTo??null,shape:o.shape,style:o.style,tags:o.tags,modelFqn:o.modelRef??null,technology:o.technology??null,description:o.description??null,viewHeight:s.height,viewId:c.id,notes:o.notes,ports:a,drifts:o.drifts??null,viewLayoutDir:`LR`},deletable:!1,selectable:!0,zIndex:Cc.actor,position:{x:t,y:n},width:r,initialWidth:r,height:i,initialHeight:i}}function kc({id:e,labelBBox:t,sourceHandle:n,targetHandle:r},i,a){return{id:e,type:`seq-step`,data:{id:e,label:i.label,technology:i.technology,notes:i.notes??null,navigateTo:i.navigateTo===a?null:i.navigateTo,controlPoints:null,labelBBox:{x:0,y:0,width:t?.width??i.labelBBox?.width??32,height:t?.height??i.labelBBox?.height??32},labelXY:null,points:i.points,color:i.color,line:i.line,dir:`forward`,head:i.head??`normal`,tail:i.tail??`none`,astPath:i.astPath,drifts:i.drifts??null},selectable:!0,focusable:!1,zIndex:20,interactionWidth:40,source:i.source,sourceHandle:n,target:i.target,targetHandle:r}}function Ac({dynamicViewVariant:e,...t}){let n=t.view,r=n._type===`dynamic`,{xynodes:i,xyedges:a}=r&&e===`sequence`?Tc(n,t.currentViewId):Sc({...t});return r&&n.variant!==e?{view:{...n,variant:e},xynodes:i,xyedges:a}:{view:n,xynodes:i,xyedges:a}}var jc=class{},Mc=class extends jc{getEdgePosition;computePosition;propertyToEdit;alignTo;constructor(e,t,n){super(),this.getEdgePosition=e,this.computePosition=t,this.propertyToEdit=n}computeLayout(e){this.alignTo=this.getEdgePosition(e)}applyPosition(e){return{[this.propertyToEdit]:this.computePosition(this.alignTo,e)}}},Nc=class extends jc{layout=new Map;axisPreset;get primaryAxisCoord(){return this.axisPreset.primaryAxisCoord}get secondaryAxisCoord(){return this.axisPreset.secondaryAxisCoord}get primaryAxisDimension(){return this.axisPreset.primaryAxisDimension}get secondaryAxisDimension(){return this.axisPreset.secondaryAxisDimension}constructor(e){super(),this.axisPreset=e===`Column`?{primaryAxisDimension:`width`,secondaryAxisDimension:`height`,primaryAxisCoord:`x`,secondaryAxisCoord:`y`}:{primaryAxisDimension:`height`,secondaryAxisDimension:`width`,primaryAxisCoord:`y`,secondaryAxisCoord:`x`}}applyPosition(e){return this.layout?.get(e.id)??{}}computeLayout(e){let t=v(e,oe(e=>e[this.primaryAxisCoord])),n=this.getLayoutRect(t),r=this.getLayers(t);this.layout=this.buildLayout(r,n,t)}getLayoutRect(e){let t=Math.min(...e.map(e=>e.x)),n=Math.min(...e.map(e=>e.y)),r=Math.max(...e.map(e=>e.x+e.width)),i=Math.max(...e.map(e=>e.y+e.height));return{x:t,y:n,width:r-t,height:i-n}}getLayers(e){let t=[],n=0,r=null;for(let i of e)if(r&&i[this.primaryAxisCoord]<n)r.nodes.push(i),r.primaryAxisSize=Math.max(r.primaryAxisSize,i[this.primaryAxisDimension]),r.occupiedSpace+=i[this.secondaryAxisDimension],n=Math.max(i[this.primaryAxisCoord]+i[this.primaryAxisDimension],n);else{r={primaryAxisSize:i[this.primaryAxisDimension],nodes:[i],occupiedSpace:i[this.secondaryAxisDimension],layout:null},t.push(r),n=i[this.primaryAxisCoord]+i[this.primaryAxisDimension];continue}return t.forEach(e=>e.nodes.sort((e,t)=>e[this.secondaryAxisCoord]-t[this.secondaryAxisCoord])),t}buildLayout(e,t,n){let r=new Map(n.map(e=>[e.id,e])),i=[],a=e.reduce((e,t)=>e+t.primaryAxisSize,0),o=e.length>1?(t[this.primaryAxisDimension]-a)/(e.length-1):0,s=e.reduce((t,n,r)=>e[t].occupiedSpace<n.occupiedSpace?r:t,0),c=e[s],l=e.slice(0,s).reduce((e,t)=>e+t.primaryAxisSize+o,t[this.primaryAxisCoord]),u=this.buildLayerLayout(c,t,l,r,null);c.layout=u,i.push(...u.nodePositions);let d=l+c.primaryAxisSize+o,f=c;for(let n=s+1;n<e.length;n++){let a=e[n];a.layout=this.buildLayerLayout(a,t,d,r,f),i.push(...a.layout.nodePositions),f=a.layout.refLayer??a,d+=a.primaryAxisSize+o}d=l,f=c;for(let n=s-1;n>=0;n--){let a=e[n];d-=a.primaryAxisSize+o,a.layout=this.buildLayerLayout(a,t,d,r,f),i.push(...a.layout.nodePositions),f=a.layout.refLayer??a}return new Map(i)}buildLayerLayout(e,t,n,r,i){let a=this.scoreLayout(this.spaceAround(e,t,n),r);if(e.nodes.length!=1){let i=this.scoreLayout(this.spaceBetween(e,t,n),r);a=i[0]<a[0]?i:a}if(i&&i.nodes.length-1>=e.nodes.length){let t=this.scoreLayout(this.placeInGaps(e,n,i),r);a=t[0]<a[0]?t:a}if(i&&i.nodes.length>=e.nodes.length){let t=this.scoreLayout(this.placeInCells(e,n,i),r);a=t[0]<a[0]?t:a}return a[1]}spaceBetween(e,t,n){let r=(t[this.secondaryAxisDimension]-e.occupiedSpace)/(e.nodes.length-1),i=t[this.secondaryAxisCoord],a=new Map;for(let t of e.nodes)a.set(t.id,{[this.secondaryAxisCoord]:i,[this.primaryAxisCoord]:n}),i+=t[this.secondaryAxisDimension]+r;return{nodePositions:a,refLayer:null}}spaceAround(e,t,n){let r=(t[this.secondaryAxisDimension]-e.occupiedSpace)/(e.nodes.length+1),i=t[this.secondaryAxisCoord]+r,a=new Map;for(let t of oe(e.nodes,e=>e[this.secondaryAxisCoord]))a.set(t.id,{[this.secondaryAxisCoord]:i,[this.primaryAxisCoord]:n}),i+=t[this.secondaryAxisDimension]+r;return{nodePositions:a,refLayer:null}}placeInGaps(e,t,n){let r=new Map,i=e.nodes,a=this.getGapsPositions(n),o=0;for(let e=0,n=i[e];e<i.length;e++,n=i[e]){let s=n[this.secondaryAxisCoord]+n[this.secondaryAxisDimension]/2,c=1/0;for(;o-e<=a.length-i.length;){let e=a[o]-s;if(Math.abs(e)<Math.abs(c))c=e,o++;else break}r.set(n.id,{[this.secondaryAxisCoord]:n[this.secondaryAxisCoord]+c,[this.primaryAxisCoord]:t})}return{nodePositions:r,refLayer:n}}placeInCells(e,t,n){let r=new Map,i=e.nodes,a=this.getNodePositions(n),o=0;for(let e=0,n=i[e];e<i.length;e++,n=i[e]){let s=n[this.secondaryAxisCoord]+n[this.secondaryAxisDimension]/2,c=1/0;for(;o-e<=a.length-i.length;){let e=a[o]-s;if(Math.abs(e)<Math.abs(c))c=e,o++;else break}r.set(n.id,{[this.secondaryAxisCoord]:n[this.secondaryAxisCoord]+c,[this.primaryAxisCoord]:t})}return{nodePositions:r,refLayer:n}}scoreLayout(e,t){return[v(Array.from(e.nodePositions),D(([e,n])=>{let r=t.get(e);return V(r,`Could not find original rect for node ${e}`),[w(r,[`x`,`y`]),n]}),D(([e,t])=>Math.abs(e[this.secondaryAxisCoord]-t[this.secondaryAxisCoord])),ie((e,t)=>e+t,0)),e]}getGapsPositions(e){let t=[],{layout:n,nodes:r}=e;V(n,`Layout of the layer must be computed before calling getGapsPositions`);for(let e=1;e<r.length;e++){let i=r[e-1],a=r[e],o=n.nodePositions.get(i.id),s=n.nodePositions.get(a.id);t.push((s[this.secondaryAxisCoord]+o[this.secondaryAxisCoord]+i[this.secondaryAxisDimension])/2)}return t}getNodePositions(e){let t=[],{layout:n,nodes:r}=e;V(n,`Layout of the layer must be computed before calling getGapsPositions`);for(let e=0;e<r.length;e++){let i=r[e],a=n.nodePositions.get(i.id);t.push(a[this.secondaryAxisCoord]+i[this.secondaryAxisDimension]/2)}return t}};function Pc(e){switch(e){case`Left`:return new Mc(e=>Math.min(...e.map(e=>e.x)),(e,t)=>Math.floor(e),`x`);case`Top`:return new Mc(e=>Math.min(...e.map(e=>e.y)),(e,t)=>Math.floor(e),`y`);case`Right`:return new Mc(e=>Math.max(...e.map(e=>e.x+e.width)),(e,t)=>Math.floor(e-t.width),`x`);case`Bottom`:return new Mc(e=>Math.max(...e.map(e=>e.y+e.height)),(e,t)=>Math.floor(e-t.height),`y`);case`Center`:return new Mc(e=>Math.min(...e.map(e=>e.x+e.width/2)),(e,t)=>Math.floor(e-t.width/2),`x`);case`Middle`:return new Mc(e=>Math.min(...e.map(e=>e.y+e.height/2)),(e,t)=>Math.floor(e-t.height/2),`y`)}}function Fc(e){let{width:t,height:n}=Sn(e);return{...e.internals.positionAbsolute,id:e.id,width:t,height:n}}function Ic(e){switch(e){case`Left`:case`Right`:case`Top`:case`Bottom`:case`Center`:case`Middle`:return Pc(e);case`Column`:case`Row`:return new Nc(e);default:ir(e)}}var Lc=()=>$.assign(({context:e})=>({toggledFeatures:{...e.toggledFeatures,enableCompareWithLatest:!1},viewportOnAutoLayout:null,viewportOnManualLayout:null})),Rc=()=>$.assign(({context:e,event:t})=>{if(L(t,`xyflow.edgeDoubleClick`),!t.edge.data.controlPoints)return{};let{nodeLookup:n}=e.xystore.getState();return{xyedges:e.xyedges.map(e=>{if(e.id!==t.edge.id)return e;let r=lc(n,e),i=r[0];return{...e,data:{...e.data,controlPoints:r,labelBBox:e.data.labelBBox?{...e.data.labelBBox,...i}:null,labelXY:null}}})}}),zc=()=>$.assign(({context:e,event:t})=>{L(t,`xyflow.nodeClick`);let{lastClickedNode:n}=e;return!n||n.id!==t.node.id?{lastClickedNode:{id:t.node.id,clicks:1,timestamp:Date.now()}}:{lastClickedNode:{id:n.id,clicks:n.clicks+1,timestamp:Date.now()}}}),Bc=()=>$.assign(({event:e})=>{let t,n=!1;switch(e.type){case`xyflow.nodeClick`:t=e.node.data.id;break;case`focus.node`:t=e.nodeId,n=e.autoUnfocus===!0;break;default:throw Error(`Unexpected event type: ${e.type} in action 'assign: focusedNode'`)}return{focusedNode:t,autoUnfocusTimer:n}}),Vc=()=>$.assign(()=>({lastClickedNode:null})),Hc=()=>$.assign(({context:e,event:t})=>(L(t,`update.features`),{features:{...e.features,...t.features}})),Uc=()=>$.assign(({event:e})=>(L(e,`update.inputs`),Qn({...e.inputs}))),Wc=e=>$.assign(({context:t,event:n})=>{let r;e?r=Ac({currentViewId:t.view.id,dynamicViewVariant:t.dynamicViewVariant,view:e,where:t.where}):(L(n,`update.view`),r=`xynodes`in n?n:Ac({currentViewId:t.view.id,dynamicViewVariant:t.dynamicViewVariant,view:n.view,where:t.where}));let i=ic(t,r),{lastClickedNode:a,focusedNode:o,activeWalkthrough:s}=t;if(a||o||s){let e=new Set(i.xynodes.map(e=>e.id));a&&!e.has(a.id)&&(a=null),o&&!e.has(o)&&(o=null);let t=s?.stepId;return t&&!i.xyedges.some(e=>e.id===t)&&(s=null),{...i,lastClickedNode:a,focusedNode:o,activeWalkthrough:s}}return i}),Gc=()=>$.enqueueActions(({context:e,enqueue:t})=>{let n=ac(e);n?t.assign(n):t.raise({type:`key.esc`})}),Kc=()=>$.assign(({context:e})=>({xynodes:e.xynodes.map(M.setDimmed(!1)),xyedges:e.xyedges.map(M.setData({dimmed:!1,active:!1}))})),qc=()=>$.assign(({event:e})=>(L(e,`switch.dynamicViewVariant`),{dynamicViewVariant:e.variant})),Jc=e=>$.assign(({context:t,event:n})=>{let r=e?.node;return r||=(L(n,`xyflow.nodeMouseEnter`),n.node),{xynodes:t.xynodes.map(e=>e.id===r.id?M.setHovered(e,!0):e)}}),Yc=e=>$.assign(({context:t,event:n})=>{let r=e?.node;return r||=(L(n,`xyflow.nodeMouseLeave`),n.node),{xynodes:t.xynodes.map(e=>e.id===r.id?M.setHovered(e,!1):e)}}),Xc=()=>$.emit(()=>({type:`paneClick`})),Zc=e=>$.emit(({event:t})=>e?{type:`openSource`,params:e}:(L(t,`open.source`),{type:`openSource`,params:t})),Qc=()=>$.emit(({context:e})=>({type:`openSource`,params:{view:e.view.id}})),$c=()=>$.emit(({context:e})=>(V(e.xyflow,`XYFlow instance not found`),{type:`initialized`,instance:e.xyflow})),el=()=>$.emit(({context:e,event:t})=>(L(t,`xyflow.nodeClick`),{type:`nodeClick`,node:H(Ai(e,t.node.id),`Node ${t.node.id} not found in diagram`),xynode:t.node})),tl=e=>$.emit(({context:t})=>({type:`navigateTo`,viewId:e?.viewId??H(t.lastOnNavigate,`Invalid state, lastOnNavigate is null`).toView})),nl=()=>$.emit(({context:e,event:t})=>(L(t,`xyflow.edgeClick`),{type:`edgeClick`,edge:H(ji(e,t.edge.id),`Edge ${t.edge.id} not found in diagram`),xyedge:t.edge})),rl=e=>$.enqueueActions(({event:t,enqueue:n})=>{let r=e;r||=(L(t,`trigger.change`),t.change),n.assign({viewportChangedManually:!0}),n.sendTo(Y.editorActor,{type:`change.view`,change:r})}),il=()=>$.enqueueActions(({event:e,system:t,context:n,enqueue:r})=>{if(!n.features.enableCompareWithLatest){console.warn(`Layout type cannot be changed while CompareWithLatest feature is disabled`);return}let i=n.view._layout,a=i===`auto`?`manual`:`auto`;if(e.type===`emit.onLayoutTypeChange`&&(a=e.layoutType),i===a){console.warn(`Ignoring layout type change event, layout type is already`,i);return}if(n.toggledFeatures.enableCompareWithLatest===!0){i===`manual`&&a===`auto`&&Y(t).editorActorRef?.send({type:`cancel`});let e=n.viewport;i===`auto`&&r.assign({viewportOnAutoLayout:e}),i===`manual`&&r.assign({viewportOnManualLayout:e})}r.emit({type:`onLayoutTypeChange`,layoutType:a})}),al=e=>$.createAction(({context:t,event:n})=>{let r;e?r=e.mode:(L(n,`layout.align`),r=n.mode);let i=H(t.xystore,`xystore is not initialized`),{nodeLookup:a,parentLookup:o}=i.getState(),s=[...ur(new Set(a.values().filter(e=>e.selected).map(e=>e.id)),new Set(o.keys()))];if(!E(s,2)){console.warn(`At least 2 nodes must be selected to align`);return}let c=Ms(i,s),l=Ic(r),u=s.map(e=>({node:H(a.get(e)),rect:H(c.rects.get(e))}));l.computeLayout(u.map(({node:e})=>Fc(e)));for(let{rect:e,node:t}of u)e.positionAbsolute={...e.positionAbsolute,...l.applyPosition(Fc(t))};c.updateXYFlow()}),ol=()=>$.assign(({context:e})=>{let{nodeLookup:t}=e.xystore.getState();return{xyedges:e.xyedges.map(e=>{if(!e.data.controlPoints)return e;let n=lc(t,e),r=n[0];return{...e,data:{...e.data,controlPoints:n,labelBBox:e.data.labelBBox?{...e.data.labelBBox,x:r.x,y:r.y}:null,labelXY:e.data.labelXY?r:null}}})}}),sl=()=>$.assign(({context:e,event:t})=>{L(t,`notations.highlight`);let{notation:n,kind:r}=t,i=r?[r]:n.kinds,a=e=>e.notation===n.title&&e.shape===n.shape&&e.color===n.color&&i.includes(e.kind);return{xynodes:e.xynodes.map(t=>{let n=Ai(e,t.id),r=n&&a(n);return M.setDimmed(t,r?!1:`immediate`)}),xyedges:e.xyedges.map(e=>M.setDimmed(e,!0))}}),cl=()=>$.assign(({context:e,event:t})=>(L(t,`tag.highlight`),{xynodes:e.xynodes.map(e=>e.data.tags?.includes(t.tag)?M.setDimmed(e,!1):M.setDimmed(e,!0))})),ll=()=>$.assign(({context:e,event:t})=>{switch(L(t,[`highlight.edge`,`highlight.node`]),t.type){case`highlight.node`:{let n=t.nodeId;return e.xynodes.find(e=>e.id===n)?{xynodes:e.xynodes.map(e=>M.setDimmed(e,e.id!==n)),xyedges:e.xyedges.map(M.setData({dimmed:!0,active:!1}))}:(console.warn(`Node with id ${n} not found for highlighting`),{})}case`highlight.edge`:{let n=t.edgeId,r=e.xyedges.find(e=>e.id===n);return r?{xynodes:e.xynodes.map(e=>M.setDimmed(e,r.source!==e.id&&r.target!==e.id)),xyedges:e.xyedges.map(e=>M.setData(e,{dimmed:e.id!==n,active:e.id===n}))}:(console.warn(`Edge with id ${n} not found for highlighting`),{})}default:ir(t)}}),ul=()=>$.assign(({context:e,event:t})=>{L(t,`toggle.feature`);let n=`enable${t.feature}`,r=e.toggledFeatures[n]??e.features[n],i=t.forceValue??!r;return{toggledFeatures:{...e.toggledFeatures,[n]:i}}}),dl=()=>$.sendTo(Y.searchActor,{type:`close`}),fl=()=>$.sendTo(Y.overlaysActor,{type:`close.all`}),pl=()=>$.enqueueActions(({enqueue:e,system:t})=>{let n=Y(t).editorActorRef;n&&e.stopChild(n)}),ml=()=>$.enqueueActions(({enqueue:e,context:t,system:n,check:r})=>{let i=r(`enabled: Editor`),a=Y(n).editorActorRef;if(!i&&a){e.stopChild(a);return}i&&!a&&e.spawnChild(`editorActor`,{id:`editor`,systemId:`editor`,input:{viewId:t.view.id},syncSnapshot:!0})}),hl=(e=`node`)=>$.sendTo(Y.editorActor,{type:`edit.move.start`,subject:e}),gl=()=>$.sendTo(Y.editorActor,{type:`view.synched`}),_l=(e=!1)=>$.sendTo(Y.editorActor,{type:e?`edit.move.end`:`edit.move.cancel`}),vl=()=>$.sendTo(Y.editorActor,{type:`cancel`}),yl=e=>`modelFqn`in e.data&&p(e.data.modelFqn),bl=e=>$.enqueueActions(({context:t,event:n,enqueue:r})=>{let i=null,a,o;switch(!0){case!!e:o=e.fqn,a=e.fromNode??t.view.nodes.find(t=>t.modelRef===e.fqn)?.id;break;case n.type===`xyflow.nodeClick`:if(!yl(n.node)){console.warn(`No modelFqn in clicked node data`);return}o=n.node.data.modelFqn,a=n.node.data.id;break;case n.type===`open.elementDetails`:o=n.fqn,a=n.fromNode;break;default:{if(!t.lastClickedNode){console.warn(`No last clicked node`);return}a=t.lastClickedNode.id;let e=t.xynodes.find(e=>e.id===a);if(!e||!yl(e)){console.warn(`No modelFqn in last clicked node`);return}o=e.data.modelFqn;break}}let s=a?t.xystore.getState().nodeLookup.get(a):null;if(a&&s){let e=un(s),n=t.xyflow.getZoom(),r={...t.xyflow.flowToScreenPosition(e),width:e.width*n,height:e.height*n};i={node:a,clientRect:r}}r.sendTo(Y.overlaysActor,{type:`open.elementDetails`,subject:o,currentView:t.view,...i&&{initiatedFrom:i}})}),xl=()=>$.enqueueActions(({context:e,event:t,enqueue:n,check:r})=>{if(L(t,[`open.relationshipsBrowser`,`open.relationshipDetails`,`open.elementDetails`]),!r(`enabled: Overlays`)){console.warn(`Overlays feature is disabled`);return}switch(t.type){case`open.elementDetails`:r(`enabled: ElementDetails`)?n(bl()):console.warn(`ElementDetails feature is disabled`);break;case`open.relationshipsBrowser`:if(!e.features.enableRelationshipBrowser){console.warn(`RelationshipBrowser feature is disabled`);return}n.sendTo(Y.overlaysActor,{type:`open.relationshipsBrowser`,subject:t.fqn,viewId:e.view.id,scope:`view`,closeable:!0,enableChangeScope:!0,enableSelectSubject:!0});break;case`open.relationshipDetails`:if(!e.features.enableRelationshipDetails){console.warn(`RelationshipDetails feature is disabled`);return}n.sendTo(Y.overlaysActor,{type:`open.relationshipDetails`,viewId:e.view.id,...t.params});break;default:ir(t)}}),Sl=()=>$.enqueueActions(({context:e,enqueue:t})=>{let n=e.focusedNode??e.lastClickedNode?.id;if(!n||!e.features.enableVscode)return;let r=Ai(e,n);r&&(r.deploymentRef?t.raise({type:`open.source`,deployment:r.deploymentRef}):r.modelRef&&t.raise({type:`open.source`,element:r.modelRef}))}),Cl=()=>$.enqueueActions(({enqueue:e,check:t,system:n})=>{let r=t(`enabled: Overlays`),i=Y(n).overlaysActorRef;if(r&&!i){e.spawnChild(`overlaysActorLogic`,{id:`overlays`,systemId:`overlays`,syncSnapshot:!0});return}!r&&i&&(e.sendTo(i,{type:`close.all`}),e.stopChild(i))}),wl=()=>$.enqueueActions(({enqueue:e,check:t,system:n})=>{let r=t(`enabled: Search`),i=Y(n).searchActorRef;if(r&&!i){e.spawnChild(`searchActorLogic`,{id:`search`,systemId:`search`,syncSnapshot:!0});return}!r&&i&&(e.sendTo(i,{type:`close`}),e.stopChild(i))}),Tl=()=>$.enqueueActions(({enqueue:e,context:t,event:n})=>{L(n,`xyflow.edgeMouseEnter`);let r=n.edge;e.assign({xyedges:t.xyedges.map(e=>e.id===n.edge.id?(r=M.setHovered(e,!0),r):e)}),e.emit({type:`edgeMouseEnter`,edge:r,event:n.event})}),El=()=>$.enqueueActions(({enqueue:e,context:t,event:n})=>{L(n,`xyflow.edgeMouseLeave`);let r=n.edge;e.assign({xyedges:t.xyedges.map(e=>e.id===n.edge.id?(r=M.setHovered(e,!1),r):e)}),e.emit({type:`edgeMouseLeave`,edge:r,event:n.event})}),Dl=()=>$.spawnChild(`hotkeyActorLogic`,{id:`hotkey`}),Ol=()=>$.stopChild(`hotkey`),kl=3e3,Al=()=>$.enqueueActions(({context:e,enqueue:t})=>{e.autoUnfocusTimer&&t.raise({type:`focus.autoUnfocus`},{delay:kl,id:`autoUnfocusTimer`})}),jl=()=>$.cancel(`autoUnfocusTimer`),Ml=()=>$.enqueueActions(({enqueue:e,context:t,event:n})=>{L(n,[`navigate.to`,`navigate.back`,`navigate.forward`]);let{view:r,focusedNode:i,activeWalkthrough:a,dynamicViewVariant:o,viewport:s,viewportChangedManually:c,viewportBefore:l,navigationHistory:u}=t,{currentIndex:d,history:f}=u,p=f;if(d<f.length){let e=xr(f.at(d)??{},e=>{e.viewport={...s},e.viewportChangedManually=c,e.focusedNode=i,r._type===`dynamic`?(e.activeWalkthrough=a?.stepId??null,e.dynamicViewVariant=o):(e.activeWalkthrough=null,e.dynamicViewVariant=null),l?e.viewportBefore=structuredClone(l):delete e.viewportBefore});p=[...f],p[d]=e}switch(n.type){case`navigate.to`:e.assign({navigationHistory:{currentIndex:d,history:p},lastOnNavigate:{fromView:t.view.id,toView:n.viewId,fromNode:n.fromNode??null,focusOnElement:n.focusOnElement??null}}),e(tl());break;case`navigate.back`:{V(d>0,`Cannot navigate back`);let t=p[d-1];e.assign({navigationHistory:{currentIndex:d-1,history:p},lastOnNavigate:null}),e(tl({viewId:t.viewId}));break}case`navigate.forward`:{V(d<p.length-1,`Cannot navigate forward`);let t=p[d+1];e.assign({navigationHistory:{currentIndex:d+1,history:p},lastOnNavigate:null}),e(tl({viewId:t.viewId}));break}default:ir(n)}}),Nl=()=>$.enqueueActions(({enqueue:e,event:t,context:n})=>{if(t.type!==`update.view`){console.warn(`Ignoring unexpected event type: ${t.type} in action 'update.view'`);return}let r=t.view;if(r.id!==n.view.id){console.warn(`updateView called for another view - ignoring`,{event:t});return}if(e(Wc()),t.source===`editor`)return;if(e(gl()),n.toggledFeatures.enableCompareWithLatest===!0&&n.view._layout!==r._layout){if(r._layout===`auto`&&n.viewportOnAutoLayout){e(uc({viewport:n.viewportOnAutoLayout,duration:0}));return}if(r._layout===`manual`&&n.viewportOnManualLayout){e(uc({viewport:n.viewportOnManualLayout,duration:0}));return}}let i=!n.viewportChangedManually&&!n.focusedNode&&!n.activeWalkthrough;i||=n.toggledFeatures.enableCompareWithLatest===!0&&!!r._layout&&n.view._layout!==r._layout,r._type===`dynamic`&&n.view._type===`dynamic`&&r.variant===n.view.variant&&r.variant!==n.dynamicViewVariant&&e(dc(U.center(Mi(n,r)))),i&&(e(_c()),e(vc()))}),Pl=$.createStateConfig({on:{"xyflow.init":{actions:I(({context:e,event:t})=>({initialized:{...e.initialized,xyflow:!0},xyflow:t.instance})),target:`isReady`},"update.view":{actions:[Wc(),I(({context:e})=>({initialized:{...e.initialized,xydata:!0}}))],target:`isReady`}}}),Fl=$.createStateConfig({always:[{guard:`isReady`,actions:[pc({duration:0}),I(({context:e})=>({navigationHistory:{currentIndex:0,history:[{viewId:e.view.id,viewport:{...e.xyflow.getViewport()},viewportChangedManually:!1}]}})),$c()],target:`ready`},{target:`initializing`}]}),Il=()=>$.assign(({context:e,event:t})=>{L(t,`update.view`);let{lastOnNavigate:n,navigationHistory:{currentIndex:r,history:i}}=e,a=i[r];if(!a||a.viewId===t.view.id||n)return{};let o=r>0?i.at(r-1):null;if(o&&o.viewId===t.view.id)return{navigationHistory:{currentIndex:r-1,history:i},lastOnNavigate:null};let s=r<i.length-1?i.at(r+1):null;if(s&&s.viewId===t.view.id)return{navigationHistory:{currentIndex:r+1,history:i},lastOnNavigate:null};if(t.view._type===`element`&&t.view.viewOf){let n=t.view.viewOf,r=e.xynodes.find(e=>Li(e)===n);if(r)return{lastOnNavigate:{fromView:e.view.id,toView:t.view.id,fromNode:r.id}}}return{}}),Ll=$.createStateConfig({id:so.navigating.slice(1),always:{...co.idle,actions:[_c(),Il(),Lc(),an(({enqueue:e,context:t,event:n})=>{L(n,`update.view`);let{xyflow:r,xystore:i,navigationHistory:{currentIndex:a,history:o}}=t,s=`xynodes`in n?n:{...n,...Ac({currentViewId:t.view.id,dynamicViewVariant:t.dynamicViewVariant,view:n.view,where:t.where})};G(r,`xyflow is not initialized`);let c=r.getViewport(),l=e=>{let t=c.zoom,n=e.zoom-t;return Math.abs(n)<.01?e.zoom:Math.trunc(1e4*(t+n*(n<0?.6:.3)))/1e4},u=t=>{let n=l(t);n===t.zoom?r.setViewport(t,{duration:0}):(r.setViewport({x:bt(t.x*(1+c.zoom-n)),y:bt(t.y*(1+c.zoom-n)),zoom:n}),e(gc({delay:100,viewport:t})))},d=o[a];if(d&&d.viewId===s.view.id){let{focusedNode:n,activeWalkthrough:r,viewportBefore:i}=d,a={...ic(t,s),dynamicViewVariant:d.dynamicViewVariant??(s.view._type===`dynamic`?s.view.variant:void 0)??t.dynamicViewVariant,viewportChangedManually:i?.wasChangedManually??d.viewportChangedManually,viewport:i?.value??d.viewport,viewportBefore:null};if(e.assign(a),u(a.viewport),n){e.raise({type:`focus.node`,nodeId:n},{delay:150});return}if(r){e.raise({type:`walkthrough.start`,stepId:r},{delay:150});return}return}let f=Mi(t,s.view),m=zi(t,f),{fromNode:h,toNode:g}=Ri(t,s);if(h&&g){let t=r.getInternalNode(h.id),n=r.flowToScreenPosition({x:t.internals.positionAbsolute.x,y:t.internals.positionAbsolute.y}),a=r.flowToScreenPosition({x:g.data.x,y:g.data.y});i.getState().panBy({x:Math.round(n.x-a.x),y:Math.round(n.y-a.y)}).catch(e=>{console.error(`Error during xyflow.panBy`,{err:e})}),e(gc({delay:100,viewport:m}))}else{let n=l(m);if(n!==m.zoom){let{width:i,height:a}=t.xystore.getState(),o=U.center(f),s=Tt(t.fitViewPadding,i,a);r.setViewport({x:bt((i-s.x)/2-o.x*n+s.left),y:bt((a-s.y)/2-o.y*n+s.top),zoom:n}),e(gc({delay:100,viewport:m}))}else r.setViewport(m,{duration:0})}let _=a<o.length-1?o.slice(0,a+1):[...o];_.length>20&&_.shift(),_.push({viewId:n.view.id,viewport:{...m},viewportChangedManually:!1});let v=t.lastOnNavigate?.focusOnElement,y=p(v)?ki(s.xynodes,v):null;e.assign({...ic(t,s),viewportChangedManually:!1,lastOnNavigate:null,dynamicViewVariant:s.view._type===`dynamic`?s.view.variant:t.dynamicViewVariant,navigationHistory:{currentIndex:_.length-1,history:_}}),y&&e.raise({type:`focus.node`,nodeId:y.id,autoUnfocus:!0},{delay:250})})]}}),Rl=$.createStateConfig({id:so.focused.slice(1),entry:[_c(),Gc(),bc(),Sl(),Dl(),mc(),Al()],exit:[Ol(),Kc(),xc(),jl(),I({focusedNode:null,autoUnfocusTimer:!1})],on:{"focus.autoUnfocus":{...co.idle},"xyflow.nodeClick":[{guard:$t([`enabled: ElementDetails`,`click: focused node`,`click: node has modelFqn`]),actions:[zc(),bl(),el()]},{guard:`click: focused node`,actions:[zc(),el()],...co.idle},{actions:[zc(),F(({event:e})=>({type:`focus.node`,nodeId:e.node.id})),el()]}],"focus.node":{actions:[Bc(),Gc(),Sl(),mc()]},"key.esc":{...co.idle},"xyflow.paneClick":{actions:[Xc()],...co.idle},"notations.unhighlight":{actions:Gc()},"tag.unhighlight":{actions:Gc()}}}),zl=$.createStateConfig({id:so.idle.slice(1),on:{"xyflow.nodeClick":[{guard:$t([`enabled: Readonly`,`enabled: FocusMode`,`click: node has connections`,nn([`click: same node`,`click: selected node`])]),actions:[zc(),Bc(),el()],...co.focused},{guard:$t([`enabled: Readonly`,`enabled: ElementDetails`,`click: node has modelFqn`,nn([`click: same node`,`click: selected node`])]),actions:[zc(),Sl(),bl(),el()]},{actions:[zc(),Sl(),el()]}],"xyflow.paneClick":{actions:[Vc(),Xc()]},"xyflow.paneDblClick":{actions:[Vc(),vc(),Qc(),Xc()]},"focus.node":[{guard:`focus.node: autoUnfocus`,actions:Bc(),target:so.focused},{guard:`enabled: FocusMode`,actions:Bc(),target:so.focused}],"xyflow.edgeClick":{guard:$t([`enabled: Readonly`,`is dynamic view`,`enabled: DynamicViewWalkthrough`,`click: selected edge`]),actions:[Vc(),F(({event:e})=>({type:`walkthrough.start`,stepId:e.edge.id})),nl()]}}}),Bl=$.createStateConfig({id:so.printing.slice(1),entry:[_c(),bc(),an(({enqueue:e,context:t})=>{let n=Mi(t);e(uc({viewport:{x:n.x+16,y:n.y+16,zoom:1},duration:0}))})],exit:[xc({delay:0,duration:0})],on:{"media.print.off":{...co.idle},"*":{actions:[sn(({event:e})=>`Printing state - ignoring event: ${e.type}`)]}}}),Vl=()=>$.enqueueActions(({context:e,enqueue:t})=>{let{activeWalkthrough:n}=e;if(!n){console.warn(`Active walkthrough is null`),t.raise({type:`walkthrough.end`});return}let{stepId:r,parallelPrefix:i}=n,a=e.xyedges.find(e=>e.id===r);if(!a){console.warn(`Invalid walkthrough stepId:`,r),t.raise({type:`walkthrough.end`});return}t.assign({xyedges:e.xyedges.map(e=>{let t=r===e.id||!!i&&e.id.startsWith(i);return M.setData(e,{active:t,dimmed:r!==e.id})}),xynodes:e.xynodes.map(e=>{let t=a.source!==e.id&&a.target!==e.id;return e.type===`seq-parallel`?M.setData(e,{color:i===e.data.parallelPrefix?wc.active:wc.default,dimmed:t}):M.setDimmed(e,t)})})}),Hl=()=>$.emit(({context:e})=>{let t=e.xyedges.find(t=>t.id===e.activeWalkthrough?.stepId);return V(t,`Invalid walkthrough state`),{type:`walkthroughStarted`,edge:t}}),Ul=()=>$.emit(()=>({type:`walkthroughStopped`})),Wl=()=>$.emit(({context:e})=>{let t=e.xyedges.find(t=>t.id===e.activeWalkthrough?.stepId);return V(t,`Invalid walkthrough state`),{type:`walkthroughStep`,edge:t}}),Gl=$.createStateConfig({id:so.walkthrough.slice(1),entry:[Dl(),vl(),_c(),bc(),I({activeWalkthrough:({context:e,event:t})=>{L(t,`walkthrough.start`);let n=t.stepId??m(e.xyedges).id;return{stepId:n,parallelPrefix:$n(n)}}}),Vl(),mc(),Hl()],exit:[Ol(),an(({enqueue:e,context:t})=>{e.assign({activeWalkthrough:null}),t.dynamicViewVariant===`sequence`&&t.activeWalkthrough?.parallelPrefix&&e.assign({xynodes:t.xynodes.map(e=>e.type===`seq-parallel`?M.setData(e,{color:wc.default}):e)})}),Kc(),xc(),Ul()],on:{"key.esc":{target:so.idle},"key.arrow.left":{actions:F({type:`walkthrough.step`,direction:`previous`})},"key.arrow.up":{actions:F({type:`walkthrough.step`,direction:`previous`})},"key.arrow.right":{actions:F({type:`walkthrough.step`,direction:`next`})},"key.arrow.down":{actions:F({type:`walkthrough.step`,direction:`next`})},"walkthrough.step":{actions:[I(({context:e,event:t})=>{let{stepId:n}=e.activeWalkthrough,r=e.xyedges.findIndex(e=>e.id===n),i=y(t.direction===`next`?r+1:r-1,{min:0,max:e.xyedges.length-1});if(i===r)return{};let a=H(e.xyedges[i]).id;return{activeWalkthrough:{stepId:a,parallelPrefix:$n(a)}}}),Vl(),mc(),Wl()]},"xyflow.edgeClick":[{guard:`click: active walkthrough step`,actions:[mc(),nl()]},{actions:[I(({event:e})=>{let t=e.edge.id;return V(nr(t)),{activeWalkthrough:{stepId:t,parallelPrefix:$n(t)}}}),Vl(),mc(),nl(),Wl()]}],"notations.unhighlight":{actions:Vl()},"tag.unhighlight":{actions:Vl()},"update.view":{guard:`is same view`,actions:[Nl(),Vl()]},"walkthrough.end":{target:so.idle},"xyflow.paneDblClick":{target:so.idle}}}),Kl=$.createStateConfig({initial:`idle`,entry:[en(`mediaPrintActorLogic`,{id:`mediaPrint`}),ml(),Cl(),wl()],exit:[_c(),Xt(`mediaPrint`),fl(),dl(),pl()],states:{idle:zl,focused:Rl,walkthrough:Gl,printing:Bl},on:{"layout.align":{guard:`not readonly`,actions:[hl(`node`),al(),_l(!0)]},"layout.resetEdgeControlPoints":{guard:`not readonly`,actions:[hl(`edge`),ol(),_l(!0)]},"layout.resetManualLayout":{actions:[vl(),Lc(),rl({op:`reset-manual-layout`})]},"media.print.on":{...co.printing},"navigate.*":{actions:Ml()},"notations.highlight":{actions:sl()},"notations.unhighlight":{actions:Kc()},"highlight.*":{actions:ll()},"unhighlight.all":{actions:Kc()},"open.elementDetails":{actions:xl()},"open.relationshipDetails":{actions:xl()},"open.relationshipsBrowser":{actions:xl()},"open.search":{guard:`enabled: Search`,actions:Zt(Y.searchActor,({event:e})=>({type:`open`,search:e.search}))},"open.source":{guard:`enabled: OpenSource`,actions:Zc()},"tag.highlight":{actions:cl()},"tag.unhighlight":{actions:Kc()},"toggle.feature":{actions:ul()},"update.features":{actions:[Hc(),Cl(),wl(),ml()]},"update.view":[{guard:`is another view`,...co.navigating},{actions:Nl()}],"walkthrough.start":{guard:`is dynamic view`,...co.walkthrough},"xyflow.edgeClick":{actions:[Vc(),nl()]},"xyflow.edgeDoubleClick":{guard:$t([`not readonly`,({event:e})=>!!e.edge.data.controlPoints&&e.edge.data.controlPoints.length>0]),actions:[hl(`edge`),Rc(),_l(!0)]},"xyflow.edgeMouseEnter":{actions:Tl()},"xyflow.edgeMouseLeave":{actions:El()},"xyflow.centerViewport":{actions:fc()},"xyflow.fitDiagram":{guard:`enabled: FitView`,actions:[I({viewportChangedManually:!1}),pc()]},"xyflow.nodeClick":{actions:[zc(),el()]},"xyflow.nodeMouseEnter":{actions:Jc()},"xyflow.nodeMouseLeave":{actions:Yc()},"xyflow.paneClick":{actions:[Vc(),Xc()]},"xyflow.paneDblClick":{actions:[Vc(),_c(),vc(),Qc(),Xc()]},"xyflow.resized":{guard:({context:e})=>e.features.enableFitView&&!e.viewportChangedManually,actions:[_c(),vc({delay:150})]},"xyflow.setViewport":{actions:uc()}}}),ql=$.createMachine({initial:`initializing`,context:({input:e})=>({...e,xyedges:[],xynodes:[],features:{...bi,...e.features},toggledFeatures:rc.read()??{enableReadOnly:!0,enableCompareWithLatest:!1},initialized:{xydata:!1,xyflow:!1},viewportChangedManually:!1,lastOnNavigate:null,lastClickedNode:null,focusedNode:null,autoUnfocusTimer:!1,activeElementDetails:null,viewportBefore:null,viewportOnManualLayout:null,viewportOnAutoLayout:null,navigationHistory:{currentIndex:0,history:[]},viewport:{x:0,y:0,zoom:1},xyflow:null,dynamicViewVariant:e.dynamicViewVariant??(e.view._type===`dynamic`?e.view.variant:`diagram`)??`diagram`,activeWalkthrough:null}),states:{initializing:Pl,isReady:Fl,ready:Kl,navigating:Ll,final:{type:`final`}},on:{"update.nodeData":{actions:I(oc)},"update.edgeData":{actions:I(sc)},"switch.dynamicViewVariant":{guard:({context:e,event:t})=>e.dynamicViewVariant!==t.variant,actions:[qc(),I({viewportChangedManually:!1}),yc()]},"update.inputs":{actions:Uc()},"update.view-bounds":{actions:I(({context:e,event:t})=>({view:{...e.view,bounds:t.bounds}}))},"update.features":{actions:Hc()},"trigger.change":{actions:rl()},"emit.onLayoutTypeChange":{actions:il()},"xyflow.applyChanges":{actions:I(({context:e,event:t})=>({xynodes:t.nodes?xn(t.nodes,e.xynodes):e.xynodes,xyedges:t.edges?_n(t.edges,e.xyedges):e.xyedges}))},"xyflow.viewportMoved":{actions:I(({event:e,context:t})=>({viewportChangedManually:t.viewportChangedManually||e.manually,viewport:e.viewport}))},destroy:{target:`.final`,actions:[pl(),_c(),Xt(`hotkey`),Xt(`overlays`),Xt(`search`),Xt(`mediaPrint`),I({xyflow:null,xystore:null,xyedges:[],xynodes:[],initialized:{xydata:!1,xyflow:!1}})]}}});function Jl({id:e,view:t,zoomable:n,pannable:r,nodesDraggable:i,nodesSelectable:a,fitViewPadding:o,where:s=null,children:c,dynamicViewVariant:l}){let u=vn(),d=ec(),f=q(),p=cn(ql.provide({actors:{editorActor:d}}),{id:`diagram-${e}`,systemId:`diagram`,input:{xystore:u,view:t,zoomable:n,pannable:r,fitViewPadding:o,nodesDraggable:i,nodesSelectable:a,where:s,features:f,dynamicViewVariant:l}}),m=Hn(p);m.current!==p&&(console.warn(`DiagramMachine actor instance changed`,{previous:m.current.getSnapshot().context,current:p.getSnapshot().context}),m.current=p);let[h,g]=Un(()=>tc(m));return Bn(()=>{g(e=>e.ref===m?e:(console.error(`DiagramMachine actorRef changed, creating new DiagramApi instance, this should not happen during the lifetime of the actor`),tc(m)))},[m]),Bn(()=>{p.send({type:`update.features`,features:f})},[p,f]),Et(()=>p.send({type:`update.inputs`,inputs:{zoomable:n,where:s,pannable:r,fitViewPadding:o,nodesDraggable:i,nodesSelectable:a}}),[p,n,s,r,o,i,a]),Et(()=>{l&&p.send({type:`switch.dynamicViewVariant`,variant:l})},[p,l]),Bn(()=>p.send({type:`update.view`,view:t,source:`external`}),[p,t]),z(Wt,{value:p,children:B(qt,{value:h,children:[z(Ei,{children:z(Xl,{children:c})}),z(Zl,{})]})})}var Yl=Tr(e=>{let t=e.toggledFeatures,n=e.view.drifts!=null&&e.view.drifts.length>0&&e.features.enableCompareWithLatest&&(t.enableCompareWithLatest??!1)&&d(e.activeWalkthrough),r=e.features.enableReadOnly||t.enableReadOnly||!!e.activeWalkthrough||n&&e.view._layout===`auto`;return(t.enableReadOnly!==r||t.enableCompareWithLatest!==n)&&(t={...t,enableCompareWithLatest:n,enableReadOnly:r}),t});function Xl(e){let t=R(6),{children:n}=e,r=wr(Yl),i,a;t[0]===r?(i=t[1],a=t[2]):(i=()=>{rc.write(r)},a=[r],t[0]=r,t[1]=i,t[2]=a),Et(i,a);let o;return t[3]!==n||t[4]!==r?(o=z(Si,{overrides:r,children:n}),t[3]=n,t[4]=r,t[5]=o):o=t[5],o}var Zl=Ln(()=>{let e=P(),t=vi();return Dr(`openSource`,({params:e})=>t.current.onOpenSource?.(e)),Dr(`navigateTo`,({viewId:e})=>t.current.onNavigateTo?.(e)),Dr(`onLayoutTypeChange`,({layoutType:e})=>{t.current.onLayoutTypeChange?.(e)}),Dr(`initialized`,({instance:n})=>{try{t.current.onInitialized?.({diagram:e,xyflow:n})}catch(e){console.error(e)}},{once:!0}),null});export{Dr as A,jr as C,Tr as D,Cr as E,Er as O,Nr as S,Or as T,gi as _,mo as a,ui as b,ao as c,Ai as d,Ei as f,q as g,wi as h,ho as i,wr as k,Ea as l,Si as m,Bs as n,po as o,bi as p,vo as r,lo as s,Jl as t,ji as u,_i as v,Mr as w,oi as x,li as y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as e}from"./libs/@tanstack/react-router.mjs";import{s as t}from"./factory.mjs";import{S as n}from"./DiagramActorProvider.mjs";import{t as r}from"./LikeC4Diagram.mjs";import{a as i,n as a}from"./hooks.mjs";import{c as o}from"react-compiler-runtime";import{jsx as s}from"react/jsx-runtime";function c({view:e,fitView:n=!0,fitViewPadding:i=`8px`,enableRelationshipDetails:a=!1,enableRelationshipBrowser:o=a,background:c=`transparent`,className:l,...u}){return s(r,{view:e,className:t(l,`likec4-static-view`),fitView:n,fitViewPadding:i,pannable:!1,zoomable:!1,controls:!1,background:c,enableNotations:!1,enableElementDetails:!1,enableRelationshipDetails:a,enableRelationshipBrowser:o,enableDynamicViewWalkthrough:!1,showNavigationButtons:!1,enableCompareWithLatest:!1,enableFocusMode:!1,enableSearch:!1,nodesSelectable:!1,enableElementTags:!1,enableNotes:!1,...u})}function l(){let t=o(17),r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={strict:!1},t[0]=r):r=t[0];let{padding:l,dynamic:u}=e(r),d=l===void 0?20:l,[f]=a();if(i(!!f),!f){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=s(`div`,{children:`Loading...`}),t[1]=e):e=t[1],e}let p;t[2]!==f||t[3]!==u?(p=n(f,u),t[2]=f,t[3]=u,t[4]=p):p=t[4];let m=p,h=`${m.width+d*2} / ${m.height+d*2}`,g=m.width+d*2,_;t[5]!==d||t[6]!==h||t[7]!==g?(_={position:`absolute`,top:0,left:`50%`,boxSizing:`border-box`,padding:d,transform:`translateX(-50%)`,aspectRatio:h,width:`100vw`,maxWidth:g,height:`auto`,maxHeight:`100vh`},t[5]=d,t[6]=h,t[7]=g,t[8]=_):_=t[8];let v;t[9]!==m.height||t[10]!==m.width||t[11]!==f||t[12]!==u?(v=s(c,{view:f,fitView:!0,background:`transparent`,fitViewPadding:0,dynamicViewVariant:u,enableRelationshipDetails:!0,enableRelationshipBrowser:!0,initialWidth:m.width,initialHeight:m.height}),t[9]=m.height,t[10]=m.width,t[11]=f,t[12]=u,t[13]=v):v=t[13];let y;return t[14]!==_||t[15]!==v?(y=s(`div`,{style:_,children:v}),t[14]=_,t[15]=v,t[16]=y):y=t[16],y}export{c as n,l as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{u as e}from"./libs/@tanstack/react-router.mjs";import{j as t}from"./libs/@mantine/core.mjs";import{V as n,i as r}from"./LikeC4Styles.mjs";import{t as i}from"./Markdown.mjs";import{S as a}from"./DiagramActorProvider.mjs";import{t as o}from"./LikeC4Diagram.mjs";import{t as s}from"./box.mjs";import{a as c,n as l}from"./hooks.mjs";import{useRef as u}from"react";import{c as d}from"react-compiler-runtime";import{jsx as f,jsxs as p}from"react/jsx-runtime";import{RichText as m}from"@likec4/core";function h(e){return 60+e*68}function g({title:e,text:t,width:n}){let r=Math.max(80,n-32),i=Math.max(12,Math.floor(r/7.5)),a=+(e.trim().length>0),o=_(t,i),s=o>0?4:0,c=10+a*20+s+o*19+16;return Math.min(240,Math.max(84,Math.ceil(c)))}function _(e,t){let n=e.split(`
|
|
2
|
+
`).map(e=>e.trim()).filter(e=>e.length>0);return n.length===0?0:n.reduce((e,n)=>e+Math.max(1,Math.ceil(n.length/t)),0)}function v({bounds:e,padding:t,description:n,notationEntries:r}){let i=e.width+t*2+16,a=e.height+t*2+16,o=r>0,s=o?i+24+320+t:i,c=n?g({...n,width:s}):0,l=c>0?c+16:0,u={left:0,top:l,width:i,height:a};if(!o)return{width:s,height:l+u.height,diagram:u,description:n?{left:0,top:0,width:s,height:c}:null,notation:null};let d=h(r);return{width:s,height:l+Math.max(u.height,d+t*2),diagram:u,description:n?{left:0,top:0,width:s,height:c}:null,notation:{left:u.width+24,top:l+t,width:320,height:d}}}function y(e){return e===!0||e===`true`}function b(e,t){let n=document.createElement(`a`);return n.setAttribute(`download`,t),n.href=e,document.body.appendChild(n),n.click(),new Promise(t=>setTimeout(()=>{document.body.removeChild(n),URL.revokeObjectURL(e),t()},1e3))}async function x({pngFilename:e,viewport:t}){try{let{toBlob:n}=await import(`./libs/html-to-image.mjs`).then(e=>e.t),r=await n(t,{backgroundColor:`transparent`,cacheBust:!0,imagePlaceholder:`data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==`});if(!r)throw Error(`Failed to create PNG blob`);await b(URL.createObjectURL(r),`${e}.png`),window.close()}catch(e){console.error(e),window.alert(`Failed to export to PNG, check the console for more details.`)}}async function S({filename:e,viewport:t,quality:n=.8}){try{let{toJpeg:r}=await import(`./libs/html-to-image.mjs`).then(e=>e.t);await b(await r(t,{backgroundColor:getComputedStyle(document.documentElement).getPropertyValue(`--mantine-color-body`),quality:n,cacheBust:!0,imagePlaceholder:`data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==`}),`${e}.jpg`),window.close()}catch(e){console.error(e),window.alert(`Failed to export to JPEG, check the console for more details.`)}}function C(){let t=d(5),[n]=l(),r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={strict:!1},t[0]=r):r=t[0];let{format:i}=e(r),a=i===`jpeg`;if(c(!a),!n){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=f(`div`,{children:`Loading...`}),t[1]=e):e=t[1],e}let o;return t[2]!==n||t[3]!==a?(o=f(w,{diagram:n,isJpeg:a}),t[2]=n,t[3]=a,t[4]=o):o=t[4],o}function w(n){let r=d(56),{diagram:i,isJpeg:c}=n,l;r[0]===Symbol.for(`react.memo_cache_sentinel`)?(l={strict:!1},r[0]=l):l=r[0];let{padding:h,download:g,description:_,quality:b,dynamic:C,notation:w}=e(l),D=h===void 0?20:h,O=g===void 0?!1:g,k=_===void 0?!1:_,A=w===void 0?!1:w,j=u(null),ee=u(null),te=u(!1),M,N,P,F,I;if(r[1]!==k||r[2]!==i||r[3]!==C||r[4]!==A||r[5]!==D){M=a(i,C),F=m.from(i.description);let e=y(k)&&F.nonEmpty;I=i.title??i.id,N=i.notation?.nodes??[];let t=y(A)&&N.length>0;P=v({bounds:M,padding:D,description:e?{title:I,text:F.text}:null,notationEntries:t?N.length:0}),r[1]=k,r[2]=i,r[3]=C,r[4]=A,r[5]=D,r[6]=M,r[7]=N,r[8]=P,r[9]=F,r[10]=I}else M=r[6],N=r[7],P=r[8],F=r[9],I=r[10];let L=P,R;r[11]!==i||r[12]!==O||r[13]!==c||r[14]!==b?(R=()=>{let e=j.current;if(!O||!e||!i||te.current)return;let t=ee.current;t&&(t.style.display=`none`),te.current=!0,c?S({filename:i.id,viewport:e,quality:b??.8}):x({pngFilename:i.id,viewport:e})},r[11]=i,r[12]=O,r[13]=c,r[14]=b,r[15]=R):R=r[15];let z=R,B;r[16]===Symbol.for(`react.memo_cache_sentinel`)?(B={position:`fixed`,top:`0`,left:`0`,padding:`0`,margin:`0`,overflow:`hidden`,zIndex:2},r[16]=B):B=r[16];let V=c?`var(--mantine-color-body)`:`transparent`,H;r[17]!==L.height||r[18]!==L.width||r[19]!==V?(H={marginRight:`auto`,marginBottom:`auto`,minWidth:L.width,width:L.width,minHeight:L.height,height:L.height,background:V},r[17]=L.height,r[18]=L.width,r[19]=V,r[20]=H):H=r[20];let U;r[21]===O?U=r[22]:(U=O&&f(t,{ref:ee,visible:!0}),r[21]=O,r[22]=U);let W;r[23]===Symbol.for(`react.memo_cache_sentinel`)?(W={position:`absolute`,overflow:`hidden`},r[23]=W):W=r[23];let G=L.height-L.diagram.top,K;r[24]!==L.diagram.left||r[25]!==L.diagram.top||r[26]!==L.diagram.width||r[27]!==G?(K={top:L.diagram.top,left:L.diagram.left,width:L.diagram.width,height:G},r[24]=L.diagram.left,r[25]=L.diagram.top,r[26]=L.diagram.width,r[27]=G,r[28]=K):K=r[28];let q;r[29]===Symbol.for(`react.memo_cache_sentinel`)?(q={top:`0px`,bottom:`0px`,left:`0px`,right:`0px`},r[29]=q):q=r[29];let ne=c?`solid`:`transparent`,J;r[30]!==M||r[31]!==O||r[32]!==z||r[33]!==D?(J=()=>{if(!j.current){console.error(`viewportRef.current is null`);return}let e=Math.round(-M.x+D),t=Math.round(-M.y+D);[...j.current.querySelectorAll(`.react-flow__viewport`)].forEach(n=>{n.style.transform=`translate(`+e+`px, `+t+`px)`}),O&&window.setTimeout(z,500)},r[30]=M,r[31]=O,r[32]=z,r[33]=D,r[34]=J):J=r[34];let Y;r[35]!==i||r[36]!==C||r[37]!==ne||r[38]!==J?(Y=f(o,{view:i,fitView:!1,fitViewPadding:q,background:ne,reduceGraphics:!1,dynamicViewVariant:C,className:`likec4-static-view`,pannable:!1,zoomable:!1,controls:!1,enableNotations:!1,enableElementDetails:!1,enableRelationshipDetails:!1,enableRelationshipBrowser:!1,enableDynamicViewWalkthrough:!1,enableFocusMode:!1,enableSearch:!1,nodesSelectable:!1,enableElementTags:!1,onInitialized:J}),r[35]=i,r[36]=C,r[37]=ne,r[38]=J,r[39]=Y):Y=r[39];let X;r[40]!==K||r[41]!==Y?(X=f(s,{"data-testid":`export-diagram-area`,css:W,style:K,children:Y}),r[40]=K,r[41]=Y,r[42]=X):X=r[42];let Z;r[43]!==L.description||r[44]!==F||r[45]!==I?(Z=L.description&&f(T,{title:I,description:F,layout:L.description}),r[43]=L.description,r[44]=F,r[45]=I,r[46]=Z):Z=r[46];let Q;r[47]!==L.notation||r[48]!==N?(Q=L.notation&&f(E,{entries:N,layout:L.notation}),r[47]=L.notation,r[48]=N,r[49]=Q):Q=r[49];let $;return r[50]!==H||r[51]!==U||r[52]!==X||r[53]!==Z||r[54]!==Q?($=p(s,{ref:j,"data-testid":`export-page`,css:B,style:H,children:[U,X,Z,Q]}),r[50]=H,r[51]=U,r[52]=X,r[53]=Z,r[54]=Q,r[55]=$):$=r[55],$}function T(e){let t=d(14),{title:n,description:r,layout:a}=e,o;t[0]===a?o=t[1]:(o={...a,position:`absolute`,boxSizing:`border-box`,overflow:`hidden`,border:`1px solid var(--mantine-color-default-border)`,borderRadius:6,background:`var(--mantine-color-body)`,boxShadow:`0 4px 18px rgb(0 0 0 / 14%)`,color:`var(--mantine-color-text)`},t[0]=a,t[1]=o);let c=o,l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l={paddingTop:10,paddingBottom:4,paddingLeft:16,paddingRight:16,fontSize:15,fontWeight:600,lineHeight:`20px`,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`},t[2]=l):l=t[2];let u=l,m=a.height-10-20-4-16,h;t[3]===m?h=t[4]:(h={maxHeight:m,overflow:`hidden`,paddingLeft:16,paddingRight:16,paddingBottom:16},t[3]=m,t[4]=h);let g=h,_;t[5]===n?_=t[6]:(_=f(s,{style:u,children:n}),t[5]=n,t[6]=_);let v;t[7]!==r||t[8]!==g?(v=f(i,{value:r,hideIfEmpty:!0,fontSize:`sm`,textScale:.9,style:g}),t[7]=r,t[8]=g,t[9]=v):v=t[9];let y;return t[10]!==c||t[11]!==_||t[12]!==v?(y=p(s,{"data-testid":`export-description`,style:c,children:[_,v]}),t[10]=c,t[11]=_,t[12]=v,t[13]=y):y=t[13],y}function E(e){let t=d(12),{entries:n,layout:r}=e,i;t[0]===r?i=t[1]:(i={...r,position:`absolute`,boxSizing:`border-box`,overflow:`hidden`,border:`1px solid var(--mantine-color-default-border)`,borderRadius:6,background:`var(--mantine-color-body)`,boxShadow:`0 4px 18px rgb(0 0 0 / 14%)`,color:`var(--mantine-color-text)`},t[0]=r,t[1]=i);let a=i,o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o={height:36,display:`flex`,alignItems:`center`,paddingLeft:12,paddingRight:12,fontSize:13,fontWeight:600,borderBottom:`1px solid var(--mantine-color-default-border)`},t[2]=o):o=t[2];let c=o,l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=f(s,{style:c,children:`Notation`}),t[3]=l):l=t[3];let u;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(u={padding:12},t[4]=u):u=t[4];let m;t[5]===n?m=t[6]:(m=n.map(D),t[5]=n,t[6]=m);let h;t[7]===m?h=t[8]:(h=f(s,{style:u,children:m}),t[7]=m,t[8]=h);let g;return t[9]!==a||t[10]!==h?(g=p(s,{"data-testid":`export-notation`,style:a,children:[l,h]}),t[9]=a,t[10]=h,t[11]=g):g=t[11],g}function D(e,t){return f(O,{entry:e},`${e.title}-${t}`)}function O(e){let t=d(30),{entry:i}=e,a=n(),o;t[0]!==i.color||t[1]!==a?(o=a.colors(i.color),t[0]=i.color,t[1]=a,t[2]=o):o=t[2];let c=o.elements,l;t[3]!==c.fill||t[4]!==c.hiContrast||t[5]!==c.loContrast||t[6]!==c.stroke?(l={"--likec4-palette-fill":c.fill,"--likec4-palette-stroke":c.stroke,"--likec4-palette-hiContrast":c.hiContrast,"--likec4-palette-loContrast":c.loContrast,display:`grid`,gridTemplateColumns:`64px 1fr`,columnGap:10,alignItems:`center`,height:68,overflow:`hidden`},t[3]=c.fill,t[4]=c.hiContrast,t[5]=c.loContrast,t[6]=c.stroke,t[7]=l):l=t[7];let u=l,m;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(m={display:`flex`,flexWrap:`wrap`,gap:3,marginBottom:5,maxHeight:31,overflow:`hidden`},t[8]=m):m=t[8];let h=m,g;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(g={display:`inline-flex`,alignItems:`center`,height:14,maxWidth:`100%`,paddingLeft:4,paddingRight:4,borderRadius:2,background:`var(--likec4-palette-fill)`,color:`var(--likec4-palette-hiContrast)`,fontSize:9.5,fontWeight:500,lineHeight:1,textTransform:`lowercase`,whiteSpace:`nowrap`},t[9]=g):g=t[9];let _=g,v;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(v={overflow:`hidden`,display:`-webkit-box`,WebkitBoxOrient:`vertical`,WebkitLineClamp:2,fontSize:13,fontWeight:500,lineHeight:1.2},t[10]=v):v=t[10];let y=v,b=i.color,x;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(x={position:`relative`,width:56,height:38},t[11]=x):x=t[11];let S;t[12]===i.shape?S=t[13]:(S=f(s,{style:x,children:f(r,{data:{shape:i.shape,width:300,height:200},showSelectionOutline:!1})}),t[12]=i.shape,t[13]=S);let C;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(C={minWidth:0},t[14]=C):C=t[14];let w;if(t[15]!==i.kinds){let e;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(e=e=>f(s,{as:`span`,style:_,children:e},e),t[17]=e):e=t[17],w=i.kinds.map(e),t[15]=i.kinds,t[16]=w}else w=t[16];let T;t[18]===w?T=t[19]:(T=f(s,{style:h,children:w}),t[18]=w,t[19]=T);let E;t[20]===i.title?E=t[21]:(E=f(s,{style:y,children:i.title}),t[20]=i.title,t[21]=E);let D;t[22]!==T||t[23]!==E?(D=p(s,{css:C,children:[T,E]}),t[22]=T,t[23]=E,t[24]=D):D=t[24];let O;return t[25]!==i.color||t[26]!==u||t[27]!==D||t[28]!==S?(O=p(s,{"data-likec4-color":b,style:u,children:[S,D]}),t[25]=i.color,t[26]=u,t[27]=D,t[28]=S,t[29]=O):O=t[29],O}export{C as t};
|