@ng-prism/core 21.10.3 → 21.12.0-beta.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 (32) hide show
  1. package/dist/app/canvas/prism-canvas-bg-pill.component.d.ts.map +1 -1
  2. package/dist/app/canvas/prism-canvas-bg-pill.component.js +3 -3
  3. package/dist/app/canvas/prism-canvas-rulers.component.d.ts +1 -0
  4. package/dist/app/canvas/prism-canvas-rulers.component.d.ts.map +1 -1
  5. package/dist/app/canvas/prism-canvas-rulers.component.js +4 -1
  6. package/dist/app/component-head/prism-component-head.component.d.ts +8 -0
  7. package/dist/app/component-head/prism-component-head.component.d.ts.map +1 -1
  8. package/dist/app/component-head/prism-component-head.component.js +119 -49
  9. package/dist/app/icons/prism-icon.component.d.ts.map +1 -1
  10. package/dist/app/icons/prism-icon.component.js +2 -1
  11. package/dist/app/panels/controls/prism-controls-panel.component.d.ts.map +1 -1
  12. package/dist/app/panels/controls/prism-controls-panel.component.js +99 -60
  13. package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
  14. package/dist/app/renderer/prism-renderer.component.js +10 -6
  15. package/dist/app/services/prism-renderer.service.d.ts +9 -0
  16. package/dist/app/services/prism-renderer.service.d.ts.map +1 -1
  17. package/dist/app/services/prism-renderer.service.js +81 -30
  18. package/dist/app/sidebar/prism-sidebar.component.d.ts +3 -0
  19. package/dist/app/sidebar/prism-sidebar.component.d.ts.map +1 -1
  20. package/dist/app/sidebar/prism-sidebar.component.js +38 -8
  21. package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts +4 -1
  22. package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts.map +1 -1
  23. package/dist/app/variant-ribbon/prism-variant-ribbon.component.js +67 -36
  24. package/dist/builder/scanner/component.scanner.d.ts.map +1 -1
  25. package/dist/builder/scanner/component.scanner.js +14 -0
  26. package/dist/decorator/index.d.ts +1 -1
  27. package/dist/decorator/index.d.ts.map +1 -1
  28. package/dist/decorator/showcase.decorator.d.ts +1 -1
  29. package/dist/decorator/showcase.decorator.d.ts.map +1 -1
  30. package/dist/decorator/showcase.types.d.ts +28 -6
  31. package/dist/decorator/showcase.types.d.ts.map +1 -1
  32. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"prism-canvas-bg-pill.component.d.ts","sourceRoot":"","sources":["../../../src/app/canvas/prism-canvas-bg-pill.component.ts"],"names":[],"mappings":";AAGA,qBAkEa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAE3D,SAAS,CAAC,QAAQ,CAAC,WAAW,gGAA8B;IAC5D,SAAS,CAAC,QAAQ,CAAC,OAAO,0CAA8B;IAExD,SAAS,CAAC,KAAK,IAAI,IAAI;yCANZ,0BAA0B;2CAA1B,0BAA0B;CAStC"}
1
+ {"version":3,"file":"prism-canvas-bg-pill.component.d.ts","sourceRoot":"","sources":["../../../src/app/canvas/prism-canvas-bg-pill.component.ts"],"names":[],"mappings":";AAGA,qBAmEa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAE3D,SAAS,CAAC,QAAQ,CAAC,WAAW,gGAA8B;IAC5D,SAAS,CAAC,QAAQ,CAAC,OAAO,0CAA8B;IAExD,SAAS,CAAC,KAAK,IAAI,IAAI;yCANZ,0BAA0B;2CAA1B,0BAA0B;CAStC"}
@@ -27,7 +27,7 @@ export class PrismCanvasBgPillComponent {
27
27
  i0.ɵɵconditionalCreate(0, PrismCanvasBgPillComponent_Conditional_0_Template, 5, 1, "div", 0);
28
28
  } if (rf & 2) {
29
29
  i0.ɵɵconditional(ctx.visible() ? 0 : -1);
30
- } }, styles: ["[_nghost-%COMP%] {\n position: absolute;\n top: 12px;\n right: 20px;\n pointer-events: none;\n z-index: 2;\n }\n .prism-bg-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 4px 4px 4px 10px;\n border-radius: 999px;\n font-size: var(--fs-xs);\n font-family: var(--font-sans);\n background: color-mix(in srgb, var(--prism-bg-elevated) 90%, transparent);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n backdrop-filter: blur(8px);\n pointer-events: auto;\n animation: _ngcontent-%COMP%_fadeIn var(--dur-base) ease-out;\n }\n .label[_ngcontent-%COMP%] { letter-spacing: 0.02em; }\n .reset[_ngcontent-%COMP%] {\n height: 22px;\n padding: 0 10px;\n border-radius: 999px;\n background: color-mix(in srgb, var(--prism-primary) 12%, transparent);\n color: var(--prism-text);\n border: 1px solid color-mix(in srgb, var(--prism-primary) 25%, transparent);\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n cursor: pointer;\n transition: background var(--dur-fast);\n }\n .reset[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--prism-primary) 20%, transparent);\n }\n @keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; transform: translateY(-4px); }\n to { opacity: 1; transform: translateY(0); }\n }"], changeDetection: 0 });
30
+ } }, styles: ["[_nghost-%COMP%] {\n position: absolute;\n top: var(--prism-canvas-overlay-top, 12px);\n right: var(--prism-canvas-overlay-inline, 20px);\n pointer-events: none;\n z-index: 2;\n transition: top var(--dur-base), right var(--dur-base);\n }\n .prism-bg-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 4px 4px 4px 10px;\n border-radius: 999px;\n font-size: var(--fs-xs);\n font-family: var(--font-sans);\n background: color-mix(in srgb, var(--prism-bg-elevated) 90%, transparent);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n backdrop-filter: blur(8px);\n pointer-events: auto;\n animation: _ngcontent-%COMP%_fadeIn var(--dur-base) ease-out;\n }\n .label[_ngcontent-%COMP%] { letter-spacing: 0.02em; }\n .reset[_ngcontent-%COMP%] {\n height: 22px;\n padding: 0 10px;\n border-radius: 999px;\n background: color-mix(in srgb, var(--prism-primary) 12%, transparent);\n color: var(--prism-text);\n border: 1px solid color-mix(in srgb, var(--prism-primary) 25%, transparent);\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n cursor: pointer;\n transition: background var(--dur-fast);\n }\n .reset[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--prism-primary) 20%, transparent);\n }\n @keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; transform: translateY(-4px); }\n to { opacity: 1; transform: translateY(0); }\n }"], changeDetection: 0 });
31
31
  }
32
32
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismCanvasBgPillComponent, [{
33
33
  type: Component,
@@ -46,6 +46,6 @@ export class PrismCanvasBgPillComponent {
46
46
  </button>
47
47
  </div>
48
48
  }
49
- `, styles: ["\n :host {\n position: absolute;\n top: 12px;\n right: 20px;\n pointer-events: none;\n z-index: 2;\n }\n .prism-bg-pill {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 4px 4px 4px 10px;\n border-radius: 999px;\n font-size: var(--fs-xs);\n font-family: var(--font-sans);\n background: color-mix(in srgb, var(--prism-bg-elevated) 90%, transparent);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n backdrop-filter: blur(8px);\n pointer-events: auto;\n animation: fadeIn var(--dur-base) ease-out;\n }\n .label { letter-spacing: 0.02em; }\n .reset {\n height: 22px;\n padding: 0 10px;\n border-radius: 999px;\n background: color-mix(in srgb, var(--prism-primary) 12%, transparent);\n color: var(--prism-text);\n border: 1px solid color-mix(in srgb, var(--prism-primary) 25%, transparent);\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n cursor: pointer;\n transition: background var(--dur-fast);\n }\n .reset:hover {\n background: color-mix(in srgb, var(--prism-primary) 20%, transparent);\n }\n @keyframes fadeIn {\n from { opacity: 0; transform: translateY(-4px); }\n to { opacity: 1; transform: translateY(0); }\n }\n "] }]
49
+ `, styles: ["\n :host {\n position: absolute;\n top: var(--prism-canvas-overlay-top, 12px);\n right: var(--prism-canvas-overlay-inline, 20px);\n pointer-events: none;\n z-index: 2;\n transition: top var(--dur-base), right var(--dur-base);\n }\n .prism-bg-pill {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 4px 4px 4px 10px;\n border-radius: 999px;\n font-size: var(--fs-xs);\n font-family: var(--font-sans);\n background: color-mix(in srgb, var(--prism-bg-elevated) 90%, transparent);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n backdrop-filter: blur(8px);\n pointer-events: auto;\n animation: fadeIn var(--dur-base) ease-out;\n }\n .label { letter-spacing: 0.02em; }\n .reset {\n height: 22px;\n padding: 0 10px;\n border-radius: 999px;\n background: color-mix(in srgb, var(--prism-primary) 12%, transparent);\n color: var(--prism-text);\n border: 1px solid color-mix(in srgb, var(--prism-primary) 25%, transparent);\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n cursor: pointer;\n transition: background var(--dur-fast);\n }\n .reset:hover {\n background: color-mix(in srgb, var(--prism-primary) 20%, transparent);\n }\n @keyframes fadeIn {\n from { opacity: 0; transform: translateY(-4px); }\n to { opacity: 1; transform: translateY(0); }\n }\n "] }]
50
50
  }], null, null); })();
51
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismCanvasBgPillComponent, { className: "PrismCanvasBgPillComponent", filePath: "app/canvas/prism-canvas-bg-pill.component.ts", lineNumber: 70 }); })();
51
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismCanvasBgPillComponent, { className: "PrismCanvasBgPillComponent", filePath: "app/canvas/prism-canvas-bg-pill.component.ts", lineNumber: 71 }); })();
@@ -2,6 +2,7 @@ import { PrismCanvasService } from '../services/prism-canvas.service.js';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class PrismCanvasRulersComponent {
4
4
  protected readonly canvas: PrismCanvasService;
5
+ private readonly themeService;
5
6
  private readonly rulerTop;
6
7
  private readonly rulerLeft;
7
8
  private ro;
@@ -1 +1 @@
1
- {"version":3,"file":"prism-canvas-rulers.component.d.ts","sourceRoot":"","sources":["../../../src/app/canvas/prism-canvas-rulers.component.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;;AAIzE,qBAkDa,0BAA0B;IACrC,SAAS,CAAC,QAAQ,CAAC,MAAM,qBAA8B;IAEvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAC8B;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAC8B;IAExD,OAAO,CAAC,EAAE,CAA+B;;IAoBzC,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,MAAM;IA4Dd,OAAO,CAAC,MAAM;yCArGH,0BAA0B;2CAA1B,0BAA0B;CAoKtC"}
1
+ {"version":3,"file":"prism-canvas-rulers.component.d.ts","sourceRoot":"","sources":["../../../src/app/canvas/prism-canvas-rulers.component.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;;AAKzE,qBAkDa,0BAA0B;IACrC,SAAS,CAAC,QAAQ,CAAC,MAAM,qBAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAE1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAC8B;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAC8B;IAExD,OAAO,CAAC,EAAE,CAA+B;;IAqBzC,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,MAAM;IA4Dd,OAAO,CAAC,MAAM;yCAvGH,0BAA0B;2CAA1B,0BAA0B;CAsKtC"}
@@ -1,5 +1,6 @@
1
1
  import { Component, ChangeDetectionStrategy, effect, inject, viewChild, } from '@angular/core';
2
2
  import { PrismCanvasService } from '../services/prism-canvas.service.js';
3
+ import { PrismThemeService } from '../services/prism-theme.service.js';
3
4
  import * as i0 from "@angular/core";
4
5
  const _c0 = ["rulerTop"];
5
6
  const _c1 = ["rulerLeft"];
@@ -11,6 +12,7 @@ function PrismCanvasRulersComponent_Conditional_0_Template(rf, ctx) { if (rf & 1
11
12
  const R = 20;
12
13
  export class PrismCanvasRulersComponent {
13
14
  canvas = inject(PrismCanvasService);
15
+ themeService = inject(PrismThemeService);
14
16
  rulerTop = viewChild('rulerTop', ...(ngDevMode ? [{ debugName: "rulerTop" }] : []));
15
17
  rulerLeft = viewChild('rulerLeft', ...(ngDevMode ? [{ debugName: "rulerLeft" }] : []));
16
18
  ro = null;
@@ -18,6 +20,7 @@ export class PrismCanvasRulersComponent {
18
20
  effect(() => {
19
21
  const show = this.canvas.rulers();
20
22
  const zoom = this.canvas.zoom();
23
+ this.themeService.theme();
21
24
  if (!show) {
22
25
  this.ro?.disconnect();
23
26
  this.ro = null;
@@ -167,7 +170,7 @@ export class PrismCanvasRulersComponent {
167
170
  }
168
171
  `, styles: ["\n :host { display: contents; }\n\n .ruler-wrap {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 4;\n overflow: hidden;\n }\n\n .ruler { position: absolute; }\n .ruler--top {\n top: 0;\n left: 20px;\n right: 0;\n height: 20px;\n }\n .ruler--left {\n top: 20px;\n left: 0;\n bottom: 0;\n width: 20px;\n }\n .ruler-corner {\n position: absolute;\n top: 0;\n left: 0;\n width: 20px;\n height: 20px;\n background: var(--prism-bg);\n border-right: 1px solid var(--prism-border);\n border-bottom: 1px solid var(--prism-border);\n z-index: 1;\n }\n "] }]
169
172
  }], () => [], { rulerTop: [{ type: i0.ViewChild, args: ['rulerTop', { isSignal: true }] }], rulerLeft: [{ type: i0.ViewChild, args: ['rulerLeft', { isSignal: true }] }] }); })();
170
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismCanvasRulersComponent, { className: "PrismCanvasRulersComponent", filePath: "app/canvas/prism-canvas-rulers.component.ts", lineNumber: 63 }); })();
173
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismCanvasRulersComponent, { className: "PrismCanvasRulersComponent", filePath: "app/canvas/prism-canvas-rulers.component.ts", lineNumber: 64 }); })();
171
174
  function stepFor(zoom) {
172
175
  if (zoom >= 2)
173
176
  return 10;
@@ -1,10 +1,17 @@
1
+ import type { ComponentStatus } from '../../decorator/showcase.types.js';
1
2
  import * as i0 from "@angular/core";
3
+ interface StatusBadge {
4
+ label: string;
5
+ tooltip: string;
6
+ }
2
7
  export declare class PrismComponentHeadComponent {
3
8
  private readonly navigationService;
4
9
  private readonly auditService;
5
10
  protected readonly comp: import("@angular/core").Signal<import("../../index.js").RuntimeComponent | null>;
6
11
  protected readonly category: import("@angular/core").Signal<string>;
7
12
  protected readonly variantCount: import("@angular/core").Signal<number>;
13
+ protected readonly status: import("@angular/core").Signal<ComponentStatus | undefined>;
14
+ protected readonly statusBadge: import("@angular/core").Signal<StatusBadge | null>;
8
15
  protected readonly coveragePercent: import("@angular/core").Signal<number | null>;
9
16
  protected readonly bundleSize: import("@angular/core").Signal<string | null>;
10
17
  protected readonly a11yScore: import("@angular/core").Signal<number | null>;
@@ -12,4 +19,5 @@ export declare class PrismComponentHeadComponent {
12
19
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismComponentHeadComponent, never>;
13
20
  static ɵcmp: i0.ɵɵComponentDeclaration<PrismComponentHeadComponent, "prism-component-head", never, {}, {}, never, never, true, never>;
14
21
  }
22
+ export {};
15
23
  //# sourceMappingURL=prism-component-head.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prism-component-head.component.d.ts","sourceRoot":"","sources":["../../../src/app/component-head/prism-component-head.component.ts"],"names":[],"mappings":";AAWA,qBAoJa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IAEzD,SAAS,CAAC,QAAQ,CAAC,IAAI,mFAErB;IAEF,SAAS,CAAC,QAAQ,CAAC,QAAQ,yCAGxB;IAEH,SAAS,CAAC,QAAQ,CAAC,YAAY,yCAG5B;IAEH,SAAS,CAAC,QAAQ,CAAC,eAAe,gDAM/B;IAEH,SAAS,CAAC,QAAQ,CAAC,UAAU,gDAS1B;IAEH,SAAS,CAAC,QAAQ,CAAC,SAAS,gDAEzB;IAEH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAM3B;yCA/CQ,2BAA2B;2CAA3B,2BAA2B;CAgDvC"}
1
+ {"version":3,"file":"prism-component-head.component.d.ts","sourceRoot":"","sources":["../../../src/app/component-head/prism-component-head.component.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;;AAEzE,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAqBD,qBAsNa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IAEzD,SAAS,CAAC,QAAQ,CAAC,IAAI,mFAErB;IAEF,SAAS,CAAC,QAAQ,CAAC,QAAQ,yCAGxB;IAEH,SAAS,CAAC,QAAQ,CAAC,YAAY,yCAG5B;IAEH,SAAS,CAAC,QAAQ,CAAC,MAAM,8DAEvB;IAEF,SAAS,CAAC,QAAQ,CAAC,WAAW,qDAG3B;IAEH,SAAS,CAAC,QAAQ,CAAC,eAAe,gDAM/B;IAEH,SAAS,CAAC,QAAQ,CAAC,UAAU,gDAS1B;IAEH,SAAS,CAAC,QAAQ,CAAC,SAAS,gDAEzB;IAEH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAM3B;yCAxDQ,2BAA2B;2CAA3B,2BAA2B;CAyDvC"}
@@ -4,56 +4,83 @@ import { PrismNavigationService } from '../services/prism-navigation.service.js'
4
4
  import { A11yAuditService } from '../panels/a11y/a11y-audit.service.js';
5
5
  import { PrismStatComponent } from './prism-stat.component.js';
6
6
  import * as i0 from "@angular/core";
7
+ function PrismComponentHeadComponent_Conditional_0_Conditional_13_Conditional_1_Template(rf, ctx) { if (rf & 1) {
8
+ i0.ɵɵelement(0, "prism-icon", 14);
9
+ } if (rf & 2) {
10
+ i0.ɵɵproperty("size", 13);
11
+ } }
12
+ function PrismComponentHeadComponent_Conditional_0_Conditional_13_Conditional_2_Template(rf, ctx) { if (rf & 1) {
13
+ i0.ɵɵelement(0, "span", 15);
14
+ } }
15
+ function PrismComponentHeadComponent_Conditional_0_Conditional_13_Conditional_3_Template(rf, ctx) { if (rf & 1) {
16
+ i0.ɵɵelement(0, "span", 16);
17
+ } }
7
18
  function PrismComponentHeadComponent_Conditional_0_Conditional_13_Template(rf, ctx) { if (rf & 1) {
8
- i0.ɵɵelementStart(0, "p", 6);
9
- i0.ɵɵtext(1);
10
- i0.ɵɵelementEnd();
19
+ i0.ɵɵelementStart(0, "span");
20
+ i0.ɵɵconditionalCreate(1, PrismComponentHeadComponent_Conditional_0_Conditional_13_Conditional_1_Template, 1, 1, "prism-icon", 14)(2, PrismComponentHeadComponent_Conditional_0_Conditional_13_Conditional_2_Template, 1, 0, "span", 15)(3, PrismComponentHeadComponent_Conditional_0_Conditional_13_Conditional_3_Template, 1, 0, "span", 16);
21
+ i0.ɵɵelementStart(4, "span", 17);
22
+ i0.ɵɵtext(5);
23
+ i0.ɵɵelementEnd()();
11
24
  } if (rf & 2) {
12
- const c_r1 = i0.ɵɵnextContext();
25
+ const s_r1 = ctx;
26
+ const ctx_r1 = i0.ɵɵnextContext(2);
27
+ i0.ɵɵclassMap(i0.ɵɵinterpolate1("comp-status comp-status--", s_r1));
28
+ i0.ɵɵattribute("title", ctx_r1.statusBadge().tooltip);
13
29
  i0.ɵɵadvance();
14
- i0.ɵɵtextInterpolate(c_r1.meta.showcaseConfig.description);
30
+ i0.ɵɵconditional(s_r1 === "stable" ? 1 : s_r1 === "wip" ? 2 : 3);
31
+ i0.ɵɵadvance(4);
32
+ i0.ɵɵtextInterpolate(ctx_r1.statusBadge().label);
15
33
  } }
16
- function PrismComponentHeadComponent_Conditional_0_Conditional_14_For_2_Template(rf, ctx) { if (rf & 1) {
17
- i0.ɵɵelementStart(0, "span", 13);
34
+ function PrismComponentHeadComponent_Conditional_0_Conditional_14_Template(rf, ctx) { if (rf & 1) {
35
+ i0.ɵɵelementStart(0, "p", 7);
18
36
  i0.ɵɵtext(1);
19
37
  i0.ɵɵelementEnd();
20
38
  } if (rf & 2) {
21
- const tag_r2 = ctx.$implicit;
39
+ const c_r3 = i0.ɵɵnextContext();
22
40
  i0.ɵɵadvance();
23
- i0.ɵɵtextInterpolate(tag_r2);
41
+ i0.ɵɵtextInterpolate(c_r3.meta.showcaseConfig.description);
24
42
  } }
25
- function PrismComponentHeadComponent_Conditional_0_Conditional_14_Template(rf, ctx) { if (rf & 1) {
26
- i0.ɵɵelementStart(0, "div", 7);
27
- i0.ɵɵrepeaterCreate(1, PrismComponentHeadComponent_Conditional_0_Conditional_14_For_2_Template, 2, 1, "span", 13, i0.ɵɵrepeaterTrackByIdentity);
43
+ function PrismComponentHeadComponent_Conditional_0_Conditional_15_For_2_Template(rf, ctx) { if (rf & 1) {
44
+ i0.ɵɵelementStart(0, "span", 18);
45
+ i0.ɵɵtext(1);
28
46
  i0.ɵɵelementEnd();
29
47
  } if (rf & 2) {
30
- const c_r1 = i0.ɵɵnextContext();
48
+ const tag_r4 = ctx.$implicit;
31
49
  i0.ɵɵadvance();
32
- i0.ɵɵrepeater(c_r1.meta.showcaseConfig.tags);
50
+ i0.ɵɵtextInterpolate(tag_r4);
33
51
  } }
34
- function PrismComponentHeadComponent_Conditional_0_Conditional_16_Template(rf, ctx) { if (rf & 1) {
35
- i0.ɵɵelement(0, "prism-stat", 9);
52
+ function PrismComponentHeadComponent_Conditional_0_Conditional_15_Template(rf, ctx) { if (rf & 1) {
53
+ i0.ɵɵelementStart(0, "div", 8);
54
+ i0.ɵɵrepeaterCreate(1, PrismComponentHeadComponent_Conditional_0_Conditional_15_For_2_Template, 2, 1, "span", 18, i0.ɵɵrepeaterTrackByIdentity);
55
+ i0.ɵɵelementEnd();
36
56
  } if (rf & 2) {
37
- const ctx_r2 = i0.ɵɵnextContext(2);
38
- i0.ɵɵproperty("value", ctx_r2.variantCount());
57
+ const c_r3 = i0.ɵɵnextContext();
58
+ i0.ɵɵadvance();
59
+ i0.ɵɵrepeater(c_r3.meta.showcaseConfig.tags);
39
60
  } }
40
61
  function PrismComponentHeadComponent_Conditional_0_Conditional_17_Template(rf, ctx) { if (rf & 1) {
41
62
  i0.ɵɵelement(0, "prism-stat", 10);
42
63
  } if (rf & 2) {
43
- const ctx_r2 = i0.ɵɵnextContext(2);
44
- i0.ɵɵproperty("value", ctx_r2.coveragePercent() + "%")("pill", ctx_r2.coveragePercent() >= 90 ? "OK" : "WARN")("pillVariant", ctx_r2.coveragePercent() >= 90 ? "ok" : "warn");
64
+ const ctx_r1 = i0.ɵɵnextContext(2);
65
+ i0.ɵɵproperty("value", ctx_r1.variantCount());
45
66
  } }
46
67
  function PrismComponentHeadComponent_Conditional_0_Conditional_18_Template(rf, ctx) { if (rf & 1) {
47
68
  i0.ɵɵelement(0, "prism-stat", 11);
48
69
  } if (rf & 2) {
49
- const ctx_r2 = i0.ɵɵnextContext(2);
50
- i0.ɵɵproperty("value", ctx_r2.bundleSize());
70
+ const ctx_r1 = i0.ɵɵnextContext(2);
71
+ i0.ɵɵproperty("value", ctx_r1.coveragePercent() + "%")("pill", ctx_r1.coveragePercent() >= 90 ? "OK" : "WARN")("pillVariant", ctx_r1.coveragePercent() >= 90 ? "ok" : "warn");
51
72
  } }
52
73
  function PrismComponentHeadComponent_Conditional_0_Conditional_19_Template(rf, ctx) { if (rf & 1) {
53
74
  i0.ɵɵelement(0, "prism-stat", 12);
54
75
  } if (rf & 2) {
55
- const ctx_r2 = i0.ɵɵnextContext(2);
56
- i0.ɵɵproperty("value", ctx_r2.a11yScore())("pillVariant", ctx_r2.a11yScore() >= 90 ? "ok" : "warn");
76
+ const ctx_r1 = i0.ɵɵnextContext(2);
77
+ i0.ɵɵproperty("value", ctx_r1.bundleSize());
78
+ } }
79
+ function PrismComponentHeadComponent_Conditional_0_Conditional_20_Template(rf, ctx) { if (rf & 1) {
80
+ i0.ɵɵelement(0, "prism-stat", 13);
81
+ } if (rf & 2) {
82
+ const ctx_r1 = i0.ɵɵnextContext(2);
83
+ i0.ɵɵproperty("value", ctx_r1.a11yScore())("pillVariant", ctx_r1.a11yScore() >= 90 ? "ok" : "warn");
57
84
  } }
58
85
  function PrismComponentHeadComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
59
86
  i0.ɵɵelementStart(0, "section", 0)(1, "div", 1)(2, "div")(3, "div", 2)(4, "span");
@@ -67,42 +94,65 @@ function PrismComponentHeadComponent_Conditional_0_Template(rf, ctx) { if (rf &
67
94
  i0.ɵɵtext(10);
68
95
  i0.ɵɵelementStart(11, "span", 5);
69
96
  i0.ɵɵtext(12);
70
- i0.ɵɵelementEnd()();
71
- i0.ɵɵconditionalCreate(13, PrismComponentHeadComponent_Conditional_0_Conditional_13_Template, 2, 1, "p", 6);
72
- i0.ɵɵconditionalCreate(14, PrismComponentHeadComponent_Conditional_0_Conditional_14_Template, 3, 0, "div", 7);
73
97
  i0.ɵɵelementEnd();
74
- i0.ɵɵelementStart(15, "div", 8);
75
- i0.ɵɵconditionalCreate(16, PrismComponentHeadComponent_Conditional_0_Conditional_16_Template, 1, 1, "prism-stat", 9);
76
- i0.ɵɵconditionalCreate(17, PrismComponentHeadComponent_Conditional_0_Conditional_17_Template, 1, 3, "prism-stat", 10);
77
- i0.ɵɵconditionalCreate(18, PrismComponentHeadComponent_Conditional_0_Conditional_18_Template, 1, 1, "prism-stat", 11);
78
- i0.ɵɵconditionalCreate(19, PrismComponentHeadComponent_Conditional_0_Conditional_19_Template, 1, 2, "prism-stat", 12);
98
+ i0.ɵɵconditionalCreate(13, PrismComponentHeadComponent_Conditional_0_Conditional_13_Template, 6, 6, "span", 6);
99
+ i0.ɵɵelementEnd();
100
+ i0.ɵɵconditionalCreate(14, PrismComponentHeadComponent_Conditional_0_Conditional_14_Template, 2, 1, "p", 7);
101
+ i0.ɵɵconditionalCreate(15, PrismComponentHeadComponent_Conditional_0_Conditional_15_Template, 3, 0, "div", 8);
102
+ i0.ɵɵelementEnd();
103
+ i0.ɵɵelementStart(16, "div", 9);
104
+ i0.ɵɵconditionalCreate(17, PrismComponentHeadComponent_Conditional_0_Conditional_17_Template, 1, 1, "prism-stat", 10);
105
+ i0.ɵɵconditionalCreate(18, PrismComponentHeadComponent_Conditional_0_Conditional_18_Template, 1, 3, "prism-stat", 11);
106
+ i0.ɵɵconditionalCreate(19, PrismComponentHeadComponent_Conditional_0_Conditional_19_Template, 1, 1, "prism-stat", 12);
107
+ i0.ɵɵconditionalCreate(20, PrismComponentHeadComponent_Conditional_0_Conditional_20_Template, 1, 2, "prism-stat", 13);
79
108
  i0.ɵɵelementEnd()()();
80
109
  } if (rf & 2) {
81
- const c_r1 = ctx;
82
- const ctx_r2 = i0.ɵɵnextContext();
110
+ let tmp_7_0;
111
+ const c_r3 = ctx;
112
+ const ctx_r1 = i0.ɵɵnextContext();
83
113
  i0.ɵɵadvance(5);
84
- i0.ɵɵtextInterpolate(ctx_r2.category());
114
+ i0.ɵɵtextInterpolate(ctx_r1.category());
85
115
  i0.ɵɵadvance();
86
116
  i0.ɵɵproperty("size", 10);
87
117
  i0.ɵɵadvance(2);
88
- i0.ɵɵtextInterpolate(c_r1.meta.showcaseConfig.title);
118
+ i0.ɵɵtextInterpolate(c_r3.meta.showcaseConfig.title);
89
119
  i0.ɵɵadvance(2);
90
- i0.ɵɵtextInterpolate1(" ", c_r1.meta.showcaseConfig.title, " ");
120
+ i0.ɵɵtextInterpolate1(" ", c_r3.meta.showcaseConfig.title, " ");
91
121
  i0.ɵɵadvance(2);
92
- i0.ɵɵtextInterpolate1("<", c_r1.meta.componentMeta.selector, ">");
122
+ i0.ɵɵtextInterpolate1("<", c_r3.meta.componentMeta.selector, ">");
123
+ i0.ɵɵadvance();
124
+ i0.ɵɵconditional((tmp_7_0 = ctx_r1.status()) ? 13 : -1, tmp_7_0);
93
125
  i0.ɵɵadvance();
94
- i0.ɵɵconditional(c_r1.meta.showcaseConfig.description ? 13 : -1);
126
+ i0.ɵɵconditional(c_r3.meta.showcaseConfig.description ? 14 : -1);
95
127
  i0.ɵɵadvance();
96
- i0.ɵɵconditional((c_r1.meta.showcaseConfig.tags == null ? null : c_r1.meta.showcaseConfig.tags.length) ? 14 : -1);
128
+ i0.ɵɵconditional((c_r3.meta.showcaseConfig.tags == null ? null : c_r3.meta.showcaseConfig.tags.length) ? 15 : -1);
97
129
  i0.ɵɵadvance(2);
98
- i0.ɵɵconditional(ctx_r2.variantCount() > 0 ? 16 : -1);
130
+ i0.ɵɵconditional(ctx_r1.variantCount() > 0 ? 17 : -1);
99
131
  i0.ɵɵadvance();
100
- i0.ɵɵconditional(ctx_r2.coveragePercent() !== null ? 17 : -1);
132
+ i0.ɵɵconditional(ctx_r1.coveragePercent() !== null ? 18 : -1);
101
133
  i0.ɵɵadvance();
102
- i0.ɵɵconditional(ctx_r2.bundleSize() !== null ? 18 : -1);
134
+ i0.ɵɵconditional(ctx_r1.bundleSize() !== null ? 19 : -1);
103
135
  i0.ɵɵadvance();
104
- i0.ɵɵconditional(ctx_r2.a11yScore() !== null ? 19 : -1);
136
+ i0.ɵɵconditional(ctx_r1.a11yScore() !== null ? 20 : -1);
105
137
  } }
138
+ const STATUS_BADGES = {
139
+ stable: {
140
+ label: 'Stable',
141
+ tooltip: 'Migrated and production-ready',
142
+ },
143
+ beta: {
144
+ label: 'Beta',
145
+ tooltip: 'Beta — API may change',
146
+ },
147
+ wip: {
148
+ label: 'Work in progress',
149
+ tooltip: 'Migration in progress',
150
+ },
151
+ deprecated: {
152
+ label: 'Deprecated',
153
+ tooltip: 'Deprecated / Legacy — do not use in new code',
154
+ },
155
+ };
106
156
  export class PrismComponentHeadComponent {
107
157
  navigationService = inject(PrismNavigationService);
108
158
  auditService = inject(A11yAuditService);
@@ -115,6 +165,11 @@ export class PrismComponentHeadComponent {
115
165
  const c = this.comp();
116
166
  return c?.meta.showcaseConfig.variants?.length ?? 0;
117
167
  }, ...(ngDevMode ? [{ debugName: "variantCount" }] : []));
168
+ status = computed(() => this.comp()?.meta.showcaseConfig.status, ...(ngDevMode ? [{ debugName: "status" }] : []));
169
+ statusBadge = computed(() => {
170
+ const s = this.status();
171
+ return s ? STATUS_BADGES[s] : null;
172
+ }, ...(ngDevMode ? [{ debugName: "statusBadge" }] : []));
118
173
  coveragePercent = computed(() => {
119
174
  const meta = this.componentMeta();
120
175
  const coverage = meta?.['coverage'];
@@ -143,12 +198,12 @@ export class PrismComponentHeadComponent {
143
198
  : null;
144
199
  }, ...(ngDevMode ? [{ debugName: "componentMeta" }] : []));
145
200
  static ɵfac = function PrismComponentHeadComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismComponentHeadComponent)(); };
146
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismComponentHeadComponent, selectors: [["prism-component-head"]], decls: 1, vars: 1, consts: [[1, "comp-head"], [1, "comp-head-top"], [1, "comp-crumb"], ["name", "chevron-right", 3, "size"], [1, "comp-title"], [1, "comp-selector"], [1, "comp-desc"], [1, "comp-tags"], [1, "comp-head-stats"], ["label", "Variants", 3, "value"], ["label", "Coverage", 3, "value", "pill", "pillVariant"], ["label", "Bundle", 3, "value"], ["label", "Score", "pill", "A11y", 3, "value", "pillVariant"], [1, "comp-tag"]], template: function PrismComponentHeadComponent_Template(rf, ctx) { if (rf & 1) {
147
- i0.ɵɵconditionalCreate(0, PrismComponentHeadComponent_Conditional_0_Template, 20, 11, "section", 0);
201
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismComponentHeadComponent, selectors: [["prism-component-head"]], decls: 1, vars: 1, consts: [[1, "comp-head"], [1, "comp-head-top"], [1, "comp-crumb"], ["name", "chevron-right", 3, "size"], [1, "comp-title"], [1, "comp-selector"], [3, "class"], [1, "comp-desc"], [1, "comp-tags"], [1, "comp-head-stats"], ["label", "Variants", 3, "value"], ["label", "Coverage", 3, "value", "pill", "pillVariant"], ["label", "Bundle", 3, "value"], ["label", "Score", "pill", "A11y", 3, "value", "pillVariant"], ["name", "check", 3, "size"], ["aria-hidden", "true", 1, "comp-status-ring"], ["aria-hidden", "true", 1, "comp-status-dot"], [1, "comp-status-label"], [1, "comp-tag"]], template: function PrismComponentHeadComponent_Template(rf, ctx) { if (rf & 1) {
202
+ i0.ɵɵconditionalCreate(0, PrismComponentHeadComponent_Conditional_0_Template, 21, 12, "section", 0);
148
203
  } if (rf & 2) {
149
204
  let tmp_0_0;
150
205
  i0.ɵɵconditional((tmp_0_0 = ctx.comp()) ? 0 : -1, tmp_0_0);
151
- } }, dependencies: [PrismIconComponent, PrismStatComponent], styles: ["[_nghost-%COMP%] { display: block; flex-shrink: 0; }\n\n .comp-head[_ngcontent-%COMP%] {\n padding: 12px 28px;\n background: var(--prism-bg);\n border-bottom: 1px solid var(--prism-border);\n position: relative;\n }\n .comp-head[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 6px;\n background: linear-gradient(180deg, var(--prism-primary-from) 0%, var(--prism-accent) 50%, var(--prism-primary-to) 100%);\n }\n\n .comp-head-top[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 16px;\n }\n\n .comp-crumb[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--fs-sm);\n color: var(--prism-text-ghost);\n margin-bottom: 6px;\n font-weight: 500;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n }\n .comp-crumb[_ngcontent-%COMP%] prism-icon[_ngcontent-%COMP%] { opacity: 0.6; }\n\n .comp-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--fs-2xl);\n font-weight: 700;\n letter-spacing: -0.02em;\n color: var(--prism-text);\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .comp-selector[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 12px;\n color: var(--prism-primary);\n padding: 3px 8px;\n border-radius: var(--radius-sm);\n background: color-mix(in srgb, var(--prism-primary) 10%, transparent);\n border: 1px solid color-mix(in srgb, var(--prism-primary) 20%, transparent);\n font-weight: 500;\n }\n\n .comp-desc[_ngcontent-%COMP%] {\n margin: 6px 0 0;\n font-size: var(--fs-lg);\n color: var(--prism-text-2);\n max-width: 72ch;\n line-height: 1.55;\n }\n\n .comp-tags[_ngcontent-%COMP%] {\n margin-top: 10px;\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n }\n .comp-tag[_ngcontent-%COMP%] {\n padding: 2px 8px;\n font-size: 11px;\n font-weight: 500;\n border-radius: var(--radius-xs);\n background: color-mix(in srgb, var(--prism-primary) 12%, transparent);\n color: var(--prism-primary);\n border: 1px solid color-mix(in srgb, var(--prism-primary) 20%, transparent);\n }\n\n .comp-head-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 18px;\n flex-shrink: 0;\n }"], changeDetection: 0 });
206
+ } }, dependencies: [PrismIconComponent, PrismStatComponent], styles: ["[_nghost-%COMP%] { display: block; flex-shrink: 0; }\n\n .comp-head[_ngcontent-%COMP%] {\n padding: 12px 28px;\n background: var(--prism-bg);\n border-bottom: 1px solid var(--prism-border);\n position: relative;\n }\n .comp-head[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 6px;\n background: linear-gradient(180deg, var(--prism-primary-from) 0%, var(--prism-accent) 50%, var(--prism-primary-to) 100%);\n }\n\n .comp-head-top[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 16px;\n }\n\n .comp-crumb[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--fs-sm);\n color: var(--prism-text-ghost);\n margin-bottom: 6px;\n font-weight: 500;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n }\n .comp-crumb[_ngcontent-%COMP%] prism-icon[_ngcontent-%COMP%] { opacity: 0.6; }\n\n .comp-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--fs-2xl);\n font-weight: 700;\n letter-spacing: -0.02em;\n color: var(--prism-text);\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .comp-selector[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 12px;\n color: var(--prism-primary);\n padding: 3px 8px;\n border-radius: var(--radius-sm);\n background: color-mix(in srgb, var(--prism-primary) 10%, transparent);\n border: 1px solid color-mix(in srgb, var(--prism-primary) 20%, transparent);\n font-weight: 500;\n }\n\n .comp-status[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n height: 24px;\n padding: 0 10px 0 8px;\n border-radius: 5px;\n font-size: 11.5px;\n font-weight: 600;\n letter-spacing: 0.02em;\n border: 1px solid;\n background: transparent;\n }\n .comp-status-label[_ngcontent-%COMP%] { line-height: 1; }\n .comp-status-dot[_ngcontent-%COMP%] {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: currentColor;\n }\n .comp-status-ring[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n border: 1.5px solid currentColor;\n background: transparent;\n box-sizing: border-box;\n }\n .comp-status[_ngcontent-%COMP%] prism-icon[_ngcontent-%COMP%] { display: inline-flex; }\n\n .comp-status--stable[_ngcontent-%COMP%] {\n color: var(--prism-success);\n background: color-mix(in srgb, var(--prism-success) 10%, transparent);\n border-color: color-mix(in srgb, var(--prism-success) 35%, transparent);\n }\n .comp-status--beta[_ngcontent-%COMP%] {\n color: #60a5fa;\n background: color-mix(in srgb, #60a5fa 10%, transparent);\n border-color: color-mix(in srgb, #60a5fa 35%, transparent);\n }\n .comp-status--wip[_ngcontent-%COMP%] {\n color: var(--prism-warn);\n background: color-mix(in srgb, var(--prism-warn) 10%, transparent);\n border-color: color-mix(in srgb, var(--prism-warn) 35%, transparent);\n }\n .comp-status--deprecated[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n background: var(--prism-input-bg);\n border-color: var(--prism-border-strong);\n }\n\n .comp-desc[_ngcontent-%COMP%] {\n margin: 6px 0 0;\n font-size: var(--fs-lg);\n color: var(--prism-text-2);\n max-width: 72ch;\n line-height: 1.55;\n }\n\n .comp-tags[_ngcontent-%COMP%] {\n margin-top: 10px;\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n }\n .comp-tag[_ngcontent-%COMP%] {\n padding: 2px 8px;\n font-size: 11px;\n font-weight: 500;\n border-radius: var(--radius-xs);\n background: color-mix(in srgb, var(--prism-primary) 12%, transparent);\n color: var(--prism-primary);\n border: 1px solid color-mix(in srgb, var(--prism-primary) 20%, transparent);\n }\n\n .comp-head-stats[_ngcontent-%COMP%] {\n display: flex;\n gap: 18px;\n flex-shrink: 0;\n }"], changeDetection: 0 });
152
207
  }
153
208
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismComponentHeadComponent, [{
154
209
  type: Component,
@@ -167,6 +222,21 @@ export class PrismComponentHeadComponent {
167
222
  <span class="comp-selector"
168
223
  >&lt;{{ c.meta.componentMeta.selector }}&gt;</span
169
224
  >
225
+ @if (status(); as s) {
226
+ <span
227
+ class="comp-status comp-status--{{ s }}"
228
+ [attr.title]="statusBadge()!.tooltip"
229
+ >
230
+ @if (s === 'stable') {
231
+ <prism-icon name="check" [size]="13" />
232
+ } @else if (s === 'wip') {
233
+ <span class="comp-status-ring" aria-hidden="true"></span>
234
+ } @else {
235
+ <span class="comp-status-dot" aria-hidden="true"></span>
236
+ }
237
+ <span class="comp-status-label">{{ statusBadge()!.label }}</span>
238
+ </span>
239
+ }
170
240
  </h1>
171
241
  @if (c.meta.showcaseConfig.description) {
172
242
  <p class="comp-desc">{{ c.meta.showcaseConfig.description }}</p>
@@ -202,6 +272,6 @@ export class PrismComponentHeadComponent {
202
272
  </div>
203
273
  </section>
204
274
  }
205
- `, styles: ["\n :host { display: block; flex-shrink: 0; }\n\n .comp-head {\n padding: 12px 28px;\n background: var(--prism-bg);\n border-bottom: 1px solid var(--prism-border);\n position: relative;\n }\n .comp-head::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 6px;\n background: linear-gradient(180deg, var(--prism-primary-from) 0%, var(--prism-accent) 50%, var(--prism-primary-to) 100%);\n }\n\n .comp-head-top {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 16px;\n }\n\n .comp-crumb {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--fs-sm);\n color: var(--prism-text-ghost);\n margin-bottom: 6px;\n font-weight: 500;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n }\n .comp-crumb prism-icon { opacity: 0.6; }\n\n .comp-title {\n margin: 0;\n font-size: var(--fs-2xl);\n font-weight: 700;\n letter-spacing: -0.02em;\n color: var(--prism-text);\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .comp-selector {\n font-family: var(--font-mono);\n font-size: 12px;\n color: var(--prism-primary);\n padding: 3px 8px;\n border-radius: var(--radius-sm);\n background: color-mix(in srgb, var(--prism-primary) 10%, transparent);\n border: 1px solid color-mix(in srgb, var(--prism-primary) 20%, transparent);\n font-weight: 500;\n }\n\n .comp-desc {\n margin: 6px 0 0;\n font-size: var(--fs-lg);\n color: var(--prism-text-2);\n max-width: 72ch;\n line-height: 1.55;\n }\n\n .comp-tags {\n margin-top: 10px;\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n }\n .comp-tag {\n padding: 2px 8px;\n font-size: 11px;\n font-weight: 500;\n border-radius: var(--radius-xs);\n background: color-mix(in srgb, var(--prism-primary) 12%, transparent);\n color: var(--prism-primary);\n border: 1px solid color-mix(in srgb, var(--prism-primary) 20%, transparent);\n }\n\n .comp-head-stats {\n display: flex;\n gap: 18px;\n flex-shrink: 0;\n }\n "] }]
275
+ `, styles: ["\n :host { display: block; flex-shrink: 0; }\n\n .comp-head {\n padding: 12px 28px;\n background: var(--prism-bg);\n border-bottom: 1px solid var(--prism-border);\n position: relative;\n }\n .comp-head::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 6px;\n background: linear-gradient(180deg, var(--prism-primary-from) 0%, var(--prism-accent) 50%, var(--prism-primary-to) 100%);\n }\n\n .comp-head-top {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 16px;\n }\n\n .comp-crumb {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: var(--fs-sm);\n color: var(--prism-text-ghost);\n margin-bottom: 6px;\n font-weight: 500;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n }\n .comp-crumb prism-icon { opacity: 0.6; }\n\n .comp-title {\n margin: 0;\n font-size: var(--fs-2xl);\n font-weight: 700;\n letter-spacing: -0.02em;\n color: var(--prism-text);\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .comp-selector {\n font-family: var(--font-mono);\n font-size: 12px;\n color: var(--prism-primary);\n padding: 3px 8px;\n border-radius: var(--radius-sm);\n background: color-mix(in srgb, var(--prism-primary) 10%, transparent);\n border: 1px solid color-mix(in srgb, var(--prism-primary) 20%, transparent);\n font-weight: 500;\n }\n\n .comp-status {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n height: 24px;\n padding: 0 10px 0 8px;\n border-radius: 5px;\n font-size: 11.5px;\n font-weight: 600;\n letter-spacing: 0.02em;\n border: 1px solid;\n background: transparent;\n }\n .comp-status-label { line-height: 1; }\n .comp-status-dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: currentColor;\n }\n .comp-status-ring {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n border: 1.5px solid currentColor;\n background: transparent;\n box-sizing: border-box;\n }\n .comp-status prism-icon { display: inline-flex; }\n\n .comp-status--stable {\n color: var(--prism-success);\n background: color-mix(in srgb, var(--prism-success) 10%, transparent);\n border-color: color-mix(in srgb, var(--prism-success) 35%, transparent);\n }\n .comp-status--beta {\n color: #60a5fa;\n background: color-mix(in srgb, #60a5fa 10%, transparent);\n border-color: color-mix(in srgb, #60a5fa 35%, transparent);\n }\n .comp-status--wip {\n color: var(--prism-warn);\n background: color-mix(in srgb, var(--prism-warn) 10%, transparent);\n border-color: color-mix(in srgb, var(--prism-warn) 35%, transparent);\n }\n .comp-status--deprecated {\n color: var(--prism-text-muted);\n background: var(--prism-input-bg);\n border-color: var(--prism-border-strong);\n }\n\n .comp-desc {\n margin: 6px 0 0;\n font-size: var(--fs-lg);\n color: var(--prism-text-2);\n max-width: 72ch;\n line-height: 1.55;\n }\n\n .comp-tags {\n margin-top: 10px;\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n }\n .comp-tag {\n padding: 2px 8px;\n font-size: 11px;\n font-weight: 500;\n border-radius: var(--radius-xs);\n background: color-mix(in srgb, var(--prism-primary) 12%, transparent);\n color: var(--prism-primary);\n border: 1px solid color-mix(in srgb, var(--prism-primary) 20%, transparent);\n }\n\n .comp-head-stats {\n display: flex;\n gap: 18px;\n flex-shrink: 0;\n }\n "] }]
206
276
  }], null, null); })();
207
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismComponentHeadComponent, { className: "PrismComponentHeadComponent", filePath: "app/component-head/prism-component-head.component.ts", lineNumber: 160 }); })();
277
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismComponentHeadComponent, { className: "PrismComponentHeadComponent", filePath: "app/component-head/prism-component-head.component.ts", lineNumber: 251 }); })();
@@ -1 +1 @@
1
- {"version":3,"file":"prism-icon.component.d.ts","sourceRoot":"","sources":["../../../src/app/icons/prism-icon.component.ts"],"names":[],"mappings":";AAkDA,qBAOa,kBAAkB;IAC7B,QAAQ,CAAC,IAAI,8CAA4B;IACzC,QAAQ,CAAC,IAAI,8CAAa;IAE1B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAmC;;yCAJ3C,kBAAkB;2CAAlB,kBAAkB;CAkC9B"}
1
+ {"version":3,"file":"prism-icon.component.d.ts","sourceRoot":"","sources":["../../../src/app/icons/prism-icon.component.ts"],"names":[],"mappings":";AAmDA,qBAOa,kBAAkB;IAC7B,QAAQ,CAAC,IAAI,8CAA4B;IACzC,QAAQ,CAAC,IAAI,8CAAa;IAE1B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAmC;;yCAJ3C,kBAAkB;2CAAlB,kBAAkB;CAkC9B"}
@@ -26,6 +26,7 @@ const ICONS = {
26
26
  eye: '<path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"/><circle cx="12" cy="12" r="3"/>',
27
27
  code: '<path d="m18 16 4-4-4-4M6 8l-4 4 4 4m8.5-12-5 16"/>',
28
28
  x: '<path d="M18 6 6 18M6 6l12 12"/>',
29
+ check: '<path d="M20 6 9 17l-5-5"/>',
29
30
  };
30
31
  const SVG_NS = 'http://www.w3.org/2000/svg';
31
32
  export class PrismIconComponent {
@@ -63,4 +64,4 @@ export class PrismIconComponent {
63
64
  type: Component,
64
65
  args: [{ selector: 'prism-icon', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: ``, styles: [":host { display: inline-flex; align-items: center; justify-content: center; }"] }]
65
66
  }], () => [], { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] }); })();
66
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismIconComponent, { className: "PrismIconComponent", filePath: "app/icons/prism-icon.component.ts", lineNumber: 58 }); })();
67
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismIconComponent, { className: "PrismIconComponent", filePath: "app/icons/prism-icon.component.ts", lineNumber: 59 }); })();
@@ -1 +1 @@
1
- {"version":3,"file":"prism-controls-panel.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/controls/prism-controls-panel.component.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAEpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;;AAEhF,qBA2Ha,2BAA2B;IACtC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,yBAAkC;IACtE,SAAS,CAAC,QAAQ,CAAC,eAAe,uBAAgC;IAClE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAE5D,QAAQ,CAAC,eAAe,+DAAwC;IAEhE,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,iBAAiB,GAAG,IAAI;IAOtE,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI1C,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;IAIxC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;yCAtB7B,2BAA2B;2CAA3B,2BAA2B;CAyBvC"}
1
+ {"version":3,"file":"prism-controls-panel.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/controls/prism-controls-panel.component.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AAEpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;;AAEhF,qBA+La,2BAA2B;IACtC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,yBAAkC;IACtE,SAAS,CAAC,QAAQ,CAAC,eAAe,uBAAgC;IAClE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAE5D,QAAQ,CAAC,eAAe,+DAAwC;IAEhE,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,iBAAiB,GAAG,IAAI;IAOtE,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI1C,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;IAIxC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;yCAtB7B,2BAA2B;2CAA3B,2BAA2B;CAyBvC"}