gitmaps 1.1.10 → 1.1.11
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/app/layout.tsx +2 -2
- package/app/lib/events.tsx +5 -5
- package/app/lib/viewport-culling.ts +8 -8
- package/package.json +1 -1
package/app/layout.tsx
CHANGED
|
@@ -877,8 +877,8 @@ export default function RootLayout({ children }: { children: any }) {
|
|
|
877
877
|
{/* Sticky Zoom Controls — floating pill, bottom-right */}
|
|
878
878
|
<div id="detailModeSwitch" className="detail-mode-switch" title="Toggle preview-focused detail mode">
|
|
879
879
|
<button id="toggleDetailMode" type="button" className="detail-mode-btn">
|
|
880
|
-
<span className="detail-mode-label">
|
|
881
|
-
<span id="detailModeState" className="detail-mode-state">
|
|
880
|
+
<span className="detail-mode-label">Renderer</span>
|
|
881
|
+
<span id="detailModeState" className="detail-mode-state">Preview</span>
|
|
882
882
|
</button>
|
|
883
883
|
</div>
|
|
884
884
|
|
package/app/lib/events.tsx
CHANGED
|
@@ -458,9 +458,9 @@ export function setupEventListeners(ctx: CanvasContext) {
|
|
|
458
458
|
const mode = getDetailMode();
|
|
459
459
|
detailModeToggle.classList.toggle('active', mode === 'preview');
|
|
460
460
|
detailModeToggle.setAttribute('title', mode === 'preview'
|
|
461
|
-
? 'Preview mode
|
|
462
|
-
: '
|
|
463
|
-
if (stateEl) stateEl.textContent = mode === 'preview' ? 'Preview' : '
|
|
461
|
+
? 'Preview mode — stays in the preview renderer at every zoom. Click to switch to classic cards.'
|
|
462
|
+
: 'Classic mode — old full-card renderer. Click to switch back to preview mode.');
|
|
463
|
+
if (stateEl) stateEl.textContent = mode === 'preview' ? 'Preview' : 'Classic';
|
|
464
464
|
};
|
|
465
465
|
updateDetailModeUi();
|
|
466
466
|
detailModeToggle.addEventListener('click', () => {
|
|
@@ -468,8 +468,8 @@ export function setupEventListeners(ctx: CanvasContext) {
|
|
|
468
468
|
updateDetailModeUi();
|
|
469
469
|
rerenderCurrentView(ctx);
|
|
470
470
|
showToast(next === 'preview'
|
|
471
|
-
? 'Preview mode
|
|
472
|
-
: '
|
|
471
|
+
? 'Preview mode enabled'
|
|
472
|
+
: 'Classic mode enabled', 'info');
|
|
473
473
|
});
|
|
474
474
|
}
|
|
475
475
|
|
|
@@ -53,12 +53,12 @@ export function markTransformActive() {
|
|
|
53
53
|
|
|
54
54
|
// Track current LOD mode so we can detect transitions
|
|
55
55
|
let _currentLodMode: 'full' | 'pill' = 'full';
|
|
56
|
-
let _detailMode: '
|
|
56
|
+
let _detailMode: 'classic' | 'preview' = (() => {
|
|
57
57
|
try {
|
|
58
58
|
const stored = localStorage.getItem(LOW_ZOOM_MODE_STORAGE_KEY);
|
|
59
|
-
return stored === '
|
|
59
|
+
return stored === 'classic' ? 'classic' : 'preview';
|
|
60
60
|
} catch {
|
|
61
|
-
return '
|
|
61
|
+
return 'preview';
|
|
62
62
|
}
|
|
63
63
|
})();
|
|
64
64
|
|
|
@@ -99,19 +99,19 @@ export function getPinnedCards(): Set<string> {
|
|
|
99
99
|
return _pinnedCards;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
export function getDetailMode(): '
|
|
102
|
+
export function getDetailMode(): 'classic' | 'preview' {
|
|
103
103
|
return _detailMode;
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
export function setDetailMode(mode: '
|
|
106
|
+
export function setDetailMode(mode: 'classic' | 'preview') {
|
|
107
107
|
_detailMode = mode;
|
|
108
108
|
try {
|
|
109
109
|
localStorage.setItem(LOW_ZOOM_MODE_STORAGE_KEY, mode);
|
|
110
110
|
} catch { }
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
export function toggleDetailMode(): '
|
|
114
|
-
const next = _detailMode === 'preview' ? '
|
|
113
|
+
export function toggleDetailMode(): 'classic' | 'preview' {
|
|
114
|
+
const next = _detailMode === 'preview' ? 'classic' : 'preview';
|
|
115
115
|
setDetailMode(next);
|
|
116
116
|
return next;
|
|
117
117
|
}
|
|
@@ -323,7 +323,7 @@ export function performViewportCulling(ctx: CanvasContext) {
|
|
|
323
323
|
// Phase 4c: also materialize deferred CardManager cards
|
|
324
324
|
// Reuse zoom from worldRect (already snapped) — avoids redundant ctx.snap()
|
|
325
325
|
const zoom = worldRect.zoom;
|
|
326
|
-
const isLowZoom = _detailMode === 'preview'
|
|
326
|
+
const isLowZoom = _detailMode === 'preview';
|
|
327
327
|
|
|
328
328
|
// Important: never materialize full cards while in low-zoom pill mode.
|
|
329
329
|
// Otherwise CardManager keeps mounting heavyweight cards right when the
|