@skill-map/cli 0.24.2 → 0.24.3

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.
@@ -1 +1 @@
1
- import{e as xe,j as T,k as w}from"./chunk-CUNKB7ZS.js";import{Ba as ue,Ib as be,J as V,Jb as Ce,Ka as g,M as le,Na as p,O as R,Oa as m,Pa as ge,Ra as x,Sa as I,T as ce,Ta as C,Tb as r,U as pe,Ua as f,Va as v,Wa as F,Xa as s,Xb as y,Ya as l,Za as $,ab as ye,da as j,db as fe,ea as me,gb as ve,hb as a,kc as he,oa as i,sb as _e,tb as E,vb as oe,wa as _,wb as d,xb as c,yb as z}from"./chunk-XPMAU22J.js";import{c as se}from"./chunk-Q7L6LLAK.js";var q="sm-debug-slots",Ee="debug-slots",Se="is-debug-slots",K=class n{visible=j(!1);constructor(){this.visible.set(this.resolveInitial()),me(()=>{let e=this.visible();document.documentElement.classList.toggle(Se,e)})}toggle(){let e=!this.visible();this.visible.set(e);try{localStorage.setItem(q,e?"1":"0")}catch{}}resolveInitial(){let t=new URLSearchParams(window.location.search).get(Ee);if(t==="1"||t==="true"){try{localStorage.setItem(q,"1")}catch{}return!0}if(t==="0"||t==="false"){try{localStorage.setItem(q,"0")}catch{}return!1}try{return localStorage.getItem(q)==="1"}catch{return!1}}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})};var H=class n{registry=j({});setRegistry(e){e&&this.registry.set(e)}get(e){return this.registry()[e]}all(){return this.registry()}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})};function k(n){return typeof n=="object"&&n!==null}function O(n,e){return k(n)&&Array.isArray(n[e])}function U(n,e){return k(n)&&typeof n[e]=="string"}var h={panelHeader:"Plugin contributions",panelCount:n=>`${n} contribution${n===1?"":"s"}`,emptyDefault:"No contributions for this node.",rendererInvalid:"Contribution data failed schema validation.",rendererUnknownSlot:n=>`Unknown slot: ${n}. Update the UI to a newer catalog version.`,overflowBadge:n=>`+${n}`,overflowTooltip:n=>`Hidden: ${n}`,recordsCell:{boolTrue:"yes",boolFalse:"no"}};var De=(n,e)=>e.label;function Pe(n,e){if(n&1&&(s(0,"h5",1),d(1),l()),n&2){let t=a();i(),c(t.label())}}function Oe(n,e){if(n&1&&(s(0,"p",2),d(1),l()),n&2){let t=a();i(),c(t.emptyText())}}function Re(n,e){if(n&1&&(s(0,"li",4)(1,"span",5),d(2),l(),s(3,"span",6),$(4,"span",7),l(),s(5,"span",8),d(6),l()()),n&2){let t=e.$implicit,o=a(2);g("title",t.tooltip??""),i(2),c(t.label),i(2),_e("width",o.percent(t.value),"%"),i(2),c(t.value)}}function Fe(n,e){if(n&1&&(s(0,"ul",3),x(1,Re,7,5,"li",4,De),l()),n&2){let t=a();i(),I(t.entries())}}var W=class n{inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return k(e)?O(e,"entries")?e:{entries:[]}:{entries:[]}});entries=r(()=>this.typed().entries??[]);label=r(()=>this.inputs().label);emptyText=r(()=>this.inputs().emptyText??h.emptyDefault);maxValue=r(()=>this.entries().reduce((t,o)=>o.value>t?o.value:t,0));percent(e){let t=this.maxValue();return t===0?0:Math.round(e/t*100)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-breakdown"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-breakdown"],[1,"vc-breakdown__header"],[1,"vc-breakdown__empty"],[1,"vc-breakdown__rows"],[1,"vc-breakdown__row"],[1,"vc-breakdown__label"],[1,"vc-breakdown__bar-track"],["aria-hidden","true",1,"vc-breakdown__bar"],[1,"vc-breakdown__value"]],template:function(t,o){t&1&&(s(0,"section",0),p(1,Pe,2,1,"h5",1),p(2,Oe,2,1,"p",2)(3,Fe,3,0,"ul",3),l()),t&2&&(g("data-testid","renderer-node-breakdown"),i(),m(o.label()?1:-1),i(),m(o.entries().length===0?2:3))},styles:[".vc-breakdown__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-700);margin:0 0 .5rem}.vc-breakdown__rows[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.vc-breakdown__row[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(4rem,.4fr) 1fr 3rem;align-items:center;gap:.5rem;font-size:.85rem}.vc-breakdown__label[_ngcontent-%COMP%]{color:var(--p-surface-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vc-breakdown__bar-track[_ngcontent-%COMP%]{background:var(--p-surface-100);border-radius:var(--sm-radius-md);height:.625rem;overflow:hidden}.vc-breakdown__bar[_ngcontent-%COMP%]{display:block;height:100%;background:var(--p-primary-500)}.vc-breakdown__value[_ngcontent-%COMP%]{text-align:right;color:var(--p-surface-600)}.vc-breakdown__empty[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.85rem;margin:0}"],changeDetection:0})};function $e(n,e){if(n&1&&(s(0,"span",1),d(1),l()),n&2){let t=a(),o=a();oe(o.hostClass()),i(),c(t.text)}}function Le(n,e){if(n&1&&$(0,"i",1),n&2){let t=a(),o=a();oe(o.hostClass()+" "+t.cls)}}function Ae(n,e){n&1&&p(0,$e,2,3,"span",0)(1,Le,1,2,"i",0),n&2&&m(e.kind==="emoji"?0:1)}function Ve(n){if(!n)return null;let e=n.trim();if(e.length===0)return null;let t=e.codePointAt(0)??0;if(!(t>=65&&t<=90||t>=97&&t<=122))return{kind:"emoji",text:e};if(/^pi pi-[a-z0-9-]+$/.test(e))return{kind:"pi",cls:e};if(/^pi-[a-z0-9-]+$/.test(e))return{kind:"pi",cls:`pi ${e}`};if(/^fa-(?:solid|regular|brands) fa-[a-z0-9-]+$/.test(e))return{kind:"fa",cls:e};if(/^fa-[a-z0-9-]+$/.test(e)){let u=e.slice(3);return u==="solid"||u==="regular"||u==="brands"||u.includes("fa-")?null:{kind:"fa",cls:`fa-solid ${e}`}}return null}var P=class n{icon=y(void 0);hostClass=y("");resolved=r(()=>{let e=this.icon(),t=Ve(e);return e&&!t&&console.warn(`[sm-icon] Invalid icon string "${e}". Expected emoji, pi-foo, pi pi-foo, fa-{solid|regular|brands} fa-foo, or fa-foo.`),t});static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-icon"]],inputs:{icon:[1,"icon"],hostClass:[1,"hostClass"]},decls:1,vars:1,consts:[["aria-hidden","true",3,"class"],["aria-hidden","true"]],template:function(t,o){if(t&1&&p(0,Ae,2,1),t&2){let u;m((u=o.resolved())?0:-1,u)}},styles:["[_nghost-%COMP%] i[_ngcontent-%COMP%], [_nghost-%COMP%] span[_ngcontent-%COMP%]{font-size:inherit;line-height:inherit}[_nghost-%COMP%] i[_ngcontent-%COMP%]{transform:translateY(1px)}"],changeDetection:0})};function Be(n,e){if(n&1&&(f(0,"span",3),d(1),v()),n&2){let t=a();g("aria-label",t.ariaLabel()),i(),c(t.value())}}var L=class n{inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{value:0}:e});value=r(()=>this.typed().value);icon=r(()=>this.inputs().icon);severity=r(()=>this.typed().severity);resolvedTooltip=r(()=>this.typed().tooltip??this.inputs().tooltip??"");ariaLabel=r(()=>this.inputs().label??"");static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-counter"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:12,consts:[[1,"vc-counter",3,"pTooltip"],[1,"vc-counter__icon"],[3,"icon"],[1,"vc-counter__value"]],template:function(t,o){t&1&&(f(0,"span",0)(1,"span",1),F(2,"sm-icon",2),v(),p(3,Be,2,2,"span",3),v()),t&2&&(E("vc-counter--info",o.severity()==="info")("vc-counter--warn",o.severity()==="warn")("vc-counter--success",o.severity()==="success")("vc-counter--danger",o.severity()==="danger"),C("pTooltip",o.resolvedTooltip()),g("data-testid","renderer-node-counter"),i(2),C("icon",o.icon()),i(),m(o.value()>0?3:-1))},dependencies:[w,T,P],styles:[".vc-counter[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.3rem;line-height:1}.vc-counter__icon[_ngcontent-%COMP%]{font-size:.6rem;line-height:1;display:block}.vc-counter__value[_ngcontent-%COMP%]{font-weight:600;color:var(--p-text-color);line-height:1;display:block}.vc-counter--info[_ngcontent-%COMP%], .vc-counter--info[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-info)}.vc-counter--warn[_ngcontent-%COMP%], .vc-counter--warn[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-warn)}.vc-counter--success[_ngcontent-%COMP%], .vc-counter--success[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-success)}.vc-counter--danger[_ngcontent-%COMP%], .vc-counter--danger[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-error)}"],changeDetection:0})};var je=(n,e)=>e.key;function ze(n,e){if(n&1&&(f(0,"h5",1),d(1),v()),n&2){let t=a();i(),c(t.label())}}function qe(n,e){if(n&1&&(f(0,"p",2),d(1),v()),n&2){let t=a();i(),c(t.emptyText())}}function Ke(n,e){if(n&1&&(f(0,"dt",4),d(1),v(),f(2,"dd"),d(3),v()),n&2){let t=e.$implicit,o=a(2);C("pTooltip",t.tooltip??""),i(),c(t.key),i(2),c(o.formatValue(t.value))}}function He(n,e){if(n&1&&(f(0,"dl",3),x(1,Ke,4,3,null,null,je),v()),n&2){let t=a();i(),I(t.entries())}}var X=class n{inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return k(e)?O(e,"entries")?e:{entries:[]}:{entries:[]}});entries=r(()=>this.typed().entries??[]);label=r(()=>this.inputs().label);emptyText=r(()=>this.inputs().emptyText??h.emptyDefault);formatValue(e){return e==null?"\u2014":typeof e=="boolean"?e?"true":"false":String(e)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-key-values"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-kv"],[1,"vc-kv__header"],[1,"vc-kv__empty"],[1,"vc-kv__list"],[3,"pTooltip"]],template:function(t,o){t&1&&(f(0,"section",0),p(1,ze,2,1,"h5",1),p(2,qe,2,1,"p",2)(3,He,3,0,"dl",3),v()),t&2&&(g("data-testid","renderer-node-key-values"),i(),m(o.label()?1:-1),i(),m(o.entries().length===0?2:3))},dependencies:[w,T],styles:[".vc-kv__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-700);margin:0 0 .5rem}.vc-kv__list[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(6rem,max-content) 1fr;gap:.25rem .75rem;margin:0;font-size:.85rem}.vc-kv__list[_ngcontent-%COMP%] dt[_ngcontent-%COMP%]{color:var(--p-surface-600);font-weight:500}.vc-kv__list[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{color:var(--p-surface-800);margin:0;word-break:break-word}.vc-kv__empty[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.85rem;margin:0}"],changeDetection:0})};var ie=class n{router=R(xe);open(e){this.router.navigate(["/graph"],{queryParams:{path:e}})}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})},Ie=new le("NODE_OPEN_INTENT",{providedIn:"root",factory:()=>R(ie)});var Ue=(n,e)=>e.path;function We(n,e){if(n&1&&(s(0,"h5",1),d(1),l()),n&2){let t=a();i(),c(t.label())}}function Xe(n,e){if(n&1&&(s(0,"p",2),d(1),l()),n&2){let t=a();i(),c(t.emptyText())}}function Ye(n,e){if(n&1&&(s(0,"span",5),d(1),l()),n&2){let t=a().$implicit;i(),c(t.kind)}}function Ge(n,e){if(n&1){let t=fe();s(0,"li")(1,"button",4),ve("click",function(){let u=ce(t).$implicit,b=a(2);return pe(b.onOpenPath(u.path))}),p(2,Ye,2,1,"span",5),s(3,"span",6),d(4),l()()()}if(n&2){let t=e.$implicit;i(2),m(t.kind?2:-1),i(2),c(t.label??t.path)}}function Qe(n,e){if(n&1&&(s(0,"ul",3),x(1,Ge,5,2,"li",null,Ue),l()),n&2){let t=a();i(),I(t.entries())}}var Y=class n{openIntent=R(Ie);inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return k(e)?O(e,"entries")?e:{entries:[]}:{entries:[]}});entries=r(()=>this.typed().entries??[]);label=r(()=>this.inputs().label);emptyText=r(()=>this.inputs().emptyText??h.emptyDefault);onOpenPath(e){this.openIntent.open(e)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-link-list"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-links"],[1,"vc-links__header"],[1,"vc-links__empty"],[1,"vc-links__list"],["type","button",1,"vc-links__btn",3,"click"],[1,"vc-links__kind"],[1,"vc-links__label"]],template:function(t,o){t&1&&(s(0,"section",0),p(1,We,2,1,"h5",1),p(2,Xe,2,1,"p",2)(3,Qe,3,0,"ul",3),l()),t&2&&(g("data-testid","renderer-node-link-list"),i(),m(o.label()?1:-1),i(),m(o.entries().length===0?2:3))},styles:[".vc-links__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-700);margin:0 0 .5rem}.vc-links__list[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.125rem;font-size:.85rem}.vc-links__btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:0;padding:.25rem .5rem;border-radius:var(--sm-radius-md);color:var(--p-primary-600);cursor:pointer;text-align:left;width:100%}.vc-links__btn[_ngcontent-%COMP%]:hover{background:var(--p-surface-100)}.vc-links__kind[_ngcontent-%COMP%]{color:var(--p-surface-500);font-family:var(--p-font-family-mono);font-size:.75rem}.vc-links__label[_ngcontent-%COMP%]{word-break:break-all}.vc-links__empty[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.85rem;margin:0}"],changeDetection:0})};var Ne=(n,e)=>e.key;function Je(n,e){if(n&1&&(s(0,"h5",1),d(1),l()),n&2){let t=a();i(),c(t.label())}}function Ze(n,e){if(n&1&&(s(0,"p",2),d(1),l()),n&2){let t=a();i(),c(t.emptyText())}}function et(n,e){if(n&1&&(s(0,"th"),d(1),l()),n&2){let t=e.$implicit;i(),c(t.label)}}function tt(n,e){if(n&1&&$(0,"i",4),n&2){let t=a(4);g("aria-label",t.texts.boolTrue)}}function nt(n,e){if(n&1&&$(0,"i",5),n&2){let t=a(4);g("aria-label",t.texts.boolFalse)}}function ot(n,e){}function it(n,e){if(n&1&&d(0),n&2){let t=a().$implicit,o=a().$implicit,u=a(2);z(" ",u.cellText(o[t.key])," ")}}function rt(n,e){if(n&1&&(s(0,"td"),p(1,tt,1,1,"i",4)(2,nt,1,1,"i",5)(3,ot,0,0)(4,it,1,1),l()),n&2){let t,o=e.$implicit,u=a().$implicit,b=a(2);i(),m((t=b.cellKind(u[o.key]))==="bool-true"?1:t==="bool-false"?2:t==="empty"?3:4)}}function at(n,e){if(n&1&&(s(0,"tr"),x(1,rt,5,1,"td",null,Ne),l()),n&2){let t=a(2);i(),I(t.columns())}}function dt(n,e){if(n&1&&(s(0,"table",3)(1,"thead")(2,"tr"),x(3,et,2,1,"th",null,Ne),l()(),s(5,"tbody"),x(6,at,3,0,"tr",null,ge),l()()),n&2){let t=a();i(3),I(t.columns()),i(3),I(t.rows())}}var G=class n{inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return k(e)?!O(e,"columns")||!O(e,"rows")?{columns:[],rows:[]}:e:{columns:[],rows:[]}});columns=r(()=>this.typed().columns??[]);rows=r(()=>this.typed().rows??[]);label=r(()=>this.inputs().label);emptyText=r(()=>this.inputs().emptyText??h.emptyDefault);texts=h.recordsCell;cellKind(e){return e==null?"empty":typeof e=="boolean"?e?"bool-true":"bool-false":"text"}cellText(e){return e==null?"":String(e)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-records"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-records"],[1,"vc-records__header"],[1,"vc-records__empty"],[1,"vc-records__table"],["role","img",1,"pi","pi-check","vc-records__bool","vc-records__bool--true"],["role","img",1,"pi","pi-minus","vc-records__bool","vc-records__bool--false"]],template:function(t,o){t&1&&(s(0,"section",0),p(1,Je,2,1,"h5",1),p(2,Ze,2,1,"p",2)(3,dt,8,0,"table",3),l()),t&2&&(g("data-testid","renderer-node-records"),i(),m(o.label()?1:-1),i(),m(o.rows().length===0?2:3))},styles:[".vc-records__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-700);margin:0 0 .5rem}.vc-records__table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;font-size:.85rem}.vc-records__table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{text-align:left;padding:.25rem .5rem;border-bottom:1px solid var(--p-surface-200);color:var(--p-surface-700);font-weight:600}.vc-records__table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:.25rem .5rem;border-bottom:1px solid var(--p-surface-100);color:var(--p-surface-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:16rem}.vc-records__empty[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.85rem;margin:0}.vc-records__bool[_ngcontent-%COMP%]{font-size:.9rem;line-height:1}.vc-records__bool--true[_ngcontent-%COMP%]{color:var(--p-primary-color)}.vc-records__bool--false[_ngcontent-%COMP%]{color:var(--p-text-muted-color)}"],changeDetection:0})};function st(n,e){if(n&1&&(s(0,"h5",1),d(1),l()),n&2){let t=a();i(),c(t.label())}}function lt(n,e){if(n&1&&(s(0,"p",2),d(1),l()),n&2){let t=a();i(),c(t.emptyText())}}function ct(n,e){if(n&1&&(s(0,"pre",3),d(1),l()),n&2){let t=a();i(),c(t.markdown())}}var Q=class n{inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return k(e)?U(e,"markdown")?e:{markdown:""}:{markdown:""}});markdown=r(()=>this.typed().markdown??"");label=r(()=>this.inputs().label);emptyText=r(()=>this.inputs().emptyText??h.emptyDefault);static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-markdown"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-markdown"],[1,"vc-markdown__header"],[1,"vc-markdown__empty"],[1,"vc-markdown__body"]],template:function(t,o){t&1&&(s(0,"section",0),p(1,st,2,1,"h5",1),p(2,lt,2,1,"p",2)(3,ct,2,1,"pre",3),l()),t&2&&(g("data-testid","renderer-node-markdown"),i(),m(o.label()?1:-1),i(),m(o.markdown()?3:2))},styles:[".vc-markdown__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-700);margin:0 0 .5rem}.vc-markdown__body[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-800);background:var(--p-surface-50);padding:.5rem;border-radius:var(--sm-radius-md);white-space:pre-wrap;word-break:break-word;margin:0;max-height:12rem;overflow:auto}.vc-markdown__empty[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.85rem;margin:0}"],changeDetection:0})};function pt(n,e){if(n&1&&(f(0,"span",1),d(1),v()),n&2){let t=a();i(),c(t.icon())}}var J=class n{inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{label:""}:e});label=r(()=>this.typed().label||"");icon=r(()=>this.inputs().icon);severity=r(()=>this.typed().severity);resolvedTooltip=r(()=>this.typed().tooltip??this.inputs().tooltip??"");static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-tag"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:12,consts:[[1,"vc-tag",3,"pTooltip"],["aria-hidden","true",1,"vc-tag__icon"],[1,"vc-tag__label"]],template:function(t,o){t&1&&(f(0,"span",0),p(1,pt,2,1,"span",1),f(2,"span",2),d(3),v()()),t&2&&(E("vc-tag--info",o.severity()==="info")("vc-tag--warn",o.severity()==="warn")("vc-tag--success",o.severity()==="success")("vc-tag--danger",o.severity()==="danger"),C("pTooltip",o.resolvedTooltip()),g("data-testid","renderer-node-tag"),i(),m(o.icon()?1:-1),i(2),c(o.label()))},dependencies:[w,T],styles:[".vc-tag[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.3rem;line-height:1}.vc-tag__icon[_ngcontent-%COMP%]{font-size:.85em;line-height:1;display:block}.vc-tag__label[_ngcontent-%COMP%]{font-weight:500;line-height:1;display:block}.vc-tag--info[_ngcontent-%COMP%]{background:var(--sm-severity-info-bg);color:var(--sm-severity-info);padding:.1rem .4rem;border-radius:var(--sm-radius-sm)}.vc-tag--warn[_ngcontent-%COMP%]{background:var(--sm-severity-warn-bg);color:var(--sm-severity-warn);padding:.1rem .4rem;border-radius:var(--sm-radius-sm)}.vc-tag--success[_ngcontent-%COMP%]{background:var(--sm-severity-success-bg);color:var(--sm-severity-success);padding:.1rem .4rem;border-radius:var(--sm-radius-sm)}.vc-tag--danger[_ngcontent-%COMP%]{background:var(--sm-severity-error-bg);color:var(--sm-severity-error);padding:.1rem .4rem;border-radius:var(--sm-radius-sm)}"],changeDetection:0})};var mt=()=>[],Te=(n,e)=>e.label;function ut(n,e){if(n&1&&(s(0,"h5",1),d(1),l()),n&2){let t=a();i(),c(t.label())}}function gt(n,e){if(n&1&&(s(0,"p",2),d(1),l()),n&2){let t=a();i(),c(t.emptyText())}}function yt(n,e){if(n&1&&(s(0,"span",5),d(1),l()),n&2){let t=a().$implicit;i(),c(t.marker)}}function ft(n,e){if(n&1&&(s(0,"span",5),d(1),l()),n&2){let t=a().$implicit;i(),c(t.marker)}}function vt(n,e){if(n&1&&(s(0,"li",4),p(1,ft,2,1,"span",5),s(2,"span",6),d(3),l()()),n&2){let t=e.$implicit;g("title",t.tooltip??""),i(),m(t.marker?1:-1),i(2),c(t.label)}}function _t(n,e){if(n&1&&(s(0,"ul",7),x(1,vt,4,3,"li",4,Te),l()),n&2){let t=a().$implicit;i(),I(t.children)}}function bt(n,e){if(n&1&&(s(0,"li",4),p(1,yt,2,1,"span",5),s(2,"span",6),d(3),l(),p(4,_t,3,0,"ul",7),l()),n&2){let t=e.$implicit;g("title",t.tooltip??""),i(),m(t.marker?1:-1),i(2),c(t.label),i(),m(t.children&&t.children.length>0?4:-1)}}function Ct(n,e){if(n&1&&(s(0,"ul",3),x(1,bt,5,4,"li",4,Te),l()),n&2){let t=a();i(),I(t.root().children??be(0,mt))}}var Z=class n{inputs=y.required();root=r(()=>{let e=this.inputs().payload;return k(e)?U(e,"label")?e.children!==void 0&&!Array.isArray(e.children)?{label:""}:e:{label:""}:{label:""}});rootIsEmpty=r(()=>{let e=this.root();return!e.children||e.children.length===0});label=r(()=>this.inputs().label);emptyText=r(()=>this.inputs().emptyText??h.emptyDefault);static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-tree"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-tree"],[1,"vc-tree__header"],[1,"vc-tree__empty"],["role","tree",1,"vc-tree__list"],["role","treeitem"],["aria-hidden","true",1,"vc-tree__marker"],[1,"vc-tree__label"],["role","group",1,"vc-tree__list"]],template:function(t,o){t&1&&(s(0,"section",0),p(1,ut,2,1,"h5",1),p(2,gt,2,1,"p",2)(3,Ct,3,1,"ul",3),l()),t&2&&(g("data-testid","renderer-node-tree"),i(),m(o.label()?1:-1),i(),m(o.rootIsEmpty()?2:3))},styles:[".vc-tree__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-700);margin:0 0 .5rem}.vc-tree__list[_ngcontent-%COMP%]{list-style:none;padding-left:1rem;margin:0;font-size:.85rem}.vc-tree__list[_ngcontent-%COMP%] > li[_ngcontent-%COMP%]{padding:.125rem 0}.vc-tree__marker[_ngcontent-%COMP%]{margin-right:.25rem;opacity:.7}.vc-tree__label[_ngcontent-%COMP%]{color:var(--p-surface-800)}.vc-tree__empty[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.85rem;margin:0}"],changeDetection:0})};function ht(n,e){if(n&1&&(f(0,"span",2),d(1),v()),n&2){let t=a();i(),c(t.formattedCount())}}var ee=class n{inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{}:e});icon=r(()=>this.typed().icon??this.inputs().icon);severity=r(()=>this.typed().severity);count=r(()=>this.typed().count??null);resolvedTooltip=r(()=>this.typed().tooltip??this.inputs().tooltip??"");formattedCount=r(()=>{let e=this.count();return e===null?"":e>=99?"99+":String(e)});static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-alert"]],inputs:{inputs:[1,"inputs"]},decls:3,vars:12,consts:[[1,"vc-alert",3,"pTooltip"],["hostClass","vc-alert__icon",3,"icon"],[1,"vc-alert__count"]],template:function(t,o){t&1&&(f(0,"span",0),F(1,"sm-icon",1),p(2,ht,2,1,"span",2),v()),t&2&&(E("vc-alert--info",o.severity()==="info")("vc-alert--warn",o.severity()==="warn")("vc-alert--success",o.severity()==="success")("vc-alert--danger",o.severity()==="danger"),C("pTooltip",o.resolvedTooltip()),g("data-testid","renderer-node-alert"),i(),C("icon",o.icon()),i(),m(o.count()!==null?2:-1))},dependencies:[w,T,P],styles:[".vc-alert[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;gap:.125rem;min-width:1.1rem;min-height:1.1rem;font-size:.85rem;color:var(--p-surface-700)}.vc-alert--info[_ngcontent-%COMP%]{color:var(--sm-severity-info)}.vc-alert--warn[_ngcontent-%COMP%]{color:var(--sm-severity-warn)}.vc-alert--success[_ngcontent-%COMP%]{color:var(--sm-severity-success)}.vc-alert--danger[_ngcontent-%COMP%]{color:var(--sm-severity-error)}"],changeDetection:0})};var te=class n{inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{}:e});icon=r(()=>this.typed().icon??this.inputs().icon);severity=r(()=>this.typed().severity);resolvedTooltip=r(()=>this.typed().tooltip??this.inputs().tooltip??"");ariaLabel=r(()=>this.inputs().label??"");static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-icon"]],inputs:{inputs:[1,"inputs"]},decls:2,vars:12,consts:[[1,"vc-icon",3,"pTooltip"],["hostClass","vc-icon__glyph",3,"icon"]],template:function(t,o){t&1&&(f(0,"span",0),F(1,"sm-icon",1),v()),t&2&&(E("vc-icon--info",o.severity()==="info")("vc-icon--warn",o.severity()==="warn")("vc-icon--success",o.severity()==="success")("vc-icon--danger",o.severity()==="danger"),C("pTooltip",o.resolvedTooltip()),g("aria-label",o.ariaLabel())("data-testid","renderer-node-icon"),i(),C("icon",o.icon()))},dependencies:[w,T,P],styles:[".vc-icon[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;line-height:1;width:22px;height:22px}.vc-icon__glyph[_ngcontent-%COMP%]{font-size:.7rem;line-height:1;display:block}.vc-icon--info[_ngcontent-%COMP%]{color:var(--sm-severity-info)}.vc-icon--warn[_ngcontent-%COMP%]{color:var(--sm-severity-warn)}.vc-icon--success[_ngcontent-%COMP%]{color:var(--sm-severity-success)}.vc-icon--danger[_ngcontent-%COMP%]{color:var(--sm-severity-error)}"],changeDetection:0})};function xt(n,e){if(n&1&&(f(0,"span",3),d(1),v()),n&2){let t=a();i(),c(t.label())}}var ne=class n{inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{value:""}:e});value=r(()=>String(this.typed().value??""));label=r(()=>this.typed().label??this.inputs().label);icon=r(()=>this.inputs().icon);severity=r(()=>this.typed().severity);resolvedTooltip=r(()=>this.typed().tooltip??this.inputs().tooltip??"");static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-scope-stat"]],inputs:{inputs:[1,"inputs"]},decls:5,vars:13,consts:[[1,"vc-stat",3,"pTooltip"],["hostClass","vc-stat__icon",3,"icon"],[1,"vc-stat__value"],[1,"vc-stat__label"]],template:function(t,o){t&1&&(f(0,"span",0),F(1,"sm-icon",1),f(2,"span",2),d(3),v(),p(4,xt,2,1,"span",3),v()),t&2&&(E("vc-stat--info",o.severity()==="info")("vc-stat--warn",o.severity()==="warn")("vc-stat--success",o.severity()==="success")("vc-stat--danger",o.severity()==="danger"),C("pTooltip",o.resolvedTooltip()),g("data-testid","renderer-scope-stat"),i(),C("icon",o.icon()),i(2),c(o.value()),i(),m(o.label()?4:-1))},dependencies:[w,T,P],styles:[".vc-stat[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;border-radius:.75rem;font-size:.85rem;background:var(--p-surface-100);color:var(--p-surface-800)}.vc-stat__label[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.8rem}.vc-stat--info[_ngcontent-%COMP%]{background:var(--p-blue-100);color:var(--p-blue-700)}.vc-stat--warn[_ngcontent-%COMP%]{background:var(--p-yellow-100);color:var(--p-yellow-800)}.vc-stat--success[_ngcontent-%COMP%]{background:var(--p-green-100);color:var(--p-green-700)}.vc-stat--danger[_ngcontent-%COMP%]{background:var(--p-red-100);color:var(--p-red-700)}"],changeDetection:0})};var re={"card.title.right":te,"card.subtitle.left":L,"card.footer.left":L,"card.footer.right":L,"graph.node.alert":ee,"inspector.header.badge.counter":L,"inspector.header.badge.tag":J,"inspector.body.panel.breakdown":W,"inspector.body.panel.records":G,"inspector.body.panel.tree":Z,"inspector.body.panel.key-values":X,"inspector.body.panel.link-list":Y,"inspector.body.panel.markdown":Q,"topbar.nav.start":ne};function we(n){return n in re}var A={"topbar.nav.start":{id:"topbar.nav.start",cardinality:"multi",maxItems:3,order:"alphabetical",strategy:"append"},"inspector.header.badge.counter":{id:"inspector.header.badge.counter",cardinality:"multi",maxItems:4,order:"alphabetical",strategy:"append"},"inspector.header.badge.tag":{id:"inspector.header.badge.tag",cardinality:"multi",maxItems:4,order:"alphabetical",strategy:"append"},"inspector.body.panel.breakdown":{id:"inspector.body.panel.breakdown",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.records":{id:"inspector.body.panel.records",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.tree":{id:"inspector.body.panel.tree",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.key-values":{id:"inspector.body.panel.key-values",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.link-list":{id:"inspector.body.panel.link-list",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.markdown":{id:"inspector.body.panel.markdown",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"card.footer.left":{id:"card.footer.left",cardinality:"multi",maxItems:5,order:"priority",strategy:"append",respectSeverity:!0},"card.footer.right":{id:"card.footer.right",cardinality:"multi",maxItems:5,order:"priority",strategy:"append",respectSeverity:!0},"card.subtitle.left":{id:"card.subtitle.left",cardinality:"multi",maxItems:3,order:"priority",strategy:"append",respectSeverity:!0},"card.title.right":{id:"card.title.right",cardinality:"multi",maxItems:2,order:"priority",strategy:"append",respectSeverity:!0},"graph.node.alert":{id:"graph.node.alert",cardinality:"multi",maxItems:1,order:"severity",strategy:"append",showOverflowBadge:!1}};var It=n=>({inputs:n}),Nt=(n,e)=>e.qualifiedId;function Tt(n,e){n&1&&ye(0)}function wt(n,e){if(n&1&&(f(0,"span",1),ue(1,Tt,1,0,"ng-container",3),v()),n&2){let t=e.$implicit,o=a(2);g("data-testid","contribution-"+t.qualifiedId.replaceAll("/","-")),i(),C("ngComponentOutlet",o.rendererFor(t.slot))("ngComponentOutletInputs",Ce(3,It,t.rendererInputs))}}function kt(n,e){if(n&1&&(f(0,"span",2),d(1),v()),n&2){let t=a(2);C("pTooltip",t.overflowTooltip()),i(),z(" ",t.overflowBadge()," ")}}function Mt(n,e){if(n&1&&(f(0,"span",0),x(1,wt,2,5,"span",1,Nt),p(3,kt,2,2,"span",2),v()),n&2){let t=a();g("data-testid","view-contributions-host-"+t.testidSuffix()),i(),I(t.visible()),i(2),m(t.overflowCount()>0&&t.showOverflowBadge()?3:-1)}}var ke=class n{slot=y.required();node=y(null);debugSlots=R(K);debugVisible=this.debugSlots.visible;testidSuffix=r(()=>this.slot().replaceAll(".","-"));registry=R(H);dispatched=r(()=>{let e=this.node();if(!e)return[];let t=e.contributions??[];if(t.length===0)return[];let o=this.slot(),u=t.filter(b=>b.slot===o).filter(b=>we(b.slot));return this.sortBySlotOrder(u,o).map(b=>({qualifiedId:`${b.pluginId}/${b.extensionId}/${b.contributionId}`,slot:b.slot,rendererInputs:this.buildInputs(b,o)}))});visible=r(()=>{let e=this.dispatched(),t=A[this.slot()].maxItems;return e.slice(0,t)});overflowCount=r(()=>{let e=this.dispatched(),t=A[this.slot()].maxItems;return Math.max(0,e.length-t)});showOverflowBadge=r(()=>A[this.slot()].showOverflowBadge!==!1);overflowBadge=r(()=>h.overflowBadge(this.overflowCount()));overflowTooltip=r(()=>{let e=this.dispatched(),t=A[this.slot()].maxItems,o=e.slice(t).map(u=>u.qualifiedId).join(", ");return h.overflowTooltip(o)});rendererFor(e){return re[e]}buildInputs(e,t){let o=`${e.pluginId}/${e.extensionId}/${e.contributionId}`,u=this.registry.get(o),b=A[t].respectSeverity!==!1,M=e.payload;if(!b&&typeof M=="object"&&M!==null&&"severity"in M){let de=M,{severity:Et}=de;M=se(de,["severity"])}let D={pluginId:e.pluginId,extensionId:e.extensionId,contributionId:e.contributionId,payload:M};return u?.label&&(D.label=u.label),u?.tooltip&&(D.tooltip=u.tooltip),u?.icon&&(D.icon=u.icon),u?.emptyText&&(D.emptyText=u.emptyText),D}sortBySlotOrder(e,t){let o=A[t].order;return o==="fifo"?e.slice():o==="priority"?e.slice().sort((u,b)=>{let M=this.priorityFor(u),D=this.priorityFor(b);return M!==D?M-D:ae(u,b)}):o==="severity"?e.slice().sort((u,b)=>{let M=Me(u),D=Me(b);return M!==D?D-M:ae(u,b)}):e.slice().sort(ae)}priorityFor(e){let t=`${e.pluginId}/${e.extensionId}/${e.contributionId}`;return this.registry.get(t)?.priority??100}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-view-contributions-host"]],hostVars:3,hostBindings:function(t,o){t&2&&(g("data-debug-slot",o.debugVisible()?o.slot():null),E("sm-debug-slot",o.debugVisible()))},inputs:{slot:[1,"slot"],node:[1,"node"]},decls:1,vars:1,consts:[[1,"vch"],[1,"vch__slot"],["data-testid","view-contributions-host-overflow",1,"vch__overflow",3,"pTooltip"],[4,"ngComponentOutlet","ngComponentOutletInputs"]],template:function(t,o){t&1&&p(0,Mt,4,2,"span",0),t&2&&m(o.visible().length>0||o.overflowCount()>0?0:-1)},dependencies:[he,w,T],styles:[".vch[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.7rem;flex-wrap:wrap}.vch__slot[_ngcontent-%COMP%]{display:inline-flex}.vch__overflow[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:.75rem;background:var(--p-surface-100);color:var(--p-surface-600);font-size:.8rem;cursor:default}"],changeDetection:0})};function ae(n,e){let t=`${n.pluginId}/${n.extensionId}/${n.contributionId}`,o=`${e.pluginId}/${e.extensionId}/${e.contributionId}`;return t<o?-1:t>o?1:0}function Me(n){let e=n.payload;if(typeof e!="object"||e===null)return 0;switch(e.severity){case"danger":return 4;case"warn":return 3;case"info":return 2;case"success":return 1;default:return 0}}export{K as a,H as b,ke as c};
1
+ import{e as xe,j as T,k as w}from"./chunk-533YMAY3.js";import{Ba as ue,Ib as be,J as V,Jb as Ce,Ka as g,M as le,Na as p,O as R,Oa as m,Pa as ge,Ra as x,Sa as I,T as ce,Ta as C,Tb as r,U as pe,Ua as f,Va as v,Wa as F,Xa as s,Xb as y,Ya as l,Za as $,ab as ye,da as j,db as fe,ea as me,gb as ve,hb as a,kc as he,oa as i,sb as _e,tb as E,vb as oe,wa as _,wb as d,xb as c,yb as z}from"./chunk-J3YWUNFO.js";import{c as se}from"./chunk-Q7L6LLAK.js";var q="sm-debug-slots",Ee="debug-slots",Se="is-debug-slots",K=class n{visible=j(!1);constructor(){this.visible.set(this.resolveInitial()),me(()=>{let e=this.visible();document.documentElement.classList.toggle(Se,e)})}toggle(){let e=!this.visible();this.visible.set(e);try{localStorage.setItem(q,e?"1":"0")}catch{}}resolveInitial(){let t=new URLSearchParams(window.location.search).get(Ee);if(t==="1"||t==="true"){try{localStorage.setItem(q,"1")}catch{}return!0}if(t==="0"||t==="false"){try{localStorage.setItem(q,"0")}catch{}return!1}try{return localStorage.getItem(q)==="1"}catch{return!1}}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})};var H=class n{registry=j({});setRegistry(e){e&&this.registry.set(e)}get(e){return this.registry()[e]}all(){return this.registry()}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})};function k(n){return typeof n=="object"&&n!==null}function O(n,e){return k(n)&&Array.isArray(n[e])}function U(n,e){return k(n)&&typeof n[e]=="string"}var h={panelHeader:"Plugin contributions",panelCount:n=>`${n} contribution${n===1?"":"s"}`,emptyDefault:"No contributions for this node.",rendererInvalid:"Contribution data failed schema validation.",rendererUnknownSlot:n=>`Unknown slot: ${n}. Update the UI to a newer catalog version.`,overflowBadge:n=>`+${n}`,overflowTooltip:n=>`Hidden: ${n}`,recordsCell:{boolTrue:"yes",boolFalse:"no"}};var De=(n,e)=>e.label;function Pe(n,e){if(n&1&&(s(0,"h5",1),d(1),l()),n&2){let t=a();i(),c(t.label())}}function Oe(n,e){if(n&1&&(s(0,"p",2),d(1),l()),n&2){let t=a();i(),c(t.emptyText())}}function Re(n,e){if(n&1&&(s(0,"li",4)(1,"span",5),d(2),l(),s(3,"span",6),$(4,"span",7),l(),s(5,"span",8),d(6),l()()),n&2){let t=e.$implicit,o=a(2);g("title",t.tooltip??""),i(2),c(t.label),i(2),_e("width",o.percent(t.value),"%"),i(2),c(t.value)}}function Fe(n,e){if(n&1&&(s(0,"ul",3),x(1,Re,7,5,"li",4,De),l()),n&2){let t=a();i(),I(t.entries())}}var W=class n{inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return k(e)?O(e,"entries")?e:{entries:[]}:{entries:[]}});entries=r(()=>this.typed().entries??[]);label=r(()=>this.inputs().label);emptyText=r(()=>this.inputs().emptyText??h.emptyDefault);maxValue=r(()=>this.entries().reduce((t,o)=>o.value>t?o.value:t,0));percent(e){let t=this.maxValue();return t===0?0:Math.round(e/t*100)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-breakdown"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-breakdown"],[1,"vc-breakdown__header"],[1,"vc-breakdown__empty"],[1,"vc-breakdown__rows"],[1,"vc-breakdown__row"],[1,"vc-breakdown__label"],[1,"vc-breakdown__bar-track"],["aria-hidden","true",1,"vc-breakdown__bar"],[1,"vc-breakdown__value"]],template:function(t,o){t&1&&(s(0,"section",0),p(1,Pe,2,1,"h5",1),p(2,Oe,2,1,"p",2)(3,Fe,3,0,"ul",3),l()),t&2&&(g("data-testid","renderer-node-breakdown"),i(),m(o.label()?1:-1),i(),m(o.entries().length===0?2:3))},styles:[".vc-breakdown__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-700);margin:0 0 .5rem}.vc-breakdown__rows[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.vc-breakdown__row[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(4rem,.4fr) 1fr 3rem;align-items:center;gap:.5rem;font-size:.85rem}.vc-breakdown__label[_ngcontent-%COMP%]{color:var(--p-surface-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vc-breakdown__bar-track[_ngcontent-%COMP%]{background:var(--p-surface-100);border-radius:var(--sm-radius-md);height:.625rem;overflow:hidden}.vc-breakdown__bar[_ngcontent-%COMP%]{display:block;height:100%;background:var(--p-primary-500)}.vc-breakdown__value[_ngcontent-%COMP%]{text-align:right;color:var(--p-surface-600)}.vc-breakdown__empty[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.85rem;margin:0}"],changeDetection:0})};function $e(n,e){if(n&1&&(s(0,"span",1),d(1),l()),n&2){let t=a(),o=a();oe(o.hostClass()),i(),c(t.text)}}function Le(n,e){if(n&1&&$(0,"i",1),n&2){let t=a(),o=a();oe(o.hostClass()+" "+t.cls)}}function Ae(n,e){n&1&&p(0,$e,2,3,"span",0)(1,Le,1,2,"i",0),n&2&&m(e.kind==="emoji"?0:1)}function Ve(n){if(!n)return null;let e=n.trim();if(e.length===0)return null;let t=e.codePointAt(0)??0;if(!(t>=65&&t<=90||t>=97&&t<=122))return{kind:"emoji",text:e};if(/^pi pi-[a-z0-9-]+$/.test(e))return{kind:"pi",cls:e};if(/^pi-[a-z0-9-]+$/.test(e))return{kind:"pi",cls:`pi ${e}`};if(/^fa-(?:solid|regular|brands) fa-[a-z0-9-]+$/.test(e))return{kind:"fa",cls:e};if(/^fa-[a-z0-9-]+$/.test(e)){let u=e.slice(3);return u==="solid"||u==="regular"||u==="brands"||u.includes("fa-")?null:{kind:"fa",cls:`fa-solid ${e}`}}return null}var P=class n{icon=y(void 0);hostClass=y("");resolved=r(()=>{let e=this.icon(),t=Ve(e);return e&&!t&&console.warn(`[sm-icon] Invalid icon string "${e}". Expected emoji, pi-foo, pi pi-foo, fa-{solid|regular|brands} fa-foo, or fa-foo.`),t});static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-icon"]],inputs:{icon:[1,"icon"],hostClass:[1,"hostClass"]},decls:1,vars:1,consts:[["aria-hidden","true",3,"class"],["aria-hidden","true"]],template:function(t,o){if(t&1&&p(0,Ae,2,1),t&2){let u;m((u=o.resolved())?0:-1,u)}},styles:["[_nghost-%COMP%] i[_ngcontent-%COMP%], [_nghost-%COMP%] span[_ngcontent-%COMP%]{font-size:inherit;line-height:inherit}[_nghost-%COMP%] i[_ngcontent-%COMP%]{transform:translateY(1px)}"],changeDetection:0})};function Be(n,e){if(n&1&&(f(0,"span",3),d(1),v()),n&2){let t=a();g("aria-label",t.ariaLabel()),i(),c(t.value())}}var L=class n{inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{value:0}:e});value=r(()=>this.typed().value);icon=r(()=>this.inputs().icon);severity=r(()=>this.typed().severity);resolvedTooltip=r(()=>this.typed().tooltip??this.inputs().tooltip??"");ariaLabel=r(()=>this.inputs().label??"");static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-counter"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:12,consts:[[1,"vc-counter",3,"pTooltip"],[1,"vc-counter__icon"],[3,"icon"],[1,"vc-counter__value"]],template:function(t,o){t&1&&(f(0,"span",0)(1,"span",1),F(2,"sm-icon",2),v(),p(3,Be,2,2,"span",3),v()),t&2&&(E("vc-counter--info",o.severity()==="info")("vc-counter--warn",o.severity()==="warn")("vc-counter--success",o.severity()==="success")("vc-counter--danger",o.severity()==="danger"),C("pTooltip",o.resolvedTooltip()),g("data-testid","renderer-node-counter"),i(2),C("icon",o.icon()),i(),m(o.value()>0?3:-1))},dependencies:[w,T,P],styles:[".vc-counter[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.3rem;line-height:1}.vc-counter__icon[_ngcontent-%COMP%]{font-size:.6rem;line-height:1;display:block}.vc-counter__value[_ngcontent-%COMP%]{font-weight:600;color:var(--p-text-color);line-height:1;display:block}.vc-counter--info[_ngcontent-%COMP%], .vc-counter--info[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-info)}.vc-counter--warn[_ngcontent-%COMP%], .vc-counter--warn[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-warn)}.vc-counter--success[_ngcontent-%COMP%], .vc-counter--success[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-success)}.vc-counter--danger[_ngcontent-%COMP%], .vc-counter--danger[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-error)}"],changeDetection:0})};var je=(n,e)=>e.key;function ze(n,e){if(n&1&&(f(0,"h5",1),d(1),v()),n&2){let t=a();i(),c(t.label())}}function qe(n,e){if(n&1&&(f(0,"p",2),d(1),v()),n&2){let t=a();i(),c(t.emptyText())}}function Ke(n,e){if(n&1&&(f(0,"dt",4),d(1),v(),f(2,"dd"),d(3),v()),n&2){let t=e.$implicit,o=a(2);C("pTooltip",t.tooltip??""),i(),c(t.key),i(2),c(o.formatValue(t.value))}}function He(n,e){if(n&1&&(f(0,"dl",3),x(1,Ke,4,3,null,null,je),v()),n&2){let t=a();i(),I(t.entries())}}var X=class n{inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return k(e)?O(e,"entries")?e:{entries:[]}:{entries:[]}});entries=r(()=>this.typed().entries??[]);label=r(()=>this.inputs().label);emptyText=r(()=>this.inputs().emptyText??h.emptyDefault);formatValue(e){return e==null?"\u2014":typeof e=="boolean"?e?"true":"false":String(e)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-key-values"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-kv"],[1,"vc-kv__header"],[1,"vc-kv__empty"],[1,"vc-kv__list"],[3,"pTooltip"]],template:function(t,o){t&1&&(f(0,"section",0),p(1,ze,2,1,"h5",1),p(2,qe,2,1,"p",2)(3,He,3,0,"dl",3),v()),t&2&&(g("data-testid","renderer-node-key-values"),i(),m(o.label()?1:-1),i(),m(o.entries().length===0?2:3))},dependencies:[w,T],styles:[".vc-kv__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-700);margin:0 0 .5rem}.vc-kv__list[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(6rem,max-content) 1fr;gap:.25rem .75rem;margin:0;font-size:.85rem}.vc-kv__list[_ngcontent-%COMP%] dt[_ngcontent-%COMP%]{color:var(--p-surface-600);font-weight:500}.vc-kv__list[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{color:var(--p-surface-800);margin:0;word-break:break-word}.vc-kv__empty[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.85rem;margin:0}"],changeDetection:0})};var ie=class n{router=R(xe);open(e){this.router.navigate(["/graph"],{queryParams:{path:e}})}static \u0275fac=function(t){return new(t||n)};static \u0275prov=V({token:n,factory:n.\u0275fac,providedIn:"root"})},Ie=new le("NODE_OPEN_INTENT",{providedIn:"root",factory:()=>R(ie)});var Ue=(n,e)=>e.path;function We(n,e){if(n&1&&(s(0,"h5",1),d(1),l()),n&2){let t=a();i(),c(t.label())}}function Xe(n,e){if(n&1&&(s(0,"p",2),d(1),l()),n&2){let t=a();i(),c(t.emptyText())}}function Ye(n,e){if(n&1&&(s(0,"span",5),d(1),l()),n&2){let t=a().$implicit;i(),c(t.kind)}}function Ge(n,e){if(n&1){let t=fe();s(0,"li")(1,"button",4),ve("click",function(){let u=ce(t).$implicit,b=a(2);return pe(b.onOpenPath(u.path))}),p(2,Ye,2,1,"span",5),s(3,"span",6),d(4),l()()()}if(n&2){let t=e.$implicit;i(2),m(t.kind?2:-1),i(2),c(t.label??t.path)}}function Qe(n,e){if(n&1&&(s(0,"ul",3),x(1,Ge,5,2,"li",null,Ue),l()),n&2){let t=a();i(),I(t.entries())}}var Y=class n{openIntent=R(Ie);inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return k(e)?O(e,"entries")?e:{entries:[]}:{entries:[]}});entries=r(()=>this.typed().entries??[]);label=r(()=>this.inputs().label);emptyText=r(()=>this.inputs().emptyText??h.emptyDefault);onOpenPath(e){this.openIntent.open(e)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-link-list"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-links"],[1,"vc-links__header"],[1,"vc-links__empty"],[1,"vc-links__list"],["type","button",1,"vc-links__btn",3,"click"],[1,"vc-links__kind"],[1,"vc-links__label"]],template:function(t,o){t&1&&(s(0,"section",0),p(1,We,2,1,"h5",1),p(2,Xe,2,1,"p",2)(3,Qe,3,0,"ul",3),l()),t&2&&(g("data-testid","renderer-node-link-list"),i(),m(o.label()?1:-1),i(),m(o.entries().length===0?2:3))},styles:[".vc-links__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-700);margin:0 0 .5rem}.vc-links__list[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.125rem;font-size:.85rem}.vc-links__btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:0;padding:.25rem .5rem;border-radius:var(--sm-radius-md);color:var(--p-primary-600);cursor:pointer;text-align:left;width:100%}.vc-links__btn[_ngcontent-%COMP%]:hover{background:var(--p-surface-100)}.vc-links__kind[_ngcontent-%COMP%]{color:var(--p-surface-500);font-family:var(--p-font-family-mono);font-size:.75rem}.vc-links__label[_ngcontent-%COMP%]{word-break:break-all}.vc-links__empty[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.85rem;margin:0}"],changeDetection:0})};var Ne=(n,e)=>e.key;function Je(n,e){if(n&1&&(s(0,"h5",1),d(1),l()),n&2){let t=a();i(),c(t.label())}}function Ze(n,e){if(n&1&&(s(0,"p",2),d(1),l()),n&2){let t=a();i(),c(t.emptyText())}}function et(n,e){if(n&1&&(s(0,"th"),d(1),l()),n&2){let t=e.$implicit;i(),c(t.label)}}function tt(n,e){if(n&1&&$(0,"i",4),n&2){let t=a(4);g("aria-label",t.texts.boolTrue)}}function nt(n,e){if(n&1&&$(0,"i",5),n&2){let t=a(4);g("aria-label",t.texts.boolFalse)}}function ot(n,e){}function it(n,e){if(n&1&&d(0),n&2){let t=a().$implicit,o=a().$implicit,u=a(2);z(" ",u.cellText(o[t.key])," ")}}function rt(n,e){if(n&1&&(s(0,"td"),p(1,tt,1,1,"i",4)(2,nt,1,1,"i",5)(3,ot,0,0)(4,it,1,1),l()),n&2){let t,o=e.$implicit,u=a().$implicit,b=a(2);i(),m((t=b.cellKind(u[o.key]))==="bool-true"?1:t==="bool-false"?2:t==="empty"?3:4)}}function at(n,e){if(n&1&&(s(0,"tr"),x(1,rt,5,1,"td",null,Ne),l()),n&2){let t=a(2);i(),I(t.columns())}}function dt(n,e){if(n&1&&(s(0,"table",3)(1,"thead")(2,"tr"),x(3,et,2,1,"th",null,Ne),l()(),s(5,"tbody"),x(6,at,3,0,"tr",null,ge),l()()),n&2){let t=a();i(3),I(t.columns()),i(3),I(t.rows())}}var G=class n{inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return k(e)?!O(e,"columns")||!O(e,"rows")?{columns:[],rows:[]}:e:{columns:[],rows:[]}});columns=r(()=>this.typed().columns??[]);rows=r(()=>this.typed().rows??[]);label=r(()=>this.inputs().label);emptyText=r(()=>this.inputs().emptyText??h.emptyDefault);texts=h.recordsCell;cellKind(e){return e==null?"empty":typeof e=="boolean"?e?"bool-true":"bool-false":"text"}cellText(e){return e==null?"":String(e)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-records"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-records"],[1,"vc-records__header"],[1,"vc-records__empty"],[1,"vc-records__table"],["role","img",1,"pi","pi-check","vc-records__bool","vc-records__bool--true"],["role","img",1,"pi","pi-minus","vc-records__bool","vc-records__bool--false"]],template:function(t,o){t&1&&(s(0,"section",0),p(1,Je,2,1,"h5",1),p(2,Ze,2,1,"p",2)(3,dt,8,0,"table",3),l()),t&2&&(g("data-testid","renderer-node-records"),i(),m(o.label()?1:-1),i(),m(o.rows().length===0?2:3))},styles:[".vc-records__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-700);margin:0 0 .5rem}.vc-records__table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;font-size:.85rem}.vc-records__table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{text-align:left;padding:.25rem .5rem;border-bottom:1px solid var(--p-surface-200);color:var(--p-surface-700);font-weight:600}.vc-records__table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:.25rem .5rem;border-bottom:1px solid var(--p-surface-100);color:var(--p-surface-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:16rem}.vc-records__empty[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.85rem;margin:0}.vc-records__bool[_ngcontent-%COMP%]{font-size:.9rem;line-height:1}.vc-records__bool--true[_ngcontent-%COMP%]{color:var(--p-primary-color)}.vc-records__bool--false[_ngcontent-%COMP%]{color:var(--p-text-muted-color)}"],changeDetection:0})};function st(n,e){if(n&1&&(s(0,"h5",1),d(1),l()),n&2){let t=a();i(),c(t.label())}}function lt(n,e){if(n&1&&(s(0,"p",2),d(1),l()),n&2){let t=a();i(),c(t.emptyText())}}function ct(n,e){if(n&1&&(s(0,"pre",3),d(1),l()),n&2){let t=a();i(),c(t.markdown())}}var Q=class n{inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return k(e)?U(e,"markdown")?e:{markdown:""}:{markdown:""}});markdown=r(()=>this.typed().markdown??"");label=r(()=>this.inputs().label);emptyText=r(()=>this.inputs().emptyText??h.emptyDefault);static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-markdown"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-markdown"],[1,"vc-markdown__header"],[1,"vc-markdown__empty"],[1,"vc-markdown__body"]],template:function(t,o){t&1&&(s(0,"section",0),p(1,st,2,1,"h5",1),p(2,lt,2,1,"p",2)(3,ct,2,1,"pre",3),l()),t&2&&(g("data-testid","renderer-node-markdown"),i(),m(o.label()?1:-1),i(),m(o.markdown()?3:2))},styles:[".vc-markdown__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-700);margin:0 0 .5rem}.vc-markdown__body[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-800);background:var(--p-surface-50);padding:.5rem;border-radius:var(--sm-radius-md);white-space:pre-wrap;word-break:break-word;margin:0;max-height:12rem;overflow:auto}.vc-markdown__empty[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.85rem;margin:0}"],changeDetection:0})};function pt(n,e){if(n&1&&(f(0,"span",1),d(1),v()),n&2){let t=a();i(),c(t.icon())}}var J=class n{inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{label:""}:e});label=r(()=>this.typed().label||"");icon=r(()=>this.inputs().icon);severity=r(()=>this.typed().severity);resolvedTooltip=r(()=>this.typed().tooltip??this.inputs().tooltip??"");static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-tag"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:12,consts:[[1,"vc-tag",3,"pTooltip"],["aria-hidden","true",1,"vc-tag__icon"],[1,"vc-tag__label"]],template:function(t,o){t&1&&(f(0,"span",0),p(1,pt,2,1,"span",1),f(2,"span",2),d(3),v()()),t&2&&(E("vc-tag--info",o.severity()==="info")("vc-tag--warn",o.severity()==="warn")("vc-tag--success",o.severity()==="success")("vc-tag--danger",o.severity()==="danger"),C("pTooltip",o.resolvedTooltip()),g("data-testid","renderer-node-tag"),i(),m(o.icon()?1:-1),i(2),c(o.label()))},dependencies:[w,T],styles:[".vc-tag[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.3rem;line-height:1}.vc-tag__icon[_ngcontent-%COMP%]{font-size:.85em;line-height:1;display:block}.vc-tag__label[_ngcontent-%COMP%]{font-weight:500;line-height:1;display:block}.vc-tag--info[_ngcontent-%COMP%]{background:var(--sm-severity-info-bg);color:var(--sm-severity-info);padding:.1rem .4rem;border-radius:var(--sm-radius-sm)}.vc-tag--warn[_ngcontent-%COMP%]{background:var(--sm-severity-warn-bg);color:var(--sm-severity-warn);padding:.1rem .4rem;border-radius:var(--sm-radius-sm)}.vc-tag--success[_ngcontent-%COMP%]{background:var(--sm-severity-success-bg);color:var(--sm-severity-success);padding:.1rem .4rem;border-radius:var(--sm-radius-sm)}.vc-tag--danger[_ngcontent-%COMP%]{background:var(--sm-severity-error-bg);color:var(--sm-severity-error);padding:.1rem .4rem;border-radius:var(--sm-radius-sm)}"],changeDetection:0})};var mt=()=>[],Te=(n,e)=>e.label;function ut(n,e){if(n&1&&(s(0,"h5",1),d(1),l()),n&2){let t=a();i(),c(t.label())}}function gt(n,e){if(n&1&&(s(0,"p",2),d(1),l()),n&2){let t=a();i(),c(t.emptyText())}}function yt(n,e){if(n&1&&(s(0,"span",5),d(1),l()),n&2){let t=a().$implicit;i(),c(t.marker)}}function ft(n,e){if(n&1&&(s(0,"span",5),d(1),l()),n&2){let t=a().$implicit;i(),c(t.marker)}}function vt(n,e){if(n&1&&(s(0,"li",4),p(1,ft,2,1,"span",5),s(2,"span",6),d(3),l()()),n&2){let t=e.$implicit;g("title",t.tooltip??""),i(),m(t.marker?1:-1),i(2),c(t.label)}}function _t(n,e){if(n&1&&(s(0,"ul",7),x(1,vt,4,3,"li",4,Te),l()),n&2){let t=a().$implicit;i(),I(t.children)}}function bt(n,e){if(n&1&&(s(0,"li",4),p(1,yt,2,1,"span",5),s(2,"span",6),d(3),l(),p(4,_t,3,0,"ul",7),l()),n&2){let t=e.$implicit;g("title",t.tooltip??""),i(),m(t.marker?1:-1),i(2),c(t.label),i(),m(t.children&&t.children.length>0?4:-1)}}function Ct(n,e){if(n&1&&(s(0,"ul",3),x(1,bt,5,4,"li",4,Te),l()),n&2){let t=a();i(),I(t.root().children??be(0,mt))}}var Z=class n{inputs=y.required();root=r(()=>{let e=this.inputs().payload;return k(e)?U(e,"label")?e.children!==void 0&&!Array.isArray(e.children)?{label:""}:e:{label:""}:{label:""}});rootIsEmpty=r(()=>{let e=this.root();return!e.children||e.children.length===0});label=r(()=>this.inputs().label);emptyText=r(()=>this.inputs().emptyText??h.emptyDefault);static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-tree"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-tree"],[1,"vc-tree__header"],[1,"vc-tree__empty"],["role","tree",1,"vc-tree__list"],["role","treeitem"],["aria-hidden","true",1,"vc-tree__marker"],[1,"vc-tree__label"],["role","group",1,"vc-tree__list"]],template:function(t,o){t&1&&(s(0,"section",0),p(1,ut,2,1,"h5",1),p(2,gt,2,1,"p",2)(3,Ct,3,1,"ul",3),l()),t&2&&(g("data-testid","renderer-node-tree"),i(),m(o.label()?1:-1),i(),m(o.rootIsEmpty()?2:3))},styles:[".vc-tree__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-700);margin:0 0 .5rem}.vc-tree__list[_ngcontent-%COMP%]{list-style:none;padding-left:1rem;margin:0;font-size:.85rem}.vc-tree__list[_ngcontent-%COMP%] > li[_ngcontent-%COMP%]{padding:.125rem 0}.vc-tree__marker[_ngcontent-%COMP%]{margin-right:.25rem;opacity:.7}.vc-tree__label[_ngcontent-%COMP%]{color:var(--p-surface-800)}.vc-tree__empty[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.85rem;margin:0}"],changeDetection:0})};function ht(n,e){if(n&1&&(f(0,"span",2),d(1),v()),n&2){let t=a();i(),c(t.formattedCount())}}var ee=class n{inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{}:e});icon=r(()=>this.typed().icon??this.inputs().icon);severity=r(()=>this.typed().severity);count=r(()=>this.typed().count??null);resolvedTooltip=r(()=>this.typed().tooltip??this.inputs().tooltip??"");formattedCount=r(()=>{let e=this.count();return e===null?"":e>=99?"99+":String(e)});static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-alert"]],inputs:{inputs:[1,"inputs"]},decls:3,vars:12,consts:[[1,"vc-alert",3,"pTooltip"],["hostClass","vc-alert__icon",3,"icon"],[1,"vc-alert__count"]],template:function(t,o){t&1&&(f(0,"span",0),F(1,"sm-icon",1),p(2,ht,2,1,"span",2),v()),t&2&&(E("vc-alert--info",o.severity()==="info")("vc-alert--warn",o.severity()==="warn")("vc-alert--success",o.severity()==="success")("vc-alert--danger",o.severity()==="danger"),C("pTooltip",o.resolvedTooltip()),g("data-testid","renderer-node-alert"),i(),C("icon",o.icon()),i(),m(o.count()!==null?2:-1))},dependencies:[w,T,P],styles:[".vc-alert[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;gap:.125rem;min-width:1.1rem;min-height:1.1rem;font-size:.85rem;color:var(--p-surface-700)}.vc-alert--info[_ngcontent-%COMP%]{color:var(--sm-severity-info)}.vc-alert--warn[_ngcontent-%COMP%]{color:var(--sm-severity-warn)}.vc-alert--success[_ngcontent-%COMP%]{color:var(--sm-severity-success)}.vc-alert--danger[_ngcontent-%COMP%]{color:var(--sm-severity-error)}"],changeDetection:0})};var te=class n{inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{}:e});icon=r(()=>this.typed().icon??this.inputs().icon);severity=r(()=>this.typed().severity);resolvedTooltip=r(()=>this.typed().tooltip??this.inputs().tooltip??"");ariaLabel=r(()=>this.inputs().label??"");static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-node-icon"]],inputs:{inputs:[1,"inputs"]},decls:2,vars:12,consts:[[1,"vc-icon",3,"pTooltip"],["hostClass","vc-icon__glyph",3,"icon"]],template:function(t,o){t&1&&(f(0,"span",0),F(1,"sm-icon",1),v()),t&2&&(E("vc-icon--info",o.severity()==="info")("vc-icon--warn",o.severity()==="warn")("vc-icon--success",o.severity()==="success")("vc-icon--danger",o.severity()==="danger"),C("pTooltip",o.resolvedTooltip()),g("aria-label",o.ariaLabel())("data-testid","renderer-node-icon"),i(),C("icon",o.icon()))},dependencies:[w,T,P],styles:[".vc-icon[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;line-height:1;width:22px;height:22px}.vc-icon__glyph[_ngcontent-%COMP%]{font-size:.7rem;line-height:1;display:block}.vc-icon--info[_ngcontent-%COMP%]{color:var(--sm-severity-info)}.vc-icon--warn[_ngcontent-%COMP%]{color:var(--sm-severity-warn)}.vc-icon--success[_ngcontent-%COMP%]{color:var(--sm-severity-success)}.vc-icon--danger[_ngcontent-%COMP%]{color:var(--sm-severity-error)}"],changeDetection:0})};function xt(n,e){if(n&1&&(f(0,"span",3),d(1),v()),n&2){let t=a();i(),c(t.label())}}var ne=class n{inputs=y.required();typed=r(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{value:""}:e});value=r(()=>String(this.typed().value??""));label=r(()=>this.typed().label??this.inputs().label);icon=r(()=>this.inputs().icon);severity=r(()=>this.typed().severity);resolvedTooltip=r(()=>this.typed().tooltip??this.inputs().tooltip??"");static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-scope-stat"]],inputs:{inputs:[1,"inputs"]},decls:5,vars:13,consts:[[1,"vc-stat",3,"pTooltip"],["hostClass","vc-stat__icon",3,"icon"],[1,"vc-stat__value"],[1,"vc-stat__label"]],template:function(t,o){t&1&&(f(0,"span",0),F(1,"sm-icon",1),f(2,"span",2),d(3),v(),p(4,xt,2,1,"span",3),v()),t&2&&(E("vc-stat--info",o.severity()==="info")("vc-stat--warn",o.severity()==="warn")("vc-stat--success",o.severity()==="success")("vc-stat--danger",o.severity()==="danger"),C("pTooltip",o.resolvedTooltip()),g("data-testid","renderer-scope-stat"),i(),C("icon",o.icon()),i(2),c(o.value()),i(),m(o.label()?4:-1))},dependencies:[w,T,P],styles:[".vc-stat[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;border-radius:.75rem;font-size:.85rem;background:var(--p-surface-100);color:var(--p-surface-800)}.vc-stat__label[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.8rem}.vc-stat--info[_ngcontent-%COMP%]{background:var(--p-blue-100);color:var(--p-blue-700)}.vc-stat--warn[_ngcontent-%COMP%]{background:var(--p-yellow-100);color:var(--p-yellow-800)}.vc-stat--success[_ngcontent-%COMP%]{background:var(--p-green-100);color:var(--p-green-700)}.vc-stat--danger[_ngcontent-%COMP%]{background:var(--p-red-100);color:var(--p-red-700)}"],changeDetection:0})};var re={"card.title.right":te,"card.subtitle.left":L,"card.footer.left":L,"card.footer.right":L,"graph.node.alert":ee,"inspector.header.badge.counter":L,"inspector.header.badge.tag":J,"inspector.body.panel.breakdown":W,"inspector.body.panel.records":G,"inspector.body.panel.tree":Z,"inspector.body.panel.key-values":X,"inspector.body.panel.link-list":Y,"inspector.body.panel.markdown":Q,"topbar.nav.start":ne};function we(n){return n in re}var A={"topbar.nav.start":{id:"topbar.nav.start",cardinality:"multi",maxItems:3,order:"alphabetical",strategy:"append"},"inspector.header.badge.counter":{id:"inspector.header.badge.counter",cardinality:"multi",maxItems:4,order:"alphabetical",strategy:"append"},"inspector.header.badge.tag":{id:"inspector.header.badge.tag",cardinality:"multi",maxItems:4,order:"alphabetical",strategy:"append"},"inspector.body.panel.breakdown":{id:"inspector.body.panel.breakdown",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.records":{id:"inspector.body.panel.records",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.tree":{id:"inspector.body.panel.tree",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.key-values":{id:"inspector.body.panel.key-values",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.link-list":{id:"inspector.body.panel.link-list",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.markdown":{id:"inspector.body.panel.markdown",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"card.footer.left":{id:"card.footer.left",cardinality:"multi",maxItems:5,order:"priority",strategy:"append",respectSeverity:!0},"card.footer.right":{id:"card.footer.right",cardinality:"multi",maxItems:5,order:"priority",strategy:"append",respectSeverity:!0},"card.subtitle.left":{id:"card.subtitle.left",cardinality:"multi",maxItems:3,order:"priority",strategy:"append",respectSeverity:!0},"card.title.right":{id:"card.title.right",cardinality:"multi",maxItems:2,order:"priority",strategy:"append",respectSeverity:!0},"graph.node.alert":{id:"graph.node.alert",cardinality:"multi",maxItems:1,order:"severity",strategy:"append",showOverflowBadge:!1}};var It=n=>({inputs:n}),Nt=(n,e)=>e.qualifiedId;function Tt(n,e){n&1&&ye(0)}function wt(n,e){if(n&1&&(f(0,"span",1),ue(1,Tt,1,0,"ng-container",3),v()),n&2){let t=e.$implicit,o=a(2);g("data-testid","contribution-"+t.qualifiedId.replaceAll("/","-")),i(),C("ngComponentOutlet",o.rendererFor(t.slot))("ngComponentOutletInputs",Ce(3,It,t.rendererInputs))}}function kt(n,e){if(n&1&&(f(0,"span",2),d(1),v()),n&2){let t=a(2);C("pTooltip",t.overflowTooltip()),i(),z(" ",t.overflowBadge()," ")}}function Mt(n,e){if(n&1&&(f(0,"span",0),x(1,wt,2,5,"span",1,Nt),p(3,kt,2,2,"span",2),v()),n&2){let t=a();g("data-testid","view-contributions-host-"+t.testidSuffix()),i(),I(t.visible()),i(2),m(t.overflowCount()>0&&t.showOverflowBadge()?3:-1)}}var ke=class n{slot=y.required();node=y(null);debugSlots=R(K);debugVisible=this.debugSlots.visible;testidSuffix=r(()=>this.slot().replaceAll(".","-"));registry=R(H);dispatched=r(()=>{let e=this.node();if(!e)return[];let t=e.contributions??[];if(t.length===0)return[];let o=this.slot(),u=t.filter(b=>b.slot===o).filter(b=>we(b.slot));return this.sortBySlotOrder(u,o).map(b=>({qualifiedId:`${b.pluginId}/${b.extensionId}/${b.contributionId}`,slot:b.slot,rendererInputs:this.buildInputs(b,o)}))});visible=r(()=>{let e=this.dispatched(),t=A[this.slot()].maxItems;return e.slice(0,t)});overflowCount=r(()=>{let e=this.dispatched(),t=A[this.slot()].maxItems;return Math.max(0,e.length-t)});showOverflowBadge=r(()=>A[this.slot()].showOverflowBadge!==!1);overflowBadge=r(()=>h.overflowBadge(this.overflowCount()));overflowTooltip=r(()=>{let e=this.dispatched(),t=A[this.slot()].maxItems,o=e.slice(t).map(u=>u.qualifiedId).join(", ");return h.overflowTooltip(o)});rendererFor(e){return re[e]}buildInputs(e,t){let o=`${e.pluginId}/${e.extensionId}/${e.contributionId}`,u=this.registry.get(o),b=A[t].respectSeverity!==!1,M=e.payload;if(!b&&typeof M=="object"&&M!==null&&"severity"in M){let de=M,{severity:Et}=de;M=se(de,["severity"])}let D={pluginId:e.pluginId,extensionId:e.extensionId,contributionId:e.contributionId,payload:M};return u?.label&&(D.label=u.label),u?.tooltip&&(D.tooltip=u.tooltip),u?.icon&&(D.icon=u.icon),u?.emptyText&&(D.emptyText=u.emptyText),D}sortBySlotOrder(e,t){let o=A[t].order;return o==="fifo"?e.slice():o==="priority"?e.slice().sort((u,b)=>{let M=this.priorityFor(u),D=this.priorityFor(b);return M!==D?M-D:ae(u,b)}):o==="severity"?e.slice().sort((u,b)=>{let M=Me(u),D=Me(b);return M!==D?D-M:ae(u,b)}):e.slice().sort(ae)}priorityFor(e){let t=`${e.pluginId}/${e.extensionId}/${e.contributionId}`;return this.registry.get(t)?.priority??100}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=_({type:n,selectors:[["sm-view-contributions-host"]],hostVars:3,hostBindings:function(t,o){t&2&&(g("data-debug-slot",o.debugVisible()?o.slot():null),E("sm-debug-slot",o.debugVisible()))},inputs:{slot:[1,"slot"],node:[1,"node"]},decls:1,vars:1,consts:[[1,"vch"],[1,"vch__slot"],["data-testid","view-contributions-host-overflow",1,"vch__overflow",3,"pTooltip"],[4,"ngComponentOutlet","ngComponentOutletInputs"]],template:function(t,o){t&1&&p(0,Mt,4,2,"span",0),t&2&&m(o.visible().length>0||o.overflowCount()>0?0:-1)},dependencies:[he,w,T],styles:[".vch[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.7rem;flex-wrap:wrap}.vch__slot[_ngcontent-%COMP%]{display:inline-flex}.vch__overflow[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:.75rem;background:var(--p-surface-100);color:var(--p-surface-600);font-size:.8rem;cursor:default}"],changeDetection:0})};function ae(n,e){let t=`${n.pluginId}/${n.extensionId}/${n.contributionId}`,o=`${e.pluginId}/${e.extensionId}/${e.contributionId}`;return t<o?-1:t>o?1:0}function Me(n){let e=n.payload;if(typeof e!="object"||e===null)return 0;switch(e.severity){case"danger":return 4;case"warn":return 3;case"info":return 2;case"success":return 1;default:return 0}}export{K as a,H as b,ke as c};
@@ -1 +1 @@
1
- import{J as n,O as o,Tb as r,Y as d,Z as c,da as s,ea as g,id as i,jd as p,nd as u}from"./chunk-XPMAU22J.js";var L={triggerLabel:"Settings",triggerTooltip:"Settings",modalTitle:"Settings",closeLabel:"Close",sections:{plugins:"Plugins",general:"General",project:"Project",changelog:"Changelog",about:"About"},general:{heading:"General",intro:"User-scope preferences. These settings live in your home directory (`~/.skill-map/settings.json`) and follow you across projects.",loadErrorPrefix:"Could not load preferences:",saveErrorPrefix:"Could not save preferences:",toggles:{"updateCheck.enabled":{label:"Check for updates",description:"Check npm for newer @skill-map/cli releases."}},localPreferences:{heading:"This browser",intro:"Visual preferences saved in this browser only. They won't sync to another machine."},connectionType:{label:"Edge style",description:"Shape of the lines that connect nodes in the graph view.",options:{segment:{label:"Orthogonal",description:"Right-angled segments (default)."},straight:{label:"Straight",description:"Single straight line."},bezier:{label:"Bezier",description:"Smooth curve."},"adaptive-curve":{label:"Adaptive curve",description:"Curve that follows the connector orientation."}}}},project:{heading:"Project",intro:"These settings apply only to this project and are saved in its `.skill-map/settings.local.json` file.",loadErrorPrefix:"Could not load project settings:",saveErrorPrefix:"Could not save project settings:",extraFoldersLabel:"Extra folders to scan",extraFoldersDescription:"Additional folders included in the scan. Their files show up in the graph next to this project. Use ~/ for paths inside your home folder. This is the only way to extend the scan beyond this project.",extraFoldersPlaceholder:"~/.claude/agents, /path/to/another/folder",referencePathsLabel:"Folders for link validation",referencePathsDescription:'Folders checked only to validate links. Files here are not indexed and do not appear in the graph, they just stop "broken link" warnings when a link points to a real file outside this project.',referencePathsPlaceholder:"~/Documents/research, ~/.claude",addPathLabel:"Add path",removePathLabel:"Remove",confirmDialogHeader:"Allow access to folders outside this project?",confirmDialogIntro:"This change lets the scan read files in:",confirmDialogAccept:"Allow access",confirmDialogReject:"Cancel"},changelogHeading:"Changelog",changelogIntro:"What's new in skill-map. Each entry covers a release of @skill-map/cli (the CLI + bundled UI) and lists the user-facing changes plus the workspace(s) each one affects.",changelogEmpty:"No release notes yet. Future releases will populate this list automatically from the changesets shipped in each PR.",changelogInternalRelease:"Internal release. Focus on stability, infra, and refactors. No user-facing changes this time.",changelogAffectedPackages:"Affected packages",aboutHeading:"About",aboutIntro:"Version information for the running CLI / server.",aboutCliLabel:"skill-map CLI",aboutSpecLabel:"Spec version",aboutSchemaLabel:"Schema version",aboutScopeLabel:"Scope",aboutFolderLabel:"Project folder",aboutDbLabel:"Project DB",aboutHomeLabel:"Skill-map home",aboutDbValue:(e,t)=>e==="present"?t:`${e} \xB7 ${t}`,aboutLoading:"Loading\u2026",aboutUnknown:"\u2014",aboutErrorPrefix:"Could not read health endpoint:",aboutLinksHeading:"Links",aboutWebsiteLabel:"Website",aboutGithubLabel:"GitHub",aboutWebsiteUrl:"https://skill-map.dev/",aboutGithubUrl:"https://github.com/crystian/skill-map",aboutStarHeading:"Enjoying skill-map?",aboutStarBody:"If it's useful to you, drop us a star on GitHub, it helps a lot and keeps the project alive.",aboutStarCta:"Star on GitHub",aboutStarA11y:"Open the skill-map repository on GitHub to give it a star",pluginsHeading:"Plugins",pluginsIntro:"Enable or disable installed plugins.",pluginsSearchPlaceholder:"Filter by name\u2026",pluginsSearchA11y:"Filter plugins by name",pluginsSearchEmpty:e=>`No plugins match "${e}".`,pluginsKindFilterAll:"All",pluginsKindFilterA11y:"Filter plugins by kind",pluginsKindFilterOptionA11y:(e,t)=>t?`Show only ${e} extensions`:"Show all kinds",unsavedChangesMessage:e=>e===1?'1 unsaved change. Click "Apply" to persist it.':`${e} unsaved changes. Click "Apply" to persist them.`,startsAsDisabledRowHint:"This plugin started disabled and is not loaded in memory. Restart `sm serve` for the change to take effect.",startsAsDisabledFooterHint:"Some plugins were disabled when the server started. Consider restarting `sm serve` so they take effect.",discardChanges:"Discard",applyAndClose:"Apply",discardA11y:"Discard pending plugin changes",applyA11y:"Apply pending plugin changes and refresh the graph",confirmCloseTitle:"Apply pending changes?",confirmCloseBody:e=>e===1?"You have 1 unsaved change.":`You have ${e} unsaved changes.`,keepEditing:"Keep editing",sourceBuiltIn:"Built-in",sourceProject:"Project",sourceGlobal:"Global",enabledLabel:"Enabled",disabledLabel:"Disabled",lockedLabel:"Locked",lockedTooltip:"Locked by the host (cannot be toggled).",expandLabel:"Show extensions",collapseLabel:"Hide extensions",statusFailure:{"incompatible-spec":"Incompatible spec version","invalid-manifest":"Invalid manifest","load-error":"Failed to load","id-collision":"Plugin id collision"},loading:"Loading plugins\u2026",empty:"No plugins installed.",errorPrefix:"Could not load plugins:",toggleErrorPrefix:"Toggle failed:",a11y:{triggerLabel:"Open settings",pluginToggle:(e,t)=>t?`Enable plugin ${e}`:`Disable plugin ${e}`,extensionToggle:(e,t)=>t?`Enable ${e}`:`Disable ${e}`,pluginRow:e=>`Plugin ${e} row`,extensionRow:e=>`Extension ${e} row`}};var h={available:"Update available",tooltip:e=>`v${e} is available. Run \`npm i -g @skill-map/cli@latest\` to update.`,a11yLabel:e=>`Update available: version ${e}`,versionLabel:e=>`v${e}`,versionTooltip:e=>`skill-map CLI v${e}`,versionA11yLabel:e=>`Running version ${e}`,fetchFailed:e=>`UpdateCheckService: fetch failed (${e})`};var m=class e{dataSource=o(i);status=s(null);isOutdated=r(()=>this.status()?.isOutdated===!0);latest=r(()=>this.status()?.latest??null);current=r(()=>this.status()?.current??null);async load(){try{let t=await this.dataSource.getUpdateStatus();this.status.set(t)}catch(t){let a=t instanceof Error?t.message:String(t);console.warn(h.fetchFailed(a))}}static \u0275fac=function(a){return new(a||e)};static \u0275prov=n({token:e,factory:e.\u0275fac,providedIn:"root"})};var f={scanFailed:e=>`scan-trigger failed: ${e}`};var y=class e{dataSource=o(i);loader=o(u);scanning=s(!1);scanError=s(null);async run(){if(!this.scanning()){this.scanning.set(!0),this.scanError.set(null);try{await this.dataSource.runScan(),await this.loader.load()}catch(t){let a=t instanceof p||t instanceof Error?t.message:String(t);this.scanError.set(a),console.warn(f.scanFailed(a))}finally{this.scanning.set(!1)}}}static \u0275fac=function(a){return new(a||e)};static \u0275prov=n({token:e,factory:e.\u0275fac,providedIn:"root"})};var v="skill-map.ui.theme",E="app-dark",D="dark",S="(prefers-color-scheme: dark)",k=class e{doc=o(d);destroyRef=o(c);mode=s(this.readInitial());systemPrefersDark=s(this.readSystemPref());resolved=r(()=>{let t=this.mode();return t==="auto"?this.systemPrefersDark()?"dark":"light":t});constructor(){this.subscribeToSystemPref(),g(()=>{let t=this.resolved()==="dark",a=this.doc.documentElement;a.classList.toggle(E,t),a.classList.toggle(D,t);try{this.doc.defaultView?.localStorage.setItem(v,this.mode())}catch{}})}toggle(){this.mode.update(t=>t==="auto"?"light":t==="light"?"dark":"auto")}set(t){this.mode.set(t)}readInitial(){try{let t=this.doc.defaultView?.localStorage.getItem(v);if(t==="auto"||t==="light"||t==="dark")return t}catch{}return"auto"}readSystemPref(){try{return this.doc.defaultView?.matchMedia(S).matches??!1}catch{return!1}}subscribeToSystemPref(){let t=this.doc.defaultView;if(!t||typeof t.matchMedia!="function")return;let a=t.matchMedia(S),l=T=>{this.systemPrefersDark.set(T.matches)};a.addEventListener("change",l),this.destroyRef.onDestroy(()=>a.removeEventListener("change",l))}static \u0275fac=function(a){return new(a||e)};static \u0275prov=n({token:e,factory:e.\u0275fac,providedIn:"root"})};export{h as a,m as b,L as c,y as d,k as e};
1
+ import{J as n,O as o,Tb as r,Y as d,Z as c,da as s,ea as g,id as i,jd as p,nd as u}from"./chunk-J3YWUNFO.js";var L={triggerLabel:"Settings",triggerTooltip:"Settings",modalTitle:"Settings",closeLabel:"Close",sections:{plugins:"Plugins",general:"General",project:"Project",changelog:"Changelog",about:"About"},general:{heading:"General",intro:"User-scope preferences. These settings live in your home directory (`~/.skill-map/settings.json`) and follow you across projects.",loadErrorPrefix:"Could not load preferences:",saveErrorPrefix:"Could not save preferences:",toggles:{"updateCheck.enabled":{label:"Check for updates",description:"Check npm for newer @skill-map/cli releases."}},localPreferences:{heading:"This browser",intro:"Visual preferences saved in this browser only. They won't sync to another machine."},connectionType:{label:"Edge style",description:"Shape of the lines that connect nodes in the graph view.",options:{segment:{label:"Orthogonal",description:"Right-angled segments (default)."},straight:{label:"Straight",description:"Single straight line."},bezier:{label:"Bezier",description:"Smooth curve."},"adaptive-curve":{label:"Adaptive curve",description:"Curve that follows the connector orientation."}}}},project:{heading:"Project",intro:"These settings apply only to this project and are saved in its `.skill-map/settings.local.json` file.",loadErrorPrefix:"Could not load project settings:",saveErrorPrefix:"Could not save project settings:",extraFoldersLabel:"Extra folders to scan",extraFoldersDescription:"Additional folders included in the scan. Their files show up in the graph next to this project. Use ~/ for paths inside your home folder. This is the only way to extend the scan beyond this project.",extraFoldersPlaceholder:"~/.claude/agents, /path/to/another/folder",referencePathsLabel:"Folders for link validation",referencePathsDescription:'Folders checked only to validate links. Files here are not indexed and do not appear in the graph, they just stop "broken link" warnings when a link points to a real file outside this project.',referencePathsPlaceholder:"~/Documents/research, ~/.claude",addPathLabel:"Add path",removePathLabel:"Remove",confirmDialogHeader:"Allow access to folders outside this project?",confirmDialogIntro:"This change lets the scan read files in:",confirmDialogAccept:"Allow access",confirmDialogReject:"Cancel"},changelogHeading:"Changelog",changelogIntro:"What's new in skill-map. Each entry covers a release of @skill-map/cli (the CLI + bundled UI) and lists the user-facing changes plus the workspace(s) each one affects.",changelogEmpty:"No release notes yet. Future releases will populate this list automatically from the changesets shipped in each PR.",changelogInternalRelease:"Internal release. Focus on stability, infra, and refactors. No user-facing changes this time.",changelogAffectedPackages:"Affected packages",aboutHeading:"About",aboutIntro:"Version information for the running CLI / server.",aboutCliLabel:"skill-map CLI",aboutSpecLabel:"Spec version",aboutSchemaLabel:"Schema version",aboutScopeLabel:"Scope",aboutFolderLabel:"Project folder",aboutDbLabel:"Project DB",aboutHomeLabel:"Skill-map home",aboutDbValue:(e,t)=>e==="present"?t:`${e} \xB7 ${t}`,aboutLoading:"Loading\u2026",aboutUnknown:"\u2014",aboutErrorPrefix:"Could not read health endpoint:",aboutLinksHeading:"Links",aboutWebsiteLabel:"Website",aboutGithubLabel:"GitHub",aboutWebsiteUrl:"https://skill-map.dev/",aboutGithubUrl:"https://github.com/crystian/skill-map",aboutStarHeading:"Enjoying skill-map?",aboutStarBody:"If it's useful to you, drop us a star on GitHub, it helps a lot and keeps the project alive.",aboutStarCta:"Star on GitHub",aboutStarA11y:"Open the skill-map repository on GitHub to give it a star",pluginsHeading:"Plugins",pluginsIntro:"Enable or disable installed plugins.",pluginsSearchPlaceholder:"Filter by name\u2026",pluginsSearchA11y:"Filter plugins by name",pluginsSearchEmpty:e=>`No plugins match "${e}".`,pluginsKindFilterAll:"All",pluginsKindFilterA11y:"Filter plugins by kind",pluginsKindFilterOptionA11y:(e,t)=>t?`Show only ${e} extensions`:"Show all kinds",unsavedChangesMessage:e=>e===1?'1 unsaved change. Click "Apply" to persist it.':`${e} unsaved changes. Click "Apply" to persist them.`,startsAsDisabledRowHint:"This plugin started disabled and is not loaded in memory. Restart `sm serve` for the change to take effect.",startsAsDisabledFooterHint:"Some plugins were disabled when the server started. Consider restarting `sm serve` so they take effect.",discardChanges:"Discard",applyAndClose:"Apply",discardA11y:"Discard pending plugin changes",applyA11y:"Apply pending plugin changes and refresh the graph",confirmCloseTitle:"Apply pending changes?",confirmCloseBody:e=>e===1?"You have 1 unsaved change.":`You have ${e} unsaved changes.`,keepEditing:"Keep editing",sourceBuiltIn:"Built-in",sourceProject:"Project",sourceGlobal:"Global",enabledLabel:"Enabled",disabledLabel:"Disabled",lockedLabel:"Locked",lockedTooltip:"Locked by the host (cannot be toggled).",expandLabel:"Show extensions",collapseLabel:"Hide extensions",statusFailure:{"incompatible-spec":"Incompatible spec version","invalid-manifest":"Invalid manifest","load-error":"Failed to load","id-collision":"Plugin id collision"},loading:"Loading plugins\u2026",empty:"No plugins installed.",errorPrefix:"Could not load plugins:",toggleErrorPrefix:"Toggle failed:",a11y:{triggerLabel:"Open settings",pluginToggle:(e,t)=>t?`Enable plugin ${e}`:`Disable plugin ${e}`,extensionToggle:(e,t)=>t?`Enable ${e}`:`Disable ${e}`,pluginRow:e=>`Plugin ${e} row`,extensionRow:e=>`Extension ${e} row`}};var h={available:"Update available",tooltip:e=>`v${e} is available. Run \`npm i -g @skill-map/cli@latest\` to update.`,a11yLabel:e=>`Update available: version ${e}`,versionLabel:e=>`v${e}`,versionTooltip:e=>`skill-map CLI v${e}`,versionA11yLabel:e=>`Running version ${e}`,fetchFailed:e=>`UpdateCheckService: fetch failed (${e})`};var m=class e{dataSource=o(i);status=s(null);isOutdated=r(()=>this.status()?.isOutdated===!0);latest=r(()=>this.status()?.latest??null);current=r(()=>this.status()?.current??null);async load(){try{let t=await this.dataSource.getUpdateStatus();this.status.set(t)}catch(t){let a=t instanceof Error?t.message:String(t);console.warn(h.fetchFailed(a))}}static \u0275fac=function(a){return new(a||e)};static \u0275prov=n({token:e,factory:e.\u0275fac,providedIn:"root"})};var f={scanFailed:e=>`scan-trigger failed: ${e}`};var y=class e{dataSource=o(i);loader=o(u);scanning=s(!1);scanError=s(null);async run(){if(!this.scanning()){this.scanning.set(!0),this.scanError.set(null);try{await this.dataSource.runScan(),await this.loader.load()}catch(t){let a=t instanceof p||t instanceof Error?t.message:String(t);this.scanError.set(a),console.warn(f.scanFailed(a))}finally{this.scanning.set(!1)}}}static \u0275fac=function(a){return new(a||e)};static \u0275prov=n({token:e,factory:e.\u0275fac,providedIn:"root"})};var v="skill-map.ui.theme",E="app-dark",D="dark",S="(prefers-color-scheme: dark)",k=class e{doc=o(d);destroyRef=o(c);mode=s(this.readInitial());systemPrefersDark=s(this.readSystemPref());resolved=r(()=>{let t=this.mode();return t==="auto"?this.systemPrefersDark()?"dark":"light":t});constructor(){this.subscribeToSystemPref(),g(()=>{let t=this.resolved()==="dark",a=this.doc.documentElement;a.classList.toggle(E,t),a.classList.toggle(D,t);try{this.doc.defaultView?.localStorage.setItem(v,this.mode())}catch{}})}toggle(){this.mode.update(t=>t==="auto"?"light":t==="light"?"dark":"auto")}set(t){this.mode.set(t)}readInitial(){try{let t=this.doc.defaultView?.localStorage.getItem(v);if(t==="auto"||t==="light"||t==="dark")return t}catch{}return"auto"}readSystemPref(){try{return this.doc.defaultView?.matchMedia(S).matches??!1}catch{return!1}}subscribeToSystemPref(){let t=this.doc.defaultView;if(!t||typeof t.matchMedia!="function")return;let a=t.matchMedia(S),l=T=>{this.systemPrefersDark.set(T.matches)};a.addEventListener("change",l),this.destroyRef.onDestroy(()=>a.removeEventListener("change",l))}static \u0275fac=function(a){return new(a||e)};static \u0275prov=n({token:e,factory:e.\u0275fac,providedIn:"root"})};export{h as a,m as b,L as c,y as d,k as e};
@@ -1,4 +1,4 @@
1
- import{a as we,d as Ee,e as Ne,g as Be,h as ke,i as De,j as Se,k as ze,l as Fe,m as Oe}from"./chunk-ZYPPIYEF.js";import{$ as R,Aa as T,Ba as I,Hb as E,I as ae,Ic as ee,J as v,Jb as xe,Jc as b,K as x,Ka as u,Kb as ye,La as pe,Lc as N,M as y,Ma as ue,Na as w,O as l,Oa as M,Oc as B,Pc as $,Qb as X,Ra as me,Sa as ge,T as q,Ta as c,Tb as J,U as K,Ua as D,V as le,Va as S,Vc as r,Wa as U,Wc as H,Xb as f,Zc as Ie,ab as P,ad as Me,cc as h,da as re,db as G,dc as _e,ea as se,fb as V,ga as m,hb as d,ib as j,jb as L,jc as Ce,ka as ce,kb as W,mb as z,mc as Te,nb as F,oa as g,oc as Y,pc as O,rb as fe,tb as he,vb as p,wa as k,wb as be,xa as _,xb as ve,ya as de,za as C}from"./chunk-XPMAU22J.js";import{U as Z,V as Q}from"./chunk-3R7E3HPC.js";import{a as ie}from"./chunk-Q7L6LLAK.js";var Ae=`
1
+ import{a as we,d as Ee,e as Ne,g as Be,h as ke,i as De,j as Se,k as ze,l as Fe,m as Oe}from"./chunk-VO6NF24F.js";import{$ as R,Aa as T,Ba as I,Hb as E,I as ae,Ic as ee,J as v,Jb as xe,Jc as b,K as x,Ka as u,Kb as ye,La as pe,Lc as N,M as y,Ma as ue,Na as w,O as l,Oa as M,Oc as B,Pc as $,Qb as X,Ra as me,Sa as ge,T as q,Ta as c,Tb as J,U as K,Ua as D,V as le,Va as S,Vc as r,Wa as U,Wc as H,Xb as f,Zc as Ie,ab as P,ad as Me,cc as h,da as re,db as G,dc as _e,ea as se,fb as V,ga as m,hb as d,ib as j,jb as L,jc as Ce,ka as ce,kb as W,mb as z,mc as Te,nb as F,oa as g,oc as Y,pc as O,rb as fe,tb as he,vb as p,wa as k,wb as be,xa as _,xb as ve,ya as de,za as C}from"./chunk-J3YWUNFO.js";import{U as Z,V as Q}from"./chunk-H2J55DNK.js";import{a as ie}from"./chunk-Q7L6LLAK.js";var Ae=`
2
2
  .p-message {
3
3
  display: grid;
4
4
  grid-template-rows: 1fr;
@@ -1,4 +1,4 @@
1
- import{$ as L,Aa as c,Ba as Fe,Ea as nt,Hb as S,I as $,Ic as vt,J as U,Jb as Se,Jc as he,K as O,Ka as re,Lc as fe,M as b,Na as P,O as M,Oa as R,Oc as z,Pc as Z,Sb as A,Ta as j,Tb as D,Ua as we,V as et,Va as Ie,Vc as I,Wa as it,Wb as u,Wc as ge,Xb as s,Za as ot,_c as yt,ab as Ne,ad as _t,bc as ct,cc as w,d as Ke,da as V,dc as ht,ea as ie,ec as Oe,fa as tt,fb as se,ga as v,gc as xe,h as Ye,hb as q,ia as Ae,ib as rt,jb as st,kb as at,mb as ae,n as Xe,nb as le,oa as W,oc as ft,pc as de,ra as Ee,sa as y,t as Je,tb as lt,vb as T,wa as B,wb as dt,xa as x,xb as ut,ya as C,za as oe}from"./chunk-XPMAU22J.js";import{I as pt,K as ce,P as ke,T as mt,b as ue,d as Te,fa as Le,g as gt}from"./chunk-3R7E3HPC.js";import{a as p,b as F}from"./chunk-Q7L6LLAK.js";var Xt=["data-p-icon","times"],si=(()=>{class t extends yt{static \u0275fac=(()=>{let e;return function(o){return(e||(e=v(t)))(o||t)}})();static \u0275cmp=B({type:t,selectors:[["","data-p-icon","times"]],features:[c],attrs:Xt,decls:1,vars:0,consts:[["d","M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z","fill","currentColor"]],template:function(i,o){i&1&&(et(),ot(0,"path",0))},encapsulation:2})}return t})();var Jt=Object.defineProperty,Ct=Object.getOwnPropertySymbols,en=Object.prototype.hasOwnProperty,tn=Object.prototype.propertyIsEnumerable,bt=(t,n,e)=>n in t?Jt(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e,Dt=(t,n)=>{for(var e in n||(n={}))en.call(n,e)&&bt(t,e,n[e]);if(Ct)for(var e of Ct(n))tn.call(n,e)&&bt(t,e,n[e]);return t},nn=(t,n,e)=>new Promise((i,o)=>{var r=l=>{try{g(e.next(l))}catch(h){o(h)}},a=l=>{try{g(e.throw(l))}catch(h){o(h)}},g=l=>l.done?i(l.value):Promise.resolve(l.value).then(r,a);g((e=e.apply(t,n)).next())}),pe="animation",K="transition";function on(t){return t?t.disabled||!!(t.safe&&pt()):!1}function rn(t,n){return t?Dt(Dt({},t),Object.entries(n).reduce((e,[i,o])=>{var r;return e[i]=(r=t[i])!=null?r:o,e},{})):n}function sn(t){let{name:n,enterClass:e,leaveClass:i}=t||{};return{enter:{from:e?.from||`${n}-enter-from`,to:e?.to||`${n}-enter-to`,active:e?.active||`${n}-enter-active`},leave:{from:i?.from||`${n}-leave-from`,to:i?.to||`${n}-leave-to`,active:i?.active||`${n}-leave-active`}}}function an(t){return{enter:{onBefore:t?.onBeforeEnter,onStart:t?.onEnter,onAfter:t?.onAfterEnter,onCancelled:t?.onEnterCancelled},leave:{onBefore:t?.onBeforeLeave,onStart:t?.onLeave,onAfter:t?.onAfterLeave,onCancelled:t?.onLeaveCancelled}}}function ln(t,n){let e=window.getComputedStyle(t),i=m=>{let N=e[`${m}Delay`],E=e[`${m}Duration`];return[N.split(", ").map(Le),E.split(", ").map(Le)]},[o,r]=i(K),[a,g]=i(pe),l=Math.max(...r.map((m,N)=>m+o[N])),h=Math.max(...g.map((m,N)=>m+a[N])),d,f=0,_=0;return n===K?l>0&&(d=K,f=l,_=r.length):n===pe?h>0&&(d=pe,f=h,_=g.length):(f=Math.max(l,h),d=f>0?l>h?K:pe:void 0,_=d?d===K?r.length:g.length:0),{type:d,timeout:f,count:_}}function me(t,n){return typeof t=="number"?t:typeof t=="object"&&t[n]!=null?t[n]:null}function dn(t,n=!0,e=!1){if(!n&&!e)return;let i=gt(t);n&&ke(t,"--pui-motion-height",i.height+"px"),e&&ke(t,"--pui-motion-width",i.width+"px")}var un={name:"p",safe:!0,disabled:!1,enter:!0,leave:!0,autoHeight:!0,autoWidth:!1};function Be(t,n){if(!t)throw new Error("Element is required.");let e={},i=!1,o={},r=null,a={},g=d=>{if(Object.assign(e,rn(d,un)),!e.enter&&!e.leave)throw new Error("Enter or leave must be true.");a=an(e),i=on(e),o=sn(e),r=null},l=d=>nn(null,null,function*(){r?.();let{onBefore:f,onStart:_,onAfter:m,onCancelled:N}=a[d]||{},E={element:t};if(i){f?.(E),_?.(E),m?.(E);return}let{from:We,active:qe,to:ze}=o[d]||{};return dn(t,e.autoHeight,e.autoWidth),f?.(E),ue(t,We),ue(t,qe),t.offsetHeight,Te(t,We),ue(t,ze),_?.(E),new Promise(Ze=>{let Kt=me(e.duration,d),Qe=()=>{Te(t,[ze,qe]),r=null},Yt=()=>{Qe(),m?.(E),Ze()};r=()=>{Qe(),N?.(E),Ze()},hn(t,e.type,Kt,Yt)})});g(n);let h={enter:()=>e.enter?l("enter"):Promise.resolve(),leave:()=>e.leave?l("leave"):Promise.resolve(),cancel:()=>{r?.(),r=null},update:(d,f)=>{if(!d)throw new Error("Element is required.");t=d,h.cancel(),g(f)}};return e.appear&&h.enter(),h}var cn=0;function hn(t,n,e,i){let o=t._motionEndId=++cn,r=()=>{o===t._motionEndId&&i()};if(e!=null)return setTimeout(r,e);let{type:a,timeout:g,count:l}=ln(t,n);if(!a){i();return}let h=a+"end",d=0,f=()=>{t.removeEventListener(h,_,!0),r()},_=m=>{m.target===t&&++d>=l&&f()};t.addEventListener(h,_,{capture:!0,once:!0}),setTimeout(()=>{d<l&&f()},g+1)}var gn=["*"];function pn(t,n){t&1&&st(0)}var ve=new WeakMap;function Y(t,n){if(t)switch(ve.has(t)||ve.set(t,{display:t.style.display,visibility:t.style.visibility,maxHeight:t.style.maxHeight,overflow:t.style.overflow}),n){case"display":t.style.display="none";break;case"visibility":t.style.visibility="hidden",t.style.maxHeight="0",t.style.overflow="hidden";break}}function ye(t,n){if(!t)return;let e=ve.get(t)??t.style;switch(n){case"display":t.style.display=e?.display||"";break;case"visibility":t.style.visibility=e?.visibility||"",t.style.maxHeight=e?.maxHeight||"",t.style.overflow=e?.overflow||"";break}ve.delete(t)}var mn=`
1
+ import{$ as L,Aa as c,Ba as Fe,Ea as nt,Hb as S,I as $,Ic as vt,J as U,Jb as Se,Jc as he,K as O,Ka as re,Lc as fe,M as b,Na as P,O as M,Oa as R,Oc as z,Pc as Z,Sb as A,Ta as j,Tb as D,Ua as we,V as et,Va as Ie,Vc as I,Wa as it,Wb as u,Wc as ge,Xb as s,Za as ot,_c as yt,ab as Ne,ad as _t,bc as ct,cc as w,d as Ke,da as V,dc as ht,ea as ie,ec as Oe,fa as tt,fb as se,ga as v,gc as xe,h as Ye,hb as q,ia as Ae,ib as rt,jb as st,kb as at,mb as ae,n as Xe,nb as le,oa as W,oc as ft,pc as de,ra as Ee,sa as y,t as Je,tb as lt,vb as T,wa as B,wb as dt,xa as x,xb as ut,ya as C,za as oe}from"./chunk-J3YWUNFO.js";import{I as pt,K as ce,P as ke,T as mt,b as ue,d as Te,fa as Le,g as gt}from"./chunk-H2J55DNK.js";import{a as p,b as F}from"./chunk-Q7L6LLAK.js";var Xt=["data-p-icon","times"],si=(()=>{class t extends yt{static \u0275fac=(()=>{let e;return function(o){return(e||(e=v(t)))(o||t)}})();static \u0275cmp=B({type:t,selectors:[["","data-p-icon","times"]],features:[c],attrs:Xt,decls:1,vars:0,consts:[["d","M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z","fill","currentColor"]],template:function(i,o){i&1&&(et(),ot(0,"path",0))},encapsulation:2})}return t})();var Jt=Object.defineProperty,Ct=Object.getOwnPropertySymbols,en=Object.prototype.hasOwnProperty,tn=Object.prototype.propertyIsEnumerable,bt=(t,n,e)=>n in t?Jt(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e,Dt=(t,n)=>{for(var e in n||(n={}))en.call(n,e)&&bt(t,e,n[e]);if(Ct)for(var e of Ct(n))tn.call(n,e)&&bt(t,e,n[e]);return t},nn=(t,n,e)=>new Promise((i,o)=>{var r=l=>{try{g(e.next(l))}catch(h){o(h)}},a=l=>{try{g(e.throw(l))}catch(h){o(h)}},g=l=>l.done?i(l.value):Promise.resolve(l.value).then(r,a);g((e=e.apply(t,n)).next())}),pe="animation",K="transition";function on(t){return t?t.disabled||!!(t.safe&&pt()):!1}function rn(t,n){return t?Dt(Dt({},t),Object.entries(n).reduce((e,[i,o])=>{var r;return e[i]=(r=t[i])!=null?r:o,e},{})):n}function sn(t){let{name:n,enterClass:e,leaveClass:i}=t||{};return{enter:{from:e?.from||`${n}-enter-from`,to:e?.to||`${n}-enter-to`,active:e?.active||`${n}-enter-active`},leave:{from:i?.from||`${n}-leave-from`,to:i?.to||`${n}-leave-to`,active:i?.active||`${n}-leave-active`}}}function an(t){return{enter:{onBefore:t?.onBeforeEnter,onStart:t?.onEnter,onAfter:t?.onAfterEnter,onCancelled:t?.onEnterCancelled},leave:{onBefore:t?.onBeforeLeave,onStart:t?.onLeave,onAfter:t?.onAfterLeave,onCancelled:t?.onLeaveCancelled}}}function ln(t,n){let e=window.getComputedStyle(t),i=m=>{let N=e[`${m}Delay`],E=e[`${m}Duration`];return[N.split(", ").map(Le),E.split(", ").map(Le)]},[o,r]=i(K),[a,g]=i(pe),l=Math.max(...r.map((m,N)=>m+o[N])),h=Math.max(...g.map((m,N)=>m+a[N])),d,f=0,_=0;return n===K?l>0&&(d=K,f=l,_=r.length):n===pe?h>0&&(d=pe,f=h,_=g.length):(f=Math.max(l,h),d=f>0?l>h?K:pe:void 0,_=d?d===K?r.length:g.length:0),{type:d,timeout:f,count:_}}function me(t,n){return typeof t=="number"?t:typeof t=="object"&&t[n]!=null?t[n]:null}function dn(t,n=!0,e=!1){if(!n&&!e)return;let i=gt(t);n&&ke(t,"--pui-motion-height",i.height+"px"),e&&ke(t,"--pui-motion-width",i.width+"px")}var un={name:"p",safe:!0,disabled:!1,enter:!0,leave:!0,autoHeight:!0,autoWidth:!1};function Be(t,n){if(!t)throw new Error("Element is required.");let e={},i=!1,o={},r=null,a={},g=d=>{if(Object.assign(e,rn(d,un)),!e.enter&&!e.leave)throw new Error("Enter or leave must be true.");a=an(e),i=on(e),o=sn(e),r=null},l=d=>nn(null,null,function*(){r?.();let{onBefore:f,onStart:_,onAfter:m,onCancelled:N}=a[d]||{},E={element:t};if(i){f?.(E),_?.(E),m?.(E);return}let{from:We,active:qe,to:ze}=o[d]||{};return dn(t,e.autoHeight,e.autoWidth),f?.(E),ue(t,We),ue(t,qe),t.offsetHeight,Te(t,We),ue(t,ze),_?.(E),new Promise(Ze=>{let Kt=me(e.duration,d),Qe=()=>{Te(t,[ze,qe]),r=null},Yt=()=>{Qe(),m?.(E),Ze()};r=()=>{Qe(),N?.(E),Ze()},hn(t,e.type,Kt,Yt)})});g(n);let h={enter:()=>e.enter?l("enter"):Promise.resolve(),leave:()=>e.leave?l("leave"):Promise.resolve(),cancel:()=>{r?.(),r=null},update:(d,f)=>{if(!d)throw new Error("Element is required.");t=d,h.cancel(),g(f)}};return e.appear&&h.enter(),h}var cn=0;function hn(t,n,e,i){let o=t._motionEndId=++cn,r=()=>{o===t._motionEndId&&i()};if(e!=null)return setTimeout(r,e);let{type:a,timeout:g,count:l}=ln(t,n);if(!a){i();return}let h=a+"end",d=0,f=()=>{t.removeEventListener(h,_,!0),r()},_=m=>{m.target===t&&++d>=l&&f()};t.addEventListener(h,_,{capture:!0,once:!0}),setTimeout(()=>{d<l&&f()},g+1)}var gn=["*"];function pn(t,n){t&1&&st(0)}var ve=new WeakMap;function Y(t,n){if(t)switch(ve.has(t)||ve.set(t,{display:t.style.display,visibility:t.style.visibility,maxHeight:t.style.maxHeight,overflow:t.style.overflow}),n){case"display":t.style.display="none";break;case"visibility":t.style.visibility="hidden",t.style.maxHeight="0",t.style.overflow="hidden";break}}function ye(t,n){if(!t)return;let e=ve.get(t)??t.style;switch(n){case"display":t.style.display=e?.display||"";break;case"visibility":t.style.visibility=e?.visibility||"",t.style.maxHeight=e?.maxHeight||"",t.style.overflow=e?.overflow||"";break}ve.delete(t)}var mn=`
2
2
  .p-motion {
3
3
  display: block;
4
4
  }
@@ -1,4 +1,4 @@
1
- import{$ as J,$a as k,Aa as I,Ba as l,Hb as O,Ic as Y,J as M,Jc as C,K as D,Ka as g,Kc as ce,Lc as $,M as V,O as _,Oc as Z,Pc as U,Qb as re,T as h,Ta as o,U as v,Ua as u,V as A,Va as f,Vc as d,Wa as P,Xa as W,Ya as X,Za as ee,_a as w,_c as se,cc as S,db as E,eb as ne,fb as B,ga as y,hb as a,ib as j,jb as L,jc as K,kb as R,la as te,mb as x,mc as H,nb as T,oa as c,oc as q,pc as G,rb as ie,ub as oe,vb as p,wa as b,wb as z,xa as N,xb as Q,za as F,zc as ae}from"./chunk-XPMAU22J.js";var pe=`
1
+ import{$ as J,$a as k,Aa as I,Ba as l,Hb as O,Ic as Y,J as M,Jc as C,K as D,Ka as g,Kc as ce,Lc as $,M as V,O as _,Oc as Z,Pc as U,Qb as re,T as h,Ta as o,U as v,Ua as u,V as A,Va as f,Vc as d,Wa as P,Xa as W,Ya as X,Za as ee,_a as w,_c as se,cc as S,db as E,eb as ne,fb as B,ga as y,hb as a,ib as j,jb as L,jc as K,kb as R,la as te,mb as x,mc as H,nb as T,oa as c,oc as q,pc as G,rb as ie,ub as oe,vb as p,wa as b,wb as z,xa as N,xb as Q,za as F,zc as ae}from"./chunk-J3YWUNFO.js";var pe=`
2
2
  .p-tag {
3
3
  display: inline-flex;
4
4
  align-items: center;
@@ -23,5 +23,5 @@
23
23
  <style>:root{--ff-white:#ffffff;--ff-black:#000000;--ff-gray-0:#ffffff;--ff-gray-25:#fcfcfc;--ff-gray-50:#f8f8f7;--ff-gray-75:#f2f2f0;--ff-gray-100:#e9e9e6;--ff-gray-150:#dcdcd7;--ff-gray-200:#c9c9c1;--ff-gray-300:#afafa5;--ff-gray-400:#8d8d81;--ff-gray-500:#69695f;--ff-gray-600:#505048;--ff-gray-700:#3c3c36;--ff-gray-800:#272722;--ff-gray-900:#1b1b18;--ff-gray-950:#141412;--ff-gray-1000:#0f0f0d;--ff-alpha-black-04:rgba(15, 15, 13, .04);--ff-alpha-black-06:rgba(15, 15, 13, .06);--ff-alpha-black-08:rgba(15, 15, 13, .08);--ff-alpha-black-10:rgba(15, 15, 13, .1);--ff-alpha-black-12:rgba(15, 15, 13, .12);--ff-alpha-black-15:rgba(15, 15, 13, .15);--ff-alpha-black-20:rgba(15, 15, 13, .2);--ff-alpha-black-30:rgba(15, 15, 13, .3);--ff-alpha-black-40:rgba(15, 15, 13, .4);--ff-alpha-black-60:rgba(15, 15, 13, .6);--ff-alpha-white-04:rgba(255, 255, 255, .04);--ff-alpha-white-06:rgba(255, 255, 255, .06);--ff-alpha-white-08:rgba(255, 255, 255, .08);--ff-alpha-white-10:rgba(255, 255, 255, .1);--ff-alpha-white-12:rgba(255, 255, 255, .12);--ff-alpha-white-15:rgba(255, 255, 255, .15);--ff-alpha-white-20:rgba(255, 255, 255, .2);--ff-alpha-white-30:rgba(255, 255, 255, .3);--ff-alpha-white-40:rgba(255, 255, 255, .4);--ff-alpha-white-60:rgba(255, 255, 255, .6);--ff-blue-100:#e8f2ff;--ff-blue-200:#bad8ff;--ff-blue-300:#7db7ff;--ff-blue-400:#4176ff;--ff-blue-500:#2759db;--ff-blue-600:#1b3f9e;--ff-green-100:#e7f7ef;--ff-green-300:#71c795;--ff-green-400:#2b9b5f;--ff-green-500:#1e7748;--ff-yellow-100:#fff5de;--ff-yellow-300:#e1b354;--ff-yellow-400:#bb8121;--ff-yellow-500:#916112;--ff-red-100:#feeceb;--ff-red-300:#e48d85;--ff-red-400:#c55245;--ff-red-500:#9e3a2f;--ff-radius-4:4px;--ff-radius-6:6px;--ff-radius-pill:999px;--ff-font-family-sans:"Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--ff-font-family-mono:ui-monospace, "SFMono-Regular", "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;--ff-font-size-xs:12px;--ff-font-size-sm:14px;--ff-font-size-md:16px;--ff-font-size-lg:18px;--ff-shadow-1:0 1px 2px rgba(15, 15, 13, .05), 0 8px 20px rgba(15, 15, 13, .04);--ff-shadow-2:0 10px 28px rgba(15, 15, 13, .08), 0 3px 10px rgba(15, 15, 13, .05);--ff-shadow-3:0 18px 48px rgba(15, 15, 13, .12), 0 6px 16px rgba(15, 15, 13, .08)}:root{--ff-color-surface-page:var(--ff-gray-25);--ff-color-surface-canvas:var(--ff-gray-25);--ff-color-surface-card:var(--ff-white);--ff-color-surface-group:rgba(65, 118, 255, .14);--ff-color-surface-group-active:rgba(65, 118, 255, .2);--ff-color-surface-muted:var(--ff-gray-50);--ff-color-surface-soft:var(--ff-gray-75);--ff-color-surface-accent-soft:rgba(65, 118, 255, .1);--ff-color-border-default:var(--ff-alpha-black-12);--ff-color-border-subtle:var(--ff-alpha-black-08);--ff-color-border-strong:var(--ff-alpha-black-20);--ff-color-border-accent:var(--ff-blue-500);--ff-color-text-primary:var(--ff-gray-800);--ff-color-text-secondary:var(--ff-gray-500);--ff-color-text-tertiary:var(--ff-gray-400);--ff-color-text-inverse:var(--ff-white);--ff-color-accent:var(--ff-blue-500);--ff-color-accent-strong:var(--ff-blue-600);--ff-color-success:var(--ff-green-400);--ff-color-warning:var(--ff-yellow-400);--ff-color-danger:var(--ff-red-400);--ff-color-disabled-surface:var(--ff-gray-100);--ff-color-disabled-border:var(--ff-alpha-black-10);--ff-color-disabled-text:var(--ff-gray-300);--ff-color-selection-fill:rgba(65, 118, 255, .12);--ff-color-selection-stroke:rgba(65, 118, 255, .28);--ff-color-grid:var(--ff-alpha-black-08);--ff-color-grid-strong:var(--ff-alpha-black-15);--ff-color-connector-connected:var(--ff-blue-500);--ff-color-connection:var(--ff-gray-600);--ff-color-connection-muted:var(--ff-gray-300);--ff-color-connection-hover:var(--ff-alpha-black-12);--ff-color-grouping-drop-target-border:var(--ff-gray-800);--ff-color-grouping-drop-target-border-active:var(--ff-gray-800);--ff-color-waypoint-fill:var(--ff-white);--ff-color-waypoint-stroke:var(--ff-blue-500);--ff-color-waypoint-candidate-fill:var(--ff-white);--ff-color-waypoint-candidate-stroke:var(--ff-green-400);--ff-color-minimap-surface:var(--ff-white);--ff-color-minimap-node:var(--ff-gray-700);--ff-color-minimap-view:rgba(65, 118, 255, .14);--ff-color-magnetic-line:var(--ff-blue-500);--ff-color-magnetic-rect-fill:rgba(65, 118, 255, .08);--ff-color-magnetic-rect-border:rgba(65, 118, 255, .24);--ff-radius-node:var(--ff-radius-4);--ff-radius-group:var(--ff-radius-4);--ff-radius-control:var(--ff-radius-4);--ff-radius-socket-square:var(--ff-radius-6);--ff-radius-pill:var(--ff-radius-pill);--ff-font-sans:var(--ff-font-family-sans);--ff-font-mono:var(--ff-font-family-mono);--ff-font-size-body:var(--ff-font-size-sm);--ff-font-size-label:var(--ff-font-size-xs);--ff-shadow-surface:var(--ff-shadow-1);--ff-shadow-floating:var(--ff-shadow-2)}:root{--ff-flow-background-color:var(--ff-color-surface-page);--ff-flow-text-color:var(--ff-color-text-primary);--ff-flow-font-family:var(--ff-font-sans);--ff-flow-font-size:var(--ff-font-size-body);--ff-canvas-background-color:var(--ff-color-surface-canvas);--ff-node-background-color:var(--ff-color-surface-card);--ff-node-background-color-inverse:var(--ff-color-text-primary);--ff-node-border-color:var(--ff-color-border-default);--ff-node-border-color-selected:var(--ff-color-border-accent);--ff-node-color:var(--ff-color-text-primary);--ff-node-border-radius:var(--ff-radius-node);--ff-node-shadow:var(--ff-shadow-surface);--ff-node-shadow-selected:var(--ff-shadow-floating);--ff-node-width:120px;--ff-node-min-height:56px;--ff-node-padding:24px;--ff-group-background-color:var(--ff-color-surface-group);--ff-group-background-color-active:var(--ff-color-surface-group-active);--ff-group-border-color:var(--ff-color-border-subtle);--ff-group-border-color-selected:var(--ff-color-border-accent);--ff-group-border-color-active:var(--ff-color-border-accent);--ff-group-color:var(--ff-color-text-secondary);--ff-group-border-radius:var(--ff-radius-group);--ff-group-min-width:180px;--ff-group-min-height:120px;--ff-group-padding:24px;--ff-grouping-drop-target-border-color:var(--ff-color-grouping-drop-target-border);--ff-grouping-drop-target-border-style:dashed;--ff-grouping-drop-target-border-width:1px;--ff-grouping-drop-target-border-color-active:var(--ff-color-grouping-drop-target-border-active);--ff-grouping-drop-target-border-style-active:dashed;--ff-grouping-drop-target-border-width-active:2px;--ff-handle-background-color:var(--ff-color-surface-card);--ff-handle-border-color:var(--ff-color-border-strong);--ff-handle-color:var(--ff-color-text-secondary);--ff-handle-size:12px;--ff-handle-radius:var(--ff-radius-control);--ff-rotate-handle-size:16px;--ff-connector-background-color:var(--ff-color-surface-card);--ff-connector-border-color:var(--ff-color-border-default);--ff-connector-connected-color:var(--ff-color-connector-connected);--ff-connector-accent-color:var(--ff-color-accent);--ff-connector-disabled-color:var(--ff-color-disabled-surface);--ff-connector-disabled-border-color:var(--ff-color-disabled-border);--ff-connector-size:16px;--ff-connector-node-ring-color:var(--ff-canvas-background-color);--ff-outlet-background-color:var(--ff-color-surface-muted);--ff-outlet-border-color:var(--ff-color-border-default);--ff-outlet-color:var(--ff-color-accent);--ff-outlet-disabled-background-color:var(--ff-color-disabled-surface);--ff-outlet-disabled-border-color:var(--ff-color-disabled-border);--ff-outlet-disabled-color:var(--ff-color-disabled-text);--ff-outlet-border-radius:var(--ff-radius-pill);--ff-outlet-padding-y:6px;--ff-outlet-padding-x:12px;--ff-connection-color:var(--ff-color-connection);--ff-snap-connection-color:var(--ff-color-connection-muted);--ff-connection-hover-color:var(--ff-color-connection-hover);--ff-connection-selected-color:var(--ff-color-accent);--ff-connection-label-color:var(--ff-color-text-secondary);--ff-connection-content-color:var(--ff-node-color);--ff-connection-content-background-color:var(--ff-node-background-color);--ff-connection-content-border-color:var(--ff-node-border-color);--ff-connection-content-border-color-selected:var(--ff-connection-selected-color);--ff-connection-content-border-radius:var(--ff-node-border-radius);--ff-connection-content-font-size:13px;--ff-connection-content-padding-y:2px;--ff-connection-content-padding-x:8px;--ff-connection-width:2px;--ff-connection-hit-width:14px;--ff-connection-drag-handle-fill:var(--ff-color-surface-card);--ff-connection-drag-handle-stroke:var(--ff-color-accent);--ff-marker-color:var(--ff-connection-color);--ff-waypoint-fill:var(--ff-color-waypoint-fill);--ff-waypoint-stroke:var(--ff-color-waypoint-stroke);--ff-waypoint-candidate-fill:var(--ff-color-waypoint-candidate-fill);--ff-waypoint-candidate-stroke:var(--ff-color-waypoint-candidate-stroke);--ff-background-line-color:var(--ff-color-grid);--ff-background-dot-color:var(--ff-color-grid-strong);--ff-selection-area-color:var(--ff-color-selection-fill);--ff-selection-area-border-color:var(--ff-color-selection-stroke);--ff-minimap-background-color:var(--ff-color-minimap-surface);--ff-minimap-border-color:var(--ff-color-border-default);--ff-minimap-node-color:var(--ff-color-minimap-node);--ff-minimap-node-selected-color:var(--ff-color-accent);--ff-minimap-view-color:var(--ff-color-minimap-view);--ff-minimap-view-border-color:var(--ff-color-selection-stroke);--ff-minimap-border-radius:var(--ff-radius-node);--ff-minimap-shadow:var(--ff-shadow-floating);--ff-magnetic-line-color:var(--ff-color-magnetic-line);--ff-magnetic-rect-fill:var(--ff-color-magnetic-rect-fill);--ff-magnetic-rect-border-color:var(--ff-color-magnetic-rect-border);--ff-external-item-background-color:var(--ff-color-surface-card);--ff-external-item-border-color:var(--ff-color-border-default);--ff-external-item-color:var(--ff-color-text-primary);--ff-external-item-disabled-color:var(--ff-color-disabled-text);--ff-external-item-disabled-background-color:var(--ff-color-disabled-surface);--ff-external-item-border-radius:var(--ff-radius-node);--ff-external-item-shadow:var(--ff-shadow-surface);--ff-external-item-preview-shadow:var(--ff-shadow-floating);--ff-external-item-placeholder-background-color:var(--ff-color-surface-soft);--ff-external-item-placeholder-border-color:var(--ff-color-border-subtle)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}:root{--fa-family-brands:"Font Awesome 7 Brands";--fa-font-brands:normal 400 1em/1 var(--fa-family-brands)}:root{--fa-font-regular:normal 400 1em/1 var(--fa-family-classic)}:root{--fa-family-classic:"Font Awesome 7 Free";--fa-font-solid:normal 900 1em/1 var(--fa-family-classic);--fa-style-family-classic:var(--fa-family-classic)}:root{--sm-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--sm-font-display-brand:"Geist", system-ui, sans-serif;--sm-radius-sm:3px;--sm-radius-md:4px;--sm-radius-lg:.5rem;--sm-radius-pill:999px;--sm-bg-page:#f8fafc;--sm-bg-content:#ffffff;--sm-bg-hover:#f1f5f9;--sm-border:#e2e8f0;--sm-nav-active-bg:#eff6ff;--sm-violet-50:#F5F3FF;--sm-violet-100:#EDE9FE;--sm-violet-200:#DDD6FE;--sm-violet-300:#C4B5FD;--sm-violet-400:#A78BFA;--sm-violet-500:#8B5CF6;--sm-violet-600:#7C3AED;--sm-violet-700:#6D28D9;--sm-violet-800:#4C1D95;--sm-violet-900:#2E1065;--sm-edge-invokes:#b8843a;--sm-edge-invokes-active:#f59e0b;--sm-edge-references:#6b8ab8;--sm-edge-references-active:#3b82f6;--sm-edge-mentions:#9ca3af;--sm-edge-mentions-active:#475569;--sm-edge-supersedes:#8a7eb3;--sm-edge-supersedes-active:#8b5cf6;--sm-link-in-bg:#e0e7ff;--sm-link-in-fg:#3730a3;--sm-link-out-bg:#fef3c7;--sm-link-out-fg:#92400e;--sm-severity-info:#1e3a8a;--sm-severity-success:#065f46;--sm-severity-warn:#ca8a04;--sm-severity-error:#991b1b;--sm-severity-info-bg:rgba(219, 234, 254, .35);--sm-severity-success-bg:rgba(209, 250, 229, .35);--sm-severity-warn-bg:rgba(254, 243, 199, .35);--sm-severity-error-bg:rgba(254, 226, 226, .35);--sm-stat-tokens-bg:rgba(59, 130, 246, .14);--sm-stat-bytes-bg:rgba(245, 158, 11, .16);--sm-shadow-topbar:0 1px 2px rgba(0, 0, 0, .03);--sm-shadow-eventlog:0 -4px 16px rgba(0, 0, 0, .08);--sm-shadow-floating:0 4px 14px rgba(0, 0, 0, .08);--sm-shadow-card:0 1px 2px rgba(0, 0, 0, .05);--sm-shadow-card-hover:0 3px 12px rgba(0, 0, 0, .12)}html,body{margin:0;padding:0;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--sm-bg-page);color:var(--p-text-color)}*,*:before,*:after{box-sizing:border-box}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--p-text-color) 30%,transparent) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:color-mix(in srgb,var(--p-text-color) 25%,transparent);border-radius:var(--sm-radius-pill);border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background-color:color-mix(in srgb,var(--p-text-color) 45%,transparent)}</style><link rel="stylesheet" href="styles-DLFC3F2G.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-DLFC3F2G.css"></noscript></head>
24
24
  <body>
25
25
  <sm-root></sm-root>
26
- <link rel="modulepreload" href="chunk-DUE22NNK.js"><link rel="modulepreload" href="chunk-CUNKB7ZS.js"><link rel="modulepreload" href="chunk-EI3A2R5P.js"><link rel="modulepreload" href="chunk-XPMAU22J.js"><link rel="modulepreload" href="chunk-3R7E3HPC.js"><link rel="modulepreload" href="chunk-Q7L6LLAK.js"><script src="main-6UGKLU2M.js" type="module"></script></body>
26
+ <link rel="modulepreload" href="chunk-RR36XBDS.js"><link rel="modulepreload" href="chunk-533YMAY3.js"><link rel="modulepreload" href="chunk-UVILXZ5L.js"><link rel="modulepreload" href="chunk-J3YWUNFO.js"><link rel="modulepreload" href="chunk-H2J55DNK.js"><link rel="modulepreload" href="chunk-Q7L6LLAK.js"><script src="main-GGBD5FA4.js" type="module"></script></body>
27
27
  </html>
@@ -1,2 +1,2 @@
1
- import{a as Be,b as ee,c as ze}from"./chunk-DUE22NNK.js";import{a as Ae,b as we,c as Ce,d as G,e as Te,f as Re,g as xe,h as Ee,i as Me,j as Le,k as Ne,u as w,v as Fe,w as Ue}from"./chunk-CUNKB7ZS.js";import{a as M,b as te,c as He,d as Je,e as Ke}from"./chunk-EI3A2R5P.js";import{Ca as he,Fa as Q,Ia as fe,J as k,Ja as ye,Ka as A,Mc as Oe,N as U,Na as L,Nc as De,O as s,Oa as N,T as z,Ta as g,Tb as m,U as H,Ua as l,Va as p,Wa as y,Z as me,ac as ve,bd as W,ca as ue,cd as Y,da as S,db as V,ea as J,f as ce,fb as E,gd as je,hb as I,id as Z,jd as c,kd as $,la as ge,ld as $e,m as D,md as F,nd as q,oa as a,rc as be,sc as _e,tb as pe,tc as Ie,uc as j,vc as Pe,wa as K,wb as u,wc as ke,xb as h,xc as Se,yb as X}from"./chunk-XPMAU22J.js";import"./chunk-3R7E3HPC.js";import"./chunk-Q7L6LLAK.js";var de="skill-map",v={brand:de,alpha:"ALPHA - do not use in production",nav:{graph:"Graph",list:"List",searchLabel:"Search nodes (coming soon)",searchTooltip:"Search (coming soon)",listLabel:"List view (coming soon)",listTooltip:"List (coming soon)"},actions:{},badge:{nodes:"nodes",graphInfo:(i,e)=>`Run scan
2
- ${i.toLocaleString()} nodes \xB7 ${e.toLocaleString()} links`,graphInfoA11y:(i,e)=>`Graph contains ${i} nodes and ${e} links`},a11y:{viewSwitcher:"View switcher"},viewportWarning:{title:"Looks like you're on a small screen",subtitle:"skill-map is built for desktop",body:"The graph and inspector need room to breathe. Pop this open on a screen at least 768px wide. See you there."},documentTitle:(i,e)=>e?`${i} - ${de} v${e}`:`${i} - ${de}`};var Qe=[{path:"",pathMatch:"full",redirectTo:"graph"},{path:"graph",loadComponent:()=>import("./chunk-S3F7ZJKD.js").then(i=>i.GraphView),title:v.nav.graph},{path:"list",loadComponent:()=>import("./chunk-BA5FEGFM.js").then(i=>i.ListView),title:v.nav.list},{path:"**",redirectTo:"graph"}];var P={errors:{unknownMode:i=>`SKILL_MAP_MODE: unknown value "${i}"`,restPrefix:i=>`BFF error [${i}]: `,malformedResponse:"BFF returned a malformed response",demoFetchFailed:(i,e)=>`Demo bundle fetch failed for "${i}": ${e}`,demoParseFailed:(i,e)=>`Demo bundle parse failed for "${i}": ${e}`,graphFormatNotInDemo:i=>`Graph format "${i}" is not bundled in demo mode (only "ascii").`}};function ie(i){let e=new TextEncoder().encode(i),t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}var d="/api",ne=class i{http;ws;kindRegistry;contributionsRegistry;constructor(e,t,n,r){this.http=e??s(j),this.ws=t??s(F),this.kindRegistry=n??s(w),this.contributionsRegistry=r??s(ee)}async health(){return this.getJson(`${d}/health`)}async loadScan(){let[e]=await Promise.all([this.getJson(`${d}/scan`),this.listNodes({limit:0}).catch(()=>null)]);return e}async runScan(){return this.patchJson(`${d}/scan`,{},"POST")}async listNodes(e={}){let t=st(e),n=await this.getJson(`${d}/nodes${t}`);return this.ingestRegistry(n.kindRegistry),this.ingestContributionsRegistry(n.contributionsRegistry),n}async getNode(e,t={}){let n=ie(e),r=t.includeBody?"?include=body":"";try{let o=await this.getJson(`${d}/nodes/${n}${r}`);return this.ingestRegistry(o.kindRegistry),this.ingestContributionsRegistry(o.contributionsRegistry),o}catch(o){if(o instanceof c&&o.code==="not-found")return null;throw o}}async listLinks(e={}){let t=at(e),n=await this.getJson(`${d}/links${t}`);return this.ingestRegistry(n.kindRegistry),this.ingestContributionsRegistry(n.contributionsRegistry),n}async listIssues(e={}){let t=lt(e),n=await this.getJson(`${d}/issues${t}`);return this.ingestRegistry(n.kindRegistry),this.ingestContributionsRegistry(n.contributionsRegistry),n}async loadGraph(e="ascii"){let t=`${d}/graph?format=${encodeURIComponent(e)}`;try{return await D(this.http.get(t,{responseType:"text"}))}catch(n){throw this.translateError(n)}}async loadConfig(){let e=await this.getJson(`${d}/config`);return this.ingestRegistry(e.kindRegistry),this.ingestContributionsRegistry(e.contributionsRegistry),e.value}async listPlugins(){let e=await this.getJson(`${d}/plugins`);return this.ingestRegistry(e.kindRegistry),this.ingestContributionsRegistry(e.contributionsRegistry),e}async setPluginEnabled(e,t){let n=await this.patchJson(`${d}/plugins/${encodeURIComponent(e)}`,{enabled:t});return this.ingestRegistry(n.kindRegistry),this.ingestContributionsRegistry(n.contributionsRegistry),n}async setPluginExtensionEnabled(e,t,n){let r=await this.patchJson(`${d}/plugins/${encodeURIComponent(e)}/extensions/${encodeURIComponent(t)}`,{enabled:n});return this.ingestRegistry(r.kindRegistry),this.ingestContributionsRegistry(r.contributionsRegistry),r}async applyPluginChanges(e){let t=await this.patchJson(`${d}/plugins`,{changes:e});return this.ingestRegistry(t.kindRegistry),this.ingestContributionsRegistry(t.contributionsRegistry),t}async getPreferences(){return await this.getJson(`${d}/preferences`)}async setPreferences(e){return await this.patchJson(`${d}/preferences`,e)}async getProjectPreferences(){return await this.getJson(`${d}/project-preferences`)}async setProjectPreferences(e){return await this.patchJson(`${d}/project-preferences`,e)}async setFavorite(e){let t=ie(e);try{await D(this.http.put(`${d}/favorites/${t}`,null))}catch(n){throw this.translateError(n)}}async unsetFavorite(e){let t=ie(e);try{await D(this.http.delete(`${d}/favorites/${t}`))}catch(n){throw this.translateError(n)}}async bumpSidecar(e,t={}){let n={nodePath:e};return t.force!==void 0&&(n.force=t.force),t.confirm!==void 0&&(n.confirm=t.confirm),this.patchJson(`${d}/sidecar/bump`,n,"POST")}async getUpdateStatus(){return this.getJson(`${d}/update-status`)}async getRegisteredAnnotations(){return(await this.getJson(`${d}/annotations/registered`)).items}ingestRegistry(e){e&&this.kindRegistry.ingest(e)}ingestContributionsRegistry(e){this.contributionsRegistry.setRegistry(e)}async lookupContribution(e,t,n){let r=new URLSearchParams({path:n});try{return(await this.getJson(`${d}/contributions/${encodeURIComponent(e)}/${encodeURIComponent(t)}?${r.toString()}`)).items[0]??null}catch{return null}}events(){return this.ws.events$}async getJson(e){try{return await D(this.http.get(e))}catch(t){throw this.translateError(t)}}async patchJson(e,t,n="PATCH"){try{let r=n==="POST"?this.http.post(e,t):this.http.patch(e,t);return await D(r)}catch(r){throw this.translateError(r)}}translateError(e){if(e instanceof c)return e;if(e instanceof Ie){let n=pt(e.error);return n?new c(n.error.code,n.error.message,n.error.details):new c("internal",e.message||P.errors.malformedResponse)}let t=e instanceof Error?e.message:String(e);return new c("internal",t)}static \u0275fac=function(t){return new(t||i)(U(j),U(F),U(w),U(ee))};static \u0275prov=k({token:i,factory:i.\u0275fac,providedIn:"root"})};function st(i){let e=new URLSearchParams;i.kind&&i.kind.length>0&&e.set("kind",i.kind.join(",")),i.hasIssues!==void 0&&e.set("hasIssues",String(i.hasIssues)),i.path&&e.set("path",i.path),i.limit!==void 0&&e.set("limit",String(i.limit)),i.offset!==void 0&&e.set("offset",String(i.offset));let t=e.toString();return t?`?${t}`:""}function at(i){let e=new URLSearchParams;i.kind&&i.kind.length>0&&e.set("kind",i.kind.join(",")),i.from&&e.set("from",i.from),i.to&&e.set("to",i.to);let t=e.toString();return t?`?${t}`:""}function lt(i){let e=new URLSearchParams;i.severity&&e.set("severity",i.severity),i.analyzerId&&e.set("analyzerId",i.analyzerId),i.node&&e.set("node",i.node);let t=e.toString();return t?`?${t}`:""}function pt(i){if(typeof i!="object"||i===null)return null;let e=i;if(e.ok!==!1)return null;let t=e.error;if(typeof t!="object"||t===null)return null;let n=t;return typeof n.code!="string"||typeof n.message!="string"?null:{ok:!1,error:{code:n.code,message:n.message,details:n.details}}}var dt="data.json",ct="data.meta.json",re=class{constructor(e=globalThis.fetch.bind(globalThis),t){this.fetchImpl=e;this.kindRegistry=t??s(w)}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(mt(e))return this.kindRegistry.ingest(t.nodes.kindRegistry),t.nodes;let n=await this.loadData(),r=n.issues,o=n.nodes;if(e.kind&&e.kind.length>0){let R=new Set(e.kind);o=o.filter(x=>R.has(x.kind))}if(e.path){let R=ht(e.path);o=o.filter(x=>R.test(x.path))}if(e.hasIssues===!0){let R=Ve(r);o=o.filter(x=>R.has(x.path))}else if(e.hasIssues===!1){let R=Ve(r);o=o.filter(x=>!R.has(x.path))}let f=o.length,_=e.offset??0,T=e.limit??1e3,b=o.slice(_,_+T);return this.kindRegistry.ingest(t.nodes.kindRegistry),{schemaVersion:"1",kind:"nodes",items:b,filters:{kind:e.kind??null,hasIssues:e.hasIssues??null,path:e.path?[e.path]:null},counts:{total:f,returned:b.length,page:{offset:_,limit:T}},kindRegistry:t.nodes.kindRegistry}}async getNode(e,t={}){let[n,r]=await Promise.all([this.loadData(),this.loadMeta()]),o=n.nodes.find(b=>b.path===e);if(!o)return null;let f=n.links.filter(b=>b.target===e),_=n.links.filter(b=>b.source===e),T=n.issues.filter(b=>b.nodeIds.includes(e));return this.kindRegistry.ingest(r.nodes.kindRegistry),{schemaVersion:"1",kind:"node",item:o,links:{incoming:f,outgoing:_},issues:T,kindRegistry:r.nodes.kindRegistry}}async listLinks(e={}){let t=await this.loadMeta();if(ut(e))return this.kindRegistry.ingest(t.links.kindRegistry),t.links;let r=(await this.loadData()).links;if(e.kind&&e.kind.length>0){let o=new Set(e.kind);r=r.filter(f=>o.has(f.kind))}return e.from&&(r=r.filter(o=>o.source===e.from)),e.to&&(r=r.filter(o=>o.target===e.to)),this.kindRegistry.ingest(t.links.kindRegistry),{schemaVersion:"1",kind:"links",items:r,filters:{kind:e.kind??null,from:e.from??null,to:e.to??null},counts:{total:r.length,returned:r.length},kindRegistry:t.links.kindRegistry}}async listIssues(e={}){let t=await this.loadMeta();if(gt(e))return this.kindRegistry.ingest(t.issues.kindRegistry),t.issues;let r=(await this.loadData()).issues;return e.severity&&(r=r.filter(o=>o.severity===e.severity)),e.analyzerId&&(r=r.filter(o=>o.analyzerId===e.analyzerId)),e.node&&(r=r.filter(o=>o.nodeIds.includes(e.node))),this.kindRegistry.ingest(t.issues.kindRegistry),{schemaVersion:"1",kind:"issues",items:r,filters:{severity:e.severity??null,analyzerId:e.analyzerId??null,node:e.node??null},counts:{total:r.length,returned:r.length},kindRegistry:t.issues.kindRegistry}}async loadGraph(e="ascii"){if(e!=="ascii")throw new c("bad-query",P.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}async setFavorite(e){throw new c("demo-readonly","Favorites are not available in demo mode (static bundle is immutable).")}async unsetFavorite(e){throw new c("demo-readonly","Favorites are not available in demo mode (static bundle is immutable).")}async setPluginEnabled(e,t){throw new c("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async setPluginExtensionEnabled(e,t,n){throw new c("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async applyPluginChanges(e){throw new c("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async runScan(){throw new c("demo-readonly","Manual scan is not available in demo mode (static bundle is immutable).")}async getPreferences(){return{updateCheck:{enabled:!0}}}async setPreferences(e){throw new c("demo-readonly","Preference toggles are not available in demo mode (static bundle is immutable).")}async getProjectPreferences(){return{scan:{extraFolders:[],referencePaths:[]}}}async setProjectPreferences(e){throw new c("demo-readonly","Project preferences are not available in demo mode (static bundle is immutable).")}async lookupContribution(){return null}async bumpSidecar(e,t={}){throw new c("demo-readonly","Sidecar bump is not available in demo mode (static bundle is immutable).")}async getUpdateStatus(){return{current:(await this.loadMeta()).health.implVersion,latest:null,isOutdated:!1,checkedAt:null,shownAt:null}}async getRegisteredAnnotations(){return[]}events(){return ce}loadMeta(){return this.metaPromise||(this.metaPromise=this.fetchJson(ct)),this.metaPromise}loadData(){return this.dataPromise||(this.dataPromise=this.fetchJson(dt)),this.dataPromise}async fetchJson(e){let t;try{t=await this.fetchImpl(e)}catch(n){let r=n instanceof Error?n.message:String(n);throw new c("internal",P.errors.demoFetchFailed(e,r))}if(!t.ok)throw new c("internal",P.errors.demoFetchFailed(e,`HTTP ${t.status}`));try{return await t.json()}catch(n){let r=n instanceof Error?n.message:String(n);throw new c("internal",P.errors.demoParseFailed(e,r))}}};function mt(i){return!(i.kind&&i.kind.length>0||i.hasIssues!==void 0||i.path||i.offset!==void 0&&i.offset!==0||i.limit!==void 0)}function ut(i){return!(i.kind&&i.kind.length>0||i.from||i.to)}function gt(i){return!(i.severity||i.analyzerId||i.node)}function Ve(i){let e=new Set;for(let t of i)for(let n of t.nodeIds)e.add(n);return e}function ht(i){let t=i.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${t}$`)}function Xe(){let i=s($);if(i==="live")return new ne(s(j),s(F));if(i==="demo")return new re;let e=i;throw new Error(P.errors.unknownMode(String(e)))}var Ge="search",We="kinds",Ye="stabilities",Ze="hasIssues",qe="staleOnly",et="favoritesOnly",oe=class i{filters=s(Ue);router=s(Te);activatedRoute=s(we);kindRegistry=s(w);destroyRef=s(me);suppressUrlReadback=!1;constructor(){this.applyUrlToFilters(this.currentParams()),this.router.events.pipe(je(this.destroyRef)).subscribe(e=>{if(e instanceof Ae){if(this.suppressUrlReadback)return;this.applyUrlToFilters(this.currentParams())}}),J(()=>{let e=this.computeQueryParams();this.writeQueryParams(e)})}currentParams(){let e=this.router.parseUrl(this.router.url),t=new URLSearchParams;for(let[n,r]of Object.entries(e.queryParams))Array.isArray(r)?t.set(n,r.join(",")):r!=null&&t.set(n,String(r));return this.activatedRoute,t}applyUrlToFilters(e){let t=e.get(Ge)??"";t!==this.filters.searchText()&&this.filters.setSearchText(t);let n=ft(e.get(We),this.kindRegistry.kinds().map(T=>T.name));tt(n,this.filters.selectedKinds())||this.filters.setKinds(n);let r=yt(e.get(Ye));tt(r,this.filters.selectedStabilities())||this.filters.setStabilities(r);let o=e.get(Ze)==="true";o!==this.filters.hasIssuesOnly()&&this.filters.setHasIssuesOnly(o);let f=e.get(qe)==="true";f!==this.filters.staleOnly()&&this.filters.setStaleOnly(f);let _=e.get(et)==="true";_!==this.filters.favoritesOnly()&&this.filters.setFavoritesOnly(_)}computeQueryParams(){let e=this.filters.searchText().trim(),t=this.filters.selectedKinds(),n=this.filters.selectedStabilities(),r=this.filters.hasIssuesOnly(),o=this.filters.staleOnly(),f=this.filters.favoritesOnly();return{[Ge]:e.length>0?e:null,[We]:t.length>0?t.join(","):null,[Ye]:n.length>0?n.join(","):null,[Ze]:r?"true":null,[qe]:o?"true":null,[et]:f?"true":null}}writeQueryParams(e){let t=this.currentParams(),n=new Map(Object.entries(e)),r=!1;for(let[o,f]of n)if((t.get(o)??null)!==f){r=!0;break}r&&(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||i)};static \u0275prov=k({token:i,factory:i.\u0275fac,providedIn:"root"})};function ft(i,e){if(!i)return[];let t=new Set(e);return i.split(",").map(n=>n.trim()).filter(n=>t.has(n))}function yt(i){if(!i)return[];let e=new Set(Fe);return i.split(",").map(t=>t.trim()).filter(t=>e.has(t))}function tt(i,e){if(i.length!==e.length)return!1;for(let t=0;t<i.length;t++)if(i[t]!==e[t])return!1;return!0}var it={healthFailed:i=>`ProjectInfoService: /api/health probe failed (${i})`};var C=class i{dataSource=s(Z);status=S(null);cwd=m(()=>this.status()?.cwd??null);implVersion=m(()=>this.status()?.implVersion??null);async load(){try{let e=await this.dataSource.health();this.status.set(e)}catch(e){let t=e instanceof Error?e.message:String(e);console.warn(it.healthFailed(t))}}static \u0275fac=function(t){return new(t||i)};static \u0275prov=k({token:i,factory:i.\u0275fac,providedIn:"root"})};var se=class i extends G{title=s(Se);projectInfo=s(C);lastSnapshot=S(null);constructor(){super(),J(()=>{let e=this.lastSnapshot();this.projectInfo.implVersion(),e&&this.applyTitle(e)})}updateTitle(e){this.lastSnapshot.set(e),this.applyTitle(e)}applyTitle(e){let t=this.buildTitle(e),n=this.projectInfo.implVersion();if(!t){this.title.setTitle(n?`${v.brand} v${n}`:v.brand);return}this.title.setTitle(v.documentTitle(t,n))}static \u0275fac=function(t){return new(t||i)};static \u0275prov=k({token:i,factory:i.\u0275fac,providedIn:"root"})};function vt(...i){for(let e of i)Promise.resolve(e.load())}var nt={providers:[ue(),Ee(Qe,Me()),{provide:G,useClass:se},Pe(ke()),De({}),Q(async()=>{let i=s(Oe),[{default:e},{definePreset:t}]=await Promise.all([import("./chunk-FWFBO7KA.js"),import("./chunk-UJOZYR5I.js")]),n=t(e,{semantic:{primary:{50:"#F5F3FF",100:"#EDE9FE",200:"#DDD6FE",300:"#C4B5FD",400:"#A78BFA",500:"#8B5CF6",600:"#7C3AED",700:"#6D28D9",800:"#4C1D95",900:"#2E1065",950:"#1E0A4D"}}});i.setThemeConfig({theme:{preset:n,options:{darkModeSelector:".app-dark"}}})}),{provide:$,useFactory:$e},{provide:Z,useFactory:Xe},Q(()=>{vt(s(q),s(te),s(C))}),Q(()=>{s(oe),s(Be)})]};var O={toggleToAuto:"Switch to auto theme (follow system)",toggleToLight:"Switch to light theme",toggleToDark:"Switch to dark theme",currentAuto:"Auto theme (follows system)",currentLight:"Light theme",currentDark:"Dark theme"};var rt={body:"You are viewing a static demo of skill-map's UI. Install it:",installCommand:"npm i -g @skill-map/cli",homeCta:"\u2190 Back to skill-map.dev",homeHref:"/",dismissAria:"Dismiss demo banner"};function It(i,e){if(i&1){let t=V();l(0,"div",0),y(1,"span",1),l(2,"p",2),u(3),l(4,"code",3),u(5),p()(),l(6,"a",4),u(7),p(),l(8,"p-button",5),E("onClick",function(){z(t);let r=I();return H(r.dismiss())}),p()()}if(i&2){let t=I();a(3),X(" ",t.texts.body," "),a(2),h(t.texts.installCommand),a(),g("href",t.texts.homeHref,ge),a(),h(t.texts.homeCta),a(),g("ariaLabel",t.texts.dismissAria)("text",!0)("rounded",!0)}}var ot="sm.demoBannerDismissed",ae=class i{mode=s($);texts=rt;dismissed=S(this.readDismissed());visible=m(()=>this.mode==="demo"&&!this.dismissed());dismiss(){this.dismissed.set(!0);try{globalThis.localStorage?.setItem(ot,"1")}catch{}}readDismissed(){if(this.mode!=="demo")return!0;try{return globalThis.localStorage?.getItem(ot)==="1"}catch{return!1}}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=K({type:i,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","fa-solid","fa-circle-info"],[1,"demo-banner__body"],["data-testid","demo-banner-install",1,"demo-banner__cmd"],["data-testid","demo-banner-home",1,"demo-banner__home",3,"href"],["icon","fa-solid fa-xmark","severity","secondary","size","small","data-testid","demo-banner-dismiss",3,"onClick","ariaLabel","text","rounded"]],template:function(t,n){t&1&&L(0,It,9,7,"div",0),t&2&&N(n.visible()?0:-1)},dependencies:[Y,W],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}.demo-banner__cmd[_ngcontent-%COMP%]{font-family:var(--sm-font-mono);background:var(--p-content-background);border:1px solid var(--p-content-border-color);border-radius:var(--sm-radius-md);padding:.05rem .4rem;font-size:.85em;margin-left:.25rem}.demo-banner__home[_ngcontent-%COMP%]{color:var(--p-primary-color);font-weight:500;text-decoration:none;white-space:nowrap}.demo-banner__home[_ngcontent-%COMP%]:hover, .demo-banner__home[_ngcontent-%COMP%]:focus-visible{text-decoration:underline}"],changeDetection:0})};var Pt=()=>[import("./chunk-IN3Q4IBM.js").then(i=>i.SettingsModal)];function kt(i,e){if(i&1&&(l(0,"span",10),u(1),p()),i&2){let t=I();g("pTooltip",t.versionTooltip()),A("aria-label",t.versionA11y()),a(),h(t.versionLabel())}}function St(i,e){if(i&1&&(l(0,"a",12),y(1,"i",26),l(2,"span"),u(3),p()()),i&2){let t=I();g("pTooltip",t.updateChipTooltip()),A("aria-label",t.updateChipA11y()),a(3),h(t.updateChipText)}}function At(i,e){if(i&1&&(l(0,"p",13),u(1),p()),i&2){let t=I();a(),h(t.rootLabel())}}function wt(i,e){if(i&1){let t=V();l(0,"sm-settings-modal",27),E("visibleChange",function(r){z(t);let o=I();return H(o.settingsOpen.set(r))}),p()}if(i&2){let t=I();g("visible",t.settingsOpen())}}var le=class i{loader=s(q);theme=s(Ke);projectInfo=s(C);scanTrigger=s(Je);updateCheck=s(te);texts=v;settingsTexts=He;settingsOpen=S(!1);openSettings(){this.settingsOpen.set(!0)}scanning=this.scanTrigger.scanning;scanError=this.scanTrigger.scanError;triggerScan(){return this.scanTrigger.run()}updateChipText=M.available;updateChipTooltip=m(()=>M.tooltip(this.updateCheck.latest()??""));updateChipA11y=m(()=>M.a11yLabel(this.updateCheck.latest()??""));versionLabel=m(()=>M.versionLabel(this.updateCheck.current()??""));versionTooltip=m(()=>M.versionTooltip(this.updateCheck.current()??""));versionA11y=m(()=>M.versionA11yLabel(this.updateCheck.current()??""));count=this.loader.count;linkCount=m(()=>this.loader.scan()?.links?.length??0);graphInfoTooltip=m(()=>v.badge.graphInfo(this.count(),this.linkCount()));graphInfoA11y=m(()=>v.badge.graphInfoA11y(this.count(),this.linkCount()));rootLabel=m(()=>{let e=this.projectInfo.cwd();if(e&&e!==".")return e;let t=this.loader.scan()?.roots??[];if(t.length===0)return"";let n=t[0].replace(/[\\/]+$/,"");return!n||n==="."?"":n});isDevMode=ve();themeMode=this.theme.mode;markSrc=m(()=>this.theme.resolved()==="dark"?"skill-map-mark-light.svg":"skill-map-mark-dark.svg");themeIcon=m(()=>{switch(this.themeMode()){case"auto":return"pi pi-desktop";case"light":return"pi pi-sun";case"dark":return"fa-regular fa-moon"}});themeLabel=m(()=>{switch(this.themeMode()){case"auto":return O.toggleToLight;case"light":return O.toggleToDark;case"dark":return O.toggleToAuto}});themeTooltip=m(()=>{switch(this.themeMode()){case"auto":return O.currentAuto;case"light":return O.currentLight;case"dark":return O.currentDark}});toggleTheme(){this.theme.toggle()}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=K({type:i,selectors:[["sm-root"]],decls:40,vars:35,consts:[["role","alert","data-testid","viewport-warning",1,"viewport-warning"],[1,"viewport-warning__card"],["aria-hidden","true",1,"fa-solid","fa-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"],["width","32","height","32","priority","","alt","","aria-hidden","true",1,"shell__brand-mark",3,"ngSrc"],["tooltipPosition","bottom","data-testid","shell-version",1,"shell__version",3,"pTooltip"],[1,"shell__alpha"],["href","https://www.npmjs.com/package/@skill-map/cli","target","_blank","rel","noopener noreferrer","tooltipPosition","bottom","data-testid","shell-update-chip",1,"shell__update-chip",3,"pTooltip"],[1,"shell__tag"],["data-testid","shell-nav",1,"shell__nav"],["type","button","tooltipPosition","bottom","tabindex","-1","aria-disabled","true","data-testid","nav-search",1,"shell__nav-search",3,"pTooltip"],["aria-hidden","true",1,"pi","pi-search"],["slot","topbar.nav.start",3,"node"],["routerLink","/graph","routerLinkActive","is-active","data-testid","nav-graph"],["type","button","tooltipPosition","bottom","tabindex","-1","aria-disabled","true","data-testid","nav-list",1,"shell__nav-disabled",3,"pTooltip"],[1,"shell__actions"],["type","button","tooltipPosition","bottom","data-testid","shell-refresh",1,"shell__refresh",3,"click","pTooltip","disabled"],["aria-hidden","true",1,"pi","pi-sync"],["severity","secondary","size","small","data-testid","action-theme-toggle",3,"onClick","icon","ariaLabel","pTooltip","text","rounded"],["icon","pi pi-sliders-h","severity","secondary","size","small","data-testid","action-settings",3,"onClick","ariaLabel","pTooltip","text","rounded"],[1,"shell__main"],["aria-hidden","true",1,"pi","pi-download"],[3,"visibleChange","visible"]],template:function(t,n){if(t&1&&(l(0,"div",0)(1,"div",1),y(2,"i",2),l(3,"h2",3),u(4),p(),l(5,"p",4),u(6),p(),l(7,"p",5),u(8),p()()(),l(9,"div",6),y(10,"sm-demo-banner"),l(11,"header",7)(12,"div",8),y(13,"img",9),l(14,"div")(15,"h1"),u(16),L(17,kt,2,3,"span",10),l(18,"span",11),u(19),p(),L(20,St,4,3,"a",12),p(),L(21,At,2,1,"p",13),p()(),l(22,"nav",14)(23,"button",15),y(24,"i",16),p(),y(25,"sm-view-contributions-host",17),l(26,"a",18),u(27),p(),l(28,"button",19),u(29),p()(),l(30,"div",20)(31,"button",21),E("click",function(){return n.triggerScan()}),y(32,"i",22),p(),l(33,"p-button",23),E("onClick",function(){return n.toggleTheme()}),p(),l(34,"p-button",24),E("onClick",function(){return n.openSettings()}),p()()(),l(35,"main",25),y(36,"router-outlet"),p(),he(37,wt,1,1),fe(38,37,Pt),p()),t&2){let r;a(4),h(n.texts.viewportWarning.title),a(2),h(n.texts.viewportWarning.subtitle),a(2),h(n.texts.viewportWarning.body),a(5),g("ngSrc",n.markSrc()),a(3),X(" ",n.texts.brand," "),a(),N((r=n.updateCheck.current())?17:-1,r),a(),A("aria-label",n.texts.alpha),a(),h(n.texts.alpha),a(),N(n.updateCheck.isOutdated()&&!n.isDevMode?20:-1),a(),N(n.rootLabel()?21:-1),a(),A("aria-label",n.texts.a11y.viewSwitcher),a(),g("pTooltip",n.texts.nav.searchTooltip),A("aria-label",n.texts.nav.searchLabel),a(2),g("node",null),a(2),h(n.texts.nav.graph),a(),g("pTooltip",n.texts.nav.listTooltip),A("aria-label",n.texts.nav.listLabel),a(),h(n.texts.nav.list),a(2),pe("is-spinning",n.scanning()),g("pTooltip",n.graphInfoTooltip())("disabled",n.scanning()),A("aria-label",n.graphInfoA11y()),a(),pe("pi-spin",n.scanning()),a(),g("icon",n.themeIcon())("ariaLabel",n.themeLabel())("pTooltip",n.themeTooltip())("text",!0)("rounded",!0),a(),g("ariaLabel",n.settingsTexts.a11y.triggerLabel)("pTooltip",n.settingsTexts.triggerTooltip)("text",!0)("rounded",!0),a(4),ye(n.settingsOpen())}},dependencies:[Ce,Re,xe,Y,W,Ne,Le,be,ae,ze],styles:["[_nghost-%COMP%]{display:block;height:100dvh;--shell-topbar-bg: #FFFFFF;--shell-topbar-border: var(--sm-violet-100);--shell-topbar-text: var(--sm-violet-800);--shell-topbar-text-strong: var(--sm-violet-900);--shell-topbar-text-muted: var(--sm-violet-600);--shell-topbar-hover-bg: color-mix(in srgb, var(--sm-violet-500) 10%, transparent);--shell-topbar-active-bg: var(--sm-violet-100);--shell-topbar-active-text: var(--sm-violet-800);--shell-topbar-badge-bg: var(--sm-violet-100)}.app-dark[_nghost-%COMP%], .app-dark [_nghost-%COMP%]{--shell-topbar-bg: #1A1B22;--shell-topbar-border: color-mix(in srgb, var(--sm-violet-300) 8%, transparent);--shell-topbar-text: var(--sm-violet-100);--shell-topbar-text-strong: var(--sm-violet-100);--shell-topbar-text-muted: var(--sm-violet-300);--shell-topbar-hover-bg: color-mix(in srgb, var(--sm-violet-400) 12%, transparent);--shell-topbar-active-bg: color-mix(in srgb, var(--sm-violet-500) 22%, transparent);--shell-topbar-active-text: var(--sm-violet-100);--shell-topbar-badge-bg: color-mix(in srgb, var(--sm-violet-500) 14%, transparent)}.shell[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100dvh}.shell__topbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;background:color-mix(in srgb,var(--shell-topbar-bg) 85%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--shell-topbar-border);color:var(--shell-topbar-text)}.shell__brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem}.shell__brand-mark[_ngcontent-%COMP%]{width:2rem;height:2rem;display:block}.shell__brand[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{margin:0;font-size:1.05rem;font-weight:600;letter-spacing:-.01em;color:var(--shell-topbar-text-strong)}.shell__alpha[_ngcontent-%COMP%]{font-family:var(--sm-font-display-brand);font-weight:600;font-size:10px;line-height:1;letter-spacing:.06em;text-transform:uppercase;color:#ad322b;background:#ad322b14;border-radius:var(--sm-radius-sm);padding:4px 8px;margin-left:8px;-webkit-user-select:none;user-select:none;display:inline-block;vertical-align:middle;white-space:nowrap}.app-dark[_nghost-%COMP%] .shell__alpha[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__alpha[_ngcontent-%COMP%]{color:#e07570;background:#cf464024}.shell__version[_ngcontent-%COMP%]{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:var(--sm-radius-sm);font-family:var(--p-monospace-font-family);font-size:11px;line-height:1;font-weight:500;letter-spacing:.02em;color:var(--p-text-muted-color);background:var(--p-content-hover-background);vertical-align:middle;-webkit-user-select:text;user-select:text}.shell__update-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:3px 8px;font-size:11px;line-height:1;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--p-primary-color);background:var(--p-primary-50);border:1px solid var(--p-primary-200);border-radius:var(--sm-radius-pill);text-decoration:none;transition:background-color .12s ease,color .12s ease;vertical-align:middle}.shell__update-chip[_ngcontent-%COMP%]:hover, .shell__update-chip[_ngcontent-%COMP%]:focus-visible{background:var(--p-primary-100);color:var(--p-primary-700)}.shell__update-chip[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:12px;transform:translateY(1px)}.app-dark[_nghost-%COMP%] .shell__update-chip[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__update-chip[_ngcontent-%COMP%]{color:var(--p-primary-300);background:#ffffff0a;border-color:var(--p-primary-700)}.shell__tag[_ngcontent-%COMP%]{margin:.35rem 0 0;font-size:.72rem;color:var(--shell-topbar-text-muted);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(--shell-topbar-text-muted);transition:background .15s ease,color .15s ease}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong)}.shell__nav[_ngcontent-%COMP%] a.is-active[_ngcontent-%COMP%]{background:var(--shell-topbar-active-bg);color:var(--shell-topbar-active-text)}.shell__nav-disabled[_ngcontent-%COMP%]{padding:.5rem .9rem;border:none;background:transparent;border-radius:.5rem;font-size:.9rem;font-weight:500;color:var(--shell-topbar-text-muted);cursor:not-allowed;opacity:.55;font-family:inherit}.shell__nav-search[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:none;border-radius:.5rem;background:transparent;color:var(--shell-topbar-text-muted);cursor:not-allowed;opacity:.55;transition:background .15s ease,color .15s ease,opacity .15s ease}.shell__nav-search[_ngcontent-%COMP%]:hover:not([aria-disabled=true]){background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong);opacity:1}.shell__nav-search[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:.95rem}.shell__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;--p-button-text-secondary-color: var(--shell-topbar-text-muted);--p-button-text-secondary-hover-color: var(--shell-topbar-text-strong);--p-button-text-secondary-hover-background: var(--shell-topbar-hover-bg);--p-button-text-secondary-active-color: var(--shell-topbar-text-strong);--p-button-text-secondary-active-background: var(--shell-topbar-hover-bg)}.shell__refresh[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:var(--sm-radius-pill);background:transparent;color:var(--shell-topbar-text-muted);cursor:pointer;transition:background .15s ease,color .15s ease}.shell__refresh[_ngcontent-%COMP%]:hover:not(:disabled), .shell__refresh[_ngcontent-%COMP%]:focus-visible:not(:disabled){background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong);outline:none}.shell__refresh[_ngcontent-%COMP%]:disabled{cursor:progress;opacity:.7}.shell__refresh[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:1rem}.shell__main[_ngcontent-%COMP%]{flex:1;min-height:0;overflow-y:auto;width:100%}@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}}.viewport-warning[_ngcontent-%COMP%]{display:none}@media(max-width:767px){.viewport-warning[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--sm-bg-content)}.viewport-warning__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.85rem;max-width:22rem}.viewport-warning__icon[_ngcontent-%COMP%]{font-size:3rem;color:var(--p-primary-color);margin-bottom:.25rem}.viewport-warning__title[_ngcontent-%COMP%]{margin:0;font-size:1.35rem;font-weight:700;color:var(--p-text-color);line-height:1.25}.viewport-warning__subtitle[_ngcontent-%COMP%]{margin:0;font-size:1rem;font-weight:500;color:var(--p-primary-color);line-height:1.35}.viewport-warning__body[_ngcontent-%COMP%]{margin:0;color:var(--p-text-muted-color);line-height:1.5;font-size:.9rem}.shell[_ngcontent-%COMP%]{display:none}}"],changeDetection:0})};_e(le,nt).catch(i=>console.error(i));
1
+ import{a as Be,b as ee,c as ze}from"./chunk-RR36XBDS.js";import{a as Ae,b as we,c as Ce,d as G,e as Te,f as Re,g as xe,h as Ee,i as Me,j as Le,k as Ne,u as w,v as Fe,w as Ue}from"./chunk-533YMAY3.js";import{a as M,b as te,c as He,d as Je,e as Ke}from"./chunk-UVILXZ5L.js";import{Ca as he,Fa as Q,Ia as fe,J as k,Ja as ye,Ka as A,Mc as Oe,N as U,Na as L,Nc as De,O as s,Oa as N,T as z,Ta as g,Tb as m,U as H,Ua as l,Va as p,Wa as y,Z as me,ac as ve,bd as W,ca as ue,cd as Y,da as S,db as V,ea as J,f as ce,fb as E,gd as je,hb as I,id as Z,jd as c,kd as $,la as ge,ld as $e,m as D,md as F,nd as q,oa as a,rc as be,sc as _e,tb as pe,tc as Ie,uc as j,vc as Pe,wa as K,wb as u,wc as ke,xb as h,xc as Se,yb as X}from"./chunk-J3YWUNFO.js";import"./chunk-H2J55DNK.js";import"./chunk-Q7L6LLAK.js";var de="skill-map",v={brand:de,alpha:"ALPHA - do not use in production",nav:{graph:"Graph",list:"List",searchLabel:"Search nodes (coming soon)",searchTooltip:"Search (coming soon)",listLabel:"List view (coming soon)",listTooltip:"List (coming soon)"},actions:{},badge:{nodes:"nodes",graphInfo:(i,e)=>`Run scan
2
+ ${i.toLocaleString()} nodes \xB7 ${e.toLocaleString()} links`,graphInfoA11y:(i,e)=>`Graph contains ${i} nodes and ${e} links`},a11y:{viewSwitcher:"View switcher"},viewportWarning:{title:"Looks like you're on a small screen",subtitle:"skill-map is built for desktop",body:"The graph and inspector need room to breathe. Pop this open on a screen at least 768px wide. See you there."},documentTitle:(i,e)=>e?`${i} - ${de} v${e}`:`${i} - ${de}`};var Qe=[{path:"",pathMatch:"full",redirectTo:"graph"},{path:"graph",loadComponent:()=>import("./chunk-O546Z3K4.js").then(i=>i.GraphView),title:v.nav.graph},{path:"list",loadComponent:()=>import("./chunk-BK4M46IZ.js").then(i=>i.ListView),title:v.nav.list},{path:"**",redirectTo:"graph"}];var P={errors:{unknownMode:i=>`SKILL_MAP_MODE: unknown value "${i}"`,restPrefix:i=>`BFF error [${i}]: `,malformedResponse:"BFF returned a malformed response",demoFetchFailed:(i,e)=>`Demo bundle fetch failed for "${i}": ${e}`,demoParseFailed:(i,e)=>`Demo bundle parse failed for "${i}": ${e}`,graphFormatNotInDemo:i=>`Graph format "${i}" is not bundled in demo mode (only "ascii").`}};function ie(i){let e=new TextEncoder().encode(i),t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}var d="/api",ne=class i{http;ws;kindRegistry;contributionsRegistry;constructor(e,t,n,r){this.http=e??s(j),this.ws=t??s(F),this.kindRegistry=n??s(w),this.contributionsRegistry=r??s(ee)}async health(){return this.getJson(`${d}/health`)}async loadScan(){let[e]=await Promise.all([this.getJson(`${d}/scan`),this.listNodes({limit:0}).catch(()=>null)]);return e}async runScan(){return this.patchJson(`${d}/scan`,{},"POST")}async listNodes(e={}){let t=st(e),n=await this.getJson(`${d}/nodes${t}`);return this.ingestRegistry(n.kindRegistry),this.ingestContributionsRegistry(n.contributionsRegistry),n}async getNode(e,t={}){let n=ie(e),r=t.includeBody?"?include=body":"";try{let o=await this.getJson(`${d}/nodes/${n}${r}`);return this.ingestRegistry(o.kindRegistry),this.ingestContributionsRegistry(o.contributionsRegistry),o}catch(o){if(o instanceof c&&o.code==="not-found")return null;throw o}}async listLinks(e={}){let t=at(e),n=await this.getJson(`${d}/links${t}`);return this.ingestRegistry(n.kindRegistry),this.ingestContributionsRegistry(n.contributionsRegistry),n}async listIssues(e={}){let t=lt(e),n=await this.getJson(`${d}/issues${t}`);return this.ingestRegistry(n.kindRegistry),this.ingestContributionsRegistry(n.contributionsRegistry),n}async loadGraph(e="ascii"){let t=`${d}/graph?format=${encodeURIComponent(e)}`;try{return await D(this.http.get(t,{responseType:"text"}))}catch(n){throw this.translateError(n)}}async loadConfig(){let e=await this.getJson(`${d}/config`);return this.ingestRegistry(e.kindRegistry),this.ingestContributionsRegistry(e.contributionsRegistry),e.value}async listPlugins(){let e=await this.getJson(`${d}/plugins`);return this.ingestRegistry(e.kindRegistry),this.ingestContributionsRegistry(e.contributionsRegistry),e}async setPluginEnabled(e,t){let n=await this.patchJson(`${d}/plugins/${encodeURIComponent(e)}`,{enabled:t});return this.ingestRegistry(n.kindRegistry),this.ingestContributionsRegistry(n.contributionsRegistry),n}async setPluginExtensionEnabled(e,t,n){let r=await this.patchJson(`${d}/plugins/${encodeURIComponent(e)}/extensions/${encodeURIComponent(t)}`,{enabled:n});return this.ingestRegistry(r.kindRegistry),this.ingestContributionsRegistry(r.contributionsRegistry),r}async applyPluginChanges(e){let t=await this.patchJson(`${d}/plugins`,{changes:e});return this.ingestRegistry(t.kindRegistry),this.ingestContributionsRegistry(t.contributionsRegistry),t}async getPreferences(){return await this.getJson(`${d}/preferences`)}async setPreferences(e){return await this.patchJson(`${d}/preferences`,e)}async getProjectPreferences(){return await this.getJson(`${d}/project-preferences`)}async setProjectPreferences(e){return await this.patchJson(`${d}/project-preferences`,e)}async setFavorite(e){let t=ie(e);try{await D(this.http.put(`${d}/favorites/${t}`,null))}catch(n){throw this.translateError(n)}}async unsetFavorite(e){let t=ie(e);try{await D(this.http.delete(`${d}/favorites/${t}`))}catch(n){throw this.translateError(n)}}async bumpSidecar(e,t={}){let n={nodePath:e};return t.force!==void 0&&(n.force=t.force),t.confirm!==void 0&&(n.confirm=t.confirm),this.patchJson(`${d}/sidecar/bump`,n,"POST")}async getUpdateStatus(){return this.getJson(`${d}/update-status`)}async getRegisteredAnnotations(){return(await this.getJson(`${d}/annotations/registered`)).items}ingestRegistry(e){e&&this.kindRegistry.ingest(e)}ingestContributionsRegistry(e){this.contributionsRegistry.setRegistry(e)}async lookupContribution(e,t,n){let r=new URLSearchParams({path:n});try{return(await this.getJson(`${d}/contributions/${encodeURIComponent(e)}/${encodeURIComponent(t)}?${r.toString()}`)).items[0]??null}catch{return null}}events(){return this.ws.events$}async getJson(e){try{return await D(this.http.get(e))}catch(t){throw this.translateError(t)}}async patchJson(e,t,n="PATCH"){try{let r=n==="POST"?this.http.post(e,t):this.http.patch(e,t);return await D(r)}catch(r){throw this.translateError(r)}}translateError(e){if(e instanceof c)return e;if(e instanceof Ie){let n=pt(e.error);return n?new c(n.error.code,n.error.message,n.error.details):new c("internal",e.message||P.errors.malformedResponse)}let t=e instanceof Error?e.message:String(e);return new c("internal",t)}static \u0275fac=function(t){return new(t||i)(U(j),U(F),U(w),U(ee))};static \u0275prov=k({token:i,factory:i.\u0275fac,providedIn:"root"})};function st(i){let e=new URLSearchParams;i.kind&&i.kind.length>0&&e.set("kind",i.kind.join(",")),i.hasIssues!==void 0&&e.set("hasIssues",String(i.hasIssues)),i.path&&e.set("path",i.path),i.limit!==void 0&&e.set("limit",String(i.limit)),i.offset!==void 0&&e.set("offset",String(i.offset));let t=e.toString();return t?`?${t}`:""}function at(i){let e=new URLSearchParams;i.kind&&i.kind.length>0&&e.set("kind",i.kind.join(",")),i.from&&e.set("from",i.from),i.to&&e.set("to",i.to);let t=e.toString();return t?`?${t}`:""}function lt(i){let e=new URLSearchParams;i.severity&&e.set("severity",i.severity),i.analyzerId&&e.set("analyzerId",i.analyzerId),i.node&&e.set("node",i.node);let t=e.toString();return t?`?${t}`:""}function pt(i){if(typeof i!="object"||i===null)return null;let e=i;if(e.ok!==!1)return null;let t=e.error;if(typeof t!="object"||t===null)return null;let n=t;return typeof n.code!="string"||typeof n.message!="string"?null:{ok:!1,error:{code:n.code,message:n.message,details:n.details}}}var dt="data.json",ct="data.meta.json",re=class{constructor(e=globalThis.fetch.bind(globalThis),t){this.fetchImpl=e;this.kindRegistry=t??s(w)}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(mt(e))return this.kindRegistry.ingest(t.nodes.kindRegistry),t.nodes;let n=await this.loadData(),r=n.issues,o=n.nodes;if(e.kind&&e.kind.length>0){let R=new Set(e.kind);o=o.filter(x=>R.has(x.kind))}if(e.path){let R=ht(e.path);o=o.filter(x=>R.test(x.path))}if(e.hasIssues===!0){let R=Ve(r);o=o.filter(x=>R.has(x.path))}else if(e.hasIssues===!1){let R=Ve(r);o=o.filter(x=>!R.has(x.path))}let f=o.length,_=e.offset??0,T=e.limit??1e3,b=o.slice(_,_+T);return this.kindRegistry.ingest(t.nodes.kindRegistry),{schemaVersion:"1",kind:"nodes",items:b,filters:{kind:e.kind??null,hasIssues:e.hasIssues??null,path:e.path?[e.path]:null},counts:{total:f,returned:b.length,page:{offset:_,limit:T}},kindRegistry:t.nodes.kindRegistry}}async getNode(e,t={}){let[n,r]=await Promise.all([this.loadData(),this.loadMeta()]),o=n.nodes.find(b=>b.path===e);if(!o)return null;let f=n.links.filter(b=>b.target===e),_=n.links.filter(b=>b.source===e),T=n.issues.filter(b=>b.nodeIds.includes(e));return this.kindRegistry.ingest(r.nodes.kindRegistry),{schemaVersion:"1",kind:"node",item:o,links:{incoming:f,outgoing:_},issues:T,kindRegistry:r.nodes.kindRegistry}}async listLinks(e={}){let t=await this.loadMeta();if(ut(e))return this.kindRegistry.ingest(t.links.kindRegistry),t.links;let r=(await this.loadData()).links;if(e.kind&&e.kind.length>0){let o=new Set(e.kind);r=r.filter(f=>o.has(f.kind))}return e.from&&(r=r.filter(o=>o.source===e.from)),e.to&&(r=r.filter(o=>o.target===e.to)),this.kindRegistry.ingest(t.links.kindRegistry),{schemaVersion:"1",kind:"links",items:r,filters:{kind:e.kind??null,from:e.from??null,to:e.to??null},counts:{total:r.length,returned:r.length},kindRegistry:t.links.kindRegistry}}async listIssues(e={}){let t=await this.loadMeta();if(gt(e))return this.kindRegistry.ingest(t.issues.kindRegistry),t.issues;let r=(await this.loadData()).issues;return e.severity&&(r=r.filter(o=>o.severity===e.severity)),e.analyzerId&&(r=r.filter(o=>o.analyzerId===e.analyzerId)),e.node&&(r=r.filter(o=>o.nodeIds.includes(e.node))),this.kindRegistry.ingest(t.issues.kindRegistry),{schemaVersion:"1",kind:"issues",items:r,filters:{severity:e.severity??null,analyzerId:e.analyzerId??null,node:e.node??null},counts:{total:r.length,returned:r.length},kindRegistry:t.issues.kindRegistry}}async loadGraph(e="ascii"){if(e!=="ascii")throw new c("bad-query",P.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}async setFavorite(e){throw new c("demo-readonly","Favorites are not available in demo mode (static bundle is immutable).")}async unsetFavorite(e){throw new c("demo-readonly","Favorites are not available in demo mode (static bundle is immutable).")}async setPluginEnabled(e,t){throw new c("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async setPluginExtensionEnabled(e,t,n){throw new c("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async applyPluginChanges(e){throw new c("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async runScan(){throw new c("demo-readonly","Manual scan is not available in demo mode (static bundle is immutable).")}async getPreferences(){return{updateCheck:{enabled:!0}}}async setPreferences(e){throw new c("demo-readonly","Preference toggles are not available in demo mode (static bundle is immutable).")}async getProjectPreferences(){return{scan:{extraFolders:[],referencePaths:[]}}}async setProjectPreferences(e){throw new c("demo-readonly","Project preferences are not available in demo mode (static bundle is immutable).")}async lookupContribution(){return null}async bumpSidecar(e,t={}){throw new c("demo-readonly","Sidecar bump is not available in demo mode (static bundle is immutable).")}async getUpdateStatus(){return{current:(await this.loadMeta()).health.implVersion,latest:null,isOutdated:!1,checkedAt:null,shownAt:null}}async getRegisteredAnnotations(){return[]}events(){return ce}loadMeta(){return this.metaPromise||(this.metaPromise=this.fetchJson(ct)),this.metaPromise}loadData(){return this.dataPromise||(this.dataPromise=this.fetchJson(dt)),this.dataPromise}async fetchJson(e){let t;try{t=await this.fetchImpl(e)}catch(n){let r=n instanceof Error?n.message:String(n);throw new c("internal",P.errors.demoFetchFailed(e,r))}if(!t.ok)throw new c("internal",P.errors.demoFetchFailed(e,`HTTP ${t.status}`));try{return await t.json()}catch(n){let r=n instanceof Error?n.message:String(n);throw new c("internal",P.errors.demoParseFailed(e,r))}}};function mt(i){return!(i.kind&&i.kind.length>0||i.hasIssues!==void 0||i.path||i.offset!==void 0&&i.offset!==0||i.limit!==void 0)}function ut(i){return!(i.kind&&i.kind.length>0||i.from||i.to)}function gt(i){return!(i.severity||i.analyzerId||i.node)}function Ve(i){let e=new Set;for(let t of i)for(let n of t.nodeIds)e.add(n);return e}function ht(i){let t=i.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${t}$`)}function Xe(){let i=s($);if(i==="live")return new ne(s(j),s(F));if(i==="demo")return new re;let e=i;throw new Error(P.errors.unknownMode(String(e)))}var Ge="search",We="kinds",Ye="stabilities",Ze="hasIssues",qe="staleOnly",et="favoritesOnly",oe=class i{filters=s(Ue);router=s(Te);activatedRoute=s(we);kindRegistry=s(w);destroyRef=s(me);suppressUrlReadback=!1;constructor(){this.applyUrlToFilters(this.currentParams()),this.router.events.pipe(je(this.destroyRef)).subscribe(e=>{if(e instanceof Ae){if(this.suppressUrlReadback)return;this.applyUrlToFilters(this.currentParams())}}),J(()=>{let e=this.computeQueryParams();this.writeQueryParams(e)})}currentParams(){let e=this.router.parseUrl(this.router.url),t=new URLSearchParams;for(let[n,r]of Object.entries(e.queryParams))Array.isArray(r)?t.set(n,r.join(",")):r!=null&&t.set(n,String(r));return this.activatedRoute,t}applyUrlToFilters(e){let t=e.get(Ge)??"";t!==this.filters.searchText()&&this.filters.setSearchText(t);let n=ft(e.get(We),this.kindRegistry.kinds().map(T=>T.name));tt(n,this.filters.selectedKinds())||this.filters.setKinds(n);let r=yt(e.get(Ye));tt(r,this.filters.selectedStabilities())||this.filters.setStabilities(r);let o=e.get(Ze)==="true";o!==this.filters.hasIssuesOnly()&&this.filters.setHasIssuesOnly(o);let f=e.get(qe)==="true";f!==this.filters.staleOnly()&&this.filters.setStaleOnly(f);let _=e.get(et)==="true";_!==this.filters.favoritesOnly()&&this.filters.setFavoritesOnly(_)}computeQueryParams(){let e=this.filters.searchText().trim(),t=this.filters.selectedKinds(),n=this.filters.selectedStabilities(),r=this.filters.hasIssuesOnly(),o=this.filters.staleOnly(),f=this.filters.favoritesOnly();return{[Ge]:e.length>0?e:null,[We]:t.length>0?t.join(","):null,[Ye]:n.length>0?n.join(","):null,[Ze]:r?"true":null,[qe]:o?"true":null,[et]:f?"true":null}}writeQueryParams(e){let t=this.currentParams(),n=new Map(Object.entries(e)),r=!1;for(let[o,f]of n)if((t.get(o)??null)!==f){r=!0;break}r&&(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||i)};static \u0275prov=k({token:i,factory:i.\u0275fac,providedIn:"root"})};function ft(i,e){if(!i)return[];let t=new Set(e);return i.split(",").map(n=>n.trim()).filter(n=>t.has(n))}function yt(i){if(!i)return[];let e=new Set(Fe);return i.split(",").map(t=>t.trim()).filter(t=>e.has(t))}function tt(i,e){if(i.length!==e.length)return!1;for(let t=0;t<i.length;t++)if(i[t]!==e[t])return!1;return!0}var it={healthFailed:i=>`ProjectInfoService: /api/health probe failed (${i})`};var C=class i{dataSource=s(Z);status=S(null);cwd=m(()=>this.status()?.cwd??null);implVersion=m(()=>this.status()?.implVersion??null);async load(){try{let e=await this.dataSource.health();this.status.set(e)}catch(e){let t=e instanceof Error?e.message:String(e);console.warn(it.healthFailed(t))}}static \u0275fac=function(t){return new(t||i)};static \u0275prov=k({token:i,factory:i.\u0275fac,providedIn:"root"})};var se=class i extends G{title=s(Se);projectInfo=s(C);lastSnapshot=S(null);constructor(){super(),J(()=>{let e=this.lastSnapshot();this.projectInfo.implVersion(),e&&this.applyTitle(e)})}updateTitle(e){this.lastSnapshot.set(e),this.applyTitle(e)}applyTitle(e){let t=this.buildTitle(e),n=this.projectInfo.implVersion();if(!t){this.title.setTitle(n?`${v.brand} v${n}`:v.brand);return}this.title.setTitle(v.documentTitle(t,n))}static \u0275fac=function(t){return new(t||i)};static \u0275prov=k({token:i,factory:i.\u0275fac,providedIn:"root"})};function vt(...i){for(let e of i)Promise.resolve(e.load())}var nt={providers:[ue(),Ee(Qe,Me()),{provide:G,useClass:se},Pe(ke()),De({}),Q(async()=>{let i=s(Oe),[{default:e},{definePreset:t}]=await Promise.all([import("./chunk-Y7MXGXU3.js"),import("./chunk-6BG7PBUN.js")]),n=t(e,{semantic:{primary:{50:"#F5F3FF",100:"#EDE9FE",200:"#DDD6FE",300:"#C4B5FD",400:"#A78BFA",500:"#8B5CF6",600:"#7C3AED",700:"#6D28D9",800:"#4C1D95",900:"#2E1065",950:"#1E0A4D"}}});i.setThemeConfig({theme:{preset:n,options:{darkModeSelector:".app-dark"}}})}),{provide:$,useFactory:$e},{provide:Z,useFactory:Xe},Q(()=>{vt(s(q),s(te),s(C))}),Q(()=>{s(oe),s(Be)})]};var O={toggleToAuto:"Switch to auto theme (follow system)",toggleToLight:"Switch to light theme",toggleToDark:"Switch to dark theme",currentAuto:"Auto theme (follows system)",currentLight:"Light theme",currentDark:"Dark theme"};var rt={body:"You are viewing a static demo of skill-map's UI. Install it:",installCommand:"npm i -g @skill-map/cli",homeCta:"\u2190 Back to skill-map.dev",homeHref:"/",dismissAria:"Dismiss demo banner"};function It(i,e){if(i&1){let t=V();l(0,"div",0),y(1,"span",1),l(2,"p",2),u(3),l(4,"code",3),u(5),p()(),l(6,"a",4),u(7),p(),l(8,"p-button",5),E("onClick",function(){z(t);let r=I();return H(r.dismiss())}),p()()}if(i&2){let t=I();a(3),X(" ",t.texts.body," "),a(2),h(t.texts.installCommand),a(),g("href",t.texts.homeHref,ge),a(),h(t.texts.homeCta),a(),g("ariaLabel",t.texts.dismissAria)("text",!0)("rounded",!0)}}var ot="sm.demoBannerDismissed",ae=class i{mode=s($);texts=rt;dismissed=S(this.readDismissed());visible=m(()=>this.mode==="demo"&&!this.dismissed());dismiss(){this.dismissed.set(!0);try{globalThis.localStorage?.setItem(ot,"1")}catch{}}readDismissed(){if(this.mode!=="demo")return!0;try{return globalThis.localStorage?.getItem(ot)==="1"}catch{return!1}}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=K({type:i,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","fa-solid","fa-circle-info"],[1,"demo-banner__body"],["data-testid","demo-banner-install",1,"demo-banner__cmd"],["data-testid","demo-banner-home",1,"demo-banner__home",3,"href"],["icon","fa-solid fa-xmark","severity","secondary","size","small","data-testid","demo-banner-dismiss",3,"onClick","ariaLabel","text","rounded"]],template:function(t,n){t&1&&L(0,It,9,7,"div",0),t&2&&N(n.visible()?0:-1)},dependencies:[Y,W],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}.demo-banner__cmd[_ngcontent-%COMP%]{font-family:var(--sm-font-mono);background:var(--p-content-background);border:1px solid var(--p-content-border-color);border-radius:var(--sm-radius-md);padding:.05rem .4rem;font-size:.85em;margin-left:.25rem}.demo-banner__home[_ngcontent-%COMP%]{color:var(--p-primary-color);font-weight:500;text-decoration:none;white-space:nowrap}.demo-banner__home[_ngcontent-%COMP%]:hover, .demo-banner__home[_ngcontent-%COMP%]:focus-visible{text-decoration:underline}"],changeDetection:0})};var Pt=()=>[import("./chunk-QV6BIVZJ.js").then(i=>i.SettingsModal)];function kt(i,e){if(i&1&&(l(0,"span",10),u(1),p()),i&2){let t=I();g("pTooltip",t.versionTooltip()),A("aria-label",t.versionA11y()),a(),h(t.versionLabel())}}function St(i,e){if(i&1&&(l(0,"a",12),y(1,"i",26),l(2,"span"),u(3),p()()),i&2){let t=I();g("pTooltip",t.updateChipTooltip()),A("aria-label",t.updateChipA11y()),a(3),h(t.updateChipText)}}function At(i,e){if(i&1&&(l(0,"p",13),u(1),p()),i&2){let t=I();a(),h(t.rootLabel())}}function wt(i,e){if(i&1){let t=V();l(0,"sm-settings-modal",27),E("visibleChange",function(r){z(t);let o=I();return H(o.settingsOpen.set(r))}),p()}if(i&2){let t=I();g("visible",t.settingsOpen())}}var le=class i{loader=s(q);theme=s(Ke);projectInfo=s(C);scanTrigger=s(Je);updateCheck=s(te);texts=v;settingsTexts=He;settingsOpen=S(!1);openSettings(){this.settingsOpen.set(!0)}scanning=this.scanTrigger.scanning;scanError=this.scanTrigger.scanError;triggerScan(){return this.scanTrigger.run()}updateChipText=M.available;updateChipTooltip=m(()=>M.tooltip(this.updateCheck.latest()??""));updateChipA11y=m(()=>M.a11yLabel(this.updateCheck.latest()??""));versionLabel=m(()=>M.versionLabel(this.updateCheck.current()??""));versionTooltip=m(()=>M.versionTooltip(this.updateCheck.current()??""));versionA11y=m(()=>M.versionA11yLabel(this.updateCheck.current()??""));count=this.loader.count;linkCount=m(()=>this.loader.scan()?.links?.length??0);graphInfoTooltip=m(()=>v.badge.graphInfo(this.count(),this.linkCount()));graphInfoA11y=m(()=>v.badge.graphInfoA11y(this.count(),this.linkCount()));rootLabel=m(()=>{let e=this.projectInfo.cwd();if(e&&e!==".")return e;let t=this.loader.scan()?.roots??[];if(t.length===0)return"";let n=t[0].replace(/[\\/]+$/,"");return!n||n==="."?"":n});isDevMode=ve();themeMode=this.theme.mode;markSrc=m(()=>this.theme.resolved()==="dark"?"skill-map-mark-light.svg":"skill-map-mark-dark.svg");themeIcon=m(()=>{switch(this.themeMode()){case"auto":return"pi pi-desktop";case"light":return"pi pi-sun";case"dark":return"fa-regular fa-moon"}});themeLabel=m(()=>{switch(this.themeMode()){case"auto":return O.toggleToLight;case"light":return O.toggleToDark;case"dark":return O.toggleToAuto}});themeTooltip=m(()=>{switch(this.themeMode()){case"auto":return O.currentAuto;case"light":return O.currentLight;case"dark":return O.currentDark}});toggleTheme(){this.theme.toggle()}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=K({type:i,selectors:[["sm-root"]],decls:40,vars:35,consts:[["role","alert","data-testid","viewport-warning",1,"viewport-warning"],[1,"viewport-warning__card"],["aria-hidden","true",1,"fa-solid","fa-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"],["width","32","height","32","priority","","alt","","aria-hidden","true",1,"shell__brand-mark",3,"ngSrc"],["tooltipPosition","bottom","data-testid","shell-version",1,"shell__version",3,"pTooltip"],[1,"shell__alpha"],["href","https://www.npmjs.com/package/@skill-map/cli","target","_blank","rel","noopener noreferrer","tooltipPosition","bottom","data-testid","shell-update-chip",1,"shell__update-chip",3,"pTooltip"],[1,"shell__tag"],["data-testid","shell-nav",1,"shell__nav"],["type","button","tooltipPosition","bottom","tabindex","-1","aria-disabled","true","data-testid","nav-search",1,"shell__nav-search",3,"pTooltip"],["aria-hidden","true",1,"pi","pi-search"],["slot","topbar.nav.start",3,"node"],["routerLink","/graph","routerLinkActive","is-active","data-testid","nav-graph"],["type","button","tooltipPosition","bottom","tabindex","-1","aria-disabled","true","data-testid","nav-list",1,"shell__nav-disabled",3,"pTooltip"],[1,"shell__actions"],["type","button","tooltipPosition","bottom","data-testid","shell-refresh",1,"shell__refresh",3,"click","pTooltip","disabled"],["aria-hidden","true",1,"pi","pi-sync"],["severity","secondary","size","small","data-testid","action-theme-toggle",3,"onClick","icon","ariaLabel","pTooltip","text","rounded"],["icon","pi pi-sliders-h","severity","secondary","size","small","data-testid","action-settings",3,"onClick","ariaLabel","pTooltip","text","rounded"],[1,"shell__main"],["aria-hidden","true",1,"pi","pi-download"],[3,"visibleChange","visible"]],template:function(t,n){if(t&1&&(l(0,"div",0)(1,"div",1),y(2,"i",2),l(3,"h2",3),u(4),p(),l(5,"p",4),u(6),p(),l(7,"p",5),u(8),p()()(),l(9,"div",6),y(10,"sm-demo-banner"),l(11,"header",7)(12,"div",8),y(13,"img",9),l(14,"div")(15,"h1"),u(16),L(17,kt,2,3,"span",10),l(18,"span",11),u(19),p(),L(20,St,4,3,"a",12),p(),L(21,At,2,1,"p",13),p()(),l(22,"nav",14)(23,"button",15),y(24,"i",16),p(),y(25,"sm-view-contributions-host",17),l(26,"a",18),u(27),p(),l(28,"button",19),u(29),p()(),l(30,"div",20)(31,"button",21),E("click",function(){return n.triggerScan()}),y(32,"i",22),p(),l(33,"p-button",23),E("onClick",function(){return n.toggleTheme()}),p(),l(34,"p-button",24),E("onClick",function(){return n.openSettings()}),p()()(),l(35,"main",25),y(36,"router-outlet"),p(),he(37,wt,1,1),fe(38,37,Pt),p()),t&2){let r;a(4),h(n.texts.viewportWarning.title),a(2),h(n.texts.viewportWarning.subtitle),a(2),h(n.texts.viewportWarning.body),a(5),g("ngSrc",n.markSrc()),a(3),X(" ",n.texts.brand," "),a(),N((r=n.updateCheck.current())?17:-1,r),a(),A("aria-label",n.texts.alpha),a(),h(n.texts.alpha),a(),N(n.updateCheck.isOutdated()&&!n.isDevMode?20:-1),a(),N(n.rootLabel()?21:-1),a(),A("aria-label",n.texts.a11y.viewSwitcher),a(),g("pTooltip",n.texts.nav.searchTooltip),A("aria-label",n.texts.nav.searchLabel),a(2),g("node",null),a(2),h(n.texts.nav.graph),a(),g("pTooltip",n.texts.nav.listTooltip),A("aria-label",n.texts.nav.listLabel),a(),h(n.texts.nav.list),a(2),pe("is-spinning",n.scanning()),g("pTooltip",n.graphInfoTooltip())("disabled",n.scanning()),A("aria-label",n.graphInfoA11y()),a(),pe("pi-spin",n.scanning()),a(),g("icon",n.themeIcon())("ariaLabel",n.themeLabel())("pTooltip",n.themeTooltip())("text",!0)("rounded",!0),a(),g("ariaLabel",n.settingsTexts.a11y.triggerLabel)("pTooltip",n.settingsTexts.triggerTooltip)("text",!0)("rounded",!0),a(4),ye(n.settingsOpen())}},dependencies:[Ce,Re,xe,Y,W,Ne,Le,be,ae,ze],styles:["[_nghost-%COMP%]{display:block;height:100dvh;--shell-topbar-bg: #FFFFFF;--shell-topbar-border: var(--sm-violet-100);--shell-topbar-text: var(--sm-violet-800);--shell-topbar-text-strong: var(--sm-violet-900);--shell-topbar-text-muted: var(--sm-violet-600);--shell-topbar-hover-bg: color-mix(in srgb, var(--sm-violet-500) 10%, transparent);--shell-topbar-active-bg: var(--sm-violet-100);--shell-topbar-active-text: var(--sm-violet-800);--shell-topbar-badge-bg: var(--sm-violet-100)}.app-dark[_nghost-%COMP%], .app-dark [_nghost-%COMP%]{--shell-topbar-bg: #1A1B22;--shell-topbar-border: color-mix(in srgb, var(--sm-violet-300) 8%, transparent);--shell-topbar-text: var(--sm-violet-100);--shell-topbar-text-strong: var(--sm-violet-100);--shell-topbar-text-muted: var(--sm-violet-300);--shell-topbar-hover-bg: color-mix(in srgb, var(--sm-violet-400) 12%, transparent);--shell-topbar-active-bg: color-mix(in srgb, var(--sm-violet-500) 22%, transparent);--shell-topbar-active-text: var(--sm-violet-100);--shell-topbar-badge-bg: color-mix(in srgb, var(--sm-violet-500) 14%, transparent)}.shell[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100dvh}.shell__topbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;background:color-mix(in srgb,var(--shell-topbar-bg) 85%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--shell-topbar-border);color:var(--shell-topbar-text)}.shell__brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem}.shell__brand-mark[_ngcontent-%COMP%]{width:2rem;height:2rem;display:block}.shell__brand[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{margin:0;font-size:1.05rem;font-weight:600;letter-spacing:-.01em;color:var(--shell-topbar-text-strong)}.shell__alpha[_ngcontent-%COMP%]{font-family:var(--sm-font-display-brand);font-weight:600;font-size:10px;line-height:1;letter-spacing:.06em;text-transform:uppercase;color:#ad322b;background:#ad322b14;border-radius:var(--sm-radius-sm);padding:4px 8px;margin-left:8px;-webkit-user-select:none;user-select:none;display:inline-block;vertical-align:middle;white-space:nowrap}.app-dark[_nghost-%COMP%] .shell__alpha[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__alpha[_ngcontent-%COMP%]{color:#e07570;background:#cf464024}.shell__version[_ngcontent-%COMP%]{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:var(--sm-radius-sm);font-family:var(--p-monospace-font-family);font-size:11px;line-height:1;font-weight:500;letter-spacing:.02em;color:var(--p-text-muted-color);background:var(--p-content-hover-background);vertical-align:middle;-webkit-user-select:text;user-select:text}.shell__update-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:3px 8px;font-size:11px;line-height:1;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--p-primary-color);background:var(--p-primary-50);border:1px solid var(--p-primary-200);border-radius:var(--sm-radius-pill);text-decoration:none;transition:background-color .12s ease,color .12s ease;vertical-align:middle}.shell__update-chip[_ngcontent-%COMP%]:hover, .shell__update-chip[_ngcontent-%COMP%]:focus-visible{background:var(--p-primary-100);color:var(--p-primary-700)}.shell__update-chip[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:12px;transform:translateY(1px)}.app-dark[_nghost-%COMP%] .shell__update-chip[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__update-chip[_ngcontent-%COMP%]{color:var(--p-primary-300);background:#ffffff0a;border-color:var(--p-primary-700)}.shell__tag[_ngcontent-%COMP%]{margin:.35rem 0 0;font-size:.72rem;color:var(--shell-topbar-text-muted);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(--shell-topbar-text-muted);transition:background .15s ease,color .15s ease}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong)}.shell__nav[_ngcontent-%COMP%] a.is-active[_ngcontent-%COMP%]{background:var(--shell-topbar-active-bg);color:var(--shell-topbar-active-text)}.shell__nav-disabled[_ngcontent-%COMP%]{padding:.5rem .9rem;border:none;background:transparent;border-radius:.5rem;font-size:.9rem;font-weight:500;color:var(--shell-topbar-text-muted);cursor:not-allowed;opacity:.55;font-family:inherit}.shell__nav-search[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:none;border-radius:.5rem;background:transparent;color:var(--shell-topbar-text-muted);cursor:not-allowed;opacity:.55;transition:background .15s ease,color .15s ease,opacity .15s ease}.shell__nav-search[_ngcontent-%COMP%]:hover:not([aria-disabled=true]){background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong);opacity:1}.shell__nav-search[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:.95rem}.shell__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;--p-button-text-secondary-color: var(--shell-topbar-text-muted);--p-button-text-secondary-hover-color: var(--shell-topbar-text-strong);--p-button-text-secondary-hover-background: var(--shell-topbar-hover-bg);--p-button-text-secondary-active-color: var(--shell-topbar-text-strong);--p-button-text-secondary-active-background: var(--shell-topbar-hover-bg)}.shell__refresh[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:var(--sm-radius-pill);background:transparent;color:var(--shell-topbar-text-muted);cursor:pointer;transition:background .15s ease,color .15s ease}.shell__refresh[_ngcontent-%COMP%]:hover:not(:disabled), .shell__refresh[_ngcontent-%COMP%]:focus-visible:not(:disabled){background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong);outline:none}.shell__refresh[_ngcontent-%COMP%]:disabled{cursor:progress;opacity:.7}.shell__refresh[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:1rem}.shell__main[_ngcontent-%COMP%]{flex:1;min-height:0;overflow-y:auto;width:100%}@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}}.viewport-warning[_ngcontent-%COMP%]{display:none}@media(max-width:767px){.viewport-warning[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--sm-bg-content)}.viewport-warning__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.85rem;max-width:22rem}.viewport-warning__icon[_ngcontent-%COMP%]{font-size:3rem;color:var(--p-primary-color);margin-bottom:.25rem}.viewport-warning__title[_ngcontent-%COMP%]{margin:0;font-size:1.35rem;font-weight:700;color:var(--p-text-color);line-height:1.25}.viewport-warning__subtitle[_ngcontent-%COMP%]{margin:0;font-size:1rem;font-weight:500;color:var(--p-primary-color);line-height:1.35}.viewport-warning__body[_ngcontent-%COMP%]{margin:0;color:var(--p-text-muted-color);line-height:1.5;font-size:.9rem}.shell[_ngcontent-%COMP%]{display:none}}"],changeDetection:0})};_e(le,nt).catch(i=>console.error(i));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skill-map/cli",
3
- "version": "0.24.2",
3
+ "version": "0.24.3",
4
4
  "description": "skill-map reference implementation — kernel + CLI + adapters.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -44,30 +44,8 @@
44
44
  "migrations/",
45
45
  "README.md"
46
46
  ],
47
- "scripts": {
48
- "build": "tsup",
49
- "dev": "tsup --watch",
50
- "dev:serve": "node scripts/dev-serve.js",
51
- "typecheck": "tsc --noEmit",
52
- "lint": "eslint .",
53
- "lint:fix": "eslint . --fix",
54
- "reference": "node scripts/build-reference.js",
55
- "reference:check": "node scripts/build-reference.js --check",
56
- "validate": "npm run validate:compile && npm run validate:test",
57
- "validate:compile": "npm run typecheck && npm run lint && npm run build && npm run reference:check",
58
- "validate:test": "npm run test:ci",
59
- "pretest": "tsup",
60
- "pretest:coverage": "tsup",
61
- "pretest:coverage:html": "tsup",
62
- "test": "tsc --noEmit && node --import tsx --test --test-reporter=spec 'test/**/*.test.ts' 'built-in-plugins/**/*.test.ts' 'kernel/**/*.test.ts' 'server/**/*.test.ts'",
63
- "test:ci": "node --import tsx --test 'test/**/*.test.ts' 'built-in-plugins/**/*.test.ts' 'kernel/**/*.test.ts' 'server/**/*.test.ts'",
64
- "test:coverage": "tsc --noEmit && SKILL_MAP_SKIP_BENCHMARK=1 node --experimental-default-config-file --import tsx --test --experimental-test-coverage 'test/**/*.test.ts' 'built-in-plugins/**/*.test.ts' 'kernel/**/*.test.ts' 'server/**/*.test.ts'",
65
- "test:coverage:html": "tsc --noEmit && SKILL_MAP_SKIP_BENCHMARK=1 c8 node --import tsx --test 'test/**/*.test.ts' 'built-in-plugins/**/*.test.ts' 'kernel/**/*.test.ts' 'server/**/*.test.ts'",
66
- "clean": "rm -rf dist coverage"
67
- },
68
47
  "dependencies": {
69
48
  "@hono/node-server": "2.0.1",
70
- "@skill-map/spec": "0.24.0",
71
49
  "ajv": "8.18.0",
72
50
  "ajv-formats": "3.0.1",
73
51
  "chokidar": "5.0.0",
@@ -79,7 +57,8 @@
79
57
  "kysely": "0.28.17",
80
58
  "semver": "7.7.4",
81
59
  "typanion": "3.14.0",
82
- "ws": "8.20.0"
60
+ "ws": "8.20.0",
61
+ "@skill-map/spec": "0.24.1"
83
62
  },
84
63
  "devDependencies": {
85
64
  "@eslint/js": "10.0.1",
@@ -101,5 +80,26 @@
101
80
  },
102
81
  "publishConfig": {
103
82
  "access": "public"
83
+ },
84
+ "scripts": {
85
+ "build": "tsup",
86
+ "dev": "tsup --watch",
87
+ "dev:serve": "node scripts/dev-serve.js",
88
+ "typecheck": "tsc --noEmit",
89
+ "lint": "eslint .",
90
+ "lint:fix": "eslint . --fix",
91
+ "reference": "node scripts/build-reference.js",
92
+ "reference:check": "node scripts/build-reference.js --check",
93
+ "validate": "pnpm validate:compile && pnpm validate:test",
94
+ "validate:compile": "pnpm typecheck && pnpm lint && pnpm build && pnpm reference:check",
95
+ "validate:test": "pnpm test:ci",
96
+ "pretest": "tsup",
97
+ "pretest:coverage": "tsup",
98
+ "pretest:coverage:html": "tsup",
99
+ "test": "tsc --noEmit && node --import tsx --test --test-reporter=spec 'test/**/*.test.ts' 'built-in-plugins/**/*.test.ts' 'kernel/**/*.test.ts' 'server/**/*.test.ts'",
100
+ "test:ci": "node --import tsx --test 'test/**/*.test.ts' 'built-in-plugins/**/*.test.ts' 'kernel/**/*.test.ts' 'server/**/*.test.ts'",
101
+ "test:coverage": "tsc --noEmit && SKILL_MAP_SKIP_BENCHMARK=1 node --experimental-default-config-file --import tsx --test --experimental-test-coverage 'test/**/*.test.ts' 'built-in-plugins/**/*.test.ts' 'kernel/**/*.test.ts' 'server/**/*.test.ts'",
102
+ "test:coverage:html": "tsc --noEmit && SKILL_MAP_SKIP_BENCHMARK=1 c8 node --import tsx --test 'test/**/*.test.ts' 'built-in-plugins/**/*.test.ts' 'kernel/**/*.test.ts' 'server/**/*.test.ts'",
103
+ "clean": "rm -rf dist coverage"
104
104
  }
105
- }
105
+ }