@fde-desktop/fde-core 0.4.6 → 0.4.7

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 (60) hide show
  1. package/dist/{CreateItemApp-2EME6FYH.js → CreateItemApp-ESQ42VHH.js} +2 -2
  2. package/dist/{CreateItemApp-BSEISPUS.cjs → CreateItemApp-RFE3REWZ.cjs} +3 -3
  3. package/dist/DeviceInfoApp-XNIS6ZY6.js +5 -0
  4. package/dist/DeviceInfoApp-ZNLQNOKI.cjs +11 -0
  5. package/dist/FilesApp-4GEU64QN.js +8 -0
  6. package/dist/FilesApp-QSLB5IWR.cjs +14 -0
  7. package/dist/{ImageViewerApp-PLHNQFZ3.js → ImageViewerApp-NCVDKLB3.js} +4 -4
  8. package/dist/{ImageViewerApp-UIXSGW2X.cjs → ImageViewerApp-QB373H5Z.cjs} +5 -5
  9. package/dist/MenuEditApp-5EFYAPFC.cjs +15 -0
  10. package/dist/{MenuEditApp-4DB5UEWH.js → MenuEditApp-V5XOPIHX.js} +4 -4
  11. package/dist/{NotesApp-MW37NRSN.js → NotesApp-2YNT7Y3D.js} +4 -4
  12. package/dist/{NotesApp-BZYASRVJ.cjs → NotesApp-IAEE7YHU.cjs} +5 -5
  13. package/dist/{PdfApp-ZSYAQP7L.js → PdfApp-67XIX6AM.js} +4 -4
  14. package/dist/{PdfApp-3ZINDODQ.cjs → PdfApp-GZ6RHTBR.cjs} +5 -5
  15. package/dist/{SettingsApp-2ZNO7AVY.cjs → SettingsApp-BPLMGPNK.cjs} +7 -7
  16. package/dist/{SettingsApp-ODZINK6T.js → SettingsApp-LUDIXCYY.js} +6 -6
  17. package/dist/UploaderApp-FJC2J4I5.js +10 -0
  18. package/dist/UploaderApp-HLXJYJZQ.cjs +16 -0
  19. package/dist/{chunk-QFGHYAD7.cjs → chunk-4E4U2A25.cjs} +10 -10
  20. package/dist/{chunk-DEVJOHGE.cjs → chunk-4QHX7CMN.cjs} +3 -3
  21. package/dist/{chunk-WHZGUG7Q.js → chunk-5HUYQDQF.js} +1 -1
  22. package/dist/{chunk-W2Y22XR6.js → chunk-5QFZW6HW.js} +2 -1
  23. package/dist/{chunk-WSA5WSHN.js → chunk-756GPSPM.js} +2 -2
  24. package/dist/{chunk-HIGKZ7UP.js → chunk-7WUYUTPN.js} +5 -5
  25. package/dist/{chunk-VLWKVIYD.js → chunk-7XCMBW64.js} +2 -2
  26. package/dist/{chunk-KI5FXBOM.cjs → chunk-ACHGJKCI.cjs} +13 -13
  27. package/dist/{chunk-HYJJVB7G.js → chunk-C3XER4N3.js} +3 -3
  28. package/dist/{chunk-YSWU4OKP.cjs → chunk-CILU6BWC.cjs} +20 -20
  29. package/dist/{chunk-I5MJXFYW.cjs → chunk-DFYDUXWP.cjs} +2 -2
  30. package/dist/{chunk-PVBI2WRF.js → chunk-E5FW77FG.js} +1 -1
  31. package/dist/{chunk-57ZTJB2W.cjs → chunk-FD7QZCTN.cjs} +13 -13
  32. package/dist/{chunk-YOHBUOZJ.cjs → chunk-GPXNLTPI.cjs} +6 -6
  33. package/dist/{chunk-2O3W6TLG.cjs → chunk-HPHHS7FJ.cjs} +4 -4
  34. package/dist/{chunk-Y2WL2M7M.js → chunk-IHWGT3DL.js} +3 -3
  35. package/dist/{chunk-JX65IKJZ.cjs → chunk-KDZLBI6F.cjs} +17 -17
  36. package/dist/{chunk-2MYZWMDC.js → chunk-MCHPDWVH.js} +1 -1
  37. package/dist/{chunk-BFMSPWLP.cjs → chunk-N36HBL53.cjs} +9 -9
  38. package/dist/{chunk-PDEZ7BIN.js → chunk-NV5GNFA3.js} +3 -3
  39. package/dist/{chunk-25GVAXBU.js → chunk-PGGNSLM7.js} +1 -1
  40. package/dist/{chunk-2NGIGLVP.cjs → chunk-RPSYXORB.cjs} +8 -8
  41. package/dist/{chunk-U5JKHQBS.js → chunk-TAFNCDUI.js} +3 -3
  42. package/dist/{chunk-4KIMZJ3L.cjs → chunk-TFIDSENE.cjs} +6 -6
  43. package/dist/{chunk-FNWS4ZKT.js → chunk-UA6XSTW6.js} +1 -1
  44. package/dist/{chunk-7HQ6KUIO.cjs → chunk-UKYESVDS.cjs} +3 -3
  45. package/dist/{chunk-2UW42GAP.cjs → chunk-V4N255NL.cjs} +2 -1
  46. package/dist/{chunk-NULEEBCG.js → chunk-VO6KXO2I.js} +1 -1
  47. package/dist/{chunk-7FGL7HGS.cjs → chunk-WXSTSC3D.cjs} +3 -3
  48. package/dist/{chunk-VFPEMNSX.js → chunk-XSK7BWYO.js} +2 -2
  49. package/dist/{chunk-AU4IENXY.cjs → chunk-XVAPJ4PP.cjs} +12 -12
  50. package/dist/{chunk-KGMXUBWQ.js → chunk-YGYOLDKR.js} +11 -11
  51. package/dist/index.cjs +380 -380
  52. package/dist/index.js +26 -26
  53. package/package.json +1 -1
  54. package/dist/DeviceInfoApp-2MJFK32B.cjs +0 -11
  55. package/dist/DeviceInfoApp-KFYU3E43.js +0 -5
  56. package/dist/FilesApp-B7JR4PEP.cjs +0 -14
  57. package/dist/FilesApp-HYTIWN3O.js +0 -8
  58. package/dist/MenuEditApp-B2ZMG4ZY.cjs +0 -15
  59. package/dist/UploaderApp-MTRIYWV4.cjs +0 -16
  60. package/dist/UploaderApp-V3WUDCG2.js +0 -10
@@ -2,9 +2,9 @@
2
2
 
3
3
  var chunkFX2TPX3L_cjs = require('./chunk-FX2TPX3L.cjs');
4
4
  var chunkYSOLW4FS_cjs = require('./chunk-YSOLW4FS.cjs');
5
- var chunkI5MJXFYW_cjs = require('./chunk-I5MJXFYW.cjs');
6
- var chunk7FGL7HGS_cjs = require('./chunk-7FGL7HGS.cjs');
7
- var chunk2UW42GAP_cjs = require('./chunk-2UW42GAP.cjs');
5
+ var chunkDFYDUXWP_cjs = require('./chunk-DFYDUXWP.cjs');
6
+ var chunkWXSTSC3D_cjs = require('./chunk-WXSTSC3D.cjs');
7
+ var chunkV4N255NL_cjs = require('./chunk-V4N255NL.cjs');
8
8
  var chunkZ5YGWL65_cjs = require('./chunk-Z5YGWL65.cjs');
9
9
  var chunkE55VXNLK_cjs = require('./chunk-E55VXNLK.cjs');
10
10
  var react = require('react');
@@ -152,7 +152,7 @@ var DragOverlayComponent = () => {
152
152
  if (!activeItem) return null;
153
153
  return /* @__PURE__ */ jsxRuntime.jsx(core.DragOverlay, { dropAnimation: core.defaultDropAnimation, modifiers: [snapCenterToCursor], children: /* @__PURE__ */ jsxRuntime.jsxs(chunkE55VXNLK_cjs.Box, { className: DragOverlay_default.dragOverlay, children: [
154
154
  /* @__PURE__ */ jsxRuntime.jsx(
155
- chunkI5MJXFYW_cjs.AppIcon_default,
155
+ chunkDFYDUXWP_cjs.AppIcon_default,
156
156
  {
157
157
  fcIcon: activeItem.metadata?.fcIcon,
158
158
  iconUrl: activeItem.metadata?.iconUrl,
@@ -220,7 +220,7 @@ var FolderItem = ({
220
220
  style: { flex: 1 }
221
221
  }
222
222
  ) : /* @__PURE__ */ jsxRuntime.jsxs(chunkE55VXNLK_cjs.Group, { gap: "xs", children: [
223
- /* @__PURE__ */ jsxRuntime.jsx(chunkI5MJXFYW_cjs.AppIcon_default, { fcIcon: folder.fcIcon, size: 16 }),
223
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDFYDUXWP_cjs.AppIcon_default, { fcIcon: folder.fcIcon, size: 16 }),
224
224
  /* @__PURE__ */ jsxRuntime.jsx(chunkE55VXNLK_cjs.Text, { size: "sm", fw: 500, children: folderName }),
225
225
  folder.isPredefined && /* @__PURE__ */ jsxRuntime.jsxs(chunkE55VXNLK_cjs.Text, { size: "xs", c: "dimmed", children: [
226
226
  "(",
@@ -253,7 +253,7 @@ var FolderItem = ({
253
253
  ] })
254
254
  ] }),
255
255
  /* @__PURE__ */ jsxRuntime.jsx(chunkE55VXNLK_cjs.Box, { className: MenuEditApp_default.appList, children: folder.appIds.map((appId) => {
256
- const app = chunk2UW42GAP_cjs.APPS.find((a) => a.id === appId);
256
+ const app = chunkV4N255NL_cjs.APPS.find((a) => a.id === appId);
257
257
  if (!app) return null;
258
258
  return /* @__PURE__ */ jsxRuntime.jsx(
259
259
  DraggableApp,
@@ -298,7 +298,7 @@ var DraggableApp = ({ app, sourceId, onContextMenu }) => {
298
298
  ...attributes,
299
299
  ...listeners,
300
300
  children: [
301
- /* @__PURE__ */ jsxRuntime.jsx(chunkI5MJXFYW_cjs.AppIcon_default, { fcIcon: app.fcIcon, iconUrl: app.iconUrl, fallback: app.icon, size: 16 }),
301
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDFYDUXWP_cjs.AppIcon_default, { fcIcon: app.fcIcon, iconUrl: app.iconUrl, fallback: app.icon, size: 16 }),
302
302
  /* @__PURE__ */ jsxRuntime.jsx(chunkE55VXNLK_cjs.Text, { size: "xs", children: app.name })
303
303
  ]
304
304
  }
@@ -315,9 +315,9 @@ var AvailableApps = ({ customFolderId }) => {
315
315
  accepts: ACCEPTED_TYPES["available-apps"]
316
316
  }
317
317
  });
318
- const appsInFolders = new Set(chunk2UW42GAP_cjs.useDesktopStore.getState().launcherFolders.flatMap((f) => f.appIds));
319
- const availableApps = chunk2UW42GAP_cjs.APPS.filter((app) => app.id !== "settings" && app.id !== "menuedit");
320
- const addAppToFolder = chunk2UW42GAP_cjs.useDesktopStore((state) => state.addAppToFolder);
318
+ const appsInFolders = new Set(chunkV4N255NL_cjs.useDesktopStore.getState().launcherFolders.flatMap((f) => f.appIds));
319
+ const availableApps = chunkV4N255NL_cjs.APPS.filter((app) => app.id !== "settings" && app.id !== "menuedit");
320
+ const addAppToFolder = chunkV4N255NL_cjs.useDesktopStore((state) => state.addAppToFolder);
321
321
  return /* @__PURE__ */ jsxRuntime.jsxs(
322
322
  chunkE55VXNLK_cjs.Box,
323
323
  {
@@ -371,7 +371,7 @@ var DraggableAppFromAvailable = ({ app, targetFolderId, onAdd }) => {
371
371
  ...attributes,
372
372
  ...listeners,
373
373
  children: [
374
- /* @__PURE__ */ jsxRuntime.jsx(chunkI5MJXFYW_cjs.AppIcon_default, { fcIcon: app.fcIcon, iconUrl: app.iconUrl, fallback: app.icon, size: 16 }),
374
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDFYDUXWP_cjs.AppIcon_default, { fcIcon: app.fcIcon, iconUrl: app.iconUrl, fallback: app.icon, size: 16 }),
375
375
  /* @__PURE__ */ jsxRuntime.jsx(chunkE55VXNLK_cjs.Text, { size: "xs", children: app.name })
376
376
  ]
377
377
  }
@@ -380,12 +380,12 @@ var DraggableAppFromAvailable = ({ app, targetFolderId, onAdd }) => {
380
380
  var MenuEditAppContent = ({ window: win, notifyReady }) => {
381
381
  const { t } = reactI18next.useTranslation("menuedit");
382
382
  const windowId = win?.id;
383
- const launcherFolders = chunk2UW42GAP_cjs.useDesktopStore((state) => state.launcherFolders);
384
- const setLauncherFolders = chunk2UW42GAP_cjs.useDesktopStore((state) => state.setLauncherFolders);
385
- const createLauncherFolder = chunk2UW42GAP_cjs.useDesktopStore((state) => state.createLauncherFolder);
386
- const updateLauncherFolder = chunk2UW42GAP_cjs.useDesktopStore((state) => state.updateLauncherFolder);
387
- const deleteLauncherFolder = chunk2UW42GAP_cjs.useDesktopStore((state) => state.deleteLauncherFolder);
388
- const removeAppFromFolder = chunk2UW42GAP_cjs.useDesktopStore((state) => state.removeAppFromFolder);
383
+ const launcherFolders = chunkV4N255NL_cjs.useDesktopStore((state) => state.launcherFolders);
384
+ const setLauncherFolders = chunkV4N255NL_cjs.useDesktopStore((state) => state.setLauncherFolders);
385
+ const createLauncherFolder = chunkV4N255NL_cjs.useDesktopStore((state) => state.createLauncherFolder);
386
+ const updateLauncherFolder = chunkV4N255NL_cjs.useDesktopStore((state) => state.updateLauncherFolder);
387
+ const deleteLauncherFolder = chunkV4N255NL_cjs.useDesktopStore((state) => state.deleteLauncherFolder);
388
+ const removeAppFromFolder = chunkV4N255NL_cjs.useDesktopStore((state) => state.removeAppFromFolder);
389
389
  const [editingFolderId, setEditingFolderId] = react.useState(null);
390
390
  const [editingName, setEditingName] = react.useState("");
391
391
  const initializedRef = react.useRef(false);
@@ -424,7 +424,7 @@ var MenuEditAppContent = ({ window: win, notifyReady }) => {
424
424
  const snapshot = chunkFX2TPX3L_cjs.useMenuEditStore.getState().getSnapshot(windowId);
425
425
  return JSON.stringify(launcherFolders) !== JSON.stringify(snapshot ?? []);
426
426
  }, [windowId, launcherFolders]);
427
- chunk7FGL7HGS_cjs.useCloseInterceptor({
427
+ chunkWXSTSC3D_cjs.useCloseInterceptor({
428
428
  isDirtyGetter,
429
429
  windowId: win?.id,
430
430
  onDiscard: revertToSnapshot,
@@ -514,8 +514,8 @@ var MenuEditAppContent = ({ window: win, notifyReady }) => {
514
514
  ] }) });
515
515
  };
516
516
  var MenuEditApp = (props) => {
517
- const addAppToFolder = chunk2UW42GAP_cjs.useDesktopStore((state) => state.addAppToFolder);
518
- const removeAppFromFolder = chunk2UW42GAP_cjs.useDesktopStore((state) => state.removeAppFromFolder);
517
+ const addAppToFolder = chunkV4N255NL_cjs.useDesktopStore((state) => state.addAppToFolder);
518
+ const removeAppFromFolder = chunkV4N255NL_cjs.useDesktopStore((state) => state.removeAppFromFolder);
519
519
  const handleDrop = react.useCallback(
520
520
  (item, target) => {
521
521
  if (item.type !== "app") return;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk2UW42GAP_cjs = require('./chunk-2UW42GAP.cjs');
3
+ var chunkV4N255NL_cjs = require('./chunk-V4N255NL.cjs');
4
4
  var chunk7Y7HB7FB_cjs = require('./chunk-7Y7HB7FB.cjs');
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
 
@@ -11,7 +11,7 @@ var AppIcon = ({ fcIcon, fallback, iconUrl, size = 20, color }) => {
11
11
  const fiElement = chunk7Y7HB7FB_cjs.useFiIconElement(isFiIcon ? fcIcon ?? "" : "", { size, color });
12
12
  const vscElement = chunk7Y7HB7FB_cjs.useVscIconElement(isVscIcon ? fcIcon ?? "" : "", { size });
13
13
  if (iconUrl) {
14
- const resolvedIconUrl = chunk2UW42GAP_cjs.resolveUrl(iconUrl);
14
+ const resolvedIconUrl = chunkV4N255NL_cjs.resolveUrl(iconUrl);
15
15
  return /* @__PURE__ */ jsxRuntime.jsx(
16
16
  "img",
17
17
  {
@@ -1,4 +1,4 @@
1
- import { useDesktopStore } from './chunk-W2Y22XR6.js';
1
+ import { useDesktopStore } from './chunk-5QFZW6HW.js';
2
2
  import { create } from 'zustand';
3
3
  import { useRef, useEffect, useCallback } from 'react';
4
4
 
@@ -2,13 +2,13 @@
2
2
 
3
3
  var chunkLMJE6V4N_cjs = require('./chunk-LMJE6V4N.cjs');
4
4
  var chunkYP2PLNOF_cjs = require('./chunk-YP2PLNOF.cjs');
5
- var chunk7HQ6KUIO_cjs = require('./chunk-7HQ6KUIO.cjs');
5
+ var chunkUKYESVDS_cjs = require('./chunk-UKYESVDS.cjs');
6
6
  var chunkZX3EDZ5C_cjs = require('./chunk-ZX3EDZ5C.cjs');
7
- var chunkI5MJXFYW_cjs = require('./chunk-I5MJXFYW.cjs');
8
- var chunk7FGL7HGS_cjs = require('./chunk-7FGL7HGS.cjs');
7
+ var chunkDFYDUXWP_cjs = require('./chunk-DFYDUXWP.cjs');
8
+ var chunkWXSTSC3D_cjs = require('./chunk-WXSTSC3D.cjs');
9
9
  var chunk2PSTHGTD_cjs = require('./chunk-2PSTHGTD.cjs');
10
- var chunkYOHBUOZJ_cjs = require('./chunk-YOHBUOZJ.cjs');
11
- var chunk2UW42GAP_cjs = require('./chunk-2UW42GAP.cjs');
10
+ var chunkGPXNLTPI_cjs = require('./chunk-GPXNLTPI.cjs');
11
+ var chunkV4N255NL_cjs = require('./chunk-V4N255NL.cjs');
12
12
  var chunkZ5YGWL65_cjs = require('./chunk-Z5YGWL65.cjs');
13
13
  var chunkE55VXNLK_cjs = require('./chunk-E55VXNLK.cjs');
14
14
  var React5 = require('react');
@@ -267,7 +267,7 @@ var WallpaperSettings = () => {
267
267
  const [urlInput, setUrlInput] = React5.useState("");
268
268
  const [pickerOpen, setPickerOpen] = React5.useState(false);
269
269
  const fileInputRef = React5.useRef(null);
270
- const resolvedWallpaper = chunk7HQ6KUIO_cjs.useResolvedUrl(wallpaper ?? void 0);
270
+ const resolvedWallpaper = chunkUKYESVDS_cjs.useResolvedUrl(wallpaper ?? void 0);
271
271
  const previewSrc = resolvedWallpaper ?? defaultWallpaperSrc;
272
272
  const handleFileChange = React5.useCallback(
273
273
  (e) => {
@@ -348,7 +348,7 @@ var WallpaperSettings = () => {
348
348
  /* @__PURE__ */ jsxRuntime.jsx(chunkE55VXNLK_cjs.Button, { onClick: handleUrlApply, disabled: !urlInput.trim(), children: t("common:actions.apply") })
349
349
  ] }),
350
350
  /* @__PURE__ */ jsxRuntime.jsx(
351
- chunkYOHBUOZJ_cjs.FilePickerModal,
351
+ chunkGPXNLTPI_cjs.FilePickerModal,
352
352
  {
353
353
  opened: pickerOpen,
354
354
  acceptedMimeTypes: ["image/*"],
@@ -528,7 +528,7 @@ var LauncherSettings = () => {
528
528
  alignItems: "center",
529
529
  justifyContent: "center"
530
530
  },
531
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkI5MJXFYW_cjs.AppIcon_default, { fcIcon: name, size: 24 })
531
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkDFYDUXWP_cjs.AppIcon_default, { fcIcon: name, size: 24 })
532
532
  }
533
533
  ) }, name)) }) })
534
534
  ] });
@@ -2111,7 +2111,7 @@ var SettingsApp = ({ window: window2, notifyReady }) => {
2111
2111
  const { t } = reactI18next.useTranslation("settings");
2112
2112
  const [activeSectionId, setActiveSectionId] = React5.useState(null);
2113
2113
  const [isDirty, setIsDirty] = React5.useState(false);
2114
- const windows = chunk2UW42GAP_cjs.useDesktopStore((state) => state.windows);
2114
+ const windows = chunkV4N255NL_cjs.useDesktopStore((state) => state.windows);
2115
2115
  const windowId = window2?.id ?? windows.find((w) => w.content === "settings")?.id;
2116
2116
  const wallpaper = useSettingsStore((state) => state.wallpaper);
2117
2117
  const wallpaperModule = useSettingsStore((state) => state.wallpaperModule);
@@ -2233,7 +2233,7 @@ var SettingsApp = ({ window: window2, notifyReady }) => {
2233
2233
  };
2234
2234
  return JSON.stringify(current) !== JSON.stringify(snapshotRef.current);
2235
2235
  }, []);
2236
- chunk7FGL7HGS_cjs.useCloseInterceptor({
2236
+ chunkWXSTSC3D_cjs.useCloseInterceptor({
2237
2237
  isDirtyGetter,
2238
2238
  windowId,
2239
2239
  onDiscard: revertToSnapshot,
@@ -2261,7 +2261,7 @@ var SettingsApp = ({ window: window2, notifyReady }) => {
2261
2261
  "aria-label": "All Settings",
2262
2262
  "aria-current": activeSectionId === null ? "page" : void 0,
2263
2263
  children: [
2264
- /* @__PURE__ */ jsxRuntime.jsx(chunkI5MJXFYW_cjs.AppIcon_default, { fcIcon: "FcList", size: 16 }),
2264
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDFYDUXWP_cjs.AppIcon_default, { fcIcon: "FcList", size: 16 }),
2265
2265
  /* @__PURE__ */ jsxRuntime.jsx(chunkE55VXNLK_cjs.Text, { size: "xs", ml: 6, truncate: true, children: t("all") })
2266
2266
  ]
2267
2267
  }
@@ -2275,7 +2275,7 @@ var SettingsApp = ({ window: window2, notifyReady }) => {
2275
2275
  "aria-label": section.label,
2276
2276
  "aria-current": activeSectionId === section.id ? "page" : void 0,
2277
2277
  children: [
2278
- /* @__PURE__ */ jsxRuntime.jsx(chunkI5MJXFYW_cjs.AppIcon_default, { fcIcon: section.fcIcon, size: 16 }),
2278
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDFYDUXWP_cjs.AppIcon_default, { fcIcon: section.fcIcon, size: 16 }),
2279
2279
  /* @__PURE__ */ jsxRuntime.jsx(chunkE55VXNLK_cjs.Text, { size: "xs", ml: 6, truncate: true, children: t(`sections.${section.id}.label`) })
2280
2280
  ]
2281
2281
  },
@@ -2296,7 +2296,7 @@ var SettingsApp = ({ window: window2, notifyReady }) => {
2296
2296
  role: "button",
2297
2297
  "aria-label": `Open ${section.label} settings`,
2298
2298
  children: /* @__PURE__ */ jsxRuntime.jsxs(chunkE55VXNLK_cjs.Stack, { gap: 6, align: "flex-start", children: [
2299
- /* @__PURE__ */ jsxRuntime.jsx(chunkI5MJXFYW_cjs.AppIcon_default, { fcIcon: section.fcIcon, size: 28 }),
2299
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDFYDUXWP_cjs.AppIcon_default, { fcIcon: section.fcIcon, size: 28 }),
2300
2300
  /* @__PURE__ */ jsxRuntime.jsx(chunkE55VXNLK_cjs.Text, { size: "sm", fw: 500, children: t(`sections.${section.id}.label`) }),
2301
2301
  /* @__PURE__ */ jsxRuntime.jsx(chunkE55VXNLK_cjs.Text, { size: "xs", c: "dimmed", children: t(`sections.${section.id}.description`) })
2302
2302
  ] })
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkABIAPZ6S_cjs = require('./chunk-ABIAPZ6S.cjs');
4
- var chunk2UW42GAP_cjs = require('./chunk-2UW42GAP.cjs');
4
+ var chunkV4N255NL_cjs = require('./chunk-V4N255NL.cjs');
5
5
  var chunkE55VXNLK_cjs = require('./chunk-E55VXNLK.cjs');
6
6
  var react = require('react');
7
7
  var reactI18next = require('react-i18next');
@@ -145,7 +145,7 @@ var FolderGridComponent = ({
145
145
  if (currentFolderNodes.length === 0) {
146
146
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: FilePickerApp_default.empty, children: /* @__PURE__ */ jsxRuntime.jsx(chunkE55VXNLK_cjs.Text, { size: "sm", c: "dimmed", children: t("common:messages.noSubfolders") }) });
147
147
  }
148
- const sortedNodes = chunk2UW42GAP_cjs.sortNodes(currentFolderNodes);
148
+ const sortedNodes = chunkV4N255NL_cjs.sortNodes(currentFolderNodes);
149
149
  return /* @__PURE__ */ jsxRuntime.jsx(
150
150
  "div",
151
151
  {
@@ -175,7 +175,7 @@ var FolderGridComponent = ({
175
175
  var FolderGrid = react.memo(FolderGridComponent);
176
176
  var FilePickerApp = ({ acceptedMimeTypes, onConfirm, onCancel }) => {
177
177
  const { t } = reactI18next.useTranslation("window");
178
- const fsNodes = chunk2UW42GAP_cjs.useDesktopStore((state) => state.fsNodes);
178
+ const fsNodes = chunkV4N255NL_cjs.useDesktopStore((state) => state.fsNodes);
179
179
  const [currentFolderId, setCurrentFolderId] = react.useState(null);
180
180
  const [selectedNode, setSelectedNode] = react.useState(null);
181
181
  const currentNodes = currentFolderId === null ? fsNodes.filter((n) => n.parentId === null) : fsNodes.filter((n) => n.parentId === currentFolderId);
@@ -230,7 +230,7 @@ var FilePickerApp = ({ acceptedMimeTypes, onConfirm, onCancel }) => {
230
230
  className: FilePickerApp_default.grid,
231
231
  role: "listbox",
232
232
  "aria-label": t("fileDialog.filesAria", { ns: "common" }),
233
- children: chunk2UW42GAP_cjs.sortNodes(visibleNodes).map((node) => {
233
+ children: chunkV4N255NL_cjs.sortNodes(visibleNodes).map((node) => {
234
234
  const isSelected = selectedNode?.id === node.id;
235
235
  return /* @__PURE__ */ jsxRuntime.jsxs(
236
236
  chunkE55VXNLK_cjs.UnstyledButton,
@@ -299,7 +299,7 @@ var FileSaveApp = ({
299
299
  onCancel
300
300
  }) => {
301
301
  const { t } = reactI18next.useTranslation("window");
302
- const fsNodes = chunk2UW42GAP_cjs.useDesktopStore((state) => state.fsNodes);
302
+ const fsNodes = chunkV4N255NL_cjs.useDesktopStore((state) => state.fsNodes);
303
303
  const [currentFolderId, setCurrentFolderId] = react.useState(null);
304
304
  const [fileName, setFileName] = react.useState(initialName);
305
305
  const handleNavigate = react.useCallback((id) => {
@@ -384,7 +384,7 @@ var FileSaveModal = ({ opened, ...saveProps }) => {
384
384
  };
385
385
  var FolderPickerApp = ({ onConfirm, onCancel }) => {
386
386
  const { t } = reactI18next.useTranslation("window");
387
- const fsNodes = chunk2UW42GAP_cjs.useDesktopStore((state) => state.fsNodes);
387
+ const fsNodes = chunkV4N255NL_cjs.useDesktopStore((state) => state.fsNodes);
388
388
  const [currentFolderId, setCurrentFolderId] = react.useState(null);
389
389
  const handleNavigate = react.useCallback((id) => {
390
390
  setCurrentFolderId(id);
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkBQCD5RAF_cjs = require('./chunk-BQCD5RAF.cjs');
4
- var chunk7HQ6KUIO_cjs = require('./chunk-7HQ6KUIO.cjs');
5
- var chunkYOHBUOZJ_cjs = require('./chunk-YOHBUOZJ.cjs');
4
+ var chunkUKYESVDS_cjs = require('./chunk-UKYESVDS.cjs');
5
+ var chunkGPXNLTPI_cjs = require('./chunk-GPXNLTPI.cjs');
6
6
  var react = require('react');
7
7
  var reactI18next = require('react-i18next');
8
8
  var jsxRuntime = require('react/jsx-runtime');
@@ -15,7 +15,7 @@ var PdfApp = ({ window, notifyReady }) => {
15
15
  const initialSrc = win?.contentData?.src;
16
16
  const [src, setSrc] = react.useState(initialSrc ?? void 0);
17
17
  const [pickerOpen, setPickerOpen] = react.useState(false);
18
- const resolvedSrc = chunk7HQ6KUIO_cjs.useResolvedUrl(src);
18
+ const resolvedSrc = chunkUKYESVDS_cjs.useResolvedUrl(src);
19
19
  react.useEffect(() => {
20
20
  notifyReady?.({ ...win?.contentData ?? {}, setPickerOpen: () => setPickerOpen(true) });
21
21
  }, [win, notifyReady]);
@@ -34,7 +34,7 @@ var PdfApp = ({ window, notifyReady }) => {
34
34
  }
35
35
  ) : /* @__PURE__ */ jsxRuntime.jsx(chunkBQCD5RAF_cjs.AppEmptyState_default, { label: t("pdf.noFile", { defaultValue: "No PDF loaded" }) }),
36
36
  /* @__PURE__ */ jsxRuntime.jsx(
37
- chunkYOHBUOZJ_cjs.FilePickerModal,
37
+ chunkGPXNLTPI_cjs.FilePickerModal,
38
38
  {
39
39
  opened: pickerOpen,
40
40
  acceptedMimeTypes: ["application/pdf"],
@@ -1,8 +1,8 @@
1
1
  import { useImageViewerStore } from './chunk-DWP2SYF7.js';
2
2
  import { AppEmptyState_default } from './chunk-ZHNDXNL4.js';
3
- import { useResolvedUrl } from './chunk-FNWS4ZKT.js';
4
- import { FilePickerModal } from './chunk-2MYZWMDC.js';
5
- import { IMAGE_MIME_TYPES } from './chunk-W2Y22XR6.js';
3
+ import { useResolvedUrl } from './chunk-UA6XSTW6.js';
4
+ import { FilePickerModal } from './chunk-MCHPDWVH.js';
5
+ import { IMAGE_MIME_TYPES } from './chunk-5QFZW6HW.js';
6
6
  import { useState, useRef, useEffect, useCallback } from 'react';
7
7
  import { useTranslation } from 'react-i18next';
8
8
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkDEVJOHGE_cjs = require('./chunk-DEVJOHGE.cjs');
4
- var chunk2UW42GAP_cjs = require('./chunk-2UW42GAP.cjs');
3
+ var chunk4QHX7CMN_cjs = require('./chunk-4QHX7CMN.cjs');
4
+ var chunkV4N255NL_cjs = require('./chunk-V4N255NL.cjs');
5
5
  var react = require('react');
6
6
 
7
7
  // src/constants/Animations.ts
@@ -71,16 +71,16 @@ var centerWindowPosition = (viewportWidth, viewportHeight, windowWidth, windowHe
71
71
  x: Math.round((viewportWidth - windowWidth) / 2),
72
72
  y: Math.round((viewportHeight - windowHeight) / 2)
73
73
  });
74
- var FilesAppLazy = react.lazy(() => import('./FilesApp-B7JR4PEP.cjs'));
75
- var NotesAppLazy = react.lazy(() => import('./NotesApp-BZYASRVJ.cjs'));
76
- var ImageViewerAppLazy = react.lazy(() => import('./ImageViewerApp-UIXSGW2X.cjs'));
77
- var PdfAppLazy = react.lazy(() => import('./PdfApp-3ZINDODQ.cjs'));
78
- var MenuEditAppLazy = react.lazy(() => import('./MenuEditApp-B2ZMG4ZY.cjs'));
79
- var UploaderAppLazy = react.lazy(() => import('./UploaderApp-MTRIYWV4.cjs'));
80
- var SettingsAppLazy = react.lazy(() => import('./SettingsApp-2ZNO7AVY.cjs'));
81
- var DeviceInfoAppLazy = react.lazy(() => import('./DeviceInfoApp-2MJFK32B.cjs'));
74
+ var FilesAppLazy = react.lazy(() => import('./FilesApp-QSLB5IWR.cjs'));
75
+ var NotesAppLazy = react.lazy(() => import('./NotesApp-IAEE7YHU.cjs'));
76
+ var ImageViewerAppLazy = react.lazy(() => import('./ImageViewerApp-QB373H5Z.cjs'));
77
+ var PdfAppLazy = react.lazy(() => import('./PdfApp-GZ6RHTBR.cjs'));
78
+ var MenuEditAppLazy = react.lazy(() => import('./MenuEditApp-5EFYAPFC.cjs'));
79
+ var UploaderAppLazy = react.lazy(() => import('./UploaderApp-HLXJYJZQ.cjs'));
80
+ var SettingsAppLazy = react.lazy(() => import('./SettingsApp-BPLMGPNK.cjs'));
81
+ var DeviceInfoAppLazy = react.lazy(() => import('./DeviceInfoApp-ZNLQNOKI.cjs'));
82
82
  var CalendarAppLazy = react.lazy(() => import('./CalendarApp-OTGEERSS.cjs'));
83
- var CreateItemAppLazy = react.lazy(() => import('./CreateItemApp-BSEISPUS.cjs'));
83
+ var CreateItemAppLazy = react.lazy(() => import('./CreateItemApp-RFE3REWZ.cjs'));
84
84
  var NotesMenuBarLazy = react.lazy(
85
85
  () => import('./NotesMenuBar-25LKN3SE.cjs').then((m) => ({ default: m.NotesMenuBar }))
86
86
  );
@@ -235,14 +235,14 @@ function initCoreRegistry() {
235
235
 
236
236
  // src/hooks/useOpenApp.ts
237
237
  var useOpenApp = () => {
238
- const openWindow = chunk2UW42GAP_cjs.useDesktopStore((state) => state.openWindow);
239
- const focusWindow = chunk2UW42GAP_cjs.useDesktopStore((state) => state.focusWindow);
240
- const windows = chunk2UW42GAP_cjs.useDesktopStore((state) => state.windows);
241
- const customApps = chunk2UW42GAP_cjs.useDesktopStore((state) => state.customApps);
242
- const adaptiveDimensions = chunkDEVJOHGE_cjs.useAdaptiveDimensions();
238
+ const openWindow = chunkV4N255NL_cjs.useDesktopStore((state) => state.openWindow);
239
+ const focusWindow = chunkV4N255NL_cjs.useDesktopStore((state) => state.focusWindow);
240
+ const windows = chunkV4N255NL_cjs.useDesktopStore((state) => state.windows);
241
+ const customApps = chunkV4N255NL_cjs.useDesktopStore((state) => state.customApps);
242
+ const adaptiveDimensions = chunk4QHX7CMN_cjs.useAdaptiveDimensions();
243
243
  return react.useCallback(
244
244
  (appId, { contentData, position } = {}) => {
245
- const app = chunk2UW42GAP_cjs.APPS.find((a) => a.id === appId);
245
+ const app = chunkV4N255NL_cjs.APPS.find((a) => a.id === appId);
246
246
  const customApp = customApps.find((a) => a.id === appId);
247
247
  const registryEntry = getRegistryEntry(appId);
248
248
  const isSingleWindow = app?.singleWindow === true || customApp?.window?.singleWindow === true || registryEntry?.singleWindow === true;
@@ -1,5 +1,5 @@
1
1
  import { FileIcon_default } from './chunk-EAELL43F.js';
2
- import { sortNodes, useDesktopStore } from './chunk-W2Y22XR6.js';
2
+ import { sortNodes, useDesktopStore } from './chunk-5QFZW6HW.js';
3
3
  import { Breadcrumbs, Text, Anchor, UnstyledButton, Group, Button, TextInput } from './chunk-BQL3YXMV.js';
4
4
  import { memo, useState, useCallback } from 'react';
5
5
  import { useTranslation } from 'react-i18next';
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkDEVJOHGE_cjs = require('./chunk-DEVJOHGE.cjs');
4
- var chunk2UW42GAP_cjs = require('./chunk-2UW42GAP.cjs');
3
+ var chunk4QHX7CMN_cjs = require('./chunk-4QHX7CMN.cjs');
4
+ var chunkV4N255NL_cjs = require('./chunk-V4N255NL.cjs');
5
5
  var chunkZ5YGWL65_cjs = require('./chunk-Z5YGWL65.cjs');
6
6
  var chunkE55VXNLK_cjs = require('./chunk-E55VXNLK.cjs');
7
7
  var react = require('react');
@@ -10,15 +10,15 @@ var jsxRuntime = require('react/jsx-runtime');
10
10
  var getIsMobile = () => {
11
11
  const width = window.innerWidth;
12
12
  const isCoarsePointer = window.matchMedia("(pointer: coarse)").matches;
13
- return width < chunk2UW42GAP_cjs.BREAKPOINTS.MOBILE || isCoarsePointer;
13
+ return width < chunkV4N255NL_cjs.BREAKPOINTS.MOBILE || isCoarsePointer;
14
14
  };
15
15
  var getIsTablet = () => {
16
16
  const width = window.innerWidth;
17
- return width >= chunk2UW42GAP_cjs.BREAKPOINTS.MOBILE && width < chunk2UW42GAP_cjs.BREAKPOINTS.TABLET;
17
+ return width >= chunkV4N255NL_cjs.BREAKPOINTS.MOBILE && width < chunkV4N255NL_cjs.BREAKPOINTS.TABLET;
18
18
  };
19
19
  var getIsDesktop = () => {
20
20
  const width = window.innerWidth;
21
- return width >= chunk2UW42GAP_cjs.BREAKPOINTS.TABLET;
21
+ return width >= chunkV4N255NL_cjs.BREAKPOINTS.TABLET;
22
22
  };
23
23
  var getIsPortrait = () => {
24
24
  if (screen.orientation) {
@@ -64,10 +64,10 @@ function useDeviceDetection() {
64
64
  var DeviceInfoApp_default = {};
65
65
  var DeviceInfoApp = ({ window: win, notifyReady }) => {
66
66
  const device = useDeviceDetection();
67
- const dimensions = chunkDEVJOHGE_cjs.useAdaptiveDimensions();
68
- const viewportWidth = chunk2UW42GAP_cjs.useDesktopStore((state) => state.viewportWidth);
69
- const viewportHeight = chunk2UW42GAP_cjs.useDesktopStore((state) => state.viewportHeight);
70
- const setViewportSize = chunk2UW42GAP_cjs.useDesktopStore((state) => state.setViewportSize);
67
+ const dimensions = chunk4QHX7CMN_cjs.useAdaptiveDimensions();
68
+ const viewportWidth = chunkV4N255NL_cjs.useDesktopStore((state) => state.viewportWidth);
69
+ const viewportHeight = chunkV4N255NL_cjs.useDesktopStore((state) => state.viewportHeight);
70
+ const setViewportSize = chunkV4N255NL_cjs.useDesktopStore((state) => state.setViewportSize);
71
71
  react.useEffect(() => {
72
72
  notifyReady?.({});
73
73
  }, [notifyReady]);
@@ -1,8 +1,8 @@
1
1
  import { useMenuEditStore } from './chunk-D5MVFFID.js';
2
2
  import { VscIcon_default } from './chunk-GRYCUBJZ.js';
3
- import { AppIcon_default } from './chunk-NULEEBCG.js';
4
- import { useCloseInterceptor } from './chunk-PVBI2WRF.js';
5
- import { useDesktopStore, APPS } from './chunk-W2Y22XR6.js';
3
+ import { AppIcon_default } from './chunk-VO6KXO2I.js';
4
+ import { useCloseInterceptor } from './chunk-E5FW77FG.js';
5
+ import { useDesktopStore, APPS } from './chunk-5QFZW6HW.js';
6
6
  import { isDocker } from './chunk-FRHBM2U7.js';
7
7
  import { Box, Text, Group, ActionIcon, Card, TextInput, UnstyledButton } from './chunk-BQL3YXMV.js';
8
8
  import { createContext, useState, useCallback, useMemo, useContext, useRef, useEffect } from 'react';
@@ -1,6 +1,6 @@
1
1
  import { VscIcon_default } from './chunk-GRYCUBJZ.js';
2
2
  import { ColorPicker_default } from './chunk-EX5V2ZTU.js';
3
- import { useDesktopStore } from './chunk-W2Y22XR6.js';
3
+ import { useDesktopStore } from './chunk-5QFZW6HW.js';
4
4
  import { useVscIconElement, useFcIconElement } from './chunk-YY6OUR2U.js';
5
5
  import { SimpleGrid, Tooltip, UnstyledButton, Text, TextInput, ActionIcon, Collapse, Group, Button } from './chunk-BQL3YXMV.js';
6
6
  import { useState, useRef, useEffect } from 'react';
@@ -2,7 +2,7 @@
2
2
 
3
3
  var chunkYSOLW4FS_cjs = require('./chunk-YSOLW4FS.cjs');
4
4
  var chunkLMJE6V4N_cjs = require('./chunk-LMJE6V4N.cjs');
5
- var chunk2UW42GAP_cjs = require('./chunk-2UW42GAP.cjs');
5
+ var chunkV4N255NL_cjs = require('./chunk-V4N255NL.cjs');
6
6
  var chunk7Y7HB7FB_cjs = require('./chunk-7Y7HB7FB.cjs');
7
7
  var chunkE55VXNLK_cjs = require('./chunk-E55VXNLK.cjs');
8
8
  var react = require('react');
@@ -82,13 +82,13 @@ var CreateItemApp = ({ window }) => {
82
82
  win?.contentData?.iconPickerOpen ?? false
83
83
  );
84
84
  const rootRef = react.useRef(null);
85
- const closeWindow = chunk2UW42GAP_cjs.useDesktopStore((state) => state.closeWindow);
86
- const resizeWindow = chunk2UW42GAP_cjs.useDesktopStore((state) => state.resizeWindow);
87
- const createFile = chunk2UW42GAP_cjs.useDesktopStore((state) => state.createFile);
88
- const createFolder = chunk2UW42GAP_cjs.useDesktopStore((state) => state.createFolder);
89
- const addNotification = chunk2UW42GAP_cjs.useDesktopStore((state) => state.addNotification);
90
- const fsNodes = chunk2UW42GAP_cjs.useDesktopStore((state) => state.fsNodes);
91
- const windowWidth = chunk2UW42GAP_cjs.useDesktopStore(
85
+ const closeWindow = chunkV4N255NL_cjs.useDesktopStore((state) => state.closeWindow);
86
+ const resizeWindow = chunkV4N255NL_cjs.useDesktopStore((state) => state.resizeWindow);
87
+ const createFile = chunkV4N255NL_cjs.useDesktopStore((state) => state.createFile);
88
+ const createFolder = chunkV4N255NL_cjs.useDesktopStore((state) => state.createFolder);
89
+ const addNotification = chunkV4N255NL_cjs.useDesktopStore((state) => state.addNotification);
90
+ const fsNodes = chunkV4N255NL_cjs.useDesktopStore((state) => state.fsNodes);
91
+ const windowWidth = chunkV4N255NL_cjs.useDesktopStore(
92
92
  (state) => state.windows.find((w) => w.id === win?.id)?.width ?? 400
93
93
  );
94
94
  const duplicateName = fsNodes.some(
@@ -1,7 +1,7 @@
1
- import { useOpenApp } from './chunk-KGMXUBWQ.js';
1
+ import { useOpenApp } from './chunk-YGYOLDKR.js';
2
2
  import { DownloadProgress_default } from './chunk-HWHBSAUC.js';
3
- import { FolderPickerModal } from './chunk-2MYZWMDC.js';
4
- import { useDesktopStore, fileSystem, getAppIdForMime } from './chunk-W2Y22XR6.js';
3
+ import { FolderPickerModal } from './chunk-MCHPDWVH.js';
4
+ import { useDesktopStore, fileSystem, getAppIdForMime } from './chunk-5QFZW6HW.js';
5
5
  import { useFcIconElement } from './chunk-YY6OUR2U.js';
6
6
  import { Paper, Box, Text, Group, Button, Stepper, FileButton } from './chunk-BQL3YXMV.js';
7
7
  import { useState, useCallback } from 'react';
@@ -2,16 +2,16 @@
2
2
 
3
3
  var chunkUIQCTAVM_cjs = require('./chunk-UIQCTAVM.cjs');
4
4
  var chunkBQCD5RAF_cjs = require('./chunk-BQCD5RAF.cjs');
5
- var chunk7HQ6KUIO_cjs = require('./chunk-7HQ6KUIO.cjs');
6
- var chunkYOHBUOZJ_cjs = require('./chunk-YOHBUOZJ.cjs');
7
- var chunk2UW42GAP_cjs = require('./chunk-2UW42GAP.cjs');
5
+ var chunkUKYESVDS_cjs = require('./chunk-UKYESVDS.cjs');
6
+ var chunkGPXNLTPI_cjs = require('./chunk-GPXNLTPI.cjs');
7
+ var chunkV4N255NL_cjs = require('./chunk-V4N255NL.cjs');
8
8
  var react = require('react');
9
9
  var reactI18next = require('react-i18next');
10
10
  var jsxRuntime = require('react/jsx-runtime');
11
11
 
12
12
  // src/components/Apps/ImageViewerApp/ImageViewerApp.module.css
13
13
  var ImageViewerApp_default = {};
14
- var ACCEPTED_IMAGE_TYPES = [...chunk2UW42GAP_cjs.IMAGE_MIME_TYPES, "image/*"];
14
+ var ACCEPTED_IMAGE_TYPES = [...chunkV4N255NL_cjs.IMAGE_MIME_TYPES, "image/*"];
15
15
  var ImageViewerApp = ({ window, notifyReady }) => {
16
16
  const { t } = reactI18next.useTranslation("apps");
17
17
  const win = window;
@@ -25,7 +25,7 @@ var ImageViewerApp = ({ window, notifyReady }) => {
25
25
  const fitToWindow = chunkUIQCTAVM_cjs.useImageViewerStore((s) => s.getFitToWindow(windowId));
26
26
  const updateCalculatedZoom = chunkUIQCTAVM_cjs.useImageViewerStore((s) => s.updateCalculatedZoom);
27
27
  const reset = chunkUIQCTAVM_cjs.useImageViewerStore((s) => s.reset);
28
- const resolvedSrc = chunk7HQ6KUIO_cjs.useResolvedUrl(src);
28
+ const resolvedSrc = chunkUKYESVDS_cjs.useResolvedUrl(src);
29
29
  react.useEffect(() => {
30
30
  reset(windowId);
31
31
  }, [windowId, reset]);
@@ -73,7 +73,7 @@ var ImageViewerApp = ({ window, notifyReady }) => {
73
73
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: containerRef, className: ImageViewerApp_default.container, "data-windowid": win?.id, children: [
74
74
  content,
75
75
  /* @__PURE__ */ jsxRuntime.jsx(
76
- chunkYOHBUOZJ_cjs.FilePickerModal,
76
+ chunkGPXNLTPI_cjs.FilePickerModal,
77
77
  {
78
78
  opened: pickerOpen,
79
79
  acceptedMimeTypes: ACCEPTED_IMAGE_TYPES,
@@ -1,4 +1,4 @@
1
- import { fileSystem, getBaseUrl } from './chunk-W2Y22XR6.js';
1
+ import { fileSystem, getBaseUrl } from './chunk-5QFZW6HW.js';
2
2
  import { isDocker } from './chunk-FRHBM2U7.js';
3
3
  import { useMemo, useState, useRef, useEffect } from 'react';
4
4
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk2UW42GAP_cjs = require('./chunk-2UW42GAP.cjs');
3
+ var chunkV4N255NL_cjs = require('./chunk-V4N255NL.cjs');
4
4
  var chunkZ5YGWL65_cjs = require('./chunk-Z5YGWL65.cjs');
5
5
  var react = require('react');
6
6
 
@@ -15,7 +15,7 @@ function useResolvedUrl(url) {
15
15
  react.useEffect(() => {
16
16
  if (!url || !needsBlobResolution) return;
17
17
  let cancelled = false;
18
- chunk2UW42GAP_cjs.fileSystem.toBlobUrl(url).then((result) => {
18
+ chunkV4N255NL_cjs.fileSystem.toBlobUrl(url).then((result) => {
19
19
  if (cancelled) {
20
20
  if (result) URL.revokeObjectURL(result);
21
21
  return;
@@ -40,7 +40,7 @@ function useResolvedUrl(url) {
40
40
  if (url.startsWith("/") || url.startsWith("http://") || url.startsWith("https://")) {
41
41
  return url;
42
42
  }
43
- const base = chunk2UW42GAP_cjs.getBaseUrl();
43
+ const base = chunkV4N255NL_cjs.getBaseUrl();
44
44
  const normalizedBase = base.endsWith("/") ? base : `${base}/`;
45
45
  return `${normalizedBase}${url}`;
46
46
  }
@@ -1589,7 +1589,8 @@ var DEFAULT_VIEWPORT_WIDTH = DEFAULT_VIEWPORT.WIDTH;
1589
1589
  var DEFAULT_VIEWPORT_HEIGHT = DEFAULT_VIEWPORT.HEIGHT;
1590
1590
  var fetchFsManifest = async () => {
1591
1591
  const response = await fetch(resolveUrl("fs-manifest.json"));
1592
- return response.ok ? await response.json() : null;
1592
+ const isJson = response.headers.get("content-type")?.includes("application/json");
1593
+ return response.ok && isJson ? await response.json() : null;
1593
1594
  };
1594
1595
  var windowManager = new WindowManagerAdapter();
1595
1596
  function createFileSystemAdapter() {
@@ -1,4 +1,4 @@
1
- import { resolveUrl } from './chunk-W2Y22XR6.js';
1
+ import { resolveUrl } from './chunk-5QFZW6HW.js';
2
2
  import { useFcIconElement, useFiIconElement, useVscIconElement } from './chunk-YY6OUR2U.js';
3
3
  import { jsx } from 'react/jsx-runtime';
4
4
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk2UW42GAP_cjs = require('./chunk-2UW42GAP.cjs');
3
+ var chunkV4N255NL_cjs = require('./chunk-V4N255NL.cjs');
4
4
  var zustand = require('zustand');
5
5
  var react = require('react');
6
6
 
@@ -33,8 +33,8 @@ function useCloseInterceptor({
33
33
  onDiscard,
34
34
  onSave
35
35
  }) {
36
- const windows = chunk2UW42GAP_cjs.useDesktopStore((state) => state.windows);
37
- const closeWindow = chunk2UW42GAP_cjs.useDesktopStore((state) => state.closeWindow);
36
+ const windows = chunkV4N255NL_cjs.useDesktopStore((state) => state.windows);
37
+ const closeWindow = chunkV4N255NL_cjs.useDesktopStore((state) => state.closeWindow);
38
38
  const openModal = useCloseModalStore((state) => state.openModal);
39
39
  const activeWindowId = windowId ?? windows.find((w) => w.isOpen)?.id;
40
40
  const isDirtyGetterRef = react.useRef(isDirtyGetter);
@@ -1,6 +1,6 @@
1
1
  import { AppEmptyState_default } from './chunk-ZHNDXNL4.js';
2
- import { useResolvedUrl } from './chunk-FNWS4ZKT.js';
3
- import { FilePickerModal } from './chunk-2MYZWMDC.js';
2
+ import { useResolvedUrl } from './chunk-UA6XSTW6.js';
3
+ import { FilePickerModal } from './chunk-MCHPDWVH.js';
4
4
  import { useState, useEffect, useCallback } from 'react';
5
5
  import { useTranslation } from 'react-i18next';
6
6
  import { jsxs, jsx } from 'react/jsx-runtime';