@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
|
@@ -7,6 +7,8 @@ import { PrismNavigationService } from '../../services/prism-navigation.service.
|
|
|
7
7
|
import { PrismPanelService } from '../../services/prism-panel.service.js';
|
|
8
8
|
import { PrismPluginService } from '../../services/prism-plugin.service.js';
|
|
9
9
|
import { PrismRendererService } from '../../services/prism-renderer.service.js';
|
|
10
|
+
import { resolveA11yThresholds } from '../a11y/a11y-thresholds.js';
|
|
11
|
+
import { PRISM_CONFIG, PRISM_MANIFEST } from '../../tokens/prism-tokens.js';
|
|
10
12
|
import { resolvePanelBadge } from './panel-badge.js';
|
|
11
13
|
import * as i0 from "@angular/core";
|
|
12
14
|
const _forTrack0 = ($index, $item) => $item.id;
|
|
@@ -16,23 +18,28 @@ function PrismPanelHostComponent_For_3_Conditional_1_Template(rf, ctx) { if (rf
|
|
|
16
18
|
const panel_r2 = i0.ɵɵnextContext().$implicit;
|
|
17
19
|
i0.ɵɵproperty("name", panel_r2.icon)("size", 13);
|
|
18
20
|
} }
|
|
19
|
-
function
|
|
21
|
+
function PrismPanelHostComponent_For_3_Conditional_3_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
20
22
|
i0.ɵɵelementStart(0, "span", 8);
|
|
21
23
|
i0.ɵɵtext(1);
|
|
22
24
|
i0.ɵɵelementEnd();
|
|
23
25
|
} if (rf & 2) {
|
|
24
|
-
const badge_r4 =
|
|
25
|
-
i0.ɵɵclassProp("
|
|
26
|
+
const badge_r4 = i0.ɵɵnextContext();
|
|
27
|
+
i0.ɵɵclassProp("warn", badge_r4.variant === "warn")("danger", badge_r4.variant === "danger");
|
|
26
28
|
i0.ɵɵadvance();
|
|
27
29
|
i0.ɵɵtextInterpolate(badge_r4.text);
|
|
28
30
|
} }
|
|
31
|
+
function PrismPanelHostComponent_For_3_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
32
|
+
i0.ɵɵconditionalCreate(0, PrismPanelHostComponent_For_3_Conditional_3_Conditional_0_Template, 2, 5, "span", 7);
|
|
33
|
+
} if (rf & 2) {
|
|
34
|
+
i0.ɵɵconditional(ctx.variant !== "ok" ? 0 : -1);
|
|
35
|
+
} }
|
|
29
36
|
function PrismPanelHostComponent_For_3_Template(rf, ctx) { if (rf & 1) {
|
|
30
37
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
31
38
|
i0.ɵɵelementStart(0, "button", 5);
|
|
32
39
|
i0.ɵɵlistener("click", function PrismPanelHostComponent_For_3_Template_button_click_0_listener() { const panel_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.panelService.activePanelId.set(panel_r2.id)); });
|
|
33
40
|
i0.ɵɵconditionalCreate(1, PrismPanelHostComponent_For_3_Conditional_1_Template, 1, 2, "prism-icon", 6);
|
|
34
41
|
i0.ɵɵtext(2);
|
|
35
|
-
i0.ɵɵconditionalCreate(3, PrismPanelHostComponent_For_3_Conditional_3_Template,
|
|
42
|
+
i0.ɵɵconditionalCreate(3, PrismPanelHostComponent_For_3_Conditional_3_Template, 1, 1);
|
|
36
43
|
i0.ɵɵelementEnd();
|
|
37
44
|
} if (rf & 2) {
|
|
38
45
|
let tmp_15_0;
|
|
@@ -68,16 +75,21 @@ export class PrismPanelHostComponent {
|
|
|
68
75
|
envInjector = inject(EnvironmentInjector);
|
|
69
76
|
auditService = inject(A11yAuditService);
|
|
70
77
|
rendererService = inject(PrismRendererService);
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
78
|
+
manifest = inject(PRISM_MANIFEST);
|
|
79
|
+
config = inject(PRISM_CONFIG);
|
|
80
|
+
/**
|
|
81
|
+
* The configured thresholds, resolved the way the a11y header badge resolves
|
|
82
|
+
* them: the build step's numbers as the base, the app config on top. Both
|
|
83
|
+
* are static for the session, so this is computed once rather than per tab.
|
|
84
|
+
*/
|
|
85
|
+
a11yThresholds = computed(() => {
|
|
86
|
+
const meta = this.manifest.meta?.['a11y'];
|
|
87
|
+
return resolveA11yThresholds({
|
|
88
|
+
...meta?.thresholds,
|
|
89
|
+
...this.config.a11y?.thresholds,
|
|
90
|
+
});
|
|
79
91
|
}, /* @ts-ignore */
|
|
80
|
-
...(ngDevMode ? [{ debugName: "
|
|
92
|
+
...(ngDevMode ? [{ debugName: "a11yThresholds" }] : /* istanbul ignore next */ []));
|
|
81
93
|
inputCount = computed(() => {
|
|
82
94
|
const comp = this.nav.activeComponent();
|
|
83
95
|
return comp?.meta.inputs.length ?? 0;
|
|
@@ -86,8 +98,8 @@ export class PrismPanelHostComponent {
|
|
|
86
98
|
panelBadge(panel) {
|
|
87
99
|
return resolvePanelBadge(panel, this.nav.activeComponent(), {
|
|
88
100
|
inputCount: this.inputCount(),
|
|
89
|
-
|
|
90
|
-
|
|
101
|
+
a11yResult: this.auditService.scoreResult(),
|
|
102
|
+
a11yThresholds: this.a11yThresholds(),
|
|
91
103
|
});
|
|
92
104
|
}
|
|
93
105
|
builtInPanels = BUILTIN_PANELS;
|
|
@@ -190,7 +202,7 @@ export class PrismPanelHostComponent {
|
|
|
190
202
|
this.renderedPanels.set(next);
|
|
191
203
|
}
|
|
192
204
|
static ɵfac = function PrismPanelHostComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismPanelHostComponent)(); };
|
|
193
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismPanelHostComponent, selectors: [["prism-panel-host"]], decls: 7, vars: 1, consts: [[1, "panel"], ["role", "tablist", 1, "panel-tabs"], ["role", "tab", 1, "p-tab", 3, "p-tab--active"], ["role", "tabpanel", 1, "panel-body", 3, "id"], [1, "panel-pane", 3, "hidden"], ["role", "tab", 1, "p-tab", 3, "click"], [3, "name", "size"], [1, "p-tab-badge", 3, "
|
|
205
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismPanelHostComponent, selectors: [["prism-panel-host"]], decls: 7, vars: 1, consts: [[1, "panel"], ["role", "tablist", 1, "panel-tabs"], ["role", "tab", 1, "p-tab", 3, "p-tab--active"], ["role", "tabpanel", 1, "panel-body", 3, "id"], [1, "panel-pane", 3, "hidden"], ["role", "tab", 1, "p-tab", 3, "click"], [3, "name", "size"], [1, "p-tab-badge", 3, "warn", "danger"], [1, "p-tab-badge"], [4, "ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector"]], template: function PrismPanelHostComponent_Template(rf, ctx) { if (rf & 1) {
|
|
194
206
|
i0.ɵɵelementStart(0, "div", 0)(1, "nav", 1);
|
|
195
207
|
i0.ɵɵrepeaterCreate(2, PrismPanelHostComponent_For_3_Template, 4, 7, "button", 2, _forTrack0);
|
|
196
208
|
i0.ɵɵelementEnd();
|
|
@@ -204,7 +216,7 @@ export class PrismPanelHostComponent {
|
|
|
204
216
|
i0.ɵɵproperty("id", "panel-" + ctx.panelService.activePanelId());
|
|
205
217
|
i0.ɵɵadvance();
|
|
206
218
|
i0.ɵɵrepeater(ctx.renderedPanelsArray());
|
|
207
|
-
} }, dependencies: [NgComponentOutlet, PrismIconComponent], styles: [".panel[_ngcontent-%COMP%] {\n background: var(
|
|
219
|
+
} }, dependencies: [NgComponentOutlet, PrismIconComponent], styles: [".panel[_ngcontent-%COMP%] {\n background: var(--%NS%prism-bg-elevated);\n border-top: 1px solid var(--%NS%prism-border);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n height: 100%;\n }\n\n .panel-tabs[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 2px;\n padding: 0 16px;\n height: 40px;\n border-bottom: 1px solid var(--%NS%prism-border);\n background: var(--%NS%prism-bg);\n overflow-x: auto;\n scrollbar-width: none;\n flex-shrink: 0;\n }\n .panel-tabs[_ngcontent-%COMP%]::-webkit-scrollbar { display: none; }\n\n .p-tab[_ngcontent-%COMP%] {\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n gap: 7px;\n padding: 0 12px;\n font-size: var(--%NS%fs-md);\n font-weight: 500;\n color: var(--%NS%prism-text-muted);\n white-space: nowrap;\n transition: color var(--%NS%dur-fast);\n background: none;\n border: none;\n cursor: pointer;\n font-family: var(--%NS%font-sans);\n }\n .p-tab[_ngcontent-%COMP%]:hover { color: var(--%NS%prism-text-2); }\n .p-tab--active[_ngcontent-%COMP%] { color: var(--%NS%prism-text); }\n .p-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: linear-gradient(90deg, var(--%NS%prism-primary-from), var(--%NS%prism-primary-to));\n border-radius: 1px;\n }\n\n .p-tab-badge[_ngcontent-%COMP%] {\n min-width: 16px;\n height: 16px;\n padding: 0 5px;\n border-radius: 8px;\n background: color-mix(in srgb, var(--%NS%prism-primary) 18%, transparent);\n color: var(--%NS%prism-primary);\n font-family: var(--%NS%font-mono);\n font-size: 10px;\n font-weight: 700;\n display: grid;\n place-items: center;\n }\n .p-tab-badge.warn[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--%NS%prism-warn) 18%, transparent);\n color: var(--%NS%prism-warn);\n }\n .p-tab-badge.danger[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--%NS%prism-danger) 18%, transparent);\n color: var(--%NS%prism-danger);\n }\n\n .panel-tabs-right[_ngcontent-%COMP%] {\n margin-left: auto;\n display: flex;\n align-items: center;\n gap: 4px;\n padding-left: 10px;\n }\n\n .icon-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: grid;\n place-items: center;\n border-radius: var(--%NS%radius-sm);\n color: var(--%NS%prism-text-muted);\n background: none;\n border: none;\n cursor: pointer;\n transition: all var(--%NS%dur-fast);\n }\n .icon-btn[_ngcontent-%COMP%]:hover {\n background: var(--%NS%prism-input-bg);\n color: var(--%NS%prism-text);\n }\n\n .panel-body[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--%NS%prism-bg-elevated);\n }\n .panel-body[_ngcontent-%COMP%]::-webkit-scrollbar { width: 8px; height: 8px; }\n .panel-body[_ngcontent-%COMP%]::-webkit-scrollbar-thumb { background: var(--%NS%prism-border-strong); border-radius: 4px; }\n\n .panel-pane[_ngcontent-%COMP%] { height: 100%; }\n .panel-pane[hidden][_ngcontent-%COMP%] { display: none; }\n\n [_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--%NS%prism-primary);\n outline-offset: 2px;\n }"] });
|
|
208
220
|
}
|
|
209
221
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismPanelHostComponent, [{
|
|
210
222
|
type: Component,
|
|
@@ -228,15 +240,14 @@ export class PrismPanelHostComponent {
|
|
|
228
240
|
<prism-icon [name]="panel.icon" [size]="13" />
|
|
229
241
|
}
|
|
230
242
|
{{ panel.label }}
|
|
231
|
-
@if (panelBadge(panel); as badge) {
|
|
243
|
+
@if (panelBadge(panel); as badge) { @if (badge.variant !== 'ok') {
|
|
232
244
|
<span
|
|
233
245
|
class="p-tab-badge"
|
|
234
|
-
[class.ok]="badge.variant === 'ok'"
|
|
235
246
|
[class.warn]="badge.variant === 'warn'"
|
|
236
247
|
[class.danger]="badge.variant === 'danger'"
|
|
237
248
|
>{{ badge.text }}</span
|
|
238
249
|
>
|
|
239
|
-
}
|
|
250
|
+
} }
|
|
240
251
|
</button>
|
|
241
252
|
}
|
|
242
253
|
</nav>
|
|
@@ -261,6 +272,6 @@ export class PrismPanelHostComponent {
|
|
|
261
272
|
}
|
|
262
273
|
</div>
|
|
263
274
|
</div>
|
|
264
|
-
`, styles: ["\n .panel {\n background: var(--prism-bg-elevated);\n border-top: 1px solid var(--prism-border);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n height: 100%;\n }\n\n .panel-tabs {\n display: flex;\n align-items: center;\n gap: 2px;\n padding: 0 16px;\n height: 40px;\n border-bottom: 1px solid var(--prism-border);\n background: var(--prism-bg);\n overflow-x: auto;\n scrollbar-width: none;\n flex-shrink: 0;\n }\n .panel-tabs::-webkit-scrollbar { display: none; }\n\n .p-tab {\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n gap: 7px;\n padding: 0 12px;\n font-size: var(--fs-md);\n font-weight: 500;\n color: var(--prism-text-muted);\n white-space: nowrap;\n transition: color var(--dur-fast);\n background: none;\n border: none;\n cursor: pointer;\n font-family: var(--font-sans);\n }\n .p-tab:hover { color: var(--prism-text-2); }\n .p-tab--active { color: var(--prism-text); }\n .p-tab--active::after {\n content: '';\n position: absolute;\n left: 8px;\n right: 8px;\n bottom: -1px;\n height: 2px;\n background: linear-gradient(90deg, var(--prism-primary-from), var(--prism-primary-to));\n border-radius: 1px;\n }\n\n .p-tab-badge {\n min-width: 16px;\n height: 16px;\n padding: 0 5px;\n border-radius: 8px;\n background: color-mix(in srgb, var(--prism-primary) 18%, transparent);\n color: var(--prism-primary);\n font-family: var(--font-mono);\n font-size: 10px;\n font-weight: 700;\n display: grid;\n place-items: center;\n }\n .p-tab-badge.
|
|
275
|
+
`, styles: ["\n .panel {\n background: var(--prism-bg-elevated);\n border-top: 1px solid var(--prism-border);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n height: 100%;\n }\n\n .panel-tabs {\n display: flex;\n align-items: center;\n gap: 2px;\n padding: 0 16px;\n height: 40px;\n border-bottom: 1px solid var(--prism-border);\n background: var(--prism-bg);\n overflow-x: auto;\n scrollbar-width: none;\n flex-shrink: 0;\n }\n .panel-tabs::-webkit-scrollbar { display: none; }\n\n .p-tab {\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n gap: 7px;\n padding: 0 12px;\n font-size: var(--fs-md);\n font-weight: 500;\n color: var(--prism-text-muted);\n white-space: nowrap;\n transition: color var(--dur-fast);\n background: none;\n border: none;\n cursor: pointer;\n font-family: var(--font-sans);\n }\n .p-tab:hover { color: var(--prism-text-2); }\n .p-tab--active { color: var(--prism-text); }\n .p-tab--active::after {\n content: '';\n position: absolute;\n left: 8px;\n right: 8px;\n bottom: -1px;\n height: 2px;\n background: linear-gradient(90deg, var(--prism-primary-from), var(--prism-primary-to));\n border-radius: 1px;\n }\n\n .p-tab-badge {\n min-width: 16px;\n height: 16px;\n padding: 0 5px;\n border-radius: 8px;\n background: color-mix(in srgb, var(--prism-primary) 18%, transparent);\n color: var(--prism-primary);\n font-family: var(--font-mono);\n font-size: 10px;\n font-weight: 700;\n display: grid;\n place-items: center;\n }\n .p-tab-badge.warn {\n background: color-mix(in srgb, var(--prism-warn) 18%, transparent);\n color: var(--prism-warn);\n }\n .p-tab-badge.danger {\n background: color-mix(in srgb, var(--prism-danger) 18%, transparent);\n color: var(--prism-danger);\n }\n\n .panel-tabs-right {\n margin-left: auto;\n display: flex;\n align-items: center;\n gap: 4px;\n padding-left: 10px;\n }\n\n .icon-btn {\n width: 28px;\n height: 28px;\n display: grid;\n place-items: center;\n border-radius: var(--radius-sm);\n color: var(--prism-text-muted);\n background: none;\n border: none;\n cursor: pointer;\n transition: all var(--dur-fast);\n }\n .icon-btn:hover {\n background: var(--prism-input-bg);\n color: var(--prism-text);\n }\n\n .panel-body {\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--prism-bg-elevated);\n }\n .panel-body::-webkit-scrollbar { width: 8px; height: 8px; }\n .panel-body::-webkit-scrollbar-thumb { background: var(--prism-border-strong); border-radius: 4px; }\n\n .panel-pane { height: 100%; }\n .panel-pane[hidden] { display: none; }\n\n :focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }\n "] }]
|
|
265
276
|
}], () => [], null); })();
|
|
266
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismPanelHostComponent, { className: "PrismPanelHostComponent", filePath: "app/panels/panel-host/prism-panel-host.component.ts", lineNumber:
|
|
277
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismPanelHostComponent, { className: "PrismPanelHostComponent", filePath: "app/panels/panel-host/prism-panel-host.component.ts", lineNumber: 215 }); })();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay-resolver.d.ts","sourceRoot":"","sources":["../../../src/app/renderer/overlay-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;CAAE,GAC3C;IACE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;CACpC,CAAC;AAIN;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,eAAe,EAAE,EAClC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE;IACP,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;CAC3C,GACA,iBAAiB,
|
|
1
|
+
{"version":3,"file":"overlay-resolver.d.ts","sourceRoot":"","sources":["../../../src/app/renderer/overlay-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;CAAE,GAC3C;IACE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;CACpC,CAAC;AAIN;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,eAAe,EAAE,EAClC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE;IACP,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;CAC3C,GACA,iBAAiB,CA6BnB"}
|
|
@@ -17,9 +17,20 @@ export function resolveOverlay(panels, activePanelId, options) {
|
|
|
17
17
|
}
|
|
18
18
|
if (panel.loadOverlayComponent) {
|
|
19
19
|
const cached = options.cache.get(panel.id);
|
|
20
|
+
const loadOverlayComponent = panel.loadOverlayComponent;
|
|
20
21
|
return cached
|
|
21
22
|
? { kind: 'eager', component: cached }
|
|
22
|
-
: {
|
|
23
|
+
: {
|
|
24
|
+
kind: 'lazy',
|
|
25
|
+
panelId: panel.id,
|
|
26
|
+
// Wrapped rather than passed by reference: handing the bare method
|
|
27
|
+
// over detaches it from its panel, and the renderer would call it
|
|
28
|
+
// with `this === undefined`. A definition written in method
|
|
29
|
+
// shorthand that reads its own object then throws inside a promise
|
|
30
|
+
// the renderer does not catch, and the overlay silently never
|
|
31
|
+
// appears.
|
|
32
|
+
load: () => loadOverlayComponent.call(panel),
|
|
33
|
+
};
|
|
23
34
|
}
|
|
24
35
|
return NONE;
|
|
25
36
|
}
|
|
@@ -6,7 +6,6 @@ import { PrismCaptureService } from '../services/prism-capture.service.js';
|
|
|
6
6
|
import { PrismVariantBgService } from '../services/prism-variant-bg.service.js';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export declare class PrismRendererComponent {
|
|
9
|
-
protected readonly Math: Math;
|
|
10
9
|
protected readonly navigationService: PrismNavigationService;
|
|
11
10
|
protected readonly rendererService: PrismRendererService;
|
|
12
11
|
protected readonly canvasService: PrismCanvasService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-renderer.component.d.ts","sourceRoot":"","sources":["../../../src/app/renderer/prism-renderer.component.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,QAAQ,EAER,KAAK,IAAI,EAIV,MAAM,eAAe,CAAC;AAYvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAGjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;;
|
|
1
|
+
{"version":3,"file":"prism-renderer.component.d.ts","sourceRoot":"","sources":["../../../src/app/renderer/prism-renderer.component.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,QAAQ,EAER,KAAK,IAAI,EAIV,MAAM,eAAe,CAAC;AAYvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAGjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;;AAQhF,qBAkIa,sBAAsB;IACjC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,yBAAkC;IACtE,SAAS,CAAC,QAAQ,CAAC,eAAe,uBAAgC;IAClE,SAAS,CAAC,QAAQ,CAAC,aAAa,qBAA8B;IAC9D,SAAS,CAAC,QAAQ,CAAC,OAAO,sBAA+B;IACzD,SAAS,CAAC,QAAQ,CAAC,SAAS,wBAAiC;IAC7D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmC;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAE3B;IAEH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAE5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAEpB;IACH,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,mBAAmB,CAAsC;IACjE,OAAO,CAAC,oBAAoB,CAChB;IACZ,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;IACjE,QAAQ,CAAC,aAAa,+DAAsC;IAC5D,wFAAwF;IACxF,SAAS,CAAC,QAAQ,CAAC,WAAW,gDAQ3B;IACH,6GAA6G;IAC7G,SAAS,CAAC,QAAQ,CAAC,YAAY,4FAU5B;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa;;MAA6C;IAC7E,SAAS,CAAC,QAAQ,CAAC,eAAe,yFAG/B;;IAmFH,OAAO,CAAC,eAAe;IA6FvB,OAAO,CAAC,OAAO;yCAvOJ,sBAAsB;2CAAtB,sBAAsB;CAqPlC"}
|
|
@@ -13,33 +13,28 @@ import { PrismCaptureService } from '../services/prism-capture.service.js';
|
|
|
13
13
|
import { PrismVariantBgService } from '../services/prism-variant-bg.service.js';
|
|
14
14
|
import { PrismCanvasRulersComponent } from '../canvas/prism-canvas-rulers.component.js';
|
|
15
15
|
import { PrismCanvasBgPillComponent } from '../canvas/prism-canvas-bg-pill.component.js';
|
|
16
|
+
import { CANVAS_BG_STYLES } from '../canvas/canvas-bg.styles.js';
|
|
16
17
|
import { buildKnownInputs } from './known-inputs.js';
|
|
17
18
|
import { resolveOverlay } from './overlay-resolver.js';
|
|
19
|
+
import { parseContentToNodes } from './projectable-content.js';
|
|
18
20
|
import * as i0 from "@angular/core";
|
|
19
21
|
const _c0 = ["outlet"];
|
|
20
22
|
function PrismRendererComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
21
|
-
i0.ɵɵ
|
|
22
|
-
i0.ɵɵtext(2);
|
|
23
|
-
i0.ɵɵelementEnd()();
|
|
24
|
-
i0.ɵɵelement(3, "div", 5)(4, "prism-canvas-rulers")(5, "prism-canvas-bg-pill");
|
|
23
|
+
i0.ɵɵelement(0, "div", 3)(1, "prism-canvas-rulers")(2, "prism-canvas-bg-pill");
|
|
25
24
|
} if (rf & 2) {
|
|
26
25
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
27
|
-
i0.ɵɵadvance(2);
|
|
28
|
-
i0.ɵɵtextInterpolate1("", ctx_r0.Math.round(ctx_r0.canvasService.zoom() * 100), "%");
|
|
29
|
-
i0.ɵɵadvance();
|
|
30
26
|
i0.ɵɵclassProp("visible", ctx_r0.canvasService.guides());
|
|
31
27
|
} }
|
|
32
28
|
function PrismRendererComponent_Conditional_5_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
33
29
|
i0.ɵɵelementContainer(0);
|
|
34
30
|
} }
|
|
35
31
|
function PrismRendererComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
36
|
-
i0.ɵɵtemplate(0, PrismRendererComponent_Conditional_5_ng_container_0_Template, 1, 0, "ng-container",
|
|
32
|
+
i0.ɵɵtemplate(0, PrismRendererComponent_Conditional_5_ng_container_0_Template, 1, 0, "ng-container", 4);
|
|
37
33
|
} if (rf & 2) {
|
|
38
34
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
39
35
|
i0.ɵɵproperty("ngComponentOutlet", ctx_r0.activeOverlay())("ngComponentOutletInputs", ctx_r0.overlayInputs)("ngComponentOutletInjector", ctx_r0.overlayInjector());
|
|
40
36
|
} }
|
|
41
37
|
export class PrismRendererComponent {
|
|
42
|
-
Math = Math;
|
|
43
38
|
navigationService = inject(PrismNavigationService);
|
|
44
39
|
rendererService = inject(PrismRendererService);
|
|
45
40
|
canvasService = inject(PrismCanvasService);
|
|
@@ -55,9 +50,7 @@ export class PrismRendererComponent {
|
|
|
55
50
|
});
|
|
56
51
|
panelService = inject(PrismPanelService);
|
|
57
52
|
pluginService = inject(PrismPluginService);
|
|
58
|
-
outlet = viewChild.required('outlet', {
|
|
59
|
-
read: ViewContainerRef,
|
|
60
|
-
});
|
|
53
|
+
outlet = viewChild.required('outlet', { ...(ngDevMode ? { debugName: "outlet" } : /* istanbul ignore next */ {}), read: ViewContainerRef });
|
|
61
54
|
componentRef = null;
|
|
62
55
|
outputSubscriptions = [];
|
|
63
56
|
lastProjectedContent = undefined;
|
|
@@ -237,9 +230,9 @@ export class PrismRendererComponent {
|
|
|
237
230
|
i0.ɵɵviewQuerySignal(ctx.outlet, _c0, 5, ViewContainerRef);
|
|
238
231
|
} if (rf & 2) {
|
|
239
232
|
i0.ɵɵqueryAdvance();
|
|
240
|
-
} }, decls: 6, vars: 8, consts: [["outlet", ""], [1, "prism-canvas-stage"], [1, "demo-wrap"], [1, "
|
|
233
|
+
} }, decls: 6, vars: 8, consts: [["outlet", ""], [1, "prism-canvas-stage"], [1, "demo-wrap"], [1, "stage-crosshair"], [4, "ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector"]], template: function PrismRendererComponent_Template(rf, ctx) { if (rf & 1) {
|
|
241
234
|
i0.ɵɵelementStart(0, "div", 1);
|
|
242
|
-
i0.ɵɵconditionalCreate(1, PrismRendererComponent_Conditional_1_Template,
|
|
235
|
+
i0.ɵɵconditionalCreate(1, PrismRendererComponent_Conditional_1_Template, 3, 2);
|
|
243
236
|
i0.ɵɵelementStart(2, "div", 2);
|
|
244
237
|
i0.ɵɵelementContainer(3, null, 0);
|
|
245
238
|
i0.ɵɵconditionalCreate(5, PrismRendererComponent_Conditional_5_Template, 1, 3, "ng-container");
|
|
@@ -249,13 +242,13 @@ export class PrismRendererComponent {
|
|
|
249
242
|
i0.ɵɵadvance();
|
|
250
243
|
i0.ɵɵconditional(!ctx.capture.active() ? 1 : -1);
|
|
251
244
|
i0.ɵɵadvance();
|
|
252
|
-
i0.ɵɵstyleProp("
|
|
245
|
+
i0.ɵɵstyleProp("--%NS%zoom", ctx.canvasService.zoom());
|
|
253
246
|
i0.ɵɵattribute("data-prism-rendered", ctx.renderedKey())("data-canvas-layout", ctx.canvasLayout());
|
|
254
247
|
i0.ɵɵadvance(3);
|
|
255
248
|
i0.ɵɵconditional(ctx.activeOverlay() ? 5 : -1);
|
|
256
249
|
} }, dependencies: [PrismCanvasRulersComponent,
|
|
257
250
|
PrismCanvasBgPillComponent,
|
|
258
|
-
NgComponentOutlet], styles: ["[_nghost-%COMP%] {
|
|
251
|
+
NgComponentOutlet], styles: ["[_nghost-%COMP%] {\n display: block;\n min-height: 0;\n flex: 1;\n }\n\n .prism-canvas-stage[_ngcontent-%COMP%] {\n position: relative;\n overflow: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 32px;\n min-height: 200px;\n height: 100%;\n background-color: var(--%NS%prism-stage);\n\n \n\n\n\n\n\n\n\n\n\n\n outline: 1px solid var(--%NS%prism-stage-edge);\n outline-offset: -1px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1),\n 0 8px 24px -12px rgba(0, 0, 0, 0.18);\n transition: filter var(--%NS%dur-base);\n --%NS%prism-canvas-overlay-top: 12px;\n --%NS%prism-canvas-overlay-inline: 20px;\n }\n .prism-canvas-stage[data-rulers][_ngcontent-%COMP%] {\n --%NS%prism-canvas-overlay-top: 28px;\n --%NS%prism-canvas-overlay-inline: 28px;\n }\n\n .stage-crosshair[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n opacity: 0;\n transition: opacity var(--%NS%dur-base);\n }\n .stage-crosshair.visible[_ngcontent-%COMP%] {\n opacity: 1;\n }\n .stage-crosshair[_ngcontent-%COMP%]::before, \n .stage-crosshair[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n background: color-mix(in srgb, var(--%NS%prism-primary) 20%, transparent);\n }\n .stage-crosshair[_ngcontent-%COMP%]::before {\n left: 0;\n right: 0;\n top: 50%;\n height: 1px;\n }\n .stage-crosshair[_ngcontent-%COMP%]::after {\n top: 0;\n bottom: 0;\n left: 50%;\n width: 1px;\n }\n\n .demo-wrap[_ngcontent-%COMP%] {\n position: relative;\n display: inline-block;\n transform: scale(var(--%NS%zoom, 1));\n transition: transform 0.18s;\n }\n .demo-wrap[data-canvas-layout='stretch'][_ngcontent-%COMP%] {\n display: block;\n width: 100%;\n max-width: 800px;\n }", "[data-bg=\"dots\"][_ngcontent-%COMP%] {\n background-image: radial-gradient(circle, var(--%NS%prism-dot) 1px, transparent 1px);\n background-size: 20px 20px;\n }\n\n [data-bg=\"plain\"][_ngcontent-%COMP%] {\n background-image: none;\n }\n\n \n\n\n\n\n [data-bg=\"light\"][_ngcontent-%COMP%] {\n background-color: var(--%NS%prism-void-light, #f7f5fc);\n background-image: none;\n }\n [data-bg=\"dark\"][_ngcontent-%COMP%] {\n background-color: var(--%NS%prism-void-dark, #07050f);\n background-image: none;\n }\n\n \n\n\n\n\n\n [data-bg=\"checker\"][_ngcontent-%COMP%], \n [data-bg=\"transparent\"][_ngcontent-%COMP%] {\n background-image:\n linear-gradient(45deg, var(--%NS%prism-border) 25%, transparent 25%),\n linear-gradient(-45deg, var(--%NS%prism-border) 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, var(--%NS%prism-border) 75%),\n linear-gradient(-45deg, transparent 75%, var(--%NS%prism-border) 75%);\n background-size: 16px 16px;\n background-position: 0 0, 0 8px, 8px -8px, -8px 0;\n }"] });
|
|
259
252
|
}
|
|
260
253
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismRendererComponent, [{
|
|
261
254
|
type: Component,
|
|
@@ -270,11 +263,6 @@ export class PrismRendererComponent {
|
|
|
270
263
|
[attr.data-rulers]="canvasService.rulers() ? '' : null"
|
|
271
264
|
>
|
|
272
265
|
@if (!capture.active()) {
|
|
273
|
-
<div class="canvas-badges">
|
|
274
|
-
<span class="c-badge"
|
|
275
|
-
>{{ Math.round(canvasService.zoom() * 100) }}%</span
|
|
276
|
-
>
|
|
277
|
-
</div>
|
|
278
266
|
<div
|
|
279
267
|
class="stage-crosshair"
|
|
280
268
|
[class.visible]="canvasService.guides()"
|
|
@@ -301,60 +289,8 @@ export class PrismRendererComponent {
|
|
|
301
289
|
}
|
|
302
290
|
</div>
|
|
303
291
|
</div>
|
|
304
|
-
`, styles: ["\n
|
|
292
|
+
`, styles: ["\n :host {\n display: block;\n min-height: 0;\n flex: 1;\n }\n\n .prism-canvas-stage {\n position: relative;\n overflow: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 32px;\n min-height: 200px;\n height: 100%;\n background-color: var(--prism-stage);\n\n /* The edge is outline + shadow, never border and never extra padding.\n plugin-visual-regression screenshots .demo-wrap, which is centred in\n this element; a border would shrink the content box by 2px and move\n that centre, shifting all 15 baselines in test-workspace/vrt/baseline\n without a single component having changed. Capture mode resets this\n element's padding but not its border, and this repo has no VRT runner\n to catch the drift. outline and box-shadow do not participate in\n layout, so the box is provably unchanged. Keep it that way.\n They do still paint, and outline-offset is negative, so the line lands\n inside the box: CAPTURE_STYLES in prism-capture.service.ts sets both\n to none, which is only safe because neither is load-bearing here. */\n outline: 1px solid var(--prism-stage-edge);\n outline-offset: -1px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1),\n 0 8px 24px -12px rgba(0, 0, 0, 0.18);\n transition: filter var(--dur-base);\n --prism-canvas-overlay-top: 12px;\n --prism-canvas-overlay-inline: 20px;\n }\n .prism-canvas-stage[data-rulers] {\n --prism-canvas-overlay-top: 28px;\n --prism-canvas-overlay-inline: 28px;\n }\n\n .stage-crosshair {\n position: absolute;\n inset: 0;\n pointer-events: none;\n opacity: 0;\n transition: opacity var(--dur-base);\n }\n .stage-crosshair.visible {\n opacity: 1;\n }\n .stage-crosshair::before,\n .stage-crosshair::after {\n content: '';\n position: absolute;\n background: color-mix(in srgb, var(--prism-primary) 20%, transparent);\n }\n .stage-crosshair::before {\n left: 0;\n right: 0;\n top: 50%;\n height: 1px;\n }\n .stage-crosshair::after {\n top: 0;\n bottom: 0;\n left: 50%;\n width: 1px;\n }\n\n .demo-wrap {\n position: relative;\n display: inline-block;\n transform: scale(var(--zoom, 1));\n transition: transform 0.18s;\n }\n .demo-wrap[data-canvas-layout='stretch'] {\n display: block;\n width: 100%;\n max-width: 800px;\n }\n ", "\n [data-bg=\"dots\"] {\n background-image: radial-gradient(circle, var(--prism-dot) 1px, transparent 1px);\n background-size: 20px 20px;\n }\n\n [data-bg=\"plain\"] {\n background-image: none;\n }\n\n /* Flat, not dotted. \"light\" and \"dark\" name a surface a component was\n designed against \u2014 and they are the two backgrounds whose colour is\n absolute rather than a theme token, which is what makes them the values\n to declare for a screenshot baseline. \"dots\" already exists for anyone\n who wants the grid. */\n [data-bg=\"light\"] {\n background-color: var(--prism-void-light, #f7f5fc);\n background-image: none;\n }\n [data-bg=\"dark\"] {\n background-color: var(--prism-void-dark, #07050f);\n background-image: none;\n }\n\n /* \"transparent\" shares the checkerboard on purpose. The two say the same\n thing in the two media the canvas has: while browsing, the checkerboard\n is already the UI's word for \"no surface here\"; in a capture it becomes\n literal transparency. A stage that were really see-through in the app\n would just show the shell through the canvas, which means nothing. The\n split between the two lives entirely in CAPTURE_STYLES. */\n [data-bg=\"checker\"],\n [data-bg=\"transparent\"] {\n background-image:\n linear-gradient(45deg, var(--prism-border) 25%, transparent 25%),\n linear-gradient(-45deg, var(--prism-border) 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, var(--prism-border) 75%),\n linear-gradient(-45deg, transparent 75%, var(--prism-border) 75%);\n background-size: 16px 16px;\n background-position: 0 0, 0 8px, 8px -8px, -8px 0;\n }\n"] }]
|
|
305
293
|
}], () => [], { outlet: [{ type: i0.ViewChild, args: ['outlet', { ...{
|
|
306
294
|
read: ViewContainerRef,
|
|
307
295
|
}, isSignal: true }] }] }); })();
|
|
308
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismRendererComponent, { className: "PrismRendererComponent", filePath: "app/renderer/prism-renderer.component.ts", lineNumber:
|
|
309
|
-
// SAFETY: `content` originates from `@Showcase({ variants: [{ content }] })`
|
|
310
|
-
// in developer-authored source code. It is trusted by ng-prism's threat model
|
|
311
|
-
// (see SECURITY.md). Sanitization would strip the Angular component/directive
|
|
312
|
-
// selectors that variant content is meant to project.
|
|
313
|
-
function parseContentToNodes(content) {
|
|
314
|
-
if (typeof content === 'string') {
|
|
315
|
-
return [htmlToNodes(content)];
|
|
316
|
-
}
|
|
317
|
-
const defaultNodes = content['default']
|
|
318
|
-
? htmlToNodes(content['default'])
|
|
319
|
-
: [];
|
|
320
|
-
const result = [defaultNodes];
|
|
321
|
-
for (const [selector, html] of Object.entries(content)) {
|
|
322
|
-
if (selector === 'default')
|
|
323
|
-
continue;
|
|
324
|
-
const wrapper = document.createElement('div');
|
|
325
|
-
// SAFETY: trusted developer-authored HTML — see SECURITY.md.
|
|
326
|
-
wrapper.innerHTML = html;
|
|
327
|
-
const nodes = [];
|
|
328
|
-
for (const child of Array.from(wrapper.childNodes)) {
|
|
329
|
-
const el = document.createElement('div');
|
|
330
|
-
// SAFETY: trusted developer-authored HTML — see SECURITY.md.
|
|
331
|
-
el.innerHTML = child.outerHTML ?? child.textContent ?? '';
|
|
332
|
-
const projected = el.firstChild;
|
|
333
|
-
if (projected && projected instanceof Element) {
|
|
334
|
-
applySelector(projected, selector);
|
|
335
|
-
nodes.push(projected);
|
|
336
|
-
}
|
|
337
|
-
else if (projected) {
|
|
338
|
-
const span = document.createElement('span');
|
|
339
|
-
applySelector(span, selector);
|
|
340
|
-
span.textContent = child.textContent;
|
|
341
|
-
nodes.push(span);
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
result.push(nodes);
|
|
345
|
-
}
|
|
346
|
-
return result;
|
|
347
|
-
}
|
|
348
|
-
// SAFETY: see `parseContentToNodes` above and SECURITY.md — `html` is trusted
|
|
349
|
-
// developer-authored variant content from the `@Showcase` decorator.
|
|
350
|
-
function htmlToNodes(html) {
|
|
351
|
-
const wrapper = document.createElement('div');
|
|
352
|
-
wrapper.innerHTML = html;
|
|
353
|
-
return Array.from(wrapper.childNodes);
|
|
354
|
-
}
|
|
355
|
-
function applySelector(el, selector) {
|
|
356
|
-
const attrMatch = selector.match(/^\[([^\]=]+)]$/);
|
|
357
|
-
if (attrMatch) {
|
|
358
|
-
el.setAttribute(attrMatch[1], '');
|
|
359
|
-
}
|
|
360
|
-
}
|
|
296
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismRendererComponent, { className: "PrismRendererComponent", filePath: "app/renderer/prism-renderer.component.ts", lineNumber: 172 }); })();
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turns per-variant `content` into the `projectableNodes` argument of
|
|
3
|
+
* `ViewContainerRef.createComponent`.
|
|
4
|
+
*
|
|
5
|
+
* Shared by the Playground stage and the Overview cells: both project the same
|
|
6
|
+
* developer-authored content, and the slot-selector handling is the one piece
|
|
7
|
+
* of that neither wants to own twice.
|
|
8
|
+
*/
|
|
9
|
+
export declare function parseContentToNodes(content: string | Record<string, string>): Node[][];
|
|
10
|
+
//# sourceMappingURL=projectable-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectable-content.d.ts","sourceRoot":"","sources":["../../../src/app/renderer/projectable-content.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,IAAI,EAAE,EAAE,CAmCV"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turns per-variant `content` into the `projectableNodes` argument of
|
|
3
|
+
* `ViewContainerRef.createComponent`.
|
|
4
|
+
*
|
|
5
|
+
* Shared by the Playground stage and the Overview cells: both project the same
|
|
6
|
+
* developer-authored content, and the slot-selector handling is the one piece
|
|
7
|
+
* of that neither wants to own twice.
|
|
8
|
+
*/
|
|
9
|
+
// SAFETY: `content` originates from `@Showcase({ variants: [{ content }] })`
|
|
10
|
+
// in developer-authored source code. It is trusted by ng-prism's threat model
|
|
11
|
+
// (see SECURITY.md). Sanitization would strip the Angular component/directive
|
|
12
|
+
// selectors that variant content is meant to project.
|
|
13
|
+
export function parseContentToNodes(content) {
|
|
14
|
+
if (typeof content === 'string') {
|
|
15
|
+
return [htmlToNodes(content)];
|
|
16
|
+
}
|
|
17
|
+
const defaultNodes = content['default']
|
|
18
|
+
? htmlToNodes(content['default'])
|
|
19
|
+
: [];
|
|
20
|
+
const result = [defaultNodes];
|
|
21
|
+
for (const [selector, html] of Object.entries(content)) {
|
|
22
|
+
if (selector === 'default')
|
|
23
|
+
continue;
|
|
24
|
+
const wrapper = document.createElement('div');
|
|
25
|
+
// SAFETY: trusted developer-authored HTML — see SECURITY.md.
|
|
26
|
+
wrapper.innerHTML = html;
|
|
27
|
+
const nodes = [];
|
|
28
|
+
for (const child of Array.from(wrapper.childNodes)) {
|
|
29
|
+
const el = document.createElement('div');
|
|
30
|
+
// SAFETY: trusted developer-authored HTML — see SECURITY.md.
|
|
31
|
+
el.innerHTML = child.outerHTML ?? child.textContent ?? '';
|
|
32
|
+
const projected = el.firstChild;
|
|
33
|
+
if (projected && projected instanceof Element) {
|
|
34
|
+
applySelector(projected, selector);
|
|
35
|
+
nodes.push(projected);
|
|
36
|
+
}
|
|
37
|
+
else if (projected) {
|
|
38
|
+
const span = document.createElement('span');
|
|
39
|
+
applySelector(span, selector);
|
|
40
|
+
span.textContent = child.textContent;
|
|
41
|
+
nodes.push(span);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
result.push(nodes);
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
// SAFETY: see `parseContentToNodes` above and SECURITY.md — `html` is trusted
|
|
49
|
+
// developer-authored variant content from the `@Showcase` decorator.
|
|
50
|
+
function htmlToNodes(html) {
|
|
51
|
+
const wrapper = document.createElement('div');
|
|
52
|
+
wrapper.innerHTML = html;
|
|
53
|
+
return Array.from(wrapper.childNodes);
|
|
54
|
+
}
|
|
55
|
+
function applySelector(el, selector) {
|
|
56
|
+
const attrMatch = selector.match(/^\[([^\]=]+)]$/);
|
|
57
|
+
if (attrMatch) {
|
|
58
|
+
el.setAttribute(attrMatch[1], '');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -15,6 +15,6 @@ export declare class PrismCanvasService {
|
|
|
15
15
|
private loadFromStorage;
|
|
16
16
|
private save;
|
|
17
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<PrismCanvasService, never>;
|
|
18
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
18
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
19
19
|
}
|
|
20
20
|
//# sourceMappingURL=prism-canvas.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-canvas.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-canvas.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;;AAG3E,YAAY,EAAE,QAAQ,EAAE,CAAC;AAIzB,qBACa,kBAAkB;IAC7B,QAAQ,CAAC,EAAE,mDAA4B;IACvC,QAAQ,CAAC,IAAI,iDAAa;IAC1B,QAAQ,CAAC,MAAM,kDAAiB;IAChC,QAAQ,CAAC,MAAM,kDAAiB;IAEhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;;IAWvD,KAAK,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAKzB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKxB,YAAY,IAAI,IAAI;IAKpB,YAAY,IAAI,IAAI;IAKpB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,IAAI;yCAnDD,kBAAkB
|
|
1
|
+
{"version":3,"file":"prism-canvas.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-canvas.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;;AAG3E,YAAY,EAAE,QAAQ,EAAE,CAAC;AAIzB,qBACa,kBAAkB;IAC7B,QAAQ,CAAC,EAAE,mDAA4B;IACvC,QAAQ,CAAC,IAAI,iDAAa;IAC1B,QAAQ,CAAC,MAAM,kDAAiB;IAChC,QAAQ,CAAC,MAAM,kDAAiB;IAEhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;;IAWvD,KAAK,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAKzB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKxB,YAAY,IAAI,IAAI;IAKpB,YAAY,IAAI,IAAI;IAKpB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,IAAI;yCAnDD,kBAAkB;;CAiE9B"}
|
|
@@ -17,6 +17,12 @@ export declare const CAPTURE_ATTRIBUTE = "data-prism-capture";
|
|
|
17
17
|
* Above `html` the backdrop is the browser's own and no stylesheet reaches it;
|
|
18
18
|
* a runner has to clear that with `omitBackground: true`.
|
|
19
19
|
*
|
|
20
|
+
* `prism-shell` is the *host element* the app bootstraps into, not the
|
|
21
|
+
* `div.prism-shell` inside its template — both are in the chain and either can
|
|
22
|
+
* be given a background, a `:host` rule being the easy way to do it by
|
|
23
|
+
* accident. `.prism-body` is the grid between the shell and `.prism-main` and
|
|
24
|
+
* is listed on the same insurance grounds.
|
|
25
|
+
*
|
|
20
26
|
* Scoped by `:has()` to a *transparent* stage, so the other five backgrounds
|
|
21
27
|
* behave exactly as before. Exported so a test can assert the invariant
|
|
22
28
|
* against the real DOM rather than against this list — the list is the
|
|
@@ -61,7 +67,7 @@ export declare class PrismCaptureService {
|
|
|
61
67
|
constructor();
|
|
62
68
|
private applyToDocument;
|
|
63
69
|
static ɵfac: i0.ɵɵFactoryDeclaration<PrismCaptureService, never>;
|
|
64
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
70
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
65
71
|
}
|
|
66
72
|
/**
|
|
67
73
|
* Parses the capture flag out of a `window.location.search` string.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-capture.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-capture.service.ts"],"names":[],"mappings":";AAEA,sFAAsF;AACtF,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAItD
|
|
1
|
+
{"version":3,"file":"prism-capture.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-capture.service.ts"],"names":[],"mappings":";AAEA,sFAAsF;AACtF,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAItD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,4BAA4B,QAE0H,CAAC;AAmJpK;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBACa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAItB;IAEF,kEAAkE;IAClE,QAAQ,CAAC,MAAM,0CAA6B;;IAM5C,OAAO,CAAC,eAAe;yCAdZ,mBAAmB;;CAuB/B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAIzD"}
|
|
@@ -19,6 +19,12 @@ const STYLE_ELEMENT_ID = 'ng-prism-capture-styles';
|
|
|
19
19
|
* Above `html` the backdrop is the browser's own and no stylesheet reaches it;
|
|
20
20
|
* a runner has to clear that with `omitBackground: true`.
|
|
21
21
|
*
|
|
22
|
+
* `prism-shell` is the *host element* the app bootstraps into, not the
|
|
23
|
+
* `div.prism-shell` inside its template — both are in the chain and either can
|
|
24
|
+
* be given a background, a `:host` rule being the easy way to do it by
|
|
25
|
+
* accident. `.prism-body` is the grid between the shell and `.prism-main` and
|
|
26
|
+
* is listed on the same insurance grounds.
|
|
27
|
+
*
|
|
22
28
|
* Scoped by `:has()` to a *transparent* stage, so the other five backgrounds
|
|
23
29
|
* behave exactly as before. Exported so a test can assert the invariant
|
|
24
30
|
* against the real DOM rather than against this list — the list is the
|
|
@@ -27,7 +33,7 @@ const STYLE_ELEMENT_ID = 'ng-prism-capture-styles';
|
|
|
27
33
|
* looks correct; it just silently stops testing transparency.
|
|
28
34
|
*/
|
|
29
35
|
export const CAPTURE_TRANSPARENT_SELECTOR = `[${CAPTURE_ATTRIBUTE}] .prism-canvas-stage[data-bg='transparent'],\n` +
|
|
30
|
-
`[${CAPTURE_ATTRIBUTE}] :is(html, body, .prism-shell, .prism-main, .prism-canvas-wrap):has(.prism-canvas-stage[data-bg='transparent'])`;
|
|
36
|
+
`[${CAPTURE_ATTRIBUTE}] :is(html, body, prism-shell, .prism-shell, .prism-body, .prism-main, .prism-canvas-wrap):has(.prism-canvas-stage[data-bg='transparent'])`;
|
|
31
37
|
/**
|
|
32
38
|
* Everything capture mode removes from layout so the canvas owns the viewport.
|
|
33
39
|
*
|
|
@@ -113,6 +119,24 @@ const CAPTURE_CANVAS_ONLY_SELECTOR = `[${CAPTURE_ATTRIBUTE}] ` +
|
|
|
113
119
|
* 200x700 component at 1280x720 still leaks 22px past the canvas with the
|
|
114
120
|
* regions gone but the padding kept. None of that padding is ever inside a
|
|
115
121
|
* `.demo-wrap` screenshot, so nothing is lost by removing it.
|
|
122
|
+
*
|
|
123
|
+
* The stage's edge goes with them, and it is stripped rather than reshaped for
|
|
124
|
+
* the same reason it exists in that shape at all. The edge is deliberately
|
|
125
|
+
* built from `outline` plus `box-shadow` and never from a border or padding,
|
|
126
|
+
* because neither participates in layout: `plugin-visual-regression`
|
|
127
|
+
* screenshots `.demo-wrap`, which is centred in the stage, and a border would
|
|
128
|
+
* shrink the stage's content box by 2px and move that centre, shifting every
|
|
129
|
+
* recorded baseline without a component having changed. Not participating in
|
|
130
|
+
* layout is not the same as not painting. `outline-offset: -1px` draws the
|
|
131
|
+
* line *inside* the border box, and with the padding above gone the stage edge
|
|
132
|
+
* sits flush against the component, so for anything whose `.demo-wrap` reaches
|
|
133
|
+
* it that 1px line and the shadow under it composite straight into the
|
|
134
|
+
* screenshot. So capture mode removes the paint and leaves the geometry
|
|
135
|
+
* untouched — the same division of labour the edge was chosen for, and the
|
|
136
|
+
* only one that keeps both halves of the guarantee.
|
|
137
|
+
*
|
|
138
|
+
* {@link CAPTURE_TRANSPARENT_SELECTOR} cannot cover this: it clears background
|
|
139
|
+
* colour, and an outline is not a background.
|
|
116
140
|
*/
|
|
117
141
|
const CAPTURE_STYLES = `
|
|
118
142
|
[${CAPTURE_ATTRIBUTE}] *,
|
|
@@ -127,6 +151,8 @@ const CAPTURE_STYLES = `
|
|
|
127
151
|
[${CAPTURE_ATTRIBUTE}] .prism-canvas-stage {
|
|
128
152
|
background-image: none !important;
|
|
129
153
|
padding: 0 !important;
|
|
154
|
+
outline: none !important;
|
|
155
|
+
box-shadow: none !important;
|
|
130
156
|
}
|
|
131
157
|
|
|
132
158
|
${CAPTURE_TRANSPARENT_SELECTOR} {
|
|
@@ -11,6 +11,6 @@ export declare class PrismEventLogService {
|
|
|
11
11
|
log(name: string, value: unknown): void;
|
|
12
12
|
clear(): void;
|
|
13
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<PrismEventLogService, never>;
|
|
14
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
14
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=prism-event-log.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-event-log.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-event-log.service.ts"],"names":[],"mappings":";AAEA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,qBACa,oBAAoB;IAC/B,QAAQ,CAAC,MAAM,0DAA+B;IAC9C,OAAO,CAAC,OAAO,CAAK;IAEpB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAOvC,KAAK,IAAI,IAAI;yCAXF,oBAAoB
|
|
1
|
+
{"version":3,"file":"prism-event-log.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-event-log.service.ts"],"names":[],"mappings":";AAEA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,qBACa,oBAAoB;IAC/B,QAAQ,CAAC,MAAM,0DAA+B;IAC9C,OAAO,CAAC,OAAO,CAAK;IAEpB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAOvC,KAAK,IAAI,IAAI;yCAXF,oBAAoB;;CAchC"}
|
|
@@ -7,20 +7,17 @@ export declare class PrismLayoutService {
|
|
|
7
7
|
readonly sidebarWidth: import("@angular/core").WritableSignal<number>;
|
|
8
8
|
readonly panelHeight: import("@angular/core").WritableSignal<number>;
|
|
9
9
|
readonly panelWidth: import("@angular/core").WritableSignal<number>;
|
|
10
|
-
readonly templatePopoverVisible: import("@angular/core").WritableSignal<boolean>;
|
|
11
10
|
constructor();
|
|
12
11
|
toggleSidebar(): void;
|
|
13
12
|
toggleAddons(): void;
|
|
14
13
|
toggleToolbar(): void;
|
|
15
14
|
toggleOrientation(): void;
|
|
16
|
-
toggleTemplatePopover(): void;
|
|
17
|
-
closeTemplatePopover(): void;
|
|
18
15
|
setSidebarWidth(px: number): void;
|
|
19
16
|
setPanelHeight(px: number): void;
|
|
20
17
|
setPanelWidth(px: number): void;
|
|
21
18
|
private loadFromStorage;
|
|
22
19
|
private saveToStorage;
|
|
23
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<PrismLayoutService, never>;
|
|
24
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
21
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
25
22
|
}
|
|
26
23
|
//# sourceMappingURL=prism-layout.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-layout.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-layout.service.ts"],"names":[],"mappings":";AAIA,qBACa,kBAAkB;IAC7B,QAAQ,CAAC,cAAc,kDAAgB;IACvC,QAAQ,CAAC,aAAa,kDAAgB;IACtC,QAAQ,CAAC,cAAc,kDAAgB;IACvC,QAAQ,CAAC,iBAAiB,6DAAwC;IAClE,QAAQ,CAAC,YAAY,iDAAe;IACpC,QAAQ,CAAC,WAAW,iDAAe;IACnC,QAAQ,CAAC,UAAU,iDAAe
|
|
1
|
+
{"version":3,"file":"prism-layout.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-layout.service.ts"],"names":[],"mappings":";AAIA,qBACa,kBAAkB;IAC7B,QAAQ,CAAC,cAAc,kDAAgB;IACvC,QAAQ,CAAC,aAAa,kDAAgB;IACtC,QAAQ,CAAC,cAAc,kDAAgB;IACvC,QAAQ,CAAC,iBAAiB,6DAAwC;IAClE,QAAQ,CAAC,YAAY,iDAAe;IACpC,QAAQ,CAAC,WAAW,iDAAe;IACnC,QAAQ,CAAC,UAAU,iDAAe;;IAMlC,aAAa,IAAI,IAAI;IAKrB,YAAY,IAAI,IAAI;IAKpB,aAAa,IAAI,IAAI;IAKrB,iBAAiB,IAAI,IAAI;IAKzB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKjC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKhC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK/B,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,aAAa;yCA1EV,kBAAkB;;CAsF9B"}
|