@skill-map/cli 0.19.0 → 0.20.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 (36) hide show
  1. package/dist/cli/tutorial/sm-tutorial.md +3 -3
  2. package/dist/cli.js +7476 -6447
  3. package/dist/cli.js.map +1 -1
  4. package/dist/conformance/index.js +1 -1
  5. package/dist/conformance/index.js.map +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.js +182 -141
  8. package/dist/index.js.map +1 -1
  9. package/dist/kernel/index.d.ts +268 -109
  10. package/dist/kernel/index.js +182 -141
  11. package/dist/kernel/index.js.map +1 -1
  12. package/dist/migrations/001_initial.sql +17 -17
  13. package/dist/ui/{chunk-7CAK6MVK.js → chunk-2W62S3FU.js} +10 -10
  14. package/dist/ui/{chunk-BORRASJB.js → chunk-C7QWBAYP.js} +6 -6
  15. package/dist/ui/{chunk-VWAUXWQX.js → chunk-DLT5AP43.js} +1 -1
  16. package/dist/ui/chunk-HJSRMZTK.js +450 -0
  17. package/dist/ui/chunk-HOBQ4G4O.js +125 -0
  18. package/dist/ui/chunk-IBUV6OG2.js +1 -0
  19. package/dist/ui/chunk-LQTUSDHD.js +124 -0
  20. package/dist/ui/chunk-QICH7GU2.js +5 -0
  21. package/dist/ui/chunk-UJRROL5X.js +1 -0
  22. package/dist/ui/chunk-VLNLJAUB.js +61 -0
  23. package/dist/ui/{chunk-LFIE4SCX.js → chunk-W3JLG7BI.js} +13 -13
  24. package/dist/ui/index.html +2 -2
  25. package/dist/ui/main-QHE47BCM.js +1 -0
  26. package/dist/ui/{styles-UAABA7VK.css → styles-VJ5Q6D2X.css} +1 -1
  27. package/migrations/001_initial.sql +17 -17
  28. package/package.json +2 -2
  29. package/dist/ui/chunk-CZSS4D6J.js +0 -454
  30. package/dist/ui/chunk-EQD7AYYJ.js +0 -227
  31. package/dist/ui/chunk-ETTRVTFV.js +0 -1
  32. package/dist/ui/chunk-OKO3QOH6.js +0 -1
  33. package/dist/ui/chunk-PMIMYHBM.js +0 -61
  34. package/dist/ui/chunk-UHFGCO24.js +0 -1
  35. package/dist/ui/chunk-VHIPW3TH.js +0 -1
  36. package/dist/ui/main-BSYMJKTL.js +0 -1
@@ -0,0 +1,125 @@
1
+ import{c as v,d as ct,e as gt}from"./chunk-UJRROL5X.js";import{a as Ze,b as et,c as tt,d as nt,e as rt}from"./chunk-LQTUSDHD.js";import{a as le,b as de,c as at,d as st,e as lt,f as dt,g as q,h as W}from"./chunk-HJSRMZTK.js";import{e as it,f as se,h as G,i as U,j as K,l as ot}from"./chunk-QICH7GU2.js";import{$a as Le,$c as ae,Aa as Ne,Fc as qe,Gb as oe,Gc as re,Hb as Be,I as Ee,Ib as $e,Ic as We,J as Me,Ja as h,K as Te,Lc as Qe,M as Ie,Ma as b,Na as f,O as k,Oa as Re,Pa as B,Qa as T,Ra as I,Rc as Xe,S as E,Sa as _,Sb as y,Sc as ee,T as M,Ta as l,Tc as Ye,Ua as s,Va as P,Vb as He,Wa as g,Wb as O,Xa as p,Ya as R,Z as Oe,_c as Je,ac as ve,ba as x,bc as Ge,ca as F,cb as D,db as A,dd as V,ea as be,eb as C,ed as N,gb as d,ia as De,ja as Z,jb as Ve,kb as ze,lb as te,mb as ne,mc as Ue,na as o,nc as Ke,rb as fe,sb as L,tb as ie,ub as $,va as S,vb as a,wa as je,wb as m,xb as u,ya as Fe,yb as j,yc as xe,za as Ae}from"./chunk-W3JLG7BI.js";import"./chunk-3R7E3HPC.js";import{a as Y,b as J}from"./chunk-Q7L6LLAK.js";function Mt(t,n){if(t&1&&(g(0,"p",6),a(1),p()),t&2){let e=d();o(),j(" ",e.texts.aboutErrorPrefix," ",e.loadError()," ")}}var ce=class t{dataSource=k(V);updateCheck=k(ct);theme=k(gt);visible=O.required();texts=v;health=x(null);loadError=x(null);markSrc=y(()=>this.theme.resolved()==="dark"?"skill-map-mark-light.svg":"skill-map-mark-dark.svg");cliVersion=y(()=>this.updateCheck.current()??this.health()?.implVersion??this.texts.aboutUnknown);specVersion=y(()=>this.health()?.specVersion??this.texts.aboutLoading);schemaVersion=y(()=>this.health()?.schemaVersion??this.texts.aboutLoading);scope=y(()=>this.health()?.scope??this.texts.aboutLoading);cwd=y(()=>this.health()?.cwd??this.texts.aboutLoading);dbDisplay=y(()=>{let n=this.health();return n?this.texts.aboutDbValue(n.db,Tt(n.dbPath,n.cwd)):this.texts.aboutLoading});homeDir=y(()=>this.health()?.homeDir??this.texts.aboutLoading);constructor(){F(()=>{this.visible()&&this.health()===null&&this.load()})}async load(){this.loadError.set(null);try{let n=await this.dataSource.health();this.health.set(n)}catch(n){let e=n instanceof N||n instanceof Error?n.message:String(n);this.loadError.set(e)}}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=S({type:t,selectors:[["sm-settings-about"]],inputs:{visible:[1,"visible"]},decls:67,vars:29,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,"pi","pi-star-fill","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,"pi","pi-star-fill"],[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-scope",1,"settings-about__value"],["data-testid","settings-about-cwd",1,"settings-about__value"],["data-testid","settings-about-db",1,"settings-about__value"],["data-testid","settings-about-home",1,"settings-about__value"]],template:function(e,i){e&1&&(g(0,"section",0)(1,"header",1),R(2,"img",2),g(3,"div",3)(4,"h2",4),a(5),p(),g(6,"p",5),a(7),p()()(),b(8,Mt,2,2,"p",6),g(9,"a",7),R(10,"i",8),g(11,"span",9)(12,"span",10),a(13),p(),g(14,"span",11),a(15),p()(),g(16,"span",12),R(17,"i",13),a(18),p()(),g(19,"dl",14)(20,"div",15)(21,"dt",16),a(22),p(),g(23,"dd",17)(24,"a",18),a(25),p()()(),g(26,"div",15)(27,"dt",16),a(28),p(),g(29,"dd",17)(30,"a",19),a(31),p()()(),g(32,"div",15)(33,"dt",16),a(34),p(),g(35,"dd",20),a(36),p()(),g(37,"div",15)(38,"dt",16),a(39),p(),g(40,"dd",21),a(41),p()(),g(42,"div",15)(43,"dt",16),a(44),p(),g(45,"dd",22),a(46),p()(),g(47,"div",15)(48,"dt",16),a(49),p(),g(50,"dd",23),a(51),p()(),g(52,"div",15)(53,"dt",16),a(54),p(),g(55,"dd",24),a(56),p()(),g(57,"div",15)(58,"dt",16),a(59),p(),g(60,"dd",25),a(61),p()(),g(62,"div",15)(63,"dt",16),a(64),p(),g(65,"dd",26),a(66),p()()()()),e&2&&(o(2),A("src",i.markSrc(),Z),o(3),u(" ",i.texts.aboutHeading," "),o(2),m(i.texts.aboutIntro),o(),f(i.loadError()?8:-1),o(),A("href",i.texts.aboutGithubUrl,Z),h("aria-label",i.texts.aboutStarA11y),o(4),m(i.texts.aboutStarHeading),o(2),m(i.texts.aboutStarBody),o(3),u(" ",i.texts.aboutStarCta," "),o(4),m(i.texts.aboutWebsiteLabel),o(2),A("href",i.texts.aboutWebsiteUrl,Z),o(),m(i.texts.aboutWebsiteUrl),o(3),m(i.texts.aboutGithubLabel),o(2),A("href",i.texts.aboutGithubUrl,Z),o(),m(i.texts.aboutGithubUrl),o(3),m(i.texts.aboutCliLabel),o(2),u(" ",i.cliVersion()," "),o(3),m(i.texts.aboutSpecLabel),o(2),u(" ",i.specVersion()," "),o(3),m(i.texts.aboutSchemaLabel),o(2),u(" ",i.schemaVersion()," "),o(3),m(i.texts.aboutScopeLabel),o(2),u(" ",i.scope()," "),o(3),m(i.texts.aboutFolderLabel),o(2),u(" ",i.cwd()," "),o(3),m(i.texts.aboutDbLabel),o(2),u(" ",i.dbDisplay()," "),o(3),m(i.texts.aboutHomeLabel),o(2),u(" ",i.homeDir()," "))},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, ui-monospace, monospace);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:999px;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})};function Tt(t,n){if(!t||!n)return t;let e=n.replace(/[/\\]+$/,"");return t.startsWith(e)?t.slice(e.length).replace(/^[/\\]+/,""):t}var pt={schemaVersion:1,entries:[{version:"0.20.0",date:"2026-05-10",kind:"user-facing",highlights:[{body:'**Update-check is now a user preference.** Whether you see "Update available" notifications no longer depends on the project you are scanning. The toggle moved to **Settings \u2192 General** in the UI; the CLI equivalent is `sm config set -g updateCheck.enabled <bool>`. `sm config set` (without `-g`) now rejects this key with a clear "rerun with -g" error so you never write it to the wrong file by accident.\n\nIf you previously had `updateCheck.enabled: false` in `<project>/.skill-map/settings.json`, that override is now **ignored** \u2014 re-set the value with `-g` (or untick the toggle in Settings \u2192 General) to make it stick across projects.',packages:["@skill-map/cli","@skill-map/spec"]},{body:"**`sm scan` now flags orphan job files.** A new built-in rule, `core/job-orphan-file`, scans `.skill-map/jobs/` for MD files that no `state_jobs` row references and reports each as a `warn` issue. This is detection only \u2014 to actually delete the files, run `sm job prune --orphan-files` (unchanged). Useful when the DB was wiped manually but the file tree is still around (or vice versa, recovered DB but the runner crashed mid-render and the file never made it into the row).",packages:["@skill-map/cli"]},{body:"**The view-contribution model is simpler.** Plugin authors now pick **one slot** from a closed catalog of 14; the slot decides where the data renders, what payload shape is expected, and which renderer draws it. The previous model required learning two catalogs (contracts and slots) and accepted that the same data would broadcast to multiple surfaces automatically \u2014 that broadcast is gone.\n\nVisible changes in the SPA:\n\n- The URL-counter chip from `core/external-url-counter` now renders only in the card's footer-right cluster (was visible in four surfaces simultaneously).\n- The `@-mention` chip from `core/at-directive`, plus new `\u{1F4CE}` (markdown links) and `/` (slash directives) counter chips from `core/markdown-link` and `core/slash`, render only in the card's footer-left cluster.\n- The `core/link-counts` rule is paused \u2014 its `linksOut` / `linksIn` chips are temporarily off the card. `linksOut` duplicated the new per-extractor counters; `linksIn` will return when the chip surface is reinstated. The rule stays registered as a no-op so re-enabling is a single-file change.\n- The CLI verb to browse the catalog is now `sm plugins slots list` (was `sm plugins contracts list`).\n- **Stale view contributions are cleaned up.** Editing a node so an extractor stops emitting a chip (e.g. removing the last `@mention` from a doc) now removes the chip on the next scan. Previously the chip would linger until the row was clobbered by an unrelated edit.\n- Renderer icons resolve correctly across emoji and PrimeIcons names (an icon like `arrow-up` no longer leaks as the literal three-character string when the renderer expected a class name).",packages:["@skill-map/cli","@skill-map/spec"]},{body:'The plugin extension kind was renamed from **Rule** to **Analyzer** to better reflect what these plugins do \u2014 they analyze the graph AND project findings into the UI. End-user-visible changes:\n\n- The CLI flag `sm check --rules <ids>` is now `sm check --analyzers <ids>`.\n- The `sm check --json` output\'s per-issue `ruleId` field is now `analyzerId`.\n- Hook triggers in plugin manifests rename from `rule.completed` to `analyzer.completed`; the event payload field `ruleId` is now `analyzerId`.\n- The Settings \u2192 Plugins page lists plugins of kind "analyzer".\n- The marketing site shows the satellite as "Analyzer plugin kind" instead of "Rule plugin kind".\n\nIf you maintain a custom plugin with `kind: "rule"`, update the manifest to `kind: "analyzer"`, rename `emitsRuleIds` to `emitsAnalyzerIds`, and rename any imported `IRule` / `IRuleContext` symbols to `IAnalyzer` / `IAnalyzerContext`. The directory name and `id` rules remain unchanged.',packages:["@skill-map/cli","@skill-map/spec","@skill-map/testkit"]},{body:"**`sm scan -g` now scans your HOME directory.** Run `sm scan -g` (without positional roots) to walk every active provider's HOME dir \u2014 typically `~/.claude`, `~/.gemini`, `~/.agents` \u2014 using the global config + DB.\n\n**Three new privacy-sensitive project settings.** Open Settings \u2192 Project to:\n- **Include HOME provider directories** \u2014 when on, `sm scan` (without `-g`) also walks `~/.claude`, `~/.gemini`, `~/.agents` alongside your project content.\n- **Extra scan roots** \u2014 paths you can add to the scan (indexed as nodes alongside the project root).\n- **Reference paths (link validation)** \u2014 paths walked only to validate links; files there aren't indexed but `core/broken-ref` won't warn when a link target exists in one of them.\n\nEvery change that expands disk access beyond your project root requires explicit confirmation: a confirm dialog in the UI listing the paths that will be read, or `sm config set <key> <value> --yes` on the CLI. Writes that narrow the surface (toggling off, removing paths) need no confirmation.",packages:["@skill-map/cli","@skill-map/spec"]},{body:'**Three new card slots and a small per-node icon contract.** The graph card now reserves room for plugin-emitted markers in three new spots: a tiny icon next to the node title (right side), a small chip in the date row, and an extra cluster on the right of the footer alongside the status icons. Existing `node-counter` plugins automatically light up the new footer-right and subtitle slots \u2014 no manifest changes needed. Plugin authors can also pick a new contract, `node-icon`, for a single-glyph marker (e.g. language flag, "has audio", platform badge) when a counter or tag would be too noisy. See [`spec/view-contracts.md`](https://github.com/crystian/skill-map/blob/main/spec/view-contracts.md#node-icon) for the full schema.\n\n**Plugins can now be locked by the host.** Settings \u2192 Plugins shows a "Locked" pill on plugins that the host marks as mandatory \u2014 today only `core/markdown` (the universal `.md` fallback). The toggle stays visible but disabled so it is obvious the lock is intentional, with a tooltip explaining why. `sm plugins disable core/markdown` now rejects the call with a clear message instead of writing a no-op override.\n\n**Reset Layout uses a proper dialog.** The "Reset all node positions" action used to fire a browser-native `confirm()` popup; it now uses the same in-app dialog style as the rest of the UI (with a destructive-styled "Reset" button and a "Cancel" escape).',packages:["@skill-map/cli","@skill-map/spec"]}]},{version:"0.19.0",date:"2026-05-09",kind:"user-facing",highlights:[{body:`**Settings \u2192 Changelog.** The Changelog tab in Settings now lists what's new in skill-map: one entry per release, newest first, bullet points for the user-facing changes plus the workspace(s) each change affected. The same content is bundled with the demo so it's available offline too. The tab populates automatically on every release.
2
+
3
+ **Project DB path.** The "Project DB" row in Settings \u2192 About now shows the path relative to your project folder (\`.skill-map/skill-map.db\`) instead of repeating the absolute prefix already shown in the row above. Cleaner, less redundant.`,packages:["@skill-map/cli"]},{body:"**Tags zoom-to-matching.** Clicking a tag chip in the inspector now pans + zooms the graph to fit every node that carries the tag. Click the same chip again to clear the selection and return to the previous view. The chip itself lights up to show what's filtering \u2014 an active tag is unmistakable in the panel.",packages:["@skill-map/cli"]}]},{version:"0.18.0",date:"2026-05-07",kind:"user-facing",highlights:[{body:"**Bump sidecars in batch.** New `sm bump --pending` walks every node whose `.sm` sidecar reports drift (body or frontmatter hash mismatch) and refreshes them in one pass \u2014 bumps `annotations.version`, recomputes hashes, stamps `audit.lastBumpedAt` / `lastBumpedBy`. Single-node `sm bump <path>` also lands. The CLI surface mirrors the on-disk write.",packages:["@skill-map/cli","@skill-map/spec"]},{body:'**Annotation catalog now 14 fields.** Dropped `released` (redundant with `audit.lastBumpedAt`). The inspector and node card now read the activity timestamp from the reserved `audit:` block \u2014 no more confusion between "officially released" and "last bumped".',packages:["@skill-map/cli","@skill-map/spec"]}]},{version:"0.17.0",date:"2026-04-29",kind:"user-facing",highlights:[{body:"**View contribution system.** Plugins can now contribute slot-aware visuals to the inspector and the graph card without being wired by hand: per-node counters, alerts, key-value rows. Two built-ins ship today: `core/external-url-counter` (counts external URLs per node) and `core/link-counts` (in / out link counters).",packages:["@skill-map/cli","@skill-map/spec"]},{body:"**Multi-provider support.** The kernel registry is now open per Provider \u2014 Claude, Gemini, and the open-standard `agent-skills` flavour all coexist. Cards paint with each Provider's accent; the kind palette in the graph view filters on the actual node kind names rather than a closed enum.",packages:["@skill-map/cli","@skill-map/spec"]}]}]};var mt=pt;var Ot=(t,n)=>n.version;function Dt(t,n){if(t&1&&(g(0,"p",3),a(1),p()),t&2){let e=d();o(),u(" ",e.texts.changelogEmpty," ")}}function jt(t,n){if(t&1&&(g(0,"p",10),a(1),p()),t&2){let e=d(3);o(),u(" ",e.texts.changelogInternalRelease," ")}}function Ft(t,n){if(t&1&&(g(0,"li",15),a(1),p()),t&2){let e=n.$implicit;o(),m(e)}}function At(t,n){if(t&1&&(g(0,"ul",14),T(1,Ft,2,1,"li",15,B),p()),t&2){let e=d().$implicit,i=d(4);h("aria-label",i.texts.changelogAffectedPackages),o(),I(e.packages)}}function Nt(t,n){if(t&1&&(g(0,"li",12),R(1,"div",13),b(2,At,3,1,"ul",14),p()),t&2){let e=n.$implicit;o(),A("innerHTML",e.bodyHtml,De),o(),f(e.packages.length?2:-1)}}function Rt(t,n){if(t&1&&(g(0,"ul",11),T(1,Nt,3,2,"li",12,Re),p()),t&2){let e=d().$implicit;o(),I(e.highlights)}}function Lt(t,n){if(t&1&&(g(0,"li",6)(1,"header",7)(2,"span",8),a(3),p(),g(4,"span",9),a(5),p()(),b(6,jt,2,1,"p",10)(7,Rt,3,0,"ul",11),p()),t&2){let e=n.$implicit;L("settings-changelog__entry--internal",e.kind==="internal"),h("data-testid","settings-changelog-entry-"+e.version),o(3),u("v",e.version),o(2),m(e.date),o(),f(e.kind==="internal"?6:7)}}function Vt(t,n){if(t&1&&(g(0,"ol",4),T(1,Lt,8,6,"li",5,Ot),p()),t&2){let e=d();o(),I(e.entries())}}var ge=class t{markdown=k(rt);texts=v;entries=x([]);hasEntries=y(()=>this.entries().length>0);ngOnInit(){this.renderAll()}async renderAll(){let n=[];for(let e of mt.entries){let i=[];for(let r of e.highlights)i.push({bodyHtml:await this.markdown.render(r.body),packages:r.packages});n.push({version:e.version,date:this.formatDate(e.date),kind:e.kind,highlights:i})}this.entries.set(n)}formatDate(n){let e=new Date(n+"T00:00:00Z");return Number.isNaN(e.getTime())?n:new Intl.DateTimeFormat("en-GB",{day:"numeric",month:"long",year:"numeric",timeZone:"UTC"}).format(e)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=S({type:t,selectors:[["sm-settings-changelog"]],decls:7,vars:4,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"],[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(e,i){e&1&&(g(0,"section",0)(1,"h2",1),a(2),p(),g(3,"p",2),a(4),p(),b(5,Dt,2,1,"p",3)(6,Vt,3,0,"ol",4),p()),e&2&&(h("aria-labelledby","settings-changelog-heading"),o(2),u(" ",i.texts.changelogHeading," "),o(2),m(i.texts.changelogIntro),o(),f(i.hasEntries()?6:5))},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:3px;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:3px;background:var(--sm-bg-hover);color:var(--sm-text-muted);border:1px solid var(--sm-border);line-height:1.4}"],changeDetection:0})};var pe=class t{sectionId=O.required();sectionLabel=O.required();texts=v;headingId=y(()=>`settings-coming-soon-${this.sectionId()}-heading`);static \u0275fac=function(e){return new(e||t)};static \u0275cmp=S({type:t,selectors:[["sm-settings-coming-soon"]],inputs:{sectionId:[1,"sectionId"],sectionLabel:[1,"sectionLabel"]},decls:6,vars:5,consts:[[1,"settings-coming-soon"],["aria-hidden","true",1,"pi","pi-clock","settings-coming-soon__icon"],[1,"settings-coming-soon__title",3,"id"],[1,"settings-coming-soon__body"]],template:function(e,i){e&1&&(g(0,"section",0),R(1,"i",1),g(2,"h2",2),a(3),p(),g(4,"p",3),a(5),p()()),e&2&&(h("aria-labelledby",i.headingId())("data-testid","settings-coming-soon-"+i.sectionId()),o(2),A("id",i.headingId()),o(),u(" ",i.texts.comingSoonTitle," "),o(2),u(" ",i.texts.comingSoonBody(i.sectionLabel())," "))},styles:["[_nghost-%COMP%]{display:flex;height:100%;align-items:center;justify-content:center;padding:1.5rem}.settings-coming-soon[_ngcontent-%COMP%]{max-width:420px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--p-text-muted-color)}.settings-coming-soon__icon[_ngcontent-%COMP%]{font-size:2rem;opacity:.6}.settings-coming-soon__title[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:600;margin:0;color:var(--p-text-color)}.settings-coming-soon__body[_ngcontent-%COMP%]{margin:0;font-size:.875rem;line-height:1.5}"],changeDetection:0})};var ut=`
4
+ .p-toggleswitch {
5
+ display: inline-block;
6
+ width: dt('toggleswitch.width');
7
+ height: dt('toggleswitch.height');
8
+ }
9
+
10
+ .p-toggleswitch-input {
11
+ cursor: pointer;
12
+ appearance: none;
13
+ position: absolute;
14
+ top: 0;
15
+ inset-inline-start: 0;
16
+ width: 100%;
17
+ height: 100%;
18
+ padding: 0;
19
+ margin: 0;
20
+ opacity: 0;
21
+ z-index: 1;
22
+ outline: 0 none;
23
+ border-radius: dt('toggleswitch.border.radius');
24
+ }
25
+
26
+ .p-toggleswitch-slider {
27
+ cursor: pointer;
28
+ width: 100%;
29
+ height: 100%;
30
+ border-width: dt('toggleswitch.border.width');
31
+ border-style: solid;
32
+ border-color: dt('toggleswitch.border.color');
33
+ background: dt('toggleswitch.background');
34
+ transition:
35
+ background dt('toggleswitch.transition.duration'),
36
+ color dt('toggleswitch.transition.duration'),
37
+ border-color dt('toggleswitch.transition.duration'),
38
+ outline-color dt('toggleswitch.transition.duration'),
39
+ box-shadow dt('toggleswitch.transition.duration');
40
+ border-radius: dt('toggleswitch.border.radius');
41
+ outline-color: transparent;
42
+ box-shadow: dt('toggleswitch.shadow');
43
+ }
44
+
45
+ .p-toggleswitch-handle {
46
+ position: absolute;
47
+ top: 50%;
48
+ display: flex;
49
+ justify-content: center;
50
+ align-items: center;
51
+ background: dt('toggleswitch.handle.background');
52
+ color: dt('toggleswitch.handle.color');
53
+ width: dt('toggleswitch.handle.size');
54
+ height: dt('toggleswitch.handle.size');
55
+ inset-inline-start: dt('toggleswitch.gap');
56
+ margin-block-start: calc(-1 * calc(dt('toggleswitch.handle.size') / 2));
57
+ border-radius: dt('toggleswitch.handle.border.radius');
58
+ transition:
59
+ background dt('toggleswitch.transition.duration'),
60
+ color dt('toggleswitch.transition.duration'),
61
+ inset-inline-start dt('toggleswitch.slide.duration'),
62
+ box-shadow dt('toggleswitch.slide.duration');
63
+ }
64
+
65
+ .p-toggleswitch.p-toggleswitch-checked .p-toggleswitch-slider {
66
+ background: dt('toggleswitch.checked.background');
67
+ border-color: dt('toggleswitch.checked.border.color');
68
+ }
69
+
70
+ .p-toggleswitch.p-toggleswitch-checked .p-toggleswitch-handle {
71
+ background: dt('toggleswitch.handle.checked.background');
72
+ color: dt('toggleswitch.handle.checked.color');
73
+ inset-inline-start: calc(dt('toggleswitch.width') - calc(dt('toggleswitch.handle.size') + dt('toggleswitch.gap')));
74
+ }
75
+
76
+ .p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover) .p-toggleswitch-slider {
77
+ background: dt('toggleswitch.hover.background');
78
+ border-color: dt('toggleswitch.hover.border.color');
79
+ }
80
+
81
+ .p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover) .p-toggleswitch-handle {
82
+ background: dt('toggleswitch.handle.hover.background');
83
+ color: dt('toggleswitch.handle.hover.color');
84
+ }
85
+
86
+ .p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover).p-toggleswitch-checked .p-toggleswitch-slider {
87
+ background: dt('toggleswitch.checked.hover.background');
88
+ border-color: dt('toggleswitch.checked.hover.border.color');
89
+ }
90
+
91
+ .p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover).p-toggleswitch-checked .p-toggleswitch-handle {
92
+ background: dt('toggleswitch.handle.checked.hover.background');
93
+ color: dt('toggleswitch.handle.checked.hover.color');
94
+ }
95
+
96
+ .p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:focus-visible) .p-toggleswitch-slider {
97
+ box-shadow: dt('toggleswitch.focus.ring.shadow');
98
+ outline: dt('toggleswitch.focus.ring.width') dt('toggleswitch.focus.ring.style') dt('toggleswitch.focus.ring.color');
99
+ outline-offset: dt('toggleswitch.focus.ring.offset');
100
+ }
101
+
102
+ .p-toggleswitch.p-invalid > .p-toggleswitch-slider {
103
+ border-color: dt('toggleswitch.invalid.border.color');
104
+ }
105
+
106
+ .p-toggleswitch.p-disabled {
107
+ opacity: 1;
108
+ }
109
+
110
+ .p-toggleswitch.p-disabled .p-toggleswitch-slider {
111
+ background: dt('toggleswitch.disabled.background');
112
+ }
113
+
114
+ .p-toggleswitch.p-disabled .p-toggleswitch-handle {
115
+ background: dt('toggleswitch.handle.disabled.background');
116
+ }
117
+ `;var zt=["handle"],Bt=["input"],$t=t=>({checked:t});function Ht(t,n){t&1&&Le(0)}function Gt(t,n){if(t&1&&Ne(0,Ht,1,0,"ng-container",3),t&2){let e=d();_("ngTemplateOutlet",e.handleTemplate||e._handleTemplate)("ngTemplateOutletContext",$e(2,$t,e.checked()))}}var Ut=`
118
+ ${ut}
119
+
120
+ p-toggleswitch.ng-invalid.ng-dirty > .p-toggleswitch-slider {
121
+ border-color: dt('toggleswitch.invalid.border.color');
122
+ }
123
+ `,Kt={root:{position:"relative"}},qt={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"},ht=(()=>{class t extends We{name="toggleswitch";style=Ut;classes=qt;inlineStyles=Kt;static \u0275fac=(()=>{let e;return function(r){return(e||(e=be(t)))(r||t)}})();static \u0275prov=Me({token:t,factory:t.\u0275fac})}return t})();var _t=new Ie("TOGGLESWITCH_INSTANCE"),Wt={provide:it,useExisting:Ee(()=>z),multi:!0},z=(()=>{class t extends ot{componentName="ToggleSwitch";$pcToggleSwitch=k(_t,{optional:!0,skipSelf:!0})??void 0;bindDirectiveInstance=k(ee,{self:!0});onAfterViewChecked(){this.bindDirectiveInstance.setAttrs(this.ptms(["host","root"]))}styleClass;tabindex;inputId;readonly;trueValue=!0;falseValue=!1;ariaLabel;size=O();ariaLabelledBy;autofocus;onChange=new Oe;input;handleTemplate;_handleTemplate;focused=!1;_componentStyle=k(ht);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(r){return(e||(e=be(t)))(r||t)}})();static \u0275cmp=S({type:t,selectors:[["p-toggleswitch"],["p-toggleSwitch"],["p-toggle-switch"]],contentQueries:function(i,r,c){if(i&1&&Ve(c,zt,4)(c,qe,4),i&2){let w;te(w=ne())&&(r.handleTemplate=w.first),te(w=ne())&&(r.templates=w)}},viewQuery:function(i,r){if(i&1&&ze(Bt,5),i&2){let c;te(c=ne())&&(r.input=c.first)}},hostVars:7,hostBindings:function(i,r){i&1&&C("click",function(w){return r.onHostClick(w)}),i&2&&(h("data-p-checked",r.checked())("data-p-disabled",r.$disabled())("data-p",r.dataP),ie(r.sx("root")),$(r.cn(r.cx("root"),r.styleClass)))},inputs:{styleClass:"styleClass",tabindex:[2,"tabindex","tabindex",Ge],inputId:"inputId",readonly:[2,"readonly","readonly",ve],trueValue:"trueValue",falseValue:"falseValue",ariaLabel:"ariaLabel",size:[1,"size"],ariaLabelledBy:"ariaLabelledBy",autofocus:[2,"autofocus","autofocus",ve]},outputs:{onChange:"onChange"},features:[oe([Wt,ht,{provide:_t,useExisting:t},{provide:Qe,useExisting:t}]),Fe([ee]),Ae],decls:5,vars:22,consts:[["input",""],["type","checkbox","role","switch",3,"focus","blur","checked","pAutoFocus","pBind"],[3,"pBind"],[4,"ngTemplateOutlet","ngTemplateOutletContext"]],template:function(i,r){i&1&&(l(0,"input",1,0),C("focus",function(){return r.onFocus()})("blur",function(){return r.onBlur()}),s(),l(2,"div",2)(3,"div",2),b(4,Gt,1,4,"ng-container"),s()()),i&2&&($(r.cx("input")),_("checked",r.checked())("pAutoFocus",r.autofocus)("pBind",r.ptm("input")),h("id",r.inputId)("required",r.required()?"":void 0)("disabled",r.$disabled()?"":void 0)("aria-checked",r.checked())("aria-labelledby",r.ariaLabelledBy)("aria-label",r.ariaLabel)("name",r.name())("tabindex",r.tabindex),o(2),$(r.cx("slider")),_("pBind",r.ptm("slider")),h("data-p",r.dataP),o(),$(r.cx("handle")),_("pBind",r.ptm("handle")),h("data-p",r.dataP),o(),f(r.handleTemplate||r._handleTemplate?4:-1))},dependencies:[Ke,Ue,Xe,re,Ye,ee],encapsulation:2,changeDetection:0})}return t})(),X=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=je({type:t});static \u0275inj=Te({imports:[z,re,re]})}return t})();var Qt=(t,n)=>n.key;function Xt(t,n){if(t&1&&(l(0,"p-message",3),a(1),s()),t&2){let e=d();_("closable",!1),o(),j(" ",e.texts.general.loadErrorPrefix," ",n," ")}}function Yt(t,n){if(t&1&&(l(0,"p-message",4),a(1),s()),t&2){let e=d();_("closable",!1),o(),j(" ",e.texts.general.saveErrorPrefix," ",n," ")}}function Jt(t,n){if(t&1){let e=D();l(0,"li",6)(1,"div",7)(2,"div",8),a(3),s(),l(4,"div",9),a(5),s()(),l(6,"p-toggleswitch",10),C("ngModelChange",function(r){let c=E(e).$implicit,w=d();return M(w.onToggle(c,r))}),s()()}if(t&2){let e=n.$implicit,i=d();h("data-testid","settings-general-row-"+e.key),o(3),m(i.toggleLabel(e.key)),o(2),u(" ",i.toggleDescription(e.key)," "),o(),_("ngModel",i.valueOf(e))("disabled",i.loading()||i.isPending(e.key)||i.preferences()===null),h("data-testid","settings-general-toggle-"+e.key)}}var Zt=[{key:"updateCheck.enabled",read:t=>t.updateCheck.enabled,patch:t=>({updateCheck:{enabled:t}})}],me=class t{dataSource=k(V);visible=O.required();texts=v;toggles=Zt;loading=x(!1);loadError=x(null);saveError=x(null);preferences=x(null);pending=x(new Set);constructor(){F(()=>{this.visible()&&this.refresh()})}toggleLabel(n){return v.general.toggles[n].label}toggleDescription(n){return v.general.toggles[n].description}valueOf(n){let e=this.preferences();return e?n.read(e):!1}isPending(n){return this.pending().has(n)}onToggle(n,e){this.runToggle(n,e)}async refresh(){this.loading.set(!0),this.loadError.set(null),this.saveError.set(null);try{let n=await this.dataSource.getPreferences();this.preferences.set(n)}catch(n){this.loadError.set(bt(n)),this.preferences.set(null)}finally{this.loading.set(!1)}}async runToggle(n,e){if(this.pending().has(n.key))return;let i=new Set(this.pending());i.add(n.key),this.pending.set(i),this.saveError.set(null);try{let r=await this.dataSource.setPreferences(n.patch(e));this.preferences.set(r)}catch(r){this.saveError.set(bt(r))}finally{let r=new Set(this.pending());r.delete(n.key),this.pending.set(r)}}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=S({type:t,selectors:[["sm-settings-general"]],inputs:{visible:[1,"visible"]},decls:10,vars:5,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"],[1,"settings-general__row-text"],[1,"settings-general__row-label"],[1,"settings-general__row-description"],[3,"ngModelChange","ngModel","disabled"]],template:function(e,i){if(e&1&&(l(0,"section",0)(1,"h2",1),a(2),s(),l(3,"p",2),a(4),s(),b(5,Xt,2,3,"p-message",3),b(6,Yt,2,3,"p-message",4),l(7,"ul",5),T(8,Jt,7,6,"li",6,Qt),s()()),e&2){let r,c;h("aria-labelledby","settings-general-heading"),o(2),u(" ",i.texts.general.heading," "),o(2),m(i.texts.general.intro),o(),f((r=i.loadError())?5:-1,r),o(),f((c=i.saveError())?6:-1,c),o(2),I(i.toggles)}},dependencies:[K,G,U,W,q,X,z],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-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}"],changeDetection:0})};function bt(t){return t instanceof N||t instanceof Error?t.message:String(t)}var Ce={provider:"#7C3AED",extractor:"#A78BFA",analyzer:"#5FD17C",action:"#00C853",formatter:"#5BC0EB",hook:"#FFB627"};function xt(t){let n=t.toLowerCase();return Ce[n]??"currentColor"}var kt=(t,n)=>n.id;function tn(t,n){if(t&1){let e=D();l(0,"button",14),C("click",function(){let r=E(e).$implicit,c=d();return M(c.setKindFilter(r))}),a(1),s()}if(t&2){let e=n.$implicit,i=d();fe("--kind-color",e==="all"?null:i.kindTint(e)),L("is-active",i.isKindFilterActive(e))("is-all",e==="all"),h("aria-pressed",i.isKindFilterActive(e))("aria-label",i.texts.pluginsKindFilterOptionA11y(e,!i.isKindFilterActive(e)))("data-testid","settings-plugins-kind-chip-"+e),o(),u(" ",e==="all"?i.texts.pluginsKindFilterAll:e," ")}}function nn(t,n){if(t&1&&(l(0,"p",11),P(1,"i",15),a(2),s()),t&2){let e=d();o(2),u(" ",e.texts.loading," ")}}function on(t,n){if(t&1&&(l(0,"p-message",12),a(1),s()),t&2){let e=d();_("closable",!1),o(),j(" ",e.texts.errorPrefix," ",e.loadError()," ")}}function rn(t,n){if(t&1&&(l(0,"p",13),a(1),s()),t&2){let e=d();o(),u(" ",e.texts.empty," ")}}function an(t,n){if(t&1){let e=D();l(0,"p-message",20),C("onClose",function(){E(e);let r=d(2);return M(r.toggleError.set(null))}),a(1),s()}if(t&2){let e=d(2);_("closable",!0),o(),j(" ",e.texts.toggleErrorPrefix," ",e.toggleError()," ")}}function sn(t,n){if(t&1&&(l(0,"p",17),P(1,"i",21),a(2),s()),t&2){let e=d(2);o(2),u(" ",e.texts.pluginsSearchEmpty(e.searchText())," ")}}function ln(t,n){if(t&1){let e=D();l(0,"button",37),C("click",function(r){E(e);let c=d().$implicit;return d(2).toggleExpanded(c.id),M(r.stopPropagation())}),P(1,"i",38),s()}if(t&2){let e=d().$implicit,i=d(2);h("aria-expanded",i.isExpanded(e.id))("aria-label",i.isExpanded(e.id)?i.texts.collapseLabel:i.texts.expandLabel)("data-testid","settings-bundle-expand-"+e.id),o(),$(i.isExpanded(e.id)?"pi pi-chevron-down":"pi pi-chevron-right")}}function dn(t,n){t&1&&P(0,"span",25)}function cn(t,n){if(t&1&&(l(0,"span",30),a(1),s()),t&2){let e=d().$implicit;o(),u("v",e.version)}}function gn(t,n){if(t&1&&(l(0,"span",31),P(1,"i",39),a(2),s()),t&2){let e=d().$implicit,i=d(2);_("title",i.texts.lockedTooltip),h("data-testid","settings-row-locked-"+e.id),o(2),u(" ",i.texts.lockedLabel," ")}}function pn(t,n){if(t&1&&(l(0,"span",32),a(1),s()),t&2){let e=d().$implicit,i=d(2);o(),m(i.statusLabel(e))}}function mn(t,n){if(t&1&&(l(0,"p",33),a(1),s()),t&2){let e=d().$implicit;o(),m(e.description)}}function un(t,n){if(t&1&&(l(0,"span",34),a(1),s()),t&2){let e=d().$implicit;o(),m(e.reason)}}function hn(t,n){if(t&1){let e=D();l(0,"p-toggleswitch",40),C("ngModelChange",function(r){E(e);let c=d().$implicit,w=d(2);return M(w.onBundleToggle(c,r))}),s()}if(t&2){let e=d().$implicit,i=d(2);_("ngModel",e.status==="enabled")("disabled",i.isPending(e.id)||!!e.locked)("ariaLabel",i.texts.a11y.pluginToggle(e.id,e.status!=="enabled")),h("data-testid","settings-toggle-"+e.id)}}function _n(t,n){if(t&1&&(l(0,"span",31),P(1,"i",39),a(2),s()),t&2){let e=d().$implicit,i=d(2).$implicit,r=d(2);_("title",r.texts.lockedTooltip),h("data-testid","settings-extrow-locked-"+i.id+"-"+e.id),o(2),u(" ",r.texts.lockedLabel," ")}}function bn(t,n){if(t&1&&(l(0,"p",48),a(1),s()),t&2){let e=d().$implicit;o(),m(e.description)}}function fn(t,n){if(t&1){let e=D();l(0,"li",42),C("click",function(r){let c=E(e).$implicit,w=d(2).$implicit,_e=d(2);return M(_e.onSubrowClick(w.id,c,r))}),l(1,"div",43)(2,"div",44)(3,"span",45),a(4),s(),l(5,"span",46),a(6),s(),l(7,"span",47),a(8),s(),b(9,_n,3,3,"span",31),s(),b(10,bn,2,1,"p",48),s(),l(11,"p-toggleswitch",40),C("ngModelChange",function(r){let c=E(e).$implicit,w=d(2).$implicit,_e=d(2);return M(_e.onExtensionToggle(w.id,c,r))}),s()()}if(t&2){let e=n.$implicit,i=d(2).$implicit,r=d(2);L("is-clickable",r.extensionToggleInteractive(e)),h("data-testid","settings-extrow-"+i.id+"-"+e.id),o(4),m(e.id),o(),fe("--kind-color",r.kindTint(e.kind)),o(),m(e.kind),o(2),u("v",e.version),o(),f(e.locked?9:-1),o(),f(e.description?10:-1),o(),_("ngModel",e.enabled)("disabled",r.isPending(r.qualifiedExt(i.id,e.id))||!!e.locked)("ariaLabel",r.texts.a11y.extensionToggle(r.qualifiedExt(i.id,e.id),!e.enabled)),h("data-testid","settings-ext-toggle-"+i.id+"-"+e.id)}}function vn(t,n){if(t&1&&(l(0,"ul",36),T(1,fn,12,14,"li",41,kt),s()),t&2){let e=d().$implicit;h("data-testid","settings-extensions-"+e.id),o(),I(e.extensions)}}function xn(t,n){if(t&1){let e=D();l(0,"li",22)(1,"div",23),C("click",function(r){let c=E(e).$implicit,w=d(2);return M(w.onRowClick(c,r))}),b(2,ln,2,5,"button",24)(3,dn,1,0,"span",25),l(4,"div",26)(5,"div",27)(6,"span",28),a(7),s(),l(8,"span",29),a(9),s(),b(10,cn,2,1,"span",30),b(11,gn,3,3,"span",31),b(12,pn,2,1,"span",32),s(),b(13,mn,2,1,"p",33),b(14,un,2,1,"span",34),s(),b(15,hn,1,4,"p-toggleswitch",35),s(),b(16,vn,3,1,"ul",36),s()}if(t&2){let e=n.$implicit,i=d(2);L("is-extension-bundle",e.granularity==="extension")("is-failed",!i.canToggleBundle(e)&&e.granularity==="bundle")("is-clickable",i.rowIsClickable(e)),h("data-testid","settings-row-"+e.id),o(2),f(e.granularity==="extension"&&(e.extensions!=null&&e.extensions.length)?2:3),o(5),m(e.id),o(2),m(i.sourceLabel(e.source)),o(),f(e.version?10:-1),o(),f(e.locked?11:-1),o(),f(!i.canToggleBundle(e)&&e.granularity==="bundle"?12:-1),o(),f(e.description?13:-1),o(),f(e.reason?14:-1),o(),f(i.canToggleBundle(e)?15:-1),o(),f(e.granularity==="extension"&&(e.extensions!=null&&e.extensions.length)&&i.isExpanded(e.id)?16:-1)}}function yn(t,n){if(t&1&&(b(0,an,2,3,"p-message",16),b(1,sn,3,1,"p",17),l(2,"ul",18),T(3,xn,17,17,"li",19,kt),s()),t&2){let e=d();f(e.toggleError()?0:-1),o(),f(e.searchActive()&&e.filteredPlugins().length===0?1:-1),o(2),I(e.filteredPlugins())}}var Pt=["all",...Object.keys(Ce)],ke="sm.settings.plugins.collapsed",Pe="sm.settings.plugins.kind-filter",ue=class t{dataSource=k(V);visible=O.required();texts=v;loading=x(!1);loadError=x(null);toggleError=x(null);plugins=x([]);collapsed=x(Pn());pending=x(new Set);hasFailureRows=y(()=>this.plugins().some(n=>we(n.status)));searchText=x("");searchActive=y(()=>this.searchText().trim().length>0);kindFilter=x(En());kindFilterActive=y(()=>this.kindFilter()!=="all");kindFilterOptions=Pt;filteredPlugins=y(()=>{let n=this.searchText().trim().toLowerCase(),e=this.kindFilter(),i=this.plugins();return e!=="all"&&(i=i.flatMap(r=>wn(r,e))),n.length>0&&(i=i.flatMap(r=>Cn(r,n))),i});forcedExpand=y(()=>{if(!this.searchActive()&&!this.kindFilterActive())return new Set;let n=this.searchText().trim().toLowerCase(),e=this.searchActive(),i=this.kindFilterActive(),r=new Set;for(let c of this.filteredPlugins())if(c.granularity==="extension"&&(c.extensions?.length??0)!==0){if(i){r.add(c.id);continue}e&&!St(c,n)&&r.add(c.id)}return r});constructor(){F(()=>{this.visible()&&this.refresh()}),F(()=>Sn(this.collapsed())),F(()=>Mn(this.kindFilter()))}async refresh(){this.loading.set(!0),this.loadError.set(null),this.toggleError.set(null);try{let n=await this.dataSource.listPlugins();this.plugins.set([...n.items])}catch(n){this.loadError.set(wt(n)),this.plugins.set([])}finally{this.loading.set(!1)}}setKindFilter(n){this.kindFilter.set(n)}isKindFilterActive(n){return this.kindFilter()===n}toggleExpanded(n){let e=new Set(this.collapsed());e.has(n)?e.delete(n):e.add(n),this.collapsed.set(e)}isExpanded(n){return this.forcedExpand().has(n)?!0:!this.collapsed().has(n)}isPending(n){return this.pending().has(n)}onBundleToggle(n,e){this.runToggle(n.id,()=>this.dataSource.setPluginEnabled(n.id,e))}onExtensionToggle(n,e,i){let r=yt(n,e.id);this.runToggle(r,()=>this.dataSource.setPluginExtensionEnabled(n,e.id,i))}async runToggle(n,e){if(this.pending().has(n))return;let i=new Set(this.pending());i.add(n),this.pending.set(i),this.toggleError.set(null);try{let r=await e();this.plugins.set([...r.items])}catch(r){this.toggleError.set(wt(r))}finally{let r=new Set(this.pending());r.delete(n),this.pending.set(r)}}canToggleBundle(n){return n.granularity==="extension"?!1:!we(n.status)}bundleToggleInteractive(n){return this.canToggleBundle(n)&&!n.locked}extensionToggleInteractive(n){return!n.locked}rowIsClickable(n){return!!(this.bundleToggleInteractive(n)||n.granularity==="extension"&&(n.extensions?.length??0)>0)}onRowClick(n,e){if(!Ct(e)){if(this.bundleToggleInteractive(n)){this.onBundleToggle(n,n.status!=="enabled");return}n.granularity==="extension"&&(n.extensions?.length??0)>0&&this.toggleExpanded(n.id)}}onSubrowClick(n,e,i){Ct(i)||this.extensionToggleInteractive(e)&&this.onExtensionToggle(n,e,!e.enabled)}statusLabel(n){return we(n.status)?v.statusFailure[n.status]??n.status:n.status==="enabled"?v.enabledLabel:v.disabledLabel}sourceLabel(n){switch(n){case"built-in":return v.sourceBuiltIn;case"project":return v.sourceProject;case"global":return v.sourceGlobal}}qualifiedExt(n,e){return yt(n,e)}kindTint(n){return xt(n)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=S({type:t,selectors:[["sm-settings-plugins"]],inputs:{visible:[1,"visible"]},decls:21,vars:10,consts:[["aria-labelledby","settings-plugins-heading",1,"settings-plugins"],[1,"settings-plugins__header"],["id","settings-plugins-heading",1,"settings-plugins__title"],[1,"settings-plugins__intro"],["iconPosition","left",1,"settings-plugins__search"],["styleClass","pi pi-search"],["pInputText","","type","text","data-testid","settings-plugins-search",3,"ngModelChange","placeholder","ngModel"],["role","group","data-testid","settings-plugins-kind-filter",1,"settings-plugins__kind-filter"],["type","button",1,"settings-plugins__kind-chip",3,"is-active","is-all","--kind-color"],["severity","warn","styleClass","settings-plugins__banner","data-testid","settings-banner-restart",3,"closable"],[1,"settings-plugins__banner-body"],["data-testid","settings-loading",1,"settings-plugins__hint"],["severity","error","data-testid","settings-error",3,"closable"],["data-testid","settings-empty",1,"settings-plugins__hint"],["type","button",1,"settings-plugins__kind-chip",3,"click"],["aria-hidden","true",1,"pi","pi-spin","pi-spinner"],["severity","error","data-testid","settings-toggle-error",3,"closable"],["data-testid","settings-search-empty",1,"settings-plugins__hint"],["role","list",1,"settings-plugins__list"],[1,"settings-plugins__row",3,"is-extension-bundle","is-failed","is-clickable"],["severity","error","data-testid","settings-toggle-error",3,"onClose","closable"],["aria-hidden","true",1,"pi","pi-search"],[1,"settings-plugins__row"],[1,"settings-plugins__row-main",3,"click"],["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-status"],[1,"settings-plugins__row-description"],[1,"settings-plugins__row-reason"],[3,"ngModel","disabled","ariaLabel"],["role","list",1,"settings-plugins__sublist"],["type","button",1,"settings-plugins__expand",3,"click"],["aria-hidden","true"],["aria-hidden","true",1,"pi","pi-lock"],[3,"ngModelChange","ngModel","disabled","ariaLabel"],[1,"settings-plugins__subrow",3,"is-clickable"],[1,"settings-plugins__subrow",3,"click"],[1,"settings-plugins__subrow-text"],[1,"settings-plugins__subrow-headline"],[1,"settings-plugins__subrow-id"],[1,"settings-plugins__subrow-kind"],[1,"settings-plugins__subrow-version"],[1,"settings-plugins__subrow-description"]],template:function(e,i){e&1&&(l(0,"section",0)(1,"header",1)(2,"h2",2),a(3),s(),l(4,"p",3),a(5),s()(),l(6,"p-iconfield",4),P(7,"p-inputicon",5),l(8,"input",6),C("ngModelChange",function(c){return i.searchText.set(c)}),s()(),l(9,"div",7),T(10,tn,2,10,"button",8,B),s(),l(12,"p-message",9)(13,"strong"),a(14),s(),l(15,"span",10),a(16),s()(),b(17,nn,3,1,"p",11)(18,on,2,3,"p-message",12)(19,rn,2,1,"p",13)(20,yn,5,2),s()),e&2&&(o(3),u(" ",i.texts.pluginsHeading," "),o(2),m(i.texts.pluginsIntro),o(3),_("placeholder",i.texts.pluginsSearchPlaceholder)("ngModel",i.searchText()),h("aria-label",i.texts.pluginsSearchA11y),o(),h("aria-label",i.texts.pluginsKindFilterA11y),o(),I(i.kindFilterOptions),o(2),_("closable",!1),o(2),m(i.texts.restartBannerTitle),o(2),u(" \u2014 ",i.texts.restartBannerBody),o(),f(i.loading()?17:i.loadError()?18:i.plugins().length===0?19:20))},dependencies:[K,se,G,U,st,at,dt,lt,de,le,W,q,X,z],styles:["[_nghost-%COMP%]{display:block;height:100%;overflow-y:auto;padding:1.25rem 1.5rem}.settings-plugins[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.75rem}.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__kind-filter[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.375rem}.settings-plugins__kind-chip[_ngcontent-%COMP%]{--chip-accent: var(--kind-color, var(--p-text-color));appearance:none;cursor:pointer;font:inherit;font-size:.75rem;font-weight:500;letter-spacing:.02em;text-transform:lowercase;padding:.25rem .625rem;border-radius:999px;background:color-mix(in oklab,var(--chip-accent) 8%,transparent);border:1px solid color-mix(in oklab,var(--chip-accent) 35%,transparent);color:color-mix(in oklab,var(--chip-accent) 70%,var(--p-text-color));transition:background .12s ease,border-color .12s ease,color .12s ease}.settings-plugins__kind-chip[_ngcontent-%COMP%]:hover{background:color-mix(in oklab,var(--chip-accent) 18%,transparent);border-color:color-mix(in oklab,var(--chip-accent) 55%,transparent)}.settings-plugins__kind-chip[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--p-focus-ring-color, var(--chip-accent));outline-offset:2px}.settings-plugins__kind-chip.is-active[_ngcontent-%COMP%]{background:color-mix(in oklab,var(--chip-accent) 80%,transparent);border-color:var(--chip-accent);color:#f9fafb}.app-dark[_nghost-%COMP%] .settings-plugins__kind-chip[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .settings-plugins__kind-chip[_ngcontent-%COMP%]{background:color-mix(in oklab,var(--chip-accent) 14%,transparent);border-color:color-mix(in oklab,var(--chip-accent) 50%,transparent);color:color-mix(in oklab,var(--chip-accent) 80%,var(--p-text-color))}.app-dark[_nghost-%COMP%] .settings-plugins__kind-chip[_ngcontent-%COMP%]:hover, .app-dark [_nghost-%COMP%] .settings-plugins__kind-chip[_ngcontent-%COMP%]:hover{background:color-mix(in oklab,var(--chip-accent) 26%,transparent);border-color:color-mix(in oklab,var(--chip-accent) 70%,transparent)}.app-dark[_nghost-%COMP%] .settings-plugins__kind-chip.is-active[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .settings-plugins__kind-chip.is-active[_ngcontent-%COMP%]{background:color-mix(in oklab,var(--chip-accent) 70%,transparent);border-color:var(--chip-accent);color:#0b0f17}.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-bundle[_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}.settings-plugins__row-id[_ngcontent-%COMP%]{font-weight:600;font-family:var(--p-monospace-font-family, monospace)}.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:999px;white-space:nowrap}.settings-plugins__row-version[_ngcontent-%COMP%], .settings-plugins__subrow-version[_ngcontent-%COMP%]{font-family:var(--p-monospace-font-family, ui-monospace, monospace)}.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, var(--p-text-color)) 14%,transparent);border:1px solid color-mix(in oklab,var(--kind-color, var(--p-text-color)) 38%,transparent);color:color-mix(in oklab,var(--kind-color, var(--p-text-color)) 70%,#111827)}.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, var(--p-text-color)) 22%,transparent);border-color:color-mix(in oklab,var(--kind-color, var(--p-text-color)) 55%,transparent);color:color-mix(in oklab,var(--kind-color, var(--p-text-color)) 80%,#f9fafb)}.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:999px;white-space:nowrap;background:color-mix(in oklab,var(--p-message-warn-color, #b45309) 14%,transparent);border:1px solid color-mix(in oklab,var(--p-message-warn-color, #b45309) 35%,transparent);color:color-mix(in oklab,var(--p-message-warn-color, #b45309) 70%,#111827)}.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, #f59e0b) 22%,transparent);border-color:color-mix(in oklab,var(--p-message-warn-color, #f59e0b) 55%,transparent);color:color-mix(in oklab,var(--p-message-warn-color, #f59e0b) 85%,#f9fafb)}.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, monospace);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}.settings-plugins__subrow-id[_ngcontent-%COMP%]{font-family:var(--p-monospace-font-family, monospace);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)}"],changeDetection:0})};function yt(t,n){return`${t}/${n}`}function Ct(t){let n=t.target;return!n||typeof n.closest!="function"?!1:n.closest('label, button, input, [role="switch"], p-toggleswitch')!==null}function Cn(t,n){if(St(t,n))return[t];if(t.granularity!=="extension"||!t.extensions)return[];let e=t.extensions.filter(i=>kn(i,n));return e.length===0?[]:[J(Y({},t),{extensions:e})]}function wn(t,n){if(t.granularity!=="extension"||!t.extensions)return[];let e=t.extensions.filter(i=>i.kind.toLowerCase()===n);return e.length===0?[]:[J(Y({},t),{extensions:e})]}function St(t,n){return!!(t.id.toLowerCase().includes(n)||t.description&&t.description.toLowerCase().includes(n))}function kn(t,n){return!!(t.id.toLowerCase().includes(n)||t.description&&t.description.toLowerCase().includes(n))}function we(t){return t==="incompatible-spec"||t==="invalid-manifest"||t==="load-error"||t==="id-collision"}function wt(t){return t instanceof N||t instanceof Error?t.message:String(t)}function Pn(){let t=null;try{t=localStorage.getItem(ke)}catch{return new Set}if(!t)return new Set;let n;try{n=JSON.parse(t)}catch{return new Set}if(!Array.isArray(n))return new Set;let e=new Set;for(let i of n)typeof i=="string"&&i.length>0&&e.add(i);return e}function Sn(t){try{if(t.size===0){localStorage.removeItem(ke);return}localStorage.setItem(ke,JSON.stringify([...t]))}catch{}}function En(){let t=null;try{t=localStorage.getItem(Pe)}catch{return"all"}return t&&Pt.includes(t)?t:"all"}function Mn(t){try{if(t==="all"){localStorage.removeItem(Pe);return}localStorage.setItem(Pe,t)}catch{}}function Tn(t,n){if(t&1&&(l(0,"p-message",3),a(1),s()),t&2){let e=d();_("closable",!1),o(),j(" ",e.texts.project.loadErrorPrefix," ",n," ")}}function In(t,n){if(t&1&&(l(0,"p-message",4),a(1),s()),t&2){let e=d();_("closable",!1),o(),j(" ",e.texts.project.saveErrorPrefix," ",n," ")}}function On(t,n){if(t&1){let e=D();l(0,"li",12)(1,"span",19),a(2),s(),l(3,"p-button",20),C("onClick",function(){let r=E(e).$implicit,c=d();return M(c.onExtraRootRemove(r))}),s()()}if(t&2){let e=n.$implicit,i=d();o(2),m(e),o(),_("label",i.texts.project.removePathLabel)("outlined",!0)("disabled",i.isPending("scan.extraRoots")),h("data-testid","settings-project-extra-roots-remove")}}function Dn(t,n){if(t&1){let e=D();l(0,"li",12)(1,"span",19),a(2),s(),l(3,"p-button",20),C("onClick",function(){let r=E(e).$implicit,c=d();return M(c.onReferencePathRemove(r))}),s()()}if(t&2){let e=n.$implicit,i=d();o(2),m(e),o(),_("label",i.texts.project.removePathLabel)("outlined",!0)("disabled",i.isPending("scan.referencePaths")),h("data-testid","settings-project-reference-paths-remove")}}var he=class t{dataSource=k(V);confirmation=k(xe);visible=O.required();texts=v;loading=x(!1);loadError=x(null);saveError=x(null);preferences=x(null);pending=x(new Set);newExtraRoot=x("");newReferencePath=x("");includeHomeValue=y(()=>this.preferences()?.scan.includeHome??!1);extraRoots=y(()=>this.preferences()?.scan.extraRoots??[]);referencePaths=y(()=>this.preferences()?.scan.referencePaths??[]);constructor(){F(()=>{this.visible()&&this.refresh()})}isPending(n){return this.pending().has(n)}onIncludeHomeToggle(n){this.runPatch("scan.includeHome",{scan:{includeHome:n}})}onExtraRootAdd(){let n=this.newExtraRoot().trim();if(n.length===0)return;let e=[...this.extraRoots(),n];this.runPatch("scan.extraRoots",{scan:{extraRoots:e}}).then(()=>{this.newExtraRoot.set("")})}onExtraRootRemove(n){let e=this.extraRoots().filter(i=>i!==n);this.runPatch("scan.extraRoots",{scan:{extraRoots:[...e]}})}onReferencePathAdd(){let n=this.newReferencePath().trim();if(n.length===0)return;let e=[...this.referencePaths(),n];this.runPatch("scan.referencePaths",{scan:{referencePaths:e}}).then(()=>{this.newReferencePath.set("")})}onReferencePathRemove(n){let e=this.referencePaths().filter(i=>i!==n);this.runPatch("scan.referencePaths",{scan:{referencePaths:[...e]}})}async refresh(){this.loading.set(!0),this.loadError.set(null),this.saveError.set(null);try{let n=await this.dataSource.getProjectPreferences();this.preferences.set(n)}catch(n){this.loadError.set(Se(n)),this.preferences.set(null)}finally{this.loading.set(!1)}}async runPatch(n,e){if(this.pending().has(n))return;let i=new Set(this.pending());i.add(n),this.pending.set(i),this.saveError.set(null);try{let r=await this.dataSource.setProjectPreferences(e);this.preferences.set(r)}catch(r){if(r instanceof N&&r.code==="confirm-required"){let c=r.paths??[];this.confirmDialog(c,async()=>{try{let w=await this.dataSource.setProjectPreferences(J(Y({},e),{confirm:!0}));this.preferences.set(w)}catch(w){this.saveError.set(Se(w))}})}else this.saveError.set(Se(r))}finally{let r=new Set(this.pending());r.delete(n),this.pending.set(r)}}confirmDialog(n,e){this.confirmation.confirm({header:v.project.confirmDialogHeader,message:v.project.confirmDialogIntro+`
124
+ `+n.map(i=>`\u2022 ${i}`).join(`
125
+ `),acceptLabel:v.project.confirmDialogAccept,rejectLabel:v.project.confirmDialogReject,acceptButtonProps:{severity:"primary"},rejectButtonProps:{severity:"secondary"},accept:()=>{e()}})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=S({type:t,selectors:[["sm-settings-project"]],inputs:{visible:[1,"visible"]},features:[oe([xe])],decls:39,vars:23,consts:[["data-testid","settings-project",1,"settings-project"],["id","settings-project-heading",1,"settings-project__title"],[1,"settings-project__intro"],["severity","error","data-testid","settings-project-load-error",3,"closable"],["severity","error","data-testid","settings-project-save-error",3,"closable"],["data-testid","settings-project-include-home-row",1,"settings-project__row"],[1,"settings-project__row-text"],[1,"settings-project__row-label"],[1,"settings-project__row-description"],["data-testid","settings-project-include-home-toggle",3,"ngModelChange","ngModel","disabled"],["data-testid","settings-project-extra-roots-row",1,"settings-project__list-row"],["role","list",1,"settings-project__path-list"],[1,"settings-project__path-item"],[1,"settings-project__add-row"],["type","text","pInputText","","data-testid","settings-project-extra-roots-input",3,"ngModelChange","ngModel","placeholder","disabled"],["severity","primary","size","small","data-testid","settings-project-extra-roots-add",3,"onClick","label","disabled"],["data-testid","settings-project-reference-paths-row",1,"settings-project__list-row"],["type","text","pInputText","","data-testid","settings-project-reference-paths-input",3,"ngModelChange","ngModel","placeholder","disabled"],["severity","primary","size","small","data-testid","settings-project-reference-paths-add",3,"onClick","label","disabled"],[1,"settings-project__path-text"],["severity","secondary","size","small",3,"onClick","label","outlined","disabled"]],template:function(e,i){if(e&1&&(l(0,"section",0)(1,"h2",1),a(2),s(),l(3,"p",2),a(4),s(),b(5,Tn,2,3,"p-message",3),b(6,In,2,3,"p-message",4),l(7,"div",5)(8,"div",6)(9,"div",7),a(10),s(),l(11,"div",8),a(12),s()(),l(13,"p-toggleswitch",9),C("ngModelChange",function(c){return i.onIncludeHomeToggle(c)}),s()(),l(14,"div",10)(15,"div",6)(16,"div",7),a(17),s(),l(18,"div",8),a(19),s()(),l(20,"ul",11),T(21,On,4,5,"li",12,B),s(),l(23,"div",13)(24,"input",14),C("ngModelChange",function(c){return i.newExtraRoot.set(c)}),s(),l(25,"p-button",15),C("onClick",function(){return i.onExtraRootAdd()}),s()()(),l(26,"div",16)(27,"div",6)(28,"div",7),a(29),s(),l(30,"div",8),a(31),s()(),l(32,"ul",11),T(33,Dn,4,5,"li",12,B),s(),l(35,"div",13)(36,"input",17),C("ngModelChange",function(c){return i.newReferencePath.set(c)}),s(),l(37,"p-button",18),C("onClick",function(){return i.onReferencePathAdd()}),s()()(),P(38,"p-confirmdialog"),s()),e&2){let r,c;h("aria-labelledby","settings-project-heading"),o(2),u(" ",i.texts.project.heading," "),o(2),m(i.texts.project.intro),o(),f((r=i.loadError())?5:-1,r),o(),f((c=i.saveError())?6:-1,c),o(4),m(i.texts.project.includeHomeLabel),o(2),u(" ",i.texts.project.includeHomeDescription," "),o(),_("ngModel",i.includeHomeValue())("disabled",i.loading()||i.isPending("scan.includeHome")||i.preferences()===null),o(4),m(i.texts.project.extraRootsLabel),o(2),u(" ",i.texts.project.extraRootsDescription," "),o(2),I(i.extraRoots()),o(3),_("ngModel",i.newExtraRoot())("placeholder",i.texts.project.extraRootsPlaceholder)("disabled",i.isPending("scan.extraRoots")),o(),_("label",i.texts.project.addPathLabel)("disabled",i.isPending("scan.extraRoots")||i.newExtraRoot().trim().length===0),o(4),m(i.texts.project.referencePathsLabel),o(2),u(" ",i.texts.project.referencePathsDescription," "),o(2),I(i.referencePaths()),o(3),_("ngModel",i.newReferencePath())("placeholder",i.texts.project.referencePathsPlaceholder)("disabled",i.isPending("scan.referencePaths")),o(),_("label",i.texts.project.addPathLabel)("disabled",i.isPending("scan.referencePaths")||i.newReferencePath().trim().length===0)}},dependencies:[K,se,G,U,ae,Je,nt,tt,de,le,W,q,X,z],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__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, monospace);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, monospace);font-size:.8rem}"],changeDetection:0})};function Se(t){return t instanceof N||t instanceof Error?t.message:String(t)}var jn=()=>({width:"1024px",height:"720px",maxWidth:"92vw",maxHeight:"90vh"}),Fn=(t,n)=>n.id;function An(t,n){t&1&&(l(0,"span",9),a(1,"soon"),s())}function Nn(t,n){if(t&1){let e=D();l(0,"li")(1,"button",7),C("click",function(){let r=E(e).$implicit,c=d();return M(c.selectSection(r.id))}),l(2,"span",8),a(3),s(),b(4,An,2,0,"span",9),s()()}if(t&2){let e=n.$implicit,i=d();o(),L("is-active",i.activeSection()===e.id)("is-disabled",e.status==="coming-soon"),h("aria-current",i.activeSection()===e.id?"page":null)("data-testid","settings-nav-"+e.id),o(2),m(e.label),o(),f(e.status==="coming-soon"?4:-1)}}function Rn(t,n){if(t&1&&P(0,"sm-settings-plugins",5),t&2){let e=d();_("visible",e.pluginsVisible())}}function Ln(t,n){if(t&1&&P(0,"sm-settings-general",5),t&2){let e=d();_("visible",e.generalVisible())}}function Vn(t,n){if(t&1&&P(0,"sm-settings-project",5),t&2){let e=d();_("visible",e.projectVisible())}}function zn(t,n){if(t&1&&P(0,"sm-settings-about",5),t&2){let e=d();_("visible",e.aboutVisible())}}function Bn(t,n){t&1&&P(0,"sm-settings-changelog")}function $n(t,n){if(t&1&&P(0,"sm-settings-coming-soon",6),t&2){let e=d();_("sectionId",e.activeDescriptor().id)("sectionLabel",e.activeDescriptor().label)}}var Hn=[{id:"general",label:v.sections.general,status:"available"},{id:"project",label:v.sections.project,status:"available"},{id:"plugins",label:v.sections.plugins,status:"available"},{id:"changelog",label:v.sections.changelog,status:"available"},{id:"about",label:v.sections.about,status:"available"}],Et=class t{visible=O.required();visibleChange=He();texts=v;sections=Hn;activeSection=x("plugins");pluginsVisible=y(()=>this.visible()&&this.activeSection()==="plugins");generalVisible=y(()=>this.visible()&&this.activeSection()==="general");projectVisible=y(()=>this.visible()&&this.activeSection()==="project");aboutVisible=y(()=>this.visible()&&this.activeSection()==="about");activeDescriptor=y(()=>this.sections.find(n=>n.id===this.activeSection())??this.sections[0]);onVisibleChange(n){this.visibleChange.emit(n)}selectSection(n){this.activeSection.set(n)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=S({type:t,selectors:[["sm-settings-modal"]],inputs:{visible:[1,"visible"]},outputs:{visibleChange:"visibleChange"},decls:13,vars:13,consts:[["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"],[3,"sectionId","sectionLabel"],["type","button",1,"settings-modal__sidebar-item",3,"click"],[1,"settings-modal__sidebar-label"],[1,"settings-modal__sidebar-badge"]],template:function(e,i){if(e&1&&(l(0,"p-dialog",0),C("visibleChange",function(c){return i.onVisibleChange(c)}),l(1,"div",1)(2,"nav",2)(3,"ul",3),T(4,Nn,5,8,"li",null,Fn),s()(),l(6,"div",4),b(7,Rn,1,1,"sm-settings-plugins",5)(8,Ln,1,1,"sm-settings-general",5)(9,Vn,1,1,"sm-settings-project",5)(10,zn,1,1,"sm-settings-about",5)(11,Bn,1,0,"sm-settings-changelog")(12,$n,1,2,"sm-settings-coming-soon",6),s()()()),e&2){let r;ie(Be(12,jn)),_("visible",i.visible())("modal",!0)("draggable",!1)("resizable",!1)("closable",!0)("closeOnEscape",!0)("dismissableMask",!0)("header",i.texts.modalTitle),o(2),h("aria-label",i.texts.modalTitle),o(2),I(i.sections),o(3),f((r=i.activeSection())==="plugins"?7:r==="general"?8:r==="project"?9:r==="about"?10:r==="changelog"?11:12)}},dependencies:[ae,et,Ze,ce,ge,me,ue,he,pe],styles:["[_nghost-%COMP%]{display:contents}[_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-item.is-disabled[_ngcontent-%COMP%]{color:var(--p-text-muted-color)}.settings-modal__sidebar-item.is-disabled[_ngcontent-%COMP%]:hover{background:var(--p-content-hover-background)}.settings-modal__sidebar-label[_ngcontent-%COMP%]{flex:1;font-size:.9rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-modal__sidebar-badge[_ngcontent-%COMP%]{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.125rem .5rem;border-radius:999px;background:color-mix(in oklab,var(--p-text-color) 14%,transparent);color:var(--p-text-color);border:1px solid color-mix(in oklab,var(--p-text-color) 24%,transparent)}.settings-modal__sidebar-item.is-active[_ngcontent-%COMP%] .settings-modal__sidebar-badge[_ngcontent-%COMP%]{background:color-mix(in oklab,var(--p-highlight-color) 28%,transparent);color:var(--p-highlight-color);border-color:color-mix(in oklab,var(--p-highlight-color) 40%,transparent)}.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})};export{Et as SettingsModal};
@@ -0,0 +1 @@
1
+ import{k as N,l as k}from"./chunk-VLNLJAUB.js";import{$a as ie,Aa as oe,Hb as ce,Ib as pe,J as Q,Ja as u,Ma as p,Na as m,O as Z,Oa as re,Qa as h,Ra as I,S as ee,Sa as _,Sb as i,T as te,Ta as g,Ua as v,Va as P,Vb as me,Wa as s,Wb as y,Xa as c,Ya as F,ba as ne,cb as ae,fb as de,gb as a,ic as ue,na as r,rb as se,sb as w,ub as H,va as f,vb as d,wb as l,xb as le}from"./chunk-W3JLG7BI.js";import{c as J}from"./chunk-Q7L6LLAK.js";var $=class n{registry=ne({});setRegistry(e){e&&this.registry.set(e)}get(e){return this.registry()[e]}all(){return this.registry()}static \u0275fac=function(t){return new(t||n)};static \u0275prov=Q({token:n,factory:n.\u0275fac,providedIn:"root"})};var x={panelHeader:"Plugin contributions",panelCount:n=>`${n} contribution${n===1?"":"s"}`,emptyDefault:"No contributions for this node.",rendererInvalid:"Contribution data failed schema validation.",rendererUnknownSlot:n=>`Unknown slot: ${n}. Update the UI to a newer catalog version.`,overflowBadge:n=>`+${n}`,overflowTooltip:n=>`Hidden: ${n}`};var _e=(n,e)=>e.label;function Ce(n,e){if(n&1&&(s(0,"h5",1),d(1),c()),n&2){let t=a();r(),l(t.label())}}function he(n,e){if(n&1&&(s(0,"p",2),d(1),c()),n&2){let t=a();r(),l(t.emptyText())}}function Ie(n,e){if(n&1&&(s(0,"li",4)(1,"span",5),d(2),c(),s(3,"span",6),F(4,"span",7),c(),s(5,"span",8),d(6),c()()),n&2){let t=e.$implicit,o=a(2);u("title",t.tooltip??""),r(2),l(t.label),r(2),se("width",o.percent(t.value),"%"),r(2),l(t.value)}}function xe(n,e){if(n&1&&(s(0,"ul",3),h(1,Ie,7,5,"li",4,_e),c()),n&2){let t=a();r(),I(t.entries())}}var L=class n{inputs=y.required();typed=i(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{entries:[]}:e});entries=i(()=>this.typed().entries??[]);label=i(()=>this.inputs().label);emptyText=i(()=>this.inputs().emptyText??x.emptyDefault);maxValue=i(()=>this.entries().reduce((t,o)=>o.value>t?o.value:t,0));percent(e){let t=this.maxValue();return t===0?0:Math.round(e/t*100)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=f({type:n,selectors:[["sm-node-breakdown"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-breakdown"],[1,"vc-breakdown__header"],[1,"vc-breakdown__empty"],[1,"vc-breakdown__rows"],[1,"vc-breakdown__row"],[1,"vc-breakdown__label"],[1,"vc-breakdown__bar-track"],["aria-hidden","true",1,"vc-breakdown__bar"],[1,"vc-breakdown__value"]],template:function(t,o){t&1&&(s(0,"section",0),p(1,Ce,2,1,"h5",1),p(2,he,2,1,"p",2)(3,xe,3,0,"ul",3),c()),t&2&&(u("data-testid","renderer-node-breakdown"),r(),m(o.label()?1:-1),r(),m(o.entries().length===0?2:3))},styles:[".vc-breakdown__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-700);margin:0 0 .5rem}.vc-breakdown__rows[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.vc-breakdown__row[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(4rem,.4fr) 1fr 3rem;align-items:center;gap:.5rem;font-size:.85rem}.vc-breakdown__label[_ngcontent-%COMP%]{color:var(--p-surface-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vc-breakdown__bar-track[_ngcontent-%COMP%]{background:var(--p-surface-100);border-radius:.25rem;height:.625rem;overflow:hidden}.vc-breakdown__bar[_ngcontent-%COMP%]{display:block;height:100%;background:var(--p-primary-500)}.vc-breakdown__value[_ngcontent-%COMP%]{text-align:right;color:var(--p-surface-600)}.vc-breakdown__empty[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.85rem;margin:0}"],changeDetection:0})};function Ne(n,e){if(n&1&&(s(0,"span",1),d(1),c()),n&2){let t=a(2);H(t.hostClass()),r(),l(t.icon())}}function ke(n,e){if(n&1&&F(0,"i",1),n&2){let t=a(2);H(t.hostClass()+" pi pi-"+t.icon())}}function Te(n,e){if(n&1&&p(0,Ne,2,3,"span",0)(1,ke,1,2,"i",0),n&2){let t=a();m(t.isEmoji()?0:1)}}var E=class n{icon=y(void 0);hostClass=y("");isEmoji=i(()=>{let e=this.icon();return e?new RegExp("\\p{Extended_Pictographic}","u").test(e):!1});static \u0275fac=function(t){return new(t||n)};static \u0275cmp=f({type:n,selectors:[["sm-icon-glyph"]],inputs:{icon:[1,"icon"],hostClass:[1,"hostClass"]},decls:1,vars:1,consts:[["aria-hidden","true",3,"class"],["aria-hidden","true"]],template:function(t,o){t&1&&p(0,Te,2,1),t&2&&m(o.icon()?0:-1)},encapsulation:2,changeDetection:0})};var O=class n{inputs=y.required();typed=i(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{value:0}:e});value=i(()=>this.typed().value);icon=i(()=>this.inputs().icon);severity=i(()=>this.typed().severity);resolvedTooltip=i(()=>this.typed().tooltip??this.inputs().tooltip??"");ariaLabel=i(()=>this.inputs().label??"");static \u0275fac=function(t){return new(t||n)};static \u0275cmp=f({type:n,selectors:[["sm-node-counter"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:13,consts:[[1,"vc-counter",3,"pTooltip"],["hostClass","vc-counter__icon",3,"icon"],[1,"vc-counter__value"]],template:function(t,o){t&1&&(g(0,"span",0),P(1,"sm-icon-glyph",1),g(2,"span",2),d(3),v()()),t&2&&(w("vc-counter--info",o.severity()==="info")("vc-counter--warn",o.severity()==="warn")("vc-counter--success",o.severity()==="success")("vc-counter--danger",o.severity()==="danger"),_("pTooltip",o.resolvedTooltip()),u("data-testid","renderer-node-counter"),r(),_("icon",o.icon()),r(),u("aria-label",o.ariaLabel()),r(),l(o.value()))},dependencies:[k,N,E],styles:[".vc-counter[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.3rem;line-height:1}.vc-counter__icon[_ngcontent-%COMP%]{font-size:.6rem;line-height:1;display:block}.vc-counter__value[_ngcontent-%COMP%]{font-weight:600;color:var(--p-text-color);line-height:1;display:block}.vc-counter--info[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-info)}.vc-counter--warn[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-warn)}.vc-counter--success[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-success)}.vc-counter--danger[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-error)}.vc-counter--info[_ngcontent-%COMP%]{background:var(--sm-severity-info-bg);color:var(--sm-severity-info);padding:.1rem .4rem;border-radius:3px}.vc-counter--warn[_ngcontent-%COMP%]{background:var(--sm-severity-warn-bg);color:var(--sm-severity-warn);padding:.1rem .4rem;border-radius:3px}.vc-counter--success[_ngcontent-%COMP%]{background:var(--sm-severity-success-bg);color:var(--sm-severity-success);padding:.1rem .4rem;border-radius:3px}.vc-counter--danger[_ngcontent-%COMP%]{background:var(--sm-severity-error-bg);color:var(--sm-severity-error);padding:.1rem .4rem;border-radius:3px}"],changeDetection:0})};var Me=(n,e)=>e.key;function we(n,e){if(n&1&&(g(0,"h5",1),d(1),v()),n&2){let t=a();r(),l(t.label())}}function Ee(n,e){if(n&1&&(g(0,"p",2),d(1),v()),n&2){let t=a();r(),l(t.emptyText())}}function De(n,e){if(n&1&&(g(0,"dt",4),d(1),v(),g(2,"dd"),d(3),v()),n&2){let t=e.$implicit,o=a(2);_("pTooltip",t.tooltip??""),r(),l(t.key),r(2),l(o.formatValue(t.value))}}function Se(n,e){if(n&1&&(g(0,"dl",3),h(1,De,4,3,null,null,Me),v()),n&2){let t=a();r(),I(t.entries())}}var B=class n{inputs=y.required();typed=i(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{entries:[]}:e});entries=i(()=>this.typed().entries??[]);label=i(()=>this.inputs().label);emptyText=i(()=>this.inputs().emptyText??x.emptyDefault);formatValue(e){return e==null?"\u2014":typeof e=="boolean"?e?"true":"false":String(e)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=f({type:n,selectors:[["sm-node-key-values"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-kv"],[1,"vc-kv__header"],[1,"vc-kv__empty"],[1,"vc-kv__list"],[3,"pTooltip"]],template:function(t,o){t&1&&(g(0,"section",0),p(1,we,2,1,"h5",1),p(2,Ee,2,1,"p",2)(3,Se,3,0,"dl",3),v()),t&2&&(u("data-testid","renderer-node-key-values"),r(),m(o.label()?1:-1),r(),m(o.entries().length===0?2:3))},dependencies:[k,N],styles:[".vc-kv__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-700);margin:0 0 .5rem}.vc-kv__list[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(6rem,max-content) 1fr;gap:.25rem .75rem;margin:0;font-size:.85rem}.vc-kv__list[_ngcontent-%COMP%] dt[_ngcontent-%COMP%]{color:var(--p-surface-600);font-weight:500}.vc-kv__list[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{color:var(--p-surface-800);margin:0;word-break:break-word}.vc-kv__empty[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.85rem;margin:0}"],changeDetection:0})};var Pe=(n,e)=>e.path;function Oe(n,e){if(n&1&&(s(0,"h5",1),d(1),c()),n&2){let t=a();r(),l(t.label())}}function Re(n,e){if(n&1&&(s(0,"p",2),d(1),c()),n&2){let t=a();r(),l(t.emptyText())}}function We(n,e){if(n&1&&(s(0,"span",5),d(1),c()),n&2){let t=a().$implicit;r(),l(t.kind)}}function Fe(n,e){if(n&1){let t=ae();s(0,"li")(1,"button",4),de("click",function(){let b=ee(t).$implicit,C=a(2);return te(C.openPath.emit(b.path))}),p(2,We,2,1,"span",5),s(3,"span",6),d(4),c()()()}if(n&2){let t=e.$implicit;r(2),m(t.kind?2:-1),r(2),l(t.label??t.path)}}function $e(n,e){if(n&1&&(s(0,"ul",3),h(1,Fe,5,2,"li",null,Pe),c()),n&2){let t=a();r(),I(t.entries())}}var V=class n{inputs=y.required();openPath=me();typed=i(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{entries:[]}:e});entries=i(()=>this.typed().entries??[]);label=i(()=>this.inputs().label);emptyText=i(()=>this.inputs().emptyText??x.emptyDefault);static \u0275fac=function(t){return new(t||n)};static \u0275cmp=f({type:n,selectors:[["sm-node-link-list"]],inputs:{inputs:[1,"inputs"]},outputs:{openPath:"openPath"},decls:4,vars:3,consts:[[1,"vc-links"],[1,"vc-links__header"],[1,"vc-links__empty"],[1,"vc-links__list"],["type","button",1,"vc-links__btn",3,"click"],[1,"vc-links__kind"],[1,"vc-links__label"]],template:function(t,o){t&1&&(s(0,"section",0),p(1,Oe,2,1,"h5",1),p(2,Re,2,1,"p",2)(3,$e,3,0,"ul",3),c()),t&2&&(u("data-testid","renderer-node-link-list"),r(),m(o.label()?1:-1),r(),m(o.entries().length===0?2:3))},styles:[".vc-links__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-700);margin:0 0 .5rem}.vc-links__list[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.125rem;font-size:.85rem}.vc-links__btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:0;padding:.25rem .5rem;border-radius:.25rem;color:var(--p-primary-600);cursor:pointer;text-align:left;width:100%}.vc-links__btn[_ngcontent-%COMP%]:hover{background:var(--p-surface-100)}.vc-links__kind[_ngcontent-%COMP%]{color:var(--p-surface-500);font-family:var(--p-font-family-mono, monospace);font-size:.75rem}.vc-links__label[_ngcontent-%COMP%]{word-break:break-all}.vc-links__empty[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.85rem;margin:0}"],changeDetection:0})};var ye=(n,e)=>e.key;function Le(n,e){if(n&1&&(s(0,"h5",1),d(1),c()),n&2){let t=a();r(),l(t.label())}}function Be(n,e){if(n&1&&(s(0,"p",2),d(1),c()),n&2){let t=a();r(),l(t.emptyText())}}function Ve(n,e){if(n&1&&(s(0,"th"),d(1),c()),n&2){let t=e.$implicit;r(),l(t.label)}}function ze(n,e){if(n&1&&(s(0,"td"),d(1),c()),n&2){let t=e.$implicit,o=a().$implicit,b=a(2);r(),l(b.formatCell(o[t.key]))}}function Ae(n,e){if(n&1&&(s(0,"tr"),h(1,ze,2,1,"td",null,ye),c()),n&2){let t=a(2);r(),I(t.columns())}}function je(n,e){if(n&1&&(s(0,"table",3)(1,"thead")(2,"tr"),h(3,Ve,2,1,"th",null,ye),c()(),s(5,"tbody"),h(6,Ae,3,0,"tr",null,re),c()()),n&2){let t=a();r(3),I(t.columns()),r(3),I(t.rows())}}var z=class n{inputs=y.required();typed=i(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{columns:[],rows:[]}:e});columns=i(()=>this.typed().columns??[]);rows=i(()=>this.typed().rows??[]);label=i(()=>this.inputs().label);emptyText=i(()=>this.inputs().emptyText??x.emptyDefault);formatCell(e){return e==null?"":typeof e=="boolean"?e?"\u2713":"\xB7":String(e)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=f({type:n,selectors:[["sm-node-records"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-records"],[1,"vc-records__header"],[1,"vc-records__empty"],[1,"vc-records__table"]],template:function(t,o){t&1&&(s(0,"section",0),p(1,Le,2,1,"h5",1),p(2,Be,2,1,"p",2)(3,je,8,0,"table",3),c()),t&2&&(u("data-testid","renderer-node-records"),r(),m(o.label()?1:-1),r(),m(o.rows().length===0?2:3))},styles:[".vc-records__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-700);margin:0 0 .5rem}.vc-records__table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;font-size:.85rem}.vc-records__table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{text-align:left;padding:.25rem .5rem;border-bottom:1px solid var(--p-surface-200);color:var(--p-surface-700);font-weight:600}.vc-records__table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:.25rem .5rem;border-bottom:1px solid var(--p-surface-100);color:var(--p-surface-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:16rem}.vc-records__empty[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.85rem;margin:0}"],changeDetection:0})};function qe(n,e){if(n&1&&(s(0,"h5",1),d(1),c()),n&2){let t=a();r(),l(t.label())}}function Ke(n,e){if(n&1&&(s(0,"p",2),d(1),c()),n&2){let t=a();r(),l(t.emptyText())}}function Ge(n,e){if(n&1&&(s(0,"pre",3),d(1),c()),n&2){let t=a();r(),l(t.markdown())}}var A=class n{inputs=y.required();typed=i(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{markdown:""}:e});markdown=i(()=>this.typed().markdown??"");label=i(()=>this.inputs().label);emptyText=i(()=>this.inputs().emptyText??x.emptyDefault);static \u0275fac=function(t){return new(t||n)};static \u0275cmp=f({type:n,selectors:[["sm-node-markdown"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-markdown"],[1,"vc-markdown__header"],[1,"vc-markdown__empty"],[1,"vc-markdown__body"]],template:function(t,o){t&1&&(s(0,"section",0),p(1,qe,2,1,"h5",1),p(2,Ke,2,1,"p",2)(3,Ge,2,1,"pre",3),c()),t&2&&(u("data-testid","renderer-node-markdown"),r(),m(o.label()?1:-1),r(),m(o.markdown()?3:2))},styles:[".vc-markdown__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-700);margin:0 0 .5rem}.vc-markdown__body[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-800);background:var(--p-surface-50);padding:.5rem;border-radius:.25rem;white-space:pre-wrap;word-break:break-word;margin:0;max-height:12rem;overflow:auto}.vc-markdown__empty[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.85rem;margin:0}"],changeDetection:0})};function Ue(n,e){if(n&1&&(g(0,"span",1),d(1),v()),n&2){let t=a();r(),l(t.icon())}}var j=class n{inputs=y.required();typed=i(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{label:""}:e});label=i(()=>this.typed().label||"");icon=i(()=>this.inputs().icon);severity=i(()=>this.typed().severity);resolvedTooltip=i(()=>this.typed().tooltip??this.inputs().tooltip??"");static \u0275fac=function(t){return new(t||n)};static \u0275cmp=f({type:n,selectors:[["sm-node-tag"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:12,consts:[[1,"vc-tag",3,"pTooltip"],["aria-hidden","true",1,"vc-tag__icon"],[1,"vc-tag__label"]],template:function(t,o){t&1&&(g(0,"span",0),p(1,Ue,2,1,"span",1),g(2,"span",2),d(3),v()()),t&2&&(w("vc-tag--info",o.severity()==="info")("vc-tag--warn",o.severity()==="warn")("vc-tag--success",o.severity()==="success")("vc-tag--danger",o.severity()==="danger"),_("pTooltip",o.resolvedTooltip()),u("data-testid","renderer-node-tag"),r(),m(o.icon()?1:-1),r(2),l(o.label()))},dependencies:[k,N],styles:[".vc-tag[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.3rem;line-height:1}.vc-tag__icon[_ngcontent-%COMP%]{font-size:.85em;line-height:1;display:block}.vc-tag__label[_ngcontent-%COMP%]{font-weight:500;line-height:1;display:block}.vc-tag--info[_ngcontent-%COMP%]{background:var(--sm-severity-info-bg);color:var(--sm-severity-info);padding:.1rem .4rem;border-radius:3px}.vc-tag--warn[_ngcontent-%COMP%]{background:var(--sm-severity-warn-bg);color:var(--sm-severity-warn);padding:.1rem .4rem;border-radius:3px}.vc-tag--success[_ngcontent-%COMP%]{background:var(--sm-severity-success-bg);color:var(--sm-severity-success);padding:.1rem .4rem;border-radius:3px}.vc-tag--danger[_ngcontent-%COMP%]{background:var(--sm-severity-error-bg);color:var(--sm-severity-error);padding:.1rem .4rem;border-radius:3px}"],changeDetection:0})};var He=()=>[],ge=(n,e)=>e.label;function Xe(n,e){if(n&1&&(s(0,"h5",1),d(1),c()),n&2){let t=a();r(),l(t.label())}}function Ye(n,e){if(n&1&&(s(0,"p",2),d(1),c()),n&2){let t=a();r(),l(t.emptyText())}}function Je(n,e){if(n&1&&(s(0,"span",5),d(1),c()),n&2){let t=a().$implicit;r(),l(t.marker)}}function Qe(n,e){if(n&1&&(s(0,"span",5),d(1),c()),n&2){let t=a().$implicit;r(),l(t.marker)}}function Ze(n,e){if(n&1&&(s(0,"li",4),p(1,Qe,2,1,"span",5),s(2,"span",6),d(3),c()()),n&2){let t=e.$implicit;u("title",t.tooltip??""),r(),m(t.marker?1:-1),r(2),l(t.label)}}function et(n,e){if(n&1&&(s(0,"ul",7),h(1,Ze,4,3,"li",4,ge),c()),n&2){let t=a().$implicit;r(),I(t.children)}}function tt(n,e){if(n&1&&(s(0,"li",4),p(1,Je,2,1,"span",5),s(2,"span",6),d(3),c(),p(4,et,3,0,"ul",7),c()),n&2){let t=e.$implicit;u("title",t.tooltip??""),r(),m(t.marker?1:-1),r(2),l(t.label),r(),m(t.children&&t.children.length>0?4:-1)}}function nt(n,e){if(n&1&&(s(0,"ul",3),h(1,tt,5,4,"li",4,ge),c()),n&2){let t=a();r(),I(t.root().children??ce(0,He))}}var q=class n{inputs=y.required();root=i(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{label:""}:e});rootIsEmpty=i(()=>{let e=this.root();return!e.children||e.children.length===0});label=i(()=>this.inputs().label);emptyText=i(()=>this.inputs().emptyText??x.emptyDefault);static \u0275fac=function(t){return new(t||n)};static \u0275cmp=f({type:n,selectors:[["sm-node-tree"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-tree"],[1,"vc-tree__header"],[1,"vc-tree__empty"],["role","tree",1,"vc-tree__list"],["role","treeitem"],["aria-hidden","true",1,"vc-tree__marker"],[1,"vc-tree__label"],["role","group",1,"vc-tree__list"]],template:function(t,o){t&1&&(s(0,"section",0),p(1,Xe,2,1,"h5",1),p(2,Ye,2,1,"p",2)(3,nt,3,1,"ul",3),c()),t&2&&(u("data-testid","renderer-node-tree"),r(),m(o.label()?1:-1),r(),m(o.rootIsEmpty()?2:3))},styles:[".vc-tree__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-surface-700);margin:0 0 .5rem}.vc-tree__list[_ngcontent-%COMP%]{list-style:none;padding-left:1rem;margin:0;font-size:.85rem}.vc-tree__list[_ngcontent-%COMP%] > li[_ngcontent-%COMP%]{padding:.125rem 0}.vc-tree__marker[_ngcontent-%COMP%]{margin-right:.25rem;opacity:.7}.vc-tree__label[_ngcontent-%COMP%]{color:var(--p-surface-800)}.vc-tree__empty[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.85rem;margin:0}"],changeDetection:0})};function ot(n,e){if(n&1&&(g(0,"span",2),d(1),v()),n&2){let t=a();r(),l(t.formattedCount())}}var K=class n{inputs=y.required();typed=i(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{}:e});icon=i(()=>this.typed().icon??this.inputs().icon);severity=i(()=>this.typed().severity);count=i(()=>this.typed().count??null);resolvedTooltip=i(()=>this.typed().tooltip??this.inputs().tooltip??"");formattedCount=i(()=>{let e=this.count();return e===null?"":e>=99?"99+":String(e)});static \u0275fac=function(t){return new(t||n)};static \u0275cmp=f({type:n,selectors:[["sm-node-alert"]],inputs:{inputs:[1,"inputs"]},decls:3,vars:12,consts:[[1,"vc-alert",3,"pTooltip"],["hostClass","vc-alert__icon",3,"icon"],[1,"vc-alert__count"]],template:function(t,o){t&1&&(g(0,"span",0),P(1,"sm-icon-glyph",1),p(2,ot,2,1,"span",2),v()),t&2&&(w("vc-alert--info",o.severity()==="info")("vc-alert--warn",o.severity()==="warn")("vc-alert--success",o.severity()==="success")("vc-alert--danger",o.severity()==="danger"),_("pTooltip",o.resolvedTooltip()),u("data-testid","renderer-node-alert"),r(),_("icon",o.icon()),r(),m(o.count()!==null?2:-1))},dependencies:[k,N,E],styles:[".vc-alert[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;gap:.125rem;min-width:1rem;min-height:1rem;padding:.05rem .25rem;border-radius:.5rem;font-size:.7rem;background:var(--p-surface-200);color:var(--p-surface-800)}.vc-alert--info[_ngcontent-%COMP%]{background:var(--p-blue-200);color:var(--p-blue-800)}.vc-alert--warn[_ngcontent-%COMP%]{background:var(--p-yellow-200);color:var(--p-yellow-900)}.vc-alert--success[_ngcontent-%COMP%]{background:var(--p-green-200);color:var(--p-green-800)}.vc-alert--danger[_ngcontent-%COMP%]{background:var(--p-red-200);color:var(--p-red-800)}"],changeDetection:0})};var G=class n{inputs=y.required();typed=i(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{}:e});icon=i(()=>this.typed().icon??this.inputs().icon);severity=i(()=>this.typed().severity);resolvedTooltip=i(()=>this.typed().tooltip??this.inputs().tooltip??"");ariaLabel=i(()=>this.inputs().label??"");static \u0275fac=function(t){return new(t||n)};static \u0275cmp=f({type:n,selectors:[["sm-node-icon"]],inputs:{inputs:[1,"inputs"]},decls:2,vars:12,consts:[[1,"vc-icon",3,"pTooltip"],["hostClass","vc-icon__glyph",3,"icon"]],template:function(t,o){t&1&&(g(0,"span",0),P(1,"sm-icon-glyph",1),v()),t&2&&(w("vc-icon--info",o.severity()==="info")("vc-icon--warn",o.severity()==="warn")("vc-icon--success",o.severity()==="success")("vc-icon--danger",o.severity()==="danger"),_("pTooltip",o.resolvedTooltip()),u("aria-label",o.ariaLabel())("data-testid","renderer-node-icon"),r(),_("icon",o.icon()))},dependencies:[k,N,E],styles:[".vc-icon[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;line-height:1;width:22px;height:22px;border-radius:4px}.vc-icon__glyph[_ngcontent-%COMP%]{font-size:.7rem;line-height:1;display:block}.vc-icon--info[_ngcontent-%COMP%]{background:var(--sm-severity-info-bg);color:var(--sm-severity-info)}.vc-icon--warn[_ngcontent-%COMP%]{background:var(--sm-severity-warn-bg);color:var(--sm-severity-warn)}.vc-icon--success[_ngcontent-%COMP%]{background:var(--sm-severity-success-bg);color:var(--sm-severity-success)}.vc-icon--danger[_ngcontent-%COMP%]{background:var(--sm-severity-error-bg);color:var(--sm-severity-error)}"],changeDetection:0})};function rt(n,e){if(n&1&&(g(0,"span",3),d(1),v()),n&2){let t=a();r(),l(t.label())}}var U=class n{inputs=y.required();typed=i(()=>{let e=this.inputs().payload;return typeof e!="object"||e===null?{value:""}:e});value=i(()=>String(this.typed().value??""));label=i(()=>this.typed().label??this.inputs().label);icon=i(()=>this.inputs().icon);severity=i(()=>this.typed().severity);resolvedTooltip=i(()=>this.typed().tooltip??this.inputs().tooltip??"");static \u0275fac=function(t){return new(t||n)};static \u0275cmp=f({type:n,selectors:[["sm-scope-stat"]],inputs:{inputs:[1,"inputs"]},decls:5,vars:13,consts:[[1,"vc-stat",3,"pTooltip"],["hostClass","vc-stat__icon",3,"icon"],[1,"vc-stat__value"],[1,"vc-stat__label"]],template:function(t,o){t&1&&(g(0,"span",0),P(1,"sm-icon-glyph",1),g(2,"span",2),d(3),v(),p(4,rt,2,1,"span",3),v()),t&2&&(w("vc-stat--info",o.severity()==="info")("vc-stat--warn",o.severity()==="warn")("vc-stat--success",o.severity()==="success")("vc-stat--danger",o.severity()==="danger"),_("pTooltip",o.resolvedTooltip()),u("data-testid","renderer-scope-stat"),r(),_("icon",o.icon()),r(2),l(o.value()),r(),m(o.label()?4:-1))},dependencies:[k,N,E],styles:[".vc-stat[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;border-radius:.75rem;font-size:.85rem;background:var(--p-surface-100);color:var(--p-surface-800)}.vc-stat__label[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.8rem}.vc-stat--info[_ngcontent-%COMP%]{background:var(--p-blue-100);color:var(--p-blue-700)}.vc-stat--warn[_ngcontent-%COMP%]{background:var(--p-yellow-100);color:var(--p-yellow-800)}.vc-stat--success[_ngcontent-%COMP%]{background:var(--p-green-100);color:var(--p-green-700)}.vc-stat--danger[_ngcontent-%COMP%]{background:var(--p-red-100);color:var(--p-red-700)}"],changeDetection:0})};var X={"card.title.right":G,"card.subtitle.left":O,"card.footer.left.counter":O,"card.footer.right":O,"graph.node.alert":K,"inspector.header.badge.counter":O,"inspector.header.badge.tag":j,"inspector.body.panel.breakdown":L,"inspector.body.panel.records":z,"inspector.body.panel.tree":q,"inspector.body.panel.key-values":B,"inspector.body.panel.link-list":V,"inspector.body.panel.markdown":A,"topbar.actions.indicator":U};function fe(n){return n in X}var W={"topbar.actions.indicator":{id:"topbar.actions.indicator",cardinality:"multi",maxItems:3,order:"alphabetical",strategy:"append"},"inspector.header.badge.counter":{id:"inspector.header.badge.counter",cardinality:"multi",maxItems:4,order:"alphabetical",strategy:"append"},"inspector.header.badge.tag":{id:"inspector.header.badge.tag",cardinality:"multi",maxItems:4,order:"alphabetical",strategy:"append"},"inspector.body.panel.breakdown":{id:"inspector.body.panel.breakdown",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.records":{id:"inspector.body.panel.records",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.tree":{id:"inspector.body.panel.tree",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.key-values":{id:"inspector.body.panel.key-values",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.link-list":{id:"inspector.body.panel.link-list",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.markdown":{id:"inspector.body.panel.markdown",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"card.footer.left.counter":{id:"card.footer.left.counter",cardinality:"multi",maxItems:5,order:"priority",strategy:"append",respectSeverity:!0},"card.footer.right":{id:"card.footer.right",cardinality:"multi",maxItems:5,order:"priority",strategy:"append",respectSeverity:!0},"card.subtitle.left":{id:"card.subtitle.left",cardinality:"multi",maxItems:3,order:"priority",strategy:"append",respectSeverity:!0},"card.title.right":{id:"card.title.right",cardinality:"multi",maxItems:2,order:"priority",strategy:"append",respectSeverity:!0},"graph.node.alert":{id:"graph.node.alert",cardinality:"multi",maxItems:1,order:"alphabetical",strategy:"append"}};var it=n=>({inputs:n}),at=(n,e)=>e.qualifiedId;function dt(n,e){n&1&&ie(0)}function st(n,e){if(n&1&&(g(0,"span",1),oe(1,dt,1,0,"ng-container",3),v()),n&2){let t=e.$implicit,o=a(2);u("data-testid","contribution-"+t.qualifiedId.replaceAll("/","-")),r(),_("ngComponentOutlet",o.rendererFor(t.slot))("ngComponentOutletInputs",pe(3,it,t.rendererInputs))}}function lt(n,e){if(n&1&&(g(0,"span",2),d(1),v()),n&2){let t=a(2);_("pTooltip",t.overflowTooltip()),r(),le(" ",t.overflowBadge()," ")}}function ct(n,e){if(n&1&&(g(0,"span",0),h(1,st,2,5,"span",1,at),p(3,lt,2,2,"span",2),v()),n&2){let t=a();u("data-testid","view-contributions-host-"+t.testidSuffix()),r(),I(t.visible()),r(2),m(t.overflowCount()>0?3:-1)}}var ve=class n{slot=y.required();node=y(null);testidSuffix=i(()=>this.slot().replaceAll(".","-"));registry=Z($);dispatched=i(()=>{let e=this.node();if(!e)return[];let t=e.contributions??[];if(t.length===0)return[];let o=this.slot(),b=t.filter(C=>C.slot===o).filter(C=>fe(C.slot));return this.sortBySlotOrder(b,o).map(C=>({qualifiedId:`${C.pluginId}/${C.extensionId}/${C.contributionId}`,slot:C.slot,rendererInputs:this.buildInputs(C,o)}))});visible=i(()=>{let e=this.dispatched(),t=W[this.slot()].maxItems;return e.slice(0,t)});overflowCount=i(()=>{let e=this.dispatched(),t=W[this.slot()].maxItems;return Math.max(0,e.length-t)});overflowBadge=i(()=>x.overflowBadge(this.overflowCount()));overflowTooltip=i(()=>{let e=this.dispatched(),t=W[this.slot()].maxItems,o=e.slice(t).map(b=>b.qualifiedId).join(", ");return x.overflowTooltip(o)});rendererFor(e){return X[e]}buildInputs(e,t){let o=`${e.pluginId}/${e.extensionId}/${e.contributionId}`,b=this.registry.get(o),C=W[t].respectSeverity!==!1,D=e.payload;if(!C&&typeof D=="object"&&D!==null&&"severity"in D){let Y=D,{severity:mt}=Y;D=J(Y,["severity"])}let S={pluginId:e.pluginId,extensionId:e.extensionId,contributionId:e.contributionId,payload:D};return b?.label&&(S.label=b.label),b?.tooltip&&(S.tooltip=b.tooltip),b?.icon&&(S.icon=b.icon),b?.emptyText&&(S.emptyText=b.emptyText),S}sortBySlotOrder(e,t){let o=W[t].order;return o==="fifo"?e.slice():o==="priority"?e.slice().sort((b,C)=>{let D=this.priorityFor(b),S=this.priorityFor(C);return D!==S?D-S:be(b,C)}):e.slice().sort(be)}priorityFor(e){let t=`${e.pluginId}/${e.extensionId}/${e.contributionId}`;return this.registry.get(t)?.priority??100}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=f({type:n,selectors:[["sm-view-contributions-host"]],inputs:{slot:[1,"slot"],node:[1,"node"]},decls:1,vars:1,consts:[[1,"vch"],[1,"vch__slot"],["data-testid","view-contributions-host-overflow",1,"vch__overflow",3,"pTooltip"],[4,"ngComponentOutlet","ngComponentOutletInputs"]],template:function(t,o){t&1&&p(0,ct,4,2,"span",0),t&2&&m(o.visible().length>0||o.overflowCount()>0?0:-1)},dependencies:[ue,k,N],styles:[".vch[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem;flex-wrap:wrap}.vch__slot[_ngcontent-%COMP%]{display:inline-flex}.vch__overflow[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:.75rem;background:var(--p-surface-100);color:var(--p-surface-600);font-size:.8rem;cursor:default}"],changeDetection:0})};function be(n,e){let t=`${n.pluginId}/${n.extensionId}/${n.contributionId}`,o=`${e.pluginId}/${e.extensionId}/${e.contributionId}`;return t<o?-1:t>o?1:0}function pt(n){if(typeof n!="object"||n===null)return!1;let e=n;if(typeof e.type!="string"||e.type.length===0)return!1;let t=e.timestamp;return!(typeof t!="number"&&typeof t!="string"||!("data"in e))}function Zn(n){if(!pt(n)||n.type!=="sidecar.bumped")return!1;let e=n.data;if(typeof e!="object"||e===null||typeof e.nodePath!="string"||e.nodePath.length===0)return!1;let t=e.version;return!(t!==null&&typeof t!="number"||e.status!=="fresh")}export{$ as a,ve as b,pt as c,Zn as d};