@skill-map/cli 0.18.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +4 -0
  2. package/dist/cli/tutorial/sm-tutorial.md +6 -7
  3. package/dist/cli.js +7011 -4047
  4. package/dist/cli.js.map +1 -1
  5. package/dist/index.d.ts +1 -1
  6. package/dist/index.js +277 -42
  7. package/dist/index.js.map +1 -1
  8. package/dist/kernel/index.d.ts +566 -68
  9. package/dist/kernel/index.js +277 -42
  10. package/dist/kernel/index.js.map +1 -1
  11. package/dist/migrations/001_initial.sql +122 -12
  12. package/dist/ui/chunk-7CAK6MVK.js +2638 -0
  13. package/dist/ui/chunk-BORRASJB.js +247 -0
  14. package/dist/ui/chunk-CZSS4D6J.js +454 -0
  15. package/dist/ui/chunk-EQD7AYYJ.js +227 -0
  16. package/dist/ui/chunk-ETTRVTFV.js +1 -0
  17. package/dist/ui/chunk-LFIE4SCX.js +965 -0
  18. package/dist/ui/chunk-OKO3QOH6.js +1 -0
  19. package/dist/ui/chunk-PMIMYHBM.js +61 -0
  20. package/dist/ui/chunk-UHFGCO24.js +1 -0
  21. package/dist/ui/chunk-VHIPW3TH.js +1 -0
  22. package/dist/ui/chunk-VWAUXWQX.js +237 -0
  23. package/dist/ui/index.html +10 -2
  24. package/dist/ui/main-BSYMJKTL.js +1 -0
  25. package/dist/ui/{styles-CBPFNGXA.css → styles-UAABA7VK.css} +1 -1
  26. package/migrations/001_initial.sql +122 -12
  27. package/package.json +2 -2
  28. package/dist/migrations/002_sidecar_columns.sql +0 -53
  29. package/dist/migrations/003_drop_node_author.sql +0 -20
  30. package/dist/migrations/004_sidecar_root_json.sql +0 -23
  31. package/dist/migrations/005_node_favorites.sql +0 -20
  32. package/dist/ui/chunk-JKJGGXCS.js +0 -1025
  33. package/dist/ui/chunk-SX2A3WBX.js +0 -247
  34. package/dist/ui/chunk-TWZHUCAT.js +0 -237
  35. package/dist/ui/chunk-WTAL2RK4.js +0 -1
  36. package/dist/ui/chunk-Z3UJHHTC.js +0 -3091
  37. package/dist/ui/main-AAYGMON4.js +0 -1
  38. package/migrations/002_sidecar_columns.sql +0 -53
  39. package/migrations/003_drop_node_author.sql +0 -20
  40. package/migrations/004_sidecar_root_json.sql +0 -23
  41. package/migrations/005_node_favorites.sql +0 -20
@@ -0,0 +1,237 @@
1
+ import{a as ye,h as ve}from"./chunk-VHIPW3TH.js";import{$a as G,Aa as x,Ba as p,Ec as z,Fc as h,Gc as fe,Hb as P,Hc as j,I as re,J as B,Jb as ie,K as E,Ka as m,Kc as R,Lc as X,M,Na as K,O as u,Oa as U,Qb as pe,Rc as g,S as C,Sc as be,T,Ta as i,U as q,Ua as f,Va as b,Wa as L,Wc as he,Xa as ee,Xb as ge,Ya as te,Yc as _e,Za as ne,_ as Q,_a as H,ab as oe,bc as k,cc as ue,db as $,eb as le,fa as _,fb as w,hb as r,ib as Z,ic as J,jb as Y,ka as ce,kb as N,lc as W,mb as y,nb as v,nc as V,oa as c,oc as O,rb as se,ub as de,vb as d,wa as I,wb as A,xa as S,xb as F,xc as me,za as D}from"./chunk-LFIE4SCX.js";var Ce=`
2
+ .p-tag {
3
+ display: inline-flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ background: dt('tag.primary.background');
7
+ color: dt('tag.primary.color');
8
+ font-size: dt('tag.font.size');
9
+ font-weight: dt('tag.font.weight');
10
+ padding: dt('tag.padding');
11
+ border-radius: dt('tag.border.radius');
12
+ gap: dt('tag.gap');
13
+ }
14
+
15
+ .p-tag-icon {
16
+ font-size: dt('tag.icon.size');
17
+ width: dt('tag.icon.size');
18
+ height: dt('tag.icon.size');
19
+ }
20
+
21
+ .p-tag-rounded {
22
+ border-radius: dt('tag.rounded.border.radius');
23
+ }
24
+
25
+ .p-tag-success {
26
+ background: dt('tag.success.background');
27
+ color: dt('tag.success.color');
28
+ }
29
+
30
+ .p-tag-info {
31
+ background: dt('tag.info.background');
32
+ color: dt('tag.info.color');
33
+ }
34
+
35
+ .p-tag-warn {
36
+ background: dt('tag.warn.background');
37
+ color: dt('tag.warn.color');
38
+ }
39
+
40
+ .p-tag-danger {
41
+ background: dt('tag.danger.background');
42
+ color: dt('tag.danger.color');
43
+ }
44
+
45
+ .p-tag-secondary {
46
+ background: dt('tag.secondary.background');
47
+ color: dt('tag.secondary.color');
48
+ }
49
+
50
+ .p-tag-contrast {
51
+ background: dt('tag.contrast.background');
52
+ color: dt('tag.contrast.color');
53
+ }
54
+ `;var Fe=["icon"],Pe=["*"];function Ve(t,l){if(t&1&&L(0,"span",4),t&2){let e=r(2);d(e.cx("icon")),i("ngClass",e.icon)("pBind",e.ptm("icon"))}}function Oe(t,l){if(t&1&&(H(0),p(1,Ve,1,4,"span",3),G()),t&2){let e=r();c(),i("ngIf",e.icon)}}function ze(t,l){}function je(t,l){t&1&&p(0,ze,0,0,"ng-template")}function Re(t,l){if(t&1&&(f(0,"span",2),p(1,je,1,0,null,5),b()),t&2){let e=r();d(e.cx("icon")),i("pBind",e.ptm("icon")),c(),i("ngTemplateOutlet",e.iconTemplate||e._iconTemplate)}}var Qe={root:({instance:t})=>["p-tag p-component",{"p-tag-info":t.severity==="info","p-tag-success":t.severity==="success","p-tag-warn":t.severity==="warn","p-tag-danger":t.severity==="danger","p-tag-secondary":t.severity==="secondary","p-tag-contrast":t.severity==="contrast","p-tag-rounded":t.rounded}],icon:"p-tag-icon",label:"p-tag-label"},Te=(()=>{class t extends j{name="tag";style=Ce;classes=Qe;static \u0275fac=(()=>{let e;return function(n){return(e||(e=_(t)))(n||t)}})();static \u0275prov=B({token:t,factory:t.\u0275fac})}return t})();var Ie=new M("TAG_INSTANCE"),He=(()=>{class t extends X{componentName="Tag";$pcTag=u(Ie,{optional:!0,skipSelf:!0})??void 0;bindDirectiveInstance=u(g,{self:!0});onAfterViewChecked(){this.bindDirectiveInstance.setAttrs(this.ptms(["host","root"]))}styleClass;severity;value;icon;rounded;iconTemplate;templates;_iconTemplate;_componentStyle=u(Te);onAfterContentInit(){this.templates?.forEach(e=>{e.getType()==="icon"&&(this._iconTemplate=e.template)})}get dataP(){return this.cn({rounded:this.rounded,[this.severity]:this.severity})}static \u0275fac=(()=>{let e;return function(n){return(e||(e=_(t)))(n||t)}})();static \u0275cmp=I({type:t,selectors:[["p-tag"]],contentQueries:function(o,n,a){if(o&1&&N(a,Fe,4)(a,z,4),o&2){let s;y(s=v())&&(n.iconTemplate=s.first),y(s=v())&&(n.templates=s)}},hostVars:3,hostBindings:function(o,n){o&2&&(m("data-p",n.dataP),d(n.cn(n.cx("root"),n.styleClass)))},inputs:{styleClass:"styleClass",severity:"severity",value:"value",icon:"icon",rounded:[2,"rounded","rounded",k]},features:[P([Te,{provide:Ie,useExisting:t},{provide:R,useExisting:t}]),D([g]),x],ngContentSelectors:Pe,decls:5,vars:6,consts:[[4,"ngIf"],[3,"class","pBind",4,"ngIf"],[3,"pBind"],[3,"class","ngClass","pBind",4,"ngIf"],[3,"ngClass","pBind"],[4,"ngTemplateOutlet"]],template:function(o,n){o&1&&(Z(),Y(0),p(1,Oe,2,1,"ng-container",0)(2,Re,2,4,"span",1),f(3,"span",2),A(4),b()),o&2&&(c(),i("ngIf",!n.iconTemplate&&!n._iconTemplate),c(),i("ngIf",n.iconTemplate||n._iconTemplate),c(),d(n.cx("label")),i("pBind",n.ptm("label")),c(),F(n.value))},dependencies:[O,J,W,V,h,g],encapsulation:2,changeDetection:0})}return t})(),At=(()=>{class t{static \u0275fac=function(o){return new(o||t)};static \u0275mod=S({type:t});static \u0275inj=E({imports:[He,h,h]})}return t})();var we=`
55
+ .p-togglebutton {
56
+ display: inline-flex;
57
+ cursor: pointer;
58
+ user-select: none;
59
+ overflow: hidden;
60
+ position: relative;
61
+ color: dt('togglebutton.color');
62
+ background: dt('togglebutton.background');
63
+ border: 1px solid dt('togglebutton.border.color');
64
+ padding: dt('togglebutton.padding');
65
+ font-size: 1rem;
66
+ font-family: inherit;
67
+ font-feature-settings: inherit;
68
+ transition:
69
+ background dt('togglebutton.transition.duration'),
70
+ color dt('togglebutton.transition.duration'),
71
+ border-color dt('togglebutton.transition.duration'),
72
+ outline-color dt('togglebutton.transition.duration'),
73
+ box-shadow dt('togglebutton.transition.duration');
74
+ border-radius: dt('togglebutton.border.radius');
75
+ outline-color: transparent;
76
+ font-weight: dt('togglebutton.font.weight');
77
+ }
78
+
79
+ .p-togglebutton-content {
80
+ display: inline-flex;
81
+ flex: 1 1 auto;
82
+ align-items: center;
83
+ justify-content: center;
84
+ gap: dt('togglebutton.gap');
85
+ padding: dt('togglebutton.content.padding');
86
+ background: transparent;
87
+ border-radius: dt('togglebutton.content.border.radius');
88
+ transition:
89
+ background dt('togglebutton.transition.duration'),
90
+ color dt('togglebutton.transition.duration'),
91
+ border-color dt('togglebutton.transition.duration'),
92
+ outline-color dt('togglebutton.transition.duration'),
93
+ box-shadow dt('togglebutton.transition.duration');
94
+ }
95
+
96
+ .p-togglebutton:not(:disabled):not(.p-togglebutton-checked):hover {
97
+ background: dt('togglebutton.hover.background');
98
+ color: dt('togglebutton.hover.color');
99
+ }
100
+
101
+ .p-togglebutton.p-togglebutton-checked {
102
+ background: dt('togglebutton.checked.background');
103
+ border-color: dt('togglebutton.checked.border.color');
104
+ color: dt('togglebutton.checked.color');
105
+ }
106
+
107
+ .p-togglebutton-checked .p-togglebutton-content {
108
+ background: dt('togglebutton.content.checked.background');
109
+ box-shadow: dt('togglebutton.content.checked.shadow');
110
+ }
111
+
112
+ .p-togglebutton:focus-visible {
113
+ box-shadow: dt('togglebutton.focus.ring.shadow');
114
+ outline: dt('togglebutton.focus.ring.width') dt('togglebutton.focus.ring.style') dt('togglebutton.focus.ring.color');
115
+ outline-offset: dt('togglebutton.focus.ring.offset');
116
+ }
117
+
118
+ .p-togglebutton.p-invalid {
119
+ border-color: dt('togglebutton.invalid.border.color');
120
+ }
121
+
122
+ .p-togglebutton:disabled {
123
+ opacity: 1;
124
+ cursor: default;
125
+ background: dt('togglebutton.disabled.background');
126
+ border-color: dt('togglebutton.disabled.border.color');
127
+ color: dt('togglebutton.disabled.color');
128
+ }
129
+
130
+ .p-togglebutton-label,
131
+ .p-togglebutton-icon {
132
+ position: relative;
133
+ transition: none;
134
+ }
135
+
136
+ .p-togglebutton-icon {
137
+ color: dt('togglebutton.icon.color');
138
+ }
139
+
140
+ .p-togglebutton:not(:disabled):not(.p-togglebutton-checked):hover .p-togglebutton-icon {
141
+ color: dt('togglebutton.icon.hover.color');
142
+ }
143
+
144
+ .p-togglebutton.p-togglebutton-checked .p-togglebutton-icon {
145
+ color: dt('togglebutton.icon.checked.color');
146
+ }
147
+
148
+ .p-togglebutton:disabled .p-togglebutton-icon {
149
+ color: dt('togglebutton.icon.disabled.color');
150
+ }
151
+
152
+ .p-togglebutton-sm {
153
+ padding: dt('togglebutton.sm.padding');
154
+ font-size: dt('togglebutton.sm.font.size');
155
+ }
156
+
157
+ .p-togglebutton-sm .p-togglebutton-content {
158
+ padding: dt('togglebutton.content.sm.padding');
159
+ }
160
+
161
+ .p-togglebutton-lg {
162
+ padding: dt('togglebutton.lg.padding');
163
+ font-size: dt('togglebutton.lg.font.size');
164
+ }
165
+
166
+ .p-togglebutton-lg .p-togglebutton-content {
167
+ padding: dt('togglebutton.content.lg.padding');
168
+ }
169
+
170
+ .p-togglebutton-fluid {
171
+ width: 100%;
172
+ }
173
+ `;var Ge=["icon"],$e=["content"],Me=t=>({$implicit:t});function qe(t,l){t&1&&oe(0)}function Ke(t,l){if(t&1&&L(0,"span",0),t&2){let e=r(3);d(e.cn(e.cx("icon"),e.checked?e.onIcon:e.offIcon,e.iconPos==="left"?e.cx("iconLeft"):e.cx("iconRight"))),i("pBind",e.ptm("icon"))}}function Ue(t,l){if(t&1&&K(0,Ke,1,3,"span",2),t&2){let e=r(2);U(e.onIcon||e.offIcon?0:-1)}}function Ze(t,l){t&1&&oe(0)}function Ye(t,l){if(t&1&&p(0,Ze,1,0,"ng-container",1),t&2){let e=r(2);i("ngTemplateOutlet",e.iconTemplate||e._iconTemplate)("ngTemplateOutletContext",ie(2,Me,e.checked))}}function Je(t,l){if(t&1&&(K(0,Ue,1,1)(1,Ye,1,4,"ng-container"),f(2,"span",0),A(3),b()),t&2){let e=r();U(e.iconTemplate?1:0),c(2),d(e.cx("label")),i("pBind",e.ptm("label")),c(),F(e.checked?e.hasOnLabel?e.onLabel:"\xA0":e.hasOffLabel?e.offLabel:"\xA0")}}var We=`
174
+ ${we}
175
+
176
+ /* For PrimeNG (iconPos) */
177
+ .p-togglebutton-icon-right {
178
+ order: 1;
179
+ }
180
+
181
+ .p-togglebutton.ng-invalid.ng-dirty {
182
+ border-color: dt('togglebutton.invalid.border.color');
183
+ }
184
+ `,Xe={root:({instance:t})=>["p-togglebutton p-component",{"p-togglebutton-checked":t.checked,"p-invalid":t.invalid(),"p-disabled":t.$disabled(),"p-togglebutton-sm p-inputfield-sm":t.size==="small","p-togglebutton-lg p-inputfield-lg":t.size==="large","p-togglebutton-fluid":t.fluid()}],content:"p-togglebutton-content",icon:"p-togglebutton-icon",iconLeft:"p-togglebutton-icon-left",iconRight:"p-togglebutton-icon-right",label:"p-togglebutton-label"},Be=(()=>{class t extends j{name="togglebutton";style=We;classes=Xe;static \u0275fac=(()=>{let e;return function(n){return(e||(e=_(t)))(n||t)}})();static \u0275prov=B({token:t,factory:t.\u0275fac})}return t})();var Ee=new M("TOGGLEBUTTON_INSTANCE"),et={provide:ye,useExisting:re(()=>Se),multi:!0},Se=(()=>{class t extends ve{componentName="ToggleButton";$pcToggleButton=u(Ee,{optional:!0,skipSelf:!0})??void 0;bindDirectiveInstance=u(g,{self:!0});onAfterViewChecked(){this.bindDirectiveInstance.setAttrs(this.ptms(["host","root"]))}onKeyDown(e){switch(e.code){case"Enter":this.toggle(e),e.preventDefault();break;case"Space":this.toggle(e),e.preventDefault();break}}toggle(e){!this.$disabled()&&!(this.allowEmpty===!1&&this.checked)&&(this.checked=!this.checked,this.writeModelValue(this.checked),this.onModelChange(this.checked),this.onModelTouched(),this.onChange.emit({originalEvent:e,checked:this.checked}),this.cd.markForCheck())}onLabel="Yes";offLabel="No";onIcon;offIcon;ariaLabel;ariaLabelledBy;styleClass;inputId;tabindex=0;iconPos="left";autofocus;size;allowEmpty;fluid=ge(void 0,{transform:k});onChange=new Q;iconTemplate;contentTemplate;templates;checked=!1;onInit(){(this.checked===null||this.checked===void 0)&&(this.checked=!1)}_componentStyle=u(Be);onBlur(){this.onModelTouched()}get hasOnLabel(){return this.onLabel&&this.onLabel.length>0}get hasOffLabel(){return this.offLabel&&this.offLabel.length>0}get active(){return this.checked===!0}_iconTemplate;_contentTemplate;onAfterContentInit(){this.templates.forEach(e=>{switch(e.getType()){case"icon":this._iconTemplate=e.template;break;case"content":this._contentTemplate=e.template;break;default:this._contentTemplate=e.template;break}})}writeControlValue(e,o){this.checked=e,o(e),this.cd.markForCheck()}get dataP(){return this.cn({checked:this.active,invalid:this.invalid(),[this.size]:this.size})}static \u0275fac=(()=>{let e;return function(n){return(e||(e=_(t)))(n||t)}})();static \u0275cmp=I({type:t,selectors:[["p-toggleButton"],["p-togglebutton"],["p-toggle-button"]],contentQueries:function(o,n,a){if(o&1&&N(a,Ge,4)(a,$e,4)(a,z,4),o&2){let s;y(s=v())&&(n.iconTemplate=s.first),y(s=v())&&(n.contentTemplate=s.first),y(s=v())&&(n.templates=s)}},hostVars:11,hostBindings:function(o,n){o&1&&w("keydown",function(s){return n.onKeyDown(s)})("click",function(s){return n.toggle(s)}),o&2&&(m("aria-labelledby",n.ariaLabelledBy)("aria-label",n.ariaLabel)("aria-pressed",n.checked?"true":"false")("role","button")("tabindex",n.tabindex!==void 0?n.tabindex:n.$disabled()?-1:0)("data-pc-name","togglebutton")("data-p-checked",n.active)("data-p-disabled",n.$disabled())("data-p",n.dataP),d(n.cn(n.cx("root"),n.styleClass)))},inputs:{onLabel:"onLabel",offLabel:"offLabel",onIcon:"onIcon",offIcon:"offIcon",ariaLabel:"ariaLabel",ariaLabelledBy:"ariaLabelledBy",styleClass:"styleClass",inputId:"inputId",tabindex:[2,"tabindex","tabindex",ue],iconPos:"iconPos",autofocus:[2,"autofocus","autofocus",k],size:"size",allowEmpty:"allowEmpty",fluid:[1,"fluid"]},outputs:{onChange:"onChange"},features:[P([et,Be,{provide:Ee,useExisting:t},{provide:R,useExisting:t}]),D([_e,g]),x],decls:3,vars:9,consts:[[3,"pBind"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"class","pBind"]],template:function(o,n){o&1&&(f(0,"span",0),p(1,qe,1,0,"ng-container",1),K(2,Je,4,5),b()),o&2&&(d(n.cx("content")),i("pBind",n.ptm("content")),m("data-p",n.dataP),c(),i("ngTemplateOutlet",n.contentTemplate||n._contentTemplate)("ngTemplateOutletContext",ie(7,Me,n.checked)),c(),U(n.contentTemplate?-1:2))},dependencies:[O,V,h,be,g],encapsulation:2,changeDetection:0})}return t})(),on=(()=>{class t{static \u0275fac=function(o){return new(o||t)};static \u0275mod=S({type:t});static \u0275inj=E({imports:[Se,h,h]})}return t})();var tt=["data-p-icon","times-circle"],De=(()=>{class t extends he{pathId;onInit(){this.pathId="url(#"+me()+")"}static \u0275fac=(()=>{let e;return function(n){return(e||(e=_(t)))(n||t)}})();static \u0275cmp=I({type:t,selectors:[["","data-p-icon","times-circle"]],features:[x],attrs:tt,decls:5,vars:2,consts:[["fill-rule","evenodd","clip-rule","evenodd","d","M7 14C5.61553 14 4.26215 13.5895 3.11101 12.8203C1.95987 12.0511 1.06266 10.9579 0.532846 9.67879C0.00303296 8.3997 -0.13559 6.99224 0.134506 5.63437C0.404603 4.2765 1.07129 3.02922 2.05026 2.05026C3.02922 1.07129 4.2765 0.404603 5.63437 0.134506C6.99224 -0.13559 8.3997 0.00303296 9.67879 0.532846C10.9579 1.06266 12.0511 1.95987 12.8203 3.11101C13.5895 4.26215 14 5.61553 14 7C14 8.85652 13.2625 10.637 11.9497 11.9497C10.637 13.2625 8.85652 14 7 14ZM7 1.16667C5.84628 1.16667 4.71846 1.50879 3.75918 2.14976C2.79989 2.79074 2.05222 3.70178 1.61071 4.76768C1.16919 5.83358 1.05367 7.00647 1.27876 8.13803C1.50384 9.26958 2.05941 10.309 2.87521 11.1248C3.69102 11.9406 4.73042 12.4962 5.86198 12.7212C6.99353 12.9463 8.16642 12.8308 9.23232 12.3893C10.2982 11.9478 11.2093 11.2001 11.8502 10.2408C12.4912 9.28154 12.8333 8.15373 12.8333 7C12.8333 5.45291 12.2188 3.96918 11.1248 2.87521C10.0308 1.78125 8.5471 1.16667 7 1.16667ZM4.66662 9.91668C4.58998 9.91704 4.51404 9.90209 4.44325 9.87271C4.37246 9.84333 4.30826 9.8001 4.2544 9.74557C4.14516 9.6362 4.0838 9.48793 4.0838 9.33335C4.0838 9.17876 4.14516 9.0305 4.2544 8.92113L6.17553 7L4.25443 5.07891C4.15139 4.96832 4.09529 4.82207 4.09796 4.67094C4.10063 4.51982 4.16185 4.37563 4.26872 4.26876C4.3756 4.16188 4.51979 4.10066 4.67091 4.09799C4.82204 4.09532 4.96829 4.15142 5.07887 4.25446L6.99997 6.17556L8.92106 4.25446C9.03164 4.15142 9.1779 4.09532 9.32903 4.09799C9.48015 4.10066 9.62434 4.16188 9.73121 4.26876C9.83809 4.37563 9.89931 4.51982 9.90198 4.67094C9.90464 4.82207 9.84855 4.96832 9.74551 5.07891L7.82441 7L9.74554 8.92113C9.85478 9.0305 9.91614 9.17876 9.91614 9.33335C9.91614 9.48793 9.85478 9.6362 9.74554 9.74557C9.69168 9.8001 9.62748 9.84333 9.55669 9.87271C9.4859 9.90209 9.40996 9.91704 9.33332 9.91668C9.25668 9.91704 9.18073 9.90209 9.10995 9.87271C9.03916 9.84333 8.97495 9.8001 8.9211 9.74557L6.99997 7.82444L5.07884 9.74557C5.02499 9.8001 4.96078 9.84333 4.88999 9.87271C4.81921 9.90209 4.74326 9.91704 4.66662 9.91668Z","fill","currentColor"],[3,"id"],["width","14","height","14","fill","white"]],template:function(o,n){o&1&&(q(),ee(0,"g"),ne(1,"path",0),te(),ee(2,"defs")(3,"clipPath",1),ne(4,"rect",2),te()()),o&2&&(m("clip-path",n.pathId),c(3),le("id",n.pathId))},encapsulation:2})}return t})();var Le=`
185
+ .p-chip {
186
+ display: inline-flex;
187
+ align-items: center;
188
+ background: dt('chip.background');
189
+ color: dt('chip.color');
190
+ border-radius: dt('chip.border.radius');
191
+ padding-block: dt('chip.padding.y');
192
+ padding-inline: dt('chip.padding.x');
193
+ gap: dt('chip.gap');
194
+ }
195
+
196
+ .p-chip-icon {
197
+ color: dt('chip.icon.color');
198
+ font-size: dt('chip.icon.size');
199
+ width: dt('chip.icon.size');
200
+ height: dt('chip.icon.size');
201
+ }
202
+
203
+ .p-chip-image {
204
+ border-radius: 50%;
205
+ width: dt('chip.image.width');
206
+ height: dt('chip.image.height');
207
+ margin-inline-start: calc(-1 * dt('chip.padding.y'));
208
+ }
209
+
210
+ .p-chip:has(.p-chip-remove-icon) {
211
+ padding-inline-end: dt('chip.padding.y');
212
+ }
213
+
214
+ .p-chip:has(.p-chip-image) {
215
+ padding-block-start: calc(dt('chip.padding.y') / 2);
216
+ padding-block-end: calc(dt('chip.padding.y') / 2);
217
+ }
218
+
219
+ .p-chip-remove-icon {
220
+ cursor: pointer;
221
+ font-size: dt('chip.remove.icon.size');
222
+ width: dt('chip.remove.icon.size');
223
+ height: dt('chip.remove.icon.size');
224
+ color: dt('chip.remove.icon.color');
225
+ border-radius: 50%;
226
+ transition:
227
+ outline-color dt('chip.transition.duration'),
228
+ box-shadow dt('chip.transition.duration');
229
+ outline-color: transparent;
230
+ }
231
+
232
+ .p-chip-remove-icon:focus-visible {
233
+ box-shadow: dt('chip.remove.icon.focus.ring.shadow');
234
+ outline: dt('chip.remove.icon.focus.ring.width') dt('chip.remove.icon.focus.ring.style') dt('chip.remove.icon.focus.ring.color');
235
+ outline-offset: dt('chip.remove.icon.focus.ring.offset');
236
+ }
237
+ `;var nt=["removeicon"],ot=["*"];function it(t,l){if(t&1){let e=$();f(0,"img",4),w("error",function(n){C(e);let a=r();return T(a.imageError(n))}),b()}if(t&2){let e=r();d(e.cx("image")),i("pBind",e.ptm("image"))("src",e.image,ce)("alt",e.alt)}}function at(t,l){if(t&1&&L(0,"span",6),t&2){let e=r(2);d(e.icon),i("pBind",e.ptm("icon"))("ngClass",e.cx("icon"))}}function rt(t,l){if(t&1&&p(0,at,1,4,"span",5),t&2){let e=r();i("ngIf",e.icon)}}function ct(t,l){if(t&1&&(f(0,"div",7),A(1),b()),t&2){let e=r();d(e.cx("label")),i("pBind",e.ptm("label")),c(),F(e.label)}}function lt(t,l){if(t&1){let e=$();f(0,"span",11),w("click",function(n){C(e);let a=r(3);return T(a.close(n))})("keydown",function(n){C(e);let a=r(3);return T(a.onKeydown(n))}),b()}if(t&2){let e=r(3);d(e.removeIcon),i("pBind",e.ptm("removeIcon"))("ngClass",e.cx("removeIcon")),m("tabindex",e.disabled?-1:0)("aria-label",e.removeAriaLabel)}}function st(t,l){if(t&1){let e=$();q(),f(0,"svg",12),w("click",function(n){C(e);let a=r(3);return T(a.close(n))})("keydown",function(n){C(e);let a=r(3);return T(a.onKeydown(n))}),b()}if(t&2){let e=r(3);d(e.cx("removeIcon")),i("pBind",e.ptm("removeIcon")),m("tabindex",e.disabled?-1:0)("aria-label",e.removeAriaLabel)}}function dt(t,l){if(t&1&&(H(0),p(1,lt,1,6,"span",9)(2,st,1,5,"svg",10),G()),t&2){let e=r(2);c(),i("ngIf",e.removeIcon),c(),i("ngIf",!e.removeIcon)}}function pt(t,l){}function gt(t,l){t&1&&p(0,pt,0,0,"ng-template")}function ut(t,l){if(t&1){let e=$();f(0,"span",13),w("click",function(n){C(e);let a=r(2);return T(a.close(n))})("keydown",function(n){C(e);let a=r(2);return T(a.onKeydown(n))}),p(1,gt,1,0,null,14),b()}if(t&2){let e=r(2);d(e.cx("removeIcon")),i("pBind",e.ptm("removeIcon")),m("tabindex",e.disabled?-1:0)("aria-label",e.removeAriaLabel),c(),i("ngTemplateOutlet",e.removeIconTemplate||e._removeIconTemplate)}}function mt(t,l){if(t&1&&(H(0),p(1,dt,3,2,"ng-container",3)(2,ut,2,6,"span",8),G()),t&2){let e=r();c(),i("ngIf",!e.removeIconTemplate&&!e._removeIconTemplate),c(),i("ngIf",e.removeIconTemplate||e._removeIconTemplate)}}var ft={root:({instance:t})=>({display:!t.visible&&"none"})},bt={root:({instance:t})=>["p-chip p-component",{"p-disabled":t.disabled}],image:"p-chip-image",icon:"p-chip-icon",label:"p-chip-label",removeIcon:"p-chip-remove-icon"},Ne=(()=>{class t extends j{name="chip";style=Le;classes=bt;inlineStyles=ft;static \u0275fac=(()=>{let e;return function(n){return(e||(e=_(t)))(n||t)}})();static \u0275prov=B({token:t,factory:t.\u0275fac})}return t})();var Ae=new M("CHIP_INSTANCE"),ht=(()=>{class t extends X{componentName="Chip";$pcChip=u(Ae,{optional:!0,skipSelf:!0})??void 0;bindDirectiveInstance=u(g,{self:!0});onAfterViewChecked(){this.bindDirectiveInstance.setAttrs(this.ptms(["host","root"]))}label;icon;image;alt;styleClass;disabled=!1;removable=!1;removeIcon;onRemove=new Q;onImageError=new Q;visible=!0;get removeAriaLabel(){return this.config.getTranslation(fe.ARIA).removeLabel}get chipProps(){return this._chipProps}set chipProps(e){this._chipProps=e,e&&typeof e=="object"&&Object.entries(e).forEach(([o,n])=>this[`_${o}`]!==n&&(this[`_${o}`]=n))}_chipProps;_componentStyle=u(Ne);removeIconTemplate;templates;_removeIconTemplate;onAfterContentInit(){this.templates.forEach(e=>{e.getType()==="removeicon"?this._removeIconTemplate=e.template:this._removeIconTemplate=e.template})}onChanges(e){if(e.chipProps&&e.chipProps.currentValue){let{currentValue:o}=e.chipProps;o.label!==void 0&&(this.label=o.label),o.icon!==void 0&&(this.icon=o.icon),o.image!==void 0&&(this.image=o.image),o.alt!==void 0&&(this.alt=o.alt),o.styleClass!==void 0&&(this.styleClass=o.styleClass),o.removable!==void 0&&(this.removable=o.removable),o.removeIcon!==void 0&&(this.removeIcon=o.removeIcon)}}close(e){this.visible=!1,this.onRemove.emit(e)}onKeydown(e){(e.key==="Enter"||e.key==="Backspace")&&this.close(e)}imageError(e){this.onImageError.emit(e)}get dataP(){return this.cn({removable:this.removable})}static \u0275fac=(()=>{let e;return function(n){return(e||(e=_(t)))(n||t)}})();static \u0275cmp=I({type:t,selectors:[["p-chip"]],contentQueries:function(o,n,a){if(o&1&&N(a,nt,4)(a,z,4),o&2){let s;y(s=v())&&(n.removeIconTemplate=s.first),y(s=v())&&(n.templates=s)}},hostVars:6,hostBindings:function(o,n){o&2&&(m("aria-label",n.label)("data-p",n.dataP),de(n.sx("root")),d(n.cn(n.cx("root"),n.styleClass)))},inputs:{label:"label",icon:"icon",image:"image",alt:"alt",styleClass:"styleClass",disabled:[2,"disabled","disabled",k],removable:[2,"removable","removable",k],removeIcon:"removeIcon",chipProps:"chipProps"},outputs:{onRemove:"onRemove",onImageError:"onImageError"},features:[P([Ne,{provide:Ae,useExisting:t},{provide:R,useExisting:t}]),D([g]),x],ngContentSelectors:ot,decls:6,vars:4,consts:[["iconTemplate",""],[3,"pBind","class","src","alt","error",4,"ngIf","ngIfElse"],[3,"pBind","class",4,"ngIf"],[4,"ngIf"],[3,"error","pBind","src","alt"],[3,"pBind","class","ngClass",4,"ngIf"],[3,"pBind","ngClass"],[3,"pBind"],["role","button",3,"pBind","class","click","keydown",4,"ngIf"],["role","button",3,"pBind","class","ngClass","click","keydown",4,"ngIf"],["data-p-icon","times-circle","role","button",3,"pBind","class","click","keydown",4,"ngIf"],["role","button",3,"click","keydown","pBind","ngClass"],["data-p-icon","times-circle","role","button",3,"click","keydown","pBind"],["role","button",3,"click","keydown","pBind"],[4,"ngTemplateOutlet"]],template:function(o,n){if(o&1&&(Z(),Y(0),p(1,it,1,5,"img",1)(2,rt,1,1,"ng-template",null,0,pe)(4,ct,2,4,"div",2)(5,mt,3,2,"ng-container",3)),o&2){let a=se(3);c(),i("ngIf",n.image)("ngIfElse",a),c(3),i("ngIf",n.label),c(),i("ngIf",n.removable)}},dependencies:[O,J,W,V,De,h,g],encapsulation:2,changeDetection:0})}return t})(),En=(()=>{class t{static \u0275fac=function(o){return new(o||t)};static \u0275mod=S({type:t});static \u0275inj=E({imports:[ht,h,h]})}return t})();export{Se as a,on as b,He as c,At as d,ht as e,En as f};
@@ -20,8 +20,16 @@
20
20
  -->
21
21
  <link rel="icon" type="image/svg+xml" href="favicon.svg">
22
22
  <link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
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{--sm-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--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:#f59e0b;--sm-edge-references:#3b82f6;--sm-edge-mentions:#9ca3af;--sm-edge-supersedes:#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:#92400e;--sm-severity-error:#991b1b;--sm-severity-warn-bg:rgba(254, 243, 199, .35);--sm-severity-error-bg:rgba(254, 226, 226, .35);--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}</style><link rel="stylesheet" href="styles-CBPFNGXA.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-CBPFNGXA.css"></noscript></head>
23
+ <!--
24
+ Stardos Stencil powers the "Beta" stamp next to the wordmark in the
25
+ top bar (mirrors web/index.html). Single weight, only used by that
26
+ one decorative element — keep the request minimal.
27
+ -->
28
+ <link rel="preconnect" href="https://fonts.googleapis.com">
29
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
30
+ <style>@font-face{font-family:'Stardos Stencil';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/stardosstencil/v15/X7n44bcuGPC8hrvEOHXOgaKCc2TpU3tjuQWs.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
31
+ <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{--sm-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--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:#f59e0b;--sm-edge-references:#3b82f6;--sm-edge-mentions:#9ca3af;--sm-edge-supersedes:#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:#92400e;--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-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}</style><link rel="stylesheet" href="styles-UAABA7VK.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-UAABA7VK.css"></noscript></head>
24
32
  <body>
25
33
  <app-root></app-root>
26
- <link rel="modulepreload" href="chunk-WTAL2RK4.js"><link rel="modulepreload" href="chunk-JKJGGXCS.js"><link rel="modulepreload" href="chunk-3R7E3HPC.js"><link rel="modulepreload" href="chunk-Q7L6LLAK.js"><script src="main-AAYGMON4.js" type="module"></script></body>
34
+ <link rel="modulepreload" href="chunk-ETTRVTFV.js"><link rel="modulepreload" href="chunk-PMIMYHBM.js"><link rel="modulepreload" href="chunk-OKO3QOH6.js"><link rel="modulepreload" href="chunk-LFIE4SCX.js"><link rel="modulepreload" href="chunk-3R7E3HPC.js"><link rel="modulepreload" href="chunk-Q7L6LLAK.js"><script src="main-BSYMJKTL.js" type="module"></script></body>
27
35
  </html>
@@ -0,0 +1 @@
1
+ import{a as q,b as je,c as We}from"./chunk-ETTRVTFV.js";import{a as Se,b as Pe,c as Ce,d as Te,e as Ae,f as Ee,g as xe,h as Re,i as Oe,k as De,l as Fe,m as Ne,p as P,q as $e,r as Ue}from"./chunk-PMIMYHBM.js";import{a as C,b as Be,c as He,d as Ke,e as Qe}from"./chunk-OKO3QOH6.js";import{B as me,Ca as ge,Fa as he,Ia as fe,Ic as Me,J as w,Ja as ve,Jc as Le,Ka as x,N as U,Na as D,O as s,Oa as F,S as B,T as H,Ta as g,Tb as p,Ua as l,Va as c,Wa as f,Y as K,Zc as X,_c as Y,ba as ue,c as de,ca as S,cd as Z,d as pe,da as Q,db as V,dd as d,f as W,fb as R,hb as _,ka as z,m as O,oa as a,qc as _e,rc as ke,sc as N,tb as ye,tc as Ie,uc as we,vb as be,wa as G,wb as m,xb as h,yb as J}from"./chunk-LFIE4SCX.js";import"./chunk-3R7E3HPC.js";import"./chunk-Q7L6LLAK.js";var ze=[{path:"",pathMatch:"full",redirectTo:"graph"},{path:"graph",loadComponent:()=>import("./chunk-BORRASJB.js").then(n=>n.GraphView),data:{title:"Graph"}},{path:"list",loadComponent:()=>import("./chunk-7CAK6MVK.js").then(n=>n.ListView),data:{title:"List"}},{path:"**",redirectTo:"graph"}];var k={errors:{unknownMode:n=>`SKILL_MAP_MODE: unknown value "${n}"`,restPrefix:n=>`BFF error [${n}]: `,malformedResponse:"BFF returned a malformed response",demoFetchFailed:(n,e)=>`Demo bundle fetch failed for "${n}": ${e}`,demoParseFailed:(n,e)=>`Demo bundle parse failed for "${n}": ${e}`,graphFormatNotInDemo:n=>`Graph format "${n}" is not bundled in demo mode (only "ascii").`}};var v={connected:n=>`[ws] connected to ${n}`,closed:(n,e)=>`[ws] closed (code=${n}, reason="${e}")`,malformedFrame:n=>`[ws] malformed frame dropped: ${n}`,socketError:n=>`[ws] socket error: ${n}`,reconnectScheduled:(n,e)=>`[ws] reconnect attempt ${e} scheduled in ${n}ms`,reconnectGiveUp:n=>`[ws] giving up after ${n} failed reconnect attempts`};var Ge=[1e3,2e3,4e3,8e3,16e3,3e4],ce=10,ot=new Set([1e3,1001]);function st(){return typeof window>"u"||!window.location?"ws://127.0.0.1:4242/ws":`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws`}var T=class n{mode=s(C);destroyRef=s(K);subject=new pe;socket=null;reconnectTimer=null;reconnectAttempt=0;disposed=!1;socketFactory=e=>new WebSocket(e);url=st();events$;_setSocketFactory(e){this.socketFactory=e}_setUrl(e){this.url=e}constructor(){this.mode!=="live"?this.events$=W:this.events$=new de(e=>{!this.socket&&!this.disposed&&this.connect();let t=this.subject.subscribe(e);return()=>t.unsubscribe()}).pipe(me({resetOnRefCountZero:!1})),this.destroyRef.onDestroy(()=>this.disconnect())}disconnect(){if(!this.disposed){if(this.disposed=!0,this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.socket){try{this.socket.close(1e3,"client disconnect")}catch{}this.socket=null}this.subject.complete()}}ngOnDestroy(){this.disconnect()}connect(){if(this.disposed)return;let e;try{e=this.socketFactory(this.url)}catch(t){let i=t instanceof Error?t.message:String(t);console.warn(v.socketError(i)),this.scheduleReconnect();return}this.socket=e,e.onopen=()=>{this.reconnectAttempt=0,console.info(v.connected(this.url))},e.onmessage=t=>{this.handleFrame(t.data)},e.onerror=t=>{let i=typeof t=="object"&&t!==null&&"message"in t?String(t.message??"unknown"):"unknown";console.warn(v.socketError(i))},e.onclose=t=>{console.info(v.closed(t.code,t.reason)),this.socket=null,!this.disposed&&(ot.has(t.code)||this.scheduleReconnect())}}handleFrame(e){if(typeof e!="string"){console.warn(v.malformedFrame("non-string frame"));return}let t;try{t=JSON.parse(e)}catch(i){let r=i instanceof Error?i.message:String(i);console.warn(v.malformedFrame(r));return}if(!We(t)){console.warn(v.malformedFrame("envelope shape"));return}this.subject.next(t)}scheduleReconnect(){if(this.disposed)return;if(this.reconnectAttempt>=ce){console.warn(v.reconnectGiveUp(ce)),this.subject.error(new Error(v.reconnectGiveUp(ce)));return}let e=Math.min(this.reconnectAttempt,Ge.length-1),t=Ge[e];this.reconnectAttempt+=1,console.info(v.reconnectScheduled(t,this.reconnectAttempt)),this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},t)}get _reconnectAttempt(){return this.reconnectAttempt}static \u0275fac=function(t){return new(t||n)};static \u0275prov=w({token:n,factory:n.\u0275fac,providedIn:"root"})};function ee(n){let e=new TextEncoder().encode(n),t="";for(let i=0;i<e.length;i++)t+=String.fromCharCode(e[i]);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}var u="/api",te=class n{http;ws;kindRegistry;contributionsRegistry;constructor(e,t,i,r){this.http=e??s(N),this.ws=t??s(T),this.kindRegistry=i??s(P),this.contributionsRegistry=r??s(q)}async health(){return this.getJson(`${u}/health`)}async loadScan(){let[e]=await Promise.all([this.getJson(`${u}/scan`),this.listNodes({limit:0}).catch(()=>null)]);return e}async runScan(){return this.patchJson(`${u}/scan`,{},"POST")}async listNodes(e={}){let t=lt(e),i=await this.getJson(`${u}/nodes${t}`);return this.ingestRegistry(i.kindRegistry),this.ingestContributionsRegistry(i.contributionsRegistry),i}async getNode(e,t={}){let i=ee(e),r=t.includeBody?"?include=body":"";try{let o=await this.getJson(`${u}/nodes/${i}${r}`);return this.ingestRegistry(o.kindRegistry),this.ingestContributionsRegistry(o.contributionsRegistry),o}catch(o){if(o instanceof d&&o.code==="not-found")return null;throw o}}async listLinks(e={}){let t=ct(e),i=await this.getJson(`${u}/links${t}`);return this.ingestRegistry(i.kindRegistry),this.ingestContributionsRegistry(i.contributionsRegistry),i}async listIssues(e={}){let t=dt(e),i=await this.getJson(`${u}/issues${t}`);return this.ingestRegistry(i.kindRegistry),this.ingestContributionsRegistry(i.contributionsRegistry),i}async loadGraph(e="ascii"){let t=`${u}/graph?format=${encodeURIComponent(e)}`;try{return await O(this.http.get(t,{responseType:"text"}))}catch(i){throw this.translateError(i)}}async loadConfig(){let e=await this.getJson(`${u}/config`);return this.ingestRegistry(e.kindRegistry),this.ingestContributionsRegistry(e.contributionsRegistry),e.value}async listPlugins(){let e=await this.getJson(`${u}/plugins`);return this.ingestRegistry(e.kindRegistry),this.ingestContributionsRegistry(e.contributionsRegistry),e}async setPluginEnabled(e,t){let i=await this.patchJson(`${u}/plugins/${encodeURIComponent(e)}`,{enabled:t});return this.ingestRegistry(i.kindRegistry),this.ingestContributionsRegistry(i.contributionsRegistry),i}async setPluginExtensionEnabled(e,t,i){let r=await this.patchJson(`${u}/plugins/${encodeURIComponent(e)}/extensions/${encodeURIComponent(t)}`,{enabled:i});return this.ingestRegistry(r.kindRegistry),this.ingestContributionsRegistry(r.contributionsRegistry),r}async setFavorite(e){let t=ee(e);try{await O(this.http.put(`${u}/favorites/${t}`,null))}catch(i){throw this.translateError(i)}}async unsetFavorite(e){let t=ee(e);try{await O(this.http.delete(`${u}/favorites/${t}`))}catch(i){throw this.translateError(i)}}ingestRegistry(e){e&&this.kindRegistry.ingest(e)}ingestContributionsRegistry(e){this.contributionsRegistry.setRegistry(e)}async lookupContribution(e,t,i){let r=new URLSearchParams({path:i});try{return(await this.getJson(`${u}/contributions/${encodeURIComponent(e)}/${encodeURIComponent(t)}?${r.toString()}`)).items[0]??null}catch{return null}}events(){return this.ws.events$}async getJson(e){try{return await O(this.http.get(e))}catch(t){throw this.translateError(t)}}async patchJson(e,t,i="PATCH"){try{let r=i==="POST"?this.http.post(e,t):this.http.patch(e,t);return await O(r)}catch(r){throw this.translateError(r)}}translateError(e){if(e instanceof d)return e;if(e instanceof ke){let i=pt(e.error);return i?new d(i.error.code,i.error.message,i.error.details):new d("internal",e.message||k.errors.malformedResponse)}let t=e instanceof Error?e.message:String(e);return new d("internal",t)}static \u0275fac=function(t){return new(t||n)(U(N),U(T),U(P),U(q))};static \u0275prov=w({token:n,factory:n.\u0275fac,providedIn:"root"})};function lt(n){let e=new URLSearchParams;n.kind&&n.kind.length>0&&e.set("kind",n.kind.join(",")),n.hasIssues!==void 0&&e.set("hasIssues",String(n.hasIssues)),n.path&&e.set("path",n.path),n.limit!==void 0&&e.set("limit",String(n.limit)),n.offset!==void 0&&e.set("offset",String(n.offset));let t=e.toString();return t?`?${t}`:""}function ct(n){let e=new URLSearchParams;n.kind&&n.kind.length>0&&e.set("kind",n.kind.join(",")),n.from&&e.set("from",n.from),n.to&&e.set("to",n.to);let t=e.toString();return t?`?${t}`:""}function dt(n){let e=new URLSearchParams;n.severity&&e.set("severity",n.severity),n.ruleId&&e.set("ruleId",n.ruleId),n.node&&e.set("node",n.node);let t=e.toString();return t?`?${t}`:""}function pt(n){if(typeof n!="object"||n===null)return null;let e=n;if(e.ok!==!1)return null;let t=e.error;if(typeof t!="object"||t===null)return null;let i=t;return typeof i.code!="string"||typeof i.message!="string"?null:{ok:!1,error:{code:i.code,message:i.message,details:i.details}}}var mt="data.json",ut="data.meta.json",ne=class{constructor(e=globalThis.fetch.bind(globalThis),t){this.fetchImpl=e;this.kindRegistry=t??s(P)}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(gt(e))return this.kindRegistry.ingest(t.nodes.kindRegistry),t.nodes;let i=await this.loadData(),r=i.issues,o=i.nodes;if(e.kind&&e.kind.length>0){let A=new Set(e.kind);o=o.filter(E=>A.has(E.kind))}if(e.path){let A=vt(e.path);o=o.filter(E=>A.test(E.path))}if(e.hasIssues===!0){let A=Ve(r);o=o.filter(E=>A.has(E.path))}else if(e.hasIssues===!1){let A=Ve(r);o=o.filter(E=>!A.has(E.path))}let y=o.length,I=e.offset??0,$=e.limit??1e3,b=o.slice(I,I+$);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:y,returned:b.length,page:{offset:I,limit:$}},kindRegistry:t.nodes.kindRegistry}}async getNode(e,t={}){let[i,r]=await Promise.all([this.loadData(),this.loadMeta()]),o=i.nodes.find(b=>b.path===e);if(!o)return null;let y=i.links.filter(b=>b.target===e),I=i.links.filter(b=>b.source===e),$=i.issues.filter(b=>b.nodeIds.includes(e));return this.kindRegistry.ingest(r.nodes.kindRegistry),{schemaVersion:"1",kind:"node",item:o,links:{incoming:y,outgoing:I},issues:$,kindRegistry:r.nodes.kindRegistry}}async listLinks(e={}){let t=await this.loadMeta();if(ht(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(y=>o.has(y.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(ft(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.ruleId&&(r=r.filter(o=>o.ruleId===e.ruleId)),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,ruleId:e.ruleId??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 d("bad-query",k.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 d("demo-readonly","Favorites are not available in demo mode (static bundle is immutable).")}async unsetFavorite(e){throw new d("demo-readonly","Favorites are not available in demo mode (static bundle is immutable).")}async setPluginEnabled(e,t){throw new d("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async setPluginExtensionEnabled(e,t,i){throw new d("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async runScan(){throw new d("demo-readonly","Manual scan is not available in demo mode (static bundle is immutable).")}async lookupContribution(){return null}events(){return W}loadMeta(){return this.metaPromise||(this.metaPromise=this.fetchJson(ut)),this.metaPromise}loadData(){return this.dataPromise||(this.dataPromise=this.fetchJson(mt)),this.dataPromise}async fetchJson(e){let t;try{t=await this.fetchImpl(e)}catch(i){let r=i instanceof Error?i.message:String(i);throw new d("internal",k.errors.demoFetchFailed(e,r))}if(!t.ok)throw new d("internal",k.errors.demoFetchFailed(e,`HTTP ${t.status}`));try{return await t.json()}catch(i){let r=i instanceof Error?i.message:String(i);throw new d("internal",k.errors.demoParseFailed(e,r))}}};function gt(n){return!(n.kind&&n.kind.length>0||n.hasIssues!==void 0||n.path||n.offset!==void 0&&n.offset!==0||n.limit!==void 0)}function ht(n){return!(n.kind&&n.kind.length>0||n.from||n.to)}function ft(n){return!(n.severity||n.ruleId||n.node)}function Ve(n){let e=new Set;for(let t of n)for(let i of t.nodeIds)e.add(i);return e}function vt(n){let t=n.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${t}$`)}function Je(){let n=s(C);if(n==="live")return new te(s(N),s(T));if(n==="demo")return new ne;let e=n;throw new Error(k.errors.unknownMode(String(e)))}var Xe={providers:[ue(),xe(ze,Re()),Ie(we()),Le({}),he(async()=>{let n=s(Me),[{default:e},{definePreset:t}]=await Promise.all([import("./chunk-FWFBO7KA.js"),import("./chunk-UJOZYR5I.js")]),i=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"}}});n.setThemeConfig({theme:{preset:i,options:{darkModeSelector:".app-dark"}}})}),{provide:C,useFactory:Be},{provide:Z,useFactory:Je}]};var ie={brand:"skill-map",beta:"Beta",nav:{graph:"Graph",list:"List",searchLabel:"Search nodes (coming soon)",searchTooltip:"Search \u2014 coming soon"},actions:{},badge:{nodes:"nodes",graphInfo:(n,e)=>`${n.toLocaleString()} nodes \xB7 ${e.toLocaleString()} links`,graphInfoA11y:(n,e)=>`Graph contains ${n} 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 \u2014 see you there."}};var M={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 L={available:"Update available",tooltip:n=>`v${n} is available. Run \`npm i -g @skill-map/cli@latest\` to update.`,a11yLabel:n=>`Update available: version ${n}`,versionLabel:n=>`v${n}`,versionTooltip:n=>`skill-map CLI v${n}`,versionA11yLabel:n=>`Running version ${n}`};var re="sm-debug-slots",yt="debug-slots",bt="is-debug-slots",oe=class n{visible=S(!1);constructor(){this.visible.set(this.resolveInitial()),Q(()=>{let e=this.visible();document.documentElement.classList.toggle(bt,e)})}toggle(){let e=!this.visible();this.visible.set(e);try{localStorage.setItem(re,e?"1":"0")}catch{}}resolveInitial(){let t=new URLSearchParams(window.location.search).get(yt);if(t==="1"||t==="true"){try{localStorage.setItem(re,"1")}catch{}return!0}if(t==="0"||t==="false"){try{localStorage.setItem(re,"0")}catch{}return!1}try{return localStorage.getItem(re)==="1"}catch{return!1}}static \u0275fac=function(t){return new(t||n)};static \u0275prov=w({token:n,factory:n.\u0275fac,providedIn:"root"})};var Ye="search",Ze="kinds",qe="stabilities",et="hasIssues",tt="staleOnly",se=class n{filters=s(Ue);router=s(Te);activatedRoute=s(Pe);kindRegistry=s(P);destroyRef=s(K);suppressUrlReadback=!1;constructor(){this.applyUrlToFilters(this.currentParams()),this.router.events.pipe(Oe(this.destroyRef)).subscribe(e=>{if(e instanceof Se){if(this.suppressUrlReadback)return;this.applyUrlToFilters(this.currentParams())}}),Q(()=>{let e=this.computeQueryParams();this.writeQueryParams(e)})}currentParams(){let e=this.router.parseUrl(this.router.url),t=new URLSearchParams;for(let[i,r]of Object.entries(e.queryParams))Array.isArray(r)?t.set(i,r.join(",")):r!=null&&t.set(i,String(r));return this.activatedRoute,t}applyUrlToFilters(e){let t=e.get(Ye)??"";t!==this.filters.searchText()&&this.filters.setSearchText(t);let i=_t(e.get(Ze),this.kindRegistry.kinds().map(I=>I.name));nt(i,this.filters.selectedKinds())||this.filters.setKinds(i);let r=kt(e.get(qe));nt(r,this.filters.selectedStabilities())||this.filters.setStabilities(r);let o=e.get(et)==="true";o!==this.filters.hasIssuesOnly()&&this.filters.setHasIssuesOnly(o);let y=e.get(tt)==="true";y!==this.filters.staleOnly()&&this.filters.setStaleOnly(y)}computeQueryParams(){let e=this.filters.searchText().trim(),t=this.filters.selectedKinds(),i=this.filters.selectedStabilities(),r=this.filters.hasIssuesOnly(),o=this.filters.staleOnly();return{[Ye]:e.length>0?e:null,[Ze]:t.length>0?t.join(","):null,[qe]:i.length>0?i.join(","):null,[et]:r?"true":null,[tt]:o?"true":null}}writeQueryParams(e){let t=this.currentParams(),i=new Map(Object.entries(e)),r=!1;for(let[o,y]of i)if((t.get(o)??null)!==y){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||n)};static \u0275prov=w({token:n,factory:n.\u0275fac,providedIn:"root"})};function _t(n,e){if(!n)return[];let t=new Set(e);return n.split(",").map(i=>i.trim()).filter(i=>t.has(i))}function kt(n){if(!n)return[];let e=new Set($e);return n.split(",").map(t=>t.trim()).filter(t=>e.has(t))}function nt(n,e){if(n.length!==e.length)return!1;for(let t=0;t<n.length;t++)if(n[t]!==e[t])return!1;return!0}var it={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 St(n,e){if(n&1){let t=V();l(0,"div",0),f(1,"span",1),l(2,"p",2),m(3),l(4,"code",3),m(5),c()(),l(6,"a",4),m(7),c(),l(8,"p-button",5),R("onClick",function(){B(t);let r=_();return H(r.dismiss())}),c()()}if(n&2){let t=_();a(3),J(" ",t.texts.body," "),a(2),h(t.texts.installCommand),a(),g("href",t.texts.homeHref,z),a(),h(t.texts.homeCta),a(),g("ariaLabel",t.texts.dismissAria)("text",!0)("rounded",!0)}}var rt="sm.demoBannerDismissed",ae=class n{mode=s(C);texts=it;dismissed=S(this.readDismissed());visible=p(()=>this.mode==="demo"&&!this.dismissed());dismiss(){this.dismissed.set(!0);try{globalThis.localStorage?.setItem(rt,"1")}catch{}}readDismissed(){if(this.mode!=="demo")return!0;try{return globalThis.localStorage?.getItem(rt)==="1"}catch{return!1}}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=G({type:n,selectors:[["sm-demo-banner"]],decls:1,vars:1,consts:[["role","status","data-testid","demo-banner",1,"demo-banner"],["aria-hidden","true",1,"demo-banner__icon","pi","pi-info-circle"],[1,"demo-banner__body"],["data-testid","demo-banner-install",1,"demo-banner__cmd"],["data-testid","demo-banner-home",1,"demo-banner__home",3,"href"],["icon","pi pi-times","severity","secondary","size","small","data-testid","demo-banner-dismiss",3,"onClick","ariaLabel","text","rounded"]],template:function(t,i){t&1&&D(0,St,9,7,"div",0),t&2&&F(i.visible()?0:-1)},dependencies:[Y,X],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(--font-family-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);background:var(--p-content-background);border:1px solid var(--p-content-border-color);border-radius:.25rem;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-EQD7AYYJ.js").then(n=>n.SettingsModal)];function Ct(n,e){if(n&1&&(l(0,"span",10),m(1),c()),n&2){let t=_();g("pTooltip",t.versionTooltip()),x("aria-label",t.versionA11y()),a(),h(t.versionLabel())}}function Tt(n,e){if(n&1&&(l(0,"a",12),f(1,"i",27),l(2,"span"),m(3),c()()),n&2){let t=_();g("pTooltip",t.updateChipTooltip()),x("aria-label",t.updateChipA11y()),a(3),h(t.updateChipText)}}function At(n,e){if(n&1&&(l(0,"p",13),m(1),c()),n&2){let t=_();a(),h(t.rootLabel())}}function Et(n,e){if(n&1){let t=V();l(0,"sm-settings-modal",28),R("visibleChange",function(r){B(t);let o=_();return H(o.settingsOpen.set(r))}),c()}if(n&2){let t=_();g("visible",t.settingsOpen())}}var le=class n{loader=s(Ne);theme=s(Qe);dataSource=s(Z);_filterUrlSync=s(se);_debugSlots=s(oe);updateCheck=s(Ke);texts=ie;settingsTexts=He;settingsOpen=S(!1);openSettings(){this.settingsOpen.set(!0)}scanning=S(!1);scanError=S(null);async triggerScan(){if(!this.scanning()){this.scanning.set(!0),this.scanError.set(null);try{await this.dataSource.runScan(),await this.loader.load()}catch(e){let t=e instanceof d||e instanceof Error?e.message:String(e);this.scanError.set(t),console.warn(`triggerScan failed: ${t}`)}finally{this.scanning.set(!1)}}}updateChipText=L.available;updateChipTooltip=p(()=>L.tooltip(this.updateCheck.latest()??""));updateChipA11y=p(()=>L.a11yLabel(this.updateCheck.latest()??""));versionLabel=p(()=>L.versionLabel(this.updateCheck.current()??""));versionTooltip=p(()=>L.versionTooltip(this.updateCheck.current()??""));versionA11y=p(()=>L.versionA11yLabel(this.updateCheck.current()??""));count=this.loader.count;linkCount=p(()=>this.loader.scan()?.links?.length??0);graphInfoTooltip=p(()=>ie.badge.graphInfo(this.count(),this.linkCount()));graphInfoA11y=p(()=>ie.badge.graphInfoA11y(this.count(),this.linkCount()));rootLabel=p(()=>{let e=this.loader.scan()?.roots??[];if(e.length===0)return"";let t=e[0].replace(/[\\/]+$/,"");if(!t||t===".")return"";let i=t.split(/[\\/]/);return i[i.length-1]??""});themeMode=this.theme.mode;markSrc=p(()=>this.theme.resolved()==="dark"?"skill-map-mark-light.svg":"skill-map-mark-dark.svg");themeIcon=p(()=>{switch(this.themeMode()){case"auto":return"pi pi-desktop";case"light":return"pi pi-sun";case"dark":return"pi pi-moon"}});themeLabel=p(()=>{switch(this.themeMode()){case"auto":return M.toggleToLight;case"light":return M.toggleToDark;case"dark":return M.toggleToAuto}});themeTooltip=p(()=>{switch(this.themeMode()){case"auto":return M.currentAuto;case"light":return M.currentLight;case"dark":return M.currentDark}});ngOnInit(){this.loader.load(),this.updateCheck.load()}toggleTheme(){this.theme.toggle()}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=G({type:n,selectors:[["app-root"]],decls:41,vars:33,consts:[["role","alert","data-testid","viewport-warning",1,"viewport-warning"],[1,"viewport-warning__card"],["aria-hidden","true",1,"pi","pi-desktop","viewport-warning__icon"],[1,"viewport-warning__title"],[1,"viewport-warning__subtitle"],[1,"viewport-warning__body"],["data-testid","shell",1,"shell"],["data-testid","shell-topbar",1,"shell__topbar"],[1,"shell__brand"],["alt","","aria-hidden","true",1,"shell__brand-mark",3,"src"],["tooltipPosition","bottom","data-testid","shell-version",1,"shell__version",3,"pTooltip"],[1,"shell__beta"],["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"],["routerLink","/graph","routerLinkActive","is-active","data-testid","nav-graph"],["routerLink","/list","routerLinkActive","is-active","data-testid","nav-list"],["type","button","tooltipPosition","bottom","disabled","","data-testid","nav-search",1,"shell__nav-search",3,"pTooltip"],["aria-hidden","true",1,"pi","pi-search"],[1,"shell__actions"],["data-debug-slot","topbar.actions.indicator",1,"sm-debug-slot"],["slot","topbar.actions.indicator",3,"node"],["type","button","tooltipPosition","bottom","data-testid","shell-refresh",1,"shell__refresh",3,"click","pTooltip","disabled"],["aria-hidden","true"],["severity","secondary","size","small","data-testid","action-theme-toggle",3,"onClick","icon","ariaLabel","pTooltip","text","rounded"],["icon","pi pi-cog","severity","secondary","size","small","data-testid","action-settings",3,"onClick","ariaLabel","pTooltip","text","rounded"],[1,"shell__main"],["aria-hidden","true",1,"pi","pi-arrow-circle-up"],[3,"visibleChange","visible"]],template:function(t,i){if(t&1&&(l(0,"div",0)(1,"div",1),f(2,"i",2),l(3,"h2",3),m(4),c(),l(5,"p",4),m(6),c(),l(7,"p",5),m(8),c()()(),l(9,"div",6),f(10,"sm-demo-banner"),l(11,"header",7)(12,"div",8),f(13,"img",9),l(14,"div")(15,"h1"),m(16),D(17,Ct,2,3,"span",10),l(18,"span",11),m(19),c(),D(20,Tt,4,3,"a",12),c(),D(21,At,2,1,"p",13),c()(),l(22,"nav",14)(23,"a",15),m(24),c(),l(25,"a",16),m(26),c(),l(27,"button",17),f(28,"i",18),c()(),l(29,"div",19)(30,"div",20),f(31,"sm-view-contributions-host",21),c(),l(32,"button",22),R("click",function(){return i.triggerScan()}),f(33,"i",23),c(),l(34,"p-button",24),R("onClick",function(){return i.toggleTheme()}),c(),l(35,"p-button",25),R("onClick",function(){return i.openSettings()}),c()()(),l(36,"main",26),f(37,"router-outlet"),c(),ge(38,Et,1,1),fe(39,38,Pt),c()),t&2){let r;a(4),h(i.texts.viewportWarning.title),a(2),h(i.texts.viewportWarning.subtitle),a(2),h(i.texts.viewportWarning.body),a(5),g("src",i.markSrc(),z),a(3),J(" ",i.texts.brand," "),a(),F((r=i.updateCheck.current())?17:-1,r),a(),x("aria-label",i.texts.beta),a(),h(i.texts.beta),a(),F(i.updateCheck.isOutdated()?20:-1),a(),F(i.rootLabel()?21:-1),a(),x("aria-label",i.texts.a11y.viewSwitcher),a(2),h(i.texts.nav.graph),a(2),h(i.texts.nav.list),a(),g("pTooltip",i.texts.nav.searchTooltip),x("aria-label",i.texts.nav.searchLabel),a(4),g("node",null),a(),ye("is-spinning",i.scanning()),g("pTooltip",i.graphInfoTooltip())("disabled",i.scanning()),x("aria-label",i.graphInfoA11y()),a(),be(i.scanning()?"pi pi-refresh pi-spin":"pi pi-refresh"),a(),g("icon",i.themeIcon())("ariaLabel",i.themeLabel())("pTooltip",i.themeTooltip())("text",!0)("rounded",!0),a(),g("ariaLabel",i.settingsTexts.a11y.triggerLabel)("pTooltip",i.settingsTexts.triggerTooltip)("text",!0)("rounded",!0),a(4),ve(i.settingsOpen())}},dependencies:[Ce,Ae,Ee,Y,X,Fe,De,ae,je],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:2rem;padding:.75rem 1.5rem;background:var(--shell-topbar-bg);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__beta[_ngcontent-%COMP%]{font-family:Stardos Stencil,Geist,system-ui,sans-serif;font-weight:700;font-size:11px;line-height:1;letter-spacing:.12em;text-transform:uppercase;color:#ad322b;border:1.5px solid #ad322b;border-radius:3px;padding:3px 7px 2px;margin-left:6px;transform:rotate(-4deg);transform-origin:center;opacity:.92;-webkit-user-select:none;user-select:none;display:inline-block;vertical-align:middle}.app-dark[_nghost-%COMP%] .shell__beta[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__beta[_ngcontent-%COMP%]{color:#cf4640;border-color:#cf4640}.shell__version[_ngcontent-%COMP%]{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:3px;font-family:var(--p-monospace-font-family, ui-monospace, monospace);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 2px;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:999px;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}.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: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-search[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;margin-left:.25rem;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(:disabled){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}.shell__refresh[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:999px;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,Xe).catch(n=>console.error(n));