@skill-map/cli 0.50.1 → 0.51.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.
@@ -5,6 +5,12 @@
5
5
  <title>skill-map</title>
6
6
  <base href="/">
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1">
8
+ <!--
9
+ Strip the Referer header on every request + outbound link. The
10
+ loopback BFF does not need it, and external links from rendered
11
+ markdown should not leak the in-app route the operator came from.
12
+ -->
13
+ <meta name="referrer" content="no-referrer">
8
14
  <!--
9
15
  Runtime-mode discriminator. `live` makes the SPA talk to the BFF
10
16
  (`sm serve`); the demo build pipeline (Step 14.3.b) rewrites
@@ -27,8 +33,8 @@
27
33
  preconnect handshake on first paint. Applied via `html.app-matrix`
28
34
  in `themes/matrix.css`.
29
35
  -->
30
- <style>:root{--ff-white:#ffffff;--ff-black:#000000;--ff-gray-0:#ffffff;--ff-gray-25:#fcfcfc;--ff-gray-50:#f8f8f7;--ff-gray-75:#f2f2f0;--ff-gray-100:#e9e9e6;--ff-gray-150:#dcdcd7;--ff-gray-200:#c9c9c1;--ff-gray-300:#afafa5;--ff-gray-400:#8d8d81;--ff-gray-500:#69695f;--ff-gray-600:#505048;--ff-gray-700:#3c3c36;--ff-gray-800:#272722;--ff-gray-900:#1b1b18;--ff-gray-950:#141412;--ff-gray-1000:#0f0f0d;--ff-alpha-black-04:rgba(15, 15, 13, .04);--ff-alpha-black-06:rgba(15, 15, 13, .06);--ff-alpha-black-08:rgba(15, 15, 13, .08);--ff-alpha-black-10:rgba(15, 15, 13, .1);--ff-alpha-black-12:rgba(15, 15, 13, .12);--ff-alpha-black-15:rgba(15, 15, 13, .15);--ff-alpha-black-20:rgba(15, 15, 13, .2);--ff-alpha-black-30:rgba(15, 15, 13, .3);--ff-alpha-black-40:rgba(15, 15, 13, .4);--ff-alpha-black-60:rgba(15, 15, 13, .6);--ff-alpha-white-04:rgba(255, 255, 255, .04);--ff-alpha-white-06:rgba(255, 255, 255, .06);--ff-alpha-white-08:rgba(255, 255, 255, .08);--ff-alpha-white-10:rgba(255, 255, 255, .1);--ff-alpha-white-12:rgba(255, 255, 255, .12);--ff-alpha-white-15:rgba(255, 255, 255, .15);--ff-alpha-white-20:rgba(255, 255, 255, .2);--ff-alpha-white-30:rgba(255, 255, 255, .3);--ff-alpha-white-40:rgba(255, 255, 255, .4);--ff-alpha-white-60:rgba(255, 255, 255, .6);--ff-blue-100:#e8f2ff;--ff-blue-200:#bad8ff;--ff-blue-300:#7db7ff;--ff-blue-400:#4176ff;--ff-blue-500:#2759db;--ff-blue-600:#1b3f9e;--ff-green-100:#e7f7ef;--ff-green-300:#71c795;--ff-green-400:#2b9b5f;--ff-green-500:#1e7748;--ff-yellow-100:#fff5de;--ff-yellow-300:#e1b354;--ff-yellow-400:#bb8121;--ff-yellow-500:#916112;--ff-red-100:#feeceb;--ff-red-300:#e48d85;--ff-red-400:#c55245;--ff-red-500:#9e3a2f;--ff-radius-4:4px;--ff-radius-6:6px;--ff-radius-pill:999px;--ff-font-family-sans:"Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--ff-font-family-mono:ui-monospace, "SFMono-Regular", "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;--ff-font-size-xs:12px;--ff-font-size-sm:14px;--ff-font-size-md:16px;--ff-font-size-lg:18px;--ff-shadow-1:0 1px 2px rgba(15, 15, 13, .05), 0 8px 20px rgba(15, 15, 13, .04);--ff-shadow-2:0 10px 28px rgba(15, 15, 13, .08), 0 3px 10px rgba(15, 15, 13, .05);--ff-shadow-3:0 18px 48px rgba(15, 15, 13, .12), 0 6px 16px rgba(15, 15, 13, .08)}:root{--ff-color-surface-page:var(--ff-gray-25);--ff-color-surface-canvas:var(--ff-gray-25);--ff-color-surface-card:var(--ff-white);--ff-color-surface-group:rgba(65, 118, 255, .14);--ff-color-surface-group-active:rgba(65, 118, 255, .2);--ff-color-surface-muted:var(--ff-gray-50);--ff-color-surface-soft:var(--ff-gray-75);--ff-color-surface-accent-soft:rgba(65, 118, 255, .1);--ff-color-border-default:var(--ff-alpha-black-12);--ff-color-border-subtle:var(--ff-alpha-black-08);--ff-color-border-strong:var(--ff-alpha-black-20);--ff-color-border-accent:var(--ff-blue-500);--ff-color-text-primary:var(--ff-gray-800);--ff-color-text-secondary:var(--ff-gray-500);--ff-color-text-tertiary:var(--ff-gray-400);--ff-color-text-inverse:var(--ff-white);--ff-color-accent:var(--ff-blue-500);--ff-color-accent-strong:var(--ff-blue-600);--ff-color-success:var(--ff-green-400);--ff-color-warning:var(--ff-yellow-400);--ff-color-danger:var(--ff-red-400);--ff-color-disabled-surface:var(--ff-gray-100);--ff-color-disabled-border:var(--ff-alpha-black-10);--ff-color-disabled-text:var(--ff-gray-300);--ff-color-selection-fill:rgba(65, 118, 255, .12);--ff-color-selection-stroke:rgba(65, 118, 255, .28);--ff-color-grid:var(--ff-alpha-black-08);--ff-color-grid-strong:var(--ff-alpha-black-15);--ff-color-connector-connected:var(--ff-blue-500);--ff-color-connection:var(--ff-gray-600);--ff-color-connection-muted:var(--ff-gray-300);--ff-color-connection-hover:var(--ff-alpha-black-12);--ff-color-grouping-drop-target-border:var(--ff-gray-800);--ff-color-grouping-drop-target-border-active:var(--ff-gray-800);--ff-color-waypoint-fill:var(--ff-white);--ff-color-waypoint-stroke:var(--ff-blue-500);--ff-color-waypoint-candidate-fill:var(--ff-white);--ff-color-waypoint-candidate-stroke:var(--ff-green-400);--ff-color-minimap-surface:var(--ff-white);--ff-color-minimap-node:var(--ff-gray-700);--ff-color-minimap-view:rgba(65, 118, 255, .14);--ff-color-magnetic-line:var(--ff-blue-500);--ff-color-magnetic-rect-fill:rgba(65, 118, 255, .08);--ff-color-magnetic-rect-border:rgba(65, 118, 255, .24);--ff-radius-node:var(--ff-radius-4);--ff-radius-group:var(--ff-radius-4);--ff-radius-control:var(--ff-radius-4);--ff-radius-socket-square:var(--ff-radius-6);--ff-radius-pill:var(--ff-radius-pill);--ff-font-sans:var(--ff-font-family-sans);--ff-font-mono:var(--ff-font-family-mono);--ff-font-size-body:var(--ff-font-size-sm);--ff-font-size-label:var(--ff-font-size-xs);--ff-shadow-surface:var(--ff-shadow-1);--ff-shadow-floating:var(--ff-shadow-2)}:root{--ff-flow-background-color:var(--ff-color-surface-page);--ff-flow-text-color:var(--ff-color-text-primary);--ff-flow-font-family:var(--ff-font-sans);--ff-flow-font-size:var(--ff-font-size-body);--ff-canvas-background-color:var(--ff-color-surface-canvas);--ff-node-background-color:var(--ff-color-surface-card);--ff-node-background-color-inverse:var(--ff-color-text-primary);--ff-node-border-color:var(--ff-color-border-default);--ff-node-border-color-selected:var(--ff-color-border-accent);--ff-node-color:var(--ff-color-text-primary);--ff-node-border-radius:var(--ff-radius-node);--ff-node-shadow:var(--ff-shadow-surface);--ff-node-shadow-selected:var(--ff-shadow-floating);--ff-node-width:120px;--ff-node-min-height:56px;--ff-node-padding:24px;--ff-group-background-color:var(--ff-color-surface-group);--ff-group-background-color-active:var(--ff-color-surface-group-active);--ff-group-border-color:var(--ff-color-border-subtle);--ff-group-border-color-selected:var(--ff-color-border-accent);--ff-group-border-color-active:var(--ff-color-border-accent);--ff-group-color:var(--ff-color-text-secondary);--ff-group-border-radius:var(--ff-radius-group);--ff-group-min-width:180px;--ff-group-min-height:120px;--ff-group-padding:24px;--ff-grouping-drop-target-border-color:var(--ff-color-grouping-drop-target-border);--ff-grouping-drop-target-border-style:dashed;--ff-grouping-drop-target-border-width:1px;--ff-grouping-drop-target-border-color-active:var(--ff-color-grouping-drop-target-border-active);--ff-grouping-drop-target-border-style-active:dashed;--ff-grouping-drop-target-border-width-active:2px;--ff-handle-background-color:var(--ff-color-surface-card);--ff-handle-border-color:var(--ff-color-border-strong);--ff-handle-color:var(--ff-color-text-secondary);--ff-handle-size:12px;--ff-handle-radius:var(--ff-radius-control);--ff-rotate-handle-size:16px;--ff-connector-background-color:var(--ff-color-surface-card);--ff-connector-border-color:var(--ff-color-border-default);--ff-connector-connected-color:var(--ff-color-connector-connected);--ff-connector-accent-color:var(--ff-color-accent);--ff-connector-disabled-color:var(--ff-color-disabled-surface);--ff-connector-disabled-border-color:var(--ff-color-disabled-border);--ff-connector-size:16px;--ff-connector-node-ring-color:var(--ff-canvas-background-color);--ff-outlet-background-color:var(--ff-color-surface-muted);--ff-outlet-border-color:var(--ff-color-border-default);--ff-outlet-color:var(--ff-color-accent);--ff-outlet-disabled-background-color:var(--ff-color-disabled-surface);--ff-outlet-disabled-border-color:var(--ff-color-disabled-border);--ff-outlet-disabled-color:var(--ff-color-disabled-text);--ff-outlet-border-radius:var(--ff-radius-pill);--ff-outlet-padding-y:6px;--ff-outlet-padding-x:12px;--ff-connection-color:var(--ff-color-connection);--ff-snap-connection-color:var(--ff-color-connection-muted);--ff-connection-hover-color:var(--ff-color-connection-hover);--ff-connection-selected-color:var(--ff-color-accent);--ff-connection-label-color:var(--ff-color-text-secondary);--ff-connection-content-color:var(--ff-node-color);--ff-connection-content-background-color:var(--ff-node-background-color);--ff-connection-content-border-color:var(--ff-node-border-color);--ff-connection-content-border-color-selected:var(--ff-connection-selected-color);--ff-connection-content-border-radius:var(--ff-node-border-radius);--ff-connection-content-font-size:13px;--ff-connection-content-padding-y:2px;--ff-connection-content-padding-x:8px;--ff-connection-width:2px;--ff-connection-hit-width:14px;--ff-connection-drag-handle-fill:var(--ff-color-surface-card);--ff-connection-drag-handle-stroke:var(--ff-color-accent);--ff-marker-color:var(--ff-connection-color);--ff-waypoint-fill:var(--ff-color-waypoint-fill);--ff-waypoint-stroke:var(--ff-color-waypoint-stroke);--ff-waypoint-candidate-fill:var(--ff-color-waypoint-candidate-fill);--ff-waypoint-candidate-stroke:var(--ff-color-waypoint-candidate-stroke);--ff-background-line-color:var(--ff-color-grid);--ff-background-dot-color:var(--ff-color-grid-strong);--ff-selection-area-color:var(--ff-color-selection-fill);--ff-selection-area-border-color:var(--ff-color-selection-stroke);--ff-minimap-background-color:var(--ff-color-minimap-surface);--ff-minimap-border-color:var(--ff-color-border-default);--ff-minimap-node-color:var(--ff-color-minimap-node);--ff-minimap-node-selected-color:var(--ff-color-accent);--ff-minimap-view-color:var(--ff-color-minimap-view);--ff-minimap-view-border-color:var(--ff-color-selection-stroke);--ff-minimap-border-radius:var(--ff-radius-node);--ff-minimap-shadow:var(--ff-shadow-floating);--ff-magnetic-line-color:var(--ff-color-magnetic-line);--ff-magnetic-rect-fill:var(--ff-color-magnetic-rect-fill);--ff-magnetic-rect-border-color:var(--ff-color-magnetic-rect-border);--ff-external-item-background-color:var(--ff-color-surface-card);--ff-external-item-border-color:var(--ff-color-border-default);--ff-external-item-color:var(--ff-color-text-primary);--ff-external-item-disabled-color:var(--ff-color-disabled-text);--ff-external-item-disabled-background-color:var(--ff-color-disabled-surface);--ff-external-item-border-radius:var(--ff-radius-node);--ff-external-item-shadow:var(--ff-shadow-surface);--ff-external-item-preview-shadow:var(--ff-shadow-floating);--ff-external-item-placeholder-background-color:var(--ff-color-surface-soft);--ff-external-item-placeholder-border-color:var(--ff-color-border-subtle)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}:root{--fa-family-brands:"Font Awesome 7 Brands";--fa-font-brands:normal 400 1em/1 var(--fa-family-brands)}:root{--fa-font-regular:normal 400 1em/1 var(--fa-family-classic)}:root{--fa-family-classic:"Font Awesome 7 Free";--fa-font-solid:normal 900 1em/1 var(--fa-family-classic);--fa-style-family-classic:var(--fa-family-classic)}:root{--sm-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--sm-font-display-brand:"Geist", system-ui, sans-serif;--sm-radius-sm:3px;--sm-radius-md:4px;--sm-radius-lg:.5rem;--sm-radius-pill:999px;--sm-violet-50:#F5F3FF;--sm-violet-100:#EDE9FE;--sm-violet-200:#DDD6FE;--sm-violet-300:#C4B5FD;--sm-violet-400:#A78BFA;--sm-violet-500:#8B5CF6;--sm-violet-600:#7C3AED;--sm-violet-700:#6D28D9;--sm-violet-800:#4C1D95;--sm-violet-900:#2E1065}html,body{margin:0;padding:0;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--sm-bg-page);color:var(--p-text-color)}*,*:before,*:after{box-sizing:border-box}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--p-text-color) 30%,transparent) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:color-mix(in srgb,var(--p-text-color) 25%,transparent);border-radius:var(--sm-radius-pill);border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background-color:color-mix(in srgb,var(--p-text-color) 45%,transparent)}:root{--sm-bg-page:#f8fafc;--sm-bg-content:#ffffff;--sm-bg-hover:#f1f5f9;--sm-border:#e2e8f0;--sm-nav-active-bg:#eff6ff;--sm-edge-invokes:#b8843a;--sm-edge-invokes-active:#f59e0b;--sm-edge-references:#7daa90;--sm-edge-references-active:#10b981;--sm-edge-mentions:#6fa2c0;--sm-edge-mentions-active:#0ea5e9;--sm-edge-supersedes:#9ca3af;--sm-edge-supersedes-active:#4b5563;--sm-edge-neutral:#6b7280;--sm-link-in-bg:#e0e7ff;--sm-link-in-fg:#3730a3;--sm-link-out-bg:#fef3c7;--sm-link-out-fg:#92400e;--sm-severity-info:#1e3a8a;--sm-severity-success:#065f46;--sm-severity-warn:#ca8a04;--sm-severity-error:#991b1b;--sm-severity-info-bg:rgba(219, 234, 254, .35);--sm-severity-success-bg:rgba(209, 250, 229, .35);--sm-severity-warn-bg:rgba(254, 243, 199, .35);--sm-severity-error-bg:rgba(254, 226, 226, .35);--sm-stat-tokens-bg:rgba(59, 130, 246, .14);--sm-stat-bytes-bg:rgba(245, 158, 11, .16);--sm-accent-fg:#ffffff;--sm-shadow-topbar:0 1px 2px rgba(0, 0, 0, .03);--sm-shadow-eventlog:0 -4px 16px rgba(0, 0, 0, .08);--sm-shadow-floating:0 4px 14px rgba(0, 0, 0, .08);--sm-shadow-card:0 1px 2px rgba(0, 0, 0, .05);--sm-shadow-card-hover:0 3px 12px rgba(0, 0, 0, .12)}</style><link rel="stylesheet" href="styles-O3EXBCXH.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-O3EXBCXH.css"></noscript></head>
36
+ <style>:root{--ff-white:#ffffff;--ff-black:#000000;--ff-gray-0:#ffffff;--ff-gray-25:#fcfcfc;--ff-gray-50:#f8f8f7;--ff-gray-75:#f2f2f0;--ff-gray-100:#e9e9e6;--ff-gray-150:#dcdcd7;--ff-gray-200:#c9c9c1;--ff-gray-300:#afafa5;--ff-gray-400:#8d8d81;--ff-gray-500:#69695f;--ff-gray-600:#505048;--ff-gray-700:#3c3c36;--ff-gray-800:#272722;--ff-gray-900:#1b1b18;--ff-gray-950:#141412;--ff-gray-1000:#0f0f0d;--ff-alpha-black-04:rgba(15, 15, 13, .04);--ff-alpha-black-06:rgba(15, 15, 13, .06);--ff-alpha-black-08:rgba(15, 15, 13, .08);--ff-alpha-black-10:rgba(15, 15, 13, .1);--ff-alpha-black-12:rgba(15, 15, 13, .12);--ff-alpha-black-15:rgba(15, 15, 13, .15);--ff-alpha-black-20:rgba(15, 15, 13, .2);--ff-alpha-black-30:rgba(15, 15, 13, .3);--ff-alpha-black-40:rgba(15, 15, 13, .4);--ff-alpha-black-60:rgba(15, 15, 13, .6);--ff-alpha-white-04:rgba(255, 255, 255, .04);--ff-alpha-white-06:rgba(255, 255, 255, .06);--ff-alpha-white-08:rgba(255, 255, 255, .08);--ff-alpha-white-10:rgba(255, 255, 255, .1);--ff-alpha-white-12:rgba(255, 255, 255, .12);--ff-alpha-white-15:rgba(255, 255, 255, .15);--ff-alpha-white-20:rgba(255, 255, 255, .2);--ff-alpha-white-30:rgba(255, 255, 255, .3);--ff-alpha-white-40:rgba(255, 255, 255, .4);--ff-alpha-white-60:rgba(255, 255, 255, .6);--ff-blue-100:#e8f2ff;--ff-blue-200:#bad8ff;--ff-blue-300:#7db7ff;--ff-blue-400:#4176ff;--ff-blue-500:#2759db;--ff-blue-600:#1b3f9e;--ff-green-100:#e7f7ef;--ff-green-300:#71c795;--ff-green-400:#2b9b5f;--ff-green-500:#1e7748;--ff-yellow-100:#fff5de;--ff-yellow-300:#e1b354;--ff-yellow-400:#bb8121;--ff-yellow-500:#916112;--ff-red-100:#feeceb;--ff-red-300:#e48d85;--ff-red-400:#c55245;--ff-red-500:#9e3a2f;--ff-radius-4:4px;--ff-radius-6:6px;--ff-radius-pill:999px;--ff-font-family-sans:"Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--ff-font-family-mono:ui-monospace, "SFMono-Regular", "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;--ff-font-size-xs:12px;--ff-font-size-sm:14px;--ff-font-size-md:16px;--ff-font-size-lg:18px;--ff-shadow-1:0 1px 2px rgba(15, 15, 13, .05), 0 8px 20px rgba(15, 15, 13, .04);--ff-shadow-2:0 10px 28px rgba(15, 15, 13, .08), 0 3px 10px rgba(15, 15, 13, .05);--ff-shadow-3:0 18px 48px rgba(15, 15, 13, .12), 0 6px 16px rgba(15, 15, 13, .08)}:root{--ff-color-surface-page:var(--ff-gray-25);--ff-color-surface-canvas:var(--ff-gray-25);--ff-color-surface-card:var(--ff-white);--ff-color-surface-group:rgba(65, 118, 255, .14);--ff-color-surface-group-active:rgba(65, 118, 255, .2);--ff-color-surface-muted:var(--ff-gray-50);--ff-color-surface-soft:var(--ff-gray-75);--ff-color-surface-accent-soft:rgba(65, 118, 255, .1);--ff-color-border-default:var(--ff-alpha-black-12);--ff-color-border-subtle:var(--ff-alpha-black-08);--ff-color-border-strong:var(--ff-alpha-black-20);--ff-color-border-accent:var(--ff-blue-500);--ff-color-text-primary:var(--ff-gray-800);--ff-color-text-secondary:var(--ff-gray-500);--ff-color-text-tertiary:var(--ff-gray-400);--ff-color-text-inverse:var(--ff-white);--ff-color-accent:var(--ff-blue-500);--ff-color-accent-strong:var(--ff-blue-600);--ff-color-success:var(--ff-green-400);--ff-color-warning:var(--ff-yellow-400);--ff-color-danger:var(--ff-red-400);--ff-color-disabled-surface:var(--ff-gray-100);--ff-color-disabled-border:var(--ff-alpha-black-10);--ff-color-disabled-text:var(--ff-gray-300);--ff-color-selection-fill:rgba(65, 118, 255, .12);--ff-color-selection-stroke:rgba(65, 118, 255, .28);--ff-color-grid:var(--ff-alpha-black-08);--ff-color-grid-strong:var(--ff-alpha-black-15);--ff-color-connector-connected:var(--ff-blue-500);--ff-color-connection:var(--ff-gray-600);--ff-color-connection-muted:var(--ff-gray-300);--ff-color-connection-hover:var(--ff-alpha-black-12);--ff-color-grouping-drop-target-border:var(--ff-gray-800);--ff-color-grouping-drop-target-border-active:var(--ff-gray-800);--ff-color-waypoint-fill:var(--ff-white);--ff-color-waypoint-stroke:var(--ff-blue-500);--ff-color-waypoint-candidate-fill:var(--ff-white);--ff-color-waypoint-candidate-stroke:var(--ff-green-400);--ff-color-minimap-surface:var(--ff-white);--ff-color-minimap-node:var(--ff-gray-700);--ff-color-minimap-view:rgba(65, 118, 255, .14);--ff-color-magnetic-line:var(--ff-blue-500);--ff-color-magnetic-rect-fill:rgba(65, 118, 255, .08);--ff-color-magnetic-rect-border:rgba(65, 118, 255, .24);--ff-radius-node:var(--ff-radius-4);--ff-radius-group:var(--ff-radius-4);--ff-radius-control:var(--ff-radius-4);--ff-radius-socket-square:var(--ff-radius-6);--ff-radius-pill:var(--ff-radius-pill);--ff-font-sans:var(--ff-font-family-sans);--ff-font-mono:var(--ff-font-family-mono);--ff-font-size-body:var(--ff-font-size-sm);--ff-font-size-label:var(--ff-font-size-xs);--ff-shadow-surface:var(--ff-shadow-1);--ff-shadow-floating:var(--ff-shadow-2)}:root{--ff-flow-background-color:var(--ff-color-surface-page);--ff-flow-text-color:var(--ff-color-text-primary);--ff-flow-font-family:var(--ff-font-sans);--ff-flow-font-size:var(--ff-font-size-body);--ff-canvas-background-color:var(--ff-color-surface-canvas);--ff-node-background-color:var(--ff-color-surface-card);--ff-node-background-color-inverse:var(--ff-color-text-primary);--ff-node-border-color:var(--ff-color-border-default);--ff-node-border-color-selected:var(--ff-color-border-accent);--ff-node-color:var(--ff-color-text-primary);--ff-node-border-radius:var(--ff-radius-node);--ff-node-shadow:var(--ff-shadow-surface);--ff-node-shadow-selected:var(--ff-shadow-floating);--ff-node-width:120px;--ff-node-min-height:56px;--ff-node-padding:24px;--ff-group-background-color:var(--ff-color-surface-group);--ff-group-background-color-active:var(--ff-color-surface-group-active);--ff-group-border-color:var(--ff-color-border-subtle);--ff-group-border-color-selected:var(--ff-color-border-accent);--ff-group-border-color-active:var(--ff-color-border-accent);--ff-group-color:var(--ff-color-text-secondary);--ff-group-border-radius:var(--ff-radius-group);--ff-group-min-width:180px;--ff-group-min-height:120px;--ff-group-padding:24px;--ff-grouping-drop-target-border-color:var(--ff-color-grouping-drop-target-border);--ff-grouping-drop-target-border-style:dashed;--ff-grouping-drop-target-border-width:1px;--ff-grouping-drop-target-border-color-active:var(--ff-color-grouping-drop-target-border-active);--ff-grouping-drop-target-border-style-active:dashed;--ff-grouping-drop-target-border-width-active:2px;--ff-handle-background-color:var(--ff-color-surface-card);--ff-handle-border-color:var(--ff-color-border-strong);--ff-handle-color:var(--ff-color-text-secondary);--ff-handle-size:12px;--ff-handle-radius:var(--ff-radius-control);--ff-rotate-handle-size:16px;--ff-connector-background-color:var(--ff-color-surface-card);--ff-connector-border-color:var(--ff-color-border-default);--ff-connector-connected-color:var(--ff-color-connector-connected);--ff-connector-accent-color:var(--ff-color-accent);--ff-connector-disabled-color:var(--ff-color-disabled-surface);--ff-connector-disabled-border-color:var(--ff-color-disabled-border);--ff-connector-size:16px;--ff-connector-node-ring-color:var(--ff-canvas-background-color);--ff-outlet-background-color:var(--ff-color-surface-muted);--ff-outlet-border-color:var(--ff-color-border-default);--ff-outlet-color:var(--ff-color-accent);--ff-outlet-disabled-background-color:var(--ff-color-disabled-surface);--ff-outlet-disabled-border-color:var(--ff-color-disabled-border);--ff-outlet-disabled-color:var(--ff-color-disabled-text);--ff-outlet-border-radius:var(--ff-radius-pill);--ff-outlet-padding-y:6px;--ff-outlet-padding-x:12px;--ff-connection-color:var(--ff-color-connection);--ff-snap-connection-color:var(--ff-color-connection-muted);--ff-connection-hover-color:var(--ff-color-connection-hover);--ff-connection-selected-color:var(--ff-color-accent);--ff-connection-label-color:var(--ff-color-text-secondary);--ff-connection-content-color:var(--ff-node-color);--ff-connection-content-background-color:var(--ff-node-background-color);--ff-connection-content-border-color:var(--ff-node-border-color);--ff-connection-content-border-color-selected:var(--ff-connection-selected-color);--ff-connection-content-border-radius:var(--ff-node-border-radius);--ff-connection-content-font-size:13px;--ff-connection-content-padding-y:2px;--ff-connection-content-padding-x:8px;--ff-connection-width:2px;--ff-connection-hit-width:14px;--ff-connection-drag-handle-fill:var(--ff-color-surface-card);--ff-connection-drag-handle-stroke:var(--ff-color-accent);--ff-marker-color:var(--ff-connection-color);--ff-waypoint-fill:var(--ff-color-waypoint-fill);--ff-waypoint-stroke:var(--ff-color-waypoint-stroke);--ff-waypoint-candidate-fill:var(--ff-color-waypoint-candidate-fill);--ff-waypoint-candidate-stroke:var(--ff-color-waypoint-candidate-stroke);--ff-background-line-color:var(--ff-color-grid);--ff-background-dot-color:var(--ff-color-grid-strong);--ff-selection-area-color:var(--ff-color-selection-fill);--ff-selection-area-border-color:var(--ff-color-selection-stroke);--ff-minimap-background-color:var(--ff-color-minimap-surface);--ff-minimap-border-color:var(--ff-color-border-default);--ff-minimap-node-color:var(--ff-color-minimap-node);--ff-minimap-node-selected-color:var(--ff-color-accent);--ff-minimap-view-color:var(--ff-color-minimap-view);--ff-minimap-view-border-color:var(--ff-color-selection-stroke);--ff-minimap-border-radius:var(--ff-radius-node);--ff-minimap-shadow:var(--ff-shadow-floating);--ff-magnetic-line-color:var(--ff-color-magnetic-line);--ff-magnetic-rect-fill:var(--ff-color-magnetic-rect-fill);--ff-magnetic-rect-border-color:var(--ff-color-magnetic-rect-border);--ff-external-item-background-color:var(--ff-color-surface-card);--ff-external-item-border-color:var(--ff-color-border-default);--ff-external-item-color:var(--ff-color-text-primary);--ff-external-item-disabled-color:var(--ff-color-disabled-text);--ff-external-item-disabled-background-color:var(--ff-color-disabled-surface);--ff-external-item-border-radius:var(--ff-radius-node);--ff-external-item-shadow:var(--ff-shadow-surface);--ff-external-item-preview-shadow:var(--ff-shadow-floating);--ff-external-item-placeholder-background-color:var(--ff-color-surface-soft);--ff-external-item-placeholder-border-color:var(--ff-color-border-subtle)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}:root{--fa-family-brands:"Font Awesome 7 Brands";--fa-font-brands:normal 400 1em/1 var(--fa-family-brands)}:root{--fa-font-regular:normal 400 1em/1 var(--fa-family-classic)}:root{--fa-family-classic:"Font Awesome 7 Free";--fa-font-solid:normal 900 1em/1 var(--fa-family-classic);--fa-style-family-classic:var(--fa-family-classic)}:root{--sm-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--sm-font-display-brand:"Geist", system-ui, sans-serif;--sm-radius-sm:3px;--sm-radius-md:4px;--sm-radius-lg:.5rem;--sm-radius-xl:.65rem;--sm-radius-pill:999px;--sm-violet-50:#F5F3FF;--sm-violet-100:#EDE9FE;--sm-violet-200:#DDD6FE;--sm-violet-300:#C4B5FD;--sm-violet-400:#A78BFA;--sm-violet-500:#8B5CF6;--sm-violet-600:#7C3AED;--sm-violet-700:#6D28D9;--sm-violet-800:#4C1D95;--sm-violet-900:#2E1065}html,body{margin:0;padding:0;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--sm-bg-page);color:var(--p-text-color)}*,*:before,*:after{box-sizing:border-box}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--p-text-color) 30%,transparent) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:color-mix(in srgb,var(--p-text-color) 25%,transparent);border-radius:var(--sm-radius-pill);border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background-color:color-mix(in srgb,var(--p-text-color) 45%,transparent)}:root{--sm-bg-page:#f8fafc;--sm-bg-content:#ffffff;--sm-bg-hover:#f1f5f9;--sm-border:#e2e8f0;--sm-nav-active-bg:#eff6ff;--sm-edge-invokes:#b8843a;--sm-edge-invokes-active:#f59e0b;--sm-edge-references:#7daa90;--sm-edge-references-active:#10b981;--sm-edge-mentions:#6fa2c0;--sm-edge-mentions-active:#0ea5e9;--sm-edge-supersedes:#9ca3af;--sm-edge-supersedes-active:#4b5563;--sm-edge-neutral:#6b7280;--sm-link-in-bg:#e0e7ff;--sm-link-in-fg:#3730a3;--sm-link-out-bg:#fef3c7;--sm-link-out-fg:#92400e;--sm-severity-info:#1e3a8a;--sm-severity-success:#065f46;--sm-severity-warn:#ca8a04;--sm-severity-error:#991b1b;--sm-severity-info-bg:rgba(219, 234, 254, .35);--sm-severity-success-bg:rgba(209, 250, 229, .35);--sm-severity-warn-bg:rgba(254, 243, 199, .35);--sm-severity-error-bg:rgba(254, 226, 226, .35);--sm-stat-tokens-bg:rgba(59, 130, 246, .14);--sm-stat-bytes-bg:rgba(245, 158, 11, .16);--sm-accent-fg:#ffffff;--sm-shadow-topbar:0 1px 2px rgba(0, 0, 0, .03);--sm-shadow-eventlog:0 -4px 16px rgba(0, 0, 0, .08);--sm-shadow-floating:0 4px 14px rgba(0, 0, 0, .08);--sm-shadow-card:0 1px 2px rgba(0, 0, 0, .05);--sm-shadow-card-hover:0 3px 12px rgba(0, 0, 0, .12);--sm-shadow-panel:0 4px 24px rgba(0, 0, 0, .12)}</style><link rel="stylesheet" href="styles-RG7Y33BT.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-RG7Y33BT.css"></noscript></head>
31
37
  <body>
32
38
  <sm-root></sm-root>
33
- <link rel="modulepreload" href="chunk-OYCCFH2S.js"><link rel="modulepreload" href="chunk-FQQYWQV6.js"><link rel="modulepreload" href="chunk-DOWLJNMD.js"><link rel="modulepreload" href="chunk-4SG4352Z.js"><link rel="modulepreload" href="chunk-AEA5GIA7.js"><link rel="modulepreload" href="chunk-WMGW2UAL.js"><link rel="modulepreload" href="chunk-VJ57LHDR.js"><link rel="modulepreload" href="chunk-WCABR6TI.js"><script src="main-I3HSF6GU.js" type="module"></script></body>
39
+ <link rel="modulepreload" href="chunk-KHRNVLJW.js"><link rel="modulepreload" href="chunk-RCT3JSFL.js"><link rel="modulepreload" href="chunk-VBTLX7GH.js"><link rel="modulepreload" href="chunk-4SG4352Z.js"><link rel="modulepreload" href="chunk-AEA5GIA7.js"><link rel="modulepreload" href="chunk-WMGW2UAL.js"><link rel="modulepreload" href="chunk-VJ57LHDR.js"><link rel="modulepreload" href="chunk-WCABR6TI.js"><script src="main-N7D2YBEX.js" type="module"></script></body>
34
40
  </html>
@@ -1,4 +1,4 @@
1
- import{a as B,b as w,c as pe,d as rt,e as ot}from"./chunk-OYCCFH2S.js";import{A as ee,B as it,i as Xe,k as He,l as We,w as U,x as Ge,y as ce,z as Ze}from"./chunk-FQQYWQV6.js";import{$ as he,C as Ke,K as se,L as ae,R as le,S as de,T as Qe,V as q,W as h,X as z,Y as Ye,Z as F,_ as j,aa as qe,ba as et,da as tt,fa as nt,n as Be,o as Ve,u as Je}from"./chunk-DOWLJNMD.js";import"./chunk-4SG4352Z.js";import{b as $e,f as Ne,g as ze,h as oe,i as Fe,j as je,k as Ue}from"./chunk-AEA5GIA7.js";import{l as Oe,m as Ee,n as Ie,o as Q,p as Ae,q as De,r as Le}from"./chunk-WMGW2UAL.js";import{$ as Ce,Db as O,Fa as ne,Fb as S,Gb as ie,Ha as a,Hb as f,K as E,O as H,P as s,Sb as Me,Tb as ue,V as T,Vb as Te,W as R,Wa as I,Wb as g,Xb as _,Yb as P,ab as Pe,da as ke,db as G,f as ye,fa as xe,ga as $,gb as we,hb as Se,ia as te,ib as v,lb as C,m as X,mb as k,rb as b,rc as c,sb as d,sc as re,tb as p,ub as x,vb as N,wb as W,xb as Z,yc as Re}from"./chunk-VJ57LHDR.js";import"./chunk-WCABR6TI.js";var fe="skill-map",A={brand:fe,alpha:"ALPHA - do not use in production",devChip:"dev",devChipTooltip:"BFF launched from a local checkout (not the npm install).",devChipA11y:"Development build: BFF is running from a local checkout.",lensChipTooltip:t=>`Active lens: ${t}. The map reflects how ${t} interprets your files.`,lensChipA11y:t=>`Active provider lens: ${t}.`,nav:{searchLabel:"Search nodes by name or tag",searchTooltip:"Search",searchPlaceholder:"Search by name or tag...",searchAriaLabel:"Search nodes by name or tag",searchClearLabel:"Clear search"},actions:{},badge:{nodes:"nodes",mapInfo:(t,n)=>{let e=`Run scan
1
+ import{a as B,b as w,c as pe,d as rt,e as ot}from"./chunk-KHRNVLJW.js";import{A as ee,B as it,i as Xe,k as He,l as We,w as U,x as Ge,y as ce,z as Ze}from"./chunk-RCT3JSFL.js";import{$ as qe,B as Ke,J as se,K as ae,Q as le,R as de,S as Qe,U as q,V as h,W as z,X as Ye,Y as F,Z as j,_ as he,aa as et,ca as tt,ea as nt,m as Be,n as Ve,t as Je}from"./chunk-VBTLX7GH.js";import"./chunk-4SG4352Z.js";import{b as $e,f as Ne,g as ze,h as oe,i as Fe,j as je,k as Ue}from"./chunk-AEA5GIA7.js";import{l as Oe,m as Ee,n as Ie,o as Q,p as Ae,q as De,r as Le}from"./chunk-WMGW2UAL.js";import{$ as Ce,Db as O,Fa as ne,Fb as S,Gb as ie,Ha as a,Hb as f,K as E,O as H,P as s,Sb as Me,Tb as ue,V as T,Vb as Te,W as R,Wa as I,Wb as g,Xb as _,Yb as P,ab as Pe,da as ke,db as G,f as ye,fa as xe,ga as $,gb as we,hb as Se,ia as te,ib as v,lb as C,m as X,mb as k,rb as b,rc as c,sb as d,sc as re,tb as p,ub as x,vb as N,wb as W,xb as Z,yc as Re}from"./chunk-VJ57LHDR.js";import"./chunk-WCABR6TI.js";var fe="skill-map",A={brand:fe,alpha:"ALPHA - do not use in production",devChip:"dev",devChipTooltip:"BFF launched from a local checkout (not the npm install).",devChipA11y:"Development build: BFF is running from a local checkout.",lensChipTooltip:t=>`Active lens: ${t}. The map reflects how ${t} interprets your files.`,lensChipA11y:t=>`Active provider lens: ${t}.`,nav:{searchLabel:"Search nodes by name or tag",searchTooltip:"Search",searchPlaceholder:"Search by name or tag...",searchAriaLabel:"Search nodes by name or tag",searchClearLabel:"Clear search"},actions:{},badge:{nodes:"nodes",mapInfo:(t,n)=>{let e=`Run scan
2
2
  ${t.toLocaleString()} nodes \xB7 ${n.raw.toLocaleString()} links`;if(n.raw===n.drawn)return e;let i=[],r=n.brokenSource+n.brokenTarget;return r>0&&i.push(`${r} broken`),n.selfLoops>0&&i.push(`${n.selfLoops} self-loop${n.selfLoops===1?"":"s"}`),n.duplicates>0&&i.push(`${n.duplicates} duplicate${n.duplicates===1?"":"s"}`),`${e}
3
- ${n.drawn.toLocaleString()} drawn (${i.join(", ")})`},mapInfoA11y:(t,n)=>`Map contains ${t} nodes and ${n.raw} links; ${n.drawn} drawn on the canvas`},a11y:{viewSwitcher:"View switcher"},viewportWarning:{title:"Looks like you're on a small screen",subtitle:"skill-map is built for desktop",body:"The map and inspector need room to breathe. Pop this open on a screen at least 768px wide. See you there."},documentTitle:(t,n)=>{let e=t?`${t} - ${fe}`:fe;return n?`${e} v${n}`:e}};var st=[{path:"",pathMatch:"full",loadComponent:()=>import("./chunk-DQEAPUE5.js").then(t=>t.WorkspaceView),title:A.brand},{path:"intentional-fail",loadComponent:()=>import("./chunk-WQMZOINB.js").then(t=>t.IntentionalFail)},{path:"**",redirectTo:""}];var D={errors:{unknownMode:t=>`SKILL_MAP_MODE: unknown value "${t}"`,restPrefix:t=>`BFF error [${t}]: `,malformedResponse:"BFF returned a malformed response",demoFetchFailed:(t,n)=>`Demo bundle fetch failed for "${t}": ${n}`,demoParseFailed:(t,n)=>`Demo bundle parse failed for "${t}": ${n}`,graphFormatNotInDemo:t=>`Graph format "${t}" is not bundled in demo mode (only "ascii").`}};function me(t){let n=new TextEncoder().encode(t),e="";for(let i=0;i<n.length;i++)e+=String.fromCharCode(n[i]);return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}var m="/api",at=(()=>{class t{http;ws;kindRegistry;providerRegistry;contributionsRegistry;constructor(e,i,r,o,l){this.http=e??s(Q),this.ws=i??s(F),this.kindRegistry=r??s(U),this.contributionsRegistry=o??s(ce),this.providerRegistry=l??s(B)}async health(){return this.getJson(`${m}/health`)}async loadScan(){let[e]=await Promise.all([this.getJson(`${m}/scan`),this.listNodes({limit:0}).catch(()=>null)]);return e}async runScan(){return this.patchJson(`${m}/scan`,{},"POST")}async listNodes(e={}){let i=At(e),r=await this.getJson(`${m}/nodes${i}`);return this.ingestRegistry(r.kindRegistry),this.ingestContributionsRegistry(r.contributionsRegistry),this.ingestProviderRegistry(r.providerRegistry),r}async getNode(e,i={}){let r=me(e),o=i.includeBody?"?include=body":"";try{let l=await this.getJson(`${m}/nodes/${r}${o}`);return this.ingestRegistry(l.kindRegistry),this.ingestContributionsRegistry(l.contributionsRegistry),this.ingestProviderRegistry(l.providerRegistry),l}catch(l){if(l instanceof h&&l.code==="not-found")return null;throw l}}async listLinks(e={}){let i=Dt(e),r=await this.getJson(`${m}/links${i}`);return this.ingestRegistry(r.kindRegistry),this.ingestContributionsRegistry(r.contributionsRegistry),this.ingestProviderRegistry(r.providerRegistry),r}async listIssues(e={}){let i=Lt(e),r=await this.getJson(`${m}/issues${i}`);return this.ingestRegistry(r.kindRegistry),this.ingestContributionsRegistry(r.contributionsRegistry),this.ingestProviderRegistry(r.providerRegistry),r}async loadGraph(e="ascii"){let i=`${m}/graph?format=${encodeURIComponent(e)}`;try{return await X(this.http.get(i,{responseType:"text"}))}catch(r){throw this.translateError(r)}}async loadConfig(){let e=await this.getJson(`${m}/config`);return this.ingestRegistry(e.kindRegistry),this.ingestContributionsRegistry(e.contributionsRegistry),this.ingestProviderRegistry(e.providerRegistry),e.value}async listPlugins(){let e=await this.getJson(`${m}/plugins`);return this.ingestRegistry(e.kindRegistry),this.ingestContributionsRegistry(e.contributionsRegistry),this.ingestProviderRegistry(e.providerRegistry),e}async setPluginEnabled(e,i){let r=await this.patchJson(`${m}/plugins/${encodeURIComponent(e)}`,{enabled:i});return this.ingestRegistry(r.kindRegistry),this.ingestContributionsRegistry(r.contributionsRegistry),this.ingestProviderRegistry(r.providerRegistry),r}async setPluginExtensionEnabled(e,i,r){let o=await this.patchJson(`${m}/plugins/${encodeURIComponent(e)}/extensions/${encodeURIComponent(i)}`,{enabled:r});return this.ingestRegistry(o.kindRegistry),this.ingestContributionsRegistry(o.contributionsRegistry),this.ingestProviderRegistry(o.providerRegistry),o}async applyPluginChanges(e){let i=await this.patchJson(`${m}/plugins`,{changes:e});return this.ingestRegistry(i.kindRegistry),this.ingestContributionsRegistry(i.contributionsRegistry),this.ingestProviderRegistry(i.providerRegistry),i}async getPreferences(){return await this.getJson(`${m}/preferences`)}async setPreferences(e){return await this.patchJson(`${m}/preferences`,e)}async getProjectPreferences(){return await this.getJson(`${m}/project-preferences`)}async setProjectPreferences(e){return await this.patchJson(`${m}/project-preferences`,e)}async getProjectIgnore(){return await this.getJson(`${m}/project-ignore`)}async setProjectIgnore(e){return await this.patchJson(`${m}/project-ignore`,e)}async getActiveProvider(){return await this.getJson(`${m}/active-provider`)}async setActiveProvider(e){return await this.patchJson(`${m}/active-provider`,{activeProvider:e})}async setFavorite(e){let i=me(e);try{await X(this.http.put(`${m}/favorites/${i}`,null))}catch(r){throw this.translateError(r)}}async unsetFavorite(e){let i=me(e);try{await X(this.http.delete(`${m}/favorites/${i}`))}catch(r){throw this.translateError(r)}}async bumpSidecar(e,i={}){let r={nodePath:e};return i.force!==void 0&&(r.force=i.force),i.confirm!==void 0&&(r.confirm=i.confirm),this.patchJson(`${m}/sidecar/bump`,r,"POST")}async getUpdateStatus(){return this.getJson(`${m}/update-status`)}async getRegisteredAnnotations(){return(await this.getJson(`${m}/annotations/registered`)).items}ingestRegistry(e){e&&this.kindRegistry.ingest(e)}ingestProviderRegistry(e){e&&this.providerRegistry.ingest(e)}ingestContributionsRegistry(e){this.contributionsRegistry.setRegistry(e)}async lookupContribution(e,i,r){let o=new URLSearchParams({path:r});try{return(await this.getJson(`${m}/contributions/${encodeURIComponent(e)}/${encodeURIComponent(i)}?${o.toString()}`)).items[0]??null}catch{return null}}events(){return this.ws.events$}async getJson(e){try{return await X(this.http.get(e))}catch(i){throw this.translateError(i)}}async patchJson(e,i,r="PATCH"){try{let o=r==="POST"?this.http.post(e,i):this.http.patch(e,i);return await X(o)}catch(o){throw this.translateError(o)}}translateError(e){if(e instanceof h)return e;if(e instanceof Ie){let r=$t(e.error);return r?new h(r.error.code,r.error.message,r.error.details):new h("internal",e.message||D.errors.malformedResponse)}let i=e instanceof Error?e.message:String(e);return new h("internal",i)}static \u0275fac=function(i){return new(i||t)(H(Q),H(F),H(U),H(ce),H(B))};static \u0275prov=E({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function At(t){let n=new URLSearchParams;t.kind&&t.kind.length>0&&n.set("kind",t.kind.join(",")),t.hasIssues!==void 0&&n.set("hasIssues",String(t.hasIssues)),t.path&&n.set("path",t.path),t.limit!==void 0&&n.set("limit",String(t.limit)),t.offset!==void 0&&n.set("offset",String(t.offset));let e=n.toString();return e?`?${e}`:""}function Dt(t){let n=new URLSearchParams;t.kind&&t.kind.length>0&&n.set("kind",t.kind.join(",")),t.from&&n.set("from",t.from),t.to&&n.set("to",t.to);let e=n.toString();return e?`?${e}`:""}function Lt(t){let n=new URLSearchParams;t.severity&&n.set("severity",t.severity),t.analyzerId&&n.set("analyzerId",t.analyzerId),t.node&&n.set("node",t.node),t.nodes&&t.nodes.length>0&&n.set("nodes",t.nodes.join(","));let e=n.toString();return e?`?${e}`:""}function $t(t){if(typeof t!="object"||t===null)return null;let n=t;if(n.ok!==!1)return null;let e=n.error;if(typeof e!="object"||e===null)return null;let i=e;return typeof i.code!="string"||typeof i.message!="string"?null:{ok:!1,error:{code:i.code,message:i.message,details:i.details}}}var Nt="data.json",zt="data.meta.json",ge=class{fetchImpl;metaPromise=null;dataPromise=null;kindRegistry;providerRegistry;constructor(n=globalThis.fetch.bind(globalThis),e,i){this.fetchImpl=n,this.kindRegistry=e??s(U),this.providerRegistry=i??s(B)}async health(){return(await this.loadMeta()).health}async loadScan(){let[n,e]=await Promise.all([this.loadData(),this.loadMeta()]);return this.kindRegistry.ingest(e.nodes.kindRegistry),this.providerRegistry.ingest(e.nodes.providerRegistry),n}async listNodes(n={}){let e=await this.loadMeta();if(Ft(n))return this.kindRegistry.ingest(e.nodes.kindRegistry),this.providerRegistry.ingest(e.nodes.providerRegistry),e.nodes;let i=await this.loadData(),r=i.issues,o=i.nodes;if(n.kind&&n.kind.length>0){let V=new Set(n.kind);o=o.filter(J=>V.has(J.kind))}if(n.path){let V=Bt(n.path);o=o.filter(J=>V.test(J.path))}if(n.hasIssues===!0){let V=lt(r);o=o.filter(J=>V.has(J.path))}else if(n.hasIssues===!1){let V=lt(r);o=o.filter(J=>!V.has(J.path))}let l=o.length,u=n.offset??0,M=n.limit??1e3,y=o.slice(u,u+M);return this.kindRegistry.ingest(e.nodes.kindRegistry),this.providerRegistry.ingest(e.nodes.providerRegistry),{schemaVersion:"1",kind:"nodes",items:y,filters:{kind:n.kind??null,hasIssues:n.hasIssues??null,path:n.path?[n.path]:null},counts:{total:l,returned:y.length,page:{offset:u,limit:M}},kindRegistry:e.nodes.kindRegistry,providerRegistry:e.nodes.providerRegistry}}async getNode(n,e={}){let[i,r]=await Promise.all([this.loadData(),this.loadMeta()]),o=i.nodes.find(y=>y.path===n);if(!o)return null;let l=i.links.filter(y=>y.target===n),u=i.links.filter(y=>y.source===n),M=i.issues.filter(y=>y.nodeIds.includes(n));return this.kindRegistry.ingest(r.nodes.kindRegistry),this.providerRegistry.ingest(r.nodes.providerRegistry),{schemaVersion:"1",kind:"node",item:o,links:{incoming:l,outgoing:u},issues:M,kindRegistry:r.nodes.kindRegistry,providerRegistry:r.nodes.providerRegistry}}async listLinks(n={}){let e=await this.loadMeta();if(jt(n))return this.kindRegistry.ingest(e.links.kindRegistry),this.providerRegistry.ingest(e.links.providerRegistry),e.links;let r=(await this.loadData()).links;if(n.kind&&n.kind.length>0){let o=new Set(n.kind);r=r.filter(l=>o.has(l.kind))}return n.from&&(r=r.filter(o=>o.source===n.from)),n.to&&(r=r.filter(o=>o.target===n.to)),this.kindRegistry.ingest(e.links.kindRegistry),this.providerRegistry.ingest(e.links.providerRegistry),{schemaVersion:"1",kind:"links",items:r,filters:{kind:n.kind??null,from:n.from??null,to:n.to??null},counts:{total:r.length,returned:r.length},kindRegistry:e.links.kindRegistry,providerRegistry:e.links.providerRegistry}}async listIssues(n={}){let e=await this.loadMeta();if(Ut(n))return this.kindRegistry.ingest(e.issues.kindRegistry),this.providerRegistry.ingest(e.issues.providerRegistry),e.issues;let r=(await this.loadData()).issues;if(n.severity&&(r=r.filter(o=>o.severity===n.severity)),n.analyzerId&&(r=r.filter(o=>o.analyzerId===n.analyzerId)),n.node&&(r=r.filter(o=>o.nodeIds.includes(n.node))),n.nodes&&n.nodes.length>0){let o=new Set(n.nodes);r=r.filter(l=>l.nodeIds.some(u=>o.has(u)))}return this.kindRegistry.ingest(e.issues.kindRegistry),this.providerRegistry.ingest(e.issues.providerRegistry),{schemaVersion:"1",kind:"issues",items:r,filters:{severity:n.severity??null,analyzerId:n.analyzerId??null,node:n.node??null,nodes:n.nodes&&n.nodes.length>0?[...n.nodes]:null},counts:{total:r.length,returned:r.length},kindRegistry:e.issues.kindRegistry,providerRegistry:e.issues.providerRegistry}}async loadGraph(n="ascii"){if(n!=="ascii")throw new h("bad-query",D.errors.graphFormatNotInDemo(n));return(await this.loadMeta()).graph.ascii}async loadConfig(){let n=await this.loadMeta();return this.kindRegistry.ingest(n.config.kindRegistry),this.providerRegistry.ingest(n.config.providerRegistry),n.config.value}async listPlugins(){let n=await this.loadMeta();return this.kindRegistry.ingest(n.plugins.kindRegistry),this.providerRegistry.ingest(n.plugins.providerRegistry),n.plugins}async setFavorite(n){throw new h("demo-readonly","Favorites are not available in demo mode (static bundle is immutable).")}async unsetFavorite(n){throw new h("demo-readonly","Favorites are not available in demo mode (static bundle is immutable).")}async setPluginEnabled(n,e){throw new h("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async setPluginExtensionEnabled(n,e,i){throw new h("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async applyPluginChanges(n){throw new h("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async runScan(){throw new h("demo-readonly","Manual scan is not available in demo mode (static bundle is immutable).")}async getPreferences(){return{updateCheck:{enabled:!0},telemetry:{errorsEnabled:!1,usageCliEnabled:!1,usageUiEnabled:!1,anonymousId:null,environment:"prod"}}}async setPreferences(n){throw new h("demo-readonly","Preference toggles are not available in demo mode (static bundle is immutable).")}async getProjectPreferences(){return{scan:{referencePaths:[]}}}async setProjectPreferences(n){throw new h("demo-readonly","Project preferences are not available in demo mode (static bundle is immutable).")}async getProjectIgnore(){return{patterns:[]}}async setProjectIgnore(n){throw new h("demo-readonly","Ignore patterns are not available in demo mode (static bundle is immutable).")}async getActiveProvider(){return{activeProvider:null,detected:[],source:"none"}}async setActiveProvider(n){throw new h("demo-readonly","Active provider lens is not available in demo mode (static bundle is immutable).")}async lookupContribution(){return null}async bumpSidecar(n,e={}){throw new h("demo-readonly","Sidecar bump is not available in demo mode (static bundle is immutable).")}async getUpdateStatus(){return{current:(await this.loadMeta()).health.implVersion,latest:null,isOutdated:!1,checkedAt:null,shownAt:null}}async getRegisteredAnnotations(){return[]}events(){return ye}loadMeta(){return this.metaPromise||(this.metaPromise=this.fetchJson(zt)),this.metaPromise}loadData(){return this.dataPromise||(this.dataPromise=this.fetchJson(Nt)),this.dataPromise}async fetchJson(n){let e;try{e=await this.fetchImpl(n)}catch(i){let r=i instanceof Error?i.message:String(i);throw new h("internal",D.errors.demoFetchFailed(n,r))}if(!e.ok)throw new h("internal",D.errors.demoFetchFailed(n,`HTTP ${e.status}`));try{return await e.json()}catch(i){let r=i instanceof Error?i.message:String(i);throw new h("internal",D.errors.demoParseFailed(n,r))}}};function Ft(t){return!(t.kind&&t.kind.length>0||t.hasIssues!==void 0||t.path||t.offset!==void 0&&t.offset!==0||t.limit!==void 0)}function jt(t){return!(t.kind&&t.kind.length>0||t.from||t.to)}function Ut(t){return!(t.severity||t.analyzerId||t.node||t.nodes&&t.nodes.length>0)}function lt(t){let n=new Set;for(let e of t)for(let i of e.nodeIds)n.add(i);return n}function Bt(t){let e=t.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${e}$`)}function dt(){let t=s(z);if(t==="live")return new at(s(Q),s(F));if(t==="demo")return new ge;let n=t;throw new Error(D.errors.unknownMode(String(n)))}var ct="search",pt="kinds",mt="linkKinds",gt="favoritesOnly",ut="severities",Vt=["error","warn"],ht=(()=>{class t{filters=s(We);router=s(Fe);activatedRoute=s(Ne);kindRegistry=s(U);destroyRef=s(Ce);suppressUrlReadback=!1;constructor(){this.applyUrlToFilters(this.currentParams()),this.router.events.pipe(Qe(this.destroyRef)).subscribe(e=>{if(e instanceof $e){if(this.suppressUrlReadback)return;this.applyUrlToFilters(this.currentParams())}}),te(()=>{let e=this.computeQueryParams();this.writeQueryParams(e)})}currentParams(){let e=this.router.parseUrl(this.router.url),i=new URLSearchParams;for(let[r,o]of Object.entries(e.queryParams))Array.isArray(o)?i.set(r,o.join(",")):o!=null&&i.set(r,String(o));return this.activatedRoute,i}applyUrlToFilters(e){let i=e.get(ct)??"";i!==this.filters.searchText()&&this.filters.setSearchText(i);let r=Jt(e.get(pt),this.kindRegistry.kinds().map(y=>y.name));ve(r,this.filters.selectedKinds())||this.filters.setKinds(r);let o=e.get(gt)==="true";o!==this.filters.favoritesOnly()&&this.filters.setFavoritesOnly(o);let l=Kt(e.get(mt));ve(l,this.filters.selectedLinkKinds())||this.filters.setLinkKinds(l);let u=Xt(e.get(ut)),M=[];this.filters.severityErrorActive()&&M.push("error"),this.filters.severityWarnActive()&&M.push("warn"),ve(u,M)||this.filters.setSeverityFilters(u)}computeQueryParams(){let e=this.filters.searchText().trim(),i=this.filters.selectedKinds(),r=this.filters.selectedLinkKinds(),o=this.filters.favoritesOnly(),l=[];return this.filters.severityErrorActive()&&l.push("error"),this.filters.severityWarnActive()&&l.push("warn"),{[ct]:e.length>0?e:null,[pt]:i.length>0?i.join(","):null,[mt]:r.length>0?r.join(","):null,[gt]:o?"true":null,[ut]:l.length>0?l.join(","):null}}writeQueryParams(e){let i=this.currentParams(),r=new Map(Object.entries(e)),o=!1;for(let[l,u]of r)if((i.get(l)??null)!==u){o=!0;break}o&&(this.suppressUrlReadback=!0,this.router.navigate([],{relativeTo:this.activatedRoute,queryParams:e,queryParamsHandling:"merge",replaceUrl:!0}).finally(()=>{setTimeout(()=>{this.suppressUrlReadback=!1},0)}))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=E({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Jt(t,n){if(!t)return[];let e=new Set(n);return t.split(",").map(i=>i.trim()).filter(i=>e.has(i))}function Kt(t){if(!t)return[];let n=new Set(He);return t.split(",").map(e=>e.trim()).filter(e=>n.has(e))}function Xt(t){if(!t)return[];let n=new Set(Vt);return t.split(",").map(e=>e.trim()).filter(e=>n.has(e))}function ve(t,n){if(t.length!==n.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!==n[e])return!1;return!0}var ft={healthFailed:t=>`ProjectInfoService: /api/health probe failed (${t})`};var Y=(()=>{class t{dataSource=s(q);status=$(null);cwd=c(()=>this.status()?.cwd??null);implVersion=c(()=>this.status()?.implVersion??null);dev=c(()=>this.status()?.dev===!0);activeProviderState=$(null);activeProvider=c(()=>this.activeProviderState());async load(){try{let e=await this.dataSource.health();this.status.set(e)}catch(e){let i=e instanceof Error?e.message:String(e);console.warn(ft.healthFailed(i))}await this.reloadActiveProvider()}async reloadActiveProvider(){try{let e=await this.dataSource.getActiveProvider();this.activeProviderState.set(e.activeProvider)}catch{}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=E({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var bt=(()=>{class t extends oe{title=s(Le);projectInfo=s(Y);constructor(){super(),te(()=>{let e=vt(this.projectInfo.cwd()),i=this.projectInfo.implVersion();this.title.setTitle(A.documentTitle(e,i))})}updateTitle(e){let i=vt(this.projectInfo.cwd()),r=this.projectInfo.implVersion();this.title.setTitle(A.documentTitle(i,r))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=E({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function vt(t){if(!t)return null;let n=t.replace(/[\\/]+$/,"");if(!n||n===".")return null;let e=Math.max(n.lastIndexOf("/"),n.lastIndexOf("\\"));return(e>=0?n.slice(e+1):n)||null}var be=!1,_e=null;async function _t(t){if(be||he===""||!t.consentEnabled)return;let n=await import("./chunk-BV323KTK.js");n.init({dsn:he,release:t.release??void 0,environment:t.environment,integrations:e=>e.filter(i=>i.name!=="BrowserSession"),tracesSampleRate:0,sendDefaultPii:!1,allowUrls:[/^https?:\/\/(localhost|127\.0\.0\.1)(:\d+)?\//],beforeSend:e=>qe(e)}),_e=n,be=!0}function yt(t){!be||_e===null||_e.captureException(t)}var Ct=(()=>{class t{handleError(e){console.error(e),yt(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=E({token:t,factory:t.\u0275fac})}return t})();function Ht(...t){for(let n of t)Promise.resolve(n.load())}var kt={providers:[xe(),{provide:ke,useClass:Ct},je(st,Ue()),{provide:oe,useClass:bt},Ae(De()),Ve({}),G(async()=>{let t=s(Be),[{default:n},{definePreset:e}]=await Promise.all([import("./chunk-43S72FTV.js"),import("./chunk-5ITZXW3A.js")]),i=e(n,{semantic:{primary:{50:"#F5F3FF",100:"#EDE9FE",200:"#DDD6FE",300:"#C4B5FD",400:"#A78BFA",500:"#8B5CF6",600:"#7C3AED",700:"#6D28D9",800:"#4C1D95",900:"#2E1065",950:"#1E0A4D"}}});t.setThemeConfig({theme:{preset:i,options:{darkModeSelector:".app-dark"}}})}),{provide:z,useFactory:Ye},{provide:q,useFactory:dt},G(async()=>{let t=s(q),n=s(ee);try{let[e,i]=await Promise.all([t.getPreferences(),t.health()]);await Promise.all([_t({consentEnabled:e.telemetry.errorsEnabled,release:i.implVersion?`skill-map-cli@${i.implVersion}`:null,environment:e.telemetry.environment}),et({consentEnabled:e.telemetry.usageUiEnabled,distinctId:e.telemetry.anonymousId})]),tt({environment:e.telemetry.environment}),n.syncTheme()}catch{}}),G(()=>{Ht(s(j),s(pe),s(Y))}),G(()=>{s(ht),s(Ge),s(ee)})]};var K={toggleToAuto:"Switch to auto theme (follow system)",toggleToLight:"Switch to light theme",toggleToDark:"Switch to dark theme",currentAuto:"Auto theme (follows system)",currentLight:"Light theme",currentDark:"Dark theme"};var xt={body:"You are viewing a static demo of skill-map's UI. Install it:",installCommand:"npm i -g @skill-map/cli",homeCta:"\u2190 Back to skill-map.ai",homeHref:"/",dismissAria:"Dismiss demo banner"};function Qt(t,n){if(t&1){let e=O();d(0,"div",0),x(1,"span",1),d(2,"p",2),g(3),d(4,"code",3),g(5),p()(),d(6,"a",4),g(7),p(),d(8,"p-button",5),S("onClick",function(){T(e);let r=f();return R(r.dismiss())}),p()()}if(t&2){let e=f();a(3),P(" ",e.texts.body," "),a(2),_(e.texts.installCommand),a(),b("href",e.texts.homeHref,ne),a(),_(e.texts.homeCta),a(),b("ariaLabel",e.texts.dismissAria)("text",!0)("rounded",!0)}}var Pt="sm.demoBannerDismissed",wt=(()=>{class t{mode=s(z);texts=xt;dismissed=$(this.readDismissed());visible=c(()=>this.mode==="demo"&&!this.dismissed());dismiss(){this.dismissed.set(!0);try{globalThis.localStorage?.setItem(Pt,"1")}catch{}}readDismissed(){if(this.mode!=="demo")return!0;try{return globalThis.localStorage?.getItem(Pt)==="1"}catch{return!1}}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=I({type:t,selectors:[["sm-demo-banner"]],decls:1,vars:1,consts:[["role","status","data-testid","demo-banner",1,"demo-banner"],["aria-hidden","true",1,"demo-banner__icon","fa-solid","fa-circle-info"],[1,"demo-banner__body"],["data-testid","demo-banner-install",1,"demo-banner__cmd"],["data-testid","demo-banner-home",1,"demo-banner__home",3,"href"],["icon","fa-solid fa-xmark","severity","secondary","size","small","data-testid","demo-banner-dismiss",3,"onClick","ariaLabel","text","rounded"]],template:function(i,r){i&1&&C(0,Qt,9,7,"div",0),i&2&&k(r.visible()?0:-1)},dependencies:[de,le],styles:["[_nghost-%COMP%]{display:block}.demo-banner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;border-bottom:1px solid var(--p-content-border-color);background:var(--p-highlight-background);color:var(--p-text-color);font-size:.875rem}.demo-banner__icon[_ngcontent-%COMP%]{font-size:1.1rem;color:var(--p-primary-color)}.demo-banner__body[_ngcontent-%COMP%]{flex:1 1 auto;margin:0;line-height:1.4}.demo-banner__cmd[_ngcontent-%COMP%]{font-family:var(--sm-font-mono);background:var(--p-content-background);border:1px solid var(--p-content-border-color);border-radius:var(--sm-radius-md);padding:.05rem .4rem;font-size:.85em;margin-left:.25rem}.demo-banner__home[_ngcontent-%COMP%]{color:var(--p-primary-color);font-weight:500;text-decoration:none;white-space:nowrap}.demo-banner__home[_ngcontent-%COMP%]:hover, .demo-banner__home[_ngcontent-%COMP%]:focus-visible{text-decoration:underline}"],changeDetection:0})}return t})();var St={bodyAtLimit:(t,n)=>`Your graph has ${t} ${t===1?"node":"nodes"}, at the recommended limit of ${n}. Past this point the map gets hard to read and analyzer signal degrades.`,bodyOverLimit:(t,n,e)=>`Your graph has ${t} nodes, over the recommended limit of ${n} (currently allowed via --max-nodes ${e}). Past this point the map gets hard to read and analyzer signal degrades.`,bodyCapped:(t,n,e)=>`Scan capped at ${n} ${n===1?"node":"nodes"} (${e==="override"?"--max-nodes":"scan.maxNodes"}). The walker stopped at ${t} ${t===1?"file":"files"}, additional files were dropped. The map and analyzers only see what made it through.`,cta:"Edit .skillmapignore",ctaAria:"Open Settings to edit ignored patterns"};function Yt(t,n){if(t&1){let e=O();N(0,"div",0),Z(1,"span",1),N(2,"p",2),g(3),W(),N(4,"button",3),ie("click",function(){T(e);let r=f();return R(r.onCta())}),g(5),W()()}if(t&2){let e=f();v("data-mode",e.state().mode),a(3),P(" ",e.state().body," "),a(),v("aria-label",e.texts.ctaAria),a(),P(" ",e.texts.cta," ")}}var Mt=(()=>{class t{loader=s(j);texts=St;openSettings=re();state=c(()=>{let e=this.loader.scan();if(!e)return{mode:"hidden",body:""};let i=e.recommendedNodeLimit;if(i===void 0)return{mode:"hidden",body:""};let r=e.overrideMaxNodes??null,o=r??i,l=e.stats.filesWalked,u=e.stats.nodesCount;return l>o?{mode:"capped",body:this.texts.bodyCapped(l,o,r!==null?"override":"setting")}:u<i?{mode:"hidden",body:""}:r!==null&&u>i?{mode:"overLimit",body:this.texts.bodyOverLimit(u,i,r)}:{mode:"atLimit",body:this.texts.bodyAtLimit(u,i)}});visible=c(()=>this.state().mode!=="hidden");onCta(){this.openSettings.emit()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=I({type:t,selectors:[["sm-oversized-banner"]],outputs:{openSettings:"openSettings"},decls:1,vars:1,consts:[["role","status","data-testid","oversized-banner",1,"oversized-banner"],["aria-hidden","true",1,"oversized-banner__icon","fa-solid","fa-triangle-exclamation"],["data-testid","oversized-banner-body",1,"oversized-banner__body"],["type","button","data-testid","oversized-banner-cta",1,"oversized-banner__cta",3,"click"]],template:function(i,r){i&1&&C(0,Yt,6,4,"div",0),i&2&&k(r.visible()?0:-1)},styles:["[_nghost-%COMP%]{display:block}.oversized-banner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;border-bottom:1px solid var(--p-content-border-color);font-size:.875rem}.oversized-banner[data-mode=capped][_ngcontent-%COMP%]{background:var(--sm-severity-error-bg);color:var(--sm-severity-error)}.oversized-banner[data-mode=overLimit][_ngcontent-%COMP%], .oversized-banner[data-mode=atLimit][_ngcontent-%COMP%]{background:var(--sm-severity-warn-bg);color:var(--sm-severity-warn)}.oversized-banner__icon[_ngcontent-%COMP%]{font-size:1.1rem}.oversized-banner[data-mode=capped][_ngcontent-%COMP%] .oversized-banner__icon[_ngcontent-%COMP%]{color:var(--sm-severity-error)}.oversized-banner[data-mode=overLimit][_ngcontent-%COMP%] .oversized-banner__icon[_ngcontent-%COMP%], .oversized-banner[data-mode=atLimit][_ngcontent-%COMP%] .oversized-banner__icon[_ngcontent-%COMP%]{color:var(--sm-severity-warn)}.oversized-banner__body[_ngcontent-%COMP%]{flex:1 1 auto;margin:0;line-height:1.4}.oversized-banner__cta[_ngcontent-%COMP%]{flex:0 0 auto;background:transparent;color:inherit;border:1px solid currentColor;padding:.25rem .75rem;border-radius:var(--p-border-radius);font:inherit;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .15s ease}.oversized-banner__cta[_ngcontent-%COMP%]:hover, .oversized-banner__cta[_ngcontent-%COMP%]:focus-visible{background:color-mix(in srgb,currentColor 12%,transparent)}.oversized-banner__cta[_ngcontent-%COMP%]:focus-visible{outline:2px solid currentColor;outline-offset:2px}"],changeDetection:0})}return t})();var Tt={headline:t=>`${t} ${t===1?"file":"files"} skipped, ${t===1?"it exceeds":"they exceed"} the max file size.`,more:"...",seeConsole:"See the full list in the console.",cta:"Open Project settings",ctaAria:"Open Settings to adjust the max file size or ignore patterns"};function Zt(t,n){if(t&1&&(d(0,"span",4),g(1),p()),t&2){let e=f(2);b("pTooltip",e.state().tooltip),a(),_(e.texts.more)}}function qt(t,n){if(t&1){let e=O();d(0,"div",0),x(1,"span",1),d(2,"p",2),g(3),d(4,"span",3),g(5),p(),C(6,Zt,2,2,"span",4),p(),d(7,"button",5),S("click",function(){T(e);let r=f();return R(r.onCta())}),g(8),p()()}if(t&2){let e=f();a(3),P(" ",e.texts.headline(e.state().count)," "),a(2),P(" ",e.state().first," "),a(),k(e.state().hasMore?6:-1),a(),v("aria-label",e.texts.ctaAria),a(),P(" ",e.texts.cta," ")}}var en=5,Rt=(()=>{class t{loader=s(j);texts=Tt;openSettings=re();state=c(()=>{let e=this.loader.scan(),i=e?.oversizedFiles??[],r=e?.stats?.filesOversized??i.length;if(r<=0)return{visible:!1,count:0,first:"",hasMore:!1,tooltip:""};let o=i[0]?this.describe(i[0]):"",l=r>1,u="";if(l){let M=i.slice(1);r-1>en?u=this.texts.seeConsole:u=M.map(y=>this.describe(y)).join(`
4
- `)}return{visible:!0,count:r,first:o,hasMore:l,tooltip:u}});visible=c(()=>this.state().visible);describe(e){return`${e.path.split("/").pop()??e.path} (${Xe(e.bytes)})`}onCta(){this.openSettings.emit()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=I({type:t,selectors:[["sm-skipped-files-banner"]],outputs:{openSettings:"openSettings"},decls:1,vars:1,consts:[["role","status","data-testid","skipped-files-banner",1,"skipped-files-banner"],["aria-hidden","true",1,"skipped-files-banner__icon","fa-solid","fa-triangle-exclamation"],["data-testid","skipped-files-banner-body",1,"skipped-files-banner__body"],["data-testid","skipped-files-banner-first",1,"skipped-files-banner__first"],["data-testid","skipped-files-banner-more",1,"skipped-files-banner__more",3,"pTooltip"],["type","button","data-testid","skipped-files-banner-cta",1,"skipped-files-banner__cta",3,"click"]],template:function(i,r){i&1&&C(0,qt,9,5,"div",0),i&2&&k(r.visible()?0:-1)},dependencies:[ae,se],styles:["[_nghost-%COMP%]{display:block}.skipped-files-banner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;border-bottom:1px solid var(--p-content-border-color);font-size:.875rem;background:var(--sm-severity-warn-bg);color:var(--sm-severity-warn)}.skipped-files-banner__icon[_ngcontent-%COMP%]{font-size:1.1rem;color:var(--sm-severity-warn)}.skipped-files-banner__body[_ngcontent-%COMP%]{flex:1 1 auto;margin:0;line-height:1.4}.skipped-files-banner__first[_ngcontent-%COMP%]{font-weight:600}.skipped-files-banner__more[_ngcontent-%COMP%]{font-weight:600;cursor:help}.skipped-files-banner__cta[_ngcontent-%COMP%]{flex:0 0 auto;background:transparent;color:inherit;border:1px solid currentColor;padding:.25rem .75rem;border-radius:var(--p-border-radius);font:inherit;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .15s ease}.skipped-files-banner__cta[_ngcontent-%COMP%]:hover, .skipped-files-banner__cta[_ngcontent-%COMP%]:focus-visible{background:color-mix(in srgb,currentColor 12%,transparent)}.skipped-files-banner__cta[_ngcontent-%COMP%]:focus-visible{outline:2px solid currentColor;outline-offset:2px}"],changeDetection:0})}return t})();var Ot={body:"Connection to the server was lost. Live updates are paused.",reconnectCta:"Reconnect",reconnectAria:"Retry the connection to the server"};function tn(t,n){if(t&1){let e=O();N(0,"div",0),Z(1,"span",1),N(2,"p",2),g(3),W(),N(4,"button",3),ie("click",function(){T(e);let r=f();return R(r.reconnect())}),Z(5,"span",4),g(6),W()()}if(t&2){let e=f();a(3),_(e.texts.body),a(),v("aria-label",e.texts.reconnectAria),a(2),P(" ",e.texts.reconnectCta," ")}}var Et=(()=>{class t{mode=s(z);ws=s(F);texts=Ot;visible=c(()=>this.mode==="live"&&this.ws.connectionState()==="lost");reconnect(){this.ws.reconnect()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=I({type:t,selectors:[["sm-connection-banner"]],decls:1,vars:1,consts:[["role","alert","data-testid","connection-banner",1,"connection-banner"],["aria-hidden","true",1,"connection-banner__icon","fa-solid","fa-plug-circle-xmark"],[1,"connection-banner__body"],["type","button","data-testid","connection-banner-reconnect",1,"connection-banner__cta",3,"click"],["aria-hidden","true",1,"fa-solid","fa-rotate-right"]],template:function(i,r){i&1&&C(0,tn,7,3,"div",0),i&2&&k(r.visible()?0:-1)},styles:["[_nghost-%COMP%]{display:block}.connection-banner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;border-bottom:1px solid var(--p-content-border-color);background:var(--sm-severity-error-bg);color:var(--sm-severity-error);font-size:.875rem}.connection-banner__icon[_ngcontent-%COMP%]{font-size:1.1rem;color:var(--sm-severity-error)}.connection-banner__body[_ngcontent-%COMP%]{flex:1 1 auto;margin:0;line-height:1.4}.connection-banner__cta[_ngcontent-%COMP%]{flex:0 0 auto;display:inline-flex;align-items:center;gap:.4rem;background:transparent;color:inherit;border:1px solid currentColor;padding:.25rem .75rem;border-radius:var(--p-border-radius);font:inherit;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .15s ease}.connection-banner__cta[_ngcontent-%COMP%]:hover, .connection-banner__cta[_ngcontent-%COMP%]:focus-visible{background:color-mix(in srgb,currentColor 12%,transparent)}.connection-banner__cta[_ngcontent-%COMP%]:focus-visible{outline:2px solid currentColor;outline-offset:2px}"],changeDetection:0})}return t})();var nn=()=>[import("./chunk-76APRPAZ.js").then(t=>t.SettingsModal)];function rn(t,n){if(t&1&&(d(0,"span",11),g(1),p()),t&2){let e=f();b("pTooltip",e.versionTooltip()),v("aria-label",e.texts.devChipA11y),a(),_(e.texts.devChip)}}function on(t,n){if(t&1&&(d(0,"span",12),g(1),p()),t&2){let e=f();b("pTooltip",e.versionTooltip()),v("aria-label",e.versionA11y()),a(),_(e.versionLabel())}}function sn(t,n){if(t&1&&(d(0,"span",24),g(1),p()),t&2){let e=n,i=f();Me("--provider-color",e.color)("--provider-color-dark",e.colorDark??e.color),b("pTooltip",i.texts.lensChipTooltip(e.label)),v("aria-label",i.texts.lensChipA11y(e.label)),a(),_(e.label)}}function an(t,n){if(t&1){let e=O();d(0,"button",25),S("click",function(){T(e);let r=f();return R(r.copyUpdateCommand())}),x(1,"i",26),d(2,"span"),g(3),p()(),d(4,"a",27),x(5,"i",28),p()}if(t&2){let e=f();b("pTooltip",e.updateChipTooltip()),v("aria-label",e.updateChipA11y()),a(),Te(e.updateChipIcon()),a(2),_(e.updateChipText()),a(),b("href",e.npmLinkUrl,ne)("pTooltip",e.npmLinkTooltip),v("aria-label",e.npmLinkA11y)}}function ln(t,n){if(t&1&&(d(0,"p",15)(1,"bdi",29),g(2),p()()),t&2){let e=n;v("title",e),a(2),_(e)}}function dn(t,n){if(t&1){let e=O();d(0,"sm-settings-modal",30),S("visibleChange",function(r){T(e);let o=f();return R(o.onSettingsVisibleChange(r))}),p()}if(t&2){let e=f();b("visible",e.settingsOpen())}}var It=(()=>{class t{loader=s(j);theme=s(nt);projectInfo=s(Y);providerRegistry=s(B);scanTrigger=s(ot);usageTracker=s(ee);updateCheck=s(pe);texts=A;settingsTexts=rt;settingsOpen=$(!1);openSettings(){this.settingsOpen.set(!0),this.usageTracker.trackFeature("settings")}onSettingsVisibleChange(e){this.settingsOpen.set(e),e||this.projectInfo.reloadActiveProvider()}scanning=this.scanTrigger.scanning;scanError=this.scanTrigger.scanError;triggerScan(){return this.scanTrigger.run()}updateChipCopied=$(!1);updateChipText=c(()=>this.updateChipCopied()?w.copiedLabel:w.available);updateChipIcon=c(()=>this.updateChipCopied()?"pi pi-check":"pi pi-download");updateChipTooltip=c(()=>this.updateChipCopied()?w.copiedTooltip:w.tooltip(this.updateCheck.latest()??""));updateChipA11y=c(()=>w.a11yLabel(this.updateCheck.latest()??""));npmLinkUrl=w.npmLinkUrl;npmLinkTooltip=w.npmLinkTooltip;npmLinkA11y=w.npmLinkA11y;async copyUpdateCommand(){try{await navigator.clipboard.writeText(w.copyCommand),this.updateChipCopied.set(!0),setTimeout(()=>this.updateChipCopied.set(!1),2e3)}catch{}}versionLabel=c(()=>w.versionLabel(this.updateCheck.current()??""));versionTooltip=c(()=>w.versionTooltip(this.updateCheck.current()??""));versionA11y=c(()=>w.versionA11yLabel(this.updateCheck.current()??""));isDevBuild=this.projectInfo.dev;lensChip=c(()=>this.providerRegistry.lensChip(this.projectInfo.activeProvider()));count=this.loader.count;linkAnalysis=c(()=>it(this.loader.nodes(),this.loader.scan()));linkCount=c(()=>this.linkAnalysis().raw);mapInfoTooltip=c(()=>A.badge.mapInfo(this.count(),this.linkAnalysis()));mapInfoA11y=c(()=>A.badge.mapInfoA11y(this.count(),this.linkAnalysis()));rootLabel=c(()=>{let e=this.projectInfo.cwd();if(e&&e!==".")return e;let i=this.loader.scan()?.roots??[];if(i.length===0)return"";let r=i[0].replace(/[\\/]+$/,"");return!r||r==="."?"":r});isDevMode=Re();themeMode=this.theme.mode;markSrc=c(()=>this.theme.extraTheme()==="matrix"?"skill-map-mark-matrix.svg":this.theme.resolved()==="dark"?"skill-map-mark-light.svg":"skill-map-mark-dark.svg");themeIcon=c(()=>{switch(this.themeMode()){case"auto":return"pi pi-desktop";case"light":return"pi pi-sun";case"dark":return"fa-regular fa-moon"}});themeLabel=c(()=>{switch(this.themeMode()){case"auto":return K.toggleToLight;case"light":return K.toggleToDark;case"dark":return K.toggleToAuto}});themeTooltip=c(()=>{switch(this.themeMode()){case"auto":return K.currentAuto;case"light":return K.currentLight;case"dark":return K.currentDark}});toggleTheme(){this.theme.toggle()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=I({type:t,selectors:[["sm-root"]],decls:39,vars:30,consts:[["role","alert","data-testid","viewport-warning",1,"viewport-warning"],[1,"viewport-warning__card"],["aria-hidden","true",1,"fa-solid","fa-desktop","viewport-warning__icon"],[1,"viewport-warning__title"],[1,"viewport-warning__subtitle"],[1,"viewport-warning__body"],["data-testid","shell",1,"shell"],[3,"openSettings"],["data-testid","shell-topbar",1,"shell__topbar"],[1,"shell__brand"],["width","32","height","32","priority","","alt","","aria-hidden","true",1,"shell__brand-mark",3,"ngSrc"],["tooltipPosition","bottom","data-testid","shell-dev",1,"shell__dev",3,"pTooltip"],["tooltipPosition","bottom","data-testid","shell-version",1,"shell__version",3,"pTooltip"],["tooltipPosition","bottom","data-testid","shell-lens",1,"shell__lens",3,"--provider-color","--provider-color-dark","pTooltip"],[1,"shell__alpha"],["data-testid","shell-root-label",1,"shell__tag"],["data-testid","shell-nav",1,"shell__nav"],["slot","topbar.nav.start",3,"node"],[1,"shell__actions"],["type","button","tooltipPosition","bottom","data-testid","shell-refresh",1,"shell__refresh",3,"click","pTooltip","disabled"],["aria-hidden","true",1,"pi","pi-sync"],["severity","secondary","size","small","data-testid","action-theme-toggle",3,"onClick","icon","ariaLabel","pTooltip","text","rounded"],["icon","pi pi-sliders-h","severity","secondary","size","small","data-testid","action-settings",3,"onClick","ariaLabel","pTooltip","text","rounded"],[1,"shell__main"],["tooltipPosition","bottom","data-testid","shell-lens",1,"shell__lens",3,"pTooltip"],["type","button","tooltipPosition","bottom","data-testid","shell-update-chip",1,"shell__update-chip",3,"click","pTooltip"],["aria-hidden","true"],["target","_blank","rel","noopener noreferrer","tooltipPosition","bottom","data-testid","shell-update-npm-link",1,"shell__update-npm-link",3,"href","pTooltip"],["aria-hidden","true",1,"pi","pi-external-link"],["dir","ltr"],[3,"visibleChange","visible"]],template:function(i,r){if(i&1&&(d(0,"div",0)(1,"div",1),x(2,"i",2),d(3,"h2",3),g(4),p(),d(5,"p",4),g(6),p(),d(7,"p",5),g(8),p()()(),d(9,"div",6),x(10,"sm-demo-banner"),d(11,"sm-oversized-banner",7),S("openSettings",function(){return r.openSettings()}),p(),d(12,"sm-skipped-files-banner",7),S("openSettings",function(){return r.openSettings()}),p(),x(13,"sm-connection-banner"),d(14,"header",8)(15,"div",9),x(16,"img",10),d(17,"div")(18,"h1"),g(19),C(20,rn,2,3,"span",11)(21,on,2,3,"span",12),C(22,sn,2,7,"span",13),d(23,"span",14),g(24),p(),C(25,an,6,8),p(),C(26,ln,3,2,"p",15),p()(),d(27,"nav",16),x(28,"sm-view-contributions-host",17),p(),d(29,"div",18)(30,"button",19),S("click",function(){return r.triggerScan()}),x(31,"i",20),p(),d(32,"p-button",21),S("onClick",function(){return r.toggleTheme()}),p(),d(33,"p-button",22),S("onClick",function(){return r.openSettings()}),p()()(),d(34,"main",23),x(35,"router-outlet"),p(),Pe(36,dn,1,1),we(37,36,nn),p()),i&2){let o,l,u;a(4),_(r.texts.viewportWarning.title),a(2),_(r.texts.viewportWarning.subtitle),a(2),_(r.texts.viewportWarning.body),a(8),b("ngSrc",r.markSrc()),a(3),P(" ",r.texts.brand," "),a(),k(r.isDevBuild()?20:(o=r.updateCheck.current())?21:-1,o),a(2),k((l=r.lensChip())?22:-1,l),a(),v("aria-label",r.texts.alpha),a(),_(r.texts.alpha),a(),k(r.updateCheck.isOutdated()&&!r.isDevMode?25:-1),a(),k((u=r.rootLabel())?26:-1,u),a(),v("aria-label",r.texts.a11y.viewSwitcher),a(),b("node",null),a(2),ue("is-spinning",r.scanning()),b("pTooltip",r.mapInfoTooltip())("disabled",r.scanning()),v("aria-label",r.mapInfoA11y()),a(),ue("pi-spin",r.scanning()),a(),b("icon",r.themeIcon())("ariaLabel",r.themeLabel())("pTooltip",r.themeTooltip())("text",!0)("rounded",!0),a(),b("ariaLabel",r.settingsTexts.a11y.triggerLabel)("pTooltip",r.settingsTexts.triggerTooltip)("text",!0)("rounded",!0),a(4),Se(r.settingsOpen())}},dependencies:[ze,de,le,Ke,ae,se,Je,Oe,wt,Mt,Rt,Et,Ze],styles:['[_nghost-%COMP%]{display:block;height:100dvh;--shell-topbar-bg: #FFFFFF;--shell-topbar-border: var(--sm-violet-100);--shell-topbar-text: var(--sm-violet-800);--shell-topbar-text-strong: var(--sm-violet-900);--shell-topbar-text-muted: var(--sm-violet-600);--shell-topbar-hover-bg: color-mix(in srgb, var(--sm-violet-500) 10%, transparent);--shell-topbar-active-bg: var(--sm-violet-100);--shell-topbar-active-text: var(--sm-violet-800);--shell-topbar-badge-bg: var(--sm-violet-100)}.app-dark[_nghost-%COMP%], .app-dark [_nghost-%COMP%]{--shell-topbar-bg: #1A1B22;--shell-topbar-border: color-mix(in srgb, var(--sm-violet-300) 8%, transparent);--shell-topbar-text: var(--sm-violet-100);--shell-topbar-text-strong: var(--sm-violet-100);--shell-topbar-text-muted: var(--sm-violet-300);--shell-topbar-hover-bg: color-mix(in srgb, var(--sm-violet-400) 12%, transparent);--shell-topbar-active-bg: color-mix(in srgb, var(--sm-violet-500) 22%, transparent);--shell-topbar-active-text: var(--sm-violet-100);--shell-topbar-badge-bg: color-mix(in srgb, var(--sm-violet-500) 14%, transparent)}.shell[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100dvh}.shell__topbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;background:color-mix(in srgb,var(--shell-topbar-bg) 85%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--shell-topbar-border);color:var(--shell-topbar-text)}.shell__brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem}.shell__brand-mark[_ngcontent-%COMP%]{width:2rem;height:2rem;display:block}.shell__brand[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{margin:0;font-size:1.05rem;font-weight:600;letter-spacing:-.01em;color:var(--shell-topbar-text-strong)}.shell__alpha[_ngcontent-%COMP%]{font-family:var(--sm-font-display-brand);font-weight:600;font-size:10px;line-height:1;letter-spacing:.06em;text-transform:uppercase;color:#ad322b;background:#ad322b14;border-radius:var(--sm-radius-sm);padding:4px 8px;margin-left:8px;-webkit-user-select:none;user-select:none;display:inline-block;vertical-align:middle;white-space:nowrap}.app-dark[_nghost-%COMP%] .shell__alpha[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__alpha[_ngcontent-%COMP%]{color:#e07570;background:#cf464024}.shell__version[_ngcontent-%COMP%]{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:var(--sm-radius-sm);font-family:var(--p-monospace-font-family);font-size:11px;line-height:1;font-weight:500;letter-spacing:.02em;color:var(--p-text-muted-color);background:var(--p-content-hover-background);vertical-align:middle;-webkit-user-select:text;user-select:text}.shell__dev[_ngcontent-%COMP%]{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:var(--sm-radius-sm);font-family:var(--sm-font-display-brand);font-size:10px;line-height:1;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8a5a00;background:#d69e2e29;vertical-align:middle;-webkit-user-select:none;user-select:none}.app-dark[_nghost-%COMP%] .shell__dev[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__dev[_ngcontent-%COMP%]{color:#fbd38d;background:#d69e2e38}.shell__lens[_ngcontent-%COMP%]{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:var(--sm-radius-sm);font-size:11px;line-height:1;font-weight:600;letter-spacing:.02em;color:var(--provider-color);background:color-mix(in srgb,var(--provider-color) 14%,transparent);vertical-align:middle;-webkit-user-select:none;user-select:none}.app-dark[_nghost-%COMP%] .shell__lens[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__lens[_ngcontent-%COMP%]{color:var(--provider-color-dark);background:color-mix(in srgb,var(--provider-color-dark) 24%,transparent)}.shell__update-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:3px 8px;font-family:inherit;font-size:11px;line-height:1;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--p-primary-color);background:var(--p-primary-50);border:1px solid var(--p-primary-200);border-radius:var(--sm-radius-pill);text-decoration:none;cursor:pointer;transition:background-color .12s ease,color .12s ease;vertical-align:middle}.shell__update-chip[_ngcontent-%COMP%]:hover, .shell__update-chip[_ngcontent-%COMP%]:focus-visible{background:var(--p-primary-100);color:var(--p-primary-700)}.shell__update-chip[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:12px;transform:translateY(1px)}.app-dark[_nghost-%COMP%] .shell__update-chip[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__update-chip[_ngcontent-%COMP%]{color:var(--p-primary-300);background:#ffffff0a;border-color:var(--p-primary-700)}.shell__update-npm-link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;margin-left:4px;padding:3px 4px;color:var(--p-primary-color);text-decoration:none;border-radius:var(--sm-radius-pill);transition:color .12s ease,background-color .12s ease;vertical-align:middle}.shell__update-npm-link[_ngcontent-%COMP%]:hover, .shell__update-npm-link[_ngcontent-%COMP%]:focus-visible{color:var(--p-primary-700);background:var(--p-primary-50)}.shell__update-npm-link[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:12px;transform:translateY(1px)}.app-dark[_nghost-%COMP%] .shell__update-npm-link[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__update-npm-link[_ngcontent-%COMP%]{color:var(--p-primary-300)}.app-dark[_nghost-%COMP%] .shell__update-npm-link[_ngcontent-%COMP%]:hover, .app-dark [_nghost-%COMP%] .shell__update-npm-link[_ngcontent-%COMP%]:hover, .app-dark[_nghost-%COMP%] .shell__update-npm-link[_ngcontent-%COMP%]:focus-visible, .app-dark [_nghost-%COMP%] .shell__update-npm-link[_ngcontent-%COMP%]:focus-visible{color:var(--p-primary-200);background:#ffffff0a}.shell__tag[_ngcontent-%COMP%]{margin:.35rem 0 0;font-size:.72rem;color:var(--shell-topbar-text-muted);letter-spacing:.02em;text-transform:uppercase;max-width:40rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl}.shell__nav[_ngcontent-%COMP%]{display:flex;gap:.25rem;margin-left:auto}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:.5rem .9rem;border-radius:.5rem;font-size:.9rem;font-weight:500;color:var(--shell-topbar-text-muted);transition:background .15s ease,color .15s ease}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong)}.shell__nav[_ngcontent-%COMP%] a.is-active[_ngcontent-%COMP%]{background:var(--shell-topbar-active-bg);color:var(--shell-topbar-active-text)}.shell__search[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem;position:relative}.shell__nav-search[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:none;border-radius:.5rem;background:transparent;color:var(--shell-topbar-text-muted);cursor:pointer;transition:background .15s ease,color .15s ease,opacity .15s ease}.shell__nav-search[_ngcontent-%COMP%]:hover{background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong)}.shell__search.is-open[_ngcontent-%COMP%] .shell__nav-search[_ngcontent-%COMP%]{color:var(--shell-topbar-text-strong)}.shell__nav-search[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:.95rem}.shell__search.has-query[_ngcontent-%COMP%]:not(.is-open) .shell__nav-search[_ngcontent-%COMP%]{position:relative;color:var(--shell-topbar-text-strong)}.shell__search.has-query[_ngcontent-%COMP%]:not(.is-open) .shell__nav-search[_ngcontent-%COMP%]:after{content:"";position:absolute;top:.45rem;right:.45rem;width:6px;height:6px;border-radius:50%;background:var(--p-primary-color)}.shell__search-input[_ngcontent-%COMP%]{width:240px;height:2.25rem}.shell__search-clear[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;padding:0;border:none;border-radius:50%;background:transparent;color:var(--shell-topbar-text-muted);cursor:pointer;line-height:1}.shell__search-clear[_ngcontent-%COMP%]:hover{background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong)}.shell__search-clear[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:.7rem}.shell__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;--p-button-text-secondary-color: var(--shell-topbar-text-muted);--p-button-text-secondary-hover-color: var(--shell-topbar-text-strong);--p-button-text-secondary-hover-background: var(--shell-topbar-hover-bg);--p-button-text-secondary-active-color: var(--shell-topbar-text-strong);--p-button-text-secondary-active-background: var(--shell-topbar-hover-bg)}.shell__refresh[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:var(--sm-radius-pill);background:transparent;color:var(--shell-topbar-text-muted);cursor:pointer;transition:background .15s ease,color .15s ease}.shell__refresh[_ngcontent-%COMP%]:hover:not(:disabled), .shell__refresh[_ngcontent-%COMP%]:focus-visible:not(:disabled){background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong);outline:none}.shell__refresh[_ngcontent-%COMP%]:disabled{cursor:progress;opacity:.7}.shell__refresh[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:1rem}.shell__main[_ngcontent-%COMP%]{flex:1;min-height:0;overflow-y:auto;width:100%}@media(max-width:1280px){.shell__topbar[_ngcontent-%COMP%]{gap:1rem;padding:.5rem 1rem}.shell__tag[_ngcontent-%COMP%]{max-width:26rem}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:.4rem .7rem;font-size:.85rem}}.viewport-warning[_ngcontent-%COMP%]{display:none}@media(max-width:767px){.viewport-warning[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--sm-bg-content)}.viewport-warning__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.85rem;max-width:22rem}.viewport-warning__icon[_ngcontent-%COMP%]{font-size:3rem;color:var(--p-primary-color);margin-bottom:.25rem}.viewport-warning__title[_ngcontent-%COMP%]{margin:0;font-size:1.35rem;font-weight:700;color:var(--p-text-color);line-height:1.25}.viewport-warning__subtitle[_ngcontent-%COMP%]{margin:0;font-size:1rem;font-weight:500;color:var(--p-primary-color);line-height:1.35}.viewport-warning__body[_ngcontent-%COMP%]{margin:0;color:var(--p-text-muted-color);line-height:1.5;font-size:.9rem}.shell[_ngcontent-%COMP%]{display:none}}'],changeDetection:0})}return t})();Ee(It,kt).catch(t=>console.error(t));
3
+ ${n.drawn.toLocaleString()} drawn (${i.join(", ")})`},mapInfoA11y:(t,n)=>`Map contains ${t} nodes and ${n.raw} links; ${n.drawn} drawn on the canvas`},a11y:{viewSwitcher:"View switcher"},viewportWarning:{title:"Looks like you're on a small screen",subtitle:"skill-map is built for desktop",body:"The map and inspector need room to breathe. Pop this open on a screen at least 768px wide. See you there."},documentTitle:(t,n)=>{let e=t?`${t} - ${fe}`:fe;return n?`${e} v${n}`:e}};var st=[{path:"",pathMatch:"full",loadComponent:()=>import("./chunk-OZTRR4M7.js").then(t=>t.WorkspaceView),title:A.brand},{path:"intentional-fail",loadComponent:()=>import("./chunk-WQMZOINB.js").then(t=>t.IntentionalFail)},{path:"**",redirectTo:""}];var D={errors:{unknownMode:t=>`SKILL_MAP_MODE: unknown value "${t}"`,restPrefix:t=>`BFF error [${t}]: `,malformedResponse:"BFF returned a malformed response",demoFetchFailed:(t,n)=>`Demo bundle fetch failed for "${t}": ${n}`,demoParseFailed:(t,n)=>`Demo bundle parse failed for "${t}": ${n}`,graphFormatNotInDemo:t=>`Graph format "${t}" is not bundled in demo mode (only "ascii").`}};function me(t){let n=new TextEncoder().encode(t),e="";for(let i=0;i<n.length;i++)e+=String.fromCharCode(n[i]);return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}var m="/api",at=(()=>{class t{http;ws;kindRegistry;providerRegistry;contributionsRegistry;constructor(e,i,r,o,l){this.http=e??s(Q),this.ws=i??s(F),this.kindRegistry=r??s(U),this.contributionsRegistry=o??s(ce),this.providerRegistry=l??s(B)}async health(){return this.getJson(`${m}/health`)}async loadScan(){let[e]=await Promise.all([this.getJson(`${m}/scan`),this.listNodes({limit:0}).catch(()=>null)]);return e}async runScan(){return this.patchJson(`${m}/scan`,{},"POST")}async listNodes(e={}){let i=At(e),r=await this.getJson(`${m}/nodes${i}`);return this.ingestRegistry(r.kindRegistry),this.ingestContributionsRegistry(r.contributionsRegistry),this.ingestProviderRegistry(r.providerRegistry),r}async getNode(e,i={}){let r=me(e),o=i.includeBody?"?include=body":"";try{let l=await this.getJson(`${m}/nodes/${r}${o}`);return this.ingestRegistry(l.kindRegistry),this.ingestContributionsRegistry(l.contributionsRegistry),this.ingestProviderRegistry(l.providerRegistry),l}catch(l){if(l instanceof h&&l.code==="not-found")return null;throw l}}async listLinks(e={}){let i=Dt(e),r=await this.getJson(`${m}/links${i}`);return this.ingestRegistry(r.kindRegistry),this.ingestContributionsRegistry(r.contributionsRegistry),this.ingestProviderRegistry(r.providerRegistry),r}async listIssues(e={}){let i=Lt(e),r=await this.getJson(`${m}/issues${i}`);return this.ingestRegistry(r.kindRegistry),this.ingestContributionsRegistry(r.contributionsRegistry),this.ingestProviderRegistry(r.providerRegistry),r}async loadGraph(e="ascii"){let i=`${m}/graph?format=${encodeURIComponent(e)}`;try{return await X(this.http.get(i,{responseType:"text"}))}catch(r){throw this.translateError(r)}}async loadConfig(){let e=await this.getJson(`${m}/config`);return this.ingestRegistry(e.kindRegistry),this.ingestContributionsRegistry(e.contributionsRegistry),this.ingestProviderRegistry(e.providerRegistry),e.value}async listPlugins(){let e=await this.getJson(`${m}/plugins`);return this.ingestRegistry(e.kindRegistry),this.ingestContributionsRegistry(e.contributionsRegistry),this.ingestProviderRegistry(e.providerRegistry),e}async setPluginEnabled(e,i){let r=await this.patchJson(`${m}/plugins/${encodeURIComponent(e)}`,{enabled:i});return this.ingestRegistry(r.kindRegistry),this.ingestContributionsRegistry(r.contributionsRegistry),this.ingestProviderRegistry(r.providerRegistry),r}async setPluginExtensionEnabled(e,i,r){let o=await this.patchJson(`${m}/plugins/${encodeURIComponent(e)}/extensions/${encodeURIComponent(i)}`,{enabled:r});return this.ingestRegistry(o.kindRegistry),this.ingestContributionsRegistry(o.contributionsRegistry),this.ingestProviderRegistry(o.providerRegistry),o}async applyPluginChanges(e){let i=await this.patchJson(`${m}/plugins`,{changes:e});return this.ingestRegistry(i.kindRegistry),this.ingestContributionsRegistry(i.contributionsRegistry),this.ingestProviderRegistry(i.providerRegistry),i}async getPreferences(){return await this.getJson(`${m}/preferences`)}async setPreferences(e){return await this.patchJson(`${m}/preferences`,e)}async getProjectPreferences(){return await this.getJson(`${m}/project-preferences`)}async setProjectPreferences(e){return await this.patchJson(`${m}/project-preferences`,e)}async getProjectIgnore(){return await this.getJson(`${m}/project-ignore`)}async setProjectIgnore(e){return await this.patchJson(`${m}/project-ignore`,e)}async getActiveProvider(){return await this.getJson(`${m}/active-provider`)}async setActiveProvider(e){return await this.patchJson(`${m}/active-provider`,{activeProvider:e})}async setFavorite(e){let i=me(e);try{await X(this.http.put(`${m}/favorites/${i}`,null))}catch(r){throw this.translateError(r)}}async unsetFavorite(e){let i=me(e);try{await X(this.http.delete(`${m}/favorites/${i}`))}catch(r){throw this.translateError(r)}}async bumpSidecar(e,i={}){let r={nodePath:e};return i.force!==void 0&&(r.force=i.force),i.confirm!==void 0&&(r.confirm=i.confirm),this.patchJson(`${m}/sidecar/bump`,r,"POST")}async getUpdateStatus(){return this.getJson(`${m}/update-status`)}async getRegisteredAnnotations(){return(await this.getJson(`${m}/annotations/registered`)).items}ingestRegistry(e){e&&this.kindRegistry.ingest(e)}ingestProviderRegistry(e){e&&this.providerRegistry.ingest(e)}ingestContributionsRegistry(e){this.contributionsRegistry.setRegistry(e)}async lookupContribution(e,i,r){let o=new URLSearchParams({path:r});try{return(await this.getJson(`${m}/contributions/${encodeURIComponent(e)}/${encodeURIComponent(i)}?${o.toString()}`)).items[0]??null}catch{return null}}events(){return this.ws.events$}async getJson(e){try{return await X(this.http.get(e))}catch(i){throw this.translateError(i)}}async patchJson(e,i,r="PATCH"){try{let o=r==="POST"?this.http.post(e,i):this.http.patch(e,i);return await X(o)}catch(o){throw this.translateError(o)}}translateError(e){if(e instanceof h)return e;if(e instanceof Ie){let r=$t(e.error);return r?new h(r.error.code,r.error.message,r.error.details):new h("internal",e.message||D.errors.malformedResponse)}let i=e instanceof Error?e.message:String(e);return new h("internal",i)}static \u0275fac=function(i){return new(i||t)(H(Q),H(F),H(U),H(ce),H(B))};static \u0275prov=E({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function At(t){let n=new URLSearchParams;t.kind&&t.kind.length>0&&n.set("kind",t.kind.join(",")),t.hasIssues!==void 0&&n.set("hasIssues",String(t.hasIssues)),t.path&&n.set("path",t.path),t.limit!==void 0&&n.set("limit",String(t.limit)),t.offset!==void 0&&n.set("offset",String(t.offset));let e=n.toString();return e?`?${e}`:""}function Dt(t){let n=new URLSearchParams;t.kind&&t.kind.length>0&&n.set("kind",t.kind.join(",")),t.from&&n.set("from",t.from),t.to&&n.set("to",t.to);let e=n.toString();return e?`?${e}`:""}function Lt(t){let n=new URLSearchParams;t.severity&&n.set("severity",t.severity),t.analyzerId&&n.set("analyzerId",t.analyzerId),t.node&&n.set("node",t.node),t.nodes&&t.nodes.length>0&&n.set("nodes",t.nodes.join(","));let e=n.toString();return e?`?${e}`:""}function $t(t){if(typeof t!="object"||t===null)return null;let n=t;if(n.ok!==!1)return null;let e=n.error;if(typeof e!="object"||e===null)return null;let i=e;return typeof i.code!="string"||typeof i.message!="string"?null:{ok:!1,error:{code:i.code,message:i.message,details:i.details}}}var Nt="data.json",zt="data.meta.json",ge=class{fetchImpl;metaPromise=null;dataPromise=null;kindRegistry;providerRegistry;constructor(n=globalThis.fetch.bind(globalThis),e,i){this.fetchImpl=n,this.kindRegistry=e??s(U),this.providerRegistry=i??s(B)}async health(){return(await this.loadMeta()).health}async loadScan(){let[n,e]=await Promise.all([this.loadData(),this.loadMeta()]);return this.kindRegistry.ingest(e.nodes.kindRegistry),this.providerRegistry.ingest(e.nodes.providerRegistry),n}async listNodes(n={}){let e=await this.loadMeta();if(Ft(n))return this.kindRegistry.ingest(e.nodes.kindRegistry),this.providerRegistry.ingest(e.nodes.providerRegistry),e.nodes;let i=await this.loadData(),r=i.issues,o=i.nodes;if(n.kind&&n.kind.length>0){let V=new Set(n.kind);o=o.filter(J=>V.has(J.kind))}if(n.path){let V=Bt(n.path);o=o.filter(J=>V.test(J.path))}if(n.hasIssues===!0){let V=lt(r);o=o.filter(J=>V.has(J.path))}else if(n.hasIssues===!1){let V=lt(r);o=o.filter(J=>!V.has(J.path))}let l=o.length,u=n.offset??0,M=n.limit??1e3,y=o.slice(u,u+M);return this.kindRegistry.ingest(e.nodes.kindRegistry),this.providerRegistry.ingest(e.nodes.providerRegistry),{schemaVersion:"1",kind:"nodes",items:y,filters:{kind:n.kind??null,hasIssues:n.hasIssues??null,path:n.path?[n.path]:null},counts:{total:l,returned:y.length,page:{offset:u,limit:M}},kindRegistry:e.nodes.kindRegistry,providerRegistry:e.nodes.providerRegistry}}async getNode(n,e={}){let[i,r]=await Promise.all([this.loadData(),this.loadMeta()]),o=i.nodes.find(y=>y.path===n);if(!o)return null;let l=i.links.filter(y=>y.target===n),u=i.links.filter(y=>y.source===n),M=i.issues.filter(y=>y.nodeIds.includes(n));return this.kindRegistry.ingest(r.nodes.kindRegistry),this.providerRegistry.ingest(r.nodes.providerRegistry),{schemaVersion:"1",kind:"node",item:o,links:{incoming:l,outgoing:u},issues:M,kindRegistry:r.nodes.kindRegistry,providerRegistry:r.nodes.providerRegistry}}async listLinks(n={}){let e=await this.loadMeta();if(jt(n))return this.kindRegistry.ingest(e.links.kindRegistry),this.providerRegistry.ingest(e.links.providerRegistry),e.links;let r=(await this.loadData()).links;if(n.kind&&n.kind.length>0){let o=new Set(n.kind);r=r.filter(l=>o.has(l.kind))}return n.from&&(r=r.filter(o=>o.source===n.from)),n.to&&(r=r.filter(o=>o.target===n.to)),this.kindRegistry.ingest(e.links.kindRegistry),this.providerRegistry.ingest(e.links.providerRegistry),{schemaVersion:"1",kind:"links",items:r,filters:{kind:n.kind??null,from:n.from??null,to:n.to??null},counts:{total:r.length,returned:r.length},kindRegistry:e.links.kindRegistry,providerRegistry:e.links.providerRegistry}}async listIssues(n={}){let e=await this.loadMeta();if(Ut(n))return this.kindRegistry.ingest(e.issues.kindRegistry),this.providerRegistry.ingest(e.issues.providerRegistry),e.issues;let r=(await this.loadData()).issues;if(n.severity&&(r=r.filter(o=>o.severity===n.severity)),n.analyzerId&&(r=r.filter(o=>o.analyzerId===n.analyzerId)),n.node&&(r=r.filter(o=>o.nodeIds.includes(n.node))),n.nodes&&n.nodes.length>0){let o=new Set(n.nodes);r=r.filter(l=>l.nodeIds.some(u=>o.has(u)))}return this.kindRegistry.ingest(e.issues.kindRegistry),this.providerRegistry.ingest(e.issues.providerRegistry),{schemaVersion:"1",kind:"issues",items:r,filters:{severity:n.severity??null,analyzerId:n.analyzerId??null,node:n.node??null,nodes:n.nodes&&n.nodes.length>0?[...n.nodes]:null},counts:{total:r.length,returned:r.length},kindRegistry:e.issues.kindRegistry,providerRegistry:e.issues.providerRegistry}}async loadGraph(n="ascii"){if(n!=="ascii")throw new h("bad-query",D.errors.graphFormatNotInDemo(n));return(await this.loadMeta()).graph.ascii}async loadConfig(){let n=await this.loadMeta();return this.kindRegistry.ingest(n.config.kindRegistry),this.providerRegistry.ingest(n.config.providerRegistry),n.config.value}async listPlugins(){let n=await this.loadMeta();return this.kindRegistry.ingest(n.plugins.kindRegistry),this.providerRegistry.ingest(n.plugins.providerRegistry),n.plugins}async setFavorite(n){throw new h("demo-readonly","Favorites are not available in demo mode (static bundle is immutable).")}async unsetFavorite(n){throw new h("demo-readonly","Favorites are not available in demo mode (static bundle is immutable).")}async setPluginEnabled(n,e){throw new h("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async setPluginExtensionEnabled(n,e,i){throw new h("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async applyPluginChanges(n){throw new h("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async runScan(){throw new h("demo-readonly","Manual scan is not available in demo mode (static bundle is immutable).")}async getPreferences(){return{updateCheck:{enabled:!0},telemetry:{errorsEnabled:!1,usageCliEnabled:!1,usageUiEnabled:!1,anonymousId:null,environment:"prod"}}}async setPreferences(n){throw new h("demo-readonly","Preference toggles are not available in demo mode (static bundle is immutable).")}async getProjectPreferences(){return{scan:{referencePaths:[]}}}async setProjectPreferences(n){throw new h("demo-readonly","Project preferences are not available in demo mode (static bundle is immutable).")}async getProjectIgnore(){return{patterns:[]}}async setProjectIgnore(n){throw new h("demo-readonly","Ignore patterns are not available in demo mode (static bundle is immutable).")}async getActiveProvider(){return{activeProvider:null,detected:[],source:"none"}}async setActiveProvider(n){throw new h("demo-readonly","Active provider lens is not available in demo mode (static bundle is immutable).")}async lookupContribution(){return null}async bumpSidecar(n,e={}){throw new h("demo-readonly","Sidecar bump is not available in demo mode (static bundle is immutable).")}async getUpdateStatus(){return{current:(await this.loadMeta()).health.implVersion,latest:null,isOutdated:!1,checkedAt:null,shownAt:null}}async getRegisteredAnnotations(){return[]}events(){return ye}loadMeta(){return this.metaPromise||(this.metaPromise=this.fetchJson(zt)),this.metaPromise}loadData(){return this.dataPromise||(this.dataPromise=this.fetchJson(Nt)),this.dataPromise}async fetchJson(n){let e;try{e=await this.fetchImpl(n)}catch(i){let r=i instanceof Error?i.message:String(i);throw new h("internal",D.errors.demoFetchFailed(n,r))}if(!e.ok)throw new h("internal",D.errors.demoFetchFailed(n,`HTTP ${e.status}`));try{return await e.json()}catch(i){let r=i instanceof Error?i.message:String(i);throw new h("internal",D.errors.demoParseFailed(n,r))}}};function Ft(t){return!(t.kind&&t.kind.length>0||t.hasIssues!==void 0||t.path||t.offset!==void 0&&t.offset!==0||t.limit!==void 0)}function jt(t){return!(t.kind&&t.kind.length>0||t.from||t.to)}function Ut(t){return!(t.severity||t.analyzerId||t.node||t.nodes&&t.nodes.length>0)}function lt(t){let n=new Set;for(let e of t)for(let i of e.nodeIds)n.add(i);return n}function Bt(t){let e=t.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${e}$`)}function dt(){let t=s(z);if(t==="live")return new at(s(Q),s(F));if(t==="demo")return new ge;let n=t;throw new Error(D.errors.unknownMode(String(n)))}var ct="search",pt="kinds",mt="linkKinds",gt="favoritesOnly",ut="severities",Vt=["error","warn"],ht=(()=>{class t{filters=s(We);router=s(Fe);activatedRoute=s(Ne);kindRegistry=s(U);destroyRef=s(Ce);suppressUrlReadback=!1;constructor(){this.applyUrlToFilters(this.currentParams()),this.router.events.pipe(Qe(this.destroyRef)).subscribe(e=>{if(e instanceof $e){if(this.suppressUrlReadback)return;this.applyUrlToFilters(this.currentParams())}}),te(()=>{let e=this.computeQueryParams();this.writeQueryParams(e)})}currentParams(){let e=this.router.parseUrl(this.router.url),i=new URLSearchParams;for(let[r,o]of Object.entries(e.queryParams))Array.isArray(o)?i.set(r,o.join(",")):o!=null&&i.set(r,String(o));return this.activatedRoute,i}applyUrlToFilters(e){let i=e.get(ct)??"";i!==this.filters.searchText()&&this.filters.setSearchText(i);let r=Jt(e.get(pt),this.kindRegistry.kinds().map(y=>y.name));ve(r,this.filters.selectedKinds())||this.filters.setKinds(r);let o=e.get(gt)==="true";o!==this.filters.favoritesOnly()&&this.filters.setFavoritesOnly(o);let l=Kt(e.get(mt));ve(l,this.filters.selectedLinkKinds())||this.filters.setLinkKinds(l);let u=Xt(e.get(ut)),M=[];this.filters.severityErrorActive()&&M.push("error"),this.filters.severityWarnActive()&&M.push("warn"),ve(u,M)||this.filters.setSeverityFilters(u)}computeQueryParams(){let e=this.filters.searchText().trim(),i=this.filters.selectedKinds(),r=this.filters.selectedLinkKinds(),o=this.filters.favoritesOnly(),l=[];return this.filters.severityErrorActive()&&l.push("error"),this.filters.severityWarnActive()&&l.push("warn"),{[ct]:e.length>0?e:null,[pt]:i.length>0?i.join(","):null,[mt]:r.length>0?r.join(","):null,[gt]:o?"true":null,[ut]:l.length>0?l.join(","):null}}writeQueryParams(e){let i=this.currentParams(),r=new Map(Object.entries(e)),o=!1;for(let[l,u]of r)if((i.get(l)??null)!==u){o=!0;break}o&&(this.suppressUrlReadback=!0,this.router.navigate([],{relativeTo:this.activatedRoute,queryParams:e,queryParamsHandling:"merge",replaceUrl:!0}).finally(()=>{setTimeout(()=>{this.suppressUrlReadback=!1},0)}))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=E({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function Jt(t,n){if(!t)return[];let e=new Set(n);return t.split(",").map(i=>i.trim()).filter(i=>e.has(i))}function Kt(t){if(!t)return[];let n=new Set(He);return t.split(",").map(e=>e.trim()).filter(e=>n.has(e))}function Xt(t){if(!t)return[];let n=new Set(Vt);return t.split(",").map(e=>e.trim()).filter(e=>n.has(e))}function ve(t,n){if(t.length!==n.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!==n[e])return!1;return!0}var ft={healthFailed:t=>`ProjectInfoService: /api/health probe failed (${t})`};var Y=(()=>{class t{dataSource=s(q);status=$(null);cwd=c(()=>this.status()?.cwd??null);implVersion=c(()=>this.status()?.implVersion??null);dev=c(()=>this.status()?.dev===!0);activeProviderState=$(null);activeProvider=c(()=>this.activeProviderState());async load(){try{let e=await this.dataSource.health();this.status.set(e)}catch(e){let i=e instanceof Error?e.message:String(e);console.warn(ft.healthFailed(i))}await this.reloadActiveProvider()}async reloadActiveProvider(){try{let e=await this.dataSource.getActiveProvider();this.activeProviderState.set(e.activeProvider)}catch{}}static \u0275fac=function(i){return new(i||t)};static \u0275prov=E({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var bt=(()=>{class t extends oe{title=s(Le);projectInfo=s(Y);constructor(){super(),te(()=>{let e=vt(this.projectInfo.cwd()),i=this.projectInfo.implVersion();this.title.setTitle(A.documentTitle(e,i))})}updateTitle(e){let i=vt(this.projectInfo.cwd()),r=this.projectInfo.implVersion();this.title.setTitle(A.documentTitle(i,r))}static \u0275fac=function(i){return new(i||t)};static \u0275prov=E({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function vt(t){if(!t)return null;let n=t.replace(/[\\/]+$/,"");if(!n||n===".")return null;let e=Math.max(n.lastIndexOf("/"),n.lastIndexOf("\\"));return(e>=0?n.slice(e+1):n)||null}var be=!1,_e=null;async function _t(t){if(be||he===""||!t.consentEnabled)return;let n=await import("./chunk-BV323KTK.js");n.init({dsn:he,release:t.release??void 0,environment:t.environment,integrations:e=>e.filter(i=>i.name!=="BrowserSession"),tracesSampleRate:0,sendDefaultPii:!1,allowUrls:[/^https?:\/\/(localhost|127\.0\.0\.1)(:\d+)?\//],beforeSend:e=>qe(e)}),_e=n,be=!0}function yt(t){!be||_e===null||_e.captureException(t)}var Ct=(()=>{class t{handleError(e){console.error(e),yt(e)}static \u0275fac=function(i){return new(i||t)};static \u0275prov=E({token:t,factory:t.\u0275fac})}return t})();function Ht(...t){for(let n of t)Promise.resolve(n.load())}var kt={providers:[xe(),{provide:ke,useClass:Ct},je(st,Ue()),{provide:oe,useClass:bt},Ae(De()),Ve({}),G(async()=>{let t=s(Be),[{default:n},{definePreset:e}]=await Promise.all([import("./chunk-43S72FTV.js"),import("./chunk-5ITZXW3A.js")]),i=e(n,{semantic:{primary:{50:"#F5F3FF",100:"#EDE9FE",200:"#DDD6FE",300:"#C4B5FD",400:"#A78BFA",500:"#8B5CF6",600:"#7C3AED",700:"#6D28D9",800:"#4C1D95",900:"#2E1065",950:"#1E0A4D"}}});t.setThemeConfig({theme:{preset:i,options:{darkModeSelector:".app-dark"}}})}),{provide:z,useFactory:Ye},{provide:q,useFactory:dt},G(async()=>{let t=s(q),n=s(ee);try{let[e,i]=await Promise.all([t.getPreferences(),t.health()]);await Promise.all([_t({consentEnabled:e.telemetry.errorsEnabled,release:i.implVersion?`skill-map-cli@${i.implVersion}`:null,environment:e.telemetry.environment}),et({consentEnabled:e.telemetry.usageUiEnabled,distinctId:e.telemetry.anonymousId})]),tt({environment:e.telemetry.environment}),n.syncTheme()}catch{}}),G(()=>{Ht(s(j),s(pe),s(Y))}),G(()=>{s(ht),s(Ge),s(ee)})]};var K={toggleToAuto:"Switch to auto theme (follow system)",toggleToLight:"Switch to light theme",toggleToDark:"Switch to dark theme",currentAuto:"Auto theme (follows system)",currentLight:"Light theme",currentDark:"Dark theme"};var xt={body:"You are viewing a static demo of skill-map's UI. Install it:",installCommand:"npm i -g @skill-map/cli",homeCta:"\u2190 Back to skill-map.ai",homeHref:"/",dismissAria:"Dismiss demo banner"};function Qt(t,n){if(t&1){let e=O();d(0,"div",0),x(1,"span",1),d(2,"p",2),g(3),d(4,"code",3),g(5),p()(),d(6,"a",4),g(7),p(),d(8,"p-button",5),S("onClick",function(){T(e);let r=f();return R(r.dismiss())}),p()()}if(t&2){let e=f();a(3),P(" ",e.texts.body," "),a(2),_(e.texts.installCommand),a(),b("href",e.texts.homeHref,ne),a(),_(e.texts.homeCta),a(),b("ariaLabel",e.texts.dismissAria)("text",!0)("rounded",!0)}}var Pt="sm.demoBannerDismissed",wt=(()=>{class t{mode=s(z);texts=xt;dismissed=$(this.readDismissed());visible=c(()=>this.mode==="demo"&&!this.dismissed());dismiss(){this.dismissed.set(!0);try{globalThis.localStorage?.setItem(Pt,"1")}catch{}}readDismissed(){if(this.mode!=="demo")return!0;try{return globalThis.localStorage?.getItem(Pt)==="1"}catch{return!1}}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=I({type:t,selectors:[["sm-demo-banner"]],decls:1,vars:1,consts:[["role","status","data-testid","demo-banner",1,"demo-banner"],["aria-hidden","true",1,"demo-banner__icon","fa-solid","fa-circle-info"],[1,"demo-banner__body"],["data-testid","demo-banner-install",1,"demo-banner__cmd"],["data-testid","demo-banner-home",1,"demo-banner__home",3,"href"],["icon","fa-solid fa-xmark","severity","secondary","size","small","data-testid","demo-banner-dismiss",3,"onClick","ariaLabel","text","rounded"]],template:function(i,r){i&1&&C(0,Qt,9,7,"div",0),i&2&&k(r.visible()?0:-1)},dependencies:[de,le],styles:["[_nghost-%COMP%]{display:block}.demo-banner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;border-bottom:1px solid var(--p-content-border-color);background:var(--p-highlight-background);color:var(--p-text-color);font-size:.875rem}.demo-banner__icon[_ngcontent-%COMP%]{font-size:1.1rem;color:var(--p-primary-color)}.demo-banner__body[_ngcontent-%COMP%]{flex:1 1 auto;margin:0;line-height:1.4}.demo-banner__cmd[_ngcontent-%COMP%]{font-family:var(--sm-font-mono);background:var(--p-content-background);border:1px solid var(--p-content-border-color);border-radius:var(--sm-radius-md);padding:.05rem .4rem;font-size:.85em;margin-left:.25rem}.demo-banner__home[_ngcontent-%COMP%]{color:var(--p-primary-color);font-weight:500;text-decoration:none;white-space:nowrap}.demo-banner__home[_ngcontent-%COMP%]:hover, .demo-banner__home[_ngcontent-%COMP%]:focus-visible{text-decoration:underline}"],changeDetection:0})}return t})();var St={bodyAtLimit:(t,n)=>`Your graph has ${t} ${t===1?"node":"nodes"}, at the recommended limit of ${n}. Past this point the map gets hard to read and analyzer signal degrades.`,bodyOverLimit:(t,n,e)=>`Your graph has ${t} nodes, over the recommended limit of ${n} (currently allowed via --max-nodes ${e}). Past this point the map gets hard to read and analyzer signal degrades.`,bodyCapped:(t,n,e)=>`Scan capped at ${n} ${n===1?"node":"nodes"} (${e==="override"?"--max-nodes":"scan.maxNodes"}). The walker stopped at ${t} ${t===1?"file":"files"}, additional files were dropped. The map and analyzers only see what made it through.`,cta:"Edit .skillmapignore",ctaAria:"Open Settings to edit ignored patterns"};function Yt(t,n){if(t&1){let e=O();N(0,"div",0),Z(1,"span",1),N(2,"p",2),g(3),W(),N(4,"button",3),ie("click",function(){T(e);let r=f();return R(r.onCta())}),g(5),W()()}if(t&2){let e=f();v("data-mode",e.state().mode),a(3),P(" ",e.state().body," "),a(),v("aria-label",e.texts.ctaAria),a(),P(" ",e.texts.cta," ")}}var Mt=(()=>{class t{loader=s(j);texts=St;openSettings=re();state=c(()=>{let e=this.loader.scan();if(!e)return{mode:"hidden",body:""};let i=e.recommendedNodeLimit;if(i===void 0)return{mode:"hidden",body:""};let r=e.overrideMaxNodes??null,o=r??i,l=e.stats.filesWalked,u=e.stats.nodesCount;return l>o?{mode:"capped",body:this.texts.bodyCapped(l,o,r!==null?"override":"setting")}:u<i?{mode:"hidden",body:""}:r!==null&&u>i?{mode:"overLimit",body:this.texts.bodyOverLimit(u,i,r)}:{mode:"atLimit",body:this.texts.bodyAtLimit(u,i)}});visible=c(()=>this.state().mode!=="hidden");onCta(){this.openSettings.emit()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=I({type:t,selectors:[["sm-oversized-banner"]],outputs:{openSettings:"openSettings"},decls:1,vars:1,consts:[["role","status","data-testid","oversized-banner",1,"oversized-banner"],["aria-hidden","true",1,"oversized-banner__icon","fa-solid","fa-triangle-exclamation"],["data-testid","oversized-banner-body",1,"oversized-banner__body"],["type","button","data-testid","oversized-banner-cta",1,"oversized-banner__cta",3,"click"]],template:function(i,r){i&1&&C(0,Yt,6,4,"div",0),i&2&&k(r.visible()?0:-1)},styles:["[_nghost-%COMP%]{display:block}.oversized-banner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;border-bottom:1px solid var(--p-content-border-color);font-size:.875rem}.oversized-banner[data-mode=capped][_ngcontent-%COMP%]{background:var(--sm-severity-error-bg);color:var(--sm-severity-error)}.oversized-banner[data-mode=overLimit][_ngcontent-%COMP%], .oversized-banner[data-mode=atLimit][_ngcontent-%COMP%]{background:var(--sm-severity-warn-bg);color:var(--sm-severity-warn)}.oversized-banner__icon[_ngcontent-%COMP%]{font-size:1.1rem}.oversized-banner[data-mode=capped][_ngcontent-%COMP%] .oversized-banner__icon[_ngcontent-%COMP%]{color:var(--sm-severity-error)}.oversized-banner[data-mode=overLimit][_ngcontent-%COMP%] .oversized-banner__icon[_ngcontent-%COMP%], .oversized-banner[data-mode=atLimit][_ngcontent-%COMP%] .oversized-banner__icon[_ngcontent-%COMP%]{color:var(--sm-severity-warn)}.oversized-banner__body[_ngcontent-%COMP%]{flex:1 1 auto;margin:0;line-height:1.4}.oversized-banner__cta[_ngcontent-%COMP%]{flex:0 0 auto;background:transparent;color:inherit;border:1px solid currentColor;padding:.25rem .75rem;border-radius:var(--p-border-radius);font:inherit;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .15s ease}.oversized-banner__cta[_ngcontent-%COMP%]:hover, .oversized-banner__cta[_ngcontent-%COMP%]:focus-visible{background:color-mix(in srgb,currentColor 12%,transparent)}.oversized-banner__cta[_ngcontent-%COMP%]:focus-visible{outline:2px solid currentColor;outline-offset:2px}"],changeDetection:0})}return t})();var Tt={headline:t=>`${t} ${t===1?"file":"files"} skipped, ${t===1?"it exceeds":"they exceed"} the max file size.`,more:"...",seeConsole:"See the full list in the console.",cta:"Open Project settings",ctaAria:"Open Settings to adjust the max file size or ignore patterns"};function Zt(t,n){if(t&1&&(d(0,"span",4),g(1),p()),t&2){let e=f(2);b("pTooltip",e.state().tooltip),a(),_(e.texts.more)}}function qt(t,n){if(t&1){let e=O();d(0,"div",0),x(1,"span",1),d(2,"p",2),g(3),d(4,"span",3),g(5),p(),C(6,Zt,2,2,"span",4),p(),d(7,"button",5),S("click",function(){T(e);let r=f();return R(r.onCta())}),g(8),p()()}if(t&2){let e=f();a(3),P(" ",e.texts.headline(e.state().count)," "),a(2),P(" ",e.state().first," "),a(),k(e.state().hasMore?6:-1),a(),v("aria-label",e.texts.ctaAria),a(),P(" ",e.texts.cta," ")}}var en=5,Rt=(()=>{class t{loader=s(j);texts=Tt;openSettings=re();state=c(()=>{let e=this.loader.scan(),i=e?.oversizedFiles??[],r=e?.stats?.filesOversized??i.length;if(r<=0)return{visible:!1,count:0,first:"",hasMore:!1,tooltip:""};let o=i[0]?this.describe(i[0]):"",l=r>1,u="";if(l){let M=i.slice(1);r-1>en?u=this.texts.seeConsole:u=M.map(y=>this.describe(y)).join(`
4
+ `)}return{visible:!0,count:r,first:o,hasMore:l,tooltip:u}});visible=c(()=>this.state().visible);describe(e){return`${e.path.split("/").pop()??e.path} (${Xe(e.bytes)})`}onCta(){this.openSettings.emit()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=I({type:t,selectors:[["sm-skipped-files-banner"]],outputs:{openSettings:"openSettings"},decls:1,vars:1,consts:[["role","status","data-testid","skipped-files-banner",1,"skipped-files-banner"],["aria-hidden","true",1,"skipped-files-banner__icon","fa-solid","fa-triangle-exclamation"],["data-testid","skipped-files-banner-body",1,"skipped-files-banner__body"],["data-testid","skipped-files-banner-first",1,"skipped-files-banner__first"],["data-testid","skipped-files-banner-more",1,"skipped-files-banner__more",3,"pTooltip"],["type","button","data-testid","skipped-files-banner-cta",1,"skipped-files-banner__cta",3,"click"]],template:function(i,r){i&1&&C(0,qt,9,5,"div",0),i&2&&k(r.visible()?0:-1)},dependencies:[ae,se],styles:["[_nghost-%COMP%]{display:block}.skipped-files-banner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;border-bottom:1px solid var(--p-content-border-color);font-size:.875rem;background:var(--sm-severity-warn-bg);color:var(--sm-severity-warn)}.skipped-files-banner__icon[_ngcontent-%COMP%]{font-size:1.1rem;color:var(--sm-severity-warn)}.skipped-files-banner__body[_ngcontent-%COMP%]{flex:1 1 auto;margin:0;line-height:1.4}.skipped-files-banner__first[_ngcontent-%COMP%]{font-weight:600}.skipped-files-banner__more[_ngcontent-%COMP%]{font-weight:600;cursor:help}.skipped-files-banner__cta[_ngcontent-%COMP%]{flex:0 0 auto;background:transparent;color:inherit;border:1px solid currentColor;padding:.25rem .75rem;border-radius:var(--p-border-radius);font:inherit;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .15s ease}.skipped-files-banner__cta[_ngcontent-%COMP%]:hover, .skipped-files-banner__cta[_ngcontent-%COMP%]:focus-visible{background:color-mix(in srgb,currentColor 12%,transparent)}.skipped-files-banner__cta[_ngcontent-%COMP%]:focus-visible{outline:2px solid currentColor;outline-offset:2px}"],changeDetection:0})}return t})();var Ot={body:"Connection to the server was lost. Live updates are paused.",reconnectCta:"Reconnect",reconnectAria:"Retry the connection to the server"};function tn(t,n){if(t&1){let e=O();N(0,"div",0),Z(1,"span",1),N(2,"p",2),g(3),W(),N(4,"button",3),ie("click",function(){T(e);let r=f();return R(r.reconnect())}),Z(5,"span",4),g(6),W()()}if(t&2){let e=f();a(3),_(e.texts.body),a(),v("aria-label",e.texts.reconnectAria),a(2),P(" ",e.texts.reconnectCta," ")}}var Et=(()=>{class t{mode=s(z);ws=s(F);texts=Ot;visible=c(()=>this.mode==="live"&&this.ws.connectionState()==="lost");reconnect(){this.ws.reconnect()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=I({type:t,selectors:[["sm-connection-banner"]],decls:1,vars:1,consts:[["role","alert","data-testid","connection-banner",1,"connection-banner"],["aria-hidden","true",1,"connection-banner__icon","fa-solid","fa-plug-circle-xmark"],[1,"connection-banner__body"],["type","button","data-testid","connection-banner-reconnect",1,"connection-banner__cta",3,"click"],["aria-hidden","true",1,"fa-solid","fa-rotate-right"]],template:function(i,r){i&1&&C(0,tn,7,3,"div",0),i&2&&k(r.visible()?0:-1)},styles:["[_nghost-%COMP%]{display:block}.connection-banner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;border-bottom:1px solid var(--p-content-border-color);background:var(--sm-severity-error-bg);color:var(--sm-severity-error);font-size:.875rem}.connection-banner__icon[_ngcontent-%COMP%]{font-size:1.1rem;color:var(--sm-severity-error)}.connection-banner__body[_ngcontent-%COMP%]{flex:1 1 auto;margin:0;line-height:1.4}.connection-banner__cta[_ngcontent-%COMP%]{flex:0 0 auto;display:inline-flex;align-items:center;gap:.4rem;background:transparent;color:inherit;border:1px solid currentColor;padding:.25rem .75rem;border-radius:var(--p-border-radius);font:inherit;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .15s ease}.connection-banner__cta[_ngcontent-%COMP%]:hover, .connection-banner__cta[_ngcontent-%COMP%]:focus-visible{background:color-mix(in srgb,currentColor 12%,transparent)}.connection-banner__cta[_ngcontent-%COMP%]:focus-visible{outline:2px solid currentColor;outline-offset:2px}"],changeDetection:0})}return t})();var nn=()=>[import("./chunk-2GXE52AJ.js").then(t=>t.SettingsModal)];function rn(t,n){if(t&1&&(d(0,"span",11),g(1),p()),t&2){let e=f();b("pTooltip",e.versionTooltip()),v("aria-label",e.texts.devChipA11y),a(),_(e.texts.devChip)}}function on(t,n){if(t&1&&(d(0,"span",12),g(1),p()),t&2){let e=f();b("pTooltip",e.versionTooltip()),v("aria-label",e.versionA11y()),a(),_(e.versionLabel())}}function sn(t,n){if(t&1&&(d(0,"span",24),g(1),p()),t&2){let e=n,i=f();Me("--provider-color",e.color)("--provider-color-dark",e.colorDark??e.color),b("pTooltip",i.texts.lensChipTooltip(e.label)),v("aria-label",i.texts.lensChipA11y(e.label)),a(),_(e.label)}}function an(t,n){if(t&1){let e=O();d(0,"button",25),S("click",function(){T(e);let r=f();return R(r.copyUpdateCommand())}),x(1,"i",26),d(2,"span"),g(3),p()(),d(4,"a",27),x(5,"i",28),p()}if(t&2){let e=f();b("pTooltip",e.updateChipTooltip()),v("aria-label",e.updateChipA11y()),a(),Te(e.updateChipIcon()),a(2),_(e.updateChipText()),a(),b("href",e.npmLinkUrl,ne)("pTooltip",e.npmLinkTooltip),v("aria-label",e.npmLinkA11y)}}function ln(t,n){if(t&1&&(d(0,"p",15)(1,"bdi",29),g(2),p()()),t&2){let e=n;v("title",e),a(2),_(e)}}function dn(t,n){if(t&1){let e=O();d(0,"sm-settings-modal",30),S("visibleChange",function(r){T(e);let o=f();return R(o.onSettingsVisibleChange(r))}),p()}if(t&2){let e=f();b("visible",e.settingsOpen())}}var It=(()=>{class t{loader=s(j);theme=s(nt);projectInfo=s(Y);providerRegistry=s(B);scanTrigger=s(ot);usageTracker=s(ee);updateCheck=s(pe);texts=A;settingsTexts=rt;settingsOpen=$(!1);openSettings(){this.settingsOpen.set(!0),this.usageTracker.trackFeature("settings")}onSettingsVisibleChange(e){this.settingsOpen.set(e),e||this.projectInfo.reloadActiveProvider()}scanning=this.scanTrigger.scanning;scanError=this.scanTrigger.scanError;triggerScan(){return this.scanTrigger.run()}updateChipCopied=$(!1);updateChipText=c(()=>this.updateChipCopied()?w.copiedLabel:w.available);updateChipIcon=c(()=>this.updateChipCopied()?"pi pi-check":"pi pi-download");updateChipTooltip=c(()=>this.updateChipCopied()?w.copiedTooltip:w.tooltip(this.updateCheck.latest()??""));updateChipA11y=c(()=>w.a11yLabel(this.updateCheck.latest()??""));npmLinkUrl=w.npmLinkUrl;npmLinkTooltip=w.npmLinkTooltip;npmLinkA11y=w.npmLinkA11y;async copyUpdateCommand(){try{await navigator.clipboard.writeText(w.copyCommand),this.updateChipCopied.set(!0),setTimeout(()=>this.updateChipCopied.set(!1),2e3)}catch{}}versionLabel=c(()=>w.versionLabel(this.updateCheck.current()??""));versionTooltip=c(()=>w.versionTooltip(this.updateCheck.current()??""));versionA11y=c(()=>w.versionA11yLabel(this.updateCheck.current()??""));isDevBuild=this.projectInfo.dev;lensChip=c(()=>this.providerRegistry.lensChip(this.projectInfo.activeProvider()));count=this.loader.count;linkAnalysis=c(()=>it(this.loader.nodes(),this.loader.scan()));linkCount=c(()=>this.linkAnalysis().raw);mapInfoTooltip=c(()=>A.badge.mapInfo(this.count(),this.linkAnalysis()));mapInfoA11y=c(()=>A.badge.mapInfoA11y(this.count(),this.linkAnalysis()));rootLabel=c(()=>{let e=this.projectInfo.cwd();if(e&&e!==".")return e;let i=this.loader.scan()?.roots??[];if(i.length===0)return"";let r=i[0].replace(/[\\/]+$/,"");return!r||r==="."?"":r});isDevMode=Re();themeMode=this.theme.mode;markSrc=c(()=>this.theme.extraTheme()==="matrix"?"skill-map-mark-matrix.svg":this.theme.resolved()==="dark"?"skill-map-mark-light.svg":"skill-map-mark-dark.svg");themeIcon=c(()=>{switch(this.themeMode()){case"auto":return"pi pi-desktop";case"light":return"pi pi-sun";case"dark":return"fa-regular fa-moon"}});themeLabel=c(()=>{switch(this.themeMode()){case"auto":return K.toggleToLight;case"light":return K.toggleToDark;case"dark":return K.toggleToAuto}});themeTooltip=c(()=>{switch(this.themeMode()){case"auto":return K.currentAuto;case"light":return K.currentLight;case"dark":return K.currentDark}});toggleTheme(){this.theme.toggle()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=I({type:t,selectors:[["sm-root"]],decls:39,vars:30,consts:[["role","alert","data-testid","viewport-warning",1,"viewport-warning"],[1,"viewport-warning__card"],["aria-hidden","true",1,"fa-solid","fa-desktop","viewport-warning__icon"],[1,"viewport-warning__title"],[1,"viewport-warning__subtitle"],[1,"viewport-warning__body"],["data-testid","shell",1,"shell"],[3,"openSettings"],["data-testid","shell-topbar",1,"shell__topbar"],[1,"shell__brand"],["width","32","height","32","priority","","alt","","aria-hidden","true",1,"shell__brand-mark",3,"ngSrc"],["tooltipPosition","bottom","data-testid","shell-dev",1,"shell__dev",3,"pTooltip"],["tooltipPosition","bottom","data-testid","shell-version",1,"shell__version",3,"pTooltip"],["tooltipPosition","bottom","data-testid","shell-lens",1,"shell__lens",3,"--provider-color","--provider-color-dark","pTooltip"],[1,"shell__alpha"],["data-testid","shell-root-label",1,"shell__tag"],["data-testid","shell-nav",1,"shell__nav"],["slot","topbar.nav.start",3,"node"],[1,"shell__actions"],["type","button","tooltipPosition","bottom","data-testid","shell-refresh",1,"shell__refresh",3,"click","pTooltip","disabled"],["aria-hidden","true",1,"pi","pi-sync"],["severity","secondary","size","small","data-testid","action-theme-toggle",3,"onClick","icon","ariaLabel","pTooltip","text","rounded"],["icon","pi pi-sliders-h","severity","secondary","size","small","data-testid","action-settings",3,"onClick","ariaLabel","pTooltip","text","rounded"],[1,"shell__main"],["tooltipPosition","bottom","data-testid","shell-lens",1,"shell__lens",3,"pTooltip"],["type","button","tooltipPosition","bottom","data-testid","shell-update-chip",1,"shell__update-chip",3,"click","pTooltip"],["aria-hidden","true"],["target","_blank","rel","noopener noreferrer","tooltipPosition","bottom","data-testid","shell-update-npm-link",1,"shell__update-npm-link",3,"href","pTooltip"],["aria-hidden","true",1,"pi","pi-external-link"],["dir","ltr"],[3,"visibleChange","visible"]],template:function(i,r){if(i&1&&(d(0,"div",0)(1,"div",1),x(2,"i",2),d(3,"h2",3),g(4),p(),d(5,"p",4),g(6),p(),d(7,"p",5),g(8),p()()(),d(9,"div",6),x(10,"sm-demo-banner"),d(11,"sm-oversized-banner",7),S("openSettings",function(){return r.openSettings()}),p(),d(12,"sm-skipped-files-banner",7),S("openSettings",function(){return r.openSettings()}),p(),x(13,"sm-connection-banner"),d(14,"header",8)(15,"div",9),x(16,"img",10),d(17,"div")(18,"h1"),g(19),C(20,rn,2,3,"span",11)(21,on,2,3,"span",12),C(22,sn,2,7,"span",13),d(23,"span",14),g(24),p(),C(25,an,6,8),p(),C(26,ln,3,2,"p",15),p()(),d(27,"nav",16),x(28,"sm-view-contributions-host",17),p(),d(29,"div",18)(30,"button",19),S("click",function(){return r.triggerScan()}),x(31,"i",20),p(),d(32,"p-button",21),S("onClick",function(){return r.toggleTheme()}),p(),d(33,"p-button",22),S("onClick",function(){return r.openSettings()}),p()()(),d(34,"main",23),x(35,"router-outlet"),p(),Pe(36,dn,1,1),we(37,36,nn),p()),i&2){let o,l,u;a(4),_(r.texts.viewportWarning.title),a(2),_(r.texts.viewportWarning.subtitle),a(2),_(r.texts.viewportWarning.body),a(8),b("ngSrc",r.markSrc()),a(3),P(" ",r.texts.brand," "),a(),k(r.isDevBuild()?20:(o=r.updateCheck.current())?21:-1,o),a(2),k((l=r.lensChip())?22:-1,l),a(),v("aria-label",r.texts.alpha),a(),_(r.texts.alpha),a(),k(r.updateCheck.isOutdated()&&!r.isDevMode?25:-1),a(),k((u=r.rootLabel())?26:-1,u),a(),v("aria-label",r.texts.a11y.viewSwitcher),a(),b("node",null),a(2),ue("is-spinning",r.scanning()),b("pTooltip",r.mapInfoTooltip())("disabled",r.scanning()),v("aria-label",r.mapInfoA11y()),a(),ue("pi-spin",r.scanning()),a(),b("icon",r.themeIcon())("ariaLabel",r.themeLabel())("pTooltip",r.themeTooltip())("text",!0)("rounded",!0),a(),b("ariaLabel",r.settingsTexts.a11y.triggerLabel)("pTooltip",r.settingsTexts.triggerTooltip)("text",!0)("rounded",!0),a(4),Se(r.settingsOpen())}},dependencies:[ze,de,le,Ke,ae,se,Je,Oe,wt,Mt,Rt,Et,Ze],styles:['[_nghost-%COMP%]{display:block;height:100dvh;--shell-topbar-bg: #FFFFFF;--shell-topbar-border: var(--sm-violet-100);--shell-topbar-text: var(--sm-violet-800);--shell-topbar-text-strong: var(--sm-violet-900);--shell-topbar-text-muted: var(--sm-violet-600);--shell-topbar-hover-bg: color-mix(in srgb, var(--sm-violet-500) 10%, transparent);--shell-topbar-active-bg: var(--sm-violet-100);--shell-topbar-active-text: var(--sm-violet-800);--shell-topbar-badge-bg: var(--sm-violet-100)}.app-dark[_nghost-%COMP%], .app-dark [_nghost-%COMP%]{--shell-topbar-bg: #1A1B22;--shell-topbar-border: color-mix(in srgb, var(--sm-violet-300) 8%, transparent);--shell-topbar-text: var(--sm-violet-100);--shell-topbar-text-strong: var(--sm-violet-100);--shell-topbar-text-muted: var(--sm-violet-300);--shell-topbar-hover-bg: color-mix(in srgb, var(--sm-violet-400) 12%, transparent);--shell-topbar-active-bg: color-mix(in srgb, var(--sm-violet-500) 22%, transparent);--shell-topbar-active-text: var(--sm-violet-100);--shell-topbar-badge-bg: color-mix(in srgb, var(--sm-violet-500) 14%, transparent)}.shell[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100dvh}.shell__topbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;background:color-mix(in srgb,var(--shell-topbar-bg) 85%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--shell-topbar-border);color:var(--shell-topbar-text)}.shell__brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem}.shell__brand-mark[_ngcontent-%COMP%]{width:2rem;height:2rem;display:block}.shell__brand[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{margin:0;font-size:1.05rem;font-weight:600;letter-spacing:-.01em;color:var(--shell-topbar-text-strong)}.shell__alpha[_ngcontent-%COMP%]{font-family:var(--sm-font-display-brand);font-weight:600;font-size:10px;line-height:1;letter-spacing:.06em;text-transform:uppercase;color:#ad322b;background:#ad322b14;border-radius:var(--sm-radius-sm);padding:4px 8px;margin-left:8px;-webkit-user-select:none;user-select:none;display:inline-block;vertical-align:middle;white-space:nowrap}.app-dark[_nghost-%COMP%] .shell__alpha[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__alpha[_ngcontent-%COMP%]{color:#e07570;background:#cf464024}.shell__version[_ngcontent-%COMP%]{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:var(--sm-radius-sm);font-family:var(--sm-font-mono);font-size:11px;line-height:1;font-weight:500;letter-spacing:.02em;color:var(--p-text-muted-color);background:var(--p-content-hover-background);vertical-align:middle;-webkit-user-select:text;user-select:text}.shell__dev[_ngcontent-%COMP%]{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:var(--sm-radius-sm);font-family:var(--sm-font-display-brand);font-size:10px;line-height:1;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8a5a00;background:#d69e2e29;vertical-align:middle;-webkit-user-select:none;user-select:none}.app-dark[_nghost-%COMP%] .shell__dev[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__dev[_ngcontent-%COMP%]{color:#fbd38d;background:#d69e2e38}.shell__lens[_ngcontent-%COMP%]{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:var(--sm-radius-sm);font-size:11px;line-height:1;font-weight:600;letter-spacing:.02em;color:var(--provider-color);background:color-mix(in srgb,var(--provider-color) 14%,transparent);vertical-align:middle;-webkit-user-select:none;user-select:none}.app-dark[_nghost-%COMP%] .shell__lens[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__lens[_ngcontent-%COMP%]{color:var(--provider-color-dark);background:color-mix(in srgb,var(--provider-color-dark) 24%,transparent)}.shell__update-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:3px 8px;font-family:inherit;font-size:11px;line-height:1;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--p-primary-color);background:var(--p-primary-50);border:1px solid var(--p-primary-200);border-radius:var(--sm-radius-pill);text-decoration:none;cursor:pointer;transition:background-color .12s ease,color .12s ease;vertical-align:middle}.shell__update-chip[_ngcontent-%COMP%]:hover, .shell__update-chip[_ngcontent-%COMP%]:focus-visible{background:var(--p-primary-100);color:var(--p-primary-700)}.shell__update-chip[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:12px;transform:translateY(1px)}.app-dark[_nghost-%COMP%] .shell__update-chip[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__update-chip[_ngcontent-%COMP%]{color:var(--p-primary-300);background:#ffffff0a;border-color:var(--p-primary-700)}.shell__update-npm-link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;margin-left:4px;padding:3px 4px;color:var(--p-primary-color);text-decoration:none;border-radius:var(--sm-radius-pill);transition:color .12s ease,background-color .12s ease;vertical-align:middle}.shell__update-npm-link[_ngcontent-%COMP%]:hover, .shell__update-npm-link[_ngcontent-%COMP%]:focus-visible{color:var(--p-primary-700);background:var(--p-primary-50)}.shell__update-npm-link[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:12px;transform:translateY(1px)}.app-dark[_nghost-%COMP%] .shell__update-npm-link[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__update-npm-link[_ngcontent-%COMP%]{color:var(--p-primary-300)}.app-dark[_nghost-%COMP%] .shell__update-npm-link[_ngcontent-%COMP%]:hover, .app-dark [_nghost-%COMP%] .shell__update-npm-link[_ngcontent-%COMP%]:hover, .app-dark[_nghost-%COMP%] .shell__update-npm-link[_ngcontent-%COMP%]:focus-visible, .app-dark [_nghost-%COMP%] .shell__update-npm-link[_ngcontent-%COMP%]:focus-visible{color:var(--p-primary-200);background:#ffffff0a}.shell__tag[_ngcontent-%COMP%]{margin:.35rem 0 0;font-size:.72rem;color:var(--shell-topbar-text-muted);letter-spacing:.02em;text-transform:uppercase;max-width:40rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl}.shell__nav[_ngcontent-%COMP%]{display:flex;gap:.25rem;margin-left:auto}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:.5rem .9rem;border-radius:.5rem;font-size:.9rem;font-weight:500;color:var(--shell-topbar-text-muted);transition:background .15s ease,color .15s ease}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong)}.shell__nav[_ngcontent-%COMP%] a.is-active[_ngcontent-%COMP%]{background:var(--shell-topbar-active-bg);color:var(--shell-topbar-active-text)}.shell__search[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem;position:relative}.shell__nav-search[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:none;border-radius:.5rem;background:transparent;color:var(--shell-topbar-text-muted);cursor:pointer;transition:background .15s ease,color .15s ease,opacity .15s ease}.shell__nav-search[_ngcontent-%COMP%]:hover{background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong)}.shell__search.is-open[_ngcontent-%COMP%] .shell__nav-search[_ngcontent-%COMP%]{color:var(--shell-topbar-text-strong)}.shell__nav-search[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:.95rem}.shell__search.has-query[_ngcontent-%COMP%]:not(.is-open) .shell__nav-search[_ngcontent-%COMP%]{position:relative;color:var(--shell-topbar-text-strong)}.shell__search.has-query[_ngcontent-%COMP%]:not(.is-open) .shell__nav-search[_ngcontent-%COMP%]:after{content:"";position:absolute;top:.45rem;right:.45rem;width:6px;height:6px;border-radius:50%;background:var(--p-primary-color)}.shell__search-input[_ngcontent-%COMP%]{width:240px;height:2.25rem}.shell__search-clear[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;padding:0;border:none;border-radius:50%;background:transparent;color:var(--shell-topbar-text-muted);cursor:pointer;line-height:1}.shell__search-clear[_ngcontent-%COMP%]:hover{background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong)}.shell__search-clear[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:.7rem}.shell__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;--p-button-text-secondary-color: var(--shell-topbar-text-muted);--p-button-text-secondary-hover-color: var(--shell-topbar-text-strong);--p-button-text-secondary-hover-background: var(--shell-topbar-hover-bg);--p-button-text-secondary-active-color: var(--shell-topbar-text-strong);--p-button-text-secondary-active-background: var(--shell-topbar-hover-bg)}.shell__refresh[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:var(--sm-radius-pill);background:transparent;color:var(--shell-topbar-text-muted);cursor:pointer;transition:background .15s ease,color .15s ease}.shell__refresh[_ngcontent-%COMP%]:hover:not(:disabled), .shell__refresh[_ngcontent-%COMP%]:focus-visible:not(:disabled){background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong);outline:none}.shell__refresh[_ngcontent-%COMP%]:disabled{cursor:progress;opacity:.7}.shell__refresh[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:1rem}.shell__main[_ngcontent-%COMP%]{flex:1;min-height:0;overflow-y:auto;width:100%}@media(max-width:1280px){.shell__topbar[_ngcontent-%COMP%]{gap:1rem;padding:.5rem 1rem}.shell__tag[_ngcontent-%COMP%]{max-width:26rem}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:.4rem .7rem;font-size:.85rem}}.viewport-warning[_ngcontent-%COMP%]{display:none}@media(max-width:767px){.viewport-warning[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--sm-bg-content)}.viewport-warning__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.85rem;max-width:22rem}.viewport-warning__icon[_ngcontent-%COMP%]{font-size:3rem;color:var(--p-primary-color);margin-bottom:.25rem}.viewport-warning__title[_ngcontent-%COMP%]{margin:0;font-size:1.35rem;font-weight:700;color:var(--p-text-color);line-height:1.25}.viewport-warning__subtitle[_ngcontent-%COMP%]{margin:0;font-size:1rem;font-weight:500;color:var(--p-primary-color);line-height:1.35}.viewport-warning__body[_ngcontent-%COMP%]{margin:0;color:var(--p-text-muted-color);line-height:1.5;font-size:.9rem}.shell[_ngcontent-%COMP%]{display:none}}'],changeDetection:0})}return t})();Ee(It,kt).catch(t=>console.error(t));