@mindexec/cli 0.2.100 → 0.2.101

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.100",
3
+ "version": "0.2.101",
4
4
  "description": "MindExec local runtime and bridge CLI",
5
5
  "main": "server.js",
6
6
  "type": "module",
@@ -198,7 +198,7 @@
198
198
  if (!isNativeSelectFocusedInside(state.rootElement)) {
199
199
  state.nativeSelectInteractionActive = false;
200
200
  }
201
- }, 0);
201
+ }, 500);
202
202
  }
203
203
 
204
204
  function shouldIgnoreDocumentClickForNativeSelect(state) {
@@ -246,6 +246,35 @@
246
246
  clientY >= rect.top &&
247
247
  clientY <= rect.bottom;
248
248
  }
249
+
250
+ function isSurfaceOwnedPointerEvent(state, rootElement, event) {
251
+ if (!state || !event) {
252
+ return false;
253
+ }
254
+
255
+ return isEventInsideRoot(rootElement, event) ||
256
+ isPointerWithinElementBounds(rootElement, event) ||
257
+ isEventInsideIgnoredSelector(state.options?.ignoreSelector, event);
258
+ }
259
+
260
+ function rememberSurfacePointerDown(state, event) {
261
+ if (!state || !event) {
262
+ return;
263
+ }
264
+
265
+ const currentRootElement = resolveSurfaceRootElement(state.rootElement, state.options);
266
+ const isInsideSurface = isSurfaceOwnedPointerEvent(state, currentRootElement, event);
267
+ state.lastPointerDownInsideSurface = isInsideSurface;
268
+ state.lastPointerDownAt = getInteractionTime();
269
+
270
+ if (isInsideSurface) {
271
+ state.suppressNextDocumentClick = true;
272
+ }
273
+
274
+ if (isNativeSelectEvent(event)) {
275
+ markNativeSelectInteraction(state);
276
+ }
277
+ }
249
278
 
250
279
  function getUploadDropPosition(viewport) {
251
280
  const fallbackRect = viewport.getBoundingClientRect();
@@ -468,6 +497,10 @@
468
497
  document.removeEventListener('click', state.documentClickHandler, false);
469
498
  }
470
499
 
500
+ if (state.documentPointerDownHandler) {
501
+ document.removeEventListener('pointerdown', state.documentPointerDownHandler, true);
502
+ }
503
+
471
504
  if (state.helper) {
472
505
  surfaceOutsideClickCloseStatesByHelper.delete(state.helper);
473
506
  }
@@ -494,10 +527,13 @@
494
527
  suppressNextDocumentClick: false,
495
528
  nativeSelectInteractionActive: false,
496
529
  nativeSelectInteractionAt: 0,
530
+ lastPointerDownInsideSurface: false,
531
+ lastPointerDownAt: 0,
497
532
  rootPointerDownHandler: null,
498
533
  rootClickHandler: null,
499
534
  rootChangeHandler: null,
500
535
  rootFocusOutHandler: null,
536
+ documentPointerDownHandler: null,
501
537
  documentClickHandler: null
502
538
  };
503
539
 
@@ -526,6 +562,10 @@
526
562
  scheduleNativeSelectInteractionClear(state);
527
563
  };
528
564
 
565
+ state.documentPointerDownHandler = (event) => {
566
+ rememberSurfacePointerDown(state, event);
567
+ };
568
+
529
569
  state.documentClickHandler = (event) => {
530
570
  if (typeof event.button === 'number' && event.button !== 0) {
531
571
  return;
@@ -555,6 +595,10 @@
555
595
  return;
556
596
  }
557
597
 
598
+ if (state.lastPointerDownInsideSurface === true && getInteractionTime() - state.lastPointerDownAt < 1000) {
599
+ return;
600
+ }
601
+
558
602
  if (isEventInsideRoot(currentRootElement, event)) {
559
603
  return;
560
604
  }
@@ -575,6 +619,7 @@
575
619
  state.rootElement.addEventListener('click', state.rootClickHandler, true);
576
620
  state.rootElement.addEventListener('change', state.rootChangeHandler, true);
577
621
  state.rootElement.addEventListener('focusout', state.rootFocusOutHandler, true);
622
+ document.addEventListener('pointerdown', state.documentPointerDownHandler, true);
578
623
  document.addEventListener('click', state.documentClickHandler, false);
579
624
 
580
625
  surfaceOutsideClickCloseStatesByHelper.set(helper, state);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "mainAssemblyName": "MindExecution.Web",
3
3
  "resources": {
4
- "hash": "sha256-we9qenVtePc2CABTfoN+/D96wdPuqIl4CgKuk3znAUA=",
4
+ "hash": "sha256-O56zjZxMQ+5iNAfOtWs8fbscWSt6EeGUYf66mN+CfeU=",
5
5
  "fingerprinting": {
6
6
  "Google.Protobuf.9h59ukbel7.dll": "Google.Protobuf.dll",
7
7
  "Markdig.d1j7v41cl1.dll": "Markdig.dll",
@@ -131,7 +131,7 @@
131
131
  "MindExecution.Plugins.Directory.u6p6pxpwxp.dll": "MindExecution.Plugins.Directory.dll",
132
132
  "MindExecution.Plugins.PlanMaster.0w4vr40lnz.dll": "MindExecution.Plugins.PlanMaster.dll",
133
133
  "MindExecution.Plugins.YouTube.sdl5n9uv68.dll": "MindExecution.Plugins.YouTube.dll",
134
- "MindExecution.Shared.fprczldv6z.dll": "MindExecution.Shared.dll",
134
+ "MindExecution.Shared.6us6j8zcea.dll": "MindExecution.Shared.dll",
135
135
  "MindExecution.Web.xhlvm1d8ex.dll": "MindExecution.Web.dll",
136
136
  "dotnet.js": "dotnet.js",
137
137
  "dotnet.native.qc8g39g30v.js": "dotnet.native.js",
@@ -282,7 +282,7 @@
282
282
  "MindExecution.Kernel.7k773jan4j.dll": "sha256-B5H6hzB6g8sWLqXUoXifv8CbLqVt7g1lLkkinTBKF8E=",
283
283
  "MindExecution.Plugins.Concept.w4znwcrl6x.dll": "sha256-oNGAmbTjkFdVfZeYbc4jYWtyQa3c8Tle5LIXoFye4yo=",
284
284
  "MindExecution.Plugins.PlanMaster.0w4vr40lnz.dll": "sha256-gPWCEzDE7cJLOFTJOhja3JXJzkHFWd4dzfRdsdTxwps=",
285
- "MindExecution.Shared.fprczldv6z.dll": "sha256-veGmVlpQw2b1zDaUWReHRSLbiZ2IloG79uo1GLlduEo=",
285
+ "MindExecution.Shared.6us6j8zcea.dll": "sha256-guVuBtyzsP6SsCtNUfA0tstOgfKPNycx1cgtuoL206Q=",
286
286
  "MindExecution.Web.xhlvm1d8ex.dll": "sha256-azcD8wLJIxuNSplzTVvh2ndLwdcu20xz1t8Jh23Dr7Q="
287
287
  },
288
288
  "lazyAssembly": {
@@ -7,8 +7,8 @@
7
7
  <title>MindExec | Run your ideas as AI task graphs</title>
8
8
  <meta name="description" content="MindExec is an AI execution canvas for solo builders, researchers, developers, and creators. Start with free browser tools, then move serious work into saved MindCanvas projects." />
9
9
  <base href="/" />
10
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260616-mdm-screen-wall-v560" />
11
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260616-mdm-screen-wall-v560" />
10
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260616-settings-stable-v561" />
11
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260616-settings-stable-v561" />
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 = '20260616-mdm-screen-wall-v560';
582
+ const scriptVersion = '20260616-settings-stable-v561';
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": "i4nijHuW",
2
+ "version": "4FFMY3D0",
3
3
  "assets": [
4
4
  {
5
5
  "hash": "sha256-+CSYMcqLNTsq3VnH11jgYyOCCdxvHzL74CBmo4sCmMU=",
@@ -170,7 +170,7 @@
170
170
  "url": "_content/MindExecution.Shared/js/mind-map-visibility-worker.js"
171
171
  },
172
172
  {
173
- "hash": "sha256-icukeXd/DhA/7V4F4NOJP9jiQfzjjjosaH7PK2ymqAg=",
173
+ "hash": "sha256-XrXV7l2M7v2rA3bI7rk6Wwd5J8Qaqllr0UCgmhrstpo=",
174
174
  "url": "_content/MindExecution.Shared/js/mindmap-toolbar.js"
175
175
  },
176
176
  {
@@ -442,8 +442,8 @@
442
442
  "url": "_framework/MindExecution.Plugins.YouTube.sdl5n9uv68.dll"
443
443
  },
444
444
  {
445
- "hash": "sha256-veGmVlpQw2b1zDaUWReHRSLbiZ2IloG79uo1GLlduEo=",
446
- "url": "_framework/MindExecution.Shared.fprczldv6z.dll"
445
+ "hash": "sha256-guVuBtyzsP6SsCtNUfA0tstOgfKPNycx1cgtuoL206Q=",
446
+ "url": "_framework/MindExecution.Shared.6us6j8zcea.dll"
447
447
  },
448
448
  {
449
449
  "hash": "sha256-azcD8wLJIxuNSplzTVvh2ndLwdcu20xz1t8Jh23Dr7Q=",
@@ -770,7 +770,7 @@
770
770
  "url": "_framework/Websocket.Client.vapounvmnl.dll"
771
771
  },
772
772
  {
773
- "hash": "sha256-vjnwzCMMAs+8it6vEUPeOD7pI/ekFwMr484KaDdpugE=",
773
+ "hash": "sha256-otJjpIYsVvUHEgoeo6sg1eNW43aM4CP9H1meWzXWQWA=",
774
774
  "url": "_framework/blazor.boot.json"
775
775
  },
776
776
  {
@@ -834,7 +834,7 @@
834
834
  "url": "image-manifest.json"
835
835
  },
836
836
  {
837
- "hash": "sha256-sZOOfmQyxo9FNFTY9d3r4uYgRhh9Z2b5ve3569JDamU=",
837
+ "hash": "sha256-lI1tEHVVoywntPHXryYZLXNjfn1/QsMbGnAZcu7zHWg=",
838
838
  "url": "index.html"
839
839
  },
840
840
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: i4nijHuW */
1
+ /* Manifest version: 4FFMY3D0 */
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