@skill-map/cli 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Binary file
@@ -1 +0,0 @@
1
- import{a as Pe,b as Ae}from"./chunk-J3FDTSKA.js";import{A as R,Ab as he,B as D,Bb as fe,Cb as ye,Db as ve,Eb as Ie,Fb as ke,Ga as c,Gb as be,Ha as p,I as d,Ia as de,Lc as we,Mc as Se,O as L,V as ie,W as se,Z as oe,_ as ae,a as J,ab as _,ad as N,b as X,bd as F,c as M,ca as O,da as a,dd as _e,ea as l,ed as m,f as V,fa as P,fd as Ee,gd as I,j as Y,l as v,n as Z,o as C,oa as le,p as o,qa as W,r as q,ra as z,s as ee,tb as ce,ub as pe,v as te,vb as A,w as ne,wb as me,xb as ue,z as re,zb as ge}from"./chunk-NUUSKOAE.js";import"./chunk-Q7L6LLAK.js";var Te=[{path:"",pathMatch:"full",redirectTo:"list"},{path:"list",loadComponent:()=>import("./chunk-VYSE3ZFQ.js").then(n=>n.ListView),data:{title:"List"}},{path:"graph",loadComponent:()=>import("./chunk-RN7YDIJP.js").then(n=>n.GraphView),data:{title:"Graph"}},{path:"inspector",loadComponent:()=>import("./chunk-6EW3JAB6.js").then(n=>n.InspectorView),data:{title:"Inspector"}},{path:"**",redirectTo:"list"}];var f={errors:{unknownMode:n=>`SKILL_MAP_MODE: unknown value "${n}"`,restPrefix:n=>`BFF error [${n}]: `,malformedResponse:"BFF returned a malformed response",demoFetchFailed:(n,e)=>`Demo bundle fetch failed for "${n}": ${e}`,demoParseFailed:(n,e)=>`Demo bundle parse failed for "${n}": ${e}`,graphFormatNotInDemo:n=>`Graph format "${n}" is not bundled in demo mode (only "ascii").`}};function Re(n){if(typeof n!="object"||n===null)return!1;let e=n;if(typeof e.type!="string"||e.type.length===0)return!1;let t=e.timestamp;return!(typeof t!="number"&&typeof t!="string"||!("data"in e))}var k=new Z("SKILL_MAP_MODE");function xe(){return typeof document>"u"?"live":document.querySelector('meta[name="skill-map-mode"]')?.content==="demo"?"demo":"live"}var u={connected:n=>`[ws] connected to ${n}`,closed:(n,e)=>`[ws] closed (code=${n}, reason="${e}")`,malformedFrame:n=>`[ws] malformed frame dropped: ${n}`,socketError:n=>`[ws] socket error: ${n}`,reconnectScheduled:(n,e)=>`[ws] reconnect attempt ${e} scheduled in ${n}ms`,reconnectGiveUp:n=>`[ws] giving up after ${n} failed reconnect attempts`};var Me=[1e3,2e3,4e3,8e3,16e3,3e4],G=10,Ve=new Set([1e3,1001]);function ze(){return typeof window>"u"||!window.location?"ws://127.0.0.1:4242/ws":`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws`}var b=class n{mode=o(k);destroyRef=o(ne);subject=new X;socket=null;reconnectTimer=null;reconnectAttempt=0;disposed=!1;socketFactory=e=>new WebSocket(e);url=ze();events$;_setSocketFactory(e){this.socketFactory=e}_setUrl(e){this.url=e}constructor(){this.mode!=="live"?this.events$=M:this.events$=new J(e=>{!this.socket&&!this.disposed&&this.connect();let t=this.subject.subscribe(e);return()=>t.unsubscribe()}).pipe(Y({resetOnRefCountZero:!1})),this.destroyRef.onDestroy(()=>this.disconnect())}disconnect(){if(!this.disposed){if(this.disposed=!0,this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.socket){try{this.socket.close(1e3,"client disconnect")}catch{}this.socket=null}this.subject.complete()}}ngOnDestroy(){this.disconnect()}connect(){if(this.disposed)return;let e;try{e=this.socketFactory(this.url)}catch(t){let r=t instanceof Error?t.message:String(t);console.warn(u.socketError(r)),this.scheduleReconnect();return}this.socket=e,e.onopen=()=>{this.reconnectAttempt=0,console.info(u.connected(this.url))},e.onmessage=t=>{this.handleFrame(t.data)},e.onerror=t=>{let r=typeof t=="object"&&t!==null&&"message"in t?String(t.message??"unknown"):"unknown";console.warn(u.socketError(r))},e.onclose=t=>{console.info(u.closed(t.code,t.reason)),this.socket=null,!this.disposed&&(Ve.has(t.code)||this.scheduleReconnect())}}handleFrame(e){if(typeof e!="string"){console.warn(u.malformedFrame("non-string frame"));return}let t;try{t=JSON.parse(e)}catch(r){let i=r instanceof Error?r.message:String(r);console.warn(u.malformedFrame(i));return}if(!Re(t)){console.warn(u.malformedFrame("envelope shape"));return}this.subject.next(t)}scheduleReconnect(){if(this.disposed)return;if(this.reconnectAttempt>=G){console.warn(u.reconnectGiveUp(G)),this.subject.error(new Error(u.reconnectGiveUp(G)));return}let e=Math.min(this.reconnectAttempt,Me.length-1),t=Me[e];this.reconnectAttempt+=1,console.info(u.reconnectScheduled(t,this.reconnectAttempt)),this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},t)}get _reconnectAttempt(){return this.reconnectAttempt}static \u0275fac=function(t){return new(t||n)};static \u0275prov=v({token:n,factory:n.\u0275fac,providedIn:"root"})};function Ce(n){let e=new TextEncoder().encode(n),t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}var y="/api",j=class n{http;ws;kindRegistry;constructor(e,t,r){this.http=e??o(A),this.ws=t??o(b),this.kindRegistry=r??o(I)}async health(){return this.getJson(`${y}/health`)}async loadScan(){let[e]=await Promise.all([this.getJson(`${y}/scan`),this.listNodes({limit:0}).catch(()=>null)]);return e}async listNodes(e={}){let t=Je(e),r=await this.getJson(`${y}/nodes${t}`);return this.ingestRegistry(r.kindRegistry),r}async getNode(e,t={}){let r=Ce(e),i=t.includeBody?"?include=body":"";try{let s=await this.getJson(`${y}/nodes/${r}${i}`);return this.ingestRegistry(s.kindRegistry),s}catch(s){if(s instanceof m&&s.code==="not-found")return null;throw s}}async listLinks(e={}){let t=Xe(e),r=await this.getJson(`${y}/links${t}`);return this.ingestRegistry(r.kindRegistry),r}async listIssues(e={}){let t=Ye(e),r=await this.getJson(`${y}/issues${t}`);return this.ingestRegistry(r.kindRegistry),r}async loadGraph(e="ascii"){let t=`${y}/graph?format=${encodeURIComponent(e)}`;try{return await V(this.http.get(t,{responseType:"text"}))}catch(r){throw this.translateError(r)}}async loadConfig(){let e=await this.getJson(`${y}/config`);return this.ingestRegistry(e.kindRegistry),e.value}async listPlugins(){let e=await this.getJson(`${y}/plugins`);return this.ingestRegistry(e.kindRegistry),e}ingestRegistry(e){e&&this.kindRegistry.ingest(e)}events(){return this.ws.events$}async getJson(e){try{return await V(this.http.get(e))}catch(t){throw this.translateError(t)}}translateError(e){if(e instanceof m)return e;if(e instanceof pe){let r=Ze(e.error);return r?new m(r.error.code,r.error.message,r.error.details):new m("internal",e.message||f.errors.malformedResponse)}let t=e instanceof Error?e.message:String(e);return new m("internal",t)}static \u0275fac=function(t){return new(t||n)(C(A),C(b),C(I))};static \u0275prov=v({token:n,factory:n.\u0275fac,providedIn:"root"})};function Je(n){let e=new URLSearchParams;n.kind&&n.kind.length>0&&e.set("kind",n.kind.join(",")),n.hasIssues!==void 0&&e.set("hasIssues",String(n.hasIssues)),n.path&&e.set("path",n.path),n.limit!==void 0&&e.set("limit",String(n.limit)),n.offset!==void 0&&e.set("offset",String(n.offset));let t=e.toString();return t?`?${t}`:""}function Xe(n){let e=new URLSearchParams;n.kind&&n.kind.length>0&&e.set("kind",n.kind.join(",")),n.from&&e.set("from",n.from),n.to&&e.set("to",n.to);let t=e.toString();return t?`?${t}`:""}function Ye(n){let e=new URLSearchParams;n.severity&&e.set("severity",n.severity),n.ruleId&&e.set("ruleId",n.ruleId),n.node&&e.set("node",n.node);let t=e.toString();return t?`?${t}`:""}function Ze(n){if(typeof n!="object"||n===null)return null;let e=n;if(e.ok!==!1)return null;let t=e.error;if(typeof t!="object"||t===null)return null;let r=t;return typeof r.code!="string"||typeof r.message!="string"?null:{ok:!1,error:{code:r.code,message:r.message,details:r.details}}}var qe="data.json",et="data.meta.json",$=class{constructor(e=globalThis.fetch.bind(globalThis),t){this.fetchImpl=e;this.kindRegistry=t??o(I)}metaPromise=null;dataPromise=null;kindRegistry;async health(){return(await this.loadMeta()).health}async loadScan(){let[e,t]=await Promise.all([this.loadData(),this.loadMeta()]);return this.kindRegistry.ingest(t.nodes.kindRegistry),e}async listNodes(e={}){let t=await this.loadMeta();if(tt(e))return this.kindRegistry.ingest(t.nodes.kindRegistry),t.nodes;let r=await this.loadData(),i=r.issues,s=r.nodes;if(e.kind&&e.kind.length>0){let w=new Set(e.kind);s=s.filter(S=>w.has(S.kind))}if(e.path){let w=it(e.path);s=s.filter(S=>w.test(S.path))}if(e.hasIssues===!0){let w=De(i);s=s.filter(S=>w.has(S.path))}else if(e.hasIssues===!1){let w=De(i);s=s.filter(S=>!w.has(S.path))}let h=s.length,E=e.offset??0,T=e.limit??1e3,g=s.slice(E,E+T);return this.kindRegistry.ingest(t.nodes.kindRegistry),{schemaVersion:"1",kind:"nodes",items:g,filters:{kind:e.kind??null,hasIssues:e.hasIssues??null,path:e.path?[e.path]:null},counts:{total:h,returned:g.length,page:{offset:E,limit:T}},kindRegistry:t.nodes.kindRegistry}}async getNode(e,t={}){let[r,i]=await Promise.all([this.loadData(),this.loadMeta()]),s=r.nodes.find(g=>g.path===e);if(!s)return null;let h=r.links.filter(g=>g.target===e),E=r.links.filter(g=>g.source===e),T=r.issues.filter(g=>g.nodeIds.includes(e));return this.kindRegistry.ingest(i.nodes.kindRegistry),{schemaVersion:"1",kind:"node",item:s,links:{incoming:h,outgoing:E},issues:T,kindRegistry:i.nodes.kindRegistry}}async listLinks(e={}){let t=await this.loadMeta();if(nt(e))return this.kindRegistry.ingest(t.links.kindRegistry),t.links;let i=(await this.loadData()).links;if(e.kind&&e.kind.length>0){let s=new Set(e.kind);i=i.filter(h=>s.has(h.kind))}return e.from&&(i=i.filter(s=>s.source===e.from)),e.to&&(i=i.filter(s=>s.target===e.to)),this.kindRegistry.ingest(t.links.kindRegistry),{schemaVersion:"1",kind:"links",items:i,filters:{kind:e.kind??null,from:e.from??null,to:e.to??null},counts:{total:i.length,returned:i.length},kindRegistry:t.links.kindRegistry}}async listIssues(e={}){let t=await this.loadMeta();if(rt(e))return this.kindRegistry.ingest(t.issues.kindRegistry),t.issues;let i=(await this.loadData()).issues;return e.severity&&(i=i.filter(s=>s.severity===e.severity)),e.ruleId&&(i=i.filter(s=>s.ruleId===e.ruleId)),e.node&&(i=i.filter(s=>s.nodeIds.includes(e.node))),this.kindRegistry.ingest(t.issues.kindRegistry),{schemaVersion:"1",kind:"issues",items:i,filters:{severity:e.severity??null,ruleId:e.ruleId??null,node:e.node??null},counts:{total:i.length,returned:i.length},kindRegistry:t.issues.kindRegistry}}async loadGraph(e="ascii"){if(e!=="ascii")throw new m("bad-query",f.errors.graphFormatNotInDemo(e));return(await this.loadMeta()).graph.ascii}async loadConfig(){let e=await this.loadMeta();return this.kindRegistry.ingest(e.config.kindRegistry),e.config.value}async listPlugins(){let e=await this.loadMeta();return this.kindRegistry.ingest(e.plugins.kindRegistry),e.plugins}events(){return M}loadMeta(){return this.metaPromise||(this.metaPromise=this.fetchJson(et)),this.metaPromise}loadData(){return this.dataPromise||(this.dataPromise=this.fetchJson(qe)),this.dataPromise}async fetchJson(e){let t;try{t=await this.fetchImpl(e)}catch(r){let i=r instanceof Error?r.message:String(r);throw new m("internal",f.errors.demoFetchFailed(e,i))}if(!t.ok)throw new m("internal",f.errors.demoFetchFailed(e,`HTTP ${t.status}`));try{return await t.json()}catch(r){let i=r instanceof Error?r.message:String(r);throw new m("internal",f.errors.demoParseFailed(e,i))}}};function tt(n){return!(n.kind&&n.kind.length>0||n.hasIssues!==void 0||n.path||n.offset!==void 0&&n.offset!==0||n.limit!==void 0)}function nt(n){return!(n.kind&&n.kind.length>0||n.from||n.to)}function rt(n){return!(n.severity||n.ruleId||n.node)}function De(n){let e=new Set;for(let t of n)for(let r of t.nodeIds)e.add(r);return e}function it(n){let t=n.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${t}$`)}function Le(){let n=o(k);if(n==="live")return new j(o(A),o(b));if(n==="demo")return new $;let e=n;throw new Error(f.errors.unknownMode(String(e)))}var Oe={providers:[re(),ke(Te,be()),me(ue()),Se({}),ie(async()=>{let n=o(we),{default:e}=await import("./chunk-FWFBO7KA.js");n.setThemeConfig({theme:{preset:e,options:{darkModeSelector:".app-dark"}}})}),{provide:k,useFactory:xe},{provide:_e,useFactory:Le}]};var We={brand:"skill-map",tag:"ui prototype \xB7 Step 3",nav:{list:"List",graph:"Graph",inspector:"Inspector"},actions:{},badge:{nodes:"nodes"},a11y:{viewSwitcher:"View switcher"},viewportWarning:{title:"Mobile not supported",subtitle:"By design \u2014 skill-map is desktop-only.",body:"The graph, inspector, and linked-nodes panels need real screen real estate. Open this on a display at least 1024px wide."}};var U={toggleToAuto:"Switch to auto theme (follow system)",toggleToLight:"Switch to light theme",toggleToDark:"Switch to dark theme"};var Ne="search",Fe="kinds",je="stabilities",$e="hasIssues",K=class n{filters=o(Ae);router=o(ye);activatedRoute=o(he);kindRegistry=o(I);suppressUrlReadback=!1;constructor(){this.applyUrlToFilters(this.currentParams()),this.router.events.subscribe(e=>{if(e instanceof ge){if(this.suppressUrlReadback)return;this.applyUrlToFilters(this.currentParams())}}),D(()=>{let e=this.computeQueryParams();this.writeQueryParams(e)})}currentParams(){let e=this.router.parseUrl(this.router.url),t=new URLSearchParams;for(let[r,i]of Object.entries(e.queryParams))Array.isArray(i)?t.set(r,i.join(",")):i!=null&&t.set(r,String(i));return this.activatedRoute,t}applyUrlToFilters(e){let t=e.get(Ne)??"";t!==this.filters.searchText()&&this.filters.setSearchText(t);let r=st(e.get(Fe),this.kindRegistry.kinds().map(h=>h.name));Ue(r,this.filters.selectedKinds())||this.filters.setKinds(r);let i=ot(e.get(je));Ue(i,this.filters.selectedStabilities())||this.filters.setStabilities(i);let s=e.get($e)==="true";s!==this.filters.hasIssuesOnly()&&this.filters.setHasIssuesOnly(s)}computeQueryParams(){let e=this.filters.searchText().trim(),t=this.filters.selectedKinds(),r=this.filters.selectedStabilities(),i=this.filters.hasIssuesOnly();return{[Ne]:e.length>0?e:null,[Fe]:t.length>0?t.join(","):null,[je]:r.length>0?r.join(","):null,[$e]:i?"true":null}}writeQueryParams(e){let t=this.currentParams(),r=new Map(Object.entries(e)),i=!1;for(let[s,h]of r)if((t.get(s)??null)!==h){i=!0;break}i&&(this.suppressUrlReadback=!0,this.router.navigate([],{relativeTo:this.activatedRoute,queryParams:e,queryParamsHandling:"merge",replaceUrl:!0}).finally(()=>{setTimeout(()=>{this.suppressUrlReadback=!1},0)}))}static \u0275fac=function(t){return new(t||n)};static \u0275prov=v({token:n,factory:n.\u0275fac,providedIn:"root"})};function st(n,e){if(!n)return[];let t=new Set(e);return n.split(",").map(r=>r.trim()).filter(r=>t.has(r))}function ot(n){if(!n)return[];let e=new Set(Pe);return n.split(",").map(t=>t.trim()).filter(t=>e.has(t))}function Ue(n,e){if(n.length!==e.length)return!1;for(let t=0;t<n.length;t++)if(n[t]!==e[t])return!1;return!0}var Ke="skill-map.ui.theme",at="app-dark",lt="dark",Be="(prefers-color-scheme: dark)",B=class n{doc=o(te);mode=R(this.readInitial());systemPrefersDark=R(this.readSystemPref());resolved=_(()=>{let e=this.mode();return e==="auto"?this.systemPrefersDark()?"dark":"light":e});constructor(){this.subscribeToSystemPref(),D(()=>{let e=this.resolved()==="dark",t=this.doc.documentElement;t.classList.toggle(at,e),t.classList.toggle(lt,e);try{this.doc.defaultView?.localStorage.setItem(Ke,this.mode())}catch{}})}toggle(){this.mode.update(e=>e==="auto"?"light":e==="light"?"dark":"auto")}set(e){this.mode.set(e)}readInitial(){try{let e=this.doc.defaultView?.localStorage.getItem(Ke);if(e==="auto"||e==="light"||e==="dark")return e}catch{}return"auto"}readSystemPref(){try{return this.doc.defaultView?.matchMedia(Be).matches??!1}catch{return!1}}subscribeToSystemPref(){let e=this.doc.defaultView;if(!e||typeof e.matchMedia!="function")return;e.matchMedia(Be).addEventListener("change",r=>{this.systemPrefersDark.set(r.matches)})}static \u0275fac=function(t){return new(t||n)};static \u0275prov=v({token:n,factory:n.\u0275fac,providedIn:"root"})};var Qe={body:"You are viewing a static demo of skill-map's UI. Run `npx @skill-map/cli serve` for the full experience.",dismissAria:"Dismiss demo banner"};function pt(n,e){if(n&1){let t=le();a(0,"div",0),P(1,"span",1),a(2,"p",2),c(3),l(),a(4,"p-button",3),W("onClick",function(){q(t);let i=z();return ee(i.dismiss())}),l()()}if(n&2){let t=z();d(3),p(t.texts.body),d(),O("ariaLabel",t.texts.dismissAria)("text",!0)("rounded",!0)}}var He="sm.demoBannerDismissed",Q=class n{mode=o(k);texts=Qe;dismissed=R(this.readDismissed());visible=_(()=>this.mode==="demo"&&!this.dismissed());dismiss(){this.dismissed.set(!0);try{globalThis.localStorage?.setItem(He,"1")}catch{}}readDismissed(){if(this.mode!=="demo")return!0;try{return globalThis.localStorage?.getItem(He)==="1"}catch{return!1}}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=L({type:n,selectors:[["sm-demo-banner"]],decls:1,vars:1,consts:[["role","status","data-testid","demo-banner",1,"demo-banner"],["aria-hidden","true",1,"demo-banner__icon","pi","pi-info-circle"],[1,"demo-banner__body"],["icon","pi pi-times","severity","secondary","size","small","data-testid","demo-banner-dismiss",3,"onClick","ariaLabel","text","rounded"]],template:function(t,r){t&1&&oe(0,pt,5,4,"div",0),t&2&&ae(r.visible()?0:-1)},dependencies:[F,N],styles:["[_nghost-%COMP%]{display:block}.demo-banner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;border-bottom:1px solid var(--p-content-border-color);background:var(--p-highlight-background);color:var(--p-text-color);font-size:.875rem}.demo-banner__icon[_ngcontent-%COMP%]{font-size:1.1rem;color:var(--p-primary-color)}.demo-banner__body[_ngcontent-%COMP%]{flex:1 1 auto;margin:0;line-height:1.4}"],changeDetection:0})};var H=class n{loader=o(Ee);theme=o(B);_filterUrlSync=o(K);texts=We;count=this.loader.count;themeMode=this.theme.mode;themeIcon=_(()=>{switch(this.themeMode()){case"auto":return"pi pi-desktop";case"light":return"pi pi-sun";case"dark":return"pi pi-moon"}});themeLabel=_(()=>{switch(this.themeMode()){case"auto":return U.toggleToLight;case"light":return U.toggleToDark;case"dark":return U.toggleToAuto}});ngOnInit(){this.loader.load()}toggleTheme(){this.theme.toggle()}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=L({type:n,selectors:[["app-root"]],decls:35,vars:15,consts:[["role","alert","data-testid","viewport-warning",1,"viewport-warning"],[1,"viewport-warning__card"],["aria-hidden","true",1,"pi","pi-desktop","viewport-warning__icon"],[1,"viewport-warning__title"],[1,"viewport-warning__subtitle"],[1,"viewport-warning__body"],["data-testid","shell",1,"shell"],["data-testid","shell-topbar",1,"shell__topbar"],[1,"shell__brand"],[1,"shell__brand-mark"],[1,"shell__tag"],["data-testid","shell-nav",1,"shell__nav"],["routerLink","/list","routerLinkActive","is-active","data-testid","nav-list"],["routerLink","/graph","routerLinkActive","is-active","data-testid","nav-graph"],["routerLink","/inspector","routerLinkActive","is-active","data-testid","nav-inspector"],[1,"shell__actions"],["severity","secondary","size","small","data-testid","action-theme-toggle",3,"onClick","icon","ariaLabel","text","rounded"],["aria-live","polite","data-testid","shell-nodes-badge",1,"shell__badge"],[1,"shell__main"]],template:function(t,r){t&1&&(a(0,"div",0)(1,"div",1),P(2,"i",2),a(3,"h2",3),c(4),l(),a(5,"p",4),c(6),l(),a(7,"p",5),c(8),l()()(),a(9,"div",6),P(10,"sm-demo-banner"),a(11,"header",7)(12,"div",8)(13,"span",9),c(14,"sm"),l(),a(15,"div")(16,"h1"),c(17),l(),a(18,"p",10),c(19),l()()(),a(20,"nav",11)(21,"a",12),c(22),l(),a(23,"a",13),c(24),l(),a(25,"a",14),c(26),l()(),a(27,"div",15)(28,"p-button",16),W("onClick",function(){return r.toggleTheme()}),l(),a(29,"div",17)(30,"strong"),c(31),l(),c(32),l()()(),a(33,"main",18),P(34,"router-outlet"),l()()),t&2&&(d(4),p(r.texts.viewportWarning.title),d(2),p(r.texts.viewportWarning.subtitle),d(2),p(r.texts.viewportWarning.body),d(9),p(r.texts.brand),d(2),p(r.texts.tag),d(),se("aria-label",r.texts.a11y.viewSwitcher),d(2),p(r.texts.nav.list),d(2),p(r.texts.nav.graph),d(2),p(r.texts.nav.inspector),d(2),O("icon",r.themeIcon())("ariaLabel",r.themeLabel())("text",!0)("rounded",!0),d(3),p(r.count()),d(),de(" ",r.texts.badge.nodes," "))},dependencies:[fe,ve,Ie,F,N,Q],styles:["[_nghost-%COMP%]{display:block;height:100dvh}.shell[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100dvh}.shell__topbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:2rem;padding:.75rem 1.5rem;background:var(--sm-bg-content);border-bottom:1px solid var(--sm-border);box-shadow:var(--sm-shadow-topbar)}.shell__brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem}.shell__brand-mark[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:.5rem;background:var(--p-primary-color);color:var(--p-primary-contrast-color);font-weight:700;font-size:.85rem;letter-spacing:.04em}.shell__brand[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{margin:0;font-size:1.05rem;font-weight:600;letter-spacing:-.01em}.shell__tag[_ngcontent-%COMP%]{margin:0;font-size:.72rem;color:var(--p-text-muted-color);letter-spacing:.02em;text-transform:uppercase}.shell__nav[_ngcontent-%COMP%]{display:flex;gap:.25rem;margin-left:auto}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:.5rem .9rem;border-radius:.5rem;font-size:.9rem;font-weight:500;color:var(--p-text-muted-color);transition:background .15s ease,color .15s ease}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:var(--sm-bg-hover);color:var(--p-text-color)}.shell__nav[_ngcontent-%COMP%] a.is-active[_ngcontent-%COMP%]{background:var(--sm-nav-active-bg);color:var(--p-primary-color)}.shell__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem}.shell__badge[_ngcontent-%COMP%]{padding:.4rem .8rem;border-radius:999px;background:var(--sm-bg-hover);color:var(--p-text-muted-color);font-size:.85rem}.shell__badge[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--p-text-color);margin-right:.25rem}.shell__main[_ngcontent-%COMP%]{flex:1;min-height:0;overflow-y:auto;padding:1.5rem;max-width:1400px;width:100%;margin:0 auto}@media(max-width:1280px){.shell__topbar[_ngcontent-%COMP%]{gap:1rem;padding:.5rem 1rem}.shell__tag[_ngcontent-%COMP%]{display:none}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:.4rem .7rem;font-size:.85rem}.shell__main[_ngcontent-%COMP%]{padding:1rem}}.viewport-warning[_ngcontent-%COMP%]{display:none}@media(max-width:1023px){.viewport-warning[_ngcontent-%COMP%]{position:fixed;top:0;left:0;right:0;z-index:100000;padding:.75rem 1rem;background:color-mix(in srgb,var(--sm-bg-content) 88%,var(--p-red-500));border-bottom:4px solid var(--p-red-500);box-shadow:0 6px 18px #00000026}.viewport-warning__card[_ngcontent-%COMP%]{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.5rem .85rem;max-width:56rem;margin:0 auto}.viewport-warning__icon[_ngcontent-%COMP%]{grid-row:span 3;font-size:2rem;color:var(--p-red-500);align-self:center}.viewport-warning__title[_ngcontent-%COMP%]{margin:0;font-size:1rem;font-weight:700;color:var(--p-text-color);line-height:1.2}.viewport-warning__subtitle[_ngcontent-%COMP%]{margin:0;font-size:.85rem;font-weight:500;color:var(--p-red-500);line-height:1.3}.viewport-warning__body[_ngcontent-%COMP%]{margin:0;color:var(--p-text-muted-color);line-height:1.4;font-size:.8rem}.shell[_ngcontent-%COMP%]{padding-top:7rem}}"],changeDetection:0})};ce(H,Oe).catch(n=>console.error(n));