@mavonengine/editor 0.0.3 → 0.0.5

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.
@@ -1,10 +1,10 @@
1
- import { Quaternion as S, Controls as Ee, Vector3 as l, Raycaster as Le, Object3D as le, MeshBasicMaterial as me, LineBasicMaterial as Xe, CylinderGeometry as g, BoxGeometry as v, BufferGeometry as pe, Float32BufferAttribute as he, Mesh as o, OctahedronGeometry as se, Line as B, TorusGeometry as j, SphereGeometry as He, Euler as Oe, Matrix4 as ce, PlaneGeometry as Ye, DoubleSide as fe, OrthographicCamera as Ze, Color as F, Vector2 as k, WebGLRenderTarget as X, MeshDepthMaterial as Ue, RGBADepthPacking as je, NoBlending as we, HalfFloatType as U, UniformsUtils as Fe, ShaderMaterial as V, AdditiveBlending as Ve } from "three";
1
+ import { Quaternion as M, Controls as Ee, Vector3 as l, Raycaster as Le, Object3D as le, MeshBasicMaterial as me, LineBasicMaterial as Xe, CylinderGeometry as g, BoxGeometry as v, BufferGeometry as pe, Float32BufferAttribute as he, Mesh as o, OctahedronGeometry as se, Line as B, TorusGeometry as j, SphereGeometry as He, Euler as Oe, Matrix4 as ce, PlaneGeometry as Ye, DoubleSide as fe, OrthographicCamera as Ze, Color as F, Vector2 as k, WebGLRenderTarget as X, MeshDepthMaterial as Ue, RGBADepthPacking as je, NoBlending as we, HalfFloatType as U, UniformsUtils as Fe, ShaderMaterial as V, AdditiveBlending as Ve } from "three";
2
2
  import Ge from "@mavonengine/core/Editor/EditorHelper";
3
3
  import c from "@mavonengine/core/Game";
4
4
  import { AmbientLightPrimitive as We, DirectionalLightShadowPrimitive as qe } from "@mavonengine/core/Prefab/Lights/index";
5
5
  import { PlanePrimitive as Ke, BoxPrimitive as Ne, SpherePrimitive as $e, ConePrimitive as Je, CylinderPrimitive as et, OctahedronPrimitive as tt, DodecahedronPrimitive as it, CapsulePrimitive as st, IcosahedronPrimitive as nt, TorusKnotPrimitive as at } from "@mavonengine/core/Prefab/Primitives/index";
6
6
  import rt from "@mavonengine/core/Utils/EventEmitter";
7
- const ot = { type: "change" }, ge = 1e-6, ye = new S();
7
+ const ot = { type: "change" }, ge = 1e-6, ye = new M();
8
8
  class lt extends Ee {
9
9
  /**
10
10
  * Constructs a new controls instance.
@@ -13,7 +13,7 @@ class lt extends Ee {
13
13
  * @param {?HTMLDOMElement} domElement - The HTML element used for event listeners.
14
14
  */
15
15
  constructor(e, t = null) {
16
- super(e, t), this.movementSpeed = 1, this.rollSpeed = 5e-3, this.dragToLook = !1, this.autoForward = !1, this._moveState = { up: 0, down: 0, left: 0, right: 0, forward: 0, back: 0, pitchUp: 0, pitchDown: 0, yawLeft: 0, yawRight: 0, rollLeft: 0, rollRight: 0 }, this._moveVector = new l(0, 0, 0), this._rotationVector = new l(0, 0, 0), this._lastQuaternion = new S(), this._lastPosition = new l(), this._status = 0, this._onKeyDown = ht.bind(this), this._onKeyUp = ct.bind(this), this._onPointerMove = dt.bind(this), this._onPointerDown = ut.bind(this), this._onPointerUp = pt.bind(this), this._onPointerCancel = ft.bind(this), this._onContextMenu = mt.bind(this), t !== null && this.connect(t);
16
+ super(e, t), this.movementSpeed = 1, this.rollSpeed = 5e-3, this.dragToLook = !1, this.autoForward = !1, this._moveState = { up: 0, down: 0, left: 0, right: 0, forward: 0, back: 0, pitchUp: 0, pitchDown: 0, yawLeft: 0, yawRight: 0, rollLeft: 0, rollRight: 0 }, this._moveVector = new l(0, 0, 0), this._rotationVector = new l(0, 0, 0), this._lastQuaternion = new M(), this._lastPosition = new l(), this._status = 0, this._onKeyDown = ht.bind(this), this._onKeyUp = ct.bind(this), this._onPointerMove = dt.bind(this), this._onPointerDown = ut.bind(this), this._onPointerUp = pt.bind(this), this._onPointerCancel = ft.bind(this), this._onContextMenu = mt.bind(this), t !== null && this.connect(t);
17
17
  }
18
18
  connect(e) {
19
19
  super.connect(e), window.addEventListener("keydown", this._onKeyDown), window.addEventListener("keyup", this._onKeyUp), this.domElement.addEventListener("pointermove", this._onPointerMove), this.domElement.addEventListener("pointerdown", this._onPointerDown), this.domElement.addEventListener("pointerup", this._onPointerUp), this.domElement.addEventListener("pointercancel", this._onPointerCancel), this.domElement.addEventListener("contextmenu", this._onContextMenu);
@@ -187,11 +187,11 @@ function ft() {
187
187
  function mt(h) {
188
188
  this.enabled !== !1 && h.preventDefault();
189
189
  }
190
- const H = new Le(), m = new l(), I = new l(), p = new S(), _e = {
190
+ const H = new Le(), m = new l(), I = new l(), p = new M(), _e = {
191
191
  X: new l(1, 0, 0),
192
192
  Y: new l(0, 1, 0),
193
193
  Z: new l(0, 0, 1)
194
- }, ue = { type: "change" }, Se = { type: "mouseDown", mode: null }, Me = { type: "mouseUp", mode: null }, xe = { type: "objectChange" };
194
+ }, ue = { type: "change" }, Me = { type: "mouseDown", mode: null }, Se = { type: "mouseUp", mode: null }, xe = { type: "objectChange" };
195
195
  class vt extends Ee {
196
196
  /**
197
197
  * Constructs a new controls instance.
@@ -201,7 +201,7 @@ class vt extends Ee {
201
201
  */
202
202
  constructor(e, t = null) {
203
203
  super(void 0, t);
204
- const n = new Mt(this);
204
+ const n = new St(this);
205
205
  this._root = n;
206
206
  const s = new xt();
207
207
  this._gizmo = s, n.add(s);
@@ -220,8 +220,8 @@ class vt extends Ee {
220
220
  }), i[y] = z, r[y] = z, s[y] = z;
221
221
  }
222
222
  a("camera", e), a("object", void 0), a("enabled", !0), a("axis", null), a("mode", "translate"), a("translationSnap", null), a("rotationSnap", null), a("scaleSnap", null), a("space", "world"), a("size", 1), a("dragging", !1), a("showX", !0), a("showY", !0), a("showZ", !0), a("minX", -1 / 0), a("maxX", 1 / 0), a("minY", -1 / 0), a("maxY", 1 / 0), a("minZ", -1 / 0), a("maxZ", 1 / 0);
223
- const d = new l(), f = new l(), D = new S(), R = new S(), Q = new l(), N = new S(), $ = new l(), P = new l(), T = new l(), x = 0, E = new l();
224
- a("worldPosition", d), a("worldPositionStart", f), a("worldQuaternion", D), a("worldQuaternionStart", R), a("cameraPosition", Q), a("cameraQuaternion", N), a("pointStart", $), a("pointEnd", P), a("rotationAxis", T), a("rotationAngle", x), a("eye", E), this._offset = new l(), this._startNorm = new l(), this._endNorm = new l(), this._cameraScale = new l(), this._parentPosition = new l(), this._parentQuaternion = new S(), this._parentQuaternionInv = new S(), this._parentScale = new l(), this._worldScaleStart = new l(), this._worldQuaternionInv = new S(), this._worldScale = new l(), this._positionStart = new l(), this._quaternionStart = new S(), this._scaleStart = new l(), this._getPointer = wt.bind(this), this._onPointerDown = yt.bind(this), this._onPointerHover = gt.bind(this), this._onPointerMove = _t.bind(this), this._onPointerUp = St.bind(this), t !== null && this.connect(t);
223
+ const d = new l(), f = new l(), D = new M(), R = new M(), Q = new l(), N = new M(), $ = new l(), P = new l(), T = new l(), x = 0, E = new l();
224
+ a("worldPosition", d), a("worldPositionStart", f), a("worldQuaternion", D), a("worldQuaternionStart", R), a("cameraPosition", Q), a("cameraQuaternion", N), a("pointStart", $), a("pointEnd", P), a("rotationAxis", T), a("rotationAngle", x), a("eye", E), this._offset = new l(), this._startNorm = new l(), this._endNorm = new l(), this._cameraScale = new l(), this._parentPosition = new l(), this._parentQuaternion = new M(), this._parentQuaternionInv = new M(), this._parentScale = new l(), this._worldScaleStart = new l(), this._worldQuaternionInv = new M(), this._worldScale = new l(), this._positionStart = new l(), this._quaternionStart = new M(), this._scaleStart = new l(), this._getPointer = wt.bind(this), this._onPointerDown = yt.bind(this), this._onPointerHover = gt.bind(this), this._onPointerMove = _t.bind(this), this._onPointerUp = Mt.bind(this), t !== null && this.connect(t);
225
225
  }
226
226
  connect(e) {
227
227
  super.connect(e), this.domElement.addEventListener("pointerdown", this._onPointerDown), this.domElement.addEventListener("pointermove", this._onPointerHover), this.domElement.addEventListener("pointerup", this._onPointerUp), this.domElement.style.touchAction = "none";
@@ -248,7 +248,7 @@ class vt extends Ee {
248
248
  if (!(this.object === void 0 || this.dragging === !0 || e != null && e.button !== 0) && this.axis !== null) {
249
249
  e !== null && H.setFromCamera(e, this.camera);
250
250
  const t = de(this._plane, H, !0);
251
- t && (this.object.updateMatrixWorld(), this.object.parent.updateMatrixWorld(), this._positionStart.copy(this.object.position), this._quaternionStart.copy(this.object.quaternion), this._scaleStart.copy(this.object.scale), this.object.matrixWorld.decompose(this.worldPositionStart, this.worldQuaternionStart, this._worldScaleStart), this.pointStart.copy(t.point).sub(this.worldPositionStart)), this.dragging = !0, Se.mode = this.mode, this.dispatchEvent(Se);
251
+ t && (this.object.updateMatrixWorld(), this.object.parent.updateMatrixWorld(), this._positionStart.copy(this.object.position), this._quaternionStart.copy(this.object.quaternion), this._scaleStart.copy(this.object.scale), this.object.matrixWorld.decompose(this.worldPositionStart, this.worldQuaternionStart, this._worldScaleStart), this.pointStart.copy(t.point).sub(this.worldPositionStart)), this.dragging = !0, Me.mode = this.mode, this.dispatchEvent(Me);
252
252
  }
253
253
  }
254
254
  pointerMove(e) {
@@ -277,7 +277,7 @@ class vt extends Ee {
277
277
  }
278
278
  }
279
279
  pointerUp(e) {
280
- e !== null && e.button !== 0 || (this.dragging && this.axis !== null && (Me.mode = this.mode, this.dispatchEvent(Me)), this.dragging = !1, this.axis = null);
280
+ e !== null && e.button !== 0 || (this.dragging && this.axis !== null && (Se.mode = this.mode, this.dispatchEvent(Se)), this.dragging = !1, this.axis = null);
281
281
  }
282
282
  dispose() {
283
283
  this.disconnect(), this._root.dispose();
@@ -402,7 +402,7 @@ function yt(h) {
402
402
  function _t(h) {
403
403
  this.enabled && this.pointerMove(this._getPointer(h));
404
404
  }
405
- function St(h) {
405
+ function Mt(h) {
406
406
  this.enabled && (this.domElement.releasePointerCapture(h.pointerId), this.domElement.removeEventListener("pointermove", this._onPointerMove), this.pointerUp(this._getPointer(h)));
407
407
  }
408
408
  function de(h, e, t) {
@@ -412,8 +412,8 @@ function de(h, e, t) {
412
412
  return n[s];
413
413
  return !1;
414
414
  }
415
- const ne = new Oe(), u = new l(0, 1, 0), be = new l(0, 0, 0), Pe = new ce(), ae = new S(), oe = new S(), b = new l(), Te = new ce(), q = new l(1, 0, 0), O = new l(0, 1, 0), K = new l(0, 0, 1), re = new l(), G = new l(), W = new l();
416
- class Mt extends le {
415
+ const ne = new Oe(), u = new l(0, 1, 0), be = new l(0, 0, 0), Pe = new ce(), ae = new M(), oe = new M(), b = new l(), Te = new ce(), q = new l(1, 0, 0), O = new l(0, 1, 0), K = new l(0, 0, 1), re = new l(), G = new l(), W = new l();
416
+ class St extends le {
417
417
  constructor(e) {
418
418
  super(), this.isTransformControlsRoot = !0, this.controls = e, this.visible = !1;
419
419
  }
@@ -474,8 +474,8 @@ class xt extends le {
474
474
  const E = new g(75e-4, 75e-4, 0.5, 3);
475
475
  E.translate(0, 0.25, 0);
476
476
  function y(_, J) {
477
- const M = new j(_, 75e-4, 3, 64, J * Math.PI * 2);
478
- return M.rotateY(Math.PI / 2), M.rotateX(Math.PI / 2), M;
477
+ const S = new j(_, 75e-4, 3, 64, J * Math.PI * 2);
478
+ return S.rotateY(Math.PI / 2), S.rotateX(Math.PI / 2), S;
479
479
  }
480
480
  function z() {
481
481
  const _ = new pe();
@@ -655,10 +655,10 @@ class xt extends le {
655
655
  };
656
656
  function C(_) {
657
657
  const J = new le();
658
- for (const M in _)
659
- for (let Z = _[M].length; Z--; ) {
660
- const w = _[M][Z][0].clone(), ee = _[M][Z][1], te = _[M][Z][2], ie = _[M][Z][3], ze = _[M][Z][4];
661
- w.name = M, w.tag = ze, ee && w.position.set(ee[0], ee[1], ee[2]), te && w.rotation.set(te[0], te[1], te[2]), ie && w.scale.set(ie[0], ie[1], ie[2]), w.updateMatrix();
658
+ for (const S in _)
659
+ for (let Z = _[S].length; Z--; ) {
660
+ const w = _[S][Z][0].clone(), ee = _[S][Z][1], te = _[S][Z][2], ie = _[S][Z][3], ze = _[S][Z][4];
661
+ w.name = S, w.tag = ze, ee && w.position.set(ee[0], ee[1], ee[2]), te && w.rotation.set(te[0], te[1], te[2]), ie && w.scale.set(ie[0], ie[1], ie[2]), w.updateMatrix();
662
662
  const ve = w.geometry.clone();
663
663
  ve.applyMatrix4(w.matrix), w.geometry = ve, w.renderOrder = 1 / 0, w.position.set(0, 0, 0), w.rotation.set(0, 0, 0), w.scale.set(1, 1, 1), J.add(w);
664
664
  }
@@ -815,7 +815,6 @@ class kt {
815
815
  }
816
816
  }
817
817
  const Dt = {
818
- name: "CopyShader",
819
818
  uniforms: {
820
819
  tDiffuse: { value: null },
821
820
  opacity: { value: 1 }
@@ -1186,7 +1185,7 @@ class Ce extends rt {
1186
1185
  var n, s;
1187
1186
  t instanceof o && ((n = t.geometry) == null || n.dispose(), Array.isArray(t.material) ? t.material.forEach((r) => r.dispose()) : (s = t.material) == null || s.dispose());
1188
1187
  }), c.instance().scene.clear(), this.initEditorScene(), c.instance().contextMenuAbort.abort(), c.instance().uiRoot.innerHTML = "", c.instance().uiRoot.style.opacity = "1", document.title = "MavonEngine | Editor", document.getElementsByTagName("body")[0].removeAttribute("onContextMenu"), Promise.all([
1189
- import("./mount-wt1eaFr0.mjs"),
1188
+ import("./mount-CUUpNaC9.mjs"),
1190
1189
  Promise.resolve({ })
1191
1190
  ]).then(([{ mountEditorUI: t }]) => {
1192
1191
  this.reactRoot = t(c.instance().uiRoot);
@@ -1325,9 +1324,6 @@ class Ce extends rt {
1325
1324
  }
1326
1325
  }
1327
1326
  export {
1328
- Dt as C,
1329
1327
  Ce as E,
1330
- kt as F,
1331
- Pt as P,
1332
1328
  Bt as a
1333
1329
  };
package/dist/Editor.css CHANGED
@@ -1 +1 @@
1
- :root{--bg-primary: #1A1A1A;--bg-secondary: #222222;--bg-panel: #2A2A2A;--bg-input: #1E1E1E;--bg-viewport: #111111;--bg-header: #1A1A1A;--bg-toolbar: #252525;--bg-hover: #333333;--bg-selected: #2C3E50;--bg-active: #3A3A3A;--bg-statusbar: #007ACC;--text-primary: #E0E0E0;--text-secondary: #888888;--text-muted: #666666;--text-label: #AAAAAA;--text-bright: #FFFFFF;--border-primary: #333333;--border-subtle: #2A2A2A;--border-active: #555555;--accent-blue: #007ACC;--accent-green: #4EC9B0;--accent-orange: #CE9178;--accent-yellow: #DCDCAA;--accent-red: #F44747;--accent-purple: #C586C0;--icon-default: #AAAAAA;--icon-active: #FFFFFF;--icon-accent: #007ACC;--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "Space Mono", "SF Mono", "Fira Code", monospace;--font-size-xs: 10px;--font-size-sm: 11px;--font-size-md: 12px;--font-size-lg: 13px;--font-size-xl: 14px;--font-size-title: 16px;--spacing-xs: 2px;--spacing-sm: 4px;--spacing-md: 8px;--spacing-lg: 12px;--spacing-xl: 16px;--spacing-2xl: 24px;--radius-none: 0px;--radius-sm: 2px;--radius-md: 4px;--radius-lg: 6px}html,body,#root,#ui{height:100%;margin:0;overflow:hidden}*{box-sizing:border-box}[data-panel-resize-handle-id]{background-color:var(--border-primary);transition:background-color .15s ease}[data-panel-resize-handle-id]:hover,[data-panel-resize-handle-id][data-resize-handle-active]{background-color:var(--accent-blue)}._activityBar_4dnwm_1{width:40px;min-width:40px;height:100%;background-color:var(--bg-header);display:flex;flex-direction:column;align-items:center;padding:var(--spacing-md) 0;gap:var(--spacing-xs);border-right:1px solid var(--border-primary)}._icon_4dnwm_14{width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--radius-sm);transition:background-color .1s ease}._icon_4dnwm_14:hover{background-color:var(--bg-hover)}._icon_4dnwm_14._active_4dnwm_29{background-color:var(--accent-blue)}._icon_4dnwm_14 svg{width:16px;height:16px}*{margin:0}body{overflow:hidden}canvas{display:block;width:100vw;height:100vh}.point{position:absolute;top:50%;left:50%;pointer-events:none}.point .label{position:absolute;top:-20px;left:-20px;width:40px;height:40px;border-radius:50%;color:#fff;text-align:center;background:#00000080;font-family:Helvetica,Arial,sans-serif;line-height:40px;font-weight:100;font-size:14px}.point .text{position:absolute;top:30px;width:200px;background:#00000080;color:#fff;line-height:1.3rem;font-weight:100;font-size:14px;left:-100px;text-align:center;padding:20px;border-radius:10px}._window_ybolb_1{background-color:var(--bg-secondary)!important;border:1px solid var(--border-primary)!important;border-radius:var(--radius-md)!important;color:var(--text-primary);font-family:var(--font-ui);font-size:var(--font-size-lg);display:flex!important;flex-direction:column!important;overflow:hidden!important;z-index:1000;box-shadow:0 8px 32px #0009!important}._handle_ybolb_15{height:28px;min-height:28px;background-color:var(--bg-header);border-bottom:1px solid var(--border-primary);border-radius:var(--radius-md) var(--radius-md) 0 0;cursor:grab;-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:flex-end;padding:0 var(--spacing-md)}._handle_ybolb_15:active{cursor:grabbing}._title_ybolb_33{flex:1;font-size:var(--font-size-md);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 var(--spacing-md);-webkit-user-select:none;user-select:none}._body_ybolb_44{flex:1;overflow:auto;padding:var(--spacing-lg);min-height:0}._close_ybolb_51{background:none;border:none;color:var(--text-muted);font-size:var(--font-size-xl);cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm);line-height:1;flex-shrink:0}._close_ybolb_51:hover{color:var(--text-primary);background-color:var(--bg-hover)}._assetsPanel_5ux7f_1{display:flex;flex-direction:column;flex:1;overflow:hidden}._toolbar_5ux7f_8{display:flex;align-items:center;gap:var(--spacing-md);padding:0 var(--spacing-md);height:24px;flex-shrink:0}._searchWrapper_5ux7f_17{flex:1;position:relative;display:flex;align-items:center}._search_5ux7f_17{width:100%;height:20px;padding:0 20px 0 var(--spacing-md);background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--font-size-xs);outline:none;box-sizing:border-box}._search_5ux7f_17::placeholder{color:var(--text-muted)}._search_5ux7f_17:focus{border-color:var(--accent-blue)}._searchClear_5ux7f_46{position:absolute;right:4px;background:none;border:none;color:var(--text-muted);font-size:10px;cursor:pointer;padding:0;line-height:1;display:flex;align-items:center}._searchClear_5ux7f_46:hover{color:var(--text-primary)}._categorySelect_5ux7f_64{height:20px;padding:0 var(--spacing-sm);background-color:var(--bg-active);border:none;border-radius:9px;color:var(--text-primary);font-family:var(--font-ui);font-size:var(--font-size-xs);outline:none;cursor:pointer;flex-shrink:0}._categorySelect_5ux7f_64:focus{border-color:var(--accent-blue)}._assets_5ux7f_1{flex:1;overflow:auto;padding:var(--spacing-lg);display:flex;flex-wrap:wrap;gap:var(--spacing-lg);align-content:flex-start;align-items:flex-start}._assetRow_5ux7f_93{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--font-size-xs);color:var(--text-secondary);cursor:grab;max-width:80px;word-break:break-word;text-align:center}._assetRow_5ux7f_93:hover{background-color:var(--bg-hover)}._assetRow_5ux7f_93 img{width:64px;height:64px;object-fit:contain;border-radius:var(--radius-sm);border:1px solid var(--border-primary);background-color:var(--bg-input)}._texturePreview_5ux7f_122{width:64px;height:64px;object-fit:contain;border-radius:var(--radius-sm);border:1px solid var(--border-primary);background-image:linear-gradient(45deg,#2a2a2a 25%,transparent 25%),linear-gradient(-45deg,#2a2a2a 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#2a2a2a 75%),linear-gradient(-45deg,transparent 75%,#2a2a2a 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0;background-color:var(--bg-input)}._assetIcon_5ux7f_138{width:64px;height:64px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid var(--border-primary);background-color:var(--bg-input);cursor:grab}._assetIcon_5ux7f_138 svg{width:24px;height:24px;color:var(--text-muted)}._stats_1gd9h_1{display:flex;flex-direction:column;gap:var(--spacing-md);flex-shrink:0;width:90px;border-left:1px solid var(--border-primary);padding:0 var(--spacing-lg);justify-content:center}._stat_1gd9h_1{display:flex;flex-direction:column;gap:1px}._label_1gd9h_18{font-family:var(--font-ui);font-size:var(--font-size-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}._value_1gd9h_26{font-family:var(--font-mono);font-size:var(--font-size-md);color:var(--text-primary);font-variant-numeric:tabular-nums}._player_nqeb9_1{display:flex;flex-direction:row;gap:0;height:100%}._main_nqeb9_8{display:flex;flex-direction:column;gap:var(--spacing-lg);flex:1;min-width:0}._waveform_nqeb9_16{flex:1;min-height:0}._controls_nqeb9_21{display:flex;align-items:center;gap:var(--spacing-md);flex-shrink:0}._playButton_nqeb9_28{background:none;border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-size-xl);cursor:pointer;width:28px;height:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0}._playButton_nqeb9_28:hover{background-color:var(--bg-hover)}._time_nqeb9_47{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-muted);font-variant-numeric:tabular-nums}._wrapper_65zj4_1{position:relative;display:flex;flex-direction:column;width:100%;height:100%}._canvas_65zj4_9{width:100%;height:100%;background-color:var(--bg-viewport)}._toolbar_65zj4_15{display:flex;align-items:center;height:32px;padding:0 var(--spacing-md);gap:var(--spacing-sm);background-color:var(--bg-toolbar);border-bottom:1px solid var(--border-primary);flex-shrink:0}._toolBtn_65zj4_26{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:none;color:var(--icon-default);cursor:pointer;transition:background-color .1s ease,color .1s ease;padding:0}._toolBtn_65zj4_26:hover{background-color:var(--bg-hover);color:var(--icon-active)}._toolBtn_65zj4_26._active_65zj4_46{background-color:var(--accent-blue);color:var(--icon-active)}._separator_65zj4_51{width:1px;height:16px;background-color:var(--border-primary);flex-shrink:0}._toolbarRight_65zj4_58{position:absolute;top:2px;right:var(--spacing-md);display:flex;gap:var(--spacing-sm);z-index:10;pointer-events:all;align-items:flex-start}._overlayDropdown_65zj4_69{position:absolute;top:calc(100% + 6px);right:0;background-color:var(--bg-panel);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-lg);min-width:180px;z-index:20;display:flex;flex-direction:column;gap:var(--spacing-sm);font-family:var(--font-ui);font-size:var(--font-size-lg)}._overlaySection_65zj4_86{font-size:var(--font-size-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-top:6px;margin-bottom:2px}._overlaySection_65zj4_86:first-child{margin-top:0}._overlayRow_65zj4_99{display:flex;align-items:center;gap:var(--spacing-md);font-size:var(--font-size-lg);color:var(--text-primary);cursor:pointer;padding:2px 0;-webkit-user-select:none;user-select:none}._overlayRow_65zj4_99:hover{color:var(--text-bright)}._overlayRow_65zj4_99 input[type=checkbox]{accent-color:var(--accent-blue);width:14px;height:14px;cursor:pointer;flex-shrink:0}._viewer_8mn40_1{display:flex;flex-direction:row;height:100%;max-height:100%;overflow:hidden}._canvasWrapper_8mn40_9{position:relative;flex:1;min-width:0;min-height:0}._toolbar_8mn40_16{position:absolute;top:var(--spacing-md);left:var(--spacing-md);display:flex;gap:var(--spacing-sm);background-color:var(--bg-panel);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-sm);z-index:10}._animBar_8mn40_29{position:absolute;bottom:30px;left:var(--spacing-md);z-index:10;display:flex;align-items:center;gap:var(--spacing-md);background-color:var(--bg-panel);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md)}._scrubber_8mn40_43{position:absolute;bottom:0;left:0;width:100%;height:20px;z-index:10;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer;margin:0;padding:0}._scrubber_8mn40_43::-webkit-slider-runnable-track{background:var(--bg-panel);border-top:1px solid var(--border-primary);height:4px}._scrubber_8mn40_43::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent-blue);cursor:pointer;margin-top:-4px}._scrubber_8mn40_43::-moz-range-track{background:var(--bg-panel);border-top:1px solid var(--border-primary);height:4px}._scrubber_8mn40_43::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--accent-blue);cursor:pointer;border:none}._animSelect_8mn40_89{background:none;border:none;color:var(--text-primary);font-family:var(--font-ui);font-size:var(--font-size-md);cursor:pointer;outline:none;max-width:200px}._animSelect_8mn40_89:hover{border-color:var(--border-active)}._animLoopLabel_8mn40_104{display:flex;align-items:center;gap:5px;color:var(--text-primary);font-family:var(--font-ui);font-size:var(--font-size-md);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}._viewer_76hio_1{display:flex;flex-direction:row;height:100%;max-height:100%;overflow:hidden}._imageWrapper_76hio_9{flex:1;min-width:0;min-height:0;position:relative;overflow:hidden;background-image:linear-gradient(45deg,#2a2a2a 25%,transparent 25%),linear-gradient(-45deg,#2a2a2a 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#2a2a2a 75%),linear-gradient(-45deg,transparent 75%,#2a2a2a 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0;background-color:var(--bg-input)}._zoomInner_76hio_25{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:0 0;display:flex;align-items:center;justify-content:center}._image_76hio_9{max-width:100%;max-height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none}._zoomReset_76hio_42{position:absolute;bottom:var(--spacing-md);right:var(--spacing-md);background:var(--bg-panel);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-mono);padding:2px 6px;cursor:pointer;z-index:10;-webkit-user-select:none;user-select:none}._zoomReset_76hio_42:hover{background:var(--bg-hover)}._cubeCross_76hio_62{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,1fr);gap:2px;width:100%;height:100%;padding:var(--spacing-md);box-sizing:border-box;-webkit-user-select:none;user-select:none;pointer-events:none}._cubeFace_76hio_75{position:relative;background-image:linear-gradient(45deg,#2a2a2a 25%,transparent 25%),linear-gradient(-45deg,#2a2a2a 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#2a2a2a 75%),linear-gradient(-45deg,transparent 75%,#2a2a2a 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0;background-color:var(--bg-input);overflow:hidden}._cubeFace_76hio_75 img{width:100%;height:100%;object-fit:contain;display:block}._faceLabel_76hio_95{position:absolute;bottom:3px;left:4px;font-size:9px;font-family:var(--font-mono);color:#ffffffa6;pointer-events:none;text-shadow:0 1px 2px rgba(0,0,0,.8)}._cubeEmpty_76hio_106{background:transparent}._noPreview_76hio_110{color:var(--text-muted);font-size:var(--font-size-md);font-family:var(--font-ui);-webkit-user-select:none;user-select:none}._root_ngf3k_1{display:flex;flex-direction:column;height:100%;background-color:var(--bg-primary)}._main_ngf3k_8{display:flex;flex:1;overflow:hidden}._editor_ngf3k_14{flex:1;height:100%;background-color:var(--bg-primary)}._panel_ngf3k_20{font-family:var(--font-ui);font-size:var(--font-size-lg);color:var(--text-primary);background-color:var(--bg-secondary)}._panelContent_ngf3k_27{display:flex;flex-direction:column;height:100%;overflow:hidden}._panelBody_ngf3k_34{flex:1;overflow:auto;padding:var(--spacing-md)}._middleGroup_ngf3k_40{flex:1}._panelHeader_25fch_1{height:28px;min-height:28px;display:flex;align-items:center;padding:0 var(--spacing-md);background-color:var(--bg-header);font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--text-secondary);-webkit-user-select:none;user-select:none}._container_1jjbp_1{display:flex;flex-direction:column;gap:4px}._nameRow_1jjbp_8{display:flex;align-items:center;height:32px;padding:0 12px;gap:8px;background-color:var(--bg-panel);border-bottom:1px solid var(--border-primary)}._nameIcon_1jjbp_18{width:16px;height:16px;flex-shrink:0}._nameText_1jjbp_24{font-family:var(--font-ui);font-size:var(--font-size-xl);font-weight:600;color:var(--text-bright)}._sectionHeader_1jjbp_32{display:flex;align-items:center;height:24px;padding:0 8px;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none}._sectionHeader_1jjbp_32:hover{background-color:var(--bg-hover)}._sectionArrow_1jjbp_46{width:10px;height:10px;flex-shrink:0;color:var(--text-secondary);transition:transform .1s ease}._sectionArrow_1jjbp_46._collapsed_1jjbp_54{transform:rotate(-90deg)}._sectionTitle_1jjbp_58{font-family:var(--font-ui);font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}._divider_1jjbp_66{height:1px;background-color:var(--border-primary);margin:0}._propertyRow3_1jjbp_73{display:flex;align-items:center;height:24px;padding:0 8px;gap:8px}._propertyLabel_1jjbp_81{font-family:var(--font-ui);font-size:var(--font-size-sm);color:var(--text-secondary);width:60px;flex-shrink:0}._valueInput_1jjbp_89{width:52px;height:20px;padding:0 6px;background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-primary);outline:none;box-sizing:border-box}._valueInput_1jjbp_89:focus{border-color:var(--accent-blue)}._checkboxRow_1jjbp_108{display:flex;align-items:center;height:24px;padding:0 8px;gap:6px}._checkbox_1jjbp_108{width:14px;height:14px;accent-color:var(--accent-blue);cursor:pointer;flex-shrink:0}._checkboxLabel_1jjbp_124{font-family:var(--font-ui);font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer}._propertyRow_1jjbp_73{display:flex;align-items:center;height:24px;padding:0 8px;gap:8px}._propertyLabelWide_1jjbp_140{font-family:var(--font-ui);font-size:var(--font-size-sm);color:var(--text-secondary);width:80px;flex-shrink:0}._valueDisplay_1jjbp_148{display:flex;align-items:center;height:20px;padding:0 6px;background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-primary);min-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._valueInputWide_1jjbp_165{flex:1;height:20px;padding:0 6px;background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-primary);outline:none;box-sizing:border-box}._valueInputWide_1jjbp_165:focus{border-color:var(--accent-blue)}._sliderRow_1jjbp_184{display:flex;align-items:center;height:24px;padding:0 8px;gap:8px}._sliderTrack_1jjbp_192{flex:1;height:4px;background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:2px;position:relative;cursor:pointer}._sliderFill_1jjbp_202{position:absolute;top:0;left:0;height:100%;background-color:var(--accent-blue);border-radius:2px;pointer-events:none}._sliderThumb_1jjbp_212{position:absolute;top:50%;width:10px;height:10px;background-color:var(--text-bright);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 1px 3px #0006}._sliderInput_1jjbp_224{width:48px;height:20px;padding:0 4px;background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-primary);outline:none;box-sizing:border-box;text-align:right}._sliderInput_1jjbp_224:focus{border-color:var(--accent-blue)}._draggableInput_1jjbp_244{width:52px;height:20px;padding:0 6px;background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-primary);outline:none;box-sizing:border-box;cursor:ew-resize}._draggableInput_1jjbp_244:focus{border-color:var(--accent-blue);cursor:text}._empty_1jjbp_265{padding:16px 8px;color:var(--text-muted);font-family:var(--font-ui);font-size:var(--font-size-md);font-style:italic}._colorInput_1jjbp_274{width:32px;height:20px;padding:1px 2px;border:1px solid var(--border-primary);border-radius:var(--radius-sm);background-color:var(--bg-input);cursor:pointer;box-sizing:border-box}._prefabSection_1jjbp_286{display:flex;flex-direction:column;gap:4px}._container_1n3qk_1{font-family:var(--font-ui);font-size:var(--font-size-md);-webkit-user-select:none;user-select:none;padding:var(--spacing-sm) 0}._row_1n3qk_8{display:flex;align-items:center;height:24px;cursor:pointer;gap:var(--spacing-sm);border-radius:var(--radius-sm);padding-right:var(--spacing-md)}._row_1n3qk_8:hover{background-color:var(--bg-hover)}._selected_1n3qk_22,._selected_1n3qk_22:hover{background-color:var(--bg-selected)}._arrow_1n3qk_30{width:12px;font-size:10px;color:var(--text-secondary);cursor:pointer;flex-shrink:0;text-align:center}._typeIcon_1n3qk_39{width:14px;height:14px;flex-shrink:0;display:flex;align-items:center;justify-content:center}._typeIcon_1n3qk_39 svg{width:14px;height:14px}._name_1n3qk_53{color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-md)}._empty_1n3qk_61{padding:var(--spacing-md);color:var(--text-muted);font-style:italic;font-family:var(--font-ui);font-size:var(--font-size-md)}._statusBar_1ffi6_1{height:22px;min-height:22px;background-color:var(--bg-statusbar);display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-md);font-size:var(--font-size-xs);color:var(--text-bright)}._section_1ffi6_13{display:flex;gap:var(--spacing-xl);align-items:center}._stat_1ffi6_1{display:flex;gap:var(--spacing-sm);font-family:var(--font-mono)}._statLabel_1ffi6_25{opacity:.7;font-family:var(--font-mono)}._branch_1ffi6_30{font-family:var(--font-ui);font-weight:500}._engineName_1ffi6_35{font-family:var(--font-ui);font-weight:600}
1
+ :root{--bg-primary: #1A1A1A;--bg-secondary: #222222;--bg-panel: #2A2A2A;--bg-input: #1E1E1E;--bg-viewport: #111111;--bg-header: #1A1A1A;--bg-toolbar: #252525;--bg-hover: #333333;--bg-selected: #2C3E50;--bg-active: #3A3A3A;--bg-statusbar: #007ACC;--text-primary: #E0E0E0;--text-secondary: #888888;--text-muted: #666666;--text-label: #AAAAAA;--text-bright: #FFFFFF;--border-primary: #333333;--border-subtle: #2A2A2A;--border-active: #555555;--accent-blue: #007ACC;--accent-green: #4EC9B0;--accent-orange: #CE9178;--accent-yellow: #DCDCAA;--accent-red: #F44747;--accent-purple: #C586C0;--icon-default: #AAAAAA;--icon-active: #FFFFFF;--icon-accent: #007ACC;--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "Space Mono", "SF Mono", "Fira Code", monospace;--font-size-xs: 10px;--font-size-sm: 11px;--font-size-md: 12px;--font-size-lg: 13px;--font-size-xl: 14px;--font-size-title: 16px;--spacing-xs: 2px;--spacing-sm: 4px;--spacing-md: 8px;--spacing-lg: 12px;--spacing-xl: 16px;--spacing-2xl: 24px;--radius-none: 0px;--radius-sm: 2px;--radius-md: 4px;--radius-lg: 6px}html,body,#root,#ui{height:100%;margin:0;overflow:hidden}*{box-sizing:border-box}[data-panel-resize-handle-id]{background-color:var(--border-primary);transition:background-color .15s ease}[data-panel-resize-handle-id]:hover,[data-panel-resize-handle-id][data-resize-handle-active]{background-color:var(--accent-blue)}._activityBar_4dnwm_1{width:40px;min-width:40px;height:100%;background-color:var(--bg-header);display:flex;flex-direction:column;align-items:center;padding:var(--spacing-md) 0;gap:var(--spacing-xs);border-right:1px solid var(--border-primary)}._icon_4dnwm_14{width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--radius-sm);transition:background-color .1s ease}._icon_4dnwm_14:hover{background-color:var(--bg-hover)}._icon_4dnwm_14._active_4dnwm_29{background-color:var(--accent-blue)}._icon_4dnwm_14 svg{width:16px;height:16px}._window_ybolb_1{background-color:var(--bg-secondary)!important;border:1px solid var(--border-primary)!important;border-radius:var(--radius-md)!important;color:var(--text-primary);font-family:var(--font-ui);font-size:var(--font-size-lg);display:flex!important;flex-direction:column!important;overflow:hidden!important;z-index:1000;box-shadow:0 8px 32px #0009!important}._handle_ybolb_15{height:28px;min-height:28px;background-color:var(--bg-header);border-bottom:1px solid var(--border-primary);border-radius:var(--radius-md) var(--radius-md) 0 0;cursor:grab;-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:flex-end;padding:0 var(--spacing-md)}._handle_ybolb_15:active{cursor:grabbing}._title_ybolb_33{flex:1;font-size:var(--font-size-md);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 var(--spacing-md);-webkit-user-select:none;user-select:none}._body_ybolb_44{flex:1;overflow:auto;padding:var(--spacing-lg);min-height:0}._close_ybolb_51{background:none;border:none;color:var(--text-muted);font-size:var(--font-size-xl);cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm);line-height:1;flex-shrink:0}._close_ybolb_51:hover{color:var(--text-primary);background-color:var(--bg-hover)}._assetsPanel_5ux7f_1{display:flex;flex-direction:column;flex:1;overflow:hidden}._toolbar_5ux7f_8{display:flex;align-items:center;gap:var(--spacing-md);padding:0 var(--spacing-md);height:24px;flex-shrink:0}._searchWrapper_5ux7f_17{flex:1;position:relative;display:flex;align-items:center}._search_5ux7f_17{width:100%;height:20px;padding:0 20px 0 var(--spacing-md);background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--font-size-xs);outline:none;box-sizing:border-box}._search_5ux7f_17::placeholder{color:var(--text-muted)}._search_5ux7f_17:focus{border-color:var(--accent-blue)}._searchClear_5ux7f_46{position:absolute;right:4px;background:none;border:none;color:var(--text-muted);font-size:10px;cursor:pointer;padding:0;line-height:1;display:flex;align-items:center}._searchClear_5ux7f_46:hover{color:var(--text-primary)}._categorySelect_5ux7f_64{height:20px;padding:0 var(--spacing-sm);background-color:var(--bg-active);border:none;border-radius:9px;color:var(--text-primary);font-family:var(--font-ui);font-size:var(--font-size-xs);outline:none;cursor:pointer;flex-shrink:0}._categorySelect_5ux7f_64:focus{border-color:var(--accent-blue)}._assets_5ux7f_1{flex:1;overflow:auto;padding:var(--spacing-lg);display:flex;flex-wrap:wrap;gap:var(--spacing-lg);align-content:flex-start;align-items:flex-start}._assetRow_5ux7f_93{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--font-size-xs);color:var(--text-secondary);cursor:grab;max-width:80px;word-break:break-word;text-align:center}._assetRow_5ux7f_93:hover{background-color:var(--bg-hover)}._assetRow_5ux7f_93 img{width:64px;height:64px;object-fit:contain;border-radius:var(--radius-sm);border:1px solid var(--border-primary);background-color:var(--bg-input)}._texturePreview_5ux7f_122{width:64px;height:64px;object-fit:contain;border-radius:var(--radius-sm);border:1px solid var(--border-primary);background-image:linear-gradient(45deg,#2a2a2a 25%,transparent 25%),linear-gradient(-45deg,#2a2a2a 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#2a2a2a 75%),linear-gradient(-45deg,transparent 75%,#2a2a2a 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0;background-color:var(--bg-input)}._assetIcon_5ux7f_138{width:64px;height:64px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid var(--border-primary);background-color:var(--bg-input);cursor:grab}._assetIcon_5ux7f_138 svg{width:24px;height:24px;color:var(--text-muted)}._stats_1gd9h_1{display:flex;flex-direction:column;gap:var(--spacing-md);flex-shrink:0;width:90px;border-left:1px solid var(--border-primary);padding:0 var(--spacing-lg);justify-content:center}._stat_1gd9h_1{display:flex;flex-direction:column;gap:1px}._label_1gd9h_18{font-family:var(--font-ui);font-size:var(--font-size-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}._value_1gd9h_26{font-family:var(--font-mono);font-size:var(--font-size-md);color:var(--text-primary);font-variant-numeric:tabular-nums}._player_nqeb9_1{display:flex;flex-direction:row;gap:0;height:100%}._main_nqeb9_8{display:flex;flex-direction:column;gap:var(--spacing-lg);flex:1;min-width:0}._waveform_nqeb9_16{flex:1;min-height:0}._controls_nqeb9_21{display:flex;align-items:center;gap:var(--spacing-md);flex-shrink:0}._playButton_nqeb9_28{background:none;border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-size-xl);cursor:pointer;width:28px;height:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0}._playButton_nqeb9_28:hover{background-color:var(--bg-hover)}._time_nqeb9_47{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-muted);font-variant-numeric:tabular-nums}._wrapper_65zj4_1{position:relative;display:flex;flex-direction:column;width:100%;height:100%}._canvas_65zj4_9{width:100%;height:100%;background-color:var(--bg-viewport)}._toolbar_65zj4_15{display:flex;align-items:center;height:32px;padding:0 var(--spacing-md);gap:var(--spacing-sm);background-color:var(--bg-toolbar);border-bottom:1px solid var(--border-primary);flex-shrink:0}._toolBtn_65zj4_26{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:none;color:var(--icon-default);cursor:pointer;transition:background-color .1s ease,color .1s ease;padding:0}._toolBtn_65zj4_26:hover{background-color:var(--bg-hover);color:var(--icon-active)}._toolBtn_65zj4_26._active_65zj4_46{background-color:var(--accent-blue);color:var(--icon-active)}._separator_65zj4_51{width:1px;height:16px;background-color:var(--border-primary);flex-shrink:0}._toolbarRight_65zj4_58{position:absolute;top:2px;right:var(--spacing-md);display:flex;gap:var(--spacing-sm);z-index:10;pointer-events:all;align-items:flex-start}._overlayDropdown_65zj4_69{position:absolute;top:calc(100% + 6px);right:0;background-color:var(--bg-panel);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-lg);min-width:180px;z-index:20;display:flex;flex-direction:column;gap:var(--spacing-sm);font-family:var(--font-ui);font-size:var(--font-size-lg)}._overlaySection_65zj4_86{font-size:var(--font-size-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-top:6px;margin-bottom:2px}._overlaySection_65zj4_86:first-child{margin-top:0}._overlayRow_65zj4_99{display:flex;align-items:center;gap:var(--spacing-md);font-size:var(--font-size-lg);color:var(--text-primary);cursor:pointer;padding:2px 0;-webkit-user-select:none;user-select:none}._overlayRow_65zj4_99:hover{color:var(--text-bright)}._overlayRow_65zj4_99 input[type=checkbox]{accent-color:var(--accent-blue);width:14px;height:14px;cursor:pointer;flex-shrink:0}._viewer_8mn40_1{display:flex;flex-direction:row;height:100%;max-height:100%;overflow:hidden}._canvasWrapper_8mn40_9{position:relative;flex:1;min-width:0;min-height:0}._toolbar_8mn40_16{position:absolute;top:var(--spacing-md);left:var(--spacing-md);display:flex;gap:var(--spacing-sm);background-color:var(--bg-panel);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-sm);z-index:10}._animBar_8mn40_29{position:absolute;bottom:30px;left:var(--spacing-md);z-index:10;display:flex;align-items:center;gap:var(--spacing-md);background-color:var(--bg-panel);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md)}._scrubber_8mn40_43{position:absolute;bottom:0;left:0;width:100%;height:20px;z-index:10;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer;margin:0;padding:0}._scrubber_8mn40_43::-webkit-slider-runnable-track{background:var(--bg-panel);border-top:1px solid var(--border-primary);height:4px}._scrubber_8mn40_43::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent-blue);cursor:pointer;margin-top:-4px}._scrubber_8mn40_43::-moz-range-track{background:var(--bg-panel);border-top:1px solid var(--border-primary);height:4px}._scrubber_8mn40_43::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--accent-blue);cursor:pointer;border:none}._animSelect_8mn40_89{background:none;border:none;color:var(--text-primary);font-family:var(--font-ui);font-size:var(--font-size-md);cursor:pointer;outline:none;max-width:200px}._animSelect_8mn40_89:hover{border-color:var(--border-active)}._animLoopLabel_8mn40_104{display:flex;align-items:center;gap:5px;color:var(--text-primary);font-family:var(--font-ui);font-size:var(--font-size-md);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}._viewer_76hio_1{display:flex;flex-direction:row;height:100%;max-height:100%;overflow:hidden}._imageWrapper_76hio_9{flex:1;min-width:0;min-height:0;position:relative;overflow:hidden;background-image:linear-gradient(45deg,#2a2a2a 25%,transparent 25%),linear-gradient(-45deg,#2a2a2a 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#2a2a2a 75%),linear-gradient(-45deg,transparent 75%,#2a2a2a 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0;background-color:var(--bg-input)}._zoomInner_76hio_25{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:0 0;display:flex;align-items:center;justify-content:center}._image_76hio_9{max-width:100%;max-height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none}._zoomReset_76hio_42{position:absolute;bottom:var(--spacing-md);right:var(--spacing-md);background:var(--bg-panel);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-mono);padding:2px 6px;cursor:pointer;z-index:10;-webkit-user-select:none;user-select:none}._zoomReset_76hio_42:hover{background:var(--bg-hover)}._cubeCross_76hio_62{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,1fr);gap:2px;width:100%;height:100%;padding:var(--spacing-md);box-sizing:border-box;-webkit-user-select:none;user-select:none;pointer-events:none}._cubeFace_76hio_75{position:relative;background-image:linear-gradient(45deg,#2a2a2a 25%,transparent 25%),linear-gradient(-45deg,#2a2a2a 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#2a2a2a 75%),linear-gradient(-45deg,transparent 75%,#2a2a2a 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0;background-color:var(--bg-input);overflow:hidden}._cubeFace_76hio_75 img{width:100%;height:100%;object-fit:contain;display:block}._faceLabel_76hio_95{position:absolute;bottom:3px;left:4px;font-size:9px;font-family:var(--font-mono);color:#ffffffa6;pointer-events:none;text-shadow:0 1px 2px rgba(0,0,0,.8)}._cubeEmpty_76hio_106{background:transparent}._noPreview_76hio_110{color:var(--text-muted);font-size:var(--font-size-md);font-family:var(--font-ui);-webkit-user-select:none;user-select:none}._root_ngf3k_1{display:flex;flex-direction:column;height:100%;background-color:var(--bg-primary)}._main_ngf3k_8{display:flex;flex:1;overflow:hidden}._editor_ngf3k_14{flex:1;height:100%;background-color:var(--bg-primary)}._panel_ngf3k_20{font-family:var(--font-ui);font-size:var(--font-size-lg);color:var(--text-primary);background-color:var(--bg-secondary)}._panelContent_ngf3k_27{display:flex;flex-direction:column;height:100%;overflow:hidden}._panelBody_ngf3k_34{flex:1;overflow:auto;padding:var(--spacing-md)}._middleGroup_ngf3k_40{flex:1}._panelHeader_25fch_1{height:28px;min-height:28px;display:flex;align-items:center;padding:0 var(--spacing-md);background-color:var(--bg-header);font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--text-secondary);-webkit-user-select:none;user-select:none}._container_1jjbp_1{display:flex;flex-direction:column;gap:4px}._nameRow_1jjbp_8{display:flex;align-items:center;height:32px;padding:0 12px;gap:8px;background-color:var(--bg-panel);border-bottom:1px solid var(--border-primary)}._nameIcon_1jjbp_18{width:16px;height:16px;flex-shrink:0}._nameText_1jjbp_24{font-family:var(--font-ui);font-size:var(--font-size-xl);font-weight:600;color:var(--text-bright)}._sectionHeader_1jjbp_32{display:flex;align-items:center;height:24px;padding:0 8px;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none}._sectionHeader_1jjbp_32:hover{background-color:var(--bg-hover)}._sectionArrow_1jjbp_46{width:10px;height:10px;flex-shrink:0;color:var(--text-secondary);transition:transform .1s ease}._sectionArrow_1jjbp_46._collapsed_1jjbp_54{transform:rotate(-90deg)}._sectionTitle_1jjbp_58{font-family:var(--font-ui);font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}._divider_1jjbp_66{height:1px;background-color:var(--border-primary);margin:0}._propertyRow3_1jjbp_73{display:flex;align-items:center;height:24px;padding:0 8px;gap:8px}._propertyLabel_1jjbp_81{font-family:var(--font-ui);font-size:var(--font-size-sm);color:var(--text-secondary);width:60px;flex-shrink:0}._valueInput_1jjbp_89{width:52px;height:20px;padding:0 6px;background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-primary);outline:none;box-sizing:border-box}._valueInput_1jjbp_89:focus{border-color:var(--accent-blue)}._checkboxRow_1jjbp_108{display:flex;align-items:center;height:24px;padding:0 8px;gap:6px}._checkbox_1jjbp_108{width:14px;height:14px;accent-color:var(--accent-blue);cursor:pointer;flex-shrink:0}._checkboxLabel_1jjbp_124{font-family:var(--font-ui);font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer}._propertyRow_1jjbp_73{display:flex;align-items:center;height:24px;padding:0 8px;gap:8px}._propertyLabelWide_1jjbp_140{font-family:var(--font-ui);font-size:var(--font-size-sm);color:var(--text-secondary);width:80px;flex-shrink:0}._valueDisplay_1jjbp_148{display:flex;align-items:center;height:20px;padding:0 6px;background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-primary);min-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._valueInputWide_1jjbp_165{flex:1;height:20px;padding:0 6px;background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-primary);outline:none;box-sizing:border-box}._valueInputWide_1jjbp_165:focus{border-color:var(--accent-blue)}._sliderRow_1jjbp_184{display:flex;align-items:center;height:24px;padding:0 8px;gap:8px}._sliderTrack_1jjbp_192{flex:1;height:4px;background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:2px;position:relative;cursor:pointer}._sliderFill_1jjbp_202{position:absolute;top:0;left:0;height:100%;background-color:var(--accent-blue);border-radius:2px;pointer-events:none}._sliderThumb_1jjbp_212{position:absolute;top:50%;width:10px;height:10px;background-color:var(--text-bright);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 1px 3px #0006}._sliderInput_1jjbp_224{width:48px;height:20px;padding:0 4px;background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-primary);outline:none;box-sizing:border-box;text-align:right}._sliderInput_1jjbp_224:focus{border-color:var(--accent-blue)}._draggableInput_1jjbp_244{width:52px;height:20px;padding:0 6px;background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-primary);outline:none;box-sizing:border-box;cursor:ew-resize}._draggableInput_1jjbp_244:focus{border-color:var(--accent-blue);cursor:text}._empty_1jjbp_265{padding:16px 8px;color:var(--text-muted);font-family:var(--font-ui);font-size:var(--font-size-md);font-style:italic}._colorInput_1jjbp_274{width:32px;height:20px;padding:1px 2px;border:1px solid var(--border-primary);border-radius:var(--radius-sm);background-color:var(--bg-input);cursor:pointer;box-sizing:border-box}._prefabSection_1jjbp_286{display:flex;flex-direction:column;gap:4px}._container_1n3qk_1{font-family:var(--font-ui);font-size:var(--font-size-md);-webkit-user-select:none;user-select:none;padding:var(--spacing-sm) 0}._row_1n3qk_8{display:flex;align-items:center;height:24px;cursor:pointer;gap:var(--spacing-sm);border-radius:var(--radius-sm);padding-right:var(--spacing-md)}._row_1n3qk_8:hover{background-color:var(--bg-hover)}._selected_1n3qk_22,._selected_1n3qk_22:hover{background-color:var(--bg-selected)}._arrow_1n3qk_30{width:12px;font-size:10px;color:var(--text-secondary);cursor:pointer;flex-shrink:0;text-align:center}._typeIcon_1n3qk_39{width:14px;height:14px;flex-shrink:0;display:flex;align-items:center;justify-content:center}._typeIcon_1n3qk_39 svg{width:14px;height:14px}._name_1n3qk_53{color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-md)}._empty_1n3qk_61{padding:var(--spacing-md);color:var(--text-muted);font-style:italic;font-family:var(--font-ui);font-size:var(--font-size-md)}._statusBar_1ffi6_1{height:22px;min-height:22px;background-color:var(--bg-statusbar);display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-md);font-size:var(--font-size-xs);color:var(--text-bright)}._section_1ffi6_13{display:flex;gap:var(--spacing-xl);align-items:center}._stat_1ffi6_1{display:flex;gap:var(--spacing-sm);font-family:var(--font-mono)}._statLabel_1ffi6_25{opacity:.7;font-family:var(--font-mono)}._branch_1ffi6_30{font-family:var(--font-ui);font-weight:500}._engineName_1ffi6_35{font-family:var(--font-ui);font-weight:600}
package/dist/Editor.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import "three";
2
- import { E as f } from "./Editor-BwUHVuHu.mjs";
2
+ import { E as f } from "./Editor-D7WM9ico.mjs";
3
3
  import "@mavonengine/core/Editor/EditorHelper";
4
4
  import "@mavonengine/core/Game";
5
5
  import "@mavonengine/core/Prefab/Lights/index";