@ng-prism/core 22.2.0-beta.4 → 22.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/canvas/canvas-bg.styles.d.ts +19 -0
- package/dist/app/canvas/canvas-bg.styles.d.ts.map +1 -0
- package/dist/app/canvas/canvas-bg.styles.js +58 -0
- package/dist/app/canvas/prism-canvas-bg-pill.component.d.ts.map +1 -1
- package/dist/app/canvas/prism-canvas-bg-pill.component.js +3 -3
- package/dist/app/canvas/prism-canvas-rulers.component.js +1 -1
- package/dist/app/canvas/prism-canvas-toolbar.component.d.ts +31 -7
- package/dist/app/canvas/prism-canvas-toolbar.component.d.ts.map +1 -1
- package/dist/app/canvas/prism-canvas-toolbar.component.js +158 -121
- package/dist/app/canvas/prism-template-popover.component.d.ts +0 -3
- package/dist/app/canvas/prism-template-popover.component.d.ts.map +1 -1
- package/dist/app/canvas/prism-template-popover.component.js +43 -59
- package/dist/app/component-head/head-metrics.d.ts +41 -0
- package/dist/app/component-head/head-metrics.d.ts.map +1 -0
- package/dist/app/component-head/head-metrics.js +39 -0
- package/dist/app/component-head/prism-component-head.component.d.ts +10 -2
- package/dist/app/component-head/prism-component-head.component.d.ts.map +1 -1
- package/dist/app/component-head/prism-component-head.component.js +107 -209
- package/dist/app/component-head/prism-head-gauge.component.d.ts +23 -0
- package/dist/app/component-head/prism-head-gauge.component.d.ts.map +1 -0
- package/dist/app/component-head/prism-head-gauge.component.js +123 -0
- package/dist/app/component-head/prism-head-info.component.d.ts +23 -0
- package/dist/app/component-head/prism-head-info.component.d.ts.map +1 -0
- package/dist/app/component-head/prism-head-info.component.js +124 -0
- package/dist/app/component-head/prism-stat.component.d.ts +10 -4
- package/dist/app/component-head/prism-stat.component.d.ts.map +1 -1
- package/dist/app/component-head/prism-stat.component.js +34 -44
- package/dist/app/controls/boolean-control.component.js +1 -1
- package/dist/app/controls/json-control.component.js +1 -1
- package/dist/app/controls/number-control.component.js +1 -1
- package/dist/app/controls/string-control.component.js +1 -1
- package/dist/app/controls/union-control.component.js +1 -1
- package/dist/app/header/prism-header.component.js +2 -2
- package/dist/app/icons/icon-registry.d.ts +15 -0
- package/dist/app/icons/icon-registry.d.ts.map +1 -0
- package/dist/app/icons/icon-registry.js +44 -0
- package/dist/app/icons/prism-icon.component.d.ts +2 -2
- package/dist/app/icons/prism-icon.component.d.ts.map +1 -1
- package/dist/app/icons/prism-icon.component.js +7 -32
- package/dist/app/index.d.ts +3 -1
- package/dist/app/index.d.ts.map +1 -1
- package/dist/app/index.js +26 -1
- package/dist/app/layout-menu/prism-layout-menu.component.js +3 -3
- package/dist/app/overview/overview-panel.d.ts +3 -0
- package/dist/app/overview/overview-panel.d.ts.map +1 -0
- package/dist/app/overview/overview-panel.js +9 -0
- package/dist/app/overview/overview-visibility.d.ts +15 -0
- package/dist/app/overview/overview-visibility.d.ts.map +1 -0
- package/dist/app/overview/overview-visibility.js +18 -0
- package/dist/app/overview/prism-overview-cell.component.d.ts +29 -0
- package/dist/app/overview/prism-overview-cell.component.d.ts.map +1 -0
- package/dist/app/overview/prism-overview-cell.component.js +136 -0
- package/dist/app/overview/prism-overview.component.d.ts +17 -0
- package/dist/app/overview/prism-overview.component.d.ts.map +1 -0
- package/dist/app/overview/prism-overview.component.js +53 -0
- package/dist/app/page-renderer/prism-page-renderer.component.d.ts.map +1 -1
- package/dist/app/page-renderer/prism-page-renderer.component.js +3 -3
- package/dist/app/panels/a11y/a11y-audit.service.d.ts +1 -1
- package/dist/app/panels/a11y/a11y-audit.service.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-header-badge.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-header-badge.component.js +21 -30
- package/dist/app/panels/a11y/a11y-keyboard-overlay.component.js +1 -1
- package/dist/app/panels/a11y/a11y-keyboard.component.js +1 -1
- package/dist/app/panels/a11y/a11y-keyboard.service.d.ts +1 -1
- package/dist/app/panels/a11y/a11y-keyboard.service.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-overlay-host.component.js +1 -1
- package/dist/app/panels/a11y/a11y-panel-state.service.d.ts +1 -1
- package/dist/app/panels/a11y/a11y-panel-state.service.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-panel.component.js +1 -1
- package/dist/app/panels/a11y/a11y-perspective.service.d.ts +1 -1
- package/dist/app/panels/a11y/a11y-perspective.service.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-score.component.js +1 -1
- package/dist/app/panels/a11y/a11y-sr-overlay.component.js +1 -1
- package/dist/app/panels/a11y/a11y-sr.component.js +1 -1
- package/dist/app/panels/a11y/a11y-sr.service.d.ts +1 -1
- package/dist/app/panels/a11y/a11y-sr.service.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-summary.d.ts +15 -0
- package/dist/app/panels/a11y/a11y-summary.d.ts.map +1 -0
- package/dist/app/panels/a11y/a11y-summary.js +33 -0
- package/dist/app/panels/a11y/a11y-tree.component.js +2 -2
- package/dist/app/panels/a11y/a11y-tree.service.d.ts +1 -1
- package/dist/app/panels/a11y/a11y-tree.service.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-violations.component.js +3 -3
- package/dist/app/panels/a11y/a11y.types.d.ts +14 -0
- package/dist/app/panels/a11y/a11y.types.d.ts.map +1 -1
- package/dist/app/panels/builtin-navigation-decorations.d.ts +8 -0
- package/dist/app/panels/builtin-navigation-decorations.d.ts.map +1 -0
- package/dist/app/panels/builtin-navigation-decorations.js +20 -0
- package/dist/app/panels/builtin-panels.d.ts.map +1 -1
- package/dist/app/panels/builtin-panels.js +2 -0
- package/dist/app/panels/controls/prism-controls-panel.component.js +1 -1
- package/dist/app/panels/events/prism-events-panel.component.js +1 -1
- package/dist/app/panels/events/prism-json-node.component.js +1 -1
- package/dist/app/panels/panel-host/panel-badge.d.ts +8 -2
- package/dist/app/panels/panel-host/panel-badge.d.ts.map +1 -1
- package/dist/app/panels/panel-host/panel-badge.js +8 -13
- package/dist/app/panels/panel-host/prism-panel-host.component.d.ts +8 -2
- package/dist/app/panels/panel-host/prism-panel-host.component.d.ts.map +1 -1
- package/dist/app/panels/panel-host/prism-panel-host.component.js +33 -22
- package/dist/app/renderer/overlay-resolver.d.ts.map +1 -1
- package/dist/app/renderer/overlay-resolver.js +12 -1
- package/dist/app/renderer/prism-renderer.component.d.ts +0 -1
- package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
- package/dist/app/renderer/prism-renderer.component.js +11 -75
- package/dist/app/renderer/projectable-content.d.ts +10 -0
- package/dist/app/renderer/projectable-content.d.ts.map +1 -0
- package/dist/app/renderer/projectable-content.js +60 -0
- package/dist/app/services/prism-canvas.service.d.ts +1 -1
- package/dist/app/services/prism-canvas.service.d.ts.map +1 -1
- package/dist/app/services/prism-capture.service.d.ts +7 -1
- package/dist/app/services/prism-capture.service.d.ts.map +1 -1
- package/dist/app/services/prism-capture.service.js +27 -1
- package/dist/app/services/prism-event-log.service.d.ts +1 -1
- package/dist/app/services/prism-event-log.service.d.ts.map +1 -1
- package/dist/app/services/prism-layout.service.d.ts +1 -4
- package/dist/app/services/prism-layout.service.d.ts.map +1 -1
- package/dist/app/services/prism-layout.service.js +0 -8
- package/dist/app/services/prism-manifest.service.d.ts +1 -1
- package/dist/app/services/prism-manifest.service.d.ts.map +1 -1
- package/dist/app/services/prism-navigation.service.d.ts +1 -1
- package/dist/app/services/prism-navigation.service.d.ts.map +1 -1
- package/dist/app/services/prism-panel.service.d.ts +19 -1
- package/dist/app/services/prism-panel.service.d.ts.map +1 -1
- package/dist/app/services/prism-panel.service.js +28 -0
- package/dist/app/services/prism-persistence.service.d.ts +1 -1
- package/dist/app/services/prism-persistence.service.d.ts.map +1 -1
- package/dist/app/services/prism-plugin.service.d.ts +8 -2
- package/dist/app/services/prism-plugin.service.d.ts.map +1 -1
- package/dist/app/services/prism-plugin.service.js +15 -0
- package/dist/app/services/prism-renderer.service.d.ts +1 -1
- package/dist/app/services/prism-renderer.service.d.ts.map +1 -1
- package/dist/app/services/prism-search.service.d.ts +1 -1
- package/dist/app/services/prism-search.service.d.ts.map +1 -1
- package/dist/app/services/prism-theme.service.d.ts +1 -1
- package/dist/app/services/prism-theme.service.d.ts.map +1 -1
- package/dist/app/services/prism-url-state.service.d.ts +1 -1
- package/dist/app/services/prism-url-state.service.d.ts.map +1 -1
- package/dist/app/services/prism-variant-bg.service.d.ts +1 -1
- package/dist/app/services/prism-variant-bg.service.d.ts.map +1 -1
- package/dist/app/shared/prism-metric-badge.component.d.ts +32 -0
- package/dist/app/shared/prism-metric-badge.component.d.ts.map +1 -0
- package/dist/app/shared/prism-metric-badge.component.js +70 -0
- package/dist/app/shell/prism-shell.component.d.ts +0 -1
- package/dist/app/shell/prism-shell.component.d.ts.map +1 -1
- package/dist/app/shell/prism-shell.component.js +57 -49
- package/dist/app/sidebar/navigation-decorations.d.ts +70 -0
- package/dist/app/sidebar/navigation-decorations.d.ts.map +1 -0
- package/dist/app/sidebar/navigation-decorations.js +87 -0
- package/dist/app/sidebar/prism-sidebar.component.d.ts +29 -8
- package/dist/app/sidebar/prism-sidebar.component.d.ts.map +1 -1
- package/dist/app/sidebar/prism-sidebar.component.js +129 -76
- package/dist/app/theme/prism-default-theme.d.ts.map +1 -1
- package/dist/app/theme/prism-default-theme.js +44 -4
- package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts +4 -1
- package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts.map +1 -1
- package/dist/app/variant-ribbon/prism-variant-ribbon.component.js +13 -26
- package/dist/app/variant-ribbon/spectrum.d.ts +19 -0
- package/dist/app/variant-ribbon/spectrum.d.ts.map +1 -0
- package/dist/app/variant-ribbon/spectrum.js +15 -0
- package/dist/app/view-tab-bar/next-view-id.d.ts +12 -0
- package/dist/app/view-tab-bar/next-view-id.d.ts.map +1 -0
- package/dist/app/view-tab-bar/next-view-id.js +16 -0
- package/dist/app/view-tab-bar/prism-view-panel-host.component.d.ts +0 -1
- package/dist/app/view-tab-bar/prism-view-panel-host.component.d.ts.map +1 -1
- package/dist/app/view-tab-bar/prism-view-panel-host.component.js +11 -12
- package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts +0 -1
- package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts.map +1 -1
- package/dist/app/view-tab-bar/prism-view-tab-bar.component.js +6 -13
- package/dist/builder/a11y/a11y-report-reader.d.ts +15 -1
- package/dist/builder/a11y/a11y-report-reader.d.ts.map +1 -1
- package/dist/builder/a11y/a11y-report-reader.js +37 -0
- package/dist/builder/shared/prism-pipeline.d.ts.map +1 -1
- package/dist/builder/shared/prism-pipeline.js +19 -2
- package/dist/plugin/index.d.ts +2 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +10 -0
- package/dist/plugin/plugin.types.d.ts +33 -0
- package/dist/plugin/plugin.types.d.ts.map +1 -1
- package/dist/transformer/cli.js +0 -0
- package/package.json +1 -1
- package/dist/app/canvas/prism-code-drawer.component.d.ts +0 -14
- package/dist/app/canvas/prism-code-drawer.component.d.ts.map +0 -1
- package/dist/app/canvas/prism-code-drawer.component.js +0 -116
- package/dist/app/component-header/prism-component-header.component.d.ts +0 -8
- package/dist/app/component-header/prism-component-header.component.d.ts.map +0 -1
- package/dist/app/component-header/prism-component-header.component.js +0 -77
- package/dist/cli/audit-a11y/aggregator.d.ts +0 -10
- package/dist/cli/audit-a11y/aggregator.d.ts.map +0 -1
- package/dist/cli/audit-a11y/aggregator.js +0 -64
- package/dist/cli/audit-a11y/auditor.d.ts +0 -14
- package/dist/cli/audit-a11y/auditor.d.ts.map +0 -1
- package/dist/cli/audit-a11y/auditor.js +0 -104
- package/dist/cli/audit-a11y/cli.d.ts +0 -3
- package/dist/cli/audit-a11y/cli.d.ts.map +0 -1
- package/dist/cli/audit-a11y/cli.js +0 -143
- package/dist/cli/audit-a11y/index.d.ts +0 -4
- package/dist/cli/audit-a11y/index.d.ts.map +0 -1
- package/dist/cli/audit-a11y/index.js +0 -3
- package/dist/cli/audit-a11y/static-server.d.ts +0 -11
- package/dist/cli/audit-a11y/static-server.d.ts.map +0 -1
- package/dist/cli/audit-a11y/static-server.js +0 -61
|
@@ -3,6 +3,6 @@ export type A11ySubTab = 'violations' | 'keyboard' | 'tree' | 'sr';
|
|
|
3
3
|
export declare class A11yPanelStateService {
|
|
4
4
|
readonly activeTab: import("@angular/core").WritableSignal<A11ySubTab>;
|
|
5
5
|
static ɵfac: i0.ɵɵFactoryDeclaration<A11yPanelStateService, never>;
|
|
6
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
6
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=a11y-panel-state.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a11y-panel-state.service.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y-panel-state.service.ts"],"names":[],"mappings":";AAEA,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;AAEnE,qBACa,qBAAqB;IAChC,QAAQ,CAAC,SAAS,qDAAoC;yCAD3C,qBAAqB
|
|
1
|
+
{"version":3,"file":"a11y-panel-state.service.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y-panel-state.service.ts"],"names":[],"mappings":";AAEA,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;AAEnE,qBACa,qBAAqB;IAChC,QAAQ,CAAC,SAAS,qDAAoC;yCAD3C,qBAAqB;;CAEjC"}
|
|
@@ -94,7 +94,7 @@ export class A11yPanelComponent {
|
|
|
94
94
|
} }, dependencies: [A11yViolationsComponent,
|
|
95
95
|
A11yKeyboardComponent,
|
|
96
96
|
A11yTreeComponent,
|
|
97
|
-
A11ySrComponent], styles: ["[_nghost-%COMP%] { display: flex; flex-direction: column; height: 100%; }\n\n .a11y-panel[_ngcontent-%COMP%] { display: flex; flex-direction: column; height: 100%; }\n\n .subtabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 2px;\n padding: 10px 20px 0;\n border-bottom: 1px solid var(
|
|
97
|
+
A11ySrComponent], styles: ["[_nghost-%COMP%] { display: flex; flex-direction: column; height: 100%; }\n\n .a11y-panel[_ngcontent-%COMP%] { display: flex; flex-direction: column; height: 100%; }\n\n .subtabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 2px;\n padding: 10px 20px 0;\n border-bottom: 1px solid var(--%NS%prism-border);\n background: var(--%NS%prism-bg-elevated);\n position: sticky;\n top: 0;\n z-index: 2;\n }\n\n .st-tab[_ngcontent-%COMP%] {\n padding: 7px 12px;\n font-size: 12px;\n font-weight: 500;\n color: var(--%NS%prism-text-muted);\n border-radius: var(--%NS%radius-sm) var(--%NS%radius-sm) 0 0;\n position: relative;\n display: flex;\n align-items: center;\n gap: 6px;\n background: none;\n border: none;\n cursor: pointer;\n font-family: var(--%NS%font-sans);\n transition: color var(--%NS%dur-fast);\n }\n .st-tab[_ngcontent-%COMP%]:hover { color: var(--%NS%prism-text-2); }\n .st-tab--active[_ngcontent-%COMP%] { color: var(--%NS%prism-text); }\n .st-tab--%NS%active[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n left: 8px;\n right: 8px;\n bottom: -1px;\n height: 2px;\n background: var(--%NS%prism-primary);\n border-radius: 1px;\n }\n\n .st-badge[_ngcontent-%COMP%] {\n min-width: 16px;\n height: 16px;\n padding: 0 5px;\n border-radius: 8px;\n font-family: var(--%NS%font-mono);\n font-size: 10px;\n font-weight: 700;\n display: grid;\n place-items: center;\n background: color-mix(in srgb, var(--%NS%prism-primary) 18%, transparent);\n color: var(--%NS%prism-primary);\n }\n .st-badge--ok[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--%NS%prism-success) 18%, transparent);\n color: var(--%NS%prism-success);\n }\n .st-badge--warn[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--%NS%prism-warn) 18%, transparent);\n color: var(--%NS%prism-warn);\n }\n\n .a11y-content[_ngcontent-%COMP%] { flex: 1; overflow: auto; min-height: 0; }\n\n .a11y-disabled[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100px;\n color: var(--%NS%prism-text-muted);\n font-size: 13px;\n }"] });
|
|
98
98
|
}
|
|
99
99
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yPanelComponent, [{
|
|
100
100
|
type: Component,
|
|
@@ -3,6 +3,6 @@ export type A11yPerspectiveMode = 'visual' | 'screen-reader';
|
|
|
3
3
|
export declare class A11yPerspectiveService {
|
|
4
4
|
readonly mode: import("@angular/core").WritableSignal<A11yPerspectiveMode>;
|
|
5
5
|
static ɵfac: i0.ɵɵFactoryDeclaration<A11yPerspectiveService, never>;
|
|
6
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
6
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=a11y-perspective.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a11y-perspective.service.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y-perspective.service.ts"],"names":[],"mappings":";AAEA,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,eAAe,CAAC;AAE7D,qBACa,sBAAsB;IACjC,QAAQ,CAAC,IAAI,8DAAyC;yCAD3C,sBAAsB
|
|
1
|
+
{"version":3,"file":"a11y-perspective.service.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y-perspective.service.ts"],"names":[],"mappings":";AAEA,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,eAAe,CAAC;AAE7D,qBACa,sBAAsB;IACjC,QAAQ,CAAC,IAAI,8DAAyC;yCAD3C,sBAAsB;;CAElC"}
|
|
@@ -45,7 +45,7 @@ export class A11yScoreComponent {
|
|
|
45
45
|
i0.ɵɵattribute("r", ctx.R)("stroke-dasharray", ctx.CIRC)("stroke-dashoffset", ctx.dashOffset())("stroke", "url(#" + ctx.gradientId + ")");
|
|
46
46
|
i0.ɵɵadvance();
|
|
47
47
|
i0.ɵɵconditional(!ctx.compact() ? 8 : -1);
|
|
48
|
-
} }, styles: ["[_nghost-%COMP%] { display: inline-flex; }\n\n .score-ring[_ngcontent-%COMP%] {\n position: relative;\n width: 128px;\n height: 128px;\n }\n .compact[_nghost-%COMP%] .score-ring[_ngcontent-%COMP%], .compact [_nghost-%COMP%] .score-ring[_ngcontent-%COMP%], \n [style*=\"width:18px\"][_nghost-%COMP%] .score-ring[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n }\n\n .score-ring[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n transform: rotate(-90deg);\n width: 100%;\n height: 100%;\n }\n\n .score-ring[_ngcontent-%COMP%] circle[_ngcontent-%COMP%] {\n fill: none;\n stroke-width: 10;\n }\n .track[_ngcontent-%COMP%] { stroke: var(
|
|
48
|
+
} }, styles: ["[_nghost-%COMP%] { display: inline-flex; }\n\n .score-ring[_ngcontent-%COMP%] {\n position: relative;\n width: 128px;\n height: 128px;\n }\n .compact[_nghost-%COMP%] .score-ring[_ngcontent-%COMP%], .compact [_nghost-%COMP%] .score-ring[_ngcontent-%COMP%], \n [style*=\"width:18px\"][_nghost-%COMP%] .score-ring[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n }\n\n .score-ring[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n transform: rotate(-90deg);\n width: 100%;\n height: 100%;\n }\n\n .score-ring[_ngcontent-%COMP%] circle[_ngcontent-%COMP%] {\n fill: none;\n stroke-width: 10;\n }\n .track[_ngcontent-%COMP%] { stroke: var(--%NS%prism-input-bg); }\n .gradient-start[_ngcontent-%COMP%] { stop-color: var(--%NS%prism-primary); }\n .gradient-end[_ngcontent-%COMP%] { stop-color: var(--%NS%prism-accent); }\n .fill[_ngcontent-%COMP%] {\n stroke-linecap: round;\n transition: stroke-dashoffset 0.5s ease;\n }\n\n .score-val[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0;\n }\n .score-num[_ngcontent-%COMP%] {\n font-size: 30px;\n font-weight: 700;\n letter-spacing: -0.02em;\n background: linear-gradient(135deg, var(--%NS%prism-primary), var(--%NS%prism-accent));\n -webkit-background-clip: text;\n background-clip: text;\n color: transparent;\n font-family: var(--%NS%font-mono);\n }\n .score-max[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--%NS%prism-text-ghost);\n font-weight: 500;\n }"] });
|
|
49
49
|
}
|
|
50
50
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yScoreComponent, [{
|
|
51
51
|
type: Component,
|
|
@@ -100,7 +100,7 @@ export class A11ySrOverlayComponent {
|
|
|
100
100
|
i0.ɵɵconditionalCreate(0, A11ySrOverlayComponent_Conditional_0_Template, 2, 0);
|
|
101
101
|
} if (rf & 2) {
|
|
102
102
|
i0.ɵɵconditional(ctx.showOverlay() ? 0 : -1);
|
|
103
|
-
} }, styles: ["[_nghost-%COMP%] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 100;\n overflow: hidden;\n }\n\n .prism-a11y-sr-ov__focus[_ngcontent-%COMP%] {\n position: absolute;\n border: 2px solid var(
|
|
103
|
+
} }, styles: ["[_nghost-%COMP%] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 100;\n overflow: hidden;\n }\n\n .prism-a11y-sr-ov__focus[_ngcontent-%COMP%] {\n position: absolute;\n border: 2px solid var(--%NS%prism-primary);\n border-radius: 4px;\n background: rgba(167, 139, 250, 0.08);\n box-shadow: 0 0 0 4px rgba(167, 139, 250, 0.12);\n }\n\n .prism-a11y-sr-ov__badge[_ngcontent-%COMP%] {\n position: absolute;\n height: 18px;\n padding: 0 5px;\n min-width: 18px;\n background: var(--%NS%prism-primary);\n color: white;\n border-radius: 9px;\n font-size: 9px;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 0 0 1.5px white, 0 2px 4px rgba(0, 0, 0, 0.25);\n font-family: var(--%NS%prism-font-sans, system-ui, sans-serif);\n }\n\n .prism-a11y-sr-ov__badge--active[_ngcontent-%COMP%] {\n background: var(--%NS%prism-primary-from);\n box-shadow: 0 0 0 2px white, 0 0 0 4px rgba(124, 58, 237, 0.4);\n }"] });
|
|
104
104
|
}
|
|
105
105
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11ySrOverlayComponent, [{
|
|
106
106
|
type: Component,
|
|
@@ -77,7 +77,7 @@ export class A11ySrComponent {
|
|
|
77
77
|
i0.ɵɵconditionalCreate(0, A11ySrComponent_Conditional_0_Template, 2, 0, "div", 0)(1, A11ySrComponent_Conditional_1_Template, 2, 0, "div", 0)(2, A11ySrComponent_Conditional_2_Template, 3, 0, "div", 1);
|
|
78
78
|
} if (rf & 2) {
|
|
79
79
|
i0.ɵɵconditional(!ctx.rendererService.renderedElement() ? 0 : !ctx.announcements().length ? 1 : 2);
|
|
80
|
-
} }, styles: ["[_nghost-%COMP%] { display: block; height: 100%; overflow: auto; }\n\n .sr-empty[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: center;\n min-height: 100px; color: var(
|
|
80
|
+
} }, styles: ["[_nghost-%COMP%] { display: block; height: 100%; overflow: auto; }\n\n .sr-empty[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: center;\n min-height: 100px; color: var(--%NS%prism-text-muted); font-size: 13px;\n }\n\n .sr-body[_ngcontent-%COMP%] {\n padding: 16px 20px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .sr-line[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 56px 1fr;\n gap: 12px;\n padding: 10px 12px;\n background: var(--%NS%prism-bg-surface);\n border: 1px solid var(--%NS%prism-border);\n border-radius: 8px;\n }\n\n .sr-step[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-size: 11px;\n color: var(--%NS%prism-text-ghost);\n font-weight: 600;\n }\n\n .sr-text[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--%NS%prism-text);\n line-height: 1.5;\n }\n\n .sr-name[_ngcontent-%COMP%] {\n color: var(--%NS%prism-primary);\n font-weight: 600;\n font-style: normal;\n }\n\n .sr-text[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-size: 11.5px;\n color: var(--%NS%prism-text-muted);\n padding: 1px 5px;\n background: var(--%NS%prism-input-bg);\n border-radius: var(--%NS%radius-xs);\n }"] });
|
|
81
81
|
}
|
|
82
82
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11ySrComponent, [{
|
|
83
83
|
type: Component,
|
|
@@ -3,6 +3,6 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
export declare class A11ySrService {
|
|
4
4
|
buildAnnouncementList(root: Element, getById?: (id: string) => Element | null): SrAnnouncement[];
|
|
5
5
|
static ɵfac: i0.ɵɵFactoryDeclaration<A11ySrService, never>;
|
|
6
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
6
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=a11y-sr.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a11y-sr.service.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y-sr.service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;;AAwCtD,qBACa,aAAa;IACxB,qBAAqB,CACnB,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,GACvC,cAAc,EAAE;yCAJR,aAAa
|
|
1
|
+
{"version":3,"file":"a11y-sr.service.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y-sr.service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;;AAwCtD,qBACa,aAAa;IACxB,qBAAqB,CACnB,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,GACvC,cAAc,EAAE;yCAJR,aAAa;;CAYzB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { A11yComponentMeta, A11yScoreResult, A11yThresholds } from './a11y.types.js';
|
|
2
|
+
/**
|
|
3
|
+
* A component's standing, derived with the same precedence
|
|
4
|
+
* `checkA11yThresholds` uses library-wide.
|
|
5
|
+
*
|
|
6
|
+
* Browser-safe and deliberately so, even though the build step is its main
|
|
7
|
+
* caller: the derivation is written down once and read from both sides. The
|
|
8
|
+
* build-time hook stores the result in the component's meta for the navigation
|
|
9
|
+
* marker, and the panel tab grades the *live* audit with the very same rule.
|
|
10
|
+
* The two look at different numbers — the report is a snapshot, the audit is
|
|
11
|
+
* running now — but they must never grade the same number differently, which
|
|
12
|
+
* is what a second hardcoded scale next to this one would guarantee.
|
|
13
|
+
*/
|
|
14
|
+
export declare function deriveA11ySummary(score: A11yScoreResult, thresholds: A11yThresholds): NonNullable<A11yComponentMeta['summary']>;
|
|
15
|
+
//# sourceMappingURL=a11y-summary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a11y-summary.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y-summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,cAAc,EACf,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,cAAc,GACzB,WAAW,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAuB3C"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A component's standing, derived with the same precedence
|
|
3
|
+
* `checkA11yThresholds` uses library-wide.
|
|
4
|
+
*
|
|
5
|
+
* Browser-safe and deliberately so, even though the build step is its main
|
|
6
|
+
* caller: the derivation is written down once and read from both sides. The
|
|
7
|
+
* build-time hook stores the result in the component's meta for the navigation
|
|
8
|
+
* marker, and the panel tab grades the *live* audit with the very same rule.
|
|
9
|
+
* The two look at different numbers — the report is a snapshot, the audit is
|
|
10
|
+
* running now — but they must never grade the same number differently, which
|
|
11
|
+
* is what a second hardcoded scale next to this one would guarantee.
|
|
12
|
+
*/
|
|
13
|
+
export function deriveA11ySummary(score, thresholds) {
|
|
14
|
+
if (score.critical > thresholds.critical ||
|
|
15
|
+
score.serious > thresholds.serious) {
|
|
16
|
+
const parts = [];
|
|
17
|
+
if (score.critical > 0)
|
|
18
|
+
parts.push(`${score.critical} critical`);
|
|
19
|
+
if (score.serious > 0)
|
|
20
|
+
parts.push(`${score.serious} serious`);
|
|
21
|
+
// Only reachable with a negative configured threshold: the branch fires
|
|
22
|
+
// on `0 > threshold` with both counts still at zero, and `parts` stays
|
|
23
|
+
// empty. Fall back to the score-based label rather than ship "A11y: ".
|
|
24
|
+
const label = parts.length > 0
|
|
25
|
+
? `A11y: ${parts.join(', ')}`
|
|
26
|
+
: `A11y score ${score.score}`;
|
|
27
|
+
return { variant: 'danger', label };
|
|
28
|
+
}
|
|
29
|
+
if (score.moderate > thresholds.moderate || score.score < thresholds.score) {
|
|
30
|
+
return { variant: 'warn', label: `A11y score ${score.score}` };
|
|
31
|
+
}
|
|
32
|
+
return { variant: 'ok', label: `A11y score ${score.score}` };
|
|
33
|
+
}
|
|
@@ -133,7 +133,7 @@ export class A11yTreeNodeComponent {
|
|
|
133
133
|
i0.ɵɵrepeater(ctx.stateEntries());
|
|
134
134
|
i0.ɵɵadvance(2);
|
|
135
135
|
i0.ɵɵconditional(ctx.expanded() && ctx.node().children.length ? 9 : -1);
|
|
136
|
-
} }, dependencies: [A11yTreeNodeComponent], styles: ["[_nghost-%COMP%] { display: block; }\n\n .aria-tree-line[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 2px 0;\n font-family: var(
|
|
136
|
+
} }, dependencies: [A11yTreeNodeComponent], styles: ["[_nghost-%COMP%] { display: block; }\n\n .aria-tree-line[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 2px 0;\n font-family: var(--%NS%font-mono);\n font-size: 12.5px;\n line-height: 1.8;\n color: var(--%NS%prism-text-2);\n }\n .aria-tree-line--hidden[_ngcontent-%COMP%] { opacity: 0.4; }\n\n .indent[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-ghost);\n opacity: 0.5;\n user-select: none;\n flex-shrink: 0;\n white-space: pre;\n font-size: 12px;\n text-align: right;\n }\n\n .tree-toggle[_ngcontent-%COMP%] {\n background: none;\n border: none;\n cursor: pointer;\n font-size: 10px;\n color: var(--%NS%prism-text-muted);\n padding: 0;\n width: 12px;\n flex-shrink: 0;\n }\n\n .role[_ngcontent-%COMP%] { color: var(--%NS%prism-primary); font-weight: 600; }\n .name[_ngcontent-%COMP%] { color: var(--%NS%prism-text); }\n .attr[_ngcontent-%COMP%] { color: var(--%NS%prism-text-ghost); }"] });
|
|
137
137
|
}
|
|
138
138
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yTreeNodeComponent, [{
|
|
139
139
|
type: Component,
|
|
@@ -183,7 +183,7 @@ export class A11yTreeComponent {
|
|
|
183
183
|
i0.ɵɵconditionalCreate(0, A11yTreeComponent_Conditional_0_Template, 2, 0, "div", 0)(1, A11yTreeComponent_Conditional_1_Template, 2, 3, "div", 1);
|
|
184
184
|
} if (rf & 2) {
|
|
185
185
|
i0.ɵɵconditional(!ctx.rendererService.renderedElement() ? 0 : ctx.tree() ? 1 : -1);
|
|
186
|
-
} }, dependencies: [A11yTreeNodeComponent], styles: ["[_nghost-%COMP%] { display: block; height: 100%; overflow: auto; }\n\n .aria-tree[_ngcontent-%COMP%] {\n padding: 14px 20px;\n }\n\n .tree-empty[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: center;\n min-height: 100px; color: var(
|
|
186
|
+
} }, dependencies: [A11yTreeNodeComponent], styles: ["[_nghost-%COMP%] { display: block; height: 100%; overflow: auto; }\n\n .aria-tree[_ngcontent-%COMP%] {\n padding: 14px 20px;\n }\n\n .tree-empty[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: center;\n min-height: 100px; color: var(--%NS%prism-text-muted); font-size: 13px;\n }"] });
|
|
187
187
|
}
|
|
188
188
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yTreeComponent, [{
|
|
189
189
|
type: Component,
|
|
@@ -3,6 +3,6 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
export declare class A11yTreeService {
|
|
4
4
|
buildTree(root: Element, getById?: (id: string) => Element | null): A11yNode;
|
|
5
5
|
static ɵfac: i0.ɵɵFactoryDeclaration<A11yTreeService, never>;
|
|
6
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
6
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=a11y-tree.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a11y-tree.service.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y-tree.service.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;;AAQhD,qBACa,eAAe;IAC1B,SAAS,CACP,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,GACvC,QAAQ;yCAJA,eAAe
|
|
1
|
+
{"version":3,"file":"a11y-tree.service.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y-tree.service.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;;AAQhD,qBACa,eAAe;IAC1B,SAAS,CACP,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,GACvC,QAAQ;yCAJA,eAAe;;CAO3B"}
|
|
@@ -56,7 +56,7 @@ function A11yViolationsComponent_Conditional_1_For_13_Template(rf, ctx) { if (rf
|
|
|
56
56
|
} if (rf & 2) {
|
|
57
57
|
const item_r2 = ctx.$implicit;
|
|
58
58
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
59
|
-
i0.ɵɵstyleProp("
|
|
59
|
+
i0.ɵɵstyleProp("--%NS%sev-color", ctx_r0.sevColor(item_r2.impact));
|
|
60
60
|
i0.ɵɵadvance(2);
|
|
61
61
|
i0.ɵɵtextInterpolate(item_r2.impact ?? "pass");
|
|
62
62
|
i0.ɵɵadvance(3);
|
|
@@ -145,11 +145,11 @@ export class A11yViolationsComponent {
|
|
|
145
145
|
return sevColor(impact);
|
|
146
146
|
}
|
|
147
147
|
static ɵfac = function A11yViolationsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || A11yViolationsComponent)(); };
|
|
148
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: A11yViolationsComponent, selectors: [["prism-a11y-violations"]], decls: 3, vars: 1, consts: [[1, "a11y-status", "a11y-status--error"], [1, "a11y-body", 3, "a11y-body--loading"], [1, "a11y-status"], [1, "a11y-body"], [1, "score-wrap"], [3, "score"], [1, "score-label"], [1, "score-meta"], [2, "background", "var(--prism-success)"], [1, "viol-list"], [1, "viol", 3, "
|
|
148
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: A11yViolationsComponent, selectors: [["prism-a11y-violations"]], decls: 3, vars: 1, consts: [[1, "a11y-status", "a11y-status--error"], [1, "a11y-body", 3, "a11y-body--loading"], [1, "a11y-status"], [1, "a11y-body"], [1, "score-wrap"], [3, "score"], [1, "score-label"], [1, "score-meta"], [2, "background", "var(--prism-success)"], [1, "viol-list"], [1, "viol", 3, "--%NS%sev-color"], [2, "background", "var(--prism-danger)"], [2, "background", "var(--prism-warn)"], [1, "viol"], [1, "viol-sev"], [1, "viol-text"], [1, "viol-rule"]], template: function A11yViolationsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
149
149
|
i0.ɵɵconditionalCreate(0, A11yViolationsComponent_Conditional_0_Template, 2, 1, "div", 0)(1, A11yViolationsComponent_Conditional_1_Template, 15, 7, "div", 1)(2, A11yViolationsComponent_Conditional_2_Template, 2, 0, "div", 2);
|
|
150
150
|
} if (rf & 2) {
|
|
151
151
|
i0.ɵɵconditional(ctx.auditService.error() ? 0 : ctx.auditService.results() || ctx.auditService.running() ? 1 : 2);
|
|
152
|
-
} }, dependencies: [A11yScoreComponent], styles: ["[_nghost-%COMP%] { display: flex; flex-direction: column; height: 100%; overflow: auto; }\n\n .a11y-body[_ngcontent-%COMP%] {\n padding: 18px 20px;\n display: grid;\n grid-template-columns: 220px 1fr;\n gap: 20px;\n min-height: 0;\n }\n .a11y-body--loading[_ngcontent-%COMP%] { opacity: 0.55; transition: opacity var(
|
|
152
|
+
} }, dependencies: [A11yScoreComponent], styles: ["[_nghost-%COMP%] { display: flex; flex-direction: column; height: 100%; overflow: auto; }\n\n .a11y-body[_ngcontent-%COMP%] {\n padding: 18px 20px;\n display: grid;\n grid-template-columns: 220px 1fr;\n gap: 20px;\n min-height: 0;\n }\n .a11y-body--loading[_ngcontent-%COMP%] { opacity: 0.55; transition: opacity var(--%NS%dur-base); }\n\n .score-wrap[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 10px;\n padding: 14px;\n background: var(--%NS%prism-bg-surface);\n border: 1px solid var(--%NS%prism-border);\n border-radius: 10px;\n align-self: start;\n }\n\n .score-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--%NS%prism-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.08em;\n font-weight: 600;\n }\n .score-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n margin-top: 2px;\n font-size: 11px;\n color: var(--%NS%prism-text-muted);\n }\n .score-meta[_ngcontent-%COMP%] span[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 4px; }\n .score-meta[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { width: 6px; height: 6px; border-radius: 50%; display: block; }\n\n .viol-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n min-width: 0;\n }\n\n .viol[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 10px 12px;\n background: var(--%NS%prism-bg-surface);\n border: 1px solid var(--%NS%prism-border);\n border-radius: 8px;\n border-left: 3px solid var(--%NS%sev-color, var(--%NS%prism-primary));\n transition: border-color var(--%NS%dur-fast);\n }\n .viol[_ngcontent-%COMP%]:hover { border-color: var(--%NS%prism-border-strong); }\n\n .viol-sev[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-size: 9.5px;\n font-weight: 700;\n padding: 2px 6px;\n border-radius: var(--%NS%radius-xs);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n background: color-mix(in srgb, var(--%NS%sev-color) 15%, transparent);\n color: var(--%NS%sev-color);\n }\n\n .viol-text[_ngcontent-%COMP%] {\n font-size: 12.5px;\n color: var(--%NS%prism-text);\n min-width: 0;\n }\n .viol-text[_ngcontent-%COMP%] b[_ngcontent-%COMP%] {\n display: block;\n font-weight: 600;\n margin-bottom: 1px;\n }\n .viol-text[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n font-size: 11.5px;\n }\n\n .viol-rule[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-size: 11px;\n color: var(--%NS%prism-text-ghost);\n padding: 2px 7px;\n background: var(--%NS%prism-input-bg);\n border-radius: var(--%NS%radius-xs);\n white-space: nowrap;\n }\n\n .a11y-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100px;\n color: var(--%NS%prism-text-muted);\n font-size: 13px;\n }\n .a11y-status--error[_ngcontent-%COMP%] { color: var(--%NS%prism-danger); }\n\n @media (max-width: 1100px) {\n .a11y-body[_ngcontent-%COMP%] { grid-template-columns: 1fr; }\n }"] });
|
|
153
153
|
}
|
|
154
154
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yViolationsComponent, [{
|
|
155
155
|
type: Component,
|
|
@@ -41,6 +41,20 @@ export interface A11yManifestMeta {
|
|
|
41
41
|
total: A11yReport['total'];
|
|
42
42
|
thresholds: A11yThresholds;
|
|
43
43
|
}
|
|
44
|
+
/** Shape stored under `showcaseConfig.meta.a11y`. */
|
|
45
|
+
export interface A11yComponentMeta {
|
|
46
|
+
found: boolean;
|
|
47
|
+
score: A11yScoreResult;
|
|
48
|
+
/**
|
|
49
|
+
* Pre-derived headline, written by the build step. Optional because a report
|
|
50
|
+
* written before this field existed simply has none, and the marker is then
|
|
51
|
+
* left out rather than guessed at.
|
|
52
|
+
*/
|
|
53
|
+
summary?: {
|
|
54
|
+
variant: 'ok' | 'warn' | 'danger';
|
|
55
|
+
label: string;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
44
58
|
export interface NgPrismA11yConfig {
|
|
45
59
|
/** Thresholds for the header badge color-coding and (when run via the CLI) build failure. */
|
|
46
60
|
thresholds?: Partial<A11yThresholds>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a11y.types.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,KAAK,EAAE,eAAe,GAAG;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3B,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,6FAA6F;IAC7F,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACrC,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IACzC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
1
|
+
{"version":3,"file":"a11y.types.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,KAAK,EAAE,eAAe,GAAG;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3B,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,qDAAqD;AACrD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,eAAe,CAAC;IACvB;;;;OAIG;IACH,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAChE;AAED,MAAM,WAAW,iBAAiB;IAChC,6FAA6F;IAC7F,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACrC,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IACzC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { NavigationDecorationDefinition } from '../../plugin/plugin.types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Core-owned navigation markers — the counterpart to `BUILTIN_PANELS` and
|
|
4
|
+
* `BUILTIN_HEADER_WIDGETS`. A11y is a core feature, not a plugin, so its
|
|
5
|
+
* marker lives here rather than in a plugin's contribution list.
|
|
6
|
+
*/
|
|
7
|
+
export declare const BUILTIN_NAVIGATION_DECORATIONS: NavigationDecorationDefinition[];
|
|
8
|
+
//# sourceMappingURL=builtin-navigation-decorations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builtin-navigation-decorations.d.ts","sourceRoot":"","sources":["../../../src/app/panels/builtin-navigation-decorations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAGnF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,EAAE,8BAA8B,EAexE,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core-owned navigation markers — the counterpart to `BUILTIN_PANELS` and
|
|
3
|
+
* `BUILTIN_HEADER_WIDGETS`. A11y is a core feature, not a plugin, so its
|
|
4
|
+
* marker lives here rather than in a plugin's contribution list.
|
|
5
|
+
*/
|
|
6
|
+
export const BUILTIN_NAVIGATION_DECORATIONS = [
|
|
7
|
+
{
|
|
8
|
+
id: 'a11y',
|
|
9
|
+
icon: 'accessibility',
|
|
10
|
+
order: 10,
|
|
11
|
+
badge: (component) => {
|
|
12
|
+
const meta = component.meta.showcaseConfig.meta?.['a11y'];
|
|
13
|
+
if (!meta?.found || !meta.summary)
|
|
14
|
+
return null;
|
|
15
|
+
if (meta.summary.variant === 'ok')
|
|
16
|
+
return null;
|
|
17
|
+
return { variant: meta.summary.variant, label: meta.summary.label };
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtin-panels.d.ts","sourceRoot":"","sources":["../../../src/app/panels/builtin-panels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"builtin-panels.d.ts","sourceRoot":"","sources":["../../../src/app/panels/builtin-panels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAMpE,eAAO,MAAM,cAAc,EAAE,eAAe,EAK3C,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { OVERVIEW_PANEL } from '../overview/overview-panel.js';
|
|
1
2
|
import { CONTROLS_PLUGIN } from './controls/controls-plugin.js';
|
|
2
3
|
import { EVENTS_PLUGIN } from './events/events-plugin.js';
|
|
3
4
|
import { A11Y_CORE_PANEL } from './a11y/a11y-core.plugin.js';
|
|
4
5
|
export const BUILTIN_PANELS = [
|
|
6
|
+
OVERVIEW_PANEL,
|
|
5
7
|
...(CONTROLS_PLUGIN.panels ?? []),
|
|
6
8
|
...(EVENTS_PLUGIN.panels ?? []),
|
|
7
9
|
A11Y_CORE_PANEL,
|
|
@@ -186,7 +186,7 @@ export class PrismControlsPanelComponent {
|
|
|
186
186
|
StringControlComponent,
|
|
187
187
|
NumberControlComponent,
|
|
188
188
|
UnionControlComponent,
|
|
189
|
-
JsonControlComponent], styles: [".ctl-panel[_ngcontent-%COMP%] {\n overflow-y: auto;\n height: 100%;\n }\n\n .ctl-toolbar[_ngcontent-%COMP%] {\n position: sticky;\n top: 0;\n z-index: 2;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 20px;\n background: var(
|
|
189
|
+
JsonControlComponent], styles: [".ctl-panel[_ngcontent-%COMP%] {\n overflow-y: auto;\n height: 100%;\n }\n\n .ctl-toolbar[_ngcontent-%COMP%] {\n position: sticky;\n top: 0;\n z-index: 2;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 20px;\n background: var(--%NS%prism-bg-elevated);\n border-bottom: 1px solid var(--%NS%prism-border);\n }\n .ctl-dirty-info[_ngcontent-%COMP%] {\n font-size: 11.5px;\n font-family: var(--%NS%font-mono);\n color: var(--%NS%prism-text-muted);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n }\n .ctl-dirty-dot[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--%NS%prism-primary);\n box-shadow: 0 0 6px color-mix(in srgb, var(--%NS%prism-primary) 60%, transparent);\n }\n .ctl-reset-btn[_ngcontent-%COMP%] {\n height: 24px;\n padding: 0 10px;\n border-radius: 5px;\n font-size: 11.5px;\n font-weight: 500;\n font-family: var(--%NS%font-sans);\n color: var(--%NS%prism-text-muted);\n background: transparent;\n border: 1px solid var(--%NS%prism-border);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n transition: color var(--%NS%dur-fast), background var(--%NS%dur-fast), border-color var(--%NS%dur-fast);\n }\n .ctl-reset-btn[_ngcontent-%COMP%]:hover {\n color: var(--%NS%prism-text);\n border-color: color-mix(in srgb, var(--%NS%prism-primary) 40%, var(--%NS%prism-border));\n background: color-mix(in srgb, var(--%NS%prism-primary) 8%, transparent);\n }\n .ctl-reset-btn[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--%NS%prism-primary);\n outline-offset: 1px;\n }\n\n .ctl-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 180px 1fr;\n align-items: center;\n gap: 12px;\n padding: 8px 20px;\n min-height: 40px;\n border-bottom: 1px solid var(--%NS%prism-border);\n }\n .ctl-row[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--%NS%prism-primary) 3%, transparent);\n }\n\n .ctl-label[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n .ctl-name[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--%NS%prism-text);\n font-weight: 500;\n }\n .ctl-type[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-size: 10.5px;\n color: var(--%NS%prism-text-ghost);\n }\n .ctl-type[_ngcontent-%COMP%] b[_ngcontent-%COMP%] {\n color: var(--%NS%prism-primary);\n font-weight: 500;\n }\n\n .ctl-input[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n }\n\n .ctl-not-editable[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-size: 11.5px;\n color: var(--%NS%prism-text-ghost);\n font-style: italic;\n }\n\n .ctl-empty[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-ghost);\n font-size: 13px;\n margin: 0;\n padding: 16px 20px;\n }"] });
|
|
190
190
|
}
|
|
191
191
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismControlsPanelComponent, [{
|
|
192
192
|
type: Component,
|
|
@@ -56,7 +56,7 @@ export class PrismEventsPanelComponent {
|
|
|
56
56
|
} if (rf & 2) {
|
|
57
57
|
i0.ɵɵadvance(2);
|
|
58
58
|
i0.ɵɵrepeater(ctx.eventLogService.events());
|
|
59
|
-
} }, dependencies: [PrismJsonNodeComponent], styles: [".ev-panel[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .ev-body[_ngcontent-%COMP%] {\n padding: 6px 0;\n overflow-y: auto;\n flex: 1;\n }\n\n .ev[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto auto 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 6px 20px;\n font-family: var(
|
|
59
|
+
} }, dependencies: [PrismJsonNodeComponent], styles: [".ev-panel[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .ev-body[_ngcontent-%COMP%] {\n padding: 6px 0;\n overflow-y: auto;\n flex: 1;\n }\n\n .ev[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto auto 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 6px 20px;\n font-family: var(--%NS%font-mono);\n font-size: 12px;\n border-bottom: 1px solid var(--%NS%prism-border);\n min-height: 32px;\n }\n .ev[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--%NS%prism-primary) 3%, transparent);\n }\n\n .ev-time[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-ghost);\n font-size: 11px;\n }\n .ev-idx[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n font-size: 11px;\n }\n .ev-name[_ngcontent-%COMP%] {\n color: var(--%NS%prism-primary);\n font-weight: 500;\n }\n .ev-args[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-2);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .ev-empty[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-ghost);\n font-size: 13px;\n padding: 16px 20px;\n margin: 0;\n }"] });
|
|
60
60
|
}
|
|
61
61
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismEventsPanelComponent, [{
|
|
62
62
|
type: Component,
|
|
@@ -266,7 +266,7 @@ export class PrismJsonNodeComponent {
|
|
|
266
266
|
} if (rf & 2) {
|
|
267
267
|
let tmp_0_0;
|
|
268
268
|
i0.ɵɵconditional((tmp_0_0 = ctx.type()) === "object" ? 0 : tmp_0_0 === "array" ? 1 : tmp_0_0 === "string" ? 2 : tmp_0_0 === "number" ? 3 : tmp_0_0 === "boolean" ? 4 : tmp_0_0 === "null" ? 5 : tmp_0_0 === "undefined" ? 6 : -1);
|
|
269
|
-
} }, dependencies: [NgComponentOutlet], styles: ["[_nghost-%COMP%] {\n display: inline;\n font-family: var(
|
|
269
|
+
} }, dependencies: [NgComponentOutlet], styles: ["[_nghost-%COMP%] {\n display: inline;\n font-family: var(--%NS%prism-font-mono, monospace);\n font-size: 12px;\n }\n .json-expandable[_ngcontent-%COMP%] {\n cursor: pointer;\n user-select: none;\n display: inline-flex;\n align-items: baseline;\n gap: 2px;\n }\n .json-expandable[_ngcontent-%COMP%]:hover .json-summary[_ngcontent-%COMP%] {\n opacity: 0.8;\n }\n .json-chevron[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n font-size: 10px;\n width: 10px;\n flex-shrink: 0;\n }\n .json-summary[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n }\n .json-children[_ngcontent-%COMP%] {\n display: block;\n padding-left: 16px;\n border-left: 1px solid var(--%NS%prism-border);\n margin: 2px 0;\n }\n .json-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: baseline;\n flex-wrap: wrap;\n gap: 0;\n padding: 1px 0;\n }\n .json-key[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n }\n .json-index[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n font-style: italic;\n }\n .json-colon[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n }\n .json-brace[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n }\n .json-string[_ngcontent-%COMP%] {\n color: var(--%NS%prism-code-attr);\n }\n .json-number[_ngcontent-%COMP%] {\n color: var(--%NS%prism-warn);\n }\n .json-boolean[_ngcontent-%COMP%] {\n color: var(--%NS%prism-primary);\n }\n .json-null[_ngcontent-%COMP%], \n .json-undefined[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n font-style: italic;\n }"] });
|
|
270
270
|
}
|
|
271
271
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismJsonNodeComponent, [{
|
|
272
272
|
type: Component,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { PanelBadge, PanelDefinition, RuntimeComponent } from '../../../plugin/plugin.types.js';
|
|
2
|
+
import type { A11yScoreResult, A11yThresholds } from '../a11y/a11y.types.js';
|
|
2
3
|
/**
|
|
3
4
|
* The live figures the built-in tabs badge themselves with.
|
|
4
5
|
*
|
|
@@ -7,11 +8,16 @@ import type { PanelBadge, PanelDefinition, RuntimeComponent } from '../../../plu
|
|
|
7
8
|
* reason the built-in chain could not simply be expressed as
|
|
8
9
|
* {@link PanelDefinition.badge} callbacks — `a11y` reports a running audit, not
|
|
9
10
|
* anything the component's meta holds.
|
|
11
|
+
*
|
|
12
|
+
* The thresholds travel with the audit result rather than being baked in here.
|
|
13
|
+
* The navigation marker grades the build-time report against the configured
|
|
14
|
+
* numbers; a tab grading the live audit on its own scale would put an amber
|
|
15
|
+
* icon in the sidebar next to a red badge on the tab for the same component.
|
|
10
16
|
*/
|
|
11
17
|
export interface PanelBadgeContext {
|
|
12
18
|
inputCount: number;
|
|
13
|
-
|
|
14
|
-
|
|
19
|
+
a11yResult: A11yScoreResult | null;
|
|
20
|
+
a11yThresholds: A11yThresholds;
|
|
15
21
|
}
|
|
16
22
|
/**
|
|
17
23
|
* The badge a panel's tab carries, if any.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel-badge.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/panel-host/panel-badge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AAEzC
|
|
1
|
+
{"version":3,"file":"panel-badge.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/panel-host/panel-badge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE7E;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;CAChC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,gBAAgB,GAAG,IAAI,EAClC,OAAO,EAAE,iBAAiB,GACzB,UAAU,GAAG,IAAI,CAyBnB"}
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
function gradeScore(score) {
|
|
3
|
-
return {
|
|
4
|
-
text: String(score),
|
|
5
|
-
variant: score >= 90 ? 'ok' : score >= 70 ? 'warn' : 'danger',
|
|
6
|
-
};
|
|
7
|
-
}
|
|
1
|
+
import { deriveA11ySummary } from '../a11y/a11y-summary.js';
|
|
8
2
|
/**
|
|
9
3
|
* The badge a panel's tab carries, if any.
|
|
10
4
|
*
|
|
@@ -31,12 +25,13 @@ export function resolvePanelBadge(panel, component, context) {
|
|
|
31
25
|
if (panel.id === 'a11y') {
|
|
32
26
|
// `=== null` rather than a falsy check: a score of 0 is a real, and the
|
|
33
27
|
// most urgent, thing to show.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return
|
|
38
|
-
|
|
39
|
-
:
|
|
28
|
+
const result = context.a11yResult;
|
|
29
|
+
if (result === null)
|
|
30
|
+
return null;
|
|
31
|
+
return {
|
|
32
|
+
text: String(result.score),
|
|
33
|
+
variant: deriveA11ySummary(result, context.a11yThresholds).variant,
|
|
34
|
+
};
|
|
40
35
|
}
|
|
41
36
|
return null;
|
|
42
37
|
}
|
|
@@ -15,8 +15,14 @@ export declare class PrismPanelHostComponent {
|
|
|
15
15
|
protected readonly envInjector: EnvironmentInjector;
|
|
16
16
|
private readonly auditService;
|
|
17
17
|
private readonly rendererService;
|
|
18
|
-
private readonly
|
|
19
|
-
private readonly
|
|
18
|
+
private readonly manifest;
|
|
19
|
+
private readonly config;
|
|
20
|
+
/**
|
|
21
|
+
* The configured thresholds, resolved the way the a11y header badge resolves
|
|
22
|
+
* them: the build step's numbers as the base, the app config on top. Both
|
|
23
|
+
* are static for the session, so this is computed once rather than per tab.
|
|
24
|
+
*/
|
|
25
|
+
private readonly a11yThresholds;
|
|
20
26
|
private readonly inputCount;
|
|
21
27
|
protected panelBadge(panel: PanelDefinition): import("../../../plugin/plugin.types.js").PanelBadge | null;
|
|
22
28
|
private readonly builtInPanels;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-panel-host.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/panel-host/prism-panel-host.component.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,mBAAmB,EAGnB,KAAK,IAAI,EAGV,MAAM,eAAe,CAAC;AAKvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"prism-panel-host.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/panel-host/prism-panel-host.component.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,mBAAmB,EAGnB,KAAK,IAAI,EAGV,MAAM,eAAe,CAAC;AAKvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAM1E,OAAO,KAAK,EAEV,eAAe,EAEhB,MAAM,iCAAiC,CAAC;;AAGzC,KAAK,kBAAkB,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,qBAkLa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkC;IACtD,SAAS,CAAC,QAAQ,CAAC,YAAY,oBAA6B;IAC5D,SAAS,CAAC,QAAQ,CAAC,WAAW,sBAA+B;IAC7D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2C;IACpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAE9D;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAM5B;IAEH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAGxB;IAEH,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,eAAe;IAQ3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;IAEhD,SAAS,CAAC,QAAQ,CAAC,SAAS,oDAQzB;IAEH,SAAS,CAAC,QAAQ,CAAC,WAAW;;OAE1B;IAEJ,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAE9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAE7B;IACF,SAAS,CAAC,QAAQ,CAAC,mBAAmB,uDAEpC;;IAsCF,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,mBAAmB;yCAtIhB,uBAAuB;2CAAvB,uBAAuB;CA0JnC"}
|