@mindexec/cli 0.2.104 → 0.2.106
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 +8 -5
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-manager.js +15 -1
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-text-overlay-v2.js +146 -12
- package/wwwroot/index.html +3 -3
- package/wwwroot/service-worker-assets.js +5 -5
- 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 = '
|
|
8
|
+
const MINDMAP_CORE_BUILD_ID = '20260616-live-csv-overlay-v566';
|
|
9
9
|
const CanvasPhase = Object.freeze({
|
|
10
10
|
Booting: 'booting',
|
|
11
11
|
BoardFileLoading: 'board-file-loading',
|
|
@@ -5037,6 +5037,9 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
5037
5037
|
const shouldRenderPassiveDomTextOverlay =
|
|
5038
5038
|
useTextOverlayV2 &&
|
|
5039
5039
|
window.MindMapTextOverlayV2?.shouldRenderPassiveDomOverlays?.(this) === true;
|
|
5040
|
+
const hasLiveInteractiveDomOverlay =
|
|
5041
|
+
useTextOverlayV2 &&
|
|
5042
|
+
window.MindMapTextOverlayV2?.hasLiveInteractiveOverlay?.(this) === true;
|
|
5040
5043
|
const overlayV2State = useTextOverlayV2 ? (this._textOverlayV2State || null) : null;
|
|
5041
5044
|
const hasOverlayV2DirtyState = !!(
|
|
5042
5045
|
overlayV2State && (
|
|
@@ -5097,7 +5100,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
5097
5100
|
this.isDraggingMultipleNodes === true ||
|
|
5098
5101
|
isCameraMoving ||
|
|
5099
5102
|
this.isResizing === true) &&
|
|
5100
|
-
!isInLodMode &&
|
|
5103
|
+
(!isInLodMode || hasLiveInteractiveDomOverlay) &&
|
|
5101
5104
|
!hasEditingOverlay &&
|
|
5102
5105
|
!this.isWindowResizing;
|
|
5103
5106
|
if ((this._suppressPassiveDomOverlayDuringZoom === true) !== shouldSuppressPassiveOverlayDuringCameraMotion) {
|
|
@@ -5149,7 +5152,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
5149
5152
|
const shouldRefreshPassiveDomTextOverlay =
|
|
5150
5153
|
shouldRenderPassiveDomTextOverlay &&
|
|
5151
5154
|
!isPassiveOverlaySuppressed &&
|
|
5152
|
-
!isInLodMode &&
|
|
5155
|
+
(!isInLodMode || hasLiveInteractiveDomOverlay) &&
|
|
5153
5156
|
shouldUpdateCss3d &&
|
|
5154
5157
|
!shouldUsePassiveOverlayCameraFastPath;
|
|
5155
5158
|
const shouldUsePassiveOverlayMotionHint =
|
|
@@ -5349,7 +5352,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
5349
5352
|
shouldFallbackToFullPassiveOverlayRefresh &&
|
|
5350
5353
|
shouldRenderPassiveDomTextOverlay &&
|
|
5351
5354
|
!hasOverlayFocus &&
|
|
5352
|
-
!isInLodMode &&
|
|
5355
|
+
(!isInLodMode || hasLiveInteractiveDomOverlay) &&
|
|
5353
5356
|
(isInteractiveFrame || this.isPanning === true || this.isZooming === true || visibleOverlayCount > 80);
|
|
5354
5357
|
if (useTextOverlayV2 && isPassiveOverlaySuppressed) {
|
|
5355
5358
|
this._usedPassiveOverlayCameraFastPathLastFrame = false;
|
|
@@ -5367,7 +5370,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
5367
5370
|
// full overlay layout update instead of waiting for the
|
|
5368
5371
|
// next deferred refresh window.
|
|
5369
5372
|
window.MindMapTextOverlayV2.updateFrame(this);
|
|
5370
|
-
if (shouldRenderPassiveDomTextOverlay && !hasOverlayFocus && !isInLodMode) {
|
|
5373
|
+
if (shouldRenderPassiveDomTextOverlay && !hasOverlayFocus && (!isInLodMode || hasLiveInteractiveDomOverlay)) {
|
|
5371
5374
|
this._lastPassiveOverlayFullRefreshAt = frameStart;
|
|
5372
5375
|
this._overlayDebugRefreshAgeMs = 0;
|
|
5373
5376
|
this._overlayDebugRefreshDeferred = false;
|
|
@@ -3898,7 +3898,7 @@
|
|
|
3898
3898
|
const NEUTRAL_SELECTION_GLOW_RGB_SOFT = '191, 219, 254';
|
|
3899
3899
|
const CSS3D_WRAPPER_TRANSITION = 'box-shadow .22s ease, filter .22s ease';
|
|
3900
3900
|
const CSS3D_WRAPPER_WEBKIT_TRANSITION = '-webkit-box-shadow .22s ease, -webkit-filter .22s ease';
|
|
3901
|
-
const TEXT_OVERLAY_SUPPORTED_TYPES = new Set(['text', 'markdown', 'note', 'code', 'memo']);
|
|
3901
|
+
const TEXT_OVERLAY_SUPPORTED_TYPES = new Set(['text', 'markdown', 'note', 'code', 'memo', CSV_TABLE_CONTENT_TYPE, 'templatelauncher']);
|
|
3902
3902
|
const TEXT_SELECTION_OVERLAY_SUPPORTED_TYPES = new Set(['text', 'markdown']);
|
|
3903
3903
|
const TEXT_INTERACTION_SCROLLABLE_SELECTORS = '.node-response, .note-content, .markdown-body, .prose, .note-textarea, .code-body, .code-content, .csv-table-scroll, .csv-table-scroll *, .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';
|
|
3904
3904
|
const TEXT_INTERACTION_CONTENT_SELECTORS = '.node-response, .code-body, .text-content, .markdown-body, .prose, .csv-table-scroll, .csv-table-cell';
|
|
@@ -4006,6 +4006,16 @@
|
|
|
4006
4006
|
|| semanticType === REMOTE_FLEET_DEVICE_SEMANTIC_TYPE;
|
|
4007
4007
|
}
|
|
4008
4008
|
|
|
4009
|
+
function isTemplateLauncherNode(nodeModel) {
|
|
4010
|
+
const contentType = String(nodeModel?.contentType ?? nodeModel?.ContentType ?? '').trim().toLowerCase();
|
|
4011
|
+
return contentType === 'templatelauncher' || isRemoteFleetMonitorNode(nodeModel);
|
|
4012
|
+
}
|
|
4013
|
+
|
|
4014
|
+
function isLiveOverlayPortalNode(nodeModel) {
|
|
4015
|
+
const contentType = String(nodeModel?.contentType ?? nodeModel?.ContentType ?? '').trim().toLowerCase();
|
|
4016
|
+
return contentType === CSV_TABLE_CONTENT_TYPE || isTemplateLauncherNode(nodeModel);
|
|
4017
|
+
}
|
|
4018
|
+
|
|
4009
4019
|
function isBusinessAutomationContextSourceNode(nodeModel) {
|
|
4010
4020
|
if (!nodeModel || isBusinessAutomationNode(nodeModel) || isRemoteFleetNode(nodeModel)) {
|
|
4011
4021
|
return false;
|
|
@@ -4076,6 +4086,10 @@
|
|
|
4076
4086
|
return 'none';
|
|
4077
4087
|
}
|
|
4078
4088
|
|
|
4089
|
+
if (isLiveOverlayPortalNode(nodeEntry?.model)) {
|
|
4090
|
+
return 'live-template';
|
|
4091
|
+
}
|
|
4092
|
+
|
|
4079
4093
|
if (getTextOverlayRenderMode(nodeEntry) === 'memo') {
|
|
4080
4094
|
// Memo cards rely on the canonical CSS3D shell for their rounded
|
|
4081
4095
|
// body surface and selection glow. Passive readonly overlays only
|
|
@@ -13,6 +13,9 @@
|
|
|
13
13
|
const PASSIVE_OVERLAY_OVERLAP_MIN_PX = 2;
|
|
14
14
|
const PASSIVE_OVERLAY_OVERLAP_MIN_AREA_PX = 16;
|
|
15
15
|
const PASSIVE_OVERLAY_STACK_Z_SCALE = 10000;
|
|
16
|
+
const LIVE_TEMPLATE_OVERLAY_MODE = 'live-template';
|
|
17
|
+
const CSV_TABLE_CONTENT_TYPE = 'csv-table';
|
|
18
|
+
const REMOTE_FLEET_SEMANTIC_TYPE = 'RemoteFleetMonitor';
|
|
16
19
|
const log = DEBUG ? console.log.bind(console, '[MindMapTextOverlayV2]') : () => { };
|
|
17
20
|
let _projCornerTopLeft = null;
|
|
18
21
|
let _projCornerTopRight = null;
|
|
@@ -79,6 +82,19 @@
|
|
|
79
82
|
return String(metadata?.SemanticType || metadata?.semanticType || model?.SemanticType || model?.semanticType || '').trim();
|
|
80
83
|
}
|
|
81
84
|
|
|
85
|
+
function isLiveInteractiveOverlayEntry(entry) {
|
|
86
|
+
const type = getContentType(entry);
|
|
87
|
+
const semanticType = getNodeSemanticType(entry);
|
|
88
|
+
return type === 'templatelauncher'
|
|
89
|
+
|| type === CSV_TABLE_CONTENT_TYPE
|
|
90
|
+
|| semanticType === REMOTE_FLEET_SEMANTIC_TYPE;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function isLiveInteractiveOverlayMode(mode) {
|
|
94
|
+
const normalized = String(mode || '').trim().toLowerCase();
|
|
95
|
+
return normalized === LIVE_TEMPLATE_OVERLAY_MODE || normalized === 'live';
|
|
96
|
+
}
|
|
97
|
+
|
|
82
98
|
function isAgentStyledMemoEntry(entry) {
|
|
83
99
|
const semanticType = getNodeSemanticType(entry);
|
|
84
100
|
return semanticType === 'MindCanvasAgent'
|
|
@@ -172,6 +188,44 @@
|
|
|
172
188
|
return module?.useDomTextOverlay === true;
|
|
173
189
|
}
|
|
174
190
|
|
|
191
|
+
function hasVisibleLiveInteractiveOverlayCandidate(module) {
|
|
192
|
+
const visibleIds = module?._visibleIds || module?._prevVisibleIds || null;
|
|
193
|
+
if (visibleIds?.forEach) {
|
|
194
|
+
let found = false;
|
|
195
|
+
visibleIds.forEach(nodeId => {
|
|
196
|
+
if (found) {
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
const entry = module?.nodeObjectsById?.get?.(normalizeId(nodeId)) || null;
|
|
201
|
+
if (!entry || entry.currentType !== 'CSS' || entry.cssObject?.visible !== true) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
if (isLiveInteractiveOverlayEntry(entry) && supportsPassiveDisplay(entry)) {
|
|
206
|
+
found = true;
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
if (found) {
|
|
211
|
+
return true;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
const selectedId = normalizeId(module?.selectedNodeIdJs);
|
|
216
|
+
if (selectedId) {
|
|
217
|
+
const selectedEntry = module?.nodeObjectsById?.get?.(selectedId) || null;
|
|
218
|
+
if (selectedEntry?.currentType === 'CSS' &&
|
|
219
|
+
selectedEntry.cssObject?.visible === true &&
|
|
220
|
+
isLiveInteractiveOverlayEntry(selectedEntry) &&
|
|
221
|
+
supportsPassiveDisplay(selectedEntry)) {
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
return false;
|
|
227
|
+
}
|
|
228
|
+
|
|
175
229
|
function getCurrentLodBand(module) {
|
|
176
230
|
const explicitBand = String(module?.lodRenderer?._currentLodBand || '').trim().toUpperCase();
|
|
177
231
|
if (explicitBand) {
|
|
@@ -248,7 +302,7 @@
|
|
|
248
302
|
state.passiveNearStickyUntil = 0;
|
|
249
303
|
}
|
|
250
304
|
|
|
251
|
-
return
|
|
305
|
+
return hasVisibleLiveInteractiveOverlayCandidate(module);
|
|
252
306
|
}
|
|
253
307
|
|
|
254
308
|
function shouldUseVisiblePassiveOverlayCandidates(module) {
|
|
@@ -1097,7 +1151,8 @@
|
|
|
1097
1151
|
}
|
|
1098
1152
|
|
|
1099
1153
|
function createReadonlyLiveSourcePortal(entry, card, options = {}) {
|
|
1100
|
-
|
|
1154
|
+
const liveInteractive = options.liveInteractive === true || isLiveInteractiveOverlayEntry(entry);
|
|
1155
|
+
if (!entry || !card || (options.interactive === true && liveInteractive !== true)) {
|
|
1101
1156
|
return null;
|
|
1102
1157
|
}
|
|
1103
1158
|
|
|
@@ -1108,10 +1163,15 @@
|
|
|
1108
1163
|
}
|
|
1109
1164
|
|
|
1110
1165
|
existingPortal.cardElement = card;
|
|
1166
|
+
existingPortal.liveInteractive = liveInteractive;
|
|
1167
|
+
existingPortal.sourceElement.style.pointerEvents = liveInteractive ? 'auto' : 'none';
|
|
1168
|
+
existingPortal.sourceElement.style.userSelect = liveInteractive ? '' : 'none';
|
|
1169
|
+
existingPortal.sourceElement.style.webkitUserSelect = liveInteractive ? '' : 'none';
|
|
1111
1170
|
return {
|
|
1112
1171
|
container: existingPortal.sourceElement,
|
|
1113
1172
|
sourceRoot: existingPortal.sourceElement,
|
|
1114
|
-
liveSource: true
|
|
1173
|
+
liveSource: true,
|
|
1174
|
+
liveInteractive: liveInteractive
|
|
1115
1175
|
};
|
|
1116
1176
|
}
|
|
1117
1177
|
|
|
@@ -1138,19 +1198,21 @@
|
|
|
1138
1198
|
zoom: sourceElement.style.zoom,
|
|
1139
1199
|
pointerEvents: sourceElement.style.pointerEvents,
|
|
1140
1200
|
userSelect: sourceElement.style.userSelect,
|
|
1141
|
-
webkitUserSelect: sourceElement.style.webkitUserSelect
|
|
1201
|
+
webkitUserSelect: sourceElement.style.webkitUserSelect,
|
|
1202
|
+
liveInteractive: liveInteractive
|
|
1142
1203
|
};
|
|
1143
1204
|
|
|
1144
1205
|
sourceElement.classList.add('mind-map-text-overlay-v2-live-source');
|
|
1145
|
-
sourceElement.style.pointerEvents = 'none';
|
|
1146
|
-
sourceElement.style.userSelect = 'none';
|
|
1147
|
-
sourceElement.style.webkitUserSelect = 'none';
|
|
1206
|
+
sourceElement.style.pointerEvents = liveInteractive ? 'auto' : 'none';
|
|
1207
|
+
sourceElement.style.userSelect = liveInteractive ? '' : 'none';
|
|
1208
|
+
sourceElement.style.webkitUserSelect = liveInteractive ? '' : 'none';
|
|
1148
1209
|
card.appendChild(sourceElement);
|
|
1149
1210
|
|
|
1150
1211
|
return {
|
|
1151
1212
|
container: sourceElement,
|
|
1152
1213
|
sourceRoot: sourceElement,
|
|
1153
|
-
liveSource: true
|
|
1214
|
+
liveSource: true,
|
|
1215
|
+
liveInteractive: liveInteractive
|
|
1154
1216
|
};
|
|
1155
1217
|
}
|
|
1156
1218
|
|
|
@@ -2351,6 +2413,28 @@
|
|
|
2351
2413
|
target.addEventListener('mousedown', handler, { passive: false });
|
|
2352
2414
|
}
|
|
2353
2415
|
|
|
2416
|
+
function isLiveOverlayControlTarget(target) {
|
|
2417
|
+
return !!target?.closest?.([
|
|
2418
|
+
'button',
|
|
2419
|
+
'input',
|
|
2420
|
+
'textarea',
|
|
2421
|
+
'select',
|
|
2422
|
+
'[contenteditable="true"]',
|
|
2423
|
+
'[data-template-card-interactive="true"]',
|
|
2424
|
+
'[data-template-card-action]',
|
|
2425
|
+
'[data-template-option-id]',
|
|
2426
|
+
'[data-remote-fleet-action]',
|
|
2427
|
+
'[data-remote-fleet-device-preview]',
|
|
2428
|
+
'[data-remote-fleet-control-popup]',
|
|
2429
|
+
'[data-remote-fleet-task-input]',
|
|
2430
|
+
'[data-remote-fleet-ai-toggle]',
|
|
2431
|
+
'[data-remote-fleet-search]',
|
|
2432
|
+
'.csv-table-scroll',
|
|
2433
|
+
'.csv-table-header-button',
|
|
2434
|
+
'.csv-table-cell'
|
|
2435
|
+
].join(', '));
|
|
2436
|
+
}
|
|
2437
|
+
|
|
2354
2438
|
function bindReadonlyOverlayPrimaryPointerRouting(module, root, sourceRoot) {
|
|
2355
2439
|
if (!module || !root || typeof root.addEventListener !== 'function') {
|
|
2356
2440
|
return;
|
|
@@ -2373,6 +2457,10 @@
|
|
|
2373
2457
|
return;
|
|
2374
2458
|
}
|
|
2375
2459
|
|
|
2460
|
+
if (isLiveOverlayControlTarget(event.target)) {
|
|
2461
|
+
return;
|
|
2462
|
+
}
|
|
2463
|
+
|
|
2376
2464
|
const nodeId =
|
|
2377
2465
|
normalizeId(root.dataset.nodeId) ||
|
|
2378
2466
|
normalizeId(root._mindMapReadonlyOverlaySourceRoot?.dataset?.nodeId) ||
|
|
@@ -2894,6 +2982,13 @@
|
|
|
2894
2982
|
|
|
2895
2983
|
function createReadonlySelectionShell(module, entry, options = {}) {
|
|
2896
2984
|
const mode = getReadonlySelectionMode(entry);
|
|
2985
|
+
if (isLiveInteractiveOverlayMode(mode)) {
|
|
2986
|
+
return createReadonlyLiveSourcePortal(entry, options.cardElement, {
|
|
2987
|
+
...options,
|
|
2988
|
+
liveInteractive: true
|
|
2989
|
+
});
|
|
2990
|
+
}
|
|
2991
|
+
|
|
2897
2992
|
if (mode === 'agent-memo') {
|
|
2898
2993
|
// Agent memo nodes must mirror the CSS3D source as-is. Their
|
|
2899
2994
|
// auxiliary plan/console panels live outside the simplified memo
|
|
@@ -3294,7 +3389,11 @@
|
|
|
3294
3389
|
card.dataset.sourceEpoch === sourceEpoch &&
|
|
3295
3390
|
card.childElementCount > 0) {
|
|
3296
3391
|
setCardMode(card, 'selection', interactive);
|
|
3297
|
-
|
|
3392
|
+
const liveInteractive = card.dataset.liveInteractive === 'true';
|
|
3393
|
+
if (liveInteractive) {
|
|
3394
|
+
card.style.pointerEvents = 'auto';
|
|
3395
|
+
bindReadonlyOverlayPrimaryPointerRouting(module, card, sourceRoot);
|
|
3396
|
+
} else if (card.dataset.sourceKind !== 'live') {
|
|
3298
3397
|
bindReadonlyOverlayPrimaryPointerRouting(module, card, sourceRoot);
|
|
3299
3398
|
refreshOverlayCloneInteractivity(module, card.firstElementChild || card, interactive, sourceRoot);
|
|
3300
3399
|
syncReadonlyOverlayCardScrollFromSource(card);
|
|
@@ -3326,9 +3425,15 @@
|
|
|
3326
3425
|
return null;
|
|
3327
3426
|
}
|
|
3328
3427
|
|
|
3428
|
+
const liveInteractive = shellResult?.liveInteractive === true;
|
|
3329
3429
|
card.dataset.sourceKind = shellResult?.liveSource === true ? 'live' : 'clone';
|
|
3430
|
+
card.dataset.liveInteractive = liveInteractive ? 'true' : 'false';
|
|
3431
|
+
card.classList.toggle('is-live-interactive', liveInteractive);
|
|
3330
3432
|
card.appendChild(shell);
|
|
3331
|
-
if (
|
|
3433
|
+
if (liveInteractive) {
|
|
3434
|
+
card.style.pointerEvents = 'auto';
|
|
3435
|
+
bindReadonlyOverlayPrimaryPointerRouting(module, card, shellSourceRoot);
|
|
3436
|
+
} else if (card.dataset.sourceKind !== 'live') {
|
|
3332
3437
|
bindReadonlyOverlayPrimaryPointerRouting(module, card, shellSourceRoot);
|
|
3333
3438
|
syncReadonlyOverlayCardScrollFromSource(card);
|
|
3334
3439
|
scheduleReadonlyOverlayCardScrollSync(card);
|
|
@@ -3698,6 +3803,29 @@
|
|
|
3698
3803
|
}
|
|
3699
3804
|
}
|
|
3700
3805
|
|
|
3806
|
+
function hasLiveInteractiveOverlay(module) {
|
|
3807
|
+
const state = ensureState(module);
|
|
3808
|
+
if (state?.cards?.forEach) {
|
|
3809
|
+
let hasVisibleLiveCard = false;
|
|
3810
|
+
state.cards.forEach(card => {
|
|
3811
|
+
if (hasVisibleLiveCard || !card || card.style.display === 'none') {
|
|
3812
|
+
return;
|
|
3813
|
+
}
|
|
3814
|
+
|
|
3815
|
+
if (card.dataset?.sourceKind === 'live' &&
|
|
3816
|
+
card.dataset?.liveInteractive === 'true') {
|
|
3817
|
+
hasVisibleLiveCard = true;
|
|
3818
|
+
}
|
|
3819
|
+
});
|
|
3820
|
+
|
|
3821
|
+
if (hasVisibleLiveCard) {
|
|
3822
|
+
return true;
|
|
3823
|
+
}
|
|
3824
|
+
}
|
|
3825
|
+
|
|
3826
|
+
return hasVisibleLiveInteractiveOverlayCandidate(module);
|
|
3827
|
+
}
|
|
3828
|
+
|
|
3701
3829
|
function setPassiveOverlaySuppressed(module, suppressed) {
|
|
3702
3830
|
const state = ensureState(module);
|
|
3703
3831
|
const layer = state?.layer;
|
|
@@ -3735,11 +3863,16 @@
|
|
|
3735
3863
|
});
|
|
3736
3864
|
clearLayerTransform(layer);
|
|
3737
3865
|
layer.style.display = 'none';
|
|
3866
|
+
state.dirtyLayout = true;
|
|
3867
|
+
module._overlayDirty = true;
|
|
3868
|
+
module._lastOverlayKey = '';
|
|
3738
3869
|
return true;
|
|
3739
3870
|
}
|
|
3740
3871
|
|
|
3741
|
-
|
|
3742
|
-
|
|
3872
|
+
state.dirtyLayout = true;
|
|
3873
|
+
module._overlayDirty = true;
|
|
3874
|
+
module._lastOverlayKey = '';
|
|
3875
|
+
layer.style.display = 'none';
|
|
3743
3876
|
return true;
|
|
3744
3877
|
}
|
|
3745
3878
|
|
|
@@ -4318,6 +4451,7 @@
|
|
|
4318
4451
|
purgeMediaOverlayCards: purgeMediaOverlayCards,
|
|
4319
4452
|
suspendSource: suspendSource,
|
|
4320
4453
|
resumeSource: resumeSource,
|
|
4454
|
+
hasLiveInteractiveOverlay: hasLiveInteractiveOverlay,
|
|
4321
4455
|
syncReadonlySourceScroll: syncReadonlySourceScroll
|
|
4322
4456
|
};
|
|
4323
4457
|
})();
|
package/wwwroot/index.html
CHANGED
|
@@ -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-csv-
|
|
11
|
-
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260616-csv-
|
|
10
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260616-live-csv-overlay-v566" />
|
|
11
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260616-live-csv-overlay-v566" />
|
|
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-csv-
|
|
582
|
+
const scriptVersion = '20260616-live-csv-overlay-v566';
|
|
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": "4Z/beLB1",
|
|
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-7liM89dPcSTRsRDjW34NcN4nympUF2BXewfpgyA6P0c=",
|
|
82
82
|
"url": "_content/MindExecution.Shared/js/mind-map-core.js"
|
|
83
83
|
},
|
|
84
84
|
{
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"url": "_content/MindExecution.Shared/js/mind-map-core.js.backup"
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
|
-
"hash": "sha256
|
|
89
|
+
"hash": "sha256-/afOejfgIcOoUzPkYMaApwHu/giAM6sAskPi5O2HaiQ=",
|
|
90
90
|
"url": "_content/MindExecution.Shared/js/mind-map-css3d-manager.js"
|
|
91
91
|
},
|
|
92
92
|
{
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
"url": "_content/MindExecution.Shared/js/mind-map-text-lod-system.js"
|
|
155
155
|
},
|
|
156
156
|
{
|
|
157
|
-
"hash": "sha256-
|
|
157
|
+
"hash": "sha256-dzOqbpcXDlZXQQTB9kDHqnzOVPxUMBrOpf8fnte9kcg=",
|
|
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-
|
|
837
|
+
"hash": "sha256-9bEQ4UJDWO+QrReSgUser1zhLacqGTPSLgMZQZxRCyM=",
|
|
838
838
|
"url": "index.html"
|
|
839
839
|
},
|
|
840
840
|
{
|