@fde-desktop/fde-core 0.4.7 → 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 (284) hide show
  1. package/dist/AccordionChevron-DxpOyInK.js +26 -0
  2. package/dist/AccordionChevron-kn5kSrEc.cjs +1 -0
  3. package/dist/ActionIcon-Drh4p6Fv.js +145 -0
  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-XumS3bIG.js +80 -0
  9. package/dist/AppMenuBar-B9U0n1Vv.cjs +1 -0
  10. package/dist/AppMenuBar-CnIEVjr8.js +2049 -0
  11. package/dist/Box-DSKR_qaa.js +1579 -0
  12. package/dist/Box-zW6Twge8.cjs +1 -0
  13. package/dist/Button-DMlnrqyx.cjs +1 -0
  14. package/dist/Button-wTOTQKxF.js +178 -0
  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-CmxXB9ql.js +25 -0
  19. package/dist/Center-DKUE2pER.cjs +1 -0
  20. package/dist/CheckIcon-CZhtJD1O.cjs +1 -0
  21. package/dist/CheckIcon-N5qBqXQJ.js +25 -0
  22. package/dist/CodeServerApp-BOoGwZ7r.cjs +1 -0
  23. package/dist/CodeServerApp-Be3I5EGg.cjs +1 -0
  24. package/dist/CodeServerApp-DW18EZxa.js +150 -0
  25. package/dist/ColorPicker-BCNqi02x.js +997 -0
  26. package/dist/ColorPicker-BrDE7tMO.cjs +1 -0
  27. package/dist/Colors-ClnDxnyA.js +15 -0
  28. package/dist/Colors-zP2AFgU3.cjs +1 -0
  29. package/dist/CreateItemApp-B12M1E_1.cjs +1 -0
  30. package/dist/CreateItemApp-TAAprby3.js +400 -0
  31. package/dist/CreateItemApp-ePB6ujNl.cjs +1 -0
  32. package/dist/DeviceInfoApp-BMF18BGo.cjs +1 -0
  33. package/dist/DeviceInfoApp-DRy0H3aT.cjs +1 -0
  34. package/dist/DeviceInfoApp-lgpwkeRR.js +223 -0
  35. package/dist/DownloadProgress-EoyCaD5O.js +174 -0
  36. package/dist/DownloadProgress-VNdj22U8.cjs +1 -0
  37. package/dist/FileIcon-7JaSR3Gn.js +89 -0
  38. package/dist/FileIcon-CIXopWLv.cjs +1 -0
  39. package/dist/FilePickerApp-DaMgEqKh.js +409 -0
  40. package/dist/FilePickerApp-DjmuSFqa.cjs +1 -0
  41. package/dist/FilesApp-Bp7wfrBZ.cjs +1 -0
  42. package/dist/FilesApp-BpJJRKhi.cjs +1 -0
  43. package/dist/FilesApp-Cj94QG5o.js +225 -0
  44. package/dist/Group-CtBJSfCo.js +48 -0
  45. package/dist/Group-Dsrf6lEK.cjs +1 -0
  46. package/dist/ImageViewerApp-BaLP3gkO.js +69 -0
  47. package/dist/ImageViewerApp-DlHGeB3S.cjs +1 -0
  48. package/dist/ImageViewerApp-DoXd_Swu.cjs +1 -0
  49. package/dist/ImageViewerMenuBar-CabGSi9r.js +87 -0
  50. package/dist/ImageViewerMenuBar-SAI7UNz7.cjs +1 -0
  51. package/dist/ImageViewerMenuBar-_Jr29gii.cjs +1 -0
  52. package/dist/MenuEditApp-BJjlPTOa.cjs +1 -0
  53. package/dist/MenuEditApp-BTRppYnD.js +497 -0
  54. package/dist/MenuEditApp-JPsGT-S3.cjs +1 -0
  55. package/dist/MenuEditMenuBar-BydGkqMw.cjs +1 -0
  56. package/dist/MenuEditMenuBar-DptlwVPQ.cjs +1 -0
  57. package/dist/MenuEditMenuBar-x1IQrHP2.js +60 -0
  58. package/dist/NotesApp-BOcRGO7w.cjs +1 -0
  59. package/dist/NotesApp-CQe7UfBC.js +364 -0
  60. package/dist/NotesApp-OL07JXRE.cjs +1 -0
  61. package/dist/NotesMenuBar-BSI_2Y7p.cjs +1 -0
  62. package/dist/NotesMenuBar-Df6aW85J.cjs +1 -0
  63. package/dist/NotesMenuBar-VhpIe68v.js +62 -0
  64. package/dist/Paper-BX_9odR6.js +30 -0
  65. package/dist/Paper-D8-BaBx2.cjs +1 -0
  66. package/dist/PdfApp-CNEbty5v.cjs +1 -0
  67. package/dist/PdfApp-CVv3ZCaM.cjs +1 -0
  68. package/dist/PdfApp-DL_R9-Nc.js +39 -0
  69. package/dist/PdfMenuBar--E6kDyrT.cjs +1 -0
  70. package/dist/PdfMenuBar-DZCLSOpR.js +39 -0
  71. package/dist/PdfMenuBar-Dj5cJUkg.cjs +1 -0
  72. package/dist/SettingsApp-BlmHuAjT.js +1831 -0
  73. package/dist/SettingsApp-CNvIgf5B.cjs +1 -0
  74. package/dist/SettingsApp-DWxanNE4.cjs +1 -0
  75. package/dist/SettingsMenuBar-CBoOBCfx.cjs +1 -0
  76. package/dist/SettingsMenuBar-DQooFkZN.cjs +1 -0
  77. package/dist/SettingsMenuBar-YWiJHaxq.js +42 -0
  78. package/dist/Slider-BUiHxjKO.cjs +1 -0
  79. package/dist/Slider-t-NcD60t.js +1176 -0
  80. package/dist/Stack-Bp1Ek2Gp.js +34 -0
  81. package/dist/Stack-D4jAiRfc.cjs +1 -0
  82. package/dist/StorybookApp-CDLV_kja.cjs +1 -0
  83. package/dist/StorybookApp-DKwlPCmo.js +10 -0
  84. package/dist/TerminalApp-BCB7i1lR.cjs +1 -0
  85. package/dist/TerminalApp-BYc_gHLe.js +326 -0
  86. package/dist/TerminalApp-Dviz6aP2.cjs +1 -0
  87. package/dist/TerminalMenuBar-D5tPmgR_.js +113 -0
  88. package/dist/TerminalMenuBar-DNshPmCa.cjs +1 -0
  89. package/dist/TerminalMenuBar-HzMSR7XP.cjs +1 -0
  90. package/dist/TextInput-C-JtGWn1.js +981 -0
  91. package/dist/TextInput-CrsmcOip.cjs +1 -0
  92. package/dist/Tooltip-D5Cd9wtz.cjs +1 -0
  93. package/dist/Tooltip-DOeIvhrO.js +1142 -0
  94. package/dist/UnstyledButton-DGaG-e_G.js +25 -0
  95. package/dist/UnstyledButton-DX2pTahr.cjs +1 -0
  96. package/dist/UploaderApp-C6xA5Rrf2.cjs +1 -0
  97. package/dist/UploaderApp-DnHIRxB_.cjs +1 -0
  98. package/dist/UploaderApp-qBfpukR_.js +488 -0
  99. package/dist/VscIcon-CcMdrFoJ.cjs +1 -0
  100. package/dist/VscIcon-DBfVnArE.js +8 -0
  101. package/dist/create-safe-context-Bboj0GWC.cjs +1 -0
  102. package/dist/create-safe-context-XT2cxc14.js +12 -0
  103. package/dist/desktopStore-CZoA9VHO.cjs +1 -0
  104. package/dist/desktopStore-F8bgLqFl.js +1768 -0
  105. package/dist/getRuntime-BFK0-8R1.cjs +1 -0
  106. package/dist/getRuntime-DAPqFH2W.js +63 -0
  107. package/dist/imageViewerStore-BB_tssZR.cjs +1 -0
  108. package/dist/imageViewerStore-C5kWz0o7.js +50 -0
  109. package/dist/index.cjs +1 -5642
  110. package/dist/index.css +2 -9192
  111. package/dist/index.d.ts +2258 -2019
  112. package/dist/index.js +4826 -4798
  113. package/dist/is-element-Bu_JY8Qy.js +7 -0
  114. package/dist/is-element-CdV0xajp.cjs +1 -0
  115. package/dist/menuEditStore-CTeM_dns.cjs +1 -0
  116. package/dist/menuEditStore-Cj1zAwxQ.js +38 -0
  117. package/dist/notesStore-BCEl1D_v.cjs +1 -0
  118. package/dist/notesStore-BPyRTHEc.js +36 -0
  119. package/dist/rolldown-runtime-CAFD8bLK.js +11 -0
  120. package/dist/settingsAppStore-BDQ3ts1y.js +29 -0
  121. package/dist/settingsAppStore-CMBc13VU.cjs +1 -0
  122. package/dist/terminalStore-IWdf4Mm6.js +30 -0
  123. package/dist/terminalStore-iIuyodfK.cjs +1 -0
  124. package/dist/use-merged-ref-BT8_u6vW.js +25 -0
  125. package/dist/use-merged-ref-n9Gw9LNn.cjs +1 -0
  126. package/dist/use-resolved-styles-api-8OXE2oRq.cjs +1 -0
  127. package/dist/use-resolved-styles-api-DNUlJJZf.js +21 -0
  128. package/dist/use-uncontrolled-A4hm9ATM.js +23 -0
  129. package/dist/use-uncontrolled-DDJVQiM_.cjs +1 -0
  130. package/dist/useAdaptiveDimensions-AVDc_qPa.js +40 -0
  131. package/dist/useAdaptiveDimensions-CfITBJ_m.cjs +1 -0
  132. package/dist/useCloseInterceptor-BZd3VILp.js +51 -0
  133. package/dist/useCloseInterceptor-yntBEzNc.cjs +1 -0
  134. package/dist/useDynamicIcon-Bf0t2foA.js +22 -0
  135. package/dist/useDynamicIcon-DJ_il30E.cjs +1 -0
  136. package/dist/useMenuBarUtils-nJIPJGIQ.cjs +1 -0
  137. package/dist/useMenuBarUtils-nmu9yehT.js +6 -0
  138. package/dist/useOpenApp-CBIm7Gzl.js +279 -0
  139. package/dist/useOpenApp-DW4x79Zg.cjs +1 -0
  140. package/dist/useResolvedUrl-BkMPM1fM.cjs +1 -0
  141. package/dist/useResolvedUrl-DQpLqOoL.js +30 -0
  142. package/package.json +7 -3
  143. package/dist/CalendarApp-CHLUCAI7.css +0 -744
  144. package/dist/CalendarApp-K7ZOUZ6C.js +0 -2
  145. package/dist/CalendarApp-OTGEERSS.cjs +0 -8
  146. package/dist/CodeServerApp-5KZGO7HL.css +0 -75
  147. package/dist/CodeServerApp-LUZFCQBI.js +0 -3
  148. package/dist/CodeServerApp-P3TMJPLY.cjs +0 -9
  149. package/dist/CreateItemApp-ESQ42VHH.js +0 -8
  150. package/dist/CreateItemApp-PQB5GTFG.css +0 -107
  151. package/dist/CreateItemApp-RFE3REWZ.cjs +0 -14
  152. package/dist/DeviceInfoApp-XNIS6ZY6.js +0 -5
  153. package/dist/DeviceInfoApp-ZNLQNOKI.cjs +0 -11
  154. package/dist/DeviceInfoApp-ZSMRSITP.css +0 -7
  155. package/dist/FilesApp-4GEU64QN.js +0 -8
  156. package/dist/FilesApp-E6L5W3T2.css +0 -1817
  157. package/dist/FilesApp-QSLB5IWR.cjs +0 -14
  158. package/dist/ImageViewerApp-N2Q7E7WZ.css +0 -215
  159. package/dist/ImageViewerApp-NCVDKLB3.js +0 -11
  160. package/dist/ImageViewerApp-QB373H5Z.cjs +0 -17
  161. package/dist/ImageViewerMenuBar-I3TFKQPS.cjs +0 -14
  162. package/dist/ImageViewerMenuBar-TV5C6TM2.js +0 -5
  163. package/dist/ImageViewerMenuBar-XLK4LIHW.css +0 -56
  164. package/dist/MenuEditApp-5EFYAPFC.cjs +0 -15
  165. package/dist/MenuEditApp-V5XOPIHX.js +0 -9
  166. package/dist/MenuEditApp-YA6HSAMJ.css +0 -94
  167. package/dist/MenuEditMenuBar-7VHMZNRM.css +0 -56
  168. package/dist/MenuEditMenuBar-GF6L4PGZ.cjs +0 -15
  169. package/dist/MenuEditMenuBar-IUXFPZE5.js +0 -6
  170. package/dist/NotesApp-2YNT7Y3D.js +0 -10
  171. package/dist/NotesApp-IAEE7YHU.cjs +0 -16
  172. package/dist/NotesApp-TQ6IHDNX.css +0 -302
  173. package/dist/NotesMenuBar-25LKN3SE.cjs +0 -15
  174. package/dist/NotesMenuBar-MXLOX7OT.css +0 -56
  175. package/dist/NotesMenuBar-SRV3AIAL.js +0 -6
  176. package/dist/PdfApp-67XIX6AM.js +0 -10
  177. package/dist/PdfApp-BUIC5U5H.css +0 -206
  178. package/dist/PdfApp-GZ6RHTBR.cjs +0 -16
  179. package/dist/PdfMenuBar-NLZC6JHS.js +0 -4
  180. package/dist/PdfMenuBar-QUM72EE4.css +0 -56
  181. package/dist/PdfMenuBar-WBRTKMLN.cjs +0 -13
  182. package/dist/SettingsApp-BPLMGPNK.cjs +0 -20
  183. package/dist/SettingsApp-JVOSEFH3.css +0 -283
  184. package/dist/SettingsApp-LUDIXCYY.js +0 -14
  185. package/dist/SettingsMenuBar-5CBSSMVM.css +0 -56
  186. package/dist/SettingsMenuBar-VLT6TTCM.js +0 -6
  187. package/dist/SettingsMenuBar-Y5QEXDEO.cjs +0 -15
  188. package/dist/StorybookApp-NQ244BER.css +0 -7
  189. package/dist/StorybookApp-NZDV4X3Y.js +0 -1
  190. package/dist/StorybookApp-VF3KIMU3.cjs +0 -7
  191. package/dist/TerminalApp-CDGWRBFJ.cjs +0 -10
  192. package/dist/TerminalApp-EAATMIMX.css +0 -77
  193. package/dist/TerminalApp-GCKJCM55.js +0 -4
  194. package/dist/TerminalMenuBar-3J26O26Q.css +0 -56
  195. package/dist/TerminalMenuBar-7BH7MGNJ.cjs +0 -14
  196. package/dist/TerminalMenuBar-7JAEQUZ4.js +0 -5
  197. package/dist/UploaderApp-6KV3TGCT.css +0 -1817
  198. package/dist/UploaderApp-FJC2J4I5.js +0 -10
  199. package/dist/UploaderApp-HLXJYJZQ.cjs +0 -16
  200. package/dist/chunk-2PSTHGTD.cjs +0 -42
  201. package/dist/chunk-2RQX7QBP.cjs +0 -148
  202. package/dist/chunk-43W6UDUZ.cjs +0 -19
  203. package/dist/chunk-4E45FBAH.js +0 -223
  204. package/dist/chunk-4E4U2A25.cjs +0 -237
  205. package/dist/chunk-4QHX7CMN.cjs +0 -38
  206. package/dist/chunk-4XURSNM4.js +0 -43
  207. package/dist/chunk-4ZCRYHL6.js +0 -407
  208. package/dist/chunk-5C6IQE42.cjs +0 -35
  209. package/dist/chunk-5HUYQDQF.js +0 -36
  210. package/dist/chunk-5NOHYJNH.js +0 -84
  211. package/dist/chunk-5QFZW6HW.js +0 -2241
  212. package/dist/chunk-5YH6AKEO.js +0 -146
  213. package/dist/chunk-756GPSPM.js +0 -283
  214. package/dist/chunk-7WUYUTPN.js +0 -2293
  215. package/dist/chunk-7XCMBW64.js +0 -162
  216. package/dist/chunk-7Y7HB7FB.cjs +0 -53
  217. package/dist/chunk-ABIAPZ6S.cjs +0 -45
  218. package/dist/chunk-ACHGJKCI.cjs +0 -286
  219. package/dist/chunk-BQCD5RAF.cjs +0 -48
  220. package/dist/chunk-BQL3YXMV.js +0 -17429
  221. package/dist/chunk-C3XER4N3.js +0 -442
  222. package/dist/chunk-C6BEZNAM.cjs +0 -45
  223. package/dist/chunk-CILU6BWC.cjs +0 -548
  224. package/dist/chunk-CV5PUHAE.cjs +0 -86
  225. package/dist/chunk-D5MVFFID.js +0 -42
  226. package/dist/chunk-D7R55WWT.js +0 -1601
  227. package/dist/chunk-DFYDUXWP.cjs +0 -34
  228. package/dist/chunk-DWP2SYF7.js +0 -55
  229. package/dist/chunk-E55VXNLK.cjs +0 -17498
  230. package/dist/chunk-E5FW77FG.js +0 -77
  231. package/dist/chunk-EAELL43F.js +0 -42
  232. package/dist/chunk-EX5V2ZTU.js +0 -40
  233. package/dist/chunk-FD7QZCTN.cjs +0 -2329
  234. package/dist/chunk-FH4ILMKF.js +0 -38
  235. package/dist/chunk-FRHBM2U7.js +0 -33
  236. package/dist/chunk-FX2TPX3L.cjs +0 -45
  237. package/dist/chunk-GPXNLTPI.cjs +0 -451
  238. package/dist/chunk-GRYCUBJZ.js +0 -9
  239. package/dist/chunk-HPHHS7FJ.cjs +0 -49
  240. package/dist/chunk-HWHBSAUC.js +0 -40
  241. package/dist/chunk-IDHP3R4I.js +0 -31
  242. package/dist/chunk-IHWGT3DL.js +0 -86
  243. package/dist/chunk-JEBKLIMU.cjs +0 -123
  244. package/dist/chunk-KDZLBI6F.cjs +0 -324
  245. package/dist/chunk-KQHICFX3.js +0 -121
  246. package/dist/chunk-LMJE6V4N.cjs +0 -42
  247. package/dist/chunk-MCHPDWVH.js +0 -444
  248. package/dist/chunk-MVDGM5Y4.js +0 -68
  249. package/dist/chunk-N36HBL53.cjs +0 -165
  250. package/dist/chunk-NV5GNFA3.js +0 -541
  251. package/dist/chunk-NVEGEK3N.js +0 -31
  252. package/dist/chunk-OJIDKDKF.js +0 -68
  253. package/dist/chunk-PGGNSLM7.js +0 -215
  254. package/dist/chunk-PKPQA5NR.js +0 -15
  255. package/dist/chunk-PNDBLFJW.cjs +0 -50
  256. package/dist/chunk-Q3WA72BF.cjs +0 -70
  257. package/dist/chunk-RDIDAZ3S.cjs +0 -9
  258. package/dist/chunk-RGJPRXYY.js +0 -48
  259. package/dist/chunk-RPSYXORB.cjs +0 -219
  260. package/dist/chunk-RQ6OZRUW.cjs +0 -41
  261. package/dist/chunk-SBE4SZAN.cjs +0 -226
  262. package/dist/chunk-TAFNCDUI.js +0 -234
  263. package/dist/chunk-TFIDSENE.cjs +0 -88
  264. package/dist/chunk-TGWMOHAO.js +0 -17
  265. package/dist/chunk-UA6XSTW6.js +0 -48
  266. package/dist/chunk-UIQCTAVM.cjs +0 -59
  267. package/dist/chunk-UKYESVDS.cjs +0 -50
  268. package/dist/chunk-V4N255NL.cjs +0 -2309
  269. package/dist/chunk-VO6KXO2I.js +0 -32
  270. package/dist/chunk-WXSTSC3D.cjs +0 -83
  271. package/dist/chunk-XSK7BWYO.js +0 -47
  272. package/dist/chunk-XVAPJ4PP.cjs +0 -449
  273. package/dist/chunk-XVASHRCE.cjs +0 -70
  274. package/dist/chunk-XYSMVQQD.cjs +0 -1608
  275. package/dist/chunk-YAIWI4Z5.js +0 -7
  276. package/dist/chunk-YGYOLDKR.js +0 -280
  277. package/dist/chunk-YP2PLNOF.cjs +0 -34
  278. package/dist/chunk-YSOLW4FS.cjs +0 -11
  279. package/dist/chunk-YY6OUR2U.js +0 -44
  280. package/dist/chunk-YZWS7FDT.cjs +0 -409
  281. package/dist/chunk-Z5YGWL65.cjs +0 -39
  282. package/dist/chunk-ZHNDXNL4.js +0 -45
  283. package/dist/chunk-ZX3EDZ5C.cjs +0 -17
  284. package/dist/index.d.cts +0 -2019
@@ -0,0 +1,497 @@
1
+ import { t as e } from "./rolldown-runtime-CAFD8bLK.js";
2
+ import { t } from "./Box-DSKR_qaa.js";
3
+ import { t as n } from "./TextInput-C-JtGWn1.js";
4
+ import { t as r } from "./UnstyledButton-DGaG-e_G.js";
5
+ import { t as i } from "./ActionIcon-Drh4p6Fv.js";
6
+ import { t as a } from "./Group-CtBJSfCo.js";
7
+ import { i as o, o as s } from "./getRuntime-DAPqFH2W.js";
8
+ import { n as c, t as l } from "./AppIcon-XumS3bIG.js";
9
+ import { C as u, o as d } from "./desktopStore-F8bgLqFl.js";
10
+ import { i as f } from "./useCloseInterceptor-BZd3VILp.js";
11
+ import { t as p } from "./VscIcon-DBfVnArE.js";
12
+ import { n as m } from "./menuEditStore-Cj1zAwxQ.js";
13
+ import { createContext as h, useCallback as g, useContext as _, useEffect as v, useMemo as y, useRef as b, useState as x } from "react";
14
+ import { jsx as S, jsxs as C } from "react/jsx-runtime";
15
+ import { useTranslation as w } from "react-i18next";
16
+ import { DndContext as T, DragOverlay as E, defaultDropAnimation as D, pointerWithin as O, useDraggable as k, useDroppable as A } from "@dnd-kit/core";
17
+ //#region src/hooks/useFolderName.ts
18
+ var j = {
19
+ "launcher-folder-social-links": "socialLinks",
20
+ "launcher-folder-office": "office",
21
+ "launcher-folder-programming": "programming",
22
+ "launcher-folder-games": "games",
23
+ "launcher-folder-custom-apps": "customApps"
24
+ };
25
+ function M(e) {
26
+ let { t } = w("apps");
27
+ if (!e.isPredefined) return e.name;
28
+ let n = j[e.id];
29
+ return n ? t(`folders.${n}`, e.name) : e.name;
30
+ }
31
+ //#endregion
32
+ //#region src/hooks/useDragDrop/DragDropStateContext.tsx
33
+ var N = h(null), P = ({ children: e, onDrop: t, onCancel: n }) => {
34
+ let [r, i] = x(null), [a, o] = x(null), s = g((e) => {
35
+ let t = e.active.data.current;
36
+ t && i(t);
37
+ }, []), c = g((e) => {
38
+ if (e.over) {
39
+ let t = e.over.data.current;
40
+ t && o(t);
41
+ } else o(null);
42
+ }, []), l = g((e) => {
43
+ let { active: r, over: a } = e;
44
+ if (a && r.data.current) {
45
+ let e = r.data.current, n = a.data.current;
46
+ n.accepts.includes(e.type) && t(e, n);
47
+ } else !a && n && n();
48
+ i(null), o(null);
49
+ }, [t, n]), u = y(() => ({
50
+ activeItem: r,
51
+ overTarget: a
52
+ }), [r, a]);
53
+ return /* @__PURE__ */ S(N.Provider, {
54
+ value: u,
55
+ children: /* @__PURE__ */ S(T, {
56
+ onDragStart: s,
57
+ onDragOver: c,
58
+ onDragEnd: l,
59
+ collisionDetection: O,
60
+ children: e
61
+ })
62
+ });
63
+ };
64
+ //#endregion
65
+ //#region src/hooks/useDragDrop/useDraggableItem.ts
66
+ function F(e) {
67
+ let { item: t, disabled: n = !1 } = e, { attributes: r, listeners: i, setNodeRef: a, transform: o, isDragging: s } = k({
68
+ id: `${t.sourceId}-${t.id}`,
69
+ data: t,
70
+ disabled: n
71
+ }), c = {
72
+ opacity: s ? 0 : 1,
73
+ cursor: n ? "default" : "grab"
74
+ };
75
+ return {
76
+ attributes: r,
77
+ listeners: i,
78
+ setNodeRef: a,
79
+ isDragging: s,
80
+ transform: o ? {
81
+ x: o.x,
82
+ y: o.y
83
+ } : null,
84
+ style: c
85
+ };
86
+ }
87
+ //#endregion
88
+ //#region src/hooks/useDragDrop/useDroppableArea.ts
89
+ function I(e) {
90
+ let { target: t, disabled: n = !1 } = e, r = _(N), { setNodeRef: i, isOver: a } = A({
91
+ id: t.id,
92
+ data: t,
93
+ disabled: n
94
+ });
95
+ return {
96
+ setNodeRef: i,
97
+ isOver: a,
98
+ active: r?.activeItem ?? null
99
+ };
100
+ }
101
+ //#endregion
102
+ //#region src/hooks/useDragDrop/useDragDropState.ts
103
+ function L() {
104
+ let e = _(N);
105
+ if (!e) throw Error("useDragDropState must be used within a DragDropProvider");
106
+ return e;
107
+ }
108
+ //#endregion
109
+ //#region src/hooks/useDragDrop/modifiers/snapCenterToCursor.ts
110
+ var R = ({ activatorEvent: e, transform: t, draggingNodeRect: n }) => {
111
+ if (!e || !n) return t;
112
+ let r = e, i = 0, a = 0;
113
+ "touches" in r && r.touches.length > 0 ? (i = r.touches[0].clientX, a = r.touches[0].clientY) : "clientX" in r && (i = r.clientX, a = r.clientY);
114
+ let o = i - n.left - n.width / 2, s = a - n.top - n.height / 2;
115
+ return {
116
+ ...t,
117
+ x: t.x + o,
118
+ y: t.y + s
119
+ };
120
+ }, z = { dragOverlay: "_dragOverlay_myknw_1" }, B = () => {
121
+ let { activeItem: e } = L();
122
+ return e ? /* @__PURE__ */ S(E, {
123
+ dropAnimation: D,
124
+ modifiers: [R],
125
+ children: /* @__PURE__ */ C(t, {
126
+ className: z.dragOverlay,
127
+ children: [/* @__PURE__ */ S(l, {
128
+ fcIcon: e.metadata?.fcIcon,
129
+ iconUrl: e.metadata?.iconUrl,
130
+ fallback: e.metadata?.icon,
131
+ size: 20
132
+ }), /* @__PURE__ */ S(s, {
133
+ size: "xs",
134
+ children: e.name
135
+ })]
136
+ })
137
+ }) : null;
138
+ }, V = {
139
+ "launcher-folder": ["app"],
140
+ "filesystem-folder": ["file", "folder"],
141
+ desktop: [
142
+ "file",
143
+ "folder",
144
+ "app"
145
+ ],
146
+ "available-apps": ["app"]
147
+ }, H = {
148
+ container: "_container_y9c6e_1",
149
+ content: "_content_y9c6e_7",
150
+ folderList: "_folderList_y9c6e_13",
151
+ folderCard: "_folderCard_y9c6e_19",
152
+ folderHeader: "_folderHeader_y9c6e_28",
153
+ appList: "_appList_y9c6e_40",
154
+ availableApps: "_availableApps_y9c6e_49",
155
+ appGrid: "_appGrid_y9c6e_58",
156
+ appItem: "_appItem_y9c6e_64"
157
+ }, U = /* @__PURE__ */ e({ default: () => Y }), W = ({ folder: e, isEditing: r, editingName: o, onEdit: d, onDelete: f, onRename: m, onSetEditingName: h, onRemoveApp: g }) => {
158
+ let { t: _ } = w("menuedit"), v = M(e), { activeItem: y } = L(), { setNodeRef: b, isOver: x } = I({ target: {
159
+ type: "launcher-folder",
160
+ id: e.id,
161
+ name: v,
162
+ accepts: V["launcher-folder"]
163
+ } });
164
+ return /* @__PURE__ */ C(c, {
165
+ ref: b,
166
+ className: H.folderCard,
167
+ shadow: "xs",
168
+ padding: "xs",
169
+ "data-is-over": x && y?.type === "app" ? "true" : void 0,
170
+ children: [/* @__PURE__ */ C(a, {
171
+ justify: "space-between",
172
+ mb: 4,
173
+ children: [r ? /* @__PURE__ */ S(n, {
174
+ value: o,
175
+ onChange: (e) => h(e.target.value),
176
+ onBlur: () => m(e.id),
177
+ onKeyDown: (t) => {
178
+ t.key === "Enter" && (t.preventDefault(), m(e.id));
179
+ },
180
+ autoFocus: !0,
181
+ size: "xs",
182
+ style: { flex: 1 }
183
+ }) : /* @__PURE__ */ C(a, {
184
+ gap: "xs",
185
+ children: [
186
+ /* @__PURE__ */ S(l, {
187
+ fcIcon: e.fcIcon,
188
+ size: 16
189
+ }),
190
+ /* @__PURE__ */ S(s, {
191
+ size: "sm",
192
+ fw: 500,
193
+ children: v
194
+ }),
195
+ e.isPredefined && /* @__PURE__ */ C(s, {
196
+ size: "xs",
197
+ c: "dimmed",
198
+ children: [
199
+ "(",
200
+ _("predefined"),
201
+ ")"
202
+ ]
203
+ })
204
+ ]
205
+ }), !e.isPredefined && !r && /* @__PURE__ */ C(a, {
206
+ gap: 4,
207
+ children: [/* @__PURE__ */ S(i, {
208
+ variant: "subtle",
209
+ size: "xs",
210
+ onClick: () => d(e.id),
211
+ "aria-label": _("rename"),
212
+ children: /* @__PURE__ */ S(p, {
213
+ name: "VscEdit",
214
+ size: 14
215
+ })
216
+ }), f && /* @__PURE__ */ S(i, {
217
+ variant: "subtle",
218
+ size: "xs",
219
+ color: "red",
220
+ onClick: () => f(e.id),
221
+ "aria-label": _("delete"),
222
+ children: /* @__PURE__ */ S(p, {
223
+ name: "VscTrash",
224
+ size: 14
225
+ })
226
+ })]
227
+ })]
228
+ }), /* @__PURE__ */ S(t, {
229
+ className: H.appList,
230
+ children: e.appIds.map((t) => {
231
+ let n = u.find((e) => e.id === t);
232
+ return n ? /* @__PURE__ */ S(G, {
233
+ app: n,
234
+ sourceId: e.id,
235
+ onContextMenu: (n) => {
236
+ n.preventDefault(), n.stopPropagation(), g(t, e.id);
237
+ }
238
+ }, t) : null;
239
+ })
240
+ })]
241
+ });
242
+ }, G = ({ app: e, sourceId: t, onContextMenu: n }) => {
243
+ let { attributes: i, listeners: a, setNodeRef: o, isDragging: c, style: u } = F({ item: {
244
+ type: "app",
245
+ id: e.id,
246
+ name: e.name,
247
+ sourceId: t,
248
+ sourceType: "launcher-folder",
249
+ metadata: {
250
+ fcIcon: e.fcIcon,
251
+ iconUrl: e.iconUrl,
252
+ icon: e.icon
253
+ }
254
+ } });
255
+ return /* @__PURE__ */ C(r, {
256
+ ref: o,
257
+ className: H.appItem,
258
+ style: {
259
+ ...u,
260
+ opacity: c ? .5 : 1
261
+ },
262
+ onContextMenu: n,
263
+ ...i,
264
+ ...a,
265
+ children: [/* @__PURE__ */ S(l, {
266
+ fcIcon: e.fcIcon,
267
+ iconUrl: e.iconUrl,
268
+ fallback: e.icon,
269
+ size: 16
270
+ }), /* @__PURE__ */ S(s, {
271
+ size: "xs",
272
+ children: e.name
273
+ })]
274
+ });
275
+ }, K = ({ customFolderId: e }) => {
276
+ let { t: n } = w("menuedit"), { activeItem: r } = L(), { setNodeRef: i, isOver: a } = I({ target: {
277
+ type: "available-apps",
278
+ id: "available-apps",
279
+ name: "Available Apps",
280
+ accepts: V["available-apps"]
281
+ } }), o = new Set(d.getState().launcherFolders.flatMap((e) => e.appIds)), c = u.filter((e) => e.id !== "settings" && e.id !== "menuedit"), l = d((e) => e.addAppToFolder);
282
+ return /* @__PURE__ */ C(t, {
283
+ ref: i,
284
+ className: H.availableApps,
285
+ "data-is-over": a && r?.type === "app" ? "true" : void 0,
286
+ children: [
287
+ /* @__PURE__ */ S(s, {
288
+ size: "xs",
289
+ c: "dimmed",
290
+ mb: 8,
291
+ children: n("availableApps")
292
+ }),
293
+ e === null && /* @__PURE__ */ S(s, {
294
+ size: "xs",
295
+ c: "orange",
296
+ mb: 4,
297
+ children: n("canCreateNewFolder")
298
+ }),
299
+ /* @__PURE__ */ S(t, {
300
+ className: H.appGrid,
301
+ children: c.filter((e) => !o.has(e.id)).map((t) => /* @__PURE__ */ S(q, {
302
+ app: t,
303
+ targetFolderId: e,
304
+ onAdd: l
305
+ }, t.id))
306
+ })
307
+ ]
308
+ });
309
+ }, q = ({ app: e, targetFolderId: t, onAdd: n }) => {
310
+ let { attributes: i, listeners: a, setNodeRef: o, isDragging: c, style: u } = F({ item: {
311
+ type: "app",
312
+ id: e.id,
313
+ name: e.name,
314
+ sourceId: "available-apps",
315
+ sourceType: "available-apps",
316
+ metadata: {
317
+ fcIcon: e.fcIcon,
318
+ iconUrl: e.iconUrl,
319
+ icon: e.icon
320
+ }
321
+ } }), d = () => {
322
+ t && n(e.id, t);
323
+ };
324
+ return /* @__PURE__ */ C(r, {
325
+ ref: o,
326
+ className: H.appItem,
327
+ style: {
328
+ ...u,
329
+ opacity: c ? 0 : 1
330
+ },
331
+ onClick: d,
332
+ disabled: !t,
333
+ ...i,
334
+ ...a,
335
+ children: [/* @__PURE__ */ S(l, {
336
+ fcIcon: e.fcIcon,
337
+ iconUrl: e.iconUrl,
338
+ fallback: e.icon,
339
+ size: 16
340
+ }), /* @__PURE__ */ S(s, {
341
+ size: "xs",
342
+ children: e.name
343
+ })]
344
+ });
345
+ }, J = ({ window: e, notifyReady: n }) => {
346
+ let { t: r } = w("menuedit"), c = e?.id, l = d((e) => e.launcherFolders), u = d((e) => e.setLauncherFolders), h = d((e) => e.createLauncherFolder), _ = d((e) => e.updateLauncherFolder), y = d((e) => e.deleteLauncherFolder), T = d((e) => e.removeAppFromFolder), [E, D] = x(null), [O, k] = x(""), A = b(!1);
347
+ v(() => {
348
+ c && (A.current || (A.current = !0, m.getState().reset(c)));
349
+ }, [c]), v(() => {
350
+ if (!c) return;
351
+ let e = m.getState();
352
+ if (e.getSnapshot(c) === null) e.takeSnapshot(c, l);
353
+ else {
354
+ let t = e.getSnapshot(c);
355
+ if (t) {
356
+ let n = JSON.stringify(l) !== JSON.stringify(t);
357
+ e.setIsDirty(c, n);
358
+ }
359
+ }
360
+ }, [c, l]);
361
+ let j = g(() => {
362
+ c && m.getState().takeSnapshot(c, l);
363
+ }, [c, l]), M = g(() => {
364
+ if (!c) return;
365
+ let e = m.getState().getSnapshot(c);
366
+ e && u(e);
367
+ }, [c, u]);
368
+ f({
369
+ isDirtyGetter: g(() => {
370
+ if (!c) return !1;
371
+ let e = m.getState().getSnapshot(c);
372
+ return JSON.stringify(l) !== JSON.stringify(e ?? []);
373
+ }, [c, l]),
374
+ windowId: e?.id,
375
+ onDiscard: M,
376
+ onSave: j
377
+ });
378
+ let N = g(() => {
379
+ let e = h({
380
+ name: r("newFolder"),
381
+ fcIcon: "VscFolder",
382
+ order: l.length
383
+ });
384
+ D(e.id), k(e.name);
385
+ }, [
386
+ h,
387
+ l.length,
388
+ r
389
+ ]);
390
+ v(() => {
391
+ n?.({
392
+ createFolder: N,
393
+ save: j,
394
+ discard: M
395
+ });
396
+ }, [
397
+ N,
398
+ j,
399
+ M,
400
+ n
401
+ ]);
402
+ let P = g((e) => {
403
+ let t = l.find((t) => t.id === e);
404
+ t && (D(t.id), k(t.name));
405
+ }, [l]), F = g((e) => {
406
+ O.trim() && _(e, { name: O.trim() }), D(null);
407
+ }, [O, _]), I = o(), L = l.filter((e) => e.isPredefined), R = l.filter((e) => !e.isPredefined), z = R.length > 0 ? R[0].id : null;
408
+ return /* @__PURE__ */ S(t, {
409
+ className: H.container,
410
+ "data-windowid": e?.id,
411
+ "data-menuedit-container": !0,
412
+ children: /* @__PURE__ */ C(t, {
413
+ className: H.content,
414
+ children: [
415
+ L.length > 0 && /* @__PURE__ */ C(t, {
416
+ mb: "md",
417
+ children: [/* @__PURE__ */ S(s, {
418
+ size: "xs",
419
+ c: "dimmed",
420
+ mb: 8,
421
+ children: r("predefinedFolders")
422
+ }), /* @__PURE__ */ S(t, {
423
+ className: H.folderList,
424
+ children: L.map((e) => /* @__PURE__ */ S(W, {
425
+ folder: e,
426
+ isEditing: !1,
427
+ editingName: "",
428
+ onEdit: () => {},
429
+ onRemoveApp: T,
430
+ onRename: () => {},
431
+ onSetEditingName: () => {}
432
+ }, e.id))
433
+ })]
434
+ }),
435
+ I && R.length > 0 && /* @__PURE__ */ C(t, {
436
+ mb: "md",
437
+ children: [/* @__PURE__ */ S(s, {
438
+ size: "xs",
439
+ c: "dimmed",
440
+ mb: 8,
441
+ children: r("customFolders")
442
+ }), /* @__PURE__ */ S(t, {
443
+ className: H.folderList,
444
+ children: R.map((e) => /* @__PURE__ */ S(W, {
445
+ folder: e,
446
+ isEditing: E === e.id,
447
+ editingName: O,
448
+ onEdit: P,
449
+ onDelete: y,
450
+ onRename: F,
451
+ onSetEditingName: k,
452
+ onRemoveApp: T
453
+ }, e.id))
454
+ })]
455
+ }),
456
+ /* @__PURE__ */ C(a, {
457
+ justify: "space-between",
458
+ mb: "md",
459
+ children: [
460
+ /* @__PURE__ */ S(K, { customFolderId: z }),
461
+ /* @__PURE__ */ S(s, {
462
+ size: "xs",
463
+ c: "dimmed",
464
+ mt: "md",
465
+ children: r("instructions")
466
+ }),
467
+ I && /* @__PURE__ */ S(i, {
468
+ variant: "light",
469
+ onClick: N,
470
+ "aria-label": r("addFolder"),
471
+ children: /* @__PURE__ */ S(p, {
472
+ name: "VscAdd",
473
+ size: 16
474
+ })
475
+ })
476
+ ]
477
+ })
478
+ ]
479
+ })
480
+ });
481
+ }, Y = (e) => {
482
+ let t = d((e) => e.addAppToFolder), n = d((e) => e.removeAppFromFolder);
483
+ return /* @__PURE__ */ C(P, {
484
+ onDrop: g((e, r) => {
485
+ if (e.type === "app") {
486
+ if (r.type === "available-apps") {
487
+ e.sourceType === "launcher-folder" && n(e.id, e.sourceId);
488
+ return;
489
+ }
490
+ r.type === "launcher-folder" && (e.sourceId !== r.id && e.sourceType === "launcher-folder" && n(e.id, e.sourceId), t(e.id, r.id));
491
+ }
492
+ }, [t, n]),
493
+ children: [/* @__PURE__ */ S(J, { ...e }), /* @__PURE__ */ S(B, {})]
494
+ });
495
+ };
496
+ //#endregion
497
+ export { F as a, I as i, U as n, P as o, L as r, M as s, Y as t };
@@ -0,0 +1 @@
1
+ const e=require(`./Box-zW6Twge8.cjs`),t=require(`./TextInput-CrsmcOip.cjs`),n=require(`./UnstyledButton-DX2pTahr.cjs`),r=require(`./ActionIcon-alk2zZD6.cjs`),i=require(`./Group-Dsrf6lEK.cjs`),a=require(`./getRuntime-BFK0-8R1.cjs`),o=require(`./AppIcon-BU7a3ZNH.cjs`),s=require(`./desktopStore-CZoA9VHO.cjs`),c=require(`./useCloseInterceptor-yntBEzNc.cjs`),l=require(`./VscIcon-CcMdrFoJ.cjs`),u=require(`./menuEditStore-CTeM_dns.cjs`);let d=require(`react`),f=require(`react/jsx-runtime`),p=require(`react-i18next`),m=require(`@dnd-kit/core`);var h={"launcher-folder-social-links":`socialLinks`,"launcher-folder-office":`office`,"launcher-folder-programming":`programming`,"launcher-folder-games":`games`,"launcher-folder-custom-apps":`customApps`};function g(e){let{t}=(0,p.useTranslation)(`apps`);if(!e.isPredefined)return e.name;let n=h[e.id];return n?t(`folders.${n}`,e.name):e.name}var _=(0,d.createContext)(null),v=({children:e,onDrop:t,onCancel:n})=>{let[r,i]=(0,d.useState)(null),[a,o]=(0,d.useState)(null),s=(0,d.useCallback)(e=>{let t=e.active.data.current;t&&i(t)},[]),c=(0,d.useCallback)(e=>{if(e.over){let t=e.over.data.current;t&&o(t)}else o(null)},[]),l=(0,d.useCallback)(e=>{let{active:r,over:a}=e;if(a&&r.data.current){let e=r.data.current,n=a.data.current;n.accepts.includes(e.type)&&t(e,n)}else !a&&n&&n();i(null),o(null)},[t,n]),u=(0,d.useMemo)(()=>({activeItem:r,overTarget:a}),[r,a]);return(0,f.jsx)(_.Provider,{value:u,children:(0,f.jsx)(m.DndContext,{onDragStart:s,onDragOver:c,onDragEnd:l,collisionDetection:m.pointerWithin,children:e})})};function y(e){let{item:t,disabled:n=!1}=e,{attributes:r,listeners:i,setNodeRef:a,transform:o,isDragging:s}=(0,m.useDraggable)({id:`${t.sourceId}-${t.id}`,data:t,disabled:n}),c={opacity:s?0:1,cursor:n?`default`:`grab`};return{attributes:r,listeners:i,setNodeRef:a,isDragging:s,transform:o?{x:o.x,y:o.y}:null,style:c}}function b(e){let{target:t,disabled:n=!1}=e,r=(0,d.useContext)(_),{setNodeRef:i,isOver:a}=(0,m.useDroppable)({id:t.id,data:t,disabled:n});return{setNodeRef:i,isOver:a,active:r?.activeItem??null}}function x(){let e=(0,d.useContext)(_);if(!e)throw Error(`useDragDropState must be used within a DragDropProvider`);return e}var S=({activatorEvent:e,transform:t,draggingNodeRect:n})=>{if(!e||!n)return t;let r=e,i=0,a=0;`touches`in r&&r.touches.length>0?(i=r.touches[0].clientX,a=r.touches[0].clientY):`clientX`in r&&(i=r.clientX,a=r.clientY);let o=i-n.left-n.width/2,s=a-n.top-n.height/2;return{...t,x:t.x+o,y:t.y+s}},C={dragOverlay:`_dragOverlay_myknw_1`},w=()=>{let{activeItem:t}=x();return t?(0,f.jsx)(m.DragOverlay,{dropAnimation:m.defaultDropAnimation,modifiers:[S],children:(0,f.jsxs)(e.t,{className:C.dragOverlay,children:[(0,f.jsx)(o.t,{fcIcon:t.metadata?.fcIcon,iconUrl:t.metadata?.iconUrl,fallback:t.metadata?.icon,size:20}),(0,f.jsx)(a.o,{size:`xs`,children:t.name})]})}):null},T={"launcher-folder":[`app`],"filesystem-folder":[`file`,`folder`],desktop:[`file`,`folder`,`app`],"available-apps":[`app`]},E={container:`_container_y9c6e_1`,content:`_content_y9c6e_7`,folderList:`_folderList_y9c6e_13`,folderCard:`_folderCard_y9c6e_19`,folderHeader:`_folderHeader_y9c6e_28`,appList:`_appList_y9c6e_40`,availableApps:`_availableApps_y9c6e_49`,appGrid:`_appGrid_y9c6e_58`,appItem:`_appItem_y9c6e_64`},D=({folder:n,isEditing:c,editingName:u,onEdit:d,onDelete:m,onRename:h,onSetEditingName:_,onRemoveApp:v})=>{let{t:y}=(0,p.useTranslation)(`menuedit`),S=g(n),{activeItem:C}=x(),{setNodeRef:w,isOver:D}=b({target:{type:`launcher-folder`,id:n.id,name:S,accepts:T[`launcher-folder`]}});return(0,f.jsxs)(o.n,{ref:w,className:E.folderCard,shadow:`xs`,padding:`xs`,"data-is-over":D&&C?.type===`app`?`true`:void 0,children:[(0,f.jsxs)(i.t,{justify:`space-between`,mb:4,children:[c?(0,f.jsx)(t.t,{value:u,onChange:e=>_(e.target.value),onBlur:()=>h(n.id),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),h(n.id))},autoFocus:!0,size:`xs`,style:{flex:1}}):(0,f.jsxs)(i.t,{gap:`xs`,children:[(0,f.jsx)(o.t,{fcIcon:n.fcIcon,size:16}),(0,f.jsx)(a.o,{size:`sm`,fw:500,children:S}),n.isPredefined&&(0,f.jsxs)(a.o,{size:`xs`,c:`dimmed`,children:[`(`,y(`predefined`),`)`]})]}),!n.isPredefined&&!c&&(0,f.jsxs)(i.t,{gap:4,children:[(0,f.jsx)(r.t,{variant:`subtle`,size:`xs`,onClick:()=>d(n.id),"aria-label":y(`rename`),children:(0,f.jsx)(l.t,{name:`VscEdit`,size:14})}),m&&(0,f.jsx)(r.t,{variant:`subtle`,size:`xs`,color:`red`,onClick:()=>m(n.id),"aria-label":y(`delete`),children:(0,f.jsx)(l.t,{name:`VscTrash`,size:14})})]})]}),(0,f.jsx)(e.t,{className:E.appList,children:n.appIds.map(e=>{let t=s.C.find(t=>t.id===e);return t?(0,f.jsx)(O,{app:t,sourceId:n.id,onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),v(e,n.id)}},e):null})})]})},O=({app:e,sourceId:t,onContextMenu:r})=>{let{attributes:i,listeners:s,setNodeRef:c,isDragging:l,style:u}=y({item:{type:`app`,id:e.id,name:e.name,sourceId:t,sourceType:`launcher-folder`,metadata:{fcIcon:e.fcIcon,iconUrl:e.iconUrl,icon:e.icon}}});return(0,f.jsxs)(n.t,{ref:c,className:E.appItem,style:{...u,opacity:l?.5:1},onContextMenu:r,...i,...s,children:[(0,f.jsx)(o.t,{fcIcon:e.fcIcon,iconUrl:e.iconUrl,fallback:e.icon,size:16}),(0,f.jsx)(a.o,{size:`xs`,children:e.name})]})},k=({customFolderId:t})=>{let{t:n}=(0,p.useTranslation)(`menuedit`),{activeItem:r}=x(),{setNodeRef:i,isOver:o}=b({target:{type:`available-apps`,id:`available-apps`,name:`Available Apps`,accepts:T[`available-apps`]}}),c=new Set(s.o.getState().launcherFolders.flatMap(e=>e.appIds)),l=s.C.filter(e=>e.id!==`settings`&&e.id!==`menuedit`),u=s.o(e=>e.addAppToFolder);return(0,f.jsxs)(e.t,{ref:i,className:E.availableApps,"data-is-over":o&&r?.type===`app`?`true`:void 0,children:[(0,f.jsx)(a.o,{size:`xs`,c:`dimmed`,mb:8,children:n(`availableApps`)}),t===null&&(0,f.jsx)(a.o,{size:`xs`,c:`orange`,mb:4,children:n(`canCreateNewFolder`)}),(0,f.jsx)(e.t,{className:E.appGrid,children:l.filter(e=>!c.has(e.id)).map(e=>(0,f.jsx)(A,{app:e,targetFolderId:t,onAdd:u},e.id))})]})},A=({app:e,targetFolderId:t,onAdd:r})=>{let{attributes:i,listeners:s,setNodeRef:c,isDragging:l,style:u}=y({item:{type:`app`,id:e.id,name:e.name,sourceId:`available-apps`,sourceType:`available-apps`,metadata:{fcIcon:e.fcIcon,iconUrl:e.iconUrl,icon:e.icon}}}),d=()=>{t&&r(e.id,t)};return(0,f.jsxs)(n.t,{ref:c,className:E.appItem,style:{...u,opacity:l?0:1},onClick:d,disabled:!t,...i,...s,children:[(0,f.jsx)(o.t,{fcIcon:e.fcIcon,iconUrl:e.iconUrl,fallback:e.icon,size:16}),(0,f.jsx)(a.o,{size:`xs`,children:e.name})]})},j=({window:t,notifyReady:n})=>{let{t:o}=(0,p.useTranslation)(`menuedit`),m=t?.id,h=s.o(e=>e.launcherFolders),g=s.o(e=>e.setLauncherFolders),_=s.o(e=>e.createLauncherFolder),v=s.o(e=>e.updateLauncherFolder),y=s.o(e=>e.deleteLauncherFolder),b=s.o(e=>e.removeAppFromFolder),[x,S]=(0,d.useState)(null),[C,w]=(0,d.useState)(``),T=(0,d.useRef)(!1);(0,d.useEffect)(()=>{m&&(T.current||(T.current=!0,u.n.getState().reset(m)))},[m]),(0,d.useEffect)(()=>{if(!m)return;let e=u.n.getState();if(e.getSnapshot(m)===null)e.takeSnapshot(m,h);else{let t=e.getSnapshot(m);if(t){let n=JSON.stringify(h)!==JSON.stringify(t);e.setIsDirty(m,n)}}},[m,h]);let O=(0,d.useCallback)(()=>{m&&u.n.getState().takeSnapshot(m,h)},[m,h]),A=(0,d.useCallback)(()=>{if(!m)return;let e=u.n.getState().getSnapshot(m);e&&g(e)},[m,g]);c.i({isDirtyGetter:(0,d.useCallback)(()=>{if(!m)return!1;let e=u.n.getState().getSnapshot(m);return JSON.stringify(h)!==JSON.stringify(e??[])},[m,h]),windowId:t?.id,onDiscard:A,onSave:O});let j=(0,d.useCallback)(()=>{let e=_({name:o(`newFolder`),fcIcon:`VscFolder`,order:h.length});S(e.id),w(e.name)},[_,h.length,o]);(0,d.useEffect)(()=>{n?.({createFolder:j,save:O,discard:A})},[j,O,A,n]);let M=(0,d.useCallback)(e=>{let t=h.find(t=>t.id===e);t&&(S(t.id),w(t.name))},[h]),N=(0,d.useCallback)(e=>{C.trim()&&v(e,{name:C.trim()}),S(null)},[C,v]),P=a.i(),F=h.filter(e=>e.isPredefined),I=h.filter(e=>!e.isPredefined),L=I.length>0?I[0].id:null;return(0,f.jsx)(e.t,{className:E.container,"data-windowid":t?.id,"data-menuedit-container":!0,children:(0,f.jsxs)(e.t,{className:E.content,children:[F.length>0&&(0,f.jsxs)(e.t,{mb:`md`,children:[(0,f.jsx)(a.o,{size:`xs`,c:`dimmed`,mb:8,children:o(`predefinedFolders`)}),(0,f.jsx)(e.t,{className:E.folderList,children:F.map(e=>(0,f.jsx)(D,{folder:e,isEditing:!1,editingName:``,onEdit:()=>{},onRemoveApp:b,onRename:()=>{},onSetEditingName:()=>{}},e.id))})]}),P&&I.length>0&&(0,f.jsxs)(e.t,{mb:`md`,children:[(0,f.jsx)(a.o,{size:`xs`,c:`dimmed`,mb:8,children:o(`customFolders`)}),(0,f.jsx)(e.t,{className:E.folderList,children:I.map(e=>(0,f.jsx)(D,{folder:e,isEditing:x===e.id,editingName:C,onEdit:M,onDelete:y,onRename:N,onSetEditingName:w,onRemoveApp:b},e.id))})]}),(0,f.jsxs)(i.t,{justify:`space-between`,mb:`md`,children:[(0,f.jsx)(k,{customFolderId:L}),(0,f.jsx)(a.o,{size:`xs`,c:`dimmed`,mt:`md`,children:o(`instructions`)}),P&&(0,f.jsx)(r.t,{variant:`light`,onClick:j,"aria-label":o(`addFolder`),children:(0,f.jsx)(l.t,{name:`VscAdd`,size:16})})]})]})})},M=e=>{let t=s.o(e=>e.addAppToFolder),n=s.o(e=>e.removeAppFromFolder);return(0,f.jsxs)(v,{onDrop:(0,d.useCallback)((e,r)=>{if(e.type===`app`){if(r.type===`available-apps`){e.sourceType===`launcher-folder`&&n(e.id,e.sourceId);return}r.type===`launcher-folder`&&(e.sourceId!==r.id&&e.sourceType===`launcher-folder`&&n(e.id,e.sourceId),t(e.id,r.id))}},[t,n]),children:[(0,f.jsx)(j,{...e}),(0,f.jsx)(w,{})]})};Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return M}});
@@ -0,0 +1 @@
1
+ const e=require(`./MenuEditMenuBar-DptlwVPQ.cjs`);exports.MenuEditMenuBar=e.t;
@@ -0,0 +1 @@
1
+ require(`./Box-zW6Twge8.cjs`);const e=require(`./AppMenuBar-B9U0n1Vv.cjs`),t=require(`./menuEditStore-CTeM_dns.cjs`),n=require(`./useMenuBarUtils-nJIPJGIQ.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`),a=require(`react-i18next`);var o=e=>{let{windowId:i,contentData:o,onExit:s}=e,{t:c}=(0,a.useTranslation)(`menuedit`),{t:l}=(0,a.useTranslation)(`common`),u=t.t(i),d=o?.createFolder,f=o?.save,p=o?.discard;return(0,r.useMemo)(()=>n.t([{type:`menu`,label:l(`menu.file`),items:[{type:`item`,label:c(`newFolder`),icon:`FcPlus`,onClick:()=>d?.()},{type:`divider`},{type:`item`,label:l(`actions.save`),icon:`FcInspection`,onClick:()=>f?.(),disabled:!u},{type:`item`,label:l(`actions.discard`),icon:`FcCancel`,onClick:()=>p?.(),disabled:!u},{type:`divider`},{type:`item`,label:l(`actions.exit`),icon:`FcLeft`,onClick:s}]}],u),[c,l,u,d,f,p,s])},s=(0,r.memo)(({windowId:t,contentData:n,onExit:r})=>(0,i.jsx)(e.t,{elements:o({windowId:t,contentData:n,onExit:r})}));s.displayName=`MenuEditMenuBar`,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
@@ -0,0 +1,60 @@
1
+ import { t as e } from "./rolldown-runtime-CAFD8bLK.js";
2
+ import { t } from "./AppMenuBar-CnIEVjr8.js";
3
+ import { t as n } from "./menuEditStore-Cj1zAwxQ.js";
4
+ import { t as r } from "./useMenuBarUtils-nmu9yehT.js";
5
+ import { memo as i, useMemo as a } from "react";
6
+ import { jsx as o } from "react/jsx-runtime";
7
+ import { useTranslation as s } from "react-i18next";
8
+ //#region src/components/Apps/MenuEditApp/useMenuEditMenuBar.ts
9
+ var c = (e) => {
10
+ let { windowId: t, contentData: i, onExit: o } = e, { t: c } = s("menuedit"), { t: l } = s("common"), u = n(t), d = i?.createFolder, f = i?.save, p = i?.discard;
11
+ return a(() => r([{
12
+ type: "menu",
13
+ label: l("menu.file"),
14
+ items: [
15
+ {
16
+ type: "item",
17
+ label: c("newFolder"),
18
+ icon: "FcPlus",
19
+ onClick: () => d?.()
20
+ },
21
+ { type: "divider" },
22
+ {
23
+ type: "item",
24
+ label: l("actions.save"),
25
+ icon: "FcInspection",
26
+ onClick: () => f?.(),
27
+ disabled: !u
28
+ },
29
+ {
30
+ type: "item",
31
+ label: l("actions.discard"),
32
+ icon: "FcCancel",
33
+ onClick: () => p?.(),
34
+ disabled: !u
35
+ },
36
+ { type: "divider" },
37
+ {
38
+ type: "item",
39
+ label: l("actions.exit"),
40
+ icon: "FcLeft",
41
+ onClick: o
42
+ }
43
+ ]
44
+ }], u), [
45
+ c,
46
+ l,
47
+ u,
48
+ d,
49
+ f,
50
+ p,
51
+ o
52
+ ]);
53
+ }, l = /* @__PURE__ */ e({ MenuEditMenuBar: () => u }), u = i(({ windowId: e, contentData: n, onExit: r }) => /* @__PURE__ */ o(t, { elements: c({
54
+ windowId: e,
55
+ contentData: n,
56
+ onExit: r
57
+ }) }));
58
+ u.displayName = "MenuEditMenuBar";
59
+ //#endregion
60
+ export { l as n, u as t };
@@ -0,0 +1 @@
1
+ const e=require(`./Box-zW6Twge8.cjs`),t=require(`./desktopStore-CZoA9VHO.cjs`),n=require(`./useCloseInterceptor-yntBEzNc.cjs`),r=require(`./VscIcon-CcMdrFoJ.cjs`),i=require(`./FilePickerApp-DjmuSFqa.cjs`),a=require(`./notesStore-BCEl1D_v.cjs`);let o=require(`react`),s=require(`react/jsx-runtime`),c=require(`zustand`),l=require(`zustand/middleware`),u=require(`react-i18next`),d=require(`@tiptap/react`),f=require(`@tiptap/starter-kit`);f=e.B(f);let p=require(`@tiptap/markdown`),m=require(`@tiptap/core`);var h=(0,c.create)()((0,l.persist)((e,t)=>({snapshots:{},setSnapshot:(t,n)=>e(e=>({snapshots:{...e.snapshots,[t]:n}})),getSnapshot:e=>{let{snapshots:n}=t();return n[e]??null},clearSnapshot:t=>e(e=>{let n={...e.snapshots};return delete n[t],{snapshots:n}})}),{name:`fde-desktop:appTempMemory`,storage:(0,l.createJSONStorage)(()=>localStorage)})),g={container:`_container_3xue5_1`,toolbar:`_toolbar_3xue5_11`,toolbarBtn:`_toolbarBtn_3xue5_22`,active:`_active_3xue5_57`,separator:`_separator_3xue5_63`,editorContent:`_editorContent_3xue5_71`},_=[...t.b],v=m.Extension.create({name:`clearMarksOnEnter`,addKeyboardShortcuts(){return{Enter:({editor:e})=>{let{state:t,dispatch:n}=e.view,{selection:r,schema:i}=t,{$from:a,empty:o}=r;return!o||a.parent.type!==i.nodes.paragraph?!1:(n(t.tr.split(a.pos).setStoredMarks([])),!0)}}}}),y=`Desktop/NotesAppWelcome.md`,b=({window:e,notifyReady:c})=>{let{t:l}=(0,u.useTranslation)(`notes`),m=e,b=m?.id,x=b?`notesApp-${b}`:`notesApp`,S=m?.contentData,[C,w]=(0,o.useState)(S?.initialName??l(`untitled`)),[T,E]=(0,o.useState)(!1),D=(0,o.useRef)(`save`),[O,k]=(0,o.useState)(S?.fileId??null),A=(0,o.useRef)(S?.initialContent??``),[j,M]=(0,o.useState)(!1),N=a.n(e=>e.states[b??``]?.contentLoaded??!1),P=a.n(e=>e.setContentLoaded);(0,o.useEffect)(()=>{b&&a.n.getState().reset(b)},[b]),(0,o.useEffect)(()=>{b&&a.n.getState().setIsDirty(b,j)},[b,j]);let F=t.o(e=>e.createFile),I=t.o(e=>e.updateFile),L=t.o(e=>e.fsNodes),R=(0,d.useEditor)({extensions:[f.default,p.Markdown,v],content:S?.initialContent??``,contentType:`markdown`,shouldRerenderOnTransaction:!1,onCreate:()=>{let e=R?.getMarkdown()??``;A.current=e,x&&h.getState().setSnapshot(x,e)},onUpdate:()=>{let e=R?.getMarkdown()??``,t=e!==(A.current??``);M(t),!t&&x&&h.getState().setSnapshot(x,e)}});(0,o.useEffect)(()=>{if(!O||!R||N)return;let e=L.find(e=>e.id===O);if(!e||e.type!==`file`)return;let t=e;t.content&&t.content!==(A.current??``)&&(A.current=t.content,x&&h.getState().setSnapshot(x,t.content),R.commands.setContent(t.content,{emitUpdate:!1,contentType:`markdown`}),P(b,!0))},[O,R,x,L,N,b,P]),(0,o.useEffect)(()=>{if(!R||!b||N)return;let e=!1,n=new AbortController;return(async()=>{try{if(S?.initialContent){e||(R.commands.setContent(S.initialContent,{emitUpdate:!1,contentType:`markdown`}),P(b,!0));return}if(S?.url){let r=await t.a(S.url,n.signal);!e&&r&&(R.commands.setContent(r,{emitUpdate:!1,contentType:`markdown`}),P(b,!0));return}if(S?.fileId)return;let r=await fetch(`/${y}`,{signal:n.signal});if(!e&&r.ok){let e=await r.text();R.commands.setContent(e,{emitUpdate:!1,contentType:`markdown`}),P(b,!0)}}catch(t){!e&&t instanceof Error&&t.name!==`AbortError`&&console.warn(`Failed to load content:`,t)}})(),()=>{e=!0,n.abort()}},[R,S,b,N,P]);let z=(0,o.useCallback)(()=>R?R.getMarkdown():``,[R]),B=(0,o.useCallback)(()=>{R?.commands.setContent(``,{emitUpdate:!1,contentType:`markdown`}),k(null),w(`untitled.md`),A.current=``,M(!1),b&&P(b,!0)},[R,b,P]),V=(0,o.useCallback)(()=>{R&&(O?(I(O,z()),A.current=z(),M(!1)):(D.current=`save`,E(!0)))},[R,z,I,O]),H=(0,o.useCallback)(()=>{R&&(D.current=`saveAs`,E(!0))},[R]),U=(0,o.useCallback)(async({parentId:e,name:t})=>{if(!R)return;let n=z();if(D.current===`saveAs`||!O){let r=await F(t,n,e);k(r.id),w(r.name)}else await I(O,n);A.current=n,M(!1),E(!1)},[R,z,F,I,O]),[W,G]=(0,o.useState)(!1),K=(0,o.useCallback)(e=>{k(e.id),w(e.name),A.current=e.content??``,M(!1),G(!1);let n=e.url;n?t.a(n).then(e=>{e&&(R?.commands.setContent(e,{emitUpdate:!1,contentType:`markdown`}),b&&P(b,!0))}):e.content&&(R?.commands.setContent(e.content,{emitUpdate:!1,contentType:`markdown`}),b&&P(b,!0))},[R,b,P]),q=(0,o.useCallback)(()=>G(!0),[]);(0,o.useEffect)(()=>{let e={new:B,save:V,saveAs:H};c?.({...m?.contentData??{},actions:e,setPickerOpen:q,isDirty:j})},[B,V,H,m,c,q,j]),n.i({isDirtyGetter:(0,o.useCallback)(()=>(R?.getMarkdown()??``)!==(A.current??``),[R]),windowId:b,onDiscard:()=>{if(!R)return;let e=A.current??``;R.commands.setContent(e,{emitUpdate:!1,contentType:`markdown`}),M(!1)},onSave:V});let J=(0,d.useEditorState)({editor:R,selector:e=>({canUndo:e.editor?.can().undo()??!1,canRedo:e.editor?.can().redo()??!1,isBold:e.editor?.isActive(`bold`)??!1,isItalic:e.editor?.isActive(`italic`)??!1,isStrike:e.editor?.isActive(`strike`)??!1,isCode:e.editor?.isActive(`code`)??!1,isH1:e.editor?.isActive(`heading`,{level:1})??!1,isH2:e.editor?.isActive(`heading`,{level:2})??!1,isBulletList:e.editor?.isActive(`bulletList`)??!1,isOrderedList:e.editor?.isActive(`orderedList`)??!1,isBlockquote:e.editor?.isActive(`blockquote`)??!1,isCodeBlock:e.editor?.isActive(`codeBlock`)??!1})});return(0,s.jsxs)(`div`,{className:g.container,"data-windowid":m?.id,children:[(0,s.jsxs)(`div`,{className:g.toolbar,role:`toolbar`,"aria-label":l(`toolbar.formatting`),children:[(0,s.jsx)(`button`,{className:`${g.toolbarBtn} ${J?.isBold?g.active:``}`,onClick:()=>R?.chain().focus().toggleBold().run(),disabled:!R?.can().chain().focus().toggleBold().run(),title:l(`toolbar.bold`),"aria-label":l(`toolbar.bold`),children:(0,s.jsx)(r.t,{name:`VscBold`})}),(0,s.jsx)(`button`,{className:`${g.toolbarBtn} ${J?.isItalic?g.active:``}`,onClick:()=>R?.chain().focus().toggleItalic().run(),disabled:!R?.can().chain().focus().toggleItalic().run(),title:l(`toolbar.italic`),"aria-label":l(`toolbar.italic`),children:(0,s.jsx)(r.t,{name:`VscItalic`})}),(0,s.jsx)(`button`,{className:`${g.toolbarBtn} ${J?.isStrike?g.active:``}`,onClick:()=>R?.chain().focus().toggleStrike().run(),disabled:!R?.can().chain().focus().toggleStrike().run(),title:l(`toolbar.strikethrough`),"aria-label":l(`toolbar.strikethrough`),children:(0,s.jsx)(`s`,{children:`S`})}),(0,s.jsx)(`button`,{className:`${g.toolbarBtn} ${J?.isCode?g.active:``}`,onClick:()=>R?.chain().focus().toggleCode().run(),disabled:!R?.can().chain().focus().toggleCode().run(),title:l(`toolbar.inlineCode`),"aria-label":l(`toolbar.inlineCode`),children:(0,s.jsx)(r.t,{name:`VscCode`})}),(0,s.jsx)(`span`,{className:g.separator}),(0,s.jsx)(`button`,{className:`${g.toolbarBtn} ${J?.isH1?g.active:``}`,onClick:()=>R?.chain().focus().toggleHeading({level:1}).run(),title:l(`toolbar.heading1`),"aria-label":l(`toolbar.heading1`),children:(0,s.jsx)(`strong`,{children:`H1`})}),(0,s.jsx)(`button`,{className:`${g.toolbarBtn} ${J?.isH2?g.active:``}`,onClick:()=>R?.chain().focus().toggleHeading({level:2}).run(),title:l(`toolbar.heading2`),"aria-label":l(`toolbar.heading2`),children:(0,s.jsx)(`strong`,{children:`H2`})}),(0,s.jsx)(`span`,{className:g.separator}),(0,s.jsx)(`button`,{className:`${g.toolbarBtn} ${J?.isBulletList?g.active:``}`,onClick:()=>R?.chain().focus().toggleBulletList().run(),title:l(`toolbar.bulletList`),"aria-label":l(`toolbar.bulletList`),children:(0,s.jsx)(r.t,{name:`VscListUnordered`})}),(0,s.jsx)(`button`,{className:`${g.toolbarBtn} ${J?.isOrderedList?g.active:``}`,onClick:()=>R?.chain().focus().toggleOrderedList().run(),title:l(`toolbar.orderedList`),"aria-label":l(`toolbar.orderedList`),children:(0,s.jsx)(r.t,{name:`VscListOrdered`})}),(0,s.jsx)(`span`,{className:g.separator}),(0,s.jsx)(`button`,{className:`${g.toolbarBtn} ${J?.isBlockquote?g.active:``}`,onClick:()=>R?.chain().focus().toggleBlockquote().run(),title:l(`toolbar.blockquote`),"aria-label":l(`toolbar.blockquote`),children:(0,s.jsx)(r.t,{name:`VscQuote`})}),(0,s.jsx)(`button`,{className:`${g.toolbarBtn} ${J?.isCodeBlock?g.active:``}`,onClick:()=>R?.chain().focus().toggleCodeBlock().run(),title:l(`toolbar.codeBlock`),"aria-label":l(`toolbar.codeBlock`),children:(0,s.jsx)(r.t,{name:`VscTerminal`})}),(0,s.jsx)(`button`,{className:g.toolbarBtn,onClick:()=>R?.chain().focus().setHorizontalRule().run(),title:l(`toolbar.horizontalRule`),"aria-label":l(`toolbar.horizontalRule`),children:(0,s.jsx)(r.t,{name:`VscHorizontalRule`})}),(0,s.jsx)(`span`,{className:g.separator}),(0,s.jsx)(`button`,{className:g.toolbarBtn,onClick:()=>R?.chain().focus().undo().run(),disabled:!J?.canUndo,title:l(`common:actions.undo`),"aria-label":l(`common:actions.undo`),children:(0,s.jsx)(r.t,{name:`VscDiscard`})}),(0,s.jsx)(`button`,{className:g.toolbarBtn,onClick:()=>R?.chain().focus().redo().run(),disabled:!J?.canRedo,title:l(`common:actions.redo`),"aria-label":l(`common:actions.redo`),children:(0,s.jsx)(r.t,{name:`VscRedo`})})]}),(0,s.jsx)(d.EditorContent,{editor:R,className:g.editorContent}),(0,s.jsx)(i.n,{opened:W,acceptedMimeTypes:_,onConfirm:K,onCancel:()=>G(!1)}),(0,s.jsx)(i.r,{opened:T,initialName:C,onConfirm:U,onCancel:()=>E(!1)})]})};Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return b}});