@ng-prism/plugin-box-model 21.12.0-beta.2 → 22.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -126,7 +126,8 @@ export class BoxModelOverlayComponent {
126
126
  el = inject((ElementRef));
127
127
  destroyRef = inject(DestroyRef);
128
128
  stateService = inject(BoxModelStateService);
129
- rendererService = input.required(...(ngDevMode ? [{ debugName: "rendererService" }] : []));
129
+ rendererService = input.required(/* @ts-ignore */
130
+ ...(ngDevMode ? [{ debugName: "rendererService" }] : /* istanbul ignore next */ []));
130
131
  boxStyles = computed(() => {
131
132
  const bm = this.stateService.hoveredBoxModel();
132
133
  const canvas = this.el.nativeElement.parentElement;
@@ -166,7 +167,8 @@ export class BoxModelOverlayComponent {
166
167
  height: `${bH - border.top - border.bottom - padding.top - padding.bottom}px`,
167
168
  },
168
169
  };
169
- }, ...(ngDevMode ? [{ debugName: "boxStyles" }] : []));
170
+ }, /* @ts-ignore */
171
+ ...(ngDevMode ? [{ debugName: "boxStyles" }] : /* istanbul ignore next */ []));
170
172
  contentSize = computed(() => {
171
173
  const bm = this.stateService.hoveredBoxModel();
172
174
  if (!bm)
@@ -175,7 +177,8 @@ export class BoxModelOverlayComponent {
175
177
  const w = Math.round(content.width - border.left - border.right - padding.left - padding.right);
176
178
  const h = Math.round(content.height - border.top - border.bottom - padding.top - padding.bottom);
177
179
  return `${w} × ${h}`;
178
- }, ...(ngDevMode ? [{ debugName: "contentSize" }] : []));
180
+ }, /* @ts-ignore */
181
+ ...(ngDevMode ? [{ debugName: "contentSize" }] : /* istanbul ignore next */ []));
179
182
  labelMargin(side) {
180
183
  const bm = this.stateService.hoveredBoxModel();
181
184
  if (!bm)
@@ -225,7 +228,7 @@ export class BoxModelOverlayComponent {
225
228
  } if (rf & 2) {
226
229
  let tmp_0_0;
227
230
  i0.ɵɵconditional((tmp_0_0 = ctx.boxStyles()) ? 0 : -1, tmp_0_0);
228
- } }, styles: ["[_nghost-%COMP%] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n overflow: hidden;\n }\n .prism-bm__box[_ngcontent-%COMP%] {\n position: absolute;\n box-sizing: border-box;\n }\n .prism-bm__box--margin[_ngcontent-%COMP%] { background: rgba(245, 158, 11, 0.2); outline: 1px solid rgba(245, 158, 11, 0.5); }\n .prism-bm__box--border[_ngcontent-%COMP%] { background: rgba(234, 179, 8, 0.3); }\n .prism-bm__box--padding[_ngcontent-%COMP%] { background: rgba(16, 185, 129, 0.2); outline: 1px solid rgba(16, 185, 129, 0.4); }\n .prism-bm__box--content[_ngcontent-%COMP%] { background: rgba(59, 130, 246, 0.25); display: flex; align-items: center; justify-content: center; }\n .prism-bm__label[_ngcontent-%COMP%] {\n position: absolute;\n font-size: 10px;\n font-family: monospace;\n color: #1f2937;\n background: rgba(255,255,255,0.8);\n padding: 0 3px;\n border-radius: 2px;\n white-space: nowrap;\n line-height: 1.4;\n }\n .prism-bm__label--top[_ngcontent-%COMP%] { top: 2px; left: 50%; transform: translateX(-50%); }\n .prism-bm__label--bottom[_ngcontent-%COMP%] { bottom: 2px; left: 50%; transform: translateX(-50%); }\n .prism-bm__label--left[_ngcontent-%COMP%] { left: 2px; top: 50%; transform: translateY(-50%); }\n .prism-bm__label--right[_ngcontent-%COMP%] { right: 2px; top: 50%; transform: translateY(-50%); }\n .prism-bm__size[_ngcontent-%COMP%] {\n font-size: 11px;\n font-family: monospace;\n color: #1e3a5f;\n background: rgba(255,255,255,0.85);\n padding: 1px 5px;\n border-radius: 3px;\n white-space: nowrap;\n }"], changeDetection: 0 });
231
+ } }, styles: ["[_nghost-%COMP%] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n overflow: hidden;\n }\n .prism-bm__box[_ngcontent-%COMP%] {\n position: absolute;\n box-sizing: border-box;\n }\n .prism-bm__box--margin[_ngcontent-%COMP%] { background: rgba(245, 158, 11, 0.2); outline: 1px solid rgba(245, 158, 11, 0.5); }\n .prism-bm__box--border[_ngcontent-%COMP%] { background: rgba(234, 179, 8, 0.3); }\n .prism-bm__box--padding[_ngcontent-%COMP%] { background: rgba(16, 185, 129, 0.2); outline: 1px solid rgba(16, 185, 129, 0.4); }\n .prism-bm__box--content[_ngcontent-%COMP%] { background: rgba(59, 130, 246, 0.25); display: flex; align-items: center; justify-content: center; }\n .prism-bm__label[_ngcontent-%COMP%] {\n position: absolute;\n font-size: 10px;\n font-family: monospace;\n color: #1f2937;\n background: rgba(255,255,255,0.8);\n padding: 0 3px;\n border-radius: 2px;\n white-space: nowrap;\n line-height: 1.4;\n }\n .prism-bm__label--top[_ngcontent-%COMP%] { top: 2px; left: 50%; transform: translateX(-50%); }\n .prism-bm__label--bottom[_ngcontent-%COMP%] { bottom: 2px; left: 50%; transform: translateX(-50%); }\n .prism-bm__label--left[_ngcontent-%COMP%] { left: 2px; top: 50%; transform: translateY(-50%); }\n .prism-bm__label--right[_ngcontent-%COMP%] { right: 2px; top: 50%; transform: translateY(-50%); }\n .prism-bm__size[_ngcontent-%COMP%] {\n font-size: 11px;\n font-family: monospace;\n color: #1e3a5f;\n background: rgba(255,255,255,0.85);\n padding: 1px 5px;\n border-radius: 3px;\n white-space: nowrap;\n }"] });
229
232
  }
230
233
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BoxModelOverlayComponent, [{
231
234
  type: Component,
@@ -77,7 +77,8 @@ function BoxModelPanelComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
77
77
  } }
78
78
  export class BoxModelPanelComponent {
79
79
  stateService = inject(BoxModelStateService);
80
- activeComponent = input(null, ...(ngDevMode ? [{ debugName: "activeComponent" }] : []));
80
+ activeComponent = input(null, /* @ts-ignore */
81
+ ...(ngDevMode ? [{ debugName: "activeComponent" }] : /* istanbul ignore next */ []));
81
82
  fmt(value) {
82
83
  return value === 0 ? '-' : `${value}`;
83
84
  }
@@ -104,7 +105,7 @@ export class BoxModelPanelComponent {
104
105
  let tmp_0_0;
105
106
  i0.ɵɵadvance();
106
107
  i0.ɵɵconditional((tmp_0_0 = ctx.stateService.hoveredBoxModel()) ? 1 : 2, tmp_0_0);
107
- } }, styles: ["[_nghost-%COMP%] { display: block; height: 100%; overflow: auto; }\n .prism-bmp[_ngcontent-%COMP%] {\n padding: 24px;\n font-family: var(--font-sans);\n font-size: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100%;\n }\n .prism-bmp__diagram[_ngcontent-%COMP%] { width: 100%; max-width: 340px; }\n .prism-bmp__region[_ngcontent-%COMP%] {\n border: 1px dashed; position: relative;\n display: flex; align-items: center; justify-content: center;\n font-family: var(--font-mono); font-size: 10px;\n text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600;\n }\n .prism-bmp__region--margin[_ngcontent-%COMP%] {\n border-color: color-mix(in srgb, #fbbf24 70%, transparent);\n background: color-mix(in srgb, #fbbf24 8%, transparent);\n padding: 32px; color: #fbbf24;\n }\n .prism-bmp__region--border[_ngcontent-%COMP%] {\n border-color: color-mix(in srgb, #f472b6 70%, transparent);\n background: color-mix(in srgb, #f472b6 8%, transparent);\n padding: 14px; color: #f472b6; flex: 1;\n }\n .prism-bmp__region--padding[_ngcontent-%COMP%] {\n border-color: color-mix(in srgb, #34d399 70%, transparent);\n background: color-mix(in srgb, #34d399 10%, transparent);\n padding: 20px; color: #34d399; flex: 1;\n }\n .prism-bmp__region-label[_ngcontent-%COMP%] {\n position: absolute; top: 6px; left: 50%; transform: translateX(-50%);\n font-size: 10px; font-weight: 600; text-transform: uppercase;\n letter-spacing: 0.08em; color: inherit; opacity: 0.8;\n }\n .prism-bmp__sides[_ngcontent-%COMP%] { display: flex; flex-direction: column; align-items: center; gap: 2px; padding-top: 14px; }\n .prism-bmp__inner-row[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 2px; width: 100%; }\n .prism-bmp__inner-row[_ngcontent-%COMP%] > .prism-bmp__region[_ngcontent-%COMP%] { flex: 1; }\n .prism-bmp__side[_ngcontent-%COMP%] {\n font-family: var(--font-mono); font-size: 10px;\n color: var(--prism-text-muted);\n min-width: 28px; text-align: center; padding: 1px 4px;\n }\n .prism-bmp__side--dim[_ngcontent-%COMP%] { color: var(--prism-text-ghost); }\n .prism-bmp__content-box[_ngcontent-%COMP%] {\n flex: 1; text-align: center;\n font-family: var(--font-mono); font-size: 12px;\n color: var(--prism-primary);\n border: 1px solid var(--prism-primary);\n background: color-mix(in srgb, var(--prism-primary) 15%, transparent);\n border-radius: var(--radius-xs); padding: 22px 36px;\n text-transform: none; letter-spacing: 0; font-weight: 500;\n }\n .prism-bmp__empty[_ngcontent-%COMP%] { color: var(--prism-text-muted); font-size: 13px; }"], changeDetection: 0 });
108
+ } }, styles: ["[_nghost-%COMP%] { display: block; height: 100%; overflow: auto; }\n .prism-bmp[_ngcontent-%COMP%] {\n padding: 24px;\n font-family: var(--font-sans);\n font-size: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100%;\n }\n .prism-bmp__diagram[_ngcontent-%COMP%] { width: 100%; max-width: 340px; }\n .prism-bmp__region[_ngcontent-%COMP%] {\n border: 1px dashed; position: relative;\n display: flex; align-items: center; justify-content: center;\n font-family: var(--font-mono); font-size: 10px;\n text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600;\n }\n .prism-bmp__region--margin[_ngcontent-%COMP%] {\n border-color: color-mix(in srgb, #fbbf24 70%, transparent);\n background: color-mix(in srgb, #fbbf24 8%, transparent);\n padding: 32px; color: #fbbf24;\n }\n .prism-bmp__region--border[_ngcontent-%COMP%] {\n border-color: color-mix(in srgb, #f472b6 70%, transparent);\n background: color-mix(in srgb, #f472b6 8%, transparent);\n padding: 14px; color: #f472b6; flex: 1;\n }\n .prism-bmp__region--padding[_ngcontent-%COMP%] {\n border-color: color-mix(in srgb, #34d399 70%, transparent);\n background: color-mix(in srgb, #34d399 10%, transparent);\n padding: 20px; color: #34d399; flex: 1;\n }\n .prism-bmp__region-label[_ngcontent-%COMP%] {\n position: absolute; top: 6px; left: 50%; transform: translateX(-50%);\n font-size: 10px; font-weight: 600; text-transform: uppercase;\n letter-spacing: 0.08em; color: inherit; opacity: 0.8;\n }\n .prism-bmp__sides[_ngcontent-%COMP%] { display: flex; flex-direction: column; align-items: center; gap: 2px; padding-top: 14px; }\n .prism-bmp__inner-row[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 2px; width: 100%; }\n .prism-bmp__inner-row[_ngcontent-%COMP%] > .prism-bmp__region[_ngcontent-%COMP%] { flex: 1; }\n .prism-bmp__side[_ngcontent-%COMP%] {\n font-family: var(--font-mono); font-size: 10px;\n color: var(--prism-text-muted);\n min-width: 28px; text-align: center; padding: 1px 4px;\n }\n .prism-bmp__side--dim[_ngcontent-%COMP%] { color: var(--prism-text-ghost); }\n .prism-bmp__content-box[_ngcontent-%COMP%] {\n flex: 1; text-align: center;\n font-family: var(--font-mono); font-size: 12px;\n color: var(--prism-primary);\n border: 1px solid var(--prism-primary);\n background: color-mix(in srgb, var(--prism-primary) 15%, transparent);\n border-radius: var(--radius-xs); padding: 22px 36px;\n text-transform: none; letter-spacing: 0; font-weight: 500;\n }\n .prism-bmp__empty[_ngcontent-%COMP%] { color: var(--prism-text-muted); font-size: 13px; }"] });
108
109
  }
109
110
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BoxModelPanelComponent, [{
110
111
  type: Component,
@@ -1,7 +1,8 @@
1
1
  import { Injectable, signal } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class BoxModelStateService {
4
- hoveredBoxModel = signal(null, ...(ngDevMode ? [{ debugName: "hoveredBoxModel" }] : []));
4
+ hoveredBoxModel = signal(null, /* @ts-ignore */
5
+ ...(ngDevMode ? [{ debugName: "hoveredBoxModel" }] : /* istanbul ignore next */ []));
5
6
  static ɵfac = function BoxModelStateService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BoxModelStateService)(); };
6
7
  static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: BoxModelStateService, factory: BoxModelStateService.ɵfac });
7
8
  }
@@ -0,0 +1,4 @@
1
+ import { type Rule } from '@angular-devkit/schematics';
2
+ import type { NgAddSchemaOptions } from './schema.js';
3
+ export declare function ngAdd(options: NgAddSchemaOptions): Rule;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schematics/ng-add/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,IAAI,EAGV,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAyBtD,wBAAgB,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAEvD"}
@@ -0,0 +1,25 @@
1
+ import { chain, } from '@angular-devkit/schematics';
2
+ import { addPluginToConfig } from '@ng-prism/core/schematics/utils';
3
+ const PLUGIN_IMPORT_NAME = 'boxModelPlugin';
4
+ const PLUGIN_IMPORT_FROM = '@ng-prism/plugin-box-model';
5
+ const PLUGIN_CALL = 'boxModelPlugin()';
6
+ function injectPlugin(options) {
7
+ return (tree, context) => {
8
+ const configPath = options.configPath ?? 'ng-prism.config.ts';
9
+ const changed = addPluginToConfig(tree, configPath, {
10
+ importName: PLUGIN_IMPORT_NAME,
11
+ importFrom: PLUGIN_IMPORT_FROM,
12
+ call: PLUGIN_CALL,
13
+ });
14
+ if (changed) {
15
+ context.logger.info(` ${PLUGIN_IMPORT_FROM} → added to ${configPath}`);
16
+ }
17
+ else {
18
+ context.logger.info(` ${PLUGIN_IMPORT_FROM} already configured — skipped`);
19
+ }
20
+ return tree;
21
+ };
22
+ }
23
+ export function ngAdd(options) {
24
+ return chain([injectPlugin(options)]);
25
+ }
@@ -0,0 +1,4 @@
1
+ export interface NgAddSchemaOptions {
2
+ configPath?: string;
3
+ }
4
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/schematics/ng-add/schema.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,7 +1,11 @@
1
1
  {
2
2
  "name": "@ng-prism/plugin-box-model",
3
- "version": "21.12.0-beta.2",
3
+ "version": "22.0.0-beta.0",
4
4
  "description": "CSS box model inspector for ng-prism.",
5
+ "ng-add": {
6
+ "save": "devDependencies"
7
+ },
8
+ "schematics": "./schematics/collection.json",
5
9
  "keywords": [
6
10
  "@ng-prism/core",
7
11
  "box-model",
@@ -25,12 +29,13 @@
25
29
  },
26
30
  "files": [
27
31
  "dist",
32
+ "schematics",
28
33
  "!**/*.tsbuildinfo"
29
34
  ],
30
35
  "peerDependencies": {
31
- "@angular/core": ">=21.0.0",
36
+ "@angular/core": ">=20.0.0",
32
37
  "rxjs": ">=7.0.0",
33
- "@ng-prism/core": "^21.12.0-0"
38
+ "@ng-prism/core": "^22.0.0-0"
34
39
  },
35
40
  "devDependencies": {
36
41
  "@ng-prism/core": "*"
@@ -0,0 +1,10 @@
1
+ {
2
+ "$schema": "../node_modules/@angular-devkit/schematics/collection-schema.json",
3
+ "schematics": {
4
+ "ng-add": {
5
+ "description": "Adds @ng-prism/plugin-box-model to the ng-prism config",
6
+ "factory": "../dist/schematics/ng-add/index#ngAdd",
7
+ "schema": "./ng-add/schema.json"
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "NgPrismPluginBoxModelNgAdd",
4
+ "title": "Add @ng-prism/plugin-box-model",
5
+ "description": "Registers @ng-prism/plugin-box-model in ng-prism.config.ts",
6
+ "type": "object",
7
+ "properties": {
8
+ "configPath": {
9
+ "type": "string",
10
+ "description": "Path to ng-prism.config.ts",
11
+ "default": "ng-prism.config.ts"
12
+ }
13
+ },
14
+ "required": [],
15
+ "additionalProperties": false
16
+ }