@mindexec/cli 0.2.197 → 0.2.198

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.197",
3
+ "version": "0.2.198",
4
4
  "description": "MindExec local runtime and bridge CLI",
5
5
  "main": "server.js",
6
6
  "type": "module",
@@ -172,6 +172,11 @@
172
172
  }
173
173
 
174
174
  function blocksPassiveOverlayStack(entry) {
175
+ if (isCss3dOnlyOverlayEntry(entry)) {
176
+ const hasVisibleCss = !!entry?.cssObject && entry.cssObject.visible !== false;
177
+ return hasVisibleCss;
178
+ }
179
+
175
180
  const type = getContentType(entry);
176
181
  const isVisualStackBlocker = type === 'image'
177
182
  || type === 'video'
@@ -606,7 +611,9 @@
606
611
  }
607
612
 
608
613
  const candidateRank = Number(candidate.stackRank);
609
- if (Number.isFinite(candidateRank) && candidateRank > blockerRank) {
614
+ if (currentItem.forceSuppressOverlappingPassive !== true &&
615
+ Number.isFinite(candidateRank) &&
616
+ candidateRank > blockerRank) {
610
617
  return;
611
618
  }
612
619
 
@@ -778,6 +785,41 @@
778
785
  };
779
786
  }
780
787
 
788
+ function isPassiveOverlayBlockedByCss3dOnlySurface(module, entry) {
789
+ if (!module || !entry || isCss3dOnlyOverlayEntry(entry)) {
790
+ return false;
791
+ }
792
+
793
+ const candidateRect = getPassiveOverlayScreenRect(module, entry);
794
+ if (!candidateRect) {
795
+ return false;
796
+ }
797
+
798
+ const candidateId = getNodeId(entry);
799
+ let blocked = false;
800
+ module.nodeObjectsById?.forEach?.((otherEntry, otherNodeId) => {
801
+ if (blocked || !otherEntry || normalizeId(otherNodeId) === candidateId) {
802
+ return;
803
+ }
804
+
805
+ if (!isCss3dOnlyOverlayEntry(otherEntry)) {
806
+ return;
807
+ }
808
+
809
+ const hasVisibleCss = !!otherEntry.cssObject && otherEntry.cssObject.visible !== false;
810
+ if (!hasVisibleCss) {
811
+ return;
812
+ }
813
+
814
+ const blockerRect = getPassiveOverlayScreenRect(module, otherEntry);
815
+ if (doPassiveOverlayRectsOverlap(candidateRect, blockerRect)) {
816
+ blocked = true;
817
+ }
818
+ });
819
+
820
+ return blocked;
821
+ }
822
+
781
823
  function getPassiveOverlayCardLimit(module, candidateCount) {
782
824
  if (!(candidateCount > 0)) {
783
825
  return 0;
@@ -841,7 +883,8 @@
841
883
  nodeId: normalizedId,
842
884
  entry,
843
885
  sourceIndex: nextSourceIndex,
844
- renderPassiveOverlay: false
886
+ renderPassiveOverlay: false,
887
+ forceSuppressOverlappingPassive: isCss3dOnlyOverlayEntry(entry)
845
888
  });
846
889
  blockerCount += 1;
847
890
  }
@@ -4099,6 +4142,23 @@
4099
4142
  return;
4100
4143
  }
4101
4144
 
4145
+ if (isPassiveOverlayBlockedByCss3dOnlySurface(module, entry)) {
4146
+ if (entry) {
4147
+ resumeSource(entry);
4148
+ }
4149
+ if (existingCard) {
4150
+ removeCard(state, selectionCardKey(nodeId));
4151
+ }
4152
+ state.passiveCandidateIds?.delete?.(nodeId);
4153
+ if (interactive) {
4154
+ state.selectionNodeId = '';
4155
+ state.dirtySelection = true;
4156
+ module._overlayDirty = true;
4157
+ module._lastOverlayKey = '';
4158
+ }
4159
+ return;
4160
+ }
4161
+
4102
4162
  const isSelectedPassiveNode = !interactive && selectedNodeId === nodeId;
4103
4163
  const keepPassiveCard = isSelectedPassiveNode && shouldKeepPassiveCardWhenSelected(entry);
4104
4164
  if (isSelectedPassiveNode) {
@@ -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=20260618-node-run-state-v614-a" />
11
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260618-node-run-state-v614-a" />
10
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260618-css3d-overlap-v615-x1" />
11
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260618-css3d-overlap-v615-x1" />
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 = '20260618-node-run-state-v614-a';
582
+ const scriptVersion = '20260618-css3d-overlap-v615-x1';
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": "pXPOq5hH",
2
+ "version": "rCbraWz+",
3
3
  "assets": [
4
4
  {
5
5
  "hash": "sha256-+CSYMcqLNTsq3VnH11jgYyOCCdxvHzL74CBmo4sCmMU=",
@@ -154,7 +154,7 @@
154
154
  "url": "_content/MindExecution.Shared/js/mind-map-text-lod-system.js"
155
155
  },
156
156
  {
157
- "hash": "sha256-rx/cVHultNvnlFu51ADy5JyKWO1kUkEezh5sSpvKOFY=",
157
+ "hash": "sha256-cBWMT7u9vUZ85762G4W5DNQvMpbE8QPoY3LuWMnYz8w=",
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-J6zw+ivDTI8JZdnAcoasgHIH5XctMVfe9Wg4m6v985o=",
837
+ "hash": "sha256-arXjHuMtmw6cPpsHdjAhJ35+a1wkKo5C3gdnQsm4xGw=",
838
838
  "url": "index.html"
839
839
  },
840
840
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: pXPOq5hH */
1
+ /* Manifest version: rCbraWz+ */
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