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
@@ -0,0 +1,268 @@
1
+ <script>
2
+ import FieldInputRow from './FieldInputRow.svelte';
3
+ import NumberInput from './NumberInput.svelte';
4
+ import { map, clamp, roundToStep } from '../../utils/math.utils';
5
+ import { createEventDispatcher } from 'svelte';
6
+
7
+ export let value = null;
8
+ export let label = '';
9
+ export let step = 1;
10
+ export let suffix = '';
11
+ export let min = -Infinity;
12
+ export let max = Infinity;
13
+ export let disabled = false;
14
+ export let context = null;
15
+ export let key = '';
16
+
17
+ let dispatch = createEventDispatcher();
18
+
19
+ /** @type {HTMLElement} */
20
+ let node;
21
+ /** @type {DOMRect}*/
22
+ let rect;
23
+ /** @type {boolean}*/
24
+ let isDragging = false;
25
+
26
+ let proximityIndex = -1;
27
+
28
+ /**
29
+ *
30
+ * @param {MouseEvent} event
31
+ */
32
+ function handleMouseDown(event) {
33
+ document.body.style.userSelect = 'none';
34
+ document.addEventListener('mousemove', handleMouseMove);
35
+ document.addEventListener('mouseup', handleMouseUp);
36
+
37
+ rect = node.getBoundingClientRect();
38
+
39
+ isDragging = true;
40
+
41
+ let dragValue = computeDrag(event);
42
+
43
+ let abs0 = Math.abs(dragValue - min);
44
+ let abs1 = Math.abs(dragValue - max);
45
+
46
+ proximityIndex = abs0 < abs1 ? 0 : 1;
47
+
48
+ onDrag(event);
49
+ }
50
+
51
+ function computeDrag(event) {
52
+ let dragValue = clamp(
53
+ map(event.clientX, rect.left, rect.right, min, max),
54
+ min,
55
+ max,
56
+ );
57
+ dragValue = roundToStep(dragValue, step);
58
+ return dragValue;
59
+ }
60
+
61
+ function handleMouseMove(event) {
62
+ onDrag(event);
63
+ }
64
+
65
+ function onDrag(event) {
66
+ let dragValue = computeDrag(event);
67
+
68
+ let prevValue = value[proximityIndex];
69
+
70
+ if (dragValue !== prevValue) {
71
+ let newValues = [
72
+ proximityIndex === 0
73
+ ? dragValue
74
+ : Math.min(dragValue, value[0]),
75
+ proximityIndex === 1
76
+ ? dragValue
77
+ : Math.max(dragValue, value[1]),
78
+ ];
79
+
80
+ value[0] = newValues[0];
81
+ value[1] = newValues[1];
82
+
83
+ dispatch('change', value);
84
+ }
85
+ }
86
+
87
+ function handleMouseUp() {
88
+ document.body.style.userSelect = null;
89
+ document.removeEventListener('mousemove', handleMouseMove);
90
+ document.removeEventListener('mouseup', handleMouseUp);
91
+
92
+ isDragging = false;
93
+ }
94
+
95
+ function handleValueChange(index, newValue) {
96
+ value[index] = newValue;
97
+
98
+ dispatch('change', value);
99
+ }
100
+
101
+ $: {
102
+ if (value[0] > value[1]) {
103
+ console.warn(`Values provided for ${key} are in the wrong order. `);
104
+ }
105
+
106
+ value.forEach((v, index) => {
107
+ if (v < min || v > max) {
108
+ console.warn(
109
+ `Value provided for ${key} at index ${index} is out of range [${min}:${max}]: ${v}`,
110
+ );
111
+ }
112
+ });
113
+ }
114
+
115
+ $: p1 = map(clamp(value[0], min, max), min, max, 0, 1);
116
+ $: p2 = map(clamp(value[1], min, max), min, max, 0, 1);
117
+ </script>
118
+
119
+ <div class="interval-input" class:disabled>
120
+ <FieldInputRow --grid-template-columns="1fr 0.5fr">
121
+ <div
122
+ class="range {isDragging ? 'dragging' : ''} "
123
+ bind:this={node}
124
+ on:mousedown={handleMouseDown}
125
+ >
126
+ <div class="handler" style="--position: {p1};" />
127
+ <div class="filler" style="--p1: {p1}; --p2: {p2};"></div>
128
+ <div class="handler" style="--position: {p2};" />
129
+ </div>
130
+ <div class="numbers">
131
+ <NumberInput
132
+ {label}
133
+ {disabled}
134
+ {context}
135
+ {key}
136
+ {suffix}
137
+ {step}
138
+ {min}
139
+ {max}
140
+ progress={false}
141
+ bind:value={value[0]}
142
+ on:change={(event) => handleValueChange(0, event.detail)}
143
+ />
144
+ <NumberInput
145
+ {label}
146
+ {disabled}
147
+ {context}
148
+ {key}
149
+ {suffix}
150
+ {step}
151
+ {min}
152
+ {max}
153
+ progress={false}
154
+ bind:value={value[1]}
155
+ on:change={(event) => handleValueChange(1, event.detail)}
156
+ />
157
+ </div>
158
+ </FieldInputRow>
159
+ </div>
160
+
161
+ <style>
162
+ .interval-input {
163
+ position: relative;
164
+ width: 100%;
165
+ }
166
+
167
+ .range {
168
+ position: relative;
169
+ --padding-h: 3px;
170
+ --space-between: 2px;
171
+
172
+ --width: 6px;
173
+ --tx-min-0: var(--padding-h);
174
+ --tx-max-0: calc(
175
+ 100cqw - var(--padding-h) * 1 - var(--width) - var(--width) -
176
+ var(--space-between)
177
+ );
178
+ --tx-min-1: calc(
179
+ var(--padding-h) + var(--width) + var(--space-between)
180
+ );
181
+ --tx-max-1: calc(100cqw - var(--padding-h) * 1 - var(--width));
182
+
183
+ height: var(--height-input);
184
+ border-radius: var(--border-radius-input);
185
+ box-shadow: inset 0 0 0 1px var(--color-border-input);
186
+
187
+ background: var(--color-background-input);
188
+ cursor: ew-resize;
189
+ container-type: size;
190
+ }
191
+
192
+ .range:hover {
193
+ box-shadow: inset 0 0 0 1px var(--color-active);
194
+ }
195
+
196
+ .range.dragging {
197
+ box-shadow: 0 0 0 2px var(--color-active);
198
+ }
199
+
200
+ .handler {
201
+ --tx: calc(
202
+ var(--position, 0) * (var(--tx-max) - var(--tx-min)) / (1) +
203
+ var(--tx-min)
204
+ );
205
+ position: absolute;
206
+ z-index: 1;
207
+ left: 0px;
208
+ top: 3px;
209
+ bottom: 3px;
210
+
211
+ width: var(--width);
212
+
213
+ background: grey;
214
+ transform-origin: 0 50%;
215
+ border-radius: calc(var(--border-radius-input) * 0.5);
216
+
217
+ background-color: var(--color-active);
218
+
219
+ transform: translate3d(var(--tx), 0px, 0px);
220
+ }
221
+
222
+ .handler:first-child {
223
+ --tx-min: var(--tx-min-0);
224
+ --tx-max: var(--tx-max-0);
225
+ }
226
+
227
+ .handler:last-child {
228
+ --tx-min: var(--tx-min-1);
229
+ --tx-max: var(--tx-max-1);
230
+ }
231
+
232
+ .interval-input.disabled .handler {
233
+ background-color: var(--color-active-disabled);
234
+ }
235
+
236
+ .filler {
237
+ --size: calc(
238
+ 100% - var(--padding-h) - var(--width) - var(--space-between) -
239
+ var(--width) * 0.5 - var(--padding-h) - var(--width) * 0.5
240
+ );
241
+ position: absolute;
242
+ /* z-index: 4; */
243
+ top: 3px;
244
+ left: calc(
245
+ var(--padding-h) + var(--width) * 0.5 + var(--p1) * var(--size)
246
+ );
247
+ right: calc(
248
+ var(--padding-h) + var(--width) * 0.5 + (1 - var(--p2)) *
249
+ var(--size)
250
+ );
251
+ bottom: 3px;
252
+ background-color: var(--color-active);
253
+ opacity: 0.5;
254
+
255
+ transform-origin: 0px 50%;
256
+ }
257
+
258
+ .interval-input.disabled .filler {
259
+ background-color: var(--color-active-disabled);
260
+ }
261
+
262
+ .numbers {
263
+ display: grid;
264
+ column-gap: var(--column-gap);
265
+
266
+ grid-template-columns: 0.5fr 0.5fr;
267
+ }
268
+ </style>
@@ -1,108 +1,108 @@
1
1
  <script>
2
- import { afterUpdate } from "svelte";
2
+ import { afterUpdate } from 'svelte';
3
3
 
4
- export let disabled;
5
- export let value = null;
6
- export let context = null;
7
- export let key = "";
4
+ export let disabled;
5
+ export let value = null;
6
+ export let context = null;
7
+ export let key = '';
8
8
 
9
- let container;
10
-
11
- afterUpdate(() => {
12
- container.scrollTo(0, container.scrollHeight);
13
- });
9
+ let container;
14
10
 
11
+ afterUpdate(() => {
12
+ container.scrollTo(0, container.scrollHeight);
13
+ });
15
14
  </script>
16
15
 
17
- <div class="list {disabled ? "disabled" : ""}">
18
- <div class="container" bind:this={container}>
19
- <ul class="ul">
20
- {#each value as item, index}
21
- <li class="item">
22
- {#if disabled }
23
- <span class="label">{item}</span>
24
- {:else}
25
- <button class="label">{item}</button>
26
- {/if}
27
- </li>
28
- {/each}
29
- </ul>
30
- </div>
16
+ <div class="list" class:disabled>
17
+ <div class="container" bind:this={container}>
18
+ <ul class="ul">
19
+ {#each value as item, index}
20
+ <li class="item">
21
+ {#if disabled}
22
+ <span class="label">{item}</span>
23
+ {:else}
24
+ <button class="label">{item}</button>
25
+ {/if}
26
+ </li>
27
+ {/each}
28
+ </ul>
29
+ </div>
31
30
  </div>
32
31
 
33
32
  <style>
34
- .list {
35
- width: 100%;
36
-
37
- pointer-events: auto;
38
- }
39
-
40
- .container {
41
- margin-right: var(--padding);
42
- padding: 1px 0;
43
- height: 80px;
44
-
45
- background-color: #1d1d1e;
46
- border-radius: var(--border-radius-input);
47
- box-shadow: inset 0 0 0 1px var(--color-border-input);
48
- overflow-y: scroll;
49
- }
50
-
51
- .ul {
52
- display: flex;
53
- flex-direction: column;
54
- width: 100%;
55
- padding: 2px 0;
56
-
57
- }
58
-
59
- .container::-webkit-scrollbar {
60
- width: 5px; /* width of the entire scrollbar */
61
- }
62
-
63
- .container::-webkit-scrollbar-track {
64
- background-color: var(--color-lightblack); /* color of the tracking area */
65
- }
66
-
67
- .container::-webkit-scrollbar-thumb {
68
- background-color: var(--color-active); /* color of the scroll thumb */
69
- border-radius: 20px; /* roundness of the scroll thumb */
70
- }
71
-
72
- .item {
73
- display: flex;
74
- width: 100%;
75
-
76
- margin: 0;
77
- padding: 0 3px;
78
- color: var(--color-text);
79
- font-size: 10px;
80
-
81
- opacity: 0.35;
82
- user-select: none;
83
- }
84
-
85
- .label {
86
- width: 100%;
87
- padding: 1px var(--padding);
88
- background-color: transparent;
89
- text-align: left;
90
- }
91
-
92
- .list:not(.disabled) .label:hover {
93
- box-shadow: inset 0 0 0 1px var(--color-active);
94
- }
95
-
96
- .list:not(.disabled) .label:active {
97
- box-shadow: 0 0 0 2px var(--color-active);
98
- }
99
-
100
- .item:hover {
101
- /* background-color: #0E0E0E; */
102
- opacity: 1;
103
- }
104
-
105
- /* :global(.field:hover) .list:not(.disabled) .item {
33
+ .list {
34
+ width: 100%;
35
+
36
+ pointer-events: auto;
37
+ }
38
+
39
+ .container {
40
+ margin-right: var(--padding);
41
+ padding: 1px 0;
42
+ height: 80px;
43
+
44
+ background-color: #1d1d1e;
45
+ border-radius: var(--border-radius-input);
46
+ box-shadow: inset 0 0 0 1px var(--color-border-input);
47
+ overflow-y: scroll;
48
+ }
49
+
50
+ .ul {
51
+ display: flex;
52
+ flex-direction: column;
53
+ width: 100%;
54
+ padding: 2px 0;
55
+ }
56
+
57
+ .container::-webkit-scrollbar {
58
+ width: 5px; /* width of the entire scrollbar */
59
+ }
60
+
61
+ .container::-webkit-scrollbar-track {
62
+ background-color: var(
63
+ --color-lightblack
64
+ ); /* color of the tracking area */
65
+ }
66
+
67
+ .container::-webkit-scrollbar-thumb {
68
+ background-color: var(--color-active); /* color of the scroll thumb */
69
+ border-radius: 20px; /* roundness of the scroll thumb */
70
+ }
71
+
72
+ .item {
73
+ display: flex;
74
+ width: 100%;
75
+
76
+ margin: 0;
77
+ padding: 0 3px;
78
+ color: var(--color-text);
79
+ font-size: 10px;
80
+
81
+ opacity: 0.35;
82
+ user-select: none;
83
+ }
84
+
85
+ .label {
86
+ width: 100%;
87
+ padding: 1px var(--padding);
88
+ background-color: transparent;
89
+ text-align: left;
90
+ }
91
+
92
+ .list:not(.disabled) .label:hover {
93
+ box-shadow: inset 0 0 0 1px var(--color-active);
94
+ }
95
+
96
+ .list:not(.disabled) .label:active {
97
+ box-shadow: 0 0 0 2px var(--color-active);
98
+ }
99
+
100
+ .item:hover {
101
+ /* background-color: #0E0E0E; */
102
+ opacity: 1;
103
+ }
104
+
105
+ /* :global(.field:hover) .list:not(.disabled) .item {
106
106
  opacity: 1;
107
107
  } */
108
108
  </style>