sunrize 1.11.8 → 1.11.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sunrize",
3
3
  "productName": "Sunrize X3D Editor",
4
- "version": "1.11.8",
4
+ "version": "1.11.10",
5
5
  "description": "A Multi-Platform X3D Editor",
6
6
  "main": "src/main.js",
7
7
  "bin": {
@@ -88,10 +88,10 @@
88
88
  "shell-tools": "^1.1.9"
89
89
  },
90
90
  "dependencies": {
91
- "@vscode/codicons": "^0.0.42",
91
+ "@vscode/codicons": "^0.0.43",
92
92
  "capitalize": "^2.0.4",
93
93
  "console": "^0.7.2",
94
- "electron": "^39.2.1",
94
+ "electron": "^39.2.4",
95
95
  "electron-prompt": "^1.7.0",
96
96
  "electron-squirrel-startup": "^1.0.1",
97
97
  "electron-tabs": "^1.0.4",
@@ -100,17 +100,17 @@
100
100
  "jquery-ui-dist": "^1.13.3",
101
101
  "jstree": "^3.3.17",
102
102
  "material-icons": "^1.13.14",
103
- "material-symbols": "^0.39.3",
103
+ "material-symbols": "^0.40.0",
104
104
  "md5": "^2.3.0",
105
- "mime-types": "^3.0.1",
106
- "monaco-editor": "^0.54.0",
105
+ "mime-types": "^3.0.2",
106
+ "monaco-editor": "^0.55.1",
107
107
  "node-localstorage": "^3.0.5",
108
108
  "qtip2": "^3.0.3",
109
109
  "spectrum-colorpicker2": "^2.0.10",
110
110
  "string-similarity": "^4.0.4",
111
111
  "tweakpane": "^3.1.10",
112
112
  "update-electron-app": "^3.1.1",
113
- "x_ite": "^12.1.8",
113
+ "x_ite": "^12.1.10",
114
114
  "x3d-traverse": "^1.0.22"
115
115
  }
116
116
  }
@@ -80,6 +80,8 @@ module .exports = class Document extends Interface
80
80
  electron .ipcRenderer .on ("scene-properties", (event) => require ("../Editors/SceneProperties") .open ());
81
81
  electron .ipcRenderer .on ("close", (event) => this .close ());
82
82
 
83
+ $(window) .on ("beforeunload", () => this .close ());
84
+
83
85
  // Edit Menu
84
86
 
85
87
  electron .ipcRenderer .on ("undo", () => this .undo ());
@@ -577,6 +579,8 @@ Viewpoint {
577
579
 
578
580
  close ()
579
581
  {
582
+ this .footer .scriptEditor ?.apply ();
583
+
580
584
  if (UndoManager .shared .saveNeeded)
581
585
  this .saveFile ();
582
586
 
@@ -1633,7 +1633,7 @@ module .exports = class OutlineView extends Interface
1633
1633
  case X3D .X3DConstants .SFBool:
1634
1634
  {
1635
1635
  $("<img></img>")
1636
- .addClass (["boolean-button", "field-button", "button",])
1636
+ .addClass (["boolean-button", "field-button", "button"])
1637
1637
  .attr ("src", `../images/OutlineEditor/Values/${field .getValue () ? "TRUE" : "FALSE"}.svg`)
1638
1638
  .attr ("title", _("Toggle value."))
1639
1639
  .appendTo (child);
@@ -1645,7 +1645,7 @@ module .exports = class OutlineView extends Interface
1645
1645
  case X3D .X3DConstants .SFColorRGBA:
1646
1646
  {
1647
1647
  $("<div></div>")
1648
- .addClass (["color-button", "field-button", "button",])
1648
+ .addClass (["color-button", "field-button", "button"])
1649
1649
  .attr ("title", _("Open color picker."))
1650
1650
  .css ("background-color", this .getColorFromField (node, field))
1651
1651
  .appendTo (child);
@@ -1656,7 +1656,7 @@ module .exports = class OutlineView extends Interface
1656
1656
  case X3D .X3DConstants .SFTime:
1657
1657
  {
1658
1658
  $("<img></img>")
1659
- .addClass (["time-button", "field-button", "button",])
1659
+ .addClass (["time-button", "field-button", "button"])
1660
1660
  .attr ("src", `../images/OutlineEditor/Values/Bell.svg`)
1661
1661
  .attr ("title", _("Set current time."))
1662
1662
  .appendTo (child);
@@ -1680,7 +1680,23 @@ module .exports = class OutlineView extends Interface
1680
1680
  break;
1681
1681
  }
1682
1682
  }
1683
+ else if (field .isOutput ())
1684
+ {
1685
+ switch (field .getType ())
1686
+ {
1687
+ case X3D .X3DConstants .SFBool:
1688
+ {
1689
+ $("<img></img>")
1690
+ .addClass (["boolean-out-button", "field-button"])
1691
+ .attr ("src", `../images/OutlineEditor/Values/${field .getValue () ? "TRUE" : "FALSE"}-out.svg`)
1692
+ .attr ("title", _("State of value."))
1693
+ .appendTo (child);
1683
1694
 
1695
+ field .addFieldCallback (this .#fieldButtonSymbol, this .updateBoolean .bind (this, parent, node, field));
1696
+ break;
1697
+ }
1698
+ }
1699
+ }
1684
1700
 
1685
1701
  // Access type
1686
1702
 
@@ -1943,8 +1959,16 @@ module .exports = class OutlineView extends Interface
1943
1959
 
1944
1960
  updateBoolean (parent, node, field)
1945
1961
  {
1946
- parent .find (`.field[field-id=${field .getId ()}] > .item .boolean-button`)
1947
- .attr ("src", `../images/OutlineEditor/Values/${field .getValue () ? "TRUE" : "FALSE"}.svg`)
1962
+ if (field .isInitializable ())
1963
+ {
1964
+ parent .find (`.field[field-id=${field .getId ()}] > .item .boolean-button`)
1965
+ .attr ("src", `../images/OutlineEditor/Values/${field .getValue () ? "TRUE" : "FALSE"}.svg`)
1966
+ }
1967
+ else if (field .isOutput ())
1968
+ {
1969
+ parent .find (`.field[field-id=${field .getId ()}] > .item .boolean-out-button`)
1970
+ .attr ("src", `../images/OutlineEditor/Values/${field .getValue () ? "TRUE" : "FALSE"}-out.svg`)
1971
+ }
1948
1972
  }
1949
1973
 
1950
1974
  updateColor (parent, node, field)
@@ -102,6 +102,28 @@ DEF Sunny Background {
102
102
  0.48 0.48 0.45
103
103
  ]
104
104
  }
105
+ `
106
+ },
107
+ {
108
+ componentInfo: { name: "EnvironmentalEffects" },
109
+ typeName: "Background Sunset",
110
+ x3dSyntax: `
111
+ DEF Sunset Background {
112
+ skyAngle [
113
+ 0.8, 1.2, 1.5, 1.55, 1.5708
114
+ ]
115
+ skyColor [
116
+ 0.0196078 0.0196078 0.0196078,
117
+ 0.054902 0.0705882 0.0862745,
118
+ 0.203922 0.243137 0.313726,
119
+ 0.541176 0.462745 0.435294,
120
+ 0.745098 0.541176 0.376471,
121
+ 0.890196 0.537255 0.172549
122
+ ]
123
+ groundColor [
124
+ 0 0 0
125
+ ]
126
+ }
105
127
  `
106
128
  },
107
129
  {
@@ -147,7 +147,7 @@ module .exports = class ScriptEditor extends Interface
147
147
  {
148
148
  return new Promise (resolve =>
149
149
  {
150
- monacoLoader .require (["vs/editor/editor.main"], ({ m: monaco }) => resolve (monaco));
150
+ monacoLoader .require (["vs/editor/editor.main"], resolve);
151
151
  });
152
152
  }
153
153
 
@@ -189,19 +189,23 @@ module .exports = class ScriptEditor extends Interface
189
189
  };
190
190
 
191
191
  const keywords = [
192
- 'const', 'uniform', 'break', 'continue',
193
- 'do', 'for', 'while', 'if', 'else', 'switch', 'case', 'in', 'out', 'inout', 'true', 'false',
194
- 'invariant', 'discard', 'return', 'sampler2D', 'samplerCube', 'sampler3D', 'struct',
195
- 'radians', 'degrees', 'sin', 'cos', 'tan', 'asin', 'acos', 'atan', 'pow', 'sinh', 'cosh', 'tanh', 'asinh', 'acosh', 'atanh',
196
- 'exp', 'log', 'exp2', 'log2', 'sqrt', 'inversesqrt', 'abs', 'sign', 'floor', 'ceil', 'round', 'roundEven', 'trunc', 'fract', 'mod', 'modf',
197
- 'min', 'max', 'clamp', 'mix', 'step', 'smoothstep', 'length', 'distance', 'dot', 'cross ',
198
- 'determinant', 'inverse', 'normalize', 'faceforward', 'reflect', 'refract', 'matrixCompMult', 'outerProduct', 'transpose', 'lessThan ',
199
- 'lessThanEqual', 'greaterThan', 'greaterThanEqual', 'equal', 'notEqual', 'any', 'all', 'not', 'packUnorm2x16', 'unpackUnorm2x16', 'packSnorm2x16', 'unpackSnorm2x16', 'packHalf2x16', 'unpackHalf2x16',
200
- 'dFdx', 'dFdy', 'fwidth', 'textureSize', 'texture', 'textureProj', 'textureLod', 'textureGrad', 'texelFetch', 'texelFetchOffset',
201
- 'textureProjLod', 'textureLodOffset', 'textureGradOffset', 'textureProjLodOffset', 'textureProjGrad', 'intBitsToFloat', 'uintBitsToFloat', 'floatBitsToInt', 'floatBitsToUint', 'isnan', 'isinf',
202
- 'vec2', 'vec3', 'vec4', 'ivec2', 'ivec3', 'ivec4', 'uvec2', 'uvec3', 'uvec4', 'bvec2', 'bvec3', 'bvec4',
203
- 'mat2', 'mat3', 'mat2x2', 'mat2x3', 'mat2x4', 'mat3x2', 'mat3x3', 'mat3x4', 'mat4x2', 'mat4x3', 'mat4x4', 'mat4',
204
- 'float', 'int', 'uint', 'void', 'bool',
192
+ 'break', 'case', 'const', 'continue', 'discard', 'do', 'else', 'flat', 'for', 'highp', 'if', 'in', 'inout', 'invariant', 'lowp', 'mediump', 'out', 'precision', 'return', 'smooth', 'struct', 'switch', 'uniform', 'while',
193
+ ];
194
+
195
+ const types = [
196
+ 'bool', 'bvec2', 'bvec3', 'bvec4', 'float', 'int', 'ivec2', 'ivec3', 'ivec4', 'mat2', 'mat2x2', 'mat2x3', 'mat2x4', 'mat3', 'mat3x2', 'mat3x3', 'mat3x4', 'mat4', 'mat4x2', 'mat4x3', 'mat4x4', 'sampler2D', 'sampler3D', 'samplerCube', 'uint', 'uvec2', 'uvec3', 'uvec4', 'vec2', 'vec3', 'vec4', 'void',
197
+ ];
198
+
199
+ const functions = [
200
+ 'abs', 'acos', 'acosh', 'all', 'any', 'asin', 'asinh', 'atan', 'atanh', 'ceil', 'clamp', 'cos', 'cosh', 'cross ', 'degrees', 'determinant', 'dFdx', 'dFdy', 'distance', 'dot', 'equal', 'exp', 'exp2', 'faceforward', 'floatBitsToInt', 'floatBitsToUint', 'floor', 'fract', 'fwidth', 'greaterThan', 'greaterThanEqual', 'intBitsToFloat', 'inverse', 'inversesqrt', 'isinf', 'isnan', 'length', 'lessThan ', 'lessThanEqual', 'log', 'log2', 'main', 'matrixCompMult', 'max', 'min', 'mix', 'mod', 'modf', 'normalize', 'not', 'notEqual', 'outerProduct', 'packUnorm2x16', 'pow', 'radians', 'reflect', 'refract', 'round', 'roundEven', 'sign', 'sin', 'sinh', 'smoothstep', 'sqrt', 'step', 'tan', 'tanh', 'texelFetch', 'texelFetchOffset', 'texture', 'textureGrad', 'textureGradOffset', 'textureLod', 'textureLodOffset', 'textureProj', 'textureProjGrad', 'textureProjLod', 'textureProjLodOffset', 'textureSize', 'transpose', 'trunc', 'uintBitsToFloat',
201
+ ];
202
+
203
+ const constants = [
204
+ 'false', 'true',
205
+ ];
206
+
207
+ const builtins = [
208
+ 'gl_ClipDistance', 'gl_CullDistance', 'gl_FragCoord', 'gl_FragDepth', 'gl_FrontFacing', 'gl_GlobalInvocationID', 'gl_HelperInvocation', 'gl_InstanceID', 'gl_InvocationID', 'gl_Layer', 'gl_LocalInvocationID', 'gl_LocalInvocationIndex', 'gl_NumSamples', 'gl_NumWorkGroups', 'gl_PatchVerticesIn', 'gl_PointCoord', 'gl_PointSize', 'gl_Position', 'gl_PrimitiveID', 'gl_PrimitiveIDIn', 'gl_SampleID', 'gl_SampleMask', 'gl_SampleMaskIn', 'gl_SamplePosition', 'gl_TessCoord', 'gl_TessLevelInner', 'gl_TessLevelOuter', 'gl_VertexID', 'gl_ViewportIndex', 'gl_WorkGroupID', 'gl_WorkGroupSize',
205
209
  ];
206
210
 
207
211
  const language = {
@@ -209,6 +213,10 @@ module .exports = class ScriptEditor extends Interface
209
213
  // Set defaultToken to invalid to see what you do not tokenize yet
210
214
  defaultToken: 'invalid',
211
215
  keywords,
216
+ types,
217
+ functions,
218
+ constants,
219
+ builtins,
212
220
  operators: [
213
221
  '=',
214
222
  '>',
@@ -256,33 +264,43 @@ module .exports = class ScriptEditor extends Interface
256
264
 
257
265
  tokenizer: {
258
266
  root: [
267
+ // data:mime-type,
268
+ [/data:x-shader\/x-(?:vertex|fragment),/, 'string'],
269
+
270
+ // x3d_SpecialVariable
271
+ [/x3d_\w+/, 'keyword'],
272
+
259
273
  // identifiers and keywords
260
- [
261
- /[a-zA-Z_]\w*/,
274
+
275
+ [/[a-zA-Z_]\w*/,
262
276
  {
263
277
  cases: {
264
278
  '@keywords': { token: 'keyword.$0' },
265
- '@default': 'identifier'
279
+ '@types': { token: 'type.identifier' },
280
+ '@functions': { token: 'attribute.name' },
281
+ '@constants': { token: 'constant' },
282
+ '@builtins': { token: 'regexp' },
283
+ '@default': 'identifier',
266
284
  }
267
- }
268
- ],
269
-
270
- // Preprocessor directive (#define)
271
- [/^\s*#\s*\w+/, 'keyword.directive'],
285
+ }],
272
286
 
273
287
  // Version
274
288
  [/#version\s+\d+\s+es/, 'keyword.directive'],
275
289
 
290
+ // Preprocessor directive (#define)
291
+ [/^\s*#\s*\w+/, 'keyword.directive'],
292
+
276
293
  // whitespace
277
294
  { include: '@whitespace' },
278
295
 
279
296
  // delimiters and operators
280
297
  [/[{}()\[\]]/, '@brackets'],
281
- [/@symbols/, {
282
- cases: {
283
- '@operators': 'operator',
284
- '@default': ''
285
- }
298
+ [/@symbols/,
299
+ {
300
+ cases: {
301
+ '@operators': 'operator',
302
+ '@default': ''
303
+ }
286
304
  }],
287
305
 
288
306
  // numbers
@@ -305,18 +323,6 @@ module .exports = class ScriptEditor extends Interface
305
323
  [/[\/*]/, 'comment']
306
324
  ],
307
325
 
308
- // Does it have strings?
309
- string: [
310
- [/[^\\"]+/, 'string'],
311
- [/@escapes/, 'string.escape'],
312
- [/\\./, 'string.escape.invalid'],
313
- [/"/, {
314
- token: 'string.quote',
315
- bracket: '@close',
316
- next: '@pop'
317
- }]
318
- ],
319
-
320
326
  whitespace: [
321
327
  [/[ \t\r\n]+/, 'white'],
322
328
  [/\/\*/, 'comment', '@comment'],
@@ -465,16 +465,38 @@ module .exports = class Editor
465
465
  <meta charset="utf-8">
466
466
  <script defer src="https://cdn.jsdelivr.net/npm/x_ite@latest/dist/x_ite.min.js"></script>
467
467
  <style>
468
+ @import url("https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400&family=Source+Sans+3:ital,wght@0,400&display=swap");
469
+
470
+ @media (prefers-color-scheme: light) {
471
+ :root {
472
+ --text-color: rgb(42, 42, 42);
473
+ --background-color: white;
474
+ --link-color: rgb(0, 86, 178);
475
+ --link-hover-color: rgb(210, 96, 58);
476
+ }
477
+ }
478
+
479
+ @media (prefers-color-scheme: dark) {
480
+ :root {
481
+ --text-color: rgb(175, 176, 177);
482
+ --background-color: rgb(27, 27, 30);
483
+ --link-color: rgb(82, 108, 150);
484
+ --link-hover-color: rgb(210, 96, 58);
485
+ }
486
+ }
487
+
468
488
  body {
469
489
  color-scheme: light dark;
490
+ box-sizing: border-box;
470
491
  display: flex;
471
492
  flex-direction: column;
472
493
  margin: 0px;
473
494
  padding: 0px;
474
495
  height: 100vh;
475
- background-color: light-dark(white, rgb(27, 27, 30));
476
- color: light-dark(rgb(42, 42, 42), rgb(175, 176, 177));
477
- font-family: sans-serif;
496
+ background-color: var(--background-color);
497
+ color: var(--text-color);
498
+ font-family: "Source Sans 3", sans-serif;
499
+ font-size: 1.08rem;
478
500
  }
479
501
 
480
502
  body > * {
@@ -482,21 +504,26 @@ body > * {
482
504
  padding: 0px 1rem;
483
505
  }
484
506
 
507
+ h1 {
508
+ font-family: Lato, sans-serif;
509
+ }
510
+
485
511
  x3d-canvas {
486
512
  flex: 1 1 auto;
487
- border-top: 2px solid light-dark(rgb(42, 42, 42), rgb(175, 176, 177));
488
- border-bottom: 2px solid light-dark(rgb(42, 42, 42), rgb(175, 176, 177));
513
+ box-sizing: border-box;
514
+ border-top: 1px solid color-mix(in srgb, var(--text-color), transparent 90%);
515
+ border-bottom: 1px solid color-mix(in srgb, var(--text-color), transparent 90%);
489
516
  padding: 0px;
490
517
  width: 100%;
491
518
  height: 100%;
492
519
  }
493
520
 
494
521
  a {
495
- color: light-dark(rgb(0, 86, 178), rgb(82, 108, 150));
522
+ color: var(--link-color);
496
523
  }
497
524
 
498
525
  a:hover {
499
- color: light-dark(rgb(210, 96, 58), rgb(210, 96, 58))
526
+ color: var(--link-hover-color);
500
527
  }
501
528
  </style>
502
529
  </head>
@@ -505,7 +532,7 @@ a:hover {
505
532
  <x3d-canvas>
506
533
  ${scene .toXMLString ({ html: true, indent: " " .repeat (6) }) .trimEnd () }
507
534
  </x3d-canvas>
508
- <p>Made with <a href="https://create3000.github.io/sunrize/" target="_blank">Sunrize X3D Editor.</a></p>
535
+ <p>Made with <a href="https://create3000.github.io/sunrize/" target="_blank">Sunrize X3D Editor</a>. If local files are not loaded <a href="https://create3000.github.io/x_ite/setup-a-localhost-server">consider setup a localhost server</a> or use <a href="https://create3000.github.io/x_ite/dom-integration">DOM integration methods</a>.</p>
509
536
  </body>
510
537
  </html>`
511
538
  }
@@ -0,0 +1,84 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ width="12"
4
+ height="12"
5
+ viewBox="0 0 3.175 3.1750001"
6
+ version="1.1"
7
+ id="svg8"
8
+ inkscape:version="1.4.2 (ebf0e940, 2025-05-08)"
9
+ sodipodi:docname="FALSE-out.svg"
10
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
11
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
12
+ xmlns="http://www.w3.org/2000/svg"
13
+ xmlns:svg="http://www.w3.org/2000/svg"
14
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
15
+ xmlns:cc="http://creativecommons.org/ns#"
16
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
17
+ <defs
18
+ id="defs2" />
19
+ <sodipodi:namedview
20
+ id="base"
21
+ pagecolor="#e6e6e6"
22
+ bordercolor="#666666"
23
+ borderopacity="1.0"
24
+ inkscape:pageopacity="0"
25
+ inkscape:pageshadow="2"
26
+ inkscape:zoom="26.354658"
27
+ inkscape:cx="13.375245"
28
+ inkscape:cy="4.7619666"
29
+ inkscape:document-units="mm"
30
+ inkscape:current-layer="layer1"
31
+ inkscape:document-rotation="0"
32
+ showgrid="true"
33
+ inkscape:window-width="1472"
34
+ inkscape:window-height="840"
35
+ inkscape:window-x="-1"
36
+ inkscape:window-y="34"
37
+ inkscape:window-maximized="0"
38
+ units="px"
39
+ inkscape:object-nodes="true"
40
+ inkscape:snap-bbox="true"
41
+ inkscape:bbox-nodes="true"
42
+ inkscape:showpageshadow="2"
43
+ inkscape:pagecheckerboard="0"
44
+ inkscape:deskcolor="#d1d1d1">
45
+ <inkscape:grid
46
+ type="xygrid"
47
+ id="grid42"
48
+ empspacing="1"
49
+ originx="0"
50
+ originy="0"
51
+ spacingy="1"
52
+ spacingx="1"
53
+ units="px" />
54
+ </sodipodi:namedview>
55
+ <metadata
56
+ id="metadata5">
57
+ <rdf:RDF>
58
+ <cc:Work
59
+ rdf:about="">
60
+ <dc:format>image/svg+xml</dc:format>
61
+ <dc:type
62
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
63
+ </cc:Work>
64
+ </rdf:RDF>
65
+ </metadata>
66
+ <g
67
+ inkscape:label="Ebene 1"
68
+ inkscape:groupmode="layer"
69
+ id="layer1">
70
+ <circle
71
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.265;stroke-dasharray:none;stroke-opacity:1"
72
+ id="path1"
73
+ cx="1.5875001"
74
+ cy="1.5875001"
75
+ r="1.455" />
76
+ <ellipse
77
+ ry="0.92604178"
78
+ rx="0.92604172"
79
+ style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
80
+ id="path890"
81
+ cx="1.5875"
82
+ cy="1.5875" />
83
+ </g>
84
+ </svg>
@@ -0,0 +1,84 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ width="12"
4
+ height="12"
5
+ viewBox="0 0 3.175 3.1750001"
6
+ version="1.1"
7
+ id="svg8"
8
+ inkscape:version="1.4.2 (ebf0e940, 2025-05-08)"
9
+ sodipodi:docname="TRUE-out.svg"
10
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
11
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
12
+ xmlns="http://www.w3.org/2000/svg"
13
+ xmlns:svg="http://www.w3.org/2000/svg"
14
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
15
+ xmlns:cc="http://creativecommons.org/ns#"
16
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
17
+ <defs
18
+ id="defs2" />
19
+ <sodipodi:namedview
20
+ id="base"
21
+ pagecolor="#e6e6e6"
22
+ bordercolor="#666666"
23
+ borderopacity="1.0"
24
+ inkscape:pageopacity="0"
25
+ inkscape:pageshadow="2"
26
+ inkscape:zoom="26.354658"
27
+ inkscape:cx="5.2931819"
28
+ inkscape:cy="3.7754237"
29
+ inkscape:document-units="mm"
30
+ inkscape:current-layer="layer1"
31
+ inkscape:document-rotation="0"
32
+ showgrid="true"
33
+ inkscape:window-width="976"
34
+ inkscape:window-height="840"
35
+ inkscape:window-x="0"
36
+ inkscape:window-y="34"
37
+ inkscape:window-maximized="0"
38
+ units="px"
39
+ inkscape:object-nodes="true"
40
+ inkscape:snap-bbox="true"
41
+ inkscape:bbox-nodes="true"
42
+ inkscape:showpageshadow="2"
43
+ inkscape:pagecheckerboard="0"
44
+ inkscape:deskcolor="#d1d1d1">
45
+ <inkscape:grid
46
+ type="xygrid"
47
+ id="grid42"
48
+ empspacing="1"
49
+ originx="0"
50
+ originy="0"
51
+ spacingy="1"
52
+ spacingx="1"
53
+ units="px" />
54
+ </sodipodi:namedview>
55
+ <metadata
56
+ id="metadata5">
57
+ <rdf:RDF>
58
+ <cc:Work
59
+ rdf:about="">
60
+ <dc:format>image/svg+xml</dc:format>
61
+ <dc:type
62
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
63
+ </cc:Work>
64
+ </rdf:RDF>
65
+ </metadata>
66
+ <g
67
+ inkscape:label="Ebene 1"
68
+ inkscape:groupmode="layer"
69
+ id="layer1">
70
+ <circle
71
+ style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.265;stroke-dasharray:none;stroke-opacity:1"
72
+ id="path1"
73
+ cx="1.5875001"
74
+ cy="1.5875001"
75
+ r="1.455" />
76
+ <ellipse
77
+ ry="0.92604178"
78
+ rx="0.92604172"
79
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
80
+ id="path890"
81
+ cx="1.5875001"
82
+ cy="1.5875001" />
83
+ </g>
84
+ </svg>
@@ -4,6 +4,7 @@
4
4
  @import url(system-colors.css);
5
5
 
6
6
  html {
7
+ color-scheme: light dark;
7
8
  overflow: hidden;
8
9
  height: 100%;
9
10
  }
@@ -1319,6 +1320,18 @@ body.light .console-output .selected {
1319
1320
  inset: 0;
1320
1321
  }
1321
1322
 
1323
+ /* monaco editor */
1324
+
1325
+ .monaco-editor,
1326
+ .monaco-editor * {
1327
+ all: revert;
1328
+ }
1329
+
1330
+ /* Hide monaco tooltips. */
1331
+ .context-view.monaco-component {
1332
+ display: none;
1333
+ }
1334
+
1322
1335
  /* Animation Editor */
1323
1336
 
1324
1337
  .animation-editor {
@@ -1604,7 +1617,7 @@ body.light .console-output .selected {
1604
1617
  color: var(--system-brown);
1605
1618
  }
1606
1619
 
1607
- .scene-graph .exported-node > .item .boolean-button {
1620
+ .scene-graph .exported-node > .item :is(.boolean-button, .boolean-out-button) {
1608
1621
  top: 2px
1609
1622
  }
1610
1623
 
@@ -1635,6 +1648,14 @@ body.light .console-output .selected {
1635
1648
  top: 4px;
1636
1649
  }
1637
1650
 
1651
+ .scene-graph .boolean-out-button {
1652
+ position: relative;
1653
+ margin-left: 10px;
1654
+ width: 12px;
1655
+ height: 12px;
1656
+ top: 4px;
1657
+ }
1658
+
1638
1659
  .scene-graph .color-button {
1639
1660
  position: relative;
1640
1661
  box-sizing: border-box;
@@ -1912,15 +1933,3 @@ body.light .console-output .selected {
1912
1933
  .tp-ckbv_w svg path {
1913
1934
  stroke: var(--system-green) !important;
1914
1935
  }
1915
-
1916
- /* monaco editor */
1917
-
1918
- .monaco-editor,
1919
- .monaco-editor * {
1920
- all: revert;
1921
- }
1922
-
1923
- /* Fix stange tooltip with placehoder in Find widget */
1924
- .context-view.monaco-component {
1925
- display: none;
1926
- }
@@ -2,8 +2,6 @@
2
2
 
3
3
  @media (prefers-color-scheme: light) {
4
4
  :root {
5
- color-scheme: light;
6
-
7
5
  /* Colors */
8
6
 
9
7
  --system-red: rgb(255, 56, 60);
@@ -43,8 +41,8 @@
43
41
  /* Special Colors */
44
42
 
45
43
  --sidebar-background-color: rgb(208, 219, 231);
46
- --tint-color1: rgba(255, 255, 255, 0.5);
47
- --tint-color2: rgba(255, 255, 255, 1);
44
+ --tint-color1: rgba(255, 255, 255, 0.4);
45
+ --tint-color2: rgba(255, 255, 255, 0.6);
48
46
 
49
47
  /* TweakPanel colors */
50
48
 
@@ -79,8 +77,6 @@
79
77
 
80
78
  @media (prefers-color-scheme: dark) {
81
79
  :root {
82
- color-scheme: dark;
83
-
84
80
  /* Colors */
85
81
 
86
82
  --system-red: rgb(255, 66, 69);