@ng-prism/core 21.12.0-beta.2 → 23.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -13
- package/dist/app/canvas/prism-canvas-bg-pill.component.js +1 -1
- package/dist/app/canvas/prism-canvas-rulers.component.js +5 -3
- package/dist/app/canvas/prism-canvas-toolbar.component.js +1 -1
- package/dist/app/canvas/prism-template-popover.component.js +7 -4
- package/dist/app/component-head/prism-component-head.component.js +20 -11
- package/dist/app/component-head/prism-stat.component.js +9 -5
- package/dist/app/component-header/prism-component-header.component.js +1 -1
- package/dist/app/controls/boolean-control.component.js +7 -4
- package/dist/app/controls/json-control.component.js +19 -10
- package/dist/app/controls/number-control.component.js +7 -4
- package/dist/app/controls/string-control.component.js +7 -4
- package/dist/app/controls/union-control.component.js +9 -5
- package/dist/app/directives/prism-resizer.directive.js +8 -4
- package/dist/app/header/prism-header-widget-host.component.js +5 -3
- package/dist/app/header/prism-header.component.d.ts.map +1 -1
- package/dist/app/header/prism-header.component.js +15 -10
- package/dist/app/icons/prism-icon.component.js +5 -3
- package/dist/app/layout-menu/prism-layout-menu.component.js +2 -1
- package/dist/app/page-renderer/prism-page-renderer.component.d.ts.map +1 -1
- package/dist/app/page-renderer/prism-page-renderer.component.js +13 -16
- package/dist/app/panels/a11y/a11y-audit.service.js +8 -4
- package/dist/app/panels/a11y/a11y-header-badge.component.js +3 -2
- package/dist/app/panels/a11y/a11y-keyboard-overlay.component.js +3 -2
- package/dist/app/panels/a11y/a11y-keyboard.component.js +3 -2
- package/dist/app/panels/a11y/a11y-overlay-host.component.js +11 -6
- package/dist/app/panels/a11y/a11y-panel-state.service.js +2 -1
- package/dist/app/panels/a11y/a11y-panel.component.js +7 -4
- package/dist/app/panels/a11y/a11y-perspective.service.js +2 -1
- package/dist/app/panels/a11y/a11y-score.component.js +7 -4
- package/dist/app/panels/a11y/a11y-sr-overlay.component.js +5 -3
- package/dist/app/panels/a11y/a11y-sr.component.js +3 -2
- package/dist/app/panels/a11y/a11y-tree.component.js +14 -8
- package/dist/app/panels/a11y/a11y-violations.component.d.ts +1 -1
- package/dist/app/panels/a11y/a11y-violations.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-violations.component.js +9 -11
- package/dist/app/panels/a11y/a11y.types.d.ts.map +1 -1
- package/dist/app/panels/controls/prism-controls-panel.component.js +3 -2
- package/dist/app/panels/events/prism-events-panel.component.js +3 -2
- package/dist/app/panels/events/prism-json-node.component.js +14 -7
- package/dist/app/panels/panel-host/prism-panel-host.component.js +15 -8
- package/dist/app/provide-prism.d.ts.map +1 -1
- package/dist/app/provide-prism.js +12 -3
- package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
- package/dist/app/renderer/prism-renderer.component.js +9 -6
- package/dist/app/services/prism-canvas.service.js +8 -4
- package/dist/app/services/prism-event-log.service.js +2 -1
- package/dist/app/services/prism-layout.service.js +16 -8
- package/dist/app/services/prism-manifest.service.js +10 -5
- package/dist/app/services/prism-navigation.service.d.ts.map +1 -1
- package/dist/app/services/prism-navigation.service.js +27 -19
- package/dist/app/services/prism-panel.service.js +6 -3
- package/dist/app/services/prism-plugin.service.js +14 -7
- package/dist/app/services/prism-renderer.service.js +10 -5
- package/dist/app/services/prism-search.service.js +6 -3
- package/dist/app/services/prism-theme.service.js +4 -2
- package/dist/app/services/prism-variant-bg.service.js +8 -4
- package/dist/app/shell/prism-shell.component.js +7 -4
- package/dist/app/sidebar/prism-sidebar.component.js +15 -8
- package/dist/app/variant-ribbon/prism-variant-ribbon.component.js +7 -4
- package/dist/app/view-tab-bar/prism-view-panel-host.component.js +8 -4
- package/dist/app/view-tab-bar/prism-view-tab-bar.component.js +2 -1
- package/dist/builder/a11y/a11y-report-reader.d.ts.map +1 -1
- package/dist/builder/a11y/a11y-report-reader.js +20 -4
- package/dist/builder/build/index.d.ts.map +1 -1
- package/dist/builder/build/index.js +11 -4
- package/dist/builder/build/schema.d.ts +1 -0
- package/dist/builder/build/schema.d.ts.map +1 -1
- package/dist/builder/manifest/runtime-manifest.generator.d.ts.map +1 -1
- package/dist/builder/manifest/runtime-manifest.generator.js +11 -3
- package/dist/builder/plugin-runner/plugin-runner.d.ts.map +1 -1
- package/dist/builder/serve/index.d.ts.map +1 -1
- package/dist/builder/serve/index.js +21 -6
- package/dist/builder/serve/schema.d.ts +1 -0
- package/dist/builder/serve/schema.d.ts.map +1 -1
- package/dist/builder/shared/prism-pipeline.d.ts +2 -0
- package/dist/builder/shared/prism-pipeline.d.ts.map +1 -1
- package/dist/builder/shared/prism-pipeline.js +3 -5
- package/dist/builder/shared/resolve-cache-dir.d.ts +8 -0
- package/dist/builder/shared/resolve-cache-dir.d.ts.map +1 -0
- package/dist/builder/shared/resolve-cache-dir.js +12 -0
- package/dist/decorator/index.d.ts +1 -1
- package/dist/decorator/index.d.ts.map +1 -1
- package/dist/decorator/showcase.decorator.d.ts.map +1 -1
- package/dist/decorator/showcase.types.d.ts.map +1 -1
- package/dist/schematics/migrations/v21-13-manifest-cache/index.d.ts +3 -0
- package/dist/schematics/migrations/v21-13-manifest-cache/index.d.ts.map +1 -0
- package/dist/schematics/migrations/v21-13-manifest-cache/index.js +103 -0
- package/dist/schematics/ng-add/index.d.ts.map +1 -1
- package/dist/schematics/ng-add/index.js +56 -39
- package/dist/schematics/utils/config-ast.d.ts +17 -0
- package/dist/schematics/utils/config-ast.d.ts.map +1 -0
- package/dist/schematics/utils/config-ast.js +118 -0
- package/dist/schematics/utils/index.d.ts +3 -0
- package/dist/schematics/utils/index.d.ts.map +1 -0
- package/dist/schematics/utils/index.js +2 -0
- package/dist/schematics/utils/tsconfig-paths.d.ts +8 -0
- package/dist/schematics/utils/tsconfig-paths.d.ts.map +1 -0
- package/dist/schematics/utils/tsconfig-paths.js +20 -0
- package/package.json +17 -6
- package/schematics/migrations.json +10 -0
- package/src/builder/build/schema.json +4 -0
- package/src/builder/serve/schema.json +4 -0
|
@@ -94,20 +94,16 @@ function A11yViolationsComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
94
94
|
i0.ɵɵrepeaterCreate(12, A11yViolationsComponent_Conditional_1_For_13_Template, 9, 6, "div", 10, _forTrack0, false, A11yViolationsComponent_Conditional_1_ForEmpty_14_Template, 1, 1);
|
|
95
95
|
i0.ɵɵelementEnd()();
|
|
96
96
|
} if (rf & 2) {
|
|
97
|
-
let tmp_2_0;
|
|
98
|
-
let tmp_3_0;
|
|
99
|
-
let tmp_4_0;
|
|
100
|
-
let tmp_5_0;
|
|
101
97
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
102
98
|
i0.ɵɵclassProp("a11y-body--loading", ctx_r0.auditService.running());
|
|
103
99
|
i0.ɵɵadvance(2);
|
|
104
|
-
i0.ɵɵproperty("score",
|
|
100
|
+
i0.ɵɵproperty("score", ctx_r0.scoreResult()?.score ?? 0);
|
|
105
101
|
i0.ɵɵadvance(4);
|
|
106
|
-
i0.ɵɵconditional(
|
|
102
|
+
i0.ɵɵconditional(ctx_r0.scoreResult()?.critical ? 6 : -1);
|
|
107
103
|
i0.ɵɵadvance();
|
|
108
|
-
i0.ɵɵconditional(
|
|
104
|
+
i0.ɵɵconditional(ctx_r0.scoreResult()?.moderate ? 7 : -1);
|
|
109
105
|
i0.ɵɵadvance(3);
|
|
110
|
-
i0.ɵɵtextInterpolate1("",
|
|
106
|
+
i0.ɵɵtextInterpolate1("", ctx_r0.scoreResult()?.passes ?? 0, " pass");
|
|
111
107
|
i0.ɵɵadvance(2);
|
|
112
108
|
i0.ɵɵrepeater(ctx_r0.allResults());
|
|
113
109
|
} }
|
|
@@ -133,7 +129,8 @@ function sevColor(impact) {
|
|
|
133
129
|
}
|
|
134
130
|
export class A11yViolationsComponent {
|
|
135
131
|
auditService = inject(A11yAuditService);
|
|
136
|
-
scoreResult = computed(() => this.auditService.scoreResult(),
|
|
132
|
+
scoreResult = computed(() => this.auditService.scoreResult(), /* @ts-ignore */
|
|
133
|
+
...(ngDevMode ? [{ debugName: "scoreResult" }] : /* istanbul ignore next */ []));
|
|
137
134
|
allResults = computed(() => {
|
|
138
135
|
const results = this.auditService.results();
|
|
139
136
|
if (!results)
|
|
@@ -142,7 +139,8 @@ export class A11yViolationsComponent {
|
|
|
142
139
|
(IMPACT_ORDER[b.impact ?? ''] ?? 4));
|
|
143
140
|
const passes = results.passes.slice(0, 4);
|
|
144
141
|
return [...violations, ...passes];
|
|
145
|
-
},
|
|
142
|
+
}, /* @ts-ignore */
|
|
143
|
+
...(ngDevMode ? [{ debugName: "allResults" }] : /* istanbul ignore next */ []));
|
|
146
144
|
sevColor(impact) {
|
|
147
145
|
return sevColor(impact);
|
|
148
146
|
}
|
|
@@ -151,7 +149,7 @@ export class A11yViolationsComponent {
|
|
|
151
149
|
i0.ɵɵconditionalCreate(0, A11yViolationsComponent_Conditional_0_Template, 2, 1, "div", 0)(1, A11yViolationsComponent_Conditional_1_Template, 15, 7, "div", 1)(2, A11yViolationsComponent_Conditional_2_Template, 2, 0, "div", 2);
|
|
152
150
|
} if (rf & 2) {
|
|
153
151
|
i0.ɵɵconditional(ctx.auditService.error() ? 0 : ctx.auditService.results() || ctx.auditService.running() ? 1 : 2);
|
|
154
|
-
} }, dependencies: [A11yScoreComponent], styles: ["[_nghost-%COMP%] { display: flex; flex-direction: column; height: 100%; overflow: auto; }\n\n .a11y-body[_ngcontent-%COMP%] {\n padding: 18px 20px;\n display: grid;\n grid-template-columns: 220px 1fr;\n gap: 20px;\n min-height: 0;\n }\n .a11y-body--loading[_ngcontent-%COMP%] { opacity: 0.55; transition: opacity var(--dur-base); }\n\n .score-wrap[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 10px;\n padding: 14px;\n background: var(--prism-bg-surface);\n border: 1px solid var(--prism-border);\n border-radius: 10px;\n align-self: start;\n }\n\n .score-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--prism-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.08em;\n font-weight: 600;\n }\n .score-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n margin-top: 2px;\n font-size: 11px;\n color: var(--prism-text-muted);\n }\n .score-meta[_ngcontent-%COMP%] span[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 4px; }\n .score-meta[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { width: 6px; height: 6px; border-radius: 50%; display: block; }\n\n .viol-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n min-width: 0;\n }\n\n .viol[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 10px 12px;\n background: var(--prism-bg-surface);\n border: 1px solid var(--prism-border);\n border-radius: 8px;\n border-left: 3px solid var(--sev-color, var(--prism-primary));\n transition: border-color var(--dur-fast);\n }\n .viol[_ngcontent-%COMP%]:hover { border-color: var(--prism-border-strong); }\n\n .viol-sev[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 9.5px;\n font-weight: 700;\n padding: 2px 6px;\n border-radius: var(--radius-xs);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n background: color-mix(in srgb, var(--sev-color) 15%, transparent);\n color: var(--sev-color);\n }\n\n .viol-text[_ngcontent-%COMP%] {\n font-size: 12.5px;\n color: var(--prism-text);\n min-width: 0;\n }\n .viol-text[_ngcontent-%COMP%] b[_ngcontent-%COMP%] {\n display: block;\n font-weight: 600;\n margin-bottom: 1px;\n }\n .viol-text[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n font-size: 11.5px;\n }\n\n .viol-rule[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 11px;\n color: var(--prism-text-ghost);\n padding: 2px 7px;\n background: var(--prism-input-bg);\n border-radius: var(--radius-xs);\n white-space: nowrap;\n }\n\n .a11y-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100px;\n color: var(--prism-text-muted);\n font-size: 13px;\n }\n .a11y-status--error[_ngcontent-%COMP%] { color: var(--prism-danger); }\n\n @media (max-width: 1100px) {\n .a11y-body[_ngcontent-%COMP%] { grid-template-columns: 1fr; }\n }"]
|
|
152
|
+
} }, dependencies: [A11yScoreComponent], styles: ["[_nghost-%COMP%] { display: flex; flex-direction: column; height: 100%; overflow: auto; }\n\n .a11y-body[_ngcontent-%COMP%] {\n padding: 18px 20px;\n display: grid;\n grid-template-columns: 220px 1fr;\n gap: 20px;\n min-height: 0;\n }\n .a11y-body--loading[_ngcontent-%COMP%] { opacity: 0.55; transition: opacity var(--dur-base); }\n\n .score-wrap[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 10px;\n padding: 14px;\n background: var(--prism-bg-surface);\n border: 1px solid var(--prism-border);\n border-radius: 10px;\n align-self: start;\n }\n\n .score-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--prism-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.08em;\n font-weight: 600;\n }\n .score-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n margin-top: 2px;\n font-size: 11px;\n color: var(--prism-text-muted);\n }\n .score-meta[_ngcontent-%COMP%] span[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 4px; }\n .score-meta[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { width: 6px; height: 6px; border-radius: 50%; display: block; }\n\n .viol-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n min-width: 0;\n }\n\n .viol[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 10px 12px;\n background: var(--prism-bg-surface);\n border: 1px solid var(--prism-border);\n border-radius: 8px;\n border-left: 3px solid var(--sev-color, var(--prism-primary));\n transition: border-color var(--dur-fast);\n }\n .viol[_ngcontent-%COMP%]:hover { border-color: var(--prism-border-strong); }\n\n .viol-sev[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 9.5px;\n font-weight: 700;\n padding: 2px 6px;\n border-radius: var(--radius-xs);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n background: color-mix(in srgb, var(--sev-color) 15%, transparent);\n color: var(--sev-color);\n }\n\n .viol-text[_ngcontent-%COMP%] {\n font-size: 12.5px;\n color: var(--prism-text);\n min-width: 0;\n }\n .viol-text[_ngcontent-%COMP%] b[_ngcontent-%COMP%] {\n display: block;\n font-weight: 600;\n margin-bottom: 1px;\n }\n .viol-text[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n font-size: 11.5px;\n }\n\n .viol-rule[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 11px;\n color: var(--prism-text-ghost);\n padding: 2px 7px;\n background: var(--prism-input-bg);\n border-radius: var(--radius-xs);\n white-space: nowrap;\n }\n\n .a11y-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100px;\n color: var(--prism-text-muted);\n font-size: 13px;\n }\n .a11y-status--error[_ngcontent-%COMP%] { color: var(--prism-danger); }\n\n @media (max-width: 1100px) {\n .a11y-body[_ngcontent-%COMP%] { grid-template-columns: 1fr; }\n }"] });
|
|
155
153
|
}
|
|
156
154
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yViolationsComponent, [{
|
|
157
155
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a11y.types.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,KAAK,EAAE,eAAe,GAAG;
|
|
1
|
+
{"version":3,"file":"a11y.types.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,KAAK,EAAE,eAAe,GAAG;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3B,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,6FAA6F;IAC7F,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACrC,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IACzC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -144,7 +144,8 @@ export class PrismControlsPanelComponent {
|
|
|
144
144
|
navigationService = inject(PrismNavigationService);
|
|
145
145
|
rendererService = inject(PrismRendererService);
|
|
146
146
|
pluginService = inject(PrismPluginService);
|
|
147
|
-
activeComponent = input(null,
|
|
147
|
+
activeComponent = input(null, /* @ts-ignore */
|
|
148
|
+
...(ngDevMode ? [{ debugName: "activeComponent" }] : /* istanbul ignore next */ []));
|
|
148
149
|
getCustomControl(input) {
|
|
149
150
|
return (this.pluginService.controls().find((ctrl) => ctrl.matchType(input)) ??
|
|
150
151
|
null);
|
|
@@ -169,7 +170,7 @@ export class PrismControlsPanelComponent {
|
|
|
169
170
|
StringControlComponent,
|
|
170
171
|
NumberControlComponent,
|
|
171
172
|
UnionControlComponent,
|
|
172
|
-
JsonControlComponent], styles: [".ctl-panel[_ngcontent-%COMP%] {\n overflow-y: auto;\n height: 100%;\n }\n\n .ctl-toolbar[_ngcontent-%COMP%] {\n position: sticky;\n top: 0;\n z-index: 2;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 20px;\n background: var(--prism-bg-elevated);\n border-bottom: 1px solid var(--prism-border);\n }\n .ctl-dirty-info[_ngcontent-%COMP%] {\n font-size: 11.5px;\n font-family: var(--font-mono);\n color: var(--prism-text-muted);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n }\n .ctl-dirty-dot[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--prism-primary);\n box-shadow: 0 0 6px color-mix(in srgb, var(--prism-primary) 60%, transparent);\n }\n .ctl-reset-btn[_ngcontent-%COMP%] {\n height: 24px;\n padding: 0 10px;\n border-radius: 5px;\n font-size: 11.5px;\n font-weight: 500;\n font-family: var(--font-sans);\n color: var(--prism-text-muted);\n background: transparent;\n border: 1px solid var(--prism-border);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n transition: color var(--dur-fast), background var(--dur-fast), border-color var(--dur-fast);\n }\n .ctl-reset-btn[_ngcontent-%COMP%]:hover {\n color: var(--prism-text);\n border-color: color-mix(in srgb, var(--prism-primary) 40%, var(--prism-border));\n background: color-mix(in srgb, var(--prism-primary) 8%, transparent);\n }\n .ctl-reset-btn[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 1px;\n }\n\n .ctl-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 180px 1fr;\n align-items: center;\n gap: 12px;\n padding: 8px 20px;\n min-height: 40px;\n border-bottom: 1px solid var(--prism-border);\n }\n .ctl-row[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--prism-primary) 3%, transparent);\n }\n\n .ctl-label[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n .ctl-name[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--prism-text);\n font-weight: 500;\n }\n .ctl-type[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 10.5px;\n color: var(--prism-text-ghost);\n }\n .ctl-type[_ngcontent-%COMP%] b[_ngcontent-%COMP%] {\n color: var(--prism-primary);\n font-weight: 500;\n }\n\n .ctl-input[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n }\n\n .ctl-empty[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n font-size: 13px;\n margin: 0;\n padding: 16px 20px;\n }"]
|
|
173
|
+
JsonControlComponent], styles: [".ctl-panel[_ngcontent-%COMP%] {\n overflow-y: auto;\n height: 100%;\n }\n\n .ctl-toolbar[_ngcontent-%COMP%] {\n position: sticky;\n top: 0;\n z-index: 2;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 20px;\n background: var(--prism-bg-elevated);\n border-bottom: 1px solid var(--prism-border);\n }\n .ctl-dirty-info[_ngcontent-%COMP%] {\n font-size: 11.5px;\n font-family: var(--font-mono);\n color: var(--prism-text-muted);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n }\n .ctl-dirty-dot[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--prism-primary);\n box-shadow: 0 0 6px color-mix(in srgb, var(--prism-primary) 60%, transparent);\n }\n .ctl-reset-btn[_ngcontent-%COMP%] {\n height: 24px;\n padding: 0 10px;\n border-radius: 5px;\n font-size: 11.5px;\n font-weight: 500;\n font-family: var(--font-sans);\n color: var(--prism-text-muted);\n background: transparent;\n border: 1px solid var(--prism-border);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n transition: color var(--dur-fast), background var(--dur-fast), border-color var(--dur-fast);\n }\n .ctl-reset-btn[_ngcontent-%COMP%]:hover {\n color: var(--prism-text);\n border-color: color-mix(in srgb, var(--prism-primary) 40%, var(--prism-border));\n background: color-mix(in srgb, var(--prism-primary) 8%, transparent);\n }\n .ctl-reset-btn[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 1px;\n }\n\n .ctl-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 180px 1fr;\n align-items: center;\n gap: 12px;\n padding: 8px 20px;\n min-height: 40px;\n border-bottom: 1px solid var(--prism-border);\n }\n .ctl-row[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--prism-primary) 3%, transparent);\n }\n\n .ctl-label[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n .ctl-name[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--prism-text);\n font-weight: 500;\n }\n .ctl-type[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 10.5px;\n color: var(--prism-text-ghost);\n }\n .ctl-type[_ngcontent-%COMP%] b[_ngcontent-%COMP%] {\n color: var(--prism-primary);\n font-weight: 500;\n }\n\n .ctl-input[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n }\n\n .ctl-empty[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n font-size: 13px;\n margin: 0;\n padding: 16px 20px;\n }"] });
|
|
173
174
|
}
|
|
174
175
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismControlsPanelComponent, [{
|
|
175
176
|
type: Component,
|
|
@@ -36,7 +36,8 @@ function PrismEventsPanelComponent_ForEmpty_4_Template(rf, ctx) { if (rf & 1) {
|
|
|
36
36
|
} }
|
|
37
37
|
export class PrismEventsPanelComponent {
|
|
38
38
|
eventLogService = inject(PrismEventLogService);
|
|
39
|
-
activeComponent = input(null,
|
|
39
|
+
activeComponent = input(null, /* @ts-ignore */
|
|
40
|
+
...(ngDevMode ? [{ debugName: "activeComponent" }] : /* istanbul ignore next */ []));
|
|
40
41
|
formatTime(ts) {
|
|
41
42
|
const d = new Date(ts);
|
|
42
43
|
return d.toLocaleTimeString('en-US', {
|
|
@@ -55,7 +56,7 @@ export class PrismEventsPanelComponent {
|
|
|
55
56
|
} if (rf & 2) {
|
|
56
57
|
i0.ɵɵadvance(2);
|
|
57
58
|
i0.ɵɵrepeater(ctx.eventLogService.events());
|
|
58
|
-
} }, dependencies: [PrismJsonNodeComponent], styles: [".ev-panel[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .ev-body[_ngcontent-%COMP%] {\n padding: 6px 0;\n overflow-y: auto;\n flex: 1;\n }\n\n .ev[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto auto 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 6px 20px;\n font-family: var(--font-mono);\n font-size: 12px;\n border-bottom: 1px solid var(--prism-border);\n min-height: 32px;\n }\n .ev[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--prism-primary) 3%, transparent);\n }\n\n .ev-time[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n font-size: 11px;\n }\n .ev-idx[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n font-size: 11px;\n }\n .ev-name[_ngcontent-%COMP%] {\n color: var(--prism-primary);\n font-weight: 500;\n }\n .ev-args[_ngcontent-%COMP%] {\n color: var(--prism-text-2);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .ev-empty[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n font-size: 13px;\n padding: 16px 20px;\n margin: 0;\n }"]
|
|
59
|
+
} }, dependencies: [PrismJsonNodeComponent], styles: [".ev-panel[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .ev-body[_ngcontent-%COMP%] {\n padding: 6px 0;\n overflow-y: auto;\n flex: 1;\n }\n\n .ev[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto auto 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 6px 20px;\n font-family: var(--font-mono);\n font-size: 12px;\n border-bottom: 1px solid var(--prism-border);\n min-height: 32px;\n }\n .ev[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--prism-primary) 3%, transparent);\n }\n\n .ev-time[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n font-size: 11px;\n }\n .ev-idx[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n font-size: 11px;\n }\n .ev-name[_ngcontent-%COMP%] {\n color: var(--prism-primary);\n font-weight: 500;\n }\n .ev-args[_ngcontent-%COMP%] {\n color: var(--prism-text-2);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .ev-empty[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n font-size: 13px;\n padding: 16px 20px;\n margin: 0;\n }"] });
|
|
59
60
|
}
|
|
60
61
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismEventsPanelComponent, [{
|
|
61
62
|
type: Component,
|
|
@@ -226,12 +226,16 @@ function getType(val) {
|
|
|
226
226
|
return typeof val;
|
|
227
227
|
}
|
|
228
228
|
export class PrismJsonNodeComponent {
|
|
229
|
-
value = input(undefined,
|
|
230
|
-
|
|
229
|
+
value = input(undefined, /* @ts-ignore */
|
|
230
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
231
|
+
depth = input(0, /* @ts-ignore */
|
|
232
|
+
...(ngDevMode ? [{ debugName: "depth" }] : /* istanbul ignore next */ []));
|
|
231
233
|
maxDepth = MAX_DEPTH;
|
|
232
234
|
self = PrismJsonNodeComponent;
|
|
233
|
-
type = computed(() => getType(this.value()),
|
|
234
|
-
|
|
235
|
+
type = computed(() => getType(this.value()), /* @ts-ignore */
|
|
236
|
+
...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
|
|
237
|
+
expanded = signal(false, /* @ts-ignore */
|
|
238
|
+
...(ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []));
|
|
235
239
|
entries = computed(() => {
|
|
236
240
|
const v = this.value();
|
|
237
241
|
if (typeof v !== 'object' || v === null || Array.isArray(v))
|
|
@@ -244,12 +248,15 @@ export class PrismJsonNodeComponent {
|
|
|
244
248
|
catch {
|
|
245
249
|
return [];
|
|
246
250
|
}
|
|
247
|
-
},
|
|
251
|
+
}, /* @ts-ignore */
|
|
252
|
+
...(ngDevMode ? [{ debugName: "entries" }] : /* istanbul ignore next */ []));
|
|
248
253
|
items = computed(() => {
|
|
249
254
|
const v = this.value();
|
|
250
255
|
return Array.isArray(v) ? v : [];
|
|
251
|
-
},
|
|
252
|
-
|
|
256
|
+
}, /* @ts-ignore */
|
|
257
|
+
...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
258
|
+
summary = computed(() => summarizeValue(this.value()), /* @ts-ignore */
|
|
259
|
+
...(ngDevMode ? [{ debugName: "summary" }] : /* istanbul ignore next */ []));
|
|
253
260
|
toggle() {
|
|
254
261
|
this.expanded.update((v) => !v);
|
|
255
262
|
}
|
|
@@ -67,18 +67,21 @@ export class PrismPanelHostComponent {
|
|
|
67
67
|
envInjector = inject(EnvironmentInjector);
|
|
68
68
|
auditService = inject(A11yAuditService);
|
|
69
69
|
rendererService = inject(PrismRendererService);
|
|
70
|
-
a11yScore = computed(() => this.auditService.scoreResult()?.score ?? null,
|
|
70
|
+
a11yScore = computed(() => this.auditService.scoreResult()?.score ?? null, /* @ts-ignore */
|
|
71
|
+
...(ngDevMode ? [{ debugName: "a11yScore" }] : /* istanbul ignore next */ []));
|
|
71
72
|
coverageScore = computed(() => {
|
|
72
73
|
const comp = this.nav.activeComponent();
|
|
73
74
|
const coverage = comp?.meta?.showcaseConfig?.meta?.['coverage'];
|
|
74
75
|
if (!coverage?.found)
|
|
75
76
|
return null;
|
|
76
77
|
return coverage.score;
|
|
77
|
-
},
|
|
78
|
+
}, /* @ts-ignore */
|
|
79
|
+
...(ngDevMode ? [{ debugName: "coverageScore" }] : /* istanbul ignore next */ []));
|
|
78
80
|
inputCount = computed(() => {
|
|
79
81
|
const comp = this.nav.activeComponent();
|
|
80
82
|
return comp?.meta.inputs.length ?? 0;
|
|
81
|
-
},
|
|
83
|
+
}, /* @ts-ignore */
|
|
84
|
+
...(ngDevMode ? [{ debugName: "inputCount" }] : /* istanbul ignore next */ []));
|
|
82
85
|
panelBadge(panelId) {
|
|
83
86
|
if (panelId === 'controls') {
|
|
84
87
|
const count = this.inputCount();
|
|
@@ -114,13 +117,17 @@ export class PrismPanelHostComponent {
|
|
|
114
117
|
if (!comp)
|
|
115
118
|
return panels;
|
|
116
119
|
return panels.filter((p) => !p.isVisible || p.isVisible(comp));
|
|
117
|
-
},
|
|
120
|
+
}, /* @ts-ignore */
|
|
121
|
+
...(ngDevMode ? [{ debugName: "allPanels" }] : /* istanbul ignore next */ []));
|
|
118
122
|
panelInputs = computed(() => ({
|
|
119
123
|
activeComponent: this.nav.activeComponent(),
|
|
120
|
-
}),
|
|
124
|
+
}), /* @ts-ignore */
|
|
125
|
+
...(ngDevMode ? [{ debugName: "panelInputs" }] : /* istanbul ignore next */ []));
|
|
121
126
|
lazyCache = new Map();
|
|
122
|
-
renderedPanels = signal(new Map(),
|
|
123
|
-
|
|
127
|
+
renderedPanels = signal(new Map(), /* @ts-ignore */
|
|
128
|
+
...(ngDevMode ? [{ debugName: "renderedPanels" }] : /* istanbul ignore next */ []));
|
|
129
|
+
renderedPanelsArray = computed(() => Array.from(this.renderedPanels().values()), /* @ts-ignore */
|
|
130
|
+
...(ngDevMode ? [{ debugName: "renderedPanelsArray" }] : /* istanbul ignore next */ []));
|
|
124
131
|
constructor() {
|
|
125
132
|
effect(() => {
|
|
126
133
|
const element = this.rendererService.renderedElement();
|
|
@@ -214,7 +221,7 @@ export class PrismPanelHostComponent {
|
|
|
214
221
|
i0.ɵɵproperty("id", "panel-" + ctx.panelService.activePanelId());
|
|
215
222
|
i0.ɵɵadvance();
|
|
216
223
|
i0.ɵɵrepeater(ctx.renderedPanelsArray());
|
|
217
|
-
} }, dependencies: [NgComponentOutlet, PrismIconComponent], styles: [".panel[_ngcontent-%COMP%] {\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[_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(--prism-border);\n background: var(--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(--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[_ngcontent-%COMP%]:hover { color: var(--prism-text-2); }\n .p-tab--active[_ngcontent-%COMP%] { color: var(--prism-text); }\n .p-tab--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(--prism-primary-from), var(--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(--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.ok[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-success) 18%, transparent);\n color: var(--prism-success);\n }\n .p-tab-badge.warn[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-warn) 18%, transparent);\n color: var(--prism-warn);\n }\n .p-tab-badge.danger[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-danger) 18%, transparent);\n color: var(--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(--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[_ngcontent-%COMP%]:hover {\n background: var(--prism-input-bg);\n color: var(--prism-text);\n }\n\n .panel-body[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--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(--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(--prism-primary);\n outline-offset: 2px;\n }"]
|
|
224
|
+
} }, dependencies: [NgComponentOutlet, PrismIconComponent], styles: [".panel[_ngcontent-%COMP%] {\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[_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(--prism-border);\n background: var(--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(--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[_ngcontent-%COMP%]:hover { color: var(--prism-text-2); }\n .p-tab--active[_ngcontent-%COMP%] { color: var(--prism-text); }\n .p-tab--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(--prism-primary-from), var(--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(--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.ok[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-success) 18%, transparent);\n color: var(--prism-success);\n }\n .p-tab-badge.warn[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-warn) 18%, transparent);\n color: var(--prism-warn);\n }\n .p-tab-badge.danger[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-danger) 18%, transparent);\n color: var(--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(--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[_ngcontent-%COMP%]:hover {\n background: var(--prism-input-bg);\n color: var(--prism-text);\n }\n\n .panel-body[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--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(--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(--prism-primary);\n outline-offset: 2px;\n }"] });
|
|
218
225
|
}
|
|
219
226
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismPanelHostComponent, [{
|
|
220
227
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provide-prism.d.ts","sourceRoot":"","sources":["../../src/app/provide-prism.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"provide-prism.d.ts","sourceRoot":"","sources":["../../src/app/provide-prism.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAStE,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACzC;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,eAAe,EACzB,MAAM,CAAC,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,oBAAoB,CAuCtB"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
import { makeEnvironmentProviders } from '@angular/core';
|
|
1
|
+
import { makeEnvironmentProviders, } from '@angular/core';
|
|
2
2
|
import { provideHighlightOptions } from 'ngx-highlightjs';
|
|
3
3
|
import { componentPage } from '../plugin/page-helpers.js';
|
|
4
4
|
import { BUILTIN_PANELS } from './panels/builtin-panels.js';
|
|
5
5
|
import { PRISM_BUILTIN_PANELS, PRISM_CONFIG, PRISM_MANIFEST, } from './tokens/prism-tokens.js';
|
|
6
6
|
export function providePrism(manifest, config, options) {
|
|
7
7
|
const mergedManifest = options?.componentPages?.length
|
|
8
|
-
? {
|
|
8
|
+
? {
|
|
9
|
+
...manifest,
|
|
10
|
+
pages: [
|
|
11
|
+
...(manifest.pages ?? []),
|
|
12
|
+
...options.componentPages.map((o) => componentPage(o)),
|
|
13
|
+
],
|
|
14
|
+
}
|
|
9
15
|
: manifest;
|
|
10
16
|
// Exposes a thin discovery view of the manifest to external audit tooling.
|
|
11
17
|
// We intentionally only expose className + variant info — no Angular type references.
|
|
@@ -13,7 +19,10 @@ export function providePrism(manifest, config, options) {
|
|
|
13
19
|
globalThis['__PRISM_MANIFEST__'] = {
|
|
14
20
|
components: mergedManifest.components.map((c) => ({
|
|
15
21
|
className: c.meta.className,
|
|
16
|
-
variants: c.meta.showcaseConfig.variants?.map((v, i) => ({
|
|
22
|
+
variants: c.meta.showcaseConfig.variants?.map((v, i) => ({
|
|
23
|
+
name: v.name,
|
|
24
|
+
index: i,
|
|
25
|
+
})) ?? [{ name: 'Default', index: 0 }],
|
|
17
26
|
})),
|
|
18
27
|
pages: (mergedManifest.pages ?? []).map((p) => ({ title: p.title })),
|
|
19
28
|
};
|
|
@@ -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,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;;AAIhF,
|
|
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,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;;AAIhF,qBAkJa,sBAAsB;IACjC,SAAS,CAAC,QAAQ,CAAC,IAAI,OAAQ;IAC/B,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,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,SAAS,CAAC,QAAQ,CAAC,aAAa;;MAA6C;IAC7E,SAAS,CAAC,QAAQ,CAAC,eAAe,yFAG/B;;IA0FH,OAAO,CAAC,eAAe;IA6FvB,OAAO,CAAC,OAAO;yCAlOJ,sBAAsB;2CAAtB,sBAAsB;CAgPlC"}
|
|
@@ -47,7 +47,8 @@ export class PrismRendererComponent {
|
|
|
47
47
|
lastProjectedContent = undefined;
|
|
48
48
|
isRenderPage = false;
|
|
49
49
|
overlayCache = new Map();
|
|
50
|
-
activeOverlay = signal(null,
|
|
50
|
+
activeOverlay = signal(null, /* @ts-ignore */
|
|
51
|
+
...(ngDevMode ? [{ debugName: "activeOverlay" }] : /* istanbul ignore next */ []));
|
|
51
52
|
/** Identifier of the currently rendered component/variant (for audit tooling / e2e). */
|
|
52
53
|
renderedKey = computed(() => {
|
|
53
54
|
const el = this.rendererService.renderedElement();
|
|
@@ -57,12 +58,14 @@ export class PrismRendererComponent {
|
|
|
57
58
|
if (!comp)
|
|
58
59
|
return null;
|
|
59
60
|
return `${comp.meta.className}:${this.rendererService.activeVariantIndex()}`;
|
|
60
|
-
},
|
|
61
|
+
}, /* @ts-ignore */
|
|
62
|
+
...(ngDevMode ? [{ debugName: "renderedKey" }] : /* istanbul ignore next */ []));
|
|
61
63
|
overlayInputs = { rendererService: this.rendererService };
|
|
62
64
|
overlayInjector = computed(() => {
|
|
63
65
|
const panelInjector = this.panelService.activePanelInjector();
|
|
64
66
|
return panelInjector ?? this.injector;
|
|
65
|
-
},
|
|
67
|
+
}, /* @ts-ignore */
|
|
68
|
+
...(ngDevMode ? [{ debugName: "overlayInjector" }] : /* istanbul ignore next */ []));
|
|
66
69
|
constructor() {
|
|
67
70
|
effect(() => {
|
|
68
71
|
const comp = this.navigationService.activeComponent();
|
|
@@ -239,7 +242,7 @@ export class PrismRendererComponent {
|
|
|
239
242
|
i0.ɵɵconditional(ctx.activeOverlay() ? 10 : -1);
|
|
240
243
|
} }, dependencies: [PrismCanvasRulersComponent,
|
|
241
244
|
PrismCanvasBgPillComponent,
|
|
242
|
-
NgComponentOutlet], styles: ["[_nghost-%COMP%] { display: block; min-height: 0; flex: 1; }\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(--prism-bg-surface);\n background-image: radial-gradient(circle, var(--prism-dot) 1px, transparent 1px);\n background-size: 20px 20px;\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][_ngcontent-%COMP%] {\n --prism-canvas-overlay-top: 28px;\n --prism-canvas-overlay-inline: 28px;\n }\n\n .prism-canvas-stage[data-bg=\"plain\"][_ngcontent-%COMP%] {\n background-image: none;\n }\n .prism-canvas-stage[data-bg=\"light\"][_ngcontent-%COMP%] {\n background-color: var(--prism-void-light, #f7f5fc);\n background-image: radial-gradient(circle, color-mix(in srgb, var(--prism-primary-from) 15%, transparent) 1px, transparent 1px);\n }\n .prism-canvas-stage[data-bg=\"dark\"][_ngcontent-%COMP%] {\n background-color: var(--prism-void-dark, #07050f);\n background-image: radial-gradient(circle, color-mix(in srgb, var(--prism-primary) 18%, transparent) 1px, transparent 1px);\n }\n .prism-canvas-stage[data-bg=\"checker\"][_ngcontent-%COMP%] {\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\n .stage-crosshair[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n opacity: 0;\n transition: opacity var(--dur-base);\n }\n .stage-crosshair.visible[_ngcontent-%COMP%] { opacity: 1; }\n .stage-crosshair[_ngcontent-%COMP%]::before, \n .stage-crosshair[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n background: color-mix(in srgb, var(--prism-primary) 20%, transparent);\n }\n .stage-crosshair[_ngcontent-%COMP%]::before { left: 0; right: 0; top: 50%; height: 1px; }\n .stage-crosshair[_ngcontent-%COMP%]::after { top: 0; bottom: 0; left: 50%; width: 1px; }\n\n .canvas-badges[_ngcontent-%COMP%] {\n position: absolute;\n top: var(--prism-canvas-overlay-top);\n left: var(--prism-canvas-overlay-inline);\n display: flex;\n gap: 6px;\n pointer-events: none;\n transition: top var(--dur-base), left var(--dur-base);\n }\n .c-badge[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n padding: 3px 7px;\n border-radius: 4px;\n background: color-mix(in srgb, var(--prism-bg-elevated) 90%, transparent);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n backdrop-filter: blur(8px);\n }\n\n .demo-wrap[_ngcontent-%COMP%] {\n position: relative;\n transform: scale(var(--zoom, 1));\n transition: transform 0.18s;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n max-width: 600px;\n }"]
|
|
245
|
+
NgComponentOutlet], styles: ["[_nghost-%COMP%] { display: block; min-height: 0; flex: 1; }\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(--prism-bg-surface);\n background-image: radial-gradient(circle, var(--prism-dot) 1px, transparent 1px);\n background-size: 20px 20px;\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][_ngcontent-%COMP%] {\n --prism-canvas-overlay-top: 28px;\n --prism-canvas-overlay-inline: 28px;\n }\n\n .prism-canvas-stage[data-bg=\"plain\"][_ngcontent-%COMP%] {\n background-image: none;\n }\n .prism-canvas-stage[data-bg=\"light\"][_ngcontent-%COMP%] {\n background-color: var(--prism-void-light, #f7f5fc);\n background-image: radial-gradient(circle, color-mix(in srgb, var(--prism-primary-from) 15%, transparent) 1px, transparent 1px);\n }\n .prism-canvas-stage[data-bg=\"dark\"][_ngcontent-%COMP%] {\n background-color: var(--prism-void-dark, #07050f);\n background-image: radial-gradient(circle, color-mix(in srgb, var(--prism-primary) 18%, transparent) 1px, transparent 1px);\n }\n .prism-canvas-stage[data-bg=\"checker\"][_ngcontent-%COMP%] {\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\n .stage-crosshair[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n opacity: 0;\n transition: opacity var(--dur-base);\n }\n .stage-crosshair.visible[_ngcontent-%COMP%] { opacity: 1; }\n .stage-crosshair[_ngcontent-%COMP%]::before, \n .stage-crosshair[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n background: color-mix(in srgb, var(--prism-primary) 20%, transparent);\n }\n .stage-crosshair[_ngcontent-%COMP%]::before { left: 0; right: 0; top: 50%; height: 1px; }\n .stage-crosshair[_ngcontent-%COMP%]::after { top: 0; bottom: 0; left: 50%; width: 1px; }\n\n .canvas-badges[_ngcontent-%COMP%] {\n position: absolute;\n top: var(--prism-canvas-overlay-top);\n left: var(--prism-canvas-overlay-inline);\n display: flex;\n gap: 6px;\n pointer-events: none;\n transition: top var(--dur-base), left var(--dur-base);\n }\n .c-badge[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n padding: 3px 7px;\n border-radius: 4px;\n background: color-mix(in srgb, var(--prism-bg-elevated) 90%, transparent);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n backdrop-filter: blur(8px);\n }\n\n .demo-wrap[_ngcontent-%COMP%] {\n position: relative;\n transform: scale(var(--zoom, 1));\n transition: transform 0.18s;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n max-width: 600px;\n\n > * {\n flex: 1 1 auto;\n text-align: center;\n }\n }"] });
|
|
243
246
|
}
|
|
244
247
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismRendererComponent, [{
|
|
245
248
|
type: Component,
|
|
@@ -282,11 +285,11 @@ export class PrismRendererComponent {
|
|
|
282
285
|
}
|
|
283
286
|
</div>
|
|
284
287
|
</div>
|
|
285
|
-
`, styles: ["\n :host { display: block; min-height: 0; flex: 1; }\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-bg-surface);\n background-image: radial-gradient(circle, var(--prism-dot) 1px, transparent 1px);\n background-size: 20px 20px;\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 .prism-canvas-stage[data-bg=\"plain\"] {\n background-image: none;\n }\n .prism-canvas-stage[data-bg=\"light\"] {\n background-color: var(--prism-void-light, #f7f5fc);\n background-image: radial-gradient(circle, color-mix(in srgb, var(--prism-primary-from) 15%, transparent) 1px, transparent 1px);\n }\n .prism-canvas-stage[data-bg=\"dark\"] {\n background-color: var(--prism-void-dark, #07050f);\n background-image: radial-gradient(circle, color-mix(in srgb, var(--prism-primary) 18%, transparent) 1px, transparent 1px);\n }\n .prism-canvas-stage[data-bg=\"checker\"] {\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\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 { opacity: 1; }\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 { left: 0; right: 0; top: 50%; height: 1px; }\n .stage-crosshair::after { top: 0; bottom: 0; left: 50%; width: 1px; }\n\n .canvas-badges {\n position: absolute;\n top: var(--prism-canvas-overlay-top);\n left: var(--prism-canvas-overlay-inline);\n display: flex;\n gap: 6px;\n pointer-events: none;\n transition: top var(--dur-base), left var(--dur-base);\n }\n .c-badge {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n padding: 3px 7px;\n border-radius: 4px;\n background: color-mix(in srgb, var(--prism-bg-elevated) 90%, transparent);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n backdrop-filter: blur(8px);\n }\n\n .demo-wrap {\n position: relative;\n transform: scale(var(--zoom, 1));\n transition: transform 0.18s;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n max-width: 600px;\n }\n\n "] }]
|
|
288
|
+
`, styles: ["\n :host { display: block; min-height: 0; flex: 1; }\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-bg-surface);\n background-image: radial-gradient(circle, var(--prism-dot) 1px, transparent 1px);\n background-size: 20px 20px;\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 .prism-canvas-stage[data-bg=\"plain\"] {\n background-image: none;\n }\n .prism-canvas-stage[data-bg=\"light\"] {\n background-color: var(--prism-void-light, #f7f5fc);\n background-image: radial-gradient(circle, color-mix(in srgb, var(--prism-primary-from) 15%, transparent) 1px, transparent 1px);\n }\n .prism-canvas-stage[data-bg=\"dark\"] {\n background-color: var(--prism-void-dark, #07050f);\n background-image: radial-gradient(circle, color-mix(in srgb, var(--prism-primary) 18%, transparent) 1px, transparent 1px);\n }\n .prism-canvas-stage[data-bg=\"checker\"] {\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\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 { opacity: 1; }\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 { left: 0; right: 0; top: 50%; height: 1px; }\n .stage-crosshair::after { top: 0; bottom: 0; left: 50%; width: 1px; }\n\n .canvas-badges {\n position: absolute;\n top: var(--prism-canvas-overlay-top);\n left: var(--prism-canvas-overlay-inline);\n display: flex;\n gap: 6px;\n pointer-events: none;\n transition: top var(--dur-base), left var(--dur-base);\n }\n .c-badge {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n padding: 3px 7px;\n border-radius: 4px;\n background: color-mix(in srgb, var(--prism-bg-elevated) 90%, transparent);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n backdrop-filter: blur(8px);\n }\n\n .demo-wrap {\n position: relative;\n transform: scale(var(--zoom, 1));\n transition: transform 0.18s;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n max-width: 600px;\n\n > * {\n flex: 1 1 auto;\n text-align: center;\n }\n }\n\n "] }]
|
|
286
289
|
}], () => [], { outlet: [{ type: i0.ViewChild, args: ['outlet', { ...{
|
|
287
290
|
read: ViewContainerRef,
|
|
288
291
|
}, isSignal: true }] }] }); })();
|
|
289
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismRendererComponent, { className: "PrismRendererComponent", filePath: "app/renderer/prism-renderer.component.ts", lineNumber:
|
|
292
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismRendererComponent, { className: "PrismRendererComponent", filePath: "app/renderer/prism-renderer.component.ts", lineNumber: 183 }); })();
|
|
290
293
|
function parseContentToNodes(content) {
|
|
291
294
|
if (typeof content === 'string') {
|
|
292
295
|
return [htmlToNodes(content)];
|
|
@@ -3,10 +3,14 @@ import { CANVAS_BGS } from '../../shared/canvas-bg.type.js';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
const STORAGE_KEY = 'ng-prism-canvas';
|
|
5
5
|
export class PrismCanvasService {
|
|
6
|
-
bg = signal('dots',
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
bg = signal('dots', /* @ts-ignore */
|
|
7
|
+
...(ngDevMode ? [{ debugName: "bg" }] : /* istanbul ignore next */ []));
|
|
8
|
+
zoom = signal(1, /* @ts-ignore */
|
|
9
|
+
...(ngDevMode ? [{ debugName: "zoom" }] : /* istanbul ignore next */ []));
|
|
10
|
+
guides = signal(false, /* @ts-ignore */
|
|
11
|
+
...(ngDevMode ? [{ debugName: "guides" }] : /* istanbul ignore next */ []));
|
|
12
|
+
rulers = signal(false, /* @ts-ignore */
|
|
13
|
+
...(ngDevMode ? [{ debugName: "rulers" }] : /* istanbul ignore next */ []));
|
|
10
14
|
constructor() {
|
|
11
15
|
this.loadFromStorage();
|
|
12
16
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Injectable, signal } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class PrismEventLogService {
|
|
4
|
-
events = signal([],
|
|
4
|
+
events = signal([], /* @ts-ignore */
|
|
5
|
+
...(ngDevMode ? [{ debugName: "events" }] : /* istanbul ignore next */ []));
|
|
5
6
|
_nextId = 0;
|
|
6
7
|
log(name, value) {
|
|
7
8
|
this.events.update((prev) => [
|
|
@@ -2,14 +2,22 @@ import { Injectable, signal } from '@angular/core';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
const STORAGE_KEY = 'ng-prism-layout';
|
|
4
4
|
export class PrismLayoutService {
|
|
5
|
-
sidebarVisible = signal(true,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
sidebarVisible = signal(true, /* @ts-ignore */
|
|
6
|
+
...(ngDevMode ? [{ debugName: "sidebarVisible" }] : /* istanbul ignore next */ []));
|
|
7
|
+
addonsVisible = signal(true, /* @ts-ignore */
|
|
8
|
+
...(ngDevMode ? [{ debugName: "addonsVisible" }] : /* istanbul ignore next */ []));
|
|
9
|
+
toolbarVisible = signal(true, /* @ts-ignore */
|
|
10
|
+
...(ngDevMode ? [{ debugName: "toolbarVisible" }] : /* istanbul ignore next */ []));
|
|
11
|
+
addonsOrientation = signal('bottom', /* @ts-ignore */
|
|
12
|
+
...(ngDevMode ? [{ debugName: "addonsOrientation" }] : /* istanbul ignore next */ []));
|
|
13
|
+
sidebarWidth = signal(280, /* @ts-ignore */
|
|
14
|
+
...(ngDevMode ? [{ debugName: "sidebarWidth" }] : /* istanbul ignore next */ []));
|
|
15
|
+
panelHeight = signal(300, /* @ts-ignore */
|
|
16
|
+
...(ngDevMode ? [{ debugName: "panelHeight" }] : /* istanbul ignore next */ []));
|
|
17
|
+
panelWidth = signal(320, /* @ts-ignore */
|
|
18
|
+
...(ngDevMode ? [{ debugName: "panelWidth" }] : /* istanbul ignore next */ []));
|
|
19
|
+
templatePopoverVisible = signal(false, /* @ts-ignore */
|
|
20
|
+
...(ngDevMode ? [{ debugName: "templatePopoverVisible" }] : /* istanbul ignore next */ []));
|
|
13
21
|
constructor() {
|
|
14
22
|
this.loadFromStorage();
|
|
15
23
|
}
|
|
@@ -2,10 +2,13 @@ import { computed, inject, Injectable, signal } from '@angular/core';
|
|
|
2
2
|
import { PRISM_MANIFEST } from '../tokens/prism-tokens.js';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class PrismManifestService {
|
|
5
|
-
_manifest = signal(inject(PRISM_MANIFEST),
|
|
5
|
+
_manifest = signal(inject(PRISM_MANIFEST), /* @ts-ignore */
|
|
6
|
+
...(ngDevMode ? [{ debugName: "_manifest" }] : /* istanbul ignore next */ []));
|
|
6
7
|
manifest = this._manifest.asReadonly();
|
|
7
|
-
components = computed(() => this._manifest().components,
|
|
8
|
-
|
|
8
|
+
components = computed(() => this._manifest().components, /* @ts-ignore */
|
|
9
|
+
...(ngDevMode ? [{ debugName: "components" }] : /* istanbul ignore next */ []));
|
|
10
|
+
pages = computed(() => this._manifest().pages ?? [], /* @ts-ignore */
|
|
11
|
+
...(ngDevMode ? [{ debugName: "pages" }] : /* istanbul ignore next */ []));
|
|
9
12
|
categories = computed(() => {
|
|
10
13
|
const manifest = this._manifest();
|
|
11
14
|
const orderMap = new Map();
|
|
@@ -29,7 +32,8 @@ export class PrismManifestService {
|
|
|
29
32
|
return orderA - orderB;
|
|
30
33
|
return a.localeCompare(b);
|
|
31
34
|
});
|
|
32
|
-
},
|
|
35
|
+
}, /* @ts-ignore */
|
|
36
|
+
...(ngDevMode ? [{ debugName: "categories" }] : /* istanbul ignore next */ []));
|
|
33
37
|
groupedByCategory = computed(() => {
|
|
34
38
|
const manifest = this._manifest();
|
|
35
39
|
const map = new Map();
|
|
@@ -40,7 +44,8 @@ export class PrismManifestService {
|
|
|
40
44
|
map.set(cat, list);
|
|
41
45
|
}
|
|
42
46
|
return map;
|
|
43
|
-
},
|
|
47
|
+
}, /* @ts-ignore */
|
|
48
|
+
...(ngDevMode ? [{ debugName: "groupedByCategory" }] : /* istanbul ignore next */ []));
|
|
44
49
|
updateManifest(manifest) {
|
|
45
50
|
this._manifest.set(manifest);
|
|
46
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-navigation.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-navigation.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;;AAIjE,qBACa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAEhE,QAAQ,CAAC,UAAU,gEAAuC;IAE1D,QAAQ,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"prism-navigation.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-navigation.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;;AAIjE,qBACa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAEhE,QAAQ,CAAC,UAAU,gEAAuC;IAE1D,QAAQ,CAAC,eAAe,0DAQrB;IAEH,QAAQ,CAAC,UAAU,wDAQhB;IAEH,QAAQ,CAAC,YAAY,gEA0DlB;IAEH,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAIpC,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAItC,WAAW,IAAI,IAAI;yCA9FR,sBAAsB;6CAAtB,sBAAsB;CA2GlC"}
|
|
@@ -5,7 +5,8 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
export class PrismNavigationService {
|
|
6
6
|
searchService = inject(PrismSearchService);
|
|
7
7
|
manifestService = inject(PrismManifestService);
|
|
8
|
-
activeItem = signal(null,
|
|
8
|
+
activeItem = signal(null, /* @ts-ignore */
|
|
9
|
+
...(ngDevMode ? [{ debugName: "activeItem" }] : /* istanbul ignore next */ []));
|
|
9
10
|
activeComponent = computed(() => {
|
|
10
11
|
const item = this.activeItem();
|
|
11
12
|
if (item?.kind !== 'component')
|
|
@@ -13,7 +14,8 @@ export class PrismNavigationService {
|
|
|
13
14
|
const manifest = this.manifestService.manifest();
|
|
14
15
|
const relinked = manifest.components.find((c) => c.meta.className === item.data.meta.className);
|
|
15
16
|
return relinked ?? null;
|
|
16
|
-
},
|
|
17
|
+
}, /* @ts-ignore */
|
|
18
|
+
...(ngDevMode ? [{ debugName: "activeComponent" }] : /* istanbul ignore next */ []));
|
|
17
19
|
activePage = computed(() => {
|
|
18
20
|
const item = this.activeItem();
|
|
19
21
|
if (item?.kind !== 'page')
|
|
@@ -21,7 +23,8 @@ export class PrismNavigationService {
|
|
|
21
23
|
const manifest = this.manifestService.manifest();
|
|
22
24
|
const relinked = manifest.pages?.find((p) => p.title === item.data.title && p.type === item.data.type);
|
|
23
25
|
return relinked ?? null;
|
|
24
|
-
},
|
|
26
|
+
}, /* @ts-ignore */
|
|
27
|
+
...(ngDevMode ? [{ debugName: "activePage" }] : /* istanbul ignore next */ []));
|
|
25
28
|
categoryTree = computed(() => {
|
|
26
29
|
const map = new Map();
|
|
27
30
|
for (const comp of this.searchService.filteredComponents()) {
|
|
@@ -39,33 +42,38 @@ export class PrismNavigationService {
|
|
|
39
42
|
for (const items of map.values()) {
|
|
40
43
|
items.sort((a, b) => {
|
|
41
44
|
const orderA = a.kind === 'component'
|
|
42
|
-
?
|
|
43
|
-
:
|
|
45
|
+
? a.data.meta.showcaseConfig.componentOrder ?? Infinity
|
|
46
|
+
: a.data.order ?? Infinity;
|
|
44
47
|
const orderB = b.kind === 'component'
|
|
45
|
-
?
|
|
46
|
-
:
|
|
48
|
+
? b.data.meta.showcaseConfig.componentOrder ?? Infinity
|
|
49
|
+
: b.data.order ?? Infinity;
|
|
47
50
|
if (orderA !== orderB)
|
|
48
51
|
return orderA - orderB;
|
|
49
|
-
const labelA = a.kind === 'component'
|
|
50
|
-
|
|
52
|
+
const labelA = a.kind === 'component'
|
|
53
|
+
? a.data.meta.showcaseConfig.title
|
|
54
|
+
: a.data.title;
|
|
55
|
+
const labelB = b.kind === 'component'
|
|
56
|
+
? b.data.meta.showcaseConfig.title
|
|
57
|
+
: b.data.title;
|
|
51
58
|
return labelA.localeCompare(labelB);
|
|
52
59
|
});
|
|
53
60
|
}
|
|
54
61
|
const sorted = [...map.entries()].sort(([catA, itemsA], [catB, itemsB]) => {
|
|
55
62
|
const catOrders = itemsA.map((i) => i.kind === 'component'
|
|
56
|
-
?
|
|
57
|
-
:
|
|
63
|
+
? i.data.meta.showcaseConfig.categoryOrder ?? Infinity
|
|
64
|
+
: i.data.categoryOrder ?? Infinity);
|
|
58
65
|
const orderA = Math.min(...catOrders);
|
|
59
66
|
const catOrdersB = itemsB.map((i) => i.kind === 'component'
|
|
60
|
-
?
|
|
61
|
-
:
|
|
67
|
+
? i.data.meta.showcaseConfig.categoryOrder ?? Infinity
|
|
68
|
+
: i.data.categoryOrder ?? Infinity);
|
|
62
69
|
const orderB = Math.min(...catOrdersB);
|
|
63
70
|
if (orderA !== orderB)
|
|
64
71
|
return orderA - orderB;
|
|
65
72
|
return catA.localeCompare(catB);
|
|
66
73
|
});
|
|
67
74
|
return new Map(sorted);
|
|
68
|
-
},
|
|
75
|
+
}, /* @ts-ignore */
|
|
76
|
+
...(ngDevMode ? [{ debugName: "categoryTree" }] : /* istanbul ignore next */ []));
|
|
69
77
|
select(comp) {
|
|
70
78
|
this.activeItem.set({ kind: 'component', data: comp });
|
|
71
79
|
}
|
|
@@ -73,16 +81,16 @@ export class PrismNavigationService {
|
|
|
73
81
|
this.activeItem.set({ kind: 'page', data: page });
|
|
74
82
|
}
|
|
75
83
|
selectFirst() {
|
|
76
|
-
const comps = this.searchService.filteredComponents();
|
|
77
|
-
if (comps.length > 0) {
|
|
78
|
-
this.activeItem.set({ kind: 'component', data: comps[0] });
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
84
|
const pages = this.searchService.filteredPages();
|
|
82
85
|
if (pages.length > 0) {
|
|
83
86
|
this.activeItem.set({ kind: 'page', data: pages[0] });
|
|
84
87
|
return;
|
|
85
88
|
}
|
|
89
|
+
const comps = this.searchService.filteredComponents();
|
|
90
|
+
if (comps.length > 0) {
|
|
91
|
+
this.activeItem.set({ kind: 'component', data: comps[0] });
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
86
94
|
this.activeItem.set(null);
|
|
87
95
|
}
|
|
88
96
|
static ɵfac = function PrismNavigationService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismNavigationService)(); };
|
|
@@ -7,9 +7,12 @@ export class PrismPanelService {
|
|
|
7
7
|
pluginService = inject(PrismPluginService);
|
|
8
8
|
builtinPanels = inject(PRISM_BUILTIN_PANELS);
|
|
9
9
|
injectorCache = new Map();
|
|
10
|
-
activePanelId = signal('controls',
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
activePanelId = signal('controls', /* @ts-ignore */
|
|
11
|
+
...(ngDevMode ? [{ debugName: "activePanelId" }] : /* istanbul ignore next */ []));
|
|
12
|
+
activeViewId = signal('renderer', /* @ts-ignore */
|
|
13
|
+
...(ngDevMode ? [{ debugName: "activeViewId" }] : /* istanbul ignore next */ []));
|
|
14
|
+
activePanelInjector = computed(() => this.getInjector(this.activePanelId()), /* @ts-ignore */
|
|
15
|
+
...(ngDevMode ? [{ debugName: "activePanelInjector" }] : /* istanbul ignore next */ []));
|
|
13
16
|
/**
|
|
14
17
|
* Returns (and lazily creates) the EnvironmentInjector scoped to the given panel.
|
|
15
18
|
* Returns `null` when the panel has no providers.
|