@memoarchitect/architect 0.4.4 → 0.4.6
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/README.md +17 -6
- package/dist/assets/{AskPanel-BpFRMop9.js → AskPanel-D9_AKyYt.js} +1 -1
- package/dist/assets/{ComplianceWizard-DCcV-q6X.js → ComplianceWizard-BNvT_ic6.js} +1 -1
- package/dist/assets/{DSMView-OMMwi76e.js → DSMView-B4IEz19F.js} +1 -1
- package/dist/assets/{Dashboard-Dl5KU656.js → Dashboard-DNRzU1Hk.js} +1 -1
- package/dist/assets/{DhfDashboard-agI5JdAZ.js → DhfDashboard-DguH-rDT.js} +1 -1
- package/dist/assets/{DhfSettingsPanel-CKvGmNGe.js → DhfSettingsPanel-C89T0dv7.js} +1 -1
- package/dist/assets/{DhfWorkbench-BD_buvXh.js → DhfWorkbench-4gHayn-l.js} +3 -3
- package/dist/assets/{DiagramCanvas-CUYbaLjV.js → DiagramCanvas-BgfO0AtP.js} +1 -1
- package/dist/assets/{DiagramEditor-DZAocSs_.js → DiagramEditor-CEr6iqBf.js} +1 -1
- package/dist/assets/{DiagramSurface-BIK9fV8R.js → DiagramSurface-B_lfUNzV.js} +2 -2
- package/dist/assets/{ElementDetailView-R_Nob9E0.js → ElementDetailView-AclSjurg.js} +1 -1
- package/dist/assets/{ImportView-yxS8JfX4.js → ImportView-t1dIoZF5.js} +1 -1
- package/dist/assets/{LayerGrid-DdEtHyAu.js → LayerGrid-fSGvqSEj.js} +1 -1
- package/dist/assets/{LayerTable-dOCvwCEb.js → LayerTable-D8QCFY1b.js} +1 -1
- package/dist/assets/{MaxGraphCanvas-CDdlW8h_.js → MaxGraphCanvas-DYs6MPuP.js} +1 -1
- package/dist/assets/{ModelDiff-BbdzLhXe.js → ModelDiff-CLFqnELG.js} +1 -1
- package/dist/assets/{OntologyDecompositionDiagram-BW07CXuV.js → OntologyDecompositionDiagram-cpmTTMRH.js} +1 -1
- package/dist/assets/{OntologyViewer-DaRXEQoq.js → OntologyViewer-72jTw72H.js} +2 -2
- package/dist/assets/{ReviewDashboard-CipgA5-r.js → ReviewDashboard-BVOe2I5w.js} +1 -1
- package/dist/assets/{ScenarioEditor-BfewgrrJ.js → ScenarioEditor-CvOkiRC6.js} +1 -1
- package/dist/assets/{StatisticsDashboard-CLww46qL.js → StatisticsDashboard-Dn6lsnKe.js} +1 -1
- package/dist/assets/{SysmlGenerator-DnsaN-ey.js → SysmlGenerator-CfBQWovl.js} +1 -1
- package/dist/assets/{TabularView-Bp-yKFPV.js → TabularView-B99xy3H3.js} +1 -1
- package/dist/assets/{TraceabilityMatrix-B-dn_i5a.js → TraceabilityMatrix-BAJb0X7G.js} +1 -1
- package/dist/assets/{WorkflowWizard-C6p5e2IT.js → WorkflowWizard-C38DZKOe.js} +1 -1
- package/dist/assets/{index-c27kHB43.js → index-CgRwea72.js} +12 -12
- package/dist/assets/{index-BZhRuk7M.css → index-CnFhl4_e.css} +1 -1
- package/dist/assets/{layout-selection-DvOsyJH9.js → layout-selection-BQ2WuAEB.js} +1 -1
- package/dist/index.html +2 -2
- package/lib/bin/memo-architect.js +0 -0
- package/package.json +34 -33
|
@@ -1 +1 @@
|
|
|
1
|
-
/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-500:oklch(63.7% .237 25.331);--color-slate-50:oklch(98.4% .003 247.858);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-3{top:calc(var(--spacing) * 3)}.top-16{top:calc(var(--spacing) * 16)}.top-full{top:100%}.right-0{right:calc(var(--spacing) * 0)}.right-3{right:calc(var(--spacing) * 3)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-12{bottom:calc(var(--spacing) * 12)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.left-full{left:100%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.-mx-6{margin-inline:calc(var(--spacing) * -6)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-full{height:100%}.h-screen{height:100vh}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-20{width:calc(var(--spacing) * 20)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[80px\]{min-width:80px}.min-w-\[140px\]{min-width:140px}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.bg-slate-50{background-color:var(--color-slate-50)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-24{padding-top:calc(var(--spacing) * 24)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-all{word-break:break-all}.text-red-500{color:var(--color-red-500)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}@media(min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}:root{--color-bg:#f7f7f5;--color-surface:#fff;--color-surface-alt:#f0f0ed;--color-border:#e5e5e0;--color-border-light:#ededea;--color-text:#1a1a1a;--color-text-secondary:#6b7280;--color-text-muted:#9ca3af;--color-accent:#2dd4a8;--color-hero-from:#1b3a4b;--color-hero-to:#2d6a7a}body{background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif}#root{flex-direction:column;height:100vh;display:flex}.react-flow__controls{overflow:hidden;border:1px solid #e5e5e0!important;border-radius:12px!important;box-shadow:0 1px 3px #0000000f!important}.react-flow__controls-button{fill:#6b7280!important;background:#fff!important;border-bottom:1px solid #ededea!important}.react-flow__controls-button:hover{background:#f0f0ed!important}.react-flow__minimap{overflow:hidden;border:1px solid #e5e5e0!important;border-radius:12px!important;box-shadow:0 1px 3px #0000000f!important}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#9ca3af}.react-flow__node{transition:box-shadow .15s,opacity .15s}.ibd-interconnection-edge .react-flow__edge-interaction{pointer-events:none}@keyframes memo-ibd-flow{to{stroke-dashoffset:-30px}}.memo-ibd-flow{stroke-dasharray:8 7;pointer-events:none;animation:.7s linear infinite memo-ibd-flow}@media(prefers-reduced-motion:reduce){.memo-ibd-flow{animation:none}}.react-flow__edge path{transition:stroke-width .15s}.react-flow__edge:hover path{stroke-width:3px}.react-flow__node:hover .react-flow__handle{opacity:1!important}.react-flow__node:hover .react-flow__handle.ibd-port-anchor,.react-flow__handle.ibd-port-anchor{opacity:0!important;pointer-events:none!important}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}
|
|
1
|
+
/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-500:oklch(63.7% .237 25.331);--color-slate-50:oklch(98.4% .003 247.858);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-3{top:calc(var(--spacing) * 3)}.top-16{top:calc(var(--spacing) * 16)}.top-full{top:100%}.right-0{right:calc(var(--spacing) * 0)}.right-3{right:calc(var(--spacing) * 3)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-12{bottom:calc(var(--spacing) * 12)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.left-full{left:100%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.-mx-6{margin-inline:calc(var(--spacing) * -6)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-full{height:100%}.h-screen{height:100vh}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-20{width:calc(var(--spacing) * 20)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[80px\]{min-width:80px}.min-w-\[140px\]{min-width:140px}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.bg-slate-50{background-color:var(--color-slate-50)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-24{padding-top:calc(var(--spacing) * 24)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-all{word-break:break-all}.text-red-500{color:var(--color-red-500)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}@media(min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}:root{--color-bg:#f7f7f5;--color-surface:#fff;--color-surface-alt:#f0f0ed;--color-border:#e5e5e0;--color-border-light:#ededea;--color-text:#1a1a1a;--color-text-secondary:#6b7280;--color-text-muted:#9ca3af;--color-accent:#2dd4a8;--color-hero-from:#1b3a4b;--color-hero-to:#2d6a7a}body{background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif}#root{flex-direction:column;height:100vh;display:flex}.react-flow__controls{overflow:hidden;border:1px solid #e5e5e0!important;border-radius:12px!important;box-shadow:0 1px 3px #0000000f!important}.react-flow__controls-button{fill:#6b7280!important;background:#fff!important;border-bottom:1px solid #ededea!important}.react-flow__controls-button:hover{background:#f0f0ed!important}.react-flow__minimap{overflow:hidden;border:1px solid #e5e5e0!important;border-radius:12px!important;box-shadow:0 1px 3px #0000000f!important}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#9ca3af}.react-flow__node{transition:box-shadow .15s,opacity .15s}.ibd-interconnection-edge .react-flow__edge-interaction{pointer-events:none}@keyframes memo-ibd-flow{to{stroke-dashoffset:-30px}}.memo-ibd-flow{stroke-dasharray:8 7;pointer-events:none;animation:.7s linear infinite memo-ibd-flow}@media(prefers-reduced-motion:reduce){.memo-ibd-flow{animation:none}}.react-flow__edge path{transition:stroke-width .15s}.react-flow__edge:hover path{stroke-width:3px}.react-flow__node:hover .react-flow__handle{opacity:1!important}.react-flow__node:hover .react-flow__handle.ibd-port-anchor,.react-flow__handle.ibd-port-anchor{opacity:0!important;pointer-events:none!important}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as Me,E as j,R as Te,p as lt,q as Ft,F as U,V as _t,u as ze}from"./index-c27kHB43.js";import{r as Xt,D as Vt}from"./layout-providers-BAUgp0nu.js";import{j as k}from"./reactflow-WKyu73tD.js";import{a as ie}from"./zustand-qbFpP9Up.js";const De=new Set(["composedOf","composes","decomposedBy","aggregation"]);function Ye(t,e){const n=new Map;for(const l of t)n.set(l.id,l);const o=new Map,s=new Set;for(const l of e)De.has(l.type)&&(!n.has(l.sourceId)||!n.has(l.targetId)||l.sourceId!==l.targetId&&(s.has(l.targetId)||(o.has(l.sourceId)||o.set(l.sourceId,[]),o.get(l.sourceId).push(l.targetId),s.add(l.targetId))));return{roots:[...n.keys()].filter(l=>!s.has(l)),childrenMap:o,elements:n}}function lo(t){if(t.elements.size===0)return null;const e=new Set,n=s=>{if(!e.has(s)){e.add(s);for(const i of t.childrenMap.get(s)??[])n(i)}};t.roots[0]&&n(t.roots[0]);const o=[...t.elements.keys()].filter(s=>!e.has(s));return t.roots.length===1&&o.length===0?null:{rootIds:t.roots,disconnectedIds:o}}const qt=new Set(["name","title","description","shortDescription","longDescription","sourceReference","rationaleText","semantics","protocolSemantics","queryDescription","dataSourceDescription","documentUsage","doc"]);function Ut(t,e=4){const n=[];t.shortId&&n.push({key:"id",value:t.shortId});for(const[o,s]of Object.entries(t.attributes)){if(n.length>=e)break;if(qt.has(o)||o.includes(".")||o==="id"&&n.some(l=>l.key==="id"))continue;const i=s.split("::").pop().trim();!i||i.length>28||n.push({key:o,value:i})}return n.slice(0,e)}const Ae={layout:(t,e)=>Xt(t,e)},Zt=(t,e,n,o=10)=>{const s=n.x-o,i=n.x+n.width+o,l=n.y-o,g=n.y+n.height+o;return t.y===e.y?t.y>=l&&t.y<=g&&Math.max(t.x,e.x)>=s&&Math.min(t.x,e.x)<=i:t.x===e.x?t.x>=s&&t.x<=i&&Math.max(t.y,e.y)>=l&&Math.min(t.y,e.y)<=g:!1},Pt=(t,e,n,o)=>t.y===e.y&&n.y===o.y&&t.y===n.y?Math.max(Math.min(t.x,e.x),Math.min(n.x,o.x))<Math.min(Math.max(t.x,e.x),Math.max(n.x,o.x)):t.x===e.x&&n.x===o.x&&t.x===n.x?Math.max(Math.min(t.y,e.y),Math.min(n.y,o.y))<Math.min(Math.max(t.y,e.y),Math.max(n.y,o.y)):!1,Dt=(t,e,n,o)=>{const s=t.y===e.y,i=n.y===o.y;if(s===i)return!1;const l=s?t:n,g=s?e:o,a=s?n:t,d=s?o:e;return a.x>Math.min(l.x,g.x)&&a.x<Math.max(l.x,g.x)&&l.y>Math.min(a.y,d.y)&&l.y<Math.max(a.y,d.y)};function Lt(t,e,n=18){const o=new Map,s=[],i=Math.max(12,n*.75),l=[...t].sort((g,a)=>Math.abs(a.source.x-a.target.x)+Math.abs(a.source.y-a.target.y)-(Math.abs(g.source.x-g.target.x)+Math.abs(g.source.y-g.target.y)));for(const g of l){const{source:a,target:d}=g,u=e.filter(y=>y.id!==g.sourceNodeId&&y.id!==g.targetNodeId),r=new Set([a.x,d.x,(a.x+d.x)/2,a.x-n,a.x+n,d.x-n,d.x+n]),p=new Set([a.y,d.y,(a.y+d.y)/2,a.y-n,a.y+n,d.y-n,d.y+n]);for(const y of u)r.add(y.x-i),r.add(y.x+y.width+i),p.add(y.y-i),p.add(y.y+y.height+i);for(const[y,b]of s)r.add(y.x),r.add(b.x),p.add(y.y),p.add(b.y);const w=[...r].sort((y,b)=>y-b),h=[...p].sort((y,b)=>y-b),m=[],c=new Map,M=(y,b)=>`${y.toFixed(3)}:${b.toFixed(3)}`,N=y=>u.some(b=>y.x>b.x-i&&y.x<b.x+b.width+i&&y.y>b.y-i&&y.y<b.y+b.height+i);for(const y of h)for(const b of w){const E={x:b,y};N(E)&&M(b,y)!==M(a.x,a.y)&&M(b,y)!==M(d.x,d.y)||(c.set(M(b,y),m.length),m.push(E))}const S=new Map,I=(y,b)=>{S.has(y)||S.set(y,[]),S.has(b)||S.set(b,[]),S.get(y).push(b),S.get(b).push(y)},R=(y,b)=>!u.some(E=>Zt(y,b,E,i-1));for(const y of h){const b=w.map(E=>c.get(M(E,y))).filter(E=>E!==void 0);for(let E=1;E<b.length;E++)R(m[b[E-1]],m[b[E]])&&I(b[E-1],b[E])}for(const y of w){const b=h.map(E=>c.get(M(y,E))).filter(E=>E!==void 0);for(let E=1;E<b.length;E++)R(m[b[E-1]],m[b[E]])&&I(b[E-1],b[E])}const v=c.get(M(a.x,a.y)),te=c.get(M(d.x,d.y)),J=(y,b)=>`${y}:${b}`,W=v===void 0?[]:[{node:v,dir:"N",g:0,f:Math.abs(a.x-d.x)+Math.abs(a.y-d.y)}],X=new Map(v===void 0?[]:[[J(v,"N"),0]]),V=new Map;W[0]&&V.set(J(W[0].node,W[0].dir),W[0]);let re;const oe=(y,b,E)=>!E||E==="left"&&b.x<y.x||E==="right"&&b.x>y.x||E==="top"&&b.y<y.y||E==="bottom"&&b.y>y.y;for(;W.length>0;){W.sort((b,E)=>b.f-E.f);const y=W.shift();if(y.node===te){re=y;break}for(const b of S.get(y.node)??[]){const E=m[y.node],O=m[b];if(y.node===v&&!oe(E,O,g.sourceSide)||b===te&&!oe(O,E,g.targetSide))continue;const D=E.y===O.y?"H":"V",T=Math.abs(E.x-O.x)+Math.abs(E.y-O.y);let F=y.dir!=="N"&&y.dir!==D?90:0;for(const[ye,Oe]of s)Pt(E,O,ye,Oe)?F+=4e3:Dt(E,O,ye,Oe)&&(F+=600);const B=Math.abs(E.x-d.x)+Math.abs(E.y-d.y),ae=Math.abs(O.x-d.x)+Math.abs(O.y-d.y);ae>B&&(F+=(ae-B)*1.5);const Z=y.g+T+F,ne=J(b,D);if(Z>=(X.get(ne)??Number.POSITIVE_INFINITY))continue;const fe={node:b,dir:D,g:Z,f:Z+ae,parent:J(y.node,y.dir)};X.set(ne,Z),V.set(ne,fe),W.push(fe)}}let Q=[];if(re){let y=re;for(;y;)Q.push(m[y.node]),y=y.parent?V.get(y.parent):void 0;Q.reverse()}if(Q.length<2){const y=(a.x+d.x)/2;Q=[a,{x:y,y:a.y},{x:y,y:d.y},d]}const x=Q.filter((y,b)=>b===0||b===Q.length-1||!(Q[b-1].x===y.x&&y.x===Q[b+1].x||Q[b-1].y===y.y&&y.y===Q[b+1].y));o.set(g.id,x);for(let y=1;y<x.length;y++)s.push([x[y-1],x[y]])}return o}function Jt(t,e,n=1.5){if(t<=0||e<=0)return Number.POSITIVE_INFINITY;const o=1+1.35*Math.abs(Math.log(t/e/n));return t*e*o}function Qt(t,e=1.25){return t<=1?Math.max(t,1):Math.min(t,Math.max(2,Math.round(Math.sqrt(t*e))))}function Rt(t,e){const n=new Set(t.map(d=>d.id)),o=new Map,s=new Map(t.map(d=>[d.id,0]));for(const d of e)!n.has(d.source)||!n.has(d.target)||d.source===d.target||(o.has(d.source)||o.set(d.source,[]),o.get(d.source).push(d.target),s.set(d.target,(s.get(d.target)??0)+1));const i=t.map(d=>d.id),l=i.filter(d=>(s.get(d)??0)===0),g=[],a=new Set;for(;l.length;){const d=l.shift();if(!a.has(d)){a.add(d),g.push(d);for(const u of o.get(d)??[])s.set(u,(s.get(u)??1)-1),s.get(u)===0&&l.push(u)}}for(const d of i)a.has(d)||g.push(d);return g}function en(t,e,n,o,s){const i=new Map(t.map(m=>[m.id,m])),l=Rt(t,e).map(m=>i.get(m)),g=Qt(t.length,s),a=Math.ceil(t.length/g),d=l.map((m,c)=>{const M=Math.floor(c/g),N=c%g,S=M%2===0?N:g-1-N;return{node:m,row:M,col:S}}),u=Array.from({length:g},()=>0),r=Array.from({length:a},()=>0);for(const{node:m,row:c,col:M}of d)u[M]=Math.max(u[M],m.width),r[c]=Math.max(r[c],m.height);const p=u.map((m,c)=>c===0?0:u.slice(0,c).reduce((M,N)=>M+N,0)+n*c),w=r.map((m,c)=>c===0?0:r.slice(0,c).reduce((M,N)=>M+N,0)+o*c),h=d.map(({node:m,row:c,col:M})=>({...m,x:p[M]+(u[M]-m.width)/2,y:w[c]+(r[c]-m.height)/2}));return{strategy:"balanced-board",width:u.reduce((m,c)=>m+c,0)+n*Math.max(g-1,0),height:r.reduce((m,c)=>m+c,0)+o*Math.max(a-1,0),children:h}}function tn(t,e,n,o){const s={x:t.x+t.width/2,y:t.y+t.height/2},i={x:e.x+e.width/2,y:e.y+e.height/2},l={x:n.x+n.width/2,y:n.y+n.height/2},g={x:o.x+o.width/2,y:o.y+o.height/2},a=(d,u,r)=>(u.x-d.x)*(r.y-d.y)-(u.y-d.y)*(r.x-d.x);return a(s,i,l)*a(s,i,g)<0&&a(l,g,s)*a(l,g,i)<0}function dt(t,e,n=1.5){const o=new Map(t.children.map(h=>[h.id,h]));let s=0,i=0,l=0,g=0;const a=e.filter(h=>o.has(h.source)&&o.has(h.target));for(const h of a){const m=o.get(h.source),c=o.get(h.target);s+=Math.abs(m.x+m.width/2-(c.x+c.width/2))+Math.abs(m.y+m.height/2-(c.y+c.height/2));const M=c.x+c.width/2-(m.x+m.width/2),N=Math.abs(c.y+c.height/2-(m.y+m.height/2));M<=0&&(l+=55e3),l+=Math.max(0,N-Math.max(M,0))*80,Math.abs(M)>8&&N>8&&(g+=18e3)}for(let h=0;h<a.length;h++)for(let m=h+1;m<a.length;m++){const c=a[h],M=a[m];c.source===M.source||c.source===M.target||c.target===M.source||c.target===M.target||tn(o.get(c.source),o.get(c.target),o.get(M.source),o.get(M.target))&&i++}const d=Lt(a.map(h=>{const m=o.get(h.source),c=o.get(h.target);return{id:h.id,source:{x:m.x+m.width,y:m.y+m.height/2},target:{x:c.x,y:c.y+c.height/2},sourceNodeId:h.source,targetNodeId:h.target,sourceSide:"right",targetSide:"left"}}),t.children);let u=0,r=0,p=0;const w=[];for(const[h,m]of d){r+=Math.max(0,m.length-2);for(let c=1;c<m.length;c++)u+=Math.abs(m[c].x-m[c-1].x)+Math.abs(m[c].y-m[c-1].y),w.push({edgeId:h,a:m[c-1],b:m[c]})}for(let h=0;h<w.length;h++)for(let m=h+1;m<w.length;m++){const c=w[h],M=w[m];c.edgeId!==M.edgeId&&(Pt(c.a,c.b,M.a,M.b)||Dt(c.a,c.b,M.a,M.b))&&p++}return Jt(t.width,t.height,n)+s*18+l+g+i*Math.max(t.width*t.height*.35,5e4)+u*6+r*4e3+p*Math.max(t.width*t.height*.45,7e4)}async function ht(t){const{nodes:e,edges:n}=t;if(e.length===0)return{strategy:"balanced-board",width:0,height:0,children:[]};const o=t.targetAspect??1.5,s=t.gapX??54,i=t.gapY??58,l=a=>{const d=new Map(e.map(c=>[c.id,c])),u=Rt(e,n).map(c=>d.get(c));let r=0;const p=Math.max(...a==="RIGHT"?u.map(c=>c.height):u.map(c=>c.width));let w=u.map(c=>{const M={...c,x:a==="RIGHT"?r:(p-c.width)/2,y:a==="DOWN"?r:(p-c.height)/2};return r+=a==="RIGHT"?c.width+s:c.height+i,M});if(a==="RIGHT"&&n.some(c=>c.sourceAnchorY!==void 0&&c.targetAnchorY!==void 0)){new Map(w.map(I=>[I.id,I]));const c=new Map,M=[...w].sort((I,R)=>R.width*R.height-I.width*I.height)[0];c.set(M.id,0);let N=!0;for(;N;){N=!1;for(const I of n){if(I.sourceAnchorY===void 0||I.targetAnchorY===void 0)continue;const R=c.get(I.source),v=c.get(I.target);R!==void 0&&v===void 0?(c.set(I.target,R+I.sourceAnchorY-I.targetAnchorY),N=!0):v!==void 0&&R===void 0&&(c.set(I.source,v+I.targetAnchorY-I.sourceAnchorY),N=!0)}}w=w.map(I=>({...I,y:c.get(I.id)??I.y}));const S=Math.min(...w.map(I=>I.y));w=w.map(I=>({...I,y:I.y-S}))}const h=Math.max(...w.map(c=>c.x+c.width)),m=Math.max(...w.map(c=>c.y+c.height));return{strategy:a==="RIGHT"?"layered-right":"layered-down",width:h,height:m,children:w}};if(t.directedFlowAxis==="RIGHT")return l("RIGHT");if(t.directedFlowAxis==="DOWN")return l("DOWN");const g=[en(e,n,s,i,o),l("RIGHT"),l("DOWN")];if(e.length>=3&&n.length>0)try{const d=(await Ae.layout({id:`resolver-${t.id}`,layoutOptions:{"elk.algorithm":"layered","elk.direction":"RIGHT","elk.edgeRouting":"ORTHOGONAL","elk.aspectRatio":String(o),"elk.padding":"[top=0,left=0,bottom=0,right=0]","elk.spacing.nodeNode":String(i),"elk.layered.spacing.nodeNodeBetweenLayers":String(s),"elk.layered.nodePlacement.strategy":"BRANDES_KOEPF","elk.layered.nodePlacement.favorStraightEdges":"true","elk.layered.crossingMinimization.strategy":"LAYER_SWEEP","elk.layered.wrapping.strategy":"MULTI_EDGE","elk.layered.wrapping.additionalEdgeSpacing":"18","elk.separateConnectedComponents":"true","elk.layered.considerModelOrder.strategy":"NODES_AND_EDGES","elk.randomSeed":"1"},children:e.map(u=>({id:u.id,width:u.width,height:u.height})),edges:n.map(u=>({id:u.id,sources:[u.source],targets:[u.target]}))},{providerId:t.layoutProviderId})).children??[];if(d.length===e.length){const u=new Map(e.map(h=>[h.id,h])),r=Math.min(...d.map(h=>h.x??0)),p=Math.min(...d.map(h=>h.y??0)),w=d.map(h=>({...u.get(h.id),x:(h.x??0)-r,y:(h.y??0)-p}));g.push({strategy:"elk-layered",width:Math.max(...w.map(h=>h.x+h.width)),height:Math.max(...w.map(h=>h.y+h.height)),children:w})}}catch{}return g.reduce((a,d)=>dt(d,n,o)<dt(a,n,o)?d:a)}async function nn(t,e){var N;const n=Object.values(t.elements),o=e!=null&&e.viewpointFilter?n.filter(e.viewpointFilter):n,s=new Set(o.map(S=>S.id)),i=(N=e==null?void 0:e.relationshipTypes)!=null&&N.length?new Set(e.relationshipTypes.map(S=>S.toLowerCase())):void 0,l=t.relationships.filter(S=>s.has(S.sourceId)&&s.has(S.targetId)&&(!i||i.has(S.type.toLowerCase()))),g=o.length,a=g>60?"RIGHT":"DOWN",d=g>40?"24":g>20?"32":"40",u=g>40?"60":g>20?"80":"100",r=e!=null&&e.compartments?new Map(o.map(S=>[S.id,Ut(S)])):void 0,p=S=>Math.max(S.name.length*7.5+48,S.kind.length*6.8+48,130),w=S=>{const I=r==null?void 0:r.get(S.id);return 52+(I!=null&&I.length?I.length*15+10:0)},h={id:"root",layoutOptions:{"elk.algorithm":"layered","elk.direction":a,"elk.spacing.nodeNode":d,"elk.layered.spacing.nodeNodeBetweenLayers":u,"elk.layered.spacing.edgeNodeBetweenLayers":"24","elk.layered.considerModelOrder.strategy":"NODES_AND_EDGES","elk.layered.nodePlacement.strategy":"NETWORK_SIMPLEX","elk.layered.crossingMinimization.strategy":"LAYER_SWEEP","elk.layered.compaction.postCompaction.strategy":"EDGE_LENGTH","elk.layered.wrapping.strategy":"MULTI_EDGE","elk.layered.wrapping.additionalEdgeSpacing":"16","elk.separateConnectedComponents":"true","elk.spacing.componentComponent":"56","elk.aspectRatio":"1.6","elk.padding":"[top=20, left=20, bottom=20, right=20]"},children:o.map(S=>({id:S.id,width:p(S),height:w(S)})),edges:l.map((S,I)=>({id:S.id||`e-${I}`,sources:[S.sourceId],targets:[S.targetId]}))};let m;try{m=await Ae.layout(h,{providerId:e==null?void 0:e.layoutProviderId})}catch(S){console.warn("ELK layout failed, retrying without edge wrapping:",S),delete h.layoutOptions["elk.layered.wrapping.strategy"],delete h.layoutOptions["elk.layered.wrapping.additionalEdgeSpacing"],m=await Ae.layout(h,{providerId:e==null?void 0:e.layoutProviderId})}const c=(m.children||[]).map(S=>{const I=t.elements[S.id],R=Me[I==null?void 0:I.layer]||"#666",v=r==null?void 0:r.get(S.id);return{id:S.id,type:"diagramNode",position:{x:S.x||0,y:S.y||0},data:{label:(I==null?void 0:I.name)||S.id,kind:(I==null?void 0:I.kind)??"",layer:(I==null?void 0:I.layer)??"",construct:I==null?void 0:I.construct,color:R,...v!=null&&v.length?{compartments:v}:{}}}}),M=l.map((S,I)=>{const R=Te[S.type]||"#9CA3AF",v=S.type.toLowerCase(),te=S.type==="flow",J=S.type==="succession",W=v==="composedof"||v==="decomposedby"||v==="aggregation"||v==="composes";return{id:S.id||`e-${I}`,source:S.sourceId,target:S.targetId,label:W?void 0:S.type,type:J?"smoothstep":"default",animated:te,style:{stroke:R,strokeWidth:W?2.5:te?2:j.defaultWidth,strokeDasharray:W||te?void 0:S.type==="traceTo"?"5 3":void 0},labelStyle:{fontSize:"10px",fill:"#6B7280",fontWeight:500},labelBgPadding:j.labelBgPadding,labelBgBorderRadius:j.labelBgRadius,labelBgStyle:j.labelBgStyle,markerEnd:{type:W?"arrow":"arrowclosed",color:R,width:j.arrowSize,height:j.arrowSize}}});return{nodes:c,edges:M}}const Bt=new Set;for(const t of Ft)if(["logical","physical"].includes(t.id))for(const e of t.kinds)Bt.add(e);function jt(t){const e=new Map;for(const i of Object.values(t.elements))Bt.has(i.kind)&&e.set(i.id,i);const n=new Map,o=new Set;for(const i of t.relationships)(i.type==="composedOf"||i.type==="aggregation")&&e.has(i.sourceId)&&e.has(i.targetId)&&(n.has(i.sourceId)||n.set(i.sourceId,[]),n.get(i.sourceId).push(i.targetId),o.add(i.targetId));return{roots:[...e.keys()].filter(i=>!o.has(i)),childrenMap:n,elements:e}}const we=64,Be=100,ut=110,gt=300,ft=44;function qe(t){return Math.max(t.name.length*8+80,220)}async function on(t,e){const n=e.tree??jt(t);if(n.roots.length===0)return{nodes:[],edges:[]};const o=e.positionCache??new Map,s=p=>e.nodeDirections.get(p)||"vertical",i=p=>(n.childrenMap.get(p)||[]).filter(w=>n.elements.has(w)),l=p=>{const w=n.elements.get(p),h=qe(w),m=i(p);if(!e.expandedNodes.has(p)||m.length===0)return{width:h,height:we};const c=m.map(l);if(s(p)==="vertical"){const S=c.reduce((R,v)=>R+v.width,0)+(c.length-1)*Be,I=Math.max(...c.map(R=>R.height));return{width:Math.max(h,S),height:we+ut+I}}const M=Math.max(...c.map(S=>S.width)),N=c.reduce((S,I)=>S+I.height,0)+(c.length-1)*ft;return{width:h+gt+M,height:Math.max(we,N)}},g=[],a=[],d=Te.composedOf,u=(p,w,h,m)=>{const c=n.elements.get(p),M=qe(c),N=i(p),S=e.expandedNodes.has(p);let I=o.get(p);I||(I={x:h-M/2,y:m-we/2},o.set(p,I));const R={element:c,layerColor:Me[c.layer]||"#666",isExpanded:S,hasChildren:N.length>0,childCount:N.length,direction:s(p),onToggleExpand:()=>e.callbacks.onToggleExpand(p),onToggleDirection:()=>e.callbacks.onToggleDirection(p),showDirectionButton:!0,label:c.name};if(g.push({id:p,type:"decompositionNode",position:{x:I.x,y:I.y},data:R,style:{width:M,height:we}}),w){const te=s(w);a.push({id:`decomp-${w}-${p}`,source:w,target:p,sourceHandle:te==="vertical"?"bottom":"right",targetHandle:te==="vertical"?"top":"left",type:"smoothstep",style:{stroke:d,strokeWidth:j.defaultWidth},markerEnd:{type:"arrowclosed",color:d,width:j.arrowSize,height:j.arrowSize}})}if(!S||N.length===0)return;const v=N.map(l);if(s(p)==="vertical"){const te=v.reduce((X,V)=>X+V.width,0)+(v.length-1)*Be;let J=I.x+M/2-te/2;const W=I.y+we+ut+we/2;N.forEach((X,V)=>{u(X,p,J+v[V].width/2,W),J+=v[V].width+Be})}else{const te=I.x+M+gt;let J=I.y+we+20;N.forEach((W,X)=>{const V=n.elements.get(W);u(W,p,te+qe(V)/2,J+we/2),J+=v[X].height+ft})}};let r=0;for(const p of n.roots){if(!n.elements.has(p))continue;const w=l(p);u(p,null,r+w.width/2,100),r+=w.width+Be*2}return{nodes:g,edges:a}}const Ue=240,Ze=80,Ee=20;function sn(t,e){const n=e.tree??jt(t);if(n.roots.length===0)return{nodes:[],edges:[]};const o=[];function s(r,p,w,h,m){const c=n.elements.get(r);if(!c)return{width:0,height:0};const M=Me[c.layer]||"#666",N=n.childrenMap.get(r)||[],S=N.length>0,I=e.expandedNodes.has(r);let R=Ue,v=Ze;if(I&&S){let W=Ee,X=Ze+Ee,V=0,re=0;for(const oe of N){if(!n.elements.has(oe))continue;const Q=s(oe,r,w+1,W,X);W+Q.width>800&&W>Ee&&(W=Ee,X+=V+Ee,V=0,i(oe),s(oe,r,w+1,W,X)),W+=Q.width+Ee,V=Math.max(V,Q.height),re=Math.max(re,W)}R=Math.max(Ue,re),v=X+V+Ee}const te=lt[w%lt.length],J={element:c,layerColor:M,isExpanded:I,hasChildren:S,childCount:N.length,direction:"vertical",onToggleExpand:()=>e.callbacks.onToggleExpand(r),onToggleDirection:()=>{},showDirectionButton:!1,depthBgColor:te,isContainer:S,label:c.name};return o.push({id:r,type:"decompositionNode",position:{x:h,y:m},...p?{parentId:p,extent:"parent"}:{},data:J,style:{width:I&&S?R:Ue,height:I&&S?v:Ze}}),{width:R,height:v}}function i(r){const p=new Set([r]),w=h=>{for(const m of n.childrenMap.get(h)||[])p.add(m),w(m)};w(r);for(let h=o.length-1;h>=0;h--)p.has(o[h].id)&&o.splice(h,1)}let l=0;for(const r of n.roots){if(!n.elements.has(r))continue;const p=s(r,null,0,l,0);l+=p.width+40}const g=new Map(o.map(r=>[r.id,r])),a=[],d=new Set,u=r=>{if(d.has(r.id))return;const p=r.parentId?g.get(r.parentId):void 0;p&&u(p),d.add(r.id),a.push(r)};for(const r of o)u(r);return{nodes:a,edges:[]}}const Ht=new Set;for(const t of Ft)if(t.id==="functions")for(const e of t.kinds)Ht.add(e);function rn(t){const e=new Map;for(const i of Object.values(t.elements))Ht.has(i.kind)&&e.set(i.id,i);const n=new Map,o=new Set;for(const i of t.relationships)(i.type==="decomposedBy"||i.type==="composedOf")&&e.has(i.sourceId)&&e.has(i.targetId)&&(n.has(i.sourceId)||n.set(i.sourceId,[]),n.get(i.sourceId).push(i.targetId),o.add(i.targetId));return{roots:[...e.keys()].filter(i=>!o.has(i)),childrenMap:n,elements:e}}async function ho(t,e){const n=rn(t);if(n.roots.length===0)return{nodes:[],edges:[]};const o=new Set,s=[];function i(u){if(n.elements.has(u)&&(o.add(u),e.expandedNodes.has(u)))for(const r of n.childrenMap.get(u)||[])n.elements.has(r)&&(s.push({parentId:u,childId:r}),i(r))}for(const u of n.roots)i(u);const l={id:"root",layoutOptions:{"elk.algorithm":"mrtree","elk.direction":"DOWN","elk.spacing.nodeNode":"40","elk.mrtree.searchOrder":"DFS"},children:[...o].map(u=>{const r=n.elements.get(u);return{id:u,width:Math.max(r.name.length*8+80,220),height:56}}),edges:s.map((u,r)=>({id:`fbs-${r}`,sources:[u.parentId],targets:[u.childId]}))},a=((await Ae.layout(l,{providerId:e.layoutProviderId})).children||[]).map(u=>{const r=n.elements.get(u.id),p=Me[r.layer]||"#E67E22",w=(n.childrenMap.get(u.id)||[]).length,h=e.nodeDirections.get(u.id)||"vertical",m={element:r,layerColor:p,isExpanded:e.expandedNodes.has(u.id),hasChildren:w>0,childCount:w,direction:h,onToggleExpand:()=>e.callbacks.onToggleExpand(u.id),onToggleDirection:()=>e.callbacks.onToggleDirection(u.id),showDirectionButton:!0,label:r.name};return{id:u.id,type:"decompositionNode",position:{x:u.x||0,y:u.y||0},data:m}}),d=s.map((u,r)=>{const p=e.nodeDirections.get(u.parentId)||"vertical";return{id:`fbs-e-${r}`,source:u.parentId,target:u.childId,sourceHandle:p==="vertical"?"bottom":"right",targetHandle:p==="vertical"?"top":"left",type:"default",style:{stroke:Te.decomposedBy,strokeWidth:j.defaultWidth},markerEnd:{type:"arrowclosed",color:Te.decomposedBy,width:j.arrowSize,height:j.arrowSize}}});return{nodes:a,edges:d}}const uo=["graph","tree","containment"];function go(t){const e=t==null?void 0:t.layoutHint;return e==="tree"||e==="containment"||e==="graph"?e:"graph"}function an(t,e){const n=Object.values(t.elements);return e?n.filter(e):n}function cn(t,e){return Ye(an(t,e),t.relationships)}async function fo(t,e){if(e.mode==="graph")return nn(t,{viewpointFilter:e.viewpointFilter,relationshipTypes:e.relationshipTypes,compartments:!0,layoutProviderId:e.layoutProviderId});const n=cn(t,e.viewpointFilter);return e.mode==="tree"?on(t,{expandedNodes:e.expandedNodes,nodeDirections:e.nodeDirections,callbacks:e.callbacks,tree:n,positionCache:e.positionCache}):sn(t,{expandedNodes:e.expandedNodes,callbacks:{onToggleExpand:e.callbacks.onToggleExpand},tree:n})}const mt="__inner",mo={in:"#16A34A",out:"#D97706",inout:"#2563EB"},ln={data:"#3498DB",energy:"#D97706",material:"#16A34A",control:"#6B7280"};function dn(t,e){const n=t??"";return/energy|power|voltage|current|thermal|heat/i.test(n)?"energy":/material|fluid|gas|liquid|drug|dose|batch|consumable/i.test(n)?"material":e&&/succession|control/i.test(e)?"control":"data"}function hn(t){return t.construct==="port"||t.kind.endsWith("Port")}function pt(t){var o,s;const e=(o=t.portSpec)==null?void 0:o.direction;if(e==="in"||e==="out"||e==="inout")return e;const n=(s=(t.attributes.direction??"").split("::").pop())==null?void 0:s.trim();if(n==="bidirectional")return"inout";if(n==="in"||n==="out"||n==="inout")return n}const ue=24,po=ue,Je=ue,He=30,Ce=70,Qe=62,je=18,yt=14,xt=128,Ne=38,Fe=18,et=90,wt=184,un=168,gn=(t,e=7.2)=>t.length*e+20,fn=t=>Math.min(Math.max(gn(t,7.1),132),216);function Wt(t){var o,s;const e=(o=t.portSpec)==null?void 0:o.direction,n=e==="in"||e==="out"||e==="inout"?e:(s=(t.attributes.direction??"").split("::").pop())==null?void 0:s.trim();if(n==="in")return"in";if(n==="out"||n==="inout"||n==="bidirectional"||/out(put)?$/i.test(t.name))return"out";if(/in(put)?$/i.test(t.name))return"in"}function mn(t,e,n){return Wt(t)??(e>n?"out":"in")}const pn=t=>t==="in"?"left":"right";function yn(t,e){const n=t.filter(s=>!e.isConnected(s)&&!e.hasChildParts(s)&&e.portCount(s)===0),o=new Set(n);return{flowKids:t.filter(s=>!o.has(s)),orphanKids:n}}function xn(t,e,n){const o=new Map,s=new Map;for(const[g,a]of t)a.owner&&(e(a.owner)?o.set(g,a.owner):t.has(a.owner)&&s.set(g,a.owner));for(const g of n)!De.has(g.type)||!t.has(g.targetId)||o.has(g.targetId)||s.has(g.targetId)||(e(g.sourceId)?o.set(g.targetId,g.sourceId):t.has(g.sourceId)&&s.set(g.targetId,g.sourceId));const i=new Map,l=(g,a)=>{const d=i.get(g)??o.get(g);if(d)return i.set(g,d),d;const u=s.get(g);if(!u||a.has(u))return;a.add(u);const r=l(u,a);return r&&i.set(g,r),r};for(const g of t.keys())l(g,new Set([g]));return{ownerPart:i,parentPort:s}}function bt(t,e,n){if(e==="none")return;if(e==="all")return t;let o=t;const s=new Set([o]);for(;n.has(o);){const i=n.get(o);if(s.has(i))break;s.add(i),o=i}return o}function wn(t,e,n){const o=new Set,s=i=>{if(!(o.has(i)||!e(i))){o.add(i);for(const l of t.get(i)??[])s(l)}};return s(n),o}function bn(t,e){const n=e.size??ue,o=e.pitch??Ne,s=e.nestedPitch??He,i=new Map;for(const l of["left","right"]){const g=t.filter(r=>e.sideOf(r)===l),a=g.length,d=Math.max(e.bodyBottom-e.bodyTop,0);let u=-1/0;g.forEach((r,p)=>{var h;let w=a===1&&e.singleCenterY!==void 0?e.singleCenterY:e.bodyTop+(a===1?d/2:(p+.5)/a*d);w=Math.max(w,e.bodyTop+o/2,u+o),u=w+((((h=e.weightOf)==null?void 0:h.call(e,r))??1)-1)*s,i.set(r,{x:l==="left"?-n/2:e.width-n/2,y:w-n/2,side:l})})}return i}async function yo(t,e){var at;const n=Object.values(t.elements),o=e!=null&&e.viewpointFilter?n.filter(e.viewpointFilter):n,s=new Map,i=[];for(const f of o)hn(f)?s.set(f.id,f):i.push(f);if(i.length===0)return{nodes:[],edges:[]};const l=(e==null?void 0:e.portDisplay)??"all",g=l!=="none",a=Ye(i,t.relationships),d=e!=null&&e.focusId&&a.elements.has(e.focusId)?e.focusId:void 0,u=d?wn(a.childrenMap,f=>a.elements.has(f),d):null,r=f=>a.elements.has(f)&&(!u||u.has(f)),p=f=>{var C;return(C=e==null?void 0:e.collapsedNodes)!=null&&C.has(f)?[]:(a.childrenMap.get(f)??[]).filter(r)},{ownerPart:w,parentPort:h}=xn(s,r,t.relationships);for(const f of[...s.keys()])w.has(f)||s.delete(f);const m=f=>bt(f,"ports",h),c=new Map;for(const[f,C]of w)!s.has(f)||h.has(f)||(c.has(C)||c.set(C,[]),c.get(C).push(f));const M=new Map;if(l==="all")for(const[f]of h){if(!s.has(f))continue;const C=m(f);!s.has(C)||C===f||(M.has(C)||M.set(C,[]),M.get(C).push(f))}const N=f=>{var C;return 1+(((C=M.get(f))==null?void 0:C.length)??0)},S=(at=e==null?void 0:e.relationshipTypes)!=null&&at.length?new Set(e.relationshipTypes.map(f=>f.toLowerCase())):void 0,I=f=>s.has(f)||r(f),R=t.relationships.filter(f=>!De.has(f.type)&&(!S||S.has(f.type.toLowerCase()))&&I(f.sourceId)&&I(f.targetId)&&f.sourceId!==f.targetId),v=new Set;for(const f of R)for(const C of[f.sourceId,f.targetId]){if(!s.has(C))continue;let A=C;for(;A&&!v.has(A);)v.add(A),A=h.get(A)}for(const[f,C]of c)c.set(f,C.filter(A=>v.has(A)));const te=new Set(R.filter(f=>r(f.sourceId)).map(f=>f.sourceId)),J=new Set(R.filter(f=>r(f.targetId)).map(f=>f.targetId)),W=f=>w.get(f)??f,X=new Map;for(const[f,C]of a.childrenMap)for(const A of C)r(A)&&X.set(A,f);const V=new Map,re=f=>{const C=V.get(f);if(C)return C;const A=s.get(f);let G=Wt(A);if(!G){const z=h.get(f);if(z&&s.has(z))G=re(z);else{let $=0,_=0;for(const H of R)H.sourceId===f&&$++,H.targetId===f&&_++;G=mn(A,$,_)}}return V.set(f,G),G},oe=f=>pn(re(f)),Q=f=>({left:f.some(C=>oe(C)==="left")?xt:yt,right:f.some(C=>oe(C)==="right")?xt:yt}),x=f=>fn(f.name),y=(f,C)=>{const A={left:0,right:0};for(const K of C)A[oe(K)]+=Ne+(N(K)-1)*He;const G=Math.max(A.left,A.right,12),z=Math.max(Qe+G+10,un),$=Q(C),_=Math.max(x(f),118),H=Math.max($.left+_+$.right,wt),q=bn(C,{width:H,bodyTop:Qe,bodyBottom:z-je/2,sideOf:oe,weightOf:N,singleCenterY:Math.max(z/2,Qe+ue/2)});return{width:H,height:z,childPos:new Map,portPos:q}},b=new Map,E=new Map,O=async f=>{const C=p(f),A=g?c.get(f)??[]:[],G=a.elements.get(f);if(C.length===0){const P=y(G,A);return b.set(f,P),P}const z=new Map;for(const P of C)z.set(P,await O(P));const $=new Set(C),_=new Set(A),H=P=>{if(s.has(P)){const ee=m(P);if(_.has(ee))return ee}let L=W(P);for(;L&&!$.has(L);)L=X.get(L);return L},q=[],K=new Set;R.forEach((P,L)=>{const ee=H(P.sourceId),Y=H(P.targetId);ee&&Y&&ee!==Y&&(q.push({id:`ic-${L}`,sources:[ee],targets:[Y]}),$.has(ee)&&K.add(ee),$.has(Y)&&K.add(Y))});const{flowKids:de,orphanKids:ge}=yn(C,{isConnected:P=>K.has(P),hasChildParts:P=>(a.childrenMap.get(P)??[]).some(r),portCount:P=>{var L;return((L=c.get(P))==null?void 0:L.length)??0}}),he=Q(A),me=new Map;let xe=0,pe=0;if(de.length>0){const P=await ht({id:`container-${f}`,nodes:de.map(L=>({id:L,width:z.get(L).width,height:z.get(L).height})),edges:q.map(L=>({id:L.id,source:L.sources[0],target:L.targets[0]})),gapX:54,gapY:58,layoutProviderId:e==null?void 0:e.layoutProviderId});for(const L of P.children){const ee=L.x+he.left,Y=L.y+Ce;me.set(L.id,{x:ee,y:Y}),xe=Math.max(xe,ee-he.left+L.width),pe=Math.max(pe,Y+L.height)}}if(ge.length>0){const P=Math.max(...ge.map(Re=>z.get(Re).width)),L=Math.max(xe,P),ee=Math.max(1,Math.min(ge.length,Math.floor((L+Fe)/(P+Fe))||1)),Y=pe>0?pe+Fe:Ce;let ce=0,se=Y,le=0,Xe=0;for(const Re of ge){const Ve=z.get(Re),ct=he.left+ce*(P+Fe);me.set(Re,{x:ct,y:se}),xe=Math.max(xe,ct-he.left+Ve.width),le=Math.max(le,Ve.height),Xe=Math.max(Xe,se+Ve.height),ce++,ce>=ee&&(ce=0,se+=le+Fe,le=0)}pe=Math.max(pe,Xe)}const Le=Math.min(x(G)+32,248);let Se=Math.max(he.left+xe+he.right,Le,wt),be=Math.max(pe+je,Ce+je+8);const ke=new Map,ve=E.get(f)??new Map;for(const P of["left","right"]){const L=A.filter(Y=>oe(Y)===P).sort((Y,ce)=>(ve.get(Y)??0)-(ve.get(ce)??0));let ee=-1/0;for(const Y of L){const ce=Math.max(be/2,Ce+ue/2);let se=ve.get(Y)??(L.length===1?ce:Ce+Ne/2);se=Math.max(se,Ce+Ne/2,ee+Ne);const le=se+(N(Y)-1)*He;ee=le,ke.set(Y,{x:P==="left"?-ue/2:Se-ue/2,y:se-ue/2,side:P}),be=Math.max(be,le+Ne/2+je)}}for(const[P,L]of ke)L.side==="right"&&(L.x=Se-ue/2);const Ke={width:Se,height:be,childPos:me,portPos:ke};return b.set(f,Ke),Ke},D=d?[d]:a.roots.filter(f=>r(f));for(const f of D)await O(f);const T=new Map;if(D.length===1)T.set(D[0],{x:0,y:0});else{const f=_=>{let H=W(_);const q=new Set;for(;H&&X.has(H)&&!q.has(H);)q.add(H),H=X.get(H);return H&&D.includes(H)?H:D.includes(_)?_:H},C=new Set(D),A=[],G=(_,H)=>{var q;if(s.has(_)&&w.get(_)===H){const K=m(_),de=(q=b.get(H))==null?void 0:q.portPos.get(K);if(de)return de.y+ue/2}return b.get(H).height/2};R.forEach((_,H)=>{const q=f(_.sourceId),K=f(_.targetId);q&&K&&q!==K&&C.has(q)&&C.has(K)&&A.push({id:`root-${H}`,source:q,target:K,sourceAnchorY:G(_.sourceId,q),targetAnchorY:G(_.targetId,K)})});const z=await ht({id:"interconnection-roots",nodes:D.map(_=>({id:_,width:b.get(_).width,height:b.get(_).height})),edges:A,gapX:et,gapY:et,directedFlowAxis:"RIGHT",layoutProviderId:e==null?void 0:e.layoutProviderId});for(const _ of z.children)T.set(_.id,{x:_.x,y:_.y});let $=0;for(const _ of D)T.has(_)||(T.set(_,{x:$,y:0}),$+=b.get(_).width+et)}const F=new Map;for(const[f,C]of c){const A=b.get(f);if(!A)continue;const G=[];for(const z of C){const $=A.portPos.get(z);if(!$)continue;const _=s.get(z);G.push({id:z,name:_.name,x:$.x,y:$.y,side:$.side,direction:pt(_)??re(z)});const H=$.y+ue/2,q=$.x+(ue-Je)/2;(M.get(z)??[]).forEach((K,de)=>{const ge=s.get(K);G.push({id:K,name:ge.name,x:q,y:H+He*(de+1)-Je/2,side:$.side,direction:pt(ge)??re(K),size:Je,nested:!0})})}F.set(f,G)}const B=[],ae=new Map,Z=(f,C,A,G={x:0,y:0})=>{var ge;const z=a.elements.get(f),$=b.get(f),_=Me[z.layer]||"#64748B",H=A??T.get(f),q=C?{x:G.x+H.x,y:G.y+H.y}:H;ae.set(f,q);const K=(a.childrenMap.get(f)??[]).some(r),de=K;B.push({id:f,type:"interconnectionNode",position:H,...C?{parentId:C,extent:"parent"}:{},data:{label:z.name,kind:z.kind,layer:z.layer,color:_,isContainer:de,isFrame:!C&&de,hasChildren:K,isCollapsed:((ge=e==null?void 0:e.collapsedNodes)==null?void 0:ge.has(f))??!1,onToggleCollapse:K&&(e!=null&&e.onToggleCollapse)?()=>e.onToggleCollapse(f):void 0,ports:F.get(f)??[],implicitIn:g&&J.has(f),implicitOut:g&&te.has(f),onPortMove:e!=null&&e.onPortMove?(he,me)=>e.onPortMove(f,he,me):void 0},style:{width:$.width,height:$.height}});for(const[he,me]of $.childPos)Z(he,f,me,q)};for(const f of D)Z(f);const ne=(f,C)=>{let A=f;const G=new Set;for(;A&&!G.has(A);){if(A===C)return!0;G.add(A),A=X.get(A)}return!1},fe=(f,C)=>{const A=w.get(f),G=W(C);return ne(G,A)?`${f}${mt}`:f},ye=f=>s.has(f)?bt(f,l,h):void 0,Oe=R.flatMap((f,C)=>{const A=ye(f.sourceId),G=ye(f.targetId),z=s.has(f.sourceId)?w.get(f.sourceId):f.sourceId,$=s.has(f.targetId)?w.get(f.targetId):f.targetId;if(!b.has(z)||!b.has($))return[];const _=dn(f.flowItem,f.type),H=ln[_],q=f.flowItem||(f.type.toLowerCase()==="exchangeswith"?void 0:f.type),K=A?fe(A,f.targetId):"right",de=G?fe(G,f.sourceId):"left",ge=P=>P==="left"?"right":P==="right"?"left":P==="top"?"bottom":"top",he=(P,L,ee,Y)=>{var se;if(!L)return Y;const ce=((se=(F.get(P)??[]).find(le=>le.id===L))==null?void 0:se.side)??Y;return ee.endsWith(mt)?ge(ce):ce},me=he(z,A,K,"right"),xe=he($,G,de,"left"),pe=f.id||`ic-e-${C}`,Le=(P,L,ee)=>{const Y=ae.get(P),ce=b.get(P);if(L){const se=(F.get(P)??[]).find(le=>le.id===L);if(se){const le=se.size??ue;return{x:Y.x+se.x+le/2,y:Y.y+se.y+le/2}}}return{x:Y.x+(ee?ce.width:0),y:Y.y+ce.height/2}},Se=Le(z,A,!0),be=Le($,G,!1),ke=ae.get(z),ve=ae.get($);return[{edge:{id:pe,source:z,target:$,sourceHandle:K,targetHandle:de,type:"interconnectionEdge",className:"ibd-interconnection-edge",label:q,animated:f.type==="flow",style:{stroke:H,strokeWidth:Math.max(2,j.defaultWidth)},labelStyle:{fontSize:U.badge,fill:"#4B5563",fontWeight:600},labelBgPadding:j.labelBgPadding,labelBgBorderRadius:j.labelBgRadius,labelBgStyle:{...j.labelBgStyle,fillOpacity:.96,stroke:"#E2E8F0",strokeWidth:1},markerEnd:{type:"arrowclosed",color:H,width:j.arrowSize,height:j.arrowSize},data:{flowCategory:_,sourceOffset:{x:Se.x-ke.x,y:Se.y-ke.y},targetOffset:{x:be.x-ve.x,y:be.y-ve.y},sourcePortId:A,targetPortId:G,sourceSide:me,targetSide:xe}},route:{id:pe,source:Se,target:be,sourceNodeId:z,targetNodeId:$,sourceSide:me,targetSide:xe}}]}),$t=B.filter(f=>!f.data.isFrame).map(f=>{const C=ae.get(f.id),A=b.get(f.id);return{id:f.id,x:C.x,y:C.y,width:A.width,height:A.height}}),Yt=Lt(Oe.map(f=>f.route),$t),Kt=Oe.map(({edge:f})=>({...f,data:{...f.data,points:Yt.get(f.id)??[]}}));return{nodes:B,edges:Kt}}function Ie(t){return t.kind==="ForkNode"||t.kind==="JoinNode"}function xo(t,e){const n=new Set(t.filter(s=>!Ie(s)).map(s=>s.id)),o=new Set;for(const s of e.relationships)s.type!=="flow"&&s.type!=="succession"||(n.has(s.sourceId)&&o.add(s.sourceId),n.has(s.targetId)&&o.add(s.targetId));return t.filter(s=>!Ie(s)&&!o.has(s.id))}function In(t,e,n=new Set,o){const s=Object.values(t.elements),l=(e?s.filter(e):s).filter(r=>r.construct==="action"||r.kind==="ActionUsage"||r.kind==="ActionDefinition"),g=l.filter(r=>r.parentAction);if(g.length===0)return l;const a=new Map(l.map(r=>[r.id,r])),d=[],u=r=>{const p=l.filter(w=>w.parentAction===r.id);if(n.has(r.id)&&p.length>0){for(const w of p)u(w);return}d.push(r)};if(o){for(const r of l.filter(p=>p.parentAction===o))u(r);return d}for(const r of g){const p=r.parentAction?a.get(r.parentAction):void 0;p!=null&&p.parentAction||u(r)}return d}function Mn(t,e){const n=t.attributes.actionType,o=n?e.elements[n]:void 0,s=((o==null?void 0:o.construct)==="action"?o.parameters:t.parameters)??[];return{inPorts:s.filter(i=>i.direction==="in"||i.direction==="inout").map(i=>i.name),outPorts:s.filter(i=>i.direction==="out"||i.direction==="inout").map(i=>i.name)}}const It=["#4A90D9","#E67E22","#2ECC71","#9B59B6","#E74C3C","#1ABC9C","#F39C12","#7B68EE"],tt="Unallocated",Sn="Unstaged";function it(t,e,n="all"){const o=new Map;for(const a of e.relationships)De.has(a.type)&&!o.has(a.targetId)&&o.set(a.targetId,a.sourceId);const s=[t],i=new Set(s);let l=t;for(;o.has(l);){const a=o.get(l);if(i.has(a))break;s.unshift(a),i.add(a),l=a}if(n==="all")return{id:t,level:s.length};const g=Math.min(Math.max(n,1),s.length)-1;return{id:s[g],level:g+1}}function En(t,e,n="all"){var s;const o=it(t,e,n).id;return((s=e.elements[o])==null?void 0:s.name)??o}function wo(t,e){const n=[...new Set(t)].map(s=>it(s,e).level);if(n.length===0)return[];const o=Math.min(...n);return o<=1?[]:Array.from({length:o},(s,i)=>i+1)}function kn(t,e,n="allocation",o="all"){var g,a;const s=new Map,i=[],l=new Map;for(const d of t){if(Ie(d))continue;const u=d.allocatedTo?it(d.allocatedTo,e,o).id:tt,r=n==="stage"?d.attributes.stage||d.attributes.phase||Sn:u;if(s.set(d.id,r),!l.has(r)){const p={id:r,label:n==="allocation"&&r!==tt?((g=e.elements[r])==null?void 0:g.name)??r:r,color:It[l.size%It.length],inspectElementId:n==="allocation"&&r!==tt?r:((a=Object.values(e.elements).find(w=>w.id===r||w.name===r))==null?void 0:a.id)??d.id};l.set(r,p),i.push(p)}}return{laneOf:s,lanes:i}}const vn=18,Cn=36,Nn=20,_e=36,Mt=16,St=120,nt=32,Et=64,kt=10;function Tn(t,e,n){if(Ie(t))return n==="vertical"?{width:Et,height:kt}:{width:kt,height:Et};const s=Math.max(e.inPorts.length,e.outPorts.length,0)*vn;return{width:Math.max(t.name.length*9+40,140),height:Cn+s+(s>0?8:0)+(t.allocatedTo?Nn:0)}}function vt(t){const e=t??"";return/energy|power|voltage|current|thermal|heat/i.test(e)?"energy":/material|fluid|gas|liquid|batch|consumable/i.test(e)?"material":"data"}const ot={control:"#4B5563",data:"#3498DB",energy:"#D97706",material:"#16A34A"};async function bo(t,e){var re,oe,Q;const n=In(t,e==null?void 0:e.viewpointFilter,e==null?void 0:e.expandedActionIds,e==null?void 0:e.focusActionId);if(n.length===0)return{nodes:[],edges:[]};const o=new Set(n.map(x=>x.id)),{laneOf:s,lanes:i}=kn(n,t,e==null?void 0:e.laneGrouping,e==null?void 0:e.displayLevel),l=(e==null?void 0:e.direction)??"horizontal",g=((e==null?void 0:e.swimlanes)??!0)&&i.length>=1,a=t.relationships.filter(x=>x.type==="succession"),d=t.relationships.filter(x=>x.type==="flow"),u=new Map;for(const x of(e==null?void 0:e.expandedActionIds)??[]){const y=Object.values(t.elements).filter(O=>O.parentAction===x);if(y.length===0)continue;const b=((re=a.find(O=>O.sourceId===`${x}__start`))==null?void 0:re.targetId)??y[0].id,E=((oe=a.find(O=>O.targetId===`${x}__done`))==null?void 0:oe.sourceId)??y[y.length-1].id;u.set(x,{first:b,last:E})}const r=x=>x.map(y=>{var b,E;return{...y,sourceId:((b=u.get(y.sourceId))==null?void 0:b.last)??y.sourceId,targetId:((E=u.get(y.targetId))==null?void 0:E.first)??y.targetId}}),p=r(a),w=r(d),h=new Set;for(const x of p){const y=x.sourceId.endsWith("__start")?x.sourceId.slice(0,-7):void 0,b=x.targetId.endsWith("__done")?x.targetId.slice(0,-6):void 0;y&&!u.has(y)&&o.has(x.targetId)&&h.add(x.sourceId),b&&!u.has(b)&&o.has(x.sourceId)&&h.add(x.targetId)}const m=new Set([...o,...h]),c=w.filter(x=>m.has(x.sourceId)&&m.has(x.targetId)&&(!(e!=null&&e.visibleFlowKinds)||e.visibleFlowKinds.has(vt(x.flowItem)))),M=new Set(c.map(x=>`${x.sourceId}\0${x.targetId}`)),N=p.filter(x=>m.has(x.sourceId)&&m.has(x.targetId)&&(!(e!=null&&e.visibleFlowKinds)||e.visibleFlowKinds.has("control"))&&!M.has(`${x.sourceId}\0${x.targetId}`)),S=new Map(n.map(x=>[x.id,Mn(x,t)])),I={id:"root",layoutOptions:{"elk.algorithm":"layered","elk.direction":l==="vertical"?"DOWN":"RIGHT","elk.spacing.nodeNode":"40","elk.layered.spacing.nodeNodeBetweenLayers":"80","elk.layered.considerModelOrder.strategy":"NODES_AND_EDGES","elk.layered.nodePlacement.strategy":"NETWORK_SIMPLEX","elk.layered.crossingMinimization.strategy":"LAYER_SWEEP","elk.separateConnectedComponents":"true","elk.spacing.componentComponent":"56"},children:[...[...h].map(x=>({id:x,width:28,height:28})),...n.map(x=>({id:x.id,...Tn(x,S.get(x.id),l)}))],edges:[...c,...N].map((x,y)=>({id:`afe-${y}`,sources:[x.sourceId],targets:[x.targetId]}))},R=await Ae.layout(I,{providerId:e==null?void 0:e.layoutProviderId}),v=new Map((R.children??[]).map(x=>[x.id,{x:x.x??0,y:x.y??0,width:x.width??140,height:x.height??56}])),te=new Map(i.map(x=>[x.id,x.color])),J=[];if(g&&l==="horizontal"){const x=new Map;for(const D of n){if(Ie(D))continue;const T=v.get(D.id),F=s.get(D.id);x.has(F)||x.set(F,[]),x.get(F).push(T.y)}const y=[...i].sort((D,T)=>{const F=B=>B.reduce((ae,Z)=>ae+Z,0)/B.length;return F(x.get(D.id)??[0])-F(x.get(T.id)??[0])});let b=1/0,E=-1/0;for(const D of n){const T=v.get(D.id);b=Math.min(b,T.x),E=Math.max(E,T.x+T.width)}let O=0;for(const D of y){const T=n.filter(Z=>s.get(Z.id)===D.id);T.sort((Z,ne)=>v.get(Z.id).x-v.get(ne.id).x||v.get(Z.id).y-v.get(ne.id).y);const F=Math.min(...T.map(Z=>v.get(Z.id).y));let B=0;const ae=[];for(const Z of T){const ne=v.get(Z.id);let fe=O+_e+(ne.y-F);for(const ye of ae)ne.x<ye.x1&&ne.x+ne.width>ye.x0&&(fe=Math.max(fe,ye.bottom+16));v.set(Z.id,{...ne,y:fe}),ae.push({x0:ne.x,x1:ne.x+ne.width,bottom:fe+ne.height}),B=Math.max(B,fe+ne.height-O)}B+=_e,J.push({id:`__lane_${D.id}`,type:"actionFlowLane",position:{x:b-St,y:O},data:{label:D.label,color:D.color,orientation:"row",inspectElementId:D.inspectElementId,memberIds:T.map(Z=>Z.id),isFrame:!0},style:{width:E-b+St+_e,height:B},draggable:!1,selectable:!1,zIndex:-1}),O+=B+Mt}}else if(g){let x=1/0,y=-1/0;for(const E of n){const O=v.get(E.id);x=Math.min(x,O.y),y=Math.max(y,O.y+O.height)}let b=0;for(const E of i){const O=n.filter(F=>s.get(F.id)===E.id).sort((F,B)=>v.get(F.id).y-v.get(B.id).y||v.get(F.id).x-v.get(B.id).x),T=Math.max(...O.map(F=>v.get(F.id).width))+_e*2;for(const F of O){const B=v.get(F.id);v.set(F.id,{...B,x:b+(T-B.width)/2})}J.push({id:`__lane_${E.id}`,type:"actionFlowLane",position:{x:b,y:x-nt},data:{label:E.label,color:E.color,orientation:"column",inspectElementId:E.inspectElementId,memberIds:O.map(F=>F.id),isFrame:!0},style:{width:T,height:y-x+nt+_e},draggable:!1,selectable:!1,zIndex:-1}),b+=T+Mt}}const W=n.filter(Ie);if(W.length>0)for(const x of W){const y=v.get(x.id),b=[];for(const O of[...N,...c]){const D=O.sourceId===x.id?O.targetId:O.targetId===x.id?O.sourceId:void 0;if(D===void 0)continue;const T=v.get(D);T&&b.push(l==="vertical"?T.x+T.width/2:T.y+T.height/2)}if(b.length===0)continue;const E=b.reduce((O,D)=>O+D,0)/b.length;v.set(x.id,l==="vertical"?{...y,x:E-y.width/2}:{...y,y:E-y.height/2})}for(const x of h){const y=v.get(x);if(!y)continue;const b=[];for(const T of N){const F=T.sourceId===x?T.targetId:T.targetId===x?T.sourceId:void 0;if(!F)continue;const B=v.get(F);B&&b.push(l==="vertical"?B.x+B.width/2:B.y+B.height/2)}if(b.length===0)continue;const E=b.reduce((T,F)=>T+F,0)/b.length,O=n.filter(T=>!Ie(T)).map(T=>v.get(T.id)).filter(T=>!!T),D=x.endsWith("__start");if(l==="vertical"){const T=Math.min(...O.map(B=>B.y)),F=Math.max(...O.map(B=>B.y+B.height));v.set(x,{...y,x:E-y.width/2,y:D?T-y.height-nt-16:F+24})}else{const T=Math.min(...O.map(B=>B.x)),F=Math.max(...O.map(B=>B.x+B.width));v.set(x,{...y,x:D?T-y.width-24:F+24,y:E-y.height/2})}}const X=[...J];for(const x of h){const y=v.get(x),b=x.endsWith("__start"),E={label:b?"Start":"Done",nodeType:b?"start":"done",laneColor:"#374151",layerColor:"#374151",inPorts:[],outPorts:[],flowDirection:l};X.push({id:x,type:"actionFlowNode",position:{x:y.x,y:y.y},data:E})}for(const x of n){const y=v.get(x.id);if(Ie(x)){const T={element:x,label:x.name,nodeType:x.kind==="ForkNode"?"fork":"join",laneColor:"#374151",layerColor:"#374151",inPorts:[],outPorts:[],flowDirection:l};X.push({id:x.id,type:"actionFlowNode",position:{x:y.x,y:y.y},style:{width:y.width,height:y.height},data:T});continue}const b=S.get(x.id),E=s.get(x.id),O=x.allocatedTo?En(x.allocatedTo,t,e==null?void 0:e.displayLevel):void 0,D={element:x,label:x.name,nodeType:"action",parameters:x.parameters,allocatedTo:O,laneColor:te.get(E)??"#9CA3AF",layerColor:Me[x.layer]||"#FF6B6B",inPorts:b.inPorts,outPorts:b.outPorts,hasChildren:Object.values(t.elements).some(T=>T.parentAction===x.id),isExpanded:((Q=e==null?void 0:e.expandedActionIds)==null?void 0:Q.has(x.id))??!1,onToggleExpand:e!=null&&e.onToggleAction?()=>e.onToggleAction(x.id):void 0,flowDirection:l};X.push({id:x.id,type:"actionFlowNode",position:{x:y.x,y:y.y},data:D})}const V=[];for(const x of c){const y=vt(x.flowItem),b=ot[y],E=x.flowItem?/signal|error|status|code|report|alarm|response|command|data|reading/i.test(x.flowItem):!1;V.push({id:x.id,source:x.sourceId,target:x.targetId,label:void 0,type:"smoothstep",animated:!1,style:{stroke:b,strokeWidth:j.flowWidth,strokeDasharray:E?"6 3":void 0},labelStyle:{fontSize:U.badge,fill:b,fontWeight:600},labelBgStyle:j.labelBgStyle,labelBgPadding:j.labelBgPadding,labelBgBorderRadius:j.labelBgRadius,markerEnd:{type:"arrowclosed",color:b,width:j.arrowSize,height:j.arrowSize},data:{flowCategory:y,flowItem:x.flowItem}})}for(const x of N)V.push({id:x.id,source:x.sourceId,target:x.targetId,type:"smoothstep",animated:!1,style:{stroke:ot.control,strokeWidth:1.5},markerEnd:{type:"arrowclosed",color:ot.control,width:12,height:12},data:{flowCategory:"control"}});return{nodes:X,edges:V}}function An(t){return t.attributes.sourceState&&t.attributes.targetState?!0:t.kind==="Transition"||t.kind.endsWith("Transition")}function On(t){return t.kind.endsWith("State")||t.kind.endsWith("Machine")||t.kind.endsWith("Mode")}function Fn(t,e){const n=Object.values(t.elements),o=e?n.filter(e):n,s=[],i=[],l=[];for(const g of o)An(g)?i.push(g):On(g)?s.push(g):l.push(g);return{states:s,transitions:i,annotations:l}}const Ct=46;function _n(t){return t.length>Ct?`${t.slice(0,Ct-1)}…`:t}function Pn(t){const e=t.attributes.trigger??"",n=t.attributes.guardSummary??t.attributes.guard??"",o=n&&!/^none\b/i.test(n),s=e||t.name;return _n(o?`${s} [${n}]`:s)}function Dn(t,e){const n=new Map;for(const s of e)n.set(s.name,s.id),n.set(s.id,s.id);const o=[];for(const s of t){const i=n.get(s.attributes.sourceState??""),l=n.get(s.attributes.targetState??"");!i||!l||o.push({element:s,sourceId:i,targetId:l,label:Pn(s)})}return o}const st="#FF6B6B",Ln="#95A5A6";async function Io(t,e){const{states:n,transitions:o,annotations:s}=Fn(t,e==null?void 0:e.viewpointFilter);if(n.length===0&&s.length===0)return{nodes:[],edges:[]};const i=Ye(n,t.relationships),l=Dn(o,n),g=h=>({width:Math.max(h.name.length*7.5+56,150),height:54}),a=h=>{const m=i.elements.get(h),c=(i.childrenMap.get(h)??[]).filter(M=>i.elements.has(M));return c.length===0?{id:h,...g(m)}:{id:h,layoutOptions:{"elk.algorithm":"layered","elk.direction":"RIGHT","elk.padding":"[top=48,left=28,bottom=28,right=28]","elk.spacing.nodeNode":"48","elk.layered.spacing.nodeNodeBetweenLayers":"72","elk.edgeRouting":"ORTHOGONAL"},children:c.map(a)}},d={id:"root",layoutOptions:{"elk.algorithm":"layered","elk.direction":"RIGHT","elk.hierarchyHandling":"INCLUDE_CHILDREN","elk.edgeRouting":"ORTHOGONAL","elk.spacing.nodeNode":"56","elk.layered.spacing.nodeNodeBetweenLayers":"96","elk.spacing.edgeNode":"28","elk.spacing.edgeLabel":"8","elk.separateConnectedComponents":"true","elk.spacing.componentComponent":"64","elk.padding":"[top=20, left=20, bottom=20, right=20]"},children:i.roots.filter(h=>i.elements.has(h)).map(a),edges:l.map((h,m)=>({id:`st-${m}`,sources:[h.sourceId],targets:[h.targetId]}))},u=await Ae.layout(d,{providerId:e==null?void 0:e.layoutProviderId}),r=[],p=(h,m)=>{var M;const c=i.elements.get(h.id);if(c){const N=!!((M=h.children)!=null&&M.length),S=c.kind.endsWith("Machine");r.push({id:h.id,type:"stateNode",position:{x:h.x??0,y:h.y??0},...m?{parentId:m,extent:"parent"}:{},data:{label:c.name,kind:c.kind,color:st,isContainer:N,isMachine:S,subtitle:c.attributes.modeKind},style:{width:h.width??150,height:h.height??54}});for(const I of h.children??[])p(I,h.id);return}};for(const h of u.children??[])p(h);if(s.length>0){let h=0,m=800;for(const I of u.children??[])h=Math.max(h,(I.y??0)+(I.height??0)),m=Math.max(m,(I.x??0)+(I.width??0));const c=240,M=48,N=14,S=Math.max(2,Math.floor(m/(c+N)));s.forEach((I,R)=>{r.push({id:I.id,type:"stateNode",position:{x:R%S*(c+N),y:h+56+Math.floor(R/S)*(M+N)},data:{label:I.name,kind:I.kind,color:Ln,isNote:!0},style:{width:c,height:M}})})}const w=l.map((h,m)=>({id:h.element.id||`st-e-${m}`,source:h.sourceId,target:h.targetId,type:"smoothstep",label:h.label,style:{stroke:st,strokeWidth:j.defaultWidth},labelStyle:{fontSize:U.badge,fill:"#6B7280",fontWeight:500},labelBgPadding:j.labelBgPadding,labelBgBorderRadius:j.labelBgRadius,labelBgStyle:j.labelBgStyle,markerEnd:{type:"arrowclosed",color:st,width:j.arrowSize,height:j.arrowSize}}));return{nodes:r,edges:w}}const Nt=new Set(["includesStep",...De]);function Tt(t){return t.kind.endsWith("Step")||!!t.attributes.stepOrder}function Rn(t){if(!t)return;const e=t.split(":");return(e.length>1?e[e.length-1]:e[0]).trim()||void 0}function Bn(t,e){const n=t.split(":")[0].trim(),o=e.elements[n];if(o)return o.name;for(const s of Object.values(e.elements))if(s.attributes.id===n)return s.name;return t}const At=t=>{const e=Number(t.attributes.stepOrder);return Number.isFinite(e)?e:0};function jn(t,e){const n=Object.values(t.elements),o=e?n.filter(e):n,s=o.filter(Tt),i=new Set(s.map(m=>m.id)),l=o.filter(m=>!Tt(m)&&t.relationships.some(c=>Nt.has(c.type)&&c.sourceId===m.id&&i.has(c.targetId))),g=[],a=new Map,d=m=>{const c=m.split(":")[0].trim()||m;return a.has(c)||(a.set(c,g.length),g.push({id:c,label:Bn(m,t)})),a.get(c)},u=m=>[...m].sort((c,M)=>At(c)-At(M)).map(c=>({step:c,lane:d(c.attributes.allocatedFunction??c.allocatedTo??c.id),item:Rn(c.attributes.exchangeItem)})),r=m=>{var M;const c=t.relationships.find(N=>N.type==="realizesScenario"&&N.sourceId===m.id);return c?(M=t.elements[c.targetId])==null?void 0:M.name:void 0},p=new Set,w=[];for(const m of l){const c=t.relationships.filter(M=>Nt.has(M.type)&&M.sourceId===m.id&&i.has(M.targetId)).map(M=>t.elements[M.targetId]);for(const M of c)p.add(M.id);w.push({chain:m,scenario:r(m),occurrences:u(c)})}const h=s.filter(m=>!p.has(m.id));return h.length>0&&w.push({occurrences:u(h)}),{lifelines:g,sections:w.filter(m=>m.occurrences.length>0)}}const Pe=240,Hn=52,Wn=68,zn=40,Gn=24,Ot=14;function Mo(t,e){const n=jn(t,e==null?void 0:e.viewpointFilter);if(n.lifelines.length===0)return{nodes:[],edges:[]};const o=[],s=[],i=u=>u*Pe+Pe/2;let l=Hn+28;const g=[];for(const u of n.sections){const r=l;l+=zn;const p=u.occurrences.map(w=>{const h={...w,y:l};return l+=Wn,h});g.push({section:u,top:r,bottom:l,placed:p}),l+=Gn}const a=l,d=n.lifelines.length*Pe;return n.lifelines.forEach((u,r)=>{o.push({id:`__lifeline_${u.id}`,type:"seqLifeline",position:{x:r*Pe,y:0},data:{label:u.label},style:{width:Pe,height:a},draggable:!1,selectable:!1,zIndex:-2})}),g.forEach(({section:u,top:r,bottom:p,placed:w},h)=>{var m;o.push({id:`__section_${h}`,type:"seqSection",position:{x:-24,y:r},data:{label:((m=u.chain)==null?void 0:m.name)??"Steps",scenario:u.scenario},style:{width:d+48,height:p-r},draggable:!1,selectable:!1,zIndex:-1}),w.forEach((c,M)=>{if(o.push({id:c.step.id,type:"seqOccurrence",position:{x:i(c.lane)-Ot/2,y:c.y-Ot/2},data:{label:c.step.name,kind:c.step.kind},draggable:!1,zIndex:2}),M<w.length-1){const N=w[M+1],S=N.lane>=c.lane,I=N.lane===c.lane;s.push({id:`seq-${h}-${M}`,source:c.step.id,target:N.step.id,sourceHandle:I||S?"right":"left",targetHandle:I?"right":S?"left":"right",type:I?"smoothstep":"straight",label:c.item,style:{stroke:"#3498DB",strokeWidth:j.flowWidth},labelStyle:{fontSize:U.badge,fill:"#4A90D9",fontWeight:600},labelBgPadding:j.labelBgPadding,labelBgBorderRadius:j.labelBgRadius,labelBgStyle:j.labelBgStyle,markerEnd:{type:"arrowclosed",color:"#3498DB",width:j.arrowSize,height:j.arrowSize},zIndex:1})}})}),{nodes:o,edges:s}}const $n=new Set(["name","title","description","shortDescription","longDescription","sourceReference","rationaleText","semantics","queryDescription","dataSourceDescription","doc"]),Yn=7,rt=80;function Kn(t,e){const n=t.attributes[e];return n===void 0?void 0:(n.includes("::")?n.split("::").pop().trim():n)||void 0}function Xn(t){const e=new Map;for(const n of t)for(const o of Object.keys(n.attributes))$n.has(o)||o.includes(".")||e.set(o,(e.get(o)??0)+1);return[...e.entries()].sort((n,o)=>o[1]-n[1]).slice(0,Yn).map(([n])=>n)}function Vn(t){const e=new Map;for(const o of t)e.has(o.kind)||e.set(o.kind,[]),e.get(o.kind).push(o);const n=[];for(const[o,s]of e){const i=Xn(s),l=s.map(a=>({element:a,values:i.map(d=>Kn(a,d))})),g=i.map((a,d)=>{const u=l.map(r=>r.values[d]).filter(r=>r!==void 0);return u.length>0&&u.every(r=>Number.isFinite(Number(r)))});n.push({kind:o,columns:i,numeric:g,rows:l})}return n.sort((o,s)=>s.rows.length-o.rows.length)}function qn(t,e,n){const o=n==="asc"?1:-1;return[...t.rows].sort((i,l)=>{if(e<0)return i.element.name.localeCompare(l.element.name)*o;const g=i.values[e],a=l.values[e];return g===void 0&&a===void 0?0:g===void 0?1:a===void 0?-1:t.numeric[e]?(Number(g)-Number(a))*o:g.localeCompare(a)*o})}function Un(t,e,n){const o=new Map(t.map(r=>[r.id,r])),s=n!=null&&n.length?new Set(n.map(r=>r.toLowerCase())):void 0,i=e.filter(r=>o.has(r.sourceId)&&o.has(r.targetId)&&r.sourceId!==r.targetId&&(!s||s.has(r.type.toLowerCase())));if(i.length===0)return;const l=new Set,g=new Set,a=new Map,d=new Set;for(const r of i){l.add(r.sourceId),g.add(r.targetId),d.add(r.type);const p=`${r.sourceId}|${r.targetId}`;a.has(p)||a.set(p,[]),a.get(p).includes(r.type)||a.get(p).push(r.type)}const u=(r,p)=>r.kind.localeCompare(p.kind)||r.name.localeCompare(p.name);return{rows:[...l].map(r=>o.get(r)).sort(u),cols:[...g].map(r=>o.get(r)).sort(u),cells:a,relTypes:[...d].sort()}}const Ge={padding:"6px 10px",fontSize:U.xs,fontWeight:600,color:"#374151",textAlign:"left",borderBottom:"2px solid #E5E5E0",background:"#FAFAF8",position:"sticky",top:0,cursor:"pointer",whiteSpace:"nowrap",userSelect:"none"},$e={padding:"5px 10px",fontSize:U.xs,color:"#374151",borderBottom:"1px solid #F0F0ED",verticalAlign:"top"};function Zn(t){return t.length>rt?`${t.slice(0,rt-1)}…`:t}function Jn({section:t,search:e}){var r;const n=ze(p=>p.selectElement),[o,s]=ie.useState(-1),[i,l]=ie.useState("asc"),g=ie.useMemo(()=>{const p=qn(t,o,i);if(!e)return p;const w=e.toLowerCase();return p.filter(h=>h.element.name.toLowerCase().includes(w)||h.values.some(m=>m==null?void 0:m.toLowerCase().includes(w)))},[t,o,i,e]);if(g.length===0)return null;const a=Me[(r=t.rows[0])==null?void 0:r.element.layer]||"#6B7280",d=p=>{o===p?l(w=>w==="asc"?"desc":"asc"):(s(p),l("asc"))},u=p=>o===p?i==="asc"?" ↑":" ↓":"";return k.jsxs("div",{style:{marginBottom:28},children:[k.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[k.jsx("span",{style:{width:8,height:8,borderRadius:2,background:a,display:"inline-block"}}),k.jsx("span",{style:{fontSize:U.sm,fontWeight:700,color:"#1B3A4B"},children:t.kind}),k.jsx("span",{style:{fontSize:U.xs,color:"#9CA3AF"},children:g.length})]}),k.jsxs("table",{style:{borderCollapse:"collapse",width:"100%",background:"#FFFFFF",borderRadius:8,overflow:"hidden",border:"1px solid #E5E5E0"},children:[k.jsx("thead",{children:k.jsxs("tr",{children:[k.jsxs("th",{style:Ge,onClick:()=>d(-1),children:["Element",u(-1)]}),t.columns.map((p,w)=>k.jsxs("th",{style:Ge,onClick:()=>d(w),children:[p,u(w)]},p))]})}),k.jsx("tbody",{children:g.map(p=>k.jsxs("tr",{onMouseEnter:w=>{w.currentTarget.style.background="#F7F7F5"},onMouseLeave:w=>{w.currentTarget.style.background="transparent"},children:[k.jsx("td",{style:{...$e,whiteSpace:"nowrap"},children:k.jsx("button",{onClick:()=>n(p.element.id),style:{background:"none",border:"none",padding:0,fontSize:U.xs,fontWeight:600,color:"#1B6FD9",cursor:"pointer",textDecoration:"none"},title:"Open element detail",children:p.element.name})}),p.values.map((w,h)=>k.jsx("td",{style:$e,title:w&&w.length>rt?w:void 0,children:w?Zn(w):k.jsx("span",{style:{color:"#D1D5DB"},children:"—"})},h))]},p.element.id))})]})]})}function Qn({elements:t,model:e,relationshipTypes:n}){const o=ze(l=>l.selectElement),s=ie.useMemo(()=>Un(t,e.relationships,n),[t,e.relationships,n]);if(!s)return k.jsx("div",{style:{color:"#9CA3AF",fontSize:U.sm,padding:24},children:"No relationships among this view's elements."});const i=(l,g=!1)=>k.jsx("button",{onClick:()=>o(l.id),style:{background:"none",border:"none",padding:0,cursor:"pointer",fontSize:"10px",fontWeight:600,color:"#374151",...g?{writingMode:"vertical-rl",transform:"rotate(180deg)",maxHeight:120}:{},whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:180},title:`${l.kind} · open detail`,children:l.name});return k.jsxs("div",{children:[k.jsx("div",{className:"flex gap-3 mb-2",style:{fontSize:U.xs,color:"#6B7280"},children:s.relTypes.map(l=>k.jsxs("span",{className:"flex items-center gap-1",children:[k.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:Te[l]||"#6B7280",display:"inline-block"}}),l]},l))}),k.jsxs("table",{style:{borderCollapse:"collapse",background:"#FFFFFF",border:"1px solid #E5E5E0"},children:[k.jsx("thead",{children:k.jsxs("tr",{children:[k.jsx("th",{style:{...Ge,cursor:"default"}}),s.cols.map(l=>k.jsx("th",{style:{...Ge,cursor:"default",verticalAlign:"bottom",padding:"8px 4px"},children:i(l,!0)},l.id))]})}),k.jsx("tbody",{children:s.rows.map(l=>k.jsxs("tr",{children:[k.jsx("td",{style:{...$e,whiteSpace:"nowrap",background:"#FAFAF8"},children:i(l)}),s.cols.map(g=>{const a=s.cells.get(`${l.id}|${g.id}`);return k.jsx("td",{style:{...$e,textAlign:"center",padding:"4px 6px"},title:a==null?void 0:a.join(", "),children:a==null?void 0:a.map(d=>k.jsx("span",{style:{width:9,height:9,borderRadius:"50%",margin:1,background:Te[d]||"#6B7280",display:"inline-block"}},d))},g.id)})]},l.id))})]})]})}function So({diagram:t,model:e,viewpointFilter:n}){const[o,s]=ie.useState("table"),[i,l]=ie.useState(""),g=ie.useMemo(()=>{const u=Object.values(e.elements);return n?u.filter(n):u},[e,n]),a=ie.useMemo(()=>Vn(g),[g]),d=_t.grid;return k.jsx("div",{className:"flex-1 overflow-auto",style:{background:"#F7F7F5"},children:k.jsxs("div",{style:{padding:"16px 20px",maxWidth:1240},children:[k.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[k.jsx("span",{className:"px-1.5 py-0.5 rounded font-semibold",style:{background:d.color+"20",color:d.color,fontSize:U.badge},title:d.fullName,children:d.label}),k.jsx("span",{style:{fontSize:U.md,fontWeight:700,color:"#1a1a1a"},children:t.name}),k.jsxs("span",{style:{fontSize:U.xs,color:"#9CA3AF"},children:[g.length," elements"]}),k.jsx("div",{className:"flex rounded overflow-hidden ml-2",style:{border:"1px solid #E5E5E0"},children:["table","matrix"].map(u=>k.jsx("button",{onClick:()=>s(u),className:"px-2 py-0.5 text-xs font-medium capitalize",style:{background:o===u?"#1B3A4B":"#FFFFFF",color:o===u?"#FFFFFF":"#6B7280",border:"none",cursor:"pointer"},children:u},u))}),o==="table"&&k.jsx("input",{value:i,onChange:u=>l(u.target.value),placeholder:"Filter rows…",className:"px-2 py-1 rounded focus:outline-none ml-auto",style:{fontSize:U.xs,border:"1px solid #E5E5E0",background:"#FFFFFF",color:"#1a1a1a",width:200}})]}),o==="table"?a.map(u=>k.jsx(Jn,{section:u,search:i},u.kind)):k.jsx(Qn,{elements:g,model:e,relationshipTypes:t.relationshipTypes}),o==="table"&&a.length===0&&k.jsx("div",{style:{color:"#9CA3AF",fontSize:U.sm,padding:24},children:"This view selects no elements."})]})})}const eo=8;function zt(t,e,n){const o=(e.get(t.id)??[]).filter(s=>n.has(s)).map(s=>zt(n.get(s),e,n));return o.sort(We),{id:t.id,label:t.name,element:t,kind:t.kind,layer:t.layer,children:o,count:1+o.reduce((s,i)=>s+i.count,0)}}const We=(t,e)=>(t.kind??"").localeCompare(e.kind??"")||t.label.localeCompare(e.label);function to(t,e){const n=Ye(t,e),o=new Map,s=[];for(const i of n.roots){const l=n.elements.get(i),g=zt(l,n.childrenMap,n.elements),a=l.package;if(!a){s.push(g);continue}if(!o.has(a)){const u=a.split("::").pop()??a,r={id:`pkg:${a}`,label:u,title:a,children:[],count:0};o.set(a,r),s.push(r)}const d=o.get(a);d.children.push(g),d.count+=g.count}for(const i of o.values()){const l=new Set(i.children.map(a=>a.kind));if(i.children.length<=eo||l.size<=1){i.children.sort(We);continue}const g=new Map;for(const a of i.children){const d=a.kind??"—";g.has(d)||g.set(d,[]),g.get(d).push(a)}i.children=[...g.entries()].sort((a,d)=>a[0].localeCompare(d[0])).map(([a,d])=>{var u;return{id:`kind:${i.id}:${a}`,label:a,kind:a,layer:(u=d[0])==null?void 0:u.layer,children:d.sort(We),count:d.reduce((r,p)=>r+p.count,0)}})}return s.sort(We),s}function no(t,e){const n=e.trim().toLowerCase();if(!n)return;const o=new Set,s=new Set,i=(l,g)=>{const a=l.label.toLowerCase().includes(n)||(l.kind??"").toLowerCase().includes(n);let d=!1;for(const u of l.children)i(u,[...g,l.id])&&(d=!0);if(a||d){o.add(l.id);for(const u of g)o.add(u),s.add(u);return d&&s.add(l.id),!0}return!1};for(const l of t)i(l,[]);return{visible:o,expanded:s}}function oo(t){if(!t)return"·";const e=t.replace(/[^A-Za-z]/g,"").match(/[A-Z]/g);return e&&e.length>=2?e.slice(0,2).join(""):t.slice(0,2).toUpperCase()}const so=26;function Gt({node:t,depth:e,expanded:n,visible:o,forceExpanded:s,onToggle:i}){const l=ze(w=>w.selectElement),g=ze(w=>w.selectedElementId);if(o&&!o.has(t.id))return null;const a=n.has(t.id)||!!(s!=null&&s.has(t.id)),d=t.children.length>0,u=!t.element,r=Me[t.layer??""]||"#95A5A6",p=t.element&&t.id===g;return k.jsxs(k.Fragment,{children:[k.jsxs("div",{className:"flex items-center gap-1.5",style:{height:so,paddingLeft:8+e*18,cursor:"pointer",background:p?"#2DD4A818":void 0,borderRadius:6},onMouseEnter:w=>{p||(w.currentTarget.style.background="#F0F0ED")},onMouseLeave:w=>{w.currentTarget.style.background=p?"#2DD4A818":"transparent"},onClick:()=>{d&&i(t.id),t.element&&l(t.id)},title:t.title??t.kind,children:[k.jsx("span",{style:{width:12,textAlign:"center",flexShrink:0,fontSize:"9px",color:"#9CA3AF",transform:a?"rotate(90deg)":"none",transition:"transform 120ms ease",visibility:d?"visible":"hidden"},children:"▶"}),u?k.jsx("span",{style:{fontSize:"10px",flexShrink:0},children:t.id.startsWith("pkg:")?"📦":"▣"}):k.jsx("span",{style:{flexShrink:0,width:20,height:16,borderRadius:4,background:r+"22",color:r,fontSize:"8px",fontWeight:800,display:"inline-flex",alignItems:"center",justifyContent:"center",letterSpacing:"0.02em"},title:t.kind,children:oo(t.kind)}),k.jsx("span",{style:{fontSize:U.xs,fontWeight:u?700:500,color:u?"#1B3A4B":"#374151",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:t.label}),d&&k.jsx("span",{style:{fontSize:"9px",color:"#9CA3AF"},children:t.count})]}),a&&t.children.map(w=>k.jsx(Gt,{node:w,depth:e+1,expanded:n,visible:o,forceExpanded:s,onToggle:i},w.id))]})}function Eo({diagram:t,model:e,viewpointFilter:n}){const[o,s]=ie.useState(new Set),[i,l]=ie.useState(""),g=ie.useMemo(()=>{const h=Object.values(e.elements);return n?h.filter(n):h},[e,n]),a=ie.useMemo(()=>to(g,e.relationships),[g,e.relationships]),d=ie.useMemo(()=>no(a,i),[a,i]),u=ie.useCallback(h=>{s(m=>{const c=new Set(m);return c.has(h)?c.delete(h):c.add(h),c})},[]),r=ie.useCallback((h,m)=>{for(const c of h)c.children.length>0&&(m.add(c.id),r(c.children,m));return m},[]),p=_t.browser,w=g.length;return k.jsx("div",{className:"flex-1 overflow-auto",style:{background:"#F7F7F5"},children:k.jsxs("div",{style:{padding:"16px 20px",maxWidth:860},children:[k.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[k.jsx("span",{className:"px-1.5 py-0.5 rounded font-semibold",style:{background:p.color+"20",color:p.color,fontSize:U.badge},title:p.fullName,children:p.label}),k.jsx("span",{style:{fontSize:U.md,fontWeight:700,color:"#1a1a1a"},children:t.name}),k.jsxs("span",{style:{fontSize:U.xs,color:"#9CA3AF"},children:[w," elements"]}),k.jsx("button",{onClick:()=>s(r(a,new Set)),className:"px-2 py-0.5 text-xs font-medium rounded ml-2",style:{background:"#FFFFFF",color:"#374151",border:"1px solid #E5E5E0",cursor:"pointer"},children:"Expand All"}),k.jsx("button",{onClick:()=>s(new Set),className:"px-2 py-0.5 text-xs font-medium rounded",style:{background:"#FFFFFF",color:"#374151",border:"1px solid #E5E5E0",cursor:"pointer"},children:"Collapse All"}),k.jsx("input",{value:i,onChange:h=>l(h.target.value),placeholder:"Filter by name or kind…",className:"px-2 py-1 rounded focus:outline-none ml-auto",style:{fontSize:U.xs,border:"1px solid #E5E5E0",background:"#FFFFFF",color:"#1a1a1a",width:220}})]}),k.jsxs("div",{style:{background:"#FFFFFF",border:"1px solid #E5E5E0",borderRadius:10,padding:"10px 8px"},children:[a.length===0&&k.jsx("div",{style:{color:"#9CA3AF",fontSize:U.sm,padding:16},children:"This view selects no elements."}),a.map(h=>k.jsx(Gt,{node:h,depth:0,expanded:o,visible:d==null?void 0:d.visible,forceExpanded:d==null?void 0:d.expanded,onToggle:u},h.id)),d&&a.every(h=>!d.visible.has(h.id))&&k.jsxs("div",{style:{color:"#9CA3AF",fontSize:U.sm,padding:16},children:["No matches for “",i,"”."]})]})]})})}function ko(t){var e,n,o;return((o=(n=(e=t)==null?void 0:e.canvas)==null?void 0:n.layout)==null?void 0:o.provider)??Vt}function vo(t,e){var o;const n=t??{nodes:{},edges:{}};return{...n,canvas:{...n.canvas,layout:{...(o=n.canvas)==null?void 0:o.layout,provider:e.id,providerVersion:e.version,contractVersion:e.contractVersion}}}}export{Eo as B,De as C,uo as G,po as I,mo as P,mt as a,cn as b,wo as c,rn as d,jt as e,xo as f,So as g,ln as h,Lt as i,ho as j,on as k,sn as l,yo as m,bo as n,Io as o,Mo as p,fo as q,go as r,ko as s,nn as t,lo as v,vo as w};
|
|
1
|
+
import{d as Me,E as j,R as Te,p as lt,q as Ft,F as U,V as _t,u as ze}from"./index-CgRwea72.js";import{r as Xt,D as Vt}from"./layout-providers-BAUgp0nu.js";import{j as k}from"./reactflow-WKyu73tD.js";import{a as ie}from"./zustand-qbFpP9Up.js";const De=new Set(["composedOf","composes","decomposedBy","aggregation"]);function Ye(t,e){const n=new Map;for(const l of t)n.set(l.id,l);const o=new Map,s=new Set;for(const l of e)De.has(l.type)&&(!n.has(l.sourceId)||!n.has(l.targetId)||l.sourceId!==l.targetId&&(s.has(l.targetId)||(o.has(l.sourceId)||o.set(l.sourceId,[]),o.get(l.sourceId).push(l.targetId),s.add(l.targetId))));return{roots:[...n.keys()].filter(l=>!s.has(l)),childrenMap:o,elements:n}}function lo(t){if(t.elements.size===0)return null;const e=new Set,n=s=>{if(!e.has(s)){e.add(s);for(const i of t.childrenMap.get(s)??[])n(i)}};t.roots[0]&&n(t.roots[0]);const o=[...t.elements.keys()].filter(s=>!e.has(s));return t.roots.length===1&&o.length===0?null:{rootIds:t.roots,disconnectedIds:o}}const qt=new Set(["name","title","description","shortDescription","longDescription","sourceReference","rationaleText","semantics","protocolSemantics","queryDescription","dataSourceDescription","documentUsage","doc"]);function Ut(t,e=4){const n=[];t.shortId&&n.push({key:"id",value:t.shortId});for(const[o,s]of Object.entries(t.attributes)){if(n.length>=e)break;if(qt.has(o)||o.includes(".")||o==="id"&&n.some(l=>l.key==="id"))continue;const i=s.split("::").pop().trim();!i||i.length>28||n.push({key:o,value:i})}return n.slice(0,e)}const Ae={layout:(t,e)=>Xt(t,e)},Zt=(t,e,n,o=10)=>{const s=n.x-o,i=n.x+n.width+o,l=n.y-o,g=n.y+n.height+o;return t.y===e.y?t.y>=l&&t.y<=g&&Math.max(t.x,e.x)>=s&&Math.min(t.x,e.x)<=i:t.x===e.x?t.x>=s&&t.x<=i&&Math.max(t.y,e.y)>=l&&Math.min(t.y,e.y)<=g:!1},Pt=(t,e,n,o)=>t.y===e.y&&n.y===o.y&&t.y===n.y?Math.max(Math.min(t.x,e.x),Math.min(n.x,o.x))<Math.min(Math.max(t.x,e.x),Math.max(n.x,o.x)):t.x===e.x&&n.x===o.x&&t.x===n.x?Math.max(Math.min(t.y,e.y),Math.min(n.y,o.y))<Math.min(Math.max(t.y,e.y),Math.max(n.y,o.y)):!1,Dt=(t,e,n,o)=>{const s=t.y===e.y,i=n.y===o.y;if(s===i)return!1;const l=s?t:n,g=s?e:o,a=s?n:t,d=s?o:e;return a.x>Math.min(l.x,g.x)&&a.x<Math.max(l.x,g.x)&&l.y>Math.min(a.y,d.y)&&l.y<Math.max(a.y,d.y)};function Lt(t,e,n=18){const o=new Map,s=[],i=Math.max(12,n*.75),l=[...t].sort((g,a)=>Math.abs(a.source.x-a.target.x)+Math.abs(a.source.y-a.target.y)-(Math.abs(g.source.x-g.target.x)+Math.abs(g.source.y-g.target.y)));for(const g of l){const{source:a,target:d}=g,u=e.filter(y=>y.id!==g.sourceNodeId&&y.id!==g.targetNodeId),r=new Set([a.x,d.x,(a.x+d.x)/2,a.x-n,a.x+n,d.x-n,d.x+n]),p=new Set([a.y,d.y,(a.y+d.y)/2,a.y-n,a.y+n,d.y-n,d.y+n]);for(const y of u)r.add(y.x-i),r.add(y.x+y.width+i),p.add(y.y-i),p.add(y.y+y.height+i);for(const[y,b]of s)r.add(y.x),r.add(b.x),p.add(y.y),p.add(b.y);const w=[...r].sort((y,b)=>y-b),h=[...p].sort((y,b)=>y-b),m=[],c=new Map,M=(y,b)=>`${y.toFixed(3)}:${b.toFixed(3)}`,N=y=>u.some(b=>y.x>b.x-i&&y.x<b.x+b.width+i&&y.y>b.y-i&&y.y<b.y+b.height+i);for(const y of h)for(const b of w){const E={x:b,y};N(E)&&M(b,y)!==M(a.x,a.y)&&M(b,y)!==M(d.x,d.y)||(c.set(M(b,y),m.length),m.push(E))}const S=new Map,I=(y,b)=>{S.has(y)||S.set(y,[]),S.has(b)||S.set(b,[]),S.get(y).push(b),S.get(b).push(y)},R=(y,b)=>!u.some(E=>Zt(y,b,E,i-1));for(const y of h){const b=w.map(E=>c.get(M(E,y))).filter(E=>E!==void 0);for(let E=1;E<b.length;E++)R(m[b[E-1]],m[b[E]])&&I(b[E-1],b[E])}for(const y of w){const b=h.map(E=>c.get(M(y,E))).filter(E=>E!==void 0);for(let E=1;E<b.length;E++)R(m[b[E-1]],m[b[E]])&&I(b[E-1],b[E])}const v=c.get(M(a.x,a.y)),te=c.get(M(d.x,d.y)),J=(y,b)=>`${y}:${b}`,W=v===void 0?[]:[{node:v,dir:"N",g:0,f:Math.abs(a.x-d.x)+Math.abs(a.y-d.y)}],X=new Map(v===void 0?[]:[[J(v,"N"),0]]),V=new Map;W[0]&&V.set(J(W[0].node,W[0].dir),W[0]);let re;const oe=(y,b,E)=>!E||E==="left"&&b.x<y.x||E==="right"&&b.x>y.x||E==="top"&&b.y<y.y||E==="bottom"&&b.y>y.y;for(;W.length>0;){W.sort((b,E)=>b.f-E.f);const y=W.shift();if(y.node===te){re=y;break}for(const b of S.get(y.node)??[]){const E=m[y.node],O=m[b];if(y.node===v&&!oe(E,O,g.sourceSide)||b===te&&!oe(O,E,g.targetSide))continue;const D=E.y===O.y?"H":"V",T=Math.abs(E.x-O.x)+Math.abs(E.y-O.y);let F=y.dir!=="N"&&y.dir!==D?90:0;for(const[ye,Oe]of s)Pt(E,O,ye,Oe)?F+=4e3:Dt(E,O,ye,Oe)&&(F+=600);const B=Math.abs(E.x-d.x)+Math.abs(E.y-d.y),ae=Math.abs(O.x-d.x)+Math.abs(O.y-d.y);ae>B&&(F+=(ae-B)*1.5);const Z=y.g+T+F,ne=J(b,D);if(Z>=(X.get(ne)??Number.POSITIVE_INFINITY))continue;const fe={node:b,dir:D,g:Z,f:Z+ae,parent:J(y.node,y.dir)};X.set(ne,Z),V.set(ne,fe),W.push(fe)}}let Q=[];if(re){let y=re;for(;y;)Q.push(m[y.node]),y=y.parent?V.get(y.parent):void 0;Q.reverse()}if(Q.length<2){const y=(a.x+d.x)/2;Q=[a,{x:y,y:a.y},{x:y,y:d.y},d]}const x=Q.filter((y,b)=>b===0||b===Q.length-1||!(Q[b-1].x===y.x&&y.x===Q[b+1].x||Q[b-1].y===y.y&&y.y===Q[b+1].y));o.set(g.id,x);for(let y=1;y<x.length;y++)s.push([x[y-1],x[y]])}return o}function Jt(t,e,n=1.5){if(t<=0||e<=0)return Number.POSITIVE_INFINITY;const o=1+1.35*Math.abs(Math.log(t/e/n));return t*e*o}function Qt(t,e=1.25){return t<=1?Math.max(t,1):Math.min(t,Math.max(2,Math.round(Math.sqrt(t*e))))}function Rt(t,e){const n=new Set(t.map(d=>d.id)),o=new Map,s=new Map(t.map(d=>[d.id,0]));for(const d of e)!n.has(d.source)||!n.has(d.target)||d.source===d.target||(o.has(d.source)||o.set(d.source,[]),o.get(d.source).push(d.target),s.set(d.target,(s.get(d.target)??0)+1));const i=t.map(d=>d.id),l=i.filter(d=>(s.get(d)??0)===0),g=[],a=new Set;for(;l.length;){const d=l.shift();if(!a.has(d)){a.add(d),g.push(d);for(const u of o.get(d)??[])s.set(u,(s.get(u)??1)-1),s.get(u)===0&&l.push(u)}}for(const d of i)a.has(d)||g.push(d);return g}function en(t,e,n,o,s){const i=new Map(t.map(m=>[m.id,m])),l=Rt(t,e).map(m=>i.get(m)),g=Qt(t.length,s),a=Math.ceil(t.length/g),d=l.map((m,c)=>{const M=Math.floor(c/g),N=c%g,S=M%2===0?N:g-1-N;return{node:m,row:M,col:S}}),u=Array.from({length:g},()=>0),r=Array.from({length:a},()=>0);for(const{node:m,row:c,col:M}of d)u[M]=Math.max(u[M],m.width),r[c]=Math.max(r[c],m.height);const p=u.map((m,c)=>c===0?0:u.slice(0,c).reduce((M,N)=>M+N,0)+n*c),w=r.map((m,c)=>c===0?0:r.slice(0,c).reduce((M,N)=>M+N,0)+o*c),h=d.map(({node:m,row:c,col:M})=>({...m,x:p[M]+(u[M]-m.width)/2,y:w[c]+(r[c]-m.height)/2}));return{strategy:"balanced-board",width:u.reduce((m,c)=>m+c,0)+n*Math.max(g-1,0),height:r.reduce((m,c)=>m+c,0)+o*Math.max(a-1,0),children:h}}function tn(t,e,n,o){const s={x:t.x+t.width/2,y:t.y+t.height/2},i={x:e.x+e.width/2,y:e.y+e.height/2},l={x:n.x+n.width/2,y:n.y+n.height/2},g={x:o.x+o.width/2,y:o.y+o.height/2},a=(d,u,r)=>(u.x-d.x)*(r.y-d.y)-(u.y-d.y)*(r.x-d.x);return a(s,i,l)*a(s,i,g)<0&&a(l,g,s)*a(l,g,i)<0}function dt(t,e,n=1.5){const o=new Map(t.children.map(h=>[h.id,h]));let s=0,i=0,l=0,g=0;const a=e.filter(h=>o.has(h.source)&&o.has(h.target));for(const h of a){const m=o.get(h.source),c=o.get(h.target);s+=Math.abs(m.x+m.width/2-(c.x+c.width/2))+Math.abs(m.y+m.height/2-(c.y+c.height/2));const M=c.x+c.width/2-(m.x+m.width/2),N=Math.abs(c.y+c.height/2-(m.y+m.height/2));M<=0&&(l+=55e3),l+=Math.max(0,N-Math.max(M,0))*80,Math.abs(M)>8&&N>8&&(g+=18e3)}for(let h=0;h<a.length;h++)for(let m=h+1;m<a.length;m++){const c=a[h],M=a[m];c.source===M.source||c.source===M.target||c.target===M.source||c.target===M.target||tn(o.get(c.source),o.get(c.target),o.get(M.source),o.get(M.target))&&i++}const d=Lt(a.map(h=>{const m=o.get(h.source),c=o.get(h.target);return{id:h.id,source:{x:m.x+m.width,y:m.y+m.height/2},target:{x:c.x,y:c.y+c.height/2},sourceNodeId:h.source,targetNodeId:h.target,sourceSide:"right",targetSide:"left"}}),t.children);let u=0,r=0,p=0;const w=[];for(const[h,m]of d){r+=Math.max(0,m.length-2);for(let c=1;c<m.length;c++)u+=Math.abs(m[c].x-m[c-1].x)+Math.abs(m[c].y-m[c-1].y),w.push({edgeId:h,a:m[c-1],b:m[c]})}for(let h=0;h<w.length;h++)for(let m=h+1;m<w.length;m++){const c=w[h],M=w[m];c.edgeId!==M.edgeId&&(Pt(c.a,c.b,M.a,M.b)||Dt(c.a,c.b,M.a,M.b))&&p++}return Jt(t.width,t.height,n)+s*18+l+g+i*Math.max(t.width*t.height*.35,5e4)+u*6+r*4e3+p*Math.max(t.width*t.height*.45,7e4)}async function ht(t){const{nodes:e,edges:n}=t;if(e.length===0)return{strategy:"balanced-board",width:0,height:0,children:[]};const o=t.targetAspect??1.5,s=t.gapX??54,i=t.gapY??58,l=a=>{const d=new Map(e.map(c=>[c.id,c])),u=Rt(e,n).map(c=>d.get(c));let r=0;const p=Math.max(...a==="RIGHT"?u.map(c=>c.height):u.map(c=>c.width));let w=u.map(c=>{const M={...c,x:a==="RIGHT"?r:(p-c.width)/2,y:a==="DOWN"?r:(p-c.height)/2};return r+=a==="RIGHT"?c.width+s:c.height+i,M});if(a==="RIGHT"&&n.some(c=>c.sourceAnchorY!==void 0&&c.targetAnchorY!==void 0)){new Map(w.map(I=>[I.id,I]));const c=new Map,M=[...w].sort((I,R)=>R.width*R.height-I.width*I.height)[0];c.set(M.id,0);let N=!0;for(;N;){N=!1;for(const I of n){if(I.sourceAnchorY===void 0||I.targetAnchorY===void 0)continue;const R=c.get(I.source),v=c.get(I.target);R!==void 0&&v===void 0?(c.set(I.target,R+I.sourceAnchorY-I.targetAnchorY),N=!0):v!==void 0&&R===void 0&&(c.set(I.source,v+I.targetAnchorY-I.sourceAnchorY),N=!0)}}w=w.map(I=>({...I,y:c.get(I.id)??I.y}));const S=Math.min(...w.map(I=>I.y));w=w.map(I=>({...I,y:I.y-S}))}const h=Math.max(...w.map(c=>c.x+c.width)),m=Math.max(...w.map(c=>c.y+c.height));return{strategy:a==="RIGHT"?"layered-right":"layered-down",width:h,height:m,children:w}};if(t.directedFlowAxis==="RIGHT")return l("RIGHT");if(t.directedFlowAxis==="DOWN")return l("DOWN");const g=[en(e,n,s,i,o),l("RIGHT"),l("DOWN")];if(e.length>=3&&n.length>0)try{const d=(await Ae.layout({id:`resolver-${t.id}`,layoutOptions:{"elk.algorithm":"layered","elk.direction":"RIGHT","elk.edgeRouting":"ORTHOGONAL","elk.aspectRatio":String(o),"elk.padding":"[top=0,left=0,bottom=0,right=0]","elk.spacing.nodeNode":String(i),"elk.layered.spacing.nodeNodeBetweenLayers":String(s),"elk.layered.nodePlacement.strategy":"BRANDES_KOEPF","elk.layered.nodePlacement.favorStraightEdges":"true","elk.layered.crossingMinimization.strategy":"LAYER_SWEEP","elk.layered.wrapping.strategy":"MULTI_EDGE","elk.layered.wrapping.additionalEdgeSpacing":"18","elk.separateConnectedComponents":"true","elk.layered.considerModelOrder.strategy":"NODES_AND_EDGES","elk.randomSeed":"1"},children:e.map(u=>({id:u.id,width:u.width,height:u.height})),edges:n.map(u=>({id:u.id,sources:[u.source],targets:[u.target]}))},{providerId:t.layoutProviderId})).children??[];if(d.length===e.length){const u=new Map(e.map(h=>[h.id,h])),r=Math.min(...d.map(h=>h.x??0)),p=Math.min(...d.map(h=>h.y??0)),w=d.map(h=>({...u.get(h.id),x:(h.x??0)-r,y:(h.y??0)-p}));g.push({strategy:"elk-layered",width:Math.max(...w.map(h=>h.x+h.width)),height:Math.max(...w.map(h=>h.y+h.height)),children:w})}}catch{}return g.reduce((a,d)=>dt(d,n,o)<dt(a,n,o)?d:a)}async function nn(t,e){var N;const n=Object.values(t.elements),o=e!=null&&e.viewpointFilter?n.filter(e.viewpointFilter):n,s=new Set(o.map(S=>S.id)),i=(N=e==null?void 0:e.relationshipTypes)!=null&&N.length?new Set(e.relationshipTypes.map(S=>S.toLowerCase())):void 0,l=t.relationships.filter(S=>s.has(S.sourceId)&&s.has(S.targetId)&&(!i||i.has(S.type.toLowerCase()))),g=o.length,a=g>60?"RIGHT":"DOWN",d=g>40?"24":g>20?"32":"40",u=g>40?"60":g>20?"80":"100",r=e!=null&&e.compartments?new Map(o.map(S=>[S.id,Ut(S)])):void 0,p=S=>Math.max(S.name.length*7.5+48,S.kind.length*6.8+48,130),w=S=>{const I=r==null?void 0:r.get(S.id);return 52+(I!=null&&I.length?I.length*15+10:0)},h={id:"root",layoutOptions:{"elk.algorithm":"layered","elk.direction":a,"elk.spacing.nodeNode":d,"elk.layered.spacing.nodeNodeBetweenLayers":u,"elk.layered.spacing.edgeNodeBetweenLayers":"24","elk.layered.considerModelOrder.strategy":"NODES_AND_EDGES","elk.layered.nodePlacement.strategy":"NETWORK_SIMPLEX","elk.layered.crossingMinimization.strategy":"LAYER_SWEEP","elk.layered.compaction.postCompaction.strategy":"EDGE_LENGTH","elk.layered.wrapping.strategy":"MULTI_EDGE","elk.layered.wrapping.additionalEdgeSpacing":"16","elk.separateConnectedComponents":"true","elk.spacing.componentComponent":"56","elk.aspectRatio":"1.6","elk.padding":"[top=20, left=20, bottom=20, right=20]"},children:o.map(S=>({id:S.id,width:p(S),height:w(S)})),edges:l.map((S,I)=>({id:S.id||`e-${I}`,sources:[S.sourceId],targets:[S.targetId]}))};let m;try{m=await Ae.layout(h,{providerId:e==null?void 0:e.layoutProviderId})}catch(S){console.warn("ELK layout failed, retrying without edge wrapping:",S),delete h.layoutOptions["elk.layered.wrapping.strategy"],delete h.layoutOptions["elk.layered.wrapping.additionalEdgeSpacing"],m=await Ae.layout(h,{providerId:e==null?void 0:e.layoutProviderId})}const c=(m.children||[]).map(S=>{const I=t.elements[S.id],R=Me[I==null?void 0:I.layer]||"#666",v=r==null?void 0:r.get(S.id);return{id:S.id,type:"diagramNode",position:{x:S.x||0,y:S.y||0},data:{label:(I==null?void 0:I.name)||S.id,kind:(I==null?void 0:I.kind)??"",layer:(I==null?void 0:I.layer)??"",construct:I==null?void 0:I.construct,color:R,...v!=null&&v.length?{compartments:v}:{}}}}),M=l.map((S,I)=>{const R=Te[S.type]||"#9CA3AF",v=S.type.toLowerCase(),te=S.type==="flow",J=S.type==="succession",W=v==="composedof"||v==="decomposedby"||v==="aggregation"||v==="composes";return{id:S.id||`e-${I}`,source:S.sourceId,target:S.targetId,label:W?void 0:S.type,type:J?"smoothstep":"default",animated:te,style:{stroke:R,strokeWidth:W?2.5:te?2:j.defaultWidth,strokeDasharray:W||te?void 0:S.type==="traceTo"?"5 3":void 0},labelStyle:{fontSize:"10px",fill:"#6B7280",fontWeight:500},labelBgPadding:j.labelBgPadding,labelBgBorderRadius:j.labelBgRadius,labelBgStyle:j.labelBgStyle,markerEnd:{type:W?"arrow":"arrowclosed",color:R,width:j.arrowSize,height:j.arrowSize}}});return{nodes:c,edges:M}}const Bt=new Set;for(const t of Ft)if(["logical","physical"].includes(t.id))for(const e of t.kinds)Bt.add(e);function jt(t){const e=new Map;for(const i of Object.values(t.elements))Bt.has(i.kind)&&e.set(i.id,i);const n=new Map,o=new Set;for(const i of t.relationships)(i.type==="composedOf"||i.type==="aggregation")&&e.has(i.sourceId)&&e.has(i.targetId)&&(n.has(i.sourceId)||n.set(i.sourceId,[]),n.get(i.sourceId).push(i.targetId),o.add(i.targetId));return{roots:[...e.keys()].filter(i=>!o.has(i)),childrenMap:n,elements:e}}const we=64,Be=100,ut=110,gt=300,ft=44;function qe(t){return Math.max(t.name.length*8+80,220)}async function on(t,e){const n=e.tree??jt(t);if(n.roots.length===0)return{nodes:[],edges:[]};const o=e.positionCache??new Map,s=p=>e.nodeDirections.get(p)||"vertical",i=p=>(n.childrenMap.get(p)||[]).filter(w=>n.elements.has(w)),l=p=>{const w=n.elements.get(p),h=qe(w),m=i(p);if(!e.expandedNodes.has(p)||m.length===0)return{width:h,height:we};const c=m.map(l);if(s(p)==="vertical"){const S=c.reduce((R,v)=>R+v.width,0)+(c.length-1)*Be,I=Math.max(...c.map(R=>R.height));return{width:Math.max(h,S),height:we+ut+I}}const M=Math.max(...c.map(S=>S.width)),N=c.reduce((S,I)=>S+I.height,0)+(c.length-1)*ft;return{width:h+gt+M,height:Math.max(we,N)}},g=[],a=[],d=Te.composedOf,u=(p,w,h,m)=>{const c=n.elements.get(p),M=qe(c),N=i(p),S=e.expandedNodes.has(p);let I=o.get(p);I||(I={x:h-M/2,y:m-we/2},o.set(p,I));const R={element:c,layerColor:Me[c.layer]||"#666",isExpanded:S,hasChildren:N.length>0,childCount:N.length,direction:s(p),onToggleExpand:()=>e.callbacks.onToggleExpand(p),onToggleDirection:()=>e.callbacks.onToggleDirection(p),showDirectionButton:!0,label:c.name};if(g.push({id:p,type:"decompositionNode",position:{x:I.x,y:I.y},data:R,style:{width:M,height:we}}),w){const te=s(w);a.push({id:`decomp-${w}-${p}`,source:w,target:p,sourceHandle:te==="vertical"?"bottom":"right",targetHandle:te==="vertical"?"top":"left",type:"smoothstep",style:{stroke:d,strokeWidth:j.defaultWidth},markerEnd:{type:"arrowclosed",color:d,width:j.arrowSize,height:j.arrowSize}})}if(!S||N.length===0)return;const v=N.map(l);if(s(p)==="vertical"){const te=v.reduce((X,V)=>X+V.width,0)+(v.length-1)*Be;let J=I.x+M/2-te/2;const W=I.y+we+ut+we/2;N.forEach((X,V)=>{u(X,p,J+v[V].width/2,W),J+=v[V].width+Be})}else{const te=I.x+M+gt;let J=I.y+we+20;N.forEach((W,X)=>{const V=n.elements.get(W);u(W,p,te+qe(V)/2,J+we/2),J+=v[X].height+ft})}};let r=0;for(const p of n.roots){if(!n.elements.has(p))continue;const w=l(p);u(p,null,r+w.width/2,100),r+=w.width+Be*2}return{nodes:g,edges:a}}const Ue=240,Ze=80,Ee=20;function sn(t,e){const n=e.tree??jt(t);if(n.roots.length===0)return{nodes:[],edges:[]};const o=[];function s(r,p,w,h,m){const c=n.elements.get(r);if(!c)return{width:0,height:0};const M=Me[c.layer]||"#666",N=n.childrenMap.get(r)||[],S=N.length>0,I=e.expandedNodes.has(r);let R=Ue,v=Ze;if(I&&S){let W=Ee,X=Ze+Ee,V=0,re=0;for(const oe of N){if(!n.elements.has(oe))continue;const Q=s(oe,r,w+1,W,X);W+Q.width>800&&W>Ee&&(W=Ee,X+=V+Ee,V=0,i(oe),s(oe,r,w+1,W,X)),W+=Q.width+Ee,V=Math.max(V,Q.height),re=Math.max(re,W)}R=Math.max(Ue,re),v=X+V+Ee}const te=lt[w%lt.length],J={element:c,layerColor:M,isExpanded:I,hasChildren:S,childCount:N.length,direction:"vertical",onToggleExpand:()=>e.callbacks.onToggleExpand(r),onToggleDirection:()=>{},showDirectionButton:!1,depthBgColor:te,isContainer:S,label:c.name};return o.push({id:r,type:"decompositionNode",position:{x:h,y:m},...p?{parentId:p,extent:"parent"}:{},data:J,style:{width:I&&S?R:Ue,height:I&&S?v:Ze}}),{width:R,height:v}}function i(r){const p=new Set([r]),w=h=>{for(const m of n.childrenMap.get(h)||[])p.add(m),w(m)};w(r);for(let h=o.length-1;h>=0;h--)p.has(o[h].id)&&o.splice(h,1)}let l=0;for(const r of n.roots){if(!n.elements.has(r))continue;const p=s(r,null,0,l,0);l+=p.width+40}const g=new Map(o.map(r=>[r.id,r])),a=[],d=new Set,u=r=>{if(d.has(r.id))return;const p=r.parentId?g.get(r.parentId):void 0;p&&u(p),d.add(r.id),a.push(r)};for(const r of o)u(r);return{nodes:a,edges:[]}}const Ht=new Set;for(const t of Ft)if(t.id==="functions")for(const e of t.kinds)Ht.add(e);function rn(t){const e=new Map;for(const i of Object.values(t.elements))Ht.has(i.kind)&&e.set(i.id,i);const n=new Map,o=new Set;for(const i of t.relationships)(i.type==="decomposedBy"||i.type==="composedOf")&&e.has(i.sourceId)&&e.has(i.targetId)&&(n.has(i.sourceId)||n.set(i.sourceId,[]),n.get(i.sourceId).push(i.targetId),o.add(i.targetId));return{roots:[...e.keys()].filter(i=>!o.has(i)),childrenMap:n,elements:e}}async function ho(t,e){const n=rn(t);if(n.roots.length===0)return{nodes:[],edges:[]};const o=new Set,s=[];function i(u){if(n.elements.has(u)&&(o.add(u),e.expandedNodes.has(u)))for(const r of n.childrenMap.get(u)||[])n.elements.has(r)&&(s.push({parentId:u,childId:r}),i(r))}for(const u of n.roots)i(u);const l={id:"root",layoutOptions:{"elk.algorithm":"mrtree","elk.direction":"DOWN","elk.spacing.nodeNode":"40","elk.mrtree.searchOrder":"DFS"},children:[...o].map(u=>{const r=n.elements.get(u);return{id:u,width:Math.max(r.name.length*8+80,220),height:56}}),edges:s.map((u,r)=>({id:`fbs-${r}`,sources:[u.parentId],targets:[u.childId]}))},a=((await Ae.layout(l,{providerId:e.layoutProviderId})).children||[]).map(u=>{const r=n.elements.get(u.id),p=Me[r.layer]||"#E67E22",w=(n.childrenMap.get(u.id)||[]).length,h=e.nodeDirections.get(u.id)||"vertical",m={element:r,layerColor:p,isExpanded:e.expandedNodes.has(u.id),hasChildren:w>0,childCount:w,direction:h,onToggleExpand:()=>e.callbacks.onToggleExpand(u.id),onToggleDirection:()=>e.callbacks.onToggleDirection(u.id),showDirectionButton:!0,label:r.name};return{id:u.id,type:"decompositionNode",position:{x:u.x||0,y:u.y||0},data:m}}),d=s.map((u,r)=>{const p=e.nodeDirections.get(u.parentId)||"vertical";return{id:`fbs-e-${r}`,source:u.parentId,target:u.childId,sourceHandle:p==="vertical"?"bottom":"right",targetHandle:p==="vertical"?"top":"left",type:"default",style:{stroke:Te.decomposedBy,strokeWidth:j.defaultWidth},markerEnd:{type:"arrowclosed",color:Te.decomposedBy,width:j.arrowSize,height:j.arrowSize}}});return{nodes:a,edges:d}}const uo=["graph","tree","containment"];function go(t){const e=t==null?void 0:t.layoutHint;return e==="tree"||e==="containment"||e==="graph"?e:"graph"}function an(t,e){const n=Object.values(t.elements);return e?n.filter(e):n}function cn(t,e){return Ye(an(t,e),t.relationships)}async function fo(t,e){if(e.mode==="graph")return nn(t,{viewpointFilter:e.viewpointFilter,relationshipTypes:e.relationshipTypes,compartments:!0,layoutProviderId:e.layoutProviderId});const n=cn(t,e.viewpointFilter);return e.mode==="tree"?on(t,{expandedNodes:e.expandedNodes,nodeDirections:e.nodeDirections,callbacks:e.callbacks,tree:n,positionCache:e.positionCache}):sn(t,{expandedNodes:e.expandedNodes,callbacks:{onToggleExpand:e.callbacks.onToggleExpand},tree:n})}const mt="__inner",mo={in:"#16A34A",out:"#D97706",inout:"#2563EB"},ln={data:"#3498DB",energy:"#D97706",material:"#16A34A",control:"#6B7280"};function dn(t,e){const n=t??"";return/energy|power|voltage|current|thermal|heat/i.test(n)?"energy":/material|fluid|gas|liquid|drug|dose|batch|consumable/i.test(n)?"material":e&&/succession|control/i.test(e)?"control":"data"}function hn(t){return t.construct==="port"||t.kind.endsWith("Port")}function pt(t){var o,s;const e=(o=t.portSpec)==null?void 0:o.direction;if(e==="in"||e==="out"||e==="inout")return e;const n=(s=(t.attributes.direction??"").split("::").pop())==null?void 0:s.trim();if(n==="bidirectional")return"inout";if(n==="in"||n==="out"||n==="inout")return n}const ue=24,po=ue,Je=ue,He=30,Ce=70,Qe=62,je=18,yt=14,xt=128,Ne=38,Fe=18,et=90,wt=184,un=168,gn=(t,e=7.2)=>t.length*e+20,fn=t=>Math.min(Math.max(gn(t,7.1),132),216);function Wt(t){var o,s;const e=(o=t.portSpec)==null?void 0:o.direction,n=e==="in"||e==="out"||e==="inout"?e:(s=(t.attributes.direction??"").split("::").pop())==null?void 0:s.trim();if(n==="in")return"in";if(n==="out"||n==="inout"||n==="bidirectional"||/out(put)?$/i.test(t.name))return"out";if(/in(put)?$/i.test(t.name))return"in"}function mn(t,e,n){return Wt(t)??(e>n?"out":"in")}const pn=t=>t==="in"?"left":"right";function yn(t,e){const n=t.filter(s=>!e.isConnected(s)&&!e.hasChildParts(s)&&e.portCount(s)===0),o=new Set(n);return{flowKids:t.filter(s=>!o.has(s)),orphanKids:n}}function xn(t,e,n){const o=new Map,s=new Map;for(const[g,a]of t)a.owner&&(e(a.owner)?o.set(g,a.owner):t.has(a.owner)&&s.set(g,a.owner));for(const g of n)!De.has(g.type)||!t.has(g.targetId)||o.has(g.targetId)||s.has(g.targetId)||(e(g.sourceId)?o.set(g.targetId,g.sourceId):t.has(g.sourceId)&&s.set(g.targetId,g.sourceId));const i=new Map,l=(g,a)=>{const d=i.get(g)??o.get(g);if(d)return i.set(g,d),d;const u=s.get(g);if(!u||a.has(u))return;a.add(u);const r=l(u,a);return r&&i.set(g,r),r};for(const g of t.keys())l(g,new Set([g]));return{ownerPart:i,parentPort:s}}function bt(t,e,n){if(e==="none")return;if(e==="all")return t;let o=t;const s=new Set([o]);for(;n.has(o);){const i=n.get(o);if(s.has(i))break;s.add(i),o=i}return o}function wn(t,e,n){const o=new Set,s=i=>{if(!(o.has(i)||!e(i))){o.add(i);for(const l of t.get(i)??[])s(l)}};return s(n),o}function bn(t,e){const n=e.size??ue,o=e.pitch??Ne,s=e.nestedPitch??He,i=new Map;for(const l of["left","right"]){const g=t.filter(r=>e.sideOf(r)===l),a=g.length,d=Math.max(e.bodyBottom-e.bodyTop,0);let u=-1/0;g.forEach((r,p)=>{var h;let w=a===1&&e.singleCenterY!==void 0?e.singleCenterY:e.bodyTop+(a===1?d/2:(p+.5)/a*d);w=Math.max(w,e.bodyTop+o/2,u+o),u=w+((((h=e.weightOf)==null?void 0:h.call(e,r))??1)-1)*s,i.set(r,{x:l==="left"?-n/2:e.width-n/2,y:w-n/2,side:l})})}return i}async function yo(t,e){var at;const n=Object.values(t.elements),o=e!=null&&e.viewpointFilter?n.filter(e.viewpointFilter):n,s=new Map,i=[];for(const f of o)hn(f)?s.set(f.id,f):i.push(f);if(i.length===0)return{nodes:[],edges:[]};const l=(e==null?void 0:e.portDisplay)??"all",g=l!=="none",a=Ye(i,t.relationships),d=e!=null&&e.focusId&&a.elements.has(e.focusId)?e.focusId:void 0,u=d?wn(a.childrenMap,f=>a.elements.has(f),d):null,r=f=>a.elements.has(f)&&(!u||u.has(f)),p=f=>{var C;return(C=e==null?void 0:e.collapsedNodes)!=null&&C.has(f)?[]:(a.childrenMap.get(f)??[]).filter(r)},{ownerPart:w,parentPort:h}=xn(s,r,t.relationships);for(const f of[...s.keys()])w.has(f)||s.delete(f);const m=f=>bt(f,"ports",h),c=new Map;for(const[f,C]of w)!s.has(f)||h.has(f)||(c.has(C)||c.set(C,[]),c.get(C).push(f));const M=new Map;if(l==="all")for(const[f]of h){if(!s.has(f))continue;const C=m(f);!s.has(C)||C===f||(M.has(C)||M.set(C,[]),M.get(C).push(f))}const N=f=>{var C;return 1+(((C=M.get(f))==null?void 0:C.length)??0)},S=(at=e==null?void 0:e.relationshipTypes)!=null&&at.length?new Set(e.relationshipTypes.map(f=>f.toLowerCase())):void 0,I=f=>s.has(f)||r(f),R=t.relationships.filter(f=>!De.has(f.type)&&(!S||S.has(f.type.toLowerCase()))&&I(f.sourceId)&&I(f.targetId)&&f.sourceId!==f.targetId),v=new Set;for(const f of R)for(const C of[f.sourceId,f.targetId]){if(!s.has(C))continue;let A=C;for(;A&&!v.has(A);)v.add(A),A=h.get(A)}for(const[f,C]of c)c.set(f,C.filter(A=>v.has(A)));const te=new Set(R.filter(f=>r(f.sourceId)).map(f=>f.sourceId)),J=new Set(R.filter(f=>r(f.targetId)).map(f=>f.targetId)),W=f=>w.get(f)??f,X=new Map;for(const[f,C]of a.childrenMap)for(const A of C)r(A)&&X.set(A,f);const V=new Map,re=f=>{const C=V.get(f);if(C)return C;const A=s.get(f);let G=Wt(A);if(!G){const z=h.get(f);if(z&&s.has(z))G=re(z);else{let $=0,_=0;for(const H of R)H.sourceId===f&&$++,H.targetId===f&&_++;G=mn(A,$,_)}}return V.set(f,G),G},oe=f=>pn(re(f)),Q=f=>({left:f.some(C=>oe(C)==="left")?xt:yt,right:f.some(C=>oe(C)==="right")?xt:yt}),x=f=>fn(f.name),y=(f,C)=>{const A={left:0,right:0};for(const K of C)A[oe(K)]+=Ne+(N(K)-1)*He;const G=Math.max(A.left,A.right,12),z=Math.max(Qe+G+10,un),$=Q(C),_=Math.max(x(f),118),H=Math.max($.left+_+$.right,wt),q=bn(C,{width:H,bodyTop:Qe,bodyBottom:z-je/2,sideOf:oe,weightOf:N,singleCenterY:Math.max(z/2,Qe+ue/2)});return{width:H,height:z,childPos:new Map,portPos:q}},b=new Map,E=new Map,O=async f=>{const C=p(f),A=g?c.get(f)??[]:[],G=a.elements.get(f);if(C.length===0){const P=y(G,A);return b.set(f,P),P}const z=new Map;for(const P of C)z.set(P,await O(P));const $=new Set(C),_=new Set(A),H=P=>{if(s.has(P)){const ee=m(P);if(_.has(ee))return ee}let L=W(P);for(;L&&!$.has(L);)L=X.get(L);return L},q=[],K=new Set;R.forEach((P,L)=>{const ee=H(P.sourceId),Y=H(P.targetId);ee&&Y&&ee!==Y&&(q.push({id:`ic-${L}`,sources:[ee],targets:[Y]}),$.has(ee)&&K.add(ee),$.has(Y)&&K.add(Y))});const{flowKids:de,orphanKids:ge}=yn(C,{isConnected:P=>K.has(P),hasChildParts:P=>(a.childrenMap.get(P)??[]).some(r),portCount:P=>{var L;return((L=c.get(P))==null?void 0:L.length)??0}}),he=Q(A),me=new Map;let xe=0,pe=0;if(de.length>0){const P=await ht({id:`container-${f}`,nodes:de.map(L=>({id:L,width:z.get(L).width,height:z.get(L).height})),edges:q.map(L=>({id:L.id,source:L.sources[0],target:L.targets[0]})),gapX:54,gapY:58,layoutProviderId:e==null?void 0:e.layoutProviderId});for(const L of P.children){const ee=L.x+he.left,Y=L.y+Ce;me.set(L.id,{x:ee,y:Y}),xe=Math.max(xe,ee-he.left+L.width),pe=Math.max(pe,Y+L.height)}}if(ge.length>0){const P=Math.max(...ge.map(Re=>z.get(Re).width)),L=Math.max(xe,P),ee=Math.max(1,Math.min(ge.length,Math.floor((L+Fe)/(P+Fe))||1)),Y=pe>0?pe+Fe:Ce;let ce=0,se=Y,le=0,Xe=0;for(const Re of ge){const Ve=z.get(Re),ct=he.left+ce*(P+Fe);me.set(Re,{x:ct,y:se}),xe=Math.max(xe,ct-he.left+Ve.width),le=Math.max(le,Ve.height),Xe=Math.max(Xe,se+Ve.height),ce++,ce>=ee&&(ce=0,se+=le+Fe,le=0)}pe=Math.max(pe,Xe)}const Le=Math.min(x(G)+32,248);let Se=Math.max(he.left+xe+he.right,Le,wt),be=Math.max(pe+je,Ce+je+8);const ke=new Map,ve=E.get(f)??new Map;for(const P of["left","right"]){const L=A.filter(Y=>oe(Y)===P).sort((Y,ce)=>(ve.get(Y)??0)-(ve.get(ce)??0));let ee=-1/0;for(const Y of L){const ce=Math.max(be/2,Ce+ue/2);let se=ve.get(Y)??(L.length===1?ce:Ce+Ne/2);se=Math.max(se,Ce+Ne/2,ee+Ne);const le=se+(N(Y)-1)*He;ee=le,ke.set(Y,{x:P==="left"?-ue/2:Se-ue/2,y:se-ue/2,side:P}),be=Math.max(be,le+Ne/2+je)}}for(const[P,L]of ke)L.side==="right"&&(L.x=Se-ue/2);const Ke={width:Se,height:be,childPos:me,portPos:ke};return b.set(f,Ke),Ke},D=d?[d]:a.roots.filter(f=>r(f));for(const f of D)await O(f);const T=new Map;if(D.length===1)T.set(D[0],{x:0,y:0});else{const f=_=>{let H=W(_);const q=new Set;for(;H&&X.has(H)&&!q.has(H);)q.add(H),H=X.get(H);return H&&D.includes(H)?H:D.includes(_)?_:H},C=new Set(D),A=[],G=(_,H)=>{var q;if(s.has(_)&&w.get(_)===H){const K=m(_),de=(q=b.get(H))==null?void 0:q.portPos.get(K);if(de)return de.y+ue/2}return b.get(H).height/2};R.forEach((_,H)=>{const q=f(_.sourceId),K=f(_.targetId);q&&K&&q!==K&&C.has(q)&&C.has(K)&&A.push({id:`root-${H}`,source:q,target:K,sourceAnchorY:G(_.sourceId,q),targetAnchorY:G(_.targetId,K)})});const z=await ht({id:"interconnection-roots",nodes:D.map(_=>({id:_,width:b.get(_).width,height:b.get(_).height})),edges:A,gapX:et,gapY:et,directedFlowAxis:"RIGHT",layoutProviderId:e==null?void 0:e.layoutProviderId});for(const _ of z.children)T.set(_.id,{x:_.x,y:_.y});let $=0;for(const _ of D)T.has(_)||(T.set(_,{x:$,y:0}),$+=b.get(_).width+et)}const F=new Map;for(const[f,C]of c){const A=b.get(f);if(!A)continue;const G=[];for(const z of C){const $=A.portPos.get(z);if(!$)continue;const _=s.get(z);G.push({id:z,name:_.name,x:$.x,y:$.y,side:$.side,direction:pt(_)??re(z)});const H=$.y+ue/2,q=$.x+(ue-Je)/2;(M.get(z)??[]).forEach((K,de)=>{const ge=s.get(K);G.push({id:K,name:ge.name,x:q,y:H+He*(de+1)-Je/2,side:$.side,direction:pt(ge)??re(K),size:Je,nested:!0})})}F.set(f,G)}const B=[],ae=new Map,Z=(f,C,A,G={x:0,y:0})=>{var ge;const z=a.elements.get(f),$=b.get(f),_=Me[z.layer]||"#64748B",H=A??T.get(f),q=C?{x:G.x+H.x,y:G.y+H.y}:H;ae.set(f,q);const K=(a.childrenMap.get(f)??[]).some(r),de=K;B.push({id:f,type:"interconnectionNode",position:H,...C?{parentId:C,extent:"parent"}:{},data:{label:z.name,kind:z.kind,layer:z.layer,color:_,isContainer:de,isFrame:!C&&de,hasChildren:K,isCollapsed:((ge=e==null?void 0:e.collapsedNodes)==null?void 0:ge.has(f))??!1,onToggleCollapse:K&&(e!=null&&e.onToggleCollapse)?()=>e.onToggleCollapse(f):void 0,ports:F.get(f)??[],implicitIn:g&&J.has(f),implicitOut:g&&te.has(f),onPortMove:e!=null&&e.onPortMove?(he,me)=>e.onPortMove(f,he,me):void 0},style:{width:$.width,height:$.height}});for(const[he,me]of $.childPos)Z(he,f,me,q)};for(const f of D)Z(f);const ne=(f,C)=>{let A=f;const G=new Set;for(;A&&!G.has(A);){if(A===C)return!0;G.add(A),A=X.get(A)}return!1},fe=(f,C)=>{const A=w.get(f),G=W(C);return ne(G,A)?`${f}${mt}`:f},ye=f=>s.has(f)?bt(f,l,h):void 0,Oe=R.flatMap((f,C)=>{const A=ye(f.sourceId),G=ye(f.targetId),z=s.has(f.sourceId)?w.get(f.sourceId):f.sourceId,$=s.has(f.targetId)?w.get(f.targetId):f.targetId;if(!b.has(z)||!b.has($))return[];const _=dn(f.flowItem,f.type),H=ln[_],q=f.flowItem||(f.type.toLowerCase()==="exchangeswith"?void 0:f.type),K=A?fe(A,f.targetId):"right",de=G?fe(G,f.sourceId):"left",ge=P=>P==="left"?"right":P==="right"?"left":P==="top"?"bottom":"top",he=(P,L,ee,Y)=>{var se;if(!L)return Y;const ce=((se=(F.get(P)??[]).find(le=>le.id===L))==null?void 0:se.side)??Y;return ee.endsWith(mt)?ge(ce):ce},me=he(z,A,K,"right"),xe=he($,G,de,"left"),pe=f.id||`ic-e-${C}`,Le=(P,L,ee)=>{const Y=ae.get(P),ce=b.get(P);if(L){const se=(F.get(P)??[]).find(le=>le.id===L);if(se){const le=se.size??ue;return{x:Y.x+se.x+le/2,y:Y.y+se.y+le/2}}}return{x:Y.x+(ee?ce.width:0),y:Y.y+ce.height/2}},Se=Le(z,A,!0),be=Le($,G,!1),ke=ae.get(z),ve=ae.get($);return[{edge:{id:pe,source:z,target:$,sourceHandle:K,targetHandle:de,type:"interconnectionEdge",className:"ibd-interconnection-edge",label:q,animated:f.type==="flow",style:{stroke:H,strokeWidth:Math.max(2,j.defaultWidth)},labelStyle:{fontSize:U.badge,fill:"#4B5563",fontWeight:600},labelBgPadding:j.labelBgPadding,labelBgBorderRadius:j.labelBgRadius,labelBgStyle:{...j.labelBgStyle,fillOpacity:.96,stroke:"#E2E8F0",strokeWidth:1},markerEnd:{type:"arrowclosed",color:H,width:j.arrowSize,height:j.arrowSize},data:{flowCategory:_,sourceOffset:{x:Se.x-ke.x,y:Se.y-ke.y},targetOffset:{x:be.x-ve.x,y:be.y-ve.y},sourcePortId:A,targetPortId:G,sourceSide:me,targetSide:xe}},route:{id:pe,source:Se,target:be,sourceNodeId:z,targetNodeId:$,sourceSide:me,targetSide:xe}}]}),$t=B.filter(f=>!f.data.isFrame).map(f=>{const C=ae.get(f.id),A=b.get(f.id);return{id:f.id,x:C.x,y:C.y,width:A.width,height:A.height}}),Yt=Lt(Oe.map(f=>f.route),$t),Kt=Oe.map(({edge:f})=>({...f,data:{...f.data,points:Yt.get(f.id)??[]}}));return{nodes:B,edges:Kt}}function Ie(t){return t.kind==="ForkNode"||t.kind==="JoinNode"}function xo(t,e){const n=new Set(t.filter(s=>!Ie(s)).map(s=>s.id)),o=new Set;for(const s of e.relationships)s.type!=="flow"&&s.type!=="succession"||(n.has(s.sourceId)&&o.add(s.sourceId),n.has(s.targetId)&&o.add(s.targetId));return t.filter(s=>!Ie(s)&&!o.has(s.id))}function In(t,e,n=new Set,o){const s=Object.values(t.elements),l=(e?s.filter(e):s).filter(r=>r.construct==="action"||r.kind==="ActionUsage"||r.kind==="ActionDefinition"),g=l.filter(r=>r.parentAction);if(g.length===0)return l;const a=new Map(l.map(r=>[r.id,r])),d=[],u=r=>{const p=l.filter(w=>w.parentAction===r.id);if(n.has(r.id)&&p.length>0){for(const w of p)u(w);return}d.push(r)};if(o){for(const r of l.filter(p=>p.parentAction===o))u(r);return d}for(const r of g){const p=r.parentAction?a.get(r.parentAction):void 0;p!=null&&p.parentAction||u(r)}return d}function Mn(t,e){const n=t.attributes.actionType,o=n?e.elements[n]:void 0,s=((o==null?void 0:o.construct)==="action"?o.parameters:t.parameters)??[];return{inPorts:s.filter(i=>i.direction==="in"||i.direction==="inout").map(i=>i.name),outPorts:s.filter(i=>i.direction==="out"||i.direction==="inout").map(i=>i.name)}}const It=["#4A90D9","#E67E22","#2ECC71","#9B59B6","#E74C3C","#1ABC9C","#F39C12","#7B68EE"],tt="Unallocated",Sn="Unstaged";function it(t,e,n="all"){const o=new Map;for(const a of e.relationships)De.has(a.type)&&!o.has(a.targetId)&&o.set(a.targetId,a.sourceId);const s=[t],i=new Set(s);let l=t;for(;o.has(l);){const a=o.get(l);if(i.has(a))break;s.unshift(a),i.add(a),l=a}if(n==="all")return{id:t,level:s.length};const g=Math.min(Math.max(n,1),s.length)-1;return{id:s[g],level:g+1}}function En(t,e,n="all"){var s;const o=it(t,e,n).id;return((s=e.elements[o])==null?void 0:s.name)??o}function wo(t,e){const n=[...new Set(t)].map(s=>it(s,e).level);if(n.length===0)return[];const o=Math.min(...n);return o<=1?[]:Array.from({length:o},(s,i)=>i+1)}function kn(t,e,n="allocation",o="all"){var g,a;const s=new Map,i=[],l=new Map;for(const d of t){if(Ie(d))continue;const u=d.allocatedTo?it(d.allocatedTo,e,o).id:tt,r=n==="stage"?d.attributes.stage||d.attributes.phase||Sn:u;if(s.set(d.id,r),!l.has(r)){const p={id:r,label:n==="allocation"&&r!==tt?((g=e.elements[r])==null?void 0:g.name)??r:r,color:It[l.size%It.length],inspectElementId:n==="allocation"&&r!==tt?r:((a=Object.values(e.elements).find(w=>w.id===r||w.name===r))==null?void 0:a.id)??d.id};l.set(r,p),i.push(p)}}return{laneOf:s,lanes:i}}const vn=18,Cn=36,Nn=20,_e=36,Mt=16,St=120,nt=32,Et=64,kt=10;function Tn(t,e,n){if(Ie(t))return n==="vertical"?{width:Et,height:kt}:{width:kt,height:Et};const s=Math.max(e.inPorts.length,e.outPorts.length,0)*vn;return{width:Math.max(t.name.length*9+40,140),height:Cn+s+(s>0?8:0)+(t.allocatedTo?Nn:0)}}function vt(t){const e=t??"";return/energy|power|voltage|current|thermal|heat/i.test(e)?"energy":/material|fluid|gas|liquid|batch|consumable/i.test(e)?"material":"data"}const ot={control:"#4B5563",data:"#3498DB",energy:"#D97706",material:"#16A34A"};async function bo(t,e){var re,oe,Q;const n=In(t,e==null?void 0:e.viewpointFilter,e==null?void 0:e.expandedActionIds,e==null?void 0:e.focusActionId);if(n.length===0)return{nodes:[],edges:[]};const o=new Set(n.map(x=>x.id)),{laneOf:s,lanes:i}=kn(n,t,e==null?void 0:e.laneGrouping,e==null?void 0:e.displayLevel),l=(e==null?void 0:e.direction)??"horizontal",g=((e==null?void 0:e.swimlanes)??!0)&&i.length>=1,a=t.relationships.filter(x=>x.type==="succession"),d=t.relationships.filter(x=>x.type==="flow"),u=new Map;for(const x of(e==null?void 0:e.expandedActionIds)??[]){const y=Object.values(t.elements).filter(O=>O.parentAction===x);if(y.length===0)continue;const b=((re=a.find(O=>O.sourceId===`${x}__start`))==null?void 0:re.targetId)??y[0].id,E=((oe=a.find(O=>O.targetId===`${x}__done`))==null?void 0:oe.sourceId)??y[y.length-1].id;u.set(x,{first:b,last:E})}const r=x=>x.map(y=>{var b,E;return{...y,sourceId:((b=u.get(y.sourceId))==null?void 0:b.last)??y.sourceId,targetId:((E=u.get(y.targetId))==null?void 0:E.first)??y.targetId}}),p=r(a),w=r(d),h=new Set;for(const x of p){const y=x.sourceId.endsWith("__start")?x.sourceId.slice(0,-7):void 0,b=x.targetId.endsWith("__done")?x.targetId.slice(0,-6):void 0;y&&!u.has(y)&&o.has(x.targetId)&&h.add(x.sourceId),b&&!u.has(b)&&o.has(x.sourceId)&&h.add(x.targetId)}const m=new Set([...o,...h]),c=w.filter(x=>m.has(x.sourceId)&&m.has(x.targetId)&&(!(e!=null&&e.visibleFlowKinds)||e.visibleFlowKinds.has(vt(x.flowItem)))),M=new Set(c.map(x=>`${x.sourceId}\0${x.targetId}`)),N=p.filter(x=>m.has(x.sourceId)&&m.has(x.targetId)&&(!(e!=null&&e.visibleFlowKinds)||e.visibleFlowKinds.has("control"))&&!M.has(`${x.sourceId}\0${x.targetId}`)),S=new Map(n.map(x=>[x.id,Mn(x,t)])),I={id:"root",layoutOptions:{"elk.algorithm":"layered","elk.direction":l==="vertical"?"DOWN":"RIGHT","elk.spacing.nodeNode":"40","elk.layered.spacing.nodeNodeBetweenLayers":"80","elk.layered.considerModelOrder.strategy":"NODES_AND_EDGES","elk.layered.nodePlacement.strategy":"NETWORK_SIMPLEX","elk.layered.crossingMinimization.strategy":"LAYER_SWEEP","elk.separateConnectedComponents":"true","elk.spacing.componentComponent":"56"},children:[...[...h].map(x=>({id:x,width:28,height:28})),...n.map(x=>({id:x.id,...Tn(x,S.get(x.id),l)}))],edges:[...c,...N].map((x,y)=>({id:`afe-${y}`,sources:[x.sourceId],targets:[x.targetId]}))},R=await Ae.layout(I,{providerId:e==null?void 0:e.layoutProviderId}),v=new Map((R.children??[]).map(x=>[x.id,{x:x.x??0,y:x.y??0,width:x.width??140,height:x.height??56}])),te=new Map(i.map(x=>[x.id,x.color])),J=[];if(g&&l==="horizontal"){const x=new Map;for(const D of n){if(Ie(D))continue;const T=v.get(D.id),F=s.get(D.id);x.has(F)||x.set(F,[]),x.get(F).push(T.y)}const y=[...i].sort((D,T)=>{const F=B=>B.reduce((ae,Z)=>ae+Z,0)/B.length;return F(x.get(D.id)??[0])-F(x.get(T.id)??[0])});let b=1/0,E=-1/0;for(const D of n){const T=v.get(D.id);b=Math.min(b,T.x),E=Math.max(E,T.x+T.width)}let O=0;for(const D of y){const T=n.filter(Z=>s.get(Z.id)===D.id);T.sort((Z,ne)=>v.get(Z.id).x-v.get(ne.id).x||v.get(Z.id).y-v.get(ne.id).y);const F=Math.min(...T.map(Z=>v.get(Z.id).y));let B=0;const ae=[];for(const Z of T){const ne=v.get(Z.id);let fe=O+_e+(ne.y-F);for(const ye of ae)ne.x<ye.x1&&ne.x+ne.width>ye.x0&&(fe=Math.max(fe,ye.bottom+16));v.set(Z.id,{...ne,y:fe}),ae.push({x0:ne.x,x1:ne.x+ne.width,bottom:fe+ne.height}),B=Math.max(B,fe+ne.height-O)}B+=_e,J.push({id:`__lane_${D.id}`,type:"actionFlowLane",position:{x:b-St,y:O},data:{label:D.label,color:D.color,orientation:"row",inspectElementId:D.inspectElementId,memberIds:T.map(Z=>Z.id),isFrame:!0},style:{width:E-b+St+_e,height:B},draggable:!1,selectable:!1,zIndex:-1}),O+=B+Mt}}else if(g){let x=1/0,y=-1/0;for(const E of n){const O=v.get(E.id);x=Math.min(x,O.y),y=Math.max(y,O.y+O.height)}let b=0;for(const E of i){const O=n.filter(F=>s.get(F.id)===E.id).sort((F,B)=>v.get(F.id).y-v.get(B.id).y||v.get(F.id).x-v.get(B.id).x),T=Math.max(...O.map(F=>v.get(F.id).width))+_e*2;for(const F of O){const B=v.get(F.id);v.set(F.id,{...B,x:b+(T-B.width)/2})}J.push({id:`__lane_${E.id}`,type:"actionFlowLane",position:{x:b,y:x-nt},data:{label:E.label,color:E.color,orientation:"column",inspectElementId:E.inspectElementId,memberIds:O.map(F=>F.id),isFrame:!0},style:{width:T,height:y-x+nt+_e},draggable:!1,selectable:!1,zIndex:-1}),b+=T+Mt}}const W=n.filter(Ie);if(W.length>0)for(const x of W){const y=v.get(x.id),b=[];for(const O of[...N,...c]){const D=O.sourceId===x.id?O.targetId:O.targetId===x.id?O.sourceId:void 0;if(D===void 0)continue;const T=v.get(D);T&&b.push(l==="vertical"?T.x+T.width/2:T.y+T.height/2)}if(b.length===0)continue;const E=b.reduce((O,D)=>O+D,0)/b.length;v.set(x.id,l==="vertical"?{...y,x:E-y.width/2}:{...y,y:E-y.height/2})}for(const x of h){const y=v.get(x);if(!y)continue;const b=[];for(const T of N){const F=T.sourceId===x?T.targetId:T.targetId===x?T.sourceId:void 0;if(!F)continue;const B=v.get(F);B&&b.push(l==="vertical"?B.x+B.width/2:B.y+B.height/2)}if(b.length===0)continue;const E=b.reduce((T,F)=>T+F,0)/b.length,O=n.filter(T=>!Ie(T)).map(T=>v.get(T.id)).filter(T=>!!T),D=x.endsWith("__start");if(l==="vertical"){const T=Math.min(...O.map(B=>B.y)),F=Math.max(...O.map(B=>B.y+B.height));v.set(x,{...y,x:E-y.width/2,y:D?T-y.height-nt-16:F+24})}else{const T=Math.min(...O.map(B=>B.x)),F=Math.max(...O.map(B=>B.x+B.width));v.set(x,{...y,x:D?T-y.width-24:F+24,y:E-y.height/2})}}const X=[...J];for(const x of h){const y=v.get(x),b=x.endsWith("__start"),E={label:b?"Start":"Done",nodeType:b?"start":"done",laneColor:"#374151",layerColor:"#374151",inPorts:[],outPorts:[],flowDirection:l};X.push({id:x,type:"actionFlowNode",position:{x:y.x,y:y.y},data:E})}for(const x of n){const y=v.get(x.id);if(Ie(x)){const T={element:x,label:x.name,nodeType:x.kind==="ForkNode"?"fork":"join",laneColor:"#374151",layerColor:"#374151",inPorts:[],outPorts:[],flowDirection:l};X.push({id:x.id,type:"actionFlowNode",position:{x:y.x,y:y.y},style:{width:y.width,height:y.height},data:T});continue}const b=S.get(x.id),E=s.get(x.id),O=x.allocatedTo?En(x.allocatedTo,t,e==null?void 0:e.displayLevel):void 0,D={element:x,label:x.name,nodeType:"action",parameters:x.parameters,allocatedTo:O,laneColor:te.get(E)??"#9CA3AF",layerColor:Me[x.layer]||"#FF6B6B",inPorts:b.inPorts,outPorts:b.outPorts,hasChildren:Object.values(t.elements).some(T=>T.parentAction===x.id),isExpanded:((Q=e==null?void 0:e.expandedActionIds)==null?void 0:Q.has(x.id))??!1,onToggleExpand:e!=null&&e.onToggleAction?()=>e.onToggleAction(x.id):void 0,flowDirection:l};X.push({id:x.id,type:"actionFlowNode",position:{x:y.x,y:y.y},data:D})}const V=[];for(const x of c){const y=vt(x.flowItem),b=ot[y],E=x.flowItem?/signal|error|status|code|report|alarm|response|command|data|reading/i.test(x.flowItem):!1;V.push({id:x.id,source:x.sourceId,target:x.targetId,label:void 0,type:"smoothstep",animated:!1,style:{stroke:b,strokeWidth:j.flowWidth,strokeDasharray:E?"6 3":void 0},labelStyle:{fontSize:U.badge,fill:b,fontWeight:600},labelBgStyle:j.labelBgStyle,labelBgPadding:j.labelBgPadding,labelBgBorderRadius:j.labelBgRadius,markerEnd:{type:"arrowclosed",color:b,width:j.arrowSize,height:j.arrowSize},data:{flowCategory:y,flowItem:x.flowItem}})}for(const x of N)V.push({id:x.id,source:x.sourceId,target:x.targetId,type:"smoothstep",animated:!1,style:{stroke:ot.control,strokeWidth:1.5},markerEnd:{type:"arrowclosed",color:ot.control,width:12,height:12},data:{flowCategory:"control"}});return{nodes:X,edges:V}}function An(t){return t.attributes.sourceState&&t.attributes.targetState?!0:t.kind==="Transition"||t.kind.endsWith("Transition")}function On(t){return t.kind.endsWith("State")||t.kind.endsWith("Machine")||t.kind.endsWith("Mode")}function Fn(t,e){const n=Object.values(t.elements),o=e?n.filter(e):n,s=[],i=[],l=[];for(const g of o)An(g)?i.push(g):On(g)?s.push(g):l.push(g);return{states:s,transitions:i,annotations:l}}const Ct=46;function _n(t){return t.length>Ct?`${t.slice(0,Ct-1)}…`:t}function Pn(t){const e=t.attributes.trigger??"",n=t.attributes.guardSummary??t.attributes.guard??"",o=n&&!/^none\b/i.test(n),s=e||t.name;return _n(o?`${s} [${n}]`:s)}function Dn(t,e){const n=new Map;for(const s of e)n.set(s.name,s.id),n.set(s.id,s.id);const o=[];for(const s of t){const i=n.get(s.attributes.sourceState??""),l=n.get(s.attributes.targetState??"");!i||!l||o.push({element:s,sourceId:i,targetId:l,label:Pn(s)})}return o}const st="#FF6B6B",Ln="#95A5A6";async function Io(t,e){const{states:n,transitions:o,annotations:s}=Fn(t,e==null?void 0:e.viewpointFilter);if(n.length===0&&s.length===0)return{nodes:[],edges:[]};const i=Ye(n,t.relationships),l=Dn(o,n),g=h=>({width:Math.max(h.name.length*7.5+56,150),height:54}),a=h=>{const m=i.elements.get(h),c=(i.childrenMap.get(h)??[]).filter(M=>i.elements.has(M));return c.length===0?{id:h,...g(m)}:{id:h,layoutOptions:{"elk.algorithm":"layered","elk.direction":"RIGHT","elk.padding":"[top=48,left=28,bottom=28,right=28]","elk.spacing.nodeNode":"48","elk.layered.spacing.nodeNodeBetweenLayers":"72","elk.edgeRouting":"ORTHOGONAL"},children:c.map(a)}},d={id:"root",layoutOptions:{"elk.algorithm":"layered","elk.direction":"RIGHT","elk.hierarchyHandling":"INCLUDE_CHILDREN","elk.edgeRouting":"ORTHOGONAL","elk.spacing.nodeNode":"56","elk.layered.spacing.nodeNodeBetweenLayers":"96","elk.spacing.edgeNode":"28","elk.spacing.edgeLabel":"8","elk.separateConnectedComponents":"true","elk.spacing.componentComponent":"64","elk.padding":"[top=20, left=20, bottom=20, right=20]"},children:i.roots.filter(h=>i.elements.has(h)).map(a),edges:l.map((h,m)=>({id:`st-${m}`,sources:[h.sourceId],targets:[h.targetId]}))},u=await Ae.layout(d,{providerId:e==null?void 0:e.layoutProviderId}),r=[],p=(h,m)=>{var M;const c=i.elements.get(h.id);if(c){const N=!!((M=h.children)!=null&&M.length),S=c.kind.endsWith("Machine");r.push({id:h.id,type:"stateNode",position:{x:h.x??0,y:h.y??0},...m?{parentId:m,extent:"parent"}:{},data:{label:c.name,kind:c.kind,color:st,isContainer:N,isMachine:S,subtitle:c.attributes.modeKind},style:{width:h.width??150,height:h.height??54}});for(const I of h.children??[])p(I,h.id);return}};for(const h of u.children??[])p(h);if(s.length>0){let h=0,m=800;for(const I of u.children??[])h=Math.max(h,(I.y??0)+(I.height??0)),m=Math.max(m,(I.x??0)+(I.width??0));const c=240,M=48,N=14,S=Math.max(2,Math.floor(m/(c+N)));s.forEach((I,R)=>{r.push({id:I.id,type:"stateNode",position:{x:R%S*(c+N),y:h+56+Math.floor(R/S)*(M+N)},data:{label:I.name,kind:I.kind,color:Ln,isNote:!0},style:{width:c,height:M}})})}const w=l.map((h,m)=>({id:h.element.id||`st-e-${m}`,source:h.sourceId,target:h.targetId,type:"smoothstep",label:h.label,style:{stroke:st,strokeWidth:j.defaultWidth},labelStyle:{fontSize:U.badge,fill:"#6B7280",fontWeight:500},labelBgPadding:j.labelBgPadding,labelBgBorderRadius:j.labelBgRadius,labelBgStyle:j.labelBgStyle,markerEnd:{type:"arrowclosed",color:st,width:j.arrowSize,height:j.arrowSize}}));return{nodes:r,edges:w}}const Nt=new Set(["includesStep",...De]);function Tt(t){return t.kind.endsWith("Step")||!!t.attributes.stepOrder}function Rn(t){if(!t)return;const e=t.split(":");return(e.length>1?e[e.length-1]:e[0]).trim()||void 0}function Bn(t,e){const n=t.split(":")[0].trim(),o=e.elements[n];if(o)return o.name;for(const s of Object.values(e.elements))if(s.attributes.id===n)return s.name;return t}const At=t=>{const e=Number(t.attributes.stepOrder);return Number.isFinite(e)?e:0};function jn(t,e){const n=Object.values(t.elements),o=e?n.filter(e):n,s=o.filter(Tt),i=new Set(s.map(m=>m.id)),l=o.filter(m=>!Tt(m)&&t.relationships.some(c=>Nt.has(c.type)&&c.sourceId===m.id&&i.has(c.targetId))),g=[],a=new Map,d=m=>{const c=m.split(":")[0].trim()||m;return a.has(c)||(a.set(c,g.length),g.push({id:c,label:Bn(m,t)})),a.get(c)},u=m=>[...m].sort((c,M)=>At(c)-At(M)).map(c=>({step:c,lane:d(c.attributes.allocatedFunction??c.allocatedTo??c.id),item:Rn(c.attributes.exchangeItem)})),r=m=>{var M;const c=t.relationships.find(N=>N.type==="realizesScenario"&&N.sourceId===m.id);return c?(M=t.elements[c.targetId])==null?void 0:M.name:void 0},p=new Set,w=[];for(const m of l){const c=t.relationships.filter(M=>Nt.has(M.type)&&M.sourceId===m.id&&i.has(M.targetId)).map(M=>t.elements[M.targetId]);for(const M of c)p.add(M.id);w.push({chain:m,scenario:r(m),occurrences:u(c)})}const h=s.filter(m=>!p.has(m.id));return h.length>0&&w.push({occurrences:u(h)}),{lifelines:g,sections:w.filter(m=>m.occurrences.length>0)}}const Pe=240,Hn=52,Wn=68,zn=40,Gn=24,Ot=14;function Mo(t,e){const n=jn(t,e==null?void 0:e.viewpointFilter);if(n.lifelines.length===0)return{nodes:[],edges:[]};const o=[],s=[],i=u=>u*Pe+Pe/2;let l=Hn+28;const g=[];for(const u of n.sections){const r=l;l+=zn;const p=u.occurrences.map(w=>{const h={...w,y:l};return l+=Wn,h});g.push({section:u,top:r,bottom:l,placed:p}),l+=Gn}const a=l,d=n.lifelines.length*Pe;return n.lifelines.forEach((u,r)=>{o.push({id:`__lifeline_${u.id}`,type:"seqLifeline",position:{x:r*Pe,y:0},data:{label:u.label},style:{width:Pe,height:a},draggable:!1,selectable:!1,zIndex:-2})}),g.forEach(({section:u,top:r,bottom:p,placed:w},h)=>{var m;o.push({id:`__section_${h}`,type:"seqSection",position:{x:-24,y:r},data:{label:((m=u.chain)==null?void 0:m.name)??"Steps",scenario:u.scenario},style:{width:d+48,height:p-r},draggable:!1,selectable:!1,zIndex:-1}),w.forEach((c,M)=>{if(o.push({id:c.step.id,type:"seqOccurrence",position:{x:i(c.lane)-Ot/2,y:c.y-Ot/2},data:{label:c.step.name,kind:c.step.kind},draggable:!1,zIndex:2}),M<w.length-1){const N=w[M+1],S=N.lane>=c.lane,I=N.lane===c.lane;s.push({id:`seq-${h}-${M}`,source:c.step.id,target:N.step.id,sourceHandle:I||S?"right":"left",targetHandle:I?"right":S?"left":"right",type:I?"smoothstep":"straight",label:c.item,style:{stroke:"#3498DB",strokeWidth:j.flowWidth},labelStyle:{fontSize:U.badge,fill:"#4A90D9",fontWeight:600},labelBgPadding:j.labelBgPadding,labelBgBorderRadius:j.labelBgRadius,labelBgStyle:j.labelBgStyle,markerEnd:{type:"arrowclosed",color:"#3498DB",width:j.arrowSize,height:j.arrowSize},zIndex:1})}})}),{nodes:o,edges:s}}const $n=new Set(["name","title","description","shortDescription","longDescription","sourceReference","rationaleText","semantics","queryDescription","dataSourceDescription","doc"]),Yn=7,rt=80;function Kn(t,e){const n=t.attributes[e];return n===void 0?void 0:(n.includes("::")?n.split("::").pop().trim():n)||void 0}function Xn(t){const e=new Map;for(const n of t)for(const o of Object.keys(n.attributes))$n.has(o)||o.includes(".")||e.set(o,(e.get(o)??0)+1);return[...e.entries()].sort((n,o)=>o[1]-n[1]).slice(0,Yn).map(([n])=>n)}function Vn(t){const e=new Map;for(const o of t)e.has(o.kind)||e.set(o.kind,[]),e.get(o.kind).push(o);const n=[];for(const[o,s]of e){const i=Xn(s),l=s.map(a=>({element:a,values:i.map(d=>Kn(a,d))})),g=i.map((a,d)=>{const u=l.map(r=>r.values[d]).filter(r=>r!==void 0);return u.length>0&&u.every(r=>Number.isFinite(Number(r)))});n.push({kind:o,columns:i,numeric:g,rows:l})}return n.sort((o,s)=>s.rows.length-o.rows.length)}function qn(t,e,n){const o=n==="asc"?1:-1;return[...t.rows].sort((i,l)=>{if(e<0)return i.element.name.localeCompare(l.element.name)*o;const g=i.values[e],a=l.values[e];return g===void 0&&a===void 0?0:g===void 0?1:a===void 0?-1:t.numeric[e]?(Number(g)-Number(a))*o:g.localeCompare(a)*o})}function Un(t,e,n){const o=new Map(t.map(r=>[r.id,r])),s=n!=null&&n.length?new Set(n.map(r=>r.toLowerCase())):void 0,i=e.filter(r=>o.has(r.sourceId)&&o.has(r.targetId)&&r.sourceId!==r.targetId&&(!s||s.has(r.type.toLowerCase())));if(i.length===0)return;const l=new Set,g=new Set,a=new Map,d=new Set;for(const r of i){l.add(r.sourceId),g.add(r.targetId),d.add(r.type);const p=`${r.sourceId}|${r.targetId}`;a.has(p)||a.set(p,[]),a.get(p).includes(r.type)||a.get(p).push(r.type)}const u=(r,p)=>r.kind.localeCompare(p.kind)||r.name.localeCompare(p.name);return{rows:[...l].map(r=>o.get(r)).sort(u),cols:[...g].map(r=>o.get(r)).sort(u),cells:a,relTypes:[...d].sort()}}const Ge={padding:"6px 10px",fontSize:U.xs,fontWeight:600,color:"#374151",textAlign:"left",borderBottom:"2px solid #E5E5E0",background:"#FAFAF8",position:"sticky",top:0,cursor:"pointer",whiteSpace:"nowrap",userSelect:"none"},$e={padding:"5px 10px",fontSize:U.xs,color:"#374151",borderBottom:"1px solid #F0F0ED",verticalAlign:"top"};function Zn(t){return t.length>rt?`${t.slice(0,rt-1)}…`:t}function Jn({section:t,search:e}){var r;const n=ze(p=>p.selectElement),[o,s]=ie.useState(-1),[i,l]=ie.useState("asc"),g=ie.useMemo(()=>{const p=qn(t,o,i);if(!e)return p;const w=e.toLowerCase();return p.filter(h=>h.element.name.toLowerCase().includes(w)||h.values.some(m=>m==null?void 0:m.toLowerCase().includes(w)))},[t,o,i,e]);if(g.length===0)return null;const a=Me[(r=t.rows[0])==null?void 0:r.element.layer]||"#6B7280",d=p=>{o===p?l(w=>w==="asc"?"desc":"asc"):(s(p),l("asc"))},u=p=>o===p?i==="asc"?" ↑":" ↓":"";return k.jsxs("div",{style:{marginBottom:28},children:[k.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[k.jsx("span",{style:{width:8,height:8,borderRadius:2,background:a,display:"inline-block"}}),k.jsx("span",{style:{fontSize:U.sm,fontWeight:700,color:"#1B3A4B"},children:t.kind}),k.jsx("span",{style:{fontSize:U.xs,color:"#9CA3AF"},children:g.length})]}),k.jsxs("table",{style:{borderCollapse:"collapse",width:"100%",background:"#FFFFFF",borderRadius:8,overflow:"hidden",border:"1px solid #E5E5E0"},children:[k.jsx("thead",{children:k.jsxs("tr",{children:[k.jsxs("th",{style:Ge,onClick:()=>d(-1),children:["Element",u(-1)]}),t.columns.map((p,w)=>k.jsxs("th",{style:Ge,onClick:()=>d(w),children:[p,u(w)]},p))]})}),k.jsx("tbody",{children:g.map(p=>k.jsxs("tr",{onMouseEnter:w=>{w.currentTarget.style.background="#F7F7F5"},onMouseLeave:w=>{w.currentTarget.style.background="transparent"},children:[k.jsx("td",{style:{...$e,whiteSpace:"nowrap"},children:k.jsx("button",{onClick:()=>n(p.element.id),style:{background:"none",border:"none",padding:0,fontSize:U.xs,fontWeight:600,color:"#1B6FD9",cursor:"pointer",textDecoration:"none"},title:"Open element detail",children:p.element.name})}),p.values.map((w,h)=>k.jsx("td",{style:$e,title:w&&w.length>rt?w:void 0,children:w?Zn(w):k.jsx("span",{style:{color:"#D1D5DB"},children:"—"})},h))]},p.element.id))})]})]})}function Qn({elements:t,model:e,relationshipTypes:n}){const o=ze(l=>l.selectElement),s=ie.useMemo(()=>Un(t,e.relationships,n),[t,e.relationships,n]);if(!s)return k.jsx("div",{style:{color:"#9CA3AF",fontSize:U.sm,padding:24},children:"No relationships among this view's elements."});const i=(l,g=!1)=>k.jsx("button",{onClick:()=>o(l.id),style:{background:"none",border:"none",padding:0,cursor:"pointer",fontSize:"10px",fontWeight:600,color:"#374151",...g?{writingMode:"vertical-rl",transform:"rotate(180deg)",maxHeight:120}:{},whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:180},title:`${l.kind} · open detail`,children:l.name});return k.jsxs("div",{children:[k.jsx("div",{className:"flex gap-3 mb-2",style:{fontSize:U.xs,color:"#6B7280"},children:s.relTypes.map(l=>k.jsxs("span",{className:"flex items-center gap-1",children:[k.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:Te[l]||"#6B7280",display:"inline-block"}}),l]},l))}),k.jsxs("table",{style:{borderCollapse:"collapse",background:"#FFFFFF",border:"1px solid #E5E5E0"},children:[k.jsx("thead",{children:k.jsxs("tr",{children:[k.jsx("th",{style:{...Ge,cursor:"default"}}),s.cols.map(l=>k.jsx("th",{style:{...Ge,cursor:"default",verticalAlign:"bottom",padding:"8px 4px"},children:i(l,!0)},l.id))]})}),k.jsx("tbody",{children:s.rows.map(l=>k.jsxs("tr",{children:[k.jsx("td",{style:{...$e,whiteSpace:"nowrap",background:"#FAFAF8"},children:i(l)}),s.cols.map(g=>{const a=s.cells.get(`${l.id}|${g.id}`);return k.jsx("td",{style:{...$e,textAlign:"center",padding:"4px 6px"},title:a==null?void 0:a.join(", "),children:a==null?void 0:a.map(d=>k.jsx("span",{style:{width:9,height:9,borderRadius:"50%",margin:1,background:Te[d]||"#6B7280",display:"inline-block"}},d))},g.id)})]},l.id))})]})]})}function So({diagram:t,model:e,viewpointFilter:n}){const[o,s]=ie.useState("table"),[i,l]=ie.useState(""),g=ie.useMemo(()=>{const u=Object.values(e.elements);return n?u.filter(n):u},[e,n]),a=ie.useMemo(()=>Vn(g),[g]),d=_t.grid;return k.jsx("div",{className:"flex-1 overflow-auto",style:{background:"#F7F7F5"},children:k.jsxs("div",{style:{padding:"16px 20px",maxWidth:1240},children:[k.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[k.jsx("span",{className:"px-1.5 py-0.5 rounded font-semibold",style:{background:d.color+"20",color:d.color,fontSize:U.badge},title:d.fullName,children:d.label}),k.jsx("span",{style:{fontSize:U.md,fontWeight:700,color:"#1a1a1a"},children:t.name}),k.jsxs("span",{style:{fontSize:U.xs,color:"#9CA3AF"},children:[g.length," elements"]}),k.jsx("div",{className:"flex rounded overflow-hidden ml-2",style:{border:"1px solid #E5E5E0"},children:["table","matrix"].map(u=>k.jsx("button",{onClick:()=>s(u),className:"px-2 py-0.5 text-xs font-medium capitalize",style:{background:o===u?"#1B3A4B":"#FFFFFF",color:o===u?"#FFFFFF":"#6B7280",border:"none",cursor:"pointer"},children:u},u))}),o==="table"&&k.jsx("input",{value:i,onChange:u=>l(u.target.value),placeholder:"Filter rows…",className:"px-2 py-1 rounded focus:outline-none ml-auto",style:{fontSize:U.xs,border:"1px solid #E5E5E0",background:"#FFFFFF",color:"#1a1a1a",width:200}})]}),o==="table"?a.map(u=>k.jsx(Jn,{section:u,search:i},u.kind)):k.jsx(Qn,{elements:g,model:e,relationshipTypes:t.relationshipTypes}),o==="table"&&a.length===0&&k.jsx("div",{style:{color:"#9CA3AF",fontSize:U.sm,padding:24},children:"This view selects no elements."})]})})}const eo=8;function zt(t,e,n){const o=(e.get(t.id)??[]).filter(s=>n.has(s)).map(s=>zt(n.get(s),e,n));return o.sort(We),{id:t.id,label:t.name,element:t,kind:t.kind,layer:t.layer,children:o,count:1+o.reduce((s,i)=>s+i.count,0)}}const We=(t,e)=>(t.kind??"").localeCompare(e.kind??"")||t.label.localeCompare(e.label);function to(t,e){const n=Ye(t,e),o=new Map,s=[];for(const i of n.roots){const l=n.elements.get(i),g=zt(l,n.childrenMap,n.elements),a=l.package;if(!a){s.push(g);continue}if(!o.has(a)){const u=a.split("::").pop()??a,r={id:`pkg:${a}`,label:u,title:a,children:[],count:0};o.set(a,r),s.push(r)}const d=o.get(a);d.children.push(g),d.count+=g.count}for(const i of o.values()){const l=new Set(i.children.map(a=>a.kind));if(i.children.length<=eo||l.size<=1){i.children.sort(We);continue}const g=new Map;for(const a of i.children){const d=a.kind??"—";g.has(d)||g.set(d,[]),g.get(d).push(a)}i.children=[...g.entries()].sort((a,d)=>a[0].localeCompare(d[0])).map(([a,d])=>{var u;return{id:`kind:${i.id}:${a}`,label:a,kind:a,layer:(u=d[0])==null?void 0:u.layer,children:d.sort(We),count:d.reduce((r,p)=>r+p.count,0)}})}return s.sort(We),s}function no(t,e){const n=e.trim().toLowerCase();if(!n)return;const o=new Set,s=new Set,i=(l,g)=>{const a=l.label.toLowerCase().includes(n)||(l.kind??"").toLowerCase().includes(n);let d=!1;for(const u of l.children)i(u,[...g,l.id])&&(d=!0);if(a||d){o.add(l.id);for(const u of g)o.add(u),s.add(u);return d&&s.add(l.id),!0}return!1};for(const l of t)i(l,[]);return{visible:o,expanded:s}}function oo(t){if(!t)return"·";const e=t.replace(/[^A-Za-z]/g,"").match(/[A-Z]/g);return e&&e.length>=2?e.slice(0,2).join(""):t.slice(0,2).toUpperCase()}const so=26;function Gt({node:t,depth:e,expanded:n,visible:o,forceExpanded:s,onToggle:i}){const l=ze(w=>w.selectElement),g=ze(w=>w.selectedElementId);if(o&&!o.has(t.id))return null;const a=n.has(t.id)||!!(s!=null&&s.has(t.id)),d=t.children.length>0,u=!t.element,r=Me[t.layer??""]||"#95A5A6",p=t.element&&t.id===g;return k.jsxs(k.Fragment,{children:[k.jsxs("div",{className:"flex items-center gap-1.5",style:{height:so,paddingLeft:8+e*18,cursor:"pointer",background:p?"#2DD4A818":void 0,borderRadius:6},onMouseEnter:w=>{p||(w.currentTarget.style.background="#F0F0ED")},onMouseLeave:w=>{w.currentTarget.style.background=p?"#2DD4A818":"transparent"},onClick:()=>{d&&i(t.id),t.element&&l(t.id)},title:t.title??t.kind,children:[k.jsx("span",{style:{width:12,textAlign:"center",flexShrink:0,fontSize:"9px",color:"#9CA3AF",transform:a?"rotate(90deg)":"none",transition:"transform 120ms ease",visibility:d?"visible":"hidden"},children:"▶"}),u?k.jsx("span",{style:{fontSize:"10px",flexShrink:0},children:t.id.startsWith("pkg:")?"📦":"▣"}):k.jsx("span",{style:{flexShrink:0,width:20,height:16,borderRadius:4,background:r+"22",color:r,fontSize:"8px",fontWeight:800,display:"inline-flex",alignItems:"center",justifyContent:"center",letterSpacing:"0.02em"},title:t.kind,children:oo(t.kind)}),k.jsx("span",{style:{fontSize:U.xs,fontWeight:u?700:500,color:u?"#1B3A4B":"#374151",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:t.label}),d&&k.jsx("span",{style:{fontSize:"9px",color:"#9CA3AF"},children:t.count})]}),a&&t.children.map(w=>k.jsx(Gt,{node:w,depth:e+1,expanded:n,visible:o,forceExpanded:s,onToggle:i},w.id))]})}function Eo({diagram:t,model:e,viewpointFilter:n}){const[o,s]=ie.useState(new Set),[i,l]=ie.useState(""),g=ie.useMemo(()=>{const h=Object.values(e.elements);return n?h.filter(n):h},[e,n]),a=ie.useMemo(()=>to(g,e.relationships),[g,e.relationships]),d=ie.useMemo(()=>no(a,i),[a,i]),u=ie.useCallback(h=>{s(m=>{const c=new Set(m);return c.has(h)?c.delete(h):c.add(h),c})},[]),r=ie.useCallback((h,m)=>{for(const c of h)c.children.length>0&&(m.add(c.id),r(c.children,m));return m},[]),p=_t.browser,w=g.length;return k.jsx("div",{className:"flex-1 overflow-auto",style:{background:"#F7F7F5"},children:k.jsxs("div",{style:{padding:"16px 20px",maxWidth:860},children:[k.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[k.jsx("span",{className:"px-1.5 py-0.5 rounded font-semibold",style:{background:p.color+"20",color:p.color,fontSize:U.badge},title:p.fullName,children:p.label}),k.jsx("span",{style:{fontSize:U.md,fontWeight:700,color:"#1a1a1a"},children:t.name}),k.jsxs("span",{style:{fontSize:U.xs,color:"#9CA3AF"},children:[w," elements"]}),k.jsx("button",{onClick:()=>s(r(a,new Set)),className:"px-2 py-0.5 text-xs font-medium rounded ml-2",style:{background:"#FFFFFF",color:"#374151",border:"1px solid #E5E5E0",cursor:"pointer"},children:"Expand All"}),k.jsx("button",{onClick:()=>s(new Set),className:"px-2 py-0.5 text-xs font-medium rounded",style:{background:"#FFFFFF",color:"#374151",border:"1px solid #E5E5E0",cursor:"pointer"},children:"Collapse All"}),k.jsx("input",{value:i,onChange:h=>l(h.target.value),placeholder:"Filter by name or kind…",className:"px-2 py-1 rounded focus:outline-none ml-auto",style:{fontSize:U.xs,border:"1px solid #E5E5E0",background:"#FFFFFF",color:"#1a1a1a",width:220}})]}),k.jsxs("div",{style:{background:"#FFFFFF",border:"1px solid #E5E5E0",borderRadius:10,padding:"10px 8px"},children:[a.length===0&&k.jsx("div",{style:{color:"#9CA3AF",fontSize:U.sm,padding:16},children:"This view selects no elements."}),a.map(h=>k.jsx(Gt,{node:h,depth:0,expanded:o,visible:d==null?void 0:d.visible,forceExpanded:d==null?void 0:d.expanded,onToggle:u},h.id)),d&&a.every(h=>!d.visible.has(h.id))&&k.jsxs("div",{style:{color:"#9CA3AF",fontSize:U.sm,padding:16},children:["No matches for “",i,"”."]})]})]})})}function ko(t){var e,n,o;return((o=(n=(e=t)==null?void 0:e.canvas)==null?void 0:n.layout)==null?void 0:o.provider)??Vt}function vo(t,e){var o;const n=t??{nodes:{},edges:{}};return{...n,canvas:{...n.canvas,layout:{...(o=n.canvas)==null?void 0:o.layout,provider:e.id,providerVersion:e.version,contractVersion:e.contractVersion}}}}export{Eo as B,De as C,uo as G,po as I,mo as P,mt as a,cn as b,wo as c,rn as d,jt as e,xo as f,So as g,ln as h,Lt as i,ho as j,on as k,sn as l,yo as m,bo as n,Io as o,Mo as p,fo as q,go as r,ko as s,nn as t,lo as v,vo as w};
|
package/dist/index.html
CHANGED
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
9
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
10
|
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@700;800;900&display=swap" rel="stylesheet">
|
|
11
|
-
<script type="module" crossorigin src="/assets/index-
|
|
11
|
+
<script type="module" crossorigin src="/assets/index-CgRwea72.js"></script>
|
|
12
12
|
<link rel="modulepreload" crossorigin href="/assets/zustand-qbFpP9Up.js">
|
|
13
13
|
<link rel="modulepreload" crossorigin href="/assets/reactflow-WKyu73tD.js">
|
|
14
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
14
|
+
<link rel="stylesheet" crossorigin href="/assets/index-CnFhl4_e.css">
|
|
15
15
|
</head>
|
|
16
16
|
<body>
|
|
17
17
|
<div id="root"></div>
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memoarchitect/architect",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.6",
|
|
4
4
|
"description": "MEMO Architect — interactive workbench and distributable viewer for medical device systems engineering",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"memo-architect": "
|
|
7
|
+
"memo-architect": "lib/bin/memo-architect.js"
|
|
8
8
|
},
|
|
9
9
|
"exports": {
|
|
10
10
|
"./package.json": "./package.json",
|
|
@@ -16,36 +16,52 @@
|
|
|
16
16
|
"README.md",
|
|
17
17
|
"LICENSE"
|
|
18
18
|
],
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "pnpm run check:cache && pnpm run build:client && pnpm run build:cli",
|
|
21
|
+
"build:client": "vite build --config packages/web/vite.config.ts",
|
|
22
|
+
"build:cli": "tsc -p tsconfig.architect.json",
|
|
23
|
+
"check:cache": "bash scripts/check-no-ontology-cache.sh",
|
|
24
|
+
"dev": "vite --config packages/web/vite.config.ts",
|
|
25
|
+
"test": "cd packages/web && vitest run",
|
|
26
|
+
"test:coverage": "cd packages/web && vitest run --coverage",
|
|
27
|
+
"type-check": "tsc -p packages/web/tsconfig.json --noEmit && tsc -p tsconfig.architect.json --noEmit",
|
|
28
|
+
"clean": "rm -rf dist lib",
|
|
29
|
+
"docs:serve": "pdm run docs-serve",
|
|
30
|
+
"docs:build": "pdm run docs-build",
|
|
31
|
+
"architect": "node lib/bin/memo-architect.js",
|
|
32
|
+
"example:dev": "node scripts/run-gpca-example.mjs",
|
|
33
|
+
"setup": "pnpm install && pnpm run build && pdm install"
|
|
34
|
+
},
|
|
19
35
|
"dependencies": {
|
|
36
|
+
"@memoarchitect/tools": "0.4.6",
|
|
37
|
+
"@memoarchitect/ontology": "0.4.6",
|
|
38
|
+
"commander": "^12.1.0"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
20
41
|
"@dagrejs/dagre": "^2.0.0",
|
|
21
42
|
"@maxgraph/core": "^0.24.0",
|
|
22
43
|
"@monaco-editor/react": "^4.7.0",
|
|
23
|
-
"@xyflow/react": "^12.3.0",
|
|
24
|
-
"commander": "^12.1.0",
|
|
25
|
-
"elkjs": "^0.9.3",
|
|
26
|
-
"monaco-editor": "^0.55.1",
|
|
27
|
-
"react": "^18.3.1",
|
|
28
|
-
"react-dom": "^18.3.1",
|
|
29
|
-
"react-router-dom": "^7.13.2",
|
|
30
|
-
"zustand": "^5.0.0",
|
|
31
|
-
"@memoarchitect/tools": "0.4.4",
|
|
32
|
-
"@memoarchitect/ontology": "0.4.4"
|
|
33
|
-
},
|
|
34
|
-
"devDependencies": {
|
|
35
44
|
"@tailwindcss/postcss": "^4.0.0",
|
|
36
45
|
"@types/node": "^22.0.0",
|
|
37
46
|
"@types/react": "^18.3.0",
|
|
38
47
|
"@types/react-dom": "^18.3.0",
|
|
39
48
|
"@vitejs/plugin-react": "^4.3.0",
|
|
40
49
|
"@vitest/coverage-v8": "^2.1.0",
|
|
50
|
+
"@xyflow/react": "^12.3.0",
|
|
41
51
|
"autoprefixer": "^10.4.20",
|
|
52
|
+
"elkjs": "^0.9.3",
|
|
42
53
|
"jsdom": "^29.1.1",
|
|
54
|
+
"monaco-editor": "^0.55.1",
|
|
43
55
|
"postcss": "^8.4.49",
|
|
56
|
+
"react": "^18.3.1",
|
|
57
|
+
"react-dom": "^18.3.1",
|
|
58
|
+
"react-router-dom": "^7.13.2",
|
|
44
59
|
"tailwindcss": "^4.0.0",
|
|
45
60
|
"turbo": "^2.3.0",
|
|
46
61
|
"typescript": "~5.5.0",
|
|
47
62
|
"vite": "^6.0.0",
|
|
48
|
-
"vitest": "^2.1.0"
|
|
63
|
+
"vitest": "^2.1.0",
|
|
64
|
+
"zustand": "^5.0.0"
|
|
49
65
|
},
|
|
50
66
|
"repository": {
|
|
51
67
|
"type": "git",
|
|
@@ -55,23 +71,8 @@
|
|
|
55
71
|
"publishConfig": {
|
|
56
72
|
"access": "public"
|
|
57
73
|
},
|
|
74
|
+
"packageManager": "pnpm@9.15.0",
|
|
58
75
|
"engines": {
|
|
59
|
-
"node": ">=
|
|
60
|
-
},
|
|
61
|
-
"scripts": {
|
|
62
|
-
"build": "pnpm run check:cache && pnpm --filter @memoarchitect/tools build && pnpm run build:client && pnpm run build:cli",
|
|
63
|
-
"build:client": "vite build --config packages/web/vite.config.ts",
|
|
64
|
-
"build:cli": "tsc -p tsconfig.architect.json",
|
|
65
|
-
"check:cache": "bash scripts/check-no-ontology-cache.sh",
|
|
66
|
-
"dev": "vite --config packages/web/vite.config.ts",
|
|
67
|
-
"test": "cd packages/web && vitest run",
|
|
68
|
-
"test:coverage": "cd packages/web && vitest run --coverage",
|
|
69
|
-
"type-check": "pnpm --filter @memoarchitect/tools build && tsc -p packages/web/tsconfig.json --noEmit && tsc -p tsconfig.architect.json --noEmit",
|
|
70
|
-
"clean": "rm -rf dist lib",
|
|
71
|
-
"docs:serve": "pdm run docs-serve",
|
|
72
|
-
"docs:build": "pdm run docs-build",
|
|
73
|
-
"architect": "node lib/bin/memo-architect.js",
|
|
74
|
-
"example:dev": "cd memo-tools/memo/examples/gpca-pump && node ../../../../lib/bin/memo-architect.js dev --port 3000",
|
|
75
|
-
"setup": "pnpm install && pnpm run build && pdm install"
|
|
76
|
+
"node": ">=22.0.0"
|
|
76
77
|
}
|
|
77
|
-
}
|
|
78
|
+
}
|