@skill-map/cli 0.28.0 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/cli/tutorial/sm-tutorial.md +94 -20
  2. package/dist/cli.js +1561 -1214
  3. package/dist/cli.js.map +1 -1
  4. package/dist/index.js +116 -99
  5. package/dist/index.js.map +1 -1
  6. package/dist/kernel/index.d.ts +903 -1004
  7. package/dist/kernel/index.js +116 -99
  8. package/dist/kernel/index.js.map +1 -1
  9. package/dist/ui/chunk-3SI3TVER.js +7 -0
  10. package/dist/ui/{chunk-4GTCV7V4.js → chunk-47OZB7LR.js} +1 -1
  11. package/dist/ui/{chunk-JMP2LDMI.js → chunk-5JBW2LUN.js} +1 -1
  12. package/dist/ui/{chunk-Y7MXGXU3.js → chunk-DZBSELHN.js} +1 -1
  13. package/dist/ui/{chunk-Z2667C3S.js → chunk-FEPH4VNB.js} +1 -1
  14. package/dist/ui/{chunk-PY2R7LHN.js → chunk-FQOZBFJ5.js} +1 -1
  15. package/dist/ui/chunk-HOJFYUH4.js +123 -0
  16. package/dist/ui/{chunk-WOLLYGGL.js → chunk-KJQEO6P3.js} +1 -1
  17. package/dist/ui/chunk-LNRQ7VKE.js +1 -0
  18. package/dist/ui/{chunk-VO6NF24F.js → chunk-LS2NXZQZ.js} +1 -1
  19. package/dist/ui/{chunk-J3YWUNFO.js → chunk-LTQTJU54.js} +1 -1
  20. package/dist/ui/{chunk-6BG7PBUN.js → chunk-NGIFGXW7.js} +1 -1
  21. package/dist/ui/{chunk-5W6J6H76.js → chunk-SBCO7ZSP.js} +1 -1
  22. package/dist/ui/chunk-VB56BUGO.js +1 -0
  23. package/dist/ui/{chunk-UXCAEDR6.js → chunk-VDQLDTTR.js} +1 -1
  24. package/dist/ui/{chunk-AD7RBRD3.js → chunk-WJLIYGWJ.js} +5 -5
  25. package/dist/ui/chunk-YQIWQVJ6.js +317 -0
  26. package/dist/ui/favicon-matrix.svg +15 -0
  27. package/dist/ui/index.html +12 -2
  28. package/dist/ui/main-X5YGJFU6.js +2 -0
  29. package/dist/ui/{styles-IKG3B6AM.css → styles-2WO3KNOY.css} +1 -1
  30. package/package.json +10 -7
  31. package/dist/ui/chunk-BGDH7CDV.js +0 -1
  32. package/dist/ui/chunk-H2J55DNK.js +0 -7
  33. package/dist/ui/chunk-Q7L6LLAK.js +0 -1
  34. package/dist/ui/chunk-VH5GRUT7.js +0 -255
  35. package/dist/ui/chunk-XCUOAV77.js +0 -123
  36. package/dist/ui/main-TZL26MZU.js +0 -2
@@ -0,0 +1,15 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 64 64" fill="none">
2
+ <!--
3
+ Matrix-theme favicon. Activated by `ThemeService` (effect) when
4
+ `extraTheme === 'matrix'`, swapped back to `favicon.svg` when matrix
5
+ clears. Stroke ramp mirrors `skill-map-mark-matrix.svg` (accent-dim
6
+ triangle, accent vertex) so the tab glyph reads as the same brand
7
+ mark in green.
8
+ -->
9
+ <line x1="16" y1="20" x2="48" y2="20" stroke="#34D399" stroke-width="3.5" stroke-linecap="round" />
10
+ <line x1="16" y1="20" x2="32" y2="48" stroke="#34D399" stroke-width="3.5" stroke-linecap="round" />
11
+ <line x1="48" y1="20" x2="32" y2="48" stroke="#34D399" stroke-width="3.5" stroke-linecap="round" />
12
+ <circle cx="16" cy="20" r="6" fill="#34D399" />
13
+ <circle cx="48" cy="20" r="6" fill="#34D399" />
14
+ <circle cx="32" cy="48" r="8" fill="#39FF14" />
15
+ </svg>
@@ -20,8 +20,18 @@
20
20
  -->
21
21
  <link rel="icon" type="image/svg+xml" href="favicon.svg">
22
22
  <link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
23
- <style>:root{--ff-white:#ffffff;--ff-black:#000000;--ff-gray-0:#ffffff;--ff-gray-25:#fcfcfc;--ff-gray-50:#f8f8f7;--ff-gray-75:#f2f2f0;--ff-gray-100:#e9e9e6;--ff-gray-150:#dcdcd7;--ff-gray-200:#c9c9c1;--ff-gray-300:#afafa5;--ff-gray-400:#8d8d81;--ff-gray-500:#69695f;--ff-gray-600:#505048;--ff-gray-700:#3c3c36;--ff-gray-800:#272722;--ff-gray-900:#1b1b18;--ff-gray-950:#141412;--ff-gray-1000:#0f0f0d;--ff-alpha-black-04:rgba(15, 15, 13, .04);--ff-alpha-black-06:rgba(15, 15, 13, .06);--ff-alpha-black-08:rgba(15, 15, 13, .08);--ff-alpha-black-10:rgba(15, 15, 13, .1);--ff-alpha-black-12:rgba(15, 15, 13, .12);--ff-alpha-black-15:rgba(15, 15, 13, .15);--ff-alpha-black-20:rgba(15, 15, 13, .2);--ff-alpha-black-30:rgba(15, 15, 13, .3);--ff-alpha-black-40:rgba(15, 15, 13, .4);--ff-alpha-black-60:rgba(15, 15, 13, .6);--ff-alpha-white-04:rgba(255, 255, 255, .04);--ff-alpha-white-06:rgba(255, 255, 255, .06);--ff-alpha-white-08:rgba(255, 255, 255, .08);--ff-alpha-white-10:rgba(255, 255, 255, .1);--ff-alpha-white-12:rgba(255, 255, 255, .12);--ff-alpha-white-15:rgba(255, 255, 255, .15);--ff-alpha-white-20:rgba(255, 255, 255, .2);--ff-alpha-white-30:rgba(255, 255, 255, .3);--ff-alpha-white-40:rgba(255, 255, 255, .4);--ff-alpha-white-60:rgba(255, 255, 255, .6);--ff-blue-100:#e8f2ff;--ff-blue-200:#bad8ff;--ff-blue-300:#7db7ff;--ff-blue-400:#4176ff;--ff-blue-500:#2759db;--ff-blue-600:#1b3f9e;--ff-green-100:#e7f7ef;--ff-green-300:#71c795;--ff-green-400:#2b9b5f;--ff-green-500:#1e7748;--ff-yellow-100:#fff5de;--ff-yellow-300:#e1b354;--ff-yellow-400:#bb8121;--ff-yellow-500:#916112;--ff-red-100:#feeceb;--ff-red-300:#e48d85;--ff-red-400:#c55245;--ff-red-500:#9e3a2f;--ff-radius-4:4px;--ff-radius-6:6px;--ff-radius-pill:999px;--ff-font-family-sans:"Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--ff-font-family-mono:ui-monospace, "SFMono-Regular", "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;--ff-font-size-xs:12px;--ff-font-size-sm:14px;--ff-font-size-md:16px;--ff-font-size-lg:18px;--ff-shadow-1:0 1px 2px rgba(15, 15, 13, .05), 0 8px 20px rgba(15, 15, 13, .04);--ff-shadow-2:0 10px 28px rgba(15, 15, 13, .08), 0 3px 10px rgba(15, 15, 13, .05);--ff-shadow-3:0 18px 48px rgba(15, 15, 13, .12), 0 6px 16px rgba(15, 15, 13, .08)}:root{--ff-color-surface-page:var(--ff-gray-25);--ff-color-surface-canvas:var(--ff-gray-25);--ff-color-surface-card:var(--ff-white);--ff-color-surface-group:rgba(65, 118, 255, .14);--ff-color-surface-group-active:rgba(65, 118, 255, .2);--ff-color-surface-muted:var(--ff-gray-50);--ff-color-surface-soft:var(--ff-gray-75);--ff-color-surface-accent-soft:rgba(65, 118, 255, .1);--ff-color-border-default:var(--ff-alpha-black-12);--ff-color-border-subtle:var(--ff-alpha-black-08);--ff-color-border-strong:var(--ff-alpha-black-20);--ff-color-border-accent:var(--ff-blue-500);--ff-color-text-primary:var(--ff-gray-800);--ff-color-text-secondary:var(--ff-gray-500);--ff-color-text-tertiary:var(--ff-gray-400);--ff-color-text-inverse:var(--ff-white);--ff-color-accent:var(--ff-blue-500);--ff-color-accent-strong:var(--ff-blue-600);--ff-color-success:var(--ff-green-400);--ff-color-warning:var(--ff-yellow-400);--ff-color-danger:var(--ff-red-400);--ff-color-disabled-surface:var(--ff-gray-100);--ff-color-disabled-border:var(--ff-alpha-black-10);--ff-color-disabled-text:var(--ff-gray-300);--ff-color-selection-fill:rgba(65, 118, 255, .12);--ff-color-selection-stroke:rgba(65, 118, 255, .28);--ff-color-grid:var(--ff-alpha-black-08);--ff-color-grid-strong:var(--ff-alpha-black-15);--ff-color-connector-connected:var(--ff-blue-500);--ff-color-connection:var(--ff-gray-600);--ff-color-connection-muted:var(--ff-gray-300);--ff-color-connection-hover:var(--ff-alpha-black-12);--ff-color-grouping-drop-target-border:var(--ff-gray-800);--ff-color-grouping-drop-target-border-active:var(--ff-gray-800);--ff-color-waypoint-fill:var(--ff-white);--ff-color-waypoint-stroke:var(--ff-blue-500);--ff-color-waypoint-candidate-fill:var(--ff-white);--ff-color-waypoint-candidate-stroke:var(--ff-green-400);--ff-color-minimap-surface:var(--ff-white);--ff-color-minimap-node:var(--ff-gray-700);--ff-color-minimap-view:rgba(65, 118, 255, .14);--ff-color-magnetic-line:var(--ff-blue-500);--ff-color-magnetic-rect-fill:rgba(65, 118, 255, .08);--ff-color-magnetic-rect-border:rgba(65, 118, 255, .24);--ff-radius-node:var(--ff-radius-4);--ff-radius-group:var(--ff-radius-4);--ff-radius-control:var(--ff-radius-4);--ff-radius-socket-square:var(--ff-radius-6);--ff-radius-pill:var(--ff-radius-pill);--ff-font-sans:var(--ff-font-family-sans);--ff-font-mono:var(--ff-font-family-mono);--ff-font-size-body:var(--ff-font-size-sm);--ff-font-size-label:var(--ff-font-size-xs);--ff-shadow-surface:var(--ff-shadow-1);--ff-shadow-floating:var(--ff-shadow-2)}:root{--ff-flow-background-color:var(--ff-color-surface-page);--ff-flow-text-color:var(--ff-color-text-primary);--ff-flow-font-family:var(--ff-font-sans);--ff-flow-font-size:var(--ff-font-size-body);--ff-canvas-background-color:var(--ff-color-surface-canvas);--ff-node-background-color:var(--ff-color-surface-card);--ff-node-background-color-inverse:var(--ff-color-text-primary);--ff-node-border-color:var(--ff-color-border-default);--ff-node-border-color-selected:var(--ff-color-border-accent);--ff-node-color:var(--ff-color-text-primary);--ff-node-border-radius:var(--ff-radius-node);--ff-node-shadow:var(--ff-shadow-surface);--ff-node-shadow-selected:var(--ff-shadow-floating);--ff-node-width:120px;--ff-node-min-height:56px;--ff-node-padding:24px;--ff-group-background-color:var(--ff-color-surface-group);--ff-group-background-color-active:var(--ff-color-surface-group-active);--ff-group-border-color:var(--ff-color-border-subtle);--ff-group-border-color-selected:var(--ff-color-border-accent);--ff-group-border-color-active:var(--ff-color-border-accent);--ff-group-color:var(--ff-color-text-secondary);--ff-group-border-radius:var(--ff-radius-group);--ff-group-min-width:180px;--ff-group-min-height:120px;--ff-group-padding:24px;--ff-grouping-drop-target-border-color:var(--ff-color-grouping-drop-target-border);--ff-grouping-drop-target-border-style:dashed;--ff-grouping-drop-target-border-width:1px;--ff-grouping-drop-target-border-color-active:var(--ff-color-grouping-drop-target-border-active);--ff-grouping-drop-target-border-style-active:dashed;--ff-grouping-drop-target-border-width-active:2px;--ff-handle-background-color:var(--ff-color-surface-card);--ff-handle-border-color:var(--ff-color-border-strong);--ff-handle-color:var(--ff-color-text-secondary);--ff-handle-size:12px;--ff-handle-radius:var(--ff-radius-control);--ff-rotate-handle-size:16px;--ff-connector-background-color:var(--ff-color-surface-card);--ff-connector-border-color:var(--ff-color-border-default);--ff-connector-connected-color:var(--ff-color-connector-connected);--ff-connector-accent-color:var(--ff-color-accent);--ff-connector-disabled-color:var(--ff-color-disabled-surface);--ff-connector-disabled-border-color:var(--ff-color-disabled-border);--ff-connector-size:16px;--ff-connector-node-ring-color:var(--ff-canvas-background-color);--ff-outlet-background-color:var(--ff-color-surface-muted);--ff-outlet-border-color:var(--ff-color-border-default);--ff-outlet-color:var(--ff-color-accent);--ff-outlet-disabled-background-color:var(--ff-color-disabled-surface);--ff-outlet-disabled-border-color:var(--ff-color-disabled-border);--ff-outlet-disabled-color:var(--ff-color-disabled-text);--ff-outlet-border-radius:var(--ff-radius-pill);--ff-outlet-padding-y:6px;--ff-outlet-padding-x:12px;--ff-connection-color:var(--ff-color-connection);--ff-snap-connection-color:var(--ff-color-connection-muted);--ff-connection-hover-color:var(--ff-color-connection-hover);--ff-connection-selected-color:var(--ff-color-accent);--ff-connection-label-color:var(--ff-color-text-secondary);--ff-connection-content-color:var(--ff-node-color);--ff-connection-content-background-color:var(--ff-node-background-color);--ff-connection-content-border-color:var(--ff-node-border-color);--ff-connection-content-border-color-selected:var(--ff-connection-selected-color);--ff-connection-content-border-radius:var(--ff-node-border-radius);--ff-connection-content-font-size:13px;--ff-connection-content-padding-y:2px;--ff-connection-content-padding-x:8px;--ff-connection-width:2px;--ff-connection-hit-width:14px;--ff-connection-drag-handle-fill:var(--ff-color-surface-card);--ff-connection-drag-handle-stroke:var(--ff-color-accent);--ff-marker-color:var(--ff-connection-color);--ff-waypoint-fill:var(--ff-color-waypoint-fill);--ff-waypoint-stroke:var(--ff-color-waypoint-stroke);--ff-waypoint-candidate-fill:var(--ff-color-waypoint-candidate-fill);--ff-waypoint-candidate-stroke:var(--ff-color-waypoint-candidate-stroke);--ff-background-line-color:var(--ff-color-grid);--ff-background-dot-color:var(--ff-color-grid-strong);--ff-selection-area-color:var(--ff-color-selection-fill);--ff-selection-area-border-color:var(--ff-color-selection-stroke);--ff-minimap-background-color:var(--ff-color-minimap-surface);--ff-minimap-border-color:var(--ff-color-border-default);--ff-minimap-node-color:var(--ff-color-minimap-node);--ff-minimap-node-selected-color:var(--ff-color-accent);--ff-minimap-view-color:var(--ff-color-minimap-view);--ff-minimap-view-border-color:var(--ff-color-selection-stroke);--ff-minimap-border-radius:var(--ff-radius-node);--ff-minimap-shadow:var(--ff-shadow-floating);--ff-magnetic-line-color:var(--ff-color-magnetic-line);--ff-magnetic-rect-fill:var(--ff-color-magnetic-rect-fill);--ff-magnetic-rect-border-color:var(--ff-color-magnetic-rect-border);--ff-external-item-background-color:var(--ff-color-surface-card);--ff-external-item-border-color:var(--ff-color-border-default);--ff-external-item-color:var(--ff-color-text-primary);--ff-external-item-disabled-color:var(--ff-color-disabled-text);--ff-external-item-disabled-background-color:var(--ff-color-disabled-surface);--ff-external-item-border-radius:var(--ff-radius-node);--ff-external-item-shadow:var(--ff-shadow-surface);--ff-external-item-preview-shadow:var(--ff-shadow-floating);--ff-external-item-placeholder-background-color:var(--ff-color-surface-soft);--ff-external-item-placeholder-border-color:var(--ff-color-border-subtle)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}:root{--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-bg-page:#f8fafc;--sm-bg-content:#ffffff;--sm-bg-hover:#f1f5f9;--sm-border:#e2e8f0;--sm-nav-active-bg:#eff6ff;--sm-violet-50:#F5F3FF;--sm-violet-100:#EDE9FE;--sm-violet-200:#DDD6FE;--sm-violet-300:#C4B5FD;--sm-violet-400:#A78BFA;--sm-violet-500:#8B5CF6;--sm-violet-600:#7C3AED;--sm-violet-700:#6D28D9;--sm-violet-800:#4C1D95;--sm-violet-900:#2E1065;--sm-edge-invokes:#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-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-shadow-topbar:0 1px 2px rgba(0, 0, 0, .03);--sm-shadow-eventlog:0 -4px 16px rgba(0, 0, 0, .08);--sm-shadow-floating:0 4px 14px rgba(0, 0, 0, .08);--sm-shadow-card:0 1px 2px rgba(0, 0, 0, .05);--sm-shadow-card-hover:0 3px 12px rgba(0, 0, 0, .12)}html,body{margin:0;padding:0;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--sm-bg-page);color:var(--p-text-color)}*,*:before,*:after{box-sizing:border-box}*{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)}</style><link rel="stylesheet" href="styles-IKG3B6AM.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-IKG3B6AM.css"></noscript></head>
23
+ <!--
24
+ Matrix-theme font (JetBrains Mono). Loaded once via Google Fonts; the
25
+ @font-face stylesheet is lazy (browsers only fetch the binary when
26
+ an element actually uses 'JetBrains Mono'), so non-matrix users pay
27
+ nothing for the glyph payload. Applied via `html.app-matrix` in
28
+ `themes/matrix.css`.
29
+ -->
30
+ <link rel="preconnect" href="https://fonts.googleapis.com">
31
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
32
+ <style>@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxTN1OVgaY.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxTPlOVgaY.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxTOVOVgaY.woff2) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxTNVOVgaY.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxTNFOVgaY.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxTOlOV.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
33
+ <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-bg-page:#f8fafc;--sm-bg-content:#ffffff;--sm-bg-hover:#f1f5f9;--sm-border:#e2e8f0;--sm-nav-active-bg:#eff6ff;--sm-violet-50:#F5F3FF;--sm-violet-100:#EDE9FE;--sm-violet-200:#DDD6FE;--sm-violet-300:#C4B5FD;--sm-violet-400:#A78BFA;--sm-violet-500:#8B5CF6;--sm-violet-600:#7C3AED;--sm-violet-700:#6D28D9;--sm-violet-800:#4C1D95;--sm-violet-900:#2E1065;--sm-edge-invokes:#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-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-shadow-topbar:0 1px 2px rgba(0, 0, 0, .03);--sm-shadow-eventlog:0 -4px 16px rgba(0, 0, 0, .08);--sm-shadow-floating:0 4px 14px rgba(0, 0, 0, .08);--sm-shadow-card:0 1px 2px rgba(0, 0, 0, .05);--sm-shadow-card-hover:0 3px 12px rgba(0, 0, 0, .12)}html,body{margin:0;padding:0;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--sm-bg-page);color:var(--p-text-color)}*,*:before,*:after{box-sizing:border-box}*{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)}</style><link rel="stylesheet" href="styles-2WO3KNOY.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-2WO3KNOY.css"></noscript></head>
24
34
  <body>
25
35
  <sm-root></sm-root>
26
- <link rel="modulepreload" href="chunk-WOLLYGGL.js"><link rel="modulepreload" href="chunk-PY2R7LHN.js"><link rel="modulepreload" href="chunk-BGDH7CDV.js"><link rel="modulepreload" href="chunk-J3YWUNFO.js"><link rel="modulepreload" href="chunk-H2J55DNK.js"><link rel="modulepreload" href="chunk-Q7L6LLAK.js"><script src="main-TZL26MZU.js" type="module"></script></body>
36
+ <link rel="modulepreload" href="chunk-KJQEO6P3.js"><link rel="modulepreload" href="chunk-FQOZBFJ5.js"><link rel="modulepreload" href="chunk-LNRQ7VKE.js"><link rel="modulepreload" href="chunk-LTQTJU54.js"><link rel="modulepreload" href="chunk-3SI3TVER.js"><link rel="modulepreload" href="chunk-VB56BUGO.js"><script src="main-X5YGJFU6.js" type="module"></script></body>
27
37
  </html>
@@ -0,0 +1,2 @@
1
+ import{a as ze,b as ee,c as He}from"./chunk-KJQEO6P3.js";import{a as we,b as Ce,c as Te,d as G,e as Re,f as xe,g as Ee,h as Me,i as Oe,j as Ne,k as je,u as w,v as Ke,w as Ue,x as Be}from"./chunk-FQOZBFJ5.js";import{a as E,b as te,c as Je,d as Qe,e as Ve}from"./chunk-LNRQ7VKE.js";import{Ca as fe,Fa as Q,Ia as ye,J as A,Ja as ve,Ka as S,Mc as Le,N as K,Na as D,Nc as De,O as s,Oa as N,T as B,Ta as g,Tb as m,U as z,Ua as l,Va as p,Wa as b,Z as ue,ac as be,bd as W,ca as ge,cd as Y,da as L,db as V,ea as H,f as me,fb as x,gd as Fe,hb as I,id as Z,jd as c,kd as F,la as he,ld as $e,m as O,md as $,nd as q,oa as a,rc as _e,sc as Ie,tb as pe,tc as Pe,uc as j,vc as ke,wa as J,wb as u,wc as Ae,xb as h,xc as Se,yb as X}from"./chunk-LTQTJU54.js";import"./chunk-3SI3TVER.js";import"./chunk-VB56BUGO.js";var de="skill-map",_={brand:de,alpha:"ALPHA - do not use in production",nav:{graph:"Graph",list:"List",searchLabel:"Search nodes (coming soon)",searchTooltip:"Search (coming soon)",listLabel:"List view (coming soon)",listTooltip:"List (coming soon)"},actions:{},badge:{nodes:"nodes",graphInfo:(i,e)=>`Run scan
2
+ ${i.toLocaleString()} nodes \xB7 ${e.toLocaleString()} links`,graphInfoA11y:(i,e)=>`Graph contains ${i} nodes and ${e} links`},a11y:{viewSwitcher:"View switcher"},viewportWarning:{title:"Looks like you're on a small screen",subtitle:"skill-map is built for desktop",body:"The graph and inspector need room to breathe. Pop this open on a screen at least 768px wide. See you there."},documentTitle:(i,e)=>{let t=i?`${i} - ${de}`:de;return e?`${t} v${e}`:t}};var Xe=[{path:"",pathMatch:"full",redirectTo:"graph"},{path:"graph",loadComponent:()=>import("./chunk-YQIWQVJ6.js").then(i=>i.GraphView),title:_.nav.graph},{path:"list",loadComponent:()=>import("./chunk-47OZB7LR.js").then(i=>i.ListView),title:_.nav.list},{path:"**",redirectTo:"graph"}];var P={errors:{unknownMode:i=>`SKILL_MAP_MODE: unknown value "${i}"`,restPrefix:i=>`BFF error [${i}]: `,malformedResponse:"BFF returned a malformed response",demoFetchFailed:(i,e)=>`Demo bundle fetch failed for "${i}": ${e}`,demoParseFailed:(i,e)=>`Demo bundle parse failed for "${i}": ${e}`,graphFormatNotInDemo:i=>`Graph format "${i}" is not bundled in demo mode (only "ascii").`}};function ie(i){let e=new TextEncoder().encode(i),t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}var d="/api",ne=class i{http;ws;kindRegistry;contributionsRegistry;constructor(e,t,n,r){this.http=e??s(j),this.ws=t??s($),this.kindRegistry=n??s(w),this.contributionsRegistry=r??s(ee)}async health(){return this.getJson(`${d}/health`)}async loadScan(){let[e]=await Promise.all([this.getJson(`${d}/scan`),this.listNodes({limit:0}).catch(()=>null)]);return e}async runScan(){return this.patchJson(`${d}/scan`,{},"POST")}async listNodes(e={}){let t=pt(e),n=await this.getJson(`${d}/nodes${t}`);return this.ingestRegistry(n.kindRegistry),this.ingestContributionsRegistry(n.contributionsRegistry),n}async getNode(e,t={}){let n=ie(e),r=t.includeBody?"?include=body":"";try{let o=await this.getJson(`${d}/nodes/${n}${r}`);return this.ingestRegistry(o.kindRegistry),this.ingestContributionsRegistry(o.contributionsRegistry),o}catch(o){if(o instanceof c&&o.code==="not-found")return null;throw o}}async listLinks(e={}){let t=dt(e),n=await this.getJson(`${d}/links${t}`);return this.ingestRegistry(n.kindRegistry),this.ingestContributionsRegistry(n.contributionsRegistry),n}async listIssues(e={}){let t=ct(e),n=await this.getJson(`${d}/issues${t}`);return this.ingestRegistry(n.kindRegistry),this.ingestContributionsRegistry(n.contributionsRegistry),n}async loadGraph(e="ascii"){let t=`${d}/graph?format=${encodeURIComponent(e)}`;try{return await O(this.http.get(t,{responseType:"text"}))}catch(n){throw this.translateError(n)}}async loadConfig(){let e=await this.getJson(`${d}/config`);return this.ingestRegistry(e.kindRegistry),this.ingestContributionsRegistry(e.contributionsRegistry),e.value}async listPlugins(){let e=await this.getJson(`${d}/plugins`);return this.ingestRegistry(e.kindRegistry),this.ingestContributionsRegistry(e.contributionsRegistry),e}async setPluginEnabled(e,t){let n=await this.patchJson(`${d}/plugins/${encodeURIComponent(e)}`,{enabled:t});return this.ingestRegistry(n.kindRegistry),this.ingestContributionsRegistry(n.contributionsRegistry),n}async setPluginExtensionEnabled(e,t,n){let r=await this.patchJson(`${d}/plugins/${encodeURIComponent(e)}/extensions/${encodeURIComponent(t)}`,{enabled:n});return this.ingestRegistry(r.kindRegistry),this.ingestContributionsRegistry(r.contributionsRegistry),r}async applyPluginChanges(e){let t=await this.patchJson(`${d}/plugins`,{changes:e});return this.ingestRegistry(t.kindRegistry),this.ingestContributionsRegistry(t.contributionsRegistry),t}async getPreferences(){return await this.getJson(`${d}/preferences`)}async setPreferences(e){return await this.patchJson(`${d}/preferences`,e)}async getProjectPreferences(){return await this.getJson(`${d}/project-preferences`)}async setProjectPreferences(e){return await this.patchJson(`${d}/project-preferences`,e)}async setFavorite(e){let t=ie(e);try{await O(this.http.put(`${d}/favorites/${t}`,null))}catch(n){throw this.translateError(n)}}async unsetFavorite(e){let t=ie(e);try{await O(this.http.delete(`${d}/favorites/${t}`))}catch(n){throw this.translateError(n)}}async bumpSidecar(e,t={}){let n={nodePath:e};return t.force!==void 0&&(n.force=t.force),t.confirm!==void 0&&(n.confirm=t.confirm),this.patchJson(`${d}/sidecar/bump`,n,"POST")}async getUpdateStatus(){return this.getJson(`${d}/update-status`)}async getRegisteredAnnotations(){return(await this.getJson(`${d}/annotations/registered`)).items}ingestRegistry(e){e&&this.kindRegistry.ingest(e)}ingestContributionsRegistry(e){this.contributionsRegistry.setRegistry(e)}async lookupContribution(e,t,n){let r=new URLSearchParams({path:n});try{return(await this.getJson(`${d}/contributions/${encodeURIComponent(e)}/${encodeURIComponent(t)}?${r.toString()}`)).items[0]??null}catch{return null}}events(){return this.ws.events$}async getJson(e){try{return await O(this.http.get(e))}catch(t){throw this.translateError(t)}}async patchJson(e,t,n="PATCH"){try{let r=n==="POST"?this.http.post(e,t):this.http.patch(e,t);return await O(r)}catch(r){throw this.translateError(r)}}translateError(e){if(e instanceof c)return e;if(e instanceof Pe){let n=mt(e.error);return n?new c(n.error.code,n.error.message,n.error.details):new c("internal",e.message||P.errors.malformedResponse)}let t=e instanceof Error?e.message:String(e);return new c("internal",t)}static \u0275fac=function(t){return new(t||i)(K(j),K($),K(w),K(ee))};static \u0275prov=A({token:i,factory:i.\u0275fac,providedIn:"root"})};function pt(i){let e=new URLSearchParams;i.kind&&i.kind.length>0&&e.set("kind",i.kind.join(",")),i.hasIssues!==void 0&&e.set("hasIssues",String(i.hasIssues)),i.path&&e.set("path",i.path),i.limit!==void 0&&e.set("limit",String(i.limit)),i.offset!==void 0&&e.set("offset",String(i.offset));let t=e.toString();return t?`?${t}`:""}function dt(i){let e=new URLSearchParams;i.kind&&i.kind.length>0&&e.set("kind",i.kind.join(",")),i.from&&e.set("from",i.from),i.to&&e.set("to",i.to);let t=e.toString();return t?`?${t}`:""}function ct(i){let e=new URLSearchParams;i.severity&&e.set("severity",i.severity),i.analyzerId&&e.set("analyzerId",i.analyzerId),i.node&&e.set("node",i.node);let t=e.toString();return t?`?${t}`:""}function mt(i){if(typeof i!="object"||i===null)return null;let e=i;if(e.ok!==!1)return null;let t=e.error;if(typeof t!="object"||t===null)return null;let n=t;return typeof n.code!="string"||typeof n.message!="string"?null:{ok:!1,error:{code:n.code,message:n.message,details:n.details}}}var ut="data.json",gt="data.meta.json",re=class{constructor(e=globalThis.fetch.bind(globalThis),t){this.fetchImpl=e;this.kindRegistry=t??s(w)}metaPromise=null;dataPromise=null;kindRegistry;async health(){return(await this.loadMeta()).health}async loadScan(){let[e,t]=await Promise.all([this.loadData(),this.loadMeta()]);return this.kindRegistry.ingest(t.nodes.kindRegistry),e}async listNodes(e={}){let t=await this.loadMeta();if(ht(e))return this.kindRegistry.ingest(t.nodes.kindRegistry),t.nodes;let n=await this.loadData(),r=n.issues,o=n.nodes;if(e.kind&&e.kind.length>0){let T=new Set(e.kind);o=o.filter(R=>T.has(R.kind))}if(e.path){let T=vt(e.path);o=o.filter(R=>T.test(R.path))}if(e.hasIssues===!0){let T=Ge(r);o=o.filter(R=>T.has(R.path))}else if(e.hasIssues===!1){let T=Ge(r);o=o.filter(R=>!T.has(R.path))}let f=o.length,v=e.offset??0,k=e.limit??1e3,y=o.slice(v,v+k);return this.kindRegistry.ingest(t.nodes.kindRegistry),{schemaVersion:"1",kind:"nodes",items:y,filters:{kind:e.kind??null,hasIssues:e.hasIssues??null,path:e.path?[e.path]:null},counts:{total:f,returned:y.length,page:{offset:v,limit:k}},kindRegistry:t.nodes.kindRegistry}}async getNode(e,t={}){let[n,r]=await Promise.all([this.loadData(),this.loadMeta()]),o=n.nodes.find(y=>y.path===e);if(!o)return null;let f=n.links.filter(y=>y.target===e),v=n.links.filter(y=>y.source===e),k=n.issues.filter(y=>y.nodeIds.includes(e));return this.kindRegistry.ingest(r.nodes.kindRegistry),{schemaVersion:"1",kind:"node",item:o,links:{incoming:f,outgoing:v},issues:k,kindRegistry:r.nodes.kindRegistry}}async listLinks(e={}){let t=await this.loadMeta();if(ft(e))return this.kindRegistry.ingest(t.links.kindRegistry),t.links;let r=(await this.loadData()).links;if(e.kind&&e.kind.length>0){let o=new Set(e.kind);r=r.filter(f=>o.has(f.kind))}return e.from&&(r=r.filter(o=>o.source===e.from)),e.to&&(r=r.filter(o=>o.target===e.to)),this.kindRegistry.ingest(t.links.kindRegistry),{schemaVersion:"1",kind:"links",items:r,filters:{kind:e.kind??null,from:e.from??null,to:e.to??null},counts:{total:r.length,returned:r.length},kindRegistry:t.links.kindRegistry}}async listIssues(e={}){let t=await this.loadMeta();if(yt(e))return this.kindRegistry.ingest(t.issues.kindRegistry),t.issues;let r=(await this.loadData()).issues;return e.severity&&(r=r.filter(o=>o.severity===e.severity)),e.analyzerId&&(r=r.filter(o=>o.analyzerId===e.analyzerId)),e.node&&(r=r.filter(o=>o.nodeIds.includes(e.node))),this.kindRegistry.ingest(t.issues.kindRegistry),{schemaVersion:"1",kind:"issues",items:r,filters:{severity:e.severity??null,analyzerId:e.analyzerId??null,node:e.node??null},counts:{total:r.length,returned:r.length},kindRegistry:t.issues.kindRegistry}}async loadGraph(e="ascii"){if(e!=="ascii")throw new c("bad-query",P.errors.graphFormatNotInDemo(e));return(await this.loadMeta()).graph.ascii}async loadConfig(){let e=await this.loadMeta();return this.kindRegistry.ingest(e.config.kindRegistry),e.config.value}async listPlugins(){let e=await this.loadMeta();return this.kindRegistry.ingest(e.plugins.kindRegistry),e.plugins}async setFavorite(e){throw new c("demo-readonly","Favorites are not available in demo mode (static bundle is immutable).")}async unsetFavorite(e){throw new c("demo-readonly","Favorites are not available in demo mode (static bundle is immutable).")}async setPluginEnabled(e,t){throw new c("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async setPluginExtensionEnabled(e,t,n){throw new c("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async applyPluginChanges(e){throw new c("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async runScan(){throw new c("demo-readonly","Manual scan is not available in demo mode (static bundle is immutable).")}async getPreferences(){return{updateCheck:{enabled:!0}}}async setPreferences(e){throw new c("demo-readonly","Preference toggles are not available in demo mode (static bundle is immutable).")}async getProjectPreferences(){return{scan:{extraFolders:[],referencePaths:[]}}}async setProjectPreferences(e){throw new c("demo-readonly","Project preferences are not available in demo mode (static bundle is immutable).")}async lookupContribution(){return null}async bumpSidecar(e,t={}){throw new c("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 me}loadMeta(){return this.metaPromise||(this.metaPromise=this.fetchJson(gt)),this.metaPromise}loadData(){return this.dataPromise||(this.dataPromise=this.fetchJson(ut)),this.dataPromise}async fetchJson(e){let t;try{t=await this.fetchImpl(e)}catch(n){let r=n instanceof Error?n.message:String(n);throw new c("internal",P.errors.demoFetchFailed(e,r))}if(!t.ok)throw new c("internal",P.errors.demoFetchFailed(e,`HTTP ${t.status}`));try{return await t.json()}catch(n){let r=n instanceof Error?n.message:String(n);throw new c("internal",P.errors.demoParseFailed(e,r))}}};function ht(i){return!(i.kind&&i.kind.length>0||i.hasIssues!==void 0||i.path||i.offset!==void 0&&i.offset!==0||i.limit!==void 0)}function ft(i){return!(i.kind&&i.kind.length>0||i.from||i.to)}function yt(i){return!(i.severity||i.analyzerId||i.node)}function Ge(i){let e=new Set;for(let t of i)for(let n of t.nodeIds)e.add(n);return e}function vt(i){let t=i.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${t}$`)}function We(){let i=s(F);if(i==="live")return new ne(s(j),s($));if(i==="demo")return new re;let e=i;throw new Error(P.errors.unknownMode(String(e)))}var Ye="search",Ze="kinds",qe="linkKinds",et="stabilities",tt="hasIssues",it="staleOnly",nt="favoritesOnly",oe=class i{filters=s(Be);router=s(Re);activatedRoute=s(Ce);kindRegistry=s(w);destroyRef=s(ue);suppressUrlReadback=!1;constructor(){this.applyUrlToFilters(this.currentParams()),this.router.events.pipe(Fe(this.destroyRef)).subscribe(e=>{if(e instanceof we){if(this.suppressUrlReadback)return;this.applyUrlToFilters(this.currentParams())}}),H(()=>{let e=this.computeQueryParams();this.writeQueryParams(e)})}currentParams(){let e=this.router.parseUrl(this.router.url),t=new URLSearchParams;for(let[n,r]of Object.entries(e.queryParams))Array.isArray(r)?t.set(n,r.join(",")):r!=null&&t.set(n,String(r));return this.activatedRoute,t}applyUrlToFilters(e){let t=e.get(Ye)??"";t!==this.filters.searchText()&&this.filters.setSearchText(t);let n=bt(e.get(Ze),this.kindRegistry.kinds().map(y=>y.name));ce(n,this.filters.selectedKinds())||this.filters.setKinds(n);let r=_t(e.get(et));ce(r,this.filters.selectedStabilities())||this.filters.setStabilities(r);let o=e.get(tt)==="true";o!==this.filters.hasIssuesOnly()&&this.filters.setHasIssuesOnly(o);let f=e.get(it)==="true";f!==this.filters.staleOnly()&&this.filters.setStaleOnly(f);let v=e.get(nt)==="true";v!==this.filters.favoritesOnly()&&this.filters.setFavoritesOnly(v);let k=It(e.get(qe));ce(k,this.filters.selectedLinkKinds())||this.filters.setLinkKinds(k)}computeQueryParams(){let e=this.filters.searchText().trim(),t=this.filters.selectedKinds(),n=this.filters.selectedLinkKinds(),r=this.filters.selectedStabilities(),o=this.filters.hasIssuesOnly(),f=this.filters.staleOnly(),v=this.filters.favoritesOnly();return{[Ye]:e.length>0?e:null,[Ze]:t.length>0?t.join(","):null,[qe]:n.length>0?n.join(","):null,[et]:r.length>0?r.join(","):null,[tt]:o?"true":null,[it]:f?"true":null,[nt]:v?"true":null}}writeQueryParams(e){let t=this.currentParams(),n=new Map(Object.entries(e)),r=!1;for(let[o,f]of n)if((t.get(o)??null)!==f){r=!0;break}r&&(this.suppressUrlReadback=!0,this.router.navigate([],{relativeTo:this.activatedRoute,queryParams:e,queryParamsHandling:"merge",replaceUrl:!0}).finally(()=>{setTimeout(()=>{this.suppressUrlReadback=!1},0)}))}static \u0275fac=function(t){return new(t||i)};static \u0275prov=A({token:i,factory:i.\u0275fac,providedIn:"root"})};function bt(i,e){if(!i)return[];let t=new Set(e);return i.split(",").map(n=>n.trim()).filter(n=>t.has(n))}function _t(i){if(!i)return[];let e=new Set(Ke);return i.split(",").map(t=>t.trim()).filter(t=>e.has(t))}function It(i){if(!i)return[];let e=new Set(Ue);return i.split(",").map(t=>t.trim()).filter(t=>e.has(t))}function ce(i,e){if(i.length!==e.length)return!1;for(let t=0;t<i.length;t++)if(i[t]!==e[t])return!1;return!0}var rt={healthFailed:i=>`ProjectInfoService: /api/health probe failed (${i})`};var C=class i{dataSource=s(Z);status=L(null);cwd=m(()=>this.status()?.cwd??null);implVersion=m(()=>this.status()?.implVersion??null);async load(){try{let e=await this.dataSource.health();this.status.set(e)}catch(e){let t=e instanceof Error?e.message:String(e);console.warn(rt.healthFailed(t))}}static \u0275fac=function(t){return new(t||i)};static \u0275prov=A({token:i,factory:i.\u0275fac,providedIn:"root"})};var se=class i extends G{title=s(Se);projectInfo=s(C);constructor(){super(),H(()=>{let e=ot(this.projectInfo.cwd()),t=this.projectInfo.implVersion();this.title.setTitle(_.documentTitle(e,t))})}updateTitle(e){let t=ot(this.projectInfo.cwd()),n=this.projectInfo.implVersion();this.title.setTitle(_.documentTitle(t,n))}static \u0275fac=function(t){return new(t||i)};static \u0275prov=A({token:i,factory:i.\u0275fac,providedIn:"root"})};function ot(i){if(!i)return null;let e=i.replace(/[\\/]+$/,"");if(!e||e===".")return null;let t=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\"));return(t>=0?e.slice(t+1):e)||null}function Pt(...i){for(let e of i)Promise.resolve(e.load())}var st={providers:[ge(),Me(Xe,Oe()),{provide:G,useClass:se},ke(Ae()),De({}),Q(async()=>{let i=s(Le),[{default:e},{definePreset:t}]=await Promise.all([import("./chunk-DZBSELHN.js"),import("./chunk-NGIFGXW7.js")]),n=t(e,{semantic:{primary:{50:"#F5F3FF",100:"#EDE9FE",200:"#DDD6FE",300:"#C4B5FD",400:"#A78BFA",500:"#8B5CF6",600:"#7C3AED",700:"#6D28D9",800:"#4C1D95",900:"#2E1065",950:"#1E0A4D"}}});i.setThemeConfig({theme:{preset:n,options:{darkModeSelector:".app-dark"}}})}),{provide:F,useFactory:$e},{provide:Z,useFactory:We},Q(()=>{Pt(s(q),s(te),s(C))}),Q(()=>{s(oe),s(ze)})]};var M={toggleToAuto:"Switch to auto theme (follow system)",toggleToLight:"Switch to light theme",toggleToDark:"Switch to dark theme",currentAuto:"Auto theme (follows system)",currentLight:"Light theme",currentDark:"Dark theme"};var at={body:"You are viewing a static demo of skill-map's UI. Install it:",installCommand:"npm i -g @skill-map/cli",homeCta:"\u2190 Back to skill-map.dev",homeHref:"/",dismissAria:"Dismiss demo banner"};function St(i,e){if(i&1){let t=V();l(0,"div",0),b(1,"span",1),l(2,"p",2),u(3),l(4,"code",3),u(5),p()(),l(6,"a",4),u(7),p(),l(8,"p-button",5),x("onClick",function(){B(t);let r=I();return z(r.dismiss())}),p()()}if(i&2){let t=I();a(3),X(" ",t.texts.body," "),a(2),h(t.texts.installCommand),a(),g("href",t.texts.homeHref,he),a(),h(t.texts.homeCta),a(),g("ariaLabel",t.texts.dismissAria)("text",!0)("rounded",!0)}}var lt="sm.demoBannerDismissed",ae=class i{mode=s(F);texts=at;dismissed=L(this.readDismissed());visible=m(()=>this.mode==="demo"&&!this.dismissed());dismiss(){this.dismissed.set(!0);try{globalThis.localStorage?.setItem(lt,"1")}catch{}}readDismissed(){if(this.mode!=="demo")return!0;try{return globalThis.localStorage?.getItem(lt)==="1"}catch{return!1}}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=J({type:i,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(t,n){t&1&&D(0,St,9,7,"div",0),t&2&&N(n.visible()?0:-1)},dependencies:[Y,W],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})};var wt=()=>[import("./chunk-HOJFYUH4.js").then(i=>i.SettingsModal)];function Ct(i,e){if(i&1&&(l(0,"span",10),u(1),p()),i&2){let t=I();g("pTooltip",t.versionTooltip()),S("aria-label",t.versionA11y()),a(),h(t.versionLabel())}}function Tt(i,e){if(i&1&&(l(0,"a",12),b(1,"i",26),l(2,"span"),u(3),p()()),i&2){let t=I();g("pTooltip",t.updateChipTooltip()),S("aria-label",t.updateChipA11y()),a(3),h(t.updateChipText)}}function Rt(i,e){if(i&1&&(l(0,"p",13),u(1),p()),i&2){let t=I();a(),h(t.rootLabel())}}function xt(i,e){if(i&1){let t=V();l(0,"sm-settings-modal",27),x("visibleChange",function(r){B(t);let o=I();return z(o.settingsOpen.set(r))}),p()}if(i&2){let t=I();g("visible",t.settingsOpen())}}var le=class i{loader=s(q);theme=s(Ve);projectInfo=s(C);scanTrigger=s(Qe);updateCheck=s(te);texts=_;settingsTexts=Je;settingsOpen=L(!1);openSettings(){this.settingsOpen.set(!0)}scanning=this.scanTrigger.scanning;scanError=this.scanTrigger.scanError;triggerScan(){return this.scanTrigger.run()}updateChipText=E.available;updateChipTooltip=m(()=>E.tooltip(this.updateCheck.latest()??""));updateChipA11y=m(()=>E.a11yLabel(this.updateCheck.latest()??""));versionLabel=m(()=>E.versionLabel(this.updateCheck.current()??""));versionTooltip=m(()=>E.versionTooltip(this.updateCheck.current()??""));versionA11y=m(()=>E.versionA11yLabel(this.updateCheck.current()??""));count=this.loader.count;linkCount=m(()=>this.loader.scan()?.links?.length??0);graphInfoTooltip=m(()=>_.badge.graphInfo(this.count(),this.linkCount()));graphInfoA11y=m(()=>_.badge.graphInfoA11y(this.count(),this.linkCount()));rootLabel=m(()=>{let e=this.projectInfo.cwd();if(e&&e!==".")return e;let t=this.loader.scan()?.roots??[];if(t.length===0)return"";let n=t[0].replace(/[\\/]+$/,"");return!n||n==="."?"":n});isDevMode=be();themeMode=this.theme.mode;markSrc=m(()=>this.theme.extraTheme()==="matrix"?"skill-map-mark-matrix.svg":this.theme.resolved()==="dark"?"skill-map-mark-light.svg":"skill-map-mark-dark.svg");themeIcon=m(()=>{switch(this.themeMode()){case"auto":return"pi pi-desktop";case"light":return"pi pi-sun";case"dark":return"fa-regular fa-moon"}});themeLabel=m(()=>{switch(this.themeMode()){case"auto":return M.toggleToLight;case"light":return M.toggleToDark;case"dark":return M.toggleToAuto}});themeTooltip=m(()=>{switch(this.themeMode()){case"auto":return M.currentAuto;case"light":return M.currentLight;case"dark":return M.currentDark}});toggleTheme(){this.theme.toggle()}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=J({type:i,selectors:[["sm-root"]],decls:40,vars:35,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"],["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-version",1,"shell__version",3,"pTooltip"],[1,"shell__alpha"],["href","https://www.npmjs.com/package/@skill-map/cli","target","_blank","rel","noopener noreferrer","tooltipPosition","bottom","data-testid","shell-update-chip",1,"shell__update-chip",3,"pTooltip"],[1,"shell__tag"],["data-testid","shell-nav",1,"shell__nav"],["type","button","tooltipPosition","bottom","tabindex","-1","aria-disabled","true","data-testid","nav-search",1,"shell__nav-search",3,"pTooltip"],["aria-hidden","true",1,"pi","pi-search"],["slot","topbar.nav.start",3,"node"],["routerLink","/graph","routerLinkActive","is-active","data-testid","nav-graph"],["type","button","tooltipPosition","bottom","tabindex","-1","aria-disabled","true","data-testid","nav-list",1,"shell__nav-disabled",3,"pTooltip"],[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"],["aria-hidden","true",1,"pi","pi-download"],[3,"visibleChange","visible"]],template:function(t,n){if(t&1&&(l(0,"div",0)(1,"div",1),b(2,"i",2),l(3,"h2",3),u(4),p(),l(5,"p",4),u(6),p(),l(7,"p",5),u(8),p()()(),l(9,"div",6),b(10,"sm-demo-banner"),l(11,"header",7)(12,"div",8),b(13,"img",9),l(14,"div")(15,"h1"),u(16),D(17,Ct,2,3,"span",10),l(18,"span",11),u(19),p(),D(20,Tt,4,3,"a",12),p(),D(21,Rt,2,1,"p",13),p()(),l(22,"nav",14)(23,"button",15),b(24,"i",16),p(),b(25,"sm-view-contributions-host",17),l(26,"a",18),u(27),p(),l(28,"button",19),u(29),p()(),l(30,"div",20)(31,"button",21),x("click",function(){return n.triggerScan()}),b(32,"i",22),p(),l(33,"p-button",23),x("onClick",function(){return n.toggleTheme()}),p(),l(34,"p-button",24),x("onClick",function(){return n.openSettings()}),p()()(),l(35,"main",25),b(36,"router-outlet"),p(),fe(37,xt,1,1),ye(38,37,wt),p()),t&2){let r;a(4),h(n.texts.viewportWarning.title),a(2),h(n.texts.viewportWarning.subtitle),a(2),h(n.texts.viewportWarning.body),a(5),g("ngSrc",n.markSrc()),a(3),X(" ",n.texts.brand," "),a(),N((r=n.updateCheck.current())?17:-1,r),a(),S("aria-label",n.texts.alpha),a(),h(n.texts.alpha),a(),N(n.updateCheck.isOutdated()&&!n.isDevMode?20:-1),a(),N(n.rootLabel()?21:-1),a(),S("aria-label",n.texts.a11y.viewSwitcher),a(),g("pTooltip",n.texts.nav.searchTooltip),S("aria-label",n.texts.nav.searchLabel),a(2),g("node",null),a(2),h(n.texts.nav.graph),a(),g("pTooltip",n.texts.nav.listTooltip),S("aria-label",n.texts.nav.listLabel),a(),h(n.texts.nav.list),a(2),pe("is-spinning",n.scanning()),g("pTooltip",n.graphInfoTooltip())("disabled",n.scanning()),S("aria-label",n.graphInfoA11y()),a(),pe("pi-spin",n.scanning()),a(),g("icon",n.themeIcon())("ariaLabel",n.themeLabel())("pTooltip",n.themeTooltip())("text",!0)("rounded",!0),a(),g("ariaLabel",n.settingsTexts.a11y.triggerLabel)("pTooltip",n.settingsTexts.triggerTooltip)("text",!0)("rounded",!0),a(4),ve(n.settingsOpen())}},dependencies:[Te,xe,Ee,Y,W,je,Ne,_e,ae,He],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__update-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:3px 8px;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;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__tag[_ngcontent-%COMP%]{margin:.35rem 0 0;font-size:.72rem;color:var(--shell-topbar-text-muted);letter-spacing:.02em;text-transform:uppercase}.shell__nav[_ngcontent-%COMP%]{display:flex;gap:.25rem;margin-left:auto}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:.5rem .9rem;border-radius:.5rem;font-size:.9rem;font-weight:500;color:var(--shell-topbar-text-muted);transition:background .15s ease,color .15s ease}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong)}.shell__nav[_ngcontent-%COMP%] a.is-active[_ngcontent-%COMP%]{background:var(--shell-topbar-active-bg);color:var(--shell-topbar-active-text)}.shell__nav-disabled[_ngcontent-%COMP%]{padding:.5rem .9rem;border:none;background:transparent;border-radius:.5rem;font-size:.9rem;font-weight:500;color:var(--shell-topbar-text-muted);cursor:not-allowed;opacity:.55;font-family:inherit}.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:not-allowed;opacity:.55;transition:background .15s ease,color .15s ease,opacity .15s ease}.shell__nav-search[_ngcontent-%COMP%]:hover:not([aria-disabled=true]){background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong);opacity:1}.shell__nav-search[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:.95rem}.shell__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;--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%]{display:none}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:.4rem .7rem;font-size:.85rem}}.viewport-warning[_ngcontent-%COMP%]{display:none}@media(max-width:767px){.viewport-warning[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--sm-bg-content)}.viewport-warning__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.85rem;max-width:22rem}.viewport-warning__icon[_ngcontent-%COMP%]{font-size:3rem;color:var(--p-primary-color);margin-bottom:.25rem}.viewport-warning__title[_ngcontent-%COMP%]{margin:0;font-size:1.35rem;font-weight:700;color:var(--p-text-color);line-height:1.25}.viewport-warning__subtitle[_ngcontent-%COMP%]{margin:0;font-size:1rem;font-weight:500;color:var(--p-primary-color);line-height:1.35}.viewport-warning__body[_ngcontent-%COMP%]{margin:0;color:var(--p-text-muted-color);line-height:1.5;font-size:.9rem}.shell[_ngcontent-%COMP%]{display:none}}"],changeDetection:0})};Ie(le,st).catch(i=>console.error(i));