react-os-shell 0.2.52 → 0.2.54

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 (43) hide show
  1. package/dist/{Browser-2TIJIWLC.js → Browser-4WIA5UFC.js} +3 -3
  2. package/dist/{Browser-2TIJIWLC.js.map → Browser-4WIA5UFC.js.map} +1 -1
  3. package/dist/{Calculator-F5V74AUF.js → Calculator-WJSLOXOC.js} +4 -4
  4. package/dist/{Calculator-F5V74AUF.js.map → Calculator-WJSLOXOC.js.map} +1 -1
  5. package/dist/{Calendar-KIPFDLRZ.js → Calendar-PNKZHKKU.js} +3 -3
  6. package/dist/{Calendar-KIPFDLRZ.js.map → Calendar-PNKZHKKU.js.map} +1 -1
  7. package/dist/{CurrencyConverter-BEYNE72I.js → CurrencyConverter-23WT33SH.js} +4 -4
  8. package/dist/{CurrencyConverter-BEYNE72I.js.map → CurrencyConverter-23WT33SH.js.map} +1 -1
  9. package/dist/{Documents-3BIQRSXA.js → Documents-QT3EIB6G.js} +3 -3
  10. package/dist/{Documents-3BIQRSXA.js.map → Documents-QT3EIB6G.js.map} +1 -1
  11. package/dist/{Email-RM5N27GG.js → Email-2LZXT2UA.js} +3 -3
  12. package/dist/{Email-RM5N27GG.js.map → Email-2LZXT2UA.js.map} +1 -1
  13. package/dist/Files-XAJ64SWC.js +8 -0
  14. package/dist/{Files-DSNYMBYP.js.map → Files-XAJ64SWC.js.map} +1 -1
  15. package/dist/{Minesweeper-F7HUV7HZ.js → Minesweeper-BOCFOG5R.js} +3 -3
  16. package/dist/{Minesweeper-F7HUV7HZ.js.map → Minesweeper-BOCFOG5R.js.map} +1 -1
  17. package/dist/{Notepad-3S24OLEP.js → Notepad-UUUJKLXB.js} +3 -3
  18. package/dist/{Notepad-3S24OLEP.js.map → Notepad-UUUJKLXB.js.map} +1 -1
  19. package/dist/{PomodoroTimer-WEFU2TRQ.js → PomodoroTimer-H4EMUMPT.js} +4 -4
  20. package/dist/{PomodoroTimer-WEFU2TRQ.js.map → PomodoroTimer-H4EMUMPT.js.map} +1 -1
  21. package/dist/Preview-KZRXVDHE.js +7 -0
  22. package/dist/{Preview-5B64EYL7.js.map → Preview-KZRXVDHE.js.map} +1 -1
  23. package/dist/{Spreadsheet-2JEK7VD7.js → Spreadsheet-TEK43EVB.js} +3 -3
  24. package/dist/{Spreadsheet-2JEK7VD7.js.map → Spreadsheet-TEK43EVB.js.map} +1 -1
  25. package/dist/{Weather-PETTCLBX.js → Weather-BGLKHRCK.js} +4 -4
  26. package/dist/{Weather-PETTCLBX.js.map → Weather-BGLKHRCK.js.map} +1 -1
  27. package/dist/{WorldClock-QTZM4U5N.js → WorldClock-X3VM3WFT.js} +4 -4
  28. package/dist/{WorldClock-QTZM4U5N.js.map → WorldClock-X3VM3WFT.js.map} +1 -1
  29. package/dist/apps/index.js +17 -17
  30. package/dist/{chunk-P5YKRJIW.js → chunk-4ZCO2DWL.js} +3 -3
  31. package/dist/{chunk-P5YKRJIW.js.map → chunk-4ZCO2DWL.js.map} +1 -1
  32. package/dist/{chunk-6COZIC23.js → chunk-X3TFGP5L.js} +4 -4
  33. package/dist/{chunk-6COZIC23.js.map → chunk-X3TFGP5L.js.map} +1 -1
  34. package/dist/{chunk-VVXXHR5V.js → chunk-YMSQ23E4.js} +40 -7
  35. package/dist/chunk-YMSQ23E4.js.map +1 -0
  36. package/dist/{chunk-FTJFODBB.js → chunk-ZISNG7C2.js} +4 -4
  37. package/dist/{chunk-FTJFODBB.js.map → chunk-ZISNG7C2.js.map} +1 -1
  38. package/dist/index.d.ts +13 -1
  39. package/dist/index.js +4 -4
  40. package/package.json +1 -1
  41. package/dist/Files-DSNYMBYP.js +0 -8
  42. package/dist/Preview-5B64EYL7.js +0 -7
  43. package/dist/chunk-VVXXHR5V.js.map +0 -1
@@ -578,6 +578,12 @@ function setExposeState(v) {
578
578
  _exposeOn = v;
579
579
  _notifyExpose();
580
580
  }
581
+ function toggleExposeMode() {
582
+ setExposeState(!_exposeOn);
583
+ }
584
+ function exitExposeMode() {
585
+ setExposeState(false);
586
+ }
581
587
  var _exposeExitFocusId = null;
582
588
  var _exposeExitListeners = /* @__PURE__ */ new Set();
583
589
  function subscribeExposeExitFocus(fn) {
@@ -592,12 +598,37 @@ function setExposeExitFocus(id) {
592
598
  _exposeExitFocusId = id;
593
599
  _exposeExitListeners.forEach((fn) => fn());
594
600
  }
601
+ var _exposeHighlightId = null;
602
+ var _exposeHighlightListeners = /* @__PURE__ */ new Set();
603
+ function subscribeExposeHighlight(fn) {
604
+ _exposeHighlightListeners.add(fn);
605
+ return () => _exposeHighlightListeners.delete(fn);
606
+ }
607
+ function getExposeHighlight() {
608
+ return _exposeHighlightId;
609
+ }
610
+ function setExposeHighlight(id) {
611
+ if (_exposeHighlightId === id) return;
612
+ _exposeHighlightId = id;
613
+ _exposeHighlightListeners.forEach((fn) => fn());
614
+ }
615
+ function commitExposeHighlight() {
616
+ if (!_exposeHighlightId) {
617
+ setExposeState(false);
618
+ return;
619
+ }
620
+ const id = _exposeHighlightId;
621
+ setExposeExitFocus(id);
622
+ setExposeHighlight(null);
623
+ setExposeState(false);
624
+ }
595
625
  function triggerSplitView() {
596
626
  setExposeState(!_exposeOn);
597
627
  window.dispatchEvent(new CustomEvent("modal-split-view"));
598
628
  }
599
629
  window.addEventListener("keydown", (e) => {
600
630
  if (_exposeOn && e.key === "Escape") {
631
+ setExposeHighlight(null);
601
632
  setExposeState(false);
602
633
  }
603
634
  });
@@ -796,9 +827,11 @@ function Modal({ open, onClose, title, icon, copyText, size = "lg", dirty = fals
796
827
  const isActive = useIsActiveModal(modalId);
797
828
  const exposeOn = useSyncExternalStore(subscribeExpose, getExposeState);
798
829
  const exposeExitFocusId = useSyncExternalStore(subscribeExposeExitFocus, getExposeExitFocus);
830
+ const exposeHighlightId = useSyncExternalStore(subscribeExposeHighlight, getExposeHighlight);
799
831
  const isExposeTileable = !allowPinOnTop && !widget;
800
832
  const exposeActive = exposeOn && isExposeTileable;
801
833
  const [exposeHovered, setExposeHovered] = useState(false);
834
+ const exposeKeyboardHighlight = exposeActive && exposeHighlightId === modalId;
802
835
  const [exposeExiting, setExposeExiting] = useState(false);
803
836
  const exposeExitRole = exposeExiting && isExposeTileable && exposeExitFocusId === modalId ? "picked" : null;
804
837
  const prevExposeActiveRef = useRef(exposeActive);
@@ -1262,15 +1295,15 @@ function Modal({ open, onClose, title, icon, copyText, size = "lg", dirty = fals
1262
1295
  const scaledH = box.h * scale;
1263
1296
  const tx = exposeTile.x + (exposeTile.w - scaledW) / 2 - box.x;
1264
1297
  const ty = exposeTile.y + (exposeTile.h - scaledH) / 2 - box.y;
1298
+ const lit = exposeHovered || exposeKeyboardHighlight;
1265
1299
  return {
1266
1300
  transform: `translate(${tx}px, ${ty}px) scale(${scale})`,
1267
1301
  transformOrigin: "top left",
1268
1302
  transition: "transform 280ms cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 280ms",
1269
1303
  cursor: "pointer",
1270
- // Hovered tile lifts above its neighbours so the hover ring isn't
1271
- // clipped by adjacent panels.
1272
- zIndex: exposeHovered ? 2020 : 2010,
1273
- boxShadow: exposeHovered ? "0 24px 72px rgba(0,0,0,0.6), 0 0 0 2px rgba(255,255,255,0.55), 0 0 36px 12px rgba(96,165,250,0.85), 0 0 96px 28px rgba(96,165,250,0.55)" : "0 16px 48px rgba(0,0,0,0.55)",
1304
+ // Lifted tile sits above its neighbours so the glow isn't clipped.
1305
+ zIndex: lit ? 2020 : 2010,
1306
+ boxShadow: lit ? "0 24px 72px rgba(0,0,0,0.6), 0 0 0 2px rgba(255,255,255,0.55), 0 0 36px 12px rgba(96,165,250,0.85), 0 0 96px 28px rgba(96,165,250,0.55)" : "0 16px 48px rgba(0,0,0,0.55)",
1274
1307
  pointerEvents: "auto"
1275
1308
  };
1276
1309
  }
@@ -2269,6 +2302,6 @@ function WindowManagerProvider({ children }) {
2269
2302
  ] });
2270
2303
  }
2271
2304
 
2272
- export { CancelButton, CopyButton, DocFavStar, GLASS_DIVIDER, GLASS_INPUT_BG, LoadingSpinner, Modal, ModalActions, PopupMenu, PopupMenuDivider, PopupMenuItem, PopupMenuLabel, ThumbCard, WINDOW_REGISTRY, WindowManagerProvider, WindowTitle, activateModal, client_default, getActiveModalId, getActiveWindowRoute, glassStyle, isEntityEntry, isPageEntry, isSection, navIcons, navSections, sectionIcons, setShellApiClient, setShellNavIcons, setShellWindowRegistry, setWindowDefaultPosition, startMenuCategories, useIsMobile, useModalActive, useWidgetSettings, useWindowManager, useWindowMenuItem, useWindowTitle };
2273
- //# sourceMappingURL=chunk-VVXXHR5V.js.map
2274
- //# sourceMappingURL=chunk-VVXXHR5V.js.map
2305
+ export { CancelButton, CopyButton, DocFavStar, GLASS_DIVIDER, GLASS_INPUT_BG, LoadingSpinner, Modal, ModalActions, PopupMenu, PopupMenuDivider, PopupMenuItem, PopupMenuLabel, ThumbCard, WINDOW_REGISTRY, WindowManagerProvider, WindowTitle, activateModal, client_default, commitExposeHighlight, exitExposeMode, getActiveModalId, getActiveWindowRoute, getExposeHighlight, glassStyle, isEntityEntry, isPageEntry, isSection, navIcons, navSections, sectionIcons, setExposeHighlight, setShellApiClient, setShellNavIcons, setShellWindowRegistry, setWindowDefaultPosition, startMenuCategories, subscribeExposeHighlight, toggleExposeMode, useIsMobile, useModalActive, useWidgetSettings, useWindowManager, useWindowMenuItem, useWindowTitle };
2306
+ //# sourceMappingURL=chunk-YMSQ23E4.js.map
2307
+ //# sourceMappingURL=chunk-YMSQ23E4.js.map