@mindexec/cli 0.2.311 → 0.2.313
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/package.json +1 -1
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +89 -2
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-interactions.js +1 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-renderer.js +1 -1
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-text-overlay-v2.js +18 -4
- package/wwwroot/index.html +3 -3
- package/wwwroot/service-worker-assets.js +6 -6
- package/wwwroot/service-worker.js +1 -1
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
const DEBUG = false;
|
|
6
6
|
const FPS_DEBUG = false;
|
|
7
7
|
const FRAME_PERF_DEBUG = false;
|
|
8
|
-
const MINDMAP_CORE_BUILD_ID = '20260621-
|
|
8
|
+
const MINDMAP_CORE_BUILD_ID = '20260621-image-status-motion-v797';
|
|
9
9
|
const CanvasPhase = Object.freeze({
|
|
10
10
|
Booting: 'booting',
|
|
11
11
|
BoardFileLoading: 'board-file-loading',
|
|
@@ -517,6 +517,85 @@
|
|
|
517
517
|
return false;
|
|
518
518
|
}
|
|
519
519
|
|
|
520
|
+
function isCssImageElementReady(cssObject) {
|
|
521
|
+
const mediaEl = cssObject?.element?.querySelector?.('img') || null;
|
|
522
|
+
if (!mediaEl) {
|
|
523
|
+
return false;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
const mediaReady = String(mediaEl.dataset?.mediaReady || '').trim();
|
|
527
|
+
const naturalWidth = Number(mediaEl.naturalWidth || mediaEl.width || 0);
|
|
528
|
+
const naturalHeight = Number(mediaEl.naturalHeight || mediaEl.height || 0);
|
|
529
|
+
return mediaReady === '1' ||
|
|
530
|
+
(
|
|
531
|
+
mediaEl.complete === true &&
|
|
532
|
+
naturalWidth > 0 &&
|
|
533
|
+
naturalHeight > 0 &&
|
|
534
|
+
getComputedStyle(mediaEl).opacity !== '0'
|
|
535
|
+
);
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
function isVisibleImageStatusWebglDependency(entry) {
|
|
539
|
+
const model = entry?.model || {};
|
|
540
|
+
const contentType = String(model.contentType ?? model.ContentType ?? '').trim().toLowerCase();
|
|
541
|
+
if (contentType !== 'image') {
|
|
542
|
+
return false;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
const body = entry?.bodyMesh || entry?.glObject?.getObjectByName?.('body') || null;
|
|
546
|
+
const bodyUserData = body?.userData || {};
|
|
547
|
+
const metadata = model.metadata ?? model.Metadata ?? {};
|
|
548
|
+
const hasImageError = !!(
|
|
549
|
+
String(metadata?.ImageGenerationError || '').trim() ||
|
|
550
|
+
String(bodyUserData.failedImageRenderKey || '').trim() ||
|
|
551
|
+
String(model._assetRefreshState || '').trim().toLowerCase() === 'failed'
|
|
552
|
+
);
|
|
553
|
+
const cssImageReady = isCssImageElementReady(entry?.cssObject);
|
|
554
|
+
const bridgeBodyVisible = model._showImageBodyInCssMode === true && cssImageReady !== true;
|
|
555
|
+
return hasImageError || bridgeBodyVisible;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
function hasVisibleImageStatusWebglMotionDependency(module) {
|
|
559
|
+
const nodeObjectsById = module?.nodeObjectsById || null;
|
|
560
|
+
if (!(nodeObjectsById instanceof Map)) {
|
|
561
|
+
return false;
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
const visibleIds = module._visibleIds instanceof Set && module._visibleIds.size > 0
|
|
565
|
+
? module._visibleIds
|
|
566
|
+
: (module._prevVisibleIds instanceof Set && module._prevVisibleIds.size > 0
|
|
567
|
+
? module._prevVisibleIds
|
|
568
|
+
: null);
|
|
569
|
+
if (!visibleIds) {
|
|
570
|
+
return false;
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
const cacheKey = [
|
|
574
|
+
Number(module._visibilityVersion || 0),
|
|
575
|
+
Number(module.lodRenderer?._lodVisualEpoch || 0),
|
|
576
|
+
Number(visibleIds.size || 0),
|
|
577
|
+
Number(module.frameCount || 0)
|
|
578
|
+
].join('|');
|
|
579
|
+
if (module._visibleImageStatusWebglMotionDependencyCache?.key === cacheKey) {
|
|
580
|
+
return module._visibleImageStatusWebglMotionDependencyCache.value === true;
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
let hasDependency = false;
|
|
584
|
+
visibleIds.forEach(nodeId => {
|
|
585
|
+
if (hasDependency === true) {
|
|
586
|
+
return;
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
hasDependency = isVisibleImageStatusWebglDependency(nodeObjectsById.get(nodeId)) === true;
|
|
590
|
+
});
|
|
591
|
+
|
|
592
|
+
module._visibleImageStatusWebglMotionDependencyCache = {
|
|
593
|
+
key: cacheKey,
|
|
594
|
+
value: hasDependency
|
|
595
|
+
};
|
|
596
|
+
return hasDependency;
|
|
597
|
+
}
|
|
598
|
+
|
|
520
599
|
function isLocalSnapGridOnlyTheme(module) {
|
|
521
600
|
return module?.currentThemeObject?.userData?.localSnapGrid === true;
|
|
522
601
|
}
|
|
@@ -785,6 +864,10 @@
|
|
|
785
864
|
return false;
|
|
786
865
|
}
|
|
787
866
|
|
|
867
|
+
if (hasVisibleImageStatusWebglMotionDependency(module) === true) {
|
|
868
|
+
return false;
|
|
869
|
+
}
|
|
870
|
+
|
|
788
871
|
const renderer = module.cssRenderer || null;
|
|
789
872
|
const camera = module.camera || null;
|
|
790
873
|
const flags = options.renderDebugFlags || module.renderDebugFlags || getRenderDebugFlagsSnapshot();
|
|
@@ -6213,6 +6296,10 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
6213
6296
|
return false;
|
|
6214
6297
|
}
|
|
6215
6298
|
|
|
6299
|
+
if (hasVisibleImageStatusWebglMotionDependency(this) === true) {
|
|
6300
|
+
return false;
|
|
6301
|
+
}
|
|
6302
|
+
|
|
6216
6303
|
const currentX = Number(this.camera.position?.x || 0);
|
|
6217
6304
|
const currentY = Number(this.camera.position?.y || 0);
|
|
6218
6305
|
const currentZ = Number(this.camera.position?.z || 1);
|
|
@@ -9095,7 +9182,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
9095
9182
|
Number(this._passiveOverlayResumeAt || 0) > frameStart;
|
|
9096
9183
|
const shouldSuppressPassiveOverlayDuringCameraMotion =
|
|
9097
9184
|
useTextOverlayV2 &&
|
|
9098
|
-
hasPassiveDomOverlaySurface &&
|
|
9185
|
+
(hasPassiveDomOverlaySurface || hasVisibleOverlayV2Card === true) &&
|
|
9099
9186
|
(isPassiveOverlayIdleDelayActive ||
|
|
9100
9187
|
this.isZooming === true ||
|
|
9101
9188
|
this.isPanning === true ||
|
|
@@ -6481,6 +6481,7 @@ window.MindMapInteractions = (function () {
|
|
|
6481
6481
|
const target = targetOverride || e.target;
|
|
6482
6482
|
setBrowserSelectionLock(true, 'pan', { clearSelection: false, cssClass: false });
|
|
6483
6483
|
module.isPanning = true;
|
|
6484
|
+
setPassiveOverlaySuppressedDuringDrag(module, true);
|
|
6484
6485
|
notifyMindCanvasSurfaceInteraction('pan-start');
|
|
6485
6486
|
module.lastMousePos = { x: e.clientX, y: e.clientY };
|
|
6486
6487
|
module._lastPanInputAt = performance.now();
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
// ▲▲▲ [Usage] ▲▲▲
|
|
52
52
|
|
|
53
53
|
// Procedural line rendering settings
|
|
54
|
-
const LOD_RENDERER_BUILD_ID = '20260621-
|
|
54
|
+
const LOD_RENDERER_BUILD_ID = '20260621-image-status-motion-v797';
|
|
55
55
|
const DirtyKind = Object.freeze({
|
|
56
56
|
ResidentFullRebuild: 'resident-full-rebuild',
|
|
57
57
|
ResidentPatch: 'resident-patch',
|
|
@@ -3325,6 +3325,12 @@
|
|
|
3325
3325
|
return false;
|
|
3326
3326
|
}
|
|
3327
3327
|
|
|
3328
|
+
if (module?._suppressPassiveDomOverlayDuringZoom === true ||
|
|
3329
|
+
module?.isPanning === true ||
|
|
3330
|
+
module?.isZooming === true) {
|
|
3331
|
+
return false;
|
|
3332
|
+
}
|
|
3333
|
+
|
|
3328
3334
|
if (contentChanged || forceRefresh || state.dirtyLayout === true) {
|
|
3329
3335
|
return false;
|
|
3330
3336
|
}
|
|
@@ -4083,10 +4089,6 @@
|
|
|
4083
4089
|
!normalizeId(state.editing?.nodeId);
|
|
4084
4090
|
module._suppressPassiveDomOverlayDuringZoom = nextSuppressed;
|
|
4085
4091
|
|
|
4086
|
-
if (wasSuppressed === nextSuppressed) {
|
|
4087
|
-
return nextSuppressed;
|
|
4088
|
-
}
|
|
4089
|
-
|
|
4090
4092
|
if (nextSuppressed) {
|
|
4091
4093
|
state.cards.forEach(card => {
|
|
4092
4094
|
if (!card || card.style.display === 'none') {
|
|
@@ -4102,6 +4104,14 @@
|
|
|
4102
4104
|
if (entry) {
|
|
4103
4105
|
resumeSource(entry);
|
|
4104
4106
|
}
|
|
4107
|
+
|
|
4108
|
+
const isPassiveSelectionCard =
|
|
4109
|
+
String(card.dataset?.overlayMode || '') === 'selection' &&
|
|
4110
|
+
String(card.dataset?.overlayInteractive || '') !== 'true' &&
|
|
4111
|
+
String(card.dataset?.sourceKind || '') !== 'live';
|
|
4112
|
+
if (isPassiveSelectionCard) {
|
|
4113
|
+
hideCard(card);
|
|
4114
|
+
}
|
|
4105
4115
|
});
|
|
4106
4116
|
clearLayerTransform(layer);
|
|
4107
4117
|
layer.style.display = 'none';
|
|
@@ -4111,6 +4121,10 @@
|
|
|
4111
4121
|
return true;
|
|
4112
4122
|
}
|
|
4113
4123
|
|
|
4124
|
+
if (wasSuppressed === nextSuppressed) {
|
|
4125
|
+
return nextSuppressed;
|
|
4126
|
+
}
|
|
4127
|
+
|
|
4114
4128
|
state.dirtyLayout = true;
|
|
4115
4129
|
module._overlayDirty = true;
|
|
4116
4130
|
module._lastOverlayKey = '';
|
package/wwwroot/index.html
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
<title>MindExec | Business Execution OS for solo builders</title>
|
|
8
8
|
<meta name="description" content="MindExec is an AI business execution OS for solo builders who want to turn notes, research, assets, and repeatable execution Skills into revenue-producing work." />
|
|
9
9
|
<base href="/" />
|
|
10
|
-
<link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260621-
|
|
11
|
-
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260621-
|
|
10
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260621-image-status-motion-v797" />
|
|
11
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260621-image-status-motion-v797" />
|
|
12
12
|
<!-- ??좎뜦堉??Font Awesome (local) ??좎뜦堉??-->
|
|
13
13
|
<link rel="stylesheet" href="_content/MindExecution.Shared/lib/font-awesome/css/all.min.css" />
|
|
14
14
|
<!-- ??좎뜦堉??-->
|
|
@@ -579,7 +579,7 @@
|
|
|
579
579
|
}
|
|
580
580
|
|
|
581
581
|
const base = '_content/MindExecution.Shared/js/';
|
|
582
|
-
const scriptVersion = '20260621-
|
|
582
|
+
const scriptVersion = '20260621-image-status-motion-v797';
|
|
583
583
|
const scriptUrl = (script) => `${base}${script}?v=${scriptVersion}`;
|
|
584
584
|
console.log(`[Script Loader] Shared JS version: ${scriptVersion}`);
|
|
585
585
|
const criticalScripts = [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
self.assetsManifest = {
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "wFN1UJXT",
|
|
3
3
|
"assets": [
|
|
4
4
|
{
|
|
5
5
|
"hash": "sha256-+CSYMcqLNTsq3VnH11jgYyOCCdxvHzL74CBmo4sCmMU=",
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"url": "_content/MindExecution.Shared/js/marked.min.js"
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
|
-
"hash": "sha256-
|
|
81
|
+
"hash": "sha256-thTfHQlQm3nsiP4n/lNhLoVtAUv4rw/dsFDZHjD3yLE=",
|
|
82
82
|
"url": "_content/MindExecution.Shared/js/mind-map-core.js"
|
|
83
83
|
},
|
|
84
84
|
{
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"url": "_content/MindExecution.Shared/js/mind-map-glow-shader.js"
|
|
107
107
|
},
|
|
108
108
|
{
|
|
109
|
-
"hash": "sha256-
|
|
109
|
+
"hash": "sha256-jI85N38y4L0tbjmhtbJ4zGwVRI90TCa570Z8h1yA6i0=",
|
|
110
110
|
"url": "_content/MindExecution.Shared/js/mind-map-interactions.js"
|
|
111
111
|
},
|
|
112
112
|
{
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
"url": "_content/MindExecution.Shared/js/mind-map-lod-plan-worker.js"
|
|
115
115
|
},
|
|
116
116
|
{
|
|
117
|
-
"hash": "sha256-
|
|
117
|
+
"hash": "sha256-sLOCNMHkGa+Z4ZTEWKFBTFnBLy02dJKqoEqE2/kvBkg=",
|
|
118
118
|
"url": "_content/MindExecution.Shared/js/mind-map-lod-renderer.js"
|
|
119
119
|
},
|
|
120
120
|
{
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
"url": "_content/MindExecution.Shared/js/mind-map-text-lod-system.js"
|
|
155
155
|
},
|
|
156
156
|
{
|
|
157
|
-
"hash": "sha256-
|
|
157
|
+
"hash": "sha256-sZTTl62peGAqDd9+m/YczR9wkdC+HObxfPq019dwLDA=",
|
|
158
158
|
"url": "_content/MindExecution.Shared/js/mind-map-text-overlay-v2.js"
|
|
159
159
|
},
|
|
160
160
|
{
|
|
@@ -834,7 +834,7 @@
|
|
|
834
834
|
"url": "image-manifest.json"
|
|
835
835
|
},
|
|
836
836
|
{
|
|
837
|
-
"hash": "sha256-
|
|
837
|
+
"hash": "sha256-7SMiDFZNZ7teL59KIbKhRhiR0+OKDVx8zX33YhGTeq4=",
|
|
838
838
|
"url": "index.html"
|
|
839
839
|
},
|
|
840
840
|
{
|