@ng-prism/core 22.2.1 → 22.4.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 +34 -36
- package/builders.json +11 -11
- 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 +37 -22
- 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-bg-pill.component.d.ts.map +1 -1
- package/dist/app/canvas/prism-canvas-bg-pill.component.js +3 -18
- 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-rulers.component.d.ts +1 -0
- package/dist/app/canvas/prism-canvas-rulers.component.d.ts.map +1 -1
- package/dist/app/canvas/prism-canvas-rulers.component.js +9 -14
- package/dist/app/canvas/prism-canvas-toolbar.component.d.ts +28 -28
- package/dist/app/canvas/prism-canvas-toolbar.component.d.ts.map +1 -1
- package/dist/app/canvas/prism-canvas-toolbar.component.js +124 -162
- package/dist/app/canvas/prism-template-popover.component.d.ts.map +1 -1
- package/dist/app/canvas/prism-template-popover.component.js +8 -49
- package/dist/app/canvas/viewport-snap.d.ts +12 -0
- package/dist/app/canvas/viewport-snap.d.ts.map +1 -0
- package/dist/app/canvas/viewport-snap.js +23 -0
- package/dist/app/component-head/head-metrics.d.ts +2 -2
- package/dist/app/component-head/head-metrics.d.ts.map +1 -1
- package/dist/app/component-head/head-metrics.js +3 -3
- package/dist/app/component-head/prism-component-head.component.d.ts +3 -3
- package/dist/app/component-head/prism-component-head.component.d.ts.map +1 -1
- package/dist/app/component-head/prism-component-head.component.js +24 -64
- package/dist/app/component-head/prism-head-gauge.component.d.ts.map +1 -1
- package/dist/app/component-head/prism-head-gauge.component.js +4 -36
- package/dist/app/component-head/prism-head-info.component.d.ts +1 -1
- package/dist/app/component-head/prism-head-info.component.d.ts.map +1 -1
- package/dist/app/component-head/prism-head-info.component.js +4 -37
- package/dist/app/component-head/prism-stat.component.d.ts +1 -1
- package/dist/app/component-head/prism-stat.component.d.ts.map +1 -1
- package/dist/app/component-head/prism-stat.component.js +4 -15
- package/dist/app/controls/boolean-control.component.d.ts.map +1 -1
- package/dist/app/controls/boolean-control.component.js +4 -12
- package/dist/app/controls/json-control.component.d.ts.map +1 -1
- package/dist/app/controls/json-control.component.js +4 -24
- package/dist/app/controls/number-control.component.d.ts.map +1 -1
- package/dist/app/controls/number-control.component.js +4 -11
- package/dist/app/controls/string-control.component.d.ts.map +1 -1
- package/dist/app/controls/string-control.component.js +4 -11
- package/dist/app/controls/union-control.component.d.ts.map +1 -1
- package/dist/app/controls/union-control.component.js +4 -16
- package/dist/app/directives/prism-resizer.directive.d.ts +24 -1
- package/dist/app/directives/prism-resizer.directive.d.ts.map +1 -1
- package/dist/app/directives/prism-resizer.directive.js +44 -7
- package/dist/app/directives/resize-value.d.ts +22 -0
- package/dist/app/directives/resize-value.d.ts.map +1 -0
- package/dist/app/directives/resize-value.js +23 -0
- 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 +16 -22
- package/dist/app/header/prism-header-widget-host.component.d.ts.map +1 -1
- package/dist/app/header/prism-header-widget-host.component.js +4 -8
- package/dist/app/header/prism-header.component.d.ts.map +1 -1
- package/dist/app/header/prism-header.component.js +9 -78
- package/dist/app/hmr.d.ts.map +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 +5 -3
- package/dist/app/icons/prism-icon.component.d.ts +2 -2
- package/dist/app/icons/prism-icon.component.d.ts.map +1 -1
- package/dist/app/icons/prism-icon.component.js +9 -9
- package/dist/app/index.d.ts +3 -3
- package/dist/app/index.d.ts.map +1 -1
- package/dist/app/index.js +17 -24
- package/dist/app/layout-menu/prism-layout-menu.component.d.ts.map +1 -1
- package/dist/app/layout-menu/prism-layout-menu.component.js +3 -77
- package/dist/app/overview/overview-panel.js +1 -1
- package/dist/app/overview/overview-visibility.d.ts +1 -1
- package/dist/app/overview/overview-visibility.d.ts.map +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 +17 -25
- package/dist/app/overview/prism-overview.component.d.ts +2 -2
- package/dist/app/overview/prism-overview.component.d.ts.map +1 -1
- package/dist/app/overview/prism-overview.component.js +6 -14
- package/dist/app/page-renderer/prism-page-renderer.component.d.ts.map +1 -1
- package/dist/app/page-renderer/prism-page-renderer.component.js +4 -17
- package/dist/app/panels/a11y/a11y-audit.service.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-audit.service.js +14 -2
- package/dist/app/panels/a11y/a11y-core.plugin.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-core.plugin.js +1 -1
- package/dist/app/panels/a11y/a11y-dom-utils.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-dom-utils.js +9 -6
- package/dist/app/panels/a11y/a11y-header-badge.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-header-badge.component.js +6 -22
- package/dist/app/panels/a11y/a11y-keyboard-overlay.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-keyboard-overlay.component.js +6 -25
- package/dist/app/panels/a11y/a11y-keyboard.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-keyboard.component.js +5 -36
- package/dist/app/panels/a11y/a11y-keyboard.service.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-keyboard.service.js +2 -2
- package/dist/app/panels/a11y/a11y-overlay-host.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-overlay-host.component.js +5 -32
- package/dist/app/panels/a11y/a11y-panel-state.service.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-panel.component.d.ts +1 -1
- package/dist/app/panels/a11y/a11y-panel.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-panel.component.js +7 -69
- package/dist/app/panels/a11y/a11y-perspective.service.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-score.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-score.component.js +4 -31
- package/dist/app/panels/a11y/a11y-sr-overlay.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-sr-overlay.component.js +8 -28
- package/dist/app/panels/a11y/a11y-sr.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-sr.component.js +5 -28
- package/dist/app/panels/a11y/a11y-sr.service.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-sr.service.js +4 -7
- 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 +5 -9
- 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 +2 -2
- package/dist/app/panels/a11y/a11y-tree.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-tree.component.js +9 -46
- package/dist/app/panels/a11y/a11y-tree.service.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-tree.service.js +3 -5
- package/dist/app/panels/a11y/a11y-violations.component.d.ts.map +1 -1
- package/dist/app/panels/a11y/a11y-violations.component.js +7 -58
- 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-header-widgets.js +2 -2
- package/dist/app/panels/builtin-navigation-decorations.d.ts +1 -1
- package/dist/app/panels/builtin-navigation-decorations.d.ts.map +1 -1
- package/dist/app/panels/builtin-navigation-decorations.js +3 -3
- package/dist/app/panels/builtin-panels.d.ts.map +1 -1
- package/dist/app/panels/builtin-panels.js +2 -7
- package/dist/app/panels/controls/controls-plugin.js +3 -3
- package/dist/app/panels/controls/non-editable-input-types.d.ts.map +1 -1
- package/dist/app/panels/controls/non-editable-input-types.js +2 -6
- package/dist/app/panels/controls/prism-controls-panel.component.d.ts.map +1 -1
- package/dist/app/panels/controls/prism-controls-panel.component.js +5 -95
- package/dist/app/panels/events/events-plugin.js +3 -3
- package/dist/app/panels/events/prism-events-panel.component.d.ts.map +1 -1
- package/dist/app/panels/events/prism-events-panel.component.js +5 -23
- package/dist/app/panels/events/prism-json-node.component.d.ts.map +1 -1
- package/dist/app/panels/events/prism-json-node.component.js +4 -86
- package/dist/app/panels/events/prism-json-node.utils.d.ts.map +1 -1
- package/dist/app/panels/panel-host/panel-badge.d.ts +1 -1
- package/dist/app/panels/panel-host/panel-badge.d.ts.map +1 -1
- package/dist/app/panels/panel-host/panel-badge.js +2 -4
- package/dist/app/panels/panel-host/prism-panel-host.component.d.ts +1 -1
- package/dist/app/panels/panel-host/prism-panel-host.component.d.ts.map +1 -1
- package/dist/app/panels/panel-host/prism-panel-host.component.js +12 -67
- package/dist/app/provide-prism.d.ts +1 -1
- package/dist/app/provide-prism.d.ts.map +1 -1
- package/dist/app/provide-prism.js +8 -12
- package/dist/app/renderer/known-inputs.d.ts +1 -1
- package/dist/app/renderer/known-inputs.d.ts.map +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 +10 -5
- package/dist/app/renderer/prism-renderer.component.d.ts +28 -3
- package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
- package/dist/app/renderer/prism-renderer.component.js +107 -80
- package/dist/app/renderer/projectable-content.d.ts.map +1 -1
- package/dist/app/renderer/projectable-content.js +4 -6
- package/dist/app/renderer/snippet-generator.d.ts +1 -1
- package/dist/app/renderer/snippet-generator.d.ts.map +1 -1
- package/dist/app/renderer/snippet-generator.js +7 -22
- package/dist/app/services/navigation-item.types.d.ts +1 -1
- package/dist/app/services/navigation-item.types.d.ts.map +1 -1
- package/dist/app/services/prism-canvas.service.d.ts +33 -0
- package/dist/app/services/prism-canvas.service.d.ts.map +1 -1
- package/dist/app/services/prism-canvas.service.js +71 -6
- 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 +62 -146
- package/dist/app/services/prism-event-log.service.d.ts.map +1 -1
- package/dist/app/services/prism-event-log.service.js +1 -4
- package/dist/app/services/prism-layout.service.d.ts.map +1 -1
- package/dist/app/services/prism-layout.service.js +5 -4
- package/dist/app/services/prism-manifest.service.d.ts +1 -1
- package/dist/app/services/prism-manifest.service.d.ts.map +1 -1
- package/dist/app/services/prism-manifest.service.js +1 -1
- 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-navigation.service.d.ts +1 -1
- package/dist/app/services/prism-navigation.service.d.ts.map +1 -1
- package/dist/app/services/prism-navigation.service.js +5 -13
- package/dist/app/services/prism-panel.service.d.ts +2 -2
- package/dist/app/services/prism-panel.service.d.ts.map +1 -1
- package/dist/app/services/prism-panel.service.js +4 -7
- package/dist/app/services/prism-persistence.service.d.ts.map +1 -1
- package/dist/app/services/prism-persistence.service.js +9 -11
- package/dist/app/services/prism-plugin.service.d.ts.map +1 -1
- package/dist/app/services/prism-renderer.service.d.ts.map +1 -1
- package/dist/app/services/prism-renderer.service.js +5 -9
- package/dist/app/services/prism-search.service.d.ts.map +1 -1
- package/dist/app/services/prism-search.service.js +1 -2
- package/dist/app/services/prism-theme.service.d.ts.map +1 -1
- package/dist/app/services/prism-theme.service.js +6 -4
- package/dist/app/services/prism-url-state.service.d.ts.map +1 -1
- package/dist/app/services/prism-url-state.service.js +4 -10
- 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 +13 -29
- 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 +13 -32
- package/dist/app/shell/prism-shell.component.d.ts.map +1 -1
- package/dist/app/shell/prism-shell.component.js +26 -125
- package/dist/app/sidebar/navigation-decorations.d.ts +4 -4
- package/dist/app/sidebar/navigation-decorations.d.ts.map +1 -1
- package/dist/app/sidebar/navigation-decorations.js +3 -3
- package/dist/app/sidebar/prism-sidebar.component.d.ts +3 -3
- package/dist/app/sidebar/prism-sidebar.component.d.ts.map +1 -1
- package/dist/app/sidebar/prism-sidebar.component.js +21 -156
- package/dist/app/theme/prism-default-theme.d.ts.map +1 -1
- package/dist/app/theme/prism-default-theme.js +6 -6
- package/dist/app/tokens/prism-tokens.d.ts.map +1 -1
- package/dist/app/tokens/prism-tokens.js +1 -1
- package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts.map +1 -1
- package/dist/app/variant-ribbon/prism-variant-ribbon.component.js +4 -49
- package/dist/app/variant-ribbon/spectrum.d.ts +1 -1
- package/dist/app/variant-ribbon/spectrum.d.ts.map +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.d.ts.map +1 -1
- package/dist/app/view-tab-bar/next-view-id.js +2 -4
- package/dist/app/view-tab-bar/prism-view-panel-host.component.d.ts.map +1 -1
- package/dist/app/view-tab-bar/prism-view-panel-host.component.js +5 -17
- package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts.map +1 -1
- package/dist/app/view-tab-bar/prism-view-tab-bar.component.js +4 -27
- package/dist/builder/a11y/a11y-report-reader.d.ts +2 -2
- package/dist/builder/a11y/a11y-report-reader.d.ts.map +1 -1
- package/dist/builder/a11y/a11y-report-reader.js +8 -8
- package/dist/builder/build/index.d.ts.map +1 -1
- package/dist/builder/build/index.js +5 -9
- package/dist/builder/build/schema.d.ts.map +1 -1
- package/dist/builder/config-loader/config-loader.d.ts.map +1 -1
- package/dist/builder/config-loader/config-loader.js +4 -5
- package/dist/builder/manifest/host-parser.d.ts.map +1 -1
- package/dist/builder/manifest/host-parser.js +1 -1
- package/dist/builder/manifest/runtime-manifest.generator.d.ts +1 -1
- package/dist/builder/manifest/runtime-manifest.generator.d.ts.map +1 -1
- package/dist/builder/manifest/runtime-manifest.generator.js +14 -35
- package/dist/builder/plugin-runner/plugin-runner.d.ts.map +1 -1
- package/dist/builder/plugin-runner/plugin-runner.js +2 -4
- 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 +338 -38
- 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 +113 -72
- package/dist/builder/scanner/entry-point-discovery.d.ts.map +1 -1
- package/dist/builder/scanner/entry-point-discovery.js +3 -5
- package/dist/builder/scanner/entry-point.scanner.d.ts.map +1 -1
- package/dist/builder/scanner/entry-point.scanner.js +1 -3
- package/dist/builder/scanner/index.d.ts +1 -1
- package/dist/builder/scanner/index.d.ts.map +1 -1
- 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 +157 -76
- package/dist/builder/scanner/manifest.generator.d.ts.map +1 -1
- package/dist/builder/scanner/manifest.generator.js +8 -6
- 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 +10 -8
- 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/serve/index.d.ts.map +1 -1
- package/dist/builder/serve/index.js +8 -10
- package/dist/builder/serve/schema.d.ts.map +1 -1
- package/dist/builder/shared/index.d.ts +1 -1
- package/dist/builder/shared/index.d.ts.map +1 -1
- package/dist/builder/shared/index.js +1 -1
- 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 +29 -38
- package/dist/builder/shared/resolve-cache-dir.d.ts.map +1 -1
- package/dist/builder/shared/resolve-cache-dir.js +1 -1
- package/dist/builder/watcher/index.d.ts +1 -1
- package/dist/builder/watcher/index.d.ts.map +1 -1
- package/dist/builder/watcher/prism-watcher.d.ts.map +1 -1
- package/dist/builder/watcher/prism-watcher.js +14 -12
- package/dist/config/index.d.ts +2 -2
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- 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 +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 +4 -4
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +7 -11
- package/dist/plugin/page-helpers.d.ts +1 -1
- package/dist/plugin/page-helpers.d.ts.map +1 -1
- package/dist/plugin/page-helpers.js +2 -2
- package/dist/plugin/page.types.d.ts.map +1 -1
- package/dist/plugin/plugin.types.d.ts +31 -14
- package/dist/plugin/plugin.types.d.ts.map +1 -1
- package/dist/schematics/migrations/v21-13-manifest-cache/index.d.ts.map +1 -1
- package/dist/schematics/migrations/v21-13-manifest-cache/index.js +4 -10
- package/dist/schematics/migrations/v22-0-cache-dir-rename/index.d.ts.map +1 -1
- package/dist/schematics/migrations/v22-0-cache-dir-rename/index.js +6 -10
- package/dist/schematics/ng-add/index.d.ts.map +1 -1
- package/dist/schematics/ng-add/index.js +122 -56
- package/dist/schematics/ng-add/schema.d.ts.map +1 -1
- package/dist/schematics/utils/config-ast.d.ts.map +1 -1
- package/dist/schematics/utils/config-ast.js +8 -15
- package/dist/schematics/utils/tsconfig-paths.d.ts.map +1 -1
- package/dist/schematics/utils/tsconfig-paths.js +1 -1
- 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 +5 -13
- package/dist/shared/canvas-layout.type.d.ts.map +1 -1
- package/dist/shared/canvas-layout.type.js +1 -4
- 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 +43 -0
- package/dist/shared/viewport.type.d.ts.map +1 -0
- package/dist/shared/viewport.type.js +44 -0
- package/dist/transformer/cli.js +0 -0
- package/dist/transformer/index.d.ts +2 -2
- package/dist/transformer/index.d.ts.map +1 -1
- package/dist/transformer/index.js +2 -2
- package/dist/transformer/showcase-strip.transformer.d.ts.map +1 -1
- package/dist/transformer/showcase-strip.transformer.js +7 -16
- package/dist/transformer/strip-directory.d.ts.map +1 -1
- package/dist/transformer/strip-directory.js +2 -4
- package/package.json +5 -2
- package/schematics/collection.json +7 -7
- package/schematics/migrations.json +12 -12
- package/schematics/ng-add/schema.json +22 -22
- package/src/builder/build/schema.json +36 -36
- package/src/builder/serve/schema.json +37 -37
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, inject, input
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
|
|
2
2
|
import { PrismEventLogService } from '../../services/prism-event-log.service.js';
|
|
3
3
|
import { PrismJsonNodeComponent } from './prism-json-node.component.js';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -42,7 +42,7 @@ export class PrismEventsPanelComponent {
|
|
|
42
42
|
const d = new Date(ts);
|
|
43
43
|
return d.toLocaleTimeString('en-US', {
|
|
44
44
|
hour12: false,
|
|
45
|
-
fractionalSecondDigits: 3
|
|
45
|
+
fractionalSecondDigits: 3
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
48
|
padIdx(n) {
|
|
@@ -56,28 +56,10 @@ export class PrismEventsPanelComponent {
|
|
|
56
56
|
} if (rf & 2) {
|
|
57
57
|
i0.ɵɵadvance(2);
|
|
58
58
|
i0.ɵɵrepeater(ctx.eventLogService.events());
|
|
59
|
-
} }, dependencies: [PrismJsonNodeComponent], styles: [".ev-panel[_ngcontent-%COMP%] {\n
|
|
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 flex: 1;\n padding: 6px 0;\n overflow-y: auto;\n}\n\n.ev[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto auto 1fr auto;\n gap: 12px;\n align-items: center;\n min-height: 32px;\n padding: 6px 20px;\n font-family: var(--%NS%font-mono);\n font-size: 12px;\n border-bottom: 1px solid var(--%NS%prism-border);\n}\n\n.ev[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--%NS%prism-primary) 3%, transparent);\n}\n\n.ev-time[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--%NS%prism-text-ghost);\n}\n\n.ev-idx[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--%NS%prism-text-muted);\n}\n\n.ev-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--%NS%prism-primary);\n}\n\n.ev-args[_ngcontent-%COMP%] {\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--%NS%prism-text-2);\n white-space: nowrap;\n}\n\n.ev-empty[_ngcontent-%COMP%] {\n padding: 16px 20px;\n margin: 0;\n font-size: 13px;\n color: var(--%NS%prism-text-ghost);\n}"] });
|
|
60
60
|
}
|
|
61
61
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismEventsPanelComponent, [{
|
|
62
62
|
type: Component,
|
|
63
|
-
args: [{ selector: 'prism-events-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismJsonNodeComponent], template:
|
|
64
|
-
<div class="ev-panel">
|
|
65
|
-
<div class="ev-body">
|
|
66
|
-
@for (entry of eventLogService.events(); track entry.id; let i = $index)
|
|
67
|
-
{
|
|
68
|
-
<div class="ev">
|
|
69
|
-
<span class="ev-time">{{ formatTime(entry.timestamp) }}</span>
|
|
70
|
-
<span class="ev-idx"
|
|
71
|
-
>#{{ padIdx(eventLogService.events().length - i) }}</span
|
|
72
|
-
>
|
|
73
|
-
<span class="ev-name">{{ entry.name }}</span>
|
|
74
|
-
<span class="ev-args"><prism-json-node [value]="entry.value" /></span>
|
|
75
|
-
</div>
|
|
76
|
-
} @empty {
|
|
77
|
-
<p class="ev-empty">No events recorded</p>
|
|
78
|
-
}
|
|
79
|
-
</div>
|
|
80
|
-
</div>
|
|
81
|
-
`, styles: ["\n .ev-panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .ev-body {\n padding: 6px 0;\n overflow-y: auto;\n flex: 1;\n }\n\n .ev {\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:hover {\n background: color-mix(in srgb, var(--prism-primary) 3%, transparent);\n }\n\n .ev-time {\n color: var(--prism-text-ghost);\n font-size: 11px;\n }\n .ev-idx {\n color: var(--prism-text-muted);\n font-size: 11px;\n }\n .ev-name {\n color: var(--prism-primary);\n font-weight: 500;\n }\n .ev-args {\n color: var(--prism-text-2);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .ev-empty {\n color: var(--prism-text-ghost);\n font-size: 13px;\n padding: 16px 20px;\n margin: 0;\n }\n "] }]
|
|
63
|
+
args: [{ selector: 'prism-events-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismJsonNodeComponent], template: "<div class=\"ev-panel\">\n <div class=\"ev-body\">\n @for (entry of eventLogService.events(); track entry.id; let i = $index) {\n <div class=\"ev\">\n <span class=\"ev-time\">{{ formatTime(entry.timestamp) }}</span>\n <span class=\"ev-idx\">#{{ padIdx(eventLogService.events().length - i) }}</span>\n <span class=\"ev-name\">{{ entry.name }}</span>\n <span class=\"ev-args\"><prism-json-node [value]=\"entry.value\" /></span>\n </div>\n } @empty {\n <p class=\"ev-empty\">No events recorded</p>\n }\n </div>\n</div>\n", styles: [".ev-panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.ev-body {\n flex: 1;\n padding: 6px 0;\n overflow-y: auto;\n}\n\n.ev {\n display: grid;\n grid-template-columns: auto auto 1fr auto;\n gap: 12px;\n align-items: center;\n min-height: 32px;\n padding: 6px 20px;\n font-family: var(--font-mono);\n font-size: 12px;\n border-bottom: 1px solid var(--prism-border);\n}\n\n.ev:hover {\n background: color-mix(in srgb, var(--prism-primary) 3%, transparent);\n}\n\n.ev-time {\n font-size: 11px;\n color: var(--prism-text-ghost);\n}\n\n.ev-idx {\n font-size: 11px;\n color: var(--prism-text-muted);\n}\n\n.ev-name {\n font-weight: 500;\n color: var(--prism-primary);\n}\n\n.ev-args {\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--prism-text-2);\n white-space: nowrap;\n}\n\n.ev-empty {\n padding: 16px 20px;\n margin: 0;\n font-size: 13px;\n color: var(--prism-text-ghost);\n}\n"] }]
|
|
82
64
|
}], null, { activeComponent: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeComponent", required: false }] }] }); })();
|
|
83
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismEventsPanelComponent, { className: "PrismEventsPanelComponent", filePath: "app/panels/events/prism-events-panel.component.ts", lineNumber:
|
|
65
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismEventsPanelComponent, { className: "PrismEventsPanelComponent", filePath: "app/panels/events/prism-events-panel.component.ts", lineNumber: 14 }); })();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-json-node.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/events/prism-json-node.component.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prism-json-node.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/events/prism-json-node.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAsC,IAAI,EAAE,MAAM,eAAe,CAAC;;AAMzE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,KAAK,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAShG,qBAOa,sBAAsB;IAC/B,QAAQ,CAAC,KAAK,+CAA6B;IAC3C,QAAQ,CAAC,KAAK,8CAAoB;IAElC,SAAS,CAAC,QAAQ,CAAC,QAAQ,MAAa;IACxC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAA0B;IAE/E,SAAS,CAAC,QAAQ,CAAC,IAAI,+CAAyC;IAChE,SAAS,CAAC,QAAQ,CAAC,QAAQ,kDAAiB;IAE5C,SAAS,CAAC,QAAQ,CAAC,OAAO;aAAmB,MAAM;eAAS,OAAO;SAWhE;IAEH,SAAS,CAAC,QAAQ,CAAC,KAAK,4CAIrB;IAEH,SAAS,CAAC,QAAQ,CAAC,OAAO,yCAAgD;IAE1E,SAAS,CAAC,MAAM,IAAI,IAAI;yCA/Bf,sBAAsB;2CAAtB,sBAAsB;CAkClC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Component, computed, input, signal } from '@angular/core';
|
|
2
1
|
import { NgComponentOutlet } from '@angular/common';
|
|
2
|
+
import { Component, computed, input, signal } from '@angular/core';
|
|
3
3
|
import { summarizeValue } from './prism-json-node.utils.js';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
const _c0 = (a0, a1) => ({ value: a0, depth: a1 });
|
|
@@ -266,92 +266,10 @@ export class PrismJsonNodeComponent {
|
|
|
266
266
|
} if (rf & 2) {
|
|
267
267
|
let tmp_0_0;
|
|
268
268
|
i0.ɵɵconditional((tmp_0_0 = ctx.type()) === "object" ? 0 : tmp_0_0 === "array" ? 1 : tmp_0_0 === "string" ? 2 : tmp_0_0 === "number" ? 3 : tmp_0_0 === "boolean" ? 4 : tmp_0_0 === "null" ? 5 : tmp_0_0 === "undefined" ? 6 : -1);
|
|
269
|
-
} }, dependencies: [NgComponentOutlet], styles: ["[_nghost-%COMP%] {\n
|
|
269
|
+
} }, dependencies: [NgComponentOutlet], styles: ["[_nghost-%COMP%] {\n display: inline;\n font-family: var(--%NS%prism-font-mono, monospace);\n font-size: 12px;\n}\n\n.json-expandable[_ngcontent-%COMP%] {\n display: inline-flex;\n gap: 2px;\n align-items: baseline;\n cursor: pointer;\n user-select: none;\n}\n\n.json-expandable[_ngcontent-%COMP%]:hover .json-summary[_ngcontent-%COMP%] {\n opacity: 0.8;\n}\n\n.json-chevron[_ngcontent-%COMP%] {\n flex-shrink: 0;\n width: 10px;\n font-size: 10px;\n color: var(--%NS%prism-text-muted);\n}\n\n.json-summary[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n}\n\n.json-children[_ngcontent-%COMP%] {\n display: block;\n padding-left: 16px;\n margin: 2px 0;\n border-left: 1px solid var(--%NS%prism-border);\n}\n\n.json-row[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 0;\n align-items: baseline;\n padding: 1px 0;\n}\n\n.json-key[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n}\n\n.json-index[_ngcontent-%COMP%] {\n font-style: italic;\n color: var(--%NS%prism-text-muted);\n}\n\n.json-colon[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n}\n\n.json-brace[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n}\n\n.json-string[_ngcontent-%COMP%] {\n color: var(--%NS%prism-code-attr);\n}\n\n.json-number[_ngcontent-%COMP%] {\n color: var(--%NS%prism-warn);\n}\n\n.json-boolean[_ngcontent-%COMP%] {\n color: var(--%NS%prism-primary);\n}\n\n.json-null[_ngcontent-%COMP%], \n.json-undefined[_ngcontent-%COMP%] {\n font-style: italic;\n color: var(--%NS%prism-text-muted);\n}"] });
|
|
270
270
|
}
|
|
271
271
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismJsonNodeComponent, [{
|
|
272
272
|
type: Component,
|
|
273
|
-
args: [{ selector: 'prism-json-node', standalone: true, imports: [NgComponentOutlet], template:
|
|
274
|
-
@switch (type()) {
|
|
275
|
-
@case ('object') {
|
|
276
|
-
@if (entries().length === 0) {
|
|
277
|
-
<span class="json-brace">{{ '{}' }}</span>
|
|
278
|
-
} @else {
|
|
279
|
-
<span class="json-expandable" (click)="toggle()">
|
|
280
|
-
<span class="json-chevron">{{ expanded() ? '▾' : '▸' }}</span>
|
|
281
|
-
@if (!expanded()) {
|
|
282
|
-
<span class="json-summary">{{ summary() }}</span>
|
|
283
|
-
}
|
|
284
|
-
</span>
|
|
285
|
-
@if (expanded()) {
|
|
286
|
-
@if (depth() >= maxDepth) {
|
|
287
|
-
<span class="json-summary">…</span>
|
|
288
|
-
} @else {
|
|
289
|
-
<span class="json-brace">{{ '{' }}</span>
|
|
290
|
-
<div class="json-children">
|
|
291
|
-
@for (entry of entries(); track entry.key) {
|
|
292
|
-
<div class="json-row">
|
|
293
|
-
<span class="json-key">{{ entry.key }}</span>
|
|
294
|
-
<span class="json-colon">: </span>
|
|
295
|
-
<ng-container
|
|
296
|
-
[ngComponentOutlet]="self"
|
|
297
|
-
[ngComponentOutletInputs]="{ value: entry.value, depth: depth() + 1 }"
|
|
298
|
-
/>
|
|
299
|
-
</div>
|
|
300
|
-
}
|
|
301
|
-
</div>
|
|
302
|
-
<span class="json-brace">{{ '}' }}</span>
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
@case ('array') {
|
|
308
|
-
@if (items().length === 0) {
|
|
309
|
-
<span class="json-brace">[]</span>
|
|
310
|
-
} @else {
|
|
311
|
-
<span class="json-expandable" (click)="toggle()">
|
|
312
|
-
<span class="json-chevron">{{ expanded() ? '▾' : '▸' }}</span>
|
|
313
|
-
@if (!expanded()) {
|
|
314
|
-
<span class="json-summary">{{ summary() }}</span>
|
|
315
|
-
}
|
|
316
|
-
</span>
|
|
317
|
-
@if (expanded()) {
|
|
318
|
-
@if (depth() >= maxDepth) {
|
|
319
|
-
<span class="json-summary">…</span>
|
|
320
|
-
} @else {
|
|
321
|
-
<span class="json-brace">[</span>
|
|
322
|
-
<div class="json-children">
|
|
323
|
-
@for (item of items(); track $index) {
|
|
324
|
-
<div class="json-row">
|
|
325
|
-
<span class="json-index">{{ $index }}</span>
|
|
326
|
-
<span class="json-colon">: </span>
|
|
327
|
-
<ng-container
|
|
328
|
-
[ngComponentOutlet]="self"
|
|
329
|
-
[ngComponentOutletInputs]="{ value: item, depth: depth() + 1 }"
|
|
330
|
-
/>
|
|
331
|
-
</div>
|
|
332
|
-
}
|
|
333
|
-
</div>
|
|
334
|
-
<span class="json-brace">]</span>
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
@case ('string') {
|
|
340
|
-
<span class="json-string">"{{ value() }}"</span>
|
|
341
|
-
}
|
|
342
|
-
@case ('number') {
|
|
343
|
-
<span class="json-number">{{ value() }}</span>
|
|
344
|
-
}
|
|
345
|
-
@case ('boolean') {
|
|
346
|
-
<span class="json-boolean">{{ value() }}</span>
|
|
347
|
-
}
|
|
348
|
-
@case ('null') {
|
|
349
|
-
<span class="json-null">null</span>
|
|
350
|
-
}
|
|
351
|
-
@case ('undefined') {
|
|
352
|
-
<span class="json-undefined">undefined</span>
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
`, styles: ["\n :host {\n display: inline;\n font-family: var(--prism-font-mono, monospace);\n font-size: 12px;\n }\n .json-expandable {\n cursor: pointer;\n user-select: none;\n display: inline-flex;\n align-items: baseline;\n gap: 2px;\n }\n .json-expandable:hover .json-summary {\n opacity: 0.8;\n }\n .json-chevron {\n color: var(--prism-text-muted);\n font-size: 10px;\n width: 10px;\n flex-shrink: 0;\n }\n .json-summary {\n color: var(--prism-text-muted);\n }\n .json-children {\n display: block;\n padding-left: 16px;\n border-left: 1px solid var(--prism-border);\n margin: 2px 0;\n }\n .json-row {\n display: flex;\n align-items: baseline;\n flex-wrap: wrap;\n gap: 0;\n padding: 1px 0;\n }\n .json-key {\n color: var(--prism-text-muted);\n }\n .json-index {\n color: var(--prism-text-muted);\n font-style: italic;\n }\n .json-colon {\n color: var(--prism-text-muted);\n }\n .json-brace {\n color: var(--prism-text-muted);\n }\n .json-string {\n color: var(--prism-code-attr);\n }\n .json-number {\n color: var(--prism-warn);\n }\n .json-boolean {\n color: var(--prism-primary);\n }\n .json-null,\n .json-undefined {\n color: var(--prism-text-muted);\n font-style: italic;\n }\n "] }]
|
|
273
|
+
args: [{ selector: 'prism-json-node', standalone: true, imports: [NgComponentOutlet], template: "@switch (type()) {\n @case ('object') {\n @if (entries().length === 0) {\n <span class=\"json-brace\">{{ '{}' }}</span>\n } @else {\n <span\n class=\"json-expandable\"\n (click)=\"toggle()\">\n <span class=\"json-chevron\">{{ expanded() ? '\u25BE' : '\u25B8' }}</span>\n @if (!expanded()) {\n <span class=\"json-summary\">{{ summary() }}</span>\n }\n </span>\n @if (expanded()) {\n @if (depth() >= maxDepth) {\n <span class=\"json-summary\">\u2026</span>\n } @else {\n <span class=\"json-brace\">{{ '{' }}</span>\n <div class=\"json-children\">\n @for (entry of entries(); track entry.key) {\n <div class=\"json-row\">\n <span class=\"json-key\">{{ entry.key }}</span>\n <span class=\"json-colon\">: </span>\n <ng-container\n [ngComponentOutlet]=\"self\"\n [ngComponentOutletInputs]=\"{ value: entry.value, depth: depth() + 1 }\" />\n </div>\n }\n </div>\n <span class=\"json-brace\">{{ '}' }}</span>\n }\n }\n }\n }\n @case ('array') {\n @if (items().length === 0) {\n <span class=\"json-brace\">[]</span>\n } @else {\n <span\n class=\"json-expandable\"\n (click)=\"toggle()\">\n <span class=\"json-chevron\">{{ expanded() ? '\u25BE' : '\u25B8' }}</span>\n @if (!expanded()) {\n <span class=\"json-summary\">{{ summary() }}</span>\n }\n </span>\n @if (expanded()) {\n @if (depth() >= maxDepth) {\n <span class=\"json-summary\">\u2026</span>\n } @else {\n <span class=\"json-brace\">[</span>\n <div class=\"json-children\">\n @for (item of items(); track $index) {\n <div class=\"json-row\">\n <span class=\"json-index\">{{ $index }}</span>\n <span class=\"json-colon\">: </span>\n <ng-container\n [ngComponentOutlet]=\"self\"\n [ngComponentOutletInputs]=\"{ value: item, depth: depth() + 1 }\" />\n </div>\n }\n </div>\n <span class=\"json-brace\">]</span>\n }\n }\n }\n }\n @case ('string') {\n <span class=\"json-string\">\"{{ value() }}\"</span>\n }\n @case ('number') {\n <span class=\"json-number\">{{ value() }}</span>\n }\n @case ('boolean') {\n <span class=\"json-boolean\">{{ value() }}</span>\n }\n @case ('null') {\n <span class=\"json-null\">null</span>\n }\n @case ('undefined') {\n <span class=\"json-undefined\">undefined</span>\n }\n}\n", styles: [":host {\n display: inline;\n font-family: var(--prism-font-mono, monospace);\n font-size: 12px;\n}\n\n.json-expandable {\n display: inline-flex;\n gap: 2px;\n align-items: baseline;\n cursor: pointer;\n user-select: none;\n}\n\n.json-expandable:hover .json-summary {\n opacity: 0.8;\n}\n\n.json-chevron {\n flex-shrink: 0;\n width: 10px;\n font-size: 10px;\n color: var(--prism-text-muted);\n}\n\n.json-summary {\n color: var(--prism-text-muted);\n}\n\n.json-children {\n display: block;\n padding-left: 16px;\n margin: 2px 0;\n border-left: 1px solid var(--prism-border);\n}\n\n.json-row {\n display: flex;\n flex-wrap: wrap;\n gap: 0;\n align-items: baseline;\n padding: 1px 0;\n}\n\n.json-key {\n color: var(--prism-text-muted);\n}\n\n.json-index {\n font-style: italic;\n color: var(--prism-text-muted);\n}\n\n.json-colon {\n color: var(--prism-text-muted);\n}\n\n.json-brace {\n color: var(--prism-text-muted);\n}\n\n.json-string {\n color: var(--prism-code-attr);\n}\n\n.json-number {\n color: var(--prism-warn);\n}\n\n.json-boolean {\n color: var(--prism-primary);\n}\n\n.json-null,\n.json-undefined {\n font-style: italic;\n color: var(--prism-text-muted);\n}\n"] }]
|
|
356
274
|
}], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], depth: [{ type: i0.Input, args: [{ isSignal: true, alias: "depth", required: false }] }] }); })();
|
|
357
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismJsonNodeComponent, { className: "PrismJsonNodeComponent", filePath: "app/panels/events/prism-json-node.component.ts", lineNumber:
|
|
275
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismJsonNodeComponent, { className: "PrismJsonNodeComponent", filePath: "app/panels/events/prism-json-node.component.ts", lineNumber: 26 }); })();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-json-node.utils.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/events/prism-json-node.utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,SAAI,EAAE,OAAO,kBAAwB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"prism-json-node.utils.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/events/prism-json-node.utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,SAAI,EAAE,OAAO,kBAAwB,GAAG,MAAM,CAmC/F"}
|
|
@@ -6,7 +6,7 @@ import type { A11yScoreResult, A11yThresholds } from '../a11y/a11y.types.js';
|
|
|
6
6
|
* Passed in rather than injected so this stays a pure function. The panel host
|
|
7
7
|
* reads them from its own services and hands them over; that is the whole
|
|
8
8
|
* reason the built-in chain could not simply be expressed as
|
|
9
|
-
* {@link PanelDefinition.badge} callbacks
|
|
9
|
+
* {@link PanelDefinition.badge} callbacks: `a11y` reports a running audit, not
|
|
10
10
|
* anything the component's meta holds.
|
|
11
11
|
*
|
|
12
12
|
* The thresholds travel with the audit result rather than being baked in here.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel-badge.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/panel-host/panel-badge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"panel-badge.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/panel-host/panel-badge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAErG,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE7E;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;CAClC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,GAAG,IAAI,EAAE,OAAO,EAAE,iBAAiB,GAAG,UAAU,GAAG,IAAI,CAwB3I"}
|
|
@@ -18,9 +18,7 @@ export function resolvePanelBadge(panel, component, context) {
|
|
|
18
18
|
return component ? panel.badge(component) : null;
|
|
19
19
|
}
|
|
20
20
|
if (panel.id === 'controls') {
|
|
21
|
-
return context.inputCount > 0
|
|
22
|
-
? { text: String(context.inputCount), variant: 'default' }
|
|
23
|
-
: null;
|
|
21
|
+
return context.inputCount > 0 ? { text: String(context.inputCount), variant: 'default' } : null;
|
|
24
22
|
}
|
|
25
23
|
if (panel.id === 'a11y') {
|
|
26
24
|
// `=== null` rather than a falsy check: a score of 0 is a real, and the
|
|
@@ -30,7 +28,7 @@ export function resolvePanelBadge(panel, component, context) {
|
|
|
30
28
|
return null;
|
|
31
29
|
return {
|
|
32
30
|
text: String(result.score),
|
|
33
|
-
variant: deriveA11ySummary(result, context.a11yThresholds).variant
|
|
31
|
+
variant: deriveA11ySummary(result, context.a11yThresholds).variant
|
|
34
32
|
};
|
|
35
33
|
}
|
|
36
34
|
return null;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EnvironmentInjector, type Type } from '@angular/core';
|
|
2
|
-
import { PrismPanelService } from '../../services/prism-panel.service.js';
|
|
3
2
|
import type { PanelDefinition } from '../../../plugin/plugin.types.js';
|
|
3
|
+
import { PrismPanelService } from '../../services/prism-panel.service.js';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
type RenderedPanelEntry = {
|
|
6
6
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-panel-host.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/panel-host/prism-panel-host.component.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"prism-panel-host.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/panel-host/prism-panel-host.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAwD,mBAAmB,EAAkB,KAAK,IAAI,EAAa,MAAM,eAAe,CAAC;AAChJ,OAAO,KAAK,EAAiB,eAAe,EAAmB,MAAM,iCAAiC,CAAC;AAGvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;;AAU1E,KAAK,kBAAkB,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,qBAQa,uBAAuB;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkC;IACtD,SAAS,CAAC,QAAQ,CAAC,YAAY,oBAA6B;IAC5D,SAAS,CAAC,QAAQ,CAAC,WAAW,sBAA+B;IAC7D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2C;IACpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAE9D;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAO5B;IAEH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAIxB;IAEH,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,eAAe;IAQ3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;IAEhD,SAAS,CAAC,QAAQ,CAAC,SAAS,oDAMzB;IAEH,SAAS,CAAC,QAAQ,CAAC,WAAW;;OAE1B;IAEJ,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAE9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsD;IACrF,SAAS,CAAC,QAAQ,CAAC,mBAAmB,uDAA8D;;IAwCpG,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,mBAAmB;yCAnIlB,uBAAuB;2CAAvB,uBAAuB;CAuJnC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { NgComponentOutlet } from '@angular/common';
|
|
2
|
-
import { Component, computed, effect, EnvironmentInjector, inject, signal,
|
|
2
|
+
import { ChangeDetectionStrategy, Component, computed, effect, EnvironmentInjector, inject, signal, untracked } from '@angular/core';
|
|
3
3
|
import { PrismIconComponent } from '../../icons/prism-icon.component.js';
|
|
4
|
-
import { BUILTIN_PANELS } from '../builtin-panels.js';
|
|
5
|
-
import { A11yAuditService } from '../a11y/a11y-audit.service.js';
|
|
6
4
|
import { PrismNavigationService } from '../../services/prism-navigation.service.js';
|
|
7
5
|
import { PrismPanelService } from '../../services/prism-panel.service.js';
|
|
8
6
|
import { PrismPluginService } from '../../services/prism-plugin.service.js';
|
|
9
7
|
import { PrismRendererService } from '../../services/prism-renderer.service.js';
|
|
10
|
-
import { resolveA11yThresholds } from '../a11y/a11y-thresholds.js';
|
|
11
8
|
import { PRISM_CONFIG, PRISM_MANIFEST } from '../../tokens/prism-tokens.js';
|
|
9
|
+
import { A11yAuditService } from '../a11y/a11y-audit.service.js';
|
|
10
|
+
import { resolveA11yThresholds } from '../a11y/a11y-thresholds.js';
|
|
11
|
+
import { BUILTIN_PANELS } from '../builtin-panels.js';
|
|
12
12
|
import { resolvePanelBadge } from './panel-badge.js';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
const _forTrack0 = ($index, $item) => $item.id;
|
|
@@ -86,7 +86,7 @@ export class PrismPanelHostComponent {
|
|
|
86
86
|
const meta = this.manifest.meta?.['a11y'];
|
|
87
87
|
return resolveA11yThresholds({
|
|
88
88
|
...meta?.thresholds,
|
|
89
|
-
...this.config.a11y?.thresholds
|
|
89
|
+
...this.config.a11y?.thresholds
|
|
90
90
|
});
|
|
91
91
|
}, /* @ts-ignore */
|
|
92
92
|
...(ngDevMode ? [{ debugName: "a11yThresholds" }] : /* istanbul ignore next */ []));
|
|
@@ -99,23 +99,20 @@ export class PrismPanelHostComponent {
|
|
|
99
99
|
return resolvePanelBadge(panel, this.nav.activeComponent(), {
|
|
100
100
|
inputCount: this.inputCount(),
|
|
101
101
|
a11yResult: this.auditService.scoreResult(),
|
|
102
|
-
a11yThresholds: this.a11yThresholds()
|
|
102
|
+
a11yThresholds: this.a11yThresholds()
|
|
103
103
|
});
|
|
104
104
|
}
|
|
105
105
|
builtInPanels = BUILTIN_PANELS;
|
|
106
106
|
allPanels = computed(() => {
|
|
107
107
|
const comp = this.nav.activeComponent();
|
|
108
|
-
const panels = [
|
|
109
|
-
...this.builtInPanels.filter((p) => p.placement !== 'view'),
|
|
110
|
-
...this.pluginService.addonPanels(),
|
|
111
|
-
];
|
|
108
|
+
const panels = [...this.builtInPanels.filter((p) => p.placement !== 'view'), ...this.pluginService.addonPanels()];
|
|
112
109
|
if (!comp)
|
|
113
110
|
return panels;
|
|
114
111
|
return panels.filter((p) => !p.isVisible || p.isVisible(comp));
|
|
115
112
|
}, /* @ts-ignore */
|
|
116
113
|
...(ngDevMode ? [{ debugName: "allPanels" }] : /* istanbul ignore next */ []));
|
|
117
114
|
panelInputs = computed(() => ({
|
|
118
|
-
activeComponent: this.nav.activeComponent()
|
|
115
|
+
activeComponent: this.nav.activeComponent()
|
|
119
116
|
}), /* @ts-ignore */
|
|
120
117
|
...(ngDevMode ? [{ debugName: "panelInputs" }] : /* istanbul ignore next */ []));
|
|
121
118
|
lazyCache = new Map();
|
|
@@ -179,7 +176,7 @@ export class PrismPanelHostComponent {
|
|
|
179
176
|
id: panel.id,
|
|
180
177
|
component,
|
|
181
178
|
injector: this.panelService.getInjector(panel.id),
|
|
182
|
-
keepAlive: panel.keepAlive === true
|
|
179
|
+
keepAlive: panel.keepAlive === true
|
|
183
180
|
});
|
|
184
181
|
this.renderedPanels.set(next);
|
|
185
182
|
}
|
|
@@ -216,62 +213,10 @@ export class PrismPanelHostComponent {
|
|
|
216
213
|
i0.ɵɵproperty("id", "panel-" + ctx.panelService.activePanelId());
|
|
217
214
|
i0.ɵɵadvance();
|
|
218
215
|
i0.ɵɵrepeater(ctx.renderedPanelsArray());
|
|
219
|
-
} }, dependencies: [NgComponentOutlet, PrismIconComponent], styles: [".panel[_ngcontent-%COMP%] {\n
|
|
216
|
+
} }, dependencies: [NgComponentOutlet, PrismIconComponent], styles: [".panel[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n background: var(--%NS%prism-bg-elevated);\n border-top: 1px solid var(--%NS%prism-border);\n}\n\n.panel-tabs[_ngcontent-%COMP%] {\n display: flex;\n flex-shrink: 0;\n gap: 2px;\n align-items: center;\n height: 40px;\n padding: 0 16px;\n overflow-x: auto;\n scrollbar-width: none;\n background: var(--%NS%prism-bg);\n border-bottom: 1px solid var(--%NS%prism-border);\n}\n\n.panel-tabs[_ngcontent-%COMP%]::-webkit-scrollbar {\n display: none;\n}\n\n.p-tab[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n gap: 7px;\n align-items: center;\n height: 100%;\n padding: 0 12px;\n font-family: var(--%NS%font-sans);\n font-size: var(--%NS%fs-md);\n font-weight: 500;\n color: var(--%NS%prism-text-muted);\n white-space: nowrap;\n cursor: pointer;\n background: none;\n border: none;\n transition: color var(--%NS%dur-fast);\n}\n\n.p-tab[_ngcontent-%COMP%]:hover {\n color: var(--%NS%prism-text-2);\n}\n\n.p-tab--active[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text);\n}\n\n.p-tab--%NS%active[_ngcontent-%COMP%]::after {\n position: absolute;\n right: 8px;\n bottom: -1px;\n left: 8px;\n height: 2px;\n content: '';\n background: linear-gradient(90deg, var(--%NS%prism-primary-from), var(--%NS%prism-primary-to));\n border-radius: 1px;\n}\n\n.p-tab-badge[_ngcontent-%COMP%] {\n display: grid;\n place-items: center;\n min-width: 16px;\n height: 16px;\n padding: 0 5px;\n font-family: var(--%NS%font-mono);\n font-size: 10px;\n font-weight: 700;\n color: var(--%NS%prism-primary);\n background: color-mix(in srgb, var(--%NS%prism-primary) 18%, transparent);\n border-radius: 8px;\n}\n\n.p-tab-badge.warn[_ngcontent-%COMP%] {\n color: var(--%NS%prism-warn);\n background: color-mix(in srgb, var(--%NS%prism-warn) 18%, transparent);\n}\n\n.p-tab-badge.danger[_ngcontent-%COMP%] {\n color: var(--%NS%prism-danger);\n background: color-mix(in srgb, var(--%NS%prism-danger) 18%, transparent);\n}\n\n.panel-tabs-right[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n align-items: center;\n padding-left: 10px;\n margin-left: auto;\n}\n\n.icon-btn[_ngcontent-%COMP%] {\n display: grid;\n place-items: center;\n width: 28px;\n height: 28px;\n color: var(--%NS%prism-text-muted);\n cursor: pointer;\n background: none;\n border: none;\n border-radius: var(--%NS%radius-sm);\n transition: all var(--%NS%dur-fast);\n}\n\n.icon-btn[_ngcontent-%COMP%]:hover {\n color: var(--%NS%prism-text);\n background: var(--%NS%prism-input-bg);\n}\n\n.panel-body[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--%NS%prism-bg-elevated);\n}\n\n.panel-body[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n}\n\n.panel-body[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--%NS%prism-border-strong);\n border-radius: 4px;\n}\n\n.panel-pane[_ngcontent-%COMP%] {\n height: 100%;\n}\n\n.panel-pane[hidden][_ngcontent-%COMP%] {\n display: none;\n}\n\n[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--%NS%prism-primary);\n outline-offset: 2px;\n}"] });
|
|
220
217
|
}
|
|
221
218
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismPanelHostComponent, [{
|
|
222
219
|
type: Component,
|
|
223
|
-
args: [{ selector: 'prism-panel-host', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgComponentOutlet, PrismIconComponent], template:
|
|
224
|
-
<div class="panel">
|
|
225
|
-
<nav class="panel-tabs" role="tablist">
|
|
226
|
-
@for (panel of allPanels(); track panel.id) {
|
|
227
|
-
<button
|
|
228
|
-
class="p-tab"
|
|
229
|
-
[class.p-tab--active]="panelService.activePanelId() === panel.id"
|
|
230
|
-
(click)="panelService.activePanelId.set(panel.id)"
|
|
231
|
-
role="tab"
|
|
232
|
-
[attr.aria-selected]="panelService.activePanelId() === panel.id"
|
|
233
|
-
[attr.aria-controls]="
|
|
234
|
-
panelService.activePanelId() === panel.id
|
|
235
|
-
? 'panel-' + panel.id
|
|
236
|
-
: null
|
|
237
|
-
"
|
|
238
|
-
>
|
|
239
|
-
@if (panel.icon) {
|
|
240
|
-
<prism-icon [name]="panel.icon" [size]="13" />
|
|
241
|
-
}
|
|
242
|
-
{{ panel.label }}
|
|
243
|
-
@if (panelBadge(panel); as badge) { @if (badge.variant !== 'ok') {
|
|
244
|
-
<span
|
|
245
|
-
class="p-tab-badge"
|
|
246
|
-
[class.warn]="badge.variant === 'warn'"
|
|
247
|
-
[class.danger]="badge.variant === 'danger'"
|
|
248
|
-
>{{ badge.text }}</span
|
|
249
|
-
>
|
|
250
|
-
} }
|
|
251
|
-
</button>
|
|
252
|
-
}
|
|
253
|
-
</nav>
|
|
254
|
-
<div
|
|
255
|
-
class="panel-body"
|
|
256
|
-
[id]="'panel-' + panelService.activePanelId()"
|
|
257
|
-
role="tabpanel"
|
|
258
|
-
>
|
|
259
|
-
@for (entry of renderedPanelsArray(); track entry.id) {
|
|
260
|
-
<div
|
|
261
|
-
class="panel-pane"
|
|
262
|
-
[hidden]="entry.id !== panelService.activePanelId()"
|
|
263
|
-
>
|
|
264
|
-
<ng-container
|
|
265
|
-
*ngComponentOutlet="
|
|
266
|
-
entry.component;
|
|
267
|
-
inputs: panelInputs();
|
|
268
|
-
injector: entry.injector ?? envInjector
|
|
269
|
-
"
|
|
270
|
-
/>
|
|
271
|
-
</div>
|
|
272
|
-
}
|
|
273
|
-
</div>
|
|
274
|
-
</div>
|
|
275
|
-
`, styles: ["\n .panel {\n background: var(--prism-bg-elevated);\n border-top: 1px solid var(--prism-border);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n height: 100%;\n }\n\n .panel-tabs {\n display: flex;\n align-items: center;\n gap: 2px;\n padding: 0 16px;\n height: 40px;\n border-bottom: 1px solid var(--prism-border);\n background: var(--prism-bg);\n overflow-x: auto;\n scrollbar-width: none;\n flex-shrink: 0;\n }\n .panel-tabs::-webkit-scrollbar { display: none; }\n\n .p-tab {\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n gap: 7px;\n padding: 0 12px;\n font-size: var(--fs-md);\n font-weight: 500;\n color: var(--prism-text-muted);\n white-space: nowrap;\n transition: color var(--dur-fast);\n background: none;\n border: none;\n cursor: pointer;\n font-family: var(--font-sans);\n }\n .p-tab:hover { color: var(--prism-text-2); }\n .p-tab--active { color: var(--prism-text); }\n .p-tab--active::after {\n content: '';\n position: absolute;\n left: 8px;\n right: 8px;\n bottom: -1px;\n height: 2px;\n background: linear-gradient(90deg, var(--prism-primary-from), var(--prism-primary-to));\n border-radius: 1px;\n }\n\n .p-tab-badge {\n min-width: 16px;\n height: 16px;\n padding: 0 5px;\n border-radius: 8px;\n background: color-mix(in srgb, var(--prism-primary) 18%, transparent);\n color: var(--prism-primary);\n font-family: var(--font-mono);\n font-size: 10px;\n font-weight: 700;\n display: grid;\n place-items: center;\n }\n .p-tab-badge.warn {\n background: color-mix(in srgb, var(--prism-warn) 18%, transparent);\n color: var(--prism-warn);\n }\n .p-tab-badge.danger {\n background: color-mix(in srgb, var(--prism-danger) 18%, transparent);\n color: var(--prism-danger);\n }\n\n .panel-tabs-right {\n margin-left: auto;\n display: flex;\n align-items: center;\n gap: 4px;\n padding-left: 10px;\n }\n\n .icon-btn {\n width: 28px;\n height: 28px;\n display: grid;\n place-items: center;\n border-radius: var(--radius-sm);\n color: var(--prism-text-muted);\n background: none;\n border: none;\n cursor: pointer;\n transition: all var(--dur-fast);\n }\n .icon-btn:hover {\n background: var(--prism-input-bg);\n color: var(--prism-text);\n }\n\n .panel-body {\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--prism-bg-elevated);\n }\n .panel-body::-webkit-scrollbar { width: 8px; height: 8px; }\n .panel-body::-webkit-scrollbar-thumb { background: var(--prism-border-strong); border-radius: 4px; }\n\n .panel-pane { height: 100%; }\n .panel-pane[hidden] { display: none; }\n\n :focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }\n "] }]
|
|
220
|
+
args: [{ selector: 'prism-panel-host', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgComponentOutlet, PrismIconComponent], template: "<div class=\"panel\">\n <nav\n class=\"panel-tabs\"\n role=\"tablist\">\n @for (panel of allPanels(); track panel.id) {\n <button\n class=\"p-tab\"\n [class.p-tab--active]=\"panelService.activePanelId() === panel.id\"\n (click)=\"panelService.activePanelId.set(panel.id)\"\n role=\"tab\"\n [attr.aria-selected]=\"panelService.activePanelId() === panel.id\"\n [attr.aria-controls]=\"panelService.activePanelId() === panel.id ? 'panel-' + panel.id : null\">\n @if (panel.icon) {\n <prism-icon\n [name]=\"panel.icon\"\n [size]=\"13\" />\n }\n {{ panel.label }}\n @if (panelBadge(panel); as badge) {\n @if (badge.variant !== 'ok') {\n <span\n class=\"p-tab-badge\"\n [class.warn]=\"badge.variant === 'warn'\"\n [class.danger]=\"badge.variant === 'danger'\"\n >{{ badge.text }}</span\n >\n }\n }\n </button>\n }\n </nav>\n <div\n class=\"panel-body\"\n [id]=\"'panel-' + panelService.activePanelId()\"\n role=\"tabpanel\">\n @for (entry of renderedPanelsArray(); track entry.id) {\n <div\n class=\"panel-pane\"\n [hidden]=\"entry.id !== panelService.activePanelId()\">\n <ng-container *ngComponentOutlet=\"entry.component; inputs: panelInputs(); injector: entry.injector ?? envInjector\" />\n </div>\n }\n </div>\n</div>\n", styles: [".panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n background: var(--prism-bg-elevated);\n border-top: 1px solid var(--prism-border);\n}\n\n.panel-tabs {\n display: flex;\n flex-shrink: 0;\n gap: 2px;\n align-items: center;\n height: 40px;\n padding: 0 16px;\n overflow-x: auto;\n scrollbar-width: none;\n background: var(--prism-bg);\n border-bottom: 1px solid var(--prism-border);\n}\n\n.panel-tabs::-webkit-scrollbar {\n display: none;\n}\n\n.p-tab {\n position: relative;\n display: flex;\n gap: 7px;\n align-items: center;\n height: 100%;\n padding: 0 12px;\n font-family: var(--font-sans);\n font-size: var(--fs-md);\n font-weight: 500;\n color: var(--prism-text-muted);\n white-space: nowrap;\n cursor: pointer;\n background: none;\n border: none;\n transition: color var(--dur-fast);\n}\n\n.p-tab:hover {\n color: var(--prism-text-2);\n}\n\n.p-tab--active {\n color: var(--prism-text);\n}\n\n.p-tab--active::after {\n position: absolute;\n right: 8px;\n bottom: -1px;\n left: 8px;\n height: 2px;\n content: '';\n background: linear-gradient(90deg, var(--prism-primary-from), var(--prism-primary-to));\n border-radius: 1px;\n}\n\n.p-tab-badge {\n display: grid;\n place-items: center;\n min-width: 16px;\n height: 16px;\n padding: 0 5px;\n font-family: var(--font-mono);\n font-size: 10px;\n font-weight: 700;\n color: var(--prism-primary);\n background: color-mix(in srgb, var(--prism-primary) 18%, transparent);\n border-radius: 8px;\n}\n\n.p-tab-badge.warn {\n color: var(--prism-warn);\n background: color-mix(in srgb, var(--prism-warn) 18%, transparent);\n}\n\n.p-tab-badge.danger {\n color: var(--prism-danger);\n background: color-mix(in srgb, var(--prism-danger) 18%, transparent);\n}\n\n.panel-tabs-right {\n display: flex;\n gap: 4px;\n align-items: center;\n padding-left: 10px;\n margin-left: auto;\n}\n\n.icon-btn {\n display: grid;\n place-items: center;\n width: 28px;\n height: 28px;\n color: var(--prism-text-muted);\n cursor: pointer;\n background: none;\n border: none;\n border-radius: var(--radius-sm);\n transition: all var(--dur-fast);\n}\n\n.icon-btn:hover {\n color: var(--prism-text);\n background: var(--prism-input-bg);\n}\n\n.panel-body {\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--prism-bg-elevated);\n}\n\n.panel-body::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n}\n\n.panel-body::-webkit-scrollbar-thumb {\n background: var(--prism-border-strong);\n border-radius: 4px;\n}\n\n.panel-pane {\n height: 100%;\n}\n\n.panel-pane[hidden] {\n display: none;\n}\n\n:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n}\n"] }]
|
|
276
221
|
}], () => [], null); })();
|
|
277
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismPanelHostComponent, { className: "PrismPanelHostComponent", filePath: "app/panels/panel-host/prism-panel-host.component.ts", lineNumber:
|
|
222
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismPanelHostComponent, { className: "PrismPanelHostComponent", filePath: "app/panels/panel-host/prism-panel-host.component.ts", lineNumber: 31 }); })();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type EnvironmentProviders } from '@angular/core';
|
|
2
|
-
import type { NgPrismConfig, RuntimeManifest } from '../plugin/plugin.types.js';
|
|
3
2
|
import type { ComponentPageOptions } from '../plugin/page-helpers.js';
|
|
3
|
+
import type { NgPrismConfig, RuntimeManifest } from '../plugin/plugin.types.js';
|
|
4
4
|
export interface ProvidePrismOptions {
|
|
5
5
|
componentPages?: ComponentPageOptions[];
|
|
6
6
|
}
|
|
@@ -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,EAAE,KAAK,oBAAoB,EAA4B,MAAM,eAAe,CAAC;AAEpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAKhF,MAAM,WAAW,mBAAmB;IAChC,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAC3C;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,oBAAoB,CA6BnI"}
|
|
@@ -1,26 +1,22 @@
|
|
|
1
|
-
import { makeEnvironmentProviders
|
|
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 { buildDiscoveryManifest } from './discovery-manifest.js';
|
|
5
5
|
import { BUILTIN_PANELS } from './panels/builtin-panels.js';
|
|
6
|
-
import { PRISM_BUILTIN_PANELS, PRISM_CONFIG, PRISM_MANIFEST
|
|
6
|
+
import { PRISM_BUILTIN_PANELS, PRISM_CONFIG, PRISM_MANIFEST } from './tokens/prism-tokens.js';
|
|
7
7
|
export function providePrism(manifest, config, options) {
|
|
8
8
|
const mergedManifest = options?.componentPages?.length
|
|
9
9
|
? {
|
|
10
10
|
...manifest,
|
|
11
|
-
pages: [
|
|
12
|
-
...(manifest.pages ?? []),
|
|
13
|
-
...options.componentPages.map((o) => componentPage(o)),
|
|
14
|
-
],
|
|
11
|
+
pages: [...(manifest.pages ?? []), ...options.componentPages.map((o) => componentPage(o))]
|
|
15
12
|
}
|
|
16
13
|
: manifest;
|
|
17
14
|
// Exposes a thin discovery view of the manifest to external audit tooling:
|
|
18
15
|
// class name, title, variants, and the `@Showcase` metadata a tool needs to
|
|
19
|
-
// decide how to treat a variant. Still no Angular type references
|
|
16
|
+
// decide how to treat a variant. Still no Angular type references; see
|
|
20
17
|
// buildDiscoveryManifest for what gets stripped and why.
|
|
21
18
|
if (typeof globalThis !== 'undefined') {
|
|
22
|
-
globalThis['__PRISM_MANIFEST__'] =
|
|
23
|
-
buildDiscoveryManifest(mergedManifest);
|
|
19
|
+
globalThis['__PRISM_MANIFEST__'] = buildDiscoveryManifest(mergedManifest);
|
|
24
20
|
}
|
|
25
21
|
return makeEnvironmentProviders([
|
|
26
22
|
{ provide: PRISM_MANIFEST, useValue: mergedManifest },
|
|
@@ -31,8 +27,8 @@ export function providePrism(manifest, config, options) {
|
|
|
31
27
|
coreLibraryLoader: () => import('highlight.js/lib/core'),
|
|
32
28
|
languages: {
|
|
33
29
|
xml: () => import('highlight.js/lib/languages/xml'),
|
|
34
|
-
typescript: () => import('highlight.js/lib/languages/typescript')
|
|
35
|
-
}
|
|
36
|
-
})
|
|
30
|
+
typescript: () => import('highlight.js/lib/languages/typescript')
|
|
31
|
+
}
|
|
32
|
+
})
|
|
37
33
|
]);
|
|
38
34
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { RuntimeComponent } from '../../plugin/plugin.types.js';
|
|
2
2
|
/** Synthetic input the manifest generator emits on directive wrapper classes
|
|
3
3
|
* to project per-variant `content` text into the host element. The directive
|
|
4
|
-
* itself doesn't declare it, so it isn't in `meta.inputs
|
|
4
|
+
* itself doesn't declare it, so it isn't in `meta.inputs`, and code that
|
|
5
5
|
* validates / filters inputs against that list must allow this key through.
|
|
6
6
|
*/
|
|
7
7
|
export declare const PRISM_CONTENT_INPUT = "__prismContent__";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"known-inputs.d.ts","sourceRoot":"","sources":["../../../src/app/renderer/known-inputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AAEtD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"known-inputs.d.ts","sourceRoot":"","sources":["../../../src/app/renderer/known-inputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AAEtD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC,CAOpE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** Synthetic input the manifest generator emits on directive wrapper classes
|
|
2
2
|
* to project per-variant `content` text into the host element. The directive
|
|
3
|
-
* itself doesn't declare it, so it isn't in `meta.inputs
|
|
3
|
+
* itself doesn't declare it, so it isn't in `meta.inputs`, and code that
|
|
4
4
|
* validates / filters inputs against that list must allow this key through.
|
|
5
5
|
*/
|
|
6
6
|
export const PRISM_CONTENT_INPUT = '__prismContent__';
|
|
@@ -14,12 +14,26 @@ export type OverlayResolution = {
|
|
|
14
14
|
/**
|
|
15
15
|
* Decides which overlay component belongs to the active panel.
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
17
|
+
* Resolves to `none` regardless of which panel is active, and never
|
|
18
|
+
* triggers a lazy overlay load, under either of two independent
|
|
19
|
+
* conditions:
|
|
20
|
+
*
|
|
21
|
+
* - Capture mode: panel overlays render *inside* `.demo-wrap`, the same
|
|
22
|
+
* element external screenshot tools capture.
|
|
23
|
+
* - Measure mode: see the `measureActive` option below for why a running
|
|
24
|
+
* measuring tool preempts every panel overlay the same way.
|
|
20
25
|
*/
|
|
21
26
|
export declare function resolveOverlay(panels: readonly PanelDefinition[], activePanelId: string, options: {
|
|
22
27
|
captureActive: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* True while the measuring tool is running.
|
|
30
|
+
*
|
|
31
|
+
* A bridge for now: once the tool can attribute a measured pixel gap
|
|
32
|
+
* to the CSS property that produced it, the box-model plugin has
|
|
33
|
+
* nothing left that it alone can do, and the competition for the
|
|
34
|
+
* pointer dissolves. See Spec §13.
|
|
35
|
+
*/
|
|
36
|
+
measureActive: boolean;
|
|
23
37
|
cache: ReadonlyMap<string, Type<unknown>>;
|
|
24
38
|
}): OverlayResolution;
|
|
25
39
|
//# sourceMappingURL=overlay-resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay-resolver.d.ts","sourceRoot":"","sources":["../../../src/app/renderer/overlay-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"overlay-resolver.d.ts","sourceRoot":"","sources":["../../../src/app/renderer/overlay-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB,GACvB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;CAAE,GAC3C;IACI,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;CACtC,CAAC;AAIR;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC1B,MAAM,EAAE,SAAS,eAAe,EAAE,EAClC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE;IACL,aAAa,EAAE,OAAO,CAAC;IACvB;;;;;;;OAOG;IACH,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;CAC7C,GACF,iBAAiB,CA+BnB"}
|
|
@@ -2,12 +2,17 @@ const NONE = { kind: 'none' };
|
|
|
2
2
|
/**
|
|
3
3
|
* Decides which overlay component belongs to the active panel.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* Resolves to `none` regardless of which panel is active, and never
|
|
6
|
+
* triggers a lazy overlay load, under either of two independent
|
|
7
|
+
* conditions:
|
|
8
|
+
*
|
|
9
|
+
* - Capture mode: panel overlays render *inside* `.demo-wrap`, the same
|
|
10
|
+
* element external screenshot tools capture.
|
|
11
|
+
* - Measure mode: see the `measureActive` option below for why a running
|
|
12
|
+
* measuring tool preempts every panel overlay the same way.
|
|
8
13
|
*/
|
|
9
14
|
export function resolveOverlay(panels, activePanelId, options) {
|
|
10
|
-
if (options.captureActive)
|
|
15
|
+
if (options.captureActive || options.measureActive)
|
|
11
16
|
return NONE;
|
|
12
17
|
const panel = panels.find((p) => p.id === activePanelId);
|
|
13
18
|
if (!panel)
|
|
@@ -29,7 +34,7 @@ export function resolveOverlay(panels, activePanelId, options) {
|
|
|
29
34
|
// shorthand that reads its own object then throws inside a promise
|
|
30
35
|
// the renderer does not catch, and the overlay silently never
|
|
31
36
|
// appears.
|
|
32
|
-
load: () => loadOverlayComponent.call(panel)
|
|
37
|
+
load: () => loadOverlayComponent.call(panel)
|
|
33
38
|
};
|
|
34
39
|
}
|
|
35
40
|
return NONE;
|