one 1.2.65 → 1.2.67
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/cjs/vite/DevHead.cjs +85 -5
- package/dist/cjs/vite/DevHead.js +85 -5
- package/dist/cjs/vite/DevHead.js.map +1 -1
- package/dist/cjs/vite/DevHead.native.js +85 -5
- package/dist/cjs/vite/DevHead.native.js.map +1 -1
- package/dist/esm/vite/DevHead.js +85 -5
- package/dist/esm/vite/DevHead.js.map +1 -1
- package/dist/esm/vite/DevHead.mjs +85 -5
- package/dist/esm/vite/DevHead.mjs.map +1 -1
- package/dist/esm/vite/DevHead.native.js +85 -5
- package/dist/esm/vite/DevHead.native.js.map +1 -1
- package/package.json +9 -9
- package/src/vite/DevHead.tsx +85 -5
- package/types/vite/DevHead.d.ts.map +1 -1
|
@@ -40,6 +40,7 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
40
40
|
var dragOffset = { x: 0, y: 0 };
|
|
41
41
|
var panelPos = { x: 20, y: 20 };
|
|
42
42
|
var snappedEdge = { h: null, v: null };
|
|
43
|
+
var removalObserver = null;
|
|
43
44
|
|
|
44
45
|
var LOGO_SVG = '<svg width="24" height="24" viewBox="0 0 100 100"><circle cx="50" cy="50" r="48" fill="#FCD34D" stroke="#222" stroke-width="2"/><circle cx="50" cy="35" r="16" fill="white"/><text x="50" y="41" text-anchor="middle" font-family="system-ui" font-size="16" font-weight="bold" fill="#222">1</text></svg>';
|
|
45
46
|
|
|
@@ -258,6 +259,32 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
258
259
|
setupSpotlight();
|
|
259
260
|
setupPanel();
|
|
260
261
|
setupKeyboard();
|
|
262
|
+
setupRemovalObserver();
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
// watch for React hydration removing our element and re-create it
|
|
266
|
+
function setupRemovalObserver() {
|
|
267
|
+
if (removalObserver) return;
|
|
268
|
+
removalObserver = new MutationObserver(function(mutations) {
|
|
269
|
+
for (var i = 0; i < mutations.length; i++) {
|
|
270
|
+
var mutation = mutations[i];
|
|
271
|
+
if (mutation.type === 'childList') {
|
|
272
|
+
for (var j = 0; j < mutation.removedNodes.length; j++) {
|
|
273
|
+
var node = mutation.removedNodes[j];
|
|
274
|
+
if (node === host) {
|
|
275
|
+
// our element was removed (likely by React hydration), re-create it
|
|
276
|
+
host = null;
|
|
277
|
+
shadow = null;
|
|
278
|
+
spotlight = null;
|
|
279
|
+
panel = null;
|
|
280
|
+
setTimeout(createHost, 0);
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
});
|
|
287
|
+
removalObserver.observe(document.body, { childList: true });
|
|
261
288
|
}
|
|
262
289
|
|
|
263
290
|
function setupSpotlight() {
|
|
@@ -377,7 +404,10 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
377
404
|
});
|
|
378
405
|
}
|
|
379
406
|
|
|
407
|
+
var keyboardSetup = false;
|
|
380
408
|
function setupKeyboard() {
|
|
409
|
+
if (keyboardSetup) return;
|
|
410
|
+
keyboardSetup = true;
|
|
381
411
|
document.addEventListener('keydown', function(e) {
|
|
382
412
|
if (e.altKey && e.code === 'Space') {
|
|
383
413
|
e.preventDefault();
|
|
@@ -392,14 +422,14 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
392
422
|
showPanel();
|
|
393
423
|
}
|
|
394
424
|
} else if (e.code === 'Escape') {
|
|
395
|
-
if (spotlight.classList.contains('visible')) hideSpotlight();
|
|
396
|
-
else if (panel.classList.contains('visible')) hidePanel();
|
|
425
|
+
if (spotlight && spotlight.classList.contains('visible')) hideSpotlight();
|
|
426
|
+
else if (panel && panel.classList.contains('visible')) hidePanel();
|
|
397
427
|
}
|
|
398
428
|
});
|
|
399
429
|
}
|
|
400
430
|
|
|
401
431
|
function toggleSpotlight() {
|
|
402
|
-
if (spotlight.classList.contains('visible')) hideSpotlight();
|
|
432
|
+
if (spotlight && spotlight.classList.contains('visible')) hideSpotlight();
|
|
403
433
|
else showSpotlight();
|
|
404
434
|
}
|
|
405
435
|
|
|
@@ -490,6 +520,17 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
490
520
|
html += '<div style="font-size:13px;color:#4d5156;">' + escapeHtml(desc ? desc.slice(0,160) : 'No description') + '</div>';
|
|
491
521
|
html += '</div></div>';
|
|
492
522
|
|
|
523
|
+
if (ogImage) {
|
|
524
|
+
html += '<div class="section"><div class="section-title">Social Preview</div>';
|
|
525
|
+
html += '<div class="preview-card" style="background:#fff;border-radius:12px;overflow:hidden;border:1px solid #e1e8ed;">';
|
|
526
|
+
html += '<img src="' + escapeHtml(ogImage) + '" style="width:100%;height:auto;display:block;border-bottom:1px solid #e1e8ed;" onerror="this.style.display="none"" />';
|
|
527
|
+
html += '<div style="padding:12px;">';
|
|
528
|
+
html += '<div style="font-size:12px;color:#8899a6;text-transform:uppercase;margin-bottom:2px;">' + escapeHtml(location.hostname) + '</div>';
|
|
529
|
+
html += '<div style="font-size:15px;color:#1c2022;font-weight:700;margin-bottom:4px;line-height:1.3;">' + escapeHtml(ogTitle || title || 'No title') + '</div>';
|
|
530
|
+
html += '<div style="font-size:14px;color:#8899a6;line-height:1.3;">' + escapeHtml((ogDesc || desc || '').slice(0,100)) + '</div>';
|
|
531
|
+
html += '</div></div></div>';
|
|
532
|
+
}
|
|
533
|
+
|
|
493
534
|
html += '<div class="section"><div class="section-title">Meta Tags</div>';
|
|
494
535
|
html += '<div class="info-row"><div class="info-label">title</div><div class="info-value">' + escapeHtml(title || '-') + '</div></div>';
|
|
495
536
|
html += '<div class="info-row"><div class="info-label">description</div><div class="info-value">' + escapeHtml(desc || '-') + '</div></div>';
|
|
@@ -588,8 +629,21 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
588
629
|
return html;
|
|
589
630
|
}
|
|
590
631
|
|
|
591
|
-
// Initialize
|
|
592
|
-
|
|
632
|
+
// Initialize after React hydration completes
|
|
633
|
+
// use requestIdleCallback to wait for the browser to be idle (after hydration)
|
|
634
|
+
function initAfterHydration() {
|
|
635
|
+
if (typeof requestIdleCallback !== 'undefined') {
|
|
636
|
+
requestIdleCallback(createHost, { timeout: 3000 });
|
|
637
|
+
} else {
|
|
638
|
+
setTimeout(createHost, 100);
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
if (document.readyState === 'complete') {
|
|
643
|
+
initAfterHydration();
|
|
644
|
+
} else {
|
|
645
|
+
window.addEventListener('load', initAfterHydration);
|
|
646
|
+
}
|
|
593
647
|
|
|
594
648
|
// Listen for events
|
|
595
649
|
window.addEventListener('one-loader-timing', function() {
|
|
@@ -637,6 +691,7 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
637
691
|
var holdTimer = null;
|
|
638
692
|
var holdDelay = 500;
|
|
639
693
|
var mousePos = { x: 0, y: 0 };
|
|
694
|
+
var removalObserver = null;
|
|
640
695
|
|
|
641
696
|
function createHost() {
|
|
642
697
|
if (host) return;
|
|
@@ -677,6 +732,31 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
677
732
|
document.body.appendChild(host);
|
|
678
733
|
overlay = shadow.querySelector('.overlay');
|
|
679
734
|
tag = shadow.querySelector('.tag');
|
|
735
|
+
setupRemovalObserver();
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
// watch for React hydration removing our element and re-create it
|
|
739
|
+
function setupRemovalObserver() {
|
|
740
|
+
if (removalObserver) return;
|
|
741
|
+
removalObserver = new MutationObserver(function(mutations) {
|
|
742
|
+
for (var i = 0; i < mutations.length; i++) {
|
|
743
|
+
var mutation = mutations[i];
|
|
744
|
+
if (mutation.type === 'childList') {
|
|
745
|
+
for (var j = 0; j < mutation.removedNodes.length; j++) {
|
|
746
|
+
var node = mutation.removedNodes[j];
|
|
747
|
+
if (node === host) {
|
|
748
|
+
host = null;
|
|
749
|
+
shadow = null;
|
|
750
|
+
overlay = null;
|
|
751
|
+
tag = null;
|
|
752
|
+
// don't auto-recreate - will be created on next hover
|
|
753
|
+
return;
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
});
|
|
759
|
+
removalObserver.observe(document.body, { childList: true });
|
|
680
760
|
}
|
|
681
761
|
|
|
682
762
|
function hideOverlay() {
|
package/dist/cjs/vite/DevHead.js
CHANGED
|
@@ -30,6 +30,7 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
30
30
|
var dragOffset = { x: 0, y: 0 };
|
|
31
31
|
var panelPos = { x: 20, y: 20 };
|
|
32
32
|
var snappedEdge = { h: null, v: null };
|
|
33
|
+
var removalObserver = null;
|
|
33
34
|
|
|
34
35
|
var LOGO_SVG = '<svg width="24" height="24" viewBox="0 0 100 100"><circle cx="50" cy="50" r="48" fill="#FCD34D" stroke="#222" stroke-width="2"/><circle cx="50" cy="35" r="16" fill="white"/><text x="50" y="41" text-anchor="middle" font-family="system-ui" font-size="16" font-weight="bold" fill="#222">1</text></svg>';
|
|
35
36
|
|
|
@@ -248,6 +249,32 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
248
249
|
setupSpotlight();
|
|
249
250
|
setupPanel();
|
|
250
251
|
setupKeyboard();
|
|
252
|
+
setupRemovalObserver();
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
// watch for React hydration removing our element and re-create it
|
|
256
|
+
function setupRemovalObserver() {
|
|
257
|
+
if (removalObserver) return;
|
|
258
|
+
removalObserver = new MutationObserver(function(mutations) {
|
|
259
|
+
for (var i = 0; i < mutations.length; i++) {
|
|
260
|
+
var mutation = mutations[i];
|
|
261
|
+
if (mutation.type === 'childList') {
|
|
262
|
+
for (var j = 0; j < mutation.removedNodes.length; j++) {
|
|
263
|
+
var node = mutation.removedNodes[j];
|
|
264
|
+
if (node === host) {
|
|
265
|
+
// our element was removed (likely by React hydration), re-create it
|
|
266
|
+
host = null;
|
|
267
|
+
shadow = null;
|
|
268
|
+
spotlight = null;
|
|
269
|
+
panel = null;
|
|
270
|
+
setTimeout(createHost, 0);
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
});
|
|
277
|
+
removalObserver.observe(document.body, { childList: true });
|
|
251
278
|
}
|
|
252
279
|
|
|
253
280
|
function setupSpotlight() {
|
|
@@ -367,7 +394,10 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
367
394
|
});
|
|
368
395
|
}
|
|
369
396
|
|
|
397
|
+
var keyboardSetup = false;
|
|
370
398
|
function setupKeyboard() {
|
|
399
|
+
if (keyboardSetup) return;
|
|
400
|
+
keyboardSetup = true;
|
|
371
401
|
document.addEventListener('keydown', function(e) {
|
|
372
402
|
if (e.altKey && e.code === 'Space') {
|
|
373
403
|
e.preventDefault();
|
|
@@ -382,14 +412,14 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
382
412
|
showPanel();
|
|
383
413
|
}
|
|
384
414
|
} else if (e.code === 'Escape') {
|
|
385
|
-
if (spotlight.classList.contains('visible')) hideSpotlight();
|
|
386
|
-
else if (panel.classList.contains('visible')) hidePanel();
|
|
415
|
+
if (spotlight && spotlight.classList.contains('visible')) hideSpotlight();
|
|
416
|
+
else if (panel && panel.classList.contains('visible')) hidePanel();
|
|
387
417
|
}
|
|
388
418
|
});
|
|
389
419
|
}
|
|
390
420
|
|
|
391
421
|
function toggleSpotlight() {
|
|
392
|
-
if (spotlight.classList.contains('visible')) hideSpotlight();
|
|
422
|
+
if (spotlight && spotlight.classList.contains('visible')) hideSpotlight();
|
|
393
423
|
else showSpotlight();
|
|
394
424
|
}
|
|
395
425
|
|
|
@@ -480,6 +510,17 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
480
510
|
html += '<div style="font-size:13px;color:#4d5156;">' + escapeHtml(desc ? desc.slice(0,160) : 'No description') + '</div>';
|
|
481
511
|
html += '</div></div>';
|
|
482
512
|
|
|
513
|
+
if (ogImage) {
|
|
514
|
+
html += '<div class="section"><div class="section-title">Social Preview</div>';
|
|
515
|
+
html += '<div class="preview-card" style="background:#fff;border-radius:12px;overflow:hidden;border:1px solid #e1e8ed;">';
|
|
516
|
+
html += '<img src="' + escapeHtml(ogImage) + '" style="width:100%;height:auto;display:block;border-bottom:1px solid #e1e8ed;" onerror="this.style.display="none"" />';
|
|
517
|
+
html += '<div style="padding:12px;">';
|
|
518
|
+
html += '<div style="font-size:12px;color:#8899a6;text-transform:uppercase;margin-bottom:2px;">' + escapeHtml(location.hostname) + '</div>';
|
|
519
|
+
html += '<div style="font-size:15px;color:#1c2022;font-weight:700;margin-bottom:4px;line-height:1.3;">' + escapeHtml(ogTitle || title || 'No title') + '</div>';
|
|
520
|
+
html += '<div style="font-size:14px;color:#8899a6;line-height:1.3;">' + escapeHtml((ogDesc || desc || '').slice(0,100)) + '</div>';
|
|
521
|
+
html += '</div></div></div>';
|
|
522
|
+
}
|
|
523
|
+
|
|
483
524
|
html += '<div class="section"><div class="section-title">Meta Tags</div>';
|
|
484
525
|
html += '<div class="info-row"><div class="info-label">title</div><div class="info-value">' + escapeHtml(title || '-') + '</div></div>';
|
|
485
526
|
html += '<div class="info-row"><div class="info-label">description</div><div class="info-value">' + escapeHtml(desc || '-') + '</div></div>';
|
|
@@ -578,8 +619,21 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
578
619
|
return html;
|
|
579
620
|
}
|
|
580
621
|
|
|
581
|
-
// Initialize
|
|
582
|
-
|
|
622
|
+
// Initialize after React hydration completes
|
|
623
|
+
// use requestIdleCallback to wait for the browser to be idle (after hydration)
|
|
624
|
+
function initAfterHydration() {
|
|
625
|
+
if (typeof requestIdleCallback !== 'undefined') {
|
|
626
|
+
requestIdleCallback(createHost, { timeout: 3000 });
|
|
627
|
+
} else {
|
|
628
|
+
setTimeout(createHost, 100);
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
if (document.readyState === 'complete') {
|
|
633
|
+
initAfterHydration();
|
|
634
|
+
} else {
|
|
635
|
+
window.addEventListener('load', initAfterHydration);
|
|
636
|
+
}
|
|
583
637
|
|
|
584
638
|
// Listen for events
|
|
585
639
|
window.addEventListener('one-loader-timing', function() {
|
|
@@ -626,6 +680,7 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
626
680
|
var holdTimer = null;
|
|
627
681
|
var holdDelay = 500;
|
|
628
682
|
var mousePos = { x: 0, y: 0 };
|
|
683
|
+
var removalObserver = null;
|
|
629
684
|
|
|
630
685
|
function createHost() {
|
|
631
686
|
if (host) return;
|
|
@@ -666,6 +721,31 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
666
721
|
document.body.appendChild(host);
|
|
667
722
|
overlay = shadow.querySelector('.overlay');
|
|
668
723
|
tag = shadow.querySelector('.tag');
|
|
724
|
+
setupRemovalObserver();
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
// watch for React hydration removing our element and re-create it
|
|
728
|
+
function setupRemovalObserver() {
|
|
729
|
+
if (removalObserver) return;
|
|
730
|
+
removalObserver = new MutationObserver(function(mutations) {
|
|
731
|
+
for (var i = 0; i < mutations.length; i++) {
|
|
732
|
+
var mutation = mutations[i];
|
|
733
|
+
if (mutation.type === 'childList') {
|
|
734
|
+
for (var j = 0; j < mutation.removedNodes.length; j++) {
|
|
735
|
+
var node = mutation.removedNodes[j];
|
|
736
|
+
if (node === host) {
|
|
737
|
+
host = null;
|
|
738
|
+
shadow = null;
|
|
739
|
+
overlay = null;
|
|
740
|
+
tag = null;
|
|
741
|
+
// don't auto-recreate - will be created on next hover
|
|
742
|
+
return;
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
});
|
|
748
|
+
removalObserver.observe(document.body, { childList: true });
|
|
669
749
|
}
|
|
670
750
|
|
|
671
751
|
function hideOverlay() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/vite/DevHead.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,uBAAqC,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,uBAAqC,yBAq3B/B;AAl3BN,MAAM,mBACJ,qVAGI,oBACJ,yeAGI,uBACJ,qKAII,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GA+oBtB,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgNzB,SAAS,UAAU;AAIxB,SAAI,QAAQ,IAAI,aAAa,gBAEzB,4EACE;AAAA,gDAAC,UAAK,KAAI,WAAU,MAAM,uCAAsB,IAAG,SAAQ;AAAA,IAC3D;AAAA,MAAC;AAAA;AAAA,QACC,KAAI;AAAA,QACJ,MAAM;AAAA,QACN,gBAAY;AAAA,QACZ,0BAAwB;AAAA;AAAA,IAC1B;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,0BAAwB;AAAA,QACxB,yBAAyB,EAAE,QAAQ,iBAAiB;AAAA;AAAA,IACtD;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,0BAAwB;AAAA,QACxB,yBAAyB,EAAE,QAAQ,kBAAkB;AAAA;AAAA,IACvD;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,0BAAwB;AAAA,QACxB,yBAAyB,EAAE,QAAQ,qBAAqB;AAAA;AAAA,IAC1D;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,0BAAwB;AAAA,QACxB,yBAAyB,EAAE,QAAQ,oBAAoB;AAAA;AAAA,IACzD;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,0BAAwB;AAAA,QACxB,yBAAyB,EAAE,QAAQ,wBAAwB;AAAA;AAAA,IAC7D;AAAA,KACF,IAGG;AACT;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -42,6 +42,7 @@ var import_jsx_runtime = require("react/jsx-runtime"),
|
|
|
42
42
|
var dragOffset = { x: 0, y: 0 };
|
|
43
43
|
var panelPos = { x: 20, y: 20 };
|
|
44
44
|
var snappedEdge = { h: null, v: null };
|
|
45
|
+
var removalObserver = null;
|
|
45
46
|
|
|
46
47
|
var LOGO_SVG = '<svg width="24" height="24" viewBox="0 0 100 100"><circle cx="50" cy="50" r="48" fill="#FCD34D" stroke="#222" stroke-width="2"/><circle cx="50" cy="35" r="16" fill="white"/><text x="50" y="41" text-anchor="middle" font-family="system-ui" font-size="16" font-weight="bold" fill="#222">1</text></svg>';
|
|
47
48
|
|
|
@@ -260,6 +261,32 @@ var import_jsx_runtime = require("react/jsx-runtime"),
|
|
|
260
261
|
setupSpotlight();
|
|
261
262
|
setupPanel();
|
|
262
263
|
setupKeyboard();
|
|
264
|
+
setupRemovalObserver();
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
// watch for React hydration removing our element and re-create it
|
|
268
|
+
function setupRemovalObserver() {
|
|
269
|
+
if (removalObserver) return;
|
|
270
|
+
removalObserver = new MutationObserver(function(mutations) {
|
|
271
|
+
for (var i = 0; i < mutations.length; i++) {
|
|
272
|
+
var mutation = mutations[i];
|
|
273
|
+
if (mutation.type === 'childList') {
|
|
274
|
+
for (var j = 0; j < mutation.removedNodes.length; j++) {
|
|
275
|
+
var node = mutation.removedNodes[j];
|
|
276
|
+
if (node === host) {
|
|
277
|
+
// our element was removed (likely by React hydration), re-create it
|
|
278
|
+
host = null;
|
|
279
|
+
shadow = null;
|
|
280
|
+
spotlight = null;
|
|
281
|
+
panel = null;
|
|
282
|
+
setTimeout(createHost, 0);
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
removalObserver.observe(document.body, { childList: true });
|
|
263
290
|
}
|
|
264
291
|
|
|
265
292
|
function setupSpotlight() {
|
|
@@ -379,7 +406,10 @@ var import_jsx_runtime = require("react/jsx-runtime"),
|
|
|
379
406
|
});
|
|
380
407
|
}
|
|
381
408
|
|
|
409
|
+
var keyboardSetup = false;
|
|
382
410
|
function setupKeyboard() {
|
|
411
|
+
if (keyboardSetup) return;
|
|
412
|
+
keyboardSetup = true;
|
|
383
413
|
document.addEventListener('keydown', function(e) {
|
|
384
414
|
if (e.altKey && e.code === 'Space') {
|
|
385
415
|
e.preventDefault();
|
|
@@ -394,14 +424,14 @@ var import_jsx_runtime = require("react/jsx-runtime"),
|
|
|
394
424
|
showPanel();
|
|
395
425
|
}
|
|
396
426
|
} else if (e.code === 'Escape') {
|
|
397
|
-
if (spotlight.classList.contains('visible')) hideSpotlight();
|
|
398
|
-
else if (panel.classList.contains('visible')) hidePanel();
|
|
427
|
+
if (spotlight && spotlight.classList.contains('visible')) hideSpotlight();
|
|
428
|
+
else if (panel && panel.classList.contains('visible')) hidePanel();
|
|
399
429
|
}
|
|
400
430
|
});
|
|
401
431
|
}
|
|
402
432
|
|
|
403
433
|
function toggleSpotlight() {
|
|
404
|
-
if (spotlight.classList.contains('visible')) hideSpotlight();
|
|
434
|
+
if (spotlight && spotlight.classList.contains('visible')) hideSpotlight();
|
|
405
435
|
else showSpotlight();
|
|
406
436
|
}
|
|
407
437
|
|
|
@@ -492,6 +522,17 @@ var import_jsx_runtime = require("react/jsx-runtime"),
|
|
|
492
522
|
html += '<div style="font-size:13px;color:#4d5156;">' + escapeHtml(desc ? desc.slice(0,160) : 'No description') + '</div>';
|
|
493
523
|
html += '</div></div>';
|
|
494
524
|
|
|
525
|
+
if (ogImage) {
|
|
526
|
+
html += '<div class="section"><div class="section-title">Social Preview</div>';
|
|
527
|
+
html += '<div class="preview-card" style="background:#fff;border-radius:12px;overflow:hidden;border:1px solid #e1e8ed;">';
|
|
528
|
+
html += '<img src="' + escapeHtml(ogImage) + '" style="width:100%;height:auto;display:block;border-bottom:1px solid #e1e8ed;" onerror="this.style.display="none"" />';
|
|
529
|
+
html += '<div style="padding:12px;">';
|
|
530
|
+
html += '<div style="font-size:12px;color:#8899a6;text-transform:uppercase;margin-bottom:2px;">' + escapeHtml(location.hostname) + '</div>';
|
|
531
|
+
html += '<div style="font-size:15px;color:#1c2022;font-weight:700;margin-bottom:4px;line-height:1.3;">' + escapeHtml(ogTitle || title || 'No title') + '</div>';
|
|
532
|
+
html += '<div style="font-size:14px;color:#8899a6;line-height:1.3;">' + escapeHtml((ogDesc || desc || '').slice(0,100)) + '</div>';
|
|
533
|
+
html += '</div></div></div>';
|
|
534
|
+
}
|
|
535
|
+
|
|
495
536
|
html += '<div class="section"><div class="section-title">Meta Tags</div>';
|
|
496
537
|
html += '<div class="info-row"><div class="info-label">title</div><div class="info-value">' + escapeHtml(title || '-') + '</div></div>';
|
|
497
538
|
html += '<div class="info-row"><div class="info-label">description</div><div class="info-value">' + escapeHtml(desc || '-') + '</div></div>';
|
|
@@ -590,8 +631,21 @@ var import_jsx_runtime = require("react/jsx-runtime"),
|
|
|
590
631
|
return html;
|
|
591
632
|
}
|
|
592
633
|
|
|
593
|
-
// Initialize
|
|
594
|
-
|
|
634
|
+
// Initialize after React hydration completes
|
|
635
|
+
// use requestIdleCallback to wait for the browser to be idle (after hydration)
|
|
636
|
+
function initAfterHydration() {
|
|
637
|
+
if (typeof requestIdleCallback !== 'undefined') {
|
|
638
|
+
requestIdleCallback(createHost, { timeout: 3000 });
|
|
639
|
+
} else {
|
|
640
|
+
setTimeout(createHost, 100);
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
if (document.readyState === 'complete') {
|
|
645
|
+
initAfterHydration();
|
|
646
|
+
} else {
|
|
647
|
+
window.addEventListener('load', initAfterHydration);
|
|
648
|
+
}
|
|
595
649
|
|
|
596
650
|
// Listen for events
|
|
597
651
|
window.addEventListener('one-loader-timing', function() {
|
|
@@ -639,6 +693,7 @@ var import_jsx_runtime = require("react/jsx-runtime"),
|
|
|
639
693
|
var holdTimer = null;
|
|
640
694
|
var holdDelay = 500;
|
|
641
695
|
var mousePos = { x: 0, y: 0 };
|
|
696
|
+
var removalObserver = null;
|
|
642
697
|
|
|
643
698
|
function createHost() {
|
|
644
699
|
if (host) return;
|
|
@@ -679,6 +734,31 @@ var import_jsx_runtime = require("react/jsx-runtime"),
|
|
|
679
734
|
document.body.appendChild(host);
|
|
680
735
|
overlay = shadow.querySelector('.overlay');
|
|
681
736
|
tag = shadow.querySelector('.tag');
|
|
737
|
+
setupRemovalObserver();
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
// watch for React hydration removing our element and re-create it
|
|
741
|
+
function setupRemovalObserver() {
|
|
742
|
+
if (removalObserver) return;
|
|
743
|
+
removalObserver = new MutationObserver(function(mutations) {
|
|
744
|
+
for (var i = 0; i < mutations.length; i++) {
|
|
745
|
+
var mutation = mutations[i];
|
|
746
|
+
if (mutation.type === 'childList') {
|
|
747
|
+
for (var j = 0; j < mutation.removedNodes.length; j++) {
|
|
748
|
+
var node = mutation.removedNodes[j];
|
|
749
|
+
if (node === host) {
|
|
750
|
+
host = null;
|
|
751
|
+
shadow = null;
|
|
752
|
+
overlay = null;
|
|
753
|
+
tag = null;
|
|
754
|
+
// don't auto-recreate - will be created on next hover
|
|
755
|
+
return;
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
});
|
|
761
|
+
removalObserver.observe(document.body, { childList: true });
|
|
682
762
|
}
|
|
683
763
|
|
|
684
764
|
function hideOverlay() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","DevHead_exports","__export","DevHead","module","exports","import_jsx_runtime","require","import_constants","ROUTE_HMR_SCRIPT","LOADER_HMR_SCRIPT","REACT_REFRESH_SCRIPT","ONE_DEVTOOLS_SCRIPT","SOURCE_INSPECTOR_SCRIPT"],"sources":["../../../src/vite/DevHead.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,eAAA;AAAAC,QAAA,CAAAD,eAAA;EAAAE,OAAA,EAAAA,CAAA,KAAAA;AAAA;AACAC,MAAA,CAAAC,OAAA,GAAAT,YAAqC,CAAAK,eAAA;AAGrC,IAAAK,kBAAM,GACJC,OAAA;EAAAC,gBAAA,GAAAD,OAAA;EAAAE,gBAAA,sVAIA;EAAAC,iBAAA,0eAIA;EAAAC,oBAAA,sKAI0B;EAAAC,mBAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","DevHead_exports","__export","DevHead","module","exports","import_jsx_runtime","require","import_constants","ROUTE_HMR_SCRIPT","LOADER_HMR_SCRIPT","REACT_REFRESH_SCRIPT","ONE_DEVTOOLS_SCRIPT","SOURCE_INSPECTOR_SCRIPT"],"sources":["../../../src/vite/DevHead.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,eAAA;AAAAC,QAAA,CAAAD,eAAA;EAAAE,OAAA,EAAAA,CAAA,KAAAA;AAAA;AACAC,MAAA,CAAAC,OAAA,GAAAT,YAAqC,CAAAK,eAAA;AAGrC,IAAAK,kBAAM,GACJC,OAAA;EAAAC,gBAAA,GAAAD,OAAA;EAAAE,gBAAA,sVAIA;EAAAC,iBAAA,0eAIA;EAAAC,oBAAA,sKAI0B;EAAAC,mBAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EA+oBtBC,uBAAA,GAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgNzB,SAASV,QAAA,EAAU;EAIxB,OAAI;AAGE","ignoreList":[]}
|
package/dist/esm/vite/DevHead.js
CHANGED
|
@@ -12,6 +12,7 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
12
12
|
var dragOffset = { x: 0, y: 0 };
|
|
13
13
|
var panelPos = { x: 20, y: 20 };
|
|
14
14
|
var snappedEdge = { h: null, v: null };
|
|
15
|
+
var removalObserver = null;
|
|
15
16
|
|
|
16
17
|
var LOGO_SVG = '<svg width="24" height="24" viewBox="0 0 100 100"><circle cx="50" cy="50" r="48" fill="#FCD34D" stroke="#222" stroke-width="2"/><circle cx="50" cy="35" r="16" fill="white"/><text x="50" y="41" text-anchor="middle" font-family="system-ui" font-size="16" font-weight="bold" fill="#222">1</text></svg>';
|
|
17
18
|
|
|
@@ -230,6 +231,32 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
230
231
|
setupSpotlight();
|
|
231
232
|
setupPanel();
|
|
232
233
|
setupKeyboard();
|
|
234
|
+
setupRemovalObserver();
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
// watch for React hydration removing our element and re-create it
|
|
238
|
+
function setupRemovalObserver() {
|
|
239
|
+
if (removalObserver) return;
|
|
240
|
+
removalObserver = new MutationObserver(function(mutations) {
|
|
241
|
+
for (var i = 0; i < mutations.length; i++) {
|
|
242
|
+
var mutation = mutations[i];
|
|
243
|
+
if (mutation.type === 'childList') {
|
|
244
|
+
for (var j = 0; j < mutation.removedNodes.length; j++) {
|
|
245
|
+
var node = mutation.removedNodes[j];
|
|
246
|
+
if (node === host) {
|
|
247
|
+
// our element was removed (likely by React hydration), re-create it
|
|
248
|
+
host = null;
|
|
249
|
+
shadow = null;
|
|
250
|
+
spotlight = null;
|
|
251
|
+
panel = null;
|
|
252
|
+
setTimeout(createHost, 0);
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
removalObserver.observe(document.body, { childList: true });
|
|
233
260
|
}
|
|
234
261
|
|
|
235
262
|
function setupSpotlight() {
|
|
@@ -349,7 +376,10 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
349
376
|
});
|
|
350
377
|
}
|
|
351
378
|
|
|
379
|
+
var keyboardSetup = false;
|
|
352
380
|
function setupKeyboard() {
|
|
381
|
+
if (keyboardSetup) return;
|
|
382
|
+
keyboardSetup = true;
|
|
353
383
|
document.addEventListener('keydown', function(e) {
|
|
354
384
|
if (e.altKey && e.code === 'Space') {
|
|
355
385
|
e.preventDefault();
|
|
@@ -364,14 +394,14 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
364
394
|
showPanel();
|
|
365
395
|
}
|
|
366
396
|
} else if (e.code === 'Escape') {
|
|
367
|
-
if (spotlight.classList.contains('visible')) hideSpotlight();
|
|
368
|
-
else if (panel.classList.contains('visible')) hidePanel();
|
|
397
|
+
if (spotlight && spotlight.classList.contains('visible')) hideSpotlight();
|
|
398
|
+
else if (panel && panel.classList.contains('visible')) hidePanel();
|
|
369
399
|
}
|
|
370
400
|
});
|
|
371
401
|
}
|
|
372
402
|
|
|
373
403
|
function toggleSpotlight() {
|
|
374
|
-
if (spotlight.classList.contains('visible')) hideSpotlight();
|
|
404
|
+
if (spotlight && spotlight.classList.contains('visible')) hideSpotlight();
|
|
375
405
|
else showSpotlight();
|
|
376
406
|
}
|
|
377
407
|
|
|
@@ -462,6 +492,17 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
462
492
|
html += '<div style="font-size:13px;color:#4d5156;">' + escapeHtml(desc ? desc.slice(0,160) : 'No description') + '</div>';
|
|
463
493
|
html += '</div></div>';
|
|
464
494
|
|
|
495
|
+
if (ogImage) {
|
|
496
|
+
html += '<div class="section"><div class="section-title">Social Preview</div>';
|
|
497
|
+
html += '<div class="preview-card" style="background:#fff;border-radius:12px;overflow:hidden;border:1px solid #e1e8ed;">';
|
|
498
|
+
html += '<img src="' + escapeHtml(ogImage) + '" style="width:100%;height:auto;display:block;border-bottom:1px solid #e1e8ed;" onerror="this.style.display="none"" />';
|
|
499
|
+
html += '<div style="padding:12px;">';
|
|
500
|
+
html += '<div style="font-size:12px;color:#8899a6;text-transform:uppercase;margin-bottom:2px;">' + escapeHtml(location.hostname) + '</div>';
|
|
501
|
+
html += '<div style="font-size:15px;color:#1c2022;font-weight:700;margin-bottom:4px;line-height:1.3;">' + escapeHtml(ogTitle || title || 'No title') + '</div>';
|
|
502
|
+
html += '<div style="font-size:14px;color:#8899a6;line-height:1.3;">' + escapeHtml((ogDesc || desc || '').slice(0,100)) + '</div>';
|
|
503
|
+
html += '</div></div></div>';
|
|
504
|
+
}
|
|
505
|
+
|
|
465
506
|
html += '<div class="section"><div class="section-title">Meta Tags</div>';
|
|
466
507
|
html += '<div class="info-row"><div class="info-label">title</div><div class="info-value">' + escapeHtml(title || '-') + '</div></div>';
|
|
467
508
|
html += '<div class="info-row"><div class="info-label">description</div><div class="info-value">' + escapeHtml(desc || '-') + '</div></div>';
|
|
@@ -560,8 +601,21 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
560
601
|
return html;
|
|
561
602
|
}
|
|
562
603
|
|
|
563
|
-
// Initialize
|
|
564
|
-
|
|
604
|
+
// Initialize after React hydration completes
|
|
605
|
+
// use requestIdleCallback to wait for the browser to be idle (after hydration)
|
|
606
|
+
function initAfterHydration() {
|
|
607
|
+
if (typeof requestIdleCallback !== 'undefined') {
|
|
608
|
+
requestIdleCallback(createHost, { timeout: 3000 });
|
|
609
|
+
} else {
|
|
610
|
+
setTimeout(createHost, 100);
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
if (document.readyState === 'complete') {
|
|
615
|
+
initAfterHydration();
|
|
616
|
+
} else {
|
|
617
|
+
window.addEventListener('load', initAfterHydration);
|
|
618
|
+
}
|
|
565
619
|
|
|
566
620
|
// Listen for events
|
|
567
621
|
window.addEventListener('one-loader-timing', function() {
|
|
@@ -608,6 +662,7 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
608
662
|
var holdTimer = null;
|
|
609
663
|
var holdDelay = 500;
|
|
610
664
|
var mousePos = { x: 0, y: 0 };
|
|
665
|
+
var removalObserver = null;
|
|
611
666
|
|
|
612
667
|
function createHost() {
|
|
613
668
|
if (host) return;
|
|
@@ -648,6 +703,31 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
648
703
|
document.body.appendChild(host);
|
|
649
704
|
overlay = shadow.querySelector('.overlay');
|
|
650
705
|
tag = shadow.querySelector('.tag');
|
|
706
|
+
setupRemovalObserver();
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
// watch for React hydration removing our element and re-create it
|
|
710
|
+
function setupRemovalObserver() {
|
|
711
|
+
if (removalObserver) return;
|
|
712
|
+
removalObserver = new MutationObserver(function(mutations) {
|
|
713
|
+
for (var i = 0; i < mutations.length; i++) {
|
|
714
|
+
var mutation = mutations[i];
|
|
715
|
+
if (mutation.type === 'childList') {
|
|
716
|
+
for (var j = 0; j < mutation.removedNodes.length; j++) {
|
|
717
|
+
var node = mutation.removedNodes[j];
|
|
718
|
+
if (node === host) {
|
|
719
|
+
host = null;
|
|
720
|
+
shadow = null;
|
|
721
|
+
overlay = null;
|
|
722
|
+
tag = null;
|
|
723
|
+
// don't auto-recreate - will be created on next hover
|
|
724
|
+
return;
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
});
|
|
730
|
+
removalObserver.observe(document.body, { childList: true });
|
|
651
731
|
}
|
|
652
732
|
|
|
653
733
|
function hideOverlay() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/vite/DevHead.tsx"],
|
|
4
|
-
"mappings": "AACA,SAAS,4BAA4B;
|
|
4
|
+
"mappings": "AACA,SAAS,4BAA4B;AAq3B/B,mBACE,KADF;AAl3BN,MAAM,mBACJ,qVAGI,oBACJ,yeAGI,uBACJ,qKAII,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GA+oBtB,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgNzB,SAAS,UAAU;AAIxB,SAAI,QAAQ,IAAI,aAAa,gBAEzB,iCACE;AAAA,wBAAC,UAAK,KAAI,WAAU,MAAM,sBAAsB,IAAG,SAAQ;AAAA,IAC3D;AAAA,MAAC;AAAA;AAAA,QACC,KAAI;AAAA,QACJ,MAAM;AAAA,QACN,gBAAY;AAAA,QACZ,0BAAwB;AAAA;AAAA,IAC1B;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,0BAAwB;AAAA,QACxB,yBAAyB,EAAE,QAAQ,iBAAiB;AAAA;AAAA,IACtD;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,0BAAwB;AAAA,QACxB,yBAAyB,EAAE,QAAQ,kBAAkB;AAAA;AAAA,IACvD;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,0BAAwB;AAAA,QACxB,yBAAyB,EAAE,QAAQ,qBAAqB;AAAA;AAAA,IAC1D;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,0BAAwB;AAAA,QACxB,yBAAyB,EAAE,QAAQ,oBAAoB;AAAA;AAAA,IACzD;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,0BAAwB;AAAA,QACxB,yBAAyB,EAAE,QAAQ,wBAAwB;AAAA;AAAA,IAC7D;AAAA,KACF,IAGG;AACT;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -15,6 +15,7 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
15
15
|
var dragOffset = { x: 0, y: 0 };
|
|
16
16
|
var panelPos = { x: 20, y: 20 };
|
|
17
17
|
var snappedEdge = { h: null, v: null };
|
|
18
|
+
var removalObserver = null;
|
|
18
19
|
|
|
19
20
|
var LOGO_SVG = '<svg width="24" height="24" viewBox="0 0 100 100"><circle cx="50" cy="50" r="48" fill="#FCD34D" stroke="#222" stroke-width="2"/><circle cx="50" cy="35" r="16" fill="white"/><text x="50" y="41" text-anchor="middle" font-family="system-ui" font-size="16" font-weight="bold" fill="#222">1</text></svg>';
|
|
20
21
|
|
|
@@ -233,6 +234,32 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
233
234
|
setupSpotlight();
|
|
234
235
|
setupPanel();
|
|
235
236
|
setupKeyboard();
|
|
237
|
+
setupRemovalObserver();
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
// watch for React hydration removing our element and re-create it
|
|
241
|
+
function setupRemovalObserver() {
|
|
242
|
+
if (removalObserver) return;
|
|
243
|
+
removalObserver = new MutationObserver(function(mutations) {
|
|
244
|
+
for (var i = 0; i < mutations.length; i++) {
|
|
245
|
+
var mutation = mutations[i];
|
|
246
|
+
if (mutation.type === 'childList') {
|
|
247
|
+
for (var j = 0; j < mutation.removedNodes.length; j++) {
|
|
248
|
+
var node = mutation.removedNodes[j];
|
|
249
|
+
if (node === host) {
|
|
250
|
+
// our element was removed (likely by React hydration), re-create it
|
|
251
|
+
host = null;
|
|
252
|
+
shadow = null;
|
|
253
|
+
spotlight = null;
|
|
254
|
+
panel = null;
|
|
255
|
+
setTimeout(createHost, 0);
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
removalObserver.observe(document.body, { childList: true });
|
|
236
263
|
}
|
|
237
264
|
|
|
238
265
|
function setupSpotlight() {
|
|
@@ -352,7 +379,10 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
352
379
|
});
|
|
353
380
|
}
|
|
354
381
|
|
|
382
|
+
var keyboardSetup = false;
|
|
355
383
|
function setupKeyboard() {
|
|
384
|
+
if (keyboardSetup) return;
|
|
385
|
+
keyboardSetup = true;
|
|
356
386
|
document.addEventListener('keydown', function(e) {
|
|
357
387
|
if (e.altKey && e.code === 'Space') {
|
|
358
388
|
e.preventDefault();
|
|
@@ -367,14 +397,14 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
367
397
|
showPanel();
|
|
368
398
|
}
|
|
369
399
|
} else if (e.code === 'Escape') {
|
|
370
|
-
if (spotlight.classList.contains('visible')) hideSpotlight();
|
|
371
|
-
else if (panel.classList.contains('visible')) hidePanel();
|
|
400
|
+
if (spotlight && spotlight.classList.contains('visible')) hideSpotlight();
|
|
401
|
+
else if (panel && panel.classList.contains('visible')) hidePanel();
|
|
372
402
|
}
|
|
373
403
|
});
|
|
374
404
|
}
|
|
375
405
|
|
|
376
406
|
function toggleSpotlight() {
|
|
377
|
-
if (spotlight.classList.contains('visible')) hideSpotlight();
|
|
407
|
+
if (spotlight && spotlight.classList.contains('visible')) hideSpotlight();
|
|
378
408
|
else showSpotlight();
|
|
379
409
|
}
|
|
380
410
|
|
|
@@ -465,6 +495,17 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
465
495
|
html += '<div style="font-size:13px;color:#4d5156;">' + escapeHtml(desc ? desc.slice(0,160) : 'No description') + '</div>';
|
|
466
496
|
html += '</div></div>';
|
|
467
497
|
|
|
498
|
+
if (ogImage) {
|
|
499
|
+
html += '<div class="section"><div class="section-title">Social Preview</div>';
|
|
500
|
+
html += '<div class="preview-card" style="background:#fff;border-radius:12px;overflow:hidden;border:1px solid #e1e8ed;">';
|
|
501
|
+
html += '<img src="' + escapeHtml(ogImage) + '" style="width:100%;height:auto;display:block;border-bottom:1px solid #e1e8ed;" onerror="this.style.display="none"" />';
|
|
502
|
+
html += '<div style="padding:12px;">';
|
|
503
|
+
html += '<div style="font-size:12px;color:#8899a6;text-transform:uppercase;margin-bottom:2px;">' + escapeHtml(location.hostname) + '</div>';
|
|
504
|
+
html += '<div style="font-size:15px;color:#1c2022;font-weight:700;margin-bottom:4px;line-height:1.3;">' + escapeHtml(ogTitle || title || 'No title') + '</div>';
|
|
505
|
+
html += '<div style="font-size:14px;color:#8899a6;line-height:1.3;">' + escapeHtml((ogDesc || desc || '').slice(0,100)) + '</div>';
|
|
506
|
+
html += '</div></div></div>';
|
|
507
|
+
}
|
|
508
|
+
|
|
468
509
|
html += '<div class="section"><div class="section-title">Meta Tags</div>';
|
|
469
510
|
html += '<div class="info-row"><div class="info-label">title</div><div class="info-value">' + escapeHtml(title || '-') + '</div></div>';
|
|
470
511
|
html += '<div class="info-row"><div class="info-label">description</div><div class="info-value">' + escapeHtml(desc || '-') + '</div></div>';
|
|
@@ -563,8 +604,21 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
563
604
|
return html;
|
|
564
605
|
}
|
|
565
606
|
|
|
566
|
-
// Initialize
|
|
567
|
-
|
|
607
|
+
// Initialize after React hydration completes
|
|
608
|
+
// use requestIdleCallback to wait for the browser to be idle (after hydration)
|
|
609
|
+
function initAfterHydration() {
|
|
610
|
+
if (typeof requestIdleCallback !== 'undefined') {
|
|
611
|
+
requestIdleCallback(createHost, { timeout: 3000 });
|
|
612
|
+
} else {
|
|
613
|
+
setTimeout(createHost, 100);
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
if (document.readyState === 'complete') {
|
|
618
|
+
initAfterHydration();
|
|
619
|
+
} else {
|
|
620
|
+
window.addEventListener('load', initAfterHydration);
|
|
621
|
+
}
|
|
568
622
|
|
|
569
623
|
// Listen for events
|
|
570
624
|
window.addEventListener('one-loader-timing', function() {
|
|
@@ -612,6 +666,7 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
612
666
|
var holdTimer = null;
|
|
613
667
|
var holdDelay = 500;
|
|
614
668
|
var mousePos = { x: 0, y: 0 };
|
|
669
|
+
var removalObserver = null;
|
|
615
670
|
|
|
616
671
|
function createHost() {
|
|
617
672
|
if (host) return;
|
|
@@ -652,6 +707,31 @@ const ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; cons
|
|
|
652
707
|
document.body.appendChild(host);
|
|
653
708
|
overlay = shadow.querySelector('.overlay');
|
|
654
709
|
tag = shadow.querySelector('.tag');
|
|
710
|
+
setupRemovalObserver();
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
// watch for React hydration removing our element and re-create it
|
|
714
|
+
function setupRemovalObserver() {
|
|
715
|
+
if (removalObserver) return;
|
|
716
|
+
removalObserver = new MutationObserver(function(mutations) {
|
|
717
|
+
for (var i = 0; i < mutations.length; i++) {
|
|
718
|
+
var mutation = mutations[i];
|
|
719
|
+
if (mutation.type === 'childList') {
|
|
720
|
+
for (var j = 0; j < mutation.removedNodes.length; j++) {
|
|
721
|
+
var node = mutation.removedNodes[j];
|
|
722
|
+
if (node === host) {
|
|
723
|
+
host = null;
|
|
724
|
+
shadow = null;
|
|
725
|
+
overlay = null;
|
|
726
|
+
tag = null;
|
|
727
|
+
// don't auto-recreate - will be created on next hover
|
|
728
|
+
return;
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
}
|
|
733
|
+
});
|
|
734
|
+
removalObserver.observe(document.body, { childList: true });
|
|
655
735
|
}
|
|
656
736
|
|
|
657
737
|
function hideOverlay() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VIRTUAL_SSR_CSS_HREF","Fragment","jsx","jsxs","ROUTE_HMR_SCRIPT","LOADER_HMR_SCRIPT","REACT_REFRESH_SCRIPT","ONE_DEVTOOLS_SCRIPT","SOURCE_INSPECTOR_SCRIPT","DevHead","process","env","NODE_ENV","children","rel","href","as","suppressHydrationWarning","type","dangerouslySetInnerHTML","__html"],"sources":["../../../src/vite/DevHead.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,oBAAA,QAA4B;
|
|
1
|
+
{"version":3,"names":["VIRTUAL_SSR_CSS_HREF","Fragment","jsx","jsxs","ROUTE_HMR_SCRIPT","LOADER_HMR_SCRIPT","REACT_REFRESH_SCRIPT","ONE_DEVTOOLS_SCRIPT","SOURCE_INSPECTOR_SCRIPT","DevHead","process","env","NODE_ENV","children","rel","href","as","suppressHydrationWarning","type","dangerouslySetInnerHTML","__html"],"sources":["../../../src/vite/DevHead.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,oBAAA,QAA4B;AAq3B/B,SAAAC,QAAA,EACEC,GAAA,EADFC,IAAA;AAl3BN,MAAMC,gBAAA,GACJ;EAGIC,iBAAA,GACJ;EAGIC,oBAAA,GACJ;EAIIC,mBAAA,GAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EA+oBtBC,uBAAA,GAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgNzB,SAASC,QAAA,EAAU;EAIxB,OAAIC,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,gBAEzB,eAAAT,IAAA,CAAAF,QAAA;IACEY,QAAA,kBAAAX,GAAA,CAAC;MAAKY,GAAA,EAAI;MAAUC,IAAA,EAAMf,oBAAA;MAAsBgB,EAAA,EAAG;IAAA,CAAQ,GAC3D,eAAAd,GAAA,CAAC;MACCY,GAAA,EAAI;MACJC,IAAA,EAAMf,oBAAA;MACN,gBAAY;MACZiB,wBAAA,EAAwB;IAAA,CAC1B,GACA,eAAAf,GAAA,CAAC;MACCgB,IAAA,EAAK;MACLD,wBAAA,EAAwB;MACxBE,uBAAA,EAAyB;QAAEC,MAAA,EAAQhB;MAAiB;IAAA,CACtD,GACA,eAAAF,GAAA,CAAC;MACCgB,IAAA,EAAK;MACLD,wBAAA,EAAwB;MACxBE,uBAAA,EAAyB;QAAEC,MAAA,EAAQf;MAAkB;IAAA,CACvD,GACA,eAAAH,GAAA,CAAC;MACCgB,IAAA,EAAK;MACLD,wBAAA,EAAwB;MACxBE,uBAAA,EAAyB;QAAEC,MAAA,EAAQd;MAAqB;IAAA,CAC1D,GAEA,eAAAJ,GAAA,CAAC;MACCgB,IAAA,EAAK;MACLD,wBAAA,EAAwB;MACxBE,uBAAA,EAAyB;QAAEC,MAAA,EAAQb;MAAoB;IAAA,CACzD,GAEA,eAAAL,GAAA,CAAC;MACCgB,IAAA,EAAK;MACLD,wBAAA,EAAwB;MACxBE,uBAAA,EAAyB;QAAEC,MAAA,EAAQZ;MAAwB;IAAA,CAC7D;EAAA,CACF,IAGG;AACT","ignoreList":[]}
|
|
@@ -15,6 +15,7 @@ var ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; const
|
|
|
15
15
|
var dragOffset = { x: 0, y: 0 };
|
|
16
16
|
var panelPos = { x: 20, y: 20 };
|
|
17
17
|
var snappedEdge = { h: null, v: null };
|
|
18
|
+
var removalObserver = null;
|
|
18
19
|
|
|
19
20
|
var LOGO_SVG = '<svg width="24" height="24" viewBox="0 0 100 100"><circle cx="50" cy="50" r="48" fill="#FCD34D" stroke="#222" stroke-width="2"/><circle cx="50" cy="35" r="16" fill="white"/><text x="50" y="41" text-anchor="middle" font-family="system-ui" font-size="16" font-weight="bold" fill="#222">1</text></svg>';
|
|
20
21
|
|
|
@@ -233,6 +234,32 @@ var ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; const
|
|
|
233
234
|
setupSpotlight();
|
|
234
235
|
setupPanel();
|
|
235
236
|
setupKeyboard();
|
|
237
|
+
setupRemovalObserver();
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
// watch for React hydration removing our element and re-create it
|
|
241
|
+
function setupRemovalObserver() {
|
|
242
|
+
if (removalObserver) return;
|
|
243
|
+
removalObserver = new MutationObserver(function(mutations) {
|
|
244
|
+
for (var i = 0; i < mutations.length; i++) {
|
|
245
|
+
var mutation = mutations[i];
|
|
246
|
+
if (mutation.type === 'childList') {
|
|
247
|
+
for (var j = 0; j < mutation.removedNodes.length; j++) {
|
|
248
|
+
var node = mutation.removedNodes[j];
|
|
249
|
+
if (node === host) {
|
|
250
|
+
// our element was removed (likely by React hydration), re-create it
|
|
251
|
+
host = null;
|
|
252
|
+
shadow = null;
|
|
253
|
+
spotlight = null;
|
|
254
|
+
panel = null;
|
|
255
|
+
setTimeout(createHost, 0);
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
removalObserver.observe(document.body, { childList: true });
|
|
236
263
|
}
|
|
237
264
|
|
|
238
265
|
function setupSpotlight() {
|
|
@@ -352,7 +379,10 @@ var ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; const
|
|
|
352
379
|
});
|
|
353
380
|
}
|
|
354
381
|
|
|
382
|
+
var keyboardSetup = false;
|
|
355
383
|
function setupKeyboard() {
|
|
384
|
+
if (keyboardSetup) return;
|
|
385
|
+
keyboardSetup = true;
|
|
356
386
|
document.addEventListener('keydown', function(e) {
|
|
357
387
|
if (e.altKey && e.code === 'Space') {
|
|
358
388
|
e.preventDefault();
|
|
@@ -367,14 +397,14 @@ var ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; const
|
|
|
367
397
|
showPanel();
|
|
368
398
|
}
|
|
369
399
|
} else if (e.code === 'Escape') {
|
|
370
|
-
if (spotlight.classList.contains('visible')) hideSpotlight();
|
|
371
|
-
else if (panel.classList.contains('visible')) hidePanel();
|
|
400
|
+
if (spotlight && spotlight.classList.contains('visible')) hideSpotlight();
|
|
401
|
+
else if (panel && panel.classList.contains('visible')) hidePanel();
|
|
372
402
|
}
|
|
373
403
|
});
|
|
374
404
|
}
|
|
375
405
|
|
|
376
406
|
function toggleSpotlight() {
|
|
377
|
-
if (spotlight.classList.contains('visible')) hideSpotlight();
|
|
407
|
+
if (spotlight && spotlight.classList.contains('visible')) hideSpotlight();
|
|
378
408
|
else showSpotlight();
|
|
379
409
|
}
|
|
380
410
|
|
|
@@ -465,6 +495,17 @@ var ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; const
|
|
|
465
495
|
html += '<div style="font-size:13px;color:#4d5156;">' + escapeHtml(desc ? desc.slice(0,160) : 'No description') + '</div>';
|
|
466
496
|
html += '</div></div>';
|
|
467
497
|
|
|
498
|
+
if (ogImage) {
|
|
499
|
+
html += '<div class="section"><div class="section-title">Social Preview</div>';
|
|
500
|
+
html += '<div class="preview-card" style="background:#fff;border-radius:12px;overflow:hidden;border:1px solid #e1e8ed;">';
|
|
501
|
+
html += '<img src="' + escapeHtml(ogImage) + '" style="width:100%;height:auto;display:block;border-bottom:1px solid #e1e8ed;" onerror="this.style.display="none"" />';
|
|
502
|
+
html += '<div style="padding:12px;">';
|
|
503
|
+
html += '<div style="font-size:12px;color:#8899a6;text-transform:uppercase;margin-bottom:2px;">' + escapeHtml(location.hostname) + '</div>';
|
|
504
|
+
html += '<div style="font-size:15px;color:#1c2022;font-weight:700;margin-bottom:4px;line-height:1.3;">' + escapeHtml(ogTitle || title || 'No title') + '</div>';
|
|
505
|
+
html += '<div style="font-size:14px;color:#8899a6;line-height:1.3;">' + escapeHtml((ogDesc || desc || '').slice(0,100)) + '</div>';
|
|
506
|
+
html += '</div></div></div>';
|
|
507
|
+
}
|
|
508
|
+
|
|
468
509
|
html += '<div class="section"><div class="section-title">Meta Tags</div>';
|
|
469
510
|
html += '<div class="info-row"><div class="info-label">title</div><div class="info-value">' + escapeHtml(title || '-') + '</div></div>';
|
|
470
511
|
html += '<div class="info-row"><div class="info-label">description</div><div class="info-value">' + escapeHtml(desc || '-') + '</div></div>';
|
|
@@ -563,8 +604,21 @@ var ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; const
|
|
|
563
604
|
return html;
|
|
564
605
|
}
|
|
565
606
|
|
|
566
|
-
// Initialize
|
|
567
|
-
|
|
607
|
+
// Initialize after React hydration completes
|
|
608
|
+
// use requestIdleCallback to wait for the browser to be idle (after hydration)
|
|
609
|
+
function initAfterHydration() {
|
|
610
|
+
if (typeof requestIdleCallback !== 'undefined') {
|
|
611
|
+
requestIdleCallback(createHost, { timeout: 3000 });
|
|
612
|
+
} else {
|
|
613
|
+
setTimeout(createHost, 100);
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
if (document.readyState === 'complete') {
|
|
618
|
+
initAfterHydration();
|
|
619
|
+
} else {
|
|
620
|
+
window.addEventListener('load', initAfterHydration);
|
|
621
|
+
}
|
|
568
622
|
|
|
569
623
|
// Listen for events
|
|
570
624
|
window.addEventListener('one-loader-timing', function() {
|
|
@@ -612,6 +666,7 @@ var ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; const
|
|
|
612
666
|
var holdTimer = null;
|
|
613
667
|
var holdDelay = 500;
|
|
614
668
|
var mousePos = { x: 0, y: 0 };
|
|
669
|
+
var removalObserver = null;
|
|
615
670
|
|
|
616
671
|
function createHost() {
|
|
617
672
|
if (host) return;
|
|
@@ -652,6 +707,31 @@ var ROUTE_HMR_SCRIPT = 'import { createHotContext } from "/@vite/client"; const
|
|
|
652
707
|
document.body.appendChild(host);
|
|
653
708
|
overlay = shadow.querySelector('.overlay');
|
|
654
709
|
tag = shadow.querySelector('.tag');
|
|
710
|
+
setupRemovalObserver();
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
// watch for React hydration removing our element and re-create it
|
|
714
|
+
function setupRemovalObserver() {
|
|
715
|
+
if (removalObserver) return;
|
|
716
|
+
removalObserver = new MutationObserver(function(mutations) {
|
|
717
|
+
for (var i = 0; i < mutations.length; i++) {
|
|
718
|
+
var mutation = mutations[i];
|
|
719
|
+
if (mutation.type === 'childList') {
|
|
720
|
+
for (var j = 0; j < mutation.removedNodes.length; j++) {
|
|
721
|
+
var node = mutation.removedNodes[j];
|
|
722
|
+
if (node === host) {
|
|
723
|
+
host = null;
|
|
724
|
+
shadow = null;
|
|
725
|
+
overlay = null;
|
|
726
|
+
tag = null;
|
|
727
|
+
// don't auto-recreate - will be created on next hover
|
|
728
|
+
return;
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
}
|
|
733
|
+
});
|
|
734
|
+
removalObserver.observe(document.body, { childList: true });
|
|
655
735
|
}
|
|
656
736
|
|
|
657
737
|
function hideOverlay() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","VIRTUAL_SSR_CSS_HREF","ROUTE_HMR_SCRIPT","LOADER_HMR_SCRIPT","REACT_REFRESH_SCRIPT","ONE_DEVTOOLS_SCRIPT","SOURCE_INSPECTOR_SCRIPT","DevHead"],"sources":["../../../src/vite/DevHead.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAA4BC,QAAA,IAAAC,SAAA;
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","VIRTUAL_SSR_CSS_HREF","ROUTE_HMR_SCRIPT","LOADER_HMR_SCRIPT","REACT_REFRESH_SCRIPT","ONE_DEVTOOLS_SCRIPT","SOURCE_INSPECTOR_SCRIPT","DevHead"],"sources":["../../../src/vite/DevHead.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAA4BC,QAAA,IAAAC,SAAA;AAq3B/B,SAAAC,oBAAA;AAl3BN,IAAAC,gBAAM,sVACJ;EAAAC,iBAGI,0eACJ;EAAAC,oBAGI,sKACJ;EAAAC,mBAII;AAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EA+oBtBC,uBAAA,GAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgNzB,SAASC,QAAA,EAAU;EAIxB,OAAI;AAGE;AAA2D,SAC3DA,OAAC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "one",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.67",
|
|
4
4
|
"license": "BSD-3-Clause",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"setup.mjs",
|
|
@@ -139,17 +139,17 @@
|
|
|
139
139
|
"@react-navigation/routers": "~7.5.1",
|
|
140
140
|
"@swc/core": "^1.14.0",
|
|
141
141
|
"@ungap/structured-clone": "^1.2.0",
|
|
142
|
-
"@vxrn/color-scheme": "1.2.
|
|
143
|
-
"@vxrn/compiler": "1.2.
|
|
144
|
-
"@vxrn/resolve": "1.2.
|
|
145
|
-
"@vxrn/tslib-lite": "1.2.
|
|
146
|
-
"@vxrn/use-isomorphic-layout-effect": "1.2.
|
|
147
|
-
"@vxrn/vite-plugin-metro": "1.2.
|
|
142
|
+
"@vxrn/color-scheme": "1.2.67",
|
|
143
|
+
"@vxrn/compiler": "1.2.67",
|
|
144
|
+
"@vxrn/resolve": "1.2.67",
|
|
145
|
+
"@vxrn/tslib-lite": "1.2.67",
|
|
146
|
+
"@vxrn/use-isomorphic-layout-effect": "1.2.67",
|
|
147
|
+
"@vxrn/vite-plugin-metro": "1.2.67",
|
|
148
148
|
"babel-dead-code-elimination": "1.0.10",
|
|
149
149
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
150
150
|
"citty": "^0.1.6",
|
|
151
151
|
"core-js": "^3.38.1",
|
|
152
|
-
"create-vxrn": "1.2.
|
|
152
|
+
"create-vxrn": "1.2.67",
|
|
153
153
|
"escape-string-regexp": "^5.0.0",
|
|
154
154
|
"expo-linking": "~8.0.8",
|
|
155
155
|
"expo-modules-core": "~3.0.24",
|
|
@@ -177,7 +177,7 @@
|
|
|
177
177
|
"vite": "^7.1.12",
|
|
178
178
|
"vite-plugin-barrel": "^0.4.1",
|
|
179
179
|
"vite-tsconfig-paths": "^5.1.4",
|
|
180
|
-
"vxrn": "1.2.
|
|
180
|
+
"vxrn": "1.2.67",
|
|
181
181
|
"ws": "^8.18.0",
|
|
182
182
|
"xxhashjs": "^0.2.2"
|
|
183
183
|
},
|
package/src/vite/DevHead.tsx
CHANGED
|
@@ -27,6 +27,7 @@ const ONE_DEVTOOLS_SCRIPT = `
|
|
|
27
27
|
var dragOffset = { x: 0, y: 0 };
|
|
28
28
|
var panelPos = { x: 20, y: 20 };
|
|
29
29
|
var snappedEdge = { h: null, v: null };
|
|
30
|
+
var removalObserver = null;
|
|
30
31
|
|
|
31
32
|
var LOGO_SVG = '<svg width="24" height="24" viewBox="0 0 100 100"><circle cx="50" cy="50" r="48" fill="#FCD34D" stroke="#222" stroke-width="2"/><circle cx="50" cy="35" r="16" fill="white"/><text x="50" y="41" text-anchor="middle" font-family="system-ui" font-size="16" font-weight="bold" fill="#222">1</text></svg>';
|
|
32
33
|
|
|
@@ -245,6 +246,32 @@ const ONE_DEVTOOLS_SCRIPT = `
|
|
|
245
246
|
setupSpotlight();
|
|
246
247
|
setupPanel();
|
|
247
248
|
setupKeyboard();
|
|
249
|
+
setupRemovalObserver();
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
// watch for React hydration removing our element and re-create it
|
|
253
|
+
function setupRemovalObserver() {
|
|
254
|
+
if (removalObserver) return;
|
|
255
|
+
removalObserver = new MutationObserver(function(mutations) {
|
|
256
|
+
for (var i = 0; i < mutations.length; i++) {
|
|
257
|
+
var mutation = mutations[i];
|
|
258
|
+
if (mutation.type === 'childList') {
|
|
259
|
+
for (var j = 0; j < mutation.removedNodes.length; j++) {
|
|
260
|
+
var node = mutation.removedNodes[j];
|
|
261
|
+
if (node === host) {
|
|
262
|
+
// our element was removed (likely by React hydration), re-create it
|
|
263
|
+
host = null;
|
|
264
|
+
shadow = null;
|
|
265
|
+
spotlight = null;
|
|
266
|
+
panel = null;
|
|
267
|
+
setTimeout(createHost, 0);
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
removalObserver.observe(document.body, { childList: true });
|
|
248
275
|
}
|
|
249
276
|
|
|
250
277
|
function setupSpotlight() {
|
|
@@ -364,7 +391,10 @@ const ONE_DEVTOOLS_SCRIPT = `
|
|
|
364
391
|
});
|
|
365
392
|
}
|
|
366
393
|
|
|
394
|
+
var keyboardSetup = false;
|
|
367
395
|
function setupKeyboard() {
|
|
396
|
+
if (keyboardSetup) return;
|
|
397
|
+
keyboardSetup = true;
|
|
368
398
|
document.addEventListener('keydown', function(e) {
|
|
369
399
|
if (e.altKey && e.code === 'Space') {
|
|
370
400
|
e.preventDefault();
|
|
@@ -379,14 +409,14 @@ const ONE_DEVTOOLS_SCRIPT = `
|
|
|
379
409
|
showPanel();
|
|
380
410
|
}
|
|
381
411
|
} else if (e.code === 'Escape') {
|
|
382
|
-
if (spotlight.classList.contains('visible')) hideSpotlight();
|
|
383
|
-
else if (panel.classList.contains('visible')) hidePanel();
|
|
412
|
+
if (spotlight && spotlight.classList.contains('visible')) hideSpotlight();
|
|
413
|
+
else if (panel && panel.classList.contains('visible')) hidePanel();
|
|
384
414
|
}
|
|
385
415
|
});
|
|
386
416
|
}
|
|
387
417
|
|
|
388
418
|
function toggleSpotlight() {
|
|
389
|
-
if (spotlight.classList.contains('visible')) hideSpotlight();
|
|
419
|
+
if (spotlight && spotlight.classList.contains('visible')) hideSpotlight();
|
|
390
420
|
else showSpotlight();
|
|
391
421
|
}
|
|
392
422
|
|
|
@@ -477,6 +507,17 @@ const ONE_DEVTOOLS_SCRIPT = `
|
|
|
477
507
|
html += '<div style="font-size:13px;color:#4d5156;">' + escapeHtml(desc ? desc.slice(0,160) : 'No description') + '</div>';
|
|
478
508
|
html += '</div></div>';
|
|
479
509
|
|
|
510
|
+
if (ogImage) {
|
|
511
|
+
html += '<div class="section"><div class="section-title">Social Preview</div>';
|
|
512
|
+
html += '<div class="preview-card" style="background:#fff;border-radius:12px;overflow:hidden;border:1px solid #e1e8ed;">';
|
|
513
|
+
html += '<img src="' + escapeHtml(ogImage) + '" style="width:100%;height:auto;display:block;border-bottom:1px solid #e1e8ed;" onerror="this.style.display="none"" />';
|
|
514
|
+
html += '<div style="padding:12px;">';
|
|
515
|
+
html += '<div style="font-size:12px;color:#8899a6;text-transform:uppercase;margin-bottom:2px;">' + escapeHtml(location.hostname) + '</div>';
|
|
516
|
+
html += '<div style="font-size:15px;color:#1c2022;font-weight:700;margin-bottom:4px;line-height:1.3;">' + escapeHtml(ogTitle || title || 'No title') + '</div>';
|
|
517
|
+
html += '<div style="font-size:14px;color:#8899a6;line-height:1.3;">' + escapeHtml((ogDesc || desc || '').slice(0,100)) + '</div>';
|
|
518
|
+
html += '</div></div></div>';
|
|
519
|
+
}
|
|
520
|
+
|
|
480
521
|
html += '<div class="section"><div class="section-title">Meta Tags</div>';
|
|
481
522
|
html += '<div class="info-row"><div class="info-label">title</div><div class="info-value">' + escapeHtml(title || '-') + '</div></div>';
|
|
482
523
|
html += '<div class="info-row"><div class="info-label">description</div><div class="info-value">' + escapeHtml(desc || '-') + '</div></div>';
|
|
@@ -575,8 +616,21 @@ const ONE_DEVTOOLS_SCRIPT = `
|
|
|
575
616
|
return html;
|
|
576
617
|
}
|
|
577
618
|
|
|
578
|
-
// Initialize
|
|
579
|
-
|
|
619
|
+
// Initialize after React hydration completes
|
|
620
|
+
// use requestIdleCallback to wait for the browser to be idle (after hydration)
|
|
621
|
+
function initAfterHydration() {
|
|
622
|
+
if (typeof requestIdleCallback !== 'undefined') {
|
|
623
|
+
requestIdleCallback(createHost, { timeout: 3000 });
|
|
624
|
+
} else {
|
|
625
|
+
setTimeout(createHost, 100);
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
if (document.readyState === 'complete') {
|
|
630
|
+
initAfterHydration();
|
|
631
|
+
} else {
|
|
632
|
+
window.addEventListener('load', initAfterHydration);
|
|
633
|
+
}
|
|
580
634
|
|
|
581
635
|
// Listen for events
|
|
582
636
|
window.addEventListener('one-loader-timing', function() {
|
|
@@ -627,6 +681,7 @@ const SOURCE_INSPECTOR_SCRIPT = `
|
|
|
627
681
|
var holdTimer = null;
|
|
628
682
|
var holdDelay = 500;
|
|
629
683
|
var mousePos = { x: 0, y: 0 };
|
|
684
|
+
var removalObserver = null;
|
|
630
685
|
|
|
631
686
|
function createHost() {
|
|
632
687
|
if (host) return;
|
|
@@ -667,6 +722,31 @@ const SOURCE_INSPECTOR_SCRIPT = `
|
|
|
667
722
|
document.body.appendChild(host);
|
|
668
723
|
overlay = shadow.querySelector('.overlay');
|
|
669
724
|
tag = shadow.querySelector('.tag');
|
|
725
|
+
setupRemovalObserver();
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
// watch for React hydration removing our element and re-create it
|
|
729
|
+
function setupRemovalObserver() {
|
|
730
|
+
if (removalObserver) return;
|
|
731
|
+
removalObserver = new MutationObserver(function(mutations) {
|
|
732
|
+
for (var i = 0; i < mutations.length; i++) {
|
|
733
|
+
var mutation = mutations[i];
|
|
734
|
+
if (mutation.type === 'childList') {
|
|
735
|
+
for (var j = 0; j < mutation.removedNodes.length; j++) {
|
|
736
|
+
var node = mutation.removedNodes[j];
|
|
737
|
+
if (node === host) {
|
|
738
|
+
host = null;
|
|
739
|
+
shadow = null;
|
|
740
|
+
overlay = null;
|
|
741
|
+
tag = null;
|
|
742
|
+
// don't auto-recreate - will be created on next hover
|
|
743
|
+
return;
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
}
|
|
748
|
+
});
|
|
749
|
+
removalObserver.observe(document.body, { childList: true });
|
|
670
750
|
}
|
|
671
751
|
|
|
672
752
|
function hideOverlay() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevHead.d.ts","sourceRoot":"","sources":["../../src/vite/DevHead.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DevHead.d.ts","sourceRoot":"","sources":["../../src/vite/DevHead.tsx"],"names":[],"mappings":"AAg3BA,wBAAgB,OAAO,mDA6CtB"}
|