react-os-shell 3.0.0 → 3.1.0
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.
- package/dist/{Browser-3SDJFEZW.js → Browser-FO63XIQV.js} +4 -4
- package/dist/{Browser-3SDJFEZW.js.map → Browser-FO63XIQV.js.map} +1 -1
- package/dist/{Documents-HCHGAFPB.js → Documents-4JRA364C.js} +3 -3
- package/dist/{Documents-HCHGAFPB.js.map → Documents-4JRA364C.js.map} +1 -1
- package/dist/Files-SPOMBGBL.js +12 -0
- package/dist/{Files-FYWUNLBY.js.map → Files-SPOMBGBL.js.map} +1 -1
- package/dist/{Notepad-WRS7EMCK.js → Notepad-WSPYRQ4K.js} +3 -3
- package/dist/{Notepad-WRS7EMCK.js.map → Notepad-WSPYRQ4K.js.map} +1 -1
- package/dist/Preview-3RGNW6LO.js +8 -0
- package/dist/{Preview-HOLQVFSU.js.map → Preview-3RGNW6LO.js.map} +1 -1
- package/dist/{Spreadsheet-MRUQ4LJR.js → Spreadsheet-J2PF7T5E.js} +4 -4
- package/dist/{Spreadsheet-MRUQ4LJR.js.map → Spreadsheet-J2PF7T5E.js.map} +1 -1
- package/dist/apps/index.js +12 -12
- package/dist/{chunk-XRCABX52.js → chunk-BCU7WB26.js} +3 -3
- package/dist/{chunk-XRCABX52.js.map → chunk-BCU7WB26.js.map} +1 -1
- package/dist/{chunk-SKNOGIDC.js → chunk-EJT5XFIO.js} +3 -3
- package/dist/{chunk-SKNOGIDC.js.map → chunk-EJT5XFIO.js.map} +1 -1
- package/dist/{chunk-QS2MEW6R.js → chunk-JUGAXFZR.js} +4 -4
- package/dist/{chunk-QS2MEW6R.js.map → chunk-JUGAXFZR.js.map} +1 -1
- package/dist/{chunk-X4MB43G2.js → chunk-PLYMJPLE.js} +4 -4
- package/dist/{chunk-X4MB43G2.js.map → chunk-PLYMJPLE.js.map} +1 -1
- package/dist/{chunk-D7QQTFM3.js → chunk-W3IGMW4R.js} +3 -3
- package/dist/{chunk-D7QQTFM3.js.map → chunk-W3IGMW4R.js.map} +1 -1
- package/dist/{chunk-XVCEFF6M.js → chunk-Z4AOGID4.js} +3 -3
- package/dist/{chunk-XVCEFF6M.js.map → chunk-Z4AOGID4.js.map} +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.js +39 -9
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/Files-FYWUNLBY.js +0 -12
- package/dist/Preview-HOLQVFSU.js +0 -8
package/dist/index.d.ts
CHANGED
|
@@ -884,6 +884,11 @@ interface DesktopHostConfig {
|
|
|
884
884
|
/** Desktop right-click menu items to hide (all shown by default). Pass keys
|
|
885
885
|
* here when the consumer surfaces them elsewhere — e.g. under Preferences. */
|
|
886
886
|
hiddenContextMenuItems?: DesktopContextMenuItem[];
|
|
887
|
+
/** Open the consumer's own "report a bug / suggestion" UI. When set, the
|
|
888
|
+
* desktop and taskbar right-click menus show a "Suggestion or Bug" item that
|
|
889
|
+
* calls this. Lets a consumer that files feedback natively (the shell itself
|
|
890
|
+
* dropped bug reporting in v3.0.0) surface the familiar right-click entry. */
|
|
891
|
+
onReportBug?: () => void;
|
|
887
892
|
}
|
|
888
893
|
declare function DesktopHostProvider({ value, children }: {
|
|
889
894
|
value: DesktopHostConfig;
|
package/dist/index.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { subscribePomo, getPomoSnapshot } from './chunk-6VMTAVUD.js';
|
|
2
2
|
export { setShellTodoProvider } from './chunk-6VMTAVUD.js';
|
|
3
|
-
import { PREVIEW_OPENED_EVENT, publishDesktopFolders, requestFilesTrashView, FolderGlyph, openPreviewFile, requestFilesDesktopFolderView, FileIconTile, hashGradient } from './chunk-
|
|
4
|
-
export { Breadcrumbs } from './chunk-
|
|
3
|
+
import { PREVIEW_OPENED_EVENT, publishDesktopFolders, requestFilesTrashView, FolderGlyph, openPreviewFile, requestFilesDesktopFolderView, FileIconTile, hashGradient } from './chunk-PLYMJPLE.js';
|
|
4
|
+
export { Breadcrumbs } from './chunk-PLYMJPLE.js';
|
|
5
5
|
import { SidebarLayout } from './chunk-VGTEM5RZ.js';
|
|
6
6
|
export { SidebarLayout } from './chunk-VGTEM5RZ.js';
|
|
7
7
|
import { playNotification, playStartup, soundsEnabled, getSoundConfig, SOUND_PACK_KEYS, SOUND_PACKS, SOUND_TYPES, SOUND_TYPE_LABELS, setSoundForType, previewSound, setAllSounds, playLogout } from './chunk-D7PYW2QS.js';
|
|
8
|
-
import './chunk-
|
|
8
|
+
import './chunk-EJT5XFIO.js';
|
|
9
9
|
import { toast_default } from './chunk-VENYVK3L.js';
|
|
10
10
|
export { toast_default as toast } from './chunk-VENYVK3L.js';
|
|
11
|
-
export { EditableGrid } from './chunk-
|
|
11
|
+
export { EditableGrid } from './chunk-Z4AOGID4.js';
|
|
12
12
|
import { useAuth, useShellAuth } from './chunk-ADJ3CERD.js';
|
|
13
13
|
export { ShellAuthProvider, setShellAuthBridge, useShellAuth } from './chunk-ADJ3CERD.js';
|
|
14
|
-
import { APP_VERSION } from './chunk-
|
|
15
|
-
export { VERSION } from './chunk-
|
|
14
|
+
import { APP_VERSION } from './chunk-BCU7WB26.js';
|
|
15
|
+
export { VERSION } from './chunk-BCU7WB26.js';
|
|
16
16
|
import { useWindowManager, PopupMenu, PopupMenuLabel, PopupMenuDivider, PopupMenuItem, WINDOW_REGISTRY, isPageEntry, Modal, useShellPrefs, useIsMobile, ModalActions, useModalActive, client_default, LoadingSpinner, setWindowPosition, ThumbCard, activateModal } from './chunk-6OWYD4O6.js';
|
|
17
17
|
export { CancelButton, CopyButton, DocFavStar, Modal, ModalActions, PopupMenu, PopupMenuDivider, PopupMenuItem, PopupMenuLabel, ShellPrefsProvider, WindowCrashedFallback, WindowErrorBoundary, WindowManagerProvider, WindowTitle, commitExposeHighlight, exitExposeMode, getActiveWindowRoute, getExposeHighlight, getWindowPosition, isEntityEntry, isPageEntry, registerModalEscapeInterceptor, setExposeHighlight, setShellApiClient, setShellWindowRegistry, setWindowDefaultPosition, setWindowPosition, subscribeExposeHighlight, toggleExposeMode, useLocalStoragePrefs, useModalActive, useShellPrefs, useWidgetSettings, useWindowManager, useWindowMenuItem, useWindowTitle } from './chunk-6OWYD4O6.js';
|
|
18
18
|
export { ConfirmProvider, confirm, confirmDestructive, prompt } from './chunk-UBN4IUDE.js';
|
|
@@ -2267,6 +2267,16 @@ function Desktop({ profile }) {
|
|
|
2267
2267
|
/* @__PURE__ */ jsx("svg", { className: "h-4 w-4 text-gray-400", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 1.5, children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z" }) }),
|
|
2268
2268
|
"About ",
|
|
2269
2269
|
host.productName ?? "this app"
|
|
2270
|
+
] }),
|
|
2271
|
+
host.onReportBug && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2272
|
+
/* @__PURE__ */ jsx(PopupMenuDivider, {}),
|
|
2273
|
+
/* @__PURE__ */ jsxs(PopupMenuItem, { onClick: () => {
|
|
2274
|
+
setContextMenu(null);
|
|
2275
|
+
host.onReportBug();
|
|
2276
|
+
}, children: [
|
|
2277
|
+
/* @__PURE__ */ jsx("svg", { className: "h-4 w-4 text-gray-400", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 1.5, children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z" }) }),
|
|
2278
|
+
"Suggestion or Bug"
|
|
2279
|
+
] })
|
|
2270
2280
|
] })
|
|
2271
2281
|
] }),
|
|
2272
2282
|
contextMenu && contextMenu.itemIdx != null && /* @__PURE__ */ jsxs(PopupMenu, { style: menuStyle(contextMenu.x, contextMenu.y), minWidth: 160, children: [
|
|
@@ -4010,7 +4020,7 @@ function CalendarPopup({ now, config, close }) {
|
|
|
4010
4020
|
config?.renderDay && /* @__PURE__ */ jsx("div", { className: "mt-2.5 max-h-[280px] overflow-y-auto border-t border-gray-100 pt-2", children: config.renderDay(selected, { close }) }, selected)
|
|
4011
4021
|
] });
|
|
4012
4022
|
}
|
|
4013
|
-
function TaskbarContextMenu({ x, y, position, size, onChangePosition, onChangeSize, onClose }) {
|
|
4023
|
+
function TaskbarContextMenu({ x, y, position, size, onChangePosition, onChangeSize, onClose, onReportBug }) {
|
|
4014
4024
|
const ref = useRef(null);
|
|
4015
4025
|
useClickOutside(ref, onClose);
|
|
4016
4026
|
const posStyle = position === "top" ? { left: Math.min(x, window.innerWidth - 200), top: y + 4 } : position === "left" ? { left: x + 4, top: Math.min(y, window.innerHeight - 300) } : position === "right" ? { right: window.innerWidth - x + 4, top: Math.min(y, window.innerHeight - 300) } : { left: Math.min(x, window.innerWidth - 200), bottom: window.innerHeight - y + 4 };
|
|
@@ -4044,7 +4054,25 @@ function TaskbarContextMenu({ x, y, position, size, onChangePosition, onChangeSi
|
|
|
4044
4054
|
]
|
|
4045
4055
|
},
|
|
4046
4056
|
s
|
|
4047
|
-
))
|
|
4057
|
+
)),
|
|
4058
|
+
onReportBug && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
4059
|
+
/* @__PURE__ */ jsx("div", { className: "border-t border-white/20 my-1 mx-3" }),
|
|
4060
|
+
/* @__PURE__ */ jsxs(
|
|
4061
|
+
"button",
|
|
4062
|
+
{
|
|
4063
|
+
onClick: () => {
|
|
4064
|
+
onClose();
|
|
4065
|
+
onReportBug();
|
|
4066
|
+
},
|
|
4067
|
+
className: "w-full text-left px-3 py-1.5 text-sm text-gray-700 hover:bg-blue-50 hover:text-blue-700 transition-colors rounded-lg mx-1 flex items-center gap-2",
|
|
4068
|
+
style: { width: "calc(100% - 8px)" },
|
|
4069
|
+
children: [
|
|
4070
|
+
/* @__PURE__ */ jsx("svg", { className: "h-3.5 w-3.5 text-gray-400 shrink-0", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 1.5, children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z" }) }),
|
|
4071
|
+
"Suggestion or Bug"
|
|
4072
|
+
]
|
|
4073
|
+
}
|
|
4074
|
+
)
|
|
4075
|
+
] })
|
|
4048
4076
|
] });
|
|
4049
4077
|
}
|
|
4050
4078
|
function TaskbarFavorites({ favorites, vertical, taskbarPosition, navSections: navSections2, navIcons: navIcons2, onOpen, onToggleFavorite }) {
|
|
@@ -4126,6 +4154,7 @@ function Layout({
|
|
|
4126
4154
|
taskbarTrayLeft,
|
|
4127
4155
|
clockCalendar
|
|
4128
4156
|
} = {}) {
|
|
4157
|
+
const host = useDesktopHost();
|
|
4129
4158
|
const { user, logout, hasAnyPerm } = useAuth();
|
|
4130
4159
|
const { openPage, openEntity, openWindows } = useWindowManager();
|
|
4131
4160
|
const [menuOpen, setMenuOpen] = useState(false);
|
|
@@ -4493,7 +4522,8 @@ function Layout({
|
|
|
4493
4522
|
savePref("taskbar_size", v);
|
|
4494
4523
|
setTaskbarMenu(null);
|
|
4495
4524
|
},
|
|
4496
|
-
onClose: () => setTaskbarMenu(null)
|
|
4525
|
+
onClose: () => setTaskbarMenu(null),
|
|
4526
|
+
onReportBug: host.onReportBug
|
|
4497
4527
|
}
|
|
4498
4528
|
),
|
|
4499
4529
|
/* @__PURE__ */ jsx(GlobalSearch, { ...search }),
|