@fde-desktop/fde-core 0.4.8 → 0.4.9

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 (250) hide show
  1. package/dist/{AccordionChevron-CJXAq5o5.js → AccordionChevron-DxpOyInK.js} +1 -1
  2. package/dist/AccordionChevron-kn5kSrEc.cjs +1 -0
  3. package/dist/{ActionIcon-CtVbYlGY.js → ActionIcon-Drh4p6Fv.js} +32 -32
  4. package/dist/ActionIcon-alk2zZD6.cjs +1 -0
  5. package/dist/AppEmptyState-BWCUbf-B.cjs +1 -0
  6. package/dist/AppEmptyState-Bxpit0JV.js +49 -0
  7. package/dist/AppIcon-BU7a3ZNH.cjs +1 -0
  8. package/dist/{AppIcon-DCDuaU-t.js → AppIcon-XumS3bIG.js} +4 -4
  9. package/dist/AppMenuBar-B9U0n1Vv.cjs +1 -0
  10. package/dist/AppMenuBar-CnIEVjr8.js +2049 -0
  11. package/dist/{Box-DRm8EabO.js → Box-DSKR_qaa.js} +257 -271
  12. package/dist/Box-zW6Twge8.cjs +1 -0
  13. package/dist/Button-DMlnrqyx.cjs +1 -0
  14. package/dist/{Button-k7SxX1Xl.js → Button-wTOTQKxF.js} +38 -38
  15. package/dist/CalendarApp-B_e1B1Yn.cjs +1 -0
  16. package/dist/CalendarApp-C-l9D6nd.cjs +1 -0
  17. package/dist/CalendarApp-D0ftTCTG.js +1399 -0
  18. package/dist/{Center-CyryG5zn.js → Center-CmxXB9ql.js} +1 -1
  19. package/dist/Center-DKUE2pER.cjs +1 -0
  20. package/dist/CheckIcon-CZhtJD1O.cjs +1 -0
  21. package/dist/{CheckIcon-C3WjIR2i.js → CheckIcon-N5qBqXQJ.js} +1 -1
  22. package/dist/CodeServerApp-BOoGwZ7r.cjs +1 -0
  23. package/dist/CodeServerApp-Be3I5EGg.cjs +1 -0
  24. package/dist/{CodeServerApp-DY94cy1a.js → CodeServerApp-DW18EZxa.js} +48 -47
  25. package/dist/{ColorPicker-DvRR-wlQ.js → ColorPicker-BCNqi02x.js} +364 -364
  26. package/dist/ColorPicker-BrDE7tMO.cjs +1 -0
  27. package/dist/CreateItemApp-B12M1E_1.cjs +1 -0
  28. package/dist/{CreateItemApp-CtdH1K1g.js → CreateItemApp-TAAprby3.js} +13 -13
  29. package/dist/CreateItemApp-ePB6ujNl.cjs +1 -0
  30. package/dist/DeviceInfoApp-BMF18BGo.cjs +1 -0
  31. package/dist/DeviceInfoApp-DRy0H3aT.cjs +1 -0
  32. package/dist/{DeviceInfoApp-C306YvtZ.js → DeviceInfoApp-lgpwkeRR.js} +7 -7
  33. package/dist/{DownloadProgress-hdupSUBT.js → DownloadProgress-EoyCaD5O.js} +15 -15
  34. package/dist/DownloadProgress-VNdj22U8.cjs +1 -0
  35. package/dist/{FileIcon-BCpGMI5U.js → FileIcon-7JaSR3Gn.js} +26 -25
  36. package/dist/FileIcon-CIXopWLv.cjs +1 -0
  37. package/dist/{FilePickerApp-DMGuvahM.js → FilePickerApp-DaMgEqKh.js} +115 -115
  38. package/dist/FilePickerApp-DjmuSFqa.cjs +1 -0
  39. package/dist/FilesApp-Bp7wfrBZ.cjs +1 -0
  40. package/dist/FilesApp-BpJJRKhi.cjs +1 -0
  41. package/dist/{FilesApp-VXrmtt63.js → FilesApp-Cj94QG5o.js} +21 -21
  42. package/dist/{Group-BzwlMeob.js → Group-CtBJSfCo.js} +1 -1
  43. package/dist/Group-Dsrf6lEK.cjs +1 -0
  44. package/dist/{ImageViewerApp-CWiP6zx-.js → ImageViewerApp-BaLP3gkO.js} +18 -17
  45. package/dist/ImageViewerApp-DlHGeB3S.cjs +1 -0
  46. package/dist/ImageViewerApp-DoXd_Swu.cjs +1 -0
  47. package/dist/{ImageViewerMenuBar-BULkh_Ku.js → ImageViewerMenuBar-CabGSi9r.js} +15 -14
  48. package/dist/ImageViewerMenuBar-SAI7UNz7.cjs +1 -0
  49. package/dist/ImageViewerMenuBar-_Jr29gii.cjs +1 -0
  50. package/dist/MenuEditApp-BJjlPTOa.cjs +1 -0
  51. package/dist/MenuEditApp-BTRppYnD.js +497 -0
  52. package/dist/MenuEditApp-JPsGT-S3.cjs +1 -0
  53. package/dist/MenuEditMenuBar-BydGkqMw.cjs +1 -0
  54. package/dist/MenuEditMenuBar-DptlwVPQ.cjs +1 -0
  55. package/dist/{MenuEditMenuBar-B94z4Umw.js → MenuEditMenuBar-x1IQrHP2.js} +13 -12
  56. package/dist/NotesApp-BOcRGO7w.cjs +1 -0
  57. package/dist/NotesApp-CQe7UfBC.js +364 -0
  58. package/dist/NotesApp-OL07JXRE.cjs +1 -0
  59. package/dist/NotesMenuBar-BSI_2Y7p.cjs +1 -0
  60. package/dist/NotesMenuBar-Df6aW85J.cjs +1 -0
  61. package/dist/{NotesMenuBar-BB4NkKGf.js → NotesMenuBar-VhpIe68v.js} +10 -9
  62. package/dist/{Paper-DtUYKmYn.js → Paper-BX_9odR6.js} +3 -3
  63. package/dist/Paper-D8-BaBx2.cjs +1 -0
  64. package/dist/PdfApp-CNEbty5v.cjs +1 -0
  65. package/dist/PdfApp-CVv3ZCaM.cjs +1 -0
  66. package/dist/PdfApp-DL_R9-Nc.js +39 -0
  67. package/dist/PdfMenuBar--E6kDyrT.cjs +1 -0
  68. package/dist/PdfMenuBar-DZCLSOpR.js +39 -0
  69. package/dist/PdfMenuBar-Dj5cJUkg.cjs +1 -0
  70. package/dist/SettingsApp-BlmHuAjT.js +1831 -0
  71. package/dist/SettingsApp-CNvIgf5B.cjs +1 -0
  72. package/dist/SettingsApp-DWxanNE4.cjs +1 -0
  73. package/dist/SettingsMenuBar-CBoOBCfx.cjs +1 -0
  74. package/dist/SettingsMenuBar-DQooFkZN.cjs +1 -0
  75. package/dist/SettingsMenuBar-YWiJHaxq.js +42 -0
  76. package/dist/Slider-BUiHxjKO.cjs +1 -0
  77. package/dist/{Slider-BNO-vDFn.js → Slider-t-NcD60t.js} +148 -147
  78. package/dist/{Stack-CuDEaP7e.js → Stack-Bp1Ek2Gp.js} +1 -1
  79. package/dist/Stack-D4jAiRfc.cjs +1 -0
  80. package/dist/StorybookApp-CDLV_kja.cjs +1 -0
  81. package/dist/{StorybookApp-WYninkJo.js → StorybookApp-DKwlPCmo.js} +1 -1
  82. package/dist/TerminalApp-BCB7i1lR.cjs +1 -0
  83. package/dist/TerminalApp-BYc_gHLe.js +326 -0
  84. package/dist/TerminalApp-Dviz6aP2.cjs +1 -0
  85. package/dist/{TerminalMenuBar-iKLydNda.js → TerminalMenuBar-D5tPmgR_.js} +15 -14
  86. package/dist/TerminalMenuBar-DNshPmCa.cjs +1 -0
  87. package/dist/TerminalMenuBar-HzMSR7XP.cjs +1 -0
  88. package/dist/{TextInput-C3qfxxWI.js → TextInput-C-JtGWn1.js} +264 -263
  89. package/dist/TextInput-CrsmcOip.cjs +1 -0
  90. package/dist/Tooltip-D5Cd9wtz.cjs +1 -0
  91. package/dist/Tooltip-DOeIvhrO.js +1142 -0
  92. package/dist/{UnstyledButton-CI3kyRck.js → UnstyledButton-DGaG-e_G.js} +1 -1
  93. package/dist/UnstyledButton-DX2pTahr.cjs +1 -0
  94. package/dist/UploaderApp-C6xA5Rrf2.cjs +1 -0
  95. package/dist/UploaderApp-DnHIRxB_.cjs +1 -0
  96. package/dist/{UploaderApp-C9W_yCT-.js → UploaderApp-qBfpukR_.js} +118 -117
  97. package/dist/VscIcon-CcMdrFoJ.cjs +1 -0
  98. package/dist/{VscIcon-DueRJVTe.js → VscIcon-DBfVnArE.js} +1 -1
  99. package/dist/create-safe-context-Bboj0GWC.cjs +1 -0
  100. package/dist/desktopStore-CZoA9VHO.cjs +1 -0
  101. package/dist/{desktopStore-B0R1-BeA.js → desktopStore-F8bgLqFl.js} +256 -393
  102. package/dist/getRuntime-BFK0-8R1.cjs +1 -0
  103. package/dist/{getRuntime-CCRXVzJH.js → getRuntime-DAPqFH2W.js} +5 -5
  104. package/dist/imageViewerStore-BB_tssZR.cjs +1 -0
  105. package/dist/{imageViewerStore-CJMRXaQh.js → imageViewerStore-C5kWz0o7.js} +1 -1
  106. package/dist/index.cjs +1 -53
  107. package/dist/index.css +1 -1
  108. package/dist/index.js +1293 -5468
  109. package/dist/is-element-CdV0xajp.cjs +1 -0
  110. package/dist/menuEditStore-CTeM_dns.cjs +1 -0
  111. package/dist/{menuEditStore-C8S_EedM.js → menuEditStore-Cj1zAwxQ.js} +1 -1
  112. package/dist/notesStore-BCEl1D_v.cjs +1 -0
  113. package/dist/{notesStore-DKRgTTFn.js → notesStore-BPyRTHEc.js} +1 -1
  114. package/dist/rolldown-runtime-CAFD8bLK.js +11 -0
  115. package/dist/{settingsAppStore-KOeWRO6h.js → settingsAppStore-BDQ3ts1y.js} +1 -1
  116. package/dist/settingsAppStore-CMBc13VU.cjs +1 -0
  117. package/dist/{terminalStore-LWWjCvCe.js → terminalStore-IWdf4Mm6.js} +1 -1
  118. package/dist/terminalStore-iIuyodfK.cjs +1 -0
  119. package/dist/use-merged-ref-n9Gw9LNn.cjs +1 -0
  120. package/dist/{use-resolved-styles-api-AVDygMKo.cjs → use-resolved-styles-api-8OXE2oRq.cjs} +1 -1
  121. package/dist/{use-resolved-styles-api-pEOi2wiK.js → use-resolved-styles-api-DNUlJJZf.js} +1 -1
  122. package/dist/use-uncontrolled-DDJVQiM_.cjs +1 -0
  123. package/dist/{useAdaptiveDimensions-CunsU0mn.js → useAdaptiveDimensions-AVDc_qPa.js} +1 -1
  124. package/dist/useAdaptiveDimensions-CfITBJ_m.cjs +1 -0
  125. package/dist/{useCloseInterceptor-CuKAAFnj.js → useCloseInterceptor-BZd3VILp.js} +12 -12
  126. package/dist/useCloseInterceptor-yntBEzNc.cjs +1 -0
  127. package/dist/{useDynamicIcon-GJg3vWsJ.js → useDynamicIcon-Bf0t2foA.js} +1 -1
  128. package/dist/useDynamicIcon-DJ_il30E.cjs +1 -0
  129. package/dist/{useOpenApp-JHCPTBWa.js → useOpenApp-CBIm7Gzl.js} +3 -3
  130. package/dist/useOpenApp-DW4x79Zg.cjs +1 -0
  131. package/dist/useResolvedUrl-BkMPM1fM.cjs +1 -0
  132. package/dist/{useResolvedUrl-DFKXq598.js → useResolvedUrl-DQpLqOoL.js} +2 -2
  133. package/package.json +1 -1
  134. package/dist/AccordionChevron-DBXp38Lm.cjs +0 -1
  135. package/dist/ActionIcon-C_SfdBfx.cjs +0 -1
  136. package/dist/AppEmptyState-BTujnL_b.js +0 -4962
  137. package/dist/AppEmptyState-Dc4GaDfu.cjs +0 -1
  138. package/dist/AppIcon--qzR4sgf.cjs +0 -1
  139. package/dist/AppMenuBar-BiHbNg9V.cjs +0 -9
  140. package/dist/AppMenuBar-CHJy8OF0.js +0 -2639
  141. package/dist/Box-D_64wv6n.cjs +0 -1
  142. package/dist/Button-D0FXpkur.cjs +0 -1
  143. package/dist/CalendarApp-C1HvuJoa.cjs +0 -1
  144. package/dist/CalendarApp-DBEQqsS_.js +0 -1721
  145. package/dist/Center-T4No_FAa.cjs +0 -1
  146. package/dist/CheckIcon-CBMLR6Gc.cjs +0 -1
  147. package/dist/CodeServerApp-B3l5QPuG.cjs +0 -1
  148. package/dist/CodeServerApp-BpeALSaX.js +0 -2
  149. package/dist/CodeServerApp-CRjCngFv.cjs +0 -1
  150. package/dist/ColorPicker-BL4UbKCV.cjs +0 -1
  151. package/dist/CreateItemApp-BU9wmjKM.cjs +0 -1
  152. package/dist/CreateItemApp-t9F-a6wD.cjs +0 -1
  153. package/dist/DeviceInfoApp-Cdju_LIB.cjs +0 -1
  154. package/dist/DeviceInfoApp-CyB01v4D.cjs +0 -1
  155. package/dist/DownloadProgress-IRw1dzLX.cjs +0 -1
  156. package/dist/FileIcon-BCrsxmtt.cjs +0 -1
  157. package/dist/FilePickerApp-Eu0cr2Cm.cjs +0 -1
  158. package/dist/FilesApp-30OjnOuP.cjs +0 -1
  159. package/dist/FilesApp-BvlzPNuO.cjs +0 -1
  160. package/dist/Group-DhwePB84.cjs +0 -1
  161. package/dist/ImageViewerApp-BOz59TGc.cjs +0 -1
  162. package/dist/ImageViewerApp-BeqY6voE.cjs +0 -1
  163. package/dist/ImageViewerApp-DBAfJPSo.js +0 -2
  164. package/dist/ImageViewerMenuBar-Cb0Nr5-M.js +0 -2
  165. package/dist/ImageViewerMenuBar-CoEp0RxK.cjs +0 -1
  166. package/dist/ImageViewerMenuBar-zOkJtqKo.cjs +0 -1
  167. package/dist/MenuEditApp-BoKtj2GH.js +0 -2
  168. package/dist/MenuEditApp-D21sEp86.js +0 -2615
  169. package/dist/MenuEditApp-k3cPfTG9.cjs +0 -1
  170. package/dist/MenuEditApp-sz9GlLVH.cjs +0 -5
  171. package/dist/MenuEditMenuBar-6QxlIDpl.cjs +0 -1
  172. package/dist/MenuEditMenuBar-Bv6R42lf.js +0 -2
  173. package/dist/MenuEditMenuBar-CBsmH_-T.cjs +0 -1
  174. package/dist/NotesApp-BtR55Hva.cjs +0 -207
  175. package/dist/NotesApp-C59exz_9.js +0 -16154
  176. package/dist/NotesApp-D47I5LS_.js +0 -2
  177. package/dist/NotesApp-lOwsi2sg.cjs +0 -1
  178. package/dist/NotesMenuBar-BZITC74y.cjs +0 -1
  179. package/dist/NotesMenuBar-Bp0sPqyR.cjs +0 -1
  180. package/dist/NotesMenuBar-xlfODmMA.js +0 -2
  181. package/dist/Paper-DwCpwWwH.cjs +0 -1
  182. package/dist/PdfApp-1XbFGfoY.cjs +0 -1
  183. package/dist/PdfApp-BhIoJWeK.cjs +0 -1
  184. package/dist/PdfApp-C5Rt1Zaw.js +0 -2
  185. package/dist/PdfApp-C8Hwxxqh.js +0 -38
  186. package/dist/PdfMenuBar-BA9rKuMP.cjs +0 -1
  187. package/dist/PdfMenuBar-JXHqwxhZ.cjs +0 -1
  188. package/dist/PdfMenuBar-R0fu7oYF.js +0 -2
  189. package/dist/PdfMenuBar-sd-9Vk3h.js +0 -38
  190. package/dist/SettingsApp-BA-5B4RA.cjs +0 -1
  191. package/dist/SettingsApp-B_rev1xh.cjs +0 -1
  192. package/dist/SettingsApp-Ck4aUXs5.js +0 -2
  193. package/dist/SettingsApp-DUMKSA3K.js +0 -2425
  194. package/dist/SettingsMenuBar-BPwv8JQK.js +0 -41
  195. package/dist/SettingsMenuBar-D8R7hOik.js +0 -2
  196. package/dist/SettingsMenuBar-DDrjZLmg.cjs +0 -1
  197. package/dist/SettingsMenuBar-DQjUa8g1.cjs +0 -1
  198. package/dist/Slider-Bg_EIBg6.cjs +0 -1
  199. package/dist/Stack-BOaJgV3N.cjs +0 -1
  200. package/dist/StorybookApp-Bkr-7mXp.cjs +0 -1
  201. package/dist/TerminalApp-8XbsKAWa.js +0 -10041
  202. package/dist/TerminalApp-Bq2e7QQu.cjs +0 -1
  203. package/dist/TerminalApp-CVu3Axc9.js +0 -2
  204. package/dist/TerminalApp-b7_d0jRO.cjs +0 -36
  205. package/dist/TerminalMenuBar-Cb8x9laS.js +0 -2
  206. package/dist/TerminalMenuBar-De-FH5AE.cjs +0 -1
  207. package/dist/TerminalMenuBar-yOaWd-hn.cjs +0 -1
  208. package/dist/TextInput-DcYns3hz.cjs +0 -1
  209. package/dist/Tooltip-CAOO-qdx.js +0 -3185
  210. package/dist/Tooltip-DDh_x-CB.cjs +0 -1
  211. package/dist/UnstyledButton-Cl5RuIid.cjs +0 -1
  212. package/dist/UploaderApp-BZXW75A0.cjs +0 -1
  213. package/dist/UploaderApp-CPpStgP5.cjs +0 -1
  214. package/dist/UploaderApp-DHsMQN-f.js +0 -2
  215. package/dist/VscIcon-CxEmqD80.cjs +0 -1
  216. package/dist/chunk-BQCxAhux.js +0 -23
  217. package/dist/chunk-CiTBaPhY.cjs +0 -1
  218. package/dist/create-safe-context-95P-Bfg3.cjs +0 -1
  219. package/dist/desktopStore-Cox-Og1z.cjs +0 -1
  220. package/dist/fc-DejOsQyD.cjs +0 -1
  221. package/dist/fc-kd8WzIER.js +0 -20536
  222. package/dist/fc-xJ_v2ayq.cjs +0 -184
  223. package/dist/fi-BahYsbim.js +0 -9993
  224. package/dist/fi-BkhyTcZo.cjs +0 -1
  225. package/dist/getRuntime-BLXyQZBB.cjs +0 -1
  226. package/dist/iconBase-B4UCuSvv.cjs +0 -1
  227. package/dist/iconBase-D7iPes7B.js +0 -108
  228. package/dist/imageViewerStore-CH1qW6md.cjs +0 -1
  229. package/dist/is-element-BocgicRg.cjs +0 -1
  230. package/dist/menuEditStore-CU7IAg3L.cjs +0 -1
  231. package/dist/notesStore-zKmChTfF.cjs +0 -1
  232. package/dist/react-DYmzHD0X.js +0 -27
  233. package/dist/react-Dldg32sN.cjs +0 -1
  234. package/dist/settingsAppStore-BrlImdAH.cjs +0 -1
  235. package/dist/terminalStore-fZe5t7Ty.cjs +0 -1
  236. package/dist/use-merged-ref-BI9n1hUK.cjs +0 -1
  237. package/dist/use-uncontrolled-BPrfGv0W.cjs +0 -1
  238. package/dist/useAdaptiveDimensions-Btp0m5Pm.cjs +0 -1
  239. package/dist/useCloseInterceptor-a_6Lcuqj.cjs +0 -1
  240. package/dist/useDynamicIcon-SytdL1Tu.cjs +0 -1
  241. package/dist/useOpenApp-BdarhIgl.cjs +0 -1
  242. package/dist/useResolvedUrl-Be5ZlCX7.cjs +0 -1
  243. package/dist/useTranslation-DMRGdqZi.js +0 -279
  244. package/dist/useTranslation-D_O7S4RJ.cjs +0 -1
  245. package/dist/vsc-Ciibqbxo.cjs +0 -1
  246. package/dist/vsc-DGKSpOAR.js +0 -9574
  247. /package/dist/{Colors-hca6raEG.js → Colors-ClnDxnyA.js} +0 -0
  248. /package/dist/{Colors-BxX4G8kX.cjs → Colors-zP2AFgU3.cjs} +0 -0
  249. /package/dist/{useMenuBarUtils-Bp5PiztD.cjs → useMenuBarUtils-nJIPJGIQ.cjs} +0 -0
  250. /package/dist/{useMenuBarUtils-ChmpZjwu.js → useMenuBarUtils-nmu9yehT.js} +0 -0
@@ -1,181 +1,44 @@
1
- import { i as e, n as t } from "./getRuntime-CCRXVzJH.js";
2
- import { t as n } from "./react-DYmzHD0X.js";
3
- //#region ../../node_modules/.bun/zustand@5.0.12+10f197a4cef36846/node_modules/zustand/esm/middleware.mjs
4
- function r(e, t) {
5
- let n;
6
- try {
7
- n = e();
8
- } catch {
9
- return;
10
- }
11
- return {
12
- getItem: (e) => {
13
- let r = (e) => e === null ? null : JSON.parse(e, t?.reviver), i = n.getItem(e) ?? null;
14
- return i instanceof Promise ? i.then(r) : r(i);
15
- },
16
- setItem: (e, r) => n.setItem(e, JSON.stringify(r, t?.replacer)),
17
- removeItem: (e) => n.removeItem(e)
18
- };
19
- }
20
- var i = (e) => (t) => {
21
- try {
22
- let n = e(t);
23
- return n instanceof Promise ? n : {
24
- then(e) {
25
- return i(e)(n);
26
- },
27
- catch(e) {
28
- return this;
29
- }
30
- };
31
- } catch (e) {
32
- return {
33
- then(e) {
34
- return this;
35
- },
36
- catch(t) {
37
- return i(t)(e);
38
- }
39
- };
40
- }
41
- }, a = (e, t) => (n, a, o) => {
42
- let s = {
43
- storage: r(() => window.localStorage),
44
- partialize: (e) => e,
45
- version: 0,
46
- merge: (e, t) => ({
47
- ...t,
48
- ...e
49
- }),
50
- ...t
51
- }, c = !1, l = 0, u = /* @__PURE__ */ new Set(), d = /* @__PURE__ */ new Set(), f = s.storage;
52
- if (!f) return e((...e) => {
53
- console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`), n(...e);
54
- }, a, o);
55
- let p = () => {
56
- let e = s.partialize({ ...a() });
57
- return f.setItem(s.name, {
58
- state: e,
59
- version: s.version
60
- });
61
- }, m = o.setState;
62
- o.setState = (e, t) => (m(e, t), p());
63
- let h = e((...e) => (n(...e), p()), a, o);
64
- o.getInitialState = () => h;
65
- let g, _ = () => {
66
- if (!f) return;
67
- let e = ++l;
68
- c = !1, u.forEach((e) => e(a() ?? h));
69
- let t = s.onRehydrateStorage?.call(s, a() ?? h) || void 0;
70
- return i(f.getItem.bind(f))(s.name).then((e) => {
71
- if (e) if (typeof e.version == "number" && e.version !== s.version) {
72
- if (s.migrate) {
73
- let t = s.migrate(e.state, e.version);
74
- return t instanceof Promise ? t.then((e) => [!0, e]) : [!0, t];
75
- }
76
- console.error("State loaded from storage couldn't be migrated since no migrate function was provided");
77
- } else return [!1, e.state];
78
- return [!1, void 0];
79
- }).then((t) => {
80
- if (e !== l) return;
81
- let [r, i] = t;
82
- if (g = s.merge(i, a() ?? h), n(g, !0), r) return p();
83
- }).then(() => {
84
- e === l && (t?.(a(), void 0), g = a(), c = !0, d.forEach((e) => e(g)));
85
- }).catch((n) => {
86
- e === l && t?.(void 0, n);
87
- });
88
- };
89
- return o.persist = {
90
- setOptions: (e) => {
91
- s = {
92
- ...s,
93
- ...e
94
- }, e.storage && (f = e.storage);
95
- },
96
- clearStorage: () => {
97
- f?.removeItem(s.name);
98
- },
99
- getOptions: () => s,
100
- rehydrate: () => _(),
101
- hasHydrated: () => c,
102
- onHydrate: (e) => (u.add(e), () => {
103
- u.delete(e);
104
- }),
105
- onFinishHydration: (e) => (d.add(e), () => {
106
- d.delete(e);
107
- })
108
- }, s.skipHydration || _(), g || h;
109
- }, o = [];
110
- for (let e = 0; e < 256; ++e) o.push((e + 256).toString(16).slice(1));
111
- function s(e, t = 0) {
112
- return (o[e[t + 0]] + o[e[t + 1]] + o[e[t + 2]] + o[e[t + 3]] + "-" + o[e[t + 4]] + o[e[t + 5]] + "-" + o[e[t + 6]] + o[e[t + 7]] + "-" + o[e[t + 8]] + o[e[t + 9]] + "-" + o[e[t + 10]] + o[e[t + 11]] + o[e[t + 12]] + o[e[t + 13]] + o[e[t + 14]] + o[e[t + 15]]).toLowerCase();
113
- }
114
- //#endregion
115
- //#region ../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/rng.js
116
- var c, l = new Uint8Array(16);
117
- function u() {
118
- if (!c) {
119
- if (typeof crypto > "u" || !crypto.getRandomValues) throw Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
120
- c = crypto.getRandomValues.bind(crypto);
121
- }
122
- return c(l);
123
- }
124
- var d = { randomUUID: typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto) };
125
- //#endregion
126
- //#region ../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/v4.js
127
- function f(e, t, n) {
128
- e ||= {};
129
- let r = e.random ?? e.rng?.() ?? u();
130
- if (r.length < 16) throw Error("Random bytes length must be >= 16");
131
- if (r[6] = r[6] & 15 | 64, r[8] = r[8] & 63 | 128, t) {
132
- if (n ||= 0, n < 0 || n + 16 > t.length) throw RangeError(`UUID byte range ${n}:${n + 15} is out of buffer bounds`);
133
- for (let e = 0; e < 16; ++e) t[n + e] = r[e];
134
- return t;
135
- }
136
- return s(r);
137
- }
138
- function p(e, t, n) {
139
- return d.randomUUID && !t && !e ? d.randomUUID() : f(e, t, n);
140
- }
141
- //#endregion
1
+ import { i as e, n as t } from "./getRuntime-DAPqFH2W.js";
2
+ import { create as n } from "zustand";
3
+ import { createJSONStorage as r, persist as i } from "zustand/middleware";
4
+ import { v4 as a, v4 as o } from "uuid";
142
5
  //#region src/utils/uuid.ts
143
- function m() {
144
- return p();
6
+ function s() {
7
+ return a();
145
8
  }
146
9
  //#endregion
147
10
  //#region src/domain/entities/Window.ts
148
- var h = (e) => ({
11
+ var c = (e) => ({
149
12
  alwaysOnTop: !1,
150
13
  ...e,
151
- id: m(),
14
+ id: s(),
152
15
  isOpen: !0,
153
16
  state: "normal",
154
17
  zIndex: 0
155
- }), g = (e) => ({
18
+ }), l = (e) => ({
156
19
  ...e,
157
- id: m()
158
- }), _ = (e) => ({
159
- id: m(),
20
+ id: s()
21
+ }), u = (e) => ({
22
+ id: s(),
160
23
  name: e.name,
161
24
  fcIcon: e.fcIcon,
162
25
  appIds: e.appIds ?? [],
163
26
  isExpanded: e.isExpanded ?? !1,
164
27
  isPredefined: e.isPredefined ?? !1,
165
28
  order: e.order ?? 0
166
- }), ee = (e) => ({
167
- id: m(),
29
+ }), d = (e) => ({
30
+ id: s(),
168
31
  name: e.name,
169
32
  fcIcon: e.fcIcon,
170
33
  appIds: e.appIds ?? [],
171
34
  isExpanded: e.isExpanded ?? !1,
172
35
  isPredefined: !0,
173
36
  order: e.order ?? 0
174
- }), te = (e, t) => ({
37
+ }), f = (e, t) => ({
175
38
  ...e,
176
39
  ...t
177
- }), v = (e, t = null, n = {}) => ({
178
- id: m(),
40
+ }), p = (e, t = null, n = {}) => ({
41
+ id: s(),
179
42
  name: e,
180
43
  type: "folder",
181
44
  parentId: t,
@@ -183,8 +46,8 @@ var h = (e) => ({
183
46
  createdAt: /* @__PURE__ */ new Date(),
184
47
  updatedAt: /* @__PURE__ */ new Date(),
185
48
  ...n
186
- }), y = (e, t, n = null, r, i) => ({
187
- id: m(),
49
+ }), m = (e, t, n = null, r, i) => ({
50
+ id: s(),
188
51
  name: e,
189
52
  type: "file",
190
53
  content: t,
@@ -193,12 +56,12 @@ var h = (e) => ({
193
56
  createdAt: /* @__PURE__ */ new Date(),
194
57
  updatedAt: /* @__PURE__ */ new Date(),
195
58
  ...i === void 0 ? {} : { url: i }
196
- }), ne = 1e4, re = class {
59
+ }), ee = 1e4, te = class {
197
60
  windows = /* @__PURE__ */ new Map();
198
61
  nextZIndex = 1;
199
62
  assignZIndex(e) {
200
63
  let t = this.nextZIndex++;
201
- return e ? ne + t : t;
64
+ return e ? ee + t : t;
202
65
  }
203
66
  reset() {
204
67
  this.windows.clear(), this.nextZIndex = 1;
@@ -208,7 +71,7 @@ var h = (e) => ({
208
71
  let t = 0;
209
72
  for (let n of e) {
210
73
  this.windows.set(n.id, n);
211
- let e = n.alwaysOnTop ?? !1 ? n.zIndex - ne : n.zIndex;
74
+ let e = n.alwaysOnTop ?? !1 ? n.zIndex - ee : n.zIndex;
212
75
  e > t && (t = e);
213
76
  }
214
77
  this.nextZIndex = t + 1;
@@ -220,7 +83,7 @@ var h = (e) => ({
220
83
  return this.windows.get(e);
221
84
  }
222
85
  open(e) {
223
- let t = h(e);
86
+ let t = c(e);
224
87
  return t.zIndex = this.assignZIndex(t.alwaysOnTop ?? !1), this.windows.set(t.id, t), t;
225
88
  }
226
89
  close(e) {
@@ -260,7 +123,7 @@ var h = (e) => ({
260
123
  ...t
261
124
  });
262
125
  }
263
- }, ie = {
126
+ }, ne = {
264
127
  ".txt": "text/plain",
265
128
  ".md": "text/markdown",
266
129
  ".markdown": "text/markdown",
@@ -281,28 +144,28 @@ var h = (e) => ({
281
144
  ".jsdos": "application/jsdos",
282
145
  ".zip": "application/zip"
283
146
  };
284
- function b(e) {
147
+ function h(e) {
285
148
  let t = e.lastIndexOf(".");
286
- if (!(t === -1 || t === e.length - 1)) return ie[e.slice(t).toLowerCase()];
149
+ if (!(t === -1 || t === e.length - 1)) return ne[e.slice(t).toLowerCase()];
287
150
  }
288
151
  //#endregion
289
152
  //#region src/utils/hashBlob.ts
290
- function ae(e) {
153
+ function re(e) {
291
154
  let t = 5381;
292
155
  for (let n = 0; n < e.length; n++) t = (t << 5) + t ^ e[n], t >>>= 0;
293
156
  return t.toString(16).padStart(8, "0") + e.length.toString(16).padStart(8, "0");
294
157
  }
295
- async function x(e) {
158
+ async function g(e) {
296
159
  let t = await e.arrayBuffer(), n = new Uint8Array(t);
297
160
  if (crypto?.subtle) {
298
161
  let e = await crypto.subtle.digest("SHA-256", n);
299
162
  return Array.from(new Uint8Array(e)).map((e) => e.toString(16).padStart(2, "0")).join("");
300
163
  }
301
- return console.warn("[hashBlob] crypto.subtle unavailable (non-secure context), using fallback hash"), ae(n);
164
+ return console.warn("[hashBlob] crypto.subtle unavailable (non-secure context), using fallback hash"), re(n);
302
165
  }
303
166
  //#endregion
304
167
  //#region src/infrastructure/adapters/IndexedDBFileSystem.ts
305
- var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T = class {
168
+ var ie = "fde-desktop-fs", _ = "nodes", v = "blobs", y = "metadata", ae = 2, oe = class {
306
169
  db = null;
307
170
  nodes = /* @__PURE__ */ new Map();
308
171
  ready = !1;
@@ -317,20 +180,20 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
317
180
  }
318
181
  openDatabase() {
319
182
  return new Promise((e, t) => {
320
- let n = indexedDB.open(oe, se);
183
+ let n = indexedDB.open(ie, ae);
321
184
  n.onerror = () => t(n.error), n.onsuccess = () => {
322
185
  this.db = n.result, e();
323
186
  }, n.onupgradeneeded = () => {
324
187
  let e = n.result;
325
- e.objectStoreNames.contains(S) || e.createObjectStore(S), e.objectStoreNames.contains(C) || e.createObjectStore(C), e.objectStoreNames.contains(w) || e.createObjectStore(w);
188
+ e.objectStoreNames.contains(_) || e.createObjectStore(_), e.objectStoreNames.contains(v) || e.createObjectStore(v), e.objectStoreNames.contains(y) || e.createObjectStore(y);
326
189
  };
327
190
  });
328
191
  }
329
192
  async loadNodes() {
330
193
  if (this.db) return new Promise((e, t) => {
331
- let n = this.db.transaction(S, "readonly"), r = n.objectStore(S).getAll();
194
+ let n = this.db.transaction(_, "readonly"), r = n.objectStore(_).getAll();
332
195
  r.onsuccess = () => {
333
- let i = n.objectStore(S).getAllKeys();
196
+ let i = n.objectStore(_).getAllKeys();
334
197
  i.onsuccess = () => {
335
198
  let t = r.result, n = i.result;
336
199
  for (let e = 0; e < t.length; e++) {
@@ -358,7 +221,7 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
358
221
  }
359
222
  persistAllNodes() {
360
223
  return this.db ? new Promise((e, t) => {
361
- let n = this.db.transaction(S, "readwrite"), r = n.objectStore(S);
224
+ let n = this.db.transaction(_, "readwrite"), r = n.objectStore(_);
362
225
  for (let [e, t] of this.nodes.entries()) r.put(t, e);
363
226
  n.oncomplete = () => e(), n.onerror = () => t(n.error);
364
227
  }) : Promise.resolve();
@@ -372,7 +235,7 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
372
235
  if (!this.db || this.persistQueue.length === 0) return;
373
236
  let e = [...this.persistQueue];
374
237
  this.persistQueue = [];
375
- let t = this.db.transaction(S, "readwrite"), n = t.objectStore(S);
238
+ let t = this.db.transaction(_, "readwrite"), n = t.objectStore(_);
376
239
  t.onerror = () => {
377
240
  console.error("IndexedDB write failed", t.error);
378
241
  };
@@ -393,9 +256,9 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
393
256
  }
394
257
  async saveBlob(e) {
395
258
  this.db || await this.initialize();
396
- let t = await x(e);
259
+ let t = await g(e);
397
260
  return await this.getBlob(`idb://${t}`) ? `idb://${t}` : new Promise((n, r) => {
398
- let i = this.db.transaction(C, "readwrite").objectStore(C).put(e, t);
261
+ let i = this.db.transaction(v, "readwrite").objectStore(v).put(e, t);
399
262
  i.onsuccess = () => n(`idb://${t}`), i.onerror = () => r(i.error);
400
263
  });
401
264
  }
@@ -403,7 +266,7 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
403
266
  this.db || await this.initialize();
404
267
  let t = e.startsWith("idb://") ? e.slice(6) : e;
405
268
  return new Promise((e, n) => {
406
- let r = this.db.transaction(C, "readonly").objectStore(C).get(t);
269
+ let r = this.db.transaction(v, "readonly").objectStore(v).get(t);
407
270
  r.onsuccess = () => e(r.result ?? null), r.onerror = () => n(r.error);
408
271
  });
409
272
  }
@@ -414,7 +277,7 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
414
277
  }
415
278
  async clearBlobs() {
416
279
  if (this.db) return new Promise((e, t) => {
417
- let n = this.db.transaction(C, "readwrite").objectStore(C).clear();
280
+ let n = this.db.transaction(v, "readwrite").objectStore(v).clear();
418
281
  n.onsuccess = () => e(), n.onerror = () => t(n.error);
419
282
  });
420
283
  }
@@ -439,11 +302,11 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
439
302
  return this.nodes.size === 0;
440
303
  }
441
304
  async createFile(e, t, n, r) {
442
- let i = y(e, t, n, b(e), r);
305
+ let i = m(e, t, n, h(e), r);
443
306
  return this.nodes.set(i.id, i), n && this.addChildToFolder(n, i.id), this.persistNode(i.id, i), i;
444
307
  }
445
308
  async createFolder(e, t, n, r) {
446
- let i = v(e, t, {
309
+ let i = p(e, t, {
447
310
  iconName: n,
448
311
  iconColor: r
449
312
  });
@@ -483,36 +346,36 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
483
346
  }
484
347
  async getManifestSha() {
485
348
  return this.db || await this.initialize(), new Promise((e, t) => {
486
- let n = this.db.transaction(w, "readonly").objectStore(w).get("manifestSha");
349
+ let n = this.db.transaction(y, "readonly").objectStore(y).get("manifestSha");
487
350
  n.onsuccess = () => e(n.result ?? null), n.onerror = () => t(n.error);
488
351
  });
489
352
  }
490
353
  async saveManifestSha(e) {
491
354
  return this.db || await this.initialize(), new Promise((t, n) => {
492
- let r = this.db.transaction(w, "readwrite").objectStore(w).put(e, "manifestSha");
355
+ let r = this.db.transaction(y, "readwrite").objectStore(y).put(e, "manifestSha");
493
356
  r.onsuccess = () => t(), r.onerror = () => n(r.error);
494
357
  });
495
358
  }
496
359
  async clearAll() {
497
360
  this.nodes.clear(), this.ready = !1, this.initPromise = null, this.db &&= (await Promise.all([
498
361
  new Promise((e, t) => {
499
- let n = this.db.transaction(S, "readwrite");
500
- n.objectStore(S).clear(), n.oncomplete = () => e(), n.onerror = () => t(n.error);
362
+ let n = this.db.transaction(_, "readwrite");
363
+ n.objectStore(_).clear(), n.oncomplete = () => e(), n.onerror = () => t(n.error);
501
364
  }),
502
365
  new Promise((e, t) => {
503
- let n = this.db.transaction(C, "readwrite");
504
- n.objectStore(C).clear(), n.oncomplete = () => e(), n.onerror = () => t(n.error);
366
+ let n = this.db.transaction(v, "readwrite");
367
+ n.objectStore(v).clear(), n.oncomplete = () => e(), n.onerror = () => t(n.error);
505
368
  }),
506
369
  new Promise((e, t) => {
507
- let n = this.db.transaction(w, "readwrite");
508
- n.objectStore(w).clear(), n.oncomplete = () => e(), n.onerror = () => t(n.error);
370
+ let n = this.db.transaction(y, "readwrite");
371
+ n.objectStore(y).clear(), n.oncomplete = () => e(), n.onerror = () => t(n.error);
509
372
  })
510
373
  ]), this.db.close(), null);
511
374
  }
512
375
  async seed(e) {
513
376
  let t = this.buildFolderMapFromManifest(e);
514
377
  for (let n of e.files) {
515
- let e = t.get(n.folder), r = y(n.name, "", e?.id ?? null, n.mimeType, n.url);
378
+ let e = t.get(n.folder), r = m(n.name, "", e?.id ?? null, n.mimeType, n.url);
516
379
  if (this.nodes.set(r.id, r), e) {
517
380
  let i = {
518
381
  ...e,
@@ -539,7 +402,7 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
539
402
  }
540
403
  continue;
541
404
  }
542
- let i = y(n.name, "", e.id, n.mimeType, n.url);
405
+ let i = m(n.name, "", e.id, n.mimeType, n.url);
543
406
  this.nodes.set(i.id, i);
544
407
  let a = {
545
408
  ...e,
@@ -560,7 +423,7 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
560
423
  continue;
561
424
  }
562
425
  }
563
- let c = v(i, s);
426
+ let c = p(i, s);
564
427
  if (this.nodes.set(c.id, c), n.set(e, c), o) {
565
428
  let e = {
566
429
  ...o,
@@ -596,8 +459,8 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
596
459
  e && (e.type === "folder" && this.deleteRecursive(e), this.nodes.delete(t), this.deleteNodeFromPersist(t));
597
460
  }
598
461
  }
599
- }, ce = "/api/fs", le = 6e4;
600
- async function ue(e, t = {}, n = le) {
462
+ }, se = "/api/fs", ce = 6e4;
463
+ async function le(e, t = {}, n = ce) {
601
464
  let r = new AbortController(), i = setTimeout(() => r.abort(), n);
602
465
  try {
603
466
  return await fetch(e, {
@@ -608,25 +471,25 @@ async function ue(e, t = {}, n = le) {
608
471
  clearTimeout(i);
609
472
  }
610
473
  }
611
- var E = ce;
612
- function de(e) {
613
- E = e;
474
+ var b = se;
475
+ function ue(e) {
476
+ b = e;
614
477
  }
615
- var fe = class {
478
+ var de = class {
616
479
  nodes = /* @__PURE__ */ new Map();
617
480
  pathToId = /* @__PURE__ */ new Map();
618
481
  ready = !1;
619
482
  rootFolderId;
620
483
  initPromise = null;
621
484
  constructor() {
622
- this.rootFolderId = m(), this.pathToId.set("/", this.rootFolderId);
485
+ this.rootFolderId = s(), this.pathToId.set("/", this.rootFolderId);
623
486
  }
624
487
  async initialize() {
625
488
  return this.initPromise ||= this.doInitialize(), this.initPromise;
626
489
  }
627
490
  async doInitialize() {
628
491
  try {
629
- let e = await fetch(`${E}?action=readdir&path=/`);
492
+ let e = await fetch(`${b}?action=readdir&path=/`);
630
493
  if (e.ok) {
631
494
  let t = await e.json();
632
495
  await this.syncFromEntries(t, null);
@@ -637,7 +500,7 @@ var fe = class {
637
500
  this.ready = !0;
638
501
  }
639
502
  async reinitialize() {
640
- this.ready = !1, this.nodes.clear(), this.pathToId.clear(), this.rootFolderId = m(), this.pathToId.set("/", this.rootFolderId), this.initPromise = null, await this.initialize();
503
+ this.ready = !1, this.nodes.clear(), this.pathToId.clear(), this.rootFolderId = s(), this.pathToId.set("/", this.rootFolderId), this.initPromise = null, await this.initialize();
641
504
  }
642
505
  isReady() {
643
506
  return this.ready;
@@ -660,32 +523,32 @@ var fe = class {
660
523
  return Array.from(this.nodes.values());
661
524
  }
662
525
  async createFile(e, t, n, r) {
663
- let i = m(), a = n ? this.getPathFromId(n) : "/", o = a ? `${a}/${e}`.replace("//", "/") : `/${e}`, s = r ?? `/api/fs?action=file&path=${encodeURIComponent(o)}`, c = {
664
- ...y(e, t, n, this.getMimeType(e), s),
526
+ let i = s(), a = n ? this.getPathFromId(n) : "/", o = a ? `${a}/${e}`.replace("//", "/") : `/${e}`, c = r ?? `/api/fs?action=file&path=${encodeURIComponent(o)}`, l = {
527
+ ...m(e, t, n, this.getMimeType(e), c),
665
528
  id: i
666
529
  };
667
- this.nodes.set(i, c), this.pathToId.set(o, i);
530
+ this.nodes.set(i, l), this.pathToId.set(o, i);
668
531
  try {
669
532
  await this.writeFileToServer(o, t);
670
533
  } catch (e) {
671
534
  throw this.nodes.delete(i), this.pathToId.delete(o), e;
672
535
  }
673
- return c;
536
+ return l;
674
537
  }
675
538
  async createFolder(e, t, n, r) {
676
- let i = m(), a = t ? this.getPathFromId(t) : "/", o = a ? `${a}/${e}`.replace("//", "/") : `/${e}`, s = {};
677
- n && (s.iconName = n), r && (s.iconColor = r);
678
- let c = {
679
- ...v(e, t, s),
539
+ let i = s(), a = t ? this.getPathFromId(t) : "/", o = a ? `${a}/${e}`.replace("//", "/") : `/${e}`, c = {};
540
+ n && (c.iconName = n), r && (c.iconColor = r);
541
+ let l = {
542
+ ...p(e, t, c),
680
543
  id: i
681
544
  };
682
- this.nodes.set(i, c), this.pathToId.set(o, i);
545
+ this.nodes.set(i, l), this.pathToId.set(o, i);
683
546
  try {
684
- await this.createDirOnServer(o, s);
547
+ await this.createDirOnServer(o, c);
685
548
  } catch (e) {
686
549
  throw this.nodes.delete(i), this.pathToId.delete(o), e;
687
550
  }
688
- return c;
551
+ return l;
689
552
  }
690
553
  async updateFile(e, t) {
691
554
  let n = this.nodes.get(e);
@@ -713,7 +576,7 @@ var fe = class {
713
576
  let r = this.getPathFromId(e), i = t ? this.getPathFromId(t) : "/", a = i ? `${i}/${n.name}`.replace("//", "/") : `/${n.name}`;
714
577
  if (!r) throw Error(`Cannot determine path for node ${e}`);
715
578
  if (!i && t !== null) throw Error(`Cannot determine parent path for ${t}`);
716
- let o = await ue(`${E}?action=move&oldPath=${encodeURIComponent(r)}&newPath=${encodeURIComponent(a)}`);
579
+ let o = await le(`${b}?action=move&oldPath=${encodeURIComponent(r)}&newPath=${encodeURIComponent(a)}`);
717
580
  if (!o.ok) {
718
581
  let e = await o.json().catch(() => ({}));
719
582
  throw Error(e.error || `HTTP ${o.status}`);
@@ -734,7 +597,7 @@ var fe = class {
734
597
  }
735
598
  async readFile(e) {
736
599
  try {
737
- let t = await fetch(`${E}?action=read&path=${encodeURIComponent(e)}`);
600
+ let t = await fetch(`${b}?action=read&path=${encodeURIComponent(e)}`);
738
601
  if (t.ok) return (await t.json()).content;
739
602
  } catch (t) {
740
603
  console.warn(`[DockerFS] Failed to read file ${e}:`, t);
@@ -745,9 +608,9 @@ var fe = class {
745
608
  await this.writeFileToServer(e, t);
746
609
  }
747
610
  async saveBlob(e) {
748
- let t = `/.blobs/${await x(e)}.${e.type.split("/")[1] || "bin"}`;
611
+ let t = `/.blobs/${await g(e)}.${e.type.split("/")[1] || "bin"}`;
749
612
  try {
750
- await fetch(`${E}?action=writeBinary&path=${encodeURIComponent(t)}`, {
613
+ await fetch(`${b}?action=writeBinary&path=${encodeURIComponent(t)}`, {
751
614
  method: "POST",
752
615
  body: e
753
616
  });
@@ -787,10 +650,10 @@ var fe = class {
787
650
  return Promise.resolve();
788
651
  }
789
652
  async clearAll() {
790
- this.nodes.clear(), this.pathToId.clear(), this.ready = !1, this.initPromise = null, this.rootFolderId = m(), this.pathToId.set("/", this.rootFolderId);
653
+ this.nodes.clear(), this.pathToId.clear(), this.ready = !1, this.initPromise = null, this.rootFolderId = s(), this.pathToId.set("/", this.rootFolderId);
791
654
  }
792
655
  getMimeType(e) {
793
- return b(e) || "application/octet-stream";
656
+ return h(e) || "application/octet-stream";
794
657
  }
795
658
  getPathFromId(e) {
796
659
  if (!e) return null;
@@ -808,9 +671,9 @@ var fe = class {
808
671
  }
809
672
  async syncFromEntries(e, t) {
810
673
  for (let n of e) {
811
- let e = m();
674
+ let e = s();
812
675
  if (n.type === "directory") {
813
- let r = v(n.name, t);
676
+ let r = p(n.name, t);
814
677
  this.nodes.set(e, {
815
678
  ...r,
816
679
  id: e
@@ -818,7 +681,7 @@ var fe = class {
818
681
  let i = await this.fetchReaddir(n.path);
819
682
  await this.syncFromEntries(i, e);
820
683
  } else {
821
- let r = `/api/fs?action=file&path=${encodeURIComponent(n.path)}`, i = y(n.name, "", t, this.getMimeType(n.name), r);
684
+ let r = `/api/fs?action=file&path=${encodeURIComponent(n.path)}`, i = m(n.name, "", t, this.getMimeType(n.name), r);
822
685
  this.nodes.set(e, {
823
686
  ...i,
824
687
  id: e
@@ -828,7 +691,7 @@ var fe = class {
828
691
  }
829
692
  async fetchReaddir(e) {
830
693
  try {
831
- let t = await fetch(`${E}?action=readdir&path=${encodeURIComponent(e)}`);
694
+ let t = await fetch(`${b}?action=readdir&path=${encodeURIComponent(e)}`);
832
695
  if (t.ok) return await t.json();
833
696
  } catch (t) {
834
697
  console.warn(`[DockerFS] Failed to readdir ${e}:`, t);
@@ -836,7 +699,7 @@ var fe = class {
836
699
  return [];
837
700
  }
838
701
  async writeFileToServer(e, t) {
839
- let n = await fetch(`${E}`, {
702
+ let n = await fetch(`${b}`, {
840
703
  method: "POST",
841
704
  headers: { "Content-Type": "application/json" },
842
705
  body: JSON.stringify({
@@ -847,7 +710,7 @@ var fe = class {
847
710
  if (!n.ok) throw Error(`Failed to write file ${e}: HTTP ${n.status}`);
848
711
  }
849
712
  async createDirOnServer(e, t) {
850
- let n = await fetch(`${E}`, {
713
+ let n = await fetch(`${b}`, {
851
714
  method: "PUT",
852
715
  headers: { "Content-Type": "application/json" },
853
716
  body: JSON.stringify({
@@ -859,12 +722,12 @@ var fe = class {
859
722
  }
860
723
  async deleteFromServer(e) {
861
724
  try {
862
- await fetch(`${E}?path=${encodeURIComponent(e)}`, { method: "DELETE" });
725
+ await fetch(`${b}?path=${encodeURIComponent(e)}`, { method: "DELETE" });
863
726
  } catch (t) {
864
727
  console.warn(`[DockerFS] Failed to delete ${e}:`, t);
865
728
  }
866
729
  }
867
- }, pe = "launcher-folder-custom-apps", me = [
730
+ }, x = "launcher-folder-custom-apps", S = [
868
731
  {
869
732
  id: "launcher-folder-social-links",
870
733
  name: "Social Links",
@@ -911,7 +774,7 @@ var fe = class {
911
774
  order: 3
912
775
  },
913
776
  {
914
- id: pe,
777
+ id: x,
915
778
  name: "Custom Apps",
916
779
  fcIcon: "VscExtensions",
917
780
  appIds: [],
@@ -919,59 +782,59 @@ var fe = class {
919
782
  isPredefined: !0,
920
783
  order: 4
921
784
  }
922
- ], D = [...me], O = null, k = null, A = 0, he = 5e3, ge = "/dist-apps/apps-manifest.json";
923
- async function j(e = !1) {
785
+ ], C = [...S], w = null, T = null, E = 0, fe = 5e3, D = "/dist-apps/apps-manifest.json";
786
+ async function O(e = !1) {
924
787
  let t = Date.now();
925
- if (!e && O && t - A < he) return O;
926
- if (k) return k;
927
- let n = `${ge}?t=${t}`;
928
- return k = fetch(n).then(async (e) => {
788
+ if (!e && w && t - E < fe) return w;
789
+ if (T) return T;
790
+ let n = `${D}?t=${t}`;
791
+ return T = fetch(n).then(async (e) => {
929
792
  if (!e.ok) {
930
- if (e.status === 404) return console.warn("[CustomApps] No apps manifest found at", ge), null;
793
+ if (e.status === 404) return console.warn("[CustomApps] No apps manifest found at", D), null;
931
794
  throw Error(`Failed to fetch manifest: ${e.status}`);
932
795
  }
933
796
  return e.json();
934
- }).then((e) => (O = e, A = Date.now(), k = null, console.log(`[CustomApps] Loaded manifest with ${e.apps.length} apps`), e)).catch((e) => (console.error("[CustomApps] Error fetching manifest:", e), k = null, null)), k;
797
+ }).then((e) => (w = e, E = Date.now(), T = null, console.log(`[CustomApps] Loaded manifest with ${e.apps.length} apps`), e)).catch((e) => (console.error("[CustomApps] Error fetching manifest:", e), T = null, null)), T;
935
798
  }
936
- function _e() {
937
- return O;
799
+ function pe() {
800
+ return w;
938
801
  }
939
- function ve() {
940
- O = null, A = 0;
802
+ function k() {
803
+ w = null, E = 0;
941
804
  }
942
- function ye(e) {
943
- if (!O) {
944
- O = {
805
+ function me(e) {
806
+ if (!w) {
807
+ w = {
945
808
  version: "1.0.0",
946
809
  generated: (/* @__PURE__ */ new Date()).toISOString(),
947
810
  apps: [e]
948
811
  };
949
812
  return;
950
813
  }
951
- O = O.apps.some((t) => t.id === e.id) ? {
952
- ...O,
953
- apps: O.apps.map((t) => t.id === e.id ? e : t)
814
+ w = w.apps.some((t) => t.id === e.id) ? {
815
+ ...w,
816
+ apps: w.apps.map((t) => t.id === e.id ? e : t)
954
817
  } : {
955
- ...O,
956
- apps: [...O.apps, e]
818
+ ...w,
819
+ apps: [...w.apps, e]
957
820
  };
958
821
  }
959
- function be(e) {
960
- O &&= {
961
- ...O,
962
- apps: O.apps.filter((t) => t.id !== e)
822
+ function he(e) {
823
+ w &&= {
824
+ ...w,
825
+ apps: w.apps.filter((t) => t.id !== e)
963
826
  };
964
827
  }
965
- async function M() {
966
- return (await j())?.apps ?? [];
828
+ async function ge() {
829
+ return (await O())?.apps ?? [];
967
830
  }
968
- async function xe(e) {
969
- return (await M()).find((t) => t.id === e);
831
+ async function _e(e) {
832
+ return (await ge()).find((t) => t.id === e);
970
833
  }
971
- function Se(e) {
972
- return O ? O.apps.some((t) => t.id === e) : !1;
834
+ function ve(e) {
835
+ return w ? w.apps.some((t) => t.id === e) : !1;
973
836
  }
974
- function Ce(e) {
837
+ function ye(e) {
975
838
  return {
976
839
  id: e.id,
977
840
  name: e.name,
@@ -985,7 +848,7 @@ function Ce(e) {
985
848
  alwaysOnTop: e.window.alwaysOnTop
986
849
  };
987
850
  }
988
- function we(e, t) {
851
+ function be(e, t) {
989
852
  let n = new Set(t.map((e) => e.id)), r = e.filter((e) => !n.has(e.id)), i = t.map((e) => {
990
853
  let t = {
991
854
  id: e.id,
@@ -1002,9 +865,9 @@ function we(e, t) {
1002
865
  });
1003
866
  return [...r, ...i];
1004
867
  }
1005
- async function Te(e) {
1006
- ve();
1007
- let t = await j(!0);
868
+ async function xe(e) {
869
+ k();
870
+ let t = await O(!0);
1008
871
  if (!t) return {
1009
872
  added: [],
1010
873
  removed: [],
@@ -1019,26 +882,26 @@ async function Te(e) {
1019
882
  }
1020
883
  //#endregion
1021
884
  //#region src/utils/sortNodes.ts
1022
- var N = (e) => {
885
+ var A = (e) => {
1023
886
  let t = e.filter((e) => e.type === "folder"), n = e.filter((e) => e.type === "file"), r = (e, t) => e.name.localeCompare(t.name);
1024
887
  return [...t.sort(r), ...n.sort(r)];
1025
- }, Ee = {
888
+ }, Se = {
1026
889
  BY_TYPE: "byType",
1027
890
  BY_NAME: "byName",
1028
891
  BY_DATE: "byDate"
1029
892
  };
1030
- function P(e) {
893
+ function j(e) {
1031
894
  return e.nodeId ? e.appId === "files" ? "folder" : "file" : "app";
1032
895
  }
1033
- var F = {
896
+ var M = {
1034
897
  app: 0,
1035
898
  folder: 1,
1036
899
  file: 2
1037
900
  };
1038
- function I(e, t) {
901
+ function N(e, t) {
1039
902
  return [...e].sort((e, n) => {
1040
- let r = P(e), i = P(n);
1041
- if (r !== i) return F[r] - F[i];
903
+ let r = j(e), i = j(n);
904
+ if (r !== i) return M[r] - M[i];
1042
905
  if (r === "app") {
1043
906
  if (!t) return e.name.localeCompare(n.name);
1044
907
  let r = t.indexOf(e.appId), i = t.indexOf(n.appId);
@@ -1047,38 +910,38 @@ function I(e, t) {
1047
910
  return e.name.localeCompare(n.name);
1048
911
  });
1049
912
  }
1050
- var De = (e, t) => {
913
+ var P = (e, t) => {
1051
914
  switch (t) {
1052
- case "default": return I(e);
915
+ case "default": return N(e);
1053
916
  case "name-asc": return [...e].sort((e, t) => e.name.localeCompare(t.name));
1054
917
  case "name-desc": return [...e].sort((e, t) => t.name.localeCompare(e.name));
1055
918
  case "type": return [...e].sort((e, t) => {
1056
- let n = P(e), r = P(t);
1057
- return n === r ? e.name.localeCompare(t.name) : F[n] - F[r];
919
+ let n = j(e), r = j(t);
920
+ return n === r ? e.name.localeCompare(t.name) : M[n] - M[r];
1058
921
  });
1059
- default: return I(e);
922
+ default: return N(e);
1060
923
  }
1061
- }, Oe = (e, t) => {
924
+ }, Ce = (e, t) => {
1062
925
  switch (t) {
1063
926
  case "default":
1064
- case "type": return N(e);
927
+ case "type": return A(e);
1065
928
  case "name-asc": return [...e].sort((e, t) => e.name.localeCompare(t.name));
1066
929
  case "name-desc": return [...e].sort((e, t) => t.name.localeCompare(e.name));
1067
- default: return N(e);
930
+ default: return A(e);
1068
931
  }
1069
- }, L = {
932
+ }, F = {
1070
933
  defaultWidth: 800,
1071
934
  defaultHeight: 600,
1072
935
  minWidth: 640,
1073
936
  minHeight: 480
1074
- }, R = [
937
+ }, I = [
1075
938
  {
1076
939
  id: "files",
1077
940
  name: "FilesApp",
1078
941
  icon: "📁",
1079
942
  fcIcon: "FcOpenedFolder",
1080
943
  hasContextMenu: !0,
1081
- ...L
944
+ ...F
1082
945
  },
1083
946
  {
1084
947
  id: "settings",
@@ -1086,14 +949,14 @@ var De = (e, t) => {
1086
949
  icon: "⚙️",
1087
950
  fcIcon: "FcSettings",
1088
951
  singleWindow: !0,
1089
- ...L
952
+ ...F
1090
953
  },
1091
954
  {
1092
955
  id: "notepad",
1093
956
  name: "Notepad",
1094
957
  icon: "📝",
1095
958
  fcIcon: "FcEditImage",
1096
- ...L
959
+ ...F
1097
960
  },
1098
961
  {
1099
962
  id: "image-viewer",
@@ -1120,7 +983,7 @@ var De = (e, t) => {
1120
983
  name: "Uploader",
1121
984
  icon: "📤",
1122
985
  fcIcon: "FcUpload",
1123
- ...L
986
+ ...F
1124
987
  },
1125
988
  {
1126
989
  id: "menuedit",
@@ -1128,7 +991,7 @@ var De = (e, t) => {
1128
991
  icon: "📁",
1129
992
  fcIcon: "FcFolder",
1130
993
  singleWindow: !0,
1131
- ...L
994
+ ...F
1132
995
  },
1133
996
  {
1134
997
  id: "device-info",
@@ -1155,7 +1018,7 @@ var De = (e, t) => {
1155
1018
  canMaximize: !1,
1156
1019
  singleWindow: !0
1157
1020
  }
1158
- ], ke = R.map((e) => e.id), z = [
1021
+ ], we = I.map((e) => e.id), L = [
1159
1022
  {
1160
1023
  id: "welcome",
1161
1024
  name: "Welcome",
@@ -1199,7 +1062,7 @@ var De = (e, t) => {
1199
1062
  name: "Terminal",
1200
1063
  icon: "💻",
1201
1064
  fcIcon: "FcCommandLine",
1202
- ...L
1065
+ ...F
1203
1066
  },
1204
1067
  {
1205
1068
  id: "code-server",
@@ -1237,7 +1100,7 @@ var De = (e, t) => {
1237
1100
  name: "DOOM"
1238
1101
  }
1239
1102
  }
1240
- ], Ae = z.map((e) => e.id), B = [...R, ...z], V = [
1103
+ ], Te = L.map((e) => e.id), R = [...I, ...L], z = [
1241
1104
  "welcome",
1242
1105
  "uploader",
1243
1106
  "terminal",
@@ -1250,46 +1113,46 @@ var De = (e, t) => {
1250
1113
  "files",
1251
1114
  "doom"
1252
1115
  ];
1253
- function je(e) {
1254
- for (let t of e) B.find((e) => e.id === t.id) || B.push(t);
1116
+ function Ee(e) {
1117
+ for (let t of e) R.find((e) => e.id === t.id) || R.push(t);
1255
1118
  }
1256
- function Me(e) {
1257
- for (let t of e) V.includes(t) || V.push(t);
1119
+ function De(e) {
1120
+ for (let t of e) z.includes(t) || z.push(t);
1258
1121
  }
1259
1122
  //#endregion
1260
1123
  //#region src/utils/getAppIdForMime.ts
1261
- var Ne = [], H = (e) => {
1262
- Ne.push(e);
1263
- }, Pe = new Set([
1124
+ var B = [], V = (e) => {
1125
+ B.push(e);
1126
+ }, Oe = new Set([
1264
1127
  "image/jpeg",
1265
1128
  "image/png",
1266
1129
  "image/gif",
1267
1130
  "image/svg+xml",
1268
1131
  "image/webp",
1269
1132
  "image/bmp"
1270
- ]), Fe = new Set([
1133
+ ]), H = new Set([
1271
1134
  "text/plain",
1272
1135
  "text/markdown",
1273
1136
  "text/x-markdown",
1274
1137
  "application/json"
1275
1138
  ]);
1276
- H({
1139
+ V({
1277
1140
  appId: "pdf",
1278
1141
  mimeTypes: ["application/pdf"],
1279
1142
  transformContentData: (e) => ({ src: e.url ?? e.name })
1280
- }), H({
1143
+ }), V({
1281
1144
  appId: "image-viewer",
1282
- mimeTypes: (e) => Pe.has(e) || e.startsWith("image/"),
1145
+ mimeTypes: (e) => Oe.has(e) || e.startsWith("image/"),
1283
1146
  transformContentData: (e) => ({ src: e.url ?? e.name })
1284
- }), H({
1147
+ }), V({
1285
1148
  appId: "notepad",
1286
- mimeTypes: (e) => Fe.has(e) || e.startsWith("text/"),
1149
+ mimeTypes: (e) => H.has(e) || e.startsWith("text/"),
1287
1150
  transformContentData: (e) => ({
1288
1151
  url: e.url,
1289
1152
  initialName: e.name,
1290
1153
  fileId: e.id
1291
1154
  })
1292
- }), H({
1155
+ }), V({
1293
1156
  appId: "dos-emulator",
1294
1157
  mimeTypes: [
1295
1158
  "application/jsdos",
@@ -1301,14 +1164,14 @@ H({
1301
1164
  name: e.name
1302
1165
  } })
1303
1166
  });
1304
- function Ie(e) {
1167
+ function ke(e) {
1305
1168
  if (!e) return null;
1306
- for (let t of Ne) if (typeof t.mimeTypes == "function" ? t.mimeTypes(e) : t.mimeTypes.includes(e)) return t;
1169
+ for (let t of B) if (typeof t.mimeTypes == "function" ? t.mimeTypes(e) : t.mimeTypes.includes(e)) return t;
1307
1170
  return null;
1308
1171
  }
1309
1172
  function U(e) {
1310
- if (typeof e == "string" || e === void 0) return Ie(e)?.appId ?? "files";
1311
- let t = Ie(e.mimeType);
1173
+ if (typeof e == "string" || e === void 0) return ke(e)?.appId ?? "files";
1174
+ let t = ke(e.mimeType);
1312
1175
  return t ? {
1313
1176
  appId: t.appId,
1314
1177
  contentData: t.transformContentData(e)
@@ -1390,11 +1253,11 @@ var W = {
1390
1253
  setDevServerOffline: (t) => e({ devServerOffline: t }),
1391
1254
  incrementHmrRetry: () => e((e) => ({ hmrRetryCount: e.hmrRetryCount + 1 })),
1392
1255
  resetHmrRetry: () => e({ hmrRetryCount: 0 })
1393
- })), Le = "/", K = null, q = null;
1394
- function Re(e) {
1256
+ })), Ae = "/", K = null, q = null;
1257
+ function je(e) {
1395
1258
  q = e, K = null;
1396
1259
  }
1397
- function ze() {
1260
+ function Me() {
1398
1261
  if (K !== null) return K;
1399
1262
  if (q !== null) return K = q, K;
1400
1263
  let e = document.querySelector("base[href]");
@@ -1402,44 +1265,44 @@ function ze() {
1402
1265
  let t = e.getAttribute("href");
1403
1266
  if (t) return K = t, t;
1404
1267
  }
1405
- return K = Le, K;
1268
+ return K = Ae, K;
1406
1269
  }
1407
- function Be() {
1270
+ function Ne() {
1408
1271
  K = null;
1409
1272
  }
1410
- function Ve(e) {
1273
+ function Pe(e) {
1411
1274
  if (!e || e.startsWith("http://") || e.startsWith("https://") || e.startsWith("idb://") || e.startsWith("blob:") || e.startsWith("/")) return e;
1412
- let t = ze();
1275
+ let t = Me();
1413
1276
  return (t.endsWith("/") ? t : `${t}/`) + e;
1414
1277
  }
1415
1278
  //#endregion
1416
1279
  //#region src/constants/breakpoints.ts
1417
- var He = {
1280
+ var Fe = {
1418
1281
  MOBILE: 768,
1419
1282
  TABLET: 1024,
1420
1283
  DESKTOP: 1280
1421
- }, J = {
1284
+ }, Ie = {
1422
1285
  WIDTH: 1280,
1423
1286
  HEIGHT: 800
1424
- }, Ue = 48, We = 80, Ge = 80, Ke = 20, qe = J.WIDTH, Je = J.HEIGHT, Ye = async () => {
1425
- let e = await fetch(Ve("fs-manifest.json")), t = e.headers.get("content-type")?.includes("application/json");
1287
+ }, Le = 48, Re = 80, ze = 80, Be = 20, Ve = Ie.WIDTH, He = Ie.HEIGHT, Ue = async () => {
1288
+ let e = await fetch(Pe("fs-manifest.json")), t = e.headers.get("content-type")?.includes("application/json");
1426
1289
  return e.ok && t ? await e.json() : null;
1427
- }, Y = new re();
1428
- function Xe() {
1429
- return e() ? (console.log("[FileSystem] Using DockerFileSystemAdapter"), new fe()) : (console.log("[FileSystem] Using IndexedDBFileSystem"), new T());
1290
+ }, J = new te();
1291
+ function We() {
1292
+ return e() ? (console.log("[FileSystem] Using DockerFileSystemAdapter"), new de()) : (console.log("[FileSystem] Using IndexedDBFileSystem"), new oe());
1430
1293
  }
1431
- var X = Xe(), Ze = () => {
1432
- X.clearAll().catch(() => {});
1433
- }, Qe = () => Y.reset();
1434
- async function $e(e, t) {
1294
+ var Y = We(), Ge = () => {
1295
+ Y.clearAll().catch(() => {});
1296
+ }, Ke = () => J.reset();
1297
+ async function qe(e, t) {
1435
1298
  if (e.startsWith("idb://")) {
1436
- let t = await X.getBlob(e);
1299
+ let t = await Y.getBlob(e);
1437
1300
  return t ? t.text() : "";
1438
1301
  }
1439
1302
  let n = e.startsWith("http") || e.startsWith("/") ? e : `/${e}`, r = await fetch(n, { signal: t });
1440
1303
  return r.ok ? r.text() : "";
1441
1304
  }
1442
- var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "Desktop")?.id ?? null, et = (e, t) => {
1305
+ var X = () => Y.getRootNodes().find((e) => e.type === "folder" && e.name === "Desktop")?.id ?? null, Je = (e, t) => {
1443
1306
  let n = new Set(e.map((e) => `${e.x},${e.y}`)), r = Math.max(1, Math.floor((t - 20) / 80));
1444
1307
  for (let e = 0;; e++) {
1445
1308
  let t = 20 + e * 80;
@@ -1451,22 +1314,22 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
1451
1314
  };
1452
1315
  }
1453
1316
  }
1454
- }, tt = (e, t) => {
1317
+ }, Ye = (e, t) => {
1455
1318
  let n = Math.max(1, Math.floor((t - 20) / 80)), r = Math.floor(e / n), i = e % n;
1456
1319
  return {
1457
1320
  x: 20 + r * 80,
1458
1321
  y: 20 + i * 80
1459
1322
  };
1460
- }, Q = (e, t, n) => {
1461
- let r = et(e, n);
1462
- return [...e, g({
1323
+ }, Z = (e, t, n) => {
1324
+ let r = Je(e, n);
1325
+ return [...e, l({
1463
1326
  ...t,
1464
1327
  ...r
1465
1328
  })];
1466
- }, nt = () => {
1467
- let e = Z();
1468
- if (!e || !X.isReady()) return;
1469
- let t = X.getChildren(e), n = new Set(t.map((e) => e.id)), r = new Set(t.map((e) => e.name)), { icons: i, viewportHeight: a } = $.getState(), o = i.filter((e) => !e.nodeId || n.has(e.nodeId) || r.has(e.name));
1329
+ }, Q = () => {
1330
+ let e = X();
1331
+ if (!e || !Y.isReady()) return;
1332
+ let t = Y.getChildren(e), n = new Set(t.map((e) => e.id)), r = new Set(t.map((e) => e.name)), { icons: i, viewportHeight: a } = $.getState(), o = i.filter((e) => !e.nodeId || n.has(e.nodeId) || r.has(e.name));
1470
1333
  for (let e of t) {
1471
1334
  let t = o.find((t) => t.name === e.name);
1472
1335
  if (t) t.nodeId !== e.id && (o = o.map((t) => t.name === e.name ? {
@@ -1475,7 +1338,7 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
1475
1338
  } : t));
1476
1339
  else {
1477
1340
  let t = e.type === "folder", n = t ? e : null, r = t ? null : e, i = t ? "files" : r ? U(r)?.appId ?? "" : "";
1478
- o = Q(o, {
1341
+ o = Z(o, {
1479
1342
  name: e.name,
1480
1343
  icon: t ? "📁" : "📄",
1481
1344
  iconName: n?.iconName,
@@ -1485,52 +1348,52 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
1485
1348
  }, a);
1486
1349
  }
1487
1350
  }
1488
- let s = I(o);
1351
+ let s = N(o);
1489
1352
  $.setState({ icons: s.map((e, t) => ({
1490
1353
  ...e,
1491
- ...tt(t, a)
1354
+ ...Ye(t, a)
1492
1355
  })) });
1493
- }, $ = n()(a((e, n) => ({
1356
+ }, $ = n()(i((e, n) => ({
1494
1357
  windows: [],
1495
1358
  openWindow: (t) => {
1496
- let n = Y.open(t);
1359
+ let n = J.open(t);
1497
1360
  e((e) => ({ windows: [...e.windows, n] }));
1498
1361
  },
1499
1362
  closeWindow: (t) => {
1500
- Y.close(t), e((e) => ({ windows: e.windows.filter((e) => e.id !== t) }));
1363
+ J.close(t), e((e) => ({ windows: e.windows.filter((e) => e.id !== t) }));
1501
1364
  },
1502
1365
  minimizeWindow: (t) => {
1503
- Y.minimize(t), e((e) => ({ windows: e.windows.map((e) => e.id === t ? {
1366
+ J.minimize(t), e((e) => ({ windows: e.windows.map((e) => e.id === t ? {
1504
1367
  ...e,
1505
1368
  state: "minimized"
1506
1369
  } : e) }));
1507
1370
  },
1508
1371
  maximizeWindow: (t) => {
1509
- Y.maximize(t), e((e) => ({ windows: e.windows.map((e) => e.id === t ? {
1372
+ J.maximize(t), e((e) => ({ windows: e.windows.map((e) => e.id === t ? {
1510
1373
  ...e,
1511
1374
  state: "maximized"
1512
1375
  } : e) }));
1513
1376
  },
1514
1377
  restoreWindow: (t) => {
1515
- Y.restore(t), e((e) => ({ windows: e.windows.map((e) => e.id === t ? {
1378
+ J.restore(t), e((e) => ({ windows: e.windows.map((e) => e.id === t ? {
1516
1379
  ...e,
1517
1380
  state: "normal"
1518
1381
  } : e) }));
1519
1382
  },
1520
1383
  focusWindow: (t) => {
1521
- Y.focus(t);
1522
- let n = Y.getById(t);
1384
+ J.focus(t);
1385
+ let n = J.getById(t);
1523
1386
  n && e((e) => ({ windows: e.windows.map((e) => e.id === t ? n : e) }));
1524
1387
  },
1525
1388
  moveWindow: (t, n, r) => {
1526
- Y.move(t, n, r), e((e) => ({ windows: e.windows.map((e) => e.id === t ? {
1389
+ J.move(t, n, r), e((e) => ({ windows: e.windows.map((e) => e.id === t ? {
1527
1390
  ...e,
1528
1391
  x: n,
1529
1392
  y: r
1530
1393
  } : e) }));
1531
1394
  },
1532
1395
  resizeWindow: (t, n, r) => {
1533
- Y.resize(t, n, r), e((e) => ({ windows: e.windows.map((e) => e.id === t ? {
1396
+ J.resize(t, n, r), e((e) => ({ windows: e.windows.map((e) => e.id === t ? {
1534
1397
  ...e,
1535
1398
  width: n,
1536
1399
  height: r
@@ -1538,7 +1401,7 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
1538
1401
  },
1539
1402
  icons: [],
1540
1403
  addIcon: (t) => {
1541
- let n = g(t);
1404
+ let n = l(t);
1542
1405
  e((e) => ({ icons: [...e.icons, n] }));
1543
1406
  },
1544
1407
  removeIcon: (t) => {
@@ -1549,24 +1412,24 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
1549
1412
  isFsReady: !1,
1550
1413
  initFs: async () => {
1551
1414
  try {
1552
- X.isReady() && X.reinitialize ? await X.reinitialize() : X.isReady() || await X.initialize();
1553
- let r = await Ye();
1415
+ Y.isReady() && Y.reinitialize ? await Y.reinitialize() : Y.isReady() || await Y.initialize();
1416
+ let r = await Ue();
1554
1417
  if (r) {
1555
- let e = r.sha ?? null, t = await X.getManifestSha();
1556
- X.isEmpty() ? (await X.seed(r), e && await X.saveManifestSha(e)) : t !== e && e !== null && (await X.mergeSeed(r), await X.saveManifestSha(e));
1418
+ let e = r.sha ?? null, t = await Y.getManifestSha();
1419
+ Y.isEmpty() ? (await Y.seed(r), e && await Y.saveManifestSha(e)) : t !== e && e !== null && (await Y.mergeSeed(r), await Y.saveManifestSha(e));
1557
1420
  }
1558
1421
  if (e({
1559
- fsNodes: X.getAllNodes(),
1560
- desktopFolderId: Z(),
1422
+ fsNodes: Y.getAllNodes(),
1423
+ desktopFolderId: X(),
1561
1424
  isFsReady: !0
1562
1425
  }), !t()) {
1563
1426
  let t = null;
1564
1427
  try {
1565
- if (t = await j(), t?.apps?.length) {
1428
+ if (t = await O(), t?.apps?.length) {
1566
1429
  e({ customApps: t.apps });
1567
1430
  for (let e of t.apps) G.getState().registerApp(e);
1568
1431
  }
1569
- let r = new Set(t?.apps?.map((e) => e.id) ?? []), i = n().icons.filter((e) => e.appId && !B.find((t) => t.id === e.appId) && !r.has(e.appId)).map((e) => e.appId);
1432
+ let r = new Set(t?.apps?.map((e) => e.id) ?? []), i = n().icons.filter((e) => e.appId && !R.find((t) => t.id === e.appId) && !r.has(e.appId)).map((e) => e.appId);
1570
1433
  i.length > 0 && e((e) => ({
1571
1434
  icons: e.icons.filter((e) => !i.includes(e.appId)),
1572
1435
  customApps: e.customApps.filter((e) => !i.includes(e.id))
@@ -1575,9 +1438,9 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
1575
1438
  console.warn("[DesktopStore] Failed to load custom apps manifest:", e);
1576
1439
  }
1577
1440
  }
1578
- for (let t of V) {
1579
- let r = B.find((e) => e.id === t);
1580
- r && (n().icons.some((e) => e.appId === t) || e({ icons: Q(n().icons, {
1441
+ for (let t of z) {
1442
+ let r = R.find((e) => e.id === t);
1443
+ r && (n().icons.some((e) => e.appId === t) || e({ icons: Z(n().icons, {
1581
1444
  name: r.name,
1582
1445
  icon: r.icon,
1583
1446
  appId: t
@@ -1585,45 +1448,45 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
1585
1448
  }
1586
1449
  if (!t()) {
1587
1450
  let t = n().customApps;
1588
- if (t.length) for (let r of t) n().icons.some((e) => e.appId === r.id) || e({ icons: Q(n().icons, {
1451
+ if (t.length) for (let r of t) n().icons.some((e) => e.appId === r.id) || e({ icons: Z(n().icons, {
1589
1452
  name: r.name,
1590
1453
  icon: r.icon,
1591
1454
  appId: r.id
1592
1455
  }, n().viewportHeight) });
1593
1456
  }
1594
- let i = Z();
1457
+ let i = X();
1595
1458
  if (!i) return;
1596
- X.getChildren(i).forEach((t) => {
1459
+ Y.getChildren(i).forEach((t) => {
1597
1460
  if (t.type !== "file") return;
1598
1461
  let r = n().icons.find((e) => e.name === t.name);
1599
1462
  r ? r.nodeId || e({ icons: n().icons.map((e) => e.name === t.name ? {
1600
1463
  ...e,
1601
1464
  nodeId: t.id
1602
- } : e) }) : e({ icons: Q(n().icons, {
1465
+ } : e) }) : e({ icons: Z(n().icons, {
1603
1466
  name: t.name,
1604
1467
  icon: "📄",
1605
1468
  appId: U(t.mimeType),
1606
1469
  nodeId: t.id
1607
1470
  }, n().viewportHeight) });
1608
- }), nt();
1471
+ }), Q();
1609
1472
  } catch (t) {
1610
1473
  console.error("Failed to initialize filesystem:", t), e({ isFsReady: !0 });
1611
1474
  }
1612
1475
  },
1613
1476
  createFile: async (t, r, i, a) => {
1614
- let o = await X.createFile(t, r, i, a), s = Z(), { icons: c, viewportHeight: l } = n(), u = i && i === s && !c.some((e) => e.name === o.name) ? Q(c, {
1477
+ let o = await Y.createFile(t, r, i, a), s = X(), { icons: c, viewportHeight: l } = n(), u = i && i === s && !c.some((e) => e.name === o.name) ? Z(c, {
1615
1478
  name: o.name,
1616
1479
  icon: "📄",
1617
1480
  appId: U(o.mimeType),
1618
1481
  nodeId: o.id
1619
1482
  }, l) : c;
1620
1483
  return e({
1621
- fsNodes: X.getAllNodes(),
1484
+ fsNodes: Y.getAllNodes(),
1622
1485
  icons: u
1623
1486
  }), o;
1624
1487
  },
1625
1488
  createFolder: async (t, r, i, a) => {
1626
- let o = await X.createFolder(t, r, i, a), s = Z(), { icons: c, viewportHeight: l } = n(), u = r && r === s && !c.some((e) => e.name === o.name) ? Q(c, {
1489
+ let o = await Y.createFolder(t, r, i, a), s = X(), { icons: c, viewportHeight: l } = n(), u = r && r === s && !c.some((e) => e.name === o.name) ? Z(c, {
1627
1490
  name: o.name,
1628
1491
  icon: "📁",
1629
1492
  iconName: o.iconName,
@@ -1632,28 +1495,28 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
1632
1495
  nodeId: o.id
1633
1496
  }, l) : c;
1634
1497
  return e({
1635
- fsNodes: X.getAllNodes(),
1498
+ fsNodes: Y.getAllNodes(),
1636
1499
  icons: u
1637
1500
  }), o;
1638
1501
  },
1639
1502
  updateFile: async (t, n) => {
1640
- await X.updateFile(t, n), e({ fsNodes: X.getAllNodes() });
1503
+ await Y.updateFile(t, n), e({ fsNodes: Y.getAllNodes() });
1641
1504
  },
1642
1505
  deleteNode: async (t) => {
1643
- let n = X.getNode(t);
1644
- if (await X.delete(t), e({ fsNodes: X.getAllNodes() }), n?.type === "file" || n?.type === "folder") {
1645
- let t = Z();
1506
+ let n = Y.getNode(t);
1507
+ if (await Y.delete(t), e({ fsNodes: Y.getAllNodes() }), n?.type === "file" || n?.type === "folder") {
1508
+ let t = X();
1646
1509
  n.parentId && n.parentId === t && e((e) => ({ icons: e.icons.filter((e) => e.name !== n.name) }));
1647
1510
  }
1648
1511
  },
1649
1512
  moveNode: async (t, n) => {
1650
- await X.move(t, n), e({ fsNodes: X.getAllNodes() });
1513
+ await Y.move(t, n), e({ fsNodes: Y.getAllNodes() });
1651
1514
  },
1652
1515
  setFsNodes: (t) => {
1653
1516
  e({ fsNodes: t });
1654
1517
  },
1655
1518
  syncIcons: () => {
1656
- nt();
1519
+ Q();
1657
1520
  },
1658
1521
  clipboard: {
1659
1522
  content: [],
@@ -1703,22 +1566,22 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
1703
1566
  } });
1704
1567
  },
1705
1568
  mergeSeed: async (t) => {
1706
- await X.mergeSeed(t), e({
1707
- fsNodes: X.getAllNodes(),
1708
- desktopFolderId: Z()
1569
+ await Y.mergeSeed(t), e({
1570
+ fsNodes: Y.getAllNodes(),
1571
+ desktopFolderId: X()
1709
1572
  });
1710
1573
  },
1711
1574
  mergeDesktopApps: (t) => {
1712
1575
  for (let r of t) {
1713
- let t = B.find((e) => e.id === r);
1714
- t && (n().icons.some((e) => e.appId === r) || e({ icons: Q(n().icons, {
1576
+ let t = R.find((e) => e.id === r);
1577
+ t && (n().icons.some((e) => e.appId === r) || e({ icons: Z(n().icons, {
1715
1578
  name: t.name,
1716
1579
  icon: t.icon,
1717
1580
  appId: r
1718
1581
  }, n().viewportHeight) }));
1719
1582
  }
1720
- let r = Z();
1721
- if (r) for (let t of X.getChildren(r)) t.type === "file" && (n().icons.some((e) => e.name === t.name) || e({ icons: Q(n().icons, {
1583
+ let r = X();
1584
+ if (r) for (let t of Y.getChildren(r)) t.type === "file" && (n().icons.some((e) => e.name === t.name) || e({ icons: Z(n().icons, {
1722
1585
  name: t.name,
1723
1586
  icon: "📄",
1724
1587
  appId: U(t.mimeType),
@@ -1752,8 +1615,8 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
1752
1615
  removeNotification: (t) => {
1753
1616
  e((e) => ({ notifications: e.notifications.filter((e) => e.id !== t) }));
1754
1617
  },
1755
- viewportWidth: qe,
1756
- viewportHeight: Je,
1618
+ viewportWidth: Ve,
1619
+ viewportHeight: He,
1757
1620
  isViewportInitialized: !1,
1758
1621
  setViewportSize: (t, r) => {
1759
1622
  let i = n().viewportWidth, a = n().viewportHeight, o = n().isViewportInitialized;
@@ -1796,32 +1659,32 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
1796
1659
  height: d
1797
1660
  };
1798
1661
  });
1799
- for (let e of c) Y.move(e.id, e.x, e.y), Y.resize(e.id, e.width, e.height);
1662
+ for (let e of c) J.move(e.id, e.x, e.y), J.resize(e.id, e.width, e.height);
1800
1663
  e({ windows: c });
1801
1664
  },
1802
1665
  desktopSortMode: "default",
1803
1666
  filesSortMode: "default",
1804
1667
  setDesktopSortMode: (t) => {
1805
1668
  e({ desktopSortMode: t });
1806
- let r = n().icons, i = De(r, t), a = n().viewportHeight;
1669
+ let r = n().icons, i = P(r, t), a = n().viewportHeight;
1807
1670
  e({ icons: i.map((e, t) => ({
1808
1671
  ...e,
1809
- ...tt(t, a)
1672
+ ...Ye(t, a)
1810
1673
  })) });
1811
1674
  },
1812
1675
  setFilesSortMode: (t) => {
1813
1676
  e({ filesSortMode: t });
1814
1677
  },
1815
- launcherFolders: D,
1678
+ launcherFolders: C,
1816
1679
  setLauncherFolders: (t) => {
1817
1680
  e({ launcherFolders: t });
1818
1681
  },
1819
1682
  createLauncherFolder: (t) => {
1820
- let n = _(t);
1683
+ let n = u(t);
1821
1684
  return e((e) => ({ launcherFolders: [...e.launcherFolders, n].sort((e, t) => e.order - t.order) })), n;
1822
1685
  },
1823
1686
  updateLauncherFolder: (t, n) => {
1824
- e((e) => ({ launcherFolders: e.launcherFolders.map((e) => e.id === t ? te(e, n) : e) }));
1687
+ e((e) => ({ launcherFolders: e.launcherFolders.map((e) => e.id === t ? f(e, n) : e) }));
1825
1688
  },
1826
1689
  deleteLauncherFolder: (t) => {
1827
1690
  e((e) => ({ launcherFolders: e.launcherFolders.filter((e) => e.id !== t || e.isPredefined) }));
@@ -1849,7 +1712,7 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
1849
1712
  e({ customApps: t });
1850
1713
  },
1851
1714
  handleCustomAppRegistered: (t) => {
1852
- e((e) => ({ customApps: e.customApps.some((e) => e.id === t.id) ? e.customApps.map((e) => e.id === t.id ? t : e) : [...e.customApps, t] })), n().icons.find((e) => e.appId === t.id) || e((e) => ({ icons: Q(e.icons, {
1715
+ e((e) => ({ customApps: e.customApps.some((e) => e.id === t.id) ? e.customApps.map((e) => e.id === t.id ? t : e) : [...e.customApps, t] })), n().icons.find((e) => e.appId === t.id) || e((e) => ({ icons: Z(e.icons, {
1853
1716
  name: t.name,
1854
1717
  icon: t.icon || "FcDataSheet",
1855
1718
  appId: t.id
@@ -1873,7 +1736,7 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
1873
1736
  }),
1874
1737
  merge: (e, t) => {
1875
1738
  let n = e, r = ["createItem"], i = (n.windows ?? []).filter((e) => !r.includes(e.content)).map((e) => {
1876
- let r = B.find((t) => t.id === e.content), i = (n.customApps ?? t.customApps)?.find((t) => t.id === e.content);
1739
+ let r = R.find((t) => t.id === e.content), i = (n.customApps ?? t.customApps)?.find((t) => t.id === e.content);
1877
1740
  return {
1878
1741
  ...e,
1879
1742
  icon: e.icon ?? r?.icon ?? i?.icon,
@@ -1881,12 +1744,12 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
1881
1744
  iconUrl: e.iconUrl ?? r?.iconUrl,
1882
1745
  iconColor: r?.iconColor,
1883
1746
  canMaximize: r?.canMaximize ?? i?.window?.canMaximize,
1884
- minWidth: r?.minWidth === !1 || i?.window?.minWidth === !1 ? void 0 : r?.minWidth ?? i?.window?.minWidth ?? L.minWidth,
1885
- minHeight: r?.minHeight === !1 || i?.window?.minHeight === !1 ? void 0 : r?.minHeight ?? i?.window?.minHeight ?? L.minHeight
1747
+ minWidth: r?.minWidth === !1 || i?.window?.minWidth === !1 ? void 0 : r?.minWidth ?? i?.window?.minWidth ?? F.minWidth,
1748
+ minHeight: r?.minHeight === !1 || i?.window?.minHeight === !1 ? void 0 : r?.minHeight ?? i?.window?.minHeight ?? F.minHeight
1886
1749
  };
1887
1750
  });
1888
- Y.loadWindows(i);
1889
- let a = new Set(D.map((e) => e.id)), o = (n.launcherFolders ?? []).filter((e) => !a.has(e.id)), s = [...D, ...o].sort((e, t) => e.order - t.order), c = n.viewportWidth != null && n.viewportHeight != null;
1751
+ J.loadWindows(i);
1752
+ let a = new Set(C.map((e) => e.id)), o = (n.launcherFolders ?? []).filter((e) => !a.has(e.id)), s = [...C, ...o].sort((e, t) => e.order - t.order), c = n.viewportWidth != null && n.viewportHeight != null;
1890
1753
  return {
1891
1754
  ...t,
1892
1755
  ...n,
@@ -1902,4 +1765,4 @@ typeof window < "u" && (window.__DESKTOP_STATE__ = $.getState(), $.subscribe((e)
1902
1765
  window.__DESKTOP_STATE__ = e;
1903
1766
  }));
1904
1767
  //#endregion
1905
- export { T as $, ke as A, _e as B, B as C, z as D, Me as E, N as F, be as G, M as H, Oe as I, pe as J, Te as K, ve as L, Ee as M, I as N, Ae as O, De as P, de as Q, Ce as R, H as S, je as T, Se as U, xe as V, we as W, me as X, D as Y, fe as Z, Re as _, $e as a, _ as at, Fe as b, qe as c, g as ct, Ge as d, p as dt, x as et, Ue as f, r as ft, Ve as g, Be as h, Qe as i, v as it, L as j, R as k, We as l, h as lt, ze as m, X as n, re as nt, $ as o, ee as ot, He as p, a as pt, ye as q, Ze as r, y as rt, Je as s, te as st, Ye as t, b as tt, Ke as u, m as ut, G as v, V as w, U as x, Pe as y, j as z };
1768
+ export { oe as $, we as A, pe as B, R as C, L as D, De as E, A as F, he as G, ge as H, Ce as I, x as J, xe as K, k as L, Se as M, N, Te as O, P, ue as Q, ye as R, V as S, Ee as T, ve as U, _e as V, be as W, S as X, C as Y, de as Z, je as _, qe as a, u as at, H as b, Ve as c, l as ct, ze as d, o as dt, g as et, Le as f, Pe as g, Ne as h, Ke as i, p as it, F as j, I as k, Re as l, c as lt, Me as m, Y as n, te as nt, $ as o, d as ot, Fe as p, me as q, Ge as r, m as rt, He as s, f as st, Ue as t, h as tt, Be as u, s as ut, G as v, z as w, U as x, Oe as y, O as z };