@ng-prism/core 21.11.0 → 21.12.0-beta.1

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 (71) hide show
  1. package/dist/app/header/prism-header-widget-host.component.d.ts +11 -0
  2. package/dist/app/header/prism-header-widget-host.component.d.ts.map +1 -0
  3. package/dist/app/header/prism-header-widget-host.component.js +57 -0
  4. package/dist/app/header/prism-header.component.d.ts +3 -0
  5. package/dist/app/header/prism-header.component.d.ts.map +1 -1
  6. package/dist/app/header/prism-header.component.js +76 -20
  7. package/dist/app/panels/a11y/a11y-header-badge.component.d.ts +16 -0
  8. package/dist/app/panels/a11y/a11y-header-badge.component.d.ts.map +1 -0
  9. package/dist/app/panels/a11y/a11y-header-badge.component.js +84 -0
  10. package/dist/app/panels/a11y/a11y-thresholds.d.ts +6 -0
  11. package/dist/app/panels/a11y/a11y-thresholds.d.ts.map +1 -0
  12. package/dist/app/panels/a11y/a11y-thresholds.js +13 -0
  13. package/dist/app/panels/a11y/a11y.types.d.ts +33 -0
  14. package/dist/app/panels/a11y/a11y.types.d.ts.map +1 -1
  15. package/dist/app/panels/builtin-header-widgets.d.ts +3 -0
  16. package/dist/app/panels/builtin-header-widgets.d.ts.map +1 -0
  17. package/dist/app/panels/builtin-header-widgets.js +9 -0
  18. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts +16 -5
  19. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts.map +1 -1
  20. package/dist/app/panels/panel-host/prism-panel-host.component.js +91 -44
  21. package/dist/app/provide-prism.d.ts.map +1 -1
  22. package/dist/app/provide-prism.js +11 -0
  23. package/dist/app/renderer/prism-renderer.component.d.ts +2 -0
  24. package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
  25. package/dist/app/renderer/prism-renderer.component.js +18 -3
  26. package/dist/app/services/prism-panel.service.d.ts +5 -0
  27. package/dist/app/services/prism-panel.service.d.ts.map +1 -1
  28. package/dist/app/services/prism-panel.service.js +7 -3
  29. package/dist/app/services/prism-plugin.service.d.ts +4 -1
  30. package/dist/app/services/prism-plugin.service.d.ts.map +1 -1
  31. package/dist/app/services/prism-plugin.service.js +11 -0
  32. package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts +4 -1
  33. package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts.map +1 -1
  34. package/dist/app/variant-ribbon/prism-variant-ribbon.component.js +67 -36
  35. package/dist/builder/a11y/a11y-report-reader.d.ts +12 -0
  36. package/dist/builder/a11y/a11y-report-reader.d.ts.map +1 -0
  37. package/dist/builder/a11y/a11y-report-reader.js +49 -0
  38. package/dist/builder/manifest/runtime-manifest.generator.d.ts +1 -0
  39. package/dist/builder/manifest/runtime-manifest.generator.d.ts.map +1 -1
  40. package/dist/builder/manifest/runtime-manifest.generator.js +8 -1
  41. package/dist/builder/plugin-runner/plugin-runner.d.ts.map +1 -1
  42. package/dist/builder/plugin-runner/plugin-runner.js +3 -1
  43. package/dist/builder/shared/prism-pipeline.d.ts.map +1 -1
  44. package/dist/builder/shared/prism-pipeline.js +19 -1
  45. package/dist/cli/audit-a11y/aggregator.d.ts +10 -0
  46. package/dist/cli/audit-a11y/aggregator.d.ts.map +1 -0
  47. package/dist/cli/audit-a11y/aggregator.js +64 -0
  48. package/dist/cli/audit-a11y/auditor.d.ts +14 -0
  49. package/dist/cli/audit-a11y/auditor.d.ts.map +1 -0
  50. package/dist/cli/audit-a11y/auditor.js +104 -0
  51. package/dist/cli/audit-a11y/cli.d.ts +3 -0
  52. package/dist/cli/audit-a11y/cli.d.ts.map +1 -0
  53. package/dist/cli/audit-a11y/cli.js +143 -0
  54. package/dist/cli/audit-a11y/index.d.ts +4 -0
  55. package/dist/cli/audit-a11y/index.d.ts.map +1 -0
  56. package/dist/cli/audit-a11y/index.js +3 -0
  57. package/dist/cli/audit-a11y/static-server.d.ts +11 -0
  58. package/dist/cli/audit-a11y/static-server.d.ts.map +1 -0
  59. package/dist/cli/audit-a11y/static-server.js +61 -0
  60. package/dist/decorator/index.d.ts +1 -1
  61. package/dist/decorator/index.d.ts.map +1 -1
  62. package/dist/decorator/showcase.decorator.d.ts +1 -1
  63. package/dist/decorator/showcase.decorator.d.ts.map +1 -1
  64. package/dist/decorator/showcase.types.d.ts +20 -6
  65. package/dist/decorator/showcase.types.d.ts.map +1 -1
  66. package/dist/plugin/index.d.ts +2 -2
  67. package/dist/plugin/index.d.ts.map +1 -1
  68. package/dist/plugin/index.js +1 -1
  69. package/dist/plugin/plugin.types.d.ts +33 -0
  70. package/dist/plugin/plugin.types.d.ts.map +1 -1
  71. package/package.json +12 -3
@@ -0,0 +1,143 @@
1
+ #!/usr/bin/env node
2
+ import { writeFileSync } from 'node:fs';
3
+ import { resolve } from 'node:path';
4
+ import { aggregateAuditResults } from './aggregator.js';
5
+ import { auditPrismApp } from './auditor.js';
6
+ import { startStaticServer } from './static-server.js';
7
+ import { checkA11yThresholds, } from '../../builder/a11y/a11y-report-reader.js';
8
+ import { resolveA11yThresholds } from '../../app/panels/a11y/a11y-thresholds.js';
9
+ function parseArgs(argv) {
10
+ const args = {
11
+ dist: '',
12
+ output: 'a11y-report.json',
13
+ port: 4317,
14
+ thresholds: {},
15
+ include: [],
16
+ exclude: [],
17
+ failOnViolation: true,
18
+ };
19
+ for (let i = 2; i < argv.length; i++) {
20
+ const a = argv[i];
21
+ const next = () => {
22
+ const v = argv[++i];
23
+ if (v === undefined) {
24
+ throw new Error(`Missing value for ${a}`);
25
+ }
26
+ return v;
27
+ };
28
+ switch (a) {
29
+ case '--dist':
30
+ args.dist = next();
31
+ break;
32
+ case '--output':
33
+ case '-o':
34
+ args.output = next();
35
+ break;
36
+ case '--port':
37
+ args.port = parseInt(next(), 10);
38
+ break;
39
+ case '--include':
40
+ args.include = next().split(',').map((s) => s.trim()).filter(Boolean);
41
+ break;
42
+ case '--exclude':
43
+ args.exclude = next().split(',').map((s) => s.trim()).filter(Boolean);
44
+ break;
45
+ case '--score':
46
+ args.thresholds.score = parseInt(next(), 10);
47
+ break;
48
+ case '--max-critical':
49
+ args.thresholds.critical = parseInt(next(), 10);
50
+ break;
51
+ case '--max-serious':
52
+ args.thresholds.serious = parseInt(next(), 10);
53
+ break;
54
+ case '--max-moderate':
55
+ args.thresholds.moderate = parseInt(next(), 10);
56
+ break;
57
+ case '--no-fail':
58
+ args.failOnViolation = false;
59
+ break;
60
+ case '-h':
61
+ case '--help':
62
+ printHelp();
63
+ process.exit(0);
64
+ default:
65
+ throw new Error(`Unknown argument: ${a}`);
66
+ }
67
+ }
68
+ if (!args.dist) {
69
+ throw new Error('Missing required --dist <path-to-built-prism-app>');
70
+ }
71
+ return args;
72
+ }
73
+ function printHelp() {
74
+ process.stdout.write(`ng-prism-audit-a11y — accessibility audit for a built Prism app.\n\n` +
75
+ `Usage:\n` +
76
+ ` ng-prism-audit-a11y --dist <path> [options]\n\n` +
77
+ `Required:\n` +
78
+ ` --dist <path> Path to the built Prism app (contains index.html)\n\n` +
79
+ `Output:\n` +
80
+ ` --output <file> Report output path (default: a11y-report.json)\n\n` +
81
+ `Server:\n` +
82
+ ` --port <n> Static server port (default: 4317)\n\n` +
83
+ `Filtering:\n` +
84
+ ` --include A,B Only audit these component class names\n` +
85
+ ` --exclude A,B Skip these component class names\n\n` +
86
+ `Thresholds (CI failure):\n` +
87
+ ` --score <n> Minimum avg score (default 80)\n` +
88
+ ` --max-critical <n> Allowed critical violations (default 0)\n` +
89
+ ` --max-serious <n> Allowed serious violations (default 0)\n` +
90
+ ` --max-moderate <n> Allowed moderate violations (default unlimited)\n` +
91
+ ` --no-fail Write report but never exit non-zero\n\n`);
92
+ }
93
+ async function main() {
94
+ const args = parseArgs(process.argv);
95
+ const server = await startStaticServer(args.dist, args.port);
96
+ process.stdout.write(`Serving ${args.dist} at ${server.url}\n`);
97
+ try {
98
+ const rawResults = await auditPrismApp({
99
+ baseUrl: server.url,
100
+ include: args.include,
101
+ exclude: args.exclude,
102
+ log: (msg) => process.stdout.write(` ${msg}\n`),
103
+ });
104
+ const report = aggregateAuditResults(rawResults);
105
+ const resolvedThresholds = resolveA11yThresholds(args.thresholds);
106
+ const outputPath = resolve(args.output);
107
+ writeFileSync(outputPath, JSON.stringify(report, null, 2), 'utf-8');
108
+ process.stdout.write(`\nReport written: ${outputPath}\n`);
109
+ process.stdout.write(`Library score: ${report.total.score}% ` +
110
+ `(${report.total.auditedVariants} variants across ${report.total.auditedComponents} components)\n` +
111
+ `Violations: ${report.total.critical} critical · ${report.total.serious} serious · ` +
112
+ `${report.total.moderate} moderate · ${report.total.minor} minor\n`);
113
+ const violations = checkA11yThresholds({
114
+ total: report.total,
115
+ thresholds: resolvedThresholds,
116
+ });
117
+ if (violations.length > 0) {
118
+ process.stderr.write('\nThreshold violations:\n');
119
+ for (const v of violations) {
120
+ process.stderr.write(` - ${formatViolation(v)}\n`);
121
+ }
122
+ if (args.failOnViolation) {
123
+ process.exitCode = 1;
124
+ }
125
+ }
126
+ else {
127
+ process.stdout.write('\nAll thresholds met.\n');
128
+ }
129
+ }
130
+ finally {
131
+ await server.close();
132
+ }
133
+ }
134
+ function formatViolation(v) {
135
+ if (v.metric === 'score') {
136
+ return `score ${v.actual}% < ${v.threshold}%`;
137
+ }
138
+ return `${v.metric}: ${v.actual} > ${v.threshold} allowed`;
139
+ }
140
+ main().catch((err) => {
141
+ process.stderr.write(`Error: ${err instanceof Error ? err.message : String(err)}\n`);
142
+ process.exit(1);
143
+ });
@@ -0,0 +1,4 @@
1
+ export { auditPrismApp, type AuditOptions } from './auditor.js';
2
+ export { aggregateAuditResults, type RawAuditResult } from './aggregator.js';
3
+ export { startStaticServer, type StaticServerHandle } from './static-server.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/audit-a11y/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { auditPrismApp } from './auditor.js';
2
+ export { aggregateAuditResults } from './aggregator.js';
3
+ export { startStaticServer } from './static-server.js';
@@ -0,0 +1,11 @@
1
+ export interface StaticServerHandle {
2
+ url: string;
3
+ port: number;
4
+ close(): Promise<void>;
5
+ }
6
+ /**
7
+ * Minimal static file server for Angular SPA output.
8
+ * Serves files relative to `root`; for unknown routes returns index.html (SPA fallback).
9
+ */
10
+ export declare function startStaticServer(root: string, port: number): Promise<StaticServerHandle>;
11
+ //# sourceMappingURL=static-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static-server.d.ts","sourceRoot":"","sources":["../../../src/cli/audit-a11y/static-server.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA8CzF"}
@@ -0,0 +1,61 @@
1
+ import { createServer } from 'node:http';
2
+ import { createReadStream, existsSync, statSync } from 'node:fs';
3
+ import { extname, join, normalize, resolve } from 'node:path';
4
+ const MIME = {
5
+ '.html': 'text/html; charset=utf-8',
6
+ '.js': 'application/javascript; charset=utf-8',
7
+ '.mjs': 'application/javascript; charset=utf-8',
8
+ '.css': 'text/css; charset=utf-8',
9
+ '.json': 'application/json; charset=utf-8',
10
+ '.svg': 'image/svg+xml',
11
+ '.png': 'image/png',
12
+ '.jpg': 'image/jpeg',
13
+ '.jpeg': 'image/jpeg',
14
+ '.woff': 'font/woff',
15
+ '.woff2': 'font/woff2',
16
+ '.ico': 'image/x-icon',
17
+ };
18
+ /**
19
+ * Minimal static file server for Angular SPA output.
20
+ * Serves files relative to `root`; for unknown routes returns index.html (SPA fallback).
21
+ */
22
+ export function startStaticServer(root, port) {
23
+ const absRoot = resolve(root);
24
+ if (!existsSync(absRoot)) {
25
+ return Promise.reject(new Error(`Static root does not exist: ${absRoot}`));
26
+ }
27
+ const indexPath = join(absRoot, 'index.html');
28
+ if (!existsSync(indexPath)) {
29
+ return Promise.reject(new Error(`No index.html found in ${absRoot}`));
30
+ }
31
+ const server = createServer((req, res) => {
32
+ const url = new URL(req.url ?? '/', 'http://localhost');
33
+ let relPath = decodeURIComponent(url.pathname);
34
+ if (relPath === '/' || relPath === '')
35
+ relPath = '/index.html';
36
+ const normalized = normalize(relPath).replace(/^[/\\]+/, '');
37
+ const filePath = join(absRoot, normalized);
38
+ // Path traversal guard.
39
+ if (!filePath.startsWith(absRoot)) {
40
+ res.writeHead(403).end();
41
+ return;
42
+ }
43
+ const target = existsSync(filePath) && statSync(filePath).isFile()
44
+ ? filePath
45
+ : indexPath;
46
+ const ext = extname(target).toLowerCase();
47
+ const mime = MIME[ext] ?? 'application/octet-stream';
48
+ res.writeHead(200, { 'Content-Type': mime });
49
+ createReadStream(target).pipe(res);
50
+ });
51
+ return new Promise((resolveFn, reject) => {
52
+ server.once('error', reject);
53
+ server.listen(port, '127.0.0.1', () => {
54
+ resolveFn({
55
+ url: `http://127.0.0.1:${port}`,
56
+ port,
57
+ close: () => new Promise((r) => server.close(() => r())),
58
+ });
59
+ });
60
+ });
61
+ }
@@ -1,3 +1,3 @@
1
- export type { ShowcaseConfig, Variant, ComponentStatus } from './showcase.types.js';
1
+ export type { ShowcaseConfig, Variant, ComponentStatus, InputsOf } from './showcase.types.js';
2
2
  export { Showcase } from './showcase.decorator.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decorator/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decorator/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { ShowcaseConfig } from './showcase.types.js';
2
- export declare function Showcase(_config: ShowcaseConfig): ClassDecorator;
2
+ export declare function Showcase<T = unknown>(_config: ShowcaseConfig<T>): ClassDecorator;
3
3
  //# sourceMappingURL=showcase.decorator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"showcase.decorator.d.ts","sourceRoot":"","sources":["../../src/decorator/showcase.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,wBAAgB,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CAEhE"}
1
+ {"version":3,"file":"showcase.decorator.d.ts","sourceRoot":"","sources":["../../src/decorator/showcase.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,wBAAgB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAEhF"}
@@ -1,4 +1,4 @@
1
- import type { Provider } from '@angular/core';
1
+ import type { InputSignalWithTransform, Provider } from '@angular/core';
2
2
  import type { CanvasBg } from '../shared/canvas-bg.type.js';
3
3
  export type ComponentStatus = 'stable' | 'beta' | 'wip' | 'deprecated';
4
4
  export interface DirectiveHost {
@@ -9,7 +9,20 @@ export interface DirectiveHost {
9
9
  };
10
10
  inputs?: Record<string, unknown>;
11
11
  }
12
- export interface ShowcaseConfig {
12
+ type UnwrapSignalInput<S> = S extends InputSignalWithTransform<any, infer WriteT> ? WriteT : never;
13
+ /**
14
+ * Maps a component class `T` to a record of its signal-input properties
15
+ * (`input()`, `input.required()`, `model()`), unwrapping each to its value type.
16
+ * `output()` and other properties are excluded.
17
+ *
18
+ * When `T` is `unknown` (the default — no generic argument given), falls back
19
+ * to `Record<string, unknown>` so existing call sites without a generic param
20
+ * keep working.
21
+ */
22
+ export type InputsOf<T> = [unknown] extends [T] ? Record<string, unknown> : {
23
+ [K in keyof T as T[K] extends InputSignalWithTransform<any, any> ? K : never]: UnwrapSignalInput<T[K]>;
24
+ };
25
+ export interface ShowcaseConfig<T = unknown> {
13
26
  /** Display name in the ng-prism UI */
14
27
  title: string;
15
28
  /** Description text — Markdown supported */
@@ -21,7 +34,7 @@ export interface ShowcaseConfig {
21
34
  /** Controls the order of this component within its category (lower = higher). Components without this sort alphabetically after ordered ones. */
22
35
  componentOrder?: number;
23
36
  /** Predefined variants shown as tabs */
24
- variants?: Variant[];
37
+ variants?: Variant<T>[];
25
38
  /** Tags for search and filtering */
26
39
  tags?: string[];
27
40
  /**
@@ -51,11 +64,11 @@ export interface ShowcaseConfig {
51
64
  */
52
65
  status?: ComponentStatus;
53
66
  }
54
- export interface Variant {
67
+ export interface Variant<T = unknown> {
55
68
  /** Tab label */
56
69
  name: string;
57
- /** @Input() values for this variant */
58
- inputs?: Record<string, unknown>;
70
+ /** Signal input values for this variant. Pass a component type to `@Showcase<MyComponent>` to get autocomplete and type-checking here. */
71
+ inputs?: Partial<InputsOf<T>>;
59
72
  /**
60
73
  * Content projected into <ng-content>.
61
74
  * - string → projected into the default (unnamed) slot
@@ -69,4 +82,5 @@ export interface Variant {
69
82
  /** Recommended canvas background for this variant. Overrides `ShowcaseConfig.bg`. */
70
83
  bg?: CanvasBg;
71
84
  }
85
+ export {};
72
86
  //# sourceMappingURL=showcase.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"showcase.types.d.ts","sourceRoot":"","sources":["../../src/decorator/showcase.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE5D,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,YAAY,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2IAA2I;IAC3I,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iJAAiJ;IACjJ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B;;;;;OAKG;IACH,EAAE,CAAC,EAAE,QAAQ,CAAC;IACd,6HAA6H;IAC7H,IAAI,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IAC9B,mPAAmP;IACnP,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,MAAM,WAAW,OAAO;IACtB,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,qFAAqF;IACrF,EAAE,CAAC,EAAE,QAAQ,CAAC;CACf"}
1
+ {"version":3,"file":"showcase.types.d.ts","sourceRoot":"","sources":["../../src/decorator/showcase.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE5D,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,YAAY,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAOD,KAAK,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,wBAAwB,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC,GAC7E,MAAM,GACN,KAAK,CAAC;AAEV;;;;;;;;GAQG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAC3C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB;KACG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,GAC5D,CAAC,GACD,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACpC,CAAC;AAEN,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO;IACzC,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2IAA2I;IAC3I,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iJAAiJ;IACjJ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B;;;;;OAKG;IACH,EAAE,CAAC,EAAE,QAAQ,CAAC;IACd,6HAA6H;IAC7H,IAAI,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IAC9B,mPAAmP;IACnP,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,MAAM,WAAW,OAAO,CAAC,CAAC,GAAG,OAAO;IAClC,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,0IAA0I;IAC1I,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,qFAAqF;IACrF,EAAE,CAAC,EAAE,QAAQ,CAAC;CACf"}
@@ -1,8 +1,8 @@
1
- export type { NgPrismPlugin, PanelDefinition, ControlDefinition, NgPrismConfig, PrismManifest, ScannedComponent, InputMeta, OutputMeta, RuntimeManifest, RuntimeComponent, } from './plugin.types.js';
1
+ export type { NgPrismPlugin, PanelDefinition, ControlDefinition, HeaderWidgetDefinition, NgPrismConfig, PrismManifest, ScannedComponent, InputMeta, OutputMeta, RuntimeManifest, RuntimeComponent, } from './plugin.types.js';
2
2
  export type { StyleguidePage, CustomPage, ComponentPage, } from './page.types.js';
3
3
  export { customPage, componentPage } from './page-helpers.js';
4
4
  export type { ComponentPageOptions } from './page-helpers.js';
5
5
  export { defineConfig } from './define-config.js';
6
- export { PRISM_RENDERER_HOOKS } from '../app/tokens/prism-tokens.js';
6
+ export { PRISM_RENDERER_HOOKS, PRISM_MANIFEST, PRISM_CONFIG, } from '../app/tokens/prism-tokens.js';
7
7
  export type { PrismRendererHooks } from '../app/tokens/prism-tokens.js';
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,eAAe,EACf,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,cAAc,EACd,UAAU,EACV,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,UAAU,EACV,eAAe,EACf,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,cAAc,EACd,UAAU,EACV,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,YAAY,GACb,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export { customPage, componentPage } from './page-helpers.js';
2
2
  export { defineConfig } from './define-config.js';
3
- export { PRISM_RENDERER_HOOKS } from '../app/tokens/prism-tokens.js';
3
+ export { PRISM_RENDERER_HOOKS, PRISM_MANIFEST, PRISM_CONFIG, } from '../app/tokens/prism-tokens.js';
@@ -8,9 +8,26 @@ export interface NgPrismPlugin {
8
8
  onManifestReady?: (manifest: PrismManifest) => PrismManifest | void | Promise<PrismManifest | void>;
9
9
  panels?: PanelDefinition[];
10
10
  controls?: ControlDefinition[];
11
+ /** Header widgets rendered in the Prism shell header bar */
12
+ headerWidgets?: HeaderWidgetDefinition[];
11
13
  /** Angular standalone component that wraps each rendered component */
12
14
  wrapComponent?: Type<unknown>;
13
15
  }
16
+ export interface HeaderWidgetDefinition {
17
+ /** Unique widget id — used for de-duplication and tracking. */
18
+ id: string;
19
+ /** Eager component reference. */
20
+ component?: Type<unknown>;
21
+ /**
22
+ * Lazy-loaded component — use when the widget pulls in browser-only or
23
+ * heavy dependencies that should not run at config-load time.
24
+ */
25
+ loadComponent?: () => Promise<Type<unknown>>;
26
+ /** Slot in the header: 'start' renders next to the brand, 'end' next to the existing actions. Default: 'end'. */
27
+ placement?: 'start' | 'end';
28
+ /** Sort order within the same placement (lower = earlier). Default: 0. */
29
+ order?: number;
30
+ }
14
31
  export interface PanelDefinition {
15
32
  id: string;
16
33
  label: string;
@@ -28,6 +45,16 @@ export interface PanelDefinition {
28
45
  providers?: Provider[];
29
46
  /** When provided, the panel tab is only shown if this returns true for the active component */
30
47
  isVisible?: (component: RuntimeComponent) => boolean;
48
+ /**
49
+ * Keep the panel's component instance alive across tab switches.
50
+ * When `true`, the panel is rendered once on first activation and merely hidden
51
+ * (instead of destroyed) when the user switches tabs. Use for panels with
52
+ * expensive setup (iframes, network calls, heavy DOM) — e.g. embedded designs,
53
+ * remote previews.
54
+ *
55
+ * Default: `false`.
56
+ */
57
+ keepAlive?: boolean;
31
58
  }
32
59
  export interface ControlDefinition {
33
60
  /** Returns true if this control should handle the given input */
@@ -38,6 +65,8 @@ export interface ControlDefinition {
38
65
  export interface PrismManifest {
39
66
  components: ScannedComponent[];
40
67
  pages?: StyleguidePage[];
68
+ /** Library-wide plugin metadata (e.g. aggregate coverage totals). */
69
+ meta?: Record<string, unknown>;
41
70
  }
42
71
  export interface ScannedComponent {
43
72
  className: string;
@@ -71,6 +100,8 @@ export interface OutputMeta {
71
100
  export interface RuntimeManifest {
72
101
  components: RuntimeComponent[];
73
102
  pages?: StyleguidePage[];
103
+ /** Library-wide plugin metadata, mirrored from the build-time PrismManifest. */
104
+ meta?: Record<string, unknown>;
74
105
  }
75
106
  export interface RuntimeComponent {
76
107
  meta: ScannedComponent;
@@ -110,5 +141,7 @@ export interface NgPrismConfig {
110
141
  version?: string;
111
142
  gitHash?: string;
112
143
  };
144
+ /** Accessibility (build-time audit + runtime live audit) configuration. */
145
+ a11y?: import('../app/panels/a11y/a11y.types.js').NgPrismA11yConfig;
113
146
  }
114
147
  //# sourceMappingURL=plugin.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.types.d.ts","sourceRoot":"","sources":["../../src/plugin/plugin.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.types.d.ts","sourceRoot":"","sources":["../../src/plugin/plugin.types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-prism/core",
3
- "version": "21.11.0",
3
+ "version": "21.12.0-beta.1",
4
4
  "description": "ng-prism — the Angular-native Storybook alternative. Lightweight component showcase with @Showcase decorator, no story files needed.",
5
5
  "keywords": [
6
6
  "ng-prism",
@@ -50,7 +50,8 @@
50
50
  }
51
51
  },
52
52
  "bin": {
53
- "ng-prism-strip": "./dist/transformer/cli.js"
53
+ "ng-prism-strip": "./dist/transformer/cli.js",
54
+ "ng-prism-audit-a11y": "./dist/cli/audit-a11y/cli.js"
54
55
  },
55
56
  "schematics": "./schematics/collection.json",
56
57
  "builders": "./builders.json",
@@ -70,7 +71,9 @@
70
71
  "@angular-devkit/schematics": ">=21.0.0",
71
72
  "typescript": ">=5.5.0",
72
73
  "highlight.js": ">=11.0.0",
73
- "ngx-highlightjs": ">=14.0.0"
74
+ "ngx-highlightjs": ">=14.0.0",
75
+ "playwright": ">=1.40.0",
76
+ "axe-core": ">=4.0.0"
74
77
  },
75
78
  "peerDependenciesMeta": {
76
79
  "@angular-devkit/architect": {
@@ -78,6 +81,12 @@
78
81
  },
79
82
  "@angular-devkit/schematics": {
80
83
  "optional": false
84
+ },
85
+ "playwright": {
86
+ "optional": true
87
+ },
88
+ "axe-core": {
89
+ "optional": true
81
90
  }
82
91
  },
83
92
  "dependencies": {