From 3a999240d594d93096317a2055b17f06e97406cd Mon Sep 17 00:00:00 2001 From: forhappy Date: Fri, 14 Aug 2026 00:03:05 -0700 Subject: [PATCH] Enhance exported source navigation and workbench panels --- CHANGELOG.md | 7 + COMPATIBILITY.md | 4 + Cargo.lock | 1 + crates/compass-cli/src/help.rs | 2 +- crates/compass-cli/src/lib.rs | 102 +++++++++++- crates/compass-cli/tests/viewer_export_cli.rs | 47 +++++- crates/compass-output/Cargo.toml | 1 + crates/compass-output/assets/viewer/graph.js | 110 ++++++------- .../assets/viewer/manifest.json | 8 +- .../compass-output/assets/viewer/viewer.css | 2 +- crates/compass-output/src/lib.rs | 6 +- crates/compass-output/src/workbench.rs | 154 ++++++++++++++++++ docs/reference/outputs.md | 17 +- packages/compass-viewer/src/export-entry.tsx | 27 ++- .../compass-viewer/src/graph/CompassGraph.tsx | 10 +- .../src/graph/GraphInspector.tsx | 92 ++++++----- .../compass-viewer/src/sourceLinks.test.ts | 48 ++++++ packages/compass-viewer/src/sourceLinks.ts | 78 +++++++++ packages/compass-viewer/src/theme.css | 79 ++++++++- .../workbench/VisualizationWorkbench.test.tsx | 5 + .../src/workbench/VisualizationWorkbench.tsx | 45 ++++- tests/viewer/accessibility.spec.ts | 6 + 22 files changed, 723 insertions(+), 128 deletions(-) create mode 100644 packages/compass-viewer/src/sourceLinks.test.ts create mode 100644 packages/compass-viewer/src/sourceLinks.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 0571ba5e..b6bb8d04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,13 @@ sourceless external import identities scoped to their exact wiring sites so imports in different files cannot merge their provenance. +- Improve source navigation and canvas space in exported graph workbenches. + VS Code continues to open and select local source ranges, while standalone + HTML opens commit-pinned GitHub, GitLab, or Bitbucket line links when the Git + origin and graph source commit are known. The navigation and inspector rails + now collapse independently, repository identity is consolidated in the left + header, and the inspector begins directly with search and node details. + ## 0.3.12 - 2026-08-13 - Remove the 2 GiB aggregate canonical-payload limit from current SQLite diff --git a/COMPATIBILITY.md b/COMPATIBILITY.md index c865aede..e9ead6cc 100644 --- a/COMPATIBILITY.md +++ b/COMPATIBILITY.md @@ -114,6 +114,10 @@ and artifact-lens models. Each view carries explicit bounded coverage. Plain views, or using `compass export workbench-json`, returns the workbench contract. Consumers must reject an unknown workbench major version. The HTML DOM and CSS remain presentation details rather than machine contracts. +Standalone HTML may additionally embed optional, presentation-only source +navigation metadata for a recognized Git forge and full source commit. This +metadata is outside `compass.viewer.workbench/1`; `workbench-json` and the +versioned graph/view contracts are unchanged. Passing `--store sqlite` also publishes a validated `store.sqlite3` sidecar and typed `store.ref` selector. Typed code queries use JSON by default; `--engine store` explicitly selects and validates the sidecar. The SQLite file diff --git a/Cargo.lock b/Cargo.lock index a3134e3d..2633788c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1277,6 +1277,7 @@ dependencies = [ "thiserror 2.0.19", "time", "unicode-normalization", + "url", ] [[package]] diff --git a/crates/compass-cli/src/help.rs b/crates/compass-cli/src/help.rs index d829b3b8..d21d394b 100644 --- a/crates/compass-cli/src/help.rs +++ b/crates/compass-cli/src/help.rs @@ -441,7 +441,7 @@ const PAGES: &[Page] = &[ "export html", "Generate the interactive graph HTML report", ["compass export html [OPTIONS]"], - "Options:\n --graph Graph JSON [default: compass-out/graph.json]\n --labels Community-label JSON\n --node-limit Maximum nodes rendered [default: 5000]\n --no-viz Skip visualization output\n\nExamples:\n compass export html\n compass export html --node-limit 2000\n\nNotes:\n Large exports embed a bounded set of complete community details; use VS Code or export json --community ID for an omitted detail. Interactive terminals ask before opening the generated HTML; scripts and --no-viz never prompt or open a browser." + "Options:\n --graph Graph JSON [default: compass-out/graph.json]\n --labels Community-label JSON\n --node-limit Maximum nodes rendered [default: 5000]\n --no-viz Skip visualization output\n\nExamples:\n compass export html\n compass export html --node-limit 2000\n\nNotes:\n Large exports embed a bounded set of complete community details; use VS Code or export json --community ID for an omitted detail. Source actions open immutable commit links for recognized GitHub, GitLab, and Bitbucket origins when the graph records a full source commit. Interactive terminals ask before opening the generated HTML; scripts and --no-viz never prompt or open a browser." ), page!( "export callflow-html", diff --git a/crates/compass-cli/src/lib.rs b/crates/compass-cli/src/lib.rs index 0be80fbc..b9122816 100644 --- a/crates/compass-cli/src/lib.rs +++ b/crates/compass-cli/src/lib.rs @@ -64,14 +64,16 @@ use compass_model::query_contract::{ }; use compass_output::{ AffectedLensOptions, AgentOrientation, ArtifactLens, CallflowOptions, CallflowSection, - CanvasOptions, HtmlOptions, ObsidianOptions, SvgOptions, TreeOptions, WikiOptions, - WorkbenchCoverage, WorkbenchCoverageStatus, WorkbenchModel, WorkbenchView, + CanvasOptions, HtmlOptions, ObsidianOptions, SourceNavigation, SvgOptions, TreeOptions, + WikiOptions, WorkbenchCoverage, WorkbenchCoverageStatus, WorkbenchModel, WorkbenchView, WorkbenchViewContent, affected_lens_view_model, artifact_lens_view_model, callflow_view_model, export_obsidian, export_wiki, graph_artifact_identity, graph_community_view_model_document, graph_view_model_bundle_document, graph_view_model_document, node_filenames, render_orientation_json, validate_orientation_graph_identity, write_callflow_html, - write_canvas, write_cypher, write_graphml, write_svg, write_tree_html, write_workbench_html, + write_canvas, write_cypher, write_graphml, write_svg, write_tree_html, + write_workbench_html_with_source_navigation, }; +use compass_prs::{ProcessRunner, SystemRunner}; use compass_query::{ DEFAULT_AFFECTED_RELATIONS, DEFAULT_TEXT_TOKEN_BUDGET, DiscoveryTextPageOptions, TextPageOptions, TraversalMode, discovery_request_digest, format_affected, format_benchmark, @@ -3621,7 +3623,10 @@ fn command_export(frontend: Frontend, args: &[String]) -> Outcome { program_path: program_path.as_deref(), }, ) - .and_then(|model| export_workbench_html(&model, path)) + .and_then(|model| { + let source_navigation = export_source_navigation(&inputs, &graph_path); + export_workbench_html(&model, source_navigation.as_ref(), path) + }) } } "json" | "viewer-json" => { @@ -4124,8 +4129,13 @@ fn architecture_view_model( }) } -fn export_workbench_html(model: &WorkbenchModel, path: PathBuf) -> Result { - write_workbench_html(model, &path).map_err(|error| error.to_string())?; +fn export_workbench_html( + model: &WorkbenchModel, + source_navigation: Option<&SourceNavigation>, + path: PathBuf, +) -> Result { + write_workbench_html_with_source_navigation(model, source_navigation, &path) + .map_err(|error| error.to_string())?; Ok(ExportOutput::html( format!( "{} written - open in any browser, no server needed", @@ -4135,6 +4145,86 @@ fn export_workbench_html(model: &WorkbenchModel, path: PathBuf) -> Result Option { + const GIT_SOURCE_LINK_TIMEOUT: Duration = Duration::from_secs(2); + let revision = inputs + .document + .graph + .get("build") + .and_then(serde_json::Value::as_object) + .and_then(|build| build.get("sourceCommit")) + .and_then(serde_json::Value::as_str) + .or_else(|| { + inputs + .document + .extras + .get("built_at_commit") + .and_then(serde_json::Value::as_str) + })?; + let directory = graph_path.parent()?.to_str()?; + if !matches!(revision.len(), 40 | 64) || !revision.bytes().all(|byte| byte.is_ascii_hexdigit()) + { + return None; + } + let root = SystemRunner + .run( + "git", + &[ + "-C".to_owned(), + directory.to_owned(), + "rev-parse".to_owned(), + "--show-toplevel".to_owned(), + ], + GIT_SOURCE_LINK_TIMEOUT, + ) + .ok()?; + if root.code != 0 { + return None; + } + let root = root.stdout.trim(); + if root.is_empty() + || root + .chars() + .any(|character| matches!(character, '\0' | '\n' | '\r')) + { + return None; + } + let commit_object = format!("{revision}^{{commit}}"); + let commit = SystemRunner + .run( + "git", + &[ + "-C".to_owned(), + root.to_owned(), + "cat-file".to_owned(), + "-e".to_owned(), + commit_object, + ], + GIT_SOURCE_LINK_TIMEOUT, + ) + .ok()?; + if commit.code != 0 { + return None; + } + let remote = SystemRunner + .run( + "git", + &[ + "-C".to_owned(), + root.to_owned(), + "remote".to_owned(), + "get-url".to_owned(), + "origin".to_owned(), + ], + GIT_SOURCE_LINK_TIMEOUT, + ) + .ok()?; + if remote.code != 0 { + return None; + } + SourceNavigation::from_git_remote(remote.stdout.trim(), revision) +} + #[allow(clippy::too_many_arguments)] fn export_callflow_json( inputs: &ExportInputs, diff --git a/crates/compass-cli/tests/viewer_export_cli.rs b/crates/compass-cli/tests/viewer_export_cli.rs index 32cf06fb..a11de9de 100644 --- a/crates/compass-cli/tests/viewer_export_cli.rs +++ b/crates/compass-cli/tests/viewer_export_cli.rs @@ -1,6 +1,7 @@ mod support; use std::error::Error; +use std::process::Command; use serde_json::{Value, json}; @@ -393,6 +394,43 @@ fn impact_graph_export_uses_the_typed_query_contract() -> Result<(), Box Result<(), Box> { let directory = tempfile::tempdir()?; + let initialized = Command::new("git") + .args(["init", "--quiet"]) + .current_dir(directory.path()) + .status()?; + assert!(initialized.success()); + let remote = Command::new("git") + .args(["remote", "add", "origin", "git@gitlab.com:acme/compass.git"]) + .current_dir(directory.path()) + .status()?; + assert!(remote.success()); + std::fs::create_dir_all(directory.path().join("src"))?; + std::fs::write(directory.path().join("src/lib.rs"), "fn caller() {}\n")?; + let added = Command::new("git") + .args(["add", "src/lib.rs"]) + .current_dir(directory.path()) + .status()?; + assert!(added.success()); + let committed = Command::new("git") + .args([ + "-c", + "user.name=Compass Test", + "-c", + "user.email=compass@example.com", + "commit", + "--quiet", + "-m", + "fixture", + ]) + .current_dir(directory.path()) + .status()?; + assert!(committed.success()); + let source_commit = Command::new("git") + .args(["rev-parse", "HEAD"]) + .current_dir(directory.path()) + .output()?; + assert!(source_commit.status.success()); + let source_commit = String::from_utf8(source_commit.stdout)?.trim().to_owned(); let graph = directory.path().join("graph.json"); let html = directory.path().join("review.html"); std::fs::write( @@ -400,7 +438,10 @@ fn html_export_embeds_one_workbench_for_multiple_views() -> Result<(), Box Result<(), Boxi[o]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}function GO(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var jl={exports:{}},Tr={};var pp;function FO(){if(pp)return Tr;pp=1;var n=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function t(i,o,r){var A=null;if(r!==void 0&&(A=""+r),o.key!==void 0&&(A=""+o.key),"key"in o){r={};for(var I in o)I!=="key"&&(r[I]=o[I])}else r=o;return o=r.ref,{$$typeof:n,type:i,key:A,ref:o!==void 0?o:null,props:r}}return Tr.Fragment=e,Tr.jsx=t,Tr.jsxs=t,Tr}var mp;function VO(){return mp||(mp=1,jl.exports=FO()),jl.exports}var f=VO(),Zl={exports:{}},Or={},Bl={exports:{}},Pl={};var vp;function UO(){return vp||(vp=1,(function(n){function e(M,k){var ee=M.length;M.push(k);e:for(;0>>1,J=M[Ie];if(0>>1;Ieo(te,ee))reo(de,te)?(M[Ie]=de,M[re]=ee,Ie=re):(M[Ie]=te,M[L]=ee,Ie=L);else if(reo(de,ee))M[Ie]=de,M[re]=ee,Ie=re;else break e}}return k}function o(M,k){var ee=M.sortIndex-k.sortIndex;return ee!==0?ee:M.id-k.id}if(n.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var r=performance;n.unstable_now=function(){return r.now()}}else{var A=Date,I=A.now();n.unstable_now=function(){return A.now()-I}}var l=[],c=[],h=1,p=null,m=3,y=!1,w=!1,S=!1,x=!1,E=typeof setTimeout=="function"?setTimeout:null,N=typeof clearTimeout=="function"?clearTimeout:null,P=typeof setImmediate<"u"?setImmediate:null;function B(M){for(var k=t(c);k!==null;){if(k.callback===null)i(c);else if(k.startTime<=M)i(c),k.sortIndex=k.expirationTime,e(l,k);else break;k=t(c)}}function W(M){if(S=!1,B(M),!w)if(t(l)!==null)w=!0,ne||(ne=!0,De());else{var k=t(c);k!==null&&ae(W,k.startTime-M)}}var ne=!1,_=-1,Y=5,Ce=-1;function Ee(){return x?!0:!(n.unstable_now()-CeM&&Ee());){var Ie=p.callback;if(typeof Ie=="function"){p.callback=null,m=p.priorityLevel;var J=Ie(p.expirationTime<=M);if(M=n.unstable_now(),typeof J=="function"){p.callback=J,B(M),k=!0;break t}p===t(l)&&i(l),B(M)}else i(l);p=t(l)}if(p!==null)k=!0;else{var T=t(c);T!==null&&ae(W,T.startTime-M),k=!1}}break e}finally{p=null,m=ee,y=!1}k=void 0}}finally{k?De():ne=!1}}}var De;if(typeof P=="function")De=function(){P(_e)};else if(typeof MessageChannel<"u"){var et=new MessageChannel,Te=et.port2;et.port1.onmessage=_e,De=function(){Te.postMessage(null)}}else De=function(){E(_e,0)};function ae(M,k){_=E(function(){M(n.unstable_now())},k)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(M){M.callback=null},n.unstable_forceFrameRate=function(M){0>M||125Ie?(M.sortIndex=ee,e(c,M),t(l)===null&&M===t(c)&&(S?(N(_),_=-1):S=!0,ae(W,ee-Ie))):(M.sortIndex=J,e(l,M),w||y||(w=!0,ne||(ne=!0,De()))),M},n.unstable_shouldYield=Ee,n.unstable_wrapCallback=function(M){var k=m;return function(){var ee=m;m=k;try{return M.apply(this,arguments)}finally{m=ee}}}})(Pl)),Pl}var yp;function YO(){return yp||(yp=1,Bl.exports=UO()),Bl.exports}var Ll={exports:{}},Be={};var bp;function HO(){if(bp)return Be;bp=1;var n=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),t=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),r=Symbol.for("react.consumer"),A=Symbol.for("react.context"),I=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),c=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),m=Symbol.iterator;function y(T){return T===null||typeof T!="object"?null:(T=m&&T[m]||T["@@iterator"],typeof T=="function"?T:null)}var w={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},S=Object.assign,x={};function E(T,L,te){this.props=T,this.context=L,this.refs=x,this.updater=te||w}E.prototype.isReactComponent={},E.prototype.setState=function(T,L){if(typeof T!="object"&&typeof T!="function"&&T!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,T,L,"setState")},E.prototype.forceUpdate=function(T){this.updater.enqueueForceUpdate(this,T,"forceUpdate")};function N(){}N.prototype=E.prototype;function P(T,L,te){this.props=T,this.context=L,this.refs=x,this.updater=te||w}var B=P.prototype=new N;B.constructor=P,S(B,E.prototype),B.isPureReactComponent=!0;var W=Array.isArray;function ne(){}var _={H:null,A:null,T:null,S:null},Y=Object.prototype.hasOwnProperty;function Ce(T,L,te){var re=te.ref;return{$$typeof:n,type:T,key:L,ref:re!==void 0?re:null,props:te}}function Ee(T,L){return Ce(T.type,L,T.props)}function _e(T){return typeof T=="object"&&T!==null&&T.$$typeof===n}function De(T){var L={"=":"=0",":":"=2"};return"$"+T.replace(/[=:]/g,function(te){return L[te]})}var et=/\/+/g;function Te(T,L){return typeof T=="object"&&T!==null&&T.key!=null?De(""+T.key):L.toString(36)}function ae(T){switch(T.status){case"fulfilled":return T.value;case"rejected":throw T.reason;default:switch(typeof T.status=="string"?T.then(ne,ne):(T.status="pending",T.then(function(L){T.status==="pending"&&(T.status="fulfilled",T.value=L)},function(L){T.status==="pending"&&(T.status="rejected",T.reason=L)})),T.status){case"fulfilled":return T.value;case"rejected":throw T.reason}}throw T}function M(T,L,te,re,de){var ye=typeof T;(ye==="undefined"||ye==="boolean")&&(T=null);var Le=!1;if(T===null)Le=!0;else switch(ye){case"bigint":case"string":case"number":Le=!0;break;case"object":switch(T.$$typeof){case n:case e:Le=!0;break;case h:return Le=T._init,M(Le(T._payload),L,te,re,de)}}if(Le)return de=de(T),Le=re===""?"."+Te(T,0):re,W(de)?(te="",Le!=null&&(te=Le.replace(et,"$&/")+"/"),M(de,L,te,"",function(sn){return sn})):de!=null&&(_e(de)&&(de=Ee(de,te+(de.key==null||T&&T.key===de.key?"":(""+de.key).replace(et,"$&/")+"/")+Le)),L.push(de)),1;Le=0;var at=re===""?".":re+":";if(W(T))for(var me=0;me"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}return n(),Fl.exports=KO(),Fl.exports}var Sp;function QO(){if(Sp)return Or;Sp=1;var n=YO(),e=Gl(),t=WO();function i(g){var s="https://react.dev/errors/"+g;if(1J||(g.current=Ie[J],Ie[J]=null,J--)}function te(g,s){J++,Ie[J]=g.current,g.current=s}var re=T(null),de=T(null),ye=T(null),Le=T(null);function at(g,s){switch(te(ye,s),te(de,g),te(re,null),s.nodeType){case 9:case 11:g=(g=s.documentElement)&&(g=g.namespaceURI)?AO(g):0;break;default:if(g=s.tagName,s=s.namespaceURI)s=AO(s),g=CO(s,g);else switch(g){case"svg":g=1;break;case"math":g=2;break;default:g=0}}L(re),te(re,g)}function me(){L(re),L(de),L(ye)}function sn(g){g.memoizedState!==null&&te(Le,g);var s=re.current,a=CO(s,g.type);s!==a&&(te(de,g),te(re,a))}function z(g){de.current===g&&(L(re),L(de)),Le.current===g&&(L(Le),OA._currentValue=ee)}var fe,Ze;function je(g){if(fe===void 0)try{throw Error()}catch(a){var s=a.stack.trim().match(/\n( *(at )?)/);fe=s&&s[1]||"",Ze=-1i[o]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}function VO(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var jl={exports:{}},Tr={};var pp;function UO(){if(pp)return Tr;pp=1;var n=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function t(i,o,r){var A=null;if(r!==void 0&&(A=""+r),o.key!==void 0&&(A=""+o.key),"key"in o){r={};for(var I in o)I!=="key"&&(r[I]=o[I])}else r=o;return o=r.ref,{$$typeof:n,type:i,key:A,ref:o!==void 0?o:null,props:r}}return Tr.Fragment=e,Tr.jsx=t,Tr.jsxs=t,Tr}var mp;function YO(){return mp||(mp=1,jl.exports=UO()),jl.exports}var f=YO(),Zl={exports:{}},Or={},Bl={exports:{}},Pl={};var vp;function HO(){return vp||(vp=1,(function(n){function e(M,U){var K=M.length;M.push(U);e:for(;0>>1,ee=M[re];if(0>>1;reo(te,K))aeo(ue,te)?(M[re]=ue,M[ae]=K,re=ae):(M[re]=te,M[L]=K,re=L);else if(aeo(ue,K))M[re]=ue,M[ae]=K,re=ae;else break e}}return U}function o(M,U){var K=M.sortIndex-U.sortIndex;return K!==0?K:M.id-U.id}if(n.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var r=performance;n.unstable_now=function(){return r.now()}}else{var A=Date,I=A.now();n.unstable_now=function(){return A.now()-I}}var l=[],c=[],h=1,p=null,m=3,y=!1,w=!1,S=!1,x=!1,O=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,_=typeof setImmediate<"u"?setImmediate:null;function P(M){for(var U=t(c);U!==null;){if(U.callback===null)i(c);else if(U.startTime<=M)i(c),U.sortIndex=U.expirationTime,e(l,U);else break;U=t(c)}}function Q(M){if(S=!1,P(M),!w)if(t(l)!==null)w=!0,ne||(ne=!0,Ee());else{var U=t(c);U!==null&&Ae(Q,U.startTime-M)}}var ne=!1,j=-1,V=5,de=-1;function le(){return x?!0:!(n.unstable_now()-deM&&le());){var re=p.callback;if(typeof re=="function"){p.callback=null,m=p.priorityLevel;var ee=re(p.expirationTime<=M);if(M=n.unstable_now(),typeof ee=="function"){p.callback=ee,P(M),U=!0;break t}p===t(l)&&i(l),P(M)}else i(l);p=t(l)}if(p!==null)U=!0;else{var T=t(c);T!==null&&Ae(Q,T.startTime-M),U=!1}}break e}finally{p=null,m=K,y=!1}U=void 0}}finally{U?Ee():ne=!1}}}var Ee;if(typeof _=="function")Ee=function(){_(Ze)};else if(typeof MessageChannel<"u"){var Ue=new MessageChannel,We=Ue.port2;Ue.port1.onmessage=Ze,Ee=function(){We.postMessage(null)}}else Ee=function(){O(Ze,0)};function Ae(M,U){j=O(function(){M(n.unstable_now())},U)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(M){M.callback=null},n.unstable_forceFrameRate=function(M){0>M||125re?(M.sortIndex=K,e(c,M),t(l)===null&&M===t(c)&&(S?(E(j),j=-1):S=!0,Ae(Q,K-re))):(M.sortIndex=ee,e(l,M),w||y||(w=!0,ne||(ne=!0,Ee()))),M},n.unstable_shouldYield=le,n.unstable_wrapCallback=function(M){var U=m;return function(){var K=m;m=U;try{return M.apply(this,arguments)}finally{m=K}}}})(Pl)),Pl}var yp;function KO(){return yp||(yp=1,Bl.exports=HO()),Bl.exports}var Ll={exports:{}},je={};var bp;function WO(){if(bp)return je;bp=1;var n=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),t=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),r=Symbol.for("react.consumer"),A=Symbol.for("react.context"),I=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),c=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),m=Symbol.iterator;function y(T){return T===null||typeof T!="object"?null:(T=m&&T[m]||T["@@iterator"],typeof T=="function"?T:null)}var w={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},S=Object.assign,x={};function O(T,L,te){this.props=T,this.context=L,this.refs=x,this.updater=te||w}O.prototype.isReactComponent={},O.prototype.setState=function(T,L){if(typeof T!="object"&&typeof T!="function"&&T!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,T,L,"setState")},O.prototype.forceUpdate=function(T){this.updater.enqueueForceUpdate(this,T,"forceUpdate")};function E(){}E.prototype=O.prototype;function _(T,L,te){this.props=T,this.context=L,this.refs=x,this.updater=te||w}var P=_.prototype=new E;P.constructor=_,S(P,O.prototype),P.isPureReactComponent=!0;var Q=Array.isArray;function ne(){}var j={H:null,A:null,T:null,S:null},V=Object.prototype.hasOwnProperty;function de(T,L,te){var ae=te.ref;return{$$typeof:n,type:T,key:L,ref:ae!==void 0?ae:null,props:te}}function le(T,L){return de(T.type,L,T.props)}function Ze(T){return typeof T=="object"&&T!==null&&T.$$typeof===n}function Ee(T){var L={"=":"=0",":":"=2"};return"$"+T.replace(/[=:]/g,function(te){return L[te]})}var Ue=/\/+/g;function We(T,L){return typeof T=="object"&&T!==null&&T.key!=null?Ee(""+T.key):L.toString(36)}function Ae(T){switch(T.status){case"fulfilled":return T.value;case"rejected":throw T.reason;default:switch(typeof T.status=="string"?T.then(ne,ne):(T.status="pending",T.then(function(L){T.status==="pending"&&(T.status="fulfilled",T.value=L)},function(L){T.status==="pending"&&(T.status="rejected",T.reason=L)})),T.status){case"fulfilled":return T.value;case"rejected":throw T.reason}}throw T}function M(T,L,te,ae,ue){var ye=typeof T;(ye==="undefined"||ye==="boolean")&&(T=null);var Be=!1;if(T===null)Be=!0;else switch(ye){case"bigint":case"string":case"number":Be=!0;break;case"object":switch(T.$$typeof){case n:case e:Be=!0;break;case h:return Be=T._init,M(Be(T._payload),L,te,ae,ue)}}if(Be)return ue=ue(T),Be=ae===""?"."+We(T,0):ae,Q(ue)?(te="",Be!=null&&(te=Be.replace(Ue,"$&/")+"/"),M(ue,L,te,"",function(sn){return sn})):ue!=null&&(Ze(ue)&&(ue=le(ue,te+(ue.key==null||T&&T.key===ue.key?"":(""+ue.key).replace(Ue,"$&/")+"/")+Be)),L.push(ue)),1;Be=0;var ct=ae===""?".":ae+":";if(Q(T))for(var he=0;he"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}return n(),Fl.exports=QO(),Fl.exports}var Ep;function $O(){if(Ep)return Or;Ep=1;var n=KO(),e=Gl(),t=XO();function i(g){var s="https://react.dev/errors/"+g;if(1ee||(g.current=re[ee],re[ee]=null,ee--)}function te(g,s){ee++,re[ee]=g.current,g.current=s}var ae=T(null),ue=T(null),ye=T(null),Be=T(null);function ct(g,s){switch(te(ye,s),te(ue,g),te(ae,null),s.nodeType){case 9:case 11:g=(g=s.documentElement)&&(g=g.namespaceURI)?IO(g):0;break;default:if(g=s.tagName,s=s.namespaceURI)s=IO(s),g=lO(s,g);else switch(g){case"svg":g=1;break;case"math":g=2;break;default:g=0}}L(ae),te(ae,g)}function he(){L(ae),L(ue),L(ye)}function sn(g){g.memoizedState!==null&&te(Be,g);var s=ae.current,a=lO(s,g.type);s!==a&&(te(ue,g),te(ae,a))}function z(g){ue.current===g&&(L(ae),L(ue)),Be.current===g&&(L(Be),OA._currentValue=K)}var me,_e;function ke(g){if(me===void 0)try{throw Error()}catch(a){var s=a.stack.trim().match(/\n( *(at )?)/);me=s&&s[1]||"",_e=-1)":-1d||O[C]!==Z[d]){var Q=` -`+O[C].replace(" at new "," at ");return g.displayName&&Q.includes("")&&(Q=Q.replace("",g.displayName)),Q}while(1<=C&&0<=d);break}}}finally{dt=!1,Error.prepareStackTrace=a}return(a=g?g.displayName||g.name:"")?je(a):""}function Se(g,s){switch(g.tag){case 26:case 27:case 5:return je(g.type);case 16:return je("Lazy");case 13:return g.child!==s&&s!==null?je("Suspense Fallback"):je("Suspense");case 19:return je("SuspenseList");case 0:case 15:return oe(g.type,!1);case 11:return oe(g.type.render,!1);case 1:return oe(g.type,!0);case 31:return je("Activity");default:return""}}function xe(g){try{var s="",a=null;do s+=Se(g,a),a=g,g=g.return;while(g);return s}catch(C){return` +`+me+g+_e}var Nt=!1;function Dt(g,s){if(!g||Nt)return"";Nt=!0;var a=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var C={DetermineComponentFrameRoot:function(){try{if(s){var J=function(){throw Error()};if(Object.defineProperty(J.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(J,[])}catch(Y){var G=Y}Reflect.construct(g,[],J)}else{try{J.call()}catch(Y){G=Y}g.call(J.prototype)}}else{try{throw Error()}catch(Y){G=Y}(J=g())&&typeof J.catch=="function"&&J.catch(function(){})}}catch(Y){if(Y&&G&&typeof Y.stack=="string")return[Y.stack,G.stack]}return[null,null]}};C.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var d=Object.getOwnPropertyDescriptor(C.DetermineComponentFrameRoot,"name");d&&d.configurable&&Object.defineProperty(C.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var u=C.DetermineComponentFrameRoot(),v=u[0],b=u[1];if(v&&b){var N=v.split(` +`),B=b.split(` +`);for(d=C=0;Cd||N[C]!==B[d]){var X=` +`+N[C].replace(" at new "," at ");return g.displayName&&X.includes("")&&(X=X.replace("",g.displayName)),X}while(1<=C&&0<=d);break}}}finally{Nt=!1,Error.prepareStackTrace=a}return(a=g?g.displayName||g.name:"")?ke(a):""}function ie(g,s){switch(g.tag){case 26:case 27:case 5:return ke(g.type);case 16:return ke("Lazy");case 13:return g.child!==s&&s!==null?ke("Suspense Fallback"):ke("Suspense");case 19:return ke("SuspenseList");case 0:case 15:return Dt(g.type,!1);case 11:return Dt(g.type.render,!1);case 1:return Dt(g.type,!0);case 31:return ke("Activity");default:return""}}function Te(g){try{var s="",a=null;do s+=ie(g,a),a=g,g=g.return;while(g);return s}catch(C){return` Error generating stack: `+C.message+` -`+C.stack}}var V=Object.prototype.hasOwnProperty,Ae=n.unstable_scheduleCallback,qe=n.unstable_cancelCallback,Et=n.unstable_shouldYield,Rt=n.unstable_requestPaint,Bt=n.unstable_now,pI=n.unstable_getCurrentPriorityLevel,G2=n.unstable_ImmediatePriority,F2=n.unstable_UserBlockingPriority,mI=n.unstable_NormalPriority,gte=n.unstable_LowPriority,V2=n.unstable_IdlePriority,ote=n.log,ste=n.unstable_setDisableYieldValue,La=null,Vn=null;function Fg(g){if(typeof ote=="function"&&ste(g),Vn&&typeof Vn.setStrictMode=="function")try{Vn.setStrictMode(La,g)}catch{}}var Un=Math.clz32?Math.clz32:Ate,rte=Math.log,ate=Math.LN2;function Ate(g){return g>>>=0,g===0?32:31-(rte(g)/ate|0)|0}var vI=256,yI=262144,bI=4194304;function Bo(g){var s=g&42;if(s!==0)return s;switch(g&-g){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return g&261888;case 262144:case 524288:case 1048576:case 2097152:return g&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return g&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return g}}function wI(g,s,a){var C=g.pendingLanes;if(C===0)return 0;var d=0,u=g.suspendedLanes,v=g.pingedLanes;g=g.warmLanes;var b=C&134217727;return b!==0?(C=b&~u,C!==0?d=Bo(C):(v&=b,v!==0?d=Bo(v):a||(a=b&~g,a!==0&&(d=Bo(a))))):(b=C&~u,b!==0?d=Bo(b):v!==0?d=Bo(v):a||(a=C&~g,a!==0&&(d=Bo(a)))),d===0?0:s!==0&&s!==d&&(s&u)===0&&(u=d&-d,a=s&-s,u>=a||u===32&&(a&4194048)!==0)?s:d}function Ga(g,s){return(g.pendingLanes&~(g.suspendedLanes&~g.pingedLanes)&s)===0}function Cte(g,s){switch(g){case 1:case 2:case 4:case 8:case 64:return s+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return s+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function U2(){var g=bI;return bI<<=1,(bI&62914560)===0&&(bI=4194304),g}function oh(g){for(var s=[],a=0;31>a;a++)s.push(g);return s}function Fa(g,s){g.pendingLanes|=s,s!==268435456&&(g.suspendedLanes=0,g.pingedLanes=0,g.warmLanes=0)}function Ite(g,s,a,C,d,u){var v=g.pendingLanes;g.pendingLanes=a,g.suspendedLanes=0,g.pingedLanes=0,g.warmLanes=0,g.expiredLanes&=a,g.entangledLanes&=a,g.errorRecoveryDisabledLanes&=a,g.shellSuspendCounter=0;var b=g.entanglements,O=g.expirationTimes,Z=g.hiddenUpdates;for(a=v&~a;0"u")return null;try{return g.activeElement||g.body}catch{return g.body}}var fte=/[\n"\\]/g;function si(g){return g.replace(fte,function(s){return"\\"+s.charCodeAt(0).toString(16)+" "})}function Ih(g,s,a,C,d,u,v,b){g.name="",v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"?g.type=v:g.removeAttribute("type"),s!=null?v==="number"?(s===0&&g.value===""||g.value!=s)&&(g.value=""+oi(s)):g.value!==""+oi(s)&&(g.value=""+oi(s)):v!=="submit"&&v!=="reset"||g.removeAttribute("value"),s!=null?lh(g,v,oi(s)):a!=null?lh(g,v,oi(a)):C!=null&&g.removeAttribute("value"),d==null&&u!=null&&(g.defaultChecked=!!u),d!=null&&(g.checked=d&&typeof d!="function"&&typeof d!="symbol"),b!=null&&typeof b!="function"&&typeof b!="symbol"&&typeof b!="boolean"?g.name=""+oi(b):g.removeAttribute("name")}function iE(g,s,a,C,d,u,v,b){if(u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"&&(g.type=u),s!=null||a!=null){if(!(u!=="submit"&&u!=="reset"||s!=null)){Ch(g);return}a=a!=null?""+oi(a):"",s=s!=null?""+oi(s):a,b||s===g.value||(g.value=s),g.defaultValue=s}C=C??d,C=typeof C!="function"&&typeof C!="symbol"&&!!C,g.checked=b?g.checked:!!C,g.defaultChecked=!!C,v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"&&(g.name=v),Ch(g)}function lh(g,s,a){s==="number"&&SI(g.ownerDocument)===g||g.defaultValue===""+a||(g.defaultValue=""+a)}function Ws(g,s,a,C){if(g=g.options,s){s={};for(var d=0;d"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),fh=!1;if(gg)try{var Ha={};Object.defineProperty(Ha,"passive",{get:function(){fh=!0}}),window.addEventListener("test",Ha,Ha),window.removeEventListener("test",Ha,Ha)}catch{fh=!1}var Ug=null,ph=null,OI=null;function CE(){if(OI)return OI;var g,s=ph,a=s.length,C,d="value"in Ug?Ug.value:Ug.textContent,u=d.length;for(g=0;g=Qa),hE=" ",fE=!1;function pE(g,s){switch(g){case"keyup":return Yte.indexOf(s.keyCode)!==-1;case"keydown":return s.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function mE(g){return g=g.detail,typeof g=="object"&&"data"in g?g.data:null}var qs=!1;function Kte(g,s){switch(g){case"compositionend":return mE(s);case"keypress":return s.which!==32?null:(fE=!0,hE);case"textInput":return g=s.data,g===hE&&fE?null:g;default:return null}}function Wte(g,s){if(qs)return g==="compositionend"||!wh&&pE(g,s)?(g=CE(),OI=ph=Ug=null,qs=!1,g):null;switch(g){case"paste":return null;case"keypress":if(!(s.ctrlKey||s.altKey||s.metaKey)||s.ctrlKey&&s.altKey){if(s.char&&1=s)return{node:a,offset:s-g};g=C}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=TE(a)}}function NE(g,s){return g&&s?g===s?!0:g&&g.nodeType===3?!1:s&&s.nodeType===3?NE(g,s.parentNode):"contains"in g?g.contains(s):g.compareDocumentPosition?!!(g.compareDocumentPosition(s)&16):!1:!1}function DE(g){g=g!=null&&g.ownerDocument!=null&&g.ownerDocument.defaultView!=null?g.ownerDocument.defaultView:window;for(var s=SI(g.document);s instanceof g.HTMLIFrameElement;){try{var a=typeof s.contentWindow.location.href=="string"}catch{a=!1}if(a)g=s.contentWindow;else break;s=SI(g.document)}return s}function Sh(g){var s=g&&g.nodeName&&g.nodeName.toLowerCase();return s&&(s==="input"&&(g.type==="text"||g.type==="search"||g.type==="tel"||g.type==="url"||g.type==="password")||s==="textarea"||g.contentEditable==="true")}var nne=gg&&"documentMode"in document&&11>=document.documentMode,Js=null,Th=null,Ja=null,Oh=!1;function ME(g,s,a){var C=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;Oh||Js==null||Js!==SI(C)||(C=Js,"selectionStart"in C&&Sh(C)?C={start:C.selectionStart,end:C.selectionEnd}:(C=(C.ownerDocument&&C.ownerDocument.defaultView||window).getSelection(),C={anchorNode:C.anchorNode,anchorOffset:C.anchorOffset,focusNode:C.focusNode,focusOffset:C.focusOffset}),Ja&&qa(Ja,C)||(Ja=C,C=yl(Th,"onSelect"),0>=v,d-=v,Pi=1<<32-Un(s)+d|a<Fe?(Xe=ve,ve=null):Xe=ve.sibling;var it=G(R,ve,j[Fe],$);if(it===null){ve===null&&(ve=Xe);break}g&&ve&&it.alternate===null&&s(R,ve),D=u(it,D,Fe),nt===null?Oe=it:nt.sibling=it,nt=it,ve=Xe}if(Fe===j.length)return a(R,ve),$e&&sg(R,Fe),Oe;if(ve===null){for(;FeFe?(Xe=ve,ve=null):Xe=ve.sibling;var lo=G(R,ve,it.value,$);if(lo===null){ve===null&&(ve=Xe);break}g&&ve&&lo.alternate===null&&s(R,ve),D=u(lo,D,Fe),nt===null?Oe=lo:nt.sibling=lo,nt=lo,ve=Xe}if(it.done)return a(R,ve),$e&&sg(R,Fe),Oe;if(ve===null){for(;!it.done;Fe++,it=j.next())it=q(R,it.value,$),it!==null&&(D=u(it,D,Fe),nt===null?Oe=it:nt.sibling=it,nt=it);return $e&&sg(R,Fe),Oe}for(ve=C(ve);!it.done;Fe++,it=j.next())it=U(ve,R,Fe,it.value,$),it!==null&&(g&&it.alternate!==null&&ve.delete(it.key===null?Fe:it.key),D=u(it,D,Fe),nt===null?Oe=it:nt.sibling=it,nt=it);return g&&ve.forEach(function(bie){return s(R,bie)}),$e&&sg(R,Fe),Oe}function ft(R,D,j,$){if(typeof j=="object"&&j!==null&&j.type===S&&j.key===null&&(j=j.props.children),typeof j=="object"&&j!==null){switch(j.$$typeof){case y:e:{for(var Oe=j.key;D!==null;){if(D.key===Oe){if(Oe=j.type,Oe===S){if(D.tag===7){a(R,D.sibling),$=d(D,j.props.children),$.return=R,R=$;break e}}else if(D.elementType===Oe||typeof Oe=="object"&&Oe!==null&&Oe.$$typeof===Y&&Qo(Oe)===D.type){a(R,D.sibling),$=d(D,j.props),oA($,j),$.return=R,R=$;break e}a(R,D);break}else s(R,D);D=D.sibling}j.type===S?($=Uo(j.props.children,R.mode,$,j.key),$.return=R,R=$):($=BI(j.type,j.key,j.props,null,R.mode,$),oA($,j),$.return=R,R=$)}return v(R);case w:e:{for(Oe=j.key;D!==null;){if(D.key===Oe)if(D.tag===4&&D.stateNode.containerInfo===j.containerInfo&&D.stateNode.implementation===j.implementation){a(R,D.sibling),$=d(D,j.children||[]),$.return=R,R=$;break e}else{a(R,D);break}else s(R,D);D=D.sibling}$=_h(j,R.mode,$),$.return=R,R=$}return v(R);case Y:return j=Qo(j),ft(R,D,j,$)}if(ae(j))return ue(R,D,j,$);if(De(j)){if(Oe=De(j),typeof Oe!="function")throw Error(i(150));return j=Oe.call(j),ke(R,D,j,$)}if(typeof j.then=="function")return ft(R,D,YI(j),$);if(j.$$typeof===P)return ft(R,D,GI(R,j),$);HI(R,j)}return typeof j=="string"&&j!==""||typeof j=="number"||typeof j=="bigint"?(j=""+j,D!==null&&D.tag===6?(a(R,D.sibling),$=d(D,j),$.return=R,R=$):(a(R,D),$=Rh(j,R.mode,$),$.return=R,R=$),v(R)):a(R,D)}return function(R,D,j,$){try{gA=0;var Oe=ft(R,D,j,$);return Cr=null,Oe}catch(ve){if(ve===Ar||ve===VI)throw ve;var nt=Hn(29,ve,null,R.mode);return nt.lanes=$,nt.return=R,nt}}}var $o=eS(!0),tS=eS(!1),Qg=!1;function Kh(g){g.updateQueue={baseState:g.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Wh(g,s){g=g.updateQueue,s.updateQueue===g&&(s.updateQueue={baseState:g.baseState,firstBaseUpdate:g.firstBaseUpdate,lastBaseUpdate:g.lastBaseUpdate,shared:g.shared,callbacks:null})}function Xg(g){return{lane:g,tag:0,payload:null,callback:null,next:null}}function $g(g,s,a){var C=g.updateQueue;if(C===null)return null;if(C=C.shared,(st&2)!==0){var d=C.pending;return d===null?s.next=s:(s.next=d.next,d.next=s),C.pending=s,s=ZI(g),BE(g,null,a),s}return jI(g,C,s,a),ZI(g)}function sA(g,s,a){if(s=s.updateQueue,s!==null&&(s=s.shared,(a&4194048)!==0)){var C=s.lanes;C&=g.pendingLanes,a|=C,s.lanes=a,H2(g,a)}}function Qh(g,s){var a=g.updateQueue,C=g.alternate;if(C!==null&&(C=C.updateQueue,a===C)){var d=null,u=null;if(a=a.firstBaseUpdate,a!==null){do{var v={lane:a.lane,tag:a.tag,payload:a.payload,callback:null,next:null};u===null?d=u=v:u=u.next=v,a=a.next}while(a!==null);u===null?d=u=s:u=u.next=s}else d=u=s;a={baseState:C.baseState,firstBaseUpdate:d,lastBaseUpdate:u,shared:C.shared,callbacks:C.callbacks},g.updateQueue=a;return}g=a.lastBaseUpdate,g===null?a.firstBaseUpdate=s:g.next=s,a.lastBaseUpdate=s}var Xh=!1;function rA(){if(Xh){var g=ar;if(g!==null)throw g}}function aA(g,s,a,C){Xh=!1;var d=g.updateQueue;Qg=!1;var u=d.firstBaseUpdate,v=d.lastBaseUpdate,b=d.shared.pending;if(b!==null){d.shared.pending=null;var O=b,Z=O.next;O.next=null,v===null?u=Z:v.next=Z,v=O;var Q=g.alternate;Q!==null&&(Q=Q.updateQueue,b=Q.lastBaseUpdate,b!==v&&(b===null?Q.firstBaseUpdate=Z:b.next=Z,Q.lastBaseUpdate=O))}if(u!==null){var q=d.baseState;v=0,Q=Z=O=null,b=u;do{var G=b.lane&-536870913,U=G!==b.lane;if(U?(Qe&G)===G:(C&G)===G){G!==0&&G===rr&&(Xh=!0),Q!==null&&(Q=Q.next={lane:0,tag:b.tag,payload:b.payload,callback:null,next:null});e:{var ue=g,ke=b;G=s;var ft=a;switch(ke.tag){case 1:if(ue=ke.payload,typeof ue=="function"){q=ue.call(ft,q,G);break e}q=ue;break e;case 3:ue.flags=ue.flags&-65537|128;case 0:if(ue=ke.payload,G=typeof ue=="function"?ue.call(ft,q,G):ue,G==null)break e;q=p({},q,G);break e;case 2:Qg=!0}}G=b.callback,G!==null&&(g.flags|=64,U&&(g.flags|=8192),U=d.callbacks,U===null?d.callbacks=[G]:U.push(G))}else U={lane:G,tag:b.tag,payload:b.payload,callback:b.callback,next:null},Q===null?(Z=Q=U,O=q):Q=Q.next=U,v|=G;if(b=b.next,b===null){if(b=d.shared.pending,b===null)break;U=b,b=U.next,U.next=null,d.lastBaseUpdate=U,d.shared.pending=null}}while(!0);Q===null&&(O=q),d.baseState=O,d.firstBaseUpdate=Z,d.lastBaseUpdate=Q,u===null&&(d.shared.lanes=0),no|=v,g.lanes=v,g.memoizedState=q}}function nS(g,s){if(typeof g!="function")throw Error(i(191,g));g.call(s)}function iS(g,s){var a=g.callbacks;if(a!==null)for(g.callbacks=null,g=0;gu?u:8;var v=M.T,b={};M.T=b,hf(g,!1,s,a);try{var O=d(),Z=M.S;if(Z!==null&&Z(b,O),O!==null&&typeof O=="object"&&typeof O.then=="function"){var Q=Ine(O,C);IA(g,s,Q,$n(g))}else IA(g,s,C,$n(g))}catch(q){IA(g,s,{then:function(){},status:"rejected",reason:q},$n())}finally{k.p=u,v!==null&&b.types!==null&&(v.types=b.types),M.T=v}}function fne(){}function df(g,s,a,C){if(g.tag!==5)throw Error(i(476));var d=_S(g).queue;RS(g,d,s,ee,a===null?fne:function(){return jS(g),a(C)})}function _S(g){var s=g.memoizedState;if(s!==null)return s;s={memoizedState:ee,baseState:ee,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Cg,lastRenderedState:ee},next:null};var a={};return s.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Cg,lastRenderedState:a},next:null},g.memoizedState=s,g=g.alternate,g!==null&&(g.memoizedState=s),s}function jS(g){var s=_S(g);s.next===null&&(s=g.alternate.memoizedState),IA(g,s.next.queue,{},$n())}function uf(){return fn(OA)}function ZS(){return Ht().memoizedState}function BS(){return Ht().memoizedState}function pne(g){for(var s=g.return;s!==null;){switch(s.tag){case 24:case 3:var a=$n();g=Xg(a);var C=$g(s,g,a);C!==null&&(Pn(C,s,a),sA(C,s,a)),s={cache:Vh()},g.payload=s;return}s=s.return}}function mne(g,s,a){var C=$n();a={lane:C,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},nl(g)?LS(s,a):(a=zh(g,s,a,C),a!==null&&(Pn(a,g,C),GS(a,s,C)))}function PS(g,s,a){var C=$n();IA(g,s,a,C)}function IA(g,s,a,C){var d={lane:C,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null};if(nl(g))LS(s,d);else{var u=g.alternate;if(g.lanes===0&&(u===null||u.lanes===0)&&(u=s.lastRenderedReducer,u!==null))try{var v=s.lastRenderedState,b=u(v,a);if(d.hasEagerState=!0,d.eagerState=b,Yn(b,v))return jI(g,s,d,0),mt===null&&_I(),!1}catch{}if(a=zh(g,s,d,C),a!==null)return Pn(a,g,C),GS(a,s,C),!0}return!1}function hf(g,s,a,C){if(C={lane:2,revertLane:Wf(),gesture:null,action:C,hasEagerState:!1,eagerState:null,next:null},nl(g)){if(s)throw Error(i(479))}else s=zh(g,a,C,2),s!==null&&Pn(s,g,2)}function nl(g){var s=g.alternate;return g===Ge||s!==null&&s===Ge}function LS(g,s){lr=QI=!0;var a=g.pending;a===null?s.next=s:(s.next=a.next,a.next=s),g.pending=s}function GS(g,s,a){if((a&4194048)!==0){var C=s.lanes;C&=g.pendingLanes,a|=C,s.lanes=a,H2(g,a)}}var lA={readContext:fn,use:qI,useCallback:Pt,useContext:Pt,useEffect:Pt,useImperativeHandle:Pt,useLayoutEffect:Pt,useInsertionEffect:Pt,useMemo:Pt,useReducer:Pt,useRef:Pt,useState:Pt,useDebugValue:Pt,useDeferredValue:Pt,useTransition:Pt,useSyncExternalStore:Pt,useId:Pt,useHostTransitionStatus:Pt,useFormState:Pt,useActionState:Pt,useOptimistic:Pt,useMemoCache:Pt,useCacheRefresh:Pt};lA.useEffectEvent=Pt;var FS={readContext:fn,use:qI,useCallback:function(g,s){return On().memoizedState=[g,s===void 0?null:s],g},useContext:fn,useEffect:ES,useImperativeHandle:function(g,s,a){a=a!=null?a.concat([g]):null,el(4194308,4,NS.bind(null,s,g),a)},useLayoutEffect:function(g,s){return el(4194308,4,g,s)},useInsertionEffect:function(g,s){el(4,2,g,s)},useMemo:function(g,s){var a=On();s=s===void 0?null:s;var C=g();if(qo){Fg(!0);try{g()}finally{Fg(!1)}}return a.memoizedState=[C,s],C},useReducer:function(g,s,a){var C=On();if(a!==void 0){var d=a(s);if(qo){Fg(!0);try{a(s)}finally{Fg(!1)}}}else d=s;return C.memoizedState=C.baseState=d,g={pending:null,lanes:0,dispatch:null,lastRenderedReducer:g,lastRenderedState:d},C.queue=g,g=g.dispatch=mne.bind(null,Ge,g),[C.memoizedState,g]},useRef:function(g){var s=On();return g={current:g},s.memoizedState=g},useState:function(g){g=Af(g);var s=g.queue,a=PS.bind(null,Ge,s);return s.dispatch=a,[g.memoizedState,a]},useDebugValue:lf,useDeferredValue:function(g,s){var a=On();return cf(a,g,s)},useTransition:function(){var g=Af(!1);return g=RS.bind(null,Ge,g.queue,!0,!1),On().memoizedState=g,[!1,g]},useSyncExternalStore:function(g,s,a){var C=Ge,d=On();if($e){if(a===void 0)throw Error(i(407));a=a()}else{if(a=s(),mt===null)throw Error(i(349));(Qe&127)!==0||AS(C,s,a)}d.memoizedState=a;var u={value:a,getSnapshot:s};return d.queue=u,ES(IS.bind(null,C,u,g),[g]),C.flags|=2048,dr(9,{destroy:void 0},CS.bind(null,C,u,a,s),null),a},useId:function(){var g=On(),s=mt.identifierPrefix;if($e){var a=Li,C=Pi;a=(C&~(1<<32-Un(C)-1)).toString(32)+a,s="_"+s+"R_"+a,a=XI++,0<\/script>",u=u.removeChild(u.firstChild);break;case"select":u=typeof C.is=="string"?v.createElement("select",{is:C.is}):v.createElement("select"),C.multiple?u.multiple=!0:C.size&&(u.size=C.size);break;default:u=typeof C.is=="string"?v.createElement(d,{is:C.is}):v.createElement(d)}}u[un]=s,u[kn]=C;e:for(v=s.child;v!==null;){if(v.tag===5||v.tag===6)u.appendChild(v.stateNode);else if(v.tag!==4&&v.tag!==27&&v.child!==null){v.child.return=v,v=v.child;continue}if(v===s)break e;for(;v.sibling===null;){if(v.return===null||v.return===s)break e;v=v.return}v.sibling.return=v.return,v=v.sibling}s.stateNode=u;e:switch(mn(u,d,C),d){case"button":case"input":case"select":case"textarea":C=!!C.autoFocus;break e;case"img":C=!0;break e;default:C=!1}C&&lg(s)}}return Tt(s),Df(s,s.type,g===null?null:g.memoizedProps,s.pendingProps,a),null;case 6:if(g&&s.stateNode!=null)g.memoizedProps!==C&&lg(s);else{if(typeof C!="string"&&s.stateNode===null)throw Error(i(166));if(g=ye.current,or(s)){if(g=s.stateNode,a=s.memoizedProps,C=null,d=hn,d!==null)switch(d.tag){case 27:case 5:C=d.memoizedProps}g[un]=s,g=!!(g.nodeValue===a||C!==null&&C.suppressHydrationWarning===!0||rO(g.nodeValue,a)),g||Kg(s,!0)}else g=bl(g).createTextNode(C),g[un]=s,s.stateNode=g}return Tt(s),null;case 31:if(a=s.memoizedState,g===null||g.memoizedState!==null){if(C=or(s),a!==null){if(g===null){if(!C)throw Error(i(318));if(g=s.memoizedState,g=g!==null?g.dehydrated:null,!g)throw Error(i(557));g[un]=s}else Yo(),(s.flags&128)===0&&(s.memoizedState=null),s.flags|=4;Tt(s),g=!1}else a=Ph(),g!==null&&g.memoizedState!==null&&(g.memoizedState.hydrationErrors=a),g=!0;if(!g)return s.flags&256?(Wn(s),s):(Wn(s),null);if((s.flags&128)!==0)throw Error(i(558))}return Tt(s),null;case 13:if(C=s.memoizedState,g===null||g.memoizedState!==null&&g.memoizedState.dehydrated!==null){if(d=or(s),C!==null&&C.dehydrated!==null){if(g===null){if(!d)throw Error(i(318));if(d=s.memoizedState,d=d!==null?d.dehydrated:null,!d)throw Error(i(317));d[un]=s}else Yo(),(s.flags&128)===0&&(s.memoizedState=null),s.flags|=4;Tt(s),d=!1}else d=Ph(),g!==null&&g.memoizedState!==null&&(g.memoizedState.hydrationErrors=d),d=!0;if(!d)return s.flags&256?(Wn(s),s):(Wn(s),null)}return Wn(s),(s.flags&128)!==0?(s.lanes=a,s):(a=C!==null,g=g!==null&&g.memoizedState!==null,a&&(C=s.child,d=null,C.alternate!==null&&C.alternate.memoizedState!==null&&C.alternate.memoizedState.cachePool!==null&&(d=C.alternate.memoizedState.cachePool.pool),u=null,C.memoizedState!==null&&C.memoizedState.cachePool!==null&&(u=C.memoizedState.cachePool.pool),u!==d&&(C.flags|=2048)),a!==g&&a&&(s.child.flags|=8192),rl(s,s.updateQueue),Tt(s),null);case 4:return me(),g===null&&qf(s.stateNode.containerInfo),Tt(s),null;case 10:return ag(s.type),Tt(s),null;case 19:if(L(Yt),C=s.memoizedState,C===null)return Tt(s),null;if(d=(s.flags&128)!==0,u=C.rendering,u===null)if(d)dA(C,!1);else{if(Lt!==0||g!==null&&(g.flags&128)!==0)for(g=s.child;g!==null;){if(u=WI(g),u!==null){for(s.flags|=128,dA(C,!1),g=u.updateQueue,s.updateQueue=g,rl(s,g),s.subtreeFlags=0,g=a,a=s.child;a!==null;)PE(a,g),a=a.sibling;return te(Yt,Yt.current&1|2),$e&&sg(s,C.treeForkCount),s.child}g=g.sibling}C.tail!==null&&Bt()>ll&&(s.flags|=128,d=!0,dA(C,!1),s.lanes=4194304)}else{if(!d)if(g=WI(u),g!==null){if(s.flags|=128,d=!0,g=g.updateQueue,s.updateQueue=g,rl(s,g),dA(C,!0),C.tail===null&&C.tailMode==="hidden"&&!u.alternate&&!$e)return Tt(s),null}else 2*Bt()-C.renderingStartTime>ll&&a!==536870912&&(s.flags|=128,d=!0,dA(C,!1),s.lanes=4194304);C.isBackwards?(u.sibling=s.child,s.child=u):(g=C.last,g!==null?g.sibling=u:s.child=u,C.last=u)}return C.tail!==null?(g=C.tail,C.rendering=g,C.tail=g.sibling,C.renderingStartTime=Bt(),g.sibling=null,a=Yt.current,te(Yt,d?a&1|2:a&1),$e&&sg(s,C.treeForkCount),g):(Tt(s),null);case 22:case 23:return Wn(s),qh(),C=s.memoizedState!==null,g!==null?g.memoizedState!==null!==C&&(s.flags|=8192):C&&(s.flags|=8192),C?(a&536870912)!==0&&(s.flags&128)===0&&(Tt(s),s.subtreeFlags&6&&(s.flags|=8192)):Tt(s),a=s.updateQueue,a!==null&&rl(s,a.retryQueue),a=null,g!==null&&g.memoizedState!==null&&g.memoizedState.cachePool!==null&&(a=g.memoizedState.cachePool.pool),C=null,s.memoizedState!==null&&s.memoizedState.cachePool!==null&&(C=s.memoizedState.cachePool.pool),C!==a&&(s.flags|=2048),g!==null&&L(Wo),null;case 24:return a=null,g!==null&&(a=g.memoizedState.cache),s.memoizedState.cache!==a&&(s.flags|=2048),ag(qt),Tt(s),null;case 25:return null;case 30:return null}throw Error(i(156,s.tag))}function xne(g,s){switch(Zh(s),s.tag){case 1:return g=s.flags,g&65536?(s.flags=g&-65537|128,s):null;case 3:return ag(qt),me(),g=s.flags,(g&65536)!==0&&(g&128)===0?(s.flags=g&-65537|128,s):null;case 26:case 27:case 5:return z(s),null;case 31:if(s.memoizedState!==null){if(Wn(s),s.alternate===null)throw Error(i(340));Yo()}return g=s.flags,g&65536?(s.flags=g&-65537|128,s):null;case 13:if(Wn(s),g=s.memoizedState,g!==null&&g.dehydrated!==null){if(s.alternate===null)throw Error(i(340));Yo()}return g=s.flags,g&65536?(s.flags=g&-65537|128,s):null;case 19:return L(Yt),null;case 4:return me(),null;case 10:return ag(s.type),null;case 22:case 23:return Wn(s),qh(),g!==null&&L(Wo),g=s.flags,g&65536?(s.flags=g&-65537|128,s):null;case 24:return ag(qt),null;case 25:return null;default:return null}}function lT(g,s){switch(Zh(s),s.tag){case 3:ag(qt),me();break;case 26:case 27:case 5:z(s);break;case 4:me();break;case 31:s.memoizedState!==null&&Wn(s);break;case 13:Wn(s);break;case 19:L(Yt);break;case 10:ag(s.type);break;case 22:case 23:Wn(s),qh(),g!==null&&L(Wo);break;case 24:ag(qt)}}function uA(g,s){try{var a=s.updateQueue,C=a!==null?a.lastEffect:null;if(C!==null){var d=C.next;a=d;do{if((a.tag&g)===g){C=void 0;var u=a.create,v=a.inst;C=u(),v.destroy=C}a=a.next}while(a!==d)}}catch(b){lt(s,s.return,b)}}function eo(g,s,a){try{var C=s.updateQueue,d=C!==null?C.lastEffect:null;if(d!==null){var u=d.next;C=u;do{if((C.tag&g)===g){var v=C.inst,b=v.destroy;if(b!==void 0){v.destroy=void 0,d=s;var O=a,Z=b;try{Z()}catch(Q){lt(d,O,Q)}}}C=C.next}while(C!==u)}}catch(Q){lt(s,s.return,Q)}}function cT(g){var s=g.updateQueue;if(s!==null){var a=g.stateNode;try{iS(s,a)}catch(C){lt(g,g.return,C)}}}function dT(g,s,a){a.props=Jo(g.type,g.memoizedProps),a.state=g.memoizedState;try{a.componentWillUnmount()}catch(C){lt(g,s,C)}}function hA(g,s){try{var a=g.ref;if(a!==null){switch(g.tag){case 26:case 27:case 5:var C=g.stateNode;break;case 30:C=g.stateNode;break;default:C=g.stateNode}typeof a=="function"?g.refCleanup=a(C):a.current=C}}catch(d){lt(g,s,d)}}function Gi(g,s){var a=g.ref,C=g.refCleanup;if(a!==null)if(typeof C=="function")try{C()}catch(d){lt(g,s,d)}finally{g.refCleanup=null,g=g.alternate,g!=null&&(g.refCleanup=null)}else if(typeof a=="function")try{a(null)}catch(d){lt(g,s,d)}else a.current=null}function uT(g){var s=g.type,a=g.memoizedProps,C=g.stateNode;try{e:switch(s){case"button":case"input":case"select":case"textarea":a.autoFocus&&C.focus();break e;case"img":a.src?C.src=a.src:a.srcSet&&(C.srcset=a.srcSet)}}catch(d){lt(g,g.return,d)}}function Mf(g,s,a){try{var C=g.stateNode;Hne(C,g.type,a,s),C[kn]=s}catch(d){lt(g,g.return,d)}}function hT(g){return g.tag===5||g.tag===3||g.tag===26||g.tag===27&&ro(g.type)||g.tag===4}function zf(g){e:for(;;){for(;g.sibling===null;){if(g.return===null||hT(g.return))return null;g=g.return}for(g.sibling.return=g.return,g=g.sibling;g.tag!==5&&g.tag!==6&&g.tag!==18;){if(g.tag===27&&ro(g.type)||g.flags&2||g.child===null||g.tag===4)continue e;g.child.return=g,g=g.child}if(!(g.flags&2))return g.stateNode}}function kf(g,s,a){var C=g.tag;if(C===5||C===6)g=g.stateNode,s?(a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a).insertBefore(g,s):(s=a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a,s.appendChild(g),a=a._reactRootContainer,a!=null||s.onclick!==null||(s.onclick=ig));else if(C!==4&&(C===27&&ro(g.type)&&(a=g.stateNode,s=null),g=g.child,g!==null))for(kf(g,s,a),g=g.sibling;g!==null;)kf(g,s,a),g=g.sibling}function al(g,s,a){var C=g.tag;if(C===5||C===6)g=g.stateNode,s?a.insertBefore(g,s):a.appendChild(g);else if(C!==4&&(C===27&&ro(g.type)&&(a=g.stateNode),g=g.child,g!==null))for(al(g,s,a),g=g.sibling;g!==null;)al(g,s,a),g=g.sibling}function fT(g){var s=g.stateNode,a=g.memoizedProps;try{for(var C=g.type,d=s.attributes;d.length;)s.removeAttributeNode(d[0]);mn(s,C,a),s[un]=g,s[kn]=a}catch(u){lt(g,g.return,u)}}var cg=!1,tn=!1,Rf=!1,pT=typeof WeakSet=="function"?WeakSet:Set,In=null;function Ene(g,s){if(g=g.containerInfo,tp=Nl,g=DE(g),Sh(g)){if("selectionStart"in g)var a={start:g.selectionStart,end:g.selectionEnd};else e:{a=(a=g.ownerDocument)&&a.defaultView||window;var C=a.getSelection&&a.getSelection();if(C&&C.rangeCount!==0){a=C.anchorNode;var d=C.anchorOffset,u=C.focusNode;C=C.focusOffset;try{a.nodeType,u.nodeType}catch{a=null;break e}var v=0,b=-1,O=-1,Z=0,Q=0,q=g,G=null;t:for(;;){for(var U;q!==a||d!==0&&q.nodeType!==3||(b=v+d),q!==u||C!==0&&q.nodeType!==3||(O=v+C),q.nodeType===3&&(v+=q.nodeValue.length),(U=q.firstChild)!==null;)G=q,q=U;for(;;){if(q===g)break t;if(G===a&&++Z===d&&(b=v),G===u&&++Q===C&&(O=v),(U=q.nextSibling)!==null)break;q=G,G=q.parentNode}q=U}a=b===-1||O===-1?null:{start:b,end:O}}else a=null}a=a||{start:0,end:0}}else a=null;for(np={focusedElem:g,selectionRange:a},Nl=!1,In=s;In!==null;)if(s=In,g=s.child,(s.subtreeFlags&1028)!==0&&g!==null)g.return=s,In=g;else for(;In!==null;){switch(s=In,u=s.alternate,g=s.flags,s.tag){case 0:if((g&4)!==0&&(g=s.updateQueue,g=g!==null?g.events:null,g!==null))for(a=0;a title"))),mn(u,C,a),u[un]=g,Cn(u),C=u;break e;case"link":var v=xO("link","href",d).get(C+(a.href||""));if(v){for(var b=0;bft&&(v=ft,ft=ke,ke=v);var R=OE(b,ke),D=OE(b,ft);if(R&&D&&(U.rangeCount!==1||U.anchorNode!==R.node||U.anchorOffset!==R.offset||U.focusNode!==D.node||U.focusOffset!==D.offset)){var j=q.createRange();j.setStart(R.node,R.offset),U.removeAllRanges(),ke>ft?(U.addRange(j),U.extend(D.node,D.offset)):(j.setEnd(D.node,D.offset),U.addRange(j))}}}}for(q=[],U=b;U=U.parentNode;)U.nodeType===1&&q.push({element:U,left:U.scrollLeft,top:U.scrollTop});for(typeof b.focus=="function"&&b.focus(),b=0;ba?32:a,M.T=null,a=Gf,Gf=null;var u=go,v=pg;if(rn=0,mr=go=null,pg=0,(st&6)!==0)throw Error(i(331));var b=st;if(st|=4,NT(u.current),ST(u,u.current,v,a),st=b,bA(0,!1),Vn&&typeof Vn.onPostCommitFiberRoot=="function")try{Vn.onPostCommitFiberRoot(La,u)}catch{}return!0}finally{k.p=d,M.T=C,KT(g,s)}}function QT(g,s,a){s=ai(a,s),s=vf(g.stateNode,s,2),g=$g(g,s,2),g!==null&&(Fa(g,2),Fi(g))}function lt(g,s,a){if(g.tag===3)QT(g,g,a);else for(;s!==null;){if(s.tag===3){QT(s,g,a);break}else if(s.tag===1){var C=s.stateNode;if(typeof s.type.getDerivedStateFromError=="function"||typeof C.componentDidCatch=="function"&&(io===null||!io.has(C))){g=ai(a,g),a=XS(2),C=$g(s,a,2),C!==null&&($S(a,C,s,g),Fa(C,2),Fi(C));break}}s=s.return}}function Yf(g,s,a){var C=g.pingCache;if(C===null){C=g.pingCache=new One;var d=new Set;C.set(s,d)}else d=C.get(s),d===void 0&&(d=new Set,C.set(s,d));d.has(a)||(Zf=!0,d.add(a),g=kne.bind(null,g,s,a),s.then(g,g))}function kne(g,s,a){var C=g.pingCache;C!==null&&C.delete(s),g.pingedLanes|=g.suspendedLanes&a,g.warmLanes&=~a,mt===g&&(Qe&a)===a&&(Lt===4||Lt===3&&(Qe&62914560)===Qe&&300>Bt()-Il?(st&2)===0&&vr(g,0):Bf|=a,pr===Qe&&(pr=0)),Fi(g)}function XT(g,s){s===0&&(s=U2()),g=Vo(g,s),g!==null&&(Fa(g,s),Fi(g))}function Rne(g){var s=g.memoizedState,a=0;s!==null&&(a=s.retryLane),XT(g,a)}function _ne(g,s){var a=0;switch(g.tag){case 31:case 13:var C=g.stateNode,d=g.memoizedState;d!==null&&(a=d.retryLane);break;case 19:C=g.stateNode;break;case 22:C=g.stateNode._retryCache;break;default:throw Error(i(314))}C!==null&&C.delete(s),XT(g,a)}function jne(g,s){return Ae(g,s)}var pl=null,br=null,Hf=!1,ml=!1,Kf=!1,so=0;function Fi(g){g!==br&&g.next===null&&(br===null?pl=br=g:br=br.next=g),ml=!0,Hf||(Hf=!0,Bne())}function bA(g,s){if(!Kf&&ml){Kf=!0;do for(var a=!1,C=pl;C!==null;){if(g!==0){var d=C.pendingLanes;if(d===0)var u=0;else{var v=C.suspendedLanes,b=C.pingedLanes;u=(1<<31-Un(42|g)+1)-1,u&=d&~(v&~b),u=u&201326741?u&201326741|1:u?u|2:0}u!==0&&(a=!0,eO(C,u))}else u=Qe,u=wI(C,C===mt?u:0,C.cancelPendingCommit!==null||C.timeoutHandle!==-1),(u&3)===0||Ga(C,u)||(a=!0,eO(C,u));C=C.next}while(a);Kf=!1}}function Zne(){$T()}function $T(){ml=Hf=!1;var g=0;so!==0&&Wne()&&(g=so);for(var s=Bt(),a=null,C=pl;C!==null;){var d=C.next,u=qT(C,s);u===0?(C.next=null,a===null?pl=d:a.next=d,d===null&&(br=a)):(a=C,(g!==0||(u&3)!==0)&&(ml=!0)),C=d}rn!==0&&rn!==5||bA(g),so!==0&&(so=0)}function qT(g,s){for(var a=g.suspendedLanes,C=g.pingedLanes,d=g.expirationTimes,u=g.pendingLanes&-62914561;0b)break;var Q=O.transferSize,q=O.initiatorType;Q&&aO(q)&&(O=O.responseEnd,v+=Q*(O"u"?null:document;function vO(g,s,a){var C=wr;if(C&&typeof s=="string"&&s){var d=si(s);d='link[rel="'+g+'"][href="'+d+'"]',typeof a=="string"&&(d+='[crossorigin="'+a+'"]'),mO.has(d)||(mO.add(d),g={rel:g,crossOrigin:a,href:s},C.querySelector(d)===null&&(s=C.createElement("link"),mn(s,"link",g),Cn(s),C.head.appendChild(s)))}}function iie(g){mg.D(g),vO("dns-prefetch",g,null)}function gie(g,s){mg.C(g,s),vO("preconnect",g,s)}function oie(g,s,a){mg.L(g,s,a);var C=wr;if(C&&g&&s){var d='link[rel="preload"][as="'+si(s)+'"]';s==="image"&&a&&a.imageSrcSet?(d+='[imagesrcset="'+si(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(d+='[imagesizes="'+si(a.imageSizes)+'"]')):d+='[href="'+si(g)+'"]';var u=d;switch(s){case"style":u=xr(g);break;case"script":u=Er(g)}di.has(u)||(g=p({rel:"preload",href:s==="image"&&a&&a.imageSrcSet?void 0:g,as:s},a),di.set(u,g),C.querySelector(d)!==null||s==="style"&&C.querySelector(SA(u))||s==="script"&&C.querySelector(TA(u))||(s=C.createElement("link"),mn(s,"link",g),Cn(s),C.head.appendChild(s)))}}function sie(g,s){mg.m(g,s);var a=wr;if(a&&g){var C=s&&typeof s.as=="string"?s.as:"script",d='link[rel="modulepreload"][as="'+si(C)+'"][href="'+si(g)+'"]',u=d;switch(C){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":u=Er(g)}if(!di.has(u)&&(g=p({rel:"modulepreload",href:g},s),di.set(u,g),a.querySelector(d)===null)){switch(C){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(TA(u)))return}C=a.createElement("link"),mn(C,"link",g),Cn(C),a.head.appendChild(C)}}}function rie(g,s,a){mg.S(g,s,a);var C=wr;if(C&&g){var d=Hs(C).hoistableStyles,u=xr(g);s=s||"default";var v=d.get(u);if(!v){var b={loading:0,preload:null};if(v=C.querySelector(SA(u)))b.loading=5;else{g=p({rel:"stylesheet",href:g,"data-precedence":s},a),(a=di.get(u))&&Ap(g,a);var O=v=C.createElement("link");Cn(O),mn(O,"link",g),O._p=new Promise(function(Z,Q){O.onload=Z,O.onerror=Q}),O.addEventListener("load",function(){b.loading|=1}),O.addEventListener("error",function(){b.loading|=2}),b.loading|=4,xl(v,s,C)}v={type:"stylesheet",instance:v,count:1,state:b},d.set(u,v)}}}function aie(g,s){mg.X(g,s);var a=wr;if(a&&g){var C=Hs(a).hoistableScripts,d=Er(g),u=C.get(d);u||(u=a.querySelector(TA(d)),u||(g=p({src:g,async:!0},s),(s=di.get(d))&&Cp(g,s),u=a.createElement("script"),Cn(u),mn(u,"link",g),a.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},C.set(d,u))}}function Aie(g,s){mg.M(g,s);var a=wr;if(a&&g){var C=Hs(a).hoistableScripts,d=Er(g),u=C.get(d);u||(u=a.querySelector(TA(d)),u||(g=p({src:g,async:!0,type:"module"},s),(s=di.get(d))&&Cp(g,s),u=a.createElement("script"),Cn(u),mn(u,"link",g),a.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},C.set(d,u))}}function yO(g,s,a,C){var d=(d=ye.current)?wl(d):null;if(!d)throw Error(i(446));switch(g){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(s=xr(a.href),a=Hs(d).hoistableStyles,C=a.get(s),C||(C={type:"style",instance:null,count:0,state:null},a.set(s,C)),C):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){g=xr(a.href);var u=Hs(d).hoistableStyles,v=u.get(g);if(v||(d=d.ownerDocument||d,v={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},u.set(g,v),(u=d.querySelector(SA(g)))&&!u._p&&(v.instance=u,v.state.loading=5),di.has(g)||(a={rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},di.set(g,a),u||Cie(d,g,a,v.state))),s&&C===null)throw Error(i(528,""));return v}if(s&&C!==null)throw Error(i(529,""));return null;case"script":return s=a.async,a=a.src,typeof a=="string"&&s&&typeof s!="function"&&typeof s!="symbol"?(s=Er(a),a=Hs(d).hoistableScripts,C=a.get(s),C||(C={type:"script",instance:null,count:0,state:null},a.set(s,C)),C):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,g))}}function xr(g){return'href="'+si(g)+'"'}function SA(g){return'link[rel="stylesheet"]['+g+"]"}function bO(g){return p({},g,{"data-precedence":g.precedence,precedence:null})}function Cie(g,s,a,C){g.querySelector('link[rel="preload"][as="style"]['+s+"]")?C.loading=1:(s=g.createElement("link"),C.preload=s,s.addEventListener("load",function(){return C.loading|=1}),s.addEventListener("error",function(){return C.loading|=2}),mn(s,"link",a),Cn(s),g.head.appendChild(s))}function Er(g){return'[src="'+si(g)+'"]'}function TA(g){return"script[async]"+g}function wO(g,s,a){if(s.count++,s.instance===null)switch(s.type){case"style":var C=g.querySelector('style[data-href~="'+si(a.href)+'"]');if(C)return s.instance=C,Cn(C),C;var d=p({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return C=(g.ownerDocument||g).createElement("style"),Cn(C),mn(C,"style",d),xl(C,a.precedence,g),s.instance=C;case"stylesheet":d=xr(a.href);var u=g.querySelector(SA(d));if(u)return s.state.loading|=4,s.instance=u,Cn(u),u;C=bO(a),(d=di.get(d))&&Ap(C,d),u=(g.ownerDocument||g).createElement("link"),Cn(u);var v=u;return v._p=new Promise(function(b,O){v.onload=b,v.onerror=O}),mn(u,"link",C),s.state.loading|=4,xl(u,a.precedence,g),s.instance=u;case"script":return u=Er(a.src),(d=g.querySelector(TA(u)))?(s.instance=d,Cn(d),d):(C=a,(d=di.get(u))&&(C=p({},a),Cp(C,d)),g=g.ownerDocument||g,d=g.createElement("script"),Cn(d),mn(d,"link",C),g.head.appendChild(d),s.instance=d);case"void":return null;default:throw Error(i(443,s.type))}else s.type==="stylesheet"&&(s.state.loading&4)===0&&(C=s.instance,s.state.loading|=4,xl(C,a.precedence,g));return s.instance}function xl(g,s,a){for(var C=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),d=C.length?C[C.length-1]:null,u=d,v=0;v title"):null)}function Iie(g,s,a){if(a===1||s.itemProp!=null)return!1;switch(g){case"meta":case"title":return!0;case"style":if(typeof s.precedence!="string"||typeof s.href!="string"||s.href==="")break;return!0;case"link":if(typeof s.rel!="string"||typeof s.href!="string"||s.href===""||s.onLoad||s.onError)break;return s.rel==="stylesheet"?(g=s.disabled,typeof s.precedence=="string"&&g==null):!0;case"script":if(s.async&&typeof s.async!="function"&&typeof s.async!="symbol"&&!s.onLoad&&!s.onError&&s.src&&typeof s.src=="string")return!0}return!1}function SO(g){return!(g.type==="stylesheet"&&(g.state.loading&3)===0)}function lie(g,s,a,C){if(a.type==="stylesheet"&&(typeof C.media!="string"||matchMedia(C.media).matches!==!1)&&(a.state.loading&4)===0){if(a.instance===null){var d=xr(C.href),u=s.querySelector(SA(d));if(u){s=u._p,s!==null&&typeof s=="object"&&typeof s.then=="function"&&(g.count++,g=Sl.bind(g),s.then(g,g)),a.state.loading|=4,a.instance=u,Cn(u);return}u=s.ownerDocument||s,C=bO(C),(d=di.get(d))&&Ap(C,d),u=u.createElement("link"),Cn(u);var v=u;v._p=new Promise(function(b,O){v.onload=b,v.onerror=O}),mn(u,"link",C),a.instance=u}g.stylesheets===null&&(g.stylesheets=new Map),g.stylesheets.set(a,s),(s=a.state.preload)&&(a.state.loading&3)===0&&(g.count++,a=Sl.bind(g),s.addEventListener("load",a),s.addEventListener("error",a))}}var Ip=0;function cie(g,s){return g.stylesheets&&g.count===0&&Ol(g,g.stylesheets),0Ip?50:800)+s);return g.unsuspend=a,function(){g.unsuspend=null,clearTimeout(C),clearTimeout(d)}}:null}function Sl(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Ol(this,this.stylesheets);else if(this.unsuspend){var g=this.unsuspend;this.unsuspend=null,g()}}}var Tl=null;function Ol(g,s){g.stylesheets=null,g.unsuspend!==null&&(g.count++,Tl=new Map,s.forEach(die,g),Tl=null,Sl.call(g))}function die(g,s){if(!(s.state.loading&4)){var a=Tl.get(g);if(a)var C=a.get(null);else{a=new Map,Tl.set(g,a);for(var d=g.querySelectorAll("link[data-precedence],style[data-precedence]"),u=0;u"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}return n(),Zl.exports=QO(),Zl.exports}var $O=XO(),Op;function X(n,e,t){function i(I,l){if(I._zod||Object.defineProperty(I,"_zod",{value:{def:l,constr:A,traits:new Set},enumerable:!1}),I._zod.traits.has(n))return;I._zod.traits.add(n),e(I,l);const c=A.prototype,h=Object.keys(c);for(let p=0;pt?.Parent&&I instanceof t.Parent?!0:I?._zod?.traits?.has(n)}),Object.defineProperty(A,"name",{value:n}),A}class ns extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class Np extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}}(Op=globalThis).__zod_globalConfig??(Op.__zod_globalConfig={});const Vl=globalThis.__zod_globalConfig;function Vi(n){return Vl}function Dp(n){const e=Object.values(n).filter(i=>typeof i=="number");return Object.entries(n).filter(([i,o])=>e.indexOf(+i)===-1).map(([i,o])=>o)}function Ul(n,e){return typeof e=="bigint"?e.toString():e}function zA(n){return{get value(){{const e=n();return Object.defineProperty(this,"value",{value:e}),e}}}}function Yl(n){return n==null}function Hl(n){const e=n.startsWith("^")?1:0,t=n.endsWith("$")?n.length-1:n.length;return n.slice(e,t)}function qO(n,e){const t=n/e,i=Math.round(t),o=Number.EPSILON*Math.max(Math.abs(t),1);return Math.abs(t-i){};function Nr(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}const eN=zA(()=>{if(Vl.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const n=Function;return new n(""),!0}catch{return!1}});function is(n){if(Nr(n)===!1)return!1;const e=n.constructor;if(e===void 0||typeof e!="function")return!0;const t=e.prototype;return!(Nr(t)===!1||Object.prototype.hasOwnProperty.call(t,"isPrototypeOf")===!1)}function Rp(n){return is(n)?{...n}:Array.isArray(n)?[...n]:n instanceof Map?new Map(n):n instanceof Set?new Set(n):n}const tN=new Set(["string","number","symbol"]);function gs(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function yg(n,e,t){const i=new n._zod.constr(e??n._zod.def);return(!e||t?.parent)&&(i._zod.parent=n),i}function be(n){const e=n;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function nN(n){return Object.keys(n).filter(e=>n[e]._zod.optin==="optional"&&n[e]._zod.optout==="optional")}const iN={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function gN(n,e){const t=n._zod.def,i=t.checks;if(i&&i.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const r=vg(n._zod.def,{get shape(){const A={};for(const I in e){if(!(I in t.shape))throw new Error(`Unrecognized key: "${I}"`);e[I]&&(A[I]=t.shape[I])}return co(this,"shape",A),A},checks:[]});return yg(n,r)}function oN(n,e){const t=n._zod.def,i=t.checks;if(i&&i.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const r=vg(n._zod.def,{get shape(){const A={...n._zod.def.shape};for(const I in e){if(!(I in t.shape))throw new Error(`Unrecognized key: "${I}"`);e[I]&&delete A[I]}return co(this,"shape",A),A},checks:[]});return yg(n,r)}function sN(n,e){if(!is(e))throw new Error("Invalid input to extend: expected a plain object");const t=n._zod.def.checks;if(t&&t.length>0){const r=n._zod.def.shape;for(const A in e)if(Object.getOwnPropertyDescriptor(r,A)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const o=vg(n._zod.def,{get shape(){const r={...n._zod.def.shape,...e};return co(this,"shape",r),r}});return yg(n,o)}function rN(n,e){if(!is(e))throw new Error("Invalid input to safeExtend: expected a plain object");const t=vg(n._zod.def,{get shape(){const i={...n._zod.def.shape,...e};return co(this,"shape",i),i}});return yg(n,t)}function aN(n,e){if(n._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");const t=vg(n._zod.def,{get shape(){const i={...n._zod.def.shape,...e._zod.def.shape};return co(this,"shape",i),i},get catchall(){return e._zod.def.catchall},checks:e._zod.def.checks??[]});return yg(n,t)}function AN(n,e,t){const o=e._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const A=vg(e._zod.def,{get shape(){const I=e._zod.def.shape,l={...I};if(t)for(const c in t){if(!(c in I))throw new Error(`Unrecognized key: "${c}"`);t[c]&&(l[c]=n?new n({type:"optional",innerType:I[c]}):I[c])}else for(const c in I)l[c]=n?new n({type:"optional",innerType:I[c]}):I[c];return co(this,"shape",l),l},checks:[]});return yg(e,A)}function CN(n,e,t){const i=vg(e._zod.def,{get shape(){const o=e._zod.def.shape,r={...o};if(t)for(const A in t){if(!(A in r))throw new Error(`Unrecognized key: "${A}"`);t[A]&&(r[A]=new n({type:"nonoptional",innerType:o[A]}))}else for(const A in o)r[A]=new n({type:"nonoptional",innerType:o[A]});return co(this,"shape",r),r}});return yg(e,i)}function os(n,e=0){if(n.aborted===!0)return!0;for(let t=e;t{var i;return(i=t).path??(i.path=[]),t.path.unshift(n),t})}function kA(n){return typeof n=="string"?n:n?.message}function Ui(n,e,t){const i=n.message?n.message:kA(n.inst?._zod.def?.error?.(n))??kA(e?.error?.(n))??kA(t.customError?.(n))??kA(t.localeError?.(n))??"Invalid input",{inst:o,continue:r,input:A,...I}=n;return I.path??(I.path=[]),I.message=i,e?.reportInput&&(I.input=A),I}function Kl(n){return Array.isArray(n)?"array":typeof n=="string"?"string":"unknown"}function Dr(...n){const[e,t,i]=n;return typeof e=="string"?{message:e,code:"custom",input:t,inst:i}:{...e}}const _p=(n,e)=>{n.name="$ZodError",Object.defineProperty(n,"_zod",{value:n._zod,enumerable:!1}),Object.defineProperty(n,"issues",{value:e,enumerable:!1}),n.message=JSON.stringify(e,Ul,2),Object.defineProperty(n,"toString",{value:()=>n.message,enumerable:!1})},jp=X("$ZodError",_p),Zp=X("$ZodError",_p,{Parent:Error});function lN(n,e=t=>t.message){const t={},i=[];for(const o of n.issues)o.path.length>0?(t[o.path[0]]=t[o.path[0]]||[],t[o.path[0]].push(e(o))):i.push(e(o));return{formErrors:i,fieldErrors:t}}function cN(n,e=t=>t.message){const t={_errors:[]},i=(o,r=[])=>{for(const A of o.issues)if(A.code==="invalid_union"&&A.errors.length)A.errors.map(I=>i({issues:I},[...r,...A.path]));else if(A.code==="invalid_key")i({issues:A.issues},[...r,...A.path]);else if(A.code==="invalid_element")i({issues:A.issues},[...r,...A.path]);else{const I=[...r,...A.path];if(I.length===0)t._errors.push(e(A));else{let l=t,c=0;for(;c(e,t,i,o)=>{const r=i?{...i,async:!1}:{async:!1},A=e._zod.run({value:t,issues:[]},r);if(A instanceof Promise)throw new ns;if(A.issues.length){const I=new(o?.Err??n)(A.issues.map(l=>Ui(l,r,Vi())));throw kp(I,o?.callee),I}return A.value},Ql=n=>async(e,t,i,o)=>{const r=i?{...i,async:!0}:{async:!0};let A=e._zod.run({value:t,issues:[]},r);if(A instanceof Promise&&(A=await A),A.issues.length){const I=new(o?.Err??n)(A.issues.map(l=>Ui(l,r,Vi())));throw kp(I,o?.callee),I}return A.value},RA=n=>(e,t,i)=>{const o=i?{...i,async:!1}:{async:!1},r=e._zod.run({value:t,issues:[]},o);if(r instanceof Promise)throw new ns;return r.issues.length?{success:!1,error:new(n??jp)(r.issues.map(A=>Ui(A,o,Vi())))}:{success:!0,data:r.value}},dN=RA(Zp),_A=n=>async(e,t,i)=>{const o=i?{...i,async:!0}:{async:!0};let r=e._zod.run({value:t,issues:[]},o);return r instanceof Promise&&(r=await r),r.issues.length?{success:!1,error:new n(r.issues.map(A=>Ui(A,o,Vi())))}:{success:!0,data:r.value}},uN=_A(Zp),hN=n=>(e,t,i)=>{const o=i?{...i,direction:"backward"}:{direction:"backward"};return Wl(n)(e,t,o)},fN=n=>(e,t,i)=>Wl(n)(e,t,i),pN=n=>async(e,t,i)=>{const o=i?{...i,direction:"backward"}:{direction:"backward"};return Ql(n)(e,t,o)},mN=n=>async(e,t,i)=>Ql(n)(e,t,i),vN=n=>(e,t,i)=>{const o=i?{...i,direction:"backward"}:{direction:"backward"};return RA(n)(e,t,o)},yN=n=>(e,t,i)=>RA(n)(e,t,i),bN=n=>async(e,t,i)=>{const o=i?{...i,direction:"backward"}:{direction:"backward"};return _A(n)(e,t,o)},wN=n=>async(e,t,i)=>_A(n)(e,t,i),xN=/^[cC][0-9a-z]{6,}$/,EN=/^[0-9a-z]+$/,SN=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,TN=/^[0-9a-vA-V]{20}$/,ON=/^[A-Za-z0-9]{27}$/,NN=/^[a-zA-Z0-9_-]{21}$/,DN=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,MN=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Bp=n=>n?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${n}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,zN=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,kN="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function RN(){return new RegExp(kN,"u")}const _N=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,jN=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,ZN=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,BN=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,PN=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Pp=/^[A-Za-z0-9_-]*$/,LN=/^https?$/,GN=/^\+[1-9]\d{6,14}$/,Lp="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",FN=new RegExp(`^${Lp}$`);function Gp(n){const e="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof n.precision=="number"?n.precision===-1?`${e}`:n.precision===0?`${e}:[0-5]\\d`:`${e}:[0-5]\\d\\.\\d{${n.precision}}`:`${e}(?::[0-5]\\d(?:\\.\\d+)?)?`}function VN(n){return new RegExp(`^${Gp(n)}$`)}function UN(n){const e=Gp({precision:n.precision}),t=["Z"];n.local&&t.push(""),n.offset&&t.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const i=`${e}(?:${t.join("|")})`;return new RegExp(`^${Lp}T(?:${i})$`)}const YN=n=>{const e=n?`[\\s\\S]{${n?.minimum??0},${n?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},HN=/^-?\d+$/,Fp=/^-?\d+(?:\.\d+)?$/,KN=/^(?:true|false)$/i,WN=/^[^A-Z]*$/,QN=/^[^a-z]*$/,Nn=X("$ZodCheck",(n,e)=>{var t;n._zod??(n._zod={}),n._zod.def=e,(t=n._zod).onattach??(t.onattach=[])}),Vp={number:"number",bigint:"bigint",object:"date"},Up=X("$ZodCheckLessThan",(n,e)=>{Nn.init(n,e);const t=Vp[typeof e.value];n._zod.onattach.push(i=>{const o=i._zod.bag,r=(e.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?i.value<=e.value:i.value{Nn.init(n,e);const t=Vp[typeof e.value];n._zod.onattach.push(i=>{const o=i._zod.bag,r=(e.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>r&&(e.inclusive?o.minimum=e.value:o.exclusiveMinimum=e.value)}),n._zod.check=i=>{(e.inclusive?i.value>=e.value:i.value>e.value)||i.issues.push({origin:t,code:"too_small",minimum:typeof e.value=="object"?e.value.getTime():e.value,input:i.value,inclusive:e.inclusive,inst:n,continue:!e.abort})}}),XN=X("$ZodCheckMultipleOf",(n,e)=>{Nn.init(n,e),n._zod.onattach.push(t=>{var i;(i=t._zod.bag).multipleOf??(i.multipleOf=e.value)}),n._zod.check=t=>{if(typeof t.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof t.value=="bigint"?t.value%e.value===BigInt(0):qO(t.value,e.value)===0)||t.issues.push({origin:typeof t.value,code:"not_multiple_of",divisor:e.value,input:t.value,inst:n,continue:!e.abort})}}),$N=X("$ZodCheckNumberFormat",(n,e)=>{Nn.init(n,e),e.format=e.format||"float64";const t=e.format?.includes("int"),i=t?"int":"number",[o,r]=iN[e.format];n._zod.onattach.push(A=>{const I=A._zod.bag;I.format=e.format,I.minimum=o,I.maximum=r,t&&(I.pattern=HN)}),n._zod.check=A=>{const I=A.value;if(t){if(!Number.isInteger(I)){A.issues.push({expected:i,format:e.format,code:"invalid_type",continue:!1,input:I,inst:n});return}if(!Number.isSafeInteger(I)){I>0?A.issues.push({input:I,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:n,origin:i,inclusive:!0,continue:!e.abort}):A.issues.push({input:I,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:n,origin:i,inclusive:!0,continue:!e.abort});return}}Ir&&A.issues.push({origin:"number",input:I,code:"too_big",maximum:r,inclusive:!0,inst:n,continue:!e.abort})}}),qN=X("$ZodCheckMaxLength",(n,e)=>{var t;Nn.init(n,e),(t=n._zod.def).when??(t.when=i=>{const o=i.value;return!Yl(o)&&o.length!==void 0}),n._zod.onattach.push(i=>{const o=i._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{const o=i.value;if(o.length<=e.maximum)return;const A=Kl(o);i.issues.push({origin:A,code:"too_big",maximum:e.maximum,inclusive:!0,input:o,inst:n,continue:!e.abort})}}),JN=X("$ZodCheckMinLength",(n,e)=>{var t;Nn.init(n,e),(t=n._zod.def).when??(t.when=i=>{const o=i.value;return!Yl(o)&&o.length!==void 0}),n._zod.onattach.push(i=>{const o=i._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>o&&(i._zod.bag.minimum=e.minimum)}),n._zod.check=i=>{const o=i.value;if(o.length>=e.minimum)return;const A=Kl(o);i.issues.push({origin:A,code:"too_small",minimum:e.minimum,inclusive:!0,input:o,inst:n,continue:!e.abort})}}),eD=X("$ZodCheckLengthEquals",(n,e)=>{var t;Nn.init(n,e),(t=n._zod.def).when??(t.when=i=>{const o=i.value;return!Yl(o)&&o.length!==void 0}),n._zod.onattach.push(i=>{const o=i._zod.bag;o.minimum=e.length,o.maximum=e.length,o.length=e.length}),n._zod.check=i=>{const o=i.value,r=o.length;if(r===e.length)return;const A=Kl(o),I=r>e.length;i.issues.push({origin:A,...I?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:i.value,inst:n,continue:!e.abort})}}),jA=X("$ZodCheckStringFormat",(n,e)=>{var t,i;Nn.init(n,e),n._zod.onattach.push(o=>{const r=o._zod.bag;r.format=e.format,e.pattern&&(r.patterns??(r.patterns=new Set),r.patterns.add(e.pattern))}),e.pattern?(t=n._zod).check??(t.check=o=>{e.pattern.lastIndex=0,!e.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:e.format,input:o.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:n,continue:!e.abort})}):(i=n._zod).check??(i.check=()=>{})}),tD=X("$ZodCheckRegex",(n,e)=>{jA.init(n,e),n._zod.check=t=>{e.pattern.lastIndex=0,!e.pattern.test(t.value)&&t.issues.push({origin:"string",code:"invalid_format",format:"regex",input:t.value,pattern:e.pattern.toString(),inst:n,continue:!e.abort})}}),nD=X("$ZodCheckLowerCase",(n,e)=>{e.pattern??(e.pattern=WN),jA.init(n,e)}),iD=X("$ZodCheckUpperCase",(n,e)=>{e.pattern??(e.pattern=QN),jA.init(n,e)}),gD=X("$ZodCheckIncludes",(n,e)=>{Nn.init(n,e);const t=gs(e.includes),i=new RegExp(typeof e.position=="number"?`^.{${e.position}}${t}`:t);e.pattern=i,n._zod.onattach.push(o=>{const r=o._zod.bag;r.patterns??(r.patterns=new Set),r.patterns.add(i)}),n._zod.check=o=>{o.value.includes(e.includes,e.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:o.value,inst:n,continue:!e.abort})}}),oD=X("$ZodCheckStartsWith",(n,e)=>{Nn.init(n,e);const t=new RegExp(`^${gs(e.prefix)}.*`);e.pattern??(e.pattern=t),n._zod.onattach.push(i=>{const o=i._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(t)}),n._zod.check=i=>{i.value.startsWith(e.prefix)||i.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:i.value,inst:n,continue:!e.abort})}}),sD=X("$ZodCheckEndsWith",(n,e)=>{Nn.init(n,e);const t=new RegExp(`.*${gs(e.suffix)}$`);e.pattern??(e.pattern=t),n._zod.onattach.push(i=>{const o=i._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(t)}),n._zod.check=i=>{i.value.endsWith(e.suffix)||i.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:i.value,inst:n,continue:!e.abort})}}),rD=X("$ZodCheckOverwrite",(n,e)=>{Nn.init(n,e),n._zod.check=t=>{t.value=e.tx(t.value)}});class aD{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}const i=e.split(` +`+C.stack}}var R=Object.prototype.hasOwnProperty,Ce=n.unstable_scheduleCallback,Qe=n.unstable_cancelCallback,xt=n.unstable_shouldYield,bt=n.unstable_requestPaint,Bt=n.unstable_now,pI=n.unstable_getCurrentPriorityLevel,V2=n.unstable_ImmediatePriority,U2=n.unstable_UserBlockingPriority,mI=n.unstable_NormalPriority,lte=n.unstable_LowPriority,Y2=n.unstable_IdlePriority,cte=n.log,dte=n.unstable_setDisableYieldValue,La=null,Vn=null;function Fg(g){if(typeof cte=="function"&&dte(g),Vn&&typeof Vn.setStrictMode=="function")try{Vn.setStrictMode(La,g)}catch{}}var Un=Math.clz32?Math.clz32:fte,ute=Math.log,hte=Math.LN2;function fte(g){return g>>>=0,g===0?32:31-(ute(g)/hte|0)|0}var vI=256,yI=262144,bI=4194304;function Bo(g){var s=g&42;if(s!==0)return s;switch(g&-g){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return g&261888;case 262144:case 524288:case 1048576:case 2097152:return g&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return g&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return g}}function wI(g,s,a){var C=g.pendingLanes;if(C===0)return 0;var d=0,u=g.suspendedLanes,v=g.pingedLanes;g=g.warmLanes;var b=C&134217727;return b!==0?(C=b&~u,C!==0?d=Bo(C):(v&=b,v!==0?d=Bo(v):a||(a=b&~g,a!==0&&(d=Bo(a))))):(b=C&~u,b!==0?d=Bo(b):v!==0?d=Bo(v):a||(a=C&~g,a!==0&&(d=Bo(a)))),d===0?0:s!==0&&s!==d&&(s&u)===0&&(u=d&-d,a=s&-s,u>=a||u===32&&(a&4194048)!==0)?s:d}function Ga(g,s){return(g.pendingLanes&~(g.suspendedLanes&~g.pingedLanes)&s)===0}function pte(g,s){switch(g){case 1:case 2:case 4:case 8:case 64:return s+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return s+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function H2(){var g=bI;return bI<<=1,(bI&62914560)===0&&(bI=4194304),g}function oh(g){for(var s=[],a=0;31>a;a++)s.push(g);return s}function Fa(g,s){g.pendingLanes|=s,s!==268435456&&(g.suspendedLanes=0,g.pingedLanes=0,g.warmLanes=0)}function mte(g,s,a,C,d,u){var v=g.pendingLanes;g.pendingLanes=a,g.suspendedLanes=0,g.pingedLanes=0,g.warmLanes=0,g.expiredLanes&=a,g.entangledLanes&=a,g.errorRecoveryDisabledLanes&=a,g.shellSuspendCounter=0;var b=g.entanglements,N=g.expirationTimes,B=g.hiddenUpdates;for(a=v&~a;0"u")return null;try{return g.activeElement||g.body}catch{return g.body}}var Ste=/[\n"\\]/g;function si(g){return g.replace(Ste,function(s){return"\\"+s.charCodeAt(0).toString(16)+" "})}function Ih(g,s,a,C,d,u,v,b){g.name="",v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"?g.type=v:g.removeAttribute("type"),s!=null?v==="number"?(s===0&&g.value===""||g.value!=s)&&(g.value=""+oi(s)):g.value!==""+oi(s)&&(g.value=""+oi(s)):v!=="submit"&&v!=="reset"||g.removeAttribute("value"),s!=null?lh(g,v,oi(s)):a!=null?lh(g,v,oi(a)):C!=null&&g.removeAttribute("value"),d==null&&u!=null&&(g.defaultChecked=!!u),d!=null&&(g.checked=d&&typeof d!="function"&&typeof d!="symbol"),b!=null&&typeof b!="function"&&typeof b!="symbol"&&typeof b!="boolean"?g.name=""+oi(b):g.removeAttribute("name")}function oS(g,s,a,C,d,u,v,b){if(u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"&&(g.type=u),s!=null||a!=null){if(!(u!=="submit"&&u!=="reset"||s!=null)){Ch(g);return}a=a!=null?""+oi(a):"",s=s!=null?""+oi(s):a,b||s===g.value||(g.value=s),g.defaultValue=s}C=C??d,C=typeof C!="function"&&typeof C!="symbol"&&!!C,g.checked=b?g.checked:!!C,g.defaultChecked=!!C,v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"&&(g.name=v),Ch(g)}function lh(g,s,a){s==="number"&&EI(g.ownerDocument)===g||g.defaultValue===""+a||(g.defaultValue=""+a)}function Ws(g,s,a,C){if(g=g.options,s){s={};for(var d=0;d"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),fh=!1;if(gg)try{var Ha={};Object.defineProperty(Ha,"passive",{get:function(){fh=!0}}),window.addEventListener("test",Ha,Ha),window.removeEventListener("test",Ha,Ha)}catch{fh=!1}var Ug=null,ph=null,OI=null;function lS(){if(OI)return OI;var g,s=ph,a=s.length,C,d="value"in Ug?Ug.value:Ug.textContent,u=d.length;for(g=0;g=Qa),pS=" ",mS=!1;function vS(g,s){switch(g){case"keyup":return Jte.indexOf(s.keyCode)!==-1;case"keydown":return s.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function yS(g){return g=g.detail,typeof g=="object"&&"data"in g?g.data:null}var qs=!1;function tne(g,s){switch(g){case"compositionend":return yS(s);case"keypress":return s.which!==32?null:(mS=!0,pS);case"textInput":return g=s.data,g===pS&&mS?null:g;default:return null}}function nne(g,s){if(qs)return g==="compositionend"||!wh&&vS(g,s)?(g=lS(),OI=ph=Ug=null,qs=!1,g):null;switch(g){case"paste":return null;case"keypress":if(!(s.ctrlKey||s.altKey||s.metaKey)||s.ctrlKey&&s.altKey){if(s.char&&1=s)return{node:a,offset:s-g};g=C}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=NS(a)}}function MS(g,s){return g&&s?g===s?!0:g&&g.nodeType===3?!1:s&&s.nodeType===3?MS(g,s.parentNode):"contains"in g?g.contains(s):g.compareDocumentPosition?!!(g.compareDocumentPosition(s)&16):!1:!1}function zS(g){g=g!=null&&g.ownerDocument!=null&&g.ownerDocument.defaultView!=null?g.ownerDocument.defaultView:window;for(var s=EI(g.document);s instanceof g.HTMLIFrameElement;){try{var a=typeof s.contentWindow.location.href=="string"}catch{a=!1}if(a)g=s.contentWindow;else break;s=EI(g.document)}return s}function Eh(g){var s=g&&g.nodeName&&g.nodeName.toLowerCase();return s&&(s==="input"&&(g.type==="text"||g.type==="search"||g.type==="tel"||g.type==="url"||g.type==="password")||s==="textarea"||g.contentEditable==="true")}var Cne=gg&&"documentMode"in document&&11>=document.documentMode,Js=null,Th=null,Ja=null,Oh=!1;function kS(g,s,a){var C=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;Oh||Js==null||Js!==EI(C)||(C=Js,"selectionStart"in C&&Eh(C)?C={start:C.selectionStart,end:C.selectionEnd}:(C=(C.ownerDocument&&C.ownerDocument.defaultView||window).getSelection(),C={anchorNode:C.anchorNode,anchorOffset:C.anchorOffset,focusNode:C.focusNode,focusOffset:C.focusOffset}),Ja&&qa(Ja,C)||(Ja=C,C=yl(Th,"onSelect"),0>=v,d-=v,Pi=1<<32-Un(s)+d|a<Le?($e=be,be=null):$e=be.sibling;var nt=G(k,be,Z[Le],q);if(nt===null){be===null&&(be=$e);break}g&&be&&nt.alternate===null&&s(k,be),D=u(nt,D,Le),tt===null?Oe=nt:tt.sibling=nt,tt=nt,be=$e}if(Le===Z.length)return a(k,be),qe&&sg(k,Le),Oe;if(be===null){for(;LeLe?($e=be,be=null):$e=be.sibling;var lo=G(k,be,nt.value,q);if(lo===null){be===null&&(be=$e);break}g&&be&&lo.alternate===null&&s(k,be),D=u(lo,D,Le),tt===null?Oe=lo:tt.sibling=lo,tt=lo,be=$e}if(nt.done)return a(k,be),qe&&sg(k,Le),Oe;if(be===null){for(;!nt.done;Le++,nt=Z.next())nt=J(k,nt.value,q),nt!==null&&(D=u(nt,D,Le),tt===null?Oe=nt:tt.sibling=nt,tt=nt);return qe&&sg(k,Le),Oe}for(be=C(be);!nt.done;Le++,nt=Z.next())nt=Y(be,k,Le,nt.value,q),nt!==null&&(g&&nt.alternate!==null&&be.delete(nt.key===null?Le:nt.key),D=u(nt,D,Le),tt===null?Oe=nt:tt.sibling=nt,tt=nt);return g&&be.forEach(function(Die){return s(k,Die)}),qe&&sg(k,Le),Oe}function ht(k,D,Z,q){if(typeof Z=="object"&&Z!==null&&Z.type===S&&Z.key===null&&(Z=Z.props.children),typeof Z=="object"&&Z!==null){switch(Z.$$typeof){case y:e:{for(var Oe=Z.key;D!==null;){if(D.key===Oe){if(Oe=Z.type,Oe===S){if(D.tag===7){a(k,D.sibling),q=d(D,Z.props.children),q.return=k,k=q;break e}}else if(D.elementType===Oe||typeof Oe=="object"&&Oe!==null&&Oe.$$typeof===V&&Qo(Oe)===D.type){a(k,D.sibling),q=d(D,Z.props),oA(q,Z),q.return=k,k=q;break e}a(k,D);break}else s(k,D);D=D.sibling}Z.type===S?(q=Uo(Z.props.children,k.mode,q,Z.key),q.return=k,k=q):(q=BI(Z.type,Z.key,Z.props,null,k.mode,q),oA(q,Z),q.return=k,k=q)}return v(k);case w:e:{for(Oe=Z.key;D!==null;){if(D.key===Oe)if(D.tag===4&&D.stateNode.containerInfo===Z.containerInfo&&D.stateNode.implementation===Z.implementation){a(k,D.sibling),q=d(D,Z.children||[]),q.return=k,k=q;break e}else{a(k,D);break}else s(k,D);D=D.sibling}q=_h(Z,k.mode,q),q.return=k,k=q}return v(k);case V:return Z=Qo(Z),ht(k,D,Z,q)}if(Ae(Z))return fe(k,D,Z,q);if(Ee(Z)){if(Oe=Ee(Z),typeof Oe!="function")throw Error(i(150));return Z=Oe.call(Z),Me(k,D,Z,q)}if(typeof Z.then=="function")return ht(k,D,YI(Z),q);if(Z.$$typeof===_)return ht(k,D,GI(k,Z),q);HI(k,Z)}return typeof Z=="string"&&Z!==""||typeof Z=="number"||typeof Z=="bigint"?(Z=""+Z,D!==null&&D.tag===6?(a(k,D.sibling),q=d(D,Z),q.return=k,k=q):(a(k,D),q=Rh(Z,k.mode,q),q.return=k,k=q),v(k)):a(k,D)}return function(k,D,Z,q){try{gA=0;var Oe=ht(k,D,Z,q);return Cr=null,Oe}catch(be){if(be===Ar||be===VI)throw be;var tt=Hn(29,be,null,k.mode);return tt.lanes=q,tt.return=k,tt}}}var $o=nE(!0),iE=nE(!1),Qg=!1;function Kh(g){g.updateQueue={baseState:g.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Wh(g,s){g=g.updateQueue,s.updateQueue===g&&(s.updateQueue={baseState:g.baseState,firstBaseUpdate:g.firstBaseUpdate,lastBaseUpdate:g.lastBaseUpdate,shared:g.shared,callbacks:null})}function Xg(g){return{lane:g,tag:0,payload:null,callback:null,next:null}}function $g(g,s,a){var C=g.updateQueue;if(C===null)return null;if(C=C.shared,(ot&2)!==0){var d=C.pending;return d===null?s.next=s:(s.next=d.next,d.next=s),C.pending=s,s=ZI(g),LS(g,null,a),s}return jI(g,C,s,a),ZI(g)}function sA(g,s,a){if(s=s.updateQueue,s!==null&&(s=s.shared,(a&4194048)!==0)){var C=s.lanes;C&=g.pendingLanes,a|=C,s.lanes=a,W2(g,a)}}function Qh(g,s){var a=g.updateQueue,C=g.alternate;if(C!==null&&(C=C.updateQueue,a===C)){var d=null,u=null;if(a=a.firstBaseUpdate,a!==null){do{var v={lane:a.lane,tag:a.tag,payload:a.payload,callback:null,next:null};u===null?d=u=v:u=u.next=v,a=a.next}while(a!==null);u===null?d=u=s:u=u.next=s}else d=u=s;a={baseState:C.baseState,firstBaseUpdate:d,lastBaseUpdate:u,shared:C.shared,callbacks:C.callbacks},g.updateQueue=a;return}g=a.lastBaseUpdate,g===null?a.firstBaseUpdate=s:g.next=s,a.lastBaseUpdate=s}var Xh=!1;function rA(){if(Xh){var g=ar;if(g!==null)throw g}}function aA(g,s,a,C){Xh=!1;var d=g.updateQueue;Qg=!1;var u=d.firstBaseUpdate,v=d.lastBaseUpdate,b=d.shared.pending;if(b!==null){d.shared.pending=null;var N=b,B=N.next;N.next=null,v===null?u=B:v.next=B,v=N;var X=g.alternate;X!==null&&(X=X.updateQueue,b=X.lastBaseUpdate,b!==v&&(b===null?X.firstBaseUpdate=B:b.next=B,X.lastBaseUpdate=N))}if(u!==null){var J=d.baseState;v=0,X=B=N=null,b=u;do{var G=b.lane&-536870913,Y=G!==b.lane;if(Y?(Xe&G)===G:(C&G)===G){G!==0&&G===rr&&(Xh=!0),X!==null&&(X=X.next={lane:0,tag:b.tag,payload:b.payload,callback:null,next:null});e:{var fe=g,Me=b;G=s;var ht=a;switch(Me.tag){case 1:if(fe=Me.payload,typeof fe=="function"){J=fe.call(ht,J,G);break e}J=fe;break e;case 3:fe.flags=fe.flags&-65537|128;case 0:if(fe=Me.payload,G=typeof fe=="function"?fe.call(ht,J,G):fe,G==null)break e;J=p({},J,G);break e;case 2:Qg=!0}}G=b.callback,G!==null&&(g.flags|=64,Y&&(g.flags|=8192),Y=d.callbacks,Y===null?d.callbacks=[G]:Y.push(G))}else Y={lane:G,tag:b.tag,payload:b.payload,callback:b.callback,next:null},X===null?(B=X=Y,N=J):X=X.next=Y,v|=G;if(b=b.next,b===null){if(b=d.shared.pending,b===null)break;Y=b,b=Y.next,Y.next=null,d.lastBaseUpdate=Y,d.shared.pending=null}}while(!0);X===null&&(N=J),d.baseState=N,d.firstBaseUpdate=B,d.lastBaseUpdate=X,u===null&&(d.shared.lanes=0),no|=v,g.lanes=v,g.memoizedState=J}}function gE(g,s){if(typeof g!="function")throw Error(i(191,g));g.call(s)}function oE(g,s){var a=g.callbacks;if(a!==null)for(g.callbacks=null,g=0;gu?u:8;var v=M.T,b={};M.T=b,hf(g,!1,s,a);try{var N=d(),B=M.S;if(B!==null&&B(b,N),N!==null&&typeof N=="object"&&typeof N.then=="function"){var X=mne(N,C);IA(g,s,X,$n(g))}else IA(g,s,C,$n(g))}catch(J){IA(g,s,{then:function(){},status:"rejected",reason:J},$n())}finally{U.p=u,v!==null&&b.types!==null&&(v.types=b.types),M.T=v}}function Sne(){}function df(g,s,a,C){if(g.tag!==5)throw Error(i(476));var d=ZE(g).queue;jE(g,d,s,K,a===null?Sne:function(){return BE(g),a(C)})}function ZE(g){var s=g.memoizedState;if(s!==null)return s;s={memoizedState:K,baseState:K,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Cg,lastRenderedState:K},next:null};var a={};return s.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Cg,lastRenderedState:a},next:null},g.memoizedState=s,g=g.alternate,g!==null&&(g.memoizedState=s),s}function BE(g){var s=ZE(g);s.next===null&&(s=g.alternate.memoizedState),IA(g,s.next.queue,{},$n())}function uf(){return fn(OA)}function PE(){return Ht().memoizedState}function LE(){return Ht().memoizedState}function Ene(g){for(var s=g.return;s!==null;){switch(s.tag){case 24:case 3:var a=$n();g=Xg(a);var C=$g(s,g,a);C!==null&&(Pn(C,s,a),sA(C,s,a)),s={cache:Vh()},g.payload=s;return}s=s.return}}function Tne(g,s,a){var C=$n();a={lane:C,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},nl(g)?FE(s,a):(a=zh(g,s,a,C),a!==null&&(Pn(a,g,C),VE(a,s,C)))}function GE(g,s,a){var C=$n();IA(g,s,a,C)}function IA(g,s,a,C){var d={lane:C,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null};if(nl(g))FE(s,d);else{var u=g.alternate;if(g.lanes===0&&(u===null||u.lanes===0)&&(u=s.lastRenderedReducer,u!==null))try{var v=s.lastRenderedState,b=u(v,a);if(d.hasEagerState=!0,d.eagerState=b,Yn(b,v))return jI(g,s,d,0),ft===null&&_I(),!1}catch{}if(a=zh(g,s,d,C),a!==null)return Pn(a,g,C),VE(a,s,C),!0}return!1}function hf(g,s,a,C){if(C={lane:2,revertLane:Wf(),gesture:null,action:C,hasEagerState:!1,eagerState:null,next:null},nl(g)){if(s)throw Error(i(479))}else s=zh(g,a,C,2),s!==null&&Pn(s,g,2)}function nl(g){var s=g.alternate;return g===Pe||s!==null&&s===Pe}function FE(g,s){lr=QI=!0;var a=g.pending;a===null?s.next=s:(s.next=a.next,a.next=s),g.pending=s}function VE(g,s,a){if((a&4194048)!==0){var C=s.lanes;C&=g.pendingLanes,a|=C,s.lanes=a,W2(g,a)}}var lA={readContext:fn,use:qI,useCallback:Pt,useContext:Pt,useEffect:Pt,useImperativeHandle:Pt,useLayoutEffect:Pt,useInsertionEffect:Pt,useMemo:Pt,useReducer:Pt,useRef:Pt,useState:Pt,useDebugValue:Pt,useDeferredValue:Pt,useTransition:Pt,useSyncExternalStore:Pt,useId:Pt,useHostTransitionStatus:Pt,useFormState:Pt,useActionState:Pt,useOptimistic:Pt,useMemoCache:Pt,useCacheRefresh:Pt};lA.useEffectEvent=Pt;var UE={readContext:fn,use:qI,useCallback:function(g,s){return On().memoizedState=[g,s===void 0?null:s],g},useContext:fn,useEffect:TE,useImperativeHandle:function(g,s,a){a=a!=null?a.concat([g]):null,el(4194308,4,ME.bind(null,s,g),a)},useLayoutEffect:function(g,s){return el(4194308,4,g,s)},useInsertionEffect:function(g,s){el(4,2,g,s)},useMemo:function(g,s){var a=On();s=s===void 0?null:s;var C=g();if(qo){Fg(!0);try{g()}finally{Fg(!1)}}return a.memoizedState=[C,s],C},useReducer:function(g,s,a){var C=On();if(a!==void 0){var d=a(s);if(qo){Fg(!0);try{a(s)}finally{Fg(!1)}}}else d=s;return C.memoizedState=C.baseState=d,g={pending:null,lanes:0,dispatch:null,lastRenderedReducer:g,lastRenderedState:d},C.queue=g,g=g.dispatch=Tne.bind(null,Pe,g),[C.memoizedState,g]},useRef:function(g){var s=On();return g={current:g},s.memoizedState=g},useState:function(g){g=Af(g);var s=g.queue,a=GE.bind(null,Pe,s);return s.dispatch=a,[g.memoizedState,a]},useDebugValue:lf,useDeferredValue:function(g,s){var a=On();return cf(a,g,s)},useTransition:function(){var g=Af(!1);return g=jE.bind(null,Pe,g.queue,!0,!1),On().memoizedState=g,[!1,g]},useSyncExternalStore:function(g,s,a){var C=Pe,d=On();if(qe){if(a===void 0)throw Error(i(407));a=a()}else{if(a=s(),ft===null)throw Error(i(349));(Xe&127)!==0||IE(C,s,a)}d.memoizedState=a;var u={value:a,getSnapshot:s};return d.queue=u,TE(cE.bind(null,C,u,g),[g]),C.flags|=2048,dr(9,{destroy:void 0},lE.bind(null,C,u,a,s),null),a},useId:function(){var g=On(),s=ft.identifierPrefix;if(qe){var a=Li,C=Pi;a=(C&~(1<<32-Un(C)-1)).toString(32)+a,s="_"+s+"R_"+a,a=XI++,0<\/script>",u=u.removeChild(u.firstChild);break;case"select":u=typeof C.is=="string"?v.createElement("select",{is:C.is}):v.createElement("select"),C.multiple?u.multiple=!0:C.size&&(u.size=C.size);break;default:u=typeof C.is=="string"?v.createElement(d,{is:C.is}):v.createElement(d)}}u[un]=s,u[kn]=C;e:for(v=s.child;v!==null;){if(v.tag===5||v.tag===6)u.appendChild(v.stateNode);else if(v.tag!==4&&v.tag!==27&&v.child!==null){v.child.return=v,v=v.child;continue}if(v===s)break e;for(;v.sibling===null;){if(v.return===null||v.return===s)break e;v=v.return}v.sibling.return=v.return,v=v.sibling}s.stateNode=u;e:switch(mn(u,d,C),d){case"button":case"input":case"select":case"textarea":C=!!C.autoFocus;break e;case"img":C=!0;break e;default:C=!1}C&&lg(s)}}return Et(s),Df(s,s.type,g===null?null:g.memoizedProps,s.pendingProps,a),null;case 6:if(g&&s.stateNode!=null)g.memoizedProps!==C&&lg(s);else{if(typeof C!="string"&&s.stateNode===null)throw Error(i(166));if(g=ye.current,or(s)){if(g=s.stateNode,a=s.memoizedProps,C=null,d=hn,d!==null)switch(d.tag){case 27:case 5:C=d.memoizedProps}g[un]=s,g=!!(g.nodeValue===a||C!==null&&C.suppressHydrationWarning===!0||AO(g.nodeValue,a)),g||Kg(s,!0)}else g=bl(g).createTextNode(C),g[un]=s,s.stateNode=g}return Et(s),null;case 31:if(a=s.memoizedState,g===null||g.memoizedState!==null){if(C=or(s),a!==null){if(g===null){if(!C)throw Error(i(318));if(g=s.memoizedState,g=g!==null?g.dehydrated:null,!g)throw Error(i(557));g[un]=s}else Yo(),(s.flags&128)===0&&(s.memoizedState=null),s.flags|=4;Et(s),g=!1}else a=Ph(),g!==null&&g.memoizedState!==null&&(g.memoizedState.hydrationErrors=a),g=!0;if(!g)return s.flags&256?(Wn(s),s):(Wn(s),null);if((s.flags&128)!==0)throw Error(i(558))}return Et(s),null;case 13:if(C=s.memoizedState,g===null||g.memoizedState!==null&&g.memoizedState.dehydrated!==null){if(d=or(s),C!==null&&C.dehydrated!==null){if(g===null){if(!d)throw Error(i(318));if(d=s.memoizedState,d=d!==null?d.dehydrated:null,!d)throw Error(i(317));d[un]=s}else Yo(),(s.flags&128)===0&&(s.memoizedState=null),s.flags|=4;Et(s),d=!1}else d=Ph(),g!==null&&g.memoizedState!==null&&(g.memoizedState.hydrationErrors=d),d=!0;if(!d)return s.flags&256?(Wn(s),s):(Wn(s),null)}return Wn(s),(s.flags&128)!==0?(s.lanes=a,s):(a=C!==null,g=g!==null&&g.memoizedState!==null,a&&(C=s.child,d=null,C.alternate!==null&&C.alternate.memoizedState!==null&&C.alternate.memoizedState.cachePool!==null&&(d=C.alternate.memoizedState.cachePool.pool),u=null,C.memoizedState!==null&&C.memoizedState.cachePool!==null&&(u=C.memoizedState.cachePool.pool),u!==d&&(C.flags|=2048)),a!==g&&a&&(s.child.flags|=8192),rl(s,s.updateQueue),Et(s),null);case 4:return he(),g===null&&qf(s.stateNode.containerInfo),Et(s),null;case 10:return ag(s.type),Et(s),null;case 19:if(L(Yt),C=s.memoizedState,C===null)return Et(s),null;if(d=(s.flags&128)!==0,u=C.rendering,u===null)if(d)dA(C,!1);else{if(Lt!==0||g!==null&&(g.flags&128)!==0)for(g=s.child;g!==null;){if(u=WI(g),u!==null){for(s.flags|=128,dA(C,!1),g=u.updateQueue,s.updateQueue=g,rl(s,g),s.subtreeFlags=0,g=a,a=s.child;a!==null;)GS(a,g),a=a.sibling;return te(Yt,Yt.current&1|2),qe&&sg(s,C.treeForkCount),s.child}g=g.sibling}C.tail!==null&&Bt()>ll&&(s.flags|=128,d=!0,dA(C,!1),s.lanes=4194304)}else{if(!d)if(g=WI(u),g!==null){if(s.flags|=128,d=!0,g=g.updateQueue,s.updateQueue=g,rl(s,g),dA(C,!0),C.tail===null&&C.tailMode==="hidden"&&!u.alternate&&!qe)return Et(s),null}else 2*Bt()-C.renderingStartTime>ll&&a!==536870912&&(s.flags|=128,d=!0,dA(C,!1),s.lanes=4194304);C.isBackwards?(u.sibling=s.child,s.child=u):(g=C.last,g!==null?g.sibling=u:s.child=u,C.last=u)}return C.tail!==null?(g=C.tail,C.rendering=g,C.tail=g.sibling,C.renderingStartTime=Bt(),g.sibling=null,a=Yt.current,te(Yt,d?a&1|2:a&1),qe&&sg(s,C.treeForkCount),g):(Et(s),null);case 22:case 23:return Wn(s),qh(),C=s.memoizedState!==null,g!==null?g.memoizedState!==null!==C&&(s.flags|=8192):C&&(s.flags|=8192),C?(a&536870912)!==0&&(s.flags&128)===0&&(Et(s),s.subtreeFlags&6&&(s.flags|=8192)):Et(s),a=s.updateQueue,a!==null&&rl(s,a.retryQueue),a=null,g!==null&&g.memoizedState!==null&&g.memoizedState.cachePool!==null&&(a=g.memoizedState.cachePool.pool),C=null,s.memoizedState!==null&&s.memoizedState.cachePool!==null&&(C=s.memoizedState.cachePool.pool),C!==a&&(s.flags|=2048),g!==null&&L(Wo),null;case 24:return a=null,g!==null&&(a=g.memoizedState.cache),s.memoizedState.cache!==a&&(s.flags|=2048),ag(qt),Et(s),null;case 25:return null;case 30:return null}throw Error(i(156,s.tag))}function zne(g,s){switch(Zh(s),s.tag){case 1:return g=s.flags,g&65536?(s.flags=g&-65537|128,s):null;case 3:return ag(qt),he(),g=s.flags,(g&65536)!==0&&(g&128)===0?(s.flags=g&-65537|128,s):null;case 26:case 27:case 5:return z(s),null;case 31:if(s.memoizedState!==null){if(Wn(s),s.alternate===null)throw Error(i(340));Yo()}return g=s.flags,g&65536?(s.flags=g&-65537|128,s):null;case 13:if(Wn(s),g=s.memoizedState,g!==null&&g.dehydrated!==null){if(s.alternate===null)throw Error(i(340));Yo()}return g=s.flags,g&65536?(s.flags=g&-65537|128,s):null;case 19:return L(Yt),null;case 4:return he(),null;case 10:return ag(s.type),null;case 22:case 23:return Wn(s),qh(),g!==null&&L(Wo),g=s.flags,g&65536?(s.flags=g&-65537|128,s):null;case 24:return ag(qt),null;case 25:return null;default:return null}}function dT(g,s){switch(Zh(s),s.tag){case 3:ag(qt),he();break;case 26:case 27:case 5:z(s);break;case 4:he();break;case 31:s.memoizedState!==null&&Wn(s);break;case 13:Wn(s);break;case 19:L(Yt);break;case 10:ag(s.type);break;case 22:case 23:Wn(s),qh(),g!==null&&L(Wo);break;case 24:ag(qt)}}function uA(g,s){try{var a=s.updateQueue,C=a!==null?a.lastEffect:null;if(C!==null){var d=C.next;a=d;do{if((a.tag&g)===g){C=void 0;var u=a.create,v=a.inst;C=u(),v.destroy=C}a=a.next}while(a!==d)}}catch(b){Ct(s,s.return,b)}}function eo(g,s,a){try{var C=s.updateQueue,d=C!==null?C.lastEffect:null;if(d!==null){var u=d.next;C=u;do{if((C.tag&g)===g){var v=C.inst,b=v.destroy;if(b!==void 0){v.destroy=void 0,d=s;var N=a,B=b;try{B()}catch(X){Ct(d,N,X)}}}C=C.next}while(C!==u)}}catch(X){Ct(s,s.return,X)}}function uT(g){var s=g.updateQueue;if(s!==null){var a=g.stateNode;try{oE(s,a)}catch(C){Ct(g,g.return,C)}}}function hT(g,s,a){a.props=Jo(g.type,g.memoizedProps),a.state=g.memoizedState;try{a.componentWillUnmount()}catch(C){Ct(g,s,C)}}function hA(g,s){try{var a=g.ref;if(a!==null){switch(g.tag){case 26:case 27:case 5:var C=g.stateNode;break;case 30:C=g.stateNode;break;default:C=g.stateNode}typeof a=="function"?g.refCleanup=a(C):a.current=C}}catch(d){Ct(g,s,d)}}function Gi(g,s){var a=g.ref,C=g.refCleanup;if(a!==null)if(typeof C=="function")try{C()}catch(d){Ct(g,s,d)}finally{g.refCleanup=null,g=g.alternate,g!=null&&(g.refCleanup=null)}else if(typeof a=="function")try{a(null)}catch(d){Ct(g,s,d)}else a.current=null}function fT(g){var s=g.type,a=g.memoizedProps,C=g.stateNode;try{e:switch(s){case"button":case"input":case"select":case"textarea":a.autoFocus&&C.focus();break e;case"img":a.src?C.src=a.src:a.srcSet&&(C.srcset=a.srcSet)}}catch(d){Ct(g,g.return,d)}}function Mf(g,s,a){try{var C=g.stateNode;eie(C,g.type,a,s),C[kn]=s}catch(d){Ct(g,g.return,d)}}function pT(g){return g.tag===5||g.tag===3||g.tag===26||g.tag===27&&ro(g.type)||g.tag===4}function zf(g){e:for(;;){for(;g.sibling===null;){if(g.return===null||pT(g.return))return null;g=g.return}for(g.sibling.return=g.return,g=g.sibling;g.tag!==5&&g.tag!==6&&g.tag!==18;){if(g.tag===27&&ro(g.type)||g.flags&2||g.child===null||g.tag===4)continue e;g.child.return=g,g=g.child}if(!(g.flags&2))return g.stateNode}}function kf(g,s,a){var C=g.tag;if(C===5||C===6)g=g.stateNode,s?(a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a).insertBefore(g,s):(s=a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a,s.appendChild(g),a=a._reactRootContainer,a!=null||s.onclick!==null||(s.onclick=ig));else if(C!==4&&(C===27&&ro(g.type)&&(a=g.stateNode,s=null),g=g.child,g!==null))for(kf(g,s,a),g=g.sibling;g!==null;)kf(g,s,a),g=g.sibling}function al(g,s,a){var C=g.tag;if(C===5||C===6)g=g.stateNode,s?a.insertBefore(g,s):a.appendChild(g);else if(C!==4&&(C===27&&ro(g.type)&&(a=g.stateNode),g=g.child,g!==null))for(al(g,s,a),g=g.sibling;g!==null;)al(g,s,a),g=g.sibling}function mT(g){var s=g.stateNode,a=g.memoizedProps;try{for(var C=g.type,d=s.attributes;d.length;)s.removeAttributeNode(d[0]);mn(s,C,a),s[un]=g,s[kn]=a}catch(u){Ct(g,g.return,u)}}var cg=!1,tn=!1,Rf=!1,vT=typeof WeakSet=="function"?WeakSet:Set,In=null;function kne(g,s){if(g=g.containerInfo,tp=Nl,g=zS(g),Eh(g)){if("selectionStart"in g)var a={start:g.selectionStart,end:g.selectionEnd};else e:{a=(a=g.ownerDocument)&&a.defaultView||window;var C=a.getSelection&&a.getSelection();if(C&&C.rangeCount!==0){a=C.anchorNode;var d=C.anchorOffset,u=C.focusNode;C=C.focusOffset;try{a.nodeType,u.nodeType}catch{a=null;break e}var v=0,b=-1,N=-1,B=0,X=0,J=g,G=null;t:for(;;){for(var Y;J!==a||d!==0&&J.nodeType!==3||(b=v+d),J!==u||C!==0&&J.nodeType!==3||(N=v+C),J.nodeType===3&&(v+=J.nodeValue.length),(Y=J.firstChild)!==null;)G=J,J=Y;for(;;){if(J===g)break t;if(G===a&&++B===d&&(b=v),G===u&&++X===C&&(N=v),(Y=J.nextSibling)!==null)break;J=G,G=J.parentNode}J=Y}a=b===-1||N===-1?null:{start:b,end:N}}else a=null}a=a||{start:0,end:0}}else a=null;for(np={focusedElem:g,selectionRange:a},Nl=!1,In=s;In!==null;)if(s=In,g=s.child,(s.subtreeFlags&1028)!==0&&g!==null)g.return=s,In=g;else for(;In!==null;){switch(s=In,u=s.alternate,g=s.flags,s.tag){case 0:if((g&4)!==0&&(g=s.updateQueue,g=g!==null?g.events:null,g!==null))for(a=0;a title"))),mn(u,C,a),u[un]=g,Cn(u),C=u;break e;case"link":var v=EO("link","href",d).get(C+(a.href||""));if(v){for(var b=0;bht&&(v=ht,ht=Me,Me=v);var k=DS(b,Me),D=DS(b,ht);if(k&&D&&(Y.rangeCount!==1||Y.anchorNode!==k.node||Y.anchorOffset!==k.offset||Y.focusNode!==D.node||Y.focusOffset!==D.offset)){var Z=J.createRange();Z.setStart(k.node,k.offset),Y.removeAllRanges(),Me>ht?(Y.addRange(Z),Y.extend(D.node,D.offset)):(Z.setEnd(D.node,D.offset),Y.addRange(Z))}}}}for(J=[],Y=b;Y=Y.parentNode;)Y.nodeType===1&&J.push({element:Y,left:Y.scrollLeft,top:Y.scrollTop});for(typeof b.focus=="function"&&b.focus(),b=0;ba?32:a,M.T=null,a=Gf,Gf=null;var u=go,v=pg;if(rn=0,mr=go=null,pg=0,(ot&6)!==0)throw Error(i(331));var b=ot;if(ot|=4,MT(u.current),OT(u,u.current,v,a),ot=b,bA(0,!1),Vn&&typeof Vn.onPostCommitFiberRoot=="function")try{Vn.onPostCommitFiberRoot(La,u)}catch{}return!0}finally{U.p=d,M.T=C,QT(g,s)}}function $T(g,s,a){s=ai(a,s),s=vf(g.stateNode,s,2),g=$g(g,s,2),g!==null&&(Fa(g,2),Fi(g))}function Ct(g,s,a){if(g.tag===3)$T(g,g,a);else for(;s!==null;){if(s.tag===3){$T(s,g,a);break}else if(s.tag===1){var C=s.stateNode;if(typeof s.type.getDerivedStateFromError=="function"||typeof C.componentDidCatch=="function"&&(io===null||!io.has(C))){g=ai(a,g),a=qE(2),C=$g(s,a,2),C!==null&&(JE(a,C,s,g),Fa(C,2),Fi(C));break}}s=s.return}}function Yf(g,s,a){var C=g.pingCache;if(C===null){C=g.pingCache=new jne;var d=new Set;C.set(s,d)}else d=C.get(s),d===void 0&&(d=new Set,C.set(s,d));d.has(a)||(Zf=!0,d.add(a),g=Gne.bind(null,g,s,a),s.then(g,g))}function Gne(g,s,a){var C=g.pingCache;C!==null&&C.delete(s),g.pingedLanes|=g.suspendedLanes&a,g.warmLanes&=~a,ft===g&&(Xe&a)===a&&(Lt===4||Lt===3&&(Xe&62914560)===Xe&&300>Bt()-Il?(ot&2)===0&&vr(g,0):Bf|=a,pr===Xe&&(pr=0)),Fi(g)}function qT(g,s){s===0&&(s=H2()),g=Vo(g,s),g!==null&&(Fa(g,s),Fi(g))}function Fne(g){var s=g.memoizedState,a=0;s!==null&&(a=s.retryLane),qT(g,a)}function Vne(g,s){var a=0;switch(g.tag){case 31:case 13:var C=g.stateNode,d=g.memoizedState;d!==null&&(a=d.retryLane);break;case 19:C=g.stateNode;break;case 22:C=g.stateNode._retryCache;break;default:throw Error(i(314))}C!==null&&C.delete(s),qT(g,a)}function Une(g,s){return Ce(g,s)}var pl=null,br=null,Hf=!1,ml=!1,Kf=!1,so=0;function Fi(g){g!==br&&g.next===null&&(br===null?pl=br=g:br=br.next=g),ml=!0,Hf||(Hf=!0,Hne())}function bA(g,s){if(!Kf&&ml){Kf=!0;do for(var a=!1,C=pl;C!==null;){if(g!==0){var d=C.pendingLanes;if(d===0)var u=0;else{var v=C.suspendedLanes,b=C.pingedLanes;u=(1<<31-Un(42|g)+1)-1,u&=d&~(v&~b),u=u&201326741?u&201326741|1:u?u|2:0}u!==0&&(a=!0,nO(C,u))}else u=Xe,u=wI(C,C===ft?u:0,C.cancelPendingCommit!==null||C.timeoutHandle!==-1),(u&3)===0||Ga(C,u)||(a=!0,nO(C,u));C=C.next}while(a);Kf=!1}}function Yne(){JT()}function JT(){ml=Hf=!1;var g=0;so!==0&&nie()&&(g=so);for(var s=Bt(),a=null,C=pl;C!==null;){var d=C.next,u=eO(C,s);u===0?(C.next=null,a===null?pl=d:a.next=d,d===null&&(br=a)):(a=C,(g!==0||(u&3)!==0)&&(ml=!0)),C=d}rn!==0&&rn!==5||bA(g),so!==0&&(so=0)}function eO(g,s){for(var a=g.suspendedLanes,C=g.pingedLanes,d=g.expirationTimes,u=g.pendingLanes&-62914561;0b)break;var X=N.transferSize,J=N.initiatorType;X&&CO(J)&&(N=N.responseEnd,v+=X*(N"u"?null:document;function bO(g,s,a){var C=wr;if(C&&typeof s=="string"&&s){var d=si(s);d='link[rel="'+g+'"][href="'+d+'"]',typeof a=="string"&&(d+='[crossorigin="'+a+'"]'),yO.has(d)||(yO.add(d),g={rel:g,crossOrigin:a,href:s},C.querySelector(d)===null&&(s=C.createElement("link"),mn(s,"link",g),Cn(s),C.head.appendChild(s)))}}function Iie(g){mg.D(g),bO("dns-prefetch",g,null)}function lie(g,s){mg.C(g,s),bO("preconnect",g,s)}function cie(g,s,a){mg.L(g,s,a);var C=wr;if(C&&g&&s){var d='link[rel="preload"][as="'+si(s)+'"]';s==="image"&&a&&a.imageSrcSet?(d+='[imagesrcset="'+si(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(d+='[imagesizes="'+si(a.imageSizes)+'"]')):d+='[href="'+si(g)+'"]';var u=d;switch(s){case"style":u=xr(g);break;case"script":u=Sr(g)}di.has(u)||(g=p({rel:"preload",href:s==="image"&&a&&a.imageSrcSet?void 0:g,as:s},a),di.set(u,g),C.querySelector(d)!==null||s==="style"&&C.querySelector(EA(u))||s==="script"&&C.querySelector(TA(u))||(s=C.createElement("link"),mn(s,"link",g),Cn(s),C.head.appendChild(s)))}}function die(g,s){mg.m(g,s);var a=wr;if(a&&g){var C=s&&typeof s.as=="string"?s.as:"script",d='link[rel="modulepreload"][as="'+si(C)+'"][href="'+si(g)+'"]',u=d;switch(C){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":u=Sr(g)}if(!di.has(u)&&(g=p({rel:"modulepreload",href:g},s),di.set(u,g),a.querySelector(d)===null)){switch(C){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(TA(u)))return}C=a.createElement("link"),mn(C,"link",g),Cn(C),a.head.appendChild(C)}}}function uie(g,s,a){mg.S(g,s,a);var C=wr;if(C&&g){var d=Hs(C).hoistableStyles,u=xr(g);s=s||"default";var v=d.get(u);if(!v){var b={loading:0,preload:null};if(v=C.querySelector(EA(u)))b.loading=5;else{g=p({rel:"stylesheet",href:g,"data-precedence":s},a),(a=di.get(u))&&Ap(g,a);var N=v=C.createElement("link");Cn(N),mn(N,"link",g),N._p=new Promise(function(B,X){N.onload=B,N.onerror=X}),N.addEventListener("load",function(){b.loading|=1}),N.addEventListener("error",function(){b.loading|=2}),b.loading|=4,xl(v,s,C)}v={type:"stylesheet",instance:v,count:1,state:b},d.set(u,v)}}}function hie(g,s){mg.X(g,s);var a=wr;if(a&&g){var C=Hs(a).hoistableScripts,d=Sr(g),u=C.get(d);u||(u=a.querySelector(TA(d)),u||(g=p({src:g,async:!0},s),(s=di.get(d))&&Cp(g,s),u=a.createElement("script"),Cn(u),mn(u,"link",g),a.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},C.set(d,u))}}function fie(g,s){mg.M(g,s);var a=wr;if(a&&g){var C=Hs(a).hoistableScripts,d=Sr(g),u=C.get(d);u||(u=a.querySelector(TA(d)),u||(g=p({src:g,async:!0,type:"module"},s),(s=di.get(d))&&Cp(g,s),u=a.createElement("script"),Cn(u),mn(u,"link",g),a.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},C.set(d,u))}}function wO(g,s,a,C){var d=(d=ye.current)?wl(d):null;if(!d)throw Error(i(446));switch(g){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(s=xr(a.href),a=Hs(d).hoistableStyles,C=a.get(s),C||(C={type:"style",instance:null,count:0,state:null},a.set(s,C)),C):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){g=xr(a.href);var u=Hs(d).hoistableStyles,v=u.get(g);if(v||(d=d.ownerDocument||d,v={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},u.set(g,v),(u=d.querySelector(EA(g)))&&!u._p&&(v.instance=u,v.state.loading=5),di.has(g)||(a={rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},di.set(g,a),u||pie(d,g,a,v.state))),s&&C===null)throw Error(i(528,""));return v}if(s&&C!==null)throw Error(i(529,""));return null;case"script":return s=a.async,a=a.src,typeof a=="string"&&s&&typeof s!="function"&&typeof s!="symbol"?(s=Sr(a),a=Hs(d).hoistableScripts,C=a.get(s),C||(C={type:"script",instance:null,count:0,state:null},a.set(s,C)),C):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,g))}}function xr(g){return'href="'+si(g)+'"'}function EA(g){return'link[rel="stylesheet"]['+g+"]"}function xO(g){return p({},g,{"data-precedence":g.precedence,precedence:null})}function pie(g,s,a,C){g.querySelector('link[rel="preload"][as="style"]['+s+"]")?C.loading=1:(s=g.createElement("link"),C.preload=s,s.addEventListener("load",function(){return C.loading|=1}),s.addEventListener("error",function(){return C.loading|=2}),mn(s,"link",a),Cn(s),g.head.appendChild(s))}function Sr(g){return'[src="'+si(g)+'"]'}function TA(g){return"script[async]"+g}function SO(g,s,a){if(s.count++,s.instance===null)switch(s.type){case"style":var C=g.querySelector('style[data-href~="'+si(a.href)+'"]');if(C)return s.instance=C,Cn(C),C;var d=p({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return C=(g.ownerDocument||g).createElement("style"),Cn(C),mn(C,"style",d),xl(C,a.precedence,g),s.instance=C;case"stylesheet":d=xr(a.href);var u=g.querySelector(EA(d));if(u)return s.state.loading|=4,s.instance=u,Cn(u),u;C=xO(a),(d=di.get(d))&&Ap(C,d),u=(g.ownerDocument||g).createElement("link"),Cn(u);var v=u;return v._p=new Promise(function(b,N){v.onload=b,v.onerror=N}),mn(u,"link",C),s.state.loading|=4,xl(u,a.precedence,g),s.instance=u;case"script":return u=Sr(a.src),(d=g.querySelector(TA(u)))?(s.instance=d,Cn(d),d):(C=a,(d=di.get(u))&&(C=p({},a),Cp(C,d)),g=g.ownerDocument||g,d=g.createElement("script"),Cn(d),mn(d,"link",C),g.head.appendChild(d),s.instance=d);case"void":return null;default:throw Error(i(443,s.type))}else s.type==="stylesheet"&&(s.state.loading&4)===0&&(C=s.instance,s.state.loading|=4,xl(C,a.precedence,g));return s.instance}function xl(g,s,a){for(var C=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),d=C.length?C[C.length-1]:null,u=d,v=0;v title"):null)}function mie(g,s,a){if(a===1||s.itemProp!=null)return!1;switch(g){case"meta":case"title":return!0;case"style":if(typeof s.precedence!="string"||typeof s.href!="string"||s.href==="")break;return!0;case"link":if(typeof s.rel!="string"||typeof s.href!="string"||s.href===""||s.onLoad||s.onError)break;return s.rel==="stylesheet"?(g=s.disabled,typeof s.precedence=="string"&&g==null):!0;case"script":if(s.async&&typeof s.async!="function"&&typeof s.async!="symbol"&&!s.onLoad&&!s.onError&&s.src&&typeof s.src=="string")return!0}return!1}function OO(g){return!(g.type==="stylesheet"&&(g.state.loading&3)===0)}function vie(g,s,a,C){if(a.type==="stylesheet"&&(typeof C.media!="string"||matchMedia(C.media).matches!==!1)&&(a.state.loading&4)===0){if(a.instance===null){var d=xr(C.href),u=s.querySelector(EA(d));if(u){s=u._p,s!==null&&typeof s=="object"&&typeof s.then=="function"&&(g.count++,g=El.bind(g),s.then(g,g)),a.state.loading|=4,a.instance=u,Cn(u);return}u=s.ownerDocument||s,C=xO(C),(d=di.get(d))&&Ap(C,d),u=u.createElement("link"),Cn(u);var v=u;v._p=new Promise(function(b,N){v.onload=b,v.onerror=N}),mn(u,"link",C),a.instance=u}g.stylesheets===null&&(g.stylesheets=new Map),g.stylesheets.set(a,s),(s=a.state.preload)&&(a.state.loading&3)===0&&(g.count++,a=El.bind(g),s.addEventListener("load",a),s.addEventListener("error",a))}}var Ip=0;function yie(g,s){return g.stylesheets&&g.count===0&&Ol(g,g.stylesheets),0Ip?50:800)+s);return g.unsuspend=a,function(){g.unsuspend=null,clearTimeout(C),clearTimeout(d)}}:null}function El(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Ol(this,this.stylesheets);else if(this.unsuspend){var g=this.unsuspend;this.unsuspend=null,g()}}}var Tl=null;function Ol(g,s){g.stylesheets=null,g.unsuspend!==null&&(g.count++,Tl=new Map,s.forEach(bie,g),Tl=null,El.call(g))}function bie(g,s){if(!(s.state.loading&4)){var a=Tl.get(g);if(a)var C=a.get(null);else{a=new Map,Tl.set(g,a);for(var d=g.querySelectorAll("link[data-precedence],style[data-precedence]"),u=0;u"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}return n(),Zl.exports=$O(),Zl.exports}var JO=qO(),Op;function $(n,e,t){function i(I,l){if(I._zod||Object.defineProperty(I,"_zod",{value:{def:l,constr:A,traits:new Set},enumerable:!1}),I._zod.traits.has(n))return;I._zod.traits.add(n),e(I,l);const c=A.prototype,h=Object.keys(c);for(let p=0;pt?.Parent&&I instanceof t.Parent?!0:I?._zod?.traits?.has(n)}),Object.defineProperty(A,"name",{value:n}),A}class ns extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class Np extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}}(Op=globalThis).__zod_globalConfig??(Op.__zod_globalConfig={});const Vl=globalThis.__zod_globalConfig;function Vi(n){return Vl}function Dp(n){const e=Object.values(n).filter(i=>typeof i=="number");return Object.entries(n).filter(([i,o])=>e.indexOf(+i)===-1).map(([i,o])=>o)}function Ul(n,e){return typeof e=="bigint"?e.toString():e}function zA(n){return{get value(){{const e=n();return Object.defineProperty(this,"value",{value:e}),e}}}}function Yl(n){return n==null}function Hl(n){const e=n.startsWith("^")?1:0,t=n.endsWith("$")?n.length-1:n.length;return n.slice(e,t)}function eN(n,e){const t=n/e,i=Math.round(t),o=Number.EPSILON*Math.max(Math.abs(t),1);return Math.abs(t-i){};function Nr(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}const nN=zA(()=>{if(Vl.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const n=Function;return new n(""),!0}catch{return!1}});function is(n){if(Nr(n)===!1)return!1;const e=n.constructor;if(e===void 0||typeof e!="function")return!0;const t=e.prototype;return!(Nr(t)===!1||Object.prototype.hasOwnProperty.call(t,"isPrototypeOf")===!1)}function Rp(n){return is(n)?{...n}:Array.isArray(n)?[...n]:n instanceof Map?new Map(n):n instanceof Set?new Set(n):n}const iN=new Set(["string","number","symbol"]);function gs(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function yg(n,e,t){const i=new n._zod.constr(e??n._zod.def);return(!e||t?.parent)&&(i._zod.parent=n),i}function we(n){const e=n;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function gN(n){return Object.keys(n).filter(e=>n[e]._zod.optin==="optional"&&n[e]._zod.optout==="optional")}const oN={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function sN(n,e){const t=n._zod.def,i=t.checks;if(i&&i.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const r=vg(n._zod.def,{get shape(){const A={};for(const I in e){if(!(I in t.shape))throw new Error(`Unrecognized key: "${I}"`);e[I]&&(A[I]=t.shape[I])}return co(this,"shape",A),A},checks:[]});return yg(n,r)}function rN(n,e){const t=n._zod.def,i=t.checks;if(i&&i.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const r=vg(n._zod.def,{get shape(){const A={...n._zod.def.shape};for(const I in e){if(!(I in t.shape))throw new Error(`Unrecognized key: "${I}"`);e[I]&&delete A[I]}return co(this,"shape",A),A},checks:[]});return yg(n,r)}function aN(n,e){if(!is(e))throw new Error("Invalid input to extend: expected a plain object");const t=n._zod.def.checks;if(t&&t.length>0){const r=n._zod.def.shape;for(const A in e)if(Object.getOwnPropertyDescriptor(r,A)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const o=vg(n._zod.def,{get shape(){const r={...n._zod.def.shape,...e};return co(this,"shape",r),r}});return yg(n,o)}function AN(n,e){if(!is(e))throw new Error("Invalid input to safeExtend: expected a plain object");const t=vg(n._zod.def,{get shape(){const i={...n._zod.def.shape,...e};return co(this,"shape",i),i}});return yg(n,t)}function CN(n,e){if(n._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");const t=vg(n._zod.def,{get shape(){const i={...n._zod.def.shape,...e._zod.def.shape};return co(this,"shape",i),i},get catchall(){return e._zod.def.catchall},checks:e._zod.def.checks??[]});return yg(n,t)}function IN(n,e,t){const o=e._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const A=vg(e._zod.def,{get shape(){const I=e._zod.def.shape,l={...I};if(t)for(const c in t){if(!(c in I))throw new Error(`Unrecognized key: "${c}"`);t[c]&&(l[c]=n?new n({type:"optional",innerType:I[c]}):I[c])}else for(const c in I)l[c]=n?new n({type:"optional",innerType:I[c]}):I[c];return co(this,"shape",l),l},checks:[]});return yg(e,A)}function lN(n,e,t){const i=vg(e._zod.def,{get shape(){const o=e._zod.def.shape,r={...o};if(t)for(const A in t){if(!(A in r))throw new Error(`Unrecognized key: "${A}"`);t[A]&&(r[A]=new n({type:"nonoptional",innerType:o[A]}))}else for(const A in o)r[A]=new n({type:"nonoptional",innerType:o[A]});return co(this,"shape",r),r}});return yg(e,i)}function os(n,e=0){if(n.aborted===!0)return!0;for(let t=e;t{var i;return(i=t).path??(i.path=[]),t.path.unshift(n),t})}function kA(n){return typeof n=="string"?n:n?.message}function Ui(n,e,t){const i=n.message?n.message:kA(n.inst?._zod.def?.error?.(n))??kA(e?.error?.(n))??kA(t.customError?.(n))??kA(t.localeError?.(n))??"Invalid input",{inst:o,continue:r,input:A,...I}=n;return I.path??(I.path=[]),I.message=i,e?.reportInput&&(I.input=A),I}function Kl(n){return Array.isArray(n)?"array":typeof n=="string"?"string":"unknown"}function Dr(...n){const[e,t,i]=n;return typeof e=="string"?{message:e,code:"custom",input:t,inst:i}:{...e}}const _p=(n,e)=>{n.name="$ZodError",Object.defineProperty(n,"_zod",{value:n._zod,enumerable:!1}),Object.defineProperty(n,"issues",{value:e,enumerable:!1}),n.message=JSON.stringify(e,Ul,2),Object.defineProperty(n,"toString",{value:()=>n.message,enumerable:!1})},jp=$("$ZodError",_p),Zp=$("$ZodError",_p,{Parent:Error});function dN(n,e=t=>t.message){const t={},i=[];for(const o of n.issues)o.path.length>0?(t[o.path[0]]=t[o.path[0]]||[],t[o.path[0]].push(e(o))):i.push(e(o));return{formErrors:i,fieldErrors:t}}function uN(n,e=t=>t.message){const t={_errors:[]},i=(o,r=[])=>{for(const A of o.issues)if(A.code==="invalid_union"&&A.errors.length)A.errors.map(I=>i({issues:I},[...r,...A.path]));else if(A.code==="invalid_key")i({issues:A.issues},[...r,...A.path]);else if(A.code==="invalid_element")i({issues:A.issues},[...r,...A.path]);else{const I=[...r,...A.path];if(I.length===0)t._errors.push(e(A));else{let l=t,c=0;for(;c(e,t,i,o)=>{const r=i?{...i,async:!1}:{async:!1},A=e._zod.run({value:t,issues:[]},r);if(A instanceof Promise)throw new ns;if(A.issues.length){const I=new(o?.Err??n)(A.issues.map(l=>Ui(l,r,Vi())));throw kp(I,o?.callee),I}return A.value},Ql=n=>async(e,t,i,o)=>{const r=i?{...i,async:!0}:{async:!0};let A=e._zod.run({value:t,issues:[]},r);if(A instanceof Promise&&(A=await A),A.issues.length){const I=new(o?.Err??n)(A.issues.map(l=>Ui(l,r,Vi())));throw kp(I,o?.callee),I}return A.value},RA=n=>(e,t,i)=>{const o=i?{...i,async:!1}:{async:!1},r=e._zod.run({value:t,issues:[]},o);if(r instanceof Promise)throw new ns;return r.issues.length?{success:!1,error:new(n??jp)(r.issues.map(A=>Ui(A,o,Vi())))}:{success:!0,data:r.value}},hN=RA(Zp),_A=n=>async(e,t,i)=>{const o=i?{...i,async:!0}:{async:!0};let r=e._zod.run({value:t,issues:[]},o);return r instanceof Promise&&(r=await r),r.issues.length?{success:!1,error:new n(r.issues.map(A=>Ui(A,o,Vi())))}:{success:!0,data:r.value}},fN=_A(Zp),pN=n=>(e,t,i)=>{const o=i?{...i,direction:"backward"}:{direction:"backward"};return Wl(n)(e,t,o)},mN=n=>(e,t,i)=>Wl(n)(e,t,i),vN=n=>async(e,t,i)=>{const o=i?{...i,direction:"backward"}:{direction:"backward"};return Ql(n)(e,t,o)},yN=n=>async(e,t,i)=>Ql(n)(e,t,i),bN=n=>(e,t,i)=>{const o=i?{...i,direction:"backward"}:{direction:"backward"};return RA(n)(e,t,o)},wN=n=>(e,t,i)=>RA(n)(e,t,i),xN=n=>async(e,t,i)=>{const o=i?{...i,direction:"backward"}:{direction:"backward"};return _A(n)(e,t,o)},SN=n=>async(e,t,i)=>_A(n)(e,t,i),EN=/^[cC][0-9a-z]{6,}$/,TN=/^[0-9a-z]+$/,ON=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,NN=/^[0-9a-vA-V]{20}$/,DN=/^[A-Za-z0-9]{27}$/,MN=/^[a-zA-Z0-9_-]{21}$/,zN=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,kN=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Bp=n=>n?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${n}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,RN=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,_N="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function jN(){return new RegExp(_N,"u")}const ZN=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,BN=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,PN=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,LN=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,GN=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Pp=/^[A-Za-z0-9_-]*$/,FN=/^https?$/,VN=/^\+[1-9]\d{6,14}$/,Lp="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",UN=new RegExp(`^${Lp}$`);function Gp(n){const e="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof n.precision=="number"?n.precision===-1?`${e}`:n.precision===0?`${e}:[0-5]\\d`:`${e}:[0-5]\\d\\.\\d{${n.precision}}`:`${e}(?::[0-5]\\d(?:\\.\\d+)?)?`}function YN(n){return new RegExp(`^${Gp(n)}$`)}function HN(n){const e=Gp({precision:n.precision}),t=["Z"];n.local&&t.push(""),n.offset&&t.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const i=`${e}(?:${t.join("|")})`;return new RegExp(`^${Lp}T(?:${i})$`)}const KN=n=>{const e=n?`[\\s\\S]{${n?.minimum??0},${n?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)},WN=/^-?\d+$/,Fp=/^-?\d+(?:\.\d+)?$/,QN=/^(?:true|false)$/i,XN=/^[^A-Z]*$/,$N=/^[^a-z]*$/,Nn=$("$ZodCheck",(n,e)=>{var t;n._zod??(n._zod={}),n._zod.def=e,(t=n._zod).onattach??(t.onattach=[])}),Vp={number:"number",bigint:"bigint",object:"date"},Up=$("$ZodCheckLessThan",(n,e)=>{Nn.init(n,e);const t=Vp[typeof e.value];n._zod.onattach.push(i=>{const o=i._zod.bag,r=(e.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;e.value{(e.inclusive?i.value<=e.value:i.value{Nn.init(n,e);const t=Vp[typeof e.value];n._zod.onattach.push(i=>{const o=i._zod.bag,r=(e.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>r&&(e.inclusive?o.minimum=e.value:o.exclusiveMinimum=e.value)}),n._zod.check=i=>{(e.inclusive?i.value>=e.value:i.value>e.value)||i.issues.push({origin:t,code:"too_small",minimum:typeof e.value=="object"?e.value.getTime():e.value,input:i.value,inclusive:e.inclusive,inst:n,continue:!e.abort})}}),qN=$("$ZodCheckMultipleOf",(n,e)=>{Nn.init(n,e),n._zod.onattach.push(t=>{var i;(i=t._zod.bag).multipleOf??(i.multipleOf=e.value)}),n._zod.check=t=>{if(typeof t.value!=typeof e.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof t.value=="bigint"?t.value%e.value===BigInt(0):eN(t.value,e.value)===0)||t.issues.push({origin:typeof t.value,code:"not_multiple_of",divisor:e.value,input:t.value,inst:n,continue:!e.abort})}}),JN=$("$ZodCheckNumberFormat",(n,e)=>{Nn.init(n,e),e.format=e.format||"float64";const t=e.format?.includes("int"),i=t?"int":"number",[o,r]=oN[e.format];n._zod.onattach.push(A=>{const I=A._zod.bag;I.format=e.format,I.minimum=o,I.maximum=r,t&&(I.pattern=WN)}),n._zod.check=A=>{const I=A.value;if(t){if(!Number.isInteger(I)){A.issues.push({expected:i,format:e.format,code:"invalid_type",continue:!1,input:I,inst:n});return}if(!Number.isSafeInteger(I)){I>0?A.issues.push({input:I,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:n,origin:i,inclusive:!0,continue:!e.abort}):A.issues.push({input:I,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:n,origin:i,inclusive:!0,continue:!e.abort});return}}Ir&&A.issues.push({origin:"number",input:I,code:"too_big",maximum:r,inclusive:!0,inst:n,continue:!e.abort})}}),eD=$("$ZodCheckMaxLength",(n,e)=>{var t;Nn.init(n,e),(t=n._zod.def).when??(t.when=i=>{const o=i.value;return!Yl(o)&&o.length!==void 0}),n._zod.onattach.push(i=>{const o=i._zod.bag.maximum??Number.POSITIVE_INFINITY;e.maximum{const o=i.value;if(o.length<=e.maximum)return;const A=Kl(o);i.issues.push({origin:A,code:"too_big",maximum:e.maximum,inclusive:!0,input:o,inst:n,continue:!e.abort})}}),tD=$("$ZodCheckMinLength",(n,e)=>{var t;Nn.init(n,e),(t=n._zod.def).when??(t.when=i=>{const o=i.value;return!Yl(o)&&o.length!==void 0}),n._zod.onattach.push(i=>{const o=i._zod.bag.minimum??Number.NEGATIVE_INFINITY;e.minimum>o&&(i._zod.bag.minimum=e.minimum)}),n._zod.check=i=>{const o=i.value;if(o.length>=e.minimum)return;const A=Kl(o);i.issues.push({origin:A,code:"too_small",minimum:e.minimum,inclusive:!0,input:o,inst:n,continue:!e.abort})}}),nD=$("$ZodCheckLengthEquals",(n,e)=>{var t;Nn.init(n,e),(t=n._zod.def).when??(t.when=i=>{const o=i.value;return!Yl(o)&&o.length!==void 0}),n._zod.onattach.push(i=>{const o=i._zod.bag;o.minimum=e.length,o.maximum=e.length,o.length=e.length}),n._zod.check=i=>{const o=i.value,r=o.length;if(r===e.length)return;const A=Kl(o),I=r>e.length;i.issues.push({origin:A,...I?{code:"too_big",maximum:e.length}:{code:"too_small",minimum:e.length},inclusive:!0,exact:!0,input:i.value,inst:n,continue:!e.abort})}}),jA=$("$ZodCheckStringFormat",(n,e)=>{var t,i;Nn.init(n,e),n._zod.onattach.push(o=>{const r=o._zod.bag;r.format=e.format,e.pattern&&(r.patterns??(r.patterns=new Set),r.patterns.add(e.pattern))}),e.pattern?(t=n._zod).check??(t.check=o=>{e.pattern.lastIndex=0,!e.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:e.format,input:o.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:n,continue:!e.abort})}):(i=n._zod).check??(i.check=()=>{})}),iD=$("$ZodCheckRegex",(n,e)=>{jA.init(n,e),n._zod.check=t=>{e.pattern.lastIndex=0,!e.pattern.test(t.value)&&t.issues.push({origin:"string",code:"invalid_format",format:"regex",input:t.value,pattern:e.pattern.toString(),inst:n,continue:!e.abort})}}),gD=$("$ZodCheckLowerCase",(n,e)=>{e.pattern??(e.pattern=XN),jA.init(n,e)}),oD=$("$ZodCheckUpperCase",(n,e)=>{e.pattern??(e.pattern=$N),jA.init(n,e)}),sD=$("$ZodCheckIncludes",(n,e)=>{Nn.init(n,e);const t=gs(e.includes),i=new RegExp(typeof e.position=="number"?`^.{${e.position}}${t}`:t);e.pattern=i,n._zod.onattach.push(o=>{const r=o._zod.bag;r.patterns??(r.patterns=new Set),r.patterns.add(i)}),n._zod.check=o=>{o.value.includes(e.includes,e.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:e.includes,input:o.value,inst:n,continue:!e.abort})}}),rD=$("$ZodCheckStartsWith",(n,e)=>{Nn.init(n,e);const t=new RegExp(`^${gs(e.prefix)}.*`);e.pattern??(e.pattern=t),n._zod.onattach.push(i=>{const o=i._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(t)}),n._zod.check=i=>{i.value.startsWith(e.prefix)||i.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:e.prefix,input:i.value,inst:n,continue:!e.abort})}}),aD=$("$ZodCheckEndsWith",(n,e)=>{Nn.init(n,e);const t=new RegExp(`.*${gs(e.suffix)}$`);e.pattern??(e.pattern=t),n._zod.onattach.push(i=>{const o=i._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(t)}),n._zod.check=i=>{i.value.endsWith(e.suffix)||i.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:e.suffix,input:i.value,inst:n,continue:!e.abort})}}),AD=$("$ZodCheckOverwrite",(n,e)=>{Nn.init(n,e),n._zod.check=t=>{t.value=e.tx(t.value)}});class CD{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}const i=e.split(` `).filter(A=>A),o=Math.min(...i.map(A=>A.length-A.trimStart().length)),r=i.map(A=>A.slice(o)).map(A=>" ".repeat(this.indent*2)+A);for(const A of r)this.content.push(A)}compile(){const e=Function,t=this?.args,o=[...(this?.content??[""]).map(r=>` ${r}`)];return new e(...t,o.join(` -`))}}const AD={major:4,minor:4,patch:3},Mt=X("$ZodType",(n,e)=>{var t;n??(n={}),n._zod.def=e,n._zod.bag=n._zod.bag||{},n._zod.version=AD;const i=[...n._zod.def.checks??[]];n._zod.traits.has("$ZodCheck")&&i.unshift(n);for(const o of i)for(const r of o._zod.onattach)r(n);if(i.length===0)(t=n._zod).deferred??(t.deferred=[]),n._zod.deferred?.push(()=>{n._zod.run=n._zod.parse});else{const o=(A,I,l)=>{let c=os(A),h;for(const p of I){if(p._zod.def.when){if(IN(A)||!p._zod.def.when(A))continue}else if(c)continue;const m=A.issues.length,y=p._zod.check(A);if(y instanceof Promise&&l?.async===!1)throw new ns;if(h||y instanceof Promise)h=(h??Promise.resolve()).then(async()=>{await y,A.issues.length!==m&&(c||(c=os(A,m)))});else{if(A.issues.length===m)continue;c||(c=os(A,m))}}return h?h.then(()=>A):A},r=(A,I,l)=>{if(os(A))return A.aborted=!0,A;const c=o(I,i,l);if(c instanceof Promise){if(l.async===!1)throw new ns;return c.then(h=>n._zod.parse(h,l))}return n._zod.parse(c,l)};n._zod.run=(A,I)=>{if(I.skipChecks)return n._zod.parse(A,I);if(I.direction==="backward"){const c=n._zod.parse({value:A.value,issues:[]},{...I,skipChecks:!0});return c instanceof Promise?c.then(h=>r(h,A,I)):r(c,A,I)}const l=n._zod.parse(A,I);if(l instanceof Promise){if(I.async===!1)throw new ns;return l.then(c=>o(c,i,I))}return o(l,i,I)}}At(n,"~standard",()=>({validate:o=>{try{const r=dN(n,o);return r.success?{value:r.data}:{issues:r.error?.issues}}catch{return uN(n,o).then(A=>A.success?{value:A.data}:{issues:A.error?.issues})}},vendor:"zod",version:1}))}),Xl=X("$ZodString",(n,e)=>{Mt.init(n,e),n._zod.pattern=[...n?._zod.bag?.patterns??[]].pop()??YN(n._zod.bag),n._zod.parse=(t,i)=>{if(e.coerce)try{t.value=String(t.value)}catch{}return typeof t.value=="string"||t.issues.push({expected:"string",code:"invalid_type",input:t.value,inst:n}),t}}),Ot=X("$ZodStringFormat",(n,e)=>{jA.init(n,e),Xl.init(n,e)}),CD=X("$ZodGUID",(n,e)=>{e.pattern??(e.pattern=MN),Ot.init(n,e)}),ID=X("$ZodUUID",(n,e)=>{if(e.version){const i={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(i===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=Bp(i))}else e.pattern??(e.pattern=Bp());Ot.init(n,e)}),lD=X("$ZodEmail",(n,e)=>{e.pattern??(e.pattern=zN),Ot.init(n,e)}),cD=X("$ZodURL",(n,e)=>{Ot.init(n,e),n._zod.check=t=>{try{const i=t.value.trim();if(!e.normalize&&e.protocol?.source===LN.source&&!/^https?:\/\//i.test(i)){t.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:t.value,inst:n,continue:!e.abort});return}const o=new URL(i);e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(o.hostname)||t.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:e.hostname.source,input:t.value,inst:n,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||t.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:t.value,inst:n,continue:!e.abort})),e.normalize?t.value=o.href:t.value=i;return}catch{t.issues.push({code:"invalid_format",format:"url",input:t.value,inst:n,continue:!e.abort})}}}),dD=X("$ZodEmoji",(n,e)=>{e.pattern??(e.pattern=RN()),Ot.init(n,e)}),uD=X("$ZodNanoID",(n,e)=>{e.pattern??(e.pattern=NN),Ot.init(n,e)}),hD=X("$ZodCUID",(n,e)=>{e.pattern??(e.pattern=xN),Ot.init(n,e)}),fD=X("$ZodCUID2",(n,e)=>{e.pattern??(e.pattern=EN),Ot.init(n,e)}),pD=X("$ZodULID",(n,e)=>{e.pattern??(e.pattern=SN),Ot.init(n,e)}),mD=X("$ZodXID",(n,e)=>{e.pattern??(e.pattern=TN),Ot.init(n,e)}),vD=X("$ZodKSUID",(n,e)=>{e.pattern??(e.pattern=ON),Ot.init(n,e)}),yD=X("$ZodISODateTime",(n,e)=>{e.pattern??(e.pattern=UN(e)),Ot.init(n,e)}),bD=X("$ZodISODate",(n,e)=>{e.pattern??(e.pattern=FN),Ot.init(n,e)}),wD=X("$ZodISOTime",(n,e)=>{e.pattern??(e.pattern=VN(e)),Ot.init(n,e)}),xD=X("$ZodISODuration",(n,e)=>{e.pattern??(e.pattern=DN),Ot.init(n,e)}),ED=X("$ZodIPv4",(n,e)=>{e.pattern??(e.pattern=_N),Ot.init(n,e),n._zod.bag.format="ipv4"}),SD=X("$ZodIPv6",(n,e)=>{e.pattern??(e.pattern=jN),Ot.init(n,e),n._zod.bag.format="ipv6",n._zod.check=t=>{try{new URL(`http://[${t.value}]`)}catch{t.issues.push({code:"invalid_format",format:"ipv6",input:t.value,inst:n,continue:!e.abort})}}}),TD=X("$ZodCIDRv4",(n,e)=>{e.pattern??(e.pattern=ZN),Ot.init(n,e)}),OD=X("$ZodCIDRv6",(n,e)=>{e.pattern??(e.pattern=BN),Ot.init(n,e),n._zod.check=t=>{const i=t.value.split("/");try{if(i.length!==2)throw new Error;const[o,r]=i;if(!r)throw new Error;const A=Number(r);if(`${A}`!==r)throw new Error;if(A<0||A>128)throw new Error;new URL(`http://[${o}]`)}catch{t.issues.push({code:"invalid_format",format:"cidrv6",input:t.value,inst:n,continue:!e.abort})}}});function Hp(n){if(n==="")return!0;if(/\s/.test(n)||n.length%4!==0)return!1;try{return atob(n),!0}catch{return!1}}const ND=X("$ZodBase64",(n,e)=>{e.pattern??(e.pattern=PN),Ot.init(n,e),n._zod.bag.contentEncoding="base64",n._zod.check=t=>{Hp(t.value)||t.issues.push({code:"invalid_format",format:"base64",input:t.value,inst:n,continue:!e.abort})}});function DD(n){if(!Pp.test(n))return!1;const e=n.replace(/[-_]/g,i=>i==="-"?"+":"/"),t=e.padEnd(Math.ceil(e.length/4)*4,"=");return Hp(t)}const MD=X("$ZodBase64URL",(n,e)=>{e.pattern??(e.pattern=Pp),Ot.init(n,e),n._zod.bag.contentEncoding="base64url",n._zod.check=t=>{DD(t.value)||t.issues.push({code:"invalid_format",format:"base64url",input:t.value,inst:n,continue:!e.abort})}}),zD=X("$ZodE164",(n,e)=>{e.pattern??(e.pattern=GN),Ot.init(n,e)});function kD(n,e=null){try{const t=n.split(".");if(t.length!==3)return!1;const[i]=t;if(!i)return!1;const o=JSON.parse(atob(i));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||e&&(!("alg"in o)||o.alg!==e))}catch{return!1}}const RD=X("$ZodJWT",(n,e)=>{Ot.init(n,e),n._zod.check=t=>{kD(t.value,e.alg)||t.issues.push({code:"invalid_format",format:"jwt",input:t.value,inst:n,continue:!e.abort})}}),Kp=X("$ZodNumber",(n,e)=>{Mt.init(n,e),n._zod.pattern=n._zod.bag.pattern??Fp,n._zod.parse=(t,i)=>{if(e.coerce)try{t.value=Number(t.value)}catch{}const o=t.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return t;const r=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return t.issues.push({expected:"number",code:"invalid_type",input:o,inst:n,...r?{received:r}:{}}),t}}),_D=X("$ZodNumberFormat",(n,e)=>{$N.init(n,e),Kp.init(n,e)}),jD=X("$ZodBoolean",(n,e)=>{Mt.init(n,e),n._zod.pattern=KN,n._zod.parse=(t,i)=>{if(e.coerce)try{t.value=!!t.value}catch{}const o=t.value;return typeof o=="boolean"||t.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:n}),t}}),ZD=X("$ZodUnknown",(n,e)=>{Mt.init(n,e),n._zod.parse=t=>t}),BD=X("$ZodNever",(n,e)=>{Mt.init(n,e),n._zod.parse=(t,i)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:n}),t)});function Wp(n,e,t){n.issues.length&&e.issues.push(...ss(t,n.issues)),e.value[t]=n.value}const PD=X("$ZodArray",(n,e)=>{Mt.init(n,e),n._zod.parse=(t,i)=>{const o=t.value;if(!Array.isArray(o))return t.issues.push({expected:"array",code:"invalid_type",input:o,inst:n}),t;t.value=Array(o.length);const r=[];for(let A=0;AWp(c,t,A))):Wp(l,t,A)}return r.length?Promise.all(r).then(()=>t):t}});function ZA(n,e,t,i,o,r){const A=t in i;if(n.issues.length){if(o&&r&&!A)return;e.issues.push(...ss(t,n.issues))}if(!A&&!o){n.issues.length||e.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[t]});return}n.value===void 0?A&&(e.value[t]=void 0):e.value[t]=n.value}function Qp(n){const e=Object.keys(n.shape);for(const i of e)if(!n.shape?.[i]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${i}": expected a Zod schema`);const t=nN(n.shape);return{...n,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(t)}}function Xp(n,e,t,i,o,r){const A=[],I=o.keySet,l=o.catchall._zod,c=l.def.type,h=l.optin==="optional",p=l.optout==="optional";for(const m in e){if(m==="__proto__"||I.has(m))continue;if(c==="never"){A.push(m);continue}const y=l.run({value:e[m],issues:[]},i);y instanceof Promise?n.push(y.then(w=>ZA(w,t,m,e,h,p))):ZA(y,t,m,e,h,p)}return A.length&&t.issues.push({code:"unrecognized_keys",keys:A,input:e,inst:r}),n.length?Promise.all(n).then(()=>t):t}const LD=X("$ZodObject",(n,e)=>{if(Mt.init(n,e),!Object.getOwnPropertyDescriptor(e,"shape")?.get){const I=e.shape;Object.defineProperty(e,"shape",{get:()=>{const l={...I};return Object.defineProperty(e,"shape",{value:l}),l}})}const i=zA(()=>Qp(e));At(n._zod,"propValues",()=>{const I=e.shape,l={};for(const c in I){const h=I[c]._zod;if(h.values){l[c]??(l[c]=new Set);for(const p of h.values)l[c].add(p)}}return l});const o=Nr,r=e.catchall;let A;n._zod.parse=(I,l)=>{A??(A=i.value);const c=I.value;if(!o(c))return I.issues.push({expected:"object",code:"invalid_type",input:c,inst:n}),I;I.value={};const h=[],p=A.shape;for(const m of A.keys){const y=p[m],w=y._zod.optin==="optional",S=y._zod.optout==="optional",x=y._zod.run({value:c[m],issues:[]},l);x instanceof Promise?h.push(x.then(E=>ZA(E,I,m,c,w,S))):ZA(x,I,m,c,w,S)}return r?Xp(h,c,I,l,i.value,n):h.length?Promise.all(h).then(()=>I):I}}),GD=X("$ZodObjectJIT",(n,e)=>{LD.init(n,e);const t=n._zod.parse,i=zA(()=>Qp(e)),o=m=>{const y=new aD(["shape","payload","ctx"]),w=i.value,S=P=>{const B=zp(P);return`shape[${B}]._zod.run({ value: input[${B}], issues: [] }, ctx)`};y.write("const input = payload.value;");const x=Object.create(null);let E=0;for(const P of w.keys)x[P]=`key_${E++}`;y.write("const newResult = {};");for(const P of w.keys){const B=x[P],W=zp(P),ne=m[P],_=ne?._zod?.optin==="optional",Y=ne?._zod?.optout==="optional";y.write(`const ${B} = ${S(P)};`),_&&Y?y.write(` - if (${B}.issues.length) { - if (${W} in input) { - payload.issues = payload.issues.concat(${B}.issues.map(iss => ({ +`))}}const ID={major:4,minor:4,patch:3},zt=$("$ZodType",(n,e)=>{var t;n??(n={}),n._zod.def=e,n._zod.bag=n._zod.bag||{},n._zod.version=ID;const i=[...n._zod.def.checks??[]];n._zod.traits.has("$ZodCheck")&&i.unshift(n);for(const o of i)for(const r of o._zod.onattach)r(n);if(i.length===0)(t=n._zod).deferred??(t.deferred=[]),n._zod.deferred?.push(()=>{n._zod.run=n._zod.parse});else{const o=(A,I,l)=>{let c=os(A),h;for(const p of I){if(p._zod.def.when){if(cN(A)||!p._zod.def.when(A))continue}else if(c)continue;const m=A.issues.length,y=p._zod.check(A);if(y instanceof Promise&&l?.async===!1)throw new ns;if(h||y instanceof Promise)h=(h??Promise.resolve()).then(async()=>{await y,A.issues.length!==m&&(c||(c=os(A,m)))});else{if(A.issues.length===m)continue;c||(c=os(A,m))}}return h?h.then(()=>A):A},r=(A,I,l)=>{if(os(A))return A.aborted=!0,A;const c=o(I,i,l);if(c instanceof Promise){if(l.async===!1)throw new ns;return c.then(h=>n._zod.parse(h,l))}return n._zod.parse(c,l)};n._zod.run=(A,I)=>{if(I.skipChecks)return n._zod.parse(A,I);if(I.direction==="backward"){const c=n._zod.parse({value:A.value,issues:[]},{...I,skipChecks:!0});return c instanceof Promise?c.then(h=>r(h,A,I)):r(c,A,I)}const l=n._zod.parse(A,I);if(l instanceof Promise){if(I.async===!1)throw new ns;return l.then(c=>o(c,i,I))}return o(l,i,I)}}rt(n,"~standard",()=>({validate:o=>{try{const r=hN(n,o);return r.success?{value:r.data}:{issues:r.error?.issues}}catch{return fN(n,o).then(A=>A.success?{value:A.data}:{issues:A.error?.issues})}},vendor:"zod",version:1}))}),Xl=$("$ZodString",(n,e)=>{zt.init(n,e),n._zod.pattern=[...n?._zod.bag?.patterns??[]].pop()??KN(n._zod.bag),n._zod.parse=(t,i)=>{if(e.coerce)try{t.value=String(t.value)}catch{}return typeof t.value=="string"||t.issues.push({expected:"string",code:"invalid_type",input:t.value,inst:n}),t}}),Tt=$("$ZodStringFormat",(n,e)=>{jA.init(n,e),Xl.init(n,e)}),lD=$("$ZodGUID",(n,e)=>{e.pattern??(e.pattern=kN),Tt.init(n,e)}),cD=$("$ZodUUID",(n,e)=>{if(e.version){const i={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[e.version];if(i===void 0)throw new Error(`Invalid UUID version: "${e.version}"`);e.pattern??(e.pattern=Bp(i))}else e.pattern??(e.pattern=Bp());Tt.init(n,e)}),dD=$("$ZodEmail",(n,e)=>{e.pattern??(e.pattern=RN),Tt.init(n,e)}),uD=$("$ZodURL",(n,e)=>{Tt.init(n,e),n._zod.check=t=>{try{const i=t.value.trim();if(!e.normalize&&e.protocol?.source===FN.source&&!/^https?:\/\//i.test(i)){t.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:t.value,inst:n,continue:!e.abort});return}const o=new URL(i);e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(o.hostname)||t.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:e.hostname.source,input:t.value,inst:n,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||t.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:t.value,inst:n,continue:!e.abort})),e.normalize?t.value=o.href:t.value=i;return}catch{t.issues.push({code:"invalid_format",format:"url",input:t.value,inst:n,continue:!e.abort})}}}),hD=$("$ZodEmoji",(n,e)=>{e.pattern??(e.pattern=jN()),Tt.init(n,e)}),fD=$("$ZodNanoID",(n,e)=>{e.pattern??(e.pattern=MN),Tt.init(n,e)}),pD=$("$ZodCUID",(n,e)=>{e.pattern??(e.pattern=EN),Tt.init(n,e)}),mD=$("$ZodCUID2",(n,e)=>{e.pattern??(e.pattern=TN),Tt.init(n,e)}),vD=$("$ZodULID",(n,e)=>{e.pattern??(e.pattern=ON),Tt.init(n,e)}),yD=$("$ZodXID",(n,e)=>{e.pattern??(e.pattern=NN),Tt.init(n,e)}),bD=$("$ZodKSUID",(n,e)=>{e.pattern??(e.pattern=DN),Tt.init(n,e)}),wD=$("$ZodISODateTime",(n,e)=>{e.pattern??(e.pattern=HN(e)),Tt.init(n,e)}),xD=$("$ZodISODate",(n,e)=>{e.pattern??(e.pattern=UN),Tt.init(n,e)}),SD=$("$ZodISOTime",(n,e)=>{e.pattern??(e.pattern=YN(e)),Tt.init(n,e)}),ED=$("$ZodISODuration",(n,e)=>{e.pattern??(e.pattern=zN),Tt.init(n,e)}),TD=$("$ZodIPv4",(n,e)=>{e.pattern??(e.pattern=ZN),Tt.init(n,e),n._zod.bag.format="ipv4"}),OD=$("$ZodIPv6",(n,e)=>{e.pattern??(e.pattern=BN),Tt.init(n,e),n._zod.bag.format="ipv6",n._zod.check=t=>{try{new URL(`http://[${t.value}]`)}catch{t.issues.push({code:"invalid_format",format:"ipv6",input:t.value,inst:n,continue:!e.abort})}}}),ND=$("$ZodCIDRv4",(n,e)=>{e.pattern??(e.pattern=PN),Tt.init(n,e)}),DD=$("$ZodCIDRv6",(n,e)=>{e.pattern??(e.pattern=LN),Tt.init(n,e),n._zod.check=t=>{const i=t.value.split("/");try{if(i.length!==2)throw new Error;const[o,r]=i;if(!r)throw new Error;const A=Number(r);if(`${A}`!==r)throw new Error;if(A<0||A>128)throw new Error;new URL(`http://[${o}]`)}catch{t.issues.push({code:"invalid_format",format:"cidrv6",input:t.value,inst:n,continue:!e.abort})}}});function Hp(n){if(n==="")return!0;if(/\s/.test(n)||n.length%4!==0)return!1;try{return atob(n),!0}catch{return!1}}const MD=$("$ZodBase64",(n,e)=>{e.pattern??(e.pattern=GN),Tt.init(n,e),n._zod.bag.contentEncoding="base64",n._zod.check=t=>{Hp(t.value)||t.issues.push({code:"invalid_format",format:"base64",input:t.value,inst:n,continue:!e.abort})}});function zD(n){if(!Pp.test(n))return!1;const e=n.replace(/[-_]/g,i=>i==="-"?"+":"/"),t=e.padEnd(Math.ceil(e.length/4)*4,"=");return Hp(t)}const kD=$("$ZodBase64URL",(n,e)=>{e.pattern??(e.pattern=Pp),Tt.init(n,e),n._zod.bag.contentEncoding="base64url",n._zod.check=t=>{zD(t.value)||t.issues.push({code:"invalid_format",format:"base64url",input:t.value,inst:n,continue:!e.abort})}}),RD=$("$ZodE164",(n,e)=>{e.pattern??(e.pattern=VN),Tt.init(n,e)});function _D(n,e=null){try{const t=n.split(".");if(t.length!==3)return!1;const[i]=t;if(!i)return!1;const o=JSON.parse(atob(i));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||e&&(!("alg"in o)||o.alg!==e))}catch{return!1}}const jD=$("$ZodJWT",(n,e)=>{Tt.init(n,e),n._zod.check=t=>{_D(t.value,e.alg)||t.issues.push({code:"invalid_format",format:"jwt",input:t.value,inst:n,continue:!e.abort})}}),Kp=$("$ZodNumber",(n,e)=>{zt.init(n,e),n._zod.pattern=n._zod.bag.pattern??Fp,n._zod.parse=(t,i)=>{if(e.coerce)try{t.value=Number(t.value)}catch{}const o=t.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return t;const r=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return t.issues.push({expected:"number",code:"invalid_type",input:o,inst:n,...r?{received:r}:{}}),t}}),ZD=$("$ZodNumberFormat",(n,e)=>{JN.init(n,e),Kp.init(n,e)}),BD=$("$ZodBoolean",(n,e)=>{zt.init(n,e),n._zod.pattern=QN,n._zod.parse=(t,i)=>{if(e.coerce)try{t.value=!!t.value}catch{}const o=t.value;return typeof o=="boolean"||t.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:n}),t}}),PD=$("$ZodUnknown",(n,e)=>{zt.init(n,e),n._zod.parse=t=>t}),LD=$("$ZodNever",(n,e)=>{zt.init(n,e),n._zod.parse=(t,i)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:n}),t)});function Wp(n,e,t){n.issues.length&&e.issues.push(...ss(t,n.issues)),e.value[t]=n.value}const GD=$("$ZodArray",(n,e)=>{zt.init(n,e),n._zod.parse=(t,i)=>{const o=t.value;if(!Array.isArray(o))return t.issues.push({expected:"array",code:"invalid_type",input:o,inst:n}),t;t.value=Array(o.length);const r=[];for(let A=0;AWp(c,t,A))):Wp(l,t,A)}return r.length?Promise.all(r).then(()=>t):t}});function ZA(n,e,t,i,o,r){const A=t in i;if(n.issues.length){if(o&&r&&!A)return;e.issues.push(...ss(t,n.issues))}if(!A&&!o){n.issues.length||e.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[t]});return}n.value===void 0?A&&(e.value[t]=void 0):e.value[t]=n.value}function Qp(n){const e=Object.keys(n.shape);for(const i of e)if(!n.shape?.[i]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${i}": expected a Zod schema`);const t=gN(n.shape);return{...n,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(t)}}function Xp(n,e,t,i,o,r){const A=[],I=o.keySet,l=o.catchall._zod,c=l.def.type,h=l.optin==="optional",p=l.optout==="optional";for(const m in e){if(m==="__proto__"||I.has(m))continue;if(c==="never"){A.push(m);continue}const y=l.run({value:e[m],issues:[]},i);y instanceof Promise?n.push(y.then(w=>ZA(w,t,m,e,h,p))):ZA(y,t,m,e,h,p)}return A.length&&t.issues.push({code:"unrecognized_keys",keys:A,input:e,inst:r}),n.length?Promise.all(n).then(()=>t):t}const FD=$("$ZodObject",(n,e)=>{if(zt.init(n,e),!Object.getOwnPropertyDescriptor(e,"shape")?.get){const I=e.shape;Object.defineProperty(e,"shape",{get:()=>{const l={...I};return Object.defineProperty(e,"shape",{value:l}),l}})}const i=zA(()=>Qp(e));rt(n._zod,"propValues",()=>{const I=e.shape,l={};for(const c in I){const h=I[c]._zod;if(h.values){l[c]??(l[c]=new Set);for(const p of h.values)l[c].add(p)}}return l});const o=Nr,r=e.catchall;let A;n._zod.parse=(I,l)=>{A??(A=i.value);const c=I.value;if(!o(c))return I.issues.push({expected:"object",code:"invalid_type",input:c,inst:n}),I;I.value={};const h=[],p=A.shape;for(const m of A.keys){const y=p[m],w=y._zod.optin==="optional",S=y._zod.optout==="optional",x=y._zod.run({value:c[m],issues:[]},l);x instanceof Promise?h.push(x.then(O=>ZA(O,I,m,c,w,S))):ZA(x,I,m,c,w,S)}return r?Xp(h,c,I,l,i.value,n):h.length?Promise.all(h).then(()=>I):I}}),VD=$("$ZodObjectJIT",(n,e)=>{FD.init(n,e);const t=n._zod.parse,i=zA(()=>Qp(e)),o=m=>{const y=new CD(["shape","payload","ctx"]),w=i.value,S=_=>{const P=zp(_);return`shape[${P}]._zod.run({ value: input[${P}], issues: [] }, ctx)`};y.write("const input = payload.value;");const x=Object.create(null);let O=0;for(const _ of w.keys)x[_]=`key_${O++}`;y.write("const newResult = {};");for(const _ of w.keys){const P=x[_],Q=zp(_),ne=m[_],j=ne?._zod?.optin==="optional",V=ne?._zod?.optout==="optional";y.write(`const ${P} = ${S(_)};`),j&&V?y.write(` + if (${P}.issues.length) { + if (${Q} in input) { + payload.issues = payload.issues.concat(${P}.issues.map(iss => ({ ...iss, - path: iss.path ? [${W}, ...iss.path] : [${W}] + path: iss.path ? [${Q}, ...iss.path] : [${Q}] }))); } } - if (${B}.value === undefined) { - if (${W} in input) { - newResult[${W}] = undefined; + if (${P}.value === undefined) { + if (${Q} in input) { + newResult[${Q}] = undefined; } } else { - newResult[${W}] = ${B}.value; + newResult[${Q}] = ${P}.value; } - `):_?y.write(` - if (${B}.issues.length) { - payload.issues = payload.issues.concat(${B}.issues.map(iss => ({ + `):j?y.write(` + if (${P}.issues.length) { + payload.issues = payload.issues.concat(${P}.issues.map(iss => ({ ...iss, - path: iss.path ? [${W}, ...iss.path] : [${W}] + path: iss.path ? [${Q}, ...iss.path] : [${Q}] }))); } - if (${B}.value === undefined) { - if (${W} in input) { - newResult[${W}] = undefined; + if (${P}.value === undefined) { + if (${Q} in input) { + newResult[${Q}] = undefined; } } else { - newResult[${W}] = ${B}.value; + newResult[${Q}] = ${P}.value; } `):y.write(` - const ${B}_present = ${W} in input; - if (${B}.issues.length) { - payload.issues = payload.issues.concat(${B}.issues.map(iss => ({ + const ${P}_present = ${Q} in input; + if (${P}.issues.length) { + payload.issues = payload.issues.concat(${P}.issues.map(iss => ({ ...iss, - path: iss.path ? [${W}, ...iss.path] : [${W}] + path: iss.path ? [${Q}, ...iss.path] : [${Q}] }))); } - if (!${B}_present && !${B}.issues.length) { + if (!${P}_present && !${P}.issues.length) { payload.issues.push({ code: "invalid_type", expected: "nonoptional", input: undefined, - path: [${W}] + path: [${Q}] }); } - if (${B}_present) { - if (${B}.value === undefined) { - newResult[${W}] = undefined; + if (${P}_present) { + if (${P}.value === undefined) { + newResult[${Q}] = undefined; } else { - newResult[${W}] = ${B}.value; + newResult[${Q}] = ${P}.value; } } - `)}y.write("payload.value = newResult;"),y.write("return payload;");const N=y.compile();return(P,B)=>N(m,P,B)};let r;const A=Nr,I=!Vl.jitless,c=I&&eN.value,h=e.catchall;let p;n._zod.parse=(m,y)=>{p??(p=i.value);const w=m.value;return A(w)?I&&c&&y?.async===!1&&y.jitless!==!0?(r||(r=o(e.shape)),m=r(m,y),h?Xp([],w,m,y,p,n):m):t(m,y):(m.issues.push({expected:"object",code:"invalid_type",input:w,inst:n}),m)}});function $p(n,e,t,i){for(const r of n)if(r.issues.length===0)return e.value=r.value,e;const o=n.filter(r=>!os(r));return o.length===1?(e.value=o[0].value,o[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:t,errors:n.map(r=>r.issues.map(A=>Ui(A,i,Vi())))}),e)}const qp=X("$ZodUnion",(n,e)=>{Mt.init(n,e),At(n._zod,"optin",()=>e.options.some(i=>i._zod.optin==="optional")?"optional":void 0),At(n._zod,"optout",()=>e.options.some(i=>i._zod.optout==="optional")?"optional":void 0),At(n._zod,"values",()=>{if(e.options.every(i=>i._zod.values))return new Set(e.options.flatMap(i=>Array.from(i._zod.values)))}),At(n._zod,"pattern",()=>{if(e.options.every(i=>i._zod.pattern)){const i=e.options.map(o=>o._zod.pattern);return new RegExp(`^(${i.map(o=>Hl(o.source)).join("|")})$`)}});const t=e.options.length===1?e.options[0]._zod.run:null;n._zod.parse=(i,o)=>{if(t)return t(i,o);let r=!1;const A=[];for(const I of e.options){const l=I._zod.run({value:i.value,issues:[]},o);if(l instanceof Promise)A.push(l),r=!0;else{if(l.issues.length===0)return l;A.push(l)}}return r?Promise.all(A).then(I=>$p(I,i,n,o)):$p(A,i,n,o)}}),FD=X("$ZodDiscriminatedUnion",(n,e)=>{e.inclusive=!1,qp.init(n,e);const t=n._zod.parse;At(n._zod,"propValues",()=>{const o={};for(const r of e.options){const A=r._zod.propValues;if(!A||Object.keys(A).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(r)}"`);for(const[I,l]of Object.entries(A)){o[I]||(o[I]=new Set);for(const c of l)o[I].add(c)}}return o});const i=zA(()=>{const o=e.options,r=new Map;for(const A of o){const I=A._zod.propValues?.[e.discriminator];if(!I||I.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(A)}"`);for(const l of I){if(r.has(l))throw new Error(`Duplicate discriminator value "${String(l)}"`);r.set(l,A)}}return r});n._zod.parse=(o,r)=>{const A=o.value;if(!Nr(A))return o.issues.push({code:"invalid_type",expected:"object",input:A,inst:n}),o;const I=i.value.get(A?.[e.discriminator]);return I?I._zod.run(o,r):e.unionFallback||r.direction==="backward"?t(o,r):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:e.discriminator,options:Array.from(i.value.keys()),input:A,path:[e.discriminator],inst:n}),o)}}),VD=X("$ZodIntersection",(n,e)=>{Mt.init(n,e),n._zod.parse=(t,i)=>{const o=t.value,r=e.left._zod.run({value:o,issues:[]},i),A=e.right._zod.run({value:o,issues:[]},i);return r instanceof Promise||A instanceof Promise?Promise.all([r,A]).then(([l,c])=>Jp(t,l,c)):Jp(t,r,A)}});function $l(n,e){if(n===e)return{valid:!0,data:n};if(n instanceof Date&&e instanceof Date&&+n==+e)return{valid:!0,data:n};if(is(n)&&is(e)){const t=Object.keys(e),i=Object.keys(n).filter(r=>t.indexOf(r)!==-1),o={...n,...e};for(const r of i){const A=$l(n[r],e[r]);if(!A.valid)return{valid:!1,mergeErrorPath:[r,...A.mergeErrorPath]};o[r]=A.data}return{valid:!0,data:o}}if(Array.isArray(n)&&Array.isArray(e)){if(n.length!==e.length)return{valid:!1,mergeErrorPath:[]};const t=[];for(let i=0;iI.l&&I.r).map(([I])=>I);if(r.length&&o&&n.issues.push({...o,keys:r}),os(n))return n;const A=$l(e.value,t.value);if(!A.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(A.mergeErrorPath)}`);return n.value=A.data,n}const UD=X("$ZodRecord",(n,e)=>{Mt.init(n,e),n._zod.parse=(t,i)=>{const o=t.value;if(!is(o))return t.issues.push({expected:"record",code:"invalid_type",input:o,inst:n}),t;const r=[],A=e.keyType._zod.values;if(A){t.value={};const I=new Set;for(const c of A)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){I.add(typeof c=="number"?c.toString():c);const h=e.keyType._zod.run({value:c,issues:[]},i);if(h instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(h.issues.length){t.issues.push({code:"invalid_key",origin:"record",issues:h.issues.map(y=>Ui(y,i,Vi())),input:c,path:[c],inst:n});continue}const p=h.value,m=e.valueType._zod.run({value:o[c],issues:[]},i);m instanceof Promise?r.push(m.then(y=>{y.issues.length&&t.issues.push(...ss(c,y.issues)),t.value[p]=y.value})):(m.issues.length&&t.issues.push(...ss(c,m.issues)),t.value[p]=m.value)}let l;for(const c in o)I.has(c)||(l=l??[],l.push(c));l&&l.length>0&&t.issues.push({code:"unrecognized_keys",input:o,inst:n,keys:l})}else{t.value={};for(const I of Reflect.ownKeys(o)){if(I==="__proto__"||!Object.prototype.propertyIsEnumerable.call(o,I))continue;let l=e.keyType._zod.run({value:I,issues:[]},i);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof I=="string"&&Fp.test(I)&&l.issues.length){const p=e.keyType._zod.run({value:Number(I),issues:[]},i);if(p instanceof Promise)throw new Error("Async schemas not supported in object keys currently");p.issues.length===0&&(l=p)}if(l.issues.length){e.mode==="loose"?t.value[I]=o[I]:t.issues.push({code:"invalid_key",origin:"record",issues:l.issues.map(p=>Ui(p,i,Vi())),input:I,path:[I],inst:n});continue}const h=e.valueType._zod.run({value:o[I],issues:[]},i);h instanceof Promise?r.push(h.then(p=>{p.issues.length&&t.issues.push(...ss(I,p.issues)),t.value[l.value]=p.value})):(h.issues.length&&t.issues.push(...ss(I,h.issues)),t.value[l.value]=h.value)}}return r.length?Promise.all(r).then(()=>t):t}}),YD=X("$ZodEnum",(n,e)=>{Mt.init(n,e);const t=Dp(e.entries),i=new Set(t);n._zod.values=i,n._zod.pattern=new RegExp(`^(${t.filter(o=>tN.has(typeof o)).map(o=>typeof o=="string"?gs(o):o.toString()).join("|")})$`),n._zod.parse=(o,r)=>{const A=o.value;return i.has(A)||o.issues.push({code:"invalid_value",values:t,input:A,inst:n}),o}}),HD=X("$ZodLiteral",(n,e)=>{if(Mt.init(n,e),e.values.length===0)throw new Error("Cannot create literal schema with no valid values");const t=new Set(e.values);n._zod.values=t,n._zod.pattern=new RegExp(`^(${e.values.map(i=>typeof i=="string"?gs(i):i?gs(i.toString()):String(i)).join("|")})$`),n._zod.parse=(i,o)=>{const r=i.value;return t.has(r)||i.issues.push({code:"invalid_value",values:e.values,input:r,inst:n}),i}}),KD=X("$ZodTransform",(n,e)=>{Mt.init(n,e),n._zod.optin="optional",n._zod.parse=(t,i)=>{if(i.direction==="backward")throw new Np(n.constructor.name);const o=e.transform(t.value,t);if(i.async)return(o instanceof Promise?o:Promise.resolve(o)).then(A=>(t.value=A,t.fallback=!0,t));if(o instanceof Promise)throw new ns;return t.value=o,t.fallback=!0,t}});function em(n,e){return e===void 0&&(n.issues.length||n.fallback)?{issues:[],value:void 0}:n}const tm=X("$ZodOptional",(n,e)=>{Mt.init(n,e),n._zod.optin="optional",n._zod.optout="optional",At(n._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),At(n._zod,"pattern",()=>{const t=e.innerType._zod.pattern;return t?new RegExp(`^(${Hl(t.source)})?$`):void 0}),n._zod.parse=(t,i)=>{if(e.innerType._zod.optin==="optional"){const o=t.value,r=e.innerType._zod.run(t,i);return r instanceof Promise?r.then(A=>em(A,o)):em(r,o)}return t.value===void 0?t:e.innerType._zod.run(t,i)}}),WD=X("$ZodExactOptional",(n,e)=>{tm.init(n,e),At(n._zod,"values",()=>e.innerType._zod.values),At(n._zod,"pattern",()=>e.innerType._zod.pattern),n._zod.parse=(t,i)=>e.innerType._zod.run(t,i)}),QD=X("$ZodNullable",(n,e)=>{Mt.init(n,e),At(n._zod,"optin",()=>e.innerType._zod.optin),At(n._zod,"optout",()=>e.innerType._zod.optout),At(n._zod,"pattern",()=>{const t=e.innerType._zod.pattern;return t?new RegExp(`^(${Hl(t.source)}|null)$`):void 0}),At(n._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),n._zod.parse=(t,i)=>t.value===null?t:e.innerType._zod.run(t,i)}),XD=X("$ZodDefault",(n,e)=>{Mt.init(n,e),n._zod.optin="optional",At(n._zod,"values",()=>e.innerType._zod.values),n._zod.parse=(t,i)=>{if(i.direction==="backward")return e.innerType._zod.run(t,i);if(t.value===void 0)return t.value=e.defaultValue,t;const o=e.innerType._zod.run(t,i);return o instanceof Promise?o.then(r=>nm(r,e)):nm(o,e)}});function nm(n,e){return n.value===void 0&&(n.value=e.defaultValue),n}const $D=X("$ZodPrefault",(n,e)=>{Mt.init(n,e),n._zod.optin="optional",At(n._zod,"values",()=>e.innerType._zod.values),n._zod.parse=(t,i)=>(i.direction==="backward"||t.value===void 0&&(t.value=e.defaultValue),e.innerType._zod.run(t,i))}),qD=X("$ZodNonOptional",(n,e)=>{Mt.init(n,e),At(n._zod,"values",()=>{const t=e.innerType._zod.values;return t?new Set([...t].filter(i=>i!==void 0)):void 0}),n._zod.parse=(t,i)=>{const o=e.innerType._zod.run(t,i);return o instanceof Promise?o.then(r=>im(r,n)):im(o,n)}});function im(n,e){return!n.issues.length&&n.value===void 0&&n.issues.push({code:"invalid_type",expected:"nonoptional",input:n.value,inst:e}),n}const JD=X("$ZodCatch",(n,e)=>{Mt.init(n,e),n._zod.optin="optional",At(n._zod,"optout",()=>e.innerType._zod.optout),At(n._zod,"values",()=>e.innerType._zod.values),n._zod.parse=(t,i)=>{if(i.direction==="backward")return e.innerType._zod.run(t,i);const o=e.innerType._zod.run(t,i);return o instanceof Promise?o.then(r=>(t.value=r.value,r.issues.length&&(t.value=e.catchValue({...t,error:{issues:r.issues.map(A=>Ui(A,i,Vi()))},input:t.value}),t.issues=[],t.fallback=!0),t)):(t.value=o.value,o.issues.length&&(t.value=e.catchValue({...t,error:{issues:o.issues.map(r=>Ui(r,i,Vi()))},input:t.value}),t.issues=[],t.fallback=!0),t)}}),eM=X("$ZodPipe",(n,e)=>{Mt.init(n,e),At(n._zod,"values",()=>e.in._zod.values),At(n._zod,"optin",()=>e.in._zod.optin),At(n._zod,"optout",()=>e.out._zod.optout),At(n._zod,"propValues",()=>e.in._zod.propValues),n._zod.parse=(t,i)=>{if(i.direction==="backward"){const r=e.out._zod.run(t,i);return r instanceof Promise?r.then(A=>BA(A,e.in,i)):BA(r,e.in,i)}const o=e.in._zod.run(t,i);return o instanceof Promise?o.then(r=>BA(r,e.out,i)):BA(o,e.out,i)}});function BA(n,e,t){return n.issues.length?(n.aborted=!0,n):e._zod.run({value:n.value,issues:n.issues,fallback:n.fallback},t)}const tM=X("$ZodReadonly",(n,e)=>{Mt.init(n,e),At(n._zod,"propValues",()=>e.innerType._zod.propValues),At(n._zod,"values",()=>e.innerType._zod.values),At(n._zod,"optin",()=>e.innerType?._zod?.optin),At(n._zod,"optout",()=>e.innerType?._zod?.optout),n._zod.parse=(t,i)=>{if(i.direction==="backward")return e.innerType._zod.run(t,i);const o=e.innerType._zod.run(t,i);return o instanceof Promise?o.then(gm):gm(o)}});function gm(n){return n.value=Object.freeze(n.value),n}const nM=X("$ZodCustom",(n,e)=>{Nn.init(n,e),Mt.init(n,e),n._zod.parse=(t,i)=>t,n._zod.check=t=>{const i=t.value,o=e.fn(i);if(o instanceof Promise)return o.then(r=>om(r,t,i,n));om(o,t,i,n)}});function om(n,e,t,i){if(!n){const o={code:"custom",input:t,inst:i,path:[...i._zod.def.path??[]],continue:!i._zod.def.abort};i._zod.def.params&&(o.params=i._zod.def.params),e.issues.push(Dr(o))}}var sm;class iM{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const i=t[0];return this._map.set(e,i),i&&typeof i=="object"&&"id"in i&&this._idmap.set(i.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const t=this._map.get(e);return t&&typeof t=="object"&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const i={...this.get(t)??{}};delete i.id;const o={...i,...this._map.get(e)};return Object.keys(o).length?o:void 0}return this._map.get(e)}has(e){return this._map.has(e)}}function gM(){return new iM}(sm=globalThis).__zod_globalRegistry??(sm.__zod_globalRegistry=gM());const Mr=globalThis.__zod_globalRegistry;function oM(n,e){return new n({type:"string",...be(e)})}function sM(n,e){return new n({type:"string",format:"email",check:"string_format",abort:!1,...be(e)})}function rm(n,e){return new n({type:"string",format:"guid",check:"string_format",abort:!1,...be(e)})}function rM(n,e){return new n({type:"string",format:"uuid",check:"string_format",abort:!1,...be(e)})}function aM(n,e){return new n({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...be(e)})}function AM(n,e){return new n({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...be(e)})}function CM(n,e){return new n({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...be(e)})}function IM(n,e){return new n({type:"string",format:"url",check:"string_format",abort:!1,...be(e)})}function lM(n,e){return new n({type:"string",format:"emoji",check:"string_format",abort:!1,...be(e)})}function cM(n,e){return new n({type:"string",format:"nanoid",check:"string_format",abort:!1,...be(e)})}function dM(n,e){return new n({type:"string",format:"cuid",check:"string_format",abort:!1,...be(e)})}function uM(n,e){return new n({type:"string",format:"cuid2",check:"string_format",abort:!1,...be(e)})}function hM(n,e){return new n({type:"string",format:"ulid",check:"string_format",abort:!1,...be(e)})}function fM(n,e){return new n({type:"string",format:"xid",check:"string_format",abort:!1,...be(e)})}function pM(n,e){return new n({type:"string",format:"ksuid",check:"string_format",abort:!1,...be(e)})}function mM(n,e){return new n({type:"string",format:"ipv4",check:"string_format",abort:!1,...be(e)})}function vM(n,e){return new n({type:"string",format:"ipv6",check:"string_format",abort:!1,...be(e)})}function yM(n,e){return new n({type:"string",format:"cidrv4",check:"string_format",abort:!1,...be(e)})}function bM(n,e){return new n({type:"string",format:"cidrv6",check:"string_format",abort:!1,...be(e)})}function wM(n,e){return new n({type:"string",format:"base64",check:"string_format",abort:!1,...be(e)})}function xM(n,e){return new n({type:"string",format:"base64url",check:"string_format",abort:!1,...be(e)})}function EM(n,e){return new n({type:"string",format:"e164",check:"string_format",abort:!1,...be(e)})}function SM(n,e){return new n({type:"string",format:"jwt",check:"string_format",abort:!1,...be(e)})}function TM(n,e){return new n({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...be(e)})}function OM(n,e){return new n({type:"string",format:"date",check:"string_format",...be(e)})}function NM(n,e){return new n({type:"string",format:"time",check:"string_format",precision:null,...be(e)})}function DM(n,e){return new n({type:"string",format:"duration",check:"string_format",...be(e)})}function MM(n,e){return new n({type:"number",checks:[],...be(e)})}function zM(n,e){return new n({type:"number",check:"number_format",abort:!1,format:"safeint",...be(e)})}function kM(n,e){return new n({type:"boolean",...be(e)})}function RM(n){return new n({type:"unknown"})}function _M(n,e){return new n({type:"never",...be(e)})}function am(n,e){return new Up({check:"less_than",...be(e),value:n,inclusive:!1})}function ql(n,e){return new Up({check:"less_than",...be(e),value:n,inclusive:!0})}function Am(n,e){return new Yp({check:"greater_than",...be(e),value:n,inclusive:!1})}function Jl(n,e){return new Yp({check:"greater_than",...be(e),value:n,inclusive:!0})}function Cm(n,e){return new XN({check:"multiple_of",...be(e),value:n})}function Im(n,e){return new qN({check:"max_length",...be(e),maximum:n})}function PA(n,e){return new JN({check:"min_length",...be(e),minimum:n})}function lm(n,e){return new eD({check:"length_equals",...be(e),length:n})}function jM(n,e){return new tD({check:"string_format",format:"regex",...be(e),pattern:n})}function ZM(n){return new nD({check:"string_format",format:"lowercase",...be(n)})}function BM(n){return new iD({check:"string_format",format:"uppercase",...be(n)})}function PM(n,e){return new gD({check:"string_format",format:"includes",...be(e),includes:n})}function LM(n,e){return new oD({check:"string_format",format:"starts_with",...be(e),prefix:n})}function GM(n,e){return new sD({check:"string_format",format:"ends_with",...be(e),suffix:n})}function rs(n){return new rD({check:"overwrite",tx:n})}function FM(n){return rs(e=>e.normalize(n))}function VM(){return rs(n=>n.trim())}function UM(){return rs(n=>n.toLowerCase())}function YM(){return rs(n=>n.toUpperCase())}function HM(){return rs(n=>JO(n))}function KM(n,e,t){return new n({type:"array",element:e,...be(t)})}function WM(n,e,t){return new n({type:"custom",check:"custom",fn:e,...be(t)})}function QM(n,e){const t=XM(i=>(i.addIssue=o=>{if(typeof o=="string")i.issues.push(Dr(o,i.value,t._zod.def));else{const r=o;r.fatal&&(r.continue=!1),r.code??(r.code="custom"),r.input??(r.input=i.value),r.inst??(r.inst=t),r.continue??(r.continue=!t._zod.def.abort),i.issues.push(Dr(r))}},n(i.value,i)),e);return t}function XM(n,e){const t=new Nn({check:"custom",...be(e)});return t._zod.check=n,t}function cm(n){let e=n?.target??"draft-2020-12";return e==="draft-4"&&(e="draft-04"),e==="draft-7"&&(e="draft-07"),{processors:n.processors??{},metadataRegistry:n?.metadata??Mr,target:e,unrepresentable:n?.unrepresentable??"throw",override:n?.override??(()=>{}),io:n?.io??"output",counter:0,seen:new Map,cycles:n?.cycles??"ref",reused:n?.reused??"inline",external:n?.external??void 0}}function Kt(n,e,t={path:[],schemaPath:[]}){var i;const o=n._zod.def,r=e.seen.get(n);if(r)return r.count++,t.schemaPath.includes(n)&&(r.cycle=t.path),r.schema;const A={schema:{},count:1,cycle:void 0,path:t.path};e.seen.set(n,A);const I=n._zod.toJSONSchema?.();if(I)A.schema=I;else{const h={...t,schemaPath:[...t.schemaPath,n],path:t.path};if(n._zod.processJSONSchema)n._zod.processJSONSchema(e,A.schema,h);else{const m=A.schema,y=e.processors[o.type];if(!y)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);y(n,e,m,h)}const p=n._zod.parent;p&&(A.ref||(A.ref=p),Kt(p,e,h),e.seen.get(p).isParent=!0)}const l=e.metadataRegistry.get(n);return l&&Object.assign(A.schema,l),e.io==="input"&&bn(n)&&(delete A.schema.examples,delete A.schema.default),e.io==="input"&&"_prefault"in A.schema&&((i=A.schema).default??(i.default=A.schema._prefault)),delete A.schema._prefault,e.seen.get(n).schema}function dm(n,e){const t=n.seen.get(e);if(!t)throw new Error("Unprocessed schema. This is a bug in Zod.");const i=new Map;for(const A of n.seen.entries()){const I=n.metadataRegistry.get(A[0])?.id;if(I){const l=i.get(I);if(l&&l!==A[0])throw new Error(`Duplicate schema id "${I}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);i.set(I,A[0])}}const o=A=>{const I=n.target==="draft-2020-12"?"$defs":"definitions";if(n.external){const p=n.external.registry.get(A[0])?.id,m=n.external.uri??(w=>w);if(p)return{ref:m(p)};const y=A[1].defId??A[1].schema.id??`schema${n.counter++}`;return A[1].defId=y,{defId:y,ref:`${m("__shared")}#/${I}/${y}`}}if(A[1]===t)return{ref:"#"};const c=`#/${I}/`,h=A[1].schema.id??`__schema${n.counter++}`;return{defId:h,ref:c+h}},r=A=>{if(A[1].schema.$ref)return;const I=A[1],{ref:l,defId:c}=o(A);I.def={...I.schema},c&&(I.defId=c);const h=I.schema;for(const p in h)delete h[p];h.$ref=l};if(n.cycles==="throw")for(const A of n.seen.entries()){const I=A[1];if(I.cycle)throw new Error(`Cycle detected: #/${I.cycle?.join("/")}/ + `)}y.write("payload.value = newResult;"),y.write("return payload;");const E=y.compile();return(_,P)=>E(m,_,P)};let r;const A=Nr,I=!Vl.jitless,c=I&&nN.value,h=e.catchall;let p;n._zod.parse=(m,y)=>{p??(p=i.value);const w=m.value;return A(w)?I&&c&&y?.async===!1&&y.jitless!==!0?(r||(r=o(e.shape)),m=r(m,y),h?Xp([],w,m,y,p,n):m):t(m,y):(m.issues.push({expected:"object",code:"invalid_type",input:w,inst:n}),m)}});function $p(n,e,t,i){for(const r of n)if(r.issues.length===0)return e.value=r.value,e;const o=n.filter(r=>!os(r));return o.length===1?(e.value=o[0].value,o[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:t,errors:n.map(r=>r.issues.map(A=>Ui(A,i,Vi())))}),e)}const qp=$("$ZodUnion",(n,e)=>{zt.init(n,e),rt(n._zod,"optin",()=>e.options.some(i=>i._zod.optin==="optional")?"optional":void 0),rt(n._zod,"optout",()=>e.options.some(i=>i._zod.optout==="optional")?"optional":void 0),rt(n._zod,"values",()=>{if(e.options.every(i=>i._zod.values))return new Set(e.options.flatMap(i=>Array.from(i._zod.values)))}),rt(n._zod,"pattern",()=>{if(e.options.every(i=>i._zod.pattern)){const i=e.options.map(o=>o._zod.pattern);return new RegExp(`^(${i.map(o=>Hl(o.source)).join("|")})$`)}});const t=e.options.length===1?e.options[0]._zod.run:null;n._zod.parse=(i,o)=>{if(t)return t(i,o);let r=!1;const A=[];for(const I of e.options){const l=I._zod.run({value:i.value,issues:[]},o);if(l instanceof Promise)A.push(l),r=!0;else{if(l.issues.length===0)return l;A.push(l)}}return r?Promise.all(A).then(I=>$p(I,i,n,o)):$p(A,i,n,o)}}),UD=$("$ZodDiscriminatedUnion",(n,e)=>{e.inclusive=!1,qp.init(n,e);const t=n._zod.parse;rt(n._zod,"propValues",()=>{const o={};for(const r of e.options){const A=r._zod.propValues;if(!A||Object.keys(A).length===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(r)}"`);for(const[I,l]of Object.entries(A)){o[I]||(o[I]=new Set);for(const c of l)o[I].add(c)}}return o});const i=zA(()=>{const o=e.options,r=new Map;for(const A of o){const I=A._zod.propValues?.[e.discriminator];if(!I||I.size===0)throw new Error(`Invalid discriminated union option at index "${e.options.indexOf(A)}"`);for(const l of I){if(r.has(l))throw new Error(`Duplicate discriminator value "${String(l)}"`);r.set(l,A)}}return r});n._zod.parse=(o,r)=>{const A=o.value;if(!Nr(A))return o.issues.push({code:"invalid_type",expected:"object",input:A,inst:n}),o;const I=i.value.get(A?.[e.discriminator]);return I?I._zod.run(o,r):e.unionFallback||r.direction==="backward"?t(o,r):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:e.discriminator,options:Array.from(i.value.keys()),input:A,path:[e.discriminator],inst:n}),o)}}),YD=$("$ZodIntersection",(n,e)=>{zt.init(n,e),n._zod.parse=(t,i)=>{const o=t.value,r=e.left._zod.run({value:o,issues:[]},i),A=e.right._zod.run({value:o,issues:[]},i);return r instanceof Promise||A instanceof Promise?Promise.all([r,A]).then(([l,c])=>Jp(t,l,c)):Jp(t,r,A)}});function $l(n,e){if(n===e)return{valid:!0,data:n};if(n instanceof Date&&e instanceof Date&&+n==+e)return{valid:!0,data:n};if(is(n)&&is(e)){const t=Object.keys(e),i=Object.keys(n).filter(r=>t.indexOf(r)!==-1),o={...n,...e};for(const r of i){const A=$l(n[r],e[r]);if(!A.valid)return{valid:!1,mergeErrorPath:[r,...A.mergeErrorPath]};o[r]=A.data}return{valid:!0,data:o}}if(Array.isArray(n)&&Array.isArray(e)){if(n.length!==e.length)return{valid:!1,mergeErrorPath:[]};const t=[];for(let i=0;iI.l&&I.r).map(([I])=>I);if(r.length&&o&&n.issues.push({...o,keys:r}),os(n))return n;const A=$l(e.value,t.value);if(!A.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(A.mergeErrorPath)}`);return n.value=A.data,n}const HD=$("$ZodRecord",(n,e)=>{zt.init(n,e),n._zod.parse=(t,i)=>{const o=t.value;if(!is(o))return t.issues.push({expected:"record",code:"invalid_type",input:o,inst:n}),t;const r=[],A=e.keyType._zod.values;if(A){t.value={};const I=new Set;for(const c of A)if(typeof c=="string"||typeof c=="number"||typeof c=="symbol"){I.add(typeof c=="number"?c.toString():c);const h=e.keyType._zod.run({value:c,issues:[]},i);if(h instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(h.issues.length){t.issues.push({code:"invalid_key",origin:"record",issues:h.issues.map(y=>Ui(y,i,Vi())),input:c,path:[c],inst:n});continue}const p=h.value,m=e.valueType._zod.run({value:o[c],issues:[]},i);m instanceof Promise?r.push(m.then(y=>{y.issues.length&&t.issues.push(...ss(c,y.issues)),t.value[p]=y.value})):(m.issues.length&&t.issues.push(...ss(c,m.issues)),t.value[p]=m.value)}let l;for(const c in o)I.has(c)||(l=l??[],l.push(c));l&&l.length>0&&t.issues.push({code:"unrecognized_keys",input:o,inst:n,keys:l})}else{t.value={};for(const I of Reflect.ownKeys(o)){if(I==="__proto__"||!Object.prototype.propertyIsEnumerable.call(o,I))continue;let l=e.keyType._zod.run({value:I,issues:[]},i);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof I=="string"&&Fp.test(I)&&l.issues.length){const p=e.keyType._zod.run({value:Number(I),issues:[]},i);if(p instanceof Promise)throw new Error("Async schemas not supported in object keys currently");p.issues.length===0&&(l=p)}if(l.issues.length){e.mode==="loose"?t.value[I]=o[I]:t.issues.push({code:"invalid_key",origin:"record",issues:l.issues.map(p=>Ui(p,i,Vi())),input:I,path:[I],inst:n});continue}const h=e.valueType._zod.run({value:o[I],issues:[]},i);h instanceof Promise?r.push(h.then(p=>{p.issues.length&&t.issues.push(...ss(I,p.issues)),t.value[l.value]=p.value})):(h.issues.length&&t.issues.push(...ss(I,h.issues)),t.value[l.value]=h.value)}}return r.length?Promise.all(r).then(()=>t):t}}),KD=$("$ZodEnum",(n,e)=>{zt.init(n,e);const t=Dp(e.entries),i=new Set(t);n._zod.values=i,n._zod.pattern=new RegExp(`^(${t.filter(o=>iN.has(typeof o)).map(o=>typeof o=="string"?gs(o):o.toString()).join("|")})$`),n._zod.parse=(o,r)=>{const A=o.value;return i.has(A)||o.issues.push({code:"invalid_value",values:t,input:A,inst:n}),o}}),WD=$("$ZodLiteral",(n,e)=>{if(zt.init(n,e),e.values.length===0)throw new Error("Cannot create literal schema with no valid values");const t=new Set(e.values);n._zod.values=t,n._zod.pattern=new RegExp(`^(${e.values.map(i=>typeof i=="string"?gs(i):i?gs(i.toString()):String(i)).join("|")})$`),n._zod.parse=(i,o)=>{const r=i.value;return t.has(r)||i.issues.push({code:"invalid_value",values:e.values,input:r,inst:n}),i}}),QD=$("$ZodTransform",(n,e)=>{zt.init(n,e),n._zod.optin="optional",n._zod.parse=(t,i)=>{if(i.direction==="backward")throw new Np(n.constructor.name);const o=e.transform(t.value,t);if(i.async)return(o instanceof Promise?o:Promise.resolve(o)).then(A=>(t.value=A,t.fallback=!0,t));if(o instanceof Promise)throw new ns;return t.value=o,t.fallback=!0,t}});function em(n,e){return e===void 0&&(n.issues.length||n.fallback)?{issues:[],value:void 0}:n}const tm=$("$ZodOptional",(n,e)=>{zt.init(n,e),n._zod.optin="optional",n._zod.optout="optional",rt(n._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),rt(n._zod,"pattern",()=>{const t=e.innerType._zod.pattern;return t?new RegExp(`^(${Hl(t.source)})?$`):void 0}),n._zod.parse=(t,i)=>{if(e.innerType._zod.optin==="optional"){const o=t.value,r=e.innerType._zod.run(t,i);return r instanceof Promise?r.then(A=>em(A,o)):em(r,o)}return t.value===void 0?t:e.innerType._zod.run(t,i)}}),XD=$("$ZodExactOptional",(n,e)=>{tm.init(n,e),rt(n._zod,"values",()=>e.innerType._zod.values),rt(n._zod,"pattern",()=>e.innerType._zod.pattern),n._zod.parse=(t,i)=>e.innerType._zod.run(t,i)}),$D=$("$ZodNullable",(n,e)=>{zt.init(n,e),rt(n._zod,"optin",()=>e.innerType._zod.optin),rt(n._zod,"optout",()=>e.innerType._zod.optout),rt(n._zod,"pattern",()=>{const t=e.innerType._zod.pattern;return t?new RegExp(`^(${Hl(t.source)}|null)$`):void 0}),rt(n._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),n._zod.parse=(t,i)=>t.value===null?t:e.innerType._zod.run(t,i)}),qD=$("$ZodDefault",(n,e)=>{zt.init(n,e),n._zod.optin="optional",rt(n._zod,"values",()=>e.innerType._zod.values),n._zod.parse=(t,i)=>{if(i.direction==="backward")return e.innerType._zod.run(t,i);if(t.value===void 0)return t.value=e.defaultValue,t;const o=e.innerType._zod.run(t,i);return o instanceof Promise?o.then(r=>nm(r,e)):nm(o,e)}});function nm(n,e){return n.value===void 0&&(n.value=e.defaultValue),n}const JD=$("$ZodPrefault",(n,e)=>{zt.init(n,e),n._zod.optin="optional",rt(n._zod,"values",()=>e.innerType._zod.values),n._zod.parse=(t,i)=>(i.direction==="backward"||t.value===void 0&&(t.value=e.defaultValue),e.innerType._zod.run(t,i))}),eM=$("$ZodNonOptional",(n,e)=>{zt.init(n,e),rt(n._zod,"values",()=>{const t=e.innerType._zod.values;return t?new Set([...t].filter(i=>i!==void 0)):void 0}),n._zod.parse=(t,i)=>{const o=e.innerType._zod.run(t,i);return o instanceof Promise?o.then(r=>im(r,n)):im(o,n)}});function im(n,e){return!n.issues.length&&n.value===void 0&&n.issues.push({code:"invalid_type",expected:"nonoptional",input:n.value,inst:e}),n}const tM=$("$ZodCatch",(n,e)=>{zt.init(n,e),n._zod.optin="optional",rt(n._zod,"optout",()=>e.innerType._zod.optout),rt(n._zod,"values",()=>e.innerType._zod.values),n._zod.parse=(t,i)=>{if(i.direction==="backward")return e.innerType._zod.run(t,i);const o=e.innerType._zod.run(t,i);return o instanceof Promise?o.then(r=>(t.value=r.value,r.issues.length&&(t.value=e.catchValue({...t,error:{issues:r.issues.map(A=>Ui(A,i,Vi()))},input:t.value}),t.issues=[],t.fallback=!0),t)):(t.value=o.value,o.issues.length&&(t.value=e.catchValue({...t,error:{issues:o.issues.map(r=>Ui(r,i,Vi()))},input:t.value}),t.issues=[],t.fallback=!0),t)}}),nM=$("$ZodPipe",(n,e)=>{zt.init(n,e),rt(n._zod,"values",()=>e.in._zod.values),rt(n._zod,"optin",()=>e.in._zod.optin),rt(n._zod,"optout",()=>e.out._zod.optout),rt(n._zod,"propValues",()=>e.in._zod.propValues),n._zod.parse=(t,i)=>{if(i.direction==="backward"){const r=e.out._zod.run(t,i);return r instanceof Promise?r.then(A=>BA(A,e.in,i)):BA(r,e.in,i)}const o=e.in._zod.run(t,i);return o instanceof Promise?o.then(r=>BA(r,e.out,i)):BA(o,e.out,i)}});function BA(n,e,t){return n.issues.length?(n.aborted=!0,n):e._zod.run({value:n.value,issues:n.issues,fallback:n.fallback},t)}const iM=$("$ZodReadonly",(n,e)=>{zt.init(n,e),rt(n._zod,"propValues",()=>e.innerType._zod.propValues),rt(n._zod,"values",()=>e.innerType._zod.values),rt(n._zod,"optin",()=>e.innerType?._zod?.optin),rt(n._zod,"optout",()=>e.innerType?._zod?.optout),n._zod.parse=(t,i)=>{if(i.direction==="backward")return e.innerType._zod.run(t,i);const o=e.innerType._zod.run(t,i);return o instanceof Promise?o.then(gm):gm(o)}});function gm(n){return n.value=Object.freeze(n.value),n}const gM=$("$ZodCustom",(n,e)=>{Nn.init(n,e),zt.init(n,e),n._zod.parse=(t,i)=>t,n._zod.check=t=>{const i=t.value,o=e.fn(i);if(o instanceof Promise)return o.then(r=>om(r,t,i,n));om(o,t,i,n)}});function om(n,e,t,i){if(!n){const o={code:"custom",input:t,inst:i,path:[...i._zod.def.path??[]],continue:!i._zod.def.abort};i._zod.def.params&&(o.params=i._zod.def.params),e.issues.push(Dr(o))}}var sm;class oM{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const i=t[0];return this._map.set(e,i),i&&typeof i=="object"&&"id"in i&&this._idmap.set(i.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const t=this._map.get(e);return t&&typeof t=="object"&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const i={...this.get(t)??{}};delete i.id;const o={...i,...this._map.get(e)};return Object.keys(o).length?o:void 0}return this._map.get(e)}has(e){return this._map.has(e)}}function sM(){return new oM}(sm=globalThis).__zod_globalRegistry??(sm.__zod_globalRegistry=sM());const Mr=globalThis.__zod_globalRegistry;function rM(n,e){return new n({type:"string",...we(e)})}function aM(n,e){return new n({type:"string",format:"email",check:"string_format",abort:!1,...we(e)})}function rm(n,e){return new n({type:"string",format:"guid",check:"string_format",abort:!1,...we(e)})}function AM(n,e){return new n({type:"string",format:"uuid",check:"string_format",abort:!1,...we(e)})}function CM(n,e){return new n({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...we(e)})}function IM(n,e){return new n({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...we(e)})}function lM(n,e){return new n({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...we(e)})}function cM(n,e){return new n({type:"string",format:"url",check:"string_format",abort:!1,...we(e)})}function dM(n,e){return new n({type:"string",format:"emoji",check:"string_format",abort:!1,...we(e)})}function uM(n,e){return new n({type:"string",format:"nanoid",check:"string_format",abort:!1,...we(e)})}function hM(n,e){return new n({type:"string",format:"cuid",check:"string_format",abort:!1,...we(e)})}function fM(n,e){return new n({type:"string",format:"cuid2",check:"string_format",abort:!1,...we(e)})}function pM(n,e){return new n({type:"string",format:"ulid",check:"string_format",abort:!1,...we(e)})}function mM(n,e){return new n({type:"string",format:"xid",check:"string_format",abort:!1,...we(e)})}function vM(n,e){return new n({type:"string",format:"ksuid",check:"string_format",abort:!1,...we(e)})}function yM(n,e){return new n({type:"string",format:"ipv4",check:"string_format",abort:!1,...we(e)})}function bM(n,e){return new n({type:"string",format:"ipv6",check:"string_format",abort:!1,...we(e)})}function wM(n,e){return new n({type:"string",format:"cidrv4",check:"string_format",abort:!1,...we(e)})}function xM(n,e){return new n({type:"string",format:"cidrv6",check:"string_format",abort:!1,...we(e)})}function SM(n,e){return new n({type:"string",format:"base64",check:"string_format",abort:!1,...we(e)})}function EM(n,e){return new n({type:"string",format:"base64url",check:"string_format",abort:!1,...we(e)})}function TM(n,e){return new n({type:"string",format:"e164",check:"string_format",abort:!1,...we(e)})}function OM(n,e){return new n({type:"string",format:"jwt",check:"string_format",abort:!1,...we(e)})}function NM(n,e){return new n({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...we(e)})}function DM(n,e){return new n({type:"string",format:"date",check:"string_format",...we(e)})}function MM(n,e){return new n({type:"string",format:"time",check:"string_format",precision:null,...we(e)})}function zM(n,e){return new n({type:"string",format:"duration",check:"string_format",...we(e)})}function kM(n,e){return new n({type:"number",checks:[],...we(e)})}function RM(n,e){return new n({type:"number",check:"number_format",abort:!1,format:"safeint",...we(e)})}function _M(n,e){return new n({type:"boolean",...we(e)})}function jM(n){return new n({type:"unknown"})}function ZM(n,e){return new n({type:"never",...we(e)})}function am(n,e){return new Up({check:"less_than",...we(e),value:n,inclusive:!1})}function ql(n,e){return new Up({check:"less_than",...we(e),value:n,inclusive:!0})}function Am(n,e){return new Yp({check:"greater_than",...we(e),value:n,inclusive:!1})}function Jl(n,e){return new Yp({check:"greater_than",...we(e),value:n,inclusive:!0})}function Cm(n,e){return new qN({check:"multiple_of",...we(e),value:n})}function Im(n,e){return new eD({check:"max_length",...we(e),maximum:n})}function PA(n,e){return new tD({check:"min_length",...we(e),minimum:n})}function lm(n,e){return new nD({check:"length_equals",...we(e),length:n})}function BM(n,e){return new iD({check:"string_format",format:"regex",...we(e),pattern:n})}function PM(n){return new gD({check:"string_format",format:"lowercase",...we(n)})}function LM(n){return new oD({check:"string_format",format:"uppercase",...we(n)})}function GM(n,e){return new sD({check:"string_format",format:"includes",...we(e),includes:n})}function FM(n,e){return new rD({check:"string_format",format:"starts_with",...we(e),prefix:n})}function VM(n,e){return new aD({check:"string_format",format:"ends_with",...we(e),suffix:n})}function rs(n){return new AD({check:"overwrite",tx:n})}function UM(n){return rs(e=>e.normalize(n))}function YM(){return rs(n=>n.trim())}function HM(){return rs(n=>n.toLowerCase())}function KM(){return rs(n=>n.toUpperCase())}function WM(){return rs(n=>tN(n))}function QM(n,e,t){return new n({type:"array",element:e,...we(t)})}function XM(n,e,t){return new n({type:"custom",check:"custom",fn:e,...we(t)})}function $M(n,e){const t=qM(i=>(i.addIssue=o=>{if(typeof o=="string")i.issues.push(Dr(o,i.value,t._zod.def));else{const r=o;r.fatal&&(r.continue=!1),r.code??(r.code="custom"),r.input??(r.input=i.value),r.inst??(r.inst=t),r.continue??(r.continue=!t._zod.def.abort),i.issues.push(Dr(r))}},n(i.value,i)),e);return t}function qM(n,e){const t=new Nn({check:"custom",...we(e)});return t._zod.check=n,t}function cm(n){let e=n?.target??"draft-2020-12";return e==="draft-4"&&(e="draft-04"),e==="draft-7"&&(e="draft-07"),{processors:n.processors??{},metadataRegistry:n?.metadata??Mr,target:e,unrepresentable:n?.unrepresentable??"throw",override:n?.override??(()=>{}),io:n?.io??"output",counter:0,seen:new Map,cycles:n?.cycles??"ref",reused:n?.reused??"inline",external:n?.external??void 0}}function Kt(n,e,t={path:[],schemaPath:[]}){var i;const o=n._zod.def,r=e.seen.get(n);if(r)return r.count++,t.schemaPath.includes(n)&&(r.cycle=t.path),r.schema;const A={schema:{},count:1,cycle:void 0,path:t.path};e.seen.set(n,A);const I=n._zod.toJSONSchema?.();if(I)A.schema=I;else{const h={...t,schemaPath:[...t.schemaPath,n],path:t.path};if(n._zod.processJSONSchema)n._zod.processJSONSchema(e,A.schema,h);else{const m=A.schema,y=e.processors[o.type];if(!y)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);y(n,e,m,h)}const p=n._zod.parent;p&&(A.ref||(A.ref=p),Kt(p,e,h),e.seen.get(p).isParent=!0)}const l=e.metadataRegistry.get(n);return l&&Object.assign(A.schema,l),e.io==="input"&&bn(n)&&(delete A.schema.examples,delete A.schema.default),e.io==="input"&&"_prefault"in A.schema&&((i=A.schema).default??(i.default=A.schema._prefault)),delete A.schema._prefault,e.seen.get(n).schema}function dm(n,e){const t=n.seen.get(e);if(!t)throw new Error("Unprocessed schema. This is a bug in Zod.");const i=new Map;for(const A of n.seen.entries()){const I=n.metadataRegistry.get(A[0])?.id;if(I){const l=i.get(I);if(l&&l!==A[0])throw new Error(`Duplicate schema id "${I}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);i.set(I,A[0])}}const o=A=>{const I=n.target==="draft-2020-12"?"$defs":"definitions";if(n.external){const p=n.external.registry.get(A[0])?.id,m=n.external.uri??(w=>w);if(p)return{ref:m(p)};const y=A[1].defId??A[1].schema.id??`schema${n.counter++}`;return A[1].defId=y,{defId:y,ref:`${m("__shared")}#/${I}/${y}`}}if(A[1]===t)return{ref:"#"};const c=`#/${I}/`,h=A[1].schema.id??`__schema${n.counter++}`;return{defId:h,ref:c+h}},r=A=>{if(A[1].schema.$ref)return;const I=A[1],{ref:l,defId:c}=o(A);I.def={...I.schema},c&&(I.defId=c);const h=I.schema;for(const p in h)delete h[p];h.$ref=l};if(n.cycles==="throw")for(const A of n.seen.entries()){const I=A[1];if(I.cycle)throw new Error(`Cycle detected: #/${I.cycle?.join("/")}/ -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const A of n.seen.entries()){const I=A[1];if(e===A[0]){r(A);continue}if(n.external){const c=n.external.registry.get(A[0])?.id;if(e!==A[0]&&c){r(A);continue}}if(n.metadataRegistry.get(A[0])?.id){r(A);continue}if(I.cycle){r(A);continue}if(I.count>1&&n.reused==="ref"){r(A);continue}}}function um(n,e){const t=n.seen.get(e);if(!t)throw new Error("Unprocessed schema. This is a bug in Zod.");const i=I=>{const l=n.seen.get(I);if(l.ref===null)return;const c=l.def??l.schema,h={...c},p=l.ref;if(l.ref=null,p){i(p);const y=n.seen.get(p),w=y.schema;if(w.$ref&&(n.target==="draft-07"||n.target==="draft-04"||n.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(w)):Object.assign(c,w),Object.assign(c,h),I._zod.parent===p)for(const x in c)x==="$ref"||x==="allOf"||x in h||delete c[x];if(w.$ref&&y.def)for(const x in c)x==="$ref"||x==="allOf"||x in y.def&&JSON.stringify(c[x])===JSON.stringify(y.def[x])&&delete c[x]}const m=I._zod.parent;if(m&&m!==p){i(m);const y=n.seen.get(m);if(y?.schema.$ref&&(c.$ref=y.schema.$ref,y.def))for(const w in c)w==="$ref"||w==="allOf"||w in y.def&&JSON.stringify(c[w])===JSON.stringify(y.def[w])&&delete c[w]}n.override({zodSchema:I,jsonSchema:c,path:l.path??[]})};for(const I of[...n.seen.entries()].reverse())i(I[0]);const o={};if(n.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":n.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":n.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":n.target,n.external?.uri){const I=n.external.registry.get(e)?.id;if(!I)throw new Error("Schema is missing an `id` property");o.$id=n.external.uri(I)}Object.assign(o,t.def??t.schema);const r=n.metadataRegistry.get(e)?.id;r!==void 0&&o.id===r&&delete o.id;const A=n.external?.defs??{};for(const I of n.seen.entries()){const l=I[1];l.def&&l.defId&&(l.def.id===l.defId&&delete l.def.id,A[l.defId]=l.def)}n.external||Object.keys(A).length>0&&(n.target==="draft-2020-12"?o.$defs=A:o.definitions=A);try{const I=JSON.parse(JSON.stringify(o));return Object.defineProperty(I,"~standard",{value:{...e["~standard"],jsonSchema:{input:LA(e,"input",n.processors),output:LA(e,"output",n.processors)}},enumerable:!1,writable:!1}),I}catch{throw new Error("Error converting schema to JSON.")}}function bn(n,e){const t=e??{seen:new Set};if(t.seen.has(n))return!1;t.seen.add(n);const i=n._zod.def;if(i.type==="transform")return!0;if(i.type==="array")return bn(i.element,t);if(i.type==="set")return bn(i.valueType,t);if(i.type==="lazy")return bn(i.getter(),t);if(i.type==="promise"||i.type==="optional"||i.type==="nonoptional"||i.type==="nullable"||i.type==="readonly"||i.type==="default"||i.type==="prefault")return bn(i.innerType,t);if(i.type==="intersection")return bn(i.left,t)||bn(i.right,t);if(i.type==="record"||i.type==="map")return bn(i.keyType,t)||bn(i.valueType,t);if(i.type==="pipe")return n._zod.traits.has("$ZodCodec")?!0:bn(i.in,t)||bn(i.out,t);if(i.type==="object"){for(const o in i.shape)if(bn(i.shape[o],t))return!0;return!1}if(i.type==="union"){for(const o of i.options)if(bn(o,t))return!0;return!1}if(i.type==="tuple"){for(const o of i.items)if(bn(o,t))return!0;return!!(i.rest&&bn(i.rest,t))}return!1}const $M=(n,e={})=>t=>{const i=cm({...t,processors:e});return Kt(n,i),dm(i,n),um(i,n)},LA=(n,e,t={})=>i=>{const{libraryOptions:o,target:r}=i??{},A=cm({...o??{},target:r,io:e,processors:t});return Kt(n,A),dm(A,n),um(A,n)},qM={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},JM=(n,e,t,i)=>{const o=t;o.type="string";const{minimum:r,maximum:A,format:I,patterns:l,contentEncoding:c}=n._zod.bag;if(typeof r=="number"&&(o.minLength=r),typeof A=="number"&&(o.maxLength=A),I&&(o.format=qM[I]??I,o.format===""&&delete o.format,I==="time"&&delete o.format),c&&(o.contentEncoding=c),l&&l.size>0){const h=[...l];h.length===1?o.pattern=h[0].source:h.length>1&&(o.allOf=[...h.map(p=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:p.source}))])}},ez=(n,e,t,i)=>{const o=t,{minimum:r,maximum:A,format:I,multipleOf:l,exclusiveMaximum:c,exclusiveMinimum:h}=n._zod.bag;typeof I=="string"&&I.includes("int")?o.type="integer":o.type="number";const p=typeof h=="number"&&h>=(r??Number.NEGATIVE_INFINITY),m=typeof c=="number"&&c<=(A??Number.POSITIVE_INFINITY),y=e.target==="draft-04"||e.target==="openapi-3.0";p?y?(o.minimum=h,o.exclusiveMinimum=!0):o.exclusiveMinimum=h:typeof r=="number"&&(o.minimum=r),m?y?(o.maximum=c,o.exclusiveMaximum=!0):o.exclusiveMaximum=c:typeof A=="number"&&(o.maximum=A),typeof l=="number"&&(o.multipleOf=l)},tz=(n,e,t,i)=>{t.type="boolean"},nz=(n,e,t,i)=>{t.not={}},iz=(n,e,t,i)=>{},gz=(n,e,t,i)=>{const o=n._zod.def,r=Dp(o.entries);r.every(A=>typeof A=="number")&&(t.type="number"),r.every(A=>typeof A=="string")&&(t.type="string"),t.enum=r},oz=(n,e,t,i)=>{const o=n._zod.def,r=[];for(const A of o.values)if(A===void 0){if(e.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof A=="bigint"){if(e.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");r.push(Number(A))}else r.push(A);if(r.length!==0)if(r.length===1){const A=r[0];t.type=A===null?"null":typeof A,e.target==="draft-04"||e.target==="openapi-3.0"?t.enum=[A]:t.const=A}else r.every(A=>typeof A=="number")&&(t.type="number"),r.every(A=>typeof A=="string")&&(t.type="string"),r.every(A=>typeof A=="boolean")&&(t.type="boolean"),r.every(A=>A===null)&&(t.type="null"),t.enum=r},sz=(n,e,t,i)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},rz=(n,e,t,i)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},az=(n,e,t,i)=>{const o=t,r=n._zod.def,{minimum:A,maximum:I}=n._zod.bag;typeof A=="number"&&(o.minItems=A),typeof I=="number"&&(o.maxItems=I),o.type="array",o.items=Kt(r.element,e,{...i,path:[...i.path,"items"]})},Az=(n,e,t,i)=>{const o=t,r=n._zod.def;o.type="object",o.properties={};const A=r.shape;for(const c in A)o.properties[c]=Kt(A[c],e,{...i,path:[...i.path,"properties",c]});const I=new Set(Object.keys(A)),l=new Set([...I].filter(c=>{const h=r.shape[c]._zod;return e.io==="input"?h.optin===void 0:h.optout===void 0}));l.size>0&&(o.required=Array.from(l)),r.catchall?._zod.def.type==="never"?o.additionalProperties=!1:r.catchall?r.catchall&&(o.additionalProperties=Kt(r.catchall,e,{...i,path:[...i.path,"additionalProperties"]})):e.io==="output"&&(o.additionalProperties=!1)},Cz=(n,e,t,i)=>{const o=n._zod.def,r=o.inclusive===!1,A=o.options.map((I,l)=>Kt(I,e,{...i,path:[...i.path,r?"oneOf":"anyOf",l]}));r?t.oneOf=A:t.anyOf=A},Iz=(n,e,t,i)=>{const o=n._zod.def,r=Kt(o.left,e,{...i,path:[...i.path,"allOf",0]}),A=Kt(o.right,e,{...i,path:[...i.path,"allOf",1]}),I=c=>"allOf"in c&&Object.keys(c).length===1,l=[...I(r)?r.allOf:[r],...I(A)?A.allOf:[A]];t.allOf=l},lz=(n,e,t,i)=>{const o=t,r=n._zod.def;o.type="object";const A=r.keyType,l=A._zod.bag?.patterns;if(r.mode==="loose"&&l&&l.size>0){const h=Kt(r.valueType,e,{...i,path:[...i.path,"patternProperties","*"]});o.patternProperties={};for(const p of l)o.patternProperties[p.source]=h}else(e.target==="draft-07"||e.target==="draft-2020-12")&&(o.propertyNames=Kt(r.keyType,e,{...i,path:[...i.path,"propertyNames"]})),o.additionalProperties=Kt(r.valueType,e,{...i,path:[...i.path,"additionalProperties"]});const c=A._zod.values;if(c){const h=[...c].filter(p=>typeof p=="string"||typeof p=="number");h.length>0&&(o.required=h)}},cz=(n,e,t,i)=>{const o=n._zod.def,r=Kt(o.innerType,e,i),A=e.seen.get(n);e.target==="openapi-3.0"?(A.ref=o.innerType,t.nullable=!0):t.anyOf=[r,{type:"null"}]},dz=(n,e,t,i)=>{const o=n._zod.def;Kt(o.innerType,e,i);const r=e.seen.get(n);r.ref=o.innerType},uz=(n,e,t,i)=>{const o=n._zod.def;Kt(o.innerType,e,i);const r=e.seen.get(n);r.ref=o.innerType,t.default=JSON.parse(JSON.stringify(o.defaultValue))},hz=(n,e,t,i)=>{const o=n._zod.def;Kt(o.innerType,e,i);const r=e.seen.get(n);r.ref=o.innerType,e.io==="input"&&(t._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},fz=(n,e,t,i)=>{const o=n._zod.def;Kt(o.innerType,e,i);const r=e.seen.get(n);r.ref=o.innerType;let A;try{A=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}t.default=A},pz=(n,e,t,i)=>{const o=n._zod.def,r=o.in._zod.traits.has("$ZodTransform"),A=e.io==="input"?r?o.out:o.in:o.out;Kt(A,e,i);const I=e.seen.get(n);I.ref=A},mz=(n,e,t,i)=>{const o=n._zod.def;Kt(o.innerType,e,i);const r=e.seen.get(n);r.ref=o.innerType,t.readOnly=!0},hm=(n,e,t,i)=>{const o=n._zod.def;Kt(o.innerType,e,i);const r=e.seen.get(n);r.ref=o.innerType},vz=X("ZodISODateTime",(n,e)=>{yD.init(n,e),kt.init(n,e)});function yz(n){return TM(vz,n)}const bz=X("ZodISODate",(n,e)=>{bD.init(n,e),kt.init(n,e)});function wz(n){return OM(bz,n)}const xz=X("ZodISOTime",(n,e)=>{wD.init(n,e),kt.init(n,e)});function Ez(n){return NM(xz,n)}const Sz=X("ZodISODuration",(n,e)=>{xD.init(n,e),kt.init(n,e)});function Tz(n){return DM(Sz,n)}const qn=X("ZodError",(n,e)=>{jp.init(n,e),n.name="ZodError",Object.defineProperties(n,{format:{value:t=>cN(n,t)},flatten:{value:t=>lN(n,t)},addIssue:{value:t=>{n.issues.push(t),n.message=JSON.stringify(n.issues,Ul,2)}},addIssues:{value:t=>{n.issues.push(...t),n.message=JSON.stringify(n.issues,Ul,2)}},isEmpty:{get(){return n.issues.length===0}}})},{Parent:Error}),Oz=Wl(qn),Nz=Ql(qn),Dz=RA(qn),Mz=_A(qn),zz=hN(qn),kz=fN(qn),Rz=pN(qn),_z=mN(qn),jz=vN(qn),Zz=yN(qn),Bz=bN(qn),Pz=wN(qn),fm=new WeakMap;function zr(n,e,t){const i=Object.getPrototypeOf(n);let o=fm.get(i);if(o||(o=new Set,fm.set(i,o)),!o.has(e)){o.add(e);for(const r in t){const A=t[r];Object.defineProperty(i,r,{configurable:!0,enumerable:!1,get(){const I=A.bind(this);return Object.defineProperty(this,r,{configurable:!0,writable:!0,enumerable:!0,value:I}),I},set(I){Object.defineProperty(this,r,{configurable:!0,writable:!0,enumerable:!0,value:I})}})}}}const zt=X("ZodType",(n,e)=>(Mt.init(n,e),Object.assign(n["~standard"],{jsonSchema:{input:LA(n,"input"),output:LA(n,"output")}}),n.toJSONSchema=$M(n,{}),n.def=e,n.type=e.type,Object.defineProperty(n,"_def",{value:e}),n.parse=(t,i)=>Oz(n,t,i,{callee:n.parse}),n.safeParse=(t,i)=>Dz(n,t,i),n.parseAsync=async(t,i)=>Nz(n,t,i,{callee:n.parseAsync}),n.safeParseAsync=async(t,i)=>Mz(n,t,i),n.spa=n.safeParseAsync,n.encode=(t,i)=>zz(n,t,i),n.decode=(t,i)=>kz(n,t,i),n.encodeAsync=async(t,i)=>Rz(n,t,i),n.decodeAsync=async(t,i)=>_z(n,t,i),n.safeEncode=(t,i)=>jz(n,t,i),n.safeDecode=(t,i)=>Zz(n,t,i),n.safeEncodeAsync=async(t,i)=>Bz(n,t,i),n.safeDecodeAsync=async(t,i)=>Pz(n,t,i),zr(n,"ZodType",{check(...t){const i=this.def;return this.clone(vg(i,{checks:[...i.checks??[],...t.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]}),{parent:!0})},with(...t){return this.check(...t)},clone(t,i){return yg(this,t,i)},brand(){return this},register(t,i){return t.add(this,i),this},refine(t,i){return this.check(Nk(t,i))},superRefine(t,i){return this.check(Dk(t,i))},overwrite(t){return this.check(rs(t))},optional(){return Om(this)},exactOptional(){return hk(this)},nullable(){return Nm(this)},nullish(){return Om(Nm(this))},nonoptional(t){return bk(this,t)},array(){return Ve(this)},or(t){return Em([this,t])},and(t){return Ik(this,t)},transform(t){return Mm(this,dk(t))},default(t){return mk(this,t)},prefault(t){return yk(this,t)},catch(t){return xk(this,t)},pipe(t){return Mm(this,t)},readonly(){return Tk(this)},describe(t){const i=this.clone();return Mr.add(i,{description:t}),i},meta(...t){if(t.length===0)return Mr.get(this);const i=this.clone();return Mr.add(i,t[0]),i},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(t){return t(this)}}),Object.defineProperty(n,"description",{get(){return Mr.get(n)?.description},configurable:!0}),n)),pm=X("_ZodString",(n,e)=>{Xl.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(i,o,r)=>JM(n,i,o);const t=n._zod.bag;n.format=t.format??null,n.minLength=t.minimum??null,n.maxLength=t.maximum??null,zr(n,"_ZodString",{regex(...i){return this.check(jM(...i))},includes(...i){return this.check(PM(...i))},startsWith(...i){return this.check(LM(...i))},endsWith(...i){return this.check(GM(...i))},min(...i){return this.check(PA(...i))},max(...i){return this.check(Im(...i))},length(...i){return this.check(lm(...i))},nonempty(...i){return this.check(PA(1,...i))},lowercase(i){return this.check(ZM(i))},uppercase(i){return this.check(BM(i))},trim(){return this.check(VM())},normalize(...i){return this.check(FM(...i))},toLowerCase(){return this.check(UM())},toUpperCase(){return this.check(YM())},slugify(){return this.check(HM())}})}),Lz=X("ZodString",(n,e)=>{Xl.init(n,e),pm.init(n,e),n.email=t=>n.check(sM(Gz,t)),n.url=t=>n.check(IM(Fz,t)),n.jwt=t=>n.check(SM(ik,t)),n.emoji=t=>n.check(lM(Vz,t)),n.guid=t=>n.check(rm(mm,t)),n.uuid=t=>n.check(rM(GA,t)),n.uuidv4=t=>n.check(aM(GA,t)),n.uuidv6=t=>n.check(AM(GA,t)),n.uuidv7=t=>n.check(CM(GA,t)),n.nanoid=t=>n.check(cM(Uz,t)),n.guid=t=>n.check(rm(mm,t)),n.cuid=t=>n.check(dM(Yz,t)),n.cuid2=t=>n.check(uM(Hz,t)),n.ulid=t=>n.check(hM(Kz,t)),n.base64=t=>n.check(wM(ek,t)),n.base64url=t=>n.check(xM(tk,t)),n.xid=t=>n.check(fM(Wz,t)),n.ksuid=t=>n.check(pM(Qz,t)),n.ipv4=t=>n.check(mM(Xz,t)),n.ipv6=t=>n.check(vM($z,t)),n.cidrv4=t=>n.check(yM(qz,t)),n.cidrv6=t=>n.check(bM(Jz,t)),n.e164=t=>n.check(EM(nk,t)),n.datetime=t=>n.check(yz(t)),n.date=t=>n.check(wz(t)),n.time=t=>n.check(Ez(t)),n.duration=t=>n.check(Tz(t))});function H(n){return oM(Lz,n)}const kt=X("ZodStringFormat",(n,e)=>{Ot.init(n,e),pm.init(n,e)}),Gz=X("ZodEmail",(n,e)=>{lD.init(n,e),kt.init(n,e)}),mm=X("ZodGUID",(n,e)=>{CD.init(n,e),kt.init(n,e)}),GA=X("ZodUUID",(n,e)=>{ID.init(n,e),kt.init(n,e)}),Fz=X("ZodURL",(n,e)=>{cD.init(n,e),kt.init(n,e)}),Vz=X("ZodEmoji",(n,e)=>{dD.init(n,e),kt.init(n,e)}),Uz=X("ZodNanoID",(n,e)=>{uD.init(n,e),kt.init(n,e)}),Yz=X("ZodCUID",(n,e)=>{hD.init(n,e),kt.init(n,e)}),Hz=X("ZodCUID2",(n,e)=>{fD.init(n,e),kt.init(n,e)}),Kz=X("ZodULID",(n,e)=>{pD.init(n,e),kt.init(n,e)}),Wz=X("ZodXID",(n,e)=>{mD.init(n,e),kt.init(n,e)}),Qz=X("ZodKSUID",(n,e)=>{vD.init(n,e),kt.init(n,e)}),Xz=X("ZodIPv4",(n,e)=>{ED.init(n,e),kt.init(n,e)}),$z=X("ZodIPv6",(n,e)=>{SD.init(n,e),kt.init(n,e)}),qz=X("ZodCIDRv4",(n,e)=>{TD.init(n,e),kt.init(n,e)}),Jz=X("ZodCIDRv6",(n,e)=>{OD.init(n,e),kt.init(n,e)}),ek=X("ZodBase64",(n,e)=>{ND.init(n,e),kt.init(n,e)}),tk=X("ZodBase64URL",(n,e)=>{MD.init(n,e),kt.init(n,e)}),nk=X("ZodE164",(n,e)=>{zD.init(n,e),kt.init(n,e)}),ik=X("ZodJWT",(n,e)=>{RD.init(n,e),kt.init(n,e)}),vm=X("ZodNumber",(n,e)=>{Kp.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(i,o,r)=>ez(n,i,o),zr(n,"ZodNumber",{gt(i,o){return this.check(Am(i,o))},gte(i,o){return this.check(Jl(i,o))},min(i,o){return this.check(Jl(i,o))},lt(i,o){return this.check(am(i,o))},lte(i,o){return this.check(ql(i,o))},max(i,o){return this.check(ql(i,o))},int(i){return this.check(ym(i))},safe(i){return this.check(ym(i))},positive(i){return this.check(Am(0,i))},nonnegative(i){return this.check(Jl(0,i))},negative(i){return this.check(am(0,i))},nonpositive(i){return this.check(ql(0,i))},multipleOf(i,o){return this.check(Cm(i,o))},step(i,o){return this.check(Cm(i,o))},finite(){return this}});const t=n._zod.bag;n.minValue=Math.max(t.minimum??Number.NEGATIVE_INFINITY,t.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,n.maxValue=Math.min(t.maximum??Number.POSITIVE_INFINITY,t.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,n.isInt=(t.format??"").includes("int")||Number.isSafeInteger(t.multipleOf??.5),n.isFinite=!0,n.format=t.format??null});function he(n){return MM(vm,n)}const gk=X("ZodNumberFormat",(n,e)=>{_D.init(n,e),vm.init(n,e)});function ym(n){return zM(gk,n)}const ok=X("ZodBoolean",(n,e)=>{jD.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>tz(n,t,i)});function Ln(n){return kM(ok,n)}const sk=X("ZodUnknown",(n,e)=>{ZD.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>iz()});function uo(){return RM(sk)}const rk=X("ZodNever",(n,e)=>{BD.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>nz(n,t,i)});function bm(n){return _M(rk,n)}const ak=X("ZodArray",(n,e)=>{PD.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>az(n,t,i,o),n.element=e.element,zr(n,"ZodArray",{min(t,i){return this.check(PA(t,i))},nonempty(t){return this.check(PA(1,t))},max(t,i){return this.check(Im(t,i))},length(t,i){return this.check(lm(t,i))},unwrap(){return this.element}})});function Ve(n,e){return KM(ak,n,e)}const wm=X("ZodObject",(n,e)=>{GD.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>Az(n,t,i,o),At(n,"shape",()=>e.shape),zr(n,"ZodObject",{keyof(){return pt(Object.keys(this._zod.def.shape))},catchall(t){return this.clone({...this._zod.def,catchall:t})},passthrough(){return this.clone({...this._zod.def,catchall:uo()})},loose(){return this.clone({...this._zod.def,catchall:uo()})},strict(){return this.clone({...this._zod.def,catchall:bm()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(t){return sN(this,t)},safeExtend(t){return rN(this,t)},merge(t){return aN(this,t)},pick(t){return gN(this,t)},omit(t){return oN(this,t)},partial(...t){return AN(Tm,this,t[0])},required(...t){return CN(Dm,this,t[0])}})});function vt(n,e){const t={type:"object",shape:n??{},...be(e)};return new wm(t)}function Ne(n,e){return new wm({type:"object",shape:n,catchall:bm(),...be(e)})}const xm=X("ZodUnion",(n,e)=>{qp.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>Cz(n,t,i,o),n.options=e.options});function Em(n,e){return new xm({type:"union",options:n,...be(e)})}const Ak=X("ZodDiscriminatedUnion",(n,e)=>{xm.init(n,e),FD.init(n,e)});function ec(n,e,t){return new Ak({type:"union",options:e,discriminator:n,...be(t)})}const Ck=X("ZodIntersection",(n,e)=>{VD.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>Iz(n,t,i,o)});function Ik(n,e){return new Ck({type:"intersection",left:n,right:e})}const Sm=X("ZodRecord",(n,e)=>{UD.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>lz(n,t,i,o),n.keyType=e.keyType,n.valueType=e.valueType});function tc(n,e,t){return!e||!e._zod?new Sm({type:"record",keyType:H(),valueType:n,...be(e)}):new Sm({type:"record",keyType:n,valueType:e,...be(t)})}const nc=X("ZodEnum",(n,e)=>{YD.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(i,o,r)=>gz(n,i,o),n.enum=e.entries,n.options=Object.values(e.entries);const t=new Set(Object.keys(e.entries));n.extract=(i,o)=>{const r={};for(const A of i)if(t.has(A))r[A]=e.entries[A];else throw new Error(`Key ${A} not found in enum`);return new nc({...e,checks:[],...be(o),entries:r})},n.exclude=(i,o)=>{const r={...e.entries};for(const A of i)if(t.has(A))delete r[A];else throw new Error(`Key ${A} not found in enum`);return new nc({...e,checks:[],...be(o),entries:r})}});function pt(n,e){const t=Array.isArray(n)?Object.fromEntries(n.map(i=>[i,i])):n;return new nc({type:"enum",entries:t,...be(e)})}const lk=X("ZodLiteral",(n,e)=>{HD.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>oz(n,t,i),n.values=new Set(e.values),Object.defineProperty(n,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function ct(n,e){return new lk({type:"literal",values:Array.isArray(n)?n:[n],...be(e)})}const ck=X("ZodTransform",(n,e)=>{KD.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>rz(n,t),n._zod.parse=(t,i)=>{if(i.direction==="backward")throw new Np(n.constructor.name);t.addIssue=r=>{if(typeof r=="string")t.issues.push(Dr(r,t.value,e));else{const A=r;A.fatal&&(A.continue=!1),A.code??(A.code="custom"),A.input??(A.input=t.value),A.inst??(A.inst=n),t.issues.push(Dr(A))}};const o=e.transform(t.value,t);return o instanceof Promise?o.then(r=>(t.value=r,t.fallback=!0,t)):(t.value=o,t.fallback=!0,t)}});function dk(n){return new ck({type:"transform",transform:n})}const Tm=X("ZodOptional",(n,e)=>{tm.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>hm(n,t,i,o),n.unwrap=()=>n._zod.def.innerType});function Om(n){return new Tm({type:"optional",innerType:n})}const uk=X("ZodExactOptional",(n,e)=>{WD.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>hm(n,t,i,o),n.unwrap=()=>n._zod.def.innerType});function hk(n){return new uk({type:"optional",innerType:n})}const fk=X("ZodNullable",(n,e)=>{QD.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>cz(n,t,i,o),n.unwrap=()=>n._zod.def.innerType});function Nm(n){return new fk({type:"nullable",innerType:n})}const pk=X("ZodDefault",(n,e)=>{XD.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>uz(n,t,i,o),n.unwrap=()=>n._zod.def.innerType,n.removeDefault=n.unwrap});function mk(n,e){return new pk({type:"default",innerType:n,get defaultValue(){return typeof e=="function"?e():Rp(e)}})}const vk=X("ZodPrefault",(n,e)=>{$D.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>hz(n,t,i,o),n.unwrap=()=>n._zod.def.innerType});function yk(n,e){return new vk({type:"prefault",innerType:n,get defaultValue(){return typeof e=="function"?e():Rp(e)}})}const Dm=X("ZodNonOptional",(n,e)=>{qD.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>dz(n,t,i,o),n.unwrap=()=>n._zod.def.innerType});function bk(n,e){return new Dm({type:"nonoptional",innerType:n,...be(e)})}const wk=X("ZodCatch",(n,e)=>{JD.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>fz(n,t,i,o),n.unwrap=()=>n._zod.def.innerType,n.removeCatch=n.unwrap});function xk(n,e){return new wk({type:"catch",innerType:n,catchValue:typeof e=="function"?e:()=>e})}const Ek=X("ZodPipe",(n,e)=>{eM.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>pz(n,t,i,o),n.in=e.in,n.out=e.out});function Mm(n,e){return new Ek({type:"pipe",in:n,out:e})}const Sk=X("ZodReadonly",(n,e)=>{tM.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>mz(n,t,i,o),n.unwrap=()=>n._zod.def.innerType});function Tk(n){return new Sk({type:"readonly",innerType:n})}const Ok=X("ZodCustom",(n,e)=>{nM.init(n,e),zt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>sz(n,t)});function Nk(n,e={}){return WM(Ok,n,e)}function Dk(n,e){return QM(n,e)}const Mk="compass.query/1",zk=["file","module","package","namespace","class","struct","interface","trait","protocol","enum","enum_member","type_alias","function","method","constructor","property","field","variable","constant","parameter","import","export","macro","annotation","route","component","event","message","topic","queue","job","resource","schema","query","migration","config_key","database","database_schema","database_table","database_view","database_column","database_index","database_constraint","database_procedure","database_trigger"],kk=["contains","calls","imports","exports","extends","implements","references","type_of","returns","instantiates","overrides","decorates","routes_to","reads","writes","aliases","registers","handles","publishes","subscribes","produces","consumes","schedules","triggers","tests","depends_on","documents","maps_to"],Rk=["controller","route_handler","middleware","service","resolver","consumer","producer","subscriber","repository","model","test","fixture","generated"],_k=["search","callers","callees","impact","explore","node_trail"],ic=H().min(1).refine(n=>n.includes("\\")||n.startsWith("/")||/^[A-Za-z]:/.test(n)?!1:n.split("/").every(e=>e!==""&&e!=="."&&e!==".."),"source path must be a safe repository-relative path"),kr=Ne({file:ic,startByte:he().int().nonnegative(),endByte:he().int().nonnegative(),startLine:he().int().positive(),startColumn:he().int().nonnegative(),endLine:he().int().positive(),endColumn:he().int().nonnegative()}).refine(n=>n.endByte>=n.startByte&&(n.endLine>n.startLine||n.endLine===n.startLine&&n.endColumn>=n.startColumn),"source anchor must be ordered"),jk=pt(zk),Zk=pt(kk),Bk=pt(Rk),Pk=pt(_k),Lk=pt(["structural_graph","program_ir"]),Gk=pt(["ast","config","convention","artifact","heuristic"]),gc=pt(["exact","inferred","ambiguous"]),oc=pt(["exact","ambiguous","unresolved"]),Fk=Ne({nodeId:H().min(1),reason:H().min(1),confidence:gc,score:he().finite().nullable().optional(),anchor:kr.nullable().optional()}),FA=Ne({layer:Lk,origin:Gk,extractor:H().min(1),confidence:gc,anchor:kr.nullable(),rule:H().min(1).nullable(),wiringSite:kr.nullable(),resolution:oc,candidates:Ve(Fk).max(20).default([])}),Vk=Ne({type:ct("file"),data:Ne({contentDigest:H().min(1),byteSize:he().int().nonnegative(),generated:Ln()})}),Uk=Ne({type:ct("symbol"),data:Ne({signature:H().nullable().optional(),modifiers:Ve(H()).default([]),overloadDiscriminator:H().nullable().optional(),declaringType:H().nullable().optional(),signatureDigest:H().nullable().optional(),implementationDigest:H().nullable().optional(),sourceDigest:H().nullable().optional()})}),Yk=Ne({type:ct("import_export"),data:Ne({specifier:H(),importedName:H().nullable().optional(),localName:H().nullable().optional(),typeOnly:Ln()})}),Hk=Ne({type:ct("route"),data:Ne({operation:H(),path:H(),originalPath:H().nullable().optional(),declaringScope:H(),resolution:oc,middlewareCount:he().int().nonnegative()})}),Kk=Ne({type:ct("component"),data:Ne({componentType:H()})}),Wk=Ne({type:ct("resource"),data:Ne({resourceKind:pt(["document","paper","image","concept","rationale"]),uri:H().nullable().optional(),mediaType:H().nullable().optional()})}),Qk=Ne({type:ct("messaging"),data:Ne({transport:H(),subject:H(),declaringScope:H()})}),Xk=Ne({type:ct("job"),data:Ne({schedule:H().nullable().optional(),queue:H().nullable().optional()})}),$k=Ne({type:ct("schema"),data:Ne({dialect:H().nullable().optional(),logicalDatabase:H().nullable().optional(),namespace:H().nullable().optional()})}),qk=Ne({type:ct("query"),data:Ne({dialect:H().nullable().optional(),operation:H().nullable().optional(),textDigest:H().nullable().optional()})}),Jk=Ne({type:ct("config"),data:Ne({format:H(),keyPath:H()})}),eR=Ne({type:ct("database"),data:Ne({logicalDatabase:H(),databaseSchema:H().nullable().optional()})}),tR=ec("type",[Vk,Uk,Yk,Hk,Kk,Wk,Qk,Xk,$k,qk,Jk,eR]),nR=Ne({type:ct("call"),data:Ne({dispatch:pt(["static","virtual","dynamic"]),receiverType:H().nullable().optional(),argumentCount:he().int().nonnegative().nullable().optional()})}),iR=Ne({type:ct("route"),data:Ne({stage:pt(["middleware","handler"]),position:he().int().nonnegative().nullable().optional(),operation:H().nullable().optional()})}),gR=Ne({type:ct("messaging"),data:Ne({transport:H(),subject:H()})}),oR=Ne({type:ct("schedule"),data:Ne({expression:H().nullable().optional()})}),sR=Ne({type:ct("mapping"),data:Ne({mappingKind:H()})}),zm=ec("type",[nR,iR,gR,oR,sR]),rR=Ne({maxDepth:he().int().positive(),maxNodes:he().int().positive(),maxEdges:he().int().positive(),maxPaths:he().int().positive(),maxCandidates:he().int().positive(),maxSourceBytes:he().int().positive(),maxResponseBytes:he().int().positive()}),aR=Ne({nodeId:H().min(1),score:he().finite(),matchedFields:Ve(H())}),AR=Ne({id:H().min(1),kind:jk,roles:Ve(Bk),name:H().min(1),qualifiedName:H().min(1),language:H().nullable(),framework:H().nullable(),source:kr.nullable(),details:tR.nullable(),evidence:Ve(FA)}),CR=Ne({id:H().min(1),source:H().min(1),target:H().min(1),kind:Zk,relationshipSite:kr.nullable(),details:zm.nullable(),evidence:Ve(FA)}),IR=Ne({path:ic,contentDigest:H().min(1),source:H().nullable(),truncated:Ln()}),lR=Ne({id:H().min(1),nodeIds:Ve(H().min(1)),edgeIds:Ve(H().min(1)),weakestResolution:oc,weakestConfidence:gc}),cR=Ne({code:pt(["no_match","ambiguous_match","direction_mismatch","unresolved_handler","incomplete_coverage","stale_source_digest","bounded_truncation","program_orphan","program_conflict","program_unavailable"]),message:H().min(1),nodeId:H().nullable(),path:ic.nullable()}),dR=Ne({schema:ct(Mk),operation:Pk,results:Ve(aR),nodes:Ve(AR),edges:Ve(CR),files:Ve(IR),paths:Ve(lR),diagnostics:Ve(cR),limits:rR,truncated:Ln()}),uR="compass.viewer.graph/1",sc=vt({file:H(),startLine:he().int().positive().optional(),endLine:he().int().positive().optional(),startByte:he().int().nonnegative().optional(),endByte:he().int().nonnegative().optional()}).passthrough(),hR=vt({field:H().min(1),before:uo().optional(),after:uo().optional()}),km=vt({before:tc(H(),uo()).optional(),after:tc(H(),uo()).optional(),fields:Ve(hR)}),fR=vt({id:H().min(1),label:H(),kind:H().optional(),community:he().int(),communityName:H().optional(),degree:he().int().nonnegative().optional(),language:H().optional(),signature:H().optional(),size:he().positive().optional(),memberCount:he().int().nonnegative().optional(),detailAvailable:Ln().optional(),learningStatus:H().optional(),learningStale:Ln().optional(),depth:he().int().nonnegative().optional(),root:Ln().optional(),change:pt(["added","removed","changed","unchanged"]).optional(),evidence:km.optional(),codeEvidence:Ve(FA).optional(),source:sc.optional(),color:vt({background:H(),border:H()}).passthrough().optional()}).passthrough(),pR=vt({id:H().min(1),source:H().min(1),target:H().min(1),relation:H(),weight:he().int().positive().optional(),change:pt(["added","removed","changed","unchanged"]).optional(),evidence:km.optional(),codeEvidence:Ve(FA).optional(),details:zm.nullable().optional(),relationshipSite:sc.optional(),confidence:pt(["extracted","inferred","ambiguous","aggregated"]).optional()}).passthrough(),mR=vt({id:he().int(),label:H(),color:H(),hidden:Ln().default(!1)}).passthrough(),bg=vt({schema:ct(uR),title:H(),stats:vt({nodes:he().int().nonnegative(),edges:he().int().nonnegative(),communities:he().int().nonnegative(),aggregated:Ln()}).passthrough(),nodes:Ve(fR),edges:Ve(pR),communities:Ve(mR),hyperedges:Ve(uo()).default([])}).passthrough(),vR=pt(["resolved","inferred","ambiguous","unresolved"]),Rm=vt({source_file:H(),start_byte:he().int().nonnegative(),end_byte:he().int().nonnegative()}),yR=vt({id:H(),symbol:H().nullable(),name:H(),file:H().nullable(),anchor:Rm.nullable().optional(),startLine:he().int().positive().nullable().optional(),endLine:he().int().positive().nullable().optional(),startByte:he().int().nonnegative().nullable().optional(),endByte:he().int().nonnegative().nullable().optional(),graphNodeId:H().nullable(),unresolved:Ln(),evidenceLayer:pt(["structural_graph","program_ir","combined"]).optional()}),bR=Em([vt({anchor:Rm,evidence:Ve(H())}),vt({sourceFile:H().nullable(),line:he().int().positive().nullable(),startByte:he().int().nonnegative().nullable(),endByte:he().int().nonnegative().nullable(),evidence:Ve(H())})]),wR=vt({id:H(),source:H(),target:H(),callee:H(),resolution:vR,confidence:H().nullable().optional(),callSites:Ve(bR),evidenceLayer:pt(["structural_graph","program_ir","combined"]).optional()}),xR=vt({schema:pt(["compass.program.call_graph/1","compass.call_graph/1"]),rootSymbol:H(),direction:pt(["callers","callees","both"]),depth:he().int().positive(),nodes:Ve(yR),edges:Ve(wR),truncated:Ln(),continuations:Ve(vt({symbol:H(),direction:pt(["callers","callees","both"]),nextDepth:he().int().positive()})),coverage:vt({resolved:he().int().nonnegative(),inferred:he().int().nonnegative(),ambiguous:he().int().nonnegative(),unresolved:he().int().nonnegative(),evidenceLayer:pt(["structural_graph","program_ir","combined"]).optional(),partial:Ln().optional(),limitations:Ve(H()).optional(),warning:H()})}),_m=pt(["extracted","inferred","ambiguous"]),ER=pt(["production","test","generated","vendor","unknown"]),SR=vt({schema:ct("compass.viewer.callflow/1"),title:H(),sections:Ve(vt({id:H(),name:H(),communities:Ve(H()),nodeCount:he().int().nonnegative(),internalCallCount:he().int().nonnegative(),nodes:Ve(vt({id:H(),label:H(),kind:H(),sourceFile:H().nullable(),scope:ER})),edges:Ve(vt({source:H(),target:H(),relation:H(),confidence:_m}))})),overviewLinks:Ve(vt({sourceSection:H(),targetSection:H(),calls:he().int().nonnegative()})),crossSectionCalls:Ve(vt({source:H(),target:H(),sourceSection:H(),targetSection:H(),relation:H(),confidence:_m})),coverage:vt({internal:he().int().nonnegative(),crossSection:he().int().nonnegative(),unassigned:he().int().nonnegative()}),reportHighlights:Ve(H()),statistics:vt({nodes:he().int().nonnegative(),edges:he().int().nonnegative(),communities:he().int().nonnegative(),hyperedges:he().int().nonnegative(),extracted:he().int().nonnegative(),inferred:he().int().nonnegative(),ambiguous:he().int().nonnegative()}),provenance:vt({projectName:H(),builtAtCommit:H().nullable(),generatedAt:H().nullable()})}),TR="compass.viewer.workbench/1",OR=Ne({status:pt(["complete","summary","partial"]),truncated:Ln(),nodes:he().int().nonnegative(),edges:he().int().nonnegative(),limitations:Ve(H()).default([])}),ho={id:H().min(1),title:H().min(1),description:H(),coverage:OR},NR=pt(["dependencies","routes","data","messaging","tests","provenance"]),DR=ec("kind",[Ne({...ho,kind:ct("code"),model:bg,communityDetails:tc(H(),bg).default({})}),Ne({...ho,kind:ct("call"),root:H(),graph:xR}),Ne({...ho,kind:ct("impact"),root:H(),result:dR}),Ne({...ho,kind:ct("architecture"),model:SR}),Ne({...ho,kind:ct("history"),baseRevision:H(),targetRevision:H(),before:bg,after:bg}),Ne({...ho,kind:ct("affected"),root:H(),relations:Ve(H()),depth:he().int().nonnegative(),model:bg}),Ne({...ho,kind:ct("artifact"),lens:NR,relations:Ve(H()),model:bg})]),MR=Ne({schema:ct(TR),title:H(),graphIdentity:H().min(1),defaultView:H(),views:Ve(DR).min(1)}).superRefine((n,e)=>{const t=new Set;for(const[i,o]of n.views.entries())t.has(o.id)&&e.addIssue({code:"custom",path:["views",i,"id"],message:`duplicate workbench view id '${o.id}'`}),t.add(o.id);t.has(n.defaultView)||e.addIssue({code:"custom",path:["defaultView"],message:"defaultView must identify one included view"})});var F=Gl();const zR=LO({__proto__:null,default:GO(F)},[F]);const kR=n=>n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),RR=n=>n.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,i)=>i?i.toUpperCase():t.toLowerCase()),jm=n=>{const e=RR(n);return e.charAt(0).toUpperCase()+e.slice(1)},Zm=(...n)=>n.filter((e,t,i)=>!!e&&e.trim()!==""&&i.indexOf(e)===t).join(" ").trim(),_R=n=>{for(const e in n)if(e.startsWith("aria-")||e==="role"||e==="title")return!0};var jR={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const ZR=F.forwardRef(({color:n="currentColor",size:e=24,strokeWidth:t=2,absoluteStrokeWidth:i,className:o="",children:r,iconNode:A,...I},l)=>F.createElement("svg",{ref:l,...jR,width:e,height:e,stroke:n,strokeWidth:i?Number(t)*24/Number(e):t,className:Zm("lucide",o),...!r&&!_R(I)&&{"aria-hidden":"true"},...I},[...A.map(([c,h])=>F.createElement(c,h)),...Array.isArray(r)?r:[r]]));const Pe=(n,e)=>{const t=F.forwardRef(({className:i,...o},r)=>F.createElement(ZR,{ref:r,iconNode:e,className:Zm(`lucide-${kR(jm(n))}`,`lucide-${n}`,i),...o}));return t.displayName=jm(n),t};const BR=Pe("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);const PR=Pe("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);const LR=Pe("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);const GR=Pe("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);const FR=Pe("badge-check",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);const VR=Pe("boxes",[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]]);const UR=Pe("braces",[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]]);const YR=Pe("circle-dot-dashed",[["path",{d:"M10.1 2.18a9.93 9.93 0 0 1 3.8 0",key:"1qdqn0"}],["path",{d:"M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7",key:"1bq7p6"}],["path",{d:"M21.82 10.1a9.93 9.93 0 0 1 0 3.8",key:"1rlaqf"}],["path",{d:"M20.29 17.6a9.95 9.95 0 0 1-2.7 2.69",key:"1xk03u"}],["path",{d:"M13.9 21.82a9.94 9.94 0 0 1-3.8 0",key:"l7re25"}],["path",{d:"M6.4 20.29a9.95 9.95 0 0 1-2.69-2.7",key:"1v18p6"}],["path",{d:"M2.18 13.9a9.93 9.93 0 0 1 0-3.8",key:"xdo6bj"}],["path",{d:"M3.71 6.4a9.95 9.95 0 0 1 2.7-2.69",key:"1jjmaz"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]);const Bm=Pe("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);const HR=Pe("compass",[["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);const VA=Pe("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);const KR=Pe("file-code-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m5 12-3 3 3 3",key:"oke12k"}],["path",{d:"m9 18 3-3-3-3",key:"112psh"}]]);const WR=Pe("file-cog",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m2.305 15.53.923-.382",key:"yfp9st"}],["path",{d:"m3.228 12.852-.924-.383",key:"bckynb"}],["path",{d:"M4.677 21.5a2 2 0 0 0 1.313.5H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v2.5",key:"1yo3oz"}],["path",{d:"m4.852 11.228-.383-.923",key:"1j88i9"}],["path",{d:"m4.852 16.772-.383.924",key:"sag1dv"}],["path",{d:"m7.148 11.228.383-.923",key:"rj39hk"}],["path",{d:"m7.53 17.696-.382-.924",key:"1uu5cs"}],["path",{d:"m8.772 12.852.923-.383",key:"13811l"}],["path",{d:"m8.772 15.148.923.383",key:"z1a5l0"}],["circle",{cx:"6",cy:"14",r:"3",key:"a1xfv6"}]]);const QR=Pe("focus",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]]);const Pm=Pe("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);const Lm=Pe("git-compare-arrows",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v7",key:"1yj91y"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["circle",{cx:"19",cy:"18",r:"3",key:"1qljk2"}],["path",{d:"M12 18H7a2 2 0 0 1-2-2V9",key:"16sdep"}],["path",{d:"m9 15 3 3-3 3",key:"1m3kbl"}]]);const rc=Pe("git-fork",[["circle",{cx:"12",cy:"18",r:"3",key:"1mpf1b"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["path",{d:"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9",key:"1uq4wg"}],["path",{d:"M12 12v3",key:"158kv8"}]]);const XR=Pe("keyboard",[["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M7 16h10",key:"wp8him"}],["path",{d:"M8 12h.01",key:"czm47f"}],["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}]]);const $R=Pe("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);const qR=Pe("map",[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]);const Gm=Pe("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]);const JR=Pe("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);const e3=Pe("move",[["path",{d:"M12 2v20",key:"t6zp3m"}],["path",{d:"m15 19-3 3-3-3",key:"11eu04"}],["path",{d:"m19 9 3 3-3 3",key:"1mg7y2"}],["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"m5 9-3 3 3 3",key:"j64kie"}],["path",{d:"m9 5 3-3 3 3",key:"l8vdw6"}]]);const ac=Pe("network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);const t3=Pe("panel-right-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m8 9 3 3-3 3",key:"12hl5m"}]]);const n3=Pe("panel-right-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m10 15-3-3 3-3",key:"1pgupc"}]]);const Fm=Pe("pause",[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]]);const i3=Pe("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);const Vm=Pe("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);const Um=Pe("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);const Ym=Pe("route",[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]]);const Hm=Pe("scan-search",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"m16 16-1.9-1.9",key:"1dq9hf"}]]);const g3=Pe("search-code",[["path",{d:"m13 13.5 2-2.5-2-2.5",key:"1rvxrh"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}],["path",{d:"M9 8.5 7 11l2 2.5",key:"6ffwbx"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);const Km=Pe("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);const o3=Pe("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);const s3=Pe("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);const r3=Pe("signpost",[["path",{d:"M12 13v8",key:"1l5pq0"}],["path",{d:"M12 3v3",key:"1n5kay"}],["path",{d:"M18 6a2 2 0 0 1 1.387.56l2.307 2.22a1 1 0 0 1 0 1.44l-2.307 2.22A2 2 0 0 1 18 13H6a2 2 0 0 1-1.387-.56l-2.306-2.22a1 1 0 0 1 0-1.44l2.306-2.22A2 2 0 0 1 6 6z",key:"gqqp9m"}]]);const a3=Pe("sliders-horizontal",[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]);const A3=Pe("tags",[["path",{d:"M13.172 2a2 2 0 0 1 1.414.586l6.71 6.71a2.4 2.4 0 0 1 0 3.408l-4.592 4.592a2.4 2.4 0 0 1-3.408 0l-6.71-6.71A2 2 0 0 1 6 9.172V3a1 1 0 0 1 1-1z",key:"16rjxf"}],["path",{d:"M2 7v6.172a2 2 0 0 0 .586 1.414l6.71 6.71a2.4 2.4 0 0 0 3.191.193",key:"178nd4"}],["circle",{cx:"10.5",cy:"6.5",r:".5",fill:"currentColor",key:"12ikhr"}]]);const UA=Pe("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);const C3=Pe("waypoints",[["circle",{cx:"12",cy:"4.5",r:"2.5",key:"r5ysbb"}],["path",{d:"m10.2 6.3-3.9 3.9",key:"1nzqf6"}],["circle",{cx:"4.5",cy:"12",r:"2.5",key:"jydg6v"}],["path",{d:"M7 12h10",key:"b7w52i"}],["circle",{cx:"19.5",cy:"12",r:"2.5",key:"1piiel"}],["path",{d:"m13.8 17.7 3.9-3.9",key:"1wyg1y"}],["circle",{cx:"12",cy:"19.5",r:"2.5",key:"13o1pw"}]]);const I3=Pe("zoom-in",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]);const l3=Pe("zoom-out",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]),Wm=new Set(["color","change","evidence"]),c3=new Set(["anchor","anchors","columnEnd","columnStart","community","communityName","community_name","degree","endByte","endColumn","endLine","lineEnd","lineStart","line_end","line_start","location","normLabel","norm_label","relationshipSite","relationship_site","size","sourceDigest","sourceFile","sourceHash","source_digest","source_file","source_hash","startByte","startColumn","startLine","wiringSite","wiring_site"]);function YA(n,e){const t=HA(n),i=HA(e);return{...t?{before:t}:{},...i?{after:i}:{},fields:Cc(t,i)}}function Qm(n,e,t){const i=HA(n),o=HA(e),r=Ac(n,t),A=Ac(e,t);return{...i?{before:i}:{},...o?{after:o}:{},fields:Cc(r,A)}}function d3(n,e){return Ac(n,e)??{}}function u3(n,e=240){const t=n===void 0?"Not recorded":typeof n=="string"?n:JSON.stringify(n,null,Rr(n)?2:void 0)??String(n);return t.length<=e?{text:t,truncated:!1}:{text:`${t.slice(0,Math.max(0,e-1)).trimEnd()}…`,truncated:!0}}function HA(n){if(n)return qm(n)}function Ac(n,e){return n?$m(n,e==="node"?new Set(["source"]):new Set(["id","key"])):void 0}function Xm(n){return Array.isArray(n)?n.map(Xm):Rr(n)?$m(n):n}function $m(n,e=new Set){return Object.fromEntries(Object.keys(n).filter(t=>!Wm.has(t)&&!c3.has(t)&&!e.has(t)).sort((t,i)=>t.localeCompare(i)).map(t=>[t,Xm(n[t])]))}function KA(n){return Array.isArray(n)?n.map(KA):Rr(n)?qm(n):n}function qm(n){return Object.fromEntries(Object.keys(n).filter(e=>!Wm.has(e)).sort((e,t)=>e.localeCompare(t)).map(e=>[e,KA(n[e])]))}function Cc(n,e,t=""){const i=new Set([...Object.keys(n??{}),...Object.keys(e??{})]),o=[];for(const r of[...i].sort((A,I)=>A.localeCompare(I))){const A=t?`${t}.${r}`:r,I=n?.[r],l=e?.[r];Rr(I)&&Rr(l)?o.push(...Cc(I,l,A)):h3(I,l)||o.push({field:A,...I!==void 0?{before:I}:{},...l!==void 0?{after:l}:{}})}return o}function h3(n,e){return JSON.stringify(KA(n))===JSON.stringify(KA(e))}function Rr(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function f3({node:n,edges:e,nodes:t,sourceRevisions:i,onFocus:o,onOpenSource:r}){const A=tv(n.evidence?.before),I=tv(n.evidence?.after);return f.jsxs(f.Fragment,{children:[n.evidence?.fields.length?f.jsxs("section",{className:"compass-record-evidence","aria-labelledby":"compass-node-changes-title",children:[f.jsxs("div",{className:"compass-evidence-heading",children:[f.jsx("h3",{id:"compass-node-changes-title",children:p3(n.change)}),f.jsxs("span",{children:[n.evidence.fields.length," fields"]})]}),f.jsx(Jm,{fields:n.evidence.fields}),n.change==="changed"&&(A||I)&&f.jsxs("div",{className:"compass-evidence-source-actions",children:[A&&f.jsxs("button",{type:"button",onClick:()=>r(A,i?.before),children:[f.jsx(VA,{"aria-hidden":"true"}),"Open before"]}),I&&f.jsxs("button",{type:"button",onClick:()=>r(I,i?.after),children:[f.jsx(VA,{"aria-hidden":"true"}),"Open after"]})]})]}):null,f.jsxs("section",{className:"compass-relationship-evidence","aria-labelledby":"compass-relationships-title",children:[f.jsxs("div",{className:"compass-neighbors-heading",children:[f.jsx("span",{id:"compass-relationships-title",children:"Relationships"}),f.jsx("strong",{children:e.length})]}),e.length?f.jsx("div",{className:"compass-relationship-list",children:e.map(l=>{const c=l.source===n.id?l.target:l.source,h=t.get(c);return f.jsxs("details",{children:[f.jsxs("summary",{children:[f.jsx("span",{className:"compass-change-badge","data-change":l.change,children:nv(l.change)}),f.jsx("span",{className:"compass-relationship-target",children:h?.label??c}),f.jsx("small",{children:l.relation}),l.confidence&&f.jsx("i",{children:l.confidence})]}),f.jsxs("div",{className:"compass-relationship-detail",children:[l.change==="changed"&&l.evidence?.fields.length?f.jsx(Jm,{fields:l.evidence.fields}):f.jsxs("p",{children:[nv(l.change)," relationship: ",l.source," → ",l.target]}),f.jsxs("button",{type:"button",onClick:()=>o(c),children:["Focus ",h?.label??c]})]})]},l.id)})}):f.jsx("span",{className:"compass-empty",children:"No connected relationships"})]})]})}function Jm({fields:n}){return f.jsx("div",{className:"compass-field-table-wrap",children:f.jsxs("table",{className:"compass-field-table",children:[f.jsx("thead",{children:f.jsxs("tr",{children:[f.jsx("th",{children:"Field"}),f.jsx("th",{children:"Before"}),f.jsx("th",{children:"After"})]})}),f.jsx("tbody",{children:n.map(e=>f.jsxs("tr",{children:[f.jsx("th",{scope:"row",children:e.field}),f.jsx(ev,{value:e.before}),f.jsx(ev,{value:e.after})]},e.field))})]})})}function ev({value:n}){const e=u3(n);return f.jsxs("td",{children:[f.jsx("code",{children:e.text}),e.truncated&&f.jsx("span",{className:"compass-value-truncated",children:"Value shortened"})]})}function tv(n){const e=sc.safeParse(n?.source);return e.success?e.data:void 0}function nv(n){return!n||n==="unchanged"?"Context":`${n[0]?.toLocaleUpperCase()}${n.slice(1)}`}function p3(n){return n==="added"?"Added symbol metadata":n==="removed"?"Removed symbol metadata":"What changed"}const iv=100,gv={changed:0,added:1,removed:2,unchanged:3};function m3({nodes:n,query:e,selectedId:t,onFocus:i}){const[o,r]=F.useState(!1),A=e.trim().toLocaleLowerCase(),I=n.filter(c=>c.change&&c.change!=="unchanged").filter(c=>!A||c.label.toLocaleLowerCase().includes(A)||c.kind?.toLocaleLowerCase().includes(A)||c.source?.file.toLocaleLowerCase().includes(A)).sort((c,h)=>gv[c.change??"unchanged"]-gv[h.change??"unchanged"]||c.label.localeCompare(h.label)||c.id.localeCompare(h.id)),l=o?I:I.slice(0,iv);return f.jsxs("section",{className:"compass-changed-symbols","aria-labelledby":"compass-changed-symbols-title",children:[f.jsxs("div",{className:"compass-section-heading",children:[f.jsx("h2",{id:"compass-changed-symbols-title",children:"Changed symbols"}),f.jsx("span",{children:I.length})]}),l.length?f.jsx("div",{className:"compass-changed-symbol-list",children:l.map(c=>f.jsxs("button",{type:"button","aria-pressed":c.id===t,"data-change":c.change,onClick:()=>i(c.id),children:[f.jsx("span",{className:"compass-changed-symbol-status",children:v3(c.change)}),f.jsx("strong",{children:c.label}),f.jsx("small",{children:c.source?.file??c.kind??"Graph symbol"})]},c.id))}):f.jsx("p",{className:"compass-empty",children:A?"No affected symbols match this search.":"No symbol changes."}),!o&&I.length>iv&&f.jsxs("button",{className:"compass-changed-symbol-expand",type:"button",onClick:()=>r(!0),children:["Show all ",I.length.toLocaleString()," affected symbols"]})]})}function v3(n){return!n||n==="unchanged"?"Context":`${n[0]?.toLocaleUpperCase()}${n.slice(1)}`}function ov({evidence:n,diagnostics:e=[],truncated:t=!1,title:i="Trust evidence",onOpenSource:o}){return!n.length&&!e.length&&!t?null:f.jsxs("section",{className:"compass-code-evidence","aria-label":i,children:[f.jsxs("div",{className:"compass-evidence-heading",children:[f.jsx("h3",{children:i}),f.jsxs("span",{children:[n.length," ",n.length===1?"record":"records"]})]}),t&&f.jsxs("p",{className:"compass-code-diagnostic","data-severity":"warning",role:"status",children:[f.jsx(UA,{"aria-hidden":"true"}),"Results reached a configured limit. Narrow the query or raise one bound."]}),e.map(r=>f.jsxs("p",{className:"compass-code-diagnostic","data-severity":r.code==="no_match"?"info":"warning",role:"status",children:[r.code==="no_match"?f.jsx(Bm,{"aria-hidden":"true"}):f.jsx(UA,{"aria-hidden":"true"}),f.jsxs("span",{children:[f.jsx("strong",{children:w3(r.code)}),r.message]})]},`${r.code}:${r.message}`)),f.jsx("div",{className:"compass-code-evidence-ledger",children:n.map((r,A)=>{const I=b3(r),l=r.wiringSite??r.anchor;return f.jsxs("article",{className:"compass-code-evidence-entry","data-status":I.key,children:[f.jsx("span",{className:"compass-code-evidence-icon","aria-hidden":"true",children:f.jsx(y3,{item:r})}),f.jsxs("div",{className:"compass-code-evidence-copy",children:[f.jsxs("div",{className:"compass-code-evidence-status",children:[f.jsx("strong",{children:I.label}),f.jsx("span",{children:r.layer==="program_ir"?"Program IR":"Code graph"})]}),f.jsxs("dl",{children:[f.jsxs("div",{children:[f.jsx("dt",{children:"Extractor"}),f.jsx("dd",{children:r.extractor})]}),f.jsxs("div",{children:[f.jsx("dt",{children:"Confidence"}),f.jsx("dd",{children:r.confidence})]}),r.rule&&f.jsxs("div",{children:[f.jsx("dt",{children:"Rule"}),f.jsx("dd",{children:r.rule})]})]}),l&&(o?f.jsxs("button",{className:"compass-code-evidence-source",type:"button",onClick:()=>o(l),children:[f.jsx(VA,{"aria-hidden":"true"}),sv(r,l)]}):f.jsx("span",{className:"compass-code-evidence-source",children:sv(r,l)})),r.candidates.length>0&&f.jsxs("div",{className:"compass-code-candidates",children:[f.jsx("span",{children:"Retained candidates"}),f.jsx("ul",{children:r.candidates.map(c=>f.jsxs("li",{children:[f.jsx("code",{children:c.nodeId}),f.jsx("span",{children:c.reason}),f.jsx("small",{children:c.confidence})]},`${c.nodeId}:${c.reason}`))})]})]})]},`${r.layer}:${r.extractor}:${A}`)})})]})}function y3({item:n}){return n.resolution==="unresolved"?f.jsx(Bm,{}):n.resolution==="ambiguous"||n.confidence==="ambiguous"?f.jsx(UA,{}):n.origin==="heuristic"?f.jsx(rc,{}):n.origin==="config"?f.jsx(WR,{}):n.origin==="convention"?f.jsx(r3,{}):f.jsx(FR,{})}function b3(n){return n.resolution==="unresolved"?{key:"unresolved",label:"Unresolved"}:n.resolution==="ambiguous"||n.confidence==="ambiguous"?{key:"ambiguous",label:"Ambiguous"}:n.origin==="heuristic"?{key:"heuristic",label:"Heuristic"}:n.origin==="config"?{key:"config",label:"Configuration"}:n.origin==="convention"?{key:"convention",label:"Convention"}:{key:"exact",label:"Exact"}}function sv(n,e){return`${n.origin==="heuristic"?"Wired at":"Evidence at"} ${e.file}:${e.startLine}`}function w3(n){return`${n.replaceAll("_"," ")}: `}function rv(n){return Av(n.source)}function av(n){return Av(n.relationshipSite)}function Av(n){return n?.file.trim()&&(n.startLine!==void 0||n.endLine!==void 0||n.startByte!==void 0||n.endByte!==void 0)?n:void 0}const Cv=200;function x3(n,e){const t=e.trim().toLocaleLowerCase();return(t?n.filter(o=>o.label.toLocaleLowerCase().includes(t)||String(o.id).includes(t)):n).slice(0,Cv)}function E3(n){const e=n.source?.startLine,t=n.source?.endLine;if(e!==void 0)return t!==void 0&&t!==e?`${e}–${t}`:String(e)}function Iv(n){const e=n.source?.startLine,t=n.source?.endLine;if(e!==void 0)return t!==void 0&&t!==e?{text:`Lines ${e}–${t}`,action:`at lines ${e}–${t}`}:{text:`Line ${e}`,action:`at line ${e}`};const i=n.source?.startByte,o=n.source?.endByte;if(i!==void 0)return o!==void 0&&o!==i?{text:`Bytes ${i}–${o}`,action:`at bytes ${i}–${o}`}:{text:`Byte ${i}`,action:`at byte ${i}`}}function lv(n,e){const t=Iv(n);return`Open source ${e.file}${t?` ${t.action}`:""}`}function cv(n){return n==="unchanged"?"Context":n?`${n[0]?.toLocaleUpperCase()}${n.slice(1)}`:void 0}function S3(n){if(n)return{added:"var(--vscode-gitDecoration-addedResourceForeground, #2ea043)",removed:"var(--vscode-gitDecoration-deletedResourceForeground, #f85149)",changed:"var(--vscode-gitDecoration-modifiedResourceForeground, #d29922)",unchanged:"var(--vscode-descriptionForeground, #6e7781)"}[n]}function T3({model:n,selected:e,neighbors:t,connectedEdges:i,query:o,matches:r,hiddenCommunities:A,comparisonMode:I,sourceRevisions:l,queryResult:c,renderedEdgeCount:h,onQueryChange:p,onFocus:m,onOpenSource:y,onOpenCommunity:w,onQueryNode:S,onToggleCommunity:x,onSetAllVisible:E,collapsed:N,onToggleCollapsed:P}){const[B,W]=F.useState(0),ne=e?rv(e):void 0,_=e?E3(e):void 0,Y=e?Iv(e):void 0,Ce=F.useMemo(()=>{const k=new Map;for(const ee of n.nodes)k.set(ee.community,(k.get(ee.community)??0)+1);return k},[n.nodes]),Ee=A.size===0,_e=F.useMemo(()=>new Map(n.nodes.map(k=>[k.id,k])),[n.nodes]),et=(e?c?.nodes.find(k=>k.id===e.id):void 0)?.evidence??e?.codeEvidence??[],Te=e?c?c.edges.filter(k=>k.source===e.id||k.target===e.id).flatMap(k=>k.evidence):i.flatMap(k=>k.codeEvidence??[]):[],ae=k=>{m(k.id),p(""),W(0)},M=k=>{!r.length&&k.key!=="Escape"||(k.key==="ArrowDown"?(k.preventDefault(),W((B+1)%r.length)):k.key==="ArrowUp"?(k.preventDefault(),W((B-1+r.length)%r.length)):k.key==="Enter"&&r[B]?(k.preventDefault(),ae(r[B])):k.key==="Escape"&&(p(""),W(0)))};return N?f.jsxs("aside",{className:"compass-graph-inspector compass-graph-inspector-collapsed","aria-label":"Graph inspector",children:[f.jsx("button",{className:"compass-inspector-disclosure compass-inspector-expand",type:"button","aria-label":"Expand graph inspector",title:"Expand graph inspector",onClick:P,children:f.jsx(n3,{"aria-hidden":"true"})}),f.jsx("span",{className:"compass-inspector-rail-label","aria-hidden":"true",children:"Inspector"})]}):f.jsxs("aside",{className:"compass-graph-inspector","aria-label":"Graph inspector",children:[f.jsxs("header",{className:"compass-inspector-header",children:[f.jsx("span",{className:"compass-product-mark","aria-hidden":"true",children:f.jsx(HR,{})}),f.jsxs("span",{className:"compass-inspector-title",children:[f.jsx("strong",{children:"Compass"}),f.jsx("small",{children:n.title})]}),f.jsx("button",{className:"compass-inspector-disclosure",type:"button","aria-label":"Collapse graph inspector",title:"Collapse graph inspector",onClick:P,children:f.jsx(t3,{"aria-hidden":"true"})})]}),f.jsxs("div",{className:"compass-inspector-search",role:"search",children:[f.jsx("label",{className:"sr-only",htmlFor:"compass-node-search",children:"Search graph nodes"}),f.jsxs("div",{className:"compass-search-field",children:[f.jsx(Km,{"aria-hidden":"true"}),f.jsx("input",{id:"compass-node-search",type:"search",role:"combobox",value:o,placeholder:"Search nodes and files",autoComplete:"off","aria-controls":"compass-search-results","aria-autocomplete":"list","aria-expanded":r.length>0,"aria-activedescendant":r[B]?`compass-search-result-${B}`:void 0,onChange:k=>{p(k.target.value),W(0)},onKeyDown:M})]}),r.length>0&&f.jsx("div",{id:"compass-search-results",className:"compass-search-results",role:"listbox","aria-label":"Matching nodes",children:r.map((k,ee)=>f.jsxs("button",{id:`compass-search-result-${ee}`,type:"button",role:"option","aria-selected":ee===B,className:"compass-search-item",onMouseEnter:()=>W(ee),onClick:()=>ae(k),children:[f.jsx("strong",{children:k.label}),f.jsx("span",{children:k.source?.file??k.kind??"Graph node"})]},k.id))})]}),f.jsxs("section",{className:"compass-info-panel","aria-labelledby":"compass-info-title",children:[f.jsxs("div",{className:"compass-section-heading",children:[f.jsx("h2",{id:"compass-info-title",children:"Inspector"}),f.jsx("span",{children:e?"Pinned":"Node details"})]}),e?f.jsxs("div",{className:"compass-info-content",children:[f.jsxs("div",{className:"compass-node-identity",children:[f.jsx("span",{className:"compass-node-swatch","aria-hidden":"true",style:{background:S3(e.change)??e.color?.background??n.communities.find(k=>k.id===e.community)?.color}}),f.jsxs("span",{children:[f.jsx("strong",{children:e.label}),f.jsx("small",{children:e.kind??"Symbol"})]}),cv(e.change)&&f.jsx("span",{className:"compass-change-badge","data-change":e.change,children:cv(e.change)})]}),f.jsxs("dl",{className:"compass-metadata-grid",children:[f.jsxs("div",{children:[f.jsx("dt",{children:"Community"}),f.jsx("dd",{children:e.communityName??n.communities.find(k=>k.id===e.community)?.label??e.community})]}),f.jsxs("div",{children:[f.jsx("dt",{children:"Degree"}),f.jsx("dd",{children:e.degree??t.length})]}),e.language&&f.jsxs("div",{children:[f.jsx("dt",{children:"Language"}),f.jsx("dd",{children:e.language})]}),_&&f.jsxs("div",{children:[f.jsx("dt",{children:"Lines"}),f.jsx("dd",{children:_})]}),f.jsx("div",{className:"compass-metadata-wide compass-source-metadata","data-interactive":ne!==void 0,children:ne?f.jsxs(f.Fragment,{children:[f.jsx("dt",{className:"sr-only",children:"Source"}),f.jsx("dd",{children:f.jsxs("button",{className:"compass-source-card",type:"button","aria-label":lv(e,ne),title:lv(e,ne),onClick:()=>y(ne,e.change==="removed"?l?.before:l?.after),children:[f.jsxs("span",{className:"compass-source-copy",children:[f.jsx("span",{className:"compass-source-eyebrow","aria-hidden":"true",children:"Source"}),f.jsx("span",{className:"compass-source-path",children:ne.file}),Y&&f.jsx("span",{className:"compass-source-range",children:Y.text})]}),f.jsx(VA,{"aria-hidden":"true"})]})})]}):f.jsxs(f.Fragment,{children:[f.jsx("dt",{children:"Source"}),f.jsx("dd",{title:e.source?.file??"Not recorded",children:e.source?.file??"Not recorded"})]})})]}),e.signature&&f.jsx("code",{className:"compass-signature-block",children:e.signature}),S&&f.jsxs("div",{className:"compass-code-query-actions","aria-label":"Code graph queries",children:[f.jsx("button",{type:"button",onClick:()=>S("callers",e.id),children:"Callers"}),f.jsx("button",{type:"button",onClick:()=>S("callees",e.id),children:"Callees"}),f.jsx("button",{type:"button",onClick:()=>S("impact",e.id),children:"Impact"})]}),f.jsx(ov,{evidence:et,diagnostics:c?.diagnostics,truncated:c?.truncated,title:"Node evidence",onOpenSource:y}),f.jsx(ov,{evidence:Te,title:"Relationship evidence",onOpenSource:y}),n.stats.aggregated&&e.memberCount!==void 0&&e.detailAvailable!==!1&&w&&f.jsxs("button",{className:"compass-inspector-action",type:"button",onClick:()=>w(e.community),children:[I?"Inspect changes":"Open community",f.jsxs("span",{children:[e.memberCount.toLocaleString()," ",I?"current symbols":"members"]})]}),n.stats.aggregated&&e.memberCount!==void 0&&e.detailAvailable===!1&&f.jsx("p",{className:"compass-empty",children:"This community detail was omitted to keep the standalone HTML export bounded. Open the graph in VS Code or export this community as JSON for full inspection."}),I?f.jsx(f3,{node:e,edges:i,nodes:_e,sourceRevisions:l,onFocus:m,onOpenSource:y}):f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"compass-neighbors-heading",children:[f.jsx("span",{children:"Connected nodes"}),f.jsx("strong",{children:t.length})]}),f.jsx("div",{className:"compass-neighbors-list",children:t.length?t.map(k=>f.jsxs("button",{type:"button",className:"compass-neighbor-link",title:k.label,onClick:()=>m(k.id),children:[f.jsx("span",{className:"compass-neighbor-dot","aria-hidden":"true",style:{background:k.color?.background??n.communities.find(ee=>ee.id===k.community)?.color??"var(--border)"}}),f.jsx("span",{className:"compass-neighbor-label",children:k.label})]},k.id)):f.jsx("span",{className:"compass-empty",children:"No connected nodes"})})]})]}):f.jsx("p",{className:"compass-empty",children:"Select a node to inspect its relationships."})]}),I&&!n.stats.aggregated&&f.jsx(m3,{nodes:n.nodes,query:o,selectedId:e?.id,onFocus:m}),f.jsx("section",{className:"compass-community-panel","aria-labelledby":"compass-communities-title","data-secondary":I,children:I?f.jsxs("details",{children:[f.jsxs("summary",{id:"compass-communities-title",children:["Communities",f.jsx("span",{children:n.communities.length})]}),f.jsx(dv,{model:n,communityCounts:Ce,hiddenCommunities:A,allVisible:Ee,onSetAllVisible:E,onToggleCommunity:x})]}):f.jsxs(f.Fragment,{children:[f.jsx("h2",{id:"compass-communities-title",children:"Communities"}),f.jsx(dv,{model:n,communityCounts:Ce,hiddenCommunities:A,allVisible:Ee,onSetAllVisible:E,onToggleCommunity:x})]})}),f.jsxs("footer",{className:"compass-graph-stats",children:[n.stats.nodes.toLocaleString()," nodes · ",n.stats.edges.toLocaleString()," edges",hx3(n.communities,A),[n.communities,A]),c=F.useMemo(()=>{const h=A.trim().toLocaleLowerCase();return h?n.communities.filter(p=>p.label.toLocaleLowerCase().includes(h)||String(p.id).includes(h)).length:n.communities.length},[n.communities,A]);return f.jsxs("div",{className:"compass-community-controls",children:[f.jsxs("label",{className:"compass-community-control",children:[f.jsx("input",{type:"checkbox",checked:i,onChange:h=>o(h.target.checked)}),f.jsx("span",{children:"Select all"})]}),n.communities.length>Cv&&f.jsxs("label",{className:"compass-community-search",children:[f.jsx("span",{className:"sr-only",children:"Filter communities"}),f.jsx(Km,{"aria-hidden":"true"}),f.jsx("input",{type:"search",value:A,placeholder:"Filter communities",onChange:h=>I(h.target.value)})]}),f.jsx("div",{className:"compass-community-list",children:l.map(h=>{const p=!t.has(h.id);return f.jsxs("label",{className:"compass-community-item","data-hidden":!p,children:[f.jsx("input",{type:"checkbox",checked:p,onChange:()=>r(h.id)}),f.jsx("span",{className:"compass-community-dot","aria-hidden":"true",style:{background:h.color}}),f.jsx("span",{className:"compass-community-label",children:h.label}),f.jsx("small",{children:e.get(h.id)??0})]},h.id)})}),c>l.length&&f.jsxs("p",{className:"compass-community-limit",role:"status",children:["Showing ",l.length.toLocaleString()," of"," ",c.toLocaleString()," communities. Filter to find another community."]})]})}function O3({className:n="compass-load-logo"}){return f.jsx("svg",{className:n,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:f.jsx("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M3.554 21.529c1.797 1.221 4.943-.038 11.236-2.554 1.342-.537 2.013-.806 2.54-1.267q.201-.177.378-.378c.461-.527.73-1.198 1.267-2.54 2.515-6.293 3.775-9.44 2.554-11.236a4.1 4.1 0 0 0-1.083-1.083c-1.797-1.221-4.944.037-11.236 2.554-1.342.537-2.013.806-2.54 1.267q-.201.177-.378.378c-.461.527-.73 1.198-1.267 2.54-2.517 6.292-3.775 9.439-2.554 11.236.29.426.657.793 1.083 1.083M8.25 12a3.75 3.75 0 1 1 7.5 0 3.75 3.75 0 0 1-7.5 0m1.5 0a2.25 2.25 0 1 1 4.5 0 2.25 2.25 0 0 1-4.5 0"})})}const N3=1e4;function uv(n){const[e,t]=F.useState(!1);F.useEffect(()=>{if(n.kind!=="layout"){t(!1);return}const A=window.setTimeout(()=>{t(!0)},N3);return()=>window.clearTimeout(A)},[n.kind]);const i=n.kind==="community",o=i?`Opening ${n.communityLabel}`:e?"Still arranging this graph":"Arranging graph layout",r=i?"Fetching symbols and relationships for this community.":e?"This graph is taking longer than expected. You can open the current layout now.":"Positioning nodes and relationships for a readable first view.";return f.jsxs("section",{className:"compass-graph-transition","data-kind":n.kind,role:"status","aria-live":"polite","aria-atomic":"true",children:[f.jsxs("div",{className:"compass-load-visual","data-state":"loading","aria-hidden":"true",children:[f.jsx("span",{className:"compass-load-mark",children:f.jsx(O3,{})}),f.jsx("span",{className:"compass-load-progress",children:f.jsx("i",{})})]}),f.jsxs("div",{className:"compass-load-copy",children:[f.jsx("span",{className:"compass-load-eyebrow",children:"Compass graph"}),f.jsx("h1",{children:o}),f.jsx("p",{className:"compass-graph-transition-description",children:r}),!i&&e&&f.jsx("div",{className:"compass-load-actions",children:f.jsx("button",{className:"compass-load-action compass-load-action-primary",type:"button",onClick:n.onShowGraph,children:"Show graph now"})})]})]})}function D3(n){return n instanceof HTMLElement&&(n.isContentEditable||n.tagName==="INPUT"||n.tagName==="TEXTAREA"||n.tagName==="SELECT")}function M3({status:n,physicsRunning:e,layoutStyle:t,forceLabels:i,showEdgeLabels:o,hasSelection:r,isolateSelection:A,neighborhoodDepth:I,edgeDirection:l,layoutSpacing:c,showMinimap:h,leadingControls:p,leadingPanel:m,leadingPanelOpen:y,onLeadingPanelClose:w,onTogglePhysics:S,onLayoutChange:x,onZoomOut:E,onResetZoom:N,onZoomIn:P,onFit:B,onFitSelection:W,onReset:ne,onToggleLabels:_,onToggleEdgeLabels:Y,onToggleIsolation:Ce,onNeighborhoodDepthChange:Ee,onEdgeDirectionChange:_e,onLayoutSpacingChange:De,onToggleMinimap:et,onBack:Te}){const[ae,M]=F.useState(!1),k=F.useId(),ee=F.useRef(null),Ie=F.useRef(null),J=F.useRef(!1);return F.useEffect(()=>{y&&M(!1)},[y]),F.useEffect(()=>{ae||!J.current||(J.current=!1,Ie.current?.focus())},[ae]),F.useEffect(()=>{const T=te=>{if(te.key==="Escape"){ae&&(J.current=!0,M(!1));return}te.key!=="?"||D3(te.target)||(te.preventDefault(),w?.(),M(!0))},L=te=>{ee.current?.contains(te.target)||M(!1)};return document.addEventListener("keydown",T),document.addEventListener("pointerdown",L),()=>{document.removeEventListener("keydown",T),document.removeEventListener("pointerdown",L)}},[w,ae]),f.jsxs("div",{ref:ee,className:"compass-graph-toolbar compass-glass-panel",role:"toolbar","aria-label":"Graph controls",children:[f.jsxs("div",{className:"compass-viewer-status","data-state":e?"running":"paused",role:"status","aria-live":"polite",children:[f.jsx("span",{className:"compass-viewer-status-dot","aria-hidden":"true"}),f.jsx("span",{className:"compass-viewer-status-text",children:n})]}),f.jsxs("div",{className:"compass-toolbar-actions",children:[Te&&f.jsxs("button",{className:"compass-tool-button",type:"button","aria-label":"Back to community overview",onClick:Te,children:[f.jsx(PR,{}),f.jsx("span",{children:"Overview"})]}),f.jsxs("label",{className:"compass-layout-picker",children:[f.jsx($R,{"aria-hidden":"true"}),f.jsx("span",{className:"sr-only",children:"Graph layout"}),f.jsxs("select",{"aria-label":"Graph layout",value:t,onChange:T=>x(T.target.value),children:[f.jsx("option",{value:"automatic",children:"Automatic"}),f.jsx("option",{value:"circle",children:"Circle"}),f.jsx("option",{value:"concentric",children:"Concentric"}),f.jsx("option",{value:"spiral",children:"Spiral"}),f.jsx("option",{value:"grid",children:"Square grid"})]})]}),f.jsxs("button",{className:"compass-tool-button compass-physics-button",type:"button","aria-label":e?"Stop layout":t==="automatic"?"Run layout":"Fixed layout","aria-pressed":e,disabled:t!=="automatic",title:t==="automatic"?e?"Stop layout":"Run layout":"Physics is available in Automatic layout",onClick:S,children:[e?f.jsx(Fm,{}):t==="automatic"?f.jsx(i3,{}):f.jsx(Fm,{}),f.jsx("span",{children:e?"Stop":t==="automatic"?"Layout":"Fixed"})]}),f.jsx("span",{className:"compass-toolbar-separator","aria-hidden":"true"}),f.jsxs("div",{className:"compass-zoom-controls",role:"group","aria-label":"Zoom controls",children:[f.jsx("button",{className:"compass-tool-button compass-tool-icon-button",type:"button","aria-label":"Zoom out",title:"Zoom out",onClick:E,children:f.jsx(l3,{})}),f.jsx("button",{className:"compass-tool-button compass-zoom-reset",type:"button","aria-label":"Reset zoom to 100%",title:"Reset zoom to 100%",onClick:N,children:"100%"}),f.jsx("button",{className:"compass-tool-button compass-tool-icon-button",type:"button","aria-label":"Zoom in",title:"Zoom in",onClick:P,children:f.jsx(I3,{})})]}),f.jsx("button",{className:"compass-tool-button compass-tool-icon-button",type:"button","aria-label":"Fit graph in view",title:"Fit graph in view",onClick:B,children:f.jsx(Gm,{})}),f.jsx("button",{className:"compass-tool-button compass-tool-icon-button",type:"button","aria-label":"Fit selected neighborhood",title:r?`Fit the selected node and its ${I}-hop neighborhood`:"Select a node to fit its neighborhood",disabled:!r,onClick:W,children:f.jsx(QR,{})}),f.jsx("button",{className:"compass-tool-button compass-tool-icon-button",type:"button","aria-label":"Reset graph view",title:"Reset graph view",onClick:ne,children:f.jsx(Um,{})}),f.jsx("button",{className:"compass-tool-button compass-tool-icon-button",type:"button","aria-label":i?"Hide labels":"Show labels","aria-pressed":i,title:i?"Hide node labels":"Show all node labels",onClick:_,children:f.jsx(A3,{})}),f.jsx("button",{className:"compass-tool-button compass-tool-icon-button",type:"button","aria-label":o?"Hide relationship labels":"Show relationship labels","aria-pressed":o,title:o?"Hide relationship labels":"Show relationship labels",onClick:Y,children:f.jsx(Ym,{})}),f.jsx("button",{ref:Ie,className:"compass-tool-button compass-tool-icon-button",type:"button","aria-label":"Graph settings","aria-expanded":ae,"aria-controls":k,title:"Graph settings (?)",onClick:()=>M(T=>{const L=!T;return L&&w?.(),L}),children:f.jsx(o3,{})}),p?f.jsx("div",{className:"compass-toolbar-leading",children:p}):null]}),m,ae?f.jsxs("div",{id:k,className:"compass-explore-panel compass-glass-panel",role:"region","aria-label":"Graph exploration controls",children:[f.jsxs("div",{className:"compass-explore-heading",children:[f.jsxs("div",{children:[f.jsx("strong",{children:"Graph settings"}),f.jsx("span",{children:r?"Tune the selected neighborhood and canvas":"Set the next neighborhood, then select a node"})]}),f.jsx("kbd",{children:"?"})]}),r?null:f.jsxs("div",{className:"compass-selection-prompt",role:"note",children:[f.jsx(Hm,{"aria-hidden":"true"}),f.jsxs("span",{children:[f.jsx("strong",{children:"Select a node to isolate it"}),f.jsx("small",{children:"Use the canvas or node search. Depth and direction can be set now."})]})]}),f.jsxs("button",{className:"compass-explore-toggle",type:"button","aria-label":"Isolate selection","aria-pressed":A,disabled:!r,onClick:Ce,children:[f.jsx(Hm,{"aria-hidden":"true"}),f.jsxs("span",{children:[f.jsx("strong",{children:"Isolate selection"}),f.jsx("small",{children:"Hide everything outside the traversal"})]}),f.jsx("i",{"aria-hidden":"true"})]}),f.jsxs("fieldset",{className:"compass-explore-field",children:[f.jsx("legend",{children:"Neighborhood depth"}),f.jsx("div",{className:"compass-segmented-control","aria-label":"Neighborhood depth",children:[1,2,3,4].map(T=>f.jsx("button",{type:"button","aria-label":`${T} hop${T===1?"":"s"}`,"aria-pressed":I===T,onClick:()=>Ee(T),children:T},T))})]}),f.jsxs("fieldset",{className:"compass-explore-field",children:[f.jsx("legend",{children:"Edge direction"}),f.jsx("div",{className:"compass-segmented-control","aria-label":"Edge direction",children:[["both","Both"],["outgoing","Out"],["incoming","In"]].map(([T,L])=>f.jsx("button",{type:"button","aria-label":`${L==="Both"?"Both directions":L==="Out"?"Outgoing edges":"Incoming edges"}`,"aria-pressed":l===T,onClick:()=>_e(T),children:L},T))})]}),f.jsxs("label",{className:"compass-explore-select",children:[f.jsx("span",{children:"Layout spacing"}),f.jsxs("select",{"aria-label":"Layout spacing",value:c,onChange:T=>De(Number(T.target.value)),children:[f.jsx("option",{value:.75,children:"Compact · 75%"}),f.jsx("option",{value:1,children:"Default · 100%"}),f.jsx("option",{value:1.25,children:"Airy · 125%"}),f.jsx("option",{value:1.5,children:"Wide · 150%"})]})]}),f.jsxs("button",{className:"compass-explore-toggle",type:"button","aria-label":"Show minimap","aria-pressed":h,onClick:et,children:[f.jsx(qR,{"aria-hidden":"true"}),f.jsxs("span",{children:[f.jsx("strong",{children:"Show minimap"}),f.jsx("small",{children:"Track and reposition the visible viewport"})]}),f.jsx("i",{"aria-hidden":"true"})]}),f.jsxs("div",{className:"compass-shortcut-guide","aria-label":"Graph keyboard shortcuts",children:[f.jsxs("div",{className:"compass-shortcut-title",children:[f.jsx(XR,{"aria-hidden":"true"}),f.jsx("strong",{children:"Keyboard"})]}),f.jsxs("dl",{children:[f.jsxs("div",{children:[f.jsx("dt",{children:f.jsx("kbd",{children:"F"})}),f.jsx("dd",{children:"Fit graph"})]}),f.jsxs("div",{children:[f.jsx("dt",{children:f.jsx("kbd",{children:"⇧ F"})}),f.jsx("dd",{children:"Fit selection"})]}),f.jsxs("div",{children:[f.jsxs("dt",{children:[f.jsx("kbd",{children:"+"})," ",f.jsx("kbd",{children:"−"})]}),f.jsx("dd",{children:"Zoom"})]}),f.jsxs("div",{children:[f.jsx("dt",{children:f.jsx("kbd",{children:"0"})}),f.jsx("dd",{children:"100% zoom"})]}),f.jsxs("div",{children:[f.jsx("dt",{children:f.jsx("kbd",{children:"I"})}),f.jsx("dd",{children:"Isolate"})]}),f.jsxs("div",{children:[f.jsxs("dt",{children:[f.jsx("kbd",{children:"["})," ",f.jsx("kbd",{children:"]"})]}),f.jsx("dd",{children:"Depth"})]}),f.jsxs("div",{children:[f.jsx("dt",{children:f.jsx("kbd",{children:"D"})}),f.jsx("dd",{children:"Direction"})]}),f.jsxs("div",{children:[f.jsx("dt",{children:f.jsx("kbd",{children:"M"})}),f.jsx("dd",{children:"Minimap"})]})]})]})]}):null]})}const hv=280,fv=560,pv=24,Ic={width:340,collapsed:!1};function _r(n){return Number.isFinite(n)?Math.min(fv,Math.max(hv,Math.round(n))):Ic.width}function mv(n){return{width:_r(n?.width??Ic.width),collapsed:n?.collapsed??Ic.collapsed}}function z3(n,e){return _r(n-e)}function k3(n,e){return _r(e==="ArrowLeft"?n+pv:e==="ArrowRight"?n-pv:n)}function R3({width:n,onResize:e}){const t=F.useRef(!1),i=o=>{t.current=!1,o.currentTarget.hasPointerCapture(o.pointerId)&&o.currentTarget.releasePointerCapture(o.pointerId)};return f.jsx("div",{className:"compass-inspector-resizer",role:"separator","aria-label":"Resize graph inspector","aria-orientation":"vertical","aria-valuemin":hv,"aria-valuemax":fv,"aria-valuenow":n,tabIndex:0,onPointerDown:o=>{t.current=!0,o.currentTarget.setPointerCapture(o.pointerId)},onPointerMove:o=>{if(!t.current)return;const r=o.currentTarget.parentElement;r&&e(z3(r.getBoundingClientRect().right,o.clientX))},onPointerUp:i,onPointerCancel:i,onKeyDown:o=>{o.key!=="ArrowLeft"&&o.key!=="ArrowRight"||(o.preventDefault(),e(k3(n,o.key)))},children:f.jsx("span",{"aria-hidden":"true"})})}function vv(n,e,t){if(t===void 0&&n.stats.aggregated&&e.memberCount!==void 0&&e.detailAvailable!==!1)return{type:"community",communityId:e.community};const i=rv(e);return i?{type:"source",source:i}:{type:"none"}}function _3(n){const e=n.source?.startLine,t=n.source?.endLine;if(e!==void 0)return t!==void 0&&t!==e?`${e}–${t}`:String(e)}function j3({node:n,hover:e,activation:t}){const i={"--compass-hover-x":`${e.x+18}px`,"--compass-hover-y":`${e.y-42}px`},o=_3(n);return f.jsxs("div",{className:"compass-node-hover-card",role:"tooltip",style:i,children:[f.jsxs("div",{className:"compass-hover-heading",children:[f.jsx("strong",{children:n.label}),f.jsx("span",{children:(n.kind??"symbol").toLocaleUpperCase()})]}),n.change&&f.jsx("span",{className:"compass-change-badge","data-change":n.change,children:n.change==="unchanged"?"Context":`${n.change[0]?.toLocaleUpperCase()}${n.change.slice(1)}`}),n.memberCount!==void 0?f.jsxs("p",{children:[n.memberCount.toLocaleString()," symbols"]}):f.jsxs(f.Fragment,{children:[n.language&&f.jsxs("p",{children:["Language: ",n.language]}),n.source?.file&&f.jsx("p",{className:"compass-hover-source",children:n.source.file}),o&&f.jsxs("p",{children:["Lines: ",o]}),n.signature&&f.jsx("code",{children:n.signature})]}),t.type!=="none"&&f.jsxs("p",{className:"compass-hover-hint",children:[t.type==="community"?f.jsx(ac,{"aria-hidden":"true"}):f.jsx(KR,{"aria-hidden":"true"}),f.jsxs("span",{children:[f.jsx("strong",{children:"Double-click"})," ",t.type==="community"?"to open community subgraph":"to open source code"]})]})]})}const Z3={routes_to:"routes to",publishes:"publishes",subscribes:"subscribes",produces:"produces",consumes:"consumes",schedules:"schedules",triggers:"triggers",handles:"handles",registers:"registers",reads:"reads",writes:"writes",maps_to:"maps to",depends_on:"depends on"};function B3(n){const e=n.relation.trim(),t=Z3[e]??e,i=n.details?.type==="route"?n.details.data:void 0,o=i?`${i.stage}${i.position===null||i.position===void 0?"":` ${i.position+1}`}`:void 0;return[t,o,i?.operation].filter(r=>r!==void 0&&r!=="").join(" · ")}function P3(n){if(!n?.file.trim())return"";const e=n.startLine,t=n.endLine;if(e!==void 0){const i=t!==void 0&&t!==e?`${e}–${t}`:String(e);return`${n.file}:${i}`}return n.startByte!==void 0?`${n.file}:byte ${n.startByte}`:n.file}function L3(n){const e=n.confidence;return e?`${e[0]?.toLocaleUpperCase()}${e.slice(1)}`:"Unspecified"}function G3(n){if(n)return n==="unchanged"?"Context":`${n[0]?.toLocaleUpperCase()}${n.slice(1)}`}function F3({edge:n,sourceNode:e,targetNode:t,hover:i}){const o={"--compass-hover-x":`${i.x+18}px`,"--compass-hover-y":`${i.y-52}px`},r=P3(n.relationshipSite),A=n.codeEvidence?.[0],I=G3(n.change),l=av(n)!==void 0;return f.jsxs("div",{className:"compass-edge-hover-card",role:"tooltip",style:o,children:[f.jsxs("div",{className:"compass-edge-hover-heading",children:[f.jsxs("span",{className:"compass-edge-hover-eyebrow",children:[f.jsx(Pm,{"aria-hidden":"true"}),"Relationship"]}),f.jsx("span",{className:"compass-edge-confidence","data-confidence":n.confidence??"unspecified",children:L3(n)})]}),f.jsxs("div",{className:"compass-edge-trace","aria-label":`${e.label} to ${t.label}`,children:[f.jsx("strong",{children:e.label}),f.jsx("span",{"aria-hidden":"true",children:f.jsx(LR,{})}),f.jsx("strong",{children:t.label})]}),f.jsxs("div",{className:"compass-edge-relation-row",children:[f.jsx("strong",{children:B3(n)||"Relationship"}),I&&f.jsx("span",{className:"compass-change-badge","data-change":n.change,children:I})]}),(A||r)&&f.jsxs("div",{className:"compass-edge-metadata",children:[A&&f.jsxs("p",{children:[f.jsx("span",{children:"Evidence"}),f.jsx("code",{children:A.rule??A.origin})]}),r&&f.jsxs("p",{children:[f.jsx("span",{children:"Source"}),f.jsx("code",{children:r})]})]}),l&&f.jsxs("p",{className:"compass-hover-hint",children:[f.jsx(Pm,{"aria-hidden":"true"}),f.jsxs("span",{children:[f.jsx("strong",{children:"Double-click"})," to open relationship source"]})]})]})}var lc=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Me(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var WA=function(n){return n&&n.Math===Math&&n},_t=WA(typeof globalThis=="object"&&globalThis)||WA(typeof window=="object"&&window)||WA(typeof self=="object"&&self)||WA(typeof lc=="object"&&lc)||(function(){return this})()||lc||Function("return this")(),gt=function(n){try{return!!n()}catch{return!0}},V3=gt,jr=!V3(function(){var n=(function(){}).bind();return typeof n!="function"||n.hasOwnProperty("prototype")}),U3=jr,yv=Function.prototype,bv=yv.apply,wv=yv.call,QA=typeof Reflect=="object"&&Reflect.apply||(U3?wv.bind(bv):function(){return wv.apply(bv,arguments)}),xv=jr,Ev=Function.prototype,cc=Ev.call,Y3=xv&&Ev.bind.bind(cc,cc),ot=xv?Y3:function(n){return function(){return cc.apply(n,arguments)}},Sv=ot,H3=Sv({}.toString),K3=Sv("".slice),Yi=function(n){return K3(H3(n),8,-1)},W3=Yi,Q3=ot,dc=function(n){if(W3(n)==="Function")return Q3(n)},uc=typeof document=="object"&&document.all,X3=typeof uc>"u"&&uc!==void 0,Tv={all:uc,IS_HTMLDDA:X3},Ov=Tv,$3=Ov.all,ln=Ov.IS_HTMLDDA?function(n){return typeof n=="function"||n===$3}:function(n){return typeof n=="function"},Zr={},q3=gt,nn=!q3(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),J3=jr,XA=Function.prototype.call,ui=J3?XA.bind(XA):function(){return XA.apply(XA,arguments)},Br={},Nv={}.propertyIsEnumerable,Dv=Object.getOwnPropertyDescriptor,e_=Dv&&!Nv.call({1:2},1);Br.f=e_?function(e){var t=Dv(this,e);return!!t&&t.enumerable}:Nv;var Pr=function(n,e){return{enumerable:!(n&1),configurable:!(n&2),writable:!(n&4),value:e}},t_=ot,n_=gt,i_=Yi,hc=Object,g_=t_("".split),$A=n_(function(){return!hc("z").propertyIsEnumerable(0)})?function(n){return i_(n)==="String"?g_(n,""):hc(n)}:hc,as=function(n){return n==null},o_=as,s_=TypeError,Lr=function(n){if(o_(n))throw new s_("Can't call method on "+n);return n},r_=$A,a_=Lr,hi=function(n){return r_(a_(n))},Mv=ln,zv=Tv,A_=zv.all,yn=zv.IS_HTMLDDA?function(n){return typeof n=="object"?n!==null:Mv(n)||n===A_}:function(n){return typeof n=="object"?n!==null:Mv(n)},rt={},fc=rt,pc=_t,C_=ln,kv=function(n){return C_(n)?n:void 0},fi=function(n,e){return arguments.length<2?kv(fc[n])||kv(pc[n]):fc[n]&&fc[n][e]||pc[n]&&pc[n][e]},I_=ot,jt=I_({}.isPrototypeOf),Gr=typeof navigator<"u"&&String(navigator.userAgent)||"",Rv=_t,mc=Gr,_v=Rv.process,jv=Rv.Deno,Zv=_v&&_v.versions||jv&&jv.version,Bv=Zv&&Zv.v8,pi,qA;Bv&&(pi=Bv.split("."),qA=pi[0]>0&&pi[0]<4?1:+(pi[0]+pi[1])),!qA&&mc&&(pi=mc.match(/Edge\/(\d+)/),(!pi||pi[1]>=74)&&(pi=mc.match(/Chrome\/(\d+)/),pi&&(qA=+pi[1])));var Fr=qA,Pv=Fr,l_=gt,c_=_t,d_=c_.String,As=!!Object.getOwnPropertySymbols&&!l_(function(){var n=Symbol("symbol detection");return!d_(n)||!(Object(n)instanceof Symbol)||!Symbol.sham&&Pv&&Pv<41}),u_=As,Lv=u_&&!Symbol.sham&&typeof Symbol.iterator=="symbol",h_=fi,f_=ln,p_=jt,m_=Lv,v_=Object,Vr=m_?function(n){return typeof n=="symbol"}:function(n){var e=h_("Symbol");return f_(e)&&p_(e.prototype,v_(n))},y_=String,Ur=function(n){try{return y_(n)}catch{return"Object"}},b_=ln,w_=Ur,x_=TypeError,fo=function(n){if(b_(n))return n;throw new x_(w_(n)+" is not a function")},E_=fo,S_=as,vc=function(n,e){var t=n[e];return S_(t)?void 0:E_(t)},yc=ui,bc=ln,wc=yn,T_=TypeError,O_=function(n,e){var t,i;if(e==="string"&&bc(t=n.toString)&&!wc(i=yc(t,n))||bc(t=n.valueOf)&&!wc(i=yc(t,n))||e!=="string"&&bc(t=n.toString)&&!wc(i=yc(t,n)))return i;throw new T_("Can't convert object to primitive value")},Gv={exports:{}},Fv=_t,N_=Object.defineProperty,D_=function(n,e){try{N_(Fv,n,{value:e,configurable:!0,writable:!0})}catch{Fv[n]=e}return e},M_=_t,z_=D_,Vv="__core-js_shared__",k_=M_[Vv]||z_(Vv,{}),xc=k_,Uv=xc;(Gv.exports=function(n,e){return Uv[n]||(Uv[n]=e!==void 0?e:{})})("versions",[]).push({version:"3.33.0",mode:"pure",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.33.0/LICENSE",source:"https://github.com/zloirock/core-js"});var Cs=Gv.exports,R_=Lr,__=Object,Gn=function(n){return __(R_(n))},j_=ot,Z_=Gn,B_=j_({}.hasOwnProperty),gn=Object.hasOwn||function(e,t){return B_(Z_(e),t)},P_=ot,L_=0,G_=Math.random(),F_=P_(1 .toString),JA=function(n){return"Symbol("+(n===void 0?"":n)+")_"+F_(++L_+G_,36)},V_=_t,U_=Cs,Yv=gn,Y_=JA,H_=As,K_=Lv,Is=V_.Symbol,Ec=U_("wks"),W_=K_?Is.for||Is:Is&&Is.withoutSetter||Y_,Ft=function(n){return Yv(Ec,n)||(Ec[n]=H_&&Yv(Is,n)?Is[n]:W_("Symbol."+n)),Ec[n]},Q_=ui,Hv=yn,Kv=Vr,X_=vc,$_=O_,q_=Ft,J_=TypeError,e5=q_("toPrimitive"),t5=function(n,e){if(!Hv(n)||Kv(n))return n;var t=X_(n,e5),i;if(t){if(e===void 0&&(e="default"),i=Q_(t,n,e),!Hv(i)||Kv(i))return i;throw new J_("Can't convert object to primitive value")}return e===void 0&&(e="number"),$_(n,e)},n5=t5,i5=Vr,eC=function(n){var e=n5(n,"string");return i5(e)?e:e+""},g5=_t,Wv=yn,Sc=g5.document,o5=Wv(Sc)&&Wv(Sc.createElement),Qv=function(n){return o5?Sc.createElement(n):{}},s5=nn,r5=gt,a5=Qv,Xv=!s5&&!r5(function(){return Object.defineProperty(a5("div"),"a",{get:function(){return 7}}).a!==7}),A5=nn,C5=ui,I5=Br,l5=Pr,c5=hi,d5=eC,u5=gn,h5=Xv,$v=Object.getOwnPropertyDescriptor;Zr.f=A5?$v:function(e,t){if(e=c5(e),t=d5(t),h5)try{return $v(e,t)}catch{}if(u5(e,t))return l5(!C5(I5.f,e,t),e[t])};var f5=gt,p5=ln,m5=/#|\.prototype\./,Yr=function(n,e){var t=y5[v5(n)];return t===w5?!0:t===b5?!1:p5(e)?f5(e):!!e},v5=Yr.normalize=function(n){return String(n).replace(m5,".").toLowerCase()},y5=Yr.data={},b5=Yr.NATIVE="N",w5=Yr.POLYFILL="P",x5=Yr,qv=dc,E5=fo,S5=jr,T5=qv(qv.bind),Hr=function(n,e){return E5(n),e===void 0?n:S5?T5(n,e):function(){return n.apply(e,arguments)}},Fn={},O5=nn,N5=gt,Jv=O5&&N5(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),D5=yn,M5=String,z5=TypeError,Hi=function(n){if(D5(n))return n;throw new z5(M5(n)+" is not an object")},k5=nn,R5=Xv,_5=Jv,tC=Hi,ey=eC,j5=TypeError,Tc=Object.defineProperty,Z5=Object.getOwnPropertyDescriptor,Oc="enumerable",Nc="configurable",Dc="writable";Fn.f=k5?_5?function(e,t,i){if(tC(e),t=ey(t),tC(i),typeof e=="function"&&t==="prototype"&&"value"in i&&Dc in i&&!i[Dc]){var o=Z5(e,t);o&&o[Dc]&&(e[t]=i.value,i={configurable:Nc in i?i[Nc]:o[Nc],enumerable:Oc in i?i[Oc]:o[Oc],writable:!1})}return Tc(e,t,i)}:Tc:function(e,t,i){if(tC(e),t=ey(t),tC(i),R5)try{return Tc(e,t,i)}catch{}if("get"in i||"set"in i)throw new j5("Accessors not supported");return"value"in i&&(e[t]=i.value),e};var B5=nn,P5=Fn,L5=Pr,ls=B5?function(n,e,t){return P5.f(n,e,L5(1,t))}:function(n,e,t){return n[e]=t,n},nC=_t,G5=QA,F5=dc,V5=ln,U5=Zr.f,Y5=x5,cs=rt,H5=Hr,ds=ls,ty=gn,K5=function(n){var e=function(t,i,o){if(this instanceof e){switch(arguments.length){case 0:return new n;case 1:return new n(t);case 2:return new n(t,i)}return new n(t,i,o)}return G5(n,this,arguments)};return e.prototype=n.prototype,e},Re=function(n,e){var t=n.target,i=n.global,o=n.stat,r=n.proto,A=i?nC:o?nC[t]:(nC[t]||{}).prototype,I=i?cs:cs[t]||ds(cs,t,{})[t],l=I.prototype,c,h,p,m,y,w,S,x,E;for(m in e)c=Y5(i?m:t+(o?".":"#")+m,n.forced),h=!c&&A&&ty(A,m),w=I[m],h&&(n.dontCallGetSet?(E=U5(A,m),S=E&&E.value):S=A[m]),y=h&&S?S:e[m],!(h&&typeof w==typeof y)&&(n.bind&&h?x=H5(y,nC):n.wrap&&h?x=K5(y):r&&V5(y)?x=F5(y):x=y,(n.sham||y&&y.sham||w&&w.sham)&&ds(x,"sham",!0),ds(I,m,x),r&&(p=t+"Prototype",ty(cs,p)||ds(cs,p,{}),ds(cs[p],m,y),n.real&&l&&(c||!l[m])&&ds(l,m,y)))},W5=Math.ceil,Q5=Math.floor,X5=Math.trunc||function(e){var t=+e;return(t>0?Q5:W5)(t)},$5=X5,iC=function(n){var e=+n;return e!==e||e===0?0:$5(e)},q5=iC,J5=Math.max,ej=Math.min,Kr=function(n,e){var t=q5(n);return t<0?J5(t+e,0):ej(t,e)},tj=iC,nj=Math.min,ij=function(n){return n>0?nj(tj(n),9007199254740991):0},gj=ij,Jn=function(n){return gj(n.length)},oj=hi,sj=Kr,rj=Jn,ny=function(n){return function(e,t,i){var o=oj(e),r=rj(o),A=sj(i,r),I;if(n&&t!==t){for(;r>A;)if(I=o[A++],I!==I)return!0}else for(;r>A;A++)if((n||A in o)&&o[A]===t)return n||A||0;return!n&&-1}},Mc={includes:ny(!0),indexOf:ny(!1)},Wr={},aj=ot,zc=gn,Aj=hi,Cj=Mc.indexOf,Ij=Wr,iy=aj([].push),gy=function(n,e){var t=Aj(n),i=0,o=[],r;for(r in t)!zc(Ij,r)&&zc(t,r)&&iy(o,r);for(;e.length>i;)zc(t,r=e[i++])&&(~Cj(o,r)||iy(o,r));return o},kc=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],lj=gy,cj=kc,Qr=Object.keys||function(e){return lj(e,cj)},Xr={};Xr.f=Object.getOwnPropertySymbols;var oy=nn,dj=ot,uj=ui,hj=gt,Rc=Qr,fj=Xr,pj=Br,mj=Gn,vj=$A,us=Object.assign,sy=Object.defineProperty,yj=dj([].concat),bj=!us||hj(function(){if(oy&&us({b:1},us(sy({},"a",{enumerable:!0,get:function(){sy(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var n={},e={},t=Symbol("assign detection"),i="abcdefghijklmnopqrst";return n[t]=7,i.split("").forEach(function(o){e[o]=o}),us({},n)[t]!==7||Rc(us({},e)).join("")!==i})?function(e,t){for(var i=mj(e),o=arguments.length,r=1,A=fj.f,I=pj.f;o>r;)for(var l=vj(arguments[r++]),c=A?yj(Rc(l),A(l)):Rc(l),h=c.length,p=0,m;h>p;)m=c[p++],(!oy||uj(I,l,m))&&(i[m]=l[m]);return i}:us,wj=Re,ry=bj;wj({target:"Object",stat:!0,forced:Object.assign!==ry},{assign:ry});var xj=rt,Ej=xj.Object.assign,Sj=Ej,Tj=Sj,Oj=Tj,Vt=Me(Oj),Nj=ot,gC=Nj([].slice),ay=ot,Dj=fo,Mj=yn,zj=gn,Ay=gC,kj=jr,Cy=Function,Rj=ay([].concat),_j=ay([].join),_c={},jj=function(n,e,t){if(!zj(_c,e)){for(var i=[],o=0;o=.1;)w=+r[p++%A],w>h&&(w=h),y=Math.sqrt(w*w/(1+c*c)),y=I<0?-y:y,e+=y,t+=c*y,m===!0?n.lineTo(e,t):n.moveTo(e,t),h-=w,m=!m}function Jj(n,e,t,i){n.beginPath();const o=6,r=Math.PI*2/o;n.moveTo(e+i,t);for(let A=1;A1?t-1:0),o=1;o"u")){var i=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",t==="top"&&i.firstChild?i.insertBefore(o,i.firstChild):i.appendChild(o),o.styleSheet?o.styleSheet.cssText=n:o.appendChild(document.createTextNode(n))}}var t4=`.vis-overlay { +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const A of n.seen.entries()){const I=A[1];if(e===A[0]){r(A);continue}if(n.external){const c=n.external.registry.get(A[0])?.id;if(e!==A[0]&&c){r(A);continue}}if(n.metadataRegistry.get(A[0])?.id){r(A);continue}if(I.cycle){r(A);continue}if(I.count>1&&n.reused==="ref"){r(A);continue}}}function um(n,e){const t=n.seen.get(e);if(!t)throw new Error("Unprocessed schema. This is a bug in Zod.");const i=I=>{const l=n.seen.get(I);if(l.ref===null)return;const c=l.def??l.schema,h={...c},p=l.ref;if(l.ref=null,p){i(p);const y=n.seen.get(p),w=y.schema;if(w.$ref&&(n.target==="draft-07"||n.target==="draft-04"||n.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(w)):Object.assign(c,w),Object.assign(c,h),I._zod.parent===p)for(const x in c)x==="$ref"||x==="allOf"||x in h||delete c[x];if(w.$ref&&y.def)for(const x in c)x==="$ref"||x==="allOf"||x in y.def&&JSON.stringify(c[x])===JSON.stringify(y.def[x])&&delete c[x]}const m=I._zod.parent;if(m&&m!==p){i(m);const y=n.seen.get(m);if(y?.schema.$ref&&(c.$ref=y.schema.$ref,y.def))for(const w in c)w==="$ref"||w==="allOf"||w in y.def&&JSON.stringify(c[w])===JSON.stringify(y.def[w])&&delete c[w]}n.override({zodSchema:I,jsonSchema:c,path:l.path??[]})};for(const I of[...n.seen.entries()].reverse())i(I[0]);const o={};if(n.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":n.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":n.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":n.target,n.external?.uri){const I=n.external.registry.get(e)?.id;if(!I)throw new Error("Schema is missing an `id` property");o.$id=n.external.uri(I)}Object.assign(o,t.def??t.schema);const r=n.metadataRegistry.get(e)?.id;r!==void 0&&o.id===r&&delete o.id;const A=n.external?.defs??{};for(const I of n.seen.entries()){const l=I[1];l.def&&l.defId&&(l.def.id===l.defId&&delete l.def.id,A[l.defId]=l.def)}n.external||Object.keys(A).length>0&&(n.target==="draft-2020-12"?o.$defs=A:o.definitions=A);try{const I=JSON.parse(JSON.stringify(o));return Object.defineProperty(I,"~standard",{value:{...e["~standard"],jsonSchema:{input:LA(e,"input",n.processors),output:LA(e,"output",n.processors)}},enumerable:!1,writable:!1}),I}catch{throw new Error("Error converting schema to JSON.")}}function bn(n,e){const t=e??{seen:new Set};if(t.seen.has(n))return!1;t.seen.add(n);const i=n._zod.def;if(i.type==="transform")return!0;if(i.type==="array")return bn(i.element,t);if(i.type==="set")return bn(i.valueType,t);if(i.type==="lazy")return bn(i.getter(),t);if(i.type==="promise"||i.type==="optional"||i.type==="nonoptional"||i.type==="nullable"||i.type==="readonly"||i.type==="default"||i.type==="prefault")return bn(i.innerType,t);if(i.type==="intersection")return bn(i.left,t)||bn(i.right,t);if(i.type==="record"||i.type==="map")return bn(i.keyType,t)||bn(i.valueType,t);if(i.type==="pipe")return n._zod.traits.has("$ZodCodec")?!0:bn(i.in,t)||bn(i.out,t);if(i.type==="object"){for(const o in i.shape)if(bn(i.shape[o],t))return!0;return!1}if(i.type==="union"){for(const o of i.options)if(bn(o,t))return!0;return!1}if(i.type==="tuple"){for(const o of i.items)if(bn(o,t))return!0;return!!(i.rest&&bn(i.rest,t))}return!1}const JM=(n,e={})=>t=>{const i=cm({...t,processors:e});return Kt(n,i),dm(i,n),um(i,n)},LA=(n,e,t={})=>i=>{const{libraryOptions:o,target:r}=i??{},A=cm({...o??{},target:r,io:e,processors:t});return Kt(n,A),dm(A,n),um(A,n)},ez={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},tz=(n,e,t,i)=>{const o=t;o.type="string";const{minimum:r,maximum:A,format:I,patterns:l,contentEncoding:c}=n._zod.bag;if(typeof r=="number"&&(o.minLength=r),typeof A=="number"&&(o.maxLength=A),I&&(o.format=ez[I]??I,o.format===""&&delete o.format,I==="time"&&delete o.format),c&&(o.contentEncoding=c),l&&l.size>0){const h=[...l];h.length===1?o.pattern=h[0].source:h.length>1&&(o.allOf=[...h.map(p=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:p.source}))])}},nz=(n,e,t,i)=>{const o=t,{minimum:r,maximum:A,format:I,multipleOf:l,exclusiveMaximum:c,exclusiveMinimum:h}=n._zod.bag;typeof I=="string"&&I.includes("int")?o.type="integer":o.type="number";const p=typeof h=="number"&&h>=(r??Number.NEGATIVE_INFINITY),m=typeof c=="number"&&c<=(A??Number.POSITIVE_INFINITY),y=e.target==="draft-04"||e.target==="openapi-3.0";p?y?(o.minimum=h,o.exclusiveMinimum=!0):o.exclusiveMinimum=h:typeof r=="number"&&(o.minimum=r),m?y?(o.maximum=c,o.exclusiveMaximum=!0):o.exclusiveMaximum=c:typeof A=="number"&&(o.maximum=A),typeof l=="number"&&(o.multipleOf=l)},iz=(n,e,t,i)=>{t.type="boolean"},gz=(n,e,t,i)=>{t.not={}},oz=(n,e,t,i)=>{},sz=(n,e,t,i)=>{const o=n._zod.def,r=Dp(o.entries);r.every(A=>typeof A=="number")&&(t.type="number"),r.every(A=>typeof A=="string")&&(t.type="string"),t.enum=r},rz=(n,e,t,i)=>{const o=n._zod.def,r=[];for(const A of o.values)if(A===void 0){if(e.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof A=="bigint"){if(e.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");r.push(Number(A))}else r.push(A);if(r.length!==0)if(r.length===1){const A=r[0];t.type=A===null?"null":typeof A,e.target==="draft-04"||e.target==="openapi-3.0"?t.enum=[A]:t.const=A}else r.every(A=>typeof A=="number")&&(t.type="number"),r.every(A=>typeof A=="string")&&(t.type="string"),r.every(A=>typeof A=="boolean")&&(t.type="boolean"),r.every(A=>A===null)&&(t.type="null"),t.enum=r},az=(n,e,t,i)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Az=(n,e,t,i)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Cz=(n,e,t,i)=>{const o=t,r=n._zod.def,{minimum:A,maximum:I}=n._zod.bag;typeof A=="number"&&(o.minItems=A),typeof I=="number"&&(o.maxItems=I),o.type="array",o.items=Kt(r.element,e,{...i,path:[...i.path,"items"]})},Iz=(n,e,t,i)=>{const o=t,r=n._zod.def;o.type="object",o.properties={};const A=r.shape;for(const c in A)o.properties[c]=Kt(A[c],e,{...i,path:[...i.path,"properties",c]});const I=new Set(Object.keys(A)),l=new Set([...I].filter(c=>{const h=r.shape[c]._zod;return e.io==="input"?h.optin===void 0:h.optout===void 0}));l.size>0&&(o.required=Array.from(l)),r.catchall?._zod.def.type==="never"?o.additionalProperties=!1:r.catchall?r.catchall&&(o.additionalProperties=Kt(r.catchall,e,{...i,path:[...i.path,"additionalProperties"]})):e.io==="output"&&(o.additionalProperties=!1)},lz=(n,e,t,i)=>{const o=n._zod.def,r=o.inclusive===!1,A=o.options.map((I,l)=>Kt(I,e,{...i,path:[...i.path,r?"oneOf":"anyOf",l]}));r?t.oneOf=A:t.anyOf=A},cz=(n,e,t,i)=>{const o=n._zod.def,r=Kt(o.left,e,{...i,path:[...i.path,"allOf",0]}),A=Kt(o.right,e,{...i,path:[...i.path,"allOf",1]}),I=c=>"allOf"in c&&Object.keys(c).length===1,l=[...I(r)?r.allOf:[r],...I(A)?A.allOf:[A]];t.allOf=l},dz=(n,e,t,i)=>{const o=t,r=n._zod.def;o.type="object";const A=r.keyType,l=A._zod.bag?.patterns;if(r.mode==="loose"&&l&&l.size>0){const h=Kt(r.valueType,e,{...i,path:[...i.path,"patternProperties","*"]});o.patternProperties={};for(const p of l)o.patternProperties[p.source]=h}else(e.target==="draft-07"||e.target==="draft-2020-12")&&(o.propertyNames=Kt(r.keyType,e,{...i,path:[...i.path,"propertyNames"]})),o.additionalProperties=Kt(r.valueType,e,{...i,path:[...i.path,"additionalProperties"]});const c=A._zod.values;if(c){const h=[...c].filter(p=>typeof p=="string"||typeof p=="number");h.length>0&&(o.required=h)}},uz=(n,e,t,i)=>{const o=n._zod.def,r=Kt(o.innerType,e,i),A=e.seen.get(n);e.target==="openapi-3.0"?(A.ref=o.innerType,t.nullable=!0):t.anyOf=[r,{type:"null"}]},hz=(n,e,t,i)=>{const o=n._zod.def;Kt(o.innerType,e,i);const r=e.seen.get(n);r.ref=o.innerType},fz=(n,e,t,i)=>{const o=n._zod.def;Kt(o.innerType,e,i);const r=e.seen.get(n);r.ref=o.innerType,t.default=JSON.parse(JSON.stringify(o.defaultValue))},pz=(n,e,t,i)=>{const o=n._zod.def;Kt(o.innerType,e,i);const r=e.seen.get(n);r.ref=o.innerType,e.io==="input"&&(t._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},mz=(n,e,t,i)=>{const o=n._zod.def;Kt(o.innerType,e,i);const r=e.seen.get(n);r.ref=o.innerType;let A;try{A=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}t.default=A},vz=(n,e,t,i)=>{const o=n._zod.def,r=o.in._zod.traits.has("$ZodTransform"),A=e.io==="input"?r?o.out:o.in:o.out;Kt(A,e,i);const I=e.seen.get(n);I.ref=A},yz=(n,e,t,i)=>{const o=n._zod.def;Kt(o.innerType,e,i);const r=e.seen.get(n);r.ref=o.innerType,t.readOnly=!0},hm=(n,e,t,i)=>{const o=n._zod.def;Kt(o.innerType,e,i);const r=e.seen.get(n);r.ref=o.innerType},bz=$("ZodISODateTime",(n,e)=>{wD.init(n,e),Rt.init(n,e)});function wz(n){return NM(bz,n)}const xz=$("ZodISODate",(n,e)=>{xD.init(n,e),Rt.init(n,e)});function Sz(n){return DM(xz,n)}const Ez=$("ZodISOTime",(n,e)=>{SD.init(n,e),Rt.init(n,e)});function Tz(n){return MM(Ez,n)}const Oz=$("ZodISODuration",(n,e)=>{ED.init(n,e),Rt.init(n,e)});function Nz(n){return zM(Oz,n)}const qn=$("ZodError",(n,e)=>{jp.init(n,e),n.name="ZodError",Object.defineProperties(n,{format:{value:t=>uN(n,t)},flatten:{value:t=>dN(n,t)},addIssue:{value:t=>{n.issues.push(t),n.message=JSON.stringify(n.issues,Ul,2)}},addIssues:{value:t=>{n.issues.push(...t),n.message=JSON.stringify(n.issues,Ul,2)}},isEmpty:{get(){return n.issues.length===0}}})},{Parent:Error}),Dz=Wl(qn),Mz=Ql(qn),zz=RA(qn),kz=_A(qn),Rz=pN(qn),_z=mN(qn),jz=vN(qn),Zz=yN(qn),Bz=bN(qn),Pz=wN(qn),Lz=xN(qn),Gz=SN(qn),fm=new WeakMap;function zr(n,e,t){const i=Object.getPrototypeOf(n);let o=fm.get(i);if(o||(o=new Set,fm.set(i,o)),!o.has(e)){o.add(e);for(const r in t){const A=t[r];Object.defineProperty(i,r,{configurable:!0,enumerable:!1,get(){const I=A.bind(this);return Object.defineProperty(this,r,{configurable:!0,writable:!0,enumerable:!0,value:I}),I},set(I){Object.defineProperty(this,r,{configurable:!0,writable:!0,enumerable:!0,value:I})}})}}}const kt=$("ZodType",(n,e)=>(zt.init(n,e),Object.assign(n["~standard"],{jsonSchema:{input:LA(n,"input"),output:LA(n,"output")}}),n.toJSONSchema=JM(n,{}),n.def=e,n.type=e.type,Object.defineProperty(n,"_def",{value:e}),n.parse=(t,i)=>Dz(n,t,i,{callee:n.parse}),n.safeParse=(t,i)=>zz(n,t,i),n.parseAsync=async(t,i)=>Mz(n,t,i,{callee:n.parseAsync}),n.safeParseAsync=async(t,i)=>kz(n,t,i),n.spa=n.safeParseAsync,n.encode=(t,i)=>Rz(n,t,i),n.decode=(t,i)=>_z(n,t,i),n.encodeAsync=async(t,i)=>jz(n,t,i),n.decodeAsync=async(t,i)=>Zz(n,t,i),n.safeEncode=(t,i)=>Bz(n,t,i),n.safeDecode=(t,i)=>Pz(n,t,i),n.safeEncodeAsync=async(t,i)=>Lz(n,t,i),n.safeDecodeAsync=async(t,i)=>Gz(n,t,i),zr(n,"ZodType",{check(...t){const i=this.def;return this.clone(vg(i,{checks:[...i.checks??[],...t.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]}),{parent:!0})},with(...t){return this.check(...t)},clone(t,i){return yg(this,t,i)},brand(){return this},register(t,i){return t.add(this,i),this},refine(t,i){return this.check(Mk(t,i))},superRefine(t,i){return this.check(zk(t,i))},overwrite(t){return this.check(rs(t))},optional(){return Om(this)},exactOptional(){return pk(this)},nullable(){return Nm(this)},nullish(){return Om(Nm(this))},nonoptional(t){return xk(this,t)},array(){return Ge(this)},or(t){return Sm([this,t])},and(t){return ck(this,t)},transform(t){return Mm(this,hk(t))},default(t){return yk(this,t)},prefault(t){return wk(this,t)},catch(t){return Ek(this,t)},pipe(t){return Mm(this,t)},readonly(){return Nk(this)},describe(t){const i=this.clone();return Mr.add(i,{description:t}),i},meta(...t){if(t.length===0)return Mr.get(this);const i=this.clone();return Mr.add(i,t[0]),i},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(t){return t(this)}}),Object.defineProperty(n,"description",{get(){return Mr.get(n)?.description},configurable:!0}),n)),pm=$("_ZodString",(n,e)=>{Xl.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(i,o,r)=>tz(n,i,o);const t=n._zod.bag;n.format=t.format??null,n.minLength=t.minimum??null,n.maxLength=t.maximum??null,zr(n,"_ZodString",{regex(...i){return this.check(BM(...i))},includes(...i){return this.check(GM(...i))},startsWith(...i){return this.check(FM(...i))},endsWith(...i){return this.check(VM(...i))},min(...i){return this.check(PA(...i))},max(...i){return this.check(Im(...i))},length(...i){return this.check(lm(...i))},nonempty(...i){return this.check(PA(1,...i))},lowercase(i){return this.check(PM(i))},uppercase(i){return this.check(LM(i))},trim(){return this.check(YM())},normalize(...i){return this.check(UM(...i))},toLowerCase(){return this.check(HM())},toUpperCase(){return this.check(KM())},slugify(){return this.check(WM())}})}),Fz=$("ZodString",(n,e)=>{Xl.init(n,e),pm.init(n,e),n.email=t=>n.check(aM(Vz,t)),n.url=t=>n.check(cM(Uz,t)),n.jwt=t=>n.check(OM(ok,t)),n.emoji=t=>n.check(dM(Yz,t)),n.guid=t=>n.check(rm(mm,t)),n.uuid=t=>n.check(AM(GA,t)),n.uuidv4=t=>n.check(CM(GA,t)),n.uuidv6=t=>n.check(IM(GA,t)),n.uuidv7=t=>n.check(lM(GA,t)),n.nanoid=t=>n.check(uM(Hz,t)),n.guid=t=>n.check(rm(mm,t)),n.cuid=t=>n.check(hM(Kz,t)),n.cuid2=t=>n.check(fM(Wz,t)),n.ulid=t=>n.check(pM(Qz,t)),n.base64=t=>n.check(SM(nk,t)),n.base64url=t=>n.check(EM(ik,t)),n.xid=t=>n.check(mM(Xz,t)),n.ksuid=t=>n.check(vM($z,t)),n.ipv4=t=>n.check(yM(qz,t)),n.ipv6=t=>n.check(bM(Jz,t)),n.cidrv4=t=>n.check(wM(ek,t)),n.cidrv6=t=>n.check(xM(tk,t)),n.e164=t=>n.check(TM(gk,t)),n.datetime=t=>n.check(wz(t)),n.date=t=>n.check(Sz(t)),n.time=t=>n.check(Tz(t)),n.duration=t=>n.check(Nz(t))});function H(n){return rM(Fz,n)}const Rt=$("ZodStringFormat",(n,e)=>{Tt.init(n,e),pm.init(n,e)}),Vz=$("ZodEmail",(n,e)=>{dD.init(n,e),Rt.init(n,e)}),mm=$("ZodGUID",(n,e)=>{lD.init(n,e),Rt.init(n,e)}),GA=$("ZodUUID",(n,e)=>{cD.init(n,e),Rt.init(n,e)}),Uz=$("ZodURL",(n,e)=>{uD.init(n,e),Rt.init(n,e)}),Yz=$("ZodEmoji",(n,e)=>{hD.init(n,e),Rt.init(n,e)}),Hz=$("ZodNanoID",(n,e)=>{fD.init(n,e),Rt.init(n,e)}),Kz=$("ZodCUID",(n,e)=>{pD.init(n,e),Rt.init(n,e)}),Wz=$("ZodCUID2",(n,e)=>{mD.init(n,e),Rt.init(n,e)}),Qz=$("ZodULID",(n,e)=>{vD.init(n,e),Rt.init(n,e)}),Xz=$("ZodXID",(n,e)=>{yD.init(n,e),Rt.init(n,e)}),$z=$("ZodKSUID",(n,e)=>{bD.init(n,e),Rt.init(n,e)}),qz=$("ZodIPv4",(n,e)=>{TD.init(n,e),Rt.init(n,e)}),Jz=$("ZodIPv6",(n,e)=>{OD.init(n,e),Rt.init(n,e)}),ek=$("ZodCIDRv4",(n,e)=>{ND.init(n,e),Rt.init(n,e)}),tk=$("ZodCIDRv6",(n,e)=>{DD.init(n,e),Rt.init(n,e)}),nk=$("ZodBase64",(n,e)=>{MD.init(n,e),Rt.init(n,e)}),ik=$("ZodBase64URL",(n,e)=>{kD.init(n,e),Rt.init(n,e)}),gk=$("ZodE164",(n,e)=>{RD.init(n,e),Rt.init(n,e)}),ok=$("ZodJWT",(n,e)=>{jD.init(n,e),Rt.init(n,e)}),vm=$("ZodNumber",(n,e)=>{Kp.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(i,o,r)=>nz(n,i,o),zr(n,"ZodNumber",{gt(i,o){return this.check(Am(i,o))},gte(i,o){return this.check(Jl(i,o))},min(i,o){return this.check(Jl(i,o))},lt(i,o){return this.check(am(i,o))},lte(i,o){return this.check(ql(i,o))},max(i,o){return this.check(ql(i,o))},int(i){return this.check(ym(i))},safe(i){return this.check(ym(i))},positive(i){return this.check(Am(0,i))},nonnegative(i){return this.check(Jl(0,i))},negative(i){return this.check(am(0,i))},nonpositive(i){return this.check(ql(0,i))},multipleOf(i,o){return this.check(Cm(i,o))},step(i,o){return this.check(Cm(i,o))},finite(){return this}});const t=n._zod.bag;n.minValue=Math.max(t.minimum??Number.NEGATIVE_INFINITY,t.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,n.maxValue=Math.min(t.maximum??Number.POSITIVE_INFINITY,t.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,n.isInt=(t.format??"").includes("int")||Number.isSafeInteger(t.multipleOf??.5),n.isFinite=!0,n.format=t.format??null});function pe(n){return kM(vm,n)}const sk=$("ZodNumberFormat",(n,e)=>{ZD.init(n,e),vm.init(n,e)});function ym(n){return RM(sk,n)}const rk=$("ZodBoolean",(n,e)=>{BD.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>iz(n,t,i)});function Ln(n){return _M(rk,n)}const ak=$("ZodUnknown",(n,e)=>{PD.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>oz()});function uo(){return jM(ak)}const Ak=$("ZodNever",(n,e)=>{LD.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>gz(n,t,i)});function bm(n){return ZM(Ak,n)}const Ck=$("ZodArray",(n,e)=>{GD.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>Cz(n,t,i,o),n.element=e.element,zr(n,"ZodArray",{min(t,i){return this.check(PA(t,i))},nonempty(t){return this.check(PA(1,t))},max(t,i){return this.check(Im(t,i))},length(t,i){return this.check(lm(t,i))},unwrap(){return this.element}})});function Ge(n,e){return QM(Ck,n,e)}const wm=$("ZodObject",(n,e)=>{VD.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>Iz(n,t,i,o),rt(n,"shape",()=>e.shape),zr(n,"ZodObject",{keyof(){return It(Object.keys(this._zod.def.shape))},catchall(t){return this.clone({...this._zod.def,catchall:t})},passthrough(){return this.clone({...this._zod.def,catchall:uo()})},loose(){return this.clone({...this._zod.def,catchall:uo()})},strict(){return this.clone({...this._zod.def,catchall:bm()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(t){return aN(this,t)},safeExtend(t){return AN(this,t)},merge(t){return CN(this,t)},pick(t){return sN(this,t)},omit(t){return rN(this,t)},partial(...t){return IN(Tm,this,t[0])},required(...t){return lN(Dm,this,t[0])}})});function pt(n,e){const t={type:"object",shape:n??{},...we(e)};return new wm(t)}function Se(n,e){return new wm({type:"object",shape:n,catchall:bm(),...we(e)})}const xm=$("ZodUnion",(n,e)=>{qp.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>lz(n,t,i,o),n.options=e.options});function Sm(n,e){return new xm({type:"union",options:n,...we(e)})}const Ik=$("ZodDiscriminatedUnion",(n,e)=>{xm.init(n,e),UD.init(n,e)});function ec(n,e,t){return new Ik({type:"union",options:e,discriminator:n,...we(t)})}const lk=$("ZodIntersection",(n,e)=>{YD.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>cz(n,t,i,o)});function ck(n,e){return new lk({type:"intersection",left:n,right:e})}const Em=$("ZodRecord",(n,e)=>{HD.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>dz(n,t,i,o),n.keyType=e.keyType,n.valueType=e.valueType});function tc(n,e,t){return!e||!e._zod?new Em({type:"record",keyType:H(),valueType:n,...we(e)}):new Em({type:"record",keyType:n,valueType:e,...we(t)})}const nc=$("ZodEnum",(n,e)=>{KD.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(i,o,r)=>sz(n,i,o),n.enum=e.entries,n.options=Object.values(e.entries);const t=new Set(Object.keys(e.entries));n.extract=(i,o)=>{const r={};for(const A of i)if(t.has(A))r[A]=e.entries[A];else throw new Error(`Key ${A} not found in enum`);return new nc({...e,checks:[],...we(o),entries:r})},n.exclude=(i,o)=>{const r={...e.entries};for(const A of i)if(t.has(A))delete r[A];else throw new Error(`Key ${A} not found in enum`);return new nc({...e,checks:[],...we(o),entries:r})}});function It(n,e){const t=Array.isArray(n)?Object.fromEntries(n.map(i=>[i,i])):n;return new nc({type:"enum",entries:t,...we(e)})}const dk=$("ZodLiteral",(n,e)=>{WD.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>rz(n,t,i),n.values=new Set(e.values),Object.defineProperty(n,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function lt(n,e){return new dk({type:"literal",values:Array.isArray(n)?n:[n],...we(e)})}const uk=$("ZodTransform",(n,e)=>{QD.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>Az(n,t),n._zod.parse=(t,i)=>{if(i.direction==="backward")throw new Np(n.constructor.name);t.addIssue=r=>{if(typeof r=="string")t.issues.push(Dr(r,t.value,e));else{const A=r;A.fatal&&(A.continue=!1),A.code??(A.code="custom"),A.input??(A.input=t.value),A.inst??(A.inst=n),t.issues.push(Dr(A))}};const o=e.transform(t.value,t);return o instanceof Promise?o.then(r=>(t.value=r,t.fallback=!0,t)):(t.value=o,t.fallback=!0,t)}});function hk(n){return new uk({type:"transform",transform:n})}const Tm=$("ZodOptional",(n,e)=>{tm.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>hm(n,t,i,o),n.unwrap=()=>n._zod.def.innerType});function Om(n){return new Tm({type:"optional",innerType:n})}const fk=$("ZodExactOptional",(n,e)=>{XD.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>hm(n,t,i,o),n.unwrap=()=>n._zod.def.innerType});function pk(n){return new fk({type:"optional",innerType:n})}const mk=$("ZodNullable",(n,e)=>{$D.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>uz(n,t,i,o),n.unwrap=()=>n._zod.def.innerType});function Nm(n){return new mk({type:"nullable",innerType:n})}const vk=$("ZodDefault",(n,e)=>{qD.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>fz(n,t,i,o),n.unwrap=()=>n._zod.def.innerType,n.removeDefault=n.unwrap});function yk(n,e){return new vk({type:"default",innerType:n,get defaultValue(){return typeof e=="function"?e():Rp(e)}})}const bk=$("ZodPrefault",(n,e)=>{JD.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>pz(n,t,i,o),n.unwrap=()=>n._zod.def.innerType});function wk(n,e){return new bk({type:"prefault",innerType:n,get defaultValue(){return typeof e=="function"?e():Rp(e)}})}const Dm=$("ZodNonOptional",(n,e)=>{eM.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>hz(n,t,i,o),n.unwrap=()=>n._zod.def.innerType});function xk(n,e){return new Dm({type:"nonoptional",innerType:n,...we(e)})}const Sk=$("ZodCatch",(n,e)=>{tM.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>mz(n,t,i,o),n.unwrap=()=>n._zod.def.innerType,n.removeCatch=n.unwrap});function Ek(n,e){return new Sk({type:"catch",innerType:n,catchValue:typeof e=="function"?e:()=>e})}const Tk=$("ZodPipe",(n,e)=>{nM.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>vz(n,t,i,o),n.in=e.in,n.out=e.out});function Mm(n,e){return new Tk({type:"pipe",in:n,out:e})}const Ok=$("ZodReadonly",(n,e)=>{iM.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>yz(n,t,i,o),n.unwrap=()=>n._zod.def.innerType});function Nk(n){return new Ok({type:"readonly",innerType:n})}const Dk=$("ZodCustom",(n,e)=>{gM.init(n,e),kt.init(n,e),n._zod.processJSONSchema=(t,i,o)=>az(n,t)});function Mk(n,e={}){return XM(Dk,n,e)}function zk(n,e){return $M(n,e)}const kk="compass.query/1",Rk=["file","module","package","namespace","class","struct","interface","trait","protocol","enum","enum_member","type_alias","function","method","constructor","property","field","variable","constant","parameter","import","export","macro","annotation","route","component","event","message","topic","queue","job","resource","schema","query","migration","config_key","database","database_schema","database_table","database_view","database_column","database_index","database_constraint","database_procedure","database_trigger"],_k=["contains","calls","imports","exports","extends","implements","references","type_of","returns","instantiates","overrides","decorates","routes_to","reads","writes","aliases","registers","handles","publishes","subscribes","produces","consumes","schedules","triggers","tests","depends_on","documents","maps_to"],jk=["controller","route_handler","middleware","service","resolver","consumer","producer","subscriber","repository","model","test","fixture","generated"],Zk=["search","callers","callees","impact","explore","node_trail"],ic=H().min(1).refine(n=>n.includes("\\")||n.startsWith("/")||/^[A-Za-z]:/.test(n)?!1:n.split("/").every(e=>e!==""&&e!=="."&&e!==".."),"source path must be a safe repository-relative path"),kr=Se({file:ic,startByte:pe().int().nonnegative(),endByte:pe().int().nonnegative(),startLine:pe().int().positive(),startColumn:pe().int().nonnegative(),endLine:pe().int().positive(),endColumn:pe().int().nonnegative()}).refine(n=>n.endByte>=n.startByte&&(n.endLine>n.startLine||n.endLine===n.startLine&&n.endColumn>=n.startColumn),"source anchor must be ordered"),Bk=It(Rk),Pk=It(_k),Lk=It(jk),Gk=It(Zk),Fk=It(["structural_graph","program_ir"]),Vk=It(["ast","config","convention","artifact","heuristic"]),gc=It(["exact","inferred","ambiguous"]),oc=It(["exact","ambiguous","unresolved"]),Uk=Se({nodeId:H().min(1),reason:H().min(1),confidence:gc,score:pe().finite().nullable().optional(),anchor:kr.nullable().optional()}),FA=Se({layer:Fk,origin:Vk,extractor:H().min(1),confidence:gc,anchor:kr.nullable(),rule:H().min(1).nullable(),wiringSite:kr.nullable(),resolution:oc,candidates:Ge(Uk).max(20).default([])}),Yk=Se({type:lt("file"),data:Se({contentDigest:H().min(1),byteSize:pe().int().nonnegative(),generated:Ln()})}),Hk=Se({type:lt("symbol"),data:Se({signature:H().nullable().optional(),modifiers:Ge(H()).default([]),overloadDiscriminator:H().nullable().optional(),declaringType:H().nullable().optional(),signatureDigest:H().nullable().optional(),implementationDigest:H().nullable().optional(),sourceDigest:H().nullable().optional()})}),Kk=Se({type:lt("import_export"),data:Se({specifier:H(),importedName:H().nullable().optional(),localName:H().nullable().optional(),typeOnly:Ln()})}),Wk=Se({type:lt("route"),data:Se({operation:H(),path:H(),originalPath:H().nullable().optional(),declaringScope:H(),resolution:oc,middlewareCount:pe().int().nonnegative()})}),Qk=Se({type:lt("component"),data:Se({componentType:H()})}),Xk=Se({type:lt("resource"),data:Se({resourceKind:It(["document","paper","image","concept","rationale"]),uri:H().nullable().optional(),mediaType:H().nullable().optional()})}),$k=Se({type:lt("messaging"),data:Se({transport:H(),subject:H(),declaringScope:H()})}),qk=Se({type:lt("job"),data:Se({schedule:H().nullable().optional(),queue:H().nullable().optional()})}),Jk=Se({type:lt("schema"),data:Se({dialect:H().nullable().optional(),logicalDatabase:H().nullable().optional(),namespace:H().nullable().optional()})}),eR=Se({type:lt("query"),data:Se({dialect:H().nullable().optional(),operation:H().nullable().optional(),textDigest:H().nullable().optional()})}),tR=Se({type:lt("config"),data:Se({format:H(),keyPath:H()})}),nR=Se({type:lt("database"),data:Se({logicalDatabase:H(),databaseSchema:H().nullable().optional()})}),iR=ec("type",[Yk,Hk,Kk,Wk,Qk,Xk,$k,qk,Jk,eR,tR,nR]),gR=Se({type:lt("call"),data:Se({dispatch:It(["static","virtual","dynamic"]),receiverType:H().nullable().optional(),argumentCount:pe().int().nonnegative().nullable().optional()})}),oR=Se({type:lt("route"),data:Se({stage:It(["middleware","handler"]),position:pe().int().nonnegative().nullable().optional(),operation:H().nullable().optional()})}),sR=Se({type:lt("messaging"),data:Se({transport:H(),subject:H()})}),rR=Se({type:lt("schedule"),data:Se({expression:H().nullable().optional()})}),aR=Se({type:lt("mapping"),data:Se({mappingKind:H()})}),zm=ec("type",[gR,oR,sR,rR,aR]),AR=Se({maxDepth:pe().int().positive(),maxNodes:pe().int().positive(),maxEdges:pe().int().positive(),maxPaths:pe().int().positive(),maxCandidates:pe().int().positive(),maxSourceBytes:pe().int().positive(),maxResponseBytes:pe().int().positive()}),CR=Se({nodeId:H().min(1),score:pe().finite(),matchedFields:Ge(H())}),IR=Se({id:H().min(1),kind:Bk,roles:Ge(Lk),name:H().min(1),qualifiedName:H().min(1),language:H().nullable(),framework:H().nullable(),source:kr.nullable(),details:iR.nullable(),evidence:Ge(FA)}),lR=Se({id:H().min(1),source:H().min(1),target:H().min(1),kind:Pk,relationshipSite:kr.nullable(),details:zm.nullable(),evidence:Ge(FA)}),cR=Se({path:ic,contentDigest:H().min(1),source:H().nullable(),truncated:Ln()}),dR=Se({id:H().min(1),nodeIds:Ge(H().min(1)),edgeIds:Ge(H().min(1)),weakestResolution:oc,weakestConfidence:gc}),uR=Se({code:It(["no_match","ambiguous_match","direction_mismatch","unresolved_handler","incomplete_coverage","stale_source_digest","bounded_truncation","program_orphan","program_conflict","program_unavailable"]),message:H().min(1),nodeId:H().nullable(),path:ic.nullable()}),hR=Se({schema:lt(kk),operation:Gk,results:Ge(CR),nodes:Ge(IR),edges:Ge(lR),files:Ge(cR),paths:Ge(dR),diagnostics:Ge(uR),limits:AR,truncated:Ln()}),fR="compass.viewer.graph/1",sc=pt({file:H(),startLine:pe().int().positive().optional(),endLine:pe().int().positive().optional(),startByte:pe().int().nonnegative().optional(),endByte:pe().int().nonnegative().optional()}).passthrough(),pR=pt({field:H().min(1),before:uo().optional(),after:uo().optional()}),km=pt({before:tc(H(),uo()).optional(),after:tc(H(),uo()).optional(),fields:Ge(pR)}),mR=pt({id:H().min(1),label:H(),kind:H().optional(),community:pe().int(),communityName:H().optional(),degree:pe().int().nonnegative().optional(),language:H().optional(),signature:H().optional(),size:pe().positive().optional(),memberCount:pe().int().nonnegative().optional(),detailAvailable:Ln().optional(),learningStatus:H().optional(),learningStale:Ln().optional(),depth:pe().int().nonnegative().optional(),root:Ln().optional(),change:It(["added","removed","changed","unchanged"]).optional(),evidence:km.optional(),codeEvidence:Ge(FA).optional(),source:sc.optional(),color:pt({background:H(),border:H()}).passthrough().optional()}).passthrough(),vR=pt({id:H().min(1),source:H().min(1),target:H().min(1),relation:H(),weight:pe().int().positive().optional(),change:It(["added","removed","changed","unchanged"]).optional(),evidence:km.optional(),codeEvidence:Ge(FA).optional(),details:zm.nullable().optional(),relationshipSite:sc.optional(),confidence:It(["extracted","inferred","ambiguous","aggregated"]).optional()}).passthrough(),yR=pt({id:pe().int(),label:H(),color:H(),hidden:Ln().default(!1)}).passthrough(),bg=pt({schema:lt(fR),title:H(),stats:pt({nodes:pe().int().nonnegative(),edges:pe().int().nonnegative(),communities:pe().int().nonnegative(),aggregated:Ln()}).passthrough(),nodes:Ge(mR),edges:Ge(vR),communities:Ge(yR),hyperedges:Ge(uo()).default([])}).passthrough(),bR=It(["resolved","inferred","ambiguous","unresolved"]),Rm=pt({source_file:H(),start_byte:pe().int().nonnegative(),end_byte:pe().int().nonnegative()}),wR=pt({id:H(),symbol:H().nullable(),name:H(),file:H().nullable(),anchor:Rm.nullable().optional(),startLine:pe().int().positive().nullable().optional(),endLine:pe().int().positive().nullable().optional(),startByte:pe().int().nonnegative().nullable().optional(),endByte:pe().int().nonnegative().nullable().optional(),graphNodeId:H().nullable(),unresolved:Ln(),evidenceLayer:It(["structural_graph","program_ir","combined"]).optional()}),xR=Sm([pt({anchor:Rm,evidence:Ge(H())}),pt({sourceFile:H().nullable(),line:pe().int().positive().nullable(),startByte:pe().int().nonnegative().nullable(),endByte:pe().int().nonnegative().nullable(),evidence:Ge(H())})]),SR=pt({id:H(),source:H(),target:H(),callee:H(),resolution:bR,confidence:H().nullable().optional(),callSites:Ge(xR),evidenceLayer:It(["structural_graph","program_ir","combined"]).optional()}),ER=pt({schema:It(["compass.program.call_graph/1","compass.call_graph/1"]),rootSymbol:H(),direction:It(["callers","callees","both"]),depth:pe().int().positive(),nodes:Ge(wR),edges:Ge(SR),truncated:Ln(),continuations:Ge(pt({symbol:H(),direction:It(["callers","callees","both"]),nextDepth:pe().int().positive()})),coverage:pt({resolved:pe().int().nonnegative(),inferred:pe().int().nonnegative(),ambiguous:pe().int().nonnegative(),unresolved:pe().int().nonnegative(),evidenceLayer:It(["structural_graph","program_ir","combined"]).optional(),partial:Ln().optional(),limitations:Ge(H()).optional(),warning:H()})}),_m=It(["extracted","inferred","ambiguous"]),TR=It(["production","test","generated","vendor","unknown"]),OR=pt({schema:lt("compass.viewer.callflow/1"),title:H(),sections:Ge(pt({id:H(),name:H(),communities:Ge(H()),nodeCount:pe().int().nonnegative(),internalCallCount:pe().int().nonnegative(),nodes:Ge(pt({id:H(),label:H(),kind:H(),sourceFile:H().nullable(),scope:TR})),edges:Ge(pt({source:H(),target:H(),relation:H(),confidence:_m}))})),overviewLinks:Ge(pt({sourceSection:H(),targetSection:H(),calls:pe().int().nonnegative()})),crossSectionCalls:Ge(pt({source:H(),target:H(),sourceSection:H(),targetSection:H(),relation:H(),confidence:_m})),coverage:pt({internal:pe().int().nonnegative(),crossSection:pe().int().nonnegative(),unassigned:pe().int().nonnegative()}),reportHighlights:Ge(H()),statistics:pt({nodes:pe().int().nonnegative(),edges:pe().int().nonnegative(),communities:pe().int().nonnegative(),hyperedges:pe().int().nonnegative(),extracted:pe().int().nonnegative(),inferred:pe().int().nonnegative(),ambiguous:pe().int().nonnegative()}),provenance:pt({projectName:H(),builtAtCommit:H().nullable(),generatedAt:H().nullable()})}),NR="compass.viewer.workbench/1",DR=Se({status:It(["complete","summary","partial"]),truncated:Ln(),nodes:pe().int().nonnegative(),edges:pe().int().nonnegative(),limitations:Ge(H()).default([])}),ho={id:H().min(1),title:H().min(1),description:H(),coverage:DR},MR=It(["dependencies","routes","data","messaging","tests","provenance"]),zR=ec("kind",[Se({...ho,kind:lt("code"),model:bg,communityDetails:tc(H(),bg).default({})}),Se({...ho,kind:lt("call"),root:H(),graph:ER}),Se({...ho,kind:lt("impact"),root:H(),result:hR}),Se({...ho,kind:lt("architecture"),model:OR}),Se({...ho,kind:lt("history"),baseRevision:H(),targetRevision:H(),before:bg,after:bg}),Se({...ho,kind:lt("affected"),root:H(),relations:Ge(H()),depth:pe().int().nonnegative(),model:bg}),Se({...ho,kind:lt("artifact"),lens:MR,relations:Ge(H()),model:bg})]),kR=Se({schema:lt(NR),title:H(),graphIdentity:H().min(1),defaultView:H(),views:Ge(zR).min(1)}).superRefine((n,e)=>{const t=new Set;for(const[i,o]of n.views.entries())t.has(o.id)&&e.addIssue({code:"custom",path:["views",i,"id"],message:`duplicate workbench view id '${o.id}'`}),t.add(o.id);t.has(n.defaultView)||e.addIssue({code:"custom",path:["defaultView"],message:"defaultView must identify one included view"})});var F=Gl();const RR=FO({__proto__:null,default:VO(F)},[F]);const _R=n=>n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),jR=n=>n.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,i)=>i?i.toUpperCase():t.toLowerCase()),jm=n=>{const e=jR(n);return e.charAt(0).toUpperCase()+e.slice(1)},Zm=(...n)=>n.filter((e,t,i)=>!!e&&e.trim()!==""&&i.indexOf(e)===t).join(" ").trim(),ZR=n=>{for(const e in n)if(e.startsWith("aria-")||e==="role"||e==="title")return!0};var BR={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const PR=F.forwardRef(({color:n="currentColor",size:e=24,strokeWidth:t=2,absoluteStrokeWidth:i,className:o="",children:r,iconNode:A,...I},l)=>F.createElement("svg",{ref:l,...BR,width:e,height:e,stroke:n,strokeWidth:i?Number(t)*24/Number(e):t,className:Zm("lucide",o),...!r&&!ZR(I)&&{"aria-hidden":"true"},...I},[...A.map(([c,h])=>F.createElement(c,h)),...Array.isArray(r)?r:[r]]));const Re=(n,e)=>{const t=F.forwardRef(({className:i,...o},r)=>F.createElement(PR,{ref:r,iconNode:e,className:Zm(`lucide-${_R(jm(n))}`,`lucide-${n}`,i),...o}));return t.displayName=jm(n),t};const LR=Re("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);const GR=Re("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);const FR=Re("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);const VR=Re("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);const UR=Re("badge-check",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);const YR=Re("boxes",[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]]);const HR=Re("braces",[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]]);const KR=Re("circle-dot-dashed",[["path",{d:"M10.1 2.18a9.93 9.93 0 0 1 3.8 0",key:"1qdqn0"}],["path",{d:"M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7",key:"1bq7p6"}],["path",{d:"M21.82 10.1a9.93 9.93 0 0 1 0 3.8",key:"1rlaqf"}],["path",{d:"M20.29 17.6a9.95 9.95 0 0 1-2.7 2.69",key:"1xk03u"}],["path",{d:"M13.9 21.82a9.94 9.94 0 0 1-3.8 0",key:"l7re25"}],["path",{d:"M6.4 20.29a9.95 9.95 0 0 1-2.69-2.7",key:"1v18p6"}],["path",{d:"M2.18 13.9a9.93 9.93 0 0 1 0-3.8",key:"xdo6bj"}],["path",{d:"M3.71 6.4a9.95 9.95 0 0 1 2.7-2.69",key:"1jjmaz"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]);const Bm=Re("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);const WR=Re("compass",[["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);const VA=Re("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);const QR=Re("file-code-2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m5 12-3 3 3 3",key:"oke12k"}],["path",{d:"m9 18 3-3-3-3",key:"112psh"}]]);const XR=Re("file-cog",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m2.305 15.53.923-.382",key:"yfp9st"}],["path",{d:"m3.228 12.852-.924-.383",key:"bckynb"}],["path",{d:"M4.677 21.5a2 2 0 0 0 1.313.5H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v2.5",key:"1yo3oz"}],["path",{d:"m4.852 11.228-.383-.923",key:"1j88i9"}],["path",{d:"m4.852 16.772-.383.924",key:"sag1dv"}],["path",{d:"m7.148 11.228.383-.923",key:"rj39hk"}],["path",{d:"m7.53 17.696-.382-.924",key:"1uu5cs"}],["path",{d:"m8.772 12.852.923-.383",key:"13811l"}],["path",{d:"m8.772 15.148.923.383",key:"z1a5l0"}],["circle",{cx:"6",cy:"14",r:"3",key:"a1xfv6"}]]);const $R=Re("focus",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}]]);const Pm=Re("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);const Lm=Re("git-compare-arrows",[["circle",{cx:"5",cy:"6",r:"3",key:"1qnov2"}],["path",{d:"M12 6h5a2 2 0 0 1 2 2v7",key:"1yj91y"}],["path",{d:"m15 9-3-3 3-3",key:"1lwv8l"}],["circle",{cx:"19",cy:"18",r:"3",key:"1qljk2"}],["path",{d:"M12 18H7a2 2 0 0 1-2-2V9",key:"16sdep"}],["path",{d:"m9 15 3 3-3 3",key:"1m3kbl"}]]);const rc=Re("git-fork",[["circle",{cx:"12",cy:"18",r:"3",key:"1mpf1b"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["path",{d:"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9",key:"1uq4wg"}],["path",{d:"M12 12v3",key:"158kv8"}]]);const qR=Re("keyboard",[["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M7 16h10",key:"wp8him"}],["path",{d:"M8 12h.01",key:"czm47f"}],["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}]]);const JR=Re("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);const e3=Re("map",[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]);const Gm=Re("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]);const t3=Re("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);const n3=Re("move",[["path",{d:"M12 2v20",key:"t6zp3m"}],["path",{d:"m15 19-3 3-3-3",key:"11eu04"}],["path",{d:"m19 9 3 3-3 3",key:"1mg7y2"}],["path",{d:"M2 12h20",key:"9i4pu4"}],["path",{d:"m5 9-3 3 3 3",key:"j64kie"}],["path",{d:"m9 5 3-3 3 3",key:"l8vdw6"}]]);const ac=Re("network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);const i3=Re("panel-left-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]);const g3=Re("panel-left-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]);const Fm=Re("panel-right-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m8 9 3 3-3 3",key:"12hl5m"}]]);const o3=Re("panel-right-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m10 15-3-3 3-3",key:"1pgupc"}]]);const Vm=Re("pause",[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]]);const s3=Re("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);const Um=Re("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);const Ym=Re("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);const Hm=Re("route",[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]]);const Km=Re("scan-search",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"m16 16-1.9-1.9",key:"1dq9hf"}]]);const r3=Re("search-code",[["path",{d:"m13 13.5 2-2.5-2-2.5",key:"1rvxrh"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}],["path",{d:"M9 8.5 7 11l2 2.5",key:"6ffwbx"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);const Wm=Re("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);const a3=Re("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);const A3=Re("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);const C3=Re("signpost",[["path",{d:"M12 13v8",key:"1l5pq0"}],["path",{d:"M12 3v3",key:"1n5kay"}],["path",{d:"M18 6a2 2 0 0 1 1.387.56l2.307 2.22a1 1 0 0 1 0 1.44l-2.307 2.22A2 2 0 0 1 18 13H6a2 2 0 0 1-1.387-.56l-2.306-2.22a1 1 0 0 1 0-1.44l2.306-2.22A2 2 0 0 1 6 6z",key:"gqqp9m"}]]);const I3=Re("sliders-horizontal",[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]);const l3=Re("tags",[["path",{d:"M13.172 2a2 2 0 0 1 1.414.586l6.71 6.71a2.4 2.4 0 0 1 0 3.408l-4.592 4.592a2.4 2.4 0 0 1-3.408 0l-6.71-6.71A2 2 0 0 1 6 9.172V3a1 1 0 0 1 1-1z",key:"16rjxf"}],["path",{d:"M2 7v6.172a2 2 0 0 0 .586 1.414l6.71 6.71a2.4 2.4 0 0 0 3.191.193",key:"178nd4"}],["circle",{cx:"10.5",cy:"6.5",r:".5",fill:"currentColor",key:"12ikhr"}]]);const UA=Re("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);const c3=Re("waypoints",[["circle",{cx:"12",cy:"4.5",r:"2.5",key:"r5ysbb"}],["path",{d:"m10.2 6.3-3.9 3.9",key:"1nzqf6"}],["circle",{cx:"4.5",cy:"12",r:"2.5",key:"jydg6v"}],["path",{d:"M7 12h10",key:"b7w52i"}],["circle",{cx:"19.5",cy:"12",r:"2.5",key:"1piiel"}],["path",{d:"m13.8 17.7 3.9-3.9",key:"1wyg1y"}],["circle",{cx:"12",cy:"19.5",r:"2.5",key:"13o1pw"}]]);const d3=Re("zoom-in",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]);const u3=Re("zoom-out",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]),Qm=new Set(["color","change","evidence"]),h3=new Set(["anchor","anchors","columnEnd","columnStart","community","communityName","community_name","degree","endByte","endColumn","endLine","lineEnd","lineStart","line_end","line_start","location","normLabel","norm_label","relationshipSite","relationship_site","size","sourceDigest","sourceFile","sourceHash","source_digest","source_file","source_hash","startByte","startColumn","startLine","wiringSite","wiring_site"]);function YA(n,e){const t=HA(n),i=HA(e);return{...t?{before:t}:{},...i?{after:i}:{},fields:Cc(t,i)}}function Xm(n,e,t){const i=HA(n),o=HA(e),r=Ac(n,t),A=Ac(e,t);return{...i?{before:i}:{},...o?{after:o}:{},fields:Cc(r,A)}}function f3(n,e){return Ac(n,e)??{}}function p3(n,e=240){const t=n===void 0?"Not recorded":typeof n=="string"?n:JSON.stringify(n,null,Rr(n)?2:void 0)??String(n);return t.length<=e?{text:t,truncated:!1}:{text:`${t.slice(0,Math.max(0,e-1)).trimEnd()}…`,truncated:!0}}function HA(n){if(n)return Jm(n)}function Ac(n,e){return n?qm(n,e==="node"?new Set(["source"]):new Set(["id","key"])):void 0}function $m(n){return Array.isArray(n)?n.map($m):Rr(n)?qm(n):n}function qm(n,e=new Set){return Object.fromEntries(Object.keys(n).filter(t=>!Qm.has(t)&&!h3.has(t)&&!e.has(t)).sort((t,i)=>t.localeCompare(i)).map(t=>[t,$m(n[t])]))}function KA(n){return Array.isArray(n)?n.map(KA):Rr(n)?Jm(n):n}function Jm(n){return Object.fromEntries(Object.keys(n).filter(e=>!Qm.has(e)).sort((e,t)=>e.localeCompare(t)).map(e=>[e,KA(n[e])]))}function Cc(n,e,t=""){const i=new Set([...Object.keys(n??{}),...Object.keys(e??{})]),o=[];for(const r of[...i].sort((A,I)=>A.localeCompare(I))){const A=t?`${t}.${r}`:r,I=n?.[r],l=e?.[r];Rr(I)&&Rr(l)?o.push(...Cc(I,l,A)):m3(I,l)||o.push({field:A,...I!==void 0?{before:I}:{},...l!==void 0?{after:l}:{}})}return o}function m3(n,e){return JSON.stringify(KA(n))===JSON.stringify(KA(e))}function Rr(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function v3({node:n,edges:e,nodes:t,sourceRevisions:i,onFocus:o,onOpenSource:r}){const A=nv(n.evidence?.before),I=nv(n.evidence?.after);return f.jsxs(f.Fragment,{children:[n.evidence?.fields.length?f.jsxs("section",{className:"compass-record-evidence","aria-labelledby":"compass-node-changes-title",children:[f.jsxs("div",{className:"compass-evidence-heading",children:[f.jsx("h3",{id:"compass-node-changes-title",children:y3(n.change)}),f.jsxs("span",{children:[n.evidence.fields.length," fields"]})]}),f.jsx(ev,{fields:n.evidence.fields}),n.change==="changed"&&(A||I)&&f.jsxs("div",{className:"compass-evidence-source-actions",children:[A&&f.jsxs("button",{type:"button",onClick:()=>r(A,i?.before),children:[f.jsx(VA,{"aria-hidden":"true"}),"Open before"]}),I&&f.jsxs("button",{type:"button",onClick:()=>r(I,i?.after),children:[f.jsx(VA,{"aria-hidden":"true"}),"Open after"]})]})]}):null,f.jsxs("section",{className:"compass-relationship-evidence","aria-labelledby":"compass-relationships-title",children:[f.jsxs("div",{className:"compass-neighbors-heading",children:[f.jsx("span",{id:"compass-relationships-title",children:"Relationships"}),f.jsx("strong",{children:e.length})]}),e.length?f.jsx("div",{className:"compass-relationship-list",children:e.map(l=>{const c=l.source===n.id?l.target:l.source,h=t.get(c);return f.jsxs("details",{children:[f.jsxs("summary",{children:[f.jsx("span",{className:"compass-change-badge","data-change":l.change,children:iv(l.change)}),f.jsx("span",{className:"compass-relationship-target",children:h?.label??c}),f.jsx("small",{children:l.relation}),l.confidence&&f.jsx("i",{children:l.confidence})]}),f.jsxs("div",{className:"compass-relationship-detail",children:[l.change==="changed"&&l.evidence?.fields.length?f.jsx(ev,{fields:l.evidence.fields}):f.jsxs("p",{children:[iv(l.change)," relationship: ",l.source," → ",l.target]}),f.jsxs("button",{type:"button",onClick:()=>o(c),children:["Focus ",h?.label??c]})]})]},l.id)})}):f.jsx("span",{className:"compass-empty",children:"No connected relationships"})]})]})}function ev({fields:n}){return f.jsx("div",{className:"compass-field-table-wrap",children:f.jsxs("table",{className:"compass-field-table",children:[f.jsx("thead",{children:f.jsxs("tr",{children:[f.jsx("th",{children:"Field"}),f.jsx("th",{children:"Before"}),f.jsx("th",{children:"After"})]})}),f.jsx("tbody",{children:n.map(e=>f.jsxs("tr",{children:[f.jsx("th",{scope:"row",children:e.field}),f.jsx(tv,{value:e.before}),f.jsx(tv,{value:e.after})]},e.field))})]})})}function tv({value:n}){const e=p3(n);return f.jsxs("td",{children:[f.jsx("code",{children:e.text}),e.truncated&&f.jsx("span",{className:"compass-value-truncated",children:"Value shortened"})]})}function nv(n){const e=sc.safeParse(n?.source);return e.success?e.data:void 0}function iv(n){return!n||n==="unchanged"?"Context":`${n[0]?.toLocaleUpperCase()}${n.slice(1)}`}function y3(n){return n==="added"?"Added symbol metadata":n==="removed"?"Removed symbol metadata":"What changed"}const gv=100,ov={changed:0,added:1,removed:2,unchanged:3};function b3({nodes:n,query:e,selectedId:t,onFocus:i}){const[o,r]=F.useState(!1),A=e.trim().toLocaleLowerCase(),I=n.filter(c=>c.change&&c.change!=="unchanged").filter(c=>!A||c.label.toLocaleLowerCase().includes(A)||c.kind?.toLocaleLowerCase().includes(A)||c.source?.file.toLocaleLowerCase().includes(A)).sort((c,h)=>ov[c.change??"unchanged"]-ov[h.change??"unchanged"]||c.label.localeCompare(h.label)||c.id.localeCompare(h.id)),l=o?I:I.slice(0,gv);return f.jsxs("section",{className:"compass-changed-symbols","aria-labelledby":"compass-changed-symbols-title",children:[f.jsxs("div",{className:"compass-section-heading",children:[f.jsx("h2",{id:"compass-changed-symbols-title",children:"Changed symbols"}),f.jsx("span",{children:I.length})]}),l.length?f.jsx("div",{className:"compass-changed-symbol-list",children:l.map(c=>f.jsxs("button",{type:"button","aria-pressed":c.id===t,"data-change":c.change,onClick:()=>i(c.id),children:[f.jsx("span",{className:"compass-changed-symbol-status",children:w3(c.change)}),f.jsx("strong",{children:c.label}),f.jsx("small",{children:c.source?.file??c.kind??"Graph symbol"})]},c.id))}):f.jsx("p",{className:"compass-empty",children:A?"No affected symbols match this search.":"No symbol changes."}),!o&&I.length>gv&&f.jsxs("button",{className:"compass-changed-symbol-expand",type:"button",onClick:()=>r(!0),children:["Show all ",I.length.toLocaleString()," affected symbols"]})]})}function w3(n){return!n||n==="unchanged"?"Context":`${n[0]?.toLocaleUpperCase()}${n.slice(1)}`}function sv({evidence:n,diagnostics:e=[],truncated:t=!1,title:i="Trust evidence",onOpenSource:o}){return!n.length&&!e.length&&!t?null:f.jsxs("section",{className:"compass-code-evidence","aria-label":i,children:[f.jsxs("div",{className:"compass-evidence-heading",children:[f.jsx("h3",{children:i}),f.jsxs("span",{children:[n.length," ",n.length===1?"record":"records"]})]}),t&&f.jsxs("p",{className:"compass-code-diagnostic","data-severity":"warning",role:"status",children:[f.jsx(UA,{"aria-hidden":"true"}),"Results reached a configured limit. Narrow the query or raise one bound."]}),e.map(r=>f.jsxs("p",{className:"compass-code-diagnostic","data-severity":r.code==="no_match"?"info":"warning",role:"status",children:[r.code==="no_match"?f.jsx(Bm,{"aria-hidden":"true"}):f.jsx(UA,{"aria-hidden":"true"}),f.jsxs("span",{children:[f.jsx("strong",{children:E3(r.code)}),r.message]})]},`${r.code}:${r.message}`)),f.jsx("div",{className:"compass-code-evidence-ledger",children:n.map((r,A)=>{const I=S3(r),l=r.wiringSite??r.anchor;return f.jsxs("article",{className:"compass-code-evidence-entry","data-status":I.key,children:[f.jsx("span",{className:"compass-code-evidence-icon","aria-hidden":"true",children:f.jsx(x3,{item:r})}),f.jsxs("div",{className:"compass-code-evidence-copy",children:[f.jsxs("div",{className:"compass-code-evidence-status",children:[f.jsx("strong",{children:I.label}),f.jsx("span",{children:r.layer==="program_ir"?"Program IR":"Code graph"})]}),f.jsxs("dl",{children:[f.jsxs("div",{children:[f.jsx("dt",{children:"Extractor"}),f.jsx("dd",{children:r.extractor})]}),f.jsxs("div",{children:[f.jsx("dt",{children:"Confidence"}),f.jsx("dd",{children:r.confidence})]}),r.rule&&f.jsxs("div",{children:[f.jsx("dt",{children:"Rule"}),f.jsx("dd",{children:r.rule})]})]}),l&&(o?f.jsxs("button",{className:"compass-code-evidence-source",type:"button",onClick:()=>o(l),children:[f.jsx(VA,{"aria-hidden":"true"}),rv(r,l)]}):f.jsx("span",{className:"compass-code-evidence-source",children:rv(r,l)})),r.candidates.length>0&&f.jsxs("div",{className:"compass-code-candidates",children:[f.jsx("span",{children:"Retained candidates"}),f.jsx("ul",{children:r.candidates.map(c=>f.jsxs("li",{children:[f.jsx("code",{children:c.nodeId}),f.jsx("span",{children:c.reason}),f.jsx("small",{children:c.confidence})]},`${c.nodeId}:${c.reason}`))})]})]})]},`${r.layer}:${r.extractor}:${A}`)})})]})}function x3({item:n}){return n.resolution==="unresolved"?f.jsx(Bm,{}):n.resolution==="ambiguous"||n.confidence==="ambiguous"?f.jsx(UA,{}):n.origin==="heuristic"?f.jsx(rc,{}):n.origin==="config"?f.jsx(XR,{}):n.origin==="convention"?f.jsx(C3,{}):f.jsx(UR,{})}function S3(n){return n.resolution==="unresolved"?{key:"unresolved",label:"Unresolved"}:n.resolution==="ambiguous"||n.confidence==="ambiguous"?{key:"ambiguous",label:"Ambiguous"}:n.origin==="heuristic"?{key:"heuristic",label:"Heuristic"}:n.origin==="config"?{key:"config",label:"Configuration"}:n.origin==="convention"?{key:"convention",label:"Convention"}:{key:"exact",label:"Exact"}}function rv(n,e){return`${n.origin==="heuristic"?"Wired at":"Evidence at"} ${e.file}:${e.startLine}`}function E3(n){return`${n.replaceAll("_"," ")}: `}function av(n){return Cv(n.source)}function Av(n){return Cv(n.relationshipSite)}function Cv(n){return n?.file.trim()&&(n.startLine!==void 0||n.endLine!==void 0||n.startByte!==void 0||n.endByte!==void 0)?n:void 0}const Iv=200;function T3(n,e){const t=e.trim().toLocaleLowerCase();return(t?n.filter(o=>o.label.toLocaleLowerCase().includes(t)||String(o.id).includes(t)):n).slice(0,Iv)}function O3(n){const e=n.source?.startLine,t=n.source?.endLine;if(e!==void 0)return t!==void 0&&t!==e?`${e}–${t}`:String(e)}function lv(n){const e=n.source?.startLine,t=n.source?.endLine;if(e!==void 0)return t!==void 0&&t!==e?{text:`Lines ${e}–${t}`,action:`at lines ${e}–${t}`}:{text:`Line ${e}`,action:`at line ${e}`};const i=n.source?.startByte,o=n.source?.endByte;if(i!==void 0)return o!==void 0&&o!==i?{text:`Bytes ${i}–${o}`,action:`at bytes ${i}–${o}`}:{text:`Byte ${i}`,action:`at byte ${i}`}}function cv(n,e){const t=lv(n);return`Open source ${e.file}${t?` ${t.action}`:""}`}function dv(n){return n==="unchanged"?"Context":n?`${n[0]?.toLocaleUpperCase()}${n.slice(1)}`:void 0}function N3(n){if(n)return{added:"var(--vscode-gitDecoration-addedResourceForeground, #2ea043)",removed:"var(--vscode-gitDecoration-deletedResourceForeground, #f85149)",changed:"var(--vscode-gitDecoration-modifiedResourceForeground, #d29922)",unchanged:"var(--vscode-descriptionForeground, #6e7781)"}[n]}function D3({model:n,selected:e,neighbors:t,connectedEdges:i,query:o,matches:r,hiddenCommunities:A,comparisonMode:I,sourceRevisions:l,queryResult:c,renderedEdgeCount:h,showHeader:p,onQueryChange:m,onFocus:y,onOpenSource:w,onOpenCommunity:S,onQueryNode:x,onToggleCommunity:O,onSetAllVisible:E,collapsed:_,onToggleCollapsed:P}){const[Q,ne]=F.useState(0),j=e?av(e):void 0,V=e?O3(e):void 0,de=e?lv(e):void 0,le=F.useMemo(()=>{const K=new Map;for(const re of n.nodes)K.set(re.community,(K.get(re.community)??0)+1);return K},[n.nodes]),Ze=A.size===0,Ee=F.useMemo(()=>new Map(n.nodes.map(K=>[K.id,K])),[n.nodes]),We=(e?c?.nodes.find(K=>K.id===e.id):void 0)?.evidence??e?.codeEvidence??[],Ae=e?c?c.edges.filter(K=>K.source===e.id||K.target===e.id).flatMap(K=>K.evidence):i.flatMap(K=>K.codeEvidence??[]):[],M=K=>{y(K.id),m(""),ne(0)},U=K=>{!r.length&&K.key!=="Escape"||(K.key==="ArrowDown"?(K.preventDefault(),ne((Q+1)%r.length)):K.key==="ArrowUp"?(K.preventDefault(),ne((Q-1+r.length)%r.length)):K.key==="Enter"&&r[Q]?(K.preventDefault(),M(r[Q])):K.key==="Escape"&&(m(""),ne(0)))};return _?f.jsxs("aside",{className:"compass-graph-inspector compass-graph-inspector-collapsed","aria-label":"Graph inspector",children:[f.jsx("button",{className:"compass-inspector-disclosure compass-inspector-expand",type:"button","aria-label":"Expand graph inspector",title:"Expand graph inspector",onClick:P,children:f.jsx(o3,{"aria-hidden":"true"})}),f.jsx("span",{className:"compass-inspector-rail-label","aria-hidden":"true",children:"Inspector"})]}):f.jsxs("aside",{className:"compass-graph-inspector","aria-label":"Graph inspector",children:[p&&f.jsxs("header",{className:"compass-inspector-header",children:[f.jsx("span",{className:"compass-product-mark","aria-hidden":"true",children:f.jsx(WR,{})}),f.jsxs("span",{className:"compass-inspector-title",children:[f.jsx("strong",{children:"Compass"}),f.jsx("small",{children:n.title})]}),f.jsx("button",{className:"compass-inspector-disclosure",type:"button","aria-label":"Collapse graph inspector",title:"Collapse graph inspector",onClick:P,children:f.jsx(Fm,{"aria-hidden":"true"})})]}),f.jsxs("div",{className:"compass-inspector-search",role:"search",children:[f.jsx("label",{className:"sr-only",htmlFor:"compass-node-search",children:"Search graph nodes"}),f.jsxs("div",{className:"compass-inspector-search-row",children:[f.jsxs("div",{className:"compass-search-field",children:[f.jsx(Wm,{"aria-hidden":"true"}),f.jsx("input",{id:"compass-node-search",type:"search",role:"combobox",value:o,placeholder:"Search nodes and files",autoComplete:"off","aria-controls":"compass-search-results","aria-autocomplete":"list","aria-expanded":r.length>0,"aria-activedescendant":r[Q]?`compass-search-result-${Q}`:void 0,onChange:K=>{m(K.target.value),ne(0)},onKeyDown:U})]}),!p&&f.jsx("button",{className:"compass-inspector-disclosure compass-inspector-search-disclosure",type:"button","aria-label":"Collapse graph inspector",title:"Collapse graph inspector",onClick:P,children:f.jsx(Fm,{"aria-hidden":"true"})})]}),r.length>0&&f.jsx("div",{id:"compass-search-results",className:"compass-search-results",role:"listbox","aria-label":"Matching nodes",children:r.map((K,re)=>f.jsxs("button",{id:`compass-search-result-${re}`,type:"button",role:"option","aria-selected":re===Q,className:"compass-search-item",onMouseEnter:()=>ne(re),onClick:()=>M(K),children:[f.jsx("strong",{children:K.label}),f.jsx("span",{children:K.source?.file??K.kind??"Graph node"})]},K.id))})]}),f.jsxs("section",{className:"compass-info-panel","aria-labelledby":"compass-info-title",children:[f.jsxs("div",{className:"compass-section-heading",children:[f.jsx("h2",{id:"compass-info-title",children:"Inspector"}),f.jsx("span",{children:e?"Pinned":"Node details"})]}),e?f.jsxs("div",{className:"compass-info-content",children:[f.jsxs("div",{className:"compass-node-identity",children:[f.jsx("span",{className:"compass-node-swatch","aria-hidden":"true",style:{background:N3(e.change)??e.color?.background??n.communities.find(K=>K.id===e.community)?.color}}),f.jsxs("span",{children:[f.jsx("strong",{children:e.label}),f.jsx("small",{children:e.kind??"Symbol"})]}),dv(e.change)&&f.jsx("span",{className:"compass-change-badge","data-change":e.change,children:dv(e.change)})]}),f.jsxs("dl",{className:"compass-metadata-grid",children:[f.jsxs("div",{children:[f.jsx("dt",{children:"Community"}),f.jsx("dd",{children:e.communityName??n.communities.find(K=>K.id===e.community)?.label??e.community})]}),f.jsxs("div",{children:[f.jsx("dt",{children:"Degree"}),f.jsx("dd",{children:e.degree??t.length})]}),e.language&&f.jsxs("div",{children:[f.jsx("dt",{children:"Language"}),f.jsx("dd",{children:e.language})]}),V&&f.jsxs("div",{children:[f.jsx("dt",{children:"Lines"}),f.jsx("dd",{children:V})]}),f.jsx("div",{className:"compass-metadata-wide compass-source-metadata","data-interactive":j!==void 0,children:j?f.jsxs(f.Fragment,{children:[f.jsx("dt",{className:"sr-only",children:"Source"}),f.jsx("dd",{children:f.jsxs("button",{className:"compass-source-card",type:"button","aria-label":cv(e,j),title:cv(e,j),onClick:()=>w(j,e.change==="removed"?l?.before:l?.after),children:[f.jsxs("span",{className:"compass-source-copy",children:[f.jsx("span",{className:"compass-source-eyebrow","aria-hidden":"true",children:"Source"}),f.jsx("span",{className:"compass-source-path",children:j.file}),de&&f.jsx("span",{className:"compass-source-range",children:de.text})]}),f.jsx(VA,{"aria-hidden":"true"})]})})]}):f.jsxs(f.Fragment,{children:[f.jsx("dt",{children:"Source"}),f.jsx("dd",{title:e.source?.file??"Not recorded",children:e.source?.file??"Not recorded"})]})})]}),e.signature&&f.jsx("code",{className:"compass-signature-block",children:e.signature}),x&&f.jsxs("div",{className:"compass-code-query-actions","aria-label":"Code graph queries",children:[f.jsx("button",{type:"button",onClick:()=>x("callers",e.id),children:"Callers"}),f.jsx("button",{type:"button",onClick:()=>x("callees",e.id),children:"Callees"}),f.jsx("button",{type:"button",onClick:()=>x("impact",e.id),children:"Impact"})]}),f.jsx(sv,{evidence:We,diagnostics:c?.diagnostics,truncated:c?.truncated,title:"Node evidence",onOpenSource:w}),f.jsx(sv,{evidence:Ae,title:"Relationship evidence",onOpenSource:w}),n.stats.aggregated&&e.memberCount!==void 0&&e.detailAvailable!==!1&&S&&f.jsxs("button",{className:"compass-inspector-action",type:"button",onClick:()=>S(e.community),children:[I?"Inspect changes":"Open community",f.jsxs("span",{children:[e.memberCount.toLocaleString()," ",I?"current symbols":"members"]})]}),n.stats.aggregated&&e.memberCount!==void 0&&e.detailAvailable===!1&&f.jsx("p",{className:"compass-empty",children:"This community detail was omitted to keep the standalone HTML export bounded. Open the graph in VS Code or export this community as JSON for full inspection."}),I?f.jsx(v3,{node:e,edges:i,nodes:Ee,sourceRevisions:l,onFocus:y,onOpenSource:w}):f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"compass-neighbors-heading",children:[f.jsx("span",{children:"Connected nodes"}),f.jsx("strong",{children:t.length})]}),f.jsx("div",{className:"compass-neighbors-list",children:t.length?t.map(K=>f.jsxs("button",{type:"button",className:"compass-neighbor-link",title:K.label,onClick:()=>y(K.id),children:[f.jsx("span",{className:"compass-neighbor-dot","aria-hidden":"true",style:{background:K.color?.background??n.communities.find(re=>re.id===K.community)?.color??"var(--border)"}}),f.jsx("span",{className:"compass-neighbor-label",children:K.label})]},K.id)):f.jsx("span",{className:"compass-empty",children:"No connected nodes"})})]})]}):f.jsx("p",{className:"compass-empty",children:"Select a node to inspect its relationships."})]}),I&&!n.stats.aggregated&&f.jsx(b3,{nodes:n.nodes,query:o,selectedId:e?.id,onFocus:y}),f.jsx("section",{className:"compass-community-panel","aria-labelledby":"compass-communities-title","data-secondary":I,children:I?f.jsxs("details",{children:[f.jsxs("summary",{id:"compass-communities-title",children:["Communities",f.jsx("span",{children:n.communities.length})]}),f.jsx(uv,{model:n,communityCounts:le,hiddenCommunities:A,allVisible:Ze,onSetAllVisible:E,onToggleCommunity:O})]}):f.jsxs(f.Fragment,{children:[f.jsx("h2",{id:"compass-communities-title",children:"Communities"}),f.jsx(uv,{model:n,communityCounts:le,hiddenCommunities:A,allVisible:Ze,onSetAllVisible:E,onToggleCommunity:O})]})}),f.jsxs("footer",{className:"compass-graph-stats",children:[n.stats.nodes.toLocaleString()," nodes · ",n.stats.edges.toLocaleString()," edges",hT3(n.communities,A),[n.communities,A]),c=F.useMemo(()=>{const h=A.trim().toLocaleLowerCase();return h?n.communities.filter(p=>p.label.toLocaleLowerCase().includes(h)||String(p.id).includes(h)).length:n.communities.length},[n.communities,A]);return f.jsxs("div",{className:"compass-community-controls",children:[f.jsxs("label",{className:"compass-community-control",children:[f.jsx("input",{type:"checkbox",checked:i,onChange:h=>o(h.target.checked)}),f.jsx("span",{children:"Select all"})]}),n.communities.length>Iv&&f.jsxs("label",{className:"compass-community-search",children:[f.jsx("span",{className:"sr-only",children:"Filter communities"}),f.jsx(Wm,{"aria-hidden":"true"}),f.jsx("input",{type:"search",value:A,placeholder:"Filter communities",onChange:h=>I(h.target.value)})]}),f.jsx("div",{className:"compass-community-list",children:l.map(h=>{const p=!t.has(h.id);return f.jsxs("label",{className:"compass-community-item","data-hidden":!p,children:[f.jsx("input",{type:"checkbox",checked:p,onChange:()=>r(h.id)}),f.jsx("span",{className:"compass-community-dot","aria-hidden":"true",style:{background:h.color}}),f.jsx("span",{className:"compass-community-label",children:h.label}),f.jsx("small",{children:e.get(h.id)??0})]},h.id)})}),c>l.length&&f.jsxs("p",{className:"compass-community-limit",role:"status",children:["Showing ",l.length.toLocaleString()," of"," ",c.toLocaleString()," communities. Filter to find another community."]})]})}function M3({className:n="compass-load-logo"}){return f.jsx("svg",{className:n,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:f.jsx("path",{fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd",d:"M3.554 21.529c1.797 1.221 4.943-.038 11.236-2.554 1.342-.537 2.013-.806 2.54-1.267q.201-.177.378-.378c.461-.527.73-1.198 1.267-2.54 2.515-6.293 3.775-9.44 2.554-11.236a4.1 4.1 0 0 0-1.083-1.083c-1.797-1.221-4.944.037-11.236 2.554-1.342.537-2.013.806-2.54 1.267q-.201.177-.378.378c-.461.527-.73 1.198-1.267 2.54-2.517 6.292-3.775 9.439-2.554 11.236.29.426.657.793 1.083 1.083M8.25 12a3.75 3.75 0 1 1 7.5 0 3.75 3.75 0 0 1-7.5 0m1.5 0a2.25 2.25 0 1 1 4.5 0 2.25 2.25 0 0 1-4.5 0"})})}const z3=1e4;function hv(n){const[e,t]=F.useState(!1);F.useEffect(()=>{if(n.kind!=="layout"){t(!1);return}const A=window.setTimeout(()=>{t(!0)},z3);return()=>window.clearTimeout(A)},[n.kind]);const i=n.kind==="community",o=i?`Opening ${n.communityLabel}`:e?"Still arranging this graph":"Arranging graph layout",r=i?"Fetching symbols and relationships for this community.":e?"This graph is taking longer than expected. You can open the current layout now.":"Positioning nodes and relationships for a readable first view.";return f.jsxs("section",{className:"compass-graph-transition","data-kind":n.kind,role:"status","aria-live":"polite","aria-atomic":"true",children:[f.jsxs("div",{className:"compass-load-visual","data-state":"loading","aria-hidden":"true",children:[f.jsx("span",{className:"compass-load-mark",children:f.jsx(M3,{})}),f.jsx("span",{className:"compass-load-progress",children:f.jsx("i",{})})]}),f.jsxs("div",{className:"compass-load-copy",children:[f.jsx("span",{className:"compass-load-eyebrow",children:"Compass graph"}),f.jsx("h1",{children:o}),f.jsx("p",{className:"compass-graph-transition-description",children:r}),!i&&e&&f.jsx("div",{className:"compass-load-actions",children:f.jsx("button",{className:"compass-load-action compass-load-action-primary",type:"button",onClick:n.onShowGraph,children:"Show graph now"})})]})]})}function k3(n){return n instanceof HTMLElement&&(n.isContentEditable||n.tagName==="INPUT"||n.tagName==="TEXTAREA"||n.tagName==="SELECT")}function R3({status:n,physicsRunning:e,layoutStyle:t,forceLabels:i,showEdgeLabels:o,hasSelection:r,isolateSelection:A,neighborhoodDepth:I,edgeDirection:l,layoutSpacing:c,showMinimap:h,leadingControls:p,leadingPanel:m,leadingPanelOpen:y,onLeadingPanelClose:w,onTogglePhysics:S,onLayoutChange:x,onZoomOut:O,onResetZoom:E,onZoomIn:_,onFit:P,onFitSelection:Q,onReset:ne,onToggleLabels:j,onToggleEdgeLabels:V,onToggleIsolation:de,onNeighborhoodDepthChange:le,onEdgeDirectionChange:Ze,onLayoutSpacingChange:Ee,onToggleMinimap:Ue,onBack:We}){const[Ae,M]=F.useState(!1),U=F.useId(),K=F.useRef(null),re=F.useRef(null),ee=F.useRef(!1);return F.useEffect(()=>{y&&M(!1)},[y]),F.useEffect(()=>{Ae||!ee.current||(ee.current=!1,re.current?.focus())},[Ae]),F.useEffect(()=>{const T=te=>{if(te.key==="Escape"){Ae&&(ee.current=!0,M(!1));return}te.key!=="?"||k3(te.target)||(te.preventDefault(),w?.(),M(!0))},L=te=>{K.current?.contains(te.target)||M(!1)};return document.addEventListener("keydown",T),document.addEventListener("pointerdown",L),()=>{document.removeEventListener("keydown",T),document.removeEventListener("pointerdown",L)}},[w,Ae]),f.jsxs("div",{ref:K,className:"compass-graph-toolbar compass-glass-panel",role:"toolbar","aria-label":"Graph controls",children:[f.jsxs("div",{className:"compass-viewer-status","data-state":e?"running":"paused",role:"status","aria-live":"polite",children:[f.jsx("span",{className:"compass-viewer-status-dot","aria-hidden":"true"}),f.jsx("span",{className:"compass-viewer-status-text",children:n})]}),f.jsxs("div",{className:"compass-toolbar-actions",children:[We&&f.jsxs("button",{className:"compass-tool-button",type:"button","aria-label":"Back to community overview",onClick:We,children:[f.jsx(GR,{}),f.jsx("span",{children:"Overview"})]}),f.jsxs("label",{className:"compass-layout-picker",children:[f.jsx(JR,{"aria-hidden":"true"}),f.jsx("span",{className:"sr-only",children:"Graph layout"}),f.jsxs("select",{"aria-label":"Graph layout",value:t,onChange:T=>x(T.target.value),children:[f.jsx("option",{value:"automatic",children:"Automatic"}),f.jsx("option",{value:"circle",children:"Circle"}),f.jsx("option",{value:"concentric",children:"Concentric"}),f.jsx("option",{value:"spiral",children:"Spiral"}),f.jsx("option",{value:"grid",children:"Square grid"})]})]}),f.jsxs("button",{className:"compass-tool-button compass-physics-button",type:"button","aria-label":e?"Stop layout":t==="automatic"?"Run layout":"Fixed layout","aria-pressed":e,disabled:t!=="automatic",title:t==="automatic"?e?"Stop layout":"Run layout":"Physics is available in Automatic layout",onClick:S,children:[e?f.jsx(Vm,{}):t==="automatic"?f.jsx(s3,{}):f.jsx(Vm,{}),f.jsx("span",{children:e?"Stop":t==="automatic"?"Layout":"Fixed"})]}),f.jsx("span",{className:"compass-toolbar-separator","aria-hidden":"true"}),f.jsxs("div",{className:"compass-zoom-controls",role:"group","aria-label":"Zoom controls",children:[f.jsx("button",{className:"compass-tool-button compass-tool-icon-button",type:"button","aria-label":"Zoom out",title:"Zoom out",onClick:O,children:f.jsx(u3,{})}),f.jsx("button",{className:"compass-tool-button compass-zoom-reset",type:"button","aria-label":"Reset zoom to 100%",title:"Reset zoom to 100%",onClick:E,children:"100%"}),f.jsx("button",{className:"compass-tool-button compass-tool-icon-button",type:"button","aria-label":"Zoom in",title:"Zoom in",onClick:_,children:f.jsx(d3,{})})]}),f.jsx("button",{className:"compass-tool-button compass-tool-icon-button",type:"button","aria-label":"Fit graph in view",title:"Fit graph in view",onClick:P,children:f.jsx(Gm,{})}),f.jsx("button",{className:"compass-tool-button compass-tool-icon-button",type:"button","aria-label":"Fit selected neighborhood",title:r?`Fit the selected node and its ${I}-hop neighborhood`:"Select a node to fit its neighborhood",disabled:!r,onClick:Q,children:f.jsx($R,{})}),f.jsx("button",{className:"compass-tool-button compass-tool-icon-button",type:"button","aria-label":"Reset graph view",title:"Reset graph view",onClick:ne,children:f.jsx(Ym,{})}),f.jsx("button",{className:"compass-tool-button compass-tool-icon-button",type:"button","aria-label":i?"Hide labels":"Show labels","aria-pressed":i,title:i?"Hide node labels":"Show all node labels",onClick:j,children:f.jsx(l3,{})}),f.jsx("button",{className:"compass-tool-button compass-tool-icon-button",type:"button","aria-label":o?"Hide relationship labels":"Show relationship labels","aria-pressed":o,title:o?"Hide relationship labels":"Show relationship labels",onClick:V,children:f.jsx(Hm,{})}),f.jsx("button",{ref:re,className:"compass-tool-button compass-tool-icon-button",type:"button","aria-label":"Graph settings","aria-expanded":Ae,"aria-controls":U,title:"Graph settings (?)",onClick:()=>M(T=>{const L=!T;return L&&w?.(),L}),children:f.jsx(a3,{})}),p?f.jsx("div",{className:"compass-toolbar-leading",children:p}):null]}),m,Ae?f.jsxs("div",{id:U,className:"compass-explore-panel compass-glass-panel",role:"region","aria-label":"Graph exploration controls",children:[f.jsxs("div",{className:"compass-explore-heading",children:[f.jsxs("div",{children:[f.jsx("strong",{children:"Graph settings"}),f.jsx("span",{children:r?"Tune the selected neighborhood and canvas":"Set the next neighborhood, then select a node"})]}),f.jsx("kbd",{children:"?"})]}),r?null:f.jsxs("div",{className:"compass-selection-prompt",role:"note",children:[f.jsx(Km,{"aria-hidden":"true"}),f.jsxs("span",{children:[f.jsx("strong",{children:"Select a node to isolate it"}),f.jsx("small",{children:"Use the canvas or node search. Depth and direction can be set now."})]})]}),f.jsxs("button",{className:"compass-explore-toggle",type:"button","aria-label":"Isolate selection","aria-pressed":A,disabled:!r,onClick:de,children:[f.jsx(Km,{"aria-hidden":"true"}),f.jsxs("span",{children:[f.jsx("strong",{children:"Isolate selection"}),f.jsx("small",{children:"Hide everything outside the traversal"})]}),f.jsx("i",{"aria-hidden":"true"})]}),f.jsxs("fieldset",{className:"compass-explore-field",children:[f.jsx("legend",{children:"Neighborhood depth"}),f.jsx("div",{className:"compass-segmented-control","aria-label":"Neighborhood depth",children:[1,2,3,4].map(T=>f.jsx("button",{type:"button","aria-label":`${T} hop${T===1?"":"s"}`,"aria-pressed":I===T,onClick:()=>le(T),children:T},T))})]}),f.jsxs("fieldset",{className:"compass-explore-field",children:[f.jsx("legend",{children:"Edge direction"}),f.jsx("div",{className:"compass-segmented-control","aria-label":"Edge direction",children:[["both","Both"],["outgoing","Out"],["incoming","In"]].map(([T,L])=>f.jsx("button",{type:"button","aria-label":`${L==="Both"?"Both directions":L==="Out"?"Outgoing edges":"Incoming edges"}`,"aria-pressed":l===T,onClick:()=>Ze(T),children:L},T))})]}),f.jsxs("label",{className:"compass-explore-select",children:[f.jsx("span",{children:"Layout spacing"}),f.jsxs("select",{"aria-label":"Layout spacing",value:c,onChange:T=>Ee(Number(T.target.value)),children:[f.jsx("option",{value:.75,children:"Compact · 75%"}),f.jsx("option",{value:1,children:"Default · 100%"}),f.jsx("option",{value:1.25,children:"Airy · 125%"}),f.jsx("option",{value:1.5,children:"Wide · 150%"})]})]}),f.jsxs("button",{className:"compass-explore-toggle",type:"button","aria-label":"Show minimap","aria-pressed":h,onClick:Ue,children:[f.jsx(e3,{"aria-hidden":"true"}),f.jsxs("span",{children:[f.jsx("strong",{children:"Show minimap"}),f.jsx("small",{children:"Track and reposition the visible viewport"})]}),f.jsx("i",{"aria-hidden":"true"})]}),f.jsxs("div",{className:"compass-shortcut-guide","aria-label":"Graph keyboard shortcuts",children:[f.jsxs("div",{className:"compass-shortcut-title",children:[f.jsx(qR,{"aria-hidden":"true"}),f.jsx("strong",{children:"Keyboard"})]}),f.jsxs("dl",{children:[f.jsxs("div",{children:[f.jsx("dt",{children:f.jsx("kbd",{children:"F"})}),f.jsx("dd",{children:"Fit graph"})]}),f.jsxs("div",{children:[f.jsx("dt",{children:f.jsx("kbd",{children:"⇧ F"})}),f.jsx("dd",{children:"Fit selection"})]}),f.jsxs("div",{children:[f.jsxs("dt",{children:[f.jsx("kbd",{children:"+"})," ",f.jsx("kbd",{children:"−"})]}),f.jsx("dd",{children:"Zoom"})]}),f.jsxs("div",{children:[f.jsx("dt",{children:f.jsx("kbd",{children:"0"})}),f.jsx("dd",{children:"100% zoom"})]}),f.jsxs("div",{children:[f.jsx("dt",{children:f.jsx("kbd",{children:"I"})}),f.jsx("dd",{children:"Isolate"})]}),f.jsxs("div",{children:[f.jsxs("dt",{children:[f.jsx("kbd",{children:"["})," ",f.jsx("kbd",{children:"]"})]}),f.jsx("dd",{children:"Depth"})]}),f.jsxs("div",{children:[f.jsx("dt",{children:f.jsx("kbd",{children:"D"})}),f.jsx("dd",{children:"Direction"})]}),f.jsxs("div",{children:[f.jsx("dt",{children:f.jsx("kbd",{children:"M"})}),f.jsx("dd",{children:"Minimap"})]})]})]})]}):null]})}const fv=280,pv=560,mv=24,Ic={width:340,collapsed:!1};function _r(n){return Number.isFinite(n)?Math.min(pv,Math.max(fv,Math.round(n))):Ic.width}function vv(n){return{width:_r(n?.width??Ic.width),collapsed:n?.collapsed??Ic.collapsed}}function _3(n,e){return _r(n-e)}function j3(n,e){return _r(e==="ArrowLeft"?n+mv:e==="ArrowRight"?n-mv:n)}function Z3({width:n,onResize:e}){const t=F.useRef(!1),i=o=>{t.current=!1,o.currentTarget.hasPointerCapture(o.pointerId)&&o.currentTarget.releasePointerCapture(o.pointerId)};return f.jsx("div",{className:"compass-inspector-resizer",role:"separator","aria-label":"Resize graph inspector","aria-orientation":"vertical","aria-valuemin":fv,"aria-valuemax":pv,"aria-valuenow":n,tabIndex:0,onPointerDown:o=>{t.current=!0,o.currentTarget.setPointerCapture(o.pointerId)},onPointerMove:o=>{if(!t.current)return;const r=o.currentTarget.parentElement;r&&e(_3(r.getBoundingClientRect().right,o.clientX))},onPointerUp:i,onPointerCancel:i,onKeyDown:o=>{o.key!=="ArrowLeft"&&o.key!=="ArrowRight"||(o.preventDefault(),e(j3(n,o.key)))},children:f.jsx("span",{"aria-hidden":"true"})})}function yv(n,e,t){if(t===void 0&&n.stats.aggregated&&e.memberCount!==void 0&&e.detailAvailable!==!1)return{type:"community",communityId:e.community};const i=av(e);return i?{type:"source",source:i}:{type:"none"}}function B3(n){const e=n.source?.startLine,t=n.source?.endLine;if(e!==void 0)return t!==void 0&&t!==e?`${e}–${t}`:String(e)}function P3({node:n,hover:e,activation:t}){const i={"--compass-hover-x":`${e.x+18}px`,"--compass-hover-y":`${e.y-42}px`},o=B3(n);return f.jsxs("div",{className:"compass-node-hover-card",role:"tooltip",style:i,children:[f.jsxs("div",{className:"compass-hover-heading",children:[f.jsx("strong",{children:n.label}),f.jsx("span",{children:(n.kind??"symbol").toLocaleUpperCase()})]}),n.change&&f.jsx("span",{className:"compass-change-badge","data-change":n.change,children:n.change==="unchanged"?"Context":`${n.change[0]?.toLocaleUpperCase()}${n.change.slice(1)}`}),n.memberCount!==void 0?f.jsxs("p",{children:[n.memberCount.toLocaleString()," symbols"]}):f.jsxs(f.Fragment,{children:[n.language&&f.jsxs("p",{children:["Language: ",n.language]}),n.source?.file&&f.jsx("p",{className:"compass-hover-source",children:n.source.file}),o&&f.jsxs("p",{children:["Lines: ",o]}),n.signature&&f.jsx("code",{children:n.signature})]}),t.type!=="none"&&f.jsxs("p",{className:"compass-hover-hint",children:[t.type==="community"?f.jsx(ac,{"aria-hidden":"true"}):f.jsx(QR,{"aria-hidden":"true"}),f.jsxs("span",{children:[f.jsx("strong",{children:"Double-click"})," ",t.type==="community"?"to open community subgraph":"to open source code"]})]})]})}const L3={routes_to:"routes to",publishes:"publishes",subscribes:"subscribes",produces:"produces",consumes:"consumes",schedules:"schedules",triggers:"triggers",handles:"handles",registers:"registers",reads:"reads",writes:"writes",maps_to:"maps to",depends_on:"depends on"};function G3(n){const e=n.relation.trim(),t=L3[e]??e,i=n.details?.type==="route"?n.details.data:void 0,o=i?`${i.stage}${i.position===null||i.position===void 0?"":` ${i.position+1}`}`:void 0;return[t,o,i?.operation].filter(r=>r!==void 0&&r!=="").join(" · ")}function F3(n){if(!n?.file.trim())return"";const e=n.startLine,t=n.endLine;if(e!==void 0){const i=t!==void 0&&t!==e?`${e}–${t}`:String(e);return`${n.file}:${i}`}return n.startByte!==void 0?`${n.file}:byte ${n.startByte}`:n.file}function V3(n){const e=n.confidence;return e?`${e[0]?.toLocaleUpperCase()}${e.slice(1)}`:"Unspecified"}function U3(n){if(n)return n==="unchanged"?"Context":`${n[0]?.toLocaleUpperCase()}${n.slice(1)}`}function Y3({edge:n,sourceNode:e,targetNode:t,hover:i}){const o={"--compass-hover-x":`${i.x+18}px`,"--compass-hover-y":`${i.y-52}px`},r=F3(n.relationshipSite),A=n.codeEvidence?.[0],I=U3(n.change),l=Av(n)!==void 0;return f.jsxs("div",{className:"compass-edge-hover-card",role:"tooltip",style:o,children:[f.jsxs("div",{className:"compass-edge-hover-heading",children:[f.jsxs("span",{className:"compass-edge-hover-eyebrow",children:[f.jsx(Pm,{"aria-hidden":"true"}),"Relationship"]}),f.jsx("span",{className:"compass-edge-confidence","data-confidence":n.confidence??"unspecified",children:V3(n)})]}),f.jsxs("div",{className:"compass-edge-trace","aria-label":`${e.label} to ${t.label}`,children:[f.jsx("strong",{children:e.label}),f.jsx("span",{"aria-hidden":"true",children:f.jsx(FR,{})}),f.jsx("strong",{children:t.label})]}),f.jsxs("div",{className:"compass-edge-relation-row",children:[f.jsx("strong",{children:G3(n)||"Relationship"}),I&&f.jsx("span",{className:"compass-change-badge","data-change":n.change,children:I})]}),(A||r)&&f.jsxs("div",{className:"compass-edge-metadata",children:[A&&f.jsxs("p",{children:[f.jsx("span",{children:"Evidence"}),f.jsx("code",{children:A.rule??A.origin})]}),r&&f.jsxs("p",{children:[f.jsx("span",{children:"Source"}),f.jsx("code",{children:r})]})]}),l&&f.jsxs("p",{className:"compass-hover-hint",children:[f.jsx(Pm,{"aria-hidden":"true"}),f.jsxs("span",{children:[f.jsx("strong",{children:"Double-click"})," to open relationship source"]})]})]})}var lc=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ne(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var WA=function(n){return n&&n.Math===Math&&n},_t=WA(typeof globalThis=="object"&&globalThis)||WA(typeof window=="object"&&window)||WA(typeof self=="object"&&self)||WA(typeof lc=="object"&&lc)||(function(){return this})()||lc||Function("return this")(),it=function(n){try{return!!n()}catch{return!0}},H3=it,jr=!H3(function(){var n=(function(){}).bind();return typeof n!="function"||n.hasOwnProperty("prototype")}),K3=jr,bv=Function.prototype,wv=bv.apply,xv=bv.call,QA=typeof Reflect=="object"&&Reflect.apply||(K3?xv.bind(wv):function(){return xv.apply(wv,arguments)}),Sv=jr,Ev=Function.prototype,cc=Ev.call,W3=Sv&&Ev.bind.bind(cc,cc),gt=Sv?W3:function(n){return function(){return cc.apply(n,arguments)}},Tv=gt,Q3=Tv({}.toString),X3=Tv("".slice),Yi=function(n){return X3(Q3(n),8,-1)},$3=Yi,q3=gt,dc=function(n){if($3(n)==="Function")return q3(n)},uc=typeof document=="object"&&document.all,J3=typeof uc>"u"&&uc!==void 0,Ov={all:uc,IS_HTMLDDA:J3},Nv=Ov,e_=Nv.all,ln=Nv.IS_HTMLDDA?function(n){return typeof n=="function"||n===e_}:function(n){return typeof n=="function"},Zr={},t_=it,nn=!t_(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),n_=jr,XA=Function.prototype.call,ui=n_?XA.bind(XA):function(){return XA.apply(XA,arguments)},Br={},Dv={}.propertyIsEnumerable,Mv=Object.getOwnPropertyDescriptor,i_=Mv&&!Dv.call({1:2},1);Br.f=i_?function(e){var t=Mv(this,e);return!!t&&t.enumerable}:Dv;var Pr=function(n,e){return{enumerable:!(n&1),configurable:!(n&2),writable:!(n&4),value:e}},g_=gt,o_=it,s_=Yi,hc=Object,r_=g_("".split),$A=o_(function(){return!hc("z").propertyIsEnumerable(0)})?function(n){return s_(n)==="String"?r_(n,""):hc(n)}:hc,as=function(n){return n==null},a_=as,A_=TypeError,Lr=function(n){if(a_(n))throw new A_("Can't call method on "+n);return n},C_=$A,I_=Lr,hi=function(n){return C_(I_(n))},zv=ln,kv=Ov,l_=kv.all,yn=kv.IS_HTMLDDA?function(n){return typeof n=="object"?n!==null:zv(n)||n===l_}:function(n){return typeof n=="object"?n!==null:zv(n)},st={},fc=st,pc=_t,c_=ln,Rv=function(n){return c_(n)?n:void 0},fi=function(n,e){return arguments.length<2?Rv(fc[n])||Rv(pc[n]):fc[n]&&fc[n][e]||pc[n]&&pc[n][e]},d_=gt,jt=d_({}.isPrototypeOf),Gr=typeof navigator<"u"&&String(navigator.userAgent)||"",_v=_t,mc=Gr,jv=_v.process,Zv=_v.Deno,Bv=jv&&jv.versions||Zv&&Zv.version,Pv=Bv&&Bv.v8,pi,qA;Pv&&(pi=Pv.split("."),qA=pi[0]>0&&pi[0]<4?1:+(pi[0]+pi[1])),!qA&&mc&&(pi=mc.match(/Edge\/(\d+)/),(!pi||pi[1]>=74)&&(pi=mc.match(/Chrome\/(\d+)/),pi&&(qA=+pi[1])));var Fr=qA,Lv=Fr,u_=it,h_=_t,f_=h_.String,As=!!Object.getOwnPropertySymbols&&!u_(function(){var n=Symbol("symbol detection");return!f_(n)||!(Object(n)instanceof Symbol)||!Symbol.sham&&Lv&&Lv<41}),p_=As,Gv=p_&&!Symbol.sham&&typeof Symbol.iterator=="symbol",m_=fi,v_=ln,y_=jt,b_=Gv,w_=Object,Vr=b_?function(n){return typeof n=="symbol"}:function(n){var e=m_("Symbol");return v_(e)&&y_(e.prototype,w_(n))},x_=String,Ur=function(n){try{return x_(n)}catch{return"Object"}},S_=ln,E_=Ur,T_=TypeError,fo=function(n){if(S_(n))return n;throw new T_(E_(n)+" is not a function")},O_=fo,N_=as,vc=function(n,e){var t=n[e];return N_(t)?void 0:O_(t)},yc=ui,bc=ln,wc=yn,D_=TypeError,M_=function(n,e){var t,i;if(e==="string"&&bc(t=n.toString)&&!wc(i=yc(t,n))||bc(t=n.valueOf)&&!wc(i=yc(t,n))||e!=="string"&&bc(t=n.toString)&&!wc(i=yc(t,n)))return i;throw new D_("Can't convert object to primitive value")},Fv={exports:{}},Vv=_t,z_=Object.defineProperty,k_=function(n,e){try{z_(Vv,n,{value:e,configurable:!0,writable:!0})}catch{Vv[n]=e}return e},R_=_t,__=k_,Uv="__core-js_shared__",j_=R_[Uv]||__(Uv,{}),xc=j_,Yv=xc;(Fv.exports=function(n,e){return Yv[n]||(Yv[n]=e!==void 0?e:{})})("versions",[]).push({version:"3.33.0",mode:"pure",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.33.0/LICENSE",source:"https://github.com/zloirock/core-js"});var Cs=Fv.exports,Z_=Lr,B_=Object,Gn=function(n){return B_(Z_(n))},P_=gt,L_=Gn,G_=P_({}.hasOwnProperty),gn=Object.hasOwn||function(e,t){return G_(L_(e),t)},F_=gt,V_=0,U_=Math.random(),Y_=F_(1 .toString),JA=function(n){return"Symbol("+(n===void 0?"":n)+")_"+Y_(++V_+U_,36)},H_=_t,K_=Cs,Hv=gn,W_=JA,Q_=As,X_=Gv,Is=H_.Symbol,Sc=K_("wks"),$_=X_?Is.for||Is:Is&&Is.withoutSetter||W_,Ft=function(n){return Hv(Sc,n)||(Sc[n]=Q_&&Hv(Is,n)?Is[n]:$_("Symbol."+n)),Sc[n]},q_=ui,Kv=yn,Wv=Vr,J_=vc,e5=M_,t5=Ft,n5=TypeError,i5=t5("toPrimitive"),g5=function(n,e){if(!Kv(n)||Wv(n))return n;var t=J_(n,i5),i;if(t){if(e===void 0&&(e="default"),i=q_(t,n,e),!Kv(i)||Wv(i))return i;throw new n5("Can't convert object to primitive value")}return e===void 0&&(e="number"),e5(n,e)},o5=g5,s5=Vr,eC=function(n){var e=o5(n,"string");return s5(e)?e:e+""},r5=_t,Qv=yn,Ec=r5.document,a5=Qv(Ec)&&Qv(Ec.createElement),Xv=function(n){return a5?Ec.createElement(n):{}},A5=nn,C5=it,I5=Xv,$v=!A5&&!C5(function(){return Object.defineProperty(I5("div"),"a",{get:function(){return 7}}).a!==7}),l5=nn,c5=ui,d5=Br,u5=Pr,h5=hi,f5=eC,p5=gn,m5=$v,qv=Object.getOwnPropertyDescriptor;Zr.f=l5?qv:function(e,t){if(e=h5(e),t=f5(t),m5)try{return qv(e,t)}catch{}if(p5(e,t))return u5(!c5(d5.f,e,t),e[t])};var v5=it,y5=ln,b5=/#|\.prototype\./,Yr=function(n,e){var t=x5[w5(n)];return t===E5?!0:t===S5?!1:y5(e)?v5(e):!!e},w5=Yr.normalize=function(n){return String(n).replace(b5,".").toLowerCase()},x5=Yr.data={},S5=Yr.NATIVE="N",E5=Yr.POLYFILL="P",T5=Yr,Jv=dc,O5=fo,N5=jr,D5=Jv(Jv.bind),Hr=function(n,e){return O5(n),e===void 0?n:N5?D5(n,e):function(){return n.apply(e,arguments)}},Fn={},M5=nn,z5=it,ey=M5&&z5(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),k5=yn,R5=String,_5=TypeError,Hi=function(n){if(k5(n))return n;throw new _5(R5(n)+" is not an object")},j5=nn,Z5=$v,B5=ey,tC=Hi,ty=eC,P5=TypeError,Tc=Object.defineProperty,L5=Object.getOwnPropertyDescriptor,Oc="enumerable",Nc="configurable",Dc="writable";Fn.f=j5?B5?function(e,t,i){if(tC(e),t=ty(t),tC(i),typeof e=="function"&&t==="prototype"&&"value"in i&&Dc in i&&!i[Dc]){var o=L5(e,t);o&&o[Dc]&&(e[t]=i.value,i={configurable:Nc in i?i[Nc]:o[Nc],enumerable:Oc in i?i[Oc]:o[Oc],writable:!1})}return Tc(e,t,i)}:Tc:function(e,t,i){if(tC(e),t=ty(t),tC(i),Z5)try{return Tc(e,t,i)}catch{}if("get"in i||"set"in i)throw new P5("Accessors not supported");return"value"in i&&(e[t]=i.value),e};var G5=nn,F5=Fn,V5=Pr,ls=G5?function(n,e,t){return F5.f(n,e,V5(1,t))}:function(n,e,t){return n[e]=t,n},nC=_t,U5=QA,Y5=dc,H5=ln,K5=Zr.f,W5=T5,cs=st,Q5=Hr,ds=ls,ny=gn,X5=function(n){var e=function(t,i,o){if(this instanceof e){switch(arguments.length){case 0:return new n;case 1:return new n(t);case 2:return new n(t,i)}return new n(t,i,o)}return U5(n,this,arguments)};return e.prototype=n.prototype,e},ze=function(n,e){var t=n.target,i=n.global,o=n.stat,r=n.proto,A=i?nC:o?nC[t]:(nC[t]||{}).prototype,I=i?cs:cs[t]||ds(cs,t,{})[t],l=I.prototype,c,h,p,m,y,w,S,x,O;for(m in e)c=W5(i?m:t+(o?".":"#")+m,n.forced),h=!c&&A&&ny(A,m),w=I[m],h&&(n.dontCallGetSet?(O=K5(A,m),S=O&&O.value):S=A[m]),y=h&&S?S:e[m],!(h&&typeof w==typeof y)&&(n.bind&&h?x=Q5(y,nC):n.wrap&&h?x=X5(y):r&&H5(y)?x=Y5(y):x=y,(n.sham||y&&y.sham||w&&w.sham)&&ds(x,"sham",!0),ds(I,m,x),r&&(p=t+"Prototype",ny(cs,p)||ds(cs,p,{}),ds(cs[p],m,y),n.real&&l&&(c||!l[m])&&ds(l,m,y)))},$5=Math.ceil,q5=Math.floor,J5=Math.trunc||function(e){var t=+e;return(t>0?q5:$5)(t)},ej=J5,iC=function(n){var e=+n;return e!==e||e===0?0:ej(e)},tj=iC,nj=Math.max,ij=Math.min,Kr=function(n,e){var t=tj(n);return t<0?nj(t+e,0):ij(t,e)},gj=iC,oj=Math.min,sj=function(n){return n>0?oj(gj(n),9007199254740991):0},rj=sj,Jn=function(n){return rj(n.length)},aj=hi,Aj=Kr,Cj=Jn,iy=function(n){return function(e,t,i){var o=aj(e),r=Cj(o),A=Aj(i,r),I;if(n&&t!==t){for(;r>A;)if(I=o[A++],I!==I)return!0}else for(;r>A;A++)if((n||A in o)&&o[A]===t)return n||A||0;return!n&&-1}},Mc={includes:iy(!0),indexOf:iy(!1)},Wr={},Ij=gt,zc=gn,lj=hi,cj=Mc.indexOf,dj=Wr,gy=Ij([].push),oy=function(n,e){var t=lj(n),i=0,o=[],r;for(r in t)!zc(dj,r)&&zc(t,r)&&gy(o,r);for(;e.length>i;)zc(t,r=e[i++])&&(~cj(o,r)||gy(o,r));return o},kc=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],uj=oy,hj=kc,Qr=Object.keys||function(e){return uj(e,hj)},Xr={};Xr.f=Object.getOwnPropertySymbols;var sy=nn,fj=gt,pj=ui,mj=it,Rc=Qr,vj=Xr,yj=Br,bj=Gn,wj=$A,us=Object.assign,ry=Object.defineProperty,xj=fj([].concat),Sj=!us||mj(function(){if(sy&&us({b:1},us(ry({},"a",{enumerable:!0,get:function(){ry(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var n={},e={},t=Symbol("assign detection"),i="abcdefghijklmnopqrst";return n[t]=7,i.split("").forEach(function(o){e[o]=o}),us({},n)[t]!==7||Rc(us({},e)).join("")!==i})?function(e,t){for(var i=bj(e),o=arguments.length,r=1,A=vj.f,I=yj.f;o>r;)for(var l=wj(arguments[r++]),c=A?xj(Rc(l),A(l)):Rc(l),h=c.length,p=0,m;h>p;)m=c[p++],(!sy||pj(I,l,m))&&(i[m]=l[m]);return i}:us,Ej=ze,ay=Sj;Ej({target:"Object",stat:!0,forced:Object.assign!==ay},{assign:ay});var Tj=st,Oj=Tj.Object.assign,Nj=Oj,Dj=Nj,Mj=Dj,Vt=Ne(Mj),zj=gt,gC=zj([].slice),Ay=gt,kj=fo,Rj=yn,_j=gn,Cy=gC,jj=jr,Iy=Function,Zj=Ay([].concat),Bj=Ay([].join),_c={},Pj=function(n,e,t){if(!_j(_c,e)){for(var i=[],o=0;o=.1;)w=+r[p++%A],w>h&&(w=h),y=Math.sqrt(w*w/(1+c*c)),y=I<0?-y:y,e+=y,t+=c*y,m===!0?n.lineTo(e,t):n.moveTo(e,t),h-=w,m=!m}function n4(n,e,t,i){n.beginPath();const o=6,r=Math.PI*2/o;n.moveTo(e+i,t);for(let A=1;A1?t-1:0),o=1;o"u")){var i=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",t==="top"&&i.firstChild?i.insertBefore(o,i.firstChild):i.appendChild(o),o.styleSheet?o.styleSheet.cssText=n:o.appendChild(document.createTextNode(n))}}var g4=`.vis-overlay { position: absolute; top: 0px; right: 0px; @@ -83,13 +83,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs. .vis-active { box-shadow: 0 0 10px #86d5f8; } -`;po(t4);var n4=`/* override some bootstrap styles screwing up the timelines css */ +`;po(g4);var o4=`/* override some bootstrap styles screwing up the timelines css */ .vis [class*="span"] { min-height: 0; width: auto; } -`;po(n4);var i4=`div.vis-color-picker { +`;po(o4);var s4=`div.vis-color-picker { position: absolute; top: 0px; left: 30px; @@ -334,7 +334,7 @@ div.vis-color-picker input.vis-range-brightness { div.vis-color-picker input.vis-saturation-range { width: 289px !important; }*/ -`;po(i4);var g4=`div.vis-configuration { +`;po(s4);var r4=`div.vis-configuration { position: relative; display: block; float: left; @@ -677,7 +677,7 @@ input.vis-configuration.vis-config-range:focus::-ms-fill-upper { border-width: 12px; margin-top: -12px; } -`;po(g4);var o4=`div.vis-tooltip { +`;po(r4);var a4=`div.vis-tooltip { position: absolute; visibility: hidden; padding: 5px; @@ -698,12 +698,12 @@ input.vis-configuration.vis-config-range:focus::-ms-fill-upper { z-index: 5; } -`;po(o4);var hy={exports:{}};(function(n){n.exports=e;function e(i){if(i)return t(i)}function t(i){for(var o in e.prototype)i[o]=e.prototype[o];return i}e.prototype.on=e.prototype.addEventListener=function(i,o){return this._callbacks=this._callbacks||{},(this._callbacks["$"+i]=this._callbacks["$"+i]||[]).push(o),this},e.prototype.once=function(i,o){function r(){this.off(i,r),o.apply(this,arguments)}return r.fn=o,this.on(i,r),this},e.prototype.off=e.prototype.removeListener=e.prototype.removeAllListeners=e.prototype.removeEventListener=function(i,o){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var r=this._callbacks["$"+i];if(!r)return this;if(arguments.length==1)return delete this._callbacks["$"+i],this;for(var A,I=0;IA4)throw a4("Maximum allowed index exceeded");return n},C4=eC,I4=Fn,l4=Pr,$r=function(n,e,t){var i=C4(e);i in n?I4.f(n,i,l4(0,t)):n[i]=t},c4=Ft,d4=c4("toStringTag"),py={};py[d4]="z";var Lc=String(py)==="[object z]",u4=Lc,h4=ln,oC=Yi,f4=Ft,p4=f4("toStringTag"),m4=Object,v4=oC((function(){return arguments})())==="Arguments",y4=function(n,e){try{return n[e]}catch{}},Ki=u4?oC:function(n){var e,t,i;return n===void 0?"Undefined":n===null?"Null":typeof(t=y4(e=m4(n),p4))=="string"?t:v4?oC(e):(i=oC(e))==="Object"&&h4(e.callee)?"Arguments":i},b4=ot,w4=ln,Gc=xc,x4=b4(Function.toString);w4(Gc.inspectSource)||(Gc.inspectSource=function(n){return x4(n)});var E4=Gc.inspectSource,S4=ot,T4=gt,my=ln,O4=Ki,N4=fi,D4=E4,vy=function(){},M4=[],yy=N4("Reflect","construct"),Fc=/^\s*(?:class|function)\b/,z4=S4(Fc.exec),k4=!Fc.test(vy),qr=function(e){if(!my(e))return!1;try{return yy(vy,M4,e),!0}catch{return!1}},by=function(e){if(!my(e))return!1;switch(O4(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return k4||!!z4(Fc,D4(e))}catch{return!0}};by.sham=!0;var wy=!yy||T4(function(){var n;return qr(qr.call)||!qr(Object)||!qr(function(){n=!0})||n})?by:qr,xy=wg,R4=wy,_4=yn,j4=Ft,Z4=j4("species"),Ey=Array,B4=function(n){var e;return xy(n)&&(e=n.constructor,R4(e)&&(e===Ey||xy(e.prototype))?e=void 0:_4(e)&&(e=e[Z4],e===null&&(e=void 0))),e===void 0?Ey:e},P4=B4,sC=function(n,e){return new(P4(n))(e===0?0:e)},L4=gt,G4=Ft,F4=Fr,V4=G4("species"),Jr=function(n){return F4>=51||!L4(function(){var e=[],t=e.constructor={};return t[V4]=function(){return{foo:1}},e[n](Boolean).foo!==1})},U4=Re,Y4=gt,H4=wg,K4=yn,W4=Gn,Q4=Jn,Sy=Pc,Ty=$r,X4=sC,$4=Jr,q4=Ft,J4=Fr,Oy=q4("isConcatSpreadable"),eZ=J4>=51||!Y4(function(){var n=[];return n[Oy]=!1,n.concat()[0]!==n}),tZ=function(n){if(!K4(n))return!1;var e=n[Oy];return e!==void 0?!!e:H4(n)},nZ=!eZ||!$4("concat");U4({target:"Array",proto:!0,forced:nZ},{concat:function(e){var t=W4(this),i=X4(t,0),o=0,r,A,I,l,c;for(r=-1,I=arguments.length;rA;)rZ.f(e,I=o[A++],i[I]);return e};var IZ=fi,lZ=IZ("document","documentElement"),cZ=Cs,dZ=JA,Ny=cZ("keys"),aC=function(n){return Ny[n]||(Ny[n]=dZ(n))},uZ=Hi,hZ=rC,Dy=kc,fZ=Wr,pZ=lZ,mZ=Qv,vZ=aC,My=">",zy="<",Vc="prototype",Uc="script",ky=vZ("IE_PROTO"),Yc=function(){},Ry=function(n){return zy+Uc+My+n+zy+"/"+Uc+My},_y=function(n){n.write(Ry("")),n.close();var e=n.parentWindow.Object;return n=null,e},yZ=function(){var n=mZ("iframe"),e="java"+Uc+":",t;return n.style.display="none",pZ.appendChild(n),n.src=String(e),t=n.contentWindow.document,t.open(),t.write(Ry("document.F=Object")),t.close(),t.F},AC,CC=function(){try{AC=new ActiveXObject("htmlfile")}catch{}CC=typeof document<"u"?document.domain&&AC?_y(AC):yZ():_y(AC);for(var n=Dy.length;n--;)delete CC[Vc][Dy[n]];return CC()};fZ[ky]=!0;var ea=Object.create||function(e,t){var i;return e!==null?(Yc[Vc]=uZ(e),i=new Yc,Yc[Vc]=null,i[ky]=e):i=CC(),t===void 0?i:hZ.f(i,t)},ta={},bZ=gy,wZ=kc,xZ=wZ.concat("length","prototype");ta.f=Object.getOwnPropertyNames||function(e){return bZ(e,xZ)};var IC={},jy=Kr,EZ=Jn,SZ=$r,TZ=Array,OZ=Math.max,Zy=function(n,e,t){for(var i=EZ(n),o=jy(e,i),r=jy(t===void 0?i:t,i),A=TZ(OZ(r-o,0)),I=0;ox;x++)if((I||x in y)&&(P=y[x],B=w(P,x,m),n))if(e)N[x]=B;else if(B)switch(n){case 3:return!0;case 5:return P;case 6:return x;case 2:Ky(N,P)}else switch(n){case 4:return!1;case 7:Ky(N,P)}return r?-1:i||o?o:N}},xg={forEach:vo(0),map:vo(1),filter:vo(2),some:vo(3),every:vo(4),find:vo(5),findIndex:vo(6)},dC=Re,uC=_t,Xc=ui,dB=ot,ps=nn,ms=As,uB=gt,an=gn,hB=jt,$c=Hi,hC=hi,qc=eC,fB=Oi,Jc=Pr,oa=ea,Wy=Qr,pB=ta,Qy=IC,mB=Xr,Xy=Zr,$y=Fn,vB=rC,qy=Br,Jy=na,yB=Hc,ed=Cs,bB=aC,eb=Wr,tb=JA,wB=Ft,xB=ia,EB=Zt,SB=Gy,TB=hs,nb=mo,fC=xg.forEach,Dn=bB("hidden"),pC="Symbol",sa="prototype",OB=nb.set,ib=nb.getterFor(pC),mi=Object[sa],yo=uC.Symbol,ra=yo&&yo[sa],NB=uC.RangeError,DB=uC.TypeError,td=uC.QObject,gb=Xy.f,bo=$y.f,ob=Qy.f,MB=qy.f,sb=dB([].push),Wi=ed("symbols"),aa=ed("op-symbols"),zB=ed("wks"),nd=!td||!td[sa]||!td[sa].findChild,rb=function(n,e,t){var i=gb(mi,e);i&&delete mi[e],bo(n,e,t),i&&n!==mi&&bo(mi,e,i)},id=ps&&uB(function(){return oa(bo({},"a",{get:function(){return bo(this,"a",{value:7}).a}})).a!==7})?rb:bo,gd=function(n,e){var t=Wi[n]=oa(ra);return OB(t,{type:pC,tag:n,description:e}),ps||(t.description=e),t},mC=function(e,t,i){e===mi&&mC(aa,t,i),$c(e);var o=qc(t);return $c(i),an(Wi,o)?(i.enumerable?(an(e,Dn)&&e[Dn][o]&&(e[Dn][o]=!1),i=oa(i,{enumerable:Jc(0,!1)})):(an(e,Dn)||bo(e,Dn,Jc(1,{})),e[Dn][o]=!0),id(e,o,i)):bo(e,o,i)},od=function(e,t){$c(e);var i=hC(t),o=Wy(i).concat(Ib(i));return fC(o,function(r){(!ps||Xc(ab,i,r))&&mC(e,r,i[r])}),e},kB=function(e,t){return t===void 0?oa(e):od(oa(e),t)},ab=function(e){var t=qc(e),i=Xc(MB,this,t);return this===mi&&an(Wi,t)&&!an(aa,t)?!1:i||!an(this,t)||!an(Wi,t)||an(this,Dn)&&this[Dn][t]?i:!0},Ab=function(e,t){var i=hC(e),o=qc(t);if(!(i===mi&&an(Wi,o)&&!an(aa,o))){var r=gb(i,o);return r&&an(Wi,o)&&!(an(i,Dn)&&i[Dn][o])&&(r.enumerable=!0),r}},Cb=function(e){var t=ob(hC(e)),i=[];return fC(t,function(o){!an(Wi,o)&&!an(eb,o)&&sb(i,o)}),i},Ib=function(n){var e=n===mi,t=ob(e?aa:hC(n)),i=[];return fC(t,function(o){an(Wi,o)&&(!e||an(mi,o))&&sb(i,Wi[o])}),i};ms||(yo=function(){if(hB(ra,this))throw new DB("Symbol is not a constructor");var e=!arguments.length||arguments[0]===void 0?void 0:fB(arguments[0]),t=tb(e),i=function(o){this===mi&&Xc(i,aa,o),an(this,Dn)&&an(this[Dn],t)&&(this[Dn][t]=!1);var r=Jc(1,o);try{id(this,t,r)}catch(A){if(!(A instanceof NB))throw A;rb(this,t,r)}};return ps&&nd&&id(mi,t,{configurable:!0,set:i}),gd(t,e)},ra=yo[sa],Jy(ra,"toString",function(){return ib(this).tag}),Jy(yo,"withoutSetter",function(n){return gd(tb(n),n)}),qy.f=ab,$y.f=mC,vB.f=od,Xy.f=Ab,pB.f=Qy.f=Cb,mB.f=Ib,xB.f=function(n){return gd(wB(n),n)},ps&&yB(ra,"description",{configurable:!0,get:function(){return ib(this).description}})),dC({global:!0,wrap:!0,forced:!ms,sham:!ms},{Symbol:yo}),fC(Wy(zB),function(n){EB(n)}),dC({target:pC,stat:!0,forced:!ms},{useSetter:function(){nd=!0},useSimple:function(){nd=!1}}),dC({target:"Object",stat:!0,forced:!ms,sham:!ps},{create:kB,defineProperty:mC,defineProperties:od,getOwnPropertyDescriptor:Ab}),dC({target:"Object",stat:!0,forced:!ms},{getOwnPropertyNames:Cb}),SB(),TB(yo,pC),eb[Dn]=!0;var RB=As,lb=RB&&!!Symbol.for&&!!Symbol.keyFor,_B=Re,jB=fi,ZB=gn,BB=Oi,cb=Cs,PB=lb,sd=cb("string-to-symbol-registry"),LB=cb("symbol-to-string-registry");_B({target:"Symbol",stat:!0,forced:!PB},{for:function(n){var e=BB(n);if(ZB(sd,e))return sd[e];var t=jB("Symbol")(e);return sd[e]=t,LB[t]=e,t}});var GB=Re,FB=gn,VB=Vr,UB=Ur,YB=Cs,HB=lb,db=YB("symbol-to-string-registry");GB({target:"Symbol",stat:!0,forced:!HB},{keyFor:function(e){if(!VB(e))throw new TypeError(UB(e)+" is not a symbol");if(FB(db,e))return db[e]}});var KB=ot,ub=wg,WB=ln,hb=Yi,QB=Oi,fb=KB([].push),XB=function(n){if(WB(n))return n;if(ub(n)){for(var e=n.length,t=[],i=0;i=e.length)return n.target=void 0,xC(void 0,!0);switch(t){case"keys":return xC(i,!1);case"values":return xC(e[i],!1)}return xC([i,e[i]],!1)},"values"),Gb.Arguments=Gb.Array;var pL={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},mL=pL,vL=_t,yL=Ki,bL=ls,Ub=vs,wL=Ft,Yb=wL("toStringTag");for(var ud in mL){var Hb=vL[ud],hd=Hb&&Hb.prototype;hd&&yL(hd)!==Yb&&bL(hd,Yb,ud),Ub[ud]=Ub.Array}var xL=zP,Kb=xL,EL=Kb,SL=Me(EL),TL=Re,Wb=wg,OL=wy,NL=yn,Qb=Kr,DL=Jn,ML=hi,zL=$r,kL=Ft,RL=Jr,_L=gC,jL=RL("slice"),ZL=kL("species"),fd=Array,BL=Math.max;TL({target:"Array",proto:!0,forced:!jL},{slice:function(e,t){var i=ML(this),o=DL(i),r=Qb(e,o),A=Qb(t===void 0?o:t,o),I,l,c;if(Wb(i)&&(I=i.constructor,OL(I)&&(I===fd||Wb(I.prototype))?I=void 0:NL(I)&&(I=I[ZL],I===null&&(I=void 0)),I===fd||I===void 0))return _L(i,r,A);for(l=new(I===void 0?fd:I)(BL(A-r,0)),c=0;r1?arguments[1]:void 0)}});var p8=Wt,m8=p8("Array").map,v8=jt,y8=m8,md=Array.prototype,b8=function(n){var e=n.map;return n===md||v8(md,n)&&e===md.map?y8:e},w8=b8,x8=w8,E8=x8,cn=Me(E8),S8=Re,T8=Gn,$b=Qr,O8=gt,N8=O8(function(){$b(1)});S8({target:"Object",stat:!0,forced:N8},{keys:function(e){return $b(T8(e))}});var D8=rt,M8=D8.Object.keys,z8=M8,k8=z8,R8=k8,xt=Me(R8),_8=Re,j8=ot,qb=Date,Z8=j8(qb.prototype.getTime);_8({target:"Date",stat:!0},{now:function(){return Z8(new qb)}});var B8=rt,P8=B8.Date.now,L8=P8,G8=L8,F8=G8,EC=Me(F8),V8=gt,ys=function(n,e){var t=[][n];return!!t&&V8(function(){t.call(null,e||function(){return 1},1)})},U8=xg.forEach,Y8=ys,H8=Y8("forEach"),K8=H8?[].forEach:function(e){return U8(this,e,arguments.length>1?arguments[1]:void 0)},W8=Re,Jb=K8;W8({target:"Array",proto:!0,forced:[].forEach!==Jb},{forEach:Jb});var Q8=Wt,X8=Q8("Array").forEach,$8=X8,q8=$8,J8=Ki,e6=gn,t6=jt,n6=q8,vd=Array.prototype,i6={DOMTokenList:!0,NodeList:!0},g6=function(n){var e=n.forEach;return n===vd||t6(vd,n)&&e===vd.forEach||e6(i6,J8(n))?n6:e},o6=g6,Je=Me(o6),s6=Re,r6=ot,a6=wg,A6=r6([].reverse),e0=[1,2];s6({target:"Array",proto:!0,forced:String(e0)===String(e0.reverse())},{reverse:function(){return a6(this)&&(this.length=this.length),A6(this)}});var C6=Wt,I6=C6("Array").reverse,l6=jt,c6=I6,yd=Array.prototype,d6=function(n){var e=n.reverse;return n===yd||l6(yd,n)&&e===yd.reverse?c6:e},u6=d6,h6=u6,f6=h6,wo=Me(f6),p6=nn,m6=wg,v6=TypeError,y6=Object.getOwnPropertyDescriptor,b6=p6&&!(function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(n){return n instanceof TypeError}})(),w6=b6?function(n,e){if(m6(n)&&!y6(n,"length").writable)throw new v6("Cannot set read only .length");return n.length=e}:function(n,e){return n.length=e},t0=Ur,x6=TypeError,n0=function(n,e){if(!delete n[e])throw new x6("Cannot delete property "+t0(e)+" of "+t0(n))},E6=Re,S6=Gn,T6=Kr,O6=iC,N6=Jn,D6=w6,M6=Pc,z6=sC,k6=$r,bd=n0,R6=Jr,_6=R6("splice"),j6=Math.max,Z6=Math.min;E6({target:"Array",proto:!0,forced:!_6},{splice:function(e,t){var i=S6(this),o=N6(i),r=T6(e,o),A=arguments.length,I,l,c,h,p,m;for(A===0?I=l=0:A===1?(I=0,l=o-r):(I=A-2,l=Z6(j6(O6(t),0),o-r)),M6(o+I-l),c=z6(i,l),h=0;ho-l+I;h--)bd(i,h-1)}else if(I>l)for(h=o-l;h>r;h--)p=h+l-1,m=h+I-1,p in i?i[m]=i[p]:bd(i,m);for(h=0;h1?arguments[1]:void 0)}});var X6=Wt,$6=X6("Array").includes,q6=yn,J6=Yi,e9=Ft,t9=e9("match"),n9=function(n){var e;return q6(n)&&((e=n[t9])!==void 0?!!e:J6(n)==="RegExp")},i9=n9,g9=TypeError,o9=function(n){if(i9(n))throw new g9("The method doesn't accept regular expressions");return n},s9=Ft,r9=s9("match"),a9=function(n){var e=/./;try{"/./"[n](e)}catch{try{return e[r9]=!1,"/./"[n](e)}catch{}}return!1},A9=Re,C9=ot,I9=o9,l9=Lr,i0=Oi,c9=a9,d9=C9("".indexOf);A9({target:"String",proto:!0,forced:!c9("includes")},{includes:function(e){return!!~d9(i0(l9(this)),i0(I9(e)),arguments.length>1?arguments[1]:void 0)}});var u9=Wt,h9=u9("String").includes,g0=jt,f9=$6,p9=h9,xd=Array.prototype,Ed=String.prototype,m9=function(n){var e=n.includes;return n===xd||g0(xd,n)&&e===xd.includes?f9:typeof n=="string"||n===Ed||g0(Ed,n)&&e===Ed.includes?p9:e},v9=m9,y9=v9,b9=y9,Sg=Me(b9),w9=Re,x9=gt,E9=Gn,o0=yC,S9=zb,T9=x9(function(){o0(1)});w9({target:"Object",stat:!0,forced:T9,sham:!S9},{getPrototypeOf:function(e){return o0(E9(e))}});var O9=rt,N9=O9.Object.getPrototypeOf,D9=N9,M9=D9,z9=M9,s0=Me(z9),k9=Wt,R9=k9("Array").concat,_9=jt,j9=R9,Sd=Array.prototype,Z9=function(n){var e=n.concat;return n===Sd||_9(Sd,n)&&e===Sd.concat?j9:e},B9=Z9,P9=B9,L9=P9,r0=Me(L9),G9=Re,F9=xg.filter,V9=Jr,U9=V9("filter");G9({target:"Array",proto:!0,forced:!U9},{filter:function(e){return F9(this,e,arguments.length>1?arguments[1]:void 0)}});var Y9=Wt,H9=Y9("Array").filter,K9=jt,W9=H9,Td=Array.prototype,Q9=function(n){var e=n.filter;return n===Td||K9(Td,n)&&e===Td.filter?W9:e},X9=Q9,$9=X9,q9=$9,Qt=Me(q9),a0=nn,J9=gt,A0=ot,eG=yC,tG=Qr,nG=hi,iG=Br.f,C0=A0(iG),gG=A0([].push),oG=a0&&J9(function(){var n=Object.create(null);return n[2]=2,!C0(n,2)}),sG=function(n){return function(e){for(var t=nG(e),i=tG(t),o=oG&&eG(t)===null,r=i.length,A=0,I=[],l;r>A;)l=i[A++],(!a0||(o?l in t:C0(t,l)))&&gG(I,n?[l,t[l]]:t[l]);return I}},rG={values:sG(!1)},aG=Re,AG=rG.values;aG({target:"Object",stat:!0},{values:function(e){return AG(e)}});var CG=rt,IG=CG.Object.values,lG=IG,cG=lG,dG=cG,uG=Me(dG),Od=` -\v\f\r                 \u2028\u2029\uFEFF`,hG=ot,fG=Lr,pG=Oi,Nd=Od,I0=hG("".replace),mG=RegExp("^["+Nd+"]+"),vG=RegExp("(^|[^"+Nd+"])["+Nd+"]+$"),yG=function(n){return function(e){var t=pG(fG(e));return n&1&&(t=I0(t,mG,"")),n&2&&(t=I0(t,vG,"$1")),t}},l0={trim:yG(3)},c0=_t,bG=gt,wG=ot,xG=Oi,EG=l0.trim,d0=Od,Ca=c0.parseInt,u0=c0.Symbol,h0=u0&&u0.iterator,f0=/^[+-]?0x/i,SG=wG(f0.exec),TG=Ca(d0+"08")!==8||Ca(d0+"0x16")!==22||h0&&!bG(function(){Ca(Object(h0))}),OG=TG?function(e,t){var i=EG(xG(e));return Ca(i,t>>>0||(SG(f0,i)?16:10))}:Ca,NG=Re,p0=OG;NG({global:!0,forced:parseInt!==p0},{parseInt:p0});var DG=rt,MG=DG.parseInt,zG=MG,kG=zG,RG=kG,yi=Me(RG),_G=Re,jG=dc,ZG=Mc.indexOf,BG=ys,Dd=jG([].indexOf),m0=!!Dd&&1/Dd([1],1,-0)<0,PG=m0||!BG("indexOf");_G({target:"Array",proto:!0,forced:PG},{indexOf:function(e){var t=arguments.length>1?arguments[1]:void 0;return m0?Dd(this,e,t)||0:ZG(this,e,t)}});var LG=Wt,GG=LG("Array").indexOf,FG=jt,VG=GG,Md=Array.prototype,UG=function(n){var e=n.indexOf;return n===Md||FG(Md,n)&&e===Md.indexOf?VG:e},YG=UG,HG=YG,KG=HG,Ct=Me(KG),WG=Re,QG=nn,XG=ea;WG({target:"Object",stat:!0,sham:!QG},{create:XG});var $G=rt,qG=$G.Object,JG=function(e,t){return qG.create(e,t)},eF=JG,tF=eF,nF=tF,Tg=Me(nF),zd=rt,iF=QA;zd.JSON||(zd.JSON={stringify:JSON.stringify});var gF=function(e,t,i){return iF(zd.JSON.stringify,null,arguments)},oF=gF,sF=oF,rF=sF,bs=Me(rF),aF=typeof Bun=="function"&&Bun&&typeof Bun.version=="string",AF=TypeError,CF=function(n,e){if(nt,A=lF(i)?i:fF(i),I=r?uF(arguments,t):[],l=r?function(){IF(A,this,I)}:A;return e?n(l,o):n(l)}:n},mF=Re,b0=_t,vF=y0,w0=vF(b0.setInterval,!0);mF({global:!0,bind:!0,forced:b0.setInterval!==w0},{setInterval:w0});var yF=Re,x0=_t,bF=y0,E0=bF(x0.setTimeout,!0);yF({global:!0,bind:!0,forced:x0.setTimeout!==E0},{setTimeout:E0});var wF=rt,xF=wF.setTimeout,EF=xF,Mi=Me(EF),SF=Gn,S0=Kr,TF=Jn,OF=function(e){for(var t=SF(this),i=TF(t),o=arguments.length,r=S0(o>1?arguments[1]:void 0,i),A=o>2?arguments[2]:void 0,I=A===void 0?i:S0(A,i);I>r;)t[r++]=e;return t},NF=Re,DF=OF;NF({target:"Array",proto:!0},{fill:DF});var MF=Wt,zF=MF("Array").fill,kF=jt,RF=zF,kd=Array.prototype,_F=function(n){var e=n.fill;return n===kd||kF(kd,n)&&e===kd.fill?RF:e},jF=_F,ZF=jF,BF=ZF,Ia=Me(BF);function bi(){return bi=Object.assign||function(n){for(var e=1;e"u"?{style:{}}:document.createElement("div"),LF="function",ws=Math.round,Eo=Math.abs,_d=Date.now;function TC(n,e){for(var t,i,o=e[0].toUpperCase()+e.slice(1),r=0;r"u"?Xi={}:Xi=window;var O0=TC(PF.style,"touchAction"),N0=O0!==void 0;function GF(){if(!N0)return!1;var n={},e=Xi.CSS&&Xi.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(t){return n[t]=e?Xi.CSS.supports("touch-action",t):!0}),n}var D0="compute",M0="auto",jd="manipulation",So="none",la="pan-x",ca="pan-y",OC=GF(),FF=/mobile|tablet|ip(ad|hone|od)|android/i,z0="ontouchstart"in Xi,VF=TC(Xi,"PointerEvent")!==void 0,UF=z0&&FF.test(navigator.userAgent),da="touch",YF="pen",Zd="mouse",HF="kinect",KF=25,wn=1,To=2,Xt=4,Mn=8,NC=1,ua=2,ha=4,fa=8,xs=16,zi=ua|ha,Oo=fa|xs,k0=zi|Oo,R0=["x","y"],DC=["clientX","clientY"];function $i(n,e,t){var i;if(n)if(n.forEach)n.forEach(e,t);else if(n.length!==void 0)for(i=0;i-1}function WF(n){if(No(n,So))return So;var e=No(n,la),t=No(n,ca);return e&&t?So:e||t?e?la:ca:No(n,jd)?jd:M0}var _0=(function(){function n(t,i){this.manager=t,this.set(i)}var e=n.prototype;return e.set=function(i){i===D0&&(i=this.compute()),N0&&this.manager.element.style&&OC[i]&&(this.manager.element.style[O0]=i),this.actions=i.toLowerCase().trim()},e.update=function(){this.set(this.manager.options.touchAction)},e.compute=function(){var i=[];return $i(this.manager.recognizers,function(o){MC(o.options.enable,[o])&&(i=i.concat(o.getTouchAction()))}),WF(i.join(" "))},e.preventDefaults=function(i){var o=i.srcEvent,r=i.offsetDirection;if(this.manager.session.prevented){o.preventDefault();return}var A=this.actions,I=No(A,So)&&!OC[So],l=No(A,ca)&&!OC[ca],c=No(A,la)&&!OC[la];if(I){var h=i.pointers.length===1,p=i.distance<2,m=i.deltaTime<250;if(h&&p&&m)return}if(!(c&&l)&&(I||l&&r&zi||c&&r&Oo))return this.preventSrc(o)},e.preventSrc=function(i){this.manager.session.prevented=!0,i.preventDefault()},n})();function Bd(n,e){for(;n;){if(n===e)return!0;n=n.parentNode}return!1}function j0(n){var e=n.length;if(e===1)return{x:ws(n[0].clientX),y:ws(n[0].clientY)};for(var t=0,i=0,o=0;o=Eo(e)?n<0?ua:ha:e<0?fa:xs}function QF(n,e){var t=e.center,i=n.offsetDelta||{},o=n.prevDelta||{},r=n.prevInput||{};(e.eventType===wn||r.eventType===Xt)&&(o=n.prevDelta={x:r.deltaX||0,y:r.deltaY||0},i=n.offsetDelta={x:t.x,y:t.y}),e.deltaX=o.x+(t.x-i.x),e.deltaY=o.y+(t.y-i.y)}function P0(n,e,t){return{x:e/n||0,y:t/n||0}}function XF(n,e){return zC(e[0],e[1],DC)/zC(n[0],n[1],DC)}function $F(n,e){return Pd(e[1],e[0],DC)+Pd(n[1],n[0],DC)}function qF(n,e){var t=n.lastInterval||e,i=e.timeStamp-t.timeStamp,o,r,A,I;if(e.eventType!==Mn&&(i>KF||t.velocity===void 0)){var l=e.deltaX-t.deltaX,c=e.deltaY-t.deltaY,h=P0(i,l,c);r=h.x,A=h.y,o=Eo(h.x)>Eo(h.y)?h.x:h.y,I=B0(l,c),n.lastInterval=e}else o=t.velocity,r=t.velocityX,A=t.velocityY,I=t.direction;e.velocity=o,e.velocityX=r,e.velocityY=A,e.direction=I}function JF(n,e){var t=n.session,i=e.pointers,o=i.length;t.firstInput||(t.firstInput=Z0(e)),o>1&&!t.firstMultiple?t.firstMultiple=Z0(e):o===1&&(t.firstMultiple=!1);var r=t.firstInput,A=t.firstMultiple,I=A?A.center:r.center,l=e.center=j0(i);e.timeStamp=_d(),e.deltaTime=e.timeStamp-r.timeStamp,e.angle=Pd(I,l),e.distance=zC(I,l),QF(t,e),e.offsetDirection=B0(e.deltaX,e.deltaY);var c=P0(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=c.x,e.overallVelocityY=c.y,e.overallVelocity=Eo(c.x)>Eo(c.y)?c.x:c.y,e.scale=A?XF(A.pointers,i):1,e.rotation=A?$F(A.pointers,i):0,e.maxPointers=t.prevInput?e.pointers.length>t.prevInput.maxPointers?e.pointers.length:t.prevInput.maxPointers:e.pointers.length,qF(t,e);var h=n.element,p=e.srcEvent,m;p.composedPath?m=p.composedPath()[0]:p.path?m=p.path[0]:m=p.target,Bd(m,h)&&(h=m),e.target=h}function eV(n,e,t){var i=t.pointers.length,o=t.changedPointers.length,r=e&wn&&i-o===0,A=e&(Xt|Mn)&&i-o===0;t.isFirst=!!r,t.isFinal=!!A,r&&(n.session={}),t.eventType=e,JF(n,t),n.emit("hammer.input",t),n.recognize(t),n.session.prevInput=t}function pa(n){return n.trim().split(/\s+/g)}function ma(n,e,t){$i(pa(e),function(i){n.addEventListener(i,t,!1)})}function va(n,e,t){$i(pa(e),function(i){n.removeEventListener(i,t,!1)})}function L0(n){var e=n.ownerDocument||n;return e.defaultView||e.parentWindow||window}var Es=(function(){function n(t,i){var o=this;this.manager=t,this.callback=i,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(r){MC(t.options.enable,[t])&&o.handler(r)},this.init()}var e=n.prototype;return e.handler=function(){},e.init=function(){this.evEl&&ma(this.element,this.evEl,this.domHandler),this.evTarget&&ma(this.target,this.evTarget,this.domHandler),this.evWin&&ma(L0(this.element),this.evWin,this.domHandler)},e.destroy=function(){this.evEl&&va(this.element,this.evEl,this.domHandler),this.evTarget&&va(this.target,this.evTarget,this.domHandler),this.evWin&&va(L0(this.element),this.evWin,this.domHandler)},n})();function Do(n,e,t){if(n.indexOf&&!t)return n.indexOf(e);for(var i=0;il[e]}):i=i.sort()),i}var iV={touchstart:wn,touchmove:To,touchend:Xt,touchcancel:Mn},gV="touchstart touchmove touchend touchcancel",Gd=(function(n){ei(e,n);function e(){var i;return e.prototype.evTarget=gV,i=n.apply(this,arguments)||this,i.targetIds={},i}var t=e.prototype;return t.handler=function(o){var r=iV[o.type],A=oV.call(this,o,r);A&&this.callback(this.manager,r,{pointers:A[0],changedPointers:A[1],pointerType:da,srcEvent:o})},e})(Es);function oV(n,e){var t=ya(n.touches),i=this.targetIds;if(e&(wn|To)&&t.length===1)return i[t[0].identifier]=!0,[t,t];var o,r,A=ya(n.changedTouches),I=[],l=this.target;if(r=t.filter(function(c){return Bd(c.target,l)}),e===wn)for(o=0;o-1&&o.splice(I,1)};setTimeout(r,AV)}}function CV(n,e){n&wn?(this.primaryTouch=e.changedPointers[0].identifier,Y0.call(this,e)):n&(Xt|Mn)&&Y0.call(this,e)}function IV(n){for(var e=n.srcEvent.clientX,t=n.srcEvent.clientY,i=0;i-1&&this.requireFail.splice(o,1),this},e.hasRequireFailures=function(){return this.requireFail.length>0},e.canRecognizeWith=function(i){return!!this.simultaneous[i.id]},e.emit=function(i){var o=this,r=this.state;function A(I){o.manager.emit(I,i)}r=Og&&A(o.options.event+K0(r))},e.tryEmit=function(i){if(this.canEmit())return this.emit(i);this.state=ki},e.canEmit=function(){for(var i=0;ir.threshold&&l&r.direction},t.attrTest=function(o){return Os.prototype.attrTest.call(this,o)&&(this.state&ti||!(this.state&ti)&&this.directionTest(o))},t.emit=function(o){this.pX=o.deltaX,this.pY=o.deltaY;var r=W0(o.direction);r&&(o.additionalEvent=this.options.event+r),n.prototype.emit.call(this,o)},e})(Os),Q0=(function(n){ei(e,n);function e(i){return i===void 0&&(i={}),n.call(this,bi({event:"swipe",threshold:10,velocity:.3,direction:zi|Oo,pointers:1},i))||this}var t=e.prototype;return t.getTouchAction=function(){return Ud.prototype.getTouchAction.call(this)},t.attrTest=function(o){var r=this.options.direction,A;return r&(zi|Oo)?A=o.overallVelocity:r&zi?A=o.overallVelocityX:r&Oo&&(A=o.overallVelocityY),n.prototype.attrTest.call(this,o)&&r&o.offsetDirection&&o.distance>this.options.threshold&&o.maxPointers===this.options.pointers&&Eo(A)>this.options.velocity&&o.eventType&Xt},t.emit=function(o){var r=W0(o.offsetDirection);r&&this.manager.emit(this.options.event+r,o),this.manager.emit(this.options.event,o)},e})(Os),X0=(function(n){ei(e,n);function e(i){return i===void 0&&(i={}),n.call(this,bi({event:"pinch",threshold:0,pointers:2},i))||this}var t=e.prototype;return t.getTouchAction=function(){return[So]},t.attrTest=function(o){return n.prototype.attrTest.call(this,o)&&(Math.abs(o.scale-1)>this.options.threshold||this.state&ti)},t.emit=function(o){if(o.scale!==1){var r=o.scale<1?"in":"out";o.additionalEvent=this.options.event+r}n.prototype.emit.call(this,o)},e})(Os),$0=(function(n){ei(e,n);function e(i){return i===void 0&&(i={}),n.call(this,bi({event:"rotate",threshold:0,pointers:2},i))||this}var t=e.prototype;return t.getTouchAction=function(){return[So]},t.attrTest=function(o){return n.prototype.attrTest.call(this,o)&&(Math.abs(o.rotation)>this.options.threshold||this.state&ti)},e})(Os),q0=(function(n){ei(e,n);function e(i){var o;return i===void 0&&(i={}),o=n.call(this,bi({event:"press",pointers:1,time:251,threshold:9},i))||this,o._timer=null,o._input=null,o}var t=e.prototype;return t.getTouchAction=function(){return[M0]},t.process=function(o){var r=this,A=this.options,I=o.pointers.length===A.pointers,l=o.distanceA.time;if(this._input=o,!l||!I||o.eventType&(Xt|Mn)&&!c)this.reset();else if(o.eventType&wn)this.reset(),this._timer=setTimeout(function(){r.state=qi,r.tryEmit()},A.time);else if(o.eventType&Xt)return qi;return ki},t.reset=function(){clearTimeout(this._timer)},t.emit=function(o){this.state===qi&&(o&&o.eventType&Xt?this.manager.emit(this.options.event+"up",o):(this._input.timeStamp=_d(),this.manager.emit(this.options.event,this._input)))},e})(wa),J0={domEvents:!1,touchAction:D0,enable:!0,inputTarget:null,inputClass:null,cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},e1=[[$0,{enable:!1}],[X0,{enable:!1},["rotate"]],[Q0,{direction:zi}],[Ud,{direction:zi},["swipe"]],[Vd],[Vd,{event:"doubletap",taps:2},["tap"]],[q0]],uV=1,t1=2;function n1(n,e){var t=n.element;if(t.style){var i;$i(n.options.cssProps,function(o,r){i=TC(t.style,r),e?(n.oldCssProps[i]=t.style[i],t.style[i]=o):t.style[i]=n.oldCssProps[i]||""}),e||(n.oldCssProps={})}}function hV(n,e){var t=document.createEvent("Event");t.initEvent(n,!0,!0),t.gesture=e,e.target.dispatchEvent(t)}var i1=(function(){function n(t,i){var o=this;this.options=xo({},J0,i||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=t,this.input=lV(this),this.touchAction=new _0(this,this.options.touchAction),n1(this,!0),$i(this.options.recognizers,function(r){var A=o.add(new r[0](r[1]));r[2]&&A.recognizeWith(r[2]),r[3]&&A.requireFailure(r[3])},this)}var e=n.prototype;return e.set=function(i){return xo(this.options,i),i.touchAction&&this.touchAction.update(),i.inputTarget&&(this.input.destroy(),this.input.target=i.inputTarget,this.input.init()),this},e.stop=function(i){this.session.stopped=i?t1:uV},e.recognize=function(i){var o=this.session;if(!o.stopped){this.touchAction.preventDefaults(i);var r,A=this.recognizers,I=o.curRecognizer;(!I||I&&I.state&qi)&&(o.curRecognizer=null,I=null);for(var l=0;ll4)throw I4("Maximum allowed index exceeded");return n},c4=eC,d4=Fn,u4=Pr,$r=function(n,e,t){var i=c4(e);i in n?d4.f(n,i,u4(0,t)):n[i]=t},h4=Ft,f4=h4("toStringTag"),my={};my[f4]="z";var Lc=String(my)==="[object z]",p4=Lc,m4=ln,oC=Yi,v4=Ft,y4=v4("toStringTag"),b4=Object,w4=oC((function(){return arguments})())==="Arguments",x4=function(n,e){try{return n[e]}catch{}},Ki=p4?oC:function(n){var e,t,i;return n===void 0?"Undefined":n===null?"Null":typeof(t=x4(e=b4(n),y4))=="string"?t:w4?oC(e):(i=oC(e))==="Object"&&m4(e.callee)?"Arguments":i},S4=gt,E4=ln,Gc=xc,T4=S4(Function.toString);E4(Gc.inspectSource)||(Gc.inspectSource=function(n){return T4(n)});var O4=Gc.inspectSource,N4=gt,D4=it,vy=ln,M4=Ki,z4=fi,k4=O4,yy=function(){},R4=[],by=z4("Reflect","construct"),Fc=/^\s*(?:class|function)\b/,_4=N4(Fc.exec),j4=!Fc.test(yy),qr=function(e){if(!vy(e))return!1;try{return by(yy,R4,e),!0}catch{return!1}},wy=function(e){if(!vy(e))return!1;switch(M4(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return j4||!!_4(Fc,k4(e))}catch{return!0}};wy.sham=!0;var xy=!by||D4(function(){var n;return qr(qr.call)||!qr(Object)||!qr(function(){n=!0})||n})?wy:qr,Sy=wg,Z4=xy,B4=yn,P4=Ft,L4=P4("species"),Ey=Array,G4=function(n){var e;return Sy(n)&&(e=n.constructor,Z4(e)&&(e===Ey||Sy(e.prototype))?e=void 0:B4(e)&&(e=e[L4],e===null&&(e=void 0))),e===void 0?Ey:e},F4=G4,sC=function(n,e){return new(F4(n))(e===0?0:e)},V4=it,U4=Ft,Y4=Fr,H4=U4("species"),Jr=function(n){return Y4>=51||!V4(function(){var e=[],t=e.constructor={};return t[H4]=function(){return{foo:1}},e[n](Boolean).foo!==1})},K4=ze,W4=it,Q4=wg,X4=yn,$4=Gn,q4=Jn,Ty=Pc,Oy=$r,J4=sC,eZ=Jr,tZ=Ft,nZ=Fr,Ny=tZ("isConcatSpreadable"),iZ=nZ>=51||!W4(function(){var n=[];return n[Ny]=!1,n.concat()[0]!==n}),gZ=function(n){if(!X4(n))return!1;var e=n[Ny];return e!==void 0?!!e:Q4(n)},oZ=!iZ||!eZ("concat");K4({target:"Array",proto:!0,forced:oZ},{concat:function(e){var t=$4(this),i=J4(t,0),o=0,r,A,I,l,c;for(r=-1,I=arguments.length;rA;)CZ.f(e,I=o[A++],i[I]);return e};var dZ=fi,uZ=dZ("document","documentElement"),hZ=Cs,fZ=JA,Dy=hZ("keys"),aC=function(n){return Dy[n]||(Dy[n]=fZ(n))},pZ=Hi,mZ=rC,My=kc,vZ=Wr,yZ=uZ,bZ=Xv,wZ=aC,zy=">",ky="<",Vc="prototype",Uc="script",Ry=wZ("IE_PROTO"),Yc=function(){},_y=function(n){return ky+Uc+zy+n+ky+"/"+Uc+zy},jy=function(n){n.write(_y("")),n.close();var e=n.parentWindow.Object;return n=null,e},xZ=function(){var n=bZ("iframe"),e="java"+Uc+":",t;return n.style.display="none",yZ.appendChild(n),n.src=String(e),t=n.contentWindow.document,t.open(),t.write(_y("document.F=Object")),t.close(),t.F},AC,CC=function(){try{AC=new ActiveXObject("htmlfile")}catch{}CC=typeof document<"u"?document.domain&&AC?jy(AC):xZ():jy(AC);for(var n=My.length;n--;)delete CC[Vc][My[n]];return CC()};vZ[Ry]=!0;var ea=Object.create||function(e,t){var i;return e!==null?(Yc[Vc]=pZ(e),i=new Yc,Yc[Vc]=null,i[Ry]=e):i=CC(),t===void 0?i:mZ.f(i,t)},ta={},SZ=oy,EZ=kc,TZ=EZ.concat("length","prototype");ta.f=Object.getOwnPropertyNames||function(e){return SZ(e,TZ)};var IC={},Zy=Kr,OZ=Jn,NZ=$r,DZ=Array,MZ=Math.max,By=function(n,e,t){for(var i=OZ(n),o=Zy(e,i),r=Zy(t===void 0?i:t,i),A=DZ(MZ(r-o,0)),I=0;ox;x++)if((I||x in y)&&(_=y[x],P=w(_,x,m),n))if(e)E[x]=P;else if(P)switch(n){case 3:return!0;case 5:return _;case 6:return x;case 2:Wy(E,_)}else switch(n){case 4:return!1;case 7:Wy(E,_)}return r?-1:i||o?o:E}},xg={forEach:vo(0),map:vo(1),filter:vo(2),some:vo(3),every:vo(4),find:vo(5),findIndex:vo(6)},dC=ze,uC=_t,Xc=ui,fB=gt,ps=nn,ms=As,pB=it,an=gn,mB=jt,$c=Hi,hC=hi,qc=eC,vB=Oi,Jc=Pr,oa=ea,Qy=Qr,yB=ta,Xy=IC,bB=Xr,$y=Zr,qy=Fn,wB=rC,Jy=Br,eb=na,xB=Hc,ed=Cs,SB=aC,tb=Wr,nb=JA,EB=Ft,TB=ia,OB=Zt,NB=Fy,DB=hs,ib=mo,fC=xg.forEach,Dn=SB("hidden"),pC="Symbol",sa="prototype",MB=ib.set,gb=ib.getterFor(pC),mi=Object[sa],yo=uC.Symbol,ra=yo&&yo[sa],zB=uC.RangeError,kB=uC.TypeError,td=uC.QObject,ob=$y.f,bo=qy.f,sb=Xy.f,RB=Jy.f,rb=fB([].push),Wi=ed("symbols"),aa=ed("op-symbols"),_B=ed("wks"),nd=!td||!td[sa]||!td[sa].findChild,ab=function(n,e,t){var i=ob(mi,e);i&&delete mi[e],bo(n,e,t),i&&n!==mi&&bo(mi,e,i)},id=ps&&pB(function(){return oa(bo({},"a",{get:function(){return bo(this,"a",{value:7}).a}})).a!==7})?ab:bo,gd=function(n,e){var t=Wi[n]=oa(ra);return MB(t,{type:pC,tag:n,description:e}),ps||(t.description=e),t},mC=function(e,t,i){e===mi&&mC(aa,t,i),$c(e);var o=qc(t);return $c(i),an(Wi,o)?(i.enumerable?(an(e,Dn)&&e[Dn][o]&&(e[Dn][o]=!1),i=oa(i,{enumerable:Jc(0,!1)})):(an(e,Dn)||bo(e,Dn,Jc(1,{})),e[Dn][o]=!0),id(e,o,i)):bo(e,o,i)},od=function(e,t){$c(e);var i=hC(t),o=Qy(i).concat(lb(i));return fC(o,function(r){(!ps||Xc(Ab,i,r))&&mC(e,r,i[r])}),e},jB=function(e,t){return t===void 0?oa(e):od(oa(e),t)},Ab=function(e){var t=qc(e),i=Xc(RB,this,t);return this===mi&&an(Wi,t)&&!an(aa,t)?!1:i||!an(this,t)||!an(Wi,t)||an(this,Dn)&&this[Dn][t]?i:!0},Cb=function(e,t){var i=hC(e),o=qc(t);if(!(i===mi&&an(Wi,o)&&!an(aa,o))){var r=ob(i,o);return r&&an(Wi,o)&&!(an(i,Dn)&&i[Dn][o])&&(r.enumerable=!0),r}},Ib=function(e){var t=sb(hC(e)),i=[];return fC(t,function(o){!an(Wi,o)&&!an(tb,o)&&rb(i,o)}),i},lb=function(n){var e=n===mi,t=sb(e?aa:hC(n)),i=[];return fC(t,function(o){an(Wi,o)&&(!e||an(mi,o))&&rb(i,Wi[o])}),i};ms||(yo=function(){if(mB(ra,this))throw new kB("Symbol is not a constructor");var e=!arguments.length||arguments[0]===void 0?void 0:vB(arguments[0]),t=nb(e),i=function(o){this===mi&&Xc(i,aa,o),an(this,Dn)&&an(this[Dn],t)&&(this[Dn][t]=!1);var r=Jc(1,o);try{id(this,t,r)}catch(A){if(!(A instanceof zB))throw A;ab(this,t,r)}};return ps&&nd&&id(mi,t,{configurable:!0,set:i}),gd(t,e)},ra=yo[sa],eb(ra,"toString",function(){return gb(this).tag}),eb(yo,"withoutSetter",function(n){return gd(nb(n),n)}),Jy.f=Ab,qy.f=mC,wB.f=od,$y.f=Cb,yB.f=Xy.f=Ib,bB.f=lb,TB.f=function(n){return gd(EB(n),n)},ps&&xB(ra,"description",{configurable:!0,get:function(){return gb(this).description}})),dC({global:!0,wrap:!0,forced:!ms,sham:!ms},{Symbol:yo}),fC(Qy(_B),function(n){OB(n)}),dC({target:pC,stat:!0,forced:!ms},{useSetter:function(){nd=!0},useSimple:function(){nd=!1}}),dC({target:"Object",stat:!0,forced:!ms,sham:!ps},{create:jB,defineProperty:mC,defineProperties:od,getOwnPropertyDescriptor:Cb}),dC({target:"Object",stat:!0,forced:!ms},{getOwnPropertyNames:Ib}),NB(),DB(yo,pC),tb[Dn]=!0;var ZB=As,cb=ZB&&!!Symbol.for&&!!Symbol.keyFor,BB=ze,PB=fi,LB=gn,GB=Oi,db=Cs,FB=cb,sd=db("string-to-symbol-registry"),VB=db("symbol-to-string-registry");BB({target:"Symbol",stat:!0,forced:!FB},{for:function(n){var e=GB(n);if(LB(sd,e))return sd[e];var t=PB("Symbol")(e);return sd[e]=t,VB[t]=e,t}});var UB=ze,YB=gn,HB=Vr,KB=Ur,WB=Cs,QB=cb,ub=WB("symbol-to-string-registry");UB({target:"Symbol",stat:!0,forced:!QB},{keyFor:function(e){if(!HB(e))throw new TypeError(KB(e)+" is not a symbol");if(YB(ub,e))return ub[e]}});var XB=gt,hb=wg,$B=ln,fb=Yi,qB=Oi,pb=XB([].push),JB=function(n){if($B(n))return n;if(hb(n)){for(var e=n.length,t=[],i=0;i=e.length)return n.target=void 0,xC(void 0,!0);switch(t){case"keys":return xC(i,!1);case"values":return xC(e[i],!1)}return xC([i,e[i]],!1)},"values"),Fb.Arguments=Fb.Array;var yL={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},bL=yL,wL=_t,xL=Ki,SL=ls,Yb=vs,EL=Ft,Hb=EL("toStringTag");for(var ud in bL){var Kb=wL[ud],hd=Kb&&Kb.prototype;hd&&xL(hd)!==Hb&&SL(hd,Hb,ud),Yb[ud]=Yb.Array}var TL=_P,Wb=TL,OL=Wb,NL=Ne(OL),DL=ze,Qb=wg,ML=xy,zL=yn,Xb=Kr,kL=Jn,RL=hi,_L=$r,jL=Ft,ZL=Jr,BL=gC,PL=ZL("slice"),LL=jL("species"),fd=Array,GL=Math.max;DL({target:"Array",proto:!0,forced:!PL},{slice:function(e,t){var i=RL(this),o=kL(i),r=Xb(e,o),A=Xb(t===void 0?o:t,o),I,l,c;if(Qb(i)&&(I=i.constructor,ML(I)&&(I===fd||Qb(I.prototype))?I=void 0:zL(I)&&(I=I[LL],I===null&&(I=void 0)),I===fd||I===void 0))return BL(i,r,A);for(l=new(I===void 0?fd:I)(GL(A-r,0)),c=0;r1?arguments[1]:void 0)}});var y8=Wt,b8=y8("Array").map,w8=jt,x8=b8,md=Array.prototype,S8=function(n){var e=n.map;return n===md||w8(md,n)&&e===md.map?x8:e},E8=S8,T8=E8,O8=T8,cn=Ne(O8),N8=ze,D8=Gn,qb=Qr,M8=it,z8=M8(function(){qb(1)});N8({target:"Object",stat:!0,forced:z8},{keys:function(e){return qb(D8(e))}});var k8=st,R8=k8.Object.keys,_8=R8,j8=_8,Z8=j8,wt=Ne(Z8),B8=ze,P8=gt,Jb=Date,L8=P8(Jb.prototype.getTime);B8({target:"Date",stat:!0},{now:function(){return L8(new Jb)}});var G8=st,F8=G8.Date.now,V8=F8,U8=V8,Y8=U8,SC=Ne(Y8),H8=it,ys=function(n,e){var t=[][n];return!!t&&H8(function(){t.call(null,e||function(){return 1},1)})},K8=xg.forEach,W8=ys,Q8=W8("forEach"),X8=Q8?[].forEach:function(e){return K8(this,e,arguments.length>1?arguments[1]:void 0)},$8=ze,e0=X8;$8({target:"Array",proto:!0,forced:[].forEach!==e0},{forEach:e0});var q8=Wt,J8=q8("Array").forEach,e6=J8,t6=e6,n6=Ki,i6=gn,g6=jt,o6=t6,vd=Array.prototype,s6={DOMTokenList:!0,NodeList:!0},r6=function(n){var e=n.forEach;return n===vd||g6(vd,n)&&e===vd.forEach||i6(s6,n6(n))?o6:e},a6=r6,Je=Ne(a6),A6=ze,C6=gt,I6=wg,l6=C6([].reverse),t0=[1,2];A6({target:"Array",proto:!0,forced:String(t0)===String(t0.reverse())},{reverse:function(){return I6(this)&&(this.length=this.length),l6(this)}});var c6=Wt,d6=c6("Array").reverse,u6=jt,h6=d6,yd=Array.prototype,f6=function(n){var e=n.reverse;return n===yd||u6(yd,n)&&e===yd.reverse?h6:e},p6=f6,m6=p6,v6=m6,wo=Ne(v6),y6=nn,b6=wg,w6=TypeError,x6=Object.getOwnPropertyDescriptor,S6=y6&&!(function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(n){return n instanceof TypeError}})(),E6=S6?function(n,e){if(b6(n)&&!x6(n,"length").writable)throw new w6("Cannot set read only .length");return n.length=e}:function(n,e){return n.length=e},n0=Ur,T6=TypeError,i0=function(n,e){if(!delete n[e])throw new T6("Cannot delete property "+n0(e)+" of "+n0(n))},O6=ze,N6=Gn,D6=Kr,M6=iC,z6=Jn,k6=E6,R6=Pc,_6=sC,j6=$r,bd=i0,Z6=Jr,B6=Z6("splice"),P6=Math.max,L6=Math.min;O6({target:"Array",proto:!0,forced:!B6},{splice:function(e,t){var i=N6(this),o=z6(i),r=D6(e,o),A=arguments.length,I,l,c,h,p,m;for(A===0?I=l=0:A===1?(I=0,l=o-r):(I=A-2,l=L6(P6(M6(t),0),o-r)),R6(o+I-l),c=_6(i,l),h=0;ho-l+I;h--)bd(i,h-1)}else if(I>l)for(h=o-l;h>r;h--)p=h+l-1,m=h+I-1,p in i?i[m]=i[p]:bd(i,m);for(h=0;h1?arguments[1]:void 0)}});var J6=Wt,e9=J6("Array").includes,t9=yn,n9=Yi,i9=Ft,g9=i9("match"),o9=function(n){var e;return t9(n)&&((e=n[g9])!==void 0?!!e:n9(n)==="RegExp")},s9=o9,r9=TypeError,a9=function(n){if(s9(n))throw new r9("The method doesn't accept regular expressions");return n},A9=Ft,C9=A9("match"),I9=function(n){var e=/./;try{"/./"[n](e)}catch{try{return e[C9]=!1,"/./"[n](e)}catch{}}return!1},l9=ze,c9=gt,d9=a9,u9=Lr,g0=Oi,h9=I9,f9=c9("".indexOf);l9({target:"String",proto:!0,forced:!h9("includes")},{includes:function(e){return!!~f9(g0(u9(this)),g0(d9(e)),arguments.length>1?arguments[1]:void 0)}});var p9=Wt,m9=p9("String").includes,o0=jt,v9=e9,y9=m9,xd=Array.prototype,Sd=String.prototype,b9=function(n){var e=n.includes;return n===xd||o0(xd,n)&&e===xd.includes?v9:typeof n=="string"||n===Sd||o0(Sd,n)&&e===Sd.includes?y9:e},w9=b9,x9=w9,S9=x9,Eg=Ne(S9),E9=ze,T9=it,O9=Gn,s0=yC,N9=kb,D9=T9(function(){s0(1)});E9({target:"Object",stat:!0,forced:D9,sham:!N9},{getPrototypeOf:function(e){return s0(O9(e))}});var M9=st,z9=M9.Object.getPrototypeOf,k9=z9,R9=k9,_9=R9,r0=Ne(_9),j9=Wt,Z9=j9("Array").concat,B9=jt,P9=Z9,Ed=Array.prototype,L9=function(n){var e=n.concat;return n===Ed||B9(Ed,n)&&e===Ed.concat?P9:e},G9=L9,F9=G9,V9=F9,a0=Ne(V9),U9=ze,Y9=xg.filter,H9=Jr,K9=H9("filter");U9({target:"Array",proto:!0,forced:!K9},{filter:function(e){return Y9(this,e,arguments.length>1?arguments[1]:void 0)}});var W9=Wt,Q9=W9("Array").filter,X9=jt,$9=Q9,Td=Array.prototype,q9=function(n){var e=n.filter;return n===Td||X9(Td,n)&&e===Td.filter?$9:e},J9=q9,eG=J9,tG=eG,Qt=Ne(tG),A0=nn,nG=it,C0=gt,iG=yC,gG=Qr,oG=hi,sG=Br.f,I0=C0(sG),rG=C0([].push),aG=A0&&nG(function(){var n=Object.create(null);return n[2]=2,!I0(n,2)}),AG=function(n){return function(e){for(var t=oG(e),i=gG(t),o=aG&&iG(t)===null,r=i.length,A=0,I=[],l;r>A;)l=i[A++],(!A0||(o?l in t:I0(t,l)))&&rG(I,n?[l,t[l]]:t[l]);return I}},CG={values:AG(!1)},IG=ze,lG=CG.values;IG({target:"Object",stat:!0},{values:function(e){return lG(e)}});var cG=st,dG=cG.Object.values,uG=dG,hG=uG,fG=hG,pG=Ne(fG),Od=` +\v\f\r                 \u2028\u2029\uFEFF`,mG=gt,vG=Lr,yG=Oi,Nd=Od,l0=mG("".replace),bG=RegExp("^["+Nd+"]+"),wG=RegExp("(^|[^"+Nd+"])["+Nd+"]+$"),xG=function(n){return function(e){var t=yG(vG(e));return n&1&&(t=l0(t,bG,"")),n&2&&(t=l0(t,wG,"$1")),t}},c0={trim:xG(3)},d0=_t,SG=it,EG=gt,TG=Oi,OG=c0.trim,u0=Od,Ca=d0.parseInt,h0=d0.Symbol,f0=h0&&h0.iterator,p0=/^[+-]?0x/i,NG=EG(p0.exec),DG=Ca(u0+"08")!==8||Ca(u0+"0x16")!==22||f0&&!SG(function(){Ca(Object(f0))}),MG=DG?function(e,t){var i=OG(TG(e));return Ca(i,t>>>0||(NG(p0,i)?16:10))}:Ca,zG=ze,m0=MG;zG({global:!0,forced:parseInt!==m0},{parseInt:m0});var kG=st,RG=kG.parseInt,_G=RG,jG=_G,ZG=jG,yi=Ne(ZG),BG=ze,PG=dc,LG=Mc.indexOf,GG=ys,Dd=PG([].indexOf),v0=!!Dd&&1/Dd([1],1,-0)<0,FG=v0||!GG("indexOf");BG({target:"Array",proto:!0,forced:FG},{indexOf:function(e){var t=arguments.length>1?arguments[1]:void 0;return v0?Dd(this,e,t)||0:LG(this,e,t)}});var VG=Wt,UG=VG("Array").indexOf,YG=jt,HG=UG,Md=Array.prototype,KG=function(n){var e=n.indexOf;return n===Md||YG(Md,n)&&e===Md.indexOf?HG:e},WG=KG,QG=WG,XG=QG,at=Ne(XG),$G=ze,qG=nn,JG=ea;$G({target:"Object",stat:!0,sham:!qG},{create:JG});var eF=st,tF=eF.Object,nF=function(e,t){return tF.create(e,t)},iF=nF,gF=iF,oF=gF,Tg=Ne(oF),zd=st,sF=QA;zd.JSON||(zd.JSON={stringify:JSON.stringify});var rF=function(e,t,i){return sF(zd.JSON.stringify,null,arguments)},aF=rF,AF=aF,CF=AF,bs=Ne(CF),IF=typeof Bun=="function"&&Bun&&typeof Bun.version=="string",lF=TypeError,cF=function(n,e){if(nt,A=uF(i)?i:vF(i),I=r?pF(arguments,t):[],l=r?function(){dF(A,this,I)}:A;return e?n(l,o):n(l)}:n},bF=ze,w0=_t,wF=b0,x0=wF(w0.setInterval,!0);bF({global:!0,bind:!0,forced:w0.setInterval!==x0},{setInterval:x0});var xF=ze,S0=_t,SF=b0,E0=SF(S0.setTimeout,!0);xF({global:!0,bind:!0,forced:S0.setTimeout!==E0},{setTimeout:E0});var EF=st,TF=EF.setTimeout,OF=TF,Mi=Ne(OF),NF=Gn,T0=Kr,DF=Jn,MF=function(e){for(var t=NF(this),i=DF(t),o=arguments.length,r=T0(o>1?arguments[1]:void 0,i),A=o>2?arguments[2]:void 0,I=A===void 0?i:T0(A,i);I>r;)t[r++]=e;return t},zF=ze,kF=MF;zF({target:"Array",proto:!0},{fill:kF});var RF=Wt,_F=RF("Array").fill,jF=jt,ZF=_F,kd=Array.prototype,BF=function(n){var e=n.fill;return n===kd||jF(kd,n)&&e===kd.fill?ZF:e},PF=BF,LF=PF,GF=LF,Ia=Ne(GF);function bi(){return bi=Object.assign||function(n){for(var e=1;e"u"?{style:{}}:document.createElement("div"),VF="function",ws=Math.round,So=Math.abs,_d=Date.now;function TC(n,e){for(var t,i,o=e[0].toUpperCase()+e.slice(1),r=0;r"u"?Xi={}:Xi=window;var N0=TC(FF.style,"touchAction"),D0=N0!==void 0;function UF(){if(!D0)return!1;var n={},e=Xi.CSS&&Xi.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(t){return n[t]=e?Xi.CSS.supports("touch-action",t):!0}),n}var M0="compute",z0="auto",jd="manipulation",Eo="none",la="pan-x",ca="pan-y",OC=UF(),YF=/mobile|tablet|ip(ad|hone|od)|android/i,k0="ontouchstart"in Xi,HF=TC(Xi,"PointerEvent")!==void 0,KF=k0&&YF.test(navigator.userAgent),da="touch",WF="pen",Zd="mouse",QF="kinect",XF=25,wn=1,To=2,Xt=4,Mn=8,NC=1,ua=2,ha=4,fa=8,xs=16,zi=ua|ha,Oo=fa|xs,R0=zi|Oo,_0=["x","y"],DC=["clientX","clientY"];function $i(n,e,t){var i;if(n)if(n.forEach)n.forEach(e,t);else if(n.length!==void 0)for(i=0;i-1}function $F(n){if(No(n,Eo))return Eo;var e=No(n,la),t=No(n,ca);return e&&t?Eo:e||t?e?la:ca:No(n,jd)?jd:z0}var j0=(function(){function n(t,i){this.manager=t,this.set(i)}var e=n.prototype;return e.set=function(i){i===M0&&(i=this.compute()),D0&&this.manager.element.style&&OC[i]&&(this.manager.element.style[N0]=i),this.actions=i.toLowerCase().trim()},e.update=function(){this.set(this.manager.options.touchAction)},e.compute=function(){var i=[];return $i(this.manager.recognizers,function(o){MC(o.options.enable,[o])&&(i=i.concat(o.getTouchAction()))}),$F(i.join(" "))},e.preventDefaults=function(i){var o=i.srcEvent,r=i.offsetDirection;if(this.manager.session.prevented){o.preventDefault();return}var A=this.actions,I=No(A,Eo)&&!OC[Eo],l=No(A,ca)&&!OC[ca],c=No(A,la)&&!OC[la];if(I){var h=i.pointers.length===1,p=i.distance<2,m=i.deltaTime<250;if(h&&p&&m)return}if(!(c&&l)&&(I||l&&r&zi||c&&r&Oo))return this.preventSrc(o)},e.preventSrc=function(i){this.manager.session.prevented=!0,i.preventDefault()},n})();function Bd(n,e){for(;n;){if(n===e)return!0;n=n.parentNode}return!1}function Z0(n){var e=n.length;if(e===1)return{x:ws(n[0].clientX),y:ws(n[0].clientY)};for(var t=0,i=0,o=0;o=So(e)?n<0?ua:ha:e<0?fa:xs}function qF(n,e){var t=e.center,i=n.offsetDelta||{},o=n.prevDelta||{},r=n.prevInput||{};(e.eventType===wn||r.eventType===Xt)&&(o=n.prevDelta={x:r.deltaX||0,y:r.deltaY||0},i=n.offsetDelta={x:t.x,y:t.y}),e.deltaX=o.x+(t.x-i.x),e.deltaY=o.y+(t.y-i.y)}function L0(n,e,t){return{x:e/n||0,y:t/n||0}}function JF(n,e){return zC(e[0],e[1],DC)/zC(n[0],n[1],DC)}function eV(n,e){return Pd(e[1],e[0],DC)+Pd(n[1],n[0],DC)}function tV(n,e){var t=n.lastInterval||e,i=e.timeStamp-t.timeStamp,o,r,A,I;if(e.eventType!==Mn&&(i>XF||t.velocity===void 0)){var l=e.deltaX-t.deltaX,c=e.deltaY-t.deltaY,h=L0(i,l,c);r=h.x,A=h.y,o=So(h.x)>So(h.y)?h.x:h.y,I=P0(l,c),n.lastInterval=e}else o=t.velocity,r=t.velocityX,A=t.velocityY,I=t.direction;e.velocity=o,e.velocityX=r,e.velocityY=A,e.direction=I}function nV(n,e){var t=n.session,i=e.pointers,o=i.length;t.firstInput||(t.firstInput=B0(e)),o>1&&!t.firstMultiple?t.firstMultiple=B0(e):o===1&&(t.firstMultiple=!1);var r=t.firstInput,A=t.firstMultiple,I=A?A.center:r.center,l=e.center=Z0(i);e.timeStamp=_d(),e.deltaTime=e.timeStamp-r.timeStamp,e.angle=Pd(I,l),e.distance=zC(I,l),qF(t,e),e.offsetDirection=P0(e.deltaX,e.deltaY);var c=L0(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=c.x,e.overallVelocityY=c.y,e.overallVelocity=So(c.x)>So(c.y)?c.x:c.y,e.scale=A?JF(A.pointers,i):1,e.rotation=A?eV(A.pointers,i):0,e.maxPointers=t.prevInput?e.pointers.length>t.prevInput.maxPointers?e.pointers.length:t.prevInput.maxPointers:e.pointers.length,tV(t,e);var h=n.element,p=e.srcEvent,m;p.composedPath?m=p.composedPath()[0]:p.path?m=p.path[0]:m=p.target,Bd(m,h)&&(h=m),e.target=h}function iV(n,e,t){var i=t.pointers.length,o=t.changedPointers.length,r=e&wn&&i-o===0,A=e&(Xt|Mn)&&i-o===0;t.isFirst=!!r,t.isFinal=!!A,r&&(n.session={}),t.eventType=e,nV(n,t),n.emit("hammer.input",t),n.recognize(t),n.session.prevInput=t}function pa(n){return n.trim().split(/\s+/g)}function ma(n,e,t){$i(pa(e),function(i){n.addEventListener(i,t,!1)})}function va(n,e,t){$i(pa(e),function(i){n.removeEventListener(i,t,!1)})}function G0(n){var e=n.ownerDocument||n;return e.defaultView||e.parentWindow||window}var Ss=(function(){function n(t,i){var o=this;this.manager=t,this.callback=i,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(r){MC(t.options.enable,[t])&&o.handler(r)},this.init()}var e=n.prototype;return e.handler=function(){},e.init=function(){this.evEl&&ma(this.element,this.evEl,this.domHandler),this.evTarget&&ma(this.target,this.evTarget,this.domHandler),this.evWin&&ma(G0(this.element),this.evWin,this.domHandler)},e.destroy=function(){this.evEl&&va(this.element,this.evEl,this.domHandler),this.evTarget&&va(this.target,this.evTarget,this.domHandler),this.evWin&&va(G0(this.element),this.evWin,this.domHandler)},n})();function Do(n,e,t){if(n.indexOf&&!t)return n.indexOf(e);for(var i=0;il[e]}):i=i.sort()),i}var sV={touchstart:wn,touchmove:To,touchend:Xt,touchcancel:Mn},rV="touchstart touchmove touchend touchcancel",Gd=(function(n){ei(e,n);function e(){var i;return e.prototype.evTarget=rV,i=n.apply(this,arguments)||this,i.targetIds={},i}var t=e.prototype;return t.handler=function(o){var r=sV[o.type],A=aV.call(this,o,r);A&&this.callback(this.manager,r,{pointers:A[0],changedPointers:A[1],pointerType:da,srcEvent:o})},e})(Ss);function aV(n,e){var t=ya(n.touches),i=this.targetIds;if(e&(wn|To)&&t.length===1)return i[t[0].identifier]=!0,[t,t];var o,r,A=ya(n.changedTouches),I=[],l=this.target;if(r=t.filter(function(c){return Bd(c.target,l)}),e===wn)for(o=0;o-1&&o.splice(I,1)};setTimeout(r,lV)}}function cV(n,e){n&wn?(this.primaryTouch=e.changedPointers[0].identifier,H0.call(this,e)):n&(Xt|Mn)&&H0.call(this,e)}function dV(n){for(var e=n.srcEvent.clientX,t=n.srcEvent.clientY,i=0;i-1&&this.requireFail.splice(o,1),this},e.hasRequireFailures=function(){return this.requireFail.length>0},e.canRecognizeWith=function(i){return!!this.simultaneous[i.id]},e.emit=function(i){var o=this,r=this.state;function A(I){o.manager.emit(I,i)}r=Og&&A(o.options.event+W0(r))},e.tryEmit=function(i){if(this.canEmit())return this.emit(i);this.state=ki},e.canEmit=function(){for(var i=0;ir.threshold&&l&r.direction},t.attrTest=function(o){return Os.prototype.attrTest.call(this,o)&&(this.state&ti||!(this.state&ti)&&this.directionTest(o))},t.emit=function(o){this.pX=o.deltaX,this.pY=o.deltaY;var r=Q0(o.direction);r&&(o.additionalEvent=this.options.event+r),n.prototype.emit.call(this,o)},e})(Os),X0=(function(n){ei(e,n);function e(i){return i===void 0&&(i={}),n.call(this,bi({event:"swipe",threshold:10,velocity:.3,direction:zi|Oo,pointers:1},i))||this}var t=e.prototype;return t.getTouchAction=function(){return Ud.prototype.getTouchAction.call(this)},t.attrTest=function(o){var r=this.options.direction,A;return r&(zi|Oo)?A=o.overallVelocity:r&zi?A=o.overallVelocityX:r&Oo&&(A=o.overallVelocityY),n.prototype.attrTest.call(this,o)&&r&o.offsetDirection&&o.distance>this.options.threshold&&o.maxPointers===this.options.pointers&&So(A)>this.options.velocity&&o.eventType&Xt},t.emit=function(o){var r=Q0(o.offsetDirection);r&&this.manager.emit(this.options.event+r,o),this.manager.emit(this.options.event,o)},e})(Os),$0=(function(n){ei(e,n);function e(i){return i===void 0&&(i={}),n.call(this,bi({event:"pinch",threshold:0,pointers:2},i))||this}var t=e.prototype;return t.getTouchAction=function(){return[Eo]},t.attrTest=function(o){return n.prototype.attrTest.call(this,o)&&(Math.abs(o.scale-1)>this.options.threshold||this.state&ti)},t.emit=function(o){if(o.scale!==1){var r=o.scale<1?"in":"out";o.additionalEvent=this.options.event+r}n.prototype.emit.call(this,o)},e})(Os),q0=(function(n){ei(e,n);function e(i){return i===void 0&&(i={}),n.call(this,bi({event:"rotate",threshold:0,pointers:2},i))||this}var t=e.prototype;return t.getTouchAction=function(){return[Eo]},t.attrTest=function(o){return n.prototype.attrTest.call(this,o)&&(Math.abs(o.rotation)>this.options.threshold||this.state&ti)},e})(Os),J0=(function(n){ei(e,n);function e(i){var o;return i===void 0&&(i={}),o=n.call(this,bi({event:"press",pointers:1,time:251,threshold:9},i))||this,o._timer=null,o._input=null,o}var t=e.prototype;return t.getTouchAction=function(){return[z0]},t.process=function(o){var r=this,A=this.options,I=o.pointers.length===A.pointers,l=o.distanceA.time;if(this._input=o,!l||!I||o.eventType&(Xt|Mn)&&!c)this.reset();else if(o.eventType&wn)this.reset(),this._timer=setTimeout(function(){r.state=qi,r.tryEmit()},A.time);else if(o.eventType&Xt)return qi;return ki},t.reset=function(){clearTimeout(this._timer)},t.emit=function(o){this.state===qi&&(o&&o.eventType&Xt?this.manager.emit(this.options.event+"up",o):(this._input.timeStamp=_d(),this.manager.emit(this.options.event,this._input)))},e})(wa),e1={domEvents:!1,touchAction:M0,enable:!0,inputTarget:null,inputClass:null,cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},t1=[[q0,{enable:!1}],[$0,{enable:!1},["rotate"]],[X0,{direction:zi}],[Ud,{direction:zi},["swipe"]],[Vd],[Vd,{event:"doubletap",taps:2},["tap"]],[J0]],pV=1,n1=2;function i1(n,e){var t=n.element;if(t.style){var i;$i(n.options.cssProps,function(o,r){i=TC(t.style,r),e?(n.oldCssProps[i]=t.style[i],t.style[i]=o):t.style[i]=n.oldCssProps[i]||""}),e||(n.oldCssProps={})}}function mV(n,e){var t=document.createEvent("Event");t.initEvent(n,!0,!0),t.gesture=e,e.target.dispatchEvent(t)}var g1=(function(){function n(t,i){var o=this;this.options=xo({},e1,i||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=t,this.input=uV(this),this.touchAction=new j0(this,this.options.touchAction),i1(this,!0),$i(this.options.recognizers,function(r){var A=o.add(new r[0](r[1]));r[2]&&A.recognizeWith(r[2]),r[3]&&A.requireFailure(r[3])},this)}var e=n.prototype;return e.set=function(i){return xo(this.options,i),i.touchAction&&this.touchAction.update(),i.inputTarget&&(this.input.destroy(),this.input.target=i.inputTarget,this.input.init()),this},e.stop=function(i){this.session.stopped=i?n1:pV},e.recognize=function(i){var o=this.session;if(!o.stopped){this.touchAction.preventDefaults(i);var r,A=this.recognizers,I=o.curRecognizer;(!I||I&&I.state&qi)&&(o.curRecognizer=null,I=null);for(var l=0;l\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",A=window.console&&(window.console.warn||window.console.log);return A&&A.call(window.console,i,r),n.apply(this,arguments)}}var o1=g1(function(n,e,t){for(var i=Object.keys(e),o=0;o1?e-1:0),i=1;i2)return _C(A1(e[0],e[1]),...vi(e).call(e,2));const i=e[0],o=e[1];if(i instanceof Date&&o instanceof Date)return i.setTime(o.getTime()),i;for(const r of s8(o))Object.prototype.propertyIsEnumerable.call(o,r)&&(o[r]===a1?delete i[r]:i[r]!==null&&o[r]!==null&&typeof i[r]=="object"&&typeof o[r]=="object"&&!tt(i[r])&&!tt(o[r])?i[r]=_C(i[r],o[r]):i[r]=C1(o[r]));return i}function C1(n){return tt(n)?cn(n).call(n,e=>C1(e)):typeof n=="object"&&n!==null?n instanceof Date?new Date(n.getTime()):_C({},n):n}function I1(n){for(const e of xt(n))n[e]===a1?delete n[e]:typeof n[e]=="object"&&n[e]!==null&&I1(n[e])}function jC(){for(var n=arguments.length,e=new Array(n),t=0;t{const A=2091639*e+o*23283064365386963e-26;return e=t,t=i,i=A-(o=A|0)};return r.uint32=()=>r()*4294967296,r.fract53=()=>r()+(r()*2097152|0)*11102230246251565e-32,r.algorithm="Alea",r.seed=n,r.version="0.9",r}function TV(){const n=OV();let e=n(" "),t=n(" "),i=n(" ");for(let o=0;o>>0,o-=n,o*=n,n=o>>>0,o-=n,n+=o*4294967296}return(n>>>0)*23283064365386963e-26}}function NV(){const n=()=>{};return{on:n,off:n,destroy:n,emit:n,get(){return{set:n}}}}const Yd=typeof window<"u"?window.Hammer||xV:function(){return NV()};function Ri(n){var e;this._cleanupQueue=[],this.active=!1,this._dom={container:n,overlay:document.createElement("div")},this._dom.overlay.classList.add("vis-overlay"),this._dom.container.appendChild(this._dom.overlay),this._cleanupQueue.push(()=>{this._dom.overlay.parentNode.removeChild(this._dom.overlay)});const t=Yd(this._dom.overlay);t.on("tap",ie(e=this._onTapOverlay).call(e,this)),this._cleanupQueue.push(()=>{t.destroy()});const i=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];Je(i).call(i,o=>{t.on(o,r=>{r.srcEvent.stopPropagation()})}),document&&document.body&&(this._onClick=o=>{DV(o.target,n)||this.deactivate()},document.body.addEventListener("click",this._onClick),this._cleanupQueue.push(()=>{document.body.removeEventListener("click",this._onClick)})),this._escListener=o=>{("key"in o?o.key==="Escape":o.keyCode===27)&&this.deactivate()}}fy(Ri.prototype),Ri.current=null,Ri.prototype.destroy=function(){this.deactivate();for(const t of wo(n=Di(e=this._cleanupQueue).call(e,0)).call(n)){var n,e;t()}},Ri.prototype.activate=function(){Ri.current&&Ri.current.deactivate(),Ri.current=this,this.active=!0,this._dom.overlay.style.display="none",this._dom.container.classList.add("vis-active"),this.emit("change"),this.emit("activate"),document.body.addEventListener("keydown",this._escListener)},Ri.prototype.deactivate=function(){this.active=!1,this._dom.overlay.style.display="block",this._dom.container.classList.remove("vis-active"),document.body.removeEventListener("keydown",this._escListener),this.emit("change"),this.emit("deactivate")},Ri.prototype._onTapOverlay=function(n){this.activate(),n.srcEvent.stopPropagation()};function DV(n,e){for(;n;){if(n===e)return!0;n=n.parentNode}return!1}const MV=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,zV=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,kV=/^rgb\( *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *\)$/i,RV=/^rgba\( *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *([01]|0?\.\d+) *\)$/i;function Ng(n){if(n)for(;n.hasChildNodes()===!0;){const e=n.firstChild;e&&(Ng(e),n.removeChild(e))}}function Ns(n){return n instanceof String||typeof n=="string"}function l1(n){return typeof n=="object"&&n!==null}function Mo(n,e,t,i){let o=!1;i===!0&&(o=e[t]===null&&n[t]!==void 0),o?delete n[t]:n[t]=e[t]}function c1(n,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;for(const i in n)if(e[i]!==void 0)if(e[i]===null||typeof e[i]!="object")Mo(n,e,i,t);else{const o=n[i],r=e[i];l1(o)&&l1(r)&&c1(o,r,t)}}function Ds(n,e,t){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(tt(t))throw new TypeError("Arrays are not supported by deepExtend");for(let o=0;o3&&arguments[3]!==void 0?arguments[3]:!1;if(tt(t))throw new TypeError("Arrays are not supported by deepExtend");for(const o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&!Sg(n).call(n,o))if(t[o]&&t[o].constructor===Object)e[o]===void 0&&(e[o]={}),e[o].constructor===Object?yt(e[o],t[o]):Mo(e,t,o,i);else if(tt(t[o])){e[o]=[];for(let r=0;r2&&arguments[2]!==void 0?arguments[2]:!1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)||t===!0)if(typeof e[r]=="object"&&e[r]!==null&&s0(e[r])===Object.prototype)n[r]===void 0?n[r]=yt({},e[r],t):typeof n[r]=="object"&&n[r]!==null&&s0(n[r])===Object.prototype?yt(n[r],e[r],t):Mo(n,e,r,i);else if(tt(e[r])){var o;n[r]=vi(o=e[r]).call(o)}else Mo(n,e,r,i);return n}function BC(n,e){return[...n,e]}function _V(n){return vi(n).call(n)}function jV(n){return n.getBoundingClientRect().left}function ZV(n){return n.getBoundingClientRect().top}function He(n,e){if(tt(n)){const t=n.length;for(let i=0;i3&&arguments[3]!==void 0?arguments[3]:{};const o=function(y){return y!=null},r=function(y){return y!==null&&typeof y=="object"},A=function(y){for(const w in y)if(Object.prototype.hasOwnProperty.call(y,w))return!1;return!0};if(!r(n))throw new Error("Parameter mergeTarget must be an object");if(!r(e))throw new Error("Parameter options must be an object");if(!o(t))throw new Error("Parameter option must have a value");if(!r(i))throw new Error("Parameter globalOptions must be an object");const I=function(y,w,S){r(y[S])||(y[S]={});const x=w[S],E=y[S];for(const N in x)Object.prototype.hasOwnProperty.call(x,N)&&(E[N]=x[N])},l=e[t],h=r(i)&&!A(i)?i[t]:void 0,p=h?h.enabled:void 0;if(l===void 0)return;if(typeof l=="boolean"){r(n[t])||(n[t]={}),n[t].enabled=l;return}if(l===null&&!r(n[t]))if(o(h))n[t]=Tg(h);else return;if(!r(l))return;let m=!0;l.enabled!==void 0?m=l.enabled:p!==void 0&&(m=h.enabled),I(n,e,t),n[t].enabled=m}const LV={linear(n){return n},easeInQuad(n){return n*n},easeOutQuad(n){return n*(2-n)},easeInOutQuad(n){return n<.5?2*n*n:-1+(4-2*n)*n},easeInCubic(n){return n*n*n},easeOutCubic(n){return--n*n*n+1},easeInOutCubic(n){return n<.5?4*n*n*n:(n-1)*(2*n-2)*(2*n-2)+1},easeInQuart(n){return n*n*n*n},easeOutQuart(n){return 1- --n*n*n*n},easeInOutQuart(n){return n<.5?8*n*n*n*n:1-8*--n*n*n*n},easeInQuint(n){return n*n*n*n*n},easeOutQuint(n){return 1+--n*n*n*n*n},easeInOutQuint(n){return n<.5?16*n*n*n*n*n:1+16*--n*n*n*n*n}};function Mg(n,e){let t;tt(e)||(e=[e]);for(const i of n)if(i){t=i[e[0]];for(let o=1;o0&&arguments[0]!==void 0?arguments[0]:1;this.pixelRatio=e,this.generated=!1,this.centerCoordinates={x:289/2,y:289/2},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=()=>{},this.closeCallback=()=>{},this._create()}insertTo(e){this.hammer!==void 0&&(this.hammer.destroy(),this.hammer=void 0),this.container=e,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}setUpdateCallback(e){if(typeof e=="function")this.updateCallback=e;else throw new Error("Function attempted to set as colorPicker update callback is not a function.")}setCloseCallback(e){if(typeof e=="function")this.closeCallback=e;else throw new Error("Function attempted to set as colorPicker closing callback is not a function.")}_isColorString(e){if(typeof e=="string")return GV[e]}setColor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(e==="none")return;let i;const o=this._isColorString(e);if(o!==void 0&&(e=o),Ns(e)===!0){if(h1(e)===!0){const r=e.substr(4).substr(0,e.length-5).split(",");i={r:r[0],g:r[1],b:r[2],a:1}}else if(PV(e)===!0){const r=e.substr(5).substr(0,e.length-6).split(",");i={r:r[0],g:r[1],b:r[2],a:r[3]}}else if(u1(e)===!0){const r=Hd(e);i={r:r.r,g:r.g,b:r.b,a:1}}}else if(e instanceof Object&&e.r!==void 0&&e.g!==void 0&&e.b!==void 0){const r=e.a!==void 0?e.a:"1.0";i={r:e.r,g:e.g,b:e.b,a:r}}if(i===void 0)throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: "+bs(e));this._setColor(i,t)}show(){this.closeCallback!==void 0&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}_hide(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0)===!0&&(this.previousColor=Vt({},this.color)),this.applied===!0&&this.updateCallback(this.initialColor),this.frame.style.display="none",Mi(()=>{this.closeCallback!==void 0&&(this.closeCallback(),this.closeCallback=void 0)},0)}_save(){this.updateCallback(this.color),this.applied=!1,this._hide()}_apply(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}_loadLast(){this.previousColor!==void 0?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}_setColor(e){(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0)===!0&&(this.initialColor=Vt({},e)),this.color=e;const i=xa(e.r,e.g,e.b),o=2*Math.PI,r=this.r*i.s,A=this.centerCoordinates.x+r*Math.sin(o*i.h),I=this.centerCoordinates.y+r*Math.cos(o*i.h);this.colorPickerSelector.style.left=A-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=I-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(e)}_setOpacity(e){this.color.a=e/100,this._updatePicker(this.color)}_setBrightness(e){const t=xa(this.color.r,this.color.g,this.color.b);t.v=e/100;const i=PC(t.h,t.s,t.v);i.a=this.color.a,this.color=i,this._updatePicker()}_updatePicker(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.color;const t=xa(e.r,e.g,e.b),i=this.colorPickerCanvas.getContext("2d");this.pixelRation===void 0&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);const o=this.colorPickerCanvas.clientWidth,r=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,o,r),i.putImageData(this.hueCircle,0,0),i.fillStyle="rgba(0,0,0,"+(1-t.v)+")",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),Ia(i).call(i),this.brightnessRange.value=100*t.v,this.opacityRange.value=100*e.a,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}_setSize(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}_create(){var e,t,i,o;if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){const A=this.colorPickerCanvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(A.webkitBackingStorePixelRatio||A.mozBackingStorePixelRatio||A.msBackingStorePixelRatio||A.oBackingStorePixelRatio||A.backingStorePixelRatio||1),this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{const A=document.createElement("DIV");A.style.color="red",A.style.fontWeight="bold",A.style.padding="10px",A.innerText="Error: your browser does not support HTML canvas",this.colorPickerCanvas.appendChild(A)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch{}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch{}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);const r=this;this.opacityRange.onchange=function(){r._setOpacity(this.value)},this.opacityRange.oninput=function(){r._setOpacity(this.value)},this.brightnessRange.onchange=function(){r._setBrightness(this.value)},this.brightnessRange.oninput=function(){r._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerText="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerText="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerText="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerText="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerText="cancel",this.cancelButton.onclick=ie(e=this._hide).call(e,this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerText="apply",this.applyButton.onclick=ie(t=this._apply).call(t,this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.innerText="save",this.saveButton.onclick=ie(i=this._save).call(i,this),this.loadButton=document.createElement("div"),this.loadButton.className="vis-button vis-load",this.loadButton.innerText="load last",this.loadButton.onclick=ie(o=this._loadLast).call(o,this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}_bindHammer(){this.drag={},this.pinch={},this.hammer=new Yd(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.on("hammer.input",e=>{e.isFirst&&this._moveSelector(e)}),this.hammer.on("tap",e=>{this._moveSelector(e)}),this.hammer.on("panstart",e=>{this._moveSelector(e)}),this.hammer.on("panmove",e=>{this._moveSelector(e)}),this.hammer.on("panend",e=>{this._moveSelector(e)})}_generateHueCircle(){if(this.generated===!1){const e=this.colorPickerCanvas.getContext("2d");this.pixelRation===void 0&&(this.pixelRatio=(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)),e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);const t=this.colorPickerCanvas.clientWidth,i=this.colorPickerCanvas.clientHeight;e.clearRect(0,0,t,i);let o,r,A,I;this.centerCoordinates={x:t*.5,y:i*.5},this.r=.49*t;const l=2*Math.PI/360,c=1/360,h=1/this.r;let p;for(A=0;A<360;A++)for(I=0;I3&&arguments[3]!==void 0?arguments[3]:1,r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:()=>!1;this.parent=e,this.changedOptions=[],this.container=t,this.allowCreation=!1,this.hideOption=r,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},Vt(this.options,this.defaultOptions),this.configureOptions=i,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new FV(o),this.wrapper=void 0}setOptions(e){if(e!==void 0){this.popupHistory={},this._removePopup();let t=!0;if(typeof e=="string")this.options.filter=e;else if(tt(e))this.options.filter=e.join();else if(typeof e=="object"){if(e==null)throw new TypeError("options cannot be null");e.container!==void 0&&(this.options.container=e.container),Qt(e)!==void 0&&(this.options.filter=Qt(e)),e.showButton!==void 0&&(this.options.showButton=e.showButton),e.enabled!==void 0&&(t=e.enabled)}else typeof e=="boolean"?(this.options.filter=!0,t=e):typeof e=="function"&&(this.options.filter=e,t=!0);Qt(this.options)===!1&&(t=!1),this.options.enabled=t}this._clean()}setModuleOptions(e){this.moduleOptions=e,this.options.enabled===!0&&(this._clean(),this.options.container!==void 0&&(this.container=this.options.container),this._create())}_create(){this._clean(),this.changedOptions=[];const e=Qt(this.options);let t=0,i=!1;for(const o in this.configureOptions)Object.prototype.hasOwnProperty.call(this.configureOptions,o)&&(this.allowCreation=!1,i=!1,typeof e=="function"?(i=e(o,[]),i=i||this._handleObject(this.configureOptions[o],[o],!0)):(e===!0||Ct(e).call(e,o)!==-1)&&(i=!0),i!==!1&&(this.allowCreation=!0,t>0&&this._makeItem([]),this._makeHeader(o),this._handleObject(this.configureOptions[o],[o])),t++);this._makeButton(),this._push()}_push(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(let e=0;e1?t-1:0),o=1;o{r.appendChild(A)}),this.domElements.push(r),this.domElements.length}return 0}_makeHeader(e){const t=document.createElement("div");t.className="vis-configuration vis-config-header",t.innerText=e,this._makeItem([],t)}_makeLabel(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const o=document.createElement("div");if(o.className="vis-configuration vis-config-label vis-config-s"+t.length,i===!0){for(;o.firstChild;)o.removeChild(o.firstChild);o.appendChild(Qd("i","b",e))}else o.innerText=e+":";return o}_makeDropdown(e,t,i){const o=document.createElement("select");o.className="vis-configuration vis-config-select";let r=0;t!==void 0&&Ct(e).call(e,t)!==-1&&(r=Ct(e).call(e,t));for(let l=0;lA&&A!==1&&(l.max=Math.ceil(t*1.2),h=l.max,c="range increased"),l.value=t):l.value=o;const p=document.createElement("input");p.className="vis-configuration vis-config-rangeinput",p.value=l.value;const m=this;l.onchange=function(){p.value=this.value,m._update(Number(this.value),i)},l.oninput=function(){p.value=this.value};const y=this._makeLabel(i[i.length-1],i),w=this._makeItem(i,y,l,p);c!==""&&this.popupHistory[w]!==h&&(this.popupHistory[w]=h,this._setupPopup(c,w))}_makeButton(){if(this.options.showButton===!0){const e=document.createElement("div");e.className="vis-configuration vis-config-button",e.innerText="generate options",e.onclick=()=>{this._printOptions()},e.onmouseover=()=>{e.className="vis-configuration vis-config-button hover"},e.onmouseout=()=>{e.className="vis-configuration vis-config-button"},this.optionsContainer=document.createElement("div"),this.optionsContainer.className="vis-configuration vis-config-option-container",this.domElements.push(this.optionsContainer),this.domElements.push(e)}}_setupPopup(e,t){if(this.initialized===!0&&this.allowCreation===!0&&this.popupCounter{this._removePopup()},this.popupCounter+=1,this.popupDiv={html:i,index:t}}}_removePopup(){this.popupDiv.html!==void 0&&(this.popupDiv.html.parentNode.removeChild(this.popupDiv.html),clearTimeout(this.popupDiv.hideTimeout),clearTimeout(this.popupDiv.deleteTimeout),this.popupDiv={})}_showPopupIfNeeded(){if(this.popupDiv.html!==void 0){const t=this.domElements[this.popupDiv.index].getBoundingClientRect();this.popupDiv.html.style.left=t.left+"px",this.popupDiv.html.style.top=t.top-30+"px",document.body.appendChild(this.popupDiv.html),this.popupDiv.hideTimeout=Mi(()=>{this.popupDiv.html.style.opacity=0},1500),this.popupDiv.deleteTimeout=Mi(()=>{this._removePopup()},1800)}}_makeCheckbox(e,t,i){const o=document.createElement("input");o.type="checkbox",o.className="vis-configuration vis-config-checkbox",o.checked=e,t!==void 0&&(o.checked=t,t!==e&&(typeof e=="object"?t!==e.enabled&&this.changedOptions.push({path:i,value:t}):this.changedOptions.push({path:i,value:t})));const r=this;o.onchange=function(){r._update(this.checked,i)};const A=this._makeLabel(i[i.length-1],i);this._makeItem(i,A,o)}_makeTextInput(e,t,i){const o=document.createElement("input");o.type="text",o.className="vis-configuration vis-config-text",o.value=t,t!==e&&this.changedOptions.push({path:i,value:t});const r=this;o.onchange=function(){r._update(this.value,i)};const A=this._makeLabel(i[i.length-1],i);this._makeItem(i,A,o)}_makeColorField(e,t,i){const o=e[1],r=document.createElement("div");t=t===void 0?o:t,t!=="none"?(r.className="vis-configuration vis-config-colorBlock",r.style.backgroundColor=t):r.className="vis-configuration vis-config-colorBlock none",t=t===void 0?o:t,r.onclick=()=>{this._showColorPicker(t,r,i)};const A=this._makeLabel(i[i.length-1],i);this._makeItem(i,A,r)}_showColorPicker(e,t,i){t.onclick=function(){},this.colorPicker.insertTo(t),this.colorPicker.show(),this.colorPicker.setColor(e),this.colorPicker.setUpdateCallback(o=>{const r="rgba("+o.r+","+o.g+","+o.b+","+o.a+")";t.style.backgroundColor=r,this._update(r,i)}),this.colorPicker.setCloseCallback(()=>{t.onclick=()=>{this._showColorPicker(e,t,i)}})}_handleObject(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,o=!1;const r=Qt(this.options);let A=!1;for(const I in e)if(Object.prototype.hasOwnProperty.call(e,I)){o=!0;const l=e[I],c=BC(t,I);if(typeof r=="function"&&(o=r(I,t),o===!1&&!tt(l)&&typeof l!="string"&&typeof l!="boolean"&&l instanceof Object&&(this.allowCreation=!1,o=this._handleObject(l,c,!0),this.allowCreation=i===!1)),o!==!1){A=!0;const h=this._getValue(c);if(tt(l))this._handleArray(l,h,c);else if(typeof l=="string")this._makeTextInput(l,h,c);else if(typeof l=="boolean")this._makeCheckbox(l,h,c);else if(l instanceof Object){if(!this.hideOption(t,I,this.moduleOptions))if(l.enabled!==void 0){const p=BC(c,"enabled"),m=this._getValue(p);if(m===!0){const y=this._makeLabel(I,c,!0);this._makeItem(c,y),A=this._handleObject(l,c)||A}else this._makeCheckbox(l,m,c)}else{const p=this._makeLabel(I,c,!0);this._makeItem(c,p),A=this._handleObject(l,c)||A}}else console.error("dont know how to handle",l,I,c)}}return A}_handleArray(e,t,i){typeof e[0]=="string"&&e[0]==="color"?(this._makeColorField(e,t,i),e[1]!==t&&this.changedOptions.push({path:i,value:t})):typeof e[0]=="string"?(this._makeDropdown(e,t,i),e[0]!==t&&this.changedOptions.push({path:i,value:t})):typeof e[0]=="number"&&(this._makeRange(e,t,i),e[0]!==t&&this.changedOptions.push({path:i,value:Number(t)}))}_update(e,t){const i=this._constructOptions(e,t);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",i),this.initialized=!0,this.parent.setOptions(i)}_constructOptions(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=i;e=e==="true"?!0:e,e=e==="false"?!1:e;for(let r=0;rr-this.padding&&(l=!0),l?A=this.x-i:A=this.x,c?I=this.y-t:I=this.y}else I=this.y-t,I+t+this.padding>o&&(I=o-t-this.padding),Ir&&(A=r-i-this.padding),A\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",A=window.console&&(window.console.warn||window.console.log);return A&&A.call(window.console,i,r),n.apply(this,arguments)}}var s1=o1(function(n,e,t){for(var i=Object.keys(e),o=0;o1?e-1:0),i=1;i2)return _C(C1(e[0],e[1]),...vi(e).call(e,2));const i=e[0],o=e[1];if(i instanceof Date&&o instanceof Date)return i.setTime(o.getTime()),i;for(const r of A8(o))Object.prototype.propertyIsEnumerable.call(o,r)&&(o[r]===A1?delete i[r]:i[r]!==null&&o[r]!==null&&typeof i[r]=="object"&&typeof o[r]=="object"&&!et(i[r])&&!et(o[r])?i[r]=_C(i[r],o[r]):i[r]=I1(o[r]));return i}function I1(n){return et(n)?cn(n).call(n,e=>I1(e)):typeof n=="object"&&n!==null?n instanceof Date?new Date(n.getTime()):_C({},n):n}function l1(n){for(const e of wt(n))n[e]===A1?delete n[e]:typeof n[e]=="object"&&n[e]!==null&&l1(n[e])}function jC(){for(var n=arguments.length,e=new Array(n),t=0;t{const A=2091639*e+o*23283064365386963e-26;return e=t,t=i,i=A-(o=A|0)};return r.uint32=()=>r()*4294967296,r.fract53=()=>r()+(r()*2097152|0)*11102230246251565e-32,r.algorithm="Alea",r.seed=n,r.version="0.9",r}function DV(){const n=MV();let e=n(" "),t=n(" "),i=n(" ");for(let o=0;o>>0,o-=n,o*=n,n=o>>>0,o-=n,n+=o*4294967296}return(n>>>0)*23283064365386963e-26}}function zV(){const n=()=>{};return{on:n,off:n,destroy:n,emit:n,get(){return{set:n}}}}const Yd=typeof window<"u"?window.Hammer||TV:function(){return zV()};function Ri(n){var e;this._cleanupQueue=[],this.active=!1,this._dom={container:n,overlay:document.createElement("div")},this._dom.overlay.classList.add("vis-overlay"),this._dom.container.appendChild(this._dom.overlay),this._cleanupQueue.push(()=>{this._dom.overlay.parentNode.removeChild(this._dom.overlay)});const t=Yd(this._dom.overlay);t.on("tap",ge(e=this._onTapOverlay).call(e,this)),this._cleanupQueue.push(()=>{t.destroy()});const i=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];Je(i).call(i,o=>{t.on(o,r=>{r.srcEvent.stopPropagation()})}),document&&document.body&&(this._onClick=o=>{kV(o.target,n)||this.deactivate()},document.body.addEventListener("click",this._onClick),this._cleanupQueue.push(()=>{document.body.removeEventListener("click",this._onClick)})),this._escListener=o=>{("key"in o?o.key==="Escape":o.keyCode===27)&&this.deactivate()}}py(Ri.prototype),Ri.current=null,Ri.prototype.destroy=function(){this.deactivate();for(const t of wo(n=Di(e=this._cleanupQueue).call(e,0)).call(n)){var n,e;t()}},Ri.prototype.activate=function(){Ri.current&&Ri.current.deactivate(),Ri.current=this,this.active=!0,this._dom.overlay.style.display="none",this._dom.container.classList.add("vis-active"),this.emit("change"),this.emit("activate"),document.body.addEventListener("keydown",this._escListener)},Ri.prototype.deactivate=function(){this.active=!1,this._dom.overlay.style.display="block",this._dom.container.classList.remove("vis-active"),document.body.removeEventListener("keydown",this._escListener),this.emit("change"),this.emit("deactivate")},Ri.prototype._onTapOverlay=function(n){this.activate(),n.srcEvent.stopPropagation()};function kV(n,e){for(;n;){if(n===e)return!0;n=n.parentNode}return!1}const RV=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,_V=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,jV=/^rgb\( *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *\)$/i,ZV=/^rgba\( *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *([01]|0?\.\d+) *\)$/i;function Ng(n){if(n)for(;n.hasChildNodes()===!0;){const e=n.firstChild;e&&(Ng(e),n.removeChild(e))}}function Ns(n){return n instanceof String||typeof n=="string"}function c1(n){return typeof n=="object"&&n!==null}function Mo(n,e,t,i){let o=!1;i===!0&&(o=e[t]===null&&n[t]!==void 0),o?delete n[t]:n[t]=e[t]}function d1(n,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;for(const i in n)if(e[i]!==void 0)if(e[i]===null||typeof e[i]!="object")Mo(n,e,i,t);else{const o=n[i],r=e[i];c1(o)&&c1(r)&&d1(o,r,t)}}function Ds(n,e,t){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(et(t))throw new TypeError("Arrays are not supported by deepExtend");for(let o=0;o3&&arguments[3]!==void 0?arguments[3]:!1;if(et(t))throw new TypeError("Arrays are not supported by deepExtend");for(const o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&!Eg(n).call(n,o))if(t[o]&&t[o].constructor===Object)e[o]===void 0&&(e[o]={}),e[o].constructor===Object?mt(e[o],t[o]):Mo(e,t,o,i);else if(et(t[o])){e[o]=[];for(let r=0;r2&&arguments[2]!==void 0?arguments[2]:!1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)||t===!0)if(typeof e[r]=="object"&&e[r]!==null&&r0(e[r])===Object.prototype)n[r]===void 0?n[r]=mt({},e[r],t):typeof n[r]=="object"&&n[r]!==null&&r0(n[r])===Object.prototype?mt(n[r],e[r],t):Mo(n,e,r,i);else if(et(e[r])){var o;n[r]=vi(o=e[r]).call(o)}else Mo(n,e,r,i);return n}function BC(n,e){return[...n,e]}function BV(n){return vi(n).call(n)}function PV(n){return n.getBoundingClientRect().left}function LV(n){return n.getBoundingClientRect().top}function Ye(n,e){if(et(n)){const t=n.length;for(let i=0;i3&&arguments[3]!==void 0?arguments[3]:{};const o=function(y){return y!=null},r=function(y){return y!==null&&typeof y=="object"},A=function(y){for(const w in y)if(Object.prototype.hasOwnProperty.call(y,w))return!1;return!0};if(!r(n))throw new Error("Parameter mergeTarget must be an object");if(!r(e))throw new Error("Parameter options must be an object");if(!o(t))throw new Error("Parameter option must have a value");if(!r(i))throw new Error("Parameter globalOptions must be an object");const I=function(y,w,S){r(y[S])||(y[S]={});const x=w[S],O=y[S];for(const E in x)Object.prototype.hasOwnProperty.call(x,E)&&(O[E]=x[E])},l=e[t],h=r(i)&&!A(i)?i[t]:void 0,p=h?h.enabled:void 0;if(l===void 0)return;if(typeof l=="boolean"){r(n[t])||(n[t]={}),n[t].enabled=l;return}if(l===null&&!r(n[t]))if(o(h))n[t]=Tg(h);else return;if(!r(l))return;let m=!0;l.enabled!==void 0?m=l.enabled:p!==void 0&&(m=h.enabled),I(n,e,t),n[t].enabled=m}const VV={linear(n){return n},easeInQuad(n){return n*n},easeOutQuad(n){return n*(2-n)},easeInOutQuad(n){return n<.5?2*n*n:-1+(4-2*n)*n},easeInCubic(n){return n*n*n},easeOutCubic(n){return--n*n*n+1},easeInOutCubic(n){return n<.5?4*n*n*n:(n-1)*(2*n-2)*(2*n-2)+1},easeInQuart(n){return n*n*n*n},easeOutQuart(n){return 1- --n*n*n*n},easeInOutQuart(n){return n<.5?8*n*n*n*n:1-8*--n*n*n*n},easeInQuint(n){return n*n*n*n*n},easeOutQuint(n){return 1+--n*n*n*n*n},easeInOutQuint(n){return n<.5?16*n*n*n*n*n:1+16*--n*n*n*n*n}};function Mg(n,e){let t;et(e)||(e=[e]);for(const i of n)if(i){t=i[e[0]];for(let o=1;o0&&arguments[0]!==void 0?arguments[0]:1;this.pixelRatio=e,this.generated=!1,this.centerCoordinates={x:289/2,y:289/2},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=()=>{},this.closeCallback=()=>{},this._create()}insertTo(e){this.hammer!==void 0&&(this.hammer.destroy(),this.hammer=void 0),this.container=e,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}setUpdateCallback(e){if(typeof e=="function")this.updateCallback=e;else throw new Error("Function attempted to set as colorPicker update callback is not a function.")}setCloseCallback(e){if(typeof e=="function")this.closeCallback=e;else throw new Error("Function attempted to set as colorPicker closing callback is not a function.")}_isColorString(e){if(typeof e=="string")return UV[e]}setColor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(e==="none")return;let i;const o=this._isColorString(e);if(o!==void 0&&(e=o),Ns(e)===!0){if(f1(e)===!0){const r=e.substr(4).substr(0,e.length-5).split(",");i={r:r[0],g:r[1],b:r[2],a:1}}else if(FV(e)===!0){const r=e.substr(5).substr(0,e.length-6).split(",");i={r:r[0],g:r[1],b:r[2],a:r[3]}}else if(h1(e)===!0){const r=Hd(e);i={r:r.r,g:r.g,b:r.b,a:1}}}else if(e instanceof Object&&e.r!==void 0&&e.g!==void 0&&e.b!==void 0){const r=e.a!==void 0?e.a:"1.0";i={r:e.r,g:e.g,b:e.b,a:r}}if(i===void 0)throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: "+bs(e));this._setColor(i,t)}show(){this.closeCallback!==void 0&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}_hide(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0)===!0&&(this.previousColor=Vt({},this.color)),this.applied===!0&&this.updateCallback(this.initialColor),this.frame.style.display="none",Mi(()=>{this.closeCallback!==void 0&&(this.closeCallback(),this.closeCallback=void 0)},0)}_save(){this.updateCallback(this.color),this.applied=!1,this._hide()}_apply(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}_loadLast(){this.previousColor!==void 0?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}_setColor(e){(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0)===!0&&(this.initialColor=Vt({},e)),this.color=e;const i=xa(e.r,e.g,e.b),o=2*Math.PI,r=this.r*i.s,A=this.centerCoordinates.x+r*Math.sin(o*i.h),I=this.centerCoordinates.y+r*Math.cos(o*i.h);this.colorPickerSelector.style.left=A-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=I-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(e)}_setOpacity(e){this.color.a=e/100,this._updatePicker(this.color)}_setBrightness(e){const t=xa(this.color.r,this.color.g,this.color.b);t.v=e/100;const i=PC(t.h,t.s,t.v);i.a=this.color.a,this.color=i,this._updatePicker()}_updatePicker(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.color;const t=xa(e.r,e.g,e.b),i=this.colorPickerCanvas.getContext("2d");this.pixelRation===void 0&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);const o=this.colorPickerCanvas.clientWidth,r=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,o,r),i.putImageData(this.hueCircle,0,0),i.fillStyle="rgba(0,0,0,"+(1-t.v)+")",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),Ia(i).call(i),this.brightnessRange.value=100*t.v,this.opacityRange.value=100*e.a,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}_setSize(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}_create(){var e,t,i,o;if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){const A=this.colorPickerCanvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(A.webkitBackingStorePixelRatio||A.mozBackingStorePixelRatio||A.msBackingStorePixelRatio||A.oBackingStorePixelRatio||A.backingStorePixelRatio||1),this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{const A=document.createElement("DIV");A.style.color="red",A.style.fontWeight="bold",A.style.padding="10px",A.innerText="Error: your browser does not support HTML canvas",this.colorPickerCanvas.appendChild(A)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch{}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch{}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);const r=this;this.opacityRange.onchange=function(){r._setOpacity(this.value)},this.opacityRange.oninput=function(){r._setOpacity(this.value)},this.brightnessRange.onchange=function(){r._setBrightness(this.value)},this.brightnessRange.oninput=function(){r._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerText="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerText="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerText="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerText="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerText="cancel",this.cancelButton.onclick=ge(e=this._hide).call(e,this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerText="apply",this.applyButton.onclick=ge(t=this._apply).call(t,this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.innerText="save",this.saveButton.onclick=ge(i=this._save).call(i,this),this.loadButton=document.createElement("div"),this.loadButton.className="vis-button vis-load",this.loadButton.innerText="load last",this.loadButton.onclick=ge(o=this._loadLast).call(o,this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}_bindHammer(){this.drag={},this.pinch={},this.hammer=new Yd(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.on("hammer.input",e=>{e.isFirst&&this._moveSelector(e)}),this.hammer.on("tap",e=>{this._moveSelector(e)}),this.hammer.on("panstart",e=>{this._moveSelector(e)}),this.hammer.on("panmove",e=>{this._moveSelector(e)}),this.hammer.on("panend",e=>{this._moveSelector(e)})}_generateHueCircle(){if(this.generated===!1){const e=this.colorPickerCanvas.getContext("2d");this.pixelRation===void 0&&(this.pixelRatio=(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)),e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);const t=this.colorPickerCanvas.clientWidth,i=this.colorPickerCanvas.clientHeight;e.clearRect(0,0,t,i);let o,r,A,I;this.centerCoordinates={x:t*.5,y:i*.5},this.r=.49*t;const l=2*Math.PI/360,c=1/360,h=1/this.r;let p;for(A=0;A<360;A++)for(I=0;I3&&arguments[3]!==void 0?arguments[3]:1,r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:()=>!1;this.parent=e,this.changedOptions=[],this.container=t,this.allowCreation=!1,this.hideOption=r,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},Vt(this.options,this.defaultOptions),this.configureOptions=i,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new YV(o),this.wrapper=void 0}setOptions(e){if(e!==void 0){this.popupHistory={},this._removePopup();let t=!0;if(typeof e=="string")this.options.filter=e;else if(et(e))this.options.filter=e.join();else if(typeof e=="object"){if(e==null)throw new TypeError("options cannot be null");e.container!==void 0&&(this.options.container=e.container),Qt(e)!==void 0&&(this.options.filter=Qt(e)),e.showButton!==void 0&&(this.options.showButton=e.showButton),e.enabled!==void 0&&(t=e.enabled)}else typeof e=="boolean"?(this.options.filter=!0,t=e):typeof e=="function"&&(this.options.filter=e,t=!0);Qt(this.options)===!1&&(t=!1),this.options.enabled=t}this._clean()}setModuleOptions(e){this.moduleOptions=e,this.options.enabled===!0&&(this._clean(),this.options.container!==void 0&&(this.container=this.options.container),this._create())}_create(){this._clean(),this.changedOptions=[];const e=Qt(this.options);let t=0,i=!1;for(const o in this.configureOptions)Object.prototype.hasOwnProperty.call(this.configureOptions,o)&&(this.allowCreation=!1,i=!1,typeof e=="function"?(i=e(o,[]),i=i||this._handleObject(this.configureOptions[o],[o],!0)):(e===!0||at(e).call(e,o)!==-1)&&(i=!0),i!==!1&&(this.allowCreation=!0,t>0&&this._makeItem([]),this._makeHeader(o),this._handleObject(this.configureOptions[o],[o])),t++);this._makeButton(),this._push()}_push(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(let e=0;e1?t-1:0),o=1;o{r.appendChild(A)}),this.domElements.push(r),this.domElements.length}return 0}_makeHeader(e){const t=document.createElement("div");t.className="vis-configuration vis-config-header",t.innerText=e,this._makeItem([],t)}_makeLabel(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const o=document.createElement("div");if(o.className="vis-configuration vis-config-label vis-config-s"+t.length,i===!0){for(;o.firstChild;)o.removeChild(o.firstChild);o.appendChild(Qd("i","b",e))}else o.innerText=e+":";return o}_makeDropdown(e,t,i){const o=document.createElement("select");o.className="vis-configuration vis-config-select";let r=0;t!==void 0&&at(e).call(e,t)!==-1&&(r=at(e).call(e,t));for(let l=0;lA&&A!==1&&(l.max=Math.ceil(t*1.2),h=l.max,c="range increased"),l.value=t):l.value=o;const p=document.createElement("input");p.className="vis-configuration vis-config-rangeinput",p.value=l.value;const m=this;l.onchange=function(){p.value=this.value,m._update(Number(this.value),i)},l.oninput=function(){p.value=this.value};const y=this._makeLabel(i[i.length-1],i),w=this._makeItem(i,y,l,p);c!==""&&this.popupHistory[w]!==h&&(this.popupHistory[w]=h,this._setupPopup(c,w))}_makeButton(){if(this.options.showButton===!0){const e=document.createElement("div");e.className="vis-configuration vis-config-button",e.innerText="generate options",e.onclick=()=>{this._printOptions()},e.onmouseover=()=>{e.className="vis-configuration vis-config-button hover"},e.onmouseout=()=>{e.className="vis-configuration vis-config-button"},this.optionsContainer=document.createElement("div"),this.optionsContainer.className="vis-configuration vis-config-option-container",this.domElements.push(this.optionsContainer),this.domElements.push(e)}}_setupPopup(e,t){if(this.initialized===!0&&this.allowCreation===!0&&this.popupCounter{this._removePopup()},this.popupCounter+=1,this.popupDiv={html:i,index:t}}}_removePopup(){this.popupDiv.html!==void 0&&(this.popupDiv.html.parentNode.removeChild(this.popupDiv.html),clearTimeout(this.popupDiv.hideTimeout),clearTimeout(this.popupDiv.deleteTimeout),this.popupDiv={})}_showPopupIfNeeded(){if(this.popupDiv.html!==void 0){const t=this.domElements[this.popupDiv.index].getBoundingClientRect();this.popupDiv.html.style.left=t.left+"px",this.popupDiv.html.style.top=t.top-30+"px",document.body.appendChild(this.popupDiv.html),this.popupDiv.hideTimeout=Mi(()=>{this.popupDiv.html.style.opacity=0},1500),this.popupDiv.deleteTimeout=Mi(()=>{this._removePopup()},1800)}}_makeCheckbox(e,t,i){const o=document.createElement("input");o.type="checkbox",o.className="vis-configuration vis-config-checkbox",o.checked=e,t!==void 0&&(o.checked=t,t!==e&&(typeof e=="object"?t!==e.enabled&&this.changedOptions.push({path:i,value:t}):this.changedOptions.push({path:i,value:t})));const r=this;o.onchange=function(){r._update(this.checked,i)};const A=this._makeLabel(i[i.length-1],i);this._makeItem(i,A,o)}_makeTextInput(e,t,i){const o=document.createElement("input");o.type="text",o.className="vis-configuration vis-config-text",o.value=t,t!==e&&this.changedOptions.push({path:i,value:t});const r=this;o.onchange=function(){r._update(this.value,i)};const A=this._makeLabel(i[i.length-1],i);this._makeItem(i,A,o)}_makeColorField(e,t,i){const o=e[1],r=document.createElement("div");t=t===void 0?o:t,t!=="none"?(r.className="vis-configuration vis-config-colorBlock",r.style.backgroundColor=t):r.className="vis-configuration vis-config-colorBlock none",t=t===void 0?o:t,r.onclick=()=>{this._showColorPicker(t,r,i)};const A=this._makeLabel(i[i.length-1],i);this._makeItem(i,A,r)}_showColorPicker(e,t,i){t.onclick=function(){},this.colorPicker.insertTo(t),this.colorPicker.show(),this.colorPicker.setColor(e),this.colorPicker.setUpdateCallback(o=>{const r="rgba("+o.r+","+o.g+","+o.b+","+o.a+")";t.style.backgroundColor=r,this._update(r,i)}),this.colorPicker.setCloseCallback(()=>{t.onclick=()=>{this._showColorPicker(e,t,i)}})}_handleObject(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,o=!1;const r=Qt(this.options);let A=!1;for(const I in e)if(Object.prototype.hasOwnProperty.call(e,I)){o=!0;const l=e[I],c=BC(t,I);if(typeof r=="function"&&(o=r(I,t),o===!1&&!et(l)&&typeof l!="string"&&typeof l!="boolean"&&l instanceof Object&&(this.allowCreation=!1,o=this._handleObject(l,c,!0),this.allowCreation=i===!1)),o!==!1){A=!0;const h=this._getValue(c);if(et(l))this._handleArray(l,h,c);else if(typeof l=="string")this._makeTextInput(l,h,c);else if(typeof l=="boolean")this._makeCheckbox(l,h,c);else if(l instanceof Object){if(!this.hideOption(t,I,this.moduleOptions))if(l.enabled!==void 0){const p=BC(c,"enabled"),m=this._getValue(p);if(m===!0){const y=this._makeLabel(I,c,!0);this._makeItem(c,y),A=this._handleObject(l,c)||A}else this._makeCheckbox(l,m,c)}else{const p=this._makeLabel(I,c,!0);this._makeItem(c,p),A=this._handleObject(l,c)||A}}else console.error("dont know how to handle",l,I,c)}}return A}_handleArray(e,t,i){typeof e[0]=="string"&&e[0]==="color"?(this._makeColorField(e,t,i),e[1]!==t&&this.changedOptions.push({path:i,value:t})):typeof e[0]=="string"?(this._makeDropdown(e,t,i),e[0]!==t&&this.changedOptions.push({path:i,value:t})):typeof e[0]=="number"&&(this._makeRange(e,t,i),e[0]!==t&&this.changedOptions.push({path:i,value:Number(t)}))}_update(e,t){const i=this._constructOptions(e,t);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",i),this.initialized=!0,this.parent.setOptions(i)}_constructOptions(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=i;e=e==="true"?!0:e,e=e==="false"?!1:e;for(let r=0;rr-this.padding&&(l=!0),l?A=this.x-i:A=this.x,c?I=this.y-t:I=this.y}else I=this.y-t,I+t+this.padding>o&&(I=o-t-this.padding),Ir&&(A=r-i-this.padding),Ar.distance?l=" in "+Gt.printLocation(o.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+Gt.printLocation(r.path,r.closestMatch,""):o.distance<=A?l='. Did you mean "'+o.closestMatch+'"?'+Gt.printLocation(o.path,e):l=". Did you mean one of these: "+Gt.print(xt(t))+Gt.printLocation(i,e),console.error('%cUnknown option detected: "'+e+'"'+l,Xd),Ea=!0}static findInOptions(e,t,i){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,r=1e9,A="",I=[];const l=e.toLowerCase();let c;for(const p in t){let m;if(t[p].__type__!==void 0&&o===!0){const y=Gt.findInOptions(e,t[p],BC(i,p));r>y.distance&&(A=y.closestMatch,I=y.path,r=y.distance,c=y.indexMatch)}else{var h;Ct(h=p.toLowerCase()).call(h,l)!==-1&&(c=p),m=Gt.levenshteinDistance(e,p),r>m&&(A=p,I=_V(i),r=m)}}return{closestMatch:A,path:I,distance:r,indexMatch:c}}static printLocation(e,t){let o=` +`:r.distance<=I&&o.distance>r.distance?l=" in "+Gt.printLocation(o.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+Gt.printLocation(r.path,r.closestMatch,""):o.distance<=A?l='. Did you mean "'+o.closestMatch+'"?'+Gt.printLocation(o.path,e):l=". Did you mean one of these: "+Gt.print(wt(t))+Gt.printLocation(i,e),console.error('%cUnknown option detected: "'+e+'"'+l,Xd),Sa=!0}static findInOptions(e,t,i){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,r=1e9,A="",I=[];const l=e.toLowerCase();let c;for(const p in t){let m;if(t[p].__type__!==void 0&&o===!0){const y=Gt.findInOptions(e,t[p],BC(i,p));r>y.distance&&(A=y.closestMatch,I=y.path,r=y.distance,c=y.indexMatch)}else{var h;at(h=p.toLowerCase()).call(h,l)!==-1&&(c=p),m=Gt.levenshteinDistance(e,p),r>m&&(A=p,I=BV(i),r=m)}}return{closestMatch:A,path:I,distance:r,indexMatch:c}}static printLocation(e,t){let o=` `+(arguments.length>2&&arguments[2]!==void 0?arguments[2]:`Problem value found at: `)+`options = { @@ -712,16 +712,16 @@ input.vis-configuration.vis-config-range:focus::-ms-fill-upper { `;for(let r=0;r":!0,"--":!0},zg="",zs=0,Ue="",ze="",zn=xn.NULL;function $V(){zs=0,Ue=zg.charAt(0)}function An(){zs++,Ue=zg.charAt(zs)}function ks(){return zg.charAt(zs+1)}function y1(n){var e=n.charCodeAt(0);return e<47?e===35||e===46:e<59?e>47:e<91?e>64:e<96?e===95:e<123?e>96:!1}function kg(n,e){if(n||(n={}),e)for(var t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n}function qV(n,e,t){for(var i=e.split("."),o=n;i.length;){var r=i.shift();i.length?(o[r]||(o[r]={}),o=o[r]):o[r]=t}}function b1(n,e){for(var t,i,o=null,r=[n],A=n;A.parent;)r.push(A.parent),A=A.parent;if(A.nodes){for(t=0,i=A.nodes.length;t=0;t--){var I,l=r[t];l.nodes||(l.nodes=[]),Ct(I=l.nodes).call(I,o)===-1&&l.nodes.push(o)}e.attr&&(o.attr=kg(o.attr,e.attr))}function JV(n,e){if(n.edges||(n.edges=[]),n.edges.push(e),n.edge){var t=kg({},n.edge);e.attr=kg(t,e.attr)}}function w1(n,e,t,i,o){var r={from:e,to:t,type:i};return n.edge&&(r.attr=kg({},n.edge)),r.attr=kg(r.attr||{},o),o!=null&&o.hasOwnProperty("arrows")&&o.arrows!=null&&(r.arrows={to:{enabled:!0,type:o.arrows.type}},o.arrows=null),r}function bt(){for(zn=xn.NULL,ze="";Ue===" "||Ue===" "||Ue===` -`||Ue==="\r";)An();do{var n=!1;if(Ue==="#"){for(var e=zs-1;zg.charAt(e)===" "||zg.charAt(e)===" ";)e--;if(zg.charAt(e)===` -`||zg.charAt(e)===""){for(;Ue!=""&&Ue!=` -`;)An();n=!0}}if(Ue==="/"&&ks()==="/"){for(;Ue!=""&&Ue!=` -`;)An();n=!0}if(Ue==="/"&&ks()==="*"){for(;Ue!="";)if(Ue==="*"&&ks()==="/"){An(),An();break}else An();n=!0}for(;Ue===" "||Ue===" "||Ue===` -`||Ue==="\r";)An()}while(n);if(Ue===""){zn=xn.DELIMITER;return}var t=Ue+ks();if(v1[t]){zn=xn.DELIMITER,ze=t,An(),An();return}if(v1[Ue]){zn=xn.DELIMITER,ze=Ue,An();return}if(y1(Ue)||Ue==="-"){for(ze+=Ue,An();y1(Ue);)ze+=Ue,An();ze==="false"?ze=!1:ze==="true"?ze=!0:isNaN(Number(ze))||(ze=Number(ze)),zn=xn.IDENTIFIER;return}if(Ue==='"'){for(An();Ue!=""&&(Ue!='"'||Ue==='"'&&ks()==='"');)Ue==='"'?(ze+=Ue,An()):Ue==="\\"&&ks()==="n"?(ze+=` -`,An()):ze+=Ue,An();if(Ue!='"')throw En('End of string " expected');An(),zn=xn.IDENTIFIER;return}for(zn=xn.UNKNOWN;Ue!="";)ze+=Ue,An();throw new SyntaxError('Syntax error in part "'+T1(ze,30)+'"')}function eU(){var n={};if($V(),bt(),ze==="strict"&&(n.strict=!0,bt()),(ze==="graph"||ze==="digraph")&&(n.type=ze,bt()),zn===xn.IDENTIFIER&&(n.id=ze,bt()),ze!="{")throw En("Angle bracket { expected");if(bt(),x1(n),ze!="}")throw En("Angle bracket } expected");if(bt(),ze!=="")throw En("End of file expected");return bt(),delete n.node,delete n.edge,delete n.graph,n}function x1(n){for(;ze!==""&&ze!="}";)tU(n),ze===";"&&bt()}function tU(n){var e=E1(n);if(e){S1(n,e);return}var t=nU(n);if(!t){if(zn!=xn.IDENTIFIER)throw En("Identifier expected");var i=ze;if(bt(),ze==="="){if(bt(),zn!=xn.IDENTIFIER)throw En("Identifier expected");n[i]=ze,bt()}else iU(n,i)}}function E1(n){var e=null;if(ze==="subgraph"&&(e={},e.type="subgraph",bt(),zn===xn.IDENTIFIER&&(e.id=ze,bt())),ze==="{"){if(bt(),e||(e={}),e.parent=n,e.node=n.node,e.edge=n.edge,e.graph=n.graph,x1(e),ze!="}")throw En("Angle bracket } expected");bt(),delete e.node,delete e.edge,delete e.graph,delete e.parent,n.subgraphs||(n.subgraphs=[]),n.subgraphs.push(e)}return e}function nU(n){return ze==="node"?(bt(),n.node=Sa(),"node"):ze==="edge"?(bt(),n.edge=Sa(),"edge"):ze==="graph"?(bt(),n.graph=Sa(),"graph"):null}function iU(n,e){var t={id:e},i=Sa();i&&(t.attr=i),b1(n,t),S1(n,e)}function S1(n,e){for(;ze==="->"||ze==="--";){var t,i=ze;bt();var o=E1(n);if(o)t=o;else{if(zn!=xn.IDENTIFIER)throw En("Identifier or subgraph expected");t=ze,b1(n,{id:t}),bt()}var r=Sa(),A=w1(n,e,t,i,r);JV(n,A),e=t}}function Sa(){for(var n,e=null,t={dashed:!0,solid:!1,dotted:[1,5]},i={dot:"circle",box:"box",crow:"crow",curve:"curve",icurve:"inv_curve",normal:"triangle",inv:"inv_triangle",diamond:"diamond",tee:"bar",vee:"vee"},o=new Array,r=new Array;ze==="[";){for(bt(),e={};ze!==""&&ze!="]";){if(zn!=xn.IDENTIFIER)throw En("Attribute name expected");var A=ze;if(bt(),ze!="=")throw En("Equal sign = expected");if(bt(),zn!=xn.IDENTIFIER)throw En("Attribute value expected");var I=ze;A==="style"&&(I=t[I]);var l;A==="arrowhead"&&(l=i[I],A="arrows",I={to:{enabled:!0,type:l}}),A==="arrowtail"&&(l=i[I],A="arrows",I={from:{enabled:!0,type:l}}),o.push({attr:e,name:A,value:I}),r.push(A),bt(),ze==","&&bt()}if(ze!="]")throw En("Bracket ] expected");bt()}if(Sg(r).call(r,"dir")){var c={};for(c.arrows={},n=0;n"&&(I.arrows="to"),I};Je(o=e.edges).call(o,function(A){var I,l;if(A.from instanceof Object?I=A.from.nodes:I={id:A.from},A.to instanceof Object?l=A.to.nodes:l={id:A.to},A.from instanceof Object&&A.from.edges){var c;Je(c=A.from.edges).call(c,function(p){var m=r(p);t.edges.push(m)})}if(gU(I,l,function(p,m){var y=w1(t,p.id,m.id,A.type,A.attr),w=r(y);t.edges.push(w)}),A.to instanceof Object&&A.to.edges){var h;Je(h=A.to.edges).call(h,function(p){var m=r(p);t.edges.push(m)})}})}return e.attr&&(t.options=e.attr),t}function sU(n,e){var t;const i={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};e!=null&&(e.fixed!=null&&(i.nodes.fixed=e.fixed),e.parseColor!=null&&(i.nodes.parseColor=e.parseColor),e.inheritColor!=null&&(i.edges.inheritColor=e.inheritColor));const o=n.edges,r=cn(o).call(o,I=>{const l={from:I.source,id:I.id,to:I.target};return I.attributes!=null&&(l.attributes=I.attributes),I.label!=null&&(l.label=I.label),I.attributes!=null&&I.attributes.title!=null&&(l.title=I.attributes.title),I.type==="Directed"&&(l.arrows="to"),I.color&&i.edges.inheritColor===!1&&(l.color=I.color),l});return{nodes:cn(t=n.nodes).call(t,I=>{const l={id:I.id,fixed:i.nodes.fixed&&I.x!=null&&I.y!=null};return I.attributes!=null&&(l.attributes=I.attributes),I.label!=null&&(l.label=I.label),I.size!=null&&(l.size=I.size),I.attributes!=null&&I.attributes.title!=null&&(l.title=I.attributes.title),I.title!=null&&(l.title=I.title),I.x!=null&&(l.x=I.x),I.y!=null&&(l.y=I.y),I.color!=null&&(i.nodes.parseColor===!0?l.color=I.color:l.color={background:I.color,border:I.color,highlight:{background:I.color,border:I.color},hover:{background:I.color,border:I.color}}),l}),edges:r}}var rU=Object.freeze({__proto__:null,cn:{addDescription:"单击空白处放置新节点。",addEdge:"添加连接线",addNode:"添加节点",back:"返回",close:"關閉",createEdgeError:"无法将连接线连接到群集。",del:"删除选定",deleteClusterError:"无法删除群集。",edgeDescription:"单击某个节点并将该连接线拖动到另一个节点以连接它们。",edit:"编辑",editClusterError:"无法编辑群集。",editEdge:"编辑连接线",editEdgeDescription:"单击控制节点并将它们拖到节点上连接。",editNode:"编辑节点"},cs:{addDescription:"Kluknutím do prázdného prostoru můžete přidat nový vrchol.",addEdge:"Přidat hranu",addNode:"Přidat vrchol",back:"Zpět",close:"Zavřít",createEdgeError:"Nelze připojit hranu ke shluku.",del:"Smazat výběr",deleteClusterError:"Nelze mazat shluky.",edgeDescription:"Přetažením z jednoho vrcholu do druhého můžete spojit tyto vrcholy novou hranou.",edit:"Upravit",editClusterError:"Nelze upravovat shluky.",editEdge:"Upravit hranu",editEdgeDescription:"Přetažením kontrolního vrcholu hrany ji můžete připojit k jinému vrcholu.",editNode:"Upravit vrchol"},de:{addDescription:"Klicke auf eine freie Stelle, um einen neuen Knoten zu plazieren.",addEdge:"Kante hinzufügen",addNode:"Knoten hinzufügen",back:"Zurück",close:"Schließen",createEdgeError:"Es ist nicht möglich, Kanten mit Clustern zu verbinden.",del:"Lösche Auswahl",deleteClusterError:"Cluster können nicht gelöscht werden.",edgeDescription:"Klicke auf einen Knoten und ziehe die Kante zu einem anderen Knoten, um diese zu verbinden.",edit:"Editieren",editClusterError:"Cluster können nicht editiert werden.",editEdge:"Kante editieren",editEdgeDescription:"Klicke auf die Verbindungspunkte und ziehe diese auf einen Knoten, um sie zu verbinden.",editNode:"Knoten editieren"},en:{addDescription:"Click in an empty space to place a new node.",addEdge:"Add Edge",addNode:"Add Node",back:"Back",close:"Close",createEdgeError:"Cannot link edges to a cluster.",del:"Delete selected",deleteClusterError:"Clusters cannot be deleted.",edgeDescription:"Click on a node and drag the edge to another node to connect them.",edit:"Edit",editClusterError:"Clusters cannot be edited.",editEdge:"Edit Edge",editEdgeDescription:"Click on the control points and drag them to a node to connect to it.",editNode:"Edit Node"},es:{addDescription:"Haga clic en un lugar vacío para colocar un nuevo nodo.",addEdge:"Añadir arista",addNode:"Añadir nodo",back:"Atrás",close:"Cerrar",createEdgeError:"No se puede conectar una arista a un grupo.",del:"Eliminar selección",deleteClusterError:"No es posible eliminar grupos.",edgeDescription:"Haga clic en un nodo y arrastre la arista hacia otro nodo para conectarlos.",edit:"Editar",editClusterError:"No es posible editar grupos.",editEdge:"Editar arista",editEdgeDescription:"Haga clic en un punto de control y arrastrelo a un nodo para conectarlo.",editNode:"Editar nodo"},fr:{addDescription:"Cliquez dans un endroit vide pour placer un nœud.",addEdge:"Ajouter un lien",addNode:"Ajouter un nœud",back:"Retour",close:"Fermer",createEdgeError:"Impossible de créer un lien vers un cluster.",del:"Effacer la sélection",deleteClusterError:"Les clusters ne peuvent pas être effacés.",edgeDescription:"Cliquez sur un nœud et glissez le lien vers un autre nœud pour les connecter.",edit:"Éditer",editClusterError:"Les clusters ne peuvent pas être édités.",editEdge:"Éditer le lien",editEdgeDescription:"Cliquez sur les points de contrôle et glissez-les pour connecter un nœud.",editNode:"Éditer le nœud"},it:{addDescription:"Clicca per aggiungere un nuovo nodo",addEdge:"Aggiungi un vertice",addNode:"Aggiungi un nodo",back:"Indietro",close:"Chiudere",createEdgeError:"Non si possono collegare vertici ad un cluster",del:"Cancella la selezione",deleteClusterError:"I cluster non possono essere cancellati",edgeDescription:"Clicca su un nodo e trascinalo ad un altro nodo per connetterli.",edit:"Modifica",editClusterError:"I clusters non possono essere modificati.",editEdge:"Modifica il vertice",editEdgeDescription:"Clicca sui Punti di controllo e trascinali ad un nodo per connetterli.",editNode:"Modifica il nodo"},nl:{addDescription:"Klik op een leeg gebied om een nieuwe node te maken.",addEdge:"Link toevoegen",addNode:"Node toevoegen",back:"Terug",close:"Sluiten",createEdgeError:"Kan geen link maken naar een cluster.",del:"Selectie verwijderen",deleteClusterError:"Clusters kunnen niet worden verwijderd.",edgeDescription:"Klik op een node en sleep de link naar een andere node om ze te verbinden.",edit:"Wijzigen",editClusterError:"Clusters kunnen niet worden aangepast.",editEdge:"Link wijzigen",editEdgeDescription:"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.",editNode:"Node wijzigen"},pt:{addDescription:"Clique em um espaço em branco para adicionar um novo nó",addEdge:"Adicionar aresta",addNode:"Adicionar nó",back:"Voltar",close:"Fechar",createEdgeError:"Não foi possível linkar arestas a um cluster.",del:"Remover selecionado",deleteClusterError:"Clusters não puderam ser removidos.",edgeDescription:"Clique em um nó e arraste a aresta até outro nó para conectá-los",edit:"Editar",editClusterError:"Clusters não puderam ser editados.",editEdge:"Editar aresta",editEdgeDescription:"Clique nos pontos de controle e os arraste para um nó para conectá-los",editNode:"Editar nó"},ru:{addDescription:"Кликните в свободное место, чтобы добавить новый узел.",addEdge:"Добавить ребро",addNode:"Добавить узел",back:"Назад",close:"Закрывать",createEdgeError:"Невозможно соединить ребра в кластер.",del:"Удалить выбранное",deleteClusterError:"Кластеры не могут быть удалены",edgeDescription:"Кликните на узел и протяните ребро к другому узлу, чтобы соединить их.",edit:"Редактировать",editClusterError:"Кластеры недоступны для редактирования.",editEdge:"Редактировать ребро",editEdgeDescription:"Кликните на контрольные точки и перетащите их в узел, чтобы подключиться к нему.",editNode:"Редактировать узел"},uk:{addDescription:"Kлікніть на вільне місце, щоб додати новий вузол.",addEdge:"Додати край",addNode:"Додати вузол",back:"Назад",close:"Закрити",createEdgeError:"Не можливо об'єднати краї в групу.",del:"Видалити обране",deleteClusterError:"Групи не можуть бути видалені.",edgeDescription:"Клікніть на вузол і перетягніть край до іншого вузла, щоб їх з'єднати.",edit:"Редагувати",editClusterError:"Групи недоступні для редагування.",editEdge:"Редагувати край",editEdgeDescription:"Клікніть на контрольні точки і перетягніть їх у вузол, щоб підключитися до нього.",editNode:"Редагувати вузол"}});function aU(n,e){try{const[i,o]=e.split(/[-_ /]/,2),r=i!=null?i.toLowerCase():null,A=o!=null?o.toUpperCase():null;if(r&&A){const I=r+"-"+A;if(Object.prototype.hasOwnProperty.call(n,I))return I;var t;console.warn(r0(t="Unknown variant ".concat(A," of language ")).call(t,r,"."))}if(r){const I=r;if(Object.prototype.hasOwnProperty.call(n,I))return I;console.warn("Unknown language ".concat(r))}return console.warn("Unknown locale ".concat(e,", falling back to English.")),"en"}catch(i){return console.error(i),console.warn("Unexpected error while normalizing locale ".concat(e,", falling back to English.")),"en"}}class AU{constructor(){this.NUM_ITERATIONS=4,this.image=new Image,this.canvas=document.createElement("canvas")}init(){if(this.initialized())return;this.src=this.image.src;const e=this.image.width,t=this.image.height;this.width=e,this.height=t;const i=Math.floor(t/2),o=Math.floor(t/4),r=Math.floor(t/8),A=Math.floor(t/16),I=Math.floor(e/2),l=Math.floor(e/4),c=Math.floor(e/8),h=Math.floor(e/16);this.canvas.width=3*l,this.canvas.height=i,this.coordinates=[[0,0,I,i],[I,0,l,o],[I,o,c,r],[5*c,o,h,A]],this._fillMipMap()}initialized(){return this.coordinates!==void 0}_fillMipMap(){const e=this.canvas.getContext("2d"),t=this.coordinates[0];e.drawImage(this.image,t[0],t[1],t[2],t[3]);for(let i=1;i2){t*=.5;let I=0;for(;t>2&&I=this.NUM_ITERATIONS&&(I=this.NUM_ITERATIONS-1);const l=this.coordinates[I];e.drawImage(this.canvas,l[0],l[1],l[2],l[3],i,o,r,A)}else e.drawImage(this.image,i,o,r,A)}}class CU{constructor(e){this.images={},this.imageBroken={},this.callback=e}_tryloadBrokenUrl(e,t,i){if(!(e===void 0||i===void 0)){if(t===void 0){console.warn("No broken url image defined");return}i.image.onerror=()=>{console.error("Could not load brokenImage:",t)},i.image.src=t}}_redrawWithImage(e){this.callback&&this.callback(e)}load(e,t){const i=this.images[e];if(i)return i;const o=new AU;return this.images[e]=o,o.image.onload=()=>{this._fixImageCoordinates(o.image),o.init(),this._redrawWithImage(o)},o.image.onerror=()=>{console.error("Could not load image:",e),this._tryloadBrokenUrl(e,t,o)},o.image.src=e,o}_fixImageCoordinates(e){e.width===0&&(document.body.appendChild(e),e.width=e.offsetWidth,e.height=e.offsetHeight,document.body.removeChild(e))}}var N1={exports:{}},IU=gt,lU=IU(function(){if(typeof ArrayBuffer=="function"){var n=new ArrayBuffer(8);Object.isExtensible(n)&&Object.defineProperty(n,"a",{value:8})}}),cU=gt,dU=yn,uU=Yi,D1=lU,LC=Object.isExtensible,hU=cU(function(){LC(1)}),fU=hU||D1?function(e){return!dU(e)||D1&&uU(e)==="ArrayBuffer"?!1:LC?LC(e):!0}:LC,pU=gt,M1=!pU(function(){return Object.isExtensible(Object.preventExtensions({}))}),mU=Re,vU=ot,yU=Wr,bU=yn,Jd=gn,wU=Fn.f,z1=ta,xU=IC,eu=fU,EU=JA,SU=M1,k1=!1,Ji=EU("meta"),TU=0,tu=function(n){wU(n,Ji,{value:{objectID:"O"+TU++,weakData:{}}})},OU=function(n,e){if(!bU(n))return typeof n=="symbol"?n:(typeof n=="string"?"S":"P")+n;if(!Jd(n,Ji)){if(!eu(n))return"F";if(!e)return"E";tu(n)}return n[Ji].objectID},NU=function(n,e){if(!Jd(n,Ji)){if(!eu(n))return!0;if(!e)return!1;tu(n)}return n[Ji].weakData},DU=function(n){return SU&&k1&&eu(n)&&!Jd(n,Ji)&&tu(n),n},MU=function(){zU.enable=function(){},k1=!0;var n=z1.f,e=vU([].splice),t={};t[Ji]=1,n(t).length&&(z1.f=function(i){for(var o=n(i),r=0,A=o.length;rp;p++)if(y=E(n[p]),y&&B1(L1,y))return y;return new FC(!1)}c=gY(n,h)}for(w=r?n.next:c.next;!(S=JU(w,c)).done;){try{y=E(S.value)}catch(N){P1(c,"throw",N)}if(typeof y=="object"&&y&&B1(L1,y))return y}return new FC(!1)},rY=jt,aY=TypeError,iu=function(n,e){if(rY(e,n))return n;throw new aY("Incorrect invocation")},AY=Re,CY=_t,IY=GC,lY=gt,cY=ls,dY=nu,uY=iu,hY=ln,fY=yn,pY=as,mY=hs,vY=Fn.f,yY=xg.forEach,bY=nn,G1=mo,wY=G1.set,xY=G1.getterFor,gu=function(n,e,t){var i=n.indexOf("Map")!==-1,o=n.indexOf("Weak")!==-1,r=i?"set":"add",A=CY[n],I=A&&A.prototype,l={},c;if(!bY||!hY(A)||!(o||I.forEach&&!lY(function(){new A().entries().next()})))c=t.getConstructor(e,n,i,r),IY.enable();else{c=e(function(m,y){wY(uY(m,h),{type:n,collection:new A}),pY(y)||dY(y,m[r],{that:m,AS_ENTRIES:i})});var h=c.prototype,p=xY(n);yY(["add","clear","delete","forEach","get","has","set","keys","values","entries"],function(m){var y=m==="add"||m==="set";m in I&&!(o&&m==="clear")&&cY(h,m,function(w,S){var x=p(this).collection;if(!y&&o&&!fY(w))return m==="get"?void 0:!1;var E=x[m](w===0?0:w,S);return y?this:E})}),o||vY(h,"size",{configurable:!0,get:function(){return p(this).collection.size}})}return mY(c,n,!1,!0),l[n]=c,AY({global:!0,forced:!0},l),o||t.setStrong(c,n,i),c},EY=na,ou=function(n,e,t){for(var i in e)t&&t.unsafe&&n[i]?n[i]=e[i]:EY(n,i,e[i],t);return n},SY=fi,TY=Hc,OY=Ft,NY=nn,F1=OY("species"),DY=function(n){var e=SY(n);NY&&e&&!e[F1]&&TY(e,F1,{configurable:!0,get:function(){return this}})},MY=ea,zY=Hc,V1=ou,kY=Hr,RY=iu,_Y=as,jY=nu,ZY=cd,VC=dd,BY=DY,Ta=nn,U1=GC.fastKey,Y1=mo,H1=Y1.set,su=Y1.getterFor,K1={getConstructor:function(n,e,t,i){var o=n(function(c,h){RY(c,r),H1(c,{type:e,index:MY(null),first:void 0,last:void 0,size:0}),Ta||(c.size=0),_Y(h)||jY(h,c[i],{that:c,AS_ENTRIES:t})}),r=o.prototype,A=su(e),I=function(c,h,p){var m=A(c),y=l(c,h),w,S;return y?y.value=p:(m.last=y={index:S=U1(h,!0),key:h,value:p,previous:w=m.last,next:void 0,removed:!1},m.first||(m.first=y),w&&(w.next=y),Ta?m.size++:c.size++,S!=="F"&&(m.index[S]=y)),c},l=function(c,h){var p=A(c),m=U1(h),y;if(m!=="F")return p.index[m];for(y=p.first;y;y=y.next)if(y.key===h)return y};return V1(r,{clear:function(){for(var h=this,p=A(h),m=p.index,y=p.first;y;)y.removed=!0,y.previous&&(y.previous=y.previous.next=void 0),delete m[y.index],y=y.next;p.first=p.last=void 0,Ta?p.size=0:h.size=0},delete:function(c){var h=this,p=A(h),m=l(h,c);if(m){var y=m.next,w=m.previous;delete p.index[m.index],m.removed=!0,w&&(w.next=y),y&&(y.previous=w),p.first===m&&(p.first=y),p.last===m&&(p.last=w),Ta?p.size--:h.size--}return!!m},forEach:function(h){for(var p=A(this),m=kY(h,arguments.length>1?arguments[1]:void 0),y;y=y?y.next:p.first;)for(m(y.value,y.key,this);y&&y.removed;)y=y.previous},has:function(h){return!!l(this,h)}}),V1(r,t?{get:function(h){var p=l(this,h);return p&&p.value},set:function(h,p){return I(this,h===0?0:h,p)}}:{add:function(h){return I(this,h=h===0?0:h,h)}}),Ta&&zY(r,"size",{configurable:!0,get:function(){return A(this).size}}),o},setStrong:function(n,e,t){var i=e+" Iterator",o=su(e),r=su(i);ZY(n,e,function(A,I){H1(this,{type:i,target:A,state:o(A),kind:I,last:void 0})},function(){for(var A=r(this),I=A.kind,l=A.last;l&&l.removed;)l=l.previous;return!A.target||!(A.last=l=l?l.next:A.state.first)?(A.target=void 0,VC(void 0,!0)):VC(I==="keys"?l.key:I==="values"?l.value:[l.key,l.value],!1)},t?"entries":"values",!t,!0),BY(e)}},PY=gu,LY=K1;PY("Map",function(n){return function(){return n(this,arguments.length?arguments[0]:void 0)}},LY);var ru=ot,GY=iC,FY=Oi,VY=Lr,UY=ru("".charAt),W1=ru("".charCodeAt),YY=ru("".slice),HY=function(n){return function(e,t){var i=FY(VY(e)),o=GY(t),r=i.length,A,I;return o<0||o>=r?n?"":void 0:(A=W1(i,o),A<55296||A>56319||o+1===r||(I=W1(i,o+1))<56320||I>57343?n?UY(i,o):A:n?YY(i,o,o+2):(A-55296<<10)+(I-56320)+65536)}},KY={charAt:HY(!0)},WY=KY.charAt,QY=Oi,Q1=mo,XY=cd,X1=dd,$1="String Iterator",$Y=Q1.set,qY=Q1.getterFor($1);XY(String,"String",function(n){$Y(this,{type:$1,string:QY(n),index:0})},function(){var e=qY(this),t=e.string,i=e.index,o;return i>=t.length?X1(void 0,!0):(o=WY(t,i),e.index+=o.length,X1(o,!1))});var JY=rt,eH=JY.Map,tH=eH,nH=tH,iH=nH,Oa=Me(iH);class gH{constructor(){this.clear(),this._defaultIndex=0,this._groupIndex=0,this._defaultGroups=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}},{border:"#990000",background:"#EE0000",highlight:{border:"#BB0000",background:"#FF3333"},hover:{border:"#BB0000",background:"#FF3333"}},{border:"#FF6000",background:"#FF6000",highlight:{border:"#FF6000",background:"#FF6000"},hover:{border:"#FF6000",background:"#FF6000"}},{border:"#97C2FC",background:"#2B7CE9",highlight:{border:"#D2E5FF",background:"#2B7CE9"},hover:{border:"#D2E5FF",background:"#2B7CE9"}},{border:"#399605",background:"#255C03",highlight:{border:"#399605",background:"#255C03"},hover:{border:"#399605",background:"#255C03"}},{border:"#B70054",background:"#FF007E",highlight:{border:"#B70054",background:"#FF007E"},hover:{border:"#B70054",background:"#FF007E"}},{border:"#AD85E4",background:"#7C29F0",highlight:{border:"#D3BDF0",background:"#7C29F0"},hover:{border:"#D3BDF0",background:"#7C29F0"}},{border:"#4557FA",background:"#000EA1",highlight:{border:"#6E6EFD",background:"#000EA1"},hover:{border:"#6E6EFD",background:"#000EA1"}},{border:"#FFC0CB",background:"#FD5A77",highlight:{border:"#FFD1D9",background:"#FD5A77"},hover:{border:"#FFD1D9",background:"#FD5A77"}},{border:"#C2FABC",background:"#74D66A",highlight:{border:"#E6FFE3",background:"#74D66A"},hover:{border:"#E6FFE3",background:"#74D66A"}},{border:"#EE0000",background:"#990000",highlight:{border:"#FF3333",background:"#BB0000"},hover:{border:"#FF3333",background:"#BB0000"}}],this.options={},this.defaultOptions={useDefaultGroups:!0},Vt(this.options,this.defaultOptions)}setOptions(e){const t=["useDefaultGroups"];if(e!==void 0){for(const i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&Ct(t).call(t,i)===-1){const o=e[i];this.add(i,o)}}}clear(){this._groups=new Oa,this._groupNames=[]}get(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,i=this._groups.get(e);if(i===void 0&&t)if(this.options.useDefaultGroups===!1&&this._groupNames.length>0){const o=this._groupIndex%this._groupNames.length;++this._groupIndex,i={},i.color=this._groups.get(this._groupNames[o]),this._groups.set(e,i)}else{const o=this._defaultIndex%this._defaultGroups.length;this._defaultIndex++,i={},i.color=this._defaultGroups[o],this._groups.set(e,i)}return i}add(e,t){return this._groups.has(e)||this._groupNames.push(e),this._groups.set(e,t),t}}var oH=Re;oH({target:"Number",stat:!0},{isNaN:function(e){return e!==e}});var sH=rt,rH=sH.Number.isNaN,aH=rH,AH=aH,CH=AH,au=Me(CH),IH=_t,lH=IH.isFinite,cH=Number.isFinite||function(e){return typeof e=="number"&&lH(e)},dH=Re,uH=cH;dH({target:"Number",stat:!0},{isFinite:uH});var hH=rt,fH=hH.Number.isFinite,pH=fH,mH=pH,vH=mH,zo=Me(vH),yH=Re,bH=xg.some,wH=ys,xH=wH("some");yH({target:"Array",proto:!0,forced:!xH},{some:function(e){return bH(this,e,arguments.length>1?arguments[1]:void 0)}});var EH=Wt,SH=EH("Array").some,TH=jt,OH=SH,Au=Array.prototype,NH=function(n){var e=n.some;return n===Au||TH(Au,n)&&e===Au.some?OH:e},DH=NH,MH=DH,zH=MH,q1=Me(zH),kH=rt,RH=kH.Object.getOwnPropertySymbols,_H=RH,jH=_H,ZH=jH,_i=Me(ZH),J1={exports:{}},BH=Re,PH=gt,LH=hi,ew=Zr.f,tw=nn,GH=!tw||PH(function(){ew(1)});BH({target:"Object",stat:!0,forced:GH,sham:!tw},{getOwnPropertyDescriptor:function(e,t){return ew(LH(e),t)}});var FH=rt,nw=FH.Object,VH=J1.exports=function(e,t){return nw.getOwnPropertyDescriptor(e,t)};nw.getOwnPropertyDescriptor.sham&&(VH.sham=!0);var UH=J1.exports,YH=UH,HH=YH,KH=HH,ji=Me(KH),WH=Re,QH=nn,XH=Xb,$H=hi,qH=Zr,JH=$r;WH({target:"Object",stat:!0,sham:!QH},{getOwnPropertyDescriptors:function(e){for(var t=$H(e),i=qH.f,o=XH(t),r={},A=0,I,l;o.length>A;)l=i(t,I=o[A++]),l!==void 0&&JH(r,I,l);return r}});var e7=rt,t7=e7.Object.getOwnPropertyDescriptors,n7=t7,i7=n7,g7=i7,Zi=Me(g7),iw={exports:{}},o7=Re,s7=nn,gw=rC.f;o7({target:"Object",stat:!0,forced:Object.defineProperties!==gw,sham:!s7},{defineProperties:gw});var r7=rt,ow=r7.Object,a7=iw.exports=function(e,t){return ow.defineProperties(e,t)};ow.defineProperties.sham&&(a7.sham=!0);var A7=iw.exports,C7=A7,I7=C7,l7=I7,Na=Me(l7),sw={exports:{}},c7=Re,d7=nn,rw=Fn.f;c7({target:"Object",stat:!0,forced:Object.defineProperty!==rw,sham:!d7},{defineProperty:rw});var u7=rt,aw=u7.Object,h7=sw.exports=function(e,t,i){return aw.defineProperty(e,t,i)};aw.defineProperty.sham&&(h7.sham=!0);var f7=sw.exports,p7=f7,Aw=p7,m7=Aw,v7=m7,y7=v7,b7=y7,w7=b7,x7=Me(w7),E7=Ft,S7=Fn.f,Cw=E7("metadata"),Iw=Function.prototype;Iw[Cw]===void 0&&S7(Iw,Cw,{value:null});var T7=Zt;T7("asyncDispose");var O7=Zt;O7("dispose");var N7=Zt;N7("metadata");var D7=Kb,M7=D7,z7=fi,k7=ot,Cu=z7("Symbol"),R7=Cu.keyFor,_7=k7(Cu.prototype.valueOf),lw=Cu.isRegisteredSymbol||function(e){try{return R7(_7(e))!==void 0}catch{return!1}},j7=Re,Z7=lw;j7({target:"Symbol",stat:!0},{isRegisteredSymbol:Z7});for(var B7=Cs,cw=fi,P7=ot,L7=Vr,G7=Ft,UC=cw("Symbol"),dw=UC.isWellKnownSymbol,uw=cw("Object","getOwnPropertyNames"),F7=P7(UC.prototype.valueOf),hw=B7("wks"),Iu=0,fw=uw(UC),V7=fw.length;Iu=0:I>l;l+=c)l in A&&(o=t(o,A[l],l,r));return o}},MK={left:DK(!1)},zK=_t,kK=Yi,RK=kK(zK.process)==="process",_K=Re,jK=MK.left,ZK=ys,yw=Fr,BK=RK,PK=!BK&&yw>79&&yw<83,LK=PK||!ZK("reduce");_K({target:"Array",proto:!0,forced:LK},{reduce:function(e){var t=arguments.length;return jK(this,e,t,t>1?arguments[1]:void 0)}});var GK=Wt,FK=GK("Array").reduce,VK=jt,UK=FK,lu=Array.prototype,YK=function(n){var e=n.reduce;return n===lu||VK(lu,n)&&e===lu.reduce?UK:e},HK=YK,KK=HK,WK=KK,cu=Me(WK),QK=wg,XK=Jn,$K=Pc,qK=Hr,bw=function(n,e,t,i,o,r,A,I){for(var l=o,c=0,h=A?qK(A,I):!1,p,m;c0&&QK(p)?(m=XK(p),l=bw(n,e,p,m,l,r-1)-1):($K(l+1),n[l]=p),l++),c++;return l},JK=bw,eW=Re,tW=JK,nW=fo,iW=Gn,gW=Jn,oW=sC;eW({target:"Array",proto:!0},{flatMap:function(e){var t=iW(this),i=gW(t),o;return nW(e),o=oW(t,0),o.length=tW(o,t,t,i,0,1,e,arguments.length>1?arguments[1]:void 0),o}});var sW=Wt;sW("Array").flatMap;var rW=vw,Rs=Me(rW),aW=gu,AW=K1;aW("Set",function(n){return function(){return n(this,arguments.length?arguments[0]:void 0)}},AW);var CW=rt,IW=CW.Set,lW=IW,cW=lW,dW=cW,wi=Me(dW),uW=j1,hW=uW,fW=hW,pW=fW,mW=pW,vW=mW,yW=vW,bW=yW,wW=bW,xW=wW,du=Me(xW),ww=Zy,EW=Math.floor,uu=function(n,e){var t=n.length,i=EW(t/2);return t<8?SW(n,e):TW(n,uu(ww(n,0,i),e),uu(ww(n,i),e),e)},SW=function(n,e){for(var t=n.length,i=1,o,r;i0;)n[r]=n[--r];r!==i++&&(n[r]=o)}return n},TW=function(n,e,t,i){for(var o=e.length,r=t.length,A=0,I=0;A3)){if(GW)return!0;if(Mw)return Mw<603;var n="",e,t,i,o;for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:i=3;break;case 68:case 71:i=4;break;default:i=2}for(o=0;o<47;o++)Rg.push({k:t+o,v:i})}for(Rg.sort(function(r,A){return A.v-r.v}),o=0;oOw(t)?1:-1}};_W({target:"Array",proto:!0,forced:HW},{sort:function(e){e!==void 0&&jW(e);var t=ZW(this);if(kw)return e===void 0?zw(t):zw(t,e);var i=[],o=Tw(t),r,A;for(A=0;A{i.flush()};const o=[{name:"flush",original:void 0}];if(t&&t.replace)for(let r=0;rthis.max&&this.flush(),this._timeout!=null&&(clearTimeout(this._timeout),this._timeout=null),this.queue.length>0&&typeof this.delay=="number"&&(this._timeout=Mi(()=>{this.flush()},this.delay))}flush(){var e,t;Je(e=Di(t=this._queue).call(t,0)).call(e,i=>{i.fn.apply(i.context||i.fn,i.args||[])})}}class WC{constructor(){$t(this,"_subscribers",{"*":[],add:[],remove:[],update:[]}),$t(this,"subscribe",WC.prototype.on),$t(this,"unsubscribe",WC.prototype.off)}_trigger(e,t,i){var o;if(e==="*")throw new Error("Cannot trigger event *");Je(o=[...this._subscribers[e],...this._subscribers["*"]]).call(o,r=>{r(e,t,i??null)})}on(e,t){typeof t=="function"&&this._subscribers[e].push(t)}off(e,t){var i;this._subscribers[e]=Qt(i=this._subscribers[e]).call(i,o=>o!==t)}}class ko{constructor(e){$t(this,"_pairs",void 0),this._pairs=e}*[Rs](){for(const[e,t]of this._pairs)yield[e,t]}*entries(){for(const[e,t]of this._pairs)yield[e,t]}*keys(){for(const[e]of this._pairs)yield e}*values(){for(const[,e]of this._pairs)yield e}toIdArray(){var e;return cn(e=[...this._pairs]).call(e,t=>t[0])}toItemArray(){var e;return cn(e=[...this._pairs]).call(e,t=>t[1])}toEntryArray(){return[...this._pairs]}toObjectMap(){const e=Tg(null);for(const[t,i]of this._pairs)e[t]=i;return e}toMap(){return new Oa(this._pairs)}toIdSet(){return new wi(this.toIdArray())}toItemSet(){return new wi(this.toItemArray())}cache(){return new ko([...this._pairs])}distinct(e){const t=new wi;for(const[i,o]of this._pairs)t.add(e(o,i));return t}filter(e){const t=this._pairs;return new ko({*[Rs](){for(const[i,o]of t)e(o,i)&&(yield[i,o])}})}forEach(e){for(const[t,i]of this._pairs)e(i,t)}map(e){const t=this._pairs;return new ko({*[Rs](){for(const[i,o]of t)yield[i,e(o,i)]}})}max(e){const t=du(this._pairs);let i=t.next();if(i.done)return null;let o=i.value[1],r=e(i.value[1],i.value[0]);for(;!(i=t.next()).done;){const[A,I]=i.value,l=e(I,A);l>r&&(r=l,o=I)}return o}min(e){const t=du(this._pairs);let i=t.next();if(i.done)return null;let o=i.value[1],r=e(i.value[1],i.value[0]);for(;!(i=t.next()).done;){const[A,I]=i.value,l=e(I,A);l{var t;return du(eg(t=[...this._pairs]).call(t,(i,o)=>{let[r,A]=i,[I,l]=o;return e(A,l,r,I)}))}})}}function LQ(n,e){return n[e]==null&&(n[e]=js()),n}class Zs extends WC{get idProp(){return this._idProp}constructor(e,t){super(),$t(this,"flush",void 0),$t(this,"length",void 0),$t(this,"_options",void 0),$t(this,"_data",void 0),$t(this,"_idProp",void 0),$t(this,"_queue",null),e&&!tt(e)&&(t=e,e=[]),this._options=t||{},this._data=new Oa,this.length=0,this._idProp=this._options.fieldId||"id",e&&e.length&&this.add(e),this.setOptions(t)}setOptions(e){e&&e.queue!==void 0&&(e.queue===!1?this._queue&&(this._queue.destroy(),this._queue=null):(this._queue||(this._queue=yu.extend(this,{replace:["add","update","remove"]})),e.queue&&typeof e.queue=="object"&&this._queue.setOptions(e.queue)))}add(e,t){const i=[];let o;if(tt(e)){const r=cn(e).call(e,A=>A[this._idProp]);if(q1(r).call(r,A=>this._data.has(A)))throw new Error("A duplicate id was found in the parameter array.");for(let A=0,I=e.length;A{const h=c[I];if(h!=null&&this._data.has(h)){const p=c,m=Vt({},this._data.get(h)),y=this._updateItem(p);o.push(y),A.push(p),r.push(m)}else{const p=this._addItem(c);i.push(p)}};if(tt(e))for(let c=0,h=e.length;c{const A=this._data.get(r[this._idProp]);if(A==null)throw new Error("Updating non-existent items is not allowed.");return{oldData:A,update:r}})).call(i,r=>{let{oldData:A,update:I}=r;const l=A[this._idProp],c=EV(A,I);return this._data.set(l,c),{id:l,oldData:A,updatedData:c}});if(o.length){const r={items:cn(o).call(o,A=>A.id),oldData:cn(o).call(o,A=>A.oldData),data:cn(o).call(o,A=>A.updatedData)};return this._trigger("update",r,t),r.items}else return[]}get(e,t){let i,o,r;Zw(e)?(i=e,r=t):tt(e)?(o=e,r=t):r=e;const A=r&&r.returnType==="Object"?"Object":"Array",I=r&&Qt(r),l=[];let c,h,p;if(i!=null)c=this._data.get(i),c&&I&&!I(c)&&(c=void 0);else if(o!=null)for(let w=0,S=o.length;w(o[r]=e[r],o),{})}_sort(e,t){if(typeof t=="string"){const i=t;eg(e).call(e,(o,r)=>{const A=o[i],I=r[i];return A>I?1:Ai)&&(t=r,i=A)}return t||null}min(e){let t=null,i=null;for(const r of HC(o=this._data).call(o)){var o;const A=r[e];typeof A=="number"&&(i==null||Ae.x&&n.tope.y}function XC(n){return typeof n=="string"&&n!==""}function Uw(n,e,t,i){let o=i.x,r=i.y;if(typeof i.distanceToBorder=="function"){const A=i.distanceToBorder(n,e),I=Math.sin(e)*A,l=Math.cos(e)*A;l===A?(o+=A,r=i.y):I===A?(o=i.x,r-=A):(o+=l,r-=I)}else i.shape.width>i.shape.height?(o=i.x+i.shape.width*.5,r=i.y-t):(o=i.x+t,r=i.y-i.shape.height*.5);return{x:o,y:r}}class cX{constructor(e){this.measureText=e,this.current=0,this.width=0,this.height=0,this.lines=[]}_add(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"normal";this.lines[e]===void 0&&(this.lines[e]={width:0,height:0,blocks:[]});let o=t;(t===void 0||t==="")&&(o=" ");const r=this.measureText(o,i),A=Vt({},HC(r));A.text=t,A.width=r.width,A.mod=i,(t===void 0||t==="")&&(A.width=0),this.lines[e].blocks.push(A),this.lines[e].width+=A.width}curWidth(){const e=this.lines[this.current];return e===void 0?0:e.width}append(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"normal";this._add(this.current,e,t)}newLine(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"normal";this._add(this.current,e,t),this.current++}determineLineHeights(){for(let e=0;ee&&(e=o.width),t+=o.height}this.width=e,this.height=t}removeEmptyBlocks(){const e=[];for(let t=0;t"://,""://,""://,"":/<\/b>/,"":/<\/i>/,"":/<\/code>/,"*":/\*/,_:/_/,"`":/`/,afterBold:/[^*]/,afterItal:/[^_]/,afterMono:/[^`]/};class Yw{constructor(e){this.text=e,this.bold=!1,this.ital=!1,this.mono=!1,this.spacing=!1,this.position=0,this.buffer="",this.modStack=[],this.blocks=[]}mod(){return this.modStack.length===0?"normal":this.modStack[0]}modName(){if(this.modStack.length===0)return"normal";if(this.modStack[0]==="mono")return"mono";if(this.bold&&this.ital)return"boldital";if(this.bold)return"bold";if(this.ital)return"ital"}emitBlock(){this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(this.blocks.push({text:this.buffer,mod:this.modName()}),this.buffer="")}add(e){e===" "&&(this.spacing=!0),this.spacing&&(this.buffer+=" ",this.spacing=!1),e!=" "&&(this.buffer+=e)}parseWS(e){return/[ \t]/.test(e)?(this.mono?this.add(e):this.spacing=!0,!0):!1}setTag(e){this.emitBlock(),this[e]=!0,this.modStack.unshift(e)}unsetTag(e){this.emitBlock(),this[e]=!1,this.modStack.shift()}parseStartTag(e,t){return!this.mono&&!this[e]&&this.match(t)?(this.setTag(e),!0):!1}match(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const[i,o]=this.prepareRegExp(e),r=i.test(this.text.substr(this.position,o));return r&&t&&(this.position+=o-1),r}parseEndTag(e,t,i){let o=this.mod()===e;return e==="mono"?o=o&&this.mono:o=o&&!this.mono,o&&this.match(t)?(i!==void 0?(this.position===this.text.length-1||this.match(i,!1))&&this.unsetTag(e):this.unsetTag(e),!0):!1}replace(e,t){return this.match(e)?(this.add(t),this.position+=length-1,!0):!1}prepareRegExp(e){let t,i;if(e instanceof RegExp)i=e,t=1;else{const o=dX[e];o!==void 0?i=o:i=new RegExp(e),t=e.length}return[i,t]}}class uX{constructor(e,t,i,o){this.ctx=e,this.parent=t,this.selected=i,this.hover=o;const r=(A,I)=>{if(A===void 0)return 0;const l=this.parent.getFormattingValues(e,i,o,I);let c=0;return A!==""&&(c=this.ctx.measureText(A).width),{width:c,values:l}};this.lines=new cX(r)}process(e){if(!XC(e))return this.lines.finalize();const t=this.parent.fontOptions;e=e.replace(/\r\n/g,` +`}static print(e){return bs(e).replace(/(")|(\[)|(\])|(,"__type__")/g,"").replace(/(,)/g,", ")}static levenshteinDistance(e,t){if(e.length===0)return t.length;if(t.length===0)return e.length;const i=[];let o;for(o=0;o<=t.length;o++)i[o]=[o];let r;for(r=0;r<=e.length;r++)i[0][r]=r;for(o=1;o<=t.length;o++)for(r=1;r<=e.length;r++)t.charAt(o-1)==e.charAt(r-1)?i[o][r]=i[o-1][r-1]:i[o][r]=Math.min(i[o-1][r-1]+1,Math.min(i[o][r-1]+1,i[o-1][r]+1));return i[t.length][e.length]}};const QV=Ri,XV=HV,Ms=Yd,$V=KV,m1=Xd,qV=WV;function JV(n){return zg=n,iU()}var v1={fontsize:"font.size",fontcolor:"font.color",labelfontcolor:"font.color",fontname:"font.face",color:["color.border","color.background"],fillcolor:"color.background",tooltip:"title",labeltooltip:"title"},$d=Tg(v1);$d.color="color.color",$d.style="dashes";var xn={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3},y1={"{":!0,"}":!0,"[":!0,"]":!0,";":!0,"=":!0,",":!0,"->":!0,"--":!0},zg="",zs=0,Fe="",De="",zn=xn.NULL;function eU(){zs=0,Fe=zg.charAt(0)}function An(){zs++,Fe=zg.charAt(zs)}function ks(){return zg.charAt(zs+1)}function b1(n){var e=n.charCodeAt(0);return e<47?e===35||e===46:e<59?e>47:e<91?e>64:e<96?e===95:e<123?e>96:!1}function kg(n,e){if(n||(n={}),e)for(var t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n}function tU(n,e,t){for(var i=e.split("."),o=n;i.length;){var r=i.shift();i.length?(o[r]||(o[r]={}),o=o[r]):o[r]=t}}function w1(n,e){for(var t,i,o=null,r=[n],A=n;A.parent;)r.push(A.parent),A=A.parent;if(A.nodes){for(t=0,i=A.nodes.length;t=0;t--){var I,l=r[t];l.nodes||(l.nodes=[]),at(I=l.nodes).call(I,o)===-1&&l.nodes.push(o)}e.attr&&(o.attr=kg(o.attr,e.attr))}function nU(n,e){if(n.edges||(n.edges=[]),n.edges.push(e),n.edge){var t=kg({},n.edge);e.attr=kg(t,e.attr)}}function x1(n,e,t,i,o){var r={from:e,to:t,type:i};return n.edge&&(r.attr=kg({},n.edge)),r.attr=kg(r.attr||{},o),o!=null&&o.hasOwnProperty("arrows")&&o.arrows!=null&&(r.arrows={to:{enabled:!0,type:o.arrows.type}},o.arrows=null),r}function vt(){for(zn=xn.NULL,De="";Fe===" "||Fe===" "||Fe===` +`||Fe==="\r";)An();do{var n=!1;if(Fe==="#"){for(var e=zs-1;zg.charAt(e)===" "||zg.charAt(e)===" ";)e--;if(zg.charAt(e)===` +`||zg.charAt(e)===""){for(;Fe!=""&&Fe!=` +`;)An();n=!0}}if(Fe==="/"&&ks()==="/"){for(;Fe!=""&&Fe!=` +`;)An();n=!0}if(Fe==="/"&&ks()==="*"){for(;Fe!="";)if(Fe==="*"&&ks()==="/"){An(),An();break}else An();n=!0}for(;Fe===" "||Fe===" "||Fe===` +`||Fe==="\r";)An()}while(n);if(Fe===""){zn=xn.DELIMITER;return}var t=Fe+ks();if(y1[t]){zn=xn.DELIMITER,De=t,An(),An();return}if(y1[Fe]){zn=xn.DELIMITER,De=Fe,An();return}if(b1(Fe)||Fe==="-"){for(De+=Fe,An();b1(Fe);)De+=Fe,An();De==="false"?De=!1:De==="true"?De=!0:isNaN(Number(De))||(De=Number(De)),zn=xn.IDENTIFIER;return}if(Fe==='"'){for(An();Fe!=""&&(Fe!='"'||Fe==='"'&&ks()==='"');)Fe==='"'?(De+=Fe,An()):Fe==="\\"&&ks()==="n"?(De+=` +`,An()):De+=Fe,An();if(Fe!='"')throw Sn('End of string " expected');An(),zn=xn.IDENTIFIER;return}for(zn=xn.UNKNOWN;Fe!="";)De+=Fe,An();throw new SyntaxError('Syntax error in part "'+O1(De,30)+'"')}function iU(){var n={};if(eU(),vt(),De==="strict"&&(n.strict=!0,vt()),(De==="graph"||De==="digraph")&&(n.type=De,vt()),zn===xn.IDENTIFIER&&(n.id=De,vt()),De!="{")throw Sn("Angle bracket { expected");if(vt(),S1(n),De!="}")throw Sn("Angle bracket } expected");if(vt(),De!=="")throw Sn("End of file expected");return vt(),delete n.node,delete n.edge,delete n.graph,n}function S1(n){for(;De!==""&&De!="}";)gU(n),De===";"&&vt()}function gU(n){var e=E1(n);if(e){T1(n,e);return}var t=oU(n);if(!t){if(zn!=xn.IDENTIFIER)throw Sn("Identifier expected");var i=De;if(vt(),De==="="){if(vt(),zn!=xn.IDENTIFIER)throw Sn("Identifier expected");n[i]=De,vt()}else sU(n,i)}}function E1(n){var e=null;if(De==="subgraph"&&(e={},e.type="subgraph",vt(),zn===xn.IDENTIFIER&&(e.id=De,vt())),De==="{"){if(vt(),e||(e={}),e.parent=n,e.node=n.node,e.edge=n.edge,e.graph=n.graph,S1(e),De!="}")throw Sn("Angle bracket } expected");vt(),delete e.node,delete e.edge,delete e.graph,delete e.parent,n.subgraphs||(n.subgraphs=[]),n.subgraphs.push(e)}return e}function oU(n){return De==="node"?(vt(),n.node=Ea(),"node"):De==="edge"?(vt(),n.edge=Ea(),"edge"):De==="graph"?(vt(),n.graph=Ea(),"graph"):null}function sU(n,e){var t={id:e},i=Ea();i&&(t.attr=i),w1(n,t),T1(n,e)}function T1(n,e){for(;De==="->"||De==="--";){var t,i=De;vt();var o=E1(n);if(o)t=o;else{if(zn!=xn.IDENTIFIER)throw Sn("Identifier or subgraph expected");t=De,w1(n,{id:t}),vt()}var r=Ea(),A=x1(n,e,t,i,r);nU(n,A),e=t}}function Ea(){for(var n,e=null,t={dashed:!0,solid:!1,dotted:[1,5]},i={dot:"circle",box:"box",crow:"crow",curve:"curve",icurve:"inv_curve",normal:"triangle",inv:"inv_triangle",diamond:"diamond",tee:"bar",vee:"vee"},o=new Array,r=new Array;De==="[";){for(vt(),e={};De!==""&&De!="]";){if(zn!=xn.IDENTIFIER)throw Sn("Attribute name expected");var A=De;if(vt(),De!="=")throw Sn("Equal sign = expected");if(vt(),zn!=xn.IDENTIFIER)throw Sn("Attribute value expected");var I=De;A==="style"&&(I=t[I]);var l;A==="arrowhead"&&(l=i[I],A="arrows",I={to:{enabled:!0,type:l}}),A==="arrowtail"&&(l=i[I],A="arrows",I={from:{enabled:!0,type:l}}),o.push({attr:e,name:A,value:I}),r.push(A),vt(),De==","&&vt()}if(De!="]")throw Sn("Bracket ] expected");vt()}if(Eg(r).call(r,"dir")){var c={};for(c.arrows={},n=0;n"&&(I.arrows="to"),I};Je(o=e.edges).call(o,function(A){var I,l;if(A.from instanceof Object?I=A.from.nodes:I={id:A.from},A.to instanceof Object?l=A.to.nodes:l={id:A.to},A.from instanceof Object&&A.from.edges){var c;Je(c=A.from.edges).call(c,function(p){var m=r(p);t.edges.push(m)})}if(rU(I,l,function(p,m){var y=x1(t,p.id,m.id,A.type,A.attr),w=r(y);t.edges.push(w)}),A.to instanceof Object&&A.to.edges){var h;Je(h=A.to.edges).call(h,function(p){var m=r(p);t.edges.push(m)})}})}return e.attr&&(t.options=e.attr),t}function AU(n,e){var t;const i={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};e!=null&&(e.fixed!=null&&(i.nodes.fixed=e.fixed),e.parseColor!=null&&(i.nodes.parseColor=e.parseColor),e.inheritColor!=null&&(i.edges.inheritColor=e.inheritColor));const o=n.edges,r=cn(o).call(o,I=>{const l={from:I.source,id:I.id,to:I.target};return I.attributes!=null&&(l.attributes=I.attributes),I.label!=null&&(l.label=I.label),I.attributes!=null&&I.attributes.title!=null&&(l.title=I.attributes.title),I.type==="Directed"&&(l.arrows="to"),I.color&&i.edges.inheritColor===!1&&(l.color=I.color),l});return{nodes:cn(t=n.nodes).call(t,I=>{const l={id:I.id,fixed:i.nodes.fixed&&I.x!=null&&I.y!=null};return I.attributes!=null&&(l.attributes=I.attributes),I.label!=null&&(l.label=I.label),I.size!=null&&(l.size=I.size),I.attributes!=null&&I.attributes.title!=null&&(l.title=I.attributes.title),I.title!=null&&(l.title=I.title),I.x!=null&&(l.x=I.x),I.y!=null&&(l.y=I.y),I.color!=null&&(i.nodes.parseColor===!0?l.color=I.color:l.color={background:I.color,border:I.color,highlight:{background:I.color,border:I.color},hover:{background:I.color,border:I.color}}),l}),edges:r}}var CU=Object.freeze({__proto__:null,cn:{addDescription:"单击空白处放置新节点。",addEdge:"添加连接线",addNode:"添加节点",back:"返回",close:"關閉",createEdgeError:"无法将连接线连接到群集。",del:"删除选定",deleteClusterError:"无法删除群集。",edgeDescription:"单击某个节点并将该连接线拖动到另一个节点以连接它们。",edit:"编辑",editClusterError:"无法编辑群集。",editEdge:"编辑连接线",editEdgeDescription:"单击控制节点并将它们拖到节点上连接。",editNode:"编辑节点"},cs:{addDescription:"Kluknutím do prázdného prostoru můžete přidat nový vrchol.",addEdge:"Přidat hranu",addNode:"Přidat vrchol",back:"Zpět",close:"Zavřít",createEdgeError:"Nelze připojit hranu ke shluku.",del:"Smazat výběr",deleteClusterError:"Nelze mazat shluky.",edgeDescription:"Přetažením z jednoho vrcholu do druhého můžete spojit tyto vrcholy novou hranou.",edit:"Upravit",editClusterError:"Nelze upravovat shluky.",editEdge:"Upravit hranu",editEdgeDescription:"Přetažením kontrolního vrcholu hrany ji můžete připojit k jinému vrcholu.",editNode:"Upravit vrchol"},de:{addDescription:"Klicke auf eine freie Stelle, um einen neuen Knoten zu plazieren.",addEdge:"Kante hinzufügen",addNode:"Knoten hinzufügen",back:"Zurück",close:"Schließen",createEdgeError:"Es ist nicht möglich, Kanten mit Clustern zu verbinden.",del:"Lösche Auswahl",deleteClusterError:"Cluster können nicht gelöscht werden.",edgeDescription:"Klicke auf einen Knoten und ziehe die Kante zu einem anderen Knoten, um diese zu verbinden.",edit:"Editieren",editClusterError:"Cluster können nicht editiert werden.",editEdge:"Kante editieren",editEdgeDescription:"Klicke auf die Verbindungspunkte und ziehe diese auf einen Knoten, um sie zu verbinden.",editNode:"Knoten editieren"},en:{addDescription:"Click in an empty space to place a new node.",addEdge:"Add Edge",addNode:"Add Node",back:"Back",close:"Close",createEdgeError:"Cannot link edges to a cluster.",del:"Delete selected",deleteClusterError:"Clusters cannot be deleted.",edgeDescription:"Click on a node and drag the edge to another node to connect them.",edit:"Edit",editClusterError:"Clusters cannot be edited.",editEdge:"Edit Edge",editEdgeDescription:"Click on the control points and drag them to a node to connect to it.",editNode:"Edit Node"},es:{addDescription:"Haga clic en un lugar vacío para colocar un nuevo nodo.",addEdge:"Añadir arista",addNode:"Añadir nodo",back:"Atrás",close:"Cerrar",createEdgeError:"No se puede conectar una arista a un grupo.",del:"Eliminar selección",deleteClusterError:"No es posible eliminar grupos.",edgeDescription:"Haga clic en un nodo y arrastre la arista hacia otro nodo para conectarlos.",edit:"Editar",editClusterError:"No es posible editar grupos.",editEdge:"Editar arista",editEdgeDescription:"Haga clic en un punto de control y arrastrelo a un nodo para conectarlo.",editNode:"Editar nodo"},fr:{addDescription:"Cliquez dans un endroit vide pour placer un nœud.",addEdge:"Ajouter un lien",addNode:"Ajouter un nœud",back:"Retour",close:"Fermer",createEdgeError:"Impossible de créer un lien vers un cluster.",del:"Effacer la sélection",deleteClusterError:"Les clusters ne peuvent pas être effacés.",edgeDescription:"Cliquez sur un nœud et glissez le lien vers un autre nœud pour les connecter.",edit:"Éditer",editClusterError:"Les clusters ne peuvent pas être édités.",editEdge:"Éditer le lien",editEdgeDescription:"Cliquez sur les points de contrôle et glissez-les pour connecter un nœud.",editNode:"Éditer le nœud"},it:{addDescription:"Clicca per aggiungere un nuovo nodo",addEdge:"Aggiungi un vertice",addNode:"Aggiungi un nodo",back:"Indietro",close:"Chiudere",createEdgeError:"Non si possono collegare vertici ad un cluster",del:"Cancella la selezione",deleteClusterError:"I cluster non possono essere cancellati",edgeDescription:"Clicca su un nodo e trascinalo ad un altro nodo per connetterli.",edit:"Modifica",editClusterError:"I clusters non possono essere modificati.",editEdge:"Modifica il vertice",editEdgeDescription:"Clicca sui Punti di controllo e trascinali ad un nodo per connetterli.",editNode:"Modifica il nodo"},nl:{addDescription:"Klik op een leeg gebied om een nieuwe node te maken.",addEdge:"Link toevoegen",addNode:"Node toevoegen",back:"Terug",close:"Sluiten",createEdgeError:"Kan geen link maken naar een cluster.",del:"Selectie verwijderen",deleteClusterError:"Clusters kunnen niet worden verwijderd.",edgeDescription:"Klik op een node en sleep de link naar een andere node om ze te verbinden.",edit:"Wijzigen",editClusterError:"Clusters kunnen niet worden aangepast.",editEdge:"Link wijzigen",editEdgeDescription:"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.",editNode:"Node wijzigen"},pt:{addDescription:"Clique em um espaço em branco para adicionar um novo nó",addEdge:"Adicionar aresta",addNode:"Adicionar nó",back:"Voltar",close:"Fechar",createEdgeError:"Não foi possível linkar arestas a um cluster.",del:"Remover selecionado",deleteClusterError:"Clusters não puderam ser removidos.",edgeDescription:"Clique em um nó e arraste a aresta até outro nó para conectá-los",edit:"Editar",editClusterError:"Clusters não puderam ser editados.",editEdge:"Editar aresta",editEdgeDescription:"Clique nos pontos de controle e os arraste para um nó para conectá-los",editNode:"Editar nó"},ru:{addDescription:"Кликните в свободное место, чтобы добавить новый узел.",addEdge:"Добавить ребро",addNode:"Добавить узел",back:"Назад",close:"Закрывать",createEdgeError:"Невозможно соединить ребра в кластер.",del:"Удалить выбранное",deleteClusterError:"Кластеры не могут быть удалены",edgeDescription:"Кликните на узел и протяните ребро к другому узлу, чтобы соединить их.",edit:"Редактировать",editClusterError:"Кластеры недоступны для редактирования.",editEdge:"Редактировать ребро",editEdgeDescription:"Кликните на контрольные точки и перетащите их в узел, чтобы подключиться к нему.",editNode:"Редактировать узел"},uk:{addDescription:"Kлікніть на вільне місце, щоб додати новий вузол.",addEdge:"Додати край",addNode:"Додати вузол",back:"Назад",close:"Закрити",createEdgeError:"Не можливо об'єднати краї в групу.",del:"Видалити обране",deleteClusterError:"Групи не можуть бути видалені.",edgeDescription:"Клікніть на вузол і перетягніть край до іншого вузла, щоб їх з'єднати.",edit:"Редагувати",editClusterError:"Групи недоступні для редагування.",editEdge:"Редагувати край",editEdgeDescription:"Клікніть на контрольні точки і перетягніть їх у вузол, щоб підключитися до нього.",editNode:"Редагувати вузол"}});function IU(n,e){try{const[i,o]=e.split(/[-_ /]/,2),r=i!=null?i.toLowerCase():null,A=o!=null?o.toUpperCase():null;if(r&&A){const I=r+"-"+A;if(Object.prototype.hasOwnProperty.call(n,I))return I;var t;console.warn(a0(t="Unknown variant ".concat(A," of language ")).call(t,r,"."))}if(r){const I=r;if(Object.prototype.hasOwnProperty.call(n,I))return I;console.warn("Unknown language ".concat(r))}return console.warn("Unknown locale ".concat(e,", falling back to English.")),"en"}catch(i){return console.error(i),console.warn("Unexpected error while normalizing locale ".concat(e,", falling back to English.")),"en"}}class lU{constructor(){this.NUM_ITERATIONS=4,this.image=new Image,this.canvas=document.createElement("canvas")}init(){if(this.initialized())return;this.src=this.image.src;const e=this.image.width,t=this.image.height;this.width=e,this.height=t;const i=Math.floor(t/2),o=Math.floor(t/4),r=Math.floor(t/8),A=Math.floor(t/16),I=Math.floor(e/2),l=Math.floor(e/4),c=Math.floor(e/8),h=Math.floor(e/16);this.canvas.width=3*l,this.canvas.height=i,this.coordinates=[[0,0,I,i],[I,0,l,o],[I,o,c,r],[5*c,o,h,A]],this._fillMipMap()}initialized(){return this.coordinates!==void 0}_fillMipMap(){const e=this.canvas.getContext("2d"),t=this.coordinates[0];e.drawImage(this.image,t[0],t[1],t[2],t[3]);for(let i=1;i2){t*=.5;let I=0;for(;t>2&&I=this.NUM_ITERATIONS&&(I=this.NUM_ITERATIONS-1);const l=this.coordinates[I];e.drawImage(this.canvas,l[0],l[1],l[2],l[3],i,o,r,A)}else e.drawImage(this.image,i,o,r,A)}}class cU{constructor(e){this.images={},this.imageBroken={},this.callback=e}_tryloadBrokenUrl(e,t,i){if(!(e===void 0||i===void 0)){if(t===void 0){console.warn("No broken url image defined");return}i.image.onerror=()=>{console.error("Could not load brokenImage:",t)},i.image.src=t}}_redrawWithImage(e){this.callback&&this.callback(e)}load(e,t){const i=this.images[e];if(i)return i;const o=new lU;return this.images[e]=o,o.image.onload=()=>{this._fixImageCoordinates(o.image),o.init(),this._redrawWithImage(o)},o.image.onerror=()=>{console.error("Could not load image:",e),this._tryloadBrokenUrl(e,t,o)},o.image.src=e,o}_fixImageCoordinates(e){e.width===0&&(document.body.appendChild(e),e.width=e.offsetWidth,e.height=e.offsetHeight,document.body.removeChild(e))}}var D1={exports:{}},dU=it,uU=dU(function(){if(typeof ArrayBuffer=="function"){var n=new ArrayBuffer(8);Object.isExtensible(n)&&Object.defineProperty(n,"a",{value:8})}}),hU=it,fU=yn,pU=Yi,M1=uU,LC=Object.isExtensible,mU=hU(function(){LC(1)}),vU=mU||M1?function(e){return!fU(e)||M1&&pU(e)==="ArrayBuffer"?!1:LC?LC(e):!0}:LC,yU=it,z1=!yU(function(){return Object.isExtensible(Object.preventExtensions({}))}),bU=ze,wU=gt,xU=Wr,SU=yn,Jd=gn,EU=Fn.f,k1=ta,TU=IC,eu=vU,OU=JA,NU=z1,R1=!1,Ji=OU("meta"),DU=0,tu=function(n){EU(n,Ji,{value:{objectID:"O"+DU++,weakData:{}}})},MU=function(n,e){if(!SU(n))return typeof n=="symbol"?n:(typeof n=="string"?"S":"P")+n;if(!Jd(n,Ji)){if(!eu(n))return"F";if(!e)return"E";tu(n)}return n[Ji].objectID},zU=function(n,e){if(!Jd(n,Ji)){if(!eu(n))return!0;if(!e)return!1;tu(n)}return n[Ji].weakData},kU=function(n){return NU&&R1&&eu(n)&&!Jd(n,Ji)&&tu(n),n},RU=function(){_U.enable=function(){},R1=!0;var n=k1.f,e=wU([].splice),t={};t[Ji]=1,n(t).length&&(k1.f=function(i){for(var o=n(i),r=0,A=o.length;rp;p++)if(y=O(n[p]),y&&P1(G1,y))return y;return new FC(!1)}c=rY(n,h)}for(w=r?n.next:c.next;!(S=nY(w,c)).done;){try{y=O(S.value)}catch(E){L1(c,"throw",E)}if(typeof y=="object"&&y&&P1(G1,y))return y}return new FC(!1)},CY=jt,IY=TypeError,iu=function(n,e){if(CY(e,n))return n;throw new IY("Incorrect invocation")},lY=ze,cY=_t,dY=GC,uY=it,hY=ls,fY=nu,pY=iu,mY=ln,vY=yn,yY=as,bY=hs,wY=Fn.f,xY=xg.forEach,SY=nn,F1=mo,EY=F1.set,TY=F1.getterFor,gu=function(n,e,t){var i=n.indexOf("Map")!==-1,o=n.indexOf("Weak")!==-1,r=i?"set":"add",A=cY[n],I=A&&A.prototype,l={},c;if(!SY||!mY(A)||!(o||I.forEach&&!uY(function(){new A().entries().next()})))c=t.getConstructor(e,n,i,r),dY.enable();else{c=e(function(m,y){EY(pY(m,h),{type:n,collection:new A}),yY(y)||fY(y,m[r],{that:m,AS_ENTRIES:i})});var h=c.prototype,p=TY(n);xY(["add","clear","delete","forEach","get","has","set","keys","values","entries"],function(m){var y=m==="add"||m==="set";m in I&&!(o&&m==="clear")&&hY(h,m,function(w,S){var x=p(this).collection;if(!y&&o&&!vY(w))return m==="get"?void 0:!1;var O=x[m](w===0?0:w,S);return y?this:O})}),o||wY(h,"size",{configurable:!0,get:function(){return p(this).collection.size}})}return bY(c,n,!1,!0),l[n]=c,lY({global:!0,forced:!0},l),o||t.setStrong(c,n,i),c},OY=na,ou=function(n,e,t){for(var i in e)t&&t.unsafe&&n[i]?n[i]=e[i]:OY(n,i,e[i],t);return n},NY=fi,DY=Hc,MY=Ft,zY=nn,V1=MY("species"),kY=function(n){var e=NY(n);zY&&e&&!e[V1]&&DY(e,V1,{configurable:!0,get:function(){return this}})},RY=ea,_Y=Hc,U1=ou,jY=Hr,ZY=iu,BY=as,PY=nu,LY=cd,VC=dd,GY=kY,Ta=nn,Y1=GC.fastKey,H1=mo,K1=H1.set,su=H1.getterFor,W1={getConstructor:function(n,e,t,i){var o=n(function(c,h){ZY(c,r),K1(c,{type:e,index:RY(null),first:void 0,last:void 0,size:0}),Ta||(c.size=0),BY(h)||PY(h,c[i],{that:c,AS_ENTRIES:t})}),r=o.prototype,A=su(e),I=function(c,h,p){var m=A(c),y=l(c,h),w,S;return y?y.value=p:(m.last=y={index:S=Y1(h,!0),key:h,value:p,previous:w=m.last,next:void 0,removed:!1},m.first||(m.first=y),w&&(w.next=y),Ta?m.size++:c.size++,S!=="F"&&(m.index[S]=y)),c},l=function(c,h){var p=A(c),m=Y1(h),y;if(m!=="F")return p.index[m];for(y=p.first;y;y=y.next)if(y.key===h)return y};return U1(r,{clear:function(){for(var h=this,p=A(h),m=p.index,y=p.first;y;)y.removed=!0,y.previous&&(y.previous=y.previous.next=void 0),delete m[y.index],y=y.next;p.first=p.last=void 0,Ta?p.size=0:h.size=0},delete:function(c){var h=this,p=A(h),m=l(h,c);if(m){var y=m.next,w=m.previous;delete p.index[m.index],m.removed=!0,w&&(w.next=y),y&&(y.previous=w),p.first===m&&(p.first=y),p.last===m&&(p.last=w),Ta?p.size--:h.size--}return!!m},forEach:function(h){for(var p=A(this),m=jY(h,arguments.length>1?arguments[1]:void 0),y;y=y?y.next:p.first;)for(m(y.value,y.key,this);y&&y.removed;)y=y.previous},has:function(h){return!!l(this,h)}}),U1(r,t?{get:function(h){var p=l(this,h);return p&&p.value},set:function(h,p){return I(this,h===0?0:h,p)}}:{add:function(h){return I(this,h=h===0?0:h,h)}}),Ta&&_Y(r,"size",{configurable:!0,get:function(){return A(this).size}}),o},setStrong:function(n,e,t){var i=e+" Iterator",o=su(e),r=su(i);LY(n,e,function(A,I){K1(this,{type:i,target:A,state:o(A),kind:I,last:void 0})},function(){for(var A=r(this),I=A.kind,l=A.last;l&&l.removed;)l=l.previous;return!A.target||!(A.last=l=l?l.next:A.state.first)?(A.target=void 0,VC(void 0,!0)):VC(I==="keys"?l.key:I==="values"?l.value:[l.key,l.value],!1)},t?"entries":"values",!t,!0),GY(e)}},FY=gu,VY=W1;FY("Map",function(n){return function(){return n(this,arguments.length?arguments[0]:void 0)}},VY);var ru=gt,UY=iC,YY=Oi,HY=Lr,KY=ru("".charAt),Q1=ru("".charCodeAt),WY=ru("".slice),QY=function(n){return function(e,t){var i=YY(HY(e)),o=UY(t),r=i.length,A,I;return o<0||o>=r?n?"":void 0:(A=Q1(i,o),A<55296||A>56319||o+1===r||(I=Q1(i,o+1))<56320||I>57343?n?KY(i,o):A:n?WY(i,o,o+2):(A-55296<<10)+(I-56320)+65536)}},XY={charAt:QY(!0)},$Y=XY.charAt,qY=Oi,X1=mo,JY=cd,$1=dd,q1="String Iterator",eH=X1.set,tH=X1.getterFor(q1);JY(String,"String",function(n){eH(this,{type:q1,string:qY(n),index:0})},function(){var e=tH(this),t=e.string,i=e.index,o;return i>=t.length?$1(void 0,!0):(o=$Y(t,i),e.index+=o.length,$1(o,!1))});var nH=st,iH=nH.Map,gH=iH,oH=gH,sH=oH,Oa=Ne(sH);class rH{constructor(){this.clear(),this._defaultIndex=0,this._groupIndex=0,this._defaultGroups=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}},{border:"#990000",background:"#EE0000",highlight:{border:"#BB0000",background:"#FF3333"},hover:{border:"#BB0000",background:"#FF3333"}},{border:"#FF6000",background:"#FF6000",highlight:{border:"#FF6000",background:"#FF6000"},hover:{border:"#FF6000",background:"#FF6000"}},{border:"#97C2FC",background:"#2B7CE9",highlight:{border:"#D2E5FF",background:"#2B7CE9"},hover:{border:"#D2E5FF",background:"#2B7CE9"}},{border:"#399605",background:"#255C03",highlight:{border:"#399605",background:"#255C03"},hover:{border:"#399605",background:"#255C03"}},{border:"#B70054",background:"#FF007E",highlight:{border:"#B70054",background:"#FF007E"},hover:{border:"#B70054",background:"#FF007E"}},{border:"#AD85E4",background:"#7C29F0",highlight:{border:"#D3BDF0",background:"#7C29F0"},hover:{border:"#D3BDF0",background:"#7C29F0"}},{border:"#4557FA",background:"#000EA1",highlight:{border:"#6E6EFD",background:"#000EA1"},hover:{border:"#6E6EFD",background:"#000EA1"}},{border:"#FFC0CB",background:"#FD5A77",highlight:{border:"#FFD1D9",background:"#FD5A77"},hover:{border:"#FFD1D9",background:"#FD5A77"}},{border:"#C2FABC",background:"#74D66A",highlight:{border:"#E6FFE3",background:"#74D66A"},hover:{border:"#E6FFE3",background:"#74D66A"}},{border:"#EE0000",background:"#990000",highlight:{border:"#FF3333",background:"#BB0000"},hover:{border:"#FF3333",background:"#BB0000"}}],this.options={},this.defaultOptions={useDefaultGroups:!0},Vt(this.options,this.defaultOptions)}setOptions(e){const t=["useDefaultGroups"];if(e!==void 0){for(const i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&at(t).call(t,i)===-1){const o=e[i];this.add(i,o)}}}clear(){this._groups=new Oa,this._groupNames=[]}get(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,i=this._groups.get(e);if(i===void 0&&t)if(this.options.useDefaultGroups===!1&&this._groupNames.length>0){const o=this._groupIndex%this._groupNames.length;++this._groupIndex,i={},i.color=this._groups.get(this._groupNames[o]),this._groups.set(e,i)}else{const o=this._defaultIndex%this._defaultGroups.length;this._defaultIndex++,i={},i.color=this._defaultGroups[o],this._groups.set(e,i)}return i}add(e,t){return this._groups.has(e)||this._groupNames.push(e),this._groups.set(e,t),t}}var aH=ze;aH({target:"Number",stat:!0},{isNaN:function(e){return e!==e}});var AH=st,CH=AH.Number.isNaN,IH=CH,lH=IH,cH=lH,au=Ne(cH),dH=_t,uH=dH.isFinite,hH=Number.isFinite||function(e){return typeof e=="number"&&uH(e)},fH=ze,pH=hH;fH({target:"Number",stat:!0},{isFinite:pH});var mH=st,vH=mH.Number.isFinite,yH=vH,bH=yH,wH=bH,zo=Ne(wH),xH=ze,SH=xg.some,EH=ys,TH=EH("some");xH({target:"Array",proto:!0,forced:!TH},{some:function(e){return SH(this,e,arguments.length>1?arguments[1]:void 0)}});var OH=Wt,NH=OH("Array").some,DH=jt,MH=NH,Au=Array.prototype,zH=function(n){var e=n.some;return n===Au||DH(Au,n)&&e===Au.some?MH:e},kH=zH,RH=kH,_H=RH,J1=Ne(_H),jH=st,ZH=jH.Object.getOwnPropertySymbols,BH=ZH,PH=BH,LH=PH,_i=Ne(LH),ew={exports:{}},GH=ze,FH=it,VH=hi,tw=Zr.f,nw=nn,UH=!nw||FH(function(){tw(1)});GH({target:"Object",stat:!0,forced:UH,sham:!nw},{getOwnPropertyDescriptor:function(e,t){return tw(VH(e),t)}});var YH=st,iw=YH.Object,HH=ew.exports=function(e,t){return iw.getOwnPropertyDescriptor(e,t)};iw.getOwnPropertyDescriptor.sham&&(HH.sham=!0);var KH=ew.exports,WH=KH,QH=WH,XH=QH,ji=Ne(XH),$H=ze,qH=nn,JH=$b,e7=hi,t7=Zr,n7=$r;$H({target:"Object",stat:!0,sham:!qH},{getOwnPropertyDescriptors:function(e){for(var t=e7(e),i=t7.f,o=JH(t),r={},A=0,I,l;o.length>A;)l=i(t,I=o[A++]),l!==void 0&&n7(r,I,l);return r}});var i7=st,g7=i7.Object.getOwnPropertyDescriptors,o7=g7,s7=o7,r7=s7,Zi=Ne(r7),gw={exports:{}},a7=ze,A7=nn,ow=rC.f;a7({target:"Object",stat:!0,forced:Object.defineProperties!==ow,sham:!A7},{defineProperties:ow});var C7=st,sw=C7.Object,I7=gw.exports=function(e,t){return sw.defineProperties(e,t)};sw.defineProperties.sham&&(I7.sham=!0);var l7=gw.exports,c7=l7,d7=c7,u7=d7,Na=Ne(u7),rw={exports:{}},h7=ze,f7=nn,aw=Fn.f;h7({target:"Object",stat:!0,forced:Object.defineProperty!==aw,sham:!f7},{defineProperty:aw});var p7=st,Aw=p7.Object,m7=rw.exports=function(e,t,i){return Aw.defineProperty(e,t,i)};Aw.defineProperty.sham&&(m7.sham=!0);var v7=rw.exports,y7=v7,Cw=y7,b7=Cw,w7=b7,x7=w7,S7=x7,E7=S7,T7=Ne(E7),O7=Ft,N7=Fn.f,Iw=O7("metadata"),lw=Function.prototype;lw[Iw]===void 0&&N7(lw,Iw,{value:null});var D7=Zt;D7("asyncDispose");var M7=Zt;M7("dispose");var z7=Zt;z7("metadata");var k7=Wb,R7=k7,_7=fi,j7=gt,Cu=_7("Symbol"),Z7=Cu.keyFor,B7=j7(Cu.prototype.valueOf),cw=Cu.isRegisteredSymbol||function(e){try{return Z7(B7(e))!==void 0}catch{return!1}},P7=ze,L7=cw;P7({target:"Symbol",stat:!0},{isRegisteredSymbol:L7});for(var G7=Cs,dw=fi,F7=gt,V7=Vr,U7=Ft,UC=dw("Symbol"),uw=UC.isWellKnownSymbol,hw=dw("Object","getOwnPropertyNames"),Y7=F7(UC.prototype.valueOf),fw=G7("wks"),Iu=0,pw=hw(UC),H7=pw.length;Iu=0:I>l;l+=c)l in A&&(o=t(o,A[l],l,r));return o}},RK={left:kK(!1)},_K=_t,jK=Yi,ZK=jK(_K.process)==="process",BK=ze,PK=RK.left,LK=ys,bw=Fr,GK=ZK,FK=!GK&&bw>79&&bw<83,VK=FK||!LK("reduce");BK({target:"Array",proto:!0,forced:VK},{reduce:function(e){var t=arguments.length;return PK(this,e,t,t>1?arguments[1]:void 0)}});var UK=Wt,YK=UK("Array").reduce,HK=jt,KK=YK,lu=Array.prototype,WK=function(n){var e=n.reduce;return n===lu||HK(lu,n)&&e===lu.reduce?KK:e},QK=WK,XK=QK,$K=XK,cu=Ne($K),qK=wg,JK=Jn,eW=Pc,tW=Hr,ww=function(n,e,t,i,o,r,A,I){for(var l=o,c=0,h=A?tW(A,I):!1,p,m;c0&&qK(p)?(m=JK(p),l=ww(n,e,p,m,l,r-1)-1):(eW(l+1),n[l]=p),l++),c++;return l},nW=ww,iW=ze,gW=nW,oW=fo,sW=Gn,rW=Jn,aW=sC;iW({target:"Array",proto:!0},{flatMap:function(e){var t=sW(this),i=rW(t),o;return oW(e),o=aW(t,0),o.length=gW(o,t,t,i,0,1,e,arguments.length>1?arguments[1]:void 0),o}});var AW=Wt;AW("Array").flatMap;var CW=yw,Rs=Ne(CW),IW=gu,lW=W1;IW("Set",function(n){return function(){return n(this,arguments.length?arguments[0]:void 0)}},lW);var cW=st,dW=cW.Set,uW=dW,hW=uW,fW=hW,wi=Ne(fW),pW=Z1,mW=pW,vW=mW,yW=vW,bW=yW,wW=bW,xW=wW,SW=xW,EW=SW,TW=EW,du=Ne(TW),xw=By,OW=Math.floor,uu=function(n,e){var t=n.length,i=OW(t/2);return t<8?NW(n,e):DW(n,uu(xw(n,0,i),e),uu(xw(n,i),e),e)},NW=function(n,e){for(var t=n.length,i=1,o,r;i0;)n[r]=n[--r];r!==i++&&(n[r]=o)}return n},DW=function(n,e,t,i){for(var o=e.length,r=t.length,A=0,I=0;A3)){if(UW)return!0;if(zw)return zw<603;var n="",e,t,i,o;for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:i=3;break;case 68:case 71:i=4;break;default:i=2}for(o=0;o<47;o++)Rg.push({k:t+o,v:i})}for(Rg.sort(function(r,A){return A.v-r.v}),o=0;oNw(t)?1:-1}};BW({target:"Array",proto:!0,forced:QW},{sort:function(e){e!==void 0&&PW(e);var t=LW(this);if(Rw)return e===void 0?kw(t):kw(t,e);var i=[],o=Ow(t),r,A;for(A=0;A{i.flush()};const o=[{name:"flush",original:void 0}];if(t&&t.replace)for(let r=0;rthis.max&&this.flush(),this._timeout!=null&&(clearTimeout(this._timeout),this._timeout=null),this.queue.length>0&&typeof this.delay=="number"&&(this._timeout=Mi(()=>{this.flush()},this.delay))}flush(){var e,t;Je(e=Di(t=this._queue).call(t,0)).call(e,i=>{i.fn.apply(i.context||i.fn,i.args||[])})}}class WC{constructor(){$t(this,"_subscribers",{"*":[],add:[],remove:[],update:[]}),$t(this,"subscribe",WC.prototype.on),$t(this,"unsubscribe",WC.prototype.off)}_trigger(e,t,i){var o;if(e==="*")throw new Error("Cannot trigger event *");Je(o=[...this._subscribers[e],...this._subscribers["*"]]).call(o,r=>{r(e,t,i??null)})}on(e,t){typeof t=="function"&&this._subscribers[e].push(t)}off(e,t){var i;this._subscribers[e]=Qt(i=this._subscribers[e]).call(i,o=>o!==t)}}class ko{constructor(e){$t(this,"_pairs",void 0),this._pairs=e}*[Rs](){for(const[e,t]of this._pairs)yield[e,t]}*entries(){for(const[e,t]of this._pairs)yield[e,t]}*keys(){for(const[e]of this._pairs)yield e}*values(){for(const[,e]of this._pairs)yield e}toIdArray(){var e;return cn(e=[...this._pairs]).call(e,t=>t[0])}toItemArray(){var e;return cn(e=[...this._pairs]).call(e,t=>t[1])}toEntryArray(){return[...this._pairs]}toObjectMap(){const e=Tg(null);for(const[t,i]of this._pairs)e[t]=i;return e}toMap(){return new Oa(this._pairs)}toIdSet(){return new wi(this.toIdArray())}toItemSet(){return new wi(this.toItemArray())}cache(){return new ko([...this._pairs])}distinct(e){const t=new wi;for(const[i,o]of this._pairs)t.add(e(o,i));return t}filter(e){const t=this._pairs;return new ko({*[Rs](){for(const[i,o]of t)e(o,i)&&(yield[i,o])}})}forEach(e){for(const[t,i]of this._pairs)e(i,t)}map(e){const t=this._pairs;return new ko({*[Rs](){for(const[i,o]of t)yield[i,e(o,i)]}})}max(e){const t=du(this._pairs);let i=t.next();if(i.done)return null;let o=i.value[1],r=e(i.value[1],i.value[0]);for(;!(i=t.next()).done;){const[A,I]=i.value,l=e(I,A);l>r&&(r=l,o=I)}return o}min(e){const t=du(this._pairs);let i=t.next();if(i.done)return null;let o=i.value[1],r=e(i.value[1],i.value[0]);for(;!(i=t.next()).done;){const[A,I]=i.value,l=e(I,A);l{var t;return du(eg(t=[...this._pairs]).call(t,(i,o)=>{let[r,A]=i,[I,l]=o;return e(A,l,r,I)}))}})}}function VQ(n,e){return n[e]==null&&(n[e]=js()),n}class Zs extends WC{get idProp(){return this._idProp}constructor(e,t){super(),$t(this,"flush",void 0),$t(this,"length",void 0),$t(this,"_options",void 0),$t(this,"_data",void 0),$t(this,"_idProp",void 0),$t(this,"_queue",null),e&&!et(e)&&(t=e,e=[]),this._options=t||{},this._data=new Oa,this.length=0,this._idProp=this._options.fieldId||"id",e&&e.length&&this.add(e),this.setOptions(t)}setOptions(e){e&&e.queue!==void 0&&(e.queue===!1?this._queue&&(this._queue.destroy(),this._queue=null):(this._queue||(this._queue=yu.extend(this,{replace:["add","update","remove"]})),e.queue&&typeof e.queue=="object"&&this._queue.setOptions(e.queue)))}add(e,t){const i=[];let o;if(et(e)){const r=cn(e).call(e,A=>A[this._idProp]);if(J1(r).call(r,A=>this._data.has(A)))throw new Error("A duplicate id was found in the parameter array.");for(let A=0,I=e.length;A{const h=c[I];if(h!=null&&this._data.has(h)){const p=c,m=Vt({},this._data.get(h)),y=this._updateItem(p);o.push(y),A.push(p),r.push(m)}else{const p=this._addItem(c);i.push(p)}};if(et(e))for(let c=0,h=e.length;c{const A=this._data.get(r[this._idProp]);if(A==null)throw new Error("Updating non-existent items is not allowed.");return{oldData:A,update:r}})).call(i,r=>{let{oldData:A,update:I}=r;const l=A[this._idProp],c=OV(A,I);return this._data.set(l,c),{id:l,oldData:A,updatedData:c}});if(o.length){const r={items:cn(o).call(o,A=>A.id),oldData:cn(o).call(o,A=>A.oldData),data:cn(o).call(o,A=>A.updatedData)};return this._trigger("update",r,t),r.items}else return[]}get(e,t){let i,o,r;Bw(e)?(i=e,r=t):et(e)?(o=e,r=t):r=e;const A=r&&r.returnType==="Object"?"Object":"Array",I=r&&Qt(r),l=[];let c,h,p;if(i!=null)c=this._data.get(i),c&&I&&!I(c)&&(c=void 0);else if(o!=null)for(let w=0,S=o.length;w(o[r]=e[r],o),{})}_sort(e,t){if(typeof t=="string"){const i=t;eg(e).call(e,(o,r)=>{const A=o[i],I=r[i];return A>I?1:Ai)&&(t=r,i=A)}return t||null}min(e){let t=null,i=null;for(const r of HC(o=this._data).call(o)){var o;const A=r[e];typeof A=="number"&&(i==null||Ae.x&&n.tope.y}function XC(n){return typeof n=="string"&&n!==""}function Yw(n,e,t,i){let o=i.x,r=i.y;if(typeof i.distanceToBorder=="function"){const A=i.distanceToBorder(n,e),I=Math.sin(e)*A,l=Math.cos(e)*A;l===A?(o+=A,r=i.y):I===A?(o=i.x,r-=A):(o+=l,r-=I)}else i.shape.width>i.shape.height?(o=i.x+i.shape.width*.5,r=i.y-t):(o=i.x+t,r=i.y-i.shape.height*.5);return{x:o,y:r}}class hX{constructor(e){this.measureText=e,this.current=0,this.width=0,this.height=0,this.lines=[]}_add(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"normal";this.lines[e]===void 0&&(this.lines[e]={width:0,height:0,blocks:[]});let o=t;(t===void 0||t==="")&&(o=" ");const r=this.measureText(o,i),A=Vt({},HC(r));A.text=t,A.width=r.width,A.mod=i,(t===void 0||t==="")&&(A.width=0),this.lines[e].blocks.push(A),this.lines[e].width+=A.width}curWidth(){const e=this.lines[this.current];return e===void 0?0:e.width}append(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"normal";this._add(this.current,e,t)}newLine(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"normal";this._add(this.current,e,t),this.current++}determineLineHeights(){for(let e=0;ee&&(e=o.width),t+=o.height}this.width=e,this.height=t}removeEmptyBlocks(){const e=[];for(let t=0;t"://,""://,""://,"":/<\/b>/,"":/<\/i>/,"":/<\/code>/,"*":/\*/,_:/_/,"`":/`/,afterBold:/[^*]/,afterItal:/[^_]/,afterMono:/[^`]/};class Hw{constructor(e){this.text=e,this.bold=!1,this.ital=!1,this.mono=!1,this.spacing=!1,this.position=0,this.buffer="",this.modStack=[],this.blocks=[]}mod(){return this.modStack.length===0?"normal":this.modStack[0]}modName(){if(this.modStack.length===0)return"normal";if(this.modStack[0]==="mono")return"mono";if(this.bold&&this.ital)return"boldital";if(this.bold)return"bold";if(this.ital)return"ital"}emitBlock(){this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(this.blocks.push({text:this.buffer,mod:this.modName()}),this.buffer="")}add(e){e===" "&&(this.spacing=!0),this.spacing&&(this.buffer+=" ",this.spacing=!1),e!=" "&&(this.buffer+=e)}parseWS(e){return/[ \t]/.test(e)?(this.mono?this.add(e):this.spacing=!0,!0):!1}setTag(e){this.emitBlock(),this[e]=!0,this.modStack.unshift(e)}unsetTag(e){this.emitBlock(),this[e]=!1,this.modStack.shift()}parseStartTag(e,t){return!this.mono&&!this[e]&&this.match(t)?(this.setTag(e),!0):!1}match(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const[i,o]=this.prepareRegExp(e),r=i.test(this.text.substr(this.position,o));return r&&t&&(this.position+=o-1),r}parseEndTag(e,t,i){let o=this.mod()===e;return e==="mono"?o=o&&this.mono:o=o&&!this.mono,o&&this.match(t)?(i!==void 0?(this.position===this.text.length-1||this.match(i,!1))&&this.unsetTag(e):this.unsetTag(e),!0):!1}replace(e,t){return this.match(e)?(this.add(t),this.position+=length-1,!0):!1}prepareRegExp(e){let t,i;if(e instanceof RegExp)i=e,t=1;else{const o=fX[e];o!==void 0?i=o:i=new RegExp(e),t=e.length}return[i,t]}}class pX{constructor(e,t,i,o){this.ctx=e,this.parent=t,this.selected=i,this.hover=o;const r=(A,I)=>{if(A===void 0)return 0;const l=this.parent.getFormattingValues(e,i,o,I);let c=0;return A!==""&&(c=this.ctx.measureText(A).width),{width:c,values:l}};this.lines=new hX(r)}process(e){if(!XC(e))return this.lines.finalize();const t=this.parent.fontOptions;e=e.replace(/\r\n/g,` `),e=e.replace(/\r/g,` `);const i=String(e).split(` -`),o=i.length;if(t.multi)for(let r=0;r0)for(let I=0;I0)for(let r=0;r/&/.test(o)?(t.replace(t.text,"<","<")||t.replace(t.text,"&","&")||t.add("&"),!0):!1;for(;t.position")||t.parseStartTag("ital","")||t.parseStartTag("mono","")||t.parseEndTag("bold","")||t.parseEndTag("ital","")||t.parseEndTag("mono",""))||i(o)||t.add(o),t.position++}return t.emitBlock(),t.blocks}splitMarkdownBlocks(e){const t=new Yw(e);let i=!0;const o=r=>/\\/.test(r)?(t.positionthis.parent.fontOptions.maxWdt}getLongestFit(e){let t="",i=0;for(;i1&&arguments[1]!==void 0?arguments[1]:"normal",i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.parent.getFormattingValues(this.ctx,this.selected,this.hover,t),e=e.replace(/^( +)/g,"$1\r"),e=e.replace(/([^\r][^ ]*)( +)/g,"$1\r$2\r");let o=e.split("\r");for(;o.length>0;){let r=this.getLongestFit(o);if(r===0){const A=o[0],I=this.getLongestFitWord(A);this.lines.newLine(vi(A).call(A,0,I),t),o[0]=vi(A).call(A,I)}else{let A=r;o[r-1]===" "?r--:o[A]===" "&&A++;const I=vi(o).call(o,0,r).join("");r==o.length&&i?this.lines.append(I,t):this.lines.newLine(I,t),o=vi(o).call(o,A)}}}}const za=["bold","ital","boldital","mono"];class Bs{constructor(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.body=e,this.pointToSelf=!1,this.baseSize=void 0,this.fontOptions={},this.setOptions(t),this.size={top:0,left:0,width:0,height:0,yLine:0},this.isEdgeLabel=i}setOptions(e){if(this.elementOptions=e,this.initFontOptions(e.font),XC(e.label)?this.labelDirty=!0:e.label=void 0,e.font!==void 0&&e.font!==null){if(typeof e.font=="string")this.baseSize=this.fontOptions.size;else if(typeof e.font=="object"){const t=e.font.size;t!==void 0&&(this.baseSize=t)}}}initFontOptions(e){if(He(za,t=>{this.fontOptions[t]={}}),Bs.parseFontString(this.fontOptions,e)){this.fontOptions.vadjust=0;return}He(e,(t,i)=>{t!=null&&typeof t!="object"&&(this.fontOptions[i]=t)})}static parseFontString(e,t){if(!t||typeof t!="string")return!1;const i=t.split(" ");return e.size=+i[0].replace("px",""),e.face=i[1],e.color=i[2],!0}constrain(e){const t={constrainWidth:!1,maxWdt:-1,minWdt:-1,constrainHeight:!1,minHgt:-1,valign:"middle"},i=Mg(e,"widthConstraint");if(typeof i=="number")t.maxWdt=Number(i),t.minWdt=Number(i);else if(typeof i=="object"){const r=Mg(e,["widthConstraint","maximum"]);typeof r=="number"&&(t.maxWdt=Number(r));const A=Mg(e,["widthConstraint","minimum"]);typeof A=="number"&&(t.minWdt=Number(A))}const o=Mg(e,"heightConstraint");if(typeof o=="number")t.minHgt=Number(o);else if(typeof o=="object"){const r=Mg(e,["heightConstraint","minimum"]);typeof r=="number"&&(t.minHgt=Number(r));const A=Mg(e,["heightConstraint","valign"]);typeof A=="string"&&(A==="top"||A==="bottom")&&(t.valign=A)}return t}update(e,t){this.setOptions(e,!0),this.propagateFonts(t),yt(this.fontOptions,this.constrain(t)),this.fontOptions.chooser=bu("label",t)}adjustSizes(e){const t=e?e.right+e.left:0;this.fontOptions.constrainWidth&&(this.fontOptions.maxWdt-=t,this.fontOptions.minWdt-=t);const i=e?e.top+e.bottom:0;this.fontOptions.constrainHeight&&(this.fontOptions.minHgt-=i)}addFontOptionsToPile(e,t){for(let i=0;i{A!==void 0&&(Object.prototype.hasOwnProperty.call(t,I)||(Ct(za).call(za,I)!==-1?t[I]={}:t[I]=A))})}return t}getFontOption(e,t,i){let o;for(let r=0;r{r[l]=I}),r.size=Number(r.size),r.vadjust=Number(r.vadjust)}}draw(e,t,i,o,r){let A=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"middle";if(this.elementOptions.label===void 0)return;let I=this.fontOptions.size*this.body.view.scale;this.elementOptions.label&&I=this.elementOptions.scaling.label.maxVisible&&(I=Number(this.elementOptions.scaling.label.maxVisible)/this.body.view.scale),this.calculateLabelSize(e,o,r,t,i,A),this._drawBackground(e),this._drawText(e,t,this.size.yLine,A,I))}_drawBackground(e){if(this.fontOptions.background!==void 0&&this.fontOptions.background!=="none"){e.fillStyle=this.fontOptions.background;const t=this.getSize();e.fillRect(t.left,t.top,t.width,t.height)}}_drawText(e,t,i){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"middle",r=arguments.length>4?arguments[4]:void 0;[t,i]=this._setAlignment(e,t,i,o),e.textAlign="left",t=t-this.size.width/2,this.fontOptions.valign&&this.size.height>this.size.labelHeight&&(this.fontOptions.valign==="top"&&(i-=(this.size.height-this.size.labelHeight)/2),this.fontOptions.valign==="bottom"&&(i+=(this.size.height-this.size.labelHeight)/2));for(let A=0;A0&&(e.lineWidth=h.strokeWidth,e.strokeStyle=m,e.lineJoin="round"),e.fillStyle=p,h.strokeWidth>0&&e.strokeText(h.text,t+l,i+h.vadjust),e.fillText(h.text,t+l,i+h.vadjust),l+=h.width}i+=I.height}}}_setAlignment(e,t,i,o){if(this.isEdgeLabel&&this.fontOptions.align!=="horizontal"&&this.pointToSelf===!1){t=0,i=0;const r=2;this.fontOptions.align==="top"?(e.textBaseline="alphabetic",i-=2*r):this.fontOptions.align==="bottom"?(e.textBaseline="hanging",i+=2*r):e.textBaseline="middle"}else e.textBaseline=o;return[t,i]}_getColor(e,t,i){let o=e||"#000000",r=i||"#ffffff";if(t<=this.elementOptions.scaling.label.drawThreshold){const A=Math.max(0,Math.min(1,1-(this.elementOptions.scaling.label.drawThreshold-t)));o=ni(o,A),r=ni(r,A)}return[o,r]}getTextSize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return this._processLabel(e,t,i),{width:this.size.width,height:this.size.height,lineCount:this.lineCount}}getSize(){let t=this.size.left,i=this.size.top-.5*2;if(this.isEdgeLabel){const r=-this.size.width*.5;switch(this.fontOptions.align){case"middle":t=r,i=-this.size.height*.5;break;case"top":t=r,i=-(this.size.height+2);break;case"bottom":t=r,i=2;break}}return{left:t,top:i,width:this.size.width,height:this.size.height}}calculateLabelSize(e,t,i){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,A=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"middle";this._processLabel(e,t,i),this.size.left=o-this.size.width*.5,this.size.top=r-this.size.height*.5,this.size.yLine=r+(1-this.lineCount)*.5*this.fontOptions.size,A==="hanging"&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4)}getFormattingValues(e,t,i,o){const r=function(l,c,h){return c==="normal"?h==="mod"?"":l[h]:l[c][h]!==void 0?l[c][h]:l[h]},A={color:r(this.fontOptions,o,"color"),size:r(this.fontOptions,o,"size"),face:r(this.fontOptions,o,"face"),mod:r(this.fontOptions,o,"mod"),vadjust:r(this.fontOptions,o,"vadjust"),strokeWidth:this.fontOptions.strokeWidth,strokeColor:this.fontOptions.strokeColor};(t||i)&&(o==="normal"&&this.fontOptions.chooser===!0&&this.elementOptions.labelHighlightBold?A.mod="bold":typeof this.fontOptions.chooser=="function"&&this.fontOptions.chooser(A,this.elementOptions.id,t,i));let I="";return A.mod!==void 0&&A.mod!==""&&(I+=A.mod+" "),I+=A.size+"px "+A.face,e.font=I.replace(/"/g,""),A.font=e.font,A.height=A.size,A}differentState(e,t){return e!==this.selectedState||t!==this.hoverState}_processLabelText(e,t,i,o){return new uX(e,this,t,i).process(o)}_processLabel(e,t,i){if(this.labelDirty===!1&&!this.differentState(t,i))return;const o=this._processLabelText(e,t,i,this.elementOptions.label);this.fontOptions.minWdt>0&&o.width0&&o.height0&&(this.enableBorderDashes(e,t),e.stroke(),this.disableBorderDashes(e,t)),e.restore()}performFill(e,t){e.save(),e.fillStyle=t.color,this.enableShadow(e,t),Ia(e).call(e),this.disableShadow(e,t),e.restore(),this.performStroke(e,t)}_addBoundingBoxMargin(e){this.boundingBox.left-=e,this.boundingBox.top-=e,this.boundingBox.bottom+=e,this.boundingBox.right+=e}_updateBoundingBox(e,t,i,o,r){i!==void 0&&this.resize(i,o,r),this.left=e-this.width/2,this.top=t-this.height/2,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}updateBoundingBox(e,t,i,o,r){this._updateBoundingBox(e,t,i,o,r)}getDimensionsFromLabel(e,t,i){this.textSize=this.labelModule.getTextSize(e,t,i);let o=this.textSize.width,r=this.textSize.height;const A=14;return o===0&&(o=A,r=A),{width:o,height:r}}}let hX=class extends Ro{constructor(e,t,i){super(e,t,i),this._setMargins(i)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.needsRefresh(t,i)){const o=this.getDimensionsFromLabel(e,t,i);this.width=o.width+this.margin.right+this.margin.left,this.height=o.height+this.margin.top+this.margin.bottom,this.radius=this.width/2}}draw(e,t,i,o,r,A){this.resize(e,o,r),this.left=t-this.width/2,this.top=i-this.height/2,this.initContextForDraw(e,A),ly(e,this.left,this.top,this.width,this.height,A.borderRadius),this.performFill(e,A),this.updateBoundingBox(t,i,e,o,r),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,r)}updateBoundingBox(e,t,i,o,r){this._updateBoundingBox(e,t,i,o,r);const A=this.options.shapeProperties.borderRadius;this._addBoundingBoxMargin(A)}distanceToBorder(e,t){e&&this.resize(e);const i=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(t)),Math.abs(this.height/2/Math.sin(t)))+i}};class xu extends Ro{constructor(e,t,i){super(e,t,i),this.labelOffset=0,this.selected=!1}setOptions(e,t,i){this.options=e,t===void 0&&i===void 0||this.setImages(t,i)}setImages(e,t){t&&this.selected?(this.imageObj=t,this.imageObjAlt=e):(this.imageObj=e,this.imageObjAlt=t)}switchImages(e){const t=e&&!this.selected||!e&&this.selected;if(this.selected=e,this.imageObjAlt!==void 0&&t){const i=this.imageObj;this.imageObj=this.imageObjAlt,this.imageObjAlt=i}}_getImagePadding(){const e={top:0,right:0,bottom:0,left:0};if(this.options.imagePadding){const t=this.options.imagePadding;typeof t=="object"?(e.top=t.top,e.right=t.right,e.bottom=t.bottom,e.left=t.left):(e.top=t,e.right=t,e.bottom=t,e.left=t)}return e}_resizeImage(){let e,t;if(this.options.shapeProperties.useImageSize===!1){let i=1,o=1;this.imageObj.width&&this.imageObj.height&&(this.imageObj.width>this.imageObj.height?i=this.imageObj.width/this.imageObj.height:o=this.imageObj.height/this.imageObj.width),e=this.options.size*2*i,t=this.options.size*2*o}else{const i=this._getImagePadding();e=this.imageObj.width+i.left+i.right,t=this.imageObj.height+i.top+i.bottom}this.width=e,this.height=t,this.radius=.5*this.width}_drawRawCircle(e,t,i,o){this.initContextForDraw(e,o),Zc(e,t,i,o.size),this.performFill(e,o)}_drawImageAtPosition(e,t){if(this.imageObj.width!=0){e.globalAlpha=t.opacity!==void 0?t.opacity:1,this.enableShadow(e,t);let i=1;this.options.shapeProperties.interpolation===!0&&(i=this.imageObj.width/this.width/this.body.view.scale);const o=this._getImagePadding(),r=this.left+o.left,A=this.top+o.top,I=this.width-o.left-o.right,l=this.height-o.top-o.bottom;this.imageObj.drawImageAtPosition(e,i,r,A,I,l),this.disableShadow(e,t)}}_drawImageLabel(e,t,i,o,r){let A=0;if(this.height!==void 0){A=this.height*.5;const l=this.labelModule.getTextSize(e,o,r);l.lineCount>=1&&(A+=l.height/2)}const I=i+A;this.options.label&&(this.labelOffset=A),this.labelModule.draw(e,t,I,o,r,"hanging")}}let fX=class extends xu{constructor(e,t,i){super(e,t,i),this._setMargins(i)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.needsRefresh(t,i)){const o=this.getDimensionsFromLabel(e,t,i),r=Math.max(o.width+this.margin.right+this.margin.left,o.height+this.margin.top+this.margin.bottom);this.options.size=r/2,this.width=r,this.height=r,this.radius=this.width/2}}draw(e,t,i,o,r,A){this.resize(e,o,r),this.left=t-this.width/2,this.top=i-this.height/2,this._drawRawCircle(e,t,i,A),this.updateBoundingBox(t,i),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,i,o,r)}updateBoundingBox(e,t){this.boundingBox.top=t-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=t+this.options.size}distanceToBorder(e){return e&&this.resize(e),this.width*.5}};class pX extends xu{constructor(e,t,i,o,r){super(e,t,i),this.setImages(o,r)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.imageObj.src===void 0||this.imageObj.width===void 0||this.imageObj.height===void 0){const r=this.options.size*2;this.width=r,this.height=r,this.radius=.5*this.width;return}this.needsRefresh(t,i)&&this._resizeImage()}draw(e,t,i,o,r,A){this.switchImages(o),this.resize();let I=t,l=i;this.options.shapeProperties.coordinateOrigin==="top-left"?(this.left=t,this.top=i,I+=this.width/2,l+=this.height/2):(this.left=t-this.width/2,this.top=i-this.height/2),this._drawRawCircle(e,I,l,A),e.save(),e.clip(),this._drawImageAtPosition(e,A),e.restore(),this._drawImageLabel(e,I,l,o,r),this.updateBoundingBox(t,i)}updateBoundingBox(e,t){this.options.shapeProperties.coordinateOrigin==="top-left"?(this.boundingBox.top=t,this.boundingBox.left=e,this.boundingBox.right=e+this.options.size*2,this.boundingBox.bottom=t+this.options.size*2):(this.boundingBox.top=t-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=t+this.options.size),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}distanceToBorder(e){return e&&this.resize(e),this.width*.5}}class _g extends Ro{constructor(e,t,i){super(e,t,i)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{size:this.options.size};if(this.needsRefresh(t,i)){var r,A;this.labelModule.getTextSize(e,t,i);const I=2*o.size;this.width=(r=this.customSizeWidth)!==null&&r!==void 0?r:I,this.height=(A=this.customSizeHeight)!==null&&A!==void 0?A:I,this.radius=.5*this.width}}_drawShape(e,t,i,o,r,A,I,l){return this.resize(e,A,I,l),this.left=o-this.width/2,this.top=r-this.height/2,this.initContextForDraw(e,l),e4(t)(e,o,r,l.size),this.performFill(e,l),this.options.icon!==void 0&&this.options.icon.code!==void 0&&(e.font=(A?"bold ":"")+this.height/2+"px "+(this.options.icon.face||"FontAwesome"),e.fillStyle=this.options.icon.color||"black",e.textAlign="center",e.textBaseline="middle",e.fillText(this.options.icon.code,o,r)),{drawExternalLabel:()=>{if(this.options.label!==void 0){this.labelModule.calculateLabelSize(e,A,I,o,r,"hanging");const c=r+.5*this.height+.5*this.labelModule.size.height;this.labelModule.draw(e,o,c,A,I,"hanging")}this.updateBoundingBox(o,r)}}}updateBoundingBox(e,t){this.boundingBox.top=t-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=t+this.options.size,this.options.label!==void 0&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height))}}function Hw(n,e){var t=xt(n);if(_i){var i=_i(n);e&&(i=Qt(i).call(i,function(o){return ji(n,o).enumerable})),t.push.apply(t,i)}return t}function mX(n){for(var e=1;e{e.save(),l(),e.restore()}}return I.nodeDimensions&&(this.customSizeWidth=I.nodeDimensions.width,this.customSizeHeight=I.nodeDimensions.height),I}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}class yX extends Ro{constructor(e,t,i){super(e,t,i),this._setMargins(i)}resize(e,t,i){if(this.needsRefresh(t,i)){const r=this.getDimensionsFromLabel(e,t,i).width+this.margin.right+this.margin.left;this.width=r,this.height=r,this.radius=this.width/2}}draw(e,t,i,o,r,A){this.resize(e,o,r),this.left=t-this.width/2,this.top=i-this.height/2,this.initContextForDraw(e,A),cy(e,t-this.width/2,i-this.height/2,this.width,this.height),this.performFill(e,A),this.updateBoundingBox(t,i,e,o,r),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,r)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}let bX=class extends _g{constructor(e,t,i){super(e,t,i)}draw(e,t,i,o,r,A){return this._drawShape(e,"diamond",4,t,i,o,r,A)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}};class wX extends _g{constructor(e,t,i){super(e,t,i)}draw(e,t,i,o,r,A){return this._drawShape(e,"circle",2,t,i,o,r,A)}distanceToBorder(e){return e&&this.resize(e),this.options.size}}class Kw extends Ro{constructor(e,t,i){super(e,t,i)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.needsRefresh(t,i)){const o=this.getDimensionsFromLabel(e,t,i);this.height=o.height*2,this.width=o.width+o.height,this.radius=.5*this.width}}draw(e,t,i,o,r,A){this.resize(e,o,r),this.left=t-this.width*.5,this.top=i-this.height*.5,this.initContextForDraw(e,A),Bc(e,this.left,this.top,this.width,this.height),this.performFill(e,A),this.updateBoundingBox(t,i,e,o,r),this.labelModule.draw(e,t,i,o,r)}distanceToBorder(e,t){e&&this.resize(e);const i=this.width*.5,o=this.height*.5,r=Math.sin(t)*i,A=Math.cos(t)*o;return i*o/Math.sqrt(r*r+A*A)}}class xX extends Ro{constructor(e,t,i){super(e,t,i),this._setMargins(i)}resize(e,t,i){this.needsRefresh(t,i)&&(this.iconSize={width:Number(this.options.icon.size),height:Number(this.options.icon.size)},this.width=this.iconSize.width+this.margin.right+this.margin.left,this.height=this.iconSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}draw(e,t,i,o,r,A){return this.resize(e,o,r),this.options.icon.size=this.options.icon.size||50,this.left=t-this.width/2,this.top=i-this.height/2,this._icon(e,t,i,o,r,A),{drawExternalLabel:()=>{this.options.label!==void 0&&this.labelModule.draw(e,this.left+this.iconSize.width/2+this.margin.left,i+this.height/2+5,o),this.updateBoundingBox(t,i)}}}updateBoundingBox(e,t){this.boundingBox.top=t-this.options.icon.size*.5,this.boundingBox.left=e-this.options.icon.size*.5,this.boundingBox.right=e+this.options.icon.size*.5,this.boundingBox.bottom=t+this.options.icon.size*.5,this.options.label!==void 0&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+5))}_icon(e,t,i,o,r,A){const I=Number(this.options.icon.size);this.options.icon.code!==void 0?(e.font=[this.options.icon.weight!=null?this.options.icon.weight:o?"bold":"",(this.options.icon.weight!=null&&o?5:0)+I+"px",this.options.icon.face].join(" "),e.fillStyle=this.options.icon.color||"black",e.textAlign="center",e.textBaseline="middle",this.enableShadow(e,A),e.fillText(this.options.icon.code,t,i),this.disableShadow(e,A)):console.error("When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.")}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}let EX=class extends xu{constructor(e,t,i,o,r){super(e,t,i),this.setImages(o,r)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.imageObj.src===void 0||this.imageObj.width===void 0||this.imageObj.height===void 0){const r=this.options.size*2;this.width=r,this.height=r;return}this.needsRefresh(t,i)&&this._resizeImage()}draw(e,t,i,o,r,A){e.save(),this.switchImages(o),this.resize();let I=t,l=i;if(this.options.shapeProperties.coordinateOrigin==="top-left"?(this.left=t,this.top=i,I+=this.width/2,l+=this.height/2):(this.left=t-this.width/2,this.top=i-this.height/2),this.options.shapeProperties.useBorderWithImage===!0){const c=this.options.borderWidth,h=this.options.borderWidthSelected||2*this.options.borderWidth,p=(o?h:c)/this.body.view.scale;e.lineWidth=Math.min(this.width,p),e.beginPath();let m=o?this.options.color.highlight.border:r?this.options.color.hover.border:this.options.color.border,y=o?this.options.color.highlight.background:r?this.options.color.hover.background:this.options.color.background;A.opacity!==void 0&&(m=ni(m,A.opacity),y=ni(y,A.opacity)),e.strokeStyle=m,e.fillStyle=y,e.rect(this.left-.5*e.lineWidth,this.top-.5*e.lineWidth,this.width+e.lineWidth,this.height+e.lineWidth),Ia(e).call(e),this.performStroke(e,A),e.closePath()}this._drawImageAtPosition(e,A),this._drawImageLabel(e,I,l,o,r),this.updateBoundingBox(t,i),e.restore()}updateBoundingBox(e,t){this.resize(),this.options.shapeProperties.coordinateOrigin==="top-left"?(this.left=e,this.top=t):(this.left=e-this.width/2,this.top=t-this.height/2),this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width,this.options.label!==void 0&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}distanceToBorder(e,t){return this._distanceToBorder(e,t)}};class SX extends _g{constructor(e,t,i){super(e,t,i)}draw(e,t,i,o,r,A){return this._drawShape(e,"square",2,t,i,o,r,A)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}class TX extends _g{constructor(e,t,i){super(e,t,i)}draw(e,t,i,o,r,A){return this._drawShape(e,"hexagon",4,t,i,o,r,A)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}class OX extends _g{constructor(e,t,i){super(e,t,i)}draw(e,t,i,o,r,A){return this._drawShape(e,"star",4,t,i,o,r,A)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}class NX extends Ro{constructor(e,t,i){super(e,t,i),this._setMargins(i)}resize(e,t,i){this.needsRefresh(t,i)&&(this.textSize=this.labelModule.getTextSize(e,t,i),this.width=this.textSize.width+this.margin.right+this.margin.left,this.height=this.textSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}draw(e,t,i,o,r,A){this.resize(e,o,r),this.left=t-this.width/2,this.top=i-this.height/2,this.enableShadow(e,A),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,r),this.disableShadow(e,A),this.updateBoundingBox(t,i,e,o,r)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}let DX=class extends _g{constructor(e,t,i){super(e,t,i)}draw(e,t,i,o,r,A){return this._drawShape(e,"triangle",3,t,i,o,r,A)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}};class MX extends _g{constructor(e,t,i){super(e,t,i)}draw(e,t,i,o,r,A){return this._drawShape(e,"triangleDown",3,t,i,o,r,A)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}function Ww(n,e){var t=xt(n);if(_i){var i=_i(n);e&&(i=Qt(i).call(i,function(o){return ji(n,o).enumerable})),t.push.apply(t,i)}return t}function Qw(n){for(var e=1;et[c]!=null);l.push("font"),ZC(l,e,I),e.color=Kd(e.color)}static parseOptions(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},r=arguments.length>4?arguments[4]:void 0;if(ZC(["color","fixed","shadow"],e,t,i),Nt.checkMass(t),e.opacity!==void 0&&(Nt.checkOpacity(e.opacity)||(console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+e.opacity),e.opacity=void 0)),t.opacity!==void 0&&(Nt.checkOpacity(t.opacity)||(console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+t.opacity),t.opacity=void 0)),t.shapeProperties&&!Nt.checkCoordinateOrigin(t.shapeProperties.coordinateOrigin)&&console.error("Invalid option for node coordinateOrigin, found: "+t.shapeProperties.coordinateOrigin),ii(e,t,"shadow",o),t.color!==void 0&&t.color!==null){const I=Kd(t.color);c1(e.color,I)}else i===!0&&t.color===null&&(e.color=Dg(o.color));t.fixed!==void 0&&t.fixed!==null&&(typeof t.fixed=="boolean"?(e.fixed.x=t.fixed,e.fixed.y=t.fixed):(t.fixed.x!==void 0&&typeof t.fixed.x=="boolean"&&(e.fixed.x=t.fixed.x),t.fixed.y!==void 0&&typeof t.fixed.y=="boolean"&&(e.fixed.y=t.fixed.y))),i===!0&&t.font===null&&(e.font=Dg(o.font)),Nt.updateGroupOptions(e,t,r),t.scaling!==void 0&&ii(e.scaling,t.scaling,"label",o.scaling)}getFormattingValues(){const e={color:this.options.color.background,opacity:this.options.opacity,borderWidth:this.options.borderWidth,borderColor:this.options.color.border,size:this.options.size,borderDashes:this.options.shapeProperties.borderDashes,borderRadius:this.options.shapeProperties.borderRadius,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y};if(this.selected||this.hover?this.chooser===!0?this.selected?(this.options.borderWidthSelected!=null?e.borderWidth=this.options.borderWidthSelected:e.borderWidth*=2,e.color=this.options.color.highlight.background,e.borderColor=this.options.color.highlight.border,e.shadow=this.options.shadow.enabled):this.hover&&(e.color=this.options.color.hover.background,e.borderColor=this.options.color.hover.border,e.shadow=this.options.shadow.enabled):typeof this.chooser=="function"&&(this.chooser(e,this.options.id,this.selected,this.hover),e.shadow===!1&&(e.shadowColor!==this.options.shadow.color||e.shadowSize!==this.options.shadow.size||e.shadowX!==this.options.shadow.x||e.shadowY!==this.options.shadow.y)&&(e.shadow=!0)):e.shadow=this.options.shadow.enabled,this.options.opacity!==void 0){const t=this.options.opacity;e.borderColor=ni(e.borderColor,t),e.color=ni(e.color,t),e.shadowColor=ni(e.shadowColor,t)}return e}updateLabelModule(e){(this.options.label===void 0||this.options.label===null)&&(this.options.label=""),Nt.updateGroupOptions(this.options,Qw(Qw({},e),{},{color:e&&e.color||this._localColor||void 0}),this.grouplist);const t=this.grouplist.get(this.options.group,!1),i=[e,this.options,t,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,i),this.labelModule.baseSize!==void 0&&(this.baseFontSize=this.labelModule.baseSize)}updateShape(e){if(e===this.options.shape&&this.shape)this.shape.setOptions(this.options,this.imageObj,this.imageObjAlt);else switch(this.options.shape){case"box":this.shape=new hX(this.options,this.body,this.labelModule);break;case"circle":this.shape=new fX(this.options,this.body,this.labelModule);break;case"circularImage":this.shape=new pX(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case"custom":this.shape=new vX(this.options,this.body,this.labelModule,this.options.ctxRenderer);break;case"database":this.shape=new yX(this.options,this.body,this.labelModule);break;case"diamond":this.shape=new bX(this.options,this.body,this.labelModule);break;case"dot":this.shape=new wX(this.options,this.body,this.labelModule);break;case"ellipse":this.shape=new Kw(this.options,this.body,this.labelModule);break;case"icon":this.shape=new xX(this.options,this.body,this.labelModule);break;case"image":this.shape=new EX(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case"square":this.shape=new SX(this.options,this.body,this.labelModule);break;case"hexagon":this.shape=new TX(this.options,this.body,this.labelModule);break;case"star":this.shape=new OX(this.options,this.body,this.labelModule);break;case"text":this.shape=new NX(this.options,this.body,this.labelModule);break;case"triangle":this.shape=new DX(this.options,this.body,this.labelModule);break;case"triangleDown":this.shape=new MX(this.options,this.body,this.labelModule);break;default:this.shape=new Kw(this.options,this.body,this.labelModule);break}this.needsRefresh()}select(){this.selected=!0,this.needsRefresh()}unselect(){this.selected=!1,this.needsRefresh()}needsRefresh(){this.shape.refreshNeeded=!0}getTitle(){return this.options.title}distanceToBorder(e,t){return this.shape.distanceToBorder(e,t)}isFixed(){return this.options.fixed.x&&this.options.fixed.y}isSelected(){return this.selected}getValue(){return this.options.value}getLabelSize(){return this.labelModule.size()}setValueRange(e,t,i){if(this.options.value!==void 0){const o=this.options.scaling.customScalingFunction(e,t,i,this.options.value),r=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===!0){const A=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+o*A}this.options.size=this.options.scaling.min+o*r}else this.options.size=this.baseSize,this.options.font.size=this.baseFontSize;this.updateLabelModule()}draw(e){const t=this.getFormattingValues();return this.shape.draw(e,this.x,this.y,this.selected,this.hover,t)||{}}updateBoundingBox(e){this.shape.updateBoundingBox(this.x,this.y,e)}resize(e){const t=this.getFormattingValues();this.shape.resize(e,this.selected,this.hover,t)}getItemsOnPoint(e){const t=[];return this.labelModule.visible()&&wu(this.labelModule.getSize(),e)&&t.push({nodeId:this.id,labelId:0}),wu(this.shape.boundingBox,e)&&t.push({nodeId:this.id}),t}isOverlappingWith(e){return this.shape.lefte.left&&this.shape.tope.top}isBoundingBoxOverlappingWith(e){return this.shape.boundingBox.lefte.left&&this.shape.boundingBox.tope.top}static checkMass(e,t){if(e.mass!==void 0&&e.mass<=0){let i="";t!==void 0&&(i=" in node id: "+t),console.error("%cNegative or zero mass disallowed"+i+", setting mass to 1.",p1),e.mass=1}}}class zX{constructor(e,t,i,o){var r;if(this.body=e,this.images=t,this.groups=i,this.layoutEngine=o,this.body.functions.createNode=ie(r=this.create).call(r,this),this.nodesListeners={add:(A,I)=>{this.add(I.items)},update:(A,I)=>{this.update(I.items,I.data,I.oldData)},remove:(A,I)=>{this.remove(I.items)}},this.defaultOptions={borderWidth:1,borderWidthSelected:void 0,brokenImage:void 0,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},opacity:void 0,fixed:{x:!1,y:!1},font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:0,strokeColor:"#ffffff",align:"center",vadjust:0,multi:!1,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"monospace",vadjust:2}},group:void 0,hidden:!1,icon:{face:"FontAwesome",code:void 0,size:50,color:"#2B7CE9"},image:void 0,imagePadding:{top:0,right:0,bottom:0,left:0},label:void 0,labelHighlightBold:!0,level:void 0,margin:{top:5,right:5,bottom:5,left:5},mass:1,physics:!0,scaling:{min:10,max:30,label:{enabled:!1,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(A,I,l,c){if(I===A)return .5;{const h=1/(I-A);return Math.max(0,(c-A)*h)}}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},shape:"ellipse",shapeProperties:{borderDashes:!1,borderRadius:6,interpolation:!0,useImageSize:!1,useBorderWithImage:!1,coordinateOrigin:"center"},size:25,title:void 0,value:void 0,x:void 0,y:void 0},this.defaultOptions.mass<=0)throw"Internal error: mass in defaultOptions of NodesHandler may not be zero or negative";this.options=Dg(this.defaultOptions),this.bindEventListeners()}bindEventListeners(){var e,t;this.body.emitter.on("refreshNodes",ie(e=this.refresh).call(e,this)),this.body.emitter.on("refresh",ie(t=this.refresh).call(t,this)),this.body.emitter.on("destroy",()=>{He(this.nodesListeners,(i,o)=>{this.body.data.nodes&&this.body.data.nodes.off(o,i)}),delete this.body.functions.createNode,delete this.nodesListeners.add,delete this.nodesListeners.update,delete this.nodesListeners.remove,delete this.nodesListeners})}setOptions(e){if(e!==void 0){if(Nt.parseOptions(this.options,e),e.opacity!==void 0&&(au(e.opacity)||!zo(e.opacity)||e.opacity<0||e.opacity>1?console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+e.opacity):this.options.opacity=e.opacity),e.shape!==void 0)for(const t in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,t)&&this.body.nodes[t].updateShape();if(typeof e.font<"u"||typeof e.widthConstraint<"u"||typeof e.heightConstraint<"u")for(const t of xt(this.body.nodes))this.body.nodes[t].updateLabelModule(),this.body.nodes[t].needsRefresh();if(e.size!==void 0)for(const t in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,t)&&this.body.nodes[t].needsRefresh();(e.hidden!==void 0||e.physics!==void 0)&&this.body.emitter.emit("_dataChanged")}}setData(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const i=this.body.data.nodes;if(Bw("id",e))this.body.data.nodes=e;else if(tt(e))this.body.data.nodes=new Zs,this.body.data.nodes.add(e);else if(!e)this.body.data.nodes=new Zs;else throw new TypeError("Array or DataSet expected");if(i&&He(this.nodesListeners,function(o,r){i.off(r,o)}),this.body.nodes={},this.body.data.nodes){const o=this;He(this.nodesListeners,function(A,I){o.body.data.nodes.on(I,A)});const r=this.body.data.nodes.getIds();this.add(r,!0)}t===!1&&this.body.emitter.emit("_dataChanged")}add(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i;const o=[];for(let r=0;r1&&arguments[1]!==void 0?arguments[1]:Nt;return new t(e,this.body,this.images,this.groups,this.options,this.defaultOptions)}refresh(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;He(this.body.nodes,(t,i)=>{const o=this.body.data.nodes.get(i);o!==void 0&&(e===!0&&t.setOptions({x:null,y:null}),t.setOptions({fixed:!1}),t.setOptions(o))})}getPositions(e){const t={};if(e!==void 0){if(tt(e)===!0){for(let i=0;i{this.body.emitter.emit("startSimulation")},0)):console.error("Node id supplied to moveNode does not exist. Provided: ",e)}}var kX=Re,Xw=Math.hypot,RX=Math.abs,_X=Math.sqrt,jX=!!Xw&&Xw(1/0,NaN)!==1/0;kX({target:"Math",stat:!0,forced:jX},{hypot:function(e,t){for(var i=0,o=0,r=arguments.length,A=0,I,l;o0?(l=I/A,i+=l*l):i+=I;return A===1/0?1/0:A*_X(i)}});var ZX=rt,BX=ZX.Math.hypot,PX=BX,LX=PX,GX=LX,FX=Me(GX);class Ut{static transform(e,t){tt(e)||(e=[e]);const i=t.point.x,o=t.point.y,r=t.angle,A=t.length;for(let I=0;I4&&arguments[4]!==void 0?arguments[4]:this.getViaNode();e.strokeStyle=this.getColor(e,t),e.lineWidth=t.width,t.dashes!==!1?this._drawDashedLine(e,t,r):this._drawLine(e,t,r)}_drawLine(e,t,i,o,r){if(this.from!=this.to)this._line(e,t,i,o,r);else{const[A,I,l]=this._getCircleData(e);this._circle(e,t,A,I,l)}}_drawDashedLine(e,t,i,o,r){e.lineCap="round";const A=tt(t.dashes)?t.dashes:[5,5];if(e.setLineDash!==void 0){if(e.save(),e.setLineDash(A),e.lineDashOffset=0,this.from!=this.to)this._line(e,t,i);else{const[I,l,c]=this._getCircleData(e);this._circle(e,t,I,l,c)}e.setLineDash([0]),e.lineDashOffset=0,e.restore()}else{if(this.from!=this.to)dy(e,this.from.x,this.from.y,this.to.x,this.to.y,A);else{const[I,l,c]=this._getCircleData(e);this._circle(e,t,I,l,c)}this.enableShadow(e,t),e.stroke(),this.disableShadow(e,t)}}findBorderPosition(e,t,i){return this.from!=this.to?this._findBorderPosition(e,t,i):this._findBorderPositionCircle(e,t,i)}findBorderPositions(e){if(this.from!=this.to)return{from:this._findBorderPosition(this.from,e),to:this._findBorderPosition(this.to,e)};{var t;const[i,o]=vi(t=this._getCircleData(e)).call(t,0,2);return{from:this._findBorderPositionCircle(this.from,e,{x:i,y:o,low:.25,high:.6,direction:-1}),to:this._findBorderPositionCircle(this.from,e,{x:i,y:o,low:.6,high:.8,direction:1})}}}_getCircleData(e){const t=this.options.selfReference.size;e!==void 0&&this.from.shape.width===void 0&&this.from.shape.resize(e);const i=Uw(e,this.options.selfReference.angle,t,this.from);return[i.x,i.y,t]}_pointOnCircle(e,t,i,o){const r=o*2*Math.PI;return{x:e+i*Math.cos(r),y:t-i*Math.sin(r)}}_findBorderPositionCircle(e,t,i){const o=i.x,r=i.y;let A=i.low,I=i.high;const l=i.direction,c=10,h=this.options.selfReference.size,p=.05;let m,y=(A+I)*.5,w=0;this.options.arrowStrikethrough===!0&&(l===-1?w=this.options.endPointOffset.from:l===1&&(w=this.options.endPointOffset.to));let S=0;do{y=(A+I)*.5,m=this._pointOnCircle(o,r,h,y);const x=Math.atan2(e.y-m.y,e.x-m.x),E=e.distanceToBorder(t,x)+w,N=Math.sqrt(Math.pow(m.x-e.x,2)+Math.pow(m.y-e.y,2)),P=E-N;if(Math.abs(P)0?l>0?A=y:I=y:l>0?I=y:A=y,++S}while(A<=I&&S1?h=1:h<0&&(h=0);const p=e+h*I,m=t+h*l,y=p-r,w=m-A;return Math.sqrt(y*y+w*w)}getArrowData(e,t,i,o,r,A){let I,l,c,h,p,m,y;const w=A.width;t==="from"?(c=this.from,h=this.to,p=A.fromArrowScale<0,m=Math.abs(A.fromArrowScale),y=A.fromArrowType):t==="to"?(c=this.to,h=this.from,p=A.toArrowScale<0,m=Math.abs(A.toArrowScale),y=A.toArrowType):(c=this.to,h=this.from,p=A.middleArrowScale<0,m=Math.abs(A.middleArrowScale),y=A.middleArrowType);const S=15*m+3*w;if(c!=h){const P=FX(c.x-h.x,c.y-h.y),B=S/P;if(t!=="middle")if(this.options.smooth.enabled===!0){const W=this._findBorderPosition(c,e,{via:i}),ne=this.getPoint(W.t+B*(t==="from"?1:-1),i);I=Math.atan2(W.y-ne.y,W.x-ne.x),l=W}else I=Math.atan2(c.y-h.y,c.x-h.x),l=this._findBorderPosition(c,e);else{const W=(p?-B:B)/2,ne=this.getPoint(.5+W,i),_=this.getPoint(.5-W,i);I=Math.atan2(ne.y-_.y,ne.x-_.x),l=this.getPoint(.5,i)}}else{const[P,B,W]=this._getCircleData(e);if(t==="from"){const ne=this.options.selfReference.angle,_=this.options.selfReference.angle+Math.PI,Y=this._findBorderPositionCircle(this.from,e,{x:P,y:B,low:ne,high:_,direction:-1});I=Y.t*-2*Math.PI+1.5*Math.PI+.1*Math.PI,l=Y}else if(t==="to"){const ne=this.options.selfReference.angle,_=this.options.selfReference.angle+Math.PI,Y=this._findBorderPositionCircle(this.from,e,{x:P,y:B,low:ne,high:_,direction:1});I=Y.t*-2*Math.PI+1.5*Math.PI-1.1*Math.PI,l=Y}else{const ne=this.options.selfReference.angle/(2*Math.PI);l=this._pointOnCircle(P,B,W,ne),I=ne*-2*Math.PI+1.5*Math.PI+.1*Math.PI}}const x=l.x-S*.9*Math.cos(I),E=l.y-S*.9*Math.sin(I);return{point:l,core:{x,y:E},angle:I,length:S,type:y}}drawArrowHead(e,t,i,o,r){e.strokeStyle=this.getColor(e,t),e.fillStyle=e.strokeStyle,e.lineWidth=t.width,$w.draw(e,r)&&(this.enableShadow(e,t),Ia(e).call(e),this.disableShadow(e,t))}enableShadow(e,t){t.shadow===!0&&(e.shadowColor=t.shadowColor,e.shadowBlur=t.shadowSize,e.shadowOffsetX=t.shadowX,e.shadowOffsetY=t.shadowY)}disableShadow(e,t){t.shadow===!0&&(e.shadowColor="rgba(0,0,0,0)",e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0)}drawBackground(e,t){if(t.background!==!1){const i={strokeStyle:e.strokeStyle,lineWidth:e.lineWidth,dashes:e.dashes};e.strokeStyle=t.backgroundColor,e.lineWidth=t.backgroundSize,this.setStrokeDashed(e,t.backgroundDashes),e.stroke(),e.strokeStyle=i.strokeStyle,e.lineWidth=i.lineWidth,e.dashes=i.dashes,this.setStrokeDashed(e,t.dashes)}}setStrokeDashed(e,t){if(t!==!1)if(e.setLineDash!==void 0){const i=tt(t)?t:[5,5];e.setLineDash(i)}else console.warn("setLineDash is not supported in this browser. The dashed stroke cannot be used.");else e.setLineDash!==void 0?e.setLineDash([]):console.warn("setLineDash is not supported in this browser. The dashed stroke cannot be used.")}}function tx(n,e){var t=xt(n);if(_i){var i=_i(n);e&&(i=Qt(i).call(i,function(o){return ji(n,o).enumerable})),t.push.apply(t,i)}return t}function nx(n){for(var e=1;e2&&arguments[2]!==void 0?arguments[2]:this._getViaCoordinates();const o=10,r=.2;let A=!1,I=1,l=0,c=this.to,h,p,m=this.options.endPointOffset?this.options.endPointOffset.to:0;e.id===this.from.id&&(c=this.from,A=!0,m=this.options.endPointOffset?this.options.endPointOffset.from:0),this.options.arrowStrikethrough===!1&&(m=0);let y=0;do{p=(l+I)*.5,h=this.getPoint(p,i);const w=Math.atan2(c.y-h.y,c.x-h.x),S=c.distanceToBorder(t,w)+m,x=Math.sqrt(Math.pow(h.x-c.x,2)+Math.pow(h.y-c.y,2)),E=S-x;if(Math.abs(E)0&&(c=this._getDistanceToLine(w,S,m,y,r,A),l=c{this.positionBezierNode()},this._body.emitter.on("_repositionBezierNodes",this._boundFunction)}setOptions(e){super.setOptions(e);let t=!1;this.options.physics!==e.physics&&(t=!0),this.options=e,this.id=this.options.id,this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to],this.setupSupportNode(),this.connect(),t===!0&&(this.via.setOptions({physics:this.options.physics}),this.positionBezierNode())}connect(){this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to],this.from===void 0||this.to===void 0||this.options.physics===!1?this.via.setOptions({physics:!1}):this.from.id===this.to.id?this.via.setOptions({physics:!1}):this.via.setOptions({physics:!0})}cleanup(){return this._body.emitter.off("_repositionBezierNodes",this._boundFunction),this.via!==void 0?(delete this._body.nodes[this.via.id],this.via=void 0,!0):!1}setupSupportNode(){if(this.via===void 0){const e="edgeId:"+this.id,t=this._body.functions.createNode({id:e,shape:"circle",physics:!0,hidden:!0});this._body.nodes[e]=t,this.via=t,this.via.parentEdgeId=this.id,this.positionBezierNode()}}positionBezierNode(){this.via!==void 0&&this.from!==void 0&&this.to!==void 0?(this.via.x=.5*(this.from.x+this.to.x),this.via.y=.5*(this.from.y+this.to.y)):this.via!==void 0&&(this.via.x=0,this.via.y=0)}_line(e,t,i){this._bezierCurve(e,t,i)}_getViaCoordinates(){return this.via}getViaNode(){return this.via}getPoint(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.via;if(this.from===this.to){const[i,o,r]=this._getCircleData(),A=2*Math.PI*(1-e);return{x:i+r*Math.sin(A),y:o+r-r*(1-Math.cos(A))}}else return{x:Math.pow(1-e,2)*this.fromPoint.x+2*e*(1-e)*t.x+Math.pow(e,2)*this.toPoint.x,y:Math.pow(1-e,2)*this.fromPoint.y+2*e*(1-e)*t.y+Math.pow(e,2)*this.toPoint.y}}_findBorderPosition(e,t){return this._findBorderPositionBezier(e,t,this.via)}_getDistanceToEdge(e,t,i,o,r,A){return this._getDistanceToBezierEdge(e,t,i,o,r,A,this.via)}}class gx extends Eu{constructor(e,t,i){super(e,t,i)}_line(e,t,i){this._bezierCurve(e,t,i)}getViaNode(){return this._getViaCoordinates()}_getViaCoordinates(){const e=this.options.smooth.roundness,t=this.options.smooth.type;let i=Math.abs(this.from.x-this.to.x),o=Math.abs(this.from.y-this.to.y);if(t==="discrete"||t==="diagonalCross"){let r,A;i<=o?r=A=e*o:r=A=e*i,this.from.x>this.to.x&&(r=-r),this.from.y>=this.to.y&&(A=-A);let I=this.from.x+r,l=this.from.y+A;return t==="discrete"&&(i<=o?I=ithis.to.x&&(r=-r),this.from.y>=this.to.y&&(A=-A);let I=this.from.x+r,l=this.from.y+A;return i<=o?this.from.x<=this.to.x?I=this.to.xI?this.to.x:I:this.from.y>=this.to.y?l=this.to.y>l?this.to.y:l:l=this.to.y2&&arguments[2]!==void 0?arguments[2]:{};return this._findBorderPositionBezier(e,t,i.via)}_getDistanceToEdge(e,t,i,o,r,A){let I=arguments.length>6&&arguments[6]!==void 0?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(e,t,i,o,r,A,I)}getPoint(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._getViaCoordinates();const i=e,o=Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*t.x+Math.pow(i,2)*this.toPoint.x,r=Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*t.y+Math.pow(i,2)*this.toPoint.y;return{x:o,y:r}}}class t$ extends Eu{constructor(e,t,i){super(e,t,i)}_getDistanceToBezierEdge2(e,t,i,o,r,A,I,l){let c=1e9,h=e,p=t;const m=[0,0,0,0];for(let y=1;y<10;y++){const w=.1*y;m[0]=Math.pow(1-w,3),m[1]=3*w*Math.pow(1-w,2),m[2]=3*Math.pow(w,2)*(1-w),m[3]=Math.pow(w,3);const S=m[0]*e+m[1]*I.x+m[2]*l.x+m[3]*i,x=m[0]*t+m[1]*I.y+m[2]*l.y+m[3]*o;if(y>0){const E=this._getDistanceToLine(h,p,S,x,r,A);c=EMath.abs(t)||this.options.smooth.forceDirection===!0||this.options.smooth.forceDirection==="horizontal")&&this.options.smooth.forceDirection!=="vertical"?(o=this.from.y,A=this.to.y,i=this.from.x-I*e,r=this.to.x+I*e):(o=this.from.y-I*t,A=this.to.y+I*t,i=this.from.x,r=this.to.x),[{x:i,y:o},{x:r,y:A}]}getViaNode(){return this._getViaCoordinates()}_findBorderPosition(e,t){return this._findBorderPositionBezier(e,t)}_getDistanceToEdge(e,t,i,o,r,A){let[I,l]=arguments.length>6&&arguments[6]!==void 0?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge2(e,t,i,o,r,A,I,l)}getPoint(e){let[t,i]=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._getViaCoordinates();const o=e,r=[Math.pow(1-o,3),3*o*Math.pow(1-o,2),3*Math.pow(o,2)*(1-o),Math.pow(o,3)],A=r[0]*this.fromPoint.x+r[1]*t.x+r[2]*i.x+r[3]*this.toPoint.x,I=r[0]*this.fromPoint.y+r[1]*t.y+r[2]*i.y+r[3]*this.toPoint.y;return{x:A,y:I}}}class sx extends ex{constructor(e,t,i){super(e,t,i)}_line(e,t){e.beginPath(),e.moveTo(this.fromPoint.x,this.fromPoint.y),e.lineTo(this.toPoint.x,this.toPoint.y),this.enableShadow(e,t),e.stroke(),this.disableShadow(e,t)}getViaNode(){}getPoint(e){return{x:(1-e)*this.fromPoint.x+e*this.toPoint.x,y:(1-e)*this.fromPoint.y+e*this.toPoint.y}}_findBorderPosition(e,t){let i=this.to,o=this.from;e.id===this.from.id&&(i=this.from,o=this.to);const r=Math.atan2(i.y-o.y,i.x-o.x),A=i.x-o.x,I=i.y-o.y,l=Math.sqrt(A*A+I*I),c=e.distanceToBorder(t,r),h=(l-c)/l;return{x:(1-h)*o.x+h*i.x,y:(1-h)*o.y+h*i.y,t:0}}_getDistanceToEdge(e,t,i,o,r,A){return this._getDistanceToLine(e,t,i,o,r,A)}}class jg{constructor(e,t,i,o,r){if(t===void 0)throw new Error("No body provided");this.options=Dg(o),this.globalOptions=o,this.defaultOptions=r,this.body=t,this.imagelist=i,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.selected=!1,this.hover=!1,this.labelDirty=!0,this.baseWidth=this.options.width,this.baseFontSize=this.options.font.size,this.from=void 0,this.to=void 0,this.edgeType=void 0,this.connected=!1,this.labelModule=new Bs(this.body,this.options,!0),this.setOptions(e)}setOptions(e){if(!e)return;let t=typeof e.physics<"u"&&this.options.physics!==e.physics||typeof e.hidden<"u"&&(this.options.hidden||!1)!==(e.hidden||!1)||typeof e.from<"u"&&this.options.from!==e.from||typeof e.to<"u"&&this.options.to!==e.to;jg.parseOptions(this.options,e,!0,this.globalOptions),e.id!==void 0&&(this.id=e.id),e.from!==void 0&&(this.fromId=e.from),e.to!==void 0&&(this.toId=e.to),e.title!==void 0&&(this.title=e.title),e.value!==void 0&&(e.value=Vw(e.value));const i=[e,this.options,this.defaultOptions];return this.chooser=bu("edge",i),this.updateLabelModule(e),t=this.updateEdgeType()||t,this._setInteractionWidths(),this.connect(),t}static parseOptions(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;if(Ds(["endPointOffset","arrowStrikethrough","id","from","hidden","hoverWidth","labelHighlightBold","length","line","opacity","physics","scaling","selectionWidth","selfReferenceSize","selfReference","to","title","value","width","font","chosen","widthConstraint"],e,t,i),t.endPointOffset!==void 0&&t.endPointOffset.from!==void 0&&(zo(t.endPointOffset.from)?e.endPointOffset.from=t.endPointOffset.from:(e.endPointOffset.from=o.endPointOffset.from!==void 0?o.endPointOffset.from:0,console.error("endPointOffset.from is not a valid number"))),t.endPointOffset!==void 0&&t.endPointOffset.to!==void 0&&(zo(t.endPointOffset.to)?e.endPointOffset.to=t.endPointOffset.to:(e.endPointOffset.to=o.endPointOffset.to!==void 0?o.endPointOffset.to:0,console.error("endPointOffset.to is not a valid number"))),XC(t.label)?e.label=t.label:XC(e.label)||(e.label=void 0),ii(e,t,"smooth",o),ii(e,t,"shadow",o),ii(e,t,"background",o),t.dashes!==void 0&&t.dashes!==null?e.dashes=t.dashes:i===!0&&t.dashes===null&&(e.dashes=Tg(o.dashes)),t.scaling!==void 0&&t.scaling!==null?(t.scaling.min!==void 0&&(e.scaling.min=t.scaling.min),t.scaling.max!==void 0&&(e.scaling.max=t.scaling.max),ii(e.scaling,t.scaling,"label",o.scaling)):i===!0&&t.scaling===null&&(e.scaling=Tg(o.scaling)),t.arrows!==void 0&&t.arrows!==null)if(typeof t.arrows=="string"){const I=t.arrows.toLowerCase();e.arrows.to.enabled=Ct(I).call(I,"to")!=-1,e.arrows.middle.enabled=Ct(I).call(I,"middle")!=-1,e.arrows.from.enabled=Ct(I).call(I,"from")!=-1}else if(typeof t.arrows=="object")ii(e.arrows,t.arrows,"to",o.arrows),ii(e.arrows,t.arrows,"middle",o.arrows),ii(e.arrows,t.arrows,"from",o.arrows);else throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+bs(t.arrows));else i===!0&&t.arrows===null&&(e.arrows=Tg(o.arrows));if(t.color!==void 0&&t.color!==null){const I=Ns(t.color)?{color:t.color,highlight:t.color,hover:t.color,inherit:!1,opacity:1}:t.color,l=e.color;if(r)yt(l,o.color,!1,i);else for(const c in l)Object.prototype.hasOwnProperty.call(l,c)&&delete l[c];if(Ns(l))l.color=l,l.highlight=l,l.hover=l,l.inherit=!1,I.opacity===void 0&&(l.opacity=1);else{let c=!1;I.color!==void 0&&(l.color=I.color,c=!0),I.highlight!==void 0&&(l.highlight=I.highlight,c=!0),I.hover!==void 0&&(l.hover=I.hover,c=!0),I.inherit!==void 0&&(l.inherit=I.inherit),I.opacity!==void 0&&(l.opacity=Math.min(1,Math.max(0,I.opacity))),c===!0?l.inherit=!1:l.inherit===void 0&&(l.inherit="from")}}else i===!0&&t.color===null&&(e.color=Dg(o.color));i===!0&&t.font===null&&(e.font=Dg(o.font)),Object.prototype.hasOwnProperty.call(t,"selfReferenceSize")&&(console.warn("The selfReferenceSize property has been deprecated. Please use selfReference property instead. The selfReference can be set like thise selfReference:{size:30, angle:Math.PI / 4}"),e.selfReference.size=t.selfReferenceSize)}getFormattingValues(){const e=this.options.arrows.to===!0||this.options.arrows.to.enabled===!0,t=this.options.arrows.from===!0||this.options.arrows.from.enabled===!0,i=this.options.arrows.middle===!0||this.options.arrows.middle.enabled===!0,o=this.options.color.inherit,r={toArrow:e,toArrowScale:this.options.arrows.to.scaleFactor,toArrowType:this.options.arrows.to.type,toArrowSrc:this.options.arrows.to.src,toArrowImageWidth:this.options.arrows.to.imageWidth,toArrowImageHeight:this.options.arrows.to.imageHeight,middleArrow:i,middleArrowScale:this.options.arrows.middle.scaleFactor,middleArrowType:this.options.arrows.middle.type,middleArrowSrc:this.options.arrows.middle.src,middleArrowImageWidth:this.options.arrows.middle.imageWidth,middleArrowImageHeight:this.options.arrows.middle.imageHeight,fromArrow:t,fromArrowScale:this.options.arrows.from.scaleFactor,fromArrowType:this.options.arrows.from.type,fromArrowSrc:this.options.arrows.from.src,fromArrowImageWidth:this.options.arrows.from.imageWidth,fromArrowImageHeight:this.options.arrows.from.imageHeight,arrowStrikethrough:this.options.arrowStrikethrough,color:o?void 0:this.options.color.color,inheritsColor:o,opacity:this.options.color.opacity,hidden:this.options.hidden,length:this.options.length,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y,dashes:this.options.dashes,width:this.options.width,background:this.options.background.enabled,backgroundColor:this.options.background.color,backgroundSize:this.options.background.size,backgroundDashes:this.options.background.dashes};if(this.selected||this.hover)if(this.chooser===!0){if(this.selected){const A=this.options.selectionWidth;typeof A=="function"?r.width=A(r.width):typeof A=="number"&&(r.width+=A),r.width=Math.max(r.width,.3/this.body.view.scale),r.color=this.options.color.highlight,r.shadow=this.options.shadow.enabled}else if(this.hover){const A=this.options.hoverWidth;typeof A=="function"?r.width=A(r.width):typeof A=="number"&&(r.width+=A),r.width=Math.max(r.width,.3/this.body.view.scale),r.color=this.options.color.hover,r.shadow=this.options.shadow.enabled}}else typeof this.chooser=="function"&&(this.chooser(r,this.options.id,this.selected,this.hover),r.color!==void 0&&(r.inheritsColor=!1),r.shadow===!1&&(r.shadowColor!==this.options.shadow.color||r.shadowSize!==this.options.shadow.size||r.shadowX!==this.options.shadow.x||r.shadowY!==this.options.shadow.y)&&(r.shadow=!0));else r.shadow=this.options.shadow.enabled,r.width=Math.max(r.width,.3/this.body.view.scale);return r}updateLabelModule(e){const t=[e,this.options,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,t),this.labelModule.baseSize!==void 0&&(this.baseFontSize=this.labelModule.baseSize)}updateEdgeType(){const e=this.options.smooth;let t=!1,i=!0;return this.edgeType!==void 0&&((this.edgeType instanceof ix&&e.enabled===!0&&e.type==="dynamic"||this.edgeType instanceof ox&&e.enabled===!0&&e.type==="cubicBezier"||this.edgeType instanceof gx&&e.enabled===!0&&e.type!=="dynamic"&&e.type!=="cubicBezier"||this.edgeType instanceof sx&&e.type.enabled===!1)&&(i=!1),i===!0&&(t=this.cleanup())),i===!0?e.enabled===!0?e.type==="dynamic"?(t=!0,this.edgeType=new ix(this.options,this.body,this.labelModule)):e.type==="cubicBezier"?this.edgeType=new ox(this.options,this.body,this.labelModule):this.edgeType=new gx(this.options,this.body,this.labelModule):this.edgeType=new sx(this.options,this.body,this.labelModule):this.edgeType.setOptions(this.options),t}connect(){this.disconnect(),this.from=this.body.nodes[this.fromId]||void 0,this.to=this.body.nodes[this.toId]||void 0,this.connected=this.from!==void 0&&this.to!==void 0,this.connected===!0?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this)),this.edgeType.connect()}disconnect(){this.from&&(this.from.detachEdge(this),this.from=void 0),this.to&&(this.to.detachEdge(this),this.to=void 0),this.connected=!1}getTitle(){return this.title}isSelected(){return this.selected}getValue(){return this.options.value}setValueRange(e,t,i){if(this.options.value!==void 0){const o=this.options.scaling.customScalingFunction(e,t,i,this.options.value),r=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===!0){const A=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+o*A}this.options.width=this.options.scaling.min+o*r}else this.options.width=this.baseWidth,this.options.font.size=this.baseFontSize;this._setInteractionWidths(),this.updateLabelModule()}_setInteractionWidths(){typeof this.options.hoverWidth=="function"?this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width):this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width,typeof this.options.selectionWidth=="function"?this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width):this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}draw(e){const t=this.getFormattingValues();if(t.hidden)return;const i=this.edgeType.getViaNode();this.edgeType.drawLine(e,t,this.selected,this.hover,i),this.drawLabel(e,i)}drawArrows(e){const t=this.getFormattingValues();if(t.hidden)return;const i=this.edgeType.getViaNode(),o={};this.edgeType.fromPoint=this.edgeType.from,this.edgeType.toPoint=this.edgeType.to,t.fromArrow&&(o.from=this.edgeType.getArrowData(e,"from",i,this.selected,this.hover,t),t.arrowStrikethrough===!1&&(this.edgeType.fromPoint=o.from.core),t.fromArrowSrc&&(o.from.image=this.imagelist.load(t.fromArrowSrc)),t.fromArrowImageWidth&&(o.from.imageWidth=t.fromArrowImageWidth),t.fromArrowImageHeight&&(o.from.imageHeight=t.fromArrowImageHeight)),t.toArrow&&(o.to=this.edgeType.getArrowData(e,"to",i,this.selected,this.hover,t),t.arrowStrikethrough===!1&&(this.edgeType.toPoint=o.to.core),t.toArrowSrc&&(o.to.image=this.imagelist.load(t.toArrowSrc)),t.toArrowImageWidth&&(o.to.imageWidth=t.toArrowImageWidth),t.toArrowImageHeight&&(o.to.imageHeight=t.toArrowImageHeight)),t.middleArrow&&(o.middle=this.edgeType.getArrowData(e,"middle",i,this.selected,this.hover,t),t.middleArrowSrc&&(o.middle.image=this.imagelist.load(t.middleArrowSrc)),t.middleArrowImageWidth&&(o.middle.imageWidth=t.middleArrowImageWidth),t.middleArrowImageHeight&&(o.middle.imageHeight=t.middleArrowImageHeight)),t.fromArrow&&this.edgeType.drawArrowHead(e,t,this.selected,this.hover,o.from),t.middleArrow&&this.edgeType.drawArrowHead(e,t,this.selected,this.hover,o.middle),t.toArrow&&this.edgeType.drawArrowHead(e,t,this.selected,this.hover,o.to)}drawLabel(e,t){if(this.options.label!==void 0){const i=this.from,o=this.to;this.labelModule.differentState(this.selected,this.hover)&&this.labelModule.getTextSize(e,this.selected,this.hover);let r;if(i.id!=o.id){this.labelModule.pointToSelf=!1,r=this.edgeType.getPoint(.5,t),e.save();const A=this._getRotation(e);A.angle!=0&&(e.translate(A.x,A.y),e.rotate(A.angle)),this.labelModule.draw(e,r.x,r.y,this.selected,this.hover),e.restore()}else{this.labelModule.pointToSelf=!0;const A=Uw(e,this.options.selfReference.angle,this.options.selfReference.size,i);r=this._pointOnCircle(A.x,A.y,this.options.selfReference.size,this.options.selfReference.angle),this.labelModule.draw(e,r.x,r.y,this.selected,this.hover)}}}getItemsOnPoint(e){const t=[];if(this.labelModule.visible()){const o=this._getRotation();wu(this.labelModule.getSize(),e,o)&&t.push({edgeId:this.id,labelId:0})}const i={left:e.x,top:e.y};return this.isOverlappingWith(i)&&t.push({edgeId:this.id}),t}isOverlappingWith(e){if(this.connected){const i=this.from.x,o=this.from.y,r=this.to.x,A=this.to.y,I=e.left,l=e.top;return this.edgeType.getDistanceToEdge(i,o,r,A,I,l)<10}else return!1}_getRotation(e){const t=this.edgeType.getViaNode(),i=this.edgeType.getPoint(.5,t);e!==void 0&&this.labelModule.calculateLabelSize(e,this.selected,this.hover,i.x,i.y);const o={x:i.x,y:this.labelModule.size.yLine,angle:0};if(!this.labelModule.visible()||this.options.font.align==="horizontal")return o;const r=this.from.y-this.to.y,A=this.from.x-this.to.x;let I=Math.atan2(r,A);return(I<-1&&A<0||I>0&&A<0)&&(I+=Math.PI),o.angle=I,o}_pointOnCircle(e,t,i,o){return{x:e+i*Math.cos(o),y:t-i*Math.sin(o)}}select(){this.selected=!0}unselect(){this.selected=!1}cleanup(){return this.edgeType.cleanup()}remove(){this.cleanup(),this.disconnect(),delete this.body.edges[this.id]}endPointsValid(){return this.body.nodes[this.fromId]!==void 0&&this.body.nodes[this.toId]!==void 0}}class n${constructor(e,t,i){var o;this.body=e,this.images=t,this.groups=i,this.body.functions.createEdge=ie(o=this.create).call(o,this),this.edgesListeners={add:(r,A)=>{this.add(A.items)},update:(r,A)=>{this.update(A.items)},remove:(r,A)=>{this.remove(A.items)}},this.options={},this.defaultOptions={arrows:{to:{enabled:!1,scaleFactor:1,type:"arrow"},middle:{enabled:!1,scaleFactor:1,type:"arrow"},from:{enabled:!1,scaleFactor:1,type:"arrow"}},endPointOffset:{from:0,to:0},arrowStrikethrough:!0,color:{color:"#848484",highlight:"#848484",hover:"#848484",inherit:"from",opacity:1},dashes:!1,font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:2,strokeColor:"#ffffff",align:"horizontal",multi:!1,vadjust:0,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"courier new",vadjust:2}},hidden:!1,hoverWidth:1.5,label:void 0,labelHighlightBold:!0,length:void 0,physics:!0,scaling:{min:1,max:15,label:{enabled:!0,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(r,A,I,l){if(A===r)return .5;{const c=1/(A-r);return Math.max(0,(l-r)*c)}}},selectionWidth:1.5,selfReference:{size:20,angle:Math.PI/4,renderBehindTheNode:!0},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},background:{enabled:!1,color:"rgba(111,111,111,1)",size:10,dashes:!1},smooth:{enabled:!0,type:"dynamic",forceDirection:"none",roundness:.5},title:void 0,width:1,value:void 0},yt(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){var e=this,t,i;this.body.emitter.on("_forceDisableDynamicCurves",function(o){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;o==="dynamic"&&(o="continuous");let A=!1;for(const I in e.body.edges)if(Object.prototype.hasOwnProperty.call(e.body.edges,I)){const l=e.body.edges[I],c=e.body.data.edges.get(I);if(c!=null){const h=c.smooth;h!==void 0&&h.enabled===!0&&h.type==="dynamic"&&(o===void 0?l.setOptions({smooth:!1}):l.setOptions({smooth:{type:o}}),A=!0)}}r===!0&&A===!0&&e.body.emitter.emit("_dataChanged")}),this.body.emitter.on("_dataUpdated",()=>{this.reconnectEdges()}),this.body.emitter.on("refreshEdges",ie(t=this.refresh).call(t,this)),this.body.emitter.on("refresh",ie(i=this.refresh).call(i,this)),this.body.emitter.on("destroy",()=>{He(this.edgesListeners,(o,r)=>{this.body.data.edges&&this.body.data.edges.off(r,o)}),delete this.body.functions.createEdge,delete this.edgesListeners.add,delete this.edgesListeners.update,delete this.edgesListeners.remove,delete this.edgesListeners})}setOptions(e){if(e!==void 0){jg.parseOptions(this.options,e,!0,this.defaultOptions,!0);let t=!1;if(e.smooth!==void 0)for(const i in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,i)&&(t=this.body.edges[i].updateEdgeType()||t);if(e.font!==void 0)for(const i in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,i)&&this.body.edges[i].updateLabelModule();(e.hidden!==void 0||e.physics!==void 0||t===!0)&&this.body.emitter.emit("_dataChanged")}}setData(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const i=this.body.data.edges;if(Bw("id",e))this.body.data.edges=e;else if(tt(e))this.body.data.edges=new Zs,this.body.data.edges.add(e);else if(!e)this.body.data.edges=new Zs;else throw new TypeError("Array or DataSet expected");if(i&&He(this.edgesListeners,(o,r)=>{i.off(r,o)}),this.body.edges={},this.body.data.edges){He(this.edgesListeners,(r,A)=>{this.body.data.edges.on(A,r)});const o=this.body.data.edges.getIds();this.add(o,!0)}this.body.emitter.emit("_adjustEdgesForHierarchicalLayout"),t===!1&&this.body.emitter.emit("_dataChanged")}add(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const i=this.body.edges,o=this.body.data.edges;for(let r=0;r1&&arguments[1]!==void 0?arguments[1]:!0;if(e.length===0)return;const i=this.body.edges;He(e,o=>{const r=i[o];r!==void 0&&r.remove()}),t&&this.body.emitter.emit("_dataChanged")}refresh(){He(this.body.edges,(e,t)=>{const i=this.body.data.edges.get(t);i!==void 0&&e.setOptions(i)})}create(e){return new jg(e,this.body,this.images,this.options,this.defaultOptions)}reconnectEdges(){let e;const t=this.body.nodes,i=this.body.edges;for(e in t)Object.prototype.hasOwnProperty.call(t,e)&&(t[e].edges=[]);for(e in i)if(Object.prototype.hasOwnProperty.call(i,e)){const o=i[e];o.from=null,o.to=null,o.connect()}}getConnectedNodes(e){const t=[];if(this.body.edges[e]!==void 0){const i=this.body.edges[e];i.fromId!==void 0&&t.push(i.fromId),i.toId!==void 0&&t.push(i.toId)}return t}_updateState(){this._addMissingEdges(),this._removeInvalidEdges()}_removeInvalidEdges(){const e=[];He(this.body.edges,(t,i)=>{const o=this.body.nodes[t.toId],r=this.body.nodes[t.fromId];o!==void 0&&o.isCluster===!0||r!==void 0&&r.isCluster===!0||(o===void 0||r===void 0)&&e.push(i)}),this.remove(e,!1)}_addMissingEdges(){const e=this.body.data.edges;if(e==null)return;const t=this.body.edges,i=[];Je(e).call(e,(o,r)=>{t[r]===void 0&&i.push(r)}),this.add(i,!0)}}class rx{constructor(e,t,i){this.body=e,this.physicsBody=t,this.barnesHutTree,this.setOptions(i),this._rng=jC("BARNES HUT SOLVER")}setOptions(e){this.options=e,this.thetaInversed=1/this.options.theta,this.overlapAvoidanceFactor=1-Math.max(0,Math.min(1,this.options.avoidOverlap))}solve(){if(this.options.gravitationalConstant!==0&&this.physicsBody.physicsNodeIndices.length>0){let e;const t=this.body.nodes,i=this.physicsBody.physicsNodeIndices,o=i.length,r=this._formBarnesHutTree(t,i);this.barnesHutTree=r;for(let A=0;A0&&this._getForceContributions(r.root,e)}}_getForceContributions(e,t){this._getForceContribution(e.children.NW,t),this._getForceContribution(e.children.NE,t),this._getForceContribution(e.children.SW,t),this._getForceContribution(e.children.SE,t)}_getForceContribution(e,t){if(e.childrenCount>0){const i=e.centerOfMass.x-t.x,o=e.centerOfMass.y-t.y,r=Math.sqrt(i*i+o*o);r*e.calcSize>this.thetaInversed?this._calculateForces(r,i,o,t,e):e.childrenCount===4?this._getForceContributions(e,t):e.children.data.id!=t.id&&this._calculateForces(r,i,o,t,e)}}_calculateForces(e,t,i,o,r){e===0&&(e=.1,t=e),this.overlapAvoidanceFactor<1&&o.shape.radius&&(e=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,e-o.shape.radius));const A=this.options.gravitationalConstant*r.mass*o.options.mass/Math.pow(e,3),I=t*A,l=i*A;this.physicsBody.forces[o.id].x+=I,this.physicsBody.forces[o.id].y+=l}_formBarnesHutTree(e,t){let i;const o=t.length;let r=e[t[0]].x,A=e[t[0]].y,I=e[t[0]].x,l=e[t[0]].y;for(let x=1;x0&&(NI&&(I=N),Pl&&(l=P))}const c=Math.abs(I-r)-Math.abs(l-A);c>0?(A-=.5*c,l+=.5*c):(r+=.5*c,I-=.5*c);const p=Math.max(1e-5,Math.abs(I-r)),m=.5*p,y=.5*(r+I),w=.5*(A+l),S={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:y-m,maxX:y+m,minY:w-m,maxY:w+m},size:p,calcSize:1/p,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(S.root);for(let x=0;x0&&this._placeInTree(S.root,i);return S}_updateBranchMass(e,t){const i=e.centerOfMass,o=e.mass+t.options.mass,r=1/o;i.x=i.x*e.mass+t.x*t.options.mass,i.x*=r,i.y=i.y*e.mass+t.y*t.options.mass,i.y*=r,e.mass=o;const A=Math.max(Math.max(t.height,t.radius),t.width);e.maxWidth=e.maxWidtht.x?o.maxY>t.y?r="NW":r="SW":o.maxY>t.y?r="NE":r="SE",this._placeInRegion(e,t,r)}_placeInRegion(e,t,i){const o=e.children[i];switch(o.childrenCount){case 0:o.children.data=t,o.childrenCount=1,this._updateBranchMass(o,t);break;case 1:o.children.data.x===t.x&&o.children.data.y===t.y?(t.x+=this._rng(),t.y+=this._rng()):(this._splitBranch(o),this._placeInTree(o,t));break;case 4:this._placeInTree(o,t);break}}_splitBranch(e){let t=null;e.childrenCount===1&&(t=e.children.data,e.mass=0,e.centerOfMass.x=0,e.centerOfMass.y=0),e.childrenCount=4,e.children.data=null,this._insertRegion(e,"NW"),this._insertRegion(e,"NE"),this._insertRegion(e,"SW"),this._insertRegion(e,"SE"),t!=null&&this._placeInTree(e,t)}_insertRegion(e,t){let i,o,r,A;const I=.5*e.size;switch(t){case"NW":i=e.range.minX,o=e.range.minX+I,r=e.range.minY,A=e.range.minY+I;break;case"NE":i=e.range.minX+I,o=e.range.maxX,r=e.range.minY,A=e.range.minY+I;break;case"SW":i=e.range.minX,o=e.range.minX+I,r=e.range.minY+I,A=e.range.maxY;break;case"SE":i=e.range.minX+I,o=e.range.maxX,r=e.range.minY+I,A=e.range.maxY;break}e.children[t]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:o,minY:r,maxY:A},size:.5*e.size,calcSize:2*e.calcSize,children:{data:null},maxWidth:0,level:e.level+1,childrenCount:0}}_debug(e,t){this.barnesHutTree!==void 0&&(e.lineWidth=1,this._drawBranch(this.barnesHutTree.root,e,t))}_drawBranch(e,t,i){i===void 0&&(i="#FF0000"),e.childrenCount===4&&(this._drawBranch(e.children.NW,t),this._drawBranch(e.children.NE,t),this._drawBranch(e.children.SE,t),this._drawBranch(e.children.SW,t)),t.strokeStyle=i,t.beginPath(),t.moveTo(e.range.minX,e.range.minY),t.lineTo(e.range.maxX,e.range.minY),t.stroke(),t.beginPath(),t.moveTo(e.range.maxX,e.range.minY),t.lineTo(e.range.maxX,e.range.maxY),t.stroke(),t.beginPath(),t.moveTo(e.range.maxX,e.range.maxY),t.lineTo(e.range.minX,e.range.maxY),t.stroke(),t.beginPath(),t.moveTo(e.range.minX,e.range.maxY),t.lineTo(e.range.minX,e.range.minY),t.stroke()}}class i${constructor(e,t,i){this._rng=jC("REPULSION SOLVER"),this.body=e,this.physicsBody=t,this.setOptions(i)}setOptions(e){this.options=e}solve(){let e,t,i,o,r,A,I,l;const c=this.body.nodes,h=this.physicsBody.physicsNodeIndices,p=this.physicsBody.forces,m=this.options.nodeDistance,y=-2/3/m,w=4/3;for(let S=0;S0){const A=r.edges.length+1,I=this.options.centralGravity*A*r.options.mass;o[r.id].x=t*I,o[r.id].y=i*I}}}class a${constructor(e){this.body=e,this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}},this.physicsEnabled=!0,this.simulationInterval=1e3/60,this.requiresTimeout=!0,this.previousStates={},this.referenceState={},this.freezeCache={},this.renderTimer=void 0,this.adaptiveTimestep=!1,this.adaptiveTimestepEnabled=!1,this.adaptiveCounter=0,this.adaptiveInterval=3,this.stabilized=!1,this.startedStabilization=!1,this.stabilizationIterations=0,this.ready=!1,this.options={},this.defaultOptions={enabled:!0,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:"barnesHut",stabilization:{enabled:!0,iterations:1e3,updateInterval:50,onlyDynamicEdges:!1,fit:!0},timestep:.5,adaptiveTimestep:!0,wind:{x:0,y:0}},Vt(this.options,this.defaultOptions),this.timestep=.5,this.layoutFailed=!1,this.bindEventListeners()}bindEventListeners(){this.body.emitter.on("initPhysics",()=>{this.initPhysics()}),this.body.emitter.on("_layoutFailed",()=>{this.layoutFailed=!0}),this.body.emitter.on("resetPhysics",()=>{this.stopSimulation(),this.ready=!1}),this.body.emitter.on("disablePhysics",()=>{this.physicsEnabled=!1,this.stopSimulation()}),this.body.emitter.on("restorePhysics",()=>{this.setOptions(this.options),this.ready===!0&&this.startSimulation()}),this.body.emitter.on("startSimulation",()=>{this.ready===!0&&this.startSimulation()}),this.body.emitter.on("stopSimulation",()=>{this.stopSimulation()}),this.body.emitter.on("destroy",()=>{this.stopSimulation(!1),this.body.emitter.off()}),this.body.emitter.on("_dataChanged",()=>{this.updatePhysicsData()})}setOptions(e){if(e!==void 0)if(e===!1)this.options.enabled=!1,this.physicsEnabled=!1,this.stopSimulation();else if(e===!0)this.options.enabled=!0,this.physicsEnabled=!0,this.startSimulation();else{this.physicsEnabled=!0,ZC(["stabilization"],this.options,e),ii(this.options,e,"stabilization"),e.enabled===void 0&&(this.options.enabled=!0),this.options.enabled===!1&&(this.physicsEnabled=!1,this.stopSimulation());const t=this.options.wind;t&&((typeof t.x!="number"||au(t.x))&&(t.x=0),(typeof t.y!="number"||au(t.y))&&(t.y=0)),this.timestep=this.options.timestep}this.init()}init(){let e;this.options.solver==="forceAtlas2Based"?(e=this.options.forceAtlas2Based,this.nodesSolver=new s$(this.body,this.physicsBody,e),this.edgesSolver=new Su(this.body,this.physicsBody,e),this.gravitySolver=new r$(this.body,this.physicsBody,e)):this.options.solver==="repulsion"?(e=this.options.repulsion,this.nodesSolver=new i$(this.body,this.physicsBody,e),this.edgesSolver=new Su(this.body,this.physicsBody,e),this.gravitySolver=new $C(this.body,this.physicsBody,e)):this.options.solver==="hierarchicalRepulsion"?(e=this.options.hierarchicalRepulsion,this.nodesSolver=new g$(this.body,this.physicsBody,e),this.edgesSolver=new o$(this.body,this.physicsBody,e),this.gravitySolver=new $C(this.body,this.physicsBody,e)):(e=this.options.barnesHut,this.nodesSolver=new rx(this.body,this.physicsBody,e),this.edgesSolver=new Su(this.body,this.physicsBody,e),this.gravitySolver=new $C(this.body,this.physicsBody,e)),this.modelOptions=e}initPhysics(){this.physicsEnabled===!0&&this.options.enabled===!0?this.options.stabilization.enabled===!0?this.stabilize():(this.stabilized=!1,this.ready=!0,this.body.emitter.emit("fit",{},this.layoutFailed),this.startSimulation()):(this.ready=!0,this.body.emitter.emit("fit"))}startSimulation(){if(this.physicsEnabled===!0&&this.options.enabled===!0){if(this.stabilized=!1,this.adaptiveTimestep=!1,this.body.emitter.emit("_resizeNodes"),this.viewFunction===void 0){var e;this.viewFunction=ie(e=this.simulationStep).call(e,this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering")}}else this.body.emitter.emit("_redraw")}stopSimulation(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.stabilized=!0,e===!0&&this._emitStabilized(),this.viewFunction!==void 0&&(this.body.emitter.off("initRedraw",this.viewFunction),this.viewFunction=void 0,e===!0&&this.body.emitter.emit("_stopRendering"))}simulationStep(){const e=EC();this.physicsTick(),(EC()-e<.4*this.simulationInterval||this.runDoubleSpeed===!0)&&this.stabilized===!1&&(this.physicsTick(),this.runDoubleSpeed=!0),this.stabilized===!0&&this.stopSimulation()}_emitStabilized(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.stabilizationIterations;(this.stabilizationIterations>1||this.startedStabilization===!0)&&Mi(()=>{this.body.emitter.emit("stabilized",{iterations:e}),this.startedStabilization=!1,this.stabilizationIterations=0},0)}physicsStep(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve(),this.moveNodes()}adjustTimeStep(){this._evaluateStepQuality()===!0?this.timestep=1.2*this.timestep:this.timestep/1.2A))return!1;return!0}moveNodes(){const e=this.physicsBody.physicsNodeIndices;let t=0,i=0;const o=5;for(let r=0;rA&&(e=e>0?A:-A),e}_performStep(e){const t=this.body.nodes[e],i=this.physicsBody.forces[e];this.options.wind&&(i.x+=this.options.wind.x,i.y+=this.options.wind.y);const o=this.physicsBody.velocities[e];return this.previousStates[e]={x:t.x,y:t.y,vx:o.x,vy:o.y},t.options.fixed.x===!1?(o.x=this.calculateComponentVelocity(o.x,i.x,t.options.mass),t.x+=o.x*this.timestep):(i.x=0,o.x=0),t.options.fixed.y===!1?(o.y=this.calculateComponentVelocity(o.y,i.y,t.options.mass),t.y+=o.y*this.timestep):(i.y=0,o.y=0),Math.sqrt(Math.pow(o.x,2)+Math.pow(o.y,2))}_freezeNodes(){const e=this.body.nodes;for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&e[t].x&&e[t].y){const i=e[t].options.fixed;this.freezeCache[t]={x:i.x,y:i.y},i.x=!0,i.y=!0}}_restoreFrozenNodes(){const e=this.body.nodes;for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&this.freezeCache[t]!==void 0&&(e[t].options.fixed.x=this.freezeCache[t].x,e[t].options.fixed.y=this.freezeCache[t].y);this.freezeCache={}}stabilize(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.stabilization.iterations;if(typeof e!="number"&&(e=this.options.stabilization.iterations,console.error("The stabilize method needs a numeric amount of iterations. Switching to default: ",e)),this.physicsBody.physicsNodeIndices.length===0){this.ready=!0;return}this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit("_resizeNodes"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedraw"),this.targetIterations=e,this.options.stabilization.onlyDynamicEdges===!0&&this._freezeNodes(),this.stabilizationIterations=0,Mi(()=>this._stabilizationBatch(),0)}_startStabilizing(){return this.startedStabilization===!0?!1:(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0,!0)}_stabilizationBatch(){const e=()=>this.stabilized===!1&&this.stabilizationIterations{this.body.emitter.emit("stabilizationProgress",{iterations:this.stabilizationIterations,total:this.targetIterations})};this._startStabilizing()&&t();let i=0;for(;e()&&i1&&arguments[1]!==void 0?arguments[1]:[],i=1e9,o=-1e9,r=1e9,A=-1e9,I;if(t.length>0)for(let l=0;lI.shape.boundingBox.left&&(r=I.shape.boundingBox.left),AI.shape.boundingBox.top&&(i=I.shape.boundingBox.top),o1&&arguments[1]!==void 0?arguments[1]:[],i=1e9,o=-1e9,r=1e9,A=-1e9,I;if(t.length>0)for(let l=0;lI.x&&(r=I.x),AI.y&&(i=I.y),o{delete this.containedEdges[i.id]}),He(t.containedNodes,(i,o)=>{this.containedNodes[o]=i}),t.containedNodes={},He(t.containedEdges,(i,o)=>{this.containedEdges[o]=i}),t.containedEdges={},He(t.edges,i=>{He(this.edges,o=>{var r,A;const I=Ct(r=o.clusteringEdgeReplacingIds).call(r,i.id);I!==-1&&(He(i.clusteringEdgeReplacingIds,l=>{o.clusteringEdgeReplacingIds.push(l),this.body.edges[l].edgeReplacedById=o.id}),Di(A=o.clusteringEdgeReplacingIds).call(A,I,1))})}),t.edges=[]}}class C${constructor(e){this.body=e,this.clusteredNodes={},this.clusteredEdges={},this.options={},this.defaultOptions={},Vt(this.options,this.defaultOptions),this.body.emitter.on("_resetData",()=>{this.clusteredNodes={},this.clusteredEdges={}})}clusterByHubsize(e,t){e===void 0?e=this._getHubSize():typeof e=="object"&&(t=this._checkOptions(e),e=this._getHubSize());const i=[];for(let o=0;o=e&&i.push(r.id)}for(let o=0;o0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(e.joinCondition===void 0)throw new Error("Cannot call clusterByNodeData without a joinCondition function in the options.");e=this._checkOptions(e);const i={},o={};He(this.body.nodes,(r,A)=>{r.options&&e.joinCondition(r.options)===!0&&(i[A]=r,He(r.edges,I=>{this.clusteredEdges[I.id]===void 0&&(o[I.id]=I)}))}),this._cluster(i,o,e,t)}clusterByEdgeCount(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;t=this._checkOptions(t);const o=[],r={};let A,I,l;for(let c=0;c0&&xt(p).length>0&&S===!0){const E=function(){for(let N=0;N1&&arguments[1]!==void 0?arguments[1]:!0;this.clusterByEdgeCount(1,e,t)}clusterBridges(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;this.clusterByEdgeCount(2,e,t)}clusterByConnection(e,t){var i;let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0)throw new Error("No nodeId supplied to clusterByConnection!");if(this.body.nodes[e]===void 0)throw new Error("The nodeId given to clusterByConnection does not exist!");const r=this.body.nodes[e];t=this._checkOptions(t,r),t.clusterNodeProperties.x===void 0&&(t.clusterNodeProperties.x=r.x),t.clusterNodeProperties.y===void 0&&(t.clusterNodeProperties.y=r.y),t.clusterNodeProperties.fixed===void 0&&(t.clusterNodeProperties.fixed={},t.clusterNodeProperties.fixed.x=r.options.fixed.x,t.clusterNodeProperties.fixed.y=r.options.fixed.y);const A={},I={},l=r.id,c=Sn.cloneOptions(r);A[l]=r;for(let p=0;p-1&&(I[w.id]=w)}}this._cluster(A,I,t,o)}_createClusterEdges(e,t,i,o){let r,A,I,l,c,h;const p=xt(e),m=[];for(let S=0;S0&&arguments[0]!==void 0?arguments[0]:{};return e.clusterEdgeProperties===void 0&&(e.clusterEdgeProperties={}),e.clusterNodeProperties===void 0&&(e.clusterNodeProperties={}),e}_cluster(e,t,i){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;const r=[];for(const h in e)Object.prototype.hasOwnProperty.call(e,h)&&this.clusteredNodes[h]!==void 0&&r.push(h);for(let h=0;ho?I.x:o,r=I.yA?I.y:A;return{x:.5*(i+o),y:.5*(r+A)}}openCluster(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0)throw new Error("No clusterNodeId supplied to openCluster.");const o=this.body.nodes[e];if(o===void 0)throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(o.isCluster!==!0||o.containedNodes===void 0||o.containedEdges===void 0)throw new Error("The node:"+e+" is not a valid cluster.");const r=this.findNode(e),A=Ct(r).call(r,e)-1;if(A>=0){const h=r[A];this.body.nodes[h]._openChildCluster(e),delete this.body.nodes[e],i===!0&&this.body.emitter.emit("_dataChanged");return}const I=o.containedNodes,l=o.containedEdges;if(t!==void 0&&t.releaseFunction!==void 0&&typeof t.releaseFunction=="function"){const h={},p={x:o.x,y:o.y};for(const y in I)if(Object.prototype.hasOwnProperty.call(I,y)){const w=this.body.nodes[y];h[y]={x:w.x,y:w.y}}const m=t.releaseFunction(p,h);for(const y in I)if(Object.prototype.hasOwnProperty.call(I,y)){const w=this.body.nodes[y];m[y]!==void 0&&(w.x=m[y].x===void 0?o.x:m[y].x,w.y=m[y].y===void 0?o.y:m[y].y)}}else He(I,function(h){h.options.fixed.x===!1&&(h.x=o.x),h.options.fixed.y===!1&&(h.y=o.y)});for(const h in I)if(Object.prototype.hasOwnProperty.call(I,h)){const p=this.body.nodes[h];p.vx=o.vx,p.vy=o.vy,p.setOptions({physics:!0}),delete this.clusteredNodes[h]}const c=[];for(let h=0;h0&&Ao&&(o=c.edges.length),e+=c.edges.length,t+=Math.pow(c.edges.length,2),i+=1}e=e/i,t=t/i;const r=t-Math.pow(e,2),A=Math.sqrt(r);let I=Math.floor(e+2*A);return I>o&&(I=o),I}_createClusteredEdge(e,t,i,o,r){const A=Sn.cloneOptions(i,"edge");yt(A,o),A.from=e,A.to=t,A.id="clusterEdge:"+js(),r!==void 0&&yt(A,r);const I=this.body.functions.createEdge(A);return I.clusteringEdgeReplacingIds=[i.id],I.connect(),this.body.edges[I.id]=I,I}_clusterEdges(e,t,i,o){if(t instanceof jg){const r=t,A={};A[r.id]=r,t=A}if(e instanceof Nt){const r=e,A={};A[r.id]=r,e=A}if(i==null)throw new Error("_clusterEdges: parameter clusterNode required");o===void 0&&(o=i.clusterEdgeProperties),this._createClusterEdges(e,t,i,o);for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&this.body.edges[r]!==void 0){const A=this.body.edges[r];this._backupEdgeOptions(A),A.setOptions({physics:!1})}for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(this.clusteredNodes[r]={clusterId:i.id,node:this.body.nodes[r]},this.body.nodes[r].setOptions({physics:!1}))}_getClusterNodeForNode(e){if(e===void 0)return;const t=this.clusteredNodes[e];if(t===void 0)return;const i=t.clusterId;if(i!==void 0)return this.body.nodes[i]}_filter(e,t){const i=[];return He(e,o=>{t(o)&&i.push(o)}),i}_updateState(){let e;const t=[],i={},o=l=>{He(this.body.nodes,c=>{c.isCluster===!0&&l(c)})};for(e in this.clusteredNodes){if(!Object.prototype.hasOwnProperty.call(this.clusteredNodes,e))continue;this.body.nodes[e]===void 0&&t.push(e)}o(function(l){for(let c=0;c{const c=this.body.edges[l];(c===void 0||!c.endPointsValid())&&(i[l]=l)}),o(function(l){He(l.containedEdges,(c,h)=>{!c.endPointsValid()&&!i[h]&&(i[h]=h)})}),He(this.body.edges,(l,c)=>{let h=!0;const p=l.clusteringEdgeReplacingIds;if(p!==void 0){let m=0;He(p,y=>{const w=this.body.edges[y];w!==void 0&&w.endPointsValid()&&(m+=1)}),h=m>0}(!l.endPointsValid()||!h)&&(i[c]=c)}),o(l=>{He(i,c=>{delete l.containedEdges[c],He(l.edges,(h,p)=>{if(h.id===c){l.edges[p]=null;return}h.clusteringEdgeReplacingIds=this._filter(h.clusteringEdgeReplacingIds,function(m){return!i[m]})}),l.edges=this._filter(l.edges,function(h){return h!==null})})}),He(i,l=>{delete this.clusteredEdges[l]}),He(i,l=>{delete this.body.edges[l]});const r=xt(this.body.edges);He(r,l=>{const c=this.body.edges[l],h=this._isClusteredNode(c.fromId)||this._isClusteredNode(c.toId);if(h!==this._isClusteredEdge(c.id))if(h){const p=this._getClusterNodeForNode(c.fromId);p!==void 0&&this._clusterEdges(this.body.nodes[c.fromId],c,p);const m=this._getClusterNodeForNode(c.toId);m!==void 0&&this._clusterEdges(this.body.nodes[c.toId],c,m)}else delete this._clusterEdges[l],this._restoreEdge(c)});let A=!1,I=!0;for(;I;){const l=[];o(function(c){const h=xt(c.containedNodes).length,p=c.options.allowSingleNodeCluster===!0;(p&&h<1||!p&&h<2)&&l.push(c.id)});for(let c=0;c0,A=A||I}A&&this._updateState()}_isClusteredNode(e){return this.clusteredNodes[e]!==void 0}_isClusteredEdge(e){return this.clusteredEdges[e]!==void 0}}class I${constructor(e,t){this.body=e,this.canvas=t,this.redrawRequested=!1,this.requestAnimationFrameRequestId=void 0,this.renderingActive=!1,this.renderRequests=0,this.allowRedraw=!0,this.dragging=!1,this.zooming=!1,this.options={},this.defaultOptions={hideEdgesOnDrag:!1,hideEdgesOnZoom:!1,hideNodesOnDrag:!1},Vt(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){var e;this.body.emitter.on("dragStart",()=>{this.dragging=!0}),this.body.emitter.on("dragEnd",()=>{this.dragging=!1}),this.body.emitter.on("zoom",()=>{this.zooming=!0,window.clearTimeout(this.zoomTimeoutId),this.zoomTimeoutId=Mi(()=>{var t;this.zooming=!1,ie(t=this._requestRedraw).call(t,this)()},250)}),this.body.emitter.on("_resizeNodes",()=>{this._resizeNodes()}),this.body.emitter.on("_redraw",()=>{this.renderingActive===!1&&this._redraw()}),this.body.emitter.on("_blockRedraw",()=>{this.allowRedraw=!1}),this.body.emitter.on("_allowRedraw",()=>{this.allowRedraw=!0,this.redrawRequested=!1}),this.body.emitter.on("_requestRedraw",ie(e=this._requestRedraw).call(e,this)),this.body.emitter.on("_startRendering",()=>{this.renderRequests+=1,this.renderingActive=!0,this._startRendering()}),this.body.emitter.on("_stopRendering",()=>{this.renderRequests-=1,this.renderingActive=this.renderRequests>0,this.requestAnimationFrameRequestId=void 0}),this.body.emitter.on("destroy",()=>{this.renderRequests=0,this.allowRedraw=!1,this.renderingActive=!1,window.cancelAnimationFrame(this.requestAnimationFrameRequestId),this.body.emitter.off()})}setOptions(e){e!==void 0&&Ds(["hideEdgesOnDrag","hideEdgesOnZoom","hideNodesOnDrag"],this.options,e)}_startRendering(){if(this.renderingActive===!0&&this.requestAnimationFrameRequestId===void 0){var e;this.requestAnimationFrameRequestId=window.requestAnimationFrame(ie(e=this._renderStep).call(e,this),this.simulationInterval)}}_renderStep(){this.renderingActive===!0&&(this.requestAnimationFrameRequestId=void 0,this._startRendering(),this._redraw())}redraw(){this.body.emitter.emit("setSize"),this._redraw()}_requestRedraw(){this.redrawRequested!==!0&&this.renderingActive===!1&&this.allowRedraw===!0&&(this.redrawRequested=!0,window.requestAnimationFrame(()=>{this._redraw(!1)}))}_redraw(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;if(this.allowRedraw===!0){this.body.emitter.emit("initRedraw"),this.redrawRequested=!1;const t={drawExternalLabels:null};(this.canvas.frame.canvas.width===0||this.canvas.frame.canvas.height===0)&&this.canvas.setSize(),this.canvas.setTransform();const i=this.canvas.getContext(),o=this.canvas.frame.canvas.clientWidth,r=this.canvas.frame.canvas.clientHeight;if(i.clearRect(0,0,o,r),this.canvas.frame.clientWidth===0)return;if(i.save(),i.translate(this.body.view.translation.x,this.body.view.translation.y),i.scale(this.body.view.scale,this.body.view.scale),i.beginPath(),this.body.emitter.emit("beforeDrawing",i),i.closePath(),e===!1&&(this.dragging===!1||this.dragging===!0&&this.options.hideEdgesOnDrag===!1)&&(this.zooming===!1||this.zooming===!0&&this.options.hideEdgesOnZoom===!1)&&this._drawEdges(i),this.dragging===!1||this.dragging===!0&&this.options.hideNodesOnDrag===!1){const{drawExternalLabels:A}=this._drawNodes(i,e);t.drawExternalLabels=A}e===!1&&(this.dragging===!1||this.dragging===!0&&this.options.hideEdgesOnDrag===!1)&&(this.zooming===!1||this.zooming===!0&&this.options.hideEdgesOnZoom===!1)&&this._drawArrows(i),t.drawExternalLabels!=null&&t.drawExternalLabels(),e===!1&&this._drawSelectionBox(i),i.beginPath(),this.body.emitter.emit("afterDrawing",i),i.closePath(),i.restore(),e===!0&&i.clearRect(0,0,o,r)}}_resizeNodes(){this.canvas.setTransform();const e=this.canvas.getContext();e.save(),e.translate(this.body.view.translation.x,this.body.view.translation.y),e.scale(this.body.view.scale,this.body.view.scale);const t=this.body.nodes;let i;for(const o in t)Object.prototype.hasOwnProperty.call(t,o)&&(i=t[o],i.resize(e),i.updateBoundingBox(e,i.selected));e.restore()}_drawNodes(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const i=this.body.nodes,o=this.body.nodeIndices;let r;const A=[],I=[],l=20,c=this.canvas.DOMtoCanvas({x:-l,y:-l}),h=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+l,y:this.canvas.frame.canvas.clientHeight+l}),p={top:c.y,left:c.x,bottom:h.y,right:h.x},m=[];for(let x=0;x{for(const x of m)x()}}}_drawEdges(e){const t=this.body.edges,i=this.body.edgeIndices;for(let o=0;o{t.width!==0&&(this.body.view.translation.x=t.width*.5),t.height!==0&&(this.body.view.translation.y=t.height*.5)}),this.body.emitter.on("setSize",ie(e=this.setSize).call(e,this)),this.body.emitter.on("destroy",()=>{this.hammerFrame.destroy(),this.hammer.destroy(),this._cleanUp()})}setOptions(e){if(e!==void 0&&Ds(["width","height","autoResize"],this.options,e),this._cleanUp(),this.options.autoResize===!0){var t;if(window.ResizeObserver){const o=new ResizeObserver(()=>{this.setSize()===!0&&this.body.emitter.emit("_requestRedraw")}),{frame:r}=this;o.observe(r),this._cleanupCallbacks.push(()=>{o.unobserve(r)})}else{const o=u$(()=>{this.setSize()===!0&&this.body.emitter.emit("_requestRedraw")},1e3);this._cleanupCallbacks.push(()=>{clearInterval(o)})}const i=ie(t=this._onResize).call(t,this);window.addEventListener("resize",i),this._cleanupCallbacks.push(()=>{window.removeEventListener("resize",i)})}}_cleanUp(){var e,t,i;Je(e=wo(t=Di(i=this._cleanupCallbacks).call(i,0)).call(t)).call(e,o=>{try{o()}catch(r){console.error(r)}})}_onResize(){this.setSize(),this.body.emitter.emit("_redraw")}_getCameraState(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.pixelRatio;this.initialized===!0&&(this.cameraState.previousWidth=this.frame.canvas.width/e,this.cameraState.previousHeight=this.frame.canvas.height/e,this.cameraState.scale=this.body.view.scale,this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/e,y:.5*this.frame.canvas.height/e}))}_setCameraState(){if(this.cameraState.scale!==void 0&&this.frame.canvas.clientWidth!==0&&this.frame.canvas.clientHeight!==0&&this.pixelRatio!==0&&this.cameraState.previousWidth>0&&this.cameraState.previousHeight>0){const e=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,t=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight;let i=this.cameraState.scale;e!=1&&t!=1?i=this.cameraState.scale*.5*(e+t):e!=1?i=this.cameraState.scale*e:t!=1&&(i=this.cameraState.scale*t),this.body.view.scale=i;const o=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),r={x:o.x-this.cameraState.position.x,y:o.y-this.cameraState.position.y};this.body.view.translation.x+=r.x*this.body.view.scale,this.body.view.translation.y+=r.y*this.body.view.scale}}_prepareValue(e){if(typeof e=="number")return e+"px";if(typeof e=="string"){if(Ct(e).call(e,"%")!==-1||Ct(e).call(e,"px")!==-1)return e;if(Ct(e).call(e,"%")===-1)return e+"px"}throw new Error("Could not use the value supplied for width or height:"+e)}_create(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis-network",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=0,this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext)this._setPixelRatio(),this.setTransform();else{const e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerText="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(e)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}_bindHammer(){this.hammer!==void 0&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new Ms(this.frame.canvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:Ms.DIRECTION_ALL}),qC(this.hammer,e=>{this.body.eventListeners.onTouch(e)}),this.hammer.on("tap",e=>{this.body.eventListeners.onTap(e)}),this.hammer.on("doubletap",e=>{this.body.eventListeners.onDoubleTap(e)}),this.hammer.on("press",e=>{this.body.eventListeners.onHold(e)}),this.hammer.on("panstart",e=>{this.body.eventListeners.onDragStart(e)}),this.hammer.on("panmove",e=>{this.body.eventListeners.onDrag(e)}),this.hammer.on("panend",e=>{this.body.eventListeners.onDragEnd(e)}),this.hammer.on("pinch",e=>{this.body.eventListeners.onPinch(e)}),this.frame.canvas.addEventListener("wheel",e=>{this.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("mousemove",e=>{this.body.eventListeners.onMouseMove(e)}),this.frame.canvas.addEventListener("contextmenu",e=>{this.body.eventListeners.onContext(e)}),this.hammerFrame=new Ms(this.frame),ax(this.hammerFrame,e=>{this.body.eventListeners.onRelease(e)})}setSize(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.width,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.height;e=this._prepareValue(e),t=this._prepareValue(t);let i=!1;const o=this.frame.canvas.width,r=this.frame.canvas.height,A=this.pixelRatio;if(this._setPixelRatio(),e!=this.options.width||t!=this.options.height||this.frame.style.width!=e||this.frame.style.height!=t)this._getCameraState(A),this.frame.style.width=e,this.frame.style.height=t,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=e,this.options.height=t,this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight},i=!0;else{const I=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),l=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);(this.frame.canvas.width!==I||this.frame.canvas.height!==l)&&this._getCameraState(A),this.frame.canvas.width!==I&&(this.frame.canvas.width=I,i=!0),this.frame.canvas.height!==l&&(this.frame.canvas.height=l,i=!0)}return i===!0&&(this.body.emitter.emit("resize",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(o/this.pixelRatio),oldHeight:Math.round(r/this.pixelRatio)}),this._setCameraState()),this.initialized=!0,i}getContext(){return this.frame.canvas.getContext("2d")}_determinePixelRatio(){const e=this.getContext();if(e===void 0)throw new Error("Could not get canvax context");let t=1;typeof window<"u"&&(t=window.devicePixelRatio||1);const i=e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return t/i}_setPixelRatio(){this.pixelRatio=this._determinePixelRatio()}setTransform(){const e=this.getContext();if(e===void 0)throw new Error("Could not get canvax context");e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}_XconvertDOMtoCanvas(e){return(e-this.body.view.translation.x)/this.body.view.scale}_XconvertCanvasToDOM(e){return e*this.body.view.scale+this.body.view.translation.x}_YconvertDOMtoCanvas(e){return(e-this.body.view.translation.y)/this.body.view.scale}_YconvertCanvasToDOM(e){return e*this.body.view.scale+this.body.view.translation.y}canvasToDOM(e){return{x:this._XconvertCanvasToDOM(e.x),y:this._YconvertCanvasToDOM(e.y)}}DOMtoCanvas(e){return{x:this._XconvertDOMtoCanvas(e.x),y:this._YconvertDOMtoCanvas(e.y)}}}function f$(n,e){const t=Vt({nodes:e,minZoomLevel:Number.MIN_VALUE,maxZoomLevel:1},n??{});if(!tt(t.nodes))throw new TypeError("Nodes has to be an array of ids.");if(t.nodes.length===0&&(t.nodes=e),!(typeof t.minZoomLevel=="number"&&t.minZoomLevel>0))throw new TypeError("Min zoom level has to be a number higher than zero.");if(!(typeof t.maxZoomLevel=="number"&&t.minZoomLevel<=t.maxZoomLevel))throw new TypeError("Max zoom level has to be a number higher than min zoom level.");return t}class p${constructor(e,t){var i,o;this.body=e,this.canvas=t,this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0,this.touchTime=0,this.viewFunction=void 0,this.body.emitter.on("fit",ie(i=this.fit).call(i,this)),this.body.emitter.on("animationFinished",()=>{this.body.emitter.emit("_stopRendering")}),this.body.emitter.on("unlockNode",ie(o=this.releaseNode).call(o,this))}setOptions(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.options=e}fit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;e=f$(e,this.body.nodeIndices);const i=this.canvas.frame.canvas.clientWidth,o=this.canvas.frame.canvas.clientHeight;let r,A;if(i===0||o===0)A=1,r=Sn.getRange(this.body.nodes,e.nodes);else if(t===!0){let c=0;for(const m in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,m)&&this.body.nodes[m].predefinedPosition===!0&&(c+=1);if(c>.5*this.body.nodeIndices.length){this.fit(e,!1);return}r=Sn.getRange(this.body.nodes,e.nodes),A=12.662/(this.body.nodeIndices.length+7.4147)+.0964822;const p=Math.min(i/600,o/600);A*=p}else{this.body.emitter.emit("_resizeNodes"),r=Sn.getRange(this.body.nodes,e.nodes);const c=Math.abs(r.maxX-r.minX)*1.1,h=Math.abs(r.maxY-r.minY)*1.1,p=i/c,m=o/h;A=p<=m?p:m}A>e.maxZoomLevel?A=e.maxZoomLevel:A1&&arguments[1]!==void 0?arguments[1]:{};if(this.body.nodes[e]!==void 0){const i={x:this.body.nodes[e].x,y:this.body.nodes[e].y};t.position=i,t.lockedOnNode=e,this.moveTo(t)}else console.error("Node: "+e+" cannot be found.")}moveTo(e){if(e===void 0){e={};return}if(e.offset!=null){if(e.offset.x!=null){if(e.offset.x=+e.offset.x,!zo(e.offset.x))throw new TypeError('The option "offset.x" has to be a finite number.')}else e.offset.x=0;if(e.offset.y!=null){if(e.offset.y=+e.offset.y,!zo(e.offset.y))throw new TypeError('The option "offset.y" has to be a finite number.')}else e.offset.x=0}else e.offset={x:0,y:0};if(e.position!=null){if(e.position.x!=null){if(e.position.x=+e.position.x,!zo(e.position.x))throw new TypeError('The option "position.x" has to be a finite number.')}else e.position.x=0;if(e.position.y!=null){if(e.position.y=+e.position.y,!zo(e.position.y))throw new TypeError('The option "position.y" has to be a finite number.')}else e.position.x=0}else e.position=this.getViewPosition();if(e.scale!=null){if(e.scale=+e.scale,!(e.scale>0))throw new TypeError('The option "scale" has to be a number greater than zero.')}else e.scale=this.body.view.scale;e.animation===void 0&&(e.animation={duration:0}),e.animation===!1&&(e.animation={duration:0}),e.animation===!0&&(e.animation={}),e.animation.duration===void 0&&(e.animation.duration=1e3),e.animation.easingFunction===void 0&&(e.animation.easingFunction="easeInOutQuad"),this.animateView(e)}animateView(e){if(e===void 0)return;this.animationEasingFunction=e.animation.easingFunction,this.releaseNode(),e.locked===!0&&(this.lockedOnNodeId=e.lockedOnNode,this.lockedOnNodeOffset=e.offset),this.easingTime!=0&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=e.scale,this.body.view.scale=this.targetScale;const t=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:t.x-e.position.x,y:t.y-e.position.y};if(this.targetTranslation={x:this.sourceTranslation.x+i.x*this.targetScale+e.offset.x,y:this.sourceTranslation.y+i.y*this.targetScale+e.offset.y},e.animation.duration===0)if(this.lockedOnNodeId!=null){var o;this.viewFunction=ie(o=this._lockedRedraw).call(o,this),this.body.emitter.on("initRedraw",this.viewFunction)}else this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw");else{var r;this.animationSpeed=1/(60*e.animation.duration*.001)||1/60,this.animationEasingFunction=e.animation.easingFunction,this.viewFunction=ie(r=this._transitionRedraw).call(r,this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering")}}_lockedRedraw(){const e={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},t=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:t.x-e.x,y:t.y-e.y},o=this.body.view.translation,r={x:o.x+i.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:o.y+i.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=r}releaseNode(){this.lockedOnNodeId!==void 0&&this.viewFunction!==void 0&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}_transitionRedraw(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;this.easingTime+=this.animationSpeed,this.easingTime=e===!0?1:this.easingTime;const t=LV[this.animationEasingFunction](this.easingTime);if(this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*t,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*t,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*t},this.easingTime>=1){if(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,this.lockedOnNodeId!=null){var i;this.viewFunction=ie(i=this._lockedRedraw).call(i,this),this.body.emitter.on("initRedraw",this.viewFunction)}this.body.emitter.emit("animationFinished")}}getScale(){return this.body.view.scale}getViewPosition(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}var m$=`div.vis-network div.vis-navigation div.vis-button { +`),o=i.length;if(t.multi)for(let r=0;r0)for(let I=0;I0)for(let r=0;r/&/.test(o)?(t.replace(t.text,"<","<")||t.replace(t.text,"&","&")||t.add("&"),!0):!1;for(;t.position")||t.parseStartTag("ital","")||t.parseStartTag("mono","")||t.parseEndTag("bold","")||t.parseEndTag("ital","")||t.parseEndTag("mono",""))||i(o)||t.add(o),t.position++}return t.emitBlock(),t.blocks}splitMarkdownBlocks(e){const t=new Hw(e);let i=!0;const o=r=>/\\/.test(r)?(t.positionthis.parent.fontOptions.maxWdt}getLongestFit(e){let t="",i=0;for(;i1&&arguments[1]!==void 0?arguments[1]:"normal",i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.parent.getFormattingValues(this.ctx,this.selected,this.hover,t),e=e.replace(/^( +)/g,"$1\r"),e=e.replace(/([^\r][^ ]*)( +)/g,"$1\r$2\r");let o=e.split("\r");for(;o.length>0;){let r=this.getLongestFit(o);if(r===0){const A=o[0],I=this.getLongestFitWord(A);this.lines.newLine(vi(A).call(A,0,I),t),o[0]=vi(A).call(A,I)}else{let A=r;o[r-1]===" "?r--:o[A]===" "&&A++;const I=vi(o).call(o,0,r).join("");r==o.length&&i?this.lines.append(I,t):this.lines.newLine(I,t),o=vi(o).call(o,A)}}}}const za=["bold","ital","boldital","mono"];class Bs{constructor(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.body=e,this.pointToSelf=!1,this.baseSize=void 0,this.fontOptions={},this.setOptions(t),this.size={top:0,left:0,width:0,height:0,yLine:0},this.isEdgeLabel=i}setOptions(e){if(this.elementOptions=e,this.initFontOptions(e.font),XC(e.label)?this.labelDirty=!0:e.label=void 0,e.font!==void 0&&e.font!==null){if(typeof e.font=="string")this.baseSize=this.fontOptions.size;else if(typeof e.font=="object"){const t=e.font.size;t!==void 0&&(this.baseSize=t)}}}initFontOptions(e){if(Ye(za,t=>{this.fontOptions[t]={}}),Bs.parseFontString(this.fontOptions,e)){this.fontOptions.vadjust=0;return}Ye(e,(t,i)=>{t!=null&&typeof t!="object"&&(this.fontOptions[i]=t)})}static parseFontString(e,t){if(!t||typeof t!="string")return!1;const i=t.split(" ");return e.size=+i[0].replace("px",""),e.face=i[1],e.color=i[2],!0}constrain(e){const t={constrainWidth:!1,maxWdt:-1,minWdt:-1,constrainHeight:!1,minHgt:-1,valign:"middle"},i=Mg(e,"widthConstraint");if(typeof i=="number")t.maxWdt=Number(i),t.minWdt=Number(i);else if(typeof i=="object"){const r=Mg(e,["widthConstraint","maximum"]);typeof r=="number"&&(t.maxWdt=Number(r));const A=Mg(e,["widthConstraint","minimum"]);typeof A=="number"&&(t.minWdt=Number(A))}const o=Mg(e,"heightConstraint");if(typeof o=="number")t.minHgt=Number(o);else if(typeof o=="object"){const r=Mg(e,["heightConstraint","minimum"]);typeof r=="number"&&(t.minHgt=Number(r));const A=Mg(e,["heightConstraint","valign"]);typeof A=="string"&&(A==="top"||A==="bottom")&&(t.valign=A)}return t}update(e,t){this.setOptions(e,!0),this.propagateFonts(t),mt(this.fontOptions,this.constrain(t)),this.fontOptions.chooser=bu("label",t)}adjustSizes(e){const t=e?e.right+e.left:0;this.fontOptions.constrainWidth&&(this.fontOptions.maxWdt-=t,this.fontOptions.minWdt-=t);const i=e?e.top+e.bottom:0;this.fontOptions.constrainHeight&&(this.fontOptions.minHgt-=i)}addFontOptionsToPile(e,t){for(let i=0;i{A!==void 0&&(Object.prototype.hasOwnProperty.call(t,I)||(at(za).call(za,I)!==-1?t[I]={}:t[I]=A))})}return t}getFontOption(e,t,i){let o;for(let r=0;r{r[l]=I}),r.size=Number(r.size),r.vadjust=Number(r.vadjust)}}draw(e,t,i,o,r){let A=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"middle";if(this.elementOptions.label===void 0)return;let I=this.fontOptions.size*this.body.view.scale;this.elementOptions.label&&I=this.elementOptions.scaling.label.maxVisible&&(I=Number(this.elementOptions.scaling.label.maxVisible)/this.body.view.scale),this.calculateLabelSize(e,o,r,t,i,A),this._drawBackground(e),this._drawText(e,t,this.size.yLine,A,I))}_drawBackground(e){if(this.fontOptions.background!==void 0&&this.fontOptions.background!=="none"){e.fillStyle=this.fontOptions.background;const t=this.getSize();e.fillRect(t.left,t.top,t.width,t.height)}}_drawText(e,t,i){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"middle",r=arguments.length>4?arguments[4]:void 0;[t,i]=this._setAlignment(e,t,i,o),e.textAlign="left",t=t-this.size.width/2,this.fontOptions.valign&&this.size.height>this.size.labelHeight&&(this.fontOptions.valign==="top"&&(i-=(this.size.height-this.size.labelHeight)/2),this.fontOptions.valign==="bottom"&&(i+=(this.size.height-this.size.labelHeight)/2));for(let A=0;A0&&(e.lineWidth=h.strokeWidth,e.strokeStyle=m,e.lineJoin="round"),e.fillStyle=p,h.strokeWidth>0&&e.strokeText(h.text,t+l,i+h.vadjust),e.fillText(h.text,t+l,i+h.vadjust),l+=h.width}i+=I.height}}}_setAlignment(e,t,i,o){if(this.isEdgeLabel&&this.fontOptions.align!=="horizontal"&&this.pointToSelf===!1){t=0,i=0;const r=2;this.fontOptions.align==="top"?(e.textBaseline="alphabetic",i-=2*r):this.fontOptions.align==="bottom"?(e.textBaseline="hanging",i+=2*r):e.textBaseline="middle"}else e.textBaseline=o;return[t,i]}_getColor(e,t,i){let o=e||"#000000",r=i||"#ffffff";if(t<=this.elementOptions.scaling.label.drawThreshold){const A=Math.max(0,Math.min(1,1-(this.elementOptions.scaling.label.drawThreshold-t)));o=ni(o,A),r=ni(r,A)}return[o,r]}getTextSize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return this._processLabel(e,t,i),{width:this.size.width,height:this.size.height,lineCount:this.lineCount}}getSize(){let t=this.size.left,i=this.size.top-.5*2;if(this.isEdgeLabel){const r=-this.size.width*.5;switch(this.fontOptions.align){case"middle":t=r,i=-this.size.height*.5;break;case"top":t=r,i=-(this.size.height+2);break;case"bottom":t=r,i=2;break}}return{left:t,top:i,width:this.size.width,height:this.size.height}}calculateLabelSize(e,t,i){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,A=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"middle";this._processLabel(e,t,i),this.size.left=o-this.size.width*.5,this.size.top=r-this.size.height*.5,this.size.yLine=r+(1-this.lineCount)*.5*this.fontOptions.size,A==="hanging"&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4)}getFormattingValues(e,t,i,o){const r=function(l,c,h){return c==="normal"?h==="mod"?"":l[h]:l[c][h]!==void 0?l[c][h]:l[h]},A={color:r(this.fontOptions,o,"color"),size:r(this.fontOptions,o,"size"),face:r(this.fontOptions,o,"face"),mod:r(this.fontOptions,o,"mod"),vadjust:r(this.fontOptions,o,"vadjust"),strokeWidth:this.fontOptions.strokeWidth,strokeColor:this.fontOptions.strokeColor};(t||i)&&(o==="normal"&&this.fontOptions.chooser===!0&&this.elementOptions.labelHighlightBold?A.mod="bold":typeof this.fontOptions.chooser=="function"&&this.fontOptions.chooser(A,this.elementOptions.id,t,i));let I="";return A.mod!==void 0&&A.mod!==""&&(I+=A.mod+" "),I+=A.size+"px "+A.face,e.font=I.replace(/"/g,""),A.font=e.font,A.height=A.size,A}differentState(e,t){return e!==this.selectedState||t!==this.hoverState}_processLabelText(e,t,i,o){return new pX(e,this,t,i).process(o)}_processLabel(e,t,i){if(this.labelDirty===!1&&!this.differentState(t,i))return;const o=this._processLabelText(e,t,i,this.elementOptions.label);this.fontOptions.minWdt>0&&o.width0&&o.height0&&(this.enableBorderDashes(e,t),e.stroke(),this.disableBorderDashes(e,t)),e.restore()}performFill(e,t){e.save(),e.fillStyle=t.color,this.enableShadow(e,t),Ia(e).call(e),this.disableShadow(e,t),e.restore(),this.performStroke(e,t)}_addBoundingBoxMargin(e){this.boundingBox.left-=e,this.boundingBox.top-=e,this.boundingBox.bottom+=e,this.boundingBox.right+=e}_updateBoundingBox(e,t,i,o,r){i!==void 0&&this.resize(i,o,r),this.left=e-this.width/2,this.top=t-this.height/2,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}updateBoundingBox(e,t,i,o,r){this._updateBoundingBox(e,t,i,o,r)}getDimensionsFromLabel(e,t,i){this.textSize=this.labelModule.getTextSize(e,t,i);let o=this.textSize.width,r=this.textSize.height;const A=14;return o===0&&(o=A,r=A),{width:o,height:r}}}let mX=class extends Ro{constructor(e,t,i){super(e,t,i),this._setMargins(i)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.needsRefresh(t,i)){const o=this.getDimensionsFromLabel(e,t,i);this.width=o.width+this.margin.right+this.margin.left,this.height=o.height+this.margin.top+this.margin.bottom,this.radius=this.width/2}}draw(e,t,i,o,r,A){this.resize(e,o,r),this.left=t-this.width/2,this.top=i-this.height/2,this.initContextForDraw(e,A),cy(e,this.left,this.top,this.width,this.height,A.borderRadius),this.performFill(e,A),this.updateBoundingBox(t,i,e,o,r),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,r)}updateBoundingBox(e,t,i,o,r){this._updateBoundingBox(e,t,i,o,r);const A=this.options.shapeProperties.borderRadius;this._addBoundingBoxMargin(A)}distanceToBorder(e,t){e&&this.resize(e);const i=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(t)),Math.abs(this.height/2/Math.sin(t)))+i}};class xu extends Ro{constructor(e,t,i){super(e,t,i),this.labelOffset=0,this.selected=!1}setOptions(e,t,i){this.options=e,t===void 0&&i===void 0||this.setImages(t,i)}setImages(e,t){t&&this.selected?(this.imageObj=t,this.imageObjAlt=e):(this.imageObj=e,this.imageObjAlt=t)}switchImages(e){const t=e&&!this.selected||!e&&this.selected;if(this.selected=e,this.imageObjAlt!==void 0&&t){const i=this.imageObj;this.imageObj=this.imageObjAlt,this.imageObjAlt=i}}_getImagePadding(){const e={top:0,right:0,bottom:0,left:0};if(this.options.imagePadding){const t=this.options.imagePadding;typeof t=="object"?(e.top=t.top,e.right=t.right,e.bottom=t.bottom,e.left=t.left):(e.top=t,e.right=t,e.bottom=t,e.left=t)}return e}_resizeImage(){let e,t;if(this.options.shapeProperties.useImageSize===!1){let i=1,o=1;this.imageObj.width&&this.imageObj.height&&(this.imageObj.width>this.imageObj.height?i=this.imageObj.width/this.imageObj.height:o=this.imageObj.height/this.imageObj.width),e=this.options.size*2*i,t=this.options.size*2*o}else{const i=this._getImagePadding();e=this.imageObj.width+i.left+i.right,t=this.imageObj.height+i.top+i.bottom}this.width=e,this.height=t,this.radius=.5*this.width}_drawRawCircle(e,t,i,o){this.initContextForDraw(e,o),Zc(e,t,i,o.size),this.performFill(e,o)}_drawImageAtPosition(e,t){if(this.imageObj.width!=0){e.globalAlpha=t.opacity!==void 0?t.opacity:1,this.enableShadow(e,t);let i=1;this.options.shapeProperties.interpolation===!0&&(i=this.imageObj.width/this.width/this.body.view.scale);const o=this._getImagePadding(),r=this.left+o.left,A=this.top+o.top,I=this.width-o.left-o.right,l=this.height-o.top-o.bottom;this.imageObj.drawImageAtPosition(e,i,r,A,I,l),this.disableShadow(e,t)}}_drawImageLabel(e,t,i,o,r){let A=0;if(this.height!==void 0){A=this.height*.5;const l=this.labelModule.getTextSize(e,o,r);l.lineCount>=1&&(A+=l.height/2)}const I=i+A;this.options.label&&(this.labelOffset=A),this.labelModule.draw(e,t,I,o,r,"hanging")}}let vX=class extends xu{constructor(e,t,i){super(e,t,i),this._setMargins(i)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.needsRefresh(t,i)){const o=this.getDimensionsFromLabel(e,t,i),r=Math.max(o.width+this.margin.right+this.margin.left,o.height+this.margin.top+this.margin.bottom);this.options.size=r/2,this.width=r,this.height=r,this.radius=this.width/2}}draw(e,t,i,o,r,A){this.resize(e,o,r),this.left=t-this.width/2,this.top=i-this.height/2,this._drawRawCircle(e,t,i,A),this.updateBoundingBox(t,i),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,i,o,r)}updateBoundingBox(e,t){this.boundingBox.top=t-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=t+this.options.size}distanceToBorder(e){return e&&this.resize(e),this.width*.5}};class yX extends xu{constructor(e,t,i,o,r){super(e,t,i),this.setImages(o,r)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.imageObj.src===void 0||this.imageObj.width===void 0||this.imageObj.height===void 0){const r=this.options.size*2;this.width=r,this.height=r,this.radius=.5*this.width;return}this.needsRefresh(t,i)&&this._resizeImage()}draw(e,t,i,o,r,A){this.switchImages(o),this.resize();let I=t,l=i;this.options.shapeProperties.coordinateOrigin==="top-left"?(this.left=t,this.top=i,I+=this.width/2,l+=this.height/2):(this.left=t-this.width/2,this.top=i-this.height/2),this._drawRawCircle(e,I,l,A),e.save(),e.clip(),this._drawImageAtPosition(e,A),e.restore(),this._drawImageLabel(e,I,l,o,r),this.updateBoundingBox(t,i)}updateBoundingBox(e,t){this.options.shapeProperties.coordinateOrigin==="top-left"?(this.boundingBox.top=t,this.boundingBox.left=e,this.boundingBox.right=e+this.options.size*2,this.boundingBox.bottom=t+this.options.size*2):(this.boundingBox.top=t-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=t+this.options.size),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}distanceToBorder(e){return e&&this.resize(e),this.width*.5}}class _g extends Ro{constructor(e,t,i){super(e,t,i)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{size:this.options.size};if(this.needsRefresh(t,i)){var r,A;this.labelModule.getTextSize(e,t,i);const I=2*o.size;this.width=(r=this.customSizeWidth)!==null&&r!==void 0?r:I,this.height=(A=this.customSizeHeight)!==null&&A!==void 0?A:I,this.radius=.5*this.width}}_drawShape(e,t,i,o,r,A,I,l){return this.resize(e,A,I,l),this.left=o-this.width/2,this.top=r-this.height/2,this.initContextForDraw(e,l),i4(t)(e,o,r,l.size),this.performFill(e,l),this.options.icon!==void 0&&this.options.icon.code!==void 0&&(e.font=(A?"bold ":"")+this.height/2+"px "+(this.options.icon.face||"FontAwesome"),e.fillStyle=this.options.icon.color||"black",e.textAlign="center",e.textBaseline="middle",e.fillText(this.options.icon.code,o,r)),{drawExternalLabel:()=>{if(this.options.label!==void 0){this.labelModule.calculateLabelSize(e,A,I,o,r,"hanging");const c=r+.5*this.height+.5*this.labelModule.size.height;this.labelModule.draw(e,o,c,A,I,"hanging")}this.updateBoundingBox(o,r)}}}updateBoundingBox(e,t){this.boundingBox.top=t-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=t+this.options.size,this.options.label!==void 0&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height))}}function Kw(n,e){var t=wt(n);if(_i){var i=_i(n);e&&(i=Qt(i).call(i,function(o){return ji(n,o).enumerable})),t.push.apply(t,i)}return t}function bX(n){for(var e=1;e{e.save(),l(),e.restore()}}return I.nodeDimensions&&(this.customSizeWidth=I.nodeDimensions.width,this.customSizeHeight=I.nodeDimensions.height),I}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}class xX extends Ro{constructor(e,t,i){super(e,t,i),this._setMargins(i)}resize(e,t,i){if(this.needsRefresh(t,i)){const r=this.getDimensionsFromLabel(e,t,i).width+this.margin.right+this.margin.left;this.width=r,this.height=r,this.radius=this.width/2}}draw(e,t,i,o,r,A){this.resize(e,o,r),this.left=t-this.width/2,this.top=i-this.height/2,this.initContextForDraw(e,A),dy(e,t-this.width/2,i-this.height/2,this.width,this.height),this.performFill(e,A),this.updateBoundingBox(t,i,e,o,r),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,r)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}let SX=class extends _g{constructor(e,t,i){super(e,t,i)}draw(e,t,i,o,r,A){return this._drawShape(e,"diamond",4,t,i,o,r,A)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}};class EX extends _g{constructor(e,t,i){super(e,t,i)}draw(e,t,i,o,r,A){return this._drawShape(e,"circle",2,t,i,o,r,A)}distanceToBorder(e){return e&&this.resize(e),this.options.size}}class Ww extends Ro{constructor(e,t,i){super(e,t,i)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.needsRefresh(t,i)){const o=this.getDimensionsFromLabel(e,t,i);this.height=o.height*2,this.width=o.width+o.height,this.radius=.5*this.width}}draw(e,t,i,o,r,A){this.resize(e,o,r),this.left=t-this.width*.5,this.top=i-this.height*.5,this.initContextForDraw(e,A),Bc(e,this.left,this.top,this.width,this.height),this.performFill(e,A),this.updateBoundingBox(t,i,e,o,r),this.labelModule.draw(e,t,i,o,r)}distanceToBorder(e,t){e&&this.resize(e);const i=this.width*.5,o=this.height*.5,r=Math.sin(t)*i,A=Math.cos(t)*o;return i*o/Math.sqrt(r*r+A*A)}}class TX extends Ro{constructor(e,t,i){super(e,t,i),this._setMargins(i)}resize(e,t,i){this.needsRefresh(t,i)&&(this.iconSize={width:Number(this.options.icon.size),height:Number(this.options.icon.size)},this.width=this.iconSize.width+this.margin.right+this.margin.left,this.height=this.iconSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}draw(e,t,i,o,r,A){return this.resize(e,o,r),this.options.icon.size=this.options.icon.size||50,this.left=t-this.width/2,this.top=i-this.height/2,this._icon(e,t,i,o,r,A),{drawExternalLabel:()=>{this.options.label!==void 0&&this.labelModule.draw(e,this.left+this.iconSize.width/2+this.margin.left,i+this.height/2+5,o),this.updateBoundingBox(t,i)}}}updateBoundingBox(e,t){this.boundingBox.top=t-this.options.icon.size*.5,this.boundingBox.left=e-this.options.icon.size*.5,this.boundingBox.right=e+this.options.icon.size*.5,this.boundingBox.bottom=t+this.options.icon.size*.5,this.options.label!==void 0&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+5))}_icon(e,t,i,o,r,A){const I=Number(this.options.icon.size);this.options.icon.code!==void 0?(e.font=[this.options.icon.weight!=null?this.options.icon.weight:o?"bold":"",(this.options.icon.weight!=null&&o?5:0)+I+"px",this.options.icon.face].join(" "),e.fillStyle=this.options.icon.color||"black",e.textAlign="center",e.textBaseline="middle",this.enableShadow(e,A),e.fillText(this.options.icon.code,t,i),this.disableShadow(e,A)):console.error("When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.")}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}let OX=class extends xu{constructor(e,t,i,o,r){super(e,t,i),this.setImages(o,r)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.imageObj.src===void 0||this.imageObj.width===void 0||this.imageObj.height===void 0){const r=this.options.size*2;this.width=r,this.height=r;return}this.needsRefresh(t,i)&&this._resizeImage()}draw(e,t,i,o,r,A){e.save(),this.switchImages(o),this.resize();let I=t,l=i;if(this.options.shapeProperties.coordinateOrigin==="top-left"?(this.left=t,this.top=i,I+=this.width/2,l+=this.height/2):(this.left=t-this.width/2,this.top=i-this.height/2),this.options.shapeProperties.useBorderWithImage===!0){const c=this.options.borderWidth,h=this.options.borderWidthSelected||2*this.options.borderWidth,p=(o?h:c)/this.body.view.scale;e.lineWidth=Math.min(this.width,p),e.beginPath();let m=o?this.options.color.highlight.border:r?this.options.color.hover.border:this.options.color.border,y=o?this.options.color.highlight.background:r?this.options.color.hover.background:this.options.color.background;A.opacity!==void 0&&(m=ni(m,A.opacity),y=ni(y,A.opacity)),e.strokeStyle=m,e.fillStyle=y,e.rect(this.left-.5*e.lineWidth,this.top-.5*e.lineWidth,this.width+e.lineWidth,this.height+e.lineWidth),Ia(e).call(e),this.performStroke(e,A),e.closePath()}this._drawImageAtPosition(e,A),this._drawImageLabel(e,I,l,o,r),this.updateBoundingBox(t,i),e.restore()}updateBoundingBox(e,t){this.resize(),this.options.shapeProperties.coordinateOrigin==="top-left"?(this.left=e,this.top=t):(this.left=e-this.width/2,this.top=t-this.height/2),this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width,this.options.label!==void 0&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}distanceToBorder(e,t){return this._distanceToBorder(e,t)}};class NX extends _g{constructor(e,t,i){super(e,t,i)}draw(e,t,i,o,r,A){return this._drawShape(e,"square",2,t,i,o,r,A)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}class DX extends _g{constructor(e,t,i){super(e,t,i)}draw(e,t,i,o,r,A){return this._drawShape(e,"hexagon",4,t,i,o,r,A)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}class MX extends _g{constructor(e,t,i){super(e,t,i)}draw(e,t,i,o,r,A){return this._drawShape(e,"star",4,t,i,o,r,A)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}class zX extends Ro{constructor(e,t,i){super(e,t,i),this._setMargins(i)}resize(e,t,i){this.needsRefresh(t,i)&&(this.textSize=this.labelModule.getTextSize(e,t,i),this.width=this.textSize.width+this.margin.right+this.margin.left,this.height=this.textSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}draw(e,t,i,o,r,A){this.resize(e,o,r),this.left=t-this.width/2,this.top=i-this.height/2,this.enableShadow(e,A),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,r),this.disableShadow(e,A),this.updateBoundingBox(t,i,e,o,r)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}let kX=class extends _g{constructor(e,t,i){super(e,t,i)}draw(e,t,i,o,r,A){return this._drawShape(e,"triangle",3,t,i,o,r,A)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}};class RX extends _g{constructor(e,t,i){super(e,t,i)}draw(e,t,i,o,r,A){return this._drawShape(e,"triangleDown",3,t,i,o,r,A)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}function Qw(n,e){var t=wt(n);if(_i){var i=_i(n);e&&(i=Qt(i).call(i,function(o){return ji(n,o).enumerable})),t.push.apply(t,i)}return t}function Xw(n){for(var e=1;et[c]!=null);l.push("font"),ZC(l,e,I),e.color=Kd(e.color)}static parseOptions(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},r=arguments.length>4?arguments[4]:void 0;if(ZC(["color","fixed","shadow"],e,t,i),Ot.checkMass(t),e.opacity!==void 0&&(Ot.checkOpacity(e.opacity)||(console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+e.opacity),e.opacity=void 0)),t.opacity!==void 0&&(Ot.checkOpacity(t.opacity)||(console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+t.opacity),t.opacity=void 0)),t.shapeProperties&&!Ot.checkCoordinateOrigin(t.shapeProperties.coordinateOrigin)&&console.error("Invalid option for node coordinateOrigin, found: "+t.shapeProperties.coordinateOrigin),ii(e,t,"shadow",o),t.color!==void 0&&t.color!==null){const I=Kd(t.color);d1(e.color,I)}else i===!0&&t.color===null&&(e.color=Dg(o.color));t.fixed!==void 0&&t.fixed!==null&&(typeof t.fixed=="boolean"?(e.fixed.x=t.fixed,e.fixed.y=t.fixed):(t.fixed.x!==void 0&&typeof t.fixed.x=="boolean"&&(e.fixed.x=t.fixed.x),t.fixed.y!==void 0&&typeof t.fixed.y=="boolean"&&(e.fixed.y=t.fixed.y))),i===!0&&t.font===null&&(e.font=Dg(o.font)),Ot.updateGroupOptions(e,t,r),t.scaling!==void 0&&ii(e.scaling,t.scaling,"label",o.scaling)}getFormattingValues(){const e={color:this.options.color.background,opacity:this.options.opacity,borderWidth:this.options.borderWidth,borderColor:this.options.color.border,size:this.options.size,borderDashes:this.options.shapeProperties.borderDashes,borderRadius:this.options.shapeProperties.borderRadius,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y};if(this.selected||this.hover?this.chooser===!0?this.selected?(this.options.borderWidthSelected!=null?e.borderWidth=this.options.borderWidthSelected:e.borderWidth*=2,e.color=this.options.color.highlight.background,e.borderColor=this.options.color.highlight.border,e.shadow=this.options.shadow.enabled):this.hover&&(e.color=this.options.color.hover.background,e.borderColor=this.options.color.hover.border,e.shadow=this.options.shadow.enabled):typeof this.chooser=="function"&&(this.chooser(e,this.options.id,this.selected,this.hover),e.shadow===!1&&(e.shadowColor!==this.options.shadow.color||e.shadowSize!==this.options.shadow.size||e.shadowX!==this.options.shadow.x||e.shadowY!==this.options.shadow.y)&&(e.shadow=!0)):e.shadow=this.options.shadow.enabled,this.options.opacity!==void 0){const t=this.options.opacity;e.borderColor=ni(e.borderColor,t),e.color=ni(e.color,t),e.shadowColor=ni(e.shadowColor,t)}return e}updateLabelModule(e){(this.options.label===void 0||this.options.label===null)&&(this.options.label=""),Ot.updateGroupOptions(this.options,Xw(Xw({},e),{},{color:e&&e.color||this._localColor||void 0}),this.grouplist);const t=this.grouplist.get(this.options.group,!1),i=[e,this.options,t,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,i),this.labelModule.baseSize!==void 0&&(this.baseFontSize=this.labelModule.baseSize)}updateShape(e){if(e===this.options.shape&&this.shape)this.shape.setOptions(this.options,this.imageObj,this.imageObjAlt);else switch(this.options.shape){case"box":this.shape=new mX(this.options,this.body,this.labelModule);break;case"circle":this.shape=new vX(this.options,this.body,this.labelModule);break;case"circularImage":this.shape=new yX(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case"custom":this.shape=new wX(this.options,this.body,this.labelModule,this.options.ctxRenderer);break;case"database":this.shape=new xX(this.options,this.body,this.labelModule);break;case"diamond":this.shape=new SX(this.options,this.body,this.labelModule);break;case"dot":this.shape=new EX(this.options,this.body,this.labelModule);break;case"ellipse":this.shape=new Ww(this.options,this.body,this.labelModule);break;case"icon":this.shape=new TX(this.options,this.body,this.labelModule);break;case"image":this.shape=new OX(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case"square":this.shape=new NX(this.options,this.body,this.labelModule);break;case"hexagon":this.shape=new DX(this.options,this.body,this.labelModule);break;case"star":this.shape=new MX(this.options,this.body,this.labelModule);break;case"text":this.shape=new zX(this.options,this.body,this.labelModule);break;case"triangle":this.shape=new kX(this.options,this.body,this.labelModule);break;case"triangleDown":this.shape=new RX(this.options,this.body,this.labelModule);break;default:this.shape=new Ww(this.options,this.body,this.labelModule);break}this.needsRefresh()}select(){this.selected=!0,this.needsRefresh()}unselect(){this.selected=!1,this.needsRefresh()}needsRefresh(){this.shape.refreshNeeded=!0}getTitle(){return this.options.title}distanceToBorder(e,t){return this.shape.distanceToBorder(e,t)}isFixed(){return this.options.fixed.x&&this.options.fixed.y}isSelected(){return this.selected}getValue(){return this.options.value}getLabelSize(){return this.labelModule.size()}setValueRange(e,t,i){if(this.options.value!==void 0){const o=this.options.scaling.customScalingFunction(e,t,i,this.options.value),r=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===!0){const A=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+o*A}this.options.size=this.options.scaling.min+o*r}else this.options.size=this.baseSize,this.options.font.size=this.baseFontSize;this.updateLabelModule()}draw(e){const t=this.getFormattingValues();return this.shape.draw(e,this.x,this.y,this.selected,this.hover,t)||{}}updateBoundingBox(e){this.shape.updateBoundingBox(this.x,this.y,e)}resize(e){const t=this.getFormattingValues();this.shape.resize(e,this.selected,this.hover,t)}getItemsOnPoint(e){const t=[];return this.labelModule.visible()&&wu(this.labelModule.getSize(),e)&&t.push({nodeId:this.id,labelId:0}),wu(this.shape.boundingBox,e)&&t.push({nodeId:this.id}),t}isOverlappingWith(e){return this.shape.lefte.left&&this.shape.tope.top}isBoundingBoxOverlappingWith(e){return this.shape.boundingBox.lefte.left&&this.shape.boundingBox.tope.top}static checkMass(e,t){if(e.mass!==void 0&&e.mass<=0){let i="";t!==void 0&&(i=" in node id: "+t),console.error("%cNegative or zero mass disallowed"+i+", setting mass to 1.",m1),e.mass=1}}}class _X{constructor(e,t,i,o){var r;if(this.body=e,this.images=t,this.groups=i,this.layoutEngine=o,this.body.functions.createNode=ge(r=this.create).call(r,this),this.nodesListeners={add:(A,I)=>{this.add(I.items)},update:(A,I)=>{this.update(I.items,I.data,I.oldData)},remove:(A,I)=>{this.remove(I.items)}},this.defaultOptions={borderWidth:1,borderWidthSelected:void 0,brokenImage:void 0,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},opacity:void 0,fixed:{x:!1,y:!1},font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:0,strokeColor:"#ffffff",align:"center",vadjust:0,multi:!1,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"monospace",vadjust:2}},group:void 0,hidden:!1,icon:{face:"FontAwesome",code:void 0,size:50,color:"#2B7CE9"},image:void 0,imagePadding:{top:0,right:0,bottom:0,left:0},label:void 0,labelHighlightBold:!0,level:void 0,margin:{top:5,right:5,bottom:5,left:5},mass:1,physics:!0,scaling:{min:10,max:30,label:{enabled:!1,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(A,I,l,c){if(I===A)return .5;{const h=1/(I-A);return Math.max(0,(c-A)*h)}}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},shape:"ellipse",shapeProperties:{borderDashes:!1,borderRadius:6,interpolation:!0,useImageSize:!1,useBorderWithImage:!1,coordinateOrigin:"center"},size:25,title:void 0,value:void 0,x:void 0,y:void 0},this.defaultOptions.mass<=0)throw"Internal error: mass in defaultOptions of NodesHandler may not be zero or negative";this.options=Dg(this.defaultOptions),this.bindEventListeners()}bindEventListeners(){var e,t;this.body.emitter.on("refreshNodes",ge(e=this.refresh).call(e,this)),this.body.emitter.on("refresh",ge(t=this.refresh).call(t,this)),this.body.emitter.on("destroy",()=>{Ye(this.nodesListeners,(i,o)=>{this.body.data.nodes&&this.body.data.nodes.off(o,i)}),delete this.body.functions.createNode,delete this.nodesListeners.add,delete this.nodesListeners.update,delete this.nodesListeners.remove,delete this.nodesListeners})}setOptions(e){if(e!==void 0){if(Ot.parseOptions(this.options,e),e.opacity!==void 0&&(au(e.opacity)||!zo(e.opacity)||e.opacity<0||e.opacity>1?console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+e.opacity):this.options.opacity=e.opacity),e.shape!==void 0)for(const t in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,t)&&this.body.nodes[t].updateShape();if(typeof e.font<"u"||typeof e.widthConstraint<"u"||typeof e.heightConstraint<"u")for(const t of wt(this.body.nodes))this.body.nodes[t].updateLabelModule(),this.body.nodes[t].needsRefresh();if(e.size!==void 0)for(const t in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,t)&&this.body.nodes[t].needsRefresh();(e.hidden!==void 0||e.physics!==void 0)&&this.body.emitter.emit("_dataChanged")}}setData(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const i=this.body.data.nodes;if(Pw("id",e))this.body.data.nodes=e;else if(et(e))this.body.data.nodes=new Zs,this.body.data.nodes.add(e);else if(!e)this.body.data.nodes=new Zs;else throw new TypeError("Array or DataSet expected");if(i&&Ye(this.nodesListeners,function(o,r){i.off(r,o)}),this.body.nodes={},this.body.data.nodes){const o=this;Ye(this.nodesListeners,function(A,I){o.body.data.nodes.on(I,A)});const r=this.body.data.nodes.getIds();this.add(r,!0)}t===!1&&this.body.emitter.emit("_dataChanged")}add(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i;const o=[];for(let r=0;r1&&arguments[1]!==void 0?arguments[1]:Ot;return new t(e,this.body,this.images,this.groups,this.options,this.defaultOptions)}refresh(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;Ye(this.body.nodes,(t,i)=>{const o=this.body.data.nodes.get(i);o!==void 0&&(e===!0&&t.setOptions({x:null,y:null}),t.setOptions({fixed:!1}),t.setOptions(o))})}getPositions(e){const t={};if(e!==void 0){if(et(e)===!0){for(let i=0;i{this.body.emitter.emit("startSimulation")},0)):console.error("Node id supplied to moveNode does not exist. Provided: ",e)}}var jX=ze,$w=Math.hypot,ZX=Math.abs,BX=Math.sqrt,PX=!!$w&&$w(1/0,NaN)!==1/0;jX({target:"Math",stat:!0,forced:PX},{hypot:function(e,t){for(var i=0,o=0,r=arguments.length,A=0,I,l;o0?(l=I/A,i+=l*l):i+=I;return A===1/0?1/0:A*BX(i)}});var LX=st,GX=LX.Math.hypot,FX=GX,VX=FX,UX=VX,YX=Ne(UX);class Ut{static transform(e,t){et(e)||(e=[e]);const i=t.point.x,o=t.point.y,r=t.angle,A=t.length;for(let I=0;I4&&arguments[4]!==void 0?arguments[4]:this.getViaNode();e.strokeStyle=this.getColor(e,t),e.lineWidth=t.width,t.dashes!==!1?this._drawDashedLine(e,t,r):this._drawLine(e,t,r)}_drawLine(e,t,i,o,r){if(this.from!=this.to)this._line(e,t,i,o,r);else{const[A,I,l]=this._getCircleData(e);this._circle(e,t,A,I,l)}}_drawDashedLine(e,t,i,o,r){e.lineCap="round";const A=et(t.dashes)?t.dashes:[5,5];if(e.setLineDash!==void 0){if(e.save(),e.setLineDash(A),e.lineDashOffset=0,this.from!=this.to)this._line(e,t,i);else{const[I,l,c]=this._getCircleData(e);this._circle(e,t,I,l,c)}e.setLineDash([0]),e.lineDashOffset=0,e.restore()}else{if(this.from!=this.to)uy(e,this.from.x,this.from.y,this.to.x,this.to.y,A);else{const[I,l,c]=this._getCircleData(e);this._circle(e,t,I,l,c)}this.enableShadow(e,t),e.stroke(),this.disableShadow(e,t)}}findBorderPosition(e,t,i){return this.from!=this.to?this._findBorderPosition(e,t,i):this._findBorderPositionCircle(e,t,i)}findBorderPositions(e){if(this.from!=this.to)return{from:this._findBorderPosition(this.from,e),to:this._findBorderPosition(this.to,e)};{var t;const[i,o]=vi(t=this._getCircleData(e)).call(t,0,2);return{from:this._findBorderPositionCircle(this.from,e,{x:i,y:o,low:.25,high:.6,direction:-1}),to:this._findBorderPositionCircle(this.from,e,{x:i,y:o,low:.6,high:.8,direction:1})}}}_getCircleData(e){const t=this.options.selfReference.size;e!==void 0&&this.from.shape.width===void 0&&this.from.shape.resize(e);const i=Yw(e,this.options.selfReference.angle,t,this.from);return[i.x,i.y,t]}_pointOnCircle(e,t,i,o){const r=o*2*Math.PI;return{x:e+i*Math.cos(r),y:t-i*Math.sin(r)}}_findBorderPositionCircle(e,t,i){const o=i.x,r=i.y;let A=i.low,I=i.high;const l=i.direction,c=10,h=this.options.selfReference.size,p=.05;let m,y=(A+I)*.5,w=0;this.options.arrowStrikethrough===!0&&(l===-1?w=this.options.endPointOffset.from:l===1&&(w=this.options.endPointOffset.to));let S=0;do{y=(A+I)*.5,m=this._pointOnCircle(o,r,h,y);const x=Math.atan2(e.y-m.y,e.x-m.x),O=e.distanceToBorder(t,x)+w,E=Math.sqrt(Math.pow(m.x-e.x,2)+Math.pow(m.y-e.y,2)),_=O-E;if(Math.abs(_)0?l>0?A=y:I=y:l>0?I=y:A=y,++S}while(A<=I&&S1?h=1:h<0&&(h=0);const p=e+h*I,m=t+h*l,y=p-r,w=m-A;return Math.sqrt(y*y+w*w)}getArrowData(e,t,i,o,r,A){let I,l,c,h,p,m,y;const w=A.width;t==="from"?(c=this.from,h=this.to,p=A.fromArrowScale<0,m=Math.abs(A.fromArrowScale),y=A.fromArrowType):t==="to"?(c=this.to,h=this.from,p=A.toArrowScale<0,m=Math.abs(A.toArrowScale),y=A.toArrowType):(c=this.to,h=this.from,p=A.middleArrowScale<0,m=Math.abs(A.middleArrowScale),y=A.middleArrowType);const S=15*m+3*w;if(c!=h){const _=YX(c.x-h.x,c.y-h.y),P=S/_;if(t!=="middle")if(this.options.smooth.enabled===!0){const Q=this._findBorderPosition(c,e,{via:i}),ne=this.getPoint(Q.t+P*(t==="from"?1:-1),i);I=Math.atan2(Q.y-ne.y,Q.x-ne.x),l=Q}else I=Math.atan2(c.y-h.y,c.x-h.x),l=this._findBorderPosition(c,e);else{const Q=(p?-P:P)/2,ne=this.getPoint(.5+Q,i),j=this.getPoint(.5-Q,i);I=Math.atan2(ne.y-j.y,ne.x-j.x),l=this.getPoint(.5,i)}}else{const[_,P,Q]=this._getCircleData(e);if(t==="from"){const ne=this.options.selfReference.angle,j=this.options.selfReference.angle+Math.PI,V=this._findBorderPositionCircle(this.from,e,{x:_,y:P,low:ne,high:j,direction:-1});I=V.t*-2*Math.PI+1.5*Math.PI+.1*Math.PI,l=V}else if(t==="to"){const ne=this.options.selfReference.angle,j=this.options.selfReference.angle+Math.PI,V=this._findBorderPositionCircle(this.from,e,{x:_,y:P,low:ne,high:j,direction:1});I=V.t*-2*Math.PI+1.5*Math.PI-1.1*Math.PI,l=V}else{const ne=this.options.selfReference.angle/(2*Math.PI);l=this._pointOnCircle(_,P,Q,ne),I=ne*-2*Math.PI+1.5*Math.PI+.1*Math.PI}}const x=l.x-S*.9*Math.cos(I),O=l.y-S*.9*Math.sin(I);return{point:l,core:{x,y:O},angle:I,length:S,type:y}}drawArrowHead(e,t,i,o,r){e.strokeStyle=this.getColor(e,t),e.fillStyle=e.strokeStyle,e.lineWidth=t.width,qw.draw(e,r)&&(this.enableShadow(e,t),Ia(e).call(e),this.disableShadow(e,t))}enableShadow(e,t){t.shadow===!0&&(e.shadowColor=t.shadowColor,e.shadowBlur=t.shadowSize,e.shadowOffsetX=t.shadowX,e.shadowOffsetY=t.shadowY)}disableShadow(e,t){t.shadow===!0&&(e.shadowColor="rgba(0,0,0,0)",e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0)}drawBackground(e,t){if(t.background!==!1){const i={strokeStyle:e.strokeStyle,lineWidth:e.lineWidth,dashes:e.dashes};e.strokeStyle=t.backgroundColor,e.lineWidth=t.backgroundSize,this.setStrokeDashed(e,t.backgroundDashes),e.stroke(),e.strokeStyle=i.strokeStyle,e.lineWidth=i.lineWidth,e.dashes=i.dashes,this.setStrokeDashed(e,t.dashes)}}setStrokeDashed(e,t){if(t!==!1)if(e.setLineDash!==void 0){const i=et(t)?t:[5,5];e.setLineDash(i)}else console.warn("setLineDash is not supported in this browser. The dashed stroke cannot be used.");else e.setLineDash!==void 0?e.setLineDash([]):console.warn("setLineDash is not supported in this browser. The dashed stroke cannot be used.")}}function nx(n,e){var t=wt(n);if(_i){var i=_i(n);e&&(i=Qt(i).call(i,function(o){return ji(n,o).enumerable})),t.push.apply(t,i)}return t}function ix(n){for(var e=1;e2&&arguments[2]!==void 0?arguments[2]:this._getViaCoordinates();const o=10,r=.2;let A=!1,I=1,l=0,c=this.to,h,p,m=this.options.endPointOffset?this.options.endPointOffset.to:0;e.id===this.from.id&&(c=this.from,A=!0,m=this.options.endPointOffset?this.options.endPointOffset.from:0),this.options.arrowStrikethrough===!1&&(m=0);let y=0;do{p=(l+I)*.5,h=this.getPoint(p,i);const w=Math.atan2(c.y-h.y,c.x-h.x),S=c.distanceToBorder(t,w)+m,x=Math.sqrt(Math.pow(h.x-c.x,2)+Math.pow(h.y-c.y,2)),O=S-x;if(Math.abs(O)0&&(c=this._getDistanceToLine(w,S,m,y,r,A),l=c{this.positionBezierNode()},this._body.emitter.on("_repositionBezierNodes",this._boundFunction)}setOptions(e){super.setOptions(e);let t=!1;this.options.physics!==e.physics&&(t=!0),this.options=e,this.id=this.options.id,this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to],this.setupSupportNode(),this.connect(),t===!0&&(this.via.setOptions({physics:this.options.physics}),this.positionBezierNode())}connect(){this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to],this.from===void 0||this.to===void 0||this.options.physics===!1?this.via.setOptions({physics:!1}):this.from.id===this.to.id?this.via.setOptions({physics:!1}):this.via.setOptions({physics:!0})}cleanup(){return this._body.emitter.off("_repositionBezierNodes",this._boundFunction),this.via!==void 0?(delete this._body.nodes[this.via.id],this.via=void 0,!0):!1}setupSupportNode(){if(this.via===void 0){const e="edgeId:"+this.id,t=this._body.functions.createNode({id:e,shape:"circle",physics:!0,hidden:!0});this._body.nodes[e]=t,this.via=t,this.via.parentEdgeId=this.id,this.positionBezierNode()}}positionBezierNode(){this.via!==void 0&&this.from!==void 0&&this.to!==void 0?(this.via.x=.5*(this.from.x+this.to.x),this.via.y=.5*(this.from.y+this.to.y)):this.via!==void 0&&(this.via.x=0,this.via.y=0)}_line(e,t,i){this._bezierCurve(e,t,i)}_getViaCoordinates(){return this.via}getViaNode(){return this.via}getPoint(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.via;if(this.from===this.to){const[i,o,r]=this._getCircleData(),A=2*Math.PI*(1-e);return{x:i+r*Math.sin(A),y:o+r-r*(1-Math.cos(A))}}else return{x:Math.pow(1-e,2)*this.fromPoint.x+2*e*(1-e)*t.x+Math.pow(e,2)*this.toPoint.x,y:Math.pow(1-e,2)*this.fromPoint.y+2*e*(1-e)*t.y+Math.pow(e,2)*this.toPoint.y}}_findBorderPosition(e,t){return this._findBorderPositionBezier(e,t,this.via)}_getDistanceToEdge(e,t,i,o,r,A){return this._getDistanceToBezierEdge(e,t,i,o,r,A,this.via)}}class ox extends Su{constructor(e,t,i){super(e,t,i)}_line(e,t,i){this._bezierCurve(e,t,i)}getViaNode(){return this._getViaCoordinates()}_getViaCoordinates(){const e=this.options.smooth.roundness,t=this.options.smooth.type;let i=Math.abs(this.from.x-this.to.x),o=Math.abs(this.from.y-this.to.y);if(t==="discrete"||t==="diagonalCross"){let r,A;i<=o?r=A=e*o:r=A=e*i,this.from.x>this.to.x&&(r=-r),this.from.y>=this.to.y&&(A=-A);let I=this.from.x+r,l=this.from.y+A;return t==="discrete"&&(i<=o?I=ithis.to.x&&(r=-r),this.from.y>=this.to.y&&(A=-A);let I=this.from.x+r,l=this.from.y+A;return i<=o?this.from.x<=this.to.x?I=this.to.xI?this.to.x:I:this.from.y>=this.to.y?l=this.to.y>l?this.to.y:l:l=this.to.y2&&arguments[2]!==void 0?arguments[2]:{};return this._findBorderPositionBezier(e,t,i.via)}_getDistanceToEdge(e,t,i,o,r,A){let I=arguments.length>6&&arguments[6]!==void 0?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(e,t,i,o,r,A,I)}getPoint(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._getViaCoordinates();const i=e,o=Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*t.x+Math.pow(i,2)*this.toPoint.x,r=Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*t.y+Math.pow(i,2)*this.toPoint.y;return{x:o,y:r}}}class g$ extends Su{constructor(e,t,i){super(e,t,i)}_getDistanceToBezierEdge2(e,t,i,o,r,A,I,l){let c=1e9,h=e,p=t;const m=[0,0,0,0];for(let y=1;y<10;y++){const w=.1*y;m[0]=Math.pow(1-w,3),m[1]=3*w*Math.pow(1-w,2),m[2]=3*Math.pow(w,2)*(1-w),m[3]=Math.pow(w,3);const S=m[0]*e+m[1]*I.x+m[2]*l.x+m[3]*i,x=m[0]*t+m[1]*I.y+m[2]*l.y+m[3]*o;if(y>0){const O=this._getDistanceToLine(h,p,S,x,r,A);c=OMath.abs(t)||this.options.smooth.forceDirection===!0||this.options.smooth.forceDirection==="horizontal")&&this.options.smooth.forceDirection!=="vertical"?(o=this.from.y,A=this.to.y,i=this.from.x-I*e,r=this.to.x+I*e):(o=this.from.y-I*t,A=this.to.y+I*t,i=this.from.x,r=this.to.x),[{x:i,y:o},{x:r,y:A}]}getViaNode(){return this._getViaCoordinates()}_findBorderPosition(e,t){return this._findBorderPositionBezier(e,t)}_getDistanceToEdge(e,t,i,o,r,A){let[I,l]=arguments.length>6&&arguments[6]!==void 0?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge2(e,t,i,o,r,A,I,l)}getPoint(e){let[t,i]=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._getViaCoordinates();const o=e,r=[Math.pow(1-o,3),3*o*Math.pow(1-o,2),3*Math.pow(o,2)*(1-o),Math.pow(o,3)],A=r[0]*this.fromPoint.x+r[1]*t.x+r[2]*i.x+r[3]*this.toPoint.x,I=r[0]*this.fromPoint.y+r[1]*t.y+r[2]*i.y+r[3]*this.toPoint.y;return{x:A,y:I}}}class rx extends tx{constructor(e,t,i){super(e,t,i)}_line(e,t){e.beginPath(),e.moveTo(this.fromPoint.x,this.fromPoint.y),e.lineTo(this.toPoint.x,this.toPoint.y),this.enableShadow(e,t),e.stroke(),this.disableShadow(e,t)}getViaNode(){}getPoint(e){return{x:(1-e)*this.fromPoint.x+e*this.toPoint.x,y:(1-e)*this.fromPoint.y+e*this.toPoint.y}}_findBorderPosition(e,t){let i=this.to,o=this.from;e.id===this.from.id&&(i=this.from,o=this.to);const r=Math.atan2(i.y-o.y,i.x-o.x),A=i.x-o.x,I=i.y-o.y,l=Math.sqrt(A*A+I*I),c=e.distanceToBorder(t,r),h=(l-c)/l;return{x:(1-h)*o.x+h*i.x,y:(1-h)*o.y+h*i.y,t:0}}_getDistanceToEdge(e,t,i,o,r,A){return this._getDistanceToLine(e,t,i,o,r,A)}}class jg{constructor(e,t,i,o,r){if(t===void 0)throw new Error("No body provided");this.options=Dg(o),this.globalOptions=o,this.defaultOptions=r,this.body=t,this.imagelist=i,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.selected=!1,this.hover=!1,this.labelDirty=!0,this.baseWidth=this.options.width,this.baseFontSize=this.options.font.size,this.from=void 0,this.to=void 0,this.edgeType=void 0,this.connected=!1,this.labelModule=new Bs(this.body,this.options,!0),this.setOptions(e)}setOptions(e){if(!e)return;let t=typeof e.physics<"u"&&this.options.physics!==e.physics||typeof e.hidden<"u"&&(this.options.hidden||!1)!==(e.hidden||!1)||typeof e.from<"u"&&this.options.from!==e.from||typeof e.to<"u"&&this.options.to!==e.to;jg.parseOptions(this.options,e,!0,this.globalOptions),e.id!==void 0&&(this.id=e.id),e.from!==void 0&&(this.fromId=e.from),e.to!==void 0&&(this.toId=e.to),e.title!==void 0&&(this.title=e.title),e.value!==void 0&&(e.value=Uw(e.value));const i=[e,this.options,this.defaultOptions];return this.chooser=bu("edge",i),this.updateLabelModule(e),t=this.updateEdgeType()||t,this._setInteractionWidths(),this.connect(),t}static parseOptions(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;if(Ds(["endPointOffset","arrowStrikethrough","id","from","hidden","hoverWidth","labelHighlightBold","length","line","opacity","physics","scaling","selectionWidth","selfReferenceSize","selfReference","to","title","value","width","font","chosen","widthConstraint"],e,t,i),t.endPointOffset!==void 0&&t.endPointOffset.from!==void 0&&(zo(t.endPointOffset.from)?e.endPointOffset.from=t.endPointOffset.from:(e.endPointOffset.from=o.endPointOffset.from!==void 0?o.endPointOffset.from:0,console.error("endPointOffset.from is not a valid number"))),t.endPointOffset!==void 0&&t.endPointOffset.to!==void 0&&(zo(t.endPointOffset.to)?e.endPointOffset.to=t.endPointOffset.to:(e.endPointOffset.to=o.endPointOffset.to!==void 0?o.endPointOffset.to:0,console.error("endPointOffset.to is not a valid number"))),XC(t.label)?e.label=t.label:XC(e.label)||(e.label=void 0),ii(e,t,"smooth",o),ii(e,t,"shadow",o),ii(e,t,"background",o),t.dashes!==void 0&&t.dashes!==null?e.dashes=t.dashes:i===!0&&t.dashes===null&&(e.dashes=Tg(o.dashes)),t.scaling!==void 0&&t.scaling!==null?(t.scaling.min!==void 0&&(e.scaling.min=t.scaling.min),t.scaling.max!==void 0&&(e.scaling.max=t.scaling.max),ii(e.scaling,t.scaling,"label",o.scaling)):i===!0&&t.scaling===null&&(e.scaling=Tg(o.scaling)),t.arrows!==void 0&&t.arrows!==null)if(typeof t.arrows=="string"){const I=t.arrows.toLowerCase();e.arrows.to.enabled=at(I).call(I,"to")!=-1,e.arrows.middle.enabled=at(I).call(I,"middle")!=-1,e.arrows.from.enabled=at(I).call(I,"from")!=-1}else if(typeof t.arrows=="object")ii(e.arrows,t.arrows,"to",o.arrows),ii(e.arrows,t.arrows,"middle",o.arrows),ii(e.arrows,t.arrows,"from",o.arrows);else throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+bs(t.arrows));else i===!0&&t.arrows===null&&(e.arrows=Tg(o.arrows));if(t.color!==void 0&&t.color!==null){const I=Ns(t.color)?{color:t.color,highlight:t.color,hover:t.color,inherit:!1,opacity:1}:t.color,l=e.color;if(r)mt(l,o.color,!1,i);else for(const c in l)Object.prototype.hasOwnProperty.call(l,c)&&delete l[c];if(Ns(l))l.color=l,l.highlight=l,l.hover=l,l.inherit=!1,I.opacity===void 0&&(l.opacity=1);else{let c=!1;I.color!==void 0&&(l.color=I.color,c=!0),I.highlight!==void 0&&(l.highlight=I.highlight,c=!0),I.hover!==void 0&&(l.hover=I.hover,c=!0),I.inherit!==void 0&&(l.inherit=I.inherit),I.opacity!==void 0&&(l.opacity=Math.min(1,Math.max(0,I.opacity))),c===!0?l.inherit=!1:l.inherit===void 0&&(l.inherit="from")}}else i===!0&&t.color===null&&(e.color=Dg(o.color));i===!0&&t.font===null&&(e.font=Dg(o.font)),Object.prototype.hasOwnProperty.call(t,"selfReferenceSize")&&(console.warn("The selfReferenceSize property has been deprecated. Please use selfReference property instead. The selfReference can be set like thise selfReference:{size:30, angle:Math.PI / 4}"),e.selfReference.size=t.selfReferenceSize)}getFormattingValues(){const e=this.options.arrows.to===!0||this.options.arrows.to.enabled===!0,t=this.options.arrows.from===!0||this.options.arrows.from.enabled===!0,i=this.options.arrows.middle===!0||this.options.arrows.middle.enabled===!0,o=this.options.color.inherit,r={toArrow:e,toArrowScale:this.options.arrows.to.scaleFactor,toArrowType:this.options.arrows.to.type,toArrowSrc:this.options.arrows.to.src,toArrowImageWidth:this.options.arrows.to.imageWidth,toArrowImageHeight:this.options.arrows.to.imageHeight,middleArrow:i,middleArrowScale:this.options.arrows.middle.scaleFactor,middleArrowType:this.options.arrows.middle.type,middleArrowSrc:this.options.arrows.middle.src,middleArrowImageWidth:this.options.arrows.middle.imageWidth,middleArrowImageHeight:this.options.arrows.middle.imageHeight,fromArrow:t,fromArrowScale:this.options.arrows.from.scaleFactor,fromArrowType:this.options.arrows.from.type,fromArrowSrc:this.options.arrows.from.src,fromArrowImageWidth:this.options.arrows.from.imageWidth,fromArrowImageHeight:this.options.arrows.from.imageHeight,arrowStrikethrough:this.options.arrowStrikethrough,color:o?void 0:this.options.color.color,inheritsColor:o,opacity:this.options.color.opacity,hidden:this.options.hidden,length:this.options.length,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y,dashes:this.options.dashes,width:this.options.width,background:this.options.background.enabled,backgroundColor:this.options.background.color,backgroundSize:this.options.background.size,backgroundDashes:this.options.background.dashes};if(this.selected||this.hover)if(this.chooser===!0){if(this.selected){const A=this.options.selectionWidth;typeof A=="function"?r.width=A(r.width):typeof A=="number"&&(r.width+=A),r.width=Math.max(r.width,.3/this.body.view.scale),r.color=this.options.color.highlight,r.shadow=this.options.shadow.enabled}else if(this.hover){const A=this.options.hoverWidth;typeof A=="function"?r.width=A(r.width):typeof A=="number"&&(r.width+=A),r.width=Math.max(r.width,.3/this.body.view.scale),r.color=this.options.color.hover,r.shadow=this.options.shadow.enabled}}else typeof this.chooser=="function"&&(this.chooser(r,this.options.id,this.selected,this.hover),r.color!==void 0&&(r.inheritsColor=!1),r.shadow===!1&&(r.shadowColor!==this.options.shadow.color||r.shadowSize!==this.options.shadow.size||r.shadowX!==this.options.shadow.x||r.shadowY!==this.options.shadow.y)&&(r.shadow=!0));else r.shadow=this.options.shadow.enabled,r.width=Math.max(r.width,.3/this.body.view.scale);return r}updateLabelModule(e){const t=[e,this.options,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,t),this.labelModule.baseSize!==void 0&&(this.baseFontSize=this.labelModule.baseSize)}updateEdgeType(){const e=this.options.smooth;let t=!1,i=!0;return this.edgeType!==void 0&&((this.edgeType instanceof gx&&e.enabled===!0&&e.type==="dynamic"||this.edgeType instanceof sx&&e.enabled===!0&&e.type==="cubicBezier"||this.edgeType instanceof ox&&e.enabled===!0&&e.type!=="dynamic"&&e.type!=="cubicBezier"||this.edgeType instanceof rx&&e.type.enabled===!1)&&(i=!1),i===!0&&(t=this.cleanup())),i===!0?e.enabled===!0?e.type==="dynamic"?(t=!0,this.edgeType=new gx(this.options,this.body,this.labelModule)):e.type==="cubicBezier"?this.edgeType=new sx(this.options,this.body,this.labelModule):this.edgeType=new ox(this.options,this.body,this.labelModule):this.edgeType=new rx(this.options,this.body,this.labelModule):this.edgeType.setOptions(this.options),t}connect(){this.disconnect(),this.from=this.body.nodes[this.fromId]||void 0,this.to=this.body.nodes[this.toId]||void 0,this.connected=this.from!==void 0&&this.to!==void 0,this.connected===!0?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this)),this.edgeType.connect()}disconnect(){this.from&&(this.from.detachEdge(this),this.from=void 0),this.to&&(this.to.detachEdge(this),this.to=void 0),this.connected=!1}getTitle(){return this.title}isSelected(){return this.selected}getValue(){return this.options.value}setValueRange(e,t,i){if(this.options.value!==void 0){const o=this.options.scaling.customScalingFunction(e,t,i,this.options.value),r=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===!0){const A=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+o*A}this.options.width=this.options.scaling.min+o*r}else this.options.width=this.baseWidth,this.options.font.size=this.baseFontSize;this._setInteractionWidths(),this.updateLabelModule()}_setInteractionWidths(){typeof this.options.hoverWidth=="function"?this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width):this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width,typeof this.options.selectionWidth=="function"?this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width):this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}draw(e){const t=this.getFormattingValues();if(t.hidden)return;const i=this.edgeType.getViaNode();this.edgeType.drawLine(e,t,this.selected,this.hover,i),this.drawLabel(e,i)}drawArrows(e){const t=this.getFormattingValues();if(t.hidden)return;const i=this.edgeType.getViaNode(),o={};this.edgeType.fromPoint=this.edgeType.from,this.edgeType.toPoint=this.edgeType.to,t.fromArrow&&(o.from=this.edgeType.getArrowData(e,"from",i,this.selected,this.hover,t),t.arrowStrikethrough===!1&&(this.edgeType.fromPoint=o.from.core),t.fromArrowSrc&&(o.from.image=this.imagelist.load(t.fromArrowSrc)),t.fromArrowImageWidth&&(o.from.imageWidth=t.fromArrowImageWidth),t.fromArrowImageHeight&&(o.from.imageHeight=t.fromArrowImageHeight)),t.toArrow&&(o.to=this.edgeType.getArrowData(e,"to",i,this.selected,this.hover,t),t.arrowStrikethrough===!1&&(this.edgeType.toPoint=o.to.core),t.toArrowSrc&&(o.to.image=this.imagelist.load(t.toArrowSrc)),t.toArrowImageWidth&&(o.to.imageWidth=t.toArrowImageWidth),t.toArrowImageHeight&&(o.to.imageHeight=t.toArrowImageHeight)),t.middleArrow&&(o.middle=this.edgeType.getArrowData(e,"middle",i,this.selected,this.hover,t),t.middleArrowSrc&&(o.middle.image=this.imagelist.load(t.middleArrowSrc)),t.middleArrowImageWidth&&(o.middle.imageWidth=t.middleArrowImageWidth),t.middleArrowImageHeight&&(o.middle.imageHeight=t.middleArrowImageHeight)),t.fromArrow&&this.edgeType.drawArrowHead(e,t,this.selected,this.hover,o.from),t.middleArrow&&this.edgeType.drawArrowHead(e,t,this.selected,this.hover,o.middle),t.toArrow&&this.edgeType.drawArrowHead(e,t,this.selected,this.hover,o.to)}drawLabel(e,t){if(this.options.label!==void 0){const i=this.from,o=this.to;this.labelModule.differentState(this.selected,this.hover)&&this.labelModule.getTextSize(e,this.selected,this.hover);let r;if(i.id!=o.id){this.labelModule.pointToSelf=!1,r=this.edgeType.getPoint(.5,t),e.save();const A=this._getRotation(e);A.angle!=0&&(e.translate(A.x,A.y),e.rotate(A.angle)),this.labelModule.draw(e,r.x,r.y,this.selected,this.hover),e.restore()}else{this.labelModule.pointToSelf=!0;const A=Yw(e,this.options.selfReference.angle,this.options.selfReference.size,i);r=this._pointOnCircle(A.x,A.y,this.options.selfReference.size,this.options.selfReference.angle),this.labelModule.draw(e,r.x,r.y,this.selected,this.hover)}}}getItemsOnPoint(e){const t=[];if(this.labelModule.visible()){const o=this._getRotation();wu(this.labelModule.getSize(),e,o)&&t.push({edgeId:this.id,labelId:0})}const i={left:e.x,top:e.y};return this.isOverlappingWith(i)&&t.push({edgeId:this.id}),t}isOverlappingWith(e){if(this.connected){const i=this.from.x,o=this.from.y,r=this.to.x,A=this.to.y,I=e.left,l=e.top;return this.edgeType.getDistanceToEdge(i,o,r,A,I,l)<10}else return!1}_getRotation(e){const t=this.edgeType.getViaNode(),i=this.edgeType.getPoint(.5,t);e!==void 0&&this.labelModule.calculateLabelSize(e,this.selected,this.hover,i.x,i.y);const o={x:i.x,y:this.labelModule.size.yLine,angle:0};if(!this.labelModule.visible()||this.options.font.align==="horizontal")return o;const r=this.from.y-this.to.y,A=this.from.x-this.to.x;let I=Math.atan2(r,A);return(I<-1&&A<0||I>0&&A<0)&&(I+=Math.PI),o.angle=I,o}_pointOnCircle(e,t,i,o){return{x:e+i*Math.cos(o),y:t-i*Math.sin(o)}}select(){this.selected=!0}unselect(){this.selected=!1}cleanup(){return this.edgeType.cleanup()}remove(){this.cleanup(),this.disconnect(),delete this.body.edges[this.id]}endPointsValid(){return this.body.nodes[this.fromId]!==void 0&&this.body.nodes[this.toId]!==void 0}}class o${constructor(e,t,i){var o;this.body=e,this.images=t,this.groups=i,this.body.functions.createEdge=ge(o=this.create).call(o,this),this.edgesListeners={add:(r,A)=>{this.add(A.items)},update:(r,A)=>{this.update(A.items)},remove:(r,A)=>{this.remove(A.items)}},this.options={},this.defaultOptions={arrows:{to:{enabled:!1,scaleFactor:1,type:"arrow"},middle:{enabled:!1,scaleFactor:1,type:"arrow"},from:{enabled:!1,scaleFactor:1,type:"arrow"}},endPointOffset:{from:0,to:0},arrowStrikethrough:!0,color:{color:"#848484",highlight:"#848484",hover:"#848484",inherit:"from",opacity:1},dashes:!1,font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:2,strokeColor:"#ffffff",align:"horizontal",multi:!1,vadjust:0,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"courier new",vadjust:2}},hidden:!1,hoverWidth:1.5,label:void 0,labelHighlightBold:!0,length:void 0,physics:!0,scaling:{min:1,max:15,label:{enabled:!0,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(r,A,I,l){if(A===r)return .5;{const c=1/(A-r);return Math.max(0,(l-r)*c)}}},selectionWidth:1.5,selfReference:{size:20,angle:Math.PI/4,renderBehindTheNode:!0},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},background:{enabled:!1,color:"rgba(111,111,111,1)",size:10,dashes:!1},smooth:{enabled:!0,type:"dynamic",forceDirection:"none",roundness:.5},title:void 0,width:1,value:void 0},mt(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){var e=this,t,i;this.body.emitter.on("_forceDisableDynamicCurves",function(o){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;o==="dynamic"&&(o="continuous");let A=!1;for(const I in e.body.edges)if(Object.prototype.hasOwnProperty.call(e.body.edges,I)){const l=e.body.edges[I],c=e.body.data.edges.get(I);if(c!=null){const h=c.smooth;h!==void 0&&h.enabled===!0&&h.type==="dynamic"&&(o===void 0?l.setOptions({smooth:!1}):l.setOptions({smooth:{type:o}}),A=!0)}}r===!0&&A===!0&&e.body.emitter.emit("_dataChanged")}),this.body.emitter.on("_dataUpdated",()=>{this.reconnectEdges()}),this.body.emitter.on("refreshEdges",ge(t=this.refresh).call(t,this)),this.body.emitter.on("refresh",ge(i=this.refresh).call(i,this)),this.body.emitter.on("destroy",()=>{Ye(this.edgesListeners,(o,r)=>{this.body.data.edges&&this.body.data.edges.off(r,o)}),delete this.body.functions.createEdge,delete this.edgesListeners.add,delete this.edgesListeners.update,delete this.edgesListeners.remove,delete this.edgesListeners})}setOptions(e){if(e!==void 0){jg.parseOptions(this.options,e,!0,this.defaultOptions,!0);let t=!1;if(e.smooth!==void 0)for(const i in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,i)&&(t=this.body.edges[i].updateEdgeType()||t);if(e.font!==void 0)for(const i in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,i)&&this.body.edges[i].updateLabelModule();(e.hidden!==void 0||e.physics!==void 0||t===!0)&&this.body.emitter.emit("_dataChanged")}}setData(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const i=this.body.data.edges;if(Pw("id",e))this.body.data.edges=e;else if(et(e))this.body.data.edges=new Zs,this.body.data.edges.add(e);else if(!e)this.body.data.edges=new Zs;else throw new TypeError("Array or DataSet expected");if(i&&Ye(this.edgesListeners,(o,r)=>{i.off(r,o)}),this.body.edges={},this.body.data.edges){Ye(this.edgesListeners,(r,A)=>{this.body.data.edges.on(A,r)});const o=this.body.data.edges.getIds();this.add(o,!0)}this.body.emitter.emit("_adjustEdgesForHierarchicalLayout"),t===!1&&this.body.emitter.emit("_dataChanged")}add(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const i=this.body.edges,o=this.body.data.edges;for(let r=0;r1&&arguments[1]!==void 0?arguments[1]:!0;if(e.length===0)return;const i=this.body.edges;Ye(e,o=>{const r=i[o];r!==void 0&&r.remove()}),t&&this.body.emitter.emit("_dataChanged")}refresh(){Ye(this.body.edges,(e,t)=>{const i=this.body.data.edges.get(t);i!==void 0&&e.setOptions(i)})}create(e){return new jg(e,this.body,this.images,this.options,this.defaultOptions)}reconnectEdges(){let e;const t=this.body.nodes,i=this.body.edges;for(e in t)Object.prototype.hasOwnProperty.call(t,e)&&(t[e].edges=[]);for(e in i)if(Object.prototype.hasOwnProperty.call(i,e)){const o=i[e];o.from=null,o.to=null,o.connect()}}getConnectedNodes(e){const t=[];if(this.body.edges[e]!==void 0){const i=this.body.edges[e];i.fromId!==void 0&&t.push(i.fromId),i.toId!==void 0&&t.push(i.toId)}return t}_updateState(){this._addMissingEdges(),this._removeInvalidEdges()}_removeInvalidEdges(){const e=[];Ye(this.body.edges,(t,i)=>{const o=this.body.nodes[t.toId],r=this.body.nodes[t.fromId];o!==void 0&&o.isCluster===!0||r!==void 0&&r.isCluster===!0||(o===void 0||r===void 0)&&e.push(i)}),this.remove(e,!1)}_addMissingEdges(){const e=this.body.data.edges;if(e==null)return;const t=this.body.edges,i=[];Je(e).call(e,(o,r)=>{t[r]===void 0&&i.push(r)}),this.add(i,!0)}}class ax{constructor(e,t,i){this.body=e,this.physicsBody=t,this.barnesHutTree,this.setOptions(i),this._rng=jC("BARNES HUT SOLVER")}setOptions(e){this.options=e,this.thetaInversed=1/this.options.theta,this.overlapAvoidanceFactor=1-Math.max(0,Math.min(1,this.options.avoidOverlap))}solve(){if(this.options.gravitationalConstant!==0&&this.physicsBody.physicsNodeIndices.length>0){let e;const t=this.body.nodes,i=this.physicsBody.physicsNodeIndices,o=i.length,r=this._formBarnesHutTree(t,i);this.barnesHutTree=r;for(let A=0;A0&&this._getForceContributions(r.root,e)}}_getForceContributions(e,t){this._getForceContribution(e.children.NW,t),this._getForceContribution(e.children.NE,t),this._getForceContribution(e.children.SW,t),this._getForceContribution(e.children.SE,t)}_getForceContribution(e,t){if(e.childrenCount>0){const i=e.centerOfMass.x-t.x,o=e.centerOfMass.y-t.y,r=Math.sqrt(i*i+o*o);r*e.calcSize>this.thetaInversed?this._calculateForces(r,i,o,t,e):e.childrenCount===4?this._getForceContributions(e,t):e.children.data.id!=t.id&&this._calculateForces(r,i,o,t,e)}}_calculateForces(e,t,i,o,r){e===0&&(e=.1,t=e),this.overlapAvoidanceFactor<1&&o.shape.radius&&(e=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,e-o.shape.radius));const A=this.options.gravitationalConstant*r.mass*o.options.mass/Math.pow(e,3),I=t*A,l=i*A;this.physicsBody.forces[o.id].x+=I,this.physicsBody.forces[o.id].y+=l}_formBarnesHutTree(e,t){let i;const o=t.length;let r=e[t[0]].x,A=e[t[0]].y,I=e[t[0]].x,l=e[t[0]].y;for(let x=1;x0&&(EI&&(I=E),_l&&(l=_))}const c=Math.abs(I-r)-Math.abs(l-A);c>0?(A-=.5*c,l+=.5*c):(r+=.5*c,I-=.5*c);const p=Math.max(1e-5,Math.abs(I-r)),m=.5*p,y=.5*(r+I),w=.5*(A+l),S={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:y-m,maxX:y+m,minY:w-m,maxY:w+m},size:p,calcSize:1/p,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(S.root);for(let x=0;x0&&this._placeInTree(S.root,i);return S}_updateBranchMass(e,t){const i=e.centerOfMass,o=e.mass+t.options.mass,r=1/o;i.x=i.x*e.mass+t.x*t.options.mass,i.x*=r,i.y=i.y*e.mass+t.y*t.options.mass,i.y*=r,e.mass=o;const A=Math.max(Math.max(t.height,t.radius),t.width);e.maxWidth=e.maxWidtht.x?o.maxY>t.y?r="NW":r="SW":o.maxY>t.y?r="NE":r="SE",this._placeInRegion(e,t,r)}_placeInRegion(e,t,i){const o=e.children[i];switch(o.childrenCount){case 0:o.children.data=t,o.childrenCount=1,this._updateBranchMass(o,t);break;case 1:o.children.data.x===t.x&&o.children.data.y===t.y?(t.x+=this._rng(),t.y+=this._rng()):(this._splitBranch(o),this._placeInTree(o,t));break;case 4:this._placeInTree(o,t);break}}_splitBranch(e){let t=null;e.childrenCount===1&&(t=e.children.data,e.mass=0,e.centerOfMass.x=0,e.centerOfMass.y=0),e.childrenCount=4,e.children.data=null,this._insertRegion(e,"NW"),this._insertRegion(e,"NE"),this._insertRegion(e,"SW"),this._insertRegion(e,"SE"),t!=null&&this._placeInTree(e,t)}_insertRegion(e,t){let i,o,r,A;const I=.5*e.size;switch(t){case"NW":i=e.range.minX,o=e.range.minX+I,r=e.range.minY,A=e.range.minY+I;break;case"NE":i=e.range.minX+I,o=e.range.maxX,r=e.range.minY,A=e.range.minY+I;break;case"SW":i=e.range.minX,o=e.range.minX+I,r=e.range.minY+I,A=e.range.maxY;break;case"SE":i=e.range.minX+I,o=e.range.maxX,r=e.range.minY+I,A=e.range.maxY;break}e.children[t]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:o,minY:r,maxY:A},size:.5*e.size,calcSize:2*e.calcSize,children:{data:null},maxWidth:0,level:e.level+1,childrenCount:0}}_debug(e,t){this.barnesHutTree!==void 0&&(e.lineWidth=1,this._drawBranch(this.barnesHutTree.root,e,t))}_drawBranch(e,t,i){i===void 0&&(i="#FF0000"),e.childrenCount===4&&(this._drawBranch(e.children.NW,t),this._drawBranch(e.children.NE,t),this._drawBranch(e.children.SE,t),this._drawBranch(e.children.SW,t)),t.strokeStyle=i,t.beginPath(),t.moveTo(e.range.minX,e.range.minY),t.lineTo(e.range.maxX,e.range.minY),t.stroke(),t.beginPath(),t.moveTo(e.range.maxX,e.range.minY),t.lineTo(e.range.maxX,e.range.maxY),t.stroke(),t.beginPath(),t.moveTo(e.range.maxX,e.range.maxY),t.lineTo(e.range.minX,e.range.maxY),t.stroke(),t.beginPath(),t.moveTo(e.range.minX,e.range.maxY),t.lineTo(e.range.minX,e.range.minY),t.stroke()}}class s${constructor(e,t,i){this._rng=jC("REPULSION SOLVER"),this.body=e,this.physicsBody=t,this.setOptions(i)}setOptions(e){this.options=e}solve(){let e,t,i,o,r,A,I,l;const c=this.body.nodes,h=this.physicsBody.physicsNodeIndices,p=this.physicsBody.forces,m=this.options.nodeDistance,y=-2/3/m,w=4/3;for(let S=0;S0){const A=r.edges.length+1,I=this.options.centralGravity*A*r.options.mass;o[r.id].x=t*I,o[r.id].y=i*I}}}class I${constructor(e){this.body=e,this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}},this.physicsEnabled=!0,this.simulationInterval=1e3/60,this.requiresTimeout=!0,this.previousStates={},this.referenceState={},this.freezeCache={},this.renderTimer=void 0,this.adaptiveTimestep=!1,this.adaptiveTimestepEnabled=!1,this.adaptiveCounter=0,this.adaptiveInterval=3,this.stabilized=!1,this.startedStabilization=!1,this.stabilizationIterations=0,this.ready=!1,this.options={},this.defaultOptions={enabled:!0,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:"barnesHut",stabilization:{enabled:!0,iterations:1e3,updateInterval:50,onlyDynamicEdges:!1,fit:!0},timestep:.5,adaptiveTimestep:!0,wind:{x:0,y:0}},Vt(this.options,this.defaultOptions),this.timestep=.5,this.layoutFailed=!1,this.bindEventListeners()}bindEventListeners(){this.body.emitter.on("initPhysics",()=>{this.initPhysics()}),this.body.emitter.on("_layoutFailed",()=>{this.layoutFailed=!0}),this.body.emitter.on("resetPhysics",()=>{this.stopSimulation(),this.ready=!1}),this.body.emitter.on("disablePhysics",()=>{this.physicsEnabled=!1,this.stopSimulation()}),this.body.emitter.on("restorePhysics",()=>{this.setOptions(this.options),this.ready===!0&&this.startSimulation()}),this.body.emitter.on("startSimulation",()=>{this.ready===!0&&this.startSimulation()}),this.body.emitter.on("stopSimulation",()=>{this.stopSimulation()}),this.body.emitter.on("destroy",()=>{this.stopSimulation(!1),this.body.emitter.off()}),this.body.emitter.on("_dataChanged",()=>{this.updatePhysicsData()})}setOptions(e){if(e!==void 0)if(e===!1)this.options.enabled=!1,this.physicsEnabled=!1,this.stopSimulation();else if(e===!0)this.options.enabled=!0,this.physicsEnabled=!0,this.startSimulation();else{this.physicsEnabled=!0,ZC(["stabilization"],this.options,e),ii(this.options,e,"stabilization"),e.enabled===void 0&&(this.options.enabled=!0),this.options.enabled===!1&&(this.physicsEnabled=!1,this.stopSimulation());const t=this.options.wind;t&&((typeof t.x!="number"||au(t.x))&&(t.x=0),(typeof t.y!="number"||au(t.y))&&(t.y=0)),this.timestep=this.options.timestep}this.init()}init(){let e;this.options.solver==="forceAtlas2Based"?(e=this.options.forceAtlas2Based,this.nodesSolver=new A$(this.body,this.physicsBody,e),this.edgesSolver=new Eu(this.body,this.physicsBody,e),this.gravitySolver=new C$(this.body,this.physicsBody,e)):this.options.solver==="repulsion"?(e=this.options.repulsion,this.nodesSolver=new s$(this.body,this.physicsBody,e),this.edgesSolver=new Eu(this.body,this.physicsBody,e),this.gravitySolver=new $C(this.body,this.physicsBody,e)):this.options.solver==="hierarchicalRepulsion"?(e=this.options.hierarchicalRepulsion,this.nodesSolver=new r$(this.body,this.physicsBody,e),this.edgesSolver=new a$(this.body,this.physicsBody,e),this.gravitySolver=new $C(this.body,this.physicsBody,e)):(e=this.options.barnesHut,this.nodesSolver=new ax(this.body,this.physicsBody,e),this.edgesSolver=new Eu(this.body,this.physicsBody,e),this.gravitySolver=new $C(this.body,this.physicsBody,e)),this.modelOptions=e}initPhysics(){this.physicsEnabled===!0&&this.options.enabled===!0?this.options.stabilization.enabled===!0?this.stabilize():(this.stabilized=!1,this.ready=!0,this.body.emitter.emit("fit",{},this.layoutFailed),this.startSimulation()):(this.ready=!0,this.body.emitter.emit("fit"))}startSimulation(){if(this.physicsEnabled===!0&&this.options.enabled===!0){if(this.stabilized=!1,this.adaptiveTimestep=!1,this.body.emitter.emit("_resizeNodes"),this.viewFunction===void 0){var e;this.viewFunction=ge(e=this.simulationStep).call(e,this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering")}}else this.body.emitter.emit("_redraw")}stopSimulation(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.stabilized=!0,e===!0&&this._emitStabilized(),this.viewFunction!==void 0&&(this.body.emitter.off("initRedraw",this.viewFunction),this.viewFunction=void 0,e===!0&&this.body.emitter.emit("_stopRendering"))}simulationStep(){const e=SC();this.physicsTick(),(SC()-e<.4*this.simulationInterval||this.runDoubleSpeed===!0)&&this.stabilized===!1&&(this.physicsTick(),this.runDoubleSpeed=!0),this.stabilized===!0&&this.stopSimulation()}_emitStabilized(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.stabilizationIterations;(this.stabilizationIterations>1||this.startedStabilization===!0)&&Mi(()=>{this.body.emitter.emit("stabilized",{iterations:e}),this.startedStabilization=!1,this.stabilizationIterations=0},0)}physicsStep(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve(),this.moveNodes()}adjustTimeStep(){this._evaluateStepQuality()===!0?this.timestep=1.2*this.timestep:this.timestep/1.2A))return!1;return!0}moveNodes(){const e=this.physicsBody.physicsNodeIndices;let t=0,i=0;const o=5;for(let r=0;rA&&(e=e>0?A:-A),e}_performStep(e){const t=this.body.nodes[e],i=this.physicsBody.forces[e];this.options.wind&&(i.x+=this.options.wind.x,i.y+=this.options.wind.y);const o=this.physicsBody.velocities[e];return this.previousStates[e]={x:t.x,y:t.y,vx:o.x,vy:o.y},t.options.fixed.x===!1?(o.x=this.calculateComponentVelocity(o.x,i.x,t.options.mass),t.x+=o.x*this.timestep):(i.x=0,o.x=0),t.options.fixed.y===!1?(o.y=this.calculateComponentVelocity(o.y,i.y,t.options.mass),t.y+=o.y*this.timestep):(i.y=0,o.y=0),Math.sqrt(Math.pow(o.x,2)+Math.pow(o.y,2))}_freezeNodes(){const e=this.body.nodes;for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&e[t].x&&e[t].y){const i=e[t].options.fixed;this.freezeCache[t]={x:i.x,y:i.y},i.x=!0,i.y=!0}}_restoreFrozenNodes(){const e=this.body.nodes;for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&this.freezeCache[t]!==void 0&&(e[t].options.fixed.x=this.freezeCache[t].x,e[t].options.fixed.y=this.freezeCache[t].y);this.freezeCache={}}stabilize(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.stabilization.iterations;if(typeof e!="number"&&(e=this.options.stabilization.iterations,console.error("The stabilize method needs a numeric amount of iterations. Switching to default: ",e)),this.physicsBody.physicsNodeIndices.length===0){this.ready=!0;return}this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit("_resizeNodes"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedraw"),this.targetIterations=e,this.options.stabilization.onlyDynamicEdges===!0&&this._freezeNodes(),this.stabilizationIterations=0,Mi(()=>this._stabilizationBatch(),0)}_startStabilizing(){return this.startedStabilization===!0?!1:(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0,!0)}_stabilizationBatch(){const e=()=>this.stabilized===!1&&this.stabilizationIterations{this.body.emitter.emit("stabilizationProgress",{iterations:this.stabilizationIterations,total:this.targetIterations})};this._startStabilizing()&&t();let i=0;for(;e()&&i1&&arguments[1]!==void 0?arguments[1]:[],i=1e9,o=-1e9,r=1e9,A=-1e9,I;if(t.length>0)for(let l=0;lI.shape.boundingBox.left&&(r=I.shape.boundingBox.left),AI.shape.boundingBox.top&&(i=I.shape.boundingBox.top),o1&&arguments[1]!==void 0?arguments[1]:[],i=1e9,o=-1e9,r=1e9,A=-1e9,I;if(t.length>0)for(let l=0;lI.x&&(r=I.x),AI.y&&(i=I.y),o{delete this.containedEdges[i.id]}),Ye(t.containedNodes,(i,o)=>{this.containedNodes[o]=i}),t.containedNodes={},Ye(t.containedEdges,(i,o)=>{this.containedEdges[o]=i}),t.containedEdges={},Ye(t.edges,i=>{Ye(this.edges,o=>{var r,A;const I=at(r=o.clusteringEdgeReplacingIds).call(r,i.id);I!==-1&&(Ye(i.clusteringEdgeReplacingIds,l=>{o.clusteringEdgeReplacingIds.push(l),this.body.edges[l].edgeReplacedById=o.id}),Di(A=o.clusteringEdgeReplacingIds).call(A,I,1))})}),t.edges=[]}}class c${constructor(e){this.body=e,this.clusteredNodes={},this.clusteredEdges={},this.options={},this.defaultOptions={},Vt(this.options,this.defaultOptions),this.body.emitter.on("_resetData",()=>{this.clusteredNodes={},this.clusteredEdges={}})}clusterByHubsize(e,t){e===void 0?e=this._getHubSize():typeof e=="object"&&(t=this._checkOptions(e),e=this._getHubSize());const i=[];for(let o=0;o=e&&i.push(r.id)}for(let o=0;o0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(e.joinCondition===void 0)throw new Error("Cannot call clusterByNodeData without a joinCondition function in the options.");e=this._checkOptions(e);const i={},o={};Ye(this.body.nodes,(r,A)=>{r.options&&e.joinCondition(r.options)===!0&&(i[A]=r,Ye(r.edges,I=>{this.clusteredEdges[I.id]===void 0&&(o[I.id]=I)}))}),this._cluster(i,o,e,t)}clusterByEdgeCount(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;t=this._checkOptions(t);const o=[],r={};let A,I,l;for(let c=0;c0&&wt(p).length>0&&S===!0){const O=function(){for(let E=0;E1&&arguments[1]!==void 0?arguments[1]:!0;this.clusterByEdgeCount(1,e,t)}clusterBridges(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;this.clusterByEdgeCount(2,e,t)}clusterByConnection(e,t){var i;let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0)throw new Error("No nodeId supplied to clusterByConnection!");if(this.body.nodes[e]===void 0)throw new Error("The nodeId given to clusterByConnection does not exist!");const r=this.body.nodes[e];t=this._checkOptions(t,r),t.clusterNodeProperties.x===void 0&&(t.clusterNodeProperties.x=r.x),t.clusterNodeProperties.y===void 0&&(t.clusterNodeProperties.y=r.y),t.clusterNodeProperties.fixed===void 0&&(t.clusterNodeProperties.fixed={},t.clusterNodeProperties.fixed.x=r.options.fixed.x,t.clusterNodeProperties.fixed.y=r.options.fixed.y);const A={},I={},l=r.id,c=En.cloneOptions(r);A[l]=r;for(let p=0;p-1&&(I[w.id]=w)}}this._cluster(A,I,t,o)}_createClusterEdges(e,t,i,o){let r,A,I,l,c,h;const p=wt(e),m=[];for(let S=0;S0&&arguments[0]!==void 0?arguments[0]:{};return e.clusterEdgeProperties===void 0&&(e.clusterEdgeProperties={}),e.clusterNodeProperties===void 0&&(e.clusterNodeProperties={}),e}_cluster(e,t,i){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;const r=[];for(const h in e)Object.prototype.hasOwnProperty.call(e,h)&&this.clusteredNodes[h]!==void 0&&r.push(h);for(let h=0;ho?I.x:o,r=I.yA?I.y:A;return{x:.5*(i+o),y:.5*(r+A)}}openCluster(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0)throw new Error("No clusterNodeId supplied to openCluster.");const o=this.body.nodes[e];if(o===void 0)throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(o.isCluster!==!0||o.containedNodes===void 0||o.containedEdges===void 0)throw new Error("The node:"+e+" is not a valid cluster.");const r=this.findNode(e),A=at(r).call(r,e)-1;if(A>=0){const h=r[A];this.body.nodes[h]._openChildCluster(e),delete this.body.nodes[e],i===!0&&this.body.emitter.emit("_dataChanged");return}const I=o.containedNodes,l=o.containedEdges;if(t!==void 0&&t.releaseFunction!==void 0&&typeof t.releaseFunction=="function"){const h={},p={x:o.x,y:o.y};for(const y in I)if(Object.prototype.hasOwnProperty.call(I,y)){const w=this.body.nodes[y];h[y]={x:w.x,y:w.y}}const m=t.releaseFunction(p,h);for(const y in I)if(Object.prototype.hasOwnProperty.call(I,y)){const w=this.body.nodes[y];m[y]!==void 0&&(w.x=m[y].x===void 0?o.x:m[y].x,w.y=m[y].y===void 0?o.y:m[y].y)}}else Ye(I,function(h){h.options.fixed.x===!1&&(h.x=o.x),h.options.fixed.y===!1&&(h.y=o.y)});for(const h in I)if(Object.prototype.hasOwnProperty.call(I,h)){const p=this.body.nodes[h];p.vx=o.vx,p.vy=o.vy,p.setOptions({physics:!0}),delete this.clusteredNodes[h]}const c=[];for(let h=0;h0&&Ao&&(o=c.edges.length),e+=c.edges.length,t+=Math.pow(c.edges.length,2),i+=1}e=e/i,t=t/i;const r=t-Math.pow(e,2),A=Math.sqrt(r);let I=Math.floor(e+2*A);return I>o&&(I=o),I}_createClusteredEdge(e,t,i,o,r){const A=En.cloneOptions(i,"edge");mt(A,o),A.from=e,A.to=t,A.id="clusterEdge:"+js(),r!==void 0&&mt(A,r);const I=this.body.functions.createEdge(A);return I.clusteringEdgeReplacingIds=[i.id],I.connect(),this.body.edges[I.id]=I,I}_clusterEdges(e,t,i,o){if(t instanceof jg){const r=t,A={};A[r.id]=r,t=A}if(e instanceof Ot){const r=e,A={};A[r.id]=r,e=A}if(i==null)throw new Error("_clusterEdges: parameter clusterNode required");o===void 0&&(o=i.clusterEdgeProperties),this._createClusterEdges(e,t,i,o);for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&this.body.edges[r]!==void 0){const A=this.body.edges[r];this._backupEdgeOptions(A),A.setOptions({physics:!1})}for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(this.clusteredNodes[r]={clusterId:i.id,node:this.body.nodes[r]},this.body.nodes[r].setOptions({physics:!1}))}_getClusterNodeForNode(e){if(e===void 0)return;const t=this.clusteredNodes[e];if(t===void 0)return;const i=t.clusterId;if(i!==void 0)return this.body.nodes[i]}_filter(e,t){const i=[];return Ye(e,o=>{t(o)&&i.push(o)}),i}_updateState(){let e;const t=[],i={},o=l=>{Ye(this.body.nodes,c=>{c.isCluster===!0&&l(c)})};for(e in this.clusteredNodes){if(!Object.prototype.hasOwnProperty.call(this.clusteredNodes,e))continue;this.body.nodes[e]===void 0&&t.push(e)}o(function(l){for(let c=0;c{const c=this.body.edges[l];(c===void 0||!c.endPointsValid())&&(i[l]=l)}),o(function(l){Ye(l.containedEdges,(c,h)=>{!c.endPointsValid()&&!i[h]&&(i[h]=h)})}),Ye(this.body.edges,(l,c)=>{let h=!0;const p=l.clusteringEdgeReplacingIds;if(p!==void 0){let m=0;Ye(p,y=>{const w=this.body.edges[y];w!==void 0&&w.endPointsValid()&&(m+=1)}),h=m>0}(!l.endPointsValid()||!h)&&(i[c]=c)}),o(l=>{Ye(i,c=>{delete l.containedEdges[c],Ye(l.edges,(h,p)=>{if(h.id===c){l.edges[p]=null;return}h.clusteringEdgeReplacingIds=this._filter(h.clusteringEdgeReplacingIds,function(m){return!i[m]})}),l.edges=this._filter(l.edges,function(h){return h!==null})})}),Ye(i,l=>{delete this.clusteredEdges[l]}),Ye(i,l=>{delete this.body.edges[l]});const r=wt(this.body.edges);Ye(r,l=>{const c=this.body.edges[l],h=this._isClusteredNode(c.fromId)||this._isClusteredNode(c.toId);if(h!==this._isClusteredEdge(c.id))if(h){const p=this._getClusterNodeForNode(c.fromId);p!==void 0&&this._clusterEdges(this.body.nodes[c.fromId],c,p);const m=this._getClusterNodeForNode(c.toId);m!==void 0&&this._clusterEdges(this.body.nodes[c.toId],c,m)}else delete this._clusterEdges[l],this._restoreEdge(c)});let A=!1,I=!0;for(;I;){const l=[];o(function(c){const h=wt(c.containedNodes).length,p=c.options.allowSingleNodeCluster===!0;(p&&h<1||!p&&h<2)&&l.push(c.id)});for(let c=0;c0,A=A||I}A&&this._updateState()}_isClusteredNode(e){return this.clusteredNodes[e]!==void 0}_isClusteredEdge(e){return this.clusteredEdges[e]!==void 0}}class d${constructor(e,t){this.body=e,this.canvas=t,this.redrawRequested=!1,this.requestAnimationFrameRequestId=void 0,this.renderingActive=!1,this.renderRequests=0,this.allowRedraw=!0,this.dragging=!1,this.zooming=!1,this.options={},this.defaultOptions={hideEdgesOnDrag:!1,hideEdgesOnZoom:!1,hideNodesOnDrag:!1},Vt(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){var e;this.body.emitter.on("dragStart",()=>{this.dragging=!0}),this.body.emitter.on("dragEnd",()=>{this.dragging=!1}),this.body.emitter.on("zoom",()=>{this.zooming=!0,window.clearTimeout(this.zoomTimeoutId),this.zoomTimeoutId=Mi(()=>{var t;this.zooming=!1,ge(t=this._requestRedraw).call(t,this)()},250)}),this.body.emitter.on("_resizeNodes",()=>{this._resizeNodes()}),this.body.emitter.on("_redraw",()=>{this.renderingActive===!1&&this._redraw()}),this.body.emitter.on("_blockRedraw",()=>{this.allowRedraw=!1}),this.body.emitter.on("_allowRedraw",()=>{this.allowRedraw=!0,this.redrawRequested=!1}),this.body.emitter.on("_requestRedraw",ge(e=this._requestRedraw).call(e,this)),this.body.emitter.on("_startRendering",()=>{this.renderRequests+=1,this.renderingActive=!0,this._startRendering()}),this.body.emitter.on("_stopRendering",()=>{this.renderRequests-=1,this.renderingActive=this.renderRequests>0,this.requestAnimationFrameRequestId=void 0}),this.body.emitter.on("destroy",()=>{this.renderRequests=0,this.allowRedraw=!1,this.renderingActive=!1,window.cancelAnimationFrame(this.requestAnimationFrameRequestId),this.body.emitter.off()})}setOptions(e){e!==void 0&&Ds(["hideEdgesOnDrag","hideEdgesOnZoom","hideNodesOnDrag"],this.options,e)}_startRendering(){if(this.renderingActive===!0&&this.requestAnimationFrameRequestId===void 0){var e;this.requestAnimationFrameRequestId=window.requestAnimationFrame(ge(e=this._renderStep).call(e,this),this.simulationInterval)}}_renderStep(){this.renderingActive===!0&&(this.requestAnimationFrameRequestId=void 0,this._startRendering(),this._redraw())}redraw(){this.body.emitter.emit("setSize"),this._redraw()}_requestRedraw(){this.redrawRequested!==!0&&this.renderingActive===!1&&this.allowRedraw===!0&&(this.redrawRequested=!0,window.requestAnimationFrame(()=>{this._redraw(!1)}))}_redraw(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;if(this.allowRedraw===!0){this.body.emitter.emit("initRedraw"),this.redrawRequested=!1;const t={drawExternalLabels:null};(this.canvas.frame.canvas.width===0||this.canvas.frame.canvas.height===0)&&this.canvas.setSize(),this.canvas.setTransform();const i=this.canvas.getContext(),o=this.canvas.frame.canvas.clientWidth,r=this.canvas.frame.canvas.clientHeight;if(i.clearRect(0,0,o,r),this.canvas.frame.clientWidth===0)return;if(i.save(),i.translate(this.body.view.translation.x,this.body.view.translation.y),i.scale(this.body.view.scale,this.body.view.scale),i.beginPath(),this.body.emitter.emit("beforeDrawing",i),i.closePath(),e===!1&&(this.dragging===!1||this.dragging===!0&&this.options.hideEdgesOnDrag===!1)&&(this.zooming===!1||this.zooming===!0&&this.options.hideEdgesOnZoom===!1)&&this._drawEdges(i),this.dragging===!1||this.dragging===!0&&this.options.hideNodesOnDrag===!1){const{drawExternalLabels:A}=this._drawNodes(i,e);t.drawExternalLabels=A}e===!1&&(this.dragging===!1||this.dragging===!0&&this.options.hideEdgesOnDrag===!1)&&(this.zooming===!1||this.zooming===!0&&this.options.hideEdgesOnZoom===!1)&&this._drawArrows(i),t.drawExternalLabels!=null&&t.drawExternalLabels(),e===!1&&this._drawSelectionBox(i),i.beginPath(),this.body.emitter.emit("afterDrawing",i),i.closePath(),i.restore(),e===!0&&i.clearRect(0,0,o,r)}}_resizeNodes(){this.canvas.setTransform();const e=this.canvas.getContext();e.save(),e.translate(this.body.view.translation.x,this.body.view.translation.y),e.scale(this.body.view.scale,this.body.view.scale);const t=this.body.nodes;let i;for(const o in t)Object.prototype.hasOwnProperty.call(t,o)&&(i=t[o],i.resize(e),i.updateBoundingBox(e,i.selected));e.restore()}_drawNodes(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const i=this.body.nodes,o=this.body.nodeIndices;let r;const A=[],I=[],l=20,c=this.canvas.DOMtoCanvas({x:-l,y:-l}),h=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+l,y:this.canvas.frame.canvas.clientHeight+l}),p={top:c.y,left:c.x,bottom:h.y,right:h.x},m=[];for(let x=0;x{for(const x of m)x()}}}_drawEdges(e){const t=this.body.edges,i=this.body.edgeIndices;for(let o=0;o{t.width!==0&&(this.body.view.translation.x=t.width*.5),t.height!==0&&(this.body.view.translation.y=t.height*.5)}),this.body.emitter.on("setSize",ge(e=this.setSize).call(e,this)),this.body.emitter.on("destroy",()=>{this.hammerFrame.destroy(),this.hammer.destroy(),this._cleanUp()})}setOptions(e){if(e!==void 0&&Ds(["width","height","autoResize"],this.options,e),this._cleanUp(),this.options.autoResize===!0){var t;if(window.ResizeObserver){const o=new ResizeObserver(()=>{this.setSize()===!0&&this.body.emitter.emit("_requestRedraw")}),{frame:r}=this;o.observe(r),this._cleanupCallbacks.push(()=>{o.unobserve(r)})}else{const o=p$(()=>{this.setSize()===!0&&this.body.emitter.emit("_requestRedraw")},1e3);this._cleanupCallbacks.push(()=>{clearInterval(o)})}const i=ge(t=this._onResize).call(t,this);window.addEventListener("resize",i),this._cleanupCallbacks.push(()=>{window.removeEventListener("resize",i)})}}_cleanUp(){var e,t,i;Je(e=wo(t=Di(i=this._cleanupCallbacks).call(i,0)).call(t)).call(e,o=>{try{o()}catch(r){console.error(r)}})}_onResize(){this.setSize(),this.body.emitter.emit("_redraw")}_getCameraState(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.pixelRatio;this.initialized===!0&&(this.cameraState.previousWidth=this.frame.canvas.width/e,this.cameraState.previousHeight=this.frame.canvas.height/e,this.cameraState.scale=this.body.view.scale,this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/e,y:.5*this.frame.canvas.height/e}))}_setCameraState(){if(this.cameraState.scale!==void 0&&this.frame.canvas.clientWidth!==0&&this.frame.canvas.clientHeight!==0&&this.pixelRatio!==0&&this.cameraState.previousWidth>0&&this.cameraState.previousHeight>0){const e=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,t=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight;let i=this.cameraState.scale;e!=1&&t!=1?i=this.cameraState.scale*.5*(e+t):e!=1?i=this.cameraState.scale*e:t!=1&&(i=this.cameraState.scale*t),this.body.view.scale=i;const o=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),r={x:o.x-this.cameraState.position.x,y:o.y-this.cameraState.position.y};this.body.view.translation.x+=r.x*this.body.view.scale,this.body.view.translation.y+=r.y*this.body.view.scale}}_prepareValue(e){if(typeof e=="number")return e+"px";if(typeof e=="string"){if(at(e).call(e,"%")!==-1||at(e).call(e,"px")!==-1)return e;if(at(e).call(e,"%")===-1)return e+"px"}throw new Error("Could not use the value supplied for width or height:"+e)}_create(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis-network",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=0,this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext)this._setPixelRatio(),this.setTransform();else{const e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerText="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(e)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}_bindHammer(){this.hammer!==void 0&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new Ms(this.frame.canvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:Ms.DIRECTION_ALL}),qC(this.hammer,e=>{this.body.eventListeners.onTouch(e)}),this.hammer.on("tap",e=>{this.body.eventListeners.onTap(e)}),this.hammer.on("doubletap",e=>{this.body.eventListeners.onDoubleTap(e)}),this.hammer.on("press",e=>{this.body.eventListeners.onHold(e)}),this.hammer.on("panstart",e=>{this.body.eventListeners.onDragStart(e)}),this.hammer.on("panmove",e=>{this.body.eventListeners.onDrag(e)}),this.hammer.on("panend",e=>{this.body.eventListeners.onDragEnd(e)}),this.hammer.on("pinch",e=>{this.body.eventListeners.onPinch(e)}),this.frame.canvas.addEventListener("wheel",e=>{this.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("mousemove",e=>{this.body.eventListeners.onMouseMove(e)}),this.frame.canvas.addEventListener("contextmenu",e=>{this.body.eventListeners.onContext(e)}),this.hammerFrame=new Ms(this.frame),Ax(this.hammerFrame,e=>{this.body.eventListeners.onRelease(e)})}setSize(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.width,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.height;e=this._prepareValue(e),t=this._prepareValue(t);let i=!1;const o=this.frame.canvas.width,r=this.frame.canvas.height,A=this.pixelRatio;if(this._setPixelRatio(),e!=this.options.width||t!=this.options.height||this.frame.style.width!=e||this.frame.style.height!=t)this._getCameraState(A),this.frame.style.width=e,this.frame.style.height=t,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=e,this.options.height=t,this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight},i=!0;else{const I=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),l=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);(this.frame.canvas.width!==I||this.frame.canvas.height!==l)&&this._getCameraState(A),this.frame.canvas.width!==I&&(this.frame.canvas.width=I,i=!0),this.frame.canvas.height!==l&&(this.frame.canvas.height=l,i=!0)}return i===!0&&(this.body.emitter.emit("resize",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(o/this.pixelRatio),oldHeight:Math.round(r/this.pixelRatio)}),this._setCameraState()),this.initialized=!0,i}getContext(){return this.frame.canvas.getContext("2d")}_determinePixelRatio(){const e=this.getContext();if(e===void 0)throw new Error("Could not get canvax context");let t=1;typeof window<"u"&&(t=window.devicePixelRatio||1);const i=e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return t/i}_setPixelRatio(){this.pixelRatio=this._determinePixelRatio()}setTransform(){const e=this.getContext();if(e===void 0)throw new Error("Could not get canvax context");e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}_XconvertDOMtoCanvas(e){return(e-this.body.view.translation.x)/this.body.view.scale}_XconvertCanvasToDOM(e){return e*this.body.view.scale+this.body.view.translation.x}_YconvertDOMtoCanvas(e){return(e-this.body.view.translation.y)/this.body.view.scale}_YconvertCanvasToDOM(e){return e*this.body.view.scale+this.body.view.translation.y}canvasToDOM(e){return{x:this._XconvertCanvasToDOM(e.x),y:this._YconvertCanvasToDOM(e.y)}}DOMtoCanvas(e){return{x:this._XconvertDOMtoCanvas(e.x),y:this._YconvertDOMtoCanvas(e.y)}}}function v$(n,e){const t=Vt({nodes:e,minZoomLevel:Number.MIN_VALUE,maxZoomLevel:1},n??{});if(!et(t.nodes))throw new TypeError("Nodes has to be an array of ids.");if(t.nodes.length===0&&(t.nodes=e),!(typeof t.minZoomLevel=="number"&&t.minZoomLevel>0))throw new TypeError("Min zoom level has to be a number higher than zero.");if(!(typeof t.maxZoomLevel=="number"&&t.minZoomLevel<=t.maxZoomLevel))throw new TypeError("Max zoom level has to be a number higher than min zoom level.");return t}class y${constructor(e,t){var i,o;this.body=e,this.canvas=t,this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0,this.touchTime=0,this.viewFunction=void 0,this.body.emitter.on("fit",ge(i=this.fit).call(i,this)),this.body.emitter.on("animationFinished",()=>{this.body.emitter.emit("_stopRendering")}),this.body.emitter.on("unlockNode",ge(o=this.releaseNode).call(o,this))}setOptions(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.options=e}fit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;e=v$(e,this.body.nodeIndices);const i=this.canvas.frame.canvas.clientWidth,o=this.canvas.frame.canvas.clientHeight;let r,A;if(i===0||o===0)A=1,r=En.getRange(this.body.nodes,e.nodes);else if(t===!0){let c=0;for(const m in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,m)&&this.body.nodes[m].predefinedPosition===!0&&(c+=1);if(c>.5*this.body.nodeIndices.length){this.fit(e,!1);return}r=En.getRange(this.body.nodes,e.nodes),A=12.662/(this.body.nodeIndices.length+7.4147)+.0964822;const p=Math.min(i/600,o/600);A*=p}else{this.body.emitter.emit("_resizeNodes"),r=En.getRange(this.body.nodes,e.nodes);const c=Math.abs(r.maxX-r.minX)*1.1,h=Math.abs(r.maxY-r.minY)*1.1,p=i/c,m=o/h;A=p<=m?p:m}A>e.maxZoomLevel?A=e.maxZoomLevel:A1&&arguments[1]!==void 0?arguments[1]:{};if(this.body.nodes[e]!==void 0){const i={x:this.body.nodes[e].x,y:this.body.nodes[e].y};t.position=i,t.lockedOnNode=e,this.moveTo(t)}else console.error("Node: "+e+" cannot be found.")}moveTo(e){if(e===void 0){e={};return}if(e.offset!=null){if(e.offset.x!=null){if(e.offset.x=+e.offset.x,!zo(e.offset.x))throw new TypeError('The option "offset.x" has to be a finite number.')}else e.offset.x=0;if(e.offset.y!=null){if(e.offset.y=+e.offset.y,!zo(e.offset.y))throw new TypeError('The option "offset.y" has to be a finite number.')}else e.offset.x=0}else e.offset={x:0,y:0};if(e.position!=null){if(e.position.x!=null){if(e.position.x=+e.position.x,!zo(e.position.x))throw new TypeError('The option "position.x" has to be a finite number.')}else e.position.x=0;if(e.position.y!=null){if(e.position.y=+e.position.y,!zo(e.position.y))throw new TypeError('The option "position.y" has to be a finite number.')}else e.position.x=0}else e.position=this.getViewPosition();if(e.scale!=null){if(e.scale=+e.scale,!(e.scale>0))throw new TypeError('The option "scale" has to be a number greater than zero.')}else e.scale=this.body.view.scale;e.animation===void 0&&(e.animation={duration:0}),e.animation===!1&&(e.animation={duration:0}),e.animation===!0&&(e.animation={}),e.animation.duration===void 0&&(e.animation.duration=1e3),e.animation.easingFunction===void 0&&(e.animation.easingFunction="easeInOutQuad"),this.animateView(e)}animateView(e){if(e===void 0)return;this.animationEasingFunction=e.animation.easingFunction,this.releaseNode(),e.locked===!0&&(this.lockedOnNodeId=e.lockedOnNode,this.lockedOnNodeOffset=e.offset),this.easingTime!=0&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=e.scale,this.body.view.scale=this.targetScale;const t=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:t.x-e.position.x,y:t.y-e.position.y};if(this.targetTranslation={x:this.sourceTranslation.x+i.x*this.targetScale+e.offset.x,y:this.sourceTranslation.y+i.y*this.targetScale+e.offset.y},e.animation.duration===0)if(this.lockedOnNodeId!=null){var o;this.viewFunction=ge(o=this._lockedRedraw).call(o,this),this.body.emitter.on("initRedraw",this.viewFunction)}else this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw");else{var r;this.animationSpeed=1/(60*e.animation.duration*.001)||1/60,this.animationEasingFunction=e.animation.easingFunction,this.viewFunction=ge(r=this._transitionRedraw).call(r,this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering")}}_lockedRedraw(){const e={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},t=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:t.x-e.x,y:t.y-e.y},o=this.body.view.translation,r={x:o.x+i.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:o.y+i.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=r}releaseNode(){this.lockedOnNodeId!==void 0&&this.viewFunction!==void 0&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}_transitionRedraw(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;this.easingTime+=this.animationSpeed,this.easingTime=e===!0?1:this.easingTime;const t=VV[this.animationEasingFunction](this.easingTime);if(this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*t,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*t,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*t},this.easingTime>=1){if(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,this.lockedOnNodeId!=null){var i;this.viewFunction=ge(i=this._lockedRedraw).call(i,this),this.body.emitter.on("initRedraw",this.viewFunction)}this.body.emitter.emit("animationFinished")}}getScale(){return this.body.view.scale}getViewPosition(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}var b$=`div.vis-network div.vis-navigation div.vis-button { width: 34px; height: 34px; -moz-border-radius: 17px; @@ -782,7 +782,7 @@ div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends { bottom: 50px; right: 15px; } -`;po(m$);function Ax(n){var e=n&&n.preventDefault||!1,t=n&&n.container||window,i={},o={keydown:{},keyup:{}},r={},A;for(A=97;A<=122;A++)r[String.fromCharCode(A)]={code:65+(A-97),shift:!1};for(A=65;A<=90;A++)r[String.fromCharCode(A)]={code:A,shift:!0};for(A=0;A<=9;A++)r[""+A]={code:48+A,shift:!1};for(A=1;A<=12;A++)r["F"+A]={code:111+A,shift:!1};for(A=0;A<=9;A++)r["num"+A]={code:96+A,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r.delete={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var I=function(h){c(h,"keydown")},l=function(h){c(h,"keyup")},c=function(h,p){if(o[p][h.keyCode]!==void 0){for(var m=o[p][h.keyCode],y=0;y{this.activated=!0,this.configureKeyboardBindings()}),this.body.emitter.on("deactivate",()=>{this.activated=!1,this.configureKeyboardBindings()}),this.body.emitter.on("destroy",()=>{this.keycharm!==void 0&&this.keycharm.destroy()}),this.options={}}setOptions(e){e!==void 0&&(this.options=e,this.create())}create(){this.options.navigationButtons===!0?this.iconsCreated===!1&&this.loadNavigationElements():this.iconsCreated===!0&&this.cleanNavigation(),this.configureKeyboardBindings()}cleanNavigation(){if(this.navigationHammers.length!=0){for(let e=0;e{this._stopMovement()}),this.navigationHammers.push(r),this.iconsCreated=!0}bindToRedraw(e){if(this.boundFunctions[e]===void 0){var t;this.boundFunctions[e]=ie(t=this[e]).call(t,this),this.body.emitter.on("initRedraw",this.boundFunctions[e]),this.body.emitter.emit("_startRendering")}}unbindFromRedraw(e){this.boundFunctions[e]!==void 0&&(this.body.emitter.off("initRedraw",this.boundFunctions[e]),this.body.emitter.emit("_stopRendering"),delete this.boundFunctions[e])}_fit(){new Date().valueOf()-this.touchTime>700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=new Date().valueOf())}_stopMovement(){for(const e in this.boundFunctions)Object.prototype.hasOwnProperty.call(this.boundFunctions,e)&&(this.body.emitter.off("initRedraw",this.boundFunctions[e]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}_moveUp(){this.body.view.translation.y+=this.options.keyboard.speed.y}_moveDown(){this.body.view.translation.y-=this.options.keyboard.speed.y}_moveLeft(){this.body.view.translation.x+=this.options.keyboard.speed.x}_moveRight(){this.body.view.translation.x-=this.options.keyboard.speed.x}_zoomIn(){const e=this.body.view.scale,t=this.body.view.scale*(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,o=t/e,r=(1-o)*this.canvas.canvasViewCenter.x+i.x*o,A=(1-o)*this.canvas.canvasViewCenter.y+i.y*o;this.body.view.scale=t,this.body.view.translation={x:r,y:A},this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale,pointer:null})}_zoomOut(){const e=this.body.view.scale,t=this.body.view.scale/(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,o=t/e,r=(1-o)*this.canvas.canvasViewCenter.x+i.x*o,A=(1-o)*this.canvas.canvasViewCenter.y+i.y*o;this.body.view.scale=t,this.body.view.translation={x:r,y:A},this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale,pointer:null})}configureKeyboardBindings(){if(this.keycharm!==void 0&&this.keycharm.destroy(),this.options.keyboard.enabled===!0&&(this.options.keyboard.bindToWindow===!0?this.keycharm=Ax({container:window,preventDefault:!0}):this.keycharm=Ax({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),this.activated===!0)){var e,t,i,o,r,A,I,l,c,h,p,m,y,w,S,x,E,N,P,B,W,ne,_,Y;ie(e=this.keycharm).call(e,"up",()=>{this.bindToRedraw("_moveUp")},"keydown"),ie(t=this.keycharm).call(t,"down",()=>{this.bindToRedraw("_moveDown")},"keydown"),ie(i=this.keycharm).call(i,"left",()=>{this.bindToRedraw("_moveLeft")},"keydown"),ie(o=this.keycharm).call(o,"right",()=>{this.bindToRedraw("_moveRight")},"keydown"),ie(r=this.keycharm).call(r,"=",()=>{this.bindToRedraw("_zoomIn")},"keydown"),ie(A=this.keycharm).call(A,"num+",()=>{this.bindToRedraw("_zoomIn")},"keydown"),ie(I=this.keycharm).call(I,"num-",()=>{this.bindToRedraw("_zoomOut")},"keydown"),ie(l=this.keycharm).call(l,"-",()=>{this.bindToRedraw("_zoomOut")},"keydown"),ie(c=this.keycharm).call(c,"[",()=>{this.bindToRedraw("_zoomOut")},"keydown"),ie(h=this.keycharm).call(h,"]",()=>{this.bindToRedraw("_zoomIn")},"keydown"),ie(p=this.keycharm).call(p,"pageup",()=>{this.bindToRedraw("_zoomIn")},"keydown"),ie(m=this.keycharm).call(m,"pagedown",()=>{this.bindToRedraw("_zoomOut")},"keydown"),ie(y=this.keycharm).call(y,"up",()=>{this.unbindFromRedraw("_moveUp")},"keyup"),ie(w=this.keycharm).call(w,"down",()=>{this.unbindFromRedraw("_moveDown")},"keyup"),ie(S=this.keycharm).call(S,"left",()=>{this.unbindFromRedraw("_moveLeft")},"keyup"),ie(x=this.keycharm).call(x,"right",()=>{this.unbindFromRedraw("_moveRight")},"keyup"),ie(E=this.keycharm).call(E,"=",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),ie(N=this.keycharm).call(N,"num+",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),ie(P=this.keycharm).call(P,"num-",()=>{this.unbindFromRedraw("_zoomOut")},"keyup"),ie(B=this.keycharm).call(B,"-",()=>{this.unbindFromRedraw("_zoomOut")},"keyup"),ie(W=this.keycharm).call(W,"[",()=>{this.unbindFromRedraw("_zoomOut")},"keyup"),ie(ne=this.keycharm).call(ne,"]",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),ie(_=this.keycharm).call(_,"pageup",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),ie(Y=this.keycharm).call(Y,"pagedown",()=>{this.unbindFromRedraw("_zoomOut")},"keyup")}}}class y${constructor(e,t,i){var o,r,A,I,l,c,h,p,m,y,w,S,x;this.body=e,this.canvas=t,this.selectionHandler=i,this.navigationHandler=new v$(e,t),this.body.eventListeners.onTap=ie(o=this.onTap).call(o,this),this.body.eventListeners.onTouch=ie(r=this.onTouch).call(r,this),this.body.eventListeners.onDoubleTap=ie(A=this.onDoubleTap).call(A,this),this.body.eventListeners.onHold=ie(I=this.onHold).call(I,this),this.body.eventListeners.onDragStart=ie(l=this.onDragStart).call(l,this),this.body.eventListeners.onDrag=ie(c=this.onDrag).call(c,this),this.body.eventListeners.onDragEnd=ie(h=this.onDragEnd).call(h,this),this.body.eventListeners.onMouseWheel=ie(p=this.onMouseWheel).call(p,this),this.body.eventListeners.onPinch=ie(m=this.onPinch).call(m,this),this.body.eventListeners.onMouseMove=ie(y=this.onMouseMove).call(y,this),this.body.eventListeners.onRelease=ie(w=this.onRelease).call(w,this),this.body.eventListeners.onContext=ie(S=this.onContext).call(S,this),this.touchTime=0,this.drag={},this.pinch={},this.popup=void 0,this.popupObj=void 0,this.popupTimer=void 0,this.body.functions.getPointer=ie(x=this.getPointer).call(x,this),this.options={},this.defaultOptions={dragNodes:!0,dragView:!0,hover:!1,keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0,autoFocus:!0},navigationButtons:!1,tooltipDelay:300,zoomView:!0,zoomSpeed:1},Vt(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){this.body.emitter.on("destroy",()=>{clearTimeout(this.popupTimer),delete this.body.functions.getPointer})}setOptions(e){e!==void 0&&(ZC(["hideEdgesOnDrag","hideEdgesOnZoom","hideNodesOnDrag","keyboard","multiselect","selectable","selectConnectedEdges"],this.options,e),ii(this.options,e,"keyboard"),e.tooltip&&(Vt(this.options.tooltip,e.tooltip),e.tooltip.color&&(this.options.tooltip.color=Kd(e.tooltip.color)))),this.navigationHandler.setOptions(this.options)}getPointer(e){return{x:e.x-jV(this.canvas.frame.canvas),y:e.y-ZV(this.canvas.frame.canvas)}}onTouch(e){new Date().valueOf()-this.touchTime>50&&(this.drag.pointer=this.getPointer(e.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=new Date().valueOf())}onTap(e){const t=this.getPointer(e.center),i=this.selectionHandler.options.multiselect&&(e.changedPointers[0].ctrlKey||e.changedPointers[0].metaKey);this.checkSelectionChanges(t,i),this.selectionHandler.commitAndEmit(t,e),this.selectionHandler.generateClickEvent("click",e,t)}onDoubleTap(e){const t=this.getPointer(e.center);this.selectionHandler.generateClickEvent("doubleClick",e,t)}onHold(e){const t=this.getPointer(e.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(t,i),this.selectionHandler.commitAndEmit(t,e),this.selectionHandler.generateClickEvent("click",e,t),this.selectionHandler.generateClickEvent("hold",e,t)}onRelease(e){if(new Date().valueOf()-this.touchTime>10){const t=this.getPointer(e.center);this.selectionHandler.generateClickEvent("release",e,t),this.touchTime=new Date().valueOf()}}onContext(e){const t=this.getPointer({x:e.clientX,y:e.clientY});this.selectionHandler.generateClickEvent("oncontext",e,t)}checkSelectionChanges(e){(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1)===!0?this.selectionHandler.selectAdditionalOnPoint(e):this.selectionHandler.selectOnPoint(e)}_determineDifference(e,t){const i=function(o,r){const A=[];for(let I=0;I{const I=A.node;A.xFixed===!1&&(I.x=this.canvas._XconvertDOMtoCanvas(this.canvas._XconvertCanvasToDOM(A.x)+o)),A.yFixed===!1&&(I.y=this.canvas._YconvertDOMtoCanvas(this.canvas._YconvertCanvasToDOM(A.y)+r))}),this.body.emitter.emit("startSimulation")}else{if(e.srcEvent.shiftKey){if(this.selectionHandler.generateClickEvent("dragging",e,t,void 0,!0),this.drag.pointer===void 0){this.onDragStart(e);return}this.body.selectionBox.position.end={x:this.canvas._XconvertDOMtoCanvas(t.x),y:this.canvas._YconvertDOMtoCanvas(t.y)},this.body.emitter.emit("_requestRedraw")}if(this.options.dragView===!0&&!e.srcEvent.shiftKey){if(this.selectionHandler.generateClickEvent("dragging",e,t,void 0,!0),this.drag.pointer===void 0){this.onDragStart(e);return}const o=t.x-this.drag.pointer.x,r=t.y-this.drag.pointer.y;this.body.view.translation={x:this.drag.translation.x+o,y:this.drag.translation.y+r},this.body.emitter.emit("_requestRedraw")}}}onDragEnd(e){if(this.drag.dragging=!1,this.body.selectionBox.show){var t;this.body.selectionBox.show=!1;const i=this.body.selectionBox.position,o={minX:Math.min(i.start.x,i.end.x),minY:Math.min(i.start.y,i.end.y),maxX:Math.max(i.start.x,i.end.x),maxY:Math.max(i.start.y,i.end.y)},r=Qt(t=this.body.nodeIndices).call(t,I=>{const l=this.body.nodes[I];return l.x>=o.minX&&l.x<=o.maxX&&l.y>=o.minY&&l.y<=o.maxY});Je(r).call(r,I=>this.selectionHandler.selectObject(this.body.nodes[I]));const A=this.getPointer(e.center);this.selectionHandler.commitAndEmit(A,e),this.selectionHandler.generateClickEvent("dragEnd",e,this.getPointer(e.center),void 0,!0),this.body.emitter.emit("_requestRedraw")}else{const i=this.drag.selection;i&&i.length?(Je(i).call(i,function(o){o.node.options.fixed.x=o.xFixed,o.node.options.fixed.y=o.yFixed}),this.selectionHandler.generateClickEvent("dragEnd",e,this.getPointer(e.center)),this.body.emitter.emit("startSimulation")):(this.selectionHandler.generateClickEvent("dragEnd",e,this.getPointer(e.center),void 0,!0),this.body.emitter.emit("_requestRedraw"))}}onPinch(e){const t=this.getPointer(e.center);this.drag.pinched=!0,this.pinch.scale===void 0&&(this.pinch.scale=1);const i=this.pinch.scale*e.scale;this.zoom(i,t)}zoom(e,t){if(this.options.zoomView===!0){const i=this.body.view.scale;e<1e-5&&(e=1e-5),e>10&&(e=10);let o;this.drag!==void 0&&this.drag.dragging===!0&&(o=this.canvas.DOMtoCanvas(this.drag.pointer));const r=this.body.view.translation,A=e/i,I=(1-A)*t.x+r.x*A,l=(1-A)*t.y+r.y*A;if(this.body.view.scale=e,this.body.view.translation={x:I,y:l},o!=null){const c=this.canvas.canvasToDOM(o);this.drag.pointer.x=c.x,this.drag.pointer.y=c.y}this.body.emitter.emit("_requestRedraw"),ithis._checkShowPopup(t),this.options.tooltipDelay))),this.options.hover===!0&&this.selectionHandler.hoverObject(e,t)}_checkShowPopup(e){const t=this.canvas._XconvertDOMtoCanvas(e.x),i=this.canvas._YconvertDOMtoCanvas(e.y),o={left:t,top:i,right:t,bottom:i},r=this.popupObj===void 0?void 0:this.popupObj.id;let A=!1,I="node";if(this.popupObj===void 0){const l=this.body.nodeIndices,c=this.body.nodes;let h;const p=[];for(let m=0;m0&&(this.popupObj=c[p[p.length-1]],A=!0)}if(this.popupObj===void 0&&A===!1){const l=this.body.edgeIndices,c=this.body.edges;let h;const p=[];for(let m=0;m0&&(this.popupObj=c[p[p.length-1]],I="edge")}this.popupObj!==void 0?this.popupObj.id!==r&&(this.popup===void 0&&(this.popup=new WV(this.canvas.frame)),this.popup.popupTargetType=I,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(e.x+3,e.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):this.popup!==void 0&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}_checkHidePopup(e){const t=this.selectionHandler._pointerToPositionObject(e);let i=!1;if(this.popup.popupTargetType==="node"){if(this.body.nodes[this.popup.popupTargetId]!==void 0&&(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(t),i===!0)){const o=this.selectionHandler.getNodeAt(e);i=o===void 0?!1:o.id===this.popup.popupTargetId}}else this.selectionHandler.getNodeAt(e)===void 0&&this.body.edges[this.popup.popupTargetId]!==void 0&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(t));i===!1&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}}var b$=ot,Cx=ou,JC=GC.getWeakData,w$=iu,x$=Hi,E$=as,Tu=yn,S$=nu,Ix=xg,lx=gn,cx=mo,T$=cx.set,O$=cx.getterFor,N$=Ix.find,D$=Ix.findIndex,M$=b$([].splice),z$=0,eI=function(n){return n.frozen||(n.frozen=new dx)},dx=function(){this.entries=[]},Ou=function(n,e){return N$(n.entries,function(t){return t[0]===e})};dx.prototype={get:function(n){var e=Ou(this,n);if(e)return e[1]},has:function(n){return!!Ou(this,n)},set:function(n,e){var t=Ou(this,n);t?t[1]=e:this.entries.push([n,e])},delete:function(n){var e=D$(this.entries,function(t){return t[0]===n});return~e&&M$(this.entries,e,1),!!~e}};var k$={getConstructor:function(n,e,t,i){var o=n(function(l,c){w$(l,r),T$(l,{type:e,id:z$++,frozen:void 0}),E$(c)||S$(c,l[i],{that:l,AS_ENTRIES:t})}),r=o.prototype,A=O$(e),I=function(l,c,h){var p=A(l),m=JC(x$(c),!0);return m===!0?eI(p).set(c,h):m[p.id]=h,l};return Cx(r,{delete:function(l){var c=A(this);if(!Tu(l))return!1;var h=JC(l);return h===!0?eI(c).delete(l):h&&lx(h,c.id)&&delete h[c.id]},has:function(c){var h=A(this);if(!Tu(c))return!1;var p=JC(c);return p===!0?eI(h).has(c):p&&lx(p,h.id)}}),Cx(r,t?{get:function(c){var h=A(this);if(Tu(c)){var p=JC(c);return p===!0?eI(h).get(c):p?p[h.id]:void 0}},set:function(c,h){return I(this,c,h)}}:{add:function(c){return I(this,c,!0)}}),o}},R$=M1,ux=_t,tI=ot,hx=ou,_$=GC,j$=gu,fx=k$,nI=yn,iI=mo.enforce,Z$=gt,B$=Uy,ka=Object,P$=Array.isArray,gI=ka.isExtensible,px=ka.isFrozen,L$=ka.isSealed,mx=ka.freeze,G$=ka.seal,vx={},yx={},F$=!ux.ActiveXObject&&"ActiveXObject"in ux,Ra,bx=function(n){return function(){return n(this,arguments.length?arguments[0]:void 0)}},wx=j$("WeakMap",bx,fx),Ps=wx.prototype,oI=tI(Ps.set),V$=function(){return R$&&Z$(function(){var n=mx([]);return oI(new wx,n,1),!px(n)})};if(B$)if(F$){Ra=fx.getConstructor(bx,"WeakMap",!0),_$.enable();var xx=tI(Ps.delete),sI=tI(Ps.has),Ex=tI(Ps.get);hx(Ps,{delete:function(n){if(nI(n)&&!gI(n)){var e=iI(this);return e.frozen||(e.frozen=new Ra),xx(this,n)||e.frozen.delete(n)}return xx(this,n)},has:function(e){if(nI(e)&&!gI(e)){var t=iI(this);return t.frozen||(t.frozen=new Ra),sI(this,e)||t.frozen.has(e)}return sI(this,e)},get:function(e){if(nI(e)&&!gI(e)){var t=iI(this);return t.frozen||(t.frozen=new Ra),sI(this,e)?Ex(this,e):t.frozen.get(e)}return Ex(this,e)},set:function(e,t){if(nI(e)&&!gI(e)){var i=iI(this);i.frozen||(i.frozen=new Ra),sI(this,e)?oI(this,e,t):i.frozen.set(e,t)}else oI(this,e,t);return this}})}else V$()&&hx(Ps,{set:function(e,t){var i;return P$(e)&&(px(e)?i=vx:L$(e)&&(i=yx)),oI(this,e,t),i===vx&&mx(e),i===yx&&G$(e),this}});var U$=rt,Y$=U$.WeakMap,H$=Y$,K$=H$,W$=K$,_a=Me(W$);function wt(n,e,t,i){if(typeof e=="function"?n!==e||!i:!e.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?i:t==="a"?i.call(n):i?i.value:e.get(n)}function Nu(n,e,t,i,o){if(typeof e=="function"?n!==e||!0:!e.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(n,t),t}typeof SuppressedError=="function"&&SuppressedError;var _o,gi,Zg,Bg,rI;function Sx(n,e){const t=new wi;for(const i of e)n.has(i)||t.add(i);return t}class Tx{constructor(){_o.set(this,new wi),gi.set(this,new wi)}get size(){return wt(this,gi,"f").size}add(){for(var e=arguments.length,t=new Array(e),i=0;i0&&arguments[0]!==void 0?arguments[0]:()=>{};Zg.set(this,new Tx),Bg.set(this,new Tx),rI.set(this,void 0),Nu(this,rI,e)}get sizeNodes(){return wt(this,Zg,"f").size}get sizeEdges(){return wt(this,Bg,"f").size}getNodes(){return wt(this,Zg,"f").getSelection()}getEdges(){return wt(this,Bg,"f").getSelection()}addNodes(){wt(this,Zg,"f").add(...arguments)}addEdges(){wt(this,Bg,"f").add(...arguments)}deleteNodes(e){wt(this,Zg,"f").delete(e)}deleteEdges(e){wt(this,Bg,"f").delete(e)}clear(){wt(this,Zg,"f").clear(),wt(this,Bg,"f").clear()}commit(){const e={nodes:wt(this,Zg,"f").commit(),edges:wt(this,Bg,"f").commit()};for(var t=arguments.length,i=new Array(t),o=0;o{this.updateSelection()})}setOptions(e){e!==void 0&&Ds(["multiselect","hoverConnectedEdges","selectable","selectConnectedEdges"],this.options,e)}selectOnPoint(e){let t=!1;if(this.options.selectable===!0){const i=this.getNodeAt(e)||this.getEdgeAt(e);this.unselectAll(),i!==void 0&&(t=this.selectObject(i)),this.body.emitter.emit("_requestRedraw")}return t}selectAdditionalOnPoint(e){let t=!1;if(this.options.selectable===!0){const i=this.getNodeAt(e)||this.getEdgeAt(e);i!==void 0&&(t=!0,i.isSelected()===!0?this.deselectObject(i):this.selectObject(i),this.body.emitter.emit("_requestRedraw"))}return t}_initBaseEvent(e,t){const i={};return i.pointer={DOM:{x:t.x,y:t.y},canvas:this.canvas.DOMtoCanvas(t)},i.event=e,i}generateClickEvent(e,t,i,o){let r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;const A=this._initBaseEvent(t,i);if(r===!0)A.nodes=[],A.edges=[];else{const I=this.getSelection();A.nodes=I.nodes,A.edges=I.edges}o!==void 0&&(A.previousSelection=o),e=="click"&&(A.items=this.getClickedItems(i)),t.controlEdge!==void 0&&(A.controlEdge=t.controlEdge),this.body.emitter.emit(e,A)}selectObject(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.selectConnectedEdges;return e!==void 0?(e instanceof Nt?(t===!0&&this._selectionAccumulator.addEdges(...e.edges),this._selectionAccumulator.addNodes(e)):this._selectionAccumulator.addEdges(e),!0):!1}deselectObject(e){e.isSelected()===!0&&(e.selected=!1,this._removeFromSelection(e))}_getAllNodesOverlappingWith(e){const t=[],i=this.body.nodes;for(let o=0;o1&&arguments[1]!==void 0?arguments[1]:!0;const i=this._pointerToPositionObject(e),o=this._getAllNodesOverlappingWith(i);if(o.length>0)return t===!0?this.body.nodes[o[o.length-1]]:o[o.length-1]}_getEdgesOverlappingWith(e,t){const i=this.body.edges;for(let o=0;o1&&arguments[1]!==void 0?arguments[1]:!0;const i=this.canvas.DOMtoCanvas(e);let o=10,r=null;const A=this.body.edges;for(let I=0;I0&&(this.generateClickEvent("deselectEdge",t,e,r),i=!0),o.nodes.deleted.length>0&&(this.generateClickEvent("deselectNode",t,e,r),i=!0),o.nodes.added.length>0&&(this.generateClickEvent("selectNode",t,e),i=!0),o.edges.added.length>0&&(this.generateClickEvent("selectEdge",t,e),i=!0),i===!0&&this.generateClickEvent("select",t,e)}getSelection(){return{nodes:this.getSelectedNodeIds(),edges:this.getSelectedEdgeIds()}}getSelectedNodes(){return this._selectionAccumulator.getNodes()}getSelectedEdges(){return this._selectionAccumulator.getEdges()}getSelectedNodeIds(){var e;return cn(e=this._selectionAccumulator.getNodes()).call(e,t=>t.id)}getSelectedEdgeIds(){var e;return cn(e=this._selectionAccumulator.getEdges()).call(e,t=>t.id)}setSelection(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!e||!e.nodes&&!e.edges)throw new TypeError("Selection must be an object with nodes and/or edges properties");if((t.unselectAll||t.unselectAll===void 0)&&this.unselectAll(),e.nodes)for(const i of e.nodes){const o=this.body.nodes[i];if(!o)throw new RangeError('Node with id "'+i+'" not found');this.selectObject(o,t.highlightEdges)}if(e.edges)for(const i of e.edges){const o=this.body.edges[i];if(!o)throw new RangeError('Edge with id "'+i+'" not found');this.selectObject(o)}this.body.emitter.emit("_requestRedraw"),this._selectionAccumulator.commit()}selectNodes(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!e||e.length===void 0)throw"Selection must be an array with ids";this.setSelection({nodes:e},{highlightEdges:t})}selectEdges(e){if(!e||e.length===void 0)throw"Selection must be an array with ids";this.setSelection({edges:e})}updateSelection(){for(const e in this._selectionAccumulator.getNodes())Object.prototype.hasOwnProperty.call(this.body.nodes,e.id)||this._selectionAccumulator.deleteNodes(e);for(const e in this._selectionAccumulator.getEdges())Object.prototype.hasOwnProperty.call(this.body.edges,e.id)||this._selectionAccumulator.deleteEdges(e)}getClickedItems(e){const t=this.canvas.DOMtoCanvas(e),i=[],o=this.body.nodeIndices,r=this.body.nodes;for(let l=o.length-1;l>=0;l--){const h=r[o[l]].getItemsOnPoint(t);i.push.apply(i,h)}const A=this.body.edgeIndices,I=this.body.edges;for(let l=A.length-1;l>=0;l--){const h=I[A[l]].getItemsOnPoint(t);i.push.apply(i,h)}return i}}class Ox{abstract(){throw new Error("Can't instantiate abstract class!")}fake_use(){}curveType(){return this.abstract()}getPosition(e){return this.fake_use(e),this.abstract()}setPosition(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;this.fake_use(e,t,i),this.abstract()}getTreeSize(e){return this.fake_use(e),this.abstract()}sort(e){this.fake_use(e),this.abstract()}fix(e,t){this.fake_use(e,t),this.abstract()}shift(e,t){this.fake_use(e,t),this.abstract()}}class $$ extends Ox{constructor(e){super(),this.layout=e}curveType(){return"horizontal"}getPosition(e){return e.x}setPosition(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;i!==void 0&&this.layout.hierarchical.addToOrdering(e,i),e.x=t}getTreeSize(e){const t=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,e);return{min:t.min_x,max:t.max_x}}sort(e){eg(e).call(e,function(t,i){return t.x-i.x})}fix(e,t){e.y=this.layout.options.hierarchical.levelSeparation*t,e.options.fixed.y=!0}shift(e,t){this.layout.body.nodes[e].x+=t}}class q$ extends Ox{constructor(e){super(),this.layout=e}curveType(){return"vertical"}getPosition(e){return e.y}setPosition(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;i!==void 0&&this.layout.hierarchical.addToOrdering(e,i),e.y=t}getTreeSize(e){const t=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,e);return{min:t.min_y,max:t.max_y}}sort(e){eg(e).call(e,function(t,i){return t.y-i.y})}fix(e,t){e.x=this.layout.options.hierarchical.levelSeparation*t,e.options.fixed.x=!0}shift(e,t){this.layout.body.nodes[e].y+=t}}var J$=Re,eq=xg.every,tq=ys,nq=tq("every");J$({target:"Array",proto:!0,forced:!nq},{every:function(e){return eq(this,e,arguments.length>1?arguments[1]:void 0)}});var iq=Wt,gq=iq("Array").every,oq=jt,sq=gq,Du=Array.prototype,rq=function(n){var e=n.every;return n===Du||oq(Du,n)&&e===Du.every?sq:e},aq=rq,Aq=aq,Cq=Aq,Nx=Me(Cq);function Iq(n,e){const t=new wi;return Je(n).call(n,i=>{var o;Je(o=i.edges).call(o,r=>{r.connected&&t.add(r)})}),Je(t).call(t,i=>{const o=i.from.id,r=i.to.id;e[o]==null&&(e[o]=0),(e[r]==null||e[o]>=e[r])&&(e[r]=e[o]+1)}),e}function lq(n){return Dx(e=>{var t,i;return Nx(t=Qt(i=e.edges).call(i,o=>n.has(o.toId))).call(t,o=>o.to===e)},(e,t)=>t>e,"from",n)}function cq(n){return Dx(e=>{var t,i;return Nx(t=Qt(i=e.edges).call(i,o=>n.has(o.toId))).call(t,o=>o.from===e)},(e,t)=>tp+1+m.edges.length,0),I=t+"Id",l=t==="to"?1:-1;for(const[p,m]of i){if(!i.has(p)||!n(m))continue;r[p]=0;const y=[m];let w=0,S;for(;S=y.pop();){var c,h;if(!i.has(p))continue;const x=r[S.id]+l;if(Je(c=Qt(h=S.edges).call(h,E=>E.connected&&E.to!==E.from&&E[t]!==S&&i.has(E.toId)&&i.has(E.fromId))).call(c,E=>{const N=E[I],P=r[N];(P==null||e(x,P))&&(r[N]=x,y.push(E[t]))}),w>A)return Iq(i,r);++w}}return r}class dq{constructor(){this.childrenReference={},this.parentReference={},this.trees={},this.distributionOrdering={},this.levels={},this.distributionIndex={},this.isTree=!1,this.treeIndex=-1}addRelation(e,t){this.childrenReference[e]===void 0&&(this.childrenReference[e]=[]),this.childrenReference[e].push(t),this.parentReference[t]===void 0&&(this.parentReference[t]=[]),this.parentReference[t].push(e)}checkIfTree(){for(const e in this.parentReference)if(this.parentReference[e].length>1){this.isTree=!1;return}this.isTree=!0}numTrees(){return this.treeIndex+1}setTreeIndex(e,t){t!==void 0&&this.trees[e.id]===void 0&&(this.trees[e.id]=t,this.treeIndex=Math.max(t,this.treeIndex))}ensureLevel(e){this.levels[e]===void 0&&(this.levels[e]=0)}getMaxLevel(e){const t={},i=o=>{if(t[o]!==void 0)return t[o];let r=this.levels[o];if(this.childrenReference[o]){const A=this.childrenReference[o];if(A.length>0)for(let I=0;Ir-A);for(const r of o)t.set(r,i++);for(const r in this.levels)Object.prototype.hasOwnProperty.call(this.levels,r)&&(this.levels[r]=t.get(this.levels[r]))}getTreeSize(e,t){let i=1e9,o=-1e9,r=1e9,A=-1e9;for(const I in this.trees)if(Object.prototype.hasOwnProperty.call(this.trees,I)&&this.trees[I]===t){const l=e[I];i=Math.min(l.x,i),o=Math.max(l.x,o),r=Math.min(l.y,r),A=Math.max(l.y,A)}return{min_x:i,max_x:o,min_y:r,max_y:A}}hasSameParent(e,t){const i=this.parentReference[e.id],o=this.parentReference[t.id];if(i===void 0||o===void 0)return!1;for(let r=0;r{this.setupHierarchicalLayout()}),this.body.emitter.on("_dataLoaded",()=>{this.layoutNetwork()}),this.body.emitter.on("_resetHierarchicalLayout",()=>{this.setupHierarchicalLayout()}),this.body.emitter.on("_adjustEdgesForHierarchicalLayout",()=>{if(this.options.hierarchical.enabled!==!0)return;const e=this.direction.curveType();this.body.emitter.emit("_forceDisableDynamicCurves",e,!1)})}setOptions(e,t){if(e!==void 0){const i=this.options.hierarchical,o=i.enabled;if(Ds(["randomSeed","improvedLayout","clusterThreshold"],this.options,e),ii(this.options,e,"hierarchical"),e.randomSeed!==void 0&&this._resetRNG(e.randomSeed),i.enabled===!0)return o===!0&&this.body.emitter.emit("refresh",!0),i.direction==="RL"||i.direction==="DU"?i.levelSeparation>0&&(i.levelSeparation*=-1):i.levelSeparation<0&&(i.levelSeparation*=-1),this.setDirectionStrategy(),this.body.emitter.emit("_resetHierarchicalLayout"),this.adaptAllOptionsForHierarchicalLayout(t);if(o===!0)return this.body.emitter.emit("refresh"),yt(t,this.optionsBackup)}return t}_resetRNG(e){this.initialRandomSeed=e,this._rng=jC(this.initialRandomSeed)}adaptAllOptionsForHierarchicalLayout(e){if(this.options.hierarchical.enabled===!0){const t=this.optionsBackup.physics;e.physics===void 0||e.physics===!0?(e.physics={enabled:t.enabled===void 0?!0:t.enabled,solver:"hierarchicalRepulsion"},t.enabled=t.enabled===void 0?!0:t.enabled,t.solver=t.solver||"barnesHut"):typeof e.physics=="object"?(t.enabled=e.physics.enabled===void 0?!0:e.physics.enabled,t.solver=e.physics.solver||"barnesHut",e.physics.solver="hierarchicalRepulsion"):e.physics!==!1&&(t.solver="barnesHut",e.physics={solver:"hierarchicalRepulsion"});let i=this.direction.curveType();if(e.edges===void 0)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},e.edges={smooth:!1};else if(e.edges.smooth===void 0)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},e.edges.smooth=!1;else if(typeof e.edges.smooth=="boolean")this.optionsBackup.edges={smooth:e.edges.smooth},e.edges.smooth={enabled:e.edges.smooth,type:i};else{const o=e.edges.smooth;o.type!==void 0&&o.type!=="dynamic"&&(i=o.type),this.optionsBackup.edges={smooth:{enabled:o.enabled===void 0?!0:o.enabled,type:o.type===void 0?"dynamic":o.type,roundness:o.roundness===void 0?.5:o.roundness,forceDirection:o.forceDirection===void 0?!1:o.forceDirection}},e.edges.smooth={enabled:o.enabled===void 0?!0:o.enabled,type:i,roundness:o.roundness===void 0?.5:o.roundness,forceDirection:o.forceDirection===void 0?!1:o.forceDirection}}this.body.emitter.emit("_forceDisableDynamicCurves",i)}return e}positionInitially(e){if(this.options.hierarchical.enabled!==!0){this._resetRNG(this.initialRandomSeed);const t=e.length+50;for(let i=0;ir){const l=e.length;for(;e.length>r&&o<=10;){o+=1;const c=e.length;o%3===0?this.body.modules.clustering.clusterBridges(A):this.body.modules.clustering.clusterOutliers(A);const h=e.length;if(c==h&&o%3!==0){this._declusterAll(),this.body.emitter.emit("_layoutFailed"),console.info("This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.");return}}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*l)})}o>10&&console.info("The clustering didn't succeed within the amount of interations allowed, progressing with partial result."),this.body.modules.kamadaKawai.solve(e,this.body.edgeIndices,!0),this._shiftToCenter();const I=70;for(let l=0;l0){let e,t,i=!1,o=!1;this.lastNodeOnLevel={},this.hierarchical=new dq;for(t in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,t)&&(e=this.body.nodes[t],e.options.level!==void 0?(i=!0,this.hierarchical.levels[t]=e.options.level):o=!0);if(o===!0&&i===!0)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.");{if(o===!0){const A=this.options.hierarchical.sortMethod;A==="hubsize"?this._determineLevelsByHubsize():A==="directed"?this._determineLevelsDirected():A==="custom"&&this._determineLevelsCustomCallback()}for(const A in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,A)&&this.hierarchical.ensureLevel(A);const r=this._getDistribution();this._generateMap(),this._placeNodesByHierarchy(r),this._condenseHierarchy(),this._shiftToCenter()}}}_condenseHierarchy(){var e=this;let t=!1;const i={},o=()=>{const E=A();let N=0;for(let P=0;P{const P=this.hierarchical.trees;for(const B in P)Object.prototype.hasOwnProperty.call(P,B)&&P[B]===E&&this.direction.shift(B,N)},A=()=>{const E=[];for(let N=0;N{if(!N[E.id]&&(N[E.id]=!0,this.hierarchical.childrenReference[E.id])){const P=this.hierarchical.childrenReference[E.id];if(P.length>0)for(let B=0;B1&&arguments[1]!==void 0?arguments[1]:1e9,P=1e9,B=1e9,W=1e9,ne=-1e9;for(const _ in E)if(Object.prototype.hasOwnProperty.call(E,_)){const Y=e.body.nodes[_],Ce=e.hierarchical.levels[Y.id],Ee=e.direction.getPosition(Y),[_e,De]=e._getSpaceAroundNode(Y,E);P=Math.min(_e,P),B=Math.min(De,B),Ce<=N&&(W=Math.min(Ee,W),ne=Math.max(Ee,ne))}return[W,ne,P,B]},c=(E,N)=>{const P=this.hierarchical.getMaxLevel(E.id),B=this.hierarchical.getMaxLevel(N.id);return Math.min(P,B)},h=(E,N,P)=>{const B=this.hierarchical;for(let W=0;W1)for(let Y=0;Y<_.length-1;Y++){const Ce=_[Y],Ee=_[Y+1];B.hasSameParent(Ce,Ee)&&B.inSameSubNetwork(Ce,Ee)&&E(Ce,Ee,P)}}},p=function(E,N){let P=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const B=e.direction.getPosition(E),W=e.direction.getPosition(N),ne=Math.abs(W-B),_=e.options.hierarchical.nodeSpacing;if(ne>_){const Y={},Ce={};I(E,Y),I(N,Ce);const Ee=c(E,N),_e=l(Y,Ee),De=l(Ce,Ee),et=_e[1],Te=De[0],ae=De[2];if(Math.abs(et-Te)>_){let k=et-Te+_;k<-ae+_&&(k=-ae+_),k<0&&(e._shiftBlock(N.id,k),t=!0,P===!0&&e._centerParent(N))}}},m=(E,N)=>{const P=N.id,B=N.edges,W=this.hierarchical.levels[N.id],ne=this.options.hierarchical.levelSeparation*this.options.hierarchical.levelSeparation,_={},Y=[];for(let ae=0;ae{let k=0;for(let ee=0;ee{let k=0;for(let ee=0;ee{let k=this.direction.getPosition(N);const ee={};for(let Ie=0;Ie{const M=this.direction.getPosition(N);if(i[N.id]===void 0){const L={};I(N,L),i[N.id]=L}const k=l(i[N.id]),ee=k[2],Ie=k[3],J=ae-M;let T=0;J>0?T=Math.min(J,Ie-this.options.hierarchical.nodeSpacing):J<0&&(T=-Math.min(-J,ee-this.options.hierarchical.nodeSpacing)),T!=0&&(this._shiftBlock(N.id,T),t=!0)},et=ae=>{const M=this.direction.getPosition(N),[k,ee]=this._getSpaceAroundNode(N),Ie=ae-M;let J=M;Ie>0?J=Math.min(M+(ee-this.options.hierarchical.nodeSpacing),ae):Ie<0&&(J=Math.max(M-(k-this.options.hierarchical.nodeSpacing),ae)),J!==M&&(this.direction.setPosition(N,J),t=!0)};let Te=_e(E,Y);De(Te),Te=_e(E,B),et(Te)},y=E=>{let N=this.hierarchical.getLevels();N=wo(N).call(N);for(let P=0;P{let N=this.hierarchical.getLevels();N=wo(N).call(N);for(let P=0;P{for(const E in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,E)&&this._centerParent(this.body.nodes[E])},x=()=>{let E=this.hierarchical.getLevels();E=wo(E).call(E);for(let N=0;N0&&Math.abs(p)0&&(c=this.direction.getPosition(o[A-1])+l),this.direction.setPosition(I,c,i),this._validatePositionAndContinue(I,i,c),r++}}}}_placeBranchNodes(e,t){var i;const o=this.hierarchical.childrenReference[e];if(o===void 0)return;const r=[];for(let I=0;It&&this.positionedNodes[l.id]===void 0){const h=this.options.hierarchical.nodeSpacing;let p;I===0?p=this.direction.getPosition(this.body.nodes[e]):p=this.direction.getPosition(r[I-1])+h,this.direction.setPosition(l,p,c),this._validatePositionAndContinue(l,c,p)}else return}const A=this._getCenterPosition(r);this.direction.setPosition(this.body.nodes[e],A,t)}_validatePositionAndContinue(e,t,i){if(this.hierarchical.isTree){if(this.lastNodeOnLevel[t]!==void 0){const o=this.direction.getPosition(this.body.nodes[this.lastNodeOnLevel[t]]);if(i-o{var o;Ct(o=this.body.edgeIndices).call(o,i.id)!==-1&&t.push(i)}),t}_getHubSizes(){const e={},t=this.body.nodeIndices;He(t,o=>{const r=this.body.nodes[o],A=this._getActiveEdges(r).length;e[A]=!0});const i=[];return He(e,o=>{i.push(Number(o))}),eg(i).call(i,function(o,r){return r-o}),i}_determineLevelsByHubsize(){const e=(i,o)=>{this.hierarchical.levelDownstream(i,o)},t=this._getHubSizes();for(let i=0;i{const A=this.body.nodes[r];o===this._getActiveEdges(A).length&&this._crawlNetwork(e,r)})}}_determineLevelsCustomCallback(){const t=function(o,r,A){},i=(o,r,A)=>{let I=this.hierarchical.levels[o.id];I===void 0&&(I=this.hierarchical.levels[o.id]=1e5);const l=t(Sn.cloneOptions(o,"node"),Sn.cloneOptions(r,"node"),Sn.cloneOptions(A,"edge"));this.hierarchical.levels[r.id]=I+l};this._crawlNetwork(i),this.hierarchical.setMinLevelToZero()}_determineLevelsDirected(){var e;const t=cu(e=this.body.nodeIndices).call(e,(i,o)=>(i.set(o,this.body.nodes[o]),i),new Oa);this.options.hierarchical.shakeTowards==="roots"?this.hierarchical.levels=cq(t):this.hierarchical.levels=lq(t),this.hierarchical.setMinLevelToZero()}_generateMap(){const e=(t,i)=>{this.hierarchical.levels[i.id]>this.hierarchical.levels[t.id]&&this.hierarchical.addRelation(t.id,i.id)};this._crawlNetwork(e),this.hierarchical.checkIfTree()}_crawlNetwork(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(){},t=arguments.length>1?arguments[1]:void 0;const i={},o=(r,A)=>{if(i[r.id]===void 0){this.hierarchical.setTreeIndex(r,A),i[r.id]=!0;let I;const l=this._getActiveEdges(r);for(let c=0;c{if(i[r])return;i[r]=!0,this.direction.shift(r,t);const A=this.hierarchical.childrenReference[r];if(A!==void 0)for(let I=0;I{const l=this.hierarchical.parentReference[I];if(l!==void 0)for(let c=0;c{const l=this.hierarchical.parentReference[I];if(l!==void 0)for(let c=0;c{this.activated=!0,this.configureKeyboardBindings()}),this.body.emitter.on("deactivate",()=>{this.activated=!1,this.configureKeyboardBindings()}),this.body.emitter.on("destroy",()=>{this.keycharm!==void 0&&this.keycharm.destroy()}),this.options={}}setOptions(e){e!==void 0&&(this.options=e,this.create())}create(){this.options.navigationButtons===!0?this.iconsCreated===!1&&this.loadNavigationElements():this.iconsCreated===!0&&this.cleanNavigation(),this.configureKeyboardBindings()}cleanNavigation(){if(this.navigationHammers.length!=0){for(let e=0;e{this._stopMovement()}),this.navigationHammers.push(r),this.iconsCreated=!0}bindToRedraw(e){if(this.boundFunctions[e]===void 0){var t;this.boundFunctions[e]=ge(t=this[e]).call(t,this),this.body.emitter.on("initRedraw",this.boundFunctions[e]),this.body.emitter.emit("_startRendering")}}unbindFromRedraw(e){this.boundFunctions[e]!==void 0&&(this.body.emitter.off("initRedraw",this.boundFunctions[e]),this.body.emitter.emit("_stopRendering"),delete this.boundFunctions[e])}_fit(){new Date().valueOf()-this.touchTime>700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=new Date().valueOf())}_stopMovement(){for(const e in this.boundFunctions)Object.prototype.hasOwnProperty.call(this.boundFunctions,e)&&(this.body.emitter.off("initRedraw",this.boundFunctions[e]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}_moveUp(){this.body.view.translation.y+=this.options.keyboard.speed.y}_moveDown(){this.body.view.translation.y-=this.options.keyboard.speed.y}_moveLeft(){this.body.view.translation.x+=this.options.keyboard.speed.x}_moveRight(){this.body.view.translation.x-=this.options.keyboard.speed.x}_zoomIn(){const e=this.body.view.scale,t=this.body.view.scale*(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,o=t/e,r=(1-o)*this.canvas.canvasViewCenter.x+i.x*o,A=(1-o)*this.canvas.canvasViewCenter.y+i.y*o;this.body.view.scale=t,this.body.view.translation={x:r,y:A},this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale,pointer:null})}_zoomOut(){const e=this.body.view.scale,t=this.body.view.scale/(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,o=t/e,r=(1-o)*this.canvas.canvasViewCenter.x+i.x*o,A=(1-o)*this.canvas.canvasViewCenter.y+i.y*o;this.body.view.scale=t,this.body.view.translation={x:r,y:A},this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale,pointer:null})}configureKeyboardBindings(){if(this.keycharm!==void 0&&this.keycharm.destroy(),this.options.keyboard.enabled===!0&&(this.options.keyboard.bindToWindow===!0?this.keycharm=Cx({container:window,preventDefault:!0}):this.keycharm=Cx({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),this.activated===!0)){var e,t,i,o,r,A,I,l,c,h,p,m,y,w,S,x,O,E,_,P,Q,ne,j,V;ge(e=this.keycharm).call(e,"up",()=>{this.bindToRedraw("_moveUp")},"keydown"),ge(t=this.keycharm).call(t,"down",()=>{this.bindToRedraw("_moveDown")},"keydown"),ge(i=this.keycharm).call(i,"left",()=>{this.bindToRedraw("_moveLeft")},"keydown"),ge(o=this.keycharm).call(o,"right",()=>{this.bindToRedraw("_moveRight")},"keydown"),ge(r=this.keycharm).call(r,"=",()=>{this.bindToRedraw("_zoomIn")},"keydown"),ge(A=this.keycharm).call(A,"num+",()=>{this.bindToRedraw("_zoomIn")},"keydown"),ge(I=this.keycharm).call(I,"num-",()=>{this.bindToRedraw("_zoomOut")},"keydown"),ge(l=this.keycharm).call(l,"-",()=>{this.bindToRedraw("_zoomOut")},"keydown"),ge(c=this.keycharm).call(c,"[",()=>{this.bindToRedraw("_zoomOut")},"keydown"),ge(h=this.keycharm).call(h,"]",()=>{this.bindToRedraw("_zoomIn")},"keydown"),ge(p=this.keycharm).call(p,"pageup",()=>{this.bindToRedraw("_zoomIn")},"keydown"),ge(m=this.keycharm).call(m,"pagedown",()=>{this.bindToRedraw("_zoomOut")},"keydown"),ge(y=this.keycharm).call(y,"up",()=>{this.unbindFromRedraw("_moveUp")},"keyup"),ge(w=this.keycharm).call(w,"down",()=>{this.unbindFromRedraw("_moveDown")},"keyup"),ge(S=this.keycharm).call(S,"left",()=>{this.unbindFromRedraw("_moveLeft")},"keyup"),ge(x=this.keycharm).call(x,"right",()=>{this.unbindFromRedraw("_moveRight")},"keyup"),ge(O=this.keycharm).call(O,"=",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),ge(E=this.keycharm).call(E,"num+",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),ge(_=this.keycharm).call(_,"num-",()=>{this.unbindFromRedraw("_zoomOut")},"keyup"),ge(P=this.keycharm).call(P,"-",()=>{this.unbindFromRedraw("_zoomOut")},"keyup"),ge(Q=this.keycharm).call(Q,"[",()=>{this.unbindFromRedraw("_zoomOut")},"keyup"),ge(ne=this.keycharm).call(ne,"]",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),ge(j=this.keycharm).call(j,"pageup",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),ge(V=this.keycharm).call(V,"pagedown",()=>{this.unbindFromRedraw("_zoomOut")},"keyup")}}}class x${constructor(e,t,i){var o,r,A,I,l,c,h,p,m,y,w,S,x;this.body=e,this.canvas=t,this.selectionHandler=i,this.navigationHandler=new w$(e,t),this.body.eventListeners.onTap=ge(o=this.onTap).call(o,this),this.body.eventListeners.onTouch=ge(r=this.onTouch).call(r,this),this.body.eventListeners.onDoubleTap=ge(A=this.onDoubleTap).call(A,this),this.body.eventListeners.onHold=ge(I=this.onHold).call(I,this),this.body.eventListeners.onDragStart=ge(l=this.onDragStart).call(l,this),this.body.eventListeners.onDrag=ge(c=this.onDrag).call(c,this),this.body.eventListeners.onDragEnd=ge(h=this.onDragEnd).call(h,this),this.body.eventListeners.onMouseWheel=ge(p=this.onMouseWheel).call(p,this),this.body.eventListeners.onPinch=ge(m=this.onPinch).call(m,this),this.body.eventListeners.onMouseMove=ge(y=this.onMouseMove).call(y,this),this.body.eventListeners.onRelease=ge(w=this.onRelease).call(w,this),this.body.eventListeners.onContext=ge(S=this.onContext).call(S,this),this.touchTime=0,this.drag={},this.pinch={},this.popup=void 0,this.popupObj=void 0,this.popupTimer=void 0,this.body.functions.getPointer=ge(x=this.getPointer).call(x,this),this.options={},this.defaultOptions={dragNodes:!0,dragView:!0,hover:!1,keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0,autoFocus:!0},navigationButtons:!1,tooltipDelay:300,zoomView:!0,zoomSpeed:1},Vt(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){this.body.emitter.on("destroy",()=>{clearTimeout(this.popupTimer),delete this.body.functions.getPointer})}setOptions(e){e!==void 0&&(ZC(["hideEdgesOnDrag","hideEdgesOnZoom","hideNodesOnDrag","keyboard","multiselect","selectable","selectConnectedEdges"],this.options,e),ii(this.options,e,"keyboard"),e.tooltip&&(Vt(this.options.tooltip,e.tooltip),e.tooltip.color&&(this.options.tooltip.color=Kd(e.tooltip.color)))),this.navigationHandler.setOptions(this.options)}getPointer(e){return{x:e.x-PV(this.canvas.frame.canvas),y:e.y-LV(this.canvas.frame.canvas)}}onTouch(e){new Date().valueOf()-this.touchTime>50&&(this.drag.pointer=this.getPointer(e.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=new Date().valueOf())}onTap(e){const t=this.getPointer(e.center),i=this.selectionHandler.options.multiselect&&(e.changedPointers[0].ctrlKey||e.changedPointers[0].metaKey);this.checkSelectionChanges(t,i),this.selectionHandler.commitAndEmit(t,e),this.selectionHandler.generateClickEvent("click",e,t)}onDoubleTap(e){const t=this.getPointer(e.center);this.selectionHandler.generateClickEvent("doubleClick",e,t)}onHold(e){const t=this.getPointer(e.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(t,i),this.selectionHandler.commitAndEmit(t,e),this.selectionHandler.generateClickEvent("click",e,t),this.selectionHandler.generateClickEvent("hold",e,t)}onRelease(e){if(new Date().valueOf()-this.touchTime>10){const t=this.getPointer(e.center);this.selectionHandler.generateClickEvent("release",e,t),this.touchTime=new Date().valueOf()}}onContext(e){const t=this.getPointer({x:e.clientX,y:e.clientY});this.selectionHandler.generateClickEvent("oncontext",e,t)}checkSelectionChanges(e){(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1)===!0?this.selectionHandler.selectAdditionalOnPoint(e):this.selectionHandler.selectOnPoint(e)}_determineDifference(e,t){const i=function(o,r){const A=[];for(let I=0;I{const I=A.node;A.xFixed===!1&&(I.x=this.canvas._XconvertDOMtoCanvas(this.canvas._XconvertCanvasToDOM(A.x)+o)),A.yFixed===!1&&(I.y=this.canvas._YconvertDOMtoCanvas(this.canvas._YconvertCanvasToDOM(A.y)+r))}),this.body.emitter.emit("startSimulation")}else{if(e.srcEvent.shiftKey){if(this.selectionHandler.generateClickEvent("dragging",e,t,void 0,!0),this.drag.pointer===void 0){this.onDragStart(e);return}this.body.selectionBox.position.end={x:this.canvas._XconvertDOMtoCanvas(t.x),y:this.canvas._YconvertDOMtoCanvas(t.y)},this.body.emitter.emit("_requestRedraw")}if(this.options.dragView===!0&&!e.srcEvent.shiftKey){if(this.selectionHandler.generateClickEvent("dragging",e,t,void 0,!0),this.drag.pointer===void 0){this.onDragStart(e);return}const o=t.x-this.drag.pointer.x,r=t.y-this.drag.pointer.y;this.body.view.translation={x:this.drag.translation.x+o,y:this.drag.translation.y+r},this.body.emitter.emit("_requestRedraw")}}}onDragEnd(e){if(this.drag.dragging=!1,this.body.selectionBox.show){var t;this.body.selectionBox.show=!1;const i=this.body.selectionBox.position,o={minX:Math.min(i.start.x,i.end.x),minY:Math.min(i.start.y,i.end.y),maxX:Math.max(i.start.x,i.end.x),maxY:Math.max(i.start.y,i.end.y)},r=Qt(t=this.body.nodeIndices).call(t,I=>{const l=this.body.nodes[I];return l.x>=o.minX&&l.x<=o.maxX&&l.y>=o.minY&&l.y<=o.maxY});Je(r).call(r,I=>this.selectionHandler.selectObject(this.body.nodes[I]));const A=this.getPointer(e.center);this.selectionHandler.commitAndEmit(A,e),this.selectionHandler.generateClickEvent("dragEnd",e,this.getPointer(e.center),void 0,!0),this.body.emitter.emit("_requestRedraw")}else{const i=this.drag.selection;i&&i.length?(Je(i).call(i,function(o){o.node.options.fixed.x=o.xFixed,o.node.options.fixed.y=o.yFixed}),this.selectionHandler.generateClickEvent("dragEnd",e,this.getPointer(e.center)),this.body.emitter.emit("startSimulation")):(this.selectionHandler.generateClickEvent("dragEnd",e,this.getPointer(e.center),void 0,!0),this.body.emitter.emit("_requestRedraw"))}}onPinch(e){const t=this.getPointer(e.center);this.drag.pinched=!0,this.pinch.scale===void 0&&(this.pinch.scale=1);const i=this.pinch.scale*e.scale;this.zoom(i,t)}zoom(e,t){if(this.options.zoomView===!0){const i=this.body.view.scale;e<1e-5&&(e=1e-5),e>10&&(e=10);let o;this.drag!==void 0&&this.drag.dragging===!0&&(o=this.canvas.DOMtoCanvas(this.drag.pointer));const r=this.body.view.translation,A=e/i,I=(1-A)*t.x+r.x*A,l=(1-A)*t.y+r.y*A;if(this.body.view.scale=e,this.body.view.translation={x:I,y:l},o!=null){const c=this.canvas.canvasToDOM(o);this.drag.pointer.x=c.x,this.drag.pointer.y=c.y}this.body.emitter.emit("_requestRedraw"),ithis._checkShowPopup(t),this.options.tooltipDelay))),this.options.hover===!0&&this.selectionHandler.hoverObject(e,t)}_checkShowPopup(e){const t=this.canvas._XconvertDOMtoCanvas(e.x),i=this.canvas._YconvertDOMtoCanvas(e.y),o={left:t,top:i,right:t,bottom:i},r=this.popupObj===void 0?void 0:this.popupObj.id;let A=!1,I="node";if(this.popupObj===void 0){const l=this.body.nodeIndices,c=this.body.nodes;let h;const p=[];for(let m=0;m0&&(this.popupObj=c[p[p.length-1]],A=!0)}if(this.popupObj===void 0&&A===!1){const l=this.body.edgeIndices,c=this.body.edges;let h;const p=[];for(let m=0;m0&&(this.popupObj=c[p[p.length-1]],I="edge")}this.popupObj!==void 0?this.popupObj.id!==r&&(this.popup===void 0&&(this.popup=new $V(this.canvas.frame)),this.popup.popupTargetType=I,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(e.x+3,e.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):this.popup!==void 0&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}_checkHidePopup(e){const t=this.selectionHandler._pointerToPositionObject(e);let i=!1;if(this.popup.popupTargetType==="node"){if(this.body.nodes[this.popup.popupTargetId]!==void 0&&(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(t),i===!0)){const o=this.selectionHandler.getNodeAt(e);i=o===void 0?!1:o.id===this.popup.popupTargetId}}else this.selectionHandler.getNodeAt(e)===void 0&&this.body.edges[this.popup.popupTargetId]!==void 0&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(t));i===!1&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}}var S$=gt,Ix=ou,JC=GC.getWeakData,E$=iu,T$=Hi,O$=as,Tu=yn,N$=nu,lx=xg,cx=gn,dx=mo,D$=dx.set,M$=dx.getterFor,z$=lx.find,k$=lx.findIndex,R$=S$([].splice),_$=0,eI=function(n){return n.frozen||(n.frozen=new ux)},ux=function(){this.entries=[]},Ou=function(n,e){return z$(n.entries,function(t){return t[0]===e})};ux.prototype={get:function(n){var e=Ou(this,n);if(e)return e[1]},has:function(n){return!!Ou(this,n)},set:function(n,e){var t=Ou(this,n);t?t[1]=e:this.entries.push([n,e])},delete:function(n){var e=k$(this.entries,function(t){return t[0]===n});return~e&&R$(this.entries,e,1),!!~e}};var j$={getConstructor:function(n,e,t,i){var o=n(function(l,c){E$(l,r),D$(l,{type:e,id:_$++,frozen:void 0}),O$(c)||N$(c,l[i],{that:l,AS_ENTRIES:t})}),r=o.prototype,A=M$(e),I=function(l,c,h){var p=A(l),m=JC(T$(c),!0);return m===!0?eI(p).set(c,h):m[p.id]=h,l};return Ix(r,{delete:function(l){var c=A(this);if(!Tu(l))return!1;var h=JC(l);return h===!0?eI(c).delete(l):h&&cx(h,c.id)&&delete h[c.id]},has:function(c){var h=A(this);if(!Tu(c))return!1;var p=JC(c);return p===!0?eI(h).has(c):p&&cx(p,h.id)}}),Ix(r,t?{get:function(c){var h=A(this);if(Tu(c)){var p=JC(c);return p===!0?eI(h).get(c):p?p[h.id]:void 0}},set:function(c,h){return I(this,c,h)}}:{add:function(c){return I(this,c,!0)}}),o}},Z$=z1,hx=_t,tI=gt,fx=ou,B$=GC,P$=gu,px=j$,nI=yn,iI=mo.enforce,L$=it,G$=Yy,ka=Object,F$=Array.isArray,gI=ka.isExtensible,mx=ka.isFrozen,V$=ka.isSealed,vx=ka.freeze,U$=ka.seal,yx={},bx={},Y$=!hx.ActiveXObject&&"ActiveXObject"in hx,Ra,wx=function(n){return function(){return n(this,arguments.length?arguments[0]:void 0)}},xx=P$("WeakMap",wx,px),Ps=xx.prototype,oI=tI(Ps.set),H$=function(){return Z$&&L$(function(){var n=vx([]);return oI(new xx,n,1),!mx(n)})};if(G$)if(Y$){Ra=px.getConstructor(wx,"WeakMap",!0),B$.enable();var Sx=tI(Ps.delete),sI=tI(Ps.has),Ex=tI(Ps.get);fx(Ps,{delete:function(n){if(nI(n)&&!gI(n)){var e=iI(this);return e.frozen||(e.frozen=new Ra),Sx(this,n)||e.frozen.delete(n)}return Sx(this,n)},has:function(e){if(nI(e)&&!gI(e)){var t=iI(this);return t.frozen||(t.frozen=new Ra),sI(this,e)||t.frozen.has(e)}return sI(this,e)},get:function(e){if(nI(e)&&!gI(e)){var t=iI(this);return t.frozen||(t.frozen=new Ra),sI(this,e)?Ex(this,e):t.frozen.get(e)}return Ex(this,e)},set:function(e,t){if(nI(e)&&!gI(e)){var i=iI(this);i.frozen||(i.frozen=new Ra),sI(this,e)?oI(this,e,t):i.frozen.set(e,t)}else oI(this,e,t);return this}})}else H$()&&fx(Ps,{set:function(e,t){var i;return F$(e)&&(mx(e)?i=yx:V$(e)&&(i=bx)),oI(this,e,t),i===yx&&vx(e),i===bx&&U$(e),this}});var K$=st,W$=K$.WeakMap,Q$=W$,X$=Q$,$$=X$,_a=Ne($$);function yt(n,e,t,i){if(typeof e=="function"?n!==e||!i:!e.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?i:t==="a"?i.call(n):i?i.value:e.get(n)}function Nu(n,e,t,i,o){if(typeof e=="function"?n!==e||!0:!e.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(n,t),t}typeof SuppressedError=="function"&&SuppressedError;var _o,gi,Zg,Bg,rI;function Tx(n,e){const t=new wi;for(const i of e)n.has(i)||t.add(i);return t}class Ox{constructor(){_o.set(this,new wi),gi.set(this,new wi)}get size(){return yt(this,gi,"f").size}add(){for(var e=arguments.length,t=new Array(e),i=0;i0&&arguments[0]!==void 0?arguments[0]:()=>{};Zg.set(this,new Ox),Bg.set(this,new Ox),rI.set(this,void 0),Nu(this,rI,e)}get sizeNodes(){return yt(this,Zg,"f").size}get sizeEdges(){return yt(this,Bg,"f").size}getNodes(){return yt(this,Zg,"f").getSelection()}getEdges(){return yt(this,Bg,"f").getSelection()}addNodes(){yt(this,Zg,"f").add(...arguments)}addEdges(){yt(this,Bg,"f").add(...arguments)}deleteNodes(e){yt(this,Zg,"f").delete(e)}deleteEdges(e){yt(this,Bg,"f").delete(e)}clear(){yt(this,Zg,"f").clear(),yt(this,Bg,"f").clear()}commit(){const e={nodes:yt(this,Zg,"f").commit(),edges:yt(this,Bg,"f").commit()};for(var t=arguments.length,i=new Array(t),o=0;o{this.updateSelection()})}setOptions(e){e!==void 0&&Ds(["multiselect","hoverConnectedEdges","selectable","selectConnectedEdges"],this.options,e)}selectOnPoint(e){let t=!1;if(this.options.selectable===!0){const i=this.getNodeAt(e)||this.getEdgeAt(e);this.unselectAll(),i!==void 0&&(t=this.selectObject(i)),this.body.emitter.emit("_requestRedraw")}return t}selectAdditionalOnPoint(e){let t=!1;if(this.options.selectable===!0){const i=this.getNodeAt(e)||this.getEdgeAt(e);i!==void 0&&(t=!0,i.isSelected()===!0?this.deselectObject(i):this.selectObject(i),this.body.emitter.emit("_requestRedraw"))}return t}_initBaseEvent(e,t){const i={};return i.pointer={DOM:{x:t.x,y:t.y},canvas:this.canvas.DOMtoCanvas(t)},i.event=e,i}generateClickEvent(e,t,i,o){let r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;const A=this._initBaseEvent(t,i);if(r===!0)A.nodes=[],A.edges=[];else{const I=this.getSelection();A.nodes=I.nodes,A.edges=I.edges}o!==void 0&&(A.previousSelection=o),e=="click"&&(A.items=this.getClickedItems(i)),t.controlEdge!==void 0&&(A.controlEdge=t.controlEdge),this.body.emitter.emit(e,A)}selectObject(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.selectConnectedEdges;return e!==void 0?(e instanceof Ot?(t===!0&&this._selectionAccumulator.addEdges(...e.edges),this._selectionAccumulator.addNodes(e)):this._selectionAccumulator.addEdges(e),!0):!1}deselectObject(e){e.isSelected()===!0&&(e.selected=!1,this._removeFromSelection(e))}_getAllNodesOverlappingWith(e){const t=[],i=this.body.nodes;for(let o=0;o1&&arguments[1]!==void 0?arguments[1]:!0;const i=this._pointerToPositionObject(e),o=this._getAllNodesOverlappingWith(i);if(o.length>0)return t===!0?this.body.nodes[o[o.length-1]]:o[o.length-1]}_getEdgesOverlappingWith(e,t){const i=this.body.edges;for(let o=0;o1&&arguments[1]!==void 0?arguments[1]:!0;const i=this.canvas.DOMtoCanvas(e);let o=10,r=null;const A=this.body.edges;for(let I=0;I0&&(this.generateClickEvent("deselectEdge",t,e,r),i=!0),o.nodes.deleted.length>0&&(this.generateClickEvent("deselectNode",t,e,r),i=!0),o.nodes.added.length>0&&(this.generateClickEvent("selectNode",t,e),i=!0),o.edges.added.length>0&&(this.generateClickEvent("selectEdge",t,e),i=!0),i===!0&&this.generateClickEvent("select",t,e)}getSelection(){return{nodes:this.getSelectedNodeIds(),edges:this.getSelectedEdgeIds()}}getSelectedNodes(){return this._selectionAccumulator.getNodes()}getSelectedEdges(){return this._selectionAccumulator.getEdges()}getSelectedNodeIds(){var e;return cn(e=this._selectionAccumulator.getNodes()).call(e,t=>t.id)}getSelectedEdgeIds(){var e;return cn(e=this._selectionAccumulator.getEdges()).call(e,t=>t.id)}setSelection(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!e||!e.nodes&&!e.edges)throw new TypeError("Selection must be an object with nodes and/or edges properties");if((t.unselectAll||t.unselectAll===void 0)&&this.unselectAll(),e.nodes)for(const i of e.nodes){const o=this.body.nodes[i];if(!o)throw new RangeError('Node with id "'+i+'" not found');this.selectObject(o,t.highlightEdges)}if(e.edges)for(const i of e.edges){const o=this.body.edges[i];if(!o)throw new RangeError('Edge with id "'+i+'" not found');this.selectObject(o)}this.body.emitter.emit("_requestRedraw"),this._selectionAccumulator.commit()}selectNodes(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!e||e.length===void 0)throw"Selection must be an array with ids";this.setSelection({nodes:e},{highlightEdges:t})}selectEdges(e){if(!e||e.length===void 0)throw"Selection must be an array with ids";this.setSelection({edges:e})}updateSelection(){for(const e in this._selectionAccumulator.getNodes())Object.prototype.hasOwnProperty.call(this.body.nodes,e.id)||this._selectionAccumulator.deleteNodes(e);for(const e in this._selectionAccumulator.getEdges())Object.prototype.hasOwnProperty.call(this.body.edges,e.id)||this._selectionAccumulator.deleteEdges(e)}getClickedItems(e){const t=this.canvas.DOMtoCanvas(e),i=[],o=this.body.nodeIndices,r=this.body.nodes;for(let l=o.length-1;l>=0;l--){const h=r[o[l]].getItemsOnPoint(t);i.push.apply(i,h)}const A=this.body.edgeIndices,I=this.body.edges;for(let l=A.length-1;l>=0;l--){const h=I[A[l]].getItemsOnPoint(t);i.push.apply(i,h)}return i}}class Nx{abstract(){throw new Error("Can't instantiate abstract class!")}fake_use(){}curveType(){return this.abstract()}getPosition(e){return this.fake_use(e),this.abstract()}setPosition(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;this.fake_use(e,t,i),this.abstract()}getTreeSize(e){return this.fake_use(e),this.abstract()}sort(e){this.fake_use(e),this.abstract()}fix(e,t){this.fake_use(e,t),this.abstract()}shift(e,t){this.fake_use(e,t),this.abstract()}}class eq extends Nx{constructor(e){super(),this.layout=e}curveType(){return"horizontal"}getPosition(e){return e.x}setPosition(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;i!==void 0&&this.layout.hierarchical.addToOrdering(e,i),e.x=t}getTreeSize(e){const t=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,e);return{min:t.min_x,max:t.max_x}}sort(e){eg(e).call(e,function(t,i){return t.x-i.x})}fix(e,t){e.y=this.layout.options.hierarchical.levelSeparation*t,e.options.fixed.y=!0}shift(e,t){this.layout.body.nodes[e].x+=t}}class tq extends Nx{constructor(e){super(),this.layout=e}curveType(){return"vertical"}getPosition(e){return e.y}setPosition(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;i!==void 0&&this.layout.hierarchical.addToOrdering(e,i),e.y=t}getTreeSize(e){const t=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,e);return{min:t.min_y,max:t.max_y}}sort(e){eg(e).call(e,function(t,i){return t.y-i.y})}fix(e,t){e.x=this.layout.options.hierarchical.levelSeparation*t,e.options.fixed.x=!0}shift(e,t){this.layout.body.nodes[e].y+=t}}var nq=ze,iq=xg.every,gq=ys,oq=gq("every");nq({target:"Array",proto:!0,forced:!oq},{every:function(e){return iq(this,e,arguments.length>1?arguments[1]:void 0)}});var sq=Wt,rq=sq("Array").every,aq=jt,Aq=rq,Du=Array.prototype,Cq=function(n){var e=n.every;return n===Du||aq(Du,n)&&e===Du.every?Aq:e},Iq=Cq,lq=Iq,cq=lq,Dx=Ne(cq);function dq(n,e){const t=new wi;return Je(n).call(n,i=>{var o;Je(o=i.edges).call(o,r=>{r.connected&&t.add(r)})}),Je(t).call(t,i=>{const o=i.from.id,r=i.to.id;e[o]==null&&(e[o]=0),(e[r]==null||e[o]>=e[r])&&(e[r]=e[o]+1)}),e}function uq(n){return Mx(e=>{var t,i;return Dx(t=Qt(i=e.edges).call(i,o=>n.has(o.toId))).call(t,o=>o.to===e)},(e,t)=>t>e,"from",n)}function hq(n){return Mx(e=>{var t,i;return Dx(t=Qt(i=e.edges).call(i,o=>n.has(o.toId))).call(t,o=>o.from===e)},(e,t)=>tp+1+m.edges.length,0),I=t+"Id",l=t==="to"?1:-1;for(const[p,m]of i){if(!i.has(p)||!n(m))continue;r[p]=0;const y=[m];let w=0,S;for(;S=y.pop();){var c,h;if(!i.has(p))continue;const x=r[S.id]+l;if(Je(c=Qt(h=S.edges).call(h,O=>O.connected&&O.to!==O.from&&O[t]!==S&&i.has(O.toId)&&i.has(O.fromId))).call(c,O=>{const E=O[I],_=r[E];(_==null||e(x,_))&&(r[E]=x,y.push(O[t]))}),w>A)return dq(i,r);++w}}return r}class fq{constructor(){this.childrenReference={},this.parentReference={},this.trees={},this.distributionOrdering={},this.levels={},this.distributionIndex={},this.isTree=!1,this.treeIndex=-1}addRelation(e,t){this.childrenReference[e]===void 0&&(this.childrenReference[e]=[]),this.childrenReference[e].push(t),this.parentReference[t]===void 0&&(this.parentReference[t]=[]),this.parentReference[t].push(e)}checkIfTree(){for(const e in this.parentReference)if(this.parentReference[e].length>1){this.isTree=!1;return}this.isTree=!0}numTrees(){return this.treeIndex+1}setTreeIndex(e,t){t!==void 0&&this.trees[e.id]===void 0&&(this.trees[e.id]=t,this.treeIndex=Math.max(t,this.treeIndex))}ensureLevel(e){this.levels[e]===void 0&&(this.levels[e]=0)}getMaxLevel(e){const t={},i=o=>{if(t[o]!==void 0)return t[o];let r=this.levels[o];if(this.childrenReference[o]){const A=this.childrenReference[o];if(A.length>0)for(let I=0;Ir-A);for(const r of o)t.set(r,i++);for(const r in this.levels)Object.prototype.hasOwnProperty.call(this.levels,r)&&(this.levels[r]=t.get(this.levels[r]))}getTreeSize(e,t){let i=1e9,o=-1e9,r=1e9,A=-1e9;for(const I in this.trees)if(Object.prototype.hasOwnProperty.call(this.trees,I)&&this.trees[I]===t){const l=e[I];i=Math.min(l.x,i),o=Math.max(l.x,o),r=Math.min(l.y,r),A=Math.max(l.y,A)}return{min_x:i,max_x:o,min_y:r,max_y:A}}hasSameParent(e,t){const i=this.parentReference[e.id],o=this.parentReference[t.id];if(i===void 0||o===void 0)return!1;for(let r=0;r{this.setupHierarchicalLayout()}),this.body.emitter.on("_dataLoaded",()=>{this.layoutNetwork()}),this.body.emitter.on("_resetHierarchicalLayout",()=>{this.setupHierarchicalLayout()}),this.body.emitter.on("_adjustEdgesForHierarchicalLayout",()=>{if(this.options.hierarchical.enabled!==!0)return;const e=this.direction.curveType();this.body.emitter.emit("_forceDisableDynamicCurves",e,!1)})}setOptions(e,t){if(e!==void 0){const i=this.options.hierarchical,o=i.enabled;if(Ds(["randomSeed","improvedLayout","clusterThreshold"],this.options,e),ii(this.options,e,"hierarchical"),e.randomSeed!==void 0&&this._resetRNG(e.randomSeed),i.enabled===!0)return o===!0&&this.body.emitter.emit("refresh",!0),i.direction==="RL"||i.direction==="DU"?i.levelSeparation>0&&(i.levelSeparation*=-1):i.levelSeparation<0&&(i.levelSeparation*=-1),this.setDirectionStrategy(),this.body.emitter.emit("_resetHierarchicalLayout"),this.adaptAllOptionsForHierarchicalLayout(t);if(o===!0)return this.body.emitter.emit("refresh"),mt(t,this.optionsBackup)}return t}_resetRNG(e){this.initialRandomSeed=e,this._rng=jC(this.initialRandomSeed)}adaptAllOptionsForHierarchicalLayout(e){if(this.options.hierarchical.enabled===!0){const t=this.optionsBackup.physics;e.physics===void 0||e.physics===!0?(e.physics={enabled:t.enabled===void 0?!0:t.enabled,solver:"hierarchicalRepulsion"},t.enabled=t.enabled===void 0?!0:t.enabled,t.solver=t.solver||"barnesHut"):typeof e.physics=="object"?(t.enabled=e.physics.enabled===void 0?!0:e.physics.enabled,t.solver=e.physics.solver||"barnesHut",e.physics.solver="hierarchicalRepulsion"):e.physics!==!1&&(t.solver="barnesHut",e.physics={solver:"hierarchicalRepulsion"});let i=this.direction.curveType();if(e.edges===void 0)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},e.edges={smooth:!1};else if(e.edges.smooth===void 0)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},e.edges.smooth=!1;else if(typeof e.edges.smooth=="boolean")this.optionsBackup.edges={smooth:e.edges.smooth},e.edges.smooth={enabled:e.edges.smooth,type:i};else{const o=e.edges.smooth;o.type!==void 0&&o.type!=="dynamic"&&(i=o.type),this.optionsBackup.edges={smooth:{enabled:o.enabled===void 0?!0:o.enabled,type:o.type===void 0?"dynamic":o.type,roundness:o.roundness===void 0?.5:o.roundness,forceDirection:o.forceDirection===void 0?!1:o.forceDirection}},e.edges.smooth={enabled:o.enabled===void 0?!0:o.enabled,type:i,roundness:o.roundness===void 0?.5:o.roundness,forceDirection:o.forceDirection===void 0?!1:o.forceDirection}}this.body.emitter.emit("_forceDisableDynamicCurves",i)}return e}positionInitially(e){if(this.options.hierarchical.enabled!==!0){this._resetRNG(this.initialRandomSeed);const t=e.length+50;for(let i=0;ir){const l=e.length;for(;e.length>r&&o<=10;){o+=1;const c=e.length;o%3===0?this.body.modules.clustering.clusterBridges(A):this.body.modules.clustering.clusterOutliers(A);const h=e.length;if(c==h&&o%3!==0){this._declusterAll(),this.body.emitter.emit("_layoutFailed"),console.info("This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.");return}}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*l)})}o>10&&console.info("The clustering didn't succeed within the amount of interations allowed, progressing with partial result."),this.body.modules.kamadaKawai.solve(e,this.body.edgeIndices,!0),this._shiftToCenter();const I=70;for(let l=0;l0){let e,t,i=!1,o=!1;this.lastNodeOnLevel={},this.hierarchical=new fq;for(t in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,t)&&(e=this.body.nodes[t],e.options.level!==void 0?(i=!0,this.hierarchical.levels[t]=e.options.level):o=!0);if(o===!0&&i===!0)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.");{if(o===!0){const A=this.options.hierarchical.sortMethod;A==="hubsize"?this._determineLevelsByHubsize():A==="directed"?this._determineLevelsDirected():A==="custom"&&this._determineLevelsCustomCallback()}for(const A in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,A)&&this.hierarchical.ensureLevel(A);const r=this._getDistribution();this._generateMap(),this._placeNodesByHierarchy(r),this._condenseHierarchy(),this._shiftToCenter()}}}_condenseHierarchy(){var e=this;let t=!1;const i={},o=()=>{const O=A();let E=0;for(let _=0;_{const _=this.hierarchical.trees;for(const P in _)Object.prototype.hasOwnProperty.call(_,P)&&_[P]===O&&this.direction.shift(P,E)},A=()=>{const O=[];for(let E=0;E{if(!E[O.id]&&(E[O.id]=!0,this.hierarchical.childrenReference[O.id])){const _=this.hierarchical.childrenReference[O.id];if(_.length>0)for(let P=0;P<_.length;P++)I(this.body.nodes[_[P]],E)}},l=function(O){let E=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e9,_=1e9,P=1e9,Q=1e9,ne=-1e9;for(const j in O)if(Object.prototype.hasOwnProperty.call(O,j)){const V=e.body.nodes[j],de=e.hierarchical.levels[V.id],le=e.direction.getPosition(V),[Ze,Ee]=e._getSpaceAroundNode(V,O);_=Math.min(Ze,_),P=Math.min(Ee,P),de<=E&&(Q=Math.min(le,Q),ne=Math.max(le,ne))}return[Q,ne,_,P]},c=(O,E)=>{const _=this.hierarchical.getMaxLevel(O.id),P=this.hierarchical.getMaxLevel(E.id);return Math.min(_,P)},h=(O,E,_)=>{const P=this.hierarchical;for(let Q=0;Q1)for(let V=0;V2&&arguments[2]!==void 0?arguments[2]:!1;const P=e.direction.getPosition(O),Q=e.direction.getPosition(E),ne=Math.abs(Q-P),j=e.options.hierarchical.nodeSpacing;if(ne>j){const V={},de={};I(O,V),I(E,de);const le=c(O,E),Ze=l(V,le),Ee=l(de,le),Ue=Ze[1],We=Ee[0],Ae=Ee[2];if(Math.abs(Ue-We)>j){let U=Ue-We+j;U<-Ae+j&&(U=-Ae+j),U<0&&(e._shiftBlock(E.id,U),t=!0,_===!0&&e._centerParent(E))}}},m=(O,E)=>{const _=E.id,P=E.edges,Q=this.hierarchical.levels[E.id],ne=this.options.hierarchical.levelSeparation*this.options.hierarchical.levelSeparation,j={},V=[];for(let Ae=0;Ae{let U=0;for(let K=0;K{let U=0;for(let K=0;K{let U=this.direction.getPosition(E);const K={};for(let re=0;re{const M=this.direction.getPosition(E);if(i[E.id]===void 0){const L={};I(E,L),i[E.id]=L}const U=l(i[E.id]),K=U[2],re=U[3],ee=Ae-M;let T=0;ee>0?T=Math.min(ee,re-this.options.hierarchical.nodeSpacing):ee<0&&(T=-Math.min(-ee,K-this.options.hierarchical.nodeSpacing)),T!=0&&(this._shiftBlock(E.id,T),t=!0)},Ue=Ae=>{const M=this.direction.getPosition(E),[U,K]=this._getSpaceAroundNode(E),re=Ae-M;let ee=M;re>0?ee=Math.min(M+(K-this.options.hierarchical.nodeSpacing),Ae):re<0&&(ee=Math.max(M-(U-this.options.hierarchical.nodeSpacing),Ae)),ee!==M&&(this.direction.setPosition(E,ee),t=!0)};let We=Ze(O,V);Ee(We),We=Ze(O,P),Ue(We)},y=O=>{let E=this.hierarchical.getLevels();E=wo(E).call(E);for(let _=0;_{let E=this.hierarchical.getLevels();E=wo(E).call(E);for(let _=0;_{for(const O in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,O)&&this._centerParent(this.body.nodes[O])},x=()=>{let O=this.hierarchical.getLevels();O=wo(O).call(O);for(let E=0;E0&&Math.abs(p)0&&(c=this.direction.getPosition(o[A-1])+l),this.direction.setPosition(I,c,i),this._validatePositionAndContinue(I,i,c),r++}}}}_placeBranchNodes(e,t){var i;const o=this.hierarchical.childrenReference[e];if(o===void 0)return;const r=[];for(let I=0;It&&this.positionedNodes[l.id]===void 0){const h=this.options.hierarchical.nodeSpacing;let p;I===0?p=this.direction.getPosition(this.body.nodes[e]):p=this.direction.getPosition(r[I-1])+h,this.direction.setPosition(l,p,c),this._validatePositionAndContinue(l,c,p)}else return}const A=this._getCenterPosition(r);this.direction.setPosition(this.body.nodes[e],A,t)}_validatePositionAndContinue(e,t,i){if(this.hierarchical.isTree){if(this.lastNodeOnLevel[t]!==void 0){const o=this.direction.getPosition(this.body.nodes[this.lastNodeOnLevel[t]]);if(i-o{var o;at(o=this.body.edgeIndices).call(o,i.id)!==-1&&t.push(i)}),t}_getHubSizes(){const e={},t=this.body.nodeIndices;Ye(t,o=>{const r=this.body.nodes[o],A=this._getActiveEdges(r).length;e[A]=!0});const i=[];return Ye(e,o=>{i.push(Number(o))}),eg(i).call(i,function(o,r){return r-o}),i}_determineLevelsByHubsize(){const e=(i,o)=>{this.hierarchical.levelDownstream(i,o)},t=this._getHubSizes();for(let i=0;i{const A=this.body.nodes[r];o===this._getActiveEdges(A).length&&this._crawlNetwork(e,r)})}}_determineLevelsCustomCallback(){const t=function(o,r,A){},i=(o,r,A)=>{let I=this.hierarchical.levels[o.id];I===void 0&&(I=this.hierarchical.levels[o.id]=1e5);const l=t(En.cloneOptions(o,"node"),En.cloneOptions(r,"node"),En.cloneOptions(A,"edge"));this.hierarchical.levels[r.id]=I+l};this._crawlNetwork(i),this.hierarchical.setMinLevelToZero()}_determineLevelsDirected(){var e;const t=cu(e=this.body.nodeIndices).call(e,(i,o)=>(i.set(o,this.body.nodes[o]),i),new Oa);this.options.hierarchical.shakeTowards==="roots"?this.hierarchical.levels=hq(t):this.hierarchical.levels=uq(t),this.hierarchical.setMinLevelToZero()}_generateMap(){const e=(t,i)=>{this.hierarchical.levels[i.id]>this.hierarchical.levels[t.id]&&this.hierarchical.addRelation(t.id,i.id)};this._crawlNetwork(e),this.hierarchical.checkIfTree()}_crawlNetwork(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(){},t=arguments.length>1?arguments[1]:void 0;const i={},o=(r,A)=>{if(i[r.id]===void 0){this.hierarchical.setTreeIndex(r,A),i[r.id]=!0;let I;const l=this._getActiveEdges(r);for(let c=0;c{if(i[r])return;i[r]=!0,this.direction.shift(r,t);const A=this.hierarchical.childrenReference[r];if(A!==void 0)for(let I=0;I{const l=this.hierarchical.parentReference[I];if(l!==void 0)for(let c=0;c{const l=this.hierarchical.parentReference[I];if(l!==void 0)for(let c=0;c{this._clean()}),this.body.emitter.on("_dataChanged",ie(r=this._restore).call(r,this)),this.body.emitter.on("_resetData",ie(A=this._restore).call(A,this))}_restore(){this.inMode!==!1&&(this.options.initiallyActive===!0?this.enableEditMode():this.disableEditMode())}setOptions(e,t,i){t!==void 0&&(t.locale!==void 0?this.options.locale=t.locale:this.options.locale=i.locale,t.locales!==void 0?this.options.locales=t.locales:this.options.locales=i.locales),e!==void 0&&(typeof e=="boolean"?this.options.enabled=e:(this.options.enabled=!0,yt(this.options,e)),this.options.initiallyActive===!0&&(this.editMode=!0),this._setup())}toggleEditMode(){this.editMode===!0?this.disableEditMode():this.enableEditMode()}enableEditMode(){this.editMode=!0,this._clean(),this.guiEnabled===!0&&(this.manipulationDiv.style.display="block",this.closeDiv.style.display="block",this.editModeDiv.style.display="none",this.showManipulatorToolbar())}disableEditMode(){this.editMode=!1,this._clean(),this.guiEnabled===!0&&(this.manipulationDiv.style.display="none",this.closeDiv.style.display="none",this.editModeDiv.style.display="block",this._createEditButton())}showManipulatorToolbar(){if(this._clean(),this.manipulationDOM={},this.guiEnabled===!0){var e,t;this.editMode=!0,this.manipulationDiv.style.display="block",this.closeDiv.style.display="block";const i=this.selectionHandler.getSelectedNodeCount(),o=this.selectionHandler.getSelectedEdgeCount(),r=i+o,A=this.options.locales[this.options.locale];let I=!1;this.options.addNode!==!1&&(this._createAddNodeButton(A),I=!0),this.options.addEdge!==!1&&(I===!0?this._createSeperator(1):I=!0,this._createAddEdgeButton(A)),i===1&&typeof this.options.editNode=="function"?(I===!0?this._createSeperator(2):I=!0,this._createEditNodeButton(A)):o===1&&i===0&&this.options.editEdge!==!1&&(I===!0?this._createSeperator(3):I=!0,this._createEditEdgeButton(A)),r!==0&&(i>0&&this.options.deleteNode!==!1?(I===!0&&this._createSeperator(4),this._createDeleteButton(A)):i===0&&this.options.deleteEdge!==!1&&(I===!0&&this._createSeperator(4),this._createDeleteButton(A))),this._bindElementEvents(this.closeDiv,ie(e=this.toggleEditMode).call(e,this)),this._temporaryBindEvent("select",ie(t=this.showManipulatorToolbar).call(t,this))}this.body.emitter.emit("_redraw")}addNodeMode(){var e;if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addNode",this.guiEnabled===!0){var t;const i=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(i),this._createSeperator(),this._createDescription(i.addDescription||this.options.locales.en.addDescription),this._bindElementEvents(this.closeDiv,ie(t=this.toggleEditMode).call(t,this))}this._temporaryBindEvent("click",ie(e=this._performAddNode).call(e,this))}editNode(){this.editMode!==!0&&this.enableEditMode(),this._clean();const e=this.selectionHandler.getSelectedNodes()[0];if(e!==void 0)if(this.inMode="editNode",typeof this.options.editNode=="function")if(e.isCluster!==!0){const t=yt({},e.options,!1);if(t.x=e.x,t.y=e.y,this.options.editNode.length===2)this.options.editNode(t,i=>{i!=null&&this.inMode==="editNode"&&this.body.data.nodes.getDataSet().update(i),this.showManipulatorToolbar()});else throw new Error("The function for edit does not support two arguments (data, callback)")}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError);else throw new Error("No function has been configured to handle the editing of nodes.");else this.showManipulatorToolbar()}addEdgeMode(){var e,t,i,o,r;if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addEdge",this.guiEnabled===!0){var A;const I=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(I),this._createSeperator(),this._createDescription(I.edgeDescription||this.options.locales.en.edgeDescription),this._bindElementEvents(this.closeDiv,ie(A=this.toggleEditMode).call(A,this))}this._temporaryBindUI("onTouch",ie(e=this._handleConnect).call(e,this)),this._temporaryBindUI("onDragEnd",ie(t=this._finishConnect).call(t,this)),this._temporaryBindUI("onDrag",ie(i=this._dragControlNode).call(i,this)),this._temporaryBindUI("onRelease",ie(o=this._finishConnect).call(o,this)),this._temporaryBindUI("onDragStart",ie(r=this._dragStartEdge).call(r,this)),this._temporaryBindUI("onHold",()=>{})}editEdgeMode(){if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="editEdge",typeof this.options.editEdge=="object"&&typeof this.options.editEdge.editWithoutDrag=="function"&&(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdgeIds()[0],this.edgeBeingEditedId!==void 0)){const A=this.body.edges[this.edgeBeingEditedId];this._performEditEdge(A.from.id,A.to.id);return}if(this.guiEnabled===!0){var e;const A=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(A),this._createSeperator(),this._createDescription(A.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindElementEvents(this.closeDiv,ie(e=this.toggleEditMode).call(e,this))}if(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdgeIds()[0],this.edgeBeingEditedId!==void 0){var t,i,o,r;const A=this.body.edges[this.edgeBeingEditedId],I=this._getNewTargetNode(A.from.x,A.from.y),l=this._getNewTargetNode(A.to.x,A.to.y);this.temporaryIds.nodes.push(I.id),this.temporaryIds.nodes.push(l.id),this.body.nodes[I.id]=I,this.body.nodeIndices.push(I.id),this.body.nodes[l.id]=l,this.body.nodeIndices.push(l.id),this._temporaryBindUI("onTouch",ie(t=this._controlNodeTouch).call(t,this)),this._temporaryBindUI("onTap",()=>{}),this._temporaryBindUI("onHold",()=>{}),this._temporaryBindUI("onDragStart",ie(i=this._controlNodeDragStart).call(i,this)),this._temporaryBindUI("onDrag",ie(o=this._controlNodeDrag).call(o,this)),this._temporaryBindUI("onDragEnd",ie(r=this._controlNodeDragEnd).call(r,this)),this._temporaryBindUI("onMouseMove",()=>{}),this._temporaryBindEvent("beforeDrawing",c=>{const h=A.edgeType.findBorderPositions(c);I.selected===!1&&(I.x=h.from.x,I.y=h.from.y),l.selected===!1&&(l.x=h.to.x,l.y=h.to.y)}),this.body.emitter.emit("_redraw")}else this.showManipulatorToolbar()}deleteSelected(){this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="delete";const e=this.selectionHandler.getSelectedNodeIds(),t=this.selectionHandler.getSelectedEdgeIds();let i;if(e.length>0){for(let o=0;o0&&typeof this.options.deleteEdge=="function"&&(i=this.options.deleteEdge);if(typeof i=="function"){const o={nodes:e,edges:t};if(i.length===2)i(o,r=>{r!=null&&this.inMode==="delete"?(this.body.data.edges.getDataSet().remove(r.edges),this.body.data.nodes.getDataSet().remove(r.nodes),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()):(this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar())});else throw new Error("The function for delete does not support two arguments (data, callback)")}else this.body.data.edges.getDataSet().remove(t),this.body.data.nodes.getDataSet().remove(e),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}_setup(){this.options.enabled===!0?(this.guiEnabled=!0,this._createWrappers(),this.editMode===!1?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}_createWrappers(){if(this.manipulationDiv===void 0&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",this.editMode===!0?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),this.editModeDiv===void 0&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",this.editMode===!0?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block",this.canvas.frame.appendChild(this.editModeDiv)),this.closeDiv===void 0){var e,t;this.closeDiv=document.createElement("button"),this.closeDiv.className="vis-close",this.closeDiv.setAttribute("aria-label",(e=(t=this.options.locales[this.options.locale])===null||t===void 0?void 0:t.close)!==null&&e!==void 0?e:this.options.locales.en.close),this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv)}}_getNewTargetNode(e,t){const i=yt({},this.options.controlNodeStyle);i.id="targetNode"+js(),i.hidden=!1,i.physics=!1,i.x=e,i.y=t;const o=this.body.functions.createNode(i);return o.shape.boundingBox={left:e,right:e,top:t,bottom:t},o}_createEditButton(){var e;this._clean(),this.manipulationDOM={},Ng(this.editModeDiv);const t=this.options.locales[this.options.locale],i=this._createButton("editMode","vis-edit vis-edit-mode",t.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(i),this._bindElementEvents(i,ie(e=this.toggleEditMode).call(e,this))}_clean(){this.inMode=!1,this.guiEnabled===!0&&(Ng(this.editModeDiv),Ng(this.manipulationDiv),this._cleanupDOMEventListeners()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}_cleanupDOMEventListeners(){for(const t of Di(e=this._domEventListenerCleanupQueue).call(e,0)){var e;t()}}_removeManipulationDOM(){this._clean(),Ng(this.manipulationDiv),Ng(this.editModeDiv),Ng(this.closeDiv),this.manipulationDiv&&this.canvas.frame.removeChild(this.manipulationDiv),this.editModeDiv&&this.canvas.frame.removeChild(this.editModeDiv),this.closeDiv&&this.canvas.frame.removeChild(this.closeDiv),this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0}_createSeperator(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;this.manipulationDOM["seperatorLineDiv"+e]=document.createElement("div"),this.manipulationDOM["seperatorLineDiv"+e].className="vis-separator-line",this.manipulationDiv.appendChild(this.manipulationDOM["seperatorLineDiv"+e])}_createAddNodeButton(e){var t;const i=this._createButton("addNode","vis-add",e.addNode||this.options.locales.en.addNode);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,ie(t=this.addNodeMode).call(t,this))}_createAddEdgeButton(e){var t;const i=this._createButton("addEdge","vis-connect",e.addEdge||this.options.locales.en.addEdge);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,ie(t=this.addEdgeMode).call(t,this))}_createEditNodeButton(e){var t;const i=this._createButton("editNode","vis-edit",e.editNode||this.options.locales.en.editNode);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,ie(t=this.editNode).call(t,this))}_createEditEdgeButton(e){var t;const i=this._createButton("editEdge","vis-edit",e.editEdge||this.options.locales.en.editEdge);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,ie(t=this.editEdgeMode).call(t,this))}_createDeleteButton(e){var t;let i;this.options.rtl?i="vis-delete-rtl":i="vis-delete";const o=this._createButton("delete",i,e.del||this.options.locales.en.del);this.manipulationDiv.appendChild(o),this._bindElementEvents(o,ie(t=this.deleteSelected).call(t,this))}_createBackButton(e){var t;const i=this._createButton("back","vis-back",e.back||this.options.locales.en.back);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,ie(t=this.showManipulatorToolbar).call(t,this))}_createButton(e,t,i){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"vis-label";return this.manipulationDOM[e+"Div"]=document.createElement("button"),this.manipulationDOM[e+"Div"].className="vis-button "+t,this.manipulationDOM[e+"Label"]=document.createElement("div"),this.manipulationDOM[e+"Label"].className=o,this.manipulationDOM[e+"Label"].innerText=i,this.manipulationDOM[e+"Div"].appendChild(this.manipulationDOM[e+"Label"]),this.manipulationDOM[e+"Div"]}_createDescription(e){this.manipulationDOM.descriptionLabel=document.createElement("div"),this.manipulationDOM.descriptionLabel.className="vis-none",this.manipulationDOM.descriptionLabel.innerText=e,this.manipulationDiv.appendChild(this.manipulationDOM.descriptionLabel)}_temporaryBindEvent(e,t){this.temporaryEventFunctions.push({event:e,boundFunction:t}),this.body.emitter.on(e,t)}_temporaryBindUI(e,t){if(this.body.eventListeners[e]!==void 0)this.temporaryUIFunctions[e]=this.body.eventListeners[e],this.body.eventListeners[e]=t;else throw new Error("This UI function does not exist. Typo? You tried: "+e+" possible are: "+bs(xt(this.body.eventListeners)))}_unbindTemporaryUIs(){for(const e in this.temporaryUIFunctions)Object.prototype.hasOwnProperty.call(this.temporaryUIFunctions,e)&&(this.body.eventListeners[e]=this.temporaryUIFunctions[e],delete this.temporaryUIFunctions[e]);this.temporaryUIFunctions={}}_unbindTemporaryEvents(){for(let e=0;e{i.destroy()});const o=r=>{let{keyCode:A,key:I}=r;(I==="Enter"||I===" "||A===13||A===32)&&t()};e.addEventListener("keyup",o,!1),this._domEventListenerCleanupQueue.push(()=>{e.removeEventListener("keyup",o,!1)})}_cleanupTemporaryNodesAndEdges(){for(let r=0;r=0;I--)if(r[I]!==this.selectedControlNode.id){A=this.body.nodes[r[I]];break}if(A!==void 0&&this.selectedControlNode!==void 0)if(A.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{const I=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===I.id?this._performEditEdge(A.id,o.to.id):this._performEditEdge(o.from.id,A.id)}else o.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}_handleConnect(e){if(new Date().valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(e.center),this.lastTouch.translation=Vt({},this.body.view.translation),this.interactionHandler.drag.pointer=this.lastTouch,this.interactionHandler.drag.translation=this.lastTouch.translation;const t=this.lastTouch,i=this.selectionHandler.getNodeAt(t);if(i!==void 0)if(i.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{const o=this._getNewTargetNode(i.x,i.y);this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id);const r=this.body.functions.createEdge({id:"connectionEdge"+js(),from:i.id,to:o.id,physics:!1,smooth:{enabled:!0,type:"continuous",roundness:.5}});this.body.edges[r.id]=r,this.body.edgeIndices.push(r.id),this.temporaryIds.nodes.push(o.id),this.temporaryIds.edges.push(r.id)}this.touchTime=new Date().valueOf()}}_dragControlNode(e){const t=this.body.functions.getPointer(e.center),i=this.selectionHandler._pointerToPositionObject(t);let o;this.temporaryIds.edges[0]!==void 0&&(o=this.body.edges[this.temporaryIds.edges[0]].fromId);const r=this.selectionHandler._getAllNodesOverlappingWith(i);let A;for(let l=r.length-1;l>=0;l--){var I;if(Ct(I=this.temporaryIds.nodes).call(I,r[l])===-1){A=this.body.nodes[r[l]];break}}if(e.controlEdge={from:o,to:A?A.id:void 0},this.selectionHandler.generateClickEvent("controlNodeDragging",e,t),this.temporaryIds.nodes[0]!==void 0){const l=this.body.nodes[this.temporaryIds.nodes[0]];l.x=this.canvas._XconvertDOMtoCanvas(t.x),l.y=this.canvas._YconvertDOMtoCanvas(t.y),this.body.emitter.emit("_redraw")}else this.interactionHandler.onDrag(e)}_finishConnect(e){const t=this.body.functions.getPointer(e.center),i=this.selectionHandler._pointerToPositionObject(t);let o;this.temporaryIds.edges[0]!==void 0&&(o=this.body.edges[this.temporaryIds.edges[0]].fromId);const r=this.selectionHandler._getAllNodesOverlappingWith(i);let A;for(let l=r.length-1;l>=0;l--){var I;if(Ct(I=this.temporaryIds.nodes).call(I,r[l])===-1){A=this.body.nodes[r[l]];break}}this._cleanupTemporaryNodesAndEdges(),A!==void 0&&(A.isCluster===!0?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):this.body.nodes[o]!==void 0&&this.body.nodes[A.id]!==void 0&&this._performAddEdge(o,A.id)),e.controlEdge={from:o,to:A?A.id:void 0},this.selectionHandler.generateClickEvent("controlNodeDragEnd",e,t),this.body.emitter.emit("_redraw")}_dragStartEdge(e){const t=this.lastTouch;this.selectionHandler.generateClickEvent("dragStart",e,t,void 0,!0)}_performAddNode(e){const t={id:js(),x:e.pointer.canvas.x,y:e.pointer.canvas.y,label:"new"};if(typeof this.options.addNode=="function")if(this.options.addNode.length===2)this.options.addNode(t,i=>{i!=null&&this.inMode==="addNode"&&this.body.data.nodes.getDataSet().add(i),this.showManipulatorToolbar()});else throw this.showManipulatorToolbar(),new Error("The function for add does not support two arguments (data,callback)");else this.body.data.nodes.getDataSet().add(t),this.showManipulatorToolbar()}_performAddEdge(e,t){const i={from:e,to:t};if(typeof this.options.addEdge=="function")if(this.options.addEdge.length===2)this.options.addEdge(i,o=>{o!=null&&this.inMode==="addEdge"&&(this.body.data.edges.getDataSet().add(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar())});else throw new Error("The function for connect does not support two arguments (data,callback)");else this.body.data.edges.getDataSet().add(i),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}_performEditEdge(e,t){const i={id:this.edgeBeingEditedId,from:e,to:t,label:this.body.data.edges.get(this.edgeBeingEditedId).label};let o=this.options.editEdge;if(typeof o=="object"&&(o=o.editWithoutDrag),typeof o=="function")if(o.length===2)o(i,r=>{r==null||this.inMode!=="editEdge"?(this.body.edges[i.id].updateEdgeType(),this.body.emitter.emit("_redraw"),this.showManipulatorToolbar()):(this.body.data.edges.getDataSet().update(r),this.selectionHandler.unselectAll(),this.showManipulatorToolbar())});else throw new Error("The function for edit does not support two arguments (data, callback)");else this.body.data.edges.getDataSet().update(i),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}const se="string",ge="boolean",K="number",ja="array",we="object",Mx="dom",pq="any",Mu=["arrow","bar","box","circle","crow","curve","diamond","image","inv_curve","inv_triangle","triangle","vee"],zu={borderWidth:{number:K},borderWidthSelected:{number:K,undefined:"undefined"},brokenImage:{string:se,undefined:"undefined"},chosen:{label:{boolean:ge,function:"function"},node:{boolean:ge,function:"function"},__type__:{object:we,boolean:ge}},color:{border:{string:se},background:{string:se},highlight:{border:{string:se},background:{string:se},__type__:{object:we,string:se}},hover:{border:{string:se},background:{string:se},__type__:{object:we,string:se}},__type__:{object:we,string:se}},opacity:{number:K,undefined:"undefined"},fixed:{x:{boolean:ge},y:{boolean:ge},__type__:{object:we,boolean:ge}},font:{align:{string:se},color:{string:se},size:{number:K},face:{string:se},background:{string:se},strokeWidth:{number:K},strokeColor:{string:se},vadjust:{number:K},multi:{boolean:ge,string:se},bold:{color:{string:se},size:{number:K},face:{string:se},mod:{string:se},vadjust:{number:K},__type__:{object:we,string:se}},boldital:{color:{string:se},size:{number:K},face:{string:se},mod:{string:se},vadjust:{number:K},__type__:{object:we,string:se}},ital:{color:{string:se},size:{number:K},face:{string:se},mod:{string:se},vadjust:{number:K},__type__:{object:we,string:se}},mono:{color:{string:se},size:{number:K},face:{string:se},mod:{string:se},vadjust:{number:K},__type__:{object:we,string:se}},__type__:{object:we,string:se}},group:{string:se,number:K,undefined:"undefined"},heightConstraint:{minimum:{number:K},valign:{string:se},__type__:{object:we,boolean:ge,number:K}},hidden:{boolean:ge},icon:{face:{string:se},code:{string:se},size:{number:K},color:{string:se},weight:{string:se,number:K},__type__:{object:we}},id:{string:se,number:K},image:{selected:{string:se,undefined:"undefined"},unselected:{string:se,undefined:"undefined"},__type__:{object:we,string:se}},imagePadding:{top:{number:K},right:{number:K},bottom:{number:K},left:{number:K},__type__:{object:we,number:K}},label:{string:se,undefined:"undefined"},labelHighlightBold:{boolean:ge},level:{number:K,undefined:"undefined"},margin:{top:{number:K},right:{number:K},bottom:{number:K},left:{number:K},__type__:{object:we,number:K}},mass:{number:K},physics:{boolean:ge},scaling:{min:{number:K},max:{number:K},label:{enabled:{boolean:ge},min:{number:K},max:{number:K},maxVisible:{number:K},drawThreshold:{number:K},__type__:{object:we,boolean:ge}},customScalingFunction:{function:"function"},__type__:{object:we}},shadow:{enabled:{boolean:ge},color:{string:se},size:{number:K},x:{number:K},y:{number:K},__type__:{object:we,boolean:ge}},shape:{string:["custom","ellipse","circle","database","box","text","image","circularImage","diamond","dot","star","triangle","triangleDown","square","icon","hexagon"]},ctxRenderer:{function:"function"},shapeProperties:{borderDashes:{boolean:ge,array:ja},borderRadius:{number:K},interpolation:{boolean:ge},useImageSize:{boolean:ge},useBorderWithImage:{boolean:ge},coordinateOrigin:{string:["center","top-left"]},__type__:{object:we}},size:{number:K},title:{string:se,dom:Mx,undefined:"undefined"},value:{number:K,undefined:"undefined"},widthConstraint:{minimum:{number:K},maximum:{number:K},__type__:{object:we,boolean:ge,number:K}},x:{number:K},y:{number:K},__type__:{object:we}},mq={configure:{enabled:{boolean:ge},filter:{boolean:ge,string:se,array:ja,function:"function"},container:{dom:Mx},showButton:{boolean:ge},__type__:{object:we,boolean:ge,string:se,array:ja,function:"function"}},edges:{arrows:{to:{enabled:{boolean:ge},scaleFactor:{number:K},type:{string:Mu},imageHeight:{number:K},imageWidth:{number:K},src:{string:se},__type__:{object:we,boolean:ge}},middle:{enabled:{boolean:ge},scaleFactor:{number:K},type:{string:Mu},imageWidth:{number:K},imageHeight:{number:K},src:{string:se},__type__:{object:we,boolean:ge}},from:{enabled:{boolean:ge},scaleFactor:{number:K},type:{string:Mu},imageWidth:{number:K},imageHeight:{number:K},src:{string:se},__type__:{object:we,boolean:ge}},__type__:{string:["from","to","middle"],object:we}},endPointOffset:{from:{number:K},to:{number:K},__type__:{object:we,number:K}},arrowStrikethrough:{boolean:ge},background:{enabled:{boolean:ge},color:{string:se},size:{number:K},dashes:{boolean:ge,array:ja},__type__:{object:we,boolean:ge}},chosen:{label:{boolean:ge,function:"function"},edge:{boolean:ge,function:"function"},__type__:{object:we,boolean:ge}},color:{color:{string:se},highlight:{string:se},hover:{string:se},inherit:{string:["from","to","both"],boolean:ge},opacity:{number:K},__type__:{object:we,string:se}},dashes:{boolean:ge,array:ja},font:{color:{string:se},size:{number:K},face:{string:se},background:{string:se},strokeWidth:{number:K},strokeColor:{string:se},align:{string:["horizontal","top","middle","bottom"]},vadjust:{number:K},multi:{boolean:ge,string:se},bold:{color:{string:se},size:{number:K},face:{string:se},mod:{string:se},vadjust:{number:K},__type__:{object:we,string:se}},boldital:{color:{string:se},size:{number:K},face:{string:se},mod:{string:se},vadjust:{number:K},__type__:{object:we,string:se}},ital:{color:{string:se},size:{number:K},face:{string:se},mod:{string:se},vadjust:{number:K},__type__:{object:we,string:se}},mono:{color:{string:se},size:{number:K},face:{string:se},mod:{string:se},vadjust:{number:K},__type__:{object:we,string:se}},__type__:{object:we,string:se}},hidden:{boolean:ge},hoverWidth:{function:"function",number:K},label:{string:se,undefined:"undefined"},labelHighlightBold:{boolean:ge},length:{number:K,undefined:"undefined"},physics:{boolean:ge},scaling:{min:{number:K},max:{number:K},label:{enabled:{boolean:ge},min:{number:K},max:{number:K},maxVisible:{number:K},drawThreshold:{number:K},__type__:{object:we,boolean:ge}},customScalingFunction:{function:"function"},__type__:{object:we}},selectionWidth:{function:"function",number:K},selfReferenceSize:{number:K},selfReference:{size:{number:K},angle:{number:K},renderBehindTheNode:{boolean:ge},__type__:{object:we}},shadow:{enabled:{boolean:ge},color:{string:se},size:{number:K},x:{number:K},y:{number:K},__type__:{object:we,boolean:ge}},smooth:{enabled:{boolean:ge},type:{string:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"]},roundness:{number:K},forceDirection:{string:["horizontal","vertical","none"],boolean:ge},__type__:{object:we,boolean:ge}},title:{string:se,undefined:"undefined"},width:{number:K},widthConstraint:{maximum:{number:K},__type__:{object:we,boolean:ge,number:K}},value:{number:K,undefined:"undefined"},__type__:{object:we}},groups:{useDefaultGroups:{boolean:ge},__any__:zu,__type__:{object:we}},interaction:{dragNodes:{boolean:ge},dragView:{boolean:ge},hideEdgesOnDrag:{boolean:ge},hideEdgesOnZoom:{boolean:ge},hideNodesOnDrag:{boolean:ge},hover:{boolean:ge},keyboard:{enabled:{boolean:ge},speed:{x:{number:K},y:{number:K},zoom:{number:K},__type__:{object:we}},bindToWindow:{boolean:ge},autoFocus:{boolean:ge},__type__:{object:we,boolean:ge}},multiselect:{boolean:ge},navigationButtons:{boolean:ge},selectable:{boolean:ge},selectConnectedEdges:{boolean:ge},hoverConnectedEdges:{boolean:ge},tooltipDelay:{number:K},zoomView:{boolean:ge},zoomSpeed:{number:K},__type__:{object:we}},layout:{randomSeed:{undefined:"undefined",number:K,string:se},improvedLayout:{boolean:ge},clusterThreshold:{number:K},hierarchical:{enabled:{boolean:ge},levelSeparation:{number:K},nodeSpacing:{number:K},treeSpacing:{number:K},blockShifting:{boolean:ge},edgeMinimization:{boolean:ge},parentCentralization:{boolean:ge},direction:{string:["UD","DU","LR","RL"]},sortMethod:{string:["hubsize","directed"]},shakeTowards:{string:["leaves","roots"]},__type__:{object:we,boolean:ge}},__type__:{object:we}},manipulation:{enabled:{boolean:ge},initiallyActive:{boolean:ge},addNode:{boolean:ge,function:"function"},addEdge:{boolean:ge,function:"function"},editNode:{function:"function"},editEdge:{editWithoutDrag:{function:"function"},__type__:{object:we,boolean:ge,function:"function"}},deleteNode:{boolean:ge,function:"function"},deleteEdge:{boolean:ge,function:"function"},controlNodeStyle:zu,__type__:{object:we,boolean:ge}},nodes:zu,physics:{enabled:{boolean:ge},barnesHut:{theta:{number:K},gravitationalConstant:{number:K},centralGravity:{number:K},springLength:{number:K},springConstant:{number:K},damping:{number:K},avoidOverlap:{number:K},__type__:{object:we}},forceAtlas2Based:{theta:{number:K},gravitationalConstant:{number:K},centralGravity:{number:K},springLength:{number:K},springConstant:{number:K},damping:{number:K},avoidOverlap:{number:K},__type__:{object:we}},repulsion:{centralGravity:{number:K},springLength:{number:K},springConstant:{number:K},nodeDistance:{number:K},damping:{number:K},__type__:{object:we}},hierarchicalRepulsion:{centralGravity:{number:K},springLength:{number:K},springConstant:{number:K},nodeDistance:{number:K},damping:{number:K},avoidOverlap:{number:K},__type__:{object:we}},maxVelocity:{number:K},minVelocity:{number:K},solver:{string:["barnesHut","repulsion","hierarchicalRepulsion","forceAtlas2Based"]},stabilization:{enabled:{boolean:ge},iterations:{number:K},updateInterval:{number:K},onlyDynamicEdges:{boolean:ge},fit:{boolean:ge},__type__:{object:we,boolean:ge}},timestep:{number:K},adaptiveTimestep:{boolean:ge},wind:{x:{number:K},y:{number:K},__type__:{object:we}},__type__:{object:we,boolean:ge}},autoResize:{boolean:ge},clickToUse:{boolean:ge},locale:{string:se},locales:{__any__:{any:pq},__type__:{object:we}},height:{string:se},width:{string:se},__type__:{object:we}},zx={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:["color","#2B7CE9"],background:["color","#97C2FC"],highlight:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]},hover:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]}},opacity:[0,0,1,.1],fixed:{x:!1,y:!1},font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[0,0,50,1],strokeColor:["color","#ffffff"]},hidden:!1,labelHighlightBold:!0,physics:!0,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:!1,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:["ellipse","box","circle","database","diamond","dot","square","star","text","triangle","triangleDown","hexagon"],shapeProperties:{borderDashes:!1,borderRadius:[6,0,20,1],interpolation:!0,useImageSize:!1},size:[25,0,200,1]},edges:{arrows:{to:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"},middle:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"},from:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"}},endPointOffset:{from:[0,-10,10,1],to:[0,-10,10,1]},arrowStrikethrough:!0,color:{color:["color","#848484"],highlight:["color","#848484"],hover:["color","#848484"],inherit:["from","to","both",!0,!1],opacity:[1,0,1,.05]},dashes:!1,font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[2,0,50,1],strokeColor:["color","#ffffff"],align:["horizontal","top","middle","bottom"]},hidden:!1,hoverWidth:[1.5,0,5,.1],labelHighlightBold:!0,physics:!0,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:!0,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],selfReference:{size:[20,0,200,1],angle:[Math.PI/2,-6*Math.PI,6*Math.PI,Math.PI/8],renderBehindTheNode:!0},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:!0,type:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"],forceDirection:["horizontal","vertical","none"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:!1,levelSeparation:[150,20,500,5],nodeSpacing:[100,20,500,5],treeSpacing:[200,20,500,5],blockShifting:!0,edgeMinimization:!0,parentCentralization:!0,direction:["UD","DU","LR","RL"],sortMethod:["hubsize","directed"],shakeTowards:["leaves","roots"]}},interaction:{dragNodes:!0,dragView:!0,hideEdgesOnDrag:!1,hideEdgesOnZoom:!1,hideNodesOnDrag:!1,hover:!1,keyboard:{enabled:!1,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:!0,autoFocus:!0},multiselect:!1,navigationButtons:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0,tooltipDelay:[300,0,1e3,25],zoomView:!0,zoomSpeed:[1,.1,2,.1]},manipulation:{enabled:!1,initiallyActive:!1},physics:{enabled:!0,barnesHut:{theta:[.5,.1,1,.05],gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{theta:[.5,.1,1,.05],gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:["barnesHut","forceAtlas2Based","repulsion","hierarchicalRepulsion"],timestep:[.5,.01,1,.01],wind:{x:[0,-10,10,.1],y:[0,-10,10,.1]}}},vq=(n,e,t)=>{var i;return!!(Sg(n).call(n,"physics")&&Sg(i=zx.physics.solver).call(i,e)&&t.physics.solver!==e&&e!=="wind")};class yq{constructor(){}getDistances(e,t,i){const o={},r=e.edges;for(let I=0;I2&&arguments[2]!==void 0?arguments[2]:!1;const o=this.distanceSolver.getDistances(this.body,e,t);this._createL_matrix(o),this._createK_matrix(o),this._createE_matrix();const r=.01,A=1;let I=0;const l=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3)),c=5;let h=1e9,p=0,m=0,y=0,w=0,S=0;for(;h>r&&IA&&Sthis.body.emitter.emit("_requestRedraw")),this.groups=new gH,this.canvas=new h$(this.body),this.selectionHandler=new X$(this.body,this.canvas),this.interactionHandler=new y$(this.body,this.canvas,this.selectionHandler),this.view=new p$(this.body,this.canvas),this.renderer=new I$(this.body,this.canvas),this.physics=new a$(this.body),this.layoutEngine=new uq(this.body),this.clustering=new C$(this.body),this.manipulation=new fq(this.body,this.canvas,this.selectionHandler,this.interactionHandler),this.nodesHandler=new zX(this.body,this.images,this.groups,this.layoutEngine),this.edgesHandler=new n$(this.body,this.images,this.groups),this.body.modules.kamadaKawai=new bq(this.body,150,.05),this.body.modules.clustering=this.clustering,this.canvas._create(),this.setOptions(t),this.setData(e)}fy(pe.prototype),pe.prototype.setOptions=function(n){if(n===null&&(n=void 0),n!==void 0){if(QV.validate(n,mq)===!0&&console.error("%cErrors have been found in the supplied options object.",p1),Ds(["locale","locales","clickToUse"],this.options,n),n.locale!==void 0&&(n.locale=aU(n.locales||this.options.locales,n.locale)),n=this.layoutEngine.setOptions(n.layout,n),this.canvas.setOptions(n),this.groups.setOptions(n.groups),this.nodesHandler.setOptions(n.nodes),this.edgesHandler.setOptions(n.edges),this.physics.setOptions(n.physics),this.manipulation.setOptions(n.manipulation,n,this.options),this.interactionHandler.setOptions(n.interaction),this.renderer.setOptions(n.interaction),this.selectionHandler.setOptions(n.interaction),n.groups!==void 0&&this.body.emitter.emit("refreshNodes"),"configure"in n&&(this.configurator||(this.configurator=new KV(this,this.body.container,zx,this.canvas.pixelRatio,vq)),this.configurator.setOptions(n.configure)),this.configurator&&this.configurator.options.enabled===!0){const i={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};yt(i.nodes,this.nodesHandler.options),yt(i.edges,this.edgesHandler.options),yt(i.layout,this.layoutEngine.options),yt(i.interaction,this.selectionHandler.options),yt(i.interaction,this.renderer.options),yt(i.interaction,this.interactionHandler.options),yt(i.manipulation,this.manipulation.options),yt(i.physics,this.physics.options),yt(i.global,this.canvas.options),yt(i.global,this.options),this.configurator.setModuleOptions(i)}n.clickToUse!==void 0?n.clickToUse===!0?this.activator===void 0&&(this.activator=new HV(this.canvas.frame),this.activator.on("change",()=>{this.body.emitter.emit("activate")})):(this.activator!==void 0&&(this.activator.destroy(),delete this.activator),this.body.emitter.emit("activate")):this.body.emitter.emit("activate"),this.canvas.setSize(),this.body.emitter.emit("startSimulation")}},pe.prototype._updateVisibleIndices=function(){const n=this.body.nodes,e=this.body.edges;this.body.nodeIndices=[],this.body.edgeIndices=[];for(const t in n)Object.prototype.hasOwnProperty.call(n,t)&&!this.clustering._isClusteredNode(t)&&n[t].options.hidden===!1&&this.body.nodeIndices.push(n[t].id);for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)){const i=e[t],o=n[i.fromId],r=n[i.toId],A=o!==void 0&&r!==void 0;!this.clustering._isClusteredEdge(t)&&i.options.hidden===!1&&A&&o.options.hidden===!1&&r.options.hidden===!1&&this.body.edgeIndices.push(i.id)}},pe.prototype.bindEventListeners=function(){this.body.emitter.on("_dataChanged",()=>{this.edgesHandler._updateState(),this.body.emitter.emit("_dataUpdated")}),this.body.emitter.on("_dataUpdated",()=>{this.clustering._updateState(),this._updateVisibleIndices(),this._updateValueRange(this.body.nodes),this._updateValueRange(this.body.edges),this.body.emitter.emit("startSimulation"),this.body.emitter.emit("_requestRedraw")})},pe.prototype.setData=function(n){if(this.body.emitter.emit("resetPhysics"),this.body.emitter.emit("_resetData"),this.selectionHandler.unselectAll(),n&&n.dot&&(n.nodes||n.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(n&&n.options),n&&n.dot){console.warn("The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);");const e=oU(n.dot);this.setData(e);return}else if(n&&n.gephi){console.warn("The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);");const e=sU(n.gephi);this.setData(e);return}else this.nodesHandler.setData(n&&n.nodes,!0),this.edgesHandler.setData(n&&n.edges,!0);this.body.emitter.emit("_dataChanged"),this.body.emitter.emit("_dataLoaded"),this.body.emitter.emit("initPhysics")},pe.prototype.destroy=function(){this.body.emitter.emit("destroy"),this.body.emitter.off(),this.off(),delete this.groups,delete this.canvas,delete this.selectionHandler,delete this.interactionHandler,delete this.view,delete this.renderer,delete this.physics,delete this.layoutEngine,delete this.clustering,delete this.manipulation,delete this.nodesHandler,delete this.edgesHandler,delete this.configurator,delete this.images;for(const n in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,n)&&delete this.body.nodes[n];for(const n in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,n)&&delete this.body.edges[n];Ng(this.body.container)},pe.prototype._updateValueRange=function(n){let e,t,i,o=0;for(e in n)if(Object.prototype.hasOwnProperty.call(n,e)){const r=n[e].getValue();r!==void 0&&(t=t===void 0?r:Math.min(r,t),i=i===void 0?r:Math.max(r,i),o+=r)}if(t!==void 0&&i!==void 0)for(e in n)Object.prototype.hasOwnProperty.call(n,e)&&n[e].setValueRange(t,i,o)},pe.prototype.isActive=function(){return!this.activator||this.activator.active},pe.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)},pe.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)},pe.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)},pe.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)},pe.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)},pe.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)},pe.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)},pe.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)},pe.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)},pe.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)},pe.prototype.updateClusteredNode=function(){return this.clustering.updateClusteredNode.apply(this.clustering,arguments)},pe.prototype.getClusteredEdges=function(){return this.clustering.getClusteredEdges.apply(this.clustering,arguments)},pe.prototype.getBaseEdge=function(){return this.clustering.getBaseEdge.apply(this.clustering,arguments)},pe.prototype.getBaseEdges=function(){return this.clustering.getBaseEdges.apply(this.clustering,arguments)},pe.prototype.updateEdge=function(){return this.clustering.updateEdge.apply(this.clustering,arguments)},pe.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)},pe.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)},pe.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)},pe.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)},pe.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)},pe.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)},pe.prototype.editNodeMode=function(){return console.warn("Deprecated: Please use editNode instead of editNodeMode."),this.manipulation.editNode.apply(this.manipulation,arguments)},pe.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)},pe.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)},pe.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)},pe.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)},pe.prototype.getPosition=function(){return this.nodesHandler.getPosition.apply(this.nodesHandler,arguments)},pe.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)},pe.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)},pe.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)},pe.prototype.getConnectedNodes=function(n){return this.body.nodes[n]!==void 0?this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments):this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)},pe.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)},pe.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)},pe.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)},pe.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)},pe.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)},pe.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)},pe.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodeIds.apply(this.selectionHandler,arguments)},pe.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdgeIds.apply(this.selectionHandler,arguments)},pe.prototype.getNodeAt=function(){const n=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);return n!==void 0&&n.id!==void 0?n.id:n},pe.prototype.getEdgeAt=function(){const n=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);return n!==void 0&&n.id!==void 0?n.id:n},pe.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)},pe.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)},pe.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments),this.selectionHandler.commitWithoutEmitting.apply(this.selectionHandler),this.redraw()},pe.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)},pe.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)},pe.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)},pe.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)},pe.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)},pe.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)},pe.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)},pe.prototype.getOptionsFromConfigurator=function(){let n={};return this.configurator&&(n=this.configurator.getOptions.apply(this.configurator)),n};function wq(n,e){n.on("click",t=>{e.onHover(null),t.edges.length===0&&e.onHoverEdge(null);const i=t.nodes[0];i!==void 0?e.onFocus(String(i)):e.onClear()}),n.on("doubleClick",t=>{const i=t.nodes[0];if(i!==void 0){e.onOpenSource(String(i));return}const o=t.edges[0];o!==void 0&&e.onOpenRelationshipSource(String(o))}),n.on("hoverNode",t=>{t.node!==void 0&&(e.onHoverEdge(null),e.onHover({nodeId:String(t.node),x:t.pointer.DOM.x,y:t.pointer.DOM.y}))}),n.on("blurNode",()=>e.onHover(null)),n.on("hoverEdge",t=>{t.edge!==void 0&&(e.onHover(null),e.onHoverEdge({edgeId:String(t.edge),x:t.pointer.DOM.x,y:t.pointer.DOM.y}))}),n.on("blurEdge",()=>e.onHoverEdge(null)),n.on("dragStart",()=>{e.onHover(null),e.onHoverEdge(null)}),n.on("zoom",()=>{e.onHover(null),e.onHoverEdge(null)})}const xq=1e3,Eq=4e3,ku=4e3;function Sq(n){return n.nodes.length>=xq||n.edges.length>=Eq?"static":"interactive"}function Tq(n,e=!1){if(e)return kq(n);const t=new Map;for(const h of n){const p=t.get(h.community)??[];p.push(h),t.set(h.community,p)}const i=[...t.entries()].sort(([h],[p])=>h-p).map(([h,p])=>({community:h,members:p.sort((m,y)=>m.id.localeCompare(y.id))})),o=i.reduce((h,p)=>Math.max(h,p.members.length),1),r=Math.max(1,Math.ceil(Math.sqrt(i.length))),A=Math.max(1,Math.ceil(i.length/r)),I=Math.max(280,Math.ceil(Math.sqrt(o))*48),l=Math.PI*(3-Math.sqrt(5)),c=new Map;return i.forEach((h,p)=>{const m=p%r,y=Math.floor(p/r),w=(m-(r-1)/2)*I,S=(y-(A-1)/2)*I;h.members.forEach((x,E)=>{if(E===0){c.set(x.id,{x:w,y:S});return}const N=24*Math.sqrt(E),P=E*l;c.set(x.id,{x:w+Math.cos(P)*N,y:S+Math.sin(P)*N})})}),c}function Oq(n,e,t=!1){const i=[...n].sort((o,r)=>o.community-r.community||(r.degree??0)-(o.degree??0)||o.id.localeCompare(r.id));if(e==="circle"){const o=Math.max(160,i.length*44/(2*Math.PI));return new Map(i.map((r,A)=>{const I=-Math.PI/2+A*2*Math.PI/Math.max(1,i.length);return[r.id,{x:Math.cos(I)*o,y:Math.sin(I)*o}]}))}if(e==="concentric"){const o=[...n].sort((r,A)=>(A.degree??0)-(r.degree??0)||(A.memberCount??0)-(r.memberCount??0)||r.community-A.community||r.id.localeCompare(A.id));return Dq(o)}return e==="hierarchical"?Nq(i):e==="spiral"?Mq(i):zq(i,t)}function Nq(n){const e=new Map;for(const o of n){const r=o.depth??(o.root?0:1),A=e.get(r)??[];A.push(o),e.set(r,A)}const t=[...e.entries()].sort(([o],[r])=>o-r),i=new Map;for(const[o,r]of t){r.sort((I,l)=>Number(l.root??!1)-Number(I.root??!1)||(l.degree??0)-(I.degree??0)||I.id.localeCompare(l.id));const A=148;r.forEach((I,l)=>i.set(I.id,{x:(l-(r.length-1)/2)*A,y:o*168}))}return i}function Dq(n){const e=new Map,t=n[0];if(!t)return e;e.set(t.id,{x:0,y:0});let i=1,o=1;for(;i{if(o===0)return[i.id,{x:0,y:0}];const r=36*Math.sqrt(o),A=o*.52;return[i.id,{x:Math.cos(A)*r,y:Math.sin(A)*r}]}))}function zq(n,e){const r=new Map;n.forEach((w,S)=>{const x=e?Math.floor(S/16):w.community,E=r.get(x)??[];E.push(w),r.set(x,E)});const A=[...r.entries()].sort(([w],[S])=>w-S).map(([w,S])=>{const x=Math.max(1,Math.ceil(Math.sqrt(S.length))),E=Math.max(1,Math.ceil(S.length/x));return{key:w,members:S,columns:x,rows:E,width:(x-1)*56,height:(E-1)*56}}),I=Math.max(1,Math.ceil(Math.sqrt(A.length))),l=Math.max(1,Math.ceil(A.length/I)),c=Array.from({length:I},()=>0),h=Array.from({length:l},()=>0);A.forEach((w,S)=>{const x=S%I,E=Math.floor(S/I);c[x]=Math.max(c[x]??0,w.width),h[E]=Math.max(h[E]??0,w.height)});const p=kx(c,112),m=kx(h,112),y=new Map;return A.forEach((w,S)=>{const x=S%I,E=Math.floor(S/I);w.members.forEach((N,P)=>{const B=Math.floor(P/w.columns),W=Math.min(w.columns,w.members.length-B*w.columns),ne=P%w.columns;y.set(N.id,{x:(p[x]??0)+(ne-(W-1)/2)*56,y:(m[E]??0)+(B-(w.rows-1)/2)*56})})}),y}function kx(n,e){let i=-(n.reduce((o,r)=>o+r,0)+Math.max(0,n.length-1)*e)/2;return n.map(o=>{const r=i+o/2;return i+=o+e,r})}function Rx(n){if(!n.stats.aggregated||n.edges.length<=ku)return n.edges;const e=[...n.edges].sort((A,I)=>(I.weight??_x(I.relation))-(A.weight??_x(A.relation))||A.source.localeCompare(I.source)||A.target.localeCompare(I.target)||A.id.localeCompare(I.id)),t=new Map(n.nodes.map(A=>[A.id,A.id])),i=A=>{let I=t.get(A)??A;for(;t.get(I)!==void 0&&t.get(I)!==I;)I=t.get(I);let l=A;for(;t.get(l)!==void 0&&t.get(l)!==I;){const c=t.get(l);t.set(l,I),l=c}return I},o=[],r=new Set;for(const A of e){const I=i(A.source),l=i(A.target);if(I!==l&&(t.set(l,I),o.push(A),r.add(A.id),o.length===ku))return o}for(const A of e)if(!r.has(A.id)&&(o.push(A),o.length===ku))break;return o}function _x(n){const e=Number.parseInt(n,10);return Number.isFinite(e)&&e>0?e:1}function kq(n){const e=[...n].sort((o,r)=>(r.degree??0)-(o.degree??0)||(r.memberCount??0)-(o.memberCount??0)||o.id.localeCompare(r.id)),t=Math.PI*(3-Math.sqrt(5)),i=34;return new Map(e.map((o,r)=>{if(r===0)return[o.id,{x:0,y:0}];const A=i*Math.sqrt(r),I=r*t;return[o.id,{x:Math.cos(I)*A,y:Math.sin(I)*A}]}))}const aI=176,AI=108,jx=8,Rq=1500,_q=2e3;function jq(n){const e=[...n.positions.values()],t=n.viewport.left+n.viewport.width,i=n.viewport.top+n.viewport.height,o=[...e.map(_=>_.x),n.viewport.left,t],r=[...e.map(_=>_.y),n.viewport.top,i],A=Math.min(...o),I=Math.max(...o),l=Math.min(...r),c=Math.max(...r),h=Math.max(1,I-A),p=Math.max(1,c-l),m=aI-jx*2,y=AI-jx*2,w=Math.min(m/h,y/p),S=h*w,x=p*w,E=(aI-S)/2,N=(AI-x)/2,P=({x:_,y:Y})=>({x:E+(_-A)*w,y:N+(Y-l)*w}),B=({x:_,y:Y})=>({x:A+(_-E)/w,y:l+(Y-N)/w}),W=P({x:n.viewport.left,y:n.viewport.top}),ne=P({x:t,y:i});return{project:P,unproject:B,viewport:{x:W.x,y:W.y,width:ne.x-W.x,height:ne.y-W.y}}}function Zq({model:n,snapshot:e,visibleNodeIds:t,visibleEdgeIds:i,focusedNodeId:o,onNavigate:r}){const A=F.useMemo(()=>jq(e),[e]),I=F.useMemo(()=>n.nodes.filter(m=>!t||t.has(m.id)).sort((m,y)=>m.id.localeCompare(y.id)),[n.nodes,t]),l=I.slice(0,Rq),c=F.useMemo(()=>n.edges.filter(m=>(!i||i.has(m.id))&&(!t||t.has(m.source)&&t.has(m.target))).sort((m,y)=>m.id.localeCompare(y.id)).slice(0,_q),[n.edges,i,t]),h=F.useMemo(()=>new Map(n.communities.map(m=>[m.id,m.color])),[n.communities]),p=m=>{const y=m.currentTarget.getBoundingClientRect();y.width<=0||y.height<=0||r(A.unproject({x:(m.clientX-y.left)/y.width*aI,y:(m.clientY-y.top)/y.height*AI}))};return f.jsxs("aside",{className:"compass-minimap compass-glass-panel","aria-label":"Graph overview",children:[f.jsxs("header",{children:[f.jsx("span",{children:"Map"}),f.jsx("small",{children:l.length{const y=e.positions.get(m.source),w=e.positions.get(m.target);if(!y||!w)return null;const S=A.project(y),x=A.project(w);return f.jsx("line",{x1:S.x,y1:S.y,x2:x.x,y2:x.y},m.id)})}),f.jsx("g",{className:"compass-minimap-nodes",children:l.map(m=>{const y=e.positions.get(m.id);if(!y)return null;const w=A.project(y);return f.jsx("circle",{cx:w.x,cy:w.y,r:m.id===o?3:1.65,fill:m.color?.background??h.get(m.community)??"currentColor","data-focused":m.id===o?"true":void 0},m.id)})}),f.jsx("rect",{className:"compass-minimap-viewport",x:A.viewport.x,y:A.viewport.y,width:A.viewport.width,height:A.viewport.height,rx:"2"})]})})]})}const Zx={added:{background:"#163d24",border:"#56d364"},removed:{background:"#4b1f24",border:"#ff7b72"},changed:{background:"#3d3015",border:"#d7a72b"},unchanged:{background:"#29313b",border:"#8b949e"}},Bq=200,Pq=1500,Bx=.1,Lq=3,Gq=18,Fq=96,Vq=1500;function Uq(n,e){const t=[...e].sort().slice(0,Vq),i=n.getPositions(t),o=Object.values(i),r=o.length===0?0:Math.max(Math.max(...o.map(({x:l})=>l))-Math.min(...o.map(({x:l})=>l)),Math.max(...o.map(({y:l})=>l))-Math.min(...o.map(({y:l})=>l))),A=Math.min(Fq,Math.max(Gq,r*.012)),I=Math.PI*(3-Math.sqrt(5));t.forEach((l,c)=>{const h=i[l];if(!h)return;const p=c*I;n.moveNode(l,h.x+Math.cos(p)*A,h.y+Math.sin(p)*A)})}function Ls(n){return window.matchMedia("(prefers-reduced-motion: reduce)").matches?!1:{duration:n,easingFunction:"easeInOutQuad"}}const Yq={autoResize:!0,interaction:{hover:!0,tooltipDelay:100,hideEdgesOnDrag:!0,navigationButtons:!1,keyboard:{enabled:!0}},layout:{improvedLayout:!0},nodes:{borderWidth:1.5,shape:"dot"},edges:{arrows:{to:{enabled:!0,scaleFactor:.5}},smooth:{enabled:!0,type:"continuous",roundness:.2},selectionWidth:3},physics:{enabled:!0,solver:"forceAtlas2Based",stabilization:{enabled:!0,iterations:200,fit:!0,updateInterval:20},forceAtlas2Based:{gravitationalConstant:-60,centralGravity:.005,springLength:120,springConstant:.08,damping:.4,avoidOverlap:.8}}},Hq={autoResize:!0,interaction:{hover:!0,tooltipDelay:100,hideEdgesOnDrag:!0,navigationButtons:!1,keyboard:{enabled:!0}},layout:{improvedLayout:!0,randomSeed:17},nodes:{borderWidth:2,shape:"dot"},edges:{arrows:{to:{enabled:!0,scaleFactor:.38}},smooth:{enabled:!0,type:"continuous",roundness:.14},selectionWidth:3},physics:{enabled:!0,solver:"barnesHut",stabilization:{enabled:!0,iterations:520,fit:!0,updateInterval:25},maxVelocity:35,minVelocity:.55,barnesHut:{theta:.45,gravitationalConstant:-12e3,centralGravity:.12,springLength:180,springConstant:.025,damping:.3,avoidOverlap:.85}}},Kq={autoResize:!0,interaction:{hover:!0,tooltipDelay:100,hideEdgesOnDrag:!0,hideEdgesOnZoom:!0,hoverConnectedEdges:!1,selectConnectedEdges:!1,navigationButtons:!1,keyboard:{enabled:!0}},layout:{improvedLayout:!1,randomSeed:17},nodes:{borderWidth:1.5,shape:"dot"},edges:{arrows:{to:{enabled:!1}},chosen:!1,smooth:!1,selectionWidth:3},physics:{enabled:!1,solver:"barnesHut"}};function Px(n,e,t,i,o){const r=e.change&&i?i[e.change]:void 0,A=r?r.background:e.color?.background??o?.get(e.community)??n.communities.find(I=>I.id===e.community)?.color??"#6688aa";return{background:A,border:t??r?.border??e.color?.border??A}}function Tn(n,e){return typeof window>"u"?e:getComputedStyle(document.documentElement).getPropertyValue(n).trim()||e}function Wq(n){return n==="extracted"?{dashes:!1,width:2,opacity:.7}:n==="ambiguous"?{dashes:[3,4],width:2,opacity:.62}:n==="aggregated"?{dashes:!1,width:1,opacity:.2}:{dashes:!0,width:1,opacity:.35}}function Lx(n,e,t,i){if(n==="added")return{color:i.added.border,dashes:!1,width:1.7,opacity:.6};if(n==="removed")return{color:i.removed.border,dashes:[6,5],width:1.6,opacity:.56};if(n==="changed")return{color:i.changed.border,dashes:!1,width:1.65,opacity:.48};if(n==="unchanged")return{color:i.unchanged.border,dashes:!0,width:1,opacity:.2};const o=Wq(e);return{color:t,...o}}function Qq(n){return n==="added"?{enabled:!0,type:"curvedCW",roundness:.13}:n==="removed"?{enabled:!0,type:"curvedCCW",roundness:.13}:{enabled:!0,type:"continuous",roundness:.1}}function Xq(n){const e=new Map;for(const r of[...n].sort((A,I)=>A.id.localeCompare(I.id))){const A=r.change??"unchanged",I=e.get(A)??[];I.push(r),e.set(A,I)}const t={added:-300,changed:0,removed:300,unchanged:0},i=new Map,o=Math.PI*(3-Math.sqrt(5));for(const[r,A]of e)A.forEach((I,l)=>{const c=l*o,h=r==="unchanged"?210+Math.sqrt(l)*34:42+Math.sqrt(l)*40;i.set(I.id,{x:t[r]+Math.cos(c)*h,y:Math.sin(c)*h})});return i}function $q(){const[n,e]=F.useState(0);return F.useEffect(()=>{const t=()=>e(r=>r+1),i=new MutationObserver(t);i.observe(document.documentElement,{attributes:!0,attributeFilter:["class","style"]}),i.observe(document.body,{attributes:!0,attributeFilter:["class","style"]});const o=window.matchMedia("(prefers-color-scheme: dark)");return o.addEventListener("change",t),()=>{i.disconnect(),o.removeEventListener("change",t)}},[]),n}function Ru(n){const e=n.match(/^#([\da-f]{3}|[\da-f]{6})$/i)?.[1];if(e){const i=e.length===3?[...e].map(o=>`${o}${o}`).join(""):e;return[Number.parseInt(i.slice(0,2),16),Number.parseInt(i.slice(2,4),16),Number.parseInt(i.slice(4,6),16)]}const t=n.match(/^rgba?\(\s*([\d.]+)[,\s]+([\d.]+)[,\s]+([\d.]+)/i);if(t)return[Number.parseFloat(t[1]??"0"),Number.parseFloat(t[2]??"0"),Number.parseFloat(t[3]??"0")]}function qq(n,e,t){const i=Ru(n),o=Ru(e);if(!i||!o)return e;const r=i.map((A,I)=>Math.round(A*(1-t)+o[I]*t));return`rgb(${r[0]}, ${r[1]}, ${r[2]})`}function Jq(n){const e=Ru(n);return e?(e[0]*299+e[1]*587+e[2]*114)/1e3<145:!0}function CI(n,e,t,i=!1){return{background:qq(n,e,i?t?.18:.1:t?.26:.14),border:e}}const eJ=F.forwardRef(function({model:e,focusedNodeId:t,physicsRunning:i,layoutStyle:o="automatic",initialPositions:r,forceLabels:A,showEdgeLabels:I=!1,isolatedNodeIds:l,isolatedEdgeIds:c,layoutSpacing:h=1,showMinimap:p=!1,hiddenCommunities:m,hiddenChanges:y,onFocus:w,onOpenSource:S,onOpenRelationshipSource:x,onHover:E,onHoverEdge:N,onClear:P,onStabilized:B},W){const ne=F.useRef(null),_=F.useRef(null),[Y,Ce]=F.useState(null),Ee=F.useRef(i);Ee.current=i;const _e=F.useRef(i),De=F.useRef({onFocus:w,onOpenSource:S,onOpenRelationshipSource:x,onHover:E,onHoverEdge:N,onClear:P});De.current={onFocus:w,onOpenSource:S,onOpenRelationshipSource:x,onHover:E,onHoverEdge:N,onClear:P};const et=F.useRef(B);et.current=B;const Te=F.useRef(null),ae=F.useRef(h),M=$q(),k=F.useMemo(()=>Sq(e),[e.edges.length,e.nodes.length]),ee=F.useMemo(()=>Rx(e),[e]),Ie=F.useMemo(()=>new Set(e.nodes.filter(V=>!m.has(V.community)&&!y.has(V.change??"unchanged")&&(!l||l.has(V.id))).map(V=>V.id)),[y,m,l,e.nodes]),J=F.useMemo(()=>new Set(ee.filter(V=>Ie.has(V.source)&&Ie.has(V.target)&&(!c||c.has(V.id))).map(V=>V.id)),[c,ee,Ie]),T=F.useRef(Ie);T.current=Ie;const L=F.useCallback(()=>{const V=_.current,Ae=ne.current;if(!V||!Ae)return;const qe=V.getPositions([...T.current].sort().slice(0,Pq)),Et=V.getViewPosition(),Rt=Math.max(Bx,V.getScale()),Bt=Math.max(1,Ae.clientWidth)/Rt,pI=Math.max(1,Ae.clientHeight)/Rt;Ce({positions:new Map(Object.entries(qe)),viewport:{left:Et.x-Bt/2,top:Et.y-pI/2,width:Bt,height:pI}})},[]),te=F.useMemo(()=>{let V=1;for(const Ae of e.nodes)V=Math.max(V,Ae.degree??1);return V},[e.nodes]),re=F.useMemo(()=>new Map(e.communities.map(V=>[V.id,V.color])),[e.communities]),de=F.useMemo(()=>Tn("--vscode-editor-foreground",Tn("--foreground","#eef5ff")),[M]),ye=F.useMemo(()=>Tn("--vscode-descriptionForeground",Tn("--muted-foreground","#60728b")),[M]),Le=F.useMemo(()=>Tn("--vscode-editor-foreground",Tn("--foreground","#d8e4f2")),[M]),at=F.useMemo(()=>{const V=Tn("--vscode-editor-background",Tn("--background","#08111f")),Ae=Jq(V);return{added:CI(V,Tn("--vscode-gitDecoration-addedResourceForeground",Ae?"#56d364":"#1a7f37"),Ae),removed:CI(V,Tn("--vscode-gitDecoration-deletedResourceForeground",Ae?"#ff7b72":"#cf222e"),Ae),changed:CI(V,Tn("--vscode-gitDecoration-modifiedResourceForeground",Ae?"#d7a72b":"#9a6700"),Ae),unchanged:CI(V,Tn("--vscode-descriptionForeground",Ae?"#8b949e":"#656d76"),Ae,!0)}},[M]),me=F.useMemo(()=>e.nodes.some(V=>V.change!==void 0)||e.edges.some(V=>V.change!==void 0),[e.edges,e.nodes]),sn=F.useMemo(()=>new Set(me?e.nodes.filter(V=>V.change!=="unchanged").sort((V,Ae)=>(Ae.degree??0)-(V.degree??0)||V.id.localeCompare(Ae.id)).slice(0,12).map(V=>V.id):k==="static"?[...e.nodes].sort((V,Ae)=>(Ae.degree??0)-(V.degree??0)||V.id.localeCompare(Ae.id)).slice(0,20).map(V=>V.id):[]),[me,e.nodes,k]),z=F.useMemo(()=>k==="static"?new Set([...e.nodes].sort((V,Ae)=>(Ae.degree??0)-(V.degree??0)||V.id.localeCompare(Ae.id)).slice(0,Bq).map(V=>V.id)):new Set,[e.nodes,k]),fe=F.useMemo(()=>me?Xq(e.nodes):new Map,[me,e.nodes]),Ze=o==="automatic"?1:h,je=F.useMemo(()=>o==="automatic"?new Map:Oq(e.nodes,o,e.stats.aggregated),[o,e.nodes,e.stats.aggregated]),dt=F.useMemo(()=>k==="static"&&!me?Tq(e.nodes,e.stats.aggregated):new Map,[me,e.nodes,e.stats.aggregated,k]),oe=F.useMemo(()=>typeof document>"u"?void 0:document.body.classList.contains("vscode-high-contrast")||document.body.classList.contains("vscode-high-contrast-light")?Tn("--vscode-contrastBorder","#ffffff"):void 0,[M]),Se=F.useMemo(()=>new Zs(e.nodes.map(V=>{const Ae=V.size??Math.min(40,10+30*(V.degree??1)/te),qe=me?V.change==="unchanged"?7+5*Math.sqrt((V.degree??1)/te):11+12*Math.sqrt((V.degree??1)/te):Ae,Et=je.get(V.id)??fe.get(V.id)??r?.get(V.id)??dt.get(V.id),Rt=Et?{x:Et.x*Ze,y:Et.y*Ze}:void 0;return{id:V.id,label:V.label,color:Px(e,V,void 0,Zx,re),size:qe,...Rt??{},opacity:V.change==="unchanged"?.58:1,font:{color:"#eef5ff",face:"system-ui",size:me||k==="static"?sn.has(V.id)?12:0:(V.degree??1)>=te*.15?12:0}}})),[sn,me,fe,re,r,Ze,te,e,k,je,dt]),xe=F.useMemo(()=>new Zs(ee.map(V=>{const Ae=Lx(V.change,V.confidence,"#60728b",Zx);return{id:V.id,from:V.source,to:V.target,dashes:Ae.dashes,width:Ae.width,...me&&k!=="static"?{smooth:Qq(V.change)}:{},color:{color:Ae.color,opacity:Ae.opacity}}})),[me,ee,k]);return F.useEffect(()=>{const V=ne.current;if(!V)return;Te.current=null;const Ae=new pe(V,{nodes:Se,edges:xe},k==="static"?Kq:me?Hq:Yq);Ae.setOptions({physics:{enabled:Ee.current}}),Ee.current||Ae.stopSimulation(),_.current=Ae,wq(Ae,{onFocus:Rt=>De.current.onFocus(Rt),onOpenSource:Rt=>De.current.onOpenSource(Rt),onOpenRelationshipSource:Rt=>De.current.onOpenRelationshipSource(Rt),onHover:Rt=>De.current.onHover(Rt),onHoverEdge:Rt=>De.current.onHoverEdge(Rt),onClear:()=>De.current.onClear()}),Ae.on("stabilizationIterationsDone",()=>{Te.current={position:Ae.getViewPosition(),scale:Ae.getScale()},et.current(),L()}),Ae.on("stabilized",L),Ae.on("dragEnd",L),Ae.on("zoom",L),Ae.on("resize",L),Ae.on("animationFinished",L);const qe=fe.size>0||je.size>0||(r?.size??0)>0||dt.size>0;!Ee.current&&qe&&(Ae.stopSimulation(),Ae.fit({animation:!1}),Te.current={position:Ae.getViewPosition(),scale:Ae.getScale()});const Et=window.setTimeout(L,0);return()=>{window.clearTimeout(Et),Ae.destroy(),_.current=null}},[xe,Se,me,fe,r,k,je,dt,L]),F.useEffect(()=>{const V=_.current;if(!V)return;const Ae=_e.current;_e.current=i,V.setOptions({physics:{enabled:i}}),i?(Ae||Uq(V,T.current),V.startSimulation()):V.stopSimulation()},[xe,Se,i]),F.useEffect(()=>{const V=_.current;if(!V||o!=="automatic"||k==="static")return;const Ae=ae.current;if(ae.current=h,V.setOptions({physics:me?{barnesHut:{springLength:180*h}}:{forceAtlas2Based:{springLength:120*h}}}),!i&&Ae!==h){const qe=h/Ae,Et=V.getPositions();Se.update(Object.entries(Et).map(([Rt,Bt])=>({id:Rt,x:Bt.x*qe,y:Bt.y*qe}))),V.redraw(),L()}},[me,h,o,Se,i,L,k]),F.useEffect(()=>{Se.update(e.nodes.map(V=>({id:V.id,hidden:!Ie.has(V.id)}))),xe.update(ee.map(V=>({id:V.id,hidden:!J.has(V.id)}))),L()},[xe,L,ee,e.nodes,Se,J,Ie]),F.useEffect(()=>{const V=_.current;if(!V)return;const Ae=t?new Set(V.getConnectedNodes(t).map(String)):new Set;if(Se.update(e.nodes.map(qe=>{const Et=qe.id===t,Rt=!t||Et||Ae.has(qe.id),Bt=qe.change==="unchanged"?.58:1;return{id:qe.id,opacity:t?Rt?Math.max(Bt,.72):.08:Bt,borderWidth:Et?4:oe?2.5:1.5,color:Px(e,qe,oe,at,re),shadow:Et?{enabled:!0,color:qe.change?at[qe.change].border:qe.color?.background??re.get(qe.community)??"#76b7ff",size:24,x:0,y:0}:{enabled:!1}}})),xe.update(ee.map(qe=>{const Et=Lx(qe.change,qe.confidence,ye,at),Rt=qe.source===t||qe.target===t;return{id:qe.id,dashes:Et.dashes,color:{color:Et.color,opacity:t?Rt?.92:.05:Et.opacity},width:Rt?Math.max(3,Et.width):Et.width}})),t)if(V.selectNodes([t]),Ee.current)V.focus(t,{scale:1.35,animation:window.matchMedia("(prefers-reduced-motion: reduce)").matches?!1:{duration:260,easingFunction:"easeInOutQuad"}});else{const qe=V.getPositions([t])[t];qe&&V.moveTo({position:qe,scale:1.35,animation:!1})}else V.unselectAll()},[oe,at,re,ye,xe,t,e,Se,ee]),F.useEffect(()=>{Se.update(e.nodes.map(V=>({id:V.id,font:{color:de,size:A&&(k!=="static"||z.has(V.id))||V.id===t||(me||k==="static"?sn.has(V.id):(V.degree??1)>=te*.15)?12:0}})))},[sn,me,z,t,A,de,te,e.nodes,Se,k]),F.useEffect(()=>{xe.update(ee.map(V=>({id:V.id,label:I?V.relation:"",font:{align:"middle",color:Le,face:"system-ui",size:10,strokeWidth:3,strokeColor:Tn("--vscode-editor-background",Tn("--background","#08111f"))}})))},[xe,Le,ee,I]),F.useImperativeHandle(W,()=>({fit(){_.current?.fit({animation:Ls(280)})},fitSelection(V){const Ae=_.current;!Ae||V.length===0||Ae.fit({nodes:[...new Set(V)],animation:Ls(240)})},reset(){const V=_.current,Ae=Te.current;if(V){if(!Ae){V.fit({animation:!1});return}V.moveTo({position:Ae.position,scale:Ae.scale,animation:!1})}},resetZoom(){_.current?.moveTo({scale:1,animation:Ls(180)})},zoomIn(){const V=_.current;V&&V.moveTo({scale:Math.min(Lq,V.getScale()*1.25),animation:Ls(160)})},zoomOut(){const V=_.current;V&&V.moveTo({scale:Math.max(Bx,V.getScale()/1.25),animation:Ls(160)})}}),[]),f.jsxs(f.Fragment,{children:[f.jsx("div",{ref:ne,className:"compass-canvas","data-rendering-profile":k,"data-layout-style":o,"data-physics-running":i?"true":"false","data-isolated":l?"true":"false","data-layout-spacing":h,role:"region","aria-label":"Interactive Compass code graph",onMouseLeave:()=>{E(null),N(null)}}),p&&Y?f.jsx(Zq,{model:e,snapshot:Y,visibleNodeIds:Ie,visibleEdgeIds:J,focusedNodeId:t,onNavigate:V=>_.current?.moveTo({position:V,animation:Ls(180)})}):null]})}),Gx=1,Fx=4;function tJ(n){return Math.max(Gx,Math.min(Fx,Math.trunc(n)))}function nJ(n,e,t,i){const o=tJ(t),r=new Map,A=new Map;for(const h of n.edges){const p=r.get(h.source)??[];p.push(h),r.set(h.source,p);const m=A.get(h.target)??[];m.push(h),A.set(h.target,m)}for(const h of[...r.values(),...A.values()])h.sort((p,m)=>p.id.localeCompare(m.id));const I=new Set([e]),l=new Set;let c=[e];for(let h=0;h0;h+=1){const p=new Set;for(const m of c.sort()){if(i!=="incoming")for(const y of r.get(m)??[])l.add(y.id),I.has(y.target)||p.add(y.target);if(i!=="outgoing")for(const y of A.get(m)??[])l.add(y.id),I.has(y.source)||p.add(y.source)}c=[...p];for(const m of c)I.add(m)}return{nodeIds:I,edgeIds:l}}const Vx={focusedNodeId:null,physicsRunning:!1,layoutStyle:"automatic",initialLayoutPending:!1,forceLabels:!1,showEdgeLabels:!1,isolateSelection:!1,neighborhoodDepth:1,edgeDirection:"both",layoutSpacing:1,showMinimap:!0,hiddenCommunities:new Set,hiddenChanges:new Set,query:""};function iJ(n,e="automatic"){return e!=="automatic"?{...Vx,layoutStyle:e,physicsRunning:!1,initialLayoutPending:!1}:{...Vx,physicsRunning:!1,initialLayoutPending:!1}}function gJ(n,e){switch(e.type){case"focus":return{...n,focusedNodeId:e.nodeId,physicsRunning:!1};case"clearFocus":return{...n,focusedNodeId:null,isolateSelection:!1};case"stabilized":return n.physicsRunning||n.initialLayoutPending?{...n,physicsRunning:!1,initialLayoutPending:!1}:n;case"revealLayout":return{...n,physicsRunning:!1,initialLayoutPending:!1};case"setPhysics":return{...n,physicsRunning:e.running};case"setLayout":return{...n,layoutStyle:e.layout,physicsRunning:e.runPhysics,initialLayoutPending:!1};case"setLabels":return{...n,forceLabels:e.visible};case"setEdgeLabels":return{...n,showEdgeLabels:e.visible};case"setIsolation":return{...n,isolateSelection:e.isolated};case"setNeighborhoodDepth":return{...n,neighborhoodDepth:Math.max(1,Math.min(4,Math.trunc(e.depth)))};case"setEdgeDirection":return{...n,edgeDirection:e.direction};case"setLayoutSpacing":return{...n,layoutSpacing:e.spacing};case"setMinimap":return{...n,showMinimap:e.visible};case"search":return{...n,query:e.query};case"toggleCommunity":{const t=new Set(n.hiddenCommunities);return t.has(e.communityId)?t.delete(e.communityId):t.add(e.communityId),{...n,hiddenCommunities:t}}case"setHiddenCommunities":return{...n,hiddenCommunities:new Set(e.communityIds)};case"toggleChange":{const t=new Set(n.hiddenChanges);return t.has(e.change)?t.delete(e.change):t.add(e.change),{...n,hiddenChanges:t}}}}const oJ=[{value:"added",label:"Added"},{value:"removed",label:"Removed"},{value:"changed",label:"Changed"},{value:"unchanged",label:"Context"}],sJ={hierarchical:"Depth-layer layout",circle:"Circle layout",concentric:"Concentric layout",spiral:"Spiral layout",grid:"Square grid layout"},_u=["both","outgoing","incoming"];function rJ(n){return n instanceof HTMLElement&&(n.isContentEditable||n.tagName==="INPUT"||n.tagName==="TEXTAREA"||n.tagName==="SELECT")}function ju({model:n,host:e,communityDetail:t,communityLoading:i,communityError:o,onBackToOverview:r,sourceRevisions:A,queryResult:I,initialInspectorLayout:l,onInspectorLayoutChange:c,preferredLayout:h="automatic",toolbarLeading:p,toolbarLeadingPanel:m,toolbarLeadingOpen:y,onToolbarLeadingClose:w,stageOverlay:S}){const[x,E]=F.useState(()=>mv(l)),N=F.useCallback(W=>{const ne=mv(W);E(ne),c?.(ne)},[c]),P=t?.model??n,B=t?`community-${t.communityId}`:"overview";return f.jsx(aJ,{model:P,host:e,detailCommunityId:t?.communityId,communityLoading:i,communityError:o,onBackToOverview:t?r:void 0,bounded:t?.bounded,sourceRevisions:A,queryResult:I,inspectorLayout:x,onInspectorLayoutChange:N,preferredLayout:h,toolbarLeading:p,toolbarLeadingPanel:m,toolbarLeadingOpen:y,onToolbarLeadingClose:w,stageOverlay:S},B)}function aJ({model:n,host:e,detailCommunityId:t,communityLoading:i,communityError:o,onBackToOverview:r,bounded:A,sourceRevisions:I,queryResult:l,inspectorLayout:c,onInspectorLayoutChange:h,preferredLayout:p,toolbarLeading:m,toolbarLeadingPanel:y,toolbarLeadingOpen:w,onToolbarLeadingClose:S,stageOverlay:x}){const[E,N]=F.useReducer(gJ,n,oe=>iJ(oe,p)),[P,B]=F.useState(null),[W,ne]=F.useState(null),_=F.useRef(null),Y=F.useRef(e);Y.current=e;const Ce=F.useMemo(()=>new Map(n.nodes.map(oe=>[oe.id,oe])),[n.nodes]),Ee=F.useMemo(()=>new Map(n.edges.map(oe=>[oe.id,oe])),[n.edges]),_e=F.useMemo(()=>{const oe=new Map,Se=new Map;for(const xe of n.edges){const V=oe.get(xe.source)??new Set;V.add(xe.target),oe.set(xe.source,V);const Ae=oe.get(xe.target)??new Set;Ae.add(xe.source),oe.set(xe.target,Ae);const qe=Se.get(xe.source)??[];qe.push(xe),Se.set(xe.source,qe);const Et=Se.get(xe.target)??[];Et.push(xe),Se.set(xe.target,Et)}return{neighborIds:oe,edges:Se}},[n.edges]),De=F.useMemo(()=>n.nodes.map(oe=>({node:oe,text:[oe.label,oe.source?.file,oe.kind].filter(Se=>Se!==void 0).join(` -`).toLocaleLowerCase()})),[n.nodes]),et=F.useMemo(()=>Rx(n).length,[n]),Te=E.focusedNodeId?Ce.get(E.focusedNodeId):void 0,ae=F.useMemo(()=>Te?nJ(n,Te.id,E.neighborhoodDepth,E.edgeDirection):null,[n,Te,E.edgeDirection,E.neighborhoodDepth]),M=P?Ce.get(P.nodeId):void 0,k=M?vv(n,M,t):void 0,ee=W?Ee.get(W.edgeId):void 0,Ie=ee?Ce.get(ee.source):void 0,J=ee?Ce.get(ee.target):void 0,T=F.useMemo(()=>n.nodes.some(oe=>oe.change!==void 0)||n.edges.some(oe=>oe.change!==void 0),[n.edges,n.nodes]),L=F.useMemo(()=>{const oe=new Map;for(const Se of n.nodes){const xe=Se.change??"unchanged";oe.set(xe,(oe.get(xe)??0)+1)}return oe},[n.nodes]),te=F.useMemo(()=>Te?[..._e.neighborIds.get(Te.id)??[]].map(oe=>Ce.get(oe)).filter(oe=>oe!==void 0).sort((oe,Se)=>oe.label.localeCompare(Se.label)):[],[_e.neighborIds,Ce,Te]),re=F.useMemo(()=>Te?_e.edges.get(Te.id)??[]:[],[_e.edges,Te]),de=F.useDeferredValue(E.query),ye=F.useMemo(()=>{const oe=de.trim().toLocaleLowerCase();if(!oe)return[];const Se=[];for(const xe of De)if(xe.text.includes(oe)&&Se.push(xe.node),Se.length===20)break;return Se},[de,De]),Le=F.useCallback(oe=>{B(null),ne(null),N({type:"focus",nodeId:oe})},[]),at=F.useCallback(()=>{B(null),ne(null),N({type:"clearFocus"})},[]);F.useEffect(()=>{E.focusedNodeId&&!Ce.has(E.focusedNodeId)&&at()},[at,Ce,E.focusedNodeId]),F.useEffect(()=>{const oe=Se=>{if(Se.metaKey||Se.ctrlKey||Se.altKey||rJ(Se.target))return;const xe=Se.key.toLocaleLowerCase();let V=!0;if(xe==="f")Se.shiftKey&&ae?_.current?.fitSelection([...ae.nodeIds]):Se.shiftKey?V=!1:_.current?.fit();else if(xe==="+"||xe==="=")_.current?.zoomIn();else if(xe==="-"||xe==="_")_.current?.zoomOut();else if(xe==="0")_.current?.resetZoom();else if(xe==="i"&&Te)N({type:"setIsolation",isolated:!E.isolateSelection});else if(xe==="[")N({type:"setNeighborhoodDepth",depth:Math.max(Gx,E.neighborhoodDepth-1)});else if(xe==="]")N({type:"setNeighborhoodDepth",depth:Math.min(Fx,E.neighborhoodDepth+1)});else if(xe==="d"){const Ae=_u.indexOf(E.edgeDirection);N({type:"setEdgeDirection",direction:_u[(Ae+1)%_u.length]??"both"})}else xe==="m"?N({type:"setMinimap",visible:!E.showMinimap}):V=!1;V&&Se.preventDefault()};return document.addEventListener("keydown",oe,{capture:!0}),()=>document.removeEventListener("keydown",oe,{capture:!0})},[Te,ae,E.edgeDirection,E.isolateSelection,E.neighborhoodDepth,E.showMinimap]);const me=F.useCallback(()=>{N({type:"stabilized"})},[]),sn=F.useCallback(()=>{N({type:"revealLayout"})},[]),z=F.useCallback(oe=>{const Se=Ce.get(oe);if(!Se)return;const xe=vv(n,Se,t);xe.type==="community"&&Y.current.openCommunity?.(xe.communityId),xe.type==="source"&&Y.current.openSource(xe.source,Se.change==="removed"?I?.before:I?.after)},[t,Ce,n.stats.aggregated,I?.after,I?.before]),fe=F.useCallback(oe=>{const Se=Ee.get(oe);if(!Se)return;const xe=av(Se);xe&&Y.current.openSource(xe,Se.change==="removed"?I?.before:I?.after)},[Ee,I?.after,I?.before]),Ze=Te&&E.isolateSelection&&ae?`Isolated ${ae.nodeIds.size} nodes · ${E.neighborhoodDepth} hop${E.neighborhoodDepth===1?"":"s"}`:Te?`Inspecting ${Te.label}`:E.layoutStyle!=="automatic"?sJ[E.layoutStyle]:E.physicsRunning?"Layout running":"Layout static",je=i!=null?n.communities.find(oe=>oe.id===i):void 0,dt=i!=null?{kind:"community",communityLabel:je?.label??`Community ${i}`}:E.initialLayoutPending?{kind:"layout"}:null;return f.jsxs("div",{className:"compass-workspace",style:{"--compass-inspector-width":`${c.width}px`},children:[f.jsxs("div",{className:"compass-workspace-content","data-inspector-collapsed":c.collapsed,inert:dt?!0:void 0,"aria-hidden":dt?!0:void 0,children:[f.jsxs("main",{className:"compass-graph-stage","data-comparison":T?"true":"false",children:[f.jsx(eJ,{ref:_,model:n,focusedNodeId:Te?.id??null,physicsRunning:E.physicsRunning,layoutStyle:E.layoutStyle,forceLabels:E.forceLabels,showEdgeLabels:E.showEdgeLabels,isolatedNodeIds:E.isolateSelection?ae?.nodeIds:void 0,isolatedEdgeIds:E.isolateSelection?ae?.edgeIds:void 0,layoutSpacing:E.layoutSpacing,showMinimap:E.showMinimap,hiddenCommunities:E.hiddenCommunities,hiddenChanges:E.hiddenChanges,onFocus:Le,onOpenSource:z,onOpenRelationshipSource:fe,onHover:B,onHoverEdge:ne,onClear:at,onStabilized:me}),x,f.jsx(M3,{status:Ze,physicsRunning:E.physicsRunning,layoutStyle:E.layoutStyle,forceLabels:E.forceLabels,showEdgeLabels:E.showEdgeLabels,hasSelection:Te!==void 0,isolateSelection:E.isolateSelection,neighborhoodDepth:E.neighborhoodDepth,edgeDirection:E.edgeDirection,layoutSpacing:E.layoutSpacing,showMinimap:E.showMinimap,leadingControls:m,leadingPanel:y,leadingPanelOpen:w,onLeadingPanelClose:S,onTogglePhysics:()=>N({type:"setPhysics",running:!E.physicsRunning}),onLayoutChange:oe=>N({type:"setLayout",layout:oe,runPhysics:!1}),onZoomOut:()=>_.current?.zoomOut(),onResetZoom:()=>_.current?.resetZoom(),onZoomIn:()=>_.current?.zoomIn(),onFit:()=>_.current?.fit(),onFitSelection:()=>{ae&&_.current?.fitSelection([...ae.nodeIds])},onReset:()=>{at(),N({type:"setIsolation",isolated:!1}),_.current?.reset()},onToggleLabels:()=>N({type:"setLabels",visible:!E.forceLabels}),onToggleEdgeLabels:()=>N({type:"setEdgeLabels",visible:!E.showEdgeLabels}),onToggleIsolation:()=>{const oe=!E.isolateSelection;N({type:"setIsolation",isolated:oe}),oe&&ae&&window.requestAnimationFrame(()=>{_.current?.fitSelection([...ae.nodeIds])})},onNeighborhoodDepthChange:oe=>N({type:"setNeighborhoodDepth",depth:oe}),onEdgeDirectionChange:oe=>N({type:"setEdgeDirection",direction:oe}),onLayoutSpacingChange:oe=>N({type:"setLayoutSpacing",spacing:oe}),onToggleMinimap:()=>N({type:"setMinimap",visible:!E.showMinimap}),onBack:r}),T&&f.jsx("div",{className:"compass-change-legend","aria-label":"Graph change filters",children:oJ.filter(({value:oe})=>(L.get(oe)??0)>0).map(({value:oe,label:Se})=>{const xe=!E.hiddenChanges.has(oe);return f.jsxs("button",{type:"button","data-change":oe,"aria-pressed":xe,onClick:()=>N({type:"toggleChange",change:oe}),children:[f.jsx("span",{"aria-hidden":"true"}),Se,f.jsx("small",{children:L.get(oe)??0})]},oe)})}),o&&f.jsx("div",{className:"absolute bottom-4 left-4 z-20 max-w-md rounded-md border border-destructive/50 bg-background/95 px-3 py-2 text-sm text-destructive shadow-lg",role:"alert",children:o}),A&&f.jsxs("div",{className:"compass-bounded-notice",role:"status",children:[f.jsx("strong",{children:"Partial community comparison"}),f.jsxs("span",{children:["This view is limited to ",A.limit.toLocaleString()," nodes. Increase"," ",f.jsx("code",{children:"compass.graphNodeLimit"})," to inspect all"," ",Math.max(A.parentMembers,A.currentMembers).toLocaleString()," symbols."]})]}),P&&M&&k&&f.jsx(j3,{node:M,hover:P,activation:k}),W&&ee&&Ie&&J&&f.jsx(F3,{edge:ee,sourceNode:Ie,targetNode:J,hover:W})]}),!c.collapsed&&f.jsx(R3,{width:c.width,onResize:oe=>h({...c,width:oe})}),f.jsx(T3,{model:n,selected:Te,neighbors:te,connectedEdges:re,query:E.query,matches:ye,hiddenCommunities:E.hiddenCommunities,comparisonMode:T,sourceRevisions:I,queryResult:l,renderedEdgeCount:et,onQueryChange:oe=>N({type:"search",query:oe}),onFocus:Le,onOpenSource:e.openSource,onOpenCommunity:t===void 0?e.openCommunity:void 0,onQueryNode:e.queryNode,onToggleCommunity:oe=>N({type:"toggleCommunity",communityId:oe}),onSetAllVisible:oe=>N({type:"setHiddenCommunities",communityIds:oe?[]:n.communities.map(Se=>Se.id)}),collapsed:c.collapsed,onToggleCollapsed:()=>h({...c,collapsed:!c.collapsed})})]}),dt?.kind==="community"?f.jsx(uv,{kind:"community",communityLabel:dt.communityLabel}):dt?.kind==="layout"?f.jsx(uv,{kind:"layout",onShowGraph:sn}):null]})}const Zu=224,AJ=76,II=124,Bu=96,Gs=96,CJ=288,IJ=112,Pu=12;function lJ(n,e,t={width:1280,height:620},i={},o){const r=n.filter(_=>_.nodeCount>0||_.incomingCalls>0||_.outgoingCalls>0);if(r.length===0)return{width:t.width,height:t.height,nodes:[],routes:[],lanes:[]};const A=new Set(r.map(_=>_.id)),I=e.filter(_=>A.has(_.sourceSection)&&A.has(_.targetSection)),l=cJ(r,I),c=l.length,h=Math.max(t.width,Gs*2+CJ*c),p=(h-Gs*2)/c;hJ(l,I);const m=Math.max(...l.map(_=>_.length)),y=Math.max(t.height,II+Bu+m*IJ),w=l.findIndex(_=>_.some(Y=>Y.id===o)),S=Array.from({length:c},(_,Y)=>({index:Y,x:Gs+p*Y,width:p,label:yJ(Y,c,w<0?void 0:w)})),x=y-II-Bu,E=l.flatMap((_,Y)=>{const Ce=x/Math.max(1,_.length);return _.map((Ee,_e)=>{const De={x:Gs+p*Y+p/2,y:II+Ce*_e+Ce/2},et=i[Ee.id]??De;return{...Ee,x:Lu(et.x,Gs+Zu/2,h-Gs-Zu/2),y:Lu(et.y,II,y-Bu),width:Math.min(Zu,p-40),height:AJ,column:vJ(et.x,S)}})}),N=new Map(E.map(_=>[_.id,_])),P=pJ(I,N),B=Kx(I,N,"source"),W=Kx(I,N,"target"),ne=I.flatMap(_=>{const Y=N.get(_.sourceSection),Ce=N.get(_.targetSection);if(!Y||!Ce)return[];const Ee=Wx(Y,Ce);return[{..._,direction:Ee,path:fJ(Y,Ce,Ee,P.get(_.id)??0,{height:y},B.get(_.id)??0,W.get(_.id)??0),width:1+Math.min(4.4,Math.log10(_.calls+1)*1.35)}]});return{width:h,height:y,nodes:E,routes:ne,lanes:S}}function cJ(n,e){if(n.length===1)return[[n[0]]];if(e.length===0)return Ux(n);const t=dJ(n,e),i=new Map(t.map((c,h)=>[c.id,h])),o=new Map;for(const c of n)o.set(c.id,[]);for(const c of e)(i.get(c.sourceSection)??0)<(i.get(c.targetSection)??0)&&c.sourceSection!==c.targetSection&&o.get(c.targetSection)?.push(c);const r=new Map;for(const c of t){const h=(o.get(c.id)??[]).map(p=>(r.get(p.sourceSection)??0)+1);r.set(c.id,h.length>0?Math.max(...h):0)}const A=Math.max(0,...r.values()),I=Math.min(Pu,A+1);if(I===1)return Ux(n);const l=Array.from({length:I},()=>[]);for(const c of t){const h=r.get(c.id)??0,p=Ac.length>0)}function dJ(n,e){const t=new Map(n.map(A=>[A.id,A])),i=new Set(t.keys()),o=[],r=[];for(;i.size>0;){const A=uJ(i,e),I=[...i].map(p=>({section:t.get(p),incoming:A.incoming.get(p)??0,outgoing:A.outgoing.get(p)??0})),l=I.filter(p=>p.incoming===0),c=I.filter(p=>p.outgoing===0);if(l.length>0){const p=l.sort((m,y)=>y.outgoing-m.outgoing||Za(m.section,y.section))[0];o.push(p.section),i.delete(p.section.id);continue}if(c.length>0){const p=c.sort((m,y)=>y.incoming-m.incoming||Za(m.section,y.section))[0];r.unshift(p.section),i.delete(p.section.id);continue}const h=I.sort((p,m)=>m.outgoing-m.incoming-(p.outgoing-p.incoming)||m.outgoing+m.incoming-(p.outgoing+p.incoming)||Za(p.section,m.section))[0];o.push(h.section),i.delete(h.section.id)}return[...o,...r]}function uJ(n,e){const t=new Map,i=new Map;for(const o of e){if(o.sourceSection===o.targetSection||!n.has(o.sourceSection)||!n.has(o.targetSection))continue;const r=1+Math.log10(o.calls+1);i.set(o.sourceSection,(i.get(o.sourceSection)??0)+r),t.set(o.targetSection,(t.get(o.targetSection)??0)+r)}return{incoming:t,outgoing:i}}function Ux(n){const e=Math.min(6,Math.max(2,Math.ceil(Math.sqrt(n.length)))),t=Array.from({length:e},()=>[]);return[...n].sort(Za).forEach((i,o)=>{t[Math.floor(o*e/n.length)].push(i)}),t}function hJ(n,e){const t=new Map;for(const i of e)Yx(t,i.sourceSection,i.targetSection,i.calls),Yx(t,i.targetSection,i.sourceSection,i.calls);for(let i=0;i<8;i+=1)for(const o of[1,-1]){const r=o===1?1:n.length-2,A=o===1?n.length:-1;for(let I=r;I!==A;I+=o){const l=new Map,c=o===1?n.slice(0,I):n.slice(I+1);for(const p of c)p.forEach((m,y)=>{l.set(m.id,p.length===1?.5:y/(p.length-1))});const h=new Map(n[I].map((p,m,y)=>[p.id,y.length===1?.5:m/(y.length-1)]));n[I].sort((p,m)=>{const y=Hx(p.id,t,l),w=Hx(m.id,t,l);return(y??h.get(p.id)??.5)-(w??h.get(m.id)??.5)||Za(p,m)})}}}function Yx(n,e,t,i){const o=n.get(e)??new Map;o.set(t,(o.get(t)??0)+i),n.set(e,o)}function Hx(n,e,t){let i=0,o=0;for(const[r,A]of e.get(n)??[]){const I=t.get(r);I!==void 0&&(i+=I*A,o+=A)}return o>0?i/o:void 0}function fJ(n,e,t,i,o,r,A){const I=n.y+r,l=e.y+A;if(t==="forward"){const w=n.x+n.width/2,S=e.x-e.width/2,x=Math.max(1,S-w),E=Lu(x*.42,42,168),N=bJ(i%9,1.5);return[`M ${w} ${I}`,`C ${w+E} ${I+N}`,`${S-E} ${l+N}`,`${S} ${l}`].join(" ")}if(t==="backward"){const w=n.x-n.width/2,S=e.x+e.width/2,x=(I+l)/2{const I=e.get(r.sourceSection),l=e.get(A.sourceSection),c=e.get(r.targetSection),h=e.get(A.targetSection);return(I?.column??0)-(l?.column??0)||(c?.column??0)-(h?.column??0)||(I?.y??0)-(l?.y??0)||(c?.y??0)-(h?.y??0)||A.calls-r.calls||r.id.localeCompare(A.id)});for(const r of o){const A=e.get(r.sourceSection),I=e.get(r.targetSection);if(!A||!I)continue;const l=Wx(A,I),c=`${Math.min(A.column,I.column)}:${Math.max(A.column,I.column)}:${l}`,h=i.get(c)??0;t.set(r.id,h),i.set(c,h+1)}return t}function Kx(n,e,t){const i=new Map;for(const r of n){const A=t==="source"?r.sourceSection:r.targetSection,I=i.get(A)??[];I.push(r),i.set(A,I)}const o=new Map;for(const r of i.values()){r.sort((I,l)=>{const c=e.get(t==="source"?I.targetSection:I.sourceSection),h=e.get(t==="source"?l.targetSection:l.sourceSection);return(c?.y??0)-(h?.y??0)||(c?.x??0)-(h?.x??0)||I.id.localeCompare(l.id)});const A=Math.min(8,38/Math.max(1,r.length-1));r.forEach((I,l)=>{o.set(I.id,(l-(r.length-1)/2)*A)})}return o}function mJ(n,e,t,i,o){const r=Math.sign(i-e)||1,A=Math.sign(o-t)||1,I=Math.min(12,Math.abs(i-e)/2,Math.abs(t-n)/2);return[`M ${n} ${e}`,`H ${t-Math.sign(t-n)*I}`,`Q ${t} ${e} ${t} ${e+r*I}`,`V ${i-r*I}`,`Q ${t} ${i} ${t+A*I} ${i}`,`H ${o}`].join(" ")}function Wx(n,e){return e.column>n.column?"forward":e.columnXx(i)),A=F.useRef(o),[I,l]=F.useState(1),[c,h]=F.useState("none"),p=F.useRef("none"),m=F.useRef(0),[y,w]=F.useState(xJ),[S,x]=F.useState("key"),[E,N]=F.useState(),P=F.useRef(null),B=F.useRef(void 0),W=F.useRef(void 0);F.useEffect(()=>{const z=Xx(i);A.current=z,r(z),l(1),p.current="start",m.current=0,h("start"),P.current?.scrollTo?.({left:0,top:0}),x("key")},[i]);const ne=F.useMemo(()=>TJ(n.routes,e),[n.routes,e]),_=F.useMemo(()=>S==="complete"?{routes:n.routes,reciprocals:new Map}:OJ(n.routes.filter(z=>ne.has(z.id)),e?.kind==="route"?e.id:void 0),[ne,n.routes,S,e]),Y=_.routes,Ce=F.useMemo(()=>{if(S==="complete"||e===void 0)return n.sections;const z=new Set;e.kind==="section"&&z.add(e.id);for(const fe of Y)z.add(fe.sourceSection),z.add(fe.targetSection);return n.sections.filter(fe=>z.has(fe.id))},[n.sections,S,Y,e]),Ee=F.useMemo(()=>lJ(Ce,Y,y,o,S==="key"&&e?.kind==="section"?e.id:void 0),[Ce,o,S,Y,e,y]),_e=Ee.routes,De=F.useMemo(()=>e?.kind!=="section"?new Set:new Set(_e.filter(z=>z.sourceSection===e.id||z.targetSection===e.id).flatMap(z=>[z.id,z.sourceSection,z.targetSection])),[_e,e]),et=Math.max(1,..._e.map(z=>z.calls)),Te=n.routes.length-_e.length,ae={width:Math.round(Ee.width*I),height:Math.round(Ee.height*I)},M=z=>{t(z)},k=(z,fe)=>{(z.key==="Enter"||z.key===" ")&&(z.preventDefault(),M(fe))},ee=(z,fe)=>{const Ze={...A.current,[z]:fe};A.current=Ze,r(Ze)},Ie=()=>{try{window.localStorage.setItem(i,JSON.stringify(A.current))}catch{}},J=()=>{A.current={},r({});try{window.localStorage.removeItem(i)}catch{}},T=()=>{l(1),p.current="start",m.current=0,h("start");const z=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;P.current?.scrollTo?.({left:0,top:0,behavior:z?"auto":"smooth"})},L=z=>{const fe=Math.max(0,z.scrollWidth-z.clientWidth),Ze=fe<=1?"none":z.scrollLeft<=1?"start":z.scrollLeft>=fe-1?"end":"middle";m.current=fe,p.current=Ze,h(je=>je===Ze?je:Ze)},te=z=>{L(z.currentTarget)},re=z=>{z.target!==z.currentTarget||!P.current||(B.current={x:z.clientX,y:z.clientY,scrollLeft:P.current.scrollLeft,scrollTop:P.current.scrollTop,pointerId:z.pointerId},z.currentTarget.setPointerCapture(z.pointerId))},de=z=>{const fe=B.current,Ze=P.current;!fe||!Ze||fe.pointerId!==z.pointerId||(Ze.scrollLeft=fe.scrollLeft-(z.clientX-fe.x),Ze.scrollTop=fe.scrollTop-(z.clientY-fe.y))},ye=z=>{B.current?.pointerId===z.pointerId&&(B.current=void 0,z.currentTarget.hasPointerCapture(z.pointerId)&&z.currentTarget.releasePointerCapture(z.pointerId))},Le=(z,fe)=>{z.stopPropagation();const Ze=Qx(z.currentTarget.ownerSVGElement,z);Ze&&(W.current={id:fe.id,pointerId:z.pointerId,offsetX:Ze.x-fe.x,offsetY:Ze.y-fe.y,startClientX:z.clientX,startClientY:z.clientY,moved:!1},N(fe.id),z.currentTarget.setPointerCapture(z.pointerId))},at=(z,fe)=>{const Ze=W.current;!Ze||Ze.id!==fe.id||Ze.pointerId!==z.pointerId||(z.currentTarget.hasPointerCapture(z.pointerId)&&z.currentTarget.releasePointerCapture(z.pointerId),W.current=void 0,N(void 0),Ze.moved?Ie():M({kind:"section",id:fe.id}))},me=z=>{W.current?.pointerId===z.pointerId&&(W.current=void 0,N(void 0))},sn=(z,fe)=>{if(z.key==="Enter"||z.key===" "){z.preventDefault(),M({kind:"section",id:fe.id});return}if(!z.altKey||!z.key.startsWith("Arrow"))return;z.preventDefault();const Ze=z.shiftKey?24:8;ee(fe.id,{x:fe.x+(z.key==="ArrowRight"?Ze:z.key==="ArrowLeft"?-Ze:0),y:fe.y+(z.key==="ArrowDown"?Ze:z.key==="ArrowUp"?-Ze:0)}),Ie()};return F.useEffect(()=>{const z=P.current;if(!z)return;const fe=()=>{const je=m.current,dt=Math.max(0,z.scrollWidth-z.clientWidth),oe=je>1&&z.scrollLeft>=je-1;if(dt>je&&(p.current==="end"||oe)&&(z.scrollLeft=dt),L(z),z.clientWidth<=0||z.clientHeight<=0)return;const Se={width:Math.round(z.clientWidth),height:Math.round(z.clientHeight)};w(xe=>xe.width===Se.width&&xe.height===Se.height?xe:Se)};if(fe(),typeof ResizeObserver>"u")return;const Ze=new ResizeObserver(fe);return Ze.observe(z),()=>Ze.disconnect()},[ae.height,ae.width]),f.jsxs("section",{className:"architecture-map-panel","aria-labelledby":"architecture-map-title","data-route-mode":S,children:[f.jsxs("header",{className:"architecture-map-header",children:[f.jsxs("div",{className:"architecture-map-intro",children:[f.jsx("span",{children:"Flow canvas"}),f.jsx("strong",{id:"architecture-map-title",children:"Subsystem call direction"}),f.jsx("small",{id:"architecture-map-help",children:"Scroll sideways or drag open canvas space to follow the complete architecture."})]}),f.jsxs("div",{className:"architecture-map-actions",children:[f.jsxs("div",{className:"architecture-route-mode",role:"group","aria-label":"Route visibility",children:[f.jsx("button",{type:"button","aria-pressed":S==="key",onClick:()=>x("key"),children:e?.kind==="section"?"Neighbors":"Key routes"}),f.jsxs("button",{type:"button","aria-pressed":S==="complete",onClick:()=>x("complete"),children:["All routes · ",n.routes.length]})]}),f.jsxs("div",{className:"architecture-map-toolbar","aria-label":"Map controls",children:[f.jsx("button",{type:"button","aria-label":"Zoom out",onClick:()=>l(z=>Math.max(.75,z-.25)),children:f.jsx(JR,{"aria-hidden":"true"})}),f.jsxs("span",{"aria-live":"polite",children:[Math.round(I*100),"%"]}),f.jsx("button",{type:"button","aria-label":"Zoom in",onClick:()=>l(z=>Math.min(2,z+.25)),children:f.jsx(Vm,{"aria-hidden":"true"})}),f.jsx("button",{type:"button","aria-label":"Reset zoom and scroll position",title:"Reset zoom and scroll position",onClick:T,children:f.jsx(Gm,{"aria-hidden":"true"})}),f.jsx("button",{type:"button","aria-label":"Reset subsystem positions",title:"Reset subsystem positions",disabled:Object.keys(o).length===0,onClick:J,children:f.jsx(Um,{"aria-hidden":"true"})})]})]})]}),f.jsx("div",{ref:P,className:"architecture-map-viewport",role:"region","aria-label":"Scrollable architecture flow diagram","aria-describedby":"architecture-map-help",tabIndex:0,"data-scroll-position":c,onScroll:te,children:Ee.nodes.length>0?f.jsx("div",{className:"architecture-map-canvas",style:{width:ae.width,height:ae.height},children:f.jsxs("svg",{className:"architecture-map",viewBox:`0 0 ${Ee.width} ${Ee.height}`,role:"group","aria-label":DJ(Ee.nodes.length,_e.length,n.routes.length),onPointerDown:re,onPointerMove:de,onPointerUp:ye,onPointerCancel:()=>{B.current=void 0},children:[f.jsxs("defs",{children:[f.jsx("marker",{id:"architecture-arrow",className:"architecture-arrow architecture-arrow-default",markerWidth:"8",markerHeight:"8",refX:"7",refY:"4",orient:"auto-start-reverse",markerUnits:"userSpaceOnUse",children:f.jsx("path",{d:"M 0 0 L 8 4 L 0 8 z"})}),f.jsx("marker",{id:"architecture-arrow-incoming",className:"architecture-arrow architecture-arrow-incoming",markerWidth:"8",markerHeight:"8",refX:"7",refY:"4",orient:"auto-start-reverse",markerUnits:"userSpaceOnUse",children:f.jsx("path",{d:"M 0 0 L 8 4 L 0 8 z"})}),f.jsx("marker",{id:"architecture-arrow-outgoing",className:"architecture-arrow architecture-arrow-outgoing",markerWidth:"8",markerHeight:"8",refX:"7",refY:"4",orient:"auto-start-reverse",markerUnits:"userSpaceOnUse",children:f.jsx("path",{d:"M 0 0 L 8 4 L 0 8 z"})})]}),f.jsxs("g",{className:"architecture-map-lanes","aria-hidden":"true",children:[Ee.lanes.map(z=>f.jsxs("g",{children:[f.jsx("rect",{x:z.x+8,y:34,width:z.width-16,height:Ee.height-76,rx:"12"}),f.jsx("text",{x:z.x+z.width/2,y:61,children:z.label})]},z.index)),f.jsx("text",{className:"architecture-map-direction",x:96,y:24,children:"PRIMARY CALL DIRECTION →"})]}),f.jsx("g",{className:"architecture-routes",children:_e.map(z=>{const fe=_.reciprocals.get(z.id),Ze=e?.kind==="route"&&e.id===z.id,je=Ze||e===void 0||e.kind==="section"&&De.has(z.id),dt=z.inferred>z.extracted?"inferred":"extracted",oe=e?.kind==="section"?z.targetSection===e.id?"incoming":z.sourceSection===e.id?"outgoing":void 0:void 0,Se=S==="key"?.3+Math.sqrt(z.calls/et)*.28:.1+Math.sqrt(z.calls/et)*.2;return f.jsxs("g",{role:"button",tabIndex:0,"aria-label":`${z.sourceSection} to ${z.targetSection}, ${z.calls} calls${fe?`; bidirectional, ${fe.calls} reverse calls`:""}${z.direction==="backward"?", feedback route":""}`,"data-direction":z.direction,"data-evidence":dt,"data-reciprocal":fe?"true":void 0,"data-focus-direction":oe,"data-selected":Ze||void 0,"data-dimmed":!je||void 0,onClick:()=>M({kind:"route",id:z.id}),onKeyDown:xe=>k(xe,{kind:"route",id:z.id}),children:[f.jsx("path",{className:"architecture-route-hit",d:z.path}),f.jsx("path",{className:"architecture-route-line",d:z.path,style:{strokeWidth:z.width,"--architecture-route-opacity":Se},markerStart:fe?NJ(oe):void 0,markerEnd:oe==="incoming"?"url(#architecture-arrow-incoming)":oe==="outgoing"?"url(#architecture-arrow-outgoing)":"url(#architecture-arrow)"}),f.jsxs("title",{children:[z.sourceSection," → ",z.targetSection,": ",z.calls," calls",fe&&` · ${fe.sourceSection} → ${fe.targetSection}: ${fe.calls} calls`]})]},z.id)})}),f.jsx("g",{className:"architecture-map-nodes",children:Ee.nodes.map(z=>{const fe=e?.kind==="section"&&e.id===z.id,Ze=fe||e===void 0||e.kind==="section"&&De.has(z.id)||e.kind==="route"&&n.routes.some(je=>je.id===e.id&&(je.sourceSection===z.id||je.targetSection===z.id));return f.jsxs("g",{role:"button",tabIndex:0,"aria-label":`${z.name}, ${z.nodeCount} visible symbols, ${z.incomingCalls} incoming and ${z.outgoingCalls} outgoing calls; drag to reposition`,transform:`translate(${z.x-z.width/2} ${z.y-z.height/2})`,"data-selected":fe||void 0,"data-dimmed":!Ze||void 0,"data-dragging":E===z.id||void 0,onPointerDown:je=>Le(je,z),onPointerMove:je=>{const dt=W.current;if(!dt||dt.id!==z.id||dt.pointerId!==je.pointerId)return;const oe=Qx(je.currentTarget.ownerSVGElement,je);oe&&((Math.abs(je.clientX-dt.startClientX)>3||Math.abs(je.clientY-dt.startClientY)>3)&&(dt.moved=!0),ee(z.id,{x:oe.x-dt.offsetX,y:oe.y-dt.offsetY}))},onPointerUp:je=>at(je,z),onPointerCancel:je=>me(je),onKeyDown:je=>sn(je,z),children:[f.jsx("rect",{className:"architecture-map-node-shadow",width:z.width,height:z.height,rx:"9"}),f.jsx("rect",{className:"architecture-map-node-card",width:z.width,height:z.height,rx:"9"}),f.jsx("rect",{className:"architecture-map-node-accent",width:"4",height:z.height-16,x:"8",y:"8",rx:"2"}),f.jsx("text",{x:"20",y:"27",className:"architecture-map-node-name",children:SJ(z.name,24)}),f.jsxs("text",{x:"20",y:"48",className:"architecture-map-node-meta",children:[z.nodeCount.toLocaleString()," symbols"," · ","↓",z.incomingCalls.toLocaleString()," ↑",z.outgoingCalls.toLocaleString()]}),f.jsxs("g",{className:"architecture-map-node-grip","aria-hidden":"true",children:[f.jsx("circle",{cx:z.width-18,cy:"26",r:"1.2"}),f.jsx("circle",{cx:z.width-13,cy:"26",r:"1.2"}),f.jsx("circle",{cx:z.width-18,cy:"31",r:"1.2"}),f.jsx("circle",{cx:z.width-13,cy:"31",r:"1.2"}),f.jsx("circle",{cx:z.width-18,cy:"36",r:"1.2"}),f.jsx("circle",{cx:z.width-13,cy:"36",r:"1.2"})]}),f.jsxs("title",{children:[z.name," — drag to reposition"]})]},z.id)})})]})}):f.jsxs("div",{className:"architecture-map-empty",children:[f.jsx("strong",{children:"No architecture to draw"}),f.jsx("span",{children:"No subsystems match the current scope and evidence filters."})]})}),f.jsxs("footer",{className:"architecture-map-footer",children:[f.jsxs("div",{className:"architecture-map-legend","aria-label":"Map legend",children:[f.jsxs("span",{children:[f.jsx("i",{"data-evidence":"extracted"})," Extracted"]}),f.jsxs("span",{children:[f.jsx("i",{"data-evidence":"inferred"})," Inferred"]}),f.jsxs("span",{children:[f.jsx("i",{"data-direction":"incoming"})," Incoming"]}),f.jsxs("span",{children:[f.jsx("i",{"data-direction":"outgoing"})," Outgoing"]}),f.jsxs("span",{children:[f.jsx("i",{"data-direction":"bidirectional","aria-hidden":"true",children:"↔"})," Bidirectional"]}),f.jsxs("span",{children:[f.jsx("i",{"data-direction":"feedback"})," Feedback"]}),f.jsxs("span",{children:[f.jsx(e3,{"aria-hidden":"true"})," Drag cards to arrange"]}),Te>0&&f.jsxs("button",{type:"button",onClick:()=>x("complete"),children:[_e.length," of ",n.routes.length," routes · Show all"]})]}),f.jsxs("details",{className:"architecture-map-table",children:[f.jsx("summary",{children:"View routes as a table"}),f.jsx("div",{children:f.jsxs("table",{children:[f.jsx("thead",{children:f.jsxs("tr",{children:[f.jsx("th",{children:"From"}),f.jsx("th",{children:"To"}),f.jsx("th",{children:"Calls"}),f.jsx("th",{children:"Evidence"})]})}),f.jsx("tbody",{children:n.routes.map(z=>f.jsxs("tr",{children:[f.jsx("td",{children:$x(n,z.sourceSection)}),f.jsx("td",{children:$x(n,z.targetSection)}),f.jsx("td",{children:z.calls.toLocaleString()}),f.jsxs("td",{children:[z.extracted," extracted · ",z.inferred," inferred"]})]},z.id))})]})})]})]})]})}function Qx(n,e){if(!n)return;const t=n.getScreenCTM();if(!t)return;const i=n.createSVGPoint();i.x=e.clientX,i.y=e.clientY;const o=i.matrixTransform(t.inverse());return{x:o.x,y:o.y}}function Xx(n){try{const e=JSON.parse(window.localStorage.getItem(n)??"{}");return!e||typeof e!="object"||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).flatMap(([t,i])=>i&&typeof i=="object"&&"x"in i&&"y"in i&&typeof i.x=="number"&&typeof i.y=="number"&&Number.isFinite(i.x)&&Number.isFinite(i.y)?[[t,{x:i.x,y:i.y}]]:[]))}catch{return{}}}function $x(n,e){return n.sections.find(t=>t.id===e)?.name??e}function SJ(n,e){return n.length<=e?n:`${n.slice(0,e-1)}…`}function TJ(n,e){const t=o=>[...o].sort((r,A)=>A.calls-r.calls||r.id.localeCompare(A.id)),i=new Set;if(e?.kind==="route"){const o=n.find(r=>r.id===e.id);if(o){i.add(o.id);const r=n.find(A=>A.sourceSection===o.targetSection&&A.targetSection===o.sourceSection);r&&i.add(r.id)}return i}else if(e?.kind==="section"){const o=t(n.filter(A=>A.targetSection===e.id)).slice(0,6),r=t(n.filter(A=>A.sourceSection===e.id)).slice(0,6);for(const A of t([...o,...r]))i.add(A.id);return i}for(const o of t(n)){if(i.size>=wJ)break;i.add(o.id)}return i}function OJ(n,e){const t=new Map(n.map(A=>[qx(A.sourceSection,A.targetSection),A])),i=new Set,o=[],r=new Map;for(const A of n){if(i.has(A.id))continue;const I=t.get(qx(A.targetSection,A.sourceSection));if(!I||I.id===A.id||i.has(I.id)){o.push(A),i.add(A.id);continue}const l=A.id===e?A:I.id===e?I:A.calls>I.calls||A.calls===I.calls&&A.id.localeCompare(I.id)<=0?A:I,c=l.id===A.id?I:A;o.push(l),r.set(l.id,c),i.add(A.id),i.add(I.id)}return o.sort((A,I)=>I.calls-A.calls||A.id.localeCompare(I.id)),{routes:o,reciprocals:r}}function qx(n,e){return`${n}\0${e}`}function NJ(n){return n==="incoming"?"url(#architecture-arrow-outgoing)":n==="outgoing"?"url(#architecture-arrow-incoming)":"url(#architecture-arrow)"}function DJ(n,e,t){return e===t?`${n} subsystems and ${t} directed routes`:`${n} subsystems and ${e} of ${t} directed routes visible`}function Jx(n){var e,t,i="";if(typeof n=="string"||typeof n=="number")i+=n;else if(typeof n=="object")if(Array.isArray(n)){var o=n.length;for(e=0;etypeof n=="boolean"?`${n}`:n===0?"0":n,n2=e2,Gu=(n,e)=>t=>{var i;if(e?.variants==null)return n2(n,t?.class,t?.className);const{variants:o,defaultVariants:r}=e,A=Object.keys(o).map(c=>{const h=t?.[c],p=r?.[c];if(h===null)return null;const m=t2(h)||t2(p);return o[c][m]}),I=t&&Object.entries(t).reduce((c,h)=>{let[p,m]=h;return m===void 0||(c[p]=m),c},{}),l=e==null||(i=e.compoundVariants)===null||i===void 0?void 0:i.reduce((c,h)=>{let{class:p,className:m,...y}=h;return Object.entries(y).every(w=>{let[S,x]=w;return Array.isArray(x)?x.includes({...r,...I}[S]):{...r,...I}[S]===x})?[...c,p,m]:c},[]);return n2(n,A,l,t?.class,t?.className)},MJ=(n,e)=>{const t=new Array(n.length+e.length);for(let i=0;i({classGroupId:n,validator:e}),i2=(n=new Map,e=null,t)=>({nextPart:n,validators:e,classGroupId:t}),lI="-",g2=[],kJ="arbitrary..",RJ=n=>{const e=jJ(n),{conflictingClassGroups:t,conflictingClassGroupModifiers:i}=n;return{getClassGroupId:A=>{if(A.startsWith("[")&&A.endsWith("]"))return _J(A);const I=A.split(lI),l=I[0]===""&&I.length>1?1:0;return o2(I,l,e)},getConflictingClassGroupIds:(A,I)=>{if(I){const l=i[A],c=t[A];return l?c?MJ(c,l):l:c||g2}return t[A]||g2}}},o2=(n,e,t)=>{if(n.length-e===0)return t.classGroupId;const o=n[e],r=t.nextPart.get(o);if(r){const c=o2(n,e+1,r);if(c)return c}const A=t.validators;if(A===null)return;const I=e===0?n.join(lI):n.slice(e).join(lI),l=A.length;for(let c=0;cn.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const e=n.slice(1,-1),t=e.indexOf(":"),i=e.slice(0,t);return i?kJ+i:void 0})(),jJ=n=>{const{theme:e,classGroups:t}=n;return ZJ(t,e)},ZJ=(n,e)=>{const t=i2();for(const i in n){const o=n[i];Fu(o,t,i,e)}return t},Fu=(n,e,t,i)=>{const o=n.length;for(let r=0;r{if(typeof n=="string"){PJ(n,e,t);return}if(typeof n=="function"){LJ(n,e,t,i);return}GJ(n,e,t,i)},PJ=(n,e,t)=>{const i=n===""?e:s2(e,n);i.classGroupId=t},LJ=(n,e,t,i)=>{if(FJ(n)){Fu(n(i),e,t,i);return}e.validators===null&&(e.validators=[]),e.validators.push(zJ(t,n))},GJ=(n,e,t,i)=>{const o=Object.entries(n),r=o.length;for(let A=0;A{let t=n;const i=e.split(lI),o=i.length;for(let r=0;r"isThemeGetter"in n&&n.isThemeGetter===!0,VJ=n=>{if(n<1)return{get:()=>{},set:()=>{}};let e=0,t=Object.create(null),i=Object.create(null);const o=(r,A)=>{t[r]=A,e++,e>n&&(e=0,i=t,t=Object.create(null))};return{get(r){let A=t[r];if(A!==void 0)return A;if((A=i[r])!==void 0)return o(r,A),A},set(r,A){r in t?t[r]=A:o(r,A)}}},Vu="!",r2=":",UJ=[],a2=(n,e,t,i,o)=>({modifiers:n,hasImportantModifier:e,baseClassName:t,maybePostfixModifierPosition:i,isExternal:o}),YJ=n=>{const{prefix:e,experimentalParseClassName:t}=n;let i=o=>{const r=[];let A=0,I=0,l=0,c;const h=o.length;for(let S=0;Sl?c-l:void 0;return a2(r,y,m,w)};if(e){const o=e+r2,r=i;i=A=>A.startsWith(o)?r(A.slice(o.length)):a2(UJ,!1,A,void 0,!0)}if(t){const o=i;i=r=>t({className:r,parseClassName:o})}return i},HJ=n=>{const e=new Map;return n.orderSensitiveModifiers.forEach((t,i)=>{e.set(t,1e6+i)}),t=>{const i=[];let o=[];for(let r=0;r0&&(o.sort(),i.push(...o),o=[]),i.push(A)):o.push(A)}return o.length>0&&(o.sort(),i.push(...o)),i}},KJ=n=>({cache:VJ(n.cacheSize),parseClassName:YJ(n),sortModifiers:HJ(n),postfixLookupClassGroupIds:WJ(n),...RJ(n)}),WJ=n=>{const e=Object.create(null),t=n.postfixLookupClassGroups;if(t)for(let i=0;i{const{parseClassName:t,getClassGroupId:i,getConflictingClassGroupIds:o,sortModifiers:r,postfixLookupClassGroupIds:A}=e,I=[],l=n.trim().split(QJ);let c="";for(let h=l.length-1;h>=0;h-=1){const p=l[h],{isExternal:m,modifiers:y,hasImportantModifier:w,baseClassName:S,maybePostfixModifierPosition:x}=t(p);if(m){c=p+(c.length>0?" "+c:c);continue}let E=!!x,N;if(E){const _=S.substring(0,x);N=i(_);const Y=N&&A[N]?i(S):void 0;Y&&Y!==N&&(N=Y,E=!1)}else N=i(S);if(!N){if(!E){c=p+(c.length>0?" "+c:c);continue}if(N=i(S),!N){c=p+(c.length>0?" "+c:c);continue}E=!1}const P=y.length===0?"":y.length===1?y[0]:r(y).join(":"),B=w?P+Vu:P,W=B+N;if(I.indexOf(W)>-1)continue;I.push(W);const ne=o(N,E);for(let _=0;_0?" "+c:c)}return c},$J=(...n)=>{let e=0,t,i,o="";for(;e{if(typeof n=="string")return n;let e,t="";for(let i=0;i{let t,i,o,r;const A=l=>{const c=e.reduce((h,p)=>p(h),n());return t=KJ(c),i=t.cache.get,o=t.cache.set,r=I,I(l)},I=l=>{const c=i(l);if(c)return c;const h=XJ(l,t);return o(l,h),h};return r=A,(...l)=>r($J(...l))},JJ=[],on=n=>{const e=t=>t[n]||JJ;return e.isThemeGetter=!0,e},C2=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,I2=/^\((?:(\w[\w-]*):)?(.+)\)$/i,eee=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,tee=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,nee=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,iee=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,gee=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,oee=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Pg=n=>eee.test(n),Ye=n=>!!n&&!Number.isNaN(Number(n)),Bi=n=>!!n&&Number.isInteger(Number(n)),Uu=n=>n.endsWith("%")&&Ye(n.slice(0,-1)),tg=n=>tee.test(n),l2=()=>!0,see=n=>nee.test(n)&&!iee.test(n),Yu=()=>!1,ree=n=>gee.test(n),aee=n=>oee.test(n),Aee=n=>!le(n)&&!ce(n),Cee=n=>n.startsWith("@container")&&(n[10]==="/"&&n[11]!==void 0||n[11]==="s"&&n[16]!==void 0&&n.startsWith("-size/",10)||n[11]==="n"&&n[18]!==void 0&&n.startsWith("-normal/",10)),Iee=n=>Lg(n,p2,Yu),le=n=>C2.test(n),jo=n=>Lg(n,m2,see),c2=n=>Lg(n,mee,Ye),lee=n=>Lg(n,y2,l2),cee=n=>Lg(n,v2,Yu),d2=n=>Lg(n,h2,Yu),dee=n=>Lg(n,f2,aee),cI=n=>Lg(n,b2,ree),ce=n=>I2.test(n),Ba=n=>Zo(n,m2),uee=n=>Zo(n,v2),u2=n=>Zo(n,h2),hee=n=>Zo(n,p2),fee=n=>Zo(n,f2),dI=n=>Zo(n,b2,!0),pee=n=>Zo(n,y2,!0),Lg=(n,e,t)=>{const i=C2.exec(n);return i?i[1]?e(i[1]):t(i[2]):!1},Zo=(n,e,t=!1)=>{const i=I2.exec(n);return i?i[1]?e(i[1]):t:!1},h2=n=>n==="position"||n==="percentage",f2=n=>n==="image"||n==="url",p2=n=>n==="length"||n==="size"||n==="bg-size",m2=n=>n==="length",mee=n=>n==="number",v2=n=>n==="family-name",y2=n=>n==="number"||n==="weight",b2=n=>n==="shadow",vee=qJ(()=>{const n=on("color"),e=on("font"),t=on("text"),i=on("font-weight"),o=on("tracking"),r=on("leading"),A=on("breakpoint"),I=on("container"),l=on("spacing"),c=on("radius"),h=on("shadow"),p=on("inset-shadow"),m=on("text-shadow"),y=on("drop-shadow"),w=on("blur"),S=on("perspective"),x=on("aspect"),E=on("ease"),N=on("animate"),P=()=>["auto","avoid","all","avoid-page","page","left","right","column"],B=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],W=()=>[...B(),ce,le],ne=()=>["auto","hidden","clip","visible","scroll"],_=()=>["auto","contain","none"],Y=()=>[ce,le,l],Ce=()=>[Pg,"full","auto",...Y()],Ee=()=>[Bi,"none","subgrid",ce,le],_e=()=>["auto",{span:["full",Bi,ce,le]},Bi,ce,le],De=()=>[Bi,"auto",ce,le],et=()=>["auto","min","max","fr",ce,le],Te=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],ae=()=>["start","end","center","stretch","center-safe","end-safe"],M=()=>["auto",...Y()],k=()=>[Pg,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...Y()],ee=()=>[Pg,"screen","full","dvw","lvw","svw","min","max","fit",...Y()],Ie=()=>[Pg,"screen","full","lh","dvh","lvh","svh","min","max","fit",...Y()],J=()=>[n,ce,le],T=()=>[...B(),u2,d2,{position:[ce,le]}],L=()=>["no-repeat",{repeat:["","x","y","space","round"]}],te=()=>["auto","cover","contain",hee,Iee,{size:[ce,le]}],re=()=>[Uu,Ba,jo],de=()=>["","none","full",c,ce,le],ye=()=>["",Ye,Ba,jo],Le=()=>["solid","dashed","dotted","double"],at=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],me=()=>[Ye,Uu,u2,d2],sn=()=>["","none",w,ce,le],z=()=>["none",Ye,ce,le],fe=()=>["none",Ye,ce,le],Ze=()=>[Ye,ce,le],je=()=>[Pg,"full",...Y()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[tg],breakpoint:[tg],color:[l2],container:[tg],"drop-shadow":[tg],ease:["in","out","in-out"],font:[Aee],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[tg],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[tg],shadow:[tg],spacing:["px",Ye],text:[tg],"text-shadow":[tg],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Pg,le,ce,x]}],container:["container"],"container-type":[{"@container":["","normal","size",ce,le]}],"container-named":[Cee],columns:[{columns:[Ye,le,ce,I]}],"break-after":[{"break-after":P()}],"break-before":[{"break-before":P()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:W()}],overflow:[{overflow:ne()}],"overflow-x":[{"overflow-x":ne()}],"overflow-y":[{"overflow-y":ne()}],overscroll:[{overscroll:_()}],"overscroll-x":[{"overscroll-x":_()}],"overscroll-y":[{"overscroll-y":_()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:Ce()}],"inset-x":[{"inset-x":Ce()}],"inset-y":[{"inset-y":Ce()}],start:[{"inset-s":Ce(),start:Ce()}],end:[{"inset-e":Ce(),end:Ce()}],"inset-bs":[{"inset-bs":Ce()}],"inset-be":[{"inset-be":Ce()}],top:[{top:Ce()}],right:[{right:Ce()}],bottom:[{bottom:Ce()}],left:[{left:Ce()}],visibility:["visible","invisible","collapse"],z:[{z:[Bi,"auto",ce,le]}],basis:[{basis:[Pg,"full","auto",I,...Y()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Ye,Pg,"auto","initial","none",le]}],grow:[{grow:["",Ye,ce,le]}],shrink:[{shrink:["",Ye,ce,le]}],order:[{order:[Bi,"first","last","none",ce,le]}],"grid-cols":[{"grid-cols":Ee()}],"col-start-end":[{col:_e()}],"col-start":[{"col-start":De()}],"col-end":[{"col-end":De()}],"grid-rows":[{"grid-rows":Ee()}],"row-start-end":[{row:_e()}],"row-start":[{"row-start":De()}],"row-end":[{"row-end":De()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":et()}],"auto-rows":[{"auto-rows":et()}],gap:[{gap:Y()}],"gap-x":[{"gap-x":Y()}],"gap-y":[{"gap-y":Y()}],"justify-content":[{justify:[...Te(),"normal"]}],"justify-items":[{"justify-items":[...ae(),"normal"]}],"justify-self":[{"justify-self":["auto",...ae()]}],"align-content":[{content:["normal",...Te()]}],"align-items":[{items:[...ae(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...ae(),{baseline:["","last"]}]}],"place-content":[{"place-content":Te()}],"place-items":[{"place-items":[...ae(),"baseline"]}],"place-self":[{"place-self":["auto",...ae()]}],p:[{p:Y()}],px:[{px:Y()}],py:[{py:Y()}],ps:[{ps:Y()}],pe:[{pe:Y()}],pbs:[{pbs:Y()}],pbe:[{pbe:Y()}],pt:[{pt:Y()}],pr:[{pr:Y()}],pb:[{pb:Y()}],pl:[{pl:Y()}],m:[{m:M()}],mx:[{mx:M()}],my:[{my:M()}],ms:[{ms:M()}],me:[{me:M()}],mbs:[{mbs:M()}],mbe:[{mbe:M()}],mt:[{mt:M()}],mr:[{mr:M()}],mb:[{mb:M()}],ml:[{ml:M()}],"space-x":[{"space-x":Y()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":Y()}],"space-y-reverse":["space-y-reverse"],size:[{size:k()}],"inline-size":[{inline:["auto",...ee()]}],"min-inline-size":[{"min-inline":["auto",...ee()]}],"max-inline-size":[{"max-inline":["none",...ee()]}],"block-size":[{block:["auto",...Ie()]}],"min-block-size":[{"min-block":["auto",...Ie()]}],"max-block-size":[{"max-block":["none",...Ie()]}],w:[{w:[I,"screen",...k()]}],"min-w":[{"min-w":[I,"screen","none",...k()]}],"max-w":[{"max-w":[I,"screen","none","prose",{screen:[A]},...k()]}],h:[{h:["screen","lh",...k()]}],"min-h":[{"min-h":["screen","lh","none",...k()]}],"max-h":[{"max-h":["screen","lh",...k()]}],"font-size":[{text:["base",t,Ba,jo]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[i,pee,lee]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Uu,le]}],"font-family":[{font:[uee,cee,e]}],"font-features":[{"font-features":[le]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[o,ce,le]}],"line-clamp":[{"line-clamp":[Ye,"none",ce,c2]}],leading:[{leading:[r,...Y()]}],"list-image":[{"list-image":["none",ce,le]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",ce,le]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:J()}],"text-color":[{text:J()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Le(),"wavy"]}],"text-decoration-thickness":[{decoration:[Ye,"from-font","auto",ce,jo]}],"text-decoration-color":[{decoration:J()}],"underline-offset":[{"underline-offset":[Ye,"auto",ce,le]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:Y()}],"tab-size":[{tab:[Bi,ce,le]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",ce,le]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",ce,le]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:T()}],"bg-repeat":[{bg:L()}],"bg-size":[{bg:te()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Bi,ce,le],radial:["",ce,le],conic:[Bi,ce,le]},fee,dee]}],"bg-color":[{bg:J()}],"gradient-from-pos":[{from:re()}],"gradient-via-pos":[{via:re()}],"gradient-to-pos":[{to:re()}],"gradient-from":[{from:J()}],"gradient-via":[{via:J()}],"gradient-to":[{to:J()}],rounded:[{rounded:de()}],"rounded-s":[{"rounded-s":de()}],"rounded-e":[{"rounded-e":de()}],"rounded-t":[{"rounded-t":de()}],"rounded-r":[{"rounded-r":de()}],"rounded-b":[{"rounded-b":de()}],"rounded-l":[{"rounded-l":de()}],"rounded-ss":[{"rounded-ss":de()}],"rounded-se":[{"rounded-se":de()}],"rounded-ee":[{"rounded-ee":de()}],"rounded-es":[{"rounded-es":de()}],"rounded-tl":[{"rounded-tl":de()}],"rounded-tr":[{"rounded-tr":de()}],"rounded-br":[{"rounded-br":de()}],"rounded-bl":[{"rounded-bl":de()}],"border-w":[{border:ye()}],"border-w-x":[{"border-x":ye()}],"border-w-y":[{"border-y":ye()}],"border-w-s":[{"border-s":ye()}],"border-w-e":[{"border-e":ye()}],"border-w-bs":[{"border-bs":ye()}],"border-w-be":[{"border-be":ye()}],"border-w-t":[{"border-t":ye()}],"border-w-r":[{"border-r":ye()}],"border-w-b":[{"border-b":ye()}],"border-w-l":[{"border-l":ye()}],"divide-x":[{"divide-x":ye()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ye()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Le(),"hidden","none"]}],"divide-style":[{divide:[...Le(),"hidden","none"]}],"border-color":[{border:J()}],"border-color-x":[{"border-x":J()}],"border-color-y":[{"border-y":J()}],"border-color-s":[{"border-s":J()}],"border-color-e":[{"border-e":J()}],"border-color-bs":[{"border-bs":J()}],"border-color-be":[{"border-be":J()}],"border-color-t":[{"border-t":J()}],"border-color-r":[{"border-r":J()}],"border-color-b":[{"border-b":J()}],"border-color-l":[{"border-l":J()}],"divide-color":[{divide:J()}],"outline-style":[{outline:[...Le(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Ye,ce,le]}],"outline-w":[{outline:["",Ye,Ba,jo]}],"outline-color":[{outline:J()}],shadow:[{shadow:["","none",h,dI,cI]}],"shadow-color":[{shadow:J()}],"inset-shadow":[{"inset-shadow":["none",p,dI,cI]}],"inset-shadow-color":[{"inset-shadow":J()}],"ring-w":[{ring:ye()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:J()}],"ring-offset-w":[{"ring-offset":[Ye,jo]}],"ring-offset-color":[{"ring-offset":J()}],"inset-ring-w":[{"inset-ring":ye()}],"inset-ring-color":[{"inset-ring":J()}],"text-shadow":[{"text-shadow":["none",m,dI,cI]}],"text-shadow-color":[{"text-shadow":J()}],opacity:[{opacity:[Ye,ce,le]}],"mix-blend":[{"mix-blend":[...at(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":at()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[Ye]}],"mask-image-linear-from-pos":[{"mask-linear-from":me()}],"mask-image-linear-to-pos":[{"mask-linear-to":me()}],"mask-image-linear-from-color":[{"mask-linear-from":J()}],"mask-image-linear-to-color":[{"mask-linear-to":J()}],"mask-image-t-from-pos":[{"mask-t-from":me()}],"mask-image-t-to-pos":[{"mask-t-to":me()}],"mask-image-t-from-color":[{"mask-t-from":J()}],"mask-image-t-to-color":[{"mask-t-to":J()}],"mask-image-r-from-pos":[{"mask-r-from":me()}],"mask-image-r-to-pos":[{"mask-r-to":me()}],"mask-image-r-from-color":[{"mask-r-from":J()}],"mask-image-r-to-color":[{"mask-r-to":J()}],"mask-image-b-from-pos":[{"mask-b-from":me()}],"mask-image-b-to-pos":[{"mask-b-to":me()}],"mask-image-b-from-color":[{"mask-b-from":J()}],"mask-image-b-to-color":[{"mask-b-to":J()}],"mask-image-l-from-pos":[{"mask-l-from":me()}],"mask-image-l-to-pos":[{"mask-l-to":me()}],"mask-image-l-from-color":[{"mask-l-from":J()}],"mask-image-l-to-color":[{"mask-l-to":J()}],"mask-image-x-from-pos":[{"mask-x-from":me()}],"mask-image-x-to-pos":[{"mask-x-to":me()}],"mask-image-x-from-color":[{"mask-x-from":J()}],"mask-image-x-to-color":[{"mask-x-to":J()}],"mask-image-y-from-pos":[{"mask-y-from":me()}],"mask-image-y-to-pos":[{"mask-y-to":me()}],"mask-image-y-from-color":[{"mask-y-from":J()}],"mask-image-y-to-color":[{"mask-y-to":J()}],"mask-image-radial":[{"mask-radial":[ce,le]}],"mask-image-radial-from-pos":[{"mask-radial-from":me()}],"mask-image-radial-to-pos":[{"mask-radial-to":me()}],"mask-image-radial-from-color":[{"mask-radial-from":J()}],"mask-image-radial-to-color":[{"mask-radial-to":J()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":B()}],"mask-image-conic-pos":[{"mask-conic":[Ye]}],"mask-image-conic-from-pos":[{"mask-conic-from":me()}],"mask-image-conic-to-pos":[{"mask-conic-to":me()}],"mask-image-conic-from-color":[{"mask-conic-from":J()}],"mask-image-conic-to-color":[{"mask-conic-to":J()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:T()}],"mask-repeat":[{mask:L()}],"mask-size":[{mask:te()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",ce,le]}],filter:[{filter:["","none",ce,le]}],blur:[{blur:sn()}],brightness:[{brightness:[Ye,ce,le]}],contrast:[{contrast:[Ye,ce,le]}],"drop-shadow":[{"drop-shadow":["","none",y,dI,cI]}],"drop-shadow-color":[{"drop-shadow":J()}],grayscale:[{grayscale:["",Ye,ce,le]}],"hue-rotate":[{"hue-rotate":[Ye,ce,le]}],invert:[{invert:["",Ye,ce,le]}],saturate:[{saturate:[Ye,ce,le]}],sepia:[{sepia:["",Ye,ce,le]}],"backdrop-filter":[{"backdrop-filter":["","none",ce,le]}],"backdrop-blur":[{"backdrop-blur":sn()}],"backdrop-brightness":[{"backdrop-brightness":[Ye,ce,le]}],"backdrop-contrast":[{"backdrop-contrast":[Ye,ce,le]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Ye,ce,le]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Ye,ce,le]}],"backdrop-invert":[{"backdrop-invert":["",Ye,ce,le]}],"backdrop-opacity":[{"backdrop-opacity":[Ye,ce,le]}],"backdrop-saturate":[{"backdrop-saturate":[Ye,ce,le]}],"backdrop-sepia":[{"backdrop-sepia":["",Ye,ce,le]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":Y()}],"border-spacing-x":[{"border-spacing-x":Y()}],"border-spacing-y":[{"border-spacing-y":Y()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",ce,le]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Ye,"initial",ce,le]}],ease:[{ease:["linear","initial",E,ce,le]}],delay:[{delay:[Ye,ce,le]}],animate:[{animate:["none",N,ce,le]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[S,ce,le]}],"perspective-origin":[{"perspective-origin":W()}],rotate:[{rotate:z()}],"rotate-x":[{"rotate-x":z()}],"rotate-y":[{"rotate-y":z()}],"rotate-z":[{"rotate-z":z()}],scale:[{scale:fe()}],"scale-x":[{"scale-x":fe()}],"scale-y":[{"scale-y":fe()}],"scale-z":[{"scale-z":fe()}],"scale-3d":["scale-3d"],skew:[{skew:Ze()}],"skew-x":[{"skew-x":Ze()}],"skew-y":[{"skew-y":Ze()}],transform:[{transform:[ce,le,"","none","gpu","cpu"]}],"transform-origin":[{origin:W()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:je()}],"translate-x":[{"translate-x":je()}],"translate-y":[{"translate-y":je()}],"translate-z":[{"translate-z":je()}],"translate-none":["translate-none"],zoom:[{zoom:[Bi,ce,le]}],accent:[{accent:J()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:J()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",ce,le]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":J()}],"scrollbar-track-color":[{"scrollbar-track":J()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":Y()}],"scroll-mx":[{"scroll-mx":Y()}],"scroll-my":[{"scroll-my":Y()}],"scroll-ms":[{"scroll-ms":Y()}],"scroll-me":[{"scroll-me":Y()}],"scroll-mbs":[{"scroll-mbs":Y()}],"scroll-mbe":[{"scroll-mbe":Y()}],"scroll-mt":[{"scroll-mt":Y()}],"scroll-mr":[{"scroll-mr":Y()}],"scroll-mb":[{"scroll-mb":Y()}],"scroll-ml":[{"scroll-ml":Y()}],"scroll-p":[{"scroll-p":Y()}],"scroll-px":[{"scroll-px":Y()}],"scroll-py":[{"scroll-py":Y()}],"scroll-ps":[{"scroll-ps":Y()}],"scroll-pe":[{"scroll-pe":Y()}],"scroll-pbs":[{"scroll-pbs":Y()}],"scroll-pbe":[{"scroll-pbe":Y()}],"scroll-pt":[{"scroll-pt":Y()}],"scroll-pr":[{"scroll-pr":Y()}],"scroll-pb":[{"scroll-pb":Y()}],"scroll-pl":[{"scroll-pl":Y()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",ce,le]}],fill:[{fill:["none",...J()]}],"stroke-w":[{stroke:[Ye,Ba,jo,c2]}],stroke:[{stroke:["none",...J()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function Pa(...n){return vee(e2(n))}const yee=Gu("group/alert relative grid w-full gap-0.5 rounded-lg border px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-card text-card-foreground",destructive:"bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current"}},defaultVariants:{variant:"default"}});function Hu({className:n,variant:e,...t}){return f.jsx("div",{"data-slot":"alert",role:"alert",className:Pa(yee({variant:e}),n),...t})}function Ku({className:n,...e}){return f.jsx("div",{"data-slot":"alert-title",className:Pa("font-medium group-has-[>svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground",n),...e})}function Wu({className:n,...e}){return f.jsx("div",{"data-slot":"alert-description",className:Pa("text-sm text-balance text-muted-foreground md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4",n),...e})}var bee=Object.defineProperty,Qu=(n,e)=>bee(n,"name",{value:e,configurable:!0});function Xu(n,e){if(typeof n=="function")return n(e);n!=null&&(n.current=e)}Qu(Xu,"setRef");function w2(...n){return e=>{let t=!1;const i=n.map(o=>{const r=Xu(o,e);return!t&&typeof r=="function"&&(t=!0),r});if(t)return()=>{for(let o=0;owee(n,"name",{value:e,configurable:!0});function E2(n){const e=F.forwardRef((t,i)=>{let{children:o,...r}=t,A=null,I=!1;const l=[];$u(o)&&typeof uI=="function"&&(o=uI(o._payload)),F.Children.forEach(o,m=>{if(D2(m)){I=!0;const y=m;let w="child"in y.props?y.props.child:y.props.children;$u(w)&&typeof uI=="function"&&(w=uI(w._payload)),A=Eee(y,w),l.push(A?.props?.children)}else l.push(m)}),A?A=F.cloneElement(A,void 0,l):!I&&F.Children.count(o)===1&&F.isValidElement(o)&&(A=o);const c=A?N2(A):void 0,h=x2(i,c);if(!A){if(o||o===0)throw new Error(I?Oee(n):Tee(n));return o}const p=O2(r,A.props??{});return A.type!==F.Fragment&&(p.ref=i?h:c),F.cloneElement(A,p)});return e.displayName=`${n}.Slot`,e}xi(E2,"createSlot");var S2=E2("Slot"),T2=Symbol.for("radix.slottable");function xee(n){const e=xi(t=>"child"in t?t.children(t.child):t.children,"Slottable");return e.displayName=`${n}.Slottable`,e.__radixId=T2,e}xi(xee,"createSlottable");var Eee=xi((n,e)=>{if("child"in n.props){const t=n.props.child;return F.isValidElement(t)?F.cloneElement(t,void 0,n.props.children(t.props.children)):null}return F.isValidElement(e)?e:null},"getSlottableElementFromSlottable");function O2(n,e){const t={...e};for(const i in e){const o=n[i],r=e[i];/^on[A-Z]/.test(i)?o&&r?t[i]=(...I)=>{const l=r(...I);return o(...I),l}:o&&(t[i]=o):i==="style"?t[i]={...o,...r}:i==="className"&&(t[i]=[o,r].filter(Boolean).join(" "))}return{...n,...t}}xi(O2,"mergeProps");function N2(n){let e=Object.getOwnPropertyDescriptor(n.props,"ref")?.get,t=e&&"isReactWarning"in e&&e.isReactWarning;return t?n.ref:(e=Object.getOwnPropertyDescriptor(n,"ref")?.get,t=e&&"isReactWarning"in e&&e.isReactWarning,t?n.props.ref:n.props.ref||n.ref)}xi(N2,"getElementRef");function D2(n){return F.isValidElement(n)&&typeof n.type=="function"&&"__radixId"in n.type&&n.type.__radixId===T2}xi(D2,"isSlottable");var See=Symbol.for("react.lazy");function $u(n){return n!=null&&typeof n=="object"&&"$$typeof"in n&&n.$$typeof===See&&"_payload"in n&&M2(n._payload)}xi($u,"isLazyComponent");function M2(n){return typeof n=="object"&&n!==null&&"then"in n}xi(M2,"isPromiseLike");var Tee=xi(n=>`${n} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,"createSlotError"),Oee=xi(n=>`${n} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,"createSlottableError"),uI=zR[" use ".trim().toString()];const Nee=Gu("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});function Gg({className:n,variant:e="default",asChild:t=!1,...i}){const o=t?S2:"span";return f.jsx(o,{"data-slot":"badge","data-variant":e,className:Pa(Nee({variant:e}),n),...i})}const Dee=Gu("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function qu({className:n,variant:e="default",size:t="default",asChild:i=!1,...o}){const r=i?S2:"button";return f.jsx(r,{"data-slot":"button","data-variant":e,"data-size":t,className:Pa(Dee({variant:e,size:t,className:n})),...o})}const Ju={resolved:0,inferred:1,ambiguous:2,unresolved:3};function Mee({graph:n,host:e}){const t=new Map,i=zee(n);for(const r of n.edges){const A=t.get(r.target);(!A||Ju[r.resolution]>Ju[A])&&t.set(r.target,r.resolution)}const o={schema:"compass.viewer.graph/1",title:`Calls from ${n.nodes.find(r=>r.id===n.rootSymbol)?.name??n.rootSymbol}`,stats:{nodes:n.nodes.length,edges:n.edges.length,communities:4,aggregated:!1},nodes:n.nodes.map(r=>({id:r.id,label:r.name,kind:r.unresolved?"Unresolved call":"Function",community:Ju[t.get(r.id)??"resolved"],communityName:t.get(r.id)??"resolved",depth:i.get(r.id),root:r.id===n.rootSymbol,source:kee(r)})),edges:n.edges.map(r=>({id:r.id,source:r.source,target:r.target,relation:`${r.callee} · ${r.resolution}`,confidence:r.resolution==="resolved"?"extracted":r.resolution==="inferred"?"inferred":"ambiguous"})),communities:[{id:0,label:"Resolved",color:"#59A14F",hidden:!1},{id:1,label:"Inferred",color:"#4E79A7",hidden:!1},{id:2,label:"Ambiguous",color:"#F28E2B",hidden:!1},{id:3,label:"Unresolved",color:"#E15759",hidden:!1}],hyperedges:[]};return f.jsx(ju,{model:o,host:e,preferredLayout:"hierarchical"})}function zee(n){const e=new Map;for(const o of n.edges){const r=e.get(o.source)??[];r.push(o.target),e.set(o.source,r);const A=e.get(o.target)??[];A.push(o.source),e.set(o.target,A)}const t=new Map([[n.rootSymbol,0]]),i=[n.rootSymbol];for(;i.length>0;){const o=i.shift();if(o===void 0)break;const r=t.get(o)??0;for(const A of e.get(o)??[])t.has(A)||(t.set(A,r+1),i.push(A))}return t}function kee(n){if(n.anchor)return{file:n.anchor.source_file,startByte:n.anchor.start_byte,endByte:n.anchor.end_byte};if(n.file)return{file:n.file,...n.startLine!=null?{startLine:n.startLine}:{},...n.endLine!=null?{endLine:n.endLine}:{},...n.startByte!=null?{startByte:n.startByte}:{},...n.endByte!=null?{endByte:n.endByte}:{}}}function Ree({coverage:n}){return!n.partial&&n.unresolved===0&&n.ambiguous===0?null:f.jsxs(Hu,{children:[f.jsx(Ku,{children:"Partial call coverage"}),f.jsx(Wu,{children:n.warning})]})}function _ee({graph:n,host:e}){const[t,i]=F.useState(!1),o=t?n.continuations:n.continuations.slice(0,20),r=n.direction==="callers"?"No callers found":n.direction==="callees"?"No callees found":"No calls found";return f.jsxs("div",{className:"call-graph-view relative h-screen",children:[f.jsx(Mee,{graph:n,host:e}),f.jsx("div",{className:"call-graph-direction absolute top-2 left-1/2 z-20 flex -translate-x-1/2 gap-1 rounded-md border bg-popover/95 p-1 shadow-lg backdrop-blur",role:"group","aria-label":"Call graph direction",children:[["callers","Callers"],["both","Both"],["callees","Callees"]].map(([A,I])=>f.jsx(qu,{size:"sm",variant:n.direction===A?"secondary":"ghost","aria-pressed":n.direction===A,disabled:!e.changeDirection,onClick:()=>{n.direction!==A&&e.changeDirection?.(A)},children:I},A))}),f.jsxs("section",{className:"call-graph-summary absolute bottom-3 left-3 z-20 flex max-w-[min(44rem,calc(100%-1.5rem))] flex-col gap-2 rounded-md border bg-popover/95 p-3 text-popover-foreground shadow-xl backdrop-blur",children:[f.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[f.jsxs(Gg,{variant:"outline",children:[f.jsx(rc,{})," depth ",n.depth]}),f.jsxs(Gg,{variant:"outline",children:[n.nodes.length," ",n.nodes.length===1?"node":"nodes"]}),f.jsxs(Gg,{variant:"outline",children:[n.edges.length," ",n.edges.length===1?"edge":"edges"]}),f.jsxs(Gg,{variant:"secondary",children:[n.coverage.resolved," resolved"]}),f.jsxs(Gg,{variant:"outline",children:[n.coverage.inferred," inferred"]}),f.jsxs(Gg,{variant:"outline",children:[n.coverage.ambiguous," ambiguous"]}),f.jsxs(Gg,{variant:"destructive",children:[n.coverage.unresolved," unresolved"]}),n.coverage.evidenceLayer&&f.jsx(Gg,{variant:"outline",children:jee(n.coverage.evidenceLayer)})]}),n.edges.length===0&&f.jsxs(Hu,{children:[f.jsx(Ku,{children:r}),f.jsx(Wu,{children:"Compass found the root function but no represented relationships in this direction."})]}),n.truncated&&f.jsxs(Hu,{children:[f.jsx(UA,{}),f.jsx(Ku,{children:"Partial call graph"}),f.jsx(Wu,{children:"Compass reached the configured graph limit. Counts and paths may be incomplete."})]}),f.jsx(Ree,{coverage:n.coverage}),n.continuations.length>0&&f.jsxs("div",{children:[f.jsx("div",{className:"flex max-h-24 flex-wrap gap-1 overflow-auto","aria-label":"Call graph continuations",children:o.map(A=>f.jsxs(qu,{size:"xs",variant:"outline",disabled:!e.expand,onClick:()=>e.expand?.(A.symbol,A.direction,A.nextDepth),children:[A.direction==="callers"?f.jsx(GR,{}):A.direction==="callees"?f.jsx(BR,{}):f.jsx(Vm,{}),"Expand ",A.direction]},`${A.symbol}:${A.direction}:${A.nextDepth}`))}),!t&&n.continuations.length>o.length&&f.jsxs("div",{className:"mt-2 flex flex-wrap items-center justify-between gap-2",children:[f.jsxs("p",{className:"text-xs text-muted-foreground",role:"status",children:["Showing ",o.length," of ",n.continuations.length," continuations"]}),f.jsxs(qu,{size:"xs",variant:"outline",onClick:()=>i(!0),children:["Show all ",n.continuations.length," continuations"]})]})]})]})]})}function jee(n){return n.split("_").map((e,t)=>t===0?`${e.slice(0,1).toUpperCase()}${e.slice(1)}`:e).join(" ")}const z2=0;function Zee(n,e){const t=new Set(n.nodes.map(l=>l.id)),i=n.edges.filter(l=>t.has(l.source)&&t.has(l.target)).map(Pee),o=new Map;for(const l of i)o.set(l.source,(o.get(l.source)??0)+1),o.set(l.target,(o.get(l.target)??0)+1);const r=Gee(n),A=new Set(n.paths.flatMap(l=>l.nodeIds.slice(0,1))),I=n.nodes.map(l=>Bee(l,o.get(l.id)??0,r.get(l.id),A.has(l.id)));return{schema:"compass.viewer.graph/1",title:e,stats:{nodes:I.length,edges:i.length,communities:I.length>0?1:0,aggregated:!1},nodes:I,edges:i,communities:I.length>0?[{id:z2,label:"Query result",color:"#6f7bf7",hidden:!1}]:[],hyperedges:[]}}function Bee(n,e,t,i){const o=n.details?.type==="symbol"?n.details.data.signature??void 0:void 0;return{id:n.id,label:n.name,kind:n.kind,community:z2,communityName:"Query result",degree:e,...t!==void 0?{depth:t}:{},...i?{root:!0}:{},...n.language?{language:n.language}:{},...o?{signature:o}:{},...n.source?{source:n.source}:{},codeEvidence:n.evidence}}function Pee(n){const e=Lee(n);return{id:n.id,source:n.source,target:n.target,relation:n.kind,...n.relationshipSite?{relationshipSite:n.relationshipSite}:{},...n.details?{details:n.details}:{},...e?{confidence:e}:{},codeEvidence:n.evidence}}function Lee(n){return n.evidence.some(e=>e.confidence==="ambiguous")?"ambiguous":n.evidence.some(e=>e.confidence==="inferred")?"inferred":n.evidence.length>0?"extracted":void 0}function Gee(n){const e=new Map;for(const t of n.paths)t.nodeIds.forEach((i,o)=>{const r=e.get(i);(r===void 0||o[x.id,x])),i=new Map(e.nodes.map(x=>[x.id,x])),o=new Map,r=[],A=k2(i,t),I=k2(t,i),l=new Map(Vee(i,t).map(x=>[x,Qm(t.get(x),i.get(x),"node")])),c=[...l.entries()].filter(([,x])=>x.fields.length>0).map(([x])=>x),h=Yee(n.edges,e.edges),p=h.matched.map(({before:x,after:E})=>({before:x,after:E,evidence:Uee(x,E)})).filter(({evidence:x})=>x.fields.length>0);for(const x of A)eh(o,i.get(x),"added",YA(void 0,i.get(x)));for(const x of I)eh(o,t.get(x),"removed",YA(t.get(x),void 0));for(const x of c)eh(o,i.get(x),"changed",l.get(x));for(const x of h.added)r.push({...x,change:"added",evidence:YA(void 0,x)}),th(o,x,t,i);for(const x of h.removed)r.push({...x,change:"removed",evidence:YA(x,void 0)}),th(o,x,t,i);for(const{after:x,evidence:E}of p)r.push({...x,change:"changed",evidence:E}),th(o,x,t,i);const m=[...o.values()].sort((x,E)=>x.id.localeCompare(E.id));r.sort((x,E)=>x.id.localeCompare(E.id));const y=Hee(r),w=new Set(m.map(x=>x.community)),S=[...e.communities,...n.communities.filter(x=>!e.communities.some(E=>E.id===x.id))].filter(x=>w.has(x.id));return{addedNodes:A.length,removedNodes:I.length,changedNodes:c.length,addedEdges:h.added.length,removedEdges:h.removed.length,changedEdges:p.length,graph:{...e,title:`Graph delta · ${e.title}`,stats:{...e.stats,nodes:m.length,edges:y.length,communities:S.length,aggregated:n.stats.aggregated||e.stats.aggregated},nodes:m,edges:y,communities:S,hyperedges:[]}}}function k2(n,e){return[...n.keys()].filter(t=>!e.has(t))}function Vee(n,e){return[...n.keys()].filter(t=>e.has(t))}function eh(n,e,t,i){e&&n.set(e.id,{...e,change:t,...i?{evidence:i}:{}})}function R2(n,e,t,i){if(n.has(e))return;const o=i.get(e)??t.get(e);o&&n.set(e,{...o,change:"unchanged"})}function th(n,e,t,i){R2(n,e.source,t,i),R2(n,e.target,t,i)}function Uee(n,e){return Qm({...n,id:e.id},e,"edge")}function Yee(n,e){const t=new Set,i=new Set,o=[],r=(I,l)=>{t.add(I),i.add(l),o.push({before:n[I],after:e[l]})};_2(n,e,t,i,r,I=>fI(I.id)?void 0:I.id),_2(n,e,t,i,r,I=>fI(I.id)?nh(I):void 0);const A=new Map;n.forEach((I,l)=>{if(t.has(l)||!fI(I.id))return;const c=A.get(hI(I))??{parent:[],current:[]};c.parent.push(l),A.set(hI(I),c)}),e.forEach((I,l)=>{if(i.has(l)||!fI(I.id))return;const c=A.get(hI(I))??{parent:[],current:[]};c.current.push(l),A.set(hI(I),c)});for(const I of A.values()){I.parent.sort((c,h)=>j2(n[c],n[h])),I.current.sort((c,h)=>j2(e[c],e[h]));const l=Math.min(I.parent.length,I.current.length);for(let c=0;c!i.has(l)),removed:n.filter((I,l)=>!t.has(l))}}function _2(n,e,t,i,o,r){const A=new Map;e.forEach((I,l)=>{if(i.has(l))return;const c=r(I);if(c===void 0)return;const h=A.get(c)??[];h.push(l),A.set(c,h)}),n.forEach((I,l)=>{if(t.has(l))return;const c=r(I);if(c===void 0)return;const p=A.get(c)?.shift();p!==void 0&&o(l,p)})}function nh(n){return JSON.stringify(d3(n,"edge"))}function hI(n){return JSON.stringify([n.source,n.target,n.relation])}function j2(n,e){return nh(n).localeCompare(nh(e))||n.id.localeCompare(e.id)}function fI(n){return/^edge-\d+-/.test(n)}function Hee(n){const e=new Map;return n.map(t=>{const i=e.get(t.id)??0;return e.set(t.id,i+1),i===0?t:{...t,id:`${t.id}::${t.change}-${i}`}})}function Kee({workbench:n,host:e,communityDetail:t,communityLoading:i,communityError:o,onBackToOverview:r,initialInspectorLayout:A,onInspectorLayoutChange:I}){const[l,c]=F.useState(()=>B2(n)??n.defaultView),h=n.views.find(m=>m.id===l)??n.views[0];F.useEffect(()=>{const m=()=>{const y=B2(n);y&&c(y)};return window.addEventListener("hashchange",m),()=>window.removeEventListener("hashchange",m)},[n]);const p=m=>{c(m);const y=`view=${encodeURIComponent(m)}`;window.location.hash.slice(1)!==y&&(window.location.hash=y)};return h?f.jsxs("div",{className:"visualization-workbench",children:[f.jsxs("aside",{className:"visualization-rail",children:[f.jsxs("header",{children:[f.jsx("span",{className:"visualization-bearing","aria-hidden":"true",children:f.jsx(C3,{})}),f.jsxs("span",{children:[f.jsx("strong",{children:"Compass"}),f.jsx("small",{children:"Graph workbench"})]})]}),f.jsx("nav",{"aria-label":"Graph views",children:n.views.map(m=>f.jsxs("button",{type:"button","aria-current":m.id===h.id?"page":void 0,onClick:()=>p(m.id),children:[f.jsx(Jee,{view:m}),f.jsxs("span",{children:[f.jsx("strong",{children:m.title}),f.jsx("small",{children:m.description})]}),f.jsx("i",{"data-status":m.coverage.status,title:`${m.coverage.status} view`})]},m.id))}),f.jsxs("footer",{children:[f.jsx("span",{children:"Snapshot"}),f.jsx("code",{children:ete(n.graphIdentity)})]})]}),f.jsxs("main",{className:"visualization-main",children:[f.jsxs("header",{className:"visualization-context",children:[f.jsxs("div",{children:[f.jsx("span",{children:tte(h)}),f.jsx("strong",{children:h.title})]}),f.jsxs("div",{className:"visualization-coverage","data-status":h.coverage.status,children:[h.kind!=="call"&&f.jsxs(f.Fragment,{children:[f.jsxs("span",{children:[h.coverage.nodes.toLocaleString()," nodes"]}),f.jsxs("span",{children:[h.coverage.edges.toLocaleString()," relationships"]})]}),f.jsx("strong",{children:nte(h)})]})]}),f.jsx("section",{className:"visualization-stage","aria-label":`${h.title} visualization`,children:f.jsx(Wee,{view:h,host:e,communityDetail:t,communityLoading:i,communityError:o,onBackToOverview:r,initialInspectorLayout:A,onInspectorLayoutChange:I},h.id)})]})]}):null}function Wee({view:n,host:e,communityDetail:t,communityLoading:i,communityError:o,onBackToOverview:r,initialInspectorLayout:A,onInspectorLayoutChange:I}){if(n.kind==="call")return f.jsx(_ee,{graph:n.graph,host:{openSource:e.openSource,...e.expandCall?{expand:e.expandCall}:{},...e.changeCallDirection?{changeDirection:e.changeCallDirection}:{}}});if(n.kind==="architecture")return f.jsx(Qee,{model:n.model,host:e});if(n.kind==="impact")return f.jsx(ih,{model:Zee(n.result,n.title),host:e,queryResult:n.result,preferredLayout:"hierarchical"});if(n.kind==="history"){const c=Fee(n.before,n.after);return f.jsxs("div",{className:"workbench-history-view",children:[f.jsxs("div",{className:"workbench-history-banner",children:[f.jsx(Lm,{"aria-hidden":"true"}),f.jsxs("span",{children:[f.jsxs("strong",{children:[n.baseRevision," → ",n.targetRevision]}),f.jsxs("small",{children:["+",c.addedNodes," / −",c.removedNodes," / Δ",c.changedNodes," nodes"]})]})]}),f.jsx(ih,{model:c.graph,host:e,preferredLayout:"grid"})]})}const l=n.kind==="affected"?"hierarchical":n.kind==="artifact"?n.lens==="routes"?"hierarchical":"grid":"automatic";return f.jsx(ih,{model:n.model,host:e,preferredLayout:l,communityDetails:n.kind==="code"?n.communityDetails:void 0,communityDetail:n.kind==="code"?t:void 0,communityLoading:n.kind==="code"?i:void 0,communityError:n.kind==="code"?o:void 0,onBackToOverview:n.kind==="code"?r:void 0,initialInspectorLayout:A,onInspectorLayoutChange:I})}function ih({model:n,host:e,queryResult:t,preferredLayout:i,communityDetails:o,communityDetail:r,communityLoading:A,communityError:I,onBackToOverview:l,initialInspectorLayout:c,onInspectorLayoutChange:h}){const[p,m]=F.useState(""),[y,w]=F.useState(""),[S,x]=F.useState(""),[E,N]=F.useState(""),[P,B]=F.useState(),[W,ne]=F.useState(!1),_=F.useId(),Y=F.useRef(null),Ce=F.useRef(null),_e=(P===void 0?void 0:{communityId:P,model:o?.[String(P)]??n})??r,De=_e?.model??n,et=_e?`community-${_e.communityId}`:"overview",Te=F.useMemo(()=>Xee(De),[De]),ae=F.useMemo(()=>$ee(De,{relation:p,evidence:y,kind:S,language:E}),[De,y,S,E,p]);F.useEffect(()=>{m(""),w(""),x(""),N(""),ne(!1)},[et]),F.useEffect(()=>{if(!W)return;const J=L=>{L.key==="Escape"&&(ne(!1),Y.current?.focus())},T=L=>{const te=L.target;Y.current?.contains(te)||Ce.current?.contains(te)||ne(!1)};return document.addEventListener("keydown",J),document.addEventListener("pointerdown",T),()=>{document.removeEventListener("keydown",J),document.removeEventListener("pointerdown",T)}},[W]);const M=F.useCallback(()=>{m(""),w(""),x(""),N("")},[]),k=F.useCallback(()=>ne(!1),[]),ee=[p,y,S,E].filter(Boolean).length,Ie=ee>0&&ae.nodes.length===0;return f.jsx("div",{className:"workbench-graph-lens",children:f.jsx(ju,{model:_e?n:ae,communityDetail:_e?{..._e,model:ae}:void 0,communityLoading:A,communityError:I,onBackToOverview:P===void 0?l:()=>B(void 0),initialInspectorLayout:c,onInspectorLayoutChange:h,host:{...e,openCommunity:J=>{o?.[String(J)]?B(J):e.openCommunity?.(J)}},queryResult:t,preferredLayout:i,toolbarLeading:f.jsxs("button",{ref:Y,className:"workbench-filter-trigger",type:"button","aria-label":"Graph filters","aria-expanded":W,"aria-controls":_,onClick:()=>ne(J=>!J),children:[f.jsx(a3,{"aria-hidden":"true"}),f.jsx("span",{children:"Filters"}),ee>0?f.jsx("b",{children:ee}):null,f.jsxs("small",{children:[ae.nodes.length.toLocaleString()," / ",De.nodes.length.toLocaleString()]})]}),toolbarLeadingPanel:W?f.jsxs("div",{ref:Ce,id:_,className:"workbench-filter-popover",role:"region","aria-label":"Graph filter options",children:[f.jsxs("header",{children:[f.jsxs("span",{children:[f.jsx("strong",{children:"Filter graph"}),f.jsx("small",{children:"Refine visible nodes and relationships"})]}),f.jsx("button",{type:"button",disabled:ee===0,onClick:M,children:"Clear filters"})]}),f.jsx(Fs,{label:"Relationship",value:p,values:Te.relations,onChange:m}),f.jsx(Fs,{label:"Evidence",value:y,values:Te.evidence,onChange:w}),f.jsx(Fs,{label:"Node kind",value:S,values:Te.kinds,onChange:x}),f.jsx(Fs,{label:"Language",value:E,values:Te.languages,onChange:N}),f.jsx("footer",{role:"status",children:Ie?"No nodes match these filters":`Showing ${ae.nodes.length.toLocaleString()} of ${De.nodes.length.toLocaleString()} nodes`})]}):void 0,toolbarLeadingOpen:W,onToolbarLeadingClose:k,stageOverlay:De.nodes.length===0?f.jsx(Z2,{title:"This view has no graph nodes",detail:"The exported graph lens did not contain any nodes to visualize."}):Ie&&!W?f.jsx(Z2,{title:"No nodes match these filters",detail:"Clear one or more filters to restore the graph.",onClear:M}):void 0})})}function Z2({title:n,detail:e,onClear:t}){return f.jsxs("div",{className:"workbench-graph-empty",role:"status",children:[f.jsx(ac,{"aria-hidden":"true"}),f.jsx("strong",{children:n}),f.jsx("span",{children:e}),t?f.jsx("button",{type:"button",onClick:t,children:"Clear filters"}):null]})}function Fs({label:n,value:e,values:t,onChange:i}){return f.jsxs("label",{children:[f.jsx("span",{children:n}),f.jsxs("select",{value:e,onChange:o=>i(o.target.value),children:[f.jsx("option",{value:"",children:"All"}),t.map(o=>f.jsx("option",{value:o,children:gh(o)},o))]})]})}function Qee({model:n,host:e}){const[t,i]=F.useState("production"),[o,r]=F.useState("all"),A=F.useMemo(()=>qee(n,t,o),[o,n,t]),I=A.sections.find(m=>m.nodeCount>0),[l,c]=F.useState(I?{kind:"section",id:I.id}:void 0),h=l?.kind==="section"?n.sections.find(m=>m.id===l.id):void 0,p=l?.kind==="route"?A.routes.find(m=>m.id===l.id):void 0;return f.jsxs("div",{className:"workbench-architecture",children:[f.jsxs("div",{className:"workbench-filter-strip","aria-label":"Architecture filters",children:[f.jsx(Fs,{label:"Source scope",value:t,values:["production","all"],onChange:m=>i(m)}),f.jsx(Fs,{label:"Evidence",value:o,values:["all","extracted","inferred","ambiguous"],onChange:m=>r(m)}),f.jsxs("span",{role:"status",children:[A.statistics.visibleCalls.toLocaleString()," visible calls"]})]}),f.jsxs("div",{className:"workbench-architecture-body",children:[f.jsx(EJ,{overview:A,selection:l,onSelect:c}),f.jsx("aside",{"aria-label":"Architecture details",children:h?f.jsxs(f.Fragment,{children:[f.jsx("span",{children:"Subsystem"}),f.jsx("h2",{children:h.name}),f.jsxs("p",{children:[h.nodes.length.toLocaleString()," symbols · ",h.edges.length.toLocaleString()," internal calls"]}),f.jsx("div",{className:"workbench-symbol-list",children:h.nodes.slice(0,100).map(m=>f.jsxs("button",{type:"button",disabled:!m.sourceFile,onClick:()=>m.sourceFile&&e.openSource({file:m.sourceFile}),children:[f.jsx("strong",{children:m.label}),f.jsxs("small",{children:[m.kind,m.sourceFile?` · ${m.sourceFile}`:""]})]},m.id))})]}):p?f.jsxs(f.Fragment,{children:[f.jsx("span",{children:"Subsystem route"}),f.jsxs("h2",{children:[P2(A,p.sourceSection)," → ",P2(A,p.targetSection)]}),f.jsxs("p",{children:[p.calls.toLocaleString()," calls cross this boundary."]})]}):f.jsx("p",{children:"Select a subsystem or route."})})]})]})}function Xee(n){const e=t=>[...new Set(t.filter(i=>!!i))].sort();return{relations:e(n.edges.map(t=>t.relation)),evidence:e(n.edges.map(t=>t.confidence)),kinds:e(n.nodes.map(t=>t.kind)),languages:e(n.nodes.map(t=>t.language))}}function $ee(n,e){const t=n.nodes.filter(I=>(!e.kind||I.kind===e.kind)&&(!e.language||I.language===e.language));let i=new Set(t.map(I=>I.id));const o=n.edges.filter(I=>i.has(I.source)&&i.has(I.target)&&(!e.relation||I.relation===e.relation)&&(!e.evidence||I.confidence===e.evidence));if(e.relation||e.evidence){const I=new Set(o.flatMap(l=>[l.source,l.target]));for(const l of t)l.root&&I.add(l.id);i=I}const r=t.filter(I=>i.has(I.id)),A=new Set(r.map(I=>I.community));return{...n,stats:{...n.stats,nodes:r.length,edges:o.length,communities:A.size},nodes:r,edges:o,communities:n.communities.filter(I=>A.has(I.id))}}function qee(n,e,t){const i=n.sections.filter(S=>S.id!=="overview"),o=S=>e==="all"||S==="production",r=new Map(i.flatMap(S=>S.nodes).map(S=>[S.id,S])),A=S=>(t==="all"||S.confidence===t)&&o(r.get(S.source)?.scope??"unknown")&&o(r.get(S.target)?.scope??"unknown"),I=new Map;for(const S of n.crossSectionCalls.filter(A)){const x=`${S.sourceSection}->${S.targetSection}`,E=I.get(x)??[];E.push(S),I.set(x,E)}const l=[...I.entries()].map(([S,x])=>({id:S,sourceSection:x[0].sourceSection,targetSection:x[0].targetSection,calls:x.length,extracted:x.filter(E=>E.confidence==="extracted").length,inferred:x.filter(E=>E.confidence==="inferred").length,ambiguous:x.filter(E=>E.confidence==="ambiguous").length})).sort((S,x)=>x.calls-S.calls||S.id.localeCompare(x.id)),c=new Map,h=new Map;for(const S of l)h.set(S.sourceSection,(h.get(S.sourceSection)??0)+S.calls),c.set(S.targetSection,(c.get(S.targetSection)??0)+S.calls);const p=i.map(S=>{const x={production:0,test:0,generated:0,vendor:0,unknown:0};for(const E of S.nodes)x[E.scope]+=1;return{id:S.id,name:S.name,nodeCount:S.nodes.filter(E=>o(E.scope)).length,totalNodeCount:S.nodes.length,internalCallCount:S.edges.filter(A).length,incomingCalls:c.get(S.id)??0,outgoingCalls:h.get(S.id)??0,scopes:x}}),m=p.reduce((S,x)=>S+x.nodeCount,0),y=p.reduce((S,x)=>S+x.internalCallCount,0),w=l.reduce((S,x)=>S+x.calls,0);return{title:n.title,scope:e,evidence:t,sections:p,routes:l,statistics:{visibleNodes:m,totalNodes:n.statistics.nodes,visibleCalls:y+w,totalCalls:n.statistics.edges,communities:n.statistics.communities,extracted:n.statistics.extracted,inferred:n.statistics.inferred,ambiguous:n.statistics.ambiguous},coverage:n.coverage,provenance:n.provenance}}function Jee({view:n}){const e=n.kind==="code"?ac:n.kind==="call"?rc:n.kind==="impact"?YR:n.kind==="architecture"?VR:n.kind==="history"?Lm:n.kind==="affected"?s3:n.lens==="routes"?Ym:n.lens==="provenance"?UR:g3;return f.jsx(e,{"aria-hidden":"true"})}function B2(n){const e=new URLSearchParams(window.location.hash.slice(1)).get("view");return e&&n.views.some(t=>t.id===e)?e:void 0}function ete(n){const e=n.startsWith("sha256:")?n.slice(7):n;return e.length>12?e.slice(0,12):e}function tte(n){return n.kind==="artifact"?`${gh(n.lens)} lens`:`${gh(n.kind)} graph`}function nte(n){return n.coverage.status==="complete"?"Complete":n.coverage.status==="summary"?"Community summary":"Bounded result"}function gh(n){return n.replaceAll("_"," ").replace(/\b\w/g,e=>e.toUpperCase())}function P2(n,e){return n.sections.find(t=>t.id===e)?.name??e}function ite(n){window.dispatchEvent(new CustomEvent("compass:open-source",{detail:n}))}function L2(){const n=document.getElementById("compass-viewer-root"),e=document.getElementById("compass-viewer-model");if(!n||!e)throw new Error("Compass viewer root or model is missing");const t=JSON.parse(e.textContent??""),i=$O.createRoot(n),o=MR.safeParse(t);if(o.success){i.render(f.jsx(Kee,{workbench:o.data,host:{openSource:ite}}));return}const r=bg.parse(t),A=new Map;let I,l=null,c;const h=()=>{i.render(f.jsx(ju,{model:r,communityDetail:I,communityLoading:l,communityError:c,onBackToOverview:I?()=>{I=void 0,c=void 0,h()}:void 0,host:{openSource(p){window.dispatchEvent(new CustomEvent("compass:open-source",{detail:p}))},openCommunity(p){l===null&&(l=p,c=void 0,h(),window.setTimeout(()=>{try{let m=A.get(p);if(!m){const y=document.querySelector(`script[data-compass-community="${p}"]`);if(!y)throw new Error(`Community ${p} detail is unavailable in this export.`);m=bg.parse(JSON.parse(y.textContent??"")),A.set(p,m)}I={communityId:p,model:m},window.dispatchEvent(new CustomEvent("compass:open-community",{detail:{communityId:p}}))}catch(m){c=m instanceof Error?m.message:String(m)}finally{l=null,h()}},0))}}}))};h()}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",L2,{once:!0}):L2()})(); +`;po(mq);class vq{constructor(e,t,i,o){var r,A;this.body=e,this.canvas=t,this.selectionHandler=i,this.interactionHandler=o,this.editMode=!1,this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0,this._domEventListenerCleanupQueue=[],this.temporaryUIFunctions={},this.temporaryEventFunctions=[],this.touchTime=0,this.temporaryIds={nodes:[],edges:[]},this.guiEnabled=!1,this.inMode=!1,this.selectedControlNode=void 0,this.options={},this.defaultOptions={enabled:!1,initiallyActive:!1,addNode:!0,addEdge:!0,editNode:void 0,editEdge:!0,deleteNode:!0,deleteEdge:!0,controlNodeStyle:{shape:"dot",size:6,color:{background:"#ff0000",border:"#3c3c3c",highlight:{background:"#07f968",border:"#3c3c3c"}},borderWidth:2,borderWidthSelected:2}},Vt(this.options,this.defaultOptions),this.body.emitter.on("destroy",()=>{this._clean()}),this.body.emitter.on("_dataChanged",ge(r=this._restore).call(r,this)),this.body.emitter.on("_resetData",ge(A=this._restore).call(A,this))}_restore(){this.inMode!==!1&&(this.options.initiallyActive===!0?this.enableEditMode():this.disableEditMode())}setOptions(e,t,i){t!==void 0&&(t.locale!==void 0?this.options.locale=t.locale:this.options.locale=i.locale,t.locales!==void 0?this.options.locales=t.locales:this.options.locales=i.locales),e!==void 0&&(typeof e=="boolean"?this.options.enabled=e:(this.options.enabled=!0,mt(this.options,e)),this.options.initiallyActive===!0&&(this.editMode=!0),this._setup())}toggleEditMode(){this.editMode===!0?this.disableEditMode():this.enableEditMode()}enableEditMode(){this.editMode=!0,this._clean(),this.guiEnabled===!0&&(this.manipulationDiv.style.display="block",this.closeDiv.style.display="block",this.editModeDiv.style.display="none",this.showManipulatorToolbar())}disableEditMode(){this.editMode=!1,this._clean(),this.guiEnabled===!0&&(this.manipulationDiv.style.display="none",this.closeDiv.style.display="none",this.editModeDiv.style.display="block",this._createEditButton())}showManipulatorToolbar(){if(this._clean(),this.manipulationDOM={},this.guiEnabled===!0){var e,t;this.editMode=!0,this.manipulationDiv.style.display="block",this.closeDiv.style.display="block";const i=this.selectionHandler.getSelectedNodeCount(),o=this.selectionHandler.getSelectedEdgeCount(),r=i+o,A=this.options.locales[this.options.locale];let I=!1;this.options.addNode!==!1&&(this._createAddNodeButton(A),I=!0),this.options.addEdge!==!1&&(I===!0?this._createSeperator(1):I=!0,this._createAddEdgeButton(A)),i===1&&typeof this.options.editNode=="function"?(I===!0?this._createSeperator(2):I=!0,this._createEditNodeButton(A)):o===1&&i===0&&this.options.editEdge!==!1&&(I===!0?this._createSeperator(3):I=!0,this._createEditEdgeButton(A)),r!==0&&(i>0&&this.options.deleteNode!==!1?(I===!0&&this._createSeperator(4),this._createDeleteButton(A)):i===0&&this.options.deleteEdge!==!1&&(I===!0&&this._createSeperator(4),this._createDeleteButton(A))),this._bindElementEvents(this.closeDiv,ge(e=this.toggleEditMode).call(e,this)),this._temporaryBindEvent("select",ge(t=this.showManipulatorToolbar).call(t,this))}this.body.emitter.emit("_redraw")}addNodeMode(){var e;if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addNode",this.guiEnabled===!0){var t;const i=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(i),this._createSeperator(),this._createDescription(i.addDescription||this.options.locales.en.addDescription),this._bindElementEvents(this.closeDiv,ge(t=this.toggleEditMode).call(t,this))}this._temporaryBindEvent("click",ge(e=this._performAddNode).call(e,this))}editNode(){this.editMode!==!0&&this.enableEditMode(),this._clean();const e=this.selectionHandler.getSelectedNodes()[0];if(e!==void 0)if(this.inMode="editNode",typeof this.options.editNode=="function")if(e.isCluster!==!0){const t=mt({},e.options,!1);if(t.x=e.x,t.y=e.y,this.options.editNode.length===2)this.options.editNode(t,i=>{i!=null&&this.inMode==="editNode"&&this.body.data.nodes.getDataSet().update(i),this.showManipulatorToolbar()});else throw new Error("The function for edit does not support two arguments (data, callback)")}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError);else throw new Error("No function has been configured to handle the editing of nodes.");else this.showManipulatorToolbar()}addEdgeMode(){var e,t,i,o,r;if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addEdge",this.guiEnabled===!0){var A;const I=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(I),this._createSeperator(),this._createDescription(I.edgeDescription||this.options.locales.en.edgeDescription),this._bindElementEvents(this.closeDiv,ge(A=this.toggleEditMode).call(A,this))}this._temporaryBindUI("onTouch",ge(e=this._handleConnect).call(e,this)),this._temporaryBindUI("onDragEnd",ge(t=this._finishConnect).call(t,this)),this._temporaryBindUI("onDrag",ge(i=this._dragControlNode).call(i,this)),this._temporaryBindUI("onRelease",ge(o=this._finishConnect).call(o,this)),this._temporaryBindUI("onDragStart",ge(r=this._dragStartEdge).call(r,this)),this._temporaryBindUI("onHold",()=>{})}editEdgeMode(){if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="editEdge",typeof this.options.editEdge=="object"&&typeof this.options.editEdge.editWithoutDrag=="function"&&(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdgeIds()[0],this.edgeBeingEditedId!==void 0)){const A=this.body.edges[this.edgeBeingEditedId];this._performEditEdge(A.from.id,A.to.id);return}if(this.guiEnabled===!0){var e;const A=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(A),this._createSeperator(),this._createDescription(A.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindElementEvents(this.closeDiv,ge(e=this.toggleEditMode).call(e,this))}if(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdgeIds()[0],this.edgeBeingEditedId!==void 0){var t,i,o,r;const A=this.body.edges[this.edgeBeingEditedId],I=this._getNewTargetNode(A.from.x,A.from.y),l=this._getNewTargetNode(A.to.x,A.to.y);this.temporaryIds.nodes.push(I.id),this.temporaryIds.nodes.push(l.id),this.body.nodes[I.id]=I,this.body.nodeIndices.push(I.id),this.body.nodes[l.id]=l,this.body.nodeIndices.push(l.id),this._temporaryBindUI("onTouch",ge(t=this._controlNodeTouch).call(t,this)),this._temporaryBindUI("onTap",()=>{}),this._temporaryBindUI("onHold",()=>{}),this._temporaryBindUI("onDragStart",ge(i=this._controlNodeDragStart).call(i,this)),this._temporaryBindUI("onDrag",ge(o=this._controlNodeDrag).call(o,this)),this._temporaryBindUI("onDragEnd",ge(r=this._controlNodeDragEnd).call(r,this)),this._temporaryBindUI("onMouseMove",()=>{}),this._temporaryBindEvent("beforeDrawing",c=>{const h=A.edgeType.findBorderPositions(c);I.selected===!1&&(I.x=h.from.x,I.y=h.from.y),l.selected===!1&&(l.x=h.to.x,l.y=h.to.y)}),this.body.emitter.emit("_redraw")}else this.showManipulatorToolbar()}deleteSelected(){this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="delete";const e=this.selectionHandler.getSelectedNodeIds(),t=this.selectionHandler.getSelectedEdgeIds();let i;if(e.length>0){for(let o=0;o0&&typeof this.options.deleteEdge=="function"&&(i=this.options.deleteEdge);if(typeof i=="function"){const o={nodes:e,edges:t};if(i.length===2)i(o,r=>{r!=null&&this.inMode==="delete"?(this.body.data.edges.getDataSet().remove(r.edges),this.body.data.nodes.getDataSet().remove(r.nodes),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()):(this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar())});else throw new Error("The function for delete does not support two arguments (data, callback)")}else this.body.data.edges.getDataSet().remove(t),this.body.data.nodes.getDataSet().remove(e),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}_setup(){this.options.enabled===!0?(this.guiEnabled=!0,this._createWrappers(),this.editMode===!1?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}_createWrappers(){if(this.manipulationDiv===void 0&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",this.editMode===!0?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),this.editModeDiv===void 0&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",this.editMode===!0?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block",this.canvas.frame.appendChild(this.editModeDiv)),this.closeDiv===void 0){var e,t;this.closeDiv=document.createElement("button"),this.closeDiv.className="vis-close",this.closeDiv.setAttribute("aria-label",(e=(t=this.options.locales[this.options.locale])===null||t===void 0?void 0:t.close)!==null&&e!==void 0?e:this.options.locales.en.close),this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv)}}_getNewTargetNode(e,t){const i=mt({},this.options.controlNodeStyle);i.id="targetNode"+js(),i.hidden=!1,i.physics=!1,i.x=e,i.y=t;const o=this.body.functions.createNode(i);return o.shape.boundingBox={left:e,right:e,top:t,bottom:t},o}_createEditButton(){var e;this._clean(),this.manipulationDOM={},Ng(this.editModeDiv);const t=this.options.locales[this.options.locale],i=this._createButton("editMode","vis-edit vis-edit-mode",t.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(i),this._bindElementEvents(i,ge(e=this.toggleEditMode).call(e,this))}_clean(){this.inMode=!1,this.guiEnabled===!0&&(Ng(this.editModeDiv),Ng(this.manipulationDiv),this._cleanupDOMEventListeners()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}_cleanupDOMEventListeners(){for(const t of Di(e=this._domEventListenerCleanupQueue).call(e,0)){var e;t()}}_removeManipulationDOM(){this._clean(),Ng(this.manipulationDiv),Ng(this.editModeDiv),Ng(this.closeDiv),this.manipulationDiv&&this.canvas.frame.removeChild(this.manipulationDiv),this.editModeDiv&&this.canvas.frame.removeChild(this.editModeDiv),this.closeDiv&&this.canvas.frame.removeChild(this.closeDiv),this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0}_createSeperator(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;this.manipulationDOM["seperatorLineDiv"+e]=document.createElement("div"),this.manipulationDOM["seperatorLineDiv"+e].className="vis-separator-line",this.manipulationDiv.appendChild(this.manipulationDOM["seperatorLineDiv"+e])}_createAddNodeButton(e){var t;const i=this._createButton("addNode","vis-add",e.addNode||this.options.locales.en.addNode);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,ge(t=this.addNodeMode).call(t,this))}_createAddEdgeButton(e){var t;const i=this._createButton("addEdge","vis-connect",e.addEdge||this.options.locales.en.addEdge);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,ge(t=this.addEdgeMode).call(t,this))}_createEditNodeButton(e){var t;const i=this._createButton("editNode","vis-edit",e.editNode||this.options.locales.en.editNode);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,ge(t=this.editNode).call(t,this))}_createEditEdgeButton(e){var t;const i=this._createButton("editEdge","vis-edit",e.editEdge||this.options.locales.en.editEdge);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,ge(t=this.editEdgeMode).call(t,this))}_createDeleteButton(e){var t;let i;this.options.rtl?i="vis-delete-rtl":i="vis-delete";const o=this._createButton("delete",i,e.del||this.options.locales.en.del);this.manipulationDiv.appendChild(o),this._bindElementEvents(o,ge(t=this.deleteSelected).call(t,this))}_createBackButton(e){var t;const i=this._createButton("back","vis-back",e.back||this.options.locales.en.back);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,ge(t=this.showManipulatorToolbar).call(t,this))}_createButton(e,t,i){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"vis-label";return this.manipulationDOM[e+"Div"]=document.createElement("button"),this.manipulationDOM[e+"Div"].className="vis-button "+t,this.manipulationDOM[e+"Label"]=document.createElement("div"),this.manipulationDOM[e+"Label"].className=o,this.manipulationDOM[e+"Label"].innerText=i,this.manipulationDOM[e+"Div"].appendChild(this.manipulationDOM[e+"Label"]),this.manipulationDOM[e+"Div"]}_createDescription(e){this.manipulationDOM.descriptionLabel=document.createElement("div"),this.manipulationDOM.descriptionLabel.className="vis-none",this.manipulationDOM.descriptionLabel.innerText=e,this.manipulationDiv.appendChild(this.manipulationDOM.descriptionLabel)}_temporaryBindEvent(e,t){this.temporaryEventFunctions.push({event:e,boundFunction:t}),this.body.emitter.on(e,t)}_temporaryBindUI(e,t){if(this.body.eventListeners[e]!==void 0)this.temporaryUIFunctions[e]=this.body.eventListeners[e],this.body.eventListeners[e]=t;else throw new Error("This UI function does not exist. Typo? You tried: "+e+" possible are: "+bs(wt(this.body.eventListeners)))}_unbindTemporaryUIs(){for(const e in this.temporaryUIFunctions)Object.prototype.hasOwnProperty.call(this.temporaryUIFunctions,e)&&(this.body.eventListeners[e]=this.temporaryUIFunctions[e],delete this.temporaryUIFunctions[e]);this.temporaryUIFunctions={}}_unbindTemporaryEvents(){for(let e=0;e{i.destroy()});const o=r=>{let{keyCode:A,key:I}=r;(I==="Enter"||I===" "||A===13||A===32)&&t()};e.addEventListener("keyup",o,!1),this._domEventListenerCleanupQueue.push(()=>{e.removeEventListener("keyup",o,!1)})}_cleanupTemporaryNodesAndEdges(){for(let r=0;r=0;I--)if(r[I]!==this.selectedControlNode.id){A=this.body.nodes[r[I]];break}if(A!==void 0&&this.selectedControlNode!==void 0)if(A.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{const I=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===I.id?this._performEditEdge(A.id,o.to.id):this._performEditEdge(o.from.id,A.id)}else o.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}_handleConnect(e){if(new Date().valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(e.center),this.lastTouch.translation=Vt({},this.body.view.translation),this.interactionHandler.drag.pointer=this.lastTouch,this.interactionHandler.drag.translation=this.lastTouch.translation;const t=this.lastTouch,i=this.selectionHandler.getNodeAt(t);if(i!==void 0)if(i.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{const o=this._getNewTargetNode(i.x,i.y);this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id);const r=this.body.functions.createEdge({id:"connectionEdge"+js(),from:i.id,to:o.id,physics:!1,smooth:{enabled:!0,type:"continuous",roundness:.5}});this.body.edges[r.id]=r,this.body.edgeIndices.push(r.id),this.temporaryIds.nodes.push(o.id),this.temporaryIds.edges.push(r.id)}this.touchTime=new Date().valueOf()}}_dragControlNode(e){const t=this.body.functions.getPointer(e.center),i=this.selectionHandler._pointerToPositionObject(t);let o;this.temporaryIds.edges[0]!==void 0&&(o=this.body.edges[this.temporaryIds.edges[0]].fromId);const r=this.selectionHandler._getAllNodesOverlappingWith(i);let A;for(let l=r.length-1;l>=0;l--){var I;if(at(I=this.temporaryIds.nodes).call(I,r[l])===-1){A=this.body.nodes[r[l]];break}}if(e.controlEdge={from:o,to:A?A.id:void 0},this.selectionHandler.generateClickEvent("controlNodeDragging",e,t),this.temporaryIds.nodes[0]!==void 0){const l=this.body.nodes[this.temporaryIds.nodes[0]];l.x=this.canvas._XconvertDOMtoCanvas(t.x),l.y=this.canvas._YconvertDOMtoCanvas(t.y),this.body.emitter.emit("_redraw")}else this.interactionHandler.onDrag(e)}_finishConnect(e){const t=this.body.functions.getPointer(e.center),i=this.selectionHandler._pointerToPositionObject(t);let o;this.temporaryIds.edges[0]!==void 0&&(o=this.body.edges[this.temporaryIds.edges[0]].fromId);const r=this.selectionHandler._getAllNodesOverlappingWith(i);let A;for(let l=r.length-1;l>=0;l--){var I;if(at(I=this.temporaryIds.nodes).call(I,r[l])===-1){A=this.body.nodes[r[l]];break}}this._cleanupTemporaryNodesAndEdges(),A!==void 0&&(A.isCluster===!0?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):this.body.nodes[o]!==void 0&&this.body.nodes[A.id]!==void 0&&this._performAddEdge(o,A.id)),e.controlEdge={from:o,to:A?A.id:void 0},this.selectionHandler.generateClickEvent("controlNodeDragEnd",e,t),this.body.emitter.emit("_redraw")}_dragStartEdge(e){const t=this.lastTouch;this.selectionHandler.generateClickEvent("dragStart",e,t,void 0,!0)}_performAddNode(e){const t={id:js(),x:e.pointer.canvas.x,y:e.pointer.canvas.y,label:"new"};if(typeof this.options.addNode=="function")if(this.options.addNode.length===2)this.options.addNode(t,i=>{i!=null&&this.inMode==="addNode"&&this.body.data.nodes.getDataSet().add(i),this.showManipulatorToolbar()});else throw this.showManipulatorToolbar(),new Error("The function for add does not support two arguments (data,callback)");else this.body.data.nodes.getDataSet().add(t),this.showManipulatorToolbar()}_performAddEdge(e,t){const i={from:e,to:t};if(typeof this.options.addEdge=="function")if(this.options.addEdge.length===2)this.options.addEdge(i,o=>{o!=null&&this.inMode==="addEdge"&&(this.body.data.edges.getDataSet().add(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar())});else throw new Error("The function for connect does not support two arguments (data,callback)");else this.body.data.edges.getDataSet().add(i),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}_performEditEdge(e,t){const i={id:this.edgeBeingEditedId,from:e,to:t,label:this.body.data.edges.get(this.edgeBeingEditedId).label};let o=this.options.editEdge;if(typeof o=="object"&&(o=o.editWithoutDrag),typeof o=="function")if(o.length===2)o(i,r=>{r==null||this.inMode!=="editEdge"?(this.body.edges[i.id].updateEdgeType(),this.body.emitter.emit("_redraw"),this.showManipulatorToolbar()):(this.body.data.edges.getDataSet().update(r),this.selectionHandler.unselectAll(),this.showManipulatorToolbar())});else throw new Error("The function for edit does not support two arguments (data, callback)");else this.body.data.edges.getDataSet().update(i),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}const se="string",oe="boolean",W="number",ja="array",xe="object",zx="dom",yq="any",Mu=["arrow","bar","box","circle","crow","curve","diamond","image","inv_curve","inv_triangle","triangle","vee"],zu={borderWidth:{number:W},borderWidthSelected:{number:W,undefined:"undefined"},brokenImage:{string:se,undefined:"undefined"},chosen:{label:{boolean:oe,function:"function"},node:{boolean:oe,function:"function"},__type__:{object:xe,boolean:oe}},color:{border:{string:se},background:{string:se},highlight:{border:{string:se},background:{string:se},__type__:{object:xe,string:se}},hover:{border:{string:se},background:{string:se},__type__:{object:xe,string:se}},__type__:{object:xe,string:se}},opacity:{number:W,undefined:"undefined"},fixed:{x:{boolean:oe},y:{boolean:oe},__type__:{object:xe,boolean:oe}},font:{align:{string:se},color:{string:se},size:{number:W},face:{string:se},background:{string:se},strokeWidth:{number:W},strokeColor:{string:se},vadjust:{number:W},multi:{boolean:oe,string:se},bold:{color:{string:se},size:{number:W},face:{string:se},mod:{string:se},vadjust:{number:W},__type__:{object:xe,string:se}},boldital:{color:{string:se},size:{number:W},face:{string:se},mod:{string:se},vadjust:{number:W},__type__:{object:xe,string:se}},ital:{color:{string:se},size:{number:W},face:{string:se},mod:{string:se},vadjust:{number:W},__type__:{object:xe,string:se}},mono:{color:{string:se},size:{number:W},face:{string:se},mod:{string:se},vadjust:{number:W},__type__:{object:xe,string:se}},__type__:{object:xe,string:se}},group:{string:se,number:W,undefined:"undefined"},heightConstraint:{minimum:{number:W},valign:{string:se},__type__:{object:xe,boolean:oe,number:W}},hidden:{boolean:oe},icon:{face:{string:se},code:{string:se},size:{number:W},color:{string:se},weight:{string:se,number:W},__type__:{object:xe}},id:{string:se,number:W},image:{selected:{string:se,undefined:"undefined"},unselected:{string:se,undefined:"undefined"},__type__:{object:xe,string:se}},imagePadding:{top:{number:W},right:{number:W},bottom:{number:W},left:{number:W},__type__:{object:xe,number:W}},label:{string:se,undefined:"undefined"},labelHighlightBold:{boolean:oe},level:{number:W,undefined:"undefined"},margin:{top:{number:W},right:{number:W},bottom:{number:W},left:{number:W},__type__:{object:xe,number:W}},mass:{number:W},physics:{boolean:oe},scaling:{min:{number:W},max:{number:W},label:{enabled:{boolean:oe},min:{number:W},max:{number:W},maxVisible:{number:W},drawThreshold:{number:W},__type__:{object:xe,boolean:oe}},customScalingFunction:{function:"function"},__type__:{object:xe}},shadow:{enabled:{boolean:oe},color:{string:se},size:{number:W},x:{number:W},y:{number:W},__type__:{object:xe,boolean:oe}},shape:{string:["custom","ellipse","circle","database","box","text","image","circularImage","diamond","dot","star","triangle","triangleDown","square","icon","hexagon"]},ctxRenderer:{function:"function"},shapeProperties:{borderDashes:{boolean:oe,array:ja},borderRadius:{number:W},interpolation:{boolean:oe},useImageSize:{boolean:oe},useBorderWithImage:{boolean:oe},coordinateOrigin:{string:["center","top-left"]},__type__:{object:xe}},size:{number:W},title:{string:se,dom:zx,undefined:"undefined"},value:{number:W,undefined:"undefined"},widthConstraint:{minimum:{number:W},maximum:{number:W},__type__:{object:xe,boolean:oe,number:W}},x:{number:W},y:{number:W},__type__:{object:xe}},bq={configure:{enabled:{boolean:oe},filter:{boolean:oe,string:se,array:ja,function:"function"},container:{dom:zx},showButton:{boolean:oe},__type__:{object:xe,boolean:oe,string:se,array:ja,function:"function"}},edges:{arrows:{to:{enabled:{boolean:oe},scaleFactor:{number:W},type:{string:Mu},imageHeight:{number:W},imageWidth:{number:W},src:{string:se},__type__:{object:xe,boolean:oe}},middle:{enabled:{boolean:oe},scaleFactor:{number:W},type:{string:Mu},imageWidth:{number:W},imageHeight:{number:W},src:{string:se},__type__:{object:xe,boolean:oe}},from:{enabled:{boolean:oe},scaleFactor:{number:W},type:{string:Mu},imageWidth:{number:W},imageHeight:{number:W},src:{string:se},__type__:{object:xe,boolean:oe}},__type__:{string:["from","to","middle"],object:xe}},endPointOffset:{from:{number:W},to:{number:W},__type__:{object:xe,number:W}},arrowStrikethrough:{boolean:oe},background:{enabled:{boolean:oe},color:{string:se},size:{number:W},dashes:{boolean:oe,array:ja},__type__:{object:xe,boolean:oe}},chosen:{label:{boolean:oe,function:"function"},edge:{boolean:oe,function:"function"},__type__:{object:xe,boolean:oe}},color:{color:{string:se},highlight:{string:se},hover:{string:se},inherit:{string:["from","to","both"],boolean:oe},opacity:{number:W},__type__:{object:xe,string:se}},dashes:{boolean:oe,array:ja},font:{color:{string:se},size:{number:W},face:{string:se},background:{string:se},strokeWidth:{number:W},strokeColor:{string:se},align:{string:["horizontal","top","middle","bottom"]},vadjust:{number:W},multi:{boolean:oe,string:se},bold:{color:{string:se},size:{number:W},face:{string:se},mod:{string:se},vadjust:{number:W},__type__:{object:xe,string:se}},boldital:{color:{string:se},size:{number:W},face:{string:se},mod:{string:se},vadjust:{number:W},__type__:{object:xe,string:se}},ital:{color:{string:se},size:{number:W},face:{string:se},mod:{string:se},vadjust:{number:W},__type__:{object:xe,string:se}},mono:{color:{string:se},size:{number:W},face:{string:se},mod:{string:se},vadjust:{number:W},__type__:{object:xe,string:se}},__type__:{object:xe,string:se}},hidden:{boolean:oe},hoverWidth:{function:"function",number:W},label:{string:se,undefined:"undefined"},labelHighlightBold:{boolean:oe},length:{number:W,undefined:"undefined"},physics:{boolean:oe},scaling:{min:{number:W},max:{number:W},label:{enabled:{boolean:oe},min:{number:W},max:{number:W},maxVisible:{number:W},drawThreshold:{number:W},__type__:{object:xe,boolean:oe}},customScalingFunction:{function:"function"},__type__:{object:xe}},selectionWidth:{function:"function",number:W},selfReferenceSize:{number:W},selfReference:{size:{number:W},angle:{number:W},renderBehindTheNode:{boolean:oe},__type__:{object:xe}},shadow:{enabled:{boolean:oe},color:{string:se},size:{number:W},x:{number:W},y:{number:W},__type__:{object:xe,boolean:oe}},smooth:{enabled:{boolean:oe},type:{string:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"]},roundness:{number:W},forceDirection:{string:["horizontal","vertical","none"],boolean:oe},__type__:{object:xe,boolean:oe}},title:{string:se,undefined:"undefined"},width:{number:W},widthConstraint:{maximum:{number:W},__type__:{object:xe,boolean:oe,number:W}},value:{number:W,undefined:"undefined"},__type__:{object:xe}},groups:{useDefaultGroups:{boolean:oe},__any__:zu,__type__:{object:xe}},interaction:{dragNodes:{boolean:oe},dragView:{boolean:oe},hideEdgesOnDrag:{boolean:oe},hideEdgesOnZoom:{boolean:oe},hideNodesOnDrag:{boolean:oe},hover:{boolean:oe},keyboard:{enabled:{boolean:oe},speed:{x:{number:W},y:{number:W},zoom:{number:W},__type__:{object:xe}},bindToWindow:{boolean:oe},autoFocus:{boolean:oe},__type__:{object:xe,boolean:oe}},multiselect:{boolean:oe},navigationButtons:{boolean:oe},selectable:{boolean:oe},selectConnectedEdges:{boolean:oe},hoverConnectedEdges:{boolean:oe},tooltipDelay:{number:W},zoomView:{boolean:oe},zoomSpeed:{number:W},__type__:{object:xe}},layout:{randomSeed:{undefined:"undefined",number:W,string:se},improvedLayout:{boolean:oe},clusterThreshold:{number:W},hierarchical:{enabled:{boolean:oe},levelSeparation:{number:W},nodeSpacing:{number:W},treeSpacing:{number:W},blockShifting:{boolean:oe},edgeMinimization:{boolean:oe},parentCentralization:{boolean:oe},direction:{string:["UD","DU","LR","RL"]},sortMethod:{string:["hubsize","directed"]},shakeTowards:{string:["leaves","roots"]},__type__:{object:xe,boolean:oe}},__type__:{object:xe}},manipulation:{enabled:{boolean:oe},initiallyActive:{boolean:oe},addNode:{boolean:oe,function:"function"},addEdge:{boolean:oe,function:"function"},editNode:{function:"function"},editEdge:{editWithoutDrag:{function:"function"},__type__:{object:xe,boolean:oe,function:"function"}},deleteNode:{boolean:oe,function:"function"},deleteEdge:{boolean:oe,function:"function"},controlNodeStyle:zu,__type__:{object:xe,boolean:oe}},nodes:zu,physics:{enabled:{boolean:oe},barnesHut:{theta:{number:W},gravitationalConstant:{number:W},centralGravity:{number:W},springLength:{number:W},springConstant:{number:W},damping:{number:W},avoidOverlap:{number:W},__type__:{object:xe}},forceAtlas2Based:{theta:{number:W},gravitationalConstant:{number:W},centralGravity:{number:W},springLength:{number:W},springConstant:{number:W},damping:{number:W},avoidOverlap:{number:W},__type__:{object:xe}},repulsion:{centralGravity:{number:W},springLength:{number:W},springConstant:{number:W},nodeDistance:{number:W},damping:{number:W},__type__:{object:xe}},hierarchicalRepulsion:{centralGravity:{number:W},springLength:{number:W},springConstant:{number:W},nodeDistance:{number:W},damping:{number:W},avoidOverlap:{number:W},__type__:{object:xe}},maxVelocity:{number:W},minVelocity:{number:W},solver:{string:["barnesHut","repulsion","hierarchicalRepulsion","forceAtlas2Based"]},stabilization:{enabled:{boolean:oe},iterations:{number:W},updateInterval:{number:W},onlyDynamicEdges:{boolean:oe},fit:{boolean:oe},__type__:{object:xe,boolean:oe}},timestep:{number:W},adaptiveTimestep:{boolean:oe},wind:{x:{number:W},y:{number:W},__type__:{object:xe}},__type__:{object:xe,boolean:oe}},autoResize:{boolean:oe},clickToUse:{boolean:oe},locale:{string:se},locales:{__any__:{any:yq},__type__:{object:xe}},height:{string:se},width:{string:se},__type__:{object:xe}},kx={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:["color","#2B7CE9"],background:["color","#97C2FC"],highlight:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]},hover:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]}},opacity:[0,0,1,.1],fixed:{x:!1,y:!1},font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[0,0,50,1],strokeColor:["color","#ffffff"]},hidden:!1,labelHighlightBold:!0,physics:!0,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:!1,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:["ellipse","box","circle","database","diamond","dot","square","star","text","triangle","triangleDown","hexagon"],shapeProperties:{borderDashes:!1,borderRadius:[6,0,20,1],interpolation:!0,useImageSize:!1},size:[25,0,200,1]},edges:{arrows:{to:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"},middle:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"},from:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"}},endPointOffset:{from:[0,-10,10,1],to:[0,-10,10,1]},arrowStrikethrough:!0,color:{color:["color","#848484"],highlight:["color","#848484"],hover:["color","#848484"],inherit:["from","to","both",!0,!1],opacity:[1,0,1,.05]},dashes:!1,font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[2,0,50,1],strokeColor:["color","#ffffff"],align:["horizontal","top","middle","bottom"]},hidden:!1,hoverWidth:[1.5,0,5,.1],labelHighlightBold:!0,physics:!0,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:!0,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],selfReference:{size:[20,0,200,1],angle:[Math.PI/2,-6*Math.PI,6*Math.PI,Math.PI/8],renderBehindTheNode:!0},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:!0,type:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"],forceDirection:["horizontal","vertical","none"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:!1,levelSeparation:[150,20,500,5],nodeSpacing:[100,20,500,5],treeSpacing:[200,20,500,5],blockShifting:!0,edgeMinimization:!0,parentCentralization:!0,direction:["UD","DU","LR","RL"],sortMethod:["hubsize","directed"],shakeTowards:["leaves","roots"]}},interaction:{dragNodes:!0,dragView:!0,hideEdgesOnDrag:!1,hideEdgesOnZoom:!1,hideNodesOnDrag:!1,hover:!1,keyboard:{enabled:!1,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:!0,autoFocus:!0},multiselect:!1,navigationButtons:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0,tooltipDelay:[300,0,1e3,25],zoomView:!0,zoomSpeed:[1,.1,2,.1]},manipulation:{enabled:!1,initiallyActive:!1},physics:{enabled:!0,barnesHut:{theta:[.5,.1,1,.05],gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{theta:[.5,.1,1,.05],gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:["barnesHut","forceAtlas2Based","repulsion","hierarchicalRepulsion"],timestep:[.5,.01,1,.01],wind:{x:[0,-10,10,.1],y:[0,-10,10,.1]}}},wq=(n,e,t)=>{var i;return!!(Eg(n).call(n,"physics")&&Eg(i=kx.physics.solver).call(i,e)&&t.physics.solver!==e&&e!=="wind")};class xq{constructor(){}getDistances(e,t,i){const o={},r=e.edges;for(let I=0;I2&&arguments[2]!==void 0?arguments[2]:!1;const o=this.distanceSolver.getDistances(this.body,e,t);this._createL_matrix(o),this._createK_matrix(o),this._createE_matrix();const r=.01,A=1;let I=0;const l=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3)),c=5;let h=1e9,p=0,m=0,y=0,w=0,S=0;for(;h>r&&IA&&Sthis.body.emitter.emit("_requestRedraw")),this.groups=new rH,this.canvas=new m$(this.body),this.selectionHandler=new J$(this.body,this.canvas),this.interactionHandler=new x$(this.body,this.canvas,this.selectionHandler),this.view=new y$(this.body,this.canvas),this.renderer=new d$(this.body,this.canvas),this.physics=new I$(this.body),this.layoutEngine=new pq(this.body),this.clustering=new c$(this.body),this.manipulation=new vq(this.body,this.canvas,this.selectionHandler,this.interactionHandler),this.nodesHandler=new _X(this.body,this.images,this.groups,this.layoutEngine),this.edgesHandler=new o$(this.body,this.images,this.groups),this.body.modules.kamadaKawai=new Sq(this.body,150,.05),this.body.modules.clustering=this.clustering,this.canvas._create(),this.setOptions(t),this.setData(e)}py(ve.prototype),ve.prototype.setOptions=function(n){if(n===null&&(n=void 0),n!==void 0){if(qV.validate(n,bq)===!0&&console.error("%cErrors have been found in the supplied options object.",m1),Ds(["locale","locales","clickToUse"],this.options,n),n.locale!==void 0&&(n.locale=IU(n.locales||this.options.locales,n.locale)),n=this.layoutEngine.setOptions(n.layout,n),this.canvas.setOptions(n),this.groups.setOptions(n.groups),this.nodesHandler.setOptions(n.nodes),this.edgesHandler.setOptions(n.edges),this.physics.setOptions(n.physics),this.manipulation.setOptions(n.manipulation,n,this.options),this.interactionHandler.setOptions(n.interaction),this.renderer.setOptions(n.interaction),this.selectionHandler.setOptions(n.interaction),n.groups!==void 0&&this.body.emitter.emit("refreshNodes"),"configure"in n&&(this.configurator||(this.configurator=new XV(this,this.body.container,kx,this.canvas.pixelRatio,wq)),this.configurator.setOptions(n.configure)),this.configurator&&this.configurator.options.enabled===!0){const i={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};mt(i.nodes,this.nodesHandler.options),mt(i.edges,this.edgesHandler.options),mt(i.layout,this.layoutEngine.options),mt(i.interaction,this.selectionHandler.options),mt(i.interaction,this.renderer.options),mt(i.interaction,this.interactionHandler.options),mt(i.manipulation,this.manipulation.options),mt(i.physics,this.physics.options),mt(i.global,this.canvas.options),mt(i.global,this.options),this.configurator.setModuleOptions(i)}n.clickToUse!==void 0?n.clickToUse===!0?this.activator===void 0&&(this.activator=new QV(this.canvas.frame),this.activator.on("change",()=>{this.body.emitter.emit("activate")})):(this.activator!==void 0&&(this.activator.destroy(),delete this.activator),this.body.emitter.emit("activate")):this.body.emitter.emit("activate"),this.canvas.setSize(),this.body.emitter.emit("startSimulation")}},ve.prototype._updateVisibleIndices=function(){const n=this.body.nodes,e=this.body.edges;this.body.nodeIndices=[],this.body.edgeIndices=[];for(const t in n)Object.prototype.hasOwnProperty.call(n,t)&&!this.clustering._isClusteredNode(t)&&n[t].options.hidden===!1&&this.body.nodeIndices.push(n[t].id);for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)){const i=e[t],o=n[i.fromId],r=n[i.toId],A=o!==void 0&&r!==void 0;!this.clustering._isClusteredEdge(t)&&i.options.hidden===!1&&A&&o.options.hidden===!1&&r.options.hidden===!1&&this.body.edgeIndices.push(i.id)}},ve.prototype.bindEventListeners=function(){this.body.emitter.on("_dataChanged",()=>{this.edgesHandler._updateState(),this.body.emitter.emit("_dataUpdated")}),this.body.emitter.on("_dataUpdated",()=>{this.clustering._updateState(),this._updateVisibleIndices(),this._updateValueRange(this.body.nodes),this._updateValueRange(this.body.edges),this.body.emitter.emit("startSimulation"),this.body.emitter.emit("_requestRedraw")})},ve.prototype.setData=function(n){if(this.body.emitter.emit("resetPhysics"),this.body.emitter.emit("_resetData"),this.selectionHandler.unselectAll(),n&&n.dot&&(n.nodes||n.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(n&&n.options),n&&n.dot){console.warn("The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);");const e=aU(n.dot);this.setData(e);return}else if(n&&n.gephi){console.warn("The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);");const e=AU(n.gephi);this.setData(e);return}else this.nodesHandler.setData(n&&n.nodes,!0),this.edgesHandler.setData(n&&n.edges,!0);this.body.emitter.emit("_dataChanged"),this.body.emitter.emit("_dataLoaded"),this.body.emitter.emit("initPhysics")},ve.prototype.destroy=function(){this.body.emitter.emit("destroy"),this.body.emitter.off(),this.off(),delete this.groups,delete this.canvas,delete this.selectionHandler,delete this.interactionHandler,delete this.view,delete this.renderer,delete this.physics,delete this.layoutEngine,delete this.clustering,delete this.manipulation,delete this.nodesHandler,delete this.edgesHandler,delete this.configurator,delete this.images;for(const n in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,n)&&delete this.body.nodes[n];for(const n in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,n)&&delete this.body.edges[n];Ng(this.body.container)},ve.prototype._updateValueRange=function(n){let e,t,i,o=0;for(e in n)if(Object.prototype.hasOwnProperty.call(n,e)){const r=n[e].getValue();r!==void 0&&(t=t===void 0?r:Math.min(r,t),i=i===void 0?r:Math.max(r,i),o+=r)}if(t!==void 0&&i!==void 0)for(e in n)Object.prototype.hasOwnProperty.call(n,e)&&n[e].setValueRange(t,i,o)},ve.prototype.isActive=function(){return!this.activator||this.activator.active},ve.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)},ve.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)},ve.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)},ve.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)},ve.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)},ve.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)},ve.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)},ve.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)},ve.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)},ve.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)},ve.prototype.updateClusteredNode=function(){return this.clustering.updateClusteredNode.apply(this.clustering,arguments)},ve.prototype.getClusteredEdges=function(){return this.clustering.getClusteredEdges.apply(this.clustering,arguments)},ve.prototype.getBaseEdge=function(){return this.clustering.getBaseEdge.apply(this.clustering,arguments)},ve.prototype.getBaseEdges=function(){return this.clustering.getBaseEdges.apply(this.clustering,arguments)},ve.prototype.updateEdge=function(){return this.clustering.updateEdge.apply(this.clustering,arguments)},ve.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)},ve.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)},ve.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)},ve.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)},ve.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)},ve.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)},ve.prototype.editNodeMode=function(){return console.warn("Deprecated: Please use editNode instead of editNodeMode."),this.manipulation.editNode.apply(this.manipulation,arguments)},ve.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)},ve.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)},ve.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)},ve.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)},ve.prototype.getPosition=function(){return this.nodesHandler.getPosition.apply(this.nodesHandler,arguments)},ve.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)},ve.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)},ve.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)},ve.prototype.getConnectedNodes=function(n){return this.body.nodes[n]!==void 0?this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments):this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)},ve.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)},ve.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)},ve.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)},ve.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)},ve.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)},ve.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)},ve.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodeIds.apply(this.selectionHandler,arguments)},ve.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdgeIds.apply(this.selectionHandler,arguments)},ve.prototype.getNodeAt=function(){const n=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);return n!==void 0&&n.id!==void 0?n.id:n},ve.prototype.getEdgeAt=function(){const n=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);return n!==void 0&&n.id!==void 0?n.id:n},ve.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)},ve.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)},ve.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments),this.selectionHandler.commitWithoutEmitting.apply(this.selectionHandler),this.redraw()},ve.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)},ve.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)},ve.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)},ve.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)},ve.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)},ve.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)},ve.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)},ve.prototype.getOptionsFromConfigurator=function(){let n={};return this.configurator&&(n=this.configurator.getOptions.apply(this.configurator)),n};function Eq(n,e){n.on("click",t=>{e.onHover(null),t.edges.length===0&&e.onHoverEdge(null);const i=t.nodes[0];i!==void 0?e.onFocus(String(i)):e.onClear()}),n.on("doubleClick",t=>{const i=t.nodes[0];if(i!==void 0){e.onOpenSource(String(i));return}const o=t.edges[0];o!==void 0&&e.onOpenRelationshipSource(String(o))}),n.on("hoverNode",t=>{t.node!==void 0&&(e.onHoverEdge(null),e.onHover({nodeId:String(t.node),x:t.pointer.DOM.x,y:t.pointer.DOM.y}))}),n.on("blurNode",()=>e.onHover(null)),n.on("hoverEdge",t=>{t.edge!==void 0&&(e.onHover(null),e.onHoverEdge({edgeId:String(t.edge),x:t.pointer.DOM.x,y:t.pointer.DOM.y}))}),n.on("blurEdge",()=>e.onHoverEdge(null)),n.on("dragStart",()=>{e.onHover(null),e.onHoverEdge(null)}),n.on("zoom",()=>{e.onHover(null),e.onHoverEdge(null)})}const Tq=1e3,Oq=4e3,ku=4e3;function Nq(n){return n.nodes.length>=Tq||n.edges.length>=Oq?"static":"interactive"}function Dq(n,e=!1){if(e)return jq(n);const t=new Map;for(const h of n){const p=t.get(h.community)??[];p.push(h),t.set(h.community,p)}const i=[...t.entries()].sort(([h],[p])=>h-p).map(([h,p])=>({community:h,members:p.sort((m,y)=>m.id.localeCompare(y.id))})),o=i.reduce((h,p)=>Math.max(h,p.members.length),1),r=Math.max(1,Math.ceil(Math.sqrt(i.length))),A=Math.max(1,Math.ceil(i.length/r)),I=Math.max(280,Math.ceil(Math.sqrt(o))*48),l=Math.PI*(3-Math.sqrt(5)),c=new Map;return i.forEach((h,p)=>{const m=p%r,y=Math.floor(p/r),w=(m-(r-1)/2)*I,S=(y-(A-1)/2)*I;h.members.forEach((x,O)=>{if(O===0){c.set(x.id,{x:w,y:S});return}const E=24*Math.sqrt(O),_=O*l;c.set(x.id,{x:w+Math.cos(_)*E,y:S+Math.sin(_)*E})})}),c}function Mq(n,e,t=!1){const i=[...n].sort((o,r)=>o.community-r.community||(r.degree??0)-(o.degree??0)||o.id.localeCompare(r.id));if(e==="circle"){const o=Math.max(160,i.length*44/(2*Math.PI));return new Map(i.map((r,A)=>{const I=-Math.PI/2+A*2*Math.PI/Math.max(1,i.length);return[r.id,{x:Math.cos(I)*o,y:Math.sin(I)*o}]}))}if(e==="concentric"){const o=[...n].sort((r,A)=>(A.degree??0)-(r.degree??0)||(A.memberCount??0)-(r.memberCount??0)||r.community-A.community||r.id.localeCompare(A.id));return kq(o)}return e==="hierarchical"?zq(i):e==="spiral"?Rq(i):_q(i,t)}function zq(n){const e=new Map;for(const o of n){const r=o.depth??(o.root?0:1),A=e.get(r)??[];A.push(o),e.set(r,A)}const t=[...e.entries()].sort(([o],[r])=>o-r),i=new Map;for(const[o,r]of t){r.sort((I,l)=>Number(l.root??!1)-Number(I.root??!1)||(l.degree??0)-(I.degree??0)||I.id.localeCompare(l.id));const A=148;r.forEach((I,l)=>i.set(I.id,{x:(l-(r.length-1)/2)*A,y:o*168}))}return i}function kq(n){const e=new Map,t=n[0];if(!t)return e;e.set(t.id,{x:0,y:0});let i=1,o=1;for(;i{if(o===0)return[i.id,{x:0,y:0}];const r=36*Math.sqrt(o),A=o*.52;return[i.id,{x:Math.cos(A)*r,y:Math.sin(A)*r}]}))}function _q(n,e){const r=new Map;n.forEach((w,S)=>{const x=e?Math.floor(S/16):w.community,O=r.get(x)??[];O.push(w),r.set(x,O)});const A=[...r.entries()].sort(([w],[S])=>w-S).map(([w,S])=>{const x=Math.max(1,Math.ceil(Math.sqrt(S.length))),O=Math.max(1,Math.ceil(S.length/x));return{key:w,members:S,columns:x,rows:O,width:(x-1)*56,height:(O-1)*56}}),I=Math.max(1,Math.ceil(Math.sqrt(A.length))),l=Math.max(1,Math.ceil(A.length/I)),c=Array.from({length:I},()=>0),h=Array.from({length:l},()=>0);A.forEach((w,S)=>{const x=S%I,O=Math.floor(S/I);c[x]=Math.max(c[x]??0,w.width),h[O]=Math.max(h[O]??0,w.height)});const p=Rx(c,112),m=Rx(h,112),y=new Map;return A.forEach((w,S)=>{const x=S%I,O=Math.floor(S/I);w.members.forEach((E,_)=>{const P=Math.floor(_/w.columns),Q=Math.min(w.columns,w.members.length-P*w.columns),ne=_%w.columns;y.set(E.id,{x:(p[x]??0)+(ne-(Q-1)/2)*56,y:(m[O]??0)+(P-(w.rows-1)/2)*56})})}),y}function Rx(n,e){let i=-(n.reduce((o,r)=>o+r,0)+Math.max(0,n.length-1)*e)/2;return n.map(o=>{const r=i+o/2;return i+=o+e,r})}function _x(n){if(!n.stats.aggregated||n.edges.length<=ku)return n.edges;const e=[...n.edges].sort((A,I)=>(I.weight??jx(I.relation))-(A.weight??jx(A.relation))||A.source.localeCompare(I.source)||A.target.localeCompare(I.target)||A.id.localeCompare(I.id)),t=new Map(n.nodes.map(A=>[A.id,A.id])),i=A=>{let I=t.get(A)??A;for(;t.get(I)!==void 0&&t.get(I)!==I;)I=t.get(I);let l=A;for(;t.get(l)!==void 0&&t.get(l)!==I;){const c=t.get(l);t.set(l,I),l=c}return I},o=[],r=new Set;for(const A of e){const I=i(A.source),l=i(A.target);if(I!==l&&(t.set(l,I),o.push(A),r.add(A.id),o.length===ku))return o}for(const A of e)if(!r.has(A.id)&&(o.push(A),o.length===ku))break;return o}function jx(n){const e=Number.parseInt(n,10);return Number.isFinite(e)&&e>0?e:1}function jq(n){const e=[...n].sort((o,r)=>(r.degree??0)-(o.degree??0)||(r.memberCount??0)-(o.memberCount??0)||o.id.localeCompare(r.id)),t=Math.PI*(3-Math.sqrt(5)),i=34;return new Map(e.map((o,r)=>{if(r===0)return[o.id,{x:0,y:0}];const A=i*Math.sqrt(r),I=r*t;return[o.id,{x:Math.cos(I)*A,y:Math.sin(I)*A}]}))}const aI=176,AI=108,Zx=8,Zq=1500,Bq=2e3;function Pq(n){const e=[...n.positions.values()],t=n.viewport.left+n.viewport.width,i=n.viewport.top+n.viewport.height,o=[...e.map(j=>j.x),n.viewport.left,t],r=[...e.map(j=>j.y),n.viewport.top,i],A=Math.min(...o),I=Math.max(...o),l=Math.min(...r),c=Math.max(...r),h=Math.max(1,I-A),p=Math.max(1,c-l),m=aI-Zx*2,y=AI-Zx*2,w=Math.min(m/h,y/p),S=h*w,x=p*w,O=(aI-S)/2,E=(AI-x)/2,_=({x:j,y:V})=>({x:O+(j-A)*w,y:E+(V-l)*w}),P=({x:j,y:V})=>({x:A+(j-O)/w,y:l+(V-E)/w}),Q=_({x:n.viewport.left,y:n.viewport.top}),ne=_({x:t,y:i});return{project:_,unproject:P,viewport:{x:Q.x,y:Q.y,width:ne.x-Q.x,height:ne.y-Q.y}}}function Lq({model:n,snapshot:e,visibleNodeIds:t,visibleEdgeIds:i,focusedNodeId:o,onNavigate:r}){const A=F.useMemo(()=>Pq(e),[e]),I=F.useMemo(()=>n.nodes.filter(m=>!t||t.has(m.id)).sort((m,y)=>m.id.localeCompare(y.id)),[n.nodes,t]),l=I.slice(0,Zq),c=F.useMemo(()=>n.edges.filter(m=>(!i||i.has(m.id))&&(!t||t.has(m.source)&&t.has(m.target))).sort((m,y)=>m.id.localeCompare(y.id)).slice(0,Bq),[n.edges,i,t]),h=F.useMemo(()=>new Map(n.communities.map(m=>[m.id,m.color])),[n.communities]),p=m=>{const y=m.currentTarget.getBoundingClientRect();y.width<=0||y.height<=0||r(A.unproject({x:(m.clientX-y.left)/y.width*aI,y:(m.clientY-y.top)/y.height*AI}))};return f.jsxs("aside",{className:"compass-minimap compass-glass-panel","aria-label":"Graph overview",children:[f.jsxs("header",{children:[f.jsx("span",{children:"Map"}),f.jsx("small",{children:l.length{const y=e.positions.get(m.source),w=e.positions.get(m.target);if(!y||!w)return null;const S=A.project(y),x=A.project(w);return f.jsx("line",{x1:S.x,y1:S.y,x2:x.x,y2:x.y},m.id)})}),f.jsx("g",{className:"compass-minimap-nodes",children:l.map(m=>{const y=e.positions.get(m.id);if(!y)return null;const w=A.project(y);return f.jsx("circle",{cx:w.x,cy:w.y,r:m.id===o?3:1.65,fill:m.color?.background??h.get(m.community)??"currentColor","data-focused":m.id===o?"true":void 0},m.id)})}),f.jsx("rect",{className:"compass-minimap-viewport",x:A.viewport.x,y:A.viewport.y,width:A.viewport.width,height:A.viewport.height,rx:"2"})]})})]})}const Bx={added:{background:"#163d24",border:"#56d364"},removed:{background:"#4b1f24",border:"#ff7b72"},changed:{background:"#3d3015",border:"#d7a72b"},unchanged:{background:"#29313b",border:"#8b949e"}},Gq=200,Fq=1500,Px=.1,Vq=3,Uq=18,Yq=96,Hq=1500;function Kq(n,e){const t=[...e].sort().slice(0,Hq),i=n.getPositions(t),o=Object.values(i),r=o.length===0?0:Math.max(Math.max(...o.map(({x:l})=>l))-Math.min(...o.map(({x:l})=>l)),Math.max(...o.map(({y:l})=>l))-Math.min(...o.map(({y:l})=>l))),A=Math.min(Yq,Math.max(Uq,r*.012)),I=Math.PI*(3-Math.sqrt(5));t.forEach((l,c)=>{const h=i[l];if(!h)return;const p=c*I;n.moveNode(l,h.x+Math.cos(p)*A,h.y+Math.sin(p)*A)})}function Ls(n){return window.matchMedia("(prefers-reduced-motion: reduce)").matches?!1:{duration:n,easingFunction:"easeInOutQuad"}}const Wq={autoResize:!0,interaction:{hover:!0,tooltipDelay:100,hideEdgesOnDrag:!0,navigationButtons:!1,keyboard:{enabled:!0}},layout:{improvedLayout:!0},nodes:{borderWidth:1.5,shape:"dot"},edges:{arrows:{to:{enabled:!0,scaleFactor:.5}},smooth:{enabled:!0,type:"continuous",roundness:.2},selectionWidth:3},physics:{enabled:!0,solver:"forceAtlas2Based",stabilization:{enabled:!0,iterations:200,fit:!0,updateInterval:20},forceAtlas2Based:{gravitationalConstant:-60,centralGravity:.005,springLength:120,springConstant:.08,damping:.4,avoidOverlap:.8}}},Qq={autoResize:!0,interaction:{hover:!0,tooltipDelay:100,hideEdgesOnDrag:!0,navigationButtons:!1,keyboard:{enabled:!0}},layout:{improvedLayout:!0,randomSeed:17},nodes:{borderWidth:2,shape:"dot"},edges:{arrows:{to:{enabled:!0,scaleFactor:.38}},smooth:{enabled:!0,type:"continuous",roundness:.14},selectionWidth:3},physics:{enabled:!0,solver:"barnesHut",stabilization:{enabled:!0,iterations:520,fit:!0,updateInterval:25},maxVelocity:35,minVelocity:.55,barnesHut:{theta:.45,gravitationalConstant:-12e3,centralGravity:.12,springLength:180,springConstant:.025,damping:.3,avoidOverlap:.85}}},Xq={autoResize:!0,interaction:{hover:!0,tooltipDelay:100,hideEdgesOnDrag:!0,hideEdgesOnZoom:!0,hoverConnectedEdges:!1,selectConnectedEdges:!1,navigationButtons:!1,keyboard:{enabled:!0}},layout:{improvedLayout:!1,randomSeed:17},nodes:{borderWidth:1.5,shape:"dot"},edges:{arrows:{to:{enabled:!1}},chosen:!1,smooth:!1,selectionWidth:3},physics:{enabled:!1,solver:"barnesHut"}};function Lx(n,e,t,i,o){const r=e.change&&i?i[e.change]:void 0,A=r?r.background:e.color?.background??o?.get(e.community)??n.communities.find(I=>I.id===e.community)?.color??"#6688aa";return{background:A,border:t??r?.border??e.color?.border??A}}function Tn(n,e){return typeof window>"u"?e:getComputedStyle(document.documentElement).getPropertyValue(n).trim()||e}function $q(n){return n==="extracted"?{dashes:!1,width:2,opacity:.7}:n==="ambiguous"?{dashes:[3,4],width:2,opacity:.62}:n==="aggregated"?{dashes:!1,width:1,opacity:.2}:{dashes:!0,width:1,opacity:.35}}function Gx(n,e,t,i){if(n==="added")return{color:i.added.border,dashes:!1,width:1.7,opacity:.6};if(n==="removed")return{color:i.removed.border,dashes:[6,5],width:1.6,opacity:.56};if(n==="changed")return{color:i.changed.border,dashes:!1,width:1.65,opacity:.48};if(n==="unchanged")return{color:i.unchanged.border,dashes:!0,width:1,opacity:.2};const o=$q(e);return{color:t,...o}}function qq(n){return n==="added"?{enabled:!0,type:"curvedCW",roundness:.13}:n==="removed"?{enabled:!0,type:"curvedCCW",roundness:.13}:{enabled:!0,type:"continuous",roundness:.1}}function Jq(n){const e=new Map;for(const r of[...n].sort((A,I)=>A.id.localeCompare(I.id))){const A=r.change??"unchanged",I=e.get(A)??[];I.push(r),e.set(A,I)}const t={added:-300,changed:0,removed:300,unchanged:0},i=new Map,o=Math.PI*(3-Math.sqrt(5));for(const[r,A]of e)A.forEach((I,l)=>{const c=l*o,h=r==="unchanged"?210+Math.sqrt(l)*34:42+Math.sqrt(l)*40;i.set(I.id,{x:t[r]+Math.cos(c)*h,y:Math.sin(c)*h})});return i}function eJ(){const[n,e]=F.useState(0);return F.useEffect(()=>{const t=()=>e(r=>r+1),i=new MutationObserver(t);i.observe(document.documentElement,{attributes:!0,attributeFilter:["class","style"]}),i.observe(document.body,{attributes:!0,attributeFilter:["class","style"]});const o=window.matchMedia("(prefers-color-scheme: dark)");return o.addEventListener("change",t),()=>{i.disconnect(),o.removeEventListener("change",t)}},[]),n}function Ru(n){const e=n.match(/^#([\da-f]{3}|[\da-f]{6})$/i)?.[1];if(e){const i=e.length===3?[...e].map(o=>`${o}${o}`).join(""):e;return[Number.parseInt(i.slice(0,2),16),Number.parseInt(i.slice(2,4),16),Number.parseInt(i.slice(4,6),16)]}const t=n.match(/^rgba?\(\s*([\d.]+)[,\s]+([\d.]+)[,\s]+([\d.]+)/i);if(t)return[Number.parseFloat(t[1]??"0"),Number.parseFloat(t[2]??"0"),Number.parseFloat(t[3]??"0")]}function tJ(n,e,t){const i=Ru(n),o=Ru(e);if(!i||!o)return e;const r=i.map((A,I)=>Math.round(A*(1-t)+o[I]*t));return`rgb(${r[0]}, ${r[1]}, ${r[2]})`}function nJ(n){const e=Ru(n);return e?(e[0]*299+e[1]*587+e[2]*114)/1e3<145:!0}function CI(n,e,t,i=!1){return{background:tJ(n,e,i?t?.18:.1:t?.26:.14),border:e}}const iJ=F.forwardRef(function({model:e,focusedNodeId:t,physicsRunning:i,layoutStyle:o="automatic",initialPositions:r,forceLabels:A,showEdgeLabels:I=!1,isolatedNodeIds:l,isolatedEdgeIds:c,layoutSpacing:h=1,showMinimap:p=!1,hiddenCommunities:m,hiddenChanges:y,onFocus:w,onOpenSource:S,onOpenRelationshipSource:x,onHover:O,onHoverEdge:E,onClear:_,onStabilized:P},Q){const ne=F.useRef(null),j=F.useRef(null),[V,de]=F.useState(null),le=F.useRef(i);le.current=i;const Ze=F.useRef(i),Ee=F.useRef({onFocus:w,onOpenSource:S,onOpenRelationshipSource:x,onHover:O,onHoverEdge:E,onClear:_});Ee.current={onFocus:w,onOpenSource:S,onOpenRelationshipSource:x,onHover:O,onHoverEdge:E,onClear:_};const Ue=F.useRef(P);Ue.current=P;const We=F.useRef(null),Ae=F.useRef(h),M=eJ(),U=F.useMemo(()=>Nq(e),[e.edges.length,e.nodes.length]),K=F.useMemo(()=>_x(e),[e]),re=F.useMemo(()=>new Set(e.nodes.filter(R=>!m.has(R.community)&&!y.has(R.change??"unchanged")&&(!l||l.has(R.id))).map(R=>R.id)),[y,m,l,e.nodes]),ee=F.useMemo(()=>new Set(K.filter(R=>re.has(R.source)&&re.has(R.target)&&(!c||c.has(R.id))).map(R=>R.id)),[c,K,re]),T=F.useRef(re);T.current=re;const L=F.useCallback(()=>{const R=j.current,Ce=ne.current;if(!R||!Ce)return;const Qe=R.getPositions([...T.current].sort().slice(0,Fq)),xt=R.getViewPosition(),bt=Math.max(Px,R.getScale()),Bt=Math.max(1,Ce.clientWidth)/bt,pI=Math.max(1,Ce.clientHeight)/bt;de({positions:new Map(Object.entries(Qe)),viewport:{left:xt.x-Bt/2,top:xt.y-pI/2,width:Bt,height:pI}})},[]),te=F.useMemo(()=>{let R=1;for(const Ce of e.nodes)R=Math.max(R,Ce.degree??1);return R},[e.nodes]),ae=F.useMemo(()=>new Map(e.communities.map(R=>[R.id,R.color])),[e.communities]),ue=F.useMemo(()=>Tn("--vscode-editor-foreground",Tn("--foreground","#eef5ff")),[M]),ye=F.useMemo(()=>Tn("--vscode-descriptionForeground",Tn("--muted-foreground","#60728b")),[M]),Be=F.useMemo(()=>Tn("--vscode-editor-foreground",Tn("--foreground","#d8e4f2")),[M]),ct=F.useMemo(()=>{const R=Tn("--vscode-editor-background",Tn("--background","#08111f")),Ce=nJ(R);return{added:CI(R,Tn("--vscode-gitDecoration-addedResourceForeground",Ce?"#56d364":"#1a7f37"),Ce),removed:CI(R,Tn("--vscode-gitDecoration-deletedResourceForeground",Ce?"#ff7b72":"#cf222e"),Ce),changed:CI(R,Tn("--vscode-gitDecoration-modifiedResourceForeground",Ce?"#d7a72b":"#9a6700"),Ce),unchanged:CI(R,Tn("--vscode-descriptionForeground",Ce?"#8b949e":"#656d76"),Ce,!0)}},[M]),he=F.useMemo(()=>e.nodes.some(R=>R.change!==void 0)||e.edges.some(R=>R.change!==void 0),[e.edges,e.nodes]),sn=F.useMemo(()=>new Set(he?e.nodes.filter(R=>R.change!=="unchanged").sort((R,Ce)=>(Ce.degree??0)-(R.degree??0)||R.id.localeCompare(Ce.id)).slice(0,12).map(R=>R.id):U==="static"?[...e.nodes].sort((R,Ce)=>(Ce.degree??0)-(R.degree??0)||R.id.localeCompare(Ce.id)).slice(0,20).map(R=>R.id):[]),[he,e.nodes,U]),z=F.useMemo(()=>U==="static"?new Set([...e.nodes].sort((R,Ce)=>(Ce.degree??0)-(R.degree??0)||R.id.localeCompare(Ce.id)).slice(0,Gq).map(R=>R.id)):new Set,[e.nodes,U]),me=F.useMemo(()=>he?Jq(e.nodes):new Map,[he,e.nodes]),_e=o==="automatic"?1:h,ke=F.useMemo(()=>o==="automatic"?new Map:Mq(e.nodes,o,e.stats.aggregated),[o,e.nodes,e.stats.aggregated]),Nt=F.useMemo(()=>U==="static"&&!he?Dq(e.nodes,e.stats.aggregated):new Map,[he,e.nodes,e.stats.aggregated,U]),Dt=F.useMemo(()=>typeof document>"u"?void 0:document.body.classList.contains("vscode-high-contrast")||document.body.classList.contains("vscode-high-contrast-light")?Tn("--vscode-contrastBorder","#ffffff"):void 0,[M]),ie=F.useMemo(()=>new Zs(e.nodes.map(R=>{const Ce=R.size??Math.min(40,10+30*(R.degree??1)/te),Qe=he?R.change==="unchanged"?7+5*Math.sqrt((R.degree??1)/te):11+12*Math.sqrt((R.degree??1)/te):Ce,xt=ke.get(R.id)??me.get(R.id)??r?.get(R.id)??Nt.get(R.id),bt=xt?{x:xt.x*_e,y:xt.y*_e}:void 0;return{id:R.id,label:R.label,color:Lx(e,R,void 0,Bx,ae),size:Qe,...bt??{},opacity:R.change==="unchanged"?.58:1,font:{color:"#eef5ff",face:"system-ui",size:he||U==="static"?sn.has(R.id)?12:0:(R.degree??1)>=te*.15?12:0}}})),[sn,he,me,ae,r,_e,te,e,U,ke,Nt]),Te=F.useMemo(()=>new Zs(K.map(R=>{const Ce=Gx(R.change,R.confidence,"#60728b",Bx);return{id:R.id,from:R.source,to:R.target,dashes:Ce.dashes,width:Ce.width,...he&&U!=="static"?{smooth:qq(R.change)}:{},color:{color:Ce.color,opacity:Ce.opacity}}})),[he,K,U]);return F.useEffect(()=>{const R=ne.current;if(!R)return;We.current=null;const Ce=new ve(R,{nodes:ie,edges:Te},U==="static"?Xq:he?Qq:Wq);Ce.setOptions({physics:{enabled:le.current}}),le.current||Ce.stopSimulation(),j.current=Ce,Eq(Ce,{onFocus:bt=>Ee.current.onFocus(bt),onOpenSource:bt=>Ee.current.onOpenSource(bt),onOpenRelationshipSource:bt=>Ee.current.onOpenRelationshipSource(bt),onHover:bt=>Ee.current.onHover(bt),onHoverEdge:bt=>Ee.current.onHoverEdge(bt),onClear:()=>Ee.current.onClear()}),Ce.on("stabilizationIterationsDone",()=>{We.current={position:Ce.getViewPosition(),scale:Ce.getScale()},Ue.current(),L()}),Ce.on("stabilized",L),Ce.on("dragEnd",L),Ce.on("zoom",L),Ce.on("resize",L),Ce.on("animationFinished",L);const Qe=me.size>0||ke.size>0||(r?.size??0)>0||Nt.size>0;!le.current&&Qe&&(Ce.stopSimulation(),Ce.fit({animation:!1}),We.current={position:Ce.getViewPosition(),scale:Ce.getScale()});const xt=window.setTimeout(L,0);return()=>{window.clearTimeout(xt),Ce.destroy(),j.current=null}},[Te,ie,he,me,r,U,ke,Nt,L]),F.useEffect(()=>{const R=j.current;if(!R)return;const Ce=Ze.current;Ze.current=i,R.setOptions({physics:{enabled:i}}),i?(Ce||Kq(R,T.current),R.startSimulation()):R.stopSimulation()},[Te,ie,i]),F.useEffect(()=>{const R=j.current;if(!R||o!=="automatic"||U==="static")return;const Ce=Ae.current;if(Ae.current=h,R.setOptions({physics:he?{barnesHut:{springLength:180*h}}:{forceAtlas2Based:{springLength:120*h}}}),!i&&Ce!==h){const Qe=h/Ce,xt=R.getPositions();ie.update(Object.entries(xt).map(([bt,Bt])=>({id:bt,x:Bt.x*Qe,y:Bt.y*Qe}))),R.redraw(),L()}},[he,h,o,ie,i,L,U]),F.useEffect(()=>{ie.update(e.nodes.map(R=>({id:R.id,hidden:!re.has(R.id)}))),Te.update(K.map(R=>({id:R.id,hidden:!ee.has(R.id)}))),L()},[Te,L,K,e.nodes,ie,ee,re]),F.useEffect(()=>{const R=j.current;if(!R)return;const Ce=t?new Set(R.getConnectedNodes(t).map(String)):new Set;if(ie.update(e.nodes.map(Qe=>{const xt=Qe.id===t,bt=!t||xt||Ce.has(Qe.id),Bt=Qe.change==="unchanged"?.58:1;return{id:Qe.id,opacity:t?bt?Math.max(Bt,.72):.08:Bt,borderWidth:xt?4:Dt?2.5:1.5,color:Lx(e,Qe,Dt,ct,ae),shadow:xt?{enabled:!0,color:Qe.change?ct[Qe.change].border:Qe.color?.background??ae.get(Qe.community)??"#76b7ff",size:24,x:0,y:0}:{enabled:!1}}})),Te.update(K.map(Qe=>{const xt=Gx(Qe.change,Qe.confidence,ye,ct),bt=Qe.source===t||Qe.target===t;return{id:Qe.id,dashes:xt.dashes,color:{color:xt.color,opacity:t?bt?.92:.05:xt.opacity},width:bt?Math.max(3,xt.width):xt.width}})),t)if(R.selectNodes([t]),le.current)R.focus(t,{scale:1.35,animation:window.matchMedia("(prefers-reduced-motion: reduce)").matches?!1:{duration:260,easingFunction:"easeInOutQuad"}});else{const Qe=R.getPositions([t])[t];Qe&&R.moveTo({position:Qe,scale:1.35,animation:!1})}else R.unselectAll()},[Dt,ct,ae,ye,Te,t,e,ie,K]),F.useEffect(()=>{ie.update(e.nodes.map(R=>({id:R.id,font:{color:ue,size:A&&(U!=="static"||z.has(R.id))||R.id===t||(he||U==="static"?sn.has(R.id):(R.degree??1)>=te*.15)?12:0}})))},[sn,he,z,t,A,ue,te,e.nodes,ie,U]),F.useEffect(()=>{Te.update(K.map(R=>({id:R.id,label:I?R.relation:"",font:{align:"middle",color:Be,face:"system-ui",size:10,strokeWidth:3,strokeColor:Tn("--vscode-editor-background",Tn("--background","#08111f"))}})))},[Te,Be,K,I]),F.useImperativeHandle(Q,()=>({fit(){j.current?.fit({animation:Ls(280)})},fitSelection(R){const Ce=j.current;!Ce||R.length===0||Ce.fit({nodes:[...new Set(R)],animation:Ls(240)})},reset(){const R=j.current,Ce=We.current;if(R){if(!Ce){R.fit({animation:!1});return}R.moveTo({position:Ce.position,scale:Ce.scale,animation:!1})}},resetZoom(){j.current?.moveTo({scale:1,animation:Ls(180)})},zoomIn(){const R=j.current;R&&R.moveTo({scale:Math.min(Vq,R.getScale()*1.25),animation:Ls(160)})},zoomOut(){const R=j.current;R&&R.moveTo({scale:Math.max(Px,R.getScale()/1.25),animation:Ls(160)})}}),[]),f.jsxs(f.Fragment,{children:[f.jsx("div",{ref:ne,className:"compass-canvas","data-rendering-profile":U,"data-layout-style":o,"data-physics-running":i?"true":"false","data-isolated":l?"true":"false","data-layout-spacing":h,role:"region","aria-label":"Interactive Compass code graph",onMouseLeave:()=>{O(null),E(null)}}),p&&V?f.jsx(Lq,{model:e,snapshot:V,visibleNodeIds:re,visibleEdgeIds:ee,focusedNodeId:t,onNavigate:R=>j.current?.moveTo({position:R,animation:Ls(180)})}):null]})}),Fx=1,Vx=4;function gJ(n){return Math.max(Fx,Math.min(Vx,Math.trunc(n)))}function oJ(n,e,t,i){const o=gJ(t),r=new Map,A=new Map;for(const h of n.edges){const p=r.get(h.source)??[];p.push(h),r.set(h.source,p);const m=A.get(h.target)??[];m.push(h),A.set(h.target,m)}for(const h of[...r.values(),...A.values()])h.sort((p,m)=>p.id.localeCompare(m.id));const I=new Set([e]),l=new Set;let c=[e];for(let h=0;h0;h+=1){const p=new Set;for(const m of c.sort()){if(i!=="incoming")for(const y of r.get(m)??[])l.add(y.id),I.has(y.target)||p.add(y.target);if(i!=="outgoing")for(const y of A.get(m)??[])l.add(y.id),I.has(y.source)||p.add(y.source)}c=[...p];for(const m of c)I.add(m)}return{nodeIds:I,edgeIds:l}}const Ux={focusedNodeId:null,physicsRunning:!1,layoutStyle:"automatic",initialLayoutPending:!1,forceLabels:!1,showEdgeLabels:!1,isolateSelection:!1,neighborhoodDepth:1,edgeDirection:"both",layoutSpacing:1,showMinimap:!0,hiddenCommunities:new Set,hiddenChanges:new Set,query:""};function sJ(n,e="automatic"){return e!=="automatic"?{...Ux,layoutStyle:e,physicsRunning:!1,initialLayoutPending:!1}:{...Ux,physicsRunning:!1,initialLayoutPending:!1}}function rJ(n,e){switch(e.type){case"focus":return{...n,focusedNodeId:e.nodeId,physicsRunning:!1};case"clearFocus":return{...n,focusedNodeId:null,isolateSelection:!1};case"stabilized":return n.physicsRunning||n.initialLayoutPending?{...n,physicsRunning:!1,initialLayoutPending:!1}:n;case"revealLayout":return{...n,physicsRunning:!1,initialLayoutPending:!1};case"setPhysics":return{...n,physicsRunning:e.running};case"setLayout":return{...n,layoutStyle:e.layout,physicsRunning:e.runPhysics,initialLayoutPending:!1};case"setLabels":return{...n,forceLabels:e.visible};case"setEdgeLabels":return{...n,showEdgeLabels:e.visible};case"setIsolation":return{...n,isolateSelection:e.isolated};case"setNeighborhoodDepth":return{...n,neighborhoodDepth:Math.max(1,Math.min(4,Math.trunc(e.depth)))};case"setEdgeDirection":return{...n,edgeDirection:e.direction};case"setLayoutSpacing":return{...n,layoutSpacing:e.spacing};case"setMinimap":return{...n,showMinimap:e.visible};case"search":return{...n,query:e.query};case"toggleCommunity":{const t=new Set(n.hiddenCommunities);return t.has(e.communityId)?t.delete(e.communityId):t.add(e.communityId),{...n,hiddenCommunities:t}}case"setHiddenCommunities":return{...n,hiddenCommunities:new Set(e.communityIds)};case"toggleChange":{const t=new Set(n.hiddenChanges);return t.has(e.change)?t.delete(e.change):t.add(e.change),{...n,hiddenChanges:t}}}}const aJ=[{value:"added",label:"Added"},{value:"removed",label:"Removed"},{value:"changed",label:"Changed"},{value:"unchanged",label:"Context"}],AJ={hierarchical:"Depth-layer layout",circle:"Circle layout",concentric:"Concentric layout",spiral:"Spiral layout",grid:"Square grid layout"},_u=["both","outgoing","incoming"];function CJ(n){return n instanceof HTMLElement&&(n.isContentEditable||n.tagName==="INPUT"||n.tagName==="TEXTAREA"||n.tagName==="SELECT")}function ju({model:n,host:e,communityDetail:t,communityLoading:i,communityError:o,onBackToOverview:r,sourceRevisions:A,queryResult:I,initialInspectorLayout:l,onInspectorLayoutChange:c,preferredLayout:h="automatic",toolbarLeading:p,toolbarLeadingPanel:m,toolbarLeadingOpen:y,onToolbarLeadingClose:w,stageOverlay:S,showInspectorHeader:x=!0}){const[O,E]=F.useState(()=>vv(l)),_=F.useCallback(ne=>{const j=vv(ne);E(j),c?.(j)},[c]),P=t?.model??n,Q=t?`community-${t.communityId}`:"overview";return f.jsx(IJ,{model:P,host:e,detailCommunityId:t?.communityId,communityLoading:i,communityError:o,onBackToOverview:t?r:void 0,bounded:t?.bounded,sourceRevisions:A,queryResult:I,inspectorLayout:O,onInspectorLayoutChange:_,preferredLayout:h,toolbarLeading:p,toolbarLeadingPanel:m,toolbarLeadingOpen:y,onToolbarLeadingClose:w,stageOverlay:S,showInspectorHeader:x},Q)}function IJ({model:n,host:e,detailCommunityId:t,communityLoading:i,communityError:o,onBackToOverview:r,bounded:A,sourceRevisions:I,queryResult:l,inspectorLayout:c,onInspectorLayoutChange:h,preferredLayout:p,toolbarLeading:m,toolbarLeadingPanel:y,toolbarLeadingOpen:w,onToolbarLeadingClose:S,stageOverlay:x,showInspectorHeader:O}){const[E,_]=F.useReducer(rJ,n,ie=>sJ(ie,p)),[P,Q]=F.useState(null),[ne,j]=F.useState(null),V=F.useRef(null),de=F.useRef(e);de.current=e;const le=F.useMemo(()=>new Map(n.nodes.map(ie=>[ie.id,ie])),[n.nodes]),Ze=F.useMemo(()=>new Map(n.edges.map(ie=>[ie.id,ie])),[n.edges]),Ee=F.useMemo(()=>{const ie=new Map,Te=new Map;for(const R of n.edges){const Ce=ie.get(R.source)??new Set;Ce.add(R.target),ie.set(R.source,Ce);const Qe=ie.get(R.target)??new Set;Qe.add(R.source),ie.set(R.target,Qe);const xt=Te.get(R.source)??[];xt.push(R),Te.set(R.source,xt);const bt=Te.get(R.target)??[];bt.push(R),Te.set(R.target,bt)}return{neighborIds:ie,edges:Te}},[n.edges]),Ue=F.useMemo(()=>n.nodes.map(ie=>({node:ie,text:[ie.label,ie.source?.file,ie.kind].filter(Te=>Te!==void 0).join(` +`).toLocaleLowerCase()})),[n.nodes]),We=F.useMemo(()=>_x(n).length,[n]),Ae=E.focusedNodeId?le.get(E.focusedNodeId):void 0,M=F.useMemo(()=>Ae?oJ(n,Ae.id,E.neighborhoodDepth,E.edgeDirection):null,[n,Ae,E.edgeDirection,E.neighborhoodDepth]),U=P?le.get(P.nodeId):void 0,K=U?yv(n,U,t):void 0,re=ne?Ze.get(ne.edgeId):void 0,ee=re?le.get(re.source):void 0,T=re?le.get(re.target):void 0,L=F.useMemo(()=>n.nodes.some(ie=>ie.change!==void 0)||n.edges.some(ie=>ie.change!==void 0),[n.edges,n.nodes]),te=F.useMemo(()=>{const ie=new Map;for(const Te of n.nodes){const R=Te.change??"unchanged";ie.set(R,(ie.get(R)??0)+1)}return ie},[n.nodes]),ae=F.useMemo(()=>Ae?[...Ee.neighborIds.get(Ae.id)??[]].map(ie=>le.get(ie)).filter(ie=>ie!==void 0).sort((ie,Te)=>ie.label.localeCompare(Te.label)):[],[Ee.neighborIds,le,Ae]),ue=F.useMemo(()=>Ae?Ee.edges.get(Ae.id)??[]:[],[Ee.edges,Ae]),ye=F.useDeferredValue(E.query),Be=F.useMemo(()=>{const ie=ye.trim().toLocaleLowerCase();if(!ie)return[];const Te=[];for(const R of Ue)if(R.text.includes(ie)&&Te.push(R.node),Te.length===20)break;return Te},[ye,Ue]),ct=F.useCallback(ie=>{Q(null),j(null),_({type:"focus",nodeId:ie})},[]),he=F.useCallback(()=>{Q(null),j(null),_({type:"clearFocus"})},[]);F.useEffect(()=>{E.focusedNodeId&&!le.has(E.focusedNodeId)&&he()},[he,le,E.focusedNodeId]),F.useEffect(()=>{const ie=Te=>{if(Te.metaKey||Te.ctrlKey||Te.altKey||CJ(Te.target))return;const R=Te.key.toLocaleLowerCase();let Ce=!0;if(R==="f")Te.shiftKey&&M?V.current?.fitSelection([...M.nodeIds]):Te.shiftKey?Ce=!1:V.current?.fit();else if(R==="+"||R==="=")V.current?.zoomIn();else if(R==="-"||R==="_")V.current?.zoomOut();else if(R==="0")V.current?.resetZoom();else if(R==="i"&&Ae)_({type:"setIsolation",isolated:!E.isolateSelection});else if(R==="[")_({type:"setNeighborhoodDepth",depth:Math.max(Fx,E.neighborhoodDepth-1)});else if(R==="]")_({type:"setNeighborhoodDepth",depth:Math.min(Vx,E.neighborhoodDepth+1)});else if(R==="d"){const Qe=_u.indexOf(E.edgeDirection);_({type:"setEdgeDirection",direction:_u[(Qe+1)%_u.length]??"both"})}else R==="m"?_({type:"setMinimap",visible:!E.showMinimap}):Ce=!1;Ce&&Te.preventDefault()};return document.addEventListener("keydown",ie,{capture:!0}),()=>document.removeEventListener("keydown",ie,{capture:!0})},[Ae,M,E.edgeDirection,E.isolateSelection,E.neighborhoodDepth,E.showMinimap]);const sn=F.useCallback(()=>{_({type:"stabilized"})},[]),z=F.useCallback(()=>{_({type:"revealLayout"})},[]),me=F.useCallback(ie=>{const Te=le.get(ie);if(!Te)return;const R=yv(n,Te,t);R.type==="community"&&de.current.openCommunity?.(R.communityId),R.type==="source"&&de.current.openSource(R.source,Te.change==="removed"?I?.before:I?.after)},[t,le,n.stats.aggregated,I?.after,I?.before]),_e=F.useCallback(ie=>{const Te=Ze.get(ie);if(!Te)return;const R=Av(Te);R&&de.current.openSource(R,Te.change==="removed"?I?.before:I?.after)},[Ze,I?.after,I?.before]),ke=Ae&&E.isolateSelection&&M?`Isolated ${M.nodeIds.size} nodes · ${E.neighborhoodDepth} hop${E.neighborhoodDepth===1?"":"s"}`:Ae?`Inspecting ${Ae.label}`:E.layoutStyle!=="automatic"?AJ[E.layoutStyle]:E.physicsRunning?"Layout running":"Layout static",Nt=i!=null?n.communities.find(ie=>ie.id===i):void 0,Dt=i!=null?{kind:"community",communityLabel:Nt?.label??`Community ${i}`}:E.initialLayoutPending?{kind:"layout"}:null;return f.jsxs("div",{className:"compass-workspace",style:{"--compass-inspector-width":`${c.width}px`},children:[f.jsxs("div",{className:"compass-workspace-content","data-inspector-collapsed":c.collapsed,inert:Dt?!0:void 0,"aria-hidden":Dt?!0:void 0,children:[f.jsxs("main",{className:"compass-graph-stage","data-comparison":L?"true":"false",children:[f.jsx(iJ,{ref:V,model:n,focusedNodeId:Ae?.id??null,physicsRunning:E.physicsRunning,layoutStyle:E.layoutStyle,forceLabels:E.forceLabels,showEdgeLabels:E.showEdgeLabels,isolatedNodeIds:E.isolateSelection?M?.nodeIds:void 0,isolatedEdgeIds:E.isolateSelection?M?.edgeIds:void 0,layoutSpacing:E.layoutSpacing,showMinimap:E.showMinimap,hiddenCommunities:E.hiddenCommunities,hiddenChanges:E.hiddenChanges,onFocus:ct,onOpenSource:me,onOpenRelationshipSource:_e,onHover:Q,onHoverEdge:j,onClear:he,onStabilized:sn}),x,f.jsx(R3,{status:ke,physicsRunning:E.physicsRunning,layoutStyle:E.layoutStyle,forceLabels:E.forceLabels,showEdgeLabels:E.showEdgeLabels,hasSelection:Ae!==void 0,isolateSelection:E.isolateSelection,neighborhoodDepth:E.neighborhoodDepth,edgeDirection:E.edgeDirection,layoutSpacing:E.layoutSpacing,showMinimap:E.showMinimap,leadingControls:m,leadingPanel:y,leadingPanelOpen:w,onLeadingPanelClose:S,onTogglePhysics:()=>_({type:"setPhysics",running:!E.physicsRunning}),onLayoutChange:ie=>_({type:"setLayout",layout:ie,runPhysics:!1}),onZoomOut:()=>V.current?.zoomOut(),onResetZoom:()=>V.current?.resetZoom(),onZoomIn:()=>V.current?.zoomIn(),onFit:()=>V.current?.fit(),onFitSelection:()=>{M&&V.current?.fitSelection([...M.nodeIds])},onReset:()=>{he(),_({type:"setIsolation",isolated:!1}),V.current?.reset()},onToggleLabels:()=>_({type:"setLabels",visible:!E.forceLabels}),onToggleEdgeLabels:()=>_({type:"setEdgeLabels",visible:!E.showEdgeLabels}),onToggleIsolation:()=>{const ie=!E.isolateSelection;_({type:"setIsolation",isolated:ie}),ie&&M&&window.requestAnimationFrame(()=>{V.current?.fitSelection([...M.nodeIds])})},onNeighborhoodDepthChange:ie=>_({type:"setNeighborhoodDepth",depth:ie}),onEdgeDirectionChange:ie=>_({type:"setEdgeDirection",direction:ie}),onLayoutSpacingChange:ie=>_({type:"setLayoutSpacing",spacing:ie}),onToggleMinimap:()=>_({type:"setMinimap",visible:!E.showMinimap}),onBack:r}),L&&f.jsx("div",{className:"compass-change-legend","aria-label":"Graph change filters",children:aJ.filter(({value:ie})=>(te.get(ie)??0)>0).map(({value:ie,label:Te})=>{const R=!E.hiddenChanges.has(ie);return f.jsxs("button",{type:"button","data-change":ie,"aria-pressed":R,onClick:()=>_({type:"toggleChange",change:ie}),children:[f.jsx("span",{"aria-hidden":"true"}),Te,f.jsx("small",{children:te.get(ie)??0})]},ie)})}),o&&f.jsx("div",{className:"absolute bottom-4 left-4 z-20 max-w-md rounded-md border border-destructive/50 bg-background/95 px-3 py-2 text-sm text-destructive shadow-lg",role:"alert",children:o}),A&&f.jsxs("div",{className:"compass-bounded-notice",role:"status",children:[f.jsx("strong",{children:"Partial community comparison"}),f.jsxs("span",{children:["This view is limited to ",A.limit.toLocaleString()," nodes. Increase"," ",f.jsx("code",{children:"compass.graphNodeLimit"})," to inspect all"," ",Math.max(A.parentMembers,A.currentMembers).toLocaleString()," symbols."]})]}),P&&U&&K&&f.jsx(P3,{node:U,hover:P,activation:K}),ne&&re&&ee&&T&&f.jsx(Y3,{edge:re,sourceNode:ee,targetNode:T,hover:ne})]}),!c.collapsed&&f.jsx(Z3,{width:c.width,onResize:ie=>h({...c,width:ie})}),f.jsx(D3,{model:n,selected:Ae,neighbors:ae,connectedEdges:ue,query:E.query,matches:Be,hiddenCommunities:E.hiddenCommunities,comparisonMode:L,sourceRevisions:I,queryResult:l,renderedEdgeCount:We,showHeader:O,onQueryChange:ie=>_({type:"search",query:ie}),onFocus:ct,onOpenSource:e.openSource,onOpenCommunity:t===void 0?e.openCommunity:void 0,onQueryNode:e.queryNode,onToggleCommunity:ie=>_({type:"toggleCommunity",communityId:ie}),onSetAllVisible:ie=>_({type:"setHiddenCommunities",communityIds:ie?[]:n.communities.map(Te=>Te.id)}),collapsed:c.collapsed,onToggleCollapsed:()=>h({...c,collapsed:!c.collapsed})})]}),Dt?.kind==="community"?f.jsx(hv,{kind:"community",communityLabel:Dt.communityLabel}):Dt?.kind==="layout"?f.jsx(hv,{kind:"layout",onShowGraph:z}):null]})}const Zu=224,lJ=76,II=124,Bu=96,Gs=96,cJ=288,dJ=112,Pu=12;function uJ(n,e,t={width:1280,height:620},i={},o){const r=n.filter(j=>j.nodeCount>0||j.incomingCalls>0||j.outgoingCalls>0);if(r.length===0)return{width:t.width,height:t.height,nodes:[],routes:[],lanes:[]};const A=new Set(r.map(j=>j.id)),I=e.filter(j=>A.has(j.sourceSection)&&A.has(j.targetSection)),l=hJ(r,I),c=l.length,h=Math.max(t.width,Gs*2+cJ*c),p=(h-Gs*2)/c;mJ(l,I);const m=Math.max(...l.map(j=>j.length)),y=Math.max(t.height,II+Bu+m*dJ),w=l.findIndex(j=>j.some(V=>V.id===o)),S=Array.from({length:c},(j,V)=>({index:V,x:Gs+p*V,width:p,label:xJ(V,c,w<0?void 0:w)})),x=y-II-Bu,O=l.flatMap((j,V)=>{const de=x/Math.max(1,j.length);return j.map((le,Ze)=>{const Ee={x:Gs+p*V+p/2,y:II+de*Ze+de/2},Ue=i[le.id]??Ee;return{...le,x:Lu(Ue.x,Gs+Zu/2,h-Gs-Zu/2),y:Lu(Ue.y,II,y-Bu),width:Math.min(Zu,p-40),height:lJ,column:wJ(Ue.x,S)}})}),E=new Map(O.map(j=>[j.id,j])),_=yJ(I,E),P=Wx(I,E,"source"),Q=Wx(I,E,"target"),ne=I.flatMap(j=>{const V=E.get(j.sourceSection),de=E.get(j.targetSection);if(!V||!de)return[];const le=Qx(V,de);return[{...j,direction:le,path:vJ(V,de,le,_.get(j.id)??0,{height:y},P.get(j.id)??0,Q.get(j.id)??0),width:1+Math.min(4.4,Math.log10(j.calls+1)*1.35)}]});return{width:h,height:y,nodes:O,routes:ne,lanes:S}}function hJ(n,e){if(n.length===1)return[[n[0]]];if(e.length===0)return Yx(n);const t=fJ(n,e),i=new Map(t.map((c,h)=>[c.id,h])),o=new Map;for(const c of n)o.set(c.id,[]);for(const c of e)(i.get(c.sourceSection)??0)<(i.get(c.targetSection)??0)&&c.sourceSection!==c.targetSection&&o.get(c.targetSection)?.push(c);const r=new Map;for(const c of t){const h=(o.get(c.id)??[]).map(p=>(r.get(p.sourceSection)??0)+1);r.set(c.id,h.length>0?Math.max(...h):0)}const A=Math.max(0,...r.values()),I=Math.min(Pu,A+1);if(I===1)return Yx(n);const l=Array.from({length:I},()=>[]);for(const c of t){const h=r.get(c.id)??0,p=Ac.length>0)}function fJ(n,e){const t=new Map(n.map(A=>[A.id,A])),i=new Set(t.keys()),o=[],r=[];for(;i.size>0;){const A=pJ(i,e),I=[...i].map(p=>({section:t.get(p),incoming:A.incoming.get(p)??0,outgoing:A.outgoing.get(p)??0})),l=I.filter(p=>p.incoming===0),c=I.filter(p=>p.outgoing===0);if(l.length>0){const p=l.sort((m,y)=>y.outgoing-m.outgoing||Za(m.section,y.section))[0];o.push(p.section),i.delete(p.section.id);continue}if(c.length>0){const p=c.sort((m,y)=>y.incoming-m.incoming||Za(m.section,y.section))[0];r.unshift(p.section),i.delete(p.section.id);continue}const h=I.sort((p,m)=>m.outgoing-m.incoming-(p.outgoing-p.incoming)||m.outgoing+m.incoming-(p.outgoing+p.incoming)||Za(p.section,m.section))[0];o.push(h.section),i.delete(h.section.id)}return[...o,...r]}function pJ(n,e){const t=new Map,i=new Map;for(const o of e){if(o.sourceSection===o.targetSection||!n.has(o.sourceSection)||!n.has(o.targetSection))continue;const r=1+Math.log10(o.calls+1);i.set(o.sourceSection,(i.get(o.sourceSection)??0)+r),t.set(o.targetSection,(t.get(o.targetSection)??0)+r)}return{incoming:t,outgoing:i}}function Yx(n){const e=Math.min(6,Math.max(2,Math.ceil(Math.sqrt(n.length)))),t=Array.from({length:e},()=>[]);return[...n].sort(Za).forEach((i,o)=>{t[Math.floor(o*e/n.length)].push(i)}),t}function mJ(n,e){const t=new Map;for(const i of e)Hx(t,i.sourceSection,i.targetSection,i.calls),Hx(t,i.targetSection,i.sourceSection,i.calls);for(let i=0;i<8;i+=1)for(const o of[1,-1]){const r=o===1?1:n.length-2,A=o===1?n.length:-1;for(let I=r;I!==A;I+=o){const l=new Map,c=o===1?n.slice(0,I):n.slice(I+1);for(const p of c)p.forEach((m,y)=>{l.set(m.id,p.length===1?.5:y/(p.length-1))});const h=new Map(n[I].map((p,m,y)=>[p.id,y.length===1?.5:m/(y.length-1)]));n[I].sort((p,m)=>{const y=Kx(p.id,t,l),w=Kx(m.id,t,l);return(y??h.get(p.id)??.5)-(w??h.get(m.id)??.5)||Za(p,m)})}}}function Hx(n,e,t,i){const o=n.get(e)??new Map;o.set(t,(o.get(t)??0)+i),n.set(e,o)}function Kx(n,e,t){let i=0,o=0;for(const[r,A]of e.get(n)??[]){const I=t.get(r);I!==void 0&&(i+=I*A,o+=A)}return o>0?i/o:void 0}function vJ(n,e,t,i,o,r,A){const I=n.y+r,l=e.y+A;if(t==="forward"){const w=n.x+n.width/2,S=e.x-e.width/2,x=Math.max(1,S-w),O=Lu(x*.42,42,168),E=SJ(i%9,1.5);return[`M ${w} ${I}`,`C ${w+O} ${I+E}`,`${S-O} ${l+E}`,`${S} ${l}`].join(" ")}if(t==="backward"){const w=n.x-n.width/2,S=e.x+e.width/2,x=(I+l)/2{const I=e.get(r.sourceSection),l=e.get(A.sourceSection),c=e.get(r.targetSection),h=e.get(A.targetSection);return(I?.column??0)-(l?.column??0)||(c?.column??0)-(h?.column??0)||(I?.y??0)-(l?.y??0)||(c?.y??0)-(h?.y??0)||A.calls-r.calls||r.id.localeCompare(A.id)});for(const r of o){const A=e.get(r.sourceSection),I=e.get(r.targetSection);if(!A||!I)continue;const l=Qx(A,I),c=`${Math.min(A.column,I.column)}:${Math.max(A.column,I.column)}:${l}`,h=i.get(c)??0;t.set(r.id,h),i.set(c,h+1)}return t}function Wx(n,e,t){const i=new Map;for(const r of n){const A=t==="source"?r.sourceSection:r.targetSection,I=i.get(A)??[];I.push(r),i.set(A,I)}const o=new Map;for(const r of i.values()){r.sort((I,l)=>{const c=e.get(t==="source"?I.targetSection:I.sourceSection),h=e.get(t==="source"?l.targetSection:l.sourceSection);return(c?.y??0)-(h?.y??0)||(c?.x??0)-(h?.x??0)||I.id.localeCompare(l.id)});const A=Math.min(8,38/Math.max(1,r.length-1));r.forEach((I,l)=>{o.set(I.id,(l-(r.length-1)/2)*A)})}return o}function bJ(n,e,t,i,o){const r=Math.sign(i-e)||1,A=Math.sign(o-t)||1,I=Math.min(12,Math.abs(i-e)/2,Math.abs(t-n)/2);return[`M ${n} ${e}`,`H ${t-Math.sign(t-n)*I}`,`Q ${t} ${e} ${t} ${e+r*I}`,`V ${i-r*I}`,`Q ${t} ${i} ${t+A*I} ${i}`,`H ${o}`].join(" ")}function Qx(n,e){return e.column>n.column?"forward":e.column$x(i)),A=F.useRef(o),[I,l]=F.useState(1),[c,h]=F.useState("none"),p=F.useRef("none"),m=F.useRef(0),[y,w]=F.useState(TJ),[S,x]=F.useState("key"),[O,E]=F.useState(),_=F.useRef(null),P=F.useRef(void 0),Q=F.useRef(void 0);F.useEffect(()=>{const z=$x(i);A.current=z,r(z),l(1),p.current="start",m.current=0,h("start"),_.current?.scrollTo?.({left:0,top:0}),x("key")},[i]);const ne=F.useMemo(()=>DJ(n.routes,e),[n.routes,e]),j=F.useMemo(()=>S==="complete"?{routes:n.routes,reciprocals:new Map}:MJ(n.routes.filter(z=>ne.has(z.id)),e?.kind==="route"?e.id:void 0),[ne,n.routes,S,e]),V=j.routes,de=F.useMemo(()=>{if(S==="complete"||e===void 0)return n.sections;const z=new Set;e.kind==="section"&&z.add(e.id);for(const me of V)z.add(me.sourceSection),z.add(me.targetSection);return n.sections.filter(me=>z.has(me.id))},[n.sections,S,V,e]),le=F.useMemo(()=>uJ(de,V,y,o,S==="key"&&e?.kind==="section"?e.id:void 0),[de,o,S,V,e,y]),Ze=le.routes,Ee=F.useMemo(()=>e?.kind!=="section"?new Set:new Set(Ze.filter(z=>z.sourceSection===e.id||z.targetSection===e.id).flatMap(z=>[z.id,z.sourceSection,z.targetSection])),[Ze,e]),Ue=Math.max(1,...Ze.map(z=>z.calls)),We=n.routes.length-Ze.length,Ae={width:Math.round(le.width*I),height:Math.round(le.height*I)},M=z=>{t(z)},U=(z,me)=>{(z.key==="Enter"||z.key===" ")&&(z.preventDefault(),M(me))},K=(z,me)=>{const _e={...A.current,[z]:me};A.current=_e,r(_e)},re=()=>{try{window.localStorage.setItem(i,JSON.stringify(A.current))}catch{}},ee=()=>{A.current={},r({});try{window.localStorage.removeItem(i)}catch{}},T=()=>{l(1),p.current="start",m.current=0,h("start");const z=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;_.current?.scrollTo?.({left:0,top:0,behavior:z?"auto":"smooth"})},L=z=>{const me=Math.max(0,z.scrollWidth-z.clientWidth),_e=me<=1?"none":z.scrollLeft<=1?"start":z.scrollLeft>=me-1?"end":"middle";m.current=me,p.current=_e,h(ke=>ke===_e?ke:_e)},te=z=>{L(z.currentTarget)},ae=z=>{z.target!==z.currentTarget||!_.current||(P.current={x:z.clientX,y:z.clientY,scrollLeft:_.current.scrollLeft,scrollTop:_.current.scrollTop,pointerId:z.pointerId},z.currentTarget.setPointerCapture(z.pointerId))},ue=z=>{const me=P.current,_e=_.current;!me||!_e||me.pointerId!==z.pointerId||(_e.scrollLeft=me.scrollLeft-(z.clientX-me.x),_e.scrollTop=me.scrollTop-(z.clientY-me.y))},ye=z=>{P.current?.pointerId===z.pointerId&&(P.current=void 0,z.currentTarget.hasPointerCapture(z.pointerId)&&z.currentTarget.releasePointerCapture(z.pointerId))},Be=(z,me)=>{z.stopPropagation();const _e=Xx(z.currentTarget.ownerSVGElement,z);_e&&(Q.current={id:me.id,pointerId:z.pointerId,offsetX:_e.x-me.x,offsetY:_e.y-me.y,startClientX:z.clientX,startClientY:z.clientY,moved:!1},E(me.id),z.currentTarget.setPointerCapture(z.pointerId))},ct=(z,me)=>{const _e=Q.current;!_e||_e.id!==me.id||_e.pointerId!==z.pointerId||(z.currentTarget.hasPointerCapture(z.pointerId)&&z.currentTarget.releasePointerCapture(z.pointerId),Q.current=void 0,E(void 0),_e.moved?re():M({kind:"section",id:me.id}))},he=z=>{Q.current?.pointerId===z.pointerId&&(Q.current=void 0,E(void 0))},sn=(z,me)=>{if(z.key==="Enter"||z.key===" "){z.preventDefault(),M({kind:"section",id:me.id});return}if(!z.altKey||!z.key.startsWith("Arrow"))return;z.preventDefault();const _e=z.shiftKey?24:8;K(me.id,{x:me.x+(z.key==="ArrowRight"?_e:z.key==="ArrowLeft"?-_e:0),y:me.y+(z.key==="ArrowDown"?_e:z.key==="ArrowUp"?-_e:0)}),re()};return F.useEffect(()=>{const z=_.current;if(!z)return;const me=()=>{const ke=m.current,Nt=Math.max(0,z.scrollWidth-z.clientWidth),Dt=ke>1&&z.scrollLeft>=ke-1;if(Nt>ke&&(p.current==="end"||Dt)&&(z.scrollLeft=Nt),L(z),z.clientWidth<=0||z.clientHeight<=0)return;const ie={width:Math.round(z.clientWidth),height:Math.round(z.clientHeight)};w(Te=>Te.width===ie.width&&Te.height===ie.height?Te:ie)};if(me(),typeof ResizeObserver>"u")return;const _e=new ResizeObserver(me);return _e.observe(z),()=>_e.disconnect()},[Ae.height,Ae.width]),f.jsxs("section",{className:"architecture-map-panel","aria-labelledby":"architecture-map-title","data-route-mode":S,children:[f.jsxs("header",{className:"architecture-map-header",children:[f.jsxs("div",{className:"architecture-map-intro",children:[f.jsx("span",{children:"Flow canvas"}),f.jsx("strong",{id:"architecture-map-title",children:"Subsystem call direction"}),f.jsx("small",{id:"architecture-map-help",children:"Scroll sideways or drag open canvas space to follow the complete architecture."})]}),f.jsxs("div",{className:"architecture-map-actions",children:[f.jsxs("div",{className:"architecture-route-mode",role:"group","aria-label":"Route visibility",children:[f.jsx("button",{type:"button","aria-pressed":S==="key",onClick:()=>x("key"),children:e?.kind==="section"?"Neighbors":"Key routes"}),f.jsxs("button",{type:"button","aria-pressed":S==="complete",onClick:()=>x("complete"),children:["All routes · ",n.routes.length]})]}),f.jsxs("div",{className:"architecture-map-toolbar","aria-label":"Map controls",children:[f.jsx("button",{type:"button","aria-label":"Zoom out",onClick:()=>l(z=>Math.max(.75,z-.25)),children:f.jsx(t3,{"aria-hidden":"true"})}),f.jsxs("span",{"aria-live":"polite",children:[Math.round(I*100),"%"]}),f.jsx("button",{type:"button","aria-label":"Zoom in",onClick:()=>l(z=>Math.min(2,z+.25)),children:f.jsx(Um,{"aria-hidden":"true"})}),f.jsx("button",{type:"button","aria-label":"Reset zoom and scroll position",title:"Reset zoom and scroll position",onClick:T,children:f.jsx(Gm,{"aria-hidden":"true"})}),f.jsx("button",{type:"button","aria-label":"Reset subsystem positions",title:"Reset subsystem positions",disabled:Object.keys(o).length===0,onClick:ee,children:f.jsx(Ym,{"aria-hidden":"true"})})]})]})]}),f.jsx("div",{ref:_,className:"architecture-map-viewport",role:"region","aria-label":"Scrollable architecture flow diagram","aria-describedby":"architecture-map-help",tabIndex:0,"data-scroll-position":c,onScroll:te,children:le.nodes.length>0?f.jsx("div",{className:"architecture-map-canvas",style:{width:Ae.width,height:Ae.height},children:f.jsxs("svg",{className:"architecture-map",viewBox:`0 0 ${le.width} ${le.height}`,role:"group","aria-label":kJ(le.nodes.length,Ze.length,n.routes.length),onPointerDown:ae,onPointerMove:ue,onPointerUp:ye,onPointerCancel:()=>{P.current=void 0},children:[f.jsxs("defs",{children:[f.jsx("marker",{id:"architecture-arrow",className:"architecture-arrow architecture-arrow-default",markerWidth:"8",markerHeight:"8",refX:"7",refY:"4",orient:"auto-start-reverse",markerUnits:"userSpaceOnUse",children:f.jsx("path",{d:"M 0 0 L 8 4 L 0 8 z"})}),f.jsx("marker",{id:"architecture-arrow-incoming",className:"architecture-arrow architecture-arrow-incoming",markerWidth:"8",markerHeight:"8",refX:"7",refY:"4",orient:"auto-start-reverse",markerUnits:"userSpaceOnUse",children:f.jsx("path",{d:"M 0 0 L 8 4 L 0 8 z"})}),f.jsx("marker",{id:"architecture-arrow-outgoing",className:"architecture-arrow architecture-arrow-outgoing",markerWidth:"8",markerHeight:"8",refX:"7",refY:"4",orient:"auto-start-reverse",markerUnits:"userSpaceOnUse",children:f.jsx("path",{d:"M 0 0 L 8 4 L 0 8 z"})})]}),f.jsxs("g",{className:"architecture-map-lanes","aria-hidden":"true",children:[le.lanes.map(z=>f.jsxs("g",{children:[f.jsx("rect",{x:z.x+8,y:34,width:z.width-16,height:le.height-76,rx:"12"}),f.jsx("text",{x:z.x+z.width/2,y:61,children:z.label})]},z.index)),f.jsx("text",{className:"architecture-map-direction",x:96,y:24,children:"PRIMARY CALL DIRECTION →"})]}),f.jsx("g",{className:"architecture-routes",children:Ze.map(z=>{const me=j.reciprocals.get(z.id),_e=e?.kind==="route"&&e.id===z.id,ke=_e||e===void 0||e.kind==="section"&&Ee.has(z.id),Nt=z.inferred>z.extracted?"inferred":"extracted",Dt=e?.kind==="section"?z.targetSection===e.id?"incoming":z.sourceSection===e.id?"outgoing":void 0:void 0,ie=S==="key"?.3+Math.sqrt(z.calls/Ue)*.28:.1+Math.sqrt(z.calls/Ue)*.2;return f.jsxs("g",{role:"button",tabIndex:0,"aria-label":`${z.sourceSection} to ${z.targetSection}, ${z.calls} calls${me?`; bidirectional, ${me.calls} reverse calls`:""}${z.direction==="backward"?", feedback route":""}`,"data-direction":z.direction,"data-evidence":Nt,"data-reciprocal":me?"true":void 0,"data-focus-direction":Dt,"data-selected":_e||void 0,"data-dimmed":!ke||void 0,onClick:()=>M({kind:"route",id:z.id}),onKeyDown:Te=>U(Te,{kind:"route",id:z.id}),children:[f.jsx("path",{className:"architecture-route-hit",d:z.path}),f.jsx("path",{className:"architecture-route-line",d:z.path,style:{strokeWidth:z.width,"--architecture-route-opacity":ie},markerStart:me?zJ(Dt):void 0,markerEnd:Dt==="incoming"?"url(#architecture-arrow-incoming)":Dt==="outgoing"?"url(#architecture-arrow-outgoing)":"url(#architecture-arrow)"}),f.jsxs("title",{children:[z.sourceSection," → ",z.targetSection,": ",z.calls," calls",me&&` · ${me.sourceSection} → ${me.targetSection}: ${me.calls} calls`]})]},z.id)})}),f.jsx("g",{className:"architecture-map-nodes",children:le.nodes.map(z=>{const me=e?.kind==="section"&&e.id===z.id,_e=me||e===void 0||e.kind==="section"&&Ee.has(z.id)||e.kind==="route"&&n.routes.some(ke=>ke.id===e.id&&(ke.sourceSection===z.id||ke.targetSection===z.id));return f.jsxs("g",{role:"button",tabIndex:0,"aria-label":`${z.name}, ${z.nodeCount} visible symbols, ${z.incomingCalls} incoming and ${z.outgoingCalls} outgoing calls; drag to reposition`,transform:`translate(${z.x-z.width/2} ${z.y-z.height/2})`,"data-selected":me||void 0,"data-dimmed":!_e||void 0,"data-dragging":O===z.id||void 0,onPointerDown:ke=>Be(ke,z),onPointerMove:ke=>{const Nt=Q.current;if(!Nt||Nt.id!==z.id||Nt.pointerId!==ke.pointerId)return;const Dt=Xx(ke.currentTarget.ownerSVGElement,ke);Dt&&((Math.abs(ke.clientX-Nt.startClientX)>3||Math.abs(ke.clientY-Nt.startClientY)>3)&&(Nt.moved=!0),K(z.id,{x:Dt.x-Nt.offsetX,y:Dt.y-Nt.offsetY}))},onPointerUp:ke=>ct(ke,z),onPointerCancel:ke=>he(ke),onKeyDown:ke=>sn(ke,z),children:[f.jsx("rect",{className:"architecture-map-node-shadow",width:z.width,height:z.height,rx:"9"}),f.jsx("rect",{className:"architecture-map-node-card",width:z.width,height:z.height,rx:"9"}),f.jsx("rect",{className:"architecture-map-node-accent",width:"4",height:z.height-16,x:"8",y:"8",rx:"2"}),f.jsx("text",{x:"20",y:"27",className:"architecture-map-node-name",children:NJ(z.name,24)}),f.jsxs("text",{x:"20",y:"48",className:"architecture-map-node-meta",children:[z.nodeCount.toLocaleString()," symbols"," · ","↓",z.incomingCalls.toLocaleString()," ↑",z.outgoingCalls.toLocaleString()]}),f.jsxs("g",{className:"architecture-map-node-grip","aria-hidden":"true",children:[f.jsx("circle",{cx:z.width-18,cy:"26",r:"1.2"}),f.jsx("circle",{cx:z.width-13,cy:"26",r:"1.2"}),f.jsx("circle",{cx:z.width-18,cy:"31",r:"1.2"}),f.jsx("circle",{cx:z.width-13,cy:"31",r:"1.2"}),f.jsx("circle",{cx:z.width-18,cy:"36",r:"1.2"}),f.jsx("circle",{cx:z.width-13,cy:"36",r:"1.2"})]}),f.jsxs("title",{children:[z.name," — drag to reposition"]})]},z.id)})})]})}):f.jsxs("div",{className:"architecture-map-empty",children:[f.jsx("strong",{children:"No architecture to draw"}),f.jsx("span",{children:"No subsystems match the current scope and evidence filters."})]})}),f.jsxs("footer",{className:"architecture-map-footer",children:[f.jsxs("div",{className:"architecture-map-legend","aria-label":"Map legend",children:[f.jsxs("span",{children:[f.jsx("i",{"data-evidence":"extracted"})," Extracted"]}),f.jsxs("span",{children:[f.jsx("i",{"data-evidence":"inferred"})," Inferred"]}),f.jsxs("span",{children:[f.jsx("i",{"data-direction":"incoming"})," Incoming"]}),f.jsxs("span",{children:[f.jsx("i",{"data-direction":"outgoing"})," Outgoing"]}),f.jsxs("span",{children:[f.jsx("i",{"data-direction":"bidirectional","aria-hidden":"true",children:"↔"})," Bidirectional"]}),f.jsxs("span",{children:[f.jsx("i",{"data-direction":"feedback"})," Feedback"]}),f.jsxs("span",{children:[f.jsx(n3,{"aria-hidden":"true"})," Drag cards to arrange"]}),We>0&&f.jsxs("button",{type:"button",onClick:()=>x("complete"),children:[Ze.length," of ",n.routes.length," routes · Show all"]})]}),f.jsxs("details",{className:"architecture-map-table",children:[f.jsx("summary",{children:"View routes as a table"}),f.jsx("div",{children:f.jsxs("table",{children:[f.jsx("thead",{children:f.jsxs("tr",{children:[f.jsx("th",{children:"From"}),f.jsx("th",{children:"To"}),f.jsx("th",{children:"Calls"}),f.jsx("th",{children:"Evidence"})]})}),f.jsx("tbody",{children:n.routes.map(z=>f.jsxs("tr",{children:[f.jsx("td",{children:qx(n,z.sourceSection)}),f.jsx("td",{children:qx(n,z.targetSection)}),f.jsx("td",{children:z.calls.toLocaleString()}),f.jsxs("td",{children:[z.extracted," extracted · ",z.inferred," inferred"]})]},z.id))})]})})]})]})]})}function Xx(n,e){if(!n)return;const t=n.getScreenCTM();if(!t)return;const i=n.createSVGPoint();i.x=e.clientX,i.y=e.clientY;const o=i.matrixTransform(t.inverse());return{x:o.x,y:o.y}}function $x(n){try{const e=JSON.parse(window.localStorage.getItem(n)??"{}");return!e||typeof e!="object"||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).flatMap(([t,i])=>i&&typeof i=="object"&&"x"in i&&"y"in i&&typeof i.x=="number"&&typeof i.y=="number"&&Number.isFinite(i.x)&&Number.isFinite(i.y)?[[t,{x:i.x,y:i.y}]]:[]))}catch{return{}}}function qx(n,e){return n.sections.find(t=>t.id===e)?.name??e}function NJ(n,e){return n.length<=e?n:`${n.slice(0,e-1)}…`}function DJ(n,e){const t=o=>[...o].sort((r,A)=>A.calls-r.calls||r.id.localeCompare(A.id)),i=new Set;if(e?.kind==="route"){const o=n.find(r=>r.id===e.id);if(o){i.add(o.id);const r=n.find(A=>A.sourceSection===o.targetSection&&A.targetSection===o.sourceSection);r&&i.add(r.id)}return i}else if(e?.kind==="section"){const o=t(n.filter(A=>A.targetSection===e.id)).slice(0,6),r=t(n.filter(A=>A.sourceSection===e.id)).slice(0,6);for(const A of t([...o,...r]))i.add(A.id);return i}for(const o of t(n)){if(i.size>=EJ)break;i.add(o.id)}return i}function MJ(n,e){const t=new Map(n.map(A=>[Jx(A.sourceSection,A.targetSection),A])),i=new Set,o=[],r=new Map;for(const A of n){if(i.has(A.id))continue;const I=t.get(Jx(A.targetSection,A.sourceSection));if(!I||I.id===A.id||i.has(I.id)){o.push(A),i.add(A.id);continue}const l=A.id===e?A:I.id===e?I:A.calls>I.calls||A.calls===I.calls&&A.id.localeCompare(I.id)<=0?A:I,c=l.id===A.id?I:A;o.push(l),r.set(l.id,c),i.add(A.id),i.add(I.id)}return o.sort((A,I)=>I.calls-A.calls||A.id.localeCompare(I.id)),{routes:o,reciprocals:r}}function Jx(n,e){return`${n}\0${e}`}function zJ(n){return n==="incoming"?"url(#architecture-arrow-outgoing)":n==="outgoing"?"url(#architecture-arrow-incoming)":"url(#architecture-arrow)"}function kJ(n,e,t){return e===t?`${n} subsystems and ${t} directed routes`:`${n} subsystems and ${e} of ${t} directed routes visible`}function e2(n){var e,t,i="";if(typeof n=="string"||typeof n=="number")i+=n;else if(typeof n=="object")if(Array.isArray(n)){var o=n.length;for(e=0;etypeof n=="boolean"?`${n}`:n===0?"0":n,i2=t2,Gu=(n,e)=>t=>{var i;if(e?.variants==null)return i2(n,t?.class,t?.className);const{variants:o,defaultVariants:r}=e,A=Object.keys(o).map(c=>{const h=t?.[c],p=r?.[c];if(h===null)return null;const m=n2(h)||n2(p);return o[c][m]}),I=t&&Object.entries(t).reduce((c,h)=>{let[p,m]=h;return m===void 0||(c[p]=m),c},{}),l=e==null||(i=e.compoundVariants)===null||i===void 0?void 0:i.reduce((c,h)=>{let{class:p,className:m,...y}=h;return Object.entries(y).every(w=>{let[S,x]=w;return Array.isArray(x)?x.includes({...r,...I}[S]):{...r,...I}[S]===x})?[...c,p,m]:c},[]);return i2(n,A,l,t?.class,t?.className)},RJ=(n,e)=>{const t=new Array(n.length+e.length);for(let i=0;i({classGroupId:n,validator:e}),g2=(n=new Map,e=null,t)=>({nextPart:n,validators:e,classGroupId:t}),lI="-",o2=[],jJ="arbitrary..",ZJ=n=>{const e=PJ(n),{conflictingClassGroups:t,conflictingClassGroupModifiers:i}=n;return{getClassGroupId:A=>{if(A.startsWith("[")&&A.endsWith("]"))return BJ(A);const I=A.split(lI),l=I[0]===""&&I.length>1?1:0;return s2(I,l,e)},getConflictingClassGroupIds:(A,I)=>{if(I){const l=i[A],c=t[A];return l?c?RJ(c,l):l:c||o2}return t[A]||o2}}},s2=(n,e,t)=>{if(n.length-e===0)return t.classGroupId;const o=n[e],r=t.nextPart.get(o);if(r){const c=s2(n,e+1,r);if(c)return c}const A=t.validators;if(A===null)return;const I=e===0?n.join(lI):n.slice(e).join(lI),l=A.length;for(let c=0;cn.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const e=n.slice(1,-1),t=e.indexOf(":"),i=e.slice(0,t);return i?jJ+i:void 0})(),PJ=n=>{const{theme:e,classGroups:t}=n;return LJ(t,e)},LJ=(n,e)=>{const t=g2();for(const i in n){const o=n[i];Fu(o,t,i,e)}return t},Fu=(n,e,t,i)=>{const o=n.length;for(let r=0;r{if(typeof n=="string"){FJ(n,e,t);return}if(typeof n=="function"){VJ(n,e,t,i);return}UJ(n,e,t,i)},FJ=(n,e,t)=>{const i=n===""?e:r2(e,n);i.classGroupId=t},VJ=(n,e,t,i)=>{if(YJ(n)){Fu(n(i),e,t,i);return}e.validators===null&&(e.validators=[]),e.validators.push(_J(t,n))},UJ=(n,e,t,i)=>{const o=Object.entries(n),r=o.length;for(let A=0;A{let t=n;const i=e.split(lI),o=i.length;for(let r=0;r"isThemeGetter"in n&&n.isThemeGetter===!0,HJ=n=>{if(n<1)return{get:()=>{},set:()=>{}};let e=0,t=Object.create(null),i=Object.create(null);const o=(r,A)=>{t[r]=A,e++,e>n&&(e=0,i=t,t=Object.create(null))};return{get(r){let A=t[r];if(A!==void 0)return A;if((A=i[r])!==void 0)return o(r,A),A},set(r,A){r in t?t[r]=A:o(r,A)}}},Vu="!",a2=":",KJ=[],A2=(n,e,t,i,o)=>({modifiers:n,hasImportantModifier:e,baseClassName:t,maybePostfixModifierPosition:i,isExternal:o}),WJ=n=>{const{prefix:e,experimentalParseClassName:t}=n;let i=o=>{const r=[];let A=0,I=0,l=0,c;const h=o.length;for(let S=0;Sl?c-l:void 0;return A2(r,y,m,w)};if(e){const o=e+a2,r=i;i=A=>A.startsWith(o)?r(A.slice(o.length)):A2(KJ,!1,A,void 0,!0)}if(t){const o=i;i=r=>t({className:r,parseClassName:o})}return i},QJ=n=>{const e=new Map;return n.orderSensitiveModifiers.forEach((t,i)=>{e.set(t,1e6+i)}),t=>{const i=[];let o=[];for(let r=0;r0&&(o.sort(),i.push(...o),o=[]),i.push(A)):o.push(A)}return o.length>0&&(o.sort(),i.push(...o)),i}},XJ=n=>({cache:HJ(n.cacheSize),parseClassName:WJ(n),sortModifiers:QJ(n),postfixLookupClassGroupIds:$J(n),...ZJ(n)}),$J=n=>{const e=Object.create(null),t=n.postfixLookupClassGroups;if(t)for(let i=0;i{const{parseClassName:t,getClassGroupId:i,getConflictingClassGroupIds:o,sortModifiers:r,postfixLookupClassGroupIds:A}=e,I=[],l=n.trim().split(qJ);let c="";for(let h=l.length-1;h>=0;h-=1){const p=l[h],{isExternal:m,modifiers:y,hasImportantModifier:w,baseClassName:S,maybePostfixModifierPosition:x}=t(p);if(m){c=p+(c.length>0?" "+c:c);continue}let O=!!x,E;if(O){const j=S.substring(0,x);E=i(j);const V=E&&A[E]?i(S):void 0;V&&V!==E&&(E=V,O=!1)}else E=i(S);if(!E){if(!O){c=p+(c.length>0?" "+c:c);continue}if(E=i(S),!E){c=p+(c.length>0?" "+c:c);continue}O=!1}const _=y.length===0?"":y.length===1?y[0]:r(y).join(":"),P=w?_+Vu:_,Q=P+E;if(I.indexOf(Q)>-1)continue;I.push(Q);const ne=o(E,O);for(let j=0;j0?" "+c:c)}return c},eee=(...n)=>{let e=0,t,i,o="";for(;e{if(typeof n=="string")return n;let e,t="";for(let i=0;i{let t,i,o,r;const A=l=>{const c=e.reduce((h,p)=>p(h),n());return t=XJ(c),i=t.cache.get,o=t.cache.set,r=I,I(l)},I=l=>{const c=i(l);if(c)return c;const h=JJ(l,t);return o(l,h),h};return r=A,(...l)=>r(eee(...l))},nee=[],on=n=>{const e=t=>t[n]||nee;return e.isThemeGetter=!0,e},I2=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,l2=/^\((?:(\w[\w-]*):)?(.+)\)$/i,iee=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,gee=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,oee=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,see=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,ree=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,aee=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Pg=n=>iee.test(n),Ve=n=>!!n&&!Number.isNaN(Number(n)),Bi=n=>!!n&&Number.isInteger(Number(n)),Uu=n=>n.endsWith("%")&&Ve(n.slice(0,-1)),tg=n=>gee.test(n),c2=()=>!0,Aee=n=>oee.test(n)&&!see.test(n),Yu=()=>!1,Cee=n=>ree.test(n),Iee=n=>aee.test(n),lee=n=>!Ie(n)&&!ce(n),cee=n=>n.startsWith("@container")&&(n[10]==="/"&&n[11]!==void 0||n[11]==="s"&&n[16]!==void 0&&n.startsWith("-size/",10)||n[11]==="n"&&n[18]!==void 0&&n.startsWith("-normal/",10)),dee=n=>Lg(n,m2,Yu),Ie=n=>I2.test(n),jo=n=>Lg(n,v2,Aee),d2=n=>Lg(n,bee,Ve),uee=n=>Lg(n,b2,c2),hee=n=>Lg(n,y2,Yu),u2=n=>Lg(n,f2,Yu),fee=n=>Lg(n,p2,Iee),cI=n=>Lg(n,w2,Cee),ce=n=>l2.test(n),Ba=n=>Zo(n,v2),pee=n=>Zo(n,y2),h2=n=>Zo(n,f2),mee=n=>Zo(n,m2),vee=n=>Zo(n,p2),dI=n=>Zo(n,w2,!0),yee=n=>Zo(n,b2,!0),Lg=(n,e,t)=>{const i=I2.exec(n);return i?i[1]?e(i[1]):t(i[2]):!1},Zo=(n,e,t=!1)=>{const i=l2.exec(n);return i?i[1]?e(i[1]):t:!1},f2=n=>n==="position"||n==="percentage",p2=n=>n==="image"||n==="url",m2=n=>n==="length"||n==="size"||n==="bg-size",v2=n=>n==="length",bee=n=>n==="number",y2=n=>n==="family-name",b2=n=>n==="number"||n==="weight",w2=n=>n==="shadow",wee=tee(()=>{const n=on("color"),e=on("font"),t=on("text"),i=on("font-weight"),o=on("tracking"),r=on("leading"),A=on("breakpoint"),I=on("container"),l=on("spacing"),c=on("radius"),h=on("shadow"),p=on("inset-shadow"),m=on("text-shadow"),y=on("drop-shadow"),w=on("blur"),S=on("perspective"),x=on("aspect"),O=on("ease"),E=on("animate"),_=()=>["auto","avoid","all","avoid-page","page","left","right","column"],P=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],Q=()=>[...P(),ce,Ie],ne=()=>["auto","hidden","clip","visible","scroll"],j=()=>["auto","contain","none"],V=()=>[ce,Ie,l],de=()=>[Pg,"full","auto",...V()],le=()=>[Bi,"none","subgrid",ce,Ie],Ze=()=>["auto",{span:["full",Bi,ce,Ie]},Bi,ce,Ie],Ee=()=>[Bi,"auto",ce,Ie],Ue=()=>["auto","min","max","fr",ce,Ie],We=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],Ae=()=>["start","end","center","stretch","center-safe","end-safe"],M=()=>["auto",...V()],U=()=>[Pg,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...V()],K=()=>[Pg,"screen","full","dvw","lvw","svw","min","max","fit",...V()],re=()=>[Pg,"screen","full","lh","dvh","lvh","svh","min","max","fit",...V()],ee=()=>[n,ce,Ie],T=()=>[...P(),h2,u2,{position:[ce,Ie]}],L=()=>["no-repeat",{repeat:["","x","y","space","round"]}],te=()=>["auto","cover","contain",mee,dee,{size:[ce,Ie]}],ae=()=>[Uu,Ba,jo],ue=()=>["","none","full",c,ce,Ie],ye=()=>["",Ve,Ba,jo],Be=()=>["solid","dashed","dotted","double"],ct=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],he=()=>[Ve,Uu,h2,u2],sn=()=>["","none",w,ce,Ie],z=()=>["none",Ve,ce,Ie],me=()=>["none",Ve,ce,Ie],_e=()=>[Ve,ce,Ie],ke=()=>[Pg,"full",...V()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[tg],breakpoint:[tg],color:[c2],container:[tg],"drop-shadow":[tg],ease:["in","out","in-out"],font:[lee],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[tg],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[tg],shadow:[tg],spacing:["px",Ve],text:[tg],"text-shadow":[tg],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Pg,Ie,ce,x]}],container:["container"],"container-type":[{"@container":["","normal","size",ce,Ie]}],"container-named":[cee],columns:[{columns:[Ve,Ie,ce,I]}],"break-after":[{"break-after":_()}],"break-before":[{"break-before":_()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:Q()}],overflow:[{overflow:ne()}],"overflow-x":[{"overflow-x":ne()}],"overflow-y":[{"overflow-y":ne()}],overscroll:[{overscroll:j()}],"overscroll-x":[{"overscroll-x":j()}],"overscroll-y":[{"overscroll-y":j()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:de()}],"inset-x":[{"inset-x":de()}],"inset-y":[{"inset-y":de()}],start:[{"inset-s":de(),start:de()}],end:[{"inset-e":de(),end:de()}],"inset-bs":[{"inset-bs":de()}],"inset-be":[{"inset-be":de()}],top:[{top:de()}],right:[{right:de()}],bottom:[{bottom:de()}],left:[{left:de()}],visibility:["visible","invisible","collapse"],z:[{z:[Bi,"auto",ce,Ie]}],basis:[{basis:[Pg,"full","auto",I,...V()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Ve,Pg,"auto","initial","none",Ie]}],grow:[{grow:["",Ve,ce,Ie]}],shrink:[{shrink:["",Ve,ce,Ie]}],order:[{order:[Bi,"first","last","none",ce,Ie]}],"grid-cols":[{"grid-cols":le()}],"col-start-end":[{col:Ze()}],"col-start":[{"col-start":Ee()}],"col-end":[{"col-end":Ee()}],"grid-rows":[{"grid-rows":le()}],"row-start-end":[{row:Ze()}],"row-start":[{"row-start":Ee()}],"row-end":[{"row-end":Ee()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":Ue()}],"auto-rows":[{"auto-rows":Ue()}],gap:[{gap:V()}],"gap-x":[{"gap-x":V()}],"gap-y":[{"gap-y":V()}],"justify-content":[{justify:[...We(),"normal"]}],"justify-items":[{"justify-items":[...Ae(),"normal"]}],"justify-self":[{"justify-self":["auto",...Ae()]}],"align-content":[{content:["normal",...We()]}],"align-items":[{items:[...Ae(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...Ae(),{baseline:["","last"]}]}],"place-content":[{"place-content":We()}],"place-items":[{"place-items":[...Ae(),"baseline"]}],"place-self":[{"place-self":["auto",...Ae()]}],p:[{p:V()}],px:[{px:V()}],py:[{py:V()}],ps:[{ps:V()}],pe:[{pe:V()}],pbs:[{pbs:V()}],pbe:[{pbe:V()}],pt:[{pt:V()}],pr:[{pr:V()}],pb:[{pb:V()}],pl:[{pl:V()}],m:[{m:M()}],mx:[{mx:M()}],my:[{my:M()}],ms:[{ms:M()}],me:[{me:M()}],mbs:[{mbs:M()}],mbe:[{mbe:M()}],mt:[{mt:M()}],mr:[{mr:M()}],mb:[{mb:M()}],ml:[{ml:M()}],"space-x":[{"space-x":V()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":V()}],"space-y-reverse":["space-y-reverse"],size:[{size:U()}],"inline-size":[{inline:["auto",...K()]}],"min-inline-size":[{"min-inline":["auto",...K()]}],"max-inline-size":[{"max-inline":["none",...K()]}],"block-size":[{block:["auto",...re()]}],"min-block-size":[{"min-block":["auto",...re()]}],"max-block-size":[{"max-block":["none",...re()]}],w:[{w:[I,"screen",...U()]}],"min-w":[{"min-w":[I,"screen","none",...U()]}],"max-w":[{"max-w":[I,"screen","none","prose",{screen:[A]},...U()]}],h:[{h:["screen","lh",...U()]}],"min-h":[{"min-h":["screen","lh","none",...U()]}],"max-h":[{"max-h":["screen","lh",...U()]}],"font-size":[{text:["base",t,Ba,jo]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[i,yee,uee]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Uu,Ie]}],"font-family":[{font:[pee,hee,e]}],"font-features":[{"font-features":[Ie]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[o,ce,Ie]}],"line-clamp":[{"line-clamp":[Ve,"none",ce,d2]}],leading:[{leading:[r,...V()]}],"list-image":[{"list-image":["none",ce,Ie]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",ce,Ie]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:ee()}],"text-color":[{text:ee()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Be(),"wavy"]}],"text-decoration-thickness":[{decoration:[Ve,"from-font","auto",ce,jo]}],"text-decoration-color":[{decoration:ee()}],"underline-offset":[{"underline-offset":[Ve,"auto",ce,Ie]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:V()}],"tab-size":[{tab:[Bi,ce,Ie]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",ce,Ie]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",ce,Ie]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:T()}],"bg-repeat":[{bg:L()}],"bg-size":[{bg:te()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Bi,ce,Ie],radial:["",ce,Ie],conic:[Bi,ce,Ie]},vee,fee]}],"bg-color":[{bg:ee()}],"gradient-from-pos":[{from:ae()}],"gradient-via-pos":[{via:ae()}],"gradient-to-pos":[{to:ae()}],"gradient-from":[{from:ee()}],"gradient-via":[{via:ee()}],"gradient-to":[{to:ee()}],rounded:[{rounded:ue()}],"rounded-s":[{"rounded-s":ue()}],"rounded-e":[{"rounded-e":ue()}],"rounded-t":[{"rounded-t":ue()}],"rounded-r":[{"rounded-r":ue()}],"rounded-b":[{"rounded-b":ue()}],"rounded-l":[{"rounded-l":ue()}],"rounded-ss":[{"rounded-ss":ue()}],"rounded-se":[{"rounded-se":ue()}],"rounded-ee":[{"rounded-ee":ue()}],"rounded-es":[{"rounded-es":ue()}],"rounded-tl":[{"rounded-tl":ue()}],"rounded-tr":[{"rounded-tr":ue()}],"rounded-br":[{"rounded-br":ue()}],"rounded-bl":[{"rounded-bl":ue()}],"border-w":[{border:ye()}],"border-w-x":[{"border-x":ye()}],"border-w-y":[{"border-y":ye()}],"border-w-s":[{"border-s":ye()}],"border-w-e":[{"border-e":ye()}],"border-w-bs":[{"border-bs":ye()}],"border-w-be":[{"border-be":ye()}],"border-w-t":[{"border-t":ye()}],"border-w-r":[{"border-r":ye()}],"border-w-b":[{"border-b":ye()}],"border-w-l":[{"border-l":ye()}],"divide-x":[{"divide-x":ye()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ye()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Be(),"hidden","none"]}],"divide-style":[{divide:[...Be(),"hidden","none"]}],"border-color":[{border:ee()}],"border-color-x":[{"border-x":ee()}],"border-color-y":[{"border-y":ee()}],"border-color-s":[{"border-s":ee()}],"border-color-e":[{"border-e":ee()}],"border-color-bs":[{"border-bs":ee()}],"border-color-be":[{"border-be":ee()}],"border-color-t":[{"border-t":ee()}],"border-color-r":[{"border-r":ee()}],"border-color-b":[{"border-b":ee()}],"border-color-l":[{"border-l":ee()}],"divide-color":[{divide:ee()}],"outline-style":[{outline:[...Be(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Ve,ce,Ie]}],"outline-w":[{outline:["",Ve,Ba,jo]}],"outline-color":[{outline:ee()}],shadow:[{shadow:["","none",h,dI,cI]}],"shadow-color":[{shadow:ee()}],"inset-shadow":[{"inset-shadow":["none",p,dI,cI]}],"inset-shadow-color":[{"inset-shadow":ee()}],"ring-w":[{ring:ye()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:ee()}],"ring-offset-w":[{"ring-offset":[Ve,jo]}],"ring-offset-color":[{"ring-offset":ee()}],"inset-ring-w":[{"inset-ring":ye()}],"inset-ring-color":[{"inset-ring":ee()}],"text-shadow":[{"text-shadow":["none",m,dI,cI]}],"text-shadow-color":[{"text-shadow":ee()}],opacity:[{opacity:[Ve,ce,Ie]}],"mix-blend":[{"mix-blend":[...ct(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ct()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[Ve]}],"mask-image-linear-from-pos":[{"mask-linear-from":he()}],"mask-image-linear-to-pos":[{"mask-linear-to":he()}],"mask-image-linear-from-color":[{"mask-linear-from":ee()}],"mask-image-linear-to-color":[{"mask-linear-to":ee()}],"mask-image-t-from-pos":[{"mask-t-from":he()}],"mask-image-t-to-pos":[{"mask-t-to":he()}],"mask-image-t-from-color":[{"mask-t-from":ee()}],"mask-image-t-to-color":[{"mask-t-to":ee()}],"mask-image-r-from-pos":[{"mask-r-from":he()}],"mask-image-r-to-pos":[{"mask-r-to":he()}],"mask-image-r-from-color":[{"mask-r-from":ee()}],"mask-image-r-to-color":[{"mask-r-to":ee()}],"mask-image-b-from-pos":[{"mask-b-from":he()}],"mask-image-b-to-pos":[{"mask-b-to":he()}],"mask-image-b-from-color":[{"mask-b-from":ee()}],"mask-image-b-to-color":[{"mask-b-to":ee()}],"mask-image-l-from-pos":[{"mask-l-from":he()}],"mask-image-l-to-pos":[{"mask-l-to":he()}],"mask-image-l-from-color":[{"mask-l-from":ee()}],"mask-image-l-to-color":[{"mask-l-to":ee()}],"mask-image-x-from-pos":[{"mask-x-from":he()}],"mask-image-x-to-pos":[{"mask-x-to":he()}],"mask-image-x-from-color":[{"mask-x-from":ee()}],"mask-image-x-to-color":[{"mask-x-to":ee()}],"mask-image-y-from-pos":[{"mask-y-from":he()}],"mask-image-y-to-pos":[{"mask-y-to":he()}],"mask-image-y-from-color":[{"mask-y-from":ee()}],"mask-image-y-to-color":[{"mask-y-to":ee()}],"mask-image-radial":[{"mask-radial":[ce,Ie]}],"mask-image-radial-from-pos":[{"mask-radial-from":he()}],"mask-image-radial-to-pos":[{"mask-radial-to":he()}],"mask-image-radial-from-color":[{"mask-radial-from":ee()}],"mask-image-radial-to-color":[{"mask-radial-to":ee()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":P()}],"mask-image-conic-pos":[{"mask-conic":[Ve]}],"mask-image-conic-from-pos":[{"mask-conic-from":he()}],"mask-image-conic-to-pos":[{"mask-conic-to":he()}],"mask-image-conic-from-color":[{"mask-conic-from":ee()}],"mask-image-conic-to-color":[{"mask-conic-to":ee()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:T()}],"mask-repeat":[{mask:L()}],"mask-size":[{mask:te()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",ce,Ie]}],filter:[{filter:["","none",ce,Ie]}],blur:[{blur:sn()}],brightness:[{brightness:[Ve,ce,Ie]}],contrast:[{contrast:[Ve,ce,Ie]}],"drop-shadow":[{"drop-shadow":["","none",y,dI,cI]}],"drop-shadow-color":[{"drop-shadow":ee()}],grayscale:[{grayscale:["",Ve,ce,Ie]}],"hue-rotate":[{"hue-rotate":[Ve,ce,Ie]}],invert:[{invert:["",Ve,ce,Ie]}],saturate:[{saturate:[Ve,ce,Ie]}],sepia:[{sepia:["",Ve,ce,Ie]}],"backdrop-filter":[{"backdrop-filter":["","none",ce,Ie]}],"backdrop-blur":[{"backdrop-blur":sn()}],"backdrop-brightness":[{"backdrop-brightness":[Ve,ce,Ie]}],"backdrop-contrast":[{"backdrop-contrast":[Ve,ce,Ie]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Ve,ce,Ie]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Ve,ce,Ie]}],"backdrop-invert":[{"backdrop-invert":["",Ve,ce,Ie]}],"backdrop-opacity":[{"backdrop-opacity":[Ve,ce,Ie]}],"backdrop-saturate":[{"backdrop-saturate":[Ve,ce,Ie]}],"backdrop-sepia":[{"backdrop-sepia":["",Ve,ce,Ie]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":V()}],"border-spacing-x":[{"border-spacing-x":V()}],"border-spacing-y":[{"border-spacing-y":V()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",ce,Ie]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Ve,"initial",ce,Ie]}],ease:[{ease:["linear","initial",O,ce,Ie]}],delay:[{delay:[Ve,ce,Ie]}],animate:[{animate:["none",E,ce,Ie]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[S,ce,Ie]}],"perspective-origin":[{"perspective-origin":Q()}],rotate:[{rotate:z()}],"rotate-x":[{"rotate-x":z()}],"rotate-y":[{"rotate-y":z()}],"rotate-z":[{"rotate-z":z()}],scale:[{scale:me()}],"scale-x":[{"scale-x":me()}],"scale-y":[{"scale-y":me()}],"scale-z":[{"scale-z":me()}],"scale-3d":["scale-3d"],skew:[{skew:_e()}],"skew-x":[{"skew-x":_e()}],"skew-y":[{"skew-y":_e()}],transform:[{transform:[ce,Ie,"","none","gpu","cpu"]}],"transform-origin":[{origin:Q()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ke()}],"translate-x":[{"translate-x":ke()}],"translate-y":[{"translate-y":ke()}],"translate-z":[{"translate-z":ke()}],"translate-none":["translate-none"],zoom:[{zoom:[Bi,ce,Ie]}],accent:[{accent:ee()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:ee()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",ce,Ie]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":ee()}],"scrollbar-track-color":[{"scrollbar-track":ee()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":V()}],"scroll-mx":[{"scroll-mx":V()}],"scroll-my":[{"scroll-my":V()}],"scroll-ms":[{"scroll-ms":V()}],"scroll-me":[{"scroll-me":V()}],"scroll-mbs":[{"scroll-mbs":V()}],"scroll-mbe":[{"scroll-mbe":V()}],"scroll-mt":[{"scroll-mt":V()}],"scroll-mr":[{"scroll-mr":V()}],"scroll-mb":[{"scroll-mb":V()}],"scroll-ml":[{"scroll-ml":V()}],"scroll-p":[{"scroll-p":V()}],"scroll-px":[{"scroll-px":V()}],"scroll-py":[{"scroll-py":V()}],"scroll-ps":[{"scroll-ps":V()}],"scroll-pe":[{"scroll-pe":V()}],"scroll-pbs":[{"scroll-pbs":V()}],"scroll-pbe":[{"scroll-pbe":V()}],"scroll-pt":[{"scroll-pt":V()}],"scroll-pr":[{"scroll-pr":V()}],"scroll-pb":[{"scroll-pb":V()}],"scroll-pl":[{"scroll-pl":V()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",ce,Ie]}],fill:[{fill:["none",...ee()]}],"stroke-w":[{stroke:[Ve,Ba,jo,d2]}],stroke:[{stroke:["none",...ee()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function Pa(...n){return wee(t2(n))}const xee=Gu("group/alert relative grid w-full gap-0.5 rounded-lg border px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-card text-card-foreground",destructive:"bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current"}},defaultVariants:{variant:"default"}});function Hu({className:n,variant:e,...t}){return f.jsx("div",{"data-slot":"alert",role:"alert",className:Pa(xee({variant:e}),n),...t})}function Ku({className:n,...e}){return f.jsx("div",{"data-slot":"alert-title",className:Pa("font-medium group-has-[>svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground",n),...e})}function Wu({className:n,...e}){return f.jsx("div",{"data-slot":"alert-description",className:Pa("text-sm text-balance text-muted-foreground md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4",n),...e})}var See=Object.defineProperty,Qu=(n,e)=>See(n,"name",{value:e,configurable:!0});function Xu(n,e){if(typeof n=="function")return n(e);n!=null&&(n.current=e)}Qu(Xu,"setRef");function x2(...n){return e=>{let t=!1;const i=n.map(o=>{const r=Xu(o,e);return!t&&typeof r=="function"&&(t=!0),r});if(t)return()=>{for(let o=0;oEee(n,"name",{value:e,configurable:!0});function E2(n){const e=F.forwardRef((t,i)=>{let{children:o,...r}=t,A=null,I=!1;const l=[];$u(o)&&typeof uI=="function"&&(o=uI(o._payload)),F.Children.forEach(o,m=>{if(M2(m)){I=!0;const y=m;let w="child"in y.props?y.props.child:y.props.children;$u(w)&&typeof uI=="function"&&(w=uI(w._payload)),A=Oee(y,w),l.push(A?.props?.children)}else l.push(m)}),A?A=F.cloneElement(A,void 0,l):!I&&F.Children.count(o)===1&&F.isValidElement(o)&&(A=o);const c=A?D2(A):void 0,h=S2(i,c);if(!A){if(o||o===0)throw new Error(I?Mee(n):Dee(n));return o}const p=N2(r,A.props??{});return A.type!==F.Fragment&&(p.ref=i?h:c),F.cloneElement(A,p)});return e.displayName=`${n}.Slot`,e}xi(E2,"createSlot");var T2=E2("Slot"),O2=Symbol.for("radix.slottable");function Tee(n){const e=xi(t=>"child"in t?t.children(t.child):t.children,"Slottable");return e.displayName=`${n}.Slottable`,e.__radixId=O2,e}xi(Tee,"createSlottable");var Oee=xi((n,e)=>{if("child"in n.props){const t=n.props.child;return F.isValidElement(t)?F.cloneElement(t,void 0,n.props.children(t.props.children)):null}return F.isValidElement(e)?e:null},"getSlottableElementFromSlottable");function N2(n,e){const t={...e};for(const i in e){const o=n[i],r=e[i];/^on[A-Z]/.test(i)?o&&r?t[i]=(...I)=>{const l=r(...I);return o(...I),l}:o&&(t[i]=o):i==="style"?t[i]={...o,...r}:i==="className"&&(t[i]=[o,r].filter(Boolean).join(" "))}return{...n,...t}}xi(N2,"mergeProps");function D2(n){let e=Object.getOwnPropertyDescriptor(n.props,"ref")?.get,t=e&&"isReactWarning"in e&&e.isReactWarning;return t?n.ref:(e=Object.getOwnPropertyDescriptor(n,"ref")?.get,t=e&&"isReactWarning"in e&&e.isReactWarning,t?n.props.ref:n.props.ref||n.ref)}xi(D2,"getElementRef");function M2(n){return F.isValidElement(n)&&typeof n.type=="function"&&"__radixId"in n.type&&n.type.__radixId===O2}xi(M2,"isSlottable");var Nee=Symbol.for("react.lazy");function $u(n){return n!=null&&typeof n=="object"&&"$$typeof"in n&&n.$$typeof===Nee&&"_payload"in n&&z2(n._payload)}xi($u,"isLazyComponent");function z2(n){return typeof n=="object"&&n!==null&&"then"in n}xi(z2,"isPromiseLike");var Dee=xi(n=>`${n} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,"createSlotError"),Mee=xi(n=>`${n} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,"createSlottableError"),uI=RR[" use ".trim().toString()];const zee=Gu("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});function Gg({className:n,variant:e="default",asChild:t=!1,...i}){const o=t?T2:"span";return f.jsx(o,{"data-slot":"badge","data-variant":e,className:Pa(zee({variant:e}),n),...i})}const kee=Gu("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function qu({className:n,variant:e="default",size:t="default",asChild:i=!1,...o}){const r=i?T2:"button";return f.jsx(r,{"data-slot":"button","data-variant":e,"data-size":t,className:Pa(kee({variant:e,size:t,className:n})),...o})}const Ju={resolved:0,inferred:1,ambiguous:2,unresolved:3};function Ree({graph:n,host:e}){const t=new Map,i=_ee(n);for(const r of n.edges){const A=t.get(r.target);(!A||Ju[r.resolution]>Ju[A])&&t.set(r.target,r.resolution)}const o={schema:"compass.viewer.graph/1",title:`Calls from ${n.nodes.find(r=>r.id===n.rootSymbol)?.name??n.rootSymbol}`,stats:{nodes:n.nodes.length,edges:n.edges.length,communities:4,aggregated:!1},nodes:n.nodes.map(r=>({id:r.id,label:r.name,kind:r.unresolved?"Unresolved call":"Function",community:Ju[t.get(r.id)??"resolved"],communityName:t.get(r.id)??"resolved",depth:i.get(r.id),root:r.id===n.rootSymbol,source:jee(r)})),edges:n.edges.map(r=>({id:r.id,source:r.source,target:r.target,relation:`${r.callee} · ${r.resolution}`,confidence:r.resolution==="resolved"?"extracted":r.resolution==="inferred"?"inferred":"ambiguous"})),communities:[{id:0,label:"Resolved",color:"#59A14F",hidden:!1},{id:1,label:"Inferred",color:"#4E79A7",hidden:!1},{id:2,label:"Ambiguous",color:"#F28E2B",hidden:!1},{id:3,label:"Unresolved",color:"#E15759",hidden:!1}],hyperedges:[]};return f.jsx(ju,{model:o,host:e,preferredLayout:"hierarchical"})}function _ee(n){const e=new Map;for(const o of n.edges){const r=e.get(o.source)??[];r.push(o.target),e.set(o.source,r);const A=e.get(o.target)??[];A.push(o.source),e.set(o.target,A)}const t=new Map([[n.rootSymbol,0]]),i=[n.rootSymbol];for(;i.length>0;){const o=i.shift();if(o===void 0)break;const r=t.get(o)??0;for(const A of e.get(o)??[])t.has(A)||(t.set(A,r+1),i.push(A))}return t}function jee(n){if(n.anchor)return{file:n.anchor.source_file,startByte:n.anchor.start_byte,endByte:n.anchor.end_byte};if(n.file)return{file:n.file,...n.startLine!=null?{startLine:n.startLine}:{},...n.endLine!=null?{endLine:n.endLine}:{},...n.startByte!=null?{startByte:n.startByte}:{},...n.endByte!=null?{endByte:n.endByte}:{}}}function Zee({coverage:n}){return!n.partial&&n.unresolved===0&&n.ambiguous===0?null:f.jsxs(Hu,{children:[f.jsx(Ku,{children:"Partial call coverage"}),f.jsx(Wu,{children:n.warning})]})}function Bee({graph:n,host:e}){const[t,i]=F.useState(!1),o=t?n.continuations:n.continuations.slice(0,20),r=n.direction==="callers"?"No callers found":n.direction==="callees"?"No callees found":"No calls found";return f.jsxs("div",{className:"call-graph-view relative h-screen",children:[f.jsx(Ree,{graph:n,host:e}),f.jsx("div",{className:"call-graph-direction absolute top-2 left-1/2 z-20 flex -translate-x-1/2 gap-1 rounded-md border bg-popover/95 p-1 shadow-lg backdrop-blur",role:"group","aria-label":"Call graph direction",children:[["callers","Callers"],["both","Both"],["callees","Callees"]].map(([A,I])=>f.jsx(qu,{size:"sm",variant:n.direction===A?"secondary":"ghost","aria-pressed":n.direction===A,disabled:!e.changeDirection,onClick:()=>{n.direction!==A&&e.changeDirection?.(A)},children:I},A))}),f.jsxs("section",{className:"call-graph-summary absolute bottom-3 left-3 z-20 flex max-w-[min(44rem,calc(100%-1.5rem))] flex-col gap-2 rounded-md border bg-popover/95 p-3 text-popover-foreground shadow-xl backdrop-blur",children:[f.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[f.jsxs(Gg,{variant:"outline",children:[f.jsx(rc,{})," depth ",n.depth]}),f.jsxs(Gg,{variant:"outline",children:[n.nodes.length," ",n.nodes.length===1?"node":"nodes"]}),f.jsxs(Gg,{variant:"outline",children:[n.edges.length," ",n.edges.length===1?"edge":"edges"]}),f.jsxs(Gg,{variant:"secondary",children:[n.coverage.resolved," resolved"]}),f.jsxs(Gg,{variant:"outline",children:[n.coverage.inferred," inferred"]}),f.jsxs(Gg,{variant:"outline",children:[n.coverage.ambiguous," ambiguous"]}),f.jsxs(Gg,{variant:"destructive",children:[n.coverage.unresolved," unresolved"]}),n.coverage.evidenceLayer&&f.jsx(Gg,{variant:"outline",children:Pee(n.coverage.evidenceLayer)})]}),n.edges.length===0&&f.jsxs(Hu,{children:[f.jsx(Ku,{children:r}),f.jsx(Wu,{children:"Compass found the root function but no represented relationships in this direction."})]}),n.truncated&&f.jsxs(Hu,{children:[f.jsx(UA,{}),f.jsx(Ku,{children:"Partial call graph"}),f.jsx(Wu,{children:"Compass reached the configured graph limit. Counts and paths may be incomplete."})]}),f.jsx(Zee,{coverage:n.coverage}),n.continuations.length>0&&f.jsxs("div",{children:[f.jsx("div",{className:"flex max-h-24 flex-wrap gap-1 overflow-auto","aria-label":"Call graph continuations",children:o.map(A=>f.jsxs(qu,{size:"xs",variant:"outline",disabled:!e.expand,onClick:()=>e.expand?.(A.symbol,A.direction,A.nextDepth),children:[A.direction==="callers"?f.jsx(VR,{}):A.direction==="callees"?f.jsx(LR,{}):f.jsx(Um,{}),"Expand ",A.direction]},`${A.symbol}:${A.direction}:${A.nextDepth}`))}),!t&&n.continuations.length>o.length&&f.jsxs("div",{className:"mt-2 flex flex-wrap items-center justify-between gap-2",children:[f.jsxs("p",{className:"text-xs text-muted-foreground",role:"status",children:["Showing ",o.length," of ",n.continuations.length," continuations"]}),f.jsxs(qu,{size:"xs",variant:"outline",onClick:()=>i(!0),children:["Show all ",n.continuations.length," continuations"]})]})]})]})]})}function Pee(n){return n.split("_").map((e,t)=>t===0?`${e.slice(0,1).toUpperCase()}${e.slice(1)}`:e).join(" ")}const k2=0;function Lee(n,e){const t=new Set(n.nodes.map(l=>l.id)),i=n.edges.filter(l=>t.has(l.source)&&t.has(l.target)).map(Fee),o=new Map;for(const l of i)o.set(l.source,(o.get(l.source)??0)+1),o.set(l.target,(o.get(l.target)??0)+1);const r=Uee(n),A=new Set(n.paths.flatMap(l=>l.nodeIds.slice(0,1))),I=n.nodes.map(l=>Gee(l,o.get(l.id)??0,r.get(l.id),A.has(l.id)));return{schema:"compass.viewer.graph/1",title:e,stats:{nodes:I.length,edges:i.length,communities:I.length>0?1:0,aggregated:!1},nodes:I,edges:i,communities:I.length>0?[{id:k2,label:"Query result",color:"#6f7bf7",hidden:!1}]:[],hyperedges:[]}}function Gee(n,e,t,i){const o=n.details?.type==="symbol"?n.details.data.signature??void 0:void 0;return{id:n.id,label:n.name,kind:n.kind,community:k2,communityName:"Query result",degree:e,...t!==void 0?{depth:t}:{},...i?{root:!0}:{},...n.language?{language:n.language}:{},...o?{signature:o}:{},...n.source?{source:n.source}:{},codeEvidence:n.evidence}}function Fee(n){const e=Vee(n);return{id:n.id,source:n.source,target:n.target,relation:n.kind,...n.relationshipSite?{relationshipSite:n.relationshipSite}:{},...n.details?{details:n.details}:{},...e?{confidence:e}:{},codeEvidence:n.evidence}}function Vee(n){return n.evidence.some(e=>e.confidence==="ambiguous")?"ambiguous":n.evidence.some(e=>e.confidence==="inferred")?"inferred":n.evidence.length>0?"extracted":void 0}function Uee(n){const e=new Map;for(const t of n.paths)t.nodeIds.forEach((i,o)=>{const r=e.get(i);(r===void 0||o[x.id,x])),i=new Map(e.nodes.map(x=>[x.id,x])),o=new Map,r=[],A=R2(i,t),I=R2(t,i),l=new Map(Hee(i,t).map(x=>[x,Xm(t.get(x),i.get(x),"node")])),c=[...l.entries()].filter(([,x])=>x.fields.length>0).map(([x])=>x),h=Wee(n.edges,e.edges),p=h.matched.map(({before:x,after:O})=>({before:x,after:O,evidence:Kee(x,O)})).filter(({evidence:x})=>x.fields.length>0);for(const x of A)eh(o,i.get(x),"added",YA(void 0,i.get(x)));for(const x of I)eh(o,t.get(x),"removed",YA(t.get(x),void 0));for(const x of c)eh(o,i.get(x),"changed",l.get(x));for(const x of h.added)r.push({...x,change:"added",evidence:YA(void 0,x)}),th(o,x,t,i);for(const x of h.removed)r.push({...x,change:"removed",evidence:YA(x,void 0)}),th(o,x,t,i);for(const{after:x,evidence:O}of p)r.push({...x,change:"changed",evidence:O}),th(o,x,t,i);const m=[...o.values()].sort((x,O)=>x.id.localeCompare(O.id));r.sort((x,O)=>x.id.localeCompare(O.id));const y=Qee(r),w=new Set(m.map(x=>x.community)),S=[...e.communities,...n.communities.filter(x=>!e.communities.some(O=>O.id===x.id))].filter(x=>w.has(x.id));return{addedNodes:A.length,removedNodes:I.length,changedNodes:c.length,addedEdges:h.added.length,removedEdges:h.removed.length,changedEdges:p.length,graph:{...e,title:`Graph delta · ${e.title}`,stats:{...e.stats,nodes:m.length,edges:y.length,communities:S.length,aggregated:n.stats.aggregated||e.stats.aggregated},nodes:m,edges:y,communities:S,hyperedges:[]}}}function R2(n,e){return[...n.keys()].filter(t=>!e.has(t))}function Hee(n,e){return[...n.keys()].filter(t=>e.has(t))}function eh(n,e,t,i){e&&n.set(e.id,{...e,change:t,...i?{evidence:i}:{}})}function _2(n,e,t,i){if(n.has(e))return;const o=i.get(e)??t.get(e);o&&n.set(e,{...o,change:"unchanged"})}function th(n,e,t,i){_2(n,e.source,t,i),_2(n,e.target,t,i)}function Kee(n,e){return Xm({...n,id:e.id},e,"edge")}function Wee(n,e){const t=new Set,i=new Set,o=[],r=(I,l)=>{t.add(I),i.add(l),o.push({before:n[I],after:e[l]})};j2(n,e,t,i,r,I=>fI(I.id)?void 0:I.id),j2(n,e,t,i,r,I=>fI(I.id)?nh(I):void 0);const A=new Map;n.forEach((I,l)=>{if(t.has(l)||!fI(I.id))return;const c=A.get(hI(I))??{parent:[],current:[]};c.parent.push(l),A.set(hI(I),c)}),e.forEach((I,l)=>{if(i.has(l)||!fI(I.id))return;const c=A.get(hI(I))??{parent:[],current:[]};c.current.push(l),A.set(hI(I),c)});for(const I of A.values()){I.parent.sort((c,h)=>Z2(n[c],n[h])),I.current.sort((c,h)=>Z2(e[c],e[h]));const l=Math.min(I.parent.length,I.current.length);for(let c=0;c!i.has(l)),removed:n.filter((I,l)=>!t.has(l))}}function j2(n,e,t,i,o,r){const A=new Map;e.forEach((I,l)=>{if(i.has(l))return;const c=r(I);if(c===void 0)return;const h=A.get(c)??[];h.push(l),A.set(c,h)}),n.forEach((I,l)=>{if(t.has(l))return;const c=r(I);if(c===void 0)return;const p=A.get(c)?.shift();p!==void 0&&o(l,p)})}function nh(n){return JSON.stringify(f3(n,"edge"))}function hI(n){return JSON.stringify([n.source,n.target,n.relation])}function Z2(n,e){return nh(n).localeCompare(nh(e))||n.id.localeCompare(e.id)}function fI(n){return/^edge-\d+-/.test(n)}function Qee(n){const e=new Map;return n.map(t=>{const i=e.get(t.id)??0;return e.set(t.id,i+1),i===0?t:{...t,id:`${t.id}::${t.change}-${i}`}})}function Xee({workbench:n,host:e,communityDetail:t,communityLoading:i,communityError:o,onBackToOverview:r,initialInspectorLayout:A,onInspectorLayoutChange:I}){const[l,c]=F.useState(()=>P2(n)??n.defaultView),[h,p]=F.useState(!1),m=n.views.find(w=>w.id===l)??n.views[0];F.useEffect(()=>{const w=()=>{const S=P2(n);S&&c(S)};return window.addEventListener("hashchange",w),()=>window.removeEventListener("hashchange",w)},[n]);const y=w=>{c(w);const S=`view=${encodeURIComponent(w)}`;window.location.hash.slice(1)!==S&&(window.location.hash=S)};return m?f.jsxs("div",{className:"visualization-workbench","data-navigation-collapsed":h,children:[f.jsxs("aside",{className:"visualization-rail","data-collapsed":h,"aria-label":"Compass navigation",children:[f.jsxs("header",{children:[f.jsx("span",{className:"visualization-bearing","aria-hidden":"true",children:f.jsx(c3,{})}),f.jsxs("span",{children:[f.jsx("strong",{children:"Compass"}),f.jsx("small",{title:n.title,children:n.title})]}),f.jsx("button",{className:"visualization-rail-disclosure",type:"button","aria-label":h?"Expand graph navigation":"Collapse graph navigation",title:h?"Expand graph navigation":"Collapse graph navigation",onClick:()=>p(w=>!w),children:h?f.jsx(g3,{"aria-hidden":"true"}):f.jsx(i3,{"aria-hidden":"true"})})]}),f.jsx("nav",{"aria-label":"Graph views",children:n.views.map(w=>f.jsxs("button",{type:"button","aria-current":w.id===m.id?"page":void 0,onClick:()=>y(w.id),children:[f.jsx(nte,{view:w}),f.jsxs("span",{children:[f.jsx("strong",{children:w.title}),f.jsx("small",{children:w.description})]}),f.jsx("i",{"data-status":w.coverage.status,title:`${w.coverage.status} view`})]},w.id))}),f.jsxs("footer",{children:[f.jsx("span",{children:"Snapshot"}),f.jsx("code",{children:ite(n.graphIdentity)})]})]}),f.jsxs("main",{className:"visualization-main",children:[f.jsxs("header",{className:"visualization-context",children:[f.jsxs("div",{children:[f.jsx("span",{children:gte(m)}),f.jsx("strong",{children:m.title})]}),f.jsxs("div",{className:"visualization-coverage","data-status":m.coverage.status,children:[m.kind!=="call"&&f.jsxs(f.Fragment,{children:[f.jsxs("span",{children:[m.coverage.nodes.toLocaleString()," nodes"]}),f.jsxs("span",{children:[m.coverage.edges.toLocaleString()," relationships"]})]}),f.jsx("strong",{children:ote(m)})]})]}),f.jsx("section",{className:"visualization-stage","aria-label":`${m.title} visualization`,children:f.jsx($ee,{view:m,host:e,communityDetail:t,communityLoading:i,communityError:o,onBackToOverview:r,initialInspectorLayout:A,onInspectorLayoutChange:I},m.id)})]})]}):null}function $ee({view:n,host:e,communityDetail:t,communityLoading:i,communityError:o,onBackToOverview:r,initialInspectorLayout:A,onInspectorLayoutChange:I}){if(n.kind==="call")return f.jsx(Bee,{graph:n.graph,host:{openSource:e.openSource,...e.expandCall?{expand:e.expandCall}:{},...e.changeCallDirection?{changeDirection:e.changeCallDirection}:{}}});if(n.kind==="architecture")return f.jsx(qee,{model:n.model,host:e});if(n.kind==="impact")return f.jsx(ih,{model:Lee(n.result,n.title),host:e,queryResult:n.result,preferredLayout:"hierarchical"});if(n.kind==="history"){const c=Yee(n.before,n.after);return f.jsxs("div",{className:"workbench-history-view",children:[f.jsxs("div",{className:"workbench-history-banner",children:[f.jsx(Lm,{"aria-hidden":"true"}),f.jsxs("span",{children:[f.jsxs("strong",{children:[n.baseRevision," → ",n.targetRevision]}),f.jsxs("small",{children:["+",c.addedNodes," / −",c.removedNodes," / Δ",c.changedNodes," nodes"]})]})]}),f.jsx(ih,{model:c.graph,host:e,preferredLayout:"grid",sourceRevisions:{before:n.baseRevision,after:n.targetRevision}})]})}const l=n.kind==="affected"?"hierarchical":n.kind==="artifact"?n.lens==="routes"?"hierarchical":"grid":"automatic";return f.jsx(ih,{model:n.model,host:e,preferredLayout:l,communityDetails:n.kind==="code"?n.communityDetails:void 0,communityDetail:n.kind==="code"?t:void 0,communityLoading:n.kind==="code"?i:void 0,communityError:n.kind==="code"?o:void 0,onBackToOverview:n.kind==="code"?r:void 0,initialInspectorLayout:A,onInspectorLayoutChange:I})}function ih({model:n,host:e,queryResult:t,sourceRevisions:i,preferredLayout:o,communityDetails:r,communityDetail:A,communityLoading:I,communityError:l,onBackToOverview:c,initialInspectorLayout:h,onInspectorLayoutChange:p}){const[m,y]=F.useState(""),[w,S]=F.useState(""),[x,O]=F.useState(""),[E,_]=F.useState(""),[P,Q]=F.useState(),[ne,j]=F.useState(!1),V=F.useId(),de=F.useRef(null),le=F.useRef(null),Ee=(P===void 0?void 0:{communityId:P,model:r?.[String(P)]??n})??A,Ue=Ee?.model??n,We=Ee?`community-${Ee.communityId}`:"overview",Ae=F.useMemo(()=>Jee(Ue),[Ue]),M=F.useMemo(()=>ete(Ue,{relation:m,evidence:w,kind:x,language:E}),[Ue,w,x,E,m]);F.useEffect(()=>{y(""),S(""),O(""),_(""),j(!1)},[We]),F.useEffect(()=>{if(!ne)return;const T=te=>{te.key==="Escape"&&(j(!1),de.current?.focus())},L=te=>{const ae=te.target;de.current?.contains(ae)||le.current?.contains(ae)||j(!1)};return document.addEventListener("keydown",T),document.addEventListener("pointerdown",L),()=>{document.removeEventListener("keydown",T),document.removeEventListener("pointerdown",L)}},[ne]);const U=F.useCallback(()=>{y(""),S(""),O(""),_("")},[]),K=F.useCallback(()=>j(!1),[]),re=[m,w,x,E].filter(Boolean).length,ee=re>0&&M.nodes.length===0;return f.jsx("div",{className:"workbench-graph-lens",children:f.jsx(ju,{model:Ee?n:M,communityDetail:Ee?{...Ee,model:M}:void 0,communityLoading:I,communityError:l,onBackToOverview:P===void 0?c:()=>Q(void 0),initialInspectorLayout:h,onInspectorLayoutChange:p,host:{...e,openCommunity:T=>{r?.[String(T)]?Q(T):e.openCommunity?.(T)}},queryResult:t,sourceRevisions:i,showInspectorHeader:!1,preferredLayout:o,toolbarLeading:f.jsxs("button",{ref:de,className:"workbench-filter-trigger",type:"button","aria-label":"Graph filters","aria-expanded":ne,"aria-controls":V,onClick:()=>j(T=>!T),children:[f.jsx(I3,{"aria-hidden":"true"}),f.jsx("span",{children:"Filters"}),re>0?f.jsx("b",{children:re}):null,f.jsxs("small",{children:[M.nodes.length.toLocaleString()," / ",Ue.nodes.length.toLocaleString()]})]}),toolbarLeadingPanel:ne?f.jsxs("div",{ref:le,id:V,className:"workbench-filter-popover",role:"region","aria-label":"Graph filter options",children:[f.jsxs("header",{children:[f.jsxs("span",{children:[f.jsx("strong",{children:"Filter graph"}),f.jsx("small",{children:"Refine visible nodes and relationships"})]}),f.jsx("button",{type:"button",disabled:re===0,onClick:U,children:"Clear filters"})]}),f.jsx(Fs,{label:"Relationship",value:m,values:Ae.relations,onChange:y}),f.jsx(Fs,{label:"Evidence",value:w,values:Ae.evidence,onChange:S}),f.jsx(Fs,{label:"Node kind",value:x,values:Ae.kinds,onChange:O}),f.jsx(Fs,{label:"Language",value:E,values:Ae.languages,onChange:_}),f.jsx("footer",{role:"status",children:ee?"No nodes match these filters":`Showing ${M.nodes.length.toLocaleString()} of ${Ue.nodes.length.toLocaleString()} nodes`})]}):void 0,toolbarLeadingOpen:ne,onToolbarLeadingClose:K,stageOverlay:Ue.nodes.length===0?f.jsx(B2,{title:"This view has no graph nodes",detail:"The exported graph lens did not contain any nodes to visualize."}):ee&&!ne?f.jsx(B2,{title:"No nodes match these filters",detail:"Clear one or more filters to restore the graph.",onClear:U}):void 0})})}function B2({title:n,detail:e,onClear:t}){return f.jsxs("div",{className:"workbench-graph-empty",role:"status",children:[f.jsx(ac,{"aria-hidden":"true"}),f.jsx("strong",{children:n}),f.jsx("span",{children:e}),t?f.jsx("button",{type:"button",onClick:t,children:"Clear filters"}):null]})}function Fs({label:n,value:e,values:t,onChange:i}){return f.jsxs("label",{children:[f.jsx("span",{children:n}),f.jsxs("select",{value:e,onChange:o=>i(o.target.value),children:[f.jsx("option",{value:"",children:"All"}),t.map(o=>f.jsx("option",{value:o,children:gh(o)},o))]})]})}function qee({model:n,host:e}){const[t,i]=F.useState("production"),[o,r]=F.useState("all"),A=F.useMemo(()=>tte(n,t,o),[o,n,t]),I=A.sections.find(m=>m.nodeCount>0),[l,c]=F.useState(I?{kind:"section",id:I.id}:void 0),h=l?.kind==="section"?n.sections.find(m=>m.id===l.id):void 0,p=l?.kind==="route"?A.routes.find(m=>m.id===l.id):void 0;return f.jsxs("div",{className:"workbench-architecture",children:[f.jsxs("div",{className:"workbench-filter-strip","aria-label":"Architecture filters",children:[f.jsx(Fs,{label:"Source scope",value:t,values:["production","all"],onChange:m=>i(m)}),f.jsx(Fs,{label:"Evidence",value:o,values:["all","extracted","inferred","ambiguous"],onChange:m=>r(m)}),f.jsxs("span",{role:"status",children:[A.statistics.visibleCalls.toLocaleString()," visible calls"]})]}),f.jsxs("div",{className:"workbench-architecture-body",children:[f.jsx(OJ,{overview:A,selection:l,onSelect:c}),f.jsx("aside",{"aria-label":"Architecture details",children:h?f.jsxs(f.Fragment,{children:[f.jsx("span",{children:"Subsystem"}),f.jsx("h2",{children:h.name}),f.jsxs("p",{children:[h.nodes.length.toLocaleString()," symbols · ",h.edges.length.toLocaleString()," internal calls"]}),f.jsx("div",{className:"workbench-symbol-list",children:h.nodes.slice(0,100).map(m=>f.jsxs("button",{type:"button",disabled:!m.sourceFile,onClick:()=>m.sourceFile&&e.openSource({file:m.sourceFile}),children:[f.jsx("strong",{children:m.label}),f.jsxs("small",{children:[m.kind,m.sourceFile?` · ${m.sourceFile}`:""]})]},m.id))})]}):p?f.jsxs(f.Fragment,{children:[f.jsx("span",{children:"Subsystem route"}),f.jsxs("h2",{children:[L2(A,p.sourceSection)," → ",L2(A,p.targetSection)]}),f.jsxs("p",{children:[p.calls.toLocaleString()," calls cross this boundary."]})]}):f.jsx("p",{children:"Select a subsystem or route."})})]})]})}function Jee(n){const e=t=>[...new Set(t.filter(i=>!!i))].sort();return{relations:e(n.edges.map(t=>t.relation)),evidence:e(n.edges.map(t=>t.confidence)),kinds:e(n.nodes.map(t=>t.kind)),languages:e(n.nodes.map(t=>t.language))}}function ete(n,e){const t=n.nodes.filter(I=>(!e.kind||I.kind===e.kind)&&(!e.language||I.language===e.language));let i=new Set(t.map(I=>I.id));const o=n.edges.filter(I=>i.has(I.source)&&i.has(I.target)&&(!e.relation||I.relation===e.relation)&&(!e.evidence||I.confidence===e.evidence));if(e.relation||e.evidence){const I=new Set(o.flatMap(l=>[l.source,l.target]));for(const l of t)l.root&&I.add(l.id);i=I}const r=t.filter(I=>i.has(I.id)),A=new Set(r.map(I=>I.community));return{...n,stats:{...n.stats,nodes:r.length,edges:o.length,communities:A.size},nodes:r,edges:o,communities:n.communities.filter(I=>A.has(I.id))}}function tte(n,e,t){const i=n.sections.filter(S=>S.id!=="overview"),o=S=>e==="all"||S==="production",r=new Map(i.flatMap(S=>S.nodes).map(S=>[S.id,S])),A=S=>(t==="all"||S.confidence===t)&&o(r.get(S.source)?.scope??"unknown")&&o(r.get(S.target)?.scope??"unknown"),I=new Map;for(const S of n.crossSectionCalls.filter(A)){const x=`${S.sourceSection}->${S.targetSection}`,O=I.get(x)??[];O.push(S),I.set(x,O)}const l=[...I.entries()].map(([S,x])=>({id:S,sourceSection:x[0].sourceSection,targetSection:x[0].targetSection,calls:x.length,extracted:x.filter(O=>O.confidence==="extracted").length,inferred:x.filter(O=>O.confidence==="inferred").length,ambiguous:x.filter(O=>O.confidence==="ambiguous").length})).sort((S,x)=>x.calls-S.calls||S.id.localeCompare(x.id)),c=new Map,h=new Map;for(const S of l)h.set(S.sourceSection,(h.get(S.sourceSection)??0)+S.calls),c.set(S.targetSection,(c.get(S.targetSection)??0)+S.calls);const p=i.map(S=>{const x={production:0,test:0,generated:0,vendor:0,unknown:0};for(const O of S.nodes)x[O.scope]+=1;return{id:S.id,name:S.name,nodeCount:S.nodes.filter(O=>o(O.scope)).length,totalNodeCount:S.nodes.length,internalCallCount:S.edges.filter(A).length,incomingCalls:c.get(S.id)??0,outgoingCalls:h.get(S.id)??0,scopes:x}}),m=p.reduce((S,x)=>S+x.nodeCount,0),y=p.reduce((S,x)=>S+x.internalCallCount,0),w=l.reduce((S,x)=>S+x.calls,0);return{title:n.title,scope:e,evidence:t,sections:p,routes:l,statistics:{visibleNodes:m,totalNodes:n.statistics.nodes,visibleCalls:y+w,totalCalls:n.statistics.edges,communities:n.statistics.communities,extracted:n.statistics.extracted,inferred:n.statistics.inferred,ambiguous:n.statistics.ambiguous},coverage:n.coverage,provenance:n.provenance}}function nte({view:n}){const e=n.kind==="code"?ac:n.kind==="call"?rc:n.kind==="impact"?KR:n.kind==="architecture"?YR:n.kind==="history"?Lm:n.kind==="affected"?A3:n.lens==="routes"?Hm:n.lens==="provenance"?HR:r3;return f.jsx(e,{"aria-hidden":"true"})}function P2(n){const e=new URLSearchParams(window.location.hash.slice(1)).get("view");return e&&n.views.some(t=>t.id===e)?e:void 0}function ite(n){const e=n.startsWith("sha256:")?n.slice(7):n;return e.length>12?e.slice(0,12):e}function gte(n){return n.kind==="artifact"?`${gh(n.lens)} lens`:`${gh(n.kind)} graph`}function ote(n){return n.coverage.status==="complete"?"Complete":n.coverage.status==="summary"?"Community summary":"Bounded result"}function gh(n){return n.replaceAll("_"," ").replace(/\b\w/g,e=>e.toUpperCase())}function L2(n,e){return n.sections.find(t=>t.id===e)?.name??e}const ste=Se({provider:It(["github","gitlab","bitbucket"]),repositoryUrl:H().url(),revision:H().regex(/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/i)});function rte(n,e,t=n.revision){if(!ate(t))return;const i=Ate(e.file);if(!i)return;const o=n.repositoryUrl.replace(/\/$/,""),r=Cte(n.provider,e);return n.provider==="gitlab"?`${o}/-/blob/${t}/${i}${r}`:n.provider==="bitbucket"?`${o}/src/${t}/${i}${r}`:`${o}/blob/${t}/${i}${r}`}function G2(n,e,t){if(window.dispatchEvent(new CustomEvent("compass:open-source",{detail:e})),!n)return;const i=rte(n,e,t??n.revision);if(!i)return;const o=document.createElement("a");o.href=i,o.target="_blank",o.rel="noopener noreferrer",o.click()}function ate(n){return/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/i.test(n)}function Ate(n){if(!n||n.startsWith("/")||n.startsWith("\\")||n.includes("\0"))return;const e=n.replaceAll("\\","/").split("/");if(!e.some(t=>!t||t==="."||t===".."))return e.map(encodeURIComponent).join("/")}function Cte(n,e){const t=e.startLine;if(t===void 0)return"";const i=Math.max(t,e.endLine??t);return n==="gitlab"?i===t?`#L${t}`:`#L${t}-${i}`:n==="bitbucket"?i===t?`#lines-${t}`:`#lines-${t}:${i}`:i===t?`#L${t}`:`#L${t}-L${i}`}function F2(){const n=document.getElementById("compass-viewer-root"),e=document.getElementById("compass-viewer-model");if(!n||!e)throw new Error("Compass viewer root or model is missing");const t=JSON.parse(e.textContent??""),i=Ite(),o=JO.createRoot(n),r=kR.safeParse(t);if(r.success){o.render(f.jsx(Xee,{workbench:r.data,host:{openSource(m,y){G2(i,m,y)}}}));return}const A=bg.parse(t),I=new Map;let l,c=null,h;const p=()=>{o.render(f.jsx(ju,{model:A,communityDetail:l,communityLoading:c,communityError:h,onBackToOverview:l?()=>{l=void 0,h=void 0,p()}:void 0,host:{openSource(m,y){G2(i,m,y)},openCommunity(m){c===null&&(c=m,h=void 0,p(),window.setTimeout(()=>{try{let y=I.get(m);if(!y){const w=document.querySelector(`script[data-compass-community="${m}"]`);if(!w)throw new Error(`Community ${m} detail is unavailable in this export.`);y=bg.parse(JSON.parse(w.textContent??"")),I.set(m,y)}l={communityId:m,model:y},window.dispatchEvent(new CustomEvent("compass:open-community",{detail:{communityId:m}}))}catch(y){h=y instanceof Error?y.message:String(y)}finally{c=null,p()}},0))}}}))};p()}function Ite(){const n=document.getElementById("compass-source-navigation");if(!n?.textContent)return;const e=ste.safeParse(JSON.parse(n.textContent));return e.success?e.data:void 0}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",F2,{once:!0}):F2()})(); diff --git a/crates/compass-output/assets/viewer/manifest.json b/crates/compass-output/assets/viewer/manifest.json index ab6c0f0c..a49111c8 100644 --- a/crates/compass-output/assets/viewer/manifest.json +++ b/crates/compass-output/assets/viewer/manifest.json @@ -3,12 +3,12 @@ "viewerSchema": "compass.viewer.graph/1", "files": { "graph.js": { - "bytes": 1065510, - "sha256": "260c5c317a7c59a250f4fbf9c04a3b12df442bbf3b52cb3d310a6e9757e8de80" + "bytes": 1068010, + "sha256": "ff9756063d6fede2a9dc26983badf28f6d8b57fda0e3c91b22048ab96c360a02" }, "viewer.css": { - "bytes": 233074, - "sha256": "ab2710f4547006d440941e1ca4280b8392163d936b777c67cdf2d8a6fffe5a8c" + "bytes": 234489, + "sha256": "9c39d5cea6a512de1b9f46d10e051480fff84510ae92a873423186c3b30b32a8" } } } diff --git a/crates/compass-output/assets/viewer/viewer.css b/crates/compass-output/assets/viewer/viewer.css index 833bd511..8e0b4ccb 100644 --- a/crates/compass-output/assets/viewer/viewer.css +++ b/crates/compass-output/assets/viewer/viewer.css @@ -1 +1 @@ -@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-border-style:solid;--tw-font-weight: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-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--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 ;--font-weight-medium:500;--radius-md:calc(var(--radius) - 2px);--radius-4xl:2rem;--animate-spin:spin 1s linear infinite;--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(--compass-font-sans);--default-mono-font-family:var(--compass-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%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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:where(:not(iframe)){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]){appearance:button}::file-selector-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{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.top-2{top:calc(var(--spacing) * 2)}.right-2{right:calc(var(--spacing) * 2)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.isolate{isolation:isolate}.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}}.mt-2{margin-top:calc(var(--spacing) * 2)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-full{width:100%;height:100%}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-screen{height:100vh}.max-h-24{max-height:calc(var(--spacing) * 24)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[min\(44rem\,calc\(100\%-1\.5rem\)\)\]{max-width:min(44rem,100% - 1.5rem)}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-7{min-width:calc(var(--spacing) * 7)}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-9{min-width:calc(var(--spacing) * 9)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y: calc(-50% - 2px) ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-45{rotate:45deg}.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)}.animate-spin{animation:var(--animate-spin)}.touch-none{touch-action:none}.resize{resize:both}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-\[--spacing\(var\(--gap\)\)\]{gap:calc(var(--spacing) * var(--gap))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded-4xl{border-radius:var(--radius-4xl)}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md),10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md),12px)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-border{border-color:var(--border)}.border-destructive\/50{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/50{border-color:color-mix(in oklab,var(--destructive) 50%,transparent)}}.border-input{border-color:var(--input)}.border-transparent{border-color:#0000}.bg-background,.bg-background\/95{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/95{background-color:color-mix(in oklab,var(--background) 95%,transparent)}}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.bg-foreground{background-color:var(--foreground)}.bg-muted{background-color:var(--muted)}.bg-popover\/95{background-color:var(--popover)}@supports (color:color-mix(in lab,red,red)){.bg-popover\/95{background-color:color-mix(in oklab,var(--popover) 95%,transparent)}}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.bg-clip-padding{background-clip:padding-box}.fill-foreground{fill:var(--foreground)}.p-1{padding:var(--spacing)}.p-3{padding:calc(var(--spacing) * 3)}.p-\[3px\]{padding:3px}.p-px{padding:1px}.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)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.text-left{text-align:left}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.text-background{color:var(--background)}.text-card-foreground{color:var(--card-foreground)}.text-destructive{color:var(--destructive)}.text-foreground,.text-foreground\/60{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/60{color:color-mix(in oklab,var(--foreground) 60%,transparent)}}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.underline-offset-4{text-underline-offset:4px}.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-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)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + 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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.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,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.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-\[color\,box-shadow\]{transition-property:color,box-shadow;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))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.paused{animation-play-state:paused}.running{animation-play-state:running}.group-has-\[\>svg\]\/alert\:col-start-2:is(:where(.group\/alert):has(>svg) *){grid-column-start:2}.group-data-\[orientation\=horizontal\]\/tabs\:h-8:is(:where(.group\/tabs)[data-orientation=horizontal] *){height:calc(var(--spacing) * 8)}.group-data-\[orientation\=vertical\]\/tabs\:h-fit:is(:where(.group\/tabs)[data-orientation=vertical] *){height:fit-content}.group-data-\[orientation\=vertical\]\/tabs\:w-full:is(:where(.group\/tabs)[data-orientation=vertical] *){width:100%}.group-data-\[orientation\=vertical\]\/tabs\:flex-col:is(:where(.group\/tabs)[data-orientation=vertical] *){flex-direction:column}.group-data-\[orientation\=vertical\]\/tabs\:justify-start:is(:where(.group\/tabs)[data-orientation=vertical] *){justify-content:flex-start}.group-data-\[spacing\=0\]\/toggle-group\:rounded-none:is(:where(.group\/toggle-group)[data-spacing="0"] *){border-radius:0}.group-data-\[spacing\=0\]\/toggle-group\:px-2:is(:where(.group\/toggle-group)[data-spacing="0"] *){padding-inline:calc(var(--spacing) * 2)}.group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){background-color:#0000}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-6::file-selector-button{height:calc(var(--spacing) * 6)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.group-data-\[orientation\=horizontal\]\/tabs\:after\:inset-x-0:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);inset-inline:0}.group-data-\[orientation\=horizontal\]\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);bottom:-5px}.group-data-\[orientation\=horizontal\]\/tabs\:after\:h-0\.5:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);height:calc(var(--spacing) * .5)}.group-data-\[orientation\=vertical\]\/tabs\:after\:inset-y-0:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);inset-block:0}.group-data-\[orientation\=vertical\]\/tabs\:after\:-right-1:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);right:calc(var(--spacing) * -1)}.group-data-\[orientation\=vertical\]\/tabs\:after\:w-0\.5:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);width:calc(var(--spacing) * .5)}@media(hover:hover){.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:color-mix(in oklch,var(--secondary),var(--foreground) 5%)}}.hover\:bg-destructive\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-primary\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab,var(--primary) 80%,transparent)}}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:z-10:focus,.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:border-destructive\/40:focus-visible{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:border-destructive\/40:focus-visible{border-color:color-mix(in oklab,var(--destructive) 40%,transparent)}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-3:focus-visible,.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.active\:not-aria-\[haspopup\]\:translate-y-px:active:not([aria-haspopup]){--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-input\/50:disabled{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.disabled\:bg-input\/50:disabled{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}.disabled\:opacity-50:disabled{opacity:.5}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius)}.has-data-\[icon\=inline-end\]\:pr-1:has([data-icon=inline-end]){padding-right:var(--spacing)}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 2)}.group-data-\[spacing\=0\]\/toggle-group\:has-data-\[icon\=inline-end\]\:pr-1\.5:is(:where(.group\/toggle-group)[data-spacing="0"] *):has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-1:has([data-icon=inline-start]){padding-left:var(--spacing)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 2)}.group-data-\[spacing\=0\]\/toggle-group\:has-data-\[icon\=inline-start\]\:pl-1\.5:is(:where(.group\/toggle-group)[data-spacing="0"] *):has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[slot\=alert-action\]\:relative:has([data-slot=alert-action]){position:relative}.has-data-\[slot\=alert-action\]\:pr-18:has([data-slot=alert-action]){padding-right:calc(var(--spacing) * 18)}.has-data-\[slot\=kbd\]\:pr-1\.5:has([data-slot=kbd]){padding-right:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:grid-cols-\[auto_1fr\]:has(>svg){grid-template-columns:auto 1fr}.has-\[\>svg\]\:gap-x-2:has(>svg){column-gap:calc(var(--spacing) * 2)}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.aria-pressed\:bg-muted[aria-pressed=true]{background-color:var(--muted)}.data-closed\:animate-out[data-closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-closed\:fade-out-0[data-closed]{--tw-exit-opacity:0}.data-closed\:zoom-out-95[data-closed]{--tw-exit-scale:.95}.data-horizontal\:h-2\.5[data-horizontal]{height:calc(var(--spacing) * 2.5)}.data-horizontal\:h-px[data-horizontal]{height:1px}.data-horizontal\:w-full[data-horizontal]{width:100%}.data-horizontal\:flex-col[data-horizontal]{flex-direction:column}.data-horizontal\:border-t[data-horizontal]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-horizontal\:border-t-transparent[data-horizontal]{border-top-color:#0000}.data-open\:animate-in[data-open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-open\:fade-in-0[data-open]{--tw-enter-opacity:0}.data-open\:zoom-in-95[data-open]{--tw-enter-scale:.95}.data-vertical\:h-full[data-vertical]{height:100%}.data-vertical\:w-2\.5[data-vertical]{width:calc(var(--spacing) * 2.5)}.data-vertical\:w-px[data-vertical]{width:1px}.data-vertical\:flex-col[data-vertical]{flex-direction:column}.data-vertical\:items-stretch[data-vertical]{align-items:stretch}.data-vertical\:self-stretch[data-vertical]{align-self:stretch}.data-vertical\:border-l[data-vertical]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-vertical\:border-l-transparent[data-vertical]{border-left-color:#0000}.data-\[orientation\=horizontal\]\:flex-col[data-orientation=horizontal]{flex-direction:column}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=sm\]\:rounded-\[min\(var\(--radius-md\)\,10px\)\][data-size=sm]{border-radius:min(var(--radius-md),10px)}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--destructive) 90%,transparent)}}:is(.\*\*\:data-\[slot\=kbd\]\:relative *)[data-slot=kbd]{position:relative}:is(.\*\*\:data-\[slot\=kbd\]\:isolate *)[data-slot=kbd]{isolation:isolate}:is(.\*\*\:data-\[slot\=kbd\]\:z-50 *)[data-slot=kbd]{z-index:50}:is(.\*\*\:data-\[slot\=kbd\]\:rounded-sm *)[data-slot=kbd]{border-radius:calc(var(--radius) - 4px)}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:first\:rounded-l-lg:is(:where(.group\/toggle-group)[data-horizontal] *)[data-spacing="0"]:first-child{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:first\:rounded-t-lg:is(:where(.group\/toggle-group)[data-vertical] *)[data-spacing="0"]:first-child{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:last\:rounded-r-lg:is(:where(.group\/toggle-group)[data-horizontal] *)[data-spacing="0"]:last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:last\:rounded-b-lg:is(:where(.group\/toggle-group)[data-vertical] *)[data-spacing="0"]:last-child{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.group-data-\[variant\=default\]\/tabs-list\:data-\[state\=active\]\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *)[data-state=active]{--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)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]:after{content:var(--tw-content);opacity:1}.data-\[state\=delayed-open\]\:animate-in[data-state=delayed-open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=delayed-open\]\:fade-in-0[data-state=delayed-open]{--tw-enter-opacity:0}.data-\[state\=delayed-open\]\:zoom-in-95[data-state=delayed-open]{--tw-enter-scale:.95}.data-\[state\=on\]\:bg-muted[data-state=on]{background-color:var(--muted)}.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:border-l-0:is(:where(.group\/toggle-group)[data-horizontal] *)[data-spacing="0"][data-variant=outline]{border-left-style:var(--tw-border-style);border-left-width:0}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:border-t-0:is(:where(.group\/toggle-group)[data-vertical] *)[data-spacing="0"][data-variant=outline]{border-top-style:var(--tw-border-style);border-top-width:0}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:first\:border-l:is(:where(.group\/toggle-group)[data-horizontal] *)[data-spacing="0"][data-variant=outline]:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:first\:border-t:is(:where(.group\/toggle-group)[data-vertical] *)[data-spacing="0"][data-variant=outline]:first-child{border-top-style:var(--tw-border-style);border-top-width:1px}@media(min-width:48rem){.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:text-pretty{text-wrap:pretty}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/20:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/20:is(.dark *){background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}@media(hover:hover){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:color-mix(in oklab,var(--destructive) 30%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.dark\:hover\:text-foreground:is(.dark *):hover{color:var(--foreground)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:color-mix(in oklab,var(--input) 80%,transparent)}}.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:color-mix(in oklab,var(--destructive) 50%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:data-\[state\=active\]\:border-input:is(.dark *)[data-state=active]{border-color:var(--input)}.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:color-mix(in oklab,var(--input) 30%,transparent)}}.dark\:data-\[state\=active\]\:text-foreground:is(.dark *)[data-state=active]{color:var(--foreground)}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{border-color:#0000}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.\[\&_a\]\:underline a{text-decoration-line:underline}.\[\&_a\]\:underline-offset-3 a{text-underline-offset:3px}@media(hover:hover){.\[\&_a\]\:hover\:text-foreground a:hover{color:var(--foreground)}}.\[\&_p\:not\(\:last-child\)\]\:mb-4 p:not(:last-child){margin-bottom:calc(var(--spacing) * 4)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}@media(hover:hover){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.\[a\]\:hover\:bg-muted:is(a):hover{background-color:var(--muted)}.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:color-mix(in oklab,var(--primary) 80%,transparent)}}.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:color-mix(in oklab,var(--secondary) 80%,transparent)}}.\[a\]\:hover\:text-muted-foreground:is(a):hover{color:var(--muted-foreground)}}:is(.\*\:\[svg\]\:row-span-2>*):is(svg){grid-row:span 2/span 2}:is(.\*\:\[svg\]\:translate-y-0\.5>*):is(svg){--tw-translate-y:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}:is(.\*\:\[svg\]\:text-current>*):is(svg){color:currentColor}:is(.\*\:\[svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4>*):is(svg:not([class*=size-])){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3\!>svg{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}.init-shell{box-sizing:border-box;background:linear-gradient(var(--compass-grid) 1px,transparent 1px),linear-gradient(90deg,var(--compass-grid) 1px,transparent 1px),var(--background);height:100vh;min-height:100vh;color:var(--foreground);background-size:32px 32px;padding:clamp(28px,5vw,72px);overflow:auto}.init-header,.init-progress-header{justify-content:space-between;align-items:flex-end;gap:28px;width:min(1080px,100%);margin:0 auto clamp(26px,4vw,46px);display:flex}.init-eyebrow{color:var(--compass-focus);font:600 11px/1.3 var(--compass-font-mono);letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px}.init-header h1,.init-progress-header h1,.init-result-card h1{color:var(--foreground);font:600 clamp(28px,4vw,44px)/1.08 var(--compass-font-sans);letter-spacing:-.035em;margin:0}.init-header-copy,.init-progress-header p:not(.init-eyebrow),.init-result-card>p:not(.init-eyebrow){max-width:650px;color:var(--muted-foreground);margin:13px 0 0;font-size:14px;line-height:1.65}.init-repository-badge{border:1px solid var(--compass-line);background:var(--vscode-editorWidget-background,var(--compass-panel));border-radius:5px;align-items:center;gap:11px;min-width:190px;max-width:320px;padding:11px 13px;display:flex}.init-repository-badge>svg{width:16px;color:var(--compass-focus)}.init-repository-badge span{min-width:0}.init-repository-badge small,.init-repository-badge strong{display:block}.init-repository-badge small{color:var(--compass-faint);font:10px/1.2 var(--compass-font-mono);text-transform:uppercase;margin-bottom:2px}.init-repository-badge strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.init-layout{border:1px solid var(--compass-line-strong);background:var(--vscode-editorWidget-background,var(--compass-panel));width:min(1080px,100%);min-height:520px;box-shadow:0 22px 55px var(--vscode-widget-shadow,#0000003d);border-radius:7px;grid-template-columns:245px minmax(0,1fr);margin:0 auto;display:grid;overflow:hidden}.init-step-nav{border-right:1px solid var(--compass-line);background:var(--compass-panel);flex-direction:column;justify-content:space-between;min-width:0;padding:27px 20px 20px;display:flex}@supports (color:color-mix(in lab,red,red)){.init-step-nav{background:color-mix(in srgb,var(--compass-panel) 88%,var(--compass-canvas))}}.init-step-nav ol,.init-runway,.init-rule-list{margin:0;padding:0;list-style:none}.init-step-nav li{padding-bottom:10px;position:relative}.init-step-nav li:not(:last-child):after{background:var(--compass-line);content:"";width:1px;position:absolute;top:37px;bottom:-1px;left:22px}.init-step-nav li[data-state=complete]:after{background:var(--compass-success)}@supports (color:color-mix(in lab,red,red)){.init-step-nav li[data-state=complete]:after{background:color-mix(in srgb,var(--compass-success) 62%,var(--compass-line))}}.init-step-nav button{width:100%;color:var(--muted-foreground);text-align:left;background:0 0;border:0;border-radius:4px;align-items:center;gap:11px;padding:7px;display:flex}.init-step-nav button:not(:disabled):hover{background:var(--workbench-hover);color:var(--foreground)}.init-step-nav button:focus-visible{outline:2px solid var(--compass-focus);outline-offset:1px}.init-step-marker{z-index:1;border:1px solid var(--compass-line-strong);background:var(--compass-panel);border-radius:50%;flex:0 0 30px;place-items:center;width:30px;height:30px;display:grid}.init-step-marker svg{width:13px;height:13px}.init-step-nav li[data-state=active] button{color:var(--foreground)}.init-step-nav li[data-state=active] .init-step-marker{border-color:var(--compass-focus);background:var(--compass-focus-soft);color:var(--compass-focus);box-shadow:0 0 0 4px var(--compass-focus-soft)}.init-step-nav li[data-state=complete] .init-step-marker{border-color:var(--compass-success);color:var(--compass-success)}.init-step-nav button small,.init-step-nav button strong{display:block}.init-step-nav button small{color:var(--compass-faint);font:9px/1.2 var(--compass-font-mono);letter-spacing:.06em;text-transform:uppercase;margin-bottom:2px}.init-step-nav button strong{font-size:12px;font-weight:550}.init-local-note{border:1px solid var(--compass-line);background:var(--compass-focus);border-radius:5px;align-items:flex-start;gap:9px;padding:12px;display:flex}@supports (color:color-mix(in lab,red,red)){.init-local-note{background:color-mix(in srgb,var(--compass-focus) 6%,transparent)}}.init-local-note>svg{width:14px;color:var(--compass-focus);flex:0 0 14px}.init-local-note p{color:var(--muted-foreground);margin:0;font-size:10px;line-height:1.5}.init-local-note strong,.init-local-note code{display:block}.init-local-note strong{color:var(--foreground);margin-bottom:2px;font-size:10px}.init-local-note code{color:var(--compass-focus);font-family:var(--compass-font-mono);margin-top:4px}.init-stage{flex-direction:column;min-width:0;padding:clamp(28px,5vw,52px);display:flex}.init-stage-heading{align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.init-stage-heading>span{color:var(--compass-focus);font:600 11px/1 var(--compass-font-mono);padding-top:5px}.init-stage-heading h2{color:var(--foreground);font:600 clamp(21px,3vw,28px)/1.2 var(--compass-font-sans);letter-spacing:-.025em;margin:0}.init-stage-heading p{color:var(--muted-foreground);margin:8px 0 0;font-size:12px;line-height:1.55}.init-scope-grid,.init-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.init-choice{border:1px solid var(--compass-line);background:var(--vscode-input-background,var(--background));cursor:pointer;border-radius:6px;align-items:flex-start;gap:12px;min-height:125px;padding:18px;display:flex;position:relative}.init-choice:hover{border-color:var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.init-choice:hover{border-color:color-mix(in srgb,var(--compass-focus) 48%,var(--compass-line))}}.init-choice[data-selected=true]{border-color:var(--compass-focus);background:var(--compass-focus-soft);box-shadow:inset 0 0 0 1px var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.init-choice[data-selected=true]{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--compass-focus) 30%,transparent)}}.init-choice input{opacity:0;width:1px;height:1px;position:absolute}.init-choice:has(input:focus-visible){outline:2px solid var(--compass-focus);outline-offset:2px}.init-choice-radio{width:20px;height:20px;color:var(--compass-faint);flex:0 0 20px;place-items:center;display:grid}.init-choice-radio svg{fill:#0000;width:16px}.init-choice[data-selected=true] .init-choice-radio svg{fill:var(--compass-focus);color:var(--compass-focus);stroke-width:4px}.init-choice strong,.init-choice small{display:block}.init-choice strong{color:var(--foreground);margin:1px 0 8px;font-size:13px}.init-choice small{color:var(--muted-foreground);font-size:11px;line-height:1.55}.init-scope-browser{border:1px solid var(--compass-line);background:var(--vscode-input-background,var(--background));border-radius:6px;margin-top:16px;overflow:hidden}.init-scope-browser>header{border-bottom:1px solid var(--compass-line);background:var(--compass-panel);justify-content:space-between;align-items:center;gap:16px;min-height:47px;padding:0 14px;display:flex}@supports (color:color-mix(in lab,red,red)){.init-scope-browser>header{background:color-mix(in srgb,var(--compass-panel) 84%,transparent)}}.init-scope-browser>header strong,.init-scope-browser>header small{display:block}.init-scope-browser>header strong{color:var(--foreground);margin-bottom:3px;font-size:11px}.init-scope-browser>header small{color:var(--compass-faint);font-size:9px}.init-scope-browser>header>span{border:1px solid var(--compass-focus);flex:none;padding:4px 7px}@supports (color:color-mix(in lab,red,red)){.init-scope-browser>header>span{border:1px solid color-mix(in srgb,var(--compass-focus) 45%,var(--compass-line))}}.init-scope-browser>header>span{background:var(--compass-focus-soft);color:var(--compass-focus);font:600 9px/1 var(--compass-font-mono);border-radius:999px}.init-scope-toolbar{border-bottom:1px solid var(--compass-line);align-items:center;gap:7px;height:35px;padding:0 10px;display:flex}.init-scope-toolbar>svg{width:13px;color:var(--compass-faint)}.init-scope-toolbar input{min-width:0;color:var(--foreground);font:10px/1.3 var(--compass-font-sans);background:0 0;border:0;outline:0;flex:1}.init-scope-toolbar input::placeholder{color:var(--vscode-input-placeholderForeground,var(--compass-faint))}.init-scope-toolbar:focus-within{box-shadow:inset 0 0 0 1px var(--compass-focus)}.init-scope-toolbar button,.init-scope-ledger button{width:22px;height:22px;color:var(--compass-faint);background:0 0;border:0;border-radius:3px;place-items:center;padding:0;display:grid}.init-scope-toolbar button:hover,.init-scope-ledger button:hover{background:var(--workbench-hover);color:var(--foreground)}.init-scope-toolbar button svg,.init-scope-ledger button svg{width:12px}.init-scope-body{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1.45fr) minmax(180px,.8fr);height:clamp(230px,38vh,310px);min-height:0;display:grid;overflow:hidden}.init-scope-tree{overscroll-behavior:contain;border-right:1px solid var(--compass-line);scrollbar-gutter:stable;min-width:0;min-height:0;padding:6px 0;overflow:auto}.init-scope-tree:focus-visible{outline:2px solid var(--compass-focus);outline-offset:-2px}.init-scope-row{box-sizing:border-box;align-items:center;min-width:max-content;height:27px;padding-right:9px;display:flex}.init-scope-row:hover{background:var(--workbench-hover)}.init-scope-disclosure{width:20px;height:22px;color:var(--compass-faint);background:0 0;border:0;border-radius:3px;flex:0 0 20px;place-items:center;padding:0;display:grid}button.init-scope-disclosure:hover{color:var(--foreground)}.init-scope-disclosure svg{width:13px}.init-scope-row label{min-width:0;color:var(--muted-foreground);cursor:pointer;flex:1;align-items:center;gap:7px;font-size:10px;display:flex}.init-scope-row label input{width:13px;height:13px;accent-color:var(--compass-focus);margin:0}.init-scope-row label svg{width:13px;height:13px;color:var(--compass-focus)}.init-scope-row label span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.init-scope-ledger{overscroll-behavior:contain;background:var(--compass-panel);min-width:0;min-height:0;padding:10px;overflow:auto}@supports (color:color-mix(in lab,red,red)){.init-scope-ledger{background:color-mix(in srgb,var(--compass-panel) 73%,transparent)}}.init-scope-ledger{scrollbar-gutter:stable}.init-scope-ledger>div{padding:2px 3px 9px}.init-scope-ledger strong,.init-scope-ledger small{display:block}.init-scope-ledger strong{color:var(--foreground);margin-bottom:3px;font-size:10px}.init-scope-ledger small,.init-scope-ledger>p,.init-scope-empty,.init-scope-notice{color:var(--compass-faint);font-size:9px;line-height:1.45}.init-scope-ledger>p,.init-scope-empty{margin:8px 3px}.init-scope-ledger ul{margin:0;padding:0;list-style:none}.init-scope-ledger li{border-top:1px solid var(--compass-line);align-items:center;gap:5px;min-width:0;padding:4px 3px 4px 7px;display:flex}.init-scope-ledger code{min-width:0;color:var(--foreground);font:9px/1.4 var(--compass-font-mono);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.init-scope-notice{border-top:1px solid var(--compass-line);background:var(--compass-warning);margin:0;padding:7px 12px}@supports (color:color-mix(in lab,red,red)){.init-scope-notice{background:color-mix(in srgb,var(--compass-warning) 7%,transparent)}}.init-scope-notice{color:var(--compass-warning)}.init-facts{border:1px solid var(--compass-line);border-radius:5px;grid-template-columns:1.5fr 1fr 1fr;margin:22px 0 0;display:grid;overflow:hidden}.init-facts>div{background:var(--compass-panel);min-width:0;padding:11px 13px}@supports (color:color-mix(in lab,red,red)){.init-facts>div{background:color-mix(in srgb,var(--compass-panel) 82%,transparent)}}.init-facts>div:not(:last-child){border-right:1px solid var(--compass-line)}.init-facts dt,.init-review-row>span{color:var(--compass-faint);font:9px/1.2 var(--compass-font-mono);text-transform:uppercase}.init-facts dt{margin-bottom:4px}.init-facts dd{min-width:0;color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:10px;overflow:hidden}.init-facts code,.init-review-row code{font-family:var(--compass-font-mono)}.init-fields{gap:18px}.init-fields label>span{margin-bottom:9px;display:block}.init-fields label strong,.init-fields label small{display:block}.init-fields label strong{color:var(--foreground);margin-bottom:3px;font-size:12px}.init-fields label small{color:var(--compass-faint);font-size:10px}.init-fields textarea{box-sizing:border-box;resize:vertical;border:1px solid var(--vscode-input-border,var(--compass-line));background:var(--vscode-input-background,var(--background));width:100%;min-height:142px;color:var(--vscode-input-foreground,var(--foreground));font:11px/1.6 var(--compass-font-mono);border-radius:4px;outline:none;padding:11px 12px}.init-fields textarea::placeholder{color:var(--vscode-input-placeholderForeground,var(--compass-faint))}.init-fields textarea:focus{border-color:var(--compass-focus);outline:1px solid var(--compass-focus)}.init-fields textarea:disabled{opacity:.55;cursor:not-allowed}.init-validation{color:var(--destructive);margin:12px 0 0;font-size:11px}.init-stage-actions{justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:30px;display:flex}.init-button{min-height:32px;font:500 12px/1.3 var(--compass-font-sans);border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;gap:8px;padding:6px 13px;display:inline-flex}.init-button svg{width:14px;height:14px}.init-button:focus-visible{outline:2px solid var(--compass-focus);outline-offset:2px}.init-button:disabled{opacity:.45;cursor:not-allowed}.init-button-primary{border-color:var(--vscode-button-border,transparent);background:var(--vscode-button-background,var(--primary));color:var(--vscode-button-foreground,var(--primary-foreground))}.init-button-primary:not(:disabled):hover{background:var(--vscode-button-hoverBackground,var(--primary))}.init-button-secondary{border-color:var(--compass-line);background:var(--vscode-button-secondaryBackground,var(--secondary));color:var(--vscode-button-secondaryForeground,var(--secondary-foreground))}.init-button-secondary:not(:disabled):hover,.init-button-quiet:hover{border-color:var(--compass-line-strong);background:var(--workbench-hover);color:var(--foreground)}.init-button-quiet{color:var(--muted-foreground);background:0 0}.init-button-build{min-width:170px}.init-review{border:1px solid var(--compass-line);border-radius:5px;overflow:hidden}.init-review-row{border-bottom:1px solid var(--compass-line);grid-template-columns:130px minmax(0,1fr);align-items:start;min-height:42px;display:grid}.init-review-row:last-child{border-bottom:0}.init-review-row>span{background:var(--compass-panel);align-self:stretch;padding:12px 13px}@supports (color:color-mix(in lab,red,red)){.init-review-row>span{background:color-mix(in srgb,var(--compass-panel) 76%,transparent)}}.init-review-row>div{min-width:0;color:var(--foreground);padding:11px 13px;font-size:11px}.init-review-row code{overflow-wrap:anywhere;color:var(--foreground)}.init-rule-default{color:var(--muted-foreground)}.init-rule-list{flex-wrap:wrap;gap:6px;display:flex}.init-rule-list li{border:1px solid var(--compass-line);background:var(--vscode-input-background,var(--background));border-radius:3px;padding:3px 7px}.init-build-callout{border-left:2px solid var(--compass-focus);background:var(--compass-focus-soft);align-items:flex-start;gap:12px;margin-top:16px;padding:13px 15px;display:flex}.init-build-callout>svg{width:17px;color:var(--compass-focus);flex:0 0 17px}.init-build-callout strong{color:var(--foreground);margin-bottom:3px;font-size:11px;display:block}.init-build-callout p{color:var(--muted-foreground);margin:0;font-size:10px;line-height:1.45}.init-replace-confirmation{border:1px solid var(--compass-warning);align-items:flex-start;gap:10px;margin-top:10px;padding:12px 14px;display:flex}@supports (color:color-mix(in lab,red,red)){.init-replace-confirmation{border:1px solid color-mix(in srgb,var(--compass-warning) 55%,var(--compass-line))}}.init-replace-confirmation{background:var(--compass-warning);border-radius:4px}@supports (color:color-mix(in lab,red,red)){.init-replace-confirmation{background:color-mix(in srgb,var(--compass-warning) 8%,transparent)}}.init-replace-confirmation{cursor:pointer}.init-replace-confirmation input{accent-color:var(--compass-focus);margin:2px 0 0}.init-replace-confirmation strong,.init-replace-confirmation small{display:block}.init-replace-confirmation strong{color:var(--compass-warning);margin-bottom:3px;font-size:11px}.init-replace-confirmation small{color:var(--muted-foreground);font-size:10px;line-height:1.45}.init-progress-shell{flex-direction:column;display:flex}.init-progress-header{align-items:center}.init-running-badge{border:1px solid var(--compass-focus);align-items:center;gap:7px;padding:6px 10px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.init-running-badge{border:1px solid color-mix(in srgb,var(--compass-focus) 46%,var(--compass-line))}}.init-running-badge{background:var(--compass-focus-soft);color:var(--compass-focus);font:600 10px/1 var(--compass-font-mono);text-transform:uppercase;border-radius:999px}.init-running-badge svg,.init-runway li[data-state=active] .init-runway-marker svg{animation:1.2s linear infinite init-spin}.init-progress-card{box-sizing:border-box;border:1px solid var(--compass-line-strong);background:var(--vscode-editorWidget-background,var(--compass-panel));width:min(880px,100%);box-shadow:0 22px 55px var(--vscode-widget-shadow,#0000003d);border-radius:7px;margin:auto;padding:clamp(26px,5vw,48px)}.init-progress-summary{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.init-progress-summary small,.init-progress-summary strong{display:block}.init-progress-summary small{color:var(--compass-faint);font:10px/1.2 var(--compass-font-mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px}.init-progress-summary strong{color:var(--foreground);font-size:18px;font-weight:580}.init-progress-summary>span{color:var(--compass-focus);font:600 24px/1 var(--compass-font-mono)}.init-progress-track{background:var(--foreground);border-radius:99px;height:7px;margin:18px 0 22px;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.init-progress-track{background:color-mix(in srgb,var(--foreground) 10%,transparent)}}.init-progress-track>span{border-radius:inherit;background:var(--workbench-progress);height:100%;box-shadow:0 0 15px var(--compass-focus);display:block}@supports (color:color-mix(in lab,red,red)){.init-progress-track>span{box-shadow:0 0 15px color-mix(in srgb,var(--compass-focus) 50%,transparent)}}.init-progress-track>span{transition:width .18s ease-out}.init-progress-track>span.is-indeterminate{width:28%;animation:1.35s ease-in-out infinite init-indeterminate}.init-current-file{border:1px solid var(--compass-line);background:var(--vscode-input-background,var(--compass-canvas));border-radius:5px;align-items:center;gap:12px;min-width:0;padding:13px 15px;display:flex}.init-current-file>svg{width:16px;color:var(--compass-focus);flex:0 0 16px}.init-current-file span{min-width:0}.init-current-file small,.init-current-file code{display:block}.init-current-file small{color:var(--compass-faint);font:9px/1 var(--compass-font-mono);text-transform:uppercase;margin-bottom:4px}.init-current-file code{color:var(--foreground);font:11px/1.4 var(--compass-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.init-runway{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:30px;display:grid}.init-runway li{align-items:flex-start;gap:10px;display:flex;position:relative}.init-runway li:not(:last-child):after{background:var(--compass-line);content:"";height:1px;position:absolute;top:13px;left:27px;right:8px}.init-runway li[data-state=complete]:after{background:var(--compass-success)}@supports (color:color-mix(in lab,red,red)){.init-runway li[data-state=complete]:after{background:color-mix(in srgb,var(--compass-success) 58%,var(--compass-line))}}.init-runway-marker{z-index:1;border:1px solid var(--compass-line-strong);background:var(--compass-panel);width:26px;height:26px;color:var(--compass-faint);border-radius:50%;flex:0 0 26px;place-items:center;display:grid}.init-runway-marker svg{width:12px;height:12px}.init-runway li[data-state=complete] .init-runway-marker{border-color:var(--compass-success);color:var(--compass-success)}.init-runway li[data-state=active] .init-runway-marker{border-color:var(--compass-focus);color:var(--compass-focus);box-shadow:0 0 0 4px var(--compass-focus-soft)}.init-runway li>span:last-child{min-width:0;padding-right:20px}.init-runway strong,.init-runway small{display:block}.init-runway strong{color:var(--foreground);margin:1px 0 4px;font-size:10px}.init-runway small{color:var(--compass-faint);font-size:9px;line-height:1.35}.init-progress-footer{box-sizing:border-box;justify-content:space-between;align-items:center;gap:20px;width:min(880px,100%);margin:22px auto 0;display:flex}.init-progress-footer p{color:var(--compass-faint);margin:0;font-size:10px}.init-result-shell{place-items:center;display:grid}.init-result-card{box-sizing:border-box;border:1px solid var(--compass-line-strong);background:var(--vscode-editorWidget-background,var(--compass-panel));width:min(580px,100%);box-shadow:0 22px 55px var(--vscode-widget-shadow,#0000003d);text-align:center;border-radius:7px;padding:clamp(32px,6vw,60px)}.init-result-icon{border:1px solid;border-radius:50%;place-items:center;width:54px;height:54px;margin:0 auto 22px;display:grid}.init-result-icon svg{width:24px}.init-result-icon-success{border-color:var(--compass-success);background:var(--compass-success)}@supports (color:color-mix(in lab,red,red)){.init-result-icon-success{background:color-mix(in srgb,var(--compass-success) 10%,transparent)}}.init-result-icon-success{color:var(--compass-success)}.init-result-icon-error{border-color:var(--destructive);background:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.init-result-icon-error{background:color-mix(in srgb,var(--destructive) 10%,transparent)}}.init-result-icon-error{color:var(--destructive)}.init-result-icon-cancelled{border-color:var(--compass-warning);background:var(--compass-warning)}@supports (color:color-mix(in lab,red,red)){.init-result-icon-cancelled{background:color-mix(in srgb,var(--compass-warning) 10%,transparent)}}.init-result-icon-cancelled{color:var(--compass-warning)}.init-result-card .init-eyebrow{text-align:center}.init-result-card>p:not(.init-eyebrow){margin-left:auto;margin-right:auto}.init-result-actions{flex-wrap:wrap;justify-content:center;gap:9px;margin-top:26px;display:flex}@keyframes init-spin{to{transform:rotate(360deg)}}@keyframes init-indeterminate{0%{transform:translate(-120%)}55%{transform:translate(180%)}to{transform:translate(320%)}}@media(max-width:760px){.init-shell{padding:24px 18px}.init-header,.init-progress-header{flex-direction:column;align-items:flex-start}.init-repository-badge{box-sizing:border-box;width:100%}.init-layout{grid-template-columns:1fr}.init-step-nav{border-right:0;border-bottom:1px solid var(--compass-line);padding:16px}.init-step-nav ol{grid-template-columns:repeat(3,1fr);display:grid}.init-step-nav li{padding:0}.init-step-nav li:not(:last-child):after{width:auto;height:1px;inset:22px -8px auto 37px}.init-step-nav button{flex-direction:column;align-items:flex-start}.init-step-nav button strong{font-size:10px}.init-local-note{display:none}.init-scope-grid,.init-fields{grid-template-columns:1fr}.init-scope-browser>header{flex-direction:column;align-items:flex-start;gap:8px;padding-block:10px}.init-scope-body{grid-template-rows:auto auto;grid-template-columns:1fr;height:auto;max-height:none;overflow:visible}.init-scope-tree{border-right:0;border-bottom:1px solid var(--compass-line);height:clamp(210px,42vh,300px);min-height:210px;max-height:none}.init-scope-ledger{max-height:150px}.init-facts{grid-template-columns:1fr}.init-facts>div:not(:last-child){border-right:0;border-bottom:1px solid var(--compass-line)}.init-review-row{grid-template-columns:95px minmax(0,1fr)}.init-runway{grid-template-columns:1fr;gap:13px}.init-runway li:not(:last-child):after{width:1px;height:auto;inset:26px auto -13px 13px}.init-progress-footer{flex-direction:column;align-items:flex-start}}@media(prefers-reduced-motion:reduce){.init-running-badge svg,.init-runway li[data-state=active] .init-runway-marker svg,.init-progress-track>span.is-indeterminate{animation:none}.init-progress-track>span{transition:none}}:root{color-scheme:light dark;--compass-font-sans:var(--vscode-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);--compass-font-mono:var(--vscode-editor-font-family,"SFMono-Regular", Consolas, monospace);--background:var(--vscode-editor-background,#0d131d);--foreground:var(--vscode-editor-foreground,#d7e1ed);--card:var(--vscode-sideBar-background,#121b28);--card-foreground:var(--vscode-sideBar-foreground,#d7e1ed);--popover:var(--vscode-menu-background,#172231);--popover-foreground:var(--vscode-menu-foreground,#d7e1ed);--primary:var(--vscode-button-background,#2f81f7);--primary-foreground:var(--vscode-button-foreground,#fff);--secondary:var(--vscode-button-secondaryBackground,#263448);--secondary-foreground:var(--vscode-button-secondaryForeground,#d7e1ed);--muted:var(--vscode-list-inactiveSelectionBackground,#1d2938);--muted-foreground:var(--vscode-descriptionForeground,#93a4b8);--accent:var(--vscode-list-activeSelectionBackground,#264f78);--accent-foreground:var(--vscode-list-activeSelectionForeground,#fff);--destructive:var(--vscode-errorForeground,#f47067);--border:var(--vscode-panel-border,#2c3a4d);--input:var(--vscode-input-border,#3b4a5e);--ring:var(--vscode-focusBorder,#4f9cf9);--radius:.625rem;--compass-canvas:var(--vscode-editor-background,#08111f);--compass-canvas-deep:var(--compass-canvas)}@supports (color:color-mix(in lab,red,red)){:root{--compass-canvas-deep:color-mix(in srgb, var(--compass-canvas) 82%, #000)}}:root{--compass-panel:var(--vscode-sideBar-background,#101b2d);--compass-panel-raised:var(--vscode-menu-background,#142236)}@supports (color:color-mix(in lab,red,red)){:root{--compass-panel-raised:color-mix(in srgb, var(--vscode-menu-background,#142236) 88%, transparent)}}:root{--compass-line:var(--vscode-panel-border,#9ab2d329);--compass-line-strong:var(--vscode-contrastBorder,#9ab2d34d);--compass-focus:var(--vscode-focusBorder,#76b7ff);--compass-focus-soft:var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){:root{--compass-focus-soft:color-mix(in srgb, var(--compass-focus) 14%, transparent)}}:root{--compass-faint:var(--vscode-disabledForeground,#60728b);--compass-grid:var(--foreground)}@supports (color:color-mix(in lab,red,red)){:root{--compass-grid:color-mix(in srgb, var(--foreground) 16%, transparent)}}:root{--compass-success:var(--vscode-testing-iconPassed,#3fb950);--compass-warning:var(--vscode-editorWarning-foreground,#d29922);--sidebar:var(--vscode-sideBar-background,var(--background));--sidebar-foreground:var(--vscode-sideBar-foreground,var(--foreground));--sidebar-accent:var(--vscode-list-activeSelectionBackground,var(--accent));--sidebar-accent-foreground:var(--vscode-list-activeSelectionForeground,var(--accent-foreground));--sidebar-primary:var(--vscode-focusBorder,var(--ring));--workbench-hover:var(--vscode-list-hoverBackground,var(--foreground))}@supports (color:color-mix(in lab,red,red)){:root{--workbench-hover:var(--vscode-list-hoverBackground,color-mix(in srgb, var(--foreground) 7%, transparent))}}:root{--workbench-hover-foreground:var(--vscode-list-hoverForeground,var(--foreground));--workbench-table-header:var(--vscode-editorStickyScroll-background,var(--background));--workbench-link:var(--vscode-textLink-foreground,var(--ring));--workbench-progress:var(--vscode-progressBar-background,var(--ring))}@media(prefers-color-scheme:light){:root{--background:var(--vscode-editor-background,#f7f9fc);--foreground:var(--vscode-editor-foreground,#172033);--card:var(--vscode-sideBar-background,#fff);--card-foreground:var(--vscode-sideBar-foreground,#172033);--popover:var(--vscode-menu-background,#fff);--popover-foreground:var(--vscode-menu-foreground,#172033);--primary:var(--vscode-button-background,#0969da);--primary-foreground:var(--vscode-button-foreground,#fff);--secondary:var(--vscode-button-secondaryBackground,#e8edf4);--secondary-foreground:var(--vscode-button-secondaryForeground,#172033);--muted:var(--vscode-list-inactiveSelectionBackground,#edf1f6);--muted-foreground:var(--vscode-descriptionForeground,#576579);--accent:var(--vscode-list-activeSelectionBackground,#dbeafe);--accent-foreground:var(--vscode-list-activeSelectionForeground,#172033);--border:var(--vscode-panel-border,#c8d1dc);--input:var(--vscode-input-border,#aeb9c8);--ring:var(--vscode-focusBorder,#0969da);--compass-canvas:var(--vscode-editor-background,#f4f7fb);--compass-canvas-deep:var(--compass-canvas)}@supports (color:color-mix(in lab,red,red)){:root{--compass-canvas-deep:color-mix(in srgb, var(--compass-canvas) 94%, #dbe3ed)}}:root{--compass-panel:var(--vscode-sideBar-background,#fff);--compass-panel-raised:var(--vscode-menu-background,#fff);--compass-line:var(--vscode-panel-border,#ccd6e1);--compass-line-strong:var(--vscode-contrastBorder,#9eacbd);--compass-faint:var(--vscode-disabledForeground,#68778a)}}body.vscode-light,body.vscode-high-contrast-light{color-scheme:light}body.vscode-dark,body.vscode-high-contrast{color-scheme:dark}.visualization-workbench{background:var(--background);grid-template-columns:minmax(220px,268px) minmax(0,1fr);width:100vw;height:100vh;display:grid;overflow:hidden}.visualization-rail{border-right:1px solid var(--compass-line);background:linear-gradient(180deg,var(--compass-focus-soft),transparent 180px),var(--compass-panel);grid-template-rows:auto minmax(0,1fr) auto;min-width:0;display:grid}.visualization-rail>header{border-bottom:1px solid var(--compass-line);align-items:center;gap:11px;padding:18px 16px 16px;display:flex}.visualization-bearing{border:1px solid var(--compass-focus);place-items:center;width:34px;height:34px;display:grid}@supports (color:color-mix(in lab,red,red)){.visualization-bearing{border:1px solid color-mix(in srgb,var(--compass-focus) 48%,var(--border))}}.visualization-bearing{background:var(--compass-focus);border-radius:50%}@supports (color:color-mix(in lab,red,red)){.visualization-bearing{background:color-mix(in srgb,var(--compass-focus) 12%,transparent)}}.visualization-bearing{color:var(--compass-focus);box-shadow:inset 0 0 0 4px var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.visualization-bearing{box-shadow:inset 0 0 0 4px color-mix(in srgb,var(--compass-focus) 5%,transparent)}}.visualization-bearing svg{width:18px;height:18px}.visualization-rail header>span:last-child,.visualization-rail nav button>span{gap:2px;min-width:0;display:grid}.visualization-rail header strong{letter-spacing:.02em;font-size:14px}.visualization-rail header small,.visualization-rail nav small{color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.visualization-rail nav{flex-direction:column;gap:3px;min-height:0;padding:10px 8px;display:flex;overflow:auto}.visualization-rail nav button{min-width:0;color:var(--foreground);text-align:left;background:0 0;border:1px solid #0000;border-radius:5px;grid-template-columns:24px minmax(0,1fr) 8px;align-items:center;gap:9px;padding:9px 8px;display:grid;position:relative}.visualization-rail nav button:hover{background:var(--workbench-hover)}.visualization-rail nav button[aria-current=page]{border-color:var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.visualization-rail nav button[aria-current=page]{border-color:color-mix(in srgb,var(--compass-focus) 28%,var(--border))}}.visualization-rail nav button[aria-current=page]{background:var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.visualization-rail nav button[aria-current=page]{background:color-mix(in srgb,var(--compass-focus) 13%,var(--compass-panel))}}.visualization-rail nav button[aria-current=page]{box-shadow:inset 2px 0 var(--compass-focus)}.visualization-rail nav svg{width:16px;height:16px;color:var(--muted-foreground)}.visualization-rail nav button[aria-current=page] svg{color:var(--compass-focus)}.visualization-rail nav strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.visualization-rail nav i{background:var(--compass-success);border-radius:50%;width:6px;height:6px}.visualization-rail nav i[data-status=summary]{background:var(--compass-warning)}.visualization-rail nav i[data-status=partial]{background:var(--destructive)}.visualization-rail>footer{border-top:1px solid var(--compass-line);color:var(--muted-foreground);justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;font-size:10px;display:flex}.visualization-rail>footer code{color:var(--foreground);font-family:var(--compass-font-mono)}.visualization-main{grid-template-rows:49px minmax(0,1fr);min-width:0;min-height:0;display:grid}.visualization-context{border-bottom:1px solid var(--compass-line);background:var(--background);justify-content:space-between;align-items:center;gap:20px;min-width:0;padding:7px 14px 7px 16px;display:flex}@supports (color:color-mix(in lab,red,red)){.visualization-context{background:color-mix(in srgb,var(--background) 92%,var(--compass-panel))}}.visualization-context>div:first-child{gap:1px;min-width:0;display:grid}.visualization-context>div:first-child span{color:var(--muted-foreground);letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:650}.visualization-context>div:first-child strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.visualization-coverage{color:var(--muted-foreground);align-items:center;gap:10px;font-size:10px;display:flex}.visualization-coverage strong{border:1px solid var(--compass-success);padding:3px 7px}@supports (color:color-mix(in lab,red,red)){.visualization-coverage strong{border:1px solid color-mix(in srgb,var(--compass-success) 36%,var(--border))}}.visualization-coverage strong{color:var(--compass-success);border-radius:999px;font-weight:600}.visualization-coverage[data-status=summary] strong{border-color:var(--compass-warning)}@supports (color:color-mix(in lab,red,red)){.visualization-coverage[data-status=summary] strong{border-color:color-mix(in srgb,var(--compass-warning) 42%,var(--border))}}.visualization-coverage[data-status=summary] strong{color:var(--compass-warning)}.visualization-coverage[data-status=partial] strong{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.visualization-coverage[data-status=partial] strong{border-color:color-mix(in srgb,var(--destructive) 42%,var(--border))}}.visualization-coverage[data-status=partial] strong{color:var(--destructive)}.visualization-stage,.workbench-graph-lens,.workbench-history-view,.workbench-architecture{min-width:0;height:100%;min-height:0}.workbench-architecture{grid-template-rows:39px minmax(0,1fr);display:grid}.workbench-graph-lens{position:relative}.workbench-graph-lens>.compass-workspace,.workbench-history-view .compass-workspace{height:100%;min-height:0}.visualization-stage .call-graph-view{height:100%}.visualization-stage .call-graph-direction{top:58px}.visualization-stage .call-graph-summary{max-height:min(42%,360px);overflow:auto}.workbench-filter-strip{border-bottom:1px solid var(--compass-line);background:var(--compass-panel);align-items:center;gap:7px;min-width:0;padding:5px 9px;display:flex;overflow-x:auto}.workbench-filter-strip label{color:var(--muted-foreground);white-space:nowrap;align-items:center;gap:5px;font-size:9px;display:flex}.workbench-filter-strip select{border:1px solid var(--input);background:var(--background);max-width:160px;height:27px;color:var(--foreground);font:inherit;border-radius:3px;padding:2px 22px 2px 7px;font-size:10px}.workbench-filter-strip>span{color:var(--muted-foreground);white-space:nowrap;margin-left:auto;font-size:9px}.compass-toolbar-leading{flex:none;align-items:center;min-width:0;display:flex}.workbench-filter-trigger{border:1px solid var(--compass-line);background:var(--vscode-dropdown-background,transparent);min-height:30px;color:var(--muted-foreground);cursor:pointer;font:inherit;white-space:nowrap;border-radius:3px;align-items:center;gap:6px;padding:0 8px;display:flex}.workbench-filter-trigger:hover,.workbench-filter-trigger[aria-expanded=true]{background:var(--workbench-hover);color:var(--foreground)}.workbench-filter-trigger:focus-visible{outline:2px solid var(--compass-focus);outline-offset:2px}.workbench-filter-trigger svg{width:15px;height:15px}.workbench-filter-trigger b{background:var(--compass-focus);min-width:17px;height:17px;color:var(--vscode-button-foreground,#fff);font:9px/1 var(--compass-font-mono);border-radius:9px;place-items:center;display:inline-grid}.workbench-filter-trigger small{color:var(--compass-faint);font:9px/1 var(--compass-font-mono)}.workbench-filter-popover{z-index:12;box-sizing:border-box;border:1px solid var(--compass-line-strong);background:var(--vscode-editorWidget-background,var(--compass-panel));width:min(310px,100%);max-height:calc(100vh - 84px);box-shadow:none;border-radius:5px;gap:10px;padding:12px;display:grid;position:absolute;top:calc(100% + 8px);right:6px;overflow-y:auto}.workbench-filter-popover>header{border-bottom:1px solid var(--compass-line);justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:9px;display:flex}.workbench-filter-popover>header span{gap:2px;display:grid}.workbench-filter-popover>header strong{font-size:11px}.workbench-filter-popover>header small,.workbench-filter-popover>footer{color:var(--compass-faint);font-size:10px}.workbench-filter-popover>header button{border:1px solid var(--compass-line);min-height:26px;color:var(--muted-foreground);white-space:nowrap;background:0 0;border-radius:3px;padding:0 7px;font-size:10px}.workbench-filter-popover>header button:disabled{opacity:.45}.workbench-filter-popover>label{color:var(--muted-foreground);grid-template-columns:88px minmax(0,1fr);align-items:center;gap:9px;font-size:10px;display:grid}.workbench-filter-popover select{border:1px solid var(--input);background:var(--vscode-dropdown-background,var(--background));width:100%;min-height:30px;color:var(--vscode-dropdown-foreground,var(--foreground));font:inherit;border-radius:3px;padding:2px 24px 2px 8px}.workbench-filter-popover select:focus-visible,.workbench-filter-popover button:focus-visible{outline:2px solid var(--compass-focus);outline-offset:2px}.workbench-filter-popover>footer{border-top:1px solid var(--compass-line);padding-top:8px}.workbench-graph-empty{z-index:3;box-sizing:border-box;border:1px solid var(--compass-line);background:var(--vscode-editorWidget-background,var(--compass-panel));width:min(360px,100% - 32px);color:var(--muted-foreground);text-align:center;border-radius:5px;justify-items:center;gap:7px;padding:18px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.workbench-graph-empty svg{width:24px;height:24px;color:var(--compass-faint);margin-bottom:3px}.workbench-graph-empty strong{color:var(--foreground);font-size:12px}.workbench-graph-empty span{max-width:290px;font-size:11px;line-height:1.45}.workbench-graph-empty button{border:1px solid var(--compass-line-strong);background:var(--vscode-button-background,var(--compass-focus));min-height:30px;color:var(--vscode-button-foreground,#fff);font:inherit;border-radius:3px;margin-top:5px;padding:0 10px;font-size:10px}.workbench-graph-empty button:hover{background:var(--vscode-button-hoverBackground,var(--compass-focus))}.workbench-graph-empty button:focus-visible{outline:2px solid var(--compass-focus);outline-offset:2px}.workbench-history-view{position:relative}.workbench-history-banner{z-index:24;border:1px solid var(--compass-line-strong);background:var(--compass-panel-raised);border-radius:5px;align-items:center;gap:9px;padding:8px 11px;display:flex;position:absolute;top:10px;left:50%;transform:translate(-50%);box-shadow:0 10px 28px #0000002e}.workbench-history-banner svg{width:17px;color:var(--compass-focus)}.workbench-history-banner span{gap:1px;display:grid}.workbench-history-banner strong{font-size:11px}.workbench-history-banner small{color:var(--muted-foreground);font-size:9px}.workbench-architecture-body{grid-template-columns:minmax(0,1fr) minmax(240px,310px);min-width:0;min-height:0;display:grid}.workbench-architecture-body>.architecture-map-panel{border:0;border-radius:0;min-width:0;height:100%;min-height:0}.workbench-architecture-body>aside{border-left:1px solid var(--compass-line);background:var(--compass-panel);min-width:0;padding:16px;overflow:auto}.workbench-architecture-body>aside>span{color:var(--muted-foreground);letter-spacing:.09em;text-transform:uppercase;font-size:9px;font-weight:650}.workbench-architecture-body>aside h2{margin:5px 0;font-size:15px}.workbench-architecture-body>aside p{color:var(--muted-foreground);font-size:10px;line-height:1.5}.workbench-symbol-list{gap:2px;margin-top:12px;display:grid}.workbench-symbol-list button{min-width:0;color:var(--foreground);text-align:left;background:0 0;border:1px solid #0000;border-radius:3px;gap:2px;padding:7px;display:grid}.workbench-symbol-list button:hover:not(:disabled){border-color:var(--border);background:var(--workbench-hover)}.workbench-symbol-list button:disabled{cursor:default}.workbench-symbol-list strong,.workbench-symbol-list small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.workbench-symbol-list strong{font-size:10px}.workbench-symbol-list small{color:var(--muted-foreground);font-size:9px}.visualization-workbench button:focus-visible,.visualization-workbench select:focus-visible{outline:1px solid var(--compass-focus);outline-offset:1px}@media(max-width:760px){.visualization-workbench{grid-template-columns:58px minmax(0,1fr)}.visualization-rail>header{justify-content:center;padding-inline:8px}.visualization-rail header>span:last-child,.visualization-rail nav button>span,.visualization-rail nav i,.visualization-rail>footer{display:none}.visualization-rail nav button{grid-template-columns:1fr;place-items:center;display:grid}.visualization-coverage>span{display:none}.workbench-architecture-body{grid-template-columns:minmax(0,1fr)}.workbench-architecture-body>aside{display:none}}@media(prefers-reduced-motion:no-preference){.visualization-rail nav button[aria-current=page]{animation:.18s ease-out compass-bearing}}@keyframes compass-bearing{0%{opacity:.7;transform:translate(-3px)}to{opacity:1;transform:translate(0)}}*{border-color:var(--border)}html,body,#root,#compass-viewer-root{min-height:100%;margin:0}body{background:var(--background);color:var(--foreground);font-family:var(--compass-font-sans);overflow:hidden}button:not(:disabled),[role=button]:not(:disabled){cursor:pointer}[data-slot=button],[data-slot=input],[data-slot=tabs-list],[data-slot=tabs-trigger]{border-radius:4px}.workbench-collection-toolbar{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.workbench-search{flex:1;align-items:center;min-width:180px;max-width:540px;display:flex;position:relative}.workbench-search>svg{width:14px;height:14px;color:var(--vscode-input-placeholderForeground,var(--muted-foreground));pointer-events:none;position:absolute;left:8px}.workbench-search input{border:1px solid var(--vscode-input-border,var(--border));background:var(--vscode-input-background,var(--input));width:100%;height:30px;color:var(--vscode-input-foreground,var(--foreground));font:inherit;border-radius:3px;outline:none;padding:4px 30px 4px 29px;font-size:12px}.workbench-search input::placeholder{color:var(--vscode-input-placeholderForeground,var(--muted-foreground))}.workbench-search input:focus-visible{border-color:var(--ring);outline:1px solid var(--ring);outline-offset:-1px}.workbench-search-clear{width:24px;height:24px;color:var(--muted-foreground);background:0 0;border:0;border-radius:3px;place-items:center;display:grid;position:absolute;right:3px}.workbench-search-clear:hover{background:var(--workbench-hover);color:var(--workbench-hover-foreground)}.workbench-search-clear svg{width:13px;height:13px}.workbench-result-count,.workbench-pagination-range{color:var(--muted-foreground);white-space:nowrap;font-size:11px}.workbench-pagination{justify-content:space-between;align-items:center;gap:12px;min-height:36px;padding-top:8px;display:flex}.workbench-pagination-actions{color:var(--muted-foreground);align-items:center;gap:4px;font-size:11px;display:flex}.workbench-pagination-actions button{width:26px;height:26px;color:var(--foreground);background:0 0;border:1px solid #0000;border-radius:3px;place-items:center;display:grid}.workbench-pagination-actions button:hover:not(:disabled){border-color:var(--border);background:var(--workbench-hover)}.workbench-pagination-actions button:disabled{color:var(--vscode-disabledForeground,var(--compass-faint))}.workbench-pagination-actions svg{width:14px;height:14px}.workbench-state{width:min(520px,100% - 32px);min-height:180px;color:var(--muted-foreground);text-align:center;align-content:center;place-items:center;gap:12px;margin:auto;padding:24px;display:grid}.workbench-state>svg{width:28px;height:28px}.workbench-state[data-kind=error]>svg{color:var(--destructive)}.workbench-state h2{color:var(--foreground);margin:0;font-size:14px;font-weight:600}.workbench-state p{margin:5px 0 0;font-size:12px;line-height:1.55}.workbench-button{border:1px solid var(--vscode-button-border,transparent);background:var(--vscode-button-background,var(--primary));min-height:30px;color:var(--vscode-button-foreground,var(--primary-foreground));font:inherit;border-radius:3px;padding:4px 11px;font-size:12px}.workbench-button:hover{background:var(--vscode-button-hoverBackground,var(--primary))}.workbench-button:focus-visible,.workbench-search-clear:focus-visible,.workbench-pagination-actions button:focus-visible{outline:2px solid var(--ring);outline-offset:1px}.workbench-state-spinner{animation:1s linear infinite spin}.compass-load-shell{background:radial-gradient(circle at 50% 43%,var(--compass-focus),transparent 28%),radial-gradient(circle at 68% 62%,var(--compass-success),transparent 24%),linear-gradient(145deg,var(--compass-canvas) 0%,var(--compass-canvas-deep) 100%);place-content:center;min-height:100vh;padding:40px 24px;display:grid;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.compass-load-shell{background:radial-gradient(circle at 50% 43%,color-mix(in srgb,var(--compass-focus) 16%,transparent),transparent 28%),radial-gradient(circle at 68% 62%,color-mix(in srgb,var(--compass-success) 8%,transparent),transparent 24%),linear-gradient(145deg,var(--compass-canvas) 0%,var(--compass-canvas-deep) 100%)}}.compass-load-shell{text-align:center}.compass-load-shell:before{content:"";opacity:.18;background-image:radial-gradient(var(--compass-grid) .65px,transparent .65px);pointer-events:none;background-size:24px 24px;position:absolute;inset:0}.compass-load-visual{place-items:start center;width:92px;height:88px;margin:0 auto;display:grid;position:relative}.compass-load-mark{width:58px;height:58px;color:var(--compass-focus);place-items:center;display:grid;position:relative}.compass-load-logo{filter:drop-shadow(0 10px 22px);width:54px;height:54px}@supports (color:color-mix(in lab,red,red)){.compass-load-logo{filter:drop-shadow(0 10px 22px color-mix(in srgb,currentColor 24%,transparent))}}.compass-load-logo{transform-origin:50%;animation:2.4s ease-in-out infinite compass-load-logo-breathe}.compass-load-visual[data-state=error] .compass-load-mark{border:1px solid var(--destructive);width:48px;height:48px}@supports (color:color-mix(in lab,red,red)){.compass-load-visual[data-state=error] .compass-load-mark{border:1px solid color-mix(in srgb,var(--destructive) 66%,var(--compass-line))}}.compass-load-visual[data-state=error] .compass-load-mark{color:var(--destructive);box-shadow:0 18px 48px var(--destructive);border-radius:12px}@supports (color:color-mix(in lab,red,red)){.compass-load-visual[data-state=error] .compass-load-mark{box-shadow:0 18px 48px color-mix(in srgb,var(--destructive) 20%,transparent)}}.compass-load-visual[data-state=error] .compass-load-mark svg{width:22px;height:22px}.compass-load-copy{z-index:1;width:min(620px,100vw - 48px);position:relative}.compass-load-eyebrow{color:var(--compass-focus);letter-spacing:.16em;text-transform:uppercase;margin-bottom:10px;font-size:11px;font-weight:700;display:block}.compass-load-copy h1{color:var(--foreground);letter-spacing:-.035em;margin:0;font-size:clamp(24px,4vw,38px);font-weight:650;line-height:1.08}.compass-load-steps,.compass-load-error{color:var(--muted-foreground);margin:16px auto 0;font-size:13px;line-height:1.65}.compass-load-steps{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.compass-load-steps b{color:var(--compass-focus);font-weight:700}.compass-load-error{overflow-wrap:anywhere;max-width:560px}.compass-load-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px;display:flex}.compass-load-action{border:1px solid var(--compass-line-strong);background:var(--compass-panel-raised);min-height:38px;color:var(--foreground);font:inherit;border-radius:9px;outline:none;align-items:center;gap:8px;padding:0 14px;font-size:12px;display:inline-flex}.compass-load-action:hover{border-color:var(--compass-focus);background:var(--compass-focus-soft)}.compass-load-action-primary{border-color:var(--vscode-button-background,var(--compass-focus));background:var(--vscode-button-background,var(--compass-focus));color:var(--vscode-button-foreground,#fff)}.compass-load-action-primary:hover{background:var(--vscode-button-hoverBackground,var(--compass-focus))}.compass-load-action svg{width:15px;height:15px}@keyframes compass-load-logo-breathe{50%{opacity:.72;transform:scale(.94)}}.compass-load-shell{background:var(--vscode-editor-background,var(--background));grid-template-rows:auto auto;gap:18px}.compass-load-shell:before{display:none}.compass-load-visual{width:92px;height:88px;margin:0 auto}.compass-load-mark{color:var(--vscode-symbolIcon-classForeground,var(--vscode-progressBar-background,var(--compass-focus)));box-shadow:none}.compass-load-logo{filter:drop-shadow(0 9px 20px var(--vscode-progressBar-background,var(--workbench-progress)))}@supports (color:color-mix(in lab,red,red)){.compass-load-logo{filter:drop-shadow(0 9px 20px color-mix(in srgb,var(--vscode-progressBar-background,var(--workbench-progress)) 28%,transparent))}}.compass-load-progress{background:var(--vscode-progressBar-background,var(--workbench-progress));width:96px;height:2px;position:absolute;bottom:0;left:50%;overflow:hidden;transform:translate(-50%)}@supports (color:color-mix(in lab,red,red)){.compass-load-progress{background:var(--vscode-progressBar-background,color-mix(in srgb, var(--workbench-progress) 28%, transparent))}}.compass-load-progress i{background:var(--workbench-progress);width:45%;height:100%;animation:1.4s ease-in-out infinite compass-native-progress;display:block}@keyframes compass-native-progress{0%{transform:translate(-110%)}to{transform:translate(330%)}}.compass-load-copy{width:min(520px,100vw - 40px)}.compass-load-eyebrow{color:var(--muted-foreground);letter-spacing:.08em;margin-bottom:7px;font-size:10px}.compass-load-copy h1{letter-spacing:-.015em;font-size:clamp(19px,3vw,25px);font-weight:600;line-height:1.2}.compass-load-steps,.compass-load-error{margin-top:10px;font-size:12px}.compass-load-steps{gap:8px 14px}.compass-load-step{color:var(--vscode-disabledForeground,var(--muted-foreground));align-items:center;gap:6px;display:inline-flex}.compass-load-step>i{border:1px solid;border-radius:50%;width:6px;height:6px;display:block}.compass-load-step[data-state=complete]{color:var(--vscode-descriptionForeground,var(--muted-foreground))}.compass-load-step[data-state=complete]>i{border-color:var(--vscode-progressBar-background,var(--workbench-progress));background:var(--vscode-progressBar-background,var(--workbench-progress))}.compass-load-step[data-state=active]{color:var(--vscode-editor-foreground,var(--foreground))}.compass-load-step[data-state=active]>i{border-color:var(--vscode-progressBar-background,var(--workbench-progress));background:var(--vscode-progressBar-background,var(--workbench-progress));box-shadow:0 0 7px var(--vscode-progressBar-background,var(--workbench-progress))}@supports (color:color-mix(in lab,red,red)){.compass-load-step[data-state=active]>i{box-shadow:0 0 7px color-mix(in srgb,var(--vscode-progressBar-background,var(--workbench-progress)) 46%,transparent)}}.compass-load-action{background:var(--vscode-button-secondaryBackground,var(--secondary));min-height:30px;color:var(--vscode-button-secondaryForeground,var(--secondary-foreground));border-radius:3px;padding:0 11px}.compass-load-action-primary{background:var(--vscode-button-background,var(--primary));color:var(--vscode-button-foreground,var(--primary-foreground))}.compass-load-shell[data-variant=architecture]{text-align:left;grid-template-rows:auto auto;grid-template-columns:minmax(220px,390px) minmax(280px,560px);column-gap:clamp(24px,6vw,72px)}.compass-load-shell[data-variant=architecture] .compass-load-visual{grid-column:1;margin:0}.compass-load-shell[data-variant=architecture] .compass-load-copy{grid-column:1;width:auto}.compass-load-shell[data-variant=architecture] .compass-load-steps{justify-content:flex-start}.architecture-load-skeleton{border:1px solid var(--vscode-panel-border,var(--border));background:var(--vscode-editor-background,var(--background));border-radius:4px;grid-area:1/2/span 2;grid-template-rows:54px 1fr;grid-template-columns:92px 1fr;width:min(46vw,560px);height:min(46vh,360px);display:grid;overflow:hidden}.architecture-load-skeleton span{background-image:linear-gradient(90deg,transparent,var(--foreground),transparent)}@supports (color:color-mix(in lab,red,red)){.architecture-load-skeleton span{background-image:linear-gradient(90deg,transparent,color-mix(in srgb,var(--foreground) 7%,transparent),transparent)}}.architecture-load-skeleton span{background-size:220% 100%;animation:1.8s ease-in-out infinite compass-skeleton}.architecture-load-rail{border-right:1px solid var(--border);background-color:var(--vscode-sideBar-background,var(--sidebar));grid-row:1/span 2}.architecture-load-flow{border-bottom:1px solid var(--border)}.architecture-load-content{border:1px solid var(--border);border-radius:3px;margin:14px}@keyframes compass-skeleton{to{background-position:-220% 0}}.compass-workspace{isolation:isolate;background:var(--compass-canvas);height:100vh;min-height:30rem;position:relative;overflow:hidden}.compass-workspace-content{grid-template-columns:minmax(0,1fr) 8px var(--compass-inspector-width,340px);width:100%;height:100%;min-height:inherit;display:grid;overflow:hidden}.compass-workspace-content[data-inspector-collapsed=true]{grid-template-columns:minmax(0,1fr) 48px}.compass-graph-transition{z-index:30;background:var(--vscode-editor-background,var(--background));color:var(--foreground);text-align:center;grid-template-rows:auto auto;place-content:center;gap:18px;padding:40px 24px;display:grid;position:absolute;inset:0;overflow:hidden}.compass-graph-transition .compass-load-copy{width:min(520px,100vw - 40px)}.compass-graph-transition-description{max-width:470px;color:var(--vscode-descriptionForeground,var(--muted-foreground));margin:10px auto 0;font-size:12px;line-height:1.6}.compass-graph-transition .compass-load-action:focus-visible{outline:2px solid var(--vscode-focusBorder,var(--ring));outline-offset:2px}.compass-graph-stage{background:radial-gradient(circle at 45% 42%,var(--compass-focus),transparent 34%),radial-gradient(circle at 76% 75%,var(--compass-success),transparent 28%),linear-gradient(145deg,var(--compass-canvas) 0%,var(--compass-canvas-deep) 100%);min-width:0;min-height:0;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.compass-graph-stage{background:radial-gradient(circle at 45% 42%,color-mix(in srgb,var(--compass-focus) 21%,transparent),transparent 34%),radial-gradient(circle at 76% 75%,color-mix(in srgb,var(--compass-success) 10%,transparent),transparent 28%),linear-gradient(145deg,var(--compass-canvas) 0%,var(--compass-canvas-deep) 100%)}}.compass-graph-stage:after{content:"";pointer-events:none;opacity:.16;background-image:radial-gradient(var(--compass-grid) .55px,transparent .55px);background-size:22px 22px;position:absolute;inset:0}.compass-graph-stage[data-comparison=true]{background:var(--vscode-editor-background,var(--compass-canvas))}.compass-graph-stage[data-comparison=true]:after{opacity:.09}.compass-canvas{z-index:1;min-width:0;min-height:0;position:absolute;inset:0}.compass-glass-panel{background:var(--vscode-editorWidget-background,var(--compass-panel));border:1px solid var(--compass-line);box-shadow:none;-webkit-backdrop-filter:none}.compass-graph-toolbar{z-index:4;border-radius:4px;justify-content:space-between;align-items:center;gap:10px;min-height:42px;padding:5px 6px 5px 10px;display:flex;position:absolute;top:12px;left:12px;right:12px}.compass-viewer-status{min-width:0;color:var(--muted-foreground);letter-spacing:.015em;align-items:center;gap:10px;font-size:12px;display:flex}.compass-viewer-status-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.compass-viewer-status-dot{background:var(--compass-focus);width:8px;height:8px;box-shadow:0 0 0 4px var(--compass-focus);border-radius:50%;flex:none}@supports (color:color-mix(in lab,red,red)){.compass-viewer-status-dot{box-shadow:0 0 0 4px color-mix(in srgb,var(--compass-focus) 12%,transparent)}}.compass-viewer-status[data-state=running] .compass-viewer-status-dot{animation:1.6s ease-in-out infinite compass-status-pulse}@keyframes compass-status-pulse{50%{box-shadow:0 0 0 8px color-mix(in srgb,var(--compass-focus) 0%,transparent)}}.compass-toolbar-actions{scrollbar-width:none;align-items:center;gap:6px;min-width:0;display:flex;overflow-x:auto}.compass-physics-button{border-color:var(--compass-line);background:var(--vscode-dropdown-background,transparent)}.compass-physics-button[aria-pressed=true]{border-color:var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.compass-physics-button[aria-pressed=true]{border-color:color-mix(in srgb,var(--compass-focus) 55%,var(--compass-line))}}.compass-physics-button[aria-pressed=true]{background:var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.compass-physics-button[aria-pressed=true]{background:color-mix(in srgb,var(--compass-focus) 13%,transparent)}}.compass-physics-button[aria-pressed=true]{color:var(--foreground)}.compass-toolbar-actions::-webkit-scrollbar{display:none}.compass-toolbar-separator{background:var(--compass-line);flex:none;width:1px;height:18px}.compass-zoom-controls{border:1px solid var(--compass-line);background:var(--vscode-dropdown-background,transparent);border-radius:3px;flex:none;min-height:30px;display:inline-flex;overflow:hidden}.compass-zoom-controls .compass-tool-button{border:0;border-radius:0;min-height:28px}.compass-zoom-controls .compass-tool-button+.compass-tool-button{border-left:1px solid var(--compass-line)}.compass-layout-picker{border:1px solid var(--compass-line);min-height:30px;color:var(--muted-foreground);background:var(--vscode-dropdown-background,transparent);border-radius:3px;align-items:center;gap:6px;padding-left:8px;display:inline-flex}.compass-layout-picker svg{flex:none;width:15px;height:15px}.compass-layout-picker select{min-height:28px;color:var(--vscode-dropdown-foreground,var(--foreground));font:inherit;background:0 0;border:0;outline:0;padding:0 24px 0 0}.compass-layout-picker:focus-within{outline:1px solid var(--vscode-focusBorder,var(--compass-focus));outline-offset:1px}.compass-tool-button:disabled{cursor:default;opacity:.55}.compass-tool-button{min-height:30px;color:var(--muted-foreground);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:3px;align-items:center;gap:7px;padding:0 8px;transition:none;display:inline-flex}.compass-tool-button svg{width:15px;height:15px}.compass-tool-icon-button{flex:0 0 30px;justify-content:center;width:30px;padding:0}.compass-zoom-reset{min-width:42px;color:var(--compass-faint);font:9px/1 var(--compass-font-mono);letter-spacing:.02em;justify-content:center;padding:0 7px}.compass-tool-button:hover,.compass-tool-button[aria-pressed=true]{border-color:var(--compass-line);background:var(--workbench-hover);color:var(--foreground)}.compass-tool-button:focus-visible,.compass-explore-panel button:focus-visible,.compass-explore-panel select:focus-visible,.compass-minimap button:focus-visible,.compass-change-legend button:focus-visible,.compass-search-field input:focus-visible,.compass-search-item:focus-visible,.compass-inspector-action:focus-visible,.compass-source-card:focus-visible,.compass-inspector-disclosure:focus-visible,.compass-inspector-resizer:focus-visible,.compass-load-action:focus-visible,.compass-neighbor-link:focus-visible,.compass-community-item:focus-within{outline:2px solid var(--compass-focus);outline-offset:2px}.compass-explore-panel{z-index:8;width:min(330px,100vw - 24px);max-height:calc(100vh - 84px);color:var(--foreground);border-radius:5px;gap:10px;padding:12px;display:grid;position:absolute;top:calc(100% + 7px);right:0;overflow-y:auto}.compass-explore-heading{border-bottom:1px solid var(--compass-line);justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:10px;display:flex}.compass-explore-heading>div{gap:3px;display:grid}.compass-explore-heading strong,.compass-explore-toggle strong,.compass-shortcut-title strong{letter-spacing:.02em;font-size:11px;font-weight:600}.compass-explore-heading span,.compass-explore-toggle small{color:var(--compass-faint);font-size:10px;line-height:1.35}.compass-selection-prompt{border:1px solid var(--compass-focus);grid-template-columns:18px minmax(0,1fr);align-items:start;gap:9px;padding:9px;display:grid}@supports (color:color-mix(in lab,red,red)){.compass-selection-prompt{border:1px solid color-mix(in srgb,var(--compass-focus) 28%,var(--compass-line))}}.compass-selection-prompt{background:var(--compass-focus);border-radius:4px}@supports (color:color-mix(in lab,red,red)){.compass-selection-prompt{background:color-mix(in srgb,var(--compass-focus) 7%,transparent)}}.compass-selection-prompt{color:var(--muted-foreground)}.compass-selection-prompt>svg{width:16px;height:16px;color:var(--compass-focus)}.compass-selection-prompt>span{gap:3px;display:grid}.compass-selection-prompt strong{color:var(--foreground);font-size:10px}.compass-selection-prompt small{color:var(--compass-faint);font-size:10px;line-height:1.4}.compass-explore-panel kbd{border:1px solid var(--compass-line);border-bottom-color:var(--compass-line);justify-content:center;align-items:center;min-width:20px;min-height:19px;padding:0 5px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.compass-explore-panel kbd{border-bottom-color:color-mix(in srgb,var(--compass-line) 72%,var(--foreground))}}.compass-explore-panel kbd{background:var(--vscode-keybindingLabel-background,var(--workbench-hover));color:var(--vscode-keybindingLabel-foreground,var(--foreground));font:9px/1 var(--compass-font-mono);border-radius:3px}.compass-explore-toggle{width:100%;color:var(--muted-foreground);text-align:left;background:0 0;border:1px solid #0000;border-radius:4px;grid-template-columns:18px minmax(0,1fr) 28px;align-items:center;gap:9px;padding:7px 8px;display:grid}.compass-explore-toggle:hover,.compass-explore-toggle[aria-pressed=true]{border-color:var(--compass-line);background:var(--workbench-hover);color:var(--foreground)}.compass-explore-toggle:disabled{cursor:default;opacity:.5}.compass-explore-toggle>svg{width:16px;height:16px}.compass-explore-toggle>span{gap:2px;min-width:0;display:grid}.compass-explore-toggle>i{border:1px solid var(--compass-line);background:var(--compass-canvas-deep);border-radius:8px;width:26px;height:14px;position:relative}.compass-explore-toggle>i:after{content:"";background:var(--compass-faint);border-radius:50%;width:8px;height:8px;position:absolute;top:2px;left:2px}.compass-explore-toggle[aria-pressed=true]>i{border-color:var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.compass-explore-toggle[aria-pressed=true]>i{border-color:color-mix(in srgb,var(--compass-focus) 65%,var(--compass-line))}}.compass-explore-toggle[aria-pressed=true]>i{background:var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.compass-explore-toggle[aria-pressed=true]>i{background:color-mix(in srgb,var(--compass-focus) 24%,var(--compass-canvas-deep))}}.compass-explore-toggle[aria-pressed=true]>i:after{background:var(--compass-focus);left:14px}.compass-explore-field{border:0;gap:6px;min-width:0;margin:0;padding:0;display:grid}.compass-explore-field:disabled{opacity:.5}.compass-explore-field legend,.compass-explore-select>span{color:var(--compass-faint);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-size:9px;font-weight:600}.compass-segmented-control{border:1px solid var(--compass-line);border-radius:4px;grid-auto-columns:1fr;grid-auto-flow:column;display:grid;overflow:hidden}.compass-segmented-control button{min-height:28px;color:var(--compass-faint);font:10px/1 var(--compass-font-mono);background:0 0;border:0}.compass-segmented-control button+button{border-left:1px solid var(--compass-line)}.compass-segmented-control button:hover,.compass-segmented-control button[aria-pressed=true]{background:var(--workbench-hover);color:var(--foreground)}.compass-segmented-control button[aria-pressed=true]{box-shadow:inset 0 -2px var(--compass-focus)}.compass-explore-select{display:grid}.compass-explore-select select{border:1px solid var(--compass-line);background:var(--vscode-dropdown-background,var(--compass-canvas-deep));min-height:30px;color:var(--vscode-dropdown-foreground,var(--foreground));border-radius:4px;padding:0 28px 0 8px;font-size:10px}.compass-shortcut-guide{border-top:1px solid var(--compass-line);gap:9px;padding-top:10px;display:grid}.compass-shortcut-title{color:var(--muted-foreground);align-items:center;gap:7px;display:flex}.compass-shortcut-title svg{width:15px;height:15px}.compass-shortcut-guide dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 14px;margin:0;display:grid}.compass-shortcut-guide dl>div{grid-template-columns:52px minmax(0,1fr);align-items:center;gap:5px;display:grid}.compass-shortcut-guide dt,.compass-shortcut-guide dd{margin:0}.compass-shortcut-guide dt{gap:3px;display:flex}.compass-shortcut-guide dd{color:var(--compass-faint);font-size:9px}.compass-minimap{z-index:3;border-radius:4px;width:178px;position:absolute;bottom:12px;right:12px;overflow:hidden}.compass-minimap header{border-bottom:1px solid var(--compass-line);min-height:26px;color:var(--muted-foreground);font:9px/1 var(--compass-font-mono);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:0 8px;display:flex}.compass-minimap header small{color:var(--compass-faint);font:inherit;letter-spacing:0;text-transform:none}.compass-minimap button{background:var(--compass-canvas);border:0;width:100%;height:108px;padding:0;display:block}@supports (color:color-mix(in lab,red,red)){.compass-minimap button{background:color-mix(in srgb,var(--compass-canvas) 90%,transparent)}}.compass-minimap button{color:var(--compass-faint)}.compass-minimap svg{width:100%;height:100%;display:block}.compass-minimap-edges line{stroke:var(--compass-line);stroke-width:.65px;vector-effect:non-scaling-stroke}.compass-minimap-nodes circle[data-focused=true]{stroke:var(--foreground);stroke-width:1.25px;vector-effect:non-scaling-stroke}.compass-minimap-viewport{fill:var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.compass-minimap-viewport{fill:color-mix(in srgb,var(--compass-focus) 8%,transparent)}}.compass-minimap-viewport{stroke:var(--compass-focus);stroke-width:1px;vector-effect:non-scaling-stroke}.compass-changed-symbols button:focus-visible,.compass-evidence-source-actions button:focus-visible,.compass-relationship-detail>button:focus-visible{outline:2px solid var(--compass-focus);outline-offset:2px}.compass-change-legend{z-index:4;border:1px solid var(--compass-line);background:var(--vscode-editorWidget-background,var(--compass-panel));border-radius:4px;flex-wrap:wrap;gap:5px;max-width:calc(100% - 24px);padding:5px;display:flex;position:absolute;top:64px;left:12px}.compass-change-legend button{min-height:27px;color:var(--muted-foreground);background:0 0;border:1px solid #0000;border-radius:3px;align-items:center;gap:6px;padding:3px 7px;font-size:10px;display:inline-flex}.compass-change-legend button:hover,.compass-change-legend button[aria-pressed=true]{border-color:var(--compass-line);background:var(--workbench-hover);color:var(--foreground)}.compass-change-legend button[aria-pressed=false]{opacity:.42}.compass-change-legend button>span{border:1px solid var(--vscode-descriptionForeground,#6e7781);background:var(--vscode-descriptionForeground,#6e7781);border-radius:50%;width:8px;height:8px}@supports (color:color-mix(in lab,red,red)){.compass-change-legend button>span{background:color-mix(in srgb,var(--vscode-descriptionForeground,#6e7781) 18%,var(--vscode-editor-background,var(--background)))}}.compass-change-legend button[data-change=added]>span{border-color:var(--vscode-gitDecoration-addedResourceForeground,#2ea043);background:var(--vscode-gitDecoration-addedResourceForeground,#2ea043)}@supports (color:color-mix(in lab,red,red)){.compass-change-legend button[data-change=added]>span{background:color-mix(in srgb,var(--vscode-gitDecoration-addedResourceForeground,#2ea043) 22%,var(--vscode-editor-background,var(--background)))}}.compass-change-legend button[data-change=removed]>span{border-color:var(--vscode-gitDecoration-deletedResourceForeground,#f85149);background:var(--vscode-gitDecoration-deletedResourceForeground,#f85149)}@supports (color:color-mix(in lab,red,red)){.compass-change-legend button[data-change=removed]>span{background:color-mix(in srgb,var(--vscode-gitDecoration-deletedResourceForeground,#f85149) 22%,var(--vscode-editor-background,var(--background)))}}.compass-change-legend button[data-change=changed]>span{border-color:var(--vscode-gitDecoration-modifiedResourceForeground,#d29922);background:var(--vscode-gitDecoration-modifiedResourceForeground,#d29922)}@supports (color:color-mix(in lab,red,red)){.compass-change-legend button[data-change=changed]>span{background:color-mix(in srgb,var(--vscode-gitDecoration-modifiedResourceForeground,#d29922) 22%,var(--vscode-editor-background,var(--background)))}}.compass-change-legend button small{color:var(--compass-faint);font:9px/1 var(--compass-font-mono)}.compass-inspector-resizer{z-index:6;background:var(--compass-panel);cursor:col-resize;touch-action:none;border:0;outline:none;min-width:8px;position:relative}.compass-inspector-resizer span{background:var(--compass-line-strong);border-radius:999px;width:2px;height:42px;transition:height .16s,background .16s;position:absolute;top:50%;left:3px;transform:translateY(-50%)}.compass-inspector-resizer:hover span,.compass-inspector-resizer:focus-visible span{background:var(--compass-focus);height:68px}.compass-graph-inspector{z-index:5;border-left:1px solid var(--compass-line);background:var(--vscode-sideBar-background,var(--compass-panel));min-width:0;box-shadow:none;flex-direction:column;display:flex;position:relative;overflow:hidden}.compass-graph-inspector-collapsed{border-left:1px solid var(--compass-line);box-shadow:none;align-items:center}.compass-inspector-header{border-bottom:1px solid var(--compass-line);align-items:center;gap:11px;min-height:52px;padding:8px 12px;display:flex}.compass-inspector-title{flex:1;min-width:0}.compass-inspector-header strong,.compass-inspector-header small{display:block}.compass-inspector-header strong{letter-spacing:.01em;font-size:14px}.compass-inspector-header small{color:var(--compass-faint);margin-top:2px;font-size:11px}.compass-product-mark{background:linear-gradient(145deg,var(--vscode-button-foreground,#eff8ff),var(--compass-focus));border-radius:4px;flex:none;place-items:center;width:32px;height:32px;display:grid}@supports (color:color-mix(in lab,red,red)){.compass-product-mark{background:linear-gradient(145deg,var(--vscode-button-foreground,#eff8ff),color-mix(in srgb,var(--compass-focus) 64%,#fff))}}.compass-product-mark{color:var(--vscode-button-background,#09182c);box-shadow:inset 0 0 0 1px #ffffff7a}.compass-product-mark svg{width:19px;height:19px}.compass-inspector-disclosure{width:32px;height:32px;color:var(--muted-foreground);background:0 0;border:1px solid #0000;border-radius:3px;outline:none;flex:none;place-items:center;transition:none;display:grid}.compass-inspector-disclosure:hover{border-color:var(--compass-line);background:var(--workbench-hover);color:var(--foreground)}.compass-inspector-disclosure svg{width:17px;height:17px}.compass-inspector-expand{margin-top:18px}.compass-inspector-rail-label{color:var(--compass-faint);letter-spacing:.12em;text-transform:uppercase;writing-mode:vertical-rl;margin-top:16px;font-size:10px;font-weight:650}.compass-inspector-search{border-bottom:1px solid var(--compass-line);padding:10px 12px;position:relative}.compass-search-field{position:relative}.compass-search-field svg{width:15px;height:15px;color:var(--compass-faint);pointer-events:none;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.compass-search-field input{border:1px solid var(--compass-line);background:var(--vscode-input-background,var(--background));width:100%;min-height:30px;color:var(--vscode-input-foreground,var(--foreground));border-radius:3px;outline:none;padding:0 10px 0 34px}.compass-search-field input::placeholder{color:var(--vscode-input-placeholderForeground,var(--compass-faint))}.compass-search-results{z-index:8;border:1px solid var(--compass-line-strong);background:var(--vscode-menu-background,var(--compass-panel));max-height:230px;box-shadow:0 4px 12px var(--vscode-widget-shadow,#00000047);border-radius:3px;padding:6px;position:absolute;top:46px;left:12px;right:12px;overflow-y:auto}.compass-search-item{width:100%;min-height:42px;color:var(--muted-foreground);text-align:left;background:0 0;border:0;border-left:3px solid #0000;border-radius:2px;padding:7px 10px;display:block;overflow:hidden}.compass-search-item strong,.compass-search-item span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.compass-search-item strong{color:var(--foreground);font-size:12px}.compass-search-item span{color:var(--compass-faint);font:10px/1.4 var(--compass-font-mono)}.compass-search-item:hover,.compass-search-item[aria-selected=true]{background:var(--vscode-list-activeSelectionBackground,var(--compass-focus-soft));color:var(--vscode-list-activeSelectionForeground,var(--foreground))}.compass-info-panel{border-bottom:1px solid var(--compass-line);max-height:48%;padding:18px 16px;overflow-y:auto}.compass-changed-symbols{border-bottom:1px solid var(--compass-line);max-height:30%;padding:14px 16px;overflow-y:auto}.compass-changed-symbol-list{gap:4px;display:grid}.compass-changed-symbol-list>button{width:100%;color:var(--foreground);text-align:left;background:0 0;border:1px solid #0000;border-radius:3px;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;padding:7px 8px;display:grid}.compass-changed-symbol-list>button:hover,.compass-changed-symbol-list>button[aria-pressed=true]{border-color:var(--compass-line);background:var(--vscode-list-activeSelectionBackground,var(--compass-focus-soft))}.compass-changed-symbol-list strong,.compass-changed-symbol-list small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.compass-changed-symbol-list small{color:var(--compass-faint);font:9px/1.35 var(--compass-font-mono);grid-column:2}.compass-changed-symbol-status{color:var(--vscode-descriptionForeground);letter-spacing:.06em;text-transform:uppercase;grid-row:1/span 2;align-self:center;font-size:8px;font-weight:700}.compass-changed-symbol-list>button[data-change=added] .compass-changed-symbol-status{color:var(--vscode-gitDecoration-addedResourceForeground,#2ea043)}.compass-changed-symbol-list>button[data-change=removed] .compass-changed-symbol-status{color:var(--vscode-gitDecoration-deletedResourceForeground,#f85149)}.compass-changed-symbol-list>button[data-change=changed] .compass-changed-symbol-status{color:var(--vscode-gitDecoration-modifiedResourceForeground,#d29922)}.compass-changed-symbol-expand{border:1px solid var(--compass-line);width:100%;color:var(--vscode-textLink-foreground,var(--compass-focus));background:0 0;border-radius:3px;margin-top:8px;padding:6px 8px}.compass-record-evidence,.compass-relationship-evidence,.compass-code-evidence{margin-top:16px}.compass-code-query-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:10px;display:grid}.compass-code-query-actions button{border:1px solid var(--compass-line);color:var(--vscode-textLink-foreground,var(--compass-focus));background:0 0;border-radius:3px;padding:5px 4px;font-size:9px}.compass-code-query-actions button:focus-visible{outline:2px solid var(--vscode-focusBorder,var(--compass-focus));outline-offset:1px}.compass-code-evidence-ledger{gap:6px;display:grid}.compass-code-evidence-entry{border:1px solid var(--compass-line);background:var(--vscode-editorWidget-background,var(--background));border-left-width:3px;border-radius:3px;grid-template-columns:24px minmax(0,1fr);gap:8px;padding:8px;display:grid}.compass-code-evidence-entry[data-status=exact],.compass-code-evidence-entry[data-status=config],.compass-code-evidence-entry[data-status=convention]{border-left-color:var(--vscode-testing-iconPassed,#2ea043)}.compass-code-evidence-entry[data-status=heuristic]{border-left-color:var(--vscode-charts-blue,#58a6ff)}.compass-code-evidence-entry[data-status=ambiguous],.compass-code-evidence-entry[data-status=unresolved]{border-left-color:var(--vscode-editorWarning-foreground,#d29922)}.compass-code-evidence-icon{background:var(--vscode-badge-background,var(--muted));width:24px;height:24px;color:var(--vscode-badge-foreground,var(--foreground));border-radius:50%;place-items:center;display:grid}.compass-code-evidence-icon svg{width:13px;height:13px}.compass-code-evidence-copy{min-width:0}.compass-code-evidence-status{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.compass-code-evidence-status strong{color:var(--foreground);font-size:10px}.compass-code-evidence-status span{color:var(--compass-faint);text-transform:uppercase;font-size:8px}.compass-code-evidence-copy dl{gap:3px;margin:7px 0 0;display:grid}.compass-code-evidence-copy dl>div{grid-template-columns:62px minmax(0,1fr);gap:6px;display:grid}.compass-code-evidence-copy dt{color:var(--compass-faint);text-transform:uppercase;font-size:8px}.compass-code-evidence-copy dd{overflow-wrap:anywhere;min-width:0;color:var(--foreground);font:9px/1.35 var(--compass-font-mono);margin:0}.compass-code-evidence-source{max-width:100%;color:var(--vscode-textLink-foreground,var(--compass-focus));font:9px/1.35 var(--compass-font-mono);overflow-wrap:anywhere;text-align:left;background:0 0;border:0;align-items:center;gap:5px;margin-top:7px;padding:0;display:inline-flex}button.compass-code-evidence-source{cursor:pointer}button.compass-code-evidence-source:focus-visible{outline:2px solid var(--vscode-focusBorder,var(--compass-focus));outline-offset:2px;border-radius:2px}.compass-code-evidence-source svg{width:11px;min-width:11px;height:11px}.compass-code-candidates{border-top:1px solid var(--compass-line);margin-top:8px;padding-top:7px}.compass-code-candidates>span{color:var(--compass-faint);text-transform:uppercase;font-size:8px}.compass-code-candidates ul{gap:5px;margin:6px 0 0;padding:0;list-style:none;display:grid}.compass-code-candidates li{grid-template-columns:minmax(0,1fr) auto;gap:1px 6px;display:grid}.compass-code-candidates code{overflow-wrap:anywhere;color:var(--foreground);font:9px/1.35 var(--compass-font-mono)}.compass-code-candidates li>span{color:var(--muted-foreground);grid-column:1/-1;font-size:9px}.compass-code-candidates small{color:var(--compass-faint);text-transform:uppercase;grid-area:1/2;font-size:8px}.compass-code-diagnostic{border:1px solid var(--vscode-editorWarning-foreground,#d29922);color:var(--muted-foreground);border-radius:3px;gap:7px;margin:0 0 6px;padding:7px 8px;font-size:9px;display:flex}.compass-code-diagnostic[data-severity=info]{border-color:var(--vscode-charts-blue,#58a6ff)}.compass-code-diagnostic svg{width:12px;min-width:12px;height:12px}.compass-code-diagnostic strong{color:var(--foreground);text-transform:capitalize}.compass-evidence-heading{justify-content:space-between;align-items:baseline;margin-bottom:7px;display:flex}.compass-evidence-heading h3{color:var(--foreground);font-size:11px}.compass-evidence-heading span{color:var(--compass-faint);font-size:9px}.compass-field-table-wrap{border:1px solid var(--compass-line);border-radius:3px;overflow-x:auto}.compass-field-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:360px}.compass-field-table th,.compass-field-table td{border-right:1px solid var(--compass-line);border-bottom:1px solid var(--compass-line);vertical-align:top;text-align:left;padding:6px 7px}.compass-field-table tr:last-child>*{border-bottom:0}.compass-field-table tr>:last-child{border-right:0}.compass-field-table thead th{background:var(--vscode-editorWidget-background,var(--background));color:var(--compass-faint);text-transform:uppercase;font-size:9px}.compass-field-table tbody th{width:27%;color:var(--foreground);font:9px/1.4 var(--compass-font-mono);overflow-wrap:anywhere}.compass-field-table code{color:var(--foreground);font:9px/1.4 var(--compass-font-mono);white-space:pre-wrap;overflow-wrap:anywhere}.compass-value-truncated{color:var(--vscode-editorWarning-foreground,#d29922);margin-top:4px;font-size:8px;display:block}.compass-evidence-source-actions{gap:6px;margin-top:8px;display:flex}.compass-evidence-source-actions button{border:1px solid var(--compass-line);color:var(--vscode-textLink-foreground,var(--compass-focus));background:0 0;border-radius:3px;align-items:center;gap:5px;padding:5px 7px;display:inline-flex}.compass-evidence-source-actions svg{width:12px;height:12px}.compass-relationship-list{gap:5px;margin-top:7px;display:grid}.compass-relationship-list details{border:1px solid var(--compass-line);background:var(--vscode-editorWidget-background,var(--background));border-radius:3px;padding:6px 7px}.compass-relationship-list summary{cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:4px 7px;display:grid}.compass-relationship-target{color:var(--vscode-textLink-foreground,var(--compass-focus));text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.compass-relationship-list summary small{color:var(--foreground);font:9px/1.3 var(--compass-font-mono);grid-column:2}.compass-relationship-list summary i{color:var(--compass-faint);text-transform:uppercase;grid-area:2/3;font-size:8px;font-style:normal}.compass-relationship-detail{margin-top:7px}.compass-relationship-detail>p{color:var(--compass-faint);font:9px/1.4 var(--compass-font-mono);margin:7px 0 0}.compass-relationship-detail>button{border:1px solid var(--compass-line);color:var(--vscode-textLink-foreground,var(--compass-focus));background:0 0;border-radius:3px;margin-top:7px;padding:4px 7px}.compass-bounded-notice{z-index:4;border:1px solid var(--vscode-editorWarning-foreground,#d29922);background:var(--vscode-editorWidget-background,var(--compass-panel));max-width:min(420px,100% - 24px);color:var(--foreground);border-radius:3px;gap:2px;padding:8px 10px;font-size:10px;display:grid;position:absolute;bottom:12px;right:12px}.compass-bounded-notice span{color:var(--muted-foreground)}.compass-hover-hint{border-top:1px solid var(--compass-line);color:var(--vscode-textLink-foreground,var(--compass-focus));align-items:center;gap:7px;margin-top:2px;padding-top:9px;font-size:11px;display:flex!important}.compass-hover-hint svg{flex:none;width:14px;height:14px}.compass-hover-hint strong{color:var(--vscode-editorHoverWidget-foreground,var(--foreground));font-weight:650}.compass-section-heading,.compass-neighbors-heading{justify-content:space-between;align-items:baseline;display:flex}.compass-section-heading{margin-bottom:15px}.compass-section-heading h2,.compass-community-panel h2{letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:700}.compass-section-heading span{color:var(--compass-faint);letter-spacing:.1em;text-transform:uppercase;font-size:9px}.compass-info-content{color:var(--muted-foreground);font-size:12px;line-height:1.45}.compass-node-identity{align-items:center;gap:11px;margin-bottom:15px;display:flex}.compass-node-identity>span:nth-child(2){flex:1;min-width:0}.compass-node-identity strong,.compass-node-identity small{display:block}.compass-node-identity strong{color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.compass-node-identity small{background:var(--compass-success);border-radius:999px;width:max-content;margin-top:3px;padding:3px 7px}@supports (color:color-mix(in lab,red,red)){.compass-node-identity small{background:color-mix(in srgb,var(--compass-success) 20%,transparent)}}.compass-node-identity small{color:var(--compass-success);letter-spacing:.07em;text-transform:uppercase;font-size:9px;font-weight:800}.compass-node-swatch{border-radius:5px;flex:none;width:10px;height:36px}.compass-change-badge{width:max-content;color:var(--vscode-descriptionForeground,#6e7781);letter-spacing:.05em;text-transform:uppercase;border:1px solid;border-radius:999px;align-items:center;gap:5px;padding:3px 7px;font-size:9px;font-weight:700;display:inline-flex}.compass-node-identity .compass-change-badge{flex:none;margin-left:auto}.compass-change-badge[data-change=added]{color:var(--vscode-gitDecoration-addedResourceForeground,#2ea043)}.compass-change-badge[data-change=removed]{color:var(--vscode-gitDecoration-deletedResourceForeground,#f85149)}.compass-change-badge[data-change=changed]{color:var(--vscode-gitDecoration-modifiedResourceForeground,#d29922)}.compass-metadata-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:15px;display:grid}.compass-metadata-grid>div{border:1px solid var(--compass-line);background:var(--vscode-editorWidget-background,var(--background));border-radius:3px;min-width:0;padding:9px 10px}.compass-metadata-grid .compass-metadata-wide{grid-column:1/-1}.compass-metadata-grid dt{color:var(--compass-faint);letter-spacing:.08em;text-transform:uppercase;font-size:9px}.compass-metadata-grid dd{color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;overflow:hidden}.compass-source-metadata[data-interactive=true]{padding:0;transition:border-color .16s,background .16s}.compass-source-metadata[data-interactive=true]:hover,.compass-source-metadata[data-interactive=true]:focus-within{border-color:var(--compass-focus);background:var(--compass-focus-soft)}.compass-source-metadata[data-interactive=true] dd{white-space:normal;margin:0;overflow:visible}.compass-source-card{width:100%;min-height:58px;color:var(--foreground);text-align:left;background:0 0;border:0;border-radius:2px;outline:none;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;display:flex}.compass-source-copy{min-width:0;display:block}.compass-source-eyebrow,.compass-source-path,.compass-source-range{display:block}.compass-source-eyebrow{color:var(--compass-faint);font-family:var(--compass-font-sans);letter-spacing:.08em;text-transform:uppercase;font-size:9px}.compass-source-path{font:11px/1.35 var(--compass-font-mono);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;overflow:hidden}.compass-source-range{color:var(--muted-foreground);font:10px/1.25 var(--compass-font-sans);margin-top:3px}.compass-source-card>svg{width:15px;height:15px;color:var(--compass-focus);flex:none}.compass-source-card:hover>svg{color:var(--foreground)}.compass-signature-block{overflow-wrap:anywhere;border:1px solid var(--compass-line);background:var(--vscode-input-background,var(--background));color:var(--foreground);font:11px/1.45 var(--compass-font-mono);border-radius:3px;margin-bottom:15px;padding:10px;display:block}.compass-inspector-action{border:1px solid var(--compass-line);background:var(--workbench-hover);width:100%;min-height:36px;color:var(--foreground);border-radius:3px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;padding:0 10px;display:flex}.compass-inspector-action span{min-width:0;color:var(--muted-foreground);font:10px/1.2 var(--compass-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.compass-neighbors-heading{margin:3px 0 7px}.compass-neighbors-heading strong{color:var(--compass-faint);font-size:10px}.compass-neighbors-list{max-height:154px;overflow-y:auto}.compass-neighbor-link{width:100%;min-height:36px;color:var(--muted-foreground);text-align:left;background:0 0;border:0;border-radius:3px;align-items:center;gap:9px;margin:3px 0;padding:8px 9px;display:flex;overflow:hidden}.compass-neighbor-link:hover{background:var(--workbench-hover);color:var(--foreground)}.compass-neighbor-dot{width:8px;height:8px;box-shadow:0 0 0 1px var(--foreground);border-radius:50%;flex:none}@supports (color:color-mix(in lab,red,red)){.compass-neighbor-dot{box-shadow:0 0 0 1px color-mix(in srgb,var(--foreground) 10%,transparent)}}.compass-neighbor-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.compass-empty{color:var(--compass-faint);padding:8px 0;font-size:12px;display:block}.compass-community-panel{flex:1;min-height:0;padding:16px;overflow-y:auto}.compass-community-panel h2{margin-bottom:10px}.compass-community-panel[data-secondary=true]{flex:0 auto;padding-top:12px}.compass-community-panel details>summary{cursor:pointer;min-height:30px;color:var(--muted-foreground);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;align-items:center;font-size:11px;font-weight:700;display:flex}.compass-community-panel details>summary span{color:var(--compass-faint);font:9px/1 var(--compass-font-mono)}.compass-community-controls{min-height:0}.compass-community-search{align-items:center;margin:2px 0 8px;display:flex;position:relative}.compass-community-search>svg{width:13px;height:13px;color:var(--compass-faint);pointer-events:none;position:absolute;left:8px}.compass-community-search input{border:1px solid var(--compass-line);background:var(--vscode-input-background,var(--background));width:100%;height:30px;color:var(--foreground);font:11px/1.3 var(--compass-font-sans);border-radius:3px;padding:0 8px 0 28px}.compass-community-limit{color:var(--compass-faint);margin:8px 0 0;font-size:10px;line-height:1.45}.compass-community-control,.compass-community-item{min-height:34px;color:var(--muted-foreground);align-items:center;gap:8px;font-size:12px;display:flex}.compass-community-item{border-radius:3px}.compass-community-item:hover{background:var(--workbench-hover);color:var(--foreground)}.compass-community-item[data-hidden=true]{opacity:.36}.compass-community-item input,.compass-community-control input{width:15px;height:15px;accent-color:var(--compass-focus)}.compass-community-dot{border-radius:50%;flex:none;width:9px;height:9px}.compass-community-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.compass-community-item small{color:var(--compass-faint);font-size:10px}.compass-graph-stats{border-top:1px solid var(--compass-line);color:var(--compass-faint);letter-spacing:.025em;padding:11px 16px;font-size:10px}.compass-node-hover-card{z-index:7;top:clamp(86px,var(--compass-hover-y),calc(100% - 10rem));left:clamp(12px,var(--compass-hover-x),calc(100% - min(27rem,90%) - 12px));border:1px solid var(--compass-line-strong);background:var(--vscode-editorHoverWidget-background,var(--compass-panel));width:max-content;max-width:min(26rem,100% - 24px);color:var(--vscode-editorHoverWidget-foreground,var(--muted-foreground));box-shadow:0 4px 12px var(--vscode-widget-shadow,#00000047);pointer-events:none;border-radius:3px;gap:7px;padding:13px 15px;font-size:12px;line-height:1.35;display:grid;position:absolute;overflow:hidden}.compass-node-hover-card>.compass-change-badge{margin:0}.compass-hover-heading{align-items:center;gap:8px;display:flex}.compass-hover-heading strong{min-width:0;color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.compass-hover-heading span{background:var(--compass-success);border-radius:999px;width:max-content;padding:3px 7px}@supports (color:color-mix(in lab,red,red)){.compass-hover-heading span{background:color-mix(in srgb,var(--compass-success) 20%,transparent)}}.compass-hover-heading span{color:var(--compass-success);letter-spacing:.07em;font-size:9px;font-weight:800}.compass-node-hover-card p,.compass-node-hover-card code{display:block}.compass-hover-source{color:var(--compass-focus)}.compass-node-hover-card code{max-width:395px;color:var(--foreground);font-family:var(--compass-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.compass-edge-hover-card{z-index:8;top:clamp(86px,var(--compass-hover-y),calc(100% - 15rem));left:clamp(12px,var(--compass-hover-x),calc(100% - min(31rem,92%) - 12px));border:1px solid var(--compass-line-strong);background:var(--vscode-editorHoverWidget-background,var(--compass-panel));width:min(31rem,100% - 24px);color:var(--vscode-editorHoverWidget-foreground,var(--muted-foreground));box-shadow:0 8px 24px var(--vscode-widget-shadow,#00000057);pointer-events:none;border-radius:4px;gap:10px;padding:13px 15px;font-size:11px;line-height:1.35;animation:90ms ease-out both compass-edge-card-enter;display:grid;position:absolute;overflow:hidden}@keyframes compass-edge-card-enter{0%{opacity:0;transform:translateY(3px)}}.compass-edge-hover-heading,.compass-edge-relation-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.compass-edge-hover-eyebrow{color:var(--compass-faint);letter-spacing:.09em;text-transform:uppercase;align-items:center;gap:6px;font-size:9px;font-weight:750;display:inline-flex}.compass-edge-hover-eyebrow svg{width:12px;height:12px;color:var(--compass-focus)}.compass-edge-confidence{border:1px solid;padding:3px 7px}@supports (color:color-mix(in lab,red,red)){.compass-edge-confidence{border:1px solid color-mix(in srgb,currentColor 28%,transparent)}}.compass-edge-confidence{background:currentColor;border-radius:999px}@supports (color:color-mix(in lab,red,red)){.compass-edge-confidence{background:color-mix(in srgb,currentColor 11%,transparent)}}.compass-edge-confidence{color:var(--compass-faint);letter-spacing:.055em;text-transform:uppercase;font-size:9px;font-weight:800}.compass-edge-confidence[data-confidence=extracted]{color:var(--compass-success)}.compass-edge-confidence[data-confidence=inferred]{color:var(--compass-focus)}.compass-edge-confidence[data-confidence=ambiguous]{color:var(--compass-warning)}.compass-edge-confidence[data-confidence=aggregated]{color:var(--compass-faint)}.compass-edge-trace{border:1px solid var(--compass-line);background:var(--compass-focus);border-radius:3px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:9px;min-width:0;padding:9px 10px;display:grid}@supports (color:color-mix(in lab,red,red)){.compass-edge-trace{background:color-mix(in srgb,var(--compass-focus) 7%,transparent)}}.compass-edge-trace strong{min-width:0;color:var(--foreground);font:600 11px/1.35 var(--compass-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.compass-edge-trace strong:last-child{text-align:right}.compass-edge-trace>span{border:1px solid var(--compass-focus);place-items:center;width:22px;height:22px;display:grid}@supports (color:color-mix(in lab,red,red)){.compass-edge-trace>span{border:1px solid color-mix(in srgb,var(--compass-focus) 38%,transparent)}}.compass-edge-trace>span{background:var(--vscode-editorHoverWidget-background,var(--compass-panel));color:var(--compass-focus);border-radius:50%}.compass-edge-trace svg{width:12px;height:12px}.compass-edge-relation-row>strong{color:var(--foreground);font-size:12px;font-weight:700}.compass-edge-relation-row>.compass-change-badge{margin:0}.compass-edge-metadata{gap:5px;padding-top:1px;display:grid}.compass-edge-metadata p{grid-template-columns:54px minmax(0,1fr);align-items:baseline;gap:8px;display:grid}.compass-edge-metadata span{color:var(--compass-faint);letter-spacing:.06em;text-transform:uppercase;font-size:9px;font-weight:700}.compass-edge-metadata code{min-width:0;color:var(--vscode-textLink-foreground,var(--compass-focus));font:10px/1.4 var(--compass-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}body.vscode-high-contrast .compass-glass-panel,body.vscode-high-contrast .compass-graph-inspector,body.vscode-high-contrast .compass-inspector-resizer,body.vscode-high-contrast .compass-load-action,body.vscode-high-contrast .compass-load-step>i,body.vscode-high-contrast .compass-source-metadata,body.vscode-high-contrast .compass-node-hover-card,body.vscode-high-contrast .compass-edge-hover-card,body.vscode-high-contrast-light .compass-glass-panel,body.vscode-high-contrast-light .compass-graph-inspector,body.vscode-high-contrast-light .compass-inspector-resizer,body.vscode-high-contrast-light .compass-load-action,body.vscode-high-contrast-light .compass-load-step>i,body.vscode-high-contrast-light .compass-source-metadata,body.vscode-high-contrast-light .compass-node-hover-card,body.vscode-high-contrast-light .compass-edge-hover-card{border-width:2px;border-color:var(--vscode-contrastBorder,var(--compass-focus))}body.vscode-high-contrast .compass-load-logo,body.vscode-high-contrast-light .compass-load-logo{color:var(--vscode-contrastBorder,currentColor)}@media(max-width:980px){.compass-tool-button span{display:none}.compass-tool-button{padding:0 11px}}@media(max-width:760px){.compass-workspace{height:auto;min-height:100vh;overflow:auto}.compass-workspace-content,.compass-workspace-content[data-inspector-collapsed=true]{height:auto;min-height:inherit;grid-template-rows:minmax(360px,62vh) minmax(280px,40vh);grid-template-columns:1fr;overflow:visible}.compass-workspace-content[data-inspector-collapsed=true]{grid-template-rows:minmax(360px,calc(100vh - 48px)) 48px}.compass-inspector-resizer{display:none}.compass-graph-inspector{border-top:1px solid var(--compass-line);min-height:280px;box-shadow:none;border-left:0;border-radius:0}.compass-graph-inspector-collapsed{border-radius:0;flex-direction:row;justify-content:center;min-height:48px}.compass-inspector-expand{margin-top:0}.compass-inspector-rail-label{writing-mode:horizontal-tb;margin-top:0;margin-left:10px}.compass-graph-toolbar{top:12px;left:12px;right:12px}.compass-toolbar-actions{max-width:62%;overflow-x:auto}.compass-explore-panel{max-height:calc(62vh - 82px)}.compass-info-panel{max-height:none}}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.compass-load-logo,.compass-load-progress i,.architecture-load-skeleton span,.workbench-state-spinner{animation:none!important}}.architecture-shell{background:var(--background);height:100vh;color:var(--foreground);grid-template-columns:minmax(220px,280px) minmax(0,1fr);display:grid}.query-shell{--query-surface:var(--vscode-editor-background,var(--background));--query-surface-raised:var(--vscode-editorWidget-background,var(--vscode-sideBar-background,var(--card)));--query-border:var(--vscode-panel-border,var(--border));--query-input:var(--vscode-input-background,var(--background));--query-input-foreground:var(--vscode-input-foreground,var(--foreground));--query-accent:var(--vscode-focusBorder,var(--ring));background:var(--background);height:100vh;min-height:420px;color:var(--foreground);grid-template-rows:auto 1fr;display:grid;overflow:hidden}.query-header{border-bottom:1px solid var(--query-border);background:var(--query-surface);padding:14px 18px 16px}.query-heading-row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.query-context{color:var(--muted-foreground);font:10px/1.35 var(--compass-font-mono);letter-spacing:.04em;text-transform:uppercase}.query-heading-row h1{margin:3px 0 0;font-size:16px;font-weight:600;line-height:1.3}.query-mode{border-bottom:1px solid var(--query-border);background:0 0;gap:0;width:100%;margin-top:14px;display:flex}.query-mode button{min-width:min(280px,50%);min-height:48px;color:var(--muted-foreground);font:inherit;text-align:left;background:0 0;border:0;border-top:2px solid #0000;border-radius:0;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;padding:7px 12px 8px;display:grid;position:relative}.query-mode button:hover{background:var(--workbench-hover);color:var(--foreground)}.query-mode button[aria-selected=true]{border-top-color:var(--vscode-tab-activeBorder,var(--query-accent));background:var(--vscode-tab-activeBackground,var(--query-surface-raised));box-shadow:inset 1px 0 var(--query-border),inset -1px 0 var(--query-border);color:var(--vscode-tab-activeForeground,var(--foreground))}.query-mode button[aria-selected=true] svg,.query-mode button[aria-selected=true] strong{opacity:1}.query-mode svg{width:15px;height:15px}.query-mode button>span,.query-mode strong,.query-mode small{min-width:0;display:block}.query-mode strong{font-size:12px;font-weight:600;line-height:1.3}.query-mode small{color:inherit;opacity:.78;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:10px;font-weight:400;line-height:1.3;overflow:hidden}.query-composer-panel{border:1px solid var(--query-border);background:var(--query-surface-raised);border-top:0;padding:12px}.query-composer{display:block}.query-editor-shell{border:1px solid var(--vscode-input-border,var(--border));background:var(--query-input);color:var(--query-input-foreground);border-radius:3px;overflow:hidden}.query-editor-shell:focus-within{border-color:var(--ring);outline:1px solid var(--ring);outline-offset:-1px}.query-editor{min-width:0;position:relative}.query-editor textarea{resize:vertical;background:var(--query-input);width:100%;min-height:96px;max-height:260px;color:inherit;font:13px/1.55 var(--compass-font-sans);box-sizing:border-box;border:0;border-radius:0;outline:none;padding:11px 12px;display:block}.query-composer-panel[data-mode=cql] .query-editor textarea{font-family:var(--compass-font-mono);font-size:12px}.query-editor textarea::placeholder,.query-params input::placeholder{color:var(--vscode-input-placeholderForeground,var(--muted-foreground))}.query-params input:focus-visible{border-color:var(--ring);outline:1px solid var(--ring);outline-offset:-1px}.query-composer-footer{border-top:1px solid var(--query-border);background:var(--query-surface);align-items:center;gap:12px;min-height:40px;padding:5px 6px 5px 10px;display:flex}.query-footer-actions{flex:none;justify-content:flex-end;align-items:center;gap:8px;margin-left:auto;display:flex}.query-shortcut{color:var(--vscode-disabledForeground,var(--compass-faint));font:10px/1 var(--compass-font-sans);white-space:nowrap}.query-run{border:1px solid var(--vscode-button-border,transparent);background:var(--vscode-button-background,var(--primary));min-width:76px;min-height:30px;color:var(--vscode-button-foreground,var(--primary-foreground));font:inherit;border-radius:3px;justify-content:center;align-items:center;gap:6px;padding:5px 11px;font-size:12px;display:flex}.query-run:hover:not(:disabled){background:var(--vscode-button-hoverBackground,var(--primary))}.query-run:disabled{background:var(--vscode-button-secondaryBackground,var(--secondary));color:var(--vscode-disabledForeground,var(--compass-faint))}.query-run svg{width:13px;height:13px}.query-params{min-width:0;max-width:620px;color:var(--muted-foreground);flex:520px;align-items:center;gap:8px;font-size:10px;display:flex}.query-params>span{flex:none}.query-params input{border:1px solid var(--vscode-input-border,var(--border));background:var(--vscode-input-background,var(--input));min-width:0;max-width:520px;height:28px;color:var(--vscode-input-foreground,var(--foreground));font:11px var(--compass-font-mono);border-radius:3px;outline:none;flex:260px;padding:3px 8px}.query-examples{align-items:center;gap:5px;margin-top:9px;display:flex;overflow-x:auto}.query-examples>span{color:var(--muted-foreground);text-transform:uppercase;flex:none;font-size:10px;font-weight:600}.query-examples button,.query-history button{border:1px solid var(--border);color:var(--muted-foreground);font:inherit;white-space:nowrap;background:0 0;border-radius:3px;padding:4px 7px;font-size:10px}.query-examples button:hover,.query-history button:hover{background:var(--workbench-hover);color:var(--foreground)}.query-results{min-height:0;padding:clamp(12px,2vw,22px);overflow:auto}.query-results>.workbench-state,.query-empty{min-height:100%}.query-result{width:min(1180px,100%);margin:0 auto}.query-result>header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:9px;display:flex}.query-result>header span{color:var(--muted-foreground);font-size:10px}.query-result>header>span{font-family:var(--compass-font-mono);align-items:center;gap:5px;display:flex}.query-result>header svg{width:12px;height:12px}.query-result h2{margin:2px 0 0;font-size:14px;font-weight:600}.query-text-result,.query-json-result{border:1px solid var(--border);background:var(--vscode-textCodeBlock-background,var(--card));min-height:120px;color:var(--foreground);font:12px/1.6 var(--compass-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:3px;margin:0;padding:12px;overflow:auto}.query-prose-result{border:1px solid var(--query-border);background:var(--query-surface-raised);color:var(--foreground);border-radius:3px;padding:14px 16px;font-size:13px;line-height:1.65}.query-prose-result p,.query-prose-result ul{margin:0}.query-prose-result p+p,.query-prose-result p+ul,.query-prose-result ul+p{margin-top:10px}.query-prose-result ul{padding-left:20px}.query-traversal-result{gap:10px;display:grid}.query-traversal-summary{border:1px solid var(--query-border);border-left:3px solid var(--query-accent);background:var(--query-surface-raised);justify-content:space-between;align-items:center;gap:16px;min-height:54px;padding:10px 12px;display:flex}.query-traversal-summary p{color:var(--foreground);margin:0;font-size:12px;font-weight:600}.query-result-metrics{color:var(--muted-foreground);flex-wrap:wrap;gap:5px 14px;margin-top:5px;font-size:10px;display:flex}.query-result-metrics strong{color:var(--foreground);font-weight:600}.query-graph-action{border:1px solid var(--vscode-button-border,transparent);background:var(--vscode-button-secondaryBackground,var(--secondary));min-height:30px;color:var(--vscode-button-secondaryForeground,var(--secondary-foreground));font:11px var(--compass-font-sans);border-radius:3px;flex:none;align-items:center;gap:6px;padding:5px 9px;display:inline-flex}.query-graph-action:hover{background:var(--vscode-button-secondaryHoverBackground,var(--workbench-hover))}.query-graph-action svg{width:14px;height:14px}.query-node-results{border:1px solid var(--query-border);background:var(--query-surface);border-radius:3px;overflow:hidden}.query-node-result{border-bottom:1px solid var(--query-border);grid-template-columns:18px minmax(160px,.72fr) minmax(240px,1.28fr);align-items:center;gap:9px;min-width:0;min-height:48px;padding:7px 10px;display:grid}.query-node-result:last-child{border-bottom:0}.query-node-result:hover{background:var(--workbench-hover)}.query-node-result>svg{width:14px;height:14px;color:var(--vscode-symbolIcon-functionForeground,var(--query-accent))}.query-node-copy,.query-node-copy h3,.query-node-copy p{min-width:0}.query-node-copy h3,.query-node-copy p{text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.query-node-copy h3{color:var(--vscode-editor-foreground,var(--foreground));font-size:12px;font-weight:600}.query-node-copy p{color:var(--muted-foreground);margin-top:2px;font-size:10px}.query-source-action{min-width:0;color:var(--workbench-link);font:10px/1.4 var(--compass-font-mono);text-align:left;background:0 0;border:1px solid #0000;border-radius:3px;justify-content:space-between;align-items:center;gap:8px;padding:5px 7px;display:flex;overflow:hidden}.query-source-action:hover{border-color:var(--query-border);background:var(--vscode-editorHoverWidget-background,var(--query-surface-raised))}.query-source-action span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.query-source-action small{color:var(--muted-foreground);font:10px var(--compass-font-mono);flex:none}.query-source-missing{color:var(--vscode-disabledForeground,var(--compass-faint));font:10px var(--compass-font-mono)}.query-table{border:1px solid var(--border);border-radius:3px;overflow:auto}.query-table table{border-collapse:collapse;width:100%;min-width:480px;font-size:11px}.query-table thead{background:var(--workbench-table-header);position:sticky;top:0}.query-table th,.query-table td{border-bottom:1px solid var(--border);text-align:left;text-overflow:ellipsis;white-space:nowrap;max-width:380px;padding:7px 9px;overflow:hidden}.query-table th{color:var(--muted-foreground);font-weight:500}.query-table tbody tr:hover{background:var(--workbench-hover)}.query-table tr:last-child td{border-bottom:0}.query-empty{place-content:center;display:grid}.query-history{text-align:center;width:min(720px,100vw - 40px);margin:-28px auto 20px}.query-history h2{color:var(--muted-foreground);margin:0 0 7px;font-size:10px;font-weight:500}.query-history button{text-overflow:ellipsis;max-width:min(100%,460px);margin:2px;overflow:hidden}.query-shell button:focus-visible{outline:2px solid var(--ring);outline-offset:1px}body.vscode-high-contrast .query-mode,body.vscode-high-contrast-light .query-mode,body.vscode-high-contrast .query-text-result,body.vscode-high-contrast-light .query-text-result,body.vscode-high-contrast .query-json-result,body.vscode-high-contrast-light .query-json-result,body.vscode-high-contrast .query-table,body.vscode-high-contrast-light .query-table,body.vscode-high-contrast .query-composer-panel,body.vscode-high-contrast-light .query-composer-panel,body.vscode-high-contrast .query-editor-shell,body.vscode-high-contrast-light .query-editor-shell,body.vscode-high-contrast .query-prose-result,body.vscode-high-contrast-light .query-prose-result,body.vscode-high-contrast .query-traversal-summary,body.vscode-high-contrast-light .query-traversal-summary,body.vscode-high-contrast .query-node-results,body.vscode-high-contrast-light .query-node-results{border-width:2px;border-color:var(--vscode-contrastBorder,var(--ring))}body.vscode-high-contrast .query-mode button[aria-selected=true],body.vscode-high-contrast-light .query-mode button[aria-selected=true]{border:2px solid var(--vscode-contrastBorder,var(--ring));border-bottom:0}.history-shell{background:var(--background);height:100vh;min-height:440px;color:var(--foreground);grid-template-columns:minmax(270px,340px) minmax(0,1fr);display:grid;overflow:hidden}.history-bootstrap{background:var(--vscode-editor-background,var(--background));place-items:center;min-height:100vh;display:grid}.history-sidebar{border-right:1px solid var(--border);background:var(--sidebar);min-width:0;min-height:0;color:var(--sidebar-foreground);flex-direction:column;display:flex}.history-sidebar-header{border-bottom:1px solid var(--border);flex:none;padding:14px 12px 12px}.history-title{align-items:flex-start;gap:9px;display:flex}.history-title>svg{width:16px;height:16px;color:var(--muted-foreground);margin-top:1px}.history-title h1{margin:0;font-size:13px;font-weight:600;line-height:1.25}.history-title p{color:var(--muted-foreground);margin:3px 0 0;font-size:11px}.history-search{align-items:center;margin-top:12px;display:flex;position:relative}.history-search>svg{width:14px;height:14px;color:var(--vscode-input-placeholderForeground,var(--muted-foreground));pointer-events:none;position:absolute;left:8px}.history-search input,.history-mobile-select select{border:1px solid var(--vscode-input-border,transparent);background:var(--vscode-input-background,var(--input));width:100%;min-height:28px;color:var(--vscode-input-foreground,var(--foreground));font:inherit;border-radius:2px;outline:none;font-size:12px}.history-search input{padding:4px 8px 4px 28px}.history-search input::placeholder{color:var(--vscode-input-placeholderForeground,var(--muted-foreground))}.history-search input:focus-visible,.history-mobile-select select:focus-visible,.history-rail:focus-visible,.history-commit:focus-visible{border-color:var(--ring);outline:1px solid var(--ring);outline-offset:-1px}.history-mobile-select{display:none}.history-rail{outline:none;flex:auto;min-height:0;overflow:auto}.history-pagination{border-top:1px solid var(--border);color:var(--muted-foreground);flex:none;justify-items:start;gap:6px;padding:8px 10px;font-size:11px;display:grid}.history-pagination [role=alert]{color:var(--destructive)}.history-commit{border:0;border-bottom:1px solid var(--border);width:100%;color:inherit;text-align:left;background:0 0;border-radius:0;align-items:center;gap:.625rem;padding:8px 11px;display:flex;position:absolute;left:0;right:0}.history-commit:hover{background:var(--workbench-hover);color:var(--workbench-hover-foreground)}.history-commit[aria-selected=true]{background:var(--sidebar-accent);color:var(--sidebar-accent-foreground);box-shadow:inset 2px 0 var(--sidebar-primary)}.history-commit>svg{width:15px;height:15px;color:var(--muted-foreground);flex:none}.history-commit>svg[data-state=available]{color:var(--compass-success)}.history-commit>svg[data-state=building]{color:var(--vscode-progressBar-background,var(--ring))}.history-commit>svg[data-state=failed]{color:var(--destructive)}.history-commit-row-copy,.history-commit-subject,.history-commit-byline{min-width:0}.history-commit-row-copy{flex:1;display:block}.history-commit-subject{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;line-height:1.4;display:block;overflow:hidden}.history-commit-byline{color:var(--muted-foreground);white-space:nowrap;align-items:center;gap:5px;margin-top:3px;font-size:10px;display:flex;overflow:hidden}.history-commit[aria-selected=true] .history-commit-byline{color:currentColor}@supports (color:color-mix(in lab,red,red)){.history-commit[aria-selected=true] .history-commit-byline{color:color-mix(in srgb,currentColor 72%,transparent)}}.history-commit-byline code{color:inherit;font-family:var(--compass-font-mono)}.history-commit-byline span{text-overflow:ellipsis;overflow:hidden}.history-commit-byline time{margin-left:auto}.history-content{background:var(--vscode-editor-background,var(--background));min-width:0;min-height:0;padding:16px;overflow:auto}.history-commit-details{border:1px solid var(--border);background:var(--vscode-editor-background,var(--background));padding:14px}.history-commit-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.history-commit-copy{min-width:0}.history-eyebrow{color:var(--muted-foreground);letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:600;display:block}.history-commit-copy h2{overflow-wrap:anywhere;margin:4px 0 0;font-size:16px;font-weight:600;line-height:1.35}.history-commit-metadata{color:var(--muted-foreground);flex-wrap:wrap;gap:4px 12px;margin-top:7px;font-size:11px;display:flex}.history-commit-metadata code{color:var(--vscode-textLink-foreground,var(--workbench-link));font-family:var(--compass-font-mono)}.history-state-badge{text-transform:capitalize;border-radius:2px;flex:none}.history-commit-actions,.history-change-counts{flex-wrap:wrap;margin-top:12px;display:flex}.history-commit-actions{align-items:flex-end;gap:10px}.history-change-counts{gap:6px}.history-change-counts-help{color:var(--vscode-descriptionForeground,#9aa7b7);margin:-.15rem 0 0;font-size:.78rem;line-height:1.45}.history-commit-actions:empty{display:none}.history-commit-actions button{border-radius:2px}.history-comparison-control{grid-template-columns:minmax(180px,1fr) auto;gap:5px 7px;min-width:min(100%,440px);display:grid}.history-comparison-control label{color:var(--muted-foreground);letter-spacing:.04em;text-transform:uppercase;grid-column:1/-1;font-size:10px;font-weight:600}.history-comparison-control select{border:1px solid var(--vscode-dropdown-border,var(--border));background:var(--vscode-dropdown-background,var(--background));min-width:0;height:28px;color:var(--vscode-dropdown-foreground,var(--foreground));border-radius:2px;outline:none;padding:0 26px 0 8px;font-size:11px}.history-comparison-control select option{background:var(--vscode-dropdown-background,var(--background));color:var(--vscode-dropdown-foreground,var(--foreground))}.history-comparison-control select:focus-visible{border-color:var(--vscode-focusBorder,var(--ring));outline:1px solid var(--vscode-focusBorder,var(--ring));outline-offset:-1px}.history-comparison-control select:disabled{color:var(--vscode-disabledForeground,var(--muted-foreground));cursor:not-allowed}.history-comparison-help,.history-inline-error{color:var(--muted-foreground);margin:9px 0 0;font-size:11px;line-height:1.45}.history-inline-error{color:var(--destructive)}.history-change-counts{color:var(--muted-foreground);font-size:11px}.history-change-counts span{border:1px solid var(--border);background:var(--vscode-badge-background,var(--muted));color:var(--vscode-badge-foreground,var(--foreground));border-radius:2px;padding:3px 6px}.history-change-counts strong{font-weight:600}.history-comparison,.history-diff-evidence{border:1px solid var(--border);background:var(--vscode-editor-background,var(--background));color:var(--vscode-editor-foreground,var(--foreground));margin-top:12px}.history-comparison{box-shadow:inset 3px 0 0 var(--vscode-focusBorder,var(--ring))}.history-comparison-heading{grid-template-columns:18px minmax(0,1fr) auto;align-items:start;gap:8px;padding:11px 12px 9px;display:grid}.history-comparison-heading>svg,.history-diff-heading>svg{width:15px;height:15px;color:var(--vscode-focusBorder,var(--ring));margin-top:2px}.history-comparison-heading h2{color:var(--vscode-editor-foreground,var(--foreground));margin:2px 0 0;font-size:13px;font-weight:600}.history-comparison-heading code{color:var(--vscode-textLink-foreground,var(--workbench-link));font-family:var(--compass-font-mono);background:0 0}.history-comparison-heading button{border:1px solid var(--border);min-height:26px;color:var(--foreground);background:0 0;border-radius:2px;align-items:center;gap:5px;padding:3px 7px;font-size:10px;display:inline-flex}.history-comparison-heading button:hover{border-color:var(--vscode-focusBorder,var(--ring));background:var(--workbench-hover)}.history-comparison-heading button svg{width:12px;height:12px}.history-comparison-legend{font:10px/1.4 var(--compass-font-mono);flex-wrap:wrap;gap:6px;padding:0 12px 10px 38px;display:flex}.history-delta-card{border:1px solid var(--border);background:var(--vscode-editor-foreground,var(--foreground));border-radius:2px;gap:4px;min-width:200px;padding:6px 8px;display:grid}@supports (color:color-mix(in lab,red,red)){.history-delta-card{background:color-mix(in srgb,var(--vscode-editor-foreground,var(--foreground)) 5%,var(--vscode-editor-background,var(--background)))}}.history-delta-card{color:var(--vscode-editor-foreground,var(--foreground))}.history-delta-card>span{flex-wrap:wrap;gap:5px 10px;display:flex}.history-delta-card strong{color:var(--vscode-editor-foreground,var(--foreground));text-transform:capitalize}.history-delta-card i{font-style:normal;font-weight:600}.history-delta-card i small{color:var(--muted-foreground);font-size:9px;font-weight:400}.history-delta-card i[data-change=added]{color:var(--vscode-gitDecoration-addedResourceForeground,#2ea043)}.history-delta-card i[data-change=removed]{color:var(--vscode-gitDecoration-deletedResourceForeground,#f85149)}.history-delta-card i[data-change=changed]{color:var(--vscode-gitDecoration-modifiedResourceForeground,#d29922)}.history-comparison-empty{border-top:1px solid var(--border);color:var(--muted-foreground);gap:2px;padding:9px 12px 10px 38px;font-size:11px;display:grid}.history-comparison-empty strong{color:var(--foreground);font-size:12px}.history-comparison-workspace{border:1px solid var(--border);background:var(--vscode-editor-background,var(--background));min-width:0;color:var(--vscode-editor-foreground,var(--foreground));margin-top:12px;overflow:hidden}.history-comparison-tabs{border-bottom:1px solid var(--border);background:var(--vscode-editorGroupHeader-tabsBackground,var(--vscode-sideBar-background,var(--background)));scrollbar-width:thin;min-width:0;display:flex;overflow-x:auto}.history-comparison-tabs button{border:0;border-right:1px solid var(--border);min-width:max-content;min-height:41px;color:var(--vscode-tab-inactiveForeground,var(--muted-foreground));font:11px/1 var(--compass-font-sans);background:0 0;align-items:center;gap:7px;padding:0 14px;display:inline-flex;position:relative}.history-comparison-tabs button:hover{background:var(--workbench-hover);color:var(--vscode-tab-activeForeground,var(--foreground))}.history-comparison-tabs button[aria-selected=true]{background:var(--vscode-tab-activeBackground,var(--vscode-editor-background,var(--background)));color:var(--vscode-tab-activeForeground,var(--foreground));box-shadow:inset 0 2px 0 var(--vscode-tab-activeBorder,var(--vscode-focusBorder,var(--ring)))}.history-comparison-tabs button:focus-visible{z-index:1;outline:1px solid var(--vscode-focusBorder,var(--ring));outline-offset:-2px}.history-comparison-tabs button>svg{width:14px;height:14px;color:var(--vscode-focusBorder,var(--ring))}.history-comparison-tab-count{border:1px solid var(--border);background:var(--vscode-badge-background,var(--muted));min-width:19px;height:19px;color:var(--vscode-badge-foreground,var(--foreground));font:9px/1 var(--compass-font-mono);border-radius:9px;justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.history-comparison-tab-panel{background:var(--vscode-editor-background,var(--background));min-width:0}.history-evidence-panel{min-width:0;padding:15px 15px 17px}.history-evidence-header{border-bottom:1px solid var(--border);padding-bottom:12px}.history-evidence-header>p,.history-findings-header>div>p{color:var(--muted-foreground);margin:4px 0 0 22px;font-size:11px;line-height:1.45}.history-diff-heading{align-items:center;gap:7px;display:flex}.history-diff-heading h2{margin:0;font-size:13px;font-weight:600}.history-findings-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.history-findings-expand{border:1px solid var(--border);min-height:27px;color:var(--foreground);background:0 0;border-radius:2px;flex:none;padding:4px 9px;font-size:10px}.history-findings-expand:hover{border-color:var(--vscode-focusBorder,var(--ring));background:var(--workbench-hover)}.history-source-changes{gap:6px;margin-top:12px;display:grid}.history-source-changes details{border:1px solid var(--border);background:var(--vscode-editor-background,var(--background));color:var(--vscode-editor-foreground,var(--foreground));border-radius:2px;overflow:hidden}.history-diff-toolbar{align-items:center;gap:6px;margin-top:12px;display:flex}.history-diff-layout{border:1px solid var(--border);border-radius:2px;display:inline-flex;overflow:hidden}.history-diff-toolbar button{min-height:25px;color:var(--muted-foreground);background:0 0;border:0;padding:3px 8px;font-size:10px}.history-diff-layout button+button{border-left:1px solid var(--border)}.history-diff-toolbar button:hover:not(:disabled){background:var(--workbench-hover);color:var(--foreground)}.history-diff-toolbar button[aria-pressed=true],.history-diff-toolbar button[aria-pressed=true]:hover{background:var(--vscode-tab-activeBackground,var(--vscode-editor-background,var(--background)));color:var(--vscode-tab-activeForeground,var(--vscode-editor-foreground,var(--foreground)));box-shadow:inset 0 2px 0 var(--vscode-tab-activeBorder,var(--vscode-focusBorder,var(--ring)))}.history-diff-toolbar button:disabled{cursor:not-allowed;opacity:.45}.history-diff-wrap{min-height:25px;color:var(--muted-foreground);align-items:center;gap:5px;font-size:10px;display:inline-flex}.history-diff-wrap input{margin:0}.history-diff-expand{border-radius:2px;margin-left:auto;border:1px solid var(--border)!important}.history-source-changes summary{cursor:pointer;border-bottom:1px solid var(--border);background:var(--vscode-editorGroupHeader-tabsBackground,var(--background));justify-content:space-between;align-items:center;gap:10px;padding:6px 8px;font-size:10px;display:flex}.history-source-path{align-items:center;gap:8px;min-width:0;display:inline-flex}.history-source-path code{color:var(--vscode-textLink-foreground,var(--workbench-link));font-family:var(--compass-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.history-source-path small{color:var(--muted-foreground);text-transform:capitalize;font-size:9px}.history-source-stats{font-family:var(--compass-font-mono);flex:none;gap:6px;display:inline-flex}.history-source-stats i{font-style:normal;font-weight:600}.history-source-stats i[data-change=added]{color:var(--vscode-gitDecoration-addedResourceForeground,#2ea043)}.history-source-stats i[data-change=removed]{color:var(--vscode-gitDecoration-deletedResourceForeground,#f85149)}.history-source-diff{contain:inline-size;background:var(--vscode-editor-background,var(--background));width:100%;min-width:0;max-width:100%;display:block}.history-diff-fallback>p{border-bottom:1px solid var(--border);color:var(--vscode-gitDecoration-modifiedResourceForeground,#d29922);margin:0;padding:7px 8px}.history-diff-fallback pre{max-height:260px;color:var(--vscode-editor-foreground,var(--foreground));font:10px/1.5 var(--compass-font-mono);white-space:pre;margin:0;padding:8px;overflow:auto}.history-source-changes p,.history-diff-empty{color:var(--muted-foreground);margin:12px 0 0;font-size:11px}.history-finding-list{gap:10px;margin-top:14px;display:grid}.history-finding-list details{border:1px solid var(--border);background:var(--vscode-editor-foreground,var(--foreground));border-radius:4px;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.history-finding-list details{background:color-mix(in srgb,var(--vscode-editor-foreground,var(--foreground)) 2%,var(--vscode-editor-background,var(--background)))}}.history-finding-list details{color:var(--vscode-editor-foreground,var(--foreground))}.history-finding-list details[open]{border-color:var(--vscode-focusBorder,var(--ring))}@supports (color:color-mix(in lab,red,red)){.history-finding-list details[open]{border-color:color-mix(in srgb,var(--vscode-focusBorder,var(--ring)) 58%,var(--border))}}.history-finding-list details[open]{box-shadow:inset 3px 0 0 var(--vscode-focusBorder,var(--ring))}.history-finding-list summary{cursor:pointer;grid-template-columns:28px minmax(0,1fr) 16px;align-items:center;gap:11px;min-height:58px;padding:11px 13px;list-style:none;display:grid}.history-finding-list summary::-webkit-details-marker{display:none}.history-finding-list summary:hover{background:var(--workbench-hover)}.history-finding-list summary:focus-visible{outline:1px solid var(--vscode-focusBorder,var(--ring));outline-offset:-2px}.history-finding-index{border:1px solid var(--border);background:var(--vscode-editor-background,var(--background));width:27px;height:27px;color:var(--vscode-focusBorder,var(--ring));font:600 10px/1 var(--compass-font-mono);border-radius:3px;justify-content:center;align-items:center;display:inline-flex}.history-finding-summary{gap:4px;min-width:0;display:grid}.history-finding-summary strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;line-height:1.35;overflow:hidden}.history-finding-summary small{color:var(--muted-foreground);font-size:10px}.history-finding-list summary>svg{width:15px;height:15px;color:var(--muted-foreground);transition:transform .12s}.history-finding-list details[open] summary>svg{transform:rotate(90deg)}.history-finding-body{border-top:1px solid var(--border);padding:0 14px 15px 52px}.history-finding-body>p{color:var(--muted-foreground);margin:13px 0 0;font-size:11px}.history-finding-body dl{gap:0;margin:0;display:grid}.history-finding-body dl>div{border-bottom:1px solid var(--border);grid-template-columns:minmax(110px,170px) minmax(0,1fr);gap:16px;padding:12px 0;display:grid}.history-finding-body dl>div:last-child{border-bottom:0;padding-bottom:0}.history-finding-body dt{color:var(--muted-foreground);letter-spacing:.06em;text-transform:uppercase;font-size:9px;font-weight:600}.history-finding-body dd{min-width:0;margin:0;font-size:11px;line-height:1.5}.history-finding-body dd ul{gap:5px;margin:0;padding-left:17px;display:grid}.history-finding-body dd pre{border:1px solid var(--border);background:var(--vscode-textCodeBlock-background,var(--muted));max-height:280px;color:var(--vscode-editor-foreground,var(--foreground));font:10px/1.55 var(--compass-font-mono);white-space:pre-wrap;border-radius:3px;margin:0;padding:9px 10px;overflow:auto}.history-finding-body dd code{font-family:var(--compass-font-mono)}.history-finding-muted{color:var(--muted-foreground);font-style:italic}.history-findings-empty{border:1px dashed var(--border);color:var(--muted-foreground);border-radius:4px;align-items:flex-start;gap:10px;margin-top:14px;padding:15px;display:flex}.history-findings-empty>svg{width:17px;height:17px;color:var(--vscode-focusBorder,var(--ring))}.history-findings-empty strong{color:var(--foreground);font-size:12px}.history-findings-empty p{margin:4px 0 0;font-size:11px}.history-standalone-evidence{gap:12px;margin-top:12px;display:grid}.history-standalone-evidence>section{border:1px solid var(--border);background:var(--vscode-editor-background,var(--background))}.history-graph-frame{border:1px solid var(--border);background:var(--vscode-editor-background,var(--background));height:max(400px,100vh - 190px);min-height:360px;margin-top:12px;display:grid;overflow:hidden}.history-graph-frame-tabbed{border:0;height:max(460px,100vh - 230px);min-height:420px;margin-top:0}.history-graph-ready,.history-graph-canvas{min-width:0;min-height:0}.history-graph-ready{flex-direction:column;display:flex}.history-graph-status{border-bottom:1px solid var(--border);background:var(--vscode-editorGroupHeader-tabsBackground,var(--background));min-height:30px;color:var(--muted-foreground);flex:none;padding:7px 10px;font-size:11px}.history-graph-status span{color:var(--foreground);font-family:var(--compass-font-mono)}.history-graph-canvas{isolation:isolate;flex:1;position:relative}.history-graph-canvas .compass-workspace{height:100%;min-height:0}.history-content>section:last-child{margin-top:12px}body.vscode-high-contrast .history-sidebar,body.vscode-high-contrast-light .history-sidebar,body.vscode-high-contrast .history-commit-details,body.vscode-high-contrast-light .history-commit-details,body.vscode-high-contrast .history-graph-frame,body.vscode-high-contrast-light .history-graph-frame,body.vscode-high-contrast .history-comparison,body.vscode-high-contrast-light .history-comparison,body.vscode-high-contrast .history-diff-evidence,body.vscode-high-contrast-light .history-diff-evidence,body.vscode-high-contrast .history-comparison-workspace,body.vscode-high-contrast-light .history-comparison-workspace,body.vscode-high-contrast .history-finding-list details,body.vscode-high-contrast-light .history-finding-list details,body.vscode-high-contrast .history-source-changes details,body.vscode-high-contrast-light .history-source-changes details,body.vscode-high-contrast .history-change-counts span,body.vscode-high-contrast-light .history-change-counts span,body.vscode-high-contrast .history-comparison-control select,body.vscode-high-contrast-light .history-comparison-control select,body.vscode-high-contrast .compass-change-legend,body.vscode-high-contrast-light .compass-change-legend,body.vscode-high-contrast .compass-change-badge,body.vscode-high-contrast-light .compass-change-badge{border-color:var(--vscode-contrastBorder,var(--ring));border-width:2px}@media(max-width:760px){.query-header{padding:10px}.query-heading-row,.query-composer{flex-direction:column;align-items:stretch}.query-mode{align-self:flex-start}.history-diff-toolbar{flex-wrap:wrap}.history-comparison-control{grid-template-columns:1fr;width:100%}.history-commit-actions{flex-direction:column;align-items:stretch}.history-commit-actions>button{align-self:flex-start}.history-comparison-control label{grid-column:auto}.history-diff-expand{margin-left:0}.history-comparison-tabs button{min-height:39px;padding-inline:11px}.history-evidence-panel{padding:12px}.history-findings-header{flex-direction:column;align-items:stretch}.history-findings-expand{align-self:flex-start}.history-finding-body{padding-left:14px}.history-finding-body dl>div{grid-template-columns:1fr;gap:5px}.query-composer-footer{flex-wrap:wrap}.query-params{flex:1 0 100%;max-width:none}.query-params input{max-width:none}.query-footer-actions{justify-content:flex-end;width:100%}.query-examples{padding-bottom:2px}.compass-load-shell[data-variant=architecture]{text-align:center;grid-template-rows:auto auto auto;grid-template-columns:1fr}.compass-load-shell[data-variant=architecture] .compass-load-visual,.compass-load-shell[data-variant=architecture] .compass-load-copy,.architecture-load-skeleton{grid-column:1}.compass-load-shell[data-variant=architecture] .compass-load-visual{margin:0 auto}.compass-load-shell[data-variant=architecture] .compass-load-steps{justify-content:center}.architecture-load-skeleton{grid-row:3;width:min(88vw,460px);height:190px;margin-top:14px}.history-shell{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.history-sidebar{border-right:0;border-bottom:1px solid var(--border)}.history-sidebar-header{padding:10px}.history-title p,.history-search,.history-rail{display:none}.history-mobile-select{color:var(--muted-foreground);gap:4px;margin-top:9px;font-size:10px;display:grid}.history-mobile-select select{padding:4px 7px}.history-content{padding:10px}.history-commit-heading{gap:8px}.history-commit-metadata{gap:3px;display:grid}.history-graph-frame{height:max(750px,102vh + 30px);margin-top:10px}.history-graph-canvas .compass-workspace{height:auto;min-height:max(720px,102vh)}}@media(max-width:420px){.query-params{flex-direction:column;align-items:stretch;gap:4px}.query-params input{flex:none;width:100%}}.architecture-nav{border-right:1px solid var(--border);background:var(--sidebar);min-height:0;color:var(--sidebar-foreground);flex-direction:column;display:flex}.architecture-nav-header{border-bottom:1px solid var(--border);padding:14px 14px 12px}.architecture-nav-header>span,.architecture-eyebrow{color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:600;display:block}.architecture-nav-header h1{text-overflow:ellipsis;white-space:nowrap;margin:4px 0 0;font-size:13px;font-weight:600;line-height:1.35;overflow:hidden}.architecture-section-list{flex:1;min-height:0;padding:5px;overflow:auto}.architecture-section-list>button{width:100%;min-height:48px;color:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:3px;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:7px;padding:7px 8px;display:grid}.architecture-section-list>button:hover{background:var(--workbench-hover);color:var(--workbench-hover-foreground)}.architecture-section-list>button[aria-current=page]{border-color:var(--vscode-list-activeSelectionBackground,var(--sidebar-primary));background:var(--sidebar-accent);color:var(--sidebar-accent-foreground)}.architecture-section-list svg{width:14px;height:14px;margin-top:2px}.architecture-section-list strong,.architecture-section-list small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.architecture-section-list strong{font-size:12px;font-weight:500}.architecture-section-list small{color:var(--muted-foreground);margin-top:2px;font-size:10px}.architecture-section-list>button[aria-current=page] small{color:inherit;opacity:.78}.architecture-stats{border-top:1px solid var(--border);color:var(--muted-foreground);text-align:center;grid-template-columns:repeat(3,1fr);gap:1px;padding:8px 6px;font-size:9px;display:grid}.architecture-stats strong{color:var(--sidebar-foreground);margin-bottom:1px;font-size:11px;display:block}.architecture-main{min-width:0;padding:14px clamp(14px,2.2vw,24px) 32px;overflow:auto}.architecture-global-search{z-index:20;max-width:760px;margin:0 auto 18px;position:sticky;top:0}.architecture-global-search>label{align-items:center;display:flex;position:relative}.architecture-global-search>label>svg{width:15px;height:15px;color:var(--vscode-input-placeholderForeground,var(--muted-foreground));position:absolute;left:10px}.architecture-global-search input{border:1px solid var(--vscode-input-border,var(--border));background:var(--vscode-input-background,var(--input));width:100%;height:34px;color:var(--vscode-input-foreground,var(--foreground));font:inherit;border-radius:3px;outline:none;padding:5px 84px 5px 33px;font-size:12px}.architecture-global-search input:focus-visible{border-color:var(--ring);outline:1px solid var(--ring);outline-offset:-1px}.architecture-global-search label>span{color:var(--muted-foreground);font-size:10px;position:absolute;right:8px}.architecture-search-results{border:1px solid var(--vscode-menu-border,var(--border));background:var(--vscode-menu-background,var(--popover));max-height:min(440px,65vh);color:var(--vscode-menu-foreground,var(--popover-foreground));box-shadow:0 4px 12px var(--vscode-widget-shadow,#00000047);border-radius:3px;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow:auto}.architecture-search-results>p{color:var(--muted-foreground);margin:0;padding:14px;font-size:12px}.architecture-search-results section+section{border-top:1px solid var(--vscode-menu-separatorBackground,var(--border))}.architecture-search-results h2{color:var(--muted-foreground);letter-spacing:.06em;text-transform:uppercase;margin:0;padding:7px 10px 4px;font-size:10px;font-weight:600}.architecture-search-results button{width:100%;color:inherit;text-align:left;background:0 0;border:0;padding:6px 10px;display:block}.architecture-search-results button:hover,.architecture-search-results button:focus-visible{background:var(--vscode-menu-selectionBackground,var(--vscode-list-activeSelectionBackground,var(--accent)));color:var(--vscode-menu-selectionForeground,var(--vscode-list-activeSelectionForeground,var(--accent-foreground)));outline:none}.architecture-search-results button span,.architecture-search-results button small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.architecture-search-results button span{font-size:12px}.architecture-search-results button small{color:inherit;opacity:.72;margin-top:2px;font-size:10px}.architecture-overview,.architecture-detail{max-width:1500px;margin-left:auto;margin-right:auto}.architecture-detail{margin-top:26px}.architecture-section-heading{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.architecture-section-heading h2{margin:0;font-size:15px;font-weight:600;line-height:1.35}.architecture-section-heading p{color:var(--muted-foreground);margin:3px 0 0;font-size:11px}.architecture-detail-count{color:var(--muted-foreground);white-space:nowrap;font-size:11px}.architecture-flow-grid,.architecture-symbol-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px;display:grid}.architecture-flow{border:1px solid var(--border);background:var(--vscode-editorWidget-background,var(--card));min-width:0;min-height:38px;color:var(--foreground);font:inherit;text-align:left;border-radius:3px;grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr) auto;align-items:center;gap:6px;padding:6px 8px;font-size:11px;display:grid}.architecture-flow:hover{border-color:var(--vscode-focusBorder,var(--ring));background:var(--workbench-hover)}.architecture-flow>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.architecture-flow>svg{width:13px;height:13px;color:var(--muted-foreground)}.architecture-flow-footer{justify-content:space-between;align-items:center;gap:10px;margin-top:8px;display:flex}.architecture-flow-footer p{color:var(--muted-foreground);margin:0;font-size:10px}.architecture-flow-footer button{border:1px solid var(--border);color:var(--foreground);font:inherit;background:0 0;border-radius:3px;padding:3px 7px;font-size:10px}.architecture-tab-content{min-height:280px;padding-top:8px}.architecture-detail [data-slot=tabs-list]{border-bottom:1px solid var(--border);justify-content:flex-start;gap:0;width:100%;height:30px;padding:0}.architecture-detail [data-slot=tabs-trigger]{min-width:76px;height:30px;color:var(--muted-foreground);border-radius:0;flex:none;padding:4px 10px;font-size:11px;font-weight:500}.architecture-detail [data-slot=tabs-trigger][data-state=active]{color:var(--foreground)}.architecture-detail [data-slot=tabs-trigger]>span{background:var(--vscode-badge-background,var(--muted));min-width:22px;color:var(--vscode-badge-foreground,var(--muted-foreground));font:9px/1.4 var(--compass-font-mono);border-radius:9px;margin-left:4px;padding:1px 5px}.architecture-detail [data-slot=tabs-trigger][data-state=active]>span{color:var(--vscode-badge-foreground,var(--foreground))}.architecture-detail [data-slot=tabs-trigger]:after{background:var(--vscode-tab-activeBorder,var(--ring));bottom:-1px}.architecture-symbol-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));margin-top:8px}.architecture-symbol-card{border:1px solid var(--border);background:var(--vscode-editorWidget-background,var(--card));min-width:0;min-height:92px;color:var(--card-foreground);border-radius:3px;grid-template-rows:auto 1fr;grid-template-columns:18px minmax(0,1fr);gap:0 7px;padding:9px;display:grid}.architecture-symbol-card>svg{width:15px;height:15px;color:var(--vscode-symbolIcon-functionForeground,var(--muted-foreground));margin-top:1px}.architecture-symbol-card h3,.architecture-symbol-card p{text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.architecture-symbol-card h3{color:var(--vscode-editor-foreground,var(--foreground));font-size:12px;font-weight:600}.architecture-symbol-card p{color:var(--muted-foreground);margin-top:2px;font-size:10px}.architecture-symbol-card>button,.architecture-symbol-card>span{color:var(--workbench-link);font:10px/1.35 var(--compass-font-mono);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;grid-column:1/span 2;align-self:end;margin-top:9px;padding:0;overflow:hidden}.architecture-symbol-card>button:hover{text-decoration:underline}.architecture-symbol-card>span{color:var(--vscode-disabledForeground,var(--compass-faint))}.architecture-call-table{border:1px solid var(--border);border-radius:3px;max-height:min(54vh,620px);margin-top:8px;overflow:auto}.architecture-call-table table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:620px;font-size:11px}.architecture-call-table thead{z-index:2;background:var(--workbench-table-header);position:sticky;top:0}.architecture-call-table th,.architecture-call-table td{border-bottom:1px solid var(--border);text-align:left;text-overflow:ellipsis;white-space:nowrap;padding:7px 9px;overflow:hidden}.architecture-call-table th{color:var(--muted-foreground);padding:0;font-weight:500}.architecture-call-table th button{width:100%;min-height:30px;color:inherit;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:5px;padding:6px 9px;display:flex}.architecture-call-table th button:hover{background:var(--workbench-hover);color:var(--foreground)}.architecture-call-table tbody tr:hover{background:var(--workbench-hover)}.architecture-call-table tr:last-child td{border-bottom:0}.architecture-call-table th:nth-child(2),.architecture-call-table th:nth-child(4),.architecture-call-table td:nth-child(2),.architecture-call-table td:nth-child(4){width:126px}.architecture-shell button:focus-visible,.architecture-shell input:focus-visible{outline:2px solid var(--ring);outline-offset:1px}body.vscode-high-contrast .architecture-section-list>button[aria-current=page],body.vscode-high-contrast-light .architecture-section-list>button[aria-current=page],body.vscode-high-contrast .architecture-flow:focus-visible,body.vscode-high-contrast-light .architecture-flow:focus-visible,body.vscode-high-contrast .architecture-symbol-card,body.vscode-high-contrast-light .architecture-symbol-card,body.vscode-high-contrast .architecture-call-table,body.vscode-high-contrast-light .architecture-call-table{border-width:2px;border-color:var(--vscode-contrastBorder,var(--ring))}@media(max-width:760px){.architecture-shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}.architecture-nav{border-right:0;border-bottom:1px solid var(--border);max-height:38vh}.architecture-main{padding:10px 10px 24px}.architecture-global-search{margin-bottom:14px}.architecture-section-heading{align-items:flex-start}.architecture-flow-grid,.architecture-symbol-grid{grid-template-columns:1fr}.architecture-flow-footer,.workbench-pagination{flex-direction:column;align-items:flex-start}.workbench-collection-toolbar{flex-direction:column;align-items:stretch}.workbench-search{width:100%;max-width:none}}.architecture-workspace{--architecture-border:var(--vscode-panel-border,var(--border));--architecture-surface:var(--vscode-editor-background,var(--background));--architecture-raised:var(--vscode-editorWidget-background,var(--vscode-sideBar-background,var(--card)));background:var(--architecture-surface);height:100vh;min-height:520px;color:var(--vscode-editor-foreground,var(--foreground));grid-template-columns:minmax(210px,240px) minmax(520px,1fr) minmax(300px,350px);display:grid;overflow:hidden}.architecture-workspace[data-inspector-open=false]{grid-template-columns:minmax(210px,240px) minmax(520px,1fr)}.architecture-rail,.architecture-inspector{background:var(--vscode-sideBar-background,var(--sidebar));min-width:0;min-height:0}.architecture-rail{border-right:1px solid var(--architecture-border);grid-template-rows:auto 1fr auto;display:grid}.architecture-rail-header,.architecture-inspector-header{border-bottom:1px solid var(--architecture-border);padding:16px}.architecture-rail-header>span,.architecture-inspector-header>span{color:var(--vscode-descriptionForeground,var(--muted-foreground));font:700 9px/1.2 var(--compass-font-mono);letter-spacing:.13em;text-transform:uppercase}.architecture-rail-header h1,.architecture-inspector-header h2{text-overflow:ellipsis;margin:7px 0 0;font-size:14px;font-weight:650;line-height:1.35;overflow:hidden}.architecture-rail-header p,.architecture-inspector-header p{color:var(--vscode-descriptionForeground,var(--muted-foreground));margin:5px 0 0;font-size:10px}.architecture-rail nav{min-height:0;padding:6px;overflow:auto}.architecture-rail nav>button{width:100%;color:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:5px;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:7px;padding:8px;display:grid}.architecture-rail nav>button:hover,.architecture-rail nav>button:focus-visible{background:var(--vscode-list-hoverBackground,var(--workbench-hover))}.architecture-rail nav>button[aria-current=page]{border-color:var(--vscode-focusBorder,var(--ring))}@supports (color:color-mix(in lab,red,red)){.architecture-rail nav>button[aria-current=page]{border-color:color-mix(in srgb,var(--vscode-focusBorder,var(--ring)) 48%,transparent)}}.architecture-rail nav>button[aria-current=page]{background:var(--vscode-list-activeSelectionBackground,var(--vscode-sideBarSectionHeader-background,var(--sidebar-accent)));color:var(--vscode-list-activeSelectionForeground,inherit)}.architecture-rail nav>button[data-empty=true]{opacity:.57}.architecture-rail nav svg{width:14px;height:14px;color:var(--vscode-symbolIcon-moduleForeground,var(--compass-focus))}.architecture-rail nav strong,.architecture-rail nav small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.architecture-rail nav strong{font-size:11px;font-weight:600}.architecture-rail nav small{color:var(--vscode-descriptionForeground,var(--muted-foreground));font:9px/1.35 var(--compass-font-mono);margin-top:2px}.architecture-rail nav i{background:var(--vscode-badge-background,var(--muted));min-width:24px;color:var(--vscode-badge-foreground,var(--muted-foreground));font:normal 9px/1.3 var(--compass-font-mono);text-align:center;border-radius:10px;padding:2px 5px}.architecture-scope-totals{border-top:1px solid var(--architecture-border);color:var(--vscode-descriptionForeground,var(--muted-foreground));text-align:center;grid-template-columns:repeat(3,1fr);padding:10px 6px;font-size:8px;display:grid}.architecture-scope-totals strong{color:var(--vscode-sideBar-foreground,var(--foreground));font:600 10px/1.2 var(--compass-font-mono);margin-bottom:2px;display:block}.architecture-stage{grid-template-rows:auto auto minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.architecture-command-bar{border-bottom:1px solid var(--architecture-border);background:var(--architecture-surface);grid-template-columns:minmax(240px,1fr) auto auto 30px;align-items:center;gap:8px;padding:9px 12px;display:grid}.architecture-inspector-toggle{border:1px solid var(--architecture-border);background:var(--architecture-raised);width:30px;height:30px;color:var(--vscode-descriptionForeground,var(--muted-foreground));border-radius:4px;place-items:center;display:grid}.architecture-inspector-toggle:hover{background:var(--vscode-toolbar-hoverBackground,var(--workbench-hover));color:var(--foreground)}.architecture-inspector-toggle svg{width:14px;height:14px}.architecture-search{min-width:0;position:relative}.architecture-search>svg,.architecture-detail-filter>svg{z-index:1;width:13px;height:13px;color:var(--vscode-input-placeholderForeground,var(--muted-foreground));pointer-events:none;position:absolute;top:50%;left:9px;transform:translateY(-50%)}.architecture-search>input,.architecture-detail-filter>input,.architecture-evidence-filter select{border:1px solid var(--vscode-input-border,var(--architecture-border));background:var(--vscode-input-background,var(--input));width:100%;height:30px;color:var(--vscode-input-foreground,var(--foreground));font:11px/1.3 var(--vscode-font-family,system-ui);border-radius:4px;outline:none}.architecture-search>input,.architecture-detail-filter>input{padding:4px 72px 4px 29px}.architecture-search>input:focus,.architecture-detail-filter>input:focus,.architecture-evidence-filter select:focus{border-color:var(--vscode-focusBorder,var(--ring));outline:1px solid var(--vscode-focusBorder,var(--ring));outline-offset:-1px}.architecture-search>span{color:var(--vscode-descriptionForeground,var(--muted-foreground));font:9px/1.4 var(--compass-font-mono);position:absolute;top:8px;right:8px}.architecture-search-popover{z-index:30;border:1px solid var(--vscode-menu-border,var(--architecture-border));background:var(--vscode-menu-background,var(--popover));max-height:min(440px,70vh);box-shadow:0 8px 24px var(--vscode-widget-shadow,#00000047);border-radius:5px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto}.architecture-search-popover>button{width:100%;color:var(--vscode-menu-foreground,var(--foreground));text-align:left;background:0 0;border:0;padding:7px 10px;display:block}.architecture-search-popover>button:hover,.architecture-search-popover>button:focus-visible{background:var(--vscode-menu-selectionBackground,var(--accent));color:var(--vscode-menu-selectionForeground,var(--accent-foreground))}.architecture-search-popover strong,.architecture-search-popover small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.architecture-search-popover strong{font-size:11px}.architecture-search-popover small{opacity:.75;margin-top:2px;font-size:9px}.architecture-search-popover p{color:var(--muted-foreground);margin:0;padding:16px;font-size:11px}.architecture-scope-switch{border:1px solid var(--architecture-border);border-radius:4px;display:flex;overflow:hidden}.architecture-scope-switch button{min-height:28px;color:var(--vscode-descriptionForeground,var(--muted-foreground));font:10px/1.2 var(--compass-font-mono);background:0 0;border:0;padding:4px 9px}.architecture-scope-switch button+button{border-left:1px solid var(--architecture-border)}.architecture-scope-switch button[aria-pressed=true]{background:var(--vscode-button-secondaryBackground,var(--accent));color:var(--vscode-button-secondaryForeground,var(--accent-foreground))}.architecture-evidence-filter{align-items:center;gap:5px;display:flex}.architecture-evidence-filter>svg{width:13px;height:13px;color:var(--vscode-descriptionForeground,var(--muted-foreground))}.architecture-evidence-filter select{width:auto;min-width:110px;padding:3px 22px 3px 7px}.architecture-context-strip{border-bottom:1px solid var(--architecture-border);background:var(--vscode-breadcrumb-background,var(--architecture-raised));min-height:34px;color:var(--vscode-descriptionForeground,var(--muted-foreground));font:9px/1.3 var(--compass-font-mono);flex-wrap:wrap;align-items:center;gap:6px 14px;padding:6px 12px;display:flex}.architecture-context-strip strong{color:var(--vscode-foreground,var(--foreground));font-weight:600}.architecture-coverage-warning{color:var(--vscode-editorWarning-foreground,var(--warning));align-items:center;gap:4px;display:inline-flex}.architecture-coverage-warning svg{width:12px;height:12px}.architecture-map-panel{border:1px solid var(--architecture-border);background:var(--architecture-raised);border-radius:10px;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;margin:clamp(14px,2vw,24px);display:grid;position:relative;overflow:hidden;box-shadow:0 12px 32px #0000001a}.architecture-map-header{border-bottom:1px solid var(--architecture-border);background:var(--architecture-raised);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;min-width:0;padding:14px 16px;display:flex}.architecture-map-intro{gap:3px;min-width:min(100%,260px);display:grid}.architecture-map-intro>span{color:var(--vscode-descriptionForeground,var(--muted-foreground));font:700 8px/1.2 var(--compass-font-mono);letter-spacing:.14em;text-transform:uppercase}.architecture-map-intro>strong{overflow-wrap:anywhere;font-size:12px;font-weight:650;line-height:1.35}.architecture-map-intro>small{max-width:560px;color:var(--vscode-descriptionForeground,var(--muted-foreground));font-size:9.5px;line-height:1.45}.architecture-map-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.architecture-map-viewport{overscroll-behavior:contain;scrollbar-color:var(--vscode-scrollbarSlider-background,var(--muted)) transparent;scrollbar-gutter:stable;min-width:0;height:auto;min-height:0;box-shadow:inset -26px 0 22px -24px var(--foreground);position:relative;overflow:auto}@supports (color:color-mix(in lab,red,red)){.architecture-map-viewport{box-shadow:inset -26px 0 22px -24px color-mix(in srgb,var(--foreground) 30%,transparent)}}.architecture-map-viewport{background:linear-gradient(var(--vscode-editorRuler-foreground,var(--border)) 1px,transparent 1px),linear-gradient(90deg,var(--vscode-editorRuler-foreground,var(--border)) 1px,transparent 1px),var(--architecture-surface)}@supports (color:color-mix(in lab,red,red)){.architecture-map-viewport{background:linear-gradient(color-mix(in srgb,var(--vscode-editorRuler-foreground,var(--border)) 9%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--vscode-editorRuler-foreground,var(--border)) 9%,transparent) 1px,transparent 1px),var(--architecture-surface)}}.architecture-map-viewport{background-size:32px 32px}.architecture-map-viewport[data-scroll-position=end],.architecture-map-viewport[data-scroll-position=none]{box-shadow:none}.architecture-map-canvas{min-width:100%;min-height:100%}.architecture-route-mode{border:1px solid var(--architecture-border);background:var(--architecture-surface);border-radius:5px;display:flex;overflow:hidden}.architecture-route-mode button{min-width:66px;height:27px;color:var(--vscode-descriptionForeground,var(--muted-foreground));font:9px/1 var(--compass-font-mono);background:0 0;border:0;padding:0 9px}.architecture-route-mode button+button{border-left:1px solid var(--architecture-border)}.architecture-route-mode button:hover{background:var(--vscode-toolbar-hoverBackground,var(--workbench-hover));color:var(--vscode-foreground,var(--foreground))}.architecture-route-mode button[aria-pressed=true]{background:var(--vscode-list-activeSelectionBackground,var(--accent))}@supports (color:color-mix(in lab,red,red)){.architecture-route-mode button[aria-pressed=true]{background:color-mix(in srgb,var(--vscode-list-activeSelectionBackground,var(--accent)) 72%,var(--architecture-raised))}}.architecture-route-mode button[aria-pressed=true]{color:var(--vscode-list-activeSelectionForeground,var(--foreground))}.architecture-map-toolbar{border:1px solid var(--architecture-border);background:var(--architecture-surface);border-radius:5px;align-items:center;display:flex;overflow:hidden}.architecture-map-toolbar button{width:28px;height:27px;color:var(--foreground);background:0 0;border:0;place-items:center;display:grid}.architecture-map-toolbar button:hover{background:var(--workbench-hover)}.architecture-map-toolbar button:disabled{opacity:.38;pointer-events:none}.architecture-map-toolbar button+button,.architecture-map-toolbar span+button{border-left:1px solid var(--architecture-border)}.architecture-map-toolbar svg{width:13px;height:13px}.architecture-map-toolbar span{min-width:40px;color:var(--muted-foreground);font:9px/27px var(--compass-font-mono);text-align:center;padding:0 5px}.architecture-map{cursor:grab;touch-action:none;width:100%;height:100%;display:block}.architecture-map:active{cursor:grabbing}.architecture-arrow-default path{fill:var(--vscode-textLink-foreground,var(--compass-focus))}.architecture-arrow-incoming path{fill:var(--vscode-symbolIcon-interfaceForeground,#b7a1ff)}.architecture-arrow-outgoing path{fill:var(--vscode-charts-blue,#49a6ff)}.architecture-map-lanes{pointer-events:none}.architecture-map-lanes rect{fill:var(--architecture-raised)}@supports (color:color-mix(in lab,red,red)){.architecture-map-lanes rect{fill:color-mix(in srgb,var(--architecture-raised) 8%,transparent)}}.architecture-map-lanes rect{stroke:var(--architecture-border)}@supports (color:color-mix(in lab,red,red)){.architecture-map-lanes rect{stroke:color-mix(in srgb,var(--architecture-border) 20%,transparent)}}.architecture-map-lanes rect{stroke-width:1px}.architecture-map-lanes text{fill:var(--vscode-descriptionForeground,var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.architecture-map-lanes text{fill:color-mix(in srgb,var(--vscode-descriptionForeground,var(--muted-foreground)) 72%,transparent)}}.architecture-map-lanes text{font:700 8px/1 var(--compass-font-mono);letter-spacing:.12em;text-anchor:middle;text-transform:uppercase}.architecture-map-lanes .architecture-map-direction{fill:var(--vscode-descriptionForeground,var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.architecture-map-lanes .architecture-map-direction{fill:color-mix(in srgb,var(--vscode-descriptionForeground,var(--muted-foreground)) 52%,transparent)}}.architecture-map-lanes .architecture-map-direction{letter-spacing:.16em;text-anchor:start;font-size:7px}.architecture-route-line{fill:none;stroke:var(--vscode-textLink-foreground,var(--compass-focus));opacity:var(--architecture-route-opacity,.2);stroke-linecap:round;stroke-linejoin:round;transition:opacity .14s,stroke-width .14s}.architecture-routes g[data-evidence=inferred] .architecture-route-line{stroke:var(--vscode-editorWarning-foreground,var(--warning));stroke-dasharray:6 5}.architecture-routes g[data-direction=backward] .architecture-route-line{stroke-dasharray:3 5}.architecture-route-hit{fill:none;stroke:#0000;stroke-width:16px;cursor:pointer}.architecture-routes g[data-selected=true] .architecture-route-line{opacity:1;filter:drop-shadow(0 0 3px var(--compass-focus))}@supports (color:color-mix(in lab,red,red)){.architecture-routes g[data-selected=true] .architecture-route-line{filter:drop-shadow(0 0 3px color-mix(in srgb,var(--compass-focus) 55%,transparent))}}.architecture-routes g[data-focus-direction=incoming] .architecture-route-line{stroke:var(--vscode-symbolIcon-interfaceForeground,#b7a1ff);opacity:.86}.architecture-routes g[data-focus-direction=outgoing] .architecture-route-line{stroke:var(--vscode-charts-blue,#49a6ff);opacity:.9}.architecture-routes g[data-dimmed=true]{opacity:.09}.architecture-map-panel[data-route-mode=key] .architecture-routes g[data-dimmed=true]{opacity:.38}.architecture-map-nodes g[data-dimmed=true]{opacity:.27}.architecture-map-panel[data-route-mode=key] .architecture-map-nodes g[data-dimmed=true]{opacity:.48}.architecture-routes g:focus-visible .architecture-route-line{stroke:var(--vscode-focusBorder,var(--ring));opacity:1}.architecture-map-nodes g{cursor:grab;touch-action:none;transition:opacity .12s}.architecture-map-nodes g[data-dragging=true]{cursor:grabbing}.architecture-map-node-card{fill:var(--vscode-editorWidget-background,var(--card));stroke:var(--vscode-symbolIcon-moduleForeground,var(--compass-focus))}@supports (color:color-mix(in lab,red,red)){.architecture-map-node-card{stroke:color-mix(in srgb,var(--vscode-symbolIcon-moduleForeground,var(--compass-focus)) 25%,var(--architecture-border))}}.architecture-map-node-card{stroke-width:1px}.architecture-map-node-shadow{fill:#0000002b;stroke:none;transform:translateY(3px)}.architecture-map-node-accent{fill:var(--vscode-symbolIcon-moduleForeground,var(--compass-focus));opacity:.62;pointer-events:none}.architecture-map-nodes g:hover .architecture-map-node-card,.architecture-map-nodes g:focus-visible .architecture-map-node-card,.architecture-map-nodes g[data-selected=true] .architecture-map-node-card,.architecture-map-nodes g[data-dragging=true] .architecture-map-node-card{fill:var(--vscode-list-activeSelectionBackground,var(--accent))}@supports (color:color-mix(in lab,red,red)){.architecture-map-nodes g:hover .architecture-map-node-card,.architecture-map-nodes g:focus-visible .architecture-map-node-card,.architecture-map-nodes g[data-selected=true] .architecture-map-node-card,.architecture-map-nodes g[data-dragging=true] .architecture-map-node-card{fill:color-mix(in srgb,var(--vscode-list-activeSelectionBackground,var(--accent)) 38%,var(--vscode-editorWidget-background,var(--card)))}}.architecture-map-nodes g:hover .architecture-map-node-card,.architecture-map-nodes g:focus-visible .architecture-map-node-card,.architecture-map-nodes g[data-selected=true] .architecture-map-node-card,.architecture-map-nodes g[data-dragging=true] .architecture-map-node-card{stroke:var(--vscode-focusBorder,var(--ring));stroke-width:1.6px}.architecture-map-nodes g[data-selected=true] .architecture-map-node-accent,.architecture-map-nodes g[data-dragging=true] .architecture-map-node-accent{opacity:1}.architecture-map-nodes g[data-dragging=true] .architecture-map-node-shadow{transform:translateY(7px)}.architecture-map-node-name{fill:var(--vscode-editor-foreground,var(--foreground));font:650 12px/1.2 var(--vscode-font-family,system-ui);pointer-events:none}.architecture-map-node-meta{fill:var(--vscode-descriptionForeground,var(--muted-foreground));font:8.5px/1.2 var(--compass-font-mono);pointer-events:none}.architecture-map-node-grip{fill:var(--vscode-descriptionForeground,var(--muted-foreground));opacity:.45;pointer-events:none}.architecture-map-nodes g:hover .architecture-map-node-grip,.architecture-map-nodes g[data-dragging=true] .architecture-map-node-grip{opacity:.9}.architecture-map-legend{min-width:0;color:var(--muted-foreground);font:8px/1.2 var(--compass-font-mono);flex-wrap:wrap;gap:7px 12px;display:flex}.architecture-map-legend span{align-items:center;gap:4px;display:inline-flex}.architecture-map-legend button{color:var(--vscode-textLink-foreground,var(--workbench-link));font:inherit;background:0 0;border:0;padding:0}.architecture-map-legend button:hover{text-decoration:underline}.architecture-map-legend i,.architecture-map-legend svg{background:var(--vscode-textLink-foreground,var(--compass-focus));flex:none;width:18px;height:2px}.architecture-map-legend svg{background:0 0;width:11px;height:11px}.architecture-map-legend i[data-evidence=inferred]{background:repeating-linear-gradient(90deg,var(--vscode-editorWarning-foreground,var(--warning)) 0 4px,transparent 4px 7px)}.architecture-map-legend i[data-direction=incoming]{background:var(--vscode-symbolIcon-interfaceForeground,#b7a1ff)}.architecture-map-legend i[data-direction=outgoing]{background:var(--vscode-charts-blue,#49a6ff)}.architecture-map-legend i[data-direction=bidirectional]{width:18px;height:12px;color:var(--vscode-textLink-foreground,var(--compass-focus));font:normal 10px/1 var(--compass-font-mono);background:0 0;place-items:center;display:grid}.architecture-map-legend i[data-direction=feedback]{background:repeating-linear-gradient(90deg,var(--vscode-textLink-foreground,var(--compass-focus)) 0 3px,transparent 3px 6px)}.architecture-map-table{flex:none;min-width:0;font-size:9px}.architecture-map-table summary{cursor:pointer;color:var(--muted-foreground);white-space:nowrap;padding:3px 0}.architecture-map-table[open]>div{z-index:8;border:1px solid var(--architecture-border);background:var(--architecture-raised);border-radius:6px;width:min(620px,100% - 24px);max-height:280px;position:absolute;bottom:42px;right:12px;overflow:auto;box-shadow:0 8px 24px #00000038}.architecture-map-table table{border-collapse:collapse;table-layout:fixed;width:100%}.architecture-map-table th,.architecture-map-table td{border-top:1px solid var(--architecture-border);overflow-wrap:anywhere;text-align:left;padding:5px 7px}.architecture-map-empty{min-width:min(100%,760px);min-height:100%;color:var(--muted-foreground);text-align:center;align-content:center;place-items:center;gap:5px;padding:30px;font-size:11px;display:grid}.architecture-map-empty strong{color:var(--foreground);font-size:12px}.architecture-map-footer{border-top:1px solid var(--architecture-border);background:var(--architecture-raised);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 18px;min-width:0;min-height:40px;padding:8px 12px;display:flex;position:relative}.architecture-inspector{border-left:1px solid var(--architecture-border);grid-template-rows:auto auto auto 1fr auto;display:grid}.architecture-route-metrics,.architecture-evidence-counts{color:var(--muted-foreground);font:9px/1.3 var(--compass-font-mono);flex-wrap:wrap;gap:5px 12px;margin-top:9px;display:flex}.architecture-route-metrics span{align-items:center;gap:3px;display:inline-flex}.architecture-route-metrics svg{width:11px;height:11px}.architecture-inspector-tabs{border-bottom:1px solid var(--architecture-border);display:flex}.architecture-inspector-tabs button{min-height:32px;color:var(--muted-foreground);background:0 0;border:0;flex:1;font-size:10px;position:relative}.architecture-inspector-tabs button[aria-selected=true]{color:var(--foreground)}.architecture-inspector-tabs button[aria-selected=true]:after{background:var(--vscode-focusBorder,var(--ring));content:"";height:2px;position:absolute;bottom:-1px;left:10px;right:10px}.architecture-detail-filter{border-bottom:1px solid var(--architecture-border);padding:8px 10px;display:block;position:relative}.architecture-detail-filter>svg{left:19px}.architecture-inspector-scroll{min-height:0;padding:8px;overflow:auto}.architecture-symbol-list,.architecture-call-list{gap:6px;display:grid}.architecture-symbol-list article,.architecture-call-list article{border:1px solid var(--architecture-border);background:var(--vscode-editorWidget-background,var(--card));border-radius:5px;min-width:0;padding:9px}.architecture-symbol-list article{grid-template-columns:16px minmax(0,1fr);gap:7px;display:grid}.architecture-symbol-list svg{width:14px;height:14px;color:var(--vscode-symbolIcon-functionForeground,var(--compass-focus))}.architecture-symbol-list strong,.architecture-symbol-list small,.architecture-symbol-list article button,.architecture-symbol-list article span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.architecture-symbol-list strong,.architecture-call-list strong{font-size:10px;font-weight:600}.architecture-symbol-list small,.architecture-call-list small{color:var(--muted-foreground);font:8.5px/1.35 var(--compass-font-mono);margin-top:2px}.architecture-symbol-list article button,.architecture-symbol-list article span{width:100%;color:var(--vscode-textLink-foreground,var(--workbench-link));font:8.5px/1.3 var(--compass-font-mono);text-align:left;background:0 0;border:0;margin-top:7px;padding:0}.architecture-symbol-list article span{color:var(--vscode-disabledForeground,var(--muted-foreground))}.architecture-call-list article>div:first-child{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:5px;display:grid}.architecture-call-list article>div:first-child strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.architecture-call-list article>div:first-child span{color:var(--vscode-textLink-foreground,var(--compass-focus))}.architecture-call-list article>div:last-child{gap:8px;margin-top:7px;display:flex}.architecture-call-list button{color:var(--vscode-textLink-foreground,var(--workbench-link));background:0 0;border:0;padding:0;font-size:8.5px}.architecture-call-list button:hover,.architecture-symbol-list button:hover{text-decoration:underline}.architecture-inspector>.workbench-pagination{border-top:1px solid var(--architecture-border);padding:7px 9px}.architecture-inspector-empty{min-height:160px;color:var(--muted-foreground);text-align:center;place-items:center;padding:24px;font-size:10px;line-height:1.5;display:grid}.architecture-loading-rows{gap:7px;display:grid}.architecture-loading-rows i{border:1px solid var(--architecture-border);background:linear-gradient(90deg,var(--architecture-raised),var(--architecture-raised),var(--architecture-raised));border-radius:5px;height:58px}@supports (color:color-mix(in lab,red,red)){.architecture-loading-rows i{background:linear-gradient(90deg,var(--architecture-raised),color-mix(in srgb,var(--architecture-raised) 72%,var(--foreground)),var(--architecture-raised))}}.architecture-loading-rows i{background-size:240% 100%;animation:1.3s infinite architecture-row-load}@keyframes architecture-row-load{to{background-position:-140% 0}}.architecture-workspace button:focus-visible,.architecture-workspace [role=button]:focus-visible,.architecture-workspace select:focus-visible,.architecture-workspace input:focus-visible,.architecture-workspace summary:focus-visible{outline:2px solid var(--vscode-focusBorder,var(--ring));outline-offset:-1px}body.vscode-high-contrast .architecture-map-node-card,body.vscode-high-contrast-light .architecture-map-node-card,body.vscode-high-contrast .architecture-map-panel,body.vscode-high-contrast-light .architecture-map-panel,body.vscode-high-contrast .architecture-symbol-list article,body.vscode-high-contrast-light .architecture-symbol-list article,body.vscode-high-contrast .architecture-call-list article,body.vscode-high-contrast-light .architecture-call-list article{stroke:var(--vscode-contrastBorder,var(--ring));border-color:var(--vscode-contrastBorder,var(--ring));stroke-width:2px}body.vscode-high-contrast .architecture-map-panel,body.vscode-high-contrast-light .architecture-map-panel{box-shadow:none;border-width:2px}@media(max-width:1100px){.architecture-workspace{grid-template-columns:200px minmax(440px,1fr) 300px}.architecture-workspace[data-inspector-open=false]{grid-template-columns:200px minmax(440px,1fr)}.architecture-command-bar{grid-template-columns:minmax(220px,1fr) auto 30px}.architecture-evidence-filter{grid-area:2/2}.architecture-inspector-toggle{grid-area:1/3}}@media(max-width:1180px){.architecture-workspace{grid-template-rows:minmax(650px,78vh) auto;grid-template-columns:minmax(190px,220px) minmax(0,1fr);height:auto;min-height:100vh;overflow:auto}.architecture-workspace[data-inspector-open=false]{grid-template-columns:minmax(190px,220px) minmax(0,1fr)}.architecture-rail{grid-row:1/span 2}.architecture-stage{min-height:650px}.architecture-inspector{border-top:1px solid var(--architecture-border);border-left:0;height:min(560px,72vh);min-height:440px;overflow:hidden}}@media(max-width:620px){.architecture-workspace{display:block}.architecture-rail{border-right:0;border-bottom:1px solid var(--architecture-border);max-height:310px}.architecture-rail nav{max-height:190px}.architecture-stage{min-height:650px}.architecture-command-bar{grid-template-columns:1fr}.architecture-evidence-filter,.architecture-inspector-toggle{grid-area:auto}.architecture-map-legend{display:none}}@media(prefers-reduced-motion:reduce){.architecture-route-line,.architecture-map-nodes g{transition:none}.architecture-loading-rows i{animation:none}}.call-guide-shell{box-sizing:border-box;background:radial-gradient(circle at 77% 8%,var(--compass-focus),transparent 28rem),var(--vscode-editor-background,var(--background));min-height:100vh;padding:clamp(28px,5vw,72px) clamp(20px,5vw,72px) 40px;position:relative;overflow:auto}@supports (color:color-mix(in lab,red,red)){.call-guide-shell{background:radial-gradient(circle at 77% 8%,color-mix(in srgb,var(--compass-focus) 9%,transparent),transparent 28rem),var(--vscode-editor-background,var(--background))}}.call-guide-shell{isolation:isolate}.call-guide-grid{z-index:-1;opacity:.19;background-image:linear-gradient(var(--compass-grid) 1px,transparent 1px),linear-gradient(90deg,var(--compass-grid) 1px,transparent 1px);pointer-events:none;background-size:32px 32px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 68%);mask-image:linear-gradient(#000,#0000 68%)}.call-guide-hero,.call-guide-section,.call-guide-footer{width:min(1120px,100%);margin-inline:auto}.call-guide-hero{border-bottom:1px solid var(--vscode-panel-border,var(--border));grid-template-columns:minmax(300px,.9fr) minmax(420px,1.1fr);align-items:center;gap:clamp(40px,7vw,96px);min-height:330px;padding-bottom:clamp(36px,5vw,64px);display:grid}.call-guide-kicker,.call-guide-overline,.call-guide-route-label,.call-guide-route-readout,.call-guide-shortcut,.call-guide-coverage-badge{font-family:var(--compass-font-mono);text-transform:uppercase;letter-spacing:.12em}.call-guide-kicker{color:var(--vscode-textLink-foreground,var(--compass-focus));align-items:center;gap:8px;font-size:10px;font-weight:700;display:inline-flex}.call-guide-kicker svg{width:14px;height:14px}.call-guide-intro h1{max-width:650px;color:var(--vscode-editor-foreground,var(--foreground));letter-spacing:-.052em;text-wrap:balance;margin:18px 0 0;font-size:clamp(34px,5vw,62px);font-weight:620;line-height:.98}.call-guide-lead{max-width:580px;color:var(--vscode-descriptionForeground,var(--muted-foreground));margin:22px 0 0;font-size:clamp(14px,1.7vw,17px);line-height:1.65}.call-guide-source{border:1px solid var(--vscode-panel-border,var(--border));background:var(--vscode-editorWidget-background,var(--card));border-radius:4px;align-items:center;gap:8px;max-width:min(100%,560px);min-height:34px;margin-top:24px;padding:0 10px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.call-guide-source{background:color-mix(in srgb,var(--vscode-editorWidget-background,var(--card)) 88%,transparent)}}.call-guide-source{color:var(--vscode-descriptionForeground,var(--muted-foreground));font:11px/1.3 var(--compass-font-mono)}.call-guide-source>span:not(.call-guide-source-light){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.call-guide-source>svg{flex:none;width:14px;height:14px}.call-guide-source code{border-left:1px solid var(--vscode-panel-border,var(--border));color:var(--vscode-textLink-foreground,var(--compass-focus));font:inherit;flex:none;margin-left:3px;padding-left:9px}.call-guide-source-light{background:var(--vscode-disabledForeground,var(--compass-faint));border-radius:50%;flex:none;width:6px;height:6px}.call-guide-source[data-ready=true] .call-guide-source-light{background:var(--vscode-testing-iconPassed,var(--compass-success));box-shadow:0 0 9px var(--vscode-testing-iconPassed,var(--compass-success))}@supports (color:color-mix(in lab,red,red)){.call-guide-source[data-ready=true] .call-guide-source-light{box-shadow:0 0 9px color-mix(in srgb,var(--vscode-testing-iconPassed,var(--compass-success)) 60%,transparent)}}.call-guide-route{border:1px solid var(--vscode-panel-border,var(--border));background:linear-gradient(135deg,var(--vscode-editorWidget-background,var(--card)),var(--vscode-editor-background,var(--background)));border-radius:8px;padding:16px;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.call-guide-route{background:linear-gradient(135deg,color-mix(in srgb,var(--vscode-editorWidget-background,var(--card)) 94%,transparent),color-mix(in srgb,var(--vscode-editor-background,var(--background)) 82%,transparent))}}.call-guide-route{box-shadow:0 24px 70px #00000038}.call-guide-route:before{content:"";border:1px solid var(--compass-focus);width:230px;height:230px;position:absolute;top:46%;left:50%}@supports (color:color-mix(in lab,red,red)){.call-guide-route:before{border:1px solid color-mix(in srgb,var(--compass-focus) 14%,transparent)}}.call-guide-route:before{box-shadow:0 0 0 44px var(--compass-focus),0 0 0 88px var(--compass-focus);border-radius:50%;transform:translate(-50%,-50%)}@supports (color:color-mix(in lab,red,red)){.call-guide-route:before{box-shadow:0 0 0 44px color-mix(in srgb,var(--compass-focus) 3%,transparent),0 0 0 88px color-mix(in srgb,var(--compass-focus) 2%,transparent)}}.call-guide-route:before{pointer-events:none}.call-guide-route-label,.call-guide-route-readout{z-index:2;color:var(--vscode-disabledForeground,var(--compass-faint));justify-content:space-between;font-size:9px;display:flex;position:relative}.call-guide-route-label code{color:var(--vscode-textLink-foreground,var(--compass-focus));font:inherit;text-transform:none}.call-guide-route-stage{z-index:1;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:13%;min-height:226px;display:grid;position:relative}.call-guide-route-node{border:1px solid var(--vscode-panel-border,var(--border));background:var(--vscode-editor-background,var(--background));border-radius:5px;flex-direction:column;gap:4px;min-width:0;padding:12px;display:flex;position:relative;box-shadow:0 12px 32px #0003}.call-guide-route-node>span{color:var(--vscode-descriptionForeground,var(--muted-foreground));font:8px/1 var(--compass-font-mono);letter-spacing:.12em}.call-guide-route-node strong{color:var(--vscode-editor-foreground,var(--foreground));font:600 11px/1.3 var(--compass-font-mono);text-overflow:ellipsis;overflow:hidden}.call-guide-route-node small{color:var(--vscode-descriptionForeground,var(--muted-foreground));text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.call-guide-route-current{border-color:var(--vscode-focusBorder,var(--compass-focus));background:var(--vscode-focusBorder,var(--compass-focus));align-items:center;padding-block:17px}@supports (color:color-mix(in lab,red,red)){.call-guide-route-current{background:color-mix(in srgb,var(--vscode-focusBorder,var(--compass-focus)) 9%,var(--vscode-editor-background,var(--background)))}}.call-guide-route-current{text-align:center;box-shadow:0 0 0 1px var(--compass-focus),0 15px 40px var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.call-guide-route-current{box-shadow:0 0 0 1px color-mix(in srgb,var(--compass-focus) 16%,transparent),0 15px 40px color-mix(in srgb,var(--compass-focus) 14%,transparent)}}.call-guide-route-current>svg{width:17px;height:17px;color:var(--vscode-textLink-foreground,var(--compass-focus));margin-bottom:3px}.call-guide-route-line{z-index:-1;background:var(--compass-focus);width:32%;height:1px;position:absolute;top:50%;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.call-guide-route-line{background:color-mix(in srgb,var(--compass-focus) 44%,var(--border))}}.call-guide-route-line-in{left:18%}.call-guide-route-line-out{right:18%}.call-guide-route-line i{background:var(--vscode-focusBorder,var(--compass-focus));width:5px;height:5px;box-shadow:0 0 9px var(--vscode-focusBorder,var(--compass-focus));border-radius:50%;animation:2.2s linear infinite call-guide-trace;position:absolute;top:-2px}.call-guide-route-line-out i{animation-delay:1.1s}@keyframes call-guide-trace{0%{left:-8px}to{left:calc(100% + 8px)}}.call-guide-route-readout{border-top:1px solid var(--vscode-panel-border,var(--border));letter-spacing:.08em;padding-top:11px}.call-guide-section{border-bottom:1px solid var(--vscode-panel-border,var(--border));padding-block:clamp(34px,5vw,58px)}.call-guide-heading{justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:24px;display:flex}.call-guide-overline{color:var(--vscode-textLink-foreground,var(--compass-focus));margin-bottom:7px;font-size:9px;font-weight:700;display:block}.call-guide-heading h2{color:var(--vscode-editor-foreground,var(--foreground));letter-spacing:-.025em;margin:0;font-size:clamp(19px,2.4vw,26px);font-weight:600}.call-guide-heading>p{max-width:420px;color:var(--vscode-descriptionForeground,var(--muted-foreground));text-align:right;margin:0;font-size:11px;line-height:1.5}.call-guide-shortcut{color:var(--vscode-descriptionForeground,var(--muted-foreground));white-space:nowrap;align-items:center;gap:7px;font-size:9px;display:inline-flex}.call-guide-shortcut svg{width:12px;height:12px;color:var(--vscode-textLink-foreground,var(--compass-focus))}.call-guide-steps{grid-template-columns:minmax(170px,.8fr) minmax(340px,1.45fr) minmax(170px,.8fr);gap:10px;margin:0;padding:0;list-style:none;display:grid}.call-guide-steps>li{border:1px solid var(--vscode-panel-border,var(--border));background:var(--vscode-editorWidget-background,var(--card));border-radius:5px;align-content:start;gap:17px;min-height:168px;padding:18px;display:grid;position:relative}@supports (color:color-mix(in lab,red,red)){.call-guide-steps>li{background:color-mix(in srgb,var(--vscode-editorWidget-background,var(--card)) 72%,transparent)}}.call-guide-steps>li>svg{width:22px;height:22px;color:var(--vscode-textLink-foreground,var(--compass-focus))}.call-guide-step-number{color:var(--vscode-disabledForeground,var(--compass-faint));font:9px/1 var(--compass-font-mono);letter-spacing:.1em;position:absolute;top:17px;right:17px}.call-guide-steps h3{color:var(--vscode-editor-foreground,var(--foreground));margin:0;font-size:13px;font-weight:600}.call-guide-steps p{color:var(--vscode-descriptionForeground,var(--muted-foreground));margin:6px 0 0;font-size:11px;line-height:1.5}.call-guide-step-menu{grid-template-columns:minmax(150px,.85fr) minmax(195px,1.15fr);align-items:center}.call-guide-menu-preview{min-width:0;padding-right:44%;font-size:10px;position:relative}.call-guide-menu-parent,.call-guide-submenu{border:1px solid var(--vscode-menu-border,var(--border));background:var(--vscode-menu-background,var(--popover));color:var(--vscode-menu-foreground,var(--popover-foreground));border-radius:4px;box-shadow:0 12px 30px #00000040}.call-guide-menu-parent{border-color:var(--vscode-focusBorder,var(--compass-focus));background:var(--vscode-menu-selectionBackground,var(--accent));min-height:31px;color:var(--vscode-menu-selectionForeground,var(--accent-foreground));grid-template-columns:15px 1fr 13px;align-items:center;gap:7px;padding:0 8px;display:grid}.call-guide-menu-parent svg,.call-guide-submenu svg{width:13px;height:13px}.call-guide-submenu{z-index:2;width:58%;min-width:165px;padding:4px;position:absolute;top:22px;right:0}.call-guide-submenu span{white-space:nowrap;border-radius:2px;align-items:center;gap:7px;min-height:26px;padding:0 7px;display:flex}.call-guide-submenu span.is-active{background:var(--vscode-menu-selectionBackground,var(--accent));color:var(--vscode-menu-selectionForeground,var(--accent-foreground))}.call-guide-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.call-guide-action{border:1px solid var(--vscode-panel-border,var(--border));background:var(--vscode-editorWidget-background,var(--card));min-height:104px;color:var(--vscode-editor-foreground,var(--foreground));font:inherit;text-align:left;border-radius:5px;outline:none;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:18px;transition:border-color .14s,background .14s,transform .14s;display:grid;position:relative}.call-guide-action:not(:disabled):hover{border-color:var(--vscode-focusBorder,var(--compass-focus));background:var(--vscode-list-hoverBackground,var(--workbench-hover))}@supports (color:color-mix(in lab,red,red)){.call-guide-action:not(:disabled):hover{background:color-mix(in srgb,var(--vscode-list-hoverBackground,var(--workbench-hover)) 70%,var(--vscode-editorWidget-background,var(--card)))}}.call-guide-action:not(:disabled):hover{transform:translateY(-2px)}.call-guide-action:focus-visible,.call-guide-walkthrough:focus-visible{outline:2px solid var(--vscode-focusBorder,var(--ring));outline-offset:2px}.call-guide-action:disabled{cursor:not-allowed;opacity:.46}.call-guide-action[data-primary=true]{border-color:var(--vscode-focusBorder,var(--compass-focus))}@supports (color:color-mix(in lab,red,red)){.call-guide-action[data-primary=true]{border-color:color-mix(in srgb,var(--vscode-focusBorder,var(--compass-focus)) 72%,var(--border))}}.call-guide-action[data-primary=true]{background:linear-gradient(130deg,var(--vscode-focusBorder,var(--compass-focus)),transparent 58%),var(--vscode-editorWidget-background,var(--card))}@supports (color:color-mix(in lab,red,red)){.call-guide-action[data-primary=true]{background:linear-gradient(130deg,color-mix(in srgb,var(--vscode-focusBorder,var(--compass-focus)) 13%,transparent),transparent 58%),var(--vscode-editorWidget-background,var(--card))}}.call-guide-action-icon{border:1px solid var(--vscode-panel-border,var(--border));background:var(--vscode-editor-background,var(--background));width:34px;height:34px;color:var(--vscode-textLink-foreground,var(--compass-focus));border-radius:4px;place-items:center;display:grid}.call-guide-action-icon svg{width:16px;height:16px}.call-guide-action strong,.call-guide-action small{display:block}.call-guide-action strong{font-size:12px;font-weight:600}.call-guide-action small{color:var(--vscode-descriptionForeground,var(--muted-foreground));margin-top:5px;font-size:10px}.call-guide-action-arrow{width:15px;height:15px;color:var(--vscode-disabledForeground,var(--compass-faint));transition:transform .14s}.call-guide-action:not(:disabled):hover .call-guide-action-arrow{color:var(--vscode-textLink-foreground,var(--compass-focus));transform:translate(3px)}.call-guide-action em{color:var(--vscode-textLink-foreground,var(--compass-focus));font:normal 8px/1 var(--compass-font-mono);letter-spacing:.08em;text-transform:uppercase;position:absolute;top:8px;right:8px}.call-guide-footer{justify-content:space-between;align-items:center;gap:30px;padding-top:24px;display:flex}.call-guide-coverage{align-items:center;gap:13px;max-width:760px;display:flex}.call-guide-coverage-badge{border:1px solid var(--vscode-testing-iconPassed,var(--compass-success));flex:none;padding:5px 7px}@supports (color:color-mix(in lab,red,red)){.call-guide-coverage-badge{border:1px solid color-mix(in srgb,var(--vscode-testing-iconPassed,var(--compass-success)) 50%,var(--border))}}.call-guide-coverage-badge{color:var(--vscode-testing-iconPassed,var(--compass-success));border-radius:3px;font-size:8px;font-weight:700}.call-guide-coverage p{color:var(--vscode-descriptionForeground,var(--muted-foreground));margin:0;font-size:10px;line-height:1.55}.call-guide-walkthrough{color:var(--vscode-textLink-foreground,var(--compass-focus));font:11px/1 var(--compass-font-sans);background:0 0;border:0;outline:none;flex:none;align-items:center;gap:7px;padding:7px 0;display:inline-flex}.call-guide-walkthrough svg{width:14px;height:14px}.call-guide-walkthrough svg:last-child{width:12px;transition:transform .14s}.call-guide-walkthrough:hover svg:last-child{transform:translate(2px)}body.vscode-high-contrast .call-guide-route,body.vscode-high-contrast-light .call-guide-route,body.vscode-high-contrast .call-guide-steps>li,body.vscode-high-contrast-light .call-guide-steps>li,body.vscode-high-contrast .call-guide-action,body.vscode-high-contrast-light .call-guide-action{border-width:2px;border-color:var(--vscode-contrastBorder,var(--ring))}@media(max-width:900px){.call-guide-hero{grid-template-columns:1fr;gap:32px}.call-guide-route{box-sizing:border-box;width:min(620px,100%)}.call-guide-steps{grid-template-columns:1fr 1fr}.call-guide-step-menu{grid-area:2/1/auto/-1}}@media(max-width:680px){.call-guide-shell{padding-inline:16px}.call-guide-heading,.call-guide-footer{flex-direction:column;align-items:flex-start}.call-guide-heading>p{text-align:left}.call-guide-shortcut{display:none}.call-guide-steps,.call-guide-actions{grid-template-columns:1fr}.call-guide-step-menu{grid-area:auto;grid-template-columns:1fr}.call-guide-menu-preview{padding-right:min(42%,180px)}.call-guide-coverage{flex-direction:column;align-items:flex-start}}@media(max-width:440px){.call-guide-route-stage{gap:5%}.call-guide-route-node{padding:9px 7px}.call-guide-route-node small{display:none}.call-guide-menu-preview{padding:0}.call-guide-submenu{width:auto;margin:6px 0 0 18px;position:relative;top:auto}}@media(prefers-reduced-motion:reduce){.call-guide-route-line i{animation:none}.call-guide-action,.call-guide-action-arrow,.call-guide-walkthrough svg:last-child{transition:none}}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{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:"";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:"";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:"";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:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}} +@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-border-style:solid;--tw-font-weight: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-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--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 ;--font-weight-medium:500;--radius-md:calc(var(--radius) - 2px);--radius-4xl:2rem;--animate-spin:spin 1s linear infinite;--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(--compass-font-sans);--default-mono-font-family:var(--compass-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%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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:where(:not(iframe)){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]){appearance:button}::file-selector-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{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.top-2{top:calc(var(--spacing) * 2)}.right-2{right:calc(var(--spacing) * 2)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.isolate{isolation:isolate}.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}}.mt-2{margin-top:calc(var(--spacing) * 2)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-full{width:100%;height:100%}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-screen{height:100vh}.max-h-24{max-height:calc(var(--spacing) * 24)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[min\(44rem\,calc\(100\%-1\.5rem\)\)\]{max-width:min(44rem,100% - 1.5rem)}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-7{min-width:calc(var(--spacing) * 7)}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-9{min-width:calc(var(--spacing) * 9)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y: calc(-50% - 2px) ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-45{rotate:45deg}.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)}.animate-spin{animation:var(--animate-spin)}.touch-none{touch-action:none}.resize{resize:both}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-\[--spacing\(var\(--gap\)\)\]{gap:calc(var(--spacing) * var(--gap))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded-4xl{border-radius:var(--radius-4xl)}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md),10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md),12px)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-border{border-color:var(--border)}.border-destructive\/50{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/50{border-color:color-mix(in oklab,var(--destructive) 50%,transparent)}}.border-input{border-color:var(--input)}.border-transparent{border-color:#0000}.bg-background,.bg-background\/95{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/95{background-color:color-mix(in oklab,var(--background) 95%,transparent)}}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.bg-foreground{background-color:var(--foreground)}.bg-muted{background-color:var(--muted)}.bg-popover\/95{background-color:var(--popover)}@supports (color:color-mix(in lab,red,red)){.bg-popover\/95{background-color:color-mix(in oklab,var(--popover) 95%,transparent)}}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.bg-clip-padding{background-clip:padding-box}.fill-foreground{fill:var(--foreground)}.p-1{padding:var(--spacing)}.p-3{padding:calc(var(--spacing) * 3)}.p-\[3px\]{padding:3px}.p-px{padding:1px}.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)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.text-left{text-align:left}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.text-background{color:var(--background)}.text-card-foreground{color:var(--card-foreground)}.text-destructive{color:var(--destructive)}.text-foreground,.text-foreground\/60{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/60{color:color-mix(in oklab,var(--foreground) 60%,transparent)}}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.underline-offset-4{text-underline-offset:4px}.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-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)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + 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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.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,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.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-\[color\,box-shadow\]{transition-property:color,box-shadow;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))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.paused{animation-play-state:paused}.running{animation-play-state:running}.group-has-\[\>svg\]\/alert\:col-start-2:is(:where(.group\/alert):has(>svg) *){grid-column-start:2}.group-data-\[orientation\=horizontal\]\/tabs\:h-8:is(:where(.group\/tabs)[data-orientation=horizontal] *){height:calc(var(--spacing) * 8)}.group-data-\[orientation\=vertical\]\/tabs\:h-fit:is(:where(.group\/tabs)[data-orientation=vertical] *){height:fit-content}.group-data-\[orientation\=vertical\]\/tabs\:w-full:is(:where(.group\/tabs)[data-orientation=vertical] *){width:100%}.group-data-\[orientation\=vertical\]\/tabs\:flex-col:is(:where(.group\/tabs)[data-orientation=vertical] *){flex-direction:column}.group-data-\[orientation\=vertical\]\/tabs\:justify-start:is(:where(.group\/tabs)[data-orientation=vertical] *){justify-content:flex-start}.group-data-\[spacing\=0\]\/toggle-group\:rounded-none:is(:where(.group\/toggle-group)[data-spacing="0"] *){border-radius:0}.group-data-\[spacing\=0\]\/toggle-group\:px-2:is(:where(.group\/toggle-group)[data-spacing="0"] *){padding-inline:calc(var(--spacing) * 2)}.group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){background-color:#0000}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-6::file-selector-button{height:calc(var(--spacing) * 6)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.group-data-\[orientation\=horizontal\]\/tabs\:after\:inset-x-0:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);inset-inline:0}.group-data-\[orientation\=horizontal\]\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);bottom:-5px}.group-data-\[orientation\=horizontal\]\/tabs\:after\:h-0\.5:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);height:calc(var(--spacing) * .5)}.group-data-\[orientation\=vertical\]\/tabs\:after\:inset-y-0:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);inset-block:0}.group-data-\[orientation\=vertical\]\/tabs\:after\:-right-1:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);right:calc(var(--spacing) * -1)}.group-data-\[orientation\=vertical\]\/tabs\:after\:w-0\.5:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);width:calc(var(--spacing) * .5)}@media(hover:hover){.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:color-mix(in oklch,var(--secondary),var(--foreground) 5%)}}.hover\:bg-destructive\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-primary\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab,var(--primary) 80%,transparent)}}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:z-10:focus,.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:border-destructive\/40:focus-visible{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:border-destructive\/40:focus-visible{border-color:color-mix(in oklab,var(--destructive) 40%,transparent)}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-3:focus-visible,.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.active\:not-aria-\[haspopup\]\:translate-y-px:active:not([aria-haspopup]){--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-input\/50:disabled{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.disabled\:bg-input\/50:disabled{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}.disabled\:opacity-50:disabled{opacity:.5}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius)}.has-data-\[icon\=inline-end\]\:pr-1:has([data-icon=inline-end]){padding-right:var(--spacing)}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 2)}.group-data-\[spacing\=0\]\/toggle-group\:has-data-\[icon\=inline-end\]\:pr-1\.5:is(:where(.group\/toggle-group)[data-spacing="0"] *):has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-1:has([data-icon=inline-start]){padding-left:var(--spacing)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 2)}.group-data-\[spacing\=0\]\/toggle-group\:has-data-\[icon\=inline-start\]\:pl-1\.5:is(:where(.group\/toggle-group)[data-spacing="0"] *):has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[slot\=alert-action\]\:relative:has([data-slot=alert-action]){position:relative}.has-data-\[slot\=alert-action\]\:pr-18:has([data-slot=alert-action]){padding-right:calc(var(--spacing) * 18)}.has-data-\[slot\=kbd\]\:pr-1\.5:has([data-slot=kbd]){padding-right:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:grid-cols-\[auto_1fr\]:has(>svg){grid-template-columns:auto 1fr}.has-\[\>svg\]\:gap-x-2:has(>svg){column-gap:calc(var(--spacing) * 2)}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.aria-pressed\:bg-muted[aria-pressed=true]{background-color:var(--muted)}.data-closed\:animate-out[data-closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-closed\:fade-out-0[data-closed]{--tw-exit-opacity:0}.data-closed\:zoom-out-95[data-closed]{--tw-exit-scale:.95}.data-horizontal\:h-2\.5[data-horizontal]{height:calc(var(--spacing) * 2.5)}.data-horizontal\:h-px[data-horizontal]{height:1px}.data-horizontal\:w-full[data-horizontal]{width:100%}.data-horizontal\:flex-col[data-horizontal]{flex-direction:column}.data-horizontal\:border-t[data-horizontal]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-horizontal\:border-t-transparent[data-horizontal]{border-top-color:#0000}.data-open\:animate-in[data-open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-open\:fade-in-0[data-open]{--tw-enter-opacity:0}.data-open\:zoom-in-95[data-open]{--tw-enter-scale:.95}.data-vertical\:h-full[data-vertical]{height:100%}.data-vertical\:w-2\.5[data-vertical]{width:calc(var(--spacing) * 2.5)}.data-vertical\:w-px[data-vertical]{width:1px}.data-vertical\:flex-col[data-vertical]{flex-direction:column}.data-vertical\:items-stretch[data-vertical]{align-items:stretch}.data-vertical\:self-stretch[data-vertical]{align-self:stretch}.data-vertical\:border-l[data-vertical]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-vertical\:border-l-transparent[data-vertical]{border-left-color:#0000}.data-\[orientation\=horizontal\]\:flex-col[data-orientation=horizontal]{flex-direction:column}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=sm\]\:rounded-\[min\(var\(--radius-md\)\,10px\)\][data-size=sm]{border-radius:min(var(--radius-md),10px)}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--destructive) 90%,transparent)}}:is(.\*\*\:data-\[slot\=kbd\]\:relative *)[data-slot=kbd]{position:relative}:is(.\*\*\:data-\[slot\=kbd\]\:isolate *)[data-slot=kbd]{isolation:isolate}:is(.\*\*\:data-\[slot\=kbd\]\:z-50 *)[data-slot=kbd]{z-index:50}:is(.\*\*\:data-\[slot\=kbd\]\:rounded-sm *)[data-slot=kbd]{border-radius:calc(var(--radius) - 4px)}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:first\:rounded-l-lg:is(:where(.group\/toggle-group)[data-horizontal] *)[data-spacing="0"]:first-child{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:first\:rounded-t-lg:is(:where(.group\/toggle-group)[data-vertical] *)[data-spacing="0"]:first-child{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:last\:rounded-r-lg:is(:where(.group\/toggle-group)[data-horizontal] *)[data-spacing="0"]:last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:last\:rounded-b-lg:is(:where(.group\/toggle-group)[data-vertical] *)[data-spacing="0"]:last-child{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.group-data-\[variant\=default\]\/tabs-list\:data-\[state\=active\]\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *)[data-state=active]{--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)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]:after{content:var(--tw-content);opacity:1}.data-\[state\=delayed-open\]\:animate-in[data-state=delayed-open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=delayed-open\]\:fade-in-0[data-state=delayed-open]{--tw-enter-opacity:0}.data-\[state\=delayed-open\]\:zoom-in-95[data-state=delayed-open]{--tw-enter-scale:.95}.data-\[state\=on\]\:bg-muted[data-state=on]{background-color:var(--muted)}.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:border-l-0:is(:where(.group\/toggle-group)[data-horizontal] *)[data-spacing="0"][data-variant=outline]{border-left-style:var(--tw-border-style);border-left-width:0}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:border-t-0:is(:where(.group\/toggle-group)[data-vertical] *)[data-spacing="0"][data-variant=outline]{border-top-style:var(--tw-border-style);border-top-width:0}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:first\:border-l:is(:where(.group\/toggle-group)[data-horizontal] *)[data-spacing="0"][data-variant=outline]:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:first\:border-t:is(:where(.group\/toggle-group)[data-vertical] *)[data-spacing="0"][data-variant=outline]:first-child{border-top-style:var(--tw-border-style);border-top-width:1px}@media(min-width:48rem){.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:text-pretty{text-wrap:pretty}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/20:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/20:is(.dark *){background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}@media(hover:hover){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:color-mix(in oklab,var(--destructive) 30%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.dark\:hover\:text-foreground:is(.dark *):hover{color:var(--foreground)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:color-mix(in oklab,var(--input) 80%,transparent)}}.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:color-mix(in oklab,var(--destructive) 50%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:data-\[state\=active\]\:border-input:is(.dark *)[data-state=active]{border-color:var(--input)}.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:color-mix(in oklab,var(--input) 30%,transparent)}}.dark\:data-\[state\=active\]\:text-foreground:is(.dark *)[data-state=active]{color:var(--foreground)}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{border-color:#0000}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.\[\&_a\]\:underline a{text-decoration-line:underline}.\[\&_a\]\:underline-offset-3 a{text-underline-offset:3px}@media(hover:hover){.\[\&_a\]\:hover\:text-foreground a:hover{color:var(--foreground)}}.\[\&_p\:not\(\:last-child\)\]\:mb-4 p:not(:last-child){margin-bottom:calc(var(--spacing) * 4)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}@media(hover:hover){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.\[a\]\:hover\:bg-muted:is(a):hover{background-color:var(--muted)}.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:color-mix(in oklab,var(--primary) 80%,transparent)}}.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:color-mix(in oklab,var(--secondary) 80%,transparent)}}.\[a\]\:hover\:text-muted-foreground:is(a):hover{color:var(--muted-foreground)}}:is(.\*\:\[svg\]\:row-span-2>*):is(svg){grid-row:span 2/span 2}:is(.\*\:\[svg\]\:translate-y-0\.5>*):is(svg){--tw-translate-y:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}:is(.\*\:\[svg\]\:text-current>*):is(svg){color:currentColor}:is(.\*\:\[svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4>*):is(svg:not([class*=size-])){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3\!>svg{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}.init-shell{box-sizing:border-box;background:linear-gradient(var(--compass-grid) 1px,transparent 1px),linear-gradient(90deg,var(--compass-grid) 1px,transparent 1px),var(--background);height:100vh;min-height:100vh;color:var(--foreground);background-size:32px 32px;padding:clamp(28px,5vw,72px);overflow:auto}.init-header,.init-progress-header{justify-content:space-between;align-items:flex-end;gap:28px;width:min(1080px,100%);margin:0 auto clamp(26px,4vw,46px);display:flex}.init-eyebrow{color:var(--compass-focus);font:600 11px/1.3 var(--compass-font-mono);letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px}.init-header h1,.init-progress-header h1,.init-result-card h1{color:var(--foreground);font:600 clamp(28px,4vw,44px)/1.08 var(--compass-font-sans);letter-spacing:-.035em;margin:0}.init-header-copy,.init-progress-header p:not(.init-eyebrow),.init-result-card>p:not(.init-eyebrow){max-width:650px;color:var(--muted-foreground);margin:13px 0 0;font-size:14px;line-height:1.65}.init-repository-badge{border:1px solid var(--compass-line);background:var(--vscode-editorWidget-background,var(--compass-panel));border-radius:5px;align-items:center;gap:11px;min-width:190px;max-width:320px;padding:11px 13px;display:flex}.init-repository-badge>svg{width:16px;color:var(--compass-focus)}.init-repository-badge span{min-width:0}.init-repository-badge small,.init-repository-badge strong{display:block}.init-repository-badge small{color:var(--compass-faint);font:10px/1.2 var(--compass-font-mono);text-transform:uppercase;margin-bottom:2px}.init-repository-badge strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.init-layout{border:1px solid var(--compass-line-strong);background:var(--vscode-editorWidget-background,var(--compass-panel));width:min(1080px,100%);min-height:520px;box-shadow:0 22px 55px var(--vscode-widget-shadow,#0000003d);border-radius:7px;grid-template-columns:245px minmax(0,1fr);margin:0 auto;display:grid;overflow:hidden}.init-step-nav{border-right:1px solid var(--compass-line);background:var(--compass-panel);flex-direction:column;justify-content:space-between;min-width:0;padding:27px 20px 20px;display:flex}@supports (color:color-mix(in lab,red,red)){.init-step-nav{background:color-mix(in srgb,var(--compass-panel) 88%,var(--compass-canvas))}}.init-step-nav ol,.init-runway,.init-rule-list{margin:0;padding:0;list-style:none}.init-step-nav li{padding-bottom:10px;position:relative}.init-step-nav li:not(:last-child):after{background:var(--compass-line);content:"";width:1px;position:absolute;top:37px;bottom:-1px;left:22px}.init-step-nav li[data-state=complete]:after{background:var(--compass-success)}@supports (color:color-mix(in lab,red,red)){.init-step-nav li[data-state=complete]:after{background:color-mix(in srgb,var(--compass-success) 62%,var(--compass-line))}}.init-step-nav button{width:100%;color:var(--muted-foreground);text-align:left;background:0 0;border:0;border-radius:4px;align-items:center;gap:11px;padding:7px;display:flex}.init-step-nav button:not(:disabled):hover{background:var(--workbench-hover);color:var(--foreground)}.init-step-nav button:focus-visible{outline:2px solid var(--compass-focus);outline-offset:1px}.init-step-marker{z-index:1;border:1px solid var(--compass-line-strong);background:var(--compass-panel);border-radius:50%;flex:0 0 30px;place-items:center;width:30px;height:30px;display:grid}.init-step-marker svg{width:13px;height:13px}.init-step-nav li[data-state=active] button{color:var(--foreground)}.init-step-nav li[data-state=active] .init-step-marker{border-color:var(--compass-focus);background:var(--compass-focus-soft);color:var(--compass-focus);box-shadow:0 0 0 4px var(--compass-focus-soft)}.init-step-nav li[data-state=complete] .init-step-marker{border-color:var(--compass-success);color:var(--compass-success)}.init-step-nav button small,.init-step-nav button strong{display:block}.init-step-nav button small{color:var(--compass-faint);font:9px/1.2 var(--compass-font-mono);letter-spacing:.06em;text-transform:uppercase;margin-bottom:2px}.init-step-nav button strong{font-size:12px;font-weight:550}.init-local-note{border:1px solid var(--compass-line);background:var(--compass-focus);border-radius:5px;align-items:flex-start;gap:9px;padding:12px;display:flex}@supports (color:color-mix(in lab,red,red)){.init-local-note{background:color-mix(in srgb,var(--compass-focus) 6%,transparent)}}.init-local-note>svg{width:14px;color:var(--compass-focus);flex:0 0 14px}.init-local-note p{color:var(--muted-foreground);margin:0;font-size:10px;line-height:1.5}.init-local-note strong,.init-local-note code{display:block}.init-local-note strong{color:var(--foreground);margin-bottom:2px;font-size:10px}.init-local-note code{color:var(--compass-focus);font-family:var(--compass-font-mono);margin-top:4px}.init-stage{flex-direction:column;min-width:0;padding:clamp(28px,5vw,52px);display:flex}.init-stage-heading{align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.init-stage-heading>span{color:var(--compass-focus);font:600 11px/1 var(--compass-font-mono);padding-top:5px}.init-stage-heading h2{color:var(--foreground);font:600 clamp(21px,3vw,28px)/1.2 var(--compass-font-sans);letter-spacing:-.025em;margin:0}.init-stage-heading p{color:var(--muted-foreground);margin:8px 0 0;font-size:12px;line-height:1.55}.init-scope-grid,.init-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.init-choice{border:1px solid var(--compass-line);background:var(--vscode-input-background,var(--background));cursor:pointer;border-radius:6px;align-items:flex-start;gap:12px;min-height:125px;padding:18px;display:flex;position:relative}.init-choice:hover{border-color:var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.init-choice:hover{border-color:color-mix(in srgb,var(--compass-focus) 48%,var(--compass-line))}}.init-choice[data-selected=true]{border-color:var(--compass-focus);background:var(--compass-focus-soft);box-shadow:inset 0 0 0 1px var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.init-choice[data-selected=true]{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--compass-focus) 30%,transparent)}}.init-choice input{opacity:0;width:1px;height:1px;position:absolute}.init-choice:has(input:focus-visible){outline:2px solid var(--compass-focus);outline-offset:2px}.init-choice-radio{width:20px;height:20px;color:var(--compass-faint);flex:0 0 20px;place-items:center;display:grid}.init-choice-radio svg{fill:#0000;width:16px}.init-choice[data-selected=true] .init-choice-radio svg{fill:var(--compass-focus);color:var(--compass-focus);stroke-width:4px}.init-choice strong,.init-choice small{display:block}.init-choice strong{color:var(--foreground);margin:1px 0 8px;font-size:13px}.init-choice small{color:var(--muted-foreground);font-size:11px;line-height:1.55}.init-scope-browser{border:1px solid var(--compass-line);background:var(--vscode-input-background,var(--background));border-radius:6px;margin-top:16px;overflow:hidden}.init-scope-browser>header{border-bottom:1px solid var(--compass-line);background:var(--compass-panel);justify-content:space-between;align-items:center;gap:16px;min-height:47px;padding:0 14px;display:flex}@supports (color:color-mix(in lab,red,red)){.init-scope-browser>header{background:color-mix(in srgb,var(--compass-panel) 84%,transparent)}}.init-scope-browser>header strong,.init-scope-browser>header small{display:block}.init-scope-browser>header strong{color:var(--foreground);margin-bottom:3px;font-size:11px}.init-scope-browser>header small{color:var(--compass-faint);font-size:9px}.init-scope-browser>header>span{border:1px solid var(--compass-focus);flex:none;padding:4px 7px}@supports (color:color-mix(in lab,red,red)){.init-scope-browser>header>span{border:1px solid color-mix(in srgb,var(--compass-focus) 45%,var(--compass-line))}}.init-scope-browser>header>span{background:var(--compass-focus-soft);color:var(--compass-focus);font:600 9px/1 var(--compass-font-mono);border-radius:999px}.init-scope-toolbar{border-bottom:1px solid var(--compass-line);align-items:center;gap:7px;height:35px;padding:0 10px;display:flex}.init-scope-toolbar>svg{width:13px;color:var(--compass-faint)}.init-scope-toolbar input{min-width:0;color:var(--foreground);font:10px/1.3 var(--compass-font-sans);background:0 0;border:0;outline:0;flex:1}.init-scope-toolbar input::placeholder{color:var(--vscode-input-placeholderForeground,var(--compass-faint))}.init-scope-toolbar:focus-within{box-shadow:inset 0 0 0 1px var(--compass-focus)}.init-scope-toolbar button,.init-scope-ledger button{width:22px;height:22px;color:var(--compass-faint);background:0 0;border:0;border-radius:3px;place-items:center;padding:0;display:grid}.init-scope-toolbar button:hover,.init-scope-ledger button:hover{background:var(--workbench-hover);color:var(--foreground)}.init-scope-toolbar button svg,.init-scope-ledger button svg{width:12px}.init-scope-body{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1.45fr) minmax(180px,.8fr);height:clamp(230px,38vh,310px);min-height:0;display:grid;overflow:hidden}.init-scope-tree{overscroll-behavior:contain;border-right:1px solid var(--compass-line);scrollbar-gutter:stable;min-width:0;min-height:0;padding:6px 0;overflow:auto}.init-scope-tree:focus-visible{outline:2px solid var(--compass-focus);outline-offset:-2px}.init-scope-row{box-sizing:border-box;align-items:center;min-width:max-content;height:27px;padding-right:9px;display:flex}.init-scope-row:hover{background:var(--workbench-hover)}.init-scope-disclosure{width:20px;height:22px;color:var(--compass-faint);background:0 0;border:0;border-radius:3px;flex:0 0 20px;place-items:center;padding:0;display:grid}button.init-scope-disclosure:hover{color:var(--foreground)}.init-scope-disclosure svg{width:13px}.init-scope-row label{min-width:0;color:var(--muted-foreground);cursor:pointer;flex:1;align-items:center;gap:7px;font-size:10px;display:flex}.init-scope-row label input{width:13px;height:13px;accent-color:var(--compass-focus);margin:0}.init-scope-row label svg{width:13px;height:13px;color:var(--compass-focus)}.init-scope-row label span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.init-scope-ledger{overscroll-behavior:contain;background:var(--compass-panel);min-width:0;min-height:0;padding:10px;overflow:auto}@supports (color:color-mix(in lab,red,red)){.init-scope-ledger{background:color-mix(in srgb,var(--compass-panel) 73%,transparent)}}.init-scope-ledger{scrollbar-gutter:stable}.init-scope-ledger>div{padding:2px 3px 9px}.init-scope-ledger strong,.init-scope-ledger small{display:block}.init-scope-ledger strong{color:var(--foreground);margin-bottom:3px;font-size:10px}.init-scope-ledger small,.init-scope-ledger>p,.init-scope-empty,.init-scope-notice{color:var(--compass-faint);font-size:9px;line-height:1.45}.init-scope-ledger>p,.init-scope-empty{margin:8px 3px}.init-scope-ledger ul{margin:0;padding:0;list-style:none}.init-scope-ledger li{border-top:1px solid var(--compass-line);align-items:center;gap:5px;min-width:0;padding:4px 3px 4px 7px;display:flex}.init-scope-ledger code{min-width:0;color:var(--foreground);font:9px/1.4 var(--compass-font-mono);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.init-scope-notice{border-top:1px solid var(--compass-line);background:var(--compass-warning);margin:0;padding:7px 12px}@supports (color:color-mix(in lab,red,red)){.init-scope-notice{background:color-mix(in srgb,var(--compass-warning) 7%,transparent)}}.init-scope-notice{color:var(--compass-warning)}.init-facts{border:1px solid var(--compass-line);border-radius:5px;grid-template-columns:1.5fr 1fr 1fr;margin:22px 0 0;display:grid;overflow:hidden}.init-facts>div{background:var(--compass-panel);min-width:0;padding:11px 13px}@supports (color:color-mix(in lab,red,red)){.init-facts>div{background:color-mix(in srgb,var(--compass-panel) 82%,transparent)}}.init-facts>div:not(:last-child){border-right:1px solid var(--compass-line)}.init-facts dt,.init-review-row>span{color:var(--compass-faint);font:9px/1.2 var(--compass-font-mono);text-transform:uppercase}.init-facts dt{margin-bottom:4px}.init-facts dd{min-width:0;color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:10px;overflow:hidden}.init-facts code,.init-review-row code{font-family:var(--compass-font-mono)}.init-fields{gap:18px}.init-fields label>span{margin-bottom:9px;display:block}.init-fields label strong,.init-fields label small{display:block}.init-fields label strong{color:var(--foreground);margin-bottom:3px;font-size:12px}.init-fields label small{color:var(--compass-faint);font-size:10px}.init-fields textarea{box-sizing:border-box;resize:vertical;border:1px solid var(--vscode-input-border,var(--compass-line));background:var(--vscode-input-background,var(--background));width:100%;min-height:142px;color:var(--vscode-input-foreground,var(--foreground));font:11px/1.6 var(--compass-font-mono);border-radius:4px;outline:none;padding:11px 12px}.init-fields textarea::placeholder{color:var(--vscode-input-placeholderForeground,var(--compass-faint))}.init-fields textarea:focus{border-color:var(--compass-focus);outline:1px solid var(--compass-focus)}.init-fields textarea:disabled{opacity:.55;cursor:not-allowed}.init-validation{color:var(--destructive);margin:12px 0 0;font-size:11px}.init-stage-actions{justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:30px;display:flex}.init-button{min-height:32px;font:500 12px/1.3 var(--compass-font-sans);border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;gap:8px;padding:6px 13px;display:inline-flex}.init-button svg{width:14px;height:14px}.init-button:focus-visible{outline:2px solid var(--compass-focus);outline-offset:2px}.init-button:disabled{opacity:.45;cursor:not-allowed}.init-button-primary{border-color:var(--vscode-button-border,transparent);background:var(--vscode-button-background,var(--primary));color:var(--vscode-button-foreground,var(--primary-foreground))}.init-button-primary:not(:disabled):hover{background:var(--vscode-button-hoverBackground,var(--primary))}.init-button-secondary{border-color:var(--compass-line);background:var(--vscode-button-secondaryBackground,var(--secondary));color:var(--vscode-button-secondaryForeground,var(--secondary-foreground))}.init-button-secondary:not(:disabled):hover,.init-button-quiet:hover{border-color:var(--compass-line-strong);background:var(--workbench-hover);color:var(--foreground)}.init-button-quiet{color:var(--muted-foreground);background:0 0}.init-button-build{min-width:170px}.init-review{border:1px solid var(--compass-line);border-radius:5px;overflow:hidden}.init-review-row{border-bottom:1px solid var(--compass-line);grid-template-columns:130px minmax(0,1fr);align-items:start;min-height:42px;display:grid}.init-review-row:last-child{border-bottom:0}.init-review-row>span{background:var(--compass-panel);align-self:stretch;padding:12px 13px}@supports (color:color-mix(in lab,red,red)){.init-review-row>span{background:color-mix(in srgb,var(--compass-panel) 76%,transparent)}}.init-review-row>div{min-width:0;color:var(--foreground);padding:11px 13px;font-size:11px}.init-review-row code{overflow-wrap:anywhere;color:var(--foreground)}.init-rule-default{color:var(--muted-foreground)}.init-rule-list{flex-wrap:wrap;gap:6px;display:flex}.init-rule-list li{border:1px solid var(--compass-line);background:var(--vscode-input-background,var(--background));border-radius:3px;padding:3px 7px}.init-build-callout{border-left:2px solid var(--compass-focus);background:var(--compass-focus-soft);align-items:flex-start;gap:12px;margin-top:16px;padding:13px 15px;display:flex}.init-build-callout>svg{width:17px;color:var(--compass-focus);flex:0 0 17px}.init-build-callout strong{color:var(--foreground);margin-bottom:3px;font-size:11px;display:block}.init-build-callout p{color:var(--muted-foreground);margin:0;font-size:10px;line-height:1.45}.init-replace-confirmation{border:1px solid var(--compass-warning);align-items:flex-start;gap:10px;margin-top:10px;padding:12px 14px;display:flex}@supports (color:color-mix(in lab,red,red)){.init-replace-confirmation{border:1px solid color-mix(in srgb,var(--compass-warning) 55%,var(--compass-line))}}.init-replace-confirmation{background:var(--compass-warning);border-radius:4px}@supports (color:color-mix(in lab,red,red)){.init-replace-confirmation{background:color-mix(in srgb,var(--compass-warning) 8%,transparent)}}.init-replace-confirmation{cursor:pointer}.init-replace-confirmation input{accent-color:var(--compass-focus);margin:2px 0 0}.init-replace-confirmation strong,.init-replace-confirmation small{display:block}.init-replace-confirmation strong{color:var(--compass-warning);margin-bottom:3px;font-size:11px}.init-replace-confirmation small{color:var(--muted-foreground);font-size:10px;line-height:1.45}.init-progress-shell{flex-direction:column;display:flex}.init-progress-header{align-items:center}.init-running-badge{border:1px solid var(--compass-focus);align-items:center;gap:7px;padding:6px 10px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.init-running-badge{border:1px solid color-mix(in srgb,var(--compass-focus) 46%,var(--compass-line))}}.init-running-badge{background:var(--compass-focus-soft);color:var(--compass-focus);font:600 10px/1 var(--compass-font-mono);text-transform:uppercase;border-radius:999px}.init-running-badge svg,.init-runway li[data-state=active] .init-runway-marker svg{animation:1.2s linear infinite init-spin}.init-progress-card{box-sizing:border-box;border:1px solid var(--compass-line-strong);background:var(--vscode-editorWidget-background,var(--compass-panel));width:min(880px,100%);box-shadow:0 22px 55px var(--vscode-widget-shadow,#0000003d);border-radius:7px;margin:auto;padding:clamp(26px,5vw,48px)}.init-progress-summary{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.init-progress-summary small,.init-progress-summary strong{display:block}.init-progress-summary small{color:var(--compass-faint);font:10px/1.2 var(--compass-font-mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px}.init-progress-summary strong{color:var(--foreground);font-size:18px;font-weight:580}.init-progress-summary>span{color:var(--compass-focus);font:600 24px/1 var(--compass-font-mono)}.init-progress-track{background:var(--foreground);border-radius:99px;height:7px;margin:18px 0 22px;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.init-progress-track{background:color-mix(in srgb,var(--foreground) 10%,transparent)}}.init-progress-track>span{border-radius:inherit;background:var(--workbench-progress);height:100%;box-shadow:0 0 15px var(--compass-focus);display:block}@supports (color:color-mix(in lab,red,red)){.init-progress-track>span{box-shadow:0 0 15px color-mix(in srgb,var(--compass-focus) 50%,transparent)}}.init-progress-track>span{transition:width .18s ease-out}.init-progress-track>span.is-indeterminate{width:28%;animation:1.35s ease-in-out infinite init-indeterminate}.init-current-file{border:1px solid var(--compass-line);background:var(--vscode-input-background,var(--compass-canvas));border-radius:5px;align-items:center;gap:12px;min-width:0;padding:13px 15px;display:flex}.init-current-file>svg{width:16px;color:var(--compass-focus);flex:0 0 16px}.init-current-file span{min-width:0}.init-current-file small,.init-current-file code{display:block}.init-current-file small{color:var(--compass-faint);font:9px/1 var(--compass-font-mono);text-transform:uppercase;margin-bottom:4px}.init-current-file code{color:var(--foreground);font:11px/1.4 var(--compass-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.init-runway{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:30px;display:grid}.init-runway li{align-items:flex-start;gap:10px;display:flex;position:relative}.init-runway li:not(:last-child):after{background:var(--compass-line);content:"";height:1px;position:absolute;top:13px;left:27px;right:8px}.init-runway li[data-state=complete]:after{background:var(--compass-success)}@supports (color:color-mix(in lab,red,red)){.init-runway li[data-state=complete]:after{background:color-mix(in srgb,var(--compass-success) 58%,var(--compass-line))}}.init-runway-marker{z-index:1;border:1px solid var(--compass-line-strong);background:var(--compass-panel);width:26px;height:26px;color:var(--compass-faint);border-radius:50%;flex:0 0 26px;place-items:center;display:grid}.init-runway-marker svg{width:12px;height:12px}.init-runway li[data-state=complete] .init-runway-marker{border-color:var(--compass-success);color:var(--compass-success)}.init-runway li[data-state=active] .init-runway-marker{border-color:var(--compass-focus);color:var(--compass-focus);box-shadow:0 0 0 4px var(--compass-focus-soft)}.init-runway li>span:last-child{min-width:0;padding-right:20px}.init-runway strong,.init-runway small{display:block}.init-runway strong{color:var(--foreground);margin:1px 0 4px;font-size:10px}.init-runway small{color:var(--compass-faint);font-size:9px;line-height:1.35}.init-progress-footer{box-sizing:border-box;justify-content:space-between;align-items:center;gap:20px;width:min(880px,100%);margin:22px auto 0;display:flex}.init-progress-footer p{color:var(--compass-faint);margin:0;font-size:10px}.init-result-shell{place-items:center;display:grid}.init-result-card{box-sizing:border-box;border:1px solid var(--compass-line-strong);background:var(--vscode-editorWidget-background,var(--compass-panel));width:min(580px,100%);box-shadow:0 22px 55px var(--vscode-widget-shadow,#0000003d);text-align:center;border-radius:7px;padding:clamp(32px,6vw,60px)}.init-result-icon{border:1px solid;border-radius:50%;place-items:center;width:54px;height:54px;margin:0 auto 22px;display:grid}.init-result-icon svg{width:24px}.init-result-icon-success{border-color:var(--compass-success);background:var(--compass-success)}@supports (color:color-mix(in lab,red,red)){.init-result-icon-success{background:color-mix(in srgb,var(--compass-success) 10%,transparent)}}.init-result-icon-success{color:var(--compass-success)}.init-result-icon-error{border-color:var(--destructive);background:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.init-result-icon-error{background:color-mix(in srgb,var(--destructive) 10%,transparent)}}.init-result-icon-error{color:var(--destructive)}.init-result-icon-cancelled{border-color:var(--compass-warning);background:var(--compass-warning)}@supports (color:color-mix(in lab,red,red)){.init-result-icon-cancelled{background:color-mix(in srgb,var(--compass-warning) 10%,transparent)}}.init-result-icon-cancelled{color:var(--compass-warning)}.init-result-card .init-eyebrow{text-align:center}.init-result-card>p:not(.init-eyebrow){margin-left:auto;margin-right:auto}.init-result-actions{flex-wrap:wrap;justify-content:center;gap:9px;margin-top:26px;display:flex}@keyframes init-spin{to{transform:rotate(360deg)}}@keyframes init-indeterminate{0%{transform:translate(-120%)}55%{transform:translate(180%)}to{transform:translate(320%)}}@media(max-width:760px){.init-shell{padding:24px 18px}.init-header,.init-progress-header{flex-direction:column;align-items:flex-start}.init-repository-badge{box-sizing:border-box;width:100%}.init-layout{grid-template-columns:1fr}.init-step-nav{border-right:0;border-bottom:1px solid var(--compass-line);padding:16px}.init-step-nav ol{grid-template-columns:repeat(3,1fr);display:grid}.init-step-nav li{padding:0}.init-step-nav li:not(:last-child):after{width:auto;height:1px;inset:22px -8px auto 37px}.init-step-nav button{flex-direction:column;align-items:flex-start}.init-step-nav button strong{font-size:10px}.init-local-note{display:none}.init-scope-grid,.init-fields{grid-template-columns:1fr}.init-scope-browser>header{flex-direction:column;align-items:flex-start;gap:8px;padding-block:10px}.init-scope-body{grid-template-rows:auto auto;grid-template-columns:1fr;height:auto;max-height:none;overflow:visible}.init-scope-tree{border-right:0;border-bottom:1px solid var(--compass-line);height:clamp(210px,42vh,300px);min-height:210px;max-height:none}.init-scope-ledger{max-height:150px}.init-facts{grid-template-columns:1fr}.init-facts>div:not(:last-child){border-right:0;border-bottom:1px solid var(--compass-line)}.init-review-row{grid-template-columns:95px minmax(0,1fr)}.init-runway{grid-template-columns:1fr;gap:13px}.init-runway li:not(:last-child):after{width:1px;height:auto;inset:26px auto -13px 13px}.init-progress-footer{flex-direction:column;align-items:flex-start}}@media(prefers-reduced-motion:reduce){.init-running-badge svg,.init-runway li[data-state=active] .init-runway-marker svg,.init-progress-track>span.is-indeterminate{animation:none}.init-progress-track>span{transition:none}}:root{color-scheme:light dark;--compass-font-sans:var(--vscode-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);--compass-font-mono:var(--vscode-editor-font-family,"SFMono-Regular", Consolas, monospace);--background:var(--vscode-editor-background,#0d131d);--foreground:var(--vscode-editor-foreground,#d7e1ed);--card:var(--vscode-sideBar-background,#121b28);--card-foreground:var(--vscode-sideBar-foreground,#d7e1ed);--popover:var(--vscode-menu-background,#172231);--popover-foreground:var(--vscode-menu-foreground,#d7e1ed);--primary:var(--vscode-button-background,#2f81f7);--primary-foreground:var(--vscode-button-foreground,#fff);--secondary:var(--vscode-button-secondaryBackground,#263448);--secondary-foreground:var(--vscode-button-secondaryForeground,#d7e1ed);--muted:var(--vscode-list-inactiveSelectionBackground,#1d2938);--muted-foreground:var(--vscode-descriptionForeground,#93a4b8);--accent:var(--vscode-list-activeSelectionBackground,#264f78);--accent-foreground:var(--vscode-list-activeSelectionForeground,#fff);--destructive:var(--vscode-errorForeground,#f47067);--border:var(--vscode-panel-border,#2c3a4d);--input:var(--vscode-input-border,#3b4a5e);--ring:var(--vscode-focusBorder,#4f9cf9);--radius:.625rem;--compass-canvas:var(--vscode-editor-background,#08111f);--compass-canvas-deep:var(--compass-canvas)}@supports (color:color-mix(in lab,red,red)){:root{--compass-canvas-deep:color-mix(in srgb, var(--compass-canvas) 82%, #000)}}:root{--compass-panel:var(--vscode-sideBar-background,#101b2d);--compass-panel-raised:var(--vscode-menu-background,#142236)}@supports (color:color-mix(in lab,red,red)){:root{--compass-panel-raised:color-mix(in srgb, var(--vscode-menu-background,#142236) 88%, transparent)}}:root{--compass-line:var(--vscode-panel-border,#9ab2d329);--compass-line-strong:var(--vscode-contrastBorder,#9ab2d34d);--compass-focus:var(--vscode-focusBorder,#76b7ff);--compass-focus-soft:var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){:root{--compass-focus-soft:color-mix(in srgb, var(--compass-focus) 14%, transparent)}}:root{--compass-faint:var(--vscode-disabledForeground,#60728b);--compass-grid:var(--foreground)}@supports (color:color-mix(in lab,red,red)){:root{--compass-grid:color-mix(in srgb, var(--foreground) 16%, transparent)}}:root{--compass-success:var(--vscode-testing-iconPassed,#3fb950);--compass-warning:var(--vscode-editorWarning-foreground,#d29922);--sidebar:var(--vscode-sideBar-background,var(--background));--sidebar-foreground:var(--vscode-sideBar-foreground,var(--foreground));--sidebar-accent:var(--vscode-list-activeSelectionBackground,var(--accent));--sidebar-accent-foreground:var(--vscode-list-activeSelectionForeground,var(--accent-foreground));--sidebar-primary:var(--vscode-focusBorder,var(--ring));--workbench-hover:var(--vscode-list-hoverBackground,var(--foreground))}@supports (color:color-mix(in lab,red,red)){:root{--workbench-hover:var(--vscode-list-hoverBackground,color-mix(in srgb, var(--foreground) 7%, transparent))}}:root{--workbench-hover-foreground:var(--vscode-list-hoverForeground,var(--foreground));--workbench-table-header:var(--vscode-editorStickyScroll-background,var(--background));--workbench-link:var(--vscode-textLink-foreground,var(--ring));--workbench-progress:var(--vscode-progressBar-background,var(--ring))}@media(prefers-color-scheme:light){:root{--background:var(--vscode-editor-background,#f7f9fc);--foreground:var(--vscode-editor-foreground,#172033);--card:var(--vscode-sideBar-background,#fff);--card-foreground:var(--vscode-sideBar-foreground,#172033);--popover:var(--vscode-menu-background,#fff);--popover-foreground:var(--vscode-menu-foreground,#172033);--primary:var(--vscode-button-background,#0969da);--primary-foreground:var(--vscode-button-foreground,#fff);--secondary:var(--vscode-button-secondaryBackground,#e8edf4);--secondary-foreground:var(--vscode-button-secondaryForeground,#172033);--muted:var(--vscode-list-inactiveSelectionBackground,#edf1f6);--muted-foreground:var(--vscode-descriptionForeground,#576579);--accent:var(--vscode-list-activeSelectionBackground,#dbeafe);--accent-foreground:var(--vscode-list-activeSelectionForeground,#172033);--border:var(--vscode-panel-border,#c8d1dc);--input:var(--vscode-input-border,#aeb9c8);--ring:var(--vscode-focusBorder,#0969da);--compass-canvas:var(--vscode-editor-background,#f4f7fb);--compass-canvas-deep:var(--compass-canvas)}@supports (color:color-mix(in lab,red,red)){:root{--compass-canvas-deep:color-mix(in srgb, var(--compass-canvas) 94%, #dbe3ed)}}:root{--compass-panel:var(--vscode-sideBar-background,#fff);--compass-panel-raised:var(--vscode-menu-background,#fff);--compass-line:var(--vscode-panel-border,#ccd6e1);--compass-line-strong:var(--vscode-contrastBorder,#9eacbd);--compass-faint:var(--vscode-disabledForeground,#68778a)}}body.vscode-light,body.vscode-high-contrast-light{color-scheme:light}body.vscode-dark,body.vscode-high-contrast{color-scheme:dark}.visualization-workbench{background:var(--background);grid-template-columns:minmax(220px,268px) minmax(0,1fr);width:100vw;height:100vh;display:grid;overflow:hidden}.visualization-workbench[data-navigation-collapsed=true]{grid-template-columns:48px minmax(0,1fr)}.visualization-rail{border-right:1px solid var(--compass-line);background:linear-gradient(180deg,var(--compass-focus-soft),transparent 180px),var(--compass-panel);grid-template-rows:auto minmax(0,1fr) auto;min-width:0;display:grid}.visualization-rail>header{border-bottom:1px solid var(--compass-line);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:18px 16px 16px;display:grid}.visualization-rail-disclosure{width:30px;height:30px;color:var(--muted-foreground);background:0 0;border:1px solid #0000;border-radius:3px;place-items:center;display:grid}.visualization-rail-disclosure:hover{border-color:var(--compass-line);background:var(--workbench-hover);color:var(--foreground)}.visualization-rail-disclosure svg{width:16px;height:16px}.visualization-rail[data-collapsed=true]>header{flex-direction:column;gap:9px;padding:12px 7px 10px;display:flex}.visualization-rail[data-collapsed=true]>header>span:nth-child(2),.visualization-rail[data-collapsed=true] nav button>span,.visualization-rail[data-collapsed=true] nav i,.visualization-rail[data-collapsed=true]>footer{display:none}.visualization-rail[data-collapsed=true] .visualization-bearing{width:30px;height:30px}.visualization-rail[data-collapsed=true] nav button{grid-template-columns:1fr;place-items:center;padding-inline:5px}.visualization-bearing{border:1px solid var(--compass-focus);place-items:center;width:34px;height:34px;display:grid}@supports (color:color-mix(in lab,red,red)){.visualization-bearing{border:1px solid color-mix(in srgb,var(--compass-focus) 48%,var(--border))}}.visualization-bearing{background:var(--compass-focus);border-radius:50%}@supports (color:color-mix(in lab,red,red)){.visualization-bearing{background:color-mix(in srgb,var(--compass-focus) 12%,transparent)}}.visualization-bearing{color:var(--compass-focus);box-shadow:inset 0 0 0 4px var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.visualization-bearing{box-shadow:inset 0 0 0 4px color-mix(in srgb,var(--compass-focus) 5%,transparent)}}.visualization-bearing svg{width:18px;height:18px}.visualization-rail header>span:nth-child(2),.visualization-rail nav button>span{gap:2px;min-width:0;display:grid}.visualization-rail header strong{letter-spacing:.02em;font-size:14px}.visualization-rail header small,.visualization-rail nav small{color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.visualization-rail nav{flex-direction:column;gap:3px;min-height:0;padding:10px 8px;display:flex;overflow:auto}.visualization-rail nav button{min-width:0;color:var(--foreground);text-align:left;background:0 0;border:1px solid #0000;border-radius:5px;grid-template-columns:24px minmax(0,1fr) 8px;align-items:center;gap:9px;padding:9px 8px;display:grid;position:relative}.visualization-rail nav button:hover{background:var(--workbench-hover)}.visualization-rail nav button[aria-current=page]{border-color:var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.visualization-rail nav button[aria-current=page]{border-color:color-mix(in srgb,var(--compass-focus) 28%,var(--border))}}.visualization-rail nav button[aria-current=page]{background:var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.visualization-rail nav button[aria-current=page]{background:color-mix(in srgb,var(--compass-focus) 13%,var(--compass-panel))}}.visualization-rail nav button[aria-current=page]{box-shadow:inset 2px 0 var(--compass-focus)}.visualization-rail nav svg{width:16px;height:16px;color:var(--muted-foreground)}.visualization-rail nav button[aria-current=page] svg{color:var(--compass-focus)}.visualization-rail nav strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.visualization-rail nav i{background:var(--compass-success);border-radius:50%;width:6px;height:6px}.visualization-rail nav i[data-status=summary]{background:var(--compass-warning)}.visualization-rail nav i[data-status=partial]{background:var(--destructive)}.visualization-rail>footer{border-top:1px solid var(--compass-line);color:var(--muted-foreground);justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;font-size:10px;display:flex}.visualization-rail>footer code{color:var(--foreground);font-family:var(--compass-font-mono)}.visualization-main{grid-template-rows:49px minmax(0,1fr);min-width:0;min-height:0;display:grid}.visualization-context{border-bottom:1px solid var(--compass-line);background:var(--background);justify-content:space-between;align-items:center;gap:20px;min-width:0;padding:7px 14px 7px 16px;display:flex}@supports (color:color-mix(in lab,red,red)){.visualization-context{background:color-mix(in srgb,var(--background) 92%,var(--compass-panel))}}.visualization-context>div:first-child{gap:1px;min-width:0;display:grid}.visualization-context>div:first-child span{color:var(--muted-foreground);letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:650}.visualization-context>div:first-child strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.visualization-coverage{color:var(--muted-foreground);align-items:center;gap:10px;font-size:10px;display:flex}.visualization-coverage strong{border:1px solid var(--compass-success);padding:3px 7px}@supports (color:color-mix(in lab,red,red)){.visualization-coverage strong{border:1px solid color-mix(in srgb,var(--compass-success) 36%,var(--border))}}.visualization-coverage strong{color:var(--compass-success);border-radius:999px;font-weight:600}.visualization-coverage[data-status=summary] strong{border-color:var(--compass-warning)}@supports (color:color-mix(in lab,red,red)){.visualization-coverage[data-status=summary] strong{border-color:color-mix(in srgb,var(--compass-warning) 42%,var(--border))}}.visualization-coverage[data-status=summary] strong{color:var(--compass-warning)}.visualization-coverage[data-status=partial] strong{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.visualization-coverage[data-status=partial] strong{border-color:color-mix(in srgb,var(--destructive) 42%,var(--border))}}.visualization-coverage[data-status=partial] strong{color:var(--destructive)}.visualization-stage,.workbench-graph-lens,.workbench-history-view,.workbench-architecture{min-width:0;height:100%;min-height:0}.workbench-architecture{grid-template-rows:39px minmax(0,1fr);display:grid}.workbench-graph-lens{position:relative}.workbench-graph-lens>.compass-workspace,.workbench-history-view .compass-workspace{height:100%;min-height:0}.visualization-stage .call-graph-view{height:100%}.visualization-stage .call-graph-direction{top:58px}.visualization-stage .call-graph-summary{max-height:min(42%,360px);overflow:auto}.workbench-filter-strip{border-bottom:1px solid var(--compass-line);background:var(--compass-panel);align-items:center;gap:7px;min-width:0;padding:5px 9px;display:flex;overflow-x:auto}.workbench-filter-strip label{color:var(--muted-foreground);white-space:nowrap;align-items:center;gap:5px;font-size:9px;display:flex}.workbench-filter-strip select{border:1px solid var(--input);background:var(--background);max-width:160px;height:27px;color:var(--foreground);font:inherit;border-radius:3px;padding:2px 22px 2px 7px;font-size:10px}.workbench-filter-strip>span{color:var(--muted-foreground);white-space:nowrap;margin-left:auto;font-size:9px}.compass-toolbar-leading{flex:none;align-items:center;min-width:0;display:flex}.workbench-filter-trigger{border:1px solid var(--compass-line);background:var(--vscode-dropdown-background,transparent);min-height:30px;color:var(--muted-foreground);cursor:pointer;font:inherit;white-space:nowrap;border-radius:3px;align-items:center;gap:6px;padding:0 8px;display:flex}.workbench-filter-trigger:hover,.workbench-filter-trigger[aria-expanded=true]{background:var(--workbench-hover);color:var(--foreground)}.workbench-filter-trigger:focus-visible{outline:2px solid var(--compass-focus);outline-offset:2px}.workbench-filter-trigger svg{width:15px;height:15px}.workbench-filter-trigger b{background:var(--compass-focus);min-width:17px;height:17px;color:var(--vscode-button-foreground,#fff);font:9px/1 var(--compass-font-mono);border-radius:9px;place-items:center;display:inline-grid}.workbench-filter-trigger small{color:var(--compass-faint);font:9px/1 var(--compass-font-mono)}.workbench-filter-popover{z-index:12;box-sizing:border-box;border:1px solid var(--compass-line-strong);background:var(--vscode-editorWidget-background,var(--compass-panel));width:min(310px,100%);max-height:calc(100vh - 84px);box-shadow:none;border-radius:5px;gap:10px;padding:12px;display:grid;position:absolute;top:calc(100% + 8px);right:6px;overflow-y:auto}.workbench-filter-popover>header{border-bottom:1px solid var(--compass-line);justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:9px;display:flex}.workbench-filter-popover>header span{gap:2px;display:grid}.workbench-filter-popover>header strong{font-size:11px}.workbench-filter-popover>header small,.workbench-filter-popover>footer{color:var(--compass-faint);font-size:10px}.workbench-filter-popover>header button{border:1px solid var(--compass-line);min-height:26px;color:var(--muted-foreground);white-space:nowrap;background:0 0;border-radius:3px;padding:0 7px;font-size:10px}.workbench-filter-popover>header button:disabled{opacity:.45}.workbench-filter-popover>label{color:var(--muted-foreground);grid-template-columns:88px minmax(0,1fr);align-items:center;gap:9px;font-size:10px;display:grid}.workbench-filter-popover select{border:1px solid var(--input);background:var(--vscode-dropdown-background,var(--background));width:100%;min-height:30px;color:var(--vscode-dropdown-foreground,var(--foreground));font:inherit;border-radius:3px;padding:2px 24px 2px 8px}.workbench-filter-popover select:focus-visible,.workbench-filter-popover button:focus-visible{outline:2px solid var(--compass-focus);outline-offset:2px}.workbench-filter-popover>footer{border-top:1px solid var(--compass-line);padding-top:8px}.workbench-graph-empty{z-index:3;box-sizing:border-box;border:1px solid var(--compass-line);background:var(--vscode-editorWidget-background,var(--compass-panel));width:min(360px,100% - 32px);color:var(--muted-foreground);text-align:center;border-radius:5px;justify-items:center;gap:7px;padding:18px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.workbench-graph-empty svg{width:24px;height:24px;color:var(--compass-faint);margin-bottom:3px}.workbench-graph-empty strong{color:var(--foreground);font-size:12px}.workbench-graph-empty span{max-width:290px;font-size:11px;line-height:1.45}.workbench-graph-empty button{border:1px solid var(--compass-line-strong);background:var(--vscode-button-background,var(--compass-focus));min-height:30px;color:var(--vscode-button-foreground,#fff);font:inherit;border-radius:3px;margin-top:5px;padding:0 10px;font-size:10px}.workbench-graph-empty button:hover{background:var(--vscode-button-hoverBackground,var(--compass-focus))}.workbench-graph-empty button:focus-visible{outline:2px solid var(--compass-focus);outline-offset:2px}.workbench-history-view{position:relative}.workbench-history-banner{z-index:24;border:1px solid var(--compass-line-strong);background:var(--compass-panel-raised);border-radius:5px;align-items:center;gap:9px;padding:8px 11px;display:flex;position:absolute;top:10px;left:50%;transform:translate(-50%);box-shadow:0 10px 28px #0000002e}.workbench-history-banner svg{width:17px;color:var(--compass-focus)}.workbench-history-banner span{gap:1px;display:grid}.workbench-history-banner strong{font-size:11px}.workbench-history-banner small{color:var(--muted-foreground);font-size:9px}.workbench-architecture-body{grid-template-columns:minmax(0,1fr) minmax(240px,310px);min-width:0;min-height:0;display:grid}.workbench-architecture-body>.architecture-map-panel{border:0;border-radius:0;min-width:0;height:100%;min-height:0}.workbench-architecture-body>aside{border-left:1px solid var(--compass-line);background:var(--compass-panel);min-width:0;padding:16px;overflow:auto}.workbench-architecture-body>aside>span{color:var(--muted-foreground);letter-spacing:.09em;text-transform:uppercase;font-size:9px;font-weight:650}.workbench-architecture-body>aside h2{margin:5px 0;font-size:15px}.workbench-architecture-body>aside p{color:var(--muted-foreground);font-size:10px;line-height:1.5}.workbench-symbol-list{gap:2px;margin-top:12px;display:grid}.workbench-symbol-list button{min-width:0;color:var(--foreground);text-align:left;background:0 0;border:1px solid #0000;border-radius:3px;gap:2px;padding:7px;display:grid}.workbench-symbol-list button:hover:not(:disabled){border-color:var(--border);background:var(--workbench-hover)}.workbench-symbol-list button:disabled{cursor:default}.workbench-symbol-list strong,.workbench-symbol-list small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.workbench-symbol-list strong{font-size:10px}.workbench-symbol-list small{color:var(--muted-foreground);font-size:9px}.visualization-workbench button:focus-visible,.visualization-workbench select:focus-visible{outline:1px solid var(--compass-focus);outline-offset:1px}@media(max-width:760px){.visualization-workbench{grid-template-columns:58px minmax(0,1fr)}.visualization-rail>header{flex-direction:column;justify-content:center;gap:9px;padding-inline:8px;display:flex}.visualization-rail header>span:nth-child(2),.visualization-rail nav button>span,.visualization-rail nav i,.visualization-rail>footer{display:none}.visualization-rail nav button{grid-template-columns:1fr;place-items:center;display:grid}.visualization-coverage>span{display:none}.workbench-architecture-body{grid-template-columns:minmax(0,1fr)}.workbench-architecture-body>aside{display:none}}@media(prefers-reduced-motion:no-preference){.visualization-rail nav button[aria-current=page]{animation:.18s ease-out compass-bearing}}@keyframes compass-bearing{0%{opacity:.7;transform:translate(-3px)}to{opacity:1;transform:translate(0)}}*{border-color:var(--border)}html,body,#root,#compass-viewer-root{min-height:100%;margin:0}body{background:var(--background);color:var(--foreground);font-family:var(--compass-font-sans);overflow:hidden}button:not(:disabled),[role=button]:not(:disabled){cursor:pointer}[data-slot=button],[data-slot=input],[data-slot=tabs-list],[data-slot=tabs-trigger]{border-radius:4px}.workbench-collection-toolbar{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.workbench-search{flex:1;align-items:center;min-width:180px;max-width:540px;display:flex;position:relative}.workbench-search>svg{width:14px;height:14px;color:var(--vscode-input-placeholderForeground,var(--muted-foreground));pointer-events:none;position:absolute;left:8px}.workbench-search input{border:1px solid var(--vscode-input-border,var(--border));background:var(--vscode-input-background,var(--input));width:100%;height:30px;color:var(--vscode-input-foreground,var(--foreground));font:inherit;border-radius:3px;outline:none;padding:4px 30px 4px 29px;font-size:12px}.workbench-search input::placeholder{color:var(--vscode-input-placeholderForeground,var(--muted-foreground))}.workbench-search input:focus-visible{border-color:var(--ring);outline:1px solid var(--ring);outline-offset:-1px}.workbench-search-clear{width:24px;height:24px;color:var(--muted-foreground);background:0 0;border:0;border-radius:3px;place-items:center;display:grid;position:absolute;right:3px}.workbench-search-clear:hover{background:var(--workbench-hover);color:var(--workbench-hover-foreground)}.workbench-search-clear svg{width:13px;height:13px}.workbench-result-count,.workbench-pagination-range{color:var(--muted-foreground);white-space:nowrap;font-size:11px}.workbench-pagination{justify-content:space-between;align-items:center;gap:12px;min-height:36px;padding-top:8px;display:flex}.workbench-pagination-actions{color:var(--muted-foreground);align-items:center;gap:4px;font-size:11px;display:flex}.workbench-pagination-actions button{width:26px;height:26px;color:var(--foreground);background:0 0;border:1px solid #0000;border-radius:3px;place-items:center;display:grid}.workbench-pagination-actions button:hover:not(:disabled){border-color:var(--border);background:var(--workbench-hover)}.workbench-pagination-actions button:disabled{color:var(--vscode-disabledForeground,var(--compass-faint))}.workbench-pagination-actions svg{width:14px;height:14px}.workbench-state{width:min(520px,100% - 32px);min-height:180px;color:var(--muted-foreground);text-align:center;align-content:center;place-items:center;gap:12px;margin:auto;padding:24px;display:grid}.workbench-state>svg{width:28px;height:28px}.workbench-state[data-kind=error]>svg{color:var(--destructive)}.workbench-state h2{color:var(--foreground);margin:0;font-size:14px;font-weight:600}.workbench-state p{margin:5px 0 0;font-size:12px;line-height:1.55}.workbench-button{border:1px solid var(--vscode-button-border,transparent);background:var(--vscode-button-background,var(--primary));min-height:30px;color:var(--vscode-button-foreground,var(--primary-foreground));font:inherit;border-radius:3px;padding:4px 11px;font-size:12px}.workbench-button:hover{background:var(--vscode-button-hoverBackground,var(--primary))}.workbench-button:focus-visible,.workbench-search-clear:focus-visible,.workbench-pagination-actions button:focus-visible{outline:2px solid var(--ring);outline-offset:1px}.workbench-state-spinner{animation:1s linear infinite spin}.compass-load-shell{background:radial-gradient(circle at 50% 43%,var(--compass-focus),transparent 28%),radial-gradient(circle at 68% 62%,var(--compass-success),transparent 24%),linear-gradient(145deg,var(--compass-canvas) 0%,var(--compass-canvas-deep) 100%);place-content:center;min-height:100vh;padding:40px 24px;display:grid;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.compass-load-shell{background:radial-gradient(circle at 50% 43%,color-mix(in srgb,var(--compass-focus) 16%,transparent),transparent 28%),radial-gradient(circle at 68% 62%,color-mix(in srgb,var(--compass-success) 8%,transparent),transparent 24%),linear-gradient(145deg,var(--compass-canvas) 0%,var(--compass-canvas-deep) 100%)}}.compass-load-shell{text-align:center}.compass-load-shell:before{content:"";opacity:.18;background-image:radial-gradient(var(--compass-grid) .65px,transparent .65px);pointer-events:none;background-size:24px 24px;position:absolute;inset:0}.compass-load-visual{place-items:start center;width:92px;height:88px;margin:0 auto;display:grid;position:relative}.compass-load-mark{width:58px;height:58px;color:var(--compass-focus);place-items:center;display:grid;position:relative}.compass-load-logo{filter:drop-shadow(0 10px 22px);width:54px;height:54px}@supports (color:color-mix(in lab,red,red)){.compass-load-logo{filter:drop-shadow(0 10px 22px color-mix(in srgb,currentColor 24%,transparent))}}.compass-load-logo{transform-origin:50%;animation:2.4s ease-in-out infinite compass-load-logo-breathe}.compass-load-visual[data-state=error] .compass-load-mark{border:1px solid var(--destructive);width:48px;height:48px}@supports (color:color-mix(in lab,red,red)){.compass-load-visual[data-state=error] .compass-load-mark{border:1px solid color-mix(in srgb,var(--destructive) 66%,var(--compass-line))}}.compass-load-visual[data-state=error] .compass-load-mark{color:var(--destructive);box-shadow:0 18px 48px var(--destructive);border-radius:12px}@supports (color:color-mix(in lab,red,red)){.compass-load-visual[data-state=error] .compass-load-mark{box-shadow:0 18px 48px color-mix(in srgb,var(--destructive) 20%,transparent)}}.compass-load-visual[data-state=error] .compass-load-mark svg{width:22px;height:22px}.compass-load-copy{z-index:1;width:min(620px,100vw - 48px);position:relative}.compass-load-eyebrow{color:var(--compass-focus);letter-spacing:.16em;text-transform:uppercase;margin-bottom:10px;font-size:11px;font-weight:700;display:block}.compass-load-copy h1{color:var(--foreground);letter-spacing:-.035em;margin:0;font-size:clamp(24px,4vw,38px);font-weight:650;line-height:1.08}.compass-load-steps,.compass-load-error{color:var(--muted-foreground);margin:16px auto 0;font-size:13px;line-height:1.65}.compass-load-steps{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.compass-load-steps b{color:var(--compass-focus);font-weight:700}.compass-load-error{overflow-wrap:anywhere;max-width:560px}.compass-load-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px;display:flex}.compass-load-action{border:1px solid var(--compass-line-strong);background:var(--compass-panel-raised);min-height:38px;color:var(--foreground);font:inherit;border-radius:9px;outline:none;align-items:center;gap:8px;padding:0 14px;font-size:12px;display:inline-flex}.compass-load-action:hover{border-color:var(--compass-focus);background:var(--compass-focus-soft)}.compass-load-action-primary{border-color:var(--vscode-button-background,var(--compass-focus));background:var(--vscode-button-background,var(--compass-focus));color:var(--vscode-button-foreground,#fff)}.compass-load-action-primary:hover{background:var(--vscode-button-hoverBackground,var(--compass-focus))}.compass-load-action svg{width:15px;height:15px}@keyframes compass-load-logo-breathe{50%{opacity:.72;transform:scale(.94)}}.compass-load-shell{background:var(--vscode-editor-background,var(--background));grid-template-rows:auto auto;gap:18px}.compass-load-shell:before{display:none}.compass-load-visual{width:92px;height:88px;margin:0 auto}.compass-load-mark{color:var(--vscode-symbolIcon-classForeground,var(--vscode-progressBar-background,var(--compass-focus)));box-shadow:none}.compass-load-logo{filter:drop-shadow(0 9px 20px var(--vscode-progressBar-background,var(--workbench-progress)))}@supports (color:color-mix(in lab,red,red)){.compass-load-logo{filter:drop-shadow(0 9px 20px color-mix(in srgb,var(--vscode-progressBar-background,var(--workbench-progress)) 28%,transparent))}}.compass-load-progress{background:var(--vscode-progressBar-background,var(--workbench-progress));width:96px;height:2px;position:absolute;bottom:0;left:50%;overflow:hidden;transform:translate(-50%)}@supports (color:color-mix(in lab,red,red)){.compass-load-progress{background:var(--vscode-progressBar-background,color-mix(in srgb, var(--workbench-progress) 28%, transparent))}}.compass-load-progress i{background:var(--workbench-progress);width:45%;height:100%;animation:1.4s ease-in-out infinite compass-native-progress;display:block}@keyframes compass-native-progress{0%{transform:translate(-110%)}to{transform:translate(330%)}}.compass-load-copy{width:min(520px,100vw - 40px)}.compass-load-eyebrow{color:var(--muted-foreground);letter-spacing:.08em;margin-bottom:7px;font-size:10px}.compass-load-copy h1{letter-spacing:-.015em;font-size:clamp(19px,3vw,25px);font-weight:600;line-height:1.2}.compass-load-steps,.compass-load-error{margin-top:10px;font-size:12px}.compass-load-steps{gap:8px 14px}.compass-load-step{color:var(--vscode-disabledForeground,var(--muted-foreground));align-items:center;gap:6px;display:inline-flex}.compass-load-step>i{border:1px solid;border-radius:50%;width:6px;height:6px;display:block}.compass-load-step[data-state=complete]{color:var(--vscode-descriptionForeground,var(--muted-foreground))}.compass-load-step[data-state=complete]>i{border-color:var(--vscode-progressBar-background,var(--workbench-progress));background:var(--vscode-progressBar-background,var(--workbench-progress))}.compass-load-step[data-state=active]{color:var(--vscode-editor-foreground,var(--foreground))}.compass-load-step[data-state=active]>i{border-color:var(--vscode-progressBar-background,var(--workbench-progress));background:var(--vscode-progressBar-background,var(--workbench-progress));box-shadow:0 0 7px var(--vscode-progressBar-background,var(--workbench-progress))}@supports (color:color-mix(in lab,red,red)){.compass-load-step[data-state=active]>i{box-shadow:0 0 7px color-mix(in srgb,var(--vscode-progressBar-background,var(--workbench-progress)) 46%,transparent)}}.compass-load-action{background:var(--vscode-button-secondaryBackground,var(--secondary));min-height:30px;color:var(--vscode-button-secondaryForeground,var(--secondary-foreground));border-radius:3px;padding:0 11px}.compass-load-action-primary{background:var(--vscode-button-background,var(--primary));color:var(--vscode-button-foreground,var(--primary-foreground))}.compass-load-shell[data-variant=architecture]{text-align:left;grid-template-rows:auto auto;grid-template-columns:minmax(220px,390px) minmax(280px,560px);column-gap:clamp(24px,6vw,72px)}.compass-load-shell[data-variant=architecture] .compass-load-visual{grid-column:1;margin:0}.compass-load-shell[data-variant=architecture] .compass-load-copy{grid-column:1;width:auto}.compass-load-shell[data-variant=architecture] .compass-load-steps{justify-content:flex-start}.architecture-load-skeleton{border:1px solid var(--vscode-panel-border,var(--border));background:var(--vscode-editor-background,var(--background));border-radius:4px;grid-area:1/2/span 2;grid-template-rows:54px 1fr;grid-template-columns:92px 1fr;width:min(46vw,560px);height:min(46vh,360px);display:grid;overflow:hidden}.architecture-load-skeleton span{background-image:linear-gradient(90deg,transparent,var(--foreground),transparent)}@supports (color:color-mix(in lab,red,red)){.architecture-load-skeleton span{background-image:linear-gradient(90deg,transparent,color-mix(in srgb,var(--foreground) 7%,transparent),transparent)}}.architecture-load-skeleton span{background-size:220% 100%;animation:1.8s ease-in-out infinite compass-skeleton}.architecture-load-rail{border-right:1px solid var(--border);background-color:var(--vscode-sideBar-background,var(--sidebar));grid-row:1/span 2}.architecture-load-flow{border-bottom:1px solid var(--border)}.architecture-load-content{border:1px solid var(--border);border-radius:3px;margin:14px}@keyframes compass-skeleton{to{background-position:-220% 0}}.compass-workspace{isolation:isolate;background:var(--compass-canvas);height:100vh;min-height:30rem;position:relative;overflow:hidden}.compass-workspace-content{grid-template-columns:minmax(0,1fr) 8px var(--compass-inspector-width,340px);width:100%;height:100%;min-height:inherit;display:grid;overflow:hidden}.compass-workspace-content[data-inspector-collapsed=true]{grid-template-columns:minmax(0,1fr) 48px}.compass-graph-transition{z-index:30;background:var(--vscode-editor-background,var(--background));color:var(--foreground);text-align:center;grid-template-rows:auto auto;place-content:center;gap:18px;padding:40px 24px;display:grid;position:absolute;inset:0;overflow:hidden}.compass-graph-transition .compass-load-copy{width:min(520px,100vw - 40px)}.compass-graph-transition-description{max-width:470px;color:var(--vscode-descriptionForeground,var(--muted-foreground));margin:10px auto 0;font-size:12px;line-height:1.6}.compass-graph-transition .compass-load-action:focus-visible{outline:2px solid var(--vscode-focusBorder,var(--ring));outline-offset:2px}.compass-graph-stage{background:radial-gradient(circle at 45% 42%,var(--compass-focus),transparent 34%),radial-gradient(circle at 76% 75%,var(--compass-success),transparent 28%),linear-gradient(145deg,var(--compass-canvas) 0%,var(--compass-canvas-deep) 100%);min-width:0;min-height:0;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.compass-graph-stage{background:radial-gradient(circle at 45% 42%,color-mix(in srgb,var(--compass-focus) 21%,transparent),transparent 34%),radial-gradient(circle at 76% 75%,color-mix(in srgb,var(--compass-success) 10%,transparent),transparent 28%),linear-gradient(145deg,var(--compass-canvas) 0%,var(--compass-canvas-deep) 100%)}}.compass-graph-stage:after{content:"";pointer-events:none;opacity:.16;background-image:radial-gradient(var(--compass-grid) .55px,transparent .55px);background-size:22px 22px;position:absolute;inset:0}.compass-graph-stage[data-comparison=true]{background:var(--vscode-editor-background,var(--compass-canvas))}.compass-graph-stage[data-comparison=true]:after{opacity:.09}.compass-canvas{z-index:1;min-width:0;min-height:0;position:absolute;inset:0}.compass-glass-panel{background:var(--vscode-editorWidget-background,var(--compass-panel));border:1px solid var(--compass-line);box-shadow:none;-webkit-backdrop-filter:none}.compass-graph-toolbar{z-index:4;border-radius:4px;justify-content:space-between;align-items:center;gap:10px;min-height:42px;padding:5px 6px 5px 10px;display:flex;position:absolute;top:12px;left:12px;right:12px}.compass-viewer-status{min-width:0;color:var(--muted-foreground);letter-spacing:.015em;align-items:center;gap:10px;font-size:12px;display:flex}.compass-viewer-status-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.compass-viewer-status-dot{background:var(--compass-focus);width:8px;height:8px;box-shadow:0 0 0 4px var(--compass-focus);border-radius:50%;flex:none}@supports (color:color-mix(in lab,red,red)){.compass-viewer-status-dot{box-shadow:0 0 0 4px color-mix(in srgb,var(--compass-focus) 12%,transparent)}}.compass-viewer-status[data-state=running] .compass-viewer-status-dot{animation:1.6s ease-in-out infinite compass-status-pulse}@keyframes compass-status-pulse{50%{box-shadow:0 0 0 8px color-mix(in srgb,var(--compass-focus) 0%,transparent)}}.compass-toolbar-actions{scrollbar-width:none;align-items:center;gap:6px;min-width:0;display:flex;overflow-x:auto}.compass-physics-button{border-color:var(--compass-line);background:var(--vscode-dropdown-background,transparent)}.compass-physics-button[aria-pressed=true]{border-color:var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.compass-physics-button[aria-pressed=true]{border-color:color-mix(in srgb,var(--compass-focus) 55%,var(--compass-line))}}.compass-physics-button[aria-pressed=true]{background:var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.compass-physics-button[aria-pressed=true]{background:color-mix(in srgb,var(--compass-focus) 13%,transparent)}}.compass-physics-button[aria-pressed=true]{color:var(--foreground)}.compass-toolbar-actions::-webkit-scrollbar{display:none}.compass-toolbar-separator{background:var(--compass-line);flex:none;width:1px;height:18px}.compass-zoom-controls{border:1px solid var(--compass-line);background:var(--vscode-dropdown-background,transparent);border-radius:3px;flex:none;min-height:30px;display:inline-flex;overflow:hidden}.compass-zoom-controls .compass-tool-button{border:0;border-radius:0;min-height:28px}.compass-zoom-controls .compass-tool-button+.compass-tool-button{border-left:1px solid var(--compass-line)}.compass-layout-picker{border:1px solid var(--compass-line);min-height:30px;color:var(--muted-foreground);background:var(--vscode-dropdown-background,transparent);border-radius:3px;align-items:center;gap:6px;padding-left:8px;display:inline-flex}.compass-layout-picker svg{flex:none;width:15px;height:15px}.compass-layout-picker select{min-height:28px;color:var(--vscode-dropdown-foreground,var(--foreground));font:inherit;background:0 0;border:0;outline:0;padding:0 24px 0 0}.compass-layout-picker:focus-within{outline:1px solid var(--vscode-focusBorder,var(--compass-focus));outline-offset:1px}.compass-tool-button:disabled{cursor:default;opacity:.55}.compass-tool-button{min-height:30px;color:var(--muted-foreground);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:3px;align-items:center;gap:7px;padding:0 8px;transition:none;display:inline-flex}.compass-tool-button svg{width:15px;height:15px}.compass-tool-icon-button{flex:0 0 30px;justify-content:center;width:30px;padding:0}.compass-zoom-reset{min-width:42px;color:var(--compass-faint);font:9px/1 var(--compass-font-mono);letter-spacing:.02em;justify-content:center;padding:0 7px}.compass-tool-button:hover,.compass-tool-button[aria-pressed=true]{border-color:var(--compass-line);background:var(--workbench-hover);color:var(--foreground)}.compass-tool-button:focus-visible,.compass-explore-panel button:focus-visible,.compass-explore-panel select:focus-visible,.compass-minimap button:focus-visible,.compass-change-legend button:focus-visible,.compass-search-field input:focus-visible,.compass-search-item:focus-visible,.compass-inspector-action:focus-visible,.compass-source-card:focus-visible,.compass-inspector-disclosure:focus-visible,.compass-inspector-resizer:focus-visible,.compass-load-action:focus-visible,.compass-neighbor-link:focus-visible,.compass-community-item:focus-within{outline:2px solid var(--compass-focus);outline-offset:2px}.compass-explore-panel{z-index:8;width:min(330px,100vw - 24px);max-height:calc(100vh - 84px);color:var(--foreground);border-radius:5px;gap:10px;padding:12px;display:grid;position:absolute;top:calc(100% + 7px);right:0;overflow-y:auto}.compass-explore-heading{border-bottom:1px solid var(--compass-line);justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:10px;display:flex}.compass-explore-heading>div{gap:3px;display:grid}.compass-explore-heading strong,.compass-explore-toggle strong,.compass-shortcut-title strong{letter-spacing:.02em;font-size:11px;font-weight:600}.compass-explore-heading span,.compass-explore-toggle small{color:var(--compass-faint);font-size:10px;line-height:1.35}.compass-selection-prompt{border:1px solid var(--compass-focus);grid-template-columns:18px minmax(0,1fr);align-items:start;gap:9px;padding:9px;display:grid}@supports (color:color-mix(in lab,red,red)){.compass-selection-prompt{border:1px solid color-mix(in srgb,var(--compass-focus) 28%,var(--compass-line))}}.compass-selection-prompt{background:var(--compass-focus);border-radius:4px}@supports (color:color-mix(in lab,red,red)){.compass-selection-prompt{background:color-mix(in srgb,var(--compass-focus) 7%,transparent)}}.compass-selection-prompt{color:var(--muted-foreground)}.compass-selection-prompt>svg{width:16px;height:16px;color:var(--compass-focus)}.compass-selection-prompt>span{gap:3px;display:grid}.compass-selection-prompt strong{color:var(--foreground);font-size:10px}.compass-selection-prompt small{color:var(--compass-faint);font-size:10px;line-height:1.4}.compass-explore-panel kbd{border:1px solid var(--compass-line);border-bottom-color:var(--compass-line);justify-content:center;align-items:center;min-width:20px;min-height:19px;padding:0 5px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.compass-explore-panel kbd{border-bottom-color:color-mix(in srgb,var(--compass-line) 72%,var(--foreground))}}.compass-explore-panel kbd{background:var(--vscode-keybindingLabel-background,var(--workbench-hover));color:var(--vscode-keybindingLabel-foreground,var(--foreground));font:9px/1 var(--compass-font-mono);border-radius:3px}.compass-explore-toggle{width:100%;color:var(--muted-foreground);text-align:left;background:0 0;border:1px solid #0000;border-radius:4px;grid-template-columns:18px minmax(0,1fr) 28px;align-items:center;gap:9px;padding:7px 8px;display:grid}.compass-explore-toggle:hover,.compass-explore-toggle[aria-pressed=true]{border-color:var(--compass-line);background:var(--workbench-hover);color:var(--foreground)}.compass-explore-toggle:disabled{cursor:default;opacity:.5}.compass-explore-toggle>svg{width:16px;height:16px}.compass-explore-toggle>span{gap:2px;min-width:0;display:grid}.compass-explore-toggle>i{border:1px solid var(--compass-line);background:var(--compass-canvas-deep);border-radius:8px;width:26px;height:14px;position:relative}.compass-explore-toggle>i:after{content:"";background:var(--compass-faint);border-radius:50%;width:8px;height:8px;position:absolute;top:2px;left:2px}.compass-explore-toggle[aria-pressed=true]>i{border-color:var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.compass-explore-toggle[aria-pressed=true]>i{border-color:color-mix(in srgb,var(--compass-focus) 65%,var(--compass-line))}}.compass-explore-toggle[aria-pressed=true]>i{background:var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.compass-explore-toggle[aria-pressed=true]>i{background:color-mix(in srgb,var(--compass-focus) 24%,var(--compass-canvas-deep))}}.compass-explore-toggle[aria-pressed=true]>i:after{background:var(--compass-focus);left:14px}.compass-explore-field{border:0;gap:6px;min-width:0;margin:0;padding:0;display:grid}.compass-explore-field:disabled{opacity:.5}.compass-explore-field legend,.compass-explore-select>span{color:var(--compass-faint);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-size:9px;font-weight:600}.compass-segmented-control{border:1px solid var(--compass-line);border-radius:4px;grid-auto-columns:1fr;grid-auto-flow:column;display:grid;overflow:hidden}.compass-segmented-control button{min-height:28px;color:var(--compass-faint);font:10px/1 var(--compass-font-mono);background:0 0;border:0}.compass-segmented-control button+button{border-left:1px solid var(--compass-line)}.compass-segmented-control button:hover,.compass-segmented-control button[aria-pressed=true]{background:var(--workbench-hover);color:var(--foreground)}.compass-segmented-control button[aria-pressed=true]{box-shadow:inset 0 -2px var(--compass-focus)}.compass-explore-select{display:grid}.compass-explore-select select{border:1px solid var(--compass-line);background:var(--vscode-dropdown-background,var(--compass-canvas-deep));min-height:30px;color:var(--vscode-dropdown-foreground,var(--foreground));border-radius:4px;padding:0 28px 0 8px;font-size:10px}.compass-shortcut-guide{border-top:1px solid var(--compass-line);gap:9px;padding-top:10px;display:grid}.compass-shortcut-title{color:var(--muted-foreground);align-items:center;gap:7px;display:flex}.compass-shortcut-title svg{width:15px;height:15px}.compass-shortcut-guide dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 14px;margin:0;display:grid}.compass-shortcut-guide dl>div{grid-template-columns:52px minmax(0,1fr);align-items:center;gap:5px;display:grid}.compass-shortcut-guide dt,.compass-shortcut-guide dd{margin:0}.compass-shortcut-guide dt{gap:3px;display:flex}.compass-shortcut-guide dd{color:var(--compass-faint);font-size:9px}.compass-minimap{z-index:3;border-radius:4px;width:178px;position:absolute;bottom:12px;right:12px;overflow:hidden}.compass-minimap header{border-bottom:1px solid var(--compass-line);min-height:26px;color:var(--muted-foreground);font:9px/1 var(--compass-font-mono);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:0 8px;display:flex}.compass-minimap header small{color:var(--compass-faint);font:inherit;letter-spacing:0;text-transform:none}.compass-minimap button{background:var(--compass-canvas);border:0;width:100%;height:108px;padding:0;display:block}@supports (color:color-mix(in lab,red,red)){.compass-minimap button{background:color-mix(in srgb,var(--compass-canvas) 90%,transparent)}}.compass-minimap button{color:var(--compass-faint)}.compass-minimap svg{width:100%;height:100%;display:block}.compass-minimap-edges line{stroke:var(--compass-line);stroke-width:.65px;vector-effect:non-scaling-stroke}.compass-minimap-nodes circle[data-focused=true]{stroke:var(--foreground);stroke-width:1.25px;vector-effect:non-scaling-stroke}.compass-minimap-viewport{fill:var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.compass-minimap-viewport{fill:color-mix(in srgb,var(--compass-focus) 8%,transparent)}}.compass-minimap-viewport{stroke:var(--compass-focus);stroke-width:1px;vector-effect:non-scaling-stroke}.compass-changed-symbols button:focus-visible,.compass-evidence-source-actions button:focus-visible,.compass-relationship-detail>button:focus-visible{outline:2px solid var(--compass-focus);outline-offset:2px}.compass-change-legend{z-index:4;border:1px solid var(--compass-line);background:var(--vscode-editorWidget-background,var(--compass-panel));border-radius:4px;flex-wrap:wrap;gap:5px;max-width:calc(100% - 24px);padding:5px;display:flex;position:absolute;top:64px;left:12px}.compass-change-legend button{min-height:27px;color:var(--muted-foreground);background:0 0;border:1px solid #0000;border-radius:3px;align-items:center;gap:6px;padding:3px 7px;font-size:10px;display:inline-flex}.compass-change-legend button:hover,.compass-change-legend button[aria-pressed=true]{border-color:var(--compass-line);background:var(--workbench-hover);color:var(--foreground)}.compass-change-legend button[aria-pressed=false]{opacity:.42}.compass-change-legend button>span{border:1px solid var(--vscode-descriptionForeground,#6e7781);background:var(--vscode-descriptionForeground,#6e7781);border-radius:50%;width:8px;height:8px}@supports (color:color-mix(in lab,red,red)){.compass-change-legend button>span{background:color-mix(in srgb,var(--vscode-descriptionForeground,#6e7781) 18%,var(--vscode-editor-background,var(--background)))}}.compass-change-legend button[data-change=added]>span{border-color:var(--vscode-gitDecoration-addedResourceForeground,#2ea043);background:var(--vscode-gitDecoration-addedResourceForeground,#2ea043)}@supports (color:color-mix(in lab,red,red)){.compass-change-legend button[data-change=added]>span{background:color-mix(in srgb,var(--vscode-gitDecoration-addedResourceForeground,#2ea043) 22%,var(--vscode-editor-background,var(--background)))}}.compass-change-legend button[data-change=removed]>span{border-color:var(--vscode-gitDecoration-deletedResourceForeground,#f85149);background:var(--vscode-gitDecoration-deletedResourceForeground,#f85149)}@supports (color:color-mix(in lab,red,red)){.compass-change-legend button[data-change=removed]>span{background:color-mix(in srgb,var(--vscode-gitDecoration-deletedResourceForeground,#f85149) 22%,var(--vscode-editor-background,var(--background)))}}.compass-change-legend button[data-change=changed]>span{border-color:var(--vscode-gitDecoration-modifiedResourceForeground,#d29922);background:var(--vscode-gitDecoration-modifiedResourceForeground,#d29922)}@supports (color:color-mix(in lab,red,red)){.compass-change-legend button[data-change=changed]>span{background:color-mix(in srgb,var(--vscode-gitDecoration-modifiedResourceForeground,#d29922) 22%,var(--vscode-editor-background,var(--background)))}}.compass-change-legend button small{color:var(--compass-faint);font:9px/1 var(--compass-font-mono)}.compass-inspector-resizer{z-index:6;background:var(--compass-panel);cursor:col-resize;touch-action:none;border:0;outline:none;min-width:8px;position:relative}.compass-inspector-resizer span{background:var(--compass-line-strong);border-radius:999px;width:2px;height:42px;transition:height .16s,background .16s;position:absolute;top:50%;left:3px;transform:translateY(-50%)}.compass-inspector-resizer:hover span,.compass-inspector-resizer:focus-visible span{background:var(--compass-focus);height:68px}.compass-graph-inspector{z-index:5;border-left:1px solid var(--compass-line);background:var(--vscode-sideBar-background,var(--compass-panel));min-width:0;box-shadow:none;flex-direction:column;display:flex;position:relative;overflow:hidden}.compass-graph-inspector-collapsed{border-left:1px solid var(--compass-line);box-shadow:none;align-items:center}.compass-inspector-header{border-bottom:1px solid var(--compass-line);align-items:center;gap:11px;min-height:52px;padding:8px 12px;display:flex}.compass-inspector-title{flex:1;min-width:0}.compass-inspector-header strong,.compass-inspector-header small{display:block}.compass-inspector-header strong{letter-spacing:.01em;font-size:14px}.compass-inspector-header small{color:var(--compass-faint);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:11px;overflow:hidden}.compass-product-mark{background:linear-gradient(145deg,var(--vscode-button-foreground,#eff8ff),var(--compass-focus));border-radius:4px;flex:none;place-items:center;width:32px;height:32px;display:grid}@supports (color:color-mix(in lab,red,red)){.compass-product-mark{background:linear-gradient(145deg,var(--vscode-button-foreground,#eff8ff),color-mix(in srgb,var(--compass-focus) 64%,#fff))}}.compass-product-mark{color:var(--vscode-button-background,#09182c);box-shadow:inset 0 0 0 1px #ffffff7a}.compass-product-mark svg{width:19px;height:19px}.compass-inspector-disclosure{width:32px;height:32px;color:var(--muted-foreground);background:0 0;border:1px solid #0000;border-radius:3px;outline:none;flex:none;place-items:center;transition:none;display:grid}.compass-inspector-disclosure:hover{border-color:var(--compass-line);background:var(--workbench-hover);color:var(--foreground)}.compass-inspector-disclosure svg{width:17px;height:17px}.compass-inspector-expand{margin-top:18px}.compass-inspector-rail-label{color:var(--compass-faint);letter-spacing:.12em;text-transform:uppercase;writing-mode:vertical-rl;margin-top:16px;font-size:10px;font-weight:650}.compass-inspector-search{border-bottom:1px solid var(--compass-line);padding:10px 12px;position:relative}.compass-inspector-search-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;display:grid}.compass-inspector-search-row .compass-search-field:last-child{grid-column:1/-1}.compass-inspector-search-disclosure{border-color:var(--compass-line)}.compass-search-field{position:relative}.compass-search-field svg{width:15px;height:15px;color:var(--compass-faint);pointer-events:none;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.compass-search-field input{border:1px solid var(--compass-line);background:var(--vscode-input-background,var(--background));width:100%;min-height:30px;color:var(--vscode-input-foreground,var(--foreground));border-radius:3px;outline:none;padding:0 10px 0 34px}.compass-search-field input::placeholder{color:var(--vscode-input-placeholderForeground,var(--compass-faint))}.compass-search-results{z-index:8;border:1px solid var(--compass-line-strong);background:var(--vscode-menu-background,var(--compass-panel));max-height:230px;box-shadow:0 4px 12px var(--vscode-widget-shadow,#00000047);border-radius:3px;padding:6px;position:absolute;top:46px;left:12px;right:12px;overflow-y:auto}.compass-search-item{width:100%;min-height:42px;color:var(--muted-foreground);text-align:left;background:0 0;border:0;border-left:3px solid #0000;border-radius:2px;padding:7px 10px;display:block;overflow:hidden}.compass-search-item strong,.compass-search-item span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.compass-search-item strong{color:var(--foreground);font-size:12px}.compass-search-item span{color:var(--compass-faint);font:10px/1.4 var(--compass-font-mono)}.compass-search-item:hover,.compass-search-item[aria-selected=true]{background:var(--vscode-list-activeSelectionBackground,var(--compass-focus-soft));color:var(--vscode-list-activeSelectionForeground,var(--foreground))}.compass-info-panel{border-bottom:1px solid var(--compass-line);max-height:48%;padding:18px 16px;overflow-y:auto}.compass-changed-symbols{border-bottom:1px solid var(--compass-line);max-height:30%;padding:14px 16px;overflow-y:auto}.compass-changed-symbol-list{gap:4px;display:grid}.compass-changed-symbol-list>button{width:100%;color:var(--foreground);text-align:left;background:0 0;border:1px solid #0000;border-radius:3px;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;padding:7px 8px;display:grid}.compass-changed-symbol-list>button:hover,.compass-changed-symbol-list>button[aria-pressed=true]{border-color:var(--compass-line);background:var(--vscode-list-activeSelectionBackground,var(--compass-focus-soft))}.compass-changed-symbol-list strong,.compass-changed-symbol-list small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.compass-changed-symbol-list small{color:var(--compass-faint);font:9px/1.35 var(--compass-font-mono);grid-column:2}.compass-changed-symbol-status{color:var(--vscode-descriptionForeground);letter-spacing:.06em;text-transform:uppercase;grid-row:1/span 2;align-self:center;font-size:8px;font-weight:700}.compass-changed-symbol-list>button[data-change=added] .compass-changed-symbol-status{color:var(--vscode-gitDecoration-addedResourceForeground,#2ea043)}.compass-changed-symbol-list>button[data-change=removed] .compass-changed-symbol-status{color:var(--vscode-gitDecoration-deletedResourceForeground,#f85149)}.compass-changed-symbol-list>button[data-change=changed] .compass-changed-symbol-status{color:var(--vscode-gitDecoration-modifiedResourceForeground,#d29922)}.compass-changed-symbol-expand{border:1px solid var(--compass-line);width:100%;color:var(--vscode-textLink-foreground,var(--compass-focus));background:0 0;border-radius:3px;margin-top:8px;padding:6px 8px}.compass-record-evidence,.compass-relationship-evidence,.compass-code-evidence{margin-top:16px}.compass-code-query-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:10px;display:grid}.compass-code-query-actions button{border:1px solid var(--compass-line);color:var(--vscode-textLink-foreground,var(--compass-focus));background:0 0;border-radius:3px;padding:5px 4px;font-size:9px}.compass-code-query-actions button:focus-visible{outline:2px solid var(--vscode-focusBorder,var(--compass-focus));outline-offset:1px}.compass-code-evidence-ledger{gap:6px;display:grid}.compass-code-evidence-entry{border:1px solid var(--compass-line);background:var(--vscode-editorWidget-background,var(--background));border-left-width:3px;border-radius:3px;grid-template-columns:24px minmax(0,1fr);gap:8px;padding:8px;display:grid}.compass-code-evidence-entry[data-status=exact],.compass-code-evidence-entry[data-status=config],.compass-code-evidence-entry[data-status=convention]{border-left-color:var(--vscode-testing-iconPassed,#2ea043)}.compass-code-evidence-entry[data-status=heuristic]{border-left-color:var(--vscode-charts-blue,#58a6ff)}.compass-code-evidence-entry[data-status=ambiguous],.compass-code-evidence-entry[data-status=unresolved]{border-left-color:var(--vscode-editorWarning-foreground,#d29922)}.compass-code-evidence-icon{background:var(--vscode-badge-background,var(--muted));width:24px;height:24px;color:var(--vscode-badge-foreground,var(--foreground));border-radius:50%;place-items:center;display:grid}.compass-code-evidence-icon svg{width:13px;height:13px}.compass-code-evidence-copy{min-width:0}.compass-code-evidence-status{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.compass-code-evidence-status strong{color:var(--foreground);font-size:10px}.compass-code-evidence-status span{color:var(--compass-faint);text-transform:uppercase;font-size:8px}.compass-code-evidence-copy dl{gap:3px;margin:7px 0 0;display:grid}.compass-code-evidence-copy dl>div{grid-template-columns:62px minmax(0,1fr);gap:6px;display:grid}.compass-code-evidence-copy dt{color:var(--compass-faint);text-transform:uppercase;font-size:8px}.compass-code-evidence-copy dd{overflow-wrap:anywhere;min-width:0;color:var(--foreground);font:9px/1.35 var(--compass-font-mono);margin:0}.compass-code-evidence-source{max-width:100%;color:var(--vscode-textLink-foreground,var(--compass-focus));font:9px/1.35 var(--compass-font-mono);overflow-wrap:anywhere;text-align:left;background:0 0;border:0;align-items:center;gap:5px;margin-top:7px;padding:0;display:inline-flex}button.compass-code-evidence-source{cursor:pointer}button.compass-code-evidence-source:focus-visible{outline:2px solid var(--vscode-focusBorder,var(--compass-focus));outline-offset:2px;border-radius:2px}.compass-code-evidence-source svg{width:11px;min-width:11px;height:11px}.compass-code-candidates{border-top:1px solid var(--compass-line);margin-top:8px;padding-top:7px}.compass-code-candidates>span{color:var(--compass-faint);text-transform:uppercase;font-size:8px}.compass-code-candidates ul{gap:5px;margin:6px 0 0;padding:0;list-style:none;display:grid}.compass-code-candidates li{grid-template-columns:minmax(0,1fr) auto;gap:1px 6px;display:grid}.compass-code-candidates code{overflow-wrap:anywhere;color:var(--foreground);font:9px/1.35 var(--compass-font-mono)}.compass-code-candidates li>span{color:var(--muted-foreground);grid-column:1/-1;font-size:9px}.compass-code-candidates small{color:var(--compass-faint);text-transform:uppercase;grid-area:1/2;font-size:8px}.compass-code-diagnostic{border:1px solid var(--vscode-editorWarning-foreground,#d29922);color:var(--muted-foreground);border-radius:3px;gap:7px;margin:0 0 6px;padding:7px 8px;font-size:9px;display:flex}.compass-code-diagnostic[data-severity=info]{border-color:var(--vscode-charts-blue,#58a6ff)}.compass-code-diagnostic svg{width:12px;min-width:12px;height:12px}.compass-code-diagnostic strong{color:var(--foreground);text-transform:capitalize}.compass-evidence-heading{justify-content:space-between;align-items:baseline;margin-bottom:7px;display:flex}.compass-evidence-heading h3{color:var(--foreground);font-size:11px}.compass-evidence-heading span{color:var(--compass-faint);font-size:9px}.compass-field-table-wrap{border:1px solid var(--compass-line);border-radius:3px;overflow-x:auto}.compass-field-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:360px}.compass-field-table th,.compass-field-table td{border-right:1px solid var(--compass-line);border-bottom:1px solid var(--compass-line);vertical-align:top;text-align:left;padding:6px 7px}.compass-field-table tr:last-child>*{border-bottom:0}.compass-field-table tr>:last-child{border-right:0}.compass-field-table thead th{background:var(--vscode-editorWidget-background,var(--background));color:var(--compass-faint);text-transform:uppercase;font-size:9px}.compass-field-table tbody th{width:27%;color:var(--foreground);font:9px/1.4 var(--compass-font-mono);overflow-wrap:anywhere}.compass-field-table code{color:var(--foreground);font:9px/1.4 var(--compass-font-mono);white-space:pre-wrap;overflow-wrap:anywhere}.compass-value-truncated{color:var(--vscode-editorWarning-foreground,#d29922);margin-top:4px;font-size:8px;display:block}.compass-evidence-source-actions{gap:6px;margin-top:8px;display:flex}.compass-evidence-source-actions button{border:1px solid var(--compass-line);color:var(--vscode-textLink-foreground,var(--compass-focus));background:0 0;border-radius:3px;align-items:center;gap:5px;padding:5px 7px;display:inline-flex}.compass-evidence-source-actions svg{width:12px;height:12px}.compass-relationship-list{gap:5px;margin-top:7px;display:grid}.compass-relationship-list details{border:1px solid var(--compass-line);background:var(--vscode-editorWidget-background,var(--background));border-radius:3px;padding:6px 7px}.compass-relationship-list summary{cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:4px 7px;display:grid}.compass-relationship-target{color:var(--vscode-textLink-foreground,var(--compass-focus));text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.compass-relationship-list summary small{color:var(--foreground);font:9px/1.3 var(--compass-font-mono);grid-column:2}.compass-relationship-list summary i{color:var(--compass-faint);text-transform:uppercase;grid-area:2/3;font-size:8px;font-style:normal}.compass-relationship-detail{margin-top:7px}.compass-relationship-detail>p{color:var(--compass-faint);font:9px/1.4 var(--compass-font-mono);margin:7px 0 0}.compass-relationship-detail>button{border:1px solid var(--compass-line);color:var(--vscode-textLink-foreground,var(--compass-focus));background:0 0;border-radius:3px;margin-top:7px;padding:4px 7px}.compass-bounded-notice{z-index:4;border:1px solid var(--vscode-editorWarning-foreground,#d29922);background:var(--vscode-editorWidget-background,var(--compass-panel));max-width:min(420px,100% - 24px);color:var(--foreground);border-radius:3px;gap:2px;padding:8px 10px;font-size:10px;display:grid;position:absolute;bottom:12px;right:12px}.compass-bounded-notice span{color:var(--muted-foreground)}.compass-hover-hint{border-top:1px solid var(--compass-line);color:var(--vscode-textLink-foreground,var(--compass-focus));align-items:center;gap:7px;margin-top:2px;padding-top:9px;font-size:11px;display:flex!important}.compass-hover-hint svg{flex:none;width:14px;height:14px}.compass-hover-hint strong{color:var(--vscode-editorHoverWidget-foreground,var(--foreground));font-weight:650}.compass-section-heading,.compass-neighbors-heading{justify-content:space-between;align-items:baseline;display:flex}.compass-section-heading{margin-bottom:15px}.compass-section-heading h2,.compass-community-panel h2{letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:700}.compass-section-heading span{color:var(--compass-faint);letter-spacing:.1em;text-transform:uppercase;font-size:9px}.compass-info-content{color:var(--muted-foreground);font-size:12px;line-height:1.45}.compass-node-identity{align-items:center;gap:11px;margin-bottom:15px;display:flex}.compass-node-identity>span:nth-child(2){flex:1;min-width:0}.compass-node-identity strong,.compass-node-identity small{display:block}.compass-node-identity strong{color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.compass-node-identity small{background:var(--compass-success);border-radius:999px;width:max-content;margin-top:3px;padding:3px 7px}@supports (color:color-mix(in lab,red,red)){.compass-node-identity small{background:color-mix(in srgb,var(--compass-success) 20%,transparent)}}.compass-node-identity small{color:var(--compass-success);letter-spacing:.07em;text-transform:uppercase;font-size:9px;font-weight:800}.compass-node-swatch{border-radius:5px;flex:none;width:10px;height:36px}.compass-change-badge{width:max-content;color:var(--vscode-descriptionForeground,#6e7781);letter-spacing:.05em;text-transform:uppercase;border:1px solid;border-radius:999px;align-items:center;gap:5px;padding:3px 7px;font-size:9px;font-weight:700;display:inline-flex}.compass-node-identity .compass-change-badge{flex:none;margin-left:auto}.compass-change-badge[data-change=added]{color:var(--vscode-gitDecoration-addedResourceForeground,#2ea043)}.compass-change-badge[data-change=removed]{color:var(--vscode-gitDecoration-deletedResourceForeground,#f85149)}.compass-change-badge[data-change=changed]{color:var(--vscode-gitDecoration-modifiedResourceForeground,#d29922)}.compass-metadata-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:15px;display:grid}.compass-metadata-grid>div{border:1px solid var(--compass-line);background:var(--vscode-editorWidget-background,var(--background));border-radius:3px;min-width:0;padding:9px 10px}.compass-metadata-grid .compass-metadata-wide{grid-column:1/-1}.compass-metadata-grid dt{color:var(--compass-faint);letter-spacing:.08em;text-transform:uppercase;font-size:9px}.compass-metadata-grid dd{color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;overflow:hidden}.compass-source-metadata[data-interactive=true]{padding:0;transition:border-color .16s,background .16s}.compass-source-metadata[data-interactive=true]:hover,.compass-source-metadata[data-interactive=true]:focus-within{border-color:var(--compass-focus);background:var(--compass-focus-soft)}.compass-source-metadata[data-interactive=true] dd{white-space:normal;margin:0;overflow:visible}.compass-source-card{width:100%;min-height:58px;color:var(--foreground);text-align:left;background:0 0;border:0;border-radius:2px;outline:none;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;display:flex}.compass-source-copy{min-width:0;display:block}.compass-source-eyebrow,.compass-source-path,.compass-source-range{display:block}.compass-source-eyebrow{color:var(--compass-faint);font-family:var(--compass-font-sans);letter-spacing:.08em;text-transform:uppercase;font-size:9px}.compass-source-path{font:11px/1.35 var(--compass-font-mono);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;overflow:hidden}.compass-source-range{color:var(--muted-foreground);font:10px/1.25 var(--compass-font-sans);margin-top:3px}.compass-source-card>svg{width:15px;height:15px;color:var(--compass-focus);flex:none}.compass-source-card:hover>svg{color:var(--foreground)}.compass-signature-block{overflow-wrap:anywhere;border:1px solid var(--compass-line);background:var(--vscode-input-background,var(--background));color:var(--foreground);font:11px/1.45 var(--compass-font-mono);border-radius:3px;margin-bottom:15px;padding:10px;display:block}.compass-inspector-action{border:1px solid var(--compass-line);background:var(--workbench-hover);width:100%;min-height:36px;color:var(--foreground);border-radius:3px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;padding:0 10px;display:flex}.compass-inspector-action span{min-width:0;color:var(--muted-foreground);font:10px/1.2 var(--compass-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.compass-neighbors-heading{margin:3px 0 7px}.compass-neighbors-heading strong{color:var(--compass-faint);font-size:10px}.compass-neighbors-list{max-height:154px;overflow-y:auto}.compass-neighbor-link{width:100%;min-height:36px;color:var(--muted-foreground);text-align:left;background:0 0;border:0;border-radius:3px;align-items:center;gap:9px;margin:3px 0;padding:8px 9px;display:flex;overflow:hidden}.compass-neighbor-link:hover{background:var(--workbench-hover);color:var(--foreground)}.compass-neighbor-dot{width:8px;height:8px;box-shadow:0 0 0 1px var(--foreground);border-radius:50%;flex:none}@supports (color:color-mix(in lab,red,red)){.compass-neighbor-dot{box-shadow:0 0 0 1px color-mix(in srgb,var(--foreground) 10%,transparent)}}.compass-neighbor-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.compass-empty{color:var(--compass-faint);padding:8px 0;font-size:12px;display:block}.compass-community-panel{flex:1;min-height:0;padding:16px;overflow-y:auto}.compass-community-panel h2{margin-bottom:10px}.compass-community-panel[data-secondary=true]{flex:0 auto;padding-top:12px}.compass-community-panel details>summary{cursor:pointer;min-height:30px;color:var(--muted-foreground);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;align-items:center;font-size:11px;font-weight:700;display:flex}.compass-community-panel details>summary span{color:var(--compass-faint);font:9px/1 var(--compass-font-mono)}.compass-community-controls{min-height:0}.compass-community-search{align-items:center;margin:2px 0 8px;display:flex;position:relative}.compass-community-search>svg{width:13px;height:13px;color:var(--compass-faint);pointer-events:none;position:absolute;left:8px}.compass-community-search input{border:1px solid var(--compass-line);background:var(--vscode-input-background,var(--background));width:100%;height:30px;color:var(--foreground);font:11px/1.3 var(--compass-font-sans);border-radius:3px;padding:0 8px 0 28px}.compass-community-limit{color:var(--compass-faint);margin:8px 0 0;font-size:10px;line-height:1.45}.compass-community-control,.compass-community-item{min-height:34px;color:var(--muted-foreground);align-items:center;gap:8px;font-size:12px;display:flex}.compass-community-item{border-radius:3px}.compass-community-item:hover{background:var(--workbench-hover);color:var(--foreground)}.compass-community-item[data-hidden=true]{opacity:.36}.compass-community-item input,.compass-community-control input{width:15px;height:15px;accent-color:var(--compass-focus)}.compass-community-dot{border-radius:50%;flex:none;width:9px;height:9px}.compass-community-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.compass-community-item small{color:var(--compass-faint);font-size:10px}.compass-graph-stats{border-top:1px solid var(--compass-line);color:var(--compass-faint);letter-spacing:.025em;padding:11px 16px;font-size:10px}.compass-node-hover-card{z-index:7;top:clamp(86px,var(--compass-hover-y),calc(100% - 10rem));left:clamp(12px,var(--compass-hover-x),calc(100% - min(27rem,90%) - 12px));border:1px solid var(--compass-line-strong);background:var(--vscode-editorHoverWidget-background,var(--compass-panel));width:max-content;max-width:min(26rem,100% - 24px);color:var(--vscode-editorHoverWidget-foreground,var(--muted-foreground));box-shadow:0 4px 12px var(--vscode-widget-shadow,#00000047);pointer-events:none;border-radius:3px;gap:7px;padding:13px 15px;font-size:12px;line-height:1.35;display:grid;position:absolute;overflow:hidden}.compass-node-hover-card>.compass-change-badge{margin:0}.compass-hover-heading{align-items:center;gap:8px;display:flex}.compass-hover-heading strong{min-width:0;color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.compass-hover-heading span{background:var(--compass-success);border-radius:999px;width:max-content;padding:3px 7px}@supports (color:color-mix(in lab,red,red)){.compass-hover-heading span{background:color-mix(in srgb,var(--compass-success) 20%,transparent)}}.compass-hover-heading span{color:var(--compass-success);letter-spacing:.07em;font-size:9px;font-weight:800}.compass-node-hover-card p,.compass-node-hover-card code{display:block}.compass-hover-source{color:var(--compass-focus)}.compass-node-hover-card code{max-width:395px;color:var(--foreground);font-family:var(--compass-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.compass-edge-hover-card{z-index:8;top:clamp(86px,var(--compass-hover-y),calc(100% - 15rem));left:clamp(12px,var(--compass-hover-x),calc(100% - min(31rem,92%) - 12px));border:1px solid var(--compass-line-strong);background:var(--vscode-editorHoverWidget-background,var(--compass-panel));width:min(31rem,100% - 24px);color:var(--vscode-editorHoverWidget-foreground,var(--muted-foreground));box-shadow:0 8px 24px var(--vscode-widget-shadow,#00000057);pointer-events:none;border-radius:4px;gap:10px;padding:13px 15px;font-size:11px;line-height:1.35;animation:90ms ease-out both compass-edge-card-enter;display:grid;position:absolute;overflow:hidden}@keyframes compass-edge-card-enter{0%{opacity:0;transform:translateY(3px)}}.compass-edge-hover-heading,.compass-edge-relation-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.compass-edge-hover-eyebrow{color:var(--compass-faint);letter-spacing:.09em;text-transform:uppercase;align-items:center;gap:6px;font-size:9px;font-weight:750;display:inline-flex}.compass-edge-hover-eyebrow svg{width:12px;height:12px;color:var(--compass-focus)}.compass-edge-confidence{border:1px solid;padding:3px 7px}@supports (color:color-mix(in lab,red,red)){.compass-edge-confidence{border:1px solid color-mix(in srgb,currentColor 28%,transparent)}}.compass-edge-confidence{background:currentColor;border-radius:999px}@supports (color:color-mix(in lab,red,red)){.compass-edge-confidence{background:color-mix(in srgb,currentColor 11%,transparent)}}.compass-edge-confidence{color:var(--compass-faint);letter-spacing:.055em;text-transform:uppercase;font-size:9px;font-weight:800}.compass-edge-confidence[data-confidence=extracted]{color:var(--compass-success)}.compass-edge-confidence[data-confidence=inferred]{color:var(--compass-focus)}.compass-edge-confidence[data-confidence=ambiguous]{color:var(--compass-warning)}.compass-edge-confidence[data-confidence=aggregated]{color:var(--compass-faint)}.compass-edge-trace{border:1px solid var(--compass-line);background:var(--compass-focus);border-radius:3px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:9px;min-width:0;padding:9px 10px;display:grid}@supports (color:color-mix(in lab,red,red)){.compass-edge-trace{background:color-mix(in srgb,var(--compass-focus) 7%,transparent)}}.compass-edge-trace strong{min-width:0;color:var(--foreground);font:600 11px/1.35 var(--compass-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.compass-edge-trace strong:last-child{text-align:right}.compass-edge-trace>span{border:1px solid var(--compass-focus);place-items:center;width:22px;height:22px;display:grid}@supports (color:color-mix(in lab,red,red)){.compass-edge-trace>span{border:1px solid color-mix(in srgb,var(--compass-focus) 38%,transparent)}}.compass-edge-trace>span{background:var(--vscode-editorHoverWidget-background,var(--compass-panel));color:var(--compass-focus);border-radius:50%}.compass-edge-trace svg{width:12px;height:12px}.compass-edge-relation-row>strong{color:var(--foreground);font-size:12px;font-weight:700}.compass-edge-relation-row>.compass-change-badge{margin:0}.compass-edge-metadata{gap:5px;padding-top:1px;display:grid}.compass-edge-metadata p{grid-template-columns:54px minmax(0,1fr);align-items:baseline;gap:8px;display:grid}.compass-edge-metadata span{color:var(--compass-faint);letter-spacing:.06em;text-transform:uppercase;font-size:9px;font-weight:700}.compass-edge-metadata code{min-width:0;color:var(--vscode-textLink-foreground,var(--compass-focus));font:10px/1.4 var(--compass-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}body.vscode-high-contrast .compass-glass-panel,body.vscode-high-contrast .compass-graph-inspector,body.vscode-high-contrast .compass-inspector-resizer,body.vscode-high-contrast .compass-load-action,body.vscode-high-contrast .compass-load-step>i,body.vscode-high-contrast .compass-source-metadata,body.vscode-high-contrast .compass-node-hover-card,body.vscode-high-contrast .compass-edge-hover-card,body.vscode-high-contrast-light .compass-glass-panel,body.vscode-high-contrast-light .compass-graph-inspector,body.vscode-high-contrast-light .compass-inspector-resizer,body.vscode-high-contrast-light .compass-load-action,body.vscode-high-contrast-light .compass-load-step>i,body.vscode-high-contrast-light .compass-source-metadata,body.vscode-high-contrast-light .compass-node-hover-card,body.vscode-high-contrast-light .compass-edge-hover-card{border-width:2px;border-color:var(--vscode-contrastBorder,var(--compass-focus))}body.vscode-high-contrast .compass-load-logo,body.vscode-high-contrast-light .compass-load-logo{color:var(--vscode-contrastBorder,currentColor)}@media(max-width:980px){.compass-tool-button span{display:none}.compass-tool-button{padding:0 11px}}@media(max-width:760px){.compass-workspace{height:auto;min-height:100vh;overflow:auto}.compass-workspace-content,.compass-workspace-content[data-inspector-collapsed=true]{height:auto;min-height:inherit;grid-template-rows:minmax(360px,62vh) minmax(280px,40vh);grid-template-columns:1fr;overflow:visible}.compass-workspace-content[data-inspector-collapsed=true]{grid-template-rows:minmax(360px,calc(100vh - 48px)) 48px}.compass-inspector-resizer{display:none}.compass-graph-inspector{border-top:1px solid var(--compass-line);min-height:280px;box-shadow:none;border-left:0;border-radius:0}.compass-graph-inspector-collapsed{border-radius:0;flex-direction:row;justify-content:center;min-height:48px}.compass-inspector-expand{margin-top:0}.compass-inspector-rail-label{writing-mode:horizontal-tb;margin-top:0;margin-left:10px}.compass-graph-toolbar{top:12px;left:12px;right:12px}.compass-toolbar-actions{max-width:62%;overflow-x:auto}.compass-explore-panel{max-height:calc(62vh - 82px)}.compass-info-panel{max-height:none}}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.compass-load-logo,.compass-load-progress i,.architecture-load-skeleton span,.workbench-state-spinner{animation:none!important}}.architecture-shell{background:var(--background);height:100vh;color:var(--foreground);grid-template-columns:minmax(220px,280px) minmax(0,1fr);display:grid}.query-shell{--query-surface:var(--vscode-editor-background,var(--background));--query-surface-raised:var(--vscode-editorWidget-background,var(--vscode-sideBar-background,var(--card)));--query-border:var(--vscode-panel-border,var(--border));--query-input:var(--vscode-input-background,var(--background));--query-input-foreground:var(--vscode-input-foreground,var(--foreground));--query-accent:var(--vscode-focusBorder,var(--ring));background:var(--background);height:100vh;min-height:420px;color:var(--foreground);grid-template-rows:auto 1fr;display:grid;overflow:hidden}.query-header{border-bottom:1px solid var(--query-border);background:var(--query-surface);padding:14px 18px 16px}.query-heading-row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.query-context{color:var(--muted-foreground);font:10px/1.35 var(--compass-font-mono);letter-spacing:.04em;text-transform:uppercase}.query-heading-row h1{margin:3px 0 0;font-size:16px;font-weight:600;line-height:1.3}.query-mode{border-bottom:1px solid var(--query-border);background:0 0;gap:0;width:100%;margin-top:14px;display:flex}.query-mode button{min-width:min(280px,50%);min-height:48px;color:var(--muted-foreground);font:inherit;text-align:left;background:0 0;border:0;border-top:2px solid #0000;border-radius:0;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;padding:7px 12px 8px;display:grid;position:relative}.query-mode button:hover{background:var(--workbench-hover);color:var(--foreground)}.query-mode button[aria-selected=true]{border-top-color:var(--vscode-tab-activeBorder,var(--query-accent));background:var(--vscode-tab-activeBackground,var(--query-surface-raised));box-shadow:inset 1px 0 var(--query-border),inset -1px 0 var(--query-border);color:var(--vscode-tab-activeForeground,var(--foreground))}.query-mode button[aria-selected=true] svg,.query-mode button[aria-selected=true] strong{opacity:1}.query-mode svg{width:15px;height:15px}.query-mode button>span,.query-mode strong,.query-mode small{min-width:0;display:block}.query-mode strong{font-size:12px;font-weight:600;line-height:1.3}.query-mode small{color:inherit;opacity:.78;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:10px;font-weight:400;line-height:1.3;overflow:hidden}.query-composer-panel{border:1px solid var(--query-border);background:var(--query-surface-raised);border-top:0;padding:12px}.query-composer{display:block}.query-editor-shell{border:1px solid var(--vscode-input-border,var(--border));background:var(--query-input);color:var(--query-input-foreground);border-radius:3px;overflow:hidden}.query-editor-shell:focus-within{border-color:var(--ring);outline:1px solid var(--ring);outline-offset:-1px}.query-editor{min-width:0;position:relative}.query-editor textarea{resize:vertical;background:var(--query-input);width:100%;min-height:96px;max-height:260px;color:inherit;font:13px/1.55 var(--compass-font-sans);box-sizing:border-box;border:0;border-radius:0;outline:none;padding:11px 12px;display:block}.query-composer-panel[data-mode=cql] .query-editor textarea{font-family:var(--compass-font-mono);font-size:12px}.query-editor textarea::placeholder,.query-params input::placeholder{color:var(--vscode-input-placeholderForeground,var(--muted-foreground))}.query-params input:focus-visible{border-color:var(--ring);outline:1px solid var(--ring);outline-offset:-1px}.query-composer-footer{border-top:1px solid var(--query-border);background:var(--query-surface);align-items:center;gap:12px;min-height:40px;padding:5px 6px 5px 10px;display:flex}.query-footer-actions{flex:none;justify-content:flex-end;align-items:center;gap:8px;margin-left:auto;display:flex}.query-shortcut{color:var(--vscode-disabledForeground,var(--compass-faint));font:10px/1 var(--compass-font-sans);white-space:nowrap}.query-run{border:1px solid var(--vscode-button-border,transparent);background:var(--vscode-button-background,var(--primary));min-width:76px;min-height:30px;color:var(--vscode-button-foreground,var(--primary-foreground));font:inherit;border-radius:3px;justify-content:center;align-items:center;gap:6px;padding:5px 11px;font-size:12px;display:flex}.query-run:hover:not(:disabled){background:var(--vscode-button-hoverBackground,var(--primary))}.query-run:disabled{background:var(--vscode-button-secondaryBackground,var(--secondary));color:var(--vscode-disabledForeground,var(--compass-faint))}.query-run svg{width:13px;height:13px}.query-params{min-width:0;max-width:620px;color:var(--muted-foreground);flex:520px;align-items:center;gap:8px;font-size:10px;display:flex}.query-params>span{flex:none}.query-params input{border:1px solid var(--vscode-input-border,var(--border));background:var(--vscode-input-background,var(--input));min-width:0;max-width:520px;height:28px;color:var(--vscode-input-foreground,var(--foreground));font:11px var(--compass-font-mono);border-radius:3px;outline:none;flex:260px;padding:3px 8px}.query-examples{align-items:center;gap:5px;margin-top:9px;display:flex;overflow-x:auto}.query-examples>span{color:var(--muted-foreground);text-transform:uppercase;flex:none;font-size:10px;font-weight:600}.query-examples button,.query-history button{border:1px solid var(--border);color:var(--muted-foreground);font:inherit;white-space:nowrap;background:0 0;border-radius:3px;padding:4px 7px;font-size:10px}.query-examples button:hover,.query-history button:hover{background:var(--workbench-hover);color:var(--foreground)}.query-results{min-height:0;padding:clamp(12px,2vw,22px);overflow:auto}.query-results>.workbench-state,.query-empty{min-height:100%}.query-result{width:min(1180px,100%);margin:0 auto}.query-result>header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:9px;display:flex}.query-result>header span{color:var(--muted-foreground);font-size:10px}.query-result>header>span{font-family:var(--compass-font-mono);align-items:center;gap:5px;display:flex}.query-result>header svg{width:12px;height:12px}.query-result h2{margin:2px 0 0;font-size:14px;font-weight:600}.query-text-result,.query-json-result{border:1px solid var(--border);background:var(--vscode-textCodeBlock-background,var(--card));min-height:120px;color:var(--foreground);font:12px/1.6 var(--compass-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:3px;margin:0;padding:12px;overflow:auto}.query-prose-result{border:1px solid var(--query-border);background:var(--query-surface-raised);color:var(--foreground);border-radius:3px;padding:14px 16px;font-size:13px;line-height:1.65}.query-prose-result p,.query-prose-result ul{margin:0}.query-prose-result p+p,.query-prose-result p+ul,.query-prose-result ul+p{margin-top:10px}.query-prose-result ul{padding-left:20px}.query-traversal-result{gap:10px;display:grid}.query-traversal-summary{border:1px solid var(--query-border);border-left:3px solid var(--query-accent);background:var(--query-surface-raised);justify-content:space-between;align-items:center;gap:16px;min-height:54px;padding:10px 12px;display:flex}.query-traversal-summary p{color:var(--foreground);margin:0;font-size:12px;font-weight:600}.query-result-metrics{color:var(--muted-foreground);flex-wrap:wrap;gap:5px 14px;margin-top:5px;font-size:10px;display:flex}.query-result-metrics strong{color:var(--foreground);font-weight:600}.query-graph-action{border:1px solid var(--vscode-button-border,transparent);background:var(--vscode-button-secondaryBackground,var(--secondary));min-height:30px;color:var(--vscode-button-secondaryForeground,var(--secondary-foreground));font:11px var(--compass-font-sans);border-radius:3px;flex:none;align-items:center;gap:6px;padding:5px 9px;display:inline-flex}.query-graph-action:hover{background:var(--vscode-button-secondaryHoverBackground,var(--workbench-hover))}.query-graph-action svg{width:14px;height:14px}.query-node-results{border:1px solid var(--query-border);background:var(--query-surface);border-radius:3px;overflow:hidden}.query-node-result{border-bottom:1px solid var(--query-border);grid-template-columns:18px minmax(160px,.72fr) minmax(240px,1.28fr);align-items:center;gap:9px;min-width:0;min-height:48px;padding:7px 10px;display:grid}.query-node-result:last-child{border-bottom:0}.query-node-result:hover{background:var(--workbench-hover)}.query-node-result>svg{width:14px;height:14px;color:var(--vscode-symbolIcon-functionForeground,var(--query-accent))}.query-node-copy,.query-node-copy h3,.query-node-copy p{min-width:0}.query-node-copy h3,.query-node-copy p{text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.query-node-copy h3{color:var(--vscode-editor-foreground,var(--foreground));font-size:12px;font-weight:600}.query-node-copy p{color:var(--muted-foreground);margin-top:2px;font-size:10px}.query-source-action{min-width:0;color:var(--workbench-link);font:10px/1.4 var(--compass-font-mono);text-align:left;background:0 0;border:1px solid #0000;border-radius:3px;justify-content:space-between;align-items:center;gap:8px;padding:5px 7px;display:flex;overflow:hidden}.query-source-action:hover{border-color:var(--query-border);background:var(--vscode-editorHoverWidget-background,var(--query-surface-raised))}.query-source-action span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.query-source-action small{color:var(--muted-foreground);font:10px var(--compass-font-mono);flex:none}.query-source-missing{color:var(--vscode-disabledForeground,var(--compass-faint));font:10px var(--compass-font-mono)}.query-table{border:1px solid var(--border);border-radius:3px;overflow:auto}.query-table table{border-collapse:collapse;width:100%;min-width:480px;font-size:11px}.query-table thead{background:var(--workbench-table-header);position:sticky;top:0}.query-table th,.query-table td{border-bottom:1px solid var(--border);text-align:left;text-overflow:ellipsis;white-space:nowrap;max-width:380px;padding:7px 9px;overflow:hidden}.query-table th{color:var(--muted-foreground);font-weight:500}.query-table tbody tr:hover{background:var(--workbench-hover)}.query-table tr:last-child td{border-bottom:0}.query-empty{place-content:center;display:grid}.query-history{text-align:center;width:min(720px,100vw - 40px);margin:-28px auto 20px}.query-history h2{color:var(--muted-foreground);margin:0 0 7px;font-size:10px;font-weight:500}.query-history button{text-overflow:ellipsis;max-width:min(100%,460px);margin:2px;overflow:hidden}.query-shell button:focus-visible{outline:2px solid var(--ring);outline-offset:1px}body.vscode-high-contrast .query-mode,body.vscode-high-contrast-light .query-mode,body.vscode-high-contrast .query-text-result,body.vscode-high-contrast-light .query-text-result,body.vscode-high-contrast .query-json-result,body.vscode-high-contrast-light .query-json-result,body.vscode-high-contrast .query-table,body.vscode-high-contrast-light .query-table,body.vscode-high-contrast .query-composer-panel,body.vscode-high-contrast-light .query-composer-panel,body.vscode-high-contrast .query-editor-shell,body.vscode-high-contrast-light .query-editor-shell,body.vscode-high-contrast .query-prose-result,body.vscode-high-contrast-light .query-prose-result,body.vscode-high-contrast .query-traversal-summary,body.vscode-high-contrast-light .query-traversal-summary,body.vscode-high-contrast .query-node-results,body.vscode-high-contrast-light .query-node-results{border-width:2px;border-color:var(--vscode-contrastBorder,var(--ring))}body.vscode-high-contrast .query-mode button[aria-selected=true],body.vscode-high-contrast-light .query-mode button[aria-selected=true]{border:2px solid var(--vscode-contrastBorder,var(--ring));border-bottom:0}.history-shell{background:var(--background);height:100vh;min-height:440px;color:var(--foreground);grid-template-columns:minmax(270px,340px) minmax(0,1fr);display:grid;overflow:hidden}.history-bootstrap{background:var(--vscode-editor-background,var(--background));place-items:center;min-height:100vh;display:grid}.history-sidebar{border-right:1px solid var(--border);background:var(--sidebar);min-width:0;min-height:0;color:var(--sidebar-foreground);flex-direction:column;display:flex}.history-sidebar-header{border-bottom:1px solid var(--border);flex:none;padding:14px 12px 12px}.history-title{align-items:flex-start;gap:9px;display:flex}.history-title>svg{width:16px;height:16px;color:var(--muted-foreground);margin-top:1px}.history-title h1{margin:0;font-size:13px;font-weight:600;line-height:1.25}.history-title p{color:var(--muted-foreground);margin:3px 0 0;font-size:11px}.history-search{align-items:center;margin-top:12px;display:flex;position:relative}.history-search>svg{width:14px;height:14px;color:var(--vscode-input-placeholderForeground,var(--muted-foreground));pointer-events:none;position:absolute;left:8px}.history-search input,.history-mobile-select select{border:1px solid var(--vscode-input-border,transparent);background:var(--vscode-input-background,var(--input));width:100%;min-height:28px;color:var(--vscode-input-foreground,var(--foreground));font:inherit;border-radius:2px;outline:none;font-size:12px}.history-search input{padding:4px 8px 4px 28px}.history-search input::placeholder{color:var(--vscode-input-placeholderForeground,var(--muted-foreground))}.history-search input:focus-visible,.history-mobile-select select:focus-visible,.history-rail:focus-visible,.history-commit:focus-visible{border-color:var(--ring);outline:1px solid var(--ring);outline-offset:-1px}.history-mobile-select{display:none}.history-rail{outline:none;flex:auto;min-height:0;overflow:auto}.history-pagination{border-top:1px solid var(--border);color:var(--muted-foreground);flex:none;justify-items:start;gap:6px;padding:8px 10px;font-size:11px;display:grid}.history-pagination [role=alert]{color:var(--destructive)}.history-commit{border:0;border-bottom:1px solid var(--border);width:100%;color:inherit;text-align:left;background:0 0;border-radius:0;align-items:center;gap:.625rem;padding:8px 11px;display:flex;position:absolute;left:0;right:0}.history-commit:hover{background:var(--workbench-hover);color:var(--workbench-hover-foreground)}.history-commit[aria-selected=true]{background:var(--sidebar-accent);color:var(--sidebar-accent-foreground);box-shadow:inset 2px 0 var(--sidebar-primary)}.history-commit>svg{width:15px;height:15px;color:var(--muted-foreground);flex:none}.history-commit>svg[data-state=available]{color:var(--compass-success)}.history-commit>svg[data-state=building]{color:var(--vscode-progressBar-background,var(--ring))}.history-commit>svg[data-state=failed]{color:var(--destructive)}.history-commit-row-copy,.history-commit-subject,.history-commit-byline{min-width:0}.history-commit-row-copy{flex:1;display:block}.history-commit-subject{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;line-height:1.4;display:block;overflow:hidden}.history-commit-byline{color:var(--muted-foreground);white-space:nowrap;align-items:center;gap:5px;margin-top:3px;font-size:10px;display:flex;overflow:hidden}.history-commit[aria-selected=true] .history-commit-byline{color:currentColor}@supports (color:color-mix(in lab,red,red)){.history-commit[aria-selected=true] .history-commit-byline{color:color-mix(in srgb,currentColor 72%,transparent)}}.history-commit-byline code{color:inherit;font-family:var(--compass-font-mono)}.history-commit-byline span{text-overflow:ellipsis;overflow:hidden}.history-commit-byline time{margin-left:auto}.history-content{background:var(--vscode-editor-background,var(--background));min-width:0;min-height:0;padding:16px;overflow:auto}.history-commit-details{border:1px solid var(--border);background:var(--vscode-editor-background,var(--background));padding:14px}.history-commit-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.history-commit-copy{min-width:0}.history-eyebrow{color:var(--muted-foreground);letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:600;display:block}.history-commit-copy h2{overflow-wrap:anywhere;margin:4px 0 0;font-size:16px;font-weight:600;line-height:1.35}.history-commit-metadata{color:var(--muted-foreground);flex-wrap:wrap;gap:4px 12px;margin-top:7px;font-size:11px;display:flex}.history-commit-metadata code{color:var(--vscode-textLink-foreground,var(--workbench-link));font-family:var(--compass-font-mono)}.history-state-badge{text-transform:capitalize;border-radius:2px;flex:none}.history-commit-actions,.history-change-counts{flex-wrap:wrap;margin-top:12px;display:flex}.history-commit-actions{align-items:flex-end;gap:10px}.history-change-counts{gap:6px}.history-change-counts-help{color:var(--vscode-descriptionForeground,#9aa7b7);margin:-.15rem 0 0;font-size:.78rem;line-height:1.45}.history-commit-actions:empty{display:none}.history-commit-actions button{border-radius:2px}.history-comparison-control{grid-template-columns:minmax(180px,1fr) auto;gap:5px 7px;min-width:min(100%,440px);display:grid}.history-comparison-control label{color:var(--muted-foreground);letter-spacing:.04em;text-transform:uppercase;grid-column:1/-1;font-size:10px;font-weight:600}.history-comparison-control select{border:1px solid var(--vscode-dropdown-border,var(--border));background:var(--vscode-dropdown-background,var(--background));min-width:0;height:28px;color:var(--vscode-dropdown-foreground,var(--foreground));border-radius:2px;outline:none;padding:0 26px 0 8px;font-size:11px}.history-comparison-control select option{background:var(--vscode-dropdown-background,var(--background));color:var(--vscode-dropdown-foreground,var(--foreground))}.history-comparison-control select:focus-visible{border-color:var(--vscode-focusBorder,var(--ring));outline:1px solid var(--vscode-focusBorder,var(--ring));outline-offset:-1px}.history-comparison-control select:disabled{color:var(--vscode-disabledForeground,var(--muted-foreground));cursor:not-allowed}.history-comparison-help,.history-inline-error{color:var(--muted-foreground);margin:9px 0 0;font-size:11px;line-height:1.45}.history-inline-error{color:var(--destructive)}.history-change-counts{color:var(--muted-foreground);font-size:11px}.history-change-counts span{border:1px solid var(--border);background:var(--vscode-badge-background,var(--muted));color:var(--vscode-badge-foreground,var(--foreground));border-radius:2px;padding:3px 6px}.history-change-counts strong{font-weight:600}.history-comparison,.history-diff-evidence{border:1px solid var(--border);background:var(--vscode-editor-background,var(--background));color:var(--vscode-editor-foreground,var(--foreground));margin-top:12px}.history-comparison{box-shadow:inset 3px 0 0 var(--vscode-focusBorder,var(--ring))}.history-comparison-heading{grid-template-columns:18px minmax(0,1fr) auto;align-items:start;gap:8px;padding:11px 12px 9px;display:grid}.history-comparison-heading>svg,.history-diff-heading>svg{width:15px;height:15px;color:var(--vscode-focusBorder,var(--ring));margin-top:2px}.history-comparison-heading h2{color:var(--vscode-editor-foreground,var(--foreground));margin:2px 0 0;font-size:13px;font-weight:600}.history-comparison-heading code{color:var(--vscode-textLink-foreground,var(--workbench-link));font-family:var(--compass-font-mono);background:0 0}.history-comparison-heading button{border:1px solid var(--border);min-height:26px;color:var(--foreground);background:0 0;border-radius:2px;align-items:center;gap:5px;padding:3px 7px;font-size:10px;display:inline-flex}.history-comparison-heading button:hover{border-color:var(--vscode-focusBorder,var(--ring));background:var(--workbench-hover)}.history-comparison-heading button svg{width:12px;height:12px}.history-comparison-legend{font:10px/1.4 var(--compass-font-mono);flex-wrap:wrap;gap:6px;padding:0 12px 10px 38px;display:flex}.history-delta-card{border:1px solid var(--border);background:var(--vscode-editor-foreground,var(--foreground));border-radius:2px;gap:4px;min-width:200px;padding:6px 8px;display:grid}@supports (color:color-mix(in lab,red,red)){.history-delta-card{background:color-mix(in srgb,var(--vscode-editor-foreground,var(--foreground)) 5%,var(--vscode-editor-background,var(--background)))}}.history-delta-card{color:var(--vscode-editor-foreground,var(--foreground))}.history-delta-card>span{flex-wrap:wrap;gap:5px 10px;display:flex}.history-delta-card strong{color:var(--vscode-editor-foreground,var(--foreground));text-transform:capitalize}.history-delta-card i{font-style:normal;font-weight:600}.history-delta-card i small{color:var(--muted-foreground);font-size:9px;font-weight:400}.history-delta-card i[data-change=added]{color:var(--vscode-gitDecoration-addedResourceForeground,#2ea043)}.history-delta-card i[data-change=removed]{color:var(--vscode-gitDecoration-deletedResourceForeground,#f85149)}.history-delta-card i[data-change=changed]{color:var(--vscode-gitDecoration-modifiedResourceForeground,#d29922)}.history-comparison-empty{border-top:1px solid var(--border);color:var(--muted-foreground);gap:2px;padding:9px 12px 10px 38px;font-size:11px;display:grid}.history-comparison-empty strong{color:var(--foreground);font-size:12px}.history-comparison-workspace{border:1px solid var(--border);background:var(--vscode-editor-background,var(--background));min-width:0;color:var(--vscode-editor-foreground,var(--foreground));margin-top:12px;overflow:hidden}.history-comparison-tabs{border-bottom:1px solid var(--border);background:var(--vscode-editorGroupHeader-tabsBackground,var(--vscode-sideBar-background,var(--background)));scrollbar-width:thin;min-width:0;display:flex;overflow-x:auto}.history-comparison-tabs button{border:0;border-right:1px solid var(--border);min-width:max-content;min-height:41px;color:var(--vscode-tab-inactiveForeground,var(--muted-foreground));font:11px/1 var(--compass-font-sans);background:0 0;align-items:center;gap:7px;padding:0 14px;display:inline-flex;position:relative}.history-comparison-tabs button:hover{background:var(--workbench-hover);color:var(--vscode-tab-activeForeground,var(--foreground))}.history-comparison-tabs button[aria-selected=true]{background:var(--vscode-tab-activeBackground,var(--vscode-editor-background,var(--background)));color:var(--vscode-tab-activeForeground,var(--foreground));box-shadow:inset 0 2px 0 var(--vscode-tab-activeBorder,var(--vscode-focusBorder,var(--ring)))}.history-comparison-tabs button:focus-visible{z-index:1;outline:1px solid var(--vscode-focusBorder,var(--ring));outline-offset:-2px}.history-comparison-tabs button>svg{width:14px;height:14px;color:var(--vscode-focusBorder,var(--ring))}.history-comparison-tab-count{border:1px solid var(--border);background:var(--vscode-badge-background,var(--muted));min-width:19px;height:19px;color:var(--vscode-badge-foreground,var(--foreground));font:9px/1 var(--compass-font-mono);border-radius:9px;justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.history-comparison-tab-panel{background:var(--vscode-editor-background,var(--background));min-width:0}.history-evidence-panel{min-width:0;padding:15px 15px 17px}.history-evidence-header{border-bottom:1px solid var(--border);padding-bottom:12px}.history-evidence-header>p,.history-findings-header>div>p{color:var(--muted-foreground);margin:4px 0 0 22px;font-size:11px;line-height:1.45}.history-diff-heading{align-items:center;gap:7px;display:flex}.history-diff-heading h2{margin:0;font-size:13px;font-weight:600}.history-findings-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.history-findings-expand{border:1px solid var(--border);min-height:27px;color:var(--foreground);background:0 0;border-radius:2px;flex:none;padding:4px 9px;font-size:10px}.history-findings-expand:hover{border-color:var(--vscode-focusBorder,var(--ring));background:var(--workbench-hover)}.history-source-changes{gap:6px;margin-top:12px;display:grid}.history-source-changes details{border:1px solid var(--border);background:var(--vscode-editor-background,var(--background));color:var(--vscode-editor-foreground,var(--foreground));border-radius:2px;overflow:hidden}.history-diff-toolbar{align-items:center;gap:6px;margin-top:12px;display:flex}.history-diff-layout{border:1px solid var(--border);border-radius:2px;display:inline-flex;overflow:hidden}.history-diff-toolbar button{min-height:25px;color:var(--muted-foreground);background:0 0;border:0;padding:3px 8px;font-size:10px}.history-diff-layout button+button{border-left:1px solid var(--border)}.history-diff-toolbar button:hover:not(:disabled){background:var(--workbench-hover);color:var(--foreground)}.history-diff-toolbar button[aria-pressed=true],.history-diff-toolbar button[aria-pressed=true]:hover{background:var(--vscode-tab-activeBackground,var(--vscode-editor-background,var(--background)));color:var(--vscode-tab-activeForeground,var(--vscode-editor-foreground,var(--foreground)));box-shadow:inset 0 2px 0 var(--vscode-tab-activeBorder,var(--vscode-focusBorder,var(--ring)))}.history-diff-toolbar button:disabled{cursor:not-allowed;opacity:.45}.history-diff-wrap{min-height:25px;color:var(--muted-foreground);align-items:center;gap:5px;font-size:10px;display:inline-flex}.history-diff-wrap input{margin:0}.history-diff-expand{border-radius:2px;margin-left:auto;border:1px solid var(--border)!important}.history-source-changes summary{cursor:pointer;border-bottom:1px solid var(--border);background:var(--vscode-editorGroupHeader-tabsBackground,var(--background));justify-content:space-between;align-items:center;gap:10px;padding:6px 8px;font-size:10px;display:flex}.history-source-path{align-items:center;gap:8px;min-width:0;display:inline-flex}.history-source-path code{color:var(--vscode-textLink-foreground,var(--workbench-link));font-family:var(--compass-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.history-source-path small{color:var(--muted-foreground);text-transform:capitalize;font-size:9px}.history-source-stats{font-family:var(--compass-font-mono);flex:none;gap:6px;display:inline-flex}.history-source-stats i{font-style:normal;font-weight:600}.history-source-stats i[data-change=added]{color:var(--vscode-gitDecoration-addedResourceForeground,#2ea043)}.history-source-stats i[data-change=removed]{color:var(--vscode-gitDecoration-deletedResourceForeground,#f85149)}.history-source-diff{contain:inline-size;background:var(--vscode-editor-background,var(--background));width:100%;min-width:0;max-width:100%;display:block}.history-diff-fallback>p{border-bottom:1px solid var(--border);color:var(--vscode-gitDecoration-modifiedResourceForeground,#d29922);margin:0;padding:7px 8px}.history-diff-fallback pre{max-height:260px;color:var(--vscode-editor-foreground,var(--foreground));font:10px/1.5 var(--compass-font-mono);white-space:pre;margin:0;padding:8px;overflow:auto}.history-source-changes p,.history-diff-empty{color:var(--muted-foreground);margin:12px 0 0;font-size:11px}.history-finding-list{gap:10px;margin-top:14px;display:grid}.history-finding-list details{border:1px solid var(--border);background:var(--vscode-editor-foreground,var(--foreground));border-radius:4px;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.history-finding-list details{background:color-mix(in srgb,var(--vscode-editor-foreground,var(--foreground)) 2%,var(--vscode-editor-background,var(--background)))}}.history-finding-list details{color:var(--vscode-editor-foreground,var(--foreground))}.history-finding-list details[open]{border-color:var(--vscode-focusBorder,var(--ring))}@supports (color:color-mix(in lab,red,red)){.history-finding-list details[open]{border-color:color-mix(in srgb,var(--vscode-focusBorder,var(--ring)) 58%,var(--border))}}.history-finding-list details[open]{box-shadow:inset 3px 0 0 var(--vscode-focusBorder,var(--ring))}.history-finding-list summary{cursor:pointer;grid-template-columns:28px minmax(0,1fr) 16px;align-items:center;gap:11px;min-height:58px;padding:11px 13px;list-style:none;display:grid}.history-finding-list summary::-webkit-details-marker{display:none}.history-finding-list summary:hover{background:var(--workbench-hover)}.history-finding-list summary:focus-visible{outline:1px solid var(--vscode-focusBorder,var(--ring));outline-offset:-2px}.history-finding-index{border:1px solid var(--border);background:var(--vscode-editor-background,var(--background));width:27px;height:27px;color:var(--vscode-focusBorder,var(--ring));font:600 10px/1 var(--compass-font-mono);border-radius:3px;justify-content:center;align-items:center;display:inline-flex}.history-finding-summary{gap:4px;min-width:0;display:grid}.history-finding-summary strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;line-height:1.35;overflow:hidden}.history-finding-summary small{color:var(--muted-foreground);font-size:10px}.history-finding-list summary>svg{width:15px;height:15px;color:var(--muted-foreground);transition:transform .12s}.history-finding-list details[open] summary>svg{transform:rotate(90deg)}.history-finding-body{border-top:1px solid var(--border);padding:0 14px 15px 52px}.history-finding-body>p{color:var(--muted-foreground);margin:13px 0 0;font-size:11px}.history-finding-body dl{gap:0;margin:0;display:grid}.history-finding-body dl>div{border-bottom:1px solid var(--border);grid-template-columns:minmax(110px,170px) minmax(0,1fr);gap:16px;padding:12px 0;display:grid}.history-finding-body dl>div:last-child{border-bottom:0;padding-bottom:0}.history-finding-body dt{color:var(--muted-foreground);letter-spacing:.06em;text-transform:uppercase;font-size:9px;font-weight:600}.history-finding-body dd{min-width:0;margin:0;font-size:11px;line-height:1.5}.history-finding-body dd ul{gap:5px;margin:0;padding-left:17px;display:grid}.history-finding-body dd pre{border:1px solid var(--border);background:var(--vscode-textCodeBlock-background,var(--muted));max-height:280px;color:var(--vscode-editor-foreground,var(--foreground));font:10px/1.55 var(--compass-font-mono);white-space:pre-wrap;border-radius:3px;margin:0;padding:9px 10px;overflow:auto}.history-finding-body dd code{font-family:var(--compass-font-mono)}.history-finding-muted{color:var(--muted-foreground);font-style:italic}.history-findings-empty{border:1px dashed var(--border);color:var(--muted-foreground);border-radius:4px;align-items:flex-start;gap:10px;margin-top:14px;padding:15px;display:flex}.history-findings-empty>svg{width:17px;height:17px;color:var(--vscode-focusBorder,var(--ring))}.history-findings-empty strong{color:var(--foreground);font-size:12px}.history-findings-empty p{margin:4px 0 0;font-size:11px}.history-standalone-evidence{gap:12px;margin-top:12px;display:grid}.history-standalone-evidence>section{border:1px solid var(--border);background:var(--vscode-editor-background,var(--background))}.history-graph-frame{border:1px solid var(--border);background:var(--vscode-editor-background,var(--background));height:max(400px,100vh - 190px);min-height:360px;margin-top:12px;display:grid;overflow:hidden}.history-graph-frame-tabbed{border:0;height:max(460px,100vh - 230px);min-height:420px;margin-top:0}.history-graph-ready,.history-graph-canvas{min-width:0;min-height:0}.history-graph-ready{flex-direction:column;display:flex}.history-graph-status{border-bottom:1px solid var(--border);background:var(--vscode-editorGroupHeader-tabsBackground,var(--background));min-height:30px;color:var(--muted-foreground);flex:none;padding:7px 10px;font-size:11px}.history-graph-status span{color:var(--foreground);font-family:var(--compass-font-mono)}.history-graph-canvas{isolation:isolate;flex:1;position:relative}.history-graph-canvas .compass-workspace{height:100%;min-height:0}.history-content>section:last-child{margin-top:12px}body.vscode-high-contrast .history-sidebar,body.vscode-high-contrast-light .history-sidebar,body.vscode-high-contrast .history-commit-details,body.vscode-high-contrast-light .history-commit-details,body.vscode-high-contrast .history-graph-frame,body.vscode-high-contrast-light .history-graph-frame,body.vscode-high-contrast .history-comparison,body.vscode-high-contrast-light .history-comparison,body.vscode-high-contrast .history-diff-evidence,body.vscode-high-contrast-light .history-diff-evidence,body.vscode-high-contrast .history-comparison-workspace,body.vscode-high-contrast-light .history-comparison-workspace,body.vscode-high-contrast .history-finding-list details,body.vscode-high-contrast-light .history-finding-list details,body.vscode-high-contrast .history-source-changes details,body.vscode-high-contrast-light .history-source-changes details,body.vscode-high-contrast .history-change-counts span,body.vscode-high-contrast-light .history-change-counts span,body.vscode-high-contrast .history-comparison-control select,body.vscode-high-contrast-light .history-comparison-control select,body.vscode-high-contrast .compass-change-legend,body.vscode-high-contrast-light .compass-change-legend,body.vscode-high-contrast .compass-change-badge,body.vscode-high-contrast-light .compass-change-badge{border-color:var(--vscode-contrastBorder,var(--ring));border-width:2px}@media(max-width:760px){.query-header{padding:10px}.query-heading-row,.query-composer{flex-direction:column;align-items:stretch}.query-mode{align-self:flex-start}.history-diff-toolbar{flex-wrap:wrap}.history-comparison-control{grid-template-columns:1fr;width:100%}.history-commit-actions{flex-direction:column;align-items:stretch}.history-commit-actions>button{align-self:flex-start}.history-comparison-control label{grid-column:auto}.history-diff-expand{margin-left:0}.history-comparison-tabs button{min-height:39px;padding-inline:11px}.history-evidence-panel{padding:12px}.history-findings-header{flex-direction:column;align-items:stretch}.history-findings-expand{align-self:flex-start}.history-finding-body{padding-left:14px}.history-finding-body dl>div{grid-template-columns:1fr;gap:5px}.query-composer-footer{flex-wrap:wrap}.query-params{flex:1 0 100%;max-width:none}.query-params input{max-width:none}.query-footer-actions{justify-content:flex-end;width:100%}.query-examples{padding-bottom:2px}.compass-load-shell[data-variant=architecture]{text-align:center;grid-template-rows:auto auto auto;grid-template-columns:1fr}.compass-load-shell[data-variant=architecture] .compass-load-visual,.compass-load-shell[data-variant=architecture] .compass-load-copy,.architecture-load-skeleton{grid-column:1}.compass-load-shell[data-variant=architecture] .compass-load-visual{margin:0 auto}.compass-load-shell[data-variant=architecture] .compass-load-steps{justify-content:center}.architecture-load-skeleton{grid-row:3;width:min(88vw,460px);height:190px;margin-top:14px}.history-shell{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.history-sidebar{border-right:0;border-bottom:1px solid var(--border)}.history-sidebar-header{padding:10px}.history-title p,.history-search,.history-rail{display:none}.history-mobile-select{color:var(--muted-foreground);gap:4px;margin-top:9px;font-size:10px;display:grid}.history-mobile-select select{padding:4px 7px}.history-content{padding:10px}.history-commit-heading{gap:8px}.history-commit-metadata{gap:3px;display:grid}.history-graph-frame{height:max(750px,102vh + 30px);margin-top:10px}.history-graph-canvas .compass-workspace{height:auto;min-height:max(720px,102vh)}}@media(max-width:420px){.query-params{flex-direction:column;align-items:stretch;gap:4px}.query-params input{flex:none;width:100%}}.architecture-nav{border-right:1px solid var(--border);background:var(--sidebar);min-height:0;color:var(--sidebar-foreground);flex-direction:column;display:flex}.architecture-nav-header{border-bottom:1px solid var(--border);padding:14px 14px 12px}.architecture-nav-header>span,.architecture-eyebrow{color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:600;display:block}.architecture-nav-header h1{text-overflow:ellipsis;white-space:nowrap;margin:4px 0 0;font-size:13px;font-weight:600;line-height:1.35;overflow:hidden}.architecture-section-list{flex:1;min-height:0;padding:5px;overflow:auto}.architecture-section-list>button{width:100%;min-height:48px;color:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:3px;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:7px;padding:7px 8px;display:grid}.architecture-section-list>button:hover{background:var(--workbench-hover);color:var(--workbench-hover-foreground)}.architecture-section-list>button[aria-current=page]{border-color:var(--vscode-list-activeSelectionBackground,var(--sidebar-primary));background:var(--sidebar-accent);color:var(--sidebar-accent-foreground)}.architecture-section-list svg{width:14px;height:14px;margin-top:2px}.architecture-section-list strong,.architecture-section-list small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.architecture-section-list strong{font-size:12px;font-weight:500}.architecture-section-list small{color:var(--muted-foreground);margin-top:2px;font-size:10px}.architecture-section-list>button[aria-current=page] small{color:inherit;opacity:.78}.architecture-stats{border-top:1px solid var(--border);color:var(--muted-foreground);text-align:center;grid-template-columns:repeat(3,1fr);gap:1px;padding:8px 6px;font-size:9px;display:grid}.architecture-stats strong{color:var(--sidebar-foreground);margin-bottom:1px;font-size:11px;display:block}.architecture-main{min-width:0;padding:14px clamp(14px,2.2vw,24px) 32px;overflow:auto}.architecture-global-search{z-index:20;max-width:760px;margin:0 auto 18px;position:sticky;top:0}.architecture-global-search>label{align-items:center;display:flex;position:relative}.architecture-global-search>label>svg{width:15px;height:15px;color:var(--vscode-input-placeholderForeground,var(--muted-foreground));position:absolute;left:10px}.architecture-global-search input{border:1px solid var(--vscode-input-border,var(--border));background:var(--vscode-input-background,var(--input));width:100%;height:34px;color:var(--vscode-input-foreground,var(--foreground));font:inherit;border-radius:3px;outline:none;padding:5px 84px 5px 33px;font-size:12px}.architecture-global-search input:focus-visible{border-color:var(--ring);outline:1px solid var(--ring);outline-offset:-1px}.architecture-global-search label>span{color:var(--muted-foreground);font-size:10px;position:absolute;right:8px}.architecture-search-results{border:1px solid var(--vscode-menu-border,var(--border));background:var(--vscode-menu-background,var(--popover));max-height:min(440px,65vh);color:var(--vscode-menu-foreground,var(--popover-foreground));box-shadow:0 4px 12px var(--vscode-widget-shadow,#00000047);border-radius:3px;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow:auto}.architecture-search-results>p{color:var(--muted-foreground);margin:0;padding:14px;font-size:12px}.architecture-search-results section+section{border-top:1px solid var(--vscode-menu-separatorBackground,var(--border))}.architecture-search-results h2{color:var(--muted-foreground);letter-spacing:.06em;text-transform:uppercase;margin:0;padding:7px 10px 4px;font-size:10px;font-weight:600}.architecture-search-results button{width:100%;color:inherit;text-align:left;background:0 0;border:0;padding:6px 10px;display:block}.architecture-search-results button:hover,.architecture-search-results button:focus-visible{background:var(--vscode-menu-selectionBackground,var(--vscode-list-activeSelectionBackground,var(--accent)));color:var(--vscode-menu-selectionForeground,var(--vscode-list-activeSelectionForeground,var(--accent-foreground)));outline:none}.architecture-search-results button span,.architecture-search-results button small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.architecture-search-results button span{font-size:12px}.architecture-search-results button small{color:inherit;opacity:.72;margin-top:2px;font-size:10px}.architecture-overview,.architecture-detail{max-width:1500px;margin-left:auto;margin-right:auto}.architecture-detail{margin-top:26px}.architecture-section-heading{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.architecture-section-heading h2{margin:0;font-size:15px;font-weight:600;line-height:1.35}.architecture-section-heading p{color:var(--muted-foreground);margin:3px 0 0;font-size:11px}.architecture-detail-count{color:var(--muted-foreground);white-space:nowrap;font-size:11px}.architecture-flow-grid,.architecture-symbol-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px;display:grid}.architecture-flow{border:1px solid var(--border);background:var(--vscode-editorWidget-background,var(--card));min-width:0;min-height:38px;color:var(--foreground);font:inherit;text-align:left;border-radius:3px;grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr) auto;align-items:center;gap:6px;padding:6px 8px;font-size:11px;display:grid}.architecture-flow:hover{border-color:var(--vscode-focusBorder,var(--ring));background:var(--workbench-hover)}.architecture-flow>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.architecture-flow>svg{width:13px;height:13px;color:var(--muted-foreground)}.architecture-flow-footer{justify-content:space-between;align-items:center;gap:10px;margin-top:8px;display:flex}.architecture-flow-footer p{color:var(--muted-foreground);margin:0;font-size:10px}.architecture-flow-footer button{border:1px solid var(--border);color:var(--foreground);font:inherit;background:0 0;border-radius:3px;padding:3px 7px;font-size:10px}.architecture-tab-content{min-height:280px;padding-top:8px}.architecture-detail [data-slot=tabs-list]{border-bottom:1px solid var(--border);justify-content:flex-start;gap:0;width:100%;height:30px;padding:0}.architecture-detail [data-slot=tabs-trigger]{min-width:76px;height:30px;color:var(--muted-foreground);border-radius:0;flex:none;padding:4px 10px;font-size:11px;font-weight:500}.architecture-detail [data-slot=tabs-trigger][data-state=active]{color:var(--foreground)}.architecture-detail [data-slot=tabs-trigger]>span{background:var(--vscode-badge-background,var(--muted));min-width:22px;color:var(--vscode-badge-foreground,var(--muted-foreground));font:9px/1.4 var(--compass-font-mono);border-radius:9px;margin-left:4px;padding:1px 5px}.architecture-detail [data-slot=tabs-trigger][data-state=active]>span{color:var(--vscode-badge-foreground,var(--foreground))}.architecture-detail [data-slot=tabs-trigger]:after{background:var(--vscode-tab-activeBorder,var(--ring));bottom:-1px}.architecture-symbol-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));margin-top:8px}.architecture-symbol-card{border:1px solid var(--border);background:var(--vscode-editorWidget-background,var(--card));min-width:0;min-height:92px;color:var(--card-foreground);border-radius:3px;grid-template-rows:auto 1fr;grid-template-columns:18px minmax(0,1fr);gap:0 7px;padding:9px;display:grid}.architecture-symbol-card>svg{width:15px;height:15px;color:var(--vscode-symbolIcon-functionForeground,var(--muted-foreground));margin-top:1px}.architecture-symbol-card h3,.architecture-symbol-card p{text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.architecture-symbol-card h3{color:var(--vscode-editor-foreground,var(--foreground));font-size:12px;font-weight:600}.architecture-symbol-card p{color:var(--muted-foreground);margin-top:2px;font-size:10px}.architecture-symbol-card>button,.architecture-symbol-card>span{color:var(--workbench-link);font:10px/1.35 var(--compass-font-mono);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;grid-column:1/span 2;align-self:end;margin-top:9px;padding:0;overflow:hidden}.architecture-symbol-card>button:hover{text-decoration:underline}.architecture-symbol-card>span{color:var(--vscode-disabledForeground,var(--compass-faint))}.architecture-call-table{border:1px solid var(--border);border-radius:3px;max-height:min(54vh,620px);margin-top:8px;overflow:auto}.architecture-call-table table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:620px;font-size:11px}.architecture-call-table thead{z-index:2;background:var(--workbench-table-header);position:sticky;top:0}.architecture-call-table th,.architecture-call-table td{border-bottom:1px solid var(--border);text-align:left;text-overflow:ellipsis;white-space:nowrap;padding:7px 9px;overflow:hidden}.architecture-call-table th{color:var(--muted-foreground);padding:0;font-weight:500}.architecture-call-table th button{width:100%;min-height:30px;color:inherit;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:5px;padding:6px 9px;display:flex}.architecture-call-table th button:hover{background:var(--workbench-hover);color:var(--foreground)}.architecture-call-table tbody tr:hover{background:var(--workbench-hover)}.architecture-call-table tr:last-child td{border-bottom:0}.architecture-call-table th:nth-child(2),.architecture-call-table th:nth-child(4),.architecture-call-table td:nth-child(2),.architecture-call-table td:nth-child(4){width:126px}.architecture-shell button:focus-visible,.architecture-shell input:focus-visible{outline:2px solid var(--ring);outline-offset:1px}body.vscode-high-contrast .architecture-section-list>button[aria-current=page],body.vscode-high-contrast-light .architecture-section-list>button[aria-current=page],body.vscode-high-contrast .architecture-flow:focus-visible,body.vscode-high-contrast-light .architecture-flow:focus-visible,body.vscode-high-contrast .architecture-symbol-card,body.vscode-high-contrast-light .architecture-symbol-card,body.vscode-high-contrast .architecture-call-table,body.vscode-high-contrast-light .architecture-call-table{border-width:2px;border-color:var(--vscode-contrastBorder,var(--ring))}@media(max-width:760px){.architecture-shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}.architecture-nav{border-right:0;border-bottom:1px solid var(--border);max-height:38vh}.architecture-main{padding:10px 10px 24px}.architecture-global-search{margin-bottom:14px}.architecture-section-heading{align-items:flex-start}.architecture-flow-grid,.architecture-symbol-grid{grid-template-columns:1fr}.architecture-flow-footer,.workbench-pagination{flex-direction:column;align-items:flex-start}.workbench-collection-toolbar{flex-direction:column;align-items:stretch}.workbench-search{width:100%;max-width:none}}.architecture-workspace{--architecture-border:var(--vscode-panel-border,var(--border));--architecture-surface:var(--vscode-editor-background,var(--background));--architecture-raised:var(--vscode-editorWidget-background,var(--vscode-sideBar-background,var(--card)));background:var(--architecture-surface);height:100vh;min-height:520px;color:var(--vscode-editor-foreground,var(--foreground));grid-template-columns:minmax(210px,240px) minmax(520px,1fr) minmax(300px,350px);display:grid;overflow:hidden}.architecture-workspace[data-inspector-open=false]{grid-template-columns:minmax(210px,240px) minmax(520px,1fr)}.architecture-rail,.architecture-inspector{background:var(--vscode-sideBar-background,var(--sidebar));min-width:0;min-height:0}.architecture-rail{border-right:1px solid var(--architecture-border);grid-template-rows:auto 1fr auto;display:grid}.architecture-rail-header,.architecture-inspector-header{border-bottom:1px solid var(--architecture-border);padding:16px}.architecture-rail-header>span,.architecture-inspector-header>span{color:var(--vscode-descriptionForeground,var(--muted-foreground));font:700 9px/1.2 var(--compass-font-mono);letter-spacing:.13em;text-transform:uppercase}.architecture-rail-header h1,.architecture-inspector-header h2{text-overflow:ellipsis;margin:7px 0 0;font-size:14px;font-weight:650;line-height:1.35;overflow:hidden}.architecture-rail-header p,.architecture-inspector-header p{color:var(--vscode-descriptionForeground,var(--muted-foreground));margin:5px 0 0;font-size:10px}.architecture-rail nav{min-height:0;padding:6px;overflow:auto}.architecture-rail nav>button{width:100%;color:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:5px;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:7px;padding:8px;display:grid}.architecture-rail nav>button:hover,.architecture-rail nav>button:focus-visible{background:var(--vscode-list-hoverBackground,var(--workbench-hover))}.architecture-rail nav>button[aria-current=page]{border-color:var(--vscode-focusBorder,var(--ring))}@supports (color:color-mix(in lab,red,red)){.architecture-rail nav>button[aria-current=page]{border-color:color-mix(in srgb,var(--vscode-focusBorder,var(--ring)) 48%,transparent)}}.architecture-rail nav>button[aria-current=page]{background:var(--vscode-list-activeSelectionBackground,var(--vscode-sideBarSectionHeader-background,var(--sidebar-accent)));color:var(--vscode-list-activeSelectionForeground,inherit)}.architecture-rail nav>button[data-empty=true]{opacity:.57}.architecture-rail nav svg{width:14px;height:14px;color:var(--vscode-symbolIcon-moduleForeground,var(--compass-focus))}.architecture-rail nav strong,.architecture-rail nav small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.architecture-rail nav strong{font-size:11px;font-weight:600}.architecture-rail nav small{color:var(--vscode-descriptionForeground,var(--muted-foreground));font:9px/1.35 var(--compass-font-mono);margin-top:2px}.architecture-rail nav i{background:var(--vscode-badge-background,var(--muted));min-width:24px;color:var(--vscode-badge-foreground,var(--muted-foreground));font:normal 9px/1.3 var(--compass-font-mono);text-align:center;border-radius:10px;padding:2px 5px}.architecture-scope-totals{border-top:1px solid var(--architecture-border);color:var(--vscode-descriptionForeground,var(--muted-foreground));text-align:center;grid-template-columns:repeat(3,1fr);padding:10px 6px;font-size:8px;display:grid}.architecture-scope-totals strong{color:var(--vscode-sideBar-foreground,var(--foreground));font:600 10px/1.2 var(--compass-font-mono);margin-bottom:2px;display:block}.architecture-stage{grid-template-rows:auto auto minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.architecture-command-bar{border-bottom:1px solid var(--architecture-border);background:var(--architecture-surface);grid-template-columns:minmax(240px,1fr) auto auto 30px;align-items:center;gap:8px;padding:9px 12px;display:grid}.architecture-inspector-toggle{border:1px solid var(--architecture-border);background:var(--architecture-raised);width:30px;height:30px;color:var(--vscode-descriptionForeground,var(--muted-foreground));border-radius:4px;place-items:center;display:grid}.architecture-inspector-toggle:hover{background:var(--vscode-toolbar-hoverBackground,var(--workbench-hover));color:var(--foreground)}.architecture-inspector-toggle svg{width:14px;height:14px}.architecture-search{min-width:0;position:relative}.architecture-search>svg,.architecture-detail-filter>svg{z-index:1;width:13px;height:13px;color:var(--vscode-input-placeholderForeground,var(--muted-foreground));pointer-events:none;position:absolute;top:50%;left:9px;transform:translateY(-50%)}.architecture-search>input,.architecture-detail-filter>input,.architecture-evidence-filter select{border:1px solid var(--vscode-input-border,var(--architecture-border));background:var(--vscode-input-background,var(--input));width:100%;height:30px;color:var(--vscode-input-foreground,var(--foreground));font:11px/1.3 var(--vscode-font-family,system-ui);border-radius:4px;outline:none}.architecture-search>input,.architecture-detail-filter>input{padding:4px 72px 4px 29px}.architecture-search>input:focus,.architecture-detail-filter>input:focus,.architecture-evidence-filter select:focus{border-color:var(--vscode-focusBorder,var(--ring));outline:1px solid var(--vscode-focusBorder,var(--ring));outline-offset:-1px}.architecture-search>span{color:var(--vscode-descriptionForeground,var(--muted-foreground));font:9px/1.4 var(--compass-font-mono);position:absolute;top:8px;right:8px}.architecture-search-popover{z-index:30;border:1px solid var(--vscode-menu-border,var(--architecture-border));background:var(--vscode-menu-background,var(--popover));max-height:min(440px,70vh);box-shadow:0 8px 24px var(--vscode-widget-shadow,#00000047);border-radius:5px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto}.architecture-search-popover>button{width:100%;color:var(--vscode-menu-foreground,var(--foreground));text-align:left;background:0 0;border:0;padding:7px 10px;display:block}.architecture-search-popover>button:hover,.architecture-search-popover>button:focus-visible{background:var(--vscode-menu-selectionBackground,var(--accent));color:var(--vscode-menu-selectionForeground,var(--accent-foreground))}.architecture-search-popover strong,.architecture-search-popover small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.architecture-search-popover strong{font-size:11px}.architecture-search-popover small{opacity:.75;margin-top:2px;font-size:9px}.architecture-search-popover p{color:var(--muted-foreground);margin:0;padding:16px;font-size:11px}.architecture-scope-switch{border:1px solid var(--architecture-border);border-radius:4px;display:flex;overflow:hidden}.architecture-scope-switch button{min-height:28px;color:var(--vscode-descriptionForeground,var(--muted-foreground));font:10px/1.2 var(--compass-font-mono);background:0 0;border:0;padding:4px 9px}.architecture-scope-switch button+button{border-left:1px solid var(--architecture-border)}.architecture-scope-switch button[aria-pressed=true]{background:var(--vscode-button-secondaryBackground,var(--accent));color:var(--vscode-button-secondaryForeground,var(--accent-foreground))}.architecture-evidence-filter{align-items:center;gap:5px;display:flex}.architecture-evidence-filter>svg{width:13px;height:13px;color:var(--vscode-descriptionForeground,var(--muted-foreground))}.architecture-evidence-filter select{width:auto;min-width:110px;padding:3px 22px 3px 7px}.architecture-context-strip{border-bottom:1px solid var(--architecture-border);background:var(--vscode-breadcrumb-background,var(--architecture-raised));min-height:34px;color:var(--vscode-descriptionForeground,var(--muted-foreground));font:9px/1.3 var(--compass-font-mono);flex-wrap:wrap;align-items:center;gap:6px 14px;padding:6px 12px;display:flex}.architecture-context-strip strong{color:var(--vscode-foreground,var(--foreground));font-weight:600}.architecture-coverage-warning{color:var(--vscode-editorWarning-foreground,var(--warning));align-items:center;gap:4px;display:inline-flex}.architecture-coverage-warning svg{width:12px;height:12px}.architecture-map-panel{border:1px solid var(--architecture-border);background:var(--architecture-raised);border-radius:10px;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;margin:clamp(14px,2vw,24px);display:grid;position:relative;overflow:hidden;box-shadow:0 12px 32px #0000001a}.architecture-map-header{border-bottom:1px solid var(--architecture-border);background:var(--architecture-raised);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;min-width:0;padding:14px 16px;display:flex}.architecture-map-intro{gap:3px;min-width:min(100%,260px);display:grid}.architecture-map-intro>span{color:var(--vscode-descriptionForeground,var(--muted-foreground));font:700 8px/1.2 var(--compass-font-mono);letter-spacing:.14em;text-transform:uppercase}.architecture-map-intro>strong{overflow-wrap:anywhere;font-size:12px;font-weight:650;line-height:1.35}.architecture-map-intro>small{max-width:560px;color:var(--vscode-descriptionForeground,var(--muted-foreground));font-size:9.5px;line-height:1.45}.architecture-map-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.architecture-map-viewport{overscroll-behavior:contain;scrollbar-color:var(--vscode-scrollbarSlider-background,var(--muted)) transparent;scrollbar-gutter:stable;min-width:0;height:auto;min-height:0;box-shadow:inset -26px 0 22px -24px var(--foreground);position:relative;overflow:auto}@supports (color:color-mix(in lab,red,red)){.architecture-map-viewport{box-shadow:inset -26px 0 22px -24px color-mix(in srgb,var(--foreground) 30%,transparent)}}.architecture-map-viewport{background:linear-gradient(var(--vscode-editorRuler-foreground,var(--border)) 1px,transparent 1px),linear-gradient(90deg,var(--vscode-editorRuler-foreground,var(--border)) 1px,transparent 1px),var(--architecture-surface)}@supports (color:color-mix(in lab,red,red)){.architecture-map-viewport{background:linear-gradient(color-mix(in srgb,var(--vscode-editorRuler-foreground,var(--border)) 9%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--vscode-editorRuler-foreground,var(--border)) 9%,transparent) 1px,transparent 1px),var(--architecture-surface)}}.architecture-map-viewport{background-size:32px 32px}.architecture-map-viewport[data-scroll-position=end],.architecture-map-viewport[data-scroll-position=none]{box-shadow:none}.architecture-map-canvas{min-width:100%;min-height:100%}.architecture-route-mode{border:1px solid var(--architecture-border);background:var(--architecture-surface);border-radius:5px;display:flex;overflow:hidden}.architecture-route-mode button{min-width:66px;height:27px;color:var(--vscode-descriptionForeground,var(--muted-foreground));font:9px/1 var(--compass-font-mono);background:0 0;border:0;padding:0 9px}.architecture-route-mode button+button{border-left:1px solid var(--architecture-border)}.architecture-route-mode button:hover{background:var(--vscode-toolbar-hoverBackground,var(--workbench-hover));color:var(--vscode-foreground,var(--foreground))}.architecture-route-mode button[aria-pressed=true]{background:var(--vscode-list-activeSelectionBackground,var(--accent))}@supports (color:color-mix(in lab,red,red)){.architecture-route-mode button[aria-pressed=true]{background:color-mix(in srgb,var(--vscode-list-activeSelectionBackground,var(--accent)) 72%,var(--architecture-raised))}}.architecture-route-mode button[aria-pressed=true]{color:var(--vscode-list-activeSelectionForeground,var(--foreground))}.architecture-map-toolbar{border:1px solid var(--architecture-border);background:var(--architecture-surface);border-radius:5px;align-items:center;display:flex;overflow:hidden}.architecture-map-toolbar button{width:28px;height:27px;color:var(--foreground);background:0 0;border:0;place-items:center;display:grid}.architecture-map-toolbar button:hover{background:var(--workbench-hover)}.architecture-map-toolbar button:disabled{opacity:.38;pointer-events:none}.architecture-map-toolbar button+button,.architecture-map-toolbar span+button{border-left:1px solid var(--architecture-border)}.architecture-map-toolbar svg{width:13px;height:13px}.architecture-map-toolbar span{min-width:40px;color:var(--muted-foreground);font:9px/27px var(--compass-font-mono);text-align:center;padding:0 5px}.architecture-map{cursor:grab;touch-action:none;width:100%;height:100%;display:block}.architecture-map:active{cursor:grabbing}.architecture-arrow-default path{fill:var(--vscode-textLink-foreground,var(--compass-focus))}.architecture-arrow-incoming path{fill:var(--vscode-symbolIcon-interfaceForeground,#b7a1ff)}.architecture-arrow-outgoing path{fill:var(--vscode-charts-blue,#49a6ff)}.architecture-map-lanes{pointer-events:none}.architecture-map-lanes rect{fill:var(--architecture-raised)}@supports (color:color-mix(in lab,red,red)){.architecture-map-lanes rect{fill:color-mix(in srgb,var(--architecture-raised) 8%,transparent)}}.architecture-map-lanes rect{stroke:var(--architecture-border)}@supports (color:color-mix(in lab,red,red)){.architecture-map-lanes rect{stroke:color-mix(in srgb,var(--architecture-border) 20%,transparent)}}.architecture-map-lanes rect{stroke-width:1px}.architecture-map-lanes text{fill:var(--vscode-descriptionForeground,var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.architecture-map-lanes text{fill:color-mix(in srgb,var(--vscode-descriptionForeground,var(--muted-foreground)) 72%,transparent)}}.architecture-map-lanes text{font:700 8px/1 var(--compass-font-mono);letter-spacing:.12em;text-anchor:middle;text-transform:uppercase}.architecture-map-lanes .architecture-map-direction{fill:var(--vscode-descriptionForeground,var(--muted-foreground))}@supports (color:color-mix(in lab,red,red)){.architecture-map-lanes .architecture-map-direction{fill:color-mix(in srgb,var(--vscode-descriptionForeground,var(--muted-foreground)) 52%,transparent)}}.architecture-map-lanes .architecture-map-direction{letter-spacing:.16em;text-anchor:start;font-size:7px}.architecture-route-line{fill:none;stroke:var(--vscode-textLink-foreground,var(--compass-focus));opacity:var(--architecture-route-opacity,.2);stroke-linecap:round;stroke-linejoin:round;transition:opacity .14s,stroke-width .14s}.architecture-routes g[data-evidence=inferred] .architecture-route-line{stroke:var(--vscode-editorWarning-foreground,var(--warning));stroke-dasharray:6 5}.architecture-routes g[data-direction=backward] .architecture-route-line{stroke-dasharray:3 5}.architecture-route-hit{fill:none;stroke:#0000;stroke-width:16px;cursor:pointer}.architecture-routes g[data-selected=true] .architecture-route-line{opacity:1;filter:drop-shadow(0 0 3px var(--compass-focus))}@supports (color:color-mix(in lab,red,red)){.architecture-routes g[data-selected=true] .architecture-route-line{filter:drop-shadow(0 0 3px color-mix(in srgb,var(--compass-focus) 55%,transparent))}}.architecture-routes g[data-focus-direction=incoming] .architecture-route-line{stroke:var(--vscode-symbolIcon-interfaceForeground,#b7a1ff);opacity:.86}.architecture-routes g[data-focus-direction=outgoing] .architecture-route-line{stroke:var(--vscode-charts-blue,#49a6ff);opacity:.9}.architecture-routes g[data-dimmed=true]{opacity:.09}.architecture-map-panel[data-route-mode=key] .architecture-routes g[data-dimmed=true]{opacity:.38}.architecture-map-nodes g[data-dimmed=true]{opacity:.27}.architecture-map-panel[data-route-mode=key] .architecture-map-nodes g[data-dimmed=true]{opacity:.48}.architecture-routes g:focus-visible .architecture-route-line{stroke:var(--vscode-focusBorder,var(--ring));opacity:1}.architecture-map-nodes g{cursor:grab;touch-action:none;transition:opacity .12s}.architecture-map-nodes g[data-dragging=true]{cursor:grabbing}.architecture-map-node-card{fill:var(--vscode-editorWidget-background,var(--card));stroke:var(--vscode-symbolIcon-moduleForeground,var(--compass-focus))}@supports (color:color-mix(in lab,red,red)){.architecture-map-node-card{stroke:color-mix(in srgb,var(--vscode-symbolIcon-moduleForeground,var(--compass-focus)) 25%,var(--architecture-border))}}.architecture-map-node-card{stroke-width:1px}.architecture-map-node-shadow{fill:#0000002b;stroke:none;transform:translateY(3px)}.architecture-map-node-accent{fill:var(--vscode-symbolIcon-moduleForeground,var(--compass-focus));opacity:.62;pointer-events:none}.architecture-map-nodes g:hover .architecture-map-node-card,.architecture-map-nodes g:focus-visible .architecture-map-node-card,.architecture-map-nodes g[data-selected=true] .architecture-map-node-card,.architecture-map-nodes g[data-dragging=true] .architecture-map-node-card{fill:var(--vscode-list-activeSelectionBackground,var(--accent))}@supports (color:color-mix(in lab,red,red)){.architecture-map-nodes g:hover .architecture-map-node-card,.architecture-map-nodes g:focus-visible .architecture-map-node-card,.architecture-map-nodes g[data-selected=true] .architecture-map-node-card,.architecture-map-nodes g[data-dragging=true] .architecture-map-node-card{fill:color-mix(in srgb,var(--vscode-list-activeSelectionBackground,var(--accent)) 38%,var(--vscode-editorWidget-background,var(--card)))}}.architecture-map-nodes g:hover .architecture-map-node-card,.architecture-map-nodes g:focus-visible .architecture-map-node-card,.architecture-map-nodes g[data-selected=true] .architecture-map-node-card,.architecture-map-nodes g[data-dragging=true] .architecture-map-node-card{stroke:var(--vscode-focusBorder,var(--ring));stroke-width:1.6px}.architecture-map-nodes g[data-selected=true] .architecture-map-node-accent,.architecture-map-nodes g[data-dragging=true] .architecture-map-node-accent{opacity:1}.architecture-map-nodes g[data-dragging=true] .architecture-map-node-shadow{transform:translateY(7px)}.architecture-map-node-name{fill:var(--vscode-editor-foreground,var(--foreground));font:650 12px/1.2 var(--vscode-font-family,system-ui);pointer-events:none}.architecture-map-node-meta{fill:var(--vscode-descriptionForeground,var(--muted-foreground));font:8.5px/1.2 var(--compass-font-mono);pointer-events:none}.architecture-map-node-grip{fill:var(--vscode-descriptionForeground,var(--muted-foreground));opacity:.45;pointer-events:none}.architecture-map-nodes g:hover .architecture-map-node-grip,.architecture-map-nodes g[data-dragging=true] .architecture-map-node-grip{opacity:.9}.architecture-map-legend{min-width:0;color:var(--muted-foreground);font:8px/1.2 var(--compass-font-mono);flex-wrap:wrap;gap:7px 12px;display:flex}.architecture-map-legend span{align-items:center;gap:4px;display:inline-flex}.architecture-map-legend button{color:var(--vscode-textLink-foreground,var(--workbench-link));font:inherit;background:0 0;border:0;padding:0}.architecture-map-legend button:hover{text-decoration:underline}.architecture-map-legend i,.architecture-map-legend svg{background:var(--vscode-textLink-foreground,var(--compass-focus));flex:none;width:18px;height:2px}.architecture-map-legend svg{background:0 0;width:11px;height:11px}.architecture-map-legend i[data-evidence=inferred]{background:repeating-linear-gradient(90deg,var(--vscode-editorWarning-foreground,var(--warning)) 0 4px,transparent 4px 7px)}.architecture-map-legend i[data-direction=incoming]{background:var(--vscode-symbolIcon-interfaceForeground,#b7a1ff)}.architecture-map-legend i[data-direction=outgoing]{background:var(--vscode-charts-blue,#49a6ff)}.architecture-map-legend i[data-direction=bidirectional]{width:18px;height:12px;color:var(--vscode-textLink-foreground,var(--compass-focus));font:normal 10px/1 var(--compass-font-mono);background:0 0;place-items:center;display:grid}.architecture-map-legend i[data-direction=feedback]{background:repeating-linear-gradient(90deg,var(--vscode-textLink-foreground,var(--compass-focus)) 0 3px,transparent 3px 6px)}.architecture-map-table{flex:none;min-width:0;font-size:9px}.architecture-map-table summary{cursor:pointer;color:var(--muted-foreground);white-space:nowrap;padding:3px 0}.architecture-map-table[open]>div{z-index:8;border:1px solid var(--architecture-border);background:var(--architecture-raised);border-radius:6px;width:min(620px,100% - 24px);max-height:280px;position:absolute;bottom:42px;right:12px;overflow:auto;box-shadow:0 8px 24px #00000038}.architecture-map-table table{border-collapse:collapse;table-layout:fixed;width:100%}.architecture-map-table th,.architecture-map-table td{border-top:1px solid var(--architecture-border);overflow-wrap:anywhere;text-align:left;padding:5px 7px}.architecture-map-empty{min-width:min(100%,760px);min-height:100%;color:var(--muted-foreground);text-align:center;align-content:center;place-items:center;gap:5px;padding:30px;font-size:11px;display:grid}.architecture-map-empty strong{color:var(--foreground);font-size:12px}.architecture-map-footer{border-top:1px solid var(--architecture-border);background:var(--architecture-raised);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 18px;min-width:0;min-height:40px;padding:8px 12px;display:flex;position:relative}.architecture-inspector{border-left:1px solid var(--architecture-border);grid-template-rows:auto auto auto 1fr auto;display:grid}.architecture-route-metrics,.architecture-evidence-counts{color:var(--muted-foreground);font:9px/1.3 var(--compass-font-mono);flex-wrap:wrap;gap:5px 12px;margin-top:9px;display:flex}.architecture-route-metrics span{align-items:center;gap:3px;display:inline-flex}.architecture-route-metrics svg{width:11px;height:11px}.architecture-inspector-tabs{border-bottom:1px solid var(--architecture-border);display:flex}.architecture-inspector-tabs button{min-height:32px;color:var(--muted-foreground);background:0 0;border:0;flex:1;font-size:10px;position:relative}.architecture-inspector-tabs button[aria-selected=true]{color:var(--foreground)}.architecture-inspector-tabs button[aria-selected=true]:after{background:var(--vscode-focusBorder,var(--ring));content:"";height:2px;position:absolute;bottom:-1px;left:10px;right:10px}.architecture-detail-filter{border-bottom:1px solid var(--architecture-border);padding:8px 10px;display:block;position:relative}.architecture-detail-filter>svg{left:19px}.architecture-inspector-scroll{min-height:0;padding:8px;overflow:auto}.architecture-symbol-list,.architecture-call-list{gap:6px;display:grid}.architecture-symbol-list article,.architecture-call-list article{border:1px solid var(--architecture-border);background:var(--vscode-editorWidget-background,var(--card));border-radius:5px;min-width:0;padding:9px}.architecture-symbol-list article{grid-template-columns:16px minmax(0,1fr);gap:7px;display:grid}.architecture-symbol-list svg{width:14px;height:14px;color:var(--vscode-symbolIcon-functionForeground,var(--compass-focus))}.architecture-symbol-list strong,.architecture-symbol-list small,.architecture-symbol-list article button,.architecture-symbol-list article span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.architecture-symbol-list strong,.architecture-call-list strong{font-size:10px;font-weight:600}.architecture-symbol-list small,.architecture-call-list small{color:var(--muted-foreground);font:8.5px/1.35 var(--compass-font-mono);margin-top:2px}.architecture-symbol-list article button,.architecture-symbol-list article span{width:100%;color:var(--vscode-textLink-foreground,var(--workbench-link));font:8.5px/1.3 var(--compass-font-mono);text-align:left;background:0 0;border:0;margin-top:7px;padding:0}.architecture-symbol-list article span{color:var(--vscode-disabledForeground,var(--muted-foreground))}.architecture-call-list article>div:first-child{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:5px;display:grid}.architecture-call-list article>div:first-child strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.architecture-call-list article>div:first-child span{color:var(--vscode-textLink-foreground,var(--compass-focus))}.architecture-call-list article>div:last-child{gap:8px;margin-top:7px;display:flex}.architecture-call-list button{color:var(--vscode-textLink-foreground,var(--workbench-link));background:0 0;border:0;padding:0;font-size:8.5px}.architecture-call-list button:hover,.architecture-symbol-list button:hover{text-decoration:underline}.architecture-inspector>.workbench-pagination{border-top:1px solid var(--architecture-border);padding:7px 9px}.architecture-inspector-empty{min-height:160px;color:var(--muted-foreground);text-align:center;place-items:center;padding:24px;font-size:10px;line-height:1.5;display:grid}.architecture-loading-rows{gap:7px;display:grid}.architecture-loading-rows i{border:1px solid var(--architecture-border);background:linear-gradient(90deg,var(--architecture-raised),var(--architecture-raised),var(--architecture-raised));border-radius:5px;height:58px}@supports (color:color-mix(in lab,red,red)){.architecture-loading-rows i{background:linear-gradient(90deg,var(--architecture-raised),color-mix(in srgb,var(--architecture-raised) 72%,var(--foreground)),var(--architecture-raised))}}.architecture-loading-rows i{background-size:240% 100%;animation:1.3s infinite architecture-row-load}@keyframes architecture-row-load{to{background-position:-140% 0}}.architecture-workspace button:focus-visible,.architecture-workspace [role=button]:focus-visible,.architecture-workspace select:focus-visible,.architecture-workspace input:focus-visible,.architecture-workspace summary:focus-visible{outline:2px solid var(--vscode-focusBorder,var(--ring));outline-offset:-1px}body.vscode-high-contrast .architecture-map-node-card,body.vscode-high-contrast-light .architecture-map-node-card,body.vscode-high-contrast .architecture-map-panel,body.vscode-high-contrast-light .architecture-map-panel,body.vscode-high-contrast .architecture-symbol-list article,body.vscode-high-contrast-light .architecture-symbol-list article,body.vscode-high-contrast .architecture-call-list article,body.vscode-high-contrast-light .architecture-call-list article{stroke:var(--vscode-contrastBorder,var(--ring));border-color:var(--vscode-contrastBorder,var(--ring));stroke-width:2px}body.vscode-high-contrast .architecture-map-panel,body.vscode-high-contrast-light .architecture-map-panel{box-shadow:none;border-width:2px}@media(max-width:1100px){.architecture-workspace{grid-template-columns:200px minmax(440px,1fr) 300px}.architecture-workspace[data-inspector-open=false]{grid-template-columns:200px minmax(440px,1fr)}.architecture-command-bar{grid-template-columns:minmax(220px,1fr) auto 30px}.architecture-evidence-filter{grid-area:2/2}.architecture-inspector-toggle{grid-area:1/3}}@media(max-width:1180px){.architecture-workspace{grid-template-rows:minmax(650px,78vh) auto;grid-template-columns:minmax(190px,220px) minmax(0,1fr);height:auto;min-height:100vh;overflow:auto}.architecture-workspace[data-inspector-open=false]{grid-template-columns:minmax(190px,220px) minmax(0,1fr)}.architecture-rail{grid-row:1/span 2}.architecture-stage{min-height:650px}.architecture-inspector{border-top:1px solid var(--architecture-border);border-left:0;height:min(560px,72vh);min-height:440px;overflow:hidden}}@media(max-width:620px){.architecture-workspace{display:block}.architecture-rail{border-right:0;border-bottom:1px solid var(--architecture-border);max-height:310px}.architecture-rail nav{max-height:190px}.architecture-stage{min-height:650px}.architecture-command-bar{grid-template-columns:1fr}.architecture-evidence-filter,.architecture-inspector-toggle{grid-area:auto}.architecture-map-legend{display:none}}@media(prefers-reduced-motion:reduce){.architecture-route-line,.architecture-map-nodes g{transition:none}.architecture-loading-rows i{animation:none}}.call-guide-shell{box-sizing:border-box;background:radial-gradient(circle at 77% 8%,var(--compass-focus),transparent 28rem),var(--vscode-editor-background,var(--background));min-height:100vh;padding:clamp(28px,5vw,72px) clamp(20px,5vw,72px) 40px;position:relative;overflow:auto}@supports (color:color-mix(in lab,red,red)){.call-guide-shell{background:radial-gradient(circle at 77% 8%,color-mix(in srgb,var(--compass-focus) 9%,transparent),transparent 28rem),var(--vscode-editor-background,var(--background))}}.call-guide-shell{isolation:isolate}.call-guide-grid{z-index:-1;opacity:.19;background-image:linear-gradient(var(--compass-grid) 1px,transparent 1px),linear-gradient(90deg,var(--compass-grid) 1px,transparent 1px);pointer-events:none;background-size:32px 32px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 68%);mask-image:linear-gradient(#000,#0000 68%)}.call-guide-hero,.call-guide-section,.call-guide-footer{width:min(1120px,100%);margin-inline:auto}.call-guide-hero{border-bottom:1px solid var(--vscode-panel-border,var(--border));grid-template-columns:minmax(300px,.9fr) minmax(420px,1.1fr);align-items:center;gap:clamp(40px,7vw,96px);min-height:330px;padding-bottom:clamp(36px,5vw,64px);display:grid}.call-guide-kicker,.call-guide-overline,.call-guide-route-label,.call-guide-route-readout,.call-guide-shortcut,.call-guide-coverage-badge{font-family:var(--compass-font-mono);text-transform:uppercase;letter-spacing:.12em}.call-guide-kicker{color:var(--vscode-textLink-foreground,var(--compass-focus));align-items:center;gap:8px;font-size:10px;font-weight:700;display:inline-flex}.call-guide-kicker svg{width:14px;height:14px}.call-guide-intro h1{max-width:650px;color:var(--vscode-editor-foreground,var(--foreground));letter-spacing:-.052em;text-wrap:balance;margin:18px 0 0;font-size:clamp(34px,5vw,62px);font-weight:620;line-height:.98}.call-guide-lead{max-width:580px;color:var(--vscode-descriptionForeground,var(--muted-foreground));margin:22px 0 0;font-size:clamp(14px,1.7vw,17px);line-height:1.65}.call-guide-source{border:1px solid var(--vscode-panel-border,var(--border));background:var(--vscode-editorWidget-background,var(--card));border-radius:4px;align-items:center;gap:8px;max-width:min(100%,560px);min-height:34px;margin-top:24px;padding:0 10px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.call-guide-source{background:color-mix(in srgb,var(--vscode-editorWidget-background,var(--card)) 88%,transparent)}}.call-guide-source{color:var(--vscode-descriptionForeground,var(--muted-foreground));font:11px/1.3 var(--compass-font-mono)}.call-guide-source>span:not(.call-guide-source-light){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.call-guide-source>svg{flex:none;width:14px;height:14px}.call-guide-source code{border-left:1px solid var(--vscode-panel-border,var(--border));color:var(--vscode-textLink-foreground,var(--compass-focus));font:inherit;flex:none;margin-left:3px;padding-left:9px}.call-guide-source-light{background:var(--vscode-disabledForeground,var(--compass-faint));border-radius:50%;flex:none;width:6px;height:6px}.call-guide-source[data-ready=true] .call-guide-source-light{background:var(--vscode-testing-iconPassed,var(--compass-success));box-shadow:0 0 9px var(--vscode-testing-iconPassed,var(--compass-success))}@supports (color:color-mix(in lab,red,red)){.call-guide-source[data-ready=true] .call-guide-source-light{box-shadow:0 0 9px color-mix(in srgb,var(--vscode-testing-iconPassed,var(--compass-success)) 60%,transparent)}}.call-guide-route{border:1px solid var(--vscode-panel-border,var(--border));background:linear-gradient(135deg,var(--vscode-editorWidget-background,var(--card)),var(--vscode-editor-background,var(--background)));border-radius:8px;padding:16px;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.call-guide-route{background:linear-gradient(135deg,color-mix(in srgb,var(--vscode-editorWidget-background,var(--card)) 94%,transparent),color-mix(in srgb,var(--vscode-editor-background,var(--background)) 82%,transparent))}}.call-guide-route{box-shadow:0 24px 70px #00000038}.call-guide-route:before{content:"";border:1px solid var(--compass-focus);width:230px;height:230px;position:absolute;top:46%;left:50%}@supports (color:color-mix(in lab,red,red)){.call-guide-route:before{border:1px solid color-mix(in srgb,var(--compass-focus) 14%,transparent)}}.call-guide-route:before{box-shadow:0 0 0 44px var(--compass-focus),0 0 0 88px var(--compass-focus);border-radius:50%;transform:translate(-50%,-50%)}@supports (color:color-mix(in lab,red,red)){.call-guide-route:before{box-shadow:0 0 0 44px color-mix(in srgb,var(--compass-focus) 3%,transparent),0 0 0 88px color-mix(in srgb,var(--compass-focus) 2%,transparent)}}.call-guide-route:before{pointer-events:none}.call-guide-route-label,.call-guide-route-readout{z-index:2;color:var(--vscode-disabledForeground,var(--compass-faint));justify-content:space-between;font-size:9px;display:flex;position:relative}.call-guide-route-label code{color:var(--vscode-textLink-foreground,var(--compass-focus));font:inherit;text-transform:none}.call-guide-route-stage{z-index:1;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:13%;min-height:226px;display:grid;position:relative}.call-guide-route-node{border:1px solid var(--vscode-panel-border,var(--border));background:var(--vscode-editor-background,var(--background));border-radius:5px;flex-direction:column;gap:4px;min-width:0;padding:12px;display:flex;position:relative;box-shadow:0 12px 32px #0003}.call-guide-route-node>span{color:var(--vscode-descriptionForeground,var(--muted-foreground));font:8px/1 var(--compass-font-mono);letter-spacing:.12em}.call-guide-route-node strong{color:var(--vscode-editor-foreground,var(--foreground));font:600 11px/1.3 var(--compass-font-mono);text-overflow:ellipsis;overflow:hidden}.call-guide-route-node small{color:var(--vscode-descriptionForeground,var(--muted-foreground));text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.call-guide-route-current{border-color:var(--vscode-focusBorder,var(--compass-focus));background:var(--vscode-focusBorder,var(--compass-focus));align-items:center;padding-block:17px}@supports (color:color-mix(in lab,red,red)){.call-guide-route-current{background:color-mix(in srgb,var(--vscode-focusBorder,var(--compass-focus)) 9%,var(--vscode-editor-background,var(--background)))}}.call-guide-route-current{text-align:center;box-shadow:0 0 0 1px var(--compass-focus),0 15px 40px var(--compass-focus)}@supports (color:color-mix(in lab,red,red)){.call-guide-route-current{box-shadow:0 0 0 1px color-mix(in srgb,var(--compass-focus) 16%,transparent),0 15px 40px color-mix(in srgb,var(--compass-focus) 14%,transparent)}}.call-guide-route-current>svg{width:17px;height:17px;color:var(--vscode-textLink-foreground,var(--compass-focus));margin-bottom:3px}.call-guide-route-line{z-index:-1;background:var(--compass-focus);width:32%;height:1px;position:absolute;top:50%;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.call-guide-route-line{background:color-mix(in srgb,var(--compass-focus) 44%,var(--border))}}.call-guide-route-line-in{left:18%}.call-guide-route-line-out{right:18%}.call-guide-route-line i{background:var(--vscode-focusBorder,var(--compass-focus));width:5px;height:5px;box-shadow:0 0 9px var(--vscode-focusBorder,var(--compass-focus));border-radius:50%;animation:2.2s linear infinite call-guide-trace;position:absolute;top:-2px}.call-guide-route-line-out i{animation-delay:1.1s}@keyframes call-guide-trace{0%{left:-8px}to{left:calc(100% + 8px)}}.call-guide-route-readout{border-top:1px solid var(--vscode-panel-border,var(--border));letter-spacing:.08em;padding-top:11px}.call-guide-section{border-bottom:1px solid var(--vscode-panel-border,var(--border));padding-block:clamp(34px,5vw,58px)}.call-guide-heading{justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:24px;display:flex}.call-guide-overline{color:var(--vscode-textLink-foreground,var(--compass-focus));margin-bottom:7px;font-size:9px;font-weight:700;display:block}.call-guide-heading h2{color:var(--vscode-editor-foreground,var(--foreground));letter-spacing:-.025em;margin:0;font-size:clamp(19px,2.4vw,26px);font-weight:600}.call-guide-heading>p{max-width:420px;color:var(--vscode-descriptionForeground,var(--muted-foreground));text-align:right;margin:0;font-size:11px;line-height:1.5}.call-guide-shortcut{color:var(--vscode-descriptionForeground,var(--muted-foreground));white-space:nowrap;align-items:center;gap:7px;font-size:9px;display:inline-flex}.call-guide-shortcut svg{width:12px;height:12px;color:var(--vscode-textLink-foreground,var(--compass-focus))}.call-guide-steps{grid-template-columns:minmax(170px,.8fr) minmax(340px,1.45fr) minmax(170px,.8fr);gap:10px;margin:0;padding:0;list-style:none;display:grid}.call-guide-steps>li{border:1px solid var(--vscode-panel-border,var(--border));background:var(--vscode-editorWidget-background,var(--card));border-radius:5px;align-content:start;gap:17px;min-height:168px;padding:18px;display:grid;position:relative}@supports (color:color-mix(in lab,red,red)){.call-guide-steps>li{background:color-mix(in srgb,var(--vscode-editorWidget-background,var(--card)) 72%,transparent)}}.call-guide-steps>li>svg{width:22px;height:22px;color:var(--vscode-textLink-foreground,var(--compass-focus))}.call-guide-step-number{color:var(--vscode-disabledForeground,var(--compass-faint));font:9px/1 var(--compass-font-mono);letter-spacing:.1em;position:absolute;top:17px;right:17px}.call-guide-steps h3{color:var(--vscode-editor-foreground,var(--foreground));margin:0;font-size:13px;font-weight:600}.call-guide-steps p{color:var(--vscode-descriptionForeground,var(--muted-foreground));margin:6px 0 0;font-size:11px;line-height:1.5}.call-guide-step-menu{grid-template-columns:minmax(150px,.85fr) minmax(195px,1.15fr);align-items:center}.call-guide-menu-preview{min-width:0;padding-right:44%;font-size:10px;position:relative}.call-guide-menu-parent,.call-guide-submenu{border:1px solid var(--vscode-menu-border,var(--border));background:var(--vscode-menu-background,var(--popover));color:var(--vscode-menu-foreground,var(--popover-foreground));border-radius:4px;box-shadow:0 12px 30px #00000040}.call-guide-menu-parent{border-color:var(--vscode-focusBorder,var(--compass-focus));background:var(--vscode-menu-selectionBackground,var(--accent));min-height:31px;color:var(--vscode-menu-selectionForeground,var(--accent-foreground));grid-template-columns:15px 1fr 13px;align-items:center;gap:7px;padding:0 8px;display:grid}.call-guide-menu-parent svg,.call-guide-submenu svg{width:13px;height:13px}.call-guide-submenu{z-index:2;width:58%;min-width:165px;padding:4px;position:absolute;top:22px;right:0}.call-guide-submenu span{white-space:nowrap;border-radius:2px;align-items:center;gap:7px;min-height:26px;padding:0 7px;display:flex}.call-guide-submenu span.is-active{background:var(--vscode-menu-selectionBackground,var(--accent));color:var(--vscode-menu-selectionForeground,var(--accent-foreground))}.call-guide-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.call-guide-action{border:1px solid var(--vscode-panel-border,var(--border));background:var(--vscode-editorWidget-background,var(--card));min-height:104px;color:var(--vscode-editor-foreground,var(--foreground));font:inherit;text-align:left;border-radius:5px;outline:none;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:18px;transition:border-color .14s,background .14s,transform .14s;display:grid;position:relative}.call-guide-action:not(:disabled):hover{border-color:var(--vscode-focusBorder,var(--compass-focus));background:var(--vscode-list-hoverBackground,var(--workbench-hover))}@supports (color:color-mix(in lab,red,red)){.call-guide-action:not(:disabled):hover{background:color-mix(in srgb,var(--vscode-list-hoverBackground,var(--workbench-hover)) 70%,var(--vscode-editorWidget-background,var(--card)))}}.call-guide-action:not(:disabled):hover{transform:translateY(-2px)}.call-guide-action:focus-visible,.call-guide-walkthrough:focus-visible{outline:2px solid var(--vscode-focusBorder,var(--ring));outline-offset:2px}.call-guide-action:disabled{cursor:not-allowed;opacity:.46}.call-guide-action[data-primary=true]{border-color:var(--vscode-focusBorder,var(--compass-focus))}@supports (color:color-mix(in lab,red,red)){.call-guide-action[data-primary=true]{border-color:color-mix(in srgb,var(--vscode-focusBorder,var(--compass-focus)) 72%,var(--border))}}.call-guide-action[data-primary=true]{background:linear-gradient(130deg,var(--vscode-focusBorder,var(--compass-focus)),transparent 58%),var(--vscode-editorWidget-background,var(--card))}@supports (color:color-mix(in lab,red,red)){.call-guide-action[data-primary=true]{background:linear-gradient(130deg,color-mix(in srgb,var(--vscode-focusBorder,var(--compass-focus)) 13%,transparent),transparent 58%),var(--vscode-editorWidget-background,var(--card))}}.call-guide-action-icon{border:1px solid var(--vscode-panel-border,var(--border));background:var(--vscode-editor-background,var(--background));width:34px;height:34px;color:var(--vscode-textLink-foreground,var(--compass-focus));border-radius:4px;place-items:center;display:grid}.call-guide-action-icon svg{width:16px;height:16px}.call-guide-action strong,.call-guide-action small{display:block}.call-guide-action strong{font-size:12px;font-weight:600}.call-guide-action small{color:var(--vscode-descriptionForeground,var(--muted-foreground));margin-top:5px;font-size:10px}.call-guide-action-arrow{width:15px;height:15px;color:var(--vscode-disabledForeground,var(--compass-faint));transition:transform .14s}.call-guide-action:not(:disabled):hover .call-guide-action-arrow{color:var(--vscode-textLink-foreground,var(--compass-focus));transform:translate(3px)}.call-guide-action em{color:var(--vscode-textLink-foreground,var(--compass-focus));font:normal 8px/1 var(--compass-font-mono);letter-spacing:.08em;text-transform:uppercase;position:absolute;top:8px;right:8px}.call-guide-footer{justify-content:space-between;align-items:center;gap:30px;padding-top:24px;display:flex}.call-guide-coverage{align-items:center;gap:13px;max-width:760px;display:flex}.call-guide-coverage-badge{border:1px solid var(--vscode-testing-iconPassed,var(--compass-success));flex:none;padding:5px 7px}@supports (color:color-mix(in lab,red,red)){.call-guide-coverage-badge{border:1px solid color-mix(in srgb,var(--vscode-testing-iconPassed,var(--compass-success)) 50%,var(--border))}}.call-guide-coverage-badge{color:var(--vscode-testing-iconPassed,var(--compass-success));border-radius:3px;font-size:8px;font-weight:700}.call-guide-coverage p{color:var(--vscode-descriptionForeground,var(--muted-foreground));margin:0;font-size:10px;line-height:1.55}.call-guide-walkthrough{color:var(--vscode-textLink-foreground,var(--compass-focus));font:11px/1 var(--compass-font-sans);background:0 0;border:0;outline:none;flex:none;align-items:center;gap:7px;padding:7px 0;display:inline-flex}.call-guide-walkthrough svg{width:14px;height:14px}.call-guide-walkthrough svg:last-child{width:12px;transition:transform .14s}.call-guide-walkthrough:hover svg:last-child{transform:translate(2px)}body.vscode-high-contrast .call-guide-route,body.vscode-high-contrast-light .call-guide-route,body.vscode-high-contrast .call-guide-steps>li,body.vscode-high-contrast-light .call-guide-steps>li,body.vscode-high-contrast .call-guide-action,body.vscode-high-contrast-light .call-guide-action{border-width:2px;border-color:var(--vscode-contrastBorder,var(--ring))}@media(max-width:900px){.call-guide-hero{grid-template-columns:1fr;gap:32px}.call-guide-route{box-sizing:border-box;width:min(620px,100%)}.call-guide-steps{grid-template-columns:1fr 1fr}.call-guide-step-menu{grid-area:2/1/auto/-1}}@media(max-width:680px){.call-guide-shell{padding-inline:16px}.call-guide-heading,.call-guide-footer{flex-direction:column;align-items:flex-start}.call-guide-heading>p{text-align:left}.call-guide-shortcut{display:none}.call-guide-steps,.call-guide-actions{grid-template-columns:1fr}.call-guide-step-menu{grid-area:auto;grid-template-columns:1fr}.call-guide-menu-preview{padding-right:min(42%,180px)}.call-guide-coverage{flex-direction:column;align-items:flex-start}}@media(max-width:440px){.call-guide-route-stage{gap:5%}.call-guide-route-node{padding:9px 7px}.call-guide-route-node small{display:none}.call-guide-menu-preview{padding:0}.call-guide-submenu{width:auto;margin:6px 0 0 18px;position:relative;top:auto}}@media(prefers-reduced-motion:reduce){.call-guide-route-line i{animation:none}.call-guide-action,.call-guide-action-arrow,.call-guide-walkthrough svg:last-child{transition:none}}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{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:"";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:"";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:"";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:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}} diff --git a/crates/compass-output/src/lib.rs b/crates/compass-output/src/lib.rs index ef9fbed6..cc836c8b 100644 --- a/crates/compass-output/src/lib.rs +++ b/crates/compass-output/src/lib.rs @@ -77,8 +77,10 @@ pub use viewer_model::{ }; pub use wiki::{WikiExport, WikiOptions, export_wiki}; pub use workbench::{ - WORKBENCH_SCHEMA, WorkbenchCoverage, WorkbenchCoverageStatus, WorkbenchModel, WorkbenchView, - WorkbenchViewContent, workbench_html_document, write_workbench_html, + SourceNavigation, SourceProvider, WORKBENCH_SCHEMA, WorkbenchCoverage, WorkbenchCoverageStatus, + WorkbenchModel, WorkbenchView, WorkbenchViewContent, workbench_html_document, + workbench_html_document_with_source_navigation, write_workbench_html, + write_workbench_html_with_source_navigation, }; #[derive(Debug, thiserror::Error)] diff --git a/crates/compass-output/src/workbench.rs b/crates/compass-output/src/workbench.rs index 5027be53..0358c679 100644 --- a/crates/compass-output/src/workbench.rs +++ b/crates/compass-output/src/workbench.rs @@ -4,11 +4,46 @@ use std::path::Path; use compass_analysis::UniversalCallGraphResponse; use compass_model::query_contract::CodeQueryResponse; use serde::Serialize; +use url::Url; use crate::{CallflowViewModel, GraphViewModel, OutputError}; pub const WORKBENCH_SCHEMA: &str = "compass.viewer.workbench/1"; +#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)] +#[serde(rename_all = "lowercase")] +pub enum SourceProvider { + Github, + Gitlab, + Bitbucket, +} + +#[derive(Clone, Debug, Eq, PartialEq, Serialize)] +#[serde(rename_all = "camelCase")] +pub struct SourceNavigation { + pub provider: SourceProvider, + pub repository_url: String, + pub revision: String, +} + +impl SourceNavigation { + /// Build immutable browser navigation metadata from a recognized Git forge remote. + #[must_use] + pub fn from_git_remote(remote: &str, revision: &str) -> Option { + if !is_full_commit(revision) { + return None; + } + let (host, path, web_port) = parse_remote(remote)?; + let provider = source_provider(&host)?; + let port = web_port.map_or_else(String::new, |port| format!(":{port}")); + Some(Self { + provider, + repository_url: format!("https://{host}{port}/{path}"), + revision: revision.to_ascii_lowercase(), + }) + } +} + #[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)] #[serde(rename_all = "snake_case")] pub enum WorkbenchCoverageStatus { @@ -151,10 +186,27 @@ pub enum WorkbenchViewContent { } pub fn workbench_html_document(model: &WorkbenchModel) -> Result { + workbench_html_document_with_source_navigation(model, None) +} + +pub fn workbench_html_document_with_source_navigation( + model: &WorkbenchModel, + source_navigation: Option<&SourceNavigation>, +) -> Result { let model_json = serde_json::to_string(model)? .replace('<', "\\u003c") .replace('>', "\\u003e") .replace('&', "\\u0026"); + let source_navigation = source_navigation + .map(serde_json::to_string) + .transpose()? + .map(|value| { + format!( + r#""#, + escape_embedded_json(&value) + ) + }) + .unwrap_or_default(); Ok(format!( r#" @@ -169,6 +221,7 @@ pub fn workbench_html_document(model: &WorkbenchModel) -> Result
+{source_navigation} @@ -188,6 +241,78 @@ pub fn write_workbench_html( Ok(()) } +pub fn write_workbench_html_with_source_navigation( + model: &WorkbenchModel, + source_navigation: Option<&SourceNavigation>, + output_path: impl AsRef, +) -> Result<(), OutputError> { + let html = workbench_html_document_with_source_navigation(model, source_navigation)?; + compass_files::write_text_atomic(output_path, &html)?; + Ok(()) +} + +fn escape_embedded_json(value: &str) -> String { + value + .replace('<', "\\u003c") + .replace('>', "\\u003e") + .replace('&', "\\u0026") +} + +fn is_full_commit(revision: &str) -> bool { + matches!(revision.len(), 40 | 64) && revision.bytes().all(|byte| byte.is_ascii_hexdigit()) +} + +fn source_provider(host: &str) -> Option { + if host == "github.com" { + Some(SourceProvider::Github) + } else if host == "gitlab.com" { + Some(SourceProvider::Gitlab) + } else if host == "bitbucket.org" { + Some(SourceProvider::Bitbucket) + } else { + None + } +} + +fn parse_remote(remote: &str) -> Option<(String, String, Option)> { + let remote = remote.trim(); + if remote.is_empty() + || remote + .chars() + .any(|character| matches!(character, '\0' | '\n' | '\r')) + { + return None; + } + let (host, path, port) = if remote.contains("://") { + let parsed = Url::parse(remote).ok()?; + if !matches!(parsed.scheme(), "http" | "https" | "ssh" | "git") { + return None; + } + let host = parsed.host_str()?.to_ascii_lowercase(); + let port = matches!(parsed.scheme(), "http" | "https") + .then(|| parsed.port()) + .flatten(); + (host, parsed.path().to_owned(), port) + } else { + let without_user = remote.rsplit_once('@').map_or(remote, |(_, value)| value); + let (host, path) = without_user.split_once(':')?; + (host.to_ascii_lowercase(), path.to_owned(), None) + }; + let path = path + .trim_matches('/') + .strip_suffix(".git") + .unwrap_or(path.trim_matches('/')); + if host.is_empty() + || path.is_empty() + || path + .split('/') + .any(|segment| segment.is_empty() || matches!(segment, "." | "..")) + { + return None; + } + Some((host, path.to_owned(), port)) +} + fn escape_html(value: &str) -> String { value .replace('&', "&") @@ -201,6 +326,35 @@ fn escape_html(value: &str) -> String { mod tests { use super::*; + #[test] + fn source_navigation_normalizes_recognized_forge_remotes() { + let revision = "0123456789abcdef0123456789abcdef01234567"; + assert_eq!( + SourceNavigation::from_git_remote("git@github.com:crabbuild/compass.git", revision,), + Some(SourceNavigation { + provider: SourceProvider::Github, + repository_url: "https://github.com/crabbuild/compass".to_owned(), + revision: revision.to_owned(), + }) + ); + assert_eq!( + SourceNavigation::from_git_remote( + "ssh://git@bitbucket.org/platform/tools-compass.git", + revision, + ) + .map(|navigation| navigation.repository_url), + Some("https://bitbucket.org/platform/tools-compass".to_owned()) + ); + assert!( + SourceNavigation::from_git_remote("https://example.com/acme/compass.git", revision,) + .is_none() + ); + assert!( + SourceNavigation::from_git_remote("https://bitbucket.org/acme/compass.git", "main",) + .is_none() + ); + } + #[test] fn workbench_document_escapes_embedded_json_and_title() -> Result<(), Box> { diff --git a/docs/reference/outputs.md b/docs/reference/outputs.md index 14fedd86..2889adec 100644 --- a/docs/reference/outputs.md +++ b/docs/reference/outputs.md @@ -297,15 +297,30 @@ Optional interactive visualization. It may be absent when: It is not required for query commands. The document is self-contained and uses the same versioned graph workbench as -the VS Code extension. It performs no runtime network requests, follows the +the VS Code extension. Loading and exploring it performs no runtime network requests, follows the operating system's light or dark color scheme, and retains keyboard, reduced motion, narrow-screen, and high-contrast behavior from the shared viewer. +Double-clicking a source-backed node, edge, or inspector source card opens the +file and highlights its recorded lines in the VS Code extension. A standalone +HTML export instead opens an immutable forge permalink when all required +evidence is available: the graph records a full source commit, the graph is +inside a Git worktree with a recognized `origin`, and that origin is GitHub, +GitLab, or Bitbucket. The link uses the graph's commit rather than a mutable +branch; historical comparisons use the commit for the selected side. If any +part of that evidence is absent or unsafe, the viewer does not invent a link. +No repository URL is added to `compass.viewer.workbench/1` or +`workbench-json`; standalone HTML carries the optional presentation metadata +separately. + The embedded `compass.viewer.workbench/1` model contains an ordered list of independently bounded views with explicit `complete`, `summary`, or `partial` coverage. One HTML file can contain code, call, impact, affected, architecture, history-comparison, and artifact-specific lenses. Its navigation rail keeps the current graph identity and exposes hash links such as `#view=impact-run`. +Both the navigation rail and graph inspector can collapse independently, and +the repository title appears once in the navigation header so inspector space +starts with search and node details. Graph lenses share relationship, evidence, node-kind, and language filters; call, impact, and affected views start in a deterministic depth-layer layout. Architecture views use subsystem routes, while history views overlay added, diff --git a/packages/compass-viewer/src/export-entry.tsx b/packages/compass-viewer/src/export-entry.tsx index 9d5dedd1..7550e51f 100644 --- a/packages/compass-viewer/src/export-entry.tsx +++ b/packages/compass-viewer/src/export-entry.tsx @@ -5,7 +5,12 @@ import { } from "./contracts/graph"; import { WorkbenchModelSchema } from "./contracts/workbench"; import { CompassGraph } from "./graph/CompassGraph"; -import { VisualizationWorkbench, dispatchOpenSource } from "./workbench/VisualizationWorkbench"; +import { VisualizationWorkbench } from "./workbench/VisualizationWorkbench"; +import { + openExportSource, + SourceNavigationSchema, + type SourceNavigation +} from "./sourceLinks"; import "./theme.css"; function mount() { @@ -15,13 +20,18 @@ function mount() { throw new Error("Compass viewer root or model is missing"); } const untrusted = JSON.parse(modelElement.textContent ?? ""); + const sourceNavigation = parseSourceNavigation(); const root = createRoot(rootElement); const workbench = WorkbenchModelSchema.safeParse(untrusted); if (workbench.success) { root.render( ); return; @@ -45,10 +55,8 @@ function mount() { render(); } : undefined} host={{ - openSource(source) { - window.dispatchEvent(new CustomEvent("compass:open-source", { - detail: source - })); + openSource(source, revision) { + openExportSource(sourceNavigation, source, revision); }, openCommunity(communityId) { if (communityLoading !== null) return; @@ -89,6 +97,13 @@ function mount() { render(); } +function parseSourceNavigation(): SourceNavigation | undefined { + const element = document.getElementById("compass-source-navigation"); + if (!element?.textContent) return undefined; + const parsed = SourceNavigationSchema.safeParse(JSON.parse(element.textContent)); + return parsed.success ? parsed.data : undefined; +} + if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", mount, { once: true }); } else { diff --git a/packages/compass-viewer/src/graph/CompassGraph.tsx b/packages/compass-viewer/src/graph/CompassGraph.tsx index 8a321735..49414b31 100644 --- a/packages/compass-viewer/src/graph/CompassGraph.tsx +++ b/packages/compass-viewer/src/graph/CompassGraph.tsx @@ -102,6 +102,7 @@ export type CompassGraphProps = { toolbarLeadingOpen?: boolean | undefined; onToolbarLeadingClose?: (() => void) | undefined; stageOverlay?: ReactNode; + showInspectorHeader?: boolean | undefined; }; export function CompassGraph({ @@ -120,7 +121,8 @@ export function CompassGraph({ toolbarLeadingPanel, toolbarLeadingOpen, onToolbarLeadingClose, - stageOverlay + stageOverlay, + showInspectorHeader = true }: CompassGraphProps) { const [inspectorLayout, setInspectorLayout] = useState( () => normalizeInspectorLayout(initialInspectorLayout) @@ -152,6 +154,7 @@ export function CompassGraph({ toolbarLeadingOpen={toolbarLeadingOpen} onToolbarLeadingClose={onToolbarLeadingClose} stageOverlay={stageOverlay} + showInspectorHeader={showInspectorHeader} /> ); } @@ -173,7 +176,8 @@ function CompassGraphView({ toolbarLeadingPanel, toolbarLeadingOpen, onToolbarLeadingClose, - stageOverlay + stageOverlay, + showInspectorHeader }: { model: GraphViewModel; host: GraphHost; @@ -192,6 +196,7 @@ function CompassGraphView({ toolbarLeadingOpen?: boolean | undefined; onToolbarLeadingClose?: (() => void) | undefined; stageOverlay?: ReactNode; + showInspectorHeader: boolean; }) { const [state, dispatch] = useReducer( graphReducer, @@ -627,6 +632,7 @@ function CompassGraphView({ sourceRevisions={sourceRevisions} queryResult={queryResult} renderedEdgeCount={renderedEdgeCount} + showHeader={showInspectorHeader} onQueryChange={(query) => dispatch({ type: "search", query })} onFocus={focus} onOpenSource={host.openSource} diff --git a/packages/compass-viewer/src/graph/GraphInspector.tsx b/packages/compass-viewer/src/graph/GraphInspector.tsx index a420e316..76c4f79e 100644 --- a/packages/compass-viewer/src/graph/GraphInspector.tsx +++ b/packages/compass-viewer/src/graph/GraphInspector.tsx @@ -93,6 +93,7 @@ export function GraphInspector({ sourceRevisions, queryResult, renderedEdgeCount, + showHeader, onQueryChange, onFocus, onOpenSource, @@ -114,6 +115,7 @@ export function GraphInspector({ sourceRevisions?: GraphSourceRevisions | undefined; queryResult?: CodeQueryResponse | undefined; renderedEdgeCount: number; + showHeader: boolean; onQueryChange(query: string): void; onFocus(nodeId: string): void; onOpenSource(source: SourceLocation, revision?: string): void; @@ -199,46 +201,60 @@ export function GraphInspector({ return (