@edenapp/sdk 0.1.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 (432) hide show
  1. package/apps/com/eden/editor/dist/assets/css-DQU6DXDx.js +3 -0
  2. package/apps/com/eden/editor/dist/assets/editor-BRA9licV.css +1 -0
  3. package/apps/com/eden/editor/dist/assets/editor.main-DAsyVptA.js +677 -0
  4. package/apps/com/eden/editor/dist/assets/editor.worker-B4pQIWZD.js +12 -0
  5. package/apps/com/eden/editor/dist/assets/html-CTBLac3N.js +1 -0
  6. package/apps/com/eden/editor/dist/assets/index-B7GgDQ9I.css +1 -0
  7. package/apps/com/eden/editor/dist/assets/index-BWJI9cyM.js +2 -0
  8. package/apps/com/eden/editor/dist/assets/ini-BvajGCUy.js +1 -0
  9. package/apps/com/eden/editor/dist/assets/javascript-DJ6Ya8pi.js +1 -0
  10. package/apps/com/eden/editor/dist/assets/jsonMode-BA0kYRDI.js +10 -0
  11. package/apps/com/eden/editor/dist/assets/less-GGFNNJHn.js +2 -0
  12. package/apps/com/eden/editor/dist/assets/markdown-B811l8j2.js +1 -0
  13. package/apps/com/eden/editor/dist/assets/shell-CsDZo4DB.js +1 -0
  14. package/apps/com/eden/editor/dist/assets/typescript-C7BsmV0J.js +1 -0
  15. package/apps/com/eden/editor/dist/assets/yaml-QL02lm_B.js +1 -0
  16. package/apps/com/eden/editor/dist/index.html +13 -0
  17. package/apps/com/eden/editor/icon.svg +22 -0
  18. package/apps/com/eden/editor/index.html +12 -0
  19. package/apps/com/eden/editor/manifest.json +58 -0
  20. package/apps/com/eden/editor/node_modules/.bin/browserslist +21 -0
  21. package/apps/com/eden/editor/node_modules/.bin/tsc +21 -0
  22. package/apps/com/eden/editor/node_modules/.bin/tsserver +21 -0
  23. package/apps/com/eden/editor/node_modules/.bin/vite +21 -0
  24. package/apps/com/eden/editor/package.json +21 -0
  25. package/apps/com/eden/editor/src/App.tsx +212 -0
  26. package/apps/com/eden/editor/src/components/ErrorBanner.tsx +13 -0
  27. package/apps/com/eden/editor/src/components/LazyMonacoEditor.tsx +154 -0
  28. package/apps/com/eden/editor/src/components/TabBar.tsx +36 -0
  29. package/apps/com/eden/editor/src/components/Toolbar.tsx +39 -0
  30. package/apps/com/eden/editor/src/components/WelcomeScreen.tsx +49 -0
  31. package/apps/com/eden/editor/src/components/index.ts +11 -0
  32. package/apps/com/eden/editor/src/index.tsx +10 -0
  33. package/apps/com/eden/editor/src/styles.css +319 -0
  34. package/apps/com/eden/editor/src/types.ts +69 -0
  35. package/apps/com/eden/editor/tsconfig.json +24 -0
  36. package/apps/com/eden/editor/vite.config.mts +67 -0
  37. package/apps/com/eden/eveshell/assets/apps-grid-icon.svg +17 -0
  38. package/apps/com/eden/eveshell/assets/default-icon.svg +17 -0
  39. package/apps/com/eden/eveshell/dist/assets/index-BS2yCXxK.css +1 -0
  40. package/apps/com/eden/eveshell/dist/assets/index-De0NEh_d.js +1 -0
  41. package/apps/com/eden/eveshell/dist/index.html +13 -0
  42. package/apps/com/eden/eveshell/index.html +12 -0
  43. package/apps/com/eden/eveshell/manifest.json +28 -0
  44. package/apps/com/eden/eveshell/node_modules/.bin/tsc +21 -0
  45. package/apps/com/eden/eveshell/node_modules/.bin/tsserver +21 -0
  46. package/apps/com/eden/eveshell/node_modules/.bin/vite +21 -0
  47. package/apps/com/eden/eveshell/package.json +20 -0
  48. package/apps/com/eden/eveshell/src/components/AllApps.tsx +228 -0
  49. package/apps/com/eden/eveshell/src/components/AppContextMenu.tsx +125 -0
  50. package/apps/com/eden/eveshell/src/components/AppIcon.tsx +40 -0
  51. package/apps/com/eden/eveshell/src/components/Clock.tsx +35 -0
  52. package/apps/com/eden/eveshell/src/components/Dock.tsx +147 -0
  53. package/apps/com/eden/eveshell/src/components/ShellOverlay.tsx +343 -0
  54. package/apps/com/eden/eveshell/src/icon-cache.ts +38 -0
  55. package/apps/com/eden/eveshell/src/index.tsx +11 -0
  56. package/apps/com/eden/eveshell/src/styles.css +409 -0
  57. package/apps/com/eden/eveshell/src/types.ts +5 -0
  58. package/apps/com/eden/eveshell/tsconfig.json +37 -0
  59. package/apps/com/eden/eveshell/vite.config.mts +23 -0
  60. package/apps/com/eden/example/appbus/client-a/app.js +239 -0
  61. package/apps/com/eden/example/appbus/client-a/index.html +48 -0
  62. package/apps/com/eden/example/appbus/client-a/manifest.json +27 -0
  63. package/apps/com/eden/example/appbus/client-a/styles.css +52 -0
  64. package/apps/com/eden/example/appbus/client-b/app.js +130 -0
  65. package/apps/com/eden/example/appbus/client-b/index.html +35 -0
  66. package/apps/com/eden/example/appbus/client-b/manifest.json +27 -0
  67. package/apps/com/eden/example/appbus/client-b/styles.css +48 -0
  68. package/apps/com/eden/example/appbus/hub/README.md +18 -0
  69. package/apps/com/eden/example/appbus/hub/backend.js +121 -0
  70. package/apps/com/eden/example/appbus/hub/manifest.json +17 -0
  71. package/apps/com/eden/example/appbus/isolated/app.js +107 -0
  72. package/apps/com/eden/example/appbus/isolated/index.html +35 -0
  73. package/apps/com/eden/example/appbus/isolated/manifest.json +27 -0
  74. package/apps/com/eden/example/appbus/isolated/styles.css +52 -0
  75. package/apps/com/eden/example/calculator/.dev-manifest.json +5 -0
  76. package/apps/com/eden/example/calculator/app.js +95 -0
  77. package/apps/com/eden/example/calculator/icon.svg +19 -0
  78. package/apps/com/eden/example/calculator/index.html +39 -0
  79. package/apps/com/eden/example/calculator/manifest.json +30 -0
  80. package/apps/com/eden/example/calculator/styles.css +83 -0
  81. package/apps/com/eden/example/hello/README.md +3 -0
  82. package/apps/com/eden/example/hello/backend/dist/backend.js +47 -0
  83. package/apps/com/eden/example/hello/backend/node_modules/.bin/tsc +21 -0
  84. package/apps/com/eden/example/hello/backend/node_modules/.bin/tsserver +21 -0
  85. package/apps/com/eden/example/hello/backend/package.json +13 -0
  86. package/apps/com/eden/example/hello/backend/src/backend.ts +58 -0
  87. package/apps/com/eden/example/hello/backend/tsconfig.json +19 -0
  88. package/apps/com/eden/example/hello/frontend/dist/assets/index-D2WAwW3g.css +1 -0
  89. package/apps/com/eden/example/hello/frontend/dist/assets/index-D4bTq3-Q.js +1 -0
  90. package/apps/com/eden/example/hello/frontend/dist/index.html +59 -0
  91. package/apps/com/eden/example/hello/frontend/index.html +59 -0
  92. package/apps/com/eden/example/hello/frontend/node_modules/.bin/tsc +21 -0
  93. package/apps/com/eden/example/hello/frontend/node_modules/.bin/tsserver +21 -0
  94. package/apps/com/eden/example/hello/frontend/node_modules/.bin/vite +21 -0
  95. package/apps/com/eden/example/hello/frontend/package.json +15 -0
  96. package/apps/com/eden/example/hello/frontend/src/App.ts +191 -0
  97. package/apps/com/eden/example/hello/frontend/styles.css +96 -0
  98. package/apps/com/eden/example/hello/frontend/tsconfig.json +16 -0
  99. package/apps/com/eden/example/hello/frontend/vite.config.mts +21 -0
  100. package/apps/com/eden/example/hello/manifest.json +34 -0
  101. package/apps/com/eden/example/hello/shared/protocol.d.ts +38 -0
  102. package/apps/com/eden/example/showcase/app.js +186 -0
  103. package/apps/com/eden/example/showcase/index.html +637 -0
  104. package/apps/com/eden/example/showcase/manifest.json +24 -0
  105. package/apps/com/eden/example/showcase/styles.css +195 -0
  106. package/apps/com/eden/files/.dev-manifest.json +5 -0
  107. package/apps/com/eden/files/dist/assets/index-BOw4ESi3.js +1 -0
  108. package/apps/com/eden/files/dist/assets/index-BPH5FvSW.css +1 -0
  109. package/apps/com/eden/files/dist/index.html +13 -0
  110. package/apps/com/eden/files/icon.svg +15 -0
  111. package/apps/com/eden/files/index.html +12 -0
  112. package/apps/com/eden/files/manifest.json +28 -0
  113. package/apps/com/eden/files/node_modules/.bin/tsc +21 -0
  114. package/apps/com/eden/files/node_modules/.bin/tsserver +21 -0
  115. package/apps/com/eden/files/node_modules/.bin/vite +21 -0
  116. package/apps/com/eden/files/node_modules/.vite/deps/_metadata.json +46 -0
  117. package/apps/com/eden/files/node_modules/.vite/deps/chunk-5W77UGHT.js +1253 -0
  118. package/apps/com/eden/files/node_modules/.vite/deps/chunk-5W77UGHT.js.map +7 -0
  119. package/apps/com/eden/files/node_modules/.vite/deps/chunk-K4SCX2FD.js +1809 -0
  120. package/apps/com/eden/files/node_modules/.vite/deps/chunk-K4SCX2FD.js.map +7 -0
  121. package/apps/com/eden/files/node_modules/.vite/deps/package.json +3 -0
  122. package/apps/com/eden/files/node_modules/.vite/deps/solid-js.js +112 -0
  123. package/apps/com/eden/files/node_modules/.vite/deps/solid-js.js.map +7 -0
  124. package/apps/com/eden/files/node_modules/.vite/deps/solid-js_h.js +122 -0
  125. package/apps/com/eden/files/node_modules/.vite/deps/solid-js_h.js.map +7 -0
  126. package/apps/com/eden/files/node_modules/.vite/deps/solid-js_html.js +606 -0
  127. package/apps/com/eden/files/node_modules/.vite/deps/solid-js_html.js.map +7 -0
  128. package/apps/com/eden/files/node_modules/.vite/deps/solid-js_store.js +455 -0
  129. package/apps/com/eden/files/node_modules/.vite/deps/solid-js_store.js.map +7 -0
  130. package/apps/com/eden/files/node_modules/.vite/deps/solid-js_web.js +147 -0
  131. package/apps/com/eden/files/node_modules/.vite/deps/solid-js_web.js.map +7 -0
  132. package/apps/com/eden/files/package-lock.json +1754 -0
  133. package/apps/com/eden/files/package.json +20 -0
  134. package/apps/com/eden/files/src/App.tsx +387 -0
  135. package/apps/com/eden/files/src/components/FileExplorerHeader.tsx +90 -0
  136. package/apps/com/eden/files/src/components/FileItem.tsx +70 -0
  137. package/apps/com/eden/files/src/components/FileList.tsx +77 -0
  138. package/apps/com/eden/files/src/components/Modal.tsx +48 -0
  139. package/apps/com/eden/files/src/components/Omnibox.tsx +241 -0
  140. package/apps/com/eden/files/src/dialogs/CreateFileDialog.tsx +71 -0
  141. package/apps/com/eden/files/src/dialogs/CreateFolderDialog.tsx +68 -0
  142. package/apps/com/eden/files/src/dialogs/DeleteConfirmDialog.tsx +35 -0
  143. package/apps/com/eden/files/src/dialogs/DisplayOptionsModal.tsx +122 -0
  144. package/apps/com/eden/files/src/dialogs/ErrorDialog.tsx +28 -0
  145. package/apps/com/eden/files/src/index.tsx +9 -0
  146. package/apps/com/eden/files/src/styles.css +595 -0
  147. package/apps/com/eden/files/src/types.ts +20 -0
  148. package/apps/com/eden/files/src/utils.ts +44 -0
  149. package/apps/com/eden/files/tsconfig.json +27 -0
  150. package/apps/com/eden/files/vite.config.mts +23 -0
  151. package/apps/com/eden/settings/dist/assets/index-CTkJneTg.js +1 -0
  152. package/apps/com/eden/settings/dist/assets/index-GIMJANTM.css +1 -0
  153. package/apps/com/eden/settings/dist/index.html +13 -0
  154. package/apps/com/eden/settings/icon.svg +15 -0
  155. package/apps/com/eden/settings/index.html +12 -0
  156. package/apps/com/eden/settings/manifest.json +28 -0
  157. package/apps/com/eden/settings/node_modules/.bin/tsc +21 -0
  158. package/apps/com/eden/settings/node_modules/.bin/tsserver +21 -0
  159. package/apps/com/eden/settings/node_modules/.bin/vite +21 -0
  160. package/apps/com/eden/settings/package.json +21 -0
  161. package/apps/com/eden/settings/src/App.css +168 -0
  162. package/apps/com/eden/settings/src/App.tsx +301 -0
  163. package/apps/com/eden/settings/src/components/SettingInput.tsx +131 -0
  164. package/apps/com/eden/settings/src/index.tsx +9 -0
  165. package/apps/com/eden/settings/tsconfig.json +21 -0
  166. package/apps/com/eden/settings/vite.config.mts +22 -0
  167. package/apps/com/eden/toaster/README.md +89 -0
  168. package/apps/com/eden/toaster/dist/assets/index-8JMcmBCJ.css +1 -0
  169. package/apps/com/eden/toaster/dist/assets/index-C4cVyh7j.js +16 -0
  170. package/apps/com/eden/toaster/dist/index.html +16 -0
  171. package/apps/com/eden/toaster/index.html +16 -0
  172. package/apps/com/eden/toaster/manifest.json +28 -0
  173. package/apps/com/eden/toaster/node_modules/.bin/vite +21 -0
  174. package/apps/com/eden/toaster/package.json +15 -0
  175. package/apps/com/eden/toaster/src/styles.css +159 -0
  176. package/apps/com/eden/toaster/src/toaster.ts +470 -0
  177. package/apps/com/eden/toaster/tsconfig.json +28 -0
  178. package/apps/com/eden/toaster/vite.config.mts +18 -0
  179. package/apps/com/eden/webbrowser/.dev-manifest.json +5 -0
  180. package/apps/com/eden/webbrowser/icon.svg +20 -0
  181. package/apps/com/eden/webbrowser/index.html +141 -0
  182. package/apps/com/eden/webbrowser/manifest.json +23 -0
  183. package/apps/com/eden/webbrowser/node_modules/.bin/vite +21 -0
  184. package/apps/com/eden/webbrowser/node_modules/.vite/deps/_metadata.json +8 -0
  185. package/apps/com/eden/webbrowser/node_modules/.vite/deps/package.json +3 -0
  186. package/apps/com/eden/webbrowser/package.json +13 -0
  187. package/apps/com/eden/webbrowser/vite.config.mts +11 -0
  188. package/dist/Eden.d.ts +40 -0
  189. package/dist/Eden.d.ts.map +1 -0
  190. package/dist/Eden.js +186 -0
  191. package/dist/Eden.js.map +1 -0
  192. package/dist/SystemHandler.d.ts +11 -0
  193. package/dist/SystemHandler.d.ts.map +1 -0
  194. package/dist/SystemHandler.js +53 -0
  195. package/dist/SystemHandler.js.map +1 -0
  196. package/dist/app-frame/frame-injector.js +19 -0
  197. package/dist/app-frame/frame-injector.js.map +7 -0
  198. package/dist/app-frame/frame.css +186 -0
  199. package/dist/app-runtime/app-preload.js +2 -0
  200. package/dist/app-runtime/app-preload.js.map +7 -0
  201. package/dist/app-runtime/backend-preload.js +2 -0
  202. package/dist/app-runtime/backend-preload.js.map +7 -0
  203. package/dist/appbus/AppChannelHandler.d.ts +65 -0
  204. package/dist/appbus/AppChannelHandler.d.ts.map +1 -0
  205. package/dist/appbus/AppChannelHandler.js +120 -0
  206. package/dist/appbus/AppChannelHandler.js.map +1 -0
  207. package/dist/appbus/AppChannelManager.d.ts +80 -0
  208. package/dist/appbus/AppChannelManager.d.ts.map +1 -0
  209. package/dist/appbus/AppChannelManager.js +312 -0
  210. package/dist/appbus/AppChannelManager.js.map +1 -0
  211. package/dist/appbus/index.d.ts +2 -0
  212. package/dist/appbus/index.d.ts.map +1 -0
  213. package/dist/appbus/index.js +18 -0
  214. package/dist/appbus/index.js.map +1 -0
  215. package/dist/db/DbHandler.d.ts +119 -0
  216. package/dist/db/DbHandler.d.ts.map +1 -0
  217. package/dist/db/DbHandler.js +204 -0
  218. package/dist/db/DbHandler.js.map +1 -0
  219. package/dist/db/DbManager.d.ts +49 -0
  220. package/dist/db/DbManager.d.ts.map +1 -0
  221. package/dist/db/DbManager.js +172 -0
  222. package/dist/db/DbManager.js.map +1 -0
  223. package/dist/db/index.d.ts +3 -0
  224. package/dist/db/index.d.ts.map +1 -0
  225. package/dist/db/index.js +8 -0
  226. package/dist/db/index.js.map +1 -0
  227. package/dist/edencss/eden-tokens.css +1 -0
  228. package/dist/edencss/eden.css +1 -0
  229. package/dist/file-open/FileOpenHandler.d.ts +59 -0
  230. package/dist/file-open/FileOpenHandler.d.ts.map +1 -0
  231. package/dist/file-open/FileOpenHandler.js +122 -0
  232. package/dist/file-open/FileOpenHandler.js.map +1 -0
  233. package/dist/file-open/FileOpenManager.d.ts +91 -0
  234. package/dist/file-open/FileOpenManager.d.ts.map +1 -0
  235. package/dist/file-open/FileOpenManager.js +411 -0
  236. package/dist/file-open/FileOpenManager.js.map +1 -0
  237. package/dist/file-open/index.d.ts +3 -0
  238. package/dist/file-open/index.d.ts.map +1 -0
  239. package/dist/file-open/index.js +8 -0
  240. package/dist/file-open/index.js.map +1 -0
  241. package/dist/filesystem/FilesystemHandler.d.ts +65 -0
  242. package/dist/filesystem/FilesystemHandler.d.ts.map +1 -0
  243. package/dist/filesystem/FilesystemHandler.js +134 -0
  244. package/dist/filesystem/FilesystemHandler.js.map +1 -0
  245. package/dist/filesystem/FilesystemManager.d.ts +70 -0
  246. package/dist/filesystem/FilesystemManager.d.ts.map +1 -0
  247. package/dist/filesystem/FilesystemManager.js +236 -0
  248. package/dist/filesystem/FilesystemManager.js.map +1 -0
  249. package/dist/filesystem/index.d.ts +3 -0
  250. package/dist/filesystem/index.d.ts.map +1 -0
  251. package/dist/filesystem/index.js +8 -0
  252. package/dist/filesystem/index.js.map +1 -0
  253. package/dist/foundation/foundation-preload.js +15 -0
  254. package/dist/foundation/foundation.css +40 -0
  255. package/dist/foundation/foundation.html +22 -0
  256. package/dist/foundation/foundation.js +69 -0
  257. package/dist/hotreload-config.d.ts +8 -0
  258. package/dist/hotreload-config.d.ts.map +1 -0
  259. package/dist/hotreload-config.js +73 -0
  260. package/dist/hotreload-config.js.map +1 -0
  261. package/dist/index.d.ts +7 -0
  262. package/dist/index.d.ts.map +1 -0
  263. package/dist/index.js +20 -0
  264. package/dist/index.js.map +1 -0
  265. package/dist/ipc/CommandDecorators.d.ts +72 -0
  266. package/dist/ipc/CommandDecorators.d.ts.map +1 -0
  267. package/dist/ipc/CommandDecorators.js +49 -0
  268. package/dist/ipc/CommandDecorators.js.map +1 -0
  269. package/dist/ipc/CommandRegistry.d.ts +77 -0
  270. package/dist/ipc/CommandRegistry.d.ts.map +1 -0
  271. package/dist/ipc/CommandRegistry.js +175 -0
  272. package/dist/ipc/CommandRegistry.js.map +1 -0
  273. package/dist/ipc/EdenEmitter.d.ts +54 -0
  274. package/dist/ipc/EdenEmitter.d.ts.map +1 -0
  275. package/dist/ipc/EdenEmitter.js +81 -0
  276. package/dist/ipc/EdenEmitter.js.map +1 -0
  277. package/dist/ipc/EventHandler.d.ts +21 -0
  278. package/dist/ipc/EventHandler.d.ts.map +1 -0
  279. package/dist/ipc/EventHandler.js +87 -0
  280. package/dist/ipc/EventHandler.js.map +1 -0
  281. package/dist/ipc/EventSubscriberManager.d.ts +67 -0
  282. package/dist/ipc/EventSubscriberManager.d.ts.map +1 -0
  283. package/dist/ipc/EventSubscriberManager.js +204 -0
  284. package/dist/ipc/EventSubscriberManager.js.map +1 -0
  285. package/dist/ipc/IPCBridge.d.ts +60 -0
  286. package/dist/ipc/IPCBridge.d.ts.map +1 -0
  287. package/dist/ipc/IPCBridge.js +186 -0
  288. package/dist/ipc/IPCBridge.js.map +1 -0
  289. package/dist/ipc/PermissionRegistry.d.ts +52 -0
  290. package/dist/ipc/PermissionRegistry.d.ts.map +1 -0
  291. package/dist/ipc/PermissionRegistry.js +120 -0
  292. package/dist/ipc/PermissionRegistry.js.map +1 -0
  293. package/dist/ipc/index.d.ts +7 -0
  294. package/dist/ipc/index.d.ts.map +1 -0
  295. package/dist/ipc/index.js +23 -0
  296. package/dist/ipc/index.js.map +1 -0
  297. package/dist/main.d.ts +2 -0
  298. package/dist/main.d.ts.map +1 -0
  299. package/dist/main.js +15 -0
  300. package/dist/main.js.map +1 -0
  301. package/dist/notification/NotificationHandler.d.ts +16 -0
  302. package/dist/notification/NotificationHandler.d.ts.map +1 -0
  303. package/dist/notification/NotificationHandler.js +39 -0
  304. package/dist/notification/NotificationHandler.js.map +1 -0
  305. package/dist/notification/NotificationManager.d.ts +32 -0
  306. package/dist/notification/NotificationManager.d.ts.map +1 -0
  307. package/dist/notification/NotificationManager.js +66 -0
  308. package/dist/notification/NotificationManager.js.map +1 -0
  309. package/dist/notification/index.d.ts +3 -0
  310. package/dist/notification/index.d.ts.map +1 -0
  311. package/dist/notification/index.js +19 -0
  312. package/dist/notification/index.js.map +1 -0
  313. package/dist/package-manager/PackageHandler.d.ts +50 -0
  314. package/dist/package-manager/PackageHandler.d.ts.map +1 -0
  315. package/dist/package-manager/PackageHandler.js +107 -0
  316. package/dist/package-manager/PackageHandler.js.map +1 -0
  317. package/dist/package-manager/PackageManager.d.ts +73 -0
  318. package/dist/package-manager/PackageManager.d.ts.map +1 -0
  319. package/dist/package-manager/PackageManager.js +373 -0
  320. package/dist/package-manager/PackageManager.js.map +1 -0
  321. package/dist/package-manager/index.d.ts +3 -0
  322. package/dist/package-manager/index.d.ts.map +1 -0
  323. package/dist/package-manager/index.js +8 -0
  324. package/dist/package-manager/index.js.map +1 -0
  325. package/dist/process-manager/AutostartManager.d.ts +15 -0
  326. package/dist/process-manager/AutostartManager.d.ts.map +1 -0
  327. package/dist/process-manager/AutostartManager.js +56 -0
  328. package/dist/process-manager/AutostartManager.js.map +1 -0
  329. package/dist/process-manager/BackendManager.d.ts +63 -0
  330. package/dist/process-manager/BackendManager.d.ts.map +1 -0
  331. package/dist/process-manager/BackendManager.js +272 -0
  332. package/dist/process-manager/BackendManager.js.map +1 -0
  333. package/dist/process-manager/ProcessHandler.d.ts +29 -0
  334. package/dist/process-manager/ProcessHandler.d.ts.map +1 -0
  335. package/dist/process-manager/ProcessHandler.js +66 -0
  336. package/dist/process-manager/ProcessHandler.js.map +1 -0
  337. package/dist/process-manager/ProcessManager.d.ts +94 -0
  338. package/dist/process-manager/ProcessManager.d.ts.map +1 -0
  339. package/dist/process-manager/ProcessManager.js +286 -0
  340. package/dist/process-manager/ProcessManager.js.map +1 -0
  341. package/dist/process-manager/index.d.ts +5 -0
  342. package/dist/process-manager/index.d.ts.map +1 -0
  343. package/dist/process-manager/index.js +12 -0
  344. package/dist/process-manager/index.js.map +1 -0
  345. package/dist/settings/EdenSettings.d.ts +8 -0
  346. package/dist/settings/EdenSettings.d.ts.map +1 -0
  347. package/dist/settings/EdenSettings.js +148 -0
  348. package/dist/settings/EdenSettings.js.map +1 -0
  349. package/dist/settings/SettingsHandler.d.ts +117 -0
  350. package/dist/settings/SettingsHandler.d.ts.map +1 -0
  351. package/dist/settings/SettingsHandler.js +199 -0
  352. package/dist/settings/SettingsHandler.js.map +1 -0
  353. package/dist/settings/SettingsManager.d.ts +64 -0
  354. package/dist/settings/SettingsManager.d.ts.map +1 -0
  355. package/dist/settings/SettingsManager.js +221 -0
  356. package/dist/settings/SettingsManager.js.map +1 -0
  357. package/dist/settings/index.d.ts +4 -0
  358. package/dist/settings/index.d.ts.map +1 -0
  359. package/dist/settings/index.js +11 -0
  360. package/dist/settings/index.js.map +1 -0
  361. package/dist/utils/cachedFileReader.d.ts +46 -0
  362. package/dist/utils/cachedFileReader.d.ts.map +1 -0
  363. package/dist/utils/cachedFileReader.js +100 -0
  364. package/dist/utils/cachedFileReader.js.map +1 -0
  365. package/dist/view-manager/DevToolsManager.d.ts +29 -0
  366. package/dist/view-manager/DevToolsManager.d.ts.map +1 -0
  367. package/dist/view-manager/DevToolsManager.js +88 -0
  368. package/dist/view-manager/DevToolsManager.js.map +1 -0
  369. package/dist/view-manager/FloatingWindowController.d.ts +44 -0
  370. package/dist/view-manager/FloatingWindowController.d.ts.map +1 -0
  371. package/dist/view-manager/FloatingWindowController.js +124 -0
  372. package/dist/view-manager/FloatingWindowController.js.map +1 -0
  373. package/dist/view-manager/LayoutCalculator.d.ts +49 -0
  374. package/dist/view-manager/LayoutCalculator.d.ts.map +1 -0
  375. package/dist/view-manager/LayoutCalculator.js +94 -0
  376. package/dist/view-manager/LayoutCalculator.js.map +1 -0
  377. package/dist/view-manager/MouseTracker.d.ts +65 -0
  378. package/dist/view-manager/MouseTracker.d.ts.map +1 -0
  379. package/dist/view-manager/MouseTracker.js +114 -0
  380. package/dist/view-manager/MouseTracker.js.map +1 -0
  381. package/dist/view-manager/TilingManager.d.ts +61 -0
  382. package/dist/view-manager/TilingManager.d.ts.map +1 -0
  383. package/dist/view-manager/TilingManager.js +142 -0
  384. package/dist/view-manager/TilingManager.js.map +1 -0
  385. package/dist/view-manager/ViewCreator.d.ts +72 -0
  386. package/dist/view-manager/ViewCreator.d.ts.map +1 -0
  387. package/dist/view-manager/ViewCreator.js +277 -0
  388. package/dist/view-manager/ViewCreator.js.map +1 -0
  389. package/dist/view-manager/ViewHandler.d.ts +112 -0
  390. package/dist/view-manager/ViewHandler.d.ts.map +1 -0
  391. package/dist/view-manager/ViewHandler.js +307 -0
  392. package/dist/view-manager/ViewHandler.js.map +1 -0
  393. package/dist/view-manager/ViewLifecycle.d.ts +66 -0
  394. package/dist/view-manager/ViewLifecycle.d.ts.map +1 -0
  395. package/dist/view-manager/ViewLifecycle.js +142 -0
  396. package/dist/view-manager/ViewLifecycle.js.map +1 -0
  397. package/dist/view-manager/ViewManager.d.ts +112 -0
  398. package/dist/view-manager/ViewManager.d.ts.map +1 -0
  399. package/dist/view-manager/ViewManager.js +422 -0
  400. package/dist/view-manager/ViewManager.js.map +1 -0
  401. package/dist/view-manager/index.d.ts +11 -0
  402. package/dist/view-manager/index.d.ts.map +1 -0
  403. package/dist/view-manager/index.js +23 -0
  404. package/dist/view-manager/index.js.map +1 -0
  405. package/dist/view-manager/types.d.ts +24 -0
  406. package/dist/view-manager/types.d.ts.map +1 -0
  407. package/dist/view-manager/types.js +11 -0
  408. package/dist/view-manager/types.js.map +1 -0
  409. package/edencss/README.md +214 -0
  410. package/edencss/components/badges.css +180 -0
  411. package/edencss/components/buttons.css +221 -0
  412. package/edencss/components/cards.css +201 -0
  413. package/edencss/components/inputs.css +424 -0
  414. package/edencss/components/lists.css +242 -0
  415. package/edencss/components/modals.css +207 -0
  416. package/edencss/components/progress.css +186 -0
  417. package/edencss/components/sidebar.css +232 -0
  418. package/edencss/components/tabs.css +189 -0
  419. package/edencss/eden.css +16 -0
  420. package/edencss/index.ts +11 -0
  421. package/edencss/style-dictionary.config.mjs +75 -0
  422. package/edencss/tokens-pink.json +163 -0
  423. package/edencss/tokens.css +121 -0
  424. package/edencss/tokens.d.ts +111 -0
  425. package/edencss/tokens.json +369 -0
  426. package/edencss/tokens.ts +125 -0
  427. package/edencss/utilities.css +423 -0
  428. package/foundation/foundation-preload.js +15 -0
  429. package/foundation/foundation.css +40 -0
  430. package/foundation/foundation.html +22 -0
  431. package/foundation/foundation.js +69 -0
  432. package/package.json +55 -0
@@ -0,0 +1,319 @@
1
+ /**
2
+ * Text Editor - Styles
3
+ */
4
+
5
+ * {
6
+ margin: 0;
7
+ padding: 0;
8
+ box-sizing: border-box;
9
+ }
10
+
11
+ html, body, #root {
12
+ height: 100%;
13
+ width: 100%;
14
+ overflow: hidden;
15
+ }
16
+
17
+ body {
18
+ background: var(--eden-color-bg-secondary);
19
+ backdrop-filter: var(--eden-glass-medium);
20
+ }
21
+
22
+ /* ===== Main Layout ===== */
23
+ .editor-app {
24
+ display: flex;
25
+ flex-direction: column;
26
+ height: 100%;
27
+ color: var(--eden-color-text-primary);
28
+ font-family: var(--eden-font-family-base);
29
+ }
30
+
31
+ /* ===== Tab Bar (VSCode-style) ===== */
32
+ .editor-tabs {
33
+ display: flex;
34
+ align-items: center;
35
+ border-bottom: 1px solid var(--eden-color-border-light);
36
+ min-height: 36px;
37
+ overflow-x: auto;
38
+ scrollbar-width: none;
39
+ }
40
+
41
+ .editor-tabs::-webkit-scrollbar {
42
+ display: none;
43
+ }
44
+
45
+ .editor-tab {
46
+ display: flex;
47
+ align-items: center;
48
+ gap: var(--eden-space-sm);
49
+ padding: var(--eden-space-sm) var(--eden-space-md);
50
+ border-right: 1px solid var(--eden-color-border-light);
51
+ background: transparent;
52
+ color: var(--eden-color-text-secondary);
53
+ font-size: var(--eden-font-size-sm);
54
+ font-weight: var(--eden-font-weight-medium);
55
+ cursor: pointer;
56
+ transition: all var(--eden-transition-base);
57
+ white-space: nowrap;
58
+ max-width: 200px;
59
+ min-width: 100px;
60
+ border: none;
61
+ outline: none;
62
+ font-family: var(--eden-font-family-base);
63
+ }
64
+
65
+ .editor-tab:hover {
66
+ background: var(--eden-color-bg-glass-light);
67
+ color: var(--eden-color-text-primary);
68
+ }
69
+
70
+ .editor-tab.active {
71
+ background: var(--eden-color-bg-primary);
72
+ color: var(--eden-color-text-primary);
73
+ border-bottom: 2px solid var(--eden-color-accent-primary);
74
+ }
75
+
76
+ .editor-tab.modified::after {
77
+ content: '';
78
+ width: 8px;
79
+ height: 8px;
80
+ border-radius: 50%;
81
+ background: var(--eden-color-warning);
82
+ flex-shrink: 0;
83
+ }
84
+
85
+ .tab-name {
86
+ flex: 1;
87
+ overflow: hidden;
88
+ text-overflow: ellipsis;
89
+ }
90
+
91
+ .tab-close {
92
+ display: flex;
93
+ align-items: center;
94
+ justify-content: center;
95
+ width: 16px;
96
+ height: 16px;
97
+ border-radius: var(--eden-radius-xs);
98
+ background: transparent;
99
+ border: none;
100
+ color: var(--eden-color-text-muted);
101
+ font-size: var(--eden-font-size-sm);
102
+ cursor: pointer;
103
+ opacity: 0;
104
+ transition: all var(--eden-transition-base);
105
+ }
106
+
107
+ .editor-tab:hover .tab-close {
108
+ opacity: 1;
109
+ }
110
+
111
+ .tab-close:hover {
112
+ background: var(--eden-color-danger);
113
+ color: white;
114
+ }
115
+
116
+ /* ===== Toolbar ===== */
117
+ .editor-toolbar {
118
+ display: flex;
119
+ justify-content: space-between;
120
+ align-items: center;
121
+ padding: var(--eden-space-xs) var(--eden-space-md);
122
+ background: var(--eden-color-bg-glass-light);
123
+ border-bottom: 1px solid var(--eden-color-border-light);
124
+ }
125
+
126
+ .toolbar-info {
127
+ display: flex;
128
+ align-items: center;
129
+ gap: var(--eden-space-md);
130
+ }
131
+
132
+ .file-path {
133
+ font-size: var(--eden-font-size-xs);
134
+ color: var(--eden-color-text-muted);
135
+ font-family: var(--eden-font-mono);
136
+ }
137
+
138
+ .file-language {
139
+ font-size: var(--eden-font-size-xs);
140
+ color: var(--eden-color-text-secondary);
141
+ padding: var(--eden-space-xs) var(--eden-space-sm);
142
+ background: var(--eden-color-bg-glass-medium);
143
+ border-radius: var(--eden-radius-sm);
144
+ }
145
+
146
+ .toolbar-actions {
147
+ display: flex;
148
+ gap: var(--eden-space-sm);
149
+ }
150
+
151
+ /* ===== Error Banner ===== */
152
+ .error-banner {
153
+ display: flex;
154
+ justify-content: space-between;
155
+ align-items: center;
156
+ padding: var(--eden-space-sm) var(--eden-space-md);
157
+ background: var(--eden-color-danger);
158
+ color: white;
159
+ font-size: var(--eden-font-size-sm);
160
+ }
161
+
162
+ .error-banner button {
163
+ background: rgba(255, 255, 255, 0.2);
164
+ border: none;
165
+ color: white;
166
+ width: 20px;
167
+ height: 20px;
168
+ border-radius: var(--eden-radius-xs);
169
+ cursor: pointer;
170
+ display: flex;
171
+ align-items: center;
172
+ justify-content: center;
173
+ }
174
+
175
+ .error-banner button:hover {
176
+ background: rgba(255, 255, 255, 0.3);
177
+ }
178
+
179
+ /* ===== Empty State ===== */
180
+ .empty-state {
181
+ display: flex;
182
+ flex-direction: column;
183
+ align-items: center;
184
+ justify-content: center;
185
+ flex: 1;
186
+ gap: var(--eden-space-lg);
187
+ padding: var(--eden-space-4xl);
188
+ text-align: center;
189
+ }
190
+
191
+ .empty-state h2 {
192
+ font-size: var(--eden-font-size-xl);
193
+ font-weight: var(--eden-font-weight-semibold);
194
+ color: var(--eden-color-text-primary);
195
+ margin: 0;
196
+ }
197
+
198
+ .empty-state p {
199
+ font-size: var(--eden-font-size-sm);
200
+ color: var(--eden-color-text-muted);
201
+ max-width: 300px;
202
+ }
203
+
204
+ .empty-state-icon {
205
+ width: 64px;
206
+ height: 64px;
207
+ border-radius: var(--eden-radius-xl);
208
+ background: var(--eden-color-bg-glass-medium);
209
+ display: flex;
210
+ align-items: center;
211
+ justify-content: center;
212
+ font-size: var(--eden-font-size-3xl);
213
+ color: var(--eden-color-text-muted);
214
+ }
215
+
216
+ /* ===== Editor Container ===== */
217
+ .editor-container {
218
+ flex: 1;
219
+ overflow: hidden;
220
+ position: relative;
221
+ }
222
+
223
+ /* ===== Welcome Tab ===== */
224
+ .welcome-content {
225
+ flex: 1;
226
+ display: flex;
227
+ flex-direction: column;
228
+ align-items: center;
229
+ justify-content: center;
230
+ gap: var(--eden-space-xl);
231
+ padding: var(--eden-space-4xl);
232
+ }
233
+
234
+ .welcome-content h1 {
235
+ font-size: var(--eden-font-size-2xl);
236
+ font-weight: var(--eden-font-weight-semibold);
237
+ color: var(--eden-color-text-primary);
238
+ margin: 0;
239
+ }
240
+
241
+ .welcome-content p {
242
+ font-size: var(--eden-font-size-md);
243
+ color: var(--eden-color-text-secondary);
244
+ }
245
+
246
+ .welcome-shortcuts {
247
+ display: flex;
248
+ flex-direction: column;
249
+ gap: var(--eden-space-sm);
250
+ margin-top: var(--eden-space-lg);
251
+ }
252
+
253
+ .shortcut-item {
254
+ display: flex;
255
+ align-items: center;
256
+ gap: var(--eden-space-md);
257
+ font-size: var(--eden-font-size-sm);
258
+ color: var(--eden-color-text-secondary);
259
+ }
260
+
261
+ .shortcut-key {
262
+ padding: var(--eden-space-xs) var(--eden-space-sm);
263
+ background: var(--eden-color-bg-glass-strong);
264
+ border: 1px solid var(--eden-color-border-light);
265
+ border-radius: var(--eden-radius-sm);
266
+ font-family: var(--eden-font-mono);
267
+ font-size: var(--eden-font-size-xs);
268
+ color: var(--eden-color-text-primary);
269
+ }
270
+
271
+ /* ===== Monaco Lazy Loading ===== */
272
+ .monaco-loading {
273
+ position: absolute;
274
+ top: 0;
275
+ left: 0;
276
+ right: 0;
277
+ bottom: 0;
278
+ display: flex;
279
+ flex-direction: column;
280
+ align-items: center;
281
+ justify-content: center;
282
+ gap: var(--eden-space-md);
283
+ background: var(--eden-color-bg-primary);
284
+ color: var(--eden-color-text-secondary);
285
+ font-size: var(--eden-font-size-sm);
286
+ z-index: 10;
287
+ }
288
+
289
+ .monaco-loading-spinner {
290
+ width: 32px;
291
+ height: 32px;
292
+ border: 3px solid var(--eden-color-border-light);
293
+ border-top-color: var(--eden-color-accent-primary);
294
+ border-radius: 50%;
295
+ animation: monaco-spin 0.8s linear infinite;
296
+ }
297
+
298
+ @keyframes monaco-spin {
299
+ to {
300
+ transform: rotate(360deg);
301
+ }
302
+ }
303
+
304
+ .monaco-error {
305
+ position: absolute;
306
+ top: 0;
307
+ left: 0;
308
+ right: 0;
309
+ bottom: 0;
310
+ display: flex;
311
+ align-items: center;
312
+ justify-content: center;
313
+ background: var(--eden-color-bg-primary);
314
+ color: var(--eden-color-danger);
315
+ font-size: var(--eden-font-size-sm);
316
+ padding: var(--eden-space-lg);
317
+ text-align: center;
318
+ }
319
+
@@ -0,0 +1,69 @@
1
+ // Tab interface for managing multiple open files
2
+ export interface EditorTab {
3
+ id: string;
4
+ path: string;
5
+ name: string;
6
+ content: string;
7
+ originalContent: string;
8
+ isModified: boolean;
9
+ language: string;
10
+ }
11
+
12
+ // File opened event type
13
+ export interface FileOpenedEvent {
14
+ path: string;
15
+ isDirectory: boolean;
16
+ appId: string;
17
+ }
18
+
19
+ // Extension to Monaco language mapping
20
+ export const extensionToLanguage: Record<string, string> = {
21
+ // Text
22
+ txt: "plaintext",
23
+ md: "markdown",
24
+ markdown: "markdown",
25
+ log: "plaintext",
26
+
27
+ // JavaScript/TypeScript
28
+ js: "javascript",
29
+ jsx: "javascript",
30
+ mjs: "javascript",
31
+ cjs: "javascript",
32
+ ts: "typescript",
33
+ tsx: "typescript",
34
+ mts: "typescript",
35
+ cts: "typescript",
36
+
37
+ // Web
38
+ html: "html",
39
+ htm: "html",
40
+ css: "css",
41
+ less: "less",
42
+
43
+ // Data
44
+ json: "json",
45
+ yaml: "yaml",
46
+ yml: "yaml",
47
+ toml: "ini",
48
+
49
+ // Config
50
+ ini: "ini",
51
+ cfg: "ini",
52
+ conf: "ini",
53
+ env: "shell",
54
+
55
+ // Shell scripts
56
+ sh: "shell",
57
+ bash: "shell",
58
+ zsh: "shell",
59
+ fish: "shell",
60
+ };
61
+
62
+ export function getLanguageFromPath(filePath: string): string {
63
+ const ext = filePath.split(".").pop()?.toLowerCase() || "";
64
+ return extensionToLanguage[ext] || "plaintext";
65
+ }
66
+
67
+ export function getFileName(filePath: string): string {
68
+ return filePath.split("/").pop() || "Untitled";
69
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "useDefineForClassFields": true,
5
+ "module": "ESNext",
6
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
7
+ "skipLibCheck": true,
8
+ "moduleResolution": "bundler",
9
+ "allowImportingTsExtensions": true,
10
+ "resolveJsonModule": true,
11
+ "isolatedModules": true,
12
+ "noEmit": true,
13
+ "jsx": "preserve",
14
+ "jsxImportSource": "solid-js",
15
+ "strict": true,
16
+ "noUnusedLocals": true,
17
+ "noUnusedParameters": true,
18
+ "noFallthroughCasesInSwitch": true,
19
+ "types": [
20
+ "@edenapp/types/global"
21
+ ]
22
+ },
23
+ "include": ["src"]
24
+ }
@@ -0,0 +1,67 @@
1
+ import { defineConfig } from "vite";
2
+ import solidPlugin from "vite-plugin-solid";
3
+ import { monaco } from "@bithero/monaco-editor-vite-plugin";
4
+ import { fileURLToPath } from "url";
5
+ import { dirname, resolve } from "path";
6
+
7
+ const __filename = fileURLToPath(import.meta.url);
8
+ const __dirname = dirname(__filename);
9
+
10
+ export default defineConfig({
11
+ plugins: [
12
+ solidPlugin(),
13
+ // Configure Monaco for syntax highlighting only (no language servers)
14
+ // Syntax highlighting still works via Monarch tokenizers
15
+ monaco({
16
+ // Only include features we need for a text editor (not an IDE)
17
+ features: [
18
+ "bracketMatching",
19
+ "clipboard",
20
+ "find",
21
+ "folding",
22
+ "fontZoom",
23
+ "indentation",
24
+ "lineSelection",
25
+ "links",
26
+ "multicursor",
27
+ "wordHighlighter",
28
+ "wordOperations",
29
+ "wordPartOperations",
30
+ ],
31
+ // Don't use built-in languages (they include heavy language service workers)
32
+ languages: [],
33
+ // Use customLanguages to include ONLY the basic syntax highlighting
34
+ // without the language service workers (IntelliSense, error checking, etc.)
35
+ customLanguages: [
36
+ // TypeScript/JavaScript - only basic syntax highlighting, no tsserver
37
+ { label: "typescript", entry: "vs/basic-languages/typescript/typescript.contribution" },
38
+ { label: "javascript", entry: "vs/basic-languages/javascript/javascript.contribution" },
39
+ // Web languages - only syntax highlighting, no workers
40
+ { label: "html", entry: "vs/basic-languages/html/html.contribution" },
41
+ { label: "css", entry: "vs/basic-languages/css/css.contribution" },
42
+ { label: "less", entry: "vs/basic-languages/less/less.contribution" },
43
+ // Data formats
44
+ { label: "json", entry: "vs/language/json/monaco.contribution" }, // JSON doesn't have basic-languages, use the lightweight contribution
45
+ { label: "yaml", entry: "vs/basic-languages/yaml/yaml.contribution" },
46
+ // Config files
47
+ { label: "ini", entry: "vs/basic-languages/ini/ini.contribution" },
48
+ { label: "shell", entry: "vs/basic-languages/shell/shell.contribution" },
49
+ // Markdown
50
+ { label: "markdown", entry: "vs/basic-languages/markdown/markdown.contribution" },
51
+ ],
52
+ globalAPI: false,
53
+ }),
54
+ ],
55
+ base: "./",
56
+ root: __dirname,
57
+ build: {
58
+ outDir: "./dist",
59
+ emptyOutDir: true,
60
+ rollupOptions: {
61
+ input: resolve(__dirname, "index.html"),
62
+ },
63
+ },
64
+ resolve: {
65
+ conditions: ["development", "browser"],
66
+ },
67
+ });
@@ -0,0 +1,17 @@
1
+ <svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <defs>
3
+ <linearGradient id="bg" x1="32" y1="4" x2="32" y2="60" gradientUnits="userSpaceOnUse">
4
+ <stop stop-color="#4a4a4a"/>
5
+ <stop offset="1" stop-color="#3a3a3a"/>
6
+ </linearGradient>
7
+ </defs>
8
+ <!-- Squircle background with gradient -->
9
+ <rect x="4" y="4" width="56" height="56" rx="14" fill="url(#bg)"/>
10
+ <!-- Grid of 4 squares icon centered -->
11
+ <g transform="translate(16, 16)" fill="#e0e0e0">
12
+ <rect x="2" y="2" width="12" height="12" rx="2"/>
13
+ <rect x="18" y="2" width="12" height="12" rx="2"/>
14
+ <rect x="2" y="18" width="12" height="12" rx="2"/>
15
+ <rect x="18" y="18" width="12" height="12" rx="2"/>
16
+ </g>
17
+ </svg>
@@ -0,0 +1,17 @@
1
+ <svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <defs>
3
+ <linearGradient id="bg" x1="32" y1="4" x2="32" y2="60" gradientUnits="userSpaceOnUse">
4
+ <stop stop-color="#4a4a4a"/>
5
+ <stop offset="1" stop-color="#3a3a3a"/>
6
+ </linearGradient>
7
+ </defs>
8
+ <!-- Squircle background with gradient -->
9
+ <rect x="4" y="4" width="56" height="56" rx="14" fill="url(#bg)"/>
10
+ <!-- Document lines icon centered -->
11
+ <g transform="translate(16, 16)" fill="#e0e0e0">
12
+ <rect x="5" y="6" width="22" height="3" rx="1.5"/>
13
+ <rect x="5" y="13" width="22" height="3" rx="1.5"/>
14
+ <rect x="5" y="20" width="15" height="3" rx="1.5"/>
15
+ <rect x="5" y="27" width="22" height="3" rx="1.5"/>
16
+ </g>
17
+ </svg>
@@ -0,0 +1 @@
1
+ *{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--eden-font-family-base);background:transparent;color:var(--eden-color-text-primary);overflow:hidden;height:100vh;width:100vw}#root{width:100%;height:100%}.shell-overlay{display:flex;flex-direction:column;width:100%;height:100%;transition:height .3s cubic-bezier(.22,1,.36,1)}.shell-overlay[data-mode=dock]{height:var(--eden-layout-dock-height);max-height:var(--eden-layout-dock-height);overflow:hidden}.shell-overlay[data-mode=fullscreen]{height:100vh;max-height:100vh}.shell-overlay[data-mode=fullscreen] .dock{position:absolute;bottom:0;left:0;right:0}.dock{height:var(--eden-layout-dock-height);background:transparent;display:flex;justify-content:center;align-items:center;padding:var(--eden-space-sm);position:relative;overflow:visible}.dock.dock-initial{animation:dockSlideIn .3s cubic-bezier(.22,1,.36,1) forwards}@keyframes dockSlideIn{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.dock:before{content:"";position:absolute;left:var(--eden-space-sm);right:var(--eden-space-sm);bottom:var(--eden-space-sm);height:calc(var(--eden-layout-dock-height) - var(--eden-space-md));border-radius:var(--eden-radius-xl);background:var(--eden-color-bg-glass-medium);backdrop-filter:var(--eden-glass-medium);-webkit-backdrop-filter:var(--eden-glass-medium);box-shadow:var(--eden-shadow-lg);border:1px solid var(--eden-color-border-light);pointer-events:none;z-index:0}.dock-left{display:flex;align-items:center;justify-content:center;flex:1;z-index:1}.dock-right{position:absolute;right:var(--eden-space-sm);display:flex;align-items:center;padding:var(--eden-space-sm) var(--eden-space-md);border-radius:var(--eden-radius-lg);background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border:none;box-shadow:none;z-index:1}.dock-right,.dock-right *{color:var(--eden-color-text-primary)}.dock-right .clock .time{color:var(--eden-color-text-primary);font-size:var(--eden-font-size-lg);line-height:var(--eden-font-line-height-tight)}.dock-right .clock .date{color:var(--eden-color-text-secondary)}.dock-right .separator{background:linear-gradient(to bottom,transparent,var(--eden-color-border-medium) 20%,var(--eden-color-border-medium) 80%,transparent)}.app-icons{display:flex;align-items:center;gap:var(--eden-space-sm);padding:var(--eden-space-sm) var(--eden-space-md);border-radius:var(--eden-radius-md);background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border:none;box-shadow:none;overflow:visible;z-index:1}.app-icons.magnify .app-icon:hover{transform:none}.app-icons.magnify .icon-container{transform-origin:bottom center}.app-icons.magnify.magnify-active .icon-container{filter:brightness(1.05)}.dock-left,.dock-left *{color:var(--eden-color-text-primary)}.dock-left .app-name{color:var(--eden-color-text-secondary)}.dock-left .separator{background:linear-gradient(to bottom,transparent,var(--eden-color-border-medium) 20%,var(--eden-color-border-medium) 80%,transparent)}.separator{width:1px;height:32px;background:linear-gradient(to bottom,transparent,var(--eden-color-border-medium) 20%,var(--eden-color-border-medium) 80%,transparent);margin:0 var(--eden-space-xs)}.app-icon{display:flex;flex-direction:column;align-items:center;gap:0px;padding:2px 4px;cursor:pointer;border-radius:var(--eden-radius-sm);transition:all var(--eden-transition-base);position:relative;min-width:44px}.app-icon:hover{transform:none}.app-icon:hover .icon-container{filter:brightness(1.1)}.app-icon:active{transform:translateY(-2px) scale(1.05)}.app-icon.running{background:var(--eden-color-bg-dark)}.icon-container{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--eden-radius-sm);position:relative;background:transparent;box-shadow:none;transition:transform .16s ease-out,filter .2s ease}.icon-container img{width:100%;height:100%;object-fit:contain}.app-name{font-size:var(--eden-font-size-sm);color:var(--eden-color-text-primary);text-align:center;max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--eden-font-weight-medium);position:absolute;left:50%;top:calc(100% + 2px);transform:translate(-50%);opacity:0;pointer-events:none;transition:opacity .2s ease}.app-icon:hover .app-name{opacity:1}.running-indicator{position:absolute;bottom:-2px;left:50%;transform:translate(-50%);width:4px;height:4px;background:var(--eden-color-text-primary);border-radius:50%;box-shadow:none}.clock{display:flex;flex-direction:column;align-items:flex-end;gap:1px;-webkit-user-select:none;user-select:none}.clock .time{font-size:var(--eden-font-size-md);font-weight:var(--eden-font-weight-semibold);color:var(--eden-color-text-primary);font-variant-numeric:tabular-nums;letter-spacing:var(--eden-font-letter-spacing-normal)}.clock .date{font-size:var(--eden-font-size-xs);color:var(--eden-color-text-secondary);font-weight:var(--eden-font-weight-medium);letter-spacing:var(--eden-font-letter-spacing-tight)}.eden-modal-body .eden-card-grid{grid-template-columns:repeat(4,1fr)}.all-apps-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--eden-space-md);border-radius:var(--eden-radius-lg);aspect-ratio:1 / 1}.all-apps-tile.running{background:var(--eden-color-surface-active)}.all-apps-tile .app-icon{min-width:auto;width:auto}.all-apps-tile .icon-container{width:64px;height:64px;border-radius:var(--eden-radius-lg)}.all-apps-tile .icon-container img{width:100%;height:100%}.all-apps-tile .app-name{position:static;transform:none;left:auto;top:auto;opacity:1;margin-top:var(--eden-space-sm);font-size:var(--eden-font-size-sm);font-weight:var(--eden-font-weight-medium);color:var(--eden-color-text-primary);text-align:center;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eden-icon{font-size:var(--eden-font-size-lg);width:20px;text-align:center;flex-shrink:0;font-family:var(--eden-font-family-base);font-weight:var(--eden-font-weight-semibold);line-height:1;display:flex;align-items:center;justify-content:center}.context-menu-overlay{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.context-menu-title{border-bottom:1px solid var(--eden-color-border-light);padding-bottom:var(--eden-space-xs);margin-bottom:var(--eden-space-xs)}.context-menu-btn{justify-content:flex-start;width:100%}
@@ -0,0 +1 @@
1
+ (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))s(o);new MutationObserver(o=>{for(const r of o)if(r.type==="childList")for(const l of r.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&s(l)}).observe(document,{childList:!0,subtree:!0});function n(o){const r={};return o.integrity&&(r.integrity=o.integrity),o.referrerPolicy&&(r.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?r.credentials="include":o.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function s(o){if(o.ep)return;o.ep=!0;const r=n(o);fetch(o.href,r)}})();const qe=!0,Xe=(e,t)=>e===t,oe=Symbol("solid-proxy"),Oe=typeof Proxy=="function",Ke=Symbol("solid-track"),ze=Symbol("solid-dev-component"),re={equals:Xe};let De=Fe;const H=1,le=2,Ge={},we={};var b=null;let ye=null,Ye=null,k=null,D=null,j=null,he=0;function ne(e,t){const n=k,s=b,o=e.length===0,r=t===void 0?s:t,l=o?{owned:null,cleanups:null,context:null,owner:null}:{owned:null,cleanups:null,context:r?r.context:null,owner:r},i=o?()=>e(()=>{throw new Error("Dispose method must be an explicit argument to createRoot function")}):()=>e(()=>U(()=>Q(l)));b=l,k=null;try{return X(i,!0)}finally{k=n,b=s}}function _(e,t){t=t?Object.assign({},re,t):re;const n={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0};t.name&&(n.name=t.name),t.internal?n.internal=!0:tt(n);const s=o=>(typeof o=="function"&&(o=o(n.value)),Ne(n,o));return[Re.bind(n),s]}function Qe(e,t,n){const s=J(e,t,!0,H,n);z(s)}function B(e,t,n){const s=J(e,t,!1,H,n);z(s)}function Me(e,t,n){De=ot;const s=J(e,t,!1,H,n);s.user=!0,j?j.push(s):z(s)}function q(e,t,n){n=n?Object.assign({},re,n):re;const s=J(e,t,!0,0,n);return s.observers=null,s.observerSlots=null,s.comparator=n.equals||void 0,z(s),Re.bind(s)}function We(e){return e&&typeof e=="object"&&"then"in e}function Je(e,t,n){let s,o,r;typeof t=="function"?(s=e,o=t,r={}):(s=!0,o=e,r=t||{});let l=null,i=we,a=!1,d="initialValue"in r,h=typeof s=="function"&&q(s);const c=new Set,[p,m]=(r.storage||_)(r.initialValue),[w,E]=_(void 0),[F,M]=_(void 0,{equals:!1}),[x,S]=_(d?"ready":"unresolved");function P(v,$,L,u){return l===v&&(l=null,u!==void 0&&(d=!0),(v===i||$===i)&&r.onHydrated&&queueMicrotask(()=>r.onHydrated(u,{value:$})),i=we,g($,L)),$}function g(v,$){X(()=>{$===void 0&&m(()=>v),S($!==void 0?"errored":d?"ready":"unresolved"),E($);for(const L of c.keys())L.decrement();c.clear()},!1)}function I(){const v=nt,$=p(),L=w();if(L!==void 0&&!l)throw L;return k&&k.user,$}function T(v=!0){if(v!==!1&&a)return;a=!1;const $=h?h():s;if($==null||$===!1){P(l,U(p));return}let L;const u=i!==we?i:U(()=>{try{return o($,{value:p(),refetching:v})}catch(f){L=f}});if(L!==void 0){P(l,void 0,ie(L),$);return}else if(!We(u))return P(l,u,void 0,$),u;return l=u,"v"in u?(u.s===1?P(l,u.v,void 0,$):P(l,void 0,ie(u.v),$),u):(a=!0,queueMicrotask(()=>a=!1),X(()=>{S(d?"refreshing":"pending"),M()},!1),u.then(f=>P(u,f,void 0,$),f=>P(u,void 0,ie(f),$)))}Object.defineProperties(I,{state:{get:()=>x()},error:{get:()=>w()},loading:{get(){const v=x();return v==="pending"||v==="refreshing"}},latest:{get(){if(!d)return I();const v=w();if(v&&!l)throw v;return p()}}});let R=b;return h?Qe(()=>(R=b,T(!1))):T(!1),[I,{refetch:v=>Ze(R,()=>T(v)),mutate:m}]}function U(e){if(k===null)return e();const t=k;k=null;try{return e()}finally{k=t}}function ge(e){Me(()=>U(e))}function W(e){return b===null?console.warn("cleanups created outside a `createRoot` or `render` will never be run"):b.cleanups===null?b.cleanups=[e]:b.cleanups.push(e),e}function Ze(e,t){const n=b,s=k;b=e,k=null;try{return X(t,!0)}catch(o){$e(o)}finally{b=n,k=s}}const[Wt,Jt]=_(!1);function et(e,t){const n=J(()=>U(()=>(Object.assign(e,{[ze]:!0}),e(t))),void 0,!0,0);return n.props=t,n.observers=null,n.observerSlots=null,n.name=e.name,n.component=e,z(n),n.tValue!==void 0?n.tValue:n.value}function tt(e){b&&(b.sourceMap?b.sourceMap.push(e):b.sourceMap=[e],e.graph=b)}let nt;function Re(){if(this.sources&&this.state)if(this.state===H)z(this);else{const e=D;D=null,X(()=>ae(this),!1),D=e}if(k){const e=this.observers?this.observers.length:0;k.sources?(k.sources.push(this),k.sourceSlots.push(e)):(k.sources=[this],k.sourceSlots=[e]),this.observers?(this.observers.push(k),this.observerSlots.push(k.sources.length-1)):(this.observers=[k],this.observerSlots=[k.sources.length-1])}return this.value}function Ne(e,t,n){let s=e.value;return(!e.comparator||!e.comparator(s,t))&&(e.value=t,e.observers&&e.observers.length&&X(()=>{for(let o=0;o<e.observers.length;o+=1){const r=e.observers[o],l=ye&&ye.running;l&&ye.disposed.has(r),(l?!r.tState:!r.state)&&(r.pure?D.push(r):j.push(r),r.observers&&Be(r)),l||(r.state=H)}if(D.length>1e6)throw D=[],qe?new Error("Potential Infinite Loop Detected."):new Error},!1)),t}function z(e){if(!e.fn)return;Q(e);const t=he;it(e,e.value,t)}function it(e,t,n){let s;const o=b,r=k;k=b=e;try{s=e.fn(t)}catch(l){return e.pure&&(e.state=H,e.owned&&e.owned.forEach(Q),e.owned=null),e.updatedAt=n+1,$e(l)}finally{k=r,b=o}(!e.updatedAt||e.updatedAt<=n)&&(e.updatedAt!=null&&"observers"in e?Ne(e,s):e.value=s,e.updatedAt=n)}function J(e,t,n,s=H,o){const r={fn:e,state:s,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:b,context:b?b.context:null,pure:n};return b===null?console.warn("computations created outside a `createRoot` or `render` will never be disposed"):b!==Ge&&(b.owned?b.owned.push(r):b.owned=[r]),o&&o.name&&(r.name=o.name),r}function ce(e){if(e.state===0)return;if(e.state===le)return ae(e);if(e.suspense&&U(e.suspense.inFallback))return e.suspense.effects.push(e);const t=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt<he);)e.state&&t.push(e);for(let n=t.length-1;n>=0;n--)if(e=t[n],e.state===H)z(e);else if(e.state===le){const s=D;D=null,X(()=>ae(e,t[0]),!1),D=s}}function X(e,t){if(D)return e();let n=!1;t||(D=[]),j?n=!0:j=[],he++;try{const s=e();return st(n),s}catch(s){n||(j=null),D=null,$e(s)}}function st(e){if(D&&(Fe(D),D=null),e)return;const t=j;j=null,t.length&&X(()=>De(t),!1)}function Fe(e){for(let t=0;t<e.length;t++)ce(e[t])}function ot(e){let t,n=0;for(t=0;t<e.length;t++){const s=e[t];s.user?e[n++]=s:ce(s)}for(t=0;t<n;t++)ce(e[t])}function ae(e,t){e.state=0;for(let n=0;n<e.sources.length;n+=1){const s=e.sources[n];if(s.sources){const o=s.state;o===H?s!==t&&(!s.updatedAt||s.updatedAt<he)&&ce(s):o===le&&ae(s,t)}}}function Be(e){for(let t=0;t<e.observers.length;t+=1){const n=e.observers[t];n.state||(n.state=le,n.pure?D.push(n):j.push(n),n.observers&&Be(n))}}function Q(e){let t;if(e.sources)for(;e.sources.length;){const n=e.sources.pop(),s=e.sourceSlots.pop(),o=n.observers;if(o&&o.length){const r=o.pop(),l=n.observerSlots.pop();s<o.length&&(r.sourceSlots[l]=s,o[s]=r,n.observerSlots[s]=l)}}if(e.tOwned){for(t=e.tOwned.length-1;t>=0;t--)Q(e.tOwned[t]);delete e.tOwned}if(e.owned){for(t=e.owned.length-1;t>=0;t--)Q(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}e.state=0,delete e.sourceMap}function ie(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"Unknown error",{cause:e})}function $e(e,t=b){throw ie(e)}const rt=Symbol("fallback");function Ce(e){for(let t=0;t<e.length;t++)e[t]()}function lt(e,t,n={}){let s=[],o=[],r=[],l=0,i=t.length>1?[]:null;return W(()=>Ce(r)),()=>{let a=e()||[],d=a.length,h,c;return a[Ke],U(()=>{let m,w,E,F,M,x,S,P,g;if(d===0)l!==0&&(Ce(r),r=[],s=[],o=[],l=0,i&&(i=[])),n.fallback&&(s=[rt],o[0]=ne(I=>(r[0]=I,n.fallback())),l=1);else if(l===0){for(o=new Array(d),c=0;c<d;c++)s[c]=a[c],o[c]=ne(p);l=d}else{for(E=new Array(d),F=new Array(d),i&&(M=new Array(d)),x=0,S=Math.min(l,d);x<S&&s[x]===a[x];x++);for(S=l-1,P=d-1;S>=x&&P>=x&&s[S]===a[P];S--,P--)E[P]=o[S],F[P]=r[S],i&&(M[P]=i[S]);for(m=new Map,w=new Array(P+1),c=P;c>=x;c--)g=a[c],h=m.get(g),w[c]=h===void 0?-1:h,m.set(g,c);for(h=x;h<=S;h++)g=s[h],c=m.get(g),c!==void 0&&c!==-1?(E[c]=o[h],F[c]=r[h],i&&(M[c]=i[h]),c=w[c],m.set(g,c)):r[h]();for(c=x;c<d;c++)c in E?(o[c]=E[c],r[c]=F[c],i&&(i[c]=M[c],i[c](c))):o[c]=ne(p);o=o.slice(0,l=d),s=a.slice(0)}return o});function p(m){if(r[c]=m,i){const[w,E]=_(c,{name:"index"});return i[c]=E,t(a[c],w)}return t(a[c])}}}function A(e,t){return et(e,t||{})}function ee(){return!0}const be={get(e,t,n){return t===oe?n:e.get(t)},has(e,t){return t===oe?!0:e.has(t)},set:ee,deleteProperty:ee,getOwnPropertyDescriptor(e,t){return{configurable:!0,enumerable:!0,get(){return e.get(t)},set:ee,deleteProperty:ee}},ownKeys(e){return e.keys()}};function pe(e){return(e=typeof e=="function"?e():e)?e:{}}function ct(){for(let e=0,t=this.length;e<t;++e){const n=this[e]();if(n!==void 0)return n}}function ke(...e){let t=!1;for(let l=0;l<e.length;l++){const i=e[l];t=t||!!i&&oe in i,e[l]=typeof i=="function"?(t=!0,q(i)):i}if(Oe&&t)return new Proxy({get(l){for(let i=e.length-1;i>=0;i--){const a=pe(e[i])[l];if(a!==void 0)return a}},has(l){for(let i=e.length-1;i>=0;i--)if(l in pe(e[i]))return!0;return!1},keys(){const l=[];for(let i=0;i<e.length;i++)l.push(...Object.keys(pe(e[i])));return[...new Set(l)]}},be);const n={},s=Object.create(null);for(let l=e.length-1;l>=0;l--){const i=e[l];if(!i)continue;const a=Object.getOwnPropertyNames(i);for(let d=a.length-1;d>=0;d--){const h=a[d];if(h==="__proto__"||h==="constructor")continue;const c=Object.getOwnPropertyDescriptor(i,h);if(!s[h])s[h]=c.get?{enumerable:!0,configurable:!0,get:ct.bind(n[h]=[c.get.bind(i)])}:c.value!==void 0?c:void 0;else{const p=n[h];p&&(c.get?p.push(c.get.bind(i)):c.value!==void 0&&p.push(()=>c.value))}}}const o={},r=Object.keys(s);for(let l=r.length-1;l>=0;l--){const i=r[l],a=s[i];a&&a.get?Object.defineProperty(o,i,a):o[i]=a?a.value:void 0}return o}function at(e,...t){const n=t.length;if(Oe&&oe in e){const o=n>1?t.flat():t[0],r=t.map(l=>new Proxy({get(i){return l.includes(i)?e[i]:void 0},has(i){return l.includes(i)&&i in e},keys(){return l.filter(i=>i in e)}},be));return r.push(new Proxy({get(l){return o.includes(l)?void 0:e[l]},has(l){return o.includes(l)?!1:l in e},keys(){return Object.keys(e).filter(l=>!o.includes(l))}},be)),r}const s=[];for(let o=0;o<=n;o++)s[o]={};for(const o of Object.getOwnPropertyNames(e)){let r=n;for(let a=0;a<t.length;a++)if(t[a].includes(o)){r=a;break}const l=Object.getOwnPropertyDescriptor(e,o);!l.get&&!l.set&&l.enumerable&&l.writable&&l.configurable?s[r][o]=l.value:Object.defineProperty(s[r],o,l)}return s}const ut=e=>`Attempting to access a stale value from <${e}> that could possibly be undefined. This may occur because you are reading the accessor returned from the component at a time where it has already been unmounted. We recommend cleaning up any stale timers or async, or reading from the initial condition.`;function ve(e){const t="fallback"in e&&{fallback:()=>e.fallback};return q(lt(()=>e.each,e.children,t||void 0),void 0,{name:"value"})}function K(e){const t=e.keyed,n=q(()=>e.when,void 0,{name:"condition value"}),s=t?n:q(n,void 0,{equals:(o,r)=>!o==!r,name:"condition"});return q(()=>{const o=s();if(o){const r=e.children;return typeof r=="function"&&r.length>0?U(()=>r(t?o:()=>{if(!U(s))throw ut("Show");return n()})):r}return e.fallback},void 0,{name:"value"})}globalThis&&(globalThis.Solid$$?console.warn("You appear to have multiple instances of Solid. This can lead to unexpected behavior."):globalThis.Solid$$=!0);const dt=new Set(["innerHTML","textContent","innerText","children"]),ft=Object.assign(Object.create(null),{className:"class",htmlFor:"for"}),ht=new Set(["beforeinput","click","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"]),gt={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"},Ae=e=>q(()=>e());function mt(e,t,n){let s=n.length,o=t.length,r=s,l=0,i=0,a=t[o-1].nextSibling,d=null;for(;l<o||i<r;){if(t[l]===n[i]){l++,i++;continue}for(;t[o-1]===n[r-1];)o--,r--;if(o===l){const h=r<s?i?n[i-1].nextSibling:n[r-i]:a;for(;i<r;)e.insertBefore(n[i++],h)}else if(r===i)for(;l<o;)(!d||!d.has(t[l]))&&t[l].remove(),l++;else if(t[l]===n[r-1]&&n[i]===t[o-1]){const h=t[--o].nextSibling;e.insertBefore(n[i++],t[l++].nextSibling),e.insertBefore(n[--r],h),t[o]=n[r]}else{if(!d){d=new Map;let c=i;for(;c<r;)d.set(n[c],c++)}const h=d.get(t[l]);if(h!=null)if(i<h&&h<r){let c=l,p=1,m;for(;++c<o&&c<r&&!((m=d.get(t[c]))==null||m!==h+p);)p++;if(p>h-i){const w=t[l];for(;i<h;)e.insertBefore(n[i++],w)}else e.replaceChild(n[i++],t[l++])}else l++;else t[l++].remove()}}}const Se="_$DX_DELEGATE";function wt(e,t,n,s={}){if(!t)throw new Error("The `element` passed to `render(..., element)` doesn't exist. Make sure `element` exists in the document.");let o;return ne(r=>{o=r,t===document?e():C(t,e(),t.firstChild?null:void 0,n)},s.owner),()=>{o(),t.textContent=""}}function N(e,t,n,s){let o;const r=()=>{const i=document.createElement("template");return i.innerHTML=e,i.content.firstChild},l=()=>(o||(o=r())).cloneNode(!0);return l.cloneNode=l,l}function Z(e,t=window.document){const n=t[Se]||(t[Se]=new Set);for(let s=0,o=e.length;s<o;s++){const r=e[s];n.has(r)||(n.add(r),t.addEventListener(r,Ct))}}function V(e,t,n){n==null?e.removeAttribute(t):e.setAttribute(t,n)}function yt(e,t,n,s){s==null?e.removeAttributeNS(t,n):e.setAttributeNS(t,n,s)}function pt(e,t,n){n?e.setAttribute(t,""):e.removeAttribute(t)}function bt(e,t){t==null?e.removeAttribute("class"):e.className=t}function ue(e,t,n,s){if(s)Array.isArray(n)?(e[`$$${t}`]=n[0],e[`$$${t}Data`]=n[1]):e[`$$${t}`]=n;else if(Array.isArray(n)){const o=n[0];e.addEventListener(t,n[0]=r=>o.call(e,n[1],r))}else e.addEventListener(t,n,typeof n!="function"&&n)}function vt(e,t,n={}){const s=Object.keys(t||{}),o=Object.keys(n);let r,l;for(r=0,l=o.length;r<l;r++){const i=o[r];!i||i==="undefined"||t[i]||(Pe(e,i,!1),delete n[i])}for(r=0,l=s.length;r<l;r++){const i=s[r],a=!!t[i];!i||i==="undefined"||n[i]===a||!a||(Pe(e,i,!0),n[i]=a)}return n}function Ue(e,t,n){if(!t)return n?V(e,"style"):t;const s=e.style;if(typeof t=="string")return s.cssText=t;typeof n=="string"&&(s.cssText=n=void 0),n||(n={}),t||(t={});let o,r;for(r in n)t[r]==null&&s.removeProperty(r),delete n[r];for(r in t)o=t[r],o!==n[r]&&(s.setProperty(r,o),n[r]=o);return n}function At(e,t={},n,s){const o={};return B(()=>typeof t.ref=="function"&&de(t.ref,e)),B(()=>xt(e,t,n,!0,o,!0)),o}function de(e,t,n){return U(()=>e(t,n))}function C(e,t,n,s){if(n!==void 0&&!s&&(s=[]),typeof t!="function")return fe(e,t,s,n);B(o=>fe(e,t(),o,n),s)}function xt(e,t,n,s,o={},r=!1){t||(t={});for(const l in o)if(!(l in t)){if(l==="children")continue;o[l]=Ie(e,l,null,o[l],n,r,t)}for(const l in t){if(l==="children")continue;const i=t[l];o[l]=Ie(e,l,i,o[l],n,r,t)}}function $t(e){return e.toLowerCase().replace(/-([a-z])/g,(t,n)=>n.toUpperCase())}function Pe(e,t,n){const s=t.trim().split(/\s+/);for(let o=0,r=s.length;o<r;o++)e.classList.toggle(s[o],n)}function Ie(e,t,n,s,o,r,l){let i,a,d,h;if(t==="style")return Ue(e,n,s);if(t==="classList")return vt(e,n,s);if(n===s)return s;if(t==="ref")r||n(e);else if(t.slice(0,3)==="on:"){const c=t.slice(3);s&&e.removeEventListener(c,s,typeof s!="function"&&s),n&&e.addEventListener(c,n,typeof n!="function"&&n)}else if(t.slice(0,10)==="oncapture:"){const c=t.slice(10);s&&e.removeEventListener(c,s,!0),n&&e.addEventListener(c,n,!0)}else if(t.slice(0,2)==="on"){const c=t.slice(2).toLowerCase(),p=ht.has(c);if(!p&&s){const m=Array.isArray(s)?s[0]:s;e.removeEventListener(c,m)}(p||n)&&(ue(e,c,n,p),p&&Z([c]))}else if(t.slice(0,5)==="attr:")V(e,t.slice(5),n);else if(t.slice(0,5)==="bool:")pt(e,t.slice(5),n);else if((h=t.slice(0,5)==="prop:")||(d=dt.has(t))||(i=e.nodeName.includes("-")||"is"in l))h&&(t=t.slice(5),a=!0),t==="class"||t==="className"?bt(e,n):i&&!a&&!d?e[$t(t)]=n:e[t]=n;else{const c=t.indexOf(":")>-1&&gt[t.split(":")[0]];c?yt(e,c,t,n):V(e,ft[t]||t,n)}return n}function Ct(e){let t=e.target;const n=`$$${e.type}`,s=e.target,o=e.currentTarget,r=a=>Object.defineProperty(e,"target",{configurable:!0,value:a}),l=()=>{const a=t[n];if(a&&!t.disabled){const d=t[`${n}Data`];if(d!==void 0?a.call(t,d,e):a.call(t,e),e.cancelBubble)return}return t.host&&typeof t.host!="string"&&!t.host._$host&&t.contains(e.target)&&r(t.host),!0},i=()=>{for(;l()&&(t=t._$host||t.parentNode||t.host););};if(Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return t||document}}),e.composedPath){const a=e.composedPath();r(a[0]);for(let d=0;d<a.length-2&&(t=a[d],!!l());d++){if(t._$host){t=t._$host,i();break}if(t.parentNode===o)break}}else i();r(s)}function fe(e,t,n,s,o){for(;typeof n=="function";)n=n();if(t===n)return n;const r=typeof t,l=s!==void 0;if(e=l&&n[0]&&n[0].parentNode||e,r==="string"||r==="number"){if(r==="number"&&(t=t.toString(),t===n))return n;if(l){let i=n[0];i&&i.nodeType===3?i.data!==t&&(i.data=t):i=document.createTextNode(t),n=G(e,n,s,i)}else n!==""&&typeof n=="string"?n=e.firstChild.data=t:n=e.textContent=t}else if(t==null||r==="boolean")n=G(e,n,s);else{if(r==="function")return B(()=>{let i=t();for(;typeof i=="function";)i=i();n=fe(e,i,n,s)}),()=>n;if(Array.isArray(t)){const i=[],a=n&&Array.isArray(n);if(xe(i,t,n,o))return B(()=>n=fe(e,i,n,s,!0)),()=>n;if(i.length===0){if(n=G(e,n,s),l)return n}else a?n.length===0?Te(e,i,s):mt(e,n,i):(n&&G(e),Te(e,i));n=i}else if(t.nodeType){if(Array.isArray(n)){if(l)return n=G(e,n,s,t);G(e,n,null,t)}else n==null||n===""||!e.firstChild?e.appendChild(t):e.replaceChild(t,e.firstChild);n=t}else console.warn("Unrecognized value. Skipped inserting",t)}return n}function xe(e,t,n,s){let o=!1;for(let r=0,l=t.length;r<l;r++){let i=t[r],a=n&&n[e.length],d;if(!(i==null||i===!0||i===!1))if((d=typeof i)=="object"&&i.nodeType)e.push(i);else if(Array.isArray(i))o=xe(e,i,a)||o;else if(d==="function")if(s){for(;typeof i=="function";)i=i();o=xe(e,Array.isArray(i)?i:[i],Array.isArray(a)?a:[a])||o}else e.push(i),o=!0;else{const h=String(i);a&&a.nodeType===3&&a.data===h?e.push(a):e.push(document.createTextNode(h))}}return o}function Te(e,t,n=null){for(let s=0,o=t.length;s<o;s++)e.insertBefore(t[s],n)}function G(e,t,n,s){if(n===void 0)return e.textContent="";const o=s||document.createTextNode("");if(t.length){let r=!1;for(let l=t.length-1;l>=0;l--){const i=t[l];if(o!==i){const a=i.parentNode===e;!r&&!l?a?e.replaceChild(o,i):e.insertBefore(o,n):a&&i.remove()}else r=!0}}else e.insertBefore(o,n);return[o]}const kt=!1,te=new Map;async function St(e){if(te.has(e))return te.get(e);try{const t=await window.edenAPI.shellCommand("package/get-icon",{appId:e});return te.set(e,t.icon),t.icon}catch(t){console.warn(`Failed to fetch icon for ${e}:`,t),te.set(e,void 0);return}}const Pt="data:image/svg+xml,%3csvg%20width='64'%20height='64'%20viewBox='0%200%2064%2064'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3clinearGradient%20id='bg'%20x1='32'%20y1='4'%20x2='32'%20y2='60'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%234a4a4a'/%3e%3cstop%20offset='1'%20stop-color='%233a3a3a'/%3e%3c/linearGradient%3e%3c/defs%3e%3c!--%20Squircle%20background%20with%20gradient%20--%3e%3crect%20x='4'%20y='4'%20width='56'%20height='56'%20rx='14'%20fill='url(%23bg)'/%3e%3c!--%20Document%20lines%20icon%20centered%20--%3e%3cg%20transform='translate(16,%2016)'%20fill='%23e0e0e0'%3e%3crect%20x='5'%20y='6'%20width='22'%20height='3'%20rx='1.5'/%3e%3crect%20x='5'%20y='13'%20width='22'%20height='3'%20rx='1.5'/%3e%3crect%20x='5'%20y='20'%20width='15'%20height='3'%20rx='1.5'/%3e%3crect%20x='5'%20y='27'%20width='22'%20height='3'%20rx='1.5'/%3e%3c/g%3e%3c/svg%3e";var It=N("<div class=running-indicator>"),Tt=N("<div class=app-icon><div class=icon-container><img></div><div class=app-name>");function se(e){const[t]=Je(()=>e.icon?null:e.appId,s=>s?St(s):Promise.resolve(void 0)),n=()=>e.icon||t()||Pt;return(()=>{var s=Tt(),o=s.firstChild,r=o.firstChild,l=o.nextSibling;return ue(s,"contextmenu",e.onContextMenu,!0),ue(s,"click",e.onClick,!0),V(r,"draggable",!1),C(o,A(K,{get when(){return e.isRunning},get children(){return It()}}),null),C(l,()=>e.appName),B(i=>{var a=e.appName,d=n(),h=e.appName;return a!==i.e&&V(s,"title",i.e=a),d!==i.t&&V(r,"src",i.t=d),h!==i.a&&V(r,"alt",i.a=h),i},{e:void 0,t:void 0,a:void 0}),s})()}Z(["click","contextmenu"]);var _t=N("<div class=clock><div class=time></div><div class=date>");function Et(){const[e,t]=_(new Date),n=setInterval(()=>{t(new Date)},1e3);W(()=>clearInterval(n));const s=()=>e().toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"}),o=()=>e().toLocaleDateString("en-US",{weekday:"short",month:"short",day:"numeric"});return(()=>{var r=_t(),l=r.firstChild,i=l.nextSibling;return C(l,s),C(i,o),r})()}const Lt="data:image/svg+xml,%3csvg%20width='64'%20height='64'%20viewBox='0%200%2064%2064'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3clinearGradient%20id='bg'%20x1='32'%20y1='4'%20x2='32'%20y2='60'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%234a4a4a'/%3e%3cstop%20offset='1'%20stop-color='%233a3a3a'/%3e%3c/linearGradient%3e%3c/defs%3e%3c!--%20Squircle%20background%20with%20gradient%20--%3e%3crect%20x='4'%20y='4'%20width='56'%20height='56'%20rx='14'%20fill='url(%23bg)'/%3e%3c!--%20Grid%20of%204%20squares%20icon%20centered%20--%3e%3cg%20transform='translate(16,%2016)'%20fill='%23e0e0e0'%3e%3crect%20x='2'%20y='2'%20width='12'%20height='12'%20rx='2'/%3e%3crect%20x='18'%20y='2'%20width='12'%20height='12'%20rx='2'/%3e%3crect%20x='2'%20y='18'%20width='12'%20height='12'%20rx='2'/%3e%3crect%20x='18'%20y='18'%20width='12'%20height='12'%20rx='2'/%3e%3c/g%3e%3c/svg%3e";var _e=N("<div class=separator>"),Ot=N('<div class=dock><div class=dock-left><div class="app-icons magnify"></div></div><div class=dock-right>');function Dt(e){let t,n;const[s,o]=_(!0);ge(()=>{setTimeout(()=>{o(!1)},300)});function r(i){if(!t)return;t.getBoundingClientRect();const a=i.clientX,d=70,h=1.25;t.classList.add("magnify-active"),t.querySelectorAll(".app-icon").forEach(p=>{const m=p.querySelector(".icon-container");if(!m)return;const w=p.getBoundingClientRect(),E=w.left+w.width/2,F=Math.abs(a-E),M=Math.exp(-(F*F)/(2*d*d)),x=1+(h-1)*M;p.style.setProperty("--influence",M.toFixed(3));const S=-8*M;p.style.transform=`translateY(${S.toFixed(1)}px)`,p.style.zIndex=`${Math.round(x*100)}`,m.style.transform=`scale(${x.toFixed(3)})`})}function l(){if(!t)return;t.classList.remove("magnify-active"),t.querySelectorAll(".app-icon").forEach(a=>{const d=a.querySelector(".icon-container");d&&(d.style.transform=""),a.style.transform="",a.style.zIndex=""})}return(()=>{var i=Ot(),a=i.firstChild,d=a.firstChild,h=a.nextSibling,c=n;typeof c=="function"?de(c,i):n=i,d.addEventListener("mouseleave",l),d.$$mousemove=r;var p=t;return typeof p=="function"?de(p,d):t=d,C(d,A(ve,{get each(){return e.runningApps},children:m=>A(se,{get appId(){return m.id},get appName(){return m.name},get isRunning(){return m.isRunning},onClick:()=>e.onAppClick(m.id),onContextMenu:w=>{w.preventDefault(),e.onContextMenu({appId:m.id,appName:m.name,isRunning:m.isRunning,left:w.clientX,bottom:72})}})}),null),C(d,A(K,{get when(){return Ae(()=>e.runningApps.length>0)()&&e.pinnedApps.length>0},get children(){return _e()}}),null),C(d,A(ve,{get each(){return e.pinnedApps},children:m=>A(se,{get appId(){return m.id},get appName(){return m.name},get isRunning(){return m.isRunning},onClick:()=>e.onAppClick(m.id),onContextMenu:w=>{w.preventDefault(),console.log(w.clientX,w.clientY),e.onContextMenu({appId:m.id,appName:m.name,isRunning:m.isRunning,left:w.clientX,bottom:72})}})}),null),C(d,A(K,{get when(){return e.runningApps.length>0||e.pinnedApps.length>0},get children(){return _e()}}),null),C(d,A(se,{appId:"apps-view",appName:"All Apps",icon:Lt,get onClick(){return e.onShowAllApps}}),null),C(h,A(Et,{})),B(()=>i.classList.toggle("dock-initial",!!s())),i})()}Z(["mousemove"]);var Mt=N("<svg stroke-width=0>");function Y(e,t){const n=ke(e.a,t),[s,o]=at(n,["src"]),[r,l]=_(""),i=q(()=>t.title?`${e.c}<title>${t.title}</title>`:e.c);return Me(()=>l(i())),W(()=>{l("")}),(()=>{var a=Mt();return At(a,ke({get stroke(){return e.a?.stroke},get color(){return t.color||"currentColor"},get fill(){return t.color||"currentColor"},get style(){return{...t.style,overflow:"visible"}}},o,{get height(){return t.size||"1em"},get width(){return t.size||"1em"},xmlns:"http://www.w3.org/2000/svg",get innerHTML(){return r()}}),!0),C(a,()=>kt),a})()}function Rt(e){return Y({a:{viewBox:"0 0 448 512"},c:'<path d="M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288h111.5L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7H272.5l76.9-179.5z"/>'},e)}function Nt(e){return Y({a:{viewBox:"0 0 448 512"},c:'<path d="M159.3 5.4c7.8-7.3 19.9-7.2 27.7.1 27.6 25.9 53.5 53.8 77.7 84 11-14.4 23.5-30.1 37-42.9 7.9-7.4 20.1-7.4 28 .1 34.6 33 63.9 76.6 84.5 118 20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512 98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21 42.1-29.4 53.4-88.2 28.1-134.4-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5-16.5-21-46-58.5-62.8-79.8-6.3-8-18.3-8.1-24.7-.1-33.8 42.5-50.8 69.3-50.8 99.4.1 68.5 50.7 109.1 113.8 109.1z"/>'},e)}function Ft(e){return Y({a:{viewBox:"0 0 448 512"},c:'<path d="M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32v144H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h144v144c0 17.7 14.3 32 32 32s32-14.3 32-32V288h144c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z"/>'},e)}function Bt(e){return Y({a:{viewBox:"0 0 384 512"},c:'<path d="M0 128c0-35.3 28.7-64 64-64h256c35.3 0 64 28.7 64 64v256c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"/>'},e)}function Ut(e){return Y({a:{viewBox:"0 0 384 512"},c:'<path d="M32 32C32 14.3 46.3 0 64 0h256c17.7 0 32 14.3 32 32s-14.3 32-32 32h-29.5l11.4 148.2c36.7 19.9 65.7 53.2 79.5 94.7l1 3c3.3 9.8 1.6 20.5-4.4 28.8S362.3 352 352 352H32c-10.3 0-19.9-4.9-26-13.3s-7.7-19.1-4.4-28.8l1-3c13.8-41.5 42.8-74.8 79.5-94.7L93.5 64H64c-17.7 0-32-14.3-32-32zm128 352h64v96c0 17.7-14.3 32-32 32s-32-14.3-32-32v-96z"/>'},e)}function jt(e){return Y({a:{viewBox:"0 0 448 512"},c:'<path d="M135.2 17.7 128 32H32C14.3 32 0 46.3 0 64s14.3 32 32 32h384c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32l21.2 339c1.6 25.3 22.6 45 47.9 45h245.8c25.3 0 46.3-19.7 47.9-45L416 128z"/>'},e)}var Ht=N('<div class="eden-modal-overlay context-menu-overlay">'),Vt=N('<button class="eden-btn eden-btn-ghost eden-btn-sm context-menu-btn">Stop App'),qt=N('<div class=eden-popover><div class="eden-popover-title context-menu-title"></div><button class="eden-btn eden-btn-ghost eden-btn-sm context-menu-btn"> Hot Reload</button><button class="eden-btn eden-btn-ghost eden-btn-sm context-menu-btn"></button><button class="eden-btn eden-btn-ghost eden-btn-sm eden-btn-danger context-menu-btn">Uninstall');function je(e){const[t,n]=_(!1);ge(async()=>{try{(await window.edenAPI.shellCommand("package/is-hot-reload-enabled",{appId:e.menu.appId})).enabled&&n(!0)}catch(i){console.error("Failed to check hot reload status:",i)}});const s=async()=>{try{const i=await window.edenAPI.shellCommand("package/toggle-hot-reload",{appId:e.menu.appId});n(i.enabled)}catch(i){console.error("Failed to toggle hot reload:",i)}e.onClose()},o=async()=>{e.isAppPinned(e.menu.appId)?await e.onRemoveFromDock(e.menu.appId):await e.onAddToDock(e.menu.appId),e.onClose()},r=async()=>{await e.onStopApp(e.menu.appId),e.onClose()},l=async()=>{await e.onUninstallApp(e.menu.appId),e.onClose()};return[(()=>{var i=Ht();return ue(i,"click",e.onClose,!0),i})(),(()=>{var i=qt(),a=i.firstChild,d=a.nextSibling,h=d.firstChild,c=d.nextSibling,p=c.nextSibling,m=p.firstChild;return C(a,()=>e.menu.appName),C(i,A(K,{get when(){return e.menu.isRunning},get children(){var w=Vt(),E=w.firstChild;return w.$$click=r,C(w,A(Bt,{}),E),w}}),d),d.$$click=s,C(d,(()=>{var w=Ae(()=>!!t());return()=>w()?A(Nt,{}):A(Rt,{})})(),h),C(d,()=>t()?"Disable":"Enable",h),c.$$click=o,C(c,(()=>{var w=Ae(()=>!!e.isAppPinned(e.menu.appId));return()=>w()?A(Ut,{}):A(Ft,{})})(),null),C(c,()=>e.isAppPinned(e.menu.appId)?"Remove from Dock":"Add to Dock",null),p.$$click=l,C(p,A(jt,{}),m),B(w=>Ue(i,{...e.menu.left!==void 0&&{left:`${e.menu.left}px`},...e.menu.right!==void 0&&{right:`${e.menu.right}px`},...e.menu.top!==void 0&&{top:`${e.menu.top}px`},...e.menu.bottom!==void 0&&{bottom:`${e.menu.bottom}px`}},w)),i})()]}Z(["click"]);var Xt=N('<div class="eden-text-tertiary eden-text-md"style="grid-column:1 / -1;text-align:center;padding:var(--eden-space-2xl)">No apps found'),Kt=N('<div class=eden-modal-overlay style=background:rgba(0,0,0,0.4);backdrop-filter:none><div class="eden-modal eden-modal-lg"style=max-height:70vh;background:var(--eden-color-surface-primary)><div class=eden-modal-header><div class="eden-flex eden-gap-sm"style=flex:1><input type=text class=eden-input placeholder="Search apps..."></div></div><div class="eden-modal-body eden-scrollbar"><div class=eden-card-grid style=gap:var(--eden-space-lg)>'),zt=N('<div class="all-apps-tile eden-interactive">');function Gt(e){const[t,n]=_(""),[s,o]=_(null),[r,l]=_(null),[i,a]=_(!1),d=280;let h,c;const p=()=>{const g=t().toLowerCase().trim();return g?e.apps.filter(I=>I.name.toLowerCase().includes(g)||I.id.toLowerCase().includes(g)):e.apps};ge(()=>{c?.focus()}),W(()=>{const g=r();g&&clearTimeout(g),h&&clearTimeout(h)});function m(){const g=r();g&&(clearTimeout(g),l(null))}function w(){i()||(o(null),a(!0),h=window.setTimeout(()=>{e.onClose(),h=void 0},d))}function E(){i()||w()}async function F(g){i()||w();const I=e.apps.filter(T=>T.isRunning).map(T=>T.id);for(const T of I)try{await window.edenAPI.shellCommand("view/set-view-visibility",{appId:T,visible:!0})}catch(R){console.error(`Failed to set visibility for ${T}:`,R)}await e.onAppClick(g)}function M(g,I,T,R){i()||(g.preventDefault(),g.stopPropagation(),o({appId:I,appName:T,isRunning:R,left:g.clientX,top:g.clientY}))}function x(g,I,T,R){if(i())return;const v=window.setTimeout(()=>{const $="touches"in g?g.touches[0].clientX:g.clientX,L="touches"in g?g.touches[0].clientY:g.clientY;o({appId:I,appName:T,isRunning:R,left:$,top:L})},500);l(v)}function S(){m()}function P(g){g.key==="Escape"&&w()}return[(()=>{var g=Kt(),I=g.firstChild,T=I.firstChild,R=T.firstChild,v=R.firstChild,$=T.nextSibling,L=$.firstChild;g.$$keydown=P,g.$$click=E,I.$$click=f=>f.stopPropagation(),v.$$input=f=>n(f.currentTarget.value);var u=c;return typeof u=="function"?de(u,v):c=v,C(L,A(ve,{get each(){return p()},children:f=>(()=>{var y=zt();return y.addEventListener("touchcancel",S),y.$$touchend=S,y.$$touchstart=O=>x(O,f.id,f.name,f.isRunning),y.addEventListener("mouseleave",S),y.$$mouseup=S,y.$$mousedown=O=>{O.button===0&&x(O,f.id,f.name,f.isRunning)},y.$$contextmenu=O=>M(O,f.id,f.name,f.isRunning),y.$$click=async()=>{s()||i()||await F(f.id)},C(y,A(se,{get appId(){return f.id},get appName(){return f.name},get isRunning(){return f.isRunning}})),B(()=>y.classList.toggle("running",!!f.isRunning)),y})()}),null),C(L,A(K,{get when(){return p().length===0},get children(){return Xt()}}),null),B(f=>{var y=!!i(),O=!!i();return y!==f.e&&g.classList.toggle("closing",f.e=y),O!==f.t&&I.classList.toggle("closing",f.t=O),f},{e:void 0,t:void 0}),B(()=>v.value=t()),g})(),A(K,{get when(){return s()},children:g=>A(je,{get menu(){return g()},get isAppPinned(){return e.isAppPinned},get onStopApp(){return e.onStopApp},get onAddToDock(){return e.onAddToDock},get onRemoveFromDock(){return e.onRemoveFromDock},get onUninstallApp(){return e.onUninstallApp},onClose:()=>o(null)})})]}Z(["click","keydown","input","contextmenu","mousedown","mouseup","touchstart","touchend"]);var Yt=N("<div class=shell-overlay>");const Ee=72,Le="pinned-dock-apps";function Qt(){const[e,t]=_([]),[n,s]=_([]),[o,r]=_([]),[l,i]=_(!1),[a,d]=_(null),h=async()=>{try{const u=await window.edenAPI.shellCommand("db/get",{key:Le});if(u.value){const f=JSON.parse(u.value);Array.isArray(f)&&r(f)}}catch(u){console.error("Failed to load pinned dock apps:",u)}},c=async u=>{try{await window.edenAPI.shellCommand("db/set",{key:Le,value:JSON.stringify(u)})}catch(f){console.error("Failed to save pinned dock apps:",f)}},p=async u=>{const f=o();if(!f.includes(u)){const y=[...f,u];r(y),await c(y)}},m=async u=>{const y=o().filter(O=>O!==u);r(y),await c(y)},w=u=>o().includes(u),E=()=>e().filter(u=>!o().includes(u.manifest.id)).map(u=>({id:u.manifest.id,name:u.manifest.name,isRunning:!0})),F=()=>{const u=new Set(e().map(y=>y.manifest.id)),f=n();return o().map(y=>{const O=f.find(me=>me.id===y);return O?{id:y,name:O.name,isRunning:u.has(y)}:null}).filter(y=>y!==null)},M=()=>{const u=new Set(e().map(f=>f.manifest.id));return n().map(f=>({id:f.id,name:f.name,isRunning:u.has(f.id)}))},x=async()=>{try{const u=await window.edenAPI.shellCommand("package/list",{});Array.isArray(u)&&s(u);const f=await window.edenAPI.shellCommand("process/list",{});Array.isArray(f)&&t(f)}catch(u){console.error("Failed to load system info:",u)}},S=(u,f)=>u==="fullscreen"?{x:0,y:0,width:f.width,height:f.height}:{x:0,y:f.height-Ee,width:f.width,height:Ee},P=async u=>{try{await window.edenAPI.shellCommand("view/update-view-bounds",{appId:"com.eden.eveshell",bounds:u})}catch(f){console.error("Failed to update overlay bounds:",f)}},g=async u=>{try{const f=await window.edenAPI.shellCommand("view/window-size",{}),y=S(u,f);await P(y)}catch(f){console.error("Failed to resize overlay:",f)}},I=async u=>{if(e().some(y=>y.manifest.id===u))try{await window.edenAPI.shellCommand("view/focus-app",{appId:u})}catch(y){console.error("Failed to focus app:",y)}else try{await window.edenAPI.shellCommand("process/launch",{appId:u}),setTimeout(()=>{x()},500)}catch(y){console.error("Failed to launch app:",y)}},T=async()=>{const u=!l();i(u),await g(u?"fullscreen":"dock"),u&&x()},R=async u=>{try{await window.edenAPI.shellCommand("process/stop",{appId:u}),setTimeout(()=>{x()},300)}catch(f){console.error("Failed to stop app:",f)}},v=async u=>{try{confirm("Are you sure you want to uninstall this app?")&&(await window.edenAPI.shellCommand("package/uninstall",{appId:u}),await x())}catch(f){console.error("Failed to uninstall app:",f)}},$=async u=>{await g("fullscreen"),d(u)},L=async()=>{d(null),l()||await g("dock")};return ge(()=>{const u=()=>x(),f=y=>{const{windowSize:O}=y,me=l()?"fullscreen":"dock",Ve=S(me,O);P(Ve)};W(()=>{window.edenAPI.unsubscribe("process/launched",u),window.edenAPI.unsubscribe("process/stopped",u),window.edenAPI.unsubscribe("view/global-bounds-changed",f)}),(async()=>{x(),h(),await g("dock");try{await window.edenAPI.subscribe("process/launched",u),await window.edenAPI.subscribe("process/stopped",u),await window.edenAPI.subscribe("view/global-bounds-changed",f)}catch(y){console.error("Failed to subscribe to events:",y)}})()}),(()=>{var u=Yt();return C(u,A(K,{get when(){return l()},get children(){return A(Gt,{get apps(){return M()},onClose:T,onAppClick:I,onStopApp:R,onUninstallApp:v,isAppPinned:w,onAddToDock:p,onRemoveFromDock:m})}}),null),C(u,A(Dt,{get runningApps(){return E()},get pinnedApps(){return F()},onAppClick:I,onShowAllApps:T,onContextMenu:$}),null),C(u,A(K,{get when(){return a()},children:f=>A(je,{get menu(){return f()},isAppPinned:w,onStopApp:R,onAddToDock:p,onRemoveFromDock:m,onUninstallApp:v,onClose:L})}),null),B(()=>V(u,"data-mode",l()||a()?"fullscreen":"dock")),u})()}const He=document.getElementById("root");if(!He)throw new Error("Root element not found");wt(()=>A(Qt,{}),He);
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Eden</title>
7
+ <script type="module" crossorigin src="./assets/index-De0NEh_d.js"></script>
8
+ <link rel="stylesheet" crossorigin href="./assets/index-BS2yCXxK.css">
9
+ </head>
10
+ <body>
11
+ <div id="root"></div>
12
+ </body>
13
+ </html>
@@ -0,0 +1,12 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Eden</title>
7
+ </head>
8
+ <body>
9
+ <div id="root"></div>
10
+ <script type="module" src="/src/index.tsx"></script>
11
+ </body>
12
+ </html>