@ng-prism/core 22.2.0 → 22.3.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 +22 -24
- package/builders.json +11 -11
- package/dist/app/canvas/canvas-bg.styles.d.ts +1 -1
- package/dist/app/canvas/canvas-bg.styles.d.ts.map +1 -1
- package/dist/app/canvas/canvas-bg.styles.js +17 -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-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 +23 -6
- package/dist/app/canvas/prism-canvas-toolbar.component.d.ts.map +1 -1
- package/dist/app/canvas/prism-canvas-toolbar.component.js +110 -140
- 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.map +1 -1
- package/dist/app/component-head/head-metrics.js +2 -2
- package/dist/app/component-head/prism-component-head.component.d.ts +1 -1
- package/dist/app/component-head/prism-component-head.component.d.ts.map +1 -1
- package/dist/app/component-head/prism-component-head.component.js +17 -50
- 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.map +1 -1
- package/dist/app/component-head/prism-head-info.component.js +3 -36
- package/dist/app/component-head/prism-stat.component.d.ts.map +1 -1
- package/dist/app/component-head/prism-stat.component.js +3 -14
- 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.map +1 -1
- package/dist/app/discovery-manifest.js +5 -7
- 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 +8 -77
- package/dist/app/hmr.d.ts.map +1 -1
- package/dist/app/icons/icon-registry.d.ts.map +1 -1
- package/dist/app/icons/icon-registry.js +2 -1
- package/dist/app/icons/prism-icon.component.d.ts.map +1 -1
- package/dist/app/icons/prism-icon.component.js +5 -5
- package/dist/app/index.d.ts +3 -3
- package/dist/app/index.d.ts.map +1 -1
- package/dist/app/index.js +3 -3
- 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.map +1 -1
- package/dist/app/overview/prism-overview-cell.component.d.ts.map +1 -1
- package/dist/app/overview/prism-overview-cell.component.js +10 -17
- package/dist/app/overview/prism-overview.component.d.ts.map +1 -1
- package/dist/app/overview/prism-overview.component.js +4 -12
- 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.map +1 -1
- package/dist/app/panels/a11y/a11y-summary.js +2 -5
- 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-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.map +1 -1
- package/dist/app/panels/builtin-header-widgets.js +2 -2
- package/dist/app/panels/builtin-navigation-decorations.d.ts.map +1 -1
- package/dist/app/panels/builtin-navigation-decorations.js +2 -2
- 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 +1 -5
- 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.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 +7 -11
- package/dist/app/renderer/known-inputs.d.ts.map +1 -1
- package/dist/app/renderer/overlay-resolver.d.ts.map +1 -1
- package/dist/app/renderer/overlay-resolver.js +1 -1
- package/dist/app/renderer/prism-renderer.component.d.ts +27 -2
- package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
- package/dist/app/renderer/prism-renderer.component.js +94 -76
- package/dist/app/renderer/projectable-content.d.ts.map +1 -1
- package/dist/app/renderer/projectable-content.js +1 -3
- 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 +22 -0
- package/dist/app/services/prism-canvas.service.d.ts.map +1 -1
- package/dist/app/services/prism-canvas.service.js +49 -2
- package/dist/app/services/prism-capture.service.d.ts.map +1 -1
- package/dist/app/services/prism-capture.service.js +2 -6
- 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-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.map +1 -1
- package/dist/app/services/prism-panel.service.js +2 -5
- package/dist/app/services/prism-persistence.service.d.ts.map +1 -1
- package/dist/app/services/prism-persistence.service.js +8 -10
- 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 +3 -9
- package/dist/app/services/prism-variant-bg.service.d.ts.map +1 -1
- package/dist/app/services/prism-variant-bg.service.js +3 -5
- package/dist/app/shared/prism-metric-badge.component.d.ts.map +1 -1
- package/dist/app/shared/prism-metric-badge.component.js +4 -17
- package/dist/app/shell/prism-shell.component.d.ts.map +1 -1
- package/dist/app/shell/prism-shell.component.js +20 -122
- package/dist/app/sidebar/navigation-decorations.d.ts.map +1 -1
- package/dist/app/sidebar/navigation-decorations.js +1 -1
- package/dist/app/sidebar/prism-sidebar.component.d.ts +1 -1
- package/dist/app/sidebar/prism-sidebar.component.d.ts.map +1 -1
- package/dist/app/sidebar/prism-sidebar.component.js +19 -154
- package/dist/app/theme/prism-default-theme.d.ts.map +1 -1
- package/dist/app/theme/prism-default-theme.js +5 -5
- 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.map +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 +1 -3
- 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 +1 -1
- package/dist/builder/a11y/a11y-report-reader.d.ts.map +1 -1
- package/dist/builder/a11y/a11y-report-reader.js +7 -7
- 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 +9 -34
- package/dist/builder/plugin-runner/plugin-runner.d.ts.map +1 -1
- package/dist/builder/plugin-runner/plugin-runner.js +1 -3
- package/dist/builder/scanner/ast-utils.d.ts.map +1 -1
- package/dist/builder/scanner/ast-utils.js +2 -8
- package/dist/builder/scanner/component.scanner.d.ts.map +1 -1
- package/dist/builder/scanner/component.scanner.js +15 -22
- 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.map +1 -1
- package/dist/builder/scanner/input.extractor.js +11 -28
- package/dist/builder/scanner/manifest.generator.d.ts.map +1 -1
- package/dist/builder/scanner/manifest.generator.js +2 -4
- package/dist/builder/scanner/scanner.d.ts.map +1 -1
- package/dist/builder/scanner/scanner.js +4 -4
- 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.map +1 -1
- package/dist/builder/shared/prism-pipeline.js +18 -25
- 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 +12 -10
- 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.map +1 -1
- package/dist/plugin/index.d.ts +4 -4
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +2 -2
- 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 +1 -1
- 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 +4 -8
- 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.map +1 -1
- package/dist/shared/canvas-bg.type.js +1 -8
- package/dist/shared/canvas-layout.type.d.ts.map +1 -1
- package/dist/shared/canvas-layout.type.js +1 -4
- package/dist/shared/variant-bg.d.ts.map +1 -1
- package/dist/shared/viewport.type.d.ts +47 -0
- package/dist/shared/viewport.type.d.ts.map +1 -0
- package/dist/shared/viewport.type.js +48 -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 +6 -15
- package/dist/transformer/strip-directory.d.ts.map +1 -1
- package/dist/transformer/strip-directory.js +2 -4
- package/package.json +4 -1
- 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 {
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
function UnionControlComponent_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
4
4
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
@@ -31,22 +31,10 @@ export class UnionControlComponent {
|
|
|
31
31
|
} if (rf & 2) {
|
|
32
32
|
i0.ɵɵadvance();
|
|
33
33
|
i0.ɵɵrepeater(ctx.options());
|
|
34
|
-
} }, styles: [".ctl-pills[_ngcontent-%COMP%] {\n
|
|
34
|
+
} }, styles: [".ctl-pills[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n}\n\n.ctl-pill[_ngcontent-%COMP%] {\n height: 26px;\n padding: 0 10px;\n font-family: var(--%NS%font-sans);\n font-size: var(--%NS%fs-sm);\n font-weight: 500;\n color: var(--%NS%prism-text-muted);\n cursor: pointer;\n background: transparent;\n border: 1px solid var(--%NS%prism-border);\n border-radius: 4px;\n transition: all var(--%NS%dur-fast);\n}\n\n.ctl-pill[_ngcontent-%COMP%]:hover {\n color: var(--%NS%prism-text);\n border-color: var(--%NS%prism-border-strong);\n}\n\n.ctl-pill--active[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--%NS%prism-primary);\n background: color-mix(in srgb, var(--%NS%prism-primary) 15%, transparent);\n border-color: color-mix(in srgb, var(--%NS%prism-primary) 40%, transparent);\n}"] });
|
|
35
35
|
}
|
|
36
36
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UnionControlComponent, [{
|
|
37
37
|
type: Component,
|
|
38
|
-
args: [{ selector: 'prism-union-control', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template:
|
|
39
|
-
<div class="ctl-pills" role="group">
|
|
40
|
-
@for (option of options(); track option) {
|
|
41
|
-
<button
|
|
42
|
-
class="ctl-pill"
|
|
43
|
-
[class.ctl-pill--active]="option === value()"
|
|
44
|
-
(click)="valueChange.emit(option)"
|
|
45
|
-
>
|
|
46
|
-
{{ option }}
|
|
47
|
-
</button>
|
|
48
|
-
}
|
|
49
|
-
</div>
|
|
50
|
-
`, styles: ["\n .ctl-pills {\n display: flex;\n gap: 4px;\n flex-wrap: wrap;\n }\n .ctl-pill {\n height: 26px;\n padding: 0 10px;\n font-size: var(--fs-sm);\n font-weight: 500;\n border: 1px solid var(--prism-border);\n border-radius: 4px;\n color: var(--prism-text-muted);\n background: transparent;\n cursor: pointer;\n transition: all var(--dur-fast);\n font-family: var(--font-sans);\n }\n .ctl-pill:hover {\n color: var(--prism-text);\n border-color: var(--prism-border-strong);\n }\n .ctl-pill--active {\n background: color-mix(in srgb, var(--prism-primary) 15%, transparent);\n color: var(--prism-primary);\n border-color: color-mix(in srgb, var(--prism-primary) 40%, transparent);\n font-weight: 600;\n }\n "] }]
|
|
38
|
+
args: [{ selector: 'prism-union-control', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"ctl-pills\"\n role=\"group\">\n @for (option of options(); track option) {\n <button\n class=\"ctl-pill\"\n [class.ctl-pill--active]=\"option === value()\"\n (click)=\"valueChange.emit(option)\">\n {{ option }}\n </button>\n }\n</div>\n", styles: [".ctl-pills {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n}\n\n.ctl-pill {\n height: 26px;\n padding: 0 10px;\n font-family: var(--font-sans);\n font-size: var(--fs-sm);\n font-weight: 500;\n color: var(--prism-text-muted);\n cursor: pointer;\n background: transparent;\n border: 1px solid var(--prism-border);\n border-radius: 4px;\n transition: all var(--dur-fast);\n}\n\n.ctl-pill:hover {\n color: var(--prism-text);\n border-color: var(--prism-border-strong);\n}\n\n.ctl-pill--active {\n font-weight: 600;\n color: var(--prism-primary);\n background: color-mix(in srgb, var(--prism-primary) 15%, transparent);\n border-color: color-mix(in srgb, var(--prism-primary) 40%, transparent);\n}\n"] }]
|
|
51
39
|
}], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], typeName: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeName", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] }); })();
|
|
52
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnionControlComponent, { className: "UnionControlComponent", filePath: "app/controls/union-control.component.ts", lineNumber:
|
|
40
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnionControlComponent, { className: "UnionControlComponent", filePath: "app/controls/union-control.component.ts", lineNumber: 10 }); })();
|
|
@@ -4,11 +4,34 @@ export declare class PrismResizerDirective {
|
|
|
4
4
|
readonly min: import("@angular/core").InputSignal<number>;
|
|
5
5
|
readonly max: import("@angular/core").InputSignal<number>;
|
|
6
6
|
readonly value: import("@angular/core").InputSignal<number>;
|
|
7
|
+
/**
|
|
8
|
+
* Pointer travel to value, as a multiplier.
|
|
9
|
+
*
|
|
10
|
+
* `1` (the default) is a panel or sidebar edge. The viewport grips pass
|
|
11
|
+
* `2 / zoom` and `-2 / zoom`: their box is centred, so holding one edge
|
|
12
|
+
* changes the width at both (the `2`), and the stage scales that box by
|
|
13
|
+
* `--zoom`, so the multiplier has to divide it back out to keep the grip
|
|
14
|
+
* under the cursor. Existing call sites do not pass it and are unaffected.
|
|
15
|
+
*/
|
|
16
|
+
readonly scale: import("@angular/core").InputSignal<number>;
|
|
7
17
|
readonly valueChange: import("@angular/core").OutputEmitterRef<number>;
|
|
8
18
|
private readonly el;
|
|
19
|
+
/** How far one arrow key moves the value. */
|
|
20
|
+
private static readonly STEP;
|
|
9
21
|
protected onMouseDown(e: MouseEvent): void;
|
|
22
|
+
/**
|
|
23
|
+
* Keyboard direction is deliberately independent of `scale`.
|
|
24
|
+
*
|
|
25
|
+
* `scale` inverts the *pointer* for a grip on the far edge of a centred box,
|
|
26
|
+
* and carrying that inversion into the keyboard was wrong: two separators
|
|
27
|
+
* that expose the same `aria-valuenow` answered the same key in opposite
|
|
28
|
+
* directions, so a screen-reader user heard the announced value travel one
|
|
29
|
+
* way on one edge and the other way on the other. WAI-ARIA's window-splitter
|
|
30
|
+
* pattern has ArrowRight and ArrowUp increase the value, whichever edge the
|
|
31
|
+
* separator sits on, and the value here is the width rather than a position.
|
|
32
|
+
*/
|
|
10
33
|
protected onKeyDown(e: KeyboardEvent): void;
|
|
11
34
|
static ɵfac: i0.ɵɵFactoryDeclaration<PrismResizerDirective, never>;
|
|
12
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<PrismResizerDirective, "[prismResizer]", never, { "axis": { "alias": "axis"; "required": true; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
35
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<PrismResizerDirective, "[prismResizer]", never, { "axis": { "alias": "axis"; "required": true; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "scale": { "alias": "scale"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
13
36
|
}
|
|
14
37
|
//# sourceMappingURL=prism-resizer.directive.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-resizer.directive.d.ts","sourceRoot":"","sources":["../../../src/app/directives/prism-resizer.directive.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"prism-resizer.directive.d.ts","sourceRoot":"","sources":["../../../src/app/directives/prism-resizer.directive.ts"],"names":[],"mappings":";AAGA,qBAYa,qBAAqB;IAC9B,QAAQ,CAAC,IAAI,iDAA+B;IAC5C,QAAQ,CAAC,GAAG,8CAAc;IAC1B,QAAQ,CAAC,GAAG,8CAAc;IAC1B,QAAQ,CAAC,KAAK,8CAAY;IAE1B;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,8CAAY;IAE1B,QAAQ,CAAC,WAAW,mDAAoB;IAExC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAmC;IAEtD,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAM;IAElC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IA6B1C;;;;;;;;;;OAUG;IACH,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;yCAhElC,qBAAqB;2CAArB,qBAAqB;CAsFjC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Directive, ElementRef, inject, input, output } from '@angular/core';
|
|
2
|
+
import { resizeValue } from './resize-value.js';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export class PrismResizerDirective {
|
|
4
5
|
axis = input.required(/* @ts-ignore */
|
|
@@ -9,17 +10,36 @@ export class PrismResizerDirective {
|
|
|
9
10
|
...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
|
|
10
11
|
value = input(0, /* @ts-ignore */
|
|
11
12
|
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
13
|
+
/**
|
|
14
|
+
* Pointer travel to value, as a multiplier.
|
|
15
|
+
*
|
|
16
|
+
* `1` (the default) is a panel or sidebar edge. The viewport grips pass
|
|
17
|
+
* `2 / zoom` and `-2 / zoom`: their box is centred, so holding one edge
|
|
18
|
+
* changes the width at both (the `2`), and the stage scales that box by
|
|
19
|
+
* `--zoom`, so the multiplier has to divide it back out to keep the grip
|
|
20
|
+
* under the cursor. Existing call sites do not pass it and are unaffected.
|
|
21
|
+
*/
|
|
22
|
+
scale = input(1, /* @ts-ignore */
|
|
23
|
+
...(ngDevMode ? [{ debugName: "scale" }] : /* istanbul ignore next */ []));
|
|
12
24
|
valueChange = output();
|
|
13
25
|
el = inject((ElementRef));
|
|
26
|
+
/** How far one arrow key moves the value. */
|
|
27
|
+
static STEP = 10;
|
|
14
28
|
onMouseDown(e) {
|
|
29
|
+
// Primary button only. Without this a right-click arms the document-level
|
|
30
|
+
// listeners below, the context menu takes the pointer so the matching
|
|
31
|
+
// mouseup never arrives, and the drag stays live afterwards — the value
|
|
32
|
+
// then follows the cursor with no button held. `preventDefault` does not
|
|
33
|
+
// suppress `contextmenu`, so the guard has to be here.
|
|
34
|
+
if (e.button !== 0)
|
|
35
|
+
return;
|
|
15
36
|
e.preventDefault();
|
|
16
37
|
const startPos = this.axis() === 'x' ? e.clientX : e.clientY;
|
|
17
38
|
const startVal = this.value();
|
|
18
39
|
this.el.nativeElement.classList.add('active');
|
|
19
40
|
const onMove = (ev) => {
|
|
20
41
|
const delta = this.axis() === 'x' ? ev.clientX - startPos : startPos - ev.clientY;
|
|
21
|
-
|
|
22
|
-
this.valueChange.emit(next);
|
|
42
|
+
this.valueChange.emit(resizeValue(startVal, delta, this.scale(), this.min(), this.max()));
|
|
23
43
|
};
|
|
24
44
|
const onUp = () => {
|
|
25
45
|
this.el.nativeElement.classList.remove('active');
|
|
@@ -29,8 +49,19 @@ export class PrismResizerDirective {
|
|
|
29
49
|
document.addEventListener('mousemove', onMove);
|
|
30
50
|
document.addEventListener('mouseup', onUp);
|
|
31
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Keyboard direction is deliberately independent of `scale`.
|
|
54
|
+
*
|
|
55
|
+
* `scale` inverts the *pointer* for a grip on the far edge of a centred box,
|
|
56
|
+
* and carrying that inversion into the keyboard was wrong: two separators
|
|
57
|
+
* that expose the same `aria-valuenow` answered the same key in opposite
|
|
58
|
+
* directions, so a screen-reader user heard the announced value travel one
|
|
59
|
+
* way on one edge and the other way on the other. WAI-ARIA's window-splitter
|
|
60
|
+
* pattern has ArrowRight and ArrowUp increase the value, whichever edge the
|
|
61
|
+
* separator sits on, and the value here is the width rather than a position.
|
|
62
|
+
*/
|
|
32
63
|
onKeyDown(e) {
|
|
33
|
-
const step =
|
|
64
|
+
const step = PrismResizerDirective.STEP;
|
|
34
65
|
const current = this.value();
|
|
35
66
|
let next = null;
|
|
36
67
|
if (this.axis() === 'x') {
|
|
@@ -45,6 +76,12 @@ export class PrismResizerDirective {
|
|
|
45
76
|
if (e.key === 'ArrowDown')
|
|
46
77
|
next = current - step;
|
|
47
78
|
}
|
|
79
|
+
// Required of a focusable separator by the same pattern, and the only way
|
|
80
|
+
// to reach either end without holding an arrow key down.
|
|
81
|
+
if (e.key === 'Home')
|
|
82
|
+
next = this.min();
|
|
83
|
+
if (e.key === 'End')
|
|
84
|
+
next = this.max();
|
|
48
85
|
if (next !== null) {
|
|
49
86
|
e.preventDefault();
|
|
50
87
|
this.valueChange.emit(Math.max(this.min(), Math.min(this.max(), next)));
|
|
@@ -56,7 +93,7 @@ export class PrismResizerDirective {
|
|
|
56
93
|
} if (rf & 2) {
|
|
57
94
|
i0.ɵɵattribute("role", "separator")("aria-orientation", ctx.axis() === "x" ? "vertical" : "horizontal")("tabindex", "0");
|
|
58
95
|
i0.ɵɵstyleProp("cursor", ctx.axis() === "x" ? "col-resize" : "row-resize");
|
|
59
|
-
} }, inputs: { axis: [1, "axis"], min: [1, "min"], max: [1, "max"], value: [1, "value"] }, outputs: { valueChange: "valueChange" } });
|
|
96
|
+
} }, inputs: { axis: [1, "axis"], min: [1, "min"], max: [1, "max"], value: [1, "value"], scale: [1, "scale"] }, outputs: { valueChange: "valueChange" } });
|
|
60
97
|
}
|
|
61
98
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismResizerDirective, [{
|
|
62
99
|
type: Directive,
|
|
@@ -69,7 +106,7 @@ export class PrismResizerDirective {
|
|
|
69
106
|
'[attr.aria-orientation]': 'axis() === "x" ? "vertical" : "horizontal"',
|
|
70
107
|
'(mousedown)': 'onMouseDown($event)',
|
|
71
108
|
'(keydown)': 'onKeyDown($event)',
|
|
72
|
-
'[attr.tabindex]': '"0"'
|
|
73
|
-
}
|
|
109
|
+
'[attr.tabindex]': '"0"'
|
|
110
|
+
}
|
|
74
111
|
}]
|
|
75
|
-
}], null, { axis: [{ type: i0.Input, args: [{ isSignal: true, alias: "axis", required: true }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] }); })();
|
|
112
|
+
}], null, { axis: [{ type: i0.Input, args: [{ isSignal: true, alias: "axis", required: true }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], scale: [{ type: i0.Input, args: [{ isSignal: true, alias: "scale", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] }); })();
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The arithmetic behind `prismResizer`, kept out of the directive.
|
|
3
|
+
*
|
|
4
|
+
* Not for tidiness: a directive whose inputs are `input()` signals has to be
|
|
5
|
+
* rendered inside a host component to be exercised, and this package's specs
|
|
6
|
+
* run under jsdom against SWC-compiled sources, where JIT cannot instantiate
|
|
7
|
+
* one. Extracted, the maths is ordinary and testable — the same reason
|
|
8
|
+
* `known-inputs.ts` and `overlay-resolver.ts` sit beside their components.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Where a drag lands.
|
|
12
|
+
*
|
|
13
|
+
* `scale` maps pointer movement onto the value. `1` is a panel edge, where a
|
|
14
|
+
* pixel of travel is a pixel of size. The viewport grips pass `2 / zoom` and
|
|
15
|
+
* `-2 / zoom`: the centred box contributes the `2`, since holding one edge
|
|
16
|
+
* changes the width at both, and the stage's `transform: scale(var(--zoom))`
|
|
17
|
+
* contributes the division, since a pointer moving `dx` across the *painted*
|
|
18
|
+
* box has to change the CSS width by `2·dx / zoom` to keep the grip under the
|
|
19
|
+
* cursor — the sign says which edge is being held.
|
|
20
|
+
*/
|
|
21
|
+
export declare function resizeValue(startValue: number, delta: number, scale: number, min: number, max: number): number;
|
|
22
|
+
//# sourceMappingURL=resize-value.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resize-value.d.ts","sourceRoot":"","sources":["../../../src/app/directives/resize-value.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9G"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The arithmetic behind `prismResizer`, kept out of the directive.
|
|
3
|
+
*
|
|
4
|
+
* Not for tidiness: a directive whose inputs are `input()` signals has to be
|
|
5
|
+
* rendered inside a host component to be exercised, and this package's specs
|
|
6
|
+
* run under jsdom against SWC-compiled sources, where JIT cannot instantiate
|
|
7
|
+
* one. Extracted, the maths is ordinary and testable — the same reason
|
|
8
|
+
* `known-inputs.ts` and `overlay-resolver.ts` sit beside their components.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Where a drag lands.
|
|
12
|
+
*
|
|
13
|
+
* `scale` maps pointer movement onto the value. `1` is a panel edge, where a
|
|
14
|
+
* pixel of travel is a pixel of size. The viewport grips pass `2 / zoom` and
|
|
15
|
+
* `-2 / zoom`: the centred box contributes the `2`, since holding one edge
|
|
16
|
+
* changes the width at both, and the stage's `transform: scale(var(--zoom))`
|
|
17
|
+
* contributes the division, since a pointer moving `dx` across the *painted*
|
|
18
|
+
* box has to change the CSS width by `2·dx / zoom` to keep the grip under the
|
|
19
|
+
* cursor — the sign says which edge is being held.
|
|
20
|
+
*/
|
|
21
|
+
export function resizeValue(startValue, delta, scale, min, max) {
|
|
22
|
+
return Math.max(min, Math.min(max, startValue + delta * scale));
|
|
23
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery-manifest.d.ts","sourceRoot":"","sources":["../../src/app/discovery-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
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;AA2D1H,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"}
|
|
@@ -80,27 +80,25 @@ export function buildDiscoveryManifest(manifest) {
|
|
|
80
80
|
? declared.map((variant, index) => {
|
|
81
81
|
const meta = serializableMeta(variant.meta);
|
|
82
82
|
const bg = resolveVariantBg(showcaseConfig, index);
|
|
83
|
-
return meta
|
|
84
|
-
? { name: variant.name, index, bg, meta }
|
|
85
|
-
: { name: variant.name, index, bg };
|
|
83
|
+
return meta ? { name: variant.name, index, bg, meta } : { name: variant.name, index, bg };
|
|
86
84
|
})
|
|
87
85
|
: [
|
|
88
86
|
{
|
|
89
87
|
name: 'Default',
|
|
90
88
|
index: 0,
|
|
91
|
-
bg: resolveVariantBg(showcaseConfig, 0)
|
|
92
|
-
}
|
|
89
|
+
bg: resolveVariantBg(showcaseConfig, 0)
|
|
90
|
+
}
|
|
93
91
|
];
|
|
94
92
|
const meta = serializableMeta(showcaseConfig.meta);
|
|
95
93
|
const discovered = {
|
|
96
94
|
className,
|
|
97
95
|
title: showcaseConfig.title,
|
|
98
|
-
variants
|
|
96
|
+
variants
|
|
99
97
|
};
|
|
100
98
|
if (meta)
|
|
101
99
|
discovered.meta = meta;
|
|
102
100
|
return discovered;
|
|
103
101
|
}),
|
|
104
|
-
pages: (manifest.pages ?? []).map((page) => ({ title: page.title }))
|
|
102
|
+
pages: (manifest.pages ?? []).map((page) => ({ title: page.title }))
|
|
105
103
|
};
|
|
106
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-header-widget-host.component.d.ts","sourceRoot":"","sources":["../../../src/app/header/prism-header-widget-host.component.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"prism-header-widget-host.component.d.ts","sourceRoot":"","sources":["../../../src/app/header/prism-header-widget-host.component.ts"],"names":[],"mappings":"AACA,OAAO,EAA6D,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AACrG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;;AAI3E,qBAQa,8BAA8B;IACvC,QAAQ,CAAC,MAAM,8DAA4C;IAE3D,SAAS,CAAC,QAAQ,CAAC,QAAQ,+DAAsC;;yCAHxD,8BAA8B;2CAA9B,8BAA8B;CAgC1C"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NgComponentOutlet } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, effect, input, signal
|
|
2
|
+
import { ChangeDetectionStrategy, Component, effect, input, signal } from '@angular/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
function PrismHeaderWidgetHostComponent_Conditional_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
5
5
|
i0.ɵɵelementContainer(0);
|
|
@@ -46,14 +46,10 @@ export class PrismHeaderWidgetHostComponent {
|
|
|
46
46
|
} if (rf & 2) {
|
|
47
47
|
let tmp_0_0;
|
|
48
48
|
i0.ɵɵconditional((tmp_0_0 = ctx.resolved()) ? 0 : -1, tmp_0_0);
|
|
49
|
-
} }, dependencies: [NgComponentOutlet], styles: ["[_nghost-%COMP%] {
|
|
49
|
+
} }, dependencies: [NgComponentOutlet], styles: ["[_nghost-%COMP%] {\n display: contents;\n}"] });
|
|
50
50
|
}
|
|
51
51
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismHeaderWidgetHostComponent, [{
|
|
52
52
|
type: Component,
|
|
53
|
-
args: [{ selector: 'prism-header-widget-host', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgComponentOutlet], template:
|
|
54
|
-
@if (resolved(); as comp) {
|
|
55
|
-
<ng-container *ngComponentOutlet="comp" />
|
|
56
|
-
}
|
|
57
|
-
`, styles: ["\n :host { display: contents; }\n "] }]
|
|
53
|
+
args: [{ selector: 'prism-header-widget-host', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgComponentOutlet], template: "@if (resolved(); as comp) {\n <ng-container *ngComponentOutlet=\"comp\" />\n}\n", styles: [":host {\n display: contents;\n}\n"] }]
|
|
58
54
|
}], () => [], { widget: [{ type: i0.Input, args: [{ isSignal: true, alias: "widget", required: true }] }] }); })();
|
|
59
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismHeaderWidgetHostComponent, { className: "PrismHeaderWidgetHostComponent", filePath: "app/header/prism-header-widget-host.component.ts", lineNumber:
|
|
55
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismHeaderWidgetHostComponent, { className: "PrismHeaderWidgetHostComponent", filePath: "app/header/prism-header-widget-host.component.ts", lineNumber: 15 }); })();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-header.component.d.ts","sourceRoot":"","sources":["../../../src/app/header/prism-header.component.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prism-header.component.d.ts","sourceRoot":"","sources":["../../../src/app/header/prism-header.component.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;;AAIvE,qBAQa,oBAAoB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,SAAS,CAAC,QAAQ,CAAC,aAAa,qBAA8B;IAC9D,SAAS,CAAC,QAAQ,CAAC,YAAY,oBAA6B;IAE5D,SAAS,CAAC,QAAQ,CAAC,YAAY,kGAE7B;IAEF,SAAS,CAAC,QAAQ,CAAC,UAAU,kGAI3B;IAEF,SAAS,CAAC,QAAQ,CAAC,OAAO,gDAOvB;IAEH,SAAS,CAAC,QAAQ,CAAC,KAAK,yCAAmD;IAC3E,SAAS,CAAC,QAAQ,CAAC,QAAQ,gDAAgD;IAE3E,SAAS,CAAC,QAAQ,CAAC,cAAc,gDAS9B;IAGH,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;IAO7C,SAAS,CAAC,aAAa,IAAI,IAAI;yCA/CtB,oBAAoB;2CAApB,oBAAoB;CAkDhC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Component, computed,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, HostListener, inject } from '@angular/core';
|
|
2
2
|
import { PrismIconComponent } from '../icons/prism-icon.component.js';
|
|
3
3
|
import { PrismLayoutMenuComponent } from '../layout-menu/prism-layout-menu.component.js';
|
|
4
|
-
import { PRISM_CONFIG } from '../tokens/prism-tokens.js';
|
|
5
4
|
import { BUILTIN_HEADER_WIDGETS } from '../panels/builtin-header-widgets.js';
|
|
6
5
|
import { PrismPluginService } from '../services/prism-plugin.service.js';
|
|
7
6
|
import { PrismSearchService } from '../services/prism-search.service.js';
|
|
8
7
|
import { PrismThemeService } from '../services/prism-theme.service.js';
|
|
8
|
+
import { PRISM_CONFIG } from '../tokens/prism-tokens.js';
|
|
9
9
|
import { PrismHeaderWidgetHostComponent } from './prism-header-widget-host.component.js';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
const _forTrack0 = ($index, $item) => $item.id;
|
|
@@ -74,22 +74,16 @@ export class PrismHeaderComponent {
|
|
|
74
74
|
pluginService = inject(PrismPluginService);
|
|
75
75
|
searchService = inject(PrismSearchService);
|
|
76
76
|
themeService = inject(PrismThemeService);
|
|
77
|
-
widgetsStart = computed(() => [
|
|
78
|
-
...BUILTIN_HEADER_WIDGETS.filter((w) => w.placement === 'start'),
|
|
79
|
-
...this.pluginService.headerWidgetsStart(),
|
|
80
|
-
].sort((a, b) => (a.order ?? 0) - (b.order ?? 0)), /* @ts-ignore */
|
|
77
|
+
widgetsStart = computed(() => [...BUILTIN_HEADER_WIDGETS.filter((w) => w.placement === 'start'), ...this.pluginService.headerWidgetsStart()].sort((a, b) => (a.order ?? 0) - (b.order ?? 0)), /* @ts-ignore */
|
|
81
78
|
...(ngDevMode ? [{ debugName: "widgetsStart" }] : /* istanbul ignore next */ []));
|
|
82
|
-
widgetsEnd = computed(() => [
|
|
83
|
-
...BUILTIN_HEADER_WIDGETS.filter((w) => (w.placement ?? 'end') === 'end'),
|
|
84
|
-
...this.pluginService.headerWidgetsEnd(),
|
|
85
|
-
].sort((a, b) => (a.order ?? 0) - (b.order ?? 0)), /* @ts-ignore */
|
|
79
|
+
widgetsEnd = computed(() => [...BUILTIN_HEADER_WIDGETS.filter((w) => (w.placement ?? 'end') === 'end'), ...this.pluginService.headerWidgetsEnd()].sort((a, b) => (a.order ?? 0) - (b.order ?? 0)), /* @ts-ignore */
|
|
86
80
|
...(ngDevMode ? [{ debugName: "widgetsEnd" }] : /* istanbul ignore next */ []));
|
|
87
81
|
logoUrl = computed(() => {
|
|
88
82
|
const logo = this.config.logo;
|
|
89
83
|
if (!logo)
|
|
90
84
|
return null;
|
|
91
85
|
const isDark = this.themeService.isDark();
|
|
92
|
-
return (isDark ? logo.dark ?? logo.light : logo.light ?? logo.dark) ?? null;
|
|
86
|
+
return (isDark ? (logo.dark ?? logo.light) : (logo.light ?? logo.dark)) ?? null;
|
|
93
87
|
}, /* @ts-ignore */
|
|
94
88
|
...(ngDevMode ? [{ debugName: "logoUrl" }] : /* istanbul ignore next */ []));
|
|
95
89
|
title = computed(() => this.config.title ?? 'ng-prism', /* @ts-ignore */
|
|
@@ -156,76 +150,13 @@ export class PrismHeaderComponent {
|
|
|
156
150
|
i0.ɵɵattribute("aria-label", ctx.themeService.isDark() ? "Switch to light mode" : "Switch to dark mode")("aria-pressed", ctx.themeService.isDark());
|
|
157
151
|
i0.ɵɵadvance();
|
|
158
152
|
i0.ɵɵconditional(ctx.themeService.isDark() ? 14 : 15);
|
|
159
|
-
} }, dependencies: [PrismIconComponent,
|
|
160
|
-
PrismLayoutMenuComponent,
|
|
161
|
-
PrismHeaderWidgetHostComponent], styles: [".prism-header[_ngcontent-%COMP%] {\n height: var(--%NS%band-header);\n display: grid;\n grid-template-columns: minmax(min-content, var(--%NS%sw, 264px)) 1fr auto;\n align-items: center;\n padding: 0 14px 0 0;\n background: var(--%NS%prism-bg);\n border-bottom: 1px solid var(--%NS%prism-border);\n }\n\n .prism-header__brand[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 0 16px;\n cursor: pointer;\n white-space: nowrap;\n }\n\n .prism-header__logo-default[_ngcontent-%COMP%] {\n width: 26px;\n height: 26px;\n flex: 0 0 26px;\n color: var(--%NS%prism-primary);\n filter: drop-shadow(0 0 8px var(--%NS%prism-glow-strong));\n }\n .prism-header__logo-default[_ngcontent-%COMP%] img[_ngcontent-%COMP%] { width: 30px; }\n\n .prism-header__logo-img[_ngcontent-%COMP%] {\n height: 26px;\n width: auto;\n object-fit: contain;\n }\n\n .prism-header__brand-text[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n line-height: 1.1;\n }\n\n .prism-header__brand-name[_ngcontent-%COMP%] {\n font-weight: 700;\n font-size: var(--%NS%fs-xl);\n letter-spacing: -0.01em;\n background: linear-gradient(90deg, var(--%NS%prism-primary), var(--%NS%prism-accent) 60%, var(--%NS%prism-primary-to));\n -webkit-background-clip: text;\n background-clip: text;\n color: transparent;\n }\n\n .prism-header__brand-sub[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-size: var(--%NS%fs-xs);\n color: var(--%NS%prism-text-ghost);\n }\n\n .prism-header__cmdbar[_ngcontent-%COMP%] {\n max-width: 540px;\n width: 100%;\n justify-self: center;\n display: flex;\n align-items: center;\n gap: 10px;\n height: 32px;\n padding: 0 12px;\n background: var(--%NS%prism-input-bg);\n border: 1px solid var(--%NS%prism-border);\n border-radius: 8px;\n color: var(--%NS%prism-text-muted);\n font-size: var(--%NS%fs-lg);\n cursor: pointer;\n transition: border-color var(--%NS%dur-fast), background var(--%NS%dur-fast);\n }\n .prism-header__cmdbar[_ngcontent-%COMP%]:hover {\n border-color: var(--%NS%prism-border-strong);\n color: var(--%NS%prism-text-2);\n }\n\n .prism-header__cmdbar-text[_ngcontent-%COMP%] {\n flex: 1;\n text-align: left;\n }\n\n .prism-header__cmdbar-shortcut[_ngcontent-%COMP%] {\n display: flex;\n gap: 3px;\n }\n .prism-header__cmdbar-shortcut[_ngcontent-%COMP%] kbd[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-size: 10.5px;\n padding: 1px 5px;\n border-radius: 4px;\n background: var(--%NS%prism-input-bg);\n border: 1px solid var(--%NS%prism-border);\n color: var(--%NS%prism-text-muted);\n }\n\n .prism-header__build-pill[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-size: var(--%NS%fs-xs);\n color: var(--%NS%prism-text-ghost);\n background: var(--%NS%prism-input-bg);\n border: 1px solid var(--%NS%prism-border);\n border-radius: 9999px;\n padding: 2px 10px;\n white-space: nowrap;\n line-height: 1.4;\n }\n\n .prism-header__actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 6px;\n }\n\n .prism-header__widgets[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n }\n .prism-header__widgets--start[_ngcontent-%COMP%] {\n padding-left: 4px;\n justify-content: flex-start;\n }\n\n .prism-header__icon-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: grid;\n place-items: center;\n border-radius: 8px;\n color: var(--%NS%prism-text-muted);\n background: none;\n border: none;\n cursor: pointer;\n position: relative;\n transition: all var(--%NS%dur-fast);\n }\n .prism-header__icon-btn[_ngcontent-%COMP%]:hover {\n background: var(--%NS%prism-input-bg);\n color: var(--%NS%prism-text);\n }\n\n [_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--%NS%prism-primary);\n outline-offset: 2px;\n }"] });
|
|
153
|
+
} }, dependencies: [PrismIconComponent, PrismLayoutMenuComponent, PrismHeaderWidgetHostComponent], styles: [".prism-header[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: minmax(min-content, var(--%NS%sw, 264px)) 1fr auto;\n align-items: center;\n height: var(--%NS%band-header);\n padding: 0 14px 0 0;\n background: var(--%NS%prism-bg);\n border-bottom: 1px solid var(--%NS%prism-border);\n}\n\n.prism-header__brand[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n align-items: center;\n padding: 0 16px;\n white-space: nowrap;\n cursor: pointer;\n}\n\n.prism-header__logo-default[_ngcontent-%COMP%] {\n flex: 0 0 26px;\n width: 26px;\n height: 26px;\n color: var(--%NS%prism-primary);\n filter: drop-shadow(0 0 8px var(--%NS%prism-glow-strong));\n}\n\n.prism-header__logo-default[_ngcontent-%COMP%] img[_ngcontent-%COMP%] {\n width: 30px;\n}\n\n.prism-header__logo-img[_ngcontent-%COMP%] {\n width: auto;\n height: 26px;\n object-fit: contain;\n}\n\n.prism-header__brand-text[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n line-height: 1.1;\n}\n\n.prism-header__brand-name[_ngcontent-%COMP%] {\n font-size: var(--%NS%fs-xl);\n font-weight: 700;\n color: transparent;\n letter-spacing: -0.01em;\n background: linear-gradient(90deg, var(--%NS%prism-primary), var(--%NS%prism-accent) 60%, var(--%NS%prism-primary-to));\n background-clip: text;\n}\n\n.prism-header__brand-sub[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-size: var(--%NS%fs-xs);\n color: var(--%NS%prism-text-ghost);\n}\n\n.prism-header__cmdbar[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n align-items: center;\n justify-self: center;\n width: 100%;\n max-width: 540px;\n height: 32px;\n padding: 0 12px;\n font-size: var(--%NS%fs-lg);\n color: var(--%NS%prism-text-muted);\n cursor: pointer;\n background: var(--%NS%prism-input-bg);\n border: 1px solid var(--%NS%prism-border);\n border-radius: 8px;\n transition:\n border-color var(--%NS%dur-fast),\n background var(--%NS%dur-fast);\n}\n\n.prism-header__cmdbar[_ngcontent-%COMP%]:hover {\n color: var(--%NS%prism-text-2);\n border-color: var(--%NS%prism-border-strong);\n}\n\n.prism-header__cmdbar-text[_ngcontent-%COMP%] {\n flex: 1;\n text-align: left;\n}\n\n.prism-header__cmdbar-shortcut[_ngcontent-%COMP%] {\n display: flex;\n gap: 3px;\n}\n\n.prism-header__cmdbar-shortcut[_ngcontent-%COMP%] kbd[_ngcontent-%COMP%] {\n padding: 1px 5px;\n font-family: var(--%NS%font-mono);\n font-size: 10.5px;\n color: var(--%NS%prism-text-muted);\n background: var(--%NS%prism-input-bg);\n border: 1px solid var(--%NS%prism-border);\n border-radius: 4px;\n}\n\n.prism-header__build-pill[_ngcontent-%COMP%] {\n padding: 2px 10px;\n font-family: var(--%NS%font-mono);\n font-size: var(--%NS%fs-xs);\n line-height: 1.4;\n color: var(--%NS%prism-text-ghost);\n white-space: nowrap;\n background: var(--%NS%prism-input-bg);\n border: 1px solid var(--%NS%prism-border);\n border-radius: 9999px;\n}\n\n.prism-header__actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n align-items: center;\n justify-content: flex-end;\n}\n\n.prism-header__widgets[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n min-width: 0;\n}\n\n.prism-header__widgets--start[_ngcontent-%COMP%] {\n justify-content: flex-start;\n padding-left: 4px;\n}\n\n.prism-header__icon-btn[_ngcontent-%COMP%] {\n position: relative;\n display: grid;\n place-items: center;\n width: 32px;\n height: 32px;\n color: var(--%NS%prism-text-muted);\n cursor: pointer;\n background: none;\n border: none;\n border-radius: 8px;\n transition: all var(--%NS%dur-fast);\n}\n\n.prism-header__icon-btn[_ngcontent-%COMP%]:hover {\n color: var(--%NS%prism-text);\n background: var(--%NS%prism-input-bg);\n}\n\n[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--%NS%prism-primary);\n outline-offset: 2px;\n}"] });
|
|
162
154
|
}
|
|
163
155
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismHeaderComponent, [{
|
|
164
156
|
type: Component,
|
|
165
|
-
args: [{ selector: 'prism-header', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
166
|
-
PrismIconComponent,
|
|
167
|
-
PrismLayoutMenuComponent,
|
|
168
|
-
PrismHeaderWidgetHostComponent,
|
|
169
|
-
], template: `
|
|
170
|
-
<header class="prism-header">
|
|
171
|
-
<div class="prism-header__brand">
|
|
172
|
-
@if (logoUrl()) {
|
|
173
|
-
<img class="prism-header__logo-img" [src]="logoUrl()" [alt]="title()" />
|
|
174
|
-
} @else {
|
|
175
|
-
<div class="prism-header__logo-default">
|
|
176
|
-
<!-- @formatter:off -->
|
|
177
|
-
<!-- prettier-ignore -->
|
|
178
|
-
<img alt="ng prism logo" src="data:image/png;base64,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" />
|
|
179
|
-
<!-- @formatter:on -->
|
|
180
|
-
</div>
|
|
181
|
-
}
|
|
182
|
-
<div class="prism-header__brand-text">
|
|
183
|
-
<span class="prism-header__brand-name">{{ title() }}</span>
|
|
184
|
-
@if (subtitle()) {
|
|
185
|
-
<span class="prism-header__brand-sub">{{ subtitle() }}</span>
|
|
186
|
-
}
|
|
187
|
-
</div>
|
|
188
|
-
</div>
|
|
189
|
-
@if (widgetsStart().length) {
|
|
190
|
-
<div class="prism-header__widgets prism-header__widgets--start">
|
|
191
|
-
@for (w of widgetsStart(); track w.id) {
|
|
192
|
-
<prism-header-widget-host [widget]="w" />
|
|
193
|
-
}
|
|
194
|
-
</div>
|
|
195
|
-
}
|
|
196
|
-
<div class="prism-header__actions">
|
|
197
|
-
@for (w of widgetsEnd(); track w.id) {
|
|
198
|
-
<prism-header-widget-host [widget]="w" />
|
|
199
|
-
} @if (buildInfoLabel()) {
|
|
200
|
-
<span class="prism-header__build-pill">{{ buildInfoLabel() }}</span>
|
|
201
|
-
}
|
|
202
|
-
<button
|
|
203
|
-
class="prism-header__icon-btn"
|
|
204
|
-
(click)="themeService.toggle()"
|
|
205
|
-
[title]="
|
|
206
|
-
themeService.isDark()
|
|
207
|
-
? 'Switch to light mode'
|
|
208
|
-
: 'Switch to dark mode'
|
|
209
|
-
"
|
|
210
|
-
[attr.aria-label]="
|
|
211
|
-
themeService.isDark()
|
|
212
|
-
? 'Switch to light mode'
|
|
213
|
-
: 'Switch to dark mode'
|
|
214
|
-
"
|
|
215
|
-
[attr.aria-pressed]="themeService.isDark()"
|
|
216
|
-
>
|
|
217
|
-
@if (themeService.isDark()) {
|
|
218
|
-
<prism-icon name="sun" [size]="16" />
|
|
219
|
-
} @else {
|
|
220
|
-
<prism-icon name="moon" [size]="16" />
|
|
221
|
-
}
|
|
222
|
-
</button>
|
|
223
|
-
<prism-layout-menu />
|
|
224
|
-
</div>
|
|
225
|
-
</header>
|
|
226
|
-
`, styles: ["\n .prism-header {\n height: var(--band-header);\n display: grid;\n grid-template-columns: minmax(min-content, var(--sw, 264px)) 1fr auto;\n align-items: center;\n padding: 0 14px 0 0;\n background: var(--prism-bg);\n border-bottom: 1px solid var(--prism-border);\n }\n\n .prism-header__brand {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 0 16px;\n cursor: pointer;\n white-space: nowrap;\n }\n\n .prism-header__logo-default {\n width: 26px;\n height: 26px;\n flex: 0 0 26px;\n color: var(--prism-primary);\n filter: drop-shadow(0 0 8px var(--prism-glow-strong));\n }\n .prism-header__logo-default img { width: 30px; }\n\n .prism-header__logo-img {\n height: 26px;\n width: auto;\n object-fit: contain;\n }\n\n .prism-header__brand-text {\n display: flex;\n flex-direction: column;\n line-height: 1.1;\n }\n\n .prism-header__brand-name {\n font-weight: 700;\n font-size: var(--fs-xl);\n letter-spacing: -0.01em;\n background: linear-gradient(90deg, var(--prism-primary), var(--prism-accent) 60%, var(--prism-primary-to));\n -webkit-background-clip: text;\n background-clip: text;\n color: transparent;\n }\n\n .prism-header__brand-sub {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n color: var(--prism-text-ghost);\n }\n\n .prism-header__cmdbar {\n max-width: 540px;\n width: 100%;\n justify-self: center;\n display: flex;\n align-items: center;\n gap: 10px;\n height: 32px;\n padding: 0 12px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 8px;\n color: var(--prism-text-muted);\n font-size: var(--fs-lg);\n cursor: pointer;\n transition: border-color var(--dur-fast), background var(--dur-fast);\n }\n .prism-header__cmdbar:hover {\n border-color: var(--prism-border-strong);\n color: var(--prism-text-2);\n }\n\n .prism-header__cmdbar-text {\n flex: 1;\n text-align: left;\n }\n\n .prism-header__cmdbar-shortcut {\n display: flex;\n gap: 3px;\n }\n .prism-header__cmdbar-shortcut kbd {\n font-family: var(--font-mono);\n font-size: 10.5px;\n padding: 1px 5px;\n border-radius: 4px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n }\n\n .prism-header__build-pill {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n color: var(--prism-text-ghost);\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 9999px;\n padding: 2px 10px;\n white-space: nowrap;\n line-height: 1.4;\n }\n\n .prism-header__actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 6px;\n }\n\n .prism-header__widgets {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n }\n .prism-header__widgets--start {\n padding-left: 4px;\n justify-content: flex-start;\n }\n\n .prism-header__icon-btn {\n width: 32px;\n height: 32px;\n display: grid;\n place-items: center;\n border-radius: 8px;\n color: var(--prism-text-muted);\n background: none;\n border: none;\n cursor: pointer;\n position: relative;\n transition: all var(--dur-fast);\n }\n .prism-header__icon-btn:hover {\n background: var(--prism-input-bg);\n color: var(--prism-text);\n }\n\n :focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }\n "] }]
|
|
157
|
+
args: [{ selector: 'prism-header', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismIconComponent, PrismLayoutMenuComponent, PrismHeaderWidgetHostComponent], template: "<header class=\"prism-header\">\n <div class=\"prism-header__brand\">\n @if (logoUrl()) {\n <img\n class=\"prism-header__logo-img\"\n [src]=\"logoUrl()\"\n [alt]=\"title()\" />\n } @else {\n <div class=\"prism-header__logo-default\">\n <!-- @formatter:off -->\n <!-- prettier-ignore -->\n <img alt=\"ng prism logo\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABYCAMAAAA0hKKwAAAC7lBMVEUAAADFkfu6Dn9fLlcmNclKI0WFKFAnRr9XJ09tUI3jTZDxU5vxUJvIQ30wYuRNIMFoF7qBEq61g7y0N2+SL1ljQnL8vO5dUqqhNGPps/coVdQ4K8iUEKCkEJm1O3GKaL2JXpzTmePcS4zCitkoQdeVgfK4ie7hqeGde9p7bNTRR4PQRYRqYMawjPe/SHyBX7D4WJ75WaD6W6H4Vp37XKL9y/UlMtbDEoR90f39uvndn/v5U5rYm/vMlPsrTPJLI8z/YbNWH8f6tfr+0PjxrPvqqPu8jPs1K9QxY/zko/tFJc5RIcnTmfuuifv/1PkmNdz0r/olM9hoGcDopPurh/swXPotUfVzF7rCj/ukhvv9zfb9wv+XgvvuqfovVvgrRO7/5/60i/zhofunhvv6WJ6B0f2ghPvQlvttGL2/Eoa3i/soPeYnOuA8KdJfHMNjG8F8FbX/4P6yiPuSgfsxYPv3sfq2EYpAJ9BaHcX8Vpy7EYf+x/R3FbiIFLD/X62YE6W5jPychPz+tvb7Yab4Qo/+2P/IkvsvLtaCFLOPE6vIk/v9W6C4BH2Vzv2/jvv+XqOtEY/JEYWH0P28xf2fEpb//f//7v81af+myf2Mf/ykE6P6SpWmEJIkYP3/ZaP/zf+N0P1my/2dyv3/Wqf6uP8UM/D9ZaixD4vBDoGwxv3Mv/v6rvYIIOv/aLiVEZnN9f/+vP9y2P6bj/0bVvun3//1tP+ymv/I2v54zP16gvssRvZTIcSKFaTTn/+ml/9p4P7bzP7ilvvNhPtqcvn9qNqNFJ652/7AfPzYjPvy3fr8gsL6crPRJoq7/v+A3f7GmP6oi/6grv3ZtfxTbfskOvE3NeY0Ltn9l8xNDamAGKfmQJOTAISlAIGh9P+P7P/Fof/uzf6Kx/3e2/xGTvHjvud1HK6Nuf5Dav1lILi0MZvbM5B9AI+W2v62iNaPcdLXk824YLmbRbUxB7RqHq9mBJ9zAJjMHIWLjP9HRO0lFtDFY56wAAAAMHRSTlMA/qAgpAY5rxNM3e/9sqKhoZ+bgFYq/Htp+Kihnp6TkV3W08Oh7enSxsO/t6X2nnNWmYchAAAJcElEQVRo3rTSv4vaYBwG8IDc0btrF1uP3nLVOhRaKEnMonEQTQbhECFbQyBIwNnBwcXBmsnBqS4OGS44eAhZ3BW63HVz6Xp/Sr/PmwRxbHzfB3+MH573+0j/nVxOEp/rL5LwXL74BUl0rhuB8CofG/OJW5SE5uLtbFUNbi8kkfm+0VeTaJCXBCY3Xo20iW0HbyRxebeZjX5O7KovsMplY66OVoTYgbgZf26oc9akKm7GHzYzbc6aVKPBlSQkFzdjVYubUJU7MTO+pyKaliBCbo/5ztUjQrfPcScwX09LEVFVMF9trmneKkEi7jPGfFmRI9IMSpwJzJcuQh+dngtEsxn6mDHf+aLI8SZQbM4zvsfVTxGKnxcwXyR9LsowtHnO+NvGA5LcJCIAxrAblLnOV1aYoii69mTHBiFDu8BvvmNPVeMqKiFRanQdu8RvviMgbMIqPVdIBoiuYRh2kdt8ZYW9lsqQpzDuAcMJOc34vuF5DKEyCkNAwHAcxwrynOarUNCEjATpUmCYpjHkMeOvjQoMIFCAdOO3gmG1ozKP+c5wEQpDsK4tesQGKWZ0xWG+spcguIlCTYCgCAjLaoels+fLrh7v9xRhjwWkHZ0745txRSEFDIuiq4QYSREQvZ7RO894T0VAHDP96zvxepkBpBZ9Om++MzlF6Bd3X3Z+GU76WChCiLUtnD1fpihpkcUisFgREMyo1bblc+brebIMAwj+p3/cwevCthzz+FhImH3G1+MKMwAQI8vy8nYxuHteWNapUTdK2ec7Sg18KdOXRWvwenDt/alRr4fFrPN9rMishBJH1fWWC2TnGiSkRh0x+1nnq1c8GCoo6kRXdzudwe5wePb3MEAkSN/IZ5rv44yKKACSLFe+3+q4u/V67W73MFLi4aFfNwtZ5jumIkDSyNPf7o9OiyE7v9c7EkjfLGeZ77/K7DwoxjCOA7h1TJpxjiPn8AeGwShr1Vht0+wgmrbJlA47uxal5NpqXIvaoRS5YlNRQ83qmKamQ3dRKbkqFEVE5L5v//n9nufZ991VVvud7PCPz/ye3/d9vGoXVosptL5qmVQmVV8+mZV1smt1A2cgAVlibXl904SmiNhWEymSymRrik9iri1ZbGw4OjqunWF5fcVgYJiBWxf5ESQTjMziJ9UcAQZmyVTL64uDIEIflTP7pTIDkglIQtfFBmowIiqqUmB5fW1ZGHJFLfLz8wOkPiETU9hVDQI3x6GoqKi1Ft3GgxccFsIkfHDrIhFMAu2qT03ApNaPbzA2Dh2KcqwcbAEyFAbhDHwOhWfGqjU8QpgjxdWOeFbUgAh81s606Pblto4fMMh1HIQhT1Np3l2udqQETAGEj8BnubUlt6/Qjg5heNalMhwEFx9f+PQIzbnCOzXEgAgEAh9IZZ9rPA6eQyGbgyrwrIPBFg8IS2NCAzkpNJA4enTponkW1Zc3Fpy5ESklp0WOq7DkHEtcY1YDEFECzljaJBhkUX3tGIJbj9QYI3FxcUDAp8O7DTUwBQQNRCIqp/SpvuuPEYO7U2Dra0CgiFQaX1ji7x/HkpfQYCSAEeHTNKCP9bWjCI3YThNpgpz35+LQ2FnDE4ioKmf2ob77cOuosDtrwYH7ajwsVmFR/CNAHAxK3lNAeCJi48aISus+1Zd/CgHBrXOGn0wXn/v4fIm/gyGXbtdQYuPSiI0QVUjTjD7U19b0WRfDs84MkSZel/Xs2UlgOCQvr6gGh0ABDVWIqtLmv/Vlly+rMGydOyyNWtf14cvvbH1o8a1Gjrn0ogYI3nBzi5g76H/1ZTPQC2W+eL4okiOufWj7Ul7uFJzdml98Kw8YqlRdRUMFCQkBw82zc4r52zdNuB5HIV/Gz7pGprv2/lVbW7mza/mK1pbsXzyT5w8LQQPHQMNTpTJX49nkOWQIxLB1jUine9/d1vZqi7Ozq5OrU6tSn/3sdu6j8yV091cRYGNA1jXNNPvywNpLzwtfUNQaPw3s+/nnb9++ft2609nV1dXJaUVrGTC10ABk8hwirlICDUSaO63N1BcN/toiN7xGswaI79/bu7tfbdkJk4CxYkerUqnM1lPG/9ILRNwwIEB8VdPN3b4EIAwe1gKpbKxa9/zT27cV7e3dgVsNyI7Nm+8pkWkprYei4e7JPnAKggR0/qPGg2zh9qUEYYSwdTXs+1PO27q6ior2wJVbt2zhkGWgUCYXGlACg3giggKmuXmQmduXzkGkAxfW6OI/nnqYk1NXV9fuvRIQbpJlyw66KyVKpaSFNAAOzJPsAw1MQNGUXusL777C9QSgg+D/3D6+fvjwFCIV3oGBiOzkkYUeyjJQJPrsu8Dkh7B1ECIgoLlogPmXByH5OHPlORKnAMkBgyLORsjChcESEr2+NjXXJwAVFDBabdGsXm9fzhDC17GUIa87Os6eBQQNb++eiAcoZRIlKKv0+tKiJpUvIoTAVFn3Ul86CPwC43DKkJvpHenHAYFU7PHe4x1oupODMAlkExCoSPSK0iKBm68BkcvlVdN71hcMAJABQvhme0d6+nGKVGzbsweQnseFs7gDAMgqYLxKm5d6IiGnKbL5a+vCNDDYKCm2b4I6tm8nCCRm2zZQjCZZwRASWD9TFJKCsFpfFY5BEqrNH/zXN87EaOAYKSkP7GN3794NCkHCo6OjjZBy452gwSkKhaKgIKxU5aYlBKRqTo/6GvZ9MzY2iCEQMMwjHh7uoCAC8SoouJvoto4h8vwxf9WXLgOJjCAeCd+7d280HJc3j5geFxju7sGrMIh4eRUkA6MNxSRWzTK9fSF2KXZvMmIz7O2DQNkOSSeGKeLaC7IJFAUqiISFARO6To5IIqkxX19YxjFYBhBGSHhMTAxD/r14d4OiYEhYcoFLrdYXjMT86Ub1FeO+f8TGgsAQVJJiEIk2N4kHRTZtAoVDXFySk1+WarWo2HA/NBYfPkaWYU+DBihJ4eHhxpNs7Q0hxwUBxQsQplAmQJ4YGjrYUN8UISN4JAgNRMwunkeCg0HhEWSgAQGJ+XPoy8OFww9g32DwCDBJSX2YxINHIBLOoIHVyLX5A8hP3egyTBD73Wc5xGy7TBClhDfYMKdr8TYenXYzNuOEaexP2B9PwjAkmkOcAaH/+t67584Cf3tLsLIMo1S4uJw2istpWM1Pm36j+veWyZhJmJE0I2iG00zEDORjNW2glZXVtGnTBg6cYGU1YRgE/gy/mWA1bMIwmz/QGVRJ3BG6bAAAAABJRU5ErkJggg==\" />\n <!-- @formatter:on -->\n </div>\n }\n <div class=\"prism-header__brand-text\">\n <span class=\"prism-header__brand-name\">{{ title() }}</span>\n @if (subtitle()) {\n <span class=\"prism-header__brand-sub\">{{ subtitle() }}</span>\n }\n </div>\n </div>\n @if (widgetsStart().length) {\n <div class=\"prism-header__widgets prism-header__widgets--start\">\n @for (w of widgetsStart(); track w.id) {\n <prism-header-widget-host [widget]=\"w\" />\n }\n </div>\n }\n <div class=\"prism-header__actions\">\n @for (w of widgetsEnd(); track w.id) {\n <prism-header-widget-host [widget]=\"w\" />\n }\n @if (buildInfoLabel()) {\n <span class=\"prism-header__build-pill\">{{ buildInfoLabel() }}</span>\n }\n <button\n class=\"prism-header__icon-btn\"\n (click)=\"themeService.toggle()\"\n [title]=\"themeService.isDark() ? 'Switch to light mode' : 'Switch to dark mode'\"\n [attr.aria-label]=\"themeService.isDark() ? 'Switch to light mode' : 'Switch to dark mode'\"\n [attr.aria-pressed]=\"themeService.isDark()\">\n @if (themeService.isDark()) {\n <prism-icon\n name=\"sun\"\n [size]=\"16\" />\n } @else {\n <prism-icon\n name=\"moon\"\n [size]=\"16\" />\n }\n </button>\n <prism-layout-menu />\n </div>\n</header>\n", styles: [".prism-header {\n display: grid;\n grid-template-columns: minmax(min-content, var(--sw, 264px)) 1fr auto;\n align-items: center;\n height: var(--band-header);\n padding: 0 14px 0 0;\n background: var(--prism-bg);\n border-bottom: 1px solid var(--prism-border);\n}\n\n.prism-header__brand {\n display: flex;\n gap: 10px;\n align-items: center;\n padding: 0 16px;\n white-space: nowrap;\n cursor: pointer;\n}\n\n.prism-header__logo-default {\n flex: 0 0 26px;\n width: 26px;\n height: 26px;\n color: var(--prism-primary);\n filter: drop-shadow(0 0 8px var(--prism-glow-strong));\n}\n\n.prism-header__logo-default img {\n width: 30px;\n}\n\n.prism-header__logo-img {\n width: auto;\n height: 26px;\n object-fit: contain;\n}\n\n.prism-header__brand-text {\n display: flex;\n flex-direction: column;\n line-height: 1.1;\n}\n\n.prism-header__brand-name {\n font-size: var(--fs-xl);\n font-weight: 700;\n color: transparent;\n letter-spacing: -0.01em;\n background: linear-gradient(90deg, var(--prism-primary), var(--prism-accent) 60%, var(--prism-primary-to));\n background-clip: text;\n}\n\n.prism-header__brand-sub {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n color: var(--prism-text-ghost);\n}\n\n.prism-header__cmdbar {\n display: flex;\n gap: 10px;\n align-items: center;\n justify-self: center;\n width: 100%;\n max-width: 540px;\n height: 32px;\n padding: 0 12px;\n font-size: var(--fs-lg);\n color: var(--prism-text-muted);\n cursor: pointer;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 8px;\n transition:\n border-color var(--dur-fast),\n background var(--dur-fast);\n}\n\n.prism-header__cmdbar:hover {\n color: var(--prism-text-2);\n border-color: var(--prism-border-strong);\n}\n\n.prism-header__cmdbar-text {\n flex: 1;\n text-align: left;\n}\n\n.prism-header__cmdbar-shortcut {\n display: flex;\n gap: 3px;\n}\n\n.prism-header__cmdbar-shortcut kbd {\n padding: 1px 5px;\n font-family: var(--font-mono);\n font-size: 10.5px;\n color: var(--prism-text-muted);\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 4px;\n}\n\n.prism-header__build-pill {\n padding: 2px 10px;\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n line-height: 1.4;\n color: var(--prism-text-ghost);\n white-space: nowrap;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 9999px;\n}\n\n.prism-header__actions {\n display: flex;\n gap: 6px;\n align-items: center;\n justify-content: flex-end;\n}\n\n.prism-header__widgets {\n display: flex;\n gap: 8px;\n align-items: center;\n min-width: 0;\n}\n\n.prism-header__widgets--start {\n justify-content: flex-start;\n padding-left: 4px;\n}\n\n.prism-header__icon-btn {\n position: relative;\n display: grid;\n place-items: center;\n width: 32px;\n height: 32px;\n color: var(--prism-text-muted);\n cursor: pointer;\n background: none;\n border: none;\n border-radius: 8px;\n transition: all var(--dur-fast);\n}\n\n.prism-header__icon-btn:hover {\n color: var(--prism-text);\n background: var(--prism-input-bg);\n}\n\n:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n}\n"] }]
|
|
227
158
|
}], null, { onGlobalKey: [{
|
|
228
159
|
type: HostListener,
|
|
229
160
|
args: ['document:keydown', ['$event']]
|
|
230
161
|
}] }); })();
|
|
231
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismHeaderComponent, { className: "PrismHeaderComponent", filePath: "app/header/prism-header.component.ts", lineNumber:
|
|
162
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismHeaderComponent, { className: "PrismHeaderComponent", filePath: "app/header/prism-header.component.ts", lineNumber: 20 }); })();
|
package/dist/app/hmr.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmr.d.ts","sourceRoot":"","sources":["../../src/app/hmr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGjE,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"hmr.d.ts","sourceRoot":"","sources":["../../src/app/hmr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGjE,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,GAAG,IAAI,CAIzF"}
|
|
@@ -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,CAoCjC,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,iFAAiF;AACjF,eAAO,MAAM,UAAU,EAAE,SAAS,MAAM,EAAuB,CAAC"}
|
|
@@ -30,6 +30,7 @@ const ICONS = {
|
|
|
30
30
|
camera: '<path d="M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z"/><circle cx="12" cy="13" r="3"/>',
|
|
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
|
+
'ruler-dimension': '<path d="M4 4v16M20 4v16M8 12h8m-2-2 2 2-2 2m-4-4-2 2 2 2"/>',
|
|
33
34
|
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"/>',
|
|
34
35
|
'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"/>',
|
|
35
36
|
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"/>',
|
|
@@ -37,7 +38,7 @@ const ICONS = {
|
|
|
37
38
|
x: '<path d="M18 6 6 18M6 6l12 12"/>',
|
|
38
39
|
check: '<path d="M20 6 9 17l-5-5"/>',
|
|
39
40
|
info: '<circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/>',
|
|
40
|
-
'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"/>'
|
|
41
|
+
'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"/>'
|
|
41
42
|
};
|
|
42
43
|
export { ICONS };
|
|
43
44
|
/** Every name the registry can draw — what a panel's `icon` has to pick from. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prism-icon.component.d.ts","sourceRoot":"","sources":["../../../src/app/icons/prism-icon.component.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prism-icon.component.d.ts","sourceRoot":"","sources":["../../../src/app/icons/prism-icon.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAS,MAAM,oBAAoB,CAAC;;AAMvD,OAAO,EAAE,UAAU,EAAE,CAAC;AAMtB;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ5D;AAED,qBAOa,kBAAkB;IAC3B,QAAQ,CAAC,IAAI,8CAA4B;IACzC,QAAQ,CAAC,IAAI,8CAAa;IAE1B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAmC;;yCAJ7C,kBAAkB;2CAAlB,kBAAkB;CAoC9B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ChangeDetectionStrategy, Component, effect, ElementRef, inject, input } from '@angular/core';
|
|
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
5
|
// lives in `icon-registry.js` — a dependency-free module — so a plugin barrel
|
|
@@ -59,10 +59,10 @@ export class PrismIconComponent {
|
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
61
|
static ɵfac = function PrismIconComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismIconComponent)(); };
|
|
62
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismIconComponent, selectors: [["prism-icon"]], inputs: { name: [1, "name"], size: [1, "size"] }, decls: 0, vars: 0, template: function PrismIconComponent_Template(rf, ctx) { }, styles: ["[_nghost-%COMP%] {
|
|
62
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismIconComponent, selectors: [["prism-icon"]], inputs: { name: [1, "name"], size: [1, "size"] }, decls: 0, vars: 0, template: function PrismIconComponent_Template(rf, ctx) { }, styles: ["[_nghost-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}"] });
|
|
63
63
|
}
|
|
64
64
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismIconComponent, [{
|
|
65
65
|
type: Component,
|
|
66
|
-
args: [{ selector: 'prism-icon', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template:
|
|
66
|
+
args: [{ selector: 'prism-icon', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "", styles: [":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n"] }]
|
|
67
67
|
}], () => [], { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] }); })();
|
|
68
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismIconComponent, { className: "PrismIconComponent", filePath: "app/icons/prism-icon.component.ts", lineNumber:
|
|
68
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismIconComponent, { className: "PrismIconComponent", filePath: "app/icons/prism-icon.component.ts", lineNumber: 43 }); })();
|
package/dist/app/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { PRISM_CONFIG, PRISM_MANIFEST } from './tokens/prism-tokens.js';
|
|
2
|
+
export { PRISM_BASE_TOKENS, PRISM_DARK_THEME, PRISM_DEFAULT_THEME, PRISM_LIGHT_THEME } from './theme/prism-default-theme.js';
|
|
3
3
|
export { PrismThemeService } from './services/prism-theme.service.js';
|
|
4
4
|
export type { NavigationItem } from './services/navigation-item.types.js';
|
|
5
5
|
export { PrismManifestService } from './services/prism-manifest.service.js';
|
|
6
6
|
export { PrismSearchService } from './services/prism-search.service.js';
|
|
7
7
|
export { PrismNavigationService } from './services/prism-navigation.service.js';
|
|
8
8
|
export { PrismRendererService } from './services/prism-renderer.service.js';
|
|
9
|
-
export {
|
|
9
|
+
export { type EventLogEntry, PrismEventLogService } from './services/prism-event-log.service.js';
|
|
10
10
|
export { PrismPluginService } from './services/prism-plugin.service.js';
|
|
11
11
|
export { PrismLayoutService } from './services/prism-layout.service.js';
|
|
12
12
|
export { PrismUrlStateService } from './services/prism-url-state.service.js';
|
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,
|
|
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;AAyB1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC"}
|