vzcode 2.0.0 → 2.3.0

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 (218) hide show
  1. package/dist/assets/{buildWorker-Dsx6rOdK.js → buildWorker-wLkQ0yz1.js} +64 -64
  2. package/dist/assets/{index-BM8tDh6M.css → index-BoFeK4GL.css} +1 -1
  3. package/dist/assets/{index-BgqNq-ww.js → index-DuUjtrt6.js} +107 -107
  4. package/dist/assets/{worker-BeBZGG1n.js → worker-DHxSPM7N.js} +78 -78
  5. package/dist/cli.js +113 -0
  6. package/dist/index.html +2 -2
  7. package/{src/ot.ts → dist/ot.js} +2 -14
  8. package/{src/randomId.ts → dist/randomId.js} +5 -6
  9. package/dist/runCode.js +20 -0
  10. package/dist/server/aiChatHandler/aiEditing.js +89 -0
  11. package/dist/server/aiChatHandler/chatOperations.js +360 -0
  12. package/dist/server/aiChatHandler/errorHandling.js +49 -0
  13. package/dist/server/aiChatHandler/index.js +112 -0
  14. package/dist/server/aiChatHandler/llmStreaming.js +284 -0
  15. package/dist/server/aiChatHandler/validation.js +19 -0
  16. package/dist/server/computeInitialDocument.js +146 -0
  17. package/{src/server/config.ts → dist/server/config.js} +4 -7
  18. package/{src/server/featureFlags.ts → dist/server/featureFlags.js} +0 -3
  19. package/dist/server/generateAIResponse.js +129 -0
  20. package/dist/server/handleAIAssist.js +39 -0
  21. package/dist/server/handleAICopilot.js +81 -0
  22. package/dist/server/index.js +297 -0
  23. package/dist/server/livekit.js +17 -0
  24. package/dist/server/prettier.js +90 -0
  25. package/{src/server/setupEnv.ts → dist/server/setupEnv.js} +1 -2
  26. package/dist/submitOperation.js +14 -0
  27. package/dist/types.js +1 -0
  28. package/dist/utils/fileDiff.js +66 -0
  29. package/package.json +23 -22
  30. package/src/client/AIAssist/AIAssistCodeMirrorKeyMap.ts +0 -42
  31. package/src/client/AIAssist/AIAssistWidget/index.tsx +0 -135
  32. package/src/client/AIAssist/AIAssistWidget/style.scss +0 -47
  33. package/src/client/AIAssist/Spinner.jsx +0 -76
  34. package/src/client/AIAssist/formatFile.ts +0 -27
  35. package/src/client/AIAssist/generateFilesContext.ts +0 -25
  36. package/src/client/AIAssist/index.ts +0 -2
  37. package/src/client/AIAssist/startAIAssist.ts +0 -95
  38. package/src/client/App/index.tsx +0 -153
  39. package/src/client/App/style.scss +0 -82
  40. package/src/client/App/usePending.ts +0 -51
  41. package/src/client/App/useShareDB.ts +0 -161
  42. package/src/client/CodeEditor/Copilot/index.ts +0 -74
  43. package/src/client/CodeEditor/InteractiveWidgets/boolToggler.ts +0 -12
  44. package/src/client/CodeEditor/InteractiveWidgets/colorPicker.ts +0 -68
  45. package/src/client/CodeEditor/InteractiveWidgets/colorsInTextPlugin.ts +0 -174
  46. package/src/client/CodeEditor/InteractiveWidgets/highlightWidgets.ts +0 -79
  47. package/src/client/CodeEditor/InteractiveWidgets/index.ts +0 -44
  48. package/src/client/CodeEditor/InteractiveWidgets/markdownCheckboxToggler.ts +0 -12
  49. package/src/client/CodeEditor/InteractiveWidgets/numberDragger.ts +0 -20
  50. package/src/client/CodeEditor/InteractiveWidgets/rotateWidget.ts +0 -143
  51. package/src/client/CodeEditor/InteractiveWidgets/urlClicker.test.ts +0 -48
  52. package/src/client/CodeEditor/InteractiveWidgets/urlClicker.ts +0 -12
  53. package/src/client/CodeEditor/InteractiveWidgets/vec2Slider.ts +0 -25
  54. package/src/client/CodeEditor/basicSetup.ts +0 -73
  55. package/src/client/CodeEditor/getOrCreateEditor.tsx +0 -615
  56. package/src/client/CodeEditor/index.tsx +0 -202
  57. package/src/client/CodeEditor/json1PresenceBroadcast.ts +0 -41
  58. package/src/client/CodeEditor/json1PresenceDisplay.ts +0 -350
  59. package/src/client/CodeEditor/rainbowBrackets.ts +0 -122
  60. package/src/client/CodeEditor/style.scss +0 -156
  61. package/src/client/CodeEditor/typescriptExtension/worker.ts +0 -32
  62. package/src/client/CodeErrorOverlay/index.tsx +0 -77
  63. package/src/client/CodeErrorOverlay/style.scss +0 -33
  64. package/src/client/Fonts/fonts.ts +0 -8
  65. package/src/client/Icons/AdjustmentSVG.tsx +0 -19
  66. package/src/client/Icons/BugSVG.tsx +0 -20
  67. package/src/client/Icons/CloseSVG.tsx +0 -19
  68. package/src/client/Icons/CssSVG.tsx +0 -16
  69. package/src/client/Icons/DirectoryArrowSVG.tsx +0 -19
  70. package/src/client/Icons/EditSVG.tsx +0 -19
  71. package/src/client/Icons/FileSVG.tsx +0 -19
  72. package/src/client/Icons/FolderSVG.tsx +0 -20
  73. package/src/client/Icons/GearSVG.tsx +0 -16
  74. package/src/client/Icons/HtmlSVG.tsx +0 -16
  75. package/src/client/Icons/JavaScriptSVG.tsx +0 -16
  76. package/src/client/Icons/JsonSVG.tsx +0 -16
  77. package/src/client/Icons/MarkdownSVG.tsx +0 -16
  78. package/src/client/Icons/MicSVG.tsx +0 -25
  79. package/src/client/Icons/NewSVG.tsx +0 -19
  80. package/src/client/Icons/PinSVG.tsx +0 -14
  81. package/src/client/Icons/PlaySVG.tsx +0 -16
  82. package/src/client/Icons/QuestionMarkSVG.tsx +0 -18
  83. package/src/client/Icons/ReactSVG.tsx +0 -16
  84. package/src/client/Icons/SearchSVG.tsx +0 -20
  85. package/src/client/Icons/SparklesSVG.tsx +0 -23
  86. package/src/client/Icons/SplitEditorSVG.tsx +0 -34
  87. package/src/client/Icons/StopSVG.tsx +0 -15
  88. package/src/client/Icons/SvelteSVG.tsx +0 -16
  89. package/src/client/Icons/TrashSVG.tsx +0 -19
  90. package/src/client/Icons/TypeScriptSVG.tsx +0 -16
  91. package/src/client/Icons/index.tsx +0 -24
  92. package/src/client/ImageViewer/index.tsx +0 -91
  93. package/src/client/ImageViewer/style.scss +0 -41
  94. package/src/client/PresenceNotifications/PresenceNotifications.test.ts +0 -134
  95. package/src/client/PresenceNotifications/index.tsx +0 -158
  96. package/src/client/PresenceNotifications/style.scss +0 -17
  97. package/src/client/RunCodeWidget/index.tsx +0 -117
  98. package/src/client/RunCodeWidget/style.scss +0 -24
  99. package/src/client/SplitPaneResizeContext.tsx +0 -159
  100. package/src/client/TabList/Tab.tsx +0 -73
  101. package/src/client/TabList/index.tsx +0 -35
  102. package/src/client/TabList/style.scss +0 -51
  103. package/src/client/VZCodeContext/index.tsx +0 -29
  104. package/src/client/VZCodeContext/types.ts +0 -249
  105. package/src/client/VZCodeContext/useVZCodeState.ts +0 -584
  106. package/src/client/VZKeyboardShortcutsDoc.tsx +0 -148
  107. package/src/client/VZLeft.tsx +0 -28
  108. package/src/client/VZMiddle.tsx +0 -172
  109. package/src/client/VZResizer/index.tsx +0 -128
  110. package/src/client/VZResizer/styles.scss +0 -33
  111. package/src/client/VZRight.tsx +0 -113
  112. package/src/client/VZSettings.tsx +0 -275
  113. package/src/client/VZSidebar/AIChat/ChatInput.tsx +0 -196
  114. package/src/client/VZSidebar/AIChat/DiffView.scss +0 -136
  115. package/src/client/VZSidebar/AIChat/DiffView.tsx +0 -176
  116. package/src/client/VZSidebar/AIChat/Message.tsx +0 -143
  117. package/src/client/VZSidebar/AIChat/MessageList.tsx +0 -205
  118. package/src/client/VZSidebar/AIChat/StreamingMessage.tsx +0 -35
  119. package/src/client/VZSidebar/AIChat/ThinkingScratchpad.tsx +0 -156
  120. package/src/client/VZSidebar/AIChat/TypingIndicator.tsx +0 -19
  121. package/src/client/VZSidebar/AIChat/index.tsx +0 -273
  122. package/src/client/VZSidebar/AIChat/styles.scss +0 -627
  123. package/src/client/VZSidebar/CreateDirModal.tsx +0 -111
  124. package/src/client/VZSidebar/CreateFileModal.tsx +0 -111
  125. package/src/client/VZSidebar/DeleteConfirmationModal.tsx +0 -76
  126. package/src/client/VZSidebar/DirectoryListing.tsx +0 -89
  127. package/src/client/VZSidebar/EmptyState.tsx +0 -11
  128. package/src/client/VZSidebar/FileListing.tsx +0 -91
  129. package/src/client/VZSidebar/FileTypeIcon.tsx +0 -49
  130. package/src/client/VZSidebar/Item.tsx +0 -237
  131. package/src/client/VZSidebar/Listing.tsx +0 -47
  132. package/src/client/VZSidebar/Search.tsx +0 -527
  133. package/src/client/VZSidebar/VisualEditor.tsx +0 -295
  134. package/src/client/VZSidebar/VoiceChatModal.tsx +0 -121
  135. package/src/client/VZSidebar/aiCopyPaste.ts +0 -199
  136. package/src/client/VZSidebar/index.tsx +0 -728
  137. package/src/client/VZSidebar/styles.scss +0 -612
  138. package/src/client/VZSidebar/useDragAndDrop.tsx +0 -408
  139. package/src/client/bootstrap.ts +0 -26
  140. package/src/client/buildWorker.ts +0 -3
  141. package/src/client/featureFlags.ts +0 -8
  142. package/src/client/generateRequestId.ts +0 -6
  143. package/src/client/getFileTree.ts +0 -53
  144. package/src/client/index.ts +0 -19
  145. package/src/client/main.jsx +0 -10
  146. package/src/client/presenceColor.ts +0 -8
  147. package/src/client/shouldTriggerRun.ts +0 -31
  148. package/src/client/sortFileTree.ts +0 -21
  149. package/src/client/tabsSearchParameters.test.ts +0 -79
  150. package/src/client/tabsSearchParameters.ts +0 -137
  151. package/src/client/themes/index.ts +0 -7
  152. package/src/client/themes/themes.ts +0 -77
  153. package/src/client/themes/uiwImports.ts +0 -32
  154. package/src/client/themes/useDynamicTheme.ts +0 -29
  155. package/src/client/themes/vizhubTheme/colors.ts +0 -80
  156. package/src/client/themes/vizhubTheme/index.ts +0 -193
  157. package/src/client/useActions.ts +0 -288
  158. package/src/client/useESLint/index.ts +0 -72
  159. package/src/client/useESLint/worker.ts +0 -113
  160. package/src/client/useEditorCache.ts +0 -35
  161. package/src/client/useFileCRUD.ts +0 -228
  162. package/src/client/useKeyboardShortcuts.ts +0 -451
  163. package/src/client/useOpenDirectories.ts +0 -99
  164. package/src/client/usePresenceAutoFollow.ts +0 -85
  165. package/src/client/usePrettier/index.ts +0 -178
  166. package/src/client/usePrettier/worker.ts +0 -109
  167. package/src/client/useRunCode.tsx +0 -15
  168. package/src/client/useRuntimeError.ts +0 -32
  169. package/src/client/useSubmitOperation.ts +0 -15
  170. package/src/client/useURLSync.ts +0 -137
  171. package/src/client/usernameLocalStorage.ts +0 -43
  172. package/src/client/utils/fileExtension.ts +0 -10
  173. package/src/client/utils/isImageFile.ts +0 -12
  174. package/src/client/vzReducer/aiChatReducer.ts +0 -44
  175. package/src/client/vzReducer/closeTabReducer.test.ts +0 -205
  176. package/src/client/vzReducer/closeTabsReducer.ts +0 -96
  177. package/src/client/vzReducer/createInitialState.ts +0 -38
  178. package/src/client/vzReducer/editorNoLongerWantsFocusReducer.ts +0 -9
  179. package/src/client/vzReducer/findPane.ts +0 -19
  180. package/src/client/vzReducer/index.ts +0 -250
  181. package/src/client/vzReducer/openTabReducer.test.ts +0 -127
  182. package/src/client/vzReducer/openTabReducer.ts +0 -74
  183. package/src/client/vzReducer/searchReducer.test.ts +0 -292
  184. package/src/client/vzReducer/searchReducer.ts +0 -181
  185. package/src/client/vzReducer/setActiveFileIdReducer.ts +0 -28
  186. package/src/client/vzReducer/setActiveFileLeftRightReducer.ts +0 -76
  187. package/src/client/vzReducer/setIsDocOpenReducer.ts +0 -9
  188. package/src/client/vzReducer/setIsSettingsOpenReducer.ts +0 -9
  189. package/src/client/vzReducer/setThemeReducer.ts +0 -9
  190. package/src/client/vzReducer/setUsernameReducer.ts +0 -9
  191. package/src/client/vzReducer/splitCurrentPaneReducer.ts +0 -66
  192. package/src/client/vzReducer/toggleAutoFollowReducer.ts +0 -12
  193. package/src/client/vzReducer/updatePane.ts +0 -40
  194. package/src/client/vzReducer/updatePresenceIndicatorReducer.ts +0 -30
  195. package/src/client/vzReducer/visualEditorReducer.ts +0 -9
  196. package/src/reactRouterExports.ts +0 -15
  197. package/src/runCode.ts +0 -27
  198. package/src/server/aiChatHandler/aiEditing.ts +0 -152
  199. package/src/server/aiChatHandler/chatOperations.ts +0 -510
  200. package/src/server/aiChatHandler/errorHandling.ts +0 -66
  201. package/src/server/aiChatHandler/index.ts +0 -200
  202. package/src/server/aiChatHandler/llmStreaming.ts +0 -419
  203. package/src/server/aiChatHandler/undoHandler.ts +0 -97
  204. package/src/server/aiChatHandler/validation.ts +0 -24
  205. package/src/server/computeInitialDocument.ts +0 -220
  206. package/src/server/generateAIResponse.ts +0 -188
  207. package/src/server/handleAIAssist.ts +0 -53
  208. package/src/server/handleAIChatUndo.ts +0 -2
  209. package/src/server/handleAICopilot.ts +0 -97
  210. package/src/server/index.ts +0 -388
  211. package/src/server/livekit.ts +0 -24
  212. package/src/server/prettier.ts +0 -115
  213. package/src/submitOperation.ts +0 -25
  214. package/src/types.ts +0 -205
  215. package/src/utils/fileDiff.ts +0 -117
  216. package/src/vite-env.d.ts +0 -10
  217. /package/{src/server/handleAIChatMessage.ts → dist/server/handleAIChatMessage.js} +0 -0
  218. /package/{src/server/isDirectory.ts → dist/server/isDirectory.js} +0 -0
@@ -1,612 +0,0 @@
1
- .vz-sidebar {
2
- height: 100%;
3
- color: var(--vh-color-neutral-04);
4
- background: var(--vh-color-neutral-01);
5
- display: flex;
6
- flex-direction: column;
7
- justify-content: space-between;
8
-
9
- .full-box {
10
- width: 100%;
11
- height: 100%;
12
- display: flex;
13
- flex-direction: row;
14
- justify-content: start;
15
- align-items: start;
16
- border-bottom: 2px solid var(--vh-color-neutral-02);
17
- overflow: hidden;
18
- }
19
-
20
- .files {
21
- margin-top: 6px;
22
- display: flex;
23
- flex-direction: row;
24
- justify-content: start;
25
- align-items: start;
26
- flex: 1;
27
- outline: none;
28
- overflow: auto;
29
- height: 100%;
30
- }
31
-
32
- .file-or-directory {
33
- min-height: 40px;
34
- display: flex;
35
- flex-direction: row;
36
- align-items: center;
37
- justify-content: space-between;
38
- cursor: pointer;
39
- margin: 0 6px;
40
- padding: 0 4px 0 8px;
41
- border-radius: 8px;
42
- font-family: var(--vzcode-font-family);
43
- font-weight: 500;
44
- }
45
-
46
- .sidebar-section-hint {
47
- margin-left: 10px;
48
- font-size: 12px;
49
- font-weight: 500;
50
- font-family: Poppins;
51
- color: var(--vh-color-neutral-04);
52
- }
53
-
54
- .sidebar-section-buttons {
55
- border-right: 2px solid var(--vh-color-neutral-02);
56
- height: 100%;
57
- display: flex;
58
- flex-direction: column;
59
- align-items: center;
60
- gap: 6px;
61
- padding: 6px;
62
-
63
- a {
64
- color: inherit;
65
- }
66
- }
67
-
68
- .sidebar-files,
69
- .sidebar-search,
70
- .sidebar-ai-chat,
71
- .sidebar-visual-editor {
72
- width: 100%;
73
- }
74
-
75
- .sidebar-search {
76
- * {
77
- color: inherit;
78
- }
79
- }
80
-
81
- .sidebar-ai-chat {
82
- height: 100%;
83
- display: flex;
84
- flex-direction: column;
85
- }
86
-
87
- .sidebar-search .arrow-wrapper {
88
- cursor: pointer;
89
- }
90
-
91
- .sidebar-search-form {
92
- padding: 10px;
93
- }
94
-
95
- .search-file-heading {
96
- display: flex;
97
- justify-content: space-between;
98
- align-items: center;
99
- padding: 10px;
100
- cursor: pointer;
101
-
102
- * {
103
- margin: 0px;
104
- }
105
- }
106
-
107
- .search-file-title,
108
- .search-file-name,
109
- .search-file-info {
110
- display: flex;
111
- justify-content: center;
112
- align-items: center;
113
- gap: 10px;
114
- }
115
-
116
- .search-file-name {
117
- font-size: inherit;
118
- }
119
-
120
- .search-file-count {
121
- width: 18px;
122
- height: 18px;
123
- display: flex;
124
- align-items: center;
125
- justify-content: center;
126
- margin: 0px;
127
- font-size: 12px;
128
- font-weight: bold;
129
- text-align: center;
130
- background: var(--vh-color-neutral-04);
131
- color: var(--vh-color-neutral-01);
132
- border-radius: 100%;
133
- }
134
-
135
- .search-state {
136
- margin: 10px;
137
- }
138
-
139
- .search-results .active {
140
- border: 1px solid var(--vh-color-neutral-04);
141
- background-color: var(--vh-color-neutral-02);
142
- cursor: pointer;
143
- }
144
-
145
- .search-line {
146
- display: flex;
147
- justify-content: space-between;
148
- align-items: center;
149
- padding-right: 10px;
150
- cursor: pointer;
151
- }
152
-
153
- .search-line p {
154
- padding-left: 30px;
155
- margin: 10px 0px;
156
- }
157
-
158
- .search-file-lines {
159
- font-size: inherit;
160
- margin-top: 10px;
161
- }
162
-
163
- .search-file-lines .search-pattern {
164
- background: var(--vh-color-neutral-04);
165
- color: var(--vh-color-neutral-01);
166
- margin: 0.5px;
167
- padding: 1px;
168
- }
169
-
170
- .new-btn {
171
- justify-content: right;
172
- margin-right: 10px;
173
- cursor: pointer;
174
- }
175
-
176
- .utils {
177
- display: flex;
178
- gap: 2px;
179
- }
180
-
181
- .file-or-directory:hover,
182
- .settings:hover {
183
- // background-color: #47546b;
184
- background-color: rgba(255, 255, 255, 0.075);
185
- }
186
-
187
- .active-file,
188
- .active-file:hover {
189
- background-color: #264399;
190
- }
191
-
192
- .name {
193
- display: flex;
194
- text-overflow: ellipsis;
195
- align-items: center;
196
- white-space: nowrap;
197
- overflow: hidden;
198
- gap: 6px;
199
- .file-icon,
200
- .arrow-wrapper {
201
- opacity: 0.5;
202
- }
203
- }
204
-
205
- .rename-input {
206
- width: 100%;
207
- border: 0px;
208
- outline: none;
209
- background: transparent;
210
- color: var(--vh-color-neutral-04);
211
- font-family: var(--vzcode-font-family);
212
- font-size: inherit;
213
- font-weight: inherit;
214
- padding: 0px;
215
- margin: 0px;
216
- }
217
-
218
- .indentation {
219
- margin-left: 20px;
220
- }
221
-
222
- .settings {
223
- height: 30px;
224
- cursor: pointer;
225
- display: flex;
226
- align-items: center;
227
- justify-content: center;
228
- padding: 14px 0;
229
- margin: 10px;
230
- border-radius: 4px;
231
- }
232
-
233
- /* Empty state for when there are no files */
234
- .empty {
235
- display: flex;
236
- flex: 1;
237
- flex-direction: column;
238
- align-items: center;
239
- justify-content: center;
240
- margin: 10px;
241
- padding: 20px;
242
- border: 1px dashed rgba(255, 255, 255, 0.5);
243
- border-radius: 10px;
244
- min-height: 200px;
245
- position: relative;
246
- pointer-events: none;
247
-
248
- .empty-text {
249
- font-size: 16px;
250
- font-weight: 500;
251
- pointer-events: none;
252
- position: absolute;
253
- text-align: center;
254
- left: 50%;
255
- top: 50%;
256
- transform: translate(-50%, -50%);
257
- width: 80%;
258
- opacity: 1;
259
- transition: opacity 0.2s ease;
260
-
261
- &:not(:first-child) {
262
- opacity: 0;
263
- }
264
- }
265
-
266
- &.drag-over {
267
- .empty-text {
268
- opacity: 0;
269
-
270
- &:last-child {
271
- opacity: 1;
272
- }
273
- }
274
- }
275
- }
276
-
277
- .connection-status {
278
- display: flex;
279
- justify-content: space-between;
280
- padding: 10px;
281
- font-size: 12px;
282
-
283
- .connection-status-indicator {
284
- width: 16px;
285
- height: 16px;
286
- border-radius: 50%;
287
-
288
- &.connected {
289
- background-color: var(--vh-color-success-01);
290
- }
291
-
292
- &.pending {
293
- background-color: var(--vh-color-caution-01);
294
- }
295
-
296
- &.disconnected {
297
- background-color: var(--vh-color-warning-01);
298
- }
299
- }
300
- }
301
-
302
- .ai-buttons {
303
- display: flex;
304
- flex-direction: column;
305
- gap: 8px;
306
- padding: 10px 10px 0 10px;
307
- border-top: 1px solid var(--vh-color-neutral-02);
308
-
309
- .ai-button {
310
- padding: 8px 12px;
311
- border: 1px solid var(--vh-color-neutral-03);
312
- border-radius: 6px;
313
- background: var(--vh-color-neutral-01);
314
- color: var(--vh-color-neutral-04);
315
- font-size: 12px;
316
- font-weight: 500;
317
- font-family: var(--vzcode-font-family);
318
- cursor: pointer;
319
- transition: all 0.2s ease;
320
-
321
- i {
322
- margin-right: 8px;
323
- }
324
-
325
- &:hover {
326
- background: var(--vh-color-hover-dark);
327
- border-color: var(--vh-color-neutral-04);
328
- }
329
-
330
- &:active {
331
- background: var(--vh-color-neutral-03);
332
- }
333
-
334
- &.copy-button {
335
- border-color: var(--vh-color-primary-03);
336
-
337
- &:hover {
338
- background: var(--vh-color-hover-dark);
339
- border-color: var(--vh-color-primary-04);
340
- }
341
- }
342
-
343
- &.export-button {
344
- border-color: var(--vh-color-primary-03);
345
-
346
- &:hover {
347
- background: var(--vh-color-hover-dark);
348
- border-color: var(--vh-color-neutral-04);
349
- }
350
- }
351
-
352
- &.paste-button {
353
- border-color: var(--vh-color-success-03);
354
-
355
- &:hover {
356
- background: var(--vh-color-hover-dark);
357
- border-color: var(--vh-color-success-04);
358
- }
359
- }
360
-
361
- &.delete-all-button {
362
- border-color: var(--vh-color-neutral-02);
363
- color: var(--vh-color-neutral-03);
364
- font-size: 11px;
365
- font-weight: 400;
366
- opacity: 0.7;
367
-
368
- &:hover {
369
- background: var(--vh-color-hover-dark);
370
- border-color: var(--vh-color-danger-03);
371
- color: var(--vh-color-danger-04);
372
- opacity: 1;
373
- }
374
- }
375
- }
376
- }
377
-
378
- .name {
379
- display: flex;
380
- align-items: center;
381
- white-space: nowrap;
382
- overflow: hidden;
383
- gap: 6px;
384
- position: relative;
385
- }
386
-
387
- .presence-indicators {
388
- position: absolute;
389
- top: 0;
390
- display: flex;
391
- gap: 4px;
392
- }
393
-
394
- .presence-indicator {
395
- width: 10px;
396
- height: 10px;
397
- border-radius: 50%;
398
- display: flex;
399
- align-items: center;
400
- justify-content: center;
401
- font-size: 8px;
402
- color: #000000;
403
- z-index: 1;
404
- }
405
-
406
- // Visual Editor Slider Styles
407
- .visual-editor {
408
- display: flex;
409
- flex-direction: column;
410
- gap: 16px;
411
- width: 100%;
412
- padding: 10px;
413
- box-sizing: border-box;
414
- }
415
-
416
- .visual-editor-slider {
417
- display: flex;
418
- flex-direction: column;
419
- gap: 8px;
420
- padding: 12px 10px;
421
- background: var(--vh-color-neutral-01);
422
- border: 1px solid var(--vh-color-neutral-02);
423
- border-radius: 8px;
424
- transition: all 0.2s ease;
425
- width: 100%;
426
- box-sizing: border-box;
427
-
428
- &:hover {
429
- border-color: var(--vh-color-neutral-03);
430
- background: rgba(255, 255, 255, 0.02);
431
- }
432
- }
433
-
434
- .slider-header {
435
- display: flex;
436
- justify-content: space-between;
437
- align-items: center;
438
- margin-bottom: 4px;
439
- }
440
-
441
- .slider-label {
442
- font-family: var(--vzcode-font-family);
443
- font-size: 13px;
444
- font-weight: 500;
445
- color: var(--vh-color-neutral-04);
446
- margin: 0;
447
- }
448
-
449
- .slider-value {
450
- font-family: var(--vzcode-font-family);
451
- font-size: 13px;
452
- font-weight: 600;
453
- color: #66ecff; // SKY color from theme
454
- background: rgba(102, 236, 255, 0.1);
455
- padding: 2px 6px;
456
- border-radius: 4px;
457
- min-width: 40px;
458
- text-align: center;
459
- }
460
-
461
- .slider-container {
462
- position: relative;
463
- height: 20px;
464
- display: flex;
465
- align-items: center;
466
- }
467
-
468
- .slider-input {
469
- width: 100%;
470
- height: 6px;
471
- background: transparent;
472
- outline: none;
473
- border: none;
474
- cursor: pointer;
475
- position: relative;
476
- z-index: 2;
477
-
478
- // Remove default styling
479
- -webkit-appearance: none;
480
- appearance: none;
481
-
482
- // Custom track
483
- &::-webkit-slider-track {
484
- width: 100%;
485
- height: 6px;
486
- background: var(--vh-color-neutral-02);
487
- border-radius: 3px;
488
- border: none;
489
- }
490
-
491
- &::-moz-range-track {
492
- width: 100%;
493
- height: 6px;
494
- background: var(--vh-color-neutral-02);
495
- border-radius: 3px;
496
- border: none;
497
- }
498
-
499
- // Custom thumb
500
- &::-webkit-slider-thumb {
501
- -webkit-appearance: none;
502
- appearance: none;
503
- width: 18px;
504
- height: 18px;
505
- background: linear-gradient(135deg, #66ecff, #00ffff);
506
- border-radius: 50%;
507
- cursor: pointer;
508
- border: 2px solid var(--vh-color-neutral-01);
509
- box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
510
- transition: all 0.2s ease;
511
- position: relative;
512
- z-index: 3;
513
-
514
- &:hover {
515
- transform: scale(1.1);
516
- box-shadow: 0 3px 8px rgba(102, 236, 255, 0.4);
517
- }
518
-
519
- &:active {
520
- transform: scale(1.05);
521
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
522
- }
523
- }
524
-
525
- &::-moz-range-thumb {
526
- width: 18px;
527
- height: 18px;
528
- background: linear-gradient(135deg, #66ecff, #00ffff);
529
- border-radius: 50%;
530
- cursor: pointer;
531
- border: 2px solid var(--vh-color-neutral-01);
532
- box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
533
- transition: all 0.2s ease;
534
-
535
- &:hover {
536
- transform: scale(1.1);
537
- box-shadow: 0 3px 8px rgba(102, 236, 255, 0.4);
538
- }
539
-
540
- &:active {
541
- transform: scale(1.05);
542
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
543
- }
544
- }
545
-
546
- // Focus styles
547
- &:focus {
548
- outline: none;
549
-
550
- &::-webkit-slider-thumb {
551
- box-shadow: 0 0 0 3px rgba(102, 236, 255, 0.3);
552
- }
553
-
554
- &::-moz-range-thumb {
555
- box-shadow: 0 0 0 3px rgba(102, 236, 255, 0.3);
556
- }
557
- }
558
- }
559
-
560
- .slider-track-fill {
561
- position: absolute;
562
- top: 50%;
563
- left: 0;
564
- height: 6px;
565
- background: linear-gradient(90deg, #77fd8c, #66ecff);
566
- border-radius: 3px;
567
- transform: translateY(-50%);
568
- transition: width 0.1s ease;
569
- pointer-events: none;
570
- z-index: 1;
571
- }
572
-
573
- .slider-bounds {
574
- display: flex;
575
- justify-content: space-between;
576
- align-items: center;
577
- margin-top: 2px;
578
- }
579
-
580
- .min-value,
581
- .max-value {
582
- font-family: var(--vzcode-font-family);
583
- font-size: 11px;
584
- color: var(--vh-color-neutral-03);
585
- font-weight: 400;
586
- }
587
-
588
- // Empty State Component Styles
589
- .empty-state {
590
- display: flex;
591
- flex-direction: column;
592
- align-items: center;
593
- justify-content: center;
594
- padding: 24px 16px;
595
- margin: 16px;
596
- background: var(--vh-color-neutral-01);
597
- border: 1px solid var(--vh-color-neutral-02);
598
- border-radius: 8px;
599
- text-align: center;
600
- font-family: var(--vzcode-font-family);
601
- font-size: 14px;
602
- font-weight: 400;
603
- color: var(--vh-color-neutral-04);
604
- line-height: 1.5;
605
- min-height: 80px;
606
-
607
- &:hover {
608
- border-color: var(--vh-color-neutral-03);
609
- background: rgba(255, 255, 255, 0.02);
610
- }
611
- }
612
- }