@skill-map/cli 0.20.1 → 0.22.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.
- package/dist/cli/tutorial/sm-tutorial.md +93 -14
- package/dist/cli.js +7660 -6354
- package/dist/cli.js.map +1 -1
- package/dist/index.js +1244 -1065
- package/dist/index.js.map +1 -1
- package/dist/kernel/index.d.ts +300 -194
- package/dist/kernel/index.js +1244 -1065
- package/dist/kernel/index.js.map +1 -1
- package/dist/migrations/001_initial.sql +13 -0
- package/dist/ui/chunk-25AWRVIC.js +965 -0
- package/dist/ui/chunk-GETTEQ3S.js +123 -0
- package/dist/ui/{chunk-4NLC7QD2.js → chunk-GXRWH2VL.js} +1 -1
- package/dist/ui/chunk-HC6PNQMW.js +251 -0
- package/dist/ui/chunk-HJHWJTFH.js +1 -0
- package/dist/ui/chunk-MF2M6GYF.js +1 -0
- package/dist/ui/{chunk-EZZF5RL5.js → chunk-MPMBTIUR.js} +2 -2
- package/dist/ui/{chunk-6GUHSAP5.js → chunk-OPPQMCMQ.js} +1 -1
- package/dist/ui/chunk-V3SZQETX.js +61 -0
- package/dist/ui/{chunk-E4ALROJS.js → chunk-VVOEPDQD.js} +1 -1
- package/dist/ui/{chunk-6BZZQV42.js → chunk-W2EFGI3J.js} +1 -1
- package/dist/ui/index.html +2 -10
- package/dist/ui/main-Q2WC254P.js +2 -0
- package/dist/ui/media/fa-brands-400-AHOAZHCU.woff2 +0 -0
- package/dist/ui/media/fa-regular-400-VRZYIBIZ.woff2 +0 -0
- package/dist/ui/media/fa-solid-900-MDEYK55F.woff2 +0 -0
- package/dist/ui/media/fa-v4compatibility-ETEVP6IB.woff2 +0 -0
- package/dist/ui/styles-M2FETVAG.css +1 -0
- package/migrations/001_initial.sql +13 -0
- package/package.json +6 -5
- package/dist/ui/chunk-FWX4RRDF.js +0 -125
- package/dist/ui/chunk-GGMXMGRJ.js +0 -1
- package/dist/ui/chunk-K5PULFK7.js +0 -1
- package/dist/ui/chunk-OJ6W6OIB.js +0 -61
- package/dist/ui/chunk-PTCD42GB.js +0 -247
- package/dist/ui/chunk-ZSRIBCAW.js +0 -965
- package/dist/ui/main-5FJWWH5I.js +0 -1
- package/dist/ui/styles-VJ5Q6D2X.css +0 -1
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import{c as v,d as ct,e as gt}from"./chunk-GGMXMGRJ.js";import{a as Ze,b as et,c as tt,d as nt,e as rt}from"./chunk-4NLC7QD2.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-E4ALROJS.js";import{e as it,f as se,h as G,i as U,j as K,l as ot}from"./chunk-6GUHSAP5.js";import{$a as Le,$c as Je,Aa as Ne,Gb as oe,Gc as qe,Hb as Be,Hc as re,I as Ee,Ib as $e,J as Me,Ja as h,Jc as We,K as Te,M as Ie,Ma as b,Mc as Qe,Na as f,O as k,Oa as Re,Pa as B,Qa as T,Ra as I,S as E,Sa as _,Sb as y,Sc as Xe,T as M,Ta as l,Tc as ee,Ua as s,Uc as Ye,Va as P,Vb as He,Wa as g,Wb as O,Xa as p,Ya as R,Z as Oe,ad as ae,ba as x,bc as ve,ca as F,cb as D,cc as Ge,db as A,ea as be,eb as C,ed as V,fd as N,gb as d,ia as De,ja as Z,jb as Ve,kb as ze,lb as te,mb as ne,na as o,nc as Ue,oc 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,za as Ae,zc as xe}from"./chunk-ZSRIBCAW.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.1",date:"2026-05-10",kind:"user-facing",highlights:[{body:"The topbar now shows the full project path under the **skill-map** wordmark, so a screenshot or a quick glance at the UI is always self-identifying. Previously only the last folder segment was shown, and projects scanned from their own root saw no path at all.",packages:["@skill-map/cli"]}]},{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};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{J as r,M as n,O as i,Sb as a,W as l,ba as s,ca as d}from"./chunk-ZSRIBCAW.js";var k={triggerLabel:"Settings",triggerTooltip:"Settings",modalTitle:"Settings",closeLabel:"Close",sections:{plugins:"Plugins",general:"General",project:"Project",changelog:"Changelog",about:"About"},comingSoonTitle:"Coming soon",comingSoonBody:t=>`${t} settings will land in a future release. The section is reserved here so you know where to look when it ships.`,general:{heading:"General",intro:"User-scope preferences. These settings live in your home directory (`~/.skill-map/settings.json`) and follow you across projects.",loadErrorPrefix:"Could not load preferences:",saveErrorPrefix:"Could not save preferences:",toggles:{"updateCheck.enabled":{label:"Check for updates",description:"Check npm for newer @skill-map/cli releases."}}},project:{heading:"Project",intro:"These settings apply only to this project and are saved in its `.skill-map/settings.json` file.",loadErrorPrefix:"Could not load project settings:",saveErrorPrefix:"Could not save project settings:",includeHomeLabel:"Include your HOME folders",includeHomeDescription:"Also scan typical AI-assistant folders in your HOME (like ~/.claude, ~/.gemini, ~/.agents) alongside this project. Off by default \u2014 turning this on lets the scan read those folders.",extraRootsLabel:"Extra folders to scan",extraRootsDescription:"Additional folders included in the scan. Their files show up in the graph next to this project. Use ~/ for paths inside your home folder.",extraRootsPlaceholder:"~/notes, /path/to/another/folder",referencePathsLabel:"Folders for link validation",referencePathsDescription:'Folders checked only to validate links. Files here are not indexed and do not appear in the graph \u2014 they just stop "broken link" warnings when a link points to a real file outside this project.',referencePathsPlaceholder:"~/Documents/research, ~/.claude",addPathLabel:"Add path",removePathLabel:"Remove",confirmDialogHeader:"Allow access to folders outside this project?",confirmDialogIntro:"This change lets the scan read files in:",confirmDialogAccept:"Allow access",confirmDialogReject:"Cancel"},changelogHeading:"Changelog",changelogIntro:"What's new in skill-map. Each entry covers a release of @skill-map/cli (the CLI + bundled UI) and lists the user-facing changes plus the workspace(s) each one affects.",changelogEmpty:"No release notes yet. Future releases will populate this list automatically from the changesets shipped in each PR.",changelogInternalRelease:"Internal release \u2014 focus on stability, infra, and refactors. No user-facing changes this time.",changelogAffectedPackages:"Affected packages",aboutHeading:"About",aboutIntro:"Version information for the running CLI / server.",aboutCliLabel:"skill-map CLI",aboutSpecLabel:"Spec version",aboutSchemaLabel:"Schema version",aboutScopeLabel:"Scope",aboutFolderLabel:"Project folder",aboutDbLabel:"Project DB",aboutHomeLabel:"Skill-map home",aboutDbValue:(t,e)=>t==="present"?e:`${t} \xB7 ${e}`,aboutLoading:"Loading\u2026",aboutUnknown:"\u2014",aboutErrorPrefix:"Could not read health endpoint:",aboutLinksHeading:"Links",aboutWebsiteLabel:"Website",aboutGithubLabel:"GitHub",aboutWebsiteUrl:"https://skill-map.dev/",aboutGithubUrl:"https://github.com/crystian/skill-map",aboutStarHeading:"Enjoying skill-map?",aboutStarBody:"If it's useful to you, drop us a star on GitHub \u2014 it helps a lot and keeps the project alive.",aboutStarCta:"Star on GitHub",aboutStarA11y:"Open the skill-map repository on GitHub to give it a star",pluginsHeading:"Plugins",pluginsIntro:"Enable or disable installed plugins.",pluginsSearchPlaceholder:"Filter by name\u2026",pluginsSearchA11y:"Filter plugins by name",pluginsSearchEmpty:t=>`No plugins match "${t}".`,pluginsKindFilterAll:"All",pluginsKindFilterA11y:"Filter plugins by kind",pluginsKindFilterOptionA11y:(t,e)=>e?`Show only ${t} extensions`:"Show all kinds",restartBannerTitle:"Restart required",restartBannerBody:"Toggles are persisted instantly, but the loaded plugin runtime is cached at boot. Run `sm scan` or restart `sm serve` to apply.",sourceBuiltIn:"Built-in",sourceProject:"Project",sourceGlobal:"Global",enabledLabel:"Enabled",disabledLabel:"Disabled",lockedLabel:"Locked",lockedTooltip:"Locked by the host \u2014 cannot be toggled.",expandLabel:"Show extensions",collapseLabel:"Hide extensions",statusFailure:{"incompatible-spec":"Incompatible spec version","invalid-manifest":"Invalid manifest","load-error":"Failed to load","id-collision":"Plugin id collision"},loading:"Loading plugins\u2026",empty:"No plugins installed.",errorPrefix:"Could not load plugins:",toggleErrorPrefix:"Toggle failed:",a11y:{triggerLabel:"Open settings",pluginToggle:(t,e)=>e?`Enable plugin ${t}`:`Disable plugin ${t}`,extensionToggle:(t,e)=>e?`Enable ${t}`:`Disable ${t}`}};var L=new n("SKILL_MAP_MODE");function c(){return typeof document>"u"?"live":document.querySelector('meta[name="skill-map-mode"]')?.content==="demo"?"demo":"live"}var u=class t{status=s(null);isOutdated=a(()=>this.status()?.isOutdated===!0);latest=a(()=>this.status()?.latest??null);current=a(()=>this.status()?.current??null);async load(){if(c()!=="demo")try{let e=await globalThis.fetch("/api/update-status");if(!e.ok){console.warn(`UpdateCheckService: /api/update-status returned HTTP ${e.status}`);return}let o=await e.json();this.status.set(o)}catch(e){let o=e instanceof Error?e.message:String(e);console.warn(`UpdateCheckService: fetch failed (${o})`)}}static \u0275fac=function(o){return new(o||t)};static \u0275prov=r({token:t,factory:t.\u0275fac,providedIn:"root"})};var p="skill-map.ui.theme",b="app-dark",y="dark",g="(prefers-color-scheme: dark)",h=class t{doc=i(l);mode=s(this.readInitial());systemPrefersDark=s(this.readSystemPref());resolved=a(()=>{let e=this.mode();return e==="auto"?this.systemPrefersDark()?"dark":"light":e});constructor(){this.subscribeToSystemPref(),d(()=>{let e=this.resolved()==="dark",o=this.doc.documentElement;o.classList.toggle(b,e),o.classList.toggle(y,e);try{this.doc.defaultView?.localStorage.setItem(p,this.mode())}catch{}})}toggle(){this.mode.update(e=>e==="auto"?"light":e==="light"?"dark":"auto")}set(e){this.mode.set(e)}readInitial(){try{let e=this.doc.defaultView?.localStorage.getItem(p);if(e==="auto"||e==="light"||e==="dark")return e}catch{}return"auto"}readSystemPref(){try{return this.doc.defaultView?.matchMedia(g).matches??!1}catch{return!1}}subscribeToSystemPref(){let e=this.doc.defaultView;if(!e||typeof e.matchMedia!="function")return;e.matchMedia(g).addEventListener("change",m=>{this.systemPrefersDark.set(m.matches)})}static \u0275fac=function(o){return new(o||t)};static \u0275prov=r({token:t,factory:t.\u0275fac,providedIn:"root"})};export{L as a,c as b,k as c,u as d,h as e};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{k as N,l as k}from"./chunk-OJ6W6OIB.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,jc 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-ZSRIBCAW.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};
|