@mindexec/cli 0.2.257 → 0.2.258
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 +99 -41
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-interactions.js +6 -2
- package/wwwroot/index.html +3 -3
- package/wwwroot/service-worker-assets.js +4 -4
- 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 = '20260620-
|
|
8
|
+
const MINDMAP_CORE_BUILD_ID = '20260620-local-grid-wheel-zoom-v705';
|
|
9
9
|
const CanvasPhase = Object.freeze({
|
|
10
10
|
Booting: 'booting',
|
|
11
11
|
BoardFileLoading: 'board-file-loading',
|
|
@@ -109,6 +109,9 @@
|
|
|
109
109
|
const LOCAL_SNAP_GRID_MAX_STEP_PX = 56;
|
|
110
110
|
const LOCAL_SNAP_GRID_STEP_BUCKET_PX = 2;
|
|
111
111
|
const LOCAL_SNAP_GRID_OPACITY_BUCKET = 0.04;
|
|
112
|
+
const LOCAL_SNAP_GRID_DEFAULT_STEP_PX = 24;
|
|
113
|
+
const LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX = 240;
|
|
114
|
+
const LOCAL_SNAP_GRID_DEFAULT_OPACITY = 0.42;
|
|
112
115
|
const CAMERA_MOTION_PARTIAL_FRAME_SKIP_ENABLED = false;
|
|
113
116
|
const CAMERA_MOTION_VISUAL_ONLY_FAST_PATH_ENABLED = true;
|
|
114
117
|
const CAMERA_MOTION_WEBGL_CANVAS_TRANSFORM_ENABLED = true;
|
|
@@ -3979,11 +3982,13 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3979
3982
|
layer.style.backgroundRepeat = 'repeat';
|
|
3980
3983
|
layer.style.backgroundColor = 'transparent';
|
|
3981
3984
|
layer.style.borderRadius = '50%';
|
|
3985
|
+
layer.style.overflow = 'hidden';
|
|
3986
|
+
layer.style.clipPath = 'circle(500px at 500px 500px)';
|
|
3982
3987
|
layer.style.contain = 'strict';
|
|
3983
3988
|
layer.style.willChange = 'transform, opacity';
|
|
3984
3989
|
layer.style.transform = 'translate3d(0, 0, 0)';
|
|
3985
3990
|
layer.style.transition = 'opacity 90ms linear';
|
|
3986
|
-
const mask = 'radial-gradient(circle at center, rgba(0,0,0,
|
|
3991
|
+
const mask = 'radial-gradient(circle at center, rgba(0,0,0,0.98) 0%, rgba(0,0,0,0.82) 34%, rgba(0,0,0,0.38) 56%, rgba(0,0,0,0.11) 74%, rgba(0,0,0,0.025) 88%, transparent 100%)';
|
|
3987
3992
|
layer.style.maskImage = mask;
|
|
3988
3993
|
layer.style.webkitMaskImage = mask;
|
|
3989
3994
|
|
|
@@ -4002,6 +4007,83 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
4002
4007
|
return layer;
|
|
4003
4008
|
}
|
|
4004
4009
|
|
|
4010
|
+
_getLocalSnapGridStyleKind() {
|
|
4011
|
+
const themeName = String(this.currentThemeName || '').trim();
|
|
4012
|
+
return themeName === 'SpatialGrid2D' ? 'dot' : 'line';
|
|
4013
|
+
}
|
|
4014
|
+
|
|
4015
|
+
_applyLocalSnapGridStyle(layer, styleKind, smallStepPx, majorStepPx, opacity, keyPrefix = 'style') {
|
|
4016
|
+
if (!layer) {
|
|
4017
|
+
return false;
|
|
4018
|
+
}
|
|
4019
|
+
|
|
4020
|
+
const safeStyleKind = styleKind === 'dot' ? 'dot' : 'line';
|
|
4021
|
+
const safeSmallStep = Math.max(
|
|
4022
|
+
LOCAL_SNAP_GRID_MIN_STEP_PX,
|
|
4023
|
+
Math.min(LOCAL_SNAP_GRID_MAX_STEP_PX, Number(smallStepPx) || LOCAL_SNAP_GRID_DEFAULT_STEP_PX)
|
|
4024
|
+
);
|
|
4025
|
+
const safeMajorStep = Math.max(safeSmallStep, Number(majorStepPx) || LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX);
|
|
4026
|
+
const safeOpacity = Math.max(0.2, Math.min(0.56, Number(opacity) || LOCAL_SNAP_GRID_DEFAULT_OPACITY));
|
|
4027
|
+
const localGridKey = [
|
|
4028
|
+
keyPrefix,
|
|
4029
|
+
safeStyleKind,
|
|
4030
|
+
Math.round(safeSmallStep * 100),
|
|
4031
|
+
Math.round(safeMajorStep * 100),
|
|
4032
|
+
Math.round(safeOpacity * 100)
|
|
4033
|
+
].join('|');
|
|
4034
|
+
|
|
4035
|
+
if (localGridKey === this._lastLocalSnapGridKey) {
|
|
4036
|
+
return false;
|
|
4037
|
+
}
|
|
4038
|
+
|
|
4039
|
+
this._lastLocalSnapGridKey = localGridKey;
|
|
4040
|
+
const opacityValue = safeOpacity.toFixed(3);
|
|
4041
|
+
this._lastLocalSnapGridOpacity = opacityValue;
|
|
4042
|
+
if (safeStyleKind === 'dot') {
|
|
4043
|
+
layer.style.backgroundImage = [
|
|
4044
|
+
'radial-gradient(circle at 0 0, rgba(58, 69, 88, 0.28) 1px, transparent 1.45px)',
|
|
4045
|
+
'radial-gradient(circle at 0 0, rgba(30, 41, 59, 0.4) 1.6px, transparent 2.05px)'
|
|
4046
|
+
].join(', ');
|
|
4047
|
+
layer.style.backgroundSize = `${safeSmallStep.toFixed(3)}px ${safeSmallStep.toFixed(3)}px, ${safeMajorStep.toFixed(3)}px ${safeMajorStep.toFixed(3)}px`;
|
|
4048
|
+
layer.style.backgroundPosition = '0 0, 0 0';
|
|
4049
|
+
} else {
|
|
4050
|
+
layer.style.backgroundImage = [
|
|
4051
|
+
'linear-gradient(to right, rgba(51, 65, 85, 0.16) 1px, transparent 1px)',
|
|
4052
|
+
'linear-gradient(to bottom, rgba(51, 65, 85, 0.16) 1px, transparent 1px)',
|
|
4053
|
+
'linear-gradient(to right, rgba(15, 23, 42, 0.28) 1px, transparent 1px)',
|
|
4054
|
+
'linear-gradient(to bottom, rgba(15, 23, 42, 0.28) 1px, transparent 1px)'
|
|
4055
|
+
].join(', ');
|
|
4056
|
+
layer.style.backgroundSize = `${safeSmallStep.toFixed(3)}px ${safeSmallStep.toFixed(3)}px, ${safeSmallStep.toFixed(3)}px ${safeSmallStep.toFixed(3)}px, ${safeMajorStep.toFixed(3)}px ${safeMajorStep.toFixed(3)}px, ${safeMajorStep.toFixed(3)}px ${safeMajorStep.toFixed(3)}px`;
|
|
4057
|
+
layer.style.backgroundPosition = '0 0, 0 0, 0 0, 0 0';
|
|
4058
|
+
}
|
|
4059
|
+
if (layer.style.opacity !== opacityValue) {
|
|
4060
|
+
layer.style.opacity = opacityValue;
|
|
4061
|
+
}
|
|
4062
|
+
return true;
|
|
4063
|
+
}
|
|
4064
|
+
|
|
4065
|
+
_ensureLocalSnapGridBaseStyle(layer = null) {
|
|
4066
|
+
const targetLayer = layer || this._ensureLocalSnapGridLayer();
|
|
4067
|
+
if (!targetLayer) {
|
|
4068
|
+
return false;
|
|
4069
|
+
}
|
|
4070
|
+
|
|
4071
|
+
if (this._lastLocalSnapGridKey) {
|
|
4072
|
+
return true;
|
|
4073
|
+
}
|
|
4074
|
+
|
|
4075
|
+
this._applyLocalSnapGridStyle(
|
|
4076
|
+
targetLayer,
|
|
4077
|
+
this._getLocalSnapGridStyleKind(),
|
|
4078
|
+
LOCAL_SNAP_GRID_DEFAULT_STEP_PX,
|
|
4079
|
+
LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX,
|
|
4080
|
+
LOCAL_SNAP_GRID_DEFAULT_OPACITY,
|
|
4081
|
+
'base'
|
|
4082
|
+
);
|
|
4083
|
+
this._localSnapGridStyleDeferredForZoom = true;
|
|
4084
|
+
return true;
|
|
4085
|
+
}
|
|
4086
|
+
|
|
4005
4087
|
_setLocalSnapGridVisible(visible, targetOpacity = null) {
|
|
4006
4088
|
const layer = this._localSnapGridLayer;
|
|
4007
4089
|
if (!layer) {
|
|
@@ -4100,51 +4182,19 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
4100
4182
|
)
|
|
4101
4183
|
);
|
|
4102
4184
|
const majorStepPx = smallStepPx * 10;
|
|
4103
|
-
const
|
|
4104
|
-
const
|
|
4105
|
-
const rawOpacity = Math.max(0.34, Math.min(0.82, cameraZ <= 1800 ? 0.72 : 0.72 - ((cameraZ - 1800) / 36000)));
|
|
4185
|
+
const styleKind = this._getLocalSnapGridStyleKind();
|
|
4186
|
+
const rawOpacity = Math.max(0.24, Math.min(0.54, cameraZ <= 1800 ? 0.48 : 0.48 - ((cameraZ - 1800) / 36000)));
|
|
4106
4187
|
const opacity = Math.max(
|
|
4107
|
-
0.
|
|
4108
|
-
Math.min(0.
|
|
4188
|
+
0.24,
|
|
4189
|
+
Math.min(0.54, Math.round(rawOpacity / LOCAL_SNAP_GRID_OPACITY_BUCKET) * LOCAL_SNAP_GRID_OPACITY_BUCKET)
|
|
4109
4190
|
);
|
|
4110
|
-
const localGridKey = [
|
|
4111
|
-
styleKind,
|
|
4112
|
-
Math.round(smallStepPx * 100),
|
|
4113
|
-
Math.round(majorStepPx * 100),
|
|
4114
|
-
Math.round(opacity * 100)
|
|
4115
|
-
].join('|');
|
|
4116
4191
|
const shouldDeferLocalGridStyleForZoom =
|
|
4117
4192
|
this.isZooming === true &&
|
|
4118
4193
|
!!this._lastLocalSnapGridKey;
|
|
4119
4194
|
|
|
4120
|
-
if (
|
|
4121
|
-
shouldDeferLocalGridStyleForZoom !== true) {
|
|
4195
|
+
if (shouldDeferLocalGridStyleForZoom !== true) {
|
|
4122
4196
|
this._localSnapGridStyleDeferredForZoom = false;
|
|
4123
|
-
this.
|
|
4124
|
-
const opacityValue = opacity.toFixed(3);
|
|
4125
|
-
this._lastLocalSnapGridOpacity = opacityValue;
|
|
4126
|
-
if (styleKind === 'dot') {
|
|
4127
|
-
layer.style.backgroundImage = [
|
|
4128
|
-
'radial-gradient(circle at 0 0, rgba(68, 78, 94, 0.34) 1px, transparent 1.55px)',
|
|
4129
|
-
'radial-gradient(circle at 0 0, rgba(44, 55, 74, 0.5) 1.7px, transparent 2.2px)'
|
|
4130
|
-
].join(', ');
|
|
4131
|
-
} else {
|
|
4132
|
-
layer.style.backgroundImage = [
|
|
4133
|
-
'linear-gradient(to right, rgba(70, 82, 100, 0.22) 1px, transparent 1px)',
|
|
4134
|
-
'linear-gradient(to bottom, rgba(70, 82, 100, 0.22) 1px, transparent 1px)',
|
|
4135
|
-
'linear-gradient(to right, rgba(42, 55, 75, 0.36) 1px, transparent 1px)',
|
|
4136
|
-
'linear-gradient(to bottom, rgba(42, 55, 75, 0.36) 1px, transparent 1px)'
|
|
4137
|
-
].join(', ');
|
|
4138
|
-
}
|
|
4139
|
-
layer.style.backgroundSize = styleKind === 'dot'
|
|
4140
|
-
? `${smallStepPx.toFixed(3)}px ${smallStepPx.toFixed(3)}px, ${majorStepPx.toFixed(3)}px ${majorStepPx.toFixed(3)}px`
|
|
4141
|
-
: `${smallStepPx.toFixed(3)}px ${smallStepPx.toFixed(3)}px, ${smallStepPx.toFixed(3)}px ${smallStepPx.toFixed(3)}px, ${majorStepPx.toFixed(3)}px ${majorStepPx.toFixed(3)}px, ${majorStepPx.toFixed(3)}px ${majorStepPx.toFixed(3)}px`;
|
|
4142
|
-
layer.style.backgroundPosition = styleKind === 'dot'
|
|
4143
|
-
? '0 0, 0 0'
|
|
4144
|
-
: '0 0, 0 0, 0 0, 0 0';
|
|
4145
|
-
if (layer.style.opacity !== opacityValue) {
|
|
4146
|
-
layer.style.opacity = opacityValue;
|
|
4147
|
-
}
|
|
4197
|
+
this._applyLocalSnapGridStyle(layer, styleKind, smallStepPx, majorStepPx, opacity);
|
|
4148
4198
|
} else if (shouldDeferLocalGridStyleForZoom === true) {
|
|
4149
4199
|
this._localSnapGridStyleDeferredForZoom = true;
|
|
4150
4200
|
}
|
|
@@ -4171,7 +4221,15 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
4171
4221
|
}
|
|
4172
4222
|
|
|
4173
4223
|
if (!this._localSnapGridLayer?.isConnected || !this._lastLocalSnapGridKey) {
|
|
4174
|
-
|
|
4224
|
+
const layer = this._ensureLocalSnapGridLayer();
|
|
4225
|
+
if (!layer) {
|
|
4226
|
+
return false;
|
|
4227
|
+
}
|
|
4228
|
+
if (this.isZooming === true) {
|
|
4229
|
+
this._ensureLocalSnapGridBaseStyle(layer);
|
|
4230
|
+
} else {
|
|
4231
|
+
return this._syncLocalSnapGridLayer(visible);
|
|
4232
|
+
}
|
|
4175
4233
|
}
|
|
4176
4234
|
|
|
4177
4235
|
const layer = this._localSnapGridLayer;
|
|
@@ -6407,8 +6407,12 @@ window.MindMapInteractions = (function () {
|
|
|
6407
6407
|
// ▼▼▼ [Perf] 줌 시작 시 isZooming 플래그 설정 및 will-change 활성화 ▼▼▼
|
|
6408
6408
|
if (!module.isZooming) {
|
|
6409
6409
|
module.isZooming = true;
|
|
6410
|
-
|
|
6411
|
-
|
|
6410
|
+
if (MOTION_DOM_FANOUT_ENABLED === true) {
|
|
6411
|
+
scheduleZoomMotionChrome(module);
|
|
6412
|
+
}
|
|
6413
|
+
if (module.renderDebugFlags?.enableCss3dWillChange === true) {
|
|
6414
|
+
scheduleMotionWillChangeEnable(module);
|
|
6415
|
+
}
|
|
6412
6416
|
}
|
|
6413
6417
|
// ▼▼▼ [Fix] 휠 입력 시간 기록 (줌 종료 타이밍 계산용) ▼▼▼
|
|
6414
6418
|
module._zoomInputTime = performance.now();
|
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=20260620-
|
|
11
|
-
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-
|
|
10
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260620-local-grid-wheel-zoom-v705" />
|
|
11
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-local-grid-wheel-zoom-v705" />
|
|
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 = '20260620-
|
|
582
|
+
const scriptVersion = '20260620-local-grid-wheel-zoom-v705';
|
|
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": "iiECfCDe",
|
|
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-ZD4BuG/qNa9B6cje0Prf1T9lWdnLv3azcQDqcu4LWF4=",
|
|
82
82
|
"url": "_content/MindExecution.Shared/js/mind-map-core.js"
|
|
83
83
|
},
|
|
84
84
|
{
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"url": "_content/MindExecution.Shared/js/mind-map-glow-shader.js"
|
|
107
107
|
},
|
|
108
108
|
{
|
|
109
|
-
"hash": "sha256-
|
|
109
|
+
"hash": "sha256-oHhdP4cltwUivQrUKDEMENUIE3cKk29F/IEk2Rg3JPM=",
|
|
110
110
|
"url": "_content/MindExecution.Shared/js/mind-map-interactions.js"
|
|
111
111
|
},
|
|
112
112
|
{
|
|
@@ -834,7 +834,7 @@
|
|
|
834
834
|
"url": "image-manifest.json"
|
|
835
835
|
},
|
|
836
836
|
{
|
|
837
|
-
"hash": "sha256-
|
|
837
|
+
"hash": "sha256-cT/4dyrhG2eQz7HKOf4fcBIn4qhPlMHdbA4tqQymjOQ=",
|
|
838
838
|
"url": "index.html"
|
|
839
839
|
},
|
|
840
840
|
{
|