@fde-desktop/fde-core 0.4.9 → 0.4.10

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