@ng-prism/core 22.3.0 → 22.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -13
- package/dist/app/canvas/canvas-bg.styles.d.ts +7 -12
- package/dist/app/canvas/canvas-bg.styles.d.ts.map +1 -1
- package/dist/app/canvas/canvas-bg.styles.js +35 -37
- package/dist/app/canvas/measure-geometry.d.ts +140 -0
- package/dist/app/canvas/measure-geometry.d.ts.map +1 -0
- package/dist/app/canvas/measure-geometry.js +217 -0
- package/dist/app/canvas/measure-keyboard.d.ts +20 -0
- package/dist/app/canvas/measure-keyboard.d.ts.map +1 -0
- package/dist/app/canvas/measure-keyboard.js +34 -0
- package/dist/app/canvas/measure-quad.d.ts +114 -0
- package/dist/app/canvas/measure-quad.d.ts.map +1 -0
- package/dist/app/canvas/measure-quad.js +173 -0
- package/dist/app/canvas/measure-snap.d.ts +35 -0
- package/dist/app/canvas/measure-snap.d.ts.map +1 -0
- package/dist/app/canvas/measure-snap.js +63 -0
- package/dist/app/canvas/prism-canvas-measure.component.d.ts +142 -0
- package/dist/app/canvas/prism-canvas-measure.component.d.ts.map +1 -0
- package/dist/app/canvas/prism-canvas-measure.component.js +554 -0
- package/dist/app/canvas/prism-canvas-pin-row.component.d.ts +23 -0
- package/dist/app/canvas/prism-canvas-pin-row.component.d.ts.map +1 -0
- package/dist/app/canvas/prism-canvas-pin-row.component.js +64 -0
- package/dist/app/canvas/prism-canvas-toolbar.component.d.ts +22 -39
- package/dist/app/canvas/prism-canvas-toolbar.component.d.ts.map +1 -1
- package/dist/app/canvas/prism-canvas-toolbar.component.js +61 -69
- package/dist/app/canvas/prism-template-popover.component.js +1 -1
- package/dist/app/canvas/viewport-snap.d.ts +1 -1
- package/dist/app/canvas/viewport-snap.js +1 -1
- package/dist/app/component-head/head-metrics.d.ts +2 -2
- package/dist/app/component-head/head-metrics.js +1 -1
- package/dist/app/component-head/prism-component-head.component.d.ts +2 -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 +11 -18
- package/dist/app/component-head/prism-head-gauge.component.js +1 -1
- package/dist/app/component-head/prism-head-info.component.d.ts +1 -1
- package/dist/app/component-head/prism-head-info.component.js +2 -2
- package/dist/app/component-head/prism-stat.component.d.ts +1 -1
- package/dist/app/component-head/prism-stat.component.js +2 -2
- package/dist/app/directives/prism-resizer.directive.d.ts +1 -1
- package/dist/app/directives/prism-resizer.directive.js +2 -2
- package/dist/app/directives/resize-value.d.ts +2 -2
- package/dist/app/directives/resize-value.js +2 -2
- package/dist/app/discovery-manifest.d.ts +2 -2
- package/dist/app/discovery-manifest.d.ts.map +1 -1
- package/dist/app/discovery-manifest.js +11 -15
- package/dist/app/header/prism-header.component.js +1 -1
- package/dist/app/icons/icon-registry.d.ts +2 -2
- package/dist/app/icons/icon-registry.d.ts.map +1 -1
- package/dist/app/icons/icon-registry.js +3 -2
- package/dist/app/icons/prism-icon.component.d.ts +2 -2
- package/dist/app/icons/prism-icon.component.js +4 -4
- package/dist/app/index.d.ts.map +1 -1
- package/dist/app/index.js +14 -21
- package/dist/app/overview/overview-visibility.d.ts +1 -1
- package/dist/app/overview/overview-visibility.js +1 -1
- package/dist/app/overview/prism-overview-cell.component.d.ts +2 -2
- package/dist/app/overview/prism-overview-cell.component.d.ts.map +1 -1
- package/dist/app/overview/prism-overview-cell.component.js +9 -10
- package/dist/app/overview/prism-overview.component.d.ts +2 -2
- package/dist/app/overview/prism-overview.component.js +2 -2
- package/dist/app/page-renderer/prism-page-renderer.component.js +1 -1
- package/dist/app/panels/a11y/a11y-audit.service.js +2 -2
- package/dist/app/panels/a11y/a11y-summary.d.ts +3 -4
- package/dist/app/panels/a11y/a11y-summary.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-summary.js +3 -4
- package/dist/app/panels/a11y/a11y-thresholds.d.ts +1 -1
- package/dist/app/panels/a11y/a11y-thresholds.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-thresholds.js +1 -1
- package/dist/app/panels/a11y/a11y.types.d.ts +1 -1
- package/dist/app/panels/a11y/a11y.types.d.ts.map +1 -1
- package/dist/app/panels/builtin-navigation-decorations.d.ts +1 -1
- package/dist/app/panels/builtin-navigation-decorations.js +1 -1
- package/dist/app/panels/controls/non-editable-input-types.js +1 -1
- package/dist/app/panels/panel-host/panel-badge.d.ts +1 -1
- package/dist/app/provide-prism.js +1 -1
- package/dist/app/renderer/known-inputs.d.ts +1 -1
- package/dist/app/renderer/known-inputs.js +1 -1
- package/dist/app/renderer/overlay-resolver.d.ts +17 -3
- package/dist/app/renderer/overlay-resolver.d.ts.map +1 -1
- package/dist/app/renderer/overlay-resolver.js +9 -4
- package/dist/app/renderer/prism-renderer.component.d.ts +3 -3
- package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
- package/dist/app/renderer/prism-renderer.component.js +25 -16
- package/dist/app/renderer/projectable-content.js +3 -3
- package/dist/app/services/prism-canvas.service.d.ts +12 -1
- package/dist/app/services/prism-canvas.service.d.ts.map +1 -1
- package/dist/app/services/prism-canvas.service.js +23 -5
- package/dist/app/services/prism-capture.service.d.ts +24 -50
- package/dist/app/services/prism-capture.service.d.ts.map +1 -1
- package/dist/app/services/prism-capture.service.js +60 -140
- package/dist/app/services/prism-measure.service.d.ts +44 -0
- package/dist/app/services/prism-measure.service.d.ts.map +1 -0
- package/dist/app/services/prism-measure.service.js +91 -0
- package/dist/app/services/prism-panel.service.d.ts +2 -2
- package/dist/app/services/prism-panel.service.js +2 -2
- package/dist/app/services/prism-persistence.service.js +1 -1
- package/dist/app/services/prism-renderer.service.js +1 -1
- package/dist/app/services/prism-url-state.service.js +1 -1
- package/dist/app/services/prism-variant-bg.service.d.ts +10 -24
- package/dist/app/services/prism-variant-bg.service.d.ts.map +1 -1
- package/dist/app/services/prism-variant-bg.service.js +10 -24
- package/dist/app/shared/prism-metric-badge.component.d.ts +9 -15
- package/dist/app/shared/prism-metric-badge.component.d.ts.map +1 -1
- package/dist/app/shared/prism-metric-badge.component.js +10 -16
- package/dist/app/shell/prism-shell.component.d.ts.map +1 -1
- package/dist/app/shell/prism-shell.component.js +12 -9
- package/dist/app/sidebar/navigation-decorations.d.ts +4 -4
- package/dist/app/sidebar/navigation-decorations.js +2 -2
- package/dist/app/sidebar/prism-sidebar.component.d.ts +2 -2
- package/dist/app/sidebar/prism-sidebar.component.js +3 -3
- package/dist/app/theme/prism-default-theme.js +3 -3
- package/dist/app/variant-ribbon/spectrum.d.ts +1 -1
- package/dist/app/variant-ribbon/spectrum.js +1 -1
- package/dist/app/view-tab-bar/next-view-id.d.ts +1 -1
- package/dist/app/view-tab-bar/next-view-id.js +1 -1
- package/dist/builder/a11y/a11y-report-reader.d.ts +1 -1
- package/dist/builder/a11y/a11y-report-reader.js +1 -1
- package/dist/builder/manifest/runtime-manifest.generator.js +6 -2
- package/dist/builder/plugin-runner/plugin-runner.js +1 -1
- package/dist/builder/scanner/ast-utils.d.ts +46 -2
- package/dist/builder/scanner/ast-utils.d.ts.map +1 -1
- package/dist/builder/scanner/ast-utils.js +337 -31
- package/dist/builder/scanner/class-hierarchy.d.ts +33 -0
- package/dist/builder/scanner/class-hierarchy.d.ts.map +1 -0
- package/dist/builder/scanner/class-hierarchy.js +87 -0
- package/dist/builder/scanner/component.scanner.d.ts +7 -1
- package/dist/builder/scanner/component.scanner.d.ts.map +1 -1
- package/dist/builder/scanner/component.scanner.js +106 -58
- package/dist/builder/scanner/input.extractor.d.ts +7 -4
- package/dist/builder/scanner/input.extractor.d.ts.map +1 -1
- package/dist/builder/scanner/input.extractor.js +153 -55
- package/dist/builder/scanner/manifest.generator.js +6 -2
- package/dist/builder/scanner/scanner.d.ts +3 -1
- package/dist/builder/scanner/scanner.d.ts.map +1 -1
- package/dist/builder/scanner/scanner.js +6 -4
- package/dist/builder/scanner/showcase-diagnostics.d.ts +25 -0
- package/dist/builder/scanner/showcase-diagnostics.d.ts.map +1 -0
- package/dist/builder/scanner/showcase-diagnostics.js +96 -0
- package/dist/builder/shared/prism-pipeline.d.ts +1 -1
- package/dist/builder/shared/prism-pipeline.d.ts.map +1 -1
- package/dist/builder/shared/prism-pipeline.js +12 -14
- package/dist/builder/watcher/prism-watcher.js +2 -2
- package/dist/decorator/showcase.types.d.ts +11 -9
- package/dist/decorator/showcase.types.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/plugin/define-config.js +1 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +5 -9
- package/dist/plugin/plugin.types.d.ts +30 -13
- package/dist/plugin/plugin.types.d.ts.map +1 -1
- package/dist/schematics/migrations/v22-0-cache-dir-rename/index.js +2 -2
- package/dist/schematics/ng-add/index.js +4 -4
- package/dist/shared/canvas-bg.type.d.ts +5 -6
- package/dist/shared/canvas-bg.type.d.ts.map +1 -1
- package/dist/shared/canvas-bg.type.js +4 -5
- package/dist/shared/measure.type.d.ts +52 -0
- package/dist/shared/measure.type.d.ts.map +1 -0
- package/dist/shared/measure.type.js +21 -0
- package/dist/shared/variant-bg.d.ts +20 -31
- package/dist/shared/variant-bg.d.ts.map +1 -1
- package/dist/shared/variant-bg.js +20 -31
- package/dist/shared/viewport.type.d.ts +15 -19
- package/dist/shared/viewport.type.d.ts.map +1 -1
- package/dist/shared/viewport.type.js +15 -19
- package/dist/transformer/showcase-strip.transformer.js +1 -1
- package/package.json +5 -5
|
@@ -55,7 +55,7 @@ const STATUS_BADGES = {
|
|
|
55
55
|
},
|
|
56
56
|
beta: {
|
|
57
57
|
label: 'Beta',
|
|
58
|
-
tooltip: 'Beta
|
|
58
|
+
tooltip: 'Beta: API may change'
|
|
59
59
|
},
|
|
60
60
|
wip: {
|
|
61
61
|
label: 'Work in progress',
|
|
@@ -63,7 +63,7 @@ const STATUS_BADGES = {
|
|
|
63
63
|
},
|
|
64
64
|
deprecated: {
|
|
65
65
|
label: 'Deprecated',
|
|
66
|
-
tooltip: 'Deprecated / Legacy
|
|
66
|
+
tooltip: 'Deprecated / Legacy. Do not use in new code'
|
|
67
67
|
}
|
|
68
68
|
};
|
|
69
69
|
export class PrismComponentHeadComponent {
|
|
@@ -97,19 +97,12 @@ export class PrismComponentHeadComponent {
|
|
|
97
97
|
}, /* @ts-ignore */
|
|
98
98
|
...(ngDevMode ? [{ debugName: "coveragePercent" }] : /* istanbul ignore next */ []));
|
|
99
99
|
/*
|
|
100
|
-
*
|
|
100
|
+
* No bundle metric here. Reading `meta.perf.bundle.gzipKb`/`.sizeKb` finds
|
|
101
|
+
* nothing: `@ng-prism/plugin-perf` stores `sourceSize` and `gzipEstimate`
|
|
102
|
+
* (see `perf.types.ts`), so the tile would read `Bundle —` everywhere.
|
|
101
103
|
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
* stores `sourceSize` and `gzipEstimate`, and `perf.types.ts` declares only
|
|
105
|
-
* those two. So the value was always null, and the old head simply hid the
|
|
106
|
-
* tile — a gauge row reading `Bundle —` on every component is noise, not
|
|
107
|
-
* information.
|
|
108
|
-
*
|
|
109
|
-
* Do not re-add the read against the real key names without first settling
|
|
110
|
-
* whether `gzipEstimate` is bytes or kilobytes. The old code appended ' kb'
|
|
111
|
-
* to whatever it found, and that question belongs to the perf plugin, not
|
|
112
|
-
* to the head.
|
|
104
|
+
* Before wiring it to the real keys, settle with the perf plugin whether
|
|
105
|
+
* `gzipEstimate` is bytes or kilobytes.
|
|
113
106
|
*/
|
|
114
107
|
a11yScore = computed(() => {
|
|
115
108
|
return this.auditService.scoreResult()?.score ?? null;
|
|
@@ -119,8 +112,8 @@ export class PrismComponentHeadComponent {
|
|
|
119
112
|
* The visual regression headline, as the plugin already derived it.
|
|
120
113
|
*
|
|
121
114
|
* Read whole rather than recomputed: the colour follows the plugin's status
|
|
122
|
-
* semantics
|
|
123
|
-
* compared
|
|
115
|
+
* semantics (red for any changed variant, amber for ones that could not be
|
|
116
|
+
* compared), and duplicating that rule here would mean the stat and the
|
|
124
117
|
* plugin's own panel could disagree about the same component.
|
|
125
118
|
*/
|
|
126
119
|
vrtStat = computed(() => {
|
|
@@ -177,10 +170,10 @@ export class PrismComponentHeadComponent {
|
|
|
177
170
|
} if (rf & 2) {
|
|
178
171
|
let tmp_0_0;
|
|
179
172
|
i0.ɵɵconditional((tmp_0_0 = ctx.comp()) ? 0 : -1, tmp_0_0);
|
|
180
|
-
} }, dependencies: [PrismHeadInfoComponent, PrismHeadGaugeComponent], styles: ["[_nghost-%COMP%] {\n display: block;\n flex-shrink: 0;\n}\n\n.comp-head[_ngcontent-%COMP%] {\n display: flex;\n gap: var(--%NS%sp-3);\n align-items: center;\n height: var(--%NS%band-head);\n padding: 0 var(--%NS%sp-5);\n background: var(--%NS%prism-bg);\n border-bottom: 1px solid var(--%NS%prism-border);\n}\n\n\n\n\n\n\n\n
|
|
173
|
+
} }, dependencies: [PrismHeadInfoComponent, PrismHeadGaugeComponent], styles: ["[_nghost-%COMP%] {\n display: block;\n flex-shrink: 0;\n}\n\n.comp-head[_ngcontent-%COMP%] {\n display: flex;\n gap: var(--%NS%sp-3);\n align-items: center;\n height: var(--%NS%band-head);\n padding: 0 var(--%NS%sp-5);\n background: var(--%NS%prism-bg);\n border-bottom: 1px solid var(--%NS%prism-border);\n}\n\n\n\n\n\n\n\n.comp-crumb[_ngcontent-%COMP%] {\n flex: 0 8 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--%NS%fs-xs);\n color: var(--%NS%prism-text-ghost);\n text-transform: uppercase;\n letter-spacing: 0.06em;\n white-space: nowrap;\n}\n\n.comp-crumb[_ngcontent-%COMP%]::after {\n content: ' /';\n}\n\n.comp-title[_ngcontent-%COMP%] {\n flex: 0 1 auto;\n min-width: 0;\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--%NS%fs-xl);\n font-weight: 600;\n color: var(--%NS%prism-text);\n letter-spacing: -0.015em;\n white-space: nowrap;\n}\n\n.comp-spacer[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.comp-status[_ngcontent-%COMP%], \nprism-head-info[_ngcontent-%COMP%], \nprism-head-gauge[_ngcontent-%COMP%], \n.comp-head-end[_ngcontent-%COMP%] {\n flex: none;\n}\n\n\n\n\n.comp-head-end[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n}\n\n.comp-head-end[_ngcontent-%COMP%]:empty {\n display: none;\n}\n\n\n\n\n\n.comp-status[_ngcontent-%COMP%] {\n display: inline-flex;\n gap: var(--%NS%sp-2);\n align-items: center;\n height: 18px;\n padding: 0 var(--%NS%sp-3) 0 var(--%NS%sp-2);\n font-size: var(--%NS%fs-xs);\n font-weight: 600;\n color: var(--%NS%prism-text-muted);\n letter-spacing: 0.03em;\n white-space: nowrap;\n border: 1px solid currentcolor;\n border-radius: var(--%NS%radius-xs);\n}\n\n.comp-status-mark[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n background: currentcolor;\n border-radius: 50%;\n}\n\n.comp-status--stable[_ngcontent-%COMP%] {\n color: var(--%NS%prism-mark-nominal);\n background: color-mix(in srgb, var(--%NS%prism-mark-nominal) 10%, transparent);\n}\n\n.comp-status--beta[_ngcontent-%COMP%], \n.comp-status--wip[_ngcontent-%COMP%] {\n color: var(--%NS%prism-mark-attention);\n background: color-mix(in srgb, var(--%NS%prism-mark-attention) 10%, transparent);\n}\n\n.comp-status--wip[_ngcontent-%COMP%] .comp-status-mark[_ngcontent-%COMP%] {\n box-sizing: border-box;\n width: 7px;\n height: 7px;\n background: transparent;\n border: 1.5px solid currentcolor;\n}\n\n.comp-status--deprecated[_ngcontent-%COMP%] {\n color: var(--%NS%prism-mark-critical);\n background: color-mix(in srgb, var(--%NS%prism-mark-critical) 12%, transparent);\n border-color: color-mix(in srgb, var(--%NS%prism-mark-critical) 55%, transparent);\n}"] });
|
|
181
174
|
}
|
|
182
175
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismComponentHeadComponent, [{
|
|
183
176
|
type: Component,
|
|
184
|
-
args: [{ selector: 'prism-component-head', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismHeadInfoComponent, PrismHeadGaugeComponent], template: "@if (comp(); as c) {\n <section class=\"comp-head\">\n <span class=\"comp-crumb\">{{ category() }}</span>\n <h1 class=\"comp-title\">{{ c.meta.showcaseConfig.title }}</h1>\n\n <prism-head-info\n [selector]=\"c.meta.componentMeta.selector\"\n [description]=\"c.meta.showcaseConfig.description\"\n [tags]=\"c.meta.showcaseConfig.tags ?? []\"\n [variantCount]=\"variantCount()\" />\n\n @if (statusBadge(); as badge) {\n <span\n class=\"comp-status comp-status--{{ status() }}\"\n [attr.title]=\"badge.tooltip\">\n <span\n class=\"comp-status-mark\"\n aria-hidden=\"true\"></span>\n {{ badge.label }}\n </span>\n }\n\n <span class=\"comp-spacer\"></span>\n\n <prism-head-gauge [metrics]=\"metrics()\" />\n <span class=\"comp-head-end\"><ng-content select=\"[headEnd]\" /></span>\n </section>\n}\n", styles: [":host {\n display: block;\n flex-shrink: 0;\n}\n\n.comp-head {\n display: flex;\n gap: var(--sp-3);\n align-items: center;\n height: var(--band-head);\n padding: 0 var(--sp-5);\n background: var(--prism-bg);\n border-bottom: 1px solid var(--prism-border);\n}\n\n/* The text yields, the controls never do. A long category and a long title\n would otherwise push the gauge out of a fixed-height row whose ancestors\n clip
|
|
177
|
+
args: [{ selector: 'prism-component-head', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismHeadInfoComponent, PrismHeadGaugeComponent], template: "@if (comp(); as c) {\n <section class=\"comp-head\">\n <span class=\"comp-crumb\">{{ category() }}</span>\n <h1 class=\"comp-title\">{{ c.meta.showcaseConfig.title }}</h1>\n\n <prism-head-info\n [selector]=\"c.meta.componentMeta.selector\"\n [description]=\"c.meta.showcaseConfig.description\"\n [tags]=\"c.meta.showcaseConfig.tags ?? []\"\n [variantCount]=\"variantCount()\" />\n\n @if (statusBadge(); as badge) {\n <span\n class=\"comp-status comp-status--{{ status() }}\"\n [attr.title]=\"badge.tooltip\">\n <span\n class=\"comp-status-mark\"\n aria-hidden=\"true\"></span>\n {{ badge.label }}\n </span>\n }\n\n <span class=\"comp-spacer\"></span>\n\n <prism-head-gauge [metrics]=\"metrics()\" />\n <span class=\"comp-head-end\"><ng-content select=\"[headEnd]\" /></span>\n </section>\n}\n", styles: [":host {\n display: block;\n flex-shrink: 0;\n}\n\n.comp-head {\n display: flex;\n gap: var(--sp-3);\n align-items: center;\n height: var(--band-head);\n padding: 0 var(--sp-5);\n background: var(--prism-bg);\n border-bottom: 1px solid var(--prism-border);\n}\n\n/* The text yields, the controls never do. A long category and a long title\n would otherwise push the gauge out of a fixed-height row whose ancestors\n clip, making the measurement unreachable when you most want to read it,\n and costing the gauge the fixed position it was designed around. So the\n title truncates with an ellipsis and the chip stays at the right edge. The crumb gives way\n first, being the least important text in the row. */\n.comp-crumb {\n flex: 0 8 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--fs-xs);\n color: var(--prism-text-ghost);\n text-transform: uppercase;\n letter-spacing: 0.06em;\n white-space: nowrap;\n}\n\n.comp-crumb::after {\n content: ' /';\n}\n\n.comp-title {\n flex: 0 1 auto;\n min-width: 0;\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--fs-xl);\n font-weight: 600;\n color: var(--prism-text);\n letter-spacing: -0.015em;\n white-space: nowrap;\n}\n\n.comp-spacer {\n flex: 1;\n}\n\n.comp-status,\nprism-head-info,\nprism-head-gauge,\n.comp-head-end {\n flex: none;\n}\n\n/* Wraps the slot rather than styling the projected element, which this\n stylesheet cannot reach. :empty keeps the row's trailing gap from\n appearing when nothing is projected; comment anchors do not count. */\n.comp-head-end {\n display: inline-flex;\n align-items: center;\n}\n\n.comp-head-end:empty {\n display: none;\n}\n\n/* Always an outline, never a filled surface. Deprecated separates itself\n by hue, not by weight. A filled alarm-coloured chip in a permanently\n visible band is the \"red as background texture\" problem this\n redesign exists to fix. */\n.comp-status {\n display: inline-flex;\n gap: var(--sp-2);\n align-items: center;\n height: 18px;\n padding: 0 var(--sp-3) 0 var(--sp-2);\n font-size: var(--fs-xs);\n font-weight: 600;\n color: var(--prism-text-muted);\n letter-spacing: 0.03em;\n white-space: nowrap;\n border: 1px solid currentcolor;\n border-radius: var(--radius-xs);\n}\n\n.comp-status-mark {\n width: 6px;\n height: 6px;\n background: currentcolor;\n border-radius: 50%;\n}\n\n.comp-status--stable {\n color: var(--prism-mark-nominal);\n background: color-mix(in srgb, var(--prism-mark-nominal) 10%, transparent);\n}\n\n.comp-status--beta,\n.comp-status--wip {\n color: var(--prism-mark-attention);\n background: color-mix(in srgb, var(--prism-mark-attention) 10%, transparent);\n}\n\n.comp-status--wip .comp-status-mark {\n box-sizing: border-box;\n width: 7px;\n height: 7px;\n background: transparent;\n border: 1.5px solid currentcolor;\n}\n\n.comp-status--deprecated {\n color: var(--prism-mark-critical);\n background: color-mix(in srgb, var(--prism-mark-critical) 12%, transparent);\n border-color: color-mix(in srgb, var(--prism-mark-critical) 55%, transparent);\n}\n"] }]
|
|
185
178
|
}], null, null); })();
|
|
186
179
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismComponentHeadComponent, { className: "PrismComponentHeadComponent", filePath: "app/component-head/prism-component-head.component.ts", lineNumber: 41 }); })();
|
|
@@ -86,6 +86,6 @@ export class PrismHeadGaugeComponent {
|
|
|
86
86
|
}
|
|
87
87
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismHeadGaugeComponent, [{
|
|
88
88
|
type: Component,
|
|
89
|
-
args: [{ selector: 'prism-head-gauge', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismStatComponent], template: "<button\n class=\"gauge\"\n type=\"button\"\n [class.gauge--ok]=\"summary().variant === 'ok'\"\n [class.gauge--warn]=\"summary().variant === 'warn'\"\n [class.gauge--danger]=\"summary().variant === 'danger'\"\n popovertarget=\"prism-head-gauge\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.title]=\"ariaLabel()\">\n <span\n class=\"gauge__dot\"\n aria-hidden=\"true\"></span>\n @if (summary().worst; as worst) {\n <span class=\"gauge__text\">{{ worst.label }} {{ worst.value }}</span>\n @if (summary().others > 0) {\n <span class=\"gauge__more\">+{{ summary().others }}</span>\n }\n } @else {\n <span class=\"gauge__text\">{{ summary().measured }}</span>\n }\n</button>\n\n<div\n popover\n id=\"prism-head-gauge\"\n class=\"gauge-card\"\n role=\"dialog\"\n aria-label=\"Component metrics\">\n @for (m of metrics(); track m.id) {\n <prism-stat\n [label]=\"m.label\"\n [value]=\"m.value\"\n [variant]=\"m.variant\" />\n }\n</div>\n", styles: [":host {\n display: inline-flex;\n}\n\n.gauge {\n display: inline-flex;\n gap: var(--sp-2);\n align-items: center;\n height: 20px;\n padding: 0 var(--sp-3);\n anchor-name: --prism-head-gauge;\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n font-variant-numeric: tabular-nums;\n color: var(--prism-text-muted);\n white-space: nowrap;\n cursor: pointer;\n background: transparent;\n border: 1px solid var(--prism-border);\n border-radius: var(--radius-xs);\n}\n\n.gauge:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 1px;\n}\n\n.gauge__dot {\n width: 5px;\n height: 5px;\n background: currentcolor;\n border-radius: 50%;\n opacity: 0.5;\n}\n\n.gauge__more {\n opacity: 0.6;\n}\n\n/* The quiet state is green now, not grey: the gauge says \"these values\n were measured and all of them are fine\", which is a result, not an\n absence. A metric with no data at all stays grey in the readout rows. */\n.gauge--ok {\n color: var(--prism-mark-nominal);\n border-color: color-mix(in srgb, var(--prism-mark-nominal) 40%, transparent);\n}\n\n.gauge--warn {\n color: var(--prism-mark-attention);\n border-color: color-mix(in srgb, var(--prism-mark-attention) 40%, transparent);\n}\n\n.gauge--danger {\n color: var(--prism-mark-critical);\n border-color: color-mix(in srgb, var(--prism-mark-critical) 45%, transparent);\n}\n\n.gauge--ok .gauge__dot,\n.gauge--warn .gauge__dot,\n.gauge--danger .gauge__dot {\n opacity: 1;\n}\n\n.gauge-card {\n inset: auto;\n gap: 1px;\n min-width: 200px;\n padding: var(--sp-2);\n margin: 0;\n position-area: block-end span-inline-start;\n position-anchor: --prism-head-gauge;\n position-try-fallbacks: flip-block, flip-inline;\n background: var(--prism-bg-elevated);\n border: 1px solid var(--prism-border-strong);\n border-radius: var(--radius-md);\n box-shadow: 0 8px 28px -10px rgb(0 0 0 / 45%);\n}\n\n/* display belongs on :popover-open and nowhere else
|
|
89
|
+
args: [{ selector: 'prism-head-gauge', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismStatComponent], template: "<button\n class=\"gauge\"\n type=\"button\"\n [class.gauge--ok]=\"summary().variant === 'ok'\"\n [class.gauge--warn]=\"summary().variant === 'warn'\"\n [class.gauge--danger]=\"summary().variant === 'danger'\"\n popovertarget=\"prism-head-gauge\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.title]=\"ariaLabel()\">\n <span\n class=\"gauge__dot\"\n aria-hidden=\"true\"></span>\n @if (summary().worst; as worst) {\n <span class=\"gauge__text\">{{ worst.label }} {{ worst.value }}</span>\n @if (summary().others > 0) {\n <span class=\"gauge__more\">+{{ summary().others }}</span>\n }\n } @else {\n <span class=\"gauge__text\">{{ summary().measured }}</span>\n }\n</button>\n\n<div\n popover\n id=\"prism-head-gauge\"\n class=\"gauge-card\"\n role=\"dialog\"\n aria-label=\"Component metrics\">\n @for (m of metrics(); track m.id) {\n <prism-stat\n [label]=\"m.label\"\n [value]=\"m.value\"\n [variant]=\"m.variant\" />\n }\n</div>\n", styles: [":host {\n display: inline-flex;\n}\n\n.gauge {\n display: inline-flex;\n gap: var(--sp-2);\n align-items: center;\n height: 20px;\n padding: 0 var(--sp-3);\n anchor-name: --prism-head-gauge;\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n font-variant-numeric: tabular-nums;\n color: var(--prism-text-muted);\n white-space: nowrap;\n cursor: pointer;\n background: transparent;\n border: 1px solid var(--prism-border);\n border-radius: var(--radius-xs);\n}\n\n.gauge:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 1px;\n}\n\n.gauge__dot {\n width: 5px;\n height: 5px;\n background: currentcolor;\n border-radius: 50%;\n opacity: 0.5;\n}\n\n.gauge__more {\n opacity: 0.6;\n}\n\n/* The quiet state is green now, not grey: the gauge says \"these values\n were measured and all of them are fine\", which is a result, not an\n absence. A metric with no data at all stays grey in the readout rows. */\n.gauge--ok {\n color: var(--prism-mark-nominal);\n border-color: color-mix(in srgb, var(--prism-mark-nominal) 40%, transparent);\n}\n\n.gauge--warn {\n color: var(--prism-mark-attention);\n border-color: color-mix(in srgb, var(--prism-mark-attention) 40%, transparent);\n}\n\n.gauge--danger {\n color: var(--prism-mark-critical);\n border-color: color-mix(in srgb, var(--prism-mark-critical) 45%, transparent);\n}\n\n.gauge--ok .gauge__dot,\n.gauge--warn .gauge__dot,\n.gauge--danger .gauge__dot {\n opacity: 1;\n}\n\n.gauge-card {\n inset: auto;\n gap: 1px;\n min-width: 200px;\n padding: var(--sp-2);\n margin: 0;\n position-area: block-end span-inline-start;\n position-anchor: --prism-head-gauge;\n position-try-fallbacks: flip-block, flip-inline;\n background: var(--prism-bg-elevated);\n border: 1px solid var(--prism-border-strong);\n border-radius: var(--radius-md);\n box-shadow: 0 8px 28px -10px rgb(0 0 0 / 45%);\n}\n\n/* display belongs on :popover-open and nowhere else (see the note in\n prism-template-popover.component.ts). An author display on the base\n rule outranks the UA's [popover]:not(:popover-open) { display: none }\n and pins the readout open. */\n.gauge-card:popover-open {\n display: flex;\n flex-direction: column;\n}\n"] }]
|
|
90
90
|
}], null, { metrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "metrics", required: true }] }] }); })();
|
|
91
91
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismHeadGaugeComponent, { className: "PrismHeadGaugeComponent", filePath: "app/component-head/prism-head-gauge.component.ts", lineNumber: 26 }); })();
|
|
@@ -2,7 +2,7 @@ import * as i0 from "@angular/core";
|
|
|
2
2
|
/**
|
|
3
3
|
* Identity disclosure for the component head.
|
|
4
4
|
*
|
|
5
|
-
* Selector, description and tags all answer "what is this component"
|
|
5
|
+
* Selector, description and tags all answer "what is this component", a
|
|
6
6
|
* question you read once on arrival and never again while building. Keeping
|
|
7
7
|
* them permanently on screen cost a 128px band to say something that belongs
|
|
8
8
|
* behind one glyph.
|
|
@@ -40,7 +40,7 @@ function PrismHeadInfoComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
|
40
40
|
/**
|
|
41
41
|
* Identity disclosure for the component head.
|
|
42
42
|
*
|
|
43
|
-
* Selector, description and tags all answer "what is this component"
|
|
43
|
+
* Selector, description and tags all answer "what is this component", a
|
|
44
44
|
* question you read once on arrival and never again while building. Keeping
|
|
45
45
|
* them permanently on screen cost a 128px band to say something that belongs
|
|
46
46
|
* behind one glyph.
|
|
@@ -86,6 +86,6 @@ export class PrismHeadInfoComponent {
|
|
|
86
86
|
}
|
|
87
87
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismHeadInfoComponent, [{
|
|
88
88
|
type: Component,
|
|
89
|
-
args: [{ selector: 'prism-head-info', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismIconComponent], template: "<button\n class=\"info-btn\"\n type=\"button\"\n popovertarget=\"prism-head-info\"\n title=\"Component details\"\n aria-label=\"Component details\">\n <prism-icon\n name=\"info\"\n [size]=\"13\" />\n</button>\n\n<div\n popover\n id=\"prism-head-info\"\n class=\"info-card\"\n role=\"dialog\"\n aria-label=\"Component details\">\n <code class=\"info-card__selector\"><{{ selector() }}></code>\n @if (description()) {\n <p class=\"info-card__desc\">{{ description() }}</p>\n }\n @if (variantCount() > 0) {\n <p class=\"info-card__meta\"> {{ variantCount() }} {{ variantCount() === 1 ? 'variant' : 'variants' }} </p>\n }\n @if (tags().length) {\n <div class=\"info-card__tags\">\n @for (tag of tags(); track tag) {\n <span class=\"info-card__tag\">{{ tag }}</span>\n }\n </div>\n }\n</div>\n", styles: [":host {\n display: inline-flex;\n}\n\n.info-btn {\n display: grid;\n place-items: center;\n width: 20px;\n height: 20px;\n padding: 0;\n anchor-name: --prism-head-info;\n color: var(--prism-text-ghost);\n cursor: pointer;\n background: transparent;\n border: 0;\n border-radius: var(--radius-xs);\n}\n\n.info-btn:hover {\n color: var(--prism-text-2);\n}\n\n.info-btn:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 1px;\n}\n\n.info-card {\n inset: auto;\n width: 320px;\n max-width: calc(100vw - var(--sp-6));\n padding: var(--sp-4);\n margin: 0;\n position-area: block-end span-inline-end;\n position-anchor: --prism-head-info;\n position-try-fallbacks: flip-block, flip-inline;\n color: var(--prism-text-2);\n background: var(--prism-bg-elevated);\n border: 1px solid var(--prism-border-strong);\n border-radius: var(--radius-md);\n box-shadow: 0 8px 28px -10px rgb(0 0 0 / 45%);\n}\n\n.info-card__selector {\n display: block;\n font-family: var(--font-mono);\n font-size: var(--fs-md);\n color: var(--prism-primary);\n user-select: all;\n}\n\n.info-card__desc {\n margin: var(--sp-3) 0 0;\n font-size: var(--fs-lg);\n line-height: 1.55;\n}\n\n/* A plain fact about the component, not a measurement
|
|
89
|
+
args: [{ selector: 'prism-head-info', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismIconComponent], template: "<button\n class=\"info-btn\"\n type=\"button\"\n popovertarget=\"prism-head-info\"\n title=\"Component details\"\n aria-label=\"Component details\">\n <prism-icon\n name=\"info\"\n [size]=\"13\" />\n</button>\n\n<div\n popover\n id=\"prism-head-info\"\n class=\"info-card\"\n role=\"dialog\"\n aria-label=\"Component details\">\n <code class=\"info-card__selector\"><{{ selector() }}></code>\n @if (description()) {\n <p class=\"info-card__desc\">{{ description() }}</p>\n }\n @if (variantCount() > 0) {\n <p class=\"info-card__meta\"> {{ variantCount() }} {{ variantCount() === 1 ? 'variant' : 'variants' }} </p>\n }\n @if (tags().length) {\n <div class=\"info-card__tags\">\n @for (tag of tags(); track tag) {\n <span class=\"info-card__tag\">{{ tag }}</span>\n }\n </div>\n }\n</div>\n", styles: [":host {\n display: inline-flex;\n}\n\n.info-btn {\n display: grid;\n place-items: center;\n width: 20px;\n height: 20px;\n padding: 0;\n anchor-name: --prism-head-info;\n color: var(--prism-text-ghost);\n cursor: pointer;\n background: transparent;\n border: 0;\n border-radius: var(--radius-xs);\n}\n\n.info-btn:hover {\n color: var(--prism-text-2);\n}\n\n.info-btn:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 1px;\n}\n\n.info-card {\n inset: auto;\n width: 320px;\n max-width: calc(100vw - var(--sp-6));\n padding: var(--sp-4);\n margin: 0;\n position-area: block-end span-inline-end;\n position-anchor: --prism-head-info;\n position-try-fallbacks: flip-block, flip-inline;\n color: var(--prism-text-2);\n background: var(--prism-bg-elevated);\n border: 1px solid var(--prism-border-strong);\n border-radius: var(--radius-md);\n box-shadow: 0 8px 28px -10px rgb(0 0 0 / 45%);\n}\n\n.info-card__selector {\n display: block;\n font-family: var(--font-mono);\n font-size: var(--fs-md);\n color: var(--prism-primary);\n user-select: all;\n}\n\n.info-card__desc {\n margin: var(--sp-3) 0 0;\n font-size: var(--fs-lg);\n line-height: 1.55;\n}\n\n/* A plain fact about the component, not a measurement. It sits here with\n the selector and the tags rather than in the gauge, whose numbers all\n answer \"did this pass its threshold\". A count cannot. */\n.info-card__meta {\n margin: var(--sp-3) 0 0;\n font-size: var(--fs-md);\n color: var(--prism-text-muted);\n}\n\n.info-card__tags {\n display: flex;\n flex-wrap: wrap;\n gap: var(--sp-2);\n margin-top: var(--sp-4);\n}\n\n.info-card__tag {\n padding: 1px var(--sp-3);\n font-size: var(--fs-xs);\n color: var(--prism-text-muted);\n border: 1px solid var(--prism-border);\n border-radius: var(--radius-xs);\n}\n"] }]
|
|
90
90
|
}], null, { selector: [{ type: i0.Input, args: [{ isSignal: true, alias: "selector", required: true }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], tags: [{ type: i0.Input, args: [{ isSignal: true, alias: "tags", required: false }] }], variantCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "variantCount", required: false }] }] }); })();
|
|
91
91
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismHeadInfoComponent, { className: "PrismHeadInfoComponent", filePath: "app/component-head/prism-head-info.component.ts", lineNumber: 25 }); })();
|
|
@@ -4,7 +4,7 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
* One line of the gauge's readout: caption left, value right.
|
|
5
5
|
*
|
|
6
6
|
* Was a right-aligned tile in the old head. The pill it used to carry is gone
|
|
7
|
-
* rather than restyled
|
|
7
|
+
* rather than restyled, because it duplicated the caption directly beneath it.
|
|
8
8
|
*/
|
|
9
9
|
export declare class PrismStatComponent {
|
|
10
10
|
readonly label: import("@angular/core").InputSignal<string>;
|
|
@@ -4,7 +4,7 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
* One line of the gauge's readout: caption left, value right.
|
|
5
5
|
*
|
|
6
6
|
* Was a right-aligned tile in the old head. The pill it used to carry is gone
|
|
7
|
-
* rather than restyled
|
|
7
|
+
* rather than restyled, because it duplicated the caption directly beneath it.
|
|
8
8
|
*/
|
|
9
9
|
export class PrismStatComponent {
|
|
10
10
|
label = input.required(/* @ts-ignore */
|
|
@@ -33,6 +33,6 @@ export class PrismStatComponent {
|
|
|
33
33
|
}
|
|
34
34
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismStatComponent, [{
|
|
35
35
|
type: Component,
|
|
36
|
-
args: [{ selector: 'prism-stat', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"stat\"\n [class.stat--ok]=\"variant() === 'ok'\"\n [class.stat--warn]=\"variant() === 'warn'\"\n [class.stat--danger]=\"variant() === 'danger'\">\n <span\n class=\"stat__dot\"\n aria-hidden=\"true\"></span>\n <span class=\"stat__lbl\">{{ label() }}</span>\n <span class=\"stat__val\">{{ value() }}</span>\n</div>\n", styles: [".stat {\n display: flex;\n gap: var(--sp-3);\n align-items: center;\n padding: var(--sp-2) var(--sp-3);\n font-size: var(--fs-md);\n color: var(--prism-text-2);\n border-radius: var(--radius-xs);\n}\n\n.stat__dot {\n flex: none;\n width: 5px;\n height: 5px;\n background: transparent;\n border-radius: 50%;\n}\n\n.stat__lbl {\n white-space: nowrap;\n}\n\n.stat__val {\n margin-left: auto;\n font-family: var(--font-mono);\n font-variant-numeric: tabular-nums;\n color: var(--prism-text);\n}\n\n/* Four states, four treatments. \"ok\"
|
|
36
|
+
args: [{ selector: 'prism-stat', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"stat\"\n [class.stat--ok]=\"variant() === 'ok'\"\n [class.stat--warn]=\"variant() === 'warn'\"\n [class.stat--danger]=\"variant() === 'danger'\">\n <span\n class=\"stat__dot\"\n aria-hidden=\"true\"></span>\n <span class=\"stat__lbl\">{{ label() }}</span>\n <span class=\"stat__val\">{{ value() }}</span>\n</div>\n", styles: [".stat {\n display: flex;\n gap: var(--sp-3);\n align-items: center;\n padding: var(--sp-2) var(--sp-3);\n font-size: var(--fs-md);\n color: var(--prism-text-2);\n border-radius: var(--radius-xs);\n}\n\n.stat__dot {\n flex: none;\n width: 5px;\n height: 5px;\n background: transparent;\n border-radius: 50%;\n}\n\n.stat__lbl {\n white-space: nowrap;\n}\n\n.stat__val {\n margin-left: auto;\n font-family: var(--font-mono);\n font-variant-numeric: tabular-nums;\n color: var(--prism-text);\n}\n\n/* Four states, four treatments. \"ok\" gets the nominal green, and \"none\"\n does not: a metric with no data has nothing to report, and\n colouring it green would claim a clean result the tool never measured.\n That is the one distinction worth keeping grey. */\n.stat--ok .stat__dot {\n background: var(--prism-mark-nominal);\n}\n\n.stat--ok .stat__val {\n color: var(--prism-mark-nominal);\n}\n\n.stat--warn .stat__dot {\n background: var(--prism-mark-attention);\n}\n\n.stat--warn .stat__val {\n color: var(--prism-mark-attention);\n}\n\n.stat--danger .stat__dot {\n background: var(--prism-mark-critical);\n}\n\n.stat--danger .stat__val {\n color: var(--prism-mark-critical);\n}\n"] }]
|
|
37
37
|
}], null, { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] }); })();
|
|
38
38
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismStatComponent, { className: "PrismStatComponent", filePath: "app/component-head/prism-stat.component.ts", lineNumber: 17 }); })();
|
|
@@ -20,7 +20,7 @@ export declare class PrismResizerDirective {
|
|
|
20
20
|
private static readonly STEP;
|
|
21
21
|
protected onMouseDown(e: MouseEvent): void;
|
|
22
22
|
/**
|
|
23
|
-
* Keyboard direction is
|
|
23
|
+
* Keyboard direction is independent of `scale`.
|
|
24
24
|
*
|
|
25
25
|
* `scale` inverts the *pointer* for a grip on the far edge of a centred box,
|
|
26
26
|
* and carrying that inversion into the keyboard was wrong: two separators
|
|
@@ -28,7 +28,7 @@ export class PrismResizerDirective {
|
|
|
28
28
|
onMouseDown(e) {
|
|
29
29
|
// Primary button only. Without this a right-click arms the document-level
|
|
30
30
|
// listeners below, the context menu takes the pointer so the matching
|
|
31
|
-
// mouseup never arrives, and the drag stays live afterwards
|
|
31
|
+
// mouseup never arrives, and the drag stays live afterwards, so the value
|
|
32
32
|
// then follows the cursor with no button held. `preventDefault` does not
|
|
33
33
|
// suppress `contextmenu`, so the guard has to be here.
|
|
34
34
|
if (e.button !== 0)
|
|
@@ -50,7 +50,7 @@ export class PrismResizerDirective {
|
|
|
50
50
|
document.addEventListener('mouseup', onUp);
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
|
-
* Keyboard direction is
|
|
53
|
+
* Keyboard direction is independent of `scale`.
|
|
54
54
|
*
|
|
55
55
|
* `scale` inverts the *pointer* for a grip on the far edge of a centred box,
|
|
56
56
|
* and carrying that inversion into the keyboard was wrong: two separators
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Not for tidiness: a directive whose inputs are `input()` signals has to be
|
|
5
5
|
* rendered inside a host component to be exercised, and this package's specs
|
|
6
6
|
* run under jsdom against SWC-compiled sources, where JIT cannot instantiate
|
|
7
|
-
* one. Extracted, the maths is ordinary and testable
|
|
7
|
+
* one. Extracted, the maths is ordinary and testable. It is the same reason
|
|
8
8
|
* `known-inputs.ts` and `overlay-resolver.ts` sit beside their components.
|
|
9
9
|
*/
|
|
10
10
|
/**
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* changes the width at both, and the stage's `transform: scale(var(--zoom))`
|
|
17
17
|
* contributes the division, since a pointer moving `dx` across the *painted*
|
|
18
18
|
* box has to change the CSS width by `2·dx / zoom` to keep the grip under the
|
|
19
|
-
* cursor
|
|
19
|
+
* cursor. The sign says which edge is being held.
|
|
20
20
|
*/
|
|
21
21
|
export declare function resizeValue(startValue: number, delta: number, scale: number, min: number, max: number): number;
|
|
22
22
|
//# sourceMappingURL=resize-value.d.ts.map
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Not for tidiness: a directive whose inputs are `input()` signals has to be
|
|
5
5
|
* rendered inside a host component to be exercised, and this package's specs
|
|
6
6
|
* run under jsdom against SWC-compiled sources, where JIT cannot instantiate
|
|
7
|
-
* one. Extracted, the maths is ordinary and testable
|
|
7
|
+
* one. Extracted, the maths is ordinary and testable. It is the same reason
|
|
8
8
|
* `known-inputs.ts` and `overlay-resolver.ts` sit beside their components.
|
|
9
9
|
*/
|
|
10
10
|
/**
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* changes the width at both, and the stage's `transform: scale(var(--zoom))`
|
|
17
17
|
* contributes the division, since a pointer moving `dx` across the *painted*
|
|
18
18
|
* box has to change the CSS width by `2·dx / zoom` to keep the grip under the
|
|
19
|
-
* cursor
|
|
19
|
+
* cursor. The sign says which edge is being held.
|
|
20
20
|
*/
|
|
21
21
|
export function resizeValue(startValue, delta, scale, min, max) {
|
|
22
22
|
return Math.max(min, Math.min(max, startValue + delta * scale));
|
|
@@ -2,9 +2,9 @@ import type { DiscoveryManifest, RuntimeManifest } from '../plugin/plugin.types.
|
|
|
2
2
|
/** Sanitised `meta`, or `undefined` when there is nothing worth exposing. */
|
|
3
3
|
export declare function serializableMeta(meta: Record<string, unknown> | undefined): Record<string, unknown> | undefined;
|
|
4
4
|
/**
|
|
5
|
-
* Builds the discovery view of the manifest
|
|
5
|
+
* Builds the discovery view of the manifest, i.e. what `__PRISM_MANIFEST__` exposes.
|
|
6
6
|
*
|
|
7
|
-
* It is
|
|
7
|
+
* It is not the runtime manifest: no Angular class references, no
|
|
8
8
|
* providers, no scanned input/output metadata. It carries what an external tool
|
|
9
9
|
* needs to enumerate and address variants, plus the `@Showcase` metadata that
|
|
10
10
|
* lets a tool decide how to treat one.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery-manifest.d.ts","sourceRoot":"","sources":["../../src/app/discovery-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,iBAAiB,EAAoB,eAAe,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"discovery-manifest.d.ts","sourceRoot":"","sources":["../../src/app/discovery-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,iBAAiB,EAAoB,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAuD1H,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAM/G;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,eAAe,GAAG,iBAAiB,CAsCnF"}
|
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
import { resolveVariantBg } from '../shared/variant-bg.js';
|
|
2
2
|
/**
|
|
3
3
|
* External tooling reads `__PRISM_MANIFEST__` through a structured-clone bridge
|
|
4
|
-
* (`page.evaluate()
|
|
5
|
-
* is
|
|
6
|
-
*
|
|
7
|
-
* that bridge throw or silently drop the whole payload.
|
|
4
|
+
* (Playwright's `page.evaluate()`, `postMessage`, devtools). `ShowcaseConfig.meta`
|
|
5
|
+
* is an open `Record<string, unknown>`, and a class, function or cyclic object
|
|
6
|
+
* in it makes that bridge throw or drop the whole payload.
|
|
8
7
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* Array elements become `null` when they cannot be represented, matching
|
|
15
|
-
* `JSON.stringify` so indices stay stable.
|
|
8
|
+
* So only JSON-safe values cross: primitives, arrays and plain-prototype
|
|
9
|
+
* objects. Class instances, functions, symbols, Dates, Maps and DOM nodes are
|
|
10
|
+
* dropped and cycles are broken. Unrepresentable array elements become `null`,
|
|
11
|
+
* as in `JSON.stringify`, so indices stay stable.
|
|
16
12
|
*/
|
|
17
13
|
function toSerializable(value, seen) {
|
|
18
14
|
if (value === null)
|
|
@@ -59,9 +55,9 @@ export function serializableMeta(meta) {
|
|
|
59
55
|
return serialized;
|
|
60
56
|
}
|
|
61
57
|
/**
|
|
62
|
-
* Builds the discovery view of the manifest
|
|
58
|
+
* Builds the discovery view of the manifest, i.e. what `__PRISM_MANIFEST__` exposes.
|
|
63
59
|
*
|
|
64
|
-
* It is
|
|
60
|
+
* It is not the runtime manifest: no Angular class references, no
|
|
65
61
|
* providers, no scanned input/output metadata. It carries what an external tool
|
|
66
62
|
* needs to enumerate and address variants, plus the `@Showcase` metadata that
|
|
67
63
|
* lets a tool decide how to treat one.
|
|
@@ -73,8 +69,8 @@ export function buildDiscoveryManifest(manifest) {
|
|
|
73
69
|
// An empty `variants` array is not "no variants": the renderer still
|
|
74
70
|
// instantiates the component with its declared defaults at index 0 and
|
|
75
71
|
// marks it `data-prism-rendered="<class>:0"`. Reporting zero variants
|
|
76
|
-
// here would let a runner walk past a component the app happily renders
|
|
77
|
-
//
|
|
72
|
+
// here would let a runner walk past a component the app happily renders.
|
|
73
|
+
// That's the quiet coverage loss the `excluded` status exists to prevent.
|
|
78
74
|
const declared = showcaseConfig.variants ?? [];
|
|
79
75
|
const variants = declared.length
|
|
80
76
|
? declared.map((variant, index) => {
|
|
@@ -109,7 +109,7 @@ export class PrismHeaderComponent {
|
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
onSearchFocus() {
|
|
112
|
-
// Placeholder
|
|
112
|
+
// Placeholder, will be wired to the command palette later
|
|
113
113
|
}
|
|
114
114
|
static ɵfac = function PrismHeaderComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismHeaderComponent)(); };
|
|
115
115
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismHeaderComponent, selectors: [["prism-header"]], hostBindings: function PrismHeaderComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
* `prism-icon.component.ts` so a plugin author can resolve the name the docs
|
|
7
7
|
* point them to (`NavigationDecorationDefinition.icon`, `PanelDefinition.icon`)
|
|
8
8
|
* without pulling an `@Component` class into a module graph the builder
|
|
9
|
-
* evaluates in Node.js
|
|
9
|
+
* evaluates in Node.js. Plugin panels are lazy-loaded for the same reason.
|
|
10
10
|
*/
|
|
11
11
|
declare const ICONS: Record<string, string>;
|
|
12
12
|
export { ICONS };
|
|
13
|
-
/** Every name the registry can draw
|
|
13
|
+
/** Every name the registry can draw. A panel's `icon` has to pick from these. */
|
|
14
14
|
export declare const ICON_NAMES: readonly string[];
|
|
15
15
|
//# sourceMappingURL=icon-registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon-registry.d.ts","sourceRoot":"","sources":["../../../src/app/icons/icon-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,QAAA,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"icon-registry.d.ts","sourceRoot":"","sources":["../../../src/app/icons/icon-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,QAAA,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqCjC,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,iFAAiF;AACjF,eAAO,MAAM,UAAU,EAAE,SAAS,MAAM,EAAuB,CAAC"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* `prism-icon.component.ts` so a plugin author can resolve the name the docs
|
|
7
7
|
* point them to (`NavigationDecorationDefinition.icon`, `PanelDefinition.icon`)
|
|
8
8
|
* without pulling an `@Component` class into a module graph the builder
|
|
9
|
-
* evaluates in Node.js
|
|
9
|
+
* evaluates in Node.js. Plugin panels are lazy-loaded for the same reason.
|
|
10
10
|
*/
|
|
11
11
|
const ICONS = {
|
|
12
12
|
search: '<circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3"/>',
|
|
@@ -31,6 +31,7 @@ const ICONS = {
|
|
|
31
31
|
move: '<path d="M12 2v20M2 12h20m-16-4-4 4 4 4m12-8 4 4-4 4M8 8l-4 4 4 4"/>',
|
|
32
32
|
crosshair: '<circle cx="12" cy="12" r="10"/><path d="M22 12h-4M6 12H2m10-6V2m0 20v-4"/>',
|
|
33
33
|
'ruler-dimension': '<path d="M4 4v16M20 4v16M8 12h8m-2-2 2 2-2 2m-4-4-2 2 2 2"/>',
|
|
34
|
+
ruler: '<path d="M3 9.5 9.5 3a1.5 1.5 0 0 1 2.1 0l9.4 9.4a1.5 1.5 0 0 1 0 2.1L14.5 21a1.5 1.5 0 0 1-2.1 0L3 11.6a1.5 1.5 0 0 1 0-2.1Z"/><path d="m7 9 2 2m2-6 2 2m2 2 2 2m-8 4 2 2"/>',
|
|
34
35
|
copy: '<rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>',
|
|
35
36
|
'maximize-2': '<path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3M3 16v3a2 2 0 0 0 2 2h3m8 0h3a2 2 0 0 0 2-2v-3"/>',
|
|
36
37
|
eye: '<path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"/><circle cx="12" cy="12" r="3"/>',
|
|
@@ -41,5 +42,5 @@ const ICONS = {
|
|
|
41
42
|
'circle-dashed': '<path d="M10.1 2.18a9.93 9.93 0 0 1 3.8 0"/><path d="M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7"/><path d="M21.82 10.1a9.93 9.93 0 0 1 0 3.8"/><path d="M20.29 17.6a9.95 9.95 0 0 1-2.7 2.69"/><path d="M13.9 21.82a9.94 9.94 0 0 1-3.8 0"/><path d="M6.4 20.29a9.95 9.95 0 0 1-2.69-2.7"/><path d="M2.18 13.9a9.93 9.93 0 0 1 0-3.8"/><path d="M3.71 6.4a9.95 9.95 0 0 1 2.7-2.69"/>'
|
|
42
43
|
};
|
|
43
44
|
export { ICONS };
|
|
44
|
-
/** Every name the registry can draw
|
|
45
|
+
/** Every name the registry can draw. A panel's `icon` has to pick from these. */
|
|
45
46
|
export const ICON_NAMES = Object.keys(ICONS);
|
|
@@ -8,8 +8,8 @@ export { ICON_NAMES };
|
|
|
8
8
|
* invisible: the `<svg>` is still built at the right size, so a missing entry
|
|
9
9
|
* renders as a correctly-spaced blank and reads like a CSS bug. Plugins declare
|
|
10
10
|
* `icon` as a free-form string and are compiled separately from this registry,
|
|
11
|
-
* so
|
|
12
|
-
* blank tab icon
|
|
11
|
+
* so no other check catches the typo. The visual regression panel once shipped
|
|
12
|
+
* with a blank tab icon this way.
|
|
13
13
|
*
|
|
14
14
|
* Warned once per name: an icon on a panel tab re-renders constantly.
|
|
15
15
|
*/
|
|
@@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, effect, ElementRef, inject, input }
|
|
|
2
2
|
import { ICON_NAMES, ICONS } from './icon-registry.js';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
// Re-exported for existing consumers of this module. The registry itself
|
|
5
|
-
// lives in `icon-registry.js
|
|
5
|
+
// lives in `icon-registry.js`, a dependency-free module, so a plugin barrel
|
|
6
6
|
// can re-export `ICON_NAMES` without dragging this `@Component` class (and
|
|
7
7
|
// `@angular/core`) into a module graph the builder evaluates in Node.js.
|
|
8
8
|
export { ICON_NAMES };
|
|
@@ -15,8 +15,8 @@ const warnedIcons = new Set();
|
|
|
15
15
|
* invisible: the `<svg>` is still built at the right size, so a missing entry
|
|
16
16
|
* renders as a correctly-spaced blank and reads like a CSS bug. Plugins declare
|
|
17
17
|
* `icon` as a free-form string and are compiled separately from this registry,
|
|
18
|
-
* so
|
|
19
|
-
* blank tab icon
|
|
18
|
+
* so no other check catches the typo. The visual regression panel once shipped
|
|
19
|
+
* with a blank tab icon this way.
|
|
20
20
|
*
|
|
21
21
|
* Warned once per name: an icon on a panel tab re-renders constantly.
|
|
22
22
|
*/
|
|
@@ -24,7 +24,7 @@ export function resolveIcon(name) {
|
|
|
24
24
|
const content = ICONS[name];
|
|
25
25
|
if (content === undefined && !warnedIcons.has(name)) {
|
|
26
26
|
warnedIcons.add(name);
|
|
27
|
-
console.warn(`[ng-prism] Unknown icon "${name}"
|
|
27
|
+
console.warn(`[ng-prism] Unknown icon "${name}", rendering an empty glyph. Available: ${ICON_NAMES.join(', ')}.`);
|
|
28
28
|
}
|
|
29
29
|
return content;
|
|
30
30
|
}
|
package/dist/app/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAGxE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC7H,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,YAAY,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAG1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,KAAK,aAAa,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAGlF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAC;AAG9F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAGxE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC7H,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,YAAY,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAG1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,KAAK,aAAa,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAGlF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAC;AAG9F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAkB1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC"}
|
package/dist/app/index.js
CHANGED
|
@@ -23,28 +23,21 @@ export { PrismPageRendererComponent } from './page-renderer/prism-page-renderer.
|
|
|
23
23
|
export { providePrism } from './provide-prism.js';
|
|
24
24
|
// HMR helper
|
|
25
25
|
export { enablePrismHmr } from './hmr.js';
|
|
26
|
-
// Shared presentational components for plugin contributions.
|
|
27
|
-
//
|
|
28
|
-
//
|
|
29
|
-
// draws an explicit line at decorated declarations.
|
|
26
|
+
// Shared presentational components for plugin contributions. They live on the
|
|
27
|
+
// main entry, not `plugin/index.ts`, because the builder evaluates plugin
|
|
28
|
+
// config in Node.js and that barrel excludes decorated declarations.
|
|
30
29
|
//
|
|
31
|
-
//
|
|
32
|
-
// `
|
|
33
|
-
//
|
|
34
|
-
//
|
|
35
|
-
//
|
|
36
|
-
//
|
|
37
|
-
// plugin config in `builder/config-loader` pulls this whole file — shell
|
|
38
|
-
// component included — into Node. It evaluates cleanly only because the
|
|
39
|
-
// config loader imports `@angular/compiler` before anything else.
|
|
30
|
+
// They still reach Node: `@ng-prism/plugin-coverage` and
|
|
31
|
+
// `@ng-prism/plugin-visual-regression` re-export their header badges statically
|
|
32
|
+
// from their Node entry, and those import `PrismMetricBadgeComponent` from here.
|
|
33
|
+
// Loading a plugin config in `builder/config-loader` therefore pulls this whole
|
|
34
|
+
// file, shell included, into Node. That only works because the config loader
|
|
35
|
+
// imports `@angular/compiler` first.
|
|
40
36
|
//
|
|
41
|
-
// Moving those
|
|
42
|
-
//
|
|
43
|
-
// from the
|
|
44
|
-
// entry
|
|
45
|
-
//
|
|
46
|
-
// `entry-parity.spec.ts` exists to forbid. Making the badges Node-safe means
|
|
47
|
-
// giving them an import that is not this barrel, which is a public API
|
|
48
|
-
// decision, not a cleanup.
|
|
37
|
+
// Moving those re-exports to the `.browser.ts` entries does not help: "types"
|
|
38
|
+
// maps to the one `index.d.ts` built from the Node entry, so the symbols would
|
|
39
|
+
// vanish from the public types while still shipping (which
|
|
40
|
+
// `entry-parity.spec.ts` forbids). A Node-safe import path for the badges is a
|
|
41
|
+
// public API decision.
|
|
49
42
|
export { PrismMetricBadgeComponent } from './shared/prism-metric-badge.component.js';
|
|
50
43
|
export { PrismIconComponent } from './icons/prism-icon.component.js';
|
|
@@ -3,7 +3,7 @@ import type { RuntimeComponent } from '../../plugin/plugin.types.js';
|
|
|
3
3
|
* Whether the Overview tab is offered for this component.
|
|
4
4
|
*
|
|
5
5
|
* Two conditions, and the second is a correctness argument rather than taste.
|
|
6
|
-
* A `renderPage` component does not render itself
|
|
6
|
+
* A `renderPage` component does not render itself. It renders a registered
|
|
7
7
|
* `ComponentPage`, and that page reads its values from the *global*
|
|
8
8
|
* `PrismRendererService`. n cells side by side would all show the same state,
|
|
9
9
|
* so an Overview there would be demonstrably wrong, not merely unhelpful.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Whether the Overview tab is offered for this component.
|
|
3
3
|
*
|
|
4
4
|
* Two conditions, and the second is a correctness argument rather than taste.
|
|
5
|
-
* A `renderPage` component does not render itself
|
|
5
|
+
* A `renderPage` component does not render itself. It renders a registered
|
|
6
6
|
* `ComponentPage`, and that page reads its values from the *global*
|
|
7
7
|
* `PrismRendererService`. n cells side by side would all show the same state,
|
|
8
8
|
* so an Overview there would be demonstrably wrong, not merely unhelpful.
|
|
@@ -4,11 +4,11 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
* One frame of the contact sheet: a stage painting the variant's declared
|
|
5
5
|
* background, with the variant's own instance on it and a caption beneath.
|
|
6
6
|
*
|
|
7
|
-
* It
|
|
7
|
+
* It shares none of the Playground's bookkeeping. Output
|
|
8
8
|
* subscriptions, `renderedElement`, the `prism:render:*` marks, the renderer
|
|
9
9
|
* hooks and `data-prism-rendered` all describe *one* rendered thing; n cells
|
|
10
10
|
* writing to any of them would corrupt what they mean. `data-prism-rendered`
|
|
11
|
-
* matters most
|
|
11
|
+
* matters most: it is the selector external screenshot runners key on (see
|
|
12
12
|
* `docs/guide/external-tooling.md`), and this component never emits it.
|
|
13
13
|
*/
|
|
14
14
|
export declare class PrismOverviewCellComponent {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-overview-cell.component.d.ts","sourceRoot":"","sources":["../../../src/app/overview/prism-overview-cell.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;;AAOrE;;;;;;;;;;GAUG;AACH,qBAYa,0BAA0B;IACnC,QAAQ,CAAC,SAAS,wDAAsC;IACxD,QAAQ,CAAC,KAAK,8CAA4B;IAE1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAEpB;IAEH,yEAAyE;IACzE,SAAS,CAAC,QAAQ,CAAC,EAAE,yFAAwF;IAE7G,SAAS,CAAC,QAAQ,CAAC,OAAO,yCAUvB;IAEH,SAAS,CAAC,QAAQ,CAAC,MAAM,0CAKtB;;
|
|
1
|
+
{"version":3,"file":"prism-overview-cell.component.d.ts","sourceRoot":"","sources":["../../../src/app/overview/prism-overview-cell.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;;AAOrE;;;;;;;;;;GAUG;AACH,qBAYa,0BAA0B;IACnC,QAAQ,CAAC,SAAS,wDAAsC;IACxD,QAAQ,CAAC,KAAK,8CAA4B;IAE1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAEpB;IAEH,yEAAyE;IACzE,SAAS,CAAC,QAAQ,CAAC,EAAE,yFAAwF;IAE7G,SAAS,CAAC,QAAQ,CAAC,OAAO,yCAUvB;IAEH,SAAS,CAAC,QAAQ,CAAC,MAAM,0CAKtB;;IAmBH,OAAO,CAAC,KAAK;yCAjDJ,0BAA0B;2CAA1B,0BAA0B;CAyFtC"}
|