@mindexec/cli 0.2.289 → 0.2.291

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindexec/cli",
3
- "version": "0.2.289",
3
+ "version": "0.2.291",
4
4
  "description": "MindExec local runtime and bridge CLI",
5
5
  "main": "server.js",
6
6
  "type": "module",
@@ -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-css3d-flat-wheel-v735';
8
+ const MINDMAP_CORE_BUILD_ID = '20260620-css3d-flat-wheel-v737';
9
9
  const CanvasPhase = Object.freeze({
10
10
  Booting: 'booting',
11
11
  BoardFileLoading: 'board-file-loading',
@@ -4173,11 +4173,38 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4173
4173
  };
4174
4174
  }
4175
4175
 
4176
+ _placeBackgroundGridLayer(layer) {
4177
+ if (!layer || !this.container) {
4178
+ return false;
4179
+ }
4180
+
4181
+ const webglElement = this.renderer?.domElement;
4182
+ const cssElement = this.cssRenderer?.domElement;
4183
+ const anchorElement =
4184
+ webglElement?.parentNode === this.container
4185
+ ? webglElement
4186
+ : cssElement?.parentNode === this.container
4187
+ ? cssElement
4188
+ : null;
4189
+
4190
+ if (anchorElement) {
4191
+ if (layer.parentNode !== this.container ||
4192
+ layer.nextSibling !== anchorElement) {
4193
+ this.container.insertBefore(layer, anchorElement);
4194
+ }
4195
+ } else if (layer.parentNode !== this.container) {
4196
+ this.container.insertBefore(layer, this.container.firstChild || null);
4197
+ }
4198
+
4199
+ return layer.parentNode === this.container;
4200
+ }
4201
+
4176
4202
  _ensureLocalSnapGridLayer() {
4177
4203
  if (!this.container || typeof document === 'undefined') {
4178
4204
  return null;
4179
4205
  }
4180
4206
  if (this._localSnapGridLayer?.isConnected) {
4207
+ this._placeBackgroundGridLayer(this._localSnapGridLayer);
4181
4208
  return this._localSnapGridLayer;
4182
4209
  }
4183
4210
 
@@ -4203,12 +4230,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4203
4230
  layer.style.transform = 'translate3d(0, 0, 0)';
4204
4231
  layer.style.transition = 'none';
4205
4232
 
4206
- const cssElement = this.cssRenderer?.domElement;
4207
- if (cssElement?.parentNode === this.container) {
4208
- this.container.insertBefore(layer, cssElement);
4209
- } else {
4210
- this.container.appendChild(layer);
4211
- }
4233
+ this._placeBackgroundGridLayer(layer);
4212
4234
 
4213
4235
  this._localSnapGridLayer = layer;
4214
4236
  this._lastLocalSnapGridKey = '';
@@ -4584,6 +4606,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4584
4606
  return null;
4585
4607
  }
4586
4608
  if (this._motionGridLayer?.isConnected) {
4609
+ this._placeBackgroundGridLayer(this._motionGridLayer);
4587
4610
  return this._motionGridLayer;
4588
4611
  }
4589
4612
 
@@ -4602,12 +4625,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4602
4625
  layer.style.transform = 'translate3d(0, 0, 0)';
4603
4626
  layer.style.transition = 'none';
4604
4627
 
4605
- const cssElement = this.cssRenderer?.domElement;
4606
- if (cssElement?.parentNode === this.container) {
4607
- this.container.insertBefore(layer, cssElement);
4608
- } else {
4609
- this.container.appendChild(layer);
4610
- }
4628
+ this._placeBackgroundGridLayer(layer);
4611
4629
 
4612
4630
  this._motionGridLayer = layer;
4613
4631
  this._lastMotionGridKey = '';
@@ -6811,7 +6829,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6811
6829
 
6812
6830
  // ▼▼▼ [Fix] 줌 종료 쿨다운 - 휠 입력 후 일정 시간 대기 ▼▼▼
6813
6831
  // _zoomInputTime은 interactions.js에서 휠 입력 시 설정됨
6814
- const zoomNow = performance.now();
6832
+ const zoomNow = frameStart;
6815
6833
  const lastZoomInput = this._zoomInputTime || 0;
6816
6834
  const timeSinceLastInput = zoomNow - lastZoomInput;
6817
6835
 
@@ -6852,6 +6870,50 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6852
6870
  return;
6853
6871
  }
6854
6872
 
6873
+ const canAttemptEarliestCameraOnlyFrame =
6874
+ CAMERA_MOTION_VISUAL_ONLY_FAST_PATH_ENABLED === true &&
6875
+ (
6876
+ isCameraMoving === true ||
6877
+ this.isPanning === true ||
6878
+ this.isZooming === true
6879
+ ) &&
6880
+ this.isSelecting !== true &&
6881
+ this.isDraggingNode !== true &&
6882
+ this.isDraggingMultipleNodes !== true &&
6883
+ this.isResizing !== true &&
6884
+ this.isWindowResizing !== true &&
6885
+ this.isLoading !== true;
6886
+ if (canAttemptEarliestCameraOnlyFrame === true) {
6887
+ if (tryRunUltraEarlyCameraOnlyFrame(
6888
+ this,
6889
+ loop,
6890
+ frameStart,
6891
+ isCameraMoving,
6892
+ shouldCaptureFramePerf,
6893
+ _frameProfTimes,
6894
+ _profileSection
6895
+ ) === true ||
6896
+ tryRunUltraEarlyResidentCameraOnlyFrame(
6897
+ this,
6898
+ loop,
6899
+ frameStart,
6900
+ isCameraMoving,
6901
+ shouldCaptureFramePerf,
6902
+ _frameProfTimes,
6903
+ _profileSection
6904
+ ) === true) {
6905
+ this.frameCount = (this.frameCount || 0) + 1;
6906
+ this._viewSyncMotionActive = true;
6907
+ this._cameraMovingThisFrame = isCameraMoving === true;
6908
+ this._wasZoomingLastFrame = this.isZooming === true;
6909
+ this._wasPanningLastFrame = this.isPanning === true;
6910
+ this._wasCameraMovingLastFrame = isCameraMoving === true;
6911
+ this._wasResizingLastFrame = this.isResizing === true;
6912
+ this.prevIsCameraMoving = isCameraMoving === true;
6913
+ return;
6914
+ }
6915
+ }
6916
+
6855
6917
  if (isCameraMoving !== this.prevIsCameraMoving) {
6856
6918
  const shouldSyncCss3dWillChangeForCameraMotion =
6857
6919
  this.renderDebugFlags?.enableCss3dWillChange === true;
@@ -1,5 +1,5 @@
1
1
  self.assetsManifest = {
2
- "version": "2SnxEkqN",
2
+ "version": "++e3HCEL",
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-YPH1ZXPDehAzNUpwIQ5DDMHMHxxnB/JfwtJhuBoplR8=",
81
+ "hash": "sha256-bABeX8wANAaPRLG1o7ZxQkUkfqWUzChfMUTxUgLiyAA=",
82
82
  "url": "_content/MindExecution.Shared/js/mind-map-core.js"
83
83
  },
84
84
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: 2SnxEkqN */
1
+ /* Manifest version: ++e3HCEL */
2
2
  // Hosted deployments should prefer the network over stale offline caches.
3
3
  // This service worker immediately clears old Blazor offline caches and unregisters itself.
4
4