@myrialabs/clopen 0.0.1

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 (456) hide show
  1. package/.env.example +6 -0
  2. package/.github/workflows/release.yml +60 -0
  3. package/.github/workflows/test.yml +40 -0
  4. package/CONTRIBUTING.md +499 -0
  5. package/LICENSE +21 -0
  6. package/README.md +209 -0
  7. package/backend/index.ts +156 -0
  8. package/backend/lib/chat/helpers.ts +42 -0
  9. package/backend/lib/chat/index.ts +2 -0
  10. package/backend/lib/chat/stream-manager.ts +1126 -0
  11. package/backend/lib/database/README.md +77 -0
  12. package/backend/lib/database/index.ts +119 -0
  13. package/backend/lib/database/migrations/001_create_projects_table.ts +31 -0
  14. package/backend/lib/database/migrations/002_create_chat_sessions_table.ts +33 -0
  15. package/backend/lib/database/migrations/003_create_messages_table.ts +32 -0
  16. package/backend/lib/database/migrations/004_create_prompt_templates_table.ts +34 -0
  17. package/backend/lib/database/migrations/005_create_settings_table.ts +24 -0
  18. package/backend/lib/database/migrations/006_add_user_to_messages.ts +58 -0
  19. package/backend/lib/database/migrations/007_create_stream_states_table.ts +41 -0
  20. package/backend/lib/database/migrations/008_create_message_snapshots_table.ts +62 -0
  21. package/backend/lib/database/migrations/009_add_delta_snapshot_fields.ts +41 -0
  22. package/backend/lib/database/migrations/010_add_soft_delete_and_branch_support.ts +70 -0
  23. package/backend/lib/database/migrations/011_git_like_commit_graph.ts +156 -0
  24. package/backend/lib/database/migrations/012_add_file_change_statistics.ts +41 -0
  25. package/backend/lib/database/migrations/013_checkpoint_tree_state.ts +118 -0
  26. package/backend/lib/database/migrations/014_add_engine_to_sessions.ts +18 -0
  27. package/backend/lib/database/migrations/015_add_model_to_sessions.ts +18 -0
  28. package/backend/lib/database/migrations/016_create_user_projects_table.ts +34 -0
  29. package/backend/lib/database/migrations/017_add_current_session_to_user_projects.ts +32 -0
  30. package/backend/lib/database/migrations/018_create_claude_accounts_table.ts +24 -0
  31. package/backend/lib/database/migrations/019_add_claude_account_to_sessions.ts +18 -0
  32. package/backend/lib/database/migrations/020_add_snapshot_tree_hash.ts +32 -0
  33. package/backend/lib/database/migrations/021_drop_prompt_templates_table.ts +33 -0
  34. package/backend/lib/database/migrations/index.ts +154 -0
  35. package/backend/lib/database/queries/checkpoint-queries.ts +87 -0
  36. package/backend/lib/database/queries/engine-queries.ts +75 -0
  37. package/backend/lib/database/queries/index.ts +9 -0
  38. package/backend/lib/database/queries/message-queries.ts +472 -0
  39. package/backend/lib/database/queries/project-queries.ts +117 -0
  40. package/backend/lib/database/queries/session-queries.ts +271 -0
  41. package/backend/lib/database/queries/settings-queries.ts +34 -0
  42. package/backend/lib/database/queries/snapshot-queries.ts +326 -0
  43. package/backend/lib/database/queries/utils-queries.ts +59 -0
  44. package/backend/lib/database/seeders/index.ts +13 -0
  45. package/backend/lib/database/seeders/settings_seeder.ts +84 -0
  46. package/backend/lib/database/utils/connection.ts +174 -0
  47. package/backend/lib/database/utils/index.ts +4 -0
  48. package/backend/lib/database/utils/migration-runner.ts +118 -0
  49. package/backend/lib/database/utils/seeder-runner.ts +121 -0
  50. package/backend/lib/engine/adapters/claude/environment.ts +164 -0
  51. package/backend/lib/engine/adapters/claude/error-handler.ts +60 -0
  52. package/backend/lib/engine/adapters/claude/index.ts +1 -0
  53. package/backend/lib/engine/adapters/claude/path-utils.ts +38 -0
  54. package/backend/lib/engine/adapters/claude/stream.ts +177 -0
  55. package/backend/lib/engine/adapters/opencode/index.ts +2 -0
  56. package/backend/lib/engine/adapters/opencode/message-converter.ts +862 -0
  57. package/backend/lib/engine/adapters/opencode/server.ts +104 -0
  58. package/backend/lib/engine/adapters/opencode/stream.ts +755 -0
  59. package/backend/lib/engine/index.ts +196 -0
  60. package/backend/lib/engine/types.ts +58 -0
  61. package/backend/lib/files/file-operations.ts +478 -0
  62. package/backend/lib/files/file-reading.ts +308 -0
  63. package/backend/lib/files/file-watcher.ts +383 -0
  64. package/backend/lib/files/path-browsing.ts +382 -0
  65. package/backend/lib/git/git-executor.ts +88 -0
  66. package/backend/lib/git/git-parser.ts +411 -0
  67. package/backend/lib/git/git-service.ts +505 -0
  68. package/backend/lib/mcp/README.md +1144 -0
  69. package/backend/lib/mcp/config.ts +316 -0
  70. package/backend/lib/mcp/index.ts +35 -0
  71. package/backend/lib/mcp/project-context.ts +236 -0
  72. package/backend/lib/mcp/servers/browser-automation/actions.ts +156 -0
  73. package/backend/lib/mcp/servers/browser-automation/browser.ts +419 -0
  74. package/backend/lib/mcp/servers/browser-automation/index.ts +791 -0
  75. package/backend/lib/mcp/servers/browser-automation/inspection.ts +501 -0
  76. package/backend/lib/mcp/servers/helper.ts +143 -0
  77. package/backend/lib/mcp/servers/index.ts +45 -0
  78. package/backend/lib/mcp/servers/weather/get-temperature.ts +56 -0
  79. package/backend/lib/mcp/servers/weather/index.ts +31 -0
  80. package/backend/lib/mcp/stdio-server.ts +103 -0
  81. package/backend/lib/mcp/types.ts +65 -0
  82. package/backend/lib/preview/browser/browser-audio-capture.ts +86 -0
  83. package/backend/lib/preview/browser/browser-console-manager.ts +263 -0
  84. package/backend/lib/preview/browser/browser-dialog-handler.ts +222 -0
  85. package/backend/lib/preview/browser/browser-interaction-handler.ts +421 -0
  86. package/backend/lib/preview/browser/browser-mcp-control.ts +415 -0
  87. package/backend/lib/preview/browser/browser-native-ui-handler.ts +512 -0
  88. package/backend/lib/preview/browser/browser-navigation-tracker.ts +104 -0
  89. package/backend/lib/preview/browser/browser-pool.ts +357 -0
  90. package/backend/lib/preview/browser/browser-preview-service.ts +882 -0
  91. package/backend/lib/preview/browser/browser-tab-manager.ts +935 -0
  92. package/backend/lib/preview/browser/browser-video-capture.ts +695 -0
  93. package/backend/lib/preview/browser/scripts/audio-stream.ts +292 -0
  94. package/backend/lib/preview/browser/scripts/cursor-tracking.ts +85 -0
  95. package/backend/lib/preview/browser/scripts/video-stream.ts +438 -0
  96. package/backend/lib/preview/browser/types.ts +359 -0
  97. package/backend/lib/preview/index.ts +24 -0
  98. package/backend/lib/project/index.ts +2 -0
  99. package/backend/lib/project/status-manager.ts +182 -0
  100. package/backend/lib/shared/index.ts +2 -0
  101. package/backend/lib/shared/port-utils.ts +25 -0
  102. package/backend/lib/shared/process-manager.ts +281 -0
  103. package/backend/lib/snapshot/blob-store.ts +227 -0
  104. package/backend/lib/snapshot/gitignore.ts +307 -0
  105. package/backend/lib/snapshot/helpers.ts +397 -0
  106. package/backend/lib/snapshot/snapshot-service.ts +483 -0
  107. package/backend/lib/terminal/helpers.ts +14 -0
  108. package/backend/lib/terminal/index.ts +8 -0
  109. package/backend/lib/terminal/pty-manager.ts +4 -0
  110. package/backend/lib/terminal/pty-session-manager.ts +387 -0
  111. package/backend/lib/terminal/shell-utils.ts +313 -0
  112. package/backend/lib/terminal/stream-manager.ts +293 -0
  113. package/backend/lib/tunnel/global-tunnel-manager.ts +243 -0
  114. package/backend/lib/tunnel/project-tunnel-manager.ts +311 -0
  115. package/backend/lib/user/helpers.ts +87 -0
  116. package/backend/lib/utils/ws.ts +944 -0
  117. package/backend/lib/vite-dev.ts +353 -0
  118. package/backend/middleware/cors.ts +15 -0
  119. package/backend/middleware/error-handler.ts +49 -0
  120. package/backend/middleware/logger.ts +9 -0
  121. package/backend/types/api.ts +24 -0
  122. package/backend/ws/README.md +1505 -0
  123. package/backend/ws/chat/background.ts +198 -0
  124. package/backend/ws/chat/index.ts +21 -0
  125. package/backend/ws/chat/stream.ts +707 -0
  126. package/backend/ws/engine/claude/accounts.ts +401 -0
  127. package/backend/ws/engine/claude/index.ts +13 -0
  128. package/backend/ws/engine/claude/status.ts +43 -0
  129. package/backend/ws/engine/index.ts +14 -0
  130. package/backend/ws/engine/opencode/index.ts +11 -0
  131. package/backend/ws/engine/opencode/status.ts +30 -0
  132. package/backend/ws/engine/utils.ts +36 -0
  133. package/backend/ws/files/index.ts +30 -0
  134. package/backend/ws/files/read.ts +189 -0
  135. package/backend/ws/files/search.ts +453 -0
  136. package/backend/ws/files/watch.ts +124 -0
  137. package/backend/ws/files/write.ts +143 -0
  138. package/backend/ws/git/branch.ts +106 -0
  139. package/backend/ws/git/commit.ts +39 -0
  140. package/backend/ws/git/conflict.ts +68 -0
  141. package/backend/ws/git/diff.ts +69 -0
  142. package/backend/ws/git/index.ts +24 -0
  143. package/backend/ws/git/log.ts +41 -0
  144. package/backend/ws/git/remote.ts +214 -0
  145. package/backend/ws/git/staging.ts +84 -0
  146. package/backend/ws/git/status.ts +90 -0
  147. package/backend/ws/index.ts +69 -0
  148. package/backend/ws/mcp/index.ts +61 -0
  149. package/backend/ws/messages/crud.ts +74 -0
  150. package/backend/ws/messages/index.ts +14 -0
  151. package/backend/ws/preview/browser/cleanup.ts +129 -0
  152. package/backend/ws/preview/browser/console.ts +114 -0
  153. package/backend/ws/preview/browser/interact.ts +513 -0
  154. package/backend/ws/preview/browser/mcp.ts +129 -0
  155. package/backend/ws/preview/browser/native-ui.ts +235 -0
  156. package/backend/ws/preview/browser/stats.ts +55 -0
  157. package/backend/ws/preview/browser/tab-info.ts +126 -0
  158. package/backend/ws/preview/browser/tab.ts +166 -0
  159. package/backend/ws/preview/browser/webcodecs.ts +293 -0
  160. package/backend/ws/preview/index.ts +146 -0
  161. package/backend/ws/projects/crud.ts +113 -0
  162. package/backend/ws/projects/index.ts +25 -0
  163. package/backend/ws/projects/presence.ts +46 -0
  164. package/backend/ws/projects/status.ts +116 -0
  165. package/backend/ws/sessions/crud.ts +327 -0
  166. package/backend/ws/sessions/index.ts +33 -0
  167. package/backend/ws/settings/crud.ts +112 -0
  168. package/backend/ws/settings/index.ts +14 -0
  169. package/backend/ws/snapshot/index.ts +17 -0
  170. package/backend/ws/snapshot/restore.ts +173 -0
  171. package/backend/ws/snapshot/timeline.ts +141 -0
  172. package/backend/ws/system/index.ts +14 -0
  173. package/backend/ws/system/operations.ts +49 -0
  174. package/backend/ws/terminal/index.ts +40 -0
  175. package/backend/ws/terminal/persistence.ts +153 -0
  176. package/backend/ws/terminal/session.ts +382 -0
  177. package/backend/ws/terminal/stream.ts +79 -0
  178. package/backend/ws/tunnel/index.ts +14 -0
  179. package/backend/ws/tunnel/operations.ts +91 -0
  180. package/backend/ws/types.ts +20 -0
  181. package/backend/ws/user/crud.ts +156 -0
  182. package/backend/ws/user/index.ts +14 -0
  183. package/bin/clopen.ts +307 -0
  184. package/bun.lock +1352 -0
  185. package/frontend/App.svelte +34 -0
  186. package/frontend/app.css +313 -0
  187. package/frontend/lib/app-environment.ts +10 -0
  188. package/frontend/lib/components/chat/ChatInterface.svelte +407 -0
  189. package/frontend/lib/components/chat/formatters/ErrorMessage.svelte +57 -0
  190. package/frontend/lib/components/chat/formatters/MessageFormatter.svelte +224 -0
  191. package/frontend/lib/components/chat/formatters/TextMessage.svelte +395 -0
  192. package/frontend/lib/components/chat/formatters/Tools.svelte +70 -0
  193. package/frontend/lib/components/chat/formatters/index.ts +3 -0
  194. package/frontend/lib/components/chat/input/ChatInput.svelte +421 -0
  195. package/frontend/lib/components/chat/input/components/ChatInputActions.svelte +78 -0
  196. package/frontend/lib/components/chat/input/components/DragDropOverlay.svelte +30 -0
  197. package/frontend/lib/components/chat/input/components/EditModeIndicator.svelte +33 -0
  198. package/frontend/lib/components/chat/input/components/EngineModelPicker.svelte +619 -0
  199. package/frontend/lib/components/chat/input/components/FileAttachmentPreview.svelte +48 -0
  200. package/frontend/lib/components/chat/input/components/LoadingIndicator.svelte +31 -0
  201. package/frontend/lib/components/chat/input/composables/use-animations.svelte.ts +201 -0
  202. package/frontend/lib/components/chat/input/composables/use-chat-actions.svelte.ts +148 -0
  203. package/frontend/lib/components/chat/input/composables/use-file-handling.svelte.ts +216 -0
  204. package/frontend/lib/components/chat/input/composables/use-input-state.svelte.ts +357 -0
  205. package/frontend/lib/components/chat/input/composables/use-textarea-resize.svelte.ts +57 -0
  206. package/frontend/lib/components/chat/message/ChatMessage.svelte +478 -0
  207. package/frontend/lib/components/chat/message/ChatMessages.svelte +541 -0
  208. package/frontend/lib/components/chat/message/DateSeparator.svelte +86 -0
  209. package/frontend/lib/components/chat/message/MessageBubble.svelte +86 -0
  210. package/frontend/lib/components/chat/message/MessageHeader.svelte +157 -0
  211. package/frontend/lib/components/chat/modal/DebugModal.svelte +59 -0
  212. package/frontend/lib/components/chat/modal/TokenUsageModal.svelte +124 -0
  213. package/frontend/lib/components/chat/shared/index.ts +2 -0
  214. package/frontend/lib/components/chat/shared/utils.ts +116 -0
  215. package/frontend/lib/components/chat/tools/BashOutputTool.svelte +35 -0
  216. package/frontend/lib/components/chat/tools/BashTool.svelte +46 -0
  217. package/frontend/lib/components/chat/tools/CustomMcpTool.svelte +139 -0
  218. package/frontend/lib/components/chat/tools/EditTool.svelte +48 -0
  219. package/frontend/lib/components/chat/tools/ExitPlanModeTool.svelte +32 -0
  220. package/frontend/lib/components/chat/tools/GlobTool.svelte +51 -0
  221. package/frontend/lib/components/chat/tools/GrepTool.svelte +90 -0
  222. package/frontend/lib/components/chat/tools/KillShellTool.svelte +26 -0
  223. package/frontend/lib/components/chat/tools/ListMcpResourcesTool.svelte +31 -0
  224. package/frontend/lib/components/chat/tools/NotebookEditTool.svelte +38 -0
  225. package/frontend/lib/components/chat/tools/ReadMcpResourceTool.svelte +34 -0
  226. package/frontend/lib/components/chat/tools/ReadTool.svelte +41 -0
  227. package/frontend/lib/components/chat/tools/TaskTool.svelte +64 -0
  228. package/frontend/lib/components/chat/tools/TodoWriteTool.svelte +75 -0
  229. package/frontend/lib/components/chat/tools/WebFetchTool.svelte +35 -0
  230. package/frontend/lib/components/chat/tools/WebSearchTool.svelte +84 -0
  231. package/frontend/lib/components/chat/tools/WriteTool.svelte +33 -0
  232. package/frontend/lib/components/chat/tools/components/CodeBlock.svelte +79 -0
  233. package/frontend/lib/components/chat/tools/components/DiffBlock.svelte +408 -0
  234. package/frontend/lib/components/chat/tools/components/FileHeader.svelte +45 -0
  235. package/frontend/lib/components/chat/tools/components/InfoLine.svelte +19 -0
  236. package/frontend/lib/components/chat/tools/components/StatsBadges.svelte +27 -0
  237. package/frontend/lib/components/chat/tools/components/TerminalCommand.svelte +54 -0
  238. package/frontend/lib/components/chat/tools/components/index.ts +7 -0
  239. package/frontend/lib/components/chat/tools/index.ts +26 -0
  240. package/frontend/lib/components/chat/widgets/FloatingTodoList.svelte +249 -0
  241. package/frontend/lib/components/chat/widgets/TokenUsage.svelte +78 -0
  242. package/frontend/lib/components/checkpoint/TimelineModal.svelte +391 -0
  243. package/frontend/lib/components/checkpoint/timeline/TimelineEdge.svelte +26 -0
  244. package/frontend/lib/components/checkpoint/timeline/TimelineGraph.svelte +87 -0
  245. package/frontend/lib/components/checkpoint/timeline/TimelineNode.svelte +108 -0
  246. package/frontend/lib/components/checkpoint/timeline/TimelineVersionGroup.svelte +59 -0
  247. package/frontend/lib/components/checkpoint/timeline/animation.ts +168 -0
  248. package/frontend/lib/components/checkpoint/timeline/config.ts +44 -0
  249. package/frontend/lib/components/checkpoint/timeline/graph-builder.ts +304 -0
  250. package/frontend/lib/components/checkpoint/timeline/types.ts +65 -0
  251. package/frontend/lib/components/checkpoint/timeline/utils.ts +53 -0
  252. package/frontend/lib/components/common/Alert.svelte +139 -0
  253. package/frontend/lib/components/common/AvatarBubble.svelte +56 -0
  254. package/frontend/lib/components/common/Button.svelte +71 -0
  255. package/frontend/lib/components/common/Card.svelte +102 -0
  256. package/frontend/lib/components/common/Checkbox.svelte +48 -0
  257. package/frontend/lib/components/common/Dialog.svelte +249 -0
  258. package/frontend/lib/components/common/FolderBrowser.svelte +843 -0
  259. package/frontend/lib/components/common/Icon.svelte +58 -0
  260. package/frontend/lib/components/common/Input.svelte +72 -0
  261. package/frontend/lib/components/common/Lightbox.svelte +233 -0
  262. package/frontend/lib/components/common/LoadingScreen.svelte +52 -0
  263. package/frontend/lib/components/common/LoadingSpinner.svelte +48 -0
  264. package/frontend/lib/components/common/Modal.svelte +177 -0
  265. package/frontend/lib/components/common/ModalProvider.svelte +28 -0
  266. package/frontend/lib/components/common/ModelSelector.svelte +110 -0
  267. package/frontend/lib/components/common/MonacoEditor.svelte +569 -0
  268. package/frontend/lib/components/common/NotificationToast.svelte +113 -0
  269. package/frontend/lib/components/common/PageTemplate.svelte +76 -0
  270. package/frontend/lib/components/common/ProjectUserAvatars.svelte +79 -0
  271. package/frontend/lib/components/common/Select.svelte +98 -0
  272. package/frontend/lib/components/common/Textarea.svelte +80 -0
  273. package/frontend/lib/components/common/ThemeToggle.svelte +44 -0
  274. package/frontend/lib/components/common/lucide-icons.ts +1642 -0
  275. package/frontend/lib/components/common/material-icons.ts +1082 -0
  276. package/frontend/lib/components/common/xterm/XTerm.svelte +796 -0
  277. package/frontend/lib/components/common/xterm/index.ts +16 -0
  278. package/frontend/lib/components/common/xterm/terminal-config.ts +68 -0
  279. package/frontend/lib/components/common/xterm/types.ts +31 -0
  280. package/frontend/lib/components/common/xterm/xterm-service.ts +353 -0
  281. package/frontend/lib/components/files/FileNode.svelte +384 -0
  282. package/frontend/lib/components/files/FileTree.svelte +681 -0
  283. package/frontend/lib/components/files/FileViewer.svelte +728 -0
  284. package/frontend/lib/components/files/SearchResults.svelte +303 -0
  285. package/frontend/lib/components/git/BranchManager.svelte +458 -0
  286. package/frontend/lib/components/git/ChangesSection.svelte +107 -0
  287. package/frontend/lib/components/git/CommitForm.svelte +76 -0
  288. package/frontend/lib/components/git/ConflictResolver.svelte +158 -0
  289. package/frontend/lib/components/git/DiffViewer.svelte +364 -0
  290. package/frontend/lib/components/git/FileChangeItem.svelte +97 -0
  291. package/frontend/lib/components/git/GitButton.svelte +33 -0
  292. package/frontend/lib/components/git/GitLog.svelte +361 -0
  293. package/frontend/lib/components/git/GitModal.svelte +80 -0
  294. package/frontend/lib/components/history/HistoryModal.svelte +563 -0
  295. package/frontend/lib/components/history/HistoryView.svelte +615 -0
  296. package/frontend/lib/components/index.ts +34 -0
  297. package/frontend/lib/components/preview/browser/BrowserPreview.svelte +549 -0
  298. package/frontend/lib/components/preview/browser/components/Canvas.svelte +1058 -0
  299. package/frontend/lib/components/preview/browser/components/ConsolePanel.svelte +757 -0
  300. package/frontend/lib/components/preview/browser/components/Container.svelte +450 -0
  301. package/frontend/lib/components/preview/browser/components/ContextMenu.svelte +236 -0
  302. package/frontend/lib/components/preview/browser/components/SelectDropdown.svelte +224 -0
  303. package/frontend/lib/components/preview/browser/components/Toolbar.svelte +339 -0
  304. package/frontend/lib/components/preview/browser/components/VirtualCursor.svelte +36 -0
  305. package/frontend/lib/components/preview/browser/core/cleanup.svelte.ts +155 -0
  306. package/frontend/lib/components/preview/browser/core/coordinator.svelte.ts +837 -0
  307. package/frontend/lib/components/preview/browser/core/interactions.svelte.ts +113 -0
  308. package/frontend/lib/components/preview/browser/core/mcp-handlers.svelte.ts +296 -0
  309. package/frontend/lib/components/preview/browser/core/native-ui-handlers.svelte.ts +391 -0
  310. package/frontend/lib/components/preview/browser/core/stream-handler.svelte.ts +231 -0
  311. package/frontend/lib/components/preview/browser/core/tab-manager.svelte.ts +210 -0
  312. package/frontend/lib/components/preview/browser/core/tab-operations.svelte.ts +239 -0
  313. package/frontend/lib/components/preview/index.ts +2 -0
  314. package/frontend/lib/components/settings/SettingsModal.svelte +235 -0
  315. package/frontend/lib/components/settings/SettingsView.svelte +36 -0
  316. package/frontend/lib/components/settings/appearance/AppearanceSettings.svelte +51 -0
  317. package/frontend/lib/components/settings/appearance/LayoutPresetSettings.svelte +160 -0
  318. package/frontend/lib/components/settings/appearance/LayoutPreview.svelte +76 -0
  319. package/frontend/lib/components/settings/engines/AIEnginesSettings.svelte +917 -0
  320. package/frontend/lib/components/settings/general/AdvancedSettings.svelte +187 -0
  321. package/frontend/lib/components/settings/general/DataManagementSettings.svelte +203 -0
  322. package/frontend/lib/components/settings/general/GeneralSettings.svelte +10 -0
  323. package/frontend/lib/components/settings/model/ModelSettings.svelte +357 -0
  324. package/frontend/lib/components/settings/notifications/NotificationSettings.svelte +205 -0
  325. package/frontend/lib/components/settings/user/UserSettings.svelte +197 -0
  326. package/frontend/lib/components/terminal/Terminal.svelte +368 -0
  327. package/frontend/lib/components/terminal/TerminalTabs.svelte +87 -0
  328. package/frontend/lib/components/terminal/TerminalView.svelte +55 -0
  329. package/frontend/lib/components/tunnel/TunnelActive.svelte +142 -0
  330. package/frontend/lib/components/tunnel/TunnelButton.svelte +54 -0
  331. package/frontend/lib/components/tunnel/TunnelInactive.svelte +284 -0
  332. package/frontend/lib/components/tunnel/TunnelModal.svelte +47 -0
  333. package/frontend/lib/components/tunnel/TunnelQRCode.svelte +49 -0
  334. package/frontend/lib/components/workspace/DesktopNavigator.svelte +382 -0
  335. package/frontend/lib/components/workspace/MobileNavigator.svelte +403 -0
  336. package/frontend/lib/components/workspace/PanelContainer.svelte +100 -0
  337. package/frontend/lib/components/workspace/PanelHeader.svelte +505 -0
  338. package/frontend/lib/components/workspace/ViewMenu.svelte +162 -0
  339. package/frontend/lib/components/workspace/WorkspaceLayout.svelte +169 -0
  340. package/frontend/lib/components/workspace/layout/DesktopLayout.svelte +15 -0
  341. package/frontend/lib/components/workspace/layout/MobileLayout.svelte +17 -0
  342. package/frontend/lib/components/workspace/layout/split-pane/Container.svelte +42 -0
  343. package/frontend/lib/components/workspace/layout/split-pane/Handle.svelte +85 -0
  344. package/frontend/lib/components/workspace/layout/split-pane/Layout.svelte +37 -0
  345. package/frontend/lib/components/workspace/panels/ChatPanel.svelte +274 -0
  346. package/frontend/lib/components/workspace/panels/FilesPanel.svelte +1261 -0
  347. package/frontend/lib/components/workspace/panels/GitPanel.svelte +1560 -0
  348. package/frontend/lib/components/workspace/panels/PreviewPanel.svelte +150 -0
  349. package/frontend/lib/components/workspace/panels/TerminalPanel.svelte +73 -0
  350. package/frontend/lib/constants/preview.ts +45 -0
  351. package/frontend/lib/services/chat/chat.service.ts +704 -0
  352. package/frontend/lib/services/chat/index.ts +7 -0
  353. package/frontend/lib/services/notification/global-stream-monitor.ts +86 -0
  354. package/frontend/lib/services/notification/index.ts +8 -0
  355. package/frontend/lib/services/notification/push.service.ts +144 -0
  356. package/frontend/lib/services/notification/sound.service.ts +127 -0
  357. package/frontend/lib/services/preview/browser/browser-console.service.ts +61 -0
  358. package/frontend/lib/services/preview/browser/browser-webcodecs.service.ts +1499 -0
  359. package/frontend/lib/services/preview/browser/mcp-integration.svelte.ts +67 -0
  360. package/frontend/lib/services/preview/index.ts +23 -0
  361. package/frontend/lib/services/project/index.ts +8 -0
  362. package/frontend/lib/services/project/status.service.ts +159 -0
  363. package/frontend/lib/services/snapshot/snapshot.service.ts +47 -0
  364. package/frontend/lib/services/terminal/background/index.ts +130 -0
  365. package/frontend/lib/services/terminal/background/session-restore.ts +274 -0
  366. package/frontend/lib/services/terminal/background/stream-manager.ts +286 -0
  367. package/frontend/lib/services/terminal/index.ts +14 -0
  368. package/frontend/lib/services/terminal/persistence.service.ts +260 -0
  369. package/frontend/lib/services/terminal/project.service.ts +953 -0
  370. package/frontend/lib/services/terminal/session.service.ts +364 -0
  371. package/frontend/lib/services/terminal/terminal.service.ts +369 -0
  372. package/frontend/lib/stores/core/app.svelte.ts +117 -0
  373. package/frontend/lib/stores/core/files.svelte.ts +73 -0
  374. package/frontend/lib/stores/core/presence.svelte.ts +48 -0
  375. package/frontend/lib/stores/core/projects.svelte.ts +317 -0
  376. package/frontend/lib/stores/core/sessions.svelte.ts +383 -0
  377. package/frontend/lib/stores/features/claude-accounts.svelte.ts +58 -0
  378. package/frontend/lib/stores/features/models.svelte.ts +89 -0
  379. package/frontend/lib/stores/features/settings.svelte.ts +87 -0
  380. package/frontend/lib/stores/features/terminal.svelte.ts +701 -0
  381. package/frontend/lib/stores/features/tunnel.svelte.ts +161 -0
  382. package/frontend/lib/stores/features/user.svelte.ts +96 -0
  383. package/frontend/lib/stores/ui/chat-input.svelte.ts +57 -0
  384. package/frontend/lib/stores/ui/chat-model.svelte.ts +61 -0
  385. package/frontend/lib/stores/ui/dialog.svelte.ts +59 -0
  386. package/frontend/lib/stores/ui/edit-mode.svelte.ts +214 -0
  387. package/frontend/lib/stores/ui/notification.svelte.ts +166 -0
  388. package/frontend/lib/stores/ui/settings-modal.svelte.ts +88 -0
  389. package/frontend/lib/stores/ui/theme.svelte.ts +179 -0
  390. package/frontend/lib/stores/ui/workspace.svelte.ts +754 -0
  391. package/frontend/lib/types/native-ui.ts +73 -0
  392. package/frontend/lib/utils/chat/date-separator.ts +39 -0
  393. package/frontend/lib/utils/chat/message-grouper.ts +219 -0
  394. package/frontend/lib/utils/chat/message-processor.ts +135 -0
  395. package/frontend/lib/utils/chat/tool-handler.ts +161 -0
  396. package/frontend/lib/utils/chat/virtual-scroll.svelte.ts +142 -0
  397. package/frontend/lib/utils/click-outside.ts +20 -0
  398. package/frontend/lib/utils/context-manager.ts +257 -0
  399. package/frontend/lib/utils/file-icon-mappings.ts +769 -0
  400. package/frontend/lib/utils/folder-icon-mappings.ts +1030 -0
  401. package/frontend/lib/utils/git-status.ts +68 -0
  402. package/frontend/lib/utils/platform.ts +113 -0
  403. package/frontend/lib/utils/port-check.ts +65 -0
  404. package/frontend/lib/utils/terminalFormatter.ts +207 -0
  405. package/frontend/lib/utils/theme.ts +6 -0
  406. package/frontend/lib/utils/tree-visualizer.ts +320 -0
  407. package/frontend/lib/utils/ws.ts +44 -0
  408. package/frontend/main.ts +13 -0
  409. package/index.html +70 -0
  410. package/package.json +111 -0
  411. package/scripts/generate-icons.ts +87 -0
  412. package/scripts/pre-publish-check.sh +142 -0
  413. package/scripts/setup-hooks.sh +134 -0
  414. package/scripts/validate-branch-name.sh +47 -0
  415. package/scripts/validate-commit-msg.sh +42 -0
  416. package/shared/constants/engines.ts +134 -0
  417. package/shared/types/database/connection.ts +16 -0
  418. package/shared/types/database/index.ts +6 -0
  419. package/shared/types/database/schema.ts +141 -0
  420. package/shared/types/engine/index.ts +45 -0
  421. package/shared/types/filesystem/index.ts +22 -0
  422. package/shared/types/git.ts +171 -0
  423. package/shared/types/messaging/index.ts +239 -0
  424. package/shared/types/messaging/tool.ts +526 -0
  425. package/shared/types/network/api.ts +18 -0
  426. package/shared/types/network/index.ts +5 -0
  427. package/shared/types/stores/app.ts +23 -0
  428. package/shared/types/stores/dialog.ts +21 -0
  429. package/shared/types/stores/index.ts +3 -0
  430. package/shared/types/stores/settings.ts +15 -0
  431. package/shared/types/terminal/index.ts +44 -0
  432. package/shared/types/ui/components.ts +61 -0
  433. package/shared/types/ui/icons.ts +23 -0
  434. package/shared/types/ui/index.ts +22 -0
  435. package/shared/types/ui/notifications.ts +14 -0
  436. package/shared/types/ui/theme.ts +12 -0
  437. package/shared/types/websocket/index.ts +43 -0
  438. package/shared/types/window.d.ts +13 -0
  439. package/shared/utils/anonymous-user.ts +168 -0
  440. package/shared/utils/async.ts +10 -0
  441. package/shared/utils/diff-calculator.ts +184 -0
  442. package/shared/utils/file-type-detection.ts +166 -0
  443. package/shared/utils/logger.ts +158 -0
  444. package/shared/utils/message-formatter.ts +79 -0
  445. package/shared/utils/path.ts +47 -0
  446. package/shared/utils/ws-client.ts +768 -0
  447. package/shared/utils/ws-server.ts +660 -0
  448. package/static/audio/notification.ogg +0 -0
  449. package/static/favicon.svg +8 -0
  450. package/static/fonts/dm-sans/dm-sans-italic-latin-ext.woff2 +0 -0
  451. package/static/fonts/dm-sans/dm-sans-italic-latin.woff2 +0 -0
  452. package/static/fonts/dm-sans/dm-sans-normal-latin-ext.woff2 +0 -0
  453. package/static/fonts/dm-sans/dm-sans-normal-latin.woff2 +0 -0
  454. package/static/fonts/dm-sans.css +96 -0
  455. package/svelte.config.js +20 -0
  456. package/vite.config.ts +33 -0
@@ -0,0 +1,1082 @@
1
+ // AUTO-GENERATED FILE: All Material Icon Theme Icons (1068 icons)
2
+ // Generated by generate-icons.ts
3
+ // DO NOT EDIT MANUALLY
4
+
5
+ import materialIcons from '@iconify-json/material-icon-theme/icons.json';
6
+
7
+ // Type the icons object properly
8
+ const icons = materialIcons.icons as Record<string, { body: string; width?: number; height?: number; top?: number }>;
9
+
10
+ // Registry mapping for Icon.svelte
11
+ export const materialIconRegistry = {
12
+ 'material:3d': icons['3d'],
13
+ 'material:abap': icons['abap'],
14
+ 'material:abc': icons['abc'],
15
+ 'material:actionscript': icons['actionscript'],
16
+ 'material:ada': icons['ada'],
17
+ 'material:adobe-illustrator': icons['adobe-illustrator'],
18
+ 'material:adobe-illustrator-light': icons['adobe-illustrator-light'],
19
+ 'material:adobe-photoshop': icons['adobe-photoshop'],
20
+ 'material:adobe-photoshop-light': icons['adobe-photoshop-light'],
21
+ 'material:adobe-swc': icons['adobe-swc'],
22
+ 'material:adonis': icons['adonis'],
23
+ 'material:advpl': icons['advpl'],
24
+ 'material:amplify': icons['amplify'],
25
+ 'material:android': icons['android'],
26
+ 'material:angular': icons['angular'],
27
+ 'material:antlr': icons['antlr'],
28
+ 'material:apiblueprint': icons['apiblueprint'],
29
+ 'material:apollo': icons['apollo'],
30
+ 'material:applescript': icons['applescript'],
31
+ 'material:apps-script': icons['apps-script'],
32
+ 'material:appveyor': icons['appveyor'],
33
+ 'material:architecture': icons['architecture'],
34
+ 'material:arduino': icons['arduino'],
35
+ 'material:asciidoc': icons['asciidoc'],
36
+ 'material:assembly': icons['assembly'],
37
+ 'material:astro': icons['astro'],
38
+ 'material:astro-config': icons['astro-config'],
39
+ 'material:astyle': icons['astyle'],
40
+ 'material:audio': icons['audio'],
41
+ 'material:aurelia': icons['aurelia'],
42
+ 'material:authors': icons['authors'],
43
+ 'material:auto': icons['auto'],
44
+ 'material:auto-light': icons['auto-light'],
45
+ 'material:autohotkey': icons['autohotkey'],
46
+ 'material:autoit': icons['autoit'],
47
+ 'material:azure': icons['azure'],
48
+ 'material:azure-pipelines': icons['azure-pipelines'],
49
+ 'material:babel': icons['babel'],
50
+ 'material:ballerina': icons['ballerina'],
51
+ 'material:bazel': icons['bazel'],
52
+ 'material:bbx': icons['bbx'],
53
+ 'material:beancount': icons['beancount'],
54
+ 'material:bench-js': icons['bench-js'],
55
+ 'material:bench-jsx': icons['bench-jsx'],
56
+ 'material:bench-ts': icons['bench-ts'],
57
+ 'material:bibliography': icons['bibliography'],
58
+ 'material:bibtex-style': icons['bibtex-style'],
59
+ 'material:bicep': icons['bicep'],
60
+ 'material:biome': icons['biome'],
61
+ 'material:bitbucket': icons['bitbucket'],
62
+ 'material:bithound': icons['bithound'],
63
+ 'material:blender': icons['blender'],
64
+ 'material:blink': icons['blink'],
65
+ 'material:blink-light': icons['blink-light'],
66
+ 'material:blitz': icons['blitz'],
67
+ 'material:bower': icons['bower'],
68
+ 'material:brainfuck': icons['brainfuck'],
69
+ 'material:browserlist': icons['browserlist'],
70
+ 'material:browserlist-light': icons['browserlist-light'],
71
+ 'material:bruno': icons['bruno'],
72
+ 'material:buck': icons['buck'],
73
+ 'material:bucklescript': icons['bucklescript'],
74
+ 'material:buildkite': icons['buildkite'],
75
+ 'material:bun': icons['bun'],
76
+ 'material:bun-light': icons['bun-light'],
77
+ 'material:c': icons['c'],
78
+ 'material:c3': icons['c3'],
79
+ 'material:cabal': icons['cabal'],
80
+ 'material:caddy': icons['caddy'],
81
+ 'material:cadence': icons['cadence'],
82
+ 'material:cairo': icons['cairo'],
83
+ 'material:cake': icons['cake'],
84
+ 'material:capacitor': icons['capacitor'],
85
+ 'material:capnp': icons['capnp'],
86
+ 'material:cbx': icons['cbx'],
87
+ 'material:cds': icons['cds'],
88
+ 'material:certificate': icons['certificate'],
89
+ 'material:changelog': icons['changelog'],
90
+ 'material:chess': icons['chess'],
91
+ 'material:chess-light': icons['chess-light'],
92
+ 'material:chrome': icons['chrome'],
93
+ 'material:circleci': icons['circleci'],
94
+ 'material:circleci-light': icons['circleci-light'],
95
+ 'material:citation': icons['citation'],
96
+ 'material:clangd': icons['clangd'],
97
+ 'material:cline': icons['cline'],
98
+ 'material:clojure': icons['clojure'],
99
+ 'material:cloudfoundry': icons['cloudfoundry'],
100
+ 'material:cmake': icons['cmake'],
101
+ 'material:coala': icons['coala'],
102
+ 'material:cobol': icons['cobol'],
103
+ 'material:coconut': icons['coconut'],
104
+ 'material:code-climate': icons['code-climate'],
105
+ 'material:code-climate-light': icons['code-climate-light'],
106
+ 'material:codecov': icons['codecov'],
107
+ 'material:codeowners': icons['codeowners'],
108
+ 'material:coderabbit-ai': icons['coderabbit-ai'],
109
+ 'material:coffee': icons['coffee'],
110
+ 'material:coldfusion': icons['coldfusion'],
111
+ 'material:coloredpetrinets': icons['coloredpetrinets'],
112
+ 'material:command': icons['command'],
113
+ 'material:commitizen': icons['commitizen'],
114
+ 'material:commitlint': icons['commitlint'],
115
+ 'material:concourse': icons['concourse'],
116
+ 'material:conduct': icons['conduct'],
117
+ 'material:console': icons['console'],
118
+ 'material:contentlayer': icons['contentlayer'],
119
+ 'material:context': icons['context'],
120
+ 'material:contributing': icons['contributing'],
121
+ 'material:controller': icons['controller'],
122
+ 'material:copilot': icons['copilot'],
123
+ 'material:copilot-light': icons['copilot-light'],
124
+ 'material:cpp': icons['cpp'],
125
+ 'material:craco': icons['craco'],
126
+ 'material:credits': icons['credits'],
127
+ 'material:crystal': icons['crystal'],
128
+ 'material:crystal-light': icons['crystal-light'],
129
+ 'material:csharp': icons['csharp'],
130
+ 'material:css': icons['css'],
131
+ 'material:css-map': icons['css-map'],
132
+ 'material:cucumber': icons['cucumber'],
133
+ 'material:cuda': icons['cuda'],
134
+ 'material:cypress': icons['cypress'],
135
+ 'material:d': icons['d'],
136
+ 'material:dart': icons['dart'],
137
+ 'material:dart-generated': icons['dart-generated'],
138
+ 'material:database': icons['database'],
139
+ 'material:deepsource': icons['deepsource'],
140
+ 'material:denizenscript': icons['denizenscript'],
141
+ 'material:deno': icons['deno'],
142
+ 'material:deno-light': icons['deno-light'],
143
+ 'material:dependabot': icons['dependabot'],
144
+ 'material:dependencies-update': icons['dependencies-update'],
145
+ 'material:dhall': icons['dhall'],
146
+ 'material:diff': icons['diff'],
147
+ 'material:dinophp': icons['dinophp'],
148
+ 'material:disc': icons['disc'],
149
+ 'material:django': icons['django'],
150
+ 'material:dll': icons['dll'],
151
+ 'material:docker': icons['docker'],
152
+ 'material:doctex-installer': icons['doctex-installer'],
153
+ 'material:document': icons['document'],
154
+ 'material:dotjs': icons['dotjs'],
155
+ 'material:drawio': icons['drawio'],
156
+ 'material:drizzle': icons['drizzle'],
157
+ 'material:drone': icons['drone'],
158
+ 'material:drone-light': icons['drone-light'],
159
+ 'material:duc': icons['duc'],
160
+ 'material:dune': icons['dune'],
161
+ 'material:edge': icons['edge'],
162
+ 'material:editorconfig': icons['editorconfig'],
163
+ 'material:ejs': icons['ejs'],
164
+ 'material:elixir': icons['elixir'],
165
+ 'material:elm': icons['elm'],
166
+ 'material:email': icons['email'],
167
+ 'material:ember': icons['ember'],
168
+ 'material:epub': icons['epub'],
169
+ 'material:erlang': icons['erlang'],
170
+ 'material:esbuild': icons['esbuild'],
171
+ 'material:eslint': icons['eslint'],
172
+ 'material:excalidraw': icons['excalidraw'],
173
+ 'material:exe': icons['exe'],
174
+ 'material:fastlane': icons['fastlane'],
175
+ 'material:favicon': icons['favicon'],
176
+ 'material:figma': icons['figma'],
177
+ 'material:firebase': icons['firebase'],
178
+ 'material:flash': icons['flash'],
179
+ 'material:flow': icons['flow'],
180
+ 'material:folder-admin': icons['folder-admin'],
181
+ 'material:folder-admin-open': icons['folder-admin-open'],
182
+ 'material:folder-android': icons['folder-android'],
183
+ 'material:folder-android-open': icons['folder-android-open'],
184
+ 'material:folder-angular': icons['folder-angular'],
185
+ 'material:folder-angular-open': icons['folder-angular-open'],
186
+ 'material:folder-animation': icons['folder-animation'],
187
+ 'material:folder-animation-open': icons['folder-animation-open'],
188
+ 'material:folder-ansible': icons['folder-ansible'],
189
+ 'material:folder-ansible-open': icons['folder-ansible-open'],
190
+ 'material:folder-api': icons['folder-api'],
191
+ 'material:folder-api-open': icons['folder-api-open'],
192
+ 'material:folder-apollo': icons['folder-apollo'],
193
+ 'material:folder-apollo-open': icons['folder-apollo-open'],
194
+ 'material:folder-app': icons['folder-app'],
195
+ 'material:folder-app-open': icons['folder-app-open'],
196
+ 'material:folder-archive': icons['folder-archive'],
197
+ 'material:folder-archive-open': icons['folder-archive-open'],
198
+ 'material:folder-astro': icons['folder-astro'],
199
+ 'material:folder-astro-open': icons['folder-astro-open'],
200
+ 'material:folder-atom': icons['folder-atom'],
201
+ 'material:folder-atom-open': icons['folder-atom-open'],
202
+ 'material:folder-attachment': icons['folder-attachment'],
203
+ 'material:folder-attachment-open': icons['folder-attachment-open'],
204
+ 'material:folder-audio': icons['folder-audio'],
205
+ 'material:folder-audio-open': icons['folder-audio-open'],
206
+ 'material:folder-aurelia': icons['folder-aurelia'],
207
+ 'material:folder-aurelia-open': icons['folder-aurelia-open'],
208
+ 'material:folder-aws': icons['folder-aws'],
209
+ 'material:folder-aws-open': icons['folder-aws-open'],
210
+ 'material:folder-azure-pipelines': icons['folder-azure-pipelines'],
211
+ 'material:folder-azure-pipelines-open': icons['folder-azure-pipelines-open'],
212
+ 'material:folder-backup': icons['folder-backup'],
213
+ 'material:folder-backup-open': icons['folder-backup-open'],
214
+ 'material:folder-base': icons['folder-base'],
215
+ 'material:folder-base-open': icons['folder-base-open'],
216
+ 'material:folder-batch': icons['folder-batch'],
217
+ 'material:folder-batch-open': icons['folder-batch-open'],
218
+ 'material:folder-benchmark': icons['folder-benchmark'],
219
+ 'material:folder-benchmark-open': icons['folder-benchmark-open'],
220
+ 'material:folder-bibliography': icons['folder-bibliography'],
221
+ 'material:folder-bibliography-open': icons['folder-bibliography-open'],
222
+ 'material:folder-bicep': icons['folder-bicep'],
223
+ 'material:folder-bicep-open': icons['folder-bicep-open'],
224
+ 'material:folder-blender': icons['folder-blender'],
225
+ 'material:folder-blender-open': icons['folder-blender-open'],
226
+ 'material:folder-bloc': icons['folder-bloc'],
227
+ 'material:folder-bloc-open': icons['folder-bloc-open'],
228
+ 'material:folder-bower': icons['folder-bower'],
229
+ 'material:folder-bower-open': icons['folder-bower-open'],
230
+ 'material:folder-buildkite': icons['folder-buildkite'],
231
+ 'material:folder-buildkite-open': icons['folder-buildkite-open'],
232
+ 'material:folder-cart': icons['folder-cart'],
233
+ 'material:folder-cart-open': icons['folder-cart-open'],
234
+ 'material:folder-changesets': icons['folder-changesets'],
235
+ 'material:folder-changesets-open': icons['folder-changesets-open'],
236
+ 'material:folder-ci': icons['folder-ci'],
237
+ 'material:folder-ci-open': icons['folder-ci-open'],
238
+ 'material:folder-circleci': icons['folder-circleci'],
239
+ 'material:folder-circleci-open': icons['folder-circleci-open'],
240
+ 'material:folder-class': icons['folder-class'],
241
+ 'material:folder-class-open': icons['folder-class-open'],
242
+ 'material:folder-client': icons['folder-client'],
243
+ 'material:folder-client-open': icons['folder-client-open'],
244
+ 'material:folder-cline': icons['folder-cline'],
245
+ 'material:folder-cline-open': icons['folder-cline-open'],
246
+ 'material:folder-cloud-functions': icons['folder-cloud-functions'],
247
+ 'material:folder-cloud-functions-open': icons['folder-cloud-functions-open'],
248
+ 'material:folder-cloudflare': icons['folder-cloudflare'],
249
+ 'material:folder-cloudflare-open': icons['folder-cloudflare-open'],
250
+ 'material:folder-cluster': icons['folder-cluster'],
251
+ 'material:folder-cluster-open': icons['folder-cluster-open'],
252
+ 'material:folder-cobol': icons['folder-cobol'],
253
+ 'material:folder-cobol-open': icons['folder-cobol-open'],
254
+ 'material:folder-command': icons['folder-command'],
255
+ 'material:folder-command-open': icons['folder-command-open'],
256
+ 'material:folder-components': icons['folder-components'],
257
+ 'material:folder-components-open': icons['folder-components-open'],
258
+ 'material:folder-config': icons['folder-config'],
259
+ 'material:folder-config-open': icons['folder-config-open'],
260
+ 'material:folder-connection': icons['folder-connection'],
261
+ 'material:folder-connection-open': icons['folder-connection-open'],
262
+ 'material:folder-console': icons['folder-console'],
263
+ 'material:folder-console-open': icons['folder-console-open'],
264
+ 'material:folder-constant': icons['folder-constant'],
265
+ 'material:folder-constant-open': icons['folder-constant-open'],
266
+ 'material:folder-container': icons['folder-container'],
267
+ 'material:folder-container-open': icons['folder-container-open'],
268
+ 'material:folder-content': icons['folder-content'],
269
+ 'material:folder-content-open': icons['folder-content-open'],
270
+ 'material:folder-context': icons['folder-context'],
271
+ 'material:folder-context-open': icons['folder-context-open'],
272
+ 'material:folder-contract': icons['folder-contract'],
273
+ 'material:folder-contract-open': icons['folder-contract-open'],
274
+ 'material:folder-controller': icons['folder-controller'],
275
+ 'material:folder-controller-open': icons['folder-controller-open'],
276
+ 'material:folder-core': icons['folder-core'],
277
+ 'material:folder-core-open': icons['folder-core-open'],
278
+ 'material:folder-coverage': icons['folder-coverage'],
279
+ 'material:folder-coverage-open': icons['folder-coverage-open'],
280
+ 'material:folder-css': icons['folder-css'],
281
+ 'material:folder-css-open': icons['folder-css-open'],
282
+ 'material:folder-custom': icons['folder-custom'],
283
+ 'material:folder-custom-open': icons['folder-custom-open'],
284
+ 'material:folder-cypress': icons['folder-cypress'],
285
+ 'material:folder-cypress-open': icons['folder-cypress-open'],
286
+ 'material:folder-dart': icons['folder-dart'],
287
+ 'material:folder-dart-open': icons['folder-dart-open'],
288
+ 'material:folder-database': icons['folder-database'],
289
+ 'material:folder-database-open': icons['folder-database-open'],
290
+ 'material:folder-debug': icons['folder-debug'],
291
+ 'material:folder-debug-open': icons['folder-debug-open'],
292
+ 'material:folder-decorators': icons['folder-decorators'],
293
+ 'material:folder-decorators-open': icons['folder-decorators-open'],
294
+ 'material:folder-delta': icons['folder-delta'],
295
+ 'material:folder-delta-open': icons['folder-delta-open'],
296
+ 'material:folder-desktop': icons['folder-desktop'],
297
+ 'material:folder-desktop-open': icons['folder-desktop-open'],
298
+ 'material:folder-directive': icons['folder-directive'],
299
+ 'material:folder-directive-open': icons['folder-directive-open'],
300
+ 'material:folder-dist': icons['folder-dist'],
301
+ 'material:folder-dist-open': icons['folder-dist-open'],
302
+ 'material:folder-docker': icons['folder-docker'],
303
+ 'material:folder-docker-open': icons['folder-docker-open'],
304
+ 'material:folder-docs': icons['folder-docs'],
305
+ 'material:folder-docs-open': icons['folder-docs-open'],
306
+ 'material:folder-download': icons['folder-download'],
307
+ 'material:folder-download-open': icons['folder-download-open'],
308
+ 'material:folder-drizzle': icons['folder-drizzle'],
309
+ 'material:folder-drizzle-open': icons['folder-drizzle-open'],
310
+ 'material:folder-dump': icons['folder-dump'],
311
+ 'material:folder-dump-open': icons['folder-dump-open'],
312
+ 'material:folder-element': icons['folder-element'],
313
+ 'material:folder-element-open': icons['folder-element-open'],
314
+ 'material:folder-enum': icons['folder-enum'],
315
+ 'material:folder-enum-open': icons['folder-enum-open'],
316
+ 'material:folder-environment': icons['folder-environment'],
317
+ 'material:folder-environment-open': icons['folder-environment-open'],
318
+ 'material:folder-error': icons['folder-error'],
319
+ 'material:folder-error-open': icons['folder-error-open'],
320
+ 'material:folder-event': icons['folder-event'],
321
+ 'material:folder-event-open': icons['folder-event-open'],
322
+ 'material:folder-examples': icons['folder-examples'],
323
+ 'material:folder-examples-open': icons['folder-examples-open'],
324
+ 'material:folder-expo': icons['folder-expo'],
325
+ 'material:folder-expo-open': icons['folder-expo-open'],
326
+ 'material:folder-export': icons['folder-export'],
327
+ 'material:folder-export-open': icons['folder-export-open'],
328
+ 'material:folder-fastlane': icons['folder-fastlane'],
329
+ 'material:folder-fastlane-open': icons['folder-fastlane-open'],
330
+ 'material:folder-favicon': icons['folder-favicon'],
331
+ 'material:folder-favicon-open': icons['folder-favicon-open'],
332
+ 'material:folder-firebase': icons['folder-firebase'],
333
+ 'material:folder-firebase-open': icons['folder-firebase-open'],
334
+ 'material:folder-firestore': icons['folder-firestore'],
335
+ 'material:folder-firestore-open': icons['folder-firestore-open'],
336
+ 'material:folder-flow': icons['folder-flow'],
337
+ 'material:folder-flow-open': icons['folder-flow-open'],
338
+ 'material:folder-flutter': icons['folder-flutter'],
339
+ 'material:folder-flutter-open': icons['folder-flutter-open'],
340
+ 'material:folder-font': icons['folder-font'],
341
+ 'material:folder-font-open': icons['folder-font-open'],
342
+ 'material:folder-forgejo': icons['folder-forgejo'],
343
+ 'material:folder-forgejo-open': icons['folder-forgejo-open'],
344
+ 'material:folder-functions': icons['folder-functions'],
345
+ 'material:folder-functions-open': icons['folder-functions-open'],
346
+ 'material:folder-gamemaker': icons['folder-gamemaker'],
347
+ 'material:folder-gamemaker-open': icons['folder-gamemaker-open'],
348
+ 'material:folder-generator': icons['folder-generator'],
349
+ 'material:folder-generator-open': icons['folder-generator-open'],
350
+ 'material:folder-gh-workflows': icons['folder-gh-workflows'],
351
+ 'material:folder-gh-workflows-open': icons['folder-gh-workflows-open'],
352
+ 'material:folder-git': icons['folder-git'],
353
+ 'material:folder-git-open': icons['folder-git-open'],
354
+ 'material:folder-gitea': icons['folder-gitea'],
355
+ 'material:folder-gitea-open': icons['folder-gitea-open'],
356
+ 'material:folder-github': icons['folder-github'],
357
+ 'material:folder-github-open': icons['folder-github-open'],
358
+ 'material:folder-gitlab': icons['folder-gitlab'],
359
+ 'material:folder-gitlab-open': icons['folder-gitlab-open'],
360
+ 'material:folder-global': icons['folder-global'],
361
+ 'material:folder-global-open': icons['folder-global-open'],
362
+ 'material:folder-godot': icons['folder-godot'],
363
+ 'material:folder-godot-open': icons['folder-godot-open'],
364
+ 'material:folder-gradle': icons['folder-gradle'],
365
+ 'material:folder-gradle-open': icons['folder-gradle-open'],
366
+ 'material:folder-graphql': icons['folder-graphql'],
367
+ 'material:folder-graphql-open': icons['folder-graphql-open'],
368
+ 'material:folder-guard': icons['folder-guard'],
369
+ 'material:folder-guard-open': icons['folder-guard-open'],
370
+ 'material:folder-gulp': icons['folder-gulp'],
371
+ 'material:folder-gulp-open': icons['folder-gulp-open'],
372
+ 'material:folder-helm': icons['folder-helm'],
373
+ 'material:folder-helm-open': icons['folder-helm-open'],
374
+ 'material:folder-helper': icons['folder-helper'],
375
+ 'material:folder-helper-open': icons['folder-helper-open'],
376
+ 'material:folder-home': icons['folder-home'],
377
+ 'material:folder-home-open': icons['folder-home-open'],
378
+ 'material:folder-hook': icons['folder-hook'],
379
+ 'material:folder-hook-open': icons['folder-hook-open'],
380
+ 'material:folder-husky': icons['folder-husky'],
381
+ 'material:folder-husky-open': icons['folder-husky-open'],
382
+ 'material:folder-i18n': icons['folder-i18n'],
383
+ 'material:folder-i18n-open': icons['folder-i18n-open'],
384
+ 'material:folder-images': icons['folder-images'],
385
+ 'material:folder-images-open': icons['folder-images-open'],
386
+ 'material:folder-import': icons['folder-import'],
387
+ 'material:folder-import-open': icons['folder-import-open'],
388
+ 'material:folder-include': icons['folder-include'],
389
+ 'material:folder-include-open': icons['folder-include-open'],
390
+ 'material:folder-intellij': icons['folder-intellij'],
391
+ 'material:folder-intellij-light': icons['folder-intellij-light'],
392
+ 'material:folder-intellij-open': icons['folder-intellij-open'],
393
+ 'material:folder-intellij-open-light': icons['folder-intellij-open-light'],
394
+ 'material:folder-interface': icons['folder-interface'],
395
+ 'material:folder-interface-open': icons['folder-interface-open'],
396
+ 'material:folder-ios': icons['folder-ios'],
397
+ 'material:folder-ios-open': icons['folder-ios-open'],
398
+ 'material:folder-java': icons['folder-java'],
399
+ 'material:folder-java-open': icons['folder-java-open'],
400
+ 'material:folder-javascript': icons['folder-javascript'],
401
+ 'material:folder-javascript-open': icons['folder-javascript-open'],
402
+ 'material:folder-jinja': icons['folder-jinja'],
403
+ 'material:folder-jinja-light': icons['folder-jinja-light'],
404
+ 'material:folder-jinja-open': icons['folder-jinja-open'],
405
+ 'material:folder-jinja-open-light': icons['folder-jinja-open-light'],
406
+ 'material:folder-job': icons['folder-job'],
407
+ 'material:folder-job-open': icons['folder-job-open'],
408
+ 'material:folder-json': icons['folder-json'],
409
+ 'material:folder-json-open': icons['folder-json-open'],
410
+ 'material:folder-jupyter': icons['folder-jupyter'],
411
+ 'material:folder-jupyter-open': icons['folder-jupyter-open'],
412
+ 'material:folder-keys': icons['folder-keys'],
413
+ 'material:folder-keys-open': icons['folder-keys-open'],
414
+ 'material:folder-kubernetes': icons['folder-kubernetes'],
415
+ 'material:folder-kubernetes-open': icons['folder-kubernetes-open'],
416
+ 'material:folder-kusto': icons['folder-kusto'],
417
+ 'material:folder-kusto-open': icons['folder-kusto-open'],
418
+ 'material:folder-layout': icons['folder-layout'],
419
+ 'material:folder-layout-open': icons['folder-layout-open'],
420
+ 'material:folder-lefthook': icons['folder-lefthook'],
421
+ 'material:folder-lefthook-open': icons['folder-lefthook-open'],
422
+ 'material:folder-less': icons['folder-less'],
423
+ 'material:folder-less-open': icons['folder-less-open'],
424
+ 'material:folder-lib': icons['folder-lib'],
425
+ 'material:folder-lib-open': icons['folder-lib-open'],
426
+ 'material:folder-link': icons['folder-link'],
427
+ 'material:folder-link-open': icons['folder-link-open'],
428
+ 'material:folder-linux': icons['folder-linux'],
429
+ 'material:folder-linux-open': icons['folder-linux-open'],
430
+ 'material:folder-liquibase': icons['folder-liquibase'],
431
+ 'material:folder-liquibase-open': icons['folder-liquibase-open'],
432
+ 'material:folder-log': icons['folder-log'],
433
+ 'material:folder-log-open': icons['folder-log-open'],
434
+ 'material:folder-lottie': icons['folder-lottie'],
435
+ 'material:folder-lottie-open': icons['folder-lottie-open'],
436
+ 'material:folder-lua': icons['folder-lua'],
437
+ 'material:folder-lua-open': icons['folder-lua-open'],
438
+ 'material:folder-luau': icons['folder-luau'],
439
+ 'material:folder-luau-open': icons['folder-luau-open'],
440
+ 'material:folder-macos': icons['folder-macos'],
441
+ 'material:folder-macos-open': icons['folder-macos-open'],
442
+ 'material:folder-mail': icons['folder-mail'],
443
+ 'material:folder-mail-open': icons['folder-mail-open'],
444
+ 'material:folder-mappings': icons['folder-mappings'],
445
+ 'material:folder-mappings-open': icons['folder-mappings-open'],
446
+ 'material:folder-markdown': icons['folder-markdown'],
447
+ 'material:folder-markdown-open': icons['folder-markdown-open'],
448
+ 'material:folder-mercurial': icons['folder-mercurial'],
449
+ 'material:folder-mercurial-open': icons['folder-mercurial-open'],
450
+ 'material:folder-messages': icons['folder-messages'],
451
+ 'material:folder-messages-open': icons['folder-messages-open'],
452
+ 'material:folder-meta': icons['folder-meta'],
453
+ 'material:folder-meta-open': icons['folder-meta-open'],
454
+ 'material:folder-middleware': icons['folder-middleware'],
455
+ 'material:folder-middleware-open': icons['folder-middleware-open'],
456
+ 'material:folder-mjml': icons['folder-mjml'],
457
+ 'material:folder-mjml-open': icons['folder-mjml-open'],
458
+ 'material:folder-mobile': icons['folder-mobile'],
459
+ 'material:folder-mobile-open': icons['folder-mobile-open'],
460
+ 'material:folder-mock': icons['folder-mock'],
461
+ 'material:folder-mock-open': icons['folder-mock-open'],
462
+ 'material:folder-mojo': icons['folder-mojo'],
463
+ 'material:folder-mojo-open': icons['folder-mojo-open'],
464
+ 'material:folder-molecule': icons['folder-molecule'],
465
+ 'material:folder-molecule-open': icons['folder-molecule-open'],
466
+ 'material:folder-moon': icons['folder-moon'],
467
+ 'material:folder-moon-open': icons['folder-moon-open'],
468
+ 'material:folder-netlify': icons['folder-netlify'],
469
+ 'material:folder-netlify-open': icons['folder-netlify-open'],
470
+ 'material:folder-next': icons['folder-next'],
471
+ 'material:folder-next-open': icons['folder-next-open'],
472
+ 'material:folder-ngrx-store': icons['folder-ngrx-store'],
473
+ 'material:folder-ngrx-store-open': icons['folder-ngrx-store-open'],
474
+ 'material:folder-node': icons['folder-node'],
475
+ 'material:folder-node-open': icons['folder-node-open'],
476
+ 'material:folder-nuxt': icons['folder-nuxt'],
477
+ 'material:folder-nuxt-open': icons['folder-nuxt-open'],
478
+ 'material:folder-obsidian': icons['folder-obsidian'],
479
+ 'material:folder-obsidian-open': icons['folder-obsidian-open'],
480
+ 'material:folder-organism': icons['folder-organism'],
481
+ 'material:folder-organism-open': icons['folder-organism-open'],
482
+ 'material:folder-other': icons['folder-other'],
483
+ 'material:folder-other-open': icons['folder-other-open'],
484
+ 'material:folder-packages': icons['folder-packages'],
485
+ 'material:folder-packages-open': icons['folder-packages-open'],
486
+ 'material:folder-pdf': icons['folder-pdf'],
487
+ 'material:folder-pdf-open': icons['folder-pdf-open'],
488
+ 'material:folder-pdm': icons['folder-pdm'],
489
+ 'material:folder-pdm-open': icons['folder-pdm-open'],
490
+ 'material:folder-php': icons['folder-php'],
491
+ 'material:folder-php-open': icons['folder-php-open'],
492
+ 'material:folder-phpmailer': icons['folder-phpmailer'],
493
+ 'material:folder-phpmailer-open': icons['folder-phpmailer-open'],
494
+ 'material:folder-pipe': icons['folder-pipe'],
495
+ 'material:folder-pipe-open': icons['folder-pipe-open'],
496
+ 'material:folder-plastic': icons['folder-plastic'],
497
+ 'material:folder-plastic-open': icons['folder-plastic-open'],
498
+ 'material:folder-plugin': icons['folder-plugin'],
499
+ 'material:folder-plugin-open': icons['folder-plugin-open'],
500
+ 'material:folder-policy': icons['folder-policy'],
501
+ 'material:folder-policy-open': icons['folder-policy-open'],
502
+ 'material:folder-powershell': icons['folder-powershell'],
503
+ 'material:folder-powershell-open': icons['folder-powershell-open'],
504
+ 'material:folder-prisma': icons['folder-prisma'],
505
+ 'material:folder-prisma-open': icons['folder-prisma-open'],
506
+ 'material:folder-private': icons['folder-private'],
507
+ 'material:folder-private-open': icons['folder-private-open'],
508
+ 'material:folder-project': icons['folder-project'],
509
+ 'material:folder-project-open': icons['folder-project-open'],
510
+ 'material:folder-proto': icons['folder-proto'],
511
+ 'material:folder-proto-open': icons['folder-proto-open'],
512
+ 'material:folder-public': icons['folder-public'],
513
+ 'material:folder-public-open': icons['folder-public-open'],
514
+ 'material:folder-python': icons['folder-python'],
515
+ 'material:folder-python-open': icons['folder-python-open'],
516
+ 'material:folder-pytorch': icons['folder-pytorch'],
517
+ 'material:folder-pytorch-open': icons['folder-pytorch-open'],
518
+ 'material:folder-quasar': icons['folder-quasar'],
519
+ 'material:folder-quasar-open': icons['folder-quasar-open'],
520
+ 'material:folder-queue': icons['folder-queue'],
521
+ 'material:folder-queue-open': icons['folder-queue-open'],
522
+ 'material:folder-react-components': icons['folder-react-components'],
523
+ 'material:folder-react-components-open': icons['folder-react-components-open'],
524
+ 'material:folder-redux-reducer': icons['folder-redux-reducer'],
525
+ 'material:folder-redux-reducer-open': icons['folder-redux-reducer-open'],
526
+ 'material:folder-repository': icons['folder-repository'],
527
+ 'material:folder-repository-open': icons['folder-repository-open'],
528
+ 'material:folder-resolver': icons['folder-resolver'],
529
+ 'material:folder-resolver-open': icons['folder-resolver-open'],
530
+ 'material:folder-resource': icons['folder-resource'],
531
+ 'material:folder-resource-open': icons['folder-resource-open'],
532
+ 'material:folder-review': icons['folder-review'],
533
+ 'material:folder-review-open': icons['folder-review-open'],
534
+ 'material:folder-robot': icons['folder-robot'],
535
+ 'material:folder-robot-open': icons['folder-robot-open'],
536
+ 'material:folder-routes': icons['folder-routes'],
537
+ 'material:folder-routes-open': icons['folder-routes-open'],
538
+ 'material:folder-rules': icons['folder-rules'],
539
+ 'material:folder-rules-open': icons['folder-rules-open'],
540
+ 'material:folder-rust': icons['folder-rust'],
541
+ 'material:folder-rust-open': icons['folder-rust-open'],
542
+ 'material:folder-sandbox': icons['folder-sandbox'],
543
+ 'material:folder-sandbox-open': icons['folder-sandbox-open'],
544
+ 'material:folder-sass': icons['folder-sass'],
545
+ 'material:folder-sass-open': icons['folder-sass-open'],
546
+ 'material:folder-scala': icons['folder-scala'],
547
+ 'material:folder-scala-open': icons['folder-scala-open'],
548
+ 'material:folder-scons': icons['folder-scons'],
549
+ 'material:folder-scons-open': icons['folder-scons-open'],
550
+ 'material:folder-scripts': icons['folder-scripts'],
551
+ 'material:folder-scripts-open': icons['folder-scripts-open'],
552
+ 'material:folder-secure': icons['folder-secure'],
553
+ 'material:folder-secure-open': icons['folder-secure-open'],
554
+ 'material:folder-seeders': icons['folder-seeders'],
555
+ 'material:folder-seeders-open': icons['folder-seeders-open'],
556
+ 'material:folder-server': icons['folder-server'],
557
+ 'material:folder-server-open': icons['folder-server-open'],
558
+ 'material:folder-serverless': icons['folder-serverless'],
559
+ 'material:folder-serverless-open': icons['folder-serverless-open'],
560
+ 'material:folder-shader': icons['folder-shader'],
561
+ 'material:folder-shader-open': icons['folder-shader-open'],
562
+ 'material:folder-shared': icons['folder-shared'],
563
+ 'material:folder-shared-open': icons['folder-shared-open'],
564
+ 'material:folder-snapcraft': icons['folder-snapcraft'],
565
+ 'material:folder-snapcraft-open': icons['folder-snapcraft-open'],
566
+ 'material:folder-snippet': icons['folder-snippet'],
567
+ 'material:folder-snippet-open': icons['folder-snippet-open'],
568
+ 'material:folder-src': icons['folder-src'],
569
+ 'material:folder-src-open': icons['folder-src-open'],
570
+ 'material:folder-src-tauri': icons['folder-src-tauri'],
571
+ 'material:folder-src-tauri-open': icons['folder-src-tauri-open'],
572
+ 'material:folder-stack': icons['folder-stack'],
573
+ 'material:folder-stack-open': icons['folder-stack-open'],
574
+ 'material:folder-stencil': icons['folder-stencil'],
575
+ 'material:folder-stencil-open': icons['folder-stencil-open'],
576
+ 'material:folder-store': icons['folder-store'],
577
+ 'material:folder-store-open': icons['folder-store-open'],
578
+ 'material:folder-storybook': icons['folder-storybook'],
579
+ 'material:folder-storybook-open': icons['folder-storybook-open'],
580
+ 'material:folder-stylus': icons['folder-stylus'],
581
+ 'material:folder-stylus-open': icons['folder-stylus-open'],
582
+ 'material:folder-sublime': icons['folder-sublime'],
583
+ 'material:folder-sublime-open': icons['folder-sublime-open'],
584
+ 'material:folder-supabase': icons['folder-supabase'],
585
+ 'material:folder-supabase-open': icons['folder-supabase-open'],
586
+ 'material:folder-svelte': icons['folder-svelte'],
587
+ 'material:folder-svelte-open': icons['folder-svelte-open'],
588
+ 'material:folder-svg': icons['folder-svg'],
589
+ 'material:folder-svg-open': icons['folder-svg-open'],
590
+ 'material:folder-syntax': icons['folder-syntax'],
591
+ 'material:folder-syntax-open': icons['folder-syntax-open'],
592
+ 'material:folder-target': icons['folder-target'],
593
+ 'material:folder-target-open': icons['folder-target-open'],
594
+ 'material:folder-taskfile': icons['folder-taskfile'],
595
+ 'material:folder-taskfile-open': icons['folder-taskfile-open'],
596
+ 'material:folder-tasks': icons['folder-tasks'],
597
+ 'material:folder-tasks-open': icons['folder-tasks-open'],
598
+ 'material:folder-television': icons['folder-television'],
599
+ 'material:folder-television-open': icons['folder-television-open'],
600
+ 'material:folder-temp': icons['folder-temp'],
601
+ 'material:folder-temp-open': icons['folder-temp-open'],
602
+ 'material:folder-template': icons['folder-template'],
603
+ 'material:folder-template-open': icons['folder-template-open'],
604
+ 'material:folder-terraform': icons['folder-terraform'],
605
+ 'material:folder-terraform-open': icons['folder-terraform-open'],
606
+ 'material:folder-test': icons['folder-test'],
607
+ 'material:folder-test-open': icons['folder-test-open'],
608
+ 'material:folder-theme': icons['folder-theme'],
609
+ 'material:folder-theme-open': icons['folder-theme-open'],
610
+ 'material:folder-tools': icons['folder-tools'],
611
+ 'material:folder-tools-open': icons['folder-tools-open'],
612
+ 'material:folder-trash': icons['folder-trash'],
613
+ 'material:folder-trash-open': icons['folder-trash-open'],
614
+ 'material:folder-trigger': icons['folder-trigger'],
615
+ 'material:folder-trigger-open': icons['folder-trigger-open'],
616
+ 'material:folder-turborepo': icons['folder-turborepo'],
617
+ 'material:folder-turborepo-open': icons['folder-turborepo-open'],
618
+ 'material:folder-typescript': icons['folder-typescript'],
619
+ 'material:folder-typescript-open': icons['folder-typescript-open'],
620
+ 'material:folder-ui': icons['folder-ui'],
621
+ 'material:folder-ui-open': icons['folder-ui-open'],
622
+ 'material:folder-unity': icons['folder-unity'],
623
+ 'material:folder-unity-open': icons['folder-unity-open'],
624
+ 'material:folder-update': icons['folder-update'],
625
+ 'material:folder-update-open': icons['folder-update-open'],
626
+ 'material:folder-upload': icons['folder-upload'],
627
+ 'material:folder-upload-open': icons['folder-upload-open'],
628
+ 'material:folder-utils': icons['folder-utils'],
629
+ 'material:folder-utils-open': icons['folder-utils-open'],
630
+ 'material:folder-vercel': icons['folder-vercel'],
631
+ 'material:folder-vercel-open': icons['folder-vercel-open'],
632
+ 'material:folder-verdaccio': icons['folder-verdaccio'],
633
+ 'material:folder-verdaccio-open': icons['folder-verdaccio-open'],
634
+ 'material:folder-video': icons['folder-video'],
635
+ 'material:folder-video-open': icons['folder-video-open'],
636
+ 'material:folder-views': icons['folder-views'],
637
+ 'material:folder-views-open': icons['folder-views-open'],
638
+ 'material:folder-vm': icons['folder-vm'],
639
+ 'material:folder-vm-open': icons['folder-vm-open'],
640
+ 'material:folder-vscode': icons['folder-vscode'],
641
+ 'material:folder-vscode-open': icons['folder-vscode-open'],
642
+ 'material:folder-vue': icons['folder-vue'],
643
+ 'material:folder-vue-directives': icons['folder-vue-directives'],
644
+ 'material:folder-vue-directives-open': icons['folder-vue-directives-open'],
645
+ 'material:folder-vue-open': icons['folder-vue-open'],
646
+ 'material:folder-vuepress': icons['folder-vuepress'],
647
+ 'material:folder-vuepress-open': icons['folder-vuepress-open'],
648
+ 'material:folder-vuex-store': icons['folder-vuex-store'],
649
+ 'material:folder-vuex-store-open': icons['folder-vuex-store-open'],
650
+ 'material:folder-wakatime': icons['folder-wakatime'],
651
+ 'material:folder-wakatime-open': icons['folder-wakatime-open'],
652
+ 'material:folder-webpack': icons['folder-webpack'],
653
+ 'material:folder-webpack-open': icons['folder-webpack-open'],
654
+ 'material:folder-windows': icons['folder-windows'],
655
+ 'material:folder-windows-open': icons['folder-windows-open'],
656
+ 'material:folder-wordpress': icons['folder-wordpress'],
657
+ 'material:folder-wordpress-open': icons['folder-wordpress-open'],
658
+ 'material:folder-yarn': icons['folder-yarn'],
659
+ 'material:folder-yarn-open': icons['folder-yarn-open'],
660
+ 'material:folder-zeabur': icons['folder-zeabur'],
661
+ 'material:folder-zeabur-open': icons['folder-zeabur-open'],
662
+ 'material:font': icons['font'],
663
+ 'material:forth': icons['forth'],
664
+ 'material:fortran': icons['fortran'],
665
+ 'material:foxpro': icons['foxpro'],
666
+ 'material:freemarker': icons['freemarker'],
667
+ 'material:fsharp': icons['fsharp'],
668
+ 'material:fusebox': icons['fusebox'],
669
+ 'material:gamemaker': icons['gamemaker'],
670
+ 'material:garden': icons['garden'],
671
+ 'material:gatsby': icons['gatsby'],
672
+ 'material:gcp': icons['gcp'],
673
+ 'material:gemfile': icons['gemfile'],
674
+ 'material:gemini': icons['gemini'],
675
+ 'material:gemini-ai': icons['gemini-ai'],
676
+ 'material:git': icons['git'],
677
+ 'material:github-actions-workflow': icons['github-actions-workflow'],
678
+ 'material:github-sponsors': icons['github-sponsors'],
679
+ 'material:gitlab': icons['gitlab'],
680
+ 'material:gitpod': icons['gitpod'],
681
+ 'material:gleam': icons['gleam'],
682
+ 'material:gnuplot': icons['gnuplot'],
683
+ 'material:go': icons['go'],
684
+ 'material:go-gopher': icons['go-gopher'],
685
+ 'material:go-mod': icons['go-mod'],
686
+ 'material:godot': icons['godot'],
687
+ 'material:godot-assets': icons['godot-assets'],
688
+ 'material:gradle': icons['gradle'],
689
+ 'material:grafana-alloy': icons['grafana-alloy'],
690
+ 'material:grain': icons['grain'],
691
+ 'material:graphcool': icons['graphcool'],
692
+ 'material:graphql': icons['graphql'],
693
+ 'material:gridsome': icons['gridsome'],
694
+ 'material:groovy': icons['groovy'],
695
+ 'material:grunt': icons['grunt'],
696
+ 'material:gulp': icons['gulp'],
697
+ 'material:h': icons['h'],
698
+ 'material:hack': icons['hack'],
699
+ 'material:hadolint': icons['hadolint'],
700
+ 'material:haml': icons['haml'],
701
+ 'material:handlebars': icons['handlebars'],
702
+ 'material:hardhat': icons['hardhat'],
703
+ 'material:harmonix': icons['harmonix'],
704
+ 'material:haskell': icons['haskell'],
705
+ 'material:haxe': icons['haxe'],
706
+ 'material:hcl': icons['hcl'],
707
+ 'material:hcl-light': icons['hcl-light'],
708
+ 'material:helm': icons['helm'],
709
+ 'material:heroku': icons['heroku'],
710
+ 'material:hex': icons['hex'],
711
+ 'material:histoire': icons['histoire'],
712
+ 'material:hjson': icons['hjson'],
713
+ 'material:horusec': icons['horusec'],
714
+ 'material:hosts': icons['hosts'],
715
+ 'material:hosts-light': icons['hosts-light'],
716
+ 'material:hpp': icons['hpp'],
717
+ 'material:html': icons['html'],
718
+ 'material:http': icons['http'],
719
+ 'material:huff': icons['huff'],
720
+ 'material:huff-light': icons['huff-light'],
721
+ 'material:hurl': icons['hurl'],
722
+ 'material:husky': icons['husky'],
723
+ 'material:i18n': icons['i18n'],
724
+ 'material:idris': icons['idris'],
725
+ 'material:ifanr-cloud': icons['ifanr-cloud'],
726
+ 'material:image': icons['image'],
727
+ 'material:imba': icons['imba'],
728
+ 'material:installation': icons['installation'],
729
+ 'material:ionic': icons['ionic'],
730
+ 'material:istanbul': icons['istanbul'],
731
+ 'material:jar': icons['jar'],
732
+ 'material:java': icons['java'],
733
+ 'material:javaclass': icons['javaclass'],
734
+ 'material:javascript': icons['javascript'],
735
+ 'material:javascript-map': icons['javascript-map'],
736
+ 'material:jenkins': icons['jenkins'],
737
+ 'material:jest': icons['jest'],
738
+ 'material:jinja': icons['jinja'],
739
+ 'material:jinja-light': icons['jinja-light'],
740
+ 'material:jsconfig': icons['jsconfig'],
741
+ 'material:json': icons['json'],
742
+ 'material:jsr': icons['jsr'],
743
+ 'material:jsr-light': icons['jsr-light'],
744
+ 'material:julia': icons['julia'],
745
+ 'material:jupyter': icons['jupyter'],
746
+ 'material:just': icons['just'],
747
+ 'material:karma': icons['karma'],
748
+ 'material:kcl': icons['kcl'],
749
+ 'material:key': icons['key'],
750
+ 'material:keystatic': icons['keystatic'],
751
+ 'material:kivy': icons['kivy'],
752
+ 'material:kl': icons['kl'],
753
+ 'material:knip': icons['knip'],
754
+ 'material:kotlin': icons['kotlin'],
755
+ 'material:kubernetes': icons['kubernetes'],
756
+ 'material:kusto': icons['kusto'],
757
+ 'material:label': icons['label'],
758
+ 'material:laravel': icons['laravel'],
759
+ 'material:latexmk': icons['latexmk'],
760
+ 'material:lbx': icons['lbx'],
761
+ 'material:lefthook': icons['lefthook'],
762
+ 'material:lerna': icons['lerna'],
763
+ 'material:less': icons['less'],
764
+ 'material:liara': icons['liara'],
765
+ 'material:lib': icons['lib'],
766
+ 'material:lighthouse': icons['lighthouse'],
767
+ 'material:lilypond': icons['lilypond'],
768
+ 'material:liquid': icons['liquid'],
769
+ 'material:lisp': icons['lisp'],
770
+ 'material:livescript': icons['livescript'],
771
+ 'material:lock': icons['lock'],
772
+ 'material:log': icons['log'],
773
+ 'material:lolcode': icons['lolcode'],
774
+ 'material:lottie': icons['lottie'],
775
+ 'material:lua': icons['lua'],
776
+ 'material:luau': icons['luau'],
777
+ 'material:lyric': icons['lyric'],
778
+ 'material:makefile': icons['makefile'],
779
+ 'material:markdoc': icons['markdoc'],
780
+ 'material:markdoc-config': icons['markdoc-config'],
781
+ 'material:markdown': icons['markdown'],
782
+ 'material:markdownlint': icons['markdownlint'],
783
+ 'material:markojs': icons['markojs'],
784
+ 'material:mathematica': icons['mathematica'],
785
+ 'material:matlab': icons['matlab'],
786
+ 'material:maven': icons['maven'],
787
+ 'material:mdsvex': icons['mdsvex'],
788
+ 'material:mdx': icons['mdx'],
789
+ 'material:mercurial': icons['mercurial'],
790
+ 'material:merlin': icons['merlin'],
791
+ 'material:mermaid': icons['mermaid'],
792
+ 'material:meson': icons['meson'],
793
+ 'material:minecraft': icons['minecraft'],
794
+ 'material:minecraft-fabric': icons['minecraft-fabric'],
795
+ 'material:mint': icons['mint'],
796
+ 'material:mjml': icons['mjml'],
797
+ 'material:mocha': icons['mocha'],
798
+ 'material:modernizr': icons['modernizr'],
799
+ 'material:mojo': icons['mojo'],
800
+ 'material:moon': icons['moon'],
801
+ 'material:moonscript': icons['moonscript'],
802
+ 'material:mxml': icons['mxml'],
803
+ 'material:nano-staged': icons['nano-staged'],
804
+ 'material:nano-staged-light': icons['nano-staged-light'],
805
+ 'material:ndst': icons['ndst'],
806
+ 'material:nest': icons['nest'],
807
+ 'material:netlify': icons['netlify'],
808
+ 'material:netlify-light': icons['netlify-light'],
809
+ 'material:next': icons['next'],
810
+ 'material:next-light': icons['next-light'],
811
+ 'material:nginx': icons['nginx'],
812
+ 'material:ngrx-actions': icons['ngrx-actions'],
813
+ 'material:ngrx-effects': icons['ngrx-effects'],
814
+ 'material:ngrx-entity': icons['ngrx-entity'],
815
+ 'material:ngrx-reducer': icons['ngrx-reducer'],
816
+ 'material:ngrx-selectors': icons['ngrx-selectors'],
817
+ 'material:ngrx-state': icons['ngrx-state'],
818
+ 'material:nim': icons['nim'],
819
+ 'material:nix': icons['nix'],
820
+ 'material:nodejs': icons['nodejs'],
821
+ 'material:nodejs-alt': icons['nodejs-alt'],
822
+ 'material:nodemon': icons['nodemon'],
823
+ 'material:npm': icons['npm'],
824
+ 'material:nuget': icons['nuget'],
825
+ 'material:nunjucks': icons['nunjucks'],
826
+ 'material:nuxt': icons['nuxt'],
827
+ 'material:nx': icons['nx'],
828
+ 'material:objective-c': icons['objective-c'],
829
+ 'material:objective-cpp': icons['objective-cpp'],
830
+ 'material:ocaml': icons['ocaml'],
831
+ 'material:odin': icons['odin'],
832
+ 'material:opa': icons['opa'],
833
+ 'material:opam': icons['opam'],
834
+ 'material:openapi': icons['openapi'],
835
+ 'material:openapi-light': icons['openapi-light'],
836
+ 'material:otne': icons['otne'],
837
+ 'material:packship': icons['packship'],
838
+ 'material:palette': icons['palette'],
839
+ 'material:panda': icons['panda'],
840
+ 'material:parcel': icons['parcel'],
841
+ 'material:pascal': icons['pascal'],
842
+ 'material:pawn': icons['pawn'],
843
+ 'material:payload': icons['payload'],
844
+ 'material:payload-light': icons['payload-light'],
845
+ 'material:pdf': icons['pdf'],
846
+ 'material:pdm': icons['pdm'],
847
+ 'material:percy': icons['percy'],
848
+ 'material:perl': icons['perl'],
849
+ 'material:php': icons['php'],
850
+ 'material:php-cs-fixer': icons['php-cs-fixer'],
851
+ 'material:php-elephant': icons['php-elephant'],
852
+ 'material:php-elephant-pink': icons['php-elephant-pink'],
853
+ 'material:phpstan': icons['phpstan'],
854
+ 'material:phpunit': icons['phpunit'],
855
+ 'material:pinejs': icons['pinejs'],
856
+ 'material:pipeline': icons['pipeline'],
857
+ 'material:pkl': icons['pkl'],
858
+ 'material:plastic': icons['plastic'],
859
+ 'material:playwright': icons['playwright'],
860
+ 'material:plop': icons['plop'],
861
+ 'material:pm2-ecosystem': icons['pm2-ecosystem'],
862
+ 'material:pnpm': icons['pnpm'],
863
+ 'material:pnpm-light': icons['pnpm-light'],
864
+ 'material:poetry': icons['poetry'],
865
+ 'material:postcss': icons['postcss'],
866
+ 'material:posthtml': icons['posthtml'],
867
+ 'material:powerpoint': icons['powerpoint'],
868
+ 'material:powershell': icons['powershell'],
869
+ 'material:pre-commit': icons['pre-commit'],
870
+ 'material:prettier': icons['prettier'],
871
+ 'material:prisma': icons['prisma'],
872
+ 'material:processing': icons['processing'],
873
+ 'material:prolog': icons['prolog'],
874
+ 'material:proto': icons['proto'],
875
+ 'material:protractor': icons['protractor'],
876
+ 'material:pug': icons['pug'],
877
+ 'material:puppet': icons['puppet'],
878
+ 'material:puppeteer': icons['puppeteer'],
879
+ 'material:purescript': icons['purescript'],
880
+ 'material:python': icons['python'],
881
+ 'material:python-misc': icons['python-misc'],
882
+ 'material:pytorch': icons['pytorch'],
883
+ 'material:qsharp': icons['qsharp'],
884
+ 'material:quasar': icons['quasar'],
885
+ 'material:quokka': icons['quokka'],
886
+ 'material:qwik': icons['qwik'],
887
+ 'material:r': icons['r'],
888
+ 'material:racket': icons['racket'],
889
+ 'material:raml': icons['raml'],
890
+ 'material:razor': icons['razor'],
891
+ 'material:rbxmk': icons['rbxmk'],
892
+ 'material:rc': icons['rc'],
893
+ 'material:react': icons['react'],
894
+ 'material:react-ts': icons['react-ts'],
895
+ 'material:readme': icons['readme'],
896
+ 'material:reason': icons['reason'],
897
+ 'material:red': icons['red'],
898
+ 'material:redux-action': icons['redux-action'],
899
+ 'material:redux-reducer': icons['redux-reducer'],
900
+ 'material:redux-selector': icons['redux-selector'],
901
+ 'material:redux-store': icons['redux-store'],
902
+ 'material:regedit': icons['regedit'],
903
+ 'material:remark': icons['remark'],
904
+ 'material:remix': icons['remix'],
905
+ 'material:remix-light': icons['remix-light'],
906
+ 'material:renovate': icons['renovate'],
907
+ 'material:replit': icons['replit'],
908
+ 'material:rescript': icons['rescript'],
909
+ 'material:rescript-interface': icons['rescript-interface'],
910
+ 'material:restql': icons['restql'],
911
+ 'material:riot': icons['riot'],
912
+ 'material:roadmap': icons['roadmap'],
913
+ 'material:roblox': icons['roblox'],
914
+ 'material:robot': icons['robot'],
915
+ 'material:robots': icons['robots'],
916
+ 'material:rocket': icons['rocket'],
917
+ 'material:rojo': icons['rojo'],
918
+ 'material:rollup': icons['rollup'],
919
+ 'material:rome': icons['rome'],
920
+ 'material:routing': icons['routing'],
921
+ 'material:rspec': icons['rspec'],
922
+ 'material:rubocop': icons['rubocop'],
923
+ 'material:rubocop-light': icons['rubocop-light'],
924
+ 'material:ruby': icons['ruby'],
925
+ 'material:ruff': icons['ruff'],
926
+ 'material:rust': icons['rust'],
927
+ 'material:salesforce': icons['salesforce'],
928
+ 'material:san': icons['san'],
929
+ 'material:sas': icons['sas'],
930
+ 'material:sass': icons['sass'],
931
+ 'material:sbt': icons['sbt'],
932
+ 'material:scala': icons['scala'],
933
+ 'material:scheme': icons['scheme'],
934
+ 'material:scons': icons['scons'],
935
+ 'material:scons-light': icons['scons-light'],
936
+ 'material:screwdriver': icons['screwdriver'],
937
+ 'material:search': icons['search'],
938
+ 'material:semantic-release': icons['semantic-release'],
939
+ 'material:semantic-release-light': icons['semantic-release-light'],
940
+ 'material:semgrep': icons['semgrep'],
941
+ 'material:sentry': icons['sentry'],
942
+ 'material:sequelize': icons['sequelize'],
943
+ 'material:serverless': icons['serverless'],
944
+ 'material:settings': icons['settings'],
945
+ 'material:shader': icons['shader'],
946
+ 'material:silverstripe': icons['silverstripe'],
947
+ 'material:simulink': icons['simulink'],
948
+ 'material:siyuan': icons['siyuan'],
949
+ 'material:sketch': icons['sketch'],
950
+ 'material:slim': icons['slim'],
951
+ 'material:slint': icons['slint'],
952
+ 'material:slug': icons['slug'],
953
+ 'material:smarty': icons['smarty'],
954
+ 'material:sml': icons['sml'],
955
+ 'material:snakemake': icons['snakemake'],
956
+ 'material:snapcraft': icons['snapcraft'],
957
+ 'material:snowpack': icons['snowpack'],
958
+ 'material:snowpack-light': icons['snowpack-light'],
959
+ 'material:snyk': icons['snyk'],
960
+ 'material:solidity': icons['solidity'],
961
+ 'material:sonarcloud': icons['sonarcloud'],
962
+ 'material:spwn': icons['spwn'],
963
+ 'material:stackblitz': icons['stackblitz'],
964
+ 'material:stan': icons['stan'],
965
+ 'material:steadybit': icons['steadybit'],
966
+ 'material:stencil': icons['stencil'],
967
+ 'material:stitches': icons['stitches'],
968
+ 'material:stitches-light': icons['stitches-light'],
969
+ 'material:storybook': icons['storybook'],
970
+ 'material:stryker': icons['stryker'],
971
+ 'material:stylable': icons['stylable'],
972
+ 'material:stylelint': icons['stylelint'],
973
+ 'material:stylelint-light': icons['stylelint-light'],
974
+ 'material:stylus': icons['stylus'],
975
+ 'material:sublime': icons['sublime'],
976
+ 'material:subtitles': icons['subtitles'],
977
+ 'material:supabase': icons['supabase'],
978
+ 'material:svelte': icons['svelte'],
979
+ 'material:svg': icons['svg'],
980
+ 'material:svgo': icons['svgo'],
981
+ 'material:svgr': icons['svgr'],
982
+ 'material:swagger': icons['swagger'],
983
+ 'material:sway': icons['sway'],
984
+ 'material:swc': icons['swc'],
985
+ 'material:swift': icons['swift'],
986
+ 'material:syncpack': icons['syncpack'],
987
+ 'material:systemd': icons['systemd'],
988
+ 'material:systemd-light': icons['systemd-light'],
989
+ 'material:table': icons['table'],
990
+ 'material:tailwindcss': icons['tailwindcss'],
991
+ 'material:taskfile': icons['taskfile'],
992
+ 'material:tauri': icons['tauri'],
993
+ 'material:taze': icons['taze'],
994
+ 'material:tcl': icons['tcl'],
995
+ 'material:teal': icons['teal'],
996
+ 'material:templ': icons['templ'],
997
+ 'material:template': icons['template'],
998
+ 'material:terraform': icons['terraform'],
999
+ 'material:test-js': icons['test-js'],
1000
+ 'material:test-jsx': icons['test-jsx'],
1001
+ 'material:test-ts': icons['test-ts'],
1002
+ 'material:tex': icons['tex'],
1003
+ 'material:textlint': icons['textlint'],
1004
+ 'material:tilt': icons['tilt'],
1005
+ 'material:tldraw': icons['tldraw'],
1006
+ 'material:tldraw-light': icons['tldraw-light'],
1007
+ 'material:tobi': icons['tobi'],
1008
+ 'material:tobimake': icons['tobimake'],
1009
+ 'material:todo': icons['todo'],
1010
+ 'material:toml': icons['toml'],
1011
+ 'material:toml-light': icons['toml-light'],
1012
+ 'material:travis': icons['travis'],
1013
+ 'material:tree': icons['tree'],
1014
+ 'material:trigger': icons['trigger'],
1015
+ 'material:tsconfig': icons['tsconfig'],
1016
+ 'material:tsdoc': icons['tsdoc'],
1017
+ 'material:tsil': icons['tsil'],
1018
+ 'material:tune': icons['tune'],
1019
+ 'material:turborepo': icons['turborepo'],
1020
+ 'material:turborepo-light': icons['turborepo-light'],
1021
+ 'material:twig': icons['twig'],
1022
+ 'material:twine': icons['twine'],
1023
+ 'material:typescript': icons['typescript'],
1024
+ 'material:typescript-def': icons['typescript-def'],
1025
+ 'material:typst': icons['typst'],
1026
+ 'material:umi': icons['umi'],
1027
+ 'material:uml': icons['uml'],
1028
+ 'material:uml-light': icons['uml-light'],
1029
+ 'material:unity': icons['unity'],
1030
+ 'material:unocss': icons['unocss'],
1031
+ 'material:url': icons['url'],
1032
+ 'material:uv': icons['uv'],
1033
+ 'material:vagrant': icons['vagrant'],
1034
+ 'material:vala': icons['vala'],
1035
+ 'material:vedic': icons['vedic'],
1036
+ 'material:velite': icons['velite'],
1037
+ 'material:velocity': icons['velocity'],
1038
+ 'material:vercel': icons['vercel'],
1039
+ 'material:vercel-light': icons['vercel-light'],
1040
+ 'material:verdaccio': icons['verdaccio'],
1041
+ 'material:verified': icons['verified'],
1042
+ 'material:verilog': icons['verilog'],
1043
+ 'material:vfl': icons['vfl'],
1044
+ 'material:video': icons['video'],
1045
+ 'material:vim': icons['vim'],
1046
+ 'material:virtual': icons['virtual'],
1047
+ 'material:visualstudio': icons['visualstudio'],
1048
+ 'material:vite': icons['vite'],
1049
+ 'material:vitest': icons['vitest'],
1050
+ 'material:vlang': icons['vlang'],
1051
+ 'material:vscode': icons['vscode'],
1052
+ 'material:vue': icons['vue'],
1053
+ 'material:vue-config': icons['vue-config'],
1054
+ 'material:vuex-store': icons['vuex-store'],
1055
+ 'material:wakatime': icons['wakatime'],
1056
+ 'material:wakatime-light': icons['wakatime-light'],
1057
+ 'material:wallaby': icons['wallaby'],
1058
+ 'material:wally': icons['wally'],
1059
+ 'material:watchman': icons['watchman'],
1060
+ 'material:webassembly': icons['webassembly'],
1061
+ 'material:webhint': icons['webhint'],
1062
+ 'material:webpack': icons['webpack'],
1063
+ 'material:wepy': icons['wepy'],
1064
+ 'material:werf': icons['werf'],
1065
+ 'material:windicss': icons['windicss'],
1066
+ 'material:wolframlanguage': icons['wolframlanguage'],
1067
+ 'material:word': icons['word'],
1068
+ 'material:wrangler': icons['wrangler'],
1069
+ 'material:wxt': icons['wxt'],
1070
+ 'material:xaml': icons['xaml'],
1071
+ 'material:xmake': icons['xmake'],
1072
+ 'material:xml': icons['xml'],
1073
+ 'material:yaml': icons['yaml'],
1074
+ 'material:yang': icons['yang'],
1075
+ 'material:yarn': icons['yarn'],
1076
+ 'material:zeabur': icons['zeabur'],
1077
+ 'material:zeabur-light': icons['zeabur-light'],
1078
+ 'material:zig': icons['zig'],
1079
+ 'material:zip': icons['zip'],
1080
+ } as const;
1081
+
1082
+ export type MaterialIconName = keyof typeof materialIconRegistry;