@tomorrowevening/hermes 0.0.0 → 0.0.2

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/dist/hermes.js CHANGED
@@ -1,6 +1,6 @@
1
1
  var mt = Object.defineProperty;
2
- var gt = (a, n, r) => n in a ? mt(a, n, { enumerable: !0, configurable: !0, writable: !0, value: r }) : a[n] = r;
3
- var y = (a, n, r) => (gt(a, typeof n != "symbol" ? n + "" : n, r), r);
2
+ var gt = (n, a, r) => a in n ? mt(n, a, { enumerable: !0, configurable: !0, writable: !0, value: r }) : n[a] = r;
3
+ var y = (n, a, r) => (gt(n, typeof a != "symbol" ? a + "" : a, r), r);
4
4
  import { getProject as Et } from "@theatre/core";
5
5
  import { Pane as yt } from "tweakpane";
6
6
  import * as Ct from "@tweakpane/plugin-essentials";
@@ -9,31 +9,31 @@ import Pe, { useState as Y, Component as jt } from "react";
9
9
  import { Reorder as De } from "framer-motion";
10
10
  import U from "@theatre/studio";
11
11
  class ae {
12
- constructor(n) {
12
+ constructor(a) {
13
13
  y(this, "app");
14
- this.app = n;
14
+ this.app = a;
15
15
  }
16
16
  dispose() {
17
17
  }
18
18
  }
19
19
  class St extends ae {
20
- constructor(n) {
21
- super(n);
20
+ constructor(a) {
21
+ super(a);
22
22
  }
23
- selectDropdown(n, r) {
23
+ selectDropdown(a, r) {
24
24
  this.app.send({
25
25
  event: "selectComponent",
26
26
  data: {
27
- dropdown: n,
27
+ dropdown: a,
28
28
  value: r
29
29
  }
30
30
  });
31
31
  }
32
- updateDropdown(n, r) {
32
+ updateDropdown(a, r) {
33
33
  this.app.send({
34
34
  event: "draggableListUpdate",
35
35
  data: {
36
- dropdown: n,
36
+ dropdown: a,
37
37
  value: r
38
38
  }
39
39
  });
@@ -42,8 +42,8 @@ class St extends ae {
42
42
  function Rt() {
43
43
  return Math.round(Math.random() * 1e6).toString();
44
44
  }
45
- function Tt(a) {
46
- return a.r !== void 0 && a.g !== void 0 && a.b !== void 0;
45
+ function Tt(n) {
46
+ return n.r !== void 0 && n.g !== void 0 && n.b !== void 0;
47
47
  }
48
48
  const Ie = () => {
49
49
  };
@@ -211,14 +211,14 @@ class wt extends ae {
211
211
  }
212
212
  }
213
213
  class Gt {
214
- constructor(n, r) {
214
+ constructor(a, r) {
215
215
  y(this, "components");
216
216
  y(this, "debug");
217
217
  y(this, "theatre");
218
218
  // Protected
219
219
  y(this, "mode", "listener");
220
220
  y(this, "channel");
221
- this.editor = n && document.location.hash.search(r) > -1, n && (this.channel = new BroadcastChannel("theatre"));
221
+ this.editor = a && document.location.hash.search(r) > -1, a && (this.channel = new BroadcastChannel("theatre"));
222
222
  }
223
223
  setupComponents() {
224
224
  this.components = new St(this);
@@ -226,28 +226,28 @@ class Gt {
226
226
  setupGUI() {
227
227
  this.debug = new wt(this);
228
228
  }
229
- setupTheatre(n, r) {
230
- this.theatre = new xt(this, n, r);
229
+ setupTheatre(a, r) {
230
+ this.theatre = new xt(this, a, r);
231
231
  }
232
232
  dispose() {
233
- var n, r, o;
234
- (n = this.components) == null || n.dispose(), (r = this.debug) == null || r.dispose(), (o = this.theatre) == null || o.dispose();
233
+ var a, r, o;
234
+ (a = this.components) == null || a.dispose(), (r = this.debug) == null || r.dispose(), (o = this.theatre) == null || o.dispose();
235
235
  }
236
236
  // Remote
237
- send(n) {
238
- this.mode === "editor" && this.channel !== void 0 && this.channel.postMessage(n);
237
+ send(a) {
238
+ this.mode === "editor" && this.channel !== void 0 && this.channel.postMessage(a);
239
239
  }
240
- listen(n) {
240
+ listen(a) {
241
241
  this.mode === "listener" && this.channel !== void 0 && (this.channel.onmessage = (r) => {
242
- n(r.data);
242
+ a(r.data);
243
243
  });
244
244
  }
245
245
  // Getters / Setters
246
246
  get editor() {
247
247
  return this.mode === "editor";
248
248
  }
249
- set editor(n) {
250
- n && (this.mode = "editor", document.title += " - Editor");
249
+ set editor(a) {
250
+ a && (this.mode = "editor", document.title += " - Editor");
251
251
  }
252
252
  }
253
253
  const k = new _t(), P = {
@@ -274,7 +274,7 @@ function Ot() {
274
274
  if (Oe)
275
275
  return L;
276
276
  Oe = 1;
277
- var a = Pe, n = Symbol.for("react.element"), r = Symbol.for("react.fragment"), o = Object.prototype.hasOwnProperty, i = a.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, l = { key: !0, ref: !0, __self: !0, __source: !0 };
277
+ var n = Pe, a = Symbol.for("react.element"), r = Symbol.for("react.fragment"), o = Object.prototype.hasOwnProperty, i = n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, l = { key: !0, ref: !0, __self: !0, __source: !0 };
278
278
  function g(b, d, E) {
279
279
  var v, C = {}, j = null, D = null;
280
280
  E !== void 0 && (j = "" + E), d.key !== void 0 && (j = "" + d.key), d.ref !== void 0 && (D = d.ref);
@@ -283,7 +283,7 @@ function Ot() {
283
283
  if (b && b.defaultProps)
284
284
  for (v in d = b.defaultProps, d)
285
285
  C[v] === void 0 && (C[v] = d[v]);
286
- return { $$typeof: n, type: b, key: j, ref: D, props: C, _owner: i.current };
286
+ return { $$typeof: a, type: b, key: j, ref: D, props: C, _owner: i.current };
287
287
  }
288
288
  return L.Fragment = r, L.jsx = g, L.jsxs = g, L;
289
289
  }
@@ -300,14 +300,14 @@ var W = {};
300
300
  var ke;
301
301
  function kt() {
302
302
  return ke || (ke = 1, process.env.NODE_ENV !== "production" && function() {
303
- var a = Pe, n = Symbol.for("react.element"), r = Symbol.for("react.portal"), o = Symbol.for("react.fragment"), i = Symbol.for("react.strict_mode"), l = Symbol.for("react.profiler"), g = Symbol.for("react.provider"), b = Symbol.for("react.context"), d = Symbol.for("react.forward_ref"), E = Symbol.for("react.suspense"), v = Symbol.for("react.suspense_list"), C = Symbol.for("react.memo"), j = Symbol.for("react.lazy"), D = Symbol.for("react.offscreen"), M = Symbol.iterator, Ae = "@@iterator";
303
+ var n = Pe, a = Symbol.for("react.element"), r = Symbol.for("react.portal"), o = Symbol.for("react.fragment"), i = Symbol.for("react.strict_mode"), l = Symbol.for("react.profiler"), g = Symbol.for("react.provider"), b = Symbol.for("react.context"), d = Symbol.for("react.forward_ref"), E = Symbol.for("react.suspense"), v = Symbol.for("react.suspense_list"), C = Symbol.for("react.memo"), j = Symbol.for("react.lazy"), D = Symbol.for("react.offscreen"), M = Symbol.iterator, Ae = "@@iterator";
304
304
  function Me(e) {
305
305
  if (e === null || typeof e != "object")
306
306
  return null;
307
307
  var t = M && e[M] || e[Ae];
308
308
  return typeof t == "function" ? t : null;
309
309
  }
310
- var N = a.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
310
+ var N = n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
311
311
  function R(e) {
312
312
  {
313
313
  for (var t = arguments.length, s = new Array(t > 1 ? t - 1 : 0), c = 1; c < t; c++)
@@ -682,7 +682,7 @@ function kt() {
682
682
  var ot = function(e, t, s, c, p, m, h) {
683
683
  var f = {
684
684
  // This tag allows us to uniquely identify this as a React Element
685
- $$typeof: n,
685
+ $$typeof: a,
686
686
  // Built-in properties that belong on the element
687
687
  type: e,
688
688
  key: t,
@@ -737,7 +737,7 @@ function kt() {
737
737
  var te;
738
738
  te = !1;
739
739
  function re(e) {
740
- return typeof e == "object" && e !== null && e.$$typeof === n;
740
+ return typeof e == "object" && e !== null && e.$$typeof === a;
741
741
  }
742
742
  function je() {
743
743
  {
@@ -853,7 +853,7 @@ Check the top-level render call using <` + s + ">.");
853
853
  var T = lt(p);
854
854
  T ? f += T : f += je();
855
855
  var _;
856
- e === null ? _ = "null" : Z(e) ? _ = "array" : e !== void 0 && e.$$typeof === n ? (_ = "<" + (w(e.type) || "Unknown") + " />", f = " Did you accidentally export a JSX literal instead of a component?") : _ = typeof e, R("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", _, f);
856
+ e === null ? _ = "null" : Z(e) ? _ = "array" : e !== void 0 && e.$$typeof === a ? (_ = "<" + (w(e.type) || "Unknown") + " />", f = " Did you accidentally export a JSX literal instead of a component?") : _ = typeof e, R("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", _, f);
857
857
  }
858
858
  var S = ct(e, t, s, p, m);
859
859
  if (S == null)
@@ -886,8 +886,8 @@ Check the top-level render call using <` + s + ">.");
886
886
  }
887
887
  process.env.NODE_ENV === "production" ? ne.exports = Ot() : ne.exports = kt();
888
888
  var u = ne.exports;
889
- function Ne(a) {
890
- return a.title.search("<") > -1 ? /* @__PURE__ */ u.jsx("button", { className: "svg", dangerouslySetInnerHTML: { __html: a.title } }) : /* @__PURE__ */ u.jsx("button", { children: a.title });
889
+ function Ne(n) {
890
+ return n.title.search("<") > -1 ? /* @__PURE__ */ u.jsx("button", { className: "svg", dangerouslySetInnerHTML: { __html: n.title } }) : /* @__PURE__ */ u.jsx("button", { children: n.title });
891
891
  }
892
892
  const Pt = /* @__PURE__ */ u.jsxs("svg", { className: "closeIcon", width: "14", height: "14", fill: "none", stroke: "#666666", strokeMiterlimit: "10", children: [
893
893
  /* @__PURE__ */ u.jsx("circle", { cx: "7", cy: "7", r: "6" }),
@@ -901,18 +901,18 @@ C11,4.22,10.74,4,10.43,4z M10.43,8H3.57C3.26,8,3,8.22,3,8.5v1C3,9.78,3.26,10,3.5
901
901
  C11,8.22,10.74,8,10.43,8z`
902
902
  }
903
903
  ) });
904
- function It(a) {
905
- return /* @__PURE__ */ u.jsx(De.Item, { value: a.title, children: /* @__PURE__ */ u.jsxs("div", { children: [
904
+ function It(n) {
905
+ return /* @__PURE__ */ u.jsx(De.Item, { value: n.title, children: /* @__PURE__ */ u.jsxs("div", { children: [
906
906
  Dt,
907
- /* @__PURE__ */ u.jsx("span", { children: a.title }),
907
+ /* @__PURE__ */ u.jsx("span", { children: n.title }),
908
908
  /* @__PURE__ */ u.jsx("button", { className: "closeIcon", onClick: () => {
909
- a.onDelete(a.index);
909
+ n.onDelete(n.index);
910
910
  }, children: Pt })
911
- ] }) }, a.title);
911
+ ] }) }, n.title);
912
912
  }
913
- function Nt(a) {
914
- const [n, r] = Y(!1), [o, i] = Y(a.options), l = (E) => {
915
- a.onDragComplete(E), i(E);
913
+ function Nt(n) {
914
+ const [a, r] = Y(!1), [o, i] = Y(n.options), l = (E) => {
915
+ n.onDragComplete(E), i(E);
916
916
  }, g = (E) => {
917
917
  const v = [...o];
918
918
  v.splice(E, 1), l(v);
@@ -921,34 +921,34 @@ function Nt(a) {
921
921
  b.push(/* @__PURE__ */ u.jsx(It, { index: v, title: E, onDelete: g }, E));
922
922
  });
923
923
  let d = "dropdown draggable";
924
- return a.subdropdown && (d += " subdropdown"), /* @__PURE__ */ u.jsxs("div", { className: d, onMouseEnter: () => r(!0), onMouseLeave: () => r(!1), children: [
925
- /* @__PURE__ */ u.jsx(Ne, { title: a.title }),
926
- /* @__PURE__ */ u.jsx(De.Group, { axis: "y", values: o, onReorder: l, style: { visibility: n ? "visible" : "hidden" }, children: b })
924
+ return n.subdropdown && (d += " subdropdown"), /* @__PURE__ */ u.jsxs("div", { className: d, onMouseEnter: () => r(!0), onMouseLeave: () => r(!1), children: [
925
+ /* @__PURE__ */ u.jsx(Ne, { title: n.title }),
926
+ /* @__PURE__ */ u.jsx(De.Group, { axis: "y", values: o, onReorder: l, style: { visibility: a ? "visible" : "hidden" }, children: b })
927
927
  ] });
928
928
  }
929
- function Ft(a) {
930
- const [n, r] = Y(!1), o = [];
931
- a.options.map((l, g) => {
932
- a.onSelect !== void 0 && (l.onSelect = a.onSelect), o.push(/* @__PURE__ */ u.jsx(At, { option: l }, g));
929
+ function Ft(n) {
930
+ const [a, r] = Y(!1), o = [];
931
+ n.options.map((l, g) => {
932
+ n.onSelect !== void 0 && (l.onSelect = n.onSelect), o.push(/* @__PURE__ */ u.jsx(At, { option: l }, g));
933
933
  });
934
934
  let i = "dropdown";
935
- return a.subdropdown && (i += " subdropdown"), /* @__PURE__ */ u.jsxs("div", { className: i, onMouseEnter: () => r(!0), onMouseLeave: () => r(!1), children: [
936
- /* @__PURE__ */ u.jsx(Ne, { title: a.title }),
937
- /* @__PURE__ */ u.jsx("ul", { style: { visibility: n ? "visible" : "hidden" }, children: o })
935
+ return n.subdropdown && (i += " subdropdown"), /* @__PURE__ */ u.jsxs("div", { className: i, onMouseEnter: () => r(!0), onMouseLeave: () => r(!1), children: [
936
+ /* @__PURE__ */ u.jsx(Ne, { title: n.title }),
937
+ /* @__PURE__ */ u.jsx("ul", { style: { visibility: a ? "visible" : "hidden" }, children: o })
938
938
  ] });
939
939
  }
940
- function At(a) {
941
- const { option: n } = a, [r, o] = Y("");
940
+ function At(n) {
941
+ const { option: a } = n, [r, o] = Y("");
942
942
  let i = null;
943
- switch (n.type) {
943
+ switch (a.type) {
944
944
  case "draggable":
945
945
  i = /* @__PURE__ */ u.jsx(
946
946
  Nt,
947
947
  {
948
- title: n.title,
949
- options: n.value,
948
+ title: a.title,
949
+ options: a.value,
950
950
  onDragComplete: (l) => {
951
- n.onDragComplete !== void 0 && n.onDragComplete(l);
951
+ a.onDragComplete !== void 0 && a.onDragComplete(l);
952
952
  },
953
953
  subdropdown: !0
954
954
  }
@@ -958,9 +958,9 @@ function At(a) {
958
958
  i = /* @__PURE__ */ u.jsx(
959
959
  Ft,
960
960
  {
961
- title: n.title,
962
- options: n.value,
963
- onSelect: n.onSelect,
961
+ title: a.title,
962
+ options: a.value,
963
+ onSelect: a.onSelect,
964
964
  subdropdown: !0
965
965
  }
966
966
  );
@@ -970,19 +970,19 @@ function At(a) {
970
970
  "button",
971
971
  {
972
972
  onClick: () => {
973
- n.onSelect !== void 0 && n.onSelect(n.value), n.selectable && (r !== n.title ? o(n.title) : o(""));
973
+ a.onSelect !== void 0 && a.onSelect(a.value), a.selectable && (r !== a.title ? o(a.title) : o(""));
974
974
  },
975
- children: n.title
975
+ children: a.title
976
976
  }
977
977
  );
978
978
  break;
979
979
  }
980
- return /* @__PURE__ */ u.jsx("li", { className: r === n.title ? "selected" : "", children: i }, Rt());
980
+ return /* @__PURE__ */ u.jsx("li", { className: r === a.title ? "selected" : "", children: i }, Rt());
981
981
  }
982
- function qt(a) {
983
- let n;
982
+ function qt(n) {
983
+ let a;
984
984
  const r = () => {
985
- U.ui.hide(), a.listen((i) => {
985
+ U.ui.hide(), n.listen((i) => {
986
986
  var g, b, d, E, v, C, j, D, M;
987
987
  let l;
988
988
  switch (i.event) {
@@ -993,31 +993,31 @@ function qt(a) {
993
993
  k.dispatchEvent({ type: P.SELECT_DROPDOWN, value: i.data });
994
994
  break;
995
995
  case "addFolder":
996
- (g = a.debug) == null || g.addFolder(i.data.name, i.data.params, i.data.parent);
996
+ (g = n.debug) == null || g.addFolder(i.data.name, i.data.params, i.data.parent);
997
997
  break;
998
998
  case "bindObject":
999
- (b = a.debug) == null || b.bind(i.data.name, i.data.params, i.data.parent);
999
+ (b = n.debug) == null || b.bind(i.data.name, i.data.params, i.data.parent);
1000
1000
  break;
1001
1001
  case "updateBind":
1002
- (d = a.debug) == null || d.triggerBind(i.data.id, i.data.value);
1002
+ (d = n.debug) == null || d.triggerBind(i.data.id, i.data.value);
1003
1003
  break;
1004
1004
  case "addButton":
1005
- (E = a.debug) == null || E.button(i.data.name, i.data.callback, i.data.parent);
1005
+ (E = n.debug) == null || E.button(i.data.name, i.data.callback, i.data.parent);
1006
1006
  break;
1007
1007
  case "clickButton":
1008
- (v = a.debug) == null || v.triggerButton(i.data.id);
1008
+ (v = n.debug) == null || v.triggerButton(i.data.id);
1009
1009
  break;
1010
1010
  case "setSheet":
1011
- l = (C = a.theatre) == null ? void 0 : C.sheets.get(i.data.sheet), l !== void 0 && (n = l, U.setSelection([l]));
1011
+ l = (C = n.theatre) == null ? void 0 : C.sheets.get(i.data.sheet), l !== void 0 && (a = l, U.setSelection([l]));
1012
1012
  break;
1013
1013
  case "setSheetObject":
1014
- l = (j = a.theatre) == null ? void 0 : j.sheetObjects.get(`${i.data.sheet}_${i.data.key}`), l !== void 0 && U.setSelection([l]);
1014
+ l = (j = n.theatre) == null ? void 0 : j.sheetObjects.get(`${i.data.sheet}_${i.data.key}`), l !== void 0 && U.setSelection([l]);
1015
1015
  break;
1016
1016
  case "updateSheetObject":
1017
- l = (D = a.theatre) == null ? void 0 : D.sheetObjectCBs.get(i.data.sheetObject), l !== void 0 && l(i.data.values);
1017
+ l = (D = n.theatre) == null ? void 0 : D.sheetObjectCBs.get(i.data.sheetObject), l !== void 0 && l(i.data.values);
1018
1018
  break;
1019
1019
  case "updateTimeline":
1020
- n = (M = a.theatre) == null ? void 0 : M.sheets.get(i.data.sheet), n !== void 0 && (n.sequence.position = i.data.position);
1020
+ a = (M = n.theatre) == null ? void 0 : M.sheets.get(i.data.sheet), a !== void 0 && (a.sequence.position = i.data.position);
1021
1021
  break;
1022
1022
  }
1023
1023
  });
@@ -1030,7 +1030,7 @@ function qt(a) {
1030
1030
  case "Theatre_Sheet_PublicAPI":
1031
1031
  v = "setSheet", C = {
1032
1032
  sheet: d.address.sheetId
1033
- }, n = (j = a.theatre) == null ? void 0 : j.sheets.get(d.address.sheetId);
1033
+ }, a = (j = n.theatre) == null ? void 0 : j.sheets.get(d.address.sheetId);
1034
1034
  break;
1035
1035
  case "Theatre_SheetObject_PublicAPI":
1036
1036
  v = "setSheetObject", E += `_${d.address.objectKey}`, C = {
@@ -1040,15 +1040,15 @@ function qt(a) {
1040
1040
  };
1041
1041
  break;
1042
1042
  }
1043
- a.send({ event: v, data: C });
1043
+ n.send({ event: v, data: C });
1044
1044
  });
1045
1045
  });
1046
1046
  let i = 0;
1047
1047
  const l = () => {
1048
- if (n !== void 0 && i !== n.sequence.position) {
1049
- i = n.sequence.position;
1050
- const b = n;
1051
- a.send({
1048
+ if (a !== void 0 && i !== a.sequence.position) {
1049
+ i = a.sequence.position;
1050
+ const b = a;
1051
+ n.send({
1052
1052
  event: "updateTimeline",
1053
1053
  data: {
1054
1054
  position: i,
@@ -1061,31 +1061,31 @@ function qt(a) {
1061
1061
  };
1062
1062
  l(), g();
1063
1063
  };
1064
- a.editor ? o() : r();
1064
+ n.editor ? o() : r();
1065
1065
  }
1066
- function Mt(a) {
1067
- if (a.name === "cameras")
1066
+ function Mt(n) {
1067
+ if (n.name === "cameras")
1068
1068
  return "camera";
1069
- if (a.name === "interactive")
1069
+ if (n.name === "interactive")
1070
1070
  return "interactive";
1071
- if (a.name === "lights")
1071
+ if (n.name === "lights")
1072
1072
  return "light";
1073
- if (a.name === "ui")
1073
+ if (n.name === "ui")
1074
1074
  return "ui";
1075
- if (a.name === "utils")
1075
+ if (n.name === "utils")
1076
1076
  return "utils";
1077
- const n = a.type;
1078
- return n.search("Helper") > -1 ? "icon_utils" : n.search("Camera") > -1 ? "camera" : n.search("Light") > -1 ? "light" : "obj3D";
1077
+ const a = n.type;
1078
+ return a.search("Helper") > -1 ? "icon_utils" : a.search("Camera") > -1 ? "camera" : a.search("Light") > -1 ? "light" : "obj3D";
1079
1079
  }
1080
- function Fe(a) {
1081
- const [n, r] = Y(!1);
1080
+ function Fe(n) {
1081
+ const [a, r] = Y(!1);
1082
1082
  let o = null, i = !1;
1083
- if (a.child.children.length > 0) {
1083
+ if (n.child.children.length > 0) {
1084
1084
  i = !0;
1085
1085
  const l = [];
1086
- a.child.children.map((g) => {
1086
+ n.child.children.map((g) => {
1087
1087
  l.push(/* @__PURE__ */ u.jsx(Fe, { child: g }, Math.random()));
1088
- }), o = /* @__PURE__ */ u.jsx("div", { className: `container ${n ? "" : "closed"}`, children: l });
1088
+ }), o = /* @__PURE__ */ u.jsx("div", { className: `container ${a ? "" : "closed"}`, children: l });
1089
1089
  }
1090
1090
  return /* @__PURE__ */ u.jsxs("div", { className: "childObject", children: [
1091
1091
  /* @__PURE__ */ u.jsxs("div", { className: "child", children: [
@@ -1094,10 +1094,10 @@ function Fe(a) {
1094
1094
  {
1095
1095
  className: "status",
1096
1096
  style: {
1097
- backgroundPositionX: n ? "-14px" : "2px"
1097
+ backgroundPositionX: a ? "-14px" : "2px"
1098
1098
  },
1099
1099
  onClick: () => {
1100
- r(!n);
1100
+ r(!a);
1101
1101
  }
1102
1102
  }
1103
1103
  ) : null,
@@ -1109,21 +1109,21 @@ function Fe(a) {
1109
1109
  left: i ? "20px" : "5px"
1110
1110
  },
1111
1111
  onClick: () => {
1112
- k.dispatchEvent({ type: P.INSPECT_ITEM, value: a.child });
1112
+ k.dispatchEvent({ type: P.INSPECT_ITEM, value: n.child });
1113
1113
  },
1114
- children: a.child.name.length > 0 ? `${a.child.name} (${a.child.type})` : `${a.child.type}::${a.child.uuid}`
1114
+ children: n.child.name.length > 0 ? `${n.child.name} (${n.child.type})` : `${n.child.type}::${n.child.uuid}`
1115
1115
  }
1116
1116
  ),
1117
- /* @__PURE__ */ u.jsx("div", { className: `icon ${Mt(a.child)}` })
1117
+ /* @__PURE__ */ u.jsx("div", { className: `icon ${Mt(n.child)}` })
1118
1118
  ] }),
1119
1119
  o
1120
1120
  ] }, Math.random());
1121
1121
  }
1122
- function Bt(a) {
1123
- const n = [];
1124
- return a.child.children.map((r) => {
1125
- n.push(/* @__PURE__ */ u.jsx(Fe, { child: r }, Math.random()));
1126
- }), /* @__PURE__ */ u.jsx("div", { className: "scene", children: n });
1122
+ function Bt(n) {
1123
+ const a = [];
1124
+ return n.child.children.map((r) => {
1125
+ a.push(/* @__PURE__ */ u.jsx(Fe, { child: r }, Math.random()));
1126
+ }), /* @__PURE__ */ u.jsx("div", { className: "scene", children: a });
1127
1127
  }
1128
1128
  class zt extends jt {
1129
1129
  constructor(r) {
@@ -1177,10 +1177,10 @@ class zt extends jt {
1177
1177
  return this.state;
1178
1178
  }
1179
1179
  }
1180
- function Jt(a) {
1181
- return /* @__PURE__ */ u.jsxs("div", { className: "editor", children: [
1182
- /* @__PURE__ */ u.jsx("div", { className: "navBar", children: a.children }),
1183
- a.components
1180
+ function Jt(n) {
1181
+ return /* @__PURE__ */ u.jsxs("div", { className: "editor", ref: n.ref, style: n.style, children: [
1182
+ /* @__PURE__ */ u.jsx("div", { className: "navBar", children: n.children }),
1183
+ n.components
1184
1184
  ] });
1185
1185
  }
1186
1186
  export {
@@ -26,4 +26,4 @@ Check your code at `+t+":"+s+"."}return""}}var Le={};function At(e){{var t=Ue();
26
26
 
27
27
  Check the top-level render call using <`+s+">.")}return t}}function We(e,t){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var s=At(t);if(Le[s])return;Le[s]=!0;var c="";e&&e._owner&&e._owner!==se.current&&(c=" It was passed a child from "+D(e._owner.type)+"."),U(e),T('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',s,c),U(null)}}function $e(e,t){{if(typeof e!="object")return;if(ae(e))for(var s=0;s<e.length;s++){var c=e[s];ce(c)&&We(c,t)}else if(ce(e))e._store&&(e._store.validated=!0);else if(e){var b=ct(e);if(typeof b=="function"&&b!==e.entries)for(var g=b.call(e),h;!(h=g.next()).done;)ce(h.value)&&We(h.value,t)}}}function Ft(e){{var t=e.type;if(t==null||typeof t=="string")return;var s;if(typeof t=="function")s=t.propTypes;else if(typeof t=="object"&&(t.$$typeof===d||t.$$typeof===S))s=t.propTypes;else return;if(s){var c=D(t);St(s,e.props,"prop",c,e)}else if(t.PropTypes!==void 0&&!oe){oe=!0;var b=D(t);T("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",b||"Unknown")}typeof t.getDefaultProps=="function"&&!t.getDefaultProps.isReactClassApproved&&T("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Mt(e){{for(var t=Object.keys(e.props),s=0;s<t.length;s++){var c=t[s];if(c!=="children"&&c!=="key"){U(e),T("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",c),U(null);break}}e.ref!==null&&(U(e),T("Invalid attribute `ref` supplied to `React.Fragment`."),U(null))}}function Ye(e,t,s,c,b,g){{var h=pt(e);if(!h){var f="";(e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0)&&(f+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var w=Nt(b);w?f+=w:f+=Ue();var j;e===null?j="null":ae(e)?j="array":e!==void 0&&e.$$typeof===a?(j="<"+(D(e.type)||"Unknown")+" />",f=" Did you accidentally export a JSX literal instead of a component?"):j=typeof e,T("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",j,f)}var R=It(e,t,s,b,g);if(R==null)return R;if(h){var O=t.children;if(O!==void 0)if(c)if(ae(O)){for(var L=0;L<O.length;L++)$e(O[L],e);Object.freeze&&Object.freeze(O)}else T("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else $e(O,e)}return e===o?Mt(R):Ft(R),R}}function Bt(e,t,s){return Ye(e,t,s,!0)}function Ut(e,t,s){return Ye(e,t,s,!1)}var Lt=Ut,Wt=Bt;Y.Fragment=o,Y.jsx=Lt,Y.jsxs=Wt}()),Y}process.env.NODE_ENV==="production"?Q.exports=Ze():Q.exports=Qe();var u=Q.exports;function ee(n){return n.title.search("<")>-1?u.jsx("button",{className:"svg",dangerouslySetInnerHTML:{__html:n.title}}):u.jsx("button",{children:n.title})}const et=u.jsxs("svg",{className:"closeIcon",width:"14",height:"14",fill:"none",stroke:"#666666",strokeMiterlimit:"10",children:[u.jsx("circle",{cx:"7",cy:"7",r:"6"}),u.jsx("line",{x1:"4",y1:"4",x2:"10",y2:"10"}),u.jsx("line",{x1:"4",y1:"10",x2:"10",y2:"4"})]}),tt=u.jsx("svg",{className:"dragIcon",width:"14",height:"14",fill:"#666666",stroke:"none",children:u.jsx("path",{d:`M10.43,4H3.57C3.26,4,3,4.22,3,4.5v1C3,5.78,3.26,6,3.57,6h6.86C10.74,6,11,5.78,11,5.5v-1
28
28
  C11,4.22,10.74,4,10.43,4z M10.43,8H3.57C3.26,8,3,8.22,3,8.5v1C3,9.78,3.26,10,3.57,10h6.86C10.74,10,11,9.78,11,9.5v-1
29
- C11,8.22,10.74,8,10.43,8z`})});function be(n){return u.jsx(le.Reorder.Item,{value:n.title,children:u.jsxs("div",{children:[tt,u.jsx("span",{children:n.title}),u.jsx("button",{className:"closeIcon",onClick:()=>{n.onDelete(n.index)},children:et})]})},n.title)}function me(n){const[a,r]=N.useState(!1),[o,i]=N.useState(n.options),l=y=>{n.onDragComplete(y),i(y)},E=y=>{const p=[...o];p.splice(y,1),l(p)},m=[];o.forEach((y,p)=>{m.push(u.jsx(be,{index:p,title:y,onDelete:E},y))});let d="dropdown draggable";return n.subdropdown&&(d+=" subdropdown"),u.jsxs("div",{className:d,onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),children:[u.jsx(ee,{title:n.title}),u.jsx(le.Reorder.Group,{axis:"y",values:o,onReorder:l,style:{visibility:a?"visible":"hidden"},children:m})]})}function ge(n){const[a,r]=N.useState(!1),o=[];n.options.map((l,E)=>{n.onSelect!==void 0&&(l.onSelect=n.onSelect),o.push(u.jsx(Ee,{option:l},E))});let i="dropdown";return n.subdropdown&&(i+=" subdropdown"),u.jsxs("div",{className:i,onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),children:[u.jsx(ee,{title:n.title}),u.jsx("ul",{style:{visibility:a?"visible":"hidden"},children:o})]})}function Ee(n){const{option:a}=n,[r,o]=N.useState("");let i=null;switch(a.type){case"draggable":i=u.jsx(me,{title:a.title,options:a.value,onDragComplete:l=>{a.onDragComplete!==void 0&&a.onDragComplete(l)},subdropdown:!0});break;case"dropdown":i=u.jsx(ge,{title:a.title,options:a.value,onSelect:a.onSelect,subdropdown:!0});break;case"option":i=u.jsx("button",{onClick:()=>{a.onSelect!==void 0&&a.onSelect(a.value),a.selectable&&(r!==a.title?o(a.title):o(""))},children:a.title});break}return u.jsx("li",{className:r===a.title?"selected":"",children:i},Je())}function rt(n){let a;const r=()=>{W.ui.hide(),n.listen(i=>{var E,m,d,y,p,S,_,F,H;let l;switch(i.event){case"draggableListUpdate":k.dispatchEvent({type:P.DRAG_UPDATE,value:i.data});break;case"selectComponent":k.dispatchEvent({type:P.SELECT_DROPDOWN,value:i.data});break;case"addFolder":(E=n.debug)==null||E.addFolder(i.data.name,i.data.params,i.data.parent);break;case"bindObject":(m=n.debug)==null||m.bind(i.data.name,i.data.params,i.data.parent);break;case"updateBind":(d=n.debug)==null||d.triggerBind(i.data.id,i.data.value);break;case"addButton":(y=n.debug)==null||y.button(i.data.name,i.data.callback,i.data.parent);break;case"clickButton":(p=n.debug)==null||p.triggerButton(i.data.id);break;case"setSheet":l=(S=n.theatre)==null?void 0:S.sheets.get(i.data.sheet),l!==void 0&&(a=l,W.setSelection([l]));break;case"setSheetObject":l=(_=n.theatre)==null?void 0:_.sheetObjects.get(`${i.data.sheet}_${i.data.key}`),l!==void 0&&W.setSelection([l]);break;case"updateSheetObject":l=(F=n.theatre)==null?void 0:F.sheetObjectCBs.get(i.data.sheetObject),l!==void 0&&l(i.data.values);break;case"updateTimeline":a=(H=n.theatre)==null?void 0:H.sheets.get(i.data.sheet),a!==void 0&&(a.sequence.position=i.data.position);break}})},o=()=>{W.ui.restore(),W.onSelectionChange(m=>{m.length<1||m.forEach(d=>{var _;let y=d.address.sheetId,p="setSheet",S={};switch(d.type){case"Theatre_Sheet_PublicAPI":p="setSheet",S={sheet:d.address.sheetId},a=(_=n.theatre)==null?void 0:_.sheets.get(d.address.sheetId);break;case"Theatre_SheetObject_PublicAPI":p="setSheetObject",y+=`_${d.address.objectKey}`,S={id:y,sheet:d.address.sheetId,key:d.address.objectKey};break}n.send({event:p,data:S})})});let i=0;const l=()=>{if(a!==void 0&&i!==a.sequence.position){i=a.sequence.position;const m=a;n.send({event:"updateTimeline",data:{position:i,sheet:m.address.sheetId}})}},E=()=>{l(),requestAnimationFrame(E)};l(),E()};n.editor?o():r()}const Ht="";function nt(n){if(n.name==="cameras")return"camera";if(n.name==="interactive")return"interactive";if(n.name==="lights")return"light";if(n.name==="ui")return"ui";if(n.name==="utils")return"utils";const a=n.type;return a.search("Helper")>-1?"icon_utils":a.search("Camera")>-1?"camera":a.search("Light")>-1?"light":"obj3D"}function ye(n){const[a,r]=N.useState(!1);let o=null,i=!1;if(n.child.children.length>0){i=!0;const l=[];n.child.children.map(E=>{l.push(u.jsx(ye,{child:E},Math.random()))}),o=u.jsx("div",{className:`container ${a?"":"closed"}`,children:l})}return u.jsxs("div",{className:"childObject",children:[u.jsxs("div",{className:"child",children:[i?u.jsx("button",{className:"status",style:{backgroundPositionX:a?"-14px":"2px"},onClick:()=>{r(!a)}}):null,u.jsx("button",{className:"name",style:{left:i?"20px":"5px"},onClick:()=>{k.dispatchEvent({type:P.INSPECT_ITEM,value:n.child})},children:n.child.name.length>0?`${n.child.name} (${n.child.type})`:`${n.child.type}::${n.child.uuid}`}),u.jsx("div",{className:`icon ${nt(n.child)}`})]}),o]},Math.random())}function at(n){const a=[];return n.child.children.map(r=>{a.push(u.jsx(ye,{child:r},Math.random()))}),u.jsx("div",{className:"scene",children:a})}class it extends N.Component{constructor(r){super(r);C(this,"onUpdate",()=>{});C(this,"toggleOpen",()=>{this.setState(()=>({open:!this.componentState.open}))});C(this,"onRefresh",()=>{k.dispatchEvent({type:P.INSPECT_ITEM,value:this.componentState.scene})});C(this,"onSetScene",r=>{console.log("SceneHierarchy::onSetScene",r),this.setState(()=>({scene:r.value}))});this.state={open:!1,scene:null},k.addEventListener(P.REFRESH_SCENE,this.onUpdate),k.addEventListener(P.SET_SCENE,this.onSetScene)}componentWillUnmount(){k.removeEventListener(P.REFRESH_SCENE,this.onUpdate),k.removeEventListener(P.SET_SCENE,this.onSetScene)}render(){const r=this.componentState.scene!==null?`Hierarchy: ${this.componentState.scene.name}`:"Hierarchy";return u.jsxs("div",{id:"SceneHierarchy",children:[u.jsxs("div",{className:"header",children:[u.jsx("button",{className:"status",style:{backgroundPositionX:this.componentState.open?"-14px":"2px"},onClick:this.toggleOpen}),u.jsx("span",{children:r}),u.jsx("button",{className:"refresh hideText",onClick:this.onRefresh,children:"Refresh"})]}),this.componentState.scene!==null&&this.componentState.open?u.jsx(at,{child:this.componentState.scene}):null]})}get componentState(){return this.state}}const Vt="";function st(n){return u.jsxs("div",{className:"editor",children:[u.jsx("div",{className:"navBar",children:n.children}),n.components]})}v.Application=Xe,v.BaseRemote=q,v.Draggable=me,v.DraggableItem=be,v.Dropdown=ge,v.DropdownItem=Ee,v.Editor=st,v.NavButton=ee,v.RemoteComponents=ue,v.RemoteController=rt,v.RemoteTheatre=fe,v.RemoteTweakpane=he,v.SceneHierarchy=it,v.ToolEvents=P,v.debugDispatcher=k,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"})});
29
+ C11,8.22,10.74,8,10.43,8z`})});function be(n){return u.jsx(le.Reorder.Item,{value:n.title,children:u.jsxs("div",{children:[tt,u.jsx("span",{children:n.title}),u.jsx("button",{className:"closeIcon",onClick:()=>{n.onDelete(n.index)},children:et})]})},n.title)}function me(n){const[a,r]=N.useState(!1),[o,i]=N.useState(n.options),l=y=>{n.onDragComplete(y),i(y)},E=y=>{const p=[...o];p.splice(y,1),l(p)},m=[];o.forEach((y,p)=>{m.push(u.jsx(be,{index:p,title:y,onDelete:E},y))});let d="dropdown draggable";return n.subdropdown&&(d+=" subdropdown"),u.jsxs("div",{className:d,onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),children:[u.jsx(ee,{title:n.title}),u.jsx(le.Reorder.Group,{axis:"y",values:o,onReorder:l,style:{visibility:a?"visible":"hidden"},children:m})]})}function ge(n){const[a,r]=N.useState(!1),o=[];n.options.map((l,E)=>{n.onSelect!==void 0&&(l.onSelect=n.onSelect),o.push(u.jsx(Ee,{option:l},E))});let i="dropdown";return n.subdropdown&&(i+=" subdropdown"),u.jsxs("div",{className:i,onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),children:[u.jsx(ee,{title:n.title}),u.jsx("ul",{style:{visibility:a?"visible":"hidden"},children:o})]})}function Ee(n){const{option:a}=n,[r,o]=N.useState("");let i=null;switch(a.type){case"draggable":i=u.jsx(me,{title:a.title,options:a.value,onDragComplete:l=>{a.onDragComplete!==void 0&&a.onDragComplete(l)},subdropdown:!0});break;case"dropdown":i=u.jsx(ge,{title:a.title,options:a.value,onSelect:a.onSelect,subdropdown:!0});break;case"option":i=u.jsx("button",{onClick:()=>{a.onSelect!==void 0&&a.onSelect(a.value),a.selectable&&(r!==a.title?o(a.title):o(""))},children:a.title});break}return u.jsx("li",{className:r===a.title?"selected":"",children:i},Je())}function rt(n){let a;const r=()=>{W.ui.hide(),n.listen(i=>{var E,m,d,y,p,S,_,F,H;let l;switch(i.event){case"draggableListUpdate":k.dispatchEvent({type:P.DRAG_UPDATE,value:i.data});break;case"selectComponent":k.dispatchEvent({type:P.SELECT_DROPDOWN,value:i.data});break;case"addFolder":(E=n.debug)==null||E.addFolder(i.data.name,i.data.params,i.data.parent);break;case"bindObject":(m=n.debug)==null||m.bind(i.data.name,i.data.params,i.data.parent);break;case"updateBind":(d=n.debug)==null||d.triggerBind(i.data.id,i.data.value);break;case"addButton":(y=n.debug)==null||y.button(i.data.name,i.data.callback,i.data.parent);break;case"clickButton":(p=n.debug)==null||p.triggerButton(i.data.id);break;case"setSheet":l=(S=n.theatre)==null?void 0:S.sheets.get(i.data.sheet),l!==void 0&&(a=l,W.setSelection([l]));break;case"setSheetObject":l=(_=n.theatre)==null?void 0:_.sheetObjects.get(`${i.data.sheet}_${i.data.key}`),l!==void 0&&W.setSelection([l]);break;case"updateSheetObject":l=(F=n.theatre)==null?void 0:F.sheetObjectCBs.get(i.data.sheetObject),l!==void 0&&l(i.data.values);break;case"updateTimeline":a=(H=n.theatre)==null?void 0:H.sheets.get(i.data.sheet),a!==void 0&&(a.sequence.position=i.data.position);break}})},o=()=>{W.ui.restore(),W.onSelectionChange(m=>{m.length<1||m.forEach(d=>{var _;let y=d.address.sheetId,p="setSheet",S={};switch(d.type){case"Theatre_Sheet_PublicAPI":p="setSheet",S={sheet:d.address.sheetId},a=(_=n.theatre)==null?void 0:_.sheets.get(d.address.sheetId);break;case"Theatre_SheetObject_PublicAPI":p="setSheetObject",y+=`_${d.address.objectKey}`,S={id:y,sheet:d.address.sheetId,key:d.address.objectKey};break}n.send({event:p,data:S})})});let i=0;const l=()=>{if(a!==void 0&&i!==a.sequence.position){i=a.sequence.position;const m=a;n.send({event:"updateTimeline",data:{position:i,sheet:m.address.sheetId}})}},E=()=>{l(),requestAnimationFrame(E)};l(),E()};n.editor?o():r()}const Ht="";function nt(n){if(n.name==="cameras")return"camera";if(n.name==="interactive")return"interactive";if(n.name==="lights")return"light";if(n.name==="ui")return"ui";if(n.name==="utils")return"utils";const a=n.type;return a.search("Helper")>-1?"icon_utils":a.search("Camera")>-1?"camera":a.search("Light")>-1?"light":"obj3D"}function ye(n){const[a,r]=N.useState(!1);let o=null,i=!1;if(n.child.children.length>0){i=!0;const l=[];n.child.children.map(E=>{l.push(u.jsx(ye,{child:E},Math.random()))}),o=u.jsx("div",{className:`container ${a?"":"closed"}`,children:l})}return u.jsxs("div",{className:"childObject",children:[u.jsxs("div",{className:"child",children:[i?u.jsx("button",{className:"status",style:{backgroundPositionX:a?"-14px":"2px"},onClick:()=>{r(!a)}}):null,u.jsx("button",{className:"name",style:{left:i?"20px":"5px"},onClick:()=>{k.dispatchEvent({type:P.INSPECT_ITEM,value:n.child})},children:n.child.name.length>0?`${n.child.name} (${n.child.type})`:`${n.child.type}::${n.child.uuid}`}),u.jsx("div",{className:`icon ${nt(n.child)}`})]}),o]},Math.random())}function at(n){const a=[];return n.child.children.map(r=>{a.push(u.jsx(ye,{child:r},Math.random()))}),u.jsx("div",{className:"scene",children:a})}class it extends N.Component{constructor(r){super(r);C(this,"onUpdate",()=>{});C(this,"toggleOpen",()=>{this.setState(()=>({open:!this.componentState.open}))});C(this,"onRefresh",()=>{k.dispatchEvent({type:P.INSPECT_ITEM,value:this.componentState.scene})});C(this,"onSetScene",r=>{console.log("SceneHierarchy::onSetScene",r),this.setState(()=>({scene:r.value}))});this.state={open:!1,scene:null},k.addEventListener(P.REFRESH_SCENE,this.onUpdate),k.addEventListener(P.SET_SCENE,this.onSetScene)}componentWillUnmount(){k.removeEventListener(P.REFRESH_SCENE,this.onUpdate),k.removeEventListener(P.SET_SCENE,this.onSetScene)}render(){const r=this.componentState.scene!==null?`Hierarchy: ${this.componentState.scene.name}`:"Hierarchy";return u.jsxs("div",{id:"SceneHierarchy",children:[u.jsxs("div",{className:"header",children:[u.jsx("button",{className:"status",style:{backgroundPositionX:this.componentState.open?"-14px":"2px"},onClick:this.toggleOpen}),u.jsx("span",{children:r}),u.jsx("button",{className:"refresh hideText",onClick:this.onRefresh,children:"Refresh"})]}),this.componentState.scene!==null&&this.componentState.open?u.jsx(at,{child:this.componentState.scene}):null]})}get componentState(){return this.state}}const Vt="";function st(n){return u.jsxs("div",{className:"editor",ref:n.ref,style:n.style,children:[u.jsx("div",{className:"navBar",children:n.children}),n.components]})}v.Application=Xe,v.BaseRemote=q,v.Draggable=me,v.DraggableItem=be,v.Dropdown=ge,v.DropdownItem=Ee,v.Editor=st,v.NavButton=ee,v.RemoteComponents=ue,v.RemoteController=rt,v.RemoteTheatre=fe,v.RemoteTweakpane=he,v.SceneHierarchy=it,v.ToolEvents=P,v.debugDispatcher=k,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"})});
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- #SceneHierarchy .header .refresh{background-color:transparent;background-image:url(/images/debug/icon_refresh.png);background-size:20px 20px;opacity:.7;transform:translateY(-50%) scale(.8)}#SceneHierarchy .status{background-image:url(/images/debug/icon_folder.png);background-position-x:2px;background-position-y:2px;background-size:32px 16px;transform:scale(.8);width:20px;height:20px}#SceneHierarchy .childObject .icon{background-color:transparent;background-image:url(/images/debug/icon_world.png);background-size:20px 20px;display:inline-block;position:absolute;right:5px;top:0;width:20px;height:20px;transform:scale(.8)}#SceneHierarchy .childObject .obj3D{background-image:url(/images/debug/icon_world.png)}#SceneHierarchy .childObject .camera{background-image:url(/images/debug/icon_camera.png)}#SceneHierarchy .childObject .interactive{background-image:url(/images/debug/icon_interactive.png)}#SceneHierarchy .childObject .light{background-image:url(/images/debug/icon_lights.png)}#SceneHierarchy .childObject .ui{background-image:url(/images/debug/icon_ui.png)}#SceneHierarchy .childObject .utils{background-image:url(/images/debug/icon_utils.png)}body .tp-dfwv,body .tp-dfwv button,body .tp-dfwv input{text-transform:none}.tp-ckbv{float:right}.tp-dfwv .tp-lblv{position:relative}.tp-dfwv .tp-lblv_v{display:inline-block;max-width:160px}.tp-dfwv .tp-lblv_v .tp-ckbv{width:20px}.tp-dfwv .tp-lblv_v .tp-txtv,.tp-dfwv .tp-lblv_v .tp-sldtxtv{max-width:160px}.tp-dfwv .tp-lblv_v .tp-lstv{width:160px}.tp-dfwv .tp-lblv_v .tp-fpsv,.tp-dfwv .tp-lblv-nol .tp-btnv{width:280px}.tp-dfwv .tp-btnv_b{padding:0 5px}.tp-dfwv .tp-btngridv{max-height:100px;overflow-x:hidden;overflow-y:auto}.tp-dfwv .tp-tabv{max-height:90vh;overflow:hidden auto}.tp-dfwv{font-family:Roboto Mono,Source Code Pro,Menlo,Courier,monospace;font-size:10px}#SceneHierarchy{background-color:#0d0d0d;border-radius:2px;bottom:0;right:0;font-family:Roboto Mono,Source Code Pro,Menlo,Courier,monospace;font-size:10px;min-height:20px;overflow:hidden;pointer-events:visible;position:absolute;width:250px;z-index:100}#SceneHierarchy button{background-color:transparent;border:none;color:#fff;font-size:12px;margin:0;padding:0;text-align:left}#SceneHierarchy .header{height:20px;position:relative}#SceneHierarchy .header span{display:inline-block;font-size:12px;line-height:20px;padding-left:20px;pointer-events:none}#SceneHierarchy .header button{position:absolute;right:5px;top:50%;width:20px;height:20px}#SceneHierarchy .header .refresh{background-color:transparent;background-image:url(/images/debug/icon_refresh.png);background-size:20px 20px;opacity:.7;transform:translateY(-50%) scale(.8)}#SceneHierarchy .header .refresh:hover{opacity:1}#SceneHierarchy .header .status{left:0;transform:translateY(-50%) scale(.8)}#SceneHierarchy .status{background-image:url(/images/debug/icon_folder.png);background-position-x:2px;background-position-y:2px;background-size:32px 16px;transform:scale(.8);width:20px;height:20px}#SceneHierarchy .childObject{background-color:#111;min-height:20px;overflow:hidden}#SceneHierarchy .childObject ::-webkit-scrollbar{width:10px}#SceneHierarchy .childObject ::-webkit-scrollbar-track{background:#0d0d0d}#SceneHierarchy .childObject ::-webkit-scrollbar-thumb{background:#666}#SceneHierarchy .childObject ::-webkit-scrollbar-thumb:hover{background:#999}#SceneHierarchy .childObject .child{background-color:#222;border:none;border-bottom:1px solid #111;height:20px;position:relative}#SceneHierarchy .childObject .child:hover{background-color:#333}#SceneHierarchy .childObject .name{background-color:transparent;max-lines:1;position:absolute;left:5px;right:0;top:50%;transform:translateY(-50%);white-space:nowrap}#SceneHierarchy .childObject .container{padding-left:5px;height:auto;overflow-x:hidden;overflow-y:auto;max-height:200px}#SceneHierarchy .childObject .container.closed{height:0;overflow:hidden}#SceneHierarchy .childObject .icon{background-color:transparent;background-image:url(/images/debug/icon_world.png);background-size:20px 20px;display:inline-block;position:absolute;right:5px;top:0;width:20px;height:20px;transform:scale(.8)}#SceneHierarchy .childObject .obj3D{background-image:url(/images/debug/icon_world.png)}#SceneHierarchy .childObject .camera{background-image:url(/images/debug/icon_camera.png)}#SceneHierarchy .childObject .interactive{background-image:url(/images/debug/icon_interactive.png)}#SceneHierarchy .childObject .light{background-image:url(/images/debug/icon_lights.png)}#SceneHierarchy .childObject .ui{background-image:url(/images/debug/icon_ui.png)}#SceneHierarchy .childObject .utils{background-image:url(/images/debug/icon_utils.png)}.editor{font-family:Helvetica,Arial,sans-serif;pointer-events:none;position:absolute;width:100%;height:100%;z-index:101}.editor button{background:none;border:none;color:#fff;display:inline-block;margin:0;padding:0;text-align:left}.editor .navBar{display:inline-block;pointer-events:visible;position:relative;left:50px;top:12px}.editor .dropdown{color:#fff;display:inline-block;margin-right:1px;text-align:left;height:fit-content;min-width:auto;width:max-content}.editor .dropdown button{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#222c;color:#ffffff80;font-size:12px;padding:5px 10px;position:relative;text-align:left;min-width:22px;width:100%;height:32px;transition:all .2s linear}.editor .dropdown button:hover{background-color:#333c;color:#fff}.editor .dropdown button.svg{line-height:0;width:32px}.editor .dropdown p{background-color:#222c;display:inline-block;height:22px;margin:0;min-width:22px;padding:5px}.editor .dropdown svg{position:relative;left:50%;transform:translate(-50%)}.editor .dropdown ul{list-style:none;margin:0;margin-block:0;padding-inline:0;position:absolute;width:max-content}.editor .dropdown ul li{border-top:1px solid rgba(17,17,17,.9);display:block;position:relative}.editor .dropdown ul li.selected button{background-color:#444c}.editor .dropdown ul li.selected button:hover{background-color:#555c}.editor .dropdown.subdropdown{min-width:100%}.editor .dropdown.subdropdown ul{border-left:1px solid rgba(17,17,17,.9);left:100%;top:-1px}.editor .draggable li div{background-color:#222c;line-height:14px;padding:5px 10px;transition:background-color .25s linear}.editor .draggable li div:hover{background-color:#333c}.editor .draggable li div span{font-size:12px;margin:0 15px 0 10px;padding:0 5px}.editor .draggable li div .dragIcon{position:absolute;left:10px}.editor .draggable li div .closeIcon{background-color:transparent;padding:0;position:absolute;right:5px;top:50%;min-width:14px;width:14px;height:14px;transform:translateY(-50%)}.editor .draggable li div .closeIcon:hover{background-color:transparent}.editor .draggable li div .closeIcon svg{background-color:transparent;left:0;position:relative}.fsAbsolute{position:absolute;left:0;right:0;top:0;bottom:0}.absoluteCenter{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.hidden{display:none;visibility:hidden}.hideText{text-indent:-9999px;white-space:nowrap}
1
+ #SceneHierarchy .header .refresh{background-color:transparent;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAACXBIWXMAAAsTAAALEwEAmpwYAAAE1UlEQVRoge2aW2gdRRzGf5vGWMSTVBpNUjWNijHgg6KIRqmtD0UpqA9iFeulijWkllIsKOKb+lbxgr6oLQUFtc2LPgjaImILSq36oKLWkpZC7C1p6zkNXkqSz4c5x2zH3T27s7vnnMR8MBxmzsx/vm/2P/fxJPF/QlO9CdQac4JnO+YEz3Y052y/C7gV6Af6gCuAhUABEDAOnASGgX3AV8Au4Le8CHk5TEttwMPA/cBNuHnR18D7wLvAieyoAZKyChdJelXSaWWHcUmvS1qUFc8sjDRLeiZjoTZOS3pOUktavmld+irgPeC6MAcC9gBfYNx0P6Z/lsr/FzD9vBe4HlgK3AzMC7H3HfAQ8JMz4xSttUJSMeSLnJT0vKRLHex2SNogaTjia9/lyttV7IIQsWOSnpZUSNGQldAkabWkkYB6JiUN1lJwTwCJT5Xh4OILBUmbA+qbkjRQK8FI2lquuCjjgl4OYv1hlaQ/LdGTku5MYiftoNUD/F4OtcAS4GPMYFdBCbgR+CWOgTwWHnljCbADmO9L24sZ3SeqFZ6Ja+ndwONW2g3Axlilq/i8J2mLzKicZ/90CVus/lyS1FmtXDWjT5SNvdkAAu3QKumwJfqVNIK7NT3XTkla3gAi7fCYJbhUbojEgj1JOyxjh6oZq0NolnTQ4rkuqkzYoLUGWG6ldQObkowuNcAE8IaVtjKqQNC01A38ALQG5BdwO7DTkWAe6AJGmJ5xpsppx4My21/YAzYTLDbO//XAEcxJSQVNwC1hmW3BQa5soxFde5cV7w/L6BecREichqkl9lrxvrCMFcEe8BbxXdUDtgILkjLLCfut+OWhOcvD9YDcUI8FyXZHrpK0zZO0GPget4FIwArgE4eyrmgHfgQ6EpYbA66O2i39DbT44ucCZxLTywd3Ax8mLLMSGIraLY1b8fMTVpAnPgKGEuTfXskfJfiUFe9MSCpvPAmMxsg3CqyrRKIED1vxXgdSeWIUMz1Ww1kNEyXYPjIJO3uuJ6q59pD9f5TgPVZ8mRun3LEWOBaQPobPlSuIEvwZZtqpoJ/G68dghA0EpK8lYAMRJfgY8K0v3oy5EWxE2K79H1f+F1VWNeutlcqwzKa73hv/oNAu6aikUZmbzMB81Y5p24FDwHm+tEeAd9J9kNxwb/k3dCCLcy79GrDeFz+K2Y0UU1GrE+KcS28C/vDFO2m8/XBsxBE8Arxgpa0BHsieTv6Ie9XSgrnQvsaX9hdwB+aye8Yg7lXLGeA+zt5QzMdMB0uzJhWBCzAXeM5Icre0D1iNORWsoA2zF16VhkQMeMAGzIxxEHPa4gaH+W4w5DThbUltOcyvF0vaGVBfj4s9VxKDkiYCSByR9KiyWZy0SnpW0omAeoqujZuG0D0ydzlBOCDpKUldDnYXS3pR0qkQ20WZBzVOvNNeiPcC24BrQ/6fxOy6Psc8OfoVOMz04FcALgGuxLzaW4bZhnoh9r7BTIf2KWV8pPjClXCOzMud8ZAvkgWKkjZKmpeWbxaCK2GRpJczFl6S9JLMxiATnnm88ViIcbsHMU8RwtwzDFPAl8AHmMelpejsyZD3o5YO4DbMK5s+4DLgQswJqIfpy8eBA8DPmEux3QSfYGSCmfiKJxVm4iueVJgTPNsxJ3i24x9qO45nn/sZdwAAAABJRU5ErkJggg==);background-size:20px 20px;opacity:.7;transform:translateY(-50%) scale(.8)}#SceneHierarchy .status{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAA8CAYAAACtrX6oAAAACXBIWXMAABYlAAAWJQFJUiTwAAAB90lEQVR4nO2cXWoCQRCEy+R0+6QguCE5XwLJtYToIZTOgxFlWd1Vd7p7yvpgXoLJ1NQ3a/wZnZkZBC8v0QFEWSSYHAkmR4LJkWByJJgcCSZHgsmRYHIkmBwJJkeCyZFgciSYHAkmR4LJkWByxghuAKwBbAEsiqa5jzlO+ZrgLH3MAWxwyLd0n93MhsbaTuzMrB3xO15j9Z/pyG+CTNfyufd36130K4BPAG2BvXYrKwBfOGTKSF8+//5G7IJFZxeG7MTOaC9kWgRmunbldnHr79FCIyRnyjJW7i4qc23FZshwj9zWzN4istdUcM1yj7dxl1xL0QxyQyTXUDiTXHfJ2YtnlOu6tswCmOW6rXGKP1Ii5DPIdVnr0y14glHVhp5y4VXcZT04qvuXNHUB6R90ZBNQeo4SRaR+2pCleK+5ShWS9ol/dOHec5YsJuVLd1FFR81dOmS6F9+9C47O4BEy1dtnXsVmyeIVMs0b4CPG4pFCC427Dzh4hrwkObq87jg/g5YpX19/g2fQPI/N/gB4B7A/+9kewAeAb8cct5ApX19/wwTsxLmZbcxsa2bLBFdGdzR2uIq3lueMV7e/Y75m6PYzM33THTP6ZAM5EkyOBJMjweRIMDkSTI4EkyPB5EgwORJMjgSTI8HkSDA5EkyOBJMjweRIMDl/5nU6ICCWVGoAAAAASUVORK5CYII=);background-position-x:2px;background-position-y:2px;background-size:32px 16px;transform:scale(.8);width:20px;height:20px}#SceneHierarchy .childObject .icon{background-color:transparent;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEZklEQVRYhe2YW4iVVRTHf4465oSaUNlUjo7SmCBEPVipTWYXoV7qoejykhRCEVQP9pAFSWVBPdRTMNRLWGRaFr2FSShmEQ1KzQymUhpeMky6ONbcfj3sdZpvvvnO8Zy5lA/+YcP51jpr7bVv/7X2nqByNqPu/w7gTDgX4GgxaYR2DcDlwC3AUmAh0ARMDf1fwGGgE9gFfAb8AJyquSe1ljZFXa6+o/Y4FD3qvmh5neomdYXaUEuftQQ3T31d7Y8O96tdal98P69eos5SXwhZn7pb7cgE2qa2jHWAy9Svo4Nf1VfUG9VPQvauWp/5f726MXSb1WvVF9XjIftWvXWsArxdPRSOt5uWCfV+dUDtVJsL7K5Q98aM3xuyVnVr+Dqi3jHaAJepx8Lhe2pTyJvVn6PzVRXsHw7bw+rckDWqb4b8mHrbSAOcp7aHozZ1Wka3NuQfqHUVfExUt8R/n8rI69XXQt6lLijnoxzNTAEeA64GeoDzgbVBI5OBu+J/FwPrg3aK0A1cGL8fB+YAfUFDF4T+SmAN8ATwZ97BBC3MxdeTuGtqOBSYkGklgu/NyIpgtMnxPRDfpd9kdCuBT/MOimawHlgdwW0DPs918AAwH9gK7MjoyqEHWA6sAPYBGzMD6gWWRHCPhL/TQ4dYfPpOxSFYXKDvVE+YaKZamrpZPWmil7xuoXrQxAiL8vqiXHwTaU99BbTndItJe+Zoga4S2oFjpJR4TU7XBXwZs7oyb1gU4DKgH/iCtP+yaAlH+4E/agjwJCkXTwwfeewgLXdrNQEuAn6neIYaSfvwQA3BlXCAdEAaC3TtpEFclVcUHZIm0sauC2f1Ie8lLZGkmbiI8vSSR3fYDYSPyzJ990YfvQxS0r8oopkTJI76jbTUpRMnMI3Ekd2k0qnaenKAxKUNwN+k7ZH1Wxd9nswHWWvBWo7vxg1FSyzwC/AgsIfBJe4DngNWAW1UziB5dAPPAo8CbwPrGLrELcAGYEY1AR4C5pKW5WhOt5c0iwMxiFpQykBdpGo7i7kkwj+eNypa4g5gOsP5ChKX1ZG4sFbMjyDzgyb6mgl8V02AO0mndAnDZ/h70hZoJg2iWswMm37SKuRxA2kGtw/TFKSelipTXesIUt3uWlNd0R78EXifdEheYnixMDlm5BlqKxZmkChqHcOLhdnAxxQkgErl1jbgPM7CcgtS6nkDeDIcbQZ+IpVgk4A7gUtJBcVOKhesS0n5/QjwEYMF6yzg7gjwLVLuLxhi+X3TrH4TZXmbOj2jezrkZyr5JzlY8q/JyKsu+UdzaToaG/uhCvarw/agOscxvjSVWvbaucPBa+d9plvdXlORm7dbELo+9Z6Qjfm1MzuT2Yv7q9HZlpBtdOjFfar6Yeg2qdep6x2ni3upFT19dDj49PGy6emjMQZg6PaY9lkJ4/L0UWqlx6MNDn8g6o2g98fvPEb0eFSOB8+Eoue32Rm6OR200hn0sY0RPr+NNMD/DGf9C+u5AEeLfwBkrdN1844nCgAAAABJRU5ErkJggg==);background-size:20px 20px;display:inline-block;position:absolute;right:5px;top:0;width:20px;height:20px;transform:scale(.8)}#SceneHierarchy .childObject .obj3D{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEZklEQVRYhe2YW4iVVRTHf4465oSaUNlUjo7SmCBEPVipTWYXoV7qoejykhRCEVQP9pAFSWVBPdRTMNRLWGRaFr2FSShmEQ1KzQymUhpeMky6ONbcfj3sdZpvvvnO8Zy5lA/+YcP51jpr7bVv/7X2nqByNqPu/w7gTDgX4GgxaYR2DcDlwC3AUmAh0ARMDf1fwGGgE9gFfAb8AJyquSe1ljZFXa6+o/Y4FD3qvmh5neomdYXaUEuftQQ3T31d7Y8O96tdal98P69eos5SXwhZn7pb7cgE2qa2jHWAy9Svo4Nf1VfUG9VPQvauWp/5f726MXSb1WvVF9XjIftWvXWsArxdPRSOt5uWCfV+dUDtVJsL7K5Q98aM3xuyVnVr+Dqi3jHaAJepx8Lhe2pTyJvVn6PzVRXsHw7bw+rckDWqb4b8mHrbSAOcp7aHozZ1Wka3NuQfqHUVfExUt8R/n8rI69XXQt6lLijnoxzNTAEeA64GeoDzgbVBI5OBu+J/FwPrg3aK0A1cGL8fB+YAfUFDF4T+SmAN8ATwZ97BBC3MxdeTuGtqOBSYkGklgu/NyIpgtMnxPRDfpd9kdCuBT/MOimawHlgdwW0DPs918AAwH9gK7MjoyqEHWA6sAPYBGzMD6gWWRHCPhL/TQ4dYfPpOxSFYXKDvVE+YaKZamrpZPWmil7xuoXrQxAiL8vqiXHwTaU99BbTndItJe+Zoga4S2oFjpJR4TU7XBXwZs7oyb1gU4DKgH/iCtP+yaAlH+4E/agjwJCkXTwwfeewgLXdrNQEuAn6neIYaSfvwQA3BlXCAdEAaC3TtpEFclVcUHZIm0sauC2f1Ie8lLZGkmbiI8vSSR3fYDYSPyzJ990YfvQxS0r8oopkTJI76jbTUpRMnMI3Ekd2k0qnaenKAxKUNwN+k7ZH1Wxd9nswHWWvBWo7vxg1FSyzwC/AgsIfBJe4DngNWAW1UziB5dAPPAo8CbwPrGLrELcAGYEY1AR4C5pKW5WhOt5c0iwMxiFpQykBdpGo7i7kkwj+eNypa4g5gOsP5ChKX1ZG4sFbMjyDzgyb6mgl8V02AO0mndAnDZ/h70hZoJg2iWswMm37SKuRxA2kGtw/TFKSelipTXesIUt3uWlNd0R78EXifdEheYnixMDlm5BlqKxZmkChqHcOLhdnAxxQkgErl1jbgPM7CcgtS6nkDeDIcbQZ+IpVgk4A7gUtJBcVOKhesS0n5/QjwEYMF6yzg7gjwLVLuLxhi+X3TrH4TZXmbOj2jezrkZyr5JzlY8q/JyKsu+UdzaToaG/uhCvarw/agOscxvjSVWvbaucPBa+d9plvdXlORm7dbELo+9Z6Qjfm1MzuT2Yv7q9HZlpBtdOjFfar6Yeg2qdep6x2ni3upFT19dDj49PGy6emjMQZg6PaY9lkJ4/L0UWqlx6MNDn8g6o2g98fvPEb0eFSOB8+Eoue32Rm6OR200hn0sY0RPr+NNMD/DGf9C+u5AEeLfwBkrdN1844nCgAAAABJRU5ErkJggg==)}#SceneHierarchy .childObject .camera{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAC60lEQVRYhe2YT4hNcRTHP48xpmYaNAvRyEQxEhnKQljYsRm9/EmSyJiMFAsMZWNhJYoNIUVJ2VGiyb9ZzIpMpkQSahbGv9GMYWrM+1rc2zjvzvvdd+99rzdvMd+6de75nd+5387vnN/v/G5KEuWMKRNNIB8mCRaKiiL5qQb2ApuBuUAV0Ad0AJeB3sSeJRX6LJbULTf6JTUn9Z+KWMUpPyp/Avoa4CNQZ3Sj/lNpdL/xottR7AjOkHRUUpekN5I6JbVLavDH75lIfZN0UFKTpCWS0pJem/HeJBEMG6yV1ONYtgFJbZJ+GF1jDh+zJb03NuliEuwMkMo4yErS2RA/LcbuYVyCrm1mA7Dal/8Cu4FG4JD/HsTTkCy6a+SVMTPQuc1sBKb78nHghi+/A+YBxwL2lbhRY+ThuARdEVxu5JdGFvACr0otdoZ8Y4+Rn0Sn5sFFsMvI6YB9MzA1YJ8mN8k1wAHzfj4uQVdyrpI0aJL7oqTtkq4FiqPLyCOSbktqlbRL0jlJQ2b8QdwCUZ4qvhRStZL0XFK1pMd57CRvq5mfhKBriRfiFUMY6oD7eOdwPlQAN4G10dfWg+uouwXsiOssAj4AC+JMcEWwvnAuOTEr7gTXPmg34zagOwkbIIOXAo9CbDYBrcBXYN+4UUdy2sRflyS5zVNlfPX7ugpJW5V9nI7mmh+lYU0lCZ2B3TOnAVuAk0BTwC5nuhWro46KauBOQJch5OpRaoIW34GreGf+YZdRqS9NAj4Bp4ClQDvwOWxCqSM4ADQEdKE5XvbXzlITrAVe4TW+M6NMKDXBFLAMuAD0ACfIc7pMZBXXA2cY3/xmodQRHAL2A2+NLtj8ZiEKwUL/z2WMPAJcAVYALWSf8dZuDFGWeBHwKxm3sWYhiGG8Tfo6sA2vSfiSy4GrH3wGrDcfKSSKKf6v1E9yF0XK9Q1XBPuMXMw8HXTonQFwETwNzMFr64v1jzgFHIk9ybHEZYPJo65QlD3Bf2/Q/eaHPiSWAAAAAElFTkSuQmCC)}#SceneHierarchy .childObject .interactive{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAADA0lEQVRYhe2Yu2sUURTGf5uYSJ4EsgqJIkRMEYOFYMBCQcTe57/hs9AqlVpYiChYqREsFBRF8AF2KgpqErQQRKIRi6ghRozEhcSYz+Le1bPD7MzOzm5MkQ+Gc+/Z79z7cfY+5kxGEosZNf9bQByWBKbFsjJiGoEuYC3QAUwC74EPwFTlpHlIKvVplHRS0rSK47KktgRjxj6lEtdJ+hIhzGJO0raFFNghaTYg4oKkPkmdknrlMvsjwNm8EAJrJI2YSZ9IyhbhNkkaMNwZSS3VFrjbTPhC0nLzW6ekDZK6jC8j6ZqJOV9tgTZ7eSF1ks6oEHd9BpHULGnS+2flNldVBK4wAu4Z/0GF47bhHDP+njQCow7qbtO+4209cNy3p4ETwCff34k7FwEGTWw2zTFY6k0y4W2LfwAeA/3AdcNr9PZzGXOEIuomeYbL0BrgvvdlzO8z3tYa37y3b33sKuB5tQTO4zJUDLUhvrkSY0tGOXdxHgpYgNPAU9yaHQP6gB3AS+AB0Ars8fYW8C5+lmS7Khuya88W2dXBmyUXwjmXZhenRUug3xDC2Q9sjRokqcBMSNv6DgH7TH8M2AQMBTh7Tf9o1IRJ16BC2tZ3Ffhp+oPAMPDICw3jRCJNBsNQR+HurjF+y7GJiazakgoMGyxOdJBTCv8vKrEG6yPGawrhBAVWLYP59kVvp4DvuDs6vyluenvJcL6RIKNpDup87BCwEsjxb/FvAdqAcd8fNJwc0G7GicxgUoEzpm3PuYkQ3njAZzl2I0VmMOlfnAM++vZ6CtdWEthXsNEoYlKBv3F3aH6S7ghuFA6Y9pVIZhlvuRvNXTosV4ckiV8duJ/ro/jlCKxVYa3SnyC2SdIrE3skLqbcWqFLhTglqSEmpkPSGxMzGpe9NAKRtCsg8qukw3LlaLPPVqtcYT8Q4OY8L3aeNAKRtF3F8auI/7Wk9lLnSCsQufL0RoTQPKblSta6JONnpIp9As4Cvbjyswd3Rk7hXrUeAiO4czQRKimwKlj0X1iXBKbFH8wWbNSnU+tzAAAAAElFTkSuQmCC)}#SceneHierarchy .childObject .light{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAETklEQVRYhe2YXYhVVRTHf3d0/JhyUrMpFbImM+whSa3Mynww+4AeIgiKoozooQ+KyMyXIAujF6OXqHyI6iEKKYgIP/owsjSFqCkprdDUTEcjbWZ0HHV+Pex1ucfb9Z57Z9REXHA4Z++99l7/s/ZZ/7X2KaiczNLwfwPIk9MA+yunNMAG4DHgV+BvoB3YFff2TPstYEyfrajVroI6Sr1GvahsbJC63HzZq04pmztSvU5tVRuqYRiYg78JeBR4HPg5ntdmxovz9wJfA3uAxuibDLQCA+IqynnAQuBuYCnwMLC1rx48U12U8cZqdWqMDcx4cI16qTpYbVKHqa+ovWUeHKsujn7VL9ULq2HI+wY7gVeBJdGeFu3J4ZUiy/cAXeHRRuAQsC/GC0B3eG4BcH/0tUV7czUAeVsMsBF4Kha9HZgCvAncAuwPnXHA0wFuGLANuDrGuoGDwFxgTqzzQ7RX5FrP2eLsdb76vnogtme6+nE8H1YPlQXHwbi3q9eqn0e7Tb25VrsF68vFY0lb1AGcDTwItGQ8tQM4AIwGmqP/EPAu8A0wElgJfFGzxTo8mKWXu9Rd4ZF96jvqjSbauEC9Sn1O3R463epLaku99voCsFXdkAH3kNpcQW+IiT/bQne3eufxBtioPqP2mKhioXpWzpxb1T8C5Ifh4ZptVoriRmAIKdrI3Lujf3bobAPeJpF0NVkKrAFuI9HTOBIxnxFrF4OgQKKr/dnJlQA+AcwABgOHA4zAamA5cE7orQL+zAEHiWI+A2bFC7aSguheYCgpqAphZz3wSB7AecCICv2TgH8oFRib4gVqka0k0h8CXAxMBW6ooDejFoCvA9OBQUAvKWM0kDz4XUZvNKXtyZMWUl7vBbaQXq457PeEziDgx/KJlQAuIPFdMcEXv5OdYWBP9M8k8VpnDQCvB4aTSrCNJB5cSdrW3tBpIJVnR0qdUTxAfdGUOVTnmwqEanNmqltC/9OgqePKg5eom8PgdvW+oJ9Kupera0O3U50TL3lcAaI+oHaF4R3qa6Z822wq0Saq89T1lmSxOrxeW/Xm4uGkiqQDmECKuKHxHW0HdpMiewSpvGqKeR8Ay0iBsYIjg6261PE2o9Q3Yqv+MqWxO9R1Hl12qs+q49Vlppy82pSr+5xJKsko4AXgHlJ0t5NIeg3wLXAlqZhtIUV8J6nmWwX8QiLjdhL5TwMWkY4R6/rrwYKlMr1Y321QZ/vfwBijPqm+rF4Wc7PjE9QllurGVeoV5gRNHsAm9fnMom3qrKPoTjKdMXaYyrFygEWQ72XWW24qhPu8xcUc2UU6O8wFPjmK7jhgPHAuMJGUGQ6U6WwE5sfzTXGvei7KA9hFOiR9D/wOfFVFt4dS2tpfRe83Ur7/CPiJakfOGgBCypubatArl2r8VfOax/LfzABKtePAzHO/5FgC7KBEzB2kOrDfUm8mOeFySv9+OyFyGmB/5aQH+C9BVKmVCNuMZgAAAABJRU5ErkJggg==)}#SceneHierarchy .childObject .ui{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAADjElEQVRYhe2YTWhdRRTHf+lLTFRCkjaLILgIKoIBRRfaSmMFQSsoIrrRuhEqfnTTtV20qHUllIBWcKNQxG4EJWoVEUxKqV8blXYlYv0utr7UtkaN9dfFTMzNfXM/8hJeI/iHYV7OOTP3d+89M3NuulRWs9ZcaIAq/Q+4XJUB3gDsA74BZoDPgaeAdStw3SHgdeD2ykg11baoZ03rS/XKgnGD6niBLxszFedqqpvK4lPG69U/4gTvqneo16lb1e+j/SO1LzF2SD2pbqsBN69SyJTxtTjwPbU75xuLAKr3Zy46FNuoeib6n6kBVwmZAvwuDrqt4K72Rv8LakP9Wv01tqb6T+bCr6rD6og6XQA3rxl1c/56qUXSH/ufCtL229gPxH40Jv0QMAh0ZWIfBG4CNgLjFcthANiWN3YnAn+IweuBown/xtgfAwReAS6NtouAO2P/O/AY8Hb07YqtSNPAwy3WxCt8Oj7yY+q1Od+j6rnovzExtqH+qR5Xb034dxW83ilDjtbKwXXqkTiwqb6o7lDfykw4kZosk2tjBX7UnTm4D4vgigBRr1APFtzthNpTMK5P7S+By0MeLINT6dLCaqYHuAfYFHPsR2AS+Lgkj5aih4ADwMmyoDLAeTUIR9KBleEC4BJgDugFzhIWW1J1ioV9wDuEO14pPQ8cB75gYbtKqgpwN/BA/P0ScMuy0YIGCPvmMIv3zRaVAT4OPJn5+2JCBTK2XDrC6wX4O7ZCFQGOAzuBUyzkx19AH7AXWNsGVC8wQnhyfdHWRXiKw4RTqFUFy3vQcIaOxr1Q9Q1DQTCi9tbYSvJtbdzzThs2cw3n9oz6swVlWtWk/YYiQHV/G1D5do36S+vW6hNFY6oWSTcL53VPG681r6PAfcBsxvYsIW2SqgIUOAE0Cfm4EpoGHom/9wM7yoLrbNRrCMl8btloi7UZeL9q3hTgyyyUTxC2AQmgjYz9MLCnDbANwF3AZYRTZAp4k7BLtCqRmHOJJE5pcokLpNdQGaV0SL2q7iI5XfNJzFaHLNIeQgGb0s2EQmQ47+jUh/t6wslUpquB7XljpwDvbTeuU4CjNeNG8oZOATZrxp3JGzoF+EHNuMN5Q6cAJ4FPKmLmgOfyxhRg6ls5pUZ1yL+aBbYAR0r8W4HP6sCcoKKIjFrq2fwV4QNsO3A3cDnwG3AImAA+TQ2qcxZfUP2n/8O6KrTqAc8D9emWHC8oT9IAAAAASUVORK5CYII=)}#SceneHierarchy .childObject .utils{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAADFElEQVRYhe2YT0hVQRSHf7YwsUVoakFtKmhdUfhUeLSrrFVQEES72rip1EoscFlLK2jRpl21tT8QhFkLq13gIotqlaRPQ8SkgvRrcefiOO/eufN8LzPwwMV375w5893fnHPm+aoArWZb968BsmwNsFz7rwHzkgYltVdgnRpJZyU9lTQm6ZukUUl9GQwSkHS1AgUimwduAHUpvlnXLmCYYpsFDmXNT3p4AJhICDgC7C0RbgvwISHWGNASEiPpYdLbxvYJ2FQC4F1rbj/w1nx+ERoj6WE78NsDeSIw+E7gh5kzYJ5dM/dzwFbH/yDQ58ZJStAnkm570rY+sDDaTHEgqd88GzJ/ayWdk7Td3Ock3Zd0OrRINgKjKQq+ApoCFOw0/j8tteqAaSvWd6LtjgtyKkRBSZqRdFLS+4SxnKQBSU0ZCsaHfLXlOy3plqRxc79BUTtrNPe/QhWU9cbHgQ7gTYKSm1Pm5YAvlm+bM15PlOvXWSwcgGdurFJaRpOBsu010Oj4tVhbBtAFVHni3rR8z5QDKKNYEmSsZI6lPbTbmZ8HdgPbgMNE1R3bMFBbLqCABgNl20vgmAN30ZnXRXQqzbPYfmIbAXYkrbccwLTtts1VrjvFbxa4Q3GalA0Yb/fzALgua2zcjHcDp0hRrVKAAo4CCx64XmtsksDzt1KAbitx4a5YY1+BPctZZ7lwzfgLwlZuxQFb8LcSW7k5FlNgRbY4R5ToIXATREp3OM9a/xZgjqUnhG9bZ4D91linNTZpYlUU0IVzlbMBIGrE5z0+hVAlQ3POt63uwnZ+XvL4ThCQk5VUbhLYR1StNmSPM+eCM8erZBacr1rtE8JVw21Dlz0vVsCTk2lwDcBnE2CB4oKwz9YCyVvltqOkLw9xC/pIyj9jaYBHrMC9Hris3pYzPmmQPdZYeymAeWviPaAmAS4oyT1KrjexY8uXAlgNPLImP2BpnwtuExakXWxXHbjHZs2SiqQeGKTYpgKVy9ru2IbMWiVXcQxpfy1/t0y4+Go2MWJ7SMYvFVWw9hNwWbYGWK6tesA/ap/6uHJWeiAAAAAASUVORK5CYII=)}body .tp-dfwv,body .tp-dfwv button,body .tp-dfwv input{text-transform:none}.tp-ckbv{float:right}.tp-dfwv .tp-lblv{position:relative}.tp-dfwv .tp-lblv_v{display:inline-block;max-width:160px}.tp-dfwv .tp-lblv_v .tp-ckbv{width:20px}.tp-dfwv .tp-lblv_v .tp-txtv,.tp-dfwv .tp-lblv_v .tp-sldtxtv{max-width:160px}.tp-dfwv .tp-lblv_v .tp-lstv{width:160px}.tp-dfwv .tp-lblv_v .tp-fpsv,.tp-dfwv .tp-lblv-nol .tp-btnv{width:280px}.tp-dfwv .tp-btnv_b{padding:0 5px}.tp-dfwv .tp-btngridv{max-height:100px;overflow-x:hidden;overflow-y:auto}.tp-dfwv .tp-tabv{max-height:90vh;overflow:hidden auto}.tp-dfwv{font-family:Roboto Mono,Source Code Pro,Menlo,Courier,monospace;font-size:10px}#SceneHierarchy{background-color:#0d0d0d;border-radius:2px;bottom:0;right:0;font-family:Roboto Mono,Source Code Pro,Menlo,Courier,monospace;font-size:10px;min-height:20px;overflow:hidden;pointer-events:visible;position:absolute;width:250px;z-index:100}#SceneHierarchy button{background-color:transparent;border:none;color:#fff;font-size:12px;margin:0;padding:0;text-align:left}#SceneHierarchy .header{height:20px;position:relative}#SceneHierarchy .header span{display:inline-block;font-size:12px;line-height:20px;padding-left:20px;pointer-events:none}#SceneHierarchy .header button{position:absolute;right:5px;top:50%;width:20px;height:20px}#SceneHierarchy .header .refresh{background-color:transparent;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAACXBIWXMAAAsTAAALEwEAmpwYAAAE1UlEQVRoge2aW2gdRRzGf5vGWMSTVBpNUjWNijHgg6KIRqmtD0UpqA9iFeulijWkllIsKOKb+lbxgr6oLQUFtc2LPgjaImILSq36oKLWkpZC7C1p6zkNXkqSz4c5x2zH3T27s7vnnMR8MBxmzsx/vm/2P/fxJPF/QlO9CdQac4JnO+YEz3Y052y/C7gV6Af6gCuAhUABEDAOnASGgX3AV8Au4Le8CHk5TEttwMPA/cBNuHnR18D7wLvAieyoAZKyChdJelXSaWWHcUmvS1qUFc8sjDRLeiZjoTZOS3pOUktavmld+irgPeC6MAcC9gBfYNx0P6Z/lsr/FzD9vBe4HlgK3AzMC7H3HfAQ8JMz4xSttUJSMeSLnJT0vKRLHex2SNogaTjia9/lyttV7IIQsWOSnpZUSNGQldAkabWkkYB6JiUN1lJwTwCJT5Xh4OILBUmbA+qbkjRQK8FI2lquuCjjgl4OYv1hlaQ/LdGTku5MYiftoNUD/F4OtcAS4GPMYFdBCbgR+CWOgTwWHnljCbADmO9L24sZ3SeqFZ6Ja+ndwONW2g3Axlilq/i8J2mLzKicZ/90CVus/lyS1FmtXDWjT5SNvdkAAu3QKumwJfqVNIK7NT3XTkla3gAi7fCYJbhUbojEgj1JOyxjh6oZq0NolnTQ4rkuqkzYoLUGWG6ldQObkowuNcAE8IaVtjKqQNC01A38ALQG5BdwO7DTkWAe6AJGmJ5xpsppx4My21/YAzYTLDbO//XAEcxJSQVNwC1hmW3BQa5soxFde5cV7w/L6BecREichqkl9lrxvrCMFcEe8BbxXdUDtgILkjLLCfut+OWhOcvD9YDcUI8FyXZHrpK0zZO0GPget4FIwArgE4eyrmgHfgQ6EpYbA66O2i39DbT44ucCZxLTywd3Ax8mLLMSGIraLY1b8fMTVpAnPgKGEuTfXskfJfiUFe9MSCpvPAmMxsg3CqyrRKIED1vxXgdSeWIUMz1Ww1kNEyXYPjIJO3uuJ6q59pD9f5TgPVZ8mRun3LEWOBaQPobPlSuIEvwZZtqpoJ/G68dghA0EpK8lYAMRJfgY8K0v3oy5EWxE2K79H1f+F1VWNeutlcqwzKa73hv/oNAu6aikUZmbzMB81Y5p24FDwHm+tEeAd9J9kNxwb/k3dCCLcy79GrDeFz+K2Y0UU1GrE+KcS28C/vDFO2m8/XBsxBE8Arxgpa0BHsieTv6Ie9XSgrnQvsaX9hdwB+aye8Yg7lXLGeA+zt5QzMdMB0uzJhWBCzAXeM5Icre0D1iNORWsoA2zF16VhkQMeMAGzIxxEHPa4gaH+W4w5DThbUltOcyvF0vaGVBfj4s9VxKDkiYCSByR9KiyWZy0SnpW0omAeoqujZuG0D0ydzlBOCDpKUldDnYXS3pR0qkQ20WZBzVOvNNeiPcC24BrQ/6fxOy6Psc8OfoVOMz04FcALgGuxLzaW4bZhnoh9r7BTIf2KWV8pPjClXCOzMud8ZAvkgWKkjZKmpeWbxaCK2GRpJczFl6S9JLMxiATnnm88ViIcbsHMU8RwtwzDFPAl8AHmMelpejsyZD3o5YO4DbMK5s+4DLgQswJqIfpy8eBA8DPmEux3QSfYGSCmfiKJxVm4iueVJgTPNsxJ3i24x9qO45nn/sZdwAAAABJRU5ErkJggg==);background-size:20px 20px;opacity:.7;transform:translateY(-50%) scale(.8)}#SceneHierarchy .header .refresh:hover{opacity:1}#SceneHierarchy .header .status{left:0;transform:translateY(-50%) scale(.8)}#SceneHierarchy .status{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAA8CAYAAACtrX6oAAAACXBIWXMAABYlAAAWJQFJUiTwAAAB90lEQVR4nO2cXWoCQRCEy+R0+6QguCE5XwLJtYToIZTOgxFlWd1Vd7p7yvpgXoLJ1NQ3a/wZnZkZBC8v0QFEWSSYHAkmR4LJkWByJJgcCSZHgsmRYHIkmBwJJkeCyZFgciSYHAkmR4LJkWByxghuAKwBbAEsiqa5jzlO+ZrgLH3MAWxwyLd0n93MhsbaTuzMrB3xO15j9Z/pyG+CTNfyufd36130K4BPAG2BvXYrKwBfOGTKSF8+//5G7IJFZxeG7MTOaC9kWgRmunbldnHr79FCIyRnyjJW7i4qc23FZshwj9zWzN4istdUcM1yj7dxl1xL0QxyQyTXUDiTXHfJ2YtnlOu6tswCmOW6rXGKP1Ii5DPIdVnr0y14glHVhp5y4VXcZT04qvuXNHUB6R90ZBNQeo4SRaR+2pCleK+5ShWS9ol/dOHec5YsJuVLd1FFR81dOmS6F9+9C47O4BEy1dtnXsVmyeIVMs0b4CPG4pFCC427Dzh4hrwkObq87jg/g5YpX19/g2fQPI/N/gB4B7A/+9kewAeAb8cct5ApX19/wwTsxLmZbcxsa2bLBFdGdzR2uIq3lueMV7e/Y75m6PYzM33THTP6ZAM5EkyOBJMjweRIMDkSTI4EkyPB5EgwORJMjgSTI8HkSDA5EkyOBJMjweRIMDl/5nU6ICCWVGoAAAAASUVORK5CYII=);background-position-x:2px;background-position-y:2px;background-size:32px 16px;transform:scale(.8);width:20px;height:20px}#SceneHierarchy .childObject{background-color:#111;min-height:20px;overflow:hidden}#SceneHierarchy .childObject ::-webkit-scrollbar{width:10px}#SceneHierarchy .childObject ::-webkit-scrollbar-track{background:#0d0d0d}#SceneHierarchy .childObject ::-webkit-scrollbar-thumb{background:#666}#SceneHierarchy .childObject ::-webkit-scrollbar-thumb:hover{background:#999}#SceneHierarchy .childObject .child{background-color:#222;border:none;border-bottom:1px solid #111;height:20px;position:relative}#SceneHierarchy .childObject .child:hover{background-color:#333}#SceneHierarchy .childObject .name{background-color:transparent;max-lines:1;position:absolute;left:5px;right:0;top:50%;transform:translateY(-50%);white-space:nowrap}#SceneHierarchy .childObject .container{padding-left:5px;height:auto;overflow-x:hidden;overflow-y:auto;max-height:200px}#SceneHierarchy .childObject .container.closed{height:0;overflow:hidden}#SceneHierarchy .childObject .icon{background-color:transparent;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEZklEQVRYhe2YW4iVVRTHf4465oSaUNlUjo7SmCBEPVipTWYXoV7qoejykhRCEVQP9pAFSWVBPdRTMNRLWGRaFr2FSShmEQ1KzQymUhpeMky6ONbcfj3sdZpvvvnO8Zy5lA/+YcP51jpr7bVv/7X2nqByNqPu/w7gTDgX4GgxaYR2DcDlwC3AUmAh0ARMDf1fwGGgE9gFfAb8AJyquSe1ljZFXa6+o/Y4FD3qvmh5neomdYXaUEuftQQ3T31d7Y8O96tdal98P69eos5SXwhZn7pb7cgE2qa2jHWAy9Svo4Nf1VfUG9VPQvauWp/5f726MXSb1WvVF9XjIftWvXWsArxdPRSOt5uWCfV+dUDtVJsL7K5Q98aM3xuyVnVr+Dqi3jHaAJepx8Lhe2pTyJvVn6PzVRXsHw7bw+rckDWqb4b8mHrbSAOcp7aHozZ1Wka3NuQfqHUVfExUt8R/n8rI69XXQt6lLijnoxzNTAEeA64GeoDzgbVBI5OBu+J/FwPrg3aK0A1cGL8fB+YAfUFDF4T+SmAN8ATwZ97BBC3MxdeTuGtqOBSYkGklgu/NyIpgtMnxPRDfpd9kdCuBT/MOimawHlgdwW0DPs918AAwH9gK7MjoyqEHWA6sAPYBGzMD6gWWRHCPhL/TQ4dYfPpOxSFYXKDvVE+YaKZamrpZPWmil7xuoXrQxAiL8vqiXHwTaU99BbTndItJe+Zoga4S2oFjpJR4TU7XBXwZs7oyb1gU4DKgH/iCtP+yaAlH+4E/agjwJCkXTwwfeewgLXdrNQEuAn6neIYaSfvwQA3BlXCAdEAaC3TtpEFclVcUHZIm0sauC2f1Ie8lLZGkmbiI8vSSR3fYDYSPyzJ990YfvQxS0r8oopkTJI76jbTUpRMnMI3Ekd2k0qnaenKAxKUNwN+k7ZH1Wxd9nswHWWvBWo7vxg1FSyzwC/AgsIfBJe4DngNWAW1UziB5dAPPAo8CbwPrGLrELcAGYEY1AR4C5pKW5WhOt5c0iwMxiFpQykBdpGo7i7kkwj+eNypa4g5gOsP5ChKX1ZG4sFbMjyDzgyb6mgl8V02AO0mndAnDZ/h70hZoJg2iWswMm37SKuRxA2kGtw/TFKSelipTXesIUt3uWlNd0R78EXifdEheYnixMDlm5BlqKxZmkChqHcOLhdnAxxQkgErl1jbgPM7CcgtS6nkDeDIcbQZ+IpVgk4A7gUtJBcVOKhesS0n5/QjwEYMF6yzg7gjwLVLuLxhi+X3TrH4TZXmbOj2jezrkZyr5JzlY8q/JyKsu+UdzaToaG/uhCvarw/agOscxvjSVWvbaucPBa+d9plvdXlORm7dbELo+9Z6Qjfm1MzuT2Yv7q9HZlpBtdOjFfar6Yeg2qdep6x2ni3upFT19dDj49PGy6emjMQZg6PaY9lkJ4/L0UWqlx6MNDn8g6o2g98fvPEb0eFSOB8+Eoue32Rm6OR200hn0sY0RPr+NNMD/DGf9C+u5AEeLfwBkrdN1844nCgAAAABJRU5ErkJggg==);background-size:20px 20px;display:inline-block;position:absolute;right:5px;top:0;width:20px;height:20px;transform:scale(.8)}#SceneHierarchy .childObject .obj3D{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEZklEQVRYhe2YW4iVVRTHf4465oSaUNlUjo7SmCBEPVipTWYXoV7qoejykhRCEVQP9pAFSWVBPdRTMNRLWGRaFr2FSShmEQ1KzQymUhpeMky6ONbcfj3sdZpvvvnO8Zy5lA/+YcP51jpr7bVv/7X2nqByNqPu/w7gTDgX4GgxaYR2DcDlwC3AUmAh0ARMDf1fwGGgE9gFfAb8AJyquSe1ljZFXa6+o/Y4FD3qvmh5neomdYXaUEuftQQ3T31d7Y8O96tdal98P69eos5SXwhZn7pb7cgE2qa2jHWAy9Svo4Nf1VfUG9VPQvauWp/5f726MXSb1WvVF9XjIftWvXWsArxdPRSOt5uWCfV+dUDtVJsL7K5Q98aM3xuyVnVr+Dqi3jHaAJepx8Lhe2pTyJvVn6PzVRXsHw7bw+rckDWqb4b8mHrbSAOcp7aHozZ1Wka3NuQfqHUVfExUt8R/n8rI69XXQt6lLijnoxzNTAEeA64GeoDzgbVBI5OBu+J/FwPrg3aK0A1cGL8fB+YAfUFDF4T+SmAN8ATwZ97BBC3MxdeTuGtqOBSYkGklgu/NyIpgtMnxPRDfpd9kdCuBT/MOimawHlgdwW0DPs918AAwH9gK7MjoyqEHWA6sAPYBGzMD6gWWRHCPhL/TQ4dYfPpOxSFYXKDvVE+YaKZamrpZPWmil7xuoXrQxAiL8vqiXHwTaU99BbTndItJe+Zoga4S2oFjpJR4TU7XBXwZs7oyb1gU4DKgH/iCtP+yaAlH+4E/agjwJCkXTwwfeewgLXdrNQEuAn6neIYaSfvwQA3BlXCAdEAaC3TtpEFclVcUHZIm0sauC2f1Ie8lLZGkmbiI8vSSR3fYDYSPyzJ990YfvQxS0r8oopkTJI76jbTUpRMnMI3Ekd2k0qnaenKAxKUNwN+k7ZH1Wxd9nswHWWvBWo7vxg1FSyzwC/AgsIfBJe4DngNWAW1UziB5dAPPAo8CbwPrGLrELcAGYEY1AR4C5pKW5WhOt5c0iwMxiFpQykBdpGo7i7kkwj+eNypa4g5gOsP5ChKX1ZG4sFbMjyDzgyb6mgl8V02AO0mndAnDZ/h70hZoJg2iWswMm37SKuRxA2kGtw/TFKSelipTXesIUt3uWlNd0R78EXifdEheYnixMDlm5BlqKxZmkChqHcOLhdnAxxQkgErl1jbgPM7CcgtS6nkDeDIcbQZ+IpVgk4A7gUtJBcVOKhesS0n5/QjwEYMF6yzg7gjwLVLuLxhi+X3TrH4TZXmbOj2jezrkZyr5JzlY8q/JyKsu+UdzaToaG/uhCvarw/agOscxvjSVWvbaucPBa+d9plvdXlORm7dbELo+9Z6Qjfm1MzuT2Yv7q9HZlpBtdOjFfar6Yeg2qdep6x2ni3upFT19dDj49PGy6emjMQZg6PaY9lkJ4/L0UWqlx6MNDn8g6o2g98fvPEb0eFSOB8+Eoue32Rm6OR200hn0sY0RPr+NNMD/DGf9C+u5AEeLfwBkrdN1844nCgAAAABJRU5ErkJggg==)}#SceneHierarchy .childObject .camera{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAC60lEQVRYhe2YT4hNcRTHP48xpmYaNAvRyEQxEhnKQljYsRm9/EmSyJiMFAsMZWNhJYoNIUVJ2VGiyb9ZzIpMpkQSahbGv9GMYWrM+1rc2zjvzvvdd+99rzdvMd+6de75nd+5387vnN/v/G5KEuWMKRNNIB8mCRaKiiL5qQb2ApuBuUAV0Ad0AJeB3sSeJRX6LJbULTf6JTUn9Z+KWMUpPyp/Avoa4CNQZ3Sj/lNpdL/xottR7AjOkHRUUpekN5I6JbVLavDH75lIfZN0UFKTpCWS0pJem/HeJBEMG6yV1ONYtgFJbZJ+GF1jDh+zJb03NuliEuwMkMo4yErS2RA/LcbuYVyCrm1mA7Dal/8Cu4FG4JD/HsTTkCy6a+SVMTPQuc1sBKb78nHghi+/A+YBxwL2lbhRY+ThuARdEVxu5JdGFvACr0otdoZ8Y4+Rn0Sn5sFFsMvI6YB9MzA1YJ8mN8k1wAHzfj4uQVdyrpI0aJL7oqTtkq4FiqPLyCOSbktqlbRL0jlJQ2b8QdwCUZ4qvhRStZL0XFK1pMd57CRvq5mfhKBriRfiFUMY6oD7eOdwPlQAN4G10dfWg+uouwXsiOssAj4AC+JMcEWwvnAuOTEr7gTXPmg34zagOwkbIIOXAo9CbDYBrcBXYN+4UUdy2sRflyS5zVNlfPX7ugpJW5V9nI7mmh+lYU0lCZ2B3TOnAVuAk0BTwC5nuhWro46KauBOQJch5OpRaoIW34GreGf+YZdRqS9NAj4Bp4ClQDvwOWxCqSM4ADQEdKE5XvbXzlITrAVe4TW+M6NMKDXBFLAMuAD0ACfIc7pMZBXXA2cY3/xmodQRHAL2A2+NLtj8ZiEKwUL/z2WMPAJcAVYALWSf8dZuDFGWeBHwKxm3sWYhiGG8Tfo6sA2vSfiSy4GrH3wGrDcfKSSKKf6v1E9yF0XK9Q1XBPuMXMw8HXTonQFwETwNzMFr64v1jzgFHIk9ybHEZYPJo65QlD3Bf2/Q/eaHPiSWAAAAAElFTkSuQmCC)}#SceneHierarchy .childObject .interactive{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAADA0lEQVRYhe2Yu2sUURTGf5uYSJ4EsgqJIkRMEYOFYMBCQcTe57/hs9AqlVpYiChYqREsFBRF8AF2KgpqErQQRKIRi6ghRozEhcSYz+Le1bPD7MzOzm5MkQ+Gc+/Z79z7cfY+5kxGEosZNf9bQByWBKbFsjJiGoEuYC3QAUwC74EPwFTlpHlIKvVplHRS0rSK47KktgRjxj6lEtdJ+hIhzGJO0raFFNghaTYg4oKkPkmdknrlMvsjwNm8EAJrJI2YSZ9IyhbhNkkaMNwZSS3VFrjbTPhC0nLzW6ekDZK6jC8j6ZqJOV9tgTZ7eSF1ks6oEHd9BpHULGnS+2flNldVBK4wAu4Z/0GF47bhHDP+njQCow7qbtO+4209cNy3p4ETwCff34k7FwEGTWw2zTFY6k0y4W2LfwAeA/3AdcNr9PZzGXOEIuomeYbL0BrgvvdlzO8z3tYa37y3b33sKuB5tQTO4zJUDLUhvrkSY0tGOXdxHgpYgNPAU9yaHQP6gB3AS+AB0Ars8fYW8C5+lmS7Khuya88W2dXBmyUXwjmXZhenRUug3xDC2Q9sjRokqcBMSNv6DgH7TH8M2AQMBTh7Tf9o1IRJ16BC2tZ3Ffhp+oPAMPDICw3jRCJNBsNQR+HurjF+y7GJiazakgoMGyxOdJBTCv8vKrEG6yPGawrhBAVWLYP59kVvp4DvuDs6vyluenvJcL6RIKNpDup87BCwEsjxb/FvAdqAcd8fNJwc0G7GicxgUoEzpm3PuYkQ3njAZzl2I0VmMOlfnAM++vZ6CtdWEthXsNEoYlKBv3F3aH6S7ghuFA6Y9pVIZhlvuRvNXTosV4ckiV8duJ/ro/jlCKxVYa3SnyC2SdIrE3skLqbcWqFLhTglqSEmpkPSGxMzGpe9NAKRtCsg8qukw3LlaLPPVqtcYT8Q4OY8L3aeNAKRtF3F8auI/7Wk9lLnSCsQufL0RoTQPKblSta6JONnpIp9As4Cvbjyswd3Rk7hXrUeAiO4czQRKimwKlj0X1iXBKbFH8wWbNSnU+tzAAAAAElFTkSuQmCC)}#SceneHierarchy .childObject .light{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAETklEQVRYhe2YXYhVVRTHf3d0/JhyUrMpFbImM+whSa3Mynww+4AeIgiKoozooQ+KyMyXIAujF6OXqHyI6iEKKYgIP/owsjSFqCkprdDUTEcjbWZ0HHV+Pex1ucfb9Z57Z9REXHA4Z++99l7/s/ZZ/7X2KaiczNLwfwPIk9MA+yunNMAG4DHgV+BvoB3YFff2TPstYEyfrajVroI6Sr1GvahsbJC63HzZq04pmztSvU5tVRuqYRiYg78JeBR4HPg5ntdmxovz9wJfA3uAxuibDLQCA+IqynnAQuBuYCnwMLC1rx48U12U8cZqdWqMDcx4cI16qTpYbVKHqa+ovWUeHKsujn7VL9ULq2HI+wY7gVeBJdGeFu3J4ZUiy/cAXeHRRuAQsC/GC0B3eG4BcH/0tUV7czUAeVsMsBF4Kha9HZgCvAncAuwPnXHA0wFuGLANuDrGuoGDwFxgTqzzQ7RX5FrP2eLsdb76vnogtme6+nE8H1YPlQXHwbi3q9eqn0e7Tb25VrsF68vFY0lb1AGcDTwItGQ8tQM4AIwGmqP/EPAu8A0wElgJfFGzxTo8mKWXu9Rd4ZF96jvqjSbauEC9Sn1O3R463epLaku99voCsFXdkAH3kNpcQW+IiT/bQne3eufxBtioPqP2mKhioXpWzpxb1T8C5Ifh4ZptVoriRmAIKdrI3Lujf3bobAPeJpF0NVkKrAFuI9HTOBIxnxFrF4OgQKKr/dnJlQA+AcwABgOHA4zAamA5cE7orQL+zAEHiWI+A2bFC7aSguheYCgpqAphZz3wSB7AecCICv2TgH8oFRib4gVqka0k0h8CXAxMBW6ooDejFoCvA9OBQUAvKWM0kDz4XUZvNKXtyZMWUl7vBbaQXq457PeEziDgx/KJlQAuIPFdMcEXv5OdYWBP9M8k8VpnDQCvB4aTSrCNJB5cSdrW3tBpIJVnR0qdUTxAfdGUOVTnmwqEanNmqltC/9OgqePKg5eom8PgdvW+oJ9Kupera0O3U50TL3lcAaI+oHaF4R3qa6Z822wq0Saq89T1lmSxOrxeW/Xm4uGkiqQDmECKuKHxHW0HdpMiewSpvGqKeR8Ay0iBsYIjg6261PE2o9Q3Yqv+MqWxO9R1Hl12qs+q49Vlppy82pSr+5xJKsko4AXgHlJ0t5NIeg3wLXAlqZhtIUV8J6nmWwX8QiLjdhL5TwMWkY4R6/rrwYKlMr1Y321QZ/vfwBijPqm+rF4Wc7PjE9QllurGVeoV5gRNHsAm9fnMom3qrKPoTjKdMXaYyrFygEWQ72XWW24qhPu8xcUc2UU6O8wFPjmK7jhgPHAuMJGUGQ6U6WwE5sfzTXGvei7KA9hFOiR9D/wOfFVFt4dS2tpfRe83Ur7/CPiJakfOGgBCypubatArl2r8VfOax/LfzABKtePAzHO/5FgC7KBEzB2kOrDfUm8mOeFySv9+OyFyGmB/5aQH+C9BVKmVCNuMZgAAAABJRU5ErkJggg==)}#SceneHierarchy .childObject .ui{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAADjElEQVRYhe2YTWhdRRTHf+lLTFRCkjaLILgIKoIBRRfaSmMFQSsoIrrRuhEqfnTTtV20qHUllIBWcKNQxG4EJWoVEUxKqV8blXYlYv0utr7UtkaN9dfFTMzNfXM/8hJeI/iHYV7OOTP3d+89M3NuulRWs9ZcaIAq/Q+4XJUB3gDsA74BZoDPgaeAdStw3SHgdeD2ykg11baoZ03rS/XKgnGD6niBLxszFedqqpvK4lPG69U/4gTvqneo16lb1e+j/SO1LzF2SD2pbqsBN69SyJTxtTjwPbU75xuLAKr3Zy46FNuoeib6n6kBVwmZAvwuDrqt4K72Rv8LakP9Wv01tqb6T+bCr6rD6og6XQA3rxl1c/56qUXSH/ufCtL229gPxH40Jv0QMAh0ZWIfBG4CNgLjFcthANiWN3YnAn+IweuBown/xtgfAwReAS6NtouAO2P/O/AY8Hb07YqtSNPAwy3WxCt8Oj7yY+q1Od+j6rnovzExtqH+qR5Xb034dxW83ilDjtbKwXXqkTiwqb6o7lDfykw4kZosk2tjBX7UnTm4D4vgigBRr1APFtzthNpTMK5P7S+By0MeLINT6dLCaqYHuAfYFHPsR2AS+Lgkj5aih4ADwMmyoDLAeTUIR9KBleEC4BJgDugFzhIWW1J1ioV9wDuEO14pPQ8cB75gYbtKqgpwN/BA/P0ScMuy0YIGCPvmMIv3zRaVAT4OPJn5+2JCBTK2XDrC6wX4O7ZCFQGOAzuBUyzkx19AH7AXWNsGVC8wQnhyfdHWRXiKw4RTqFUFy3vQcIaOxr1Q9Q1DQTCi9tbYSvJtbdzzThs2cw3n9oz6swVlWtWk/YYiQHV/G1D5do36S+vW6hNFY6oWSTcL53VPG681r6PAfcBsxvYsIW2SqgIUOAE0Cfm4EpoGHom/9wM7yoLrbNRrCMl8btloi7UZeL9q3hTgyyyUTxC2AQmgjYz9MLCnDbANwF3AZYRTZAp4k7BLtCqRmHOJJE5pcokLpNdQGaV0SL2q7iI5XfNJzFaHLNIeQgGb0s2EQmQ47+jUh/t6wslUpquB7XljpwDvbTeuU4CjNeNG8oZOATZrxp3JGzoF+EHNuMN5Q6cAJ4FPKmLmgOfyxhRg6ls5pUZ1yL+aBbYAR0r8W4HP6sCcoKKIjFrq2fwV4QNsO3A3cDnwG3AImAA+TQ2qcxZfUP2n/8O6KrTqAc8D9emWHC8oT9IAAAAASUVORK5CYII=)}#SceneHierarchy .childObject .utils{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAADFElEQVRYhe2YT0hVQRSHf7YwsUVoakFtKmhdUfhUeLSrrFVQEES72rip1EoscFlLK2jRpl21tT8QhFkLq13gIotqlaRPQ8SkgvRrcefiOO/eufN8LzPwwMV375w5893fnHPm+aoArWZb968BsmwNsFz7rwHzkgYltVdgnRpJZyU9lTQm6ZukUUl9GQwSkHS1AgUimwduAHUpvlnXLmCYYpsFDmXNT3p4AJhICDgC7C0RbgvwISHWGNASEiPpYdLbxvYJ2FQC4F1rbj/w1nx+ERoj6WE78NsDeSIw+E7gh5kzYJ5dM/dzwFbH/yDQ58ZJStAnkm570rY+sDDaTHEgqd88GzJ/ayWdk7Td3Ock3Zd0OrRINgKjKQq+ApoCFOw0/j8tteqAaSvWd6LtjgtyKkRBSZqRdFLS+4SxnKQBSU0ZCsaHfLXlOy3plqRxc79BUTtrNPe/QhWU9cbHgQ7gTYKSm1Pm5YAvlm+bM15PlOvXWSwcgGdurFJaRpOBsu010Oj4tVhbBtAFVHni3rR8z5QDKKNYEmSsZI6lPbTbmZ8HdgPbgMNE1R3bMFBbLqCABgNl20vgmAN30ZnXRXQqzbPYfmIbAXYkrbccwLTtts1VrjvFbxa4Q3GalA0Yb/fzALgua2zcjHcDp0hRrVKAAo4CCx64XmtsksDzt1KAbitx4a5YY1+BPctZZ7lwzfgLwlZuxQFb8LcSW7k5FlNgRbY4R5ToIXATREp3OM9a/xZgjqUnhG9bZ4D91linNTZpYlUU0IVzlbMBIGrE5z0+hVAlQ3POt63uwnZ+XvL4ThCQk5VUbhLYR1StNmSPM+eCM8erZBacr1rtE8JVw21Dlz0vVsCTk2lwDcBnE2CB4oKwz9YCyVvltqOkLw9xC/pIyj9jaYBHrMC9Hris3pYzPmmQPdZYeymAeWviPaAmAS4oyT1KrjexY8uXAlgNPLImP2BpnwtuExakXWxXHbjHZs2SiqQeGKTYpgKVy9ru2IbMWiVXcQxpfy1/t0y4+Go2MWJ7SMYvFVWw9hNwWbYGWK6tesA/ap/6uHJWeiAAAAAASUVORK5CYII=)}.editor{font-family:Helvetica,Arial,sans-serif;left:0;pointer-events:none;position:absolute;top:0;width:100%;height:100%;z-index:101}.editor button{background:none;border:none;color:#fff;display:inline-block;margin:0;padding:0;text-align:left}.editor .navBar{display:inline-block;pointer-events:visible;position:relative;left:50px;top:12px}.editor .dropdown{color:#fff;display:inline-block;margin-right:1px;text-align:left;height:fit-content;min-width:auto;width:max-content}.editor .dropdown button{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#222c;color:#ffffff80;font-size:12px;padding:5px 10px;position:relative;text-align:left;min-width:22px;width:100%;height:32px;transition:all .2s linear}.editor .dropdown button:hover{background-color:#333c;color:#fff}.editor .dropdown button.svg{line-height:0;width:32px}.editor .dropdown p{background-color:#222c;display:inline-block;height:22px;margin:0;min-width:22px;padding:5px}.editor .dropdown svg{position:relative;left:50%;transform:translate(-50%)}.editor .dropdown ul{list-style:none;margin:0;margin-block:0;padding-inline:0;position:absolute;width:max-content}.editor .dropdown ul li{border-top:1px solid rgba(17,17,17,.9);display:block;position:relative}.editor .dropdown ul li.selected button{background-color:#444c}.editor .dropdown ul li.selected button:hover{background-color:#555c}.editor .dropdown.subdropdown{min-width:100%}.editor .dropdown.subdropdown ul{border-left:1px solid rgba(17,17,17,.9);left:100%;top:-1px}.editor .draggable li div{background-color:#222c;line-height:14px;padding:5px 10px;transition:background-color .25s linear}.editor .draggable li div:hover{background-color:#333c}.editor .draggable li div span{font-size:12px;margin:0 15px 0 10px;padding:0 5px}.editor .draggable li div .dragIcon{position:absolute;left:10px}.editor .draggable li div .closeIcon{background-color:transparent;padding:0;position:absolute;right:5px;top:50%;min-width:14px;width:14px;height:14px;transform:translateY(-50%)}.editor .draggable li div .closeIcon:hover{background-color:transparent}.editor .draggable li div .closeIcon svg{background-color:transparent;left:0;position:relative}.fsAbsolute{position:absolute;left:0;right:0;top:0;bottom:0}.absoluteCenter{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.hidden{display:none;visibility:hidden}.hideText{text-indent:-9999px;white-space:nowrap}
package/package.json CHANGED
@@ -1,9 +1,23 @@
1
1
  {
2
2
  "name": "@tomorrowevening/hermes",
3
3
  "author": "Colin Duffy <http://tomorrowevening.com/>",
4
+ "description": "An extendable set of Web Tools controlled via a separate window for non-intereference with content.",
4
5
  "license": "GPL-3.0-or-later",
5
- "version": "0.0.0",
6
+ "main": "./dist/hermes.umd.cjs",
7
+ "module": "./dist/hermes.js",
8
+ "types": "./types/index.d.ts",
6
9
  "type": "module",
10
+ "version": "0.0.2",
11
+ "homepage": "https://github.com/tomorrowevening/hermes#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/tomorrowevening/hermes/issues"
14
+ },
15
+ "keywords": [
16
+ "Editor",
17
+ "Remote",
18
+ "TheatreJS",
19
+ "Tweakpane"
20
+ ],
7
21
  "files": [
8
22
  "src/**/*.css",
9
23
  "src/**/*.scss",
@@ -11,6 +25,12 @@
11
25
  "dist",
12
26
  "types/**/*.d.ts"
13
27
  ],
28
+ "exports": {
29
+ ".": {
30
+ "import": "./dist/hermes.js",
31
+ "require": "./dist/hermes.umd.cjs"
32
+ }
33
+ },
14
34
  "repository": {
15
35
  "type": "git",
16
36
  "url": "git+https://github.com/tomorrowevening/hermes.git"
@@ -47,17 +67,5 @@
47
67
  "sass": "^1.66.1",
48
68
  "typescript": "^5.0.2",
49
69
  "vite": "^4.4.5"
50
- },
51
- "description": "An extendable set of Web Tools controlled via a separate window for non-intereference with content.",
52
- "bugs": {
53
- "url": "https://github.com/tomorrowevening/hermes/issues"
54
- },
55
- "homepage": "https://github.com/tomorrowevening/hermes#readme",
56
- "main": "index.js",
57
- "keywords": [
58
- "Editor",
59
- "Remote",
60
- "TheatreJS",
61
- "Tweakpane"
62
- ]
70
+ }
63
71
  }
@@ -1,13 +1,16 @@
1
+ import { CSSProperties, Ref } from 'react'
1
2
  import './scss/index.scss'
2
3
 
3
4
  type EditorProps = {
4
5
  components?: JSX.Element | JSX.Element[]
5
6
  children?: JSX.Element | JSX.Element[]
7
+ ref?: Ref<any>
8
+ style?: CSSProperties
6
9
  }
7
10
 
8
11
  export default function Editor(props: EditorProps) {
9
12
  return (
10
- <div className="editor">
13
+ <div className="editor" ref={props.ref} style={props.style}>
11
14
  <div className="navBar">{props.children}</div>
12
15
  {props.components}
13
16
  </div>
@@ -1,5 +1,13 @@
1
1
  $barHeight: 20px;
2
2
  $maxHeight: calc($barHeight * 10);
3
+ $icon_camera: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAC60lEQVRYhe2YT4hNcRTHP48xpmYaNAvRyEQxEhnKQljYsRm9/EmSyJiMFAsMZWNhJYoNIUVJ2VGiyb9ZzIpMpkQSahbGv9GMYWrM+1rc2zjvzvvdd+99rzdvMd+6de75nd+5387vnN/v/G5KEuWMKRNNIB8mCRaKiiL5qQb2ApuBuUAV0Ad0AJeB3sSeJRX6LJbULTf6JTUn9Z+KWMUpPyp/Avoa4CNQZ3Sj/lNpdL/xottR7AjOkHRUUpekN5I6JbVLavDH75lIfZN0UFKTpCWS0pJem/HeJBEMG6yV1ONYtgFJbZJ+GF1jDh+zJb03NuliEuwMkMo4yErS2RA/LcbuYVyCrm1mA7Dal/8Cu4FG4JD/HsTTkCy6a+SVMTPQuc1sBKb78nHghi+/A+YBxwL2lbhRY+ThuARdEVxu5JdGFvACr0otdoZ8Y4+Rn0Sn5sFFsMvI6YB9MzA1YJ8mN8k1wAHzfj4uQVdyrpI0aJL7oqTtkq4FiqPLyCOSbktqlbRL0jlJQ2b8QdwCUZ4qvhRStZL0XFK1pMd57CRvq5mfhKBriRfiFUMY6oD7eOdwPlQAN4G10dfWg+uouwXsiOssAj4AC+JMcEWwvnAuOTEr7gTXPmg34zagOwkbIIOXAo9CbDYBrcBXYN+4UUdy2sRflyS5zVNlfPX7ugpJW5V9nI7mmh+lYU0lCZ2B3TOnAVuAk0BTwC5nuhWro46KauBOQJch5OpRaoIW34GreGf+YZdRqS9NAj4Bp4ClQDvwOWxCqSM4ADQEdKE5XvbXzlITrAVe4TW+M6NMKDXBFLAMuAD0ACfIc7pMZBXXA2cY3/xmodQRHAL2A2+NLtj8ZiEKwUL/z2WMPAJcAVYALWSf8dZuDFGWeBHwKxm3sWYhiGG8Tfo6sA2vSfiSy4GrH3wGrDcfKSSKKf6v1E9yF0XK9Q1XBPuMXMw8HXTonQFwETwNzMFr64v1jzgFHIk9ybHEZYPJo65QlD3Bf2/Q/eaHPiSWAAAAAElFTkSuQmCC');
4
+ $icon_folder: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAA8CAYAAACtrX6oAAAACXBIWXMAABYlAAAWJQFJUiTwAAAB90lEQVR4nO2cXWoCQRCEy+R0+6QguCE5XwLJtYToIZTOgxFlWd1Vd7p7yvpgXoLJ1NQ3a/wZnZkZBC8v0QFEWSSYHAkmR4LJkWByJJgcCSZHgsmRYHIkmBwJJkeCyZFgciSYHAkmR4LJkWByxghuAKwBbAEsiqa5jzlO+ZrgLH3MAWxwyLd0n93MhsbaTuzMrB3xO15j9Z/pyG+CTNfyufd36130K4BPAG2BvXYrKwBfOGTKSF8+//5G7IJFZxeG7MTOaC9kWgRmunbldnHr79FCIyRnyjJW7i4qc23FZshwj9zWzN4istdUcM1yj7dxl1xL0QxyQyTXUDiTXHfJ2YtnlOu6tswCmOW6rXGKP1Ii5DPIdVnr0y14glHVhp5y4VXcZT04qvuXNHUB6R90ZBNQeo4SRaR+2pCleK+5ShWS9ol/dOHec5YsJuVLd1FFR81dOmS6F9+9C47O4BEy1dtnXsVmyeIVMs0b4CPG4pFCC427Dzh4hrwkObq87jg/g5YpX19/g2fQPI/N/gB4B7A/+9kewAeAb8cct5ApX19/wwTsxLmZbcxsa2bLBFdGdzR2uIq3lueMV7e/Y75m6PYzM33THTP6ZAM5EkyOBJMjweRIMDkSTI4EkyPB5EgwORJMjgSTI8HkSDA5EkyOBJMjweRIMDl/5nU6ICCWVGoAAAAASUVORK5CYII=');
5
+ $icon_interactive: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAADA0lEQVRYhe2Yu2sUURTGf5uYSJ4EsgqJIkRMEYOFYMBCQcTe57/hs9AqlVpYiChYqREsFBRF8AF2KgpqErQQRKIRi6ghRozEhcSYz+Le1bPD7MzOzm5MkQ+Gc+/Z79z7cfY+5kxGEosZNf9bQByWBKbFsjJiGoEuYC3QAUwC74EPwFTlpHlIKvVplHRS0rSK47KktgRjxj6lEtdJ+hIhzGJO0raFFNghaTYg4oKkPkmdknrlMvsjwNm8EAJrJI2YSZ9IyhbhNkkaMNwZSS3VFrjbTPhC0nLzW6ekDZK6jC8j6ZqJOV9tgTZ7eSF1ks6oEHd9BpHULGnS+2flNldVBK4wAu4Z/0GF47bhHDP+njQCow7qbtO+4209cNy3p4ETwCff34k7FwEGTWw2zTFY6k0y4W2LfwAeA/3AdcNr9PZzGXOEIuomeYbL0BrgvvdlzO8z3tYa37y3b33sKuB5tQTO4zJUDLUhvrkSY0tGOXdxHgpYgNPAU9yaHQP6gB3AS+AB0Ars8fYW8C5+lmS7Khuya88W2dXBmyUXwjmXZhenRUug3xDC2Q9sjRokqcBMSNv6DgH7TH8M2AQMBTh7Tf9o1IRJ16BC2tZ3Ffhp+oPAMPDICw3jRCJNBsNQR+HurjF+y7GJiazakgoMGyxOdJBTCv8vKrEG6yPGawrhBAVWLYP59kVvp4DvuDs6vyluenvJcL6RIKNpDup87BCwEsjxb/FvAdqAcd8fNJwc0G7GicxgUoEzpm3PuYkQ3njAZzl2I0VmMOlfnAM++vZ6CtdWEthXsNEoYlKBv3F3aH6S7ghuFA6Y9pVIZhlvuRvNXTosV4ckiV8duJ/ro/jlCKxVYa3SnyC2SdIrE3skLqbcWqFLhTglqSEmpkPSGxMzGpe9NAKRtCsg8qukw3LlaLPPVqtcYT8Q4OY8L3aeNAKRtF3F8auI/7Wk9lLnSCsQufL0RoTQPKblSta6JONnpIp9As4Cvbjyswd3Rk7hXrUeAiO4czQRKimwKlj0X1iXBKbFH8wWbNSnU+tzAAAAAElFTkSuQmCC');
6
+ $icon_lights: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAETklEQVRYhe2YXYhVVRTHf3d0/JhyUrMpFbImM+whSa3Mynww+4AeIgiKoozooQ+KyMyXIAujF6OXqHyI6iEKKYgIP/owsjSFqCkprdDUTEcjbWZ0HHV+Pex1ucfb9Z57Z9REXHA4Z++99l7/s/ZZ/7X2KaiczNLwfwPIk9MA+yunNMAG4DHgV+BvoB3YFff2TPstYEyfrajVroI6Sr1GvahsbJC63HzZq04pmztSvU5tVRuqYRiYg78JeBR4HPg5ntdmxovz9wJfA3uAxuibDLQCA+IqynnAQuBuYCnwMLC1rx48U12U8cZqdWqMDcx4cI16qTpYbVKHqa+ovWUeHKsujn7VL9ULq2HI+wY7gVeBJdGeFu3J4ZUiy/cAXeHRRuAQsC/GC0B3eG4BcH/0tUV7czUAeVsMsBF4Kha9HZgCvAncAuwPnXHA0wFuGLANuDrGuoGDwFxgTqzzQ7RX5FrP2eLsdb76vnogtme6+nE8H1YPlQXHwbi3q9eqn0e7Tb25VrsF68vFY0lb1AGcDTwItGQ8tQM4AIwGmqP/EPAu8A0wElgJfFGzxTo8mKWXu9Rd4ZF96jvqjSbauEC9Sn1O3R463epLaku99voCsFXdkAH3kNpcQW+IiT/bQne3eufxBtioPqP2mKhioXpWzpxb1T8C5Ifh4ZptVoriRmAIKdrI3Lujf3bobAPeJpF0NVkKrAFuI9HTOBIxnxFrF4OgQKKr/dnJlQA+AcwABgOHA4zAamA5cE7orQL+zAEHiWI+A2bFC7aSguheYCgpqAphZz3wSB7AecCICv2TgH8oFRib4gVqka0k0h8CXAxMBW6ooDejFoCvA9OBQUAvKWM0kDz4XUZvNKXtyZMWUl7vBbaQXq457PeEziDgx/KJlQAuIPFdMcEXv5OdYWBP9M8k8VpnDQCvB4aTSrCNJB5cSdrW3tBpIJVnR0qdUTxAfdGUOVTnmwqEanNmqltC/9OgqePKg5eom8PgdvW+oJ9Kupera0O3U50TL3lcAaI+oHaF4R3qa6Z822wq0Saq89T1lmSxOrxeW/Xm4uGkiqQDmECKuKHxHW0HdpMiewSpvGqKeR8Ay0iBsYIjg6261PE2o9Q3Yqv+MqWxO9R1Hl12qs+q49Vlppy82pSr+5xJKsko4AXgHlJ0t5NIeg3wLXAlqZhtIUV8J6nmWwX8QiLjdhL5TwMWkY4R6/rrwYKlMr1Y321QZ/vfwBijPqm+rF4Wc7PjE9QllurGVeoV5gRNHsAm9fnMom3qrKPoTjKdMXaYyrFygEWQ72XWW24qhPu8xcUc2UU6O8wFPjmK7jhgPHAuMJGUGQ6U6WwE5sfzTXGvei7KA9hFOiR9D/wOfFVFt4dS2tpfRe83Ur7/CPiJakfOGgBCypubatArl2r8VfOax/LfzABKtePAzHO/5FgC7KBEzB2kOrDfUm8mOeFySv9+OyFyGmB/5aQH+C9BVKmVCNuMZgAAAABJRU5ErkJggg==');
7
+ $icon_refresh: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAACXBIWXMAAAsTAAALEwEAmpwYAAAE1UlEQVRoge2aW2gdRRzGf5vGWMSTVBpNUjWNijHgg6KIRqmtD0UpqA9iFeulijWkllIsKOKb+lbxgr6oLQUFtc2LPgjaImILSq36oKLWkpZC7C1p6zkNXkqSz4c5x2zH3T27s7vnnMR8MBxmzsx/vm/2P/fxJPF/QlO9CdQac4JnO+YEz3Y052y/C7gV6Af6gCuAhUABEDAOnASGgX3AV8Au4Le8CHk5TEttwMPA/cBNuHnR18D7wLvAieyoAZKyChdJelXSaWWHcUmvS1qUFc8sjDRLeiZjoTZOS3pOUktavmld+irgPeC6MAcC9gBfYNx0P6Z/lsr/FzD9vBe4HlgK3AzMC7H3HfAQ8JMz4xSttUJSMeSLnJT0vKRLHex2SNogaTjia9/lyttV7IIQsWOSnpZUSNGQldAkabWkkYB6JiUN1lJwTwCJT5Xh4OILBUmbA+qbkjRQK8FI2lquuCjjgl4OYv1hlaQ/LdGTku5MYiftoNUD/F4OtcAS4GPMYFdBCbgR+CWOgTwWHnljCbADmO9L24sZ3SeqFZ6Ja+ndwONW2g3Axlilq/i8J2mLzKicZ/90CVus/lyS1FmtXDWjT5SNvdkAAu3QKumwJfqVNIK7NT3XTkla3gAi7fCYJbhUbojEgj1JOyxjh6oZq0NolnTQ4rkuqkzYoLUGWG6ldQObkowuNcAE8IaVtjKqQNC01A38ALQG5BdwO7DTkWAe6AJGmJ5xpsppx4My21/YAzYTLDbO//XAEcxJSQVNwC1hmW3BQa5soxFde5cV7w/L6BecREichqkl9lrxvrCMFcEe8BbxXdUDtgILkjLLCfut+OWhOcvD9YDcUI8FyXZHrpK0zZO0GPget4FIwArgE4eyrmgHfgQ6EpYbA66O2i39DbT44ucCZxLTywd3Ax8mLLMSGIraLY1b8fMTVpAnPgKGEuTfXskfJfiUFe9MSCpvPAmMxsg3CqyrRKIED1vxXgdSeWIUMz1Ww1kNEyXYPjIJO3uuJ6q59pD9f5TgPVZ8mRun3LEWOBaQPobPlSuIEvwZZtqpoJ/G68dghA0EpK8lYAMRJfgY8K0v3oy5EWxE2K79H1f+F1VWNeutlcqwzKa73hv/oNAu6aikUZmbzMB81Y5p24FDwHm+tEeAd9J9kNxwb/k3dCCLcy79GrDeFz+K2Y0UU1GrE+KcS28C/vDFO2m8/XBsxBE8Arxgpa0BHsieTv6Ie9XSgrnQvsaX9hdwB+aye8Yg7lXLGeA+zt5QzMdMB0uzJhWBCzAXeM5Icre0D1iNORWsoA2zF16VhkQMeMAGzIxxEHPa4gaH+W4w5DThbUltOcyvF0vaGVBfj4s9VxKDkiYCSByR9KiyWZy0SnpW0omAeoqujZuG0D0ydzlBOCDpKUldDnYXS3pR0qkQ20WZBzVOvNNeiPcC24BrQ/6fxOy6Psc8OfoVOMz04FcALgGuxLzaW4bZhnoh9r7BTIf2KWV8pPjClXCOzMud8ZAvkgWKkjZKmpeWbxaCK2GRpJczFl6S9JLMxiATnnm88ViIcbsHMU8RwtwzDFPAl8AHmMelpejsyZD3o5YO4DbMK5s+4DLgQswJqIfpy8eBA8DPmEux3QSfYGSCmfiKJxVm4iueVJgTPNsxJ3i24x9qO45nn/sZdwAAAABJRU5ErkJggg==');
8
+ $icon_ui: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAADjElEQVRYhe2YTWhdRRTHf+lLTFRCkjaLILgIKoIBRRfaSmMFQSsoIrrRuhEqfnTTtV20qHUllIBWcKNQxG4EJWoVEUxKqV8blXYlYv0utr7UtkaN9dfFTMzNfXM/8hJeI/iHYV7OOTP3d+89M3NuulRWs9ZcaIAq/Q+4XJUB3gDsA74BZoDPgaeAdStw3SHgdeD2ykg11baoZ03rS/XKgnGD6niBLxszFedqqpvK4lPG69U/4gTvqneo16lb1e+j/SO1LzF2SD2pbqsBN69SyJTxtTjwPbU75xuLAKr3Zy46FNuoeib6n6kBVwmZAvwuDrqt4K72Rv8LakP9Wv01tqb6T+bCr6rD6og6XQA3rxl1c/56qUXSH/ufCtL229gPxH40Jv0QMAh0ZWIfBG4CNgLjFcthANiWN3YnAn+IweuBown/xtgfAwReAS6NtouAO2P/O/AY8Hb07YqtSNPAwy3WxCt8Oj7yY+q1Od+j6rnovzExtqH+qR5Xb034dxW83ilDjtbKwXXqkTiwqb6o7lDfykw4kZosk2tjBX7UnTm4D4vgigBRr1APFtzthNpTMK5P7S+By0MeLINT6dLCaqYHuAfYFHPsR2AS+Lgkj5aih4ADwMmyoDLAeTUIR9KBleEC4BJgDugFzhIWW1J1ioV9wDuEO14pPQ8cB75gYbtKqgpwN/BA/P0ScMuy0YIGCPvmMIv3zRaVAT4OPJn5+2JCBTK2XDrC6wX4O7ZCFQGOAzuBUyzkx19AH7AXWNsGVC8wQnhyfdHWRXiKw4RTqFUFy3vQcIaOxr1Q9Q1DQTCi9tbYSvJtbdzzThs2cw3n9oz6swVlWtWk/YYiQHV/G1D5do36S+vW6hNFY6oWSTcL53VPG681r6PAfcBsxvYsIW2SqgIUOAE0Cfm4EpoGHom/9wM7yoLrbNRrCMl8btloi7UZeL9q3hTgyyyUTxC2AQmgjYz9MLCnDbANwF3AZYRTZAp4k7BLtCqRmHOJJE5pcokLpNdQGaV0SL2q7iI5XfNJzFaHLNIeQgGb0s2EQmQ47+jUh/t6wslUpquB7XljpwDvbTeuU4CjNeNG8oZOATZrxp3JGzoF+EHNuMN5Q6cAJ4FPKmLmgOfyxhRg6ls5pUZ1yL+aBbYAR0r8W4HP6sCcoKKIjFrq2fwV4QNsO3A3cDnwG3AImAA+TQ2qcxZfUP2n/8O6KrTqAc8D9emWHC8oT9IAAAAASUVORK5CYII=');
9
+ $icon_utils: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAADFElEQVRYhe2YT0hVQRSHf7YwsUVoakFtKmhdUfhUeLSrrFVQEES72rip1EoscFlLK2jRpl21tT8QhFkLq13gIotqlaRPQ8SkgvRrcefiOO/eufN8LzPwwMV375w5893fnHPm+aoArWZb968BsmwNsFz7rwHzkgYltVdgnRpJZyU9lTQm6ZukUUl9GQwSkHS1AgUimwduAHUpvlnXLmCYYpsFDmXNT3p4AJhICDgC7C0RbgvwISHWGNASEiPpYdLbxvYJ2FQC4F1rbj/w1nx+ERoj6WE78NsDeSIw+E7gh5kzYJ5dM/dzwFbH/yDQ58ZJStAnkm570rY+sDDaTHEgqd88GzJ/ayWdk7Td3Ock3Zd0OrRINgKjKQq+ApoCFOw0/j8tteqAaSvWd6LtjgtyKkRBSZqRdFLS+4SxnKQBSU0ZCsaHfLXlOy3plqRxc79BUTtrNPe/QhWU9cbHgQ7gTYKSm1Pm5YAvlm+bM15PlOvXWSwcgGdurFJaRpOBsu010Oj4tVhbBtAFVHni3rR8z5QDKKNYEmSsZI6lPbTbmZ8HdgPbgMNE1R3bMFBbLqCABgNl20vgmAN30ZnXRXQqzbPYfmIbAXYkrbccwLTtts1VrjvFbxa4Q3GalA0Yb/fzALgua2zcjHcDp0hRrVKAAo4CCx64XmtsksDzt1KAbitx4a5YY1+BPctZZ7lwzfgLwlZuxQFb8LcSW7k5FlNgRbY4R5ToIXATREp3OM9a/xZgjqUnhG9bZ4D91linNTZpYlUU0IVzlbMBIGrE5z0+hVAlQ3POt63uwnZ+XvL4ThCQk5VUbhLYR1StNmSPM+eCM8erZBacr1rtE8JVw21Dlz0vVsCTk2lwDcBnE2CB4oKwz9YCyVvltqOkLw9xC/pIyj9jaYBHrMC9Hris3pYzPmmQPdZYeymAeWviPaAmAS4oyT1KrjexY8uXAlgNPLImP2BpnwtuExakXWxXHbjHZs2SiqQeGKTYpgKVy9ru2IbMWiVXcQxpfy1/t0y4+Go2MWJ7SMYvFVWw9hNwWbYGWK6tesA/ap/6uHJWeiAAAAAASUVORK5CYII=');
10
+ $icon_world: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEZklEQVRYhe2YW4iVVRTHf4465oSaUNlUjo7SmCBEPVipTWYXoV7qoejykhRCEVQP9pAFSWVBPdRTMNRLWGRaFr2FSShmEQ1KzQymUhpeMky6ONbcfj3sdZpvvvnO8Zy5lA/+YcP51jpr7bVv/7X2nqByNqPu/w7gTDgX4GgxaYR2DcDlwC3AUmAh0ARMDf1fwGGgE9gFfAb8AJyquSe1ljZFXa6+o/Y4FD3qvmh5neomdYXaUEuftQQ3T31d7Y8O96tdal98P69eos5SXwhZn7pb7cgE2qa2jHWAy9Svo4Nf1VfUG9VPQvauWp/5f726MXSb1WvVF9XjIftWvXWsArxdPRSOt5uWCfV+dUDtVJsL7K5Q98aM3xuyVnVr+Dqi3jHaAJepx8Lhe2pTyJvVn6PzVRXsHw7bw+rckDWqb4b8mHrbSAOcp7aHozZ1Wka3NuQfqHUVfExUt8R/n8rI69XXQt6lLijnoxzNTAEeA64GeoDzgbVBI5OBu+J/FwPrg3aK0A1cGL8fB+YAfUFDF4T+SmAN8ATwZ97BBC3MxdeTuGtqOBSYkGklgu/NyIpgtMnxPRDfpd9kdCuBT/MOimawHlgdwW0DPs918AAwH9gK7MjoyqEHWA6sAPYBGzMD6gWWRHCPhL/TQ4dYfPpOxSFYXKDvVE+YaKZamrpZPWmil7xuoXrQxAiL8vqiXHwTaU99BbTndItJe+Zoga4S2oFjpJR4TU7XBXwZs7oyb1gU4DKgH/iCtP+yaAlH+4E/agjwJCkXTwwfeewgLXdrNQEuAn6neIYaSfvwQA3BlXCAdEAaC3TtpEFclVcUHZIm0sauC2f1Ie8lLZGkmbiI8vSSR3fYDYSPyzJ990YfvQxS0r8oopkTJI76jbTUpRMnMI3Ekd2k0qnaenKAxKUNwN+k7ZH1Wxd9nswHWWvBWo7vxg1FSyzwC/AgsIfBJe4DngNWAW1UziB5dAPPAo8CbwPrGLrELcAGYEY1AR4C5pKW5WhOt5c0iwMxiFpQykBdpGo7i7kkwj+eNypa4g5gOsP5ChKX1ZG4sFbMjyDzgyb6mgl8V02AO0mndAnDZ/h70hZoJg2iWswMm37SKuRxA2kGtw/TFKSelipTXesIUt3uWlNd0R78EXifdEheYnixMDlm5BlqKxZmkChqHcOLhdnAxxQkgErl1jbgPM7CcgtS6nkDeDIcbQZ+IpVgk4A7gUtJBcVOKhesS0n5/QjwEYMF6yzg7gjwLVLuLxhi+X3TrH4TZXmbOj2jezrkZyr5JzlY8q/JyKsu+UdzaToaG/uhCvarw/agOscxvjSVWvbaucPBa+d9plvdXlORm7dbELo+9Z6Qjfm1MzuT2Yv7q9HZlpBtdOjFfar6Yeg2qdep6x2ni3upFT19dDj49PGy6emjMQZg6PaY9lkJ4/L0UWqlx6MNDn8g6o2g98fvPEb0eFSOB8+Eoue32Rm6OR200hn0sY0RPr+NNMD/DGf9C+u5AEeLfwBkrdN1844nCgAAAABJRU5ErkJggg==');
3
11
 
4
12
  #SceneHierarchy {
5
13
  background-color: #0d0d0d;
@@ -47,7 +55,7 @@ $maxHeight: calc($barHeight * 10);
47
55
 
48
56
  .refresh {
49
57
  background-color: transparent;
50
- background-image: url("/images/debug/icon_refresh.png");
58
+ background-image: $icon_refresh;
51
59
  background-size: 20px 20px;
52
60
  opacity: 0.7;
53
61
  transform: translateY(-50%) scale(0.8);
@@ -64,7 +72,7 @@ $maxHeight: calc($barHeight * 10);
64
72
  }
65
73
 
66
74
  .status {
67
- background-image: url("/images/debug/icon_folder.png");
75
+ background-image: $icon_folder;
68
76
  background-position-x: 2px;
69
77
  background-position-y: 2px;
70
78
  background-size: 32px 16px;
@@ -132,7 +140,7 @@ $maxHeight: calc($barHeight * 10);
132
140
 
133
141
  .icon {
134
142
  background-color: transparent;
135
- background-image: url("/images/debug/icon_world.png");
143
+ background-image: $icon_world;
136
144
  background-size: 20px 20px;
137
145
  display: inline-block;
138
146
  position: absolute;
@@ -144,27 +152,27 @@ $maxHeight: calc($barHeight * 10);
144
152
  }
145
153
 
146
154
  .obj3D {
147
- background-image: url("/images/debug/icon_world.png");
155
+ background-image: $icon_world;
148
156
  }
149
157
 
150
158
  .camera {
151
- background-image: url("/images/debug/icon_camera.png");
159
+ background-image: $icon_camera;
152
160
  }
153
161
 
154
162
  .interactive {
155
- background-image: url("/images/debug/icon_interactive.png");
163
+ background-image: $icon_interactive;
156
164
  }
157
165
 
158
166
  .light {
159
- background-image: url("/images/debug/icon_lights.png");
167
+ background-image: $icon_lights;
160
168
  }
161
169
 
162
170
  .ui {
163
- background-image: url("/images/debug/icon_ui.png");
171
+ background-image: $icon_ui;
164
172
  }
165
173
 
166
174
  .utils {
167
- background-image: url("/images/debug/icon_utils.png");
175
+ background-image: $icon_utils;
168
176
  }
169
177
  }
170
178
  }
@@ -4,8 +4,10 @@
4
4
 
5
5
  .editor {
6
6
  font-family: 'Helvetica', 'Arial', sans-serif;
7
+ left: 0;
7
8
  pointer-events: none;
8
9
  position: absolute;
10
+ top: 0;
9
11
  width: 100%;
10
12
  height: 100%;
11
13
  z-index: 101;
@@ -1,8 +1,10 @@
1
- /// <reference types="react" />
1
+ import { CSSProperties, Ref } from 'react';
2
2
  import './scss/index.scss';
3
3
  type EditorProps = {
4
4
  components?: JSX.Element | JSX.Element[];
5
5
  children?: JSX.Element | JSX.Element[];
6
+ ref?: Ref<any>;
7
+ style?: CSSProperties;
6
8
  };
7
9
  export default function Editor(props: EditorProps): import("react/jsx-runtime").JSX.Element;
8
10
  export {};
@@ -0,0 +1,14 @@
1
+ export { default as Application } from './core/Application';
2
+ export { debugDispatcher, ToolEvents } from './editor/global';
3
+ export { default as BaseRemote } from './core/remote/BaseRemote';
4
+ export { default as RemoteComponents } from './core/remote/RemoteComponents';
5
+ export { default as RemoteTheatre } from './core/remote/RemoteTheatre';
6
+ export { default as RemoteTweakpane } from './core/remote/RemoteTweakpane';
7
+ export { default as NavButton } from './editor/components/NavButton';
8
+ export { default as DraggableItem } from './editor/components/DraggableItem';
9
+ export { default as Draggable } from './editor/components/Draggable';
10
+ export { default as DropdownItem } from './editor/components/DropdownItem';
11
+ export { default as Dropdown } from './editor/components/Dropdown';
12
+ export { default as RemoteController } from './core/RemoteController';
13
+ export { default as SceneHierarchy } from './editor/sceneHierarchy/SceneHierarchy';
14
+ export { default as Editor } from './editor/Editor';
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
File without changes