@seybel/breakhound 1.0.7 → 1.0.8

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.
Files changed (2) hide show
  1. package/dist/cli.js +21 -2
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -369,6 +369,7 @@ var NetworkTracker = class {
369
369
  }
370
370
  };
371
371
  var RESIZE_PROBE = `(() => {
372
+ if (window.__breakhound_settle) return;
372
373
  const MAX_DEPTH = 3;
373
374
  const MAX_DELAY = 2000;
374
375
  let depth = 0;
@@ -411,10 +412,11 @@ var RESIZE_PROBE = `(() => {
411
412
  };
412
413
 
413
414
  const wrappers = new WeakMap();
415
+ const wrapped = new WeakSet();
414
416
  const wrap = (listener) => {
415
417
  if (!listener) return listener;
416
418
  let w = wrappers.get(listener);
417
- if (!w) { w = tracked(listener, 1); wrappers.set(listener, w); }
419
+ if (!w) { w = tracked(listener, 1); wrappers.set(listener, w); wrapped.add(w); }
418
420
  return w;
419
421
  };
420
422
 
@@ -449,8 +451,25 @@ var RESIZE_PROBE = `(() => {
449
451
  };
450
452
  }
451
453
 
454
+ // A window resize listener added before this script: taken off and added again, wrapped. One set
455
+ // as window.onresize is wrapped where it is.
456
+ const adopt = (listener, capture, passive, once) => {
457
+ // The browser lists a listener added after this script by its wrapper.
458
+ if (!listener || wrappers.has(listener) || wrapped.has(listener)) return;
459
+ if (listener === window.onresize) {
460
+ window.onresize = wrap(listener);
461
+ return;
462
+ }
463
+ remove.call(window, 'resize', listener, capture);
464
+ window.addEventListener('resize', listener, { capture, passive, once });
465
+ };
466
+
452
467
  Object.defineProperty(window, '__breakhound_settle', {
453
- value: { pending: () => pending, listeners: () => listeners + (window.onresize ? 1 : 0) },
468
+ value: {
469
+ pending: () => pending,
470
+ listeners: () => listeners + (window.onresize ? 1 : 0),
471
+ adopt,
472
+ },
454
473
  });
455
474
  })();`;
456
475
  var FREEZE_CSS = `
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seybel/breakhound",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "description": "Find where your layout breaks across every viewport width, then hand the fix to your coding agent.",
5
5
  "keywords": [
6
6
  "responsive",