@skill-map/cli 0.47.1 → 0.49.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 (37) hide show
  1. package/dist/cli/tutorial/sm-master/SKILL.md +3 -2
  2. package/dist/cli/tutorial/sm-tutorial/SKILL.md +2 -2
  3. package/dist/cli.js +441 -108
  4. package/dist/index.js +7 -5
  5. package/dist/kernel/index.d.ts +23 -28
  6. package/dist/kernel/index.js +7 -5
  7. package/dist/ui/chunk-7EVKMO5A.js +1110 -0
  8. package/dist/ui/chunk-FDJ5FDGM.js +2 -0
  9. package/dist/ui/chunk-LBYK5DLL.js +123 -0
  10. package/dist/ui/chunk-MO37AU3M.js +1 -0
  11. package/dist/ui/{chunk-HAWX5WNM.js → chunk-NV5DRQPL.js} +2 -2
  12. package/dist/ui/chunk-OUNBYGMY.js +1 -0
  13. package/dist/ui/{chunk-CRWK2NFZ.js → chunk-QKL5B4RS.js} +1 -1
  14. package/dist/ui/chunk-RDYHTZW7.js +1066 -0
  15. package/dist/ui/{chunk-RT7E4S5B.js → chunk-YA64YJXF.js} +1 -1
  16. package/dist/ui/chunk-YRBZKMG6.js +2610 -0
  17. package/dist/ui/{chunk-22CKFAEU.js → chunk-YV7KWLC4.js} +1 -1
  18. package/dist/ui/index.html +2 -2
  19. package/dist/ui/main-EVGVBPDA.js +4 -0
  20. package/dist/ui/{styles-HI4A6IWA.css → styles-HWRPHKTJ.css} +1 -1
  21. package/package.json +5 -3
  22. package/dist/ui/chunk-3AKR33GE.js +0 -1
  23. package/dist/ui/chunk-3HLMBEDX.js +0 -124
  24. package/dist/ui/chunk-7K36273M.js +0 -809
  25. package/dist/ui/chunk-CO2ZOUSD.js +0 -90
  26. package/dist/ui/chunk-EPBUSS3I.js +0 -2
  27. package/dist/ui/chunk-K365TVPA.js +0 -1
  28. package/dist/ui/chunk-QCMLB44L.js +0 -123
  29. package/dist/ui/chunk-UIUGLD7F.js +0 -107
  30. package/dist/ui/chunk-UV3QRBRR.js +0 -135
  31. package/dist/ui/chunk-VNA3TMIO.js +0 -1
  32. package/dist/ui/chunk-VW2A6WZ3.js +0 -1
  33. package/dist/ui/chunk-WPUUCIS3.js +0 -1021
  34. package/dist/ui/chunk-XWU3YFSM.js +0 -315
  35. package/dist/ui/chunk-YOF6HQCQ.js +0 -2190
  36. package/dist/ui/chunk-ZZJ7XWDX.js +0 -1
  37. package/dist/ui/main-M4W7H6RY.js +0 -4
@@ -1,90 +0,0 @@
1
- import{U as k,Y as D,m as y,p as N,w as r,z as M}from"./chunk-WPUUCIS3.js";import{$a as x,Ib as m,Ic as u,L as a,M as l,O as s,Q as o,Yb as b,_a as f,ab as g,bb as v,ic as I,ja as p,la as c,lb as h,uc as T,yc as i}from"./chunk-HAWX5WNM.js";var w=`
2
- .p-inputtext {
3
- font-family: inherit;
4
- font-feature-settings: inherit;
5
- font-size: 1rem;
6
- color: dt('inputtext.color');
7
- background: dt('inputtext.background');
8
- padding-block: dt('inputtext.padding.y');
9
- padding-inline: dt('inputtext.padding.x');
10
- border: 1px solid dt('inputtext.border.color');
11
- transition:
12
- background dt('inputtext.transition.duration'),
13
- color dt('inputtext.transition.duration'),
14
- border-color dt('inputtext.transition.duration'),
15
- outline-color dt('inputtext.transition.duration'),
16
- box-shadow dt('inputtext.transition.duration');
17
- appearance: none;
18
- border-radius: dt('inputtext.border.radius');
19
- outline-color: transparent;
20
- box-shadow: dt('inputtext.shadow');
21
- }
22
-
23
- .p-inputtext:enabled:hover {
24
- border-color: dt('inputtext.hover.border.color');
25
- }
26
-
27
- .p-inputtext:enabled:focus {
28
- border-color: dt('inputtext.focus.border.color');
29
- box-shadow: dt('inputtext.focus.ring.shadow');
30
- outline: dt('inputtext.focus.ring.width') dt('inputtext.focus.ring.style') dt('inputtext.focus.ring.color');
31
- outline-offset: dt('inputtext.focus.ring.offset');
32
- }
33
-
34
- .p-inputtext.p-invalid {
35
- border-color: dt('inputtext.invalid.border.color');
36
- }
37
-
38
- .p-inputtext.p-variant-filled {
39
- background: dt('inputtext.filled.background');
40
- }
41
-
42
- .p-inputtext.p-variant-filled:enabled:hover {
43
- background: dt('inputtext.filled.hover.background');
44
- }
45
-
46
- .p-inputtext.p-variant-filled:enabled:focus {
47
- background: dt('inputtext.filled.focus.background');
48
- }
49
-
50
- .p-inputtext:disabled {
51
- opacity: 1;
52
- background: dt('inputtext.disabled.background');
53
- color: dt('inputtext.disabled.color');
54
- }
55
-
56
- .p-inputtext::placeholder {
57
- color: dt('inputtext.placeholder.color');
58
- }
59
-
60
- .p-inputtext.p-invalid::placeholder {
61
- color: dt('inputtext.invalid.placeholder.color');
62
- }
63
-
64
- .p-inputtext-sm {
65
- font-size: dt('inputtext.sm.font.size');
66
- padding-block: dt('inputtext.sm.padding.y');
67
- padding-inline: dt('inputtext.sm.padding.x');
68
- }
69
-
70
- .p-inputtext-lg {
71
- font-size: dt('inputtext.lg.font.size');
72
- padding-block: dt('inputtext.lg.padding.y');
73
- padding-inline: dt('inputtext.lg.padding.x');
74
- }
75
-
76
- .p-inputtext-fluid {
77
- width: 100%;
78
- }
79
- `;var P=`
80
- ${w}
81
-
82
- /* For PrimeNG */
83
- .p-inputtext.ng-invalid.ng-dirty {
84
- border-color: dt('inputtext.invalid.border.color');
85
- }
86
-
87
- .p-inputtext.ng-invalid.ng-dirty::placeholder {
88
- color: dt('inputtext.invalid.placeholder.color');
89
- }
90
- `,z={root:({instance:t})=>["p-inputtext p-component",{"p-filled":t.$filled(),"p-inputtext-sm":t.pSize==="small","p-inputtext-lg":t.pSize==="large","p-invalid":t.invalid(),"p-variant-filled":t.$variant()==="filled","p-inputtext-fluid":t.hasFluid}]},F=(()=>{class t extends y{name="inputtext";style=P;classes=z;static \u0275fac=(()=>{let n;return function(d){return(n||(n=c(t)))(d||t)}})();static \u0275prov=a({token:t,factory:t.\u0275fac})}return t})();var S=new s("INPUTTEXT_INSTANCE"),O=(()=>{class t extends D{componentName="InputText";hostName="";ptInputText=i();pInputTextPT=i();pInputTextUnstyled=i();bindDirectiveInstance=o(r,{self:!0});$pcInputText=o(S,{optional:!0,skipSelf:!0})??void 0;ngControl=o(k,{optional:!0,self:!0});pcFluid=o(M,{optional:!0,host:!0,skipSelf:!0});pSize;variant=i();fluid=i(void 0,{transform:u});invalid=i(void 0,{transform:u});$variant=T(()=>this.variant()||this.config.inputStyle()||this.config.inputVariant());_componentStyle=o(F);constructor(){super(),p(()=>{let n=this.ptInputText()||this.pInputTextPT();n&&this.directivePT.set(n)}),p(()=>{this.pInputTextUnstyled()&&this.directiveUnstyled.set(this.pInputTextUnstyled())})}onAfterViewInit(){this.writeModelValue(this.ngControl?.value??this.el.nativeElement.value),this.cd.detectChanges()}onAfterViewChecked(){this.bindDirectiveInstance.setAttrs(this.ptm("root"))}onDoCheck(){this.writeModelValue(this.ngControl?.value??this.el.nativeElement.value)}onInput(){this.writeModelValue(this.ngControl?.value??this.el.nativeElement.value)}get hasFluid(){return this.fluid()??!!this.pcFluid}get dataP(){return this.cn({invalid:this.invalid(),fluid:this.hasFluid,filled:this.$variant()==="filled",[this.pSize]:this.pSize})}static \u0275fac=function(e){return new(e||t)};static \u0275dir=x({type:t,selectors:[["","pInputText",""]],hostVars:3,hostBindings:function(e,d){e&1&&m("input",function(){return d.onInput()}),e&2&&(h("data-p",d.dataP),b(d.cx("root")))},inputs:{hostName:"hostName",ptInputText:[1,"ptInputText"],pInputTextPT:[1,"pInputTextPT"],pInputTextUnstyled:[1,"pInputTextUnstyled"],pSize:"pSize",variant:[1,"variant"],fluid:[1,"fluid"],invalid:[1,"invalid"]},features:[I([F,{provide:S,useExisting:t},{provide:N,useExisting:t}]),g([r]),v]})}return t})(),Q=(()=>{class t{static \u0275fac=function(e){return new(e||t)};static \u0275mod=f({type:t});static \u0275inj=l({})}return t})();export{O as a,Q as b};
@@ -1,2 +0,0 @@
1
- import{a as G,b as ot,c as st,d as it,n as re,o as ne,p as at}from"./chunk-VNA3TMIO.js";import{$ as M,Aa as We,Ba as Ze,Ca as qe,Da as Qe,E as ze,Ea as et,Fa as k,Hc as nt,I as g,L as m,La as $,Ma as tt,Na as te,O as R,P as l,Q as v,R as Ee,Ra as rt,S as He,T as Te,U as Ve,aa as $e,c as ge,da as V,ea as we,i as ve,ia as Ge,n as H,oa as Xe,pa as Re,qa as Je,ra as q,sa as Q,v as Ue,va as ee,wa as L,x as Fe,xa as j,ya as Ye,z as Be,za as Ke}from"./chunk-HAWX5WNM.js";import{a as x}from"./chunk-WCABR6TI.js";var X=class{_doc;constructor(t){this._doc=t}manager},oe=(()=>{class n extends X{constructor(e){super(e)}supports(e){return!0}addEventListener(e,r,o,s){return e.addEventListener(r,o,s),()=>this.removeEventListener(e,r,o,s)}removeEventListener(e,r,o,s){return e.removeEventListener(r,o,s)}static \u0275fac=function(r){return new(r||n)(l(M))};static \u0275prov=m({token:n,factory:n.\u0275fac})}return n})(),ae=new R(""),Pe=(()=>{class n{_zone;_plugins;_eventNameToPlugin=new Map;constructor(e,r){this._zone=r,e.forEach(i=>{i.manager=this});let o=e.filter(i=>!(i instanceof oe));this._plugins=o.slice().reverse();let s=e.find(i=>i instanceof oe);s&&this._plugins.push(s)}addEventListener(e,r,o,s){return this._findPluginFor(r).addEventListener(e,r,o,s)}getZone(){return this._zone}_findPluginFor(e){let r=this._eventNameToPlugin.get(e);if(r)return r;if(r=this._plugins.find(s=>s.supports(e)),!r)throw new g(5101,!1);return this._eventNameToPlugin.set(e,r),r}static \u0275fac=function(r){return new(r||n)(l(ae),l(V))};static \u0275prov=m({token:n,factory:n.\u0275fac})}return n})(),Me="ng-app-id";function ct(n){for(let t of n)t.remove()}function dt(n,t){let e=t.createElement("style");return e.textContent=n,e}function It(n,t,e,r){let o=n.head?.querySelectorAll(`style[${Me}="${t}"],link[${Me}="${t}"]`);if(o)for(let s of o)s.removeAttribute(Me),s instanceof HTMLLinkElement?r.set(s.href.slice(s.href.lastIndexOf("/")+1),{usage:0,elements:[s]}):s.textContent&&e.set(s.textContent,{usage:0,elements:[s]})}function De(n,t){let e=t.createElement("link");return e.setAttribute("rel","stylesheet"),e.setAttribute("href",n),e}var Oe=(()=>{class n{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;constructor(e,r,o,s={}){this.doc=e,this.appId=r,this.nonce=o,It(e,r,this.inline,this.external),this.hosts.add(e.head)}addStyles(e,r){for(let o of e)this.addUsage(o,this.inline,dt);r?.forEach(o=>this.addUsage(o,this.external,De))}removeStyles(e,r){for(let o of e)this.removeUsage(o,this.inline);r?.forEach(o=>this.removeUsage(o,this.external))}addUsage(e,r,o){let s=r.get(e);s?s.usage++:r.set(e,{usage:1,elements:[...this.hosts].map(i=>this.addElement(i,o(e,this.doc)))})}removeUsage(e,r){let o=r.get(e);o&&(o.usage--,o.usage<=0&&(ct(o.elements),r.delete(e)))}ngOnDestroy(){for(let[,{elements:e}]of[...this.inline,...this.external])ct(e);this.hosts.clear()}addHost(e){this.hosts.add(e);for(let[r,{elements:o}]of this.inline)o.push(this.addElement(e,dt(r,this.doc)));for(let[r,{elements:o}]of this.external)o.push(this.addElement(e,De(r,this.doc)))}removeHost(e){this.hosts.delete(e)}addElement(e,r){return this.nonce&&r.setAttribute("nonce",this.nonce),e.appendChild(r)}static \u0275fac=function(r){return new(r||n)(l(M),l(Re),l(Q,8),l(q))};static \u0275prov=m({token:n,factory:n.\u0275fac})}return n})(),be={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},Se=/%COMP%/g;var ut="%COMP%",Nt=`_nghost-${ut}`,Ct=`_ngcontent-${ut}`,kt=!0,xt=new R("",{factory:()=>kt});function Lt(n){return Ct.replace(Se,n)}function jt(n){return Nt.replace(Se,n)}function ft(n,t){return t.map(e=>e.replace(Se,n))}var Ae=(()=>{class n{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;constructor(e,r,o,s,i,c,a=null,d=null){this.eventManager=e,this.sharedStylesHost=r,this.appId=o,this.removeStylesOnCompDestroy=s,this.doc=i,this.ngZone=c,this.nonce=a,this.tracingService=d,this.defaultRenderer=new J(e,i,c,this.tracingService)}createRenderer(e,r){if(!e||!r)return this.defaultRenderer;let o=this.getOrCreateRenderer(e,r);return o instanceof ie?o.applyToHost(e):o instanceof Y&&o.applyStyles(),o}getOrCreateRenderer(e,r){let o=this.rendererByCompId,s=o.get(r.id);if(!s){let i=this.doc,c=this.ngZone,a=this.eventManager,d=this.sharedStylesHost,h=this.removeStylesOnCompDestroy,p=this.tracingService;switch(r.encapsulation){case ee.Emulated:s=new ie(a,d,r,this.appId,h,i,c,p);break;case ee.ShadowDom:return new se(a,e,r,i,c,this.nonce,p,d);case ee.ExperimentalIsolatedShadowDom:return new se(a,e,r,i,c,this.nonce,p);default:s=new Y(a,d,r,h,i,c,p);break}o.set(r.id,s)}return s}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(e){this.rendererByCompId.delete(e)}static \u0275fac=function(r){return new(r||n)(l(Pe),l(Oe),l(Re),l(xt),l(M),l(V),l(Q),l(te,8))};static \u0275prov=m({token:n,factory:n.\u0275fac})}return n})(),J=class{eventManager;doc;ngZone;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(t,e,r,o){this.eventManager=t,this.doc=e,this.ngZone=r,this.tracingService=o}destroy(){}destroyNode=null;createElement(t,e){return e?this.doc.createElementNS(be[e]||e,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,e){(lt(t)?t.content:t).appendChild(e)}insertBefore(t,e,r){t&&(lt(t)?t.content:t).insertBefore(e,r)}removeChild(t,e){e.remove()}selectRootElement(t,e){let r=typeof t=="string"?this.doc.querySelector(t):t;if(!r)throw new g(-5104,!1);return e||(r.textContent=""),r}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,r,o){if(o){e=o+":"+e;let s=be[o];s?t.setAttributeNS(s,e,r):t.setAttribute(e,r)}else t.setAttribute(e,r)}removeAttribute(t,e,r){if(r){let o=be[r];o?t.removeAttributeNS(o,e):t.removeAttribute(`${r}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,r,o){o&($.DashCase|$.Important)?t.style.setProperty(e,r,o&$.Important?"important":""):t.style[e]=r}removeStyle(t,e,r){r&$.DashCase?t.style.removeProperty(e):t.style[e]=""}setProperty(t,e,r){t!=null&&(t[e]=r)}setValue(t,e){t.nodeValue=e}listen(t,e,r,o){if(typeof t=="string"&&(t=G().getGlobalEventTarget(this.doc,t),!t))throw new g(5102,!1);let s=this.decoratePreventDefault(r);return this.tracingService?.wrapEventListener&&(s=this.tracingService.wrapEventListener(t,e,s)),this.eventManager.addEventListener(t,e,s,o)}decoratePreventDefault(t){return e=>{if(e==="__ngUnwrap__")return t;t(e)===!1&&e.preventDefault()}}};function lt(n){return n.tagName==="TEMPLATE"&&n.content!==void 0}var se=class extends J{hostEl;sharedStylesHost;shadowRoot;constructor(t,e,r,o,s,i,c,a){super(t,o,s,c),this.hostEl=e,this.sharedStylesHost=a,this.shadowRoot=e.attachShadow({mode:"open"}),this.sharedStylesHost&&this.sharedStylesHost.addHost(this.shadowRoot);let d=r.styles;d=ft(r.id,d);for(let p of d){let T=document.createElement("style");i&&T.setAttribute("nonce",i),T.textContent=p,this.shadowRoot.appendChild(T)}let h=r.getExternalStyles?.();if(h)for(let p of h){let T=De(p,o);i&&T.setAttribute("nonce",i),this.shadowRoot.appendChild(T)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,r){return super.insertBefore(this.nodeOrShadowRoot(t),e,r)}removeChild(t,e){return super.removeChild(null,e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost&&this.sharedStylesHost.removeHost(this.shadowRoot)}},Y=class extends J{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(t,e,r,o,s,i,c,a){super(t,s,i,c),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=o;let d=r.styles;this.styles=a?ft(a,d):d,this.styleUrls=r.getExternalStyles?.(a)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&tt.size===0&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},ie=class extends Y{contentAttr;hostAttr;constructor(t,e,r,o,s,i,c,a){let d=o+"-"+r.id;super(t,e,r,s,i,c,a,d),this.contentAttr=Lt(d),this.hostAttr=jt(d)}applyToHost(t){this.applyStyles(),this.setAttribute(t,this.hostAttr,"")}createElement(t,e){let r=super.createElement(t,e);return super.setAttribute(r,this.contentAttr,""),r}};var ce=class n extends st{supportsDOMEvents=!0;static makeCurrent(){ot(new n)}onAndCancel(t,e,r,o){return t.addEventListener(e,r,o),()=>{t.removeEventListener(e,r,o)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){t.remove()}createElement(t,e){return e=e||this.getDefaultDocument(),e.createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return e==="window"?window:e==="document"?t:e==="body"?t.body:null}getBaseHref(t){let e=Ft();return e==null?null:Bt(e)}resetBaseElement(){K=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return re(document.cookie,t)}},K=null;function Ft(){return K=K||document.head.querySelector("base"),K?K.getAttribute("href"):null}function Bt(n){return new URL(n,document.baseURI).pathname}var zt=(()=>{class n{build(){return new XMLHttpRequest}static \u0275fac=function(r){return new(r||n)};static \u0275prov=m({token:n,factory:n.\u0275fac})}return n})(),ht=["alt","control","meta","shift"],Ht={"\b":"Backspace"," ":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},Vt={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey},mt=(()=>{class n extends X{constructor(e){super(e)}supports(e){return n.parseEventName(e)!=null}addEventListener(e,r,o,s){let i=n.parseEventName(r),c=n.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>G().onAndCancel(e,i.domEventName,c,s))}static parseEventName(e){let r=e.toLowerCase().split("."),o=r.shift();if(r.length===0||!(o==="keydown"||o==="keyup"))return null;let s=n._normalizeKey(r.pop()),i="",c=r.indexOf("code");if(c>-1&&(r.splice(c,1),i="code."),ht.forEach(d=>{let h=r.indexOf(d);h>-1&&(r.splice(h,1),i+=d+".")}),i+=s,r.length!=0||s.length===0)return null;let a={};return a.domEventName=o,a.fullKey=i,a}static matchEventFullKeyCode(e,r){let o=Ht[e.key]||e.key,s="";return r.indexOf("code.")>-1&&(o=e.code,s="code."),o==null||!o?!1:(o=o.toLowerCase(),o===" "?o="space":o==="."&&(o="dot"),ht.forEach(i=>{if(i!==o){let c=Vt[i];c(e)&&(s+=i+".")}}),s+=o,s===r)}static eventCallback(e,r,o){return s=>{n.matchEventFullKeyCode(s,e)&&o.runGuarded(()=>r(s))}}static _normalizeKey(e){return e==="esc"?"escape":e}static \u0275fac=function(r){return new(r||n)(l(M))};static \u0275prov=m({token:n,factory:n.\u0275fac})}return n})();async function $t(n,t,e){let r=x({rootComponent:n},Gt(t,e));return nt(r)}function Gt(n,t){return{platformRef:t?.platformRef,appProviders:[...Wt,...n?.providers??[]],platformProviders:Kt}}function Xt(){ce.makeCurrent()}function Jt(){return new we}function Yt(){return Xe(document),document}var Kt=[{provide:q,useValue:at},{provide:Je,useValue:Xt,multi:!0},{provide:M,useFactory:Yt}];var Wt=[{provide:He,useValue:"root"},{provide:we,useFactory:Jt},{provide:ae,useClass:oe,multi:!0},{provide:ae,useClass:mt,multi:!0},Ae,Oe,Pe,{provide:rt,useExisting:Ae},{provide:ne,useClass:zt},[]];var D=class n{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(t){t?typeof t=="string"?this.lazyInit=()=>{this.headers=new Map,t.split(`
2
- `).forEach(e=>{let r=e.indexOf(":");if(r>0){let o=e.slice(0,r),s=e.slice(r+1).trim();this.addHeaderEntry(o,s)}})}:typeof Headers<"u"&&t instanceof Headers?(this.headers=new Map,t.forEach((e,r)=>{this.addHeaderEntry(r,e)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(t).forEach(([e,r])=>{this.setHeaderEntries(e,r)})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();let e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,e){return this.clone({name:t,value:e,op:"a"})}set(t,e){return this.clone({name:t,value:e,op:"s"})}delete(t,e){return this.clone({name:t,value:e,op:"d"})}maybeSetNormalizedName(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)}init(){this.lazyInit&&(this.lazyInit instanceof n?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(e=>{this.headers.set(e,t.headers.get(e)),this.normalizedNames.set(e,t.normalizedNames.get(e))})}clone(t){let e=new n;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof n?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([t]),e}applyUpdate(t){let e=t.name.toLowerCase();switch(t.op){case"a":case"s":let r=t.value;if(typeof r=="string"&&(r=[r]),r.length===0)return;this.maybeSetNormalizedName(t.name,e);let o=(t.op==="a"?this.headers.get(e):void 0)||[];o.push(...r),this.headers.set(e,o);break;case"d":let s=t.value;if(!s)this.headers.delete(e),this.normalizedNames.delete(e);else{let i=this.headers.get(e);if(!i)return;i=i.filter(c=>s.indexOf(c)===-1),i.length===0?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,i)}break}}addHeaderEntry(t,e){let r=t.toLowerCase();this.maybeSetNormalizedName(t,r),this.headers.has(r)?this.headers.get(r).push(e):this.headers.set(r,[e])}setHeaderEntries(t,e){let r=(Array.isArray(e)?e:[e]).map(s=>s.toString()),o=t.toLowerCase();this.headers.set(o,r),this.maybeSetNormalizedName(t,o)}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>t(this.normalizedNames.get(e),this.headers.get(e)))}};var ue=class{map=new Map;set(t,e){return this.map.set(t,e),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}},fe=class{encodeKey(t){return gt(t)}encodeValue(t){return gt(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}};function qt(n,t){let e=new Map;return n.length>0&&n.replace(/^\?/,"").split("&").forEach(o=>{let s=o.indexOf("="),[i,c]=s==-1?[t.decodeKey(o),""]:[t.decodeKey(o.slice(0,s)),t.decodeValue(o.slice(s+1))],a=e.get(i)||[];a.push(c),e.set(i,a)}),e}var Qt=/%(\d[a-f0-9])/gi,er={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function gt(n){return encodeURIComponent(n).replace(Qt,(t,e)=>er[e]??t)}function de(n){return`${n}`}var P=class n{map;encoder;updates=null;cloneFrom=null;constructor(t={}){if(this.encoder=t.encoder||new fe,t.fromString){if(t.fromObject)throw new g(2805,!1);this.map=qt(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(e=>{let r=t.fromObject[e],o=Array.isArray(r)?r.map(de):[de(r)];this.map.set(e,o)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();let e=this.map.get(t);return e?e[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,e){return this.clone({param:t,value:e,op:"a"})}appendAll(t){let e=[];return Object.keys(t).forEach(r=>{let o=t[r];Array.isArray(o)?o.forEach(s=>{e.push({param:r,value:s,op:"a"})}):e.push({param:r,value:o,op:"a"})}),this.clone(e)}set(t,e){return this.clone({param:t,value:e,op:"s"})}delete(t,e){return this.clone({param:t,value:e,op:"d"})}toString(){return this.init(),this.keys().map(t=>{let e=this.encoder.encodeKey(t);return this.map.get(t).map(r=>e+"="+this.encoder.encodeValue(r)).join("&")}).filter(t=>t!=="").join("&")}clone(t){let e=new n({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(t),e}init(){this.map===null&&(this.map=new Map),this.cloneFrom!==null&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":let e=(t.op==="a"?this.map.get(t.param):void 0)||[];e.push(de(t.value)),this.map.set(t.param,e);break;case"d":if(t.value!==void 0){let r=this.map.get(t.param)||[],o=r.indexOf(de(t.value));o!==-1&&r.splice(o,1),r.length>0?this.map.set(t.param,r):this.map.delete(t.param)}else{this.map.delete(t.param);break}}}),this.cloneFrom=this.updates=null)}};function tr(n){switch(n){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function vt(n){return typeof ArrayBuffer<"u"&&n instanceof ArrayBuffer}function Et(n){return typeof Blob<"u"&&n instanceof Blob}function Tt(n){return typeof FormData<"u"&&n instanceof FormData}function rr(n){return typeof URLSearchParams<"u"&&n instanceof URLSearchParams}var W="Content-Type",he="Accept",wt="text/plain",Rt="application/json",Mt=`${Rt}, ${wt}, */*`,U=class n{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;credentials;keepalive=!1;cache;priority;mode;redirect;referrer;integrity;referrerPolicy;responseType="json";method;params;urlWithParams;transferCache;timeout;constructor(t,e,r,o){this.url=e,this.method=t.toUpperCase();let s;if(tr(this.method)||o?(this.body=r!==void 0?r:null,s=o):s=r,s){if(this.reportProgress=!!s.reportProgress,this.withCredentials=!!s.withCredentials,this.keepalive=!!s.keepalive,s.responseType&&(this.responseType=s.responseType),s.headers&&(this.headers=s.headers),s.context&&(this.context=s.context),s.params&&(this.params=s.params),s.priority&&(this.priority=s.priority),s.cache&&(this.cache=s.cache),s.credentials&&(this.credentials=s.credentials),typeof s.timeout=="number"){if(s.timeout<1||!Number.isInteger(s.timeout))throw new g(2822,"");this.timeout=s.timeout}s.mode&&(this.mode=s.mode),s.redirect&&(this.redirect=s.redirect),s.integrity&&(this.integrity=s.integrity),s.referrer&&(this.referrer=s.referrer),s.referrerPolicy&&(this.referrerPolicy=s.referrerPolicy),this.transferCache=s.transferCache}if(this.headers??=new D,this.context??=new ue,!this.params)this.params=new P,this.urlWithParams=e;else{let i=this.params.toString();if(i.length===0)this.urlWithParams=e;else{let c=e.indexOf("?"),a=c===-1?"?":c<e.length-1?"&":"";this.urlWithParams=e+a+i}}}serializeBody(){return this.body===null?null:typeof this.body=="string"||vt(this.body)||Et(this.body)||Tt(this.body)||rr(this.body)?this.body:this.body instanceof P?this.body.toString():typeof this.body=="object"||typeof this.body=="boolean"||Array.isArray(this.body)?JSON.stringify(this.body):this.body.toString()}detectContentTypeHeader(){return this.body===null||Tt(this.body)?null:Et(this.body)?this.body.type||null:vt(this.body)?null:typeof this.body=="string"?wt:this.body instanceof P?"application/x-www-form-urlencoded;charset=UTF-8":typeof this.body=="object"||typeof this.body=="number"||typeof this.body=="boolean"?Rt:null}clone(t={}){let e=t.method||this.method,r=t.url||this.url,o=t.responseType||this.responseType,s=t.keepalive??this.keepalive,i=t.priority||this.priority,c=t.cache||this.cache,a=t.mode||this.mode,d=t.redirect||this.redirect,h=t.credentials||this.credentials,p=t.referrer||this.referrer,T=t.integrity||this.integrity,N=t.referrerPolicy||this.referrerPolicy,C=t.transferCache??this.transferCache,E=t.timeout??this.timeout,u=t.body!==void 0?t.body:this.body,f=t.withCredentials??this.withCredentials,w=t.reportProgress??this.reportProgress,S=t.headers||this.headers,y=t.params||this.params,A=t.context??this.context;return t.setHeaders!==void 0&&(S=Object.keys(t.setHeaders).reduce((I,_)=>I.set(_,t.setHeaders[_]),S)),t.setParams&&(y=Object.keys(t.setParams).reduce((I,_)=>I.set(_,t.setParams[_]),y)),new n(e,r,u,{params:y,headers:S,context:A,reportProgress:w,responseType:o,withCredentials:f,transferCache:C,keepalive:s,cache:c,priority:i,timeout:E,mode:a,redirect:d,credentials:h,referrer:p,integrity:T,referrerPolicy:N})}},O=(function(n){return n[n.Sent=0]="Sent",n[n.UploadProgress=1]="UploadProgress",n[n.ResponseHeader=2]="ResponseHeader",n[n.DownloadProgress=3]="DownloadProgress",n[n.Response=4]="Response",n[n.User=5]="User",n})(O||{}),F=class{headers;status;statusText;url;ok;type;redirected;responseType;constructor(t,e=200,r="OK"){this.headers=t.headers||new D,this.status=t.status!==void 0?t.status:e,this.statusText=t.statusText||r,this.url=t.url||null,this.redirected=t.redirected,this.responseType=t.responseType,this.ok=this.status>=200&&this.status<300}},Z=class n extends F{constructor(t={}){super(t)}type=O.ResponseHeader;clone(t={}){return new n({headers:t.headers||this.headers,status:t.status!==void 0?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}},B=class n extends F{body;constructor(t={}){super(t),this.body=t.body!==void 0?t.body:null}type=O.Response;clone(t={}){return new n({body:t.body!==void 0?t.body:this.body,headers:t.headers||this.headers,status:t.status!==void 0?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0,redirected:t.redirected??this.redirected,responseType:t.responseType??this.responseType})}},b=class extends F{name="HttpErrorResponse";message;error;ok=!1;constructor(t){super(t,0,"Unknown Error"),this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${t.url||"(unknown url)"}`:this.message=`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}},bt=200,nr=204;var or=/^\)\]\}',?\n/,Dt=new R(""),le=(()=>{class n{fetchImpl=v(Ne,{optional:!0})?.fetch??((...e)=>globalThis.fetch(...e));ngZone=v(V);destroyRef=v($e);handle(e){return new ge(r=>{let o=new AbortController;this.doRequest(e,o.signal,r).then(Ce,i=>r.error(new b({error:i})));let s;return e.timeout&&(s=this.ngZone.runOutsideAngular(()=>setTimeout(()=>{o.signal.aborted||o.abort(new DOMException("signal timed out","TimeoutError"))},e.timeout))),()=>{s!==void 0&&clearTimeout(s),o.abort()}})}async doRequest(e,r,o){let s=this.createRequestInit(e),i;try{let E=this.ngZone.runOutsideAngular(()=>this.fetchImpl(e.urlWithParams,x({signal:r},s)));sr(E),o.next({type:O.Sent}),i=await E}catch(E){o.error(new b({error:E,status:E.status??0,statusText:E.statusText,url:e.urlWithParams,headers:E.headers}));return}let c=new D(i.headers),a=i.statusText,d=i.url||e.urlWithParams,h=i.status,p=null;if(e.reportProgress&&o.next(new Z({headers:c,status:h,statusText:a,url:d})),i.body){let E=i.headers.get("content-length"),u=[],f=i.body.getReader(),w=0,S,y,A=typeof Zone<"u"&&Zone.current,I=!1;if(await this.ngZone.runOutsideAngular(async()=>{for(;;){if(this.destroyRef.destroyed){await f.cancel(),I=!0;break}let{done:z,value:me}=await f.read();if(z)break;if(u.push(me),w+=me.length,e.reportProgress){y=e.responseType==="text"?(y??"")+(S??=new TextDecoder).decode(me,{stream:!0}):void 0;let je=()=>o.next({type:O.DownloadProgress,total:E?+E:void 0,loaded:w,partialText:y});A?A.run(je):je()}}}),I){o.complete();return}let _=this.concatChunks(u,w);try{let z=i.headers.get(W)??"";p=this.parseBody(e,_,z,h)}catch(z){o.error(new b({error:z,headers:new D(i.headers),status:i.status,statusText:i.statusText,url:i.url||e.urlWithParams}));return}}h===0&&(h=p?bt:0);let T=h>=200&&h<300,N=i.redirected,C=i.type;T?(o.next(new B({body:p,headers:c,status:h,statusText:a,url:d,redirected:N,responseType:C})),o.complete()):o.error(new b({error:p,headers:c,status:h,statusText:a,url:d,redirected:N,responseType:C}))}parseBody(e,r,o,s){switch(e.responseType){case"json":let i=new TextDecoder().decode(r).replace(or,"");if(i==="")return null;try{return JSON.parse(i)}catch(c){if(s<200||s>=300)return i;throw c}case"text":return new TextDecoder().decode(r);case"blob":return new Blob([r],{type:o});case"arraybuffer":return r.buffer}}createRequestInit(e){let r={},o;if(o=e.credentials,e.withCredentials&&(o="include"),e.headers.forEach((s,i)=>r[s]=i.join(",")),e.headers.has(he)||(r[he]=Mt),!e.headers.has(W)){let s=e.detectContentTypeHeader();s!==null&&(r[W]=s)}return{body:e.serializeBody(),method:e.method,headers:r,credentials:o,keepalive:e.keepalive,cache:e.cache,priority:e.priority,mode:e.mode,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity,referrerPolicy:e.referrerPolicy}}concatChunks(e,r){let o=new Uint8Array(r),s=0;for(let i of e)o.set(i,s),s+=i.length;return o}static \u0275fac=function(r){return new(r||n)};static \u0275prov=m({token:n,factory:n.\u0275fac})}return n})(),Ne=class{};function Ce(){}function sr(n){n.then(Ce,Ce)}var ir=/^\)\]\}',?\n/;var ke=(()=>{class n{xhrFactory;tracingService=v(te,{optional:!0});constructor(e){this.xhrFactory=e}maybePropagateTrace(e){return this.tracingService?.propagate?this.tracingService.propagate(e):e}handle(e){if(e.method==="JSONP")throw new g(-2800,!1);let r=this.xhrFactory;return ve(null).pipe(ze(()=>new ge(s=>{let i=r.build();if(i.open(e.method,e.urlWithParams),e.withCredentials&&(i.withCredentials=!0),e.headers.forEach((u,f)=>i.setRequestHeader(u,f.join(","))),e.headers.has(he)||i.setRequestHeader(he,Mt),!e.headers.has(W)){let u=e.detectContentTypeHeader();u!==null&&i.setRequestHeader(W,u)}if(e.timeout&&(i.timeout=e.timeout),e.responseType){let u=e.responseType.toLowerCase();i.responseType=u!=="json"?u:"text"}let c=e.serializeBody(),a=null,d=()=>{if(a!==null)return a;let u=i.statusText||"OK",f=new D(i.getAllResponseHeaders()),w=i.responseURL||e.url;return a=new Z({headers:f,status:i.status,statusText:u,url:w}),a},h=this.maybePropagateTrace(()=>{let{headers:u,status:f,statusText:w,url:S}=d(),y=null;f!==nr&&(y=typeof i.response>"u"?i.responseText:i.response),f===0&&(f=y?bt:0);let A=f>=200&&f<300;if(e.responseType==="json"&&typeof y=="string"){let I=y;y=y.replace(ir,"");try{y=y!==""?JSON.parse(y):null}catch(_){y=I,A&&(A=!1,y={error:_,text:y})}}A?(s.next(new B({body:y,headers:u,status:f,statusText:w,url:S||void 0})),s.complete()):s.error(new b({error:y,headers:u,status:f,statusText:w,url:S||void 0}))}),p=this.maybePropagateTrace(u=>{let{url:f}=d(),w=new b({error:u,status:i.status||0,statusText:i.statusText||"Unknown Error",url:f||void 0});s.error(w)}),T=p;e.timeout&&(T=this.maybePropagateTrace(u=>{let{url:f}=d(),w=new b({error:new DOMException("Request timed out","TimeoutError"),status:i.status||0,statusText:i.statusText||"Request timeout",url:f||void 0});s.error(w)}));let N=!1,C=this.maybePropagateTrace(u=>{N||(s.next(d()),N=!0);let f={type:O.DownloadProgress,loaded:u.loaded};u.lengthComputable&&(f.total=u.total),e.responseType==="text"&&i.responseText&&(f.partialText=i.responseText),s.next(f)}),E=this.maybePropagateTrace(u=>{let f={type:O.UploadProgress,loaded:u.loaded};u.lengthComputable&&(f.total=u.total),s.next(f)});return i.addEventListener("load",h),i.addEventListener("error",p),i.addEventListener("timeout",T),i.addEventListener("abort",p),e.reportProgress&&(i.addEventListener("progress",C),c!==null&&i.upload&&i.upload.addEventListener("progress",E)),i.send(c),s.next({type:O.Sent}),()=>{i.removeEventListener("error",p),i.removeEventListener("abort",p),i.removeEventListener("load",h),i.removeEventListener("timeout",T),e.reportProgress&&(i.removeEventListener("progress",C),c!==null&&i.upload&&i.upload.removeEventListener("progress",E)),i.readyState!==i.DONE&&i.abort()}})))}static \u0275fac=function(r){return new(r||n)(l(ne))};static \u0275prov=m({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function ar(n,t){return t(n)}function cr(n,t,e){return(r,o)=>Ve(e,()=>t(r,s=>n(s,o)))}var _t=new R("",{factory:()=>[]}),Pt=new R(""),Ot=new R("",{factory:()=>!0});var ye=(()=>{class n{static \u0275fac=function(r){return new(r||n)};static \u0275prov=m({token:n,factory:function(r){let o=null;return r?o=new(r||n):o=l(ke),o},providedIn:"root"})}return n})();var pe=(()=>{class n{backend;injector;chain=null;pendingTasks=v(Ge);contributeToStability=v(Ot);constructor(e,r){this.backend=e,this.injector=r}handle(e){if(this.chain===null){let r=Array.from(new Set([...this.injector.get(_t),...this.injector.get(Pt,[])]));this.chain=r.reduceRight((o,s)=>cr(o,s,this.injector),ar)}if(this.contributeToStability){let r=this.pendingTasks.add();return this.chain(e,o=>this.backend.handle(o)).pipe(Be(r))}else return this.chain(e,r=>this.backend.handle(r))}static \u0275fac=function(r){return new(r||n)(l(ye),l(Te))};static \u0275prov=m({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),xe=(()=>{class n{static \u0275fac=function(r){return new(r||n)};static \u0275prov=m({token:n,factory:function(r){let o=null;return r?o=new(r||n):o=l(pe),o},providedIn:"root"})}return n})();function Ie(n,t){return{body:t,headers:n.headers,context:n.context,observe:n.observe,params:n.params,reportProgress:n.reportProgress,responseType:n.responseType,withCredentials:n.withCredentials,credentials:n.credentials,transferCache:n.transferCache,timeout:n.timeout,keepalive:n.keepalive,priority:n.priority,cache:n.cache,mode:n.mode,redirect:n.redirect,integrity:n.integrity,referrer:n.referrer,referrerPolicy:n.referrerPolicy}}var St=(()=>{class n{handler;constructor(e){this.handler=e}request(e,r,o={}){let s;if(e instanceof U)s=e;else{let a;o.headers instanceof D?a=o.headers:a=new D(o.headers);let d;o.params&&(o.params instanceof P?d=o.params:d=new P({fromObject:o.params})),s=new U(e,r,o.body!==void 0?o.body:null,{headers:a,context:o.context,params:d,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache,keepalive:o.keepalive,priority:o.priority,cache:o.cache,mode:o.mode,redirect:o.redirect,credentials:o.credentials,referrer:o.referrer,referrerPolicy:o.referrerPolicy,integrity:o.integrity,timeout:o.timeout})}let i=ve(s).pipe(Fe(a=>this.handler.handle(a)));if(e instanceof U||o.observe==="events")return i;let c=i.pipe(Ue(a=>a instanceof B));switch(o.observe||"body"){case"body":switch(s.responseType){case"arraybuffer":return c.pipe(H(a=>{if(a.body!==null&&!(a.body instanceof ArrayBuffer))throw new g(2806,!1);return a.body}));case"blob":return c.pipe(H(a=>{if(a.body!==null&&!(a.body instanceof Blob))throw new g(2807,!1);return a.body}));case"text":return c.pipe(H(a=>{if(a.body!==null&&typeof a.body!="string")throw new g(2808,!1);return a.body}));default:return c.pipe(H(a=>a.body))}case"response":return c;default:throw new g(2809,!1)}}delete(e,r={}){return this.request("DELETE",e,r)}get(e,r={}){return this.request("GET",e,r)}head(e,r={}){return this.request("HEAD",e,r)}jsonp(e,r){return this.request("JSONP",e,{params:new P().append(r,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,r={}){return this.request("OPTIONS",e,r)}patch(e,r,o={}){return this.request("PATCH",e,Ie(o,r))}post(e,r,o={}){return this.request("POST",e,Ie(o,r))}put(e,r,o={}){return this.request("PUT",e,Ie(o,r))}static \u0275fac=function(r){return new(r||n)(l(xe))};static \u0275prov=m({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var dr=new R("",{factory:()=>!0}),lr="XSRF-TOKEN",ur=new R("",{factory:()=>lr}),fr="X-XSRF-TOKEN",hr=new R("",{factory:()=>fr}),pr=(()=>{class n{cookieName=v(ur);doc=v(M);lastCookieString="";lastToken=null;parseCount=0;getToken(){let e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=re(e,this.cookieName),this.lastCookieString=e),this.lastToken}static \u0275fac=function(r){return new(r||n)};static \u0275prov=m({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),At=(()=>{class n{static \u0275fac=function(r){return new(r||n)};static \u0275prov=m({token:n,factory:function(r){let o=null;return r?o=new(r||n):o=l(pr),o},providedIn:"root"})}return n})();function yr(n,t){if(!v(dr)||n.method==="GET"||n.method==="HEAD")return t(n);try{let o=v(it).href,{origin:s}=new URL(o),{origin:i}=new URL(n.url,s);if(s!==i)return t(n)}catch{return t(n)}let e=v(At).getToken(),r=v(hr);return e!=null&&!n.headers.has(r)&&(n=n.clone({headers:n.headers.set(r,e)})),t(n)}var Le=(function(n){return n[n.Interceptors=0]="Interceptors",n[n.LegacyInterceptors=1]="LegacyInterceptors",n[n.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",n[n.NoXsrfProtection=3]="NoXsrfProtection",n[n.JsonpSupport=4]="JsonpSupport",n[n.RequestsMadeViaParent=5]="RequestsMadeViaParent",n[n.Fetch=6]="Fetch",n})(Le||{});function mr(n,t){return{\u0275kind:n,\u0275providers:t}}function gr(...n){let t=[St,pe,{provide:xe,useExisting:pe},{provide:ye,useFactory:()=>v(Dt,{optional:!0})??v(ke)},{provide:_t,useValue:yr,multi:!0}];for(let e of n)t.push(...e.\u0275providers);return Ee(t)}function vr(){return mr(Le.Fetch,[le,{provide:Dt,useExisting:le},{provide:ye,useExisting:le}])}var Yn=(()=>{class n{_doc;constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}static \u0275fac=function(r){return new(r||n)(l(M))};static \u0275prov=m({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Tr=(()=>{class n{static \u0275fac=function(r){return new(r||n)};static \u0275prov=m({token:n,factory:function(r){let o=null;return r?o=new(r||n):o=l(wr),o},providedIn:"root"})}return n})(),wr=(()=>{class n extends Tr{_doc;constructor(e){super(),this._doc=e}sanitize(e,r){if(r==null)return null;switch(e){case k.NONE:return r;case k.HTML:return j(r,"HTML")?L(r):et(this._doc,String(r)).toString();case k.STYLE:return j(r,"Style")?L(r):r;case k.SCRIPT:if(j(r,"Script"))return L(r);throw new g(5200,!1);case k.URL:return j(r,"URL")?L(r):Qe(String(r));case k.RESOURCE_URL:if(j(r,"ResourceURL"))return L(r);throw new g(5201,!1);default:throw new g(5202,!1)}}bypassSecurityTrustHtml(e){return Ye(e)}bypassSecurityTrustStyle(e){return Ke(e)}bypassSecurityTrustScript(e){return We(e)}bypassSecurityTrustUrl(e){return Ze(e)}bypassSecurityTrustResourceUrl(e){return qe(e)}static \u0275fac=function(r){return new(r||n)(l(M))};static \u0275prov=m({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();export{$t as a,b,St as c,gr as d,vr as e,Yn as f,Tr as g};
@@ -1 +0,0 @@
1
- import{$ as S,L as h,Q as A,ha as l,uc as p}from"./chunk-HAWX5WNM.js";var j=new Set(["stale-body","stale-frontmatter","stale-both"]);function y(t){return t?j.has(t.status??null):!1}function d(t){let s=t.metadata;return s&&typeof s=="object"&&!Array.isArray(s)?s:null}function Z(t){if(!t)return null;let s=t.sidecar?.annotations;if(s&&typeof s.version=="number")return`v${s.version}`;let e=d(t.frontmatter)?.version;return typeof e=="string"&&e.length>0?`v${e}`:null}function v(t){if(!t)return null;let e=t.sidecar?.annotations?.stability;if(e==="stable"||e==="experimental"||e==="deprecated")return e;let i=d(t.frontmatter)?.stability;return i==="stable"||i==="experimental"||i==="deprecated"?i:null}function Y(t){if(!t)return[];let s=t.frontmatter,e=[];if(t.kind==="agent"&&Array.isArray(s.tools))for(let i of s.tools)typeof i=="string"&&i.length>0&&e.push(i);if(t.kind==="skill"||t.kind==="command"){let i=s["allowed-tools"];if(Array.isArray(i))for(let n of i)typeof n=="string"&&n.length>0&&e.push(n);else typeof i=="string"&&i.length>0&&e.push(i)}return e}function q(t){return y(t?.sidecar)}function b(t){if(!t)return null;let e=t.sidecar?.annotations?.supersededBy;if(typeof e=="string"&&e.length>0)return e;let i=d(t.frontmatter)?.supersededBy;return typeof i=="string"&&i.length>0?i:null}function T(t){if(!t)return[];let e=t.sidecar?.annotations?.tags;if(Array.isArray(e))return e.filter(n=>typeof n=="string"&&n.length>0);let i=d(t.frontmatter)?.tags;return Array.isArray(i)?i.filter(n=>typeof n=="string"&&n.length>0):[]}function Q(t,s){switch(t?.sidecar?.status){case"stale-body":return s.staleBody;case"stale-frontmatter":return s.staleFrontmatter;case"stale-both":return s.staleBoth;default:return""}}function ee(t){return t<1e3?`${t}`:t<1e4?`${(t/1e3).toFixed(1).replace(/\.0$/,"")}k`:`${Math.round(t/1e3)}k`}function te(t){let s=new Date(t);if(isNaN(s.getTime()))return t;let e=Date.now()-s.getTime(),i=Math.floor(e/1e3);if(i<60)return"just now";let n=Math.floor(i/60);if(n<60)return`${n} minute${n===1?"":"s"} ago`;let r=Math.floor(n/60);if(r<24)return`${r} hour${r===1?"":"s"} ago`;let a=Math.floor(r/24);if(a<30)return`${a} day${a===1?"":"s"} ago`;let o=Math.floor(a/30);if(o<12)return`${o} month${o===1?"":"s"} ago`;let c=Math.floor(a/365);return`${c} year${c===1?"":"s"} ago`}var ae=["stable","experimental","deprecated"],O=["invokes","references","mentions","supersedes"],le=(()=>{class t{_searchText=l("");_selectedKinds=l([]);_kindToggleExplicitEmpty=l(!1);_selectedStabilities=l([]);_hasIssuesOnly=l(!1);_staleOnly=l(!1);_favoritesOnly=l(!1);_selectedLinkKinds=l([]);_severityErrorActive=l(!1);_severityWarnActive=l(!1);searchText=this._searchText.asReadonly();selectedKinds=this._selectedKinds.asReadonly();selectedStabilities=this._selectedStabilities.asReadonly();hasIssuesOnly=this._hasIssuesOnly.asReadonly();staleOnly=this._staleOnly.asReadonly();favoritesOnly=this._favoritesOnly.asReadonly();selectedLinkKinds=this._selectedLinkKinds.asReadonly();severityErrorActive=this._severityErrorActive.asReadonly();severityWarnActive=this._severityWarnActive.asReadonly();kindToggleExplicitEmpty=this._kindToggleExplicitEmpty.asReadonly();isActive=p(()=>this._searchText().trim().length>0||this._selectedKinds().length>0||this._kindToggleExplicitEmpty()||this._selectedStabilities().length>0||this._hasIssuesOnly()||this._staleOnly()||this._favoritesOnly()||this._selectedLinkKinds().length>0||this._severityErrorActive()||this._severityWarnActive());setSearchText(e){this._searchText.set(e)}setKinds(e){this._kindToggleExplicitEmpty.set(!1),this._selectedKinds.set([...e])}toggleKind(e,i){let n=this._selectedKinds(),r=i,o=this._kindToggleExplicitEmpty()?new Set:n.length===0?new Set(r):new Set(n);o.has(e)?o.delete(e):o.add(e),o.size===r.length?(this._selectedKinds.set([]),this._kindToggleExplicitEmpty.set(!1)):o.size===0?(this._selectedKinds.set([]),this._kindToggleExplicitEmpty.set(!0)):(this._selectedKinds.set([...o]),this._kindToggleExplicitEmpty.set(!1))}isKindActive(e){if(this._kindToggleExplicitEmpty())return!1;let i=this._selectedKinds();return i.length===0?!0:i.includes(e)}setStabilities(e){this._selectedStabilities.set([...e])}setHasIssuesOnly(e){this._hasIssuesOnly.set(e)}setStaleOnly(e){this._staleOnly.set(e)}setFavoritesOnly(e){this._favoritesOnly.set(e)}setLinkKinds(e){this._selectedLinkKinds.set([...e])}toggleLinkKind(e){let i=this._selectedLinkKinds(),n=i.length===0?new Set(O):new Set(i);n.has(e)?n.delete(e):n.add(e),n.size===O.length?this._selectedLinkKinds.set([]):this._selectedLinkKinds.set([...n])}isLinkKindActive(e){let i=this._selectedLinkKinds();return i.length===0?!0:i.includes(e)}toggleSeverity(e){e==="error"?this._severityErrorActive.set(!this._severityErrorActive()):this._severityWarnActive.set(!this._severityWarnActive())}isSeverityActive(e){return e==="error"?this._severityErrorActive():this._severityWarnActive()}setSeverityFilters(e){let i=new Set(e);this._severityErrorActive.set(i.has("error")),this._severityWarnActive.set(i.has("warn"))}reset(){this._searchText.set(""),this._selectedKinds.set([]),this._kindToggleExplicitEmpty.set(!1),this._selectedStabilities.set([]),this._hasIssuesOnly.set(!1),this._staleOnly.set(!1),this._favoritesOnly.set(!1),this._selectedLinkKinds.set([]),this._severityErrorActive.set(!1),this._severityWarnActive.set(!1)}apply(e,i){let n=this.searchText().trim().toLowerCase(),r=this.selectedKinds(),a=this._kindToggleExplicitEmpty(),o=this.selectedStabilities(),c=this.hasIssuesOnly(),D=this.staleOnly(),w=this.favoritesOnly(),x=this._severityErrorActive(),E=this._severityWarnActive(),R=(x||E)&&i!==void 0;return e.filter(f=>{if(n){let u=T(f).join(" ");if(![f.path,f.frontmatter.name??"",f.frontmatter.description??"",u].join(" ").toLowerCase().includes(n))return!1}if(a||r.length>0&&!r.includes(f.kind))return!1;if(o.length>0){let u=v(f);if(!u||!o.includes(u))return!1}return!(c&&!W(f,i)||D&&!y(f.sidecar)||w&&f.isFavorite!==!0||R&&(x&&!i.errors.has(f.path)||E&&!i.warns.has(f.path)))})}static \u0275fac=function(i){return new(i||t)};static \u0275prov=h({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function W(t,s){return!!(v(t)==="deprecated"||b(t)!==null||s&&(s.errors.has(t.path)||s.warns.has(t.path)))}function _(t){let s=t.normalize("NFD");return s=s.replace(new RegExp("\\p{Mn}+","gu"),""),s=s.toLowerCase(),s=s.replace(/[-_\s]+/g," "),s=s.replace(/\s+/g," "),s.trim()}function fe(t){let s=new Map;return F(t,s),P(t,s),s}function F(t,s){for(let e of t){let i=I(e);if(i===null)continue;let n=_(i);s.has(n)||s.set(n,e.path)}}function P(t,s){for(let e of t){if(I(e)!==null)continue;let i=H(e.path);if(i.length===0)continue;let n=_(i);s.has(n)||s.set(n,e.path)}}function I(t){let s=t.frontmatter?.name;return typeof s!="string"||s.length===0?null:s}function H(t){let s=t.split("/").filter(i=>i.length>0);if(s.length===0)return t;let e=s[s.length-1];return e==="SKILL.md"&&s.length>=2?s[s.length-2]:e.replace(/\.md$/,"")}function de(t,s,e){let i=t.charAt(0);if(i!=="/"&&i!=="@")return t;let n=s!==null?s.replace(/^[/@]/,"").trim():_(t.slice(1));return e.get(n)??t}var $={invalidHex:t=>`deriveTints: invalid hex color "${t}" (expected #RRGGBB)`};function g(t,s,e){return[Math.round(t[0]+(s[0]-t[0])*e),Math.round(t[1]+(s[1]-t[1])*e),Math.round(t[2]+(s[2]-t[2])*e)]}function z(t){let s=/^#([0-9a-f]{6})$/i.exec(t);if(!s)throw new Error($.invalidHex(t));let e=parseInt(s[1],16);return[e>>16&255,e>>8&255,e&255]}function m([t,s,e]){let i=n=>Math.max(0,Math.min(255,n)).toString(16).padStart(2,"0");return`#${i(t)}${i(s)}${i(e)}`}var K=[255,255,255],N=[0,0,0];function k(t,s){let e=z(t);return s==="light"?{bg:m(g(e,K,.85)),fg:m(g(e,N,.5))}:{bg:m(g(e,N,.7)),fg:m(g(e,K,.6))}}var C=/^[a-zA-Z][a-zA-Z0-9_-]{0,63}$/,L=/^#[0-9a-f]{6}$/i,ke=(()=>{class t{doc=A(S);_entries=l([]);kinds=this._entries.asReadonly();index=p(()=>{let e=new Map;for(let i of this._entries())e.set(i.name,i);return e});ingest(e){if(!e)return;let i=[];for(let[r,a]of Object.entries(e)){if(!C.test(r))continue;let o=a.providers[a.primaryProviderId];if(!o)continue;let c={name:r,primaryProviderId:a.primaryProviderId,providers:a.providers,label:o.label,color:o.color};o.colorDark!==void 0&&(c.colorDark=o.colorDark),o.emoji!==void 0&&(c.emoji=o.emoji),o.icon!==void 0&&(c.icon=o.icon),i.push(c)}let n=this._entries();V(n,i)||(this._entries.set(i),this.applyCssVars())}lookup(e){return this.index().get(e)}labelOf(e){return this.lookup(e)?.label??e}colorOf(e,i="light"){let n=this.lookup(e);return n?i==="dark"?n.colorDark??n.color:n.color:"#9ca3af"}iconOf(e){return this.lookup(e)?.icon}emojiOf(e){return this.lookup(e)?.emoji}providersOf(e){return this.lookup(e)?.providers}applyCssVars(){if(!this.doc.head)return;let e=U(this.doc),i=[],n=[];for(let r of this._entries()){if(!L.test(r.color))continue;let a=r.colorDark??r.color;if(L.test(a))try{let o=k(r.color,"light"),c=k(a,"dark");i.push(`--sm-kind-${r.name}: ${r.color};`),i.push(`--sm-kind-${r.name}-bg: ${o.bg};`),i.push(`--sm-kind-${r.name}-fg: ${o.fg};`),n.push(`--sm-kind-${r.name}: ${a};`),n.push(`--sm-kind-${r.name}-bg: ${c.bg};`),n.push(`--sm-kind-${r.name}-fg: ${c.fg};`)}catch{continue}}e.textContent=`:root { ${i.join(" ")} } .app-dark { ${n.join(" ")} }`}static \u0275fac=function(i){return new(i||t)};static \u0275prov=h({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),M="sm-kind-vars";function U(t){let s=t.getElementById(M);return s||(s=t.createElement("style"),s.id=M,t.head.appendChild(s)),s}function V(t,s){if(t.length!==s.length)return!1;for(let e=0;e<t.length;e++){let i=t[e],n=s[e];if(i.name!==n.name||i.primaryProviderId!==n.primaryProviderId||JSON.stringify(i.providers)!==JSON.stringify(n.providers))return!1}return!0}export{y as a,Z as b,v as c,Y as d,q as e,b as f,T as g,Q as h,ee as i,te as j,ae as k,O as l,le as m,ke as n,fe as o,H as p,de as q};
@@ -1,123 +0,0 @@
1
- import{a as Lt,c as Nt,d as y,e as Rt}from"./chunk-CRWK2NFZ.js";import{a as vt,b as xt,c as Pe,d as Ee,e as St}from"./chunk-3HLMBEDX.js";import{d as Pt,f as Et,g as Te}from"./chunk-VW2A6WZ3.js";import{e as Mt,f as Tt,g as Ot,h as It,l as Ft,m as jt,n as Dt,o as At,p as ce,q as de}from"./chunk-7K36273M.js";import{a as Oe,b as Ie}from"./chunk-CO2ZOUSD.js";import{e as wt,f as yt,g as kt}from"./chunk-UV3QRBRR.js";import{D as Se,E as re,M as X,N as U,S as Ct,T as Me,V as se,W as ae,X as le,c as oe,j as ye,k as ke,m as _t,p as ht,v as ft,w as _e,x as bt}from"./chunk-WPUUCIS3.js";import"./chunk-4SG4352Z.js";import"./chunk-EPBUSS3I.js";import{l as ut,m as mt}from"./chunk-VNA3TMIO.js";import{$b as p,Ab as ne,Db as at,Ga as nt,Gb as N,Ha as J,Hb as W,Ib as w,Ic as ze,Jc as pt,K as Qe,Ka as o,Kb as d,L as be,M as Ye,Nb as lt,O as Je,Ob as ct,Pb as ve,Q as k,Qb as xe,V as Ze,Vb as Ve,W as E,Wb as G,X as M,Xb as dt,Yb as me,Za as z,Zb as l,_a as it,_b as _,aa as et,ab as ot,ac as R,bb as rt,ca as tt,cb as K,ha as u,ic as ie,ja as B,kc as gt,la as Re,lb as b,ob as h,pb as f,qb as st,rb as q,rc as Ce,sb as A,tb as L,ub as m,uc as x,vb as c,wb as a,xb as O,xc as we,yb as v,yc as $,zb as C}from"./chunk-HAWX5WNM.js";import{a as H,b as Y}from"./chunk-WCABR6TI.js";function kn(t,r){if(t&1&&(v(0,"p",6),l(1),C()),t&2){let e=d();o(),R(" ",e.texts.aboutErrorPrefix," ",e.loadError()," ")}}var Vt=(()=>{class t{dataSource=k(X);updateCheck=k(Nt);theme=k(Te);visible=$.required();texts=y;health=u(null);loadError=u(null);markSrc=x(()=>this.theme.resolved()==="dark"?"skill-map-mark-light.svg":"skill-map-mark-dark.svg");cliVersion=x(()=>this.updateCheck.current()??this.health()?.implVersion??this.texts.aboutUnknown);specVersion=x(()=>this.health()?.specVersion??this.texts.aboutLoading);schemaVersion=x(()=>this.health()?.schemaVersion??this.texts.aboutLoading);cwd=x(()=>this.health()?.cwd??this.texts.aboutLoading);dbDisplay=x(()=>{let e=this.health();return e?this.texts.aboutDbValue(e.db,Sn(e.dbPath,e.cwd)):this.texts.aboutLoading});constructor(){B(()=>{this.visible()&&this.health()===null&&this.load()})}async load(){this.loadError.set(null);try{let e=await this.dataSource.health();this.health.set(e)}catch(e){let i=e instanceof U||e instanceof Error?e.message:String(e);this.loadError.set(i)}}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=z({type:t,selectors:[["sm-settings-about"]],inputs:{visible:[1,"visible"]},decls:57,vars:25,consts:[["aria-labelledby","settings-about-heading","data-testid","settings-about",1,"settings-about"],[1,"settings-about__header"],["alt","","aria-hidden","true","data-testid","settings-about-logo",1,"settings-about__logo",3,"src"],[1,"settings-about__heading-text"],["id","settings-about-heading",1,"settings-about__title"],[1,"settings-about__intro"],["data-testid","settings-about-error",1,"settings-about__error"],["target","_blank","rel","noopener noreferrer","data-testid","settings-about-star",1,"settings-about__star",3,"href"],["aria-hidden","true",1,"fa-solid","fa-star","settings-about__star-icon"],[1,"settings-about__star-text"],[1,"settings-about__star-heading"],[1,"settings-about__star-body"],[1,"settings-about__star-cta"],["aria-hidden","true",1,"fa-solid","fa-star"],[1,"settings-about__list"],[1,"settings-about__row"],[1,"settings-about__label"],[1,"settings-about__value"],["target","_blank","rel","noopener noreferrer","data-testid","settings-about-website",1,"settings-about__link",3,"href"],["target","_blank","rel","noopener noreferrer","data-testid","settings-about-github",1,"settings-about__link",3,"href"],["data-testid","settings-about-cli",1,"settings-about__value"],["data-testid","settings-about-spec",1,"settings-about__value"],["data-testid","settings-about-schema",1,"settings-about__value"],["data-testid","settings-about-cwd",1,"settings-about__value"],["data-testid","settings-about-db",1,"settings-about__value"]],template:function(i,n){i&1&&(v(0,"section",0)(1,"header",1),ne(2,"img",2),v(3,"div",3)(4,"h2",4),l(5),C(),v(6,"p",5),l(7),C()()(),h(8,kn,2,2,"p",6),v(9,"a",7),ne(10,"i",8),v(11,"span",9)(12,"span",10),l(13),C(),v(14,"span",11),l(15),C()(),v(16,"span",12),ne(17,"i",13),l(18),C()(),v(19,"dl",14)(20,"div",15)(21,"dt",16),l(22),C(),v(23,"dd",17)(24,"a",18),l(25),C()()(),v(26,"div",15)(27,"dt",16),l(28),C(),v(29,"dd",17)(30,"a",19),l(31),C()()(),v(32,"div",15)(33,"dt",16),l(34),C(),v(35,"dd",20),l(36),C()(),v(37,"div",15)(38,"dt",16),l(39),C(),v(40,"dd",21),l(41),C()(),v(42,"div",15)(43,"dt",16),l(44),C(),v(45,"dd",22),l(46),C()(),v(47,"div",15)(48,"dt",16),l(49),C(),v(50,"dd",23),l(51),C()(),v(52,"div",15)(53,"dt",16),l(54),C(),v(55,"dd",24),l(56),C()()()()),i&2&&(o(2),W("src",n.markSrc(),J),o(3),p(" ",n.texts.aboutHeading," "),o(2),_(n.texts.aboutIntro),o(),f(n.loadError()?8:-1),o(),W("href",n.texts.aboutGithubUrl,J),b("aria-label",n.texts.aboutStarA11y),o(4),_(n.texts.aboutStarHeading),o(2),_(n.texts.aboutStarBody),o(3),p(" ",n.texts.aboutStarCta," "),o(4),_(n.texts.aboutWebsiteLabel),o(2),W("href",n.texts.aboutWebsiteUrl,J),o(),_(n.texts.aboutWebsiteUrl),o(3),_(n.texts.aboutGithubLabel),o(2),W("href",n.texts.aboutGithubUrl,J),o(),_(n.texts.aboutGithubUrl),o(3),_(n.texts.aboutCliLabel),o(2),p(" ",n.cliVersion()," "),o(3),_(n.texts.aboutSpecLabel),o(2),p(" ",n.specVersion()," "),o(3),_(n.texts.aboutSchemaLabel),o(2),p(" ",n.schemaVersion()," "),o(3),_(n.texts.aboutFolderLabel),o(2),p(" ",n.cwd()," "),o(3),_(n.texts.aboutDbLabel),o(2),p(" ",n.dbDisplay()," "))},styles:["[_nghost-%COMP%]{display:block;height:100%;overflow-y:auto;padding:1.25rem 1.5rem}.settings-about[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.75rem}.settings-about__header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem}.settings-about__logo[_ngcontent-%COMP%]{width:64px;height:64px;flex-shrink:0}.settings-about__heading-text[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;min-width:0}.settings-about__title[_ngcontent-%COMP%]{font-size:1.15rem;font-weight:600;margin:0}.settings-about__intro[_ngcontent-%COMP%]{margin:0;color:var(--p-text-muted-color);font-size:.875rem}.settings-about__error[_ngcontent-%COMP%]{margin:0;padding:.5rem .75rem;border-radius:var(--p-border-radius);background:var(--p-message-error-background);color:var(--p-message-error-color);font-size:.875rem}.settings-about__list[_ngcontent-%COMP%]{margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.settings-about__row[_ngcontent-%COMP%]{display:grid;grid-template-columns:180px 1fr;align-items:baseline;gap:.75rem;padding:.5rem .75rem;border-radius:var(--p-border-radius)}.settings-about__row[_ngcontent-%COMP%]:nth-child(odd){background:var(--p-content-hover-background)}.settings-about__label[_ngcontent-%COMP%]{margin:0;font-size:.875rem;color:var(--p-text-muted-color)}.settings-about__value[_ngcontent-%COMP%]{margin:0;font-family:var(--p-monospace-font-family);font-size:.875rem;word-break:break-all}.settings-about__link[_ngcontent-%COMP%]{color:var(--p-primary-color);text-decoration:none}.settings-about__link[_ngcontent-%COMP%]:hover, .settings-about__link[_ngcontent-%COMP%]:focus-visible{text-decoration:underline}.settings-about__star[_ngcontent-%COMP%]{--star-accent: #f4b400;display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;border-radius:var(--p-border-radius);border:1px solid color-mix(in oklab,var(--star-accent) 45%,transparent);background:color-mix(in oklab,var(--star-accent) 12%,transparent);color:var(--p-text-color);text-decoration:none;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease}.settings-about__star[_ngcontent-%COMP%]:hover, .settings-about__star[_ngcontent-%COMP%]:focus-visible{background:color-mix(in oklab,var(--star-accent) 22%,transparent);border-color:color-mix(in oklab,var(--star-accent) 70%,transparent);transform:translateY(-1px);outline:none}.app-dark[_nghost-%COMP%] .settings-about__star[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .settings-about__star[_ngcontent-%COMP%]{background:color-mix(in oklab,var(--star-accent) 18%,transparent);border-color:color-mix(in oklab,var(--star-accent) 55%,transparent)}.app-dark[_nghost-%COMP%] .settings-about__star[_ngcontent-%COMP%]:hover, .app-dark [_nghost-%COMP%] .settings-about__star[_ngcontent-%COMP%]:hover, .app-dark[_nghost-%COMP%] .settings-about__star[_ngcontent-%COMP%]:focus-visible, .app-dark [_nghost-%COMP%] .settings-about__star[_ngcontent-%COMP%]:focus-visible{background:color-mix(in oklab,var(--star-accent) 30%,transparent);border-color:var(--star-accent)}.settings-about__star-icon[_ngcontent-%COMP%]{font-size:1.5rem;color:var(--star-accent);flex-shrink:0}.settings-about__star-text[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.125rem;flex:1;min-width:0}.settings-about__star-heading[_ngcontent-%COMP%]{font-weight:600;font-size:.95rem}.settings-about__star-body[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--p-text-muted-color);line-height:1.4}.settings-about__star-cta[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:var(--sm-radius-pill);background:var(--star-accent);color:#1a1a1a;font-weight:600;font-size:.8125rem;white-space:nowrap;flex-shrink:0}.settings-about__star[_ngcontent-%COMP%]:hover .settings-about__star-cta[_ngcontent-%COMP%], .settings-about__star[_ngcontent-%COMP%]:focus-visible .settings-about__star-cta[_ngcontent-%COMP%]{background:color-mix(in oklab,var(--star-accent) 88%,white)}"],changeDetection:0})}return t})();function Sn(t,r){if(!t||!r)return t;let e=r.replace(/[/\\]+$/,"");return t.startsWith(e)?t.slice(e.length).replace(/^[/\\]+/,""):t}var Fe=(()=>{class t{ownerSig=u(null);dirtyCount=x(()=>{let e=this.ownerSig();return e?e.dirtyIds().size:0});register(e){this.ownerSig.set(e)}deregister(e){this.ownerSig()===e&&this.ownerSig.set(null)}async applyChanges(){let e=this.ownerSig();return e?e.applyChanges():{ok:!1}}discardChanges(){this.ownerSig()?.discardChanges()}static \u0275fac=function(i){return new(i||t)};static \u0275prov=be({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var zt={schemaVersion:1,entries:[{version:"0.47.1",date:"2026-05-31",kind:"internal",highlights:[]},{version:"0.47.0",date:"2026-05-31",kind:"user-facing",highlights:[{body:"skill-map now notices when your local DB schema is out of date (not just an older version): `sm scan` and `sm serve` offer to rebuild the cache, and read commands warn instead of failing with a confusing database error.",packages:["@skill-map/cli","@skill-map/spec"]},{body:"Settings \u2192 Plugins now has a unified filter bar (All, then Built-in / Project, then the kinds), so you can quickly isolate your project's own plugins and extensions from the built-ins.",packages:["@skill-map/cli"]},{body:"**Pick your tokenizer.** `tokenizer` in settings.json now selects the encoder for token counts: `cl100k_base` (default, GPT-4) or `o200k_base` (GPT-4o). Any other value is ignored with a warning. Changing it recomputes counts on the next scan.",packages:["@skill-map/cli","@skill-map/spec"]},{body:'When the dev server stops, the UI now shows a "connection lost" banner with a Reconnect button instead of failing silently, and it refreshes automatically once the connection is back.',packages:["@skill-map/cli"]}]},{version:"0.46.0",date:"2026-05-31",kind:"user-facing",highlights:[{body:"`sm scan` no longer glues the `Auto-detected activeProvider` notice onto the results line. The auto-detect message now prints on its own line, right above the scan summary.",packages:["@skill-map/cli"]},{body:"`sm plugins --help` (and `db`, `config`, `job`, and the other command groups) now print a tidy overview with a one-line description and a list of their subcommands, matching the look of `sm scan --help`, instead of a terse internal list.",packages:["@skill-map/cli","@skill-map/spec"]},{body:"**Config cleanup.** Several settings.json keys that never did anything (`i18n`, `providers`, `history`, `autoMigrate`, `scan.followSymlinks`, per-plugin `config` / `extensions`) were removed. If still present they are now ignored and reported with a warning on load.",packages:["@skill-map/cli","@skill-map/spec"]},{body:'`sm plugins list` / `show` and the Settings \u2192 Plugins UI now consistently say "plugin" instead of "bundle". The only place "bundle" remains is the name for toggling a whole plugin (all its extensions) at once.',packages:["@skill-map/cli","@skill-map/spec"]}]},{version:"0.45.1",date:"2026-05-30",kind:"internal",highlights:[]},{version:"0.45.0",date:"2026-05-30",kind:"user-facing",highlights:[{body:"`sm tutorial` can now target other agents: `--for agent-skills` (open-standard layout, used by Antigravity and OpenAI Codex) or `--for claude` (default). It now requires an empty directory: run it in a fresh folder, or pass `--force` to seed into the current one.",packages:["@skill-map/cli","@skill-map/spec"]}]},{version:"0.44.0",date:"2026-05-30",kind:"user-facing",highlights:[{body:"Under the Antigravity lens, `sm scan` now warns when a `.agents/skills` skill shadows a built-in `agy` slash command (e.g. a skill named `goal` collides with `/goal`), so you can rename it before the runtime silently ignores the file.",packages:["@skill-map/cli","@skill-map/spec"]},{body:"skill-map can now report crashes anonymously to help fix bugs, and it is OFF by default. Turn it on or off in Settings, or set `SKILL_MAP_TELEMETRY=0` to force it off. File contents, paths, and your settings are never sent.",packages:["@skill-map/cli","@skill-map/spec"]},{body:"skill-map can now share anonymous usage (which commands and views you use) to guide development, OFF by default. Toggle CLI usage, UI usage, and error reports independently in Settings, or set `SKILL_MAP_TELEMETRY=0` to force all off. Files and paths are never sent.",packages:["@skill-map/cli","@skill-map/spec"]}]},{version:"0.43.0",date:"2026-05-29",kind:"user-facing",highlights:[{body:"The skill-map website and in-app links (Settings, About and the demo banner) now point to **skill-map.ai** (previously skill-map.dev). Spec schema URLs are now `https://skill-map.ai/spec/v0/...`.",packages:["@skill-map/cli","@skill-map/spec","@skill-map/web"]},{body:"Claude skills and commands now show their `disallowed-tools` in the inspector. Tags come only from `.sm` sidecars now: the `sm list --tag-source` flag is removed and cards show a single tag style. Agent Skills `license` / `compatibility` / `metadata` fields are recognized.",packages:["@skill-map/cli","@skill-map/spec"]},{body:"After updating skill-map, the next `sm scan` rebuilds the local database when it was created by an older version (your `.sm` sidecar files are never touched). On a terminal it asks first; pass `--yes` to skip the prompt.",packages:["@skill-map/cli","@skill-map/spec"]}]},{version:"0.42.0",date:"2026-05-28",kind:"user-facing",highlights:[{body:"The lens picker in **Settings \u2192 Project** now lists exactly the providers installed in your project. The phantom **Gemini** and **Cursor** options are gone, and **OpenAI Codex** / **Antigravity** now show their correct name and colour on node cards.",packages:["@skill-map/cli","@skill-map/spec"]}]},{version:"0.41.0",date:"2026-05-27",kind:"user-facing",highlights:[{body:"New `--max-nodes <N>` on `sm scan` / `sm watch` / `sm serve` caps how many files the walker accepts (default 256, bidirectional). Past the limit, a persistent banner links to **Settings \u2192 Project** to trim `.skillmapignore`.",packages:["@skill-map/cli","@skill-map/spec"]},{body:"`sm -version` and `sm -help` now suggest `--version` / `--help` consistently, even from a directory with no skill-map project.",packages:["@skill-map/cli"]}]},{version:"0.40.1",date:"2026-05-26",kind:"user-facing",highlights:[{body:"Update chip copies the install command on click. Settings copy polished across General + Project. Path is now the second column in the list view. Filtered-empty views unified across List + Graph with a Reset button. Matrix theme retints dropdowns and toggle buttons.",packages:["@skill-map/cli"]}]},{version:"0.40.0",date:"2026-05-26",kind:"user-facing",highlights:[{body:"**Changelog tab is now bounded.** The Settings \u2192 Changelog tab shows the most recent 10 releases and links out to the full changelog on GitHub for older entries.",packages:["@skill-map/cli"]},{body:"Plugins no longer have a bundle-level switch; each extension toggles on its own. `sm plugins disable <bundle>` cascades across the bundle's extensions (multi-extension bundles need `--yes`). The kind filter narrows extensions inside matched bundles instead of leaking siblings.",packages:["@skill-map/cli","@skill-map/spec"]},{body:"**Cleaner Plugins view.** Settings \u2192 Plugins and `sm plugins show <bundle>` no longer print a per-extension version chip for built-in plugins (they all share the CLI version). External (user-authored) plugins are unchanged and still show per-extension semver.",packages:["@skill-map/cli"]},{body:'`sm scan` summary now splits findings per severity (`N errors \xB7 M warnings \xB7 K info`), colored and collapsed when zero. The graph view gains a third palette to filter cards with errors / warnings; the perf-HUD says "links" instead of "edges".',packages:["@skill-map/cli"]},{body:"**List view** is live. Click **List** in the topbar for a sortable, filterable table of every node (Kind, Name, Tags, Path, Tokens, Stability, Stale, Issues). Click a row to inspect on the graph. Graph card chips now share the same icons as the list.",packages:["@skill-map/cli"]},{body:'Graph cards drop the corner badge for routine warnings; count + tooltip stay on the footer chip. Broken refs now escalate `sm scan` to exit 1 (were exit 0). `sm init` prints the "no provider markers" advisory as a two-line yellow `\u26A0` block.',packages:["@skill-map/cli","@skill-map/spec"]},{body:'`sm check --analyzers <id>` now errors with the valid id list when mistyped, instead of silently saying "No issues." `/invoke` and `@mention` links from any markdown body now contribute to the target\'s `IN`. `sm plugins doctor` summary spells out its bundle + extension split.',packages:["@skill-map/cli","@skill-map/spec"]}]},{version:"0.39.0",date:"2026-05-25",kind:"user-facing",highlights:[{body:"Renamed `core/field-unknown` to `core/annotation-field-unknown` so the sidecar typo-guard rule groups with the other `core/annotation-*` rules. Update references in `settings.json` or `sm check --analyzers <id>` to the new name.",packages:["@skill-map/cli","@skill-map/spec"]},{body:"Renamed 14 built-in extension ids to a `<area>-<detail>` shape (e.g. `core/broken-ref` is now `core/reference-broken`). If you reference these by qualified id in `settings.json` or via `sm check --analyzers <id>`, update to the new names.",packages:["@skill-map/cli","@skill-map/spec"]},{body:"In dev builds the topbar and the `sm serve` banner now show only the `dev` marker instead of pairing it with the published version number.",packages:["@skill-map/cli"]},{body:"When a scan adds or removes nodes, the graph view animates the camera to frame the new layout, refreshes auto positions so nodes never land on top of each other, and keeps your manually-dragged pins where you put them.",packages:["@skill-map/cli"]},{body:"`sm` log lines now lead with a coloured glyph per level (`\u26A0 WARN`, `\u2715 ERROR`, `\u2139 INFO`) so advisories stand out from the rest of the output.",packages:["@skill-map/cli"]},{body:"In Settings, expanding a bundle plugin (claude, antigravity, openai, agent-skills) now shows the correct per-extension state and the toggles persist, the next scan honours them. `sm plugins list` reflects effective state too.",packages:["@skill-map/cli","@skill-map/spec"]},{body:"Plugins always list `core` first across CLI, BFF, and Settings; the project path stays visible in the topbar (truncated with `\u2026` on the LEFT so the project name reaches the eye); and the SPA reconnects on its own when `sm serve` restarts.",packages:["@skill-map/cli"]},{body:'`sm list` IN counts and the inspector\'s "Linked nodes \u2192 INCOMING" now include every `@mention` and `/invoke`, not just markdown links. `sm plugins doctor` no longer raises a spurious `claude/agent` warning on a clean install.',packages:["@skill-map/cli"]}]},{version:"0.38.0",date:"2026-05-24",kind:"user-facing",highlights:[{body:"`sm <verb> --json` now also suppresses info banners on stderr, keeping both streams clean for piping into `jq`.",packages:["@skill-map/cli"]}]},{version:"0.37.0",date:"2026-05-23",kind:"user-facing",highlights:[{body:"`sm scan` now warns once when provider markers on disk drifted since `activeProvider` was set (e.g. you added `.codex/` after picking the `claude` lens). Run `sm config set activeProvider <id>` to switch the lens, or ignore the warn and keep going, it never blocks the scan.",packages:["@skill-map/cli","@skill-map/spec"]},{body:"**Clearer CLI errors.** Errors from `sm serve`, `bump`, `db`, `plugins`, `refresh`, `list`, `watch`, `graph`, `hooks`, and `sidecar` now print a `\u2715` headline plus a dim hint on the next line. Fixes a `sm refresh` persist-failure that rendered `{{glyph}}` literally.",packages:["@skill-map/cli"]},{body:"`sm` now detects when the local `.skill-map/` DB was written by an incompatible CLI version: newer minor or different major refuses to open with a clear hint; older same-major prints a one-shot warning and continues. Defensive parse errors include the same hint.",packages:["@skill-map/cli"]},{body:'`sm init --force` now also resets the DB (was overwriting only the config files). Solves the "Failed to read scan rows" crash on the first auto-scan when re-initialising a project that already had a DB from an older CLI version.',packages:["@skill-map/cli"]},{body:"**Two scan-time bugs fixed.** Resolved `/slash` and `@mention` links now correctly land at confidence `1.0` (were stuck at the emit floor), and the markdown-link extractor no longer flags `[label](path)` shown inside backticks or fenced code blocks as broken references.",packages:["@skill-map/cli"]},{body:"Cross-provider files (e.g. a `.codex/agents/*.toml` while the lens is `claude`) are no longer claimed by the foreign provider. They surface as plain markdown / unclassified instead, matching how the agent itself would see them at runtime.",packages:["@skill-map/cli","@skill-map/spec"]},{body:"Card chips for incoming / outgoing links no longer count self-loops, so a node that links back to itself stops showing inflated 1 in / 1 out. The `core/self-loop` analyzer still surfaces the self-reference as a warning, only the misleading count goes away.",packages:["@skill-map/cli"]},{body:"**CLI + inspector polish.** `sm init` now prompts for the active lens when markers compete; `sm config set activeProvider` rejects unknown ids upfront; error blocks across the CLI gain a `\u2715` glyph + hint; the inspector hides self-loops and paints kinds in their canonical colour.",packages:["@skill-map/cli"]},{body:'**Inspector overhaul.** Links show numeric confidence, a Findings list, per-row issue chips, and per-site "Occurs at" lines. New "External references" section. Self-loops hidden by default. Two new analyzers flag redundant multi-form references and self-loops.',packages:["@skill-map/cli","@skill-map/spec"]},{body:"`sm scan` now warns when two extractors detect overlapping byte ranges. The graph keeps the winner; the issue panel explains which detection lost and why, so a markdown link wrapping an `@`-directive no longer looks like silent disappearing intent.",packages:["@skill-map/cli","@skill-map/spec"]}]},{version:"0.36.0",date:"2026-05-22",kind:"user-facing",highlights:[{body:"**Gemini CLI support retired.** Antigravity CLI projects (Google's May 2026 replacement) scan via the open-standard `.agents/skills/` paths under the existing `agent-skills` lens. Run `sm config set activeProvider antigravity` to flag a project as Antigravity-flavoured.",packages:["@skill-map/cli","@skill-map/spec"]},{body:"**Files whose name shadows a built-in are flagged.** A file like `.claude/commands/help.md` now emits a `warn` (Claude's runtime ignores it for its own `/help`), and incoming `/help` edges resolve to it at confidence `0.1` instead of `1.0`.",packages:["@skill-map/cli","@skill-map/spec"]}]}]};var Bt=zt;var En=(t,r)=>r.version;function Mn(t,r){if(t&1&&(v(0,"p",3),l(1),C()),t&2){let e=d();o(),p(" ",e.texts.changelogEmpty," ")}}function Tn(t,r){if(t&1&&(v(0,"p",12),l(1),C()),t&2){let e=d(3);o(),p(" ",e.texts.changelogInternalRelease," ")}}function On(t,r){if(t&1&&(v(0,"li",17),l(1),C()),t&2){let e=r.$implicit;o(),_(e)}}function In(t,r){if(t&1&&(v(0,"ul",16),A(1,On,2,1,"li",17,q),C()),t&2){let e=d().$implicit,i=d(4);b("aria-label",i.texts.changelogAffectedPackages),o(),L(e.packages)}}function Fn(t,r){if(t&1&&(v(0,"li",14),ne(1,"div",15),h(2,In,3,1,"ul",16),C()),t&2){let e=r.$implicit;o(),W("innerHTML",e.bodyHtml,nt),o(),f(e.packages.length?2:-1)}}function jn(t,r){if(t&1&&(v(0,"ul",13),A(1,Fn,3,2,"li",14,st),C()),t&2){let e=d().$implicit;o(),L(e.highlights)}}function Dn(t,r){if(t&1&&(v(0,"li",8)(1,"header",9)(2,"span",10),l(3),C(),v(4,"span",11),l(5),C()(),h(6,Tn,2,1,"p",12)(7,jn,3,0,"ul",13),C()),t&2){let e=r.$implicit;G("settings-changelog__entry--internal",e.kind==="internal"),b("data-testid","settings-changelog-entry-"+e.version),o(3),p("v",e.version),o(2),_(e.date),o(),f(e.kind==="internal"?6:7)}}function An(t,r){if(t&1&&(v(0,"ol",4),A(1,Dn,8,6,"li",7,En),C()),t&2){let e=d();o(),L(e.entries())}}var Ln=10,$t=(()=>{class t{markdown=k(St);texts=y;entries=u([]);hasEntries=x(()=>this.entries().length>0);ngOnInit(){this.renderAll()}async renderAll(){let e=[],i=Bt.entries.slice(0,Ln);for(let n of i){let s=[];for(let g of n.highlights)s.push({bodyHtml:await this.markdown.render(g.body),packages:g.packages});e.push({version:n.version,date:this.formatDate(n.date),kind:n.kind,highlights:s})}this.entries.set(e)}formatDate(e){let i=new Date(e+"T00:00:00Z");return Number.isNaN(i.getTime())?e:new Intl.DateTimeFormat("en-GB",{day:"numeric",month:"long",year:"numeric",timeZone:"UTC"}).format(i)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=z({type:t,selectors:[["sm-settings-changelog"]],decls:11,vars:7,consts:[["data-testid","settings-changelog",1,"settings-changelog"],["id","settings-changelog-heading",1,"settings-changelog__title"],[1,"settings-changelog__intro"],["data-testid","settings-changelog-empty",1,"settings-changelog__empty"],["role","list",1,"settings-changelog__list"],["data-testid","settings-changelog-footer",1,"settings-changelog__footer"],["target","_blank","rel","noopener noreferrer",1,"settings-changelog__footer-link",3,"href"],[1,"settings-changelog__entry",3,"settings-changelog__entry--internal"],[1,"settings-changelog__entry"],[1,"settings-changelog__entry-header"],[1,"settings-changelog__version"],[1,"settings-changelog__date"],[1,"settings-changelog__internal-body"],["role","list",1,"settings-changelog__highlights"],[1,"settings-changelog__highlight"],[1,"settings-changelog__highlight-body",3,"innerHTML"],["role","list",1,"settings-changelog__packages"],[1,"settings-changelog__package"]],template:function(i,n){i&1&&(v(0,"section",0)(1,"h2",1),l(2),C(),v(3,"p",2),l(4),C(),h(5,Mn,2,1,"p",3)(6,An,3,0,"ol",4),v(7,"p",5),l(8),v(9,"a",6),l(10),C()()()),i&2&&(b("aria-labelledby","settings-changelog-heading"),o(2),p(" ",n.texts.changelogHeading," "),o(2),_(n.texts.changelogIntro),o(),f(n.hasEntries()?6:5),o(3),p(" ",n.texts.changelogFooterText," "),o(),W("href",n.texts.changelogFooterUrl,J),o(),p(" ",n.texts.changelogFooterLinkLabel," "))},styles:["[_nghost-%COMP%]{display:block;height:100%;overflow-y:auto;padding:1.25rem 1.5rem}.settings-changelog__title[_ngcontent-%COMP%]{margin:0 0 .25rem;font-size:1.05rem;font-weight:600;color:var(--p-text-color)}.settings-changelog__intro[_ngcontent-%COMP%]{margin:0 0 1.25rem;font-size:.85rem;color:var(--sm-text-muted);line-height:1.5}.settings-changelog__empty[_ngcontent-%COMP%]{margin:1.5rem 0 0;font-size:.9rem;color:var(--sm-text-muted);font-style:italic}.settings-changelog__list[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.25rem}.settings-changelog__entry[_ngcontent-%COMP%]{border-left:2px solid var(--p-primary-color);padding:.25rem 0 .25rem .85rem}.settings-changelog__entry--internal[_ngcontent-%COMP%]{border-left-color:var(--sm-border)}.settings-changelog__entry-header[_ngcontent-%COMP%]{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.45rem}.settings-changelog__version[_ngcontent-%COMP%]{font-family:var(--sm-font-mono);font-size:.95rem;font-weight:600;color:var(--p-text-color)}.settings-changelog__date[_ngcontent-%COMP%]{font-size:.78rem;color:var(--sm-text-muted)}.settings-changelog__internal-body[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--sm-text-muted);font-style:italic}.settings-changelog__highlights[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem}.settings-changelog__highlight[_ngcontent-%COMP%]{font-size:.88rem;line-height:1.5;color:var(--p-text-color)}.settings-changelog__highlight-body[_ngcontent-%COMP%]{margin:0}[_nghost-%COMP%] .settings-changelog__highlight-body p{margin:0}[_nghost-%COMP%] .settings-changelog__highlight-body p+p{margin-top:.45rem}[_nghost-%COMP%] .settings-changelog__highlight-body code{font-family:var(--sm-font-mono);font-size:.82rem;padding:.05rem .3rem;border-radius:var(--sm-radius-sm);background:var(--sm-bg-hover);color:var(--p-text-color)}[_nghost-%COMP%] .settings-changelog__highlight-body a{color:var(--p-primary-color);text-decoration:underline}[_nghost-%COMP%] .settings-changelog__highlight-body strong{font-weight:600}.settings-changelog__packages[_ngcontent-%COMP%]{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.3rem}.settings-changelog__package[_ngcontent-%COMP%]{font-family:var(--sm-font-mono);font-size:.7rem;padding:.1rem .4rem;border-radius:var(--sm-radius-sm);background:var(--sm-bg-hover);color:var(--sm-text-muted);border:1px solid var(--sm-border);line-height:1.4}.settings-changelog__footer[_ngcontent-%COMP%]{margin:1.75rem 0 0;padding-top:1rem;border-top:1px solid var(--sm-border);font-size:.82rem;color:var(--sm-text-muted);text-align:center}.settings-changelog__footer-link[_ngcontent-%COMP%]{margin-left:.3rem;color:var(--p-primary-color);text-decoration:none;font-weight:500}.settings-changelog__footer-link[_ngcontent-%COMP%]:hover{text-decoration:underline}"],changeDetection:0})}return t})();var Gt=`
2
- .p-toggleswitch {
3
- display: inline-block;
4
- width: dt('toggleswitch.width');
5
- height: dt('toggleswitch.height');
6
- }
7
-
8
- .p-toggleswitch-input {
9
- cursor: pointer;
10
- appearance: none;
11
- position: absolute;
12
- top: 0;
13
- inset-inline-start: 0;
14
- width: 100%;
15
- height: 100%;
16
- padding: 0;
17
- margin: 0;
18
- opacity: 0;
19
- z-index: 1;
20
- outline: 0 none;
21
- border-radius: dt('toggleswitch.border.radius');
22
- }
23
-
24
- .p-toggleswitch-slider {
25
- cursor: pointer;
26
- width: 100%;
27
- height: 100%;
28
- border-width: dt('toggleswitch.border.width');
29
- border-style: solid;
30
- border-color: dt('toggleswitch.border.color');
31
- background: dt('toggleswitch.background');
32
- transition:
33
- background dt('toggleswitch.transition.duration'),
34
- color dt('toggleswitch.transition.duration'),
35
- border-color dt('toggleswitch.transition.duration'),
36
- outline-color dt('toggleswitch.transition.duration'),
37
- box-shadow dt('toggleswitch.transition.duration');
38
- border-radius: dt('toggleswitch.border.radius');
39
- outline-color: transparent;
40
- box-shadow: dt('toggleswitch.shadow');
41
- }
42
-
43
- .p-toggleswitch-handle {
44
- position: absolute;
45
- top: 50%;
46
- display: flex;
47
- justify-content: center;
48
- align-items: center;
49
- background: dt('toggleswitch.handle.background');
50
- color: dt('toggleswitch.handle.color');
51
- width: dt('toggleswitch.handle.size');
52
- height: dt('toggleswitch.handle.size');
53
- inset-inline-start: dt('toggleswitch.gap');
54
- margin-block-start: calc(-1 * calc(dt('toggleswitch.handle.size') / 2));
55
- border-radius: dt('toggleswitch.handle.border.radius');
56
- transition:
57
- background dt('toggleswitch.transition.duration'),
58
- color dt('toggleswitch.transition.duration'),
59
- inset-inline-start dt('toggleswitch.slide.duration'),
60
- box-shadow dt('toggleswitch.slide.duration');
61
- }
62
-
63
- .p-toggleswitch.p-toggleswitch-checked .p-toggleswitch-slider {
64
- background: dt('toggleswitch.checked.background');
65
- border-color: dt('toggleswitch.checked.border.color');
66
- }
67
-
68
- .p-toggleswitch.p-toggleswitch-checked .p-toggleswitch-handle {
69
- background: dt('toggleswitch.handle.checked.background');
70
- color: dt('toggleswitch.handle.checked.color');
71
- inset-inline-start: calc(dt('toggleswitch.width') - calc(dt('toggleswitch.handle.size') + dt('toggleswitch.gap')));
72
- }
73
-
74
- .p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover) .p-toggleswitch-slider {
75
- background: dt('toggleswitch.hover.background');
76
- border-color: dt('toggleswitch.hover.border.color');
77
- }
78
-
79
- .p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover) .p-toggleswitch-handle {
80
- background: dt('toggleswitch.handle.hover.background');
81
- color: dt('toggleswitch.handle.hover.color');
82
- }
83
-
84
- .p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover).p-toggleswitch-checked .p-toggleswitch-slider {
85
- background: dt('toggleswitch.checked.hover.background');
86
- border-color: dt('toggleswitch.checked.hover.border.color');
87
- }
88
-
89
- .p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover).p-toggleswitch-checked .p-toggleswitch-handle {
90
- background: dt('toggleswitch.handle.checked.hover.background');
91
- color: dt('toggleswitch.handle.checked.hover.color');
92
- }
93
-
94
- .p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:focus-visible) .p-toggleswitch-slider {
95
- box-shadow: dt('toggleswitch.focus.ring.shadow');
96
- outline: dt('toggleswitch.focus.ring.width') dt('toggleswitch.focus.ring.style') dt('toggleswitch.focus.ring.color');
97
- outline-offset: dt('toggleswitch.focus.ring.offset');
98
- }
99
-
100
- .p-toggleswitch.p-invalid > .p-toggleswitch-slider {
101
- border-color: dt('toggleswitch.invalid.border.color');
102
- }
103
-
104
- .p-toggleswitch.p-disabled {
105
- opacity: 1;
106
- }
107
-
108
- .p-toggleswitch.p-disabled .p-toggleswitch-slider {
109
- background: dt('toggleswitch.disabled.background');
110
- }
111
-
112
- .p-toggleswitch.p-disabled .p-toggleswitch-handle {
113
- background: dt('toggleswitch.handle.disabled.background');
114
- }
115
- `;var Nn=["handle"],Rn=["input"],Vn=t=>({checked:t});function zn(t,r){t&1&&at(0)}function Bn(t,r){if(t&1&&K(0,zn,1,0,"ng-container",3),t&2){let e=d();m("ngTemplateOutlet",e.handleTemplate||e._handleTemplate)("ngTemplateOutletContext",gt(2,Vn,e.checked()))}}var $n=`
116
- ${Gt}
117
-
118
- p-toggleswitch.ng-invalid.ng-dirty > .p-toggleswitch-slider {
119
- border-color: dt('toggleswitch.invalid.border.color');
120
- }
121
- `,Gn={root:{position:"relative"}},Un={root:({instance:t})=>["p-toggleswitch p-component",{"p-toggleswitch p-component":!0,"p-toggleswitch-checked":t.checked(),"p-disabled":t.$disabled(),"p-invalid":t.invalid()}],input:"p-toggleswitch-input",slider:"p-toggleswitch-slider",handle:"p-toggleswitch-handle"},Ut=(()=>{class t extends _t{name="toggleswitch";style=$n;classes=Un;inlineStyles=Gn;static \u0275fac=(()=>{let e;return function(n){return(e||(e=Re(t)))(n||t)}})();static \u0275prov=be({token:t,factory:t.\u0275fac})}return t})();var Ht=new Je("TOGGLESWITCH_INSTANCE"),Hn={provide:Ct,useExisting:Qe(()=>ge),multi:!0},ge=(()=>{class t extends wt{componentName="ToggleSwitch";$pcToggleSwitch=k(Ht,{optional:!0,skipSelf:!0})??void 0;bindDirectiveInstance=k(_e,{self:!0});onAfterViewChecked(){this.bindDirectiveInstance.setAttrs(this.ptms(["host","root"]))}styleClass;tabindex;inputId;readonly;trueValue=!0;falseValue=!1;ariaLabel;size=$();ariaLabelledBy;autofocus;onChange=new tt;input;handleTemplate;_handleTemplate;focused=!1;_componentStyle=k(Ut);templates;onHostClick(e){this.onClick(e)}onAfterContentInit(){this.templates.forEach(e=>{e.getType()==="handle"?this._handleTemplate=e.template:this._handleTemplate=e.template})}onClick(e){!this.$disabled()&&!this.readonly&&(this.writeModelValue(this.checked()?this.falseValue:this.trueValue),this.onModelChange(this.modelValue()),this.onChange.emit({originalEvent:e,checked:this.modelValue()}),this.input.nativeElement.focus())}onFocus(){this.focused=!0}onBlur(){this.focused=!1,this.onModelTouched()}checked(){return this.modelValue()===this.trueValue}writeControlValue(e,i){i(e),this.cd.markForCheck()}get dataP(){return this.cn({checked:this.checked(),disabled:this.$disabled(),invalid:this.invalid()})}static \u0275fac=(()=>{let e;return function(n){return(e||(e=Re(t)))(n||t)}})();static \u0275cmp=z({type:t,selectors:[["p-toggleswitch"],["p-toggleSwitch"],["p-toggle-switch"]],contentQueries:function(i,n,s){if(i&1&&lt(s,Nn,4)(s,ye,4),i&2){let g;ve(g=xe())&&(n.handleTemplate=g.first),ve(g=xe())&&(n.templates=g)}},viewQuery:function(i,n){if(i&1&&ct(Rn,5),i&2){let s;ve(s=xe())&&(n.input=s.first)}},hostVars:7,hostBindings:function(i,n){i&1&&w("click",function(g){return n.onHostClick(g)}),i&2&&(b("data-p-checked",n.checked())("data-p-disabled",n.$disabled())("data-p",n.dataP),dt(n.sx("root")),me(n.cn(n.cx("root"),n.styleClass)))},inputs:{styleClass:"styleClass",tabindex:[2,"tabindex","tabindex",pt],inputId:"inputId",readonly:[2,"readonly","readonly",ze],trueValue:"trueValue",falseValue:"falseValue",ariaLabel:"ariaLabel",size:[1,"size"],ariaLabelledBy:"ariaLabelledBy",autofocus:[2,"autofocus","autofocus",ze]},outputs:{onChange:"onChange"},features:[ie([Hn,Ut,{provide:Ht,useExisting:t},{provide:ht,useExisting:t}]),ot([_e]),rt],decls:5,vars:22,consts:[["input",""],["type","checkbox","role","switch",3,"focus","blur","checked","pAutoFocus","pBind"],[3,"pBind"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(i,n){i&1&&(c(0,"input",1,0),w("focus",function(){return n.onFocus()})("blur",function(){return n.onBlur()}),a(),c(2,"div",2)(3,"div",2),h(4,Bn,1,4,"ng-container"),a()()),i&2&&(me(n.cx("input")),m("checked",n.checked())("pAutoFocus",n.autofocus)("pBind",n.ptm("input")),b("id",n.inputId)("required",n.required()?"":void 0)("disabled",n.$disabled()?"":void 0)("aria-checked",n.checked())("aria-labelledby",n.ariaLabelledBy)("aria-label",n.ariaLabel)("name",n.name())("tabindex",n.tabindex),o(2),me(n.cx("slider")),m("pBind",n.ptm("slider")),b("data-p",n.dataP),o(),me(n.cx("handle")),m("pBind",n.ptm("handle")),b("data-p",n.dataP),o(),f(n.handleTemplate||n._handleTemplate?4:-1))},dependencies:[mt,ut,ft,ke,bt,_e],encapsulation:2,changeDetection:0})}return t})(),je=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=it({type:t});static \u0275inj=Ye({imports:[ge,ke,ke]})}return t})();var Kn=(t,r)=>r.key;function qn(t,r){if(t&1&&(c(0,"p-message",3),l(1),a()),t&2){let e=d();m("closable",!1),o(),R(" ",e.texts.general.loadErrorPrefix," ",r," ")}}function Wn(t,r){if(t&1&&(c(0,"p-message",4),l(1),a()),t&2){let e=d();m("closable",!1),o(),R(" ",e.texts.general.saveErrorPrefix," ",r," ")}}function Xn(t,r){t&1&&(c(0,"div",15),l(1),a()),t&2&&(o(),_(r))}function Qn(t,r){if(t&1){let e=N();c(0,"li",6)(1,"div",8)(2,"div",9),l(3),a(),c(4,"div",10),l(5),a(),h(6,Xn,2,1,"div",15),a(),c(7,"p-toggleswitch",16),w("ngModelChange",function(n){let s=E(e).$implicit,g=d();return M(g.onToggle(s,n))}),a()()}if(t&2){let e,i=r.$implicit,n=d();b("data-testid","settings-general-row-"+i.key),o(3),_(n.toggleLabel(i.key)),o(2),p(" ",n.toggleDescription(i.key)," "),o(),f((e=n.toggleHint(i.key))?6:-1,e),o(),m("ngModel",n.valueOf(i))("disabled",n.loading()||n.isPending(i.key)||n.preferences()===null),b("data-testid","settings-general-toggle-"+i.key)}}function Yn(t,r){if(t&1&&(c(0,"span",17),l(1),a()),t&2){let e=r.$implicit;o(),p(" ",e.label," ")}}var Jn=[{key:"updateCheck.enabled",read:t=>t.updateCheck.enabled,patch:t=>({updateCheck:{enabled:t}})},{key:"telemetry",read:t=>t.telemetry.errorsEnabled&&t.telemetry.usageCliEnabled&&t.telemetry.usageUiEnabled,patch:t=>({telemetry:{errorsEnabled:t,usageCliEnabled:t,usageUiEnabled:t}})}],De="none";function Zn(t){return t===null?De:t}function ei(t){return t===De?null:t}var Qt=(()=>{class t{dataSource=k(X);themeService=k(Te);visible=$.required();texts=y;toggles=Jn;extraThemeOptions=[{value:De,label:y.general.extraTheme.options.none.label,description:y.general.extraTheme.options.none.description},...Et.map(e=>({value:e.id,label:e.label,description:e.description}))];extraThemeWire=x(()=>Zn(this.themeService.extraTheme()));loading=u(!1);loadError=u(null);saveError=u(null);preferences=u(null);pending=u(new Set);constructor(){B(()=>{this.visible()&&this.refresh()})}toggleLabel(e){return y.general.toggles[e].label}toggleDescription(e){return y.general.toggles[e].description}toggleHint(e){let i=y.general.toggles[e];return"hint"in i?i.hint:null}valueOf(e){let i=this.preferences();return i?e.read(i):!1}isPending(e){return this.pending().has(e)}onToggle(e,i){this.runToggle(e,i)}onExtraThemeChange(e){this.themeService.setExtraTheme(ei(e??De))}async refresh(){this.loading.set(!0),this.loadError.set(null),this.saveError.set(null);try{let e=await this.dataSource.getPreferences();this.preferences.set(e)}catch(e){this.loadError.set(qt(e)),this.preferences.set(null)}finally{this.loading.set(!1)}}async runToggle(e,i){if(this.pending().has(e.key))return;let n=new Set(this.pending());n.add(e.key),this.pending.set(n),this.saveError.set(null);try{let s=await this.dataSource.setPreferences(e.patch(i));this.preferences.set(s)}catch(s){this.saveError.set(qt(s))}finally{let s=new Set(this.pending());s.delete(e.key),this.pending.set(s)}}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=z({type:t,selectors:[["sm-settings-general"]],inputs:{visible:[1,"visible"]},decls:22,vars:12,consts:[["data-testid","settings-general",1,"settings-general"],["id","settings-general-heading",1,"settings-general__title"],[1,"settings-general__intro"],["severity","error","data-testid","settings-general-load-error",3,"closable"],["severity","error","data-testid","settings-general-save-error",3,"closable"],["role","list",1,"settings-general__list"],[1,"settings-general__row"],["data-testid","settings-general-row-extra-theme",1,"settings-general__row"],[1,"settings-general__row-text"],[1,"settings-general__row-label"],[1,"settings-general__row-description"],["optionLabel","label","optionValue","value","data-testid","settings-general-extra-theme",3,"ngModelChange","options","ngModel","allowEmpty"],["pTemplate","item"],["data-testid","settings-general-storage-hint",1,"settings-general__storage-hint"],[1,"settings-general__storage-hint-path"],[1,"settings-general__row-hint"],[3,"ngModelChange","ngModel","disabled"],["data-testid","settings-general-extra-theme-option"]],template:function(i,n){if(i&1&&(c(0,"section",0)(1,"h2",1),l(2),a(),c(3,"p",2),l(4),a(),h(5,qn,2,3,"p-message",3),h(6,Wn,2,3,"p-message",4),c(7,"ul",5),A(8,Qn,8,7,"li",6,Kn),c(10,"li",7)(11,"div",8)(12,"div",9),l(13),a(),c(14,"div",10),l(15),a()(),c(16,"p-selectbutton",11),w("ngModelChange",function(g){return n.onExtraThemeChange(g)}),K(17,Yn,2,1,"ng-template",12),a()()(),c(18,"p",13),l(19),c(20,"code",14),l(21),a()()()),i&2){let s,g;b("aria-labelledby","settings-general-heading"),o(2),p(" ",n.texts.general.heading," "),o(2),_(n.texts.general.intro),o(),f((s=n.loadError())?5:-1,s),o(),f((g=n.saveError())?6:-1,g),o(2),L(n.toggles),o(5),p(" ",n.texts.general.extraTheme.label," "),o(2),p(" ",n.texts.general.extraTheme.description," "),o(),m("options",n.extraThemeOptions)("ngModel",n.extraThemeWire())("allowEmpty",!1),o(3),p(" ",n.texts.general.storageHintLabel," "),o(2),_(n.texts.general.storageHintPath)}},dependencies:[le,se,ae,de,ce,ye,At,Dt,je,ge],styles:["[_nghost-%COMP%]{display:block;height:100%;overflow-y:auto;padding:1.25rem 1.5rem}.settings-general__title[_ngcontent-%COMP%]{margin:0 0 .25rem;font-size:1.05rem;font-weight:600;color:var(--p-text-color)}.settings-general__intro[_ngcontent-%COMP%]{margin:0 0 1.25rem;font-size:.85rem;color:var(--sm-text-muted);line-height:1.5}.settings-general__list[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.settings-general__row[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border:1px solid var(--p-content-border-color);border-radius:.5rem;background:var(--p-content-background)}.settings-general__row-text[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;flex:1 1 auto;min-width:0}.settings-general__row[_ngcontent-%COMP%] p-toggleswitch[_ngcontent-%COMP%]{flex-shrink:0}.settings-general__row-label[_ngcontent-%COMP%]{font-size:.9rem;font-weight:600;color:var(--p-text-color)}.settings-general__row-description[_ngcontent-%COMP%]{font-size:.8rem;color:var(--sm-text-muted);line-height:1.45}.settings-general__row-hint[_ngcontent-%COMP%]{margin-top:.2rem;font-size:.75rem;font-style:italic;color:var(--sm-text-muted)}.settings-general__storage-hint[_ngcontent-%COMP%]{margin:2rem 0 0;font-size:.75rem;line-height:1.5;color:var(--sm-text-muted);opacity:.65}.settings-general__storage-hint-path[_ngcontent-%COMP%]{font-family:var(--p-monospace-font-family);font-size:.72rem;padding:.05rem .3rem;border-radius:.25rem;background:var(--p-content-background);border:1px solid var(--p-content-border-color)}"],changeDetection:0})}return t})();function qt(t){return t instanceof U||t instanceof Error?t.message:String(t)}var Ae={provider:"#7C3AED",extractor:"#A78BFA",analyzer:"#5FD17C",action:"#00C853",formatter:"#5BC0EB",hook:"#FFB627"};function Yt(t){let r=t.toLowerCase();return Ae[r]??"currentColor"}var Jt=["all",...Object.keys(Ae)],Zt=Object.keys(Ae),en=["all","built-in","project"],tn=["built-in","project"],Le=["core","claude","antigravity","openai","agent-skills"];function Q(t,r){return`${t}/${r}`}function Be(t){let r=new Map;for(let e of t)if(!Ne(e.status)&&e.extensions)for(let i of e.extensions)r.set(Q(e.id,i.id),i.enabled);return r}function $e(t){let r=t.target;return!r||typeof r.closest!="function"?!1:r.closest('label, button, input, [role="switch"], p-toggleswitch')!==null}function nn(t,r){if(ti(t,r))return[t];if(!t.extensions)return[];let e=t.extensions.filter(i=>ni(i,r));return e.length===0?[]:[Y(H({},t),{extensions:e})]}function on(t,r){if(!t.extensions)return[];let e=t.extensions.filter(i=>i.kind.toLowerCase()===r);return e.length===0?[]:[Y(H({},t),{extensions:e})]}function rn(t,r){return r==="all"?[t]:t.source===r?[t]:[]}function sn(t){if(t.locked)return[];if(!t.extensions)return[t];let r=t.extensions.filter(e=>!e.locked);return r.length===0?[]:[Y(H({},t),{extensions:r})]}function an(t){return t.slice().sort((e,i)=>{let n=Le.indexOf(e.id),s=Le.indexOf(i.id),g=n>=0?n:Le.length,S=s>=0?s:Le.length;return g!==S?g-S:e.id.localeCompare(i.id)}).map(e=>{if(!e.extensions)return e;let i=e.extensions.slice().sort((n,s)=>n.id.localeCompare(s.id));return Y(H({},e),{extensions:i})})}function ti(t,r){return!!(t.id.toLowerCase().includes(r)||t.description&&t.description.toLowerCase().includes(r))}function ni(t,r){return!!(t.id.toLowerCase().includes(r)||t.description&&t.description.toLowerCase().includes(r))}function Ne(t){return t==="incompatible-spec"||t==="invalid-manifest"||t==="load-error"||t==="id-collision"}function Ge(t){return t instanceof U||t instanceof Error?t.message:String(t)}function ln(t,r){return Ne(t.status)?r.statusFailure[t.status]??t.status:t.status==="enabled"?r.enabledLabel:r.disabledLabel}function cn(t,r){switch(t){case"built-in":return r.sourceBuiltIn;case"project":return r.sourceProject}}var Ue="sm.settings.plugins.collapsed",He="sm.settings.plugins.kind-filter",Ke="sm.settings.plugins.source-filter";function dn(){let t=null;try{t=localStorage.getItem(Ue)}catch{return new Set}if(!t)return new Set;let r;try{r=JSON.parse(t)}catch{return new Set}if(!Array.isArray(r))return new Set;let e=new Set;for(let i of r)typeof i=="string"&&i.length>0&&e.add(i);return e}function gn(t){try{if(t.size===0){localStorage.removeItem(Ue);return}localStorage.setItem(Ue,JSON.stringify([...t]))}catch{}}function pn(){let t=null;try{t=localStorage.getItem(He)}catch{return"all"}return t&&Jt.includes(t)?t:"all"}function un(t){try{if(t==="all"){localStorage.removeItem(He);return}localStorage.setItem(He,t)}catch{}}function mn(){let t=null;try{t=localStorage.getItem(Ke)}catch{return"all"}return t&&en.includes(t)?t:"all"}function _n(t){try{if(t==="all"){localStorage.removeItem(Ke);return}localStorage.setItem(Ke,t)}catch{}}function qe(){Ze(qe);let t=u(dn());B(()=>gn(t()));let r=i=>{let n=new Set(t());n.has(i)?n.delete(i):n.add(i),t.set(n)},e=i=>!t().has(i);return{collapsed:t.asReadonly(),toggleExpanded:r,isExpanded:e}}function hn(t){let r=u(""),e=x(()=>r().trim().length>0),i=u(pn()),n=x(()=>i()!=="all"),s=u(mn()),g=x(()=>s()!=="all"),S=x(()=>i()==="all"&&s()==="all");B(()=>un(i())),B(()=>_n(s()));let V=x(()=>an(t.plugins().flatMap(sn))),te=x(()=>{let F=r().trim().toLowerCase(),P=s(),I=i(),j=V();return P!=="all"&&(j=j.flatMap(D=>rn(D,P))),I!=="all"&&(j=j.flatMap(D=>on(D,I))),F.length>0&&(j=j.flatMap(D=>nn(D,F))),j});return{searchText:r,searchActive:e,kindFilter:i,setKindFilter:F=>{i.set(F)},toggleKindFilter:F=>{i.set(i()===F?"all":F)},isKindFilterActive:F=>i()===F,kindFilterActive:n,kindFilterChips:Zt,sourceFilter:s,setSourceFilter:F=>{s.set(F)},toggleSourceFilter:F=>{s.set(s()===F?"all":F)},isSourceFilterActive:F=>s()===F,sourceFilterActive:g,sourceFilterChips:tn,allFilterActive:S,resetFilters:()=>{i.set("all"),s.set("all")},visiblePlugins:V,filteredPlugins:te}}var ii=new Set(["claude","antigravity","openai","agent-skills","core"]),oi="external_plugin";function ri(t){let r=t.indexOf("/"),e=r>0?t.slice(0,r):t;return ii.has(e)?t:oi}function We(t){let r=new Set;for(let e of t)r.add(ri(e));return[...r].sort()}function fn(t){let r=u(!1),e=u(null),i=u(null),n=u([]),s=u(new Map),g=u(new Map),S=u(!1),V=x(()=>{let P=s(),I=g(),j=new Set;for(let[D,T]of I)P.get(D)!==T&&j.add(D);return j}),te=x(()=>V().size>0),pe=x(()=>n().some(P=>Ne(P.status))),ue=x(()=>{let P=g();for(let I of n()){if(I.startsAsDisabled!==!0)continue;let j=I.extensions??[];for(let D of j)if(P.get(Q(I.id,D.id))===!0)return!0}return!1});return{plugins:n,loading:r,loadError:e,toggleError:i,applying:S,hasFailureRows:pe,originalState:s,pendingState:g,dirtyIds:V,hasPendingChanges:te,restartRecommended:ue,pendingEnabled:P=>g().get(P)??!1,isDirty:P=>V().has(P),refresh:async()=>{r.set(!0),e.set(null),i.set(null);try{let P=await t.dataSource.listPlugins();n.set([...P.items]);let I=Be(P.items);s.set(I),g.set(new Map(I))}catch(P){e.set(Ge(P)),n.set([]),s.set(new Map),g.set(new Map)}finally{r.set(!1)}},onExtensionToggle:(P,I,j)=>{if(S())return;let D=Q(P,I.id),T=new Map(g());T.set(D,j),g.set(T)},applyChanges:async()=>{if(S())return{ok:!1};let P=V();if(P.size===0)return{ok:!1};let I=[],j=g();for(let T of P)I.push({id:T,enabled:j.get(T)??!1});S.set(!0),i.set(null);let D=!1;try{let T=await t.dataSource.applyPluginChanges(I);n.set([...T.items]);let Xe=Be(T.items);s.set(Xe),g.set(new Map(Xe)),t.scanTrigger.run(),D=!0}catch(T){i.set(Ge(T))}finally{S.set(!1)}return D&&Pt("plugin.apply",{enabled:We(I.filter(T=>T.enabled).map(T=>T.id)),disabled:We(I.filter(T=>!T.enabled).map(T=>T.id))}),{ok:D}},discardChanges:()=>{g.set(new Map(s())),i.set(null)}}}var bn=(t,r)=>r.id;function li(t,r){if(t&1&&l(0),t&2){let e=d();p(" ",e.texts.pluginsKindFilterAll," ")}}function ci(t,r){if(t&1&&l(0),t&2){let e=d().$implicit,i=d();p(" ",i.sourceLabel(e)," ")}}function di(t,r){if(t&1){let e=N();c(0,"p-togglebutton",19),w("ngModelChange",function(){let n=E(e).$implicit,s=d();return M(s.toggleSourceFilter(n))}),K(1,ci,1,1,"ng-template",null,0,Ce),a()}if(t&2){let e=r.$implicit,i=d();m("ngModel",i.isSourceFilterActive(e))("ariaLabel",i.texts.pluginsSourceFilterOptionA11y(e,!i.isSourceFilterActive(e))),b("data-testid","settings-plugins-source-chip-"+e)}}function gi(t,r){if(t&1&&l(0),t&2){let e=d().$implicit;p(" ",e," ")}}function pi(t,r){if(t&1){let e=N();c(0,"p-togglebutton",20),w("ngModelChange",function(){let n=E(e).$implicit,s=d();return M(s.toggleKindFilter(n))}),K(1,gi,1,1,"ng-template",null,0,Ce),a()}if(t&2){let e=r.$implicit,i=d();Ve("--kind-color",i.kindTint(e)),m("ngModel",i.isKindFilterActive(e))("ariaLabel",i.texts.pluginsKindFilterOptionA11y(e,!i.isKindFilterActive(e))),b("data-testid","settings-plugins-kind-chip-"+e)}}function ui(t,r){if(t&1&&(c(0,"p-message",14),l(1),a()),t&2){let e=d();m("closable",!1),o(),p(" ",e.texts.unsavedChangesMessage(e.dirtyIds().size)," ")}}function mi(t,r){if(t&1&&(c(0,"p",15),O(1,"i",21),l(2),a()),t&2){let e=d();o(2),p(" ",e.texts.loading," ")}}function _i(t,r){if(t&1&&(c(0,"p-message",16),l(1),a()),t&2){let e=d();m("closable",!1),o(),R(" ",e.texts.errorPrefix," ",e.loadError()," ")}}function hi(t,r){if(t&1&&(c(0,"p",17),l(1),a()),t&2){let e=d();o(),p(" ",e.texts.empty," ")}}function fi(t,r){if(t&1){let e=N();c(0,"p-message",25),w("onClose",function(){E(e);let n=d(2);return M(n.toggleError.set(null))}),l(1),a()}if(t&2){let e=d(2);m("closable",!0),o(),R(" ",e.texts.toggleErrorPrefix," ",e.toggleError()," ")}}function bi(t,r){if(t&1&&(c(0,"p",26),O(1,"i",28),l(2),a()),t&2){let e=d(3);o(2),p(" ",e.texts.pluginsSearchEmpty(e.searchText())," ")}}function vi(t,r){if(t&1&&(c(0,"p",27),O(1,"i",29),l(2),a()),t&2){let e=d(3);o(2),p(" ",e.texts.pluginsProjectEmpty," ")}}function xi(t,r){if(t&1&&h(0,bi,3,1,"p",26)(1,vi,3,1,"p",27),t&2){let e=d(2);f(e.searchActive()?0:e.sourceFilter()==="project"&&!e.kindFilterActive()?1:-1)}}function Ci(t,r){if(t&1){let e=N();c(0,"button",44),w("click",function(n){E(e);let s=d().$implicit;return d(2).toggleExpanded(s.id),M(n.stopPropagation())}),O(1,"i",45),a()}if(t&2){let e=d().$implicit,i=d(2);b("aria-expanded",i.isExpanded(e.id))("aria-label",i.isExpanded(e.id)?i.texts.collapseLabel:i.texts.expandLabel)("data-testid","settings-plugin-expand-"+e.id),o(),G("fa-chevron-down",i.isExpanded(e.id))("fa-chevron-right",!i.isExpanded(e.id))}}function wi(t,r){t&1&&O(0,"span",33)}function yi(t,r){if(t&1&&(c(0,"span",38),l(1),a()),t&2){let e=d().$implicit;o(),p("v",e.version)}}function ki(t,r){if(t&1&&(c(0,"span",39),O(1,"i",46),l(2),a()),t&2){let e=d().$implicit,i=d(2);m("title",i.texts.lockedTooltip),b("data-testid","settings-row-locked-"+e.id),o(2),p(" ",i.texts.lockedLabel," ")}}function Si(t,r){if(t&1&&(c(0,"p",40),l(1),a()),t&2){let e=d().$implicit;o(),_(e.description)}}function Pi(t,r){if(t&1&&(c(0,"span",41),l(1),a()),t&2){let e=d().$implicit;o(),_(e.reason)}}function Ei(t,r){if(t&1&&(c(0,"p",42),O(1,"i",47),l(2),a()),t&2){let e=d().$implicit,i=d(2);b("data-testid","settings-row-starts-disabled-"+e.id),o(2),p(" ",i.texts.startsAsDisabledRowHint," ")}}function Mi(t,r){if(t&1&&(c(0,"span",55),l(1),a()),t&2){let e=d().$implicit;o(),p("v",e.version)}}function Ti(t,r){if(t&1&&(c(0,"span",39),O(1,"i",46),l(2),a()),t&2){let e=d().$implicit,i=d(2).$implicit,n=d(2);m("title",n.texts.lockedTooltip),b("data-testid","settings-extrow-locked-"+i.id+"-"+e.id),o(2),p(" ",n.texts.lockedLabel," ")}}function Oi(t,r){if(t&1&&(c(0,"p",56),l(1),a()),t&2){let e=d().$implicit;o(),_(e.description)}}function Ii(t,r){if(t&1){let e=N();c(0,"li",49),w("click",function(n){let s=E(e).$implicit,g=d(2).$implicit,S=d(2);return M(S.onSubrowClick(g.id,s,n))})("keydown.enter",function(n){let s=E(e).$implicit,g=d(2).$implicit,S=d(2);return M(S.onSubrowClick(g.id,s,n))})("keydown.space",function(n){let s=E(e).$implicit,g=d(2).$implicit,S=d(2);return n.preventDefault(),M(S.onSubrowClick(g.id,s,n))}),c(1,"div",50)(2,"div",51),O(3,"span",52),c(4,"span",53),l(5),a(),c(6,"span",54),l(7),a(),h(8,Mi,2,1,"span",55),h(9,Ti,3,3,"span",39),a(),h(10,Oi,2,1,"p",56),a(),c(11,"p-toggleswitch",57),w("ngModelChange",function(n){let s=E(e).$implicit,g=d(2).$implicit,S=d(2);return M(S.onExtensionToggle(g.id,s,n))}),a()()}if(t&2){let e=r.$implicit,i=d(2).$implicit,n=d(2);G("is-clickable",n.extensionToggleInteractive(e))("is-dirty",n.isDirty(n.qualifiedExt(i.id,e.id))),b("aria-label",n.texts.a11y.extensionRow(n.qualifiedExt(i.id,e.id)))("data-testid","settings-extrow-"+i.id+"-"+e.id),o(3),G("settings-plugins__dirty-dot--visible",n.isDirty(n.qualifiedExt(i.id,e.id))),b("data-testid","settings-extrow-dirty-"+i.id+"-"+e.id),o(2),_(e.id),o(),Ve("--kind-color",n.kindTint(e.kind)),o(),_(e.kind),o(),f(i.source==="project"?8:-1),o(),f(e.locked?9:-1),o(),f(e.description?10:-1),o(),m("ngModel",n.pendingEnabled(n.qualifiedExt(i.id,e.id)))("disabled",n.applying()||!!e.locked)("ariaLabel",n.texts.a11y.extensionToggle(n.qualifiedExt(i.id,e.id),!n.pendingEnabled(n.qualifiedExt(i.id,e.id)))),b("data-testid","settings-ext-toggle-"+i.id+"-"+e.id)}}function Fi(t,r){if(t&1&&(c(0,"ul",43),A(1,Ii,12,20,"li",48,bn),a()),t&2){let e=d().$implicit;b("data-testid","settings-extensions-"+e.id),o(),L(e.extensions)}}function ji(t,r){if(t&1){let e=N();c(0,"li",30)(1,"div",31),w("click",function(n){let s=E(e).$implicit,g=d(2);return M(g.onRowClick(s,n))})("keydown.enter",function(n){let s=E(e).$implicit,g=d(2);return M(g.onRowClick(s,n))})("keydown.space",function(n){let s=E(e).$implicit,g=d(2);return n.preventDefault(),M(g.onRowClick(s,n))}),h(2,Ci,2,7,"button",32)(3,wi,1,0,"span",33),c(4,"div",34)(5,"div",35)(6,"span",36),l(7),a(),c(8,"span",37),l(9),a(),h(10,yi,2,1,"span",38),h(11,ki,3,3,"span",39),a(),h(12,Si,2,1,"p",40),h(13,Pi,2,1,"span",41),h(14,Ei,3,2,"p",42),a()(),h(15,Fi,3,1,"ul",43),a()}if(t&2){let e=r.$implicit,i=d(2);G("is-clickable",i.rowIsClickable(e)),b("data-testid","settings-row-"+e.id),o(),b("aria-label",i.texts.a11y.pluginRow(e.id)),o(),f(i.canExpandExtensions(e)?2:3),o(5),_(e.id),o(2),_(i.sourceLabel(e.source)),o(),f(e.source==="project"&&e.version?10:-1),o(),f(e.locked?11:-1),o(),f(e.description?12:-1),o(),f(e.reason?13:-1),o(),f(i.showStartsAsDisabledHint(e)?14:-1),o(),f(i.canExpandExtensions(e)&&i.isExpanded(e.id)?15:-1)}}function Di(t,r){if(t&1&&(h(0,fi,2,3,"p-message",22),h(1,xi,2,1),c(2,"ul",23),A(3,ji,16,13,"li",24,bn),a()),t&2){let e=d();f(e.toggleError()?0:-1),o(),f(e.filteredPlugins().length===0?1:-1),o(2),L(e.filteredPlugins())}}function Ai(t,r){if(t&1&&(c(0,"em",58),l(1),a()),t&2){let e=d(2);o(),p(" ",e.texts.startsAsDisabledFooterHint," ")}}function Li(t,r){if(t&1){let e=N();c(0,"footer",18),h(1,Ai,2,1,"em",58),c(2,"p-button",59),w("onClick",function(){E(e);let n=d();return M(n.discardChanges())}),a(),c(3,"p-button",60),w("onClick",function(){E(e);let n=d();return M(n.applyChanges())}),a()()}if(t&2){let e=d();o(),f(e.restartRecommended()?1:-1),o(),m("text",!0)("label",e.texts.discardChanges)("ariaLabel",e.texts.discardA11y)("disabled",e.applying()),o(),m("label",e.texts.applyAndClose)("ariaLabel",e.texts.applyA11y)("disabled",e.applying())("loading",e.applying())}}var vn=(()=>{class t{dataSource=k(X);scanTrigger=k(Rt);buffer=k(Fe);destroyRef=k(et);visible=$.required();applied=we();texts=y;pluginState=fn({dataSource:this.dataSource,scanTrigger:this.scanTrigger});plugins=this.pluginState.plugins;loading=this.pluginState.loading;loadError=this.pluginState.loadError;toggleError=this.pluginState.toggleError;applying=this.pluginState.applying;hasFailureRows=this.pluginState.hasFailureRows;originalState=this.pluginState.originalState;pendingState=this.pluginState.pendingState;dirtyIds=this.pluginState.dirtyIds;hasPendingChanges=this.pluginState.hasPendingChanges;restartRecommended=this.pluginState.restartRecommended;pluginCollapse=qe();collapsed=this.pluginCollapse.collapsed;pluginFilter=hn({plugins:this.plugins});searchText=this.pluginFilter.searchText;searchActive=this.pluginFilter.searchActive;kindFilter=this.pluginFilter.kindFilter;kindFilterActive=this.pluginFilter.kindFilterActive;kindFilterChips=this.pluginFilter.kindFilterChips;sourceFilter=this.pluginFilter.sourceFilter;sourceFilterActive=this.pluginFilter.sourceFilterActive;sourceFilterChips=this.pluginFilter.sourceFilterChips;allFilterActive=this.pluginFilter.allFilterActive;visiblePlugins=this.pluginFilter.visiblePlugins;filteredPlugins=this.pluginFilter.filteredPlugins;constructor(){B(()=>{this.visible()&&this.pluginState.refresh()});let e={dirtyIds:this.pluginState.dirtyIds,applyChanges:async()=>{let i=await this.pluginState.applyChanges();return i.ok&&this.applied.emit(),i},discardChanges:()=>this.pluginState.discardChanges()};this.buffer.register(e),this.destroyRef.onDestroy(()=>this.buffer.deregister(e))}toggleKindFilter(e){this.pluginFilter.toggleKindFilter(e)}isKindFilterActive(e){return this.pluginFilter.isKindFilterActive(e)}toggleSourceFilter(e){this.pluginFilter.toggleSourceFilter(e)}isSourceFilterActive(e){return this.pluginFilter.isSourceFilterActive(e)}resetFilters(){this.pluginFilter.resetFilters()}toggleExpanded(e){this.pluginCollapse.toggleExpanded(e)}isExpanded(e){return this.pluginCollapse.isExpanded(e)}pendingEnabled(e){return this.pluginState.pendingEnabled(e)}isDirty(e){return this.pluginState.isDirty(e)}showStartsAsDisabledHint(e){return!e.startsAsDisabled||!e.extensions?!1:e.extensions.some(i=>this.pendingEnabled(Q(e.id,i.id)))}onExtensionToggle(e,i,n){this.pluginState.onExtensionToggle(e,i,n)}async applyChanges(){(await this.pluginState.applyChanges()).ok&&this.applied.emit()}discardChanges(){this.pluginState.discardChanges()}canExpandExtensions(e){return(e.extensions?.length??0)>0}extensionToggleInteractive(e){return!e.locked}rowIsClickable(e){return this.canExpandExtensions(e)}onRowClick(e,i){$e(i)||this.canExpandExtensions(e)&&this.toggleExpanded(e.id)}onSubrowClick(e,i,n){if($e(n)||!this.extensionToggleInteractive(i))return;let s=Q(e,i.id);this.onExtensionToggle(e,i,!this.pendingEnabled(s))}statusLabel(e){return ln(e,this.texts)}sourceLabel(e){return cn(e,this.texts)}qualifiedExt(e,i){return Q(e,i)}kindTint(e){return Yt(e)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=z({type:t,selectors:[["sm-settings-plugins"]],inputs:{visible:[1,"visible"]},outputs:{applied:"applied"},decls:28,vars:11,consts:[["content",""],["aria-labelledby","settings-plugins-heading",1,"settings-plugins"],[1,"settings-plugins__scroll"],[1,"settings-plugins__header"],["id","settings-plugins-heading",1,"settings-plugins__title"],[1,"settings-plugins__intro"],["iconPosition","left",1,"settings-plugins__search"],["styleClass","fa-solid fa-magnifying-glass"],["pInputText","","type","text","data-testid","settings-plugins-search",3,"ngModelChange","placeholder","ngModel"],["role","group","data-testid","settings-plugins-filter",1,"settings-plugins__filter"],["styleClass","settings-plugins__source-chip is-all","data-testid","settings-plugins-filter-all",3,"ngModelChange","ngModel","ariaLabel"],["aria-hidden","true",1,"settings-plugins__filter-divider"],["styleClass","settings-plugins__source-chip",3,"ngModel","ariaLabel"],["styleClass","settings-plugins__kind-chip",3,"ngModel","--kind-color","ariaLabel"],["severity","warn","styleClass","settings-plugins__banner","data-testid","settings-banner-unsaved",3,"closable"],["data-testid","settings-loading",1,"settings-plugins__hint"],["severity","error","data-testid","settings-error",3,"closable"],["data-testid","settings-empty",1,"settings-plugins__hint"],["data-testid","settings-plugins-footer",1,"settings-plugins__footer"],["styleClass","settings-plugins__source-chip",3,"ngModelChange","ngModel","ariaLabel"],["styleClass","settings-plugins__kind-chip",3,"ngModelChange","ngModel","ariaLabel"],["aria-hidden","true",1,"fa-solid","fa-spinner","fa-spin"],["severity","error","data-testid","settings-toggle-error",3,"closable"],["role","list",1,"settings-plugins__list"],[1,"settings-plugins__row",3,"is-clickable"],["severity","error","data-testid","settings-toggle-error",3,"onClose","closable"],["data-testid","settings-search-empty",1,"settings-plugins__hint"],["data-testid","settings-project-empty",1,"settings-plugins__hint"],["aria-hidden","true",1,"fa-solid","fa-magnifying-glass"],["aria-hidden","true",1,"fa-solid","fa-folder-open"],[1,"settings-plugins__row"],["role","button","tabindex","0",1,"settings-plugins__row-main",3,"click","keydown.enter","keydown.space"],["type","button",1,"settings-plugins__expand"],["aria-hidden","true",1,"settings-plugins__expand-spacer"],[1,"settings-plugins__row-text"],[1,"settings-plugins__row-headline"],[1,"settings-plugins__row-id"],[1,"settings-plugins__row-source"],[1,"settings-plugins__row-version"],[1,"settings-plugins__row-locked",3,"title"],[1,"settings-plugins__row-description"],[1,"settings-plugins__row-reason"],[1,"settings-plugins__row-hint"],["role","list",1,"settings-plugins__sublist"],["type","button",1,"settings-plugins__expand",3,"click"],["aria-hidden","true",1,"fa-solid"],["aria-hidden","true",1,"fa-solid","fa-lock"],["aria-hidden","true",1,"fa-solid","fa-triangle-exclamation"],["role","button","tabindex","0",1,"settings-plugins__subrow",3,"is-clickable","is-dirty"],["role","button","tabindex","0",1,"settings-plugins__subrow",3,"click","keydown.enter","keydown.space"],[1,"settings-plugins__subrow-text"],[1,"settings-plugins__subrow-headline"],["aria-hidden","true",1,"settings-plugins__dirty-dot"],[1,"settings-plugins__subrow-id"],[1,"settings-plugins__subrow-kind"],[1,"settings-plugins__subrow-version"],[1,"settings-plugins__subrow-description"],[3,"ngModelChange","ngModel","disabled","ariaLabel"],["data-testid","settings-plugins-restart-hint",1,"settings-plugins__footer-hint"],["severity","secondary","data-testid","settings-plugins-discard",3,"onClick","text","label","ariaLabel","disabled"],["data-testid","settings-plugins-apply",3,"onClick","label","ariaLabel","disabled","loading"]],template:function(i,n){i&1&&(c(0,"section",1)(1,"div",2)(2,"header",3)(3,"h2",4),l(4),a(),c(5,"p",5),l(6),a()(),c(7,"p-iconfield",6),O(8,"p-inputicon",7),c(9,"input",8),w("ngModelChange",function(g){return n.searchText.set(g)}),a()(),c(10,"div",9)(11,"p-togglebutton",10),w("ngModelChange",function(){return n.resetFilters()}),K(12,li,1,1,"ng-template",null,0,Ce),a(),c(14,"span",11),l(15,"|"),a(),A(16,di,3,3,"p-togglebutton",12,q),c(18,"span",11),l(19,"|"),a(),A(20,pi,3,5,"p-togglebutton",13,q),a(),h(22,ui,2,2,"p-message",14),h(23,mi,3,1,"p",15)(24,_i,2,3,"p-message",16)(25,hi,2,1,"p",17)(26,Di,5,2),a(),h(27,Li,4,9,"footer",18),a()),i&2&&(o(4),p(" ",n.texts.pluginsHeading," "),o(2),_(n.texts.pluginsIntro),o(3),m("placeholder",n.texts.pluginsSearchPlaceholder)("ngModel",n.searchText()),b("aria-label",n.texts.pluginsSearchA11y),o(),b("aria-label",n.texts.pluginsFilterA11y),o(),m("ngModel",n.allFilterActive())("ariaLabel",n.texts.pluginsFilterAllA11y),o(5),L(n.sourceFilterChips),o(4),L(n.kindFilterChips),o(2),f(n.hasPendingChanges()?22:-1),o(),f(n.loading()?23:n.loadError()?24:n.plugins().length===0?25:26),o(4),f(n.hasPendingChanges()?27:-1))},dependencies:[le,Me,se,ae,re,Se,Tt,Mt,It,Ot,Ie,Oe,de,ce,kt,yt,je,ge],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden;--kind-color: var(--p-text-color)}.settings-plugins[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0}.settings-plugins__scroll[_ngcontent-%COMP%]{flex:1;overflow-y:auto;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.75rem;min-height:0}.settings-plugins__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.settings-plugins__title[_ngcontent-%COMP%]{font-size:1.15rem;font-weight:600;margin:0}.settings-plugins__intro[_ngcontent-%COMP%]{margin:0;color:var(--p-text-muted-color);font-size:.875rem}.settings-plugins__search[_ngcontent-%COMP%]{display:block;width:100%}.settings-plugins__search[_ngcontent-%COMP%] :where(input[_ngcontent-%COMP%]){width:100%}.settings-plugins__filter[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem}.settings-plugins__kind-chip[_ngcontent-%COMP%], .settings-plugins__source-chip[_ngcontent-%COMP%]{--p-togglebutton-padding: .25rem .625rem;--p-togglebutton-content-padding: 0;--p-togglebutton-content-checked-background: transparent;--p-togglebutton-content-checked-shadow: none;--p-togglebutton-border-radius: var(--sm-radius-pill);--p-togglebutton-background: color-mix(in oklab, var(--chip-accent) 8%, transparent);--p-togglebutton-hover-background: color-mix(in oklab, var(--chip-accent) 18%, transparent);--p-togglebutton-checked-background: color-mix(in oklab, var(--chip-accent) 80%, transparent);--p-togglebutton-border-color: color-mix(in oklab, var(--chip-accent) 35%, transparent);--p-togglebutton-hover-border-color: color-mix(in oklab, var(--chip-accent) 55%, transparent);--p-togglebutton-checked-border-color: var(--chip-accent);--p-togglebutton-color: color-mix(in oklab, var(--chip-accent) 70%, var(--p-text-color));--p-togglebutton-hover-color: color-mix(in oklab, var(--chip-accent) 70%, var(--p-text-color));--p-togglebutton-checked-color: var(--p-surface-50);font-size:.75rem;font-weight:500;letter-spacing:.02em;text-transform:lowercase}.settings-plugins__kind-chip[_ngcontent-%COMP%]{--chip-accent: var(--kind-color)}.settings-plugins__source-chip[_ngcontent-%COMP%]{--chip-accent: var(--p-primary-color)}.settings-plugins__source-chip.is-all[_ngcontent-%COMP%]{--chip-accent: var(--p-text-muted-color)}.settings-plugins__filter-divider[_ngcontent-%COMP%]{align-self:center;color:var(--p-text-muted-color);-webkit-user-select:none;user-select:none}.app-dark[_nghost-%COMP%] .settings-plugins__kind-chip[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .settings-plugins__kind-chip[_ngcontent-%COMP%], .app-dark[_nghost-%COMP%] .settings-plugins__source-chip[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .settings-plugins__source-chip[_ngcontent-%COMP%]{--p-togglebutton-background: color-mix(in oklab, var(--chip-accent) 14%, transparent);--p-togglebutton-hover-background: color-mix(in oklab, var(--chip-accent) 26%, transparent);--p-togglebutton-checked-background: color-mix(in oklab, var(--chip-accent) 70%, transparent);--p-togglebutton-border-color: color-mix(in oklab, var(--chip-accent) 50%, transparent);--p-togglebutton-hover-border-color: color-mix(in oklab, var(--chip-accent) 70%, transparent);--p-togglebutton-color: color-mix(in oklab, var(--chip-accent) 80%, var(--p-text-color));--p-togglebutton-hover-color: color-mix(in oklab, var(--chip-accent) 80%, var(--p-text-color));--p-togglebutton-checked-color: var(--p-surface-900)}.settings-plugins__banner[_ngcontent-%COMP%]{display:block}.settings-plugins__banner-body[_ngcontent-%COMP%]{font-weight:400}.settings-plugins__hint[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin:0;padding:1rem 0;color:var(--p-text-muted-color);font-size:.875rem}.settings-plugins__list[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.settings-plugins__row[_ngcontent-%COMP%]{border:1px solid var(--p-content-border-color);border-radius:var(--p-border-radius);background:var(--p-content-background);padding:.75rem .875rem;display:flex;flex-direction:column;gap:.5rem}.settings-plugins__row.is-clickable[_ngcontent-%COMP%]{cursor:pointer;transition:background .12s ease}.settings-plugins__row.is-clickable[_ngcontent-%COMP%]:hover{background:var(--p-content-hover-background)}.settings-plugins__row.is-failed[_ngcontent-%COMP%]{border-color:var(--p-message-error-border-color);background:var(--p-message-error-background)}.settings-plugins__row.is-extension-plugin[_ngcontent-%COMP%]{background:var(--p-content-background)}.settings-plugins__row-main[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem}.settings-plugins__expand[_ngcontent-%COMP%], .settings-plugins__expand-spacer[_ngcontent-%COMP%]{width:1.75rem;height:1.75rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.settings-plugins__expand[_ngcontent-%COMP%]{border:none;background:transparent;cursor:pointer;color:var(--p-text-muted-color);border-radius:var(--p-border-radius)}.settings-plugins__expand[_ngcontent-%COMP%]:hover{color:var(--p-text-color);background:var(--p-content-hover-background)}.settings-plugins__row-text[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.125rem;flex:1;min-width:0}.settings-plugins__row-headline[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem .75rem;position:relative}.settings-plugins__row-id[_ngcontent-%COMP%]{font-weight:600;font-family:var(--p-monospace-font-family)}.settings-plugins__row-source[_ngcontent-%COMP%], .settings-plugins__row-version[_ngcontent-%COMP%], .settings-plugins__subrow-kind[_ngcontent-%COMP%], .settings-plugins__subrow-version[_ngcontent-%COMP%]{display:inline-flex;align-items:center;font-size:.7rem;font-weight:500;letter-spacing:.02em;padding:.125rem .5rem;border-radius:var(--sm-radius-pill);white-space:nowrap}.settings-plugins__row-version[_ngcontent-%COMP%], .settings-plugins__subrow-version[_ngcontent-%COMP%]{font-family:var(--p-monospace-font-family)}.settings-plugins__row-source[_ngcontent-%COMP%], .settings-plugins__row-version[_ngcontent-%COMP%], .settings-plugins__subrow-version[_ngcontent-%COMP%]{background:color-mix(in oklab,var(--p-text-color) 8%,transparent);border:1px solid color-mix(in oklab,var(--p-text-color) 18%,transparent);color:var(--p-text-color)}.app-dark[_nghost-%COMP%] .settings-plugins__row-source[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .settings-plugins__row-source[_ngcontent-%COMP%], .app-dark[_nghost-%COMP%] .settings-plugins__row-version[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .settings-plugins__row-version[_ngcontent-%COMP%], .app-dark[_nghost-%COMP%] .settings-plugins__subrow-version[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .settings-plugins__subrow-version[_ngcontent-%COMP%]{background:color-mix(in oklab,var(--p-text-color) 14%,transparent);border-color:color-mix(in oklab,var(--p-text-color) 28%,transparent)}.settings-plugins__subrow-kind[_ngcontent-%COMP%]{background:color-mix(in oklab,var(--kind-color) 14%,transparent);border:1px solid color-mix(in oklab,var(--kind-color) 38%,transparent);color:color-mix(in oklab,var(--kind-color) 70%,var(--p-surface-900))}.app-dark[_nghost-%COMP%] .settings-plugins__subrow-kind[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .settings-plugins__subrow-kind[_ngcontent-%COMP%]{background:color-mix(in oklab,var(--kind-color) 22%,transparent);border-color:color-mix(in oklab,var(--kind-color) 55%,transparent);color:color-mix(in oklab,var(--kind-color) 80%,var(--p-surface-50))}.settings-plugins__row-status[_ngcontent-%COMP%]{font-weight:500}.settings-plugins__row-locked[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem;font-size:.7rem;font-weight:500;letter-spacing:.02em;padding:.125rem .5rem;border-radius:var(--sm-radius-pill);white-space:nowrap;background:color-mix(in oklab,var(--p-message-warn-color) 14%,transparent);border:1px solid color-mix(in oklab,var(--p-message-warn-color) 35%,transparent);color:color-mix(in oklab,var(--p-message-warn-color) 70%,var(--p-surface-900))}.settings-plugins__row-locked[_ngcontent-%COMP%] > .pi[_ngcontent-%COMP%]{font-size:.7rem}.app-dark[_nghost-%COMP%] .settings-plugins__row-locked[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .settings-plugins__row-locked[_ngcontent-%COMP%]{background:color-mix(in oklab,var(--p-message-warn-color) 22%,transparent);border-color:color-mix(in oklab,var(--p-message-warn-color) 55%,transparent);color:color-mix(in oklab,var(--p-message-warn-color) 85%,var(--p-surface-50))}.settings-plugins__row-description[_ngcontent-%COMP%]{margin:.25rem 0 0;font-size:.8125rem;line-height:1.4;color:var(--p-text-muted-color)}.settings-plugins__row-reason[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--p-message-error-color);font-family:var(--p-monospace-font-family);margin-top:.25rem}.settings-plugins__sublist[_ngcontent-%COMP%]{list-style:none;margin:0;padding:.5rem 0 0 1.75rem;display:flex;flex-direction:column;gap:.25rem;border-top:1px dashed var(--p-content-border-color)}.settings-plugins__subrow[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.375rem .5rem;border-radius:var(--p-border-radius)}.settings-plugins__subrow.is-clickable[_ngcontent-%COMP%]{cursor:pointer;transition:background .12s ease}.settings-plugins__subrow.is-clickable[_ngcontent-%COMP%]:hover{background:var(--p-content-hover-background)}.settings-plugins__subrow-text[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.125rem;flex:1;min-width:0}.settings-plugins__subrow-headline[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem .75rem;position:relative}.settings-plugins__subrow-id[_ngcontent-%COMP%]{font-family:var(--p-monospace-font-family);font-size:.875rem}.settings-plugins__subrow-description[_ngcontent-%COMP%]{margin:.25rem 0 0;font-size:.75rem;line-height:1.4;color:var(--p-text-muted-color)}.settings-plugins__dirty-dot[_ngcontent-%COMP%]{position:absolute;left:-.75rem;top:50%;transform:translateY(-50%);width:.5rem;height:.5rem;border-radius:50%;background:var(--p-warn-color);visibility:hidden}.settings-plugins__dirty-dot--visible[_ngcontent-%COMP%]{visibility:visible}.settings-plugins__row-hint[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.5rem;margin:.25rem 0 0;font-size:.75rem;line-height:1.4;color:var(--p-warn-color)}.settings-plugins__row-hint[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{margin-top:.125rem}.settings-plugins__footer[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-top:1px solid var(--p-content-border-color);background:var(--p-content-background)}.settings-plugins__footer-hint[_ngcontent-%COMP%]{font-style:italic;font-size:.75rem;line-height:1.4;color:var(--p-warn-color);margin-right:auto}"],changeDetection:0})}return t})();function Ri(t,r){if(t&1&&(c(0,"p-message",4),l(1),a()),t&2){let e=d();m("closable",!1),o(),R(" ",e.texts.project.loadErrorPrefix," ",r," ")}}function Vi(t,r){if(t&1&&(c(0,"p-message",5),l(1),a()),t&2){let e=d();m("closable",!1),o(),R(" ",e.texts.project.saveErrorPrefix," ",r," ")}}function zi(t,r){t&1&&(c(0,"p-message",6),l(1),a()),t&2&&(m("closable",!1),o(),p(" ",r," "))}function Bi(t,r){if(t&1&&(c(0,"span",12),l(1),a()),t&2){let e=d();o(),_(e.texts.project.activeProviderSourceAutodetect)}}function $i(t,r){if(t&1&&(c(0,"span",12),l(1),a()),t&2){let e=d();o(),_(e.texts.project.activeProviderSourceNone)}}function Gi(t,r){if(t&1&&(c(0,"span",12),l(1),a()),t&2){let e=d(),i=d();o(),R(" ",i.texts.project.activeProviderDetectedPrefix," ",e," ")}}function Ui(t,r){t&1&&h(0,Gi,2,2,"span",12),t&2&&f(r.length>0?0:-1)}function Hi(t,r){if(t&1&&(c(0,"p-message",15),l(1),a()),t&2){let e=d();m("closable",!1),o(),R(" ",e.texts.project.loadErrorPrefix," ",r," ")}}function Ki(t,r){if(t&1&&(c(0,"p-message",16),l(1),a()),t&2){let e=d();m("closable",!1),o(),R(" ",e.texts.project.saveErrorPrefix," ",r," ")}}function qi(t,r){if(t&1){let e=N();c(0,"li",19)(1,"span",27),l(2),a(),c(3,"p-button",28),w("onClick",function(){let n=E(e).$implicit,s=d();return M(s.onReferencePathRemove(n))}),a()()}if(t&2){let e=r.$implicit,i=d();o(2),_(e),o(),m("label",i.texts.project.removePathLabel)("outlined",!0)("disabled",i.isPending("scan.referencePaths")),b("data-testid","settings-project-reference-paths-remove")}}function Wi(t,r){if(t&1&&(c(0,"p-message",22),l(1),a()),t&2){let e=d();m("closable",!1),o(),R(" ",e.texts.project.loadErrorPrefix," ",r," ")}}function Xi(t,r){if(t&1&&(c(0,"p-message",23),l(1),a()),t&2){let e=d();m("closable",!1),o(),R(" ",e.texts.project.saveErrorPrefix," ",r," ")}}function Qi(t,r){if(t&1){let e=N();c(0,"li",19)(1,"span",27),l(2),a(),c(3,"p-button",28),w("onClick",function(){let n=E(e).$implicit,s=d();return M(s.onIgnorePatternRemove(n))}),a()()}if(t&2){let e=r.$implicit,i=d();o(2),_(e),o(),m("label",i.texts.project.removeIgnorePatternLabel)("outlined",!0)("disabled",i.isPending("ignore.patterns")),b("data-testid","settings-project-ignore-patterns-remove")}}var Yi=/[\n\r\x00-\x1F\x7F]/,xn=(()=>{class t{dataSource=k(X);confirmation=k(oe);providerRegistry=k(Lt);visible=$.required();texts=y;loading=u(!1);loadError=u(null);saveError=u(null);preferences=u(null);pending=u(new Set);newReferencePath=u("");referencePaths=x(()=>this.preferences()?.scan.referencePaths??[]);ignoreLoadError=u(null);ignoreSaveError=u(null);ignoreEnvelope=u(null);newIgnorePattern=u("");ignorePatterns=x(()=>this.ignoreEnvelope()?.patterns??[]);activeProviderEnvelope=u(null);activeProviderLoadError=u(null);activeProviderSaveError=u(null);activeProviderSwitchAnnouncement=u(null);providerOptions=x(()=>[{id:"",label:y.project.activeProviderEmptyOption},...this.providerRegistry.providers().map(e=>({id:e.id,label:e.label}))]);activeProviderValue=x(()=>this.activeProviderEnvelope()?.activeProvider??"");activeProviderDetectedLabel=x(()=>(this.activeProviderEnvelope()?.detected??[]).join(", "));activeProviderSource=x(()=>this.activeProviderEnvelope()?.source??"none");constructor(){B(()=>{this.visible()&&(this.refresh(),this.refreshIgnore(),this.refreshActiveProvider())})}isPending(e){return this.pending().has(e)}onReferencePathAdd(){let e=this.newReferencePath().trim();if(e.length===0)return;if(e.includes(",")){this.saveError.set(this.texts.project.commaForbidden);return}let i=[...this.referencePaths(),e];this.runPatch("scan.referencePaths",{scan:{referencePaths:i}}).then(n=>{n&&this.newReferencePath.set("")})}onReferencePathRemove(e){let i=this.referencePaths().filter(n=>n!==e);this.runPatch("scan.referencePaths",{scan:{referencePaths:[...i]}})}onIgnorePatternAdd(){let e=this.newIgnorePattern().trim();if(e.length===0){this.ignoreSaveError.set(this.texts.project.ignorePatternEmpty);return}if(Yi.test(e)){this.ignoreSaveError.set(this.texts.project.ignorePatternHasControlChar);return}let i=this.ignorePatterns();if(i.includes(e)){this.ignoreSaveError.set(this.texts.project.ignorePatternDuplicate);return}let n=[...i,e];this.runIgnorePatch({patterns:n}).then(s=>{s&&this.newIgnorePattern.set("")})}onIgnorePatternRemove(e){let i=this.ignorePatterns().filter(n=>n!==e);this.runIgnorePatch({patterns:[...i]})}onActiveProviderChange(e){e===""||e===this.activeProviderValue()||this.confirmActiveProviderSwitch(e,async()=>{await this.runActiveProviderSwitch(e)})}async refresh(){this.loading.set(!0),this.loadError.set(null),this.saveError.set(null);try{let e=await this.dataSource.getProjectPreferences();this.preferences.set(e)}catch(e){this.loadError.set(ee(e)),this.preferences.set(null)}finally{this.loading.set(!1)}}async refreshIgnore(){this.ignoreLoadError.set(null),this.ignoreSaveError.set(null);try{let e=await this.dataSource.getProjectIgnore();this.ignoreEnvelope.set(e)}catch(e){this.ignoreLoadError.set(ee(e)),this.ignoreEnvelope.set(null)}}async refreshActiveProvider(){this.activeProviderLoadError.set(null),this.activeProviderSaveError.set(null);try{let e=await this.dataSource.getActiveProvider();this.activeProviderEnvelope.set(e)}catch(e){this.activeProviderLoadError.set(ee(e)),this.activeProviderEnvelope.set(null)}}async runActiveProviderSwitch(e){this.activeProviderSaveError.set(null),this.activeProviderSwitchAnnouncement.set(null);try{let i=await this.dataSource.setActiveProvider(e);this.activeProviderEnvelope.set({activeProvider:i.activeProvider,detected:i.detected,source:i.source});let n=i.switch.dropped;if(n===null)this.activeProviderSwitchAnnouncement.set(this.texts.project.activeProviderSwitchedNoDb);else{let s=this.texts.project;this.activeProviderSwitchAnnouncement.set(`${s.activeProviderSwitchedPrefix} ${n.tableCount} ${s.activeProviderSwitchedSuffix}`)}}catch(i){this.activeProviderSaveError.set(ee(i))}}confirmActiveProviderSwitch(e,i){this.confirmation.confirm({header:this.texts.project.activeProviderConfirmHeader,message:this.texts.project.activeProviderConfirmIntro,acceptLabel:this.texts.project.activeProviderConfirmAccept,rejectLabel:this.texts.project.activeProviderConfirmReject,acceptButtonProps:{severity:"primary"},rejectButtonProps:{severity:"secondary"},accept:()=>{i()},reject:()=>{let n=this.activeProviderEnvelope();n&&this.activeProviderEnvelope.set(H({},n))}})}async runPatch(e,i){if(this.pending().has(e))return!1;let n=new Set(this.pending());n.add(e),this.pending.set(n),this.saveError.set(null);let s=!1;try{let g=await this.dataSource.setProjectPreferences(i);this.preferences.set(g),s=!0}catch(g){if(g instanceof U&&g.code==="confirm-required"){let S=g.paths??[];this.confirmDialog(S,async()=>{try{let V=await this.dataSource.setProjectPreferences(Y(H({},i),{confirm:!0}));this.preferences.set(V),this.newReferencePath.set("")}catch(V){this.saveError.set(ee(V))}})}else this.saveError.set(ee(g))}finally{let g=new Set(this.pending());g.delete(e),this.pending.set(g)}return s}async runIgnorePatch(e){let i="ignore.patterns";if(this.pending().has(i))return!1;let n=new Set(this.pending());n.add(i),this.pending.set(n),this.ignoreSaveError.set(null);let s=!1;try{let g=await this.dataSource.setProjectIgnore(e);this.ignoreEnvelope.set(g),s=!0}catch(g){this.ignoreSaveError.set(ee(g))}finally{let g=new Set(this.pending());g.delete(i),this.pending.set(g)}return s}confirmDialog(e,i){this.confirmation.confirm({header:y.project.confirmDialogHeader,message:y.project.confirmDialogIntro+`
122
- `+e.map(n=>`\u2022 ${n}`).join(`
123
- `),acceptLabel:y.project.confirmDialogAccept,rejectLabel:y.project.confirmDialogReject,acceptButtonProps:{severity:"primary"},rejectButtonProps:{severity:"secondary"},accept:()=>{i()}})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=z({type:t,selectors:[["sm-settings-project"]],inputs:{visible:[1,"visible"]},features:[ie([oe])],decls:58,vars:36,consts:[["data-testid","settings-project",1,"settings-project"],["id","settings-project-heading",1,"settings-project__title"],[1,"settings-project__intro"],[1,"settings-project__intro-path"],["severity","error","data-testid","settings-project-active-provider-load-error",3,"closable"],["severity","error","data-testid","settings-project-active-provider-save-error",3,"closable"],["severity","info","data-testid","settings-project-active-provider-switch-announce",3,"closable"],["data-testid","settings-project-active-provider-row",1,"settings-project__list-row"],[1,"settings-project__row-text"],[1,"settings-project__row-label"],[1,"settings-project__row-description"],[1,"settings-project__row-meta"],[1,"settings-project__meta-line"],[1,"settings-project__add-row"],["optionLabel","label","optionValue","id","appendTo","body","data-testid","settings-project-active-provider-select",1,"settings-project__provider-select",3,"ngModelChange","options","ngModel"],["severity","error","data-testid","settings-project-load-error",3,"closable"],["severity","error","data-testid","settings-project-save-error",3,"closable"],["data-testid","settings-project-reference-paths-row",1,"settings-project__list-row"],["role","list",1,"settings-project__path-list"],[1,"settings-project__path-item"],["type","text","pInputText","","data-testid","settings-project-reference-paths-input",3,"ngModelChange","keydown.enter","ngModel","placeholder","disabled"],["severity","primary","size","small","data-testid","settings-project-reference-paths-add",3,"onClick","label","disabled"],["severity","error","data-testid","settings-project-ignore-load-error",3,"closable"],["severity","error","data-testid","settings-project-ignore-save-error",3,"closable"],["data-testid","settings-project-ignore-patterns-row",1,"settings-project__list-row"],["type","text","pInputText","","data-testid","settings-project-ignore-patterns-input",3,"ngModelChange","keydown.enter","ngModel","placeholder","disabled"],["severity","primary","size","small","data-testid","settings-project-ignore-patterns-add",3,"onClick","label","disabled"],[1,"settings-project__path-text"],["severity","secondary","size","small",3,"onClick","label","outlined","disabled"]],template:function(i,n){if(i&1&&(c(0,"section",0)(1,"h2",1),l(2),a(),c(3,"p",2),l(4),c(5,"code",3),l(6),a(),l(7),a(),h(8,Ri,2,3,"p-message",4),h(9,Vi,2,3,"p-message",5),h(10,zi,2,2,"p-message",6),c(11,"div",7)(12,"div",8)(13,"div",9),l(14),a(),c(15,"div",10),l(16),a(),c(17,"div",11),h(18,Bi,2,1,"span",12)(19,$i,2,1,"span",12),h(20,Ui,1,1),a()(),c(21,"div",13)(22,"p-select",14),w("ngModelChange",function(g){return n.onActiveProviderChange(g)}),a()()(),h(23,Hi,2,3,"p-message",15),h(24,Ki,2,3,"p-message",16),c(25,"div",17)(26,"div",8)(27,"div",9),l(28),a(),c(29,"div",10),l(30),a()(),c(31,"ul",18),A(32,qi,4,5,"li",19,q),a(),c(34,"div",13)(35,"input",20),w("ngModelChange",function(g){return n.newReferencePath.set(g)})("keydown.enter",function(){return n.onReferencePathAdd()}),a(),c(36,"p-button",21),w("onClick",function(){return n.onReferencePathAdd()}),a()()(),h(37,Wi,2,3,"p-message",22),h(38,Xi,2,3,"p-message",23),c(39,"div",24)(40,"div",8)(41,"div",9),l(42),a(),c(43,"div",10),l(44),c(45,"code",3),l(46),a(),l(47),c(48,"code",3),l(49),a(),l(50),a()(),c(51,"ul",18),A(52,Qi,4,5,"li",19,q),a(),c(54,"div",13)(55,"input",25),w("ngModelChange",function(g){return n.newIgnorePattern.set(g)})("keydown.enter",function(){return n.onIgnorePatternAdd()}),a(),c(56,"p-button",26),w("onClick",function(){return n.onIgnorePatternAdd()}),a()()(),O(57,"p-confirmdialog"),a()),i&2){let s,g,S,V,te,pe,ue,he,fe;b("aria-labelledby","settings-project-heading"),o(2),p(" ",n.texts.project.heading," "),o(2),p(" ",n.texts.project.introPrefix," "),o(2),_(n.texts.project.introPath),o(),p("",n.texts.project.introSuffix," "),o(),f((s=n.activeProviderLoadError())?8:-1,s),o(),f((g=n.activeProviderSaveError())?9:-1,g),o(),f((S=n.activeProviderSwitchAnnouncement())?10:-1,S),o(4),_(n.texts.project.activeProviderLabel),o(2),p(" ",n.texts.project.activeProviderDescription," "),o(2),f((V=n.activeProviderSource())==="autodetect"?18:V==="none"?19:-1),o(2),f((te=n.activeProviderDetectedLabel())?20:-1,te),o(2),m("options",n.providerOptions())("ngModel",n.activeProviderValue()),o(),f((pe=n.loadError())?23:-1,pe),o(),f((ue=n.saveError())?24:-1,ue),o(4),_(n.texts.project.referencePathsLabel),o(2),p(" ",n.texts.project.referencePathsDescription," "),o(2),L(n.referencePaths()),o(3),m("ngModel",n.newReferencePath())("placeholder",n.texts.project.referencePathsPlaceholder)("disabled",n.isPending("scan.referencePaths")),o(),m("label",n.texts.project.addPathLabel)("disabled",n.isPending("scan.referencePaths")||n.newReferencePath().trim().length===0),o(),f((he=n.ignoreLoadError())?37:-1,he),o(),f((fe=n.ignoreSaveError())?38:-1,fe),o(4),_(n.texts.project.ignorePatternsLabel),o(2),p(" ",n.texts.project.ignorePatternsDescriptionPrefix," "),o(2),_(n.texts.project.ignorePatternsDescriptionFile),o(),p(" ",n.texts.project.ignorePatternsDescriptionMiddle," "),o(2),_(n.texts.project.ignorePatternsDescriptionGitignore),o(),p(" ",n.texts.project.ignorePatternsDescriptionSuffix," "),o(2),L(n.ignorePatterns()),o(3),m("ngModel",n.newIgnorePattern())("placeholder",n.texts.project.ignorePatternsPlaceholder)("disabled",n.isPending("ignore.patterns")),o(),m("label",n.texts.project.addIgnorePatternLabel)("disabled",n.isPending("ignore.patterns")||n.newIgnorePattern().trim().length===0)}},dependencies:[le,Me,se,ae,re,Se,Ee,Pe,Ie,Oe,de,ce,jt,Ft],styles:["[_nghost-%COMP%]{display:block;height:100%;overflow-y:auto;padding:1.25rem 1.5rem}.settings-project__title[_ngcontent-%COMP%]{margin:0 0 .25rem;font-size:1.05rem;font-weight:600;color:var(--p-text-color)}.settings-project__intro[_ngcontent-%COMP%]{margin:0 0 1.25rem;font-size:.85rem;color:var(--sm-text-muted);line-height:1.5}.settings-project__intro-path[_ngcontent-%COMP%]{font-family:var(--p-monospace-font-family);font-size:.8rem;padding:.05rem .3rem;border-radius:.25rem;background:var(--p-content-background);border:1px solid var(--p-content-border-color)}[_nghost-%COMP%] p-message[_ngcontent-%COMP%]{display:block;margin-bottom:1rem}.settings-project__row[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border:1px solid var(--p-content-border-color);border-radius:.5rem;background:var(--p-content-background);margin-bottom:1rem}.settings-project__row[_ngcontent-%COMP%] > p-toggleswitch[_ngcontent-%COMP%]{flex:0 0 auto;align-self:center}.settings-project__list-row[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.75rem;padding:.85rem 1rem;border:1px solid var(--p-content-border-color);border-radius:.5rem;background:var(--p-content-background);margin-bottom:1rem}.settings-project__row-text[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;flex:1 1 auto;min-width:0}.settings-project__row-label[_ngcontent-%COMP%]{font-size:.9rem;font-weight:600;color:var(--p-text-color)}.settings-project__row-description[_ngcontent-%COMP%]{font-size:.8rem;color:var(--sm-text-muted);line-height:1.45}.settings-project__path-list[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.settings-project__path-item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.4rem .6rem;border-radius:.35rem;background:var(--p-content-hover-background)}.settings-project__path-text[_ngcontent-%COMP%]{font-family:var(--p-font-family-mono);font-size:.8rem;word-break:break-all;flex:1 1 auto}.settings-project__add-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:center}.settings-project__add-row[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{flex:1 1 auto;font-family:var(--p-font-family-mono);font-size:.8rem}.settings-project__row-meta[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.15rem;font-size:.75rem;color:var(--p-text-muted-color)}.settings-project__meta-line[_ngcontent-%COMP%]{line-height:1.3}.settings-project__provider-select[_ngcontent-%COMP%]{flex:1 1 auto}.settings-project__provider-select[_ngcontent-%COMP%] .p-select[_ngcontent-%COMP%]{width:100%}"],changeDetection:0})}return t})();function ee(t){return t instanceof U||t instanceof Error?t.message:String(t)}var Ji=(t,r)=>r.id;function Zi(t,r){if(t&1){let e=N();c(0,"li")(1,"button",6),w("click",function(){let n=E(e).$implicit,s=d();return M(s.selectSection(n.id))}),c(2,"span",7),l(3),a()()()}if(t&2){let e=r.$implicit,i=d();o(),G("is-active",i.activeSection()===e.id),b("aria-current",i.activeSection()===e.id?"page":null)("data-testid","settings-nav-"+e.id),o(2),_(e.label)}}function eo(t,r){if(t&1){let e=N();c(0,"sm-settings-plugins",8),w("applied",function(){E(e);let n=d();return M(n.onPluginsApplied())}),a()}if(t&2){let e=d();m("visible",e.pluginsVisible())}}function to(t,r){if(t&1&&O(0,"sm-settings-general",5),t&2){let e=d();m("visible",e.generalVisible())}}function no(t,r){if(t&1&&O(0,"sm-settings-project",5),t&2){let e=d();m("visible",e.projectVisible())}}function io(t,r){if(t&1&&O(0,"sm-settings-about",5),t&2){let e=d();m("visible",e.aboutVisible())}}function oo(t,r){t&1&&O(0,"sm-settings-changelog")}var ro=[{id:"general",label:y.sections.general},{id:"project",label:y.sections.project},{id:"plugins",label:y.sections.plugins},{id:"changelog",label:y.sections.changelog},{id:"about",label:y.sections.about}],Ds=(()=>{class t{visible=$.required();visibleChange=we();confirmation=k(oe);buffer=k(Fe);texts=y;sections=ro;activeSection=u("plugins");pluginsVisible=x(()=>this.visible()&&this.activeSection()==="plugins");generalVisible=x(()=>this.visible()&&this.activeSection()==="general");projectVisible=x(()=>this.visible()&&this.activeSection()==="project");aboutVisible=x(()=>this.visible()&&this.activeSection()==="about");onVisibleChange(e){if(e){this.visibleChange.emit(!0);return}let i=this.buffer.dirtyCount();if(i===0){this.visibleChange.emit(!1);return}this.confirmation.confirm({header:this.texts.confirmCloseTitle,message:this.texts.confirmCloseBody(i),acceptLabel:this.texts.applyAndClose,rejectLabel:this.texts.discardChanges,acceptButtonProps:{severity:"primary"},rejectButtonProps:{severity:"secondary"},accept:()=>{this.buffer.applyChanges()},reject:()=>{this.buffer.discardChanges(),this.visibleChange.emit(!1)}})}selectSection(e){this.activeSection.set(e)}onPluginsApplied(){this.visibleChange.emit(!1)}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=z({type:t,selectors:[["sm-settings-modal"]],inputs:{visible:[1,"visible"]},outputs:{visibleChange:"visibleChange"},features:[ie([oe])],decls:13,vars:10,consts:[["styleClass","settings-modal__dialog","contentStyleClass","settings-modal__content","data-testid","settings-modal",3,"visibleChange","visible","modal","draggable","resizable","closable","closeOnEscape","dismissableMask","header"],[1,"settings-modal__layout"],["data-testid","settings-modal-sidebar",1,"settings-modal__sidebar"],["role","list",1,"settings-modal__sidebar-list"],["data-testid","settings-modal-main",1,"settings-modal__main"],[3,"visible"],["type","button",1,"settings-modal__sidebar-item",3,"click"],[1,"settings-modal__sidebar-label"],[3,"applied","visible"]],template:function(i,n){if(i&1&&(c(0,"p-dialog",0),w("visibleChange",function(g){return n.onVisibleChange(g)}),c(1,"div",1)(2,"nav",2)(3,"ul",3),A(4,Zi,4,5,"li",null,Ji),a()(),c(6,"div",4),h(7,eo,1,1,"sm-settings-plugins",5)(8,to,1,1,"sm-settings-general",5)(9,no,1,1,"sm-settings-project",5)(10,io,1,1,"sm-settings-about",5)(11,oo,1,0,"sm-settings-changelog"),a()(),O(12,"p-confirmdialog"),a()),i&2){let s;m("visible",n.visible())("modal",!0)("draggable",!1)("resizable",!1)("closable",!0)("closeOnEscape",!0)("dismissableMask",!0)("header",n.texts.modalTitle),o(2),b("aria-label",n.texts.modalTitle),o(2),L(n.sections),o(3),f((s=n.activeSection())==="plugins"?7:s==="general"?8:s==="project"?9:s==="about"?10:s==="changelog"?11:-1)}},dependencies:[re,Ee,Pe,xt,vt,Vt,$t,Qt,vn,xn],styles:["[_nghost-%COMP%]{display:contents;--p-message-error-color: #fca5a5;--p-message-error-background: color-mix(in srgb, #ef4444 14%, transparent);--p-message-error-border-color: color-mix(in srgb, #ef4444 45%, transparent)}[_nghost-%COMP%] .settings-modal__dialog{width:1024px;height:720px;max-width:92vw;max-height:90vh}[_nghost-%COMP%] .settings-modal__content{padding:0;height:100%;display:flex;flex-direction:column;overflow:hidden}.settings-modal__layout[_ngcontent-%COMP%]{flex:1;display:grid;grid-template-columns:200px 1fr;min-height:0}.settings-modal__sidebar[_ngcontent-%COMP%]{border-right:1px solid var(--p-content-border-color);background:var(--p-content-background);padding:.5rem;overflow-y:auto}.settings-modal__sidebar-list[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.125rem}.settings-modal__sidebar-item[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.5rem .75rem;border:none;border-radius:var(--p-border-radius);background:transparent;color:var(--p-text-color);font:inherit;text-align:left;cursor:pointer;transition:background .15s ease,color .15s ease}.settings-modal__sidebar-item[_ngcontent-%COMP%]:hover{background:var(--p-content-hover-background)}.settings-modal__sidebar-item.is-active[_ngcontent-%COMP%]{background:var(--p-highlight-background);color:var(--p-highlight-color)}.settings-modal__sidebar-label[_ngcontent-%COMP%]{flex:1;font-size:.9rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-modal__main[_ngcontent-%COMP%]{min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column}.settings-modal__main[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{flex:1;min-height:0}"],changeDetection:0})}return t})();export{Ds as SettingsModal};