react-os-shell 0.2.26 → 0.2.30

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 (42) hide show
  1. package/dist/{Browser-RJZLTAJQ.js → Browser-5ZCLRIRU.js} +3 -3
  2. package/dist/{Browser-RJZLTAJQ.js.map → Browser-5ZCLRIRU.js.map} +1 -1
  3. package/dist/{Calculator-DMROKOY2.js → Calculator-OHL2AZ52.js} +4 -4
  4. package/dist/{Calculator-DMROKOY2.js.map → Calculator-OHL2AZ52.js.map} +1 -1
  5. package/dist/{Calendar-24TAKCAJ.js → Calendar-6AHL3UJY.js} +3 -3
  6. package/dist/{Calendar-24TAKCAJ.js.map → Calendar-6AHL3UJY.js.map} +1 -1
  7. package/dist/{CurrencyConverter-A6CHXNEQ.js → CurrencyConverter-XZVZ7XOF.js} +4 -4
  8. package/dist/{CurrencyConverter-A6CHXNEQ.js.map → CurrencyConverter-XZVZ7XOF.js.map} +1 -1
  9. package/dist/{Documents-QMP6QN3C.js → Documents-IPVZ47JX.js} +3 -3
  10. package/dist/{Documents-QMP6QN3C.js.map → Documents-IPVZ47JX.js.map} +1 -1
  11. package/dist/{Email-XTFUEIE5.js → Email-GB2JMBSI.js} +3 -3
  12. package/dist/{Email-XTFUEIE5.js.map → Email-GB2JMBSI.js.map} +1 -1
  13. package/dist/Files-NJCMN2VH.js +7 -0
  14. package/dist/{Files-YHUOR7RM.js.map → Files-NJCMN2VH.js.map} +1 -1
  15. package/dist/{Minesweeper-YPAR6SPJ.js → Minesweeper-NGN4O6C4.js} +3 -3
  16. package/dist/{Minesweeper-YPAR6SPJ.js.map → Minesweeper-NGN4O6C4.js.map} +1 -1
  17. package/dist/{Notepad-VEEUZROP.js → Notepad-W3YYZ3GS.js} +3 -3
  18. package/dist/{Notepad-VEEUZROP.js.map → Notepad-W3YYZ3GS.js.map} +1 -1
  19. package/dist/{PomodoroTimer-HWHMQZO6.js → PomodoroTimer-T2J5NDJR.js} +4 -4
  20. package/dist/{PomodoroTimer-HWHMQZO6.js.map → PomodoroTimer-T2J5NDJR.js.map} +1 -1
  21. package/dist/Preview-DRWHK4DK.js +6 -0
  22. package/dist/{Preview-SLX4ZLUQ.js.map → Preview-DRWHK4DK.js.map} +1 -1
  23. package/dist/{Spreadsheet-W76QOD42.js → Spreadsheet-FCFII6DW.js} +3 -3
  24. package/dist/{Spreadsheet-W76QOD42.js.map → Spreadsheet-FCFII6DW.js.map} +1 -1
  25. package/dist/{Weather-DIKN7BOT.js → Weather-JZHYW5XF.js} +4 -4
  26. package/dist/{Weather-DIKN7BOT.js.map → Weather-JZHYW5XF.js.map} +1 -1
  27. package/dist/apps/index.js +16 -16
  28. package/dist/{chunk-23RBDC2Z.js → chunk-472UPWAS.js} +4 -4
  29. package/dist/{chunk-23RBDC2Z.js.map → chunk-472UPWAS.js.map} +1 -1
  30. package/dist/{chunk-QXY6ZHRX.js → chunk-T2NQXP2J.js} +446 -240
  31. package/dist/chunk-T2NQXP2J.js.map +1 -0
  32. package/dist/{chunk-HVZUPS3P.js → chunk-TVOBLSSV.js} +3 -3
  33. package/dist/{chunk-HVZUPS3P.js.map → chunk-TVOBLSSV.js.map} +1 -1
  34. package/dist/{chunk-6IV6OWF3.js → chunk-VOD2AMU4.js} +3 -3
  35. package/dist/{chunk-6IV6OWF3.js.map → chunk-VOD2AMU4.js.map} +1 -1
  36. package/dist/index.d.ts +6 -2
  37. package/dist/index.js +38 -14
  38. package/dist/index.js.map +1 -1
  39. package/package.json +1 -1
  40. package/dist/Files-YHUOR7RM.js +0 -7
  41. package/dist/Preview-SLX4ZLUQ.js +0 -6
  42. package/dist/chunk-QXY6ZHRX.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -329,14 +329,16 @@ interface NotificationBellProps extends NotificationsConfig {
329
329
  declare function NotificationBell({ useUnreadCount, list, markRead, markAllRead, onItemClick, onViewAll, popDirection, }: NotificationBellProps): react_jsx_runtime.JSX.Element;
330
330
 
331
331
  /**
332
- * Bug report review dialog — shows the captured screenshot and lets the user
333
- * add a quick description before sending.
332
+ * Feedback dialog — shows the captured screenshot and lets the user pick
333
+ * Bug or Suggestion and add a quick description before sending.
334
334
  *
335
335
  * Triggered imperatively from utils/reportBug.ts via openBugReportDialog().
336
336
  * The Provider is mounted once at the App root.
337
337
  */
338
+ type ReportType = 'bug' | 'suggestion';
338
339
  interface BugReportSubmission {
339
340
  description: string;
341
+ reportType: ReportType;
340
342
  }
341
343
  /** Generic bug-report record shape consumed by the shell's list/detail UI. */
342
344
  interface BugReport {
@@ -348,6 +350,7 @@ interface BugReport {
348
350
  user_agent?: string;
349
351
  viewport?: string;
350
352
  description?: string;
353
+ report_type?: ReportType;
351
354
  is_resolved: boolean;
352
355
  resolution_note?: string;
353
356
  created_at: string;
@@ -360,6 +363,7 @@ interface BugReportSubmitPayload {
360
363
  url: string;
361
364
  userAgent: string;
362
365
  viewport: string;
366
+ reportType: ReportType;
363
367
  }
364
368
  /** Config bundle for the bug-report subsystem. Consumer-supplied; the shell
365
369
  * never calls a hardcoded URL. */
package/dist/index.js CHANGED
@@ -5,11 +5,11 @@ import { useGoogleAuth } from './chunk-46LICZUM.js';
5
5
  import { useShellPrefs } from './chunk-36VM54SC.js';
6
6
  export { ShellPrefsProvider, useLocalStoragePrefs, useShellPrefs } from './chunk-36VM54SC.js';
7
7
  import { playNotification, playStartup, soundsEnabled, getSoundConfig, SOUND_PACK_KEYS, SOUND_PACKS, SOUND_TYPES, SOUND_TYPE_LABELS, playLogout, setSoundForType, previewSound, setAllSounds } from './chunk-D7PYW2QS.js';
8
- import { setPdfPreview } from './chunk-6IV6OWF3.js';
8
+ import { setPdfPreview } from './chunk-VOD2AMU4.js';
9
9
  import { toast_default } from './chunk-WIJ45SYD.js';
10
10
  export { toast_default as toast } from './chunk-WIJ45SYD.js';
11
- import { useWindowManager, glassStyle, PopupMenu, PopupMenuLabel, PopupMenuDivider, PopupMenuItem, Modal, startMenuCategories, useIsMobile, navSections, isSection, GLASS_INPUT_BG, navIcons, sectionIcons, ModalActions, useModalActive, WINDOW_REGISTRY, isPageEntry, LoadingSpinner, ThumbCard, activateModal } from './chunk-QXY6ZHRX.js';
12
- export { CancelButton, CopyButton, DocFavStar, GLASS_DIVIDER, GLASS_INPUT_BG, Modal, ModalActions, PopupMenu, PopupMenuDivider, PopupMenuItem, PopupMenuLabel, WindowManagerProvider, WindowTitle, glassStyle, isEntityEntry, isPageEntry, setShellApiClient, setShellNavIcons, setShellWindowRegistry, useModalActive, useWidgetSettings, useWindowManager, useWindowMenuItem, useWindowTitle } from './chunk-QXY6ZHRX.js';
11
+ import { useWindowManager, glassStyle, PopupMenu, PopupMenuLabel, PopupMenuDivider, PopupMenuItem, Modal, startMenuCategories, useIsMobile, navSections, isSection, GLASS_INPUT_BG, navIcons, sectionIcons, ModalActions, useModalActive, WINDOW_REGISTRY, isPageEntry, LoadingSpinner, ThumbCard, activateModal } from './chunk-T2NQXP2J.js';
12
+ export { CancelButton, CopyButton, DocFavStar, GLASS_DIVIDER, GLASS_INPUT_BG, Modal, ModalActions, PopupMenu, PopupMenuDivider, PopupMenuItem, PopupMenuLabel, WindowManagerProvider, WindowTitle, glassStyle, isEntityEntry, isPageEntry, setShellApiClient, setShellNavIcons, setShellWindowRegistry, useModalActive, useWidgetSettings, useWindowManager, useWindowMenuItem, useWindowTitle } from './chunk-T2NQXP2J.js';
13
13
  export { ConfirmProvider, confirm, confirmDestructive, prompt } from './chunk-PLGHQ7QW.js';
14
14
  import { createContext, useState, useRef, useEffect, useCallback, useLayoutEffect, useContext, isValidElement, cloneElement, useSyncExternalStore, useMemo, Suspense } from 'react';
15
15
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -479,10 +479,12 @@ function BugReportProvider({ children }) {
479
479
  const [screenshot, setScreenshot] = useState(null);
480
480
  const [previewUrl, setPreviewUrl] = useState(null);
481
481
  const [description, setDescription] = useState("");
482
+ const [reportType, setReportType] = useState("bug");
482
483
  const resolveRef = useRef();
483
484
  const openFn = useCallback((s) => {
484
485
  setScreenshot(s);
485
486
  setDescription("");
487
+ setReportType("bug");
486
488
  setOpen(true);
487
489
  return new Promise((resolve) => {
488
490
  resolveRef.current = resolve;
@@ -502,23 +504,44 @@ function BugReportProvider({ children }) {
502
504
  }, [screenshot]);
503
505
  const handleSubmit = () => {
504
506
  setOpen(false);
505
- resolveRef.current?.({ description: description.trim() });
507
+ resolveRef.current?.({ description: description.trim(), reportType });
506
508
  };
507
509
  const handleCancel = () => {
508
510
  setOpen(false);
509
511
  resolveRef.current?.(null);
510
512
  };
513
+ const isBug = reportType === "bug";
511
514
  return /* @__PURE__ */ jsxs(Fragment, { children: [
512
515
  children,
513
516
  /* @__PURE__ */ jsxs(Dialog, { open, onClose: handleCancel, className: "relative z-[9999]", children: [
514
517
  /* @__PURE__ */ jsx(DialogBackdrop, { className: "fixed inset-0 bg-black/40" }),
515
518
  /* @__PURE__ */ jsx("div", { className: "fixed inset-0 flex items-center justify-center p-4", children: /* @__PURE__ */ jsxs(DialogPanel, { className: "w-full max-w-2xl rounded-lg bg-white p-6 shadow-xl", children: [
516
- /* @__PURE__ */ jsx(DialogTitle, { className: "text-base font-semibold text-gray-900", children: "Report a bug" }),
519
+ /* @__PURE__ */ jsx(DialogTitle, { className: "text-base font-semibold text-gray-900", children: "Suggestion or Bug" }),
517
520
  /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs text-gray-500", children: "A screenshot of your current view will be sent to the admin team." }),
521
+ /* @__PURE__ */ jsxs("div", { className: "mt-4 inline-flex rounded-lg border border-gray-300 bg-gray-50 p-0.5", children: [
522
+ /* @__PURE__ */ jsx(
523
+ "button",
524
+ {
525
+ type: "button",
526
+ onClick: () => setReportType("bug"),
527
+ className: `px-3 py-1 text-sm font-medium rounded-md transition-colors ${isBug ? "bg-white text-gray-900 shadow-sm" : "text-gray-600 hover:text-gray-900"}`,
528
+ children: "Bug"
529
+ }
530
+ ),
531
+ /* @__PURE__ */ jsx(
532
+ "button",
533
+ {
534
+ type: "button",
535
+ onClick: () => setReportType("suggestion"),
536
+ className: `px-3 py-1 text-sm font-medium rounded-md transition-colors ${!isBug ? "bg-white text-gray-900 shadow-sm" : "text-gray-600 hover:text-gray-900"}`,
537
+ children: "Suggestion"
538
+ }
539
+ )
540
+ ] }),
518
541
  previewUrl && /* @__PURE__ */ jsx("div", { className: "mt-4 rounded-md border border-gray-200 overflow-hidden bg-gray-50 max-h-64", children: /* @__PURE__ */ jsx("img", { src: previewUrl, alt: "Screenshot preview", className: "w-full h-auto max-h-64 object-contain" }) }),
519
542
  !previewUrl && /* @__PURE__ */ jsx("div", { className: "mt-4 rounded-md border border-dashed border-gray-300 px-4 py-6 text-center text-sm text-gray-500", children: "Screenshot capture failed \u2014 your description will still be sent." }),
520
543
  /* @__PURE__ */ jsxs("label", { className: "mt-4 block text-sm font-medium text-gray-700", children: [
521
- "What went wrong?",
544
+ isBug ? "What went wrong?" : "What's your suggestion?",
522
545
  /* @__PURE__ */ jsx("span", { className: "font-normal text-gray-400 ml-1", children: "(optional)" })
523
546
  ] }),
524
547
  /* @__PURE__ */ jsx(
@@ -530,7 +553,7 @@ function BugReportProvider({ children }) {
530
553
  onKeyDown: (e) => {
531
554
  if (e.key === "Enter" && (e.metaKey || e.ctrlKey)) handleSubmit();
532
555
  },
533
- placeholder: "Briefly describe the issue, what you were doing, what you expected to happen\u2026",
556
+ placeholder: isBug ? "Briefly describe the issue, what you were doing, what you expected to happen\u2026" : "Briefly describe what would make this better\u2026",
534
557
  rows: 3,
535
558
  className: "mt-1 w-full rounded-md border border-gray-300 px-3 py-2 text-sm focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none resize-none"
536
559
  }
@@ -551,7 +574,7 @@ function BugReportProvider({ children }) {
551
574
  type: "button",
552
575
  onClick: handleSubmit,
553
576
  className: "bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 text-sm font-medium rounded-lg",
554
- children: "Send Report"
577
+ children: "Send"
555
578
  }
556
579
  )
557
580
  ] })
@@ -706,7 +729,7 @@ function StatusBadge({ status }) {
706
729
  }
707
730
 
708
731
  // src/version.ts
709
- var VERSION = "0.2.25" ;
732
+ var VERSION = "0.2.30" ;
710
733
  var APP_VERSION = VERSION;
711
734
 
712
735
  // src/changelog.ts
@@ -751,11 +774,12 @@ async function reportBug(submit) {
751
774
  screenshot: screenshot ?? void 0,
752
775
  url: window.location.href,
753
776
  userAgent: navigator.userAgent,
754
- viewport: `${window.innerWidth}x${window.innerHeight}`
777
+ viewport: `${window.innerWidth}x${window.innerHeight}`,
778
+ reportType: submission.reportType
755
779
  });
756
- toast_default.success("Bug report sent to admins.");
780
+ toast_default.success(submission.reportType === "bug" ? "Bug sent to admins." : "Suggestion sent to admins.");
757
781
  } catch (err) {
758
- toast_default.error(err?.response?.data?.detail || "Failed to send bug report.");
782
+ toast_default.error(err?.response?.data?.detail || "Failed to send.");
759
783
  }
760
784
  }
761
785
  var ENTITY_ICON_COLORS = {
@@ -1916,7 +1940,7 @@ function Desktop({ profile }) {
1916
1940
  reportBug(bugReport.submit);
1917
1941
  }, children: [
1918
1942
  /* @__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" }) }),
1919
- "Report Bug"
1943
+ "Suggestion or Bug"
1920
1944
  ] })
1921
1945
  ] })
1922
1946
  ] }),
@@ -3820,7 +3844,7 @@ function TaskbarContextMenu({ x, y, position, size, onChangePosition, onChangeSi
3820
3844
  style: { width: "calc(100% - 8px)" },
3821
3845
  children: [
3822
3846
  /* @__PURE__ */ jsx("span", { className: "w-3.5 shrink-0" }),
3823
- "Report Bug"
3847
+ "Suggestion or Bug"
3824
3848
  ]
3825
3849
  }
3826
3850
  )