@mindexec/cli 0.2.250 → 0.2.251
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 +46 -9
- package/wwwroot/_content/MindExecution.Shared/js/renderers/CSS3DRenderer.js +37 -5
- package/wwwroot/index.html +3 -3
- package/wwwroot/service-worker-assets.js +4 -4
- 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 = '20260620-
|
|
8
|
+
const MINDMAP_CORE_BUILD_ID = '20260620-flat-css3d-zoom-v698';
|
|
9
9
|
const CanvasPhase = Object.freeze({
|
|
10
10
|
Booting: 'booting',
|
|
11
11
|
BoardFileLoading: 'board-file-loading',
|
|
@@ -114,6 +114,7 @@
|
|
|
114
114
|
const CAMERA_MOTION_WEBGL_CANVAS_TRANSFORM_ENABLED = true;
|
|
115
115
|
const CAMERA_MOTION_WEBGL_TRANSFORM_TRANSLATE_BUCKET_PX = 0.25;
|
|
116
116
|
const CAMERA_MOTION_WEBGL_TRANSFORM_SCALE_BUCKET = 0.0005;
|
|
117
|
+
const CSS3D_FLAT_CAMERA_MOTION_ENABLED = true;
|
|
117
118
|
const CAMERA_STATIONARY_INTERACTION_FRAME_DELAY_MS = 48;
|
|
118
119
|
const CAMERA_ZOOM_END_DELAY_MS = 150;
|
|
119
120
|
const CAMERA_MOTION_GLOBAL_STYLE_CLASS_ENABLED = false;
|
|
@@ -510,6 +511,42 @@
|
|
|
510
511
|
);
|
|
511
512
|
}
|
|
512
513
|
|
|
514
|
+
function renderCss3dCameraForCameraNavigation(module, reason = 'camera-navigation') {
|
|
515
|
+
const renderer = module?.cssRenderer || null;
|
|
516
|
+
const camera = module?.camera || null;
|
|
517
|
+
if (!renderer || !camera) {
|
|
518
|
+
return false;
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
const renderDebugFlags = module.renderDebugFlags || getRenderDebugFlagsSnapshot();
|
|
522
|
+
if (renderDebugFlags.enableCss3d === false) {
|
|
523
|
+
return false;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
if (CSS3D_FLAT_CAMERA_MOTION_ENABLED === true &&
|
|
527
|
+
renderDebugFlags.enableFlatCss3dCameraMotion !== false &&
|
|
528
|
+
typeof renderer.renderFlatCamera === 'function') {
|
|
529
|
+
const usedFlatCamera = renderer.renderFlatCamera(camera, {
|
|
530
|
+
translateBucketPx: CAMERA_MOTION_WEBGL_TRANSFORM_TRANSLATE_BUCKET_PX,
|
|
531
|
+
scaleBucket: CAMERA_MOTION_WEBGL_TRANSFORM_SCALE_BUCKET
|
|
532
|
+
});
|
|
533
|
+
if (usedFlatCamera === true) {
|
|
534
|
+
module._lastCss3dCameraMotionMode = 'flat';
|
|
535
|
+
module._lastCss3dCameraMotionReason = reason;
|
|
536
|
+
return true;
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
if (typeof renderer.renderCamera === 'function') {
|
|
541
|
+
renderer.renderCamera(camera);
|
|
542
|
+
module._lastCss3dCameraMotionMode = 'matrix3d';
|
|
543
|
+
module._lastCss3dCameraMotionReason = reason;
|
|
544
|
+
return true;
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
return false;
|
|
548
|
+
}
|
|
549
|
+
|
|
513
550
|
function markWebglSurfaceFrozenForZoom(module, mode) {
|
|
514
551
|
if (!module) {
|
|
515
552
|
return false;
|
|
@@ -1675,7 +1712,7 @@
|
|
|
1675
1712
|
|
|
1676
1713
|
module._syncMotionGridLayerForCameraNavigation?.(usedWebglCanvasCameraTransform);
|
|
1677
1714
|
module._syncLocalSnapGridPositionOnly?.(true);
|
|
1678
|
-
|
|
1715
|
+
renderCss3dCameraForCameraNavigation(module, 'ua-ultra-camera-only');
|
|
1679
1716
|
|
|
1680
1717
|
syncBusinessAutomationEdgesForCameraNavigation(module);
|
|
1681
1718
|
|
|
@@ -1898,7 +1935,7 @@
|
|
|
1898
1935
|
module._syncMotionGridLayerForCameraNavigation?.(usedWebglCanvasCameraTransform);
|
|
1899
1936
|
module._syncLocalSnapGridPositionOnly?.(true);
|
|
1900
1937
|
if (canRenderCss3dCamera === true) {
|
|
1901
|
-
|
|
1938
|
+
renderCss3dCameraForCameraNavigation(module, 'ua-ultra-resident-camera-only');
|
|
1902
1939
|
}
|
|
1903
1940
|
|
|
1904
1941
|
syncBusinessAutomationEdgesForCameraNavigation(module);
|
|
@@ -3947,7 +3984,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3947
3984
|
layer.style.willChange = 'transform, opacity';
|
|
3948
3985
|
layer.style.transform = 'translate3d(0, 0, 0)';
|
|
3949
3986
|
layer.style.transition = 'opacity 90ms linear';
|
|
3950
|
-
const mask = 'radial-gradient(circle at center, rgba(0,0,0,0.
|
|
3987
|
+
const mask = 'radial-gradient(circle at center, rgba(0,0,0,0.98) 0%, rgba(0,0,0,0.86) 32%, rgba(0,0,0,0.42) 58%, rgba(0,0,0,0.08) 78%, transparent 100%)';
|
|
3951
3988
|
layer.style.maskImage = mask;
|
|
3952
3989
|
layer.style.webkitMaskImage = mask;
|
|
3953
3990
|
|
|
@@ -6642,7 +6679,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
6642
6679
|
this._syncMotionGridLayerForCameraNavigation(usedWebglCanvasCameraTransformImmediate);
|
|
6643
6680
|
this._syncLocalSnapGridPositionOnly(true);
|
|
6644
6681
|
|
|
6645
|
-
|
|
6682
|
+
renderCss3dCameraForCameraNavigation(this, 'ua-visual-only-motion');
|
|
6646
6683
|
const shouldSyncPassiveOverlayTransformDuringMotion =
|
|
6647
6684
|
isPassiveDomOverlayRuntimeEnabled === true;
|
|
6648
6685
|
if (shouldSyncPassiveOverlayTransformDuringMotion &&
|
|
@@ -6817,7 +6854,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
6817
6854
|
this._syncMotionGridLayerForCameraNavigation(usedWebglCanvasCameraTransformStationary);
|
|
6818
6855
|
this._syncLocalSnapGridPositionOnly(true);
|
|
6819
6856
|
if (this.cssRenderer && typeof this.cssRenderer.renderCamera === 'function') {
|
|
6820
|
-
|
|
6857
|
+
renderCss3dCameraForCameraNavigation(this, 'ua-stationary-visual-motion');
|
|
6821
6858
|
}
|
|
6822
6859
|
syncBusinessAutomationEdgesForCameraNavigation(this, { allowDraftRender: true });
|
|
6823
6860
|
|
|
@@ -7007,7 +7044,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
7007
7044
|
|
|
7008
7045
|
this._syncLocalSnapGridPositionOnly(true);
|
|
7009
7046
|
if (shouldRenderCss3dInLodForUaResidentCameraOnly === true) {
|
|
7010
|
-
|
|
7047
|
+
renderCss3dCameraForCameraNavigation(this, 'ua-resident-visual-only-motion');
|
|
7011
7048
|
}
|
|
7012
7049
|
syncBusinessAutomationEdgesForCameraNavigation(this, { allowDraftRender: true });
|
|
7013
7050
|
_profileSection('uaResidentVisualOnlyMotion');
|
|
@@ -7253,7 +7290,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
7253
7290
|
}
|
|
7254
7291
|
|
|
7255
7292
|
this._syncMotionGridLayerForCameraNavigation(usedWebglCanvasCameraTransformEarly);
|
|
7256
|
-
|
|
7293
|
+
renderCss3dCameraForCameraNavigation(this, 'ua-early-camera-only');
|
|
7257
7294
|
_profileSection('uaEarlyCameraOnly');
|
|
7258
7295
|
|
|
7259
7296
|
const frameEnd = performance.now();
|
|
@@ -8180,7 +8217,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
8180
8217
|
if (canUseCss3dCameraFastPath) {
|
|
8181
8218
|
this._syncMotionGridLayerForCameraNavigation(usedWebglCanvasCameraTransform);
|
|
8182
8219
|
recordCameraMotionFastPathStatus(this, 'hit', 'css3d-camera-fast');
|
|
8183
|
-
|
|
8220
|
+
renderCss3dCameraForCameraNavigation(this, 'css3d-camera-fast');
|
|
8184
8221
|
}
|
|
8185
8222
|
_profileSection('css3dCamera');
|
|
8186
8223
|
// ▲▲▲ [FIX] ▲▲▲
|
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
function CSS3DRenderer(){
|
|
34
|
-
var _width, _height; var _widthHalf, _heightHalf; var cache = { camera:{ fov:0, style:'' }, objects: new WeakMap() };
|
|
35
|
-
var domElement = document.createElement('div'); domElement.style.overflow = 'hidden'; this.domElement = domElement;
|
|
36
|
-
var cameraElement = document.createElement('div'); cameraElement.style.webkitTransformStyle = cameraElement.style.transformStyle = 'preserve-3d'; cameraElement.style.pointerEvents = 'none'; domElement.appendChild(cameraElement);
|
|
33
|
+
function CSS3DRenderer(){
|
|
34
|
+
var _width, _height; var _widthHalf, _heightHalf; var cache = { camera:{ fov:0, style:'' }, objects: new WeakMap() };
|
|
35
|
+
var domElement = document.createElement('div'); domElement.style.overflow = 'hidden'; this.domElement = domElement;
|
|
36
|
+
var cameraElement = document.createElement('div'); cameraElement.style.webkitTransformStyle = cameraElement.style.transformStyle = 'preserve-3d'; cameraElement.style.pointerEvents = 'none'; cameraElement.style.webkitTransformOrigin = cameraElement.style.transformOrigin = '0 0'; domElement.appendChild(cameraElement);
|
|
37
37
|
|
|
38
38
|
this.getSize = function(){ return { width:_width, height:_height }; };
|
|
39
39
|
this.getCameraElement = function(){ return cameraElement; };
|
|
@@ -42,9 +42,41 @@
|
|
|
42
42
|
function getObjectCSSMatrix(matrix){ var e=matrix.elements; var m='matrix3d('+epsilon(e[0])+','+epsilon(e[1])+','+epsilon(e[2])+','+epsilon(e[3])+','+epsilon(-e[4])+','+epsilon(-e[5])+','+epsilon(-e[6])+','+epsilon(-e[7])+','+epsilon(e[8])+','+epsilon(e[9])+','+epsilon(e[10])+','+epsilon(e[11])+','+epsilon(e[12])+','+epsilon(e[13])+','+epsilon(e[14])+','+epsilon(e[15])+')'; return m; }
|
|
43
43
|
function renderObject(object, scene, camera, cameraCSSMatrix){ if (object.isCSS3DObject){ var style=getObjectCSSMatrix(object.matrixWorld); var display=object.visible ? '' : 'none'; var element=object.element; var cached=cache.objects.get(object); if (cached===undefined || cached.style!==style){ element.style.webkitTransform=element.style.transform=style; } if (cached===undefined || cached.display!==display){ element.style.display=display; } if (cached===undefined || cached.style!==style || cached.display!==display){ cache.objects.set(object, { style, display }); } if (element.parentNode !== cameraElement){ cameraElement.appendChild(element); } } for (var i=0,l=object.children.length;i<l;i++){ renderObject(object.children[i], scene, camera, cameraCSSMatrix); } }
|
|
44
44
|
function renderCameraOnly(renderer, camera){ var fov=camera.projectionMatrix.elements[5]*_heightHalf; if (cache.camera.fov!==fov){ renderer.domElement.style.webkitPerspective=renderer.domElement.style.perspective=fov+'px'; cache.camera.fov=fov; } if (camera.parent===null && camera.matrixWorldNeedsUpdate===true) camera.updateMatrixWorld(); var cameraCSSMatrix='translateZ('+fov+'px)'+getCameraCSSMatrix(camera.matrixWorldInverse); var style=cameraCSSMatrix+'translate('+_widthHalf+'px,'+_heightHalf+'px)'; if (cache.camera.style!==style){ cameraElement.style.webkitTransform=cameraElement.style.transform=style; cache.camera.style=style; } return cameraCSSMatrix; }
|
|
45
|
+
function renderFlatCameraOnly(renderer, camera, options){
|
|
46
|
+
if (!camera || !_width || !_height || !camera.isPerspectiveCamera) return false;
|
|
47
|
+
var position = camera.position || {};
|
|
48
|
+
var rotation = camera.rotation || {};
|
|
49
|
+
var cameraZ = Math.max(1, Number(position.z || 1));
|
|
50
|
+
var cameraX = Number(position.x || 0);
|
|
51
|
+
var cameraY = Number(position.y || 0);
|
|
52
|
+
var fov = Number(camera.fov || 45);
|
|
53
|
+
if (!Number.isFinite(cameraX) || !Number.isFinite(cameraY) || !Number.isFinite(cameraZ) || !Number.isFinite(fov)) return false;
|
|
54
|
+
if (Math.abs(Number(rotation.x || 0)) > 1e-5 || Math.abs(Number(rotation.y || 0)) > 1e-5 || Math.abs(Number(rotation.z || 0)) > 1e-5) return false;
|
|
55
|
+
var vfov = fov * Math.PI / 180;
|
|
56
|
+
var viewHeight = 2 * Math.tan(vfov / 2) * cameraZ;
|
|
57
|
+
var scale = _height / Math.max(1, viewHeight);
|
|
58
|
+
var translateX = _widthHalf - cameraX * scale;
|
|
59
|
+
var translateY = _heightHalf + cameraY * scale;
|
|
60
|
+
var translateBucket = Math.max(0.001, Number(options && options.translateBucketPx || 0.25));
|
|
61
|
+
var scaleBucket = Math.max(0.000001, Number(options && options.scaleBucket || 0.0005));
|
|
62
|
+
var tx = Math.round(translateX / translateBucket) * translateBucket;
|
|
63
|
+
var ty = Math.round(translateY / translateBucket) * translateBucket;
|
|
64
|
+
var s = Math.round(scale / scaleBucket) * scaleBucket;
|
|
65
|
+
var style = 'flat|'+Math.round(_width)+'|'+Math.round(_height)+'|'+Math.round(tx / translateBucket)+'|'+Math.round(ty / translateBucket)+'|'+Math.round(s / scaleBucket);
|
|
66
|
+
if (cache.camera.fov !== 0){
|
|
67
|
+
renderer.domElement.style.webkitPerspective = renderer.domElement.style.perspective = '';
|
|
68
|
+
cache.camera.fov = 0;
|
|
69
|
+
}
|
|
70
|
+
if (cache.camera.style !== style){
|
|
71
|
+
cameraElement.style.webkitTransform = cameraElement.style.transform = 'translate3d('+tx.toFixed(3)+'px,'+ty.toFixed(3)+'px,0) scale('+s.toFixed(6)+','+(-s).toFixed(6)+')';
|
|
72
|
+
cache.camera.style = style;
|
|
73
|
+
}
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
45
76
|
this.renderCamera = function(camera){ renderCameraOnly(this, camera); };
|
|
77
|
+
this.renderFlatCamera = function(camera, options){ return renderFlatCameraOnly(this, camera, options); };
|
|
46
78
|
this.render = function(scene, camera){ if (scene.autoUpdate===true) scene.updateMatrixWorld(); var cameraCSSMatrix=renderCameraOnly(this, camera); renderObject(scene, scene, camera, cameraCSSMatrix); };
|
|
47
|
-
}
|
|
79
|
+
}
|
|
48
80
|
|
|
49
81
|
window.CSS3DObject = CSS3DObject; window.CSS3DSprite = CSS3DSprite; window.CSS3DRenderer = CSS3DRenderer;
|
|
50
82
|
})();
|
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=20260620-
|
|
11
|
-
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-
|
|
10
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260620-flat-css3d-zoom-v698" />
|
|
11
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-flat-css3d-zoom-v698" />
|
|
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 = '20260620-
|
|
582
|
+
const scriptVersion = '20260620-flat-css3d-zoom-v698';
|
|
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": "33ownALV",
|
|
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-jDu+wKwx2c3EsR3/k3iRzYlFnMJDioCOC1NpETVqRnA=",
|
|
82
82
|
"url": "_content/MindExecution.Shared/js/mind-map-core.js"
|
|
83
83
|
},
|
|
84
84
|
{
|
|
@@ -182,7 +182,7 @@
|
|
|
182
182
|
"url": "_content/MindExecution.Shared/js/plan-master.js"
|
|
183
183
|
},
|
|
184
184
|
{
|
|
185
|
-
"hash": "sha256-
|
|
185
|
+
"hash": "sha256-zZ6nh8fh4HnO5rV//tfE4WB119Ez9Gjg26P7k0idcIE=",
|
|
186
186
|
"url": "_content/MindExecution.Shared/js/renderers/CSS3DRenderer.js"
|
|
187
187
|
},
|
|
188
188
|
{
|
|
@@ -834,7 +834,7 @@
|
|
|
834
834
|
"url": "image-manifest.json"
|
|
835
835
|
},
|
|
836
836
|
{
|
|
837
|
-
"hash": "sha256-
|
|
837
|
+
"hash": "sha256-kRfC28AL9LLXfW4M5tmMqFgRUHQ2nVhJSKnxZnA8Hec=",
|
|
838
838
|
"url": "index.html"
|
|
839
839
|
},
|
|
840
840
|
{
|