@mindexec/cli 0.2.396 → 0.2.398

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.
@@ -2600,11 +2600,27 @@ html body .css3d-resolution-wrapper.lod-low.node-type-csv-table .csv-table td {
2600
2600
 
2601
2601
  .css3d-resolution-wrapper.node-type-templatelauncher > .map-node-template-card {
2602
2602
  border: 1px solid #111827 !important;
2603
- border-radius: 8px !important;
2603
+ border-radius: 0 !important;
2604
2604
  background: #f8fafc;
2605
2605
  box-shadow: none !important;
2606
2606
  }
2607
2607
 
2608
+ .css3d-resolution-wrapper.node-type-templatelauncher > .map-node-template-card.map-node-remote-fleet {
2609
+ border: 0 !important;
2610
+ }
2611
+
2612
+ .css3d-resolution-wrapper.node-type-templatelauncher:has(> .map-node-template-card.map-node-remote-fleet) {
2613
+ outline: none !important;
2614
+ -webkit-box-shadow: none !important;
2615
+ box-shadow: none !important;
2616
+ -webkit-filter: none !important;
2617
+ filter: none !important;
2618
+ }
2619
+
2620
+ .css3d-resolution-wrapper.node-type-templatelauncher.selected > .map-node-template-card.map-node-remote-fleet {
2621
+ border: 2px solid var(--node-selection-edge, #2563eb) !important;
2622
+ }
2623
+
2608
2624
  /* Template launcher and Multi Desktop Monitor own their visual chrome on the
2609
2625
  card itself. Keep the CSS3D wrapper neutral so motion CSS3D and the passive
2610
2626
  DOM overlay do not stack different selection chrome. */
@@ -2627,12 +2643,18 @@ html body .css3d-resolution-wrapper.lod-low.node-type-csv-table .csv-table td {
2627
2643
 
2628
2644
  .map-node-template-card {
2629
2645
  border: 1px solid #111827 !important;
2630
- border-radius: 8px;
2646
+ border-radius: 0;
2631
2647
  color: #10212f;
2632
2648
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
2633
2649
  box-shadow: none !important;
2634
2650
  }
2635
2651
 
2652
+ .map-node-template-card.map-node-remote-fleet {
2653
+ border: 0 !important;
2654
+ outline: none !important;
2655
+ box-shadow: none !important;
2656
+ }
2657
+
2636
2658
  .template-card__shell {
2637
2659
  display: flex;
2638
2660
  flex-direction: column;
@@ -2641,7 +2663,7 @@ html body .css3d-resolution-wrapper.lod-low.node-type-csv-table .csv-table td {
2641
2663
  gap: 12px;
2642
2664
  padding: 18px;
2643
2665
  border: 0;
2644
- border-radius: 8px;
2666
+ border-radius: 0;
2645
2667
  background: #f8fafc;
2646
2668
  overflow: hidden;
2647
2669
  }
@@ -2882,7 +2904,9 @@ html body .css3d-resolution-wrapper.lod-low.node-type-csv-table .csv-table td {
2882
2904
  .map-node-template-card.map-node-remote-fleet .template-card__shell--remote-fleet {
2883
2905
  gap: 10px;
2884
2906
  padding: 14px;
2907
+ border: 0 !important;
2885
2908
  background: #f8fafc;
2909
+ box-shadow: none !important;
2886
2910
  }
2887
2911
 
2888
2912
  .map-node-template-card.map-node-remote-fleet .remote-fleet-resize-handle {
@@ -3011,9 +3035,10 @@ html body .css3d-resolution-wrapper.lod-low.node-type-csv-table .csv-table td {
3011
3035
  flex: 1 1 auto;
3012
3036
  min-height: 0;
3013
3037
  overflow: hidden;
3014
- border: 1px solid rgba(148, 163, 184, 0.28);
3015
- border-radius: 8px;
3038
+ border: 0 !important;
3039
+ border-radius: 0;
3016
3040
  background: #ffffff;
3041
+ box-shadow: none !important;
3017
3042
  }
3018
3043
 
3019
3044
  .map-node-template-card.map-node-remote-device .template-card__shell--remote-fleet {
@@ -77,7 +77,7 @@
77
77
  });
78
78
  const CanvasPhaseSet = new Set(Object.values(CanvasPhase));
79
79
  const VIEWPORT_METRICS_POLL_INTERVAL = 480;
80
- const PASSIVE_DOM_OVERLAY_RUNTIME_ENABLED = true;
80
+ const PASSIVE_DOM_OVERLAY_RUNTIME_ENABLED = false;
81
81
  const PASSIVE_OVERLAY_ZOOM_DEFER_VISIBLE_THRESHOLD = 24;
82
82
  const PASSIVE_OVERLAY_INTERACTIVE_REFRESH_INTERVAL_MS = 48;
83
83
  const PASSIVE_OVERLAY_INTERACTIVE_DENSE_REFRESH_INTERVAL_MS = 72;
@@ -516,8 +516,11 @@
516
516
  }
517
517
 
518
518
  function hasPassiveOverlayMotionWork(module) {
519
- return PASSIVE_DOM_OVERLAY_RUNTIME_ENABLED === true ||
520
- hasPassiveOverlaySelectionSurface(module) === true;
519
+ if (PASSIVE_DOM_OVERLAY_RUNTIME_ENABLED !== true) {
520
+ return false;
521
+ }
522
+
523
+ return hasPassiveOverlaySelectionSurface(module) === true;
521
524
  }
522
525
 
523
526
  function deferPassiveOverlayForCameraMotion(module, nowMs = 0, delayMs = PASSIVE_OVERLAY_IDLE_DELAY_MS) {
@@ -676,10 +679,10 @@
676
679
  const DEFAULT_RENDER_DEBUG_FLAGS = Object.freeze({
677
680
  enableCss3d: true,
678
681
  enableCss3dTransformSync: true,
679
- enableDomOverlay: true,
680
- enablePassiveOverlayForVisibleNodes: true,
681
- enableOverlayCssZoom: true,
682
- enableSharedNodeViewOverlay: true,
682
+ enableDomOverlay: false,
683
+ enablePassiveOverlayForVisibleNodes: false,
684
+ enableOverlayCssZoom: false,
685
+ enableSharedNodeViewOverlay: false,
683
686
  preferOverlayNodeViewHost: false,
684
687
  enableVisibilityCulling: true,
685
688
  enableLodUpdate: true,
@@ -1067,6 +1070,12 @@
1067
1070
  }
1068
1071
  });
1069
1072
 
1073
+ next.enableDomOverlay = false;
1074
+ next.enablePassiveOverlayForVisibleNodes = false;
1075
+ next.enableOverlayCssZoom = false;
1076
+ next.enableSharedNodeViewOverlay = false;
1077
+ next.preferOverlayNodeViewHost = false;
1078
+
1070
1079
  return next;
1071
1080
  }
1072
1081
 
@@ -1370,16 +1379,10 @@
1370
1379
  const overlayPlacementZoomCount = Number(moduleInstance._overlayDebugPlacementZoomCount || 0);
1371
1380
  const overlayPlacementTransformCount = Number(moduleInstance._overlayDebugPlacementTransformCount || 0);
1372
1381
  const currentLodBand = String(moduleInstance.lodRenderer?._currentLodBand || '').trim().toUpperCase();
1373
- const overlayScaleMode = flags.enableOverlayCssZoom === false
1374
- ? 'transform only'
1375
- : (overlayPlacementZoomCount > 0
1376
- ? 'css zoom + transform fallback'
1377
- : 'transform only (text cards)');
1378
- const overlayCandidateMode = currentLodBand && currentLodBand !== 'NEAR'
1382
+ const overlayScaleMode = 'css3d only';
1383
+ const overlayCandidateMode = currentLodBand
1379
1384
  ? `css3d only (${currentLodBand.toLowerCase()} band)`
1380
- : (flags.enablePassiveOverlayForVisibleNodes !== false
1381
- ? 'all-visible passive'
1382
- : 'selected/editing only');
1385
+ : 'css3d only';
1383
1386
  const shouldBuildResidentDirtySnapshot =
1384
1387
  flags.enableFramePerfProbe === true ||
1385
1388
  flags.enableNodeFrameDebug === true;
@@ -3081,8 +3084,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
3081
3084
  this._overlayDirty = true;
3082
3085
  this._lastOverlayKey = '';
3083
3086
  this._lastOverlaySelectionKey = '';
3084
- this.useTextOverlayV2 = true;
3085
- this.useDomTextOverlay = true;
3087
+ this.useTextOverlayV2 = false;
3088
+ this.useDomTextOverlay = false;
3086
3089
  this.renderDebugFlags = getRenderDebugFlagsSnapshot();
3087
3090
  this._framePerfPeakProfile = createEmptyFramePerfPeakProfile();
3088
3091
 
@@ -6016,11 +6019,11 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6016
6019
  ? String(this._textOverlayV2State?.editing?.nodeId || '').trim()
6017
6020
  : String(this._editingOverlayState?.nodeId || '').trim();
6018
6021
  const hasFocusedTextOverlay = !!selectableOverlayNodeId;
6019
- const hasEditingOverlay = !!editingOverlayNodeId;
6022
+ const hasActualTextOverlay = !!selectableOverlayNodeId || !!editingOverlayNodeId;
6023
+ const hasEditingOverlay = !!editingOverlayNodeId || this.isEditingNote === true;
6020
6024
  const shouldTrackTextOverlayDirty =
6021
6025
  isPassiveDomOverlayRuntimeEnabled === true ||
6022
- hasFocusedTextOverlay === true ||
6023
- hasEditingOverlay === true;
6026
+ hasActualTextOverlay === true;
6024
6027
  const selectedOverlayNodeId = String(this.selectedNodeIdJs || '').trim();
6025
6028
  const overlaySelectionKey = `${selectedOverlayNodeId}|${selectableOverlayNodeId}|${editingOverlayNodeId}|${useTextOverlayV2 ? 'v2' : 'legacy'}`;
6026
6029
  if (overlaySelectionKey !== this._lastOverlaySelectionKey) {
@@ -43,6 +43,7 @@
43
43
  const NODE_VIEW_HOST_OVERLAY = 'overlay';
44
44
  const NODE_VIEW_HOST_HYBRID = 'hybrid';
45
45
  const NODE_VIEW_RENDERER_VERSION = 'shared-node-view-v1';
46
+ const CSS3D_ONLY_NODE_RENDERING = true;
46
47
  const CSV_TABLE_MAX_RENDER_ROWS = 500;
47
48
  const CSV_TABLE_MAX_RENDER_COLUMNS = 80;
48
49
  const REMOTE_FLEET_DISPLAY_NAME = 'Multi Desktop Monitor';
@@ -407,11 +408,31 @@
407
408
  }
408
409
  .map-node-template-card {
409
410
  border: 1px solid #111827 !important;
410
- border-radius: 8px;
411
+ border-radius: 0;
412
+ box-shadow: none !important;
413
+ }
414
+ .map-node-template-card.map-node-remote-fleet {
415
+ border: 0 !important;
416
+ outline: none !important;
417
+ box-shadow: none !important;
418
+ }
419
+ .css3d-resolution-wrapper.node-type-templatelauncher:has(> .map-node-template-card.map-node-remote-fleet) {
420
+ outline: none !important;
421
+ box-shadow: none !important;
422
+ filter: none !important;
423
+ }
424
+ .css3d-resolution-wrapper.node-type-templatelauncher.selected > .map-node-template-card.map-node-remote-fleet {
425
+ border: 2px solid var(--node-selection-edge, #2563eb) !important;
426
+ }
427
+ .map-node-template-card.map-node-remote-fleet > .template-card__shell,
428
+ .map-node-template-card.map-node-remote-fleet .template-card__remote-fleet-body {
429
+ border: 0 !important;
430
+ border-radius: 0 !important;
411
431
  box-shadow: none !important;
412
432
  }
413
433
  .map-node-template-card > .template-card__shell {
414
434
  border: 0 !important;
435
+ border-radius: 0 !important;
415
436
  }
416
437
  .csv-table-scroll {
417
438
  width: 100%;
@@ -1707,12 +1728,34 @@
1707
1728
  if (isGeneratedCssImageNode(nodeModel)) {
1708
1729
  const directOriginalUrl = isDirectCssMediaUrl(originalUrl) ? originalUrl : '';
1709
1730
  const responseFullResUrl = responseUrl && !isThumbnailCssMediaUrl(responseUrl) ? responseUrl : '';
1710
- return directOriginalUrl || responseFullResUrl || previewUrl || originalUrl;
1731
+ return directOriginalUrl || originalUrl || previewUrl || responseFullResUrl;
1711
1732
  }
1712
1733
 
1713
1734
  return previewUrl || responseUrl || originalUrl;
1714
1735
  }
1715
1736
 
1737
+ function hasRecoverableCssImageAssetReference(nodeModel) {
1738
+ const assetUrls = window.MindMapNodes?.getNodeImageAssetUrls?.(nodeModel) || null;
1739
+ if (assetUrls?.originalPath || assetUrls?.originalUrl || assetUrls?.fullResUrl) {
1740
+ return true;
1741
+ }
1742
+
1743
+ const metadata = getCssMediaMetadata(nodeModel);
1744
+ return !!(
1745
+ metadata?.OriginalPath ||
1746
+ metadata?.OriginalUrl ||
1747
+ metadata?.originalUrl
1748
+ );
1749
+ }
1750
+
1751
+ function shouldRefreshNonRefreshableCssMediaSource(nodeModel, contentTypeLower, currentSource) {
1752
+ if (contentTypeLower !== 'image' || !isNonRefreshableMediaUrl(currentSource)) {
1753
+ return false;
1754
+ }
1755
+
1756
+ return hasRecoverableCssImageAssetReference(nodeModel);
1757
+ }
1758
+
1716
1759
  function shouldPreferCssImagePreviewSource(nodeModel) {
1717
1760
  if (!nodeModel) return false;
1718
1761
  if (isAnimatedGifCssImageNode(nodeModel)) return false;
@@ -4120,7 +4163,8 @@
4120
4163
  return;
4121
4164
  }
4122
4165
 
4123
- if (isNonRefreshableMediaUrl(currentSource)) {
4166
+ if (isNonRefreshableMediaUrl(currentSource)
4167
+ && !shouldRefreshNonRefreshableCssMediaSource(nodeModel, contentTypeLower, currentSource)) {
4124
4168
  return;
4125
4169
  }
4126
4170
 
@@ -4696,6 +4740,10 @@
4696
4740
  }
4697
4741
 
4698
4742
  function supportsTextOverlay(nodeModel) {
4743
+ if (CSS3D_ONLY_NODE_RENDERING === true) {
4744
+ return false;
4745
+ }
4746
+
4699
4747
  const contentType = String(nodeModel?.contentType ?? nodeModel?.ContentType ?? '').toLowerCase();
4700
4748
  return TEXT_OVERLAY_SUPPORTED_TYPES.has(contentType);
4701
4749
  }
@@ -4717,11 +4765,19 @@
4717
4765
  }
4718
4766
 
4719
4767
  function supportsEditingOverlay(nodeModel) {
4768
+ if (CSS3D_ONLY_NODE_RENDERING === true) {
4769
+ return false;
4770
+ }
4771
+
4720
4772
  const contentType = String(nodeModel?.contentType ?? nodeModel?.ContentType ?? '').toLowerCase();
4721
4773
  return EDIT_OVERLAY_SUPPORTED_TYPES.has(contentType);
4722
4774
  }
4723
4775
 
4724
4776
  function supportsSelectionTextOverlay(nodeModel) {
4777
+ if (CSS3D_ONLY_NODE_RENDERING === true) {
4778
+ return false;
4779
+ }
4780
+
4725
4781
  const contentType = String(nodeModel?.contentType ?? nodeModel?.ContentType ?? '').toLowerCase();
4726
4782
  return TEXT_SELECTION_OVERLAY_SUPPORTED_TYPES.has(contentType);
4727
4783
  }
@@ -4732,6 +4788,10 @@
4732
4788
  }
4733
4789
 
4734
4790
  function getReadonlyTextOverlayMode(nodeEntry) {
4791
+ if (CSS3D_ONLY_NODE_RENDERING === true) {
4792
+ return 'none';
4793
+ }
4794
+
4735
4795
  if (isCss3dOnlyTemplateSurfaceNode(nodeEntry?.model)) {
4736
4796
  return 'none';
4737
4797
  }
@@ -5370,10 +5430,18 @@
5370
5430
  }
5371
5431
 
5372
5432
  function isTextOverlayV2Enabled(module) {
5433
+ if (CSS3D_ONLY_NODE_RENDERING === true) {
5434
+ return false;
5435
+ }
5436
+
5373
5437
  return module?.useTextOverlayV2 === true && !!window.MindMapTextOverlayV2;
5374
5438
  }
5375
5439
 
5376
5440
  function hasSelectableTextOverlay(module, nodeId = null) {
5441
+ if (CSS3D_ONLY_NODE_RENDERING === true) {
5442
+ return false;
5443
+ }
5444
+
5377
5445
  if (isTextOverlayV2Enabled(module) && window.MindMapTextOverlayV2?.hasSelection?.(module, nodeId) === true) {
5378
5446
  return true;
5379
5447
  }
@@ -5654,6 +5722,11 @@
5654
5722
  }
5655
5723
 
5656
5724
  function activateSelectableTextOverlay(module, nodeId) {
5725
+ if (CSS3D_ONLY_NODE_RENDERING === true) {
5726
+ clearLegacyTextOverlays(module);
5727
+ return false;
5728
+ }
5729
+
5657
5730
  if (isTextOverlayV2Enabled(module) && window.MindMapTextOverlayV2?.activateSelection?.(module, nodeId) === true) {
5658
5731
  return true;
5659
5732
  }
@@ -6491,6 +6564,10 @@
6491
6564
  }
6492
6565
 
6493
6566
  function beginNodeEditingOverlay(module, nodeEntry) {
6567
+ if (CSS3D_ONLY_NODE_RENDERING === true) {
6568
+ return false;
6569
+ }
6570
+
6494
6571
  if (isTextOverlayV2Enabled(module) && window.MindMapTextOverlayV2?.beginEditing?.(module, nodeEntry) === true) {
6495
6572
  return true;
6496
6573
  }
@@ -6563,6 +6640,13 @@
6563
6640
  }
6564
6641
 
6565
6642
  function syncEditingOverlay(module) {
6643
+ if (CSS3D_ONLY_NODE_RENDERING === true) {
6644
+ if (getActiveEditingOverlayState(module)) {
6645
+ clearEditingOverlay(module, { commit: true });
6646
+ }
6647
+ return;
6648
+ }
6649
+
6566
6650
  if (isTextOverlayV2Enabled(module)) {
6567
6651
  return;
6568
6652
  }
@@ -6590,6 +6674,10 @@
6590
6674
  }
6591
6675
 
6592
6676
  function hasEditingOverlay(module, nodeId = null) {
6677
+ if (CSS3D_ONLY_NODE_RENDERING === true) {
6678
+ return false;
6679
+ }
6680
+
6593
6681
  if (isTextOverlayV2Enabled(module) && window.MindMapTextOverlayV2?.hasEditing?.(module, nodeId) === true) {
6594
6682
  return true;
6595
6683
  }
@@ -6745,6 +6833,14 @@
6745
6833
  }
6746
6834
 
6747
6835
  function syncTextOverlays(module) {
6836
+ if (CSS3D_ONLY_NODE_RENDERING === true) {
6837
+ clearLegacyTextOverlays(module);
6838
+ if (getActiveEditingOverlayState(module)) {
6839
+ clearEditingOverlay(module, { commit: true });
6840
+ }
6841
+ return;
6842
+ }
6843
+
6748
6844
  if (isTextOverlayV2Enabled(module)) {
6749
6845
  clearLegacyTextOverlays(module);
6750
6846
  return;
@@ -19257,7 +19353,9 @@
19257
19353
  overflow: hidden;
19258
19354
  border-radius: 0;
19259
19355
  background: ${hasPreviewSource ? 'linear-gradient(135deg, #0f172a 0%, #1e293b 100%)' : '#ffffff'};
19260
- border: 1px solid rgba(148, 163, 184, ${isDetail ? '0.34' : '0.24'});
19356
+ border: 0;
19357
+ outline: 0;
19358
+ outline-offset: 0;
19261
19359
  box-shadow: none;
19262
19360
  `;
19263
19361
  ensureRemoteFleetFrameCanvas(preview);
@@ -19442,7 +19540,9 @@
19442
19540
  `;
19443
19541
  const preview = createDevicePreview(device, 'tile');
19444
19542
  if (isSelected) {
19445
- preview.style.borderColor = 'rgba(37, 99, 235, 0.86)';
19543
+ preview.style.border = '2px solid rgba(37, 99, 235, 0.86)';
19544
+ preview.style.outline = '0';
19545
+ preview.style.outlineOffset = '0';
19446
19546
  preview.style.boxShadow = 'none';
19447
19547
  }
19448
19548
  card.appendChild(preview);
@@ -19871,11 +19971,11 @@
19871
19971
 
19872
19972
  const preview = card.querySelector?.('[data-remote-fleet-device-preview]') || card.firstElementChild;
19873
19973
  if (preview?.style) {
19874
- preview.style.borderColor = isSelected
19875
- ? 'rgba(37, 99, 235, 0.86)'
19876
- : 'rgba(148, 163, 184, 0.24)';
19877
- preview.style.outline = isSelected ? '2px solid rgba(37, 99, 235, 0.18)' : '0';
19878
- preview.style.outlineOffset = isSelected ? '-2px' : '0';
19974
+ preview.style.border = isSelected
19975
+ ? '2px solid rgba(37, 99, 235, 0.86)'
19976
+ : '0';
19977
+ preview.style.outline = '0';
19978
+ preview.style.outlineOffset = '0';
19879
19979
  preview.style.boxShadow = 'none';
19880
19980
  }
19881
19981
  };
@@ -23326,6 +23426,10 @@
23326
23426
  }
23327
23427
 
23328
23428
  function getNodeViewPrimaryHost(module = _module) {
23429
+ if (CSS3D_ONLY_NODE_RENDERING === true) {
23430
+ return NODE_VIEW_HOST_CSS3D;
23431
+ }
23432
+
23329
23433
  const flags = module?.renderDebugFlags || {};
23330
23434
  const explicit = normalizeNodeViewHost(flags.nodeViewPrimaryHost, '');
23331
23435
  if (explicit) {
@@ -23338,7 +23442,9 @@
23338
23442
  }
23339
23443
 
23340
23444
  function getNodeViewHostPolicy(module, nodeModel, options = {}) {
23341
- const requestedHost = normalizeNodeViewHost(options.hostKind, NODE_VIEW_HOST_CSS3D);
23445
+ const requestedHost = CSS3D_ONLY_NODE_RENDERING === true
23446
+ ? NODE_VIEW_HOST_CSS3D
23447
+ : normalizeNodeViewHost(options.hostKind, NODE_VIEW_HOST_CSS3D);
23342
23448
  const primaryHost = getNodeViewPrimaryHost(module);
23343
23449
  const info = getNodeViewContentInfo(nodeModel);
23344
23450
  const overlayPrimary = primaryHost === NODE_VIEW_HOST_OVERLAY;
@@ -23352,7 +23458,8 @@
23352
23458
  isCss3dPrimary: primaryHost === NODE_VIEW_HOST_CSS3D || hybridPrimary,
23353
23459
  isOverlayPrimary: overlayPrimary,
23354
23460
  isHybridPrimary: hybridPrimary,
23355
- useSharedOverlay: module?.renderDebugFlags?.enableSharedNodeViewOverlay !== false,
23461
+ useSharedOverlay: CSS3D_ONLY_NODE_RENDERING !== true &&
23462
+ module?.renderDebugFlags?.enableSharedNodeViewOverlay !== false,
23356
23463
  supportsNodeView: shouldCreateDynamicNodeView(nodeModel, info) || !shouldBypassNodeViewTemplate(nodeModel, info),
23357
23464
  contentTypeLower: info.contentTypeLower,
23358
23465
  visualContentTypeLower: info.visualContentTypeLower
@@ -24614,6 +24721,7 @@
24614
24721
  syncCss3dEmbedInteractivity: syncCss3dEmbedInteractivity,
24615
24722
  getMountedEmbedState: getMountedEmbedState,
24616
24723
  hasMountedEmbedIframe: hasMountedEmbedIframe,
24724
+ isCss3dOnlyNodeRendering: () => CSS3D_ONLY_NODE_RENDERING === true,
24617
24725
  shouldConsumeEmbedPointerEvent: shouldConsumeEmbedPointerEvent,
24618
24726
  syncCss3dContent: syncCss3dContent,
24619
24727
  syncCss3dVideoLodMediaSource: syncCss3dVideoLodMediaSource,
@@ -512,6 +512,13 @@ window.MindMapInteractions = (function () {
512
512
  }
513
513
  }
514
514
 
515
+ if (window.MindMapCss3DManager?.isCss3dOnlyNodeRendering?.() === true) {
516
+ module._overlayDirty = false;
517
+ module._deferPassiveOverlayRefresh = false;
518
+ module._passiveOverlayResumeAt = 0;
519
+ return;
520
+ }
521
+
515
522
  if (module.useTextOverlayV2 === true && isDomOverlayEnabled && window.MindMapTextOverlayV2?.updateFrame) {
516
523
  window.MindMapTextOverlayV2.updateFrame(module);
517
524
  } else if (module.useTextOverlayV2 !== true && window.MindMapCss3DManager?.syncTextOverlays) {
@@ -521,6 +528,10 @@ window.MindMapInteractions = (function () {
521
528
  }
522
529
 
523
530
  function syncOverlayNodePlacementDuringDrag(module, nodeId) {
531
+ if (window.MindMapCss3DManager?.isCss3dOnlyNodeRendering?.() === true) {
532
+ return;
533
+ }
534
+
524
535
  if (!module || !nodeId || module.useTextOverlayV2 !== true) {
525
536
  return;
526
537
  }
@@ -533,6 +544,15 @@ window.MindMapInteractions = (function () {
533
544
  }
534
545
 
535
546
  function setPassiveOverlaySuppressedDuringDrag(module, suppressed) {
547
+ if (window.MindMapCss3DManager?.isCss3dOnlyNodeRendering?.() === true) {
548
+ if (module) {
549
+ module._deferPassiveOverlayRefresh = false;
550
+ module._passiveOverlayResumeAt = 0;
551
+ module._suppressPassiveDomOverlayDuringZoom = false;
552
+ }
553
+ return;
554
+ }
555
+
536
556
  if (!module || module.useTextOverlayV2 !== true || !window.MindMapTextOverlayV2?.setPassiveOverlaySuppressed) {
537
557
  return;
538
558
  }
@@ -555,6 +575,14 @@ window.MindMapInteractions = (function () {
555
575
  module._overlayDirty = true;
556
576
  module._forceUpdateFrames = Math.max(Number(module._forceUpdateFrames || 0), forceFrames);
557
577
 
578
+ if (window.MindMapCss3DManager?.isCss3dOnlyNodeRendering?.() === true) {
579
+ module._deferPassiveOverlayRefresh = false;
580
+ module._cameraNavigationOverlayInputTime = 0;
581
+ module._passiveOverlayResumeAt = 0;
582
+ module._overlayDirty = false;
583
+ return;
584
+ }
585
+
558
586
  const isMotionInteraction =
559
587
  module.isZooming === true ||
560
588
  module.isPanning === true ||
@@ -832,7 +860,9 @@ window.MindMapInteractions = (function () {
832
860
  if (isReadOnlyTextSelectionNode(nodeEntry)) {
833
861
  if (isLink) return;
834
862
 
835
- const preferCss3dNativeSelection = module?.useTextOverlayV2 === true;
863
+ const preferCss3dNativeSelection =
864
+ window.MindMapCss3DManager?.isCss3dOnlyNodeRendering?.() === true ||
865
+ module?.useTextOverlayV2 === true;
836
866
  if (!preferCss3dNativeSelection &&
837
867
  (contentType === 'markdown' || contentType === 'text') &&
838
868
  window.MindMapCss3DManager?.activateSelectableTextOverlay) {
@@ -7257,10 +7287,7 @@ window.MindMapInteractions = (function () {
7257
7287
  );
7258
7288
  const isMemoDom = !!cssEl?.querySelector?.('.map-node-memo, .map-node-memo__shell, .map-node-memo__body');
7259
7289
  const isMemoNode = contentType === 'memo' || isMemoDom || isAgentCommandDom;
7260
- const preferDomEditingOverlay = contentType === 'memo'
7261
- || contentType === 'note'
7262
- || isMemoDom
7263
- || isAgentCommandDom;
7290
+ const preferDomEditingOverlay = false;
7264
7291
 
7265
7292
  // ▼▼▼ [FIX] 카메라 행렬 강제 업데이트 (CSS3D와 WebGL 동기화) ▼▼▼
7266
7293
  // 클릭 시 카메라의 이전 프레임 행렬로 렌더링되는 것을 방지
@@ -1479,10 +1479,13 @@
1479
1479
  }
1480
1480
 
1481
1481
  const metadata = getNodeMetadata(nodeModel) || {};
1482
- const provider = String(metadata.ImageGenerationProvider || metadata.imageGenerationProvider || '').trim();
1483
- const operation = String(metadata.RequestedMediaOperation || metadata.requestedMediaOperation || '').trim().toLowerCase();
1482
+ const provider = getMetadataValueCaseInsensitive(metadata, 'ImageGenerationProvider', 'imageGenerationProvider');
1483
+ const operation = getMetadataValueCaseInsensitive(metadata, 'RequestedMediaOperation', 'requestedMediaOperation').toLowerCase();
1484
1484
  return !!provider ||
1485
- !!(metadata.GeneratedImageSourceWidth || metadata.generatedImageSourceWidth) ||
1485
+ !!getMetadataValueCaseInsensitive(metadata, 'GeneratedImageSourceWidth', 'generatedImageSourceWidth') ||
1486
+ !!getMetadataValueCaseInsensitive(metadata, 'GeneratedImageSourceHeight', 'generatedImageSourceHeight') ||
1487
+ !!getMetadataValueCaseInsensitive(metadata, 'CodexImageQuality', 'codexImageQuality') ||
1488
+ !!getMetadataValueCaseInsensitive(metadata, 'ImageRouterRevisedPrompt', 'imageRouterRevisedPrompt') ||
1486
1489
  operation === 'text2image' ||
1487
1490
  operation === 'image2image' ||
1488
1491
  operation === 'inpaint';
@@ -1702,14 +1705,17 @@
1702
1705
  const missingFullResUrl = canUseAsFullResImageUrl(missingAssetUrl) ? missingAssetUrl : '';
1703
1706
  const mediaPreviewUrl = isAnimatedGif ? '' : (thumbnailUrl || snapshotUrl || previewImageUrl);
1704
1707
  const responsePreviewUrl = isImageContent && !isAnimatedGif ? responseUrl : '';
1708
+ const generatedFullResUrl = originalUrl || originalPath || responseFullResUrl || missingFullResUrl;
1705
1709
  const fullResUrl = isImageContent
1706
1710
  ? (isGeneratedImageNode
1707
- ? (originalUrl || responseFullResUrl || originalPath || missingFullResUrl)
1711
+ ? generatedFullResUrl
1708
1712
  : (originalUrl || originalPath || responseFullResUrl || missingFullResUrl))
1709
1713
  : (originalUrl || originalPath || snapshotUrl || previewImageUrl || thumbnailUrl || missingFullResUrl);
1710
1714
  const previewUrl = isAnimatedGif
1711
1715
  ? (fullResUrl || responseUrl || originalPath || originalUrl || missingAssetUrl)
1712
- : (mediaPreviewUrl || responsePreviewUrl || originalPath || originalUrl || missingAssetUrl);
1716
+ : (isGeneratedImageNode
1717
+ ? (mediaPreviewUrl || originalUrl || originalPath || responsePreviewUrl || missingAssetUrl)
1718
+ : (mediaPreviewUrl || responsePreviewUrl || originalPath || originalUrl || missingAssetUrl));
1713
1719
 
1714
1720
  return {
1715
1721
  responseUrl,
@@ -2,7 +2,7 @@
2
2
  'use strict';
3
3
 
4
4
  const DEBUG = false;
5
- const PASSIVE_DOM_OVERLAY_ENABLED = true;
5
+ const PASSIVE_DOM_OVERLAY_ENABLED = false;
6
6
  const DEFAULT_OVERLAY_SCROLLABLE_SELECTOR = '.node-response, .note-content, .markdown-body, .prose, .note-textarea, .code-body, .code-content, .pdf-content, .text-content, .file-content, .map-node-memo__body, .map-node-memo__body-view, .map-node-memo__agent-plan-body, .map-node-memo__agent-console-body, pre, code';
7
7
  const PASSIVE_OVERLAY_NEAR_EXIT_GRACE_MS = 220;
8
8
  const PASSIVE_OVERLAY_CANDIDATE_GRACE_MS = 160;
@@ -4174,7 +4174,10 @@
4174
4174
  }
4175
4175
  }
4176
4176
  hideCard(card);
4177
+ card.replaceChildren?.();
4178
+ card.remove?.();
4177
4179
  });
4180
+ state.cards.clear();
4178
4181
 
4179
4182
  clearLayerTransform(state.layer);
4180
4183
  if (state.layer?.style) {
@@ -4182,6 +4185,8 @@
4182
4185
  }
4183
4186
 
4184
4187
  state.layoutSnapshot = null;
4188
+ state.selectionNodeId = '';
4189
+ state.editing = null;
4185
4190
  state.lastPassiveRenderEnabled = null;
4186
4191
  state.lastViewKey = '';
4187
4192
  state.lastVisibilityVersion = -1;
@@ -4695,6 +4700,12 @@
4695
4700
  }
4696
4701
 
4697
4702
  const state = ensureState(module);
4703
+ if (PASSIVE_DOM_OVERLAY_ENABLED !== true) {
4704
+ cleanupDisabledOverlay(module, state);
4705
+ log('disabled: css3d-only rendering is active');
4706
+ return;
4707
+ }
4708
+
4698
4709
  ensureLayer(module);
4699
4710
  window.MindMapCss3DManager?.injectMarkdownStyles?.();
4700
4711
  if (state) {
@@ -4706,6 +4717,55 @@
4706
4717
  log('initialized');
4707
4718
  }
4708
4719
 
4720
+ if (PASSIVE_DOM_OVERLAY_ENABLED !== true) {
4721
+ const cleanupDisabledRuntime = (module) => {
4722
+ if (!module) {
4723
+ return false;
4724
+ }
4725
+
4726
+ cleanupDisabledOverlay(module, ensureState(module));
4727
+ return false;
4728
+ };
4729
+
4730
+ window.MindMapTextOverlayV2 = {
4731
+ init: cleanupDisabledRuntime,
4732
+ updateFrame: cleanupDisabledRuntime,
4733
+ syncPassiveViewTransform: () => false,
4734
+ setPassiveOverlaySuppressed: (module) => {
4735
+ if (module) {
4736
+ module._suppressPassiveDomOverlayDuringZoom = false;
4737
+ module._deferPassiveOverlayRefresh = false;
4738
+ module._passiveOverlayResumeAt = 0;
4739
+ }
4740
+ return false;
4741
+ },
4742
+ setMotionHint: () => false,
4743
+ isPassiveDomOverlayEnabled: () => false,
4744
+ invalidateNode: () => { },
4745
+ invalidateView: () => { },
4746
+ updateNodePlacement: () => false,
4747
+ shouldRenderPassiveDomOverlays: () => false,
4748
+ shouldSkipCss3dRender: () => false,
4749
+ activateSelection: () => false,
4750
+ clearSelection: cleanupDisabledRuntime,
4751
+ beginEditing: () => false,
4752
+ clearEditing: cleanupDisabledRuntime,
4753
+ hasSelection: () => false,
4754
+ hasEditing: () => false,
4755
+ getDebugSnapshot: () => ({
4756
+ available: false,
4757
+ reason: 'passive DOM overlay disabled; CSS3D-only rendering active'
4758
+ }),
4759
+ purgeMediaOverlayCards: cleanupDisabledRuntime,
4760
+ suspendSource: () => false,
4761
+ resumeSource: resumeSource,
4762
+ hasLiveInteractiveOverlay: () => false,
4763
+ syncReadonlySourceScroll: () => false,
4764
+ invalidateReadonlySource: () => false
4765
+ };
4766
+ return;
4767
+ }
4768
+
4709
4769
  window.MindMapTextOverlayV2 = {
4710
4770
  init: init,
4711
4771
  updateFrame: updateFrame,