react-os-shell 4.55.0 → 4.67.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.
Files changed (52) hide show
  1. package/README.md +7 -3
  2. package/dist/{Browser-WHBSYGLC.js → Browser-NBYPPENQ.js} +6 -6
  3. package/dist/{Browser-WHBSYGLC.js.map → Browser-NBYPPENQ.js.map} +1 -1
  4. package/dist/{Calculator-PHKNMRLX.js → Calculator-UNAVT7IE.js} +5 -5
  5. package/dist/{Calculator-PHKNMRLX.js.map → Calculator-UNAVT7IE.js.map} +1 -1
  6. package/dist/ConfirmDialog-SREDNTIB.js +3 -0
  7. package/dist/{ConfirmDialog-EEH4CWSW.js.map → ConfirmDialog-SREDNTIB.js.map} +1 -1
  8. package/dist/{CurrencyConverter-MEG7RHEK.js → CurrencyConverter-KURXJHLK.js} +5 -5
  9. package/dist/{CurrencyConverter-MEG7RHEK.js.map → CurrencyConverter-KURXJHLK.js.map} +1 -1
  10. package/dist/{Documents-Y32RNCTU.js → Documents-7CUBCETC.js} +6 -6
  11. package/dist/{Documents-Y32RNCTU.js.map → Documents-7CUBCETC.js.map} +1 -1
  12. package/dist/{Files-LTG2S2KU.js → Files-UXEDRQF4.js} +6 -6
  13. package/dist/{Files-LTG2S2KU.js.map → Files-UXEDRQF4.js.map} +1 -1
  14. package/dist/{Notepad-P7J2OAXD.js → Notepad-ON4T45UP.js} +6 -6
  15. package/dist/{Notepad-P7J2OAXD.js.map → Notepad-ON4T45UP.js.map} +1 -1
  16. package/dist/{PomodoroTimer-5B5AFXQH.js → PomodoroTimer-J7V5VXR4.js} +5 -5
  17. package/dist/{PomodoroTimer-5B5AFXQH.js.map → PomodoroTimer-J7V5VXR4.js.map} +1 -1
  18. package/dist/{Preview-XZQ55YGY.js → Preview-QINOPDT2.js} +6 -6
  19. package/dist/{Preview-XZQ55YGY.js.map → Preview-QINOPDT2.js.map} +1 -1
  20. package/dist/{Spreadsheet-KKSLCSIK.js → Spreadsheet-OFF3J4HN.js} +6 -6
  21. package/dist/{Spreadsheet-KKSLCSIK.js.map → Spreadsheet-OFF3J4HN.js.map} +1 -1
  22. package/dist/{Stock-KTWRNBI6.js → Stock-BSU7S7MW.js} +5 -5
  23. package/dist/{Stock-KTWRNBI6.js.map → Stock-BSU7S7MW.js.map} +1 -1
  24. package/dist/{Weather-B7MO7N4N.js → Weather-BKNRVMG6.js} +5 -5
  25. package/dist/{Weather-B7MO7N4N.js.map → Weather-BKNRVMG6.js.map} +1 -1
  26. package/dist/{WorldClock-M5MEV74F.js → WorldClock-VMTD2QWD.js} +5 -5
  27. package/dist/{WorldClock-M5MEV74F.js.map → WorldClock-VMTD2QWD.js.map} +1 -1
  28. package/dist/apps/index.js +16 -16
  29. package/dist/{chunk-CTTHBTOX.js → chunk-B3IYV7JN.js} +1052 -334
  30. package/dist/chunk-B3IYV7JN.js.map +1 -0
  31. package/dist/{chunk-OXLLRKBC.js → chunk-CDR2Q64Q.js} +38 -22
  32. package/dist/chunk-CDR2Q64Q.js.map +1 -0
  33. package/dist/{chunk-FHPPPDHL.js → chunk-E2N5WEHI.js} +3 -3
  34. package/dist/{chunk-FHPPPDHL.js.map → chunk-E2N5WEHI.js.map} +1 -1
  35. package/dist/{chunk-5S65ZC5W.js → chunk-GRSVL6WX.js} +83 -9
  36. package/dist/chunk-GRSVL6WX.js.map +1 -0
  37. package/dist/{chunk-S3ZIBWRY.js → chunk-HAFM6ZQD.js} +4 -4
  38. package/dist/{chunk-S3ZIBWRY.js.map → chunk-HAFM6ZQD.js.map} +1 -1
  39. package/dist/chunk-K35QFOJF.js +7 -0
  40. package/dist/{chunk-LCLB7YBY.js.map → chunk-K35QFOJF.js.map} +1 -1
  41. package/dist/{index-BE0z2D6y.d.ts → index-DM-d12A7.d.ts} +206 -7
  42. package/dist/index.d.ts +29 -8
  43. package/dist/index.js +58 -20
  44. package/dist/index.js.map +1 -1
  45. package/dist/ui/index.d.ts +1 -1
  46. package/dist/ui/index.js +3 -3
  47. package/package.json +1 -1
  48. package/dist/ConfirmDialog-EEH4CWSW.js +0 -3
  49. package/dist/chunk-5S65ZC5W.js.map +0 -1
  50. package/dist/chunk-CTTHBTOX.js.map +0 -1
  51. package/dist/chunk-LCLB7YBY.js +0 -7
  52. package/dist/chunk-OXLLRKBC.js.map +0 -1
package/dist/index.js CHANGED
@@ -5,8 +5,8 @@ export { ImageAnnotator_default as ImageAnnotator } from './chunk-ECE3B3FZ.js';
5
5
  import { publishDesktopFolders, requestFilesTrashView, FolderGlyph, requestFilesDesktopFolderView, FileIconTile } from './chunk-OQ7GRU7G.js';
6
6
  import './chunk-4SQU5YV6.js';
7
7
  import { setPdfPreview } from './chunk-BV6SQ46N.js';
8
- import { CMD_K, CMD_DOT, CMD_A, ALT_SHIFT_N, ALT_SHIFT_E, CMD_ENTER, CMD_S, ALT_SHIFT_D, CMD_Z, CMD_SHIFT_Z, formatDate, useTheme, GlobalSearch, resolveTheme, useClickOutside, ListLoadError, ListFooter, firstEnabledIndex, Button_default, FormField, Input_default, applyThemePrefs, lastEnabledIndex, nextEnabledIndex, matchTypeahead } from './chunk-CTTHBTOX.js';
9
- export { ALT, ALT_SHIFT_D, ALT_SHIFT_E, ALT_SHIFT_N, Accordion, AuthScreen, Avatar, AvatarGroup, Banner, BarChart, Button_default as Button, CMD_A, CMD_DOT, CMD_ENTER, CMD_K, CMD_S, Card, ChatTemplate, Checkbox_default as Checkbox, CheckoutTemplate, ColoredBadge, ContainerFillChart, CountBadge, DashboardTemplate, DataTable, DataTablePage, DatePicker_default as DatePicker, DateRangePicker, DescriptionList, Divider, DonutChart, Drawer, DropdownMenu, ENTER, EmailTemplate, EmptyState, ErrorBoundary, ErrorPage, FilePicker, FormField, FormLayoutPage, GROUP_COLORS, GalleryTemplate, GlobalSearch, Grid, HelpCenter, INPUT_BASE, INPUT_SIZES, IconButton_default as IconButton, Inline, Input_default as Input, InputNumber_default as InputNumber, Kanban, Label, ListFooter, ListLoadError, LoadingSpinner, MAX_FRACTION_DIGITS, MOD, Markdown, MediaUploadField, MediaUploadGrid, MetricBar, MilestoneTimeline, NativeSelect, NumericKeypad, PageHeader, Pagination, Paragraph, Radio_default as Radio, Result, SHIFT, SearchableSelect, Segmented, Select_default as Select, SidebarActionButton, SidebarGroupLabel, SidebarNavItem, Skeleton, Sparkline, Stack, StatCard, Statistic, StatusBadge, StatusBadgeProvider, Switch_default as Switch, Tabs, Text, Textarea_default as Textarea, TileButton_default as TileButton, Title, Tooltip, TopNav, appendKey, applyThemePrefs, backspace, formatDate, inputClasses, isMac, isSeverityTone, mediaFileName, resolveTheme, severityOf, tabButtonId, tabPanelId, toISODate, useClickOutside, useTheme } from './chunk-CTTHBTOX.js';
8
+ import { CMD_K, CMD_DOT, SHIFT, MOD, ENTER, CMD_A, ALT_SHIFT_N, ALT_SHIFT_E, CMD_ENTER, CMD_S, ALT_SHIFT_D, CMD_Z, CMD_SHIFT_Z, formatDate, useTheme, GlobalSearch, resolveTheme, useClickOutside, ListLoadError, ListFooter, firstEnabledIndex, Button_default, FormField, Input_default, applyThemePrefs, lastEnabledIndex, nextEnabledIndex, matchTypeahead } from './chunk-B3IYV7JN.js';
9
+ export { ALT, ALT_SHIFT_D, ALT_SHIFT_E, ALT_SHIFT_N, Accordion, AuthScreen, Avatar, AvatarGroup, Banner, BarChart, Button_default as Button, CMD_A, CMD_DOT, CMD_ENTER, CMD_K, CMD_S, Calendar, Card, ChatTemplate, Checkbox_default as Checkbox, CheckoutTemplate, ColoredBadge, ContainerFillChart, CountBadge, DashboardTemplate, DataTable, DataTablePage, DatePicker_default as DatePicker, DateRangePicker, DateTimePicker_default as DateTimePicker, DescriptionList, Divider, DonutChart, Drawer, DropdownMenu, ENTER, EmailTemplate, EmptyState, ErrorBoundary, ErrorPage, FilePicker, FormField, FormLayoutPage, GROUP_COLORS, GalleryTemplate, GlobalSearch, Grid, HelpCenter, INPUT_BASE, INPUT_SIZES, IconButton_default as IconButton, Inline, Input_default as Input, InputNumber_default as InputNumber, Kanban, Label, LineChart, ListFooter, ListLoadError, LoadingSpinner, MAX_FRACTION_DIGITS, MOD, Markdown, MediaUploadField, MediaUploadGrid, MetricBar, MilestoneTimeline, NativeSelect, NumericKeypad, PageHeader, Pagination, Paragraph, Radio_default as Radio, Result, SHIFT, SearchableSelect, Segmented, Select_default as Select, SidebarActionButton, SidebarGroupLabel, SidebarNavItem, Skeleton, Sparkline, Stack, StatCard, Statistic, StatusBadge, StatusBadgeProvider, Stepper, Switch_default as Switch, Tabs, TagInput, Text, Textarea_default as Textarea, TileButton_default as TileButton, TimePicker_default as TimePicker, Title, Tooltip, TopNav, appendKey, applyThemePrefs, backspace, formatDate, fromKey as fromDateKey, inputClasses, isMac, isSeverityTone, mediaFileName, resolveTheme, severityOf, tabButtonId, tabPanelId, toKey as toDateKey, toISODate, useClickOutside, useTheme } from './chunk-B3IYV7JN.js';
10
10
  export { Breadcrumbs } from './chunk-HNH7FOYB.js';
11
11
  import { withSpareRow, EditableGrid } from './chunk-DC6BYGZ6.js';
12
12
  export { EditableGrid } from './chunk-DC6BYGZ6.js';
@@ -14,17 +14,17 @@ import { SidebarLayout } from './chunk-YG45DAUT.js';
14
14
  export { SidebarLayout } from './chunk-YG45DAUT.js';
15
15
  import { toast_default } from './chunk-TK6HI2U4.js';
16
16
  export { toast_default as toast } from './chunk-TK6HI2U4.js';
17
- import { APP_VERSION, VERSION } from './chunk-LCLB7YBY.js';
18
- export { VERSION } from './chunk-LCLB7YBY.js';
17
+ import { APP_VERSION, VERSION } from './chunk-K35QFOJF.js';
18
+ export { VERSION } from './chunk-K35QFOJF.js';
19
19
  import { playNotification, playStartup, soundsEnabled, getSoundConfig, SOUND_PACK_KEYS, SOUND_PACKS, SOUND_TYPES, SOUND_TYPE_LABELS, setSoundForType, previewSound, setAllSounds, playLogout } from './chunk-D7PYW2QS.js';
20
20
  import { useAuth } from './chunk-EWDYCO65.js';
21
21
  export { setShellAuthBridge } from './chunk-EWDYCO65.js';
22
- import { cancelWindowFront, requestWindowFront, useWindowManager, WINDOW_REGISTRY, isPageEntry, Modal, setPerfCollecting, drainPerfEvents, markMenuOpen, SIDEBAR_STRIP_W, forgetMaximizedWindowBoxes, ModalActions, useModalActive, client_default, LoadingSpinner, isShellApiClientConfigured, useUndo, useEnclosingModalId, CancelButton, setWindowPosition } from './chunk-5S65ZC5W.js';
23
- export { CancelButton, CopyButton, DocFavStar, Modal, ModalActions, UndoProvider, WindowCrashedFallback, WindowErrorBoundary, WindowManagerProvider, WindowTitle, beginWindowGesture, commitExposeHighlight, exitExposeMode, getActiveWindowRoute, getExposeHighlight, getWindowPosition, isEntityEntry, isPageEntry, markMenuOpen, requestWindowFront, setExposeHighlight, setShellApiClient, setShellWindowRegistry, setWindowDefaultPosition, setWindowPosition, subscribeExposeHighlight, toggleExposeMode, useEnclosingModalId, useIsActiveWindow, useModalActive, useUndo, useUndoable, useUndoableState, useWidgetSettings, useWindowDirty, useWindowManager, useWindowMenuItem, useWindowTitle } from './chunk-5S65ZC5W.js';
22
+ import { cancelWindowFront, requestWindowFront, useWindowManager, WINDOW_REGISTRY, isPageEntry, Modal, setPerfCollecting, drainPerfEvents, markMenuOpen, SIDEBAR_STRIP_W, forgetMaximizedWindowBoxes, ModalActions, useModalActive, client_default, LoadingSpinner, isShellApiClientConfigured, useUndo, useEnclosingModalId, CancelButton, setWindowPosition } from './chunk-GRSVL6WX.js';
23
+ export { CancelButton, CopyButton, DocFavStar, Modal, ModalActions, UndoProvider, WindowCrashedFallback, WindowErrorBoundary, WindowManagerProvider, WindowTitle, beginWindowGesture, commitExposeHighlight, exitExposeMode, getActiveWindowRoute, getExposeHighlight, getWindowPosition, isEntityEntry, isPageEntry, markMenuOpen, requestWindowFront, setExposeHighlight, setShellApiClient, setShellWindowRegistry, setWindowDefaultPosition, setWindowPosition, subscribeExposeHighlight, toggleExposeMode, useEnclosingModalId, useIsActiveWindow, useModalActive, useUndo, useUndoable, useUndoableState, useWidgetSettings, useWindowDirty, useWindowManager, useWindowMenuItem, useWindowTitle } from './chunk-GRSVL6WX.js';
24
24
  import { PopupMenu, PopupMenuLabel, PopupMenuDivider, PopupMenuItem, useShellPrefs, useIsMobile } from './chunk-ZCDFNZQS.js';
25
25
  export { PopupMenu, PopupMenuDivider, PopupMenuItem, PopupMenuLabel, ShellPrefsProvider, useIsMobile, useLocalStoragePrefs, useShellPrefs } from './chunk-ZCDFNZQS.js';
26
- import { registerModalEscapeInterceptor } from './chunk-OXLLRKBC.js';
27
- export { ConfirmProvider, Dialog, confirm, confirmDestructive, prompt, registerModalEscapeInterceptor, useConfirm, useFocusTrap, useScrollLock } from './chunk-OXLLRKBC.js';
26
+ import { registerModalEscapeInterceptor } from './chunk-CDR2Q64Q.js';
27
+ export { ConfirmProvider, Dialog, confirm, confirmDestructive, prompt, registerModalEscapeInterceptor, useConfirm, useFocusTrap, useScrollLock } from './chunk-CDR2Q64Q.js';
28
28
  import { startMenuCategories, navVisible, navSections, isSection, navIcons, isReachable, sectionIcons, useShellAuth, visibleChildren } from './chunk-WNLPTLT6.js';
29
29
  export { ShellAuthProvider, setShellNavIcons, useShellAuth } from './chunk-WNLPTLT6.js';
30
30
  import { GLASS_INPUT_BG, glassStyle } from './chunk-3CUSBZWG.js';
@@ -86,6 +86,18 @@ var sections = [
86
86
  { keys: "?", description: "Show keyboard shortcuts" }
87
87
  ]
88
88
  },
89
+ {
90
+ // The title bar is a tab stop; these act on the focused window's bar.
91
+ title: "Windows (title bar focused)",
92
+ shortcuts: [
93
+ { keys: "\u2190\u2191\u2192\u2193", description: "Move window" },
94
+ { keys: `${SHIFT} Arrows`, description: "Resize window" },
95
+ { keys: `${MOD} \u2190/\u2192`, description: "Snap to left / right half" },
96
+ { keys: `${MOD} \u2191`, description: "Maximize" },
97
+ { keys: `${MOD} \u2193`, description: "Restore / minimize" },
98
+ { keys: ENTER, description: "Toggle maximize" }
99
+ ]
100
+ },
89
101
  {
90
102
  title: "Lists",
91
103
  shortcuts: [
@@ -2469,7 +2481,7 @@ function Desktop({ profile }) {
2469
2481
  }
2470
2482
  );
2471
2483
  }
2472
- function StartupAnimation({ onComplete, ready = false, productName = "react-os-shell", subtitle }) {
2484
+ function StartupAnimation({ onComplete, ready = false, productName = "react-os-shell", subtitle, logo = "/favicon.svg" }) {
2473
2485
  const [phase, setPhase] = useState("logo");
2474
2486
  const [minTimePassed, setMinTimePassed] = useState(false);
2475
2487
  const onCompleteRef = useRef(onComplete);
@@ -2501,6 +2513,7 @@ function StartupAnimation({ onComplete, ready = false, productName = "react-os-s
2501
2513
  return /* @__PURE__ */ jsxs(
2502
2514
  "div",
2503
2515
  {
2516
+ "data-startup-animation": "",
2504
2517
  className: `fixed inset-0 z-[9999] flex flex-col items-center justify-center transition-opacity duration-500 ${phase === "fade" ? "opacity-0 pointer-events-none" : "opacity-100"}`,
2505
2518
  style: { background: "linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%)" },
2506
2519
  children: [
@@ -2514,7 +2527,7 @@ function StartupAnimation({ onComplete, ready = false, productName = "react-os-s
2514
2527
  /* @__PURE__ */ jsx("div", { className: `relative transition-all duration-700 ease-out ${phase === "logo" ? "scale-75 opacity-0" : "scale-100 opacity-100"}`, children: /* @__PURE__ */ jsx(
2515
2528
  "img",
2516
2529
  {
2517
- src: "/favicon.svg",
2530
+ src: logo,
2518
2531
  alt: "",
2519
2532
  className: "h-20 w-20 drop-shadow-[0_0_30px_rgba(124,58,237,0.5)]",
2520
2533
  style: { animation: "spin-in 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) forwards" }
@@ -2545,12 +2558,24 @@ function StartupAnimation({ onComplete, ready = false, productName = "react-os-s
2545
2558
  0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.15; }
2546
2559
  50% { transform: translate(-50%, -50%) scale(1.1); opacity: 0.25; }
2547
2560
  }
2561
+ /* Reduced motion: the fades stay, the movement goes. animation:none
2562
+ * (stylesheet !important beats the inline animation shorthands) parks
2563
+ * the spin/bounce/pulse at their base state; restricting transitions
2564
+ * to opacity turns the slide/scale phases into plain cross-fades.
2565
+ * Timings and the ready-gating are untouched \u2014 this is about motion,
2566
+ * not about how long the splash holds. */
2567
+ @media (prefers-reduced-motion: reduce) {
2568
+ [data-startup-animation], [data-startup-animation] * {
2569
+ animation: none !important;
2570
+ transition-property: opacity !important;
2571
+ }
2572
+ }
2548
2573
  ` })
2549
2574
  ]
2550
2575
  }
2551
2576
  );
2552
2577
  }
2553
- function LogoutAnimation({ onComplete, subtitle }) {
2578
+ function LogoutAnimation({ onComplete, subtitle, logo = "/favicon.svg" }) {
2554
2579
  const [phase, setPhase] = useState("show");
2555
2580
  useEffect(() => {
2556
2581
  playLogout();
@@ -2564,6 +2589,7 @@ function LogoutAnimation({ onComplete, subtitle }) {
2564
2589
  return /* @__PURE__ */ jsxs(
2565
2590
  "div",
2566
2591
  {
2592
+ "data-logout-animation": "",
2567
2593
  className: "fixed inset-0 z-[9999] flex flex-col items-center justify-center",
2568
2594
  style: { background: "linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%)" },
2569
2595
  children: [
@@ -2584,7 +2610,7 @@ function LogoutAnimation({ onComplete, subtitle }) {
2584
2610
  {
2585
2611
  className: `relative transition-all duration-1000 ease-in ${phase === "out" ? "scale-0 opacity-0" : "scale-100 opacity-100"}`,
2586
2612
  style: phase === "out" ? { transform: "scale(0) rotate(180deg)" } : void 0,
2587
- children: /* @__PURE__ */ jsx("img", { src: "/favicon.svg", alt: "", className: "h-20 w-20 drop-shadow-[0_0_30px_rgba(124,58,237,0.5)]" })
2613
+ children: /* @__PURE__ */ jsx("img", { src: logo, alt: "", className: "h-20 w-20 drop-shadow-[0_0_30px_rgba(124,58,237,0.5)]" })
2588
2614
  }
2589
2615
  ),
2590
2616
  /* @__PURE__ */ jsxs("div", { className: `mt-6 text-center transition-all duration-700 ${phase === "show" ? "opacity-100 translate-y-0" : "opacity-0 translate-y-4"}`, children: [
@@ -2597,6 +2623,14 @@ function LogoutAnimation({ onComplete, subtitle }) {
2597
2623
  0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.15; }
2598
2624
  50% { transform: translate(-50%, -50%) scale(1.1); opacity: 0.25; }
2599
2625
  }
2626
+ /* Reduced motion: same contract as StartupAnimation \u2014 fades stay,
2627
+ * movement goes, the 2300ms cover-and-swap timing is untouched. */
2628
+ @media (prefers-reduced-motion: reduce) {
2629
+ [data-logout-animation], [data-logout-animation] * {
2630
+ animation: none !important;
2631
+ transition-property: opacity !important;
2632
+ }
2633
+ }
2600
2634
  ` })
2601
2635
  ]
2602
2636
  }
@@ -3431,6 +3465,7 @@ function TaskbarFavorites({ favorites, vertical, taskbarPosition, navSections: n
3431
3465
  ] });
3432
3466
  }
3433
3467
  function Layout({
3468
+ branding,
3434
3469
  productName = "react-os-shell",
3435
3470
  productIcon = "/favicon.svg",
3436
3471
  wallpapers,
@@ -3444,6 +3479,9 @@ function Layout({
3444
3479
  clockCalendar,
3445
3480
  mobileApp
3446
3481
  } = {}) {
3482
+ const brandName = branding?.productName ?? productName;
3483
+ const brandIcon = branding?.logo ?? productIcon;
3484
+ const brandTagline = branding?.tagline;
3447
3485
  const host = useDesktopHost();
3448
3486
  const { user, logout, hasAnyPerm } = useAuth();
3449
3487
  const { openPage, openEntity, openWindows } = useWindowManager();
@@ -3597,11 +3635,11 @@ function Layout({
3597
3635
  };
3598
3636
  }, [toggleFullscreen]);
3599
3637
  return /* @__PURE__ */ jsxs("div", { className: "flex flex-col h-screen", children: [
3600
- showStartup && /* @__PURE__ */ jsx(StartupAnimation, { onComplete: () => setShowStartup(false), ready: !!profile, productName }),
3638
+ showStartup && /* @__PURE__ */ jsx(StartupAnimation, { onComplete: () => setShowStartup(false), ready: !!profile, productName: brandName, logo: brandIcon, subtitle: brandTagline }),
3601
3639
  showLogout && /* @__PURE__ */ jsx(LogoutAnimation, { onComplete: () => {
3602
3640
  sessionStorage.removeItem("erp_startup_shown");
3603
3641
  logout();
3604
- } }),
3642
+ }, logo: brandIcon, subtitle: brandTagline }),
3605
3643
  !sidebarMode && /* @__PURE__ */ jsx(
3606
3644
  StartMenu,
3607
3645
  {
@@ -3643,8 +3681,8 @@ function Layout({
3643
3681
  navIcons: navIcons2,
3644
3682
  sectionIcons: sectionIcons2,
3645
3683
  categories,
3646
- productName,
3647
- productIcon
3684
+ productName: brandName,
3685
+ productIcon: brandIcon
3648
3686
  }
3649
3687
  ) }),
3650
3688
  (() => {
@@ -3665,8 +3703,8 @@ function Layout({
3665
3703
  return /* @__PURE__ */ jsx(
3666
3704
  MobileAppLanding,
3667
3705
  {
3668
- productName,
3669
- productIcon,
3706
+ productName: brandName,
3707
+ productIcon: brandIcon,
3670
3708
  config: mobileApp,
3671
3709
  wallpaperStyle
3672
3710
  }
@@ -3752,8 +3790,8 @@ function Layout({
3752
3790
  style: { background: "radial-gradient(circle 60px at var(--mx, 50%) var(--my, 50%), rgba(255,255,255,0.25) 0%, transparent 100%)" }
3753
3791
  }
3754
3792
  ),
3755
- productIcon && /* @__PURE__ */ jsx("img", { src: productIcon, alt: "", className: "relative z-10 h-3.5 w-3.5 shrink-0 opacity-60" }),
3756
- /* @__PURE__ */ jsx("span", { className: "relative z-10 truncate", children: productName })
3793
+ brandIcon && /* @__PURE__ */ jsx("img", { src: brandIcon, alt: "", className: "relative z-10 h-3.5 w-3.5 shrink-0 opacity-60" }),
3794
+ /* @__PURE__ */ jsx("span", { className: "relative z-10 truncate", children: brandName })
3757
3795
  ]
3758
3796
  }
3759
3797
  )