@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,210 @@
1
+ import { t as e } from "./rolldown-runtime-CAFD8bLK.js";
2
+ import { t } from "./useOpenApp-DkZLFFCH.js";
3
+ import { D as n, o as r, ot as i, x as a } from "./desktopStore-8cSZlj7s.js";
4
+ import { n as o, t as s } from "./buildBreadcrumbs-noWhu8os.js";
5
+ import { useCallback as c, useEffect as l, useState as u } from "react";
6
+ import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
7
+ import { Anchor as m, Breadcrumbs as h, Text as g, UnstyledButton as _ } from "@mantine/core";
8
+ //#region src/hooks/useNotifications.ts
9
+ var v = () => {
10
+ let e = r((e) => e.notifications), t = r((e) => e.addNotification), n = r((e) => e.removeNotification);
11
+ return {
12
+ notifications: e,
13
+ notify: c((e, n, r) => {
14
+ let a = {
15
+ id: i(),
16
+ title: e,
17
+ message: n,
18
+ fcIcon: r?.fcIcon,
19
+ onClose: r?.onClose
20
+ };
21
+ return t(a), a.id;
22
+ }, [t]),
23
+ dismiss: c((e) => {
24
+ n(e);
25
+ }, [n]),
26
+ addNotification: t,
27
+ removeNotification: n
28
+ };
29
+ }, y = {
30
+ root: "_root_113j7_1",
31
+ item: "_item_113j7_9"
32
+ }, b = ({ node: e, allNodes: t, currentFolderId: n, depth: r, onNavigate: i }) => {
33
+ let a = t.filter((t) => t.parentId === e.id && t.type === "folder");
34
+ return /* @__PURE__ */ p(d, { children: [/* @__PURE__ */ p(_, {
35
+ className: y.item,
36
+ "data-active": n === e.id || void 0,
37
+ style: { paddingLeft: 8 + r * 14 },
38
+ onClick: () => i(e.id),
39
+ "aria-label": e.name,
40
+ "aria-current": n === e.id ? "page" : void 0,
41
+ children: [/* @__PURE__ */ f(o, {
42
+ type: "folder",
43
+ folderNode: e,
44
+ size: 14
45
+ }), /* @__PURE__ */ f(g, {
46
+ size: "xs",
47
+ ml: 6,
48
+ truncate: !0,
49
+ children: e.name
50
+ })]
51
+ }), a.map((e) => /* @__PURE__ */ f(b, {
52
+ node: e,
53
+ allNodes: t,
54
+ currentFolderId: n,
55
+ depth: r + 1,
56
+ onNavigate: i
57
+ }, e.id))] });
58
+ }, x = ({ allNodes: e, currentFolderId: t, onNavigate: n }) => {
59
+ let r = e.filter((e) => e.parentId === null && e.type === "folder");
60
+ return /* @__PURE__ */ p("nav", {
61
+ className: y.root,
62
+ "aria-label": "Folder tree",
63
+ children: [/* @__PURE__ */ p(_, {
64
+ className: y.item,
65
+ "data-active": t === null || void 0,
66
+ style: { paddingLeft: 8 },
67
+ onClick: () => n(null),
68
+ "aria-label": "Home",
69
+ "aria-current": t === null ? "page" : void 0,
70
+ children: [/* @__PURE__ */ f(o, {
71
+ type: "folder",
72
+ size: 14
73
+ }), /* @__PURE__ */ f(g, {
74
+ size: "xs",
75
+ ml: 6,
76
+ fw: 500,
77
+ children: "Home"
78
+ })]
79
+ }), r.map((r) => /* @__PURE__ */ f(b, {
80
+ node: r,
81
+ allNodes: e,
82
+ currentFolderId: t,
83
+ depth: 1,
84
+ onNavigate: n
85
+ }, r.id))]
86
+ });
87
+ }, S = {
88
+ grid: "_grid_1cag6_1",
89
+ item: "_item_1cag6_9",
90
+ icon: "_icon_1cag6_26",
91
+ name: "_name_1cag6_34",
92
+ empty: "_empty_1cag6_46"
93
+ }, C = ({ node: e, onNavigate: t, onOpenFile: n, onContextMenu: r }) => {
94
+ let i = () => {
95
+ e.type === "folder" ? t(e.id) : n(e);
96
+ }, a = e.type === "folder" ? `Open folder ${e.name}` : `Open file ${e.name}`;
97
+ return /* @__PURE__ */ p(_, {
98
+ className: S.item,
99
+ onDoubleClick: i,
100
+ onContextMenu: (t) => r(t, e.id),
101
+ "aria-label": a,
102
+ role: "option",
103
+ children: [/* @__PURE__ */ f("div", {
104
+ className: S.icon,
105
+ children: /* @__PURE__ */ f(o, {
106
+ type: e.type,
107
+ name: e.name,
108
+ folderNode: e.type === "folder" ? e : void 0,
109
+ size: 32
110
+ })
111
+ }), /* @__PURE__ */ f(g, {
112
+ size: "xs",
113
+ className: S.name,
114
+ truncate: !0,
115
+ children: e.name
116
+ })]
117
+ });
118
+ }, w = ({ nodes: e, onNavigate: t, onOpenFile: i, onNodeContextMenu: a }) => {
119
+ let o = r((e) => e.filesSortMode);
120
+ if (e.length === 0) return /* @__PURE__ */ f("div", {
121
+ className: S.empty,
122
+ children: /* @__PURE__ */ f(g, {
123
+ size: "sm",
124
+ c: "dimmed",
125
+ children: "This folder is empty"
126
+ })
127
+ });
128
+ let s = n(e, o);
129
+ return /* @__PURE__ */ f("div", {
130
+ className: S.grid,
131
+ role: "listbox",
132
+ "aria-label": "Files",
133
+ children: s.map((e) => /* @__PURE__ */ f(C, {
134
+ node: e,
135
+ onNavigate: t,
136
+ onOpenFile: i,
137
+ onContextMenu: a
138
+ }, e.id))
139
+ });
140
+ }, T = {
141
+ root: "_root_13mxj_1",
142
+ breadcrumbBar: "_breadcrumbBar_13mxj_9",
143
+ breadcrumbSep: "_breadcrumbSep_13mxj_16",
144
+ body: "_body_13mxj_21",
145
+ sidebar: "_sidebar_13mxj_28",
146
+ content: "_content_13mxj_35"
147
+ }, E = /* @__PURE__ */ e({ default: () => D }), D = ({ window: e }) => {
148
+ let n = e?.contentData?.initialFolderId, i = r((e) => e.fsNodes), o = r((e) => e.openContextMenu), d = r((e) => e.setFilesCurrentFolderId), _ = t(), { notify: y } = v(), [b, S] = u(n ?? null), C = c((e) => {
149
+ S(e), d(e);
150
+ }, [d]);
151
+ l(() => {
152
+ d(n ?? null);
153
+ }, [n, d]);
154
+ let E = b === null ? i.filter((e) => e.parentId === null) : i.filter((e) => e.parentId === b), D = c((e) => {
155
+ e.preventDefault(), e.stopPropagation(), o(e.clientX, e.clientY, "files");
156
+ }, [o]), O = c((e, t) => {
157
+ e.preventDefault(), e.stopPropagation(), o(e.clientX, e.clientY, "files", t);
158
+ }, [o]), k = c((e) => {
159
+ try {
160
+ let t = a(e);
161
+ if (t) _(t.appId, { contentData: t.contentData });
162
+ else {
163
+ let t = e.mimeType || "unknown";
164
+ console.warn(`[FilesApp] Unsupported file type: ${e.name} (${t})`), y("Unsupported file type", `Cannot open "${e.name}". File type "${t}" is not supported.`, { fcIcon: "FcDeleteRow" });
165
+ }
166
+ } catch (t) {
167
+ console.error("[FilesApp] Error opening file:", t), y("Error opening file", `An unexpected error occurred while opening "${e.name}".`, { fcIcon: "FcHighPriority" });
168
+ }
169
+ }, [_, y]), A = s(b, i);
170
+ return /* @__PURE__ */ p("div", {
171
+ className: T.root,
172
+ onContextMenu: D,
173
+ children: [/* @__PURE__ */ f("div", {
174
+ className: T.breadcrumbBar,
175
+ children: /* @__PURE__ */ f(h, {
176
+ separator: "›",
177
+ classNames: { separator: T.breadcrumbSep },
178
+ children: A.map((e, t) => t === A.length - 1 ? /* @__PURE__ */ f(g, {
179
+ size: "xs",
180
+ fw: 500,
181
+ children: e.name
182
+ }, e.id ?? "root") : /* @__PURE__ */ f(m, {
183
+ size: "xs",
184
+ onClick: () => C(e.id),
185
+ children: e.name
186
+ }, e.id ?? "root"))
187
+ })
188
+ }), /* @__PURE__ */ p("div", {
189
+ className: T.body,
190
+ children: [/* @__PURE__ */ f("aside", {
191
+ className: T.sidebar,
192
+ children: /* @__PURE__ */ f(x, {
193
+ allNodes: i,
194
+ currentFolderId: b,
195
+ onNavigate: C
196
+ })
197
+ }), /* @__PURE__ */ f("main", {
198
+ className: T.content,
199
+ children: /* @__PURE__ */ f(w, {
200
+ nodes: E,
201
+ onNavigate: C,
202
+ onOpenFile: k,
203
+ onNodeContextMenu: O
204
+ })
205
+ })]
206
+ })]
207
+ });
208
+ };
209
+ //#endregion
210
+ export { E as n, v as r, D as t };
@@ -0,0 +1 @@
1
+ const e=require(`./NotesApp-BmQIBtJ2.cjs`),t=require(`./desktopStore-C1jR6Fdb.cjs`),n=require(`./useResolvedUrl-Bb39DpVy.cjs`),r=require(`./FilePickerApp-By6-vbag.cjs`),i=require(`./AppEmptyState-CLc00OOG.cjs`),a=require(`./imageViewerStore-Dfylg59V.cjs`);let o=require(`react`),s=require(`react/jsx-runtime`),c=require(`react-i18next`);var l={container:`_container_1btg4_1`,image:`_image_1btg4_12`,placeholder:`_placeholder_1btg4_19`},u=e.i({default:()=>f}),d=[...t.y,`image/*`],f=({window:e,notifyReady:t})=>{let{t:u}=(0,c.useTranslation)(`apps`),f=e,p=f?.id??``,m=f?.contentData?.src,[h,g]=(0,o.useState)(m),[_,v]=(0,o.useState)(!1),[y,b]=(0,o.useState)(null),x=(0,o.useRef)(null),S=a.r(e=>e.getDisplayZoom(p)),C=a.r(e=>e.getFitToWindow(p)),w=a.r(e=>e.updateCalculatedZoom),T=a.r(e=>e.reset),E=n.t(h);(0,o.useEffect)(()=>{T(p)},[p,T]),(0,o.useEffect)(()=>{if(!C||!y||!x.current)return;let e=new ResizeObserver(e=>{for(let t of e){let{width:e,height:n}=t.contentRect;w(p,y,{width:e,height:n})}});return e.observe(x.current),()=>e.disconnect()},[C,y,p,w]),(0,o.useEffect)(()=>{t?.({...f?.contentData??{},setPickerOpen:()=>v(!0)})},[f,t]);let D=(0,o.useCallback)(e=>{g(e.url??e.name),v(!1),T(p),b(null)},[p,T]),O=(0,o.useCallback)(e=>{let t=e.currentTarget;b({width:t.naturalWidth,height:t.naturalHeight})},[]),k=C?void 0:{transform:`scale(${S/100})`},A=E?(0,s.jsx)(`img`,{src:E,alt:E.split(`/`).pop()??`image`,className:l.image,style:k,onLoad:O}):(0,s.jsx)(i.t,{label:u(`imageViewer.noImage`)});return(0,s.jsxs)(`div`,{ref:x,className:l.container,"data-windowid":f?.id,children:[A,(0,s.jsx)(r.n,{opened:_,acceptedMimeTypes:d,onConfirm:D,onCancel:()=>v(!1)})]})};Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return f}});
@@ -1,9 +1,9 @@
1
1
  import { t as e } from "./rolldown-runtime-CAFD8bLK.js";
2
- import { y as t } from "./desktopStore-F8bgLqFl.js";
3
- import { t as n } from "./useResolvedUrl-DQpLqOoL.js";
4
- import { n as r } from "./FilePickerApp-DaMgEqKh.js";
5
- import { t as i } from "./AppEmptyState-Bxpit0JV.js";
6
- import { r as a } from "./imageViewerStore-C5kWz0o7.js";
2
+ import { y as t } from "./desktopStore-8cSZlj7s.js";
3
+ import { t as n } from "./useResolvedUrl-B6x4xy0x.js";
4
+ import { n as r } from "./FilePickerApp-ClHuhm6Z.js";
5
+ import { t as i } from "./AppEmptyState-Boej96TB.js";
6
+ import { r as a } from "./imageViewerStore-COrD02Zu.js";
7
7
  import { useCallback as o, useEffect as s, useRef as c, useState as l } from "react";
8
8
  import { jsx as u, jsxs as d } from "react/jsx-runtime";
9
9
  import { useTranslation as f } from "react-i18next";
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./rolldown-runtime-CAFD8bLK.js";
2
- import { t } from "./AppMenuBar-CnIEVjr8.js";
3
- import { n, r, t as i } from "./imageViewerStore-C5kWz0o7.js";
2
+ import { t } from "./AppMenuBar-DmSfQRXU.js";
3
+ import { n, r, t as i } from "./imageViewerStore-COrD02Zu.js";
4
4
  import { memo as a, useCallback as o, useMemo as s } from "react";
5
5
  import { jsx as c } from "react/jsx-runtime";
6
6
  import { useTranslation as l } from "react-i18next";
@@ -0,0 +1 @@
1
+ const e=require(`./NotesApp-BmQIBtJ2.cjs`),t=require(`./AppMenuBar-CAlkNHjj.cjs`),n=require(`./imageViewerStore-Dfylg59V.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`),a=require(`react-i18next`);var o=[{value:25,label:`25%`},{value:50,label:`50%`},{value:75,label:`75%`},{value:100,label:`100%`},{value:200,label:`200%`}],s=e=>{let{windowId:t,onOpenPicker:i,onExit:s}=e,{t:c}=(0,a.useTranslation)(`common`),{t:l}=(0,a.useTranslation)(`apps`),u=n.t(t),d=n.n(t),f=n.r(e=>e.setUserZoom),p=n.r(e=>e.setFitToWindow),m=(0,r.useCallback)(e=>p(t,e),[t,p]),h=(0,r.useCallback)(e=>f(t,e),[t,f]);return(0,r.useMemo)(()=>{let e=`${l(`imageViewer.zoom`)}: ${u}%`;return[{type:`menu`,label:c(`menu.file`),items:[{type:`item`,label:c(`actions.open`),icon:`FcOpenedFolder`,onClick:i??(()=>{})},{type:`divider`},{type:`item`,label:c(`actions.exit`),icon:`FcLeft`,onClick:s}]},{type:`switch`,label:l(`imageViewer.fitToWindow`),checked:d,onChange:m},{type:`slider`,label:e,min:10,max:200,value:u,onChange:h,marks:o,labelFormat:e=>`${e}%`}]},[c,l,i,s,u,d,m,h])},c=e.i({ImageViewerMenuBar:()=>l}),l=(0,r.memo)(({windowId:e,contentData:n,onExit:r})=>(0,i.jsx)(t.t,{elements:s({windowId:e,onOpenPicker:n?.setPickerOpen,onExit:r})}));l.displayName=`ImageViewerMenuBar`,Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return l}});
@@ -0,0 +1 @@
1
+ const e=require(`./NotesApp-BmQIBtJ2.cjs`),t=require(`./desktopStore-C1jR6Fdb.cjs`),n=require(`./AppIcon-C8vHUVcb.cjs`),r=require(`./useCloseInterceptor-CdX-09Ib.cjs`),i=require(`./VscIcon-BYb_Soyy.cjs`),a=require(`./menuEditStore-CYwtfD6H.cjs`);let o=require(`react`),s=require(`react/jsx-runtime`),c=require(`@mantine/core`),l=require(`react-i18next`),u=require(`@dnd-kit/core`);var d={"launcher-folder-social-links":`socialLinks`,"launcher-folder-office":`office`,"launcher-folder-programming":`programming`,"launcher-folder-games":`games`,"launcher-folder-custom-apps":`customApps`};function f(e){let{t}=(0,l.useTranslation)(`apps`);if(!e.isPredefined)return e.name;let n=d[e.id];return n?t(`folders.${n}`,e.name):e.name}var p=(0,o.createContext)(null),m=({children:e,onDrop:t,onCancel:n})=>{let[r,i]=(0,o.useState)(null),[a,c]=(0,o.useState)(null),l=(0,o.useCallback)(e=>{let t=e.active.data.current;t&&i(t)},[]),d=(0,o.useCallback)(e=>{if(e.over){let t=e.over.data.current;t&&c(t)}else c(null)},[]),f=(0,o.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),c(null)},[t,n]),m=(0,o.useMemo)(()=>({activeItem:r,overTarget:a}),[r,a]);return(0,s.jsx)(p.Provider,{value:m,children:(0,s.jsx)(u.DndContext,{onDragStart:l,onDragOver:d,onDragEnd:f,collisionDetection:u.pointerWithin,children:e})})};function h(e){let{item:t,disabled:n=!1}=e,{attributes:r,listeners:i,setNodeRef:a,transform:o,isDragging:s}=(0,u.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 g(e){let{target:t,disabled:n=!1}=e,r=(0,o.useContext)(p),{setNodeRef:i,isOver:a}=(0,u.useDroppable)({id:t.id,data:t,disabled:n});return{setNodeRef:i,isOver:a,active:r?.activeItem??null}}function _(){let e=(0,o.useContext)(p);if(!e)throw Error(`useDragDropState must be used within a DragDropProvider`);return e}var v=({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}},y={dragOverlay:`_dragOverlay_myknw_1`},b=()=>{let{activeItem:e}=_();return e?(0,s.jsx)(u.DragOverlay,{dropAnimation:u.defaultDropAnimation,modifiers:[v],children:(0,s.jsxs)(c.Box,{className:y.dragOverlay,children:[(0,s.jsx)(n.t,{fcIcon:e.metadata?.fcIcon,iconUrl:e.metadata?.iconUrl,fallback:e.metadata?.icon,size:20}),(0,s.jsx)(c.Text,{size:`xs`,children:e.name})]})}):null},x={"launcher-folder":[`app`],"filesystem-folder":[`file`,`folder`],desktop:[`file`,`folder`,`app`],"available-apps":[`app`]},S={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`},C=e.i({default:()=>k}),w=({folder:e,isEditing:r,editingName:a,onEdit:o,onDelete:u,onRename:d,onSetEditingName:p,onRemoveApp:m})=>{let{t:h}=(0,l.useTranslation)(`menuedit`),v=f(e),{activeItem:y}=_(),{setNodeRef:b,isOver:C}=g({target:{type:`launcher-folder`,id:e.id,name:v,accepts:x[`launcher-folder`]}});return(0,s.jsxs)(c.Card,{ref:b,className:S.folderCard,shadow:`xs`,padding:`xs`,"data-is-over":C&&y?.type===`app`?`true`:void 0,children:[(0,s.jsxs)(c.Group,{justify:`space-between`,mb:4,children:[r?(0,s.jsx)(c.TextInput,{value:a,onChange:e=>p(e.target.value),onBlur:()=>d(e.id),onKeyDown:t=>{t.key===`Enter`&&(t.preventDefault(),d(e.id))},autoFocus:!0,size:`xs`,style:{flex:1}}):(0,s.jsxs)(c.Group,{gap:`xs`,children:[(0,s.jsx)(n.t,{fcIcon:e.fcIcon,size:16}),(0,s.jsx)(c.Text,{size:`sm`,fw:500,children:v}),e.isPredefined&&(0,s.jsxs)(c.Text,{size:`xs`,c:`dimmed`,children:[`(`,h(`predefined`),`)`]})]}),!e.isPredefined&&!r&&(0,s.jsxs)(c.Group,{gap:4,children:[(0,s.jsx)(c.ActionIcon,{variant:`subtle`,size:`xs`,onClick:()=>o(e.id),"aria-label":h(`rename`),children:(0,s.jsx)(i.t,{name:`VscEdit`,size:14})}),u&&(0,s.jsx)(c.ActionIcon,{variant:`subtle`,size:`xs`,color:`red`,onClick:()=>u(e.id),"aria-label":h(`delete`),children:(0,s.jsx)(i.t,{name:`VscTrash`,size:14})})]})]}),(0,s.jsx)(c.Box,{className:S.appList,children:e.appIds.map(n=>{let r=t.st.find(e=>e.id===n);return r?(0,s.jsx)(T,{app:r,sourceId:e.id,onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),m(n,e.id)}},n):null})})]})},T=({app:e,sourceId:t,onContextMenu:r})=>{let{attributes:i,listeners:a,setNodeRef:o,isDragging:l,style:u}=h({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,s.jsxs)(c.UnstyledButton,{ref:o,className:S.appItem,style:{...u,opacity:l?.5:1},onContextMenu:r,...i,...a,children:[(0,s.jsx)(n.t,{fcIcon:e.fcIcon,iconUrl:e.iconUrl,fallback:e.icon,size:16}),(0,s.jsx)(c.Text,{size:`xs`,children:e.name})]})},E=({customFolderId:e})=>{let{t:n}=(0,l.useTranslation)(`menuedit`),{activeItem:r}=_(),{setNodeRef:i,isOver:a}=g({target:{type:`available-apps`,id:`available-apps`,name:`Available Apps`,accepts:x[`available-apps`]}}),o=new Set(t.o.getState().launcherFolders.flatMap(e=>e.appIds)),u=t.st.filter(e=>e.id!==`settings`&&e.id!==`menuedit`),d=t.o(e=>e.addAppToFolder);return(0,s.jsxs)(c.Box,{ref:i,className:S.availableApps,"data-is-over":a&&r?.type===`app`?`true`:void 0,children:[(0,s.jsx)(c.Text,{size:`xs`,c:`dimmed`,mb:8,children:n(`availableApps`)}),e===null&&(0,s.jsx)(c.Text,{size:`xs`,c:`orange`,mb:4,children:n(`canCreateNewFolder`)}),(0,s.jsx)(c.Box,{className:S.appGrid,children:u.filter(e=>!o.has(e.id)).map(t=>(0,s.jsx)(D,{app:t,targetFolderId:e,onAdd:d},t.id))})]})},D=({app:e,targetFolderId:t,onAdd:r})=>{let{attributes:i,listeners:a,setNodeRef:o,isDragging:l,style:u}=h({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,s.jsxs)(c.UnstyledButton,{ref:o,className:S.appItem,style:{...u,opacity:l?0:1},onClick:d,disabled:!t,...i,...a,children:[(0,s.jsx)(n.t,{fcIcon:e.fcIcon,iconUrl:e.iconUrl,fallback:e.icon,size:16}),(0,s.jsx)(c.Text,{size:`xs`,children:e.name})]})},O=({window:e,notifyReady:n})=>{let{t:u}=(0,l.useTranslation)(`menuedit`),d=e?.id,f=t.o(e=>e.launcherFolders),p=t.o(e=>e.setLauncherFolders),m=t.o(e=>e.createLauncherFolder),h=t.o(e=>e.updateLauncherFolder),g=t.o(e=>e.deleteLauncherFolder),_=t.o(e=>e.removeAppFromFolder),[v,y]=(0,o.useState)(null),[b,x]=(0,o.useState)(``),C=(0,o.useRef)(!1);(0,o.useEffect)(()=>{d&&(C.current||(C.current=!0,a.n.getState().reset(d)))},[d]),(0,o.useEffect)(()=>{if(!d)return;let e=a.n.getState();if(e.getSnapshot(d)===null)e.takeSnapshot(d,f);else{let t=e.getSnapshot(d);if(t){let n=JSON.stringify(f)!==JSON.stringify(t);e.setIsDirty(d,n)}}},[d,f]);let T=(0,o.useCallback)(()=>{d&&a.n.getState().takeSnapshot(d,f)},[d,f]),D=(0,o.useCallback)(()=>{if(!d)return;let e=a.n.getState().getSnapshot(d);e&&p(e)},[d,p]);r.i({isDirtyGetter:(0,o.useCallback)(()=>{if(!d)return!1;let e=a.n.getState().getSnapshot(d);return JSON.stringify(f)!==JSON.stringify(e??[])},[d,f]),windowId:e?.id,onDiscard:D,onSave:T});let O=(0,o.useCallback)(()=>{let e=m({name:u(`newFolder`),fcIcon:`VscFolder`,order:f.length});y(e.id),x(e.name)},[m,f.length,u]);(0,o.useEffect)(()=>{n?.({createFolder:O,save:T,discard:D})},[O,T,D,n]);let k=(0,o.useCallback)(e=>{let t=f.find(t=>t.id===e);t&&(y(t.id),x(t.name))},[f]),A=(0,o.useCallback)(e=>{b.trim()&&h(e,{name:b.trim()}),y(null)},[b,h]),j=t.G(),M=f.filter(e=>e.isPredefined),N=f.filter(e=>!e.isPredefined),P=N.length>0?N[0].id:null;return(0,s.jsx)(c.Box,{className:S.container,"data-windowid":e?.id,"data-menuedit-container":!0,children:(0,s.jsxs)(c.Box,{className:S.content,children:[M.length>0&&(0,s.jsxs)(c.Box,{mb:`md`,children:[(0,s.jsx)(c.Text,{size:`xs`,c:`dimmed`,mb:8,children:u(`predefinedFolders`)}),(0,s.jsx)(c.Box,{className:S.folderList,children:M.map(e=>(0,s.jsx)(w,{folder:e,isEditing:!1,editingName:``,onEdit:()=>{},onRemoveApp:_,onRename:()=>{},onSetEditingName:()=>{}},e.id))})]}),j&&N.length>0&&(0,s.jsxs)(c.Box,{mb:`md`,children:[(0,s.jsx)(c.Text,{size:`xs`,c:`dimmed`,mb:8,children:u(`customFolders`)}),(0,s.jsx)(c.Box,{className:S.folderList,children:N.map(e=>(0,s.jsx)(w,{folder:e,isEditing:v===e.id,editingName:b,onEdit:k,onDelete:g,onRename:A,onSetEditingName:x,onRemoveApp:_},e.id))})]}),(0,s.jsxs)(c.Group,{justify:`space-between`,mb:`md`,children:[(0,s.jsx)(E,{customFolderId:P}),(0,s.jsx)(c.Text,{size:`xs`,c:`dimmed`,mt:`md`,children:u(`instructions`)}),j&&(0,s.jsx)(c.ActionIcon,{variant:`light`,onClick:O,"aria-label":u(`addFolder`),children:(0,s.jsx)(i.t,{name:`VscAdd`,size:16})})]})]})})},k=e=>{let n=t.o(e=>e.addAppToFolder),r=t.o(e=>e.removeAppFromFolder);return(0,s.jsxs)(m,{onDrop:(0,o.useCallback)((e,t)=>{if(e.type===`app`){if(t.type===`available-apps`){e.sourceType===`launcher-folder`&&r(e.id,e.sourceId);return}t.type===`launcher-folder`&&(e.sourceId!==t.id&&e.sourceType===`launcher-folder`&&r(e.id,e.sourceId),n(e.id,t.id))}},[n,r]),children:[(0,s.jsx)(O,{...e}),(0,s.jsx)(b,{})]})};Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return k}});