checkpoint-cli 0.3.4 → 0.3.5

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/dist/index.js CHANGED
@@ -1606,7 +1606,7 @@ const program = new commander_1.Command();
1606
1606
  program
1607
1607
  .name('checkpoint')
1608
1608
  .description('Share your localhost with reviewers — get visual feedback directly on the page')
1609
- .version('0.3.4');
1609
+ .version('0.3.5');
1610
1610
  // ── checkpoint login ──
1611
1611
  program
1612
1612
  .command('login')
@@ -15,6 +15,7 @@ function buildMinimalTrackingScript() {
15
15
  var lastMouseY=0;
16
16
  var inspectBox=null;
17
17
  var inspectLabel=null;
18
+ var pickShield=null;
18
19
  var lastPath='';
19
20
  var mutationTick=false;
20
21
  var pendingPickCommit=false;
@@ -210,11 +211,15 @@ function buildMinimalTrackingScript() {
210
211
 
211
212
  function getElementAtPoint(x,y){
212
213
  try{
214
+ if(pickShield) pickShield.style.pointerEvents='none';
213
215
  if(typeof x==='number'&&typeof y==='number'&&document.elementFromPoint){
214
216
  var node=document.elementFromPoint(x,y);
215
217
  if(node&&node.nodeType===1) return node;
216
218
  }
217
219
  }catch(e){}
220
+ finally{
221
+ if(pickShield) pickShield.style.pointerEvents='auto';
222
+ }
218
223
  return null;
219
224
  }
220
225
 
@@ -388,6 +393,28 @@ function buildMinimalTrackingScript() {
388
393
  if(inspectLabel) inspectLabel.style.display='none';
389
394
  }
390
395
 
396
+ function ensurePickShield(){
397
+ if(!document.body) return;
398
+ if(pickShield) return;
399
+ pickShield=document.createElement('div');
400
+ pickShield.style.position='fixed';
401
+ pickShield.style.left='0';
402
+ pickShield.style.top='0';
403
+ pickShield.style.right='0';
404
+ pickShield.style.bottom='0';
405
+ pickShield.style.background='transparent';
406
+ pickShield.style.cursor='crosshair';
407
+ pickShield.style.pointerEvents='auto';
408
+ pickShield.style.zIndex='2147483645';
409
+ document.body.appendChild(pickShield);
410
+ }
411
+
412
+ function removePickShield(){
413
+ if(!pickShield) return;
414
+ try{ pickShield.remove(); }catch(e){}
415
+ pickShield=null;
416
+ }
417
+
391
418
  function renderInspectAt(x,y){
392
419
  ensureInspectUi();
393
420
  if(!inspectBox||!inspectLabel){
@@ -445,9 +472,9 @@ function buildMinimalTrackingScript() {
445
472
  if(document.body) document.body.style.cursor=pickMode?'crosshair':'';
446
473
 
447
474
  if(!pickMode){
448
- if(pickMoveHandler) document.removeEventListener('mousemove',pickMoveHandler,true);
449
- if(pickPointerDownHandler) window.removeEventListener('pointerdown',pickPointerDownHandler,true);
450
- if(pickClickHandler) window.removeEventListener('click',pickClickHandler,true);
475
+ if(pickMoveHandler&&pickShield) pickShield.removeEventListener('mousemove',pickMoveHandler,true);
476
+ if(pickPointerDownHandler&&pickShield) pickShield.removeEventListener('pointerdown',pickPointerDownHandler,true);
477
+ if(pickClickHandler&&pickShield) pickShield.removeEventListener('click',pickClickHandler,true);
451
478
  if(pickEscHandler) window.removeEventListener('keydown',pickEscHandler,true);
452
479
  if(pickKeydownHandler) window.removeEventListener('keydown',pickKeydownHandler,true);
453
480
  if(pickBlockHandler){
@@ -473,9 +500,13 @@ function buildMinimalTrackingScript() {
473
500
  hoverRaf=0;
474
501
  }
475
502
  hideInspectUi();
503
+ removePickShield();
476
504
  return;
477
505
  }
478
506
 
507
+ ensurePickShield();
508
+ if(!pickShield) return;
509
+
479
510
  pickMoveHandler=function(ev){
480
511
  if(!pickMode) return;
481
512
  lastMouseX=ev.clientX;
@@ -496,19 +527,13 @@ function buildMinimalTrackingScript() {
496
527
  try{
497
528
  postPickResult(target,ev.clientX,ev.clientY);
498
529
  }catch(e){}
499
- // Keep pick mode active until the subsequent click is swallowed,
500
- // otherwise link/tab navigation can still fire.
501
- pendingPickCommit=true;
530
+ setPickMode(false);
502
531
  };
503
532
  pickClickHandler=function(ev){
504
533
  if(!pickMode) return;
505
534
  ev.preventDefault();
506
535
  ev.stopPropagation();
507
536
  if(typeof ev.stopImmediatePropagation==='function') ev.stopImmediatePropagation();
508
- if(pendingPickCommit){
509
- pendingPickCommit=false;
510
- setPickMode(false);
511
- }
512
537
  };
513
538
  pickEscHandler=function(ev){
514
539
  if(ev.key==='Escape') setPickMode(false);
@@ -529,9 +554,9 @@ function buildMinimalTrackingScript() {
529
554
  if(typeof ev.stopImmediatePropagation==='function') ev.stopImmediatePropagation();
530
555
  };
531
556
 
532
- document.addEventListener('mousemove',pickMoveHandler,true);
533
- window.addEventListener('pointerdown',pickPointerDownHandler,true);
534
- window.addEventListener('click',pickClickHandler,true);
557
+ pickShield.addEventListener('mousemove',pickMoveHandler,true);
558
+ pickShield.addEventListener('pointerdown',pickPointerDownHandler,true);
559
+ pickShield.addEventListener('click',pickClickHandler,true);
535
560
  window.addEventListener('keydown',pickEscHandler,true);
536
561
  window.addEventListener('keydown',pickKeydownHandler,true);
537
562
  window.addEventListener('mousedown',pickBlockHandler,true);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "checkpoint-cli",
3
- "version": "0.3.4",
3
+ "version": "0.3.5",
4
4
  "description": "Share your localhost with reviewers — get visual feedback directly on the page",
5
5
  "keywords": [
6
6
  "checkpoint",