react-os-shell 4.79.3 → 4.82.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/README.md +18 -0
- package/dist/{Browser-2DFSZ3RP.js → Browser-5FNVWP3Q.js} +7 -7
- package/dist/{Browser-2DFSZ3RP.js.map → Browser-5FNVWP3Q.js.map} +1 -1
- package/dist/{Calculator-PAPSDNSJ.js → Calculator-2FCNKTPN.js} +6 -6
- package/dist/{Calculator-PAPSDNSJ.js.map → Calculator-2FCNKTPN.js.map} +1 -1
- package/dist/{CurrencyConverter-VJQI2XVV.js → CurrencyConverter-KZU7MTWE.js} +6 -6
- package/dist/{CurrencyConverter-VJQI2XVV.js.map → CurrencyConverter-KZU7MTWE.js.map} +1 -1
- package/dist/{Documents-GIP67CHC.js → Documents-ZTK6SSDK.js} +7 -7
- package/dist/{Documents-GIP67CHC.js.map → Documents-ZTK6SSDK.js.map} +1 -1
- package/dist/{Files-JAE2LL65.js → Files-4PNE3MBV.js} +12 -12
- package/dist/{Files-JAE2LL65.js.map → Files-4PNE3MBV.js.map} +1 -1
- package/dist/{Notepad-SXHXJ6PC.js → Notepad-63JJ2WB5.js} +7 -7
- package/dist/{Notepad-SXHXJ6PC.js.map → Notepad-63JJ2WB5.js.map} +1 -1
- package/dist/{PomodoroTimer-GFL4L3XS.js → PomodoroTimer-SL372V3I.js} +7 -7
- package/dist/{PomodoroTimer-GFL4L3XS.js.map → PomodoroTimer-SL372V3I.js.map} +1 -1
- package/dist/{Preview-5HFE6MCG.js → Preview-QZL2BXLP.js} +9 -9
- package/dist/Preview-QZL2BXLP.js.map +1 -0
- package/dist/{Sidebar-B3LY5T2U.js → Sidebar-GFDPPC4X.js} +24 -6
- package/dist/Sidebar-GFDPPC4X.js.map +1 -0
- package/dist/{Spreadsheet-KZLORYAA.js → Spreadsheet-RCKDHL66.js} +8 -8
- package/dist/{Spreadsheet-KZLORYAA.js.map → Spreadsheet-RCKDHL66.js.map} +1 -1
- package/dist/{Stock-WZXVQX3G.js → Stock-YDCHLKSV.js} +6 -6
- package/dist/{Stock-WZXVQX3G.js.map → Stock-YDCHLKSV.js.map} +1 -1
- package/dist/{Weather-FQ7ZVXVR.js → Weather-HM3Y5LMI.js} +6 -6
- package/dist/{Weather-FQ7ZVXVR.js.map → Weather-HM3Y5LMI.js.map} +1 -1
- package/dist/{WorldClock-XAFQ5ZQF.js → WorldClock-RXKMY3YJ.js} +6 -6
- package/dist/{WorldClock-XAFQ5ZQF.js.map → WorldClock-RXKMY3YJ.js.map} +1 -1
- package/dist/apps/index.js +19 -19
- package/dist/{chunk-GO2LCDHS.js → chunk-26S2Q6GA.js} +3 -3
- package/dist/{chunk-GO2LCDHS.js.map → chunk-26S2Q6GA.js.map} +1 -1
- package/dist/{chunk-EWDYCO65.js → chunk-35RG2LD2.js} +3 -3
- package/dist/{chunk-EWDYCO65.js.map → chunk-35RG2LD2.js.map} +1 -1
- package/dist/{chunk-ZO4XGUZQ.js → chunk-3TSIRZUW.js} +3 -3
- package/dist/{chunk-ZO4XGUZQ.js.map → chunk-3TSIRZUW.js.map} +1 -1
- package/dist/{chunk-BLLINYDD.js → chunk-5TLIIDRZ.js} +186 -5
- package/dist/chunk-5TLIIDRZ.js.map +1 -0
- package/dist/chunk-6XQHH7D2.js +105 -0
- package/dist/chunk-6XQHH7D2.js.map +1 -0
- package/dist/{chunk-OQ7GRU7G.js → chunk-7RUYFI6O.js} +3 -3
- package/dist/{chunk-OQ7GRU7G.js.map → chunk-7RUYFI6O.js.map} +1 -1
- package/dist/{chunk-A42MTWLI.js → chunk-F54RMKRL.js} +5 -5
- package/dist/{chunk-A42MTWLI.js.map → chunk-F54RMKRL.js.map} +1 -1
- package/dist/{chunk-TT2WNTDS.js → chunk-IZ2FABWU.js} +3 -3
- package/dist/{chunk-TT2WNTDS.js.map → chunk-IZ2FABWU.js.map} +1 -1
- package/dist/chunk-KLSUJ46L.js +7 -0
- package/dist/{chunk-M2IJT4OA.js.map → chunk-KLSUJ46L.js.map} +1 -1
- package/dist/{chunk-YZVJCHXV.js → chunk-LEMEFL6U.js} +300 -194
- package/dist/chunk-LEMEFL6U.js.map +1 -0
- package/dist/{chunk-EXSEW5F3.js → chunk-MHUVU7ZX.js} +102 -16
- package/dist/chunk-MHUVU7ZX.js.map +1 -0
- package/dist/{chunk-QJS6RBH4.js → chunk-XWLEA4B7.js} +3 -3
- package/dist/{chunk-QJS6RBH4.js.map → chunk-XWLEA4B7.js.map} +1 -1
- package/dist/{chunk-WNLPTLT6.js → chunk-ZESNO4TZ.js} +2 -2
- package/dist/chunk-ZESNO4TZ.js.map +1 -0
- package/dist/{index-BjEcKEsJ.d.ts → index-D9ZuIsBe.d.ts} +130 -1
- package/dist/index.d.ts +53 -3
- package/dist/index.js +157 -56
- package/dist/index.js.map +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/index.js +4 -3
- package/package.json +1 -1
- package/dist/Preview-5HFE6MCG.js.map +0 -1
- package/dist/Sidebar-B3LY5T2U.js.map +0 -1
- package/dist/chunk-BLLINYDD.js.map +0 -1
- package/dist/chunk-EXSEW5F3.js.map +0 -1
- package/dist/chunk-M2IJT4OA.js +0 -7
- package/dist/chunk-WNLPTLT6.js.map +0 -1
- package/dist/chunk-YZVJCHXV.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import { PREVIEW_OPENED_EVENT, openPreviewFile } from './chunk-
|
|
2
|
-
import { subscribePomo, getPomoSnapshot } from './chunk-
|
|
3
|
-
export { setShellTodoProvider } from './chunk-
|
|
1
|
+
import { PREVIEW_OPENED_EVENT, openPreviewFile } from './chunk-26S2Q6GA.js';
|
|
2
|
+
import { subscribePomo, getPomoSnapshot } from './chunk-IZ2FABWU.js';
|
|
3
|
+
export { setShellTodoProvider } from './chunk-IZ2FABWU.js';
|
|
4
4
|
export { ImageAnnotator_default as ImageAnnotator } from './chunk-AXWC3332.js';
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
import { setPdfPreview } from './chunk-3L463T5H.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-YZVJCHXV.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, FormErrorSummary, 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-YZVJCHXV.js';
|
|
5
|
+
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, FormField, Input_default, applyThemePrefs, lastEnabledIndex, nextEnabledIndex, matchTypeahead } from './chunk-LEMEFL6U.js';
|
|
6
|
+
export { ALT, ALT_SHIFT_D, ALT_SHIFT_E, ALT_SHIFT_N, Accordion, AuthScreen, Avatar, AvatarGroup, Banner, BarChart, BrandAssetEditor, 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, FormErrorSummary, 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, MAX_FRACTION_DIGITS, MOD, Markdown, MediaUploadField, MediaUploadGrid, MetricBar, MilestoneTimeline, NativeSelect, NumericKeypad, PageHeader, Pagination, Paragraph, PortalBrandingProvider, Radio_default as Radio, 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, resolvePortalBrandAsset, resolveTheme, severityOf, tabButtonId, tabPanelId, toKey as toDateKey, toISODate, useClickOutside, usePortalBranding, useTheme } from './chunk-LEMEFL6U.js';
|
|
10
7
|
export { Breadcrumbs } from './chunk-HNH7FOYB.js';
|
|
11
8
|
import { withSpareRow, EditableGrid } from './chunk-DC6BYGZ6.js';
|
|
12
9
|
export { EditableGrid } from './chunk-DC6BYGZ6.js';
|
|
@@ -14,19 +11,24 @@ import { SidebarLayout } from './chunk-YG45DAUT.js';
|
|
|
14
11
|
export { SidebarLayout } from './chunk-YG45DAUT.js';
|
|
15
12
|
import { toast_default } from './chunk-2VM2FRZJ.js';
|
|
16
13
|
export { toast_default as toast } from './chunk-2VM2FRZJ.js';
|
|
17
|
-
import {
|
|
18
|
-
|
|
14
|
+
import { publishDesktopFolders, requestFilesTrashView, FolderGlyph, requestFilesDesktopFolderView, FileIconTile } from './chunk-7RUYFI6O.js';
|
|
15
|
+
import './chunk-CT3HVZRZ.js';
|
|
16
|
+
import { setPdfPreview } from './chunk-3L463T5H.js';
|
|
17
|
+
import { APP_VERSION, VERSION } from './chunk-KLSUJ46L.js';
|
|
18
|
+
export { VERSION } from './chunk-KLSUJ46L.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
|
-
import { useAuth } from './chunk-
|
|
21
|
-
export { setShellAuthBridge } from './chunk-
|
|
22
|
-
import {
|
|
23
|
-
export {
|
|
24
|
-
import {
|
|
25
|
-
export {
|
|
20
|
+
import { useAuth } from './chunk-35RG2LD2.js';
|
|
21
|
+
export { setShellAuthBridge } from './chunk-35RG2LD2.js';
|
|
22
|
+
import { BrandMark } from './chunk-6XQHH7D2.js';
|
|
23
|
+
export { BrandMark, resolveBrandMarkTreatment } from './chunk-6XQHH7D2.js';
|
|
24
|
+
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-MHUVU7ZX.js';
|
|
25
|
+
export { CancelButton, CopyButton, DocFavStar, EntityWindowFallback, EntityWindowLoading, EntityWindowState, MODAL_SUBMIT_SELECTOR, 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-MHUVU7ZX.js';
|
|
26
|
+
import { useShellStrings, useShellPrefs, PopupMenu, PopupMenuLabel, PopupMenuDivider, PopupMenuItem, useIsMobile, Button_default } from './chunk-5TLIIDRZ.js';
|
|
27
|
+
export { Button_default as Button, DEFAULT_SHELL_STRINGS, LoadingSpinner, PopupMenu, PopupMenuDivider, PopupMenuItem, PopupMenuLabel, Result, ShellPrefsProvider, ShellStringsProvider, useIsMobile, useLocalStoragePrefs, useShellPrefs, useShellStrings } from './chunk-5TLIIDRZ.js';
|
|
26
28
|
import { registerModalEscapeInterceptor } from './chunk-CDR2Q64Q.js';
|
|
27
29
|
export { ConfirmProvider, Dialog, confirm, confirmDestructive, prompt, registerModalEscapeInterceptor, useConfirm, useFocusTrap, useScrollLock } from './chunk-CDR2Q64Q.js';
|
|
28
|
-
import { startMenuCategories, navVisible, navSections, isSection, navIcons, isReachable, sectionIcons, useShellAuth, visibleChildren } from './chunk-
|
|
29
|
-
export { ShellAuthProvider, setShellNavIcons, useShellAuth } from './chunk-
|
|
30
|
+
import { startMenuCategories, navVisible, navSections, isSection, navIcons, isReachable, sectionIcons, useShellAuth, visibleChildren } from './chunk-ZESNO4TZ.js';
|
|
31
|
+
export { ShellAuthProvider, setShellNavIcons, useShellAuth } from './chunk-ZESNO4TZ.js';
|
|
30
32
|
import { GLASS_INPUT_BG, glassStyle } from './chunk-3CUSBZWG.js';
|
|
31
33
|
export { GLASS_DIVIDER, GLASS_INPUT_BG, glassStyle } from './chunk-3CUSBZWG.js';
|
|
32
34
|
import { createContext, lazy, useSyncExternalStore, useState, useEffect, useRef, useCallback, useLayoutEffect, useMemo, useContext, isValidElement, cloneElement, Suspense, useId } from 'react';
|
|
@@ -2502,7 +2504,7 @@ function Desktop({ profile }) {
|
|
|
2502
2504
|
}
|
|
2503
2505
|
);
|
|
2504
2506
|
}
|
|
2505
|
-
function StartupAnimation({ onComplete, ready = false, productName = "react-os-shell", subtitle, logo = "/favicon.svg" }) {
|
|
2507
|
+
function StartupAnimation({ onComplete, ready = false, productName = "react-os-shell", subtitle, logo = "/favicon.svg", adaptiveLogo = false, logoHasAlpha = null, logoIsLight = null }) {
|
|
2506
2508
|
const [phase, setPhase] = useState("logo");
|
|
2507
2509
|
const [minTimePassed, setMinTimePassed] = useState(false);
|
|
2508
2510
|
const onCompleteRef = useRef(onComplete);
|
|
@@ -2546,11 +2548,18 @@ function StartupAnimation({ onComplete, ready = false, productName = "react-os-s
|
|
|
2546
2548
|
}
|
|
2547
2549
|
) }),
|
|
2548
2550
|
/* @__PURE__ */ jsx("div", { className: `relative transition-all duration-700 ease-out ${phase === "logo" ? "scale-75 opacity-0" : "scale-100 opacity-100"}`, children: /* @__PURE__ */ jsx(
|
|
2549
|
-
|
|
2551
|
+
BrandMark,
|
|
2550
2552
|
{
|
|
2551
2553
|
src: logo,
|
|
2552
2554
|
alt: "",
|
|
2553
|
-
|
|
2555
|
+
slot: "compact",
|
|
2556
|
+
surface: "dark",
|
|
2557
|
+
size: 80,
|
|
2558
|
+
adaptive: adaptiveLogo,
|
|
2559
|
+
hasAlpha: logoHasAlpha,
|
|
2560
|
+
isLight: logoIsLight,
|
|
2561
|
+
decorative: true,
|
|
2562
|
+
className: "drop-shadow-[0_0_30px_rgba(124,58,237,0.5)]",
|
|
2554
2563
|
style: { animation: "spin-in 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) forwards" }
|
|
2555
2564
|
}
|
|
2556
2565
|
) }),
|
|
@@ -2596,7 +2605,7 @@ function StartupAnimation({ onComplete, ready = false, productName = "react-os-s
|
|
|
2596
2605
|
}
|
|
2597
2606
|
);
|
|
2598
2607
|
}
|
|
2599
|
-
function LogoutAnimation({ onComplete, subtitle, logo = "/favicon.svg" }) {
|
|
2608
|
+
function LogoutAnimation({ onComplete, subtitle, logo = "/favicon.svg", adaptiveLogo = false, logoHasAlpha = null, logoIsLight = null }) {
|
|
2600
2609
|
const [phase, setPhase] = useState("show");
|
|
2601
2610
|
const strings = useShellStrings();
|
|
2602
2611
|
useEffect(() => {
|
|
@@ -2632,7 +2641,21 @@ function LogoutAnimation({ onComplete, subtitle, logo = "/favicon.svg" }) {
|
|
|
2632
2641
|
{
|
|
2633
2642
|
className: `relative transition-all duration-1000 ease-in ${phase === "out" ? "scale-0 opacity-0" : "scale-100 opacity-100"}`,
|
|
2634
2643
|
style: phase === "out" ? { transform: "scale(0) rotate(180deg)" } : void 0,
|
|
2635
|
-
children: /* @__PURE__ */ jsx(
|
|
2644
|
+
children: /* @__PURE__ */ jsx(
|
|
2645
|
+
BrandMark,
|
|
2646
|
+
{
|
|
2647
|
+
src: logo,
|
|
2648
|
+
alt: "",
|
|
2649
|
+
slot: "compact",
|
|
2650
|
+
surface: "dark",
|
|
2651
|
+
size: 80,
|
|
2652
|
+
adaptive: adaptiveLogo,
|
|
2653
|
+
hasAlpha: logoHasAlpha,
|
|
2654
|
+
isLight: logoIsLight,
|
|
2655
|
+
decorative: true,
|
|
2656
|
+
className: "drop-shadow-[0_0_30px_rgba(124,58,237,0.5)]"
|
|
2657
|
+
}
|
|
2658
|
+
)
|
|
2636
2659
|
}
|
|
2637
2660
|
),
|
|
2638
2661
|
/* @__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: [
|
|
@@ -2736,6 +2759,23 @@ function menuPanelLeft(ownerLeft, ownerRight, width, viewportW, gap, preferLeft
|
|
|
2736
2759
|
}
|
|
2737
2760
|
var PANEL_GAP = 4;
|
|
2738
2761
|
var CLOSE_DELAY = 200;
|
|
2762
|
+
var visibleMenuLabel = (entry) => entry.menuLabel ?? entry.label;
|
|
2763
|
+
var isAbbreviated = (entry) => Boolean(entry.menuLabel && entry.menuLabel !== entry.label);
|
|
2764
|
+
var menuAriaLabel = (entry) => isAbbreviated(entry) ? `${entry.menuLabel}, ${entry.label}` : void 0;
|
|
2765
|
+
function MenuLabel({ entry, className }) {
|
|
2766
|
+
const abbreviated = isAbbreviated(entry);
|
|
2767
|
+
const [titled, setTitled] = useState(abbreviated);
|
|
2768
|
+
return /* @__PURE__ */ jsx(
|
|
2769
|
+
"span",
|
|
2770
|
+
{
|
|
2771
|
+
className,
|
|
2772
|
+
title: titled ? entry.label : void 0,
|
|
2773
|
+
"data-menu-label": true,
|
|
2774
|
+
onMouseEnter: (e) => setTitled(abbreviated || e.currentTarget.scrollWidth > e.currentTarget.clientWidth),
|
|
2775
|
+
children: visibleMenuLabel(entry)
|
|
2776
|
+
}
|
|
2777
|
+
);
|
|
2778
|
+
}
|
|
2739
2779
|
function MenuPanel({ left, anchorY, estHeight, minTop, maxBottom, flipped, className, style, onMouseEnter, onMouseLeave, children }) {
|
|
2740
2780
|
const ref = useRef(null);
|
|
2741
2781
|
useLayoutEffect(() => {
|
|
@@ -2866,17 +2906,18 @@ function StartMenu({
|
|
|
2866
2906
|
)
|
|
2867
2907
|
] })
|
|
2868
2908
|
] }),
|
|
2869
|
-
/* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto overflow-x-hidden
|
|
2909
|
+
/* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto overflow-x-hidden", children: filtered.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-sm text-gray-400 text-center py-12", children: "No matching apps" }) : filtered.map(({ item, sectionLabel }, i) => {
|
|
2870
2910
|
const icon = navIcons2[item.to];
|
|
2871
2911
|
return /* @__PURE__ */ jsxs(
|
|
2872
2912
|
"button",
|
|
2873
2913
|
{
|
|
2874
2914
|
onClick: () => handleClick(item.to),
|
|
2915
|
+
"aria-label": menuAriaLabel(item),
|
|
2875
2916
|
className: "w-full flex items-center gap-3 px-4 py-3 active:bg-gray-100 border-b border-gray-100 text-left",
|
|
2876
2917
|
children: [
|
|
2877
2918
|
/* @__PURE__ */ jsx("span", { className: "h-8 w-8 rounded-lg bg-gray-100 flex items-center justify-center text-gray-600 shrink-0", children: icon && isValidElement(icon) ? cloneElement(icon, { className: "h-5 w-5" }) : null }),
|
|
2878
2919
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
2879
|
-
/* @__PURE__ */ jsx(
|
|
2920
|
+
/* @__PURE__ */ jsx(MenuLabel, { entry: item, className: "block truncate text-sm font-medium text-gray-900" }),
|
|
2880
2921
|
sectionLabel && /* @__PURE__ */ jsx("div", { className: "text-[11px] text-gray-500 truncate", children: sectionLabel })
|
|
2881
2922
|
] })
|
|
2882
2923
|
]
|
|
@@ -2921,12 +2962,12 @@ function StartMenu({
|
|
|
2921
2962
|
const posStyle = taskbarPosition === "top" ? { top: taskbarH + taskbarGap, left: 8 } : taskbarPosition === "left" ? { top: 8, left: taskbarW + taskbarGap } : taskbarPosition === "right" ? { top: 8, right: taskbarW + taskbarGap } : { bottom: taskbarH + taskbarGap, left: 8 };
|
|
2922
2963
|
const iconEl = (path) => {
|
|
2923
2964
|
const icon = navIcons2[path];
|
|
2924
|
-
if (icon && isValidElement(icon)) return cloneElement(icon, { className: "h-4 w-4" });
|
|
2965
|
+
if (icon && isValidElement(icon)) return cloneElement(icon, { className: "h-4 w-4 shrink-0" });
|
|
2925
2966
|
return null;
|
|
2926
2967
|
};
|
|
2927
2968
|
const secIcon = (label) => {
|
|
2928
2969
|
const icon = sectionIcons2[label];
|
|
2929
|
-
if (icon && isValidElement(icon)) return cloneElement(icon, { className: "h-4 w-4" });
|
|
2970
|
+
if (icon && isValidElement(icon)) return cloneElement(icon, { className: "h-4 w-4 shrink-0" });
|
|
2930
2971
|
return null;
|
|
2931
2972
|
};
|
|
2932
2973
|
const hoveredSection = openPath.length > 0 ? openPath[0].key : null;
|
|
@@ -2942,7 +2983,8 @@ function StartMenu({
|
|
|
2942
2983
|
};
|
|
2943
2984
|
const sizeConfig = sizeConfigByDensity[density][size];
|
|
2944
2985
|
const menuGlass = glassStyle();
|
|
2945
|
-
const itemCls = `w-full flex items-center gap-2 rounded-lg ${sizeConfig.px} ${sizeConfig.py} ${sizeConfig.text}`;
|
|
2986
|
+
const itemCls = `w-full min-w-0 overflow-hidden whitespace-nowrap flex items-center gap-2 rounded-lg ${sizeConfig.px} ${sizeConfig.py} ${sizeConfig.text}`;
|
|
2987
|
+
const itemLabelCls = "min-w-0 flex-1 truncate text-left";
|
|
2946
2988
|
const viewportH = typeof window !== "undefined" ? window.innerHeight : 800;
|
|
2947
2989
|
const viewportW = typeof window !== "undefined" ? window.innerWidth : 1280;
|
|
2948
2990
|
const minTop = (taskbarPosition === "top" ? taskbarH : 0) + 8;
|
|
@@ -2969,29 +3011,43 @@ function StartMenu({
|
|
|
2969
3011
|
cancelClose();
|
|
2970
3012
|
closeTimer.current = setTimeout(() => setOpenPath((prev) => closeMenuBelow(prev, depth)), CLOSE_DELAY);
|
|
2971
3013
|
};
|
|
2972
|
-
const chevron = /* @__PURE__ */ jsx("svg", { className: "h-3.5 w-3.5 ml-auto text-gray-500", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2, children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M8.25 4.5l7.5 7.5-7.5 7.5" }) });
|
|
3014
|
+
const chevron = /* @__PURE__ */ jsx("svg", { className: "h-3.5 w-3.5 shrink-0 ml-auto text-gray-500", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2, children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M8.25 4.5l7.5 7.5-7.5 7.5" }) });
|
|
2973
3015
|
const renderSection = (section, isErp) => {
|
|
2974
3016
|
if (!navVisible(section, hasAnyPerm)) return null;
|
|
2975
3017
|
const items = getVisibleItems(section);
|
|
2976
3018
|
if (items.length === 0) return null;
|
|
2977
3019
|
const isHovered = hoveredSection === section.label;
|
|
2978
3020
|
return /* @__PURE__ */ jsxs("div", { onMouseEnter: (e) => openSubmenu(0, section.label, e), children: [
|
|
2979
|
-
/* @__PURE__ */ jsxs(
|
|
2980
|
-
|
|
2981
|
-
|
|
2982
|
-
|
|
2983
|
-
|
|
3021
|
+
/* @__PURE__ */ jsxs(
|
|
3022
|
+
"button",
|
|
3023
|
+
{
|
|
3024
|
+
"aria-label": menuAriaLabel(section),
|
|
3025
|
+
className: `${itemCls} transition-colors ${isHovered ? "bg-blue-50 text-blue-700" : "text-gray-700 hover:bg-blue-50 hover:text-blue-700"}`,
|
|
3026
|
+
children: [
|
|
3027
|
+
secIcon(section.label),
|
|
3028
|
+
/* @__PURE__ */ jsx(MenuLabel, { entry: section, className: `${itemLabelCls} ${isErp ? "font-medium" : ""}` }),
|
|
3029
|
+
chevron
|
|
3030
|
+
]
|
|
3031
|
+
}
|
|
3032
|
+
),
|
|
2984
3033
|
section.dividerAfter && /* @__PURE__ */ jsx("div", { className: "border-t border-white/20 my-1.5 mx-2" })
|
|
2985
3034
|
] }, section.label);
|
|
2986
3035
|
};
|
|
2987
3036
|
const renderVirtualSection = (v) => {
|
|
2988
3037
|
if (v.items.length === 0) return null;
|
|
2989
3038
|
const isHovered = hoveredSection === v.label;
|
|
2990
|
-
return /* @__PURE__ */ jsx("div", { onMouseEnter: (e) => openSubmenu(0, v.label, e), children: /* @__PURE__ */ jsxs(
|
|
2991
|
-
|
|
2992
|
-
|
|
2993
|
-
|
|
2994
|
-
|
|
3039
|
+
return /* @__PURE__ */ jsx("div", { onMouseEnter: (e) => openSubmenu(0, v.label, e), children: /* @__PURE__ */ jsxs(
|
|
3040
|
+
"button",
|
|
3041
|
+
{
|
|
3042
|
+
"aria-label": menuAriaLabel(v),
|
|
3043
|
+
className: `${itemCls} transition-colors ${isHovered ? "bg-blue-50 text-blue-700" : "text-gray-700 hover:bg-blue-50 hover:text-blue-700"}`,
|
|
3044
|
+
children: [
|
|
3045
|
+
/* @__PURE__ */ jsx("span", { className: "shrink-0", children: v.icon }),
|
|
3046
|
+
/* @__PURE__ */ jsx(MenuLabel, { entry: v, className: itemLabelCls }),
|
|
3047
|
+
chevron
|
|
3048
|
+
]
|
|
3049
|
+
}
|
|
3050
|
+
) }, v.label);
|
|
2995
3051
|
};
|
|
2996
3052
|
return (
|
|
2997
3053
|
/* z-[1100]: sit above the entire window stack — normal windows climb to
|
|
@@ -3049,30 +3105,32 @@ function StartMenu({
|
|
|
3049
3105
|
] })
|
|
3050
3106
|
}
|
|
3051
3107
|
),
|
|
3052
|
-
search.length >= 2 ? /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto overflow-x-hidden
|
|
3108
|
+
search.length >= 2 ? /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-y-auto overflow-x-hidden px-1 pb-2 max-h-[400px]", children: searchResults.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-xs text-gray-400 text-center py-4", children: "No results" }) : searchResults.map((r, i) => /* @__PURE__ */ jsxs(
|
|
3053
3109
|
"button",
|
|
3054
3110
|
{
|
|
3055
3111
|
onClick: () => handleClick(r.to),
|
|
3056
3112
|
onMouseEnter: () => setSearchIdx(i),
|
|
3113
|
+
"aria-label": menuAriaLabel(r),
|
|
3057
3114
|
className: `${itemCls} transition-colors ${i === searchIdx ? "bg-blue-50 text-blue-700" : "text-gray-700 hover:bg-blue-50 hover:text-blue-700"}`,
|
|
3058
3115
|
children: [
|
|
3059
3116
|
iconEl(r.to),
|
|
3060
|
-
/* @__PURE__ */ jsx(
|
|
3061
|
-
r.section && /* @__PURE__ */ jsx("span", { className: "text-[10px] text-gray-400 ml-auto", children: r.section })
|
|
3117
|
+
/* @__PURE__ */ jsx(MenuLabel, { entry: r, className: itemLabelCls }),
|
|
3118
|
+
r.section && /* @__PURE__ */ jsx("span", { className: "max-w-[40%] shrink-0 truncate text-[10px] text-gray-400 ml-auto", children: r.section })
|
|
3062
3119
|
]
|
|
3063
3120
|
},
|
|
3064
3121
|
i
|
|
3065
|
-
)) }) : /* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto overflow-x-hidden
|
|
3122
|
+
)) }) : /* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto overflow-x-hidden px-1 pb-1 flex flex-col", children: [
|
|
3066
3123
|
isVertical && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
3067
3124
|
footerItems.map((item) => /* @__PURE__ */ jsxs(
|
|
3068
3125
|
"button",
|
|
3069
3126
|
{
|
|
3070
3127
|
onClick: () => handleClick(item.to),
|
|
3071
3128
|
onMouseEnter: () => scheduleClose(0),
|
|
3129
|
+
"aria-label": menuAriaLabel(item),
|
|
3072
3130
|
className: `${itemCls} text-gray-700 hover:bg-blue-50 hover:text-blue-700 transition-colors`,
|
|
3073
3131
|
children: [
|
|
3074
3132
|
iconEl(item.to),
|
|
3075
|
-
/* @__PURE__ */ jsx(
|
|
3133
|
+
/* @__PURE__ */ jsx(MenuLabel, { entry: item, className: itemLabelCls })
|
|
3076
3134
|
]
|
|
3077
3135
|
},
|
|
3078
3136
|
item.to
|
|
@@ -3086,10 +3144,11 @@ function StartMenu({
|
|
|
3086
3144
|
"button",
|
|
3087
3145
|
{
|
|
3088
3146
|
onClick: () => handleClick(item.to),
|
|
3147
|
+
"aria-label": menuAriaLabel(item),
|
|
3089
3148
|
className: `${itemCls} text-gray-700 hover:bg-blue-50 hover:text-blue-700 transition-colors`,
|
|
3090
3149
|
children: [
|
|
3091
3150
|
iconEl(item.to),
|
|
3092
|
-
/* @__PURE__ */ jsx(
|
|
3151
|
+
/* @__PURE__ */ jsx(MenuLabel, { entry: item, className: itemLabelCls })
|
|
3093
3152
|
]
|
|
3094
3153
|
}
|
|
3095
3154
|
),
|
|
@@ -3104,10 +3163,11 @@ function StartMenu({
|
|
|
3104
3163
|
"button",
|
|
3105
3164
|
{
|
|
3106
3165
|
onClick: () => handleClick(item.to),
|
|
3166
|
+
"aria-label": menuAriaLabel(item),
|
|
3107
3167
|
className: `${itemCls} text-gray-700 hover:bg-blue-50 hover:text-blue-700 transition-colors`,
|
|
3108
3168
|
children: [
|
|
3109
3169
|
iconEl(item.to),
|
|
3110
|
-
/* @__PURE__ */ jsx(
|
|
3170
|
+
/* @__PURE__ */ jsx(MenuLabel, { entry: item, className: itemLabelCls })
|
|
3111
3171
|
]
|
|
3112
3172
|
}
|
|
3113
3173
|
),
|
|
@@ -3124,10 +3184,11 @@ function StartMenu({
|
|
|
3124
3184
|
{
|
|
3125
3185
|
onClick: () => handleClick(item.to),
|
|
3126
3186
|
onMouseEnter: () => scheduleClose(0),
|
|
3187
|
+
"aria-label": menuAriaLabel(item),
|
|
3127
3188
|
className: `${itemCls} text-gray-700 hover:bg-blue-50 hover:text-blue-700 transition-colors`,
|
|
3128
3189
|
children: [
|
|
3129
3190
|
iconEl(item.to),
|
|
3130
|
-
/* @__PURE__ */ jsx(
|
|
3191
|
+
/* @__PURE__ */ jsx(MenuLabel, { entry: item, className: itemLabelCls })
|
|
3131
3192
|
]
|
|
3132
3193
|
},
|
|
3133
3194
|
item.to
|
|
@@ -3174,7 +3235,7 @@ function StartMenu({
|
|
|
3174
3235
|
style: menuGlass,
|
|
3175
3236
|
onMouseEnter: () => scheduleClose(i + 1),
|
|
3176
3237
|
onMouseLeave: () => scheduleClose(i),
|
|
3177
|
-
children: /* @__PURE__ */ jsx("div", { className: "py-1 px-1 overflow-y-auto overflow-x-hidden
|
|
3238
|
+
children: /* @__PURE__ */ jsx("div", { className: "py-1 px-1 overflow-y-auto overflow-x-hidden overscroll-contain", style: { maxHeight: availH }, children: items.map((item) => {
|
|
3178
3239
|
const kids = submenuItems(item);
|
|
3179
3240
|
const isOpen = openPath[i + 1]?.key === item.to;
|
|
3180
3241
|
return /* @__PURE__ */ jsxs(
|
|
@@ -3186,10 +3247,11 @@ function StartMenu({
|
|
|
3186
3247
|
"button",
|
|
3187
3248
|
{
|
|
3188
3249
|
onClick: kids.length > 0 ? (e) => openSubmenu(i + 1, item.to, e) : () => handleClick(item.to),
|
|
3250
|
+
"aria-label": menuAriaLabel(item),
|
|
3189
3251
|
className: `${itemCls} transition-colors ${isOpen ? "bg-blue-50 text-blue-700" : "text-gray-700 hover:bg-blue-50 hover:text-blue-700"}`,
|
|
3190
3252
|
children: [
|
|
3191
3253
|
iconEl(item.to),
|
|
3192
|
-
/* @__PURE__ */ jsx(
|
|
3254
|
+
/* @__PURE__ */ jsx(MenuLabel, { entry: item, className: itemLabelCls }),
|
|
3193
3255
|
kids.length > 0 && chevron
|
|
3194
3256
|
]
|
|
3195
3257
|
}
|
|
@@ -3215,6 +3277,9 @@ function StartMenu({
|
|
|
3215
3277
|
function MobileAppLanding({
|
|
3216
3278
|
productName,
|
|
3217
3279
|
productIcon,
|
|
3280
|
+
adaptiveLogo = false,
|
|
3281
|
+
logoHasAlpha = null,
|
|
3282
|
+
logoIsLight = null,
|
|
3218
3283
|
config,
|
|
3219
3284
|
wallpaperStyle
|
|
3220
3285
|
}) {
|
|
@@ -3233,7 +3298,20 @@ function MobileAppLanding({
|
|
|
3233
3298
|
className: "w-full max-w-sm rounded-3xl p-8 flex flex-col items-center text-center",
|
|
3234
3299
|
style: glassStyle(),
|
|
3235
3300
|
children: [
|
|
3236
|
-
/* @__PURE__ */ jsx("div", { className: "h-20 w-20 rounded-2xl overflow-hidden bg-white/60 flex items-center justify-center shadow-sm mb-5", children: /* @__PURE__ */ jsx(
|
|
3301
|
+
/* @__PURE__ */ jsx("div", { className: "h-20 w-20 rounded-2xl overflow-hidden bg-white/60 flex items-center justify-center shadow-sm mb-5", children: /* @__PURE__ */ jsx(
|
|
3302
|
+
BrandMark,
|
|
3303
|
+
{
|
|
3304
|
+
src: productIcon,
|
|
3305
|
+
alt: "",
|
|
3306
|
+
slot: "compact",
|
|
3307
|
+
surface: "light",
|
|
3308
|
+
size: 56,
|
|
3309
|
+
adaptive: adaptiveLogo,
|
|
3310
|
+
hasAlpha: logoHasAlpha,
|
|
3311
|
+
isLight: logoIsLight,
|
|
3312
|
+
decorative: true
|
|
3313
|
+
}
|
|
3314
|
+
) }),
|
|
3237
3315
|
/* @__PURE__ */ jsx("h1", { className: "text-xl font-semibold text-gray-900 leading-snug", children: heading }),
|
|
3238
3316
|
/* @__PURE__ */ jsx("p", { className: "mt-2 text-sm text-gray-600 leading-relaxed", children: description }),
|
|
3239
3317
|
hasLink && /* @__PURE__ */ jsxs(
|
|
@@ -3254,7 +3332,7 @@ function MobileAppLanding({
|
|
|
3254
3332
|
}
|
|
3255
3333
|
);
|
|
3256
3334
|
}
|
|
3257
|
-
var Sidebar = lazy(() => import('./Sidebar-
|
|
3335
|
+
var Sidebar = lazy(() => import('./Sidebar-GFDPPC4X.js'));
|
|
3258
3336
|
function useFavorites(wallpapers) {
|
|
3259
3337
|
const { prefs, save } = useShellPrefs();
|
|
3260
3338
|
const favorites = prefs.favorite_pages || [];
|
|
@@ -3541,6 +3619,9 @@ function Layout({
|
|
|
3541
3619
|
const brandName = branding?.productName ?? productName;
|
|
3542
3620
|
const brandIcon = branding?.logo ?? productIcon;
|
|
3543
3621
|
const brandTagline = branding?.tagline;
|
|
3622
|
+
const brandAdaptive = branding?.adaptiveLogo ?? false;
|
|
3623
|
+
const brandHasAlpha = branding?.logoHasAlpha ?? null;
|
|
3624
|
+
const brandIsLight = branding?.logoIsLight ?? null;
|
|
3544
3625
|
const host = useDesktopHost();
|
|
3545
3626
|
const { user, logout, hasAnyPerm } = useAuth();
|
|
3546
3627
|
const { openPage, openEntity, openWindows } = useWindowManager();
|
|
@@ -3695,11 +3776,11 @@ function Layout({
|
|
|
3695
3776
|
}, [toggleFullscreen]);
|
|
3696
3777
|
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col h-screen", children: [
|
|
3697
3778
|
/* @__PURE__ */ jsx(SessionWindowRestore, {}),
|
|
3698
|
-
showStartup && /* @__PURE__ */ jsx(StartupAnimation, { onComplete: () => setShowStartup(false), ready: !!profile, productName: brandName, logo: brandIcon, subtitle: brandTagline }),
|
|
3779
|
+
showStartup && /* @__PURE__ */ jsx(StartupAnimation, { onComplete: () => setShowStartup(false), ready: !!profile, productName: brandName, logo: brandIcon, subtitle: brandTagline, adaptiveLogo: brandAdaptive, logoHasAlpha: brandHasAlpha, logoIsLight: brandIsLight }),
|
|
3699
3780
|
showLogout && /* @__PURE__ */ jsx(LogoutAnimation, { onComplete: () => {
|
|
3700
3781
|
sessionStorage.removeItem("erp_startup_shown");
|
|
3701
3782
|
logout();
|
|
3702
|
-
}, logo: brandIcon, subtitle: brandTagline }),
|
|
3783
|
+
}, logo: brandIcon, subtitle: brandTagline, adaptiveLogo: brandAdaptive, logoHasAlpha: brandHasAlpha, logoIsLight: brandIsLight }),
|
|
3703
3784
|
!sidebarMode && /* @__PURE__ */ jsx(
|
|
3704
3785
|
StartMenu,
|
|
3705
3786
|
{
|
|
@@ -3742,7 +3823,10 @@ function Layout({
|
|
|
3742
3823
|
sectionIcons: sectionIcons2,
|
|
3743
3824
|
categories,
|
|
3744
3825
|
productName: brandName,
|
|
3745
|
-
productIcon: brandIcon
|
|
3826
|
+
productIcon: brandIcon,
|
|
3827
|
+
adaptiveLogo: brandAdaptive,
|
|
3828
|
+
logoHasAlpha: brandHasAlpha,
|
|
3829
|
+
logoIsLight: brandIsLight
|
|
3746
3830
|
}
|
|
3747
3831
|
) }),
|
|
3748
3832
|
(() => {
|
|
@@ -3765,6 +3849,9 @@ function Layout({
|
|
|
3765
3849
|
{
|
|
3766
3850
|
productName: brandName,
|
|
3767
3851
|
productIcon: brandIcon,
|
|
3852
|
+
adaptiveLogo: brandAdaptive,
|
|
3853
|
+
logoHasAlpha: brandHasAlpha,
|
|
3854
|
+
logoIsLight: brandIsLight,
|
|
3768
3855
|
config: mobileApp,
|
|
3769
3856
|
wallpaperStyle
|
|
3770
3857
|
}
|
|
@@ -3850,7 +3937,21 @@ function Layout({
|
|
|
3850
3937
|
style: { background: "radial-gradient(circle 60px at var(--mx, 50%) var(--my, 50%), rgba(255,255,255,0.25) 0%, transparent 100%)" }
|
|
3851
3938
|
}
|
|
3852
3939
|
),
|
|
3853
|
-
brandIcon && /* @__PURE__ */ jsx(
|
|
3940
|
+
brandIcon && /* @__PURE__ */ jsx(
|
|
3941
|
+
BrandMark,
|
|
3942
|
+
{
|
|
3943
|
+
src: brandIcon,
|
|
3944
|
+
alt: "",
|
|
3945
|
+
slot: "compact",
|
|
3946
|
+
surface: "light",
|
|
3947
|
+
adaptive: brandAdaptive,
|
|
3948
|
+
hasAlpha: brandHasAlpha,
|
|
3949
|
+
isLight: brandIsLight,
|
|
3950
|
+
size: 14,
|
|
3951
|
+
decorative: true,
|
|
3952
|
+
className: "relative z-10 opacity-60"
|
|
3953
|
+
}
|
|
3954
|
+
),
|
|
3854
3955
|
/* @__PURE__ */ jsx("span", { className: "relative z-10 truncate", children: brandName })
|
|
3855
3956
|
]
|
|
3856
3957
|
}
|
|
@@ -3916,7 +4017,7 @@ function Layout({
|
|
|
3916
4017
|
GlobalSearch,
|
|
3917
4018
|
{
|
|
3918
4019
|
...search,
|
|
3919
|
-
onSelect: (result) => openEntity(result.entity_type, result.entity_id,
|
|
4020
|
+
onSelect: (result) => openEntity(result.entity_type, result.entity_id, void 0, result.label)
|
|
3920
4021
|
}
|
|
3921
4022
|
),
|
|
3922
4023
|
/* @__PURE__ */ jsx(ShortcutHelp, {})
|