@fde-desktop/fde-core 0.4.9 → 0.4.11

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 (186) hide show
  1. package/dist/{AppEmptyState-Bxpit0JV.js → AppEmptyState-Boej96TB.js} +1 -1
  2. package/dist/AppEmptyState-CLc00OOG.cjs +1 -0
  3. package/dist/AppIcon-C8vHUVcb.cjs +1 -0
  4. package/dist/AppIcon-mtEoyzOb.js +22 -0
  5. package/dist/AppMenuBar-CAlkNHjj.cjs +1 -0
  6. package/dist/AppMenuBar-DmSfQRXU.js +197 -0
  7. package/dist/CalendarApp-DOmjWbpl.js +10 -0
  8. package/dist/CalendarApp-Z0bCCYsK.cjs +1 -0
  9. package/dist/ColorPicker-CQRRwY-y.cjs +1 -0
  10. package/dist/ColorPicker-WCeD3Wjf.js +35 -0
  11. package/dist/CreateItemApp-BkFFFdX1.cjs +1 -0
  12. package/dist/CreateItemApp-DR8Y4bwo.js +202 -0
  13. package/dist/DeviceInfoApp-BXQ9uOwF.cjs +1 -0
  14. package/dist/DeviceInfoApp-I63mJRWy.js +195 -0
  15. package/dist/DownloadProgress-CkTGTf0z.cjs +1 -0
  16. package/dist/DownloadProgress-DnVASsv5.js +39 -0
  17. package/dist/FilePickerApp-By6-vbag.cjs +1 -0
  18. package/dist/FilePickerApp-ClHuhm6Z.js +390 -0
  19. package/dist/FilesApp-BC4UPNuw.cjs +1 -0
  20. package/dist/FilesApp-D8MqvC5X.js +210 -0
  21. package/dist/ImageViewerApp-B1niWF75.cjs +1 -0
  22. package/dist/{ImageViewerApp-BaLP3gkO.js → ImageViewerApp-iojtyFEf.js} +5 -5
  23. package/dist/{ImageViewerMenuBar-CabGSi9r.js → ImageViewerMenuBar-BIsUokxV.js} +2 -2
  24. package/dist/ImageViewerMenuBar-BgzgSF3v.cjs +1 -0
  25. package/dist/MenuEditApp-BHptoJbz.cjs +1 -0
  26. package/dist/{MenuEditApp-BTRppYnD.js → MenuEditApp-CJUbJaqh.js} +138 -143
  27. package/dist/MenuEditMenuBar-CCOSPAUe.cjs +1 -0
  28. package/dist/{MenuEditMenuBar-x1IQrHP2.js → MenuEditMenuBar-DnCL-kaZ.js} +3 -3
  29. package/dist/NotesApp-BmQIBtJ2.cjs +1 -0
  30. package/dist/{NotesApp-CQe7UfBC.js → NotesApp-DJ2dGt4-.js} +5 -5
  31. package/dist/NotesMenuBar-BzojwMtH.cjs +1 -0
  32. package/dist/{NotesMenuBar-VhpIe68v.js → NotesMenuBar-DILZTjnT.js} +3 -3
  33. package/dist/{PdfApp-DL_R9-Nc.js → PdfApp-IjY_GtnW.js} +3 -3
  34. package/dist/PdfApp-krW8UI97.cjs +1 -0
  35. package/dist/{PdfMenuBar-DZCLSOpR.js → PdfMenuBar-Bd5MTZcZ.js} +1 -1
  36. package/dist/PdfMenuBar-DWD0Qa3F.cjs +1 -0
  37. package/dist/SettingsApp-BE22l5UP.cjs +1 -0
  38. package/dist/SettingsApp-BTFtTFY_.js +1228 -0
  39. package/dist/SettingsMenuBar-CZE2evG2.cjs +1 -0
  40. package/dist/{SettingsMenuBar-YWiJHaxq.js → SettingsMenuBar-ktC0viTd.js} +3 -3
  41. package/dist/UploaderApp-CbypD538.js +263 -0
  42. package/dist/UploaderApp-D_qD3O70.cjs +1 -0
  43. package/dist/{VscIcon-DBfVnArE.js → VscIcon-AEENjKOE.js} +1 -1
  44. package/dist/VscIcon-BYb_Soyy.cjs +1 -0
  45. package/dist/buildBreadcrumbs-Ccd8i11b.cjs +1 -0
  46. package/dist/buildBreadcrumbs-noWhu8os.js +45 -0
  47. package/dist/{desktopStore-F8bgLqFl.js → desktopStore-8cSZlj7s.js} +407 -477
  48. package/dist/desktopStore-C1jR6Fdb.cjs +1 -0
  49. package/dist/imageViewerStore-Dfylg59V.cjs +1 -0
  50. package/dist/index.cjs +1 -1
  51. package/dist/index.css +1 -1
  52. package/dist/index.d.ts +16 -6
  53. package/dist/index.js +1646 -1960
  54. package/dist/menuEditStore-CYwtfD6H.cjs +1 -0
  55. package/dist/notesStore-CrWTO6oB.cjs +1 -0
  56. package/dist/settingsAppStore-DuYZNeFf.cjs +1 -0
  57. package/dist/useAdaptiveDimensions-3Lz4X0Tc.cjs +1 -0
  58. package/dist/{useAdaptiveDimensions-AVDc_qPa.js → useAdaptiveDimensions-DxNLJ7R5.js} +1 -1
  59. package/dist/{useCloseInterceptor-BZd3VILp.js → useCloseInterceptor-CIxhOZx1.js} +1 -1
  60. package/dist/useCloseInterceptor-CdX-09Ib.cjs +1 -0
  61. package/dist/useDynamicIcon-CK6SjEv5.cjs +1 -0
  62. package/dist/useOpenApp-D-FOY88T.cjs +1 -0
  63. package/dist/{useOpenApp-CBIm7Gzl.js → useOpenApp-DkZLFFCH.js} +51 -67
  64. package/dist/{useResolvedUrl-DQpLqOoL.js → useResolvedUrl-B6x4xy0x.js} +1 -2
  65. package/dist/useResolvedUrl-Bb39DpVy.cjs +1 -0
  66. package/package.json +2 -1
  67. package/dist/AccordionChevron-DxpOyInK.js +0 -26
  68. package/dist/AccordionChevron-kn5kSrEc.cjs +0 -1
  69. package/dist/ActionIcon-Drh4p6Fv.js +0 -145
  70. package/dist/ActionIcon-alk2zZD6.cjs +0 -1
  71. package/dist/AppEmptyState-BWCUbf-B.cjs +0 -1
  72. package/dist/AppIcon-BU7a3ZNH.cjs +0 -1
  73. package/dist/AppIcon-XumS3bIG.js +0 -80
  74. package/dist/AppMenuBar-B9U0n1Vv.cjs +0 -1
  75. package/dist/AppMenuBar-CnIEVjr8.js +0 -2049
  76. package/dist/Box-DSKR_qaa.js +0 -1579
  77. package/dist/Box-zW6Twge8.cjs +0 -1
  78. package/dist/Button-DMlnrqyx.cjs +0 -1
  79. package/dist/Button-wTOTQKxF.js +0 -178
  80. package/dist/CalendarApp-B_e1B1Yn.cjs +0 -1
  81. package/dist/CalendarApp-C-l9D6nd.cjs +0 -1
  82. package/dist/CalendarApp-D0ftTCTG.js +0 -1399
  83. package/dist/Center-CmxXB9ql.js +0 -25
  84. package/dist/Center-DKUE2pER.cjs +0 -1
  85. package/dist/CheckIcon-CZhtJD1O.cjs +0 -1
  86. package/dist/CheckIcon-N5qBqXQJ.js +0 -25
  87. package/dist/CodeServerApp-BOoGwZ7r.cjs +0 -1
  88. package/dist/CodeServerApp-Be3I5EGg.cjs +0 -1
  89. package/dist/CodeServerApp-DW18EZxa.js +0 -150
  90. package/dist/ColorPicker-BCNqi02x.js +0 -997
  91. package/dist/ColorPicker-BrDE7tMO.cjs +0 -1
  92. package/dist/CreateItemApp-B12M1E_1.cjs +0 -1
  93. package/dist/CreateItemApp-TAAprby3.js +0 -400
  94. package/dist/CreateItemApp-ePB6ujNl.cjs +0 -1
  95. package/dist/DeviceInfoApp-BMF18BGo.cjs +0 -1
  96. package/dist/DeviceInfoApp-DRy0H3aT.cjs +0 -1
  97. package/dist/DeviceInfoApp-lgpwkeRR.js +0 -223
  98. package/dist/DownloadProgress-EoyCaD5O.js +0 -174
  99. package/dist/DownloadProgress-VNdj22U8.cjs +0 -1
  100. package/dist/FileIcon-7JaSR3Gn.js +0 -89
  101. package/dist/FileIcon-CIXopWLv.cjs +0 -1
  102. package/dist/FilePickerApp-DaMgEqKh.js +0 -409
  103. package/dist/FilePickerApp-DjmuSFqa.cjs +0 -1
  104. package/dist/FilesApp-Bp7wfrBZ.cjs +0 -1
  105. package/dist/FilesApp-BpJJRKhi.cjs +0 -1
  106. package/dist/FilesApp-Cj94QG5o.js +0 -225
  107. package/dist/Group-CtBJSfCo.js +0 -48
  108. package/dist/Group-Dsrf6lEK.cjs +0 -1
  109. package/dist/ImageViewerApp-DlHGeB3S.cjs +0 -1
  110. package/dist/ImageViewerApp-DoXd_Swu.cjs +0 -1
  111. package/dist/ImageViewerMenuBar-SAI7UNz7.cjs +0 -1
  112. package/dist/ImageViewerMenuBar-_Jr29gii.cjs +0 -1
  113. package/dist/MenuEditApp-BJjlPTOa.cjs +0 -1
  114. package/dist/MenuEditApp-JPsGT-S3.cjs +0 -1
  115. package/dist/MenuEditMenuBar-BydGkqMw.cjs +0 -1
  116. package/dist/MenuEditMenuBar-DptlwVPQ.cjs +0 -1
  117. package/dist/NotesApp-BOcRGO7w.cjs +0 -1
  118. package/dist/NotesApp-OL07JXRE.cjs +0 -1
  119. package/dist/NotesMenuBar-BSI_2Y7p.cjs +0 -1
  120. package/dist/NotesMenuBar-Df6aW85J.cjs +0 -1
  121. package/dist/Paper-BX_9odR6.js +0 -30
  122. package/dist/Paper-D8-BaBx2.cjs +0 -1
  123. package/dist/PdfApp-CNEbty5v.cjs +0 -1
  124. package/dist/PdfApp-CVv3ZCaM.cjs +0 -1
  125. package/dist/PdfMenuBar--E6kDyrT.cjs +0 -1
  126. package/dist/PdfMenuBar-Dj5cJUkg.cjs +0 -1
  127. package/dist/SettingsApp-BlmHuAjT.js +0 -1831
  128. package/dist/SettingsApp-CNvIgf5B.cjs +0 -1
  129. package/dist/SettingsApp-DWxanNE4.cjs +0 -1
  130. package/dist/SettingsMenuBar-CBoOBCfx.cjs +0 -1
  131. package/dist/SettingsMenuBar-DQooFkZN.cjs +0 -1
  132. package/dist/Slider-BUiHxjKO.cjs +0 -1
  133. package/dist/Slider-t-NcD60t.js +0 -1176
  134. package/dist/Stack-Bp1Ek2Gp.js +0 -34
  135. package/dist/Stack-D4jAiRfc.cjs +0 -1
  136. package/dist/StorybookApp-CDLV_kja.cjs +0 -1
  137. package/dist/StorybookApp-DKwlPCmo.js +0 -10
  138. package/dist/TerminalApp-BCB7i1lR.cjs +0 -1
  139. package/dist/TerminalApp-BYc_gHLe.js +0 -326
  140. package/dist/TerminalApp-Dviz6aP2.cjs +0 -1
  141. package/dist/TerminalMenuBar-D5tPmgR_.js +0 -113
  142. package/dist/TerminalMenuBar-DNshPmCa.cjs +0 -1
  143. package/dist/TerminalMenuBar-HzMSR7XP.cjs +0 -1
  144. package/dist/TextInput-C-JtGWn1.js +0 -981
  145. package/dist/TextInput-CrsmcOip.cjs +0 -1
  146. package/dist/Tooltip-D5Cd9wtz.cjs +0 -1
  147. package/dist/Tooltip-DOeIvhrO.js +0 -1142
  148. package/dist/UnstyledButton-DGaG-e_G.js +0 -25
  149. package/dist/UnstyledButton-DX2pTahr.cjs +0 -1
  150. package/dist/UploaderApp-C6xA5Rrf2.cjs +0 -1
  151. package/dist/UploaderApp-DnHIRxB_.cjs +0 -1
  152. package/dist/UploaderApp-qBfpukR_.js +0 -488
  153. package/dist/VscIcon-CcMdrFoJ.cjs +0 -1
  154. package/dist/create-safe-context-Bboj0GWC.cjs +0 -1
  155. package/dist/create-safe-context-XT2cxc14.js +0 -12
  156. package/dist/desktopStore-CZoA9VHO.cjs +0 -1
  157. package/dist/getRuntime-BFK0-8R1.cjs +0 -1
  158. package/dist/getRuntime-DAPqFH2W.js +0 -63
  159. package/dist/imageViewerStore-BB_tssZR.cjs +0 -1
  160. package/dist/is-element-Bu_JY8Qy.js +0 -7
  161. package/dist/is-element-CdV0xajp.cjs +0 -1
  162. package/dist/menuEditStore-CTeM_dns.cjs +0 -1
  163. package/dist/notesStore-BCEl1D_v.cjs +0 -1
  164. package/dist/settingsAppStore-CMBc13VU.cjs +0 -1
  165. package/dist/terminalStore-IWdf4Mm6.js +0 -30
  166. package/dist/terminalStore-iIuyodfK.cjs +0 -1
  167. package/dist/use-merged-ref-BT8_u6vW.js +0 -25
  168. package/dist/use-merged-ref-n9Gw9LNn.cjs +0 -1
  169. package/dist/use-resolved-styles-api-8OXE2oRq.cjs +0 -1
  170. package/dist/use-resolved-styles-api-DNUlJJZf.js +0 -21
  171. package/dist/use-uncontrolled-A4hm9ATM.js +0 -23
  172. package/dist/use-uncontrolled-DDJVQiM_.cjs +0 -1
  173. package/dist/useAdaptiveDimensions-CfITBJ_m.cjs +0 -1
  174. package/dist/useCloseInterceptor-yntBEzNc.cjs +0 -1
  175. package/dist/useDynamicIcon-DJ_il30E.cjs +0 -1
  176. package/dist/useOpenApp-DW4x79Zg.cjs +0 -1
  177. package/dist/useResolvedUrl-BkMPM1fM.cjs +0 -1
  178. /package/dist/{Colors-zP2AFgU3.cjs → Colors-CNJbU7oq.cjs} +0 -0
  179. /package/dist/{Colors-ClnDxnyA.js → Colors-CuABn2W4.js} +0 -0
  180. /package/dist/{imageViewerStore-C5kWz0o7.js → imageViewerStore-COrD02Zu.js} +0 -0
  181. /package/dist/{menuEditStore-Cj1zAwxQ.js → menuEditStore-CxsgLiQu.js} +0 -0
  182. /package/dist/{notesStore-BPyRTHEc.js → notesStore-Dgah46U5.js} +0 -0
  183. /package/dist/{settingsAppStore-BDQ3ts1y.js → settingsAppStore-DHZhi6Rl.js} +0 -0
  184. /package/dist/{useDynamicIcon-Bf0t2foA.js → useDynamicIcon-_wGeWu-b.js} +0 -0
  185. /package/dist/{useMenuBarUtils-nmu9yehT.js → useMenuBarUtils-ChAfI7OA.js} +0 -0
  186. /package/dist/{useMenuBarUtils-nJIPJGIQ.cjs → useMenuBarUtils-DAap0ukp.cjs} +0 -0
@@ -0,0 +1 @@
1
+ const e=require(`./NotesApp-BmQIBtJ2.cjs`),t=require(`./AppMenuBar-CAlkNHjj.cjs`),n=require(`./settingsAppStore-DuYZNeFf.cjs`),r=require(`./useMenuBarUtils-DAap0ukp.cjs`);let i=require(`react`),a=require(`react/jsx-runtime`),o=require(`react-i18next`);var s=e=>{let{windowId:t,contentData:a,onExit:s}=e,{t:c}=(0,o.useTranslation)(`common`),l=n.t(t),u=a?.discard;return(0,i.useMemo)(()=>r.t([{type:`menu`,label:c(`menu.file`),items:[{type:`item`,label:c(`actions.discard`),icon:`FcCancel`,onClick:()=>u?.(),disabled:!l},{type:`divider`},{type:`item`,label:c(`actions.exit`),icon:`FcLeft`,onClick:s}]}],l),[c,l,u,s])},c=e.i({SettingsMenuBar:()=>l}),l=({windowId:e,contentData:n,onExit:r})=>(0,a.jsx)(t.t,{elements:s({windowId:e,contentData:n,onExit:r})});Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return l}});
@@ -1,7 +1,7 @@
1
1
  import { t as e } from "./rolldown-runtime-CAFD8bLK.js";
2
- import { t } from "./AppMenuBar-CnIEVjr8.js";
3
- import { t as n } from "./settingsAppStore-BDQ3ts1y.js";
4
- import { t as r } from "./useMenuBarUtils-nmu9yehT.js";
2
+ import { t } from "./AppMenuBar-DmSfQRXU.js";
3
+ import { t as n } from "./settingsAppStore-DHZhi6Rl.js";
4
+ import { t as r } from "./useMenuBarUtils-ChAfI7OA.js";
5
5
  import { useMemo as i } from "react";
6
6
  import { jsx as a } from "react/jsx-runtime";
7
7
  import { useTranslation as o } from "react-i18next";
@@ -0,0 +1,263 @@
1
+ import { t as e } from "./rolldown-runtime-CAFD8bLK.js";
2
+ import { t } from "./useOpenApp-DkZLFFCH.js";
3
+ import { n, o as r, x as i } from "./desktopStore-8cSZlj7s.js";
4
+ import { i as a } from "./useDynamicIcon-_wGeWu-b.js";
5
+ import { i as o } from "./FilePickerApp-ClHuhm6Z.js";
6
+ import { t as s } from "./DownloadProgress-DnVASsv5.js";
7
+ import { useCallback as c, useState as l } from "react";
8
+ import { jsx as u, jsxs as d } from "react/jsx-runtime";
9
+ import { Box as f, Button as p, FileButton as m, Group as h, Paper as g, Stepper as _, Text as v } from "@mantine/core";
10
+ import { useTranslation as y } from "react-i18next";
11
+ //#region src/utils/formatBytes.ts
12
+ function b(e) {
13
+ if (e === 0) return "0 B";
14
+ let t = 1024, n = [
15
+ "B",
16
+ "KB",
17
+ "MB",
18
+ "GB",
19
+ "TB"
20
+ ], r = Math.floor(Math.log(e) / Math.log(t)), i = Math.min(r, n.length - 1);
21
+ return `${parseFloat((e / t ** +i).toFixed(1))} ${n[i]}`;
22
+ }
23
+ var x = {
24
+ container: "_container_1xc3a_1",
25
+ backgroundIcon: "_backgroundIcon_1xc3a_13",
26
+ stepper: "_stepper_1xc3a_23",
27
+ fileInfo: "_fileInfo_1xc3a_30",
28
+ resultPaper: "_resultPaper_1xc3a_37",
29
+ resultIcon: "_resultIcon_1xc3a_49",
30
+ readyContainer: "_readyContainer_1xc3a_53"
31
+ }, S = /* @__PURE__ */ e({ default: () => C }), C = ({ window: e }) => {
32
+ let { t: S } = y("apps"), C = r((e) => e.createFile), w = t(), [T, E] = l(0), [D, O] = l(null), [k, A] = l(null), [j, M] = l(!1), [N, P] = l(!1), [F, I] = l(!1), [L, R] = l({
33
+ status: "idle",
34
+ progress: {
35
+ status: "idle",
36
+ loaded: 0,
37
+ total: null,
38
+ percent: null,
39
+ error: null
40
+ }
41
+ }), [z, B] = l(null), V = a("FcUpload", { size: 120 }), H = a("FcCheckmark", { size: 64 }), U = a("FcCheckmark", { size: 14 }), W = a("FcInfo", { size: 64 }), G = c((e) => {
42
+ e && (O(e), E(1));
43
+ }, []), K = c((e) => {
44
+ A(e), M(!0), P(!1), E(2);
45
+ }, []), q = c(async () => {
46
+ if (D) {
47
+ console.log("[UploaderApp] Starting upload for file:", D.name, "size:", D.size), I(!0), R({
48
+ status: "reading",
49
+ progress: {
50
+ status: "downloading",
51
+ loaded: 0,
52
+ total: D.size,
53
+ percent: 0,
54
+ error: null
55
+ }
56
+ });
57
+ try {
58
+ R((e) => ({
59
+ ...e,
60
+ progress: {
61
+ status: "downloading",
62
+ loaded: 0,
63
+ total: D.size,
64
+ percent: 0,
65
+ error: null
66
+ }
67
+ }));
68
+ for (let e = 0; e <= 50; e += 10) await new Promise((e) => setTimeout(e, 50)), R((t) => ({
69
+ ...t,
70
+ progress: {
71
+ status: "downloading",
72
+ loaded: Math.floor(D.size * e / 100),
73
+ total: D.size,
74
+ percent: e,
75
+ error: null
76
+ }
77
+ }));
78
+ console.log("[UploaderApp] Calling saveBlob...");
79
+ let e = Date.now(), t = await n.saveBlob(D);
80
+ console.log("[UploaderApp] saveBlob completed in", Date.now() - e, "ms, url:", t), R((e) => ({
81
+ ...e,
82
+ progress: {
83
+ status: "downloading",
84
+ loaded: Math.floor(D.size * 80 / 100),
85
+ total: D.size,
86
+ percent: 80,
87
+ error: null
88
+ }
89
+ })), console.log("[UploaderApp] Calling createFile with folderId:", k);
90
+ let r = Date.now(), i = await C(D.name, "", k, t);
91
+ console.log("[UploaderApp] createFile completed in", Date.now() - r, "ms, id:", i.id), B(i.id), R({
92
+ status: "done",
93
+ progress: {
94
+ status: "done",
95
+ loaded: D.size,
96
+ total: D.size,
97
+ percent: 100,
98
+ error: null
99
+ }
100
+ }), await new Promise((e) => setTimeout(e, 1e3)), E(3);
101
+ } catch (e) {
102
+ console.error("[UploaderApp] Upload FAILED:", e), R((t) => ({
103
+ ...t,
104
+ status: "error",
105
+ error: e instanceof Error ? e.message : "Upload failed"
106
+ })), await new Promise((e) => setTimeout(e, 1e3)), E(3);
107
+ }
108
+ }
109
+ }, [
110
+ D,
111
+ k,
112
+ C
113
+ ]), J = c(() => {
114
+ k ? w("files", { contentData: { initialFolderId: k } }) : w("files");
115
+ }, [k, w]), Y = c(() => {
116
+ if (!z) return;
117
+ let e = r.getState().fsNodes.find((e) => e.id === z);
118
+ if (!e || e.type !== "file") return;
119
+ let t = i(e);
120
+ t && w(t.appId, { contentData: t.contentData });
121
+ }, [z, w]);
122
+ if (!e) return null;
123
+ let X = L.status === "done", Z = L.error;
124
+ return T === 3 ? /* @__PURE__ */ u("div", {
125
+ className: x.container,
126
+ children: /* @__PURE__ */ d(g, {
127
+ shadow: "sm",
128
+ className: x.resultPaper,
129
+ children: [
130
+ /* @__PURE__ */ u(f, {
131
+ className: x.resultIcon,
132
+ children: X ? H : W
133
+ }),
134
+ /* @__PURE__ */ u(v, {
135
+ size: "lg",
136
+ fw: 500,
137
+ ta: "center",
138
+ children: X ? S("uploader.uploadComplete") : `${S("uploader.uploadFailed")}: ${Z}`
139
+ }),
140
+ X && /* @__PURE__ */ d(h, {
141
+ mt: "md",
142
+ justify: "center",
143
+ children: [/* @__PURE__ */ u(p, {
144
+ variant: "default",
145
+ size: "sm",
146
+ onClick: J,
147
+ "data-testid": "uploader-show-file",
148
+ children: S("uploader.showFile")
149
+ }), /* @__PURE__ */ u(p, {
150
+ size: "sm",
151
+ onClick: Y,
152
+ "data-testid": "uploader-open-file",
153
+ children: S("uploader.openFile")
154
+ })]
155
+ })
156
+ ]
157
+ })
158
+ }) : /* @__PURE__ */ d("div", {
159
+ className: x.container,
160
+ children: [
161
+ V && /* @__PURE__ */ u("div", {
162
+ className: x.backgroundIcon,
163
+ children: V
164
+ }),
165
+ /* @__PURE__ */ d(_, {
166
+ active: T,
167
+ orientation: "horizontal",
168
+ size: "sm",
169
+ className: x.stepper,
170
+ children: [
171
+ /* @__PURE__ */ u(_.Step, {
172
+ label: S("uploader.stepSelect"),
173
+ description: S("uploader.clickToUpload"),
174
+ children: /* @__PURE__ */ u(m, {
175
+ accept: "*",
176
+ onChange: G,
177
+ children: (e) => /* @__PURE__ */ u(p, {
178
+ ...e,
179
+ size: "sm",
180
+ "data-testid": "uploader-select-file",
181
+ children: S("uploader.clickToUpload")
182
+ })
183
+ })
184
+ }),
185
+ /* @__PURE__ */ d(_.Step, {
186
+ label: S("uploader.stepDestination"),
187
+ description: j ? /* @__PURE__ */ d(h, {
188
+ gap: 4,
189
+ align: "center",
190
+ style: { display: "inline-flex" },
191
+ children: [U, /* @__PURE__ */ u("span", { children: S("uploader.folderSelected") })]
192
+ }) : S("uploader.selectDestination"),
193
+ children: [
194
+ D && /* @__PURE__ */ d(f, {
195
+ className: x.fileInfo,
196
+ children: [/* @__PURE__ */ u(v, {
197
+ size: "sm",
198
+ fw: 500,
199
+ children: D.name
200
+ }), /* @__PURE__ */ u(v, {
201
+ size: "xs",
202
+ c: "dimmed",
203
+ children: b(D.size)
204
+ })]
205
+ }),
206
+ /* @__PURE__ */ d(h, {
207
+ mt: "md",
208
+ children: [/* @__PURE__ */ u(p, {
209
+ variant: "default",
210
+ size: "xs",
211
+ onClick: () => P(!0),
212
+ "data-testid": "uploader-select-folder",
213
+ children: S("uploader.selectDestination")
214
+ }), /* @__PURE__ */ u(p, {
215
+ size: "xs",
216
+ onClick: () => E(2),
217
+ "data-testid": "uploader-skip-folder",
218
+ children: S("uploader.next", { defaultValue: "Next" })
219
+ })]
220
+ }),
221
+ /* @__PURE__ */ u(v, {
222
+ size: "xs",
223
+ c: "dimmed",
224
+ mt: "xs",
225
+ children: k ? `${S("uploader.uploadTo")}: ${r.getState().fsNodes.find((e) => e.id === k)?.name || ""}` : S("uploader.uploadToRoot")
226
+ })
227
+ ]
228
+ }),
229
+ /* @__PURE__ */ u(_.Step, {
230
+ label: S("uploader.stepUpload"),
231
+ description: S("uploader.uploading"),
232
+ children: F ? /* @__PURE__ */ u(s, {
233
+ state: L.progress,
234
+ ariaLabel: S("uploader.uploadProgress")
235
+ }) : /* @__PURE__ */ d(f, {
236
+ className: x.readyContainer,
237
+ children: [/* @__PURE__ */ u(v, {
238
+ size: "sm",
239
+ ta: "center",
240
+ children: S("uploader.readyToUpload")
241
+ }), /* @__PURE__ */ u(h, {
242
+ justify: "center",
243
+ children: /* @__PURE__ */ u(p, {
244
+ size: "sm",
245
+ onClick: q,
246
+ "data-testid": "uploader-upload",
247
+ children: S("uploader.upload")
248
+ })
249
+ })]
250
+ })
251
+ })
252
+ ]
253
+ }),
254
+ /* @__PURE__ */ u(o, {
255
+ opened: N,
256
+ onConfirm: K,
257
+ onCancel: () => P(!1)
258
+ })
259
+ ]
260
+ });
261
+ };
262
+ //#endregion
263
+ export { S as n, b as r, C as t };
@@ -0,0 +1 @@
1
+ const e=require(`./NotesApp-BmQIBtJ2.cjs`),t=require(`./useOpenApp-D-FOY88T.cjs`),n=require(`./desktopStore-C1jR6Fdb.cjs`),r=require(`./useDynamicIcon-CK6SjEv5.cjs`),i=require(`./FilePickerApp-By6-vbag.cjs`),a=require(`./DownloadProgress-CkTGTf0z.cjs`);let o=require(`react`),s=require(`react/jsx-runtime`),c=require(`@mantine/core`),l=require(`react-i18next`);function u(e){if(e===0)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`,`TB`],r=Math.floor(Math.log(e)/Math.log(t)),i=Math.min(r,n.length-1);return`${parseFloat((e/t**+i).toFixed(1))} ${n[i]}`}var d={container:`_container_1xc3a_1`,backgroundIcon:`_backgroundIcon_1xc3a_13`,stepper:`_stepper_1xc3a_23`,fileInfo:`_fileInfo_1xc3a_30`,resultPaper:`_resultPaper_1xc3a_37`,resultIcon:`_resultIcon_1xc3a_49`,readyContainer:`_readyContainer_1xc3a_53`},f=e.i({default:()=>p}),p=({window:e})=>{let{t:f}=(0,l.useTranslation)(`apps`),p=n.o(e=>e.createFile),m=t.t(),[h,g]=(0,o.useState)(0),[_,v]=(0,o.useState)(null),[y,b]=(0,o.useState)(null),[x,S]=(0,o.useState)(!1),[C,w]=(0,o.useState)(!1),[T,E]=(0,o.useState)(!1),[D,O]=(0,o.useState)({status:`idle`,progress:{status:`idle`,loaded:0,total:null,percent:null,error:null}}),[k,A]=(0,o.useState)(null),j=r.i(`FcUpload`,{size:120}),M=r.i(`FcCheckmark`,{size:64}),N=r.i(`FcCheckmark`,{size:14}),P=r.i(`FcInfo`,{size:64}),F=(0,o.useCallback)(e=>{e&&(v(e),g(1))},[]),I=(0,o.useCallback)(e=>{b(e),S(!0),w(!1),g(2)},[]),L=(0,o.useCallback)(async()=>{if(_){console.log(`[UploaderApp] Starting upload for file:`,_.name,`size:`,_.size),E(!0),O({status:`reading`,progress:{status:`downloading`,loaded:0,total:_.size,percent:0,error:null}});try{O(e=>({...e,progress:{status:`downloading`,loaded:0,total:_.size,percent:0,error:null}}));for(let e=0;e<=50;e+=10)await new Promise(e=>setTimeout(e,50)),O(t=>({...t,progress:{status:`downloading`,loaded:Math.floor(_.size*e/100),total:_.size,percent:e,error:null}}));console.log(`[UploaderApp] Calling saveBlob...`);let e=Date.now(),t=await n.n.saveBlob(_);console.log(`[UploaderApp] saveBlob completed in`,Date.now()-e,`ms, url:`,t),O(e=>({...e,progress:{status:`downloading`,loaded:Math.floor(_.size*80/100),total:_.size,percent:80,error:null}})),console.log(`[UploaderApp] Calling createFile with folderId:`,y);let r=Date.now(),i=await p(_.name,``,y,t);console.log(`[UploaderApp] createFile completed in`,Date.now()-r,`ms, id:`,i.id),A(i.id),O({status:`done`,progress:{status:`done`,loaded:_.size,total:_.size,percent:100,error:null}}),await new Promise(e=>setTimeout(e,1e3)),g(3)}catch(e){console.error(`[UploaderApp] Upload FAILED:`,e),O(t=>({...t,status:`error`,error:e instanceof Error?e.message:`Upload failed`})),await new Promise(e=>setTimeout(e,1e3)),g(3)}}},[_,y,p]),R=(0,o.useCallback)(()=>{y?m(`files`,{contentData:{initialFolderId:y}}):m(`files`)},[y,m]),z=(0,o.useCallback)(()=>{if(!k)return;let e=n.o.getState().fsNodes.find(e=>e.id===k);if(!e||e.type!==`file`)return;let t=n.x(e);t&&m(t.appId,{contentData:t.contentData})},[k,m]);if(!e)return null;let B=D.status===`done`,V=D.error;return h===3?(0,s.jsx)(`div`,{className:d.container,children:(0,s.jsxs)(c.Paper,{shadow:`sm`,className:d.resultPaper,children:[(0,s.jsx)(c.Box,{className:d.resultIcon,children:B?M:P}),(0,s.jsx)(c.Text,{size:`lg`,fw:500,ta:`center`,children:B?f(`uploader.uploadComplete`):`${f(`uploader.uploadFailed`)}: ${V}`}),B&&(0,s.jsxs)(c.Group,{mt:`md`,justify:`center`,children:[(0,s.jsx)(c.Button,{variant:`default`,size:`sm`,onClick:R,"data-testid":`uploader-show-file`,children:f(`uploader.showFile`)}),(0,s.jsx)(c.Button,{size:`sm`,onClick:z,"data-testid":`uploader-open-file`,children:f(`uploader.openFile`)})]})]})}):(0,s.jsxs)(`div`,{className:d.container,children:[j&&(0,s.jsx)(`div`,{className:d.backgroundIcon,children:j}),(0,s.jsxs)(c.Stepper,{active:h,orientation:`horizontal`,size:`sm`,className:d.stepper,children:[(0,s.jsx)(c.Stepper.Step,{label:f(`uploader.stepSelect`),description:f(`uploader.clickToUpload`),children:(0,s.jsx)(c.FileButton,{accept:`*`,onChange:F,children:e=>(0,s.jsx)(c.Button,{...e,size:`sm`,"data-testid":`uploader-select-file`,children:f(`uploader.clickToUpload`)})})}),(0,s.jsxs)(c.Stepper.Step,{label:f(`uploader.stepDestination`),description:x?(0,s.jsxs)(c.Group,{gap:4,align:`center`,style:{display:`inline-flex`},children:[N,(0,s.jsx)(`span`,{children:f(`uploader.folderSelected`)})]}):f(`uploader.selectDestination`),children:[_&&(0,s.jsxs)(c.Box,{className:d.fileInfo,children:[(0,s.jsx)(c.Text,{size:`sm`,fw:500,children:_.name}),(0,s.jsx)(c.Text,{size:`xs`,c:`dimmed`,children:u(_.size)})]}),(0,s.jsxs)(c.Group,{mt:`md`,children:[(0,s.jsx)(c.Button,{variant:`default`,size:`xs`,onClick:()=>w(!0),"data-testid":`uploader-select-folder`,children:f(`uploader.selectDestination`)}),(0,s.jsx)(c.Button,{size:`xs`,onClick:()=>g(2),"data-testid":`uploader-skip-folder`,children:f(`uploader.next`,{defaultValue:`Next`})})]}),(0,s.jsx)(c.Text,{size:`xs`,c:`dimmed`,mt:`xs`,children:y?`${f(`uploader.uploadTo`)}: ${n.o.getState().fsNodes.find(e=>e.id===y)?.name||``}`:f(`uploader.uploadToRoot`)})]}),(0,s.jsx)(c.Stepper.Step,{label:f(`uploader.stepUpload`),description:f(`uploader.uploading`),children:T?(0,s.jsx)(a.t,{state:D.progress,ariaLabel:f(`uploader.uploadProgress`)}):(0,s.jsxs)(c.Box,{className:d.readyContainer,children:[(0,s.jsx)(c.Text,{size:`sm`,ta:`center`,children:f(`uploader.readyToUpload`)}),(0,s.jsx)(c.Group,{justify:`center`,children:(0,s.jsx)(c.Button,{size:`sm`,onClick:L,"data-testid":`uploader-upload`,children:f(`uploader.upload`)})})]})})]}),(0,s.jsx)(i.i,{opened:C,onConfirm:I,onCancel:()=>w(!1)})]})};Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return p}});
@@ -1,4 +1,4 @@
1
- import { c as e } from "./useDynamicIcon-Bf0t2foA.js";
1
+ import { c as e } from "./useDynamicIcon-_wGeWu-b.js";
2
2
  //#region src/components/Shared/VscIcon.tsx
3
3
  var t = ({ name: t, size: n = 20, color: r }) => e(t, {
4
4
  size: n,
@@ -0,0 +1 @@
1
+ const e=require(`./useDynamicIcon-CK6SjEv5.cjs`);var t=({name:t,size:n=20,color:r})=>e.c(t,{size:n,color:r})??null;Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
@@ -0,0 +1 @@
1
+ require(`./NotesApp-BmQIBtJ2.cjs`);const e=require(`./useDynamicIcon-CK6SjEv5.cjs`);let t=require(`react`);var n=e=>e.split(`.`).pop()?.toLowerCase()??``,r={pdf:`VscFilePdf`,md:`VscMarkdown`,txt:`VscFile`,jpg:`VscFileMedia`,jpeg:`VscFileMedia`,png:`VscFileMedia`,gif:`VscFileMedia`,svg:`VscFileCode`,ts:`VscFileCode`,tsx:`VscFileCode`,js:`VscFileCode`,jsx:`VscFileCode`,json:`VscJson`,html:`VscFileCode`,css:`VscFileCode`},i=({type:i,name:a=``,folderNode:o,fileNode:s,size:c=20})=>{let l,u;i===`folder`?(l=o?.iconName??`VscFolder`,u=o?.iconColor??void 0):i===`file`&&s?.iconName?(l=s.iconName,u=s.iconColor??void 0):l=r[n(a)]??`VscFile`;let d=e.s(l);return d?(0,t.createElement)(d,{size:c,color:u,"aria-hidden":`true`}):null},a=(e,t)=>{let n=[{id:null,name:`Home`}],r=e,i=[];for(;r!==null;){let e=t.find(e=>e.id===r);if(!e)break;i.unshift({id:e.id,name:e.name}),r=e.parentId}return[...n,...i]};Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
@@ -0,0 +1,45 @@
1
+ import { s as e } from "./useDynamicIcon-_wGeWu-b.js";
2
+ import { createElement as t } from "react";
3
+ //#region src/utils/getFileExtension.ts
4
+ var n = (e) => e.split(".").pop()?.toLowerCase() ?? "", r = {
5
+ pdf: "VscFilePdf",
6
+ md: "VscMarkdown",
7
+ txt: "VscFile",
8
+ jpg: "VscFileMedia",
9
+ jpeg: "VscFileMedia",
10
+ png: "VscFileMedia",
11
+ gif: "VscFileMedia",
12
+ svg: "VscFileCode",
13
+ ts: "VscFileCode",
14
+ tsx: "VscFileCode",
15
+ js: "VscFileCode",
16
+ jsx: "VscFileCode",
17
+ json: "VscJson",
18
+ html: "VscFileCode",
19
+ css: "VscFileCode"
20
+ }, i = ({ type: i, name: a = "", folderNode: o, fileNode: s, size: c = 20 }) => {
21
+ let l, u;
22
+ i === "folder" ? (l = o?.iconName ?? "VscFolder", u = o?.iconColor ?? void 0) : i === "file" && s?.iconName ? (l = s.iconName, u = s.iconColor ?? void 0) : l = r[n(a)] ?? "VscFile";
23
+ let d = e(l);
24
+ return d ? t(d, {
25
+ size: c,
26
+ color: u,
27
+ "aria-hidden": "true"
28
+ }) : null;
29
+ }, a = (e, t) => {
30
+ let n = [{
31
+ id: null,
32
+ name: "Home"
33
+ }], r = e, i = [];
34
+ for (; r !== null;) {
35
+ let e = t.find((e) => e.id === r);
36
+ if (!e) break;
37
+ i.unshift({
38
+ id: e.id,
39
+ name: e.name
40
+ }), r = e.parentId;
41
+ }
42
+ return [...n, ...i];
43
+ };
44
+ //#endregion
45
+ export { i as n, n as r, a as t };