@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
|
@@ -4,7 +4,6 @@ import { PrismThemeService } from '../services/prism-theme.service.js';
|
|
|
4
4
|
import { PrismLayoutService } from '../services/prism-layout.service.js';
|
|
5
5
|
import { PrismNavigationService } from '../services/prism-navigation.service.js';
|
|
6
6
|
import { PrismPanelService } from '../services/prism-panel.service.js';
|
|
7
|
-
import { PrismPluginService } from '../services/prism-plugin.service.js';
|
|
8
7
|
import { PrismComponentHeadComponent } from '../component-head/prism-component-head.component.js';
|
|
9
8
|
import { PrismVariantRibbonComponent } from '../variant-ribbon/prism-variant-ribbon.component.js';
|
|
10
9
|
import { PrismHeaderComponent } from '../header/prism-header.component.js';
|
|
@@ -12,7 +11,6 @@ import { PrismPanelHostComponent } from '../panels/panel-host/prism-panel-host.c
|
|
|
12
11
|
import { PrismRendererComponent } from '../renderer/prism-renderer.component.js';
|
|
13
12
|
import { PrismSidebarComponent } from '../sidebar/prism-sidebar.component.js';
|
|
14
13
|
import { PrismPageRendererComponent } from '../page-renderer/prism-page-renderer.component.js';
|
|
15
|
-
import { BUILTIN_PANELS } from '../panels/builtin-panels.js';
|
|
16
14
|
import { PrismUrlStateService } from '../services/prism-url-state.service.js';
|
|
17
15
|
import { PrismPersistenceService } from '../services/prism-persistence.service.js';
|
|
18
16
|
import { PrismViewTabBarComponent } from '../view-tab-bar/prism-view-tab-bar.component.js';
|
|
@@ -20,6 +18,7 @@ import { PrismViewPanelHostComponent } from '../view-tab-bar/prism-view-panel-ho
|
|
|
20
18
|
import { PrismResizerDirective } from '../directives/prism-resizer.directive.js';
|
|
21
19
|
import { PrismCanvasToolbarComponent } from '../canvas/prism-canvas-toolbar.component.js';
|
|
22
20
|
import { PrismTemplatePopoverComponent } from '../canvas/prism-template-popover.component.js';
|
|
21
|
+
import { nextViewId } from '../view-tab-bar/next-view-id.js';
|
|
23
22
|
import * as i0 from "@angular/core";
|
|
24
23
|
function PrismShellComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
25
24
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
@@ -38,28 +37,37 @@ function PrismShellComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
38
37
|
i0.ɵɵadvance(6);
|
|
39
38
|
i0.ɵɵproperty("min", 200)("max", 360)("value", ctx_r1.layout.sidebarWidth());
|
|
40
39
|
} }
|
|
41
|
-
function
|
|
40
|
+
function PrismShellComponent_Conditional_5_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
42
41
|
i0.ɵɵelement(0, "prism-view-tab-bar", 11);
|
|
43
42
|
} }
|
|
44
|
-
function
|
|
45
|
-
i0.ɵɵelement(0, "prism-
|
|
43
|
+
function PrismShellComponent_Conditional_5_Conditional_0_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
44
|
+
i0.ɵɵelement(0, "prism-variant-ribbon");
|
|
46
45
|
} }
|
|
47
|
-
function
|
|
48
|
-
i0.ɵɵ
|
|
49
|
-
i0.ɵɵ
|
|
50
|
-
i0.ɵɵ
|
|
46
|
+
function PrismShellComponent_Conditional_5_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
47
|
+
i0.ɵɵelementStart(0, "prism-component-head");
|
|
48
|
+
i0.ɵɵconditionalCreate(1, PrismShellComponent_Conditional_5_Conditional_0_Conditional_1_Template, 1, 0, "prism-view-tab-bar", 11);
|
|
49
|
+
i0.ɵɵelementEnd();
|
|
50
|
+
i0.ɵɵconditionalCreate(2, PrismShellComponent_Conditional_5_Conditional_0_Conditional_2_Template, 1, 0, "prism-variant-ribbon");
|
|
51
|
+
i0.ɵɵelementStart(3, "div", 12);
|
|
52
|
+
i0.ɵɵelement(4, "prism-canvas-toolbar")(5, "prism-renderer")(6, "prism-template-popover");
|
|
51
53
|
i0.ɵɵelementEnd();
|
|
52
54
|
} if (rf & 2) {
|
|
53
55
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
54
|
-
i0.ɵɵ
|
|
56
|
+
i0.ɵɵadvance();
|
|
57
|
+
i0.ɵɵconditional(ctx_r1.viewPanels().length > 0 ? 1 : -1);
|
|
58
|
+
i0.ɵɵadvance();
|
|
59
|
+
i0.ɵɵconditional(ctx_r1.layout.toolbarVisible() ? 2 : -1);
|
|
55
60
|
} }
|
|
56
|
-
function
|
|
57
|
-
i0.ɵɵ
|
|
61
|
+
function PrismShellComponent_Conditional_5_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
62
|
+
i0.ɵɵelementStart(0, "prism-component-head");
|
|
63
|
+
i0.ɵɵelement(1, "prism-view-tab-bar", 11);
|
|
64
|
+
i0.ɵɵelementEnd();
|
|
65
|
+
i0.ɵɵelement(2, "prism-view-panel-host", 4);
|
|
58
66
|
} }
|
|
59
|
-
function
|
|
67
|
+
function PrismShellComponent_Conditional_5_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
60
68
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
61
69
|
i0.ɵɵelementStart(0, "div", 13);
|
|
62
|
-
i0.ɵɵlistener("valueChange", function
|
|
70
|
+
i0.ɵɵlistener("valueChange", function PrismShellComponent_Conditional_5_Conditional_2_Template_div_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.layout.setPanelHeight($event)); });
|
|
63
71
|
i0.ɵɵelementEnd();
|
|
64
72
|
i0.ɵɵelementStart(1, "div", 14);
|
|
65
73
|
i0.ɵɵelement(2, "prism-panel-host");
|
|
@@ -69,16 +77,13 @@ function PrismShellComponent_Conditional_5_Conditional_3_Template(rf, ctx) { if
|
|
|
69
77
|
i0.ɵɵproperty("min", 200)("max", 560)("value", ctx_r1.layout.panelHeight());
|
|
70
78
|
} }
|
|
71
79
|
function PrismShellComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
72
|
-
i0.ɵɵconditionalCreate(0, PrismShellComponent_Conditional_5_Conditional_0_Template, 1,
|
|
73
|
-
i0.ɵɵconditionalCreate(
|
|
74
|
-
i0.ɵɵconditionalCreate(3, PrismShellComponent_Conditional_5_Conditional_3_Template, 3, 3);
|
|
80
|
+
i0.ɵɵconditionalCreate(0, PrismShellComponent_Conditional_5_Conditional_0_Template, 7, 2)(1, PrismShellComponent_Conditional_5_Conditional_1_Template, 3, 0);
|
|
81
|
+
i0.ɵɵconditionalCreate(2, PrismShellComponent_Conditional_5_Conditional_2_Template, 3, 3);
|
|
75
82
|
} if (rf & 2) {
|
|
76
83
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
77
|
-
i0.ɵɵconditional(ctx_r1.
|
|
78
|
-
i0.ɵɵadvance();
|
|
79
|
-
i0.ɵɵconditional(ctx_r1.panelService.activeViewId() === "renderer" ? 1 : 2);
|
|
84
|
+
i0.ɵɵconditional(ctx_r1.panelService.activeViewId() === "renderer" ? 0 : 1);
|
|
80
85
|
i0.ɵɵadvance(2);
|
|
81
|
-
i0.ɵɵconditional(ctx_r1.showPanel() ?
|
|
86
|
+
i0.ɵɵconditional(ctx_r1.showPanel() ? 2 : -1);
|
|
82
87
|
} }
|
|
83
88
|
function PrismShellComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
84
89
|
i0.ɵɵelement(0, "prism-page-renderer", 4);
|
|
@@ -103,14 +108,9 @@ export class PrismShellComponent {
|
|
|
103
108
|
themeService = inject(PrismThemeService);
|
|
104
109
|
layout = inject(PrismLayoutService);
|
|
105
110
|
panelService = inject(PrismPanelService);
|
|
106
|
-
pluginService = inject(PrismPluginService);
|
|
107
111
|
urlStateService = inject(PrismUrlStateService);
|
|
108
112
|
persistenceService = inject(PrismPersistenceService);
|
|
109
|
-
viewPanels =
|
|
110
|
-
...BUILTIN_PANELS.filter((p) => p.placement === 'view'),
|
|
111
|
-
...this.pluginService.viewPanels(),
|
|
112
|
-
], /* @ts-ignore */
|
|
113
|
-
...(ngDevMode ? [{ debugName: "viewPanels" }] : /* istanbul ignore next */ []));
|
|
113
|
+
viewPanels = this.panelService.visibleViewPanels;
|
|
114
114
|
showPanel = computed(() => this.layout.addonsVisible() &&
|
|
115
115
|
this.panelService.activeViewId() === 'renderer' &&
|
|
116
116
|
!this.navigationService.activePage(), /* @ts-ignore */
|
|
@@ -125,18 +125,18 @@ export class PrismShellComponent {
|
|
|
125
125
|
this.navigationService.selectFirst();
|
|
126
126
|
this.urlStateService.init();
|
|
127
127
|
this.persistenceService.init();
|
|
128
|
-
|
|
128
|
+
// A view survives a component switch as long as the new component still
|
|
129
|
+
// offers it — browsing a library variant-sheet by variant-sheet was
|
|
130
|
+
// impossible while every navigation dropped back to the Playground. The
|
|
131
|
+
// old rule watched for the *event* of switching and needed a key to
|
|
132
|
+
// remember; this one states the invariant and needs nothing. The rule
|
|
133
|
+
// itself lives in `nextViewId`, a pure function with its own tests — this
|
|
134
|
+
// effect only reads the two signals it needs and applies the result.
|
|
129
135
|
effect(() => {
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
? item.data.meta.className
|
|
134
|
-
: item.data.title
|
|
135
|
-
: null;
|
|
136
|
-
if (lastItemKey !== null && lastItemKey !== key) {
|
|
137
|
-
untracked(() => this.panelService.activeViewId.set('renderer'));
|
|
136
|
+
const next = nextViewId(this.panelService.activeViewId(), this.panelService.visibleViewPanels());
|
|
137
|
+
if (next !== null) {
|
|
138
|
+
untracked(() => this.panelService.activeViewId.set(next));
|
|
138
139
|
}
|
|
139
|
-
lastItemKey = key;
|
|
140
140
|
});
|
|
141
141
|
effect(() => {
|
|
142
142
|
const item = this.navigationService.activeItem();
|
|
@@ -155,6 +155,9 @@ export class PrismShellComponent {
|
|
|
155
155
|
e.preventDefault();
|
|
156
156
|
this.layout.toggleSidebar();
|
|
157
157
|
break;
|
|
158
|
+
// Alt+T toggles the variant rail only. It used to hide the component
|
|
159
|
+
// head as well, but the head now carries the Playground/API switcher and
|
|
160
|
+
// hiding it would take primary navigation with it.
|
|
158
161
|
case 'KeyT':
|
|
159
162
|
e.preventDefault();
|
|
160
163
|
this.layout.toggleToolbar();
|
|
@@ -168,13 +171,13 @@ export class PrismShellComponent {
|
|
|
168
171
|
static ɵfac = function PrismShellComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismShellComponent)(); };
|
|
169
172
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismShellComponent, selectors: [["prism-shell"]], hostBindings: function PrismShellComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
170
173
|
i0.ɵɵlistener("keydown", function PrismShellComponent_keydown_HostBindingHandler($event) { return ctx.onKeyDown($event); }, i0.ɵɵresolveDocument);
|
|
171
|
-
} }, decls: 8, vars: 8, consts: [[1, "prism-shell"], [1, "prism-shell__header"], [1, "prism-body"], [1, "prism-main"], [1, "prism-main__canvas"], [1, "prism-shell__empty"], [1, "prism-sidebar-wrap"], [1, "prism-sidebar-foot"], ["alt", "ng-prism logo", "src", "data:image/png;base64,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", 1, "prism-sidebar-foot__logo"], ["href", "https://dyingangel666.github.io/ng-prism/#/", "target", "_blank", "rel", "noopener", 1, "prism-sidebar-foot__link"], ["prismResizer", "", "axis", "x", 1, "prism-resizer-col", 3, "valueChange", "min", "max", "value"], [
|
|
174
|
+
} }, decls: 8, vars: 8, consts: [[1, "prism-shell"], [1, "prism-shell__header"], [1, "prism-body"], [1, "prism-main"], [1, "prism-main__canvas"], [1, "prism-shell__empty"], [1, "prism-sidebar-wrap"], [1, "prism-sidebar-foot"], ["alt", "ng-prism logo", "src", "data:image/png;base64,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", 1, "prism-sidebar-foot__logo"], ["href", "https://dyingangel666.github.io/ng-prism/#/", "target", "_blank", "rel", "noopener", 1, "prism-sidebar-foot__link"], ["prismResizer", "", "axis", "x", 1, "prism-resizer-col", 3, "valueChange", "min", "max", "value"], ["headEnd", ""], [1, "prism-canvas-wrap"], ["prismResizer", "", "axis", "y", 1, "prism-resizer-row", 3, "valueChange", "min", "max", "value"], [1, "prism-main__panel"], ["viewBox", "0 0 24 24", "fill", "none", "stroke", "currentColor", "stroke-width", "1.5", "stroke-linecap", "round", "stroke-linejoin", "round", 1, "prism-shell__empty-icon"], ["d", "M12 2L4 14h16L12 2z"], ["d", "M4 14l4 8h8l4-8"], [1, "prism-shell__empty-text"], [1, "prism-shell__empty-hint"]], template: function PrismShellComponent_Template(rf, ctx) { if (rf & 1) {
|
|
172
175
|
i0.ɵɵelementStart(0, "div", 0);
|
|
173
176
|
i0.ɵɵelement(1, "prism-header", 1);
|
|
174
177
|
i0.ɵɵelementStart(2, "div", 2);
|
|
175
178
|
i0.ɵɵconditionalCreate(3, PrismShellComponent_Conditional_3_Template, 7, 3);
|
|
176
179
|
i0.ɵɵelementStart(4, "main", 3);
|
|
177
|
-
i0.ɵɵconditionalCreate(5, PrismShellComponent_Conditional_5_Template,
|
|
180
|
+
i0.ɵɵconditionalCreate(5, PrismShellComponent_Conditional_5_Template, 3, 2)(6, PrismShellComponent_Conditional_6_Template, 1, 0, "prism-page-renderer", 4)(7, PrismShellComponent_Conditional_7_Template, 8, 0, "div", 5);
|
|
178
181
|
i0.ɵɵelementEnd()()();
|
|
179
182
|
} if (rf & 2) {
|
|
180
183
|
i0.ɵɵstyleMap(ctx.shellStyle());
|
|
@@ -183,7 +186,7 @@ export class PrismShellComponent {
|
|
|
183
186
|
i0.ɵɵadvance();
|
|
184
187
|
i0.ɵɵconditional(ctx.layout.sidebarVisible() ? 3 : -1);
|
|
185
188
|
i0.ɵɵadvance();
|
|
186
|
-
i0.ɵɵstyleProp("
|
|
189
|
+
i0.ɵɵstyleProp("--%NS%ph", ctx.showPanel() ? ctx.layout.panelHeight() : 0, "px");
|
|
187
190
|
i0.ɵɵadvance();
|
|
188
191
|
i0.ɵɵconditional(ctx.navigationService.activeComponent() ? 5 : ctx.navigationService.activePage() ? 6 : 7);
|
|
189
192
|
} }, dependencies: [PrismHeaderComponent,
|
|
@@ -197,7 +200,7 @@ export class PrismShellComponent {
|
|
|
197
200
|
PrismViewPanelHostComponent,
|
|
198
201
|
PrismResizerDirective,
|
|
199
202
|
PrismCanvasToolbarComponent,
|
|
200
|
-
PrismTemplatePopoverComponent], styles: ["[_nghost-%COMP%] { display: block; height: 100%; }\n\n .prism-shell[_ngcontent-%COMP%] {\n height: 100vh;\n display: grid;\n grid-template-rows:
|
|
203
|
+
PrismTemplatePopoverComponent], styles: ["[_nghost-%COMP%] { display: block; height: 100%; }\n\n .prism-shell[_ngcontent-%COMP%] {\n height: 100vh;\n display: grid;\n grid-template-rows: var(--%NS%band-header) 1fr;\n background: var(--%NS%prism-void);\n font-family: var(--%NS%font-sans, var(--%NS%prism-font-sans));\n color: var(--%NS%prism-text);\n overflow: hidden;\n }\n\n .prism-body[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: var(--%NS%sw, 264px) 4px 1fr;\n min-height: 0;\n }\n .prism-body--no-sidebar[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .prism-sidebar-wrap[_ngcontent-%COMP%] {\n background: var(--%NS%prism-bg);\n border-right: 1px solid var(--%NS%prism-border);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n }\n\n .prism-sidebar-wrap[_ngcontent-%COMP%] prism-sidebar[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n }\n\n .prism-sidebar-foot[_ngcontent-%COMP%] {\n border-top: 1px solid var(--%NS%prism-border);\n padding: 10px 14px;\n font-size: 11px;\n color: var(--%NS%prism-text-ghost);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .prism-sidebar-foot__logo[_ngcontent-%COMP%] {\n width: 16px;\n flex-shrink: 0;\n }\n .prism-sidebar-foot__link[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-ghost);\n text-decoration: none;\n transition: color var(--%NS%dur-fast);\n }\n .prism-sidebar-foot__link[_ngcontent-%COMP%]:hover {\n color: var(--%NS%prism-text-2);\n }\n\n .prism-resizer-col[_ngcontent-%COMP%] {\n width: 4px;\n background: transparent;\n transition: background var(--%NS%dur-fast) var(--%NS%ease-default);\n position: relative;\n z-index: 5;\n }\n .prism-resizer-col[_ngcontent-%COMP%]:hover, \n .prism-resizer-col.active[_ngcontent-%COMP%] {\n background: var(--%NS%prism-primary);\n }\n\n .prism-main[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n min-height: 0;\n background: var(--%NS%prism-void);\n overflow: hidden;\n }\n\n .prism-resizer-row[_ngcontent-%COMP%] {\n flex-shrink: 0;\n height: 4px;\n background: transparent;\n transition: background var(--%NS%dur-fast) var(--%NS%ease-default);\n position: relative;\n z-index: 5;\n }\n .prism-resizer-row[_ngcontent-%COMP%]:hover, \n .prism-resizer-row.active[_ngcontent-%COMP%] {\n background: var(--%NS%prism-primary);\n }\n\n \n\n\n .prism-canvas-wrap[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: grid;\n grid-template-rows: minmax(0, 1fr);\n background: var(--%NS%prism-bg-surface);\n overflow: hidden;\n position: relative;\n }\n .prism-main__canvas[_ngcontent-%COMP%] { flex: 1; min-height: 0; overflow: auto; }\n\n .prism-main__panel[_ngcontent-%COMP%] {\n height: var(--%NS%ph, 260px);\n flex-shrink: 0;\n overflow: hidden;\n min-height: 0;\n }\n\n .prism-shell__empty[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n grid-row: 1 / -1;\n }\n .prism-shell__empty-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n color: var(--%NS%prism-text-ghost);\n margin-bottom: 8px;\n }\n .prism-shell__empty-text[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--%NS%fs-xl);\n font-weight: 500;\n color: var(--%NS%prism-text-muted);\n }\n .prism-shell__empty-hint[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--%NS%fs-lg);\n color: var(--%NS%prism-text-ghost);\n }"] });
|
|
201
204
|
}
|
|
202
205
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismShellComponent, [{
|
|
203
206
|
type: Component,
|
|
@@ -256,12 +259,14 @@ export class PrismShellComponent {
|
|
|
256
259
|
class="prism-main"
|
|
257
260
|
[style.--ph.px]="showPanel() ? layout.panelHeight() : 0"
|
|
258
261
|
>
|
|
259
|
-
@if (navigationService.activeComponent()) { @if
|
|
260
|
-
|
|
261
|
-
<prism-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
262
|
+
@if (navigationService.activeComponent()) { @if
|
|
263
|
+
(panelService.activeViewId() === 'renderer') {
|
|
264
|
+
<prism-component-head>
|
|
265
|
+
@if (viewPanels().length > 0) {
|
|
266
|
+
<prism-view-tab-bar headEnd />
|
|
267
|
+
}
|
|
268
|
+
</prism-component-head>
|
|
269
|
+
@if (layout.toolbarVisible()) {
|
|
265
270
|
<prism-variant-ribbon />
|
|
266
271
|
}
|
|
267
272
|
<div class="prism-canvas-wrap">
|
|
@@ -270,6 +275,9 @@ export class PrismShellComponent {
|
|
|
270
275
|
<prism-template-popover />
|
|
271
276
|
</div>
|
|
272
277
|
} @else {
|
|
278
|
+
<prism-component-head>
|
|
279
|
+
<prism-view-tab-bar headEnd />
|
|
280
|
+
</prism-component-head>
|
|
273
281
|
<prism-view-panel-host class="prism-main__canvas" />
|
|
274
282
|
} @if (showPanel()) {
|
|
275
283
|
<div
|
|
@@ -309,9 +317,9 @@ export class PrismShellComponent {
|
|
|
309
317
|
</main>
|
|
310
318
|
</div>
|
|
311
319
|
</div>
|
|
312
|
-
`, styles: ["\n :host { display: block; height: 100%; }\n\n .prism-shell {\n height: 100vh;\n display: grid;\n grid-template-rows:
|
|
320
|
+
`, styles: ["\n :host { display: block; height: 100%; }\n\n .prism-shell {\n height: 100vh;\n display: grid;\n grid-template-rows: var(--band-header) 1fr;\n background: var(--prism-void);\n font-family: var(--font-sans, var(--prism-font-sans));\n color: var(--prism-text);\n overflow: hidden;\n }\n\n .prism-body {\n display: grid;\n grid-template-columns: var(--sw, 264px) 4px 1fr;\n min-height: 0;\n }\n .prism-body--no-sidebar {\n grid-template-columns: 1fr;\n }\n\n .prism-sidebar-wrap {\n background: var(--prism-bg);\n border-right: 1px solid var(--prism-border);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n }\n\n .prism-sidebar-wrap prism-sidebar {\n flex: 1;\n min-height: 0;\n }\n\n .prism-sidebar-foot {\n border-top: 1px solid var(--prism-border);\n padding: 10px 14px;\n font-size: 11px;\n color: var(--prism-text-ghost);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .prism-sidebar-foot__logo {\n width: 16px;\n flex-shrink: 0;\n }\n .prism-sidebar-foot__link {\n color: var(--prism-text-ghost);\n text-decoration: none;\n transition: color var(--dur-fast);\n }\n .prism-sidebar-foot__link:hover {\n color: var(--prism-text-2);\n }\n\n .prism-resizer-col {\n width: 4px;\n background: transparent;\n transition: background var(--dur-fast) var(--ease-default);\n position: relative;\n z-index: 5;\n }\n .prism-resizer-col:hover,\n .prism-resizer-col.active {\n background: var(--prism-primary);\n }\n\n .prism-main {\n display: flex;\n flex-direction: column;\n min-height: 0;\n background: var(--prism-void);\n overflow: hidden;\n }\n\n .prism-resizer-row {\n flex-shrink: 0;\n height: 4px;\n background: transparent;\n transition: background var(--dur-fast) var(--ease-default);\n position: relative;\n z-index: 5;\n }\n .prism-resizer-row:hover,\n .prism-resizer-row.active {\n background: var(--prism-primary);\n }\n\n /* One row, not two: the canvas tools no longer occupy a band above the\n stage, they float over it from a rail absolutely positioned against\n this element. The position: relative below is what anchors it. */\n .prism-canvas-wrap {\n flex: 1;\n min-height: 0;\n display: grid;\n grid-template-rows: minmax(0, 1fr);\n background: var(--prism-bg-surface);\n overflow: hidden;\n position: relative;\n }\n .prism-main__canvas { flex: 1; min-height: 0; overflow: auto; }\n\n .prism-main__panel {\n height: var(--ph, 260px);\n flex-shrink: 0;\n overflow: hidden;\n min-height: 0;\n }\n\n .prism-shell__empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n grid-row: 1 / -1;\n }\n .prism-shell__empty-icon {\n width: 48px;\n height: 48px;\n color: var(--prism-text-ghost);\n margin-bottom: 8px;\n }\n .prism-shell__empty-text {\n margin: 0;\n font-size: var(--fs-xl);\n font-weight: 500;\n color: var(--prism-text-muted);\n }\n .prism-shell__empty-hint {\n margin: 0;\n font-size: var(--fs-lg);\n color: var(--prism-text-ghost);\n }\n "] }]
|
|
313
321
|
}], () => [], { onKeyDown: [{
|
|
314
322
|
type: HostListener,
|
|
315
323
|
args: ['document:keydown', ['$event']]
|
|
316
324
|
}] }); })();
|
|
317
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismShellComponent, { className: "PrismShellComponent", filePath: "app/shell/prism-shell.component.ts", lineNumber:
|
|
325
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismShellComponent, { className: "PrismShellComponent", filePath: "app/shell/prism-shell.component.ts", lineNumber: 290 }); })();
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { ComponentStatus } from '../../decorator/showcase.types.js';
|
|
2
|
+
import type { NavigationDecorationDefinition } from '../../plugin/plugin.types.js';
|
|
3
|
+
import type { NavigationItem } from '../services/navigation-item.types.js';
|
|
4
|
+
/** One source's verdict on one component, resolved for rendering. */
|
|
5
|
+
export interface ItemMark {
|
|
6
|
+
/**
|
|
7
|
+
* The definition's id. `resolveNavigationDecorations` guarantees these are
|
|
8
|
+
* unique, so this is the only field safe to `@for track` by — `icon` is a
|
|
9
|
+
* free-form string on a public extension point and two sources can pick the
|
|
10
|
+
* same one.
|
|
11
|
+
*/
|
|
12
|
+
id: string;
|
|
13
|
+
icon: string;
|
|
14
|
+
variant: 'warn' | 'danger';
|
|
15
|
+
label: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ItemDecorations {
|
|
18
|
+
/** Ordered marks — never empty; `decorateItem` returns null instead. */
|
|
19
|
+
marks: ItemMark[];
|
|
20
|
+
/** Worst variant across `marks`. Drives the group roll-up. */
|
|
21
|
+
worst: 'warn' | 'danger';
|
|
22
|
+
/** Newline-joined labels for the item's `title` attribute. */
|
|
23
|
+
tooltip: string;
|
|
24
|
+
}
|
|
25
|
+
export interface CategoryRollup {
|
|
26
|
+
/** Number of items in the category carrying at least one mark. */
|
|
27
|
+
problems: number;
|
|
28
|
+
/** Worst variant among them, or null for a clean category. */
|
|
29
|
+
variant: 'warn' | 'danger' | null;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Built-ins first, then plugin contributions, de-duplicated by id and sorted
|
|
33
|
+
* by `order`.
|
|
34
|
+
*
|
|
35
|
+
* Built-ins win a collision: a plugin must not be able to silence or restyle a
|
|
36
|
+
* core source by claiming its id. Sorting is by `order` alone — the reading
|
|
37
|
+
* contract says position names the source, so registration order must not leak
|
|
38
|
+
* into the result.
|
|
39
|
+
*/
|
|
40
|
+
export declare function resolveNavigationDecorations(builtin: readonly NavigationDecorationDefinition[], fromPlugins: readonly NavigationDecorationDefinition[]): NavigationDecorationDefinition[];
|
|
41
|
+
/**
|
|
42
|
+
* Runs every definition against one item.
|
|
43
|
+
*
|
|
44
|
+
* Returns `null` rather than an empty result for a clean component, so callers
|
|
45
|
+
* cannot accidentally render an empty marker container.
|
|
46
|
+
*/
|
|
47
|
+
export declare function decorateItem(item: NavigationItem, defs: readonly NavigationDecorationDefinition[]): ItemDecorations | null;
|
|
48
|
+
/**
|
|
49
|
+
* Counts the items in one category that carry at least one mark.
|
|
50
|
+
*
|
|
51
|
+
* Items, not marks: a component with three findings is one thing to look at,
|
|
52
|
+
* and a group head reading "3" for a single broken component would overstate
|
|
53
|
+
* the work.
|
|
54
|
+
*
|
|
55
|
+
* Takes each item's already-resolved `ItemDecorations` rather than the raw
|
|
56
|
+
* items — callers already run `decorateItem` once per item to render its
|
|
57
|
+
* marks, and recomputing it here would both waste the work and let the
|
|
58
|
+
* roll-up drift from what actually renders.
|
|
59
|
+
*/
|
|
60
|
+
export declare function rollupCategory(decorations: readonly (ItemDecorations | null)[]): CategoryRollup;
|
|
61
|
+
/**
|
|
62
|
+
* The lifecycle glyph for the sidebar's left slot.
|
|
63
|
+
*
|
|
64
|
+
* Shape only, never colour: a work-in-progress component must never read as a
|
|
65
|
+
* finding. At 11px the previous pair (cube vs dashed square) was effectively
|
|
66
|
+
* one glyph, so `wip` now uses a shape that differs in silhouette rather than
|
|
67
|
+
* in stroke style.
|
|
68
|
+
*/
|
|
69
|
+
export declare function lifecycleIcon(status: ComponentStatus | undefined): string;
|
|
70
|
+
//# sourceMappingURL=navigation-decorations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation-decorations.d.ts","sourceRoot":"","sources":["../../../src/app/sidebar/navigation-decorations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAE3E,qEAAqE;AACrE,MAAM,WAAW,QAAQ;IACvB;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC;IACzB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;CACnC;AAID;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,SAAS,8BAA8B,EAAE,EAClD,WAAW,EAAE,SAAS,8BAA8B,EAAE,GACrD,8BAA8B,EAAE,CAWlC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,SAAS,8BAA8B,EAAE,GAC9C,eAAe,GAAG,IAAI,CAuBxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,GAC/C,cAAc,CAahB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,GAAG,MAAM,CAEzE"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
const SEVERITY = { warn: 1, danger: 2 };
|
|
2
|
+
/**
|
|
3
|
+
* Built-ins first, then plugin contributions, de-duplicated by id and sorted
|
|
4
|
+
* by `order`.
|
|
5
|
+
*
|
|
6
|
+
* Built-ins win a collision: a plugin must not be able to silence or restyle a
|
|
7
|
+
* core source by claiming its id. Sorting is by `order` alone — the reading
|
|
8
|
+
* contract says position names the source, so registration order must not leak
|
|
9
|
+
* into the result.
|
|
10
|
+
*/
|
|
11
|
+
export function resolveNavigationDecorations(builtin, fromPlugins) {
|
|
12
|
+
const seen = new Set();
|
|
13
|
+
const result = [];
|
|
14
|
+
for (const def of [...builtin, ...fromPlugins]) {
|
|
15
|
+
if (seen.has(def.id))
|
|
16
|
+
continue;
|
|
17
|
+
seen.add(def.id);
|
|
18
|
+
result.push(def);
|
|
19
|
+
}
|
|
20
|
+
return result.sort((a, b) => (a.order ?? 0) - (b.order ?? 0));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Runs every definition against one item.
|
|
24
|
+
*
|
|
25
|
+
* Returns `null` rather than an empty result for a clean component, so callers
|
|
26
|
+
* cannot accidentally render an empty marker container.
|
|
27
|
+
*/
|
|
28
|
+
export function decorateItem(item, defs) {
|
|
29
|
+
if (item.kind !== 'component')
|
|
30
|
+
return null;
|
|
31
|
+
const marks = [];
|
|
32
|
+
for (const def of defs) {
|
|
33
|
+
const badge = def.badge(item.data);
|
|
34
|
+
if (!badge)
|
|
35
|
+
continue;
|
|
36
|
+
marks.push({
|
|
37
|
+
id: def.id,
|
|
38
|
+
icon: def.icon,
|
|
39
|
+
variant: badge.variant,
|
|
40
|
+
label: badge.label,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
if (marks.length === 0)
|
|
44
|
+
return null;
|
|
45
|
+
let worst = 'warn';
|
|
46
|
+
for (const mark of marks) {
|
|
47
|
+
if (SEVERITY[mark.variant] > SEVERITY[worst])
|
|
48
|
+
worst = mark.variant;
|
|
49
|
+
}
|
|
50
|
+
return { marks, worst, tooltip: marks.map((m) => m.label).join('\n') };
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Counts the items in one category that carry at least one mark.
|
|
54
|
+
*
|
|
55
|
+
* Items, not marks: a component with three findings is one thing to look at,
|
|
56
|
+
* and a group head reading "3" for a single broken component would overstate
|
|
57
|
+
* the work.
|
|
58
|
+
*
|
|
59
|
+
* Takes each item's already-resolved `ItemDecorations` rather than the raw
|
|
60
|
+
* items — callers already run `decorateItem` once per item to render its
|
|
61
|
+
* marks, and recomputing it here would both waste the work and let the
|
|
62
|
+
* roll-up drift from what actually renders.
|
|
63
|
+
*/
|
|
64
|
+
export function rollupCategory(decorations) {
|
|
65
|
+
let problems = 0;
|
|
66
|
+
let variant = null;
|
|
67
|
+
for (const decoration of decorations) {
|
|
68
|
+
if (!decoration)
|
|
69
|
+
continue;
|
|
70
|
+
problems++;
|
|
71
|
+
if (!variant || SEVERITY[decoration.worst] > SEVERITY[variant]) {
|
|
72
|
+
variant = decoration.worst;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return { problems, variant };
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* The lifecycle glyph for the sidebar's left slot.
|
|
79
|
+
*
|
|
80
|
+
* Shape only, never colour: a work-in-progress component must never read as a
|
|
81
|
+
* finding. At 11px the previous pair (cube vs dashed square) was effectively
|
|
82
|
+
* one glyph, so `wip` now uses a shape that differs in silhouette rather than
|
|
83
|
+
* in stroke style.
|
|
84
|
+
*/
|
|
85
|
+
export function lifecycleIcon(status) {
|
|
86
|
+
return status === 'wip' ? 'circle-dashed' : 'box';
|
|
87
|
+
}
|
|
@@ -2,16 +2,28 @@ import type { NavigationItem } from '../services/navigation-item.types.js';
|
|
|
2
2
|
import { PrismNavigationService } from '../services/prism-navigation.service.js';
|
|
3
3
|
import { PrismSearchService } from '../services/prism-search.service.js';
|
|
4
4
|
import type { ComponentStatus } from '../../decorator/showcase.types.js';
|
|
5
|
+
import { type CategoryRollup, type ItemDecorations } from './navigation-decorations.js';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
interface SidebarCategory {
|
|
7
8
|
name: string;
|
|
8
|
-
color: string;
|
|
9
9
|
items: NavigationItem[];
|
|
10
10
|
}
|
|
11
|
+
interface SidebarItem {
|
|
12
|
+
item: NavigationItem;
|
|
13
|
+
icon: string;
|
|
14
|
+
decorations: ItemDecorations | null;
|
|
15
|
+
}
|
|
16
|
+
interface ComponentCategory {
|
|
17
|
+
name: string;
|
|
18
|
+
items: SidebarItem[];
|
|
19
|
+
rollup: CategoryRollup;
|
|
20
|
+
}
|
|
11
21
|
export declare class PrismSidebarComponent {
|
|
12
22
|
protected readonly navigationService: PrismNavigationService;
|
|
13
23
|
protected readonly searchService: PrismSearchService;
|
|
24
|
+
private readonly pluginService;
|
|
14
25
|
private readonly filterInput;
|
|
26
|
+
private readonly decorations;
|
|
15
27
|
protected onGlobalKey(e: KeyboardEvent): void;
|
|
16
28
|
private readonly collapsedSet;
|
|
17
29
|
protected readonly totalPages: import("@angular/core").Signal<number>;
|
|
@@ -19,20 +31,29 @@ export declare class PrismSidebarComponent {
|
|
|
19
31
|
protected readonly componentSections: import("@angular/core").Signal<{
|
|
20
32
|
name: string;
|
|
21
33
|
icon: string;
|
|
22
|
-
color: string;
|
|
23
34
|
totalCount: number;
|
|
24
|
-
categories:
|
|
25
|
-
name: string;
|
|
26
|
-
color: string;
|
|
27
|
-
items: NavigationItem[];
|
|
28
|
-
}[];
|
|
35
|
+
categories: ComponentCategory[];
|
|
29
36
|
}[]>;
|
|
30
37
|
protected isCollapsed(key: string): boolean;
|
|
31
38
|
protected toggleCollapse(key: string): void;
|
|
32
39
|
protected itemKey(item: NavigationItem): string;
|
|
33
40
|
protected itemLabel(item: NavigationItem): string;
|
|
34
41
|
protected itemStatus(item: NavigationItem): ComponentStatus | undefined;
|
|
35
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Accessible name for the roll-up pill, for the deviating case only. The
|
|
44
|
+
* pill otherwise renders a bare number distinguished only by colour — a
|
|
45
|
+
* screen reader would read the group head as "Feedback 3 12" with nothing
|
|
46
|
+
* naming what either number means, and a colour-blind reader can't tell
|
|
47
|
+
* them apart at all.
|
|
48
|
+
*
|
|
49
|
+
* There is deliberately no zero branch: a clean category renders its plain
|
|
50
|
+
* item count and the template leaves both attributes off, because
|
|
51
|
+
* `aria-label` on a descendant feeds the group button's name-from-content
|
|
52
|
+
* and "Buttons 0 components need review" is a claim about a group that has
|
|
53
|
+
* nothing to review.
|
|
54
|
+
*/
|
|
55
|
+
protected rollupTooltip(rollup: CategoryRollup): string;
|
|
56
|
+
protected itemTooltip(item: NavigationItem, decorations: ItemDecorations | null): string | null;
|
|
36
57
|
protected isActive(item: NavigationItem): boolean;
|
|
37
58
|
protected onSelect(item: NavigationItem): void;
|
|
38
59
|
private loadCollapsed;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-sidebar.component.d.ts","sourceRoot":"","sources":["../../../src/app/sidebar/prism-sidebar.component.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prism-sidebar.component.d.ts","sourceRoot":"","sources":["../../../src/app/sidebar/prism-sidebar.component.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,6BAA6B,CAAC;;AAcrC,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;CACrC;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,qBAkVa,qBAAqB;IAChC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,yBAAkC;IACtE,SAAS,CAAC,QAAQ,CAAC,aAAa,qBAA8B;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAC6B;IAEzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAK1B;IAGF,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;IAa7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6C;IAE1E,SAAS,CAAC,QAAQ,CAAC,UAAU,yCAE1B;IAEH,SAAS,CAAC,QAAQ,CAAC,cAAc,oDAa9B;IAEH,SAAS,CAAC,QAAQ,CAAC,iBAAiB;;;;;SAmBjC;IAEH,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI3C,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAU3C,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAM/C,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAMjD,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,eAAe,GAAG,SAAS;IAMvE;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IAKvD,SAAS,CAAC,WAAW,CACnB,IAAI,EAAE,cAAc,EACpB,WAAW,EAAE,eAAe,GAAG,IAAI,GAClC,MAAM,GAAG,IAAI;IAShB,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO;IAWjD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAQ9C,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,aAAa;yCAhKV,qBAAqB;2CAArB,qBAAqB;CAqKjC"}
|