fragment-tools 0.1.13 → 0.1.15

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.
Files changed (184) hide show
  1. package/.prettierignore +1 -2
  2. package/.prettierrc +23 -7
  3. package/README.md +28 -9
  4. package/bin/index.js +70 -10
  5. package/package.json +14 -6
  6. package/src/cli/build.js +125 -0
  7. package/src/cli/create.js +238 -0
  8. package/src/cli/createConfig.js +82 -0
  9. package/src/cli/createFragmentFile.js +70 -0
  10. package/src/cli/getEntries.js +85 -0
  11. package/src/cli/log.js +36 -24
  12. package/src/cli/plugins/check-dependencies.js +88 -42
  13. package/src/cli/plugins/hot-shader-replacement.js +408 -0
  14. package/src/cli/plugins/hot-sketch-reload.js +21 -25
  15. package/src/cli/plugins/save.js +101 -0
  16. package/src/cli/preview.js +55 -0
  17. package/src/cli/prompts.js +260 -0
  18. package/src/cli/run.js +131 -0
  19. package/src/cli/templates/blank/index.js +33 -0
  20. package/src/cli/templates/blank/meta.json +4 -0
  21. package/src/cli/templates/default/index.js +39 -0
  22. package/src/cli/templates/default/meta.json +5 -0
  23. package/src/cli/templates/fragment-gl/index.js +37 -0
  24. package/src/cli/templates/fragment-gl/meta.json +4 -0
  25. package/src/cli/templates/p5/index.js +32 -0
  26. package/src/cli/templates/p5/meta.json +5 -0
  27. package/src/cli/templates/p5-webgl/fragment.fs +14 -0
  28. package/src/cli/templates/p5-webgl/index.js +67 -0
  29. package/src/cli/templates/p5-webgl/meta.json +5 -0
  30. package/src/cli/templates/three-fragment/fragment.fs +10 -0
  31. package/src/cli/templates/three-fragment/index.js +95 -0
  32. package/src/cli/templates/three-fragment/meta.json +5 -0
  33. package/src/cli/templates/three-orthographic/index.js +55 -0
  34. package/src/cli/templates/three-orthographic/meta.json +5 -0
  35. package/src/cli/templates/three-perspective/index.js +52 -0
  36. package/src/cli/templates/three-perspective/meta.json +5 -0
  37. package/src/cli/utils.js +70 -0
  38. package/src/cli/ws.js +87 -78
  39. package/src/client/app/App.svelte +3 -3
  40. package/src/client/app/client.js +55 -39
  41. package/src/client/app/components/IconCross.svelte +18 -18
  42. package/src/client/app/components/Init.svelte +40 -8
  43. package/src/client/app/components/KeyBinding.svelte +22 -22
  44. package/src/client/app/helpers.js +42 -0
  45. package/src/client/app/hooks.js +20 -0
  46. package/src/client/app/inputs/Input.js +9 -9
  47. package/src/client/app/inputs/Keyboard.js +13 -15
  48. package/src/client/app/inputs/MIDI.js +14 -15
  49. package/src/client/app/inputs/Mouse.js +1 -1
  50. package/src/client/app/inputs/Webcam.js +89 -88
  51. package/src/client/app/lib/canvas-recorder/CanvasRecorder.js +41 -21
  52. package/src/client/app/lib/canvas-recorder/FrameRecorder.js +7 -6
  53. package/src/client/app/lib/canvas-recorder/H264Recorder.js +45 -0
  54. package/src/client/app/lib/canvas-recorder/MP4Recorder.js +7 -9
  55. package/src/client/app/lib/canvas-recorder/WebMRecorder.js +3 -4
  56. package/src/client/app/lib/canvas-recorder/mp4.js +1649 -15
  57. package/src/client/app/lib/canvas-recorder/utils.js +33 -17
  58. package/src/client/app/lib/gl/Geometry.js +11 -8
  59. package/src/client/app/lib/gl/Program.js +38 -19
  60. package/src/client/app/lib/gl/Renderer.js +163 -156
  61. package/src/client/app/lib/gl/Texture.js +113 -85
  62. package/src/client/app/lib/gl/index.js +12 -12
  63. package/src/client/app/lib/gl/utils.js +1 -3
  64. package/src/client/app/lib/helpers/frameDebounce.js +30 -30
  65. package/src/client/app/lib/loader/index.js +10 -10
  66. package/src/client/app/lib/loader/loadImage.js +15 -15
  67. package/src/client/app/lib/loader/loadScript.js +1 -1
  68. package/src/client/app/lib/paper-sizes.js +75 -76
  69. package/src/client/app/lib/presets.js +25 -5
  70. package/src/client/app/lib/tempo/Analyser.js +18 -17
  71. package/src/client/app/lib/tempo/Range.js +15 -12
  72. package/src/client/app/lib/tempo/index.js +34 -27
  73. package/src/client/app/modules/AudioAnalyser/Range.svelte +69 -72
  74. package/src/client/app/modules/AudioAnalyser/Spectrum.svelte +20 -19
  75. package/src/client/app/modules/AudioAnalyser.svelte +52 -35
  76. package/src/client/app/modules/Console/ConsoleLine.svelte +193 -172
  77. package/src/client/app/modules/Console.svelte +76 -74
  78. package/src/client/app/modules/Exports.svelte +62 -43
  79. package/src/client/app/modules/MidiPanel.svelte +100 -101
  80. package/src/client/app/modules/Monitor.svelte +57 -57
  81. package/src/client/app/modules/Params.svelte +128 -103
  82. package/src/client/app/renderers/2DRenderer.js +3 -3
  83. package/src/client/app/renderers/FragmentRenderer.js +30 -23
  84. package/src/client/app/renderers/P5GLRenderer.js +144 -0
  85. package/src/client/app/renderers/P5Renderer.js +10 -7
  86. package/src/client/app/renderers/THREERenderer.js +136 -94
  87. package/src/client/app/stores/audioAnalysis.js +3 -4
  88. package/src/client/app/stores/console.js +9 -10
  89. package/src/client/app/stores/errors.js +1 -1
  90. package/src/client/app/stores/exports.js +36 -20
  91. package/src/client/app/stores/index.js +2 -2
  92. package/src/client/app/stores/layout.js +143 -138
  93. package/src/client/app/stores/multisampling.js +4 -4
  94. package/src/client/app/stores/props.js +76 -13
  95. package/src/client/app/stores/renderers.js +26 -15
  96. package/src/client/app/stores/rendering.js +108 -89
  97. package/src/client/app/stores/sketches.js +7 -9
  98. package/src/client/app/stores/time.js +18 -18
  99. package/src/client/app/stores/utils.js +95 -38
  100. package/src/client/app/transitions/fade.js +3 -3
  101. package/src/client/app/transitions/index.js +6 -7
  102. package/src/client/app/transitions/splitX.js +2 -2
  103. package/src/client/app/transitions/splitY.js +2 -2
  104. package/src/client/app/triggers/Keyboard.js +88 -79
  105. package/src/client/app/triggers/MIDI.js +110 -84
  106. package/src/client/app/triggers/Mouse.js +73 -65
  107. package/src/client/app/triggers/Trigger.js +59 -58
  108. package/src/client/app/triggers/index.js +7 -7
  109. package/src/client/app/triggers/shared.js +5 -5
  110. package/src/client/app/ui/Build.svelte +70 -71
  111. package/src/client/app/ui/ErrorOverlay.svelte +118 -104
  112. package/src/client/app/ui/Field.svelte +393 -258
  113. package/src/client/app/ui/FieldGroup.svelte +106 -94
  114. package/src/client/app/ui/FieldSection.svelte +127 -116
  115. package/src/client/app/ui/FieldSpace.svelte +29 -30
  116. package/src/client/app/ui/FieldTrigger.svelte +256 -244
  117. package/src/client/app/ui/FieldTriggers.svelte +46 -46
  118. package/src/client/app/ui/FloatingParams.svelte +29 -30
  119. package/src/client/app/ui/Layout.svelte +31 -32
  120. package/src/client/app/ui/LayoutColumn.svelte +4 -4
  121. package/src/client/app/ui/LayoutComponent.svelte +239 -225
  122. package/src/client/app/ui/LayoutResizer.svelte +195 -176
  123. package/src/client/app/ui/LayoutRoot.svelte +6 -6
  124. package/src/client/app/ui/LayoutRow.svelte +4 -4
  125. package/src/client/app/ui/LayoutToolbar.svelte +191 -194
  126. package/src/client/app/ui/Module.svelte +134 -135
  127. package/src/client/app/ui/ModuleHeaderAction.svelte +81 -78
  128. package/src/client/app/ui/ModuleHeaderButton.svelte +12 -12
  129. package/src/client/app/ui/ModuleHeaderSelect.svelte +47 -37
  130. package/src/client/app/ui/ModuleRenderer.svelte +26 -27
  131. package/src/client/app/ui/OutputRenderer.svelte +112 -105
  132. package/src/client/app/ui/ParamsMultisampling.svelte +96 -95
  133. package/src/client/app/ui/ParamsOutput.svelte +130 -113
  134. package/src/client/app/ui/Preview.svelte +7 -8
  135. package/src/client/app/ui/SelectChevrons.svelte +27 -15
  136. package/src/client/app/ui/SketchRenderer.svelte +780 -667
  137. package/src/client/app/ui/SketchSelect.svelte +50 -44
  138. package/src/client/app/ui/fields/ButtonInput.svelte +61 -48
  139. package/src/client/app/ui/fields/CheckboxInput.svelte +67 -61
  140. package/src/client/app/ui/fields/ColorInput.svelte +294 -238
  141. package/src/client/app/ui/fields/FieldInputRow.svelte +8 -8
  142. package/src/client/app/ui/fields/ImageInput.svelte +123 -121
  143. package/src/client/app/ui/fields/Input.svelte +100 -111
  144. package/src/client/app/ui/fields/IntervalInput.svelte +268 -0
  145. package/src/client/app/ui/fields/ListInput.svelte +96 -96
  146. package/src/client/app/ui/fields/NumberInput.svelte +120 -116
  147. package/src/client/app/ui/fields/ProgressInput.svelte +99 -73
  148. package/src/client/app/ui/fields/Select.svelte +137 -124
  149. package/src/client/app/ui/fields/TextInput.svelte +10 -11
  150. package/src/client/app/ui/fields/VectorInput.svelte +86 -82
  151. package/src/client/app/utils/canvas.utils.js +189 -208
  152. package/src/client/app/utils/color.utils.js +138 -101
  153. package/src/client/app/utils/fields.utils.js +131 -0
  154. package/src/client/app/utils/file.utils.js +209 -37
  155. package/src/client/app/utils/glsl.utils.js +2 -2
  156. package/src/client/app/utils/glslErrors.js +49 -31
  157. package/src/client/app/utils/index.js +32 -29
  158. package/src/client/app/utils/math.utils.js +14 -10
  159. package/src/client/index.html +16 -16
  160. package/src/client/main.js +4 -4
  161. package/src/client/public/css/global.css +26 -16
  162. package/src/cli/db.js +0 -17
  163. package/src/cli/index.js +0 -198
  164. package/src/cli/plugins/db.js +0 -12
  165. package/src/cli/plugins/hot-shader-reload.js +0 -86
  166. package/src/cli/plugins/screenshot.js +0 -46
  167. package/src/cli/server.js +0 -153
  168. package/src/cli/templates/2d.js +0 -15
  169. package/src/cli/templates/blank.js +0 -13
  170. package/src/cli/templates/fragment.js +0 -18
  171. package/src/cli/templates/index.js +0 -27
  172. package/src/cli/templates/p5.js +0 -13
  173. package/src/cli/templates/three-fragment.js +0 -53
  174. package/src/cli/templates/three-orthographic.js +0 -23
  175. package/src/cli/templates/three-perspective.js +0 -20
  176. package/src/client/app/lib/canvas-recorder/FFMPEGRecorder.js +0 -56
  177. package/src/client/app/utils/props.utils.js +0 -51
  178. package/src/client/public/fonts/Inter-Bold.woff2 +0 -0
  179. package/src/client/public/fonts/Inter-Italic.woff2 +0 -0
  180. package/src/client/public/fonts/Inter-Regular.woff2 +0 -0
  181. package/src/client/public/fonts/Inter-SemiBold.woff2 +0 -0
  182. package/src/client/public/js/ffmpeg.min.js +0 -2
  183. package/src/client/public/js/ffmpeg.min.js.map +0 -1
  184. /package/src/cli/templates/{fragment.fs → fragment-gl/fragment.fs} +0 -0
@@ -14,7 +14,11 @@
14
14
  <ConsoleTable data={log.args[0]} columns={log.args[1]} />
15
15
  {/if} -->
16
16
 
17
- <div class="log console-{log.level}" style="padding-left: {level * 8}px" on:click={log.level === 'group' ? toggleGroupCollapse : undefined}>
17
+ <div
18
+ class="log console-{log.level}"
19
+ style="padding-left: {level * 8}px"
20
+ on:click={log.level === 'group' ? toggleGroupCollapse : undefined}
21
+ >
18
22
  {#if log.count > 1}
19
23
  <div class="count">
20
24
  <span>{log.count}</span>
@@ -22,7 +26,13 @@
22
26
  {/if}
23
27
 
24
28
  {#if log.level === 'trace' || log.level === 'assert'}
25
- <div class="arrow" class:expand={!log.collapsed} on:click={toggleGroupCollapse}>▶</div>
29
+ <div
30
+ class="arrow"
31
+ class:expand={!log.collapsed}
32
+ on:click={toggleGroupCollapse}
33
+ >
34
+
35
+ </div>
26
36
  {/if}
27
37
 
28
38
  {#if log.level === 'assert'}
@@ -32,7 +42,9 @@
32
42
  {#if log.level === 'clear'}
33
43
  <span class="info">Console was cleared</span>
34
44
  {:else if log.level === 'unclonable'}
35
- <span class="info error">Message could not be cloned. Open devtools to see it</span>
45
+ <span class="info error"
46
+ >Message could not be cloned. Open devtools to see it</span
47
+ >
36
48
  {:else if log.level === 'group'}
37
49
  <div class="arrow" class:expand={!log.collapsed}>▶</div>
38
50
  <span class="title">{log.label}</span>
@@ -45,9 +57,9 @@
45
57
  {:else}
46
58
  <div class="args">
47
59
  {#each log.args as arg}
48
- {#if typeof arg === "string"}
60
+ {#if typeof arg === 'string'}
49
61
  <span class="string">{arg}</span>
50
- {:else if typeof arg === "function"}
62
+ {:else if typeof arg === 'function'}
51
63
  <div class="function">{arg.toString()}</div>
52
64
  {:else}
53
65
  <JSONTree value={arg} />
@@ -62,7 +74,7 @@
62
74
 
63
75
  {#if log.level === 'group' && !log.collapsed}
64
76
  {#each log.logs as childLog}
65
- <svelte:self log={childLog} level={level + 1}/>
77
+ <svelte:self log={childLog} level={level + 1} />
66
78
  {/each}
67
79
  {/if}
68
80
 
@@ -75,180 +87,189 @@
75
87
  {/if}
76
88
 
77
89
  <style>
78
- .log {
79
- --json-tree-string-color: rgba(240, 240, 240, 0.6);
80
- --arrow-sign: rgba(255, 255, 255, 0.5);
81
- --json-tree-font-size: var(--font-size-input);
82
- --json-tree-font-family: var(--font-mono);
83
- --json-tree-number-color: #9980FF;
84
- --json-tree-symbol-color: #cb3f41;
85
- --json-tree-boolean-color: #9980FF;
86
- --json-tree-function-color: var(--color-active);
87
- /* --json-tree-number-color: #3029cf; */
88
- --json-tree-property-color: #5DB0D7;
89
- --json-tree-label-color: #17d08e;
90
- --json-tree-arrow-color: #727272;
91
- --json-tree-null-color: #8d8d8d;
92
- --json-tree-undefined-color: #8d8d8d;
93
- --json-tree-date-color: #8d8d8d;
94
- --json-tree-li-indentation: 12px;
95
-
96
- position: relative;
97
-
98
- display: flex;
99
- padding: 4px 0 3px;
100
-
101
- color: rgba(255, 255, 255, 0.5);
102
-
103
- border-bottom: 1px solid #3A3A3A;
104
- border-top: 1px solid #3A3A3A;
105
- }
106
-
107
- .args {
108
- display: flex;
109
- flex-direction: column;
110
- }
111
-
112
- .string {
113
- display: block;
114
- font-size: var(--font-size-input);
115
- }
116
-
117
- .function {
118
- font-size: var(--font-size-input);
119
- font-style: italic;
120
- white-space: pre;
121
- tab-size: 2em;
122
- }
123
-
124
- :global(.log ul > .Number, .log ul > .Boolean, .log ul > .Date, .log ul > .Undefined) {
125
- margin-left: calc(var(--li-identation) * -1);
126
- }
127
-
128
- .log:first-child:not(.console-error) {
129
- border-top: none;
130
- }
131
-
132
- .log:not(:first-child) {
133
- margin-top: -1px;
134
- }
135
-
136
- /* :global(.console-warn .console-log) {
90
+ .log {
91
+ --json-tree-string-color: rgba(240, 240, 240, 0.6);
92
+ --arrow-sign: rgba(255, 255, 255, 0.5);
93
+ --json-tree-font-size: var(--font-size-input);
94
+ --json-tree-font-family: var(--font-mono);
95
+ --json-tree-number-color: #9980ff;
96
+ --json-tree-symbol-color: #cb3f41;
97
+ --json-tree-boolean-color: #9980ff;
98
+ --json-tree-function-color: var(--color-active);
99
+ /* --json-tree-number-color: #3029cf; */
100
+ --json-tree-property-color: #5db0d7;
101
+ --json-tree-label-color: #17d08e;
102
+ --json-tree-arrow-color: #727272;
103
+ --json-tree-null-color: #8d8d8d;
104
+ --json-tree-undefined-color: #8d8d8d;
105
+ --json-tree-date-color: #8d8d8d;
106
+ --json-tree-li-indentation: 12px;
107
+
108
+ position: relative;
109
+
110
+ display: flex;
111
+ padding: 4px 0 3px;
112
+
113
+ color: rgba(255, 255, 255, 0.5);
114
+
115
+ border-bottom: 1px solid #3a3a3a;
116
+ border-top: 1px solid #3a3a3a;
117
+ }
118
+
119
+ .args {
120
+ display: flex;
121
+ flex-direction: column;
122
+ }
123
+
124
+ .string {
125
+ display: block;
126
+ font-size: var(--font-size-input);
127
+ }
128
+
129
+ .function {
130
+ font-size: var(--font-size-input);
131
+ font-style: italic;
132
+ white-space: pre;
133
+ tab-size: 2em;
134
+ }
135
+
136
+ :global(
137
+ .log ul > .Number,
138
+ .log ul > .Boolean,
139
+ .log ul > .Date,
140
+ .log ul > .Undefined
141
+ ) {
142
+ margin-left: calc(var(--li-identation) * -1);
143
+ }
144
+
145
+ .log:first-child:not(.console-error) {
146
+ border-top: none;
147
+ }
148
+
149
+ .log:not(:first-child) {
150
+ margin-top: -1px;
151
+ }
152
+
153
+ /* :global(.console-warn .console-log) {
137
154
  border-top-color: transparent;
138
155
  } */
139
156
 
140
- /* .log > :global(*) {
157
+ /* .log > :global(*) {
141
158
  margin-right: 10px;
142
159
  } */
143
160
 
144
- .console-warn, .console-system-warn {
145
- --json-tree-string-color: #F3AB26;
146
- background: #332B00;
147
- border-color: #665600;
148
- color: var(--json-tree-string-color);
149
- }
161
+ .console-warn,
162
+ .console-system-warn {
163
+ --json-tree-string-color: #f3ab26;
164
+ background: #332b00;
165
+ border-color: #665600;
166
+ color: var(--json-tree-string-color);
167
+ }
150
168
 
151
- .console-error, .console-assert {
152
- --json-tree-string-color: #FF8081;
153
- --json-tree-label-color: #FF8081;
169
+ .console-error,
170
+ .console-assert {
171
+ --json-tree-string-color: #ff8081;
172
+ --json-tree-label-color: #ff8081;
154
173
 
155
- color: var(--json-tree-string-color);
156
- background: #2A0000;
157
- border-color: #5C0000;
158
- }
174
+ color: var(--json-tree-string-color);
175
+ background: #2a0000;
176
+ border-color: #5c0000;
177
+ }
159
178
 
160
- .console-group, .arrow {
161
- cursor: pointer;
162
- user-select: none;
163
- }
179
+ .console-group,
180
+ .arrow {
181
+ cursor: pointer;
182
+ user-select: none;
183
+ }
164
184
 
165
- .log :global(.arrow) {
166
- margin-right: 10px;
167
- }
168
-
169
- .log :global(.String) {
170
- white-space: pre-wrap;
171
- }
172
-
173
- .console-trace, .console-assert {
174
- border-bottom: none;
175
- }
176
-
177
- .console-assert + .trace {
178
- background: #fff0f0;
179
- border-color: #fed6d7;
180
- }
181
-
182
- .trace {
183
- border-bottom: 1px solid #eee;
184
- font-size: 12px;
185
- font-family: var(--font-mono);
186
- padding: 4px 0 2px;
187
- }
188
-
189
- .trace > :global(div) {
190
- margin-left: 15px;
191
- }
192
-
193
- .count {
194
- position: relative;
195
-
196
- display: flex;
197
- justify-content: center;
198
- align-items: center;
199
- margin-right: 4px;
200
-
201
- font-size: 9px;
202
- padding: 0 4px;
203
- }
204
-
205
- .count:before {
206
- content: '';
207
-
208
- position: absolute;
209
-
210
- width: 100%;
211
- min-width: 16px;
212
- height: 16px;
213
-
214
- border-radius: 9px;
215
- background-color: var(--color-lightblack);
216
- }
217
-
218
- .count span {
219
- position: relative;
220
- }
221
-
222
- .outline {
223
- border-left: 1px solid #9c9cab;
224
- position: absolute;
225
- top: 0;
226
- bottom: -1px;
227
- }
228
-
229
- .arrow {
230
- position: absolute;
231
- font-size: 0.6em;
232
- transition: 150ms;
233
- transform-origin: 50% 50%;
234
- transform: translateY(1px) translateX(-50%);
235
- }
236
-
237
- .arrow.expand {
238
- transform: translateY(1px) translateX(-50%) rotateZ(90deg);
239
- }
240
-
241
- .title {
242
- font-family: var(--font-mono);
243
- font-size: 13px;
244
- font-weight: bold;
245
- padding-left: 11px;
246
- height: 19px;
247
- }
248
-
249
- .assert {
250
- padding-left: 11px;
251
- font-weight: bold;
252
- /* color: #da106e; */
253
- }
185
+ .log :global(.arrow) {
186
+ margin-right: 10px;
187
+ }
188
+
189
+ .log :global(.String) {
190
+ white-space: pre-wrap;
191
+ }
192
+
193
+ .console-trace,
194
+ .console-assert {
195
+ border-bottom: none;
196
+ }
197
+
198
+ .console-assert + .trace {
199
+ background: #fff0f0;
200
+ border-color: #fed6d7;
201
+ }
202
+
203
+ .trace {
204
+ border-bottom: 1px solid #eee;
205
+ font-size: 12px;
206
+ font-family: var(--font-mono);
207
+ padding: 4px 0 2px;
208
+ }
209
+
210
+ .trace > :global(div) {
211
+ margin-left: 15px;
212
+ }
213
+
214
+ .count {
215
+ position: relative;
216
+
217
+ display: flex;
218
+ justify-content: center;
219
+ align-items: center;
220
+ margin-right: 4px;
221
+
222
+ font-size: 9px;
223
+ padding: 0 4px;
224
+ }
225
+
226
+ .count:before {
227
+ content: '';
228
+
229
+ position: absolute;
230
+
231
+ width: 100%;
232
+ min-width: 16px;
233
+ height: 16px;
234
+
235
+ border-radius: 9px;
236
+ background-color: var(--color-lightblack);
237
+ }
238
+
239
+ .count span {
240
+ position: relative;
241
+ }
242
+
243
+ .outline {
244
+ border-left: 1px solid #9c9cab;
245
+ position: absolute;
246
+ top: 0;
247
+ bottom: -1px;
248
+ }
249
+
250
+ .arrow {
251
+ position: absolute;
252
+ font-size: 0.6em;
253
+ transition: 150ms;
254
+ transform-origin: 50% 50%;
255
+ transform: translateY(1px) translateX(-50%);
256
+ }
257
+
258
+ .arrow.expand {
259
+ transform: translateY(1px) translateX(-50%) rotateZ(90deg);
260
+ }
261
+
262
+ .title {
263
+ font-family: var(--font-mono);
264
+ font-size: 13px;
265
+ font-weight: bold;
266
+ padding-left: 11px;
267
+ height: 19px;
268
+ }
269
+
270
+ .assert {
271
+ padding-left: 11px;
272
+ font-weight: bold;
273
+ /* color: #da106e; */
274
+ }
254
275
  </style>
@@ -1,82 +1,84 @@
1
1
  <script>
2
- import Module from "../ui/Module.svelte";
3
- import ModuleHeaderAction from "../ui/ModuleHeaderAction.svelte";
4
- import { logs } from "../stores/console";
5
- import ConsoleLine from "./Console/ConsoleLine.svelte";
6
- import { afterUpdate } from "svelte";
7
-
8
- export let mID;
9
- export let hasHeader;
10
-
11
- let scrollableContainer;
12
-
13
- function clear() {
14
- $logs = [];
15
- }
16
-
17
- afterUpdate(() => {
18
- if (scrollableContainer) {
19
- scrollableContainer.scrollTop = scrollableContainer.scrollHeight;
20
- }
21
- })
22
-
2
+ import Module from '../ui/Module.svelte';
3
+ import ModuleHeaderAction from '../ui/ModuleHeaderAction.svelte';
4
+ import { logs } from '../stores/console';
5
+ import ConsoleLine from './Console/ConsoleLine.svelte';
6
+ import { afterUpdate } from 'svelte';
7
+
8
+ export let mID;
9
+ export let hasHeader;
10
+
11
+ let scrollableContainer;
12
+
13
+ function clear() {
14
+ $logs = [];
15
+ }
16
+
17
+ afterUpdate(() => {
18
+ if (scrollableContainer) {
19
+ scrollableContainer.scrollTop = scrollableContainer.scrollHeight;
20
+ }
21
+ });
23
22
  </script>
24
23
 
25
24
  <Module {mID} {hasHeader} name="console" scrollable={false}>
26
- <svelte:fragment slot="header-right">
27
- <ModuleHeaderAction border label="Clear" on:click={() => clear()}>clear</ModuleHeaderAction>
28
- </svelte:fragment>
29
- <div class="container">
30
- <div class="list">
31
- <div class="scroll" bind:this={scrollableContainer}>
32
- {#each $logs as log}
33
- <ConsoleLine {log} />
34
- {/each}
35
- </div>
36
- </div>
37
- </div>
25
+ <svelte:fragment slot="header-right">
26
+ <ModuleHeaderAction border label="Clear" on:click={() => clear()}
27
+ >clear</ModuleHeaderAction
28
+ >
29
+ </svelte:fragment>
30
+ <div class="container">
31
+ <div class="list">
32
+ <div class="scroll" bind:this={scrollableContainer}>
33
+ {#each $logs as log}
34
+ <ConsoleLine {log} />
35
+ {/each}
36
+ </div>
37
+ </div>
38
+ </div>
38
39
  </Module>
39
40
 
40
41
  <style>
41
- .container {
42
- position: relative;
43
-
44
- height: 100%;
45
- max-height: 100%;
46
- padding: 4px;
47
- }
48
-
49
- .list {
50
- position: relative;
51
-
52
- margin-right: var(--padding);
53
- padding: 1px 1px;
54
-
55
- height: 100%;
56
- max-height: 100%;
57
-
58
- background-color: #1d1d1e;
59
- border-radius: var(--border-radius-input);
60
- box-shadow: inset 0 0 0 1px var(--color-border-input);
61
- }
62
-
63
- .scroll {
64
- height: 100%;
65
- overflow-x: hidden;
66
- overflow-y: scroll;
67
- }
68
-
69
- .scroll::-webkit-scrollbar {
70
- width: 5px; /* width of the entire scrollbar */
71
- }
72
-
73
- .scroll::-webkit-scrollbar-track {
74
- background-color: var(--color-lightblack); /* color of the tracking area */
75
- }
76
-
77
- .scroll::-webkit-scrollbar-thumb {
78
- background-color: var(--color-active); /* color of the scroll thumb */
79
- border-radius: 20px; /* roundness of the scroll thumb */
80
- }
81
-
42
+ .container {
43
+ position: relative;
44
+
45
+ height: 100%;
46
+ max-height: 100%;
47
+ padding: 4px;
48
+ }
49
+
50
+ .list {
51
+ position: relative;
52
+
53
+ margin-right: var(--padding);
54
+ padding: 1px 1px;
55
+
56
+ height: 100%;
57
+ max-height: 100%;
58
+
59
+ background-color: #1d1d1e;
60
+ border-radius: var(--border-radius-input);
61
+ box-shadow: inset 0 0 0 1px var(--color-border-input);
62
+ }
63
+
64
+ .scroll {
65
+ height: 100%;
66
+ overflow-x: hidden;
67
+ overflow-y: scroll;
68
+ }
69
+
70
+ .scroll::-webkit-scrollbar {
71
+ width: 5px; /* width of the entire scrollbar */
72
+ }
73
+
74
+ .scroll::-webkit-scrollbar-track {
75
+ background-color: var(
76
+ --color-lightblack
77
+ ); /* color of the tracking area */
78
+ }
79
+
80
+ .scroll::-webkit-scrollbar-thumb {
81
+ background-color: var(--color-active); /* color of the scroll thumb */
82
+ border-radius: 20px; /* roundness of the scroll thumb */
83
+ }
82
84
  </style>