@mindexec/cli 0.2.323 → 0.2.324
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/css/mind-map-overrides.css +0 -173
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +1 -1
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-renderer.js +63 -137
- 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
|
@@ -3386,179 +3386,6 @@ html body .css3d-resolution-wrapper.lod-low.node-type-csv-table .csv-table td {
|
|
|
3386
3386
|
}
|
|
3387
3387
|
}
|
|
3388
3388
|
|
|
3389
|
-
/* Temporary lightweight node visuals.
|
|
3390
|
-
CSS3D and passive overlay node surfaces intentionally avoid shadows/glow.
|
|
3391
|
-
Keep outlines, borders, and status color so selection and node state remain readable. */
|
|
3392
|
-
.css3d-resolution-wrapper,
|
|
3393
|
-
.css3d-resolution-wrapper.selected,
|
|
3394
|
-
.css3d-resolution-wrapper.selection-style-agent.selected,
|
|
3395
|
-
.css3d-resolution-wrapper.is-automation-relation-related,
|
|
3396
|
-
.css3d-resolution-wrapper .css3d-dynamic-node,
|
|
3397
|
-
.css3d-resolution-wrapper [id^="css3d-node-"],
|
|
3398
|
-
.css3d-resolution-wrapper .map-node,
|
|
3399
|
-
.css3d-resolution-wrapper .map-node-bubble,
|
|
3400
|
-
.css3d-resolution-wrapper .map-node-note,
|
|
3401
|
-
.css3d-resolution-wrapper .map-node-memo,
|
|
3402
|
-
.css3d-resolution-wrapper .map-node-file,
|
|
3403
|
-
.css3d-resolution-wrapper .map-node-image-container,
|
|
3404
|
-
.css3d-resolution-wrapper .map-node-template-card,
|
|
3405
|
-
.css3d-resolution-wrapper .template-card__shell,
|
|
3406
|
-
.css3d-resolution-wrapper .template-card__shell--remote-fleet,
|
|
3407
|
-
.mind-map-text-overlay-v2-card,
|
|
3408
|
-
.mind-map-text-overlay-v2-card .map-node,
|
|
3409
|
-
.mind-map-text-overlay-v2-card .map-node-bubble,
|
|
3410
|
-
.mind-map-text-overlay-v2-card .map-node-note,
|
|
3411
|
-
.mind-map-text-overlay-v2-card .map-node-memo,
|
|
3412
|
-
.mind-map-text-overlay-v2-card .map-node-file,
|
|
3413
|
-
.mind-map-text-overlay-v2-card .map-node-image-container,
|
|
3414
|
-
.mind-map-text-overlay-v2-card .map-node-template-card,
|
|
3415
|
-
.mind-map-text-overlay-v2-card .template-card__shell,
|
|
3416
|
-
.mind-map-text-overlay-v2-card .template-card__shell--remote-fleet {
|
|
3417
|
-
-webkit-box-shadow: none !important;
|
|
3418
|
-
box-shadow: none !important;
|
|
3419
|
-
-webkit-filter: none !important;
|
|
3420
|
-
filter: none !important;
|
|
3421
|
-
}
|
|
3422
|
-
|
|
3423
|
-
/* Strong tail guard for the no node-glow policy.
|
|
3424
|
-
This intentionally wins after idle/motion class cleanup and after older
|
|
3425
|
-
note/image/video/agent/remote rules that used selected-state glow. */
|
|
3426
|
-
html body .css3d-resolution-wrapper,
|
|
3427
|
-
html body .css3d-resolution-wrapper::before,
|
|
3428
|
-
html body .css3d-resolution-wrapper::after,
|
|
3429
|
-
html body .css3d-resolution-wrapper *,
|
|
3430
|
-
html body .css3d-resolution-wrapper *::before,
|
|
3431
|
-
html body .css3d-resolution-wrapper *::after,
|
|
3432
|
-
html body .mind-map-text-overlay-v2-card,
|
|
3433
|
-
html body .mind-map-text-overlay-v2-card::before,
|
|
3434
|
-
html body .mind-map-text-overlay-v2-card::after,
|
|
3435
|
-
html body .mind-map-text-overlay-v2-card *,
|
|
3436
|
-
html body .mind-map-text-overlay-v2-card *::before,
|
|
3437
|
-
html body .mind-map-text-overlay-v2-card *::after {
|
|
3438
|
-
-webkit-box-shadow: none !important;
|
|
3439
|
-
box-shadow: none !important;
|
|
3440
|
-
-webkit-filter: none !important;
|
|
3441
|
-
filter: none !important;
|
|
3442
|
-
text-shadow: none !important;
|
|
3443
|
-
}
|
|
3444
|
-
|
|
3445
|
-
html body .css3d-resolution-wrapper {
|
|
3446
|
-
transition-property: transform, opacity, border-color, background-color !important;
|
|
3447
|
-
}
|
|
3448
|
-
|
|
3449
|
-
html body .css3d-resolution-wrapper.node-type-note,
|
|
3450
|
-
html body .css3d-resolution-wrapper.node-type-note.selected,
|
|
3451
|
-
html body .css3d-resolution-wrapper.node-type-image,
|
|
3452
|
-
html body .css3d-resolution-wrapper.node-type-image.selected,
|
|
3453
|
-
html body .css3d-resolution-wrapper.node-type-video,
|
|
3454
|
-
html body .css3d-resolution-wrapper.node-type-video.selected,
|
|
3455
|
-
html body .css3d-resolution-wrapper.node-type-embed,
|
|
3456
|
-
html body .css3d-resolution-wrapper.node-type-embed.selected,
|
|
3457
|
-
html body .css3d-resolution-wrapper.selected-media-safe,
|
|
3458
|
-
html body .css3d-resolution-wrapper.selected-media-safe.selected {
|
|
3459
|
-
-webkit-box-shadow: none !important;
|
|
3460
|
-
box-shadow: none !important;
|
|
3461
|
-
-webkit-filter: none !important;
|
|
3462
|
-
filter: none !important;
|
|
3463
|
-
}
|
|
3464
|
-
|
|
3465
|
-
html body .css3d-resolution-wrapper.node-type-note .map-node-note,
|
|
3466
|
-
html body .css3d-resolution-wrapper.node-type-note .map-node-note.selected,
|
|
3467
|
-
html body .css3d-resolution-wrapper.node-type-note .map-node-note:focus-within,
|
|
3468
|
-
html body .css3d-resolution-wrapper.node-type-image .map-node-image-container,
|
|
3469
|
-
html body .css3d-resolution-wrapper.node-type-image .map-node-image-container.selected,
|
|
3470
|
-
html body .css3d-resolution-wrapper.node-type-video .map-node,
|
|
3471
|
-
html body .css3d-resolution-wrapper.node-type-video .map-node.selected,
|
|
3472
|
-
html body .css3d-resolution-wrapper.node-type-embed .map-node,
|
|
3473
|
-
html body .css3d-resolution-wrapper.node-type-embed .map-node.selected {
|
|
3474
|
-
-webkit-box-shadow: none !important;
|
|
3475
|
-
box-shadow: none !important;
|
|
3476
|
-
-webkit-filter: none !important;
|
|
3477
|
-
filter: none !important;
|
|
3478
|
-
outline-offset: 0 !important;
|
|
3479
|
-
}
|
|
3480
|
-
|
|
3481
|
-
/* Text nodes keep the same dark edge in motion and settled states now that decorative glow/shadow is gone.
|
|
3482
|
-
Keep this scoped away from template, MDM, media, CSV, and remote-control cards. */
|
|
3483
|
-
html body .css3d-resolution-wrapper > .map-node-bubble,
|
|
3484
|
-
html body .css3d-resolution-wrapper > .map-node-note,
|
|
3485
|
-
html body .css3d-resolution-wrapper > .map-node-code,
|
|
3486
|
-
html body .css3d-resolution-wrapper > .map-node-memo:not(.map-node-agent):not(.map-node-automation):not(.map-node-template-card):not(.map-node-remote-fleet) {
|
|
3487
|
-
border: 1px solid var(--mind-node-static-edge) !important;
|
|
3488
|
-
-webkit-box-shadow: none !important;
|
|
3489
|
-
box-shadow: none !important;
|
|
3490
|
-
-webkit-filter: none !important;
|
|
3491
|
-
filter: none !important;
|
|
3492
|
-
}
|
|
3493
|
-
|
|
3494
|
-
html body .css3d-resolution-wrapper.selected > .map-node-bubble,
|
|
3495
|
-
html body .css3d-resolution-wrapper.selected > .map-node-note,
|
|
3496
|
-
html body .css3d-resolution-wrapper.selected > .map-node-code,
|
|
3497
|
-
html body .css3d-resolution-wrapper.selected > .map-node-memo:not(.map-node-agent):not(.map-node-automation):not(.map-node-template-card):not(.map-node-remote-fleet),
|
|
3498
|
-
html body .css3d-resolution-wrapper > .map-node-bubble.selected,
|
|
3499
|
-
html body .css3d-resolution-wrapper > .map-node-note.selected,
|
|
3500
|
-
html body .css3d-resolution-wrapper > .map-node-note:focus-within,
|
|
3501
|
-
html body .css3d-resolution-wrapper > .map-node-code.selected,
|
|
3502
|
-
html body .css3d-resolution-wrapper > .map-node-code:focus-within,
|
|
3503
|
-
html body .css3d-resolution-wrapper > .map-node-memo.selected:not(.map-node-agent):not(.map-node-automation):not(.map-node-template-card):not(.map-node-remote-fleet),
|
|
3504
|
-
html body .css3d-resolution-wrapper > .map-node-memo:focus-within:not(.map-node-agent):not(.map-node-automation):not(.map-node-template-card):not(.map-node-remote-fleet) {
|
|
3505
|
-
border-color: var(--mind-node-selection-edge) !important;
|
|
3506
|
-
-webkit-box-shadow: none !important;
|
|
3507
|
-
box-shadow: none !important;
|
|
3508
|
-
-webkit-filter: none !important;
|
|
3509
|
-
filter: none !important;
|
|
3510
|
-
}
|
|
3511
|
-
|
|
3512
|
-
html body .css3d-resolution-wrapper > .map-node-agent:not(.map-node-template-card):not(.map-node-remote-fleet),
|
|
3513
|
-
html body .css3d-resolution-wrapper > .map-node-automation:not(.map-node-template-card):not(.map-node-remote-fleet),
|
|
3514
|
-
html body .css3d-resolution-wrapper.selected > .map-node-agent:not(.map-node-template-card):not(.map-node-remote-fleet),
|
|
3515
|
-
html body .css3d-resolution-wrapper.selected > .map-node-automation:not(.map-node-template-card):not(.map-node-remote-fleet),
|
|
3516
|
-
html body .css3d-resolution-wrapper > .map-node-agent.selected:not(.map-node-template-card):not(.map-node-remote-fleet),
|
|
3517
|
-
html body .css3d-resolution-wrapper > .map-node-agent:focus-within:not(.map-node-template-card):not(.map-node-remote-fleet),
|
|
3518
|
-
html body .css3d-resolution-wrapper > .map-node-automation.selected:not(.map-node-template-card):not(.map-node-remote-fleet),
|
|
3519
|
-
html body .css3d-resolution-wrapper > .map-node-automation:focus-within:not(.map-node-template-card):not(.map-node-remote-fleet) {
|
|
3520
|
-
border-color: var(--mind-node-selection-edge) !important;
|
|
3521
|
-
-webkit-box-shadow: none !important;
|
|
3522
|
-
box-shadow: none !important;
|
|
3523
|
-
-webkit-filter: none !important;
|
|
3524
|
-
filter: none !important;
|
|
3525
|
-
}
|
|
3526
|
-
|
|
3527
|
-
/* Final node edge policy:
|
|
3528
|
-
- unselected text-like surfaces use a shared dark edge because glow is removed
|
|
3529
|
-
- selected nodes, including AI task nodes, use the same blue edge as notes */
|
|
3530
|
-
html body .css3d-resolution-wrapper.node-type-text > .map-node,
|
|
3531
|
-
html body .css3d-resolution-wrapper.node-type-markdown > .map-node,
|
|
3532
|
-
html body .css3d-resolution-wrapper.node-type-text > .css3d-dynamic-node,
|
|
3533
|
-
html body .css3d-resolution-wrapper.node-type-markdown > .css3d-dynamic-node,
|
|
3534
|
-
html body .css3d-resolution-wrapper > .map-node-agent:not(.map-node-template-card):not(.map-node-remote-fleet),
|
|
3535
|
-
html body .css3d-resolution-wrapper > .map-node-automation:not(.map-node-template-card):not(.map-node-remote-fleet),
|
|
3536
|
-
html body .mind-map-text-overlay-v2-shell.type-text,
|
|
3537
|
-
html body .mind-map-text-overlay-v2-shell.type-markdown {
|
|
3538
|
-
border: 1px solid var(--mind-node-static-edge) !important;
|
|
3539
|
-
-webkit-box-shadow: none !important;
|
|
3540
|
-
box-shadow: none !important;
|
|
3541
|
-
-webkit-filter: none !important;
|
|
3542
|
-
filter: none !important;
|
|
3543
|
-
}
|
|
3544
|
-
|
|
3545
|
-
html body .css3d-resolution-wrapper.selected.node-type-text > .map-node,
|
|
3546
|
-
html body .css3d-resolution-wrapper.selected.node-type-markdown > .map-node,
|
|
3547
|
-
html body .css3d-resolution-wrapper.selected.node-type-text > .css3d-dynamic-node,
|
|
3548
|
-
html body .css3d-resolution-wrapper.selected.node-type-markdown > .css3d-dynamic-node,
|
|
3549
|
-
html body .css3d-resolution-wrapper.selected > .map-node-agent:not(.map-node-template-card):not(.map-node-remote-fleet),
|
|
3550
|
-
html body .css3d-resolution-wrapper.selected > .map-node-automation:not(.map-node-template-card):not(.map-node-remote-fleet),
|
|
3551
|
-
html body .css3d-resolution-wrapper > .map-node-agent.selected:not(.map-node-template-card):not(.map-node-remote-fleet),
|
|
3552
|
-
html body .css3d-resolution-wrapper > .map-node-agent:focus-within:not(.map-node-template-card):not(.map-node-remote-fleet),
|
|
3553
|
-
html body .css3d-resolution-wrapper > .map-node-automation.selected:not(.map-node-template-card):not(.map-node-remote-fleet),
|
|
3554
|
-
html body .css3d-resolution-wrapper > .map-node-automation:focus-within:not(.map-node-template-card):not(.map-node-remote-fleet) {
|
|
3555
|
-
border: 1px solid var(--mind-node-selection-edge) !important;
|
|
3556
|
-
-webkit-box-shadow: none !important;
|
|
3557
|
-
box-shadow: none !important;
|
|
3558
|
-
-webkit-filter: none !important;
|
|
3559
|
-
filter: none !important;
|
|
3560
|
-
}
|
|
3561
|
-
|
|
3562
3389
|
/* Low-detail CSS3D proxy policy.
|
|
3563
3390
|
MID/FAR overview cards are not a readable text surface. Keeping the full
|
|
3564
3391
|
DOM body at that scale turns content into aliasing noise, so non-selected
|
|
@@ -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 = '20260621-
|
|
8
|
+
const MINDMAP_CORE_BUILD_ID = '20260621-normal-text-restore-v808';
|
|
9
9
|
const CanvasPhase = Object.freeze({
|
|
10
10
|
Booting: 'booting',
|
|
11
11
|
BoardFileLoading: 'board-file-loading',
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
// ▲▲▲ [Usage] ▲▲▲
|
|
52
52
|
|
|
53
53
|
// Procedural line rendering settings
|
|
54
|
-
const LOD_RENDERER_BUILD_ID = '20260621-
|
|
54
|
+
const LOD_RENDERER_BUILD_ID = '20260621-normal-text-restore-v808';
|
|
55
55
|
const DirtyKind = Object.freeze({
|
|
56
56
|
ResidentFullRebuild: 'resident-full-rebuild',
|
|
57
57
|
ResidentPatch: 'resident-patch',
|
|
@@ -4250,77 +4250,8 @@
|
|
|
4250
4250
|
return currentVisibleIds.has(nodeId);
|
|
4251
4251
|
}
|
|
4252
4252
|
|
|
4253
|
-
_getMaxActiveFullResCssNodes(module = this._module, lodBand = this._currentLodBand) {
|
|
4254
|
-
const cameraZ = Number(module?.camera?.position?.z || 0);
|
|
4255
|
-
const isMotionFrame =
|
|
4256
|
-
module?.isPanning === true ||
|
|
4257
|
-
module?.isZooming === true ||
|
|
4258
|
-
module?._fullResMotionFrozen === true;
|
|
4259
|
-
const avgFrameTime = Number(module?._avgFrameTime || 16);
|
|
4260
|
-
|
|
4261
|
-
let maxActive = 32;
|
|
4262
|
-
if (lodBand === 'NEAR' || cameraZ < 4500) {
|
|
4263
|
-
maxActive = 84;
|
|
4264
|
-
} else if (lodBand === 'NORMAL' || cameraZ < 12000) {
|
|
4265
|
-
maxActive = 48;
|
|
4266
|
-
}
|
|
4267
|
-
|
|
4268
|
-
if (isMotionFrame) {
|
|
4269
|
-
if (maxActive >= 84) {
|
|
4270
|
-
maxActive = 72;
|
|
4271
|
-
} else if (maxActive >= 48) {
|
|
4272
|
-
maxActive = 40;
|
|
4273
|
-
} else {
|
|
4274
|
-
maxActive = 28;
|
|
4275
|
-
}
|
|
4276
|
-
}
|
|
4277
|
-
|
|
4278
|
-
if (avgFrameTime > 20) {
|
|
4279
|
-
if (maxActive >= 72) {
|
|
4280
|
-
maxActive = 60;
|
|
4281
|
-
} else if (maxActive >= 40) {
|
|
4282
|
-
maxActive = 32;
|
|
4283
|
-
} else {
|
|
4284
|
-
maxActive = 24;
|
|
4285
|
-
}
|
|
4286
|
-
}
|
|
4287
|
-
|
|
4288
|
-
if (avgFrameTime > 26) {
|
|
4289
|
-
if (maxActive >= 60) {
|
|
4290
|
-
maxActive = 48;
|
|
4291
|
-
} else if (maxActive >= 32) {
|
|
4292
|
-
maxActive = 24;
|
|
4293
|
-
} else {
|
|
4294
|
-
maxActive = 18;
|
|
4295
|
-
}
|
|
4296
|
-
}
|
|
4297
|
-
|
|
4298
|
-
return Math.max(18, maxActive);
|
|
4299
|
-
}
|
|
4300
|
-
|
|
4301
4253
|
_buildFullResCssAllowSet(prioritizedVisible, nodeObjectsById, module = this._module, lodBand = this._currentLodBand) {
|
|
4302
4254
|
const allowedIds = new Set();
|
|
4303
|
-
const currentVisibleIds = this._getNearVisibleIds(module);
|
|
4304
|
-
const now = typeof performance !== 'undefined' && typeof performance.now === 'function'
|
|
4305
|
-
? performance.now()
|
|
4306
|
-
: Date.now();
|
|
4307
|
-
const isMotionFrame =
|
|
4308
|
-
module?.isPanning === true ||
|
|
4309
|
-
module?.isZooming === true ||
|
|
4310
|
-
module?._fullResMotionFrozen === true;
|
|
4311
|
-
const recentMotionCooldownActive =
|
|
4312
|
-
(now - Number(module?._lastMotionEndAt || 0)) < 180;
|
|
4313
|
-
|
|
4314
|
-
// Preserve already visible CSS text during motion and cooldown.
|
|
4315
|
-
// Throttling should only slow new entrants, not evict visible text nodes.
|
|
4316
|
-
if (currentVisibleIds?.size > 0 && this._nearCssVisibleIds?.size > 0) {
|
|
4317
|
-
for (const nodeId of this._nearCssVisibleIds) {
|
|
4318
|
-
if (!currentVisibleIds.has(nodeId)) continue;
|
|
4319
|
-
const entry = nodeObjectsById?.get?.(nodeId) || null;
|
|
4320
|
-
if (!entry || !supportsCss3dNodeModel(entry.model)) continue;
|
|
4321
|
-
allowedIds.add(nodeId);
|
|
4322
|
-
}
|
|
4323
|
-
}
|
|
4324
4255
|
|
|
4325
4256
|
const stickyIds = [
|
|
4326
4257
|
module?.selectedNodeIdJs || null,
|
|
@@ -4352,27 +4283,15 @@
|
|
|
4352
4283
|
return allowedIds;
|
|
4353
4284
|
}
|
|
4354
4285
|
|
|
4355
|
-
//
|
|
4356
|
-
|
|
4357
|
-
|
|
4358
|
-
const nodeId = prioritizedVisible[i]?.nodeId;
|
|
4359
|
-
if (!nodeId || allowedIds.has(nodeId)) continue;
|
|
4360
|
-
const entry = nodeObjectsById?.get?.(nodeId) || null;
|
|
4361
|
-
if (!entry || !supportsCss3dNodeModel(entry.model)) continue;
|
|
4362
|
-
allowedIds.add(nodeId);
|
|
4363
|
-
}
|
|
4364
|
-
return allowedIds;
|
|
4365
|
-
}
|
|
4366
|
-
|
|
4367
|
-
let remainingEntrantBudget = Math.max(0, this._getMaxActiveFullResCssNodes(module, lodBand));
|
|
4286
|
+
// Full-res NEAR/NORMAL is the readable CSS3D path. Do not drop visible
|
|
4287
|
+
// text nodes during pan/zoom/cooldown; otherwise the expanded NORMAL band
|
|
4288
|
+
// shows empty cards until the throttled activation queue catches up.
|
|
4368
4289
|
for (let i = 0; i < prioritizedVisible.length; i++) {
|
|
4369
|
-
if (remainingEntrantBudget <= 0) break;
|
|
4370
4290
|
const nodeId = prioritizedVisible[i]?.nodeId;
|
|
4371
4291
|
if (!nodeId || allowedIds.has(nodeId)) continue;
|
|
4372
4292
|
const entry = nodeObjectsById?.get?.(nodeId) || null;
|
|
4373
4293
|
if (!entry || !supportsCss3dNodeModel(entry.model)) continue;
|
|
4374
4294
|
allowedIds.add(nodeId);
|
|
4375
|
-
remainingEntrantBudget--;
|
|
4376
4295
|
}
|
|
4377
4296
|
|
|
4378
4297
|
return allowedIds;
|
|
@@ -4503,20 +4422,61 @@
|
|
|
4503
4422
|
}
|
|
4504
4423
|
}
|
|
4505
4424
|
|
|
4506
|
-
|
|
4507
|
-
|
|
4508
|
-
|
|
4509
|
-
|
|
4425
|
+
_restoreCss3dTextSourceForHighDetail(entry) {
|
|
4426
|
+
const root = entry?.cssObject?.element || null;
|
|
4427
|
+
if (!root) return;
|
|
4428
|
+
if (!isTextLikeModel(entry?.model)) return;
|
|
4429
|
+
|
|
4430
|
+
const nodeId = String(entry?.model?.id || entry?.model?.Id || entry?.glObject?.userData?.nodeId || '').trim();
|
|
4431
|
+
const module = this._module || null;
|
|
4432
|
+
const overlayV2 = window.MindMapTextOverlayV2 || null;
|
|
4433
|
+
const overlayActive = !!nodeId && (
|
|
4434
|
+
overlayV2?.hasSelection?.(module, nodeId) === true ||
|
|
4435
|
+
overlayV2?.hasEditing?.(module, nodeId) === true
|
|
4436
|
+
);
|
|
4437
|
+
|
|
4438
|
+
if (overlayActive) {
|
|
4439
|
+
return;
|
|
4440
|
+
}
|
|
4441
|
+
|
|
4442
|
+
overlayV2?.resumeSource?.(entry);
|
|
4443
|
+
|
|
4444
|
+
const clearSuspendedTarget = (target) => {
|
|
4445
|
+
if (!target) return;
|
|
4446
|
+
target.classList?.remove?.('mind-map-v2-source-suspended');
|
|
4447
|
+
target.classList?.remove?.('mind-map-text-overlay-source-suspended');
|
|
4448
|
+
target.removeAttribute?.('data-text-overlay-source-suspended');
|
|
4449
|
+
if (target.style) {
|
|
4450
|
+
target.style.opacity = '';
|
|
4451
|
+
target.style.pointerEvents = '';
|
|
4452
|
+
target.style.userSelect = '';
|
|
4453
|
+
target.style.webkitUserSelect = '';
|
|
4454
|
+
target.style.caretColor = '';
|
|
4455
|
+
target.style.contentVisibility = '';
|
|
4456
|
+
target.style.containIntrinsicSize = '';
|
|
4457
|
+
target.style.contain = '';
|
|
4458
|
+
}
|
|
4459
|
+
};
|
|
4460
|
+
|
|
4461
|
+
clearSuspendedTarget(root);
|
|
4462
|
+
root.querySelectorAll?.('[data-text-overlay-source-suspended], .mind-map-text-overlay-source-suspended, .mind-map-v2-source-suspended')?.forEach?.(clearSuspendedTarget);
|
|
4463
|
+
}
|
|
4464
|
+
|
|
4465
|
+
_setNodeDetailLevel(entry, level) {
|
|
4466
|
+
if (!entry?.cssObject?.element) return;
|
|
4467
|
+
|
|
4468
|
+
const el = entry.cssObject.element;
|
|
4510
4469
|
const container = el.querySelector('.node-container') || el;
|
|
4511
4470
|
|
|
4512
4471
|
if (!container?.classList) return;
|
|
4513
4472
|
|
|
4514
|
-
if (level === 'HIGH') {
|
|
4515
|
-
container.classList.remove('lod-low');
|
|
4516
|
-
container.classList.add('lod-high');
|
|
4517
|
-
|
|
4518
|
-
|
|
4519
|
-
container.classList.
|
|
4473
|
+
if (level === 'HIGH') {
|
|
4474
|
+
container.classList.remove('lod-low');
|
|
4475
|
+
container.classList.add('lod-high');
|
|
4476
|
+
this._restoreCss3dTextSourceForHighDetail(entry);
|
|
4477
|
+
} else {
|
|
4478
|
+
container.classList.remove('lod-high');
|
|
4479
|
+
container.classList.add('lod-low');
|
|
4520
4480
|
}
|
|
4521
4481
|
}
|
|
4522
4482
|
|
|
@@ -5691,50 +5651,16 @@
|
|
|
5691
5651
|
}
|
|
5692
5652
|
|
|
5693
5653
|
_getAdaptiveNearCssActivationConfig(visibleCount = 0, module = this._module, isNearBoostFrame = false) {
|
|
5694
|
-
const
|
|
5695
|
-
|
|
5696
|
-
|
|
5697
|
-
: Date.now();
|
|
5698
|
-
const recentMotionCooldownActive =
|
|
5699
|
-
(now - Number(module?._lastMotionEndAt || 0)) < 180;
|
|
5700
|
-
const fullResMotionFrozen = module?._fullResMotionFrozen === true;
|
|
5701
|
-
const isMotionFrame =
|
|
5702
|
-
module?.isPanning === true ||
|
|
5703
|
-
module?.isZooming === true ||
|
|
5704
|
-
module?._fullResMotionFrozen === true;
|
|
5705
|
-
const boostCount = isNearBoostFrame ? 1 : 0;
|
|
5706
|
-
|
|
5707
|
-
if (fullResMotionFrozen) {
|
|
5708
|
-
return {
|
|
5709
|
-
maxPerFrame: Math.max(1, (visibleCount >= 144 ? 1 : 2) + boostCount),
|
|
5710
|
-
budgetMs: 1
|
|
5711
|
-
};
|
|
5712
|
-
}
|
|
5713
|
-
|
|
5714
|
-
if (isMotionFrame) {
|
|
5715
|
-
return {
|
|
5716
|
-
maxPerFrame: Math.max(2, (visibleCount >= 144 ? 2 : 3) + boostCount),
|
|
5717
|
-
budgetMs: 1.5
|
|
5718
|
-
};
|
|
5719
|
-
}
|
|
5720
|
-
|
|
5721
|
-
if (recentMotionCooldownActive) {
|
|
5722
|
-
return {
|
|
5723
|
-
maxPerFrame: Math.max(6, (visibleCount >= 144 ? 6 : 8) + boostCount),
|
|
5724
|
-
budgetMs: 3.5
|
|
5725
|
-
};
|
|
5726
|
-
}
|
|
5727
|
-
|
|
5728
|
-
if (avgFrameTime > 24) {
|
|
5729
|
-
return {
|
|
5730
|
-
maxPerFrame: Math.max(8, (visibleCount >= 144 ? 8 : 10) + boostCount),
|
|
5731
|
-
budgetMs: 4
|
|
5732
|
-
};
|
|
5733
|
-
}
|
|
5654
|
+
const visibleBudget = Number.isFinite(Number(visibleCount))
|
|
5655
|
+
? Math.max(1, Math.ceil(Number(visibleCount)))
|
|
5656
|
+
: Number.MAX_SAFE_INTEGER;
|
|
5734
5657
|
|
|
5658
|
+
// NEAR/NORMAL is the readable full-res CSS3D path. Splitting activation
|
|
5659
|
+
// across frames makes some nodes move or reveal later than others, which
|
|
5660
|
+
// is visually worse than a bounded one-tick activation cost.
|
|
5735
5661
|
return {
|
|
5736
|
-
maxPerFrame:
|
|
5737
|
-
budgetMs:
|
|
5662
|
+
maxPerFrame: visibleBudget,
|
|
5663
|
+
budgetMs: Number.MAX_SAFE_INTEGER
|
|
5738
5664
|
};
|
|
5739
5665
|
}
|
|
5740
5666
|
|
package/wwwroot/index.html
CHANGED
|
@@ -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=20260621-
|
|
11
|
-
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260621-
|
|
10
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260621-normal-text-restore-v808" />
|
|
11
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260621-normal-text-restore-v808" />
|
|
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 = '20260621-
|
|
582
|
+
const scriptVersion = '20260621-normal-text-restore-v808';
|
|
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": "K++PCGF7",
|
|
3
3
|
"assets": [
|
|
4
4
|
{
|
|
5
5
|
"hash": "sha256-+CSYMcqLNTsq3VnH11jgYyOCCdxvHzL74CBmo4sCmMU=",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"url": "_content/MindExecution.Shared/css/app.css"
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
|
-
"hash": "sha256-
|
|
45
|
+
"hash": "sha256-H3/sdU3NP0vCzGPw++siXpNyBLla/wi3+sjvcMSg6vQ=",
|
|
46
46
|
"url": "_content/MindExecution.Shared/css/mind-map-overrides.css"
|
|
47
47
|
},
|
|
48
48
|
{
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"url": "_content/MindExecution.Shared/js/marked.min.js"
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
|
-
"hash": "sha256-
|
|
81
|
+
"hash": "sha256-dU2gKWaOZoszfV7/dN6gL8t+2POGuIS5kFZ7Y529aPc=",
|
|
82
82
|
"url": "_content/MindExecution.Shared/js/mind-map-core.js"
|
|
83
83
|
},
|
|
84
84
|
{
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
"url": "_content/MindExecution.Shared/js/mind-map-lod-plan-worker.js"
|
|
115
115
|
},
|
|
116
116
|
{
|
|
117
|
-
"hash": "sha256-
|
|
117
|
+
"hash": "sha256-RxjDf83FLNGlh4jbmJ449idO13/CoV+xjddozjp2oMM=",
|
|
118
118
|
"url": "_content/MindExecution.Shared/js/mind-map-lod-renderer.js"
|
|
119
119
|
},
|
|
120
120
|
{
|
|
@@ -834,7 +834,7 @@
|
|
|
834
834
|
"url": "image-manifest.json"
|
|
835
835
|
},
|
|
836
836
|
{
|
|
837
|
-
"hash": "sha256-
|
|
837
|
+
"hash": "sha256-DZ1EAjCOSaZDYlvBMoOHY7XZdgvyYDoPmmvTrFrsQ/A=",
|
|
838
838
|
"url": "index.html"
|
|
839
839
|
},
|
|
840
840
|
{
|