@abbox/inspector 0.4.19 → 0.4.20

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.
@@ -12,4 +12,10 @@ export declare function hideHighlight(highlight: HTMLDivElement): void;
12
12
  export declare function hideSelectedHighlight(selectedHighlight: HTMLDivElement): void;
13
13
  export declare function rectForElement(el: Element): ElementRect;
14
14
  export declare function renderChangeMarkers(layer: HTMLDivElement, markers: ChangeMarker[], resolveElement: (refId: string) => Element | null, onSelect?: (changeId: string) => void): void;
15
+ /**
16
+ * A badge sits just above its element and moves with it. With no room above
17
+ * (the element starts at the top of the screen) it tucks inside the element's
18
+ * top edge instead, and scrolls away with the element rather than sticking.
19
+ */
20
+ export declare function badgeTop(elementTop: number): number;
15
21
  //# sourceMappingURL=overlay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../src/runtime/overlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAMhE,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,cAAc,CAAC;IAC1B,iBAAiB,EAAE,cAAc,CAAC;IAClC,WAAW,EAAE,cAAc,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,CAgD5D;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,WAAW,GAChB,IAAI,CAQN;AAED,wBAAgB,yBAAyB,CACvC,iBAAiB,EAAE,cAAc,EACjC,IAAI,EAAE,WAAW,GAChB,IAAI,CAQN;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI,CAE7D;AAED,wBAAgB,qBAAqB,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI,CAE7E;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,WAAW,CAQvD;AAOD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,YAAY,EAAE,EACvB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,EACjD,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACpC,IAAI,CAkFN"}
1
+ {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../src/runtime/overlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAMhE,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,cAAc,CAAC;IAC1B,iBAAiB,EAAE,cAAc,CAAC;IAClC,WAAW,EAAE,cAAc,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,CAgD5D;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,WAAW,GAChB,IAAI,CAQN;AAED,wBAAgB,yBAAyB,CACvC,iBAAiB,EAAE,cAAc,EACjC,IAAI,EAAE,WAAW,GAChB,IAAI,CAQN;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI,CAE7D;AAED,wBAAgB,qBAAqB,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI,CAE7E;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,WAAW,CAQvD;AAOD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,YAAY,EAAE,EACvB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,EACjD,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACpC,IAAI,CAyFN;AAID;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAGnD"}
@@ -155,12 +155,29 @@ export function renderChangeMarkers(layer, markers, resolveElement, onSelect) {
155
155
  : "0 0 0 1px rgba(0,0,0,0.2)";
156
156
  if (marker.pulse)
157
157
  ensurePulseStyle(layer.ownerDocument);
158
+ // Only while its element is on screen: a chip left at the viewport edge
159
+ // floats over unrelated content.
160
+ const view = layer.ownerDocument.defaultView;
161
+ const onScreen = rect.bottom > 0 &&
162
+ rect.right > 0 &&
163
+ rect.top < (view?.innerHeight ?? Number.POSITIVE_INFINITY) &&
164
+ rect.left < (view?.innerWidth ?? Number.POSITIVE_INFINITY);
165
+ dot.style.display = onScreen ? "" : "none";
158
166
  dot.style.left = `${rect.x - 6}px`;
159
- dot.style.top = marker.badge
160
- ? `${Math.max(0, rect.top - 18)}px`
161
- : `${rect.top - 6}px`;
167
+ dot.style.top = `${marker.badge ? badgeTop(rect.top) : rect.top - 6}px`;
162
168
  }
163
169
  }
170
+ const BADGE_HEIGHT = 18;
171
+ /**
172
+ * A badge sits just above its element and moves with it. With no room above
173
+ * (the element starts at the top of the screen) it tucks inside the element's
174
+ * top edge instead, and scrolls away with the element rather than sticking.
175
+ */
176
+ export function badgeTop(elementTop) {
177
+ if (elementTop >= BADGE_HEIGHT)
178
+ return elementTop - BADGE_HEIGHT;
179
+ return elementTop >= 0 ? 0 : elementTop;
180
+ }
164
181
  const BADGE_COLORS = {
165
182
  "seo-error": "#dc2626",
166
183
  "seo-warning": "#d97706",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abbox/inspector",
3
- "version": "0.4.19",
3
+ "version": "0.4.20",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },